<?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>197097</bug_id>
          
          <creation_ts>2019-04-19 00:49:49 -0700</creation_ts>
          <short_desc>[Process-Swap-On-Navigation] WebKit hangs when going back to a form submission&apos;s page due to Process-Swap-On-Navigation on iOS 12.2 and higher</short_desc>
          <delta_ts>2019-04-25 08:54:36 -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>Page Loading</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>iPhone / iPad</rep_platform>
          <op_sys>iOS 12</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>gambard</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>aestes</cc>
    
    <cc>ajuma</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>japhet</cc>
    
    <cc>sroberts</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1528722</commentid>
    <comment_count>0</comment_count>
    <who name="">gambard</who>
    <bug_when>2019-04-19 00:49:49 -0700</bug_when>
    <thetext>Summary:
When going back to a page loaded when a form is submitted after having reloaded it fails.

Steps to Reproduce:
On Safari:
1. Go to a form page (e.g. https://rsolomakhin.github.io/autofill/)
2. Submit the form
3. Reload the page
4. Go back
5. Go forward

Expected Results:
The page loaded when the form is submitted should be loaded.

Actual Results:
The load fails with [ProcessSwapping] 0x14a426000 - ProvisionalPageProxy::didFailProvisionalLoadForFrame: pageID = 1, frameID = 2, navigationID = 18</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1528729</commentid>
    <comment_count>1</comment_count>
    <who name="">gambard</who>
    <bug_when>2019-04-19 01:47:02 -0700</bug_when>
    <thetext>I mentioned Safari but I reproduced with WebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1528750</commentid>
    <comment_count>2</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-04-19 08:25:48 -0700</bug_when>
    <thetext>I am having trouble reproducing.

Which of the forms on this page are you submitting?
Also, at step 3, when I reload, it ask me if I want to resubmit. Do you say yes?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1528751</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-04-19 08:26:47 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #2)
&gt; I am having trouble reproducing.
&gt; 
&gt; Which of the forms on this page are you submitting?
&gt; Also, at step 3, when I reload, it ask me if I want to resubmit. Do you say
&gt; yes?

Oh, never mind, I can reproduce. Will take a look</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1528753</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-04-19 08:27:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/50048318&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1528754</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-04-19 08:27:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/50048319&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1528756</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-04-19 08:28:26 -0700</bug_when>
    <thetext>Seems to reproduce on macOS too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1528759</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-04-19 08:35:53 -0700</bug_when>
    <thetext>Seems to fail at networking level?

0x11563aa00 - NetworkResourceLoader::didFailLoading: (pageID = 5, frameID = 4, resourceID = 6, isTimeout = 0, isCancellation = 0, isAccessControl = 0, errCode = -1008)

kCFURLErrorResourceUnavailable = -1008</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1528771</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-04-19 09:05:35 -0700</bug_when>
    <thetext>I think this is likely due to the fact the the FormData is stored on the HistoryItem in the WebContent process, but not on the WebBackForwardListItem in the UIProcess. As a result, we lose the FormData on process-swap.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1528783</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-04-19 10:14:22 -0700</bug_when>
    <thetext>Ok, this is similar to the content filtering bug Andy and I looked at recently. We first try to do a load with MayAttemptCacheOnlyLoadForFormSubmissionItem, which fails. WebCore is then supposed to retry with MayNotAttemptCacheOnlyLoadForFormSubmissionItem.

However, because we send a didFailProvisionalLoad to the UIProcess, the ProvisionalPageProxy gets destroyed before the provisional process gets a change to retry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1528788</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-04-19 10:48:19 -0700</bug_when>
    <thetext>I have a fix, working on a test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1528849</commentid>
    <comment_count>11</comment_count>
      <attachid>367820</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-04-19 13:57:02 -0700</bug_when>
    <thetext>Created attachment 367820
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1528872</commentid>
    <comment_count>12</comment_count>
      <attachid>367827</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-04-19 14:32:45 -0700</bug_when>
    <thetext>Created attachment 367827
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1528920</commentid>
    <comment_count>13</comment_count>
      <attachid>367844</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-04-19 15:27:05 -0700</bug_when>
    <thetext>Created attachment 367844
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1528951</commentid>
    <comment_count>14</comment_count>
      <attachid>367853</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-04-19 16:42:52 -0700</bug_when>
    <thetext>Created attachment 367853
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1528955</commentid>
    <comment_count>15</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-04-19 16:45:40 -0700</bug_when>
    <thetext>Attachment 367853 did not pass style-queue:


ERROR: Source/WebCore/loader/EmptyFrameLoaderClient.h:87:  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: Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:4286:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:4293:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
Total errors found: 3 in 24 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>1529282</commentid>
    <comment_count>16</comment_count>
      <attachid>367947</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-04-22 10:21:20 -0700</bug_when>
    <thetext>Created attachment 367947
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1529283</commentid>
    <comment_count>17</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-04-22 10:23:21 -0700</bug_when>
    <thetext>Attachment 367947 did not pass style-queue:


ERROR: Source/WebCore/loader/EmptyFrameLoaderClient.h:87:  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: Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:4286:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:4293:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
Total errors found: 3 in 24 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>1529355</commentid>
    <comment_count>18</comment_count>
      <attachid>367947</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-04-22 13:30:55 -0700</bug_when>
    <thetext>Comment on attachment 367947
Patch

Looking into the iOS API test failure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1529359</commentid>
    <comment_count>19</comment_count>
      <attachid>367968</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-04-22 13:40:04 -0700</bug_when>
    <thetext>Created attachment 367968
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1529361</commentid>
    <comment_count>20</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-04-22 13:43:14 -0700</bug_when>
    <thetext>Attachment 367968 did not pass style-queue:


ERROR: Source/WebCore/loader/EmptyFrameLoaderClient.h:87:  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: Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:4286:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:4293:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
Total errors found: 3 in 24 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>1529392</commentid>
    <comment_count>21</comment_count>
      <attachid>367968</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-04-22 14:32:53 -0700</bug_when>
    <thetext>Comment on attachment 367968
Patch

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

&gt; Source/WebCore/loader/FrameLoaderTypes.h:70
&gt; +enum class WillContinueLoading : bool { No, Yes };

Does this mean it will continue loading in the same process or in another process?

&gt; Source/WebCore/loader/FrameLoaderTypes.h:222
&gt; +template &lt;&gt; struct EnumTraits&lt;WebCore::WillContinueLoading&gt; {

This isn&apos;t needed for enum classes that have a bool storage class.

&gt; Source/WebKit/UIProcess/API/Cocoa/WKURLSchemeTask.mm:73
&gt; +- (BOOL)_onlyIfCached

This is not a good name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1529399</commentid>
    <comment_count>22</comment_count>
      <attachid>367968</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-04-22 14:40:44 -0700</bug_when>
    <thetext>Comment on attachment 367968
Patch

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

&gt;&gt; Source/WebCore/loader/FrameLoaderTypes.h:70
&gt;&gt; +enum class WillContinueLoading : bool { No, Yes };
&gt; 
&gt; Does this mean it will continue loading in the same process or in another process?

We&apos;re in WebCore so this shouldn&apos;t have anything to do with processes. This is a flag that is associated with the DidFailProvisionalLoad IPC that is being sent by the WebProcess to the UIProcess. It means, even though I failed provisional, I&apos;ll keep loading.
If you really want to know, it will keep going in this process.

&gt;&gt; Source/WebCore/loader/FrameLoaderTypes.h:222
&gt;&gt; +template &lt;&gt; struct EnumTraits&lt;WebCore::WillContinueLoading&gt; {
&gt; 
&gt; This isn&apos;t needed for enum classes that have a bool storage class.

Ok, I seem to remember I added it due to a build error but I&apos;ll try and remove it.

&gt;&gt; Source/WebKit/UIProcess/API/Cocoa/WKURLSchemeTask.mm:73
&gt;&gt; +- (BOOL)_onlyIfCached
&gt; 
&gt; This is not a good name.

This is the official name in the fetch spec: &quot;only-if-cached&quot;. We use FetchOptions::Cache::OnlyIfCached internally. I personally think it is pretty clear but do you have a better suggestion?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1529409</commentid>
    <comment_count>23</comment_count>
      <attachid>367982</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-04-22 14:55:48 -0700</bug_when>
    <thetext>Created attachment 367982
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1529410</commentid>
    <comment_count>24</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-04-22 14:58:03 -0700</bug_when>
    <thetext>Attachment 367982 did not pass style-queue:


ERROR: Source/WebCore/loader/EmptyFrameLoaderClient.h:87:  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: Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:4286:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:4293:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
Total errors found: 3 in 24 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>1529587</commentid>
    <comment_count>25</comment_count>
      <attachid>367982</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-04-23 08:07:03 -0700</bug_when>
    <thetext>Comment on attachment 367982
Patch

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

&gt; Source/WebKit/UIProcess/API/Cocoa/WKURLSchemeTask.mm:73
&gt; +- (BOOL)_onlyIfCached

I guess this makes sense when I think about it.  It seems like more of a property of the request than the task.  _requestOnlyIfCached?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1529598</commentid>
    <comment_count>26</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-04-23 08:38:07 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #25)
&gt; Comment on attachment 367982 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=367982&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/API/Cocoa/WKURLSchemeTask.mm:73
&gt; &gt; +- (BOOL)_onlyIfCached
&gt; 
&gt; I guess this makes sense when I think about it.  It seems like more of a
&gt; property of the request than the task.  _requestOnlyIfCached?

Fair enough.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1529599</commentid>
    <comment_count>27</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-04-23 08:38:18 -0700</bug_when>
    <thetext>Committed r244540: &lt;https://trac.webkit.org/changeset/244540&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1530096</commentid>
    <comment_count>28</comment_count>
    <who name="Shawn Roberts">sroberts</who>
    <bug_when>2019-04-24 12:45:24 -0700</bug_when>
    <thetext>After changes in https://trac.webkit.org/changeset/244540

The following API test is crashing on iOS Sim Debug

TestWebKitAPI.ProcessSwap.GetUserMediaCaptureState

Test crashes in r244540, passes in r244539

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   libobjc.A.dylib               	0x000000010f78e64b objc_msgSend + 11
1   com.apple.CFNetwork           	0x00000001110ffa2f -[NSURLRequest dealloc] + 36
2   libobjc.A.dylib               	0x000000010f78c72c objc_object::sidetable_release(bool) + 202
3   libobjc.A.dylib               	0x000000010f78ce7f (anonymous namespace)::AutoreleasePoolPage::pop(void*) + 779
4   com.apple.CoreFoundation      	0x000000011028bdf6 _CFAutoreleasePoolPop + 22
5   com.apple.Foundation          	0x000000010f1a634d -[NSAutoreleasePool drain] + 144
6   TestWebKitAPI                 	0x00000001086fa987 main + 455 (mainIOS.mm:49)
7   libdyld.dylib                 	0x0000000110a48541 start + 1

https://build.webkit.org/builders/Apple%20iOS%2012%20Simulator%20Debug%20WK2%20%28Tests%29/builds/3433/steps/run-api-tests/logs/stdio</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1530382</commentid>
    <comment_count>29</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-04-25 08:54:36 -0700</bug_when>
    <thetext>(In reply to Shawn Roberts from comment #28)
&gt; After changes in https://trac.webkit.org/changeset/244540
&gt; 
&gt; The following API test is crashing on iOS Sim Debug
&gt; 
&gt; TestWebKitAPI.ProcessSwap.GetUserMediaCaptureState
&gt; 
&gt; Test crashes in r244540, passes in r244539
&gt; 
&gt; Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
&gt; 0   libobjc.A.dylib               	0x000000010f78e64b objc_msgSend + 11
&gt; 1   com.apple.CFNetwork           	0x00000001110ffa2f -[NSURLRequest
&gt; dealloc] + 36
&gt; 2   libobjc.A.dylib               	0x000000010f78c72c
&gt; objc_object::sidetable_release(bool) + 202
&gt; 3   libobjc.A.dylib               	0x000000010f78ce7f (anonymous
&gt; namespace)::AutoreleasePoolPage::pop(void*) + 779
&gt; 4   com.apple.CoreFoundation      	0x000000011028bdf6 _CFAutoreleasePoolPop
&gt; + 22
&gt; 5   com.apple.Foundation          	0x000000010f1a634d -[NSAutoreleasePool
&gt; drain] + 144
&gt; 6   TestWebKitAPI                 	0x00000001086fa987 main + 455
&gt; (mainIOS.mm:49)
&gt; 7   libdyld.dylib                 	0x0000000110a48541 start + 1
&gt; 
&gt; https://build.webkit.org/builders/
&gt; Apple%20iOS%2012%20Simulator%20Debug%20WK2%20%28Tests%29/builds/3433/steps/
&gt; run-api-tests/logs/stdio

This was fixed in http://trac.webkit.org/r244613.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>367820</attachid>
            <date>2019-04-19 13:57:02 -0700</date>
            <delta_ts>2019-04-19 14:32:45 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>197097_pson_form_resubmit_bug2_wip.patch</filename>
            <type>text/plain</type>
            <size>26438</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4
IGE4ZDJjODg5OGNlLi40YzUwN2M1MjU5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCkBAIC04NCw3ICs4NCw3IEBAIGNsYXNzIFdFQkNPUkVf
RVhQT1JUIEVtcHR5RnJhbWVMb2FkZXJDbGllbnQgOiBwdWJsaWMgRnJhbWVMb2FkZXJDbGllbnQg
ewogICAgIHZvaWQgZGlzcGF0Y2hEaWRTdGFydFByb3Zpc2lvbmFsTG9hZCgpIGZpbmFsIHsgfQog
ICAgIHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZlVGl0bGUoY29uc3QgU3RyaW5nV2l0aERpcmVjdGlv
biYpIGZpbmFsIHsgfQogICAgIHZvaWQgZGlzcGF0Y2hEaWRDb21taXRMb2FkKE9wdGlvbmFsPEhh
c0luc2VjdXJlQ29udGVudD4pIGZpbmFsIHsgfQotICAgIHZvaWQgZGlzcGF0Y2hEaWRGYWlsUHJv
dmlzaW9uYWxMb2FkKGNvbnN0IFJlc291cmNlRXJyb3ImKSBmaW5hbCB7IH0KKyAgICB2b2lkIGRp
c3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZChjb25zdCBSZXNvdXJjZUVycm9yJiwgYm9vbCAv
KiB3aWxsS2VlcExvYWRpbmcgKi8pIGZpbmFsIHsgfQogICAgIHZvaWQgZGlzcGF0Y2hEaWRGYWls
TG9hZChjb25zdCBSZXNvdXJjZUVycm9yJikgZmluYWwgeyB9CiAgICAgdm9pZCBkaXNwYXRjaERp
ZEZpbmlzaERvY3VtZW50TG9hZCgpIGZpbmFsIHsgfQogICAgIHZvaWQgZGlzcGF0Y2hEaWRGaW5p
c2hMb2FkKCkgZmluYWwgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRl
eCBlMDE4MjVlNTdiMS4uNjI2ZTk5MzEyMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyLmNwcApAQCAtMjQ2NSw3ICsyNDY1LDkgQEAgdm9pZCBGcmFtZUxvYWRlcjo6Y2hlY2tMb2Fk
Q29tcGxldGVGb3JUaGlzRnJhbWUoKQogICAgICAgICAgICAgaWYgKCFwZGwtPmlzTG9hZGluZ0lu
QVBJU2Vuc2UoKSB8fCBwZGwtPmlzU3RvcHBpbmcoKSkgewogICAgICAgICAgICAgICAgIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQoImNoZWNrTG9hZENvbXBsZXRlRm9yVGhpc0ZyYW1lOiBGYWlsZWQg
cHJvdmlzaW9uYWwgbG9hZCAoZnJhbWUgPSAlcCwgbWFpbiA9ICVkLCBpc1RpbWVvdXQgPSAlZCwg
aXNDYW5jZWxsYXRpb24gPSAlZCwgZXJyb3JDb2RlID0gJWQpIiwgJm1fZnJhbWUsIG1fZnJhbWUu
aXNNYWluRnJhbWUoKSwgZXJyb3IuaXNUaW1lb3V0KCksIGVycm9yLmlzQ2FuY2VsbGF0aW9uKCks
IGVycm9yLmVycm9yQ29kZSgpKTsKICAgICAgICAgICAgICAgICBtX3Byb3Zpc2lvbmFsTG9hZEVy
cm9yQmVpbmdIYW5kbGVkVVJMID0gbV9wcm92aXNpb25hbERvY3VtZW50TG9hZGVyLT51cmwoKTsK
LSAgICAgICAgICAgICAgICBtX2NsaWVudC5kaXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQo
ZXJyb3IpOworCisgICAgICAgICAgICAgICAgYm9vbCB3aWxsS2VlcExvYWRpbmcgPSAhIWhpc3Rv
cnkoKS5wcm92aXNpb25hbEl0ZW0oKTsKKyAgICAgICAgICAgICAgICBtX2NsaWVudC5kaXNwYXRj
aERpZEZhaWxQcm92aXNpb25hbExvYWQoZXJyb3IsIHdpbGxLZWVwTG9hZGluZyk7CiAjaWYgRU5B
QkxFKENPTlRFTlRfRklMVEVSSU5HKQogICAgICAgICAgICAgICAgIGlmIChhdXRvIGNvbnRlbnRG
aWx0ZXIgPSBwZGwtPmNvbnRlbnRGaWx0ZXIoKSkKICAgICAgICAgICAgICAgICAgICAgY29udGVu
dEZpbHRlci0+aGFuZGxlUHJvdmlzaW9uYWxMb2FkRmFpbHVyZShlcnJvcik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IGZhMWRmNjBhM2E5Li5kNjgwY2Jl
ZDI2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTE3
Nyw3ICsxNzcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkU3RhcnRQ
cm92aXNpb25hbExvYWQoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkUmVjZWl2
ZVRpdGxlKGNvbnN0IFN0cmluZ1dpdGhEaXJlY3Rpb24mKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IGRpc3BhdGNoRGlkQ29tbWl0TG9hZChPcHRpb25hbDxIYXNJbnNlY3VyZUNvbnRlbnQ+KSA9IDA7
Ci0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZChjb25zdCBS
ZXNvdXJjZUVycm9yJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZEZhaWxQcm92
aXNpb25hbExvYWQoY29uc3QgUmVzb3VyY2VFcnJvciYsIGJvb2wgd2lsbEtlZXBMb2FkaW5nKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkRmFpbExvYWQoY29uc3QgUmVzb3VyY2VF
cnJvciYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRGaW5pc2hEb2N1bWVudExv
YWQoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkRmluaXNoTG9hZCgpID0gMDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcApp
bmRleCA5OGVmY2M4ZTE5NC4uMzQ3MGY0YWQwYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAKQEAgLTEzNCw3ICsxMzQsNyBAQCB2b2lk
IFByb3Zpc2lvbmFsUGFnZVByb3h5OjpjYW5jZWwoKQogICAgIEFTU0VSVChtX21haW5GcmFtZSk7
CiAgICAgYXV0byBlcnJvciA9IFdlYktpdDo6Y2FuY2VsbGVkRXJyb3IobV9yZXF1ZXN0KTsKICAg
ICBlcnJvci5zZXRUeXBlKFdlYkNvcmU6OlJlc291cmNlRXJyb3I6OlR5cGU6OkNhbmNlbGxhdGlv
bik7Ci0gICAgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKG1fbWFpbkZyYW1lLT5mcmFt
ZUlEKCksIHsgfSwgbV9uYXZpZ2F0aW9uSUQsIG1fcHJvdmlzaW9uYWxMb2FkVVJMLCBlcnJvciwg
VXNlckRhdGEgeyB9KTsgLy8gV2lsbCBkZWxldGUgfHRoaXN8LgorICAgIGRpZEZhaWxQcm92aXNp
b25hbExvYWRGb3JGcmFtZShtX21haW5GcmFtZS0+ZnJhbWVJRCgpLCB7IH0sIG1fbmF2aWdhdGlv
bklELCBtX3Byb3Zpc2lvbmFsTG9hZFVSTCwgZXJyb3IsIGZhbHNlLCBVc2VyRGF0YSB7IH0pOyAv
LyBXaWxsIGRlbGV0ZSB8dGhpc3wuCiB9CiAKIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6Omlu
aXRpYWxpemVXZWJQYWdlKCkKQEAgLTE4OSw3ICsxODksNyBAQCBpbmxpbmUgYm9vbCBQcm92aXNp
b25hbFBhZ2VQcm94eTo6dmFsaWRhdGVJbnB1dCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBPcHRp
b25hbAogICAgIGlmICghbV9tYWluRnJhbWUgfHwgbV9tYWluRnJhbWUtPmZyYW1lSUQoKSAhPSBm
cmFtZUlEKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICByZXR1cm4gIW5hdmlnYXRpb25J
RCB8fCAqbmF2aWdhdGlvbklEID09IG1fbmF2aWdhdGlvbklEOworICAgIHJldHVybiAhbmF2aWdh
dGlvbklEIHx8ICEqbmF2aWdhdGlvbklEIHx8ICpuYXZpZ2F0aW9uSUQgPT0gbV9uYXZpZ2F0aW9u
SUQ7CiB9CiAKIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZENyZWF0ZU1haW5GcmFtZSh1
aW50NjRfdCBmcmFtZUlEKQpAQCAtMjQ3LDcgKzI0Nyw3IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdl
UHJveHk6OmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
dWluCiAgICAgbV9wYWdlLmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQobV9w
cm9jZXNzLmNvcHlSZWYoKSwgZnJhbWVJRCwgbmF2aWdhdGlvbklELCBXVEZNb3ZlKHVybCksIFdU
Rk1vdmUodW5yZWFjaGFibGVVUkwpLCB1c2VyRGF0YSk7CiB9CiAKLXZvaWQgUHJvdmlzaW9uYWxQ
YWdlUHJveHk6OmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlE
LCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4s
IHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBwcm92aXNpb25hbFVSTCwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYgZXJyb3IsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0
YSkKK3ZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JG
cmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEm
IGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5n
JiBwcm92aXNpb25hbFVSTCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYgZXJyb3IsIGJv
b2wgd2lsbEtlZXBMb2FkaW5nLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgaWYg
KCF2YWxpZGF0ZUlucHV0KGZyYW1lSUQsIG5hdmlnYXRpb25JRCkpCiAgICAgICAgIHJldHVybjsK
QEAgLTI2MCw3ICsyNjAsNyBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRGYWlsUHJv
dmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29ucwogICAgIGlmIChhdXRv
KiBwYWdlTWFpbkZyYW1lID0gbV9wYWdlLm1haW5GcmFtZSgpKQogICAgICAgICBwYWdlTWFpbkZy
YW1lLT5kaWRGYWlsUHJvdmlzaW9uYWxMb2FkKCk7CiAKLSAgICBtX3BhZ2UuZGlkRmFpbFByb3Zp
c2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIGZy
YW1lU2VjdXJpdHlPcmlnaW4sIG5hdmlnYXRpb25JRCwgcHJvdmlzaW9uYWxVUkwsIGVycm9yLCB1
c2VyRGF0YSk7IC8vIFdpbGwgZGVsZXRlIHx0aGlzfC4KKyAgICBtX3BhZ2UuZGlkRmFpbFByb3Zp
c2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIGZy
YW1lU2VjdXJpdHlPcmlnaW4sIG5hdmlnYXRpb25JRCwgcHJvdmlzaW9uYWxVUkwsIGVycm9yLCB3
aWxsS2VlcExvYWRpbmcsIHVzZXJEYXRhKTsgLy8gTWF5IGRlbGV0ZSB8dGhpc3wuCiB9CiAKIHZv
aWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZENvbW1pdExvYWRGb3JGcmFtZSh1aW50NjRfdCBm
cmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJv
b2wgZnJhbWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXIsIHVpbnQzMl90IGZyYW1lTG9hZFR5cGUs
IGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvLCBib29sIGNv
bnRhaW5zUGx1Z2luRG9jdW1lbnQsIE9wdGlvbmFsPFdlYkNvcmU6Okhhc0luc2VjdXJlQ29udGVu
dD4gZm9yY2VkSGFzSW5zZWN1cmVDb250ZW50LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCkBA
IC0zMDEsNiArMzAxLDkgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKHVpbnQ2NF90IGZyYW1lSUQKIAogICAgIG1fcGFnZS5k
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmNTaGFyZWQobV9wcm9jZXNzLmNvcHlS
ZWYoKSwgZnJhbWVJRCwgV1RGTW92ZShmcmFtZVNlY3VyaXR5T3JpZ2luKSwgaWRlbnRpZmllciwg
bmF2aWdhdGlvbklELCBXVEZNb3ZlKG5hdmlnYXRpb25BY3Rpb25EYXRhKSwKICAgICAgICAgV1RG
TW92ZShmcmFtZUluZm9EYXRhKSwgb3JpZ2luYXRpbmdQYWdlSUQsIG9yaWdpbmFsUmVxdWVzdCwg
V1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShyZXF1ZXN0Qm9keSksIFdURk1vdmUocmVkaXJlY3RS
ZXNwb25zZSksIHVzZXJEYXRhLCBsaXN0ZW5lcklEKTsKKworICAgIC8vIGRlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb25Bc3luY1NoYXJlZCgpIGdlbmVyYXRlcyBhIG5hdmlnYXRpb25JRCBp
ZiB0aGUgbmF2aWdhdGlvbiBpcyBpbml0aWF0ZWQgYnkgdGhlIFdlYlByb2Nlc3MgYW5kIHRoZSBu
YXZpZ2F0aW9uSUQgc2VudCBieSB0aGUgV2ViUHJvY2VzcyB3YXMgMC4KKyAgICBtX25hdmlnYXRp
b25JRCA9IG5hdmlnYXRpb25JRDsKIH0KIAogdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVj
aWRlUG9saWN5Rm9yUmVzcG9uc2UodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVj
a0lkZW50aWZpZXIgaWRlbnRpZmllciwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92
aXNpb25hbFBhZ2VQcm94eS5oCmluZGV4IDRlZjJiNzZkNTg3Li41N2NkZjEyYzllMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5oCkBAIC0xMDQs
NyArMTA0LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZENyZWF0ZU1haW5GcmFtZSh1aW50NjRf
dCBmcmFtZUlEKTsKICAgICB2b2lkIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWlu
dDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJiwgVVJMJiYgdW5yZWFj
aGFibGVVUkwsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCBkaWRDb21taXRMb2FkRm9yRnJh
bWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcm
IG1pbWVUeXBlLCBib29sIGZyYW1lSGFzQ3VzdG9tQ29udGVudFByb3ZpZGVyLCB1aW50MzJfdCBm
cmFtZUxvYWRUeXBlLCBjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mLCBib29sIGNvbnRh
aW5zUGx1Z2luRG9jdW1lbnQsIE9wdGlvbmFsPFdlYkNvcmU6Okhhc0luc2VjdXJlQ29udGVudD4g
Zm9yY2VkSGFzSW5zZWN1cmVDb250ZW50LCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQgZGlk
RmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2
aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZUVycm9yJiwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRpZEZhaWxQcm92aXNp
b25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwg
Y29uc3QgU3RyaW5nJiBwcm92aXNpb25hbFVSTCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJv
ciYsIGJvb2wgd2lsbEtlZXBMb2FkaW5nLCBjb25zdCBVc2VyRGF0YSYpOwogICAgIHZvaWQgc3Rh
cnRVUkxTY2hlbWVUYXNrKFVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJzJiYpOwogICAgIHZvaWQgYmFj
a0ZvcndhcmRHb1RvSXRlbShjb25zdCBXZWJDb3JlOjpCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVy
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJik+JiYp
OwogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmModWludDY0X3Qg
ZnJhbWVJRCwgYm9vbCBpc01haW5GcmFtZSwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYs
IFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBO
YXZpZ2F0aW9uQWN0aW9uRGF0YSYmLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKaW5kZXggZTJjOTc4ZTc1NGEuLmYzNmJlMzI0YjE3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTQwMTUsMTcgKzQwMTUsMTcgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OmRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlBy
b2Nlc3NQcm94eT4mJgogICAgIGZyYW1lLT5kaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92
aXNpb25hbExvYWQodXJsKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZhaWxQcm92aXNp
b25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRh
dGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3Ry
aW5nJiBwcm92aXNpb25hbFVSTCwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IsIGNvbnN0IFVz
ZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxM
b2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBm
cmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYg
cHJvdmlzaW9uYWxVUkwsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBib29sIHdpbGxLZWVw
TG9hZGluZywgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIGlmIChtX3Byb3Zpc2lv
bmFsUGFnZSAmJiBtX3Byb3Zpc2lvbmFsUGFnZS0+bmF2aWdhdGlvbklEKCkgPT0gbmF2aWdhdGlv
bklEKSB7CiAgICAgICAgIC8vIFRoZSBsb2FkIGRpZCBub3QgZmFpbCwgaXQgaXMgbWVyZWx5IGhh
cHBlbmluZyBpbiBhIG5ldyBwcm92aXNpb25hbCBwcm9jZXNzLgogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0gICAgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKG1fcHJvY2Vz
cy5jb3B5UmVmKCksIGZyYW1lSUQsIGZyYW1lU2VjdXJpdHlPcmlnaW4sIG5hdmlnYXRpb25JRCwg
cHJvdmlzaW9uYWxVUkwsIGVycm9yLCB1c2VyRGF0YSk7CisgICAgZGlkRmFpbFByb3Zpc2lvbmFs
TG9hZEZvckZyYW1lU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIGZyYW1lU2Vj
dXJpdHlPcmlnaW4sIG5hdmlnYXRpb25JRCwgcHJvdmlzaW9uYWxVUkwsIGVycm9yLCB3aWxsS2Vl
cExvYWRpbmcsIHVzZXJEYXRhKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZhaWxQcm92
aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3Ms
IHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0
eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFs
VVJMLCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRh
KQordm9pZCBXZWJQYWdlUHJveHk6OmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJl
ZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0
IFNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdh
dGlvbklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBSZXNvdXJjZUVycm9y
JiBlcnJvciwgYm9vbCB3aWxsS2VlcExvYWRpbmcsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkK
IHsKICAgICBMT0coTG9hZGluZywgIihMb2FkaW5nKSBXZWJQYWdlUHJveHkgJSIgUFJJdTY0ICIg
aW4gd2ViIHByb2Nlc3MgcGlkICVpIGRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSB0byBw
cm92aXNpb25hbFVSTCAlcyIsIG1fcGFnZUlELCBwcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigp
LCBwcm92aXNpb25hbFVSTC51dGY4KCkuZGF0YSgpKTsKICAgICBSRUxFQVNFX0xPR19JRl9BTExP
V0VEKFByb2Nlc3MsICJkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWU6IHdlYlBJRCA9ICVp
LCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBkb21haW4gPSAl
cywgY29kZSA9ICVkIiwgcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQsIGZy
YW1lSUQsIGVycm9yLmRvbWFpbigpLnV0ZjgoKS5kYXRhKCksIGVycm9yLmVycm9yQ29kZSgpKTsK
QEAgLTQwNzIsNyArNDA3Miw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9u
YWxMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwCiAgICAgbV9mYWls
aW5nUHJvdmlzaW9uYWxMb2FkVVJMID0geyB9OwogCiAgICAgLy8gSWYgdGhlIHByb3Zpc2lvbmFs
IHBhZ2UncyBsb2FkIGZhaWxzIHRoZW4gd2UgZGVzdHJveSB0aGUgcHJvdmlzaW9uYWwgcGFnZS4K
LSAgICBpZiAobV9wcm92aXNpb25hbFBhZ2UgJiYgbV9wcm92aXNpb25hbFBhZ2UtPm1haW5GcmFt
ZSgpID09IGZyYW1lKQorICAgIGlmIChtX3Byb3Zpc2lvbmFsUGFnZSAmJiBtX3Byb3Zpc2lvbmFs
UGFnZS0+bWFpbkZyYW1lKCkgPT0gZnJhbWUgJiYgIXdpbGxLZWVwTG9hZGluZykKICAgICAgICAg
bV9wcm92aXNpb25hbFBhZ2UgPSBudWxscHRyOwogfQogCkBAIC00NDk1LDcgKzQ0OTUsNyBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKHVp
bnQ2NF90IGZyYW1lSUQsIFdlYkNvcgogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYg
cHJvY2VzcywgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYg
ZnJhbWVTZWN1cml0eU9yaWdpbiwKLSAgICBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIg
aWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYm
IG5hdmlnYXRpb25BY3Rpb25EYXRhLCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvRGF0YSwgdWlu
dDY0X3Qgb3JpZ2luYXRpbmdQYWdlSUQsCisgICAgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlm
aWVyIGlkZW50aWZpZXIsIHVpbnQ2NF90JiBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25E
YXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm9EYXRh
LCB1aW50NjRfdCBvcmlnaW5hdGluZ1BhZ2VJRCwKICAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVx
dWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwKICAgICBjb25zdCBVc2VyRGF0YSYgdXNl
ckRhdGEsIHVpbnQ2NF90IGxpc3RlbmVySUQpCiB7CkBAIC00NTEwLDcgKzQ1MTAsNyBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVk
KFJlZjxXZWJQcm9jZXNzUHJveAogICAgICAgICBvcmlnaW5hbFJlcXVlc3QsIFdURk1vdmUocmVx
dWVzdCksIFdURk1vdmUocmVxdWVzdEJvZHkpLCBXVEZNb3ZlKHJlZGlyZWN0UmVzcG9uc2UpLCB1
c2VyRGF0YSwgV1RGTW92ZShzZW5kZXIpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lk
ZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNz
LCBXZWJGcmFtZVByb3h5JiBmcmFtZSwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJh
bWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELAordm9pZCBXZWJQYWdlUHJv
eHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oUmVmPFdlYlByb2Nlc3NQcm94eT4m
JiBwcm9jZXNzLCBXZWJGcmFtZVByb3h5JiBmcmFtZSwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QmIG5hdmlnYXRpb25JRCwKICAgICBO
YXZpZ2F0aW9uQWN0aW9uRGF0YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBGcmFtZUluZm9EYXRh
JiYgb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLCB1aW50NjRfdCBvcmlnaW5hdGluZ1BhZ2VJRCwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsCiAgICAgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYm
IHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25z
ZSwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhLCBSZWY8UG9saWN5RGVjaXNpb25TZW5kZXI+JiYg
c2VuZGVyKQogewpAQCAtNDU1Nyw3ICs0NTU3LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lk
ZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXMK
ICAgICAgICAgICAgIG5hdmlnYXRpb24gPSBtX25hdmlnYXRpb25TdGF0ZS0+Y3JlYXRlTG9hZFJl
cXVlc3ROYXZpZ2F0aW9uKFJlc291cmNlUmVxdWVzdChyZXF1ZXN0KSwgbV9iYWNrRm9yd2FyZExp
c3QtPmN1cnJlbnRJdGVtKCkpOwogICAgIH0KIAotICAgIHVpbnQ2NF90IG5ld05hdmlnYXRpb25J
RCA9IG5hdmlnYXRpb24tPm5hdmlnYXRpb25JRCgpOworICAgIG5hdmlnYXRpb25JRCA9IG5hdmln
YXRpb24tPm5hdmlnYXRpb25JRCgpOwogICAgIG5hdmlnYXRpb24tPnNldEN1cnJlbnRSZXF1ZXN0
KFJlc291cmNlUmVxdWVzdChyZXF1ZXN0KSwgcHJvY2Vzcy0+Y29yZVByb2Nlc3NJZGVudGlmaWVy
KCkpOwogICAgIG5hdmlnYXRpb24tPnNldExhc3ROYXZpZ2F0aW9uQWN0aW9uKG5hdmlnYXRpb25B
Y3Rpb25EYXRhKTsKICAgICBuYXZpZ2F0aW9uLT5zZXRPcmlnaW5hdGluZ0ZyYW1lSW5mbyhvcmln
aW5hdGluZ0ZyYW1lSW5mb0RhdGEpOwpAQCAtNDU2Niw5ICs0NTY2LDcgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oUmVmPFdlYlByb2Nlc3NQcm94
eT4mJiBwcm9jZXMKIAogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKICAgICBpZiAoZnJh
bWUuZGlkSGFuZGxlQ29udGVudEZpbHRlclVuYmxvY2tOYXZpZ2F0aW9uKHJlcXVlc3QpKQotICAg
ICAgICByZXR1cm4gcmVjZWl2ZWRQb2xpY3lEZWNpc2lvbihQb2xpY3lBY3Rpb246Oklnbm9yZSwg
bV9uYXZpZ2F0aW9uU3RhdGUtPm5hdmlnYXRpb24obmV3TmF2aWdhdGlvbklEKSwgV1RGOjpudWxs
b3B0LCBXVEZNb3ZlKHNlbmRlcikpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0obmV3TmF2aWdh
dGlvbklEKTsKKyAgICAgICAgcmV0dXJuIHJlY2VpdmVkUG9saWN5RGVjaXNpb24oUG9saWN5QWN0
aW9uOjpJZ25vcmUsIG1fbmF2aWdhdGlvblN0YXRlLT5uYXZpZ2F0aW9uKG5hdmlnYXRpb25JRCks
IFdURjo6bnVsbG9wdCwgV1RGTW92ZShzZW5kZXIpKTsKICNlbmRpZgogCiAgICAgU2hvdWxkRXhw
ZWN0U2FmZUJyb3dzaW5nUmVzdWx0IHNob3VsZEV4cGVjdFNhZmVCcm93c2luZ1Jlc3VsdCA9IFNo
b3VsZEV4cGVjdFNhZmVCcm93c2luZ1Jlc3VsdDo6WWVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaAppbmRleCAzNTdkYzFiNWIyOS4uMTAwODMzN2I1NTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xNDgzLDE0ICsxNDgzLDE0IEBAIHB1Ymxp
YzoKIAogICAgIC8vIExvZ2ljIHNoYXJlZCBiZXR3ZWVuIHRoZSBXZWJQYWdlUHJveHkgYW5kIHRo
ZSBQcm92aXNpb25hbFBhZ2VQcm94eS4KICAgICB2b2lkIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2Fk
Rm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgdWludDY0X3QgZnJhbWVJRCwg
dWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJiwgVVJMJiYgdW5yZWFjaGFibGVVUkwsIGNvbnN0
IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFy
ZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZp
Z2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlRXJyb3ImLCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlkRmFpbFByb3Zpc2lv
bmFsTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIHVpbnQ2NF90IGZy
YW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9y
aWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJM
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgYm9vbCB3aWxsS2VlcExvYWRpbmcsIGNv
bnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92
aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCB1aW50NjRf
dCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYmLCBjb25zdCBVc2VyRGF0YSYpOwogICAgIHZvaWQgZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0
U2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3Ry
aW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCB1aW50NjRfdCBmcmFtZUlE
KTsKICAgICB2b2lkIGRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdFNoYXJlZChSZWY8V2ViUHJvY2Vz
c1Byb3h5PiYmLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBk
ZXN0aW5hdGlvblVSTFN0cmluZywgdWludDY0X3QgZnJhbWVJRCk7CiAgICAgdm9pZCBkaWROYXZp
Z2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBjb25z
dCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlJiwgdWludDY0X3QgZnJhbWVJRCk7CiAgICAgdm9pZCBk
aWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+
JiYsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYpOwogICAg
IHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKFJlZjxXZWJQ
cm9jZXNzUHJveHk+JiYsIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YSYmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmll
ciwKLSAgICAgICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYm
LCBGcmFtZUluZm9EYXRhJiYsIHVpbnQ2NF90IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiYsCisgICAgICAgIHVpbnQ2NF90JiBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rp
b25EYXRhJiYsIEZyYW1lSW5mb0RhdGEmJiwgdWludDY0X3Qgb3JpZ2luYXRpbmdQYWdlSUQsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmJiwKICAgICAgICAgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVl
c3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29u
c3QgVXNlckRhdGEmLCB1aW50NjRfdCBsaXN0ZW5lcklEKTsKICAgICB2b2lkIGRlY2lkZVBvbGlj
eUZvclJlc3BvbnNlU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIHVpbnQ2NF90IGZyYW1l
SUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdp
biwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLAogICAgICAgICB1aW50NjRfdCBuYXZp
Z2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmLCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBk
b3dubG9hZEF0dHJpYnV0ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsK
QEAgLTE1ODUsNyArMTU4NSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCB3aWxsUGVyZm9ybUNsaWVu
dFJlZGlyZWN0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB1cmwsIGRv
dWJsZSBkZWxheSwgV2ViQ29yZTo6TG9ja0JhY2tGb3J3YXJkTGlzdCk7CiAgICAgdm9pZCBkaWRD
YW5jZWxDbGllbnRSZWRpcmVjdEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpOwogICAgIHZvaWQg
ZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRf
dCBuYXZpZ2F0aW9uSUQsIFVSTCYmKTsKLSAgICB2b2lkIGRpZEZhaWxQcm92aXNpb25hbExvYWRG
b3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3Ry
aW5nJiBwcm92aXNpb25hbFVSTCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIGNvbnN0
IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWlu
dDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNl
Y3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlz
aW9uYWxVUkwsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBib29sIHdpbGxLZWVwTG9h
ZGluZywgY29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIGRpZENvbW1pdExvYWRGb3JGcmFtZSh1
aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgbWlt
ZVR5cGUsIGJvb2wgZnJhbWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXIsIHVpbnQzMl90IGZyYW1l
TG9hZFR5cGUsIGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYsIGJvb2wgY29udGFpbnNQ
bHVnaW5Eb2N1bWVudCwgT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50PiBmb3Jj
ZWRIYXNJbnNlY3VyZUNvbnRlbnQsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCBkaWRGaW5p
c2hEb2N1bWVudExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0
aW9uSUQsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCBkaWRGaW5pc2hMb2FkRm9yRnJhbWUo
dWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBVc2VyRGF0YSYp
OwpAQCAtMTYxMSw3ICsxNjExLDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgZGlkRGVzdHJveU5h
dmlnYXRpb24odWludDY0X3QgbmF2aWdhdGlvbklEKTsKIAotICAgIHZvaWQgZGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvbihSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJGcmFtZVByb3h5
JiwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwg
TmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwKKyAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRp
b25BY3Rpb24oUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViRnJhbWVQcm94eSYsIFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCB1aW50NjRfdCYgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9u
QWN0aW9uRGF0YSYmLAogICAgICAgICBGcmFtZUluZm9EYXRhJiYsIHVpbnQ2NF90IG9yaWdpbmF0
aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVz
dCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiBy
ZXF1ZXN0Qm9keSwKICAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0
UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRhJiwgUmVmPFBvbGljeURlY2lzaW9uU2VuZGVyPiYmKTsK
ICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyh1aW50NjRfdCBm
cmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hl
Y2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRh
JiYsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW4KaW5kZXggMWQ0NGM2YTRiNTEuLjE0NzE3NWE5YjI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0xMjcsNyArMTI3LDcgQEAg
bWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBXaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0
Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIHVybCwgZG91YmxlIGRlbGF5LCBlbnVt
OmJvb2wgV2ViQ29yZTo6TG9ja0JhY2tGb3J3YXJkTGlzdCBsb2NrQmFja0ZvcndhcmRMaXN0KQog
ICAgIERpZENhbmNlbENsaWVudFJlZGlyZWN0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCkKICAg
ICBEaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgVVJMIHVybCkKLSAgICBEaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9y
RnJhbWUodWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFN0cmluZyBwcm92
aXNpb25hbFVSTCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvciwgV2ViS2l0OjpVc2VyRGF0
YSB1c2VyRGF0YSkKKyAgICBEaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3Qg
ZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5
T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFN0cmluZyBwcm92aXNpb25hbFVSTCwgV2Vi
Q29yZTo6UmVzb3VyY2VFcnJvciBlcnJvciwgYm9vbCB3aWxsS2VlcExvYWRpbmcsIFdlYktpdDo6
VXNlckRhdGEgdXNlckRhdGEpCiAgICAgRGlkQ29tbWl0TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZy
YW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgU3RyaW5nIG1pbWVUeXBlLCBib29sIGhhc0N1
c3RvbUNvbnRlbnRQcm92aWRlciwgdWludDMyX3QgbG9hZFR5cGUsIFdlYkNvcmU6OkNlcnRpZmlj
YXRlSW5mbyBjZXJ0aWZpY2F0ZUluZm8sIGJvb2wgY29udGFpbnNQbHVnaW5Eb2N1bWVudCwgT3B0
aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50PiBmb3JjZWRIYXNJbnNlY3VyZUNvbnRl
bnQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCiAgICAgRGlkRmFpbExvYWRGb3JGcmFtZSh1
aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNl
RXJyb3IgZXJyb3IsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCiAgICAgRGlkRmluaXNoRG9j
dW1lbnRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5j
cHAKaW5kZXggNGFjOWRiNjM4ZTUuLmZjN2IyOGJhNWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5jcHAKQEAgLTUzNSw3ICs1MzUsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50
OjpkaXNwYXRjaERpZENvbW1pdExvYWQoT3B0aW9uYWw8SGFzSW5zZWN1cmVDb250ZW50PiBoYQog
ICAgIHdlYlBhZ2UtPmRpZENvbW1pdExvYWQobV9mcmFtZSk7CiB9CiAKLXZvaWQgV2ViRnJhbWVM
b2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZChjb25zdCBSZXNvdXJj
ZUVycm9yJiBlcnJvcikKK3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFp
bFByb3Zpc2lvbmFsTG9hZChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciwgYm9vbCB3aWxsS2Vl
cExvYWRpbmcpCiB7CiAgICAgV2ViUGFnZSogd2ViUGFnZSA9IG1fZnJhbWUtPnBhZ2UoKTsKICAg
ICBpZiAoIXdlYlBhZ2UpCkBAIC01NjQsNyArNTY0LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNs
aWVudDo6ZGlzcGF0Y2hEaWRGYWlsUHJvdmlzaW9uYWxMb2FkKGNvbnN0IFJlc291cmNlRXJyb3Im
IGUKIAogICAgIC8vIE5vdGlmeSB0aGUgVUlQcm9jZXNzLgogICAgIFdlYkNvcmU6OkZyYW1lKiBj
b3JlRnJhbWUgPSBtX2ZyYW1lID8gbV9mcmFtZS0+Y29yZUZyYW1lKCkgOiBudWxscHRyOwotICAg
IHdlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkRmFpbFByb3Zpc2lvbmFs
TG9hZEZvckZyYW1lKG1fZnJhbWUtPmZyYW1lSUQoKSwgU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9t
RnJhbWUoY29yZUZyYW1lKSwgbmF2aWdhdGlvbklELCBtX2ZyYW1lLT5jb3JlRnJhbWUoKS0+bG9h
ZGVyKCkucHJvdmlzaW9uYWxMb2FkRXJyb3JCZWluZ0hhbmRsZWRVUkwoKSwgZXJyb3IsIFVzZXJE
YXRhKFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnRyYW5zZm9ybU9iamVjdHNUb0hhbmRsZXModXNl
ckRhdGEuZ2V0KCkpLmdldCgpKSkpOworICAgIHdlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6RGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKG1fZnJhbWUtPmZyYW1lSUQo
KSwgU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tRnJhbWUoY29yZUZyYW1lKSwgbmF2aWdhdGlvbklE
LCBtX2ZyYW1lLT5jb3JlRnJhbWUoKS0+bG9hZGVyKCkucHJvdmlzaW9uYWxMb2FkRXJyb3JCZWlu
Z0hhbmRsZWRVUkwoKSwgZXJyb3IsIHdpbGxLZWVwTG9hZGluZywgVXNlckRhdGEoV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkudHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxlcyh1c2VyRGF0YS5nZXQoKSku
Z2V0KCkpKSk7CiAKICAgICAvLyBJZiB3ZSBoYXZlIGEgbG9hZCBsaXN0ZW5lciwgbm90aWZ5IGl0
LgogICAgIGlmIChXZWJGcmFtZTo6TG9hZExpc3RlbmVyKiBsb2FkTGlzdGVuZXIgPSBtX2ZyYW1l
LT5sb2FkTGlzdGVuZXIoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggY2I0ZmY1
YzE5NWMuLjIxMmU0ZGE5NDU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMTEy
LDcgKzExMiw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaXNwYXRjaERpZFN0YXJ0UHJvdmlzaW9u
YWxMb2FkKCkgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERpZFJlY2VpdmVUaXRsZShjb25zdCBX
ZWJDb3JlOjpTdHJpbmdXaXRoRGlyZWN0aW9uJikgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERp
ZENvbW1pdExvYWQoT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50PikgZmluYWw7
Ci0gICAgdm9pZCBkaXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQoY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VFcnJvciYpIGZpbmFsOworICAgIHZvaWQgZGlzcGF0Y2hEaWRGYWlsUHJvdmlzaW9u
YWxMb2FkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBib29sIHdpbGxLZWVwTG9hZGlu
ZykgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERpZEZhaWxMb2FkKGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlRXJyb3ImKSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoRGlkRmluaXNoRG9jdW1lbnRM
b2FkKCkgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERpZEZpbmlzaExvYWQoKSBmaW5hbDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IGI1N2FjMWY1YjE2Li5hNjJjYjNkYmNmYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC0xMTcsNyArMTE3LDcgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIGRpc3BhdGNoRGlkU3RhcnRQcm92aXNpb25hbExvYWQoKSBmaW5hbDsKICAgICB2b2lk
IGRpc3BhdGNoRGlkUmVjZWl2ZVRpdGxlKGNvbnN0IFdlYkNvcmU6OlN0cmluZ1dpdGhEaXJlY3Rp
b24mKSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoRGlkQ29tbWl0TG9hZChPcHRpb25hbDxXZWJD
b3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQ+KSBmaW5hbDsKLSAgICB2b2lkIGRpc3BhdGNoRGlkRmFp
bFByb3Zpc2lvbmFsTG9hZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJikgZmluYWw7Cisg
ICAgdm9pZCBkaXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQoY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VFcnJvciYsIGJvb2wgd2lsbEtlZXBMb2FkaW5nKSBmaW5hbDsKICAgICB2b2lkIGRpc3Bh
dGNoRGlkRmFpbExvYWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpIGZpbmFsOwogICAg
IHZvaWQgZGlzcGF0Y2hEaWRGaW5pc2hEb2N1bWVudExvYWQoKSBmaW5hbDsKICAgICB2b2lkIGRp
c3BhdGNoRGlkRmluaXNoTG9hZCgpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0gYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQpp
bmRleCA0Yjk0MjE3Mjk5Ny4uMGYwYzBmMjdkZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
Lm1tCkBAIC03MjQsNyArNzI0LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0
Y2hEaWRDb21taXRMb2FkKE9wdGlvbmFsPEhhc0luc2VjdXJlQ29udGVudD4pCiAgICAgICAgIENh
bGxGcmFtZUxvYWREZWxlZ2F0ZShpbXBsZW1lbnRhdGlvbnMtPmRpZENvbW1pdExvYWRGb3JGcmFt
ZUZ1bmMsIHdlYlZpZXcsIEBzZWxlY3Rvcih3ZWJWaWV3OmRpZENvbW1pdExvYWRGb3JGcmFtZTop
LCBtX3dlYkZyYW1lLmdldCgpKTsKIH0KIAotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlz
cGF0Y2hEaWRGYWlsUHJvdmlzaW9uYWxMb2FkKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQor
dm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGYWlsUHJvdmlzaW9uYWxMb2Fk
KGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBib29sIHdpbGxLZWVwTG9hZGluZykKIHsKICAg
ICBtX3dlYkZyYW1lLT5fcHJpdmF0ZS0+cHJvdmlzaW9uYWxVUkwgPSBudWxscHRyOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggZDBkNjZkMTU5YjUuLjk5ZTVmMDc0Y2M5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC00NDUsNyArNDQ1LDcgQEAgdm9pZCBX
ZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRDb21taXRMb2FkKE9wdGlvbmFsPEhhc0lu
c2VjdXJlQ29udGVudD4pCiAgICAgICAgIGZyYW1lTG9hZERlbGVnYXRlLT5kaWRDb21taXRMb2Fk
Rm9yRnJhbWUod2ViVmlldywgbV93ZWJGcmFtZSk7CiB9CiAKLXZvaWQgV2ViRnJhbWVMb2FkZXJD
bGllbnQ6OmRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZChjb25zdCBSZXNvdXJjZUVycm9y
JiBlcnJvcikKK3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbFByb3Zp
c2lvbmFsTG9hZChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciwgYm9vbCB3aWxsS2VlcExvYWRp
bmcpCiB7CiAgICAgV2ViVmlldyogd2ViVmlldyA9IG1fd2ViRnJhbWUtPndlYlZpZXcoKTsKICAg
ICBDT01QdHI8SVdlYkZyYW1lTG9hZERlbGVnYXRlPiBmcmFtZUxvYWREZWxlZ2F0ZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDU3ZTRiYmFiYWVhLi41MjBhMjk3M2E5ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC05NCw3ICs5NCw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IGRpc3BhdGNoRGlkU3RhcnRQcm92aXNpb25hbExvYWQoKSBvdmVycmlkZTsKICAgICB2b2lkIGRp
c3BhdGNoRGlkUmVjZWl2ZVRpdGxlKGNvbnN0IFdlYkNvcmU6OlN0cmluZ1dpdGhEaXJlY3Rpb24m
KSBvdmVycmlkZTsKICAgICB2b2lkIGRpc3BhdGNoRGlkQ29tbWl0TG9hZChPcHRpb25hbDxXZWJD
b3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQ+KSBvdmVycmlkZTsKLSAgICB2b2lkIGRpc3BhdGNoRGlk
RmFpbFByb3Zpc2lvbmFsTG9hZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJikgb3ZlcnJp
ZGU7CisgICAgdm9pZCBkaXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQoY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VFcnJvciYsIGJvb2wgd2lsbEtlZXBMb2FkaW5nKSBvdmVycmlkZTsKICAgICB2
b2lkIGRpc3BhdGNoRGlkRmFpbExvYWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpIG92
ZXJyaWRlOwogICAgIHZvaWQgZGlzcGF0Y2hEaWRGaW5pc2hEb2N1bWVudExvYWQoKSBvdmVycmlk
ZTsKICAgICB2b2lkIGRpc3BhdGNoRGlkRmluaXNoTG9hZCgpIG92ZXJyaWRlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>367827</attachid>
            <date>2019-04-19 14:32:45 -0700</date>
            <delta_ts>2019-04-19 15:27:05 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>197097_pson_form_resubmit_bug2_wip.patch</filename>
            <type>text/plain</type>
            <size>28208</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4
IGE4ZDJjODg5OGNlLi40ZjBiYjg2ZGRkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCkBAIC04NCw3ICs4NCw3IEBAIGNsYXNzIFdFQkNPUkVf
RVhQT1JUIEVtcHR5RnJhbWVMb2FkZXJDbGllbnQgOiBwdWJsaWMgRnJhbWVMb2FkZXJDbGllbnQg
ewogICAgIHZvaWQgZGlzcGF0Y2hEaWRTdGFydFByb3Zpc2lvbmFsTG9hZCgpIGZpbmFsIHsgfQog
ICAgIHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZlVGl0bGUoY29uc3QgU3RyaW5nV2l0aERpcmVjdGlv
biYpIGZpbmFsIHsgfQogICAgIHZvaWQgZGlzcGF0Y2hEaWRDb21taXRMb2FkKE9wdGlvbmFsPEhh
c0luc2VjdXJlQ29udGVudD4pIGZpbmFsIHsgfQotICAgIHZvaWQgZGlzcGF0Y2hEaWRGYWlsUHJv
dmlzaW9uYWxMb2FkKGNvbnN0IFJlc291cmNlRXJyb3ImKSBmaW5hbCB7IH0KKyAgICB2b2lkIGRp
c3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZChjb25zdCBSZXNvdXJjZUVycm9yJiwgV2lsbENv
bnRpbnVlTG9hZGluZykgZmluYWwgeyB9CiAgICAgdm9pZCBkaXNwYXRjaERpZEZhaWxMb2FkKGNv
bnN0IFJlc291cmNlRXJyb3ImKSBmaW5hbCB7IH0KICAgICB2b2lkIGRpc3BhdGNoRGlkRmluaXNo
RG9jdW1lbnRMb2FkKCkgZmluYWwgeyB9CiAgICAgdm9pZCBkaXNwYXRjaERpZEZpbmlzaExvYWQo
KSBmaW5hbCB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IGUwMTgy
NWU1N2IxLi41NzczYzk4YTAyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3Bw
CkBAIC0yNDY1LDcgKzI0NjUsOCBAQCB2b2lkIEZyYW1lTG9hZGVyOjpjaGVja0xvYWRDb21wbGV0
ZUZvclRoaXNGcmFtZSgpCiAgICAgICAgICAgICBpZiAoIXBkbC0+aXNMb2FkaW5nSW5BUElTZW5z
ZSgpIHx8IHBkbC0+aXNTdG9wcGluZygpKSB7CiAgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0df
SUZfQUxMT1dFRCgiY2hlY2tMb2FkQ29tcGxldGVGb3JUaGlzRnJhbWU6IEZhaWxlZCBwcm92aXNp
b25hbCBsb2FkIChmcmFtZSA9ICVwLCBtYWluID0gJWQsIGlzVGltZW91dCA9ICVkLCBpc0NhbmNl
bGxhdGlvbiA9ICVkLCBlcnJvckNvZGUgPSAlZCkiLCAmbV9mcmFtZSwgbV9mcmFtZS5pc01haW5G
cmFtZSgpLCBlcnJvci5pc1RpbWVvdXQoKSwgZXJyb3IuaXNDYW5jZWxsYXRpb24oKSwgZXJyb3Iu
ZXJyb3JDb2RlKCkpOwogICAgICAgICAgICAgICAgIG1fcHJvdmlzaW9uYWxMb2FkRXJyb3JCZWlu
Z0hhbmRsZWRVUkwgPSBtX3Byb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXItPnVybCgpOwotICAgICAg
ICAgICAgICAgIG1fY2xpZW50LmRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZChlcnJvcik7
CisKKyAgICAgICAgICAgICAgICBtX2NsaWVudC5kaXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExv
YWQoZXJyb3IsIGhpc3RvcnkoKS5wcm92aXNpb25hbEl0ZW0oKSA/IFdpbGxDb250aW51ZUxvYWRp
bmc6OlllcyA6IFdpbGxDb250aW51ZUxvYWRpbmc6Ok5vKTsKICNpZiBFTkFCTEUoQ09OVEVOVF9G
SUxURVJJTkcpCiAgICAgICAgICAgICAgICAgaWYgKGF1dG8gY29udGVudEZpbHRlciA9IHBkbC0+
Y29udGVudEZpbHRlcigpKQogICAgICAgICAgICAgICAgICAgICBjb250ZW50RmlsdGVyLT5oYW5k
bGVQcm92aXNpb25hbExvYWRGYWlsdXJlKGVycm9yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggZmExZGY2MGEzYTkuLmVjMzkxMjdhMWFkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMTc3LDcgKzE3Nyw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRTdGFydFByb3Zpc2lvbmFsTG9h
ZCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZlVGl0bGUoY29uc3Qg
U3RyaW5nV2l0aERpcmVjdGlvbiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRD
b21taXRMb2FkKE9wdGlvbmFsPEhhc0luc2VjdXJlQ29udGVudD4pID0gMDsKLSAgICB2aXJ0dWFs
IHZvaWQgZGlzcGF0Y2hEaWRGYWlsUHJvdmlzaW9uYWxMb2FkKGNvbnN0IFJlc291cmNlRXJyb3Im
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZChj
b25zdCBSZXNvdXJjZUVycm9yJiwgV2lsbENvbnRpbnVlTG9hZGluZykgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBkaXNwYXRjaERpZEZhaWxMb2FkKGNvbnN0IFJlc291cmNlRXJyb3ImKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkRmluaXNoRG9jdW1lbnRMb2FkKCkgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZEZpbmlzaExvYWQoKSA9IDA7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJUeXBlcy5oIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaAppbmRleCBhZDcyYWY2MTY0YS4uNGVlNTlkODY3NGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlclR5cGVzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaApAQCAtNjcsNiArNjcs
OCBAQCBlbnVtIGNsYXNzIEZyYW1lTG9hZFR5cGUgOiB1aW50OF90IHsKICAgICBSZWxvYWRFeHBp
cmVkT25seQogfTsKIAorZW51bSBjbGFzcyBXaWxsQ29udGludWVMb2FkaW5nIDogYm9vbCB7IE5v
LCBZZXMgfTsKKwogY2xhc3MgUG9saWN5Q2hlY2tJZGVudGlmaWVyIHsKIHB1YmxpYzoKICAgICBQ
b2xpY3lDaGVja0lkZW50aWZpZXIoKSA9IGRlZmF1bHQ7CkBAIC0yMTcsNCArMjE5LDEyIEBAIHRl
bXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6RnJhbWVMb2FkVHlwZT4gewogICAg
ID47CiB9OwogCit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpXaWxsQ29u
dGludWVMb2FkaW5nPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAg
V2ViQ29yZTo6V2lsbENvbnRpbnVlTG9hZGluZywKKyAgICAgICAgV2ViQ29yZTo6V2lsbENvbnRp
bnVlTG9hZGluZzo6Tm8sCisgICAgICAgIFdlYkNvcmU6OldpbGxDb250aW51ZUxvYWRpbmc6Olll
cworICAgID47Cit9OworCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMv
d2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IGE4ODViYjA2MmNlLi44ZTUyYWMwM2MyOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC00NjIsNiArNDYyLDcgQEAg
ZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAgICdXZWJDb3JlOjpUZXh0Q2hlY2tp
bmdUeXBlJzogWyc8V2ViQ29yZS9UZXh0Q2hlY2tpbmcuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6
OlRleHRJbmRpY2F0b3JEYXRhJzogWyc8V2ViQ29yZS9UZXh0SW5kaWNhdG9yLmg+J10sCiAgICAg
ICAgICdXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMnOiBbJzxXZWJDb3JlL1ZpZXdwb3J0QXJn
dW1lbnRzLmg+J10sCisgICAgICAgICdXZWJDb3JlOjpXaWxsQ29udGludWVMb2FkaW5nJzogWyc8
V2ViQ29yZS9GcmFtZUxvYWRlclR5cGVzLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpTZWxlY3Rp
b25SZWN0JzogWyciRWRpdG9yU3RhdGUuaCInXSwKICAgICAgICAgJ1dlYktpdDo6QWN0aXZpdHlT
dGF0ZUNoYW5nZUlEJzogWyciRHJhd2luZ0FyZWFJbmZvLmgiJ10sCiAgICAgICAgICdXZWJLaXQ6
OkJhY2tGb3J3YXJkTGlzdEl0ZW1TdGF0ZSc6IFsnIlNlc3Npb25TdGF0ZS5oIiddLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwCmluZGV4IDk4
ZWZjYzhlMTk0Li40MDk5ZWQzZmVmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcApAQCAtMTM0LDcgKzEzNCw3IEBAIHZvaWQgUHJvdmlz
aW9uYWxQYWdlUHJveHk6OmNhbmNlbCgpCiAgICAgQVNTRVJUKG1fbWFpbkZyYW1lKTsKICAgICBh
dXRvIGVycm9yID0gV2ViS2l0OjpjYW5jZWxsZWRFcnJvcihtX3JlcXVlc3QpOwogICAgIGVycm9y
LnNldFR5cGUoV2ViQ29yZTo6UmVzb3VyY2VFcnJvcjo6VHlwZTo6Q2FuY2VsbGF0aW9uKTsKLSAg
ICBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUobV9tYWluRnJhbWUtPmZyYW1lSUQoKSwg
eyB9LCBtX25hdmlnYXRpb25JRCwgbV9wcm92aXNpb25hbExvYWRVUkwsIGVycm9yLCBVc2VyRGF0
YSB7IH0pOyAvLyBXaWxsIGRlbGV0ZSB8dGhpc3wuCisgICAgZGlkRmFpbFByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lKG1fbWFpbkZyYW1lLT5mcmFtZUlEKCksIHsgfSwgbV9uYXZpZ2F0aW9uSUQsIG1f
cHJvdmlzaW9uYWxMb2FkVVJMLCBlcnJvciwgV2ViQ29yZTo6V2lsbENvbnRpbnVlTG9hZGluZzo6
Tm8sIFVzZXJEYXRhIHsgfSk7IC8vIFdpbGwgZGVsZXRlIHx0aGlzfC4KIH0KIAogdm9pZCBQcm92
aXNpb25hbFBhZ2VQcm94eTo6aW5pdGlhbGl6ZVdlYlBhZ2UoKQpAQCAtMTg5LDcgKzE4OSw3IEBA
IGlubGluZSBib29sIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojp2YWxpZGF0ZUlucHV0KHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IE9wdGlvbmFsCiAgICAgaWYgKCFtX21haW5GcmFtZSB8fCBtX21haW5G
cmFtZS0+ZnJhbWVJRCgpICE9IGZyYW1lSUQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAg
IHJldHVybiAhbmF2aWdhdGlvbklEIHx8ICpuYXZpZ2F0aW9uSUQgPT0gbV9uYXZpZ2F0aW9uSUQ7
CisgICAgcmV0dXJuICFuYXZpZ2F0aW9uSUQgfHwgISpuYXZpZ2F0aW9uSUQgfHwgKm5hdmlnYXRp
b25JRCA9PSBtX25hdmlnYXRpb25JRDsKIH0KIAogdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6
ZGlkQ3JlYXRlTWFpbkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCkBAIC0yNDcsNyArMjQ3LDcgQEAg
dm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCB1aW4KICAgICBtX3BhZ2UuZGlkU3RhcnRQcm92aXNpb25hbExv
YWRGb3JGcmFtZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBmcmFtZUlELCBuYXZpZ2F0aW9u
SUQsIFdURk1vdmUodXJsKSwgV1RGTW92ZSh1bnJlYWNoYWJsZVVSTCksIHVzZXJEYXRhKTsKIH0K
IAotdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYg
ZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcm
IHByb3Zpc2lvbmFsVVJMLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBlcnJvciwgY29u
c3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkRmFp
bFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdh
dGlvbklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZUVycm9yJiBlcnJvciwgV2ViQ29yZTo6V2lsbENvbnRpbnVlTG9hZGluZyB3aWxsQ29udGlu
dWVMb2FkaW5nLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgaWYgKCF2YWxpZGF0
ZUlucHV0KGZyYW1lSUQsIG5hdmlnYXRpb25JRCkpCiAgICAgICAgIHJldHVybjsKQEAgLTI2MCw3
ICsyNjAsNyBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxM
b2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29ucwogICAgIGlmIChhdXRvKiBwYWdlTWFp
bkZyYW1lID0gbV9wYWdlLm1haW5GcmFtZSgpKQogICAgICAgICBwYWdlTWFpbkZyYW1lLT5kaWRG
YWlsUHJvdmlzaW9uYWxMb2FkKCk7CiAKLSAgICBtX3BhZ2UuZGlkRmFpbFByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIGZyYW1lU2VjdXJp
dHlPcmlnaW4sIG5hdmlnYXRpb25JRCwgcHJvdmlzaW9uYWxVUkwsIGVycm9yLCB1c2VyRGF0YSk7
IC8vIFdpbGwgZGVsZXRlIHx0aGlzfC4KKyAgICBtX3BhZ2UuZGlkRmFpbFByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIGZyYW1lU2VjdXJp
dHlPcmlnaW4sIG5hdmlnYXRpb25JRCwgcHJvdmlzaW9uYWxVUkwsIGVycm9yLCB3aWxsQ29udGlu
dWVMb2FkaW5nLCB1c2VyRGF0YSk7IC8vIE1heSBkZWxldGUgfHRoaXN8LgogfQogCiB2b2lkIFBy
b3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRDb21taXRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJ
RCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGZy
YW1lSGFzQ3VzdG9tQ29udGVudFByb3ZpZGVyLCB1aW50MzJfdCBmcmFtZUxvYWRUeXBlLCBjb25z
dCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbywgYm9vbCBjb250YWlu
c1BsdWdpbkRvY3VtZW50LCBPcHRpb25hbDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQ+IGZv
cmNlZEhhc0luc2VjdXJlQ29udGVudCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQpAQCAtMzAx
LDYgKzMwMSw5IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5h
dmlnYXRpb25BY3Rpb25Bc3luYyh1aW50NjRfdCBmcmFtZUlECiAKICAgICBtX3BhZ2UuZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCks
IGZyYW1lSUQsIFdURk1vdmUoZnJhbWVTZWN1cml0eU9yaWdpbiksIGlkZW50aWZpZXIsIG5hdmln
YXRpb25JRCwgV1RGTW92ZShuYXZpZ2F0aW9uQWN0aW9uRGF0YSksCiAgICAgICAgIFdURk1vdmUo
ZnJhbWVJbmZvRGF0YSksIG9yaWdpbmF0aW5nUGFnZUlELCBvcmlnaW5hbFJlcXVlc3QsIFdURk1v
dmUocmVxdWVzdCksIFdURk1vdmUocmVxdWVzdEJvZHkpLCBXVEZNb3ZlKHJlZGlyZWN0UmVzcG9u
c2UpLCB1c2VyRGF0YSwgbGlzdGVuZXJJRCk7CisKKyAgICAvLyBkZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uQXN5bmNTaGFyZWQoKSBnZW5lcmF0ZXMgYSBuYXZpZ2F0aW9uSUQgaWYgdGhl
IG5hdmlnYXRpb24gaXMgaW5pdGlhdGVkIGJ5IHRoZSBXZWJQcm9jZXNzIGFuZCB0aGUgbmF2aWdh
dGlvbklEIHNlbnQgYnkgdGhlIFdlYlByb2Nlc3Mgd2FzIDAuCisgICAgbV9uYXZpZ2F0aW9uSUQg
PSBuYXZpZ2F0aW9uSUQ7CiB9CiAKIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBv
bGljeUZvclJlc3BvbnNlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVu
dGlmaWVyIGlkZW50aWZpZXIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Q
cm92aXNpb25hbFBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9u
YWxQYWdlUHJveHkuaAppbmRleCA0ZWYyYjc2ZDU4Ny4uODU5ZjU0Mjg3OTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaApAQCAtMTA0LDcgKzEw
NCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRDcmVhdGVNYWluRnJhbWUodWludDY0X3QgZnJh
bWVJRCk7CiAgICAgdm9pZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90
IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYsIFVSTCYmIHVucmVhY2hhYmxl
VVJMLCBjb25zdCBVc2VyRGF0YSYpOwogICAgIHZvaWQgZGlkQ29tbWl0TG9hZEZvckZyYW1lKHVp
bnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBtaW1l
VHlwZSwgYm9vbCBmcmFtZUhhc0N1c3RvbUNvbnRlbnRQcm92aWRlciwgdWludDMyX3QgZnJhbWVM
b2FkVHlwZSwgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJiwgYm9vbCBjb250YWluc1Bs
dWdpbkRvY3VtZW50LCBPcHRpb25hbDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQ+IGZvcmNl
ZEhhc0luc2VjdXJlQ29udGVudCwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRpZEZhaWxQ
cm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwgY29uc3QgU3RyaW5nJiBwcm92aXNpb25hbFVSTCwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VFcnJvciYsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxM
b2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0
IFN0cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBX
ZWJDb3JlOjpXaWxsQ29udGludWVMb2FkaW5nLCBjb25zdCBVc2VyRGF0YSYpOwogICAgIHZvaWQg
c3RhcnRVUkxTY2hlbWVUYXNrKFVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJzJiYpOwogICAgIHZvaWQg
YmFja0ZvcndhcmRHb1RvSXRlbShjb25zdCBXZWJDb3JlOjpCYWNrRm9yd2FyZEl0ZW1JZGVudGlm
aWVyJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJik+
JiYpOwogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmModWludDY0
X3QgZnJhbWVJRCwgYm9vbCBpc01haW5GcmFtZSwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
JiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKaW5kZXggZTJjOTc4ZTc1NGEuLjQxN2QxMGMxMzU1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTQwMTUsMTcgKzQwMTUsMTcgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OmRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWVTaGFyZWQoUmVmPFdl
YlByb2Nlc3NQcm94eT4mJgogICAgIGZyYW1lLT5kaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQ
cm92aXNpb25hbExvYWQodXJsKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZhaWxQcm92
aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdp
bkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3Qg
U3RyaW5nJiBwcm92aXNpb25hbFVSTCwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IsIGNvbnN0
IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9u
YWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRh
JiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmlu
ZyYgcHJvdmlzaW9uYWxVUkwsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBXaWxsQ29udGlu
dWVMb2FkaW5nIHdpbGxDb250aW51ZUxvYWRpbmcsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkK
IHsKICAgICBpZiAobV9wcm92aXNpb25hbFBhZ2UgJiYgbV9wcm92aXNpb25hbFBhZ2UtPm5hdmln
YXRpb25JRCgpID09IG5hdmlnYXRpb25JRCkgewogICAgICAgICAvLyBUaGUgbG9hZCBkaWQgbm90
IGZhaWwsIGl0IGlzIG1lcmVseSBoYXBwZW5pbmcgaW4gYSBuZXcgcHJvdmlzaW9uYWwgcHJvY2Vz
cy4KICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGRpZEZhaWxQcm92aXNpb25hbExvYWRG
b3JGcmFtZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBmcmFtZUlELCBmcmFtZVNlY3VyaXR5
T3JpZ2luLCBuYXZpZ2F0aW9uSUQsIHByb3Zpc2lvbmFsVVJMLCBlcnJvciwgdXNlckRhdGEpOwor
ICAgIGRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChtX3Byb2Nlc3MuY29weVJl
ZigpLCBmcmFtZUlELCBmcmFtZVNlY3VyaXR5T3JpZ2luLCBuYXZpZ2F0aW9uSUQsIHByb3Zpc2lv
bmFsVVJMLCBlcnJvciwgd2lsbENvbnRpbnVlTG9hZGluZywgdXNlckRhdGEpOwogfQogCi12b2lk
IFdlYlBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxX
ZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgU2VjdXJp
dHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQs
IGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9y
LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmFpbFBy
b3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2Vz
cywgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3Vy
aXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9u
YWxVUkwsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBXaWxsQ29udGludWVMb2FkaW5nIHdp
bGxDb250aW51ZUxvYWRpbmcsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBMT0co
TG9hZGluZywgIihMb2FkaW5nKSBXZWJQYWdlUHJveHkgJSIgUFJJdTY0ICIgaW4gd2ViIHByb2Nl
c3MgcGlkICVpIGRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSB0byBwcm92aXNpb25hbFVS
TCAlcyIsIG1fcGFnZUlELCBwcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBwcm92aXNpb25h
bFVSTC51dGY4KCkuZGF0YSgpKTsKICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKFByb2Nlc3Ms
ICJkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAl
IiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBkb21haW4gPSAlcywgY29kZSA9ICVk
IiwgcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQsIGZyYW1lSUQsIGVycm9y
LmRvbWFpbigpLnV0ZjgoKS5kYXRhKCksIGVycm9yLmVycm9yQ29kZSgpKTsKQEAgLTQwNzIsNyAr
NDA3Miw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJh
bWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwCiAgICAgbV9mYWlsaW5nUHJvdmlzaW9u
YWxMb2FkVVJMID0geyB9OwogCiAgICAgLy8gSWYgdGhlIHByb3Zpc2lvbmFsIHBhZ2UncyBsb2Fk
IGZhaWxzIHRoZW4gd2UgZGVzdHJveSB0aGUgcHJvdmlzaW9uYWwgcGFnZS4KLSAgICBpZiAobV9w
cm92aXNpb25hbFBhZ2UgJiYgbV9wcm92aXNpb25hbFBhZ2UtPm1haW5GcmFtZSgpID09IGZyYW1l
KQorICAgIGlmIChtX3Byb3Zpc2lvbmFsUGFnZSAmJiBtX3Byb3Zpc2lvbmFsUGFnZS0+bWFpbkZy
YW1lKCkgPT0gZnJhbWUgJiYgd2lsbENvbnRpbnVlTG9hZGluZyA9PSBXaWxsQ29udGludWVMb2Fk
aW5nOjpObykKICAgICAgICAgbV9wcm92aXNpb25hbFBhZ2UgPSBudWxscHRyOwogfQogCkBAIC00
NDk1LDcgKzQ0OTUsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbkFzeW5jKHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcgogfQogCiB2b2lkIFdlYlBh
Z2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKFJlZjxX
ZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwKLSAgICBXZWJDb3JlOjpQb2xp
Y3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZp
Z2F0aW9uQWN0aW9uRGF0YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBGcmFtZUluZm9EYXRhJiYg
ZnJhbWVJbmZvRGF0YSwgdWludDY0X3Qgb3JpZ2luYXRpbmdQYWdlSUQsCisgICAgV2ViQ29yZTo6
UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIHVpbnQ2NF90JiBuYXZpZ2F0aW9uSUQs
IE5hdmlnYXRpb25BY3Rpb25EYXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIEZyYW1lSW5mb0Rh
dGEmJiBmcmFtZUluZm9EYXRhLCB1aW50NjRfdCBvcmlnaW5hdGluZ1BhZ2VJRCwKICAgICBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RC
b2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwKICAgICBj
b25zdCBVc2VyRGF0YSYgdXNlckRhdGEsIHVpbnQ2NF90IGxpc3RlbmVySUQpCiB7CkBAIC00NTEw
LDcgKzQ1MTAsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvbkFzeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveAogICAgICAgICBvcmlnaW5hbFJl
cXVlc3QsIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUocmVxdWVzdEJvZHkpLCBXVEZNb3ZlKHJl
ZGlyZWN0UmVzcG9uc2UpLCB1c2VyRGF0YSwgV1RGTW92ZShzZW5kZXIpKTsKIH0KIAotdm9pZCBX
ZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oUmVmPFdlYlByb2Nl
c3NQcm94eT4mJiBwcm9jZXNzLCBXZWJGcmFtZVByb3h5JiBmcmFtZSwgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklE
LAordm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oUmVm
PFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBXZWJGcmFtZVByb3h5JiBmcmFtZSwgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QmIG5h
dmlnYXRpb25JRCwKICAgICBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmIG5hdmlnYXRpb25BY3Rpb25E
YXRhLCBGcmFtZUluZm9EYXRhJiYgb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLCB1aW50NjRfdCBv
cmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5h
bFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsCiAgICAgSVBDOjpG
b3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
JiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhLCBSZWY8UG9saWN5
RGVjaXNpb25TZW5kZXI+JiYgc2VuZGVyKQogewpAQCAtNDU1Nyw3ICs0NTU3LDcgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oUmVmPFdlYlByb2Nl
c3NQcm94eT4mJiBwcm9jZXMKICAgICAgICAgICAgIG5hdmlnYXRpb24gPSBtX25hdmlnYXRpb25T
dGF0ZS0+Y3JlYXRlTG9hZFJlcXVlc3ROYXZpZ2F0aW9uKFJlc291cmNlUmVxdWVzdChyZXF1ZXN0
KSwgbV9iYWNrRm9yd2FyZExpc3QtPmN1cnJlbnRJdGVtKCkpOwogICAgIH0KIAotICAgIHVpbnQ2
NF90IG5ld05hdmlnYXRpb25JRCA9IG5hdmlnYXRpb24tPm5hdmlnYXRpb25JRCgpOworICAgIG5h
dmlnYXRpb25JRCA9IG5hdmlnYXRpb24tPm5hdmlnYXRpb25JRCgpOwogICAgIG5hdmlnYXRpb24t
PnNldEN1cnJlbnRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdChyZXF1ZXN0KSwgcHJvY2Vzcy0+Y29y
ZVByb2Nlc3NJZGVudGlmaWVyKCkpOwogICAgIG5hdmlnYXRpb24tPnNldExhc3ROYXZpZ2F0aW9u
QWN0aW9uKG5hdmlnYXRpb25BY3Rpb25EYXRhKTsKICAgICBuYXZpZ2F0aW9uLT5zZXRPcmlnaW5h
dGluZ0ZyYW1lSW5mbyhvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEpOwpAQCAtNDU2Niw5ICs0NTY2
LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24o
UmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXMKIAogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRF
UklORykKICAgICBpZiAoZnJhbWUuZGlkSGFuZGxlQ29udGVudEZpbHRlclVuYmxvY2tOYXZpZ2F0
aW9uKHJlcXVlc3QpKQotICAgICAgICByZXR1cm4gcmVjZWl2ZWRQb2xpY3lEZWNpc2lvbihQb2xp
Y3lBY3Rpb246Oklnbm9yZSwgbV9uYXZpZ2F0aW9uU3RhdGUtPm5hdmlnYXRpb24obmV3TmF2aWdh
dGlvbklEKSwgV1RGOjpudWxsb3B0LCBXVEZNb3ZlKHNlbmRlcikpOwotI2Vsc2UKLSAgICBVTlVT
RURfUEFSQU0obmV3TmF2aWdhdGlvbklEKTsKKyAgICAgICAgcmV0dXJuIHJlY2VpdmVkUG9saWN5
RGVjaXNpb24oUG9saWN5QWN0aW9uOjpJZ25vcmUsIG1fbmF2aWdhdGlvblN0YXRlLT5uYXZpZ2F0
aW9uKG5hdmlnYXRpb25JRCksIFdURjo6bnVsbG9wdCwgV1RGTW92ZShzZW5kZXIpKTsKICNlbmRp
ZgogCiAgICAgU2hvdWxkRXhwZWN0U2FmZUJyb3dzaW5nUmVzdWx0IHNob3VsZEV4cGVjdFNhZmVC
cm93c2luZ1Jlc3VsdCA9IFNob3VsZEV4cGVjdFNhZmVCcm93c2luZ1Jlc3VsdDo6WWVzOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCAzNTdkYzFiNWIyOS4uYTBmMWQw
MDM4NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xNDgzLDE0
ICsxNDgzLDE0IEBAIHB1YmxpYzoKIAogICAgIC8vIExvZ2ljIHNoYXJlZCBiZXR3ZWVuIHRoZSBX
ZWJQYWdlUHJveHkgYW5kIHRoZSBQcm92aXNpb25hbFBhZ2VQcm94eS4KICAgICB2b2lkIGRpZFN0
YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwg
dWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJiwgVVJMJiYgdW5y
ZWFjaGFibGVVUkwsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRGYWlsUHJvdmlzaW9u
YWxMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgdWludDY0X3QgZnJh
bWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3Jp
Z2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxVUkws
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZv
aWQgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJv
eHk+JiYsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJp
bmcmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgV2ViQ29y
ZTo6V2lsbENvbnRpbnVlTG9hZGluZywgY29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIGRpZFJl
Y2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxX
ZWJQcm9jZXNzUHJveHk+JiYsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25J
RCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9p
ZCBkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3RTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwg
Y29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25V
UkxTdHJpbmcsIHVpbnQ2NF90IGZyYW1lSUQpOwogICAgIHZvaWQgZGlkUGVyZm9ybUNsaWVudFJl
ZGlyZWN0U2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIGNvbnN0IFN0cmluZyYgc291cmNl
VVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCB1aW50NjRfdCBm
cmFtZUlEKTsKICAgICB2b2lkIGRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhU2hhcmVkKFJl
ZjxXZWJQcm9jZXNzUHJveHk+JiYsIGNvbnN0IFdlYk5hdmlnYXRpb25EYXRhU3RvcmUmLCB1aW50
NjRfdCBmcmFtZUlEKTsKICAgICB2b2lkIGRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWVT
aGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgdWludDY0X3QgZnJhbWVJRCwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBVUkwmJik7CiAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9u
QWN0aW9uQXN5bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgdWludDY0X3QgZnJhbWVJ
RCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2Vi
Q29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLAotICAgICAgICB1aW50NjRfdCBuYXZpZ2F0aW9u
SUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsIEZyYW1lSW5mb0RhdGEmJiwgdWludDY0X3Qgb3Jp
Z2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxS
ZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwKKyAgICAgICAgdWludDY0X3QmIG5h
dmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwgRnJhbWVJbmZvRGF0YSYmLCB1aW50
NjRfdCBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBv
cmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLAogICAgICAgICBJUEM6
OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIHVpbnQ2NF90IGxpc3RlbmVy
SUQpOwogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nl
c3NQcm94eT4mJiwgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZp
ZXIsCiAgICAgICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGJvb2wgY2FuU2hv
d01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0
ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOwpAQCAtMTU4NSw3ICsxNTg1LDcgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JGcmFtZSh1aW50NjRfdCBmcmFt
ZUlELCBjb25zdCBTdHJpbmcmIHVybCwgZG91YmxlIGRlbGF5LCBXZWJDb3JlOjpMb2NrQmFja0Zv
cndhcmRMaXN0KTsKICAgICB2b2lkIGRpZENhbmNlbENsaWVudFJlZGlyZWN0Rm9yRnJhbWUodWlu
dDY0X3QgZnJhbWVJRCk7CiAgICAgdm9pZCBkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYpOwotICAgIHZv
aWQgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0
X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZUVycm9yJiwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRpZEZhaWxQ
cm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwgY29uc3QgU3RyaW5nJiBwcm92aXNpb25hbFVSTCwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VFcnJvciYsIFdlYkNvcmU6OldpbGxDb250aW51ZUxvYWRpbmcsIGNvbnN0IFVzZXJEYXRhJik7
CiAgICAgdm9pZCBkaWRDb21taXRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0
X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGZyYW1lSGFzQ3Vz
dG9tQ29udGVudFByb3ZpZGVyLCB1aW50MzJfdCBmcmFtZUxvYWRUeXBlLCBjb25zdCBXZWJDb3Jl
OjpDZXJ0aWZpY2F0ZUluZm8mLCBib29sIGNvbnRhaW5zUGx1Z2luRG9jdW1lbnQsIE9wdGlvbmFs
PFdlYkNvcmU6Okhhc0luc2VjdXJlQ29udGVudD4gZm9yY2VkSGFzSW5zZWN1cmVDb250ZW50LCBj
b25zdCBVc2VyRGF0YSYpOwogICAgIHZvaWQgZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUo
dWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBVc2VyRGF0YSYp
OwogICAgIHZvaWQgZGlkRmluaXNoTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgY29uc3QgVXNlckRhdGEmKTsKQEAgLTE2MTEsNyArMTYxMSw3IEBA
IHByaXZhdGU6CiAKICAgICB2b2lkIGRpZERlc3Ryb3lOYXZpZ2F0aW9uKHVpbnQ2NF90IG5hdmln
YXRpb25JRCk7CiAKLSAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oUmVm
PFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViRnJhbWVQcm94eSYsIFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSYmLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYs
CisgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFJlZjxXZWJQcm9jZXNz
UHJveHk+JiYsIFdlYkZyYW1lUHJveHkmLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwg
dWludDY0X3QmIG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwKICAgICAgICAg
RnJhbWVJbmZvRGF0YSYmLCB1aW50NjRfdCBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYmLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksCiAgICAgICAgIFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0
YSYsIFJlZjxQb2xpY3lEZWNpc2lvblNlbmRlcj4mJik7CiAgICAgdm9pZCBkZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmModWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDFkNDRjNmE0YjUxLi5i
MGI0NWNiZTVjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5tZXNzYWdlcy5pbgpAQCAtMTI3LDcgKzEyNyw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94
eSB7CiAgICAgV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1lKHVpbnQ2NF90IGZyYW1l
SUQsIFN0cmluZyB1cmwsIGRvdWJsZSBkZWxheSwgZW51bTpib29sIFdlYkNvcmU6OkxvY2tCYWNr
Rm9yd2FyZExpc3QgbG9ja0JhY2tGb3J3YXJkTGlzdCkKICAgICBEaWRDYW5jZWxDbGllbnRSZWRp
cmVjdEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCiAgICAgRGlkQ2hhbmdlUHJvdmlzaW9uYWxV
UkxGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCB1
cmwpCi0gICAgRGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQs
IHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwg
dWludDY0X3QgbmF2aWdhdGlvbklELCBTdHJpbmcgcHJvdmlzaW9uYWxVUkwsIFdlYkNvcmU6OlJl
c291cmNlRXJyb3IgZXJyb3IsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCisgICAgRGlkRmFp
bFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdh
dGlvbklELCBTdHJpbmcgcHJvdmlzaW9uYWxVUkwsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJy
b3IsIGVudW06Ym9vbCBXZWJDb3JlOjpXaWxsQ29udGludWVMb2FkaW5nIHdpbGxDb250aW51ZUxv
YWRpbmcsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCiAgICAgRGlkQ29tbWl0TG9hZEZvckZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgU3RyaW5nIG1pbWVU
eXBlLCBib29sIGhhc0N1c3RvbUNvbnRlbnRQcm92aWRlciwgdWludDMyX3QgbG9hZFR5cGUsIFdl
YkNvcmU6OkNlcnRpZmljYXRlSW5mbyBjZXJ0aWZpY2F0ZUluZm8sIGJvb2wgY29udGFpbnNQbHVn
aW5Eb2N1bWVudCwgT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50PiBmb3JjZWRI
YXNJbnNlY3VyZUNvbnRlbnQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCiAgICAgRGlkRmFp
bExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdl
YkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCiAg
ICAgRGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0
X3QgbmF2aWdhdGlvbklELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5jcHAKaW5kZXggNGFjOWRiNjM4ZTUuLmM0OWJiMWJhNDNjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTUzNSw3ICs1MzUsNyBAQCB2b2lkIFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZENvbW1pdExvYWQoT3B0aW9uYWw8SGFzSW5zZWN1
cmVDb250ZW50PiBoYQogICAgIHdlYlBhZ2UtPmRpZENvbW1pdExvYWQobV9mcmFtZSk7CiB9CiAK
LXZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9h
ZChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKK3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6
OmRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJv
ciwgV2lsbENvbnRpbnVlTG9hZGluZyB3aWxsQ29udGludWVMb2FkaW5nKQogewogICAgIFdlYlBh
Z2UqIHdlYlBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7CiAgICAgaWYgKCF3ZWJQYWdlKQpAQCAtNTY0
LDcgKzU2NCw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbFBy
b3Zpc2lvbmFsTG9hZChjb25zdCBSZXNvdXJjZUVycm9yJiBlCiAKICAgICAvLyBOb3RpZnkgdGhl
IFVJUHJvY2Vzcy4KICAgICBXZWJDb3JlOjpGcmFtZSogY29yZUZyYW1lID0gbV9mcmFtZSA/IG1f
ZnJhbWUtPmNvcmVGcmFtZSgpIDogbnVsbHB0cjsKLSAgICB3ZWJQYWdlLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OkRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZShtX2ZyYW1lLT5m
cmFtZUlEKCksIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbUZyYW1lKGNvcmVGcmFtZSksIG5hdmln
YXRpb25JRCwgbV9mcmFtZS0+Y29yZUZyYW1lKCktPmxvYWRlcigpLnByb3Zpc2lvbmFsTG9hZEVy
cm9yQmVpbmdIYW5kbGVkVVJMKCksIGVycm9yLCBVc2VyRGF0YShXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS50cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVzKHVzZXJEYXRhLmdldCgpKS5nZXQoKSkpKTsK
KyAgICB3ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZEZhaWxQcm92aXNp
b25hbExvYWRGb3JGcmFtZShtX2ZyYW1lLT5mcmFtZUlEKCksIFNlY3VyaXR5T3JpZ2luRGF0YTo6
ZnJvbUZyYW1lKGNvcmVGcmFtZSksIG5hdmlnYXRpb25JRCwgbV9mcmFtZS0+Y29yZUZyYW1lKCkt
PmxvYWRlcigpLnByb3Zpc2lvbmFsTG9hZEVycm9yQmVpbmdIYW5kbGVkVVJMKCksIGVycm9yLCB3
aWxsQ29udGludWVMb2FkaW5nLCBVc2VyRGF0YShXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS50cmFu
c2Zvcm1PYmplY3RzVG9IYW5kbGVzKHVzZXJEYXRhLmdldCgpKS5nZXQoKSkpKTsKIAogICAgIC8v
IElmIHdlIGhhdmUgYSBsb2FkIGxpc3RlbmVyLCBub3RpZnkgaXQuCiAgICAgaWYgKFdlYkZyYW1l
OjpMb2FkTGlzdGVuZXIqIGxvYWRMaXN0ZW5lciA9IG1fZnJhbWUtPmxvYWRMaXN0ZW5lcigpKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCBjYjRmZjVjMTk1Yy4uZjczYWI4Y2E3M2Yg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC0xMTIsNyArMTEyLDcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIGRpc3BhdGNoRGlkU3RhcnRQcm92aXNpb25hbExvYWQoKSBmaW5hbDsKICAg
ICB2b2lkIGRpc3BhdGNoRGlkUmVjZWl2ZVRpdGxlKGNvbnN0IFdlYkNvcmU6OlN0cmluZ1dpdGhE
aXJlY3Rpb24mKSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoRGlkQ29tbWl0TG9hZChPcHRpb25h
bDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQ+KSBmaW5hbDsKLSAgICB2b2lkIGRpc3BhdGNo
RGlkRmFpbFByb3Zpc2lvbmFsTG9hZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJikgZmlu
YWw7CisgICAgdm9pZCBkaXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQoY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VFcnJvciYsIFdlYkNvcmU6OldpbGxDb250aW51ZUxvYWRpbmcpIGZpbmFsOwog
ICAgIHZvaWQgZGlzcGF0Y2hEaWRGYWlsTG9hZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9y
JikgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERpZEZpbmlzaERvY3VtZW50TG9hZCgpIGZpbmFs
OwogICAgIHZvaWQgZGlzcGF0Y2hEaWRGaW5pc2hMb2FkKCkgZmluYWw7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuaAppbmRleCBiNTdhYzFmNWIxNi4uMTM4NTU4M2FmMjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuaApAQCAtMTE3LDcgKzExNyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaXNw
YXRjaERpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkKCkgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERp
ZFJlY2VpdmVUaXRsZShjb25zdCBXZWJDb3JlOjpTdHJpbmdXaXRoRGlyZWN0aW9uJikgZmluYWw7
CiAgICAgdm9pZCBkaXNwYXRjaERpZENvbW1pdExvYWQoT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5z
ZWN1cmVDb250ZW50PikgZmluYWw7Ci0gICAgdm9pZCBkaXNwYXRjaERpZEZhaWxQcm92aXNpb25h
bExvYWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpIGZpbmFsOworICAgIHZvaWQgZGlz
cGF0Y2hEaWRGYWlsUHJvdmlzaW9uYWxMb2FkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3Im
LCBXZWJDb3JlOjpXaWxsQ29udGludWVMb2FkaW5nKSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNo
RGlkRmFpbExvYWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpIGZpbmFsOwogICAgIHZv
aWQgZGlzcGF0Y2hEaWRGaW5pc2hEb2N1bWVudExvYWQoKSBmaW5hbDsKICAgICB2b2lkIGRpc3Bh
dGNoRGlkRmluaXNoTG9hZCgpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0gYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQppbmRl
eCA0Yjk0MjE3Mjk5Ny4uN2Y4NjlmMWRkY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1t
CkBAIC03MjQsNyArNzI0LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hE
aWRDb21taXRMb2FkKE9wdGlvbmFsPEhhc0luc2VjdXJlQ29udGVudD4pCiAgICAgICAgIENhbGxG
cmFtZUxvYWREZWxlZ2F0ZShpbXBsZW1lbnRhdGlvbnMtPmRpZENvbW1pdExvYWRGb3JGcmFtZUZ1
bmMsIHdlYlZpZXcsIEBzZWxlY3Rvcih3ZWJWaWV3OmRpZENvbW1pdExvYWRGb3JGcmFtZTopLCBt
X3dlYkZyYW1lLmdldCgpKTsKIH0KIAotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0
Y2hEaWRGYWlsUHJvdmlzaW9uYWxMb2FkKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQordm9p
ZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGYWlsUHJvdmlzaW9uYWxMb2FkKGNv
bnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBXaWxsQ29udGludWVMb2FkaW5nKQogewogICAgIG1f
d2ViRnJhbWUtPl9wcml2YXRlLT5wcm92aXNpb25hbFVSTCA9IG51bGxwdHI7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCBkMGQ2NmQxNTliNS4uNWM1ODEzZjkxYzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTQ0NSw3ICs0NDUsNyBAQCB2b2lkIFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZENvbW1pdExvYWQoT3B0aW9uYWw8SGFzSW5zZWN1
cmVDb250ZW50PikKICAgICAgICAgZnJhbWVMb2FkRGVsZWdhdGUtPmRpZENvbW1pdExvYWRGb3JG
cmFtZSh3ZWJWaWV3LCBtX3dlYkZyYW1lKTsKIH0KIAotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVu
dDo6ZGlzcGF0Y2hEaWRGYWlsUHJvdmlzaW9uYWxMb2FkKGNvbnN0IFJlc291cmNlRXJyb3ImIGVy
cm9yKQordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGYWlsUHJvdmlzaW9u
YWxMb2FkKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBXaWxsQ29udGludWVMb2FkaW5nKQog
ewogICAgIFdlYlZpZXcqIHdlYlZpZXcgPSBtX3dlYkZyYW1lLT53ZWJWaWV3KCk7CiAgICAgQ09N
UHRyPElXZWJGcmFtZUxvYWREZWxlZ2F0ZT4gZnJhbWVMb2FkRGVsZWdhdGU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuaAppbmRleCA1N2U0YmJhYmFlYS4uMzIyYzA5MDA1YWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuaApAQCAtOTQsNyArOTQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaXNw
YXRjaERpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaXNwYXRj
aERpZFJlY2VpdmVUaXRsZShjb25zdCBXZWJDb3JlOjpTdHJpbmdXaXRoRGlyZWN0aW9uJikgb3Zl
cnJpZGU7CiAgICAgdm9pZCBkaXNwYXRjaERpZENvbW1pdExvYWQoT3B0aW9uYWw8V2ViQ29yZTo6
SGFzSW5zZWN1cmVDb250ZW50Pikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaXNwYXRjaERpZEZhaWxQ
cm92aXNpb25hbExvYWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpIG92ZXJyaWRlOwor
ICAgIHZvaWQgZGlzcGF0Y2hEaWRGYWlsUHJvdmlzaW9uYWxMb2FkKGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlRXJyb3ImLCBXZWJDb3JlOjpXaWxsQ29udGludWVMb2FkaW5nKSBvdmVycmlkZTsKICAg
ICB2b2lkIGRpc3BhdGNoRGlkRmFpbExvYWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYp
IG92ZXJyaWRlOwogICAgIHZvaWQgZGlzcGF0Y2hEaWRGaW5pc2hEb2N1bWVudExvYWQoKSBvdmVy
cmlkZTsKICAgICB2b2lkIGRpc3BhdGNoRGlkRmluaXNoTG9hZCgpIG92ZXJyaWRlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>367844</attachid>
            <date>2019-04-19 15:27:05 -0700</date>
            <delta_ts>2019-04-19 16:42:51 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>197097_pson_form_resubmit_bug2_wip.patch</filename>
            <type>text/plain</type>
            <size>33389</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4
IGE4ZDJjODg5OGNlLi40ZjBiYjg2ZGRkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCkBAIC04NCw3ICs4NCw3IEBAIGNsYXNzIFdFQkNPUkVf
RVhQT1JUIEVtcHR5RnJhbWVMb2FkZXJDbGllbnQgOiBwdWJsaWMgRnJhbWVMb2FkZXJDbGllbnQg
ewogICAgIHZvaWQgZGlzcGF0Y2hEaWRTdGFydFByb3Zpc2lvbmFsTG9hZCgpIGZpbmFsIHsgfQog
ICAgIHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZlVGl0bGUoY29uc3QgU3RyaW5nV2l0aERpcmVjdGlv
biYpIGZpbmFsIHsgfQogICAgIHZvaWQgZGlzcGF0Y2hEaWRDb21taXRMb2FkKE9wdGlvbmFsPEhh
c0luc2VjdXJlQ29udGVudD4pIGZpbmFsIHsgfQotICAgIHZvaWQgZGlzcGF0Y2hEaWRGYWlsUHJv
dmlzaW9uYWxMb2FkKGNvbnN0IFJlc291cmNlRXJyb3ImKSBmaW5hbCB7IH0KKyAgICB2b2lkIGRp
c3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZChjb25zdCBSZXNvdXJjZUVycm9yJiwgV2lsbENv
bnRpbnVlTG9hZGluZykgZmluYWwgeyB9CiAgICAgdm9pZCBkaXNwYXRjaERpZEZhaWxMb2FkKGNv
bnN0IFJlc291cmNlRXJyb3ImKSBmaW5hbCB7IH0KICAgICB2b2lkIGRpc3BhdGNoRGlkRmluaXNo
RG9jdW1lbnRMb2FkKCkgZmluYWwgeyB9CiAgICAgdm9pZCBkaXNwYXRjaERpZEZpbmlzaExvYWQo
KSBmaW5hbCB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IGUwMTgy
NWU1N2IxLi41NzczYzk4YTAyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3Bw
CkBAIC0yNDY1LDcgKzI0NjUsOCBAQCB2b2lkIEZyYW1lTG9hZGVyOjpjaGVja0xvYWRDb21wbGV0
ZUZvclRoaXNGcmFtZSgpCiAgICAgICAgICAgICBpZiAoIXBkbC0+aXNMb2FkaW5nSW5BUElTZW5z
ZSgpIHx8IHBkbC0+aXNTdG9wcGluZygpKSB7CiAgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0df
SUZfQUxMT1dFRCgiY2hlY2tMb2FkQ29tcGxldGVGb3JUaGlzRnJhbWU6IEZhaWxlZCBwcm92aXNp
b25hbCBsb2FkIChmcmFtZSA9ICVwLCBtYWluID0gJWQsIGlzVGltZW91dCA9ICVkLCBpc0NhbmNl
bGxhdGlvbiA9ICVkLCBlcnJvckNvZGUgPSAlZCkiLCAmbV9mcmFtZSwgbV9mcmFtZS5pc01haW5G
cmFtZSgpLCBlcnJvci5pc1RpbWVvdXQoKSwgZXJyb3IuaXNDYW5jZWxsYXRpb24oKSwgZXJyb3Iu
ZXJyb3JDb2RlKCkpOwogICAgICAgICAgICAgICAgIG1fcHJvdmlzaW9uYWxMb2FkRXJyb3JCZWlu
Z0hhbmRsZWRVUkwgPSBtX3Byb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXItPnVybCgpOwotICAgICAg
ICAgICAgICAgIG1fY2xpZW50LmRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZChlcnJvcik7
CisKKyAgICAgICAgICAgICAgICBtX2NsaWVudC5kaXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExv
YWQoZXJyb3IsIGhpc3RvcnkoKS5wcm92aXNpb25hbEl0ZW0oKSA/IFdpbGxDb250aW51ZUxvYWRp
bmc6OlllcyA6IFdpbGxDb250aW51ZUxvYWRpbmc6Ok5vKTsKICNpZiBFTkFCTEUoQ09OVEVOVF9G
SUxURVJJTkcpCiAgICAgICAgICAgICAgICAgaWYgKGF1dG8gY29udGVudEZpbHRlciA9IHBkbC0+
Y29udGVudEZpbHRlcigpKQogICAgICAgICAgICAgICAgICAgICBjb250ZW50RmlsdGVyLT5oYW5k
bGVQcm92aXNpb25hbExvYWRGYWlsdXJlKGVycm9yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggZmExZGY2MGEzYTkuLmVjMzkxMjdhMWFkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMTc3LDcgKzE3Nyw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRTdGFydFByb3Zpc2lvbmFsTG9h
ZCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZlVGl0bGUoY29uc3Qg
U3RyaW5nV2l0aERpcmVjdGlvbiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRD
b21taXRMb2FkKE9wdGlvbmFsPEhhc0luc2VjdXJlQ29udGVudD4pID0gMDsKLSAgICB2aXJ0dWFs
IHZvaWQgZGlzcGF0Y2hEaWRGYWlsUHJvdmlzaW9uYWxMb2FkKGNvbnN0IFJlc291cmNlRXJyb3Im
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZChj
b25zdCBSZXNvdXJjZUVycm9yJiwgV2lsbENvbnRpbnVlTG9hZGluZykgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBkaXNwYXRjaERpZEZhaWxMb2FkKGNvbnN0IFJlc291cmNlRXJyb3ImKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkRmluaXNoRG9jdW1lbnRMb2FkKCkgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZEZpbmlzaExvYWQoKSA9IDA7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJUeXBlcy5oIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaAppbmRleCBhZDcyYWY2MTY0YS4uNGVlNTlkODY3NGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlclR5cGVzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaApAQCAtNjcsNiArNjcs
OCBAQCBlbnVtIGNsYXNzIEZyYW1lTG9hZFR5cGUgOiB1aW50OF90IHsKICAgICBSZWxvYWRFeHBp
cmVkT25seQogfTsKIAorZW51bSBjbGFzcyBXaWxsQ29udGludWVMb2FkaW5nIDogYm9vbCB7IE5v
LCBZZXMgfTsKKwogY2xhc3MgUG9saWN5Q2hlY2tJZGVudGlmaWVyIHsKIHB1YmxpYzoKICAgICBQ
b2xpY3lDaGVja0lkZW50aWZpZXIoKSA9IGRlZmF1bHQ7CkBAIC0yMTcsNCArMjE5LDEyIEBAIHRl
bXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6RnJhbWVMb2FkVHlwZT4gewogICAg
ID47CiB9OwogCit0ZW1wbGF0ZSA8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpXaWxsQ29u
dGludWVMb2FkaW5nPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAg
V2ViQ29yZTo6V2lsbENvbnRpbnVlTG9hZGluZywKKyAgICAgICAgV2ViQ29yZTo6V2lsbENvbnRp
bnVlTG9hZGluZzo6Tm8sCisgICAgICAgIFdlYkNvcmU6OldpbGxDb250aW51ZUxvYWRpbmc6Olll
cworICAgID47Cit9OworCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMv
d2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IGE4ODViYjA2MmNlLi44ZTUyYWMwM2MyOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC00NjIsNiArNDYyLDcgQEAg
ZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAgICdXZWJDb3JlOjpUZXh0Q2hlY2tp
bmdUeXBlJzogWyc8V2ViQ29yZS9UZXh0Q2hlY2tpbmcuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6
OlRleHRJbmRpY2F0b3JEYXRhJzogWyc8V2ViQ29yZS9UZXh0SW5kaWNhdG9yLmg+J10sCiAgICAg
ICAgICdXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMnOiBbJzxXZWJDb3JlL1ZpZXdwb3J0QXJn
dW1lbnRzLmg+J10sCisgICAgICAgICdXZWJDb3JlOjpXaWxsQ29udGludWVMb2FkaW5nJzogWyc8
V2ViQ29yZS9GcmFtZUxvYWRlclR5cGVzLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpTZWxlY3Rp
b25SZWN0JzogWyciRWRpdG9yU3RhdGUuaCInXSwKICAgICAgICAgJ1dlYktpdDo6QWN0aXZpdHlT
dGF0ZUNoYW5nZUlEJzogWyciRHJhd2luZ0FyZWFJbmZvLmgiJ10sCiAgICAgICAgICdXZWJLaXQ6
OkJhY2tGb3J3YXJkTGlzdEl0ZW1TdGF0ZSc6IFsnIlNlc3Npb25TdGF0ZS5oIiddLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVVJMU2NoZW1lVGFzay5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VSTFNjaGVtZVRhc2subW0K
aW5kZXggOGE1NDJlMDYwODMuLmYxM2UyYTc0NzExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVUkxTY2hlbWVUYXNrLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VSTFNjaGVtZVRhc2subW0KQEAgLTcwLDYgKzcwLDEx
IEBAIC0gKE5TVVJMUmVxdWVzdCAqKXJlcXVlc3QKICAgICByZXR1cm4gX3VybFNjaGVtZVRhc2st
PnRhc2soKS5yZXF1ZXN0KCkubnNVUkxSZXF1ZXN0KFdlYkNvcmU6OkhUVFBCb2R5VXBkYXRlUG9s
aWN5OjpVcGRhdGVIVFRQQm9keSk7CiB9CiAKKy0gKEJPT0wpX29ubHlJZkNhY2hlZAoreworICAg
IHJldHVybiBfdXJsU2NoZW1lVGFzay0+dGFzaygpLnJlcXVlc3QoKS5jYWNoZVBvbGljeSgpID09
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdENhY2hlUG9saWN5OjpSZXR1cm5DYWNoZURhdGFEb250
TG9hZDsKK30KKwogLSAodm9pZClkaWRSZWNlaXZlUmVzcG9uc2U6KE5TVVJMUmVzcG9uc2UgKily
ZXNwb25zZQogewogICAgIGF1dG8gcmVzdWx0ID0gX3VybFNjaGVtZVRhc2stPnRhc2soKS5kaWRS
ZWNlaXZlUmVzcG9uc2UocmVzcG9uc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLVVJMU2NoZW1lVGFza1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VSTFNjaGVtZVRhc2tQcml2YXRlLmgKaW5kZXggNjI0MTk3
NWUzYzcuLjc3MTg4ZDg0MDkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tVUkxTY2hlbWVUYXNrUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1VSTFNjaGVtZVRhc2tQcml2YXRlLmgKQEAgLTMwLDQgKzMwLDYg
QEAgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSkKIAogLSAodm9pZClf
ZGlkUGVyZm9ybVJlZGlyZWN0aW9uOihOU1VSTFJlc3BvbnNlICopcmVzcG9uc2UgbmV3UmVxdWVz
dDooTlNVUkxSZXF1ZXN0ICopcmVxdWVzdDsKIAorQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRv
bmx5KSBCT09MIF9vbmx5SWZDYWNoZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJB
KSwgaW9zKFdLX0lPU19UQkEpKTsKKwogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwCmluZGV4IDk4ZWZjYzhlMTk0Li40MDk5ZWQzZmVm
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5
LmNwcApAQCAtMTM0LDcgKzEzNCw3IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmNhbmNl
bCgpCiAgICAgQVNTRVJUKG1fbWFpbkZyYW1lKTsKICAgICBhdXRvIGVycm9yID0gV2ViS2l0Ojpj
YW5jZWxsZWRFcnJvcihtX3JlcXVlc3QpOwogICAgIGVycm9yLnNldFR5cGUoV2ViQ29yZTo6UmVz
b3VyY2VFcnJvcjo6VHlwZTo6Q2FuY2VsbGF0aW9uKTsKLSAgICBkaWRGYWlsUHJvdmlzaW9uYWxM
b2FkRm9yRnJhbWUobV9tYWluRnJhbWUtPmZyYW1lSUQoKSwgeyB9LCBtX25hdmlnYXRpb25JRCwg
bV9wcm92aXNpb25hbExvYWRVUkwsIGVycm9yLCBVc2VyRGF0YSB7IH0pOyAvLyBXaWxsIGRlbGV0
ZSB8dGhpc3wuCisgICAgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKG1fbWFpbkZyYW1l
LT5mcmFtZUlEKCksIHsgfSwgbV9uYXZpZ2F0aW9uSUQsIG1fcHJvdmlzaW9uYWxMb2FkVVJMLCBl
cnJvciwgV2ViQ29yZTo6V2lsbENvbnRpbnVlTG9hZGluZzo6Tm8sIFVzZXJEYXRhIHsgfSk7IC8v
IFdpbGwgZGVsZXRlIHx0aGlzfC4KIH0KIAogdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6aW5p
dGlhbGl6ZVdlYlBhZ2UoKQpAQCAtMTg5LDcgKzE4OSw3IEBAIGlubGluZSBib29sIFByb3Zpc2lv
bmFsUGFnZVByb3h5Ojp2YWxpZGF0ZUlucHV0KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IE9wdGlv
bmFsCiAgICAgaWYgKCFtX21haW5GcmFtZSB8fCBtX21haW5GcmFtZS0+ZnJhbWVJRCgpICE9IGZy
YW1lSUQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHJldHVybiAhbmF2aWdhdGlvbklE
IHx8ICpuYXZpZ2F0aW9uSUQgPT0gbV9uYXZpZ2F0aW9uSUQ7CisgICAgcmV0dXJuICFuYXZpZ2F0
aW9uSUQgfHwgISpuYXZpZ2F0aW9uSUQgfHwgKm5hdmlnYXRpb25JRCA9PSBtX25hdmlnYXRpb25J
RDsKIH0KIAogdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ3JlYXRlTWFpbkZyYW1lKHVp
bnQ2NF90IGZyYW1lSUQpCkBAIC0yNDcsNyArMjQ3LDcgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQ
cm94eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1
aW4KICAgICBtX3BhZ2UuZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChtX3By
b2Nlc3MuY29weVJlZigpLCBmcmFtZUlELCBuYXZpZ2F0aW9uSUQsIFdURk1vdmUodXJsKSwgV1RG
TW92ZSh1bnJlYWNoYWJsZVVSTCksIHVzZXJEYXRhKTsKIH0KIAotdm9pZCBQcm92aXNpb25hbFBh
Z2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQs
IGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwg
dWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBlcnJvciwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRh
KQordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYg
ZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcm
IHByb3Zpc2lvbmFsVVJMLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBlcnJvciwgV2Vi
Q29yZTo6V2lsbENvbnRpbnVlTG9hZGluZyB3aWxsQ29udGludWVMb2FkaW5nLCBjb25zdCBVc2Vy
RGF0YSYgdXNlckRhdGEpCiB7CiAgICAgaWYgKCF2YWxpZGF0ZUlucHV0KGZyYW1lSUQsIG5hdmln
YXRpb25JRCkpCiAgICAgICAgIHJldHVybjsKQEAgLTI2MCw3ICsyNjAsNyBAQCB2b2lkIFByb3Zp
c2lvbmFsUGFnZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3Qg
ZnJhbWVJRCwgY29ucwogICAgIGlmIChhdXRvKiBwYWdlTWFpbkZyYW1lID0gbV9wYWdlLm1haW5G
cmFtZSgpKQogICAgICAgICBwYWdlTWFpbkZyYW1lLT5kaWRGYWlsUHJvdmlzaW9uYWxMb2FkKCk7
CiAKLSAgICBtX3BhZ2UuZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKG1fcHJv
Y2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIGZyYW1lU2VjdXJpdHlPcmlnaW4sIG5hdmlnYXRpb25J
RCwgcHJvdmlzaW9uYWxVUkwsIGVycm9yLCB1c2VyRGF0YSk7IC8vIFdpbGwgZGVsZXRlIHx0aGlz
fC4KKyAgICBtX3BhZ2UuZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKG1fcHJv
Y2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIGZyYW1lU2VjdXJpdHlPcmlnaW4sIG5hdmlnYXRpb25J
RCwgcHJvdmlzaW9uYWxVUkwsIGVycm9yLCB3aWxsQ29udGludWVMb2FkaW5nLCB1c2VyRGF0YSk7
IC8vIE1heSBkZWxldGUgfHRoaXN8LgogfQogCiB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojpk
aWRDb21taXRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlv
bklELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGZyYW1lSGFzQ3VzdG9tQ29udGVudFBy
b3ZpZGVyLCB1aW50MzJfdCBmcmFtZUxvYWRUeXBlLCBjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0
ZUluZm8mIGNlcnRpZmljYXRlSW5mbywgYm9vbCBjb250YWluc1BsdWdpbkRvY3VtZW50LCBPcHRp
b25hbDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQ+IGZvcmNlZEhhc0luc2VjdXJlQ29udGVu
dCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQpAQCAtMzAxLDYgKzMwMSw5IEBAIHZvaWQgUHJv
dmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyh1
aW50NjRfdCBmcmFtZUlECiAKICAgICBtX3BhZ2UuZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvbkFzeW5jU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIFdURk1vdmUoZnJh
bWVTZWN1cml0eU9yaWdpbiksIGlkZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgV1RGTW92ZShuYXZp
Z2F0aW9uQWN0aW9uRGF0YSksCiAgICAgICAgIFdURk1vdmUoZnJhbWVJbmZvRGF0YSksIG9yaWdp
bmF0aW5nUGFnZUlELCBvcmlnaW5hbFJlcXVlc3QsIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUo
cmVxdWVzdEJvZHkpLCBXVEZNb3ZlKHJlZGlyZWN0UmVzcG9uc2UpLCB1c2VyRGF0YSwgbGlzdGVu
ZXJJRCk7CisKKyAgICAvLyBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmNTaGFy
ZWQoKSBnZW5lcmF0ZXMgYSBuYXZpZ2F0aW9uSUQgaWYgdGhlIG5hdmlnYXRpb24gaXMgaW5pdGlh
dGVkIGJ5IHRoZSBXZWJQcm9jZXNzIGFuZCB0aGUgbmF2aWdhdGlvbklEIHNlbnQgYnkgdGhlIFdl
YlByb2Nlc3Mgd2FzIDAuCisgICAgbV9uYXZpZ2F0aW9uSUQgPSBuYXZpZ2F0aW9uSUQ7CiB9CiAK
IHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKHVpbnQ2
NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1
cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaAppbmRleCA0
ZWYyYjc2ZDU4Ny4uODU5ZjU0Mjg3OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UHJvdmlzaW9uYWxQYWdlUHJveHkuaApAQCAtMTA0LDcgKzEwNCw3IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBkaWRDcmVhdGVNYWluRnJhbWUodWludDY0X3QgZnJhbWVJRCk7CiAgICAgdm9pZCBkaWRT
dGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgVVJMJiYsIFVSTCYmIHVucmVhY2hhYmxlVVJMLCBjb25zdCBVc2VyRGF0YSYp
OwogICAgIHZvaWQgZGlkQ29tbWl0TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBmcmFtZUhhc0N1
c3RvbUNvbnRlbnRQcm92aWRlciwgdWludDMyX3QgZnJhbWVMb2FkVHlwZSwgY29uc3QgV2ViQ29y
ZTo6Q2VydGlmaWNhdGVJbmZvJiwgYm9vbCBjb250YWluc1BsdWdpbkRvY3VtZW50LCBPcHRpb25h
bDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQ+IGZvcmNlZEhhc0luc2VjdXJlQ29udGVudCwg
Y29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZy
YW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBw
cm92aXNpb25hbFVSTCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIGNvbnN0IFVzZXJE
YXRhJik7CisgICAgdm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3Qg
ZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5
T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxV
UkwsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBXZWJDb3JlOjpXaWxsQ29udGludWVM
b2FkaW5nLCBjb25zdCBVc2VyRGF0YSYpOwogICAgIHZvaWQgc3RhcnRVUkxTY2hlbWVUYXNrKFVS
TFNjaGVtZVRhc2tQYXJhbWV0ZXJzJiYpOwogICAgIHZvaWQgYmFja0ZvcndhcmRHb1RvSXRlbShj
b25zdCBXZWJDb3JlOjpCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyJiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJik+JiYpOwogICAgIHZvaWQgZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmModWludDY0X3QgZnJhbWVJRCwgYm9vbCBpc01h
aW5GcmFtZSwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNo
ZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0
YSYmLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZTJjOTc4
ZTc1NGEuLjQxN2QxMGMxMzU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKQEAgLTQwMTUsMTcgKzQwMTUsMTcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZENoYW5n
ZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJgogICAg
IGZyYW1lLT5kaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWQodXJsKTsK
IH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1
aW50NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlP
cmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBwcm92aXNpb25hbFVS
TCwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkK
K3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0
X3QgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2lu
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNv
bnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBXaWxsQ29udGludWVMb2FkaW5nIHdpbGxDb250aW51
ZUxvYWRpbmcsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBpZiAobV9wcm92aXNp
b25hbFBhZ2UgJiYgbV9wcm92aXNpb25hbFBhZ2UtPm5hdmlnYXRpb25JRCgpID09IG5hdmlnYXRp
b25JRCkgewogICAgICAgICAvLyBUaGUgbG9hZCBkaWQgbm90IGZhaWwsIGl0IGlzIG1lcmVseSBo
YXBwZW5pbmcgaW4gYSBuZXcgcHJvdmlzaW9uYWwgcHJvY2Vzcy4KICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIGRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChtX3Byb2Nl
c3MuY29weVJlZigpLCBmcmFtZUlELCBmcmFtZVNlY3VyaXR5T3JpZ2luLCBuYXZpZ2F0aW9uSUQs
IHByb3Zpc2lvbmFsVVJMLCBlcnJvciwgdXNlckRhdGEpOworICAgIGRpZEZhaWxQcm92aXNpb25h
bExvYWRGb3JGcmFtZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBmcmFtZUlELCBmcmFtZVNl
Y3VyaXR5T3JpZ2luLCBuYXZpZ2F0aW9uSUQsIHByb3Zpc2lvbmFsVVJMLCBlcnJvciwgd2lsbENv
bnRpbnVlTG9hZGluZywgdXNlckRhdGEpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmFp
bFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJv
Y2VzcywgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNl
Y3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlz
aW9uYWxVUkwsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBjb25zdCBVc2VyRGF0YSYgdXNl
ckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1l
U2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgdWludDY0X3QgZnJhbWVJRCwg
Y29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNvbnN0IFJlc291cmNl
RXJyb3ImIGVycm9yLCBXaWxsQ29udGludWVMb2FkaW5nIHdpbGxDb250aW51ZUxvYWRpbmcsIGNv
bnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBMT0coTG9hZGluZywgIihMb2FkaW5nKSBX
ZWJQYWdlUHJveHkgJSIgUFJJdTY0ICIgaW4gd2ViIHByb2Nlc3MgcGlkICVpIGRpZEZhaWxQcm92
aXNpb25hbExvYWRGb3JGcmFtZSB0byBwcm92aXNpb25hbFVSTCAlcyIsIG1fcGFnZUlELCBwcm9j
ZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBwcm92aXNpb25hbFVSTC51dGY4KCkuZGF0YSgpKTsK
ICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKFByb2Nlc3MsICJkaWRGYWlsUHJvdmlzaW9uYWxM
b2FkRm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9
ICUiIFBSSXU2NCAiLCBkb21haW4gPSAlcywgY29kZSA9ICVkIiwgcHJvY2Vzcy0+cHJvY2Vzc0lk
ZW50aWZpZXIoKSwgbV9wYWdlSUQsIGZyYW1lSUQsIGVycm9yLmRvbWFpbigpLnV0ZjgoKS5kYXRh
KCksIGVycm9yLmVycm9yQ29kZSgpKTsKQEAgLTQwNzIsNyArNDA3Miw3IEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nl
c3NQcm94eT4mJiBwCiAgICAgbV9mYWlsaW5nUHJvdmlzaW9uYWxMb2FkVVJMID0geyB9OwogCiAg
ICAgLy8gSWYgdGhlIHByb3Zpc2lvbmFsIHBhZ2UncyBsb2FkIGZhaWxzIHRoZW4gd2UgZGVzdHJv
eSB0aGUgcHJvdmlzaW9uYWwgcGFnZS4KLSAgICBpZiAobV9wcm92aXNpb25hbFBhZ2UgJiYgbV9w
cm92aXNpb25hbFBhZ2UtPm1haW5GcmFtZSgpID09IGZyYW1lKQorICAgIGlmIChtX3Byb3Zpc2lv
bmFsUGFnZSAmJiBtX3Byb3Zpc2lvbmFsUGFnZS0+bWFpbkZyYW1lKCkgPT0gZnJhbWUgJiYgd2ls
bENvbnRpbnVlTG9hZGluZyA9PSBXaWxsQ29udGludWVMb2FkaW5nOjpObykKICAgICAgICAgbV9w
cm92aXNpb25hbFBhZ2UgPSBudWxscHRyOwogfQogCkBAIC00NDk1LDcgKzQ0OTUsNyBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKHVpbnQ2
NF90IGZyYW1lSUQsIFdlYkNvcgogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJv
Y2VzcywgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJh
bWVTZWN1cml0eU9yaWdpbiwKLSAgICBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRl
bnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmIG5h
dmlnYXRpb25BY3Rpb25EYXRhLCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvRGF0YSwgdWludDY0
X3Qgb3JpZ2luYXRpbmdQYWdlSUQsCisgICAgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVy
IGlkZW50aWZpZXIsIHVpbnQ2NF90JiBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRh
JiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm9EYXRhLCB1
aW50NjRfdCBvcmlnaW5hdGluZ1BhZ2VJRCwKICAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVz
dCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwKICAgICBjb25zdCBVc2VyRGF0YSYgdXNlckRh
dGEsIHVpbnQ2NF90IGxpc3RlbmVySUQpCiB7CkBAIC00NTEwLDcgKzQ1MTAsNyBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKFJl
ZjxXZWJQcm9jZXNzUHJveAogICAgICAgICBvcmlnaW5hbFJlcXVlc3QsIFdURk1vdmUocmVxdWVz
dCksIFdURk1vdmUocmVxdWVzdEJvZHkpLCBXVEZNb3ZlKHJlZGlyZWN0UmVzcG9uc2UpLCB1c2Vy
RGF0YSwgV1RGTW92ZShzZW5kZXIpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25BY3Rpb24oUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBX
ZWJGcmFtZVByb3h5JiBmcmFtZSwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVT
ZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELAordm9pZCBXZWJQYWdlUHJveHk6
OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBw
cm9jZXNzLCBXZWJGcmFtZVByb3h5JiBmcmFtZSwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
JiYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QmIG5hdmlnYXRpb25JRCwKICAgICBOYXZp
Z2F0aW9uQWN0aW9uRGF0YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBGcmFtZUluZm9EYXRhJiYg
b3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLCB1aW50NjRfdCBvcmlnaW5hdGluZ1BhZ2VJRCwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYmIHJlcXVlc3QsCiAgICAgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJl
cXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwg
Y29uc3QgVXNlckRhdGEmIHVzZXJEYXRhLCBSZWY8UG9saWN5RGVjaXNpb25TZW5kZXI+JiYgc2Vu
ZGVyKQogewpAQCAtNDU1Nyw3ICs0NTU3LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25BY3Rpb24oUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXMKICAg
ICAgICAgICAgIG5hdmlnYXRpb24gPSBtX25hdmlnYXRpb25TdGF0ZS0+Y3JlYXRlTG9hZFJlcXVl
c3ROYXZpZ2F0aW9uKFJlc291cmNlUmVxdWVzdChyZXF1ZXN0KSwgbV9iYWNrRm9yd2FyZExpc3Qt
PmN1cnJlbnRJdGVtKCkpOwogICAgIH0KIAotICAgIHVpbnQ2NF90IG5ld05hdmlnYXRpb25JRCA9
IG5hdmlnYXRpb24tPm5hdmlnYXRpb25JRCgpOworICAgIG5hdmlnYXRpb25JRCA9IG5hdmlnYXRp
b24tPm5hdmlnYXRpb25JRCgpOwogICAgIG5hdmlnYXRpb24tPnNldEN1cnJlbnRSZXF1ZXN0KFJl
c291cmNlUmVxdWVzdChyZXF1ZXN0KSwgcHJvY2Vzcy0+Y29yZVByb2Nlc3NJZGVudGlmaWVyKCkp
OwogICAgIG5hdmlnYXRpb24tPnNldExhc3ROYXZpZ2F0aW9uQWN0aW9uKG5hdmlnYXRpb25BY3Rp
b25EYXRhKTsKICAgICBuYXZpZ2F0aW9uLT5zZXRPcmlnaW5hdGluZ0ZyYW1lSW5mbyhvcmlnaW5h
dGluZ0ZyYW1lSW5mb0RhdGEpOwpAQCAtNDU2Niw5ICs0NTY2LDcgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oUmVmPFdlYlByb2Nlc3NQcm94eT4m
JiBwcm9jZXMKIAogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKICAgICBpZiAoZnJhbWUu
ZGlkSGFuZGxlQ29udGVudEZpbHRlclVuYmxvY2tOYXZpZ2F0aW9uKHJlcXVlc3QpKQotICAgICAg
ICByZXR1cm4gcmVjZWl2ZWRQb2xpY3lEZWNpc2lvbihQb2xpY3lBY3Rpb246Oklnbm9yZSwgbV9u
YXZpZ2F0aW9uU3RhdGUtPm5hdmlnYXRpb24obmV3TmF2aWdhdGlvbklEKSwgV1RGOjpudWxsb3B0
LCBXVEZNb3ZlKHNlbmRlcikpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0obmV3TmF2aWdhdGlv
bklEKTsKKyAgICAgICAgcmV0dXJuIHJlY2VpdmVkUG9saWN5RGVjaXNpb24oUG9saWN5QWN0aW9u
OjpJZ25vcmUsIG1fbmF2aWdhdGlvblN0YXRlLT5uYXZpZ2F0aW9uKG5hdmlnYXRpb25JRCksIFdU
Rjo6bnVsbG9wdCwgV1RGTW92ZShzZW5kZXIpKTsKICNlbmRpZgogCiAgICAgU2hvdWxkRXhwZWN0
U2FmZUJyb3dzaW5nUmVzdWx0IHNob3VsZEV4cGVjdFNhZmVCcm93c2luZ1Jlc3VsdCA9IFNob3Vs
ZEV4cGVjdFNhZmVCcm93c2luZ1Jlc3VsdDo6WWVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaAppbmRleCAzNTdkYzFiNWIyOS4uYTBmMWQwMDM4NzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xNDgzLDE0ICsxNDgzLDE0IEBAIHB1YmxpYzoK
IAogICAgIC8vIExvZ2ljIHNoYXJlZCBiZXR3ZWVuIHRoZSBXZWJQYWdlUHJveHkgYW5kIHRoZSBQ
cm92aXNpb25hbFBhZ2VQcm94eS4KICAgICB2b2lkIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9y
RnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgdWludDY0X3QgZnJhbWVJRCwgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJiwgVVJMJiYgdW5yZWFjaGFibGVVUkwsIGNvbnN0IFVz
ZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQo
UmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0
aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlRXJyb3ImLCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlkRmFpbFByb3Zpc2lvbmFs
TG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIHVpbnQ2NF90IGZyYW1l
SUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdp
biwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgV2ViQ29yZTo6V2lsbENvbnRpbnVlTG9hZGlu
ZywgY29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZv
clByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIHVp
bnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiYsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCBkaWRQZXJmb3JtU2VydmVyUmVk
aXJlY3RTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgY29uc3QgU3RyaW5nJiBzb3VyY2VV
UkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIHVpbnQ2NF90IGZy
YW1lSUQpOwogICAgIHZvaWQgZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0U2hhcmVkKFJlZjxXZWJQ
cm9jZXNzUHJveHk+JiYsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJp
bmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCB1aW50NjRfdCBmcmFtZUlEKTsKICAgICB2b2lkIGRp
ZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYs
IGNvbnN0IFdlYk5hdmlnYXRpb25EYXRhU3RvcmUmLCB1aW50NjRfdCBmcmFtZUlEKTsKICAgICB2
b2lkIGRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQ
cm94eT4mJiwgdWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJik7
CiAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmNTaGFyZWQoUmVm
PFdlYlByb2Nlc3NQcm94eT4mJiwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVu
dGlmaWVyLAotICAgICAgICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25E
YXRhJiYsIEZyYW1lSW5mb0RhdGEmJiwgdWludDY0X3Qgb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmJiwKKyAgICAgICAgdWludDY0X3QmIG5hdmlnYXRpb25JRCwgTmF2aWdhdGlv
bkFjdGlvbkRhdGEmJiwgRnJhbWVJbmZvRGF0YSYmLCB1aW50NjRfdCBvcmlnaW5hdGluZ1BhZ2VJ
RCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYmLAogICAgICAgICBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYg
cmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNl
LCBjb25zdCBVc2VyRGF0YSYsIHVpbnQ2NF90IGxpc3RlbmVySUQpOwogICAgIHZvaWQgZGVjaWRl
UG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgdWludDY0X3Qg
ZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5
T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsCiAgICAgICAgIHVpbnQ2NF90
IG5hdmlnYXRpb25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJp
bmcmIGRvd25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0
YSYpOwpAQCAtMTU4NSw3ICsxNTg1LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHdpbGxQZXJmb3Jt
Q2xpZW50UmVkaXJlY3RGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHVy
bCwgZG91YmxlIGRlbGF5LCBXZWJDb3JlOjpMb2NrQmFja0ZvcndhcmRMaXN0KTsKICAgICB2b2lk
IGRpZENhbmNlbENsaWVudFJlZGlyZWN0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCk7CiAgICAg
dm9pZCBkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYpOwotICAgIHZvaWQgZGlkRmFpbFByb3Zpc2lvbmFs
TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25z
dCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwg
Y29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZy
YW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBw
cm92aXNpb25hbFVSTCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIFdlYkNvcmU6Oldp
bGxDb250aW51ZUxvYWRpbmcsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCBkaWRDb21taXRM
b2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25z
dCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGZyYW1lSGFzQ3VzdG9tQ29udGVudFByb3ZpZGVyLCB1
aW50MzJfdCBmcmFtZUxvYWRUeXBlLCBjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mLCBi
b29sIGNvbnRhaW5zUGx1Z2luRG9jdW1lbnQsIE9wdGlvbmFsPFdlYkNvcmU6Okhhc0luc2VjdXJl
Q29udGVudD4gZm9yY2VkSGFzSW5zZWN1cmVDb250ZW50LCBjb25zdCBVc2VyRGF0YSYpOwogICAg
IHZvaWQgZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBVc2VyRGF0YSYpOwogICAgIHZvaWQgZGlkRmluaXNo
TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29u
c3QgVXNlckRhdGEmKTsKQEAgLTE2MTEsNyArMTYxMSw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lk
IGRpZERlc3Ryb3lOYXZpZ2F0aW9uKHVpbnQ2NF90IG5hdmlnYXRpb25JRCk7CiAKLSAgICB2b2lk
IGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwg
V2ViRnJhbWVQcm94eSYsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsCisgICAgdm9pZCBkZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkZyYW1lUHJv
eHkmLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgdWludDY0X3QmIG5hdmlnYXRpb25J
RCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwKICAgICAgICAgRnJhbWVJbmZvRGF0YSYmLCB1aW50
NjRfdCBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBv
cmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZvcm1EYXRh
UmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksCiAgICAgICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIFJlZjxQb2xpY3lEZWNpc2lv
blNlbmRlcj4mJik7CiAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5
bmModWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIFdlYkNv
cmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0
aW9uQWN0aW9uRGF0YSYmLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluCmluZGV4IDFkNDRjNmE0YjUxLi5iMGI0NWNiZTVjMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtMTI3
LDcgKzEyNyw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgV2lsbFBlcmZvcm1D
bGllbnRSZWRpcmVjdEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyB1cmwsIGRvdWJs
ZSBkZWxheSwgZW51bTpib29sIFdlYkNvcmU6OkxvY2tCYWNrRm9yd2FyZExpc3QgbG9ja0JhY2tG
b3J3YXJkTGlzdCkKICAgICBEaWRDYW5jZWxDbGllbnRSZWRpcmVjdEZvckZyYW1lKHVpbnQ2NF90
IGZyYW1lSUQpCiAgICAgRGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZSh1aW50NjRfdCBm
cmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCB1cmwpCi0gICAgRGlkRmFpbFByb3Zp
c2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBTdHJpbmcgcHJvdmlzaW9uYWxVUkwsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IsIFdl
YktpdDo6VXNlckRhdGEgdXNlckRhdGEpCisgICAgRGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEg
ZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBTdHJpbmcgcHJvdmlz
aW9uYWxVUkwsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IsIGVudW06Ym9vbCBXZWJDb3Jl
OjpXaWxsQ29udGludWVMb2FkaW5nIHdpbGxDb250aW51ZUxvYWRpbmcsIFdlYktpdDo6VXNlckRh
dGEgdXNlckRhdGEpCiAgICAgRGlkQ29tbWl0TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQs
IHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgU3RyaW5nIG1pbWVUeXBlLCBib29sIGhhc0N1c3RvbUNv
bnRlbnRQcm92aWRlciwgdWludDMyX3QgbG9hZFR5cGUsIFdlYkNvcmU6OkNlcnRpZmljYXRlSW5m
byBjZXJ0aWZpY2F0ZUluZm8sIGJvb2wgY29udGFpbnNQbHVnaW5Eb2N1bWVudCwgT3B0aW9uYWw8
V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50PiBmb3JjZWRIYXNJbnNlY3VyZUNvbnRlbnQsIFdl
YktpdDo6VXNlckRhdGEgdXNlckRhdGEpCiAgICAgRGlkRmFpbExvYWRGb3JGcmFtZSh1aW50NjRf
dCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlRXJyb3Ig
ZXJyb3IsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCiAgICAgRGlkRmluaXNoRG9jdW1lbnRM
b2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJL
aXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5k
ZXggNGFjOWRiNjM4ZTUuLmM0OWJiMWJhNDNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5jcHAKQEAgLTUzNSw3ICs1MzUsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNw
YXRjaERpZENvbW1pdExvYWQoT3B0aW9uYWw8SGFzSW5zZWN1cmVDb250ZW50PiBoYQogICAgIHdl
YlBhZ2UtPmRpZENvbW1pdExvYWQobV9mcmFtZSk7CiB9CiAKLXZvaWQgV2ViRnJhbWVMb2FkZXJD
bGllbnQ6OmRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZChjb25zdCBSZXNvdXJjZUVycm9y
JiBlcnJvcikKK3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbFByb3Zp
c2lvbmFsTG9hZChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciwgV2lsbENvbnRpbnVlTG9hZGlu
ZyB3aWxsQ29udGludWVMb2FkaW5nKQogewogICAgIFdlYlBhZ2UqIHdlYlBhZ2UgPSBtX2ZyYW1l
LT5wYWdlKCk7CiAgICAgaWYgKCF3ZWJQYWdlKQpAQCAtNTY0LDcgKzU2NCw3IEBAIHZvaWQgV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZChjb25zdCBS
ZXNvdXJjZUVycm9yJiBlCiAKICAgICAvLyBOb3RpZnkgdGhlIFVJUHJvY2Vzcy4KICAgICBXZWJD
b3JlOjpGcmFtZSogY29yZUZyYW1lID0gbV9mcmFtZSA/IG1fZnJhbWUtPmNvcmVGcmFtZSgpIDog
bnVsbHB0cjsKLSAgICB3ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZEZh
aWxQcm92aXNpb25hbExvYWRGb3JGcmFtZShtX2ZyYW1lLT5mcmFtZUlEKCksIFNlY3VyaXR5T3Jp
Z2luRGF0YTo6ZnJvbUZyYW1lKGNvcmVGcmFtZSksIG5hdmlnYXRpb25JRCwgbV9mcmFtZS0+Y29y
ZUZyYW1lKCktPmxvYWRlcigpLnByb3Zpc2lvbmFsTG9hZEVycm9yQmVpbmdIYW5kbGVkVVJMKCks
IGVycm9yLCBVc2VyRGF0YShXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS50cmFuc2Zvcm1PYmplY3Rz
VG9IYW5kbGVzKHVzZXJEYXRhLmdldCgpKS5nZXQoKSkpKTsKKyAgICB3ZWJQYWdlLT5zZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZShtX2Zy
YW1lLT5mcmFtZUlEKCksIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbUZyYW1lKGNvcmVGcmFtZSks
IG5hdmlnYXRpb25JRCwgbV9mcmFtZS0+Y29yZUZyYW1lKCktPmxvYWRlcigpLnByb3Zpc2lvbmFs
TG9hZEVycm9yQmVpbmdIYW5kbGVkVVJMKCksIGVycm9yLCB3aWxsQ29udGludWVMb2FkaW5nLCBV
c2VyRGF0YShXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS50cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVz
KHVzZXJEYXRhLmdldCgpKS5nZXQoKSkpKTsKIAogICAgIC8vIElmIHdlIGhhdmUgYSBsb2FkIGxp
c3RlbmVyLCBub3RpZnkgaXQuCiAgICAgaWYgKFdlYkZyYW1lOjpMb2FkTGlzdGVuZXIqIGxvYWRM
aXN0ZW5lciA9IG1fZnJhbWUtPmxvYWRMaXN0ZW5lcigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuaAppbmRleCBjYjRmZjVjMTk1Yy4uZjczYWI4Y2E3M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5oCkBAIC0xMTIsNyArMTEyLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpc3BhdGNo
RGlkU3RhcnRQcm92aXNpb25hbExvYWQoKSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoRGlkUmVj
ZWl2ZVRpdGxlKGNvbnN0IFdlYkNvcmU6OlN0cmluZ1dpdGhEaXJlY3Rpb24mKSBmaW5hbDsKICAg
ICB2b2lkIGRpc3BhdGNoRGlkQ29tbWl0TG9hZChPcHRpb25hbDxXZWJDb3JlOjpIYXNJbnNlY3Vy
ZUNvbnRlbnQ+KSBmaW5hbDsKLSAgICB2b2lkIGRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9h
ZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJikgZmluYWw7CisgICAgdm9pZCBkaXNwYXRj
aERpZEZhaWxQcm92aXNpb25hbExvYWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIFdl
YkNvcmU6OldpbGxDb250aW51ZUxvYWRpbmcpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hEaWRG
YWlsTG9hZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJikgZmluYWw7CiAgICAgdm9pZCBk
aXNwYXRjaERpZEZpbmlzaERvY3VtZW50TG9hZCgpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hE
aWRGaW5pc2hMb2FkKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCBiNTdh
YzFmNWIxNi4uMTM4NTU4M2FmMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMTE3
LDcgKzExNyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaXNwYXRjaERpZFN0YXJ0UHJvdmlzaW9u
YWxMb2FkKCkgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERpZFJlY2VpdmVUaXRsZShjb25zdCBX
ZWJDb3JlOjpTdHJpbmdXaXRoRGlyZWN0aW9uJikgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERp
ZENvbW1pdExvYWQoT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50PikgZmluYWw7
Ci0gICAgdm9pZCBkaXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQoY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VFcnJvciYpIGZpbmFsOworICAgIHZvaWQgZGlzcGF0Y2hEaWRGYWlsUHJvdmlzaW9u
YWxMb2FkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBXZWJDb3JlOjpXaWxsQ29udGlu
dWVMb2FkaW5nKSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoRGlkRmFpbExvYWQoY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VFcnJvciYpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hEaWRGaW5pc2hE
b2N1bWVudExvYWQoKSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoRGlkRmluaXNoTG9hZCgpIGZp
bmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQppbmRleCA0Yjk0MjE3Mjk5Ny4uN2Y4Njlm
MWRkY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCkBAIC03MjQsNyArNzI0LDcgQEAg
dm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRDb21taXRMb2FkKE9wdGlvbmFs
PEhhc0luc2VjdXJlQ29udGVudD4pCiAgICAgICAgIENhbGxGcmFtZUxvYWREZWxlZ2F0ZShpbXBs
ZW1lbnRhdGlvbnMtPmRpZENvbW1pdExvYWRGb3JGcmFtZUZ1bmMsIHdlYlZpZXcsIEBzZWxlY3Rv
cih3ZWJWaWV3OmRpZENvbW1pdExvYWRGb3JGcmFtZTopLCBtX3dlYkZyYW1lLmdldCgpKTsKIH0K
IAotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGYWlsUHJvdmlzaW9uYWxM
b2FkKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVu
dDo6ZGlzcGF0Y2hEaWRGYWlsUHJvdmlzaW9uYWxMb2FkKGNvbnN0IFJlc291cmNlRXJyb3ImIGVy
cm9yLCBXaWxsQ29udGludWVMb2FkaW5nKQogewogICAgIG1fd2ViRnJhbWUtPl9wcml2YXRlLT5w
cm92aXNpb25hbFVSTCA9IG51bGxwdHI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApp
bmRleCBkMGQ2NmQxNTliNS4uNWM1ODEzZjkxYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5jcHAKQEAgLTQ0NSw3ICs0NDUsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNw
YXRjaERpZENvbW1pdExvYWQoT3B0aW9uYWw8SGFzSW5zZWN1cmVDb250ZW50PikKICAgICAgICAg
ZnJhbWVMb2FkRGVsZWdhdGUtPmRpZENvbW1pdExvYWRGb3JGcmFtZSh3ZWJWaWV3LCBtX3dlYkZy
YW1lKTsKIH0KIAotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGYWlsUHJv
dmlzaW9uYWxMb2FkKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQordm9pZCBXZWJGcmFtZUxv
YWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGYWlsUHJvdmlzaW9uYWxMb2FkKGNvbnN0IFJlc291cmNl
RXJyb3ImIGVycm9yLCBXaWxsQ29udGludWVMb2FkaW5nKQogewogICAgIFdlYlZpZXcqIHdlYlZp
ZXcgPSBtX3dlYkZyYW1lLT53ZWJWaWV3KCk7CiAgICAgQ09NUHRyPElXZWJGcmFtZUxvYWREZWxl
Z2F0ZT4gZnJhbWVMb2FkRGVsZWdhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCA1
N2U0YmJhYmFlYS4uMzIyYzA5MDA1YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAt
OTQsNyArOTQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaXNwYXRjaERpZFN0YXJ0UHJvdmlzaW9u
YWxMb2FkKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaXNwYXRjaERpZFJlY2VpdmVUaXRsZShjb25z
dCBXZWJDb3JlOjpTdHJpbmdXaXRoRGlyZWN0aW9uJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaXNw
YXRjaERpZENvbW1pdExvYWQoT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50Pikg
b3ZlcnJpZGU7Ci0gICAgdm9pZCBkaXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQoY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlzcGF0Y2hEaWRG
YWlsUHJvdmlzaW9uYWxMb2FkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBXZWJDb3Jl
OjpXaWxsQ29udGludWVMb2FkaW5nKSBvdmVycmlkZTsKICAgICB2b2lkIGRpc3BhdGNoRGlkRmFp
bExvYWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpIG92ZXJyaWRlOwogICAgIHZvaWQg
ZGlzcGF0Y2hEaWRGaW5pc2hEb2N1bWVudExvYWQoKSBvdmVycmlkZTsKICAgICB2b2lkIGRpc3Bh
dGNoRGlkRmluaXNoTG9hZCgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbSBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24u
bW0KaW5kZXggZmM0ZmE2YTFkYzUuLmNmOWVhMTdmNjg4IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5h
dmlnYXRpb24ubW0KQEAgLTI3Niw2ICsyNzYsMTEgQEAgLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZp
ZXcgKil3ZWJWaWV3IHN0YXJ0VVJMU2NoZW1lVGFzazooaWQgPFdLVVJMU2NoZW1lVGFzaz4pdGEK
ICAgICAgICAgWyhpZDxXS1VSTFNjaGVtZVRhc2tQcml2YXRlPil0YXNrIF9kaWRQZXJmb3JtUmVk
aXJlY3Rpb246cmVkaXJlY3RSZXNwb25zZS5nZXQoKSBuZXdSZXF1ZXN0OnJlcXVlc3QuZ2V0KCld
OwogICAgIH0KIAorICAgIGlmIChbKGlkPFdLVVJMU2NoZW1lVGFza1ByaXZhdGU+KXRhc2sgX29u
bHlJZkNhY2hlZF0pIHsKKyAgICAgICAgW3Rhc2sgZGlkRmFpbFdpdGhFcnJvcjpbTlNFcnJvciBl
cnJvcldpdGhEb21haW46QCJUZXN0V2ViS2l0QVBJIiBjb2RlOjEgdXNlckluZm86bmlsXV07Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBSZXRhaW5QdHI8TlNVUkxSZXNwb25zZT4gcmVz
cG9uc2UgPSBhZG9wdE5TKFtbTlNVUkxSZXNwb25zZSBhbGxvY10gaW5pdFdpdGhVUkw6ZmluYWxV
UkwgTUlNRVR5cGU6QCJ0ZXh0L2h0bWwiIGV4cGVjdGVkQ29udGVudExlbmd0aDoxIHRleHRFbmNv
ZGluZ05hbWU6bmlsXSk7CiAgICAgW3Rhc2sgZGlkUmVjZWl2ZVJlc3BvbnNlOnJlc3BvbnNlLmdl
dCgpXTsKIApAQCAtNDI3OCw2ICs0MjgzLDY3IEBAIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRl
VG9Dcm9zc1NpdGVUaGVuQmFja0Zyb21KUykKICAgICBFWFBFQ1RfTkUoYXBwbGVQSUQsIFt3ZWJW
aWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl0pOwogfQogCitzdGF0aWMgY29uc3QgY2hhciogY3Jv
c3NTaXRlRm9ybVN1Ym1pc3Npb25CeXRlcyA9IFIiUFNPTlJFU09VUkNFKAorPGJvZHk+Cis8Zm9y
bSBhY3Rpb249InBzb246Ly93d3cuYXBwbGUuY29tL21haW4uaHRtbCIgbWV0aG9kPSJwb3N0Ij4K
K05hbWU6IDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJuYW1lIiBwbGFjZWhvbGRlcj0iTmFtZSI+
Cis8aW5wdXQgaWQ9InN1Ym1pdEJ1dHRvbiIgdHlwZT0ic3VibWl0Ij4KKzwvZm9ybT4KKzwvYm9k
eT4KKylQU09OUkVTT1VSQ0UiOworCitURVNUKFByb2Nlc3NTd2FwLCBTd2FwT25Gb3JtU3VibWlz
c2lvbikKK3sKKyAgICBhdXRvIHByb2Nlc3NQb29sQ29uZmlndXJhdGlvbiA9IHBzb25Qcm9jZXNz
UG9vbENvbmZpZ3VyYXRpb24oKTsKKyAgICBhdXRvIHByb2Nlc3NQb29sID0gYWRvcHROUyhbW1dL
UHJvY2Vzc1Bvb2wgYWxsb2NdIF9pbml0V2l0aENvbmZpZ3VyYXRpb246cHJvY2Vzc1Bvb2xDb25m
aWd1cmF0aW9uLmdldCgpXSk7CisKKyAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9uID0gYWRv
cHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBbd2ViVmll
d0NvbmZpZ3VyYXRpb24gc2V0UHJvY2Vzc1Bvb2w6cHJvY2Vzc1Bvb2wuZ2V0KCldOworICAgIGF1
dG8gaGFuZGxlciA9IGFkb3B0TlMoW1tQU09OU2NoZW1lIGFsbG9jXSBpbml0XSk7CisgICAgW2hh
bmRsZXIgYWRkTWFwcGluZ0Zyb21VUkxTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFp
bi5odG1sIiB0b0RhdGE6Y3Jvc3NTaXRlRm9ybVN1Ym1pc3Npb25CeXRlc107CisgICAgW3dlYlZp
ZXdDb25maWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6aGFuZGxlci5nZXQoKSBmb3JVUkxT
Y2hlbWU6QCJQU09OIl07CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3
IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3Vy
YXRpb246d2ViVmlld0NvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBhdXRvIG5hdmlnYXRpb25E
ZWxlZ2F0ZSA9IGFkb3B0TlMoW1tQU09OTmF2aWdhdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7
CisgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOm5hdmlnYXRpb25EZWxlZ2F0ZS5n
ZXQoKV07CisKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RX
aXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4u
aHRtbCJdXV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBkb25l
ID0gZmFsc2U7CisgICAgYXV0byB3ZWJraXRQSUQgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50
aWZpZXJdOworICAgIEVYUEVDVF9XS19TVFJFUShAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWlu
Lmh0bWwiLCBbW3dlYlZpZXcgVVJMXSBhYnNvbHV0ZVN0cmluZ10pOworCisgICAgW3dlYlZpZXcg
ZXZhbHVhdGVKYXZhU2NyaXB0OkAic3VibWl0QnV0dG9uLmNsaWNrKCkiIGNvbXBsZXRpb25IYW5k
bGVyOm5pbF07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBkb25l
ID0gZmFsc2U7CisgICAgYXV0byBhcHBsZVBJRCA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRp
Zmllcl07CisgICAgRVhQRUNUX05FKHdlYmtpdFBJRCwgYXBwbGVQSUQpOworICAgIEVYUEVDVF9X
S19TVFJFUShAInBzb246Ly93d3cuYXBwbGUuY29tL21haW4uaHRtbCIsIFtbd2ViVmlldyBVUkxd
IGFic29sdXRlU3RyaW5nXSk7CisKKyAgICBbd2ViVmlldyByZWxvYWRdOworICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgZG9uZSA9IGZhbHNlOworICAgIEVYUEVDVF9F
UShhcHBsZVBJRCwgW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXSk7CisgICAgRVhQRUNU
X1dLX1NUUkVRKEAicHNvbjovL3d3dy5hcHBsZS5jb20vbWFpbi5odG1sIiwgW1t3ZWJWaWV3IFVS
TF0gYWJzb2x1dGVTdHJpbmddKTsKKworICAgIFt3ZWJWaWV3IGdvQmFja107CisgICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBkb25lID0gZmFsc2U7CisgICAgRVhQRUNU
X0VRKHdlYmtpdFBJRCwgW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXSk7CisgICAgRVhQ
RUNUX1dLX1NUUkVRKEAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCIsIFtbd2ViVmll
dyBVUkxdIGFic29sdXRlU3RyaW5nXSk7CisKKyAgICBbd2ViVmlldyBnb0ZvcndhcmRdOworICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgZG9uZSA9IGZhbHNlOworICAg
IEVYUEVDVF9FUShhcHBsZVBJRCwgW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXSk7Cisg
ICAgRVhQRUNUX1dLX1NUUkVRKEAicHNvbjovL3d3dy5hcHBsZS5jb20vbWFpbi5odG1sIiwgW1t3
ZWJWaWV3IFVSTF0gYWJzb2x1dGVTdHJpbmddKTsKKworICAgIFt3ZWJWaWV3IGdvQmFja107Cisg
ICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBkb25lID0gZmFsc2U7Cisg
ICAgRVhQRUNUX0VRKHdlYmtpdFBJRCwgW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXSk7
CisgICAgRVhQRUNUX1dLX1NUUkVRKEAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCIs
IFtbd2ViVmlldyBVUkxdIGFic29sdXRlU3RyaW5nXSk7Cit9CiAKIFRFU1QoUHJvY2Vzc1N3YXAs
IENsb3NlUGFnZUFmdGVyQ3Jvc3NTaXRlUHJvdmlzaW9uYWxMb2FkKQogewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>367853</attachid>
            <date>2019-04-19 16:42:52 -0700</date>
            <delta_ts>2019-04-22 10:21:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-197097-20190419164251.patch</filename>
            <type>text/plain</type>
            <size>43173</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ0NDY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGY2ZmM3MzhlMjI2OTNh
NDg3M2QzN2M4NzJhNzI0OWQxNzMwNjEyMy4uNWVlNjI0NDgyMTI2ODEwMzBjMDI1ZTkzYjZiODcz
Njg5MWJiMGY4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE5LTA0LTE5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1Byb2Nlc3MtU3dhcC1Pbi1O
YXZpZ2F0aW9uXSBXZWJLaXQgaGFuZ3Mgd2hlbiBnb2luZyBiYWNrIHRvIGEgZm9ybSBzdWJtaXNz
aW9uJ3MgcGFnZSBkdWUgdG8gUHJvY2Vzcy1Td2FwLU9uLU5hdmlnYXRpb24gb24gaU9TIDEyLjIg
YW5kIGhpZ2hlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTk3MDk3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81MDA0ODMxOD4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGxvYWRlci9FbXB0eUZyYW1l
TG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpjaGVja0xvYWRDb21wbGV0ZUZvclRoaXNGcmFtZSk6
CisgICAgICAgIElmIHdlIHN0aWxsIGhhdmUgYSBwcm92aXNpb25hbCBpdGVtIChuZXcgbG9hZCBo
YXMgYmVlbiBzdGFydGVkIG9yIHdlIGRpZCBub3QgY2xlYXIgaXQgYmVjYXVzZSB3ZSdyZSBhYm91
dCB0byByZXRyeSksCisgICAgICAgIHRoZW4gbGV0IHRoZSBjbGllbnQga25vdyB0aGUgbG9hZCB3
aWxsIGNvbnRpbnVlIGJ5IHBhc3NpbmcgYW4gZXh0cmEgZmxhZyB3aXRoIHRoZSBkaWRGYWlsUHJv
dmlzaW9uYWxMb2FkLgorCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50Lmg6Cisg
ICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaDoKKwogMjAxOS0wNC0xOSAgV2Vuc29u
IEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBBZGQgcXVp
cmtzIHRvIGRpc2FibGUgYXV0b2NvcnJlY3Rpb24gYW5kIGF1dG9jYXBpdGFsaXphdGlvbiBpbiBo
aWRkZW4gZWRpdGFibGUgYXJlYXMgb24gc29tZSB3ZWJzaXRlcwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA2YzAwMWIy
YzEzNDc2MmJhNzhlNzAxYjkxMGJmNDEzYWU4OGE5YWEyLi43ZDU2ODlkYTdmZWY3NWVjYWFhZjcy
MzJlMDAyOWY2YjIzODhmYTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDE5LTA0LTE5
ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1Byb2Nlc3MtU3dh
cC1Pbi1OYXZpZ2F0aW9uXSBXZWJLaXQgaGFuZ3Mgd2hlbiBnb2luZyBiYWNrIHRvIGEgZm9ybSBz
dWJtaXNzaW9uJ3MgcGFnZSBkdWUgdG8gUHJvY2Vzcy1Td2FwLU9uLU5hdmlnYXRpb24gb24gaU9T
IDEyLjIgYW5kIGhpZ2hlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTk3MDk3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81MDA0ODMxOD4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgaXNzdWUgaXMg
dGhhdCB3aGVuIGRvaW5nIGEgaGlzdG9yeSBuYXZpZ2F0aW9uIHdpdGggZm9ybSBkYXRhLCB3ZSB0
cnkgdG8gcmVzdWJtaXQgdGhlIGZvcm0uCisgICAgICAgIFdlIGluaXRpYWxseSB1c2UgdGhlIFJl
dHVybkNhY2hlRGF0YURvbnRMb2FkIGNhY2hlIHBvbGljeSB3aXRob3V0IHByb21wdGluZyB0aGUg
dXNlciB0byBnZXQKKyAgICAgICAgY2FjaGVkIGRhdGEuIElmIHRoaXMgZmFpbHMsIHdlIHNlbnQg
YSBEaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUgSVBDIHRvIHRoZSBVSVByb2Nlc3MgYnV0
CisgICAgICAgIHRoZSBXZWJDb250ZW50IHByb2Nlc3MgYWN0dWFsbHkgcmV0cmllcyB0aGUgbG9h
ZCB3aXRoIFJldHVybkNhY2hlRGF0YUVsc2VMb2FkIGNhY2hlIHBvbGljeS4KKyAgICAgICAgVGhp
cyBuZXcgbG9hZCB0cmlnZ2VycyBhIG5ldyBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9u
LgorCisgICAgICAgIFRoaXMgd291bGQgY2F1c2UgdHJvdWJsZSB3aXRoIHByb2Nlc3Mtc3dhcHBp
bmcgYmVjYXVzZSB3ZSBub3JtYWxseSBkZXN0cm95IHRoZQorICAgICAgICBQcm92aXNpb25hbFBh
Z2VQcm94eSBhcyBzb29uIGFzIHdlIHJlY2VpdmUgYSBEaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9y
RnJhbWUgSVBDIGZyb20gdGhlCisgICAgICAgIHByb3Zpc2lvbmFsIHByb2Nlc3MuIEFzIGEgcmVz
dWx0LCB0aGUgcHJvdmlzaW9uYWwgcHJvY2VzcyB3b3VsZCBub3QgYmUgYWJsZSB0byByZXRyeS4K
KworICAgICAgICBUbyBhZGRyZXNzIHRoZSBpc3N1ZSwgd2UgYWRkIHBhc3MgYSBmbGFnIHdpdGgg
dGhlIERpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSBJUEMgdG8KKyAgICAgICAgaWYgdGhl
IGxvYWQgd2lsbCBjb250aW51ZSBvciBub3QuIFdoZW4gdGhpcyBmbGFnIGlzIHNldCwgdGhlIFVJ
UHJvY2VzcyBkb2VzIG5vdCBkZXN0cm95CisgICAgICAgIHRoZSBwcm92aXNpb25hbCBwYWdlLgor
CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAgIE1pbm9yIElQ
QyBtZXNzYWdlIGhhbmRsZXIgYnVpbGQgZml4LgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1VSTFNjaGVtZVRhc2subW06CisgICAgICAgICgtW1dLVVJMU2NoZW1lVGFza0ltcGwg
X29ubHlJZkNhY2hlZF0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVUkxTY2hl
bWVUYXNrUHJpdmF0ZS5oOgorICAgICAgICBBZGQgbmV3IF9vbmx5SWZDYWNoZWQgU1BJIHRvIFdL
VVJMU2NoZW1lVGFza1ByaXZhdGUgdG8gYWxsb3cgZm9yIEFQSSB0ZXN0aW5nLgorCisgICAgICAg
ICogVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
UHJvdmlzaW9uYWxQYWdlUHJveHk6OmNhbmNlbCk6CisgICAgICAgIFBhc3MgV2lsbENvbnRpbnVl
TG9hZGluZyBmbGFnLgorCisgICAgICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5Ojp2
YWxpZGF0ZUlucHV0KToKKyAgICAgICAgQ29uc2lkZXIgSVBDIHdpdGggYSBuYXZpZ2F0aW9uSUQg
b2YgMCBhcyB2YWxpZC4gV2hlbiB0aGUgbmF2aWdhdGlvbiBpcyB0cmlnZ2VyZWQgYnkgdGhlCisg
ICAgICAgIFdlYkNvbnRlbnQgcHJvY2VzcywgaXQgc2VuZHMgdXMgYSBEZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uQXN5bmMgSVBDIHdpdGggYSBuYXZpZ2F0aW9uSUQKKyAgICAgICAgb2Yg
MCwgdW50aWwgdGhlIFVJUHJvY2VzcyBjYW4gZ2VuZXJhdGUgYSB2YWxpZCBpZGVudGlmaWVyLgor
CisgICAgICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9u
YWxMb2FkRm9yRnJhbWUpOgorCisgICAgICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5
OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmMpOgorICAgICAgICBXaGVuIHRo
ZSBXZWJQYWdlUHJveHkgaGFzIGdlbmVyYXRlZCBhIG5hdmlnYXRpb25JRCBmb3IgdGhlIG5ldyBX
ZWJDb250ZW50IHByb2Nlc3MtaW5pdGlhdGVkCisgICAgICAgIG5hdmlnYXRpb24sIHVwZGF0ZSBt
X25hdmlnYXRpb25JRCBzbyB0aGF0IGZvbGxvdy11cCBJUEMgaXMgY29uc2lkZXJlZCB2YWxpZC4K
KworICAgICAgICAqIFVJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6OmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9u
QXN5bmNTaGFyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGYWlsUHJv
dmlzaW9uYWxMb2FkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50Lmg6CisKIDIwMTktMDQtMTkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFw
cGxlLmNvbT4KIAogICAgICAgICBbUFNPTl0gVXNlIFdlYlByb2Nlc3NQcm94eTo6cmVnaXN0cmFi
bGVEb21haW4oKSB0byBtYWtlIHByb2Nlc3Mtc3dhcHBpbmcgZGVjaXNpb24KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NoYW5nZUxvZwppbmRleCA1YzY4OTEyMDc3MmQ1MDIwNDE5OWM1Mzg2ZWMwYTk5M2I2ZDM5
MTFmLi5mZmZhZWI3Y2VmOGM5YTU0MDE5ZmQwODY0NDIwMGRmNDcwNTE0NTM0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTktMDQtMTkgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbUHJvY2Vzcy1Td2FwLU9uLU5hdmln
YXRpb25dIFdlYktpdCBoYW5ncyB3aGVuIGdvaW5nIGJhY2sgdG8gYSBmb3JtIHN1Ym1pc3Npb24n
cyBwYWdlIGR1ZSB0byBQcm9jZXNzLVN3YXAtT24tTmF2aWdhdGlvbiBvbiBpT1MgMTIuMiBhbmQg
aGlnaGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTcwOTcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUwMDQ4MzE4PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5tbToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZh
aWxQcm92aXNpb25hbExvYWQpOgorCiAyMDE5LTA0LTE4ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3
ZWJraXQub3JnPgogCiAgICAgICAgIENyYXNoIGluIEZyYW1lTG9hZGVyOjpzdG9wQWxsTG9hZGVy
cyB2aWEgW1dlYlZpZXcgZGVhbGxvY10gaW5zaWRlIH5PYmpDRXZlbnRMaXN0ZW5lcgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vQ2hhbmdlTG9nCmluZGV4IDIyYmIyY2U5MzM0MTU3ZWRkYzdjODcyMDJkZjZhZTk2
NGFjZWIyZWEuLmE5NDM1NDFjMjVlMTQ0MTdkYTE3ODMzODRhZDUxNmIzM2NkYTVhMzUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxOS0wNC0xOSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFtQcm9jZXNzLVN3YXAtT24t
TmF2aWdhdGlvbl0gV2ViS2l0IGhhbmdzIHdoZW4gZ29pbmcgYmFjayB0byBhIGZvcm0gc3VibWlz
c2lvbidzIHBhZ2UgZHVlIHRvIFByb2Nlc3MtU3dhcC1Pbi1OYXZpZ2F0aW9uIG9uIGlPUyAxMi4y
IGFuZCBoaWdoZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5NzA5NworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTAwNDgzMTg+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6
ZGlzcGF0Y2hEaWRGYWlsUHJvdmlzaW9uYWxMb2FkKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorCiAyMDE5LTA0LTE4ICBKZXIgTm9ibGUgIDxqZXIu
bm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFJlZmFjdG9yaW5nOiBQdWxsIGFsbCBmdWxsc2Ny
ZWVuIGNvZGUgb3V0IG9mIERvY3VtZW50IGFuZCBpbnRvIGl0cyBvd24gaGVscGVyIGNsYXNzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5o
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCBh
OGQyYzg4OThjZTQ2ZjZiNTcxZGFhZGYxM2Q1NTEzNThiYTIyNGZhLi40ZjBiYjg2ZGRkNTA5OWUz
MTFkODlhNDliZTNhM2JlNDA3N2Y1ZTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9F
bXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTg0LDcgKzg0LDcgQEAgY2xhc3MgV0VCQ09SRV9F
WFBPUlQgRW1wdHlGcmFtZUxvYWRlckNsaWVudCA6IHB1YmxpYyBGcmFtZUxvYWRlckNsaWVudCB7
CiAgICAgdm9pZCBkaXNwYXRjaERpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkKCkgZmluYWwgeyB9CiAg
ICAgdm9pZCBkaXNwYXRjaERpZFJlY2VpdmVUaXRsZShjb25zdCBTdHJpbmdXaXRoRGlyZWN0aW9u
JikgZmluYWwgeyB9CiAgICAgdm9pZCBkaXNwYXRjaERpZENvbW1pdExvYWQoT3B0aW9uYWw8SGFz
SW5zZWN1cmVDb250ZW50PikgZmluYWwgeyB9Ci0gICAgdm9pZCBkaXNwYXRjaERpZEZhaWxQcm92
aXNpb25hbExvYWQoY29uc3QgUmVzb3VyY2VFcnJvciYpIGZpbmFsIHsgfQorICAgIHZvaWQgZGlz
cGF0Y2hEaWRGYWlsUHJvdmlzaW9uYWxMb2FkKGNvbnN0IFJlc291cmNlRXJyb3ImLCBXaWxsQ29u
dGludWVMb2FkaW5nKSBmaW5hbCB7IH0KICAgICB2b2lkIGRpc3BhdGNoRGlkRmFpbExvYWQoY29u
c3QgUmVzb3VyY2VFcnJvciYpIGZpbmFsIHsgfQogICAgIHZvaWQgZGlzcGF0Y2hEaWRGaW5pc2hE
b2N1bWVudExvYWQoKSBmaW5hbCB7IH0KICAgICB2b2lkIGRpc3BhdGNoRGlkRmluaXNoTG9hZCgp
IGZpbmFsIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggZTAxODI1
ZTU3YjFmZTc1ODhiYTUyMTI3ZjVmZDI4NjQ3NWFmYzkyOS4uNTc3M2M5OGEwMjFmYmMxNTIzYmRk
NjA5ODdhOTRmMTZhMTZmYWY1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3Bw
CkBAIC0yNDY1LDcgKzI0NjUsOCBAQCB2b2lkIEZyYW1lTG9hZGVyOjpjaGVja0xvYWRDb21wbGV0
ZUZvclRoaXNGcmFtZSgpCiAgICAgICAgICAgICBpZiAoIXBkbC0+aXNMb2FkaW5nSW5BUElTZW5z
ZSgpIHx8IHBkbC0+aXNTdG9wcGluZygpKSB7CiAgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0df
SUZfQUxMT1dFRCgiY2hlY2tMb2FkQ29tcGxldGVGb3JUaGlzRnJhbWU6IEZhaWxlZCBwcm92aXNp
b25hbCBsb2FkIChmcmFtZSA9ICVwLCBtYWluID0gJWQsIGlzVGltZW91dCA9ICVkLCBpc0NhbmNl
bGxhdGlvbiA9ICVkLCBlcnJvckNvZGUgPSAlZCkiLCAmbV9mcmFtZSwgbV9mcmFtZS5pc01haW5G
cmFtZSgpLCBlcnJvci5pc1RpbWVvdXQoKSwgZXJyb3IuaXNDYW5jZWxsYXRpb24oKSwgZXJyb3Iu
ZXJyb3JDb2RlKCkpOwogICAgICAgICAgICAgICAgIG1fcHJvdmlzaW9uYWxMb2FkRXJyb3JCZWlu
Z0hhbmRsZWRVUkwgPSBtX3Byb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXItPnVybCgpOwotICAgICAg
ICAgICAgICAgIG1fY2xpZW50LmRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZChlcnJvcik7
CisKKyAgICAgICAgICAgICAgICBtX2NsaWVudC5kaXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExv
YWQoZXJyb3IsIGhpc3RvcnkoKS5wcm92aXNpb25hbEl0ZW0oKSA/IFdpbGxDb250aW51ZUxvYWRp
bmc6OlllcyA6IFdpbGxDb250aW51ZUxvYWRpbmc6Ok5vKTsKICNpZiBFTkFCTEUoQ09OVEVOVF9G
SUxURVJJTkcpCiAgICAgICAgICAgICAgICAgaWYgKGF1dG8gY29udGVudEZpbHRlciA9IHBkbC0+
Y29udGVudEZpbHRlcigpKQogICAgICAgICAgICAgICAgICAgICBjb250ZW50RmlsdGVyLT5oYW5k
bGVQcm92aXNpb25hbExvYWRGYWlsdXJlKGVycm9yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggZmExZGY2MGEzYTlhMTIzZWFlYjcxMjM5MTE2N2Q3Njhj
YWMxZjQ4Yi4uZWMzOTEyN2ExYWQ2YzI1ZTBkMzQ2YmU3YTQ2OGNiNmVhOThmM2ZjOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTE3Nyw3ICsxNzcsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkU3RhcnRQcm92aXNpb25hbExv
YWQoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkUmVjZWl2ZVRpdGxlKGNvbnN0
IFN0cmluZ1dpdGhEaXJlY3Rpb24mKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlk
Q29tbWl0TG9hZChPcHRpb25hbDxIYXNJbnNlY3VyZUNvbnRlbnQ+KSA9IDA7Ci0gICAgdmlydHVh
bCB2b2lkIGRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZChjb25zdCBSZXNvdXJjZUVycm9y
JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQo
Y29uc3QgUmVzb3VyY2VFcnJvciYsIFdpbGxDb250aW51ZUxvYWRpbmcpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgZGlzcGF0Y2hEaWRGYWlsTG9hZChjb25zdCBSZXNvdXJjZUVycm9yJikgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZEZpbmlzaERvY3VtZW50TG9hZCgpID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRGaW5pc2hMb2FkKCkgPSAwOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlclR5cGVzLmgKaW5kZXggYWQ3MmFmNjE2NGE4NWM4MTdiODQ0NDNl
NmY0ZGY2Zjc4YTgwNDJjZS4uNGVlNTlkODY3NGRlY2M2ZTI5OTA0MDA1OTZhYjI2N2RmYzAzZmNj
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJUeXBlcy5oCkBAIC02Nyw2ICs2
Nyw4IEBAIGVudW0gY2xhc3MgRnJhbWVMb2FkVHlwZSA6IHVpbnQ4X3QgewogICAgIFJlbG9hZEV4
cGlyZWRPbmx5CiB9OwogCitlbnVtIGNsYXNzIFdpbGxDb250aW51ZUxvYWRpbmcgOiBib29sIHsg
Tm8sIFllcyB9OworCiBjbGFzcyBQb2xpY3lDaGVja0lkZW50aWZpZXIgewogcHVibGljOgogICAg
IFBvbGljeUNoZWNrSWRlbnRpZmllcigpID0gZGVmYXVsdDsKQEAgLTIxNyw0ICsyMTksMTIgQEAg
dGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpGcmFtZUxvYWRUeXBlPiB7CiAg
ICAgPjsKIH07CiAKK3RlbXBsYXRlIDw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OldpbGxD
b250aW51ZUxvYWRpbmc+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAg
ICBXZWJDb3JlOjpXaWxsQ29udGludWVMb2FkaW5nLAorICAgICAgICBXZWJDb3JlOjpXaWxsQ29u
dGludWVMb2FkaW5nOjpObywKKyAgICAgICAgV2ViQ29yZTo6V2lsbENvbnRpbnVlTG9hZGluZzo6
WWVzCisgICAgPjsKK307CisKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0
cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggYTg4NWJiMDYyY2VmOGI1MWFkOTc1NjMwYjUyODU0
ZjUwNGQxNWE0YS4uOGU1MmFjMDNjMjgwNTIxOGI5YWFjYWVjOGIzNjYwOTM3OWUxNjVkZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC00NjIsNiArNDYyLDcg
QEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAgICdXZWJDb3JlOjpUZXh0Q2hl
Y2tpbmdUeXBlJzogWyc8V2ViQ29yZS9UZXh0Q2hlY2tpbmcuaD4nXSwKICAgICAgICAgJ1dlYkNv
cmU6OlRleHRJbmRpY2F0b3JEYXRhJzogWyc8V2ViQ29yZS9UZXh0SW5kaWNhdG9yLmg+J10sCiAg
ICAgICAgICdXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMnOiBbJzxXZWJDb3JlL1ZpZXdwb3J0
QXJndW1lbnRzLmg+J10sCisgICAgICAgICdXZWJDb3JlOjpXaWxsQ29udGludWVMb2FkaW5nJzog
Wyc8V2ViQ29yZS9GcmFtZUxvYWRlclR5cGVzLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpTZWxl
Y3Rpb25SZWN0JzogWyciRWRpdG9yU3RhdGUuaCInXSwKICAgICAgICAgJ1dlYktpdDo6QWN0aXZp
dHlTdGF0ZUNoYW5nZUlEJzogWyciRHJhd2luZ0FyZWFJbmZvLmgiJ10sCiAgICAgICAgICdXZWJL
aXQ6OkJhY2tGb3J3YXJkTGlzdEl0ZW1TdGF0ZSc6IFsnIlNlc3Npb25TdGF0ZS5oIiddLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVVJMU2NoZW1lVGFz
ay5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VSTFNjaGVtZVRhc2su
bW0KaW5kZXggOGE1NDJlMDYwODNkODI2NDk1NDYzZWY3ZmVlYWNhOWU1Y2FhMDM2NS4uZjEzZTJh
NzQ3MTFiMDY2MDY3Y2YxNTk2NzgzMzY0YjgxOGE5MmRlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVVJMU2NoZW1lVGFzay5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVUkxTY2hlbWVUYXNrLm1tCkBAIC03MCw2ICs3
MCwxMSBAQCAtIChOU1VSTFJlcXVlc3QgKilyZXF1ZXN0CiAgICAgcmV0dXJuIF91cmxTY2hlbWVU
YXNrLT50YXNrKCkucmVxdWVzdCgpLm5zVVJMUmVxdWVzdChXZWJDb3JlOjpIVFRQQm9keVVwZGF0
ZVBvbGljeTo6VXBkYXRlSFRUUEJvZHkpOwogfQogCistIChCT09MKV9vbmx5SWZDYWNoZWQKK3sK
KyAgICByZXR1cm4gX3VybFNjaGVtZVRhc2stPnRhc2soKS5yZXF1ZXN0KCkuY2FjaGVQb2xpY3ko
KSA9PSBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3RDYWNoZVBvbGljeTo6UmV0dXJuQ2FjaGVEYXRh
RG9udExvYWQ7Cit9CisKIC0gKHZvaWQpZGlkUmVjZWl2ZVJlc3BvbnNlOihOU1VSTFJlc3BvbnNl
ICopcmVzcG9uc2UKIHsKICAgICBhdXRvIHJlc3VsdCA9IF91cmxTY2hlbWVUYXNrLT50YXNrKCku
ZGlkUmVjZWl2ZVJlc3BvbnNlKHJlc3BvbnNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VSTFNjaGVtZVRhc2tQcml2YXRlLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVUkxTY2hlbWVUYXNrUHJpdmF0ZS5oCmluZGV4IDYy
NDE5NzVlM2M3YmQ4ODE5NzczYjlhNjQ0NWVjZjdiMDVjNmYzMWUuLjc3MTg4ZDg0MDkwM2FiOTdh
MmI3ZGViMzJhMjk3NjlmNmJhNjdmNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1VSTFNjaGVtZVRhc2tQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVVJMU2NoZW1lVGFza1ByaXZhdGUuaApAQCAtMzAsNCAr
MzAsNiBAQCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKQogCiAtICh2
b2lkKV9kaWRQZXJmb3JtUmVkaXJlY3Rpb246KE5TVVJMUmVzcG9uc2UgKilyZXNwb25zZSBuZXdS
ZXF1ZXN0OihOU1VSTFJlcXVlc3QgKilyZXF1ZXN0OwogCitAcHJvcGVydHkgKG5vbmF0b21pYywg
cmVhZG9ubHkpIEJPT0wgX29ubHlJZkNhY2hlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAKaW5kZXggOThlZmNjOGUxOTQ2NTNkNzAw
ZGNlMjkzZmJkYWRlMjVkNmRmYWIzZi4uOGQ1NjM0NWUxMDBiNTVlYTA2NzZmMmE4OGZmNTYxYjZh
NGJjNzNmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQ
YWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFn
ZVByb3h5LmNwcApAQCAtMTM0LDcgKzEzNCw3IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6
OmNhbmNlbCgpCiAgICAgQVNTRVJUKG1fbWFpbkZyYW1lKTsKICAgICBhdXRvIGVycm9yID0gV2Vi
S2l0OjpjYW5jZWxsZWRFcnJvcihtX3JlcXVlc3QpOwogICAgIGVycm9yLnNldFR5cGUoV2ViQ29y
ZTo6UmVzb3VyY2VFcnJvcjo6VHlwZTo6Q2FuY2VsbGF0aW9uKTsKLSAgICBkaWRGYWlsUHJvdmlz
aW9uYWxMb2FkRm9yRnJhbWUobV9tYWluRnJhbWUtPmZyYW1lSUQoKSwgeyB9LCBtX25hdmlnYXRp
b25JRCwgbV9wcm92aXNpb25hbExvYWRVUkwsIGVycm9yLCBVc2VyRGF0YSB7IH0pOyAvLyBXaWxs
IGRlbGV0ZSB8dGhpc3wuCisgICAgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKG1fbWFp
bkZyYW1lLT5mcmFtZUlEKCksIHsgfSwgbV9uYXZpZ2F0aW9uSUQsIG1fcHJvdmlzaW9uYWxMb2Fk
VVJMLCBlcnJvciwgV2ViQ29yZTo6V2lsbENvbnRpbnVlTG9hZGluZzo6Tm8sIFVzZXJEYXRhIHsg
fSk7IC8vIFdpbGwgZGVsZXRlIHx0aGlzfC4KIH0KIAogdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94
eTo6aW5pdGlhbGl6ZVdlYlBhZ2UoKQpAQCAtMTg5LDcgKzE4OSw3IEBAIGlubGluZSBib29sIFBy
b3Zpc2lvbmFsUGFnZVByb3h5Ojp2YWxpZGF0ZUlucHV0KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0
IE9wdGlvbmFsCiAgICAgaWYgKCFtX21haW5GcmFtZSB8fCBtX21haW5GcmFtZS0+ZnJhbWVJRCgp
ICE9IGZyYW1lSUQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHJldHVybiAhbmF2aWdh
dGlvbklEIHx8ICpuYXZpZ2F0aW9uSUQgPT0gbV9uYXZpZ2F0aW9uSUQ7CisgICAgcmV0dXJuICFu
YXZpZ2F0aW9uSUQgfHwgISpuYXZpZ2F0aW9uSUQgfHwgKm5hdmlnYXRpb25JRCA9PSBtX25hdmln
YXRpb25JRDsKIH0KIAogdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ3JlYXRlTWFpbkZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQpCkBAIC0yNDcsNyArMjQ3LDcgQEAgdm9pZCBQcm92aXNpb25h
bFBhZ2VQcm94eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFt
ZUlELCB1aW4KICAgICBtX3BhZ2UuZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJl
ZChtX3Byb2Nlc3MuY29weVJlZigpLCBmcmFtZUlELCBuYXZpZ2F0aW9uSUQsIFdURk1vdmUodXJs
KSwgV1RGTW92ZSh1bnJlYWNoYWJsZVVSTCksIHVzZXJEYXRhKTsKIH0KIAotdm9pZCBQcm92aXNp
b25hbFBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZy
YW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9y
aWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJM
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBlcnJvciwgY29uc3QgVXNlckRhdGEmIHVz
ZXJEYXRhKQordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBT
dHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBlcnJv
ciwgV2ViQ29yZTo6V2lsbENvbnRpbnVlTG9hZGluZyB3aWxsQ29udGludWVMb2FkaW5nLCBjb25z
dCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgaWYgKCF2YWxpZGF0ZUlucHV0KGZyYW1lSUQs
IG5hdmlnYXRpb25JRCkpCiAgICAgICAgIHJldHVybjsKQEAgLTI2MCw3ICsyNjAsNyBAQCB2b2lk
IFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWlu
dDY0X3QgZnJhbWVJRCwgY29ucwogICAgIGlmIChhdXRvKiBwYWdlTWFpbkZyYW1lID0gbV9wYWdl
Lm1haW5GcmFtZSgpKQogICAgICAgICBwYWdlTWFpbkZyYW1lLT5kaWRGYWlsUHJvdmlzaW9uYWxM
b2FkKCk7CiAKLSAgICBtX3BhZ2UuZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVk
KG1fcHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIGZyYW1lU2VjdXJpdHlPcmlnaW4sIG5hdmln
YXRpb25JRCwgcHJvdmlzaW9uYWxVUkwsIGVycm9yLCB1c2VyRGF0YSk7IC8vIFdpbGwgZGVsZXRl
IHx0aGlzfC4KKyAgICBtX3BhZ2UuZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVk
KG1fcHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIGZyYW1lU2VjdXJpdHlPcmlnaW4sIG5hdmln
YXRpb25JRCwgcHJvdmlzaW9uYWxVUkwsIGVycm9yLCB3aWxsQ29udGludWVMb2FkaW5nLCB1c2Vy
RGF0YSk7IC8vIE1heSBkZWxldGUgfHRoaXN8LgogfQogCiB2b2lkIFByb3Zpc2lvbmFsUGFnZVBy
b3h5OjpkaWRDb21taXRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2
aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGZyYW1lSGFzQ3VzdG9tQ29u
dGVudFByb3ZpZGVyLCB1aW50MzJfdCBmcmFtZUxvYWRUeXBlLCBjb25zdCBXZWJDb3JlOjpDZXJ0
aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbywgYm9vbCBjb250YWluc1BsdWdpbkRvY3VtZW50
LCBPcHRpb25hbDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQ+IGZvcmNlZEhhc0luc2VjdXJl
Q29udGVudCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQpAQCAtMzAxLDYgKzMwMSw5IEBAIHZv
aWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25B
c3luYyh1aW50NjRfdCBmcmFtZUlECiAKICAgICBtX3BhZ2UuZGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbkFzeW5jU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIFdURk1v
dmUoZnJhbWVTZWN1cml0eU9yaWdpbiksIGlkZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgV1RGTW92
ZShuYXZpZ2F0aW9uQWN0aW9uRGF0YSksCiAgICAgICAgIFdURk1vdmUoZnJhbWVJbmZvRGF0YSks
IG9yaWdpbmF0aW5nUGFnZUlELCBvcmlnaW5hbFJlcXVlc3QsIFdURk1vdmUocmVxdWVzdCksIFdU
Rk1vdmUocmVxdWVzdEJvZHkpLCBXVEZNb3ZlKHJlZGlyZWN0UmVzcG9uc2UpLCB1c2VyRGF0YSwg
bGlzdGVuZXJJRCk7CisKKyAgICAvLyBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5
bmNTaGFyZWQoKSBnZW5lcmF0ZXMgYSBuYXZpZ2F0aW9uSUQgaWYgdGhlIG5hdmlnYXRpb24gaXMg
aW5pdGlhdGVkIGJ5IHRoZSBXZWJQcm9jZXNzIGFuZCB0aGUgbmF2aWdhdGlvbklEIHNlbnQgYnkg
dGhlIFdlYlByb2Nlc3Mgd2FzIDAuCisgICAgbV9uYXZpZ2F0aW9uSUQgPSBuYXZpZ2F0aW9uSUQ7
CiB9CiAKIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNl
KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJh
bWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZp
ZXIsCkBAIC0zNzgsMTEgKzM4MSwxNCBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRS
ZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RAogCiAgICAg
aWYgKGRlY29kZXIubWVzc2FnZU5hbWUoKSA9PSBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRT
dGFydFByb2dyZXNzOjpuYW1lKCkKICAgICAgICAgfHwgZGVjb2Rlci5tZXNzYWdlTmFtZSgpID09
IE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZENoYW5nZVByb2dyZXNzOjpuYW1lKCkKKyAgICAg
ICAgfHwgZGVjb2Rlci5tZXNzYWdlTmFtZSgpID09IE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRp
ZERlc3Ryb3lOYXZpZ2F0aW9uOjpuYW1lKCkKKyAgICAgICAgfHwgZGVjb2Rlci5tZXNzYWdlTmFt
ZSgpID09IE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZEZpbmlzaFByb2dyZXNzOjpuYW1lKCkK
ICAgICAgICAgfHwgZGVjb2Rlci5tZXNzYWdlTmFtZSgpID09IE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OkJhY2tGb3J3YXJkQWRkSXRlbTo6bmFtZSgpCiAgICAgICAgIHx8IGRlY29kZXIubWVzc2Fn
ZU5hbWUoKSA9PSBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpMb2dEaWFnbm9zdGljTWVzc2FnZTo6
bmFtZSgpCiAgICAgICAgIHx8IGRlY29kZXIubWVzc2FnZU5hbWUoKSA9PSBNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpMb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhFbmhhbmNlZFByaXZhY3k6Om5hbWUo
KQogICAgICAgICB8fCBkZWNvZGVyLm1lc3NhZ2VOYW1lKCkgPT0gTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6TG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWVEaWN0aW9uYXJ5OjpuYW1lKCkKICAg
ICAgICAgfHwgZGVjb2Rlci5tZXNzYWdlTmFtZSgpID09IE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OlNldE5ldHdvcmtSZXF1ZXN0c0luUHJvZ3Jlc3M6Om5hbWUoKQorICAgICAgICB8fCBkZWNvZGVy
Lm1lc3NhZ2VOYW1lKCkgPT0gTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6V2lsbEdvVG9CYWNrRm9y
d2FyZExpc3RJdGVtOjpuYW1lKCkKICNpZiBVU0UoUVVJQ0tfTE9PSykKICAgICAgICAgfHwgZGVj
b2Rlci5tZXNzYWdlTmFtZSgpID09IE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZFN0YXJ0TG9h
ZEZvclF1aWNrTG9va0RvY3VtZW50SW5NYWluRnJhbWU6Om5hbWUoKQogICAgICAgICB8fCBkZWNv
ZGVyLm1lc3NhZ2VOYW1lKCkgPT0gTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkRmluaXNoTG9h
ZEZvclF1aWNrTG9va0RvY3VtZW50SW5NYWluRnJhbWU6Om5hbWUoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmgKaW5kZXggNGVmMmI3NmQ1ODdlOTNj
ZDA4ZTdjNWE0NWM0ODgwZmZlODUyM2UzMy4uODU5ZjU0Mjg3OTk3Yjc0MzNjNmZmMTJiN2E3YzE0
NjgzODUxOWExNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9u
YWxQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBh
Z2VQcm94eS5oCkBAIC0xMDQsNyArMTA0LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZENyZWF0
ZU1haW5GcmFtZSh1aW50NjRfdCBmcmFtZUlEKTsKICAgICB2b2lkIGRpZFN0YXJ0UHJvdmlzaW9u
YWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBV
UkwmJiwgVVJMJiYgdW5yZWFjaGFibGVVUkwsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCBk
aWRDb21taXRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlv
bklELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGZyYW1lSGFzQ3VzdG9tQ29udGVudFBy
b3ZpZGVyLCB1aW50MzJfdCBmcmFtZUxvYWRUeXBlLCBjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0
ZUluZm8mLCBib29sIGNvbnRhaW5zUGx1Z2luRG9jdW1lbnQsIE9wdGlvbmFsPFdlYkNvcmU6Okhh
c0luc2VjdXJlQ29udGVudD4gZm9yY2VkSGFzSW5zZWN1cmVDb250ZW50LCBjb25zdCBVc2VyRGF0
YSYpOwotICAgIHZvaWQgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZy
YW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9y
aWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJM
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2
b2lkIGRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25z
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBwcm92aXNpb25hbFVSTCwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VFcnJvciYsIFdlYkNvcmU6OldpbGxDb250aW51ZUxvYWRpbmcsIGNvbnN0
IFVzZXJEYXRhJik7CiAgICAgdm9pZCBzdGFydFVSTFNjaGVtZVRhc2soVVJMU2NoZW1lVGFza1Bh
cmFtZXRlcnMmJik7CiAgICAgdm9pZCBiYWNrRm9yd2FyZEdvVG9JdGVtKGNvbnN0IFdlYkNvcmU6
OkJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXImLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZSYmKT4mJik7CiAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uU3luYyh1aW50NjRfdCBmcmFtZUlELCBib29sIGlzTWFpbkZyYW1lLCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVy
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBlMmM5NzhlNzU0YWNkM2U0NmQ2
NzNhYmU2NWNkYWRhNDM4NzA1ZWU2Li40MTdkMTBjMTM1NTQxYjgzMWY1ODlmMDhjZTlkZWQzM2Ix
ZGFjNzRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTQw
MTUsMTcgKzQwMTUsMTcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZENoYW5nZVByb3Zpc2lvbmFs
VVJMRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJgogICAgIGZyYW1lLT5kaWRS
ZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWQodXJsKTsKIH0KIAotdm9pZCBX
ZWJQYWdlUHJveHk6OmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFt
ZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBwcm92aXNpb25hbFVSTCwgY29uc3QgUmVz
b3VyY2VFcnJvciYgZXJyb3IsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFn
ZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
Y29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNvbnN0IFJlc291cmNl
RXJyb3ImIGVycm9yLCBXaWxsQ29udGludWVMb2FkaW5nIHdpbGxDb250aW51ZUxvYWRpbmcsIGNv
bnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBpZiAobV9wcm92aXNpb25hbFBhZ2UgJiYg
bV9wcm92aXNpb25hbFBhZ2UtPm5hdmlnYXRpb25JRCgpID09IG5hdmlnYXRpb25JRCkgewogICAg
ICAgICAvLyBUaGUgbG9hZCBkaWQgbm90IGZhaWwsIGl0IGlzIG1lcmVseSBoYXBwZW5pbmcgaW4g
YSBuZXcgcHJvdmlzaW9uYWwgcHJvY2Vzcy4KICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAg
IGRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigp
LCBmcmFtZUlELCBmcmFtZVNlY3VyaXR5T3JpZ2luLCBuYXZpZ2F0aW9uSUQsIHByb3Zpc2lvbmFs
VVJMLCBlcnJvciwgdXNlckRhdGEpOworICAgIGRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFt
ZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBmcmFtZUlELCBmcmFtZVNlY3VyaXR5T3JpZ2lu
LCBuYXZpZ2F0aW9uSUQsIHByb3Zpc2lvbmFsVVJMLCBlcnJvciwgd2lsbENvbnRpbnVlTG9hZGlu
ZywgdXNlckRhdGEpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFs
TG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgdWludDY0
X3QgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2lu
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNv
bnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lk
IFdlYlBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxX
ZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgU2VjdXJp
dHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQs
IGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9y
LCBXaWxsQ29udGludWVMb2FkaW5nIHdpbGxDb250aW51ZUxvYWRpbmcsIGNvbnN0IFVzZXJEYXRh
JiB1c2VyRGF0YSkKIHsKICAgICBMT0coTG9hZGluZywgIihMb2FkaW5nKSBXZWJQYWdlUHJveHkg
JSIgUFJJdTY0ICIgaW4gd2ViIHByb2Nlc3MgcGlkICVpIGRpZEZhaWxQcm92aXNpb25hbExvYWRG
b3JGcmFtZSB0byBwcm92aXNpb25hbFVSTCAlcyIsIG1fcGFnZUlELCBwcm9jZXNzLT5wcm9jZXNz
SWRlbnRpZmllcigpLCBwcm92aXNpb25hbFVSTC51dGY4KCkuZGF0YSgpKTsKICAgICBSRUxFQVNF
X0xPR19JRl9BTExPV0VEKFByb2Nlc3MsICJkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWU6
IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAi
LCBkb21haW4gPSAlcywgY29kZSA9ICVkIiwgcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwg
bV9wYWdlSUQsIGZyYW1lSUQsIGVycm9yLmRvbWFpbigpLnV0ZjgoKS5kYXRhKCksIGVycm9yLmVy
cm9yQ29kZSgpKTsKQEAgLTQwNzIsNyArNDA3Miw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRG
YWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBw
CiAgICAgbV9mYWlsaW5nUHJvdmlzaW9uYWxMb2FkVVJMID0geyB9OwogCiAgICAgLy8gSWYgdGhl
IHByb3Zpc2lvbmFsIHBhZ2UncyBsb2FkIGZhaWxzIHRoZW4gd2UgZGVzdHJveSB0aGUgcHJvdmlz
aW9uYWwgcGFnZS4KLSAgICBpZiAobV9wcm92aXNpb25hbFBhZ2UgJiYgbV9wcm92aXNpb25hbFBh
Z2UtPm1haW5GcmFtZSgpID09IGZyYW1lKQorICAgIGlmIChtX3Byb3Zpc2lvbmFsUGFnZSAmJiBt
X3Byb3Zpc2lvbmFsUGFnZS0+bWFpbkZyYW1lKCkgPT0gZnJhbWUgJiYgd2lsbENvbnRpbnVlTG9h
ZGluZyA9PSBXaWxsQ29udGludWVMb2FkaW5nOjpObykKICAgICAgICAgbV9wcm92aXNpb25hbFBh
Z2UgPSBudWxscHRyOwogfQogCkBAIC00NDk1LDcgKzQ0OTUsNyBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKHVpbnQ2NF90IGZyYW1lSUQs
IFdlYkNvcgogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvbkFzeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgdWludDY0
X3QgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9y
aWdpbiwKLSAgICBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmIG5hdmlnYXRpb25BY3Rp
b25EYXRhLCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvRGF0YSwgdWludDY0X3Qgb3JpZ2luYXRp
bmdQYWdlSUQsCisgICAgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIs
IHVpbnQ2NF90JiBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYgbmF2aWdhdGlv
bkFjdGlvbkRhdGEsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm9EYXRhLCB1aW50NjRfdCBvcmln
aW5hdGluZ1BhZ2VJRCwKICAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdp
bmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgSVBDOjpGb3Jt
RGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYg
cmVkaXJlY3RSZXNwb25zZSwKICAgICBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEsIHVpbnQ2NF90
IGxpc3RlbmVySUQpCiB7CkBAIC00NTEwLDcgKzQ1MTAsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNz
UHJveAogICAgICAgICBvcmlnaW5hbFJlcXVlc3QsIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUo
cmVxdWVzdEJvZHkpLCBXVEZNb3ZlKHJlZGlyZWN0UmVzcG9uc2UpLCB1c2VyRGF0YSwgV1RGTW92
ZShzZW5kZXIpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb24oUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBXZWJGcmFtZVByb3h5
JiBmcmFtZSwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdp
biwgdWludDY0X3QgbmF2aWdhdGlvbklELAordm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb24oUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBXZWJG
cmFtZVByb3h5JiBmcmFtZSwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1
cml0eU9yaWdpbiwgdWludDY0X3QmIG5hdmlnYXRpb25JRCwKICAgICBOYXZpZ2F0aW9uQWN0aW9u
RGF0YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBGcmFtZUluZm9EYXRhJiYgb3JpZ2luYXRpbmdG
cmFtZUluZm9EYXRhLCB1aW50NjRfdCBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYmIHJlcXVlc3QsCiAgICAgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRh
dGEmIHVzZXJEYXRhLCBSZWY8UG9saWN5RGVjaXNpb25TZW5kZXI+JiYgc2VuZGVyKQogewpAQCAt
NDU1Nyw3ICs0NTU3LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb24oUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXMKICAgICAgICAgICAgIG5h
dmlnYXRpb24gPSBtX25hdmlnYXRpb25TdGF0ZS0+Y3JlYXRlTG9hZFJlcXVlc3ROYXZpZ2F0aW9u
KFJlc291cmNlUmVxdWVzdChyZXF1ZXN0KSwgbV9iYWNrRm9yd2FyZExpc3QtPmN1cnJlbnRJdGVt
KCkpOwogICAgIH0KIAotICAgIHVpbnQ2NF90IG5ld05hdmlnYXRpb25JRCA9IG5hdmlnYXRpb24t
Pm5hdmlnYXRpb25JRCgpOworICAgIG5hdmlnYXRpb25JRCA9IG5hdmlnYXRpb24tPm5hdmlnYXRp
b25JRCgpOwogICAgIG5hdmlnYXRpb24tPnNldEN1cnJlbnRSZXF1ZXN0KFJlc291cmNlUmVxdWVz
dChyZXF1ZXN0KSwgcHJvY2Vzcy0+Y29yZVByb2Nlc3NJZGVudGlmaWVyKCkpOwogICAgIG5hdmln
YXRpb24tPnNldExhc3ROYXZpZ2F0aW9uQWN0aW9uKG5hdmlnYXRpb25BY3Rpb25EYXRhKTsKICAg
ICBuYXZpZ2F0aW9uLT5zZXRPcmlnaW5hdGluZ0ZyYW1lSW5mbyhvcmlnaW5hdGluZ0ZyYW1lSW5m
b0RhdGEpOwpAQCAtNDU2Niw5ICs0NTY2LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25BY3Rpb24oUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXMKIAog
I2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKICAgICBpZiAoZnJhbWUuZGlkSGFuZGxlQ29u
dGVudEZpbHRlclVuYmxvY2tOYXZpZ2F0aW9uKHJlcXVlc3QpKQotICAgICAgICByZXR1cm4gcmVj
ZWl2ZWRQb2xpY3lEZWNpc2lvbihQb2xpY3lBY3Rpb246Oklnbm9yZSwgbV9uYXZpZ2F0aW9uU3Rh
dGUtPm5hdmlnYXRpb24obmV3TmF2aWdhdGlvbklEKSwgV1RGOjpudWxsb3B0LCBXVEZNb3ZlKHNl
bmRlcikpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0obmV3TmF2aWdhdGlvbklEKTsKKyAgICAg
ICAgcmV0dXJuIHJlY2VpdmVkUG9saWN5RGVjaXNpb24oUG9saWN5QWN0aW9uOjpJZ25vcmUsIG1f
bmF2aWdhdGlvblN0YXRlLT5uYXZpZ2F0aW9uKG5hdmlnYXRpb25JRCksIFdURjo6bnVsbG9wdCwg
V1RGTW92ZShzZW5kZXIpKTsKICNlbmRpZgogCiAgICAgU2hvdWxkRXhwZWN0U2FmZUJyb3dzaW5n
UmVzdWx0IHNob3VsZEV4cGVjdFNhZmVCcm93c2luZ1Jlc3VsdCA9IFNob3VsZEV4cGVjdFNhZmVC
cm93c2luZ1Jlc3VsdDo6WWVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApp
bmRleCAzNTdkYzFiNWIyOTA1NmViMDFkN2UxYjE2YTY5OTViZTJjOTBhYmJlLi5hMGYxZDAwMzg3
MjZkMWZiNjQwN2JmODBjNTBmODBhNjNiMGMwZmIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaApAQCAtMTQ4MywxNCArMTQ4MywxNCBAQCBwdWJsaWM6CiAKICAgICAvLyBM
b2dpYyBzaGFyZWQgYmV0d2VlbiB0aGUgV2ViUGFnZVByb3h5IGFuZCB0aGUgUHJvdmlzaW9uYWxQ
YWdlUHJveHkuCiAgICAgdm9pZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVk
KFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmln
YXRpb25JRCwgVVJMJiYsIFVSTCYmIHVucmVhY2hhYmxlVVJMLCBjb25zdCBVc2VyRGF0YSYpOwot
ICAgIHZvaWQgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9j
ZXNzUHJveHk+JiYsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25z
dCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwg
Y29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFt
ZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90
IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBwcm92aXNpb25hbFVSTCwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VFcnJvciYsIFdlYkNvcmU6OldpbGxDb250aW51ZUxvYWRpbmcsIGNvbnN0IFVz
ZXJEYXRhJik7CiAgICAgdm9pZCBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25h
bExvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCB1aW50NjRfdCBmcmFt
ZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBj
b25zdCBVc2VyRGF0YSYpOwogICAgIHZvaWQgZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0U2hhcmVk
KFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBj
b25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCB1aW50NjRfdCBmcmFtZUlEKTsKICAg
ICB2b2lkIGRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdFNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5
PiYmLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5h
dGlvblVSTFN0cmluZywgdWludDY0X3QgZnJhbWVJRCk7CiAgICAgdm9pZCBkaWROYXZpZ2F0ZVdp
dGhOYXZpZ2F0aW9uRGF0YVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBjb25zdCBXZWJO
YXZpZ2F0aW9uRGF0YVN0b3JlJiwgdWludDY0X3QgZnJhbWVJRCk7CiAgICAgdm9pZCBkaWRDaGFu
Z2VQcm92aXNpb25hbFVSTEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIHVp
bnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYpOwogICAgIHZvaWQg
ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNz
UHJveHk+JiYsIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYm
IGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwKLSAg
ICAgICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLCBGcmFt
ZUluZm9EYXRhJiYsIHVpbnQ2NF90IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiYsCisgICAgICAgIHVpbnQ2NF90JiBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRh
JiYsIEZyYW1lSW5mb0RhdGEmJiwgdWludDY0X3Qgb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmJiwKICAgICAgICAgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5
LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNl
ckRhdGEmLCB1aW50NjRfdCBsaXN0ZW5lcklEKTsKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvclJl
c3BvbnNlU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIHVpbnQ2NF90IGZyYW1lSUQsIGNv
bnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2Vi
Q29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLAogICAgICAgICB1aW50NjRfdCBuYXZpZ2F0aW9u
SUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmLCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9h
ZEF0dHJpYnV0ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKQEAgLTE1
ODUsNyArMTU4NSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCB3aWxsUGVyZm9ybUNsaWVudFJlZGly
ZWN0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB1cmwsIGRvdWJsZSBk
ZWxheSwgV2ViQ29yZTo6TG9ja0JhY2tGb3J3YXJkTGlzdCk7CiAgICAgdm9pZCBkaWRDYW5jZWxD
bGllbnRSZWRpcmVjdEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpOwogICAgIHZvaWQgZGlkQ2hh
bmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZp
Z2F0aW9uSUQsIFVSTCYmKTsKLSAgICB2b2lkIGRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZy
YW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBw
cm92aXNpb25hbFVSTCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIGNvbnN0IFVzZXJE
YXRhJik7CisgICAgdm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3Qg
ZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5
T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxV
UkwsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBXZWJDb3JlOjpXaWxsQ29udGludWVM
b2FkaW5nLCBjb25zdCBVc2VyRGF0YSYpOwogICAgIHZvaWQgZGlkQ29tbWl0TG9hZEZvckZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBt
aW1lVHlwZSwgYm9vbCBmcmFtZUhhc0N1c3RvbUNvbnRlbnRQcm92aWRlciwgdWludDMyX3QgZnJh
bWVMb2FkVHlwZSwgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJiwgYm9vbCBjb250YWlu
c1BsdWdpbkRvY3VtZW50LCBPcHRpb25hbDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQ+IGZv
cmNlZEhhc0luc2VjdXJlQ29udGVudCwgY29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIGRpZEZp
bmlzaERvY3VtZW50TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmln
YXRpb25JRCwgY29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIGRpZEZpbmlzaExvYWRGb3JGcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFVzZXJEYXRh
Jik7CkBAIC0xNjExLDcgKzE2MTEsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBkaWREZXN0cm95
TmF2aWdhdGlvbih1aW50NjRfdCBuYXZpZ2F0aW9uSUQpOwogCi0gICAgdm9pZCBkZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkZyYW1lUHJv
eHkmLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLAorICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbihSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJGcmFtZVByb3h5JiwgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIHVpbnQ2NF90JiBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRp
b25BY3Rpb25EYXRhJiYsCiAgICAgICAgIEZyYW1lSW5mb0RhdGEmJiwgdWludDY0X3Qgb3JpZ2lu
YXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1
ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYm
IHJlcXVlc3RCb2R5LAogICAgICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJl
Y3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCBSZWY8UG9saWN5RGVjaXNpb25TZW5kZXI+JiYp
OwogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKHVpbnQ2NF90
IGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lD
aGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRh
dGEmJiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdl
cy5pbgppbmRleCAxZDQ0YzZhNGI1MWE4MjU0ZWM2N2VkZTY4NTkwNjMzN2M4ODBjY2NlLi5iMGI0
NWNiZTVjMjhmMzc1ZjVmYjAzZmFiYzY5M2I3YzEwYjQ5MDk0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0xMjcsNyArMTI3LDcg
QEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBXaWxsUGVyZm9ybUNsaWVudFJlZGly
ZWN0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIHVybCwgZG91YmxlIGRlbGF5LCBl
bnVtOmJvb2wgV2ViQ29yZTo6TG9ja0JhY2tGb3J3YXJkTGlzdCBsb2NrQmFja0ZvcndhcmRMaXN0
KQogICAgIERpZENhbmNlbENsaWVudFJlZGlyZWN0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCkK
ICAgICBEaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMIHVybCkKLSAgICBEaWRGYWlsUHJvdmlzaW9uYWxMb2Fk
Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFN0cmluZyBw
cm92aXNpb25hbFVSTCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvciwgV2ViS2l0OjpVc2Vy
RGF0YSB1c2VyRGF0YSkKKyAgICBEaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0
X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3Vy
aXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFN0cmluZyBwcm92aXNpb25hbFVSTCwg
V2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvciwgZW51bTpib29sIFdlYkNvcmU6OldpbGxDb250
aW51ZUxvYWRpbmcgd2lsbENvbnRpbnVlTG9hZGluZywgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0
YSkKICAgICBEaWRDb21taXRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBTdHJpbmcgbWltZVR5cGUsIGJvb2wgaGFzQ3VzdG9tQ29udGVudFByb3Zp
ZGVyLCB1aW50MzJfdCBsb2FkVHlwZSwgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvIGNlcnRpZmlj
YXRlSW5mbywgYm9vbCBjb250YWluc1BsdWdpbkRvY3VtZW50LCBPcHRpb25hbDxXZWJDb3JlOjpI
YXNJbnNlY3VyZUNvbnRlbnQ+IGZvcmNlZEhhc0luc2VjdXJlQ29udGVudCwgV2ViS2l0OjpVc2Vy
RGF0YSB1c2VyRGF0YSkKICAgICBEaWRGYWlsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQs
IHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvciwgV2Vi
S2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKICAgICBEaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYktpdDo6VXNlckRh
dGEgdXNlckRhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCA0YWM5ZGI2
MzhlNTk2Y2M0OGViMjM3ODlhMjkyNWVkZDllMWQ2NTg4Li5jNDliYjFiYTQzY2IxYTIyYzE1Yjc3
NjE4M2ZhMjQ2NjQyMTkwZWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAg
LTUzNSw3ICs1MzUsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZENv
bW1pdExvYWQoT3B0aW9uYWw8SGFzSW5zZWN1cmVDb250ZW50PiBoYQogICAgIHdlYlBhZ2UtPmRp
ZENvbW1pdExvYWQobV9mcmFtZSk7CiB9CiAKLXZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRp
c3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikK
K3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9h
ZChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciwgV2lsbENvbnRpbnVlTG9hZGluZyB3aWxsQ29u
dGludWVMb2FkaW5nKQogewogICAgIFdlYlBhZ2UqIHdlYlBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7
CiAgICAgaWYgKCF3ZWJQYWdlKQpAQCAtNTY0LDcgKzU2NCw3IEBAIHZvaWQgV2ViRnJhbWVMb2Fk
ZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZChjb25zdCBSZXNvdXJjZUVy
cm9yJiBlCiAKICAgICAvLyBOb3RpZnkgdGhlIFVJUHJvY2Vzcy4KICAgICBXZWJDb3JlOjpGcmFt
ZSogY29yZUZyYW1lID0gbV9mcmFtZSA/IG1fZnJhbWUtPmNvcmVGcmFtZSgpIDogbnVsbHB0cjsK
LSAgICB3ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZEZhaWxQcm92aXNp
b25hbExvYWRGb3JGcmFtZShtX2ZyYW1lLT5mcmFtZUlEKCksIFNlY3VyaXR5T3JpZ2luRGF0YTo6
ZnJvbUZyYW1lKGNvcmVGcmFtZSksIG5hdmlnYXRpb25JRCwgbV9mcmFtZS0+Y29yZUZyYW1lKCkt
PmxvYWRlcigpLnByb3Zpc2lvbmFsTG9hZEVycm9yQmVpbmdIYW5kbGVkVVJMKCksIGVycm9yLCBV
c2VyRGF0YShXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS50cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVz
KHVzZXJEYXRhLmdldCgpKS5nZXQoKSkpKTsKKyAgICB3ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OkRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZShtX2ZyYW1lLT5mcmFt
ZUlEKCksIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbUZyYW1lKGNvcmVGcmFtZSksIG5hdmlnYXRp
b25JRCwgbV9mcmFtZS0+Y29yZUZyYW1lKCktPmxvYWRlcigpLnByb3Zpc2lvbmFsTG9hZEVycm9y
QmVpbmdIYW5kbGVkVVJMKCksIGVycm9yLCB3aWxsQ29udGludWVMb2FkaW5nLCBVc2VyRGF0YShX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS50cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVzKHVzZXJEYXRh
LmdldCgpKS5nZXQoKSkpKTsKIAogICAgIC8vIElmIHdlIGhhdmUgYSBsb2FkIGxpc3RlbmVyLCBu
b3RpZnkgaXQuCiAgICAgaWYgKFdlYkZyYW1lOjpMb2FkTGlzdGVuZXIqIGxvYWRMaXN0ZW5lciA9
IG1fZnJhbWUtPmxvYWRMaXN0ZW5lcigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRl
eCBjYjRmZjVjMTk1Y2NkMDhiNzA0OWNlYjI5OTQ4OGE4ZTVmMWM5MGRiLi5mNzNhYjhjYTczZjE3
OGJmMjY4ZmYyYjg0MWM0NTFjZGQ0OThmYWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
aApAQCAtMTEyLDcgKzExMiw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaXNwYXRjaERpZFN0YXJ0
UHJvdmlzaW9uYWxMb2FkKCkgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERpZFJlY2VpdmVUaXRs
ZShjb25zdCBXZWJDb3JlOjpTdHJpbmdXaXRoRGlyZWN0aW9uJikgZmluYWw7CiAgICAgdm9pZCBk
aXNwYXRjaERpZENvbW1pdExvYWQoT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50
PikgZmluYWw7Ci0gICAgdm9pZCBkaXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQoY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpIGZpbmFsOworICAgIHZvaWQgZGlzcGF0Y2hEaWRGYWls
UHJvdmlzaW9uYWxMb2FkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBXZWJDb3JlOjpX
aWxsQ29udGludWVMb2FkaW5nKSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoRGlkRmFpbExvYWQo
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hE
aWRGaW5pc2hEb2N1bWVudExvYWQoKSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoRGlkRmluaXNo
TG9hZCgpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggYjU3YWMxZjViMTZh
Yjc4ZmI4MzQ3OGFmMDFjNDQxYmRhMjMyNzczMC4uMTM4NTU4M2FmMjlkMTc0NDEzZDUwNTc5NWFm
YTk1YjVjODg5NjZiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC0xMTcsNyArMTE3
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpc3BhdGNoRGlkU3RhcnRQcm92aXNpb25hbExvYWQo
KSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoRGlkUmVjZWl2ZVRpdGxlKGNvbnN0IFdlYkNvcmU6
OlN0cmluZ1dpdGhEaXJlY3Rpb24mKSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoRGlkQ29tbWl0
TG9hZChPcHRpb25hbDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQ+KSBmaW5hbDsKLSAgICB2
b2lkIGRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZChjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZUVycm9yJikgZmluYWw7CisgICAgdm9pZCBkaXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQo
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIFdlYkNvcmU6OldpbGxDb250aW51ZUxvYWRp
bmcpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hEaWRGYWlsTG9hZChjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZUVycm9yJikgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERpZEZpbmlzaERvY3VtZW50
TG9hZCgpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hEaWRGaW5pc2hMb2FkKCkgZmluYWw7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCmluZGV4IDRiOTQyMTcyOTk3MTc2N2Q1MDIyNjQzNDc5
NmIwNWMyODg2NzAzYTMuLjdmODY5ZjFkZGNiOWExOTA4MGFhYjIwMDVmOWJmNzMyYWU4N2RkZGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCkBAIC03MjQsNyArNzI0LDcgQEAgdm9pZCBX
ZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRDb21taXRMb2FkKE9wdGlvbmFsPEhhc0lu
c2VjdXJlQ29udGVudD4pCiAgICAgICAgIENhbGxGcmFtZUxvYWREZWxlZ2F0ZShpbXBsZW1lbnRh
dGlvbnMtPmRpZENvbW1pdExvYWRGb3JGcmFtZUZ1bmMsIHdlYlZpZXcsIEBzZWxlY3Rvcih3ZWJW
aWV3OmRpZENvbW1pdExvYWRGb3JGcmFtZTopLCBtX3dlYkZyYW1lLmdldCgpKTsKIH0KIAotdm9p
ZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGYWlsUHJvdmlzaW9uYWxMb2FkKGNv
bnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlz
cGF0Y2hEaWRGYWlsUHJvdmlzaW9uYWxMb2FkKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBX
aWxsQ29udGludWVMb2FkaW5nKQogewogICAgIG1fd2ViRnJhbWUtPl9wcml2YXRlLT5wcm92aXNp
b25hbFVSTCA9IG51bGxwdHI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCBk
MGQ2NmQxNTliNWU1ZGNmZDdhNjFjNDVhYjg1NDE1NmUyYTZlNjE2Li41YzU4MTNmOTFjMWVkMDg3
YzdkODI0NjE0NGE2ZTViZWVkOTA0ODA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3Bw
CkBAIC00NDUsNyArNDQ1LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hE
aWRDb21taXRMb2FkKE9wdGlvbmFsPEhhc0luc2VjdXJlQ29udGVudD4pCiAgICAgICAgIGZyYW1l
TG9hZERlbGVnYXRlLT5kaWRDb21taXRMb2FkRm9yRnJhbWUod2ViVmlldywgbV93ZWJGcmFtZSk7
CiB9CiAKLXZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbFByb3Zpc2lv
bmFsTG9hZChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKK3ZvaWQgV2ViRnJhbWVMb2FkZXJD
bGllbnQ6OmRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZChjb25zdCBSZXNvdXJjZUVycm9y
JiBlcnJvciwgV2lsbENvbnRpbnVlTG9hZGluZykKIHsKICAgICBXZWJWaWV3KiB3ZWJWaWV3ID0g
bV93ZWJGcmFtZS0+d2ViVmlldygpOwogICAgIENPTVB0cjxJV2ViRnJhbWVMb2FkRGVsZWdhdGU+
IGZyYW1lTG9hZERlbGVnYXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggNTdlNGJi
YWJhZWEyNjhlMjIyMmExNmYwZmYwYTMzZTQxYmRjMzEwMC4uMzIyYzA5MDA1YWE1ZWU1NzNiNGQ3
MDJkNmUxZGIyNTA2MDVkMWI1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC05NCw3
ICs5NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpc3BhdGNoRGlkU3RhcnRQcm92aXNpb25hbExv
YWQoKSBvdmVycmlkZTsKICAgICB2b2lkIGRpc3BhdGNoRGlkUmVjZWl2ZVRpdGxlKGNvbnN0IFdl
YkNvcmU6OlN0cmluZ1dpdGhEaXJlY3Rpb24mKSBvdmVycmlkZTsKICAgICB2b2lkIGRpc3BhdGNo
RGlkQ29tbWl0TG9hZChPcHRpb25hbDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQ+KSBvdmVy
cmlkZTsKLSAgICB2b2lkIGRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZChjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZUVycm9yJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaXNwYXRjaERpZEZhaWxQ
cm92aXNpb25hbExvYWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIFdlYkNvcmU6Oldp
bGxDb250aW51ZUxvYWRpbmcpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlzcGF0Y2hEaWRGYWlsTG9h
ZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaXNw
YXRjaERpZEZpbmlzaERvY3VtZW50TG9hZCgpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlzcGF0Y2hE
aWRGaW5pc2hMb2FkKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9U
b29scy9DaGFuZ2VMb2cKaW5kZXggNzY5ZjdlMTg5YzE4NmM2ODZhMTk5NjI3ZGRmMDRjYzNlNDIz
YmVkYy4uMDA5Y2VmY2E1YWI4MGVmYmFkZmFmODUxNGZmYmMyMmE3OWZmZDE4ZCAxMDA2NDQKLS0t
IGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBA
CisyMDE5LTA0LTE5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAg
W1Byb2Nlc3MtU3dhcC1Pbi1OYXZpZ2F0aW9uXSBXZWJLaXQgaGFuZ3Mgd2hlbiBnb2luZyBiYWNr
IHRvIGEgZm9ybSBzdWJtaXNzaW9uJ3MgcGFnZSBkdWUgdG8gUHJvY2Vzcy1Td2FwLU9uLU5hdmln
YXRpb24gb24gaU9TIDEyLjIgYW5kIGhpZ2hlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3MDk3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81MDA0
ODMxOD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgQVBJIHRlc3QgY292ZXJhZ2UuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tOgorICAgICAgICAoLVtQU09OU2No
ZW1lIHdlYlZpZXc6c3RhcnRVUkxTY2hlbWVUYXNrOl0pOgorCiAyMDE5LTA0LTE4ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIENyYXNoIGluIEZyYW1lTG9hZGVy
OjpzdG9wQWxsTG9hZGVycyB2aWEgW1dlYlZpZXcgZGVhbGxvY10gaW5zaWRlIH5PYmpDRXZlbnRM
aXN0ZW5lcgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KaW5kZXggZmM0ZmE2YTFkYzU0
NzNkOTQ5NDU1YmQ5NTE2ZmViMWUzMjkxMWI1ZC4uY2Y5ZWExN2Y2ODhmMzI3ODY5MzBkYjYwZTQ0
ZDIwOWNmNDcyOWMwOSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCkBAIC0yNzYs
NiArMjc2LDExIEBAIC0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBzdGFydFVS
TFNjaGVtZVRhc2s6KGlkIDxXS1VSTFNjaGVtZVRhc2s+KXRhCiAgICAgICAgIFsoaWQ8V0tVUkxT
Y2hlbWVUYXNrUHJpdmF0ZT4pdGFzayBfZGlkUGVyZm9ybVJlZGlyZWN0aW9uOnJlZGlyZWN0UmVz
cG9uc2UuZ2V0KCkgbmV3UmVxdWVzdDpyZXF1ZXN0LmdldCgpXTsKICAgICB9CiAKKyAgICBpZiAo
WyhpZDxXS1VSTFNjaGVtZVRhc2tQcml2YXRlPil0YXNrIF9vbmx5SWZDYWNoZWRdKSB7CisgICAg
ICAgIFt0YXNrIGRpZEZhaWxXaXRoRXJyb3I6W05TRXJyb3IgZXJyb3JXaXRoRG9tYWluOkAiVGVz
dFdlYktpdEFQSSIgY29kZToxIHVzZXJJbmZvOm5pbF1dOworICAgICAgICByZXR1cm47CisgICAg
fQorCiAgICAgUmV0YWluUHRyPE5TVVJMUmVzcG9uc2U+IHJlc3BvbnNlID0gYWRvcHROUyhbW05T
VVJMUmVzcG9uc2UgYWxsb2NdIGluaXRXaXRoVVJMOmZpbmFsVVJMIE1JTUVUeXBlOkAidGV4dC9o
dG1sIiBleHBlY3RlZENvbnRlbnRMZW5ndGg6MSB0ZXh0RW5jb2RpbmdOYW1lOm5pbF0pOwogICAg
IFt0YXNrIGRpZFJlY2VpdmVSZXNwb25zZTpyZXNwb25zZS5nZXQoKV07CiAKQEAgLTQyNzgsNiAr
NDI4Myw2NyBAQCBURVNUKFByb2Nlc3NTd2FwLCBOYXZpZ2F0ZVRvQ3Jvc3NTaXRlVGhlbkJhY2tG
cm9tSlMpCiAgICAgRVhQRUNUX05FKGFwcGxlUElELCBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50
aWZpZXJdKTsKIH0KIAorc3RhdGljIGNvbnN0IGNoYXIqIGNyb3NzU2l0ZUZvcm1TdWJtaXNzaW9u
Qnl0ZXMgPSBSIlBTT05SRVNPVVJDRSgKKzxib2R5PgorPGZvcm0gYWN0aW9uPSJwc29uOi8vd3d3
LmFwcGxlLmNvbS9tYWluLmh0bWwiIG1ldGhvZD0icG9zdCI+CitOYW1lOiA8aW5wdXQgdHlwZT0i
dGV4dCIgbmFtZT0ibmFtZSIgcGxhY2Vob2xkZXI9Ik5hbWUiPgorPGlucHV0IGlkPSJzdWJtaXRC
dXR0b24iIHR5cGU9InN1Ym1pdCI+Cis8L2Zvcm0+Cis8L2JvZHk+CispUFNPTlJFU09VUkNFIjsK
KworVEVTVChQcm9jZXNzU3dhcCwgU3dhcE9uRm9ybVN1Ym1pc3Npb24pCit7CisgICAgYXV0byBw
cm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gPSBwc29uUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uKCk7
CisgICAgYXV0byBwcm9jZXNzUG9vbCA9IGFkb3B0TlMoW1tXS1Byb2Nlc3NQb29sIGFsbG9jXSBf
aW5pdFdpdGhDb25maWd1cmF0aW9uOnByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5nZXQoKV0pOwor
CisgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25m
aWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFBy
b2Nlc3NQb29sOnByb2Nlc3NQb29sLmdldCgpXTsKKyAgICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5T
KFtbUFNPTlNjaGVtZSBhbGxvY10gaW5pdF0pOworICAgIFtoYW5kbGVyIGFkZE1hcHBpbmdGcm9t
VVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCIgdG9EYXRhOmNyb3Nz
U2l0ZUZvcm1TdWJtaXNzaW9uQnl0ZXNdOworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRV
UkxTY2hlbWVIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgZm9yVVJMU2NoZW1lOkAiUFNPTiJdOworCisg
ICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFt
ZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOndlYlZpZXdDb25maWd1
cmF0aW9uLmdldCgpXSk7CisgICAgYXV0byBuYXZpZ2F0aW9uRGVsZWdhdGUgPSBhZG9wdE5TKFtb
UFNPTk5hdmlnYXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIFt3ZWJWaWV3IHNldE5h
dmlnYXRpb25EZWxlZ2F0ZTpuYXZpZ2F0aW9uRGVsZWdhdGUuZ2V0KCldOworCisgICAgW3dlYlZp
ZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0
aFN0cmluZzpAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiXV1dOworICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgZG9uZSA9IGZhbHNlOworICAgIGF1dG8g
d2Via2l0UElEID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKKyAgICBFWFBFQ1Rf
V0tfU1RSRVEoQCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIiwgW1t3ZWJWaWV3IFVS
TF0gYWJzb2x1dGVTdHJpbmddKTsKKworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpA
InN1Ym1pdEJ1dHRvbi5jbGljaygpIiBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOworICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgZG9uZSA9IGZhbHNlOworICAgIGF1dG8g
YXBwbGVQSUQgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOworICAgIEVYUEVDVF9O
RSh3ZWJraXRQSUQsIGFwcGxlUElEKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoQCJwc29uOi8vd3d3
LmFwcGxlLmNvbS9tYWluLmh0bWwiLCBbW3dlYlZpZXcgVVJMXSBhYnNvbHV0ZVN0cmluZ10pOwor
CisgICAgW3dlYlZpZXcgcmVsb2FkXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRv
bmUpOworICAgIGRvbmUgPSBmYWxzZTsKKyAgICBFWFBFQ1RfRVEoYXBwbGVQSUQsIFt3ZWJWaWV3
IF93ZWJQcm9jZXNzSWRlbnRpZmllcl0pOworICAgIEVYUEVDVF9XS19TVFJFUShAInBzb246Ly93
d3cuYXBwbGUuY29tL21haW4uaHRtbCIsIFtbd2ViVmlldyBVUkxdIGFic29sdXRlU3RyaW5nXSk7
CisKKyAgICBbd2ViVmlldyBnb0JhY2tdOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
ZG9uZSk7CisgICAgZG9uZSA9IGZhbHNlOworICAgIEVYUEVDVF9FUSh3ZWJraXRQSUQsIFt3ZWJW
aWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl0pOworICAgIEVYUEVDVF9XS19TVFJFUShAInBzb246
Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiLCBbW3dlYlZpZXcgVVJMXSBhYnNvbHV0ZVN0cmlu
Z10pOworCisgICAgW3dlYlZpZXcgZ29Gb3J3YXJkXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmRvbmUpOworICAgIGRvbmUgPSBmYWxzZTsKKyAgICBFWFBFQ1RfRVEoYXBwbGVQSUQs
IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl0pOworICAgIEVYUEVDVF9XS19TVFJFUShA
InBzb246Ly93d3cuYXBwbGUuY29tL21haW4uaHRtbCIsIFtbd2ViVmlldyBVUkxdIGFic29sdXRl
U3RyaW5nXSk7CisKKyAgICBbd2ViVmlldyBnb0JhY2tdOworICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZG9uZSk7CisgICAgZG9uZSA9IGZhbHNlOworICAgIEVYUEVDVF9FUSh3ZWJraXRQ
SUQsIFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl0pOworICAgIEVYUEVDVF9XS19TVFJF
UShAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiLCBbW3dlYlZpZXcgVVJMXSBhYnNv
bHV0ZVN0cmluZ10pOworfQogCiBURVNUKFByb2Nlc3NTd2FwLCBDbG9zZVBhZ2VBZnRlckNyb3Nz
U2l0ZVByb3Zpc2lvbmFsTG9hZCkKIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>367947</attachid>
            <date>2019-04-22 10:21:20 -0700</date>
            <delta_ts>2019-04-22 13:40:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-197097-20190422102119.patch</filename>
            <type>text/plain</type>
            <size>39457</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ0NTAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzUyZGVlMGQwZTRkYTE0
MWZiNjlhNmNkOWVlMDdhZTNjOGUwMTc4OS4uN2RiYTBhOWIzYmY5ODM5YzYxNDdkZDUwOGVjYzQy
MzVlMzRmNzQyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE5LTA0LTIyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1Byb2Nlc3MtU3dhcC1Pbi1O
YXZpZ2F0aW9uXSBXZWJLaXQgaGFuZ3Mgd2hlbiBnb2luZyBiYWNrIHRvIGEgZm9ybSBzdWJtaXNz
aW9uJ3MgcGFnZSBkdWUgdG8gUHJvY2Vzcy1Td2FwLU9uLU5hdmlnYXRpb24gb24gaU9TIDEyLjIg
YW5kIGhpZ2hlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTk3MDk3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81MDA0ODMxOD4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGxvYWRlci9FbXB0eUZyYW1l
TG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpjaGVja0xvYWRDb21wbGV0ZUZvclRoaXNGcmFtZSk6
CisgICAgICAgIElmIHdlIHN0aWxsIGhhdmUgYSBwcm92aXNpb25hbCBpdGVtIChuZXcgbG9hZCBo
YXMgYmVlbiBzdGFydGVkIG9yIHdlIGRpZCBub3QgY2xlYXIgaXQgYmVjYXVzZSB3ZSdyZSBhYm91
dCB0byByZXRyeSksCisgICAgICAgIHRoZW4gbGV0IHRoZSBjbGllbnQga25vdyB0aGUgbG9hZCB3
aWxsIGNvbnRpbnVlIGJ5IHBhc3NpbmcgYW4gZXh0cmEgZmxhZyB3aXRoIHRoZSBkaWRGYWlsUHJv
dmlzaW9uYWxMb2FkLgorCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50Lmg6Cisg
ICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaDoKKwogMjAxOS0wNC0yMiAgQ29tbWl0
IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwg
cm9sbGluZyBvdXQgcjI0NDQ5NS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMjk1YjkzMDUwYjhiMjRhNDAxMWUxY2Ux
ZmIwODRhM2ZiN2M4MTYzOC4uZTkwZDgwMjcwOGM5ZWJkNmI5MzczODBiY2M4ZTc3MjAyNTNkYzU5
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MCBAQAorMjAxOS0wNC0yMiAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFtQcm9jZXNzLVN3YXAtT24tTmF2aWdhdGlvbl0g
V2ViS2l0IGhhbmdzIHdoZW4gZ29pbmcgYmFjayB0byBhIGZvcm0gc3VibWlzc2lvbidzIHBhZ2Ug
ZHVlIHRvIFByb2Nlc3MtU3dhcC1Pbi1OYXZpZ2F0aW9uIG9uIGlPUyAxMi4yIGFuZCBoaWdoZXIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NzA5Nwor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTAwNDgzMTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGlzc3VlIGlzIHRoYXQgd2hlbiBkb2luZyBh
IGhpc3RvcnkgbmF2aWdhdGlvbiB3aXRoIGZvcm0gZGF0YSwgd2UgdHJ5IHRvIHJlc3VibWl0IHRo
ZSBmb3JtLgorICAgICAgICBXZSBpbml0aWFsbHkgdXNlIHRoZSBSZXR1cm5DYWNoZURhdGFEb250
TG9hZCBjYWNoZSBwb2xpY3kgd2l0aG91dCBwcm9tcHRpbmcgdGhlIHVzZXIgdG8gZ2V0CisgICAg
ICAgIGNhY2hlZCBkYXRhLiBJZiB0aGlzIGZhaWxzLCB3ZSBzZW50IGEgRGlkRmFpbFByb3Zpc2lv
bmFsTG9hZEZvckZyYW1lIElQQyB0byB0aGUgVUlQcm9jZXNzIGJ1dAorICAgICAgICB0aGUgV2Vi
Q29udGVudCBwcm9jZXNzIGFjdHVhbGx5IHJldHJpZXMgdGhlIGxvYWQgd2l0aCBSZXR1cm5DYWNo
ZURhdGFFbHNlTG9hZCBjYWNoZSBwb2xpY3kuCisgICAgICAgIFRoaXMgbmV3IGxvYWQgdHJpZ2dl
cnMgYSBuZXcgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbi4KKworICAgICAgICBUaGlz
IHdvdWxkIGNhdXNlIHRyb3VibGUgd2l0aCBwcm9jZXNzLXN3YXBwaW5nIGJlY2F1c2Ugd2Ugbm9y
bWFsbHkgZGVzdHJveSB0aGUKKyAgICAgICAgUHJvdmlzaW9uYWxQYWdlUHJveHkgYXMgc29vbiBh
cyB3ZSByZWNlaXZlIGEgRGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lIElQQyBmcm9tIHRo
ZQorICAgICAgICBwcm92aXNpb25hbCBwcm9jZXNzLiBBcyBhIHJlc3VsdCwgdGhlIHByb3Zpc2lv
bmFsIHByb2Nlc3Mgd291bGQgbm90IGJlIGFibGUgdG8gcmV0cnkuCisKKyAgICAgICAgVG8gYWRk
cmVzcyB0aGUgaXNzdWUsIHdlIGFkZCBwYXNzIGEgZmxhZyB3aXRoIHRoZSBEaWRGYWlsUHJvdmlz
aW9uYWxMb2FkRm9yRnJhbWUgSVBDIHRvCisgICAgICAgIGlmIHRoZSBsb2FkIHdpbGwgY29udGlu
dWUgb3Igbm90LiBXaGVuIHRoaXMgZmxhZyBpcyBzZXQsIHRoZSBVSVByb2Nlc3MgZG9lcyBub3Qg
ZGVzdHJveQorICAgICAgICB0aGUgcHJvdmlzaW9uYWwgcGFnZS4KKworICAgICAgICAqIFNjcmlw
dHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICBNaW5vciBJUEMgbWVzc2FnZSBoYW5kbGVy
IGJ1aWxkIGZpeC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVUkxTY2hlbWVU
YXNrLm1tOgorICAgICAgICAoLVtXS1VSTFNjaGVtZVRhc2tJbXBsIF9vbmx5SWZDYWNoZWRdKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLVVJMU2NoZW1lVGFza1ByaXZhdGUuaDoK
KyAgICAgICAgQWRkIG5ldyBfb25seUlmQ2FjaGVkIFNQSSB0byBXS1VSTFNjaGVtZVRhc2tQcml2
YXRlIHRvIGFsbG93IGZvciBBUEkgdGVzdGluZy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Qcm92
aXNpb25hbFBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVBy
b3h5OjpjYW5jZWwpOgorICAgICAgICBQYXNzIFdpbGxDb250aW51ZUxvYWRpbmcgZmxhZy4KKwor
ICAgICAgICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6dmFsaWRhdGVJbnB1dCk6Cisg
ICAgICAgIENvbnNpZGVyIElQQyB3aXRoIGEgbmF2aWdhdGlvbklEIG9mIDAgYXMgdmFsaWQuIFdo
ZW4gdGhlIG5hdmlnYXRpb24gaXMgdHJpZ2dlcmVkIGJ5IHRoZQorICAgICAgICBXZWJDb250ZW50
IHByb2Nlc3MsIGl0IHNlbmRzIHVzIGEgRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFz
eW5jIElQQyB3aXRoIGEgbmF2aWdhdGlvbklECisgICAgICAgIG9mIDAsIHVudGlsIHRoZSBVSVBy
b2Nlc3MgY2FuIGdlbmVyYXRlIGEgdmFsaWQgaWRlbnRpZmllci4KKworICAgICAgICAoV2ViS2l0
OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKToK
KworICAgICAgICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvbkFzeW5jKToKKyAgICAgICAgV2hlbiB0aGUgV2ViUGFnZVByb3h5IGhh
cyBnZW5lcmF0ZWQgYSBuYXZpZ2F0aW9uSUQgZm9yIHRoZSBuZXcgV2ViQ29udGVudCBwcm9jZXNz
LWluaXRpYXRlZAorICAgICAgICBuYXZpZ2F0aW9uLCB1cGRhdGUgbV9uYXZpZ2F0aW9uSUQgc28g
dGhhdCBmb2xsb3ctdXAgSVBDIGlzIGNvbnNpZGVyZWQgdmFsaWQuCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRGYWlsUHJvdmlz
aW9uYWxMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZEZh
aWxQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZCk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5o
OgorCiAyMDE5LTA0LTIyICBMdWRvdmljbyBkZSBOaXR0aXMgIDxsdWRvdmljby5kZW5pdHRpc0Bj
b2xsYWJvcmEuY29tPgogCiAgICAgICAgIFtHVEtdIGZpeCBndGtfc3R5bGVfY29udGV4dF9zZXRf
YmFja2dyb3VuZCBkZXByZWNhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDgw
MTk3N2EyMWE5ZDYyNDg5ODNhZGZjYTg1YWM4OGM1MzY2MWMyZDEuLjM5MDUzMjQ0YmUzODRkYWQy
MTk4ODU3ZmRhNWNjYzJiNmVlNTdkZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNSBAQAorMjAxOS0wNC0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgorCisgICAgICAgIFtQcm9jZXNzLVN3YXAtT24tTmF2aWdhdGlvbl0gV2ViS2l0IGhhbmdzIHdo
ZW4gZ29pbmcgYmFjayB0byBhIGZvcm0gc3VibWlzc2lvbidzIHBhZ2UgZHVlIHRvIFByb2Nlc3Mt
U3dhcC1Pbi1OYXZpZ2F0aW9uIG9uIGlPUyAxMi4yIGFuZCBoaWdoZXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NzA5NworICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNTAwNDgzMTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tOgorICAgICAgICAo
V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZCk6CisK
IDIwMTktMDQtMTggIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAg
IFVzZSBleGlzdGluZyBLZXlFdmVudENvZGVzSU9TIGNvbnN0YW50cyBpbnN0ZWFkIG9mIGR1cGxp
Y2F0aW5nIHRoZW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwppbmRleCBjMWQwNjgzNGJjYWE5
YTcxZGViNmVhOTg2NzU1NWJiNWZmZjVkNzZmLi41OThjZmFkNWRmMGZiYmRmNjUyMmIzY2E3ZDdk
MmI5MDQ5YTZmYmRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTktMDQtMjIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAg
ICBbUHJvY2Vzcy1Td2FwLU9uLU5hdmlnYXRpb25dIFdlYktpdCBoYW5ncyB3aGVuIGdvaW5nIGJh
Y2sgdG8gYSBmb3JtIHN1Ym1pc3Npb24ncyBwYWdlIGR1ZSB0byBQcm9jZXNzLVN3YXAtT24tTmF2
aWdhdGlvbiBvbiBpT1MgMTIuMiBhbmQgaGlnaGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTcwOTcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUw
MDQ4MzE4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZCk6CisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKwogMjAxOS0wNC0y
MCAgRG9uIE9sbXN0ZWFkICA8ZG9uLm9sbXN0ZWFkQHNvbnkuY29tPgogCiAgICAgICAgIFtDTWFr
ZV1bV2luXSBVc2UgdGFyZ2V0IG9yaWVudGVkIGRlc2lnbiBmb3IgV2ViS2l0TGVnYWN5CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCBhOGQy
Yzg4OThjZTQ2ZjZiNTcxZGFhZGYxM2Q1NTEzNThiYTIyNGZhLi40ZjBiYjg2ZGRkNTA5OWUzMTFk
ODlhNDliZTNhM2JlNDA3N2Y1ZTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0
eUZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTg0LDcgKzg0LDcgQEAgY2xhc3MgV0VCQ09SRV9FWFBP
UlQgRW1wdHlGcmFtZUxvYWRlckNsaWVudCA6IHB1YmxpYyBGcmFtZUxvYWRlckNsaWVudCB7CiAg
ICAgdm9pZCBkaXNwYXRjaERpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkKCkgZmluYWwgeyB9CiAgICAg
dm9pZCBkaXNwYXRjaERpZFJlY2VpdmVUaXRsZShjb25zdCBTdHJpbmdXaXRoRGlyZWN0aW9uJikg
ZmluYWwgeyB9CiAgICAgdm9pZCBkaXNwYXRjaERpZENvbW1pdExvYWQoT3B0aW9uYWw8SGFzSW5z
ZWN1cmVDb250ZW50PikgZmluYWwgeyB9Ci0gICAgdm9pZCBkaXNwYXRjaERpZEZhaWxQcm92aXNp
b25hbExvYWQoY29uc3QgUmVzb3VyY2VFcnJvciYpIGZpbmFsIHsgfQorICAgIHZvaWQgZGlzcGF0
Y2hEaWRGYWlsUHJvdmlzaW9uYWxMb2FkKGNvbnN0IFJlc291cmNlRXJyb3ImLCBXaWxsQ29udGlu
dWVMb2FkaW5nKSBmaW5hbCB7IH0KICAgICB2b2lkIGRpc3BhdGNoRGlkRmFpbExvYWQoY29uc3Qg
UmVzb3VyY2VFcnJvciYpIGZpbmFsIHsgfQogICAgIHZvaWQgZGlzcGF0Y2hEaWRGaW5pc2hEb2N1
bWVudExvYWQoKSBmaW5hbCB7IH0KICAgICB2b2lkIGRpc3BhdGNoRGlkRmluaXNoTG9hZCgpIGZp
bmFsIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggZTAxODI1ZTU3
YjFmZTc1ODhiYTUyMTI3ZjVmZDI4NjQ3NWFmYzkyOS4uNTc3M2M5OGEwMjFmYmMxNTIzYmRkNjA5
ODdhOTRmMTZhMTZmYWY1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBA
IC0yNDY1LDcgKzI0NjUsOCBAQCB2b2lkIEZyYW1lTG9hZGVyOjpjaGVja0xvYWRDb21wbGV0ZUZv
clRoaXNGcmFtZSgpCiAgICAgICAgICAgICBpZiAoIXBkbC0+aXNMb2FkaW5nSW5BUElTZW5zZSgp
IHx8IHBkbC0+aXNTdG9wcGluZygpKSB7CiAgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZf
QUxMT1dFRCgiY2hlY2tMb2FkQ29tcGxldGVGb3JUaGlzRnJhbWU6IEZhaWxlZCBwcm92aXNpb25h
bCBsb2FkIChmcmFtZSA9ICVwLCBtYWluID0gJWQsIGlzVGltZW91dCA9ICVkLCBpc0NhbmNlbGxh
dGlvbiA9ICVkLCBlcnJvckNvZGUgPSAlZCkiLCAmbV9mcmFtZSwgbV9mcmFtZS5pc01haW5GcmFt
ZSgpLCBlcnJvci5pc1RpbWVvdXQoKSwgZXJyb3IuaXNDYW5jZWxsYXRpb24oKSwgZXJyb3IuZXJy
b3JDb2RlKCkpOwogICAgICAgICAgICAgICAgIG1fcHJvdmlzaW9uYWxMb2FkRXJyb3JCZWluZ0hh
bmRsZWRVUkwgPSBtX3Byb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXItPnVybCgpOwotICAgICAgICAg
ICAgICAgIG1fY2xpZW50LmRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZChlcnJvcik7CisK
KyAgICAgICAgICAgICAgICBtX2NsaWVudC5kaXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQo
ZXJyb3IsIGhpc3RvcnkoKS5wcm92aXNpb25hbEl0ZW0oKSA/IFdpbGxDb250aW51ZUxvYWRpbmc6
OlllcyA6IFdpbGxDb250aW51ZUxvYWRpbmc6Ok5vKTsKICNpZiBFTkFCTEUoQ09OVEVOVF9GSUxU
RVJJTkcpCiAgICAgICAgICAgICAgICAgaWYgKGF1dG8gY29udGVudEZpbHRlciA9IHBkbC0+Y29u
dGVudEZpbHRlcigpKQogICAgICAgICAgICAgICAgICAgICBjb250ZW50RmlsdGVyLT5oYW5kbGVQ
cm92aXNpb25hbExvYWRGYWlsdXJlKGVycm9yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyQ2xpZW50LmgKaW5kZXggZmExZGY2MGEzYTlhMTIzZWFlYjcxMjM5MTE2N2Q3NjhjYWMx
ZjQ4Yi4uZWMzOTEyN2ExYWQ2YzI1ZTBkMzQ2YmU3YTQ2OGNiNmVhOThmM2ZjOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTE3Nyw3ICsxNzcsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkU3RhcnRQcm92aXNpb25hbExvYWQo
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkUmVjZWl2ZVRpdGxlKGNvbnN0IFN0
cmluZ1dpdGhEaXJlY3Rpb24mKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkQ29t
bWl0TG9hZChPcHRpb25hbDxIYXNJbnNlY3VyZUNvbnRlbnQ+KSA9IDA7Ci0gICAgdmlydHVhbCB2
b2lkIGRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZChjb25zdCBSZXNvdXJjZUVycm9yJikg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQoY29u
c3QgUmVzb3VyY2VFcnJvciYsIFdpbGxDb250aW51ZUxvYWRpbmcpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgZGlzcGF0Y2hEaWRGYWlsTG9hZChjb25zdCBSZXNvdXJjZUVycm9yJikgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZEZpbmlzaERvY3VtZW50TG9hZCgpID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRGaW5pc2hMb2FkKCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlclR5cGVzLmgKaW5kZXggYWQ3MmFmNjE2NGE4NWM4MTdiODQ0NDNlNmY0
ZGY2Zjc4YTgwNDJjZS4uNGVlNTlkODY3NGRlY2M2ZTI5OTA0MDA1OTZhYjI2N2RmYzAzZmNjZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJUeXBlcy5oCkBAIC02Nyw2ICs2Nyw4
IEBAIGVudW0gY2xhc3MgRnJhbWVMb2FkVHlwZSA6IHVpbnQ4X3QgewogICAgIFJlbG9hZEV4cGly
ZWRPbmx5CiB9OwogCitlbnVtIGNsYXNzIFdpbGxDb250aW51ZUxvYWRpbmcgOiBib29sIHsgTm8s
IFllcyB9OworCiBjbGFzcyBQb2xpY3lDaGVja0lkZW50aWZpZXIgewogcHVibGljOgogICAgIFBv
bGljeUNoZWNrSWRlbnRpZmllcigpID0gZGVmYXVsdDsKQEAgLTIxNyw0ICsyMTksMTIgQEAgdGVt
cGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpGcmFtZUxvYWRUeXBlPiB7CiAgICAg
PjsKIH07CiAKK3RlbXBsYXRlIDw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OldpbGxDb250
aW51ZUxvYWRpbmc+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBX
ZWJDb3JlOjpXaWxsQ29udGludWVMb2FkaW5nLAorICAgICAgICBXZWJDb3JlOjpXaWxsQ29udGlu
dWVMb2FkaW5nOjpObywKKyAgICAgICAgV2ViQ29yZTo6V2lsbENvbnRpbnVlTG9hZGluZzo6WWVz
CisgICAgPjsKK307CisKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93
ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggYTg4NWJiMDYyY2VmOGI1MWFkOTc1NjMwYjUyODU0ZjUw
NGQxNWE0YS4uOGU1MmFjMDNjMjgwNTIxOGI5YWFjYWVjOGIzNjYwOTM3OWUxNjVkZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC00NjIsNiArNDYyLDcgQEAg
ZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAgICdXZWJDb3JlOjpUZXh0Q2hlY2tp
bmdUeXBlJzogWyc8V2ViQ29yZS9UZXh0Q2hlY2tpbmcuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6
OlRleHRJbmRpY2F0b3JEYXRhJzogWyc8V2ViQ29yZS9UZXh0SW5kaWNhdG9yLmg+J10sCiAgICAg
ICAgICdXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMnOiBbJzxXZWJDb3JlL1ZpZXdwb3J0QXJn
dW1lbnRzLmg+J10sCisgICAgICAgICdXZWJDb3JlOjpXaWxsQ29udGludWVMb2FkaW5nJzogWyc8
V2ViQ29yZS9GcmFtZUxvYWRlclR5cGVzLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpTZWxlY3Rp
b25SZWN0JzogWyciRWRpdG9yU3RhdGUuaCInXSwKICAgICAgICAgJ1dlYktpdDo6QWN0aXZpdHlT
dGF0ZUNoYW5nZUlEJzogWyciRHJhd2luZ0FyZWFJbmZvLmgiJ10sCiAgICAgICAgICdXZWJLaXQ6
OkJhY2tGb3J3YXJkTGlzdEl0ZW1TdGF0ZSc6IFsnIlNlc3Npb25TdGF0ZS5oIiddLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVVJMU2NoZW1lVGFzay5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VSTFNjaGVtZVRhc2subW0K
aW5kZXggOGE1NDJlMDYwODNkODI2NDk1NDYzZWY3ZmVlYWNhOWU1Y2FhMDM2NS4uZjEzZTJhNzQ3
MTFiMDY2MDY3Y2YxNTk2NzgzMzY0YjgxOGE5MmRlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVVJMU2NoZW1lVGFzay5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVUkxTY2hlbWVUYXNrLm1tCkBAIC03MCw2ICs3MCwx
MSBAQCAtIChOU1VSTFJlcXVlc3QgKilyZXF1ZXN0CiAgICAgcmV0dXJuIF91cmxTY2hlbWVUYXNr
LT50YXNrKCkucmVxdWVzdCgpLm5zVVJMUmVxdWVzdChXZWJDb3JlOjpIVFRQQm9keVVwZGF0ZVBv
bGljeTo6VXBkYXRlSFRUUEJvZHkpOwogfQogCistIChCT09MKV9vbmx5SWZDYWNoZWQKK3sKKyAg
ICByZXR1cm4gX3VybFNjaGVtZVRhc2stPnRhc2soKS5yZXF1ZXN0KCkuY2FjaGVQb2xpY3koKSA9
PSBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3RDYWNoZVBvbGljeTo6UmV0dXJuQ2FjaGVEYXRhRG9u
dExvYWQ7Cit9CisKIC0gKHZvaWQpZGlkUmVjZWl2ZVJlc3BvbnNlOihOU1VSTFJlc3BvbnNlICop
cmVzcG9uc2UKIHsKICAgICBhdXRvIHJlc3VsdCA9IF91cmxTY2hlbWVUYXNrLT50YXNrKCkuZGlk
UmVjZWl2ZVJlc3BvbnNlKHJlc3BvbnNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1VSTFNjaGVtZVRhc2tQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVUkxTY2hlbWVUYXNrUHJpdmF0ZS5oCmluZGV4IDYyNDE5
NzVlM2M3YmQ4ODE5NzczYjlhNjQ0NWVjZjdiMDVjNmYzMWUuLjc3MTg4ZDg0MDkwM2FiOTdhMmI3
ZGViMzJhMjk3NjlmNmJhNjdmNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1VSTFNjaGVtZVRhc2tQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLVVJMU2NoZW1lVGFza1ByaXZhdGUuaApAQCAtMzAsNCArMzAs
NiBAQCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKQogCiAtICh2b2lk
KV9kaWRQZXJmb3JtUmVkaXJlY3Rpb246KE5TVVJMUmVzcG9uc2UgKilyZXNwb25zZSBuZXdSZXF1
ZXN0OihOU1VSTFJlcXVlc3QgKilyZXF1ZXN0OwogCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVh
ZG9ubHkpIEJPT0wgX29ubHlJZkNhY2hlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSkpOworCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAKaW5kZXggOThlZmNjOGUxOTQ2NTNkNzAwZGNl
MjkzZmJkYWRlMjVkNmRmYWIzZi4uZjg5MDA4NjczNzI2ZGI1Nzk0YTE3NWE5NGEzYmFhMDM5OGYw
YzI0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdl
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVBy
b3h5LmNwcApAQCAtMTM0LDcgKzEzNCw3IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmNh
bmNlbCgpCiAgICAgQVNTRVJUKG1fbWFpbkZyYW1lKTsKICAgICBhdXRvIGVycm9yID0gV2ViS2l0
OjpjYW5jZWxsZWRFcnJvcihtX3JlcXVlc3QpOwogICAgIGVycm9yLnNldFR5cGUoV2ViQ29yZTo6
UmVzb3VyY2VFcnJvcjo6VHlwZTo6Q2FuY2VsbGF0aW9uKTsKLSAgICBkaWRGYWlsUHJvdmlzaW9u
YWxMb2FkRm9yRnJhbWUobV9tYWluRnJhbWUtPmZyYW1lSUQoKSwgeyB9LCBtX25hdmlnYXRpb25J
RCwgbV9wcm92aXNpb25hbExvYWRVUkwsIGVycm9yLCBVc2VyRGF0YSB7IH0pOyAvLyBXaWxsIGRl
bGV0ZSB8dGhpc3wuCisgICAgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKG1fbWFpbkZy
YW1lLT5mcmFtZUlEKCksIHsgfSwgbV9uYXZpZ2F0aW9uSUQsIG1fcHJvdmlzaW9uYWxMb2FkVVJM
LCBlcnJvciwgV2ViQ29yZTo6V2lsbENvbnRpbnVlTG9hZGluZzo6Tm8sIFVzZXJEYXRhIHsgfSk7
IC8vIFdpbGwgZGVsZXRlIHx0aGlzfC4KIH0KIAogdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6
aW5pdGlhbGl6ZVdlYlBhZ2UoKQpAQCAtMTg5LDcgKzE4OSw3IEBAIGlubGluZSBib29sIFByb3Zp
c2lvbmFsUGFnZVByb3h5Ojp2YWxpZGF0ZUlucHV0KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IE9w
dGlvbmFsCiAgICAgaWYgKCFtX21haW5GcmFtZSB8fCBtX21haW5GcmFtZS0+ZnJhbWVJRCgpICE9
IGZyYW1lSUQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHJldHVybiAhbmF2aWdhdGlv
bklEIHx8ICpuYXZpZ2F0aW9uSUQgPT0gbV9uYXZpZ2F0aW9uSUQ7CisgICAgcmV0dXJuICFuYXZp
Z2F0aW9uSUQgfHwgISpuYXZpZ2F0aW9uSUQgfHwgKm5hdmlnYXRpb25JRCA9PSBtX25hdmlnYXRp
b25JRDsKIH0KIAogdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ3JlYXRlTWFpbkZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQpCkBAIC0yNDcsNyArMjQ3LDcgQEAgdm9pZCBQcm92aXNpb25hbFBh
Z2VQcm94eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlE
LCB1aW4KICAgICBtX3BhZ2UuZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZCht
X3Byb2Nlc3MuY29weVJlZigpLCBmcmFtZUlELCBuYXZpZ2F0aW9uSUQsIFdURk1vdmUodXJsKSwg
V1RGTW92ZSh1bnJlYWNoYWJsZVVSTCksIHVzZXJEYXRhKTsKIH0KIAotdm9pZCBQcm92aXNpb25h
bFBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1l
SUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdp
biwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBlcnJvciwgY29uc3QgVXNlckRhdGEmIHVzZXJE
YXRhKQordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZv
ckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJp
bmcmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBlcnJvciwg
V2ViQ29yZTo6V2lsbENvbnRpbnVlTG9hZGluZyB3aWxsQ29udGludWVMb2FkaW5nLCBjb25zdCBV
c2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgaWYgKCF2YWxpZGF0ZUlucHV0KGZyYW1lSUQsIG5h
dmlnYXRpb25JRCkpCiAgICAgICAgIHJldHVybjsKQEAgLTI2MCw3ICsyNjAsNyBAQCB2b2lkIFBy
b3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0
X3QgZnJhbWVJRCwgY29ucwogICAgIGlmIChhdXRvKiBwYWdlTWFpbkZyYW1lID0gbV9wYWdlLm1h
aW5GcmFtZSgpKQogICAgICAgICBwYWdlTWFpbkZyYW1lLT5kaWRGYWlsUHJvdmlzaW9uYWxMb2Fk
KCk7CiAKLSAgICBtX3BhZ2UuZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKG1f
cHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIGZyYW1lU2VjdXJpdHlPcmlnaW4sIG5hdmlnYXRp
b25JRCwgcHJvdmlzaW9uYWxVUkwsIGVycm9yLCB1c2VyRGF0YSk7IC8vIFdpbGwgZGVsZXRlIHx0
aGlzfC4KKyAgICBtX3BhZ2UuZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKG1f
cHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIGZyYW1lU2VjdXJpdHlPcmlnaW4sIG5hdmlnYXRp
b25JRCwgcHJvdmlzaW9uYWxVUkwsIGVycm9yLCB3aWxsQ29udGludWVMb2FkaW5nLCB1c2VyRGF0
YSk7IC8vIE1heSBkZWxldGUgfHRoaXN8LgogfQogCiB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5
OjpkaWRDb21taXRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdh
dGlvbklELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGZyYW1lSGFzQ3VzdG9tQ29udGVu
dFByb3ZpZGVyLCB1aW50MzJfdCBmcmFtZUxvYWRUeXBlLCBjb25zdCBXZWJDb3JlOjpDZXJ0aWZp
Y2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbywgYm9vbCBjb250YWluc1BsdWdpbkRvY3VtZW50LCBP
cHRpb25hbDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQ+IGZvcmNlZEhhc0luc2VjdXJlQ29u
dGVudCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQpAQCAtMzc4LDExICszNzgsMTQgQEAgdm9p
ZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
JiBjb25uZWN0aW9uLCBJUEM6OkQKIAogICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VOYW1lKCkgPT0g
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkU3RhcnRQcm9ncmVzczo6bmFtZSgpCiAgICAgICAg
IHx8IGRlY29kZXIubWVzc2FnZU5hbWUoKSA9PSBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRD
aGFuZ2VQcm9ncmVzczo6bmFtZSgpCisgICAgICAgIHx8IGRlY29kZXIubWVzc2FnZU5hbWUoKSA9
PSBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWREZXN0cm95TmF2aWdhdGlvbjo6bmFtZSgpCisg
ICAgICAgIHx8IGRlY29kZXIubWVzc2FnZU5hbWUoKSA9PSBNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpEaWRGaW5pc2hQcm9ncmVzczo6bmFtZSgpCiAgICAgICAgIHx8IGRlY29kZXIubWVzc2FnZU5h
bWUoKSA9PSBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpCYWNrRm9yd2FyZEFkZEl0ZW06Om5hbWUo
KQogICAgICAgICB8fCBkZWNvZGVyLm1lc3NhZ2VOYW1lKCkgPT0gTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6TG9nRGlhZ25vc3RpY01lc3NhZ2U6Om5hbWUoKQogICAgICAgICB8fCBkZWNvZGVyLm1l
c3NhZ2VOYW1lKCkgPT0gTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6TG9nRGlhZ25vc3RpY01lc3Nh
Z2VXaXRoRW5oYW5jZWRQcml2YWN5OjpuYW1lKCkKICAgICAgICAgfHwgZGVjb2Rlci5tZXNzYWdl
TmFtZSgpID09IE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0
aFZhbHVlRGljdGlvbmFyeTo6bmFtZSgpCiAgICAgICAgIHx8IGRlY29kZXIubWVzc2FnZU5hbWUo
KSA9PSBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTZXROZXR3b3JrUmVxdWVzdHNJblByb2dyZXNz
OjpuYW1lKCkKKyAgICAgICAgfHwgZGVjb2Rlci5tZXNzYWdlTmFtZSgpID09IE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OldpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRlbTo6bmFtZSgpCiAjaWYgVVNF
KFFVSUNLX0xPT0spCiAgICAgICAgIHx8IGRlY29kZXIubWVzc2FnZU5hbWUoKSA9PSBNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpEaWRTdGFydExvYWRGb3JRdWlja0xvb2tEb2N1bWVudEluTWFpbkZy
YW1lOjpuYW1lKCkKICAgICAgICAgfHwgZGVjb2Rlci5tZXNzYWdlTmFtZSgpID09IE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OkRpZEZpbmlzaExvYWRGb3JRdWlja0xvb2tEb2N1bWVudEluTWFpbkZy
YW1lOjpuYW1lKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lv
bmFsUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQ
cm94eS5oCmluZGV4IDRlZjJiNzZkNTg3ZTkzY2QwOGU3YzVhNDVjNDg4MGZmZTg1MjNlMzMuLjY0
NTZjMWY5MTZkNTk3NTUwNmMxNTI3OTRhZjJlNmI2NjhjMGJmNmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaApAQCAtNzQsNiArNzQsOCBAQCBw
dWJsaWM6CiAgICAgRHJhd2luZ0FyZWFQcm94eSogZHJhd2luZ0FyZWEoKSBjb25zdCB7IHJldHVy
biBtX2RyYXdpbmdBcmVhLmdldCgpOyB9CiAgICAgc3RkOjp1bmlxdWVfcHRyPERyYXdpbmdBcmVh
UHJveHk+IHRha2VEcmF3aW5nQXJlYSgpOwogCisgICAgdm9pZCBzZXROYXZpZ2F0aW9uSUQodWlu
dDY0X3QgbmF2aWdhdGlvbklEKSB7IG1fbmF2aWdhdGlvbklEID0gbmF2aWdhdGlvbklEOyB9CisK
ICNpZiBQTEFURk9STShDT0NPQSkKICAgICBWZWN0b3I8dWludDhfdD4gdGFrZUFjY2Vzc2liaWxp
dHlUb2tlbigpIHsgcmV0dXJuIFdURk1vdmUobV9hY2Nlc3NpYmlsaXR5VG9rZW4pOyB9CiAjZW5k
aWYKQEAgLTEwNCw3ICsxMDYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkQ3JlYXRlTWFpbkZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQpOwogICAgIHZvaWQgZGlkU3RhcnRQcm92aXNpb25hbExvYWRG
b3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmLCBV
UkwmJiB1bnJlYWNoYWJsZVVSTCwgY29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIGRpZENvbW1p
dExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNv
bnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wgZnJhbWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXIs
IHVpbnQzMl90IGZyYW1lTG9hZFR5cGUsIGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYs
IGJvb2wgY29udGFpbnNQbHVnaW5Eb2N1bWVudCwgT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1
cmVDb250ZW50PiBmb3JjZWRIYXNJbnNlY3VyZUNvbnRlbnQsIGNvbnN0IFVzZXJEYXRhJik7Ci0g
ICAgdm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
Y29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlk
RmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2
aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZUVycm9yJiwgV2ViQ29yZTo6V2lsbENvbnRpbnVlTG9hZGluZywgY29uc3QgVXNlckRh
dGEmKTsKICAgICB2b2lkIHN0YXJ0VVJMU2NoZW1lVGFzayhVUkxTY2hlbWVUYXNrUGFyYW1ldGVy
cyYmKTsKICAgICB2b2lkIGJhY2tGb3J3YXJkR29Ub0l0ZW0oY29uc3QgV2ViQ29yZTo6QmFja0Zv
cndhcmRJdGVtSWRlbnRpZmllciYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU2FuZGJveEV4dGVu
c2lvbjo6SGFuZGxlJiYpPiYmKTsKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb25TeW5jKHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wgaXNNYWluRnJhbWUsIFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGI2N2RjMjIyODE2NzFjZWJkNWQwMDBjMjA0
ZDU1MDY3MzczZjNiNzcuLmZmZWY3YWI3Y2U4N2ZhNmYxYTlkYTgxYjA4Yzc5MmJhMWE5N2ZlZGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMjc2Nyw3ICsy
NzY3LDYgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlY2VpdmVkTmF2aWdhdGlvblBvbGljeURlY2lz
aW9uKFBvbGljeUFjdGlvbiBwb2xpY3lBY3Rpb24sIEEKICAgICBVUkwgc291cmNlVVJMID0gVVJM
IHsgVVJMKCksIHBhZ2VMb2FkU3RhdGUoKS51cmwoKSB9OwogICAgIGlmIChhdXRvKiBwcm92aXNp
b25hbFBhZ2UgPSBwcm92aXNpb25hbFBhZ2VQcm94eSgpKSB7CiAgICAgICAgIGlmIChwcm92aXNp
b25hbFBhZ2UtPm5hdmlnYXRpb25JRCgpID09IG5hdmlnYXRpb24tPm5hdmlnYXRpb25JRCgpKSB7
Ci0gICAgICAgICAgICBBU1NFUlQobmF2aWdhdGlvbi0+Y3VycmVudFJlcXVlc3RJc1JlZGlyZWN0
KCkpOwogICAgICAgICAgICAgc291cmNlUHJvY2VzcyA9IHByb3Zpc2lvbmFsUGFnZS0+cHJvY2Vz
cygpOwogICAgICAgICAgICAgc291cmNlVVJMID0gcHJvdmlzaW9uYWxQYWdlLT5wcm92aXNpb25h
bFVSTCgpOwogICAgICAgICB9CkBAIC00MDI3LDE3ICs0MDI2LDE3IEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjpkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNz
UHJveHk+JiYKICAgICBmcmFtZS0+ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9u
YWxMb2FkKHVybCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxM
b2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBm
cmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYg
cHJvdmlzaW9uYWxVUkwsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBjb25zdCBVc2VyRGF0
YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZv
ckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVT
ZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIHByb3Zp
c2lvbmFsVVJMLCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciwgV2lsbENvbnRpbnVlTG9hZGlu
ZyB3aWxsQ29udGludWVMb2FkaW5nLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAg
aWYgKG1fcHJvdmlzaW9uYWxQYWdlICYmIG1fcHJvdmlzaW9uYWxQYWdlLT5uYXZpZ2F0aW9uSUQo
KSA9PSBuYXZpZ2F0aW9uSUQpIHsKICAgICAgICAgLy8gVGhlIGxvYWQgZGlkIG5vdCBmYWlsLCBp
dCBpcyBtZXJlbHkgaGFwcGVuaW5nIGluIGEgbmV3IHByb3Zpc2lvbmFsIHByb2Nlc3MuCiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKLSAgICBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVT
aGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgZnJhbWVJRCwgZnJhbWVTZWN1cml0eU9yaWdpbiwg
bmF2aWdhdGlvbklELCBwcm92aXNpb25hbFVSTCwgZXJyb3IsIHVzZXJEYXRhKTsKKyAgICBkaWRG
YWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgZnJh
bWVJRCwgZnJhbWVTZWN1cml0eU9yaWdpbiwgbmF2aWdhdGlvbklELCBwcm92aXNpb25hbFVSTCwg
ZXJyb3IsIHdpbGxDb250aW51ZUxvYWRpbmcsIHVzZXJEYXRhKTsKIH0KIAotdm9pZCBXZWJQYWdl
UHJveHk6OmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vz
c1Byb3h5PiYmIHByb2Nlc3MsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2lu
RGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBT
dHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciwgY29uc3Qg
VXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZEZhaWxQcm92aXNpb25h
bExvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIHVpbnQ2
NF90IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdp
biwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBj
b25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciwgV2lsbENvbnRpbnVlTG9hZGluZyB3aWxsQ29udGlu
dWVMb2FkaW5nLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgTE9HKExvYWRpbmcs
ICIoTG9hZGluZykgV2ViUGFnZVByb3h5ICUiIFBSSXU2NCAiIGluIHdlYiBwcm9jZXNzIHBpZCAl
aSBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUgdG8gcHJvdmlzaW9uYWxVUkwgJXMiLCBt
X3BhZ2VJRCwgcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgcHJvdmlzaW9uYWxVUkwudXRm
OCgpLmRhdGEoKSk7CiAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChQcm9jZXNzLCAiZGlkRmFp
bFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0
ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgZG9tYWluID0gJXMsIGNvZGUgPSAlZCIsIHByb2Nl
c3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELCBmcmFtZUlELCBlcnJvci5kb21haW4o
KS51dGY4KCkuZGF0YSgpLCBlcnJvci5lcnJvckNvZGUoKSk7CkBAIC00MDg0LDcgKzQwODMsNyBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVk
KFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcAogICAgIG1fZmFpbGluZ1Byb3Zpc2lvbmFsTG9hZFVS
TCA9IHsgfTsKIAogICAgIC8vIElmIHRoZSBwcm92aXNpb25hbCBwYWdlJ3MgbG9hZCBmYWlscyB0
aGVuIHdlIGRlc3Ryb3kgdGhlIHByb3Zpc2lvbmFsIHBhZ2UuCi0gICAgaWYgKG1fcHJvdmlzaW9u
YWxQYWdlICYmIG1fcHJvdmlzaW9uYWxQYWdlLT5tYWluRnJhbWUoKSA9PSBmcmFtZSkKKyAgICBp
ZiAobV9wcm92aXNpb25hbFBhZ2UgJiYgbV9wcm92aXNpb25hbFBhZ2UtPm1haW5GcmFtZSgpID09
IGZyYW1lICYmIHdpbGxDb250aW51ZUxvYWRpbmcgPT0gV2lsbENvbnRpbnVlTG9hZGluZzo6Tm8p
CiAgICAgICAgIG1fcHJvdmlzaW9uYWxQYWdlID0gbnVsbHB0cjsKIH0KIApAQCAtNDU2OSw3ICs0
NTY4LDEyIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzCiAgICAgICAgICAgICBuYXZpZ2F0aW9u
ID0gbV9uYXZpZ2F0aW9uU3RhdGUtPmNyZWF0ZUxvYWRSZXF1ZXN0TmF2aWdhdGlvbihSZXNvdXJj
ZVJlcXVlc3QocmVxdWVzdCksIG1fYmFja0ZvcndhcmRMaXN0LT5jdXJyZW50SXRlbSgpKTsKICAg
ICB9CiAKLSAgICB1aW50NjRfdCBuZXdOYXZpZ2F0aW9uSUQgPSBuYXZpZ2F0aW9uLT5uYXZpZ2F0
aW9uSUQoKTsKKyAgICBuYXZpZ2F0aW9uSUQgPSBuYXZpZ2F0aW9uLT5uYXZpZ2F0aW9uSUQoKTsK
KworICAgIC8vIE1ha2Ugc3VyZSB0aGUgcHJvdmlzaW9uYWwgcGFnZSBhbHdheXMgaGFzIHRoZSBs
YXRlc3QgbmF2aWdhdGlvbklELgorICAgIGlmIChtX3Byb3Zpc2lvbmFsUGFnZSAmJiAmbV9wcm92
aXNpb25hbFBhZ2UtPnByb2Nlc3MoKSA9PSBwcm9jZXNzLnB0cigpKQorICAgICAgICBtX3Byb3Zp
c2lvbmFsUGFnZS0+c2V0TmF2aWdhdGlvbklEKG5hdmlnYXRpb25JRCk7CisKICAgICBuYXZpZ2F0
aW9uLT5zZXRDdXJyZW50UmVxdWVzdChSZXNvdXJjZVJlcXVlc3QocmVxdWVzdCksIHByb2Nlc3Mt
PmNvcmVQcm9jZXNzSWRlbnRpZmllcigpKTsKICAgICBuYXZpZ2F0aW9uLT5zZXRMYXN0TmF2aWdh
dGlvbkFjdGlvbihuYXZpZ2F0aW9uQWN0aW9uRGF0YSk7CiAgICAgbmF2aWdhdGlvbi0+c2V0T3Jp
Z2luYXRpbmdGcmFtZUluZm8ob3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhKTsKQEAgLTQ1NzcsOSAr
NDU4MSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzCiAKICNpZiBFTkFCTEUoQ09OVEVOVF9G
SUxURVJJTkcpCiAgICAgaWYgKGZyYW1lLmRpZEhhbmRsZUNvbnRlbnRGaWx0ZXJVbmJsb2NrTmF2
aWdhdGlvbihyZXF1ZXN0KSkKLSAgICAgICAgcmV0dXJuIHJlY2VpdmVkUG9saWN5RGVjaXNpb24o
UG9saWN5QWN0aW9uOjpJZ25vcmUsIG1fbmF2aWdhdGlvblN0YXRlLT5uYXZpZ2F0aW9uKG5ld05h
dmlnYXRpb25JRCksIFdURjo6bnVsbG9wdCwgV1RGTW92ZShzZW5kZXIpKTsKLSNlbHNlCi0gICAg
VU5VU0VEX1BBUkFNKG5ld05hdmlnYXRpb25JRCk7CisgICAgICAgIHJldHVybiByZWNlaXZlZFBv
bGljeURlY2lzaW9uKFBvbGljeUFjdGlvbjo6SWdub3JlLCBtX25hdmlnYXRpb25TdGF0ZS0+bmF2
aWdhdGlvbihuYXZpZ2F0aW9uSUQpLCBXVEY6Om51bGxvcHQsIFdURk1vdmUoc2VuZGVyKSk7CiAj
ZW5kaWYKIAogICAgIFNob3VsZEV4cGVjdFNhZmVCcm93c2luZ1Jlc3VsdCBzaG91bGRFeHBlY3RT
YWZlQnJvd3NpbmdSZXN1bHQgPSBTaG91bGRFeHBlY3RTYWZlQnJvd3NpbmdSZXN1bHQ6OlllczsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggMzU3ZGMxYjViMjkwNTZl
YjAxZDdlMWIxNmE2OTk1YmUyYzkwYWJiZS4uYjI4NzkxZjliN2UxNzlhYjM0NWE5MDE2NzAxZTUw
ZWY2YmY5ODhjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTE0
ODMsNyArMTQ4Myw3IEBAIHB1YmxpYzoKIAogICAgIC8vIExvZ2ljIHNoYXJlZCBiZXR3ZWVuIHRo
ZSBXZWJQYWdlUHJveHkgYW5kIHRoZSBQcm92aXNpb25hbFBhZ2VQcm94eS4KICAgICB2b2lkIGRp
ZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4m
JiwgdWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJiwgVVJMJiYg
dW5yZWFjaGFibGVVUkwsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRGYWlsUHJvdmlz
aW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgdWludDY0X3Qg
ZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5
T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxV
UkwsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBjb25zdCBVc2VyRGF0YSYpOworICAg
IHZvaWQgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNz
UHJveHk+JiYsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBT
dHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgV2Vi
Q29yZTo6V2lsbENvbnRpbnVlTG9hZGluZywgY29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIGRp
ZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKFJl
ZjxXZWJQcm9jZXNzUHJveHk+JiYsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAg
dm9pZCBkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3RTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4m
JiwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRp
b25VUkxTdHJpbmcsIHVpbnQ2NF90IGZyYW1lSUQpOwogICAgIHZvaWQgZGlkUGVyZm9ybUNsaWVu
dFJlZGlyZWN0U2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIGNvbnN0IFN0cmluZyYgc291
cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCB1aW50NjRf
dCBmcmFtZUlEKTsKQEAgLTE1ODUsNyArMTU4NSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCB3aWxs
UGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3Ry
aW5nJiB1cmwsIGRvdWJsZSBkZWxheSwgV2ViQ29yZTo6TG9ja0JhY2tGb3J3YXJkTGlzdCk7CiAg
ICAgdm9pZCBkaWRDYW5jZWxDbGllbnRSZWRpcmVjdEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQp
OwogICAgIHZvaWQgZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZSh1aW50NjRfdCBmcmFt
ZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmKTsKLSAgICB2b2lkIGRpZEZhaWxQcm92
aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25J
RCwgY29uc3QgU3RyaW5nJiBwcm92aXNpb25hbFVSTCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VF
cnJvciYsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxMb2Fk
Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0
cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBXZWJD
b3JlOjpXaWxsQ29udGludWVMb2FkaW5nLCBjb25zdCBVc2VyRGF0YSYpOwogICAgIHZvaWQgZGlk
Q29tbWl0TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25J
RCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBmcmFtZUhhc0N1c3RvbUNvbnRlbnRQcm92
aWRlciwgdWludDMyX3QgZnJhbWVMb2FkVHlwZSwgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJ
bmZvJiwgYm9vbCBjb250YWluc1BsdWdpbkRvY3VtZW50LCBPcHRpb25hbDxXZWJDb3JlOjpIYXNJ
bnNlY3VyZUNvbnRlbnQ+IGZvcmNlZEhhc0luc2VjdXJlQ29udGVudCwgY29uc3QgVXNlckRhdGEm
KTsKICAgICB2b2lkIGRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1l
SUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIGRp
ZEZpbmlzaExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9u
SUQsIGNvbnN0IFVzZXJEYXRhJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggMWQ0NGM2YTRiNTFhODI1NGVjNjdlZGU2ODU5MDYz
MzdjODgwY2NjZS4uYjBiNDVjYmU1YzI4ZjM3NWY1ZmIwM2ZhYmM2OTNiN2MxMGI0OTA5NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpA
QCAtMTI3LDcgKzEyNyw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgV2lsbFBl
cmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyB1cmws
IGRvdWJsZSBkZWxheSwgZW51bTpib29sIFdlYkNvcmU6OkxvY2tCYWNrRm9yd2FyZExpc3QgbG9j
a0JhY2tGb3J3YXJkTGlzdCkKICAgICBEaWRDYW5jZWxDbGllbnRSZWRpcmVjdEZvckZyYW1lKHVp
bnQ2NF90IGZyYW1lSUQpCiAgICAgRGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZSh1aW50
NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCB1cmwpCi0gICAgRGlkRmFp
bFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdh
dGlvbklELCBTdHJpbmcgcHJvdmlzaW9uYWxVUkwsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJy
b3IsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCisgICAgRGlkRmFpbFByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBTdHJpbmcg
cHJvdmlzaW9uYWxVUkwsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IsIGVudW06Ym9vbCBX
ZWJDb3JlOjpXaWxsQ29udGludWVMb2FkaW5nIHdpbGxDb250aW51ZUxvYWRpbmcsIFdlYktpdDo6
VXNlckRhdGEgdXNlckRhdGEpCiAgICAgRGlkQ29tbWl0TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZy
YW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgU3RyaW5nIG1pbWVUeXBlLCBib29sIGhhc0N1
c3RvbUNvbnRlbnRQcm92aWRlciwgdWludDMyX3QgbG9hZFR5cGUsIFdlYkNvcmU6OkNlcnRpZmlj
YXRlSW5mbyBjZXJ0aWZpY2F0ZUluZm8sIGJvb2wgY29udGFpbnNQbHVnaW5Eb2N1bWVudCwgT3B0
aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50PiBmb3JjZWRIYXNJbnNlY3VyZUNvbnRl
bnQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCiAgICAgRGlkRmFpbExvYWRGb3JGcmFtZSh1
aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNl
RXJyb3IgZXJyb3IsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCiAgICAgRGlkRmluaXNoRG9j
dW1lbnRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5j
cHAKaW5kZXggNGFjOWRiNjM4ZTU5NmNjNDhlYjIzNzg5YTI5MjVlZGQ5ZTFkNjU4OC4uYzQ5YmIx
YmE0M2NiMWEyMmMxNWI3NzYxODNmYTI0NjY0MjE5MGVjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuY3BwCkBAIC01MzUsNyArNTM1LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVu
dDo6ZGlzcGF0Y2hEaWRDb21taXRMb2FkKE9wdGlvbmFsPEhhc0luc2VjdXJlQ29udGVudD4gaGEK
ICAgICB3ZWJQYWdlLT5kaWRDb21taXRMb2FkKG1fZnJhbWUpOwogfQogCi12b2lkIFdlYkZyYW1l
TG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQoY29uc3QgUmVzb3Vy
Y2VFcnJvciYgZXJyb3IpCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZh
aWxQcm92aXNpb25hbExvYWQoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IsIFdpbGxDb250aW51
ZUxvYWRpbmcgd2lsbENvbnRpbnVlTG9hZGluZykKIHsKICAgICBXZWJQYWdlKiB3ZWJQYWdlID0g
bV9mcmFtZS0+cGFnZSgpOwogICAgIGlmICghd2ViUGFnZSkKQEAgLTU2NCw3ICs1NjQsNyBAQCB2
b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQo
Y29uc3QgUmVzb3VyY2VFcnJvciYgZQogCiAgICAgLy8gTm90aWZ5IHRoZSBVSVByb2Nlc3MuCiAg
ICAgV2ViQ29yZTo6RnJhbWUqIGNvcmVGcmFtZSA9IG1fZnJhbWUgPyBtX2ZyYW1lLT5jb3JlRnJh
bWUoKSA6IG51bGxwdHI7Ci0gICAgd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpEaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUobV9mcmFtZS0+ZnJhbWVJRCgpLCBTZWN1
cml0eU9yaWdpbkRhdGE6OmZyb21GcmFtZShjb3JlRnJhbWUpLCBuYXZpZ2F0aW9uSUQsIG1fZnJh
bWUtPmNvcmVGcmFtZSgpLT5sb2FkZXIoKS5wcm92aXNpb25hbExvYWRFcnJvckJlaW5nSGFuZGxl
ZFVSTCgpLCBlcnJvciwgVXNlckRhdGEoV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkudHJhbnNmb3Jt
T2JqZWN0c1RvSGFuZGxlcyh1c2VyRGF0YS5nZXQoKSkuZ2V0KCkpKSk7CisgICAgd2ViUGFnZS0+
c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJh
bWUobV9mcmFtZS0+ZnJhbWVJRCgpLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21GcmFtZShjb3Jl
RnJhbWUpLCBuYXZpZ2F0aW9uSUQsIG1fZnJhbWUtPmNvcmVGcmFtZSgpLT5sb2FkZXIoKS5wcm92
aXNpb25hbExvYWRFcnJvckJlaW5nSGFuZGxlZFVSTCgpLCBlcnJvciwgd2lsbENvbnRpbnVlTG9h
ZGluZywgVXNlckRhdGEoV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkudHJhbnNmb3JtT2JqZWN0c1Rv
SGFuZGxlcyh1c2VyRGF0YS5nZXQoKSkuZ2V0KCkpKSk7CiAKICAgICAvLyBJZiB3ZSBoYXZlIGEg
bG9hZCBsaXN0ZW5lciwgbm90aWZ5IGl0LgogICAgIGlmIChXZWJGcmFtZTo6TG9hZExpc3RlbmVy
KiBsb2FkTGlzdGVuZXIgPSBtX2ZyYW1lLT5sb2FkTGlzdGVuZXIoKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmgKaW5kZXggY2I0ZmY1YzE5NWNjZDA4YjcwNDljZWIyOTk0ODhhOGU1ZjFjOTBk
Yi4uZjczYWI4Y2E3M2YxNzhiZjI2OGZmMmI4NDFjNDUxY2RkNDk4ZmFhMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmgKQEAgLTExMiw3ICsxMTIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQg
ZGlzcGF0Y2hEaWRTdGFydFByb3Zpc2lvbmFsTG9hZCgpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0
Y2hEaWRSZWNlaXZlVGl0bGUoY29uc3QgV2ViQ29yZTo6U3RyaW5nV2l0aERpcmVjdGlvbiYpIGZp
bmFsOwogICAgIHZvaWQgZGlzcGF0Y2hEaWRDb21taXRMb2FkKE9wdGlvbmFsPFdlYkNvcmU6Okhh
c0luc2VjdXJlQ29udGVudD4pIGZpbmFsOwotICAgIHZvaWQgZGlzcGF0Y2hEaWRGYWlsUHJvdmlz
aW9uYWxMb2FkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKSBmaW5hbDsKKyAgICB2b2lk
IGRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVy
cm9yJiwgV2ViQ29yZTo6V2lsbENvbnRpbnVlTG9hZGluZykgZmluYWw7CiAgICAgdm9pZCBkaXNw
YXRjaERpZEZhaWxMb2FkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKSBmaW5hbDsKICAg
ICB2b2lkIGRpc3BhdGNoRGlkRmluaXNoRG9jdW1lbnRMb2FkKCkgZmluYWw7CiAgICAgdm9pZCBk
aXNwYXRjaERpZEZpbmlzaExvYWQoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmlu
ZGV4IGI1N2FjMWY1YjE2YWI3OGZiODM0NzhhZjAxYzQ0MWJkYTIzMjc3MzAuLjEzODU1ODNhZjI5
ZDE3NDQxM2Q1MDU3OTVhZmE5NWI1Yzg4OTY2YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
aApAQCAtMTE3LDcgKzExNyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaXNwYXRjaERpZFN0YXJ0
UHJvdmlzaW9uYWxMb2FkKCkgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERpZFJlY2VpdmVUaXRs
ZShjb25zdCBXZWJDb3JlOjpTdHJpbmdXaXRoRGlyZWN0aW9uJikgZmluYWw7CiAgICAgdm9pZCBk
aXNwYXRjaERpZENvbW1pdExvYWQoT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50
PikgZmluYWw7Ci0gICAgdm9pZCBkaXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQoY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpIGZpbmFsOworICAgIHZvaWQgZGlzcGF0Y2hEaWRGYWls
UHJvdmlzaW9uYWxMb2FkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBXZWJDb3JlOjpX
aWxsQ29udGludWVMb2FkaW5nKSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoRGlkRmFpbExvYWQo
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hE
aWRGaW5pc2hEb2N1bWVudExvYWQoKSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoRGlkRmluaXNo
TG9hZCgpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQppbmRleCA0Yjk0MjE3Mjk5
NzE3NjdkNTAyMjY0MzQ3OTZiMDVjMjg4NjcwM2EzLi43Zjg2OWYxZGRjYjlhMTkwODBhYWIyMDA1
ZjliZjczMmFlODdkZGRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQpAQCAtNzI0LDcg
KzcyNCw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkQ29tbWl0TG9h
ZChPcHRpb25hbDxIYXNJbnNlY3VyZUNvbnRlbnQ+KQogICAgICAgICBDYWxsRnJhbWVMb2FkRGVs
ZWdhdGUoaW1wbGVtZW50YXRpb25zLT5kaWRDb21taXRMb2FkRm9yRnJhbWVGdW5jLCB3ZWJWaWV3
LCBAc2VsZWN0b3Iod2ViVmlldzpkaWRDb21taXRMb2FkRm9yRnJhbWU6KSwgbV93ZWJGcmFtZS5n
ZXQoKSk7CiB9CiAKLXZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbFBy
b3Zpc2lvbmFsTG9hZChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKK3ZvaWQgV2ViRnJhbWVM
b2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZChjb25zdCBSZXNvdXJj
ZUVycm9yJiBlcnJvciwgV2lsbENvbnRpbnVlTG9hZGluZykKIHsKICAgICBtX3dlYkZyYW1lLT5f
cHJpdmF0ZS0+cHJvdmlzaW9uYWxVUkwgPSBudWxscHRyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5jcHAKaW5kZXggZDBkNjZkMTU5YjVlNWRjZmQ3YTYxYzQ1YWI4NTQxNTZlMmE2ZTYxNi4u
NWM1ODEzZjkxYzFlZDA4N2M3ZDgyNDYxNDRhNmU1YmVlZDkwNDgwNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmNwcApAQCAtNDQ1LDcgKzQ0NSw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJD
bGllbnQ6OmRpc3BhdGNoRGlkQ29tbWl0TG9hZChPcHRpb25hbDxIYXNJbnNlY3VyZUNvbnRlbnQ+
KQogICAgICAgICBmcmFtZUxvYWREZWxlZ2F0ZS0+ZGlkQ29tbWl0TG9hZEZvckZyYW1lKHdlYlZp
ZXcsIG1fd2ViRnJhbWUpOwogfQogCi12b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRj
aERpZEZhaWxQcm92aXNpb25hbExvYWQoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCit2b2lk
IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQoY29u
c3QgUmVzb3VyY2VFcnJvciYgZXJyb3IsIFdpbGxDb250aW51ZUxvYWRpbmcpCiB7CiAgICAgV2Vi
Vmlldyogd2ViVmlldyA9IG1fd2ViRnJhbWUtPndlYlZpZXcoKTsKICAgICBDT01QdHI8SVdlYkZy
YW1lTG9hZERlbGVnYXRlPiBmcmFtZUxvYWREZWxlZ2F0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5oCmluZGV4IDU3ZTRiYmFiYWVhMjY4ZTIyMjJhMTZmMGZmMGEzM2U0MWJkYzMxMDAuLjMyMmMw
OTAwNWFhNWVlNTczYjRkNzAyZDZlMWRiMjUwNjA1ZDFiNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuaApAQCAtOTQsNyArOTQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaXNwYXRjaERpZFN0
YXJ0UHJvdmlzaW9uYWxMb2FkKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaXNwYXRjaERpZFJlY2Vp
dmVUaXRsZShjb25zdCBXZWJDb3JlOjpTdHJpbmdXaXRoRGlyZWN0aW9uJikgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBkaXNwYXRjaERpZENvbW1pdExvYWQoT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1
cmVDb250ZW50Pikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaXNwYXRjaERpZEZhaWxQcm92aXNpb25h
bExvYWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpIG92ZXJyaWRlOworICAgIHZvaWQg
ZGlzcGF0Y2hEaWRGYWlsUHJvdmlzaW9uYWxMb2FkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJy
b3ImLCBXZWJDb3JlOjpXaWxsQ29udGludWVMb2FkaW5nKSBvdmVycmlkZTsKICAgICB2b2lkIGRp
c3BhdGNoRGlkRmFpbExvYWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpIG92ZXJyaWRl
OwogICAgIHZvaWQgZGlzcGF0Y2hEaWRGaW5pc2hEb2N1bWVudExvYWQoKSBvdmVycmlkZTsKICAg
ICB2b2lkIGRpc3BhdGNoRGlkRmluaXNoTG9hZCgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGEwZGU3ZTlmMmNjNDU0ZmJjYjZj
ZGMwZDcyN2MwNDRmYzIyZGNkY2MuLmRjZmUwYWM1ODY1YTg3NTliODdlYmY3YWEyZjY5MWYyODhl
MmY2ZGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNiBAQAorMjAxOS0wNC0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgorCisgICAgICAgIFtQcm9jZXNzLVN3YXAtT24tTmF2aWdhdGlvbl0gV2ViS2l0IGhhbmdz
IHdoZW4gZ29pbmcgYmFjayB0byBhIGZvcm0gc3VibWlzc2lvbidzIHBhZ2UgZHVlIHRvIFByb2Nl
c3MtU3dhcC1Pbi1OYXZpZ2F0aW9uIG9uIGlPUyAxMi4yIGFuZCBoaWdoZXIKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NzA5NworICAgICAgICA8cmRh
cjovL3Byb2JsZW0vNTAwNDgzMTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkIEFQSSB0ZXN0IGNvdmVyYWdlLgorCisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbToKKyAg
ICAgICAgKC1bUFNPTlNjaGVtZSB3ZWJWaWV3OnN0YXJ0VVJMU2NoZW1lVGFzazpdKToKKwogMjAx
OS0wNC0yMiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgUkVHUkVTU0lPTihyMjQxMjg5KTogW0dUS10gYWNjZXNzaWJpbGl0eS9yZW1vdmVkLWNv
bnRpbnVhdGlvbi1lbGVtZW50LWNhdXNlcy1jcmFzaC5odG1sIGFuZCBhY2Nlc3NpYmlsaXR5L3Jl
bW92ZWQtYW5vbnltb3VzLWJsb2NrLWNoaWxkLWNhdXNlcy1jcmFzaC5odG1sIGNyYXNoZXMKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3
YXBPbk5hdmlnYXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCmluZGV4IGZjNGZhNmExZGM1NDczZDk0OTQ1NWJk
OTUxNmZlYjFlMzI5MTFiNWQuLmNmOWVhMTdmNjg4ZjMyNzg2OTMwZGI2MGU0NGQyMDljZjQ3Mjlj
MDkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJv
Y2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQpAQCAtMjc2LDYgKzI3NiwxMSBA
QCAtICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc3RhcnRVUkxTY2hlbWVUYXNr
OihpZCA8V0tVUkxTY2hlbWVUYXNrPil0YQogICAgICAgICBbKGlkPFdLVVJMU2NoZW1lVGFza1By
aXZhdGU+KXRhc2sgX2RpZFBlcmZvcm1SZWRpcmVjdGlvbjpyZWRpcmVjdFJlc3BvbnNlLmdldCgp
IG5ld1JlcXVlc3Q6cmVxdWVzdC5nZXQoKV07CiAgICAgfQogCisgICAgaWYgKFsoaWQ8V0tVUkxT
Y2hlbWVUYXNrUHJpdmF0ZT4pdGFzayBfb25seUlmQ2FjaGVkXSkgeworICAgICAgICBbdGFzayBk
aWRGYWlsV2l0aEVycm9yOltOU0Vycm9yIGVycm9yV2l0aERvbWFpbjpAIlRlc3RXZWJLaXRBUEki
IGNvZGU6MSB1c2VySW5mbzpuaWxdXTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIFJl
dGFpblB0cjxOU1VSTFJlc3BvbnNlPiByZXNwb25zZSA9IGFkb3B0TlMoW1tOU1VSTFJlc3BvbnNl
IGFsbG9jXSBpbml0V2l0aFVSTDpmaW5hbFVSTCBNSU1FVHlwZTpAInRleHQvaHRtbCIgZXhwZWN0
ZWRDb250ZW50TGVuZ3RoOjEgdGV4dEVuY29kaW5nTmFtZTpuaWxdKTsKICAgICBbdGFzayBkaWRS
ZWNlaXZlUmVzcG9uc2U6cmVzcG9uc2UuZ2V0KCldOwogCkBAIC00Mjc4LDYgKzQyODMsNjcgQEAg
VEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGVUb0Nyb3NzU2l0ZVRoZW5CYWNrRnJvbUpTKQogICAg
IEVYUEVDVF9ORShhcHBsZVBJRCwgW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXSk7CiB9
CiAKK3N0YXRpYyBjb25zdCBjaGFyKiBjcm9zc1NpdGVGb3JtU3VibWlzc2lvbkJ5dGVzID0gUiJQ
U09OUkVTT1VSQ0UoCis8Ym9keT4KKzxmb3JtIGFjdGlvbj0icHNvbjovL3d3dy5hcHBsZS5jb20v
bWFpbi5odG1sIiBtZXRob2Q9InBvc3QiPgorTmFtZTogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9
Im5hbWUiIHBsYWNlaG9sZGVyPSJOYW1lIj4KKzxpbnB1dCBpZD0ic3VibWl0QnV0dG9uIiB0eXBl
PSJzdWJtaXQiPgorPC9mb3JtPgorPC9ib2R5PgorKVBTT05SRVNPVVJDRSI7CisKK1RFU1QoUHJv
Y2Vzc1N3YXAsIFN3YXBPbkZvcm1TdWJtaXNzaW9uKQoreworICAgIGF1dG8gcHJvY2Vzc1Bvb2xD
b25maWd1cmF0aW9uID0gcHNvblByb2Nlc3NQb29sQ29uZmlndXJhdGlvbigpOworICAgIGF1dG8g
cHJvY2Vzc1Bvb2wgPSBhZG9wdE5TKFtbV0tQcm9jZXNzUG9vbCBhbGxvY10gX2luaXRXaXRoQ29u
ZmlndXJhdGlvbjpwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKworICAgIGF1dG8g
d2ViVmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBh
bGxvY10gaW5pdF0pOworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRQcm9jZXNzUG9vbDpw
cm9jZXNzUG9vbC5nZXQoKV07CisgICAgYXV0byBoYW5kbGVyID0gYWRvcHROUyhbW1BTT05TY2hl
bWUgYWxsb2NdIGluaXRdKTsKKyAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpA
InBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiIHRvRGF0YTpjcm9zc1NpdGVGb3JtU3Vi
bWlzc2lvbkJ5dGVzXTsKKyAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0VVJMU2NoZW1lSGFu
ZGxlcjpoYW5kbGVyLmdldCgpIGZvclVSTFNjaGVtZTpAIlBTT04iXTsKKworICAgIGF1dG8gd2Vi
VmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVj
dCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjp3ZWJWaWV3Q29uZmlndXJhdGlvbi5nZXQo
KV0pOworICAgIGF1dG8gbmF2aWdhdGlvbkRlbGVnYXRlID0gYWRvcHROUyhbW1BTT05OYXZpZ2F0
aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICBbd2ViVmlldyBzZXROYXZpZ2F0aW9uRGVs
ZWdhdGU6bmF2aWdhdGlvbkRlbGVnYXRlLmdldCgpXTsKKworICAgIFt3ZWJWaWV3IGxvYWRSZXF1
ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJw
c29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIl1dXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmRvbmUpOworICAgIGRvbmUgPSBmYWxzZTsKKyAgICBhdXRvIHdlYmtpdFBJRCA9
IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CisgICAgRVhQRUNUX1dLX1NUUkVRKEAi
cHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCIsIFtbd2ViVmlldyBVUkxdIGFic29sdXRl
U3RyaW5nXSk7CisKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJzdWJtaXRCdXR0
b24uY2xpY2soKSIgY29tcGxldGlvbkhhbmRsZXI6bmlsXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmRvbmUpOworICAgIGRvbmUgPSBmYWxzZTsKKyAgICBhdXRvIGFwcGxlUElEID0g
W3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKKyAgICBFWFBFQ1RfTkUod2Via2l0UElE
LCBhcHBsZVBJRCk7CisgICAgRVhQRUNUX1dLX1NUUkVRKEAicHNvbjovL3d3dy5hcHBsZS5jb20v
bWFpbi5odG1sIiwgW1t3ZWJWaWV3IFVSTF0gYWJzb2x1dGVTdHJpbmddKTsKKworICAgIFt3ZWJW
aWV3IHJlbG9hZF07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBk
b25lID0gZmFsc2U7CisgICAgRVhQRUNUX0VRKGFwcGxlUElELCBbd2ViVmlldyBfd2ViUHJvY2Vz
c0lkZW50aWZpZXJdKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoQCJwc29uOi8vd3d3LmFwcGxlLmNv
bS9tYWluLmh0bWwiLCBbW3dlYlZpZXcgVVJMXSBhYnNvbHV0ZVN0cmluZ10pOworCisgICAgW3dl
YlZpZXcgZ29CYWNrXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAg
IGRvbmUgPSBmYWxzZTsKKyAgICBFWFBFQ1RfRVEod2Via2l0UElELCBbd2ViVmlldyBfd2ViUHJv
Y2Vzc0lkZW50aWZpZXJdKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoQCJwc29uOi8vd3d3LndlYmtp
dC5vcmcvbWFpbi5odG1sIiwgW1t3ZWJWaWV3IFVSTF0gYWJzb2x1dGVTdHJpbmddKTsKKworICAg
IFt3ZWJWaWV3IGdvRm9yd2FyZF07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25l
KTsKKyAgICBkb25lID0gZmFsc2U7CisgICAgRVhQRUNUX0VRKGFwcGxlUElELCBbd2ViVmlldyBf
d2ViUHJvY2Vzc0lkZW50aWZpZXJdKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoQCJwc29uOi8vd3d3
LmFwcGxlLmNvbS9tYWluLmh0bWwiLCBbW3dlYlZpZXcgVVJMXSBhYnNvbHV0ZVN0cmluZ10pOwor
CisgICAgW3dlYlZpZXcgZ29CYWNrXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRv
bmUpOworICAgIGRvbmUgPSBmYWxzZTsKKyAgICBFWFBFQ1RfRVEod2Via2l0UElELCBbd2ViVmll
dyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoQCJwc29uOi8v
d3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIiwgW1t3ZWJWaWV3IFVSTF0gYWJzb2x1dGVTdHJpbmdd
KTsKK30KIAogVEVTVChQcm9jZXNzU3dhcCwgQ2xvc2VQYWdlQWZ0ZXJDcm9zc1NpdGVQcm92aXNp
b25hbExvYWQpCiB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>367968</attachid>
            <date>2019-04-22 13:40:04 -0700</date>
            <delta_ts>2019-04-22 14:55:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-197097-20190422134004.patch</filename>
            <type>text/plain</type>
            <size>39669</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ0NTAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzUyZGVlMGQwZTRkYTE0
MWZiNjlhNmNkOWVlMDdhZTNjOGUwMTc4OS4uN2RiYTBhOWIzYmY5ODM5YzYxNDdkZDUwOGVjYzQy
MzVlMzRmNzQyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE5LTA0LTIyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1Byb2Nlc3MtU3dhcC1Pbi1O
YXZpZ2F0aW9uXSBXZWJLaXQgaGFuZ3Mgd2hlbiBnb2luZyBiYWNrIHRvIGEgZm9ybSBzdWJtaXNz
aW9uJ3MgcGFnZSBkdWUgdG8gUHJvY2Vzcy1Td2FwLU9uLU5hdmlnYXRpb24gb24gaU9TIDEyLjIg
YW5kIGhpZ2hlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTk3MDk3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81MDA0ODMxOD4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGxvYWRlci9FbXB0eUZyYW1l
TG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpjaGVja0xvYWRDb21wbGV0ZUZvclRoaXNGcmFtZSk6
CisgICAgICAgIElmIHdlIHN0aWxsIGhhdmUgYSBwcm92aXNpb25hbCBpdGVtIChuZXcgbG9hZCBo
YXMgYmVlbiBzdGFydGVkIG9yIHdlIGRpZCBub3QgY2xlYXIgaXQgYmVjYXVzZSB3ZSdyZSBhYm91
dCB0byByZXRyeSksCisgICAgICAgIHRoZW4gbGV0IHRoZSBjbGllbnQga25vdyB0aGUgbG9hZCB3
aWxsIGNvbnRpbnVlIGJ5IHBhc3NpbmcgYW4gZXh0cmEgZmxhZyB3aXRoIHRoZSBkaWRGYWlsUHJv
dmlzaW9uYWxMb2FkLgorCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50Lmg6Cisg
ICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaDoKKwogMjAxOS0wNC0yMiAgQ29tbWl0
IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwg
cm9sbGluZyBvdXQgcjI0NDQ5NS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMjk1YjkzMDUwYjhiMjRhNDAxMWUxY2Ux
ZmIwODRhM2ZiN2M4MTYzOC4uZTkwZDgwMjcwOGM5ZWJkNmI5MzczODBiY2M4ZTc3MjAyNTNkYzU5
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MCBAQAorMjAxOS0wNC0yMiAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFtQcm9jZXNzLVN3YXAtT24tTmF2aWdhdGlvbl0g
V2ViS2l0IGhhbmdzIHdoZW4gZ29pbmcgYmFjayB0byBhIGZvcm0gc3VibWlzc2lvbidzIHBhZ2Ug
ZHVlIHRvIFByb2Nlc3MtU3dhcC1Pbi1OYXZpZ2F0aW9uIG9uIGlPUyAxMi4yIGFuZCBoaWdoZXIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NzA5Nwor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTAwNDgzMTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGlzc3VlIGlzIHRoYXQgd2hlbiBkb2luZyBh
IGhpc3RvcnkgbmF2aWdhdGlvbiB3aXRoIGZvcm0gZGF0YSwgd2UgdHJ5IHRvIHJlc3VibWl0IHRo
ZSBmb3JtLgorICAgICAgICBXZSBpbml0aWFsbHkgdXNlIHRoZSBSZXR1cm5DYWNoZURhdGFEb250
TG9hZCBjYWNoZSBwb2xpY3kgd2l0aG91dCBwcm9tcHRpbmcgdGhlIHVzZXIgdG8gZ2V0CisgICAg
ICAgIGNhY2hlZCBkYXRhLiBJZiB0aGlzIGZhaWxzLCB3ZSBzZW50IGEgRGlkRmFpbFByb3Zpc2lv
bmFsTG9hZEZvckZyYW1lIElQQyB0byB0aGUgVUlQcm9jZXNzIGJ1dAorICAgICAgICB0aGUgV2Vi
Q29udGVudCBwcm9jZXNzIGFjdHVhbGx5IHJldHJpZXMgdGhlIGxvYWQgd2l0aCBSZXR1cm5DYWNo
ZURhdGFFbHNlTG9hZCBjYWNoZSBwb2xpY3kuCisgICAgICAgIFRoaXMgbmV3IGxvYWQgdHJpZ2dl
cnMgYSBuZXcgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbi4KKworICAgICAgICBUaGlz
IHdvdWxkIGNhdXNlIHRyb3VibGUgd2l0aCBwcm9jZXNzLXN3YXBwaW5nIGJlY2F1c2Ugd2Ugbm9y
bWFsbHkgZGVzdHJveSB0aGUKKyAgICAgICAgUHJvdmlzaW9uYWxQYWdlUHJveHkgYXMgc29vbiBh
cyB3ZSByZWNlaXZlIGEgRGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lIElQQyBmcm9tIHRo
ZQorICAgICAgICBwcm92aXNpb25hbCBwcm9jZXNzLiBBcyBhIHJlc3VsdCwgdGhlIHByb3Zpc2lv
bmFsIHByb2Nlc3Mgd291bGQgbm90IGJlIGFibGUgdG8gcmV0cnkuCisKKyAgICAgICAgVG8gYWRk
cmVzcyB0aGUgaXNzdWUsIHdlIGFkZCBwYXNzIGEgZmxhZyB3aXRoIHRoZSBEaWRGYWlsUHJvdmlz
aW9uYWxMb2FkRm9yRnJhbWUgSVBDIHRvCisgICAgICAgIGlmIHRoZSBsb2FkIHdpbGwgY29udGlu
dWUgb3Igbm90LiBXaGVuIHRoaXMgZmxhZyBpcyBzZXQsIHRoZSBVSVByb2Nlc3MgZG9lcyBub3Qg
ZGVzdHJveQorICAgICAgICB0aGUgcHJvdmlzaW9uYWwgcGFnZS4KKworICAgICAgICAqIFNjcmlw
dHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICBNaW5vciBJUEMgbWVzc2FnZSBoYW5kbGVy
IGJ1aWxkIGZpeC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVUkxTY2hlbWVU
YXNrLm1tOgorICAgICAgICAoLVtXS1VSTFNjaGVtZVRhc2tJbXBsIF9vbmx5SWZDYWNoZWRdKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLVVJMU2NoZW1lVGFza1ByaXZhdGUuaDoK
KyAgICAgICAgQWRkIG5ldyBfb25seUlmQ2FjaGVkIFNQSSB0byBXS1VSTFNjaGVtZVRhc2tQcml2
YXRlIHRvIGFsbG93IGZvciBBUEkgdGVzdGluZy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Qcm92
aXNpb25hbFBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVBy
b3h5OjpjYW5jZWwpOgorICAgICAgICBQYXNzIFdpbGxDb250aW51ZUxvYWRpbmcgZmxhZy4KKwor
ICAgICAgICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6dmFsaWRhdGVJbnB1dCk6Cisg
ICAgICAgIENvbnNpZGVyIElQQyB3aXRoIGEgbmF2aWdhdGlvbklEIG9mIDAgYXMgdmFsaWQuIFdo
ZW4gdGhlIG5hdmlnYXRpb24gaXMgdHJpZ2dlcmVkIGJ5IHRoZQorICAgICAgICBXZWJDb250ZW50
IHByb2Nlc3MsIGl0IHNlbmRzIHVzIGEgRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFz
eW5jIElQQyB3aXRoIGEgbmF2aWdhdGlvbklECisgICAgICAgIG9mIDAsIHVudGlsIHRoZSBVSVBy
b2Nlc3MgY2FuIGdlbmVyYXRlIGEgdmFsaWQgaWRlbnRpZmllci4KKworICAgICAgICAoV2ViS2l0
OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKToK
KworICAgICAgICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvbkFzeW5jKToKKyAgICAgICAgV2hlbiB0aGUgV2ViUGFnZVByb3h5IGhh
cyBnZW5lcmF0ZWQgYSBuYXZpZ2F0aW9uSUQgZm9yIHRoZSBuZXcgV2ViQ29udGVudCBwcm9jZXNz
LWluaXRpYXRlZAorICAgICAgICBuYXZpZ2F0aW9uLCB1cGRhdGUgbV9uYXZpZ2F0aW9uSUQgc28g
dGhhdCBmb2xsb3ctdXAgSVBDIGlzIGNvbnNpZGVyZWQgdmFsaWQuCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRGYWlsUHJvdmlz
aW9uYWxMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZEZh
aWxQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZCk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5o
OgorCiAyMDE5LTA0LTIyICBMdWRvdmljbyBkZSBOaXR0aXMgIDxsdWRvdmljby5kZW5pdHRpc0Bj
b2xsYWJvcmEuY29tPgogCiAgICAgICAgIFtHVEtdIGZpeCBndGtfc3R5bGVfY29udGV4dF9zZXRf
YmFja2dyb3VuZCBkZXByZWNhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDgw
MTk3N2EyMWE5ZDYyNDg5ODNhZGZjYTg1YWM4OGM1MzY2MWMyZDEuLjM5MDUzMjQ0YmUzODRkYWQy
MTk4ODU3ZmRhNWNjYzJiNmVlNTdkZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNSBAQAorMjAxOS0wNC0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgorCisgICAgICAgIFtQcm9jZXNzLVN3YXAtT24tTmF2aWdhdGlvbl0gV2ViS2l0IGhhbmdzIHdo
ZW4gZ29pbmcgYmFjayB0byBhIGZvcm0gc3VibWlzc2lvbidzIHBhZ2UgZHVlIHRvIFByb2Nlc3Mt
U3dhcC1Pbi1OYXZpZ2F0aW9uIG9uIGlPUyAxMi4yIGFuZCBoaWdoZXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NzA5NworICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNTAwNDgzMTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tOgorICAgICAgICAo
V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZCk6CisK
IDIwMTktMDQtMTggIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAg
IFVzZSBleGlzdGluZyBLZXlFdmVudENvZGVzSU9TIGNvbnN0YW50cyBpbnN0ZWFkIG9mIGR1cGxp
Y2F0aW5nIHRoZW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwppbmRleCBjMWQwNjgzNGJjYWE5
YTcxZGViNmVhOTg2NzU1NWJiNWZmZjVkNzZmLi41OThjZmFkNWRmMGZiYmRmNjUyMmIzY2E3ZDdk
MmI5MDQ5YTZmYmRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTktMDQtMjIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAg
ICBbUHJvY2Vzcy1Td2FwLU9uLU5hdmlnYXRpb25dIFdlYktpdCBoYW5ncyB3aGVuIGdvaW5nIGJh
Y2sgdG8gYSBmb3JtIHN1Ym1pc3Npb24ncyBwYWdlIGR1ZSB0byBQcm9jZXNzLVN3YXAtT24tTmF2
aWdhdGlvbiBvbiBpT1MgMTIuMiBhbmQgaGlnaGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTcwOTcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUw
MDQ4MzE4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZCk6CisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKwogMjAxOS0wNC0y
MCAgRG9uIE9sbXN0ZWFkICA8ZG9uLm9sbXN0ZWFkQHNvbnkuY29tPgogCiAgICAgICAgIFtDTWFr
ZV1bV2luXSBVc2UgdGFyZ2V0IG9yaWVudGVkIGRlc2lnbiBmb3IgV2ViS2l0TGVnYWN5CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCBhOGQy
Yzg4OThjZTQ2ZjZiNTcxZGFhZGYxM2Q1NTEzNThiYTIyNGZhLi40ZjBiYjg2ZGRkNTA5OWUzMTFk
ODlhNDliZTNhM2JlNDA3N2Y1ZTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0
eUZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTg0LDcgKzg0LDcgQEAgY2xhc3MgV0VCQ09SRV9FWFBP
UlQgRW1wdHlGcmFtZUxvYWRlckNsaWVudCA6IHB1YmxpYyBGcmFtZUxvYWRlckNsaWVudCB7CiAg
ICAgdm9pZCBkaXNwYXRjaERpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkKCkgZmluYWwgeyB9CiAgICAg
dm9pZCBkaXNwYXRjaERpZFJlY2VpdmVUaXRsZShjb25zdCBTdHJpbmdXaXRoRGlyZWN0aW9uJikg
ZmluYWwgeyB9CiAgICAgdm9pZCBkaXNwYXRjaERpZENvbW1pdExvYWQoT3B0aW9uYWw8SGFzSW5z
ZWN1cmVDb250ZW50PikgZmluYWwgeyB9Ci0gICAgdm9pZCBkaXNwYXRjaERpZEZhaWxQcm92aXNp
b25hbExvYWQoY29uc3QgUmVzb3VyY2VFcnJvciYpIGZpbmFsIHsgfQorICAgIHZvaWQgZGlzcGF0
Y2hEaWRGYWlsUHJvdmlzaW9uYWxMb2FkKGNvbnN0IFJlc291cmNlRXJyb3ImLCBXaWxsQ29udGlu
dWVMb2FkaW5nKSBmaW5hbCB7IH0KICAgICB2b2lkIGRpc3BhdGNoRGlkRmFpbExvYWQoY29uc3Qg
UmVzb3VyY2VFcnJvciYpIGZpbmFsIHsgfQogICAgIHZvaWQgZGlzcGF0Y2hEaWRGaW5pc2hEb2N1
bWVudExvYWQoKSBmaW5hbCB7IH0KICAgICB2b2lkIGRpc3BhdGNoRGlkRmluaXNoTG9hZCgpIGZp
bmFsIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggZTAxODI1ZTU3
YjFmZTc1ODhiYTUyMTI3ZjVmZDI4NjQ3NWFmYzkyOS4uNTc3M2M5OGEwMjFmYmMxNTIzYmRkNjA5
ODdhOTRmMTZhMTZmYWY1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBA
IC0yNDY1LDcgKzI0NjUsOCBAQCB2b2lkIEZyYW1lTG9hZGVyOjpjaGVja0xvYWRDb21wbGV0ZUZv
clRoaXNGcmFtZSgpCiAgICAgICAgICAgICBpZiAoIXBkbC0+aXNMb2FkaW5nSW5BUElTZW5zZSgp
IHx8IHBkbC0+aXNTdG9wcGluZygpKSB7CiAgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZf
QUxMT1dFRCgiY2hlY2tMb2FkQ29tcGxldGVGb3JUaGlzRnJhbWU6IEZhaWxlZCBwcm92aXNpb25h
bCBsb2FkIChmcmFtZSA9ICVwLCBtYWluID0gJWQsIGlzVGltZW91dCA9ICVkLCBpc0NhbmNlbGxh
dGlvbiA9ICVkLCBlcnJvckNvZGUgPSAlZCkiLCAmbV9mcmFtZSwgbV9mcmFtZS5pc01haW5GcmFt
ZSgpLCBlcnJvci5pc1RpbWVvdXQoKSwgZXJyb3IuaXNDYW5jZWxsYXRpb24oKSwgZXJyb3IuZXJy
b3JDb2RlKCkpOwogICAgICAgICAgICAgICAgIG1fcHJvdmlzaW9uYWxMb2FkRXJyb3JCZWluZ0hh
bmRsZWRVUkwgPSBtX3Byb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXItPnVybCgpOwotICAgICAgICAg
ICAgICAgIG1fY2xpZW50LmRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZChlcnJvcik7CisK
KyAgICAgICAgICAgICAgICBtX2NsaWVudC5kaXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQo
ZXJyb3IsIGhpc3RvcnkoKS5wcm92aXNpb25hbEl0ZW0oKSA/IFdpbGxDb250aW51ZUxvYWRpbmc6
OlllcyA6IFdpbGxDb250aW51ZUxvYWRpbmc6Ok5vKTsKICNpZiBFTkFCTEUoQ09OVEVOVF9GSUxU
RVJJTkcpCiAgICAgICAgICAgICAgICAgaWYgKGF1dG8gY29udGVudEZpbHRlciA9IHBkbC0+Y29u
dGVudEZpbHRlcigpKQogICAgICAgICAgICAgICAgICAgICBjb250ZW50RmlsdGVyLT5oYW5kbGVQ
cm92aXNpb25hbExvYWRGYWlsdXJlKGVycm9yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyQ2xpZW50LmgKaW5kZXggZmExZGY2MGEzYTlhMTIzZWFlYjcxMjM5MTE2N2Q3NjhjYWMx
ZjQ4Yi4uZWMzOTEyN2ExYWQ2YzI1ZTBkMzQ2YmU3YTQ2OGNiNmVhOThmM2ZjOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTE3Nyw3ICsxNzcsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkU3RhcnRQcm92aXNpb25hbExvYWQo
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkUmVjZWl2ZVRpdGxlKGNvbnN0IFN0
cmluZ1dpdGhEaXJlY3Rpb24mKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkQ29t
bWl0TG9hZChPcHRpb25hbDxIYXNJbnNlY3VyZUNvbnRlbnQ+KSA9IDA7Ci0gICAgdmlydHVhbCB2
b2lkIGRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZChjb25zdCBSZXNvdXJjZUVycm9yJikg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQoY29u
c3QgUmVzb3VyY2VFcnJvciYsIFdpbGxDb250aW51ZUxvYWRpbmcpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgZGlzcGF0Y2hEaWRGYWlsTG9hZChjb25zdCBSZXNvdXJjZUVycm9yJikgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZEZpbmlzaERvY3VtZW50TG9hZCgpID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRGaW5pc2hMb2FkKCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlclR5cGVzLmgKaW5kZXggYWQ3MmFmNjE2NGE4NWM4MTdiODQ0NDNlNmY0
ZGY2Zjc4YTgwNDJjZS4uNGVlNTlkODY3NGRlY2M2ZTI5OTA0MDA1OTZhYjI2N2RmYzAzZmNjZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJUeXBlcy5oCkBAIC02Nyw2ICs2Nyw4
IEBAIGVudW0gY2xhc3MgRnJhbWVMb2FkVHlwZSA6IHVpbnQ4X3QgewogICAgIFJlbG9hZEV4cGly
ZWRPbmx5CiB9OwogCitlbnVtIGNsYXNzIFdpbGxDb250aW51ZUxvYWRpbmcgOiBib29sIHsgTm8s
IFllcyB9OworCiBjbGFzcyBQb2xpY3lDaGVja0lkZW50aWZpZXIgewogcHVibGljOgogICAgIFBv
bGljeUNoZWNrSWRlbnRpZmllcigpID0gZGVmYXVsdDsKQEAgLTIxNyw0ICsyMTksMTIgQEAgdGVt
cGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpGcmFtZUxvYWRUeXBlPiB7CiAgICAg
PjsKIH07CiAKK3RlbXBsYXRlIDw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OldpbGxDb250
aW51ZUxvYWRpbmc+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBX
ZWJDb3JlOjpXaWxsQ29udGludWVMb2FkaW5nLAorICAgICAgICBXZWJDb3JlOjpXaWxsQ29udGlu
dWVMb2FkaW5nOjpObywKKyAgICAgICAgV2ViQ29yZTo6V2lsbENvbnRpbnVlTG9hZGluZzo6WWVz
CisgICAgPjsKK307CisKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93
ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggYTg4NWJiMDYyY2VmOGI1MWFkOTc1NjMwYjUyODU0ZjUw
NGQxNWE0YS4uOGU1MmFjMDNjMjgwNTIxOGI5YWFjYWVjOGIzNjYwOTM3OWUxNjVkZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC00NjIsNiArNDYyLDcgQEAg
ZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAgICdXZWJDb3JlOjpUZXh0Q2hlY2tp
bmdUeXBlJzogWyc8V2ViQ29yZS9UZXh0Q2hlY2tpbmcuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6
OlRleHRJbmRpY2F0b3JEYXRhJzogWyc8V2ViQ29yZS9UZXh0SW5kaWNhdG9yLmg+J10sCiAgICAg
ICAgICdXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMnOiBbJzxXZWJDb3JlL1ZpZXdwb3J0QXJn
dW1lbnRzLmg+J10sCisgICAgICAgICdXZWJDb3JlOjpXaWxsQ29udGludWVMb2FkaW5nJzogWyc8
V2ViQ29yZS9GcmFtZUxvYWRlclR5cGVzLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpTZWxlY3Rp
b25SZWN0JzogWyciRWRpdG9yU3RhdGUuaCInXSwKICAgICAgICAgJ1dlYktpdDo6QWN0aXZpdHlT
dGF0ZUNoYW5nZUlEJzogWyciRHJhd2luZ0FyZWFJbmZvLmgiJ10sCiAgICAgICAgICdXZWJLaXQ6
OkJhY2tGb3J3YXJkTGlzdEl0ZW1TdGF0ZSc6IFsnIlNlc3Npb25TdGF0ZS5oIiddLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVVJMU2NoZW1lVGFzay5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VSTFNjaGVtZVRhc2subW0K
aW5kZXggOGE1NDJlMDYwODNkODI2NDk1NDYzZWY3ZmVlYWNhOWU1Y2FhMDM2NS4uZjEzZTJhNzQ3
MTFiMDY2MDY3Y2YxNTk2NzgzMzY0YjgxOGE5MmRlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVVJMU2NoZW1lVGFzay5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVUkxTY2hlbWVUYXNrLm1tCkBAIC03MCw2ICs3MCwx
MSBAQCAtIChOU1VSTFJlcXVlc3QgKilyZXF1ZXN0CiAgICAgcmV0dXJuIF91cmxTY2hlbWVUYXNr
LT50YXNrKCkucmVxdWVzdCgpLm5zVVJMUmVxdWVzdChXZWJDb3JlOjpIVFRQQm9keVVwZGF0ZVBv
bGljeTo6VXBkYXRlSFRUUEJvZHkpOwogfQogCistIChCT09MKV9vbmx5SWZDYWNoZWQKK3sKKyAg
ICByZXR1cm4gX3VybFNjaGVtZVRhc2stPnRhc2soKS5yZXF1ZXN0KCkuY2FjaGVQb2xpY3koKSA9
PSBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3RDYWNoZVBvbGljeTo6UmV0dXJuQ2FjaGVEYXRhRG9u
dExvYWQ7Cit9CisKIC0gKHZvaWQpZGlkUmVjZWl2ZVJlc3BvbnNlOihOU1VSTFJlc3BvbnNlICop
cmVzcG9uc2UKIHsKICAgICBhdXRvIHJlc3VsdCA9IF91cmxTY2hlbWVUYXNrLT50YXNrKCkuZGlk
UmVjZWl2ZVJlc3BvbnNlKHJlc3BvbnNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1VSTFNjaGVtZVRhc2tQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVUkxTY2hlbWVUYXNrUHJpdmF0ZS5oCmluZGV4IDYyNDE5
NzVlM2M3YmQ4ODE5NzczYjlhNjQ0NWVjZjdiMDVjNmYzMWUuLjc3MTg4ZDg0MDkwM2FiOTdhMmI3
ZGViMzJhMjk3NjlmNmJhNjdmNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1VSTFNjaGVtZVRhc2tQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLVVJMU2NoZW1lVGFza1ByaXZhdGUuaApAQCAtMzAsNCArMzAs
NiBAQCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKQogCiAtICh2b2lk
KV9kaWRQZXJmb3JtUmVkaXJlY3Rpb246KE5TVVJMUmVzcG9uc2UgKilyZXNwb25zZSBuZXdSZXF1
ZXN0OihOU1VSTFJlcXVlc3QgKilyZXF1ZXN0OwogCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVh
ZG9ubHkpIEJPT0wgX29ubHlJZkNhY2hlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSkpOworCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAKaW5kZXggOThlZmNjOGUxOTQ2NTNkNzAwZGNl
MjkzZmJkYWRlMjVkNmRmYWIzZi4uZjg5MDA4NjczNzI2ZGI1Nzk0YTE3NWE5NGEzYmFhMDM5OGYw
YzI0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdl
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVBy
b3h5LmNwcApAQCAtMTM0LDcgKzEzNCw3IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmNh
bmNlbCgpCiAgICAgQVNTRVJUKG1fbWFpbkZyYW1lKTsKICAgICBhdXRvIGVycm9yID0gV2ViS2l0
OjpjYW5jZWxsZWRFcnJvcihtX3JlcXVlc3QpOwogICAgIGVycm9yLnNldFR5cGUoV2ViQ29yZTo6
UmVzb3VyY2VFcnJvcjo6VHlwZTo6Q2FuY2VsbGF0aW9uKTsKLSAgICBkaWRGYWlsUHJvdmlzaW9u
YWxMb2FkRm9yRnJhbWUobV9tYWluRnJhbWUtPmZyYW1lSUQoKSwgeyB9LCBtX25hdmlnYXRpb25J
RCwgbV9wcm92aXNpb25hbExvYWRVUkwsIGVycm9yLCBVc2VyRGF0YSB7IH0pOyAvLyBXaWxsIGRl
bGV0ZSB8dGhpc3wuCisgICAgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKG1fbWFpbkZy
YW1lLT5mcmFtZUlEKCksIHsgfSwgbV9uYXZpZ2F0aW9uSUQsIG1fcHJvdmlzaW9uYWxMb2FkVVJM
LCBlcnJvciwgV2ViQ29yZTo6V2lsbENvbnRpbnVlTG9hZGluZzo6Tm8sIFVzZXJEYXRhIHsgfSk7
IC8vIFdpbGwgZGVsZXRlIHx0aGlzfC4KIH0KIAogdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6
aW5pdGlhbGl6ZVdlYlBhZ2UoKQpAQCAtMTg5LDcgKzE4OSw3IEBAIGlubGluZSBib29sIFByb3Zp
c2lvbmFsUGFnZVByb3h5Ojp2YWxpZGF0ZUlucHV0KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IE9w
dGlvbmFsCiAgICAgaWYgKCFtX21haW5GcmFtZSB8fCBtX21haW5GcmFtZS0+ZnJhbWVJRCgpICE9
IGZyYW1lSUQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHJldHVybiAhbmF2aWdhdGlv
bklEIHx8ICpuYXZpZ2F0aW9uSUQgPT0gbV9uYXZpZ2F0aW9uSUQ7CisgICAgcmV0dXJuICFuYXZp
Z2F0aW9uSUQgfHwgISpuYXZpZ2F0aW9uSUQgfHwgKm5hdmlnYXRpb25JRCA9PSBtX25hdmlnYXRp
b25JRDsKIH0KIAogdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ3JlYXRlTWFpbkZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQpCkBAIC0yNDcsNyArMjQ3LDcgQEAgdm9pZCBQcm92aXNpb25hbFBh
Z2VQcm94eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlE
LCB1aW4KICAgICBtX3BhZ2UuZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZCht
X3Byb2Nlc3MuY29weVJlZigpLCBmcmFtZUlELCBuYXZpZ2F0aW9uSUQsIFdURk1vdmUodXJsKSwg
V1RGTW92ZSh1bnJlYWNoYWJsZVVSTCksIHVzZXJEYXRhKTsKIH0KIAotdm9pZCBQcm92aXNpb25h
bFBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1l
SUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdp
biwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBlcnJvciwgY29uc3QgVXNlckRhdGEmIHVzZXJE
YXRhKQordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZv
ckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJp
bmcmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBlcnJvciwg
V2ViQ29yZTo6V2lsbENvbnRpbnVlTG9hZGluZyB3aWxsQ29udGludWVMb2FkaW5nLCBjb25zdCBV
c2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgaWYgKCF2YWxpZGF0ZUlucHV0KGZyYW1lSUQsIG5h
dmlnYXRpb25JRCkpCiAgICAgICAgIHJldHVybjsKQEAgLTI2MCw3ICsyNjAsNyBAQCB2b2lkIFBy
b3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0
X3QgZnJhbWVJRCwgY29ucwogICAgIGlmIChhdXRvKiBwYWdlTWFpbkZyYW1lID0gbV9wYWdlLm1h
aW5GcmFtZSgpKQogICAgICAgICBwYWdlTWFpbkZyYW1lLT5kaWRGYWlsUHJvdmlzaW9uYWxMb2Fk
KCk7CiAKLSAgICBtX3BhZ2UuZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKG1f
cHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIGZyYW1lU2VjdXJpdHlPcmlnaW4sIG5hdmlnYXRp
b25JRCwgcHJvdmlzaW9uYWxVUkwsIGVycm9yLCB1c2VyRGF0YSk7IC8vIFdpbGwgZGVsZXRlIHx0
aGlzfC4KKyAgICBtX3BhZ2UuZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKG1f
cHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIGZyYW1lU2VjdXJpdHlPcmlnaW4sIG5hdmlnYXRp
b25JRCwgcHJvdmlzaW9uYWxVUkwsIGVycm9yLCB3aWxsQ29udGludWVMb2FkaW5nLCB1c2VyRGF0
YSk7IC8vIE1heSBkZWxldGUgfHRoaXN8LgogfQogCiB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5
OjpkaWRDb21taXRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdh
dGlvbklELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGZyYW1lSGFzQ3VzdG9tQ29udGVu
dFByb3ZpZGVyLCB1aW50MzJfdCBmcmFtZUxvYWRUeXBlLCBjb25zdCBXZWJDb3JlOjpDZXJ0aWZp
Y2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbywgYm9vbCBjb250YWluc1BsdWdpbkRvY3VtZW50LCBP
cHRpb25hbDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQ+IGZvcmNlZEhhc0luc2VjdXJlQ29u
dGVudCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQpAQCAtMzc4LDExICszNzgsMTQgQEAgdm9p
ZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
JiBjb25uZWN0aW9uLCBJUEM6OkQKIAogICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VOYW1lKCkgPT0g
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkU3RhcnRQcm9ncmVzczo6bmFtZSgpCiAgICAgICAg
IHx8IGRlY29kZXIubWVzc2FnZU5hbWUoKSA9PSBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRD
aGFuZ2VQcm9ncmVzczo6bmFtZSgpCisgICAgICAgIHx8IGRlY29kZXIubWVzc2FnZU5hbWUoKSA9
PSBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWREZXN0cm95TmF2aWdhdGlvbjo6bmFtZSgpCisg
ICAgICAgIHx8IGRlY29kZXIubWVzc2FnZU5hbWUoKSA9PSBNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpEaWRGaW5pc2hQcm9ncmVzczo6bmFtZSgpCiAgICAgICAgIHx8IGRlY29kZXIubWVzc2FnZU5h
bWUoKSA9PSBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpCYWNrRm9yd2FyZEFkZEl0ZW06Om5hbWUo
KQogICAgICAgICB8fCBkZWNvZGVyLm1lc3NhZ2VOYW1lKCkgPT0gTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6TG9nRGlhZ25vc3RpY01lc3NhZ2U6Om5hbWUoKQogICAgICAgICB8fCBkZWNvZGVyLm1l
c3NhZ2VOYW1lKCkgPT0gTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6TG9nRGlhZ25vc3RpY01lc3Nh
Z2VXaXRoRW5oYW5jZWRQcml2YWN5OjpuYW1lKCkKICAgICAgICAgfHwgZGVjb2Rlci5tZXNzYWdl
TmFtZSgpID09IE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0
aFZhbHVlRGljdGlvbmFyeTo6bmFtZSgpCiAgICAgICAgIHx8IGRlY29kZXIubWVzc2FnZU5hbWUo
KSA9PSBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTZXROZXR3b3JrUmVxdWVzdHNJblByb2dyZXNz
OjpuYW1lKCkKKyAgICAgICAgfHwgZGVjb2Rlci5tZXNzYWdlTmFtZSgpID09IE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OldpbGxHb1RvQmFja0ZvcndhcmRMaXN0SXRlbTo6bmFtZSgpCiAjaWYgVVNF
KFFVSUNLX0xPT0spCiAgICAgICAgIHx8IGRlY29kZXIubWVzc2FnZU5hbWUoKSA9PSBNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpEaWRTdGFydExvYWRGb3JRdWlja0xvb2tEb2N1bWVudEluTWFpbkZy
YW1lOjpuYW1lKCkKICAgICAgICAgfHwgZGVjb2Rlci5tZXNzYWdlTmFtZSgpID09IE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OkRpZEZpbmlzaExvYWRGb3JRdWlja0xvb2tEb2N1bWVudEluTWFpbkZy
YW1lOjpuYW1lKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lv
bmFsUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQ
cm94eS5oCmluZGV4IDRlZjJiNzZkNTg3ZTkzY2QwOGU3YzVhNDVjNDg4MGZmZTg1MjNlMzMuLjY0
NTZjMWY5MTZkNTk3NTUwNmMxNTI3OTRhZjJlNmI2NjhjMGJmNmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaApAQCAtNzQsNiArNzQsOCBAQCBw
dWJsaWM6CiAgICAgRHJhd2luZ0FyZWFQcm94eSogZHJhd2luZ0FyZWEoKSBjb25zdCB7IHJldHVy
biBtX2RyYXdpbmdBcmVhLmdldCgpOyB9CiAgICAgc3RkOjp1bmlxdWVfcHRyPERyYXdpbmdBcmVh
UHJveHk+IHRha2VEcmF3aW5nQXJlYSgpOwogCisgICAgdm9pZCBzZXROYXZpZ2F0aW9uSUQodWlu
dDY0X3QgbmF2aWdhdGlvbklEKSB7IG1fbmF2aWdhdGlvbklEID0gbmF2aWdhdGlvbklEOyB9CisK
ICNpZiBQTEFURk9STShDT0NPQSkKICAgICBWZWN0b3I8dWludDhfdD4gdGFrZUFjY2Vzc2liaWxp
dHlUb2tlbigpIHsgcmV0dXJuIFdURk1vdmUobV9hY2Nlc3NpYmlsaXR5VG9rZW4pOyB9CiAjZW5k
aWYKQEAgLTEwNCw3ICsxMDYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkQ3JlYXRlTWFpbkZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQpOwogICAgIHZvaWQgZGlkU3RhcnRQcm92aXNpb25hbExvYWRG
b3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmLCBV
UkwmJiB1bnJlYWNoYWJsZVVSTCwgY29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIGRpZENvbW1p
dExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNv
bnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wgZnJhbWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXIs
IHVpbnQzMl90IGZyYW1lTG9hZFR5cGUsIGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYs
IGJvb2wgY29udGFpbnNQbHVnaW5Eb2N1bWVudCwgT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1
cmVDb250ZW50PiBmb3JjZWRIYXNJbnNlY3VyZUNvbnRlbnQsIGNvbnN0IFVzZXJEYXRhJik7Ci0g
ICAgdm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
Y29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlk
RmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2
aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZUVycm9yJiwgV2ViQ29yZTo6V2lsbENvbnRpbnVlTG9hZGluZywgY29uc3QgVXNlckRh
dGEmKTsKICAgICB2b2lkIHN0YXJ0VVJMU2NoZW1lVGFzayhVUkxTY2hlbWVUYXNrUGFyYW1ldGVy
cyYmKTsKICAgICB2b2lkIGJhY2tGb3J3YXJkR29Ub0l0ZW0oY29uc3QgV2ViQ29yZTo6QmFja0Zv
cndhcmRJdGVtSWRlbnRpZmllciYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU2FuZGJveEV4dGVu
c2lvbjo6SGFuZGxlJiYpPiYmKTsKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb25TeW5jKHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wgaXNNYWluRnJhbWUsIFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGI2N2RjMjIyODE2NzFjZWJkNWQwMDBjMjA0
ZDU1MDY3MzczZjNiNzcuLmZmZWY3YWI3Y2U4N2ZhNmYxYTlkYTgxYjA4Yzc5MmJhMWE5N2ZlZGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMjc2Nyw3ICsy
NzY3LDYgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlY2VpdmVkTmF2aWdhdGlvblBvbGljeURlY2lz
aW9uKFBvbGljeUFjdGlvbiBwb2xpY3lBY3Rpb24sIEEKICAgICBVUkwgc291cmNlVVJMID0gVVJM
IHsgVVJMKCksIHBhZ2VMb2FkU3RhdGUoKS51cmwoKSB9OwogICAgIGlmIChhdXRvKiBwcm92aXNp
b25hbFBhZ2UgPSBwcm92aXNpb25hbFBhZ2VQcm94eSgpKSB7CiAgICAgICAgIGlmIChwcm92aXNp
b25hbFBhZ2UtPm5hdmlnYXRpb25JRCgpID09IG5hdmlnYXRpb24tPm5hdmlnYXRpb25JRCgpKSB7
Ci0gICAgICAgICAgICBBU1NFUlQobmF2aWdhdGlvbi0+Y3VycmVudFJlcXVlc3RJc1JlZGlyZWN0
KCkpOwogICAgICAgICAgICAgc291cmNlUHJvY2VzcyA9IHByb3Zpc2lvbmFsUGFnZS0+cHJvY2Vz
cygpOwogICAgICAgICAgICAgc291cmNlVVJMID0gcHJvdmlzaW9uYWxQYWdlLT5wcm92aXNpb25h
bFVSTCgpOwogICAgICAgICB9CkBAIC00MDI3LDE3ICs0MDI2LDE3IEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjpkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNz
UHJveHk+JiYKICAgICBmcmFtZS0+ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9u
YWxMb2FkKHVybCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxM
b2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBm
cmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYg
cHJvdmlzaW9uYWxVUkwsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBjb25zdCBVc2VyRGF0
YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZv
ckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVT
ZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIHByb3Zp
c2lvbmFsVVJMLCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciwgV2lsbENvbnRpbnVlTG9hZGlu
ZyB3aWxsQ29udGludWVMb2FkaW5nLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAg
aWYgKG1fcHJvdmlzaW9uYWxQYWdlICYmIG1fcHJvdmlzaW9uYWxQYWdlLT5uYXZpZ2F0aW9uSUQo
KSA9PSBuYXZpZ2F0aW9uSUQpIHsKICAgICAgICAgLy8gVGhlIGxvYWQgZGlkIG5vdCBmYWlsLCBp
dCBpcyBtZXJlbHkgaGFwcGVuaW5nIGluIGEgbmV3IHByb3Zpc2lvbmFsIHByb2Nlc3MuCiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKLSAgICBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVT
aGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgZnJhbWVJRCwgZnJhbWVTZWN1cml0eU9yaWdpbiwg
bmF2aWdhdGlvbklELCBwcm92aXNpb25hbFVSTCwgZXJyb3IsIHVzZXJEYXRhKTsKKyAgICBkaWRG
YWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgZnJh
bWVJRCwgZnJhbWVTZWN1cml0eU9yaWdpbiwgbmF2aWdhdGlvbklELCBwcm92aXNpb25hbFVSTCwg
ZXJyb3IsIHdpbGxDb250aW51ZUxvYWRpbmcsIHVzZXJEYXRhKTsKIH0KIAotdm9pZCBXZWJQYWdl
UHJveHk6OmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vz
c1Byb3h5PiYmIHByb2Nlc3MsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2lu
RGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBT
dHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciwgY29uc3Qg
VXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZEZhaWxQcm92aXNpb25h
bExvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIHVpbnQ2
NF90IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdp
biwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBj
b25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciwgV2lsbENvbnRpbnVlTG9hZGluZyB3aWxsQ29udGlu
dWVMb2FkaW5nLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgTE9HKExvYWRpbmcs
ICIoTG9hZGluZykgV2ViUGFnZVByb3h5ICUiIFBSSXU2NCAiIGluIHdlYiBwcm9jZXNzIHBpZCAl
aSBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUgdG8gcHJvdmlzaW9uYWxVUkwgJXMiLCBt
X3BhZ2VJRCwgcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgcHJvdmlzaW9uYWxVUkwudXRm
OCgpLmRhdGEoKSk7CiAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChQcm9jZXNzLCAiZGlkRmFp
bFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0
ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgZG9tYWluID0gJXMsIGNvZGUgPSAlZCIsIHByb2Nl
c3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELCBmcmFtZUlELCBlcnJvci5kb21haW4o
KS51dGY4KCkuZGF0YSgpLCBlcnJvci5lcnJvckNvZGUoKSk7CkBAIC00MDg0LDcgKzQwODMsNyBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVk
KFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcAogICAgIG1fZmFpbGluZ1Byb3Zpc2lvbmFsTG9hZFVS
TCA9IHsgfTsKIAogICAgIC8vIElmIHRoZSBwcm92aXNpb25hbCBwYWdlJ3MgbG9hZCBmYWlscyB0
aGVuIHdlIGRlc3Ryb3kgdGhlIHByb3Zpc2lvbmFsIHBhZ2UuCi0gICAgaWYgKG1fcHJvdmlzaW9u
YWxQYWdlICYmIG1fcHJvdmlzaW9uYWxQYWdlLT5tYWluRnJhbWUoKSA9PSBmcmFtZSkKKyAgICBp
ZiAobV9wcm92aXNpb25hbFBhZ2UgJiYgbV9wcm92aXNpb25hbFBhZ2UtPm1haW5GcmFtZSgpID09
IGZyYW1lICYmIHdpbGxDb250aW51ZUxvYWRpbmcgPT0gV2lsbENvbnRpbnVlTG9hZGluZzo6Tm8p
CiAgICAgICAgIG1fcHJvdmlzaW9uYWxQYWdlID0gbnVsbHB0cjsKIH0KIApAQCAtNDU2OSw3ICs0
NTY4LDEyIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzCiAgICAgICAgICAgICBuYXZpZ2F0aW9u
ID0gbV9uYXZpZ2F0aW9uU3RhdGUtPmNyZWF0ZUxvYWRSZXF1ZXN0TmF2aWdhdGlvbihSZXNvdXJj
ZVJlcXVlc3QocmVxdWVzdCksIG1fYmFja0ZvcndhcmRMaXN0LT5jdXJyZW50SXRlbSgpKTsKICAg
ICB9CiAKLSAgICB1aW50NjRfdCBuZXdOYXZpZ2F0aW9uSUQgPSBuYXZpZ2F0aW9uLT5uYXZpZ2F0
aW9uSUQoKTsKKyAgICBuYXZpZ2F0aW9uSUQgPSBuYXZpZ2F0aW9uLT5uYXZpZ2F0aW9uSUQoKTsK
KworICAgIC8vIE1ha2Ugc3VyZSB0aGUgcHJvdmlzaW9uYWwgcGFnZSBhbHdheXMgaGFzIHRoZSBs
YXRlc3QgbmF2aWdhdGlvbklELgorICAgIGlmIChtX3Byb3Zpc2lvbmFsUGFnZSAmJiAmbV9wcm92
aXNpb25hbFBhZ2UtPnByb2Nlc3MoKSA9PSBwcm9jZXNzLnB0cigpKQorICAgICAgICBtX3Byb3Zp
c2lvbmFsUGFnZS0+c2V0TmF2aWdhdGlvbklEKG5hdmlnYXRpb25JRCk7CisKICAgICBuYXZpZ2F0
aW9uLT5zZXRDdXJyZW50UmVxdWVzdChSZXNvdXJjZVJlcXVlc3QocmVxdWVzdCksIHByb2Nlc3Mt
PmNvcmVQcm9jZXNzSWRlbnRpZmllcigpKTsKICAgICBuYXZpZ2F0aW9uLT5zZXRMYXN0TmF2aWdh
dGlvbkFjdGlvbihuYXZpZ2F0aW9uQWN0aW9uRGF0YSk7CiAgICAgbmF2aWdhdGlvbi0+c2V0T3Jp
Z2luYXRpbmdGcmFtZUluZm8ob3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhKTsKQEAgLTQ1NzcsOSAr
NDU4MSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzCiAKICNpZiBFTkFCTEUoQ09OVEVOVF9G
SUxURVJJTkcpCiAgICAgaWYgKGZyYW1lLmRpZEhhbmRsZUNvbnRlbnRGaWx0ZXJVbmJsb2NrTmF2
aWdhdGlvbihyZXF1ZXN0KSkKLSAgICAgICAgcmV0dXJuIHJlY2VpdmVkUG9saWN5RGVjaXNpb24o
UG9saWN5QWN0aW9uOjpJZ25vcmUsIG1fbmF2aWdhdGlvblN0YXRlLT5uYXZpZ2F0aW9uKG5ld05h
dmlnYXRpb25JRCksIFdURjo6bnVsbG9wdCwgV1RGTW92ZShzZW5kZXIpKTsKLSNlbHNlCi0gICAg
VU5VU0VEX1BBUkFNKG5ld05hdmlnYXRpb25JRCk7CisgICAgICAgIHJldHVybiByZWNlaXZlZFBv
bGljeURlY2lzaW9uKFBvbGljeUFjdGlvbjo6SWdub3JlLCBtX25hdmlnYXRpb25TdGF0ZS0+bmF2
aWdhdGlvbihuYXZpZ2F0aW9uSUQpLCBXVEY6Om51bGxvcHQsIFdURk1vdmUoc2VuZGVyKSk7CiAj
ZW5kaWYKIAogICAgIFNob3VsZEV4cGVjdFNhZmVCcm93c2luZ1Jlc3VsdCBzaG91bGRFeHBlY3RT
YWZlQnJvd3NpbmdSZXN1bHQgPSBTaG91bGRFeHBlY3RTYWZlQnJvd3NpbmdSZXN1bHQ6OlllczsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggMzU3ZGMxYjViMjkwNTZl
YjAxZDdlMWIxNmE2OTk1YmUyYzkwYWJiZS4uYjI4NzkxZjliN2UxNzlhYjM0NWE5MDE2NzAxZTUw
ZWY2YmY5ODhjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTE0
ODMsNyArMTQ4Myw3IEBAIHB1YmxpYzoKIAogICAgIC8vIExvZ2ljIHNoYXJlZCBiZXR3ZWVuIHRo
ZSBXZWJQYWdlUHJveHkgYW5kIHRoZSBQcm92aXNpb25hbFBhZ2VQcm94eS4KICAgICB2b2lkIGRp
ZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4m
JiwgdWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJiwgVVJMJiYg
dW5yZWFjaGFibGVVUkwsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRGYWlsUHJvdmlz
aW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgdWludDY0X3Qg
ZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5
T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxV
UkwsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBjb25zdCBVc2VyRGF0YSYpOworICAg
IHZvaWQgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNz
UHJveHk+JiYsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBT
dHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgV2Vi
Q29yZTo6V2lsbENvbnRpbnVlTG9hZGluZywgY29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIGRp
ZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKFJl
ZjxXZWJQcm9jZXNzUHJveHk+JiYsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAg
dm9pZCBkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3RTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4m
JiwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRp
b25VUkxTdHJpbmcsIHVpbnQ2NF90IGZyYW1lSUQpOwogICAgIHZvaWQgZGlkUGVyZm9ybUNsaWVu
dFJlZGlyZWN0U2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIGNvbnN0IFN0cmluZyYgc291
cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCB1aW50NjRf
dCBmcmFtZUlEKTsKQEAgLTE1ODUsNyArMTU4NSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCB3aWxs
UGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3Ry
aW5nJiB1cmwsIGRvdWJsZSBkZWxheSwgV2ViQ29yZTo6TG9ja0JhY2tGb3J3YXJkTGlzdCk7CiAg
ICAgdm9pZCBkaWRDYW5jZWxDbGllbnRSZWRpcmVjdEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQp
OwogICAgIHZvaWQgZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZSh1aW50NjRfdCBmcmFt
ZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmKTsKLSAgICB2b2lkIGRpZEZhaWxQcm92
aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25J
RCwgY29uc3QgU3RyaW5nJiBwcm92aXNpb25hbFVSTCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VF
cnJvciYsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxMb2Fk
Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0
cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBXZWJD
b3JlOjpXaWxsQ29udGludWVMb2FkaW5nLCBjb25zdCBVc2VyRGF0YSYpOwogICAgIHZvaWQgZGlk
Q29tbWl0TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25J
RCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBmcmFtZUhhc0N1c3RvbUNvbnRlbnRQcm92
aWRlciwgdWludDMyX3QgZnJhbWVMb2FkVHlwZSwgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJ
bmZvJiwgYm9vbCBjb250YWluc1BsdWdpbkRvY3VtZW50LCBPcHRpb25hbDxXZWJDb3JlOjpIYXNJ
bnNlY3VyZUNvbnRlbnQ+IGZvcmNlZEhhc0luc2VjdXJlQ29udGVudCwgY29uc3QgVXNlckRhdGEm
KTsKICAgICB2b2lkIGRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1l
SUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIGRp
ZEZpbmlzaExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9u
SUQsIGNvbnN0IFVzZXJEYXRhJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggMWQ0NGM2YTRiNTFhODI1NGVjNjdlZGU2ODU5MDYz
MzdjODgwY2NjZS4uYjBiNDVjYmU1YzI4ZjM3NWY1ZmIwM2ZhYmM2OTNiN2MxMGI0OTA5NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpA
QCAtMTI3LDcgKzEyNyw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgV2lsbFBl
cmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyB1cmws
IGRvdWJsZSBkZWxheSwgZW51bTpib29sIFdlYkNvcmU6OkxvY2tCYWNrRm9yd2FyZExpc3QgbG9j
a0JhY2tGb3J3YXJkTGlzdCkKICAgICBEaWRDYW5jZWxDbGllbnRSZWRpcmVjdEZvckZyYW1lKHVp
bnQ2NF90IGZyYW1lSUQpCiAgICAgRGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZSh1aW50
NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCB1cmwpCi0gICAgRGlkRmFp
bFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdh
dGlvbklELCBTdHJpbmcgcHJvdmlzaW9uYWxVUkwsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJy
b3IsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCisgICAgRGlkRmFpbFByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBTdHJpbmcg
cHJvdmlzaW9uYWxVUkwsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IsIGVudW06Ym9vbCBX
ZWJDb3JlOjpXaWxsQ29udGludWVMb2FkaW5nIHdpbGxDb250aW51ZUxvYWRpbmcsIFdlYktpdDo6
VXNlckRhdGEgdXNlckRhdGEpCiAgICAgRGlkQ29tbWl0TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZy
YW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgU3RyaW5nIG1pbWVUeXBlLCBib29sIGhhc0N1
c3RvbUNvbnRlbnRQcm92aWRlciwgdWludDMyX3QgbG9hZFR5cGUsIFdlYkNvcmU6OkNlcnRpZmlj
YXRlSW5mbyBjZXJ0aWZpY2F0ZUluZm8sIGJvb2wgY29udGFpbnNQbHVnaW5Eb2N1bWVudCwgT3B0
aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50PiBmb3JjZWRIYXNJbnNlY3VyZUNvbnRl
bnQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCiAgICAgRGlkRmFpbExvYWRGb3JGcmFtZSh1
aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNl
RXJyb3IgZXJyb3IsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCiAgICAgRGlkRmluaXNoRG9j
dW1lbnRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5j
cHAKaW5kZXggNGFjOWRiNjM4ZTU5NmNjNDhlYjIzNzg5YTI5MjVlZGQ5ZTFkNjU4OC4uYzQ5YmIx
YmE0M2NiMWEyMmMxNWI3NzYxODNmYTI0NjY0MjE5MGVjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuY3BwCkBAIC01MzUsNyArNTM1LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVu
dDo6ZGlzcGF0Y2hEaWRDb21taXRMb2FkKE9wdGlvbmFsPEhhc0luc2VjdXJlQ29udGVudD4gaGEK
ICAgICB3ZWJQYWdlLT5kaWRDb21taXRMb2FkKG1fZnJhbWUpOwogfQogCi12b2lkIFdlYkZyYW1l
TG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQoY29uc3QgUmVzb3Vy
Y2VFcnJvciYgZXJyb3IpCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZh
aWxQcm92aXNpb25hbExvYWQoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IsIFdpbGxDb250aW51
ZUxvYWRpbmcgd2lsbENvbnRpbnVlTG9hZGluZykKIHsKICAgICBXZWJQYWdlKiB3ZWJQYWdlID0g
bV9mcmFtZS0+cGFnZSgpOwogICAgIGlmICghd2ViUGFnZSkKQEAgLTU2NCw3ICs1NjQsNyBAQCB2
b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQo
Y29uc3QgUmVzb3VyY2VFcnJvciYgZQogCiAgICAgLy8gTm90aWZ5IHRoZSBVSVByb2Nlc3MuCiAg
ICAgV2ViQ29yZTo6RnJhbWUqIGNvcmVGcmFtZSA9IG1fZnJhbWUgPyBtX2ZyYW1lLT5jb3JlRnJh
bWUoKSA6IG51bGxwdHI7Ci0gICAgd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpEaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUobV9mcmFtZS0+ZnJhbWVJRCgpLCBTZWN1
cml0eU9yaWdpbkRhdGE6OmZyb21GcmFtZShjb3JlRnJhbWUpLCBuYXZpZ2F0aW9uSUQsIG1fZnJh
bWUtPmNvcmVGcmFtZSgpLT5sb2FkZXIoKS5wcm92aXNpb25hbExvYWRFcnJvckJlaW5nSGFuZGxl
ZFVSTCgpLCBlcnJvciwgVXNlckRhdGEoV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkudHJhbnNmb3Jt
T2JqZWN0c1RvSGFuZGxlcyh1c2VyRGF0YS5nZXQoKSkuZ2V0KCkpKSk7CisgICAgd2ViUGFnZS0+
c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJh
bWUobV9mcmFtZS0+ZnJhbWVJRCgpLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21GcmFtZShjb3Jl
RnJhbWUpLCBuYXZpZ2F0aW9uSUQsIG1fZnJhbWUtPmNvcmVGcmFtZSgpLT5sb2FkZXIoKS5wcm92
aXNpb25hbExvYWRFcnJvckJlaW5nSGFuZGxlZFVSTCgpLCBlcnJvciwgd2lsbENvbnRpbnVlTG9h
ZGluZywgVXNlckRhdGEoV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkudHJhbnNmb3JtT2JqZWN0c1Rv
SGFuZGxlcyh1c2VyRGF0YS5nZXQoKSkuZ2V0KCkpKSk7CiAKICAgICAvLyBJZiB3ZSBoYXZlIGEg
bG9hZCBsaXN0ZW5lciwgbm90aWZ5IGl0LgogICAgIGlmIChXZWJGcmFtZTo6TG9hZExpc3RlbmVy
KiBsb2FkTGlzdGVuZXIgPSBtX2ZyYW1lLT5sb2FkTGlzdGVuZXIoKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmgKaW5kZXggY2I0ZmY1YzE5NWNjZDA4YjcwNDljZWIyOTk0ODhhOGU1ZjFjOTBk
Yi4uZjczYWI4Y2E3M2YxNzhiZjI2OGZmMmI4NDFjNDUxY2RkNDk4ZmFhMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmgKQEAgLTExMiw3ICsxMTIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQg
ZGlzcGF0Y2hEaWRTdGFydFByb3Zpc2lvbmFsTG9hZCgpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0
Y2hEaWRSZWNlaXZlVGl0bGUoY29uc3QgV2ViQ29yZTo6U3RyaW5nV2l0aERpcmVjdGlvbiYpIGZp
bmFsOwogICAgIHZvaWQgZGlzcGF0Y2hEaWRDb21taXRMb2FkKE9wdGlvbmFsPFdlYkNvcmU6Okhh
c0luc2VjdXJlQ29udGVudD4pIGZpbmFsOwotICAgIHZvaWQgZGlzcGF0Y2hEaWRGYWlsUHJvdmlz
aW9uYWxMb2FkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKSBmaW5hbDsKKyAgICB2b2lk
IGRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVy
cm9yJiwgV2ViQ29yZTo6V2lsbENvbnRpbnVlTG9hZGluZykgZmluYWw7CiAgICAgdm9pZCBkaXNw
YXRjaERpZEZhaWxMb2FkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKSBmaW5hbDsKICAg
ICB2b2lkIGRpc3BhdGNoRGlkRmluaXNoRG9jdW1lbnRMb2FkKCkgZmluYWw7CiAgICAgdm9pZCBk
aXNwYXRjaERpZEZpbmlzaExvYWQoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmlu
ZGV4IGI1N2FjMWY1YjE2YWI3OGZiODM0NzhhZjAxYzQ0MWJkYTIzMjc3MzAuLjEzODU1ODNhZjI5
ZDE3NDQxM2Q1MDU3OTVhZmE5NWI1Yzg4OTY2YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
aApAQCAtMTE3LDcgKzExNyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaXNwYXRjaERpZFN0YXJ0
UHJvdmlzaW9uYWxMb2FkKCkgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERpZFJlY2VpdmVUaXRs
ZShjb25zdCBXZWJDb3JlOjpTdHJpbmdXaXRoRGlyZWN0aW9uJikgZmluYWw7CiAgICAgdm9pZCBk
aXNwYXRjaERpZENvbW1pdExvYWQoT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50
PikgZmluYWw7Ci0gICAgdm9pZCBkaXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQoY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpIGZpbmFsOworICAgIHZvaWQgZGlzcGF0Y2hEaWRGYWls
UHJvdmlzaW9uYWxMb2FkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBXZWJDb3JlOjpX
aWxsQ29udGludWVMb2FkaW5nKSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoRGlkRmFpbExvYWQo
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hE
aWRGaW5pc2hEb2N1bWVudExvYWQoKSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoRGlkRmluaXNo
TG9hZCgpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQppbmRleCA0Yjk0MjE3Mjk5
NzE3NjdkNTAyMjY0MzQ3OTZiMDVjMjg4NjcwM2EzLi43Zjg2OWYxZGRjYjlhMTkwODBhYWIyMDA1
ZjliZjczMmFlODdkZGRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQpAQCAtNzI0LDcg
KzcyNCw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkQ29tbWl0TG9h
ZChPcHRpb25hbDxIYXNJbnNlY3VyZUNvbnRlbnQ+KQogICAgICAgICBDYWxsRnJhbWVMb2FkRGVs
ZWdhdGUoaW1wbGVtZW50YXRpb25zLT5kaWRDb21taXRMb2FkRm9yRnJhbWVGdW5jLCB3ZWJWaWV3
LCBAc2VsZWN0b3Iod2ViVmlldzpkaWRDb21taXRMb2FkRm9yRnJhbWU6KSwgbV93ZWJGcmFtZS5n
ZXQoKSk7CiB9CiAKLXZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbFBy
b3Zpc2lvbmFsTG9hZChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKK3ZvaWQgV2ViRnJhbWVM
b2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZChjb25zdCBSZXNvdXJj
ZUVycm9yJiBlcnJvciwgV2lsbENvbnRpbnVlTG9hZGluZykKIHsKICAgICBtX3dlYkZyYW1lLT5f
cHJpdmF0ZS0+cHJvdmlzaW9uYWxVUkwgPSBudWxscHRyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5jcHAKaW5kZXggZDBkNjZkMTU5YjVlNWRjZmQ3YTYxYzQ1YWI4NTQxNTZlMmE2ZTYxNi4u
NWM1ODEzZjkxYzFlZDA4N2M3ZDgyNDYxNDRhNmU1YmVlZDkwNDgwNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmNwcApAQCAtNDQ1LDcgKzQ0NSw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJD
bGllbnQ6OmRpc3BhdGNoRGlkQ29tbWl0TG9hZChPcHRpb25hbDxIYXNJbnNlY3VyZUNvbnRlbnQ+
KQogICAgICAgICBmcmFtZUxvYWREZWxlZ2F0ZS0+ZGlkQ29tbWl0TG9hZEZvckZyYW1lKHdlYlZp
ZXcsIG1fd2ViRnJhbWUpOwogfQogCi12b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRj
aERpZEZhaWxQcm92aXNpb25hbExvYWQoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCit2b2lk
IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQoY29u
c3QgUmVzb3VyY2VFcnJvciYgZXJyb3IsIFdpbGxDb250aW51ZUxvYWRpbmcpCiB7CiAgICAgV2Vi
Vmlldyogd2ViVmlldyA9IG1fd2ViRnJhbWUtPndlYlZpZXcoKTsKICAgICBDT01QdHI8SVdlYkZy
YW1lTG9hZERlbGVnYXRlPiBmcmFtZUxvYWREZWxlZ2F0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5oCmluZGV4IDU3ZTRiYmFiYWVhMjY4ZTIyMjJhMTZmMGZmMGEzM2U0MWJkYzMxMDAuLjMyMmMw
OTAwNWFhNWVlNTczYjRkNzAyZDZlMWRiMjUwNjA1ZDFiNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuaApAQCAtOTQsNyArOTQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaXNwYXRjaERpZFN0
YXJ0UHJvdmlzaW9uYWxMb2FkKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaXNwYXRjaERpZFJlY2Vp
dmVUaXRsZShjb25zdCBXZWJDb3JlOjpTdHJpbmdXaXRoRGlyZWN0aW9uJikgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBkaXNwYXRjaERpZENvbW1pdExvYWQoT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1
cmVDb250ZW50Pikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaXNwYXRjaERpZEZhaWxQcm92aXNpb25h
bExvYWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpIG92ZXJyaWRlOworICAgIHZvaWQg
ZGlzcGF0Y2hEaWRGYWlsUHJvdmlzaW9uYWxMb2FkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJy
b3ImLCBXZWJDb3JlOjpXaWxsQ29udGludWVMb2FkaW5nKSBvdmVycmlkZTsKICAgICB2b2lkIGRp
c3BhdGNoRGlkRmFpbExvYWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpIG92ZXJyaWRl
OwogICAgIHZvaWQgZGlzcGF0Y2hEaWRGaW5pc2hEb2N1bWVudExvYWQoKSBvdmVycmlkZTsKICAg
ICB2b2lkIGRpc3BhdGNoRGlkRmluaXNoTG9hZCgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGEwZGU3ZTlmMmNjNDU0ZmJjYjZj
ZGMwZDcyN2MwNDRmYzIyZGNkY2MuLmRjZmUwYWM1ODY1YTg3NTliODdlYmY3YWEyZjY5MWYyODhl
MmY2ZGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNiBAQAorMjAxOS0wNC0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgorCisgICAgICAgIFtQcm9jZXNzLVN3YXAtT24tTmF2aWdhdGlvbl0gV2ViS2l0IGhhbmdz
IHdoZW4gZ29pbmcgYmFjayB0byBhIGZvcm0gc3VibWlzc2lvbidzIHBhZ2UgZHVlIHRvIFByb2Nl
c3MtU3dhcC1Pbi1OYXZpZ2F0aW9uIG9uIGlPUyAxMi4yIGFuZCBoaWdoZXIKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NzA5NworICAgICAgICA8cmRh
cjovL3Byb2JsZW0vNTAwNDgzMTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkIEFQSSB0ZXN0IGNvdmVyYWdlLgorCisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbToKKyAg
ICAgICAgKC1bUFNPTlNjaGVtZSB3ZWJWaWV3OnN0YXJ0VVJMU2NoZW1lVGFzazpdKToKKwogMjAx
OS0wNC0yMiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgUkVHUkVTU0lPTihyMjQxMjg5KTogW0dUS10gYWNjZXNzaWJpbGl0eS9yZW1vdmVkLWNv
bnRpbnVhdGlvbi1lbGVtZW50LWNhdXNlcy1jcmFzaC5odG1sIGFuZCBhY2Nlc3NpYmlsaXR5L3Jl
bW92ZWQtYW5vbnltb3VzLWJsb2NrLWNoaWxkLWNhdXNlcy1jcmFzaC5odG1sIGNyYXNoZXMKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3
YXBPbk5hdmlnYXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCmluZGV4IGZjNGZhNmExZGM1NDczZDk0OTQ1NWJk
OTUxNmZlYjFlMzI5MTFiNWQuLmE2MTc3NmVhYWQ4MmZiNTBiYzQ0NTg1ODc3MDEzZmY4YTFlNTYw
YjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJv
Y2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQpAQCAtMjc2LDYgKzI3NiwxMSBA
QCAtICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc3RhcnRVUkxTY2hlbWVUYXNr
OihpZCA8V0tVUkxTY2hlbWVUYXNrPil0YQogICAgICAgICBbKGlkPFdLVVJMU2NoZW1lVGFza1By
aXZhdGU+KXRhc2sgX2RpZFBlcmZvcm1SZWRpcmVjdGlvbjpyZWRpcmVjdFJlc3BvbnNlLmdldCgp
IG5ld1JlcXVlc3Q6cmVxdWVzdC5nZXQoKV07CiAgICAgfQogCisgICAgaWYgKFsoaWQ8V0tVUkxT
Y2hlbWVUYXNrUHJpdmF0ZT4pdGFzayBfb25seUlmQ2FjaGVkXSkgeworICAgICAgICBbdGFzayBk
aWRGYWlsV2l0aEVycm9yOltOU0Vycm9yIGVycm9yV2l0aERvbWFpbjpAIlRlc3RXZWJLaXRBUEki
IGNvZGU6MSB1c2VySW5mbzpuaWxdXTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIFJl
dGFpblB0cjxOU1VSTFJlc3BvbnNlPiByZXNwb25zZSA9IGFkb3B0TlMoW1tOU1VSTFJlc3BvbnNl
IGFsbG9jXSBpbml0V2l0aFVSTDpmaW5hbFVSTCBNSU1FVHlwZTpAInRleHQvaHRtbCIgZXhwZWN0
ZWRDb250ZW50TGVuZ3RoOjEgdGV4dEVuY29kaW5nTmFtZTpuaWxdKTsKICAgICBbdGFzayBkaWRS
ZWNlaXZlUmVzcG9uc2U6cmVzcG9uc2UuZ2V0KCldOwogCkBAIC00Mjc4LDYgKzQyODMsNzIgQEAg
VEVTVChQcm9jZXNzU3dhcCwgTmF2aWdhdGVUb0Nyb3NzU2l0ZVRoZW5CYWNrRnJvbUpTKQogICAg
IEVYUEVDVF9ORShhcHBsZVBJRCwgW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXSk7CiB9
CiAKK3N0YXRpYyBjb25zdCBjaGFyKiBjcm9zc1NpdGVGb3JtU3VibWlzc2lvbkJ5dGVzID0gUiJQ
U09OUkVTT1VSQ0UoCis8Ym9keT4KKzxmb3JtIGFjdGlvbj0icHNvbjovL3d3dy5hcHBsZS5jb20v
bWFpbi5odG1sIiBtZXRob2Q9InBvc3QiPgorTmFtZTogPGlucHV0IHR5cGU9InRleHQiIG5hbWU9
Im5hbWUiIHBsYWNlaG9sZGVyPSJOYW1lIj4KKzxpbnB1dCBpZD0ic3VibWl0QnV0dG9uIiB0eXBl
PSJzdWJtaXQiPgorPC9mb3JtPgorPC9ib2R5PgorKVBTT05SRVNPVVJDRSI7CisKK1RFU1QoUHJv
Y2Vzc1N3YXAsIFN3YXBPbkZvcm1TdWJtaXNzaW9uKQoreworICAgIGF1dG8gcHJvY2Vzc1Bvb2xD
b25maWd1cmF0aW9uID0gcHNvblByb2Nlc3NQb29sQ29uZmlndXJhdGlvbigpOworICAgIGF1dG8g
cHJvY2Vzc1Bvb2wgPSBhZG9wdE5TKFtbV0tQcm9jZXNzUG9vbCBhbGxvY10gX2luaXRXaXRoQ29u
ZmlndXJhdGlvbjpwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKworICAgIGF1dG8g
d2ViVmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBh
bGxvY10gaW5pdF0pOworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRQcm9jZXNzUG9vbDpw
cm9jZXNzUG9vbC5nZXQoKV07CisgICAgYXV0byBoYW5kbGVyID0gYWRvcHROUyhbW1BTT05TY2hl
bWUgYWxsb2NdIGluaXRdKTsKKyAgICBbaGFuZGxlciBhZGRNYXBwaW5nRnJvbVVSTFN0cmluZzpA
InBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiIHRvRGF0YTpjcm9zc1NpdGVGb3JtU3Vi
bWlzc2lvbkJ5dGVzXTsKKyAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0VVJMU2NoZW1lSGFu
ZGxlcjpoYW5kbGVyLmdldCgpIGZvclVSTFNjaGVtZTpAIlBTT04iXTsKKworICAgIGF1dG8gd2Vi
VmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVj
dCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjp3ZWJWaWV3Q29uZmlndXJhdGlvbi5nZXQo
KV0pOworICAgIGF1dG8gbmF2aWdhdGlvbkRlbGVnYXRlID0gYWRvcHROUyhbW1BTT05OYXZpZ2F0
aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICBbd2ViVmlldyBzZXROYXZpZ2F0aW9uRGVs
ZWdhdGU6bmF2aWdhdGlvbkRlbGVnYXRlLmdldCgpXTsKKworICAgIFt3ZWJWaWV3IGxvYWRSZXF1
ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJw
c29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIl1dXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmRvbmUpOworICAgIGRvbmUgPSBmYWxzZTsKKyAgICBhdXRvIHdlYmtpdFBJRCA9
IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CisgICAgRVhQRUNUX1dLX1NUUkVRKEAi
cHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCIsIFtbd2ViVmlldyBVUkxdIGFic29sdXRl
U3RyaW5nXSk7CisKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJzdWJtaXRCdXR0
b24uY2xpY2soKSIgY29tcGxldGlvbkhhbmRsZXI6bmlsXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmRvbmUpOworICAgIGRvbmUgPSBmYWxzZTsKKyAgICBhdXRvIGFwcGxlUElEID0g
W3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKKyAgICBFWFBFQ1RfTkUod2Via2l0UElE
LCBhcHBsZVBJRCk7CisgICAgRVhQRUNUX1dLX1NUUkVRKEAicHNvbjovL3d3dy5hcHBsZS5jb20v
bWFpbi5odG1sIiwgW1t3ZWJWaWV3IFVSTF0gYWJzb2x1dGVTdHJpbmddKTsKKworICAgIFt3ZWJW
aWV3IHJlbG9hZF07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBk
b25lID0gZmFsc2U7CisgICAgRVhQRUNUX0VRKGFwcGxlUElELCBbd2ViVmlldyBfd2ViUHJvY2Vz
c0lkZW50aWZpZXJdKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoQCJwc29uOi8vd3d3LmFwcGxlLmNv
bS9tYWluLmh0bWwiLCBbW3dlYlZpZXcgVVJMXSBhYnNvbHV0ZVN0cmluZ10pOworCisgICAgW3dl
YlZpZXcgZ29CYWNrXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAg
IGRvbmUgPSBmYWxzZTsKKyAgICBFWFBFQ1RfRVEod2Via2l0UElELCBbd2ViVmlldyBfd2ViUHJv
Y2Vzc0lkZW50aWZpZXJdKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoQCJwc29uOi8vd3d3LndlYmtp
dC5vcmcvbWFpbi5odG1sIiwgW1t3ZWJWaWV3IFVSTF0gYWJzb2x1dGVTdHJpbmddKTsKKworICAg
IFt3ZWJWaWV3IGdvRm9yd2FyZF07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25l
KTsKKyAgICBkb25lID0gZmFsc2U7CisgICAgRVhQRUNUX0VRKGFwcGxlUElELCBbd2ViVmlldyBf
d2ViUHJvY2Vzc0lkZW50aWZpZXJdKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoQCJwc29uOi8vd3d3
LmFwcGxlLmNvbS9tYWluLmh0bWwiLCBbW3dlYlZpZXcgVVJMXSBhYnNvbHV0ZVN0cmluZ10pOwor
CisgICAgW3dlYlZpZXcgZ29CYWNrXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRv
bmUpOworICAgIGRvbmUgPSBmYWxzZTsKKyNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAv
LyBUaGlzIGlzIG5vdCBndWFyYW50ZWVkIG9uIGlPUyBiZWNhdXNlIHRoZSBXZWJQcm9jZXNzIGNh
Y2hlIGlzIGRpc2FibGVkIG9uIGRldmljZXMgd2l0aCB0b28gbGl0dGxlIFJBTS4KKyAgICBFWFBF
Q1RfRVEod2Via2l0UElELCBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdKTsKKyNlbHNl
CisgICAgRVhQRUNUX05FKGFwcGxlUElELCBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJd
KTsKKyNlbmRpZgorICAgIEVYUEVDVF9XS19TVFJFUShAInBzb246Ly93d3cud2Via2l0Lm9yZy9t
YWluLmh0bWwiLCBbW3dlYlZpZXcgVVJMXSBhYnNvbHV0ZVN0cmluZ10pOworfQogCiBURVNUKFBy
b2Nlc3NTd2FwLCBDbG9zZVBhZ2VBZnRlckNyb3NzU2l0ZVByb3Zpc2lvbmFsTG9hZCkKIHsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>367982</attachid>
            <date>2019-04-22 14:55:48 -0700</date>
            <delta_ts>2019-04-23 08:07:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-197097-20190422145547.patch</filename>
            <type>text/plain</type>
            <size>39166</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ0NTExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWRlZWQ1YWYwOGY2MzE0
ZDU3MjhhZTJmOTY1NjgzMjY1Y2MwZTk1Yy4uMjc2M2UxZjMzMGMxZjE1OWYzMThkYTNjOGYxNzk2
ZjI5YjVjOTk0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE5LTA0LTIyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1Byb2Nlc3MtU3dhcC1Pbi1O
YXZpZ2F0aW9uXSBXZWJLaXQgaGFuZ3Mgd2hlbiBnb2luZyBiYWNrIHRvIGEgZm9ybSBzdWJtaXNz
aW9uJ3MgcGFnZSBkdWUgdG8gUHJvY2Vzcy1Td2FwLU9uLU5hdmlnYXRpb24gb24gaU9TIDEyLjIg
YW5kIGhpZ2hlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTk3MDk3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81MDA0ODMxOD4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGxvYWRlci9FbXB0eUZyYW1l
TG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpjaGVja0xvYWRDb21wbGV0ZUZvclRoaXNGcmFtZSk6
CisgICAgICAgIElmIHdlIHN0aWxsIGhhdmUgYSBwcm92aXNpb25hbCBpdGVtIChuZXcgbG9hZCBo
YXMgYmVlbiBzdGFydGVkIG9yIHdlIGRpZCBub3QgY2xlYXIgaXQgYmVjYXVzZSB3ZSdyZSBhYm91
dCB0byByZXRyeSksCisgICAgICAgIHRoZW4gbGV0IHRoZSBjbGllbnQga25vdyB0aGUgbG9hZCB3
aWxsIGNvbnRpbnVlIGJ5IHBhc3NpbmcgYW4gZXh0cmEgZmxhZyB3aXRoIHRoZSBkaWRGYWlsUHJv
dmlzaW9uYWxMb2FkLgorCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50Lmg6Cisg
ICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaDoKKwogMjAxOS0wNC0yMiAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIGxpYndlYnJ0YyBs
b2dnaW5nIHdoZW4gV2ViQ29yZSBXZWJSVEMgbG9nZ2luZyBpcyB1cGRhdGVkCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4
IGFhOTEzMGRmNjk1MGU3MzI4NDc1ODlmOTVmMmIxZDNlODg3YTM5MzcuLmEwMzUwOGIzMWFlNzdh
YTg4MmY5ZDAzNTAwMDBjNjMyNjA4ZmU0NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjAgQEAKKzIw
MTktMDQtMjIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbUHJv
Y2Vzcy1Td2FwLU9uLU5hdmlnYXRpb25dIFdlYktpdCBoYW5ncyB3aGVuIGdvaW5nIGJhY2sgdG8g
YSBmb3JtIHN1Ym1pc3Npb24ncyBwYWdlIGR1ZSB0byBQcm9jZXNzLVN3YXAtT24tTmF2aWdhdGlv
biBvbiBpT1MgMTIuMiBhbmQgaGlnaGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xOTcwOTcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUwMDQ4MzE4
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBp
c3N1ZSBpcyB0aGF0IHdoZW4gZG9pbmcgYSBoaXN0b3J5IG5hdmlnYXRpb24gd2l0aCBmb3JtIGRh
dGEsIHdlIHRyeSB0byByZXN1Ym1pdCB0aGUgZm9ybS4KKyAgICAgICAgV2UgaW5pdGlhbGx5IHVz
ZSB0aGUgUmV0dXJuQ2FjaGVEYXRhRG9udExvYWQgY2FjaGUgcG9saWN5IHdpdGhvdXQgcHJvbXB0
aW5nIHRoZSB1c2VyIHRvIGdldAorICAgICAgICBjYWNoZWQgZGF0YS4gSWYgdGhpcyBmYWlscywg
d2Ugc2VudCBhIERpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSBJUEMgdG8gdGhlIFVJUHJv
Y2VzcyBidXQKKyAgICAgICAgdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyBhY3R1YWxseSByZXRyaWVz
IHRoZSBsb2FkIHdpdGggUmV0dXJuQ2FjaGVEYXRhRWxzZUxvYWQgY2FjaGUgcG9saWN5LgorICAg
ICAgICBUaGlzIG5ldyBsb2FkIHRyaWdnZXJzIGEgbmV3IGRlY2lkZVBvbGljeUZvck5hdmlnYXRp
b25BY3Rpb24uCisKKyAgICAgICAgVGhpcyB3b3VsZCBjYXVzZSB0cm91YmxlIHdpdGggcHJvY2Vz
cy1zd2FwcGluZyBiZWNhdXNlIHdlIG5vcm1hbGx5IGRlc3Ryb3kgdGhlCisgICAgICAgIFByb3Zp
c2lvbmFsUGFnZVByb3h5IGFzIHNvb24gYXMgd2UgcmVjZWl2ZSBhIERpZEZhaWxQcm92aXNpb25h
bExvYWRGb3JGcmFtZSBJUEMgZnJvbSB0aGUKKyAgICAgICAgcHJvdmlzaW9uYWwgcHJvY2Vzcy4g
QXMgYSByZXN1bHQsIHRoZSBwcm92aXNpb25hbCBwcm9jZXNzIHdvdWxkIG5vdCBiZSBhYmxlIHRv
IHJldHJ5LgorCisgICAgICAgIFRvIGFkZHJlc3MgdGhlIGlzc3VlLCB3ZSBhZGQgcGFzcyBhIGZs
YWcgd2l0aCB0aGUgRGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lIElQQyB0bworICAgICAg
ICBpZiB0aGUgbG9hZCB3aWxsIGNvbnRpbnVlIG9yIG5vdC4gV2hlbiB0aGlzIGZsYWcgaXMgc2V0
LCB0aGUgVUlQcm9jZXNzIGRvZXMgbm90IGRlc3Ryb3kKKyAgICAgICAgdGhlIHByb3Zpc2lvbmFs
IHBhZ2UuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weToKKyAgICAgICAg
TWlub3IgSVBDIG1lc3NhZ2UgaGFuZGxlciBidWlsZCBmaXguCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL1dLVVJMU2NoZW1lVGFzay5tbToKKyAgICAgICAgKC1bV0tVUkxTY2hlbWVU
YXNrSW1wbCBfb25seUlmQ2FjaGVkXSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1VSTFNjaGVtZVRhc2tQcml2YXRlLmg6CisgICAgICAgIEFkZCBuZXcgX29ubHlJZkNhY2hlZCBT
UEkgdG8gV0tVUkxTY2hlbWVUYXNrUHJpdmF0ZSB0byBhbGxvdyBmb3IgQVBJIHRlc3RpbmcuCisK
KyAgICAgICAgKiBVSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6Y2FuY2VsKToKKyAgICAgICAgUGFzcyBXaWxs
Q29udGludWVMb2FkaW5nIGZsYWcuCisKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdl
UHJveHk6OnZhbGlkYXRlSW5wdXQpOgorICAgICAgICBDb25zaWRlciBJUEMgd2l0aCBhIG5hdmln
YXRpb25JRCBvZiAwIGFzIHZhbGlkLiBXaGVuIHRoZSBuYXZpZ2F0aW9uIGlzIHRyaWdnZXJlZCBi
eSB0aGUKKyAgICAgICAgV2ViQ29udGVudCBwcm9jZXNzLCBpdCBzZW5kcyB1cyBhIERlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyBJUEMgd2l0aCBhIG5hdmlnYXRpb25JRAorICAg
ICAgICBvZiAwLCB1bnRpbCB0aGUgVUlQcm9jZXNzIGNhbiBnZW5lcmF0ZSBhIHZhbGlkIGlkZW50
aWZpZXIuCisKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZEZhaWxQ
cm92aXNpb25hbExvYWRGb3JGcmFtZSk6CisKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQ
YWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyk6CisgICAgICAg
IFdoZW4gdGhlIFdlYlBhZ2VQcm94eSBoYXMgZ2VuZXJhdGVkIGEgbmF2aWdhdGlvbklEIGZvciB0
aGUgbmV3IFdlYkNvbnRlbnQgcHJvY2Vzcy1pbml0aWF0ZWQKKyAgICAgICAgbmF2aWdhdGlvbiwg
dXBkYXRlIG1fbmF2aWdhdGlvbklEIHNvIHRoYXQgZm9sbG93LXVwIElQQyBpcyBjb25zaWRlcmVk
IHZhbGlkLgorCisgICAgICAgICogVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5Lmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRp
b25BY3Rpb25Bc3luY1NoYXJlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERp
ZEZhaWxQcm92aXNpb25hbExvYWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKwogMjAxOS0wNC0yMiAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyNDQ1
MDIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggODAxOTc3YTIxYTlkNjI0ODk4M2Fk
ZmNhODVhYzg4YzUzNjYxYzJkMS4uMzkwNTMyNDRiZTM4NGRhZDIxOTg4NTdmZGE1Y2NjMmI2ZWU1
N2RmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5
LTA0LTIyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1Byb2Nl
c3MtU3dhcC1Pbi1OYXZpZ2F0aW9uXSBXZWJLaXQgaGFuZ3Mgd2hlbiBnb2luZyBiYWNrIHRvIGEg
Zm9ybSBzdWJtaXNzaW9uJ3MgcGFnZSBkdWUgdG8gUHJvY2Vzcy1Td2FwLU9uLU5hdmlnYXRpb24g
b24gaU9TIDEyLjIgYW5kIGhpZ2hlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTk3MDk3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81MDA0ODMxOD4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW06CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVu
dDo6ZGlzcGF0Y2hEaWRGYWlsUHJvdmlzaW9uYWxMb2FkKToKKwogMjAxOS0wNC0xOCAgRGFuaWVs
IEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIGV4aXN0aW5nIEtleUV2
ZW50Q29kZXNJT1MgY29uc3RhbnRzIGluc3RlYWQgb2YgZHVwbGljYXRpbmcgdGhlbQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vQ2hhbmdlTG9nCmluZGV4IGMxZDA2ODM0YmNhYTlhNzFkZWI2ZWE5ODY3NTU1YmI1
ZmZmNWQ3NmYuLjU5OGNmYWQ1ZGYwZmJiZGY2NTIyYjNjYTdkN2QyYjkwNDlhNmZiZGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxOS0wNC0yMiAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFtQcm9jZXNzLVN3YXAtT24t
TmF2aWdhdGlvbl0gV2ViS2l0IGhhbmdzIHdoZW4gZ29pbmcgYmFjayB0byBhIGZvcm0gc3VibWlz
c2lvbidzIHBhZ2UgZHVlIHRvIFByb2Nlc3MtU3dhcC1Pbi1OYXZpZ2F0aW9uIG9uIGlPUyAxMi4y
IGFuZCBoaWdoZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5NzA5NworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTAwNDgzMTg+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6
ZGlzcGF0Y2hEaWRGYWlsUHJvdmlzaW9uYWxMb2FkKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorCiAyMDE5LTA0LTIwICBEb24gT2xtc3RlYWQgIDxk
b24ub2xtc3RlYWRAc29ueS5jb20+CiAKICAgICAgICAgW0NNYWtlXVtXaW5dIFVzZSB0YXJnZXQg
b3JpZW50ZWQgZGVzaWduIGZvciBXZWJLaXRMZWdhY3kKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IGE4ZDJjODg5OGNlNDZmNmI1NzFkYWFk
ZjEzZDU1MTM1OGJhMjI0ZmEuLjRmMGJiODZkZGQ1MDk5ZTMxMWQ4OWE0OWJlM2EzYmU0MDc3ZjVl
NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQu
aApAQCAtODQsNyArODQsNyBAQCBjbGFzcyBXRUJDT1JFX0VYUE9SVCBFbXB0eUZyYW1lTG9hZGVy
Q2xpZW50IDogcHVibGljIEZyYW1lTG9hZGVyQ2xpZW50IHsKICAgICB2b2lkIGRpc3BhdGNoRGlk
U3RhcnRQcm92aXNpb25hbExvYWQoKSBmaW5hbCB7IH0KICAgICB2b2lkIGRpc3BhdGNoRGlkUmVj
ZWl2ZVRpdGxlKGNvbnN0IFN0cmluZ1dpdGhEaXJlY3Rpb24mKSBmaW5hbCB7IH0KICAgICB2b2lk
IGRpc3BhdGNoRGlkQ29tbWl0TG9hZChPcHRpb25hbDxIYXNJbnNlY3VyZUNvbnRlbnQ+KSBmaW5h
bCB7IH0KLSAgICB2b2lkIGRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZChjb25zdCBSZXNv
dXJjZUVycm9yJikgZmluYWwgeyB9CisgICAgdm9pZCBkaXNwYXRjaERpZEZhaWxQcm92aXNpb25h
bExvYWQoY29uc3QgUmVzb3VyY2VFcnJvciYsIFdpbGxDb250aW51ZUxvYWRpbmcpIGZpbmFsIHsg
fQogICAgIHZvaWQgZGlzcGF0Y2hEaWRGYWlsTG9hZChjb25zdCBSZXNvdXJjZUVycm9yJikgZmlu
YWwgeyB9CiAgICAgdm9pZCBkaXNwYXRjaERpZEZpbmlzaERvY3VtZW50TG9hZCgpIGZpbmFsIHsg
fQogICAgIHZvaWQgZGlzcGF0Y2hEaWRGaW5pc2hMb2FkKCkgZmluYWwgeyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCBlMDE4MjVlNTdiMWZlNzU4OGJhNTIxMjdmNWZk
Mjg2NDc1YWZjOTI5Li41NzczYzk4YTAyMWZiYzE1MjNiZGQ2MDk4N2E5NGYxNmExNmZhZjVhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTI0NjUsNyArMjQ2NSw4IEBA
IHZvaWQgRnJhbWVMb2FkZXI6OmNoZWNrTG9hZENvbXBsZXRlRm9yVGhpc0ZyYW1lKCkKICAgICAg
ICAgICAgIGlmICghcGRsLT5pc0xvYWRpbmdJbkFQSVNlbnNlKCkgfHwgcGRsLT5pc1N0b3BwaW5n
KCkpIHsKICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJjaGVja0xvYWRD
b21wbGV0ZUZvclRoaXNGcmFtZTogRmFpbGVkIHByb3Zpc2lvbmFsIGxvYWQgKGZyYW1lID0gJXAs
IG1haW4gPSAlZCwgaXNUaW1lb3V0ID0gJWQsIGlzQ2FuY2VsbGF0aW9uID0gJWQsIGVycm9yQ29k
ZSA9ICVkKSIsICZtX2ZyYW1lLCBtX2ZyYW1lLmlzTWFpbkZyYW1lKCksIGVycm9yLmlzVGltZW91
dCgpLCBlcnJvci5pc0NhbmNlbGxhdGlvbigpLCBlcnJvci5lcnJvckNvZGUoKSk7CiAgICAgICAg
ICAgICAgICAgbV9wcm92aXNpb25hbExvYWRFcnJvckJlaW5nSGFuZGxlZFVSTCA9IG1fcHJvdmlz
aW9uYWxEb2N1bWVudExvYWRlci0+dXJsKCk7Ci0gICAgICAgICAgICAgICAgbV9jbGllbnQuZGlz
cGF0Y2hEaWRGYWlsUHJvdmlzaW9uYWxMb2FkKGVycm9yKTsKKworICAgICAgICAgICAgICAgIG1f
Y2xpZW50LmRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZChlcnJvciwgaGlzdG9yeSgpLnBy
b3Zpc2lvbmFsSXRlbSgpID8gV2lsbENvbnRpbnVlTG9hZGluZzo6WWVzIDogV2lsbENvbnRpbnVl
TG9hZGluZzo6Tm8pOwogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKICAgICAgICAgICAg
ICAgICBpZiAoYXV0byBjb250ZW50RmlsdGVyID0gcGRsLT5jb250ZW50RmlsdGVyKCkpCiAgICAg
ICAgICAgICAgICAgICAgIGNvbnRlbnRGaWx0ZXItPmhhbmRsZVByb3Zpc2lvbmFsTG9hZEZhaWx1
cmUoZXJyb3IpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
Q2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAppbmRl
eCBmYTFkZjYwYTNhOWExMjNlYWViNzEyMzkxMTY3ZDc2OGNhYzFmNDhiLi5lYzM5MTI3YTFhZDZj
MjVlMGQzNDZiZTdhNDY4Y2I2ZWE5OGYzZmM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXJDbGllbnQuaApAQCAtMTc3LDcgKzE3Nyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgZGlzcGF0Y2hEaWRTdGFydFByb3Zpc2lvbmFsTG9hZCgpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZlVGl0bGUoY29uc3QgU3RyaW5nV2l0aERpcmVjdGlvbiYp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRDb21taXRMb2FkKE9wdGlvbmFsPEhh
c0luc2VjdXJlQ29udGVudD4pID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRGYWls
UHJvdmlzaW9uYWxMb2FkKGNvbnN0IFJlc291cmNlRXJyb3ImKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIGRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZChjb25zdCBSZXNvdXJjZUVycm9yJiwg
V2lsbENvbnRpbnVlTG9hZGluZykgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZEZh
aWxMb2FkKGNvbnN0IFJlc291cmNlRXJyb3ImKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpc3Bh
dGNoRGlkRmluaXNoRG9jdW1lbnRMb2FkKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRj
aERpZEZpbmlzaExvYWQoKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RnJhbWVMb2FkZXJUeXBlcy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyVHlw
ZXMuaAppbmRleCBhZDcyYWY2MTY0YTg1YzgxN2I4NDQ0M2U2ZjRkZjZmNzhhODA0MmNlLi41OTZh
ZDdkZjk4YjVjZTEyOTFlNjA2MTkwZGY5NGU5ZDcyMjRhYjI3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJUeXBlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlclR5cGVzLmgKQEAgLTY3LDYgKzY3LDggQEAgZW51bSBjbGFzcyBGcmFt
ZUxvYWRUeXBlIDogdWludDhfdCB7CiAgICAgUmVsb2FkRXhwaXJlZE9ubHkKIH07CiAKK2VudW0g
Y2xhc3MgV2lsbENvbnRpbnVlTG9hZGluZyA6IGJvb2wgeyBObywgWWVzIH07CisKIGNsYXNzIFBv
bGljeUNoZWNrSWRlbnRpZmllciB7CiBwdWJsaWM6CiAgICAgUG9saWN5Q2hlY2tJZGVudGlmaWVy
KCkgPSBkZWZhdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9t
ZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5k
ZXggYTg4NWJiMDYyY2VmOGI1MWFkOTc1NjMwYjUyODU0ZjUwNGQxNWE0YS4uOGU1MmFjMDNjMjgw
NTIxOGI5YWFjYWVjOGIzNjYwOTM3OWUxNjVkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
Y3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Vi
a2l0L21lc3NhZ2VzLnB5CkBAIC00NjIsNiArNDYyLDcgQEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUo
dHlwZSk6CiAgICAgICAgICdXZWJDb3JlOjpUZXh0Q2hlY2tpbmdUeXBlJzogWyc8V2ViQ29yZS9U
ZXh0Q2hlY2tpbmcuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlRleHRJbmRpY2F0b3JEYXRhJzog
Wyc8V2ViQ29yZS9UZXh0SW5kaWNhdG9yLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpWaWV3cG9y
dEF0dHJpYnV0ZXMnOiBbJzxXZWJDb3JlL1ZpZXdwb3J0QXJndW1lbnRzLmg+J10sCisgICAgICAg
ICdXZWJDb3JlOjpXaWxsQ29udGludWVMb2FkaW5nJzogWyc8V2ViQ29yZS9GcmFtZUxvYWRlclR5
cGVzLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpTZWxlY3Rpb25SZWN0JzogWyciRWRpdG9yU3Rh
dGUuaCInXSwKICAgICAgICAgJ1dlYktpdDo6QWN0aXZpdHlTdGF0ZUNoYW5nZUlEJzogWyciRHJh
d2luZ0FyZWFJbmZvLmgiJ10sCiAgICAgICAgICdXZWJLaXQ6OkJhY2tGb3J3YXJkTGlzdEl0ZW1T
dGF0ZSc6IFsnIlNlc3Npb25TdGF0ZS5oIiddLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLVVJMU2NoZW1lVGFzay5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1VSTFNjaGVtZVRhc2subW0KaW5kZXggOGE1NDJlMDYwODNkODI2
NDk1NDYzZWY3ZmVlYWNhOWU1Y2FhMDM2NS4uZjEzZTJhNzQ3MTFiMDY2MDY3Y2YxNTk2NzgzMzY0
YjgxOGE5MmRlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLVVJMU2NoZW1lVGFzay5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tVUkxTY2hlbWVUYXNrLm1tCkBAIC03MCw2ICs3MCwxMSBAQCAtIChOU1VSTFJlcXVlc3Qg
KilyZXF1ZXN0CiAgICAgcmV0dXJuIF91cmxTY2hlbWVUYXNrLT50YXNrKCkucmVxdWVzdCgpLm5z
VVJMUmVxdWVzdChXZWJDb3JlOjpIVFRQQm9keVVwZGF0ZVBvbGljeTo6VXBkYXRlSFRUUEJvZHkp
OwogfQogCistIChCT09MKV9vbmx5SWZDYWNoZWQKK3sKKyAgICByZXR1cm4gX3VybFNjaGVtZVRh
c2stPnRhc2soKS5yZXF1ZXN0KCkuY2FjaGVQb2xpY3koKSA9PSBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3RDYWNoZVBvbGljeTo6UmV0dXJuQ2FjaGVEYXRhRG9udExvYWQ7Cit9CisKIC0gKHZvaWQp
ZGlkUmVjZWl2ZVJlc3BvbnNlOihOU1VSTFJlc3BvbnNlICopcmVzcG9uc2UKIHsKICAgICBhdXRv
IHJlc3VsdCA9IF91cmxTY2hlbWVUYXNrLT50YXNrKCkuZGlkUmVjZWl2ZVJlc3BvbnNlKHJlc3Bv
bnNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VS
TFNjaGVtZVRhc2tQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tVUkxTY2hlbWVUYXNrUHJpdmF0ZS5oCmluZGV4IDYyNDE5NzVlM2M3YmQ4ODE5NzczYjlhNjQ0
NWVjZjdiMDVjNmYzMWUuLjc3MTg4ZDg0MDkwM2FiOTdhMmI3ZGViMzJhMjk3NjlmNmJhNjdmNzEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VSTFNjaGVt
ZVRhc2tQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
VVJMU2NoZW1lVGFza1ByaXZhdGUuaApAQCAtMzAsNCArMzAsNiBAQCBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjEzKSwgaW9zKDExLjApKQogCiAtICh2b2lkKV9kaWRQZXJmb3JtUmVkaXJlY3Rp
b246KE5TVVJMUmVzcG9uc2UgKilyZXNwb25zZSBuZXdSZXF1ZXN0OihOU1VSTFJlcXVlc3QgKily
ZXF1ZXN0OwogCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX29ubHlJZkNh
Y2hlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkp
OworCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25h
bFBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQ
cm94eS5jcHAKaW5kZXggOThlZmNjOGUxOTQ2NTNkNzAwZGNlMjkzZmJkYWRlMjVkNmRmYWIzZi4u
Zjg5MDA4NjczNzI2ZGI1Nzk0YTE3NWE5NGEzYmFhMDM5OGYwYzI0MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcApAQCAtMTM0LDcgKzEz
NCw3IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmNhbmNlbCgpCiAgICAgQVNTRVJUKG1f
bWFpbkZyYW1lKTsKICAgICBhdXRvIGVycm9yID0gV2ViS2l0OjpjYW5jZWxsZWRFcnJvcihtX3Jl
cXVlc3QpOwogICAgIGVycm9yLnNldFR5cGUoV2ViQ29yZTo6UmVzb3VyY2VFcnJvcjo6VHlwZTo6
Q2FuY2VsbGF0aW9uKTsKLSAgICBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUobV9tYWlu
RnJhbWUtPmZyYW1lSUQoKSwgeyB9LCBtX25hdmlnYXRpb25JRCwgbV9wcm92aXNpb25hbExvYWRV
UkwsIGVycm9yLCBVc2VyRGF0YSB7IH0pOyAvLyBXaWxsIGRlbGV0ZSB8dGhpc3wuCisgICAgZGlk
RmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKG1fbWFpbkZyYW1lLT5mcmFtZUlEKCksIHsgfSwg
bV9uYXZpZ2F0aW9uSUQsIG1fcHJvdmlzaW9uYWxMb2FkVVJMLCBlcnJvciwgV2ViQ29yZTo6V2ls
bENvbnRpbnVlTG9hZGluZzo6Tm8sIFVzZXJEYXRhIHsgfSk7IC8vIFdpbGwgZGVsZXRlIHx0aGlz
fC4KIH0KIAogdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6aW5pdGlhbGl6ZVdlYlBhZ2UoKQpA
QCAtMTg5LDcgKzE4OSw3IEBAIGlubGluZSBib29sIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojp2YWxp
ZGF0ZUlucHV0KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IE9wdGlvbmFsCiAgICAgaWYgKCFtX21h
aW5GcmFtZSB8fCBtX21haW5GcmFtZS0+ZnJhbWVJRCgpICE9IGZyYW1lSUQpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAotICAgIHJldHVybiAhbmF2aWdhdGlvbklEIHx8ICpuYXZpZ2F0aW9uSUQg
PT0gbV9uYXZpZ2F0aW9uSUQ7CisgICAgcmV0dXJuICFuYXZpZ2F0aW9uSUQgfHwgISpuYXZpZ2F0
aW9uSUQgfHwgKm5hdmlnYXRpb25JRCA9PSBtX25hdmlnYXRpb25JRDsKIH0KIAogdm9pZCBQcm92
aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ3JlYXRlTWFpbkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCkBA
IC0yNDcsNyArMjQ3LDcgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkU3RhcnRQcm92
aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW4KICAgICBtX3BhZ2UuZGlk
U3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBm
cmFtZUlELCBuYXZpZ2F0aW9uSUQsIFdURk1vdmUodXJsKSwgV1RGTW92ZSh1bnJlYWNoYWJsZVVS
TCksIHVzZXJEYXRhKTsKIH0KIAotdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkRmFpbFBy
b3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlv
bklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZUVycm9yJiBlcnJvciwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBQcm92aXNpb25h
bFBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1l
SUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdp
biwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBlcnJvciwgV2ViQ29yZTo6V2lsbENvbnRpbnVl
TG9hZGluZyB3aWxsQ29udGludWVMb2FkaW5nLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7
CiAgICAgaWYgKCF2YWxpZGF0ZUlucHV0KGZyYW1lSUQsIG5hdmlnYXRpb25JRCkpCiAgICAgICAg
IHJldHVybjsKQEAgLTI2MCw3ICsyNjAsNyBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojpk
aWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29ucwogICAg
IGlmIChhdXRvKiBwYWdlTWFpbkZyYW1lID0gbV9wYWdlLm1haW5GcmFtZSgpKQogICAgICAgICBw
YWdlTWFpbkZyYW1lLT5kaWRGYWlsUHJvdmlzaW9uYWxMb2FkKCk7CiAKLSAgICBtX3BhZ2UuZGlk
RmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIGZy
YW1lSUQsIGZyYW1lU2VjdXJpdHlPcmlnaW4sIG5hdmlnYXRpb25JRCwgcHJvdmlzaW9uYWxVUkws
IGVycm9yLCB1c2VyRGF0YSk7IC8vIFdpbGwgZGVsZXRlIHx0aGlzfC4KKyAgICBtX3BhZ2UuZGlk
RmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIGZy
YW1lSUQsIGZyYW1lU2VjdXJpdHlPcmlnaW4sIG5hdmlnYXRpb25JRCwgcHJvdmlzaW9uYWxVUkws
IGVycm9yLCB3aWxsQ29udGludWVMb2FkaW5nLCB1c2VyRGF0YSk7IC8vIE1heSBkZWxldGUgfHRo
aXN8LgogfQogCiB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRDb21taXRMb2FkRm9yRnJh
bWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcm
IG1pbWVUeXBlLCBib29sIGZyYW1lSGFzQ3VzdG9tQ29udGVudFByb3ZpZGVyLCB1aW50MzJfdCBm
cmFtZUxvYWRUeXBlLCBjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRl
SW5mbywgYm9vbCBjb250YWluc1BsdWdpbkRvY3VtZW50LCBPcHRpb25hbDxXZWJDb3JlOjpIYXNJ
bnNlY3VyZUNvbnRlbnQ+IGZvcmNlZEhhc0luc2VjdXJlQ29udGVudCwgY29uc3QgVXNlckRhdGEm
IHVzZXJEYXRhKQpAQCAtMzc4LDExICszNzgsMTQgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94
eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkQK
IAogICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VOYW1lKCkgPT0gTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6RGlkU3RhcnRQcm9ncmVzczo6bmFtZSgpCiAgICAgICAgIHx8IGRlY29kZXIubWVzc2FnZU5h
bWUoKSA9PSBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRDaGFuZ2VQcm9ncmVzczo6bmFtZSgp
CisgICAgICAgIHx8IGRlY29kZXIubWVzc2FnZU5hbWUoKSA9PSBNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpEaWREZXN0cm95TmF2aWdhdGlvbjo6bmFtZSgpCisgICAgICAgIHx8IGRlY29kZXIubWVz
c2FnZU5hbWUoKSA9PSBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRGaW5pc2hQcm9ncmVzczo6
bmFtZSgpCiAgICAgICAgIHx8IGRlY29kZXIubWVzc2FnZU5hbWUoKSA9PSBNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpCYWNrRm9yd2FyZEFkZEl0ZW06Om5hbWUoKQogICAgICAgICB8fCBkZWNvZGVy
Lm1lc3NhZ2VOYW1lKCkgPT0gTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6TG9nRGlhZ25vc3RpY01l
c3NhZ2U6Om5hbWUoKQogICAgICAgICB8fCBkZWNvZGVyLm1lc3NhZ2VOYW1lKCkgPT0gTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6TG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoRW5oYW5jZWRQcml2YWN5
OjpuYW1lKCkKICAgICAgICAgfHwgZGVjb2Rlci5tZXNzYWdlTmFtZSgpID09IE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OkxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlRGljdGlvbmFyeTo6bmFt
ZSgpCiAgICAgICAgIHx8IGRlY29kZXIubWVzc2FnZU5hbWUoKSA9PSBNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpTZXROZXR3b3JrUmVxdWVzdHNJblByb2dyZXNzOjpuYW1lKCkKKyAgICAgICAgfHwg
ZGVjb2Rlci5tZXNzYWdlTmFtZSgpID09IE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OldpbGxHb1Rv
QmFja0ZvcndhcmRMaXN0SXRlbTo6bmFtZSgpCiAjaWYgVVNFKFFVSUNLX0xPT0spCiAgICAgICAg
IHx8IGRlY29kZXIubWVzc2FnZU5hbWUoKSA9PSBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRT
dGFydExvYWRGb3JRdWlja0xvb2tEb2N1bWVudEluTWFpbkZyYW1lOjpuYW1lKCkKICAgICAgICAg
fHwgZGVjb2Rlci5tZXNzYWdlTmFtZSgpID09IE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZEZp
bmlzaExvYWRGb3JRdWlja0xvb2tEb2N1bWVudEluTWFpbkZyYW1lOjpuYW1lKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5oCmluZGV4IDRlZjJiNzZk
NTg3ZTkzY2QwOGU3YzVhNDVjNDg4MGZmZTg1MjNlMzMuLjY0NTZjMWY5MTZkNTk3NTUwNmMxNTI3
OTRhZjJlNmI2NjhjMGJmNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1By
b3Zpc2lvbmFsUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlz
aW9uYWxQYWdlUHJveHkuaApAQCAtNzQsNiArNzQsOCBAQCBwdWJsaWM6CiAgICAgRHJhd2luZ0Fy
ZWFQcm94eSogZHJhd2luZ0FyZWEoKSBjb25zdCB7IHJldHVybiBtX2RyYXdpbmdBcmVhLmdldCgp
OyB9CiAgICAgc3RkOjp1bmlxdWVfcHRyPERyYXdpbmdBcmVhUHJveHk+IHRha2VEcmF3aW5nQXJl
YSgpOwogCisgICAgdm9pZCBzZXROYXZpZ2F0aW9uSUQodWludDY0X3QgbmF2aWdhdGlvbklEKSB7
IG1fbmF2aWdhdGlvbklEID0gbmF2aWdhdGlvbklEOyB9CisKICNpZiBQTEFURk9STShDT0NPQSkK
ICAgICBWZWN0b3I8dWludDhfdD4gdGFrZUFjY2Vzc2liaWxpdHlUb2tlbigpIHsgcmV0dXJuIFdU
Rk1vdmUobV9hY2Nlc3NpYmlsaXR5VG9rZW4pOyB9CiAjZW5kaWYKQEAgLTEwNCw3ICsxMDYsNyBA
QCBwcml2YXRlOgogICAgIHZvaWQgZGlkQ3JlYXRlTWFpbkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQp
OwogICAgIHZvaWQgZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFt
ZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmLCBVUkwmJiB1bnJlYWNoYWJsZVVSTCwg
Y29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIGRpZENvbW1pdExvYWRGb3JGcmFtZSh1aW50NjRf
dCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUs
IGJvb2wgZnJhbWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXIsIHVpbnQzMl90IGZyYW1lTG9hZFR5
cGUsIGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYsIGJvb2wgY29udGFpbnNQbHVnaW5E
b2N1bWVudCwgT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50PiBmb3JjZWRIYXNJ
bnNlY3VyZUNvbnRlbnQsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRGYWlsUHJvdmlz
aW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQs
IGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJy
b3ImLCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZv
ckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJp
bmcmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgV2ViQ29y
ZTo6V2lsbENvbnRpbnVlTG9hZGluZywgY29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIHN0YXJ0
VVJMU2NoZW1lVGFzayhVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyYmKTsKICAgICB2b2lkIGJhY2tG
b3J3YXJkR29Ub0l0ZW0oY29uc3QgV2ViQ29yZTo6QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYpPiYmKTsK
ICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKHVpbnQ2NF90IGZy
YW1lSUQsIGJvb2wgaXNNYWluRnJhbWUsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBX
ZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2
aWdhdGlvbkFjdGlvbkRhdGEmJiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCmluZGV4IGI2N2RjMjIyODE2NzFjZWJkNWQwMDBjMjA0ZDU1MDY3MzczZjNiNzcuLmZmZWY3
YWI3Y2U4N2ZhNmYxYTlkYTgxYjA4Yzc5MmJhMWE5N2ZlZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMjc2Nyw3ICsyNzY3LDYgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OnJlY2VpdmVkTmF2aWdhdGlvblBvbGljeURlY2lzaW9uKFBvbGljeUFjdGlvbiBwb2xp
Y3lBY3Rpb24sIEEKICAgICBVUkwgc291cmNlVVJMID0gVVJMIHsgVVJMKCksIHBhZ2VMb2FkU3Rh
dGUoKS51cmwoKSB9OwogICAgIGlmIChhdXRvKiBwcm92aXNpb25hbFBhZ2UgPSBwcm92aXNpb25h
bFBhZ2VQcm94eSgpKSB7CiAgICAgICAgIGlmIChwcm92aXNpb25hbFBhZ2UtPm5hdmlnYXRpb25J
RCgpID09IG5hdmlnYXRpb24tPm5hdmlnYXRpb25JRCgpKSB7Ci0gICAgICAgICAgICBBU1NFUlQo
bmF2aWdhdGlvbi0+Y3VycmVudFJlcXVlc3RJc1JlZGlyZWN0KCkpOwogICAgICAgICAgICAgc291
cmNlUHJvY2VzcyA9IHByb3Zpc2lvbmFsUGFnZS0+cHJvY2VzcygpOwogICAgICAgICAgICAgc291
cmNlVVJMID0gcHJvdmlzaW9uYWxQYWdlLT5wcm92aXNpb25hbFVSTCgpOwogICAgICAgICB9CkBA
IC00MDI3LDE3ICs0MDI2LDE3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VQcm92aXNp
b25hbFVSTEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYKICAgICBmcmFtZS0+
ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkKHVybCk7CiB9CiAKLXZv
aWQgV2ViUGFnZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3Qg
ZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNvbnN0
IFJlc291cmNlRXJyb3ImIGVycm9yLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFdl
YlBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1l
SUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0
X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBSZXNv
dXJjZUVycm9yJiBlcnJvciwgV2lsbENvbnRpbnVlTG9hZGluZyB3aWxsQ29udGludWVMb2FkaW5n
LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgaWYgKG1fcHJvdmlzaW9uYWxQYWdl
ICYmIG1fcHJvdmlzaW9uYWxQYWdlLT5uYXZpZ2F0aW9uSUQoKSA9PSBuYXZpZ2F0aW9uSUQpIHsK
ICAgICAgICAgLy8gVGhlIGxvYWQgZGlkIG5vdCBmYWlsLCBpdCBpcyBtZXJlbHkgaGFwcGVuaW5n
IGluIGEgbmV3IHByb3Zpc2lvbmFsIHByb2Nlc3MuCiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
LSAgICBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQobV9wcm9jZXNzLmNvcHlS
ZWYoKSwgZnJhbWVJRCwgZnJhbWVTZWN1cml0eU9yaWdpbiwgbmF2aWdhdGlvbklELCBwcm92aXNp
b25hbFVSTCwgZXJyb3IsIHVzZXJEYXRhKTsKKyAgICBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9y
RnJhbWVTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgZnJhbWVJRCwgZnJhbWVTZWN1cml0eU9y
aWdpbiwgbmF2aWdhdGlvbklELCBwcm92aXNpb25hbFVSTCwgZXJyb3IsIHdpbGxDb250aW51ZUxv
YWRpbmcsIHVzZXJEYXRhKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZhaWxQcm92aXNp
b25hbExvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIHVp
bnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9y
aWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJM
LCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQor
dm9pZCBXZWJQYWdlUHJveHk6OmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChS
ZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNl
Y3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlv
bklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBSZXNvdXJjZUVycm9yJiBl
cnJvciwgV2lsbENvbnRpbnVlTG9hZGluZyB3aWxsQ29udGludWVMb2FkaW5nLCBjb25zdCBVc2Vy
RGF0YSYgdXNlckRhdGEpCiB7CiAgICAgTE9HKExvYWRpbmcsICIoTG9hZGluZykgV2ViUGFnZVBy
b3h5ICUiIFBSSXU2NCAiIGluIHdlYiBwcm9jZXNzIHBpZCAlaSBkaWRGYWlsUHJvdmlzaW9uYWxM
b2FkRm9yRnJhbWUgdG8gcHJvdmlzaW9uYWxVUkwgJXMiLCBtX3BhZ2VJRCwgcHJvY2Vzcy0+cHJv
Y2Vzc0lkZW50aWZpZXIoKSwgcHJvdmlzaW9uYWxVUkwudXRmOCgpLmRhdGEoKSk7CiAgICAgUkVM
RUFTRV9MT0dfSUZfQUxMT1dFRChQcm9jZXNzLCAiZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZy
YW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1
NjQgIiwgZG9tYWluID0gJXMsIGNvZGUgPSAlZCIsIHByb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVy
KCksIG1fcGFnZUlELCBmcmFtZUlELCBlcnJvci5kb21haW4oKS51dGY4KCkuZGF0YSgpLCBlcnJv
ci5lcnJvckNvZGUoKSk7CkBAIC00MDg0LDcgKzQwODMsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+
JiYgcAogICAgIG1fZmFpbGluZ1Byb3Zpc2lvbmFsTG9hZFVSTCA9IHsgfTsKIAogICAgIC8vIElm
IHRoZSBwcm92aXNpb25hbCBwYWdlJ3MgbG9hZCBmYWlscyB0aGVuIHdlIGRlc3Ryb3kgdGhlIHBy
b3Zpc2lvbmFsIHBhZ2UuCi0gICAgaWYgKG1fcHJvdmlzaW9uYWxQYWdlICYmIG1fcHJvdmlzaW9u
YWxQYWdlLT5tYWluRnJhbWUoKSA9PSBmcmFtZSkKKyAgICBpZiAobV9wcm92aXNpb25hbFBhZ2Ug
JiYgbV9wcm92aXNpb25hbFBhZ2UtPm1haW5GcmFtZSgpID09IGZyYW1lICYmIHdpbGxDb250aW51
ZUxvYWRpbmcgPT0gV2lsbENvbnRpbnVlTG9hZGluZzo6Tm8pCiAgICAgICAgIG1fcHJvdmlzaW9u
YWxQYWdlID0gbnVsbHB0cjsKIH0KIApAQCAtNDU2OSw3ICs0NTY4LDEyIEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFJlZjxXZWJQcm9jZXNzUHJv
eHk+JiYgcHJvY2VzCiAgICAgICAgICAgICBuYXZpZ2F0aW9uID0gbV9uYXZpZ2F0aW9uU3RhdGUt
PmNyZWF0ZUxvYWRSZXF1ZXN0TmF2aWdhdGlvbihSZXNvdXJjZVJlcXVlc3QocmVxdWVzdCksIG1f
YmFja0ZvcndhcmRMaXN0LT5jdXJyZW50SXRlbSgpKTsKICAgICB9CiAKLSAgICB1aW50NjRfdCBu
ZXdOYXZpZ2F0aW9uSUQgPSBuYXZpZ2F0aW9uLT5uYXZpZ2F0aW9uSUQoKTsKKyAgICBuYXZpZ2F0
aW9uSUQgPSBuYXZpZ2F0aW9uLT5uYXZpZ2F0aW9uSUQoKTsKKworICAgIC8vIE1ha2Ugc3VyZSB0
aGUgcHJvdmlzaW9uYWwgcGFnZSBhbHdheXMgaGFzIHRoZSBsYXRlc3QgbmF2aWdhdGlvbklELgor
ICAgIGlmIChtX3Byb3Zpc2lvbmFsUGFnZSAmJiAmbV9wcm92aXNpb25hbFBhZ2UtPnByb2Nlc3Mo
KSA9PSBwcm9jZXNzLnB0cigpKQorICAgICAgICBtX3Byb3Zpc2lvbmFsUGFnZS0+c2V0TmF2aWdh
dGlvbklEKG5hdmlnYXRpb25JRCk7CisKICAgICBuYXZpZ2F0aW9uLT5zZXRDdXJyZW50UmVxdWVz
dChSZXNvdXJjZVJlcXVlc3QocmVxdWVzdCksIHByb2Nlc3MtPmNvcmVQcm9jZXNzSWRlbnRpZmll
cigpKTsKICAgICBuYXZpZ2F0aW9uLT5zZXRMYXN0TmF2aWdhdGlvbkFjdGlvbihuYXZpZ2F0aW9u
QWN0aW9uRGF0YSk7CiAgICAgbmF2aWdhdGlvbi0+c2V0T3JpZ2luYXRpbmdGcmFtZUluZm8ob3Jp
Z2luYXRpbmdGcmFtZUluZm9EYXRhKTsKQEAgLTQ1NzcsOSArNDU4MSw3IEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFJlZjxXZWJQcm9jZXNzUHJv
eHk+JiYgcHJvY2VzCiAKICNpZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJTkcpCiAgICAgaWYgKGZy
YW1lLmRpZEhhbmRsZUNvbnRlbnRGaWx0ZXJVbmJsb2NrTmF2aWdhdGlvbihyZXF1ZXN0KSkKLSAg
ICAgICAgcmV0dXJuIHJlY2VpdmVkUG9saWN5RGVjaXNpb24oUG9saWN5QWN0aW9uOjpJZ25vcmUs
IG1fbmF2aWdhdGlvblN0YXRlLT5uYXZpZ2F0aW9uKG5ld05hdmlnYXRpb25JRCksIFdURjo6bnVs
bG9wdCwgV1RGTW92ZShzZW5kZXIpKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKG5ld05hdmln
YXRpb25JRCk7CisgICAgICAgIHJldHVybiByZWNlaXZlZFBvbGljeURlY2lzaW9uKFBvbGljeUFj
dGlvbjo6SWdub3JlLCBtX25hdmlnYXRpb25TdGF0ZS0+bmF2aWdhdGlvbihuYXZpZ2F0aW9uSUQp
LCBXVEY6Om51bGxvcHQsIFdURk1vdmUoc2VuZGVyKSk7CiAjZW5kaWYKIAogICAgIFNob3VsZEV4
cGVjdFNhZmVCcm93c2luZ1Jlc3VsdCBzaG91bGRFeHBlY3RTYWZlQnJvd3NpbmdSZXN1bHQgPSBT
aG91bGRFeHBlY3RTYWZlQnJvd3NpbmdSZXN1bHQ6OlllczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgKaW5kZXggMzU3ZGMxYjViMjkwNTZlYjAxZDdlMWIxNmE2OTk1YmUyYzkw
YWJiZS4uYjI4NzkxZjliN2UxNzlhYjM0NWE5MDE2NzAxZTUwZWY2YmY5ODhjMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTE0ODMsNyArMTQ4Myw3IEBAIHB1Ymxp
YzoKIAogICAgIC8vIExvZ2ljIHNoYXJlZCBiZXR3ZWVuIHRoZSBXZWJQYWdlUHJveHkgYW5kIHRo
ZSBQcm92aXNpb25hbFBhZ2VQcm94eS4KICAgICB2b2lkIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2Fk
Rm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgdWludDY0X3QgZnJhbWVJRCwg
dWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJiwgVVJMJiYgdW5yZWFjaGFibGVVUkwsIGNvbnN0
IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFy
ZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZp
Z2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlRXJyb3ImLCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlkRmFpbFByb3Zpc2lv
bmFsTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIHVpbnQ2NF90IGZy
YW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9y
aWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJM
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgV2ViQ29yZTo6V2lsbENvbnRpbnVlTG9h
ZGluZywgY29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVj
dEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYs
IHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiYsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCBkaWRQZXJmb3JtU2VydmVy
UmVkaXJlY3RTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgY29uc3QgU3RyaW5nJiBzb3Vy
Y2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIHVpbnQ2NF90
IGZyYW1lSUQpOwogICAgIHZvaWQgZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0U2hhcmVkKFJlZjxX
ZWJQcm9jZXNzUHJveHk+JiYsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBT
dHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCB1aW50NjRfdCBmcmFtZUlEKTsKQEAgLTE1ODUs
NyArMTU4NSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCB3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0
Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB1cmwsIGRvdWJsZSBkZWxh
eSwgV2ViQ29yZTo6TG9ja0JhY2tGb3J3YXJkTGlzdCk7CiAgICAgdm9pZCBkaWRDYW5jZWxDbGll
bnRSZWRpcmVjdEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpOwogICAgIHZvaWQgZGlkQ2hhbmdl
UHJvdmlzaW9uYWxVUkxGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0
aW9uSUQsIFVSTCYmKTsKLSAgICB2b2lkIGRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1
aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1l
U2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBwcm92
aXNpb25hbFVSTCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIGNvbnN0IFVzZXJEYXRh
Jik7CisgICAgdm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJh
bWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3Jp
Z2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxVUkws
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBXZWJDb3JlOjpXaWxsQ29udGludWVMb2Fk
aW5nLCBjb25zdCBVc2VyRGF0YSYpOwogICAgIHZvaWQgZGlkQ29tbWl0TG9hZEZvckZyYW1lKHVp
bnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBtaW1l
VHlwZSwgYm9vbCBmcmFtZUhhc0N1c3RvbUNvbnRlbnRQcm92aWRlciwgdWludDMyX3QgZnJhbWVM
b2FkVHlwZSwgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJiwgYm9vbCBjb250YWluc1Bs
dWdpbkRvY3VtZW50LCBPcHRpb25hbDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQ+IGZvcmNl
ZEhhc0luc2VjdXJlQ29udGVudCwgY29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIGRpZEZpbmlz
aERvY3VtZW50TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwgY29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIGRpZEZpbmlzaExvYWRGb3JGcmFtZSh1
aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFVzZXJEYXRhJik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4K
aW5kZXggMWQ0NGM2YTRiNTFhODI1NGVjNjdlZGU2ODU5MDYzMzdjODgwY2NjZS4uYjBiNDVjYmU1
YzI4ZjM3NWY1ZmIwM2ZhYmM2OTNiN2MxMGI0OTA5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtMTI3LDcgKzEyNyw3IEBAIG1l
c3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZv
ckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyB1cmwsIGRvdWJsZSBkZWxheSwgZW51bTpi
b29sIFdlYkNvcmU6OkxvY2tCYWNrRm9yd2FyZExpc3QgbG9ja0JhY2tGb3J3YXJkTGlzdCkKICAg
ICBEaWRDYW5jZWxDbGllbnRSZWRpcmVjdEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCiAgICAg
RGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRf
dCBuYXZpZ2F0aW9uSUQsIFVSTCB1cmwpCi0gICAgRGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEg
ZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBTdHJpbmcgcHJvdmlz
aW9uYWxVUkwsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IsIFdlYktpdDo6VXNlckRhdGEg
dXNlckRhdGEpCisgICAgRGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZy
YW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9y
aWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBTdHJpbmcgcHJvdmlzaW9uYWxVUkwsIFdlYkNv
cmU6OlJlc291cmNlRXJyb3IgZXJyb3IsIGVudW06Ym9vbCBXZWJDb3JlOjpXaWxsQ29udGludWVM
b2FkaW5nIHdpbGxDb250aW51ZUxvYWRpbmcsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCiAg
ICAgRGlkQ29tbWl0TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmln
YXRpb25JRCwgU3RyaW5nIG1pbWVUeXBlLCBib29sIGhhc0N1c3RvbUNvbnRlbnRQcm92aWRlciwg
dWludDMyX3QgbG9hZFR5cGUsIFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyBjZXJ0aWZpY2F0ZUlu
Zm8sIGJvb2wgY29udGFpbnNQbHVnaW5Eb2N1bWVudCwgT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5z
ZWN1cmVDb250ZW50PiBmb3JjZWRIYXNJbnNlY3VyZUNvbnRlbnQsIFdlYktpdDo6VXNlckRhdGEg
dXNlckRhdGEpCiAgICAgRGlkRmFpbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IsIFdlYktpdDo6
VXNlckRhdGEgdXNlckRhdGEpCiAgICAgRGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUodWlu
dDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJLaXQ6OlVzZXJEYXRhIHVz
ZXJEYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggNGFjOWRiNjM4ZTU5
NmNjNDhlYjIzNzg5YTI5MjVlZGQ5ZTFkNjU4OC4uYzQ5YmIxYmE0M2NiMWEyMmMxNWI3NzYxODNm
YTI0NjY0MjE5MGVjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC01MzUs
NyArNTM1LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRDb21taXRM
b2FkKE9wdGlvbmFsPEhhc0luc2VjdXJlQ29udGVudD4gaGEKICAgICB3ZWJQYWdlLT5kaWRDb21t
aXRMb2FkKG1fZnJhbWUpOwogfQogCi12b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRj
aERpZEZhaWxQcm92aXNpb25hbExvYWQoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCit2b2lk
IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQoY29u
c3QgUmVzb3VyY2VFcnJvciYgZXJyb3IsIFdpbGxDb250aW51ZUxvYWRpbmcgd2lsbENvbnRpbnVl
TG9hZGluZykKIHsKICAgICBXZWJQYWdlKiB3ZWJQYWdlID0gbV9mcmFtZS0+cGFnZSgpOwogICAg
IGlmICghd2ViUGFnZSkKQEAgLTU2NCw3ICs1NjQsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xp
ZW50OjpkaXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQoY29uc3QgUmVzb3VyY2VFcnJvciYg
ZQogCiAgICAgLy8gTm90aWZ5IHRoZSBVSVByb2Nlc3MuCiAgICAgV2ViQ29yZTo6RnJhbWUqIGNv
cmVGcmFtZSA9IG1fZnJhbWUgPyBtX2ZyYW1lLT5jb3JlRnJhbWUoKSA6IG51bGxwdHI7Ci0gICAg
d2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRGYWlsUHJvdmlzaW9uYWxM
b2FkRm9yRnJhbWUobV9mcmFtZS0+ZnJhbWVJRCgpLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21G
cmFtZShjb3JlRnJhbWUpLCBuYXZpZ2F0aW9uSUQsIG1fZnJhbWUtPmNvcmVGcmFtZSgpLT5sb2Fk
ZXIoKS5wcm92aXNpb25hbExvYWRFcnJvckJlaW5nSGFuZGxlZFVSTCgpLCBlcnJvciwgVXNlckRh
dGEoV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkudHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxlcyh1c2Vy
RGF0YS5nZXQoKSkuZ2V0KCkpKSk7CisgICAgd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpEaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUobV9mcmFtZS0+ZnJhbWVJRCgp
LCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21GcmFtZShjb3JlRnJhbWUpLCBuYXZpZ2F0aW9uSUQs
IG1fZnJhbWUtPmNvcmVGcmFtZSgpLT5sb2FkZXIoKS5wcm92aXNpb25hbExvYWRFcnJvckJlaW5n
SGFuZGxlZFVSTCgpLCBlcnJvciwgd2lsbENvbnRpbnVlTG9hZGluZywgVXNlckRhdGEoV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkudHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxlcyh1c2VyRGF0YS5nZXQo
KSkuZ2V0KCkpKSk7CiAKICAgICAvLyBJZiB3ZSBoYXZlIGEgbG9hZCBsaXN0ZW5lciwgbm90aWZ5
IGl0LgogICAgIGlmIChXZWJGcmFtZTo6TG9hZExpc3RlbmVyKiBsb2FkTGlzdGVuZXIgPSBtX2Zy
YW1lLT5sb2FkTGlzdGVuZXIoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggY2I0
ZmY1YzE5NWNjZDA4YjcwNDljZWIyOTk0ODhhOGU1ZjFjOTBkYi4uZjczYWI4Y2E3M2YxNzhiZjI2
OGZmMmI4NDFjNDUxY2RkNDk4ZmFhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAg
LTExMiw3ICsxMTIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlzcGF0Y2hEaWRTdGFydFByb3Zp
c2lvbmFsTG9hZCgpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZlVGl0bGUoY29u
c3QgV2ViQ29yZTo6U3RyaW5nV2l0aERpcmVjdGlvbiYpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0
Y2hEaWRDb21taXRMb2FkKE9wdGlvbmFsPFdlYkNvcmU6Okhhc0luc2VjdXJlQ29udGVudD4pIGZp
bmFsOwotICAgIHZvaWQgZGlzcGF0Y2hEaWRGYWlsUHJvdmlzaW9uYWxMb2FkKGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlRXJyb3ImKSBmaW5hbDsKKyAgICB2b2lkIGRpc3BhdGNoRGlkRmFpbFByb3Zp
c2lvbmFsTG9hZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgV2ViQ29yZTo6V2lsbENv
bnRpbnVlTG9hZGluZykgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERpZEZhaWxMb2FkKGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoRGlkRmlu
aXNoRG9jdW1lbnRMb2FkKCkgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERpZEZpbmlzaExvYWQo
KSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IGI1N2FjMWY1YjE2YWI3OGZi
ODM0NzhhZjAxYzQ0MWJkYTIzMjc3MzAuLjEzODU1ODNhZjI5ZDE3NDQxM2Q1MDU3OTVhZmE5NWI1
Yzg4OTY2YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMTE3LDcgKzExNyw3IEBA
IHByaXZhdGU6CiAgICAgdm9pZCBkaXNwYXRjaERpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkKCkgZmlu
YWw7CiAgICAgdm9pZCBkaXNwYXRjaERpZFJlY2VpdmVUaXRsZShjb25zdCBXZWJDb3JlOjpTdHJp
bmdXaXRoRGlyZWN0aW9uJikgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERpZENvbW1pdExvYWQo
T3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50PikgZmluYWw7Ci0gICAgdm9pZCBk
aXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJv
ciYpIGZpbmFsOworICAgIHZvaWQgZGlzcGF0Y2hEaWRGYWlsUHJvdmlzaW9uYWxMb2FkKGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBXZWJDb3JlOjpXaWxsQ29udGludWVMb2FkaW5nKSBm
aW5hbDsKICAgICB2b2lkIGRpc3BhdGNoRGlkRmFpbExvYWQoY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VFcnJvciYpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hEaWRGaW5pc2hEb2N1bWVudExvYWQo
KSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoRGlkRmluaXNoTG9hZCgpIGZpbmFsOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5tbQppbmRleCA0Yjk0MjE3Mjk5NzE3NjdkNTAyMjY0MzQ3OTZiMDVj
Mjg4NjcwM2EzLi43Zjg2OWYxZGRjYjlhMTkwODBhYWIyMDA1ZjliZjczMmFlODdkZGRmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQpAQCAtNzI0LDcgKzcyNCw3IEBAIHZvaWQgV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkQ29tbWl0TG9hZChPcHRpb25hbDxIYXNJbnNlY3Vy
ZUNvbnRlbnQ+KQogICAgICAgICBDYWxsRnJhbWVMb2FkRGVsZWdhdGUoaW1wbGVtZW50YXRpb25z
LT5kaWRDb21taXRMb2FkRm9yRnJhbWVGdW5jLCB3ZWJWaWV3LCBAc2VsZWN0b3Iod2ViVmlldzpk
aWRDb21taXRMb2FkRm9yRnJhbWU6KSwgbV93ZWJGcmFtZS5nZXQoKSk7CiB9CiAKLXZvaWQgV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZChjb25zdCBS
ZXNvdXJjZUVycm9yJiBlcnJvcikKK3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNo
RGlkRmFpbFByb3Zpc2lvbmFsTG9hZChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciwgV2lsbENv
bnRpbnVlTG9hZGluZykKIHsKICAgICBtX3dlYkZyYW1lLT5fcHJpdmF0ZS0+cHJvdmlzaW9uYWxV
UkwgPSBudWxscHRyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggZDBkNjZk
MTU5YjVlNWRjZmQ3YTYxYzQ1YWI4NTQxNTZlMmE2ZTYxNi4uNWM1ODEzZjkxYzFlZDA4N2M3ZDgy
NDYxNDRhNmU1YmVlZDkwNDgwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAt
NDQ1LDcgKzQ0NSw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkQ29t
bWl0TG9hZChPcHRpb25hbDxIYXNJbnNlY3VyZUNvbnRlbnQ+KQogICAgICAgICBmcmFtZUxvYWRE
ZWxlZ2F0ZS0+ZGlkQ29tbWl0TG9hZEZvckZyYW1lKHdlYlZpZXcsIG1fd2ViRnJhbWUpOwogfQog
Ci12b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExv
YWQoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50
OjpkaXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJy
b3IsIFdpbGxDb250aW51ZUxvYWRpbmcpCiB7CiAgICAgV2ViVmlldyogd2ViVmlldyA9IG1fd2Vi
RnJhbWUtPndlYlZpZXcoKTsKICAgICBDT01QdHI8SVdlYkZyYW1lTG9hZERlbGVnYXRlPiBmcmFt
ZUxvYWREZWxlZ2F0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDU3ZTRiYmFiYWVh
MjY4ZTIyMjJhMTZmMGZmMGEzM2U0MWJkYzMxMDAuLjMyMmMwOTAwNWFhNWVlNTczYjRkNzAyZDZl
MWRiMjUwNjA1ZDFiNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtOTQsNyArOTQs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaXNwYXRjaERpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkKCkg
b3ZlcnJpZGU7CiAgICAgdm9pZCBkaXNwYXRjaERpZFJlY2VpdmVUaXRsZShjb25zdCBXZWJDb3Jl
OjpTdHJpbmdXaXRoRGlyZWN0aW9uJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaXNwYXRjaERpZENv
bW1pdExvYWQoT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50Pikgb3ZlcnJpZGU7
Ci0gICAgdm9pZCBkaXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQoY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VFcnJvciYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlzcGF0Y2hEaWRGYWlsUHJvdmlz
aW9uYWxMb2FkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBXZWJDb3JlOjpXaWxsQ29u
dGludWVMb2FkaW5nKSBvdmVycmlkZTsKICAgICB2b2lkIGRpc3BhdGNoRGlkRmFpbExvYWQoY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlzcGF0Y2hE
aWRGaW5pc2hEb2N1bWVudExvYWQoKSBvdmVycmlkZTsKICAgICB2b2lkIGRpc3BhdGNoRGlkRmlu
aXNoTG9hZCgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMv
Q2hhbmdlTG9nCmluZGV4IDU0MTJiNjc3OTE3YThkYzBhMmNmYTYzOWRjNTQ0ODU4NDBkYmRkZGYu
LjgwNWEzYTQ1ODM4M2IyNjU3MTcxOTQxY2I0YzdmZjU0NjI3ZmI4ZDcgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAx
OS0wNC0yMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFtQcm9j
ZXNzLVN3YXAtT24tTmF2aWdhdGlvbl0gV2ViS2l0IGhhbmdzIHdoZW4gZ29pbmcgYmFjayB0byBh
IGZvcm0gc3VibWlzc2lvbidzIHBhZ2UgZHVlIHRvIFByb2Nlc3MtU3dhcC1Pbi1OYXZpZ2F0aW9u
IG9uIGlPUyAxMi4yIGFuZCBoaWdoZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE5NzA5NworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTAwNDgzMTg+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEFQ
SSB0ZXN0IGNvdmVyYWdlLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbToKKyAgICAgICAgKC1bUFNPTlNjaGVtZSB3
ZWJWaWV3OnN0YXJ0VVJMU2NoZW1lVGFzazpdKToKKwogMjAxOS0wNC0yMiAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIy
NDQ1MDIuCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQppbmRleCBmYzRmYTZhMWRjNTQ3
M2Q5NDk0NTViZDk1MTZmZWIxZTMyOTExYjVkLi5hNjE3NzZlYWFkODJmYjUwYmM0NDU4NTg3NzAx
M2ZmOGExZTU2MGIxIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KQEAgLTI3Niw2
ICsyNzYsMTEgQEAgLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHN0YXJ0VVJM
U2NoZW1lVGFzazooaWQgPFdLVVJMU2NoZW1lVGFzaz4pdGEKICAgICAgICAgWyhpZDxXS1VSTFNj
aGVtZVRhc2tQcml2YXRlPil0YXNrIF9kaWRQZXJmb3JtUmVkaXJlY3Rpb246cmVkaXJlY3RSZXNw
b25zZS5nZXQoKSBuZXdSZXF1ZXN0OnJlcXVlc3QuZ2V0KCldOwogICAgIH0KIAorICAgIGlmIChb
KGlkPFdLVVJMU2NoZW1lVGFza1ByaXZhdGU+KXRhc2sgX29ubHlJZkNhY2hlZF0pIHsKKyAgICAg
ICAgW3Rhc2sgZGlkRmFpbFdpdGhFcnJvcjpbTlNFcnJvciBlcnJvcldpdGhEb21haW46QCJUZXN0
V2ViS2l0QVBJIiBjb2RlOjEgdXNlckluZm86bmlsXV07CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKICAgICBSZXRhaW5QdHI8TlNVUkxSZXNwb25zZT4gcmVzcG9uc2UgPSBhZG9wdE5TKFtbTlNV
UkxSZXNwb25zZSBhbGxvY10gaW5pdFdpdGhVUkw6ZmluYWxVUkwgTUlNRVR5cGU6QCJ0ZXh0L2h0
bWwiIGV4cGVjdGVkQ29udGVudExlbmd0aDoxIHRleHRFbmNvZGluZ05hbWU6bmlsXSk7CiAgICAg
W3Rhc2sgZGlkUmVjZWl2ZVJlc3BvbnNlOnJlc3BvbnNlLmdldCgpXTsKIApAQCAtNDI3OCw2ICs0
MjgzLDcyIEBAIFRFU1QoUHJvY2Vzc1N3YXAsIE5hdmlnYXRlVG9Dcm9zc1NpdGVUaGVuQmFja0Zy
b21KUykKICAgICBFWFBFQ1RfTkUoYXBwbGVQSUQsIFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRp
Zmllcl0pOwogfQogCitzdGF0aWMgY29uc3QgY2hhciogY3Jvc3NTaXRlRm9ybVN1Ym1pc3Npb25C
eXRlcyA9IFIiUFNPTlJFU09VUkNFKAorPGJvZHk+Cis8Zm9ybSBhY3Rpb249InBzb246Ly93d3cu
YXBwbGUuY29tL21haW4uaHRtbCIgbWV0aG9kPSJwb3N0Ij4KK05hbWU6IDxpbnB1dCB0eXBlPSJ0
ZXh0IiBuYW1lPSJuYW1lIiBwbGFjZWhvbGRlcj0iTmFtZSI+Cis8aW5wdXQgaWQ9InN1Ym1pdEJ1
dHRvbiIgdHlwZT0ic3VibWl0Ij4KKzwvZm9ybT4KKzwvYm9keT4KKylQU09OUkVTT1VSQ0UiOwor
CitURVNUKFByb2Nlc3NTd2FwLCBTd2FwT25Gb3JtU3VibWlzc2lvbikKK3sKKyAgICBhdXRvIHBy
b2Nlc3NQb29sQ29uZmlndXJhdGlvbiA9IHBzb25Qcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24oKTsK
KyAgICBhdXRvIHByb2Nlc3NQb29sID0gYWRvcHROUyhbW1dLUHJvY2Vzc1Bvb2wgYWxsb2NdIF9p
bml0V2l0aENvbmZpZ3VyYXRpb246cHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmdldCgpXSk7CisK
KyAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0UHJv
Y2Vzc1Bvb2w6cHJvY2Vzc1Bvb2wuZ2V0KCldOworICAgIGF1dG8gaGFuZGxlciA9IGFkb3B0TlMo
W1tQU09OU2NoZW1lIGFsbG9jXSBpbml0XSk7CisgICAgW2hhbmRsZXIgYWRkTWFwcGluZ0Zyb21V
UkxTdHJpbmc6QCJwc29uOi8vd3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIiB0b0RhdGE6Y3Jvc3NT
aXRlRm9ybVN1Ym1pc3Npb25CeXRlc107CisgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFVS
TFNjaGVtZUhhbmRsZXI6aGFuZGxlci5nZXQoKSBmb3JVUkxTY2hlbWU6QCJQU09OIl07CisKKyAg
ICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1l
Ok5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246d2ViVmlld0NvbmZpZ3Vy
YXRpb24uZ2V0KCldKTsKKyAgICBhdXRvIG5hdmlnYXRpb25EZWxlZ2F0ZSA9IGFkb3B0TlMoW1tQ
U09OTmF2aWdhdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAgW3dlYlZpZXcgc2V0TmF2
aWdhdGlvbkRlbGVnYXRlOm5hdmlnYXRpb25EZWxlZ2F0ZS5nZXQoKV07CisKKyAgICBbd2ViVmll
dyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRo
U3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCJdXV07CisgICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBkb25lID0gZmFsc2U7CisgICAgYXV0byB3
ZWJraXRQSUQgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOworICAgIEVYUEVDVF9X
S19TVFJFUShAInBzb246Ly93d3cud2Via2l0Lm9yZy9tYWluLmh0bWwiLCBbW3dlYlZpZXcgVVJM
XSBhYnNvbHV0ZVN0cmluZ10pOworCisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAi
c3VibWl0QnV0dG9uLmNsaWNrKCkiIGNvbXBsZXRpb25IYW5kbGVyOm5pbF07CisgICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBkb25lID0gZmFsc2U7CisgICAgYXV0byBh
cHBsZVBJRCA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CisgICAgRVhQRUNUX05F
KHdlYmtpdFBJRCwgYXBwbGVQSUQpOworICAgIEVYUEVDVF9XS19TVFJFUShAInBzb246Ly93d3cu
YXBwbGUuY29tL21haW4uaHRtbCIsIFtbd2ViVmlldyBVUkxdIGFic29sdXRlU3RyaW5nXSk7CisK
KyAgICBbd2ViVmlldyByZWxvYWRdOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9u
ZSk7CisgICAgZG9uZSA9IGZhbHNlOworICAgIEVYUEVDVF9FUShhcHBsZVBJRCwgW3dlYlZpZXcg
X3dlYlByb2Nlc3NJZGVudGlmaWVyXSk7CisgICAgRVhQRUNUX1dLX1NUUkVRKEAicHNvbjovL3d3
dy5hcHBsZS5jb20vbWFpbi5odG1sIiwgW1t3ZWJWaWV3IFVSTF0gYWJzb2x1dGVTdHJpbmddKTsK
KworICAgIFt3ZWJWaWV3IGdvQmFja107CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZk
b25lKTsKKyAgICBkb25lID0gZmFsc2U7CisgICAgRVhQRUNUX0VRKHdlYmtpdFBJRCwgW3dlYlZp
ZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXSk7CisgICAgRVhQRUNUX1dLX1NUUkVRKEAicHNvbjov
L3d3dy53ZWJraXQub3JnL21haW4uaHRtbCIsIFtbd2ViVmlldyBVUkxdIGFic29sdXRlU3RyaW5n
XSk7CisKKyAgICBbd2ViVmlldyBnb0ZvcndhcmRdOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmZG9uZSk7CisgICAgZG9uZSA9IGZhbHNlOworICAgIEVYUEVDVF9FUShhcHBsZVBJRCwg
W3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXSk7CisgICAgRVhQRUNUX1dLX1NUUkVRKEAi
cHNvbjovL3d3dy5hcHBsZS5jb20vbWFpbi5odG1sIiwgW1t3ZWJWaWV3IFVSTF0gYWJzb2x1dGVT
dHJpbmddKTsKKworICAgIFt3ZWJWaWV3IGdvQmFja107CisgICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZkb25lKTsKKyAgICBkb25lID0gZmFsc2U7CisjaWYgIVBMQVRGT1JNKElPU19GQU1J
TFkpCisgICAgLy8gVGhpcyBpcyBub3QgZ3VhcmFudGVlZCBvbiBpT1MgYmVjYXVzZSB0aGUgV2Vi
UHJvY2VzcyBjYWNoZSBpcyBkaXNhYmxlZCBvbiBkZXZpY2VzIHdpdGggdG9vIGxpdHRsZSBSQU0u
CisgICAgRVhQRUNUX0VRKHdlYmtpdFBJRCwgW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVy
XSk7CisjZWxzZQorICAgIEVYUEVDVF9ORShhcHBsZVBJRCwgW3dlYlZpZXcgX3dlYlByb2Nlc3NJ
ZGVudGlmaWVyXSk7CisjZW5kaWYKKyAgICBFWFBFQ1RfV0tfU1RSRVEoQCJwc29uOi8vd3d3Lndl
YmtpdC5vcmcvbWFpbi5odG1sIiwgW1t3ZWJWaWV3IFVSTF0gYWJzb2x1dGVTdHJpbmddKTsKK30K
IAogVEVTVChQcm9jZXNzU3dhcCwgQ2xvc2VQYWdlQWZ0ZXJDcm9zc1NpdGVQcm92aXNpb25hbExv
YWQpCiB7Cg==
</data>
<flag name="review"
          id="384301"
          type_id="1"
          status="+"
          setter="achristensen"
    />
          </attachment>
      

    </bug>

</bugzilla>