<?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>226056</bug_id>
          
          <creation_ts>2021-05-20 16:57:29 -0700</creation_ts>
          <short_desc>Use CheckedLock more in cases where we try-lock</short_desc>
          <delta_ts>2021-05-21 12:25:20 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=226095</see_also>
          <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 name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>philipj</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1762219</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-20 16:57:29 -0700</bug_when>
    <thetext>Use CheckedLock more in cases where we try-lock.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762220</commentid>
    <comment_count>1</comment_count>
      <attachid>429243</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-20 16:59:17 -0700</bug_when>
    <thetext>Created attachment 429243
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762234</commentid>
    <comment_count>2</comment_count>
      <attachid>429247</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-20 17:16:28 -0700</bug_when>
    <thetext>Created attachment 429247
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762270</commentid>
    <comment_count>3</comment_count>
      <attachid>429258</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-20 19:34:30 -0700</bug_when>
    <thetext>Created attachment 429258
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762271</commentid>
    <comment_count>4</comment_count>
      <attachid>429259</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-20 19:36:18 -0700</bug_when>
    <thetext>Created attachment 429259
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762299</commentid>
    <comment_count>5</comment_count>
      <attachid>429259</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-05-20 23:02:07 -0700</bug_when>
    <thetext>Comment on attachment 429259
Patch

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

&gt; Source/WebCore/Modules/speech/SpeechRecognitionCaptureSourceImpl.h:75
&gt;      RefPtr&lt;AudioSampleDataSource&gt; m_dataSource;

Are we able to use WTF_GUARDED_BY_LOCK(m_dataSourceLock) ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762406</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-21 07:41:08 -0700</bug_when>
    <thetext>(In reply to Kimmo Kinnunen from comment #5)
&gt; Comment on attachment 429259 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=429259&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/speech/SpeechRecognitionCaptureSourceImpl.h:75
&gt; &gt;      RefPtr&lt;AudioSampleDataSource&gt; m_dataSource;
&gt; 
&gt; Are we able to use WTF_GUARDED_BY_LOCK(m_dataSourceLock) ?

Probably, my bet is that I just inadvertently missed it since I refactored the code to support it. I&apos;ll try and add it and build to make sure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762419</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-21 08:06:03 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #6)
&gt; (In reply to Kimmo Kinnunen from comment #5)
&gt; &gt; Comment on attachment 429259 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=429259&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/Modules/speech/SpeechRecognitionCaptureSourceImpl.h:75
&gt; &gt; &gt;      RefPtr&lt;AudioSampleDataSource&gt; m_dataSource;
&gt; &gt; 
&gt; &gt; Are we able to use WTF_GUARDED_BY_LOCK(m_dataSourceLock) ?
&gt; 
&gt; Probably, my bet is that I just inadvertently missed it since I refactored
&gt; the code to support it. I&apos;ll try and add it and build to make sure.

Actually, I&apos;ll revert the changes to this file for now. Not all call paths grab the lock before using m_dataSource. I am not convinced this code is actually thread safe. It will likely require its own patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762420</commentid>
    <comment_count>8</comment_count>
      <attachid>429290</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-21 08:08:38 -0700</bug_when>
    <thetext>Created attachment 429290
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762437</commentid>
    <comment_count>9</comment_count>
      <attachid>429290</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-05-21 09:11:41 -0700</bug_when>
    <thetext>Comment on attachment 429290
Patch

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

&gt; Source/WTF/wtf/Logger.h:359
&gt; -        auto lock = tryHoldLock(observerLock());
&gt; -        if (!lock)
&gt; +        if (!observerLock().tryLock())
&gt;              return;
&gt;  
&gt; +        Locker locker { AdoptLockTag { }, observerLock() };

Can we not use something similar to tryHoldLock?  I&apos;m not sure if this does the same thing, but to me it looks like we&apos;re giving something else a chance to get the lock between the call to tryLock and observerLock</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762440</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-21 09:23:29 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #9)
&gt; Comment on attachment 429290 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=429290&amp;action=review
&gt; 
&gt; &gt; Source/WTF/wtf/Logger.h:359
&gt; &gt; -        auto lock = tryHoldLock(observerLock());
&gt; &gt; -        if (!lock)
&gt; &gt; +        if (!observerLock().tryLock())
&gt; &gt;              return;
&gt; &gt;  
&gt; &gt; +        Locker locker { AdoptLockTag { }, observerLock() };
&gt; 
&gt; Can we not use something similar to tryHoldLock?  I&apos;m not sure if this does
&gt; the same thing, but to me it looks like we&apos;re giving something else a chance
&gt; to get the lock between the call to tryLock and observerLock

No, tryHoldLock and TryLocker-types objects currently don&apos;t work with Clang thread-safety analysis unfortunately. I agree that the new code is not as nice but at least we get Clang&apos;s thread-safety analysis. As far as I can tell though, there is no race here. I do not understand your concern on that front. The new code is just as safe AFAICT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762507</commentid>
    <comment_count>11</comment_count>
      <attachid>429290</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-05-21 12:03:15 -0700</bug_when>
    <thetext>Comment on attachment 429290
Patch

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

&gt;&gt;&gt; Source/WTF/wtf/Logger.h:359
&gt;&gt;&gt; +        Locker locker { AdoptLockTag { }, observerLock() };
&gt;&gt; 
&gt;&gt; Can we not use something similar to tryHoldLock?  I&apos;m not sure if this does the same thing, but to me it looks like we&apos;re giving something else a chance to get the lock between the call to tryLock and observerLock
&gt; 
&gt; No, tryHoldLock and TryLocker-types objects currently don&apos;t work with Clang thread-safety analysis unfortunately. I agree that the new code is not as nice but at least we get Clang&apos;s thread-safety analysis. As far as I can tell though, there is no race here. I do not understand your concern on that front. The new code is just as safe AFAICT.

Now I see.  If the tryLock call returns true then the lock is in a locked state, and then we adopt it with a raii object.  It would be nice if tryLock could return the raii object, but that&apos;s not how std::unique_lock works.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762517</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-21 12:24:14 -0700</bug_when>
    <thetext>Committed r277875 (238013@main): &lt;https://commits.webkit.org/238013@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 429290.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762518</commentid>
    <comment_count>13</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-21 12:25:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/78322591&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429243</attachid>
            <date>2021-05-20 16:59:17 -0700</date>
            <delta_ts>2021-05-20 17:20:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226056-20210520165917.patch</filename>
            <type>text/plain</type>
            <size>31545</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3ODA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGIyMmM1YTNmYTNjNjEwMDVmZGVmYmNh
OTZiYWNkNjcxZTFkNTNmMDUuLmQxYjcyMGZmODk5YTdjZTljOTY1ZDk5YTA0YWU4ZWI2NWZkMzli
NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjEtMDUtMjAgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgQ2hlY2tlZExvY2sgbW9yZSBpbiBjYXNlcyB3aGVy
ZSB3ZSB0cnktbG9jaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjI2MDU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVXNlIENoZWNrZWRMb2NrIG1vcmUgaW4gY2FzZXMgd2hlcmUgd2UgdHJ5LWxvY2sgdG8g
YmVuZWZpdCBmcm9tIENsYW5nCisgICAgICAgIFRocmVhZCBTYWZldHkgQW5hbHlzaXMuCisKKyAg
ICAgICAgKiB3dGYvTG9nZ2VyLmNwcDoKKyAgICAgICAgKiB3dGYvTG9nZ2VyLmg6CisgICAgICAg
IChXVEY6OkxvZ2dlcjo6YWRkT2JzZXJ2ZXIpOgorICAgICAgICAoV1RGOjpMb2dnZXI6OnJlbW92
ZU9ic2VydmVyKToKKyAgICAgICAgKFdURjo6TG9nZ2VyOjpsb2cpOgorICAgICAgICAoV1RGOjpM
b2dnZXI6OmxvZ1ZlcmJvc2UpOgorICAgICAgICAoV1RGOjpMb2dnZXI6OldURl9SRVRVUk5TX0xP
Q0spOgorCiAyMDIxLTA1LTIwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAg
ICAgICAgVXNlIENoZWNrZWRMb2NrIG1vcmUgaW4gV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmU4ZmQ2NWM5
NWI4ODJkZjgxZmViMDE5ZmFkYmY1Y2Q4M2ZkMzBkMS4uYzRjMjJkMDJjODBlMjhkNjk2ODRhZmQy
ZjRhYjM1MWQ4MWYwMGNkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDIxLTA1LTIw
ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIENoZWNrZWRM
b2NrIG1vcmUgaW4gY2FzZXMgd2hlcmUgd2UgdHJ5LWxvY2sKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjA1NgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBDaGVja2VkTG9jayBtb3JlIGluIGNhc2Vz
IHdoZXJlIHdlIHRyeS1sb2NrIHRvIGJlbmVmaXQgZnJvbSBDbGFuZworICAgICAgICBUaHJlYWQg
U2FmZXR5IEFuYWx5c2lzLgorCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjphdWRpb1NhbXBsZXNBdmFpbGFibGUpOgorICAgICAg
ICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuaDoK
KyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGluZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpBdWRpb1BhcmFtVGltZWxpbmU6OnNldFZhbHVlQXRUaW1lKToKKyAgICAg
ICAgKFdlYkNvcmU6OkF1ZGlvUGFyYW1UaW1lbGluZTo6bGluZWFyUmFtcFRvVmFsdWVBdFRpbWUp
OgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9QYXJhbVRpbWVsaW5lOjpleHBvbmVudGlhbFJhbXBU
b1ZhbHVlQXRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvUGFyYW1UaW1lbGluZTo6c2V0
VGFyZ2V0QXRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvUGFyYW1UaW1lbGluZTo6c2V0
VmFsdWVDdXJ2ZUF0VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1BhcmFtVGltZWxpbmU6
OmNhbmNlbFNjaGVkdWxlZFZhbHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1BhcmFtVGlt
ZWxpbmU6OmNhbmNlbEFuZEhvbGRBdFRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9QYXJh
bVRpbWVsaW5lOjp2YWx1ZUZvckNvbnRleHRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
UGFyYW1UaW1lbGluZTo6dmFsdWVzRm9yRnJhbWVSYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpB
dWRpb1BhcmFtVGltZWxpbmU6Omhhc1ZhbHVlcyBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy93
ZWJhdWRpby9BdWRpb1BhcmFtVGltZWxpbmUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9B
dWRpb0Rlc3RpbmF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uOjpX
VEZfR1VBUkRFRF9CWV9MT0NLKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb246
OkF1ZGlvRGVzdGluYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbjo6
Y2xlYXJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uOjpjYWxs
UmVuZGVyQ2FsbGJhY2spOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRGVz
dGluYXRpb25Db2NvYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uQ29j
b2E6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6aXNQ
bGF5aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6c3RvcCk6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OnNldElzUGxheWluZyk6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OnJlbmRlcik6CisgICAg
ICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OnJlbmRlck9uUmVuZGVyaW5nVGhl
YWRJZlBsYXlpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRGVzdGlu
YXRpb25Db2NvYS5oOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbkNvY29hOjpX
VEZfR1VBUkRFRF9CWV9MT0NLKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2Nv
YS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0OjphZGRTb3VyY2UpOgorICAgICAg
ICAoV2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0OjpyZW1vdmVTb3Vy
Y2UpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0
OjpyZW5kZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0F1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdC5oOgorCiAyMDIxLTA1LTIwICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgUmVwbGFjZSBtb3JlIHN0YXRpYyBMb2NrcyB3
aXRoIENoZWNrZWRMb2NrcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA5OWEzYjc1NDE4NTVmZjhkZjU1YjU0MzVhOTM2
ZGIxZDgzZmY1MjJjLi5iZjBjZDZhNjc0YTE5YmZlYzY0NDRiODAxNzJhODQzNDliMDUwMDZjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIxLTA1LTIwICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIENoZWNrZWRMb2NrIG1vcmUgaW4gY2FzZXMgd2hl
cmUgd2UgdHJ5LWxvY2sKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyNjA1NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFVzZSBDaGVja2VkTG9jayBtb3JlIGluIGNhc2VzIHdoZXJlIHdlIHRyeS1sb2NrIHRv
IGJlbmVmaXQgZnJvbSBDbGFuZworICAgICAgICBUaHJlYWQgU2FmZXR5IEFuYWx5c2lzLgorCisg
ICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OkxpYldlYlJUQ0NvZGVjczo6cmVsZWFzZURlY29kZXIpOgorICAgICAgICAo
V2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6OnJlZ2lzdGVyRGVjb2RlRnJhbWVDYWxsYmFjayk6Cisg
ICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ0NvZGVjczo6Y29tcGxldGVkRGVjb2RpbmcpOgorICAg
ICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6OnJlbGVhc2VFbmNvZGVyKToKKyAgICAgICAg
KFdlYktpdDo6TGliV2ViUlRDQ29kZWNzOjpyZWdpc3RlckVuY29kZUZyYW1lQ2FsbGJhY2spOgor
ICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6OmNvbXBsZXRlZEVuY29kaW5nKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmg6CisgICAgICAg
IChXZWJLaXQ6OkxpYldlYlJUQ0NvZGVjczo6RGVjb2Rlcjo6V1RGX0dVQVJERURfQllfTE9DSyk6
CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ0NvZGVjczo6RW5jb2Rlcjo6V1RGX0dVQVJERURf
QllfTE9DSyk6CisKIDIwMjEtMDUtMjAgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
IAogICAgICAgICBSZXBsYWNlIG1vcmUgc3RhdGljIExvY2tzIHdpdGggQ2hlY2tlZExvY2tzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Mb2dnZXIuY3BwIGIvU291cmNlL1dURi93dGYvTG9n
Z2VyLmNwcAppbmRleCBjOGQ4NmMwNDVhMzViYmZlYjMxMjQ3M2ZlZTM4YzlhZDI2MjliNGE2Li5l
MGI0NTA2ODhmZDc4MzlmZjRjYmIyNTg5OTdhZDhjNGYyNTU1NzUwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi9Mb2dnZXIuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL0xvZ2dlci5jcHAKQEAg
LTMyLDcgKzMyLDcgQEAKIAogbmFtZXNwYWNlIFdURiB7CiAKLUxvY2sgbG9nZ2VyT2JzZXJ2ZXJM
b2NrOworQ2hlY2tlZExvY2sgbG9nZ2VyT2JzZXJ2ZXJMb2NrOwogCiBTdHJpbmcgTG9nZ2VyOjpM
b2dTaXRlSWRlbnRpZmllcjo6dG9TdHJpbmcoKSBjb25zdAogewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvTG9nZ2VyLmggYi9Tb3VyY2UvV1RGL3d0Zi9Mb2dnZXIuaAppbmRleCA5MTU2MTFl
MDMyM2E1NTFmZmQ1M2YwMDViZTM5MjRlMDZlYjZhYzJiLi5lOTlkNDliZjJlOWQ5YWQyYTZiM2I2
MTgwZGNiZDk4Y2Q3ODVmYTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Mb2dnZXIuaAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9Mb2dnZXIuaApAQCAtMjUsNyArMjUsNyBAQAogCiAjcHJhZ21h
IG9uY2UKIAotI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CisjaW5jbHVkZSA8d3RmL0NoZWNrZWRMb2Nr
Lmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvU3RyaW5nQnVpbGRlci5oPgogCkBAIC0xMTIsNyArMTEyLDcgQEAgc3RydWN0IENvbnNv
bGVMb2dWYWx1ZTxBcmd1bWVudCwgZmFsc2U+IHsKICAgICB9CiB9OwogCi1XVEZfRVhQT1JUX1BS
SVZBVEUgZXh0ZXJuIExvY2sgbG9nZ2VyT2JzZXJ2ZXJMb2NrOworV1RGX0VYUE9SVF9QUklWQVRF
IGV4dGVybiBDaGVja2VkTG9jayBsb2dnZXJPYnNlcnZlckxvY2s7CiAKIGNsYXNzIExvZ2dlciA6
IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxMb2dnZXI+IHsKICAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShMb2dnZXIpOwpAQCAtMjg1LDEyICsyODUsMTIgQEAgcHVibGljOgogCiAgICAgc3Rh
dGljIGlubGluZSB2b2lkIGFkZE9ic2VydmVyKE9ic2VydmVyJiBvYnNlcnZlcikKICAgICB7Ci0g
ICAgICAgIGF1dG8gbG9jayA9IGhvbGRMb2NrKG9ic2VydmVyTG9jaygpKTsKKyAgICAgICAgTG9j
a2VyIGxvY2tlciB7IG9ic2VydmVyTG9jaygpIH07CiAgICAgICAgIG9ic2VydmVycygpLmFwcGVu
ZChvYnNlcnZlcik7CiAgICAgfQogICAgIHN0YXRpYyBpbmxpbmUgdm9pZCByZW1vdmVPYnNlcnZl
cihPYnNlcnZlciYgb2JzZXJ2ZXIpCiAgICAgewotICAgICAgICBhdXRvIGxvY2sgPSBob2xkTG9j
ayhvYnNlcnZlckxvY2soKSk7CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBvYnNlcnZlckxvY2so
KSB9OwogICAgICAgICBvYnNlcnZlcnMoKS5yZW1vdmVGaXJzdE1hdGNoaW5nKFsmb2JzZXJ2ZXJd
KGF1dG8gYW5PYnNlcnZlcikgewogICAgICAgICAgICAgcmV0dXJuICZhbk9ic2VydmVyLmdldCgp
ID09ICZvYnNlcnZlcjsKICAgICAgICAgfSk7CkBAIC0zMjIsMTAgKzMyMiwxMCBAQCBwcml2YXRl
OgogICAgICAgICBpZiAoY2hhbm5lbC5zdGF0ZSA9PSBXVEZMb2dDaGFubmVsU3RhdGU6Ok9mZiB8
fCBsZXZlbCA+IGNoYW5uZWwubGV2ZWwpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAg
YXV0byBsb2NrID0gdHJ5SG9sZExvY2sob2JzZXJ2ZXJMb2NrKCkpOwotICAgICAgICBpZiAoIWxv
Y2spCisgICAgICAgIGlmICghb2JzZXJ2ZXJMb2NrKCkudHJ5TG9jaygpKQogICAgICAgICAgICAg
cmV0dXJuOwogCisgICAgICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2tUYWcgeyB9LCBvYnNl
cnZlckxvY2soKSB9OwogICAgICAgICBmb3IgKE9ic2VydmVyJiBvYnNlcnZlciA6IG9ic2VydmVy
cygpKQogICAgICAgICAgICAgb2JzZXJ2ZXIuZGlkTG9nTWVzc2FnZShjaGFubmVsLCBsZXZlbCwg
eyBDb25zb2xlTG9nVmFsdWU8QXJndW1lbnQ+Ojp0b1ZhbHVlKGFyZ3VtZW50cykuLi4gfSk7CiAg
ICAgfQpAQCAtMzUzLDE3ICszNTMsMTcgQEAgcHJpdmF0ZToKICAgICAgICAgaWYgKGNoYW5uZWwu
c3RhdGUgPT0gV1RGTG9nQ2hhbm5lbFN0YXRlOjpPZmYgfHwgbGV2ZWwgPiBjaGFubmVsLmxldmVs
KQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGF1dG8gbG9jayA9IHRyeUhvbGRMb2Nr
KG9ic2VydmVyTG9jaygpKTsKLSAgICAgICAgaWYgKCFsb2NrKQorICAgICAgICBpZiAoIW9ic2Vy
dmVyTG9jaygpLnRyeUxvY2soKSkKICAgICAgICAgICAgIHJldHVybjsKIAorICAgICAgICBMb2Nr
ZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsgfSwgb2JzZXJ2ZXJMb2NrKCkgfTsKICAgICAgICAg
Zm9yIChPYnNlcnZlciYgb2JzZXJ2ZXIgOiBvYnNlcnZlcnMoKSkKICAgICAgICAgICAgIG9ic2Vy
dmVyLmRpZExvZ01lc3NhZ2UoY2hhbm5lbCwgbGV2ZWwsIHsgQ29uc29sZUxvZ1ZhbHVlPEFyZ3Vt
ZW50Pjo6dG9WYWx1ZShhcmd1bWVudHMpLi4uIH0pOwogICAgIH0KIAotICAgIFdURl9FWFBPUlRf
UFJJVkFURSBzdGF0aWMgVmVjdG9yPHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8T2JzZXJ2ZXI+PiYg
b2JzZXJ2ZXJzKCk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBWZWN0b3I8c3RkOjpy
ZWZlcmVuY2Vfd3JhcHBlcjxPYnNlcnZlcj4+JiBvYnNlcnZlcnMoKSBXVEZfUkVRVUlSRVNfTE9D
SyhvYnNlcnZlckxvY2soKSk7CiAKLSAgICBzdGF0aWMgTG9jayYgb2JzZXJ2ZXJMb2NrKCkKKyAg
ICBzdGF0aWMgQ2hlY2tlZExvY2smIG9ic2VydmVyTG9jaygpIFdURl9SRVRVUk5TX0xPQ0sobG9n
Z2VyT2JzZXJ2ZXJMb2NrKQogICAgIHsKICAgICAgICAgcmV0dXJuIGxvZ2dlck9ic2VydmVyTG9j
azsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwCmluZGV4IDYx
YjI2ZjFmOTViYTAwMzMxYjM5MGMxMGY0ZjA5YTIwMDk5ZGQ0MzUuLjAzYzk1ZGE1MzM4YTgyY2M3
MmI0MTJkOTAwNTQ5NWI4YTJhMWQ5OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJj
ZUltcGwuY3BwCkBAIC0xMDUsOSArMTA1LDEwIEBAIHZvaWQgU3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlSW1wbDo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgaWYgKGF1dG8g
bG9ja2VyID0gdHJ5SG9sZExvY2sobV9kYXRhU291cmNlTG9jaykpCisgICAgICAgIGlmIChtX2Rh
dGFTb3VyY2VMb2NrLnRyeUxvY2soKSkgewogICAgICAgICAgICAgbV9kYXRhU291cmNlID0gV1RG
TW92ZShkYXRhU291cmNlKTsKLSAgICAgICAgZWxzZQorICAgICAgICAgICAgbV9kYXRhU291cmNl
TG9jay51bmxvY2soKTsKKyAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICByZXR1cm47CiAgICAg
fQogCkBAIC0xMTgsNyArMTE5LDcgQEAgdm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3Vy
Y2VJbXBsOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJgogCiAgICAgICAg
IGF1dG8gZGF0YSA9IFdlYkF1ZGlvQnVmZmVyTGlzdCB7IGF1ZGlvRGVzY3JpcHRpb24sIHN0YXRp
Y19jYXN0PHVpbnQzMl90PihzYW1wbGVDb3VudCkgfTsKICAgICAgICAgewotICAgICAgICAgICAg
YXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2RhdGFTb3VyY2VMb2NrKTsKKyAgICAgICAgICAgIExv
Y2tlciBsb2NrZXIgeyBtX2RhdGFTb3VyY2VMb2NrIH07CiAgICAgICAgICAgICBtX2RhdGFTb3Vy
Y2UtPnB1bGxTYW1wbGVzKCpkYXRhLmxpc3QoKSwgc2FtcGxlQ291bnQsIHRpbWUudGltZVZhbHVl
KCksIDAsIEF1ZGlvU2FtcGxlRGF0YVNvdXJjZTo6Q29weSk7CiAgICAgICAgIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlSW1wbC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5oCmluZGV4IGJjNWMwMmExODkzNDcxNGM3NzM5MzU4
NGUyM2M3M2IzMDFlYjg3NGYuLmY4ZmJjYWI0MmYxMDY4ZjkxM2ZhMzhlOGU4NWJkMjI0MDgyZGZl
OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmgKQEAgLTI5LDYgKzI5LDcg
QEAKIAogI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKICNpbmNsdWRlICJTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8d3RmL0No
ZWNrZWRMb2NrLmg+CiAKICNpZiBQTEFURk9STShDT0NPQSkKICNpbmNsdWRlICJBdWRpb1NhbXBs
ZURhdGFTb3VyY2UuaCIKQEAgLTcyLDcgKzczLDcgQEAgcHJpdmF0ZToKIAogI2lmIFBMQVRGT1JN
KENPQ09BKQogICAgIFJlZlB0cjxBdWRpb1NhbXBsZURhdGFTb3VyY2U+IG1fZGF0YVNvdXJjZTsK
LSAgICBMb2NrIG1fZGF0YVNvdXJjZUxvY2s7CisgICAgQ2hlY2tlZExvY2sgbV9kYXRhU291cmNl
TG9jazsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb1BhcmFtVGltZWxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb1BhcmFtVGltZWxpbmUuY3BwCmluZGV4IDcyZTQ4MDBjODg3MzdjNjY4YzFk
NjY5ZThlMDE4ZTEzYWIwN2U5ZmEuLjA0MDZlYWI3NzEwZThlZDk3ZGU4OTgzYTIwMGU1MTU2YzIy
OWVhYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Q
YXJhbVRpbWVsaW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvUGFyYW1UaW1lbGluZS5jcHAKQEAgLTczLDEzICs3MywxMyBAQCBzdGF0aWMgYm9vbCBoYXNT
ZXRUYXJnZXRDb252ZXJnZWQoZmxvYXQgdmFsdWUsIGZsb2F0IHRhcmdldCwgU2Vjb25kcyBjdXJy
ZW50VGltZQogCiBFeGNlcHRpb25Pcjx2b2lkPiBBdWRpb1BhcmFtVGltZWxpbmU6OnNldFZhbHVl
QXRUaW1lKGZsb2F0IHZhbHVlLCBTZWNvbmRzIHRpbWUpCiB7Ci0gICAgYXV0byBsb2NrZXIgPSBo
b2xkTG9jayhtX2V2ZW50c0xvY2spOworICAgIExvY2tlciBsb2NrZXIgeyBtX2V2ZW50c0xvY2sg
fTsKICAgICByZXR1cm4gaW5zZXJ0RXZlbnQoUGFyYW1FdmVudDo6Y3JlYXRlU2V0VmFsdWVFdmVu
dCh2YWx1ZSwgdGltZSkpOwogfQogCiBFeGNlcHRpb25Pcjx2b2lkPiBBdWRpb1BhcmFtVGltZWxp
bmU6OmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKGZsb2F0IHRhcmdldFZhbHVlLCBTZWNvbmRzIGVu
ZFRpbWUsIGZsb2F0IGN1cnJlbnRWYWx1ZSwgU2Vjb25kcyBjdXJyZW50VGltZSkKIHsKLSAgICBh
dXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fZXZlbnRzTG9jayk7CisgICAgTG9ja2VyIGxvY2tlciB7
IG1fZXZlbnRzTG9jayB9OwogCiAgICAgLy8gTGluZWFyIHJhbXAgZXZlbnRzIG5lZWQgYSBwcmVj
ZWRpbmcgZXZlbnQgc28gdGhhdCB0aGV5IGhhdmUgYW4gaW5pdGlhbCB2YWx1ZS4KICAgICBpZiAo
bV9ldmVudHMuaXNFbXB0eSgpKQpAQCAtOTAsNyArOTAsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBB
dWRpb1BhcmFtVGltZWxpbmU6OmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKGZsb2F0IHRhcmdldFZh
bHVlLAogCiBFeGNlcHRpb25Pcjx2b2lkPiBBdWRpb1BhcmFtVGltZWxpbmU6OmV4cG9uZW50aWFs
UmFtcFRvVmFsdWVBdFRpbWUoZmxvYXQgdGFyZ2V0VmFsdWUsIFNlY29uZHMgZW5kVGltZSwgZmxv
YXQgY3VycmVudFZhbHVlLCBTZWNvbmRzIGN1cnJlbnRUaW1lKQogewotICAgIGF1dG8gbG9ja2Vy
ID0gaG9sZExvY2sobV9ldmVudHNMb2NrKTsKKyAgICBMb2NrZXIgbG9ja2VyIHsgbV9ldmVudHNM
b2NrIH07CiAKICAgICAvLyBFeHBvbmVudGlhbCByYW1wIGV2ZW50cyBuZWVkIGEgcHJlY2VkaW5n
IGV2ZW50IHNvIHRoYXQgdGhleSBoYXZlIGFuIGluaXRpYWwgdmFsdWUuCiAgICAgaWYgKG1fZXZl
bnRzLmlzRW1wdHkoKSkKQEAgLTEwMSw3ICsxMDEsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBBdWRp
b1BhcmFtVGltZWxpbmU6OmV4cG9uZW50aWFsUmFtcFRvVmFsdWVBdFRpbWUoZmxvYXQgdGFyZ2V0
VgogCiBFeGNlcHRpb25Pcjx2b2lkPiBBdWRpb1BhcmFtVGltZWxpbmU6OnNldFRhcmdldEF0VGlt
ZShmbG9hdCB0YXJnZXQsIFNlY29uZHMgdGltZSwgZmxvYXQgdGltZUNvbnN0YW50KQogewotICAg
IGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9ldmVudHNMb2NrKTsKKyAgICBMb2NrZXIgbG9ja2Vy
IHsgbV9ldmVudHNMb2NrIH07CiAgICAgLy8gSWYgdGltZUNvbnN0YW50IGlzIDAsIHdlIGluc3Rh
bnRseSBqdW1wIHRvIHRoZSB0YXJnZXQgdmFsdWUsIHNvIGluc2VydCBhIFNldFZhbHVlRXZlbnQg
aW5zdGVhZCBvZiBTZXRUYXJnZXRFdmVudC4KICAgICBpZiAoIXRpbWVDb25zdGFudCkKICAgICAg
ICAgcmV0dXJuIGluc2VydEV2ZW50KFBhcmFtRXZlbnQ6OmNyZWF0ZVNldFZhbHVlRXZlbnQodGFy
Z2V0LCB0aW1lKSk7CkBAIC0xMTAsNyArMTEwLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQXVkaW9Q
YXJhbVRpbWVsaW5lOjpzZXRUYXJnZXRBdFRpbWUoZmxvYXQgdGFyZ2V0LCBTZWNvbmRzIHRpbWUK
IAogRXhjZXB0aW9uT3I8dm9pZD4gQXVkaW9QYXJhbVRpbWVsaW5lOjpzZXRWYWx1ZUN1cnZlQXRU
aW1lKFZlY3RvcjxmbG9hdD4mJiBjdXJ2ZSwgU2Vjb25kcyB0aW1lLCBTZWNvbmRzIGR1cmF0aW9u
KQogewotICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9ldmVudHNMb2NrKTsKKyAgICBMb2Nr
ZXIgbG9ja2VyIHsgbV9ldmVudHNMb2NrIH07CiAKICAgICBmbG9hdCBjdXJ2ZUVuZFZhbHVlID0g
Y3VydmUubGFzdCgpOwogICAgIGF1dG8gcmVzdWx0ID0gaW5zZXJ0RXZlbnQoUGFyYW1FdmVudDo6
Y3JlYXRlU2V0VmFsdWVDdXJ2ZUV2ZW50KFdURk1vdmUoY3VydmUpLCB0aW1lLCBkdXJhdGlvbikp
OwpAQCAtMTg2LDcgKzE4Niw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlvUGFyYW1UaW1lbGlu
ZTo6aW5zZXJ0RXZlbnQoUGFyYW1FdmVudCYmIGV2ZW50KQogCiB2b2lkIEF1ZGlvUGFyYW1UaW1l
bGluZTo6Y2FuY2VsU2NoZWR1bGVkVmFsdWVzKFNlY29uZHMgY2FuY2VsVGltZSkKIHsKLSAgICBh
dXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fZXZlbnRzTG9jayk7CisgICAgTG9ja2VyIGxvY2tlciB7
IG1fZXZlbnRzTG9jayB9OwogCiAgICAgLy8gUmVtb3ZlIGFsbCBldmVudHMgd2hvc2Ugc3RhcnQg
dGltZSBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhlIGNhbmNlbCB0aW1lLgogICAgIC8v
IEFsc28gaGFuZGxlIHRoZSBzcGVjaWFsIGNhc2Ugd2hlcmUgdGhlIGNhbmNlbCB0aW1lIGxpZXMg
aW4gdGhlIG1pZGRsZSBvZiBhCkBAIC0yMTUsNyArMjE1LDcgQEAgdm9pZCBBdWRpb1BhcmFtVGlt
ZWxpbmU6OmNhbmNlbFNjaGVkdWxlZFZhbHVlcyhTZWNvbmRzIGNhbmNlbFRpbWUpCiAKIEV4Y2Vw
dGlvbk9yPHZvaWQ+IEF1ZGlvUGFyYW1UaW1lbGluZTo6Y2FuY2VsQW5kSG9sZEF0VGltZShTZWNv
bmRzIGNhbmNlbFRpbWUpCiB7Ci0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2V2ZW50c0xv
Y2spOworICAgIExvY2tlciBsb2NrZXIgeyBtX2V2ZW50c0xvY2sgfTsKIAogICAgIC8vIEZpbmQg
dGhlIGZpcnN0IGV2ZW50IGF0IG9yIGp1c3QgcGFzdCBjYW5jZWxUaW1lLgogICAgIHNpemVfdCBp
ID0gbV9ldmVudHMuZmluZE1hdGNoaW5nKFsmXShhdXRvJiBldmVudCkgewpAQCAtMzI3LDggKzMy
NywxMCBAQCB2b2lkIEF1ZGlvUGFyYW1UaW1lbGluZTo6cmVtb3ZlQ2FuY2VsbGVkRXZlbnRzKHNp
emVfdCBmaXJzdEV2ZW50VG9SZW1vdmUpCiBPcHRpb25hbDxmbG9hdD4gQXVkaW9QYXJhbVRpbWVs
aW5lOjp2YWx1ZUZvckNvbnRleHRUaW1lKEJhc2VBdWRpb0NvbnRleHQmIGNvbnRleHQsIGZsb2F0
IGRlZmF1bHRWYWx1ZSwgZmxvYXQgbWluVmFsdWUsIGZsb2F0IG1heFZhbHVlKQogewogICAgIHsK
LSAgICAgICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhtX2V2ZW50c0xvY2spOwotICAgICAg
ICBpZiAoIWxvY2tlciB8fCAhbV9ldmVudHMuc2l6ZSgpIHx8IFNlY29uZHMgeyBjb250ZXh0LmN1
cnJlbnRUaW1lKCkgfSA8IG1fZXZlbnRzWzBdLnRpbWUoKSkKKyAgICAgICAgaWYgKCFtX2V2ZW50
c0xvY2sudHJ5TG9jaygpKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICAg
ICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9ja1RhZyB7IH0sIG1fZXZlbnRzTG9jayB9OworICAg
ICAgICBpZiAoIW1fZXZlbnRzLnNpemUoKSB8fCBTZWNvbmRzIHsgY29udGV4dC5jdXJyZW50VGlt
ZSgpIH0gPCBtX2V2ZW50c1swXS50aW1lKCkpCiAgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OwogICAgIH0KIApAQCAtMzQ1LDExICszNDcsMTEgQEAgT3B0aW9uYWw8ZmxvYXQ+IEF1ZGlv
UGFyYW1UaW1lbGluZTo6dmFsdWVGb3JDb250ZXh0VGltZShCYXNlQXVkaW9Db250ZXh0JiBjb250
ZXgKIGZsb2F0IEF1ZGlvUGFyYW1UaW1lbGluZTo6dmFsdWVzRm9yRnJhbWVSYW5nZShzaXplX3Qg
c3RhcnRGcmFtZSwgc2l6ZV90IGVuZEZyYW1lLCBmbG9hdCBkZWZhdWx0VmFsdWUsIGZsb2F0IG1p
blZhbHVlLCBmbG9hdCBtYXhWYWx1ZSwgZmxvYXQqIHZhbHVlcywgdW5zaWduZWQgbnVtYmVyT2ZW
YWx1ZXMsIGRvdWJsZSBzYW1wbGVSYXRlLCBkb3VibGUgY29udHJvbFJhdGUpCiB7CiAgICAgLy8g
V2UgY2FuJ3QgY29udGVuZCB0aGUgbG9jayBpbiB0aGUgcmVhbHRpbWUgYXVkaW8gdGhyZWFkLgot
ICAgIGF1dG8gbG9ja2VyID0gdHJ5SG9sZExvY2sobV9ldmVudHNMb2NrKTsKLSAgICBpZiAoIWxv
Y2tlcikgeworICAgIGlmICghbV9ldmVudHNMb2NrLnRyeUxvY2soKSkgewogICAgICAgICBzdGQ6
OmZpbGxfbih2YWx1ZXMsIG51bWJlck9mVmFsdWVzLCBkZWZhdWx0VmFsdWUpOwogICAgICAgICBy
ZXR1cm4gZGVmYXVsdFZhbHVlOwogICAgIH0KKyAgICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2Nr
VGFnIHsgfSwgbV9ldmVudHNMb2NrIH07CiAKICAgICBmbG9hdCB2YWx1ZSA9IHZhbHVlc0ZvckZy
YW1lUmFuZ2VJbXBsKHN0YXJ0RnJhbWUsIGVuZEZyYW1lLCBkZWZhdWx0VmFsdWUsIHZhbHVlcywg
bnVtYmVyT2ZWYWx1ZXMsIHNhbXBsZVJhdGUsIGNvbnRyb2xSYXRlKTsKIApAQCAtOTg0LDkgKzk4
Niw5IEBAIGJvb2wgQXVkaW9QYXJhbVRpbWVsaW5lOjppc0V2ZW50Q3VycmVudChjb25zdCBQYXJh
bUV2ZW50JiBldmVudCwgY29uc3QgUGFyYW1FdmVuCiAKIGJvb2wgQXVkaW9QYXJhbVRpbWVsaW5l
OjpoYXNWYWx1ZXMoc2l6ZV90IHN0YXJ0RnJhbWUsIGRvdWJsZSBzYW1wbGVSYXRlKSBjb25zdAog
ewotICAgIGF1dG8gbG9ja2VyID0gdHJ5SG9sZExvY2sobV9ldmVudHNMb2NrKTsKLSAgICBpZiAo
IWxvY2tlcikKKyAgICBpZiAoIW1fZXZlbnRzTG9jay50cnlMb2NrKCkpCiAgICAgICAgIHJldHVy
biB0cnVlOworICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2tUYWcgeyB9LCBtX2V2ZW50c0xv
Y2sgfTsKIAogICAgIC8vIFJldHVybiBmYWxzZSBpZiB0aGVyZSBhcmUgbm8gZXZlbnRzIGluIHRo
ZSB0aW1lIHJhbmdlLgogICAgIGF1dG8gZW5kRnJhbWUgPSBzdGFydEZyYW1lICsgQXVkaW9VdGls
aXRpZXM6OnJlbmRlclF1YW50dW1TaXplOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtVGltZWxpbmUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9QYXJhbVRpbWVsaW5lLmgKaW5kZXggNGNkMWEwZjAxNDFjOTE4MWI0
ZmI2MzBjMTczNDY2MzNmMzgyODc5OC4uOWI3MjYxN2Q0MmMwOGE0NzRhNzUyNTY0NTFjNTAzNmM0
MzFkODI5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1BhcmFtVGltZWxpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvUGFyYW1UaW1lbGluZS5oCkBAIC0zMCw3ICszMCw3IEBACiAKICNpbmNsdWRlICJBdWRpb0Nv
bnRleHQuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9GbG9hdDMyQXJyYXkuaD4KLSNpbmNs
dWRlIDx3dGYvTG9jay5oPgorI2luY2x1ZGUgPHd0Zi9DaGVja2VkTG9jay5oPgogI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTg5LDkgKzE4OSw5IEBA
IHByaXZhdGU6CiAgICAgICAgIGNvbnN0IGludCBldmVudEluZGV4OwogICAgIH07CiAKLSAgICB2
b2lkIHJlbW92ZUNhbmNlbGxlZEV2ZW50cyhzaXplX3QgZmlyc3RFdmVudFRvUmVtb3ZlKTsKLSAg
ICBFeGNlcHRpb25Pcjx2b2lkPiBpbnNlcnRFdmVudChQYXJhbUV2ZW50JiYpOwotICAgIGZsb2F0
IHZhbHVlc0ZvckZyYW1lUmFuZ2VJbXBsKHNpemVfdCBzdGFydEZyYW1lLCBzaXplX3QgZW5kRnJh
bWUsIGZsb2F0IGRlZmF1bHRWYWx1ZSwgZmxvYXQqIHZhbHVlcywgdW5zaWduZWQgbnVtYmVyT2ZW
YWx1ZXMsIGRvdWJsZSBzYW1wbGVSYXRlLCBkb3VibGUgY29udHJvbFJhdGUpOworICAgIHZvaWQg
cmVtb3ZlQ2FuY2VsbGVkRXZlbnRzKHNpemVfdCBmaXJzdEV2ZW50VG9SZW1vdmUpIFdURl9SRVFV
SVJFU19MT0NLKG1fZXZlbnRzTG9jayk7CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gaW5zZXJ0RXZl
bnQoUGFyYW1FdmVudCYmKSBXVEZfUkVRVUlSRVNfTE9DSyhtX2V2ZW50c0xvY2spOworICAgIGZs
b2F0IHZhbHVlc0ZvckZyYW1lUmFuZ2VJbXBsKHNpemVfdCBzdGFydEZyYW1lLCBzaXplX3QgZW5k
RnJhbWUsIGZsb2F0IGRlZmF1bHRWYWx1ZSwgZmxvYXQqIHZhbHVlcywgdW5zaWduZWQgbnVtYmVy
T2ZWYWx1ZXMsIGRvdWJsZSBzYW1wbGVSYXRlLCBkb3VibGUgY29udHJvbFJhdGUpIFdURl9SRVFV
SVJFU19MT0NLKG1fZXZlbnRzTG9jayk7CiAgICAgZmxvYXQgbGluZWFyUmFtcEF0VGltZShTZWNv
bmRzIHQsIGZsb2F0IHZhbHVlMSwgU2Vjb25kcyB0aW1lMSwgZmxvYXQgdmFsdWUyLCBTZWNvbmRz
IHRpbWUyKTsKICAgICBmbG9hdCBleHBvbmVudGlhbFJhbXBBdFRpbWUoU2Vjb25kcyB0LCBmbG9h
dCB2YWx1ZTEsIFNlY29uZHMgdGltZTEsIGZsb2F0IHZhbHVlMiwgU2Vjb25kcyB0aW1lMik7CiAg
ICAgZmxvYXQgdmFsdWVDdXJ2ZUF0VGltZShTZWNvbmRzIHQsIFNlY29uZHMgdGltZTEsIFNlY29u
ZHMgZHVyYXRpb24sIGNvbnN0IGZsb2F0KiBjdXJ2ZURhdGEsIHNpemVfdCBjdXJ2ZUxlbmd0aCk7
CkBAIC0yMDAsMTQgKzIwMCwxNCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBwcm9jZXNzTGluZWFy
UmFtcChjb25zdCBBdXRvbWF0aW9uU3RhdGUmLCBmbG9hdCogdmFsdWVzLCBzaXplX3QmIGN1cnJl
bnRGcmFtZSwgZmxvYXQmIHZhbHVlLCB1bnNpZ25lZCYgd3JpdGVJbmRleCk7CiAgICAgdm9pZCBw
cm9jZXNzRXhwb25lbnRpYWxSYW1wKGNvbnN0IEF1dG9tYXRpb25TdGF0ZSYsIGZsb2F0KiB2YWx1
ZXMsIHNpemVfdCYgY3VycmVudEZyYW1lLCBmbG9hdCYgdmFsdWUsIHVuc2lnbmVkJiB3cml0ZUlu
ZGV4KTsKLSAgICB2b2lkIHByb2Nlc3NDYW5jZWxWYWx1ZXMoY29uc3QgQXV0b21hdGlvblN0YXRl
JiwgZmxvYXQqIHZhbHVlcywgc2l6ZV90JiBjdXJyZW50RnJhbWUsIGZsb2F0JiB2YWx1ZSwgdW5z
aWduZWQmIHdyaXRlSW5kZXgpOworICAgIHZvaWQgcHJvY2Vzc0NhbmNlbFZhbHVlcyhjb25zdCBB
dXRvbWF0aW9uU3RhdGUmLCBmbG9hdCogdmFsdWVzLCBzaXplX3QmIGN1cnJlbnRGcmFtZSwgZmxv
YXQmIHZhbHVlLCB1bnNpZ25lZCYgd3JpdGVJbmRleCkgV1RGX1JFUVVJUkVTX0xPQ0sobV9ldmVu
dHNMb2NrKTsKICAgICB2b2lkIHByb2Nlc3NTZXRUYXJnZXQoY29uc3QgQXV0b21hdGlvblN0YXRl
JiwgZmxvYXQqIHZhbHVlcywgc2l6ZV90JiBjdXJyZW50RnJhbWUsIGZsb2F0JiB2YWx1ZSwgdW5z
aWduZWQmIHdyaXRlSW5kZXgpOwogICAgIHZvaWQgcHJvY2Vzc1NldFZhbHVlQ3VydmUoY29uc3Qg
QXV0b21hdGlvblN0YXRlJiwgZmxvYXQqIHZhbHVlcywgc2l6ZV90JiBjdXJyZW50RnJhbWUsIGZs
b2F0JiB2YWx1ZSwgdW5zaWduZWQmIHdyaXRlSW5kZXgpOwotICAgIHZvaWQgcHJvY2Vzc1NldFRh
cmdldEZvbGxvd2VkQnlSYW1wKGludCBldmVudEluZGV4LCBQYXJhbUV2ZW50KiYsIFBhcmFtRXZl
bnQ6OlR5cGUgbmV4dEV2ZW50VHlwZSwgc2l6ZV90IGN1cnJlbnRGcmFtZSwgZG91YmxlIHNhbXBs
aW5nUGVyaW9kLCBkb3VibGUgY29udHJvbFJhdGUsIGZsb2F0JiB2YWx1ZSk7CisgICAgdm9pZCBw
cm9jZXNzU2V0VGFyZ2V0Rm9sbG93ZWRCeVJhbXAoaW50IGV2ZW50SW5kZXgsIFBhcmFtRXZlbnQq
JiwgUGFyYW1FdmVudDo6VHlwZSBuZXh0RXZlbnRUeXBlLCBzaXplX3QgY3VycmVudEZyYW1lLCBk
b3VibGUgc2FtcGxpbmdQZXJpb2QsIGRvdWJsZSBjb250cm9sUmF0ZSwgZmxvYXQmIHZhbHVlKSBX
VEZfUkVRVUlSRVNfTE9DSyhtX2V2ZW50c0xvY2spOwogCi0gICAgVmVjdG9yPFBhcmFtRXZlbnQ+
IG1fZXZlbnRzOworICAgIFZlY3RvcjxQYXJhbUV2ZW50PiBtX2V2ZW50cyBXVEZfR1VBUkRFRF9C
WV9MT0NLKG1fZXZlbnRzTG9jayk7CiAKLSAgICBtdXRhYmxlIExvY2sgbV9ldmVudHNMb2NrOwor
ICAgIG11dGFibGUgQ2hlY2tlZExvY2sgbV9ldmVudHNMb2NrOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVk
aW9EZXN0aW5hdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9EZXN0
aW5hdGlvbi5oCmluZGV4IDgzMTk2NDczYmMxYWE5YmRlZTg2ZjcwZDc0ZjA5MDE4MTdmNmY2OGEu
LmViNTRmMGQ1MWQ3ODYwYjlmNjA0MGQ4OTM1ODg0NDg4MmE2NWJiNjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvRGVzdGluYXRpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0Rlc3RpbmF0aW9uLmgKQEAgLTMyLDYgKzMy
LDcgQEAKICNpbmNsdWRlICJBdWRpb0J1cy5oIgogI2luY2x1ZGUgIkF1ZGlvSU9DYWxsYmFjay5o
IgogI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZExvY2suaD4KICNpbmNs
dWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2lu
Y2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgpAQCAtNzcsMzAgKzc4LDMyIEBAIHB1
YmxpYzoKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBBdWRpb0Rlc3RpbmF0aW9uKEF1ZGlvSU9D
YWxsYmFjayYpOwogCi0gICAgTG9jayBtX2NhbGxiYWNrTG9jazsKLSAgICBBdWRpb0lPQ2FsbGJh
Y2sqIG1fY2FsbGJhY2sgeyBudWxscHRyIH07CisgICAgQ2hlY2tlZExvY2sgbV9jYWxsYmFja0xv
Y2s7CisgICAgQXVkaW9JT0NhbGxiYWNrKiBtX2NhbGxiYWNrIFdURl9HVUFSREVEX0JZX0xPQ0so
bV9jYWxsYmFja0xvY2spIHsgbnVsbHB0ciB9OwogfTsKIAogaW5saW5lIEF1ZGlvRGVzdGluYXRp
b246OkF1ZGlvRGVzdGluYXRpb24oQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaykKIHsKLSAgICBh
dXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fY2FsbGJhY2tMb2NrKTsKKyAgICBMb2NrZXIgbG9ja2Vy
IHsgbV9jYWxsYmFja0xvY2sgfTsKICAgICBtX2NhbGxiYWNrID0gJmNhbGxiYWNrOwogfQogCiBp
bmxpbmUgdm9pZCBBdWRpb0Rlc3RpbmF0aW9uOjpjbGVhckNhbGxiYWNrKCkKIHsKLSAgICBhdXRv
IGxvY2tlciA9IGhvbGRMb2NrKG1fY2FsbGJhY2tMb2NrKTsKKyAgICBMb2NrZXIgbG9ja2VyIHsg
bV9jYWxsYmFja0xvY2sgfTsKICAgICBtX2NhbGxiYWNrID0gbnVsbHB0cjsKIH0KIAogaW5saW5l
IHZvaWQgQXVkaW9EZXN0aW5hdGlvbjo6Y2FsbFJlbmRlckNhbGxiYWNrKEF1ZGlvQnVzKiBzb3Vy
Y2VCdXMsIEF1ZGlvQnVzKiBkZXN0aW5hdGlvbkJ1cywgc2l6ZV90IGZyYW1lc1RvUHJvY2Vzcywg
Y29uc3QgQXVkaW9JT1Bvc2l0aW9uJiBvdXRwdXRQb3NpdGlvbikKIHsKLSAgICBhdXRvIGxvY2tl
ciA9IHRyeUhvbGRMb2NrKG1fY2FsbGJhY2tMb2NrKTsKLSAgICBpZiAoIWxvY2tlciB8fCAhbV9j
YWxsYmFjaykgewotICAgICAgICBkZXN0aW5hdGlvbkJ1cy0+emVybygpOwotICAgICAgICByZXR1
cm47CisgICAgaWYgKG1fY2FsbGJhY2tMb2NrLnRyeUxvY2soKSkgeworICAgICAgICBMb2NrZXIg
bG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsgfSwgbV9jYWxsYmFja0xvY2sgfTsKKyAgICAgICAgaWYg
KG1fY2FsbGJhY2spIHsKKyAgICAgICAgICAgIG1fY2FsbGJhY2stPnJlbmRlcihzb3VyY2VCdXMs
IGRlc3RpbmF0aW9uQnVzLCBmcmFtZXNUb1Byb2Nlc3MsIG91dHB1dFBvc2l0aW9uKTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQogICAgIH0KLSAgICBtX2NhbGxiYWNrLT5yZW5kZXIo
c291cmNlQnVzLCBkZXN0aW5hdGlvbkJ1cywgZnJhbWVzVG9Qcm9jZXNzLCBvdXRwdXRQb3NpdGlv
bik7CisgICAgZGVzdGluYXRpb25CdXMtPnplcm8oKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVk
aW9EZXN0aW5hdGlvbkNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2Nv
Y29hL0F1ZGlvRGVzdGluYXRpb25Db2NvYS5jcHAKaW5kZXggZTE0Zjg3NDMyZjJhMDliYWNhMjZi
ZjY2YmE2ODM0YzZmZjg1ZDBiYS4uYjY2MGU4ODdhNmRhOTFkNmIyYmJmZWJiOTc0ZWQ0ZjM3MmMx
MTUwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVk
aW9EZXN0aW5hdGlvbkNvY29hLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9jb2NvYS9BdWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwCkBAIC0xMDcsMTIgKzEwNywxOSBAQCB2
b2lkIEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6c3RhcnQoRnVuY3Rpb248dm9pZChGdW5jdGlvbjx2
b2lkKCk+JiYpPiYmIGRpc3BhdGNoVAogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAg
TE9HKE1lZGlhLCAiQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpzdGFydCIpOwogICAgIHsKLSAgICAg
ICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2Rpc3BhdGNoVG9SZW5kZXJUaHJlYWRMb2NrKTsK
KyAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1fZGlzcGF0Y2hUb1JlbmRlclRocmVhZExvY2sgfTsK
ICAgICAgICAgbV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkID0gV1RGTW92ZShkaXNwYXRjaFRvUmVu
ZGVyVGhyZWFkKTsKICAgICB9CiAgICAgc3RhcnRSZW5kZXJpbmcoV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpOwogfQogCitib29sIEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6aXNQbGF5aW5nKCkK
K3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIExvY2tlciBsb2NrZXIgeyBtX2lz
UGxheWluZ0xvY2sgfTsKKyAgICByZXR1cm4gbV9pc1BsYXlpbmc7Cit9CisKIHZvaWQgQXVkaW9E
ZXN0aW5hdGlvbkNvY29hOjpzdGFydFJlbmRlcmluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJv
b2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7
CkBAIC0xMzEsNyArMTM4LDcgQEAgdm9pZCBBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OnN0b3AoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGwKICAgICBMT0coTWVk
aWEsICJBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OnN0b3AiKTsKICAgICBzdG9wUmVuZGVyaW5nKFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKICAgICB7Ci0gICAgICAgIGF1dG8gbG9ja2VyID0g
aG9sZExvY2sobV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkTG9jayk7CisgICAgICAgIExvY2tlciBs
b2NrZXIgeyBtX2Rpc3BhdGNoVG9SZW5kZXJUaHJlYWRMb2NrIH07CiAgICAgICAgIG1fZGlzcGF0
Y2hUb1JlbmRlclRocmVhZCA9IG51bGxwdHI7CiAgICAgfQogfQpAQCAtMTUyLDcgKzE1OSw3IEBA
IHZvaWQgQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpzZXRJc1BsYXlpbmcoYm9vbCBpc1BsYXlpbmcp
CiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICB7Ci0gICAgICAgIGF1dG8gbG9j
a2VyID0gaG9sZExvY2sobV9pc1BsYXlpbmdMb2NrKTsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7
IG1faXNQbGF5aW5nTG9jayB9OwogICAgICAgICBpZiAobV9pc1BsYXlpbmcgPT0gaXNQbGF5aW5n
KQogICAgICAgICAgICAgcmV0dXJuOwogCkBAIC0xNjAsNyArMTY3LDcgQEAgdm9pZCBBdWRpb0Rl
c3RpbmF0aW9uQ29jb2E6OnNldElzUGxheWluZyhib29sIGlzUGxheWluZykKICAgICB9CiAKICAg
ICB7Ci0gICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9jYWxsYmFja0xvY2spOworICAg
ICAgICBMb2NrZXIgbG9ja2VyIHsgbV9jYWxsYmFja0xvY2sgfTsKICAgICAgICAgaWYgKG1fY2Fs
bGJhY2spCiAgICAgICAgICAgICBtX2NhbGxiYWNrLT5pc1BsYXlpbmdEaWRDaGFuZ2UoKTsKICAg
ICB9CkBAIC0yMjEsMTAgKzIyOCwxMSBAQCBPU1N0YXR1cyBBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6
OnJlbmRlcihkb3VibGUgc2FtcGxlVGltZSwgdWludDY0X3QgaG9zdFRpbWUsIFVJbgogICAgIH0K
IAogICAgIC8vIFdoZW4gdGhlcmUgaXMgYSBBdWRpb1dvcmtsZXQsIHdlIGRvIHJlbmRlcmluZyBv
biB0aGUgQXVkaW9Xb3JrbGV0VGhyZWFkLgotICAgIGF1dG8gbG9ja2VyID0gdHJ5SG9sZExvY2so
bV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkTG9jayk7Ci0gICAgaWYgKCFsb2NrZXIpCisgICAgaWYg
KCFtX2Rpc3BhdGNoVG9SZW5kZXJUaHJlYWRMb2NrLnRyeUxvY2soKSkKICAgICAgICAgcmV0dXJu
IC0xOwogCisgICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9ja1RhZyB7IH0sIG1fZGlzcGF0Y2hU
b1JlbmRlclRocmVhZExvY2sgfTsKKwogICAgIGlmICghbV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFk
KQogICAgICAgICByZW5kZXJPblJlbmRlcmluZ1RoZWFkSWZQbGF5aW5nKGZyYW1lc1RvUmVuZGVy
KTsKICAgICBlbHNlIHsKQEAgLTIzOCw5ICsyNDYsMTEgQEAgT1NTdGF0dXMgQXVkaW9EZXN0aW5h
dGlvbkNvY29hOjpyZW5kZXIoZG91YmxlIHNhbXBsZVRpbWUsIHVpbnQ2NF90IGhvc3RUaW1lLCBV
SW4KIAogdm9pZCBBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OnJlbmRlck9uUmVuZGVyaW5nVGhlYWRJ
ZlBsYXlpbmcoc2l6ZV90IGZyYW1lc1RvUmVuZGVyKQogewotICAgIGF1dG8gbG9ja2VyID0gdHJ5
SG9sZExvY2sobV9pc1BsYXlpbmdMb2NrKTsKLSAgICBpZiAobG9ja2VyICYmIG1faXNQbGF5aW5n
KQotICAgICAgICByZW5kZXJPblJlbmRlcmluZ1RoZWFkKGZyYW1lc1RvUmVuZGVyKTsKKyAgICBp
ZiAobV9pc1BsYXlpbmdMb2NrLnRyeUxvY2soKSkgeworICAgICAgICBpZiAobV9pc1BsYXlpbmcp
CisgICAgICAgICAgICByZW5kZXJPblJlbmRlcmluZ1RoZWFkKGZyYW1lc1RvUmVuZGVyKTsKKyAg
ICAgICAgbV9pc1BsYXlpbmdMb2NrLnVubG9jaygpOworICAgIH0KIH0KIAogLy8gVGhpcyBydW5z
IG9uIHRoZSBBdWRpb1dvcmtsZXRUaHJlYWQgd2hlbiBBdWRpb1dvcmtsZXQgaXMgZW5hYmxlZCwg
b24gdGhlIGF1ZGlvIGRldmljZSdzIHJlbmRlcmluZyB0aHJlYWQgb3RoZXJ3aXNlLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlv
bkNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0Rlc3Rp
bmF0aW9uQ29jb2EuaAppbmRleCA1ZDEyMzkyYmU4MWU3MGIyZmMwZTIzNjYzZjUwMzU0NmQ0NzQx
OGVjLi45MTM5ZmVmYTNkYmRmYTMxZjA2Mzc3MjRhZTUwYzAxNDc4N2U5YzMxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0Rlc3RpbmF0aW9uQ29j
b2EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0Rlc3Rp
bmF0aW9uQ29jb2EuaApAQCAtNTUsNyArNTUsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgV0VCQ09SRV9F
WFBPUlQgT1NTdGF0dXMgcmVuZGVyKGRvdWJsZSBzYW1wbGVUaW1lLCB1aW50NjRfdCBob3N0VGlt
ZSwgVUludDMyIG51bWJlck9mRnJhbWVzLCBBdWRpb0J1ZmZlckxpc3QqIGlvRGF0YSkgZmluYWw7
CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldElzUGxheWluZyhib29sKTsKLSAgICBib29s
IGlzUGxheWluZygpIGZpbmFsIHsgcmV0dXJuIG1faXNQbGF5aW5nOyB9CisgICAgYm9vbCBpc1Bs
YXlpbmcoKSBmaW5hbDsKICAgICBmbG9hdCBzYW1wbGVSYXRlKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gbV9jb250ZXh0U2FtcGxlUmF0ZTsgfQogICAgIFdFQkNPUkVfRVhQT1JUIHVuc2lnbmVkIGZy
YW1lc1BlckJ1ZmZlcigpIGNvbnN0IGZpbmFsOwogCkBAIC05MSwxMyArOTEsMTMgQEAgcHJpdmF0
ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TXVsdGlDaGFubmVsUmVzYW1wbGVyPiBtX3Jlc2FtcGxl
cjsKICAgICBBdWRpb0lPUG9zaXRpb24gbV9vdXRwdXRUaW1lc3RhbXA7CiAKLSAgICBMb2NrIG1f
ZGlzcGF0Y2hUb1JlbmRlclRocmVhZExvY2s7Ci0gICAgRnVuY3Rpb248dm9pZChGdW5jdGlvbjx2
b2lkKCk+JiYpPiBtX2Rpc3BhdGNoVG9SZW5kZXJUaHJlYWQ7CisgICAgQ2hlY2tlZExvY2sgbV9k
aXNwYXRjaFRvUmVuZGVyVGhyZWFkTG9jazsKKyAgICBGdW5jdGlvbjx2b2lkKEZ1bmN0aW9uPHZv
aWQoKT4mJik+IG1fZGlzcGF0Y2hUb1JlbmRlclRocmVhZCBXVEZfR1VBUkRFRF9CWV9MT0NLKG1f
ZGlzcGF0Y2hUb1JlbmRlclRocmVhZExvY2spOwogCiAgICAgZmxvYXQgbV9jb250ZXh0U2FtcGxl
UmF0ZTsKIAotICAgIExvY2sgbV9pc1BsYXlpbmdMb2NrOwotICAgIGJvb2wgbV9pc1BsYXlpbmcg
eyBmYWxzZSB9OworICAgIENoZWNrZWRMb2NrIG1faXNQbGF5aW5nTG9jazsKKyAgICBib29sIG1f
aXNQbGF5aW5nIFdURl9HVUFSREVEX0JZX0xPQ0sobV9pc1BsYXlpbmdMb2NrKSB7IGZhbHNlIH07
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
clVuaXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0LmNwcAppbmRleCA5ODA0M2Q5NWNlZmY1Mjdm
MjhiN2FkMjQxZmM5M2YwNzM2YjE5MzhlLi5iMDAzNGI5MmZkNDAzYzIzNmJjMmU2ODhmZTEzMWE4
NDRkMjRkNzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9jb2NvYS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0F1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyVW5pdC5jcHAKQEAgLTg0LDcgKzg0LDcgQEAgdm9pZCBBdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlclVuaXQ6OmFkZFNvdXJjZShSZWY8QXVkaW9TYW1wbGVEYXRhU291cmNlPiYm
IHMKICAgICBSRUxFQVNFX0xPRyhXZWJSVEMsICJBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
clVuaXQ6OmFkZFNvdXJjZSIpOwogCiAgICAgewotICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRM
b2NrKG1fc291cmNlc0xvY2spOworICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9zb3VyY2VzTG9j
ayB9OwogICAgICAgICBBU1NFUlQoIW1fc291cmNlcy5jb250YWlucyhzb3VyY2UuZ2V0KCkpKTsK
ICAgICAgICAgbV9zb3VyY2VzLmFkZChXVEZNb3ZlKHNvdXJjZSkpOwogICAgICAgICBtX3NvdXJj
ZXNDb3B5ID0gY29weVRvVmVjdG9yKG1fc291cmNlcyk7CkBAIC05OSw3ICs5OSw3IEBAIHZvaWQg
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0OjpyZW1vdmVTb3VyY2UoQXVkaW9TYW1w
bGVEYXRhU291cmNlJiBzb3VyCiAKICAgICBib29sIHNob3VsZFN0b3AgPSBmYWxzZTsKICAgICB7
Ci0gICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9zb3VyY2VzTG9jayk7CisgICAgICAg
IExvY2tlciBsb2NrZXIgeyBtX3NvdXJjZXNMb2NrIH07CiAgICAgICAgIG1fc291cmNlcy5yZW1v
dmUoc291cmNlKTsKICAgICAgICAgc2hvdWxkU3RvcCA9IG1fc291cmNlcy5pc0VtcHR5KCk7CiAg
ICAgICAgIG1fc291cmNlc0NvcHkgPSBjb3B5VG9WZWN0b3IobV9zb3VyY2VzKTsKQEAgLTEzMyw5
ICsxMzMsOSBAQCB2b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6cmVuZGVy
KHNpemVfdCBzYW1wbGVDb3VudCwgQXVkaW9CdWZmZXJMaQogCiAgICAgQVNTRVJUKCFpc01haW5U
aHJlYWQoKSk7CiAgICAgaWYgKG1fc2hvdWxkVXBkYXRlUmVuZGVyU291cmNlcykgewotICAgICAg
ICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKG1fc291cmNlc0xvY2spOwotICAgICAgICBpZiAo
IWxvY2tlcikKKyAgICAgICAgaWYgKCFtX3NvdXJjZXNMb2NrLnRyeUxvY2soKSkKICAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9ja1RhZyB7IH0sIG1f
c291cmNlc0xvY2sgfTsKIAogICAgICAgICBtX3JlbmRlclNvdXJjZXMgPSBXVEZNb3ZlKG1fc291
cmNlc0NvcHkpOwogICAgICAgICBtX3Nob3VsZFVwZGF0ZVJlbmRlclNvdXJjZXMgPSBmYWxzZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0F1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vY29jb2EvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0LmgK
aW5kZXggZTVlZmRmMDMyNmIyYzY4Nzk1ZmI3ZmU2ZDU3ZWM3NWZhMjBjMmFlNi4uZmFjYjc3MDQ3
OTg1ZTM0OWFkMGI5ZjJhNGZlYzE0NGVmMWNjMzRlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXJVbml0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2Ev
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0LmgKQEAgLTI4LDYgKzI4LDcgQEAKICNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCiAjaW5jbHVkZSAiQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXJJbnRlcm5hbFVuaXQuaCIKKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZExvY2suaD4KICNp
bmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVk
ZSA8d3RmL1VuaXF1ZVJlZi5oPgpAQCAtNjUsMTEgKzY2LDExIEBAIHByaXZhdGU6CiAKICAgICB2
b2lkIGNyZWF0ZUF1ZGlvVW5pdElmTmVlZGVkKCk7CiAKLSAgICBIYXNoU2V0PFJlZjxBdWRpb1Nh
bXBsZURhdGFTb3VyY2U+PiBtX3NvdXJjZXM7CisgICAgSGFzaFNldDxSZWY8QXVkaW9TYW1wbGVE
YXRhU291cmNlPj4gbV9zb3VyY2VzIFdURl9HVUFSREVEX0JZX0xPQ0sobV9zb3VyY2VzTG9jayk7
CiAgICAgVmVjdG9yPFJlZjxBdWRpb1NhbXBsZURhdGFTb3VyY2U+PiBtX3NvdXJjZXNDb3B5Owog
ICAgIFZlY3RvcjxSZWY8QXVkaW9TYW1wbGVEYXRhU291cmNlPj4gbV9yZW5kZXJTb3VyY2VzOwog
ICAgIGJvb2wgbV9zaG91bGRVcGRhdGVSZW5kZXJTb3VyY2VzIHsgZmFsc2UgfTsKLSAgICBMb2Nr
IG1fc291cmNlc0xvY2s7CisgICAgQ2hlY2tlZExvY2sgbV9zb3VyY2VzTG9jazsKICAgICBVbmlx
dWVSZWY8QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ+IG1faW50ZXJu
YWxVbml0OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93
ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
d2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAKaW5kZXggZDViNGQ0NjVmNjIxY2EwODYzYWM5MjAx
M2ZmMDM5YWM4OGJkZGNmYS4uZjQ0YzQxODkyYjM4ZjViYWQzMTk2ZDY5YTFjMTMyNGNlOTNiNWVj
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2Vi
UlRDQ29kZWNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9M
aWJXZWJSVENDb2RlY3MuY3BwCkBAIC0yNzAsNyArMjcwLDEyIEBAIExpYldlYlJUQ0NvZGVjczo6
RGVjb2RlciogTGliV2ViUlRDQ29kZWNzOjpjcmVhdGVEZWNvZGVyKFR5cGUgdHlwZSkKIAogaW50
MzJfdCBMaWJXZWJSVENDb2RlY3M6OnJlbGVhc2VEZWNvZGVyKERlY29kZXImIGRlY29kZXIpCiB7
Ci0gICAgQVNTRVJUKCFkZWNvZGVyLmRlY29kZWRJbWFnZUNhbGxiYWNrKTsKKyNpZiBBU1NFUlRf
RU5BQkxFRAorICAgIHsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IGRlY29kZXIuZGVjb2RlZElt
YWdlQ2FsbGJhY2tMb2NrIH07CisgICAgICAgIEFTU0VSVCghZGVjb2Rlci5kZWNvZGVkSW1hZ2VD
YWxsYmFjayk7CisgICAgfQorI2VuZGlmCiAgICAgZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb25B
bmREaXNwYXRjaFRvVGhyZWFkKFt0aGlzLCBkZWNvZGVySWRlbnRpZmllciA9IGRlY29kZXIuaWRl
bnRpZmllcl0gewogICAgICAgICBBU1NFUlQobV9kZWNvZGVycy5jb250YWlucyhkZWNvZGVySWRl
bnRpZmllcikpOwogICAgICAgICBpZiAoYXV0byBkZWNvZGVyID0gbV9kZWNvZGVycy50YWtlKGRl
Y29kZXJJZGVudGlmaWVyKSkgewpAQCAtMjk4LDcgKzMwMyw3IEBAIGludDMyX3QgTGliV2ViUlRD
Q29kZWNzOjpkZWNvZGVGcmFtZShEZWNvZGVyJiBkZWNvZGVyLCB1aW50MzJfdCB0aW1lU3RhbXAs
IGNvbnN0CiAKIHZvaWQgTGliV2ViUlRDQ29kZWNzOjpyZWdpc3RlckRlY29kZUZyYW1lQ2FsbGJh
Y2soRGVjb2RlciYgZGVjb2Rlciwgdm9pZCogZGVjb2RlZEltYWdlQ2FsbGJhY2spCiB7Ci0gICAg
TG9ja0hvbGRlciBob2xkZXIoZGVjb2Rlci5kZWNvZGVkSW1hZ2VDYWxsYmFja0xvY2spOworICAg
IExvY2tlciBsb2NrZXIgeyBkZWNvZGVyLmRlY29kZWRJbWFnZUNhbGxiYWNrTG9jayB9OwogICAg
IGRlY29kZXIuZGVjb2RlZEltYWdlQ2FsbGJhY2sgPSBkZWNvZGVkSW1hZ2VDYWxsYmFjazsKIH0K
IApAQCAtMzE5LDEwICszMjQsMTEgQEAgdm9pZCBMaWJXZWJSVENDb2RlY3M6OmNvbXBsZXRlZERl
Y29kaW5nKFJUQ0RlY29kZXJJZGVudGlmaWVyIGRlY29kZXJJZGVudGlmaWVyLAogICAgIGlmICgh
ZGVjb2RlcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9j
ayhkZWNvZGVyLT5kZWNvZGVkSW1hZ2VDYWxsYmFja0xvY2spOwotICAgIGlmICghbG9ja2VyKQor
ICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlZEltYWdlQ2FsbGJhY2tMb2NrLnRyeUxvY2soKSkKICAg
ICAgICAgcmV0dXJuOwogCisgICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9ja1RhZyB7IH0sIGRl
Y29kZXItPmRlY29kZWRJbWFnZUNhbGxiYWNrTG9jayB9OworCiAgICAgaWYgKCFkZWNvZGVyLT5k
ZWNvZGVkSW1hZ2VDYWxsYmFjaykKICAgICAgICAgcmV0dXJuOwogCkBAIC0zOTMsNyArMzk5LDEy
IEBAIExpYldlYlJUQ0NvZGVjczo6RW5jb2RlciogTGliV2ViUlRDQ29kZWNzOjpjcmVhdGVFbmNv
ZGVyKFR5cGUgdHlwZSwgY29uc3Qgc3RkOjptCiAKIGludDMyX3QgTGliV2ViUlRDQ29kZWNzOjpy
ZWxlYXNlRW5jb2RlcihFbmNvZGVyJiBlbmNvZGVyKQogewotICAgIEFTU0VSVCghZW5jb2Rlci5l
bmNvZGVkSW1hZ2VDYWxsYmFjayk7CisjaWYgQVNTRVJUX0VOQUJMRUQKKyAgICB7CisgICAgICAg
IExvY2tlciBsb2NrZXIgeyBlbmNvZGVyLmVuY29kZWRJbWFnZUNhbGxiYWNrTG9jayB9OworICAg
ICAgICBBU1NFUlQoIWVuY29kZXIuZW5jb2RlZEltYWdlQ2FsbGJhY2spOworICAgIH0KKyNlbmRp
ZgogICAgIGVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uQW5kRGlzcGF0Y2hUb1RocmVhZChbdGhp
cywgZW5jb2RlcklkZW50aWZpZXIgPSBlbmNvZGVyLmlkZW50aWZpZXJdIHsKICAgICAgICAgQVNT
RVJUKG1fZW5jb2RlcnMuY29udGFpbnMoZW5jb2RlcklkZW50aWZpZXIpKTsKICAgICAgICAgYXV0
byBlbmNvZGVyID0gbV9lbmNvZGVycy50YWtlKGVuY29kZXJJZGVudGlmaWVyKTsKQEAgLTQ1NCw3
ICs0NjUsNyBAQCBpbnQzMl90IExpYldlYlJUQ0NvZGVjczo6ZW5jb2RlRnJhbWUoRW5jb2RlciYg
ZW5jb2RlciwgY29uc3Qgd2VicnRjOjpWaWRlb0ZyYW1lJgogCiB2b2lkIExpYldlYlJUQ0NvZGVj
czo6cmVnaXN0ZXJFbmNvZGVGcmFtZUNhbGxiYWNrKEVuY29kZXImIGVuY29kZXIsIHZvaWQqIGVu
Y29kZWRJbWFnZUNhbGxiYWNrKQogewotICAgIExvY2tIb2xkZXIgaG9sZGVyKGVuY29kZXIuZW5j
b2RlZEltYWdlQ2FsbGJhY2tMb2NrKTsKKyAgICBMb2NrZXIgbG9ja2VyIHsgZW5jb2Rlci5lbmNv
ZGVkSW1hZ2VDYWxsYmFja0xvY2sgfTsKIAogICAgIGVuY29kZXIuZW5jb2RlZEltYWdlQ2FsbGJh
Y2sgPSBlbmNvZGVkSW1hZ2VDYWxsYmFjazsKIH0KQEAgLTQ4MSwxMCArNDkyLDExIEBAIHZvaWQg
TGliV2ViUlRDQ29kZWNzOjpjb21wbGV0ZWRFbmNvZGluZyhSVENFbmNvZGVySWRlbnRpZmllciBp
ZGVudGlmaWVyLCBJUEM6OkRhCiAgICAgaWYgKCFlbmNvZGVyKQogICAgICAgICByZXR1cm47CiAK
LSAgICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKGVuY29kZXItPmVuY29kZWRJbWFnZUNhbGxi
YWNrTG9jayk7Ci0gICAgaWYgKCFsb2NrZXIpCisgICAgaWYgKCFlbmNvZGVyLT5lbmNvZGVkSW1h
Z2VDYWxsYmFja0xvY2sudHJ5TG9jaygpKQogICAgICAgICByZXR1cm47CiAKKyAgICBMb2NrZXIg
bG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsgfSwgZW5jb2Rlci0+ZW5jb2RlZEltYWdlQ2FsbGJhY2tM
b2NrIH07CisKICAgICBpZiAoIWVuY29kZXItPmVuY29kZWRJbWFnZUNhbGxiYWNrKQogICAgICAg
ICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2Vi
cnRjL0xpYldlYlJUQ0NvZGVjcy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJy
dGMvTGliV2ViUlRDQ29kZWNzLmgKaW5kZXggMWNkOGY0ZWU2MTE4ZDhkNDU2ZmE2OWFlZTA2MjJi
Zjc2NTc1NjU4ZS4uNGEwZTY0YjE4NGU3MTZlM2UwMTExOTIyNDk3ZjZmOTExMjM0NDcwMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29k
ZWNzLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRD
Q29kZWNzLmgKQEAgLTc0LDggKzc0LDggQEAgcHVibGljOgogICAgIHB1YmxpYzoKICAgICAgICAg
UlRDRGVjb2RlcklkZW50aWZpZXIgaWRlbnRpZmllcjsKICAgICAgICAgVHlwZSB0eXBlOwotICAg
ICAgICB2b2lkKiBkZWNvZGVkSW1hZ2VDYWxsYmFjayB7IG51bGxwdHIgfTsKLSAgICAgICAgTG9j
ayBkZWNvZGVkSW1hZ2VDYWxsYmFja0xvY2s7CisgICAgICAgIHZvaWQqIGRlY29kZWRJbWFnZUNh
bGxiYWNrIFdURl9HVUFSREVEX0JZX0xPQ0soZGVjb2RlZEltYWdlQ2FsbGJhY2tMb2NrKSB7IG51
bGxwdHIgfTsKKyAgICAgICAgQ2hlY2tlZExvY2sgZGVjb2RlZEltYWdlQ2FsbGJhY2tMb2NrOwog
ICAgICAgICBib29sIGhhc0Vycm9yIHsgZmFsc2UgfTsKICAgICAgICAgUmVmUHRyPElQQzo6Q29u
bmVjdGlvbj4gY29ubmVjdGlvbjsKICAgICB9OwpAQCAtMTAwLDggKzEwMCw4IEBAIHB1YmxpYzoK
ICAgICAgICAgd2VicnRjOjpWaWRlb0NvZGVjVHlwZSBjb2RlY1R5cGUgeyB3ZWJydGM6OmtWaWRl
b0NvZGVjR2VuZXJpYyB9OwogICAgICAgICBWZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgU3RyaW5n
Pj4gcGFyYW1ldGVyczsKICAgICAgICAgT3B0aW9uYWw8RW5jb2RlckluaXRpYWxpemF0aW9uRGF0
YT4gaW5pdGlhbGl6YXRpb25EYXRhOwotICAgICAgICB2b2lkKiBlbmNvZGVkSW1hZ2VDYWxsYmFj
ayB7IG51bGxwdHIgfTsKLSAgICAgICAgTG9jayBlbmNvZGVkSW1hZ2VDYWxsYmFja0xvY2s7Cisg
ICAgICAgIHZvaWQqIGVuY29kZWRJbWFnZUNhbGxiYWNrIFdURl9HVUFSREVEX0JZX0xPQ0soZW5j
b2RlZEltYWdlQ2FsbGJhY2tMb2NrKSB7IG51bGxwdHIgfTsKKyAgICAgICAgQ2hlY2tlZExvY2sg
ZW5jb2RlZEltYWdlQ2FsbGJhY2tMb2NrOwogICAgICAgICBSZWZQdHI8SVBDOjpDb25uZWN0aW9u
PiBjb25uZWN0aW9uOwogICAgIH07CiAK
</data>
<flag name="commit-queue"
          id="450373"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429247</attachid>
            <date>2021-05-20 17:16:28 -0700</date>
            <delta_ts>2021-05-20 19:34:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226056-20210520171627.patch</filename>
            <type>text/plain</type>
            <size>31560</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3ODA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGIyMmM1YTNmYTNjNjEwMDVmZGVmYmNh
OTZiYWNkNjcxZTFkNTNmMDUuLmQxYjcyMGZmODk5YTdjZTljOTY1ZDk5YTA0YWU4ZWI2NWZkMzli
NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjEtMDUtMjAgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgQ2hlY2tlZExvY2sgbW9yZSBpbiBjYXNlcyB3aGVy
ZSB3ZSB0cnktbG9jaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjI2MDU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVXNlIENoZWNrZWRMb2NrIG1vcmUgaW4gY2FzZXMgd2hlcmUgd2UgdHJ5LWxvY2sgdG8g
YmVuZWZpdCBmcm9tIENsYW5nCisgICAgICAgIFRocmVhZCBTYWZldHkgQW5hbHlzaXMuCisKKyAg
ICAgICAgKiB3dGYvTG9nZ2VyLmNwcDoKKyAgICAgICAgKiB3dGYvTG9nZ2VyLmg6CisgICAgICAg
IChXVEY6OkxvZ2dlcjo6YWRkT2JzZXJ2ZXIpOgorICAgICAgICAoV1RGOjpMb2dnZXI6OnJlbW92
ZU9ic2VydmVyKToKKyAgICAgICAgKFdURjo6TG9nZ2VyOjpsb2cpOgorICAgICAgICAoV1RGOjpM
b2dnZXI6OmxvZ1ZlcmJvc2UpOgorICAgICAgICAoV1RGOjpMb2dnZXI6OldURl9SRVRVUk5TX0xP
Q0spOgorCiAyMDIxLTA1LTIwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAg
ICAgICAgVXNlIENoZWNrZWRMb2NrIG1vcmUgaW4gV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmU4ZmQ2NWM5
NWI4ODJkZjgxZmViMDE5ZmFkYmY1Y2Q4M2ZkMzBkMS4uYzRjMjJkMDJjODBlMjhkNjk2ODRhZmQy
ZjRhYjM1MWQ4MWYwMGNkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDIxLTA1LTIw
ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIENoZWNrZWRM
b2NrIG1vcmUgaW4gY2FzZXMgd2hlcmUgd2UgdHJ5LWxvY2sKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjA1NgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBDaGVja2VkTG9jayBtb3JlIGluIGNhc2Vz
IHdoZXJlIHdlIHRyeS1sb2NrIHRvIGJlbmVmaXQgZnJvbSBDbGFuZworICAgICAgICBUaHJlYWQg
U2FmZXR5IEFuYWx5c2lzLgorCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjphdWRpb1NhbXBsZXNBdmFpbGFibGUpOgorICAgICAg
ICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuaDoK
KyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGluZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpBdWRpb1BhcmFtVGltZWxpbmU6OnNldFZhbHVlQXRUaW1lKToKKyAgICAg
ICAgKFdlYkNvcmU6OkF1ZGlvUGFyYW1UaW1lbGluZTo6bGluZWFyUmFtcFRvVmFsdWVBdFRpbWUp
OgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9QYXJhbVRpbWVsaW5lOjpleHBvbmVudGlhbFJhbXBU
b1ZhbHVlQXRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvUGFyYW1UaW1lbGluZTo6c2V0
VGFyZ2V0QXRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvUGFyYW1UaW1lbGluZTo6c2V0
VmFsdWVDdXJ2ZUF0VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1BhcmFtVGltZWxpbmU6
OmNhbmNlbFNjaGVkdWxlZFZhbHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1BhcmFtVGlt
ZWxpbmU6OmNhbmNlbEFuZEhvbGRBdFRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9QYXJh
bVRpbWVsaW5lOjp2YWx1ZUZvckNvbnRleHRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
UGFyYW1UaW1lbGluZTo6dmFsdWVzRm9yRnJhbWVSYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpB
dWRpb1BhcmFtVGltZWxpbmU6Omhhc1ZhbHVlcyBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy93
ZWJhdWRpby9BdWRpb1BhcmFtVGltZWxpbmUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9B
dWRpb0Rlc3RpbmF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uOjpX
VEZfR1VBUkRFRF9CWV9MT0NLKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb246
OkF1ZGlvRGVzdGluYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbjo6
Y2xlYXJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uOjpjYWxs
UmVuZGVyQ2FsbGJhY2spOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRGVz
dGluYXRpb25Db2NvYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uQ29j
b2E6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6aXNQ
bGF5aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGluYXRpb25Db2NvYTo6c3RvcCk6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OnNldElzUGxheWluZyk6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OnJlbmRlcik6CisgICAg
ICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OnJlbmRlck9uUmVuZGVyaW5nVGhl
YWRJZlBsYXlpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRGVzdGlu
YXRpb25Db2NvYS5oOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbkNvY29hOjpX
VEZfR1VBUkRFRF9CWV9MT0NLKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2Nv
YS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0OjphZGRTb3VyY2UpOgorICAgICAg
ICAoV2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0OjpyZW1vdmVTb3Vy
Y2UpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0
OjpyZW5kZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0F1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdC5oOgorCiAyMDIxLTA1LTIwICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgUmVwbGFjZSBtb3JlIHN0YXRpYyBMb2NrcyB3
aXRoIENoZWNrZWRMb2NrcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA5OWEzYjc1NDE4NTVmZjhkZjU1YjU0MzVhOTM2
ZGIxZDgzZmY1MjJjLi5iZjBjZDZhNjc0YTE5YmZlYzY0NDRiODAxNzJhODQzNDliMDUwMDZjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIxLTA1LTIwICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIENoZWNrZWRMb2NrIG1vcmUgaW4gY2FzZXMgd2hl
cmUgd2UgdHJ5LWxvY2sKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyNjA1NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFVzZSBDaGVja2VkTG9jayBtb3JlIGluIGNhc2VzIHdoZXJlIHdlIHRyeS1sb2NrIHRv
IGJlbmVmaXQgZnJvbSBDbGFuZworICAgICAgICBUaHJlYWQgU2FmZXR5IEFuYWx5c2lzLgorCisg
ICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OkxpYldlYlJUQ0NvZGVjczo6cmVsZWFzZURlY29kZXIpOgorICAgICAgICAo
V2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6OnJlZ2lzdGVyRGVjb2RlRnJhbWVDYWxsYmFjayk6Cisg
ICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ0NvZGVjczo6Y29tcGxldGVkRGVjb2RpbmcpOgorICAg
ICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6OnJlbGVhc2VFbmNvZGVyKToKKyAgICAgICAg
KFdlYktpdDo6TGliV2ViUlRDQ29kZWNzOjpyZWdpc3RlckVuY29kZUZyYW1lQ2FsbGJhY2spOgor
ICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6OmNvbXBsZXRlZEVuY29kaW5nKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmg6CisgICAgICAg
IChXZWJLaXQ6OkxpYldlYlJUQ0NvZGVjczo6RGVjb2Rlcjo6V1RGX0dVQVJERURfQllfTE9DSyk6
CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ0NvZGVjczo6RW5jb2Rlcjo6V1RGX0dVQVJERURf
QllfTE9DSyk6CisKIDIwMjEtMDUtMjAgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
IAogICAgICAgICBSZXBsYWNlIG1vcmUgc3RhdGljIExvY2tzIHdpdGggQ2hlY2tlZExvY2tzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Mb2dnZXIuY3BwIGIvU291cmNlL1dURi93dGYvTG9n
Z2VyLmNwcAppbmRleCBjOGQ4NmMwNDVhMzViYmZlYjMxMjQ3M2ZlZTM4YzlhZDI2MjliNGE2Li5l
MGI0NTA2ODhmZDc4MzlmZjRjYmIyNTg5OTdhZDhjNGYyNTU1NzUwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi9Mb2dnZXIuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL0xvZ2dlci5jcHAKQEAg
LTMyLDcgKzMyLDcgQEAKIAogbmFtZXNwYWNlIFdURiB7CiAKLUxvY2sgbG9nZ2VyT2JzZXJ2ZXJM
b2NrOworQ2hlY2tlZExvY2sgbG9nZ2VyT2JzZXJ2ZXJMb2NrOwogCiBTdHJpbmcgTG9nZ2VyOjpM
b2dTaXRlSWRlbnRpZmllcjo6dG9TdHJpbmcoKSBjb25zdAogewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvTG9nZ2VyLmggYi9Tb3VyY2UvV1RGL3d0Zi9Mb2dnZXIuaAppbmRleCA5MTU2MTFl
MDMyM2E1NTFmZmQ1M2YwMDViZTM5MjRlMDZlYjZhYzJiLi5lOTlkNDliZjJlOWQ5YWQyYTZiM2I2
MTgwZGNiZDk4Y2Q3ODVmYTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Mb2dnZXIuaAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9Mb2dnZXIuaApAQCAtMjUsNyArMjUsNyBAQAogCiAjcHJhZ21h
IG9uY2UKIAotI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CisjaW5jbHVkZSA8d3RmL0NoZWNrZWRMb2Nr
Lmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvU3RyaW5nQnVpbGRlci5oPgogCkBAIC0xMTIsNyArMTEyLDcgQEAgc3RydWN0IENvbnNv
bGVMb2dWYWx1ZTxBcmd1bWVudCwgZmFsc2U+IHsKICAgICB9CiB9OwogCi1XVEZfRVhQT1JUX1BS
SVZBVEUgZXh0ZXJuIExvY2sgbG9nZ2VyT2JzZXJ2ZXJMb2NrOworV1RGX0VYUE9SVF9QUklWQVRF
IGV4dGVybiBDaGVja2VkTG9jayBsb2dnZXJPYnNlcnZlckxvY2s7CiAKIGNsYXNzIExvZ2dlciA6
IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxMb2dnZXI+IHsKICAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShMb2dnZXIpOwpAQCAtMjg1LDEyICsyODUsMTIgQEAgcHVibGljOgogCiAgICAgc3Rh
dGljIGlubGluZSB2b2lkIGFkZE9ic2VydmVyKE9ic2VydmVyJiBvYnNlcnZlcikKICAgICB7Ci0g
ICAgICAgIGF1dG8gbG9jayA9IGhvbGRMb2NrKG9ic2VydmVyTG9jaygpKTsKKyAgICAgICAgTG9j
a2VyIGxvY2tlciB7IG9ic2VydmVyTG9jaygpIH07CiAgICAgICAgIG9ic2VydmVycygpLmFwcGVu
ZChvYnNlcnZlcik7CiAgICAgfQogICAgIHN0YXRpYyBpbmxpbmUgdm9pZCByZW1vdmVPYnNlcnZl
cihPYnNlcnZlciYgb2JzZXJ2ZXIpCiAgICAgewotICAgICAgICBhdXRvIGxvY2sgPSBob2xkTG9j
ayhvYnNlcnZlckxvY2soKSk7CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBvYnNlcnZlckxvY2so
KSB9OwogICAgICAgICBvYnNlcnZlcnMoKS5yZW1vdmVGaXJzdE1hdGNoaW5nKFsmb2JzZXJ2ZXJd
KGF1dG8gYW5PYnNlcnZlcikgewogICAgICAgICAgICAgcmV0dXJuICZhbk9ic2VydmVyLmdldCgp
ID09ICZvYnNlcnZlcjsKICAgICAgICAgfSk7CkBAIC0zMjIsMTAgKzMyMiwxMCBAQCBwcml2YXRl
OgogICAgICAgICBpZiAoY2hhbm5lbC5zdGF0ZSA9PSBXVEZMb2dDaGFubmVsU3RhdGU6Ok9mZiB8
fCBsZXZlbCA+IGNoYW5uZWwubGV2ZWwpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAg
YXV0byBsb2NrID0gdHJ5SG9sZExvY2sob2JzZXJ2ZXJMb2NrKCkpOwotICAgICAgICBpZiAoIWxv
Y2spCisgICAgICAgIGlmICghb2JzZXJ2ZXJMb2NrKCkudHJ5TG9jaygpKQogICAgICAgICAgICAg
cmV0dXJuOwogCisgICAgICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2tUYWcgeyB9LCBvYnNl
cnZlckxvY2soKSB9OwogICAgICAgICBmb3IgKE9ic2VydmVyJiBvYnNlcnZlciA6IG9ic2VydmVy
cygpKQogICAgICAgICAgICAgb2JzZXJ2ZXIuZGlkTG9nTWVzc2FnZShjaGFubmVsLCBsZXZlbCwg
eyBDb25zb2xlTG9nVmFsdWU8QXJndW1lbnQ+Ojp0b1ZhbHVlKGFyZ3VtZW50cykuLi4gfSk7CiAg
ICAgfQpAQCAtMzUzLDE3ICszNTMsMTcgQEAgcHJpdmF0ZToKICAgICAgICAgaWYgKGNoYW5uZWwu
c3RhdGUgPT0gV1RGTG9nQ2hhbm5lbFN0YXRlOjpPZmYgfHwgbGV2ZWwgPiBjaGFubmVsLmxldmVs
KQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGF1dG8gbG9jayA9IHRyeUhvbGRMb2Nr
KG9ic2VydmVyTG9jaygpKTsKLSAgICAgICAgaWYgKCFsb2NrKQorICAgICAgICBpZiAoIW9ic2Vy
dmVyTG9jaygpLnRyeUxvY2soKSkKICAgICAgICAgICAgIHJldHVybjsKIAorICAgICAgICBMb2Nr
ZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsgfSwgb2JzZXJ2ZXJMb2NrKCkgfTsKICAgICAgICAg
Zm9yIChPYnNlcnZlciYgb2JzZXJ2ZXIgOiBvYnNlcnZlcnMoKSkKICAgICAgICAgICAgIG9ic2Vy
dmVyLmRpZExvZ01lc3NhZ2UoY2hhbm5lbCwgbGV2ZWwsIHsgQ29uc29sZUxvZ1ZhbHVlPEFyZ3Vt
ZW50Pjo6dG9WYWx1ZShhcmd1bWVudHMpLi4uIH0pOwogICAgIH0KIAotICAgIFdURl9FWFBPUlRf
UFJJVkFURSBzdGF0aWMgVmVjdG9yPHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8T2JzZXJ2ZXI+PiYg
b2JzZXJ2ZXJzKCk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBWZWN0b3I8c3RkOjpy
ZWZlcmVuY2Vfd3JhcHBlcjxPYnNlcnZlcj4+JiBvYnNlcnZlcnMoKSBXVEZfUkVRVUlSRVNfTE9D
SyhvYnNlcnZlckxvY2soKSk7CiAKLSAgICBzdGF0aWMgTG9jayYgb2JzZXJ2ZXJMb2NrKCkKKyAg
ICBzdGF0aWMgQ2hlY2tlZExvY2smIG9ic2VydmVyTG9jaygpIFdURl9SRVRVUk5TX0xPQ0sobG9n
Z2VyT2JzZXJ2ZXJMb2NrKQogICAgIHsKICAgICAgICAgcmV0dXJuIGxvZ2dlck9ic2VydmVyTG9j
azsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwCmluZGV4IDYx
YjI2ZjFmOTViYTAwMzMxYjM5MGMxMGY0ZjA5YTIwMDk5ZGQ0MzUuLjAzYzk1ZGE1MzM4YTgyY2M3
MmI0MTJkOTAwNTQ5NWI4YTJhMWQ5OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJj
ZUltcGwuY3BwCkBAIC0xMDUsOSArMTA1LDEwIEBAIHZvaWQgU3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlSW1wbDo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgaWYgKGF1dG8g
bG9ja2VyID0gdHJ5SG9sZExvY2sobV9kYXRhU291cmNlTG9jaykpCisgICAgICAgIGlmIChtX2Rh
dGFTb3VyY2VMb2NrLnRyeUxvY2soKSkgewogICAgICAgICAgICAgbV9kYXRhU291cmNlID0gV1RG
TW92ZShkYXRhU291cmNlKTsKLSAgICAgICAgZWxzZQorICAgICAgICAgICAgbV9kYXRhU291cmNl
TG9jay51bmxvY2soKTsKKyAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICByZXR1cm47CiAgICAg
fQogCkBAIC0xMTgsNyArMTE5LDcgQEAgdm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3Vy
Y2VJbXBsOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJgogCiAgICAgICAg
IGF1dG8gZGF0YSA9IFdlYkF1ZGlvQnVmZmVyTGlzdCB7IGF1ZGlvRGVzY3JpcHRpb24sIHN0YXRp
Y19jYXN0PHVpbnQzMl90PihzYW1wbGVDb3VudCkgfTsKICAgICAgICAgewotICAgICAgICAgICAg
YXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2RhdGFTb3VyY2VMb2NrKTsKKyAgICAgICAgICAgIExv
Y2tlciBsb2NrZXIgeyBtX2RhdGFTb3VyY2VMb2NrIH07CiAgICAgICAgICAgICBtX2RhdGFTb3Vy
Y2UtPnB1bGxTYW1wbGVzKCpkYXRhLmxpc3QoKSwgc2FtcGxlQ291bnQsIHRpbWUudGltZVZhbHVl
KCksIDAsIEF1ZGlvU2FtcGxlRGF0YVNvdXJjZTo6Q29weSk7CiAgICAgICAgIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlSW1wbC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVj
b2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5oCmluZGV4IGJjNWMwMmExODkzNDcxNGM3NzM5MzU4
NGUyM2M3M2IzMDFlYjg3NGYuLmY4ZmJjYWI0MmYxMDY4ZjkxM2ZhMzhlOGU4NWJkMjI0MDgyZGZl
OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmgKQEAgLTI5LDYgKzI5LDcg
QEAKIAogI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKICNpbmNsdWRlICJTcGVlY2hS
ZWNvZ25pdGlvbkNvbm5lY3Rpb25DbGllbnRJZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8d3RmL0No
ZWNrZWRMb2NrLmg+CiAKICNpZiBQTEFURk9STShDT0NPQSkKICNpbmNsdWRlICJBdWRpb1NhbXBs
ZURhdGFTb3VyY2UuaCIKQEAgLTcyLDcgKzczLDcgQEAgcHJpdmF0ZToKIAogI2lmIFBMQVRGT1JN
KENPQ09BKQogICAgIFJlZlB0cjxBdWRpb1NhbXBsZURhdGFTb3VyY2U+IG1fZGF0YVNvdXJjZTsK
LSAgICBMb2NrIG1fZGF0YVNvdXJjZUxvY2s7CisgICAgQ2hlY2tlZExvY2sgbV9kYXRhU291cmNl
TG9jazsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb1BhcmFtVGltZWxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb1BhcmFtVGltZWxpbmUuY3BwCmluZGV4IDcyZTQ4MDBjODg3MzdjNjY4YzFk
NjY5ZThlMDE4ZTEzYWIwN2U5ZmEuLjA0MDZlYWI3NzEwZThlZDk3ZGU4OTgzYTIwMGU1MTU2YzIy
OWVhYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Q
YXJhbVRpbWVsaW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvUGFyYW1UaW1lbGluZS5jcHAKQEAgLTczLDEzICs3MywxMyBAQCBzdGF0aWMgYm9vbCBoYXNT
ZXRUYXJnZXRDb252ZXJnZWQoZmxvYXQgdmFsdWUsIGZsb2F0IHRhcmdldCwgU2Vjb25kcyBjdXJy
ZW50VGltZQogCiBFeGNlcHRpb25Pcjx2b2lkPiBBdWRpb1BhcmFtVGltZWxpbmU6OnNldFZhbHVl
QXRUaW1lKGZsb2F0IHZhbHVlLCBTZWNvbmRzIHRpbWUpCiB7Ci0gICAgYXV0byBsb2NrZXIgPSBo
b2xkTG9jayhtX2V2ZW50c0xvY2spOworICAgIExvY2tlciBsb2NrZXIgeyBtX2V2ZW50c0xvY2sg
fTsKICAgICByZXR1cm4gaW5zZXJ0RXZlbnQoUGFyYW1FdmVudDo6Y3JlYXRlU2V0VmFsdWVFdmVu
dCh2YWx1ZSwgdGltZSkpOwogfQogCiBFeGNlcHRpb25Pcjx2b2lkPiBBdWRpb1BhcmFtVGltZWxp
bmU6OmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKGZsb2F0IHRhcmdldFZhbHVlLCBTZWNvbmRzIGVu
ZFRpbWUsIGZsb2F0IGN1cnJlbnRWYWx1ZSwgU2Vjb25kcyBjdXJyZW50VGltZSkKIHsKLSAgICBh
dXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fZXZlbnRzTG9jayk7CisgICAgTG9ja2VyIGxvY2tlciB7
IG1fZXZlbnRzTG9jayB9OwogCiAgICAgLy8gTGluZWFyIHJhbXAgZXZlbnRzIG5lZWQgYSBwcmVj
ZWRpbmcgZXZlbnQgc28gdGhhdCB0aGV5IGhhdmUgYW4gaW5pdGlhbCB2YWx1ZS4KICAgICBpZiAo
bV9ldmVudHMuaXNFbXB0eSgpKQpAQCAtOTAsNyArOTAsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBB
dWRpb1BhcmFtVGltZWxpbmU6OmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKGZsb2F0IHRhcmdldFZh
bHVlLAogCiBFeGNlcHRpb25Pcjx2b2lkPiBBdWRpb1BhcmFtVGltZWxpbmU6OmV4cG9uZW50aWFs
UmFtcFRvVmFsdWVBdFRpbWUoZmxvYXQgdGFyZ2V0VmFsdWUsIFNlY29uZHMgZW5kVGltZSwgZmxv
YXQgY3VycmVudFZhbHVlLCBTZWNvbmRzIGN1cnJlbnRUaW1lKQogewotICAgIGF1dG8gbG9ja2Vy
ID0gaG9sZExvY2sobV9ldmVudHNMb2NrKTsKKyAgICBMb2NrZXIgbG9ja2VyIHsgbV9ldmVudHNM
b2NrIH07CiAKICAgICAvLyBFeHBvbmVudGlhbCByYW1wIGV2ZW50cyBuZWVkIGEgcHJlY2VkaW5n
IGV2ZW50IHNvIHRoYXQgdGhleSBoYXZlIGFuIGluaXRpYWwgdmFsdWUuCiAgICAgaWYgKG1fZXZl
bnRzLmlzRW1wdHkoKSkKQEAgLTEwMSw3ICsxMDEsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBBdWRp
b1BhcmFtVGltZWxpbmU6OmV4cG9uZW50aWFsUmFtcFRvVmFsdWVBdFRpbWUoZmxvYXQgdGFyZ2V0
VgogCiBFeGNlcHRpb25Pcjx2b2lkPiBBdWRpb1BhcmFtVGltZWxpbmU6OnNldFRhcmdldEF0VGlt
ZShmbG9hdCB0YXJnZXQsIFNlY29uZHMgdGltZSwgZmxvYXQgdGltZUNvbnN0YW50KQogewotICAg
IGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9ldmVudHNMb2NrKTsKKyAgICBMb2NrZXIgbG9ja2Vy
IHsgbV9ldmVudHNMb2NrIH07CiAgICAgLy8gSWYgdGltZUNvbnN0YW50IGlzIDAsIHdlIGluc3Rh
bnRseSBqdW1wIHRvIHRoZSB0YXJnZXQgdmFsdWUsIHNvIGluc2VydCBhIFNldFZhbHVlRXZlbnQg
aW5zdGVhZCBvZiBTZXRUYXJnZXRFdmVudC4KICAgICBpZiAoIXRpbWVDb25zdGFudCkKICAgICAg
ICAgcmV0dXJuIGluc2VydEV2ZW50KFBhcmFtRXZlbnQ6OmNyZWF0ZVNldFZhbHVlRXZlbnQodGFy
Z2V0LCB0aW1lKSk7CkBAIC0xMTAsNyArMTEwLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQXVkaW9Q
YXJhbVRpbWVsaW5lOjpzZXRUYXJnZXRBdFRpbWUoZmxvYXQgdGFyZ2V0LCBTZWNvbmRzIHRpbWUK
IAogRXhjZXB0aW9uT3I8dm9pZD4gQXVkaW9QYXJhbVRpbWVsaW5lOjpzZXRWYWx1ZUN1cnZlQXRU
aW1lKFZlY3RvcjxmbG9hdD4mJiBjdXJ2ZSwgU2Vjb25kcyB0aW1lLCBTZWNvbmRzIGR1cmF0aW9u
KQogewotICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9ldmVudHNMb2NrKTsKKyAgICBMb2Nr
ZXIgbG9ja2VyIHsgbV9ldmVudHNMb2NrIH07CiAKICAgICBmbG9hdCBjdXJ2ZUVuZFZhbHVlID0g
Y3VydmUubGFzdCgpOwogICAgIGF1dG8gcmVzdWx0ID0gaW5zZXJ0RXZlbnQoUGFyYW1FdmVudDo6
Y3JlYXRlU2V0VmFsdWVDdXJ2ZUV2ZW50KFdURk1vdmUoY3VydmUpLCB0aW1lLCBkdXJhdGlvbikp
OwpAQCAtMTg2LDcgKzE4Niw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlvUGFyYW1UaW1lbGlu
ZTo6aW5zZXJ0RXZlbnQoUGFyYW1FdmVudCYmIGV2ZW50KQogCiB2b2lkIEF1ZGlvUGFyYW1UaW1l
bGluZTo6Y2FuY2VsU2NoZWR1bGVkVmFsdWVzKFNlY29uZHMgY2FuY2VsVGltZSkKIHsKLSAgICBh
dXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fZXZlbnRzTG9jayk7CisgICAgTG9ja2VyIGxvY2tlciB7
IG1fZXZlbnRzTG9jayB9OwogCiAgICAgLy8gUmVtb3ZlIGFsbCBldmVudHMgd2hvc2Ugc3RhcnQg
dGltZSBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhlIGNhbmNlbCB0aW1lLgogICAgIC8v
IEFsc28gaGFuZGxlIHRoZSBzcGVjaWFsIGNhc2Ugd2hlcmUgdGhlIGNhbmNlbCB0aW1lIGxpZXMg
aW4gdGhlIG1pZGRsZSBvZiBhCkBAIC0yMTUsNyArMjE1LDcgQEAgdm9pZCBBdWRpb1BhcmFtVGlt
ZWxpbmU6OmNhbmNlbFNjaGVkdWxlZFZhbHVlcyhTZWNvbmRzIGNhbmNlbFRpbWUpCiAKIEV4Y2Vw
dGlvbk9yPHZvaWQ+IEF1ZGlvUGFyYW1UaW1lbGluZTo6Y2FuY2VsQW5kSG9sZEF0VGltZShTZWNv
bmRzIGNhbmNlbFRpbWUpCiB7Ci0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2V2ZW50c0xv
Y2spOworICAgIExvY2tlciBsb2NrZXIgeyBtX2V2ZW50c0xvY2sgfTsKIAogICAgIC8vIEZpbmQg
dGhlIGZpcnN0IGV2ZW50IGF0IG9yIGp1c3QgcGFzdCBjYW5jZWxUaW1lLgogICAgIHNpemVfdCBp
ID0gbV9ldmVudHMuZmluZE1hdGNoaW5nKFsmXShhdXRvJiBldmVudCkgewpAQCAtMzI3LDggKzMy
NywxMCBAQCB2b2lkIEF1ZGlvUGFyYW1UaW1lbGluZTo6cmVtb3ZlQ2FuY2VsbGVkRXZlbnRzKHNp
emVfdCBmaXJzdEV2ZW50VG9SZW1vdmUpCiBPcHRpb25hbDxmbG9hdD4gQXVkaW9QYXJhbVRpbWVs
aW5lOjp2YWx1ZUZvckNvbnRleHRUaW1lKEJhc2VBdWRpb0NvbnRleHQmIGNvbnRleHQsIGZsb2F0
IGRlZmF1bHRWYWx1ZSwgZmxvYXQgbWluVmFsdWUsIGZsb2F0IG1heFZhbHVlKQogewogICAgIHsK
LSAgICAgICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhtX2V2ZW50c0xvY2spOwotICAgICAg
ICBpZiAoIWxvY2tlciB8fCAhbV9ldmVudHMuc2l6ZSgpIHx8IFNlY29uZHMgeyBjb250ZXh0LmN1
cnJlbnRUaW1lKCkgfSA8IG1fZXZlbnRzWzBdLnRpbWUoKSkKKyAgICAgICAgaWYgKCFtX2V2ZW50
c0xvY2sudHJ5TG9jaygpKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICAg
ICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9ja1RhZyB7IH0sIG1fZXZlbnRzTG9jayB9OworICAg
ICAgICBpZiAoIW1fZXZlbnRzLnNpemUoKSB8fCBTZWNvbmRzIHsgY29udGV4dC5jdXJyZW50VGlt
ZSgpIH0gPCBtX2V2ZW50c1swXS50aW1lKCkpCiAgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OwogICAgIH0KIApAQCAtMzQ1LDExICszNDcsMTEgQEAgT3B0aW9uYWw8ZmxvYXQ+IEF1ZGlv
UGFyYW1UaW1lbGluZTo6dmFsdWVGb3JDb250ZXh0VGltZShCYXNlQXVkaW9Db250ZXh0JiBjb250
ZXgKIGZsb2F0IEF1ZGlvUGFyYW1UaW1lbGluZTo6dmFsdWVzRm9yRnJhbWVSYW5nZShzaXplX3Qg
c3RhcnRGcmFtZSwgc2l6ZV90IGVuZEZyYW1lLCBmbG9hdCBkZWZhdWx0VmFsdWUsIGZsb2F0IG1p
blZhbHVlLCBmbG9hdCBtYXhWYWx1ZSwgZmxvYXQqIHZhbHVlcywgdW5zaWduZWQgbnVtYmVyT2ZW
YWx1ZXMsIGRvdWJsZSBzYW1wbGVSYXRlLCBkb3VibGUgY29udHJvbFJhdGUpCiB7CiAgICAgLy8g
V2UgY2FuJ3QgY29udGVuZCB0aGUgbG9jayBpbiB0aGUgcmVhbHRpbWUgYXVkaW8gdGhyZWFkLgot
ICAgIGF1dG8gbG9ja2VyID0gdHJ5SG9sZExvY2sobV9ldmVudHNMb2NrKTsKLSAgICBpZiAoIWxv
Y2tlcikgeworICAgIGlmICghbV9ldmVudHNMb2NrLnRyeUxvY2soKSkgewogICAgICAgICBzdGQ6
OmZpbGxfbih2YWx1ZXMsIG51bWJlck9mVmFsdWVzLCBkZWZhdWx0VmFsdWUpOwogICAgICAgICBy
ZXR1cm4gZGVmYXVsdFZhbHVlOwogICAgIH0KKyAgICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2Nr
VGFnIHsgfSwgbV9ldmVudHNMb2NrIH07CiAKICAgICBmbG9hdCB2YWx1ZSA9IHZhbHVlc0ZvckZy
YW1lUmFuZ2VJbXBsKHN0YXJ0RnJhbWUsIGVuZEZyYW1lLCBkZWZhdWx0VmFsdWUsIHZhbHVlcywg
bnVtYmVyT2ZWYWx1ZXMsIHNhbXBsZVJhdGUsIGNvbnRyb2xSYXRlKTsKIApAQCAtOTg0LDkgKzk4
Niw5IEBAIGJvb2wgQXVkaW9QYXJhbVRpbWVsaW5lOjppc0V2ZW50Q3VycmVudChjb25zdCBQYXJh
bUV2ZW50JiBldmVudCwgY29uc3QgUGFyYW1FdmVuCiAKIGJvb2wgQXVkaW9QYXJhbVRpbWVsaW5l
OjpoYXNWYWx1ZXMoc2l6ZV90IHN0YXJ0RnJhbWUsIGRvdWJsZSBzYW1wbGVSYXRlKSBjb25zdAog
ewotICAgIGF1dG8gbG9ja2VyID0gdHJ5SG9sZExvY2sobV9ldmVudHNMb2NrKTsKLSAgICBpZiAo
IWxvY2tlcikKKyAgICBpZiAoIW1fZXZlbnRzTG9jay50cnlMb2NrKCkpCiAgICAgICAgIHJldHVy
biB0cnVlOworICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2tUYWcgeyB9LCBtX2V2ZW50c0xv
Y2sgfTsKIAogICAgIC8vIFJldHVybiBmYWxzZSBpZiB0aGVyZSBhcmUgbm8gZXZlbnRzIGluIHRo
ZSB0aW1lIHJhbmdlLgogICAgIGF1dG8gZW5kRnJhbWUgPSBzdGFydEZyYW1lICsgQXVkaW9VdGls
aXRpZXM6OnJlbmRlclF1YW50dW1TaXplOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtVGltZWxpbmUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9QYXJhbVRpbWVsaW5lLmgKaW5kZXggNGNkMWEwZjAxNDFjOTE4MWI0
ZmI2MzBjMTczNDY2MzNmMzgyODc5OC4uOWI3MjYxN2Q0MmMwOGE0NzRhNzUyNTY0NTFjNTAzNmM0
MzFkODI5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1BhcmFtVGltZWxpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvUGFyYW1UaW1lbGluZS5oCkBAIC0zMCw3ICszMCw3IEBACiAKICNpbmNsdWRlICJBdWRpb0Nv
bnRleHQuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9GbG9hdDMyQXJyYXkuaD4KLSNpbmNs
dWRlIDx3dGYvTG9jay5oPgorI2luY2x1ZGUgPHd0Zi9DaGVja2VkTG9jay5oPgogI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTg5LDkgKzE4OSw5IEBA
IHByaXZhdGU6CiAgICAgICAgIGNvbnN0IGludCBldmVudEluZGV4OwogICAgIH07CiAKLSAgICB2
b2lkIHJlbW92ZUNhbmNlbGxlZEV2ZW50cyhzaXplX3QgZmlyc3RFdmVudFRvUmVtb3ZlKTsKLSAg
ICBFeGNlcHRpb25Pcjx2b2lkPiBpbnNlcnRFdmVudChQYXJhbUV2ZW50JiYpOwotICAgIGZsb2F0
IHZhbHVlc0ZvckZyYW1lUmFuZ2VJbXBsKHNpemVfdCBzdGFydEZyYW1lLCBzaXplX3QgZW5kRnJh
bWUsIGZsb2F0IGRlZmF1bHRWYWx1ZSwgZmxvYXQqIHZhbHVlcywgdW5zaWduZWQgbnVtYmVyT2ZW
YWx1ZXMsIGRvdWJsZSBzYW1wbGVSYXRlLCBkb3VibGUgY29udHJvbFJhdGUpOworICAgIHZvaWQg
cmVtb3ZlQ2FuY2VsbGVkRXZlbnRzKHNpemVfdCBmaXJzdEV2ZW50VG9SZW1vdmUpIFdURl9SRVFV
SVJFU19MT0NLKG1fZXZlbnRzTG9jayk7CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gaW5zZXJ0RXZl
bnQoUGFyYW1FdmVudCYmKSBXVEZfUkVRVUlSRVNfTE9DSyhtX2V2ZW50c0xvY2spOworICAgIGZs
b2F0IHZhbHVlc0ZvckZyYW1lUmFuZ2VJbXBsKHNpemVfdCBzdGFydEZyYW1lLCBzaXplX3QgZW5k
RnJhbWUsIGZsb2F0IGRlZmF1bHRWYWx1ZSwgZmxvYXQqIHZhbHVlcywgdW5zaWduZWQgbnVtYmVy
T2ZWYWx1ZXMsIGRvdWJsZSBzYW1wbGVSYXRlLCBkb3VibGUgY29udHJvbFJhdGUpIFdURl9SRVFV
SVJFU19MT0NLKG1fZXZlbnRzTG9jayk7CiAgICAgZmxvYXQgbGluZWFyUmFtcEF0VGltZShTZWNv
bmRzIHQsIGZsb2F0IHZhbHVlMSwgU2Vjb25kcyB0aW1lMSwgZmxvYXQgdmFsdWUyLCBTZWNvbmRz
IHRpbWUyKTsKICAgICBmbG9hdCBleHBvbmVudGlhbFJhbXBBdFRpbWUoU2Vjb25kcyB0LCBmbG9h
dCB2YWx1ZTEsIFNlY29uZHMgdGltZTEsIGZsb2F0IHZhbHVlMiwgU2Vjb25kcyB0aW1lMik7CiAg
ICAgZmxvYXQgdmFsdWVDdXJ2ZUF0VGltZShTZWNvbmRzIHQsIFNlY29uZHMgdGltZTEsIFNlY29u
ZHMgZHVyYXRpb24sIGNvbnN0IGZsb2F0KiBjdXJ2ZURhdGEsIHNpemVfdCBjdXJ2ZUxlbmd0aCk7
CkBAIC0yMDAsMTQgKzIwMCwxNCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBwcm9jZXNzTGluZWFy
UmFtcChjb25zdCBBdXRvbWF0aW9uU3RhdGUmLCBmbG9hdCogdmFsdWVzLCBzaXplX3QmIGN1cnJl
bnRGcmFtZSwgZmxvYXQmIHZhbHVlLCB1bnNpZ25lZCYgd3JpdGVJbmRleCk7CiAgICAgdm9pZCBw
cm9jZXNzRXhwb25lbnRpYWxSYW1wKGNvbnN0IEF1dG9tYXRpb25TdGF0ZSYsIGZsb2F0KiB2YWx1
ZXMsIHNpemVfdCYgY3VycmVudEZyYW1lLCBmbG9hdCYgdmFsdWUsIHVuc2lnbmVkJiB3cml0ZUlu
ZGV4KTsKLSAgICB2b2lkIHByb2Nlc3NDYW5jZWxWYWx1ZXMoY29uc3QgQXV0b21hdGlvblN0YXRl
JiwgZmxvYXQqIHZhbHVlcywgc2l6ZV90JiBjdXJyZW50RnJhbWUsIGZsb2F0JiB2YWx1ZSwgdW5z
aWduZWQmIHdyaXRlSW5kZXgpOworICAgIHZvaWQgcHJvY2Vzc0NhbmNlbFZhbHVlcyhjb25zdCBB
dXRvbWF0aW9uU3RhdGUmLCBmbG9hdCogdmFsdWVzLCBzaXplX3QmIGN1cnJlbnRGcmFtZSwgZmxv
YXQmIHZhbHVlLCB1bnNpZ25lZCYgd3JpdGVJbmRleCkgV1RGX1JFUVVJUkVTX0xPQ0sobV9ldmVu
dHNMb2NrKTsKICAgICB2b2lkIHByb2Nlc3NTZXRUYXJnZXQoY29uc3QgQXV0b21hdGlvblN0YXRl
JiwgZmxvYXQqIHZhbHVlcywgc2l6ZV90JiBjdXJyZW50RnJhbWUsIGZsb2F0JiB2YWx1ZSwgdW5z
aWduZWQmIHdyaXRlSW5kZXgpOwogICAgIHZvaWQgcHJvY2Vzc1NldFZhbHVlQ3VydmUoY29uc3Qg
QXV0b21hdGlvblN0YXRlJiwgZmxvYXQqIHZhbHVlcywgc2l6ZV90JiBjdXJyZW50RnJhbWUsIGZs
b2F0JiB2YWx1ZSwgdW5zaWduZWQmIHdyaXRlSW5kZXgpOwotICAgIHZvaWQgcHJvY2Vzc1NldFRh
cmdldEZvbGxvd2VkQnlSYW1wKGludCBldmVudEluZGV4LCBQYXJhbUV2ZW50KiYsIFBhcmFtRXZl
bnQ6OlR5cGUgbmV4dEV2ZW50VHlwZSwgc2l6ZV90IGN1cnJlbnRGcmFtZSwgZG91YmxlIHNhbXBs
aW5nUGVyaW9kLCBkb3VibGUgY29udHJvbFJhdGUsIGZsb2F0JiB2YWx1ZSk7CisgICAgdm9pZCBw
cm9jZXNzU2V0VGFyZ2V0Rm9sbG93ZWRCeVJhbXAoaW50IGV2ZW50SW5kZXgsIFBhcmFtRXZlbnQq
JiwgUGFyYW1FdmVudDo6VHlwZSBuZXh0RXZlbnRUeXBlLCBzaXplX3QgY3VycmVudEZyYW1lLCBk
b3VibGUgc2FtcGxpbmdQZXJpb2QsIGRvdWJsZSBjb250cm9sUmF0ZSwgZmxvYXQmIHZhbHVlKSBX
VEZfUkVRVUlSRVNfTE9DSyhtX2V2ZW50c0xvY2spOwogCi0gICAgVmVjdG9yPFBhcmFtRXZlbnQ+
IG1fZXZlbnRzOworICAgIFZlY3RvcjxQYXJhbUV2ZW50PiBtX2V2ZW50cyBXVEZfR1VBUkRFRF9C
WV9MT0NLKG1fZXZlbnRzTG9jayk7CiAKLSAgICBtdXRhYmxlIExvY2sgbV9ldmVudHNMb2NrOwor
ICAgIG11dGFibGUgQ2hlY2tlZExvY2sgbV9ldmVudHNMb2NrOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVk
aW9EZXN0aW5hdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9EZXN0
aW5hdGlvbi5oCmluZGV4IDgzMTk2NDczYmMxYWE5YmRlZTg2ZjcwZDc0ZjA5MDE4MTdmNmY2OGEu
LmViNTRmMGQ1MWQ3ODYwYjlmNjA0MGQ4OTM1ODg0NDg4MmE2NWJiNjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvRGVzdGluYXRpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0Rlc3RpbmF0aW9uLmgKQEAgLTMyLDYgKzMy
LDcgQEAKICNpbmNsdWRlICJBdWRpb0J1cy5oIgogI2luY2x1ZGUgIkF1ZGlvSU9DYWxsYmFjay5o
IgogI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZExvY2suaD4KICNpbmNs
dWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2lu
Y2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgpAQCAtNzcsMzAgKzc4LDMyIEBAIHB1
YmxpYzoKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBBdWRpb0Rlc3RpbmF0aW9uKEF1ZGlvSU9D
YWxsYmFjayYpOwogCi0gICAgTG9jayBtX2NhbGxiYWNrTG9jazsKLSAgICBBdWRpb0lPQ2FsbGJh
Y2sqIG1fY2FsbGJhY2sgeyBudWxscHRyIH07CisgICAgQ2hlY2tlZExvY2sgbV9jYWxsYmFja0xv
Y2s7CisgICAgQXVkaW9JT0NhbGxiYWNrKiBtX2NhbGxiYWNrIFdURl9HVUFSREVEX0JZX0xPQ0so
bV9jYWxsYmFja0xvY2spIHsgbnVsbHB0ciB9OwogfTsKIAogaW5saW5lIEF1ZGlvRGVzdGluYXRp
b246OkF1ZGlvRGVzdGluYXRpb24oQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaykKIHsKLSAgICBh
dXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fY2FsbGJhY2tMb2NrKTsKKyAgICBMb2NrZXIgbG9ja2Vy
IHsgbV9jYWxsYmFja0xvY2sgfTsKICAgICBtX2NhbGxiYWNrID0gJmNhbGxiYWNrOwogfQogCiBp
bmxpbmUgdm9pZCBBdWRpb0Rlc3RpbmF0aW9uOjpjbGVhckNhbGxiYWNrKCkKIHsKLSAgICBhdXRv
IGxvY2tlciA9IGhvbGRMb2NrKG1fY2FsbGJhY2tMb2NrKTsKKyAgICBMb2NrZXIgbG9ja2VyIHsg
bV9jYWxsYmFja0xvY2sgfTsKICAgICBtX2NhbGxiYWNrID0gbnVsbHB0cjsKIH0KIAogaW5saW5l
IHZvaWQgQXVkaW9EZXN0aW5hdGlvbjo6Y2FsbFJlbmRlckNhbGxiYWNrKEF1ZGlvQnVzKiBzb3Vy
Y2VCdXMsIEF1ZGlvQnVzKiBkZXN0aW5hdGlvbkJ1cywgc2l6ZV90IGZyYW1lc1RvUHJvY2Vzcywg
Y29uc3QgQXVkaW9JT1Bvc2l0aW9uJiBvdXRwdXRQb3NpdGlvbikKIHsKLSAgICBhdXRvIGxvY2tl
ciA9IHRyeUhvbGRMb2NrKG1fY2FsbGJhY2tMb2NrKTsKLSAgICBpZiAoIWxvY2tlciB8fCAhbV9j
YWxsYmFjaykgewotICAgICAgICBkZXN0aW5hdGlvbkJ1cy0+emVybygpOwotICAgICAgICByZXR1
cm47CisgICAgaWYgKG1fY2FsbGJhY2tMb2NrLnRyeUxvY2soKSkgeworICAgICAgICBMb2NrZXIg
bG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsgfSwgbV9jYWxsYmFja0xvY2sgfTsKKyAgICAgICAgaWYg
KG1fY2FsbGJhY2spIHsKKyAgICAgICAgICAgIG1fY2FsbGJhY2stPnJlbmRlcihzb3VyY2VCdXMs
IGRlc3RpbmF0aW9uQnVzLCBmcmFtZXNUb1Byb2Nlc3MsIG91dHB1dFBvc2l0aW9uKTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQogICAgIH0KLSAgICBtX2NhbGxiYWNrLT5yZW5kZXIo
c291cmNlQnVzLCBkZXN0aW5hdGlvbkJ1cywgZnJhbWVzVG9Qcm9jZXNzLCBvdXRwdXRQb3NpdGlv
bik7CisgICAgZGVzdGluYXRpb25CdXMtPnplcm8oKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVk
aW9EZXN0aW5hdGlvbkNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2Nv
Y29hL0F1ZGlvRGVzdGluYXRpb25Db2NvYS5jcHAKaW5kZXggZTE0Zjg3NDMyZjJhMDliYWNhMjZi
ZjY2YmE2ODM0YzZmZjg1ZDBiYS4uYjY2MGU4ODdhNmRhOTFkNmIyYmJmZWJiOTc0ZWQ0ZjM3MmMx
MTUwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVk
aW9EZXN0aW5hdGlvbkNvY29hLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9jb2NvYS9BdWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwCkBAIC0xMDcsMTIgKzEwNywxOSBAQCB2
b2lkIEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6c3RhcnQoRnVuY3Rpb248dm9pZChGdW5jdGlvbjx2
b2lkKCk+JiYpPiYmIGRpc3BhdGNoVAogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAg
TE9HKE1lZGlhLCAiQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpzdGFydCIpOwogICAgIHsKLSAgICAg
ICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2Rpc3BhdGNoVG9SZW5kZXJUaHJlYWRMb2NrKTsK
KyAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1fZGlzcGF0Y2hUb1JlbmRlclRocmVhZExvY2sgfTsK
ICAgICAgICAgbV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkID0gV1RGTW92ZShkaXNwYXRjaFRvUmVu
ZGVyVGhyZWFkKTsKICAgICB9CiAgICAgc3RhcnRSZW5kZXJpbmcoV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpOwogfQogCitib29sIEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6aXNQbGF5aW5nKCkK
K3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIExvY2tlciBsb2NrZXIgeyBtX2lz
UGxheWluZ0xvY2sgfTsKKyAgICByZXR1cm4gbV9pc1BsYXlpbmc7Cit9CisKIHZvaWQgQXVkaW9E
ZXN0aW5hdGlvbkNvY29hOjpzdGFydFJlbmRlcmluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJv
b2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7
CkBAIC0xMzEsNyArMTM4LDcgQEAgdm9pZCBBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OnN0b3AoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGwKICAgICBMT0coTWVk
aWEsICJBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OnN0b3AiKTsKICAgICBzdG9wUmVuZGVyaW5nKFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKICAgICB7Ci0gICAgICAgIGF1dG8gbG9ja2VyID0g
aG9sZExvY2sobV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkTG9jayk7CisgICAgICAgIExvY2tlciBs
b2NrZXIgeyBtX2Rpc3BhdGNoVG9SZW5kZXJUaHJlYWRMb2NrIH07CiAgICAgICAgIG1fZGlzcGF0
Y2hUb1JlbmRlclRocmVhZCA9IG51bGxwdHI7CiAgICAgfQogfQpAQCAtMTUyLDcgKzE1OSw3IEBA
IHZvaWQgQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpzZXRJc1BsYXlpbmcoYm9vbCBpc1BsYXlpbmcp
CiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICB7Ci0gICAgICAgIGF1dG8gbG9j
a2VyID0gaG9sZExvY2sobV9pc1BsYXlpbmdMb2NrKTsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7
IG1faXNQbGF5aW5nTG9jayB9OwogICAgICAgICBpZiAobV9pc1BsYXlpbmcgPT0gaXNQbGF5aW5n
KQogICAgICAgICAgICAgcmV0dXJuOwogCkBAIC0xNjAsNyArMTY3LDcgQEAgdm9pZCBBdWRpb0Rl
c3RpbmF0aW9uQ29jb2E6OnNldElzUGxheWluZyhib29sIGlzUGxheWluZykKICAgICB9CiAKICAg
ICB7Ci0gICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9jYWxsYmFja0xvY2spOworICAg
ICAgICBMb2NrZXIgbG9ja2VyIHsgbV9jYWxsYmFja0xvY2sgfTsKICAgICAgICAgaWYgKG1fY2Fs
bGJhY2spCiAgICAgICAgICAgICBtX2NhbGxiYWNrLT5pc1BsYXlpbmdEaWRDaGFuZ2UoKTsKICAg
ICB9CkBAIC0yMjEsMTAgKzIyOCwxMSBAQCBPU1N0YXR1cyBBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6
OnJlbmRlcihkb3VibGUgc2FtcGxlVGltZSwgdWludDY0X3QgaG9zdFRpbWUsIFVJbgogICAgIH0K
IAogICAgIC8vIFdoZW4gdGhlcmUgaXMgYSBBdWRpb1dvcmtsZXQsIHdlIGRvIHJlbmRlcmluZyBv
biB0aGUgQXVkaW9Xb3JrbGV0VGhyZWFkLgotICAgIGF1dG8gbG9ja2VyID0gdHJ5SG9sZExvY2so
bV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkTG9jayk7Ci0gICAgaWYgKCFsb2NrZXIpCisgICAgaWYg
KCFtX2Rpc3BhdGNoVG9SZW5kZXJUaHJlYWRMb2NrLnRyeUxvY2soKSkKICAgICAgICAgcmV0dXJu
IC0xOwogCisgICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9ja1RhZyB7IH0sIG1fZGlzcGF0Y2hU
b1JlbmRlclRocmVhZExvY2sgfTsKKwogICAgIGlmICghbV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFk
KQogICAgICAgICByZW5kZXJPblJlbmRlcmluZ1RoZWFkSWZQbGF5aW5nKGZyYW1lc1RvUmVuZGVy
KTsKICAgICBlbHNlIHsKQEAgLTIzOCw5ICsyNDYsMTEgQEAgT1NTdGF0dXMgQXVkaW9EZXN0aW5h
dGlvbkNvY29hOjpyZW5kZXIoZG91YmxlIHNhbXBsZVRpbWUsIHVpbnQ2NF90IGhvc3RUaW1lLCBV
SW4KIAogdm9pZCBBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OnJlbmRlck9uUmVuZGVyaW5nVGhlYWRJ
ZlBsYXlpbmcoc2l6ZV90IGZyYW1lc1RvUmVuZGVyKQogewotICAgIGF1dG8gbG9ja2VyID0gdHJ5
SG9sZExvY2sobV9pc1BsYXlpbmdMb2NrKTsKLSAgICBpZiAobG9ja2VyICYmIG1faXNQbGF5aW5n
KQotICAgICAgICByZW5kZXJPblJlbmRlcmluZ1RoZWFkKGZyYW1lc1RvUmVuZGVyKTsKKyAgICBp
ZiAobV9pc1BsYXlpbmdMb2NrLnRyeUxvY2soKSkgeworICAgICAgICBpZiAobV9pc1BsYXlpbmcp
CisgICAgICAgICAgICByZW5kZXJPblJlbmRlcmluZ1RoZWFkKGZyYW1lc1RvUmVuZGVyKTsKKyAg
ICAgICAgbV9pc1BsYXlpbmdMb2NrLnVubG9jaygpOworICAgIH0KIH0KIAogLy8gVGhpcyBydW5z
IG9uIHRoZSBBdWRpb1dvcmtsZXRUaHJlYWQgd2hlbiBBdWRpb1dvcmtsZXQgaXMgZW5hYmxlZCwg
b24gdGhlIGF1ZGlvIGRldmljZSdzIHJlbmRlcmluZyB0aHJlYWQgb3RoZXJ3aXNlLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlv
bkNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0Rlc3Rp
bmF0aW9uQ29jb2EuaAppbmRleCA1ZDEyMzkyYmU4MWU3MGIyZmMwZTIzNjYzZjUwMzU0NmQ0NzQx
OGVjLi4xZmI3YjA1ZDhmOWIwMmIwYWExYTlmOGZjOTJhY2UyMDg0NDNiMmJmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0Rlc3RpbmF0aW9uQ29j
b2EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0Rlc3Rp
bmF0aW9uQ29jb2EuaApAQCAtNTUsNyArNTUsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgV0VCQ09SRV9F
WFBPUlQgT1NTdGF0dXMgcmVuZGVyKGRvdWJsZSBzYW1wbGVUaW1lLCB1aW50NjRfdCBob3N0VGlt
ZSwgVUludDMyIG51bWJlck9mRnJhbWVzLCBBdWRpb0J1ZmZlckxpc3QqIGlvRGF0YSkgZmluYWw7
CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldElzUGxheWluZyhib29sKTsKLSAgICBib29s
IGlzUGxheWluZygpIGZpbmFsIHsgcmV0dXJuIG1faXNQbGF5aW5nOyB9CisgICAgV0VCQ09SRV9F
WFBPUlQgYm9vbCBpc1BsYXlpbmcoKSBmaW5hbDsKICAgICBmbG9hdCBzYW1wbGVSYXRlKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gbV9jb250ZXh0U2FtcGxlUmF0ZTsgfQogICAgIFdFQkNPUkVfRVhQ
T1JUIHVuc2lnbmVkIGZyYW1lc1BlckJ1ZmZlcigpIGNvbnN0IGZpbmFsOwogCkBAIC05MSwxMyAr
OTEsMTMgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TXVsdGlDaGFubmVsUmVzYW1w
bGVyPiBtX3Jlc2FtcGxlcjsKICAgICBBdWRpb0lPUG9zaXRpb24gbV9vdXRwdXRUaW1lc3RhbXA7
CiAKLSAgICBMb2NrIG1fZGlzcGF0Y2hUb1JlbmRlclRocmVhZExvY2s7Ci0gICAgRnVuY3Rpb248
dm9pZChGdW5jdGlvbjx2b2lkKCk+JiYpPiBtX2Rpc3BhdGNoVG9SZW5kZXJUaHJlYWQ7CisgICAg
Q2hlY2tlZExvY2sgbV9kaXNwYXRjaFRvUmVuZGVyVGhyZWFkTG9jazsKKyAgICBGdW5jdGlvbjx2
b2lkKEZ1bmN0aW9uPHZvaWQoKT4mJik+IG1fZGlzcGF0Y2hUb1JlbmRlclRocmVhZCBXVEZfR1VB
UkRFRF9CWV9MT0NLKG1fZGlzcGF0Y2hUb1JlbmRlclRocmVhZExvY2spOwogCiAgICAgZmxvYXQg
bV9jb250ZXh0U2FtcGxlUmF0ZTsKIAotICAgIExvY2sgbV9pc1BsYXlpbmdMb2NrOwotICAgIGJv
b2wgbV9pc1BsYXlpbmcgeyBmYWxzZSB9OworICAgIENoZWNrZWRMb2NrIG1faXNQbGF5aW5nTG9j
azsKKyAgICBib29sIG1faXNQbGF5aW5nIFdURl9HVUFSREVEX0JZX0xPQ0sobV9pc1BsYXlpbmdM
b2NrKSB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9BdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlclVuaXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vY29jb2EvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0LmNwcAppbmRleCA5
ODA0M2Q5NWNlZmY1MjdmMjhiN2FkMjQxZmM5M2YwNzM2YjE5MzhlLi5iMDAzNGI5MmZkNDAzYzIz
NmJjMmU2ODhmZTEzMWE4NDRkMjRkNzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0F1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdC5jcHAKQEAgLTg0LDcgKzg0LDcgQEAgdm9pZCBB
dWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6OmFkZFNvdXJjZShSZWY8QXVkaW9TYW1w
bGVEYXRhU291cmNlPiYmIHMKICAgICBSRUxFQVNFX0xPRyhXZWJSVEMsICJBdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlclVuaXQ6OmFkZFNvdXJjZSIpOwogCiAgICAgewotICAgICAgICBhdXRv
IGxvY2tlciA9IGhvbGRMb2NrKG1fc291cmNlc0xvY2spOworICAgICAgICBMb2NrZXIgbG9ja2Vy
IHsgbV9zb3VyY2VzTG9jayB9OwogICAgICAgICBBU1NFUlQoIW1fc291cmNlcy5jb250YWlucyhz
b3VyY2UuZ2V0KCkpKTsKICAgICAgICAgbV9zb3VyY2VzLmFkZChXVEZNb3ZlKHNvdXJjZSkpOwog
ICAgICAgICBtX3NvdXJjZXNDb3B5ID0gY29weVRvVmVjdG9yKG1fc291cmNlcyk7CkBAIC05OSw3
ICs5OSw3IEBAIHZvaWQgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0OjpyZW1vdmVT
b3VyY2UoQXVkaW9TYW1wbGVEYXRhU291cmNlJiBzb3VyCiAKICAgICBib29sIHNob3VsZFN0b3Ag
PSBmYWxzZTsKICAgICB7Ci0gICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9zb3VyY2Vz
TG9jayk7CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBtX3NvdXJjZXNMb2NrIH07CiAgICAgICAg
IG1fc291cmNlcy5yZW1vdmUoc291cmNlKTsKICAgICAgICAgc2hvdWxkU3RvcCA9IG1fc291cmNl
cy5pc0VtcHR5KCk7CiAgICAgICAgIG1fc291cmNlc0NvcHkgPSBjb3B5VG9WZWN0b3IobV9zb3Vy
Y2VzKTsKQEAgLTEzMyw5ICsxMzMsOSBAQCB2b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRl
cmVyVW5pdDo6cmVuZGVyKHNpemVfdCBzYW1wbGVDb3VudCwgQXVkaW9CdWZmZXJMaQogCiAgICAg
QVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAgICAgaWYgKG1fc2hvdWxkVXBkYXRlUmVuZGVyU291
cmNlcykgewotICAgICAgICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKG1fc291cmNlc0xvY2sp
OwotICAgICAgICBpZiAoIWxvY2tlcikKKyAgICAgICAgaWYgKCFtX3NvdXJjZXNMb2NrLnRyeUxv
Y2soKSkKICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0
TG9ja1RhZyB7IH0sIG1fc291cmNlc0xvY2sgfTsKIAogICAgICAgICBtX3JlbmRlclNvdXJjZXMg
PSBXVEZNb3ZlKG1fc291cmNlc0NvcHkpOwogICAgICAgICBtX3Nob3VsZFVwZGF0ZVJlbmRlclNv
dXJjZXMgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2NvY29hL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdC5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXJVbml0LmgKaW5kZXggZTVlZmRmMDMyNmIyYzY4Nzk1ZmI3ZmU2ZDU3ZWM3NWZhMjBj
MmFlNi4uZmFjYjc3MDQ3OTg1ZTM0OWFkMGI5ZjJhNGZlYzE0NGVmMWNjMzRlZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvQXVkaW9NZWRpYVN0
cmVhbVRyYWNrUmVuZGVyZXJVbml0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vY29jb2EvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0LmgKQEAgLTI4
LDYgKzI4LDcgQEAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCiAjaW5jbHVkZSAiQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQuaCIKKyNpbmNsdWRlIDx3dGYvQ2hl
Y2tlZExvY2suaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNo
U2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgpAQCAtNjUsMTEgKzY2LDExIEBAIHBy
aXZhdGU6CiAKICAgICB2b2lkIGNyZWF0ZUF1ZGlvVW5pdElmTmVlZGVkKCk7CiAKLSAgICBIYXNo
U2V0PFJlZjxBdWRpb1NhbXBsZURhdGFTb3VyY2U+PiBtX3NvdXJjZXM7CisgICAgSGFzaFNldDxS
ZWY8QXVkaW9TYW1wbGVEYXRhU291cmNlPj4gbV9zb3VyY2VzIFdURl9HVUFSREVEX0JZX0xPQ0so
bV9zb3VyY2VzTG9jayk7CiAgICAgVmVjdG9yPFJlZjxBdWRpb1NhbXBsZURhdGFTb3VyY2U+PiBt
X3NvdXJjZXNDb3B5OwogICAgIFZlY3RvcjxSZWY8QXVkaW9TYW1wbGVEYXRhU291cmNlPj4gbV9y
ZW5kZXJTb3VyY2VzOwogICAgIGJvb2wgbV9zaG91bGRVcGRhdGVSZW5kZXJTb3VyY2VzIHsgZmFs
c2UgfTsKLSAgICBMb2NrIG1fc291cmNlc0xvY2s7CisgICAgQ2hlY2tlZExvY2sgbV9zb3VyY2Vz
TG9jazsKICAgICBVbmlxdWVSZWY8QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5h
bFVuaXQ+IG1faW50ZXJuYWxVbml0OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAKaW5kZXggZDViNGQ0NjVm
NjIxY2EwODYzYWM5MjAxM2ZmMDM5YWM4OGJkZGNmYS4uZjQ0YzQxODkyYjM4ZjViYWQzMTk2ZDY5
YTFjMTMyNGNlOTNiNWVjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwCkBAIC0yNzAsNyArMjcwLDEyIEBAIExp
YldlYlJUQ0NvZGVjczo6RGVjb2RlciogTGliV2ViUlRDQ29kZWNzOjpjcmVhdGVEZWNvZGVyKFR5
cGUgdHlwZSkKIAogaW50MzJfdCBMaWJXZWJSVENDb2RlY3M6OnJlbGVhc2VEZWNvZGVyKERlY29k
ZXImIGRlY29kZXIpCiB7Ci0gICAgQVNTRVJUKCFkZWNvZGVyLmRlY29kZWRJbWFnZUNhbGxiYWNr
KTsKKyNpZiBBU1NFUlRfRU5BQkxFRAorICAgIHsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IGRl
Y29kZXIuZGVjb2RlZEltYWdlQ2FsbGJhY2tMb2NrIH07CisgICAgICAgIEFTU0VSVCghZGVjb2Rl
ci5kZWNvZGVkSW1hZ2VDYWxsYmFjayk7CisgICAgfQorI2VuZGlmCiAgICAgZW5zdXJlR1BVUHJv
Y2Vzc0Nvbm5lY3Rpb25BbmREaXNwYXRjaFRvVGhyZWFkKFt0aGlzLCBkZWNvZGVySWRlbnRpZmll
ciA9IGRlY29kZXIuaWRlbnRpZmllcl0gewogICAgICAgICBBU1NFUlQobV9kZWNvZGVycy5jb250
YWlucyhkZWNvZGVySWRlbnRpZmllcikpOwogICAgICAgICBpZiAoYXV0byBkZWNvZGVyID0gbV9k
ZWNvZGVycy50YWtlKGRlY29kZXJJZGVudGlmaWVyKSkgewpAQCAtMjk4LDcgKzMwMyw3IEBAIGlu
dDMyX3QgTGliV2ViUlRDQ29kZWNzOjpkZWNvZGVGcmFtZShEZWNvZGVyJiBkZWNvZGVyLCB1aW50
MzJfdCB0aW1lU3RhbXAsIGNvbnN0CiAKIHZvaWQgTGliV2ViUlRDQ29kZWNzOjpyZWdpc3RlckRl
Y29kZUZyYW1lQ2FsbGJhY2soRGVjb2RlciYgZGVjb2Rlciwgdm9pZCogZGVjb2RlZEltYWdlQ2Fs
bGJhY2spCiB7Ci0gICAgTG9ja0hvbGRlciBob2xkZXIoZGVjb2Rlci5kZWNvZGVkSW1hZ2VDYWxs
YmFja0xvY2spOworICAgIExvY2tlciBsb2NrZXIgeyBkZWNvZGVyLmRlY29kZWRJbWFnZUNhbGxi
YWNrTG9jayB9OwogICAgIGRlY29kZXIuZGVjb2RlZEltYWdlQ2FsbGJhY2sgPSBkZWNvZGVkSW1h
Z2VDYWxsYmFjazsKIH0KIApAQCAtMzE5LDEwICszMjQsMTEgQEAgdm9pZCBMaWJXZWJSVENDb2Rl
Y3M6OmNvbXBsZXRlZERlY29kaW5nKFJUQ0RlY29kZXJJZGVudGlmaWVyIGRlY29kZXJJZGVudGlm
aWVyLAogICAgIGlmICghZGVjb2RlcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byBsb2Nr
ZXIgPSB0cnlIb2xkTG9jayhkZWNvZGVyLT5kZWNvZGVkSW1hZ2VDYWxsYmFja0xvY2spOwotICAg
IGlmICghbG9ja2VyKQorICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlZEltYWdlQ2FsbGJhY2tMb2Nr
LnRyeUxvY2soKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0
TG9ja1RhZyB7IH0sIGRlY29kZXItPmRlY29kZWRJbWFnZUNhbGxiYWNrTG9jayB9OworCiAgICAg
aWYgKCFkZWNvZGVyLT5kZWNvZGVkSW1hZ2VDYWxsYmFjaykKICAgICAgICAgcmV0dXJuOwogCkBA
IC0zOTMsNyArMzk5LDEyIEBAIExpYldlYlJUQ0NvZGVjczo6RW5jb2RlciogTGliV2ViUlRDQ29k
ZWNzOjpjcmVhdGVFbmNvZGVyKFR5cGUgdHlwZSwgY29uc3Qgc3RkOjptCiAKIGludDMyX3QgTGli
V2ViUlRDQ29kZWNzOjpyZWxlYXNlRW5jb2RlcihFbmNvZGVyJiBlbmNvZGVyKQogewotICAgIEFT
U0VSVCghZW5jb2Rlci5lbmNvZGVkSW1hZ2VDYWxsYmFjayk7CisjaWYgQVNTRVJUX0VOQUJMRUQK
KyAgICB7CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBlbmNvZGVyLmVuY29kZWRJbWFnZUNhbGxi
YWNrTG9jayB9OworICAgICAgICBBU1NFUlQoIWVuY29kZXIuZW5jb2RlZEltYWdlQ2FsbGJhY2sp
OworICAgIH0KKyNlbmRpZgogICAgIGVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uQW5kRGlzcGF0
Y2hUb1RocmVhZChbdGhpcywgZW5jb2RlcklkZW50aWZpZXIgPSBlbmNvZGVyLmlkZW50aWZpZXJd
IHsKICAgICAgICAgQVNTRVJUKG1fZW5jb2RlcnMuY29udGFpbnMoZW5jb2RlcklkZW50aWZpZXIp
KTsKICAgICAgICAgYXV0byBlbmNvZGVyID0gbV9lbmNvZGVycy50YWtlKGVuY29kZXJJZGVudGlm
aWVyKTsKQEAgLTQ1NCw3ICs0NjUsNyBAQCBpbnQzMl90IExpYldlYlJUQ0NvZGVjczo6ZW5jb2Rl
RnJhbWUoRW5jb2RlciYgZW5jb2RlciwgY29uc3Qgd2VicnRjOjpWaWRlb0ZyYW1lJgogCiB2b2lk
IExpYldlYlJUQ0NvZGVjczo6cmVnaXN0ZXJFbmNvZGVGcmFtZUNhbGxiYWNrKEVuY29kZXImIGVu
Y29kZXIsIHZvaWQqIGVuY29kZWRJbWFnZUNhbGxiYWNrKQogewotICAgIExvY2tIb2xkZXIgaG9s
ZGVyKGVuY29kZXIuZW5jb2RlZEltYWdlQ2FsbGJhY2tMb2NrKTsKKyAgICBMb2NrZXIgbG9ja2Vy
IHsgZW5jb2Rlci5lbmNvZGVkSW1hZ2VDYWxsYmFja0xvY2sgfTsKIAogICAgIGVuY29kZXIuZW5j
b2RlZEltYWdlQ2FsbGJhY2sgPSBlbmNvZGVkSW1hZ2VDYWxsYmFjazsKIH0KQEAgLTQ4MSwxMCAr
NDkyLDExIEBAIHZvaWQgTGliV2ViUlRDQ29kZWNzOjpjb21wbGV0ZWRFbmNvZGluZyhSVENFbmNv
ZGVySWRlbnRpZmllciBpZGVudGlmaWVyLCBJUEM6OkRhCiAgICAgaWYgKCFlbmNvZGVyKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKGVuY29kZXItPmVu
Y29kZWRJbWFnZUNhbGxiYWNrTG9jayk7Ci0gICAgaWYgKCFsb2NrZXIpCisgICAgaWYgKCFlbmNv
ZGVyLT5lbmNvZGVkSW1hZ2VDYWxsYmFja0xvY2sudHJ5TG9jaygpKQogICAgICAgICByZXR1cm47
CiAKKyAgICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsgfSwgZW5jb2Rlci0+ZW5jb2Rl
ZEltYWdlQ2FsbGJhY2tMb2NrIH07CisKICAgICBpZiAoIWVuY29kZXItPmVuY29kZWRJbWFnZUNh
bGxiYWNrKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmgKaW5kZXggMWNkOGY0ZWU2MTE4ZDhk
NDU2ZmE2OWFlZTA2MjJiZjc2NTc1NjU4ZS4uNGEwZTY0YjE4NGU3MTZlM2UwMTExOTIyNDk3ZjZm
OTExMjM0NDcwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJy
dGMvTGliV2ViUlRDQ29kZWNzLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93
ZWJydGMvTGliV2ViUlRDQ29kZWNzLmgKQEAgLTc0LDggKzc0LDggQEAgcHVibGljOgogICAgIHB1
YmxpYzoKICAgICAgICAgUlRDRGVjb2RlcklkZW50aWZpZXIgaWRlbnRpZmllcjsKICAgICAgICAg
VHlwZSB0eXBlOwotICAgICAgICB2b2lkKiBkZWNvZGVkSW1hZ2VDYWxsYmFjayB7IG51bGxwdHIg
fTsKLSAgICAgICAgTG9jayBkZWNvZGVkSW1hZ2VDYWxsYmFja0xvY2s7CisgICAgICAgIHZvaWQq
IGRlY29kZWRJbWFnZUNhbGxiYWNrIFdURl9HVUFSREVEX0JZX0xPQ0soZGVjb2RlZEltYWdlQ2Fs
bGJhY2tMb2NrKSB7IG51bGxwdHIgfTsKKyAgICAgICAgQ2hlY2tlZExvY2sgZGVjb2RlZEltYWdl
Q2FsbGJhY2tMb2NrOwogICAgICAgICBib29sIGhhc0Vycm9yIHsgZmFsc2UgfTsKICAgICAgICAg
UmVmUHRyPElQQzo6Q29ubmVjdGlvbj4gY29ubmVjdGlvbjsKICAgICB9OwpAQCAtMTAwLDggKzEw
MCw4IEBAIHB1YmxpYzoKICAgICAgICAgd2VicnRjOjpWaWRlb0NvZGVjVHlwZSBjb2RlY1R5cGUg
eyB3ZWJydGM6OmtWaWRlb0NvZGVjR2VuZXJpYyB9OwogICAgICAgICBWZWN0b3I8c3RkOjpwYWly
PFN0cmluZywgU3RyaW5nPj4gcGFyYW1ldGVyczsKICAgICAgICAgT3B0aW9uYWw8RW5jb2Rlcklu
aXRpYWxpemF0aW9uRGF0YT4gaW5pdGlhbGl6YXRpb25EYXRhOwotICAgICAgICB2b2lkKiBlbmNv
ZGVkSW1hZ2VDYWxsYmFjayB7IG51bGxwdHIgfTsKLSAgICAgICAgTG9jayBlbmNvZGVkSW1hZ2VD
YWxsYmFja0xvY2s7CisgICAgICAgIHZvaWQqIGVuY29kZWRJbWFnZUNhbGxiYWNrIFdURl9HVUFS
REVEX0JZX0xPQ0soZW5jb2RlZEltYWdlQ2FsbGJhY2tMb2NrKSB7IG51bGxwdHIgfTsKKyAgICAg
ICAgQ2hlY2tlZExvY2sgZW5jb2RlZEltYWdlQ2FsbGJhY2tMb2NrOwogICAgICAgICBSZWZQdHI8
SVBDOjpDb25uZWN0aW9uPiBjb25uZWN0aW9uOwogICAgIH07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429258</attachid>
            <date>2021-05-20 19:34:30 -0700</date>
            <delta_ts>2021-05-20 19:36:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226056-20210520193429.patch</filename>
            <type>text/plain</type>
            <size>26508</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3ODQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGEwNmUxMDQ5YTQ2NjhmNTBmZDJhMGE4
ZTI5NjBkNzZkM2NjOWM0MTMuLjYwYjJmM2Y4ZWIxODYwMDgyMjcwOWFlMTg0N2QyY2FmNGI1MGE0
YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjEtMDUtMjAgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgQ2hlY2tlZExvY2sgbW9yZSBpbiBjYXNlcyB3aGVy
ZSB3ZSB0cnktbG9jaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjI2MDU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVXNlIENoZWNrZWRMb2NrIG1vcmUgaW4gY2FzZXMgd2hlcmUgd2UgdHJ5LWxvY2sgdG8g
YmVuZWZpdCBmcm9tIENsYW5nCisgICAgICAgIFRocmVhZCBTYWZldHkgQW5hbHlzaXMuCisKKyAg
ICAgICAgKiB3dGYvTG9nZ2VyLmNwcDoKKyAgICAgICAgKiB3dGYvTG9nZ2VyLmg6CisgICAgICAg
IChXVEY6OkxvZ2dlcjo6YWRkT2JzZXJ2ZXIpOgorICAgICAgICAoV1RGOjpMb2dnZXI6OnJlbW92
ZU9ic2VydmVyKToKKyAgICAgICAgKFdURjo6TG9nZ2VyOjpsb2cpOgorICAgICAgICAoV1RGOjpM
b2dnZXI6OmxvZ1ZlcmJvc2UpOgorICAgICAgICAoV1RGOjpMb2dnZXI6OldURl9SRVRVUk5TX0xP
Q0spOgorCiAyMDIxLTA1LTIwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAg
ICAgICAgQWRkIG1pc3NpbmcgbG9ja3MgaW4gTGFuZ3VhZ2UuY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGMz
OTBiYTRmODRlZDM0YWE3NGU5MjRjM2RmNDQ0YjE0ZDQ3N2JiNi4uOTM0NzYzZDIxNDVmYWQ4OTU2
YTdkMzAwODBiYmIxODdiOTc1MzYzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIx
LTA1LTIwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIENo
ZWNrZWRMb2NrIG1vcmUgaW4gY2FzZXMgd2hlcmUgd2UgdHJ5LWxvY2sKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjA1NgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBDaGVja2VkTG9jayBtb3JlIGlu
IGNhc2VzIHdoZXJlIHdlIHRyeS1sb2NrIHRvIGJlbmVmaXQgZnJvbSBDbGFuZworICAgICAgICBU
aHJlYWQgU2FmZXR5IEFuYWx5c2lzLgorCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjphdWRpb1NhbXBsZXNBdmFpbGFibGUpOgor
ICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUlt
cGwuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGluZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1BhcmFtVGltZWxpbmU6OnNldFZhbHVlQXRUaW1lKToK
KyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvUGFyYW1UaW1lbGluZTo6bGluZWFyUmFtcFRvVmFsdWVB
dFRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9QYXJhbVRpbWVsaW5lOjpleHBvbmVudGlh
bFJhbXBUb1ZhbHVlQXRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvUGFyYW1UaW1lbGlu
ZTo6c2V0VGFyZ2V0QXRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvUGFyYW1UaW1lbGlu
ZTo6c2V0VmFsdWVDdXJ2ZUF0VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1BhcmFtVGlt
ZWxpbmU6OmNhbmNlbFNjaGVkdWxlZFZhbHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Bh
cmFtVGltZWxpbmU6OmNhbmNlbEFuZEhvbGRBdFRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6QXVk
aW9QYXJhbVRpbWVsaW5lOjp2YWx1ZUZvckNvbnRleHRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6
OkF1ZGlvUGFyYW1UaW1lbGluZTo6dmFsdWVzRm9yRnJhbWVSYW5nZSk6CisgICAgICAgIChXZWJD
b3JlOjpBdWRpb1BhcmFtVGltZWxpbmU6Omhhc1ZhbHVlcyBjb25zdCk6CisgICAgICAgICogTW9k
dWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtVGltZWxpbmUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9h
dWRpby9BdWRpb0Rlc3RpbmF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0
aW9uOjpXVEZfR1VBUkRFRF9CWV9MT0NLKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGlu
YXRpb246OkF1ZGlvRGVzdGluYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5h
dGlvbjo6Y2xlYXJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9u
OjpjYWxsUmVuZGVyQ2FsbGJhY2spOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2Nv
Y29hL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6OmFkZFNvdXJjZSk6CisgICAg
ICAgIChXZWJDb3JlOjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6OnJlbW92ZVNv
dXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVu
aXQ6OnJlbmRlcik6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0Lmg6CisKIDIwMjEtMDUtMjAgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgbWlzc2luZyBsb2NrIGluIEFYSXNv
bGF0ZWRUcmVlOjp0cmVlRm9ySUQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAxN2FjMWVhZWVlMzRmYzBjMTgzZWZi
OWZmZDc2NDg3NDM0YzJiZGU4Li5iZmI4ZmRlMjEzMGM5YWM3MTUxM2QyZjBmYjYyODZiMDNlYjBk
MDFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIxLTA1LTIwICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIENoZWNrZWRMb2NrIG1vcmUgaW4gY2Fz
ZXMgd2hlcmUgd2UgdHJ5LWxvY2sKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyNjA1NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFVzZSBDaGVja2VkTG9jayBtb3JlIGluIGNhc2VzIHdoZXJlIHdlIHRyeS1s
b2NrIHRvIGJlbmVmaXQgZnJvbSBDbGFuZworICAgICAgICBUaHJlYWQgU2FmZXR5IEFuYWx5c2lz
LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHA6
CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ0NvZGVjczo6cmVsZWFzZURlY29kZXIpOgorICAg
ICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6OnJlZ2lzdGVyRGVjb2RlRnJhbWVDYWxsYmFj
ayk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ0NvZGVjczo6Y29tcGxldGVkRGVjb2Rpbmcp
OgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6OnJlbGVhc2VFbmNvZGVyKToKKyAg
ICAgICAgKFdlYktpdDo6TGliV2ViUlRDQ29kZWNzOjpyZWdpc3RlckVuY29kZUZyYW1lQ2FsbGJh
Y2spOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6OmNvbXBsZXRlZEVuY29kaW5n
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmg6Cisg
ICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ0NvZGVjczo6RGVjb2Rlcjo6V1RGX0dVQVJERURfQllf
TE9DSyk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ0NvZGVjczo6RW5jb2Rlcjo6V1RGX0dV
QVJERURfQllfTE9DSyk6CisKIDIwMjEtMDUtMjAgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0
ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI3NzYw
Ni4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0xvZ2dlci5jcHAgYi9Tb3VyY2UvV1RGL3d0
Zi9Mb2dnZXIuY3BwCmluZGV4IGM4ZDg2YzA0NWEzNWJiZmViMzEyNDczZmVlMzhjOWFkMjYyOWI0
YTYuLmUwYjQ1MDY4OGZkNzgzOWZmNGNiYjI1ODk5N2FkOGM0ZjI1NTU3NTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL0xvZ2dlci5jcHAKKysrIGIvU291cmNlL1dURi93dGYvTG9nZ2VyLmNw
cApAQCAtMzIsNyArMzIsNyBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAotTG9jayBsb2dnZXJPYnNl
cnZlckxvY2s7CitDaGVja2VkTG9jayBsb2dnZXJPYnNlcnZlckxvY2s7CiAKIFN0cmluZyBMb2dn
ZXI6OkxvZ1NpdGVJZGVudGlmaWVyOjp0b1N0cmluZygpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9Mb2dnZXIuaCBiL1NvdXJjZS9XVEYvd3RmL0xvZ2dlci5oCmluZGV4IDkx
NTYxMWUwMzIzYTU1MWZmZDUzZjAwNWJlMzkyNGUwNmViNmFjMmIuLmU5OWQ0OWJmMmU5ZDlhZDJh
NmIzYjYxODBkY2JkOThjZDc4NWZhNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0xvZ2dl
ci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0xvZ2dlci5oCkBAIC0yNSw3ICsyNSw3IEBACiAKICNw
cmFnbWEgb25jZQogCi0jaW5jbHVkZSA8d3RmL0xvY2suaD4KKyNpbmNsdWRlIDx3dGYvQ2hlY2tl
ZExvY2suaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKQEAgLTExMiw3ICsxMTIsNyBAQCBzdHJ1Y3Qg
Q29uc29sZUxvZ1ZhbHVlPEFyZ3VtZW50LCBmYWxzZT4gewogICAgIH0KIH07CiAKLVdURl9FWFBP
UlRfUFJJVkFURSBleHRlcm4gTG9jayBsb2dnZXJPYnNlcnZlckxvY2s7CitXVEZfRVhQT1JUX1BS
SVZBVEUgZXh0ZXJuIENoZWNrZWRMb2NrIGxvZ2dlck9ic2VydmVyTG9jazsKIAogY2xhc3MgTG9n
Z2VyIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPExvZ2dlcj4gewogICAgIFdURl9NQUtF
X05PTkNPUFlBQkxFKExvZ2dlcik7CkBAIC0yODUsMTIgKzI4NSwxMiBAQCBwdWJsaWM6CiAKICAg
ICBzdGF0aWMgaW5saW5lIHZvaWQgYWRkT2JzZXJ2ZXIoT2JzZXJ2ZXImIG9ic2VydmVyKQogICAg
IHsKLSAgICAgICAgYXV0byBsb2NrID0gaG9sZExvY2sob2JzZXJ2ZXJMb2NrKCkpOworICAgICAg
ICBMb2NrZXIgbG9ja2VyIHsgb2JzZXJ2ZXJMb2NrKCkgfTsKICAgICAgICAgb2JzZXJ2ZXJzKCku
YXBwZW5kKG9ic2VydmVyKTsKICAgICB9CiAgICAgc3RhdGljIGlubGluZSB2b2lkIHJlbW92ZU9i
c2VydmVyKE9ic2VydmVyJiBvYnNlcnZlcikKICAgICB7Ci0gICAgICAgIGF1dG8gbG9jayA9IGhv
bGRMb2NrKG9ic2VydmVyTG9jaygpKTsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IG9ic2VydmVy
TG9jaygpIH07CiAgICAgICAgIG9ic2VydmVycygpLnJlbW92ZUZpcnN0TWF0Y2hpbmcoWyZvYnNl
cnZlcl0oYXV0byBhbk9ic2VydmVyKSB7CiAgICAgICAgICAgICByZXR1cm4gJmFuT2JzZXJ2ZXIu
Z2V0KCkgPT0gJm9ic2VydmVyOwogICAgICAgICB9KTsKQEAgLTMyMiwxMCArMzIyLDEwIEBAIHBy
aXZhdGU6CiAgICAgICAgIGlmIChjaGFubmVsLnN0YXRlID09IFdURkxvZ0NoYW5uZWxTdGF0ZTo6
T2ZmIHx8IGxldmVsID4gY2hhbm5lbC5sZXZlbCkKICAgICAgICAgICAgIHJldHVybjsKIAotICAg
ICAgICBhdXRvIGxvY2sgPSB0cnlIb2xkTG9jayhvYnNlcnZlckxvY2soKSk7Ci0gICAgICAgIGlm
ICghbG9jaykKKyAgICAgICAgaWYgKCFvYnNlcnZlckxvY2soKS50cnlMb2NrKCkpCiAgICAgICAg
ICAgICByZXR1cm47CiAKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9ja1RhZyB7IH0s
IG9ic2VydmVyTG9jaygpIH07CiAgICAgICAgIGZvciAoT2JzZXJ2ZXImIG9ic2VydmVyIDogb2Jz
ZXJ2ZXJzKCkpCiAgICAgICAgICAgICBvYnNlcnZlci5kaWRMb2dNZXNzYWdlKGNoYW5uZWwsIGxl
dmVsLCB7IENvbnNvbGVMb2dWYWx1ZTxBcmd1bWVudD46OnRvVmFsdWUoYXJndW1lbnRzKS4uLiB9
KTsKICAgICB9CkBAIC0zNTMsMTcgKzM1MywxNyBAQCBwcml2YXRlOgogICAgICAgICBpZiAoY2hh
bm5lbC5zdGF0ZSA9PSBXVEZMb2dDaGFubmVsU3RhdGU6Ok9mZiB8fCBsZXZlbCA+IGNoYW5uZWwu
bGV2ZWwpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgYXV0byBsb2NrID0gdHJ5SG9s
ZExvY2sob2JzZXJ2ZXJMb2NrKCkpOwotICAgICAgICBpZiAoIWxvY2spCisgICAgICAgIGlmICgh
b2JzZXJ2ZXJMb2NrKCkudHJ5TG9jaygpKQogICAgICAgICAgICAgcmV0dXJuOwogCisgICAgICAg
IExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2tUYWcgeyB9LCBvYnNlcnZlckxvY2soKSB9OwogICAg
ICAgICBmb3IgKE9ic2VydmVyJiBvYnNlcnZlciA6IG9ic2VydmVycygpKQogICAgICAgICAgICAg
b2JzZXJ2ZXIuZGlkTG9nTWVzc2FnZShjaGFubmVsLCBsZXZlbCwgeyBDb25zb2xlTG9nVmFsdWU8
QXJndW1lbnQ+Ojp0b1ZhbHVlKGFyZ3VtZW50cykuLi4gfSk7CiAgICAgfQogCi0gICAgV1RGX0VY
UE9SVF9QUklWQVRFIHN0YXRpYyBWZWN0b3I8c3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxPYnNlcnZl
cj4+JiBvYnNlcnZlcnMoKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFZlY3Rvcjxz
dGQ6OnJlZmVyZW5jZV93cmFwcGVyPE9ic2VydmVyPj4mIG9ic2VydmVycygpIFdURl9SRVFVSVJF
U19MT0NLKG9ic2VydmVyTG9jaygpKTsKIAotICAgIHN0YXRpYyBMb2NrJiBvYnNlcnZlckxvY2so
KQorICAgIHN0YXRpYyBDaGVja2VkTG9jayYgb2JzZXJ2ZXJMb2NrKCkgV1RGX1JFVFVSTlNfTE9D
Syhsb2dnZXJPYnNlcnZlckxvY2spCiAgICAgewogICAgICAgICByZXR1cm4gbG9nZ2VyT2JzZXJ2
ZXJMb2NrOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAKaW5k
ZXggNjFiMjZmMWY5NWJhMDAzMzFiMzkwYzEwZjRmMDlhMjAwOTlkZDQzNS4uMDNjOTVkYTUzMzhh
ODJjYzcyYjQxMmQ5MDA1NDk1YjhhMmExZDk4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJl
U291cmNlSW1wbC5jcHAKQEAgLTEwNSw5ICsxMDUsMTAgQEAgdm9pZCBTcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2VJbXBsOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1l
JgogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBpZiAo
YXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhtX2RhdGFTb3VyY2VMb2NrKSkKKyAgICAgICAgaWYg
KG1fZGF0YVNvdXJjZUxvY2sudHJ5TG9jaygpKSB7CiAgICAgICAgICAgICBtX2RhdGFTb3VyY2Ug
PSBXVEZNb3ZlKGRhdGFTb3VyY2UpOwotICAgICAgICBlbHNlCisgICAgICAgICAgICBtX2RhdGFT
b3VyY2VMb2NrLnVubG9jaygpOworICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKQEAgLTExOCw3ICsxMTksNyBAQCB2b2lkIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZUltcGw6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmCiAKICAg
ICAgICAgYXV0byBkYXRhID0gV2ViQXVkaW9CdWZmZXJMaXN0IHsgYXVkaW9EZXNjcmlwdGlvbiwg
c3RhdGljX2Nhc3Q8dWludDMyX3Q+KHNhbXBsZUNvdW50KSB9OwogICAgICAgICB7Ci0gICAgICAg
ICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fZGF0YVNvdXJjZUxvY2spOworICAgICAgICAg
ICAgTG9ja2VyIGxvY2tlciB7IG1fZGF0YVNvdXJjZUxvY2sgfTsKICAgICAgICAgICAgIG1fZGF0
YVNvdXJjZS0+cHVsbFNhbXBsZXMoKmRhdGEubGlzdCgpLCBzYW1wbGVDb3VudCwgdGltZS50aW1l
VmFsdWUoKSwgMCwgQXVkaW9TYW1wbGVEYXRhU291cmNlOjpDb3B5KTsKICAgICAgICAgfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2VJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmgKaW5kZXggYmM1YzAyYTE4OTM0NzE0Yzc3
MzkzNTg0ZTIzYzczYjMwMWViODc0Zi4uZjhmYmNhYjQyZjEwNjhmOTEzZmEzOGU4ZTg1YmQyMjQw
ODJkZmU5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuaApAQCAtMjksNiAr
MjksNyBAQAogCiAjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgogI2luY2x1ZGUgIlNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDx3
dGYvQ2hlY2tlZExvY2suaD4KIAogI2lmIFBMQVRGT1JNKENPQ09BKQogI2luY2x1ZGUgIkF1ZGlv
U2FtcGxlRGF0YVNvdXJjZS5oIgpAQCAtNzIsNyArNzMsNyBAQCBwcml2YXRlOgogCiAjaWYgUExB
VEZPUk0oQ09DT0EpCiAgICAgUmVmUHRyPEF1ZGlvU2FtcGxlRGF0YVNvdXJjZT4gbV9kYXRhU291
cmNlOwotICAgIExvY2sgbV9kYXRhU291cmNlTG9jazsKKyAgICBDaGVja2VkTG9jayBtX2RhdGFT
b3VyY2VMb2NrOwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGluZS5jcHAKaW5kZXggNzJlNDgwMGM4ODczN2M2
NjhjMWQ2NjllOGUwMThlMTNhYjA3ZTlmYS4uMDQwNmVhYjc3MTBlOGVkOTdkZTg5ODNhMjAwZTUx
NTZjMjI5ZWFhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb1BhcmFtVGltZWxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9QYXJhbVRpbWVsaW5lLmNwcApAQCAtNzMsMTMgKzczLDEzIEBAIHN0YXRpYyBib29s
IGhhc1NldFRhcmdldENvbnZlcmdlZChmbG9hdCB2YWx1ZSwgZmxvYXQgdGFyZ2V0LCBTZWNvbmRz
IGN1cnJlbnRUaW1lCiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlvUGFyYW1UaW1lbGluZTo6c2V0
VmFsdWVBdFRpbWUoZmxvYXQgdmFsdWUsIFNlY29uZHMgdGltZSkKIHsKLSAgICBhdXRvIGxvY2tl
ciA9IGhvbGRMb2NrKG1fZXZlbnRzTG9jayk7CisgICAgTG9ja2VyIGxvY2tlciB7IG1fZXZlbnRz
TG9jayB9OwogICAgIHJldHVybiBpbnNlcnRFdmVudChQYXJhbUV2ZW50OjpjcmVhdGVTZXRWYWx1
ZUV2ZW50KHZhbHVlLCB0aW1lKSk7CiB9CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlvUGFyYW1U
aW1lbGluZTo6bGluZWFyUmFtcFRvVmFsdWVBdFRpbWUoZmxvYXQgdGFyZ2V0VmFsdWUsIFNlY29u
ZHMgZW5kVGltZSwgZmxvYXQgY3VycmVudFZhbHVlLCBTZWNvbmRzIGN1cnJlbnRUaW1lKQogewot
ICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9ldmVudHNMb2NrKTsKKyAgICBMb2NrZXIgbG9j
a2VyIHsgbV9ldmVudHNMb2NrIH07CiAKICAgICAvLyBMaW5lYXIgcmFtcCBldmVudHMgbmVlZCBh
IHByZWNlZGluZyBldmVudCBzbyB0aGF0IHRoZXkgaGF2ZSBhbiBpbml0aWFsIHZhbHVlLgogICAg
IGlmIChtX2V2ZW50cy5pc0VtcHR5KCkpCkBAIC05MCw3ICs5MCw3IEBAIEV4Y2VwdGlvbk9yPHZv
aWQ+IEF1ZGlvUGFyYW1UaW1lbGluZTo6bGluZWFyUmFtcFRvVmFsdWVBdFRpbWUoZmxvYXQgdGFy
Z2V0VmFsdWUsCiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlvUGFyYW1UaW1lbGluZTo6ZXhwb25l
bnRpYWxSYW1wVG9WYWx1ZUF0VGltZShmbG9hdCB0YXJnZXRWYWx1ZSwgU2Vjb25kcyBlbmRUaW1l
LCBmbG9hdCBjdXJyZW50VmFsdWUsIFNlY29uZHMgY3VycmVudFRpbWUpCiB7Ci0gICAgYXV0byBs
b2NrZXIgPSBob2xkTG9jayhtX2V2ZW50c0xvY2spOworICAgIExvY2tlciBsb2NrZXIgeyBtX2V2
ZW50c0xvY2sgfTsKIAogICAgIC8vIEV4cG9uZW50aWFsIHJhbXAgZXZlbnRzIG5lZWQgYSBwcmVj
ZWRpbmcgZXZlbnQgc28gdGhhdCB0aGV5IGhhdmUgYW4gaW5pdGlhbCB2YWx1ZS4KICAgICBpZiAo
bV9ldmVudHMuaXNFbXB0eSgpKQpAQCAtMTAxLDcgKzEwMSw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+
IEF1ZGlvUGFyYW1UaW1lbGluZTo6ZXhwb25lbnRpYWxSYW1wVG9WYWx1ZUF0VGltZShmbG9hdCB0
YXJnZXRWCiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlvUGFyYW1UaW1lbGluZTo6c2V0VGFyZ2V0
QXRUaW1lKGZsb2F0IHRhcmdldCwgU2Vjb25kcyB0aW1lLCBmbG9hdCB0aW1lQ29uc3RhbnQpCiB7
Ci0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2V2ZW50c0xvY2spOworICAgIExvY2tlciBs
b2NrZXIgeyBtX2V2ZW50c0xvY2sgfTsKICAgICAvLyBJZiB0aW1lQ29uc3RhbnQgaXMgMCwgd2Ug
aW5zdGFudGx5IGp1bXAgdG8gdGhlIHRhcmdldCB2YWx1ZSwgc28gaW5zZXJ0IGEgU2V0VmFsdWVF
dmVudCBpbnN0ZWFkIG9mIFNldFRhcmdldEV2ZW50LgogICAgIGlmICghdGltZUNvbnN0YW50KQog
ICAgICAgICByZXR1cm4gaW5zZXJ0RXZlbnQoUGFyYW1FdmVudDo6Y3JlYXRlU2V0VmFsdWVFdmVu
dCh0YXJnZXQsIHRpbWUpKTsKQEAgLTExMCw3ICsxMTAsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBB
dWRpb1BhcmFtVGltZWxpbmU6OnNldFRhcmdldEF0VGltZShmbG9hdCB0YXJnZXQsIFNlY29uZHMg
dGltZQogCiBFeGNlcHRpb25Pcjx2b2lkPiBBdWRpb1BhcmFtVGltZWxpbmU6OnNldFZhbHVlQ3Vy
dmVBdFRpbWUoVmVjdG9yPGZsb2F0PiYmIGN1cnZlLCBTZWNvbmRzIHRpbWUsIFNlY29uZHMgZHVy
YXRpb24pCiB7Ci0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2V2ZW50c0xvY2spOworICAg
IExvY2tlciBsb2NrZXIgeyBtX2V2ZW50c0xvY2sgfTsKIAogICAgIGZsb2F0IGN1cnZlRW5kVmFs
dWUgPSBjdXJ2ZS5sYXN0KCk7CiAgICAgYXV0byByZXN1bHQgPSBpbnNlcnRFdmVudChQYXJhbUV2
ZW50OjpjcmVhdGVTZXRWYWx1ZUN1cnZlRXZlbnQoV1RGTW92ZShjdXJ2ZSksIHRpbWUsIGR1cmF0
aW9uKSk7CkBAIC0xODYsNyArMTg2LDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQXVkaW9QYXJhbVRp
bWVsaW5lOjppbnNlcnRFdmVudChQYXJhbUV2ZW50JiYgZXZlbnQpCiAKIHZvaWQgQXVkaW9QYXJh
bVRpbWVsaW5lOjpjYW5jZWxTY2hlZHVsZWRWYWx1ZXMoU2Vjb25kcyBjYW5jZWxUaW1lKQogewot
ICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9ldmVudHNMb2NrKTsKKyAgICBMb2NrZXIgbG9j
a2VyIHsgbV9ldmVudHNMb2NrIH07CiAKICAgICAvLyBSZW1vdmUgYWxsIGV2ZW50cyB3aG9zZSBz
dGFydCB0aW1lIGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgY2FuY2VsIHRpbWUuCiAg
ICAgLy8gQWxzbyBoYW5kbGUgdGhlIHNwZWNpYWwgY2FzZSB3aGVyZSB0aGUgY2FuY2VsIHRpbWUg
bGllcyBpbiB0aGUgbWlkZGxlIG9mIGEKQEAgLTIxNSw3ICsyMTUsNyBAQCB2b2lkIEF1ZGlvUGFy
YW1UaW1lbGluZTo6Y2FuY2VsU2NoZWR1bGVkVmFsdWVzKFNlY29uZHMgY2FuY2VsVGltZSkKIAog
RXhjZXB0aW9uT3I8dm9pZD4gQXVkaW9QYXJhbVRpbWVsaW5lOjpjYW5jZWxBbmRIb2xkQXRUaW1l
KFNlY29uZHMgY2FuY2VsVGltZSkKIHsKLSAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fZXZl
bnRzTG9jayk7CisgICAgTG9ja2VyIGxvY2tlciB7IG1fZXZlbnRzTG9jayB9OwogCiAgICAgLy8g
RmluZCB0aGUgZmlyc3QgZXZlbnQgYXQgb3IganVzdCBwYXN0IGNhbmNlbFRpbWUuCiAgICAgc2l6
ZV90IGkgPSBtX2V2ZW50cy5maW5kTWF0Y2hpbmcoWyZdKGF1dG8mIGV2ZW50KSB7CkBAIC0zMjcs
OCArMzI3LDEwIEBAIHZvaWQgQXVkaW9QYXJhbVRpbWVsaW5lOjpyZW1vdmVDYW5jZWxsZWRFdmVu
dHMoc2l6ZV90IGZpcnN0RXZlbnRUb1JlbW92ZSkKIE9wdGlvbmFsPGZsb2F0PiBBdWRpb1BhcmFt
VGltZWxpbmU6OnZhbHVlRm9yQ29udGV4dFRpbWUoQmFzZUF1ZGlvQ29udGV4dCYgY29udGV4dCwg
ZmxvYXQgZGVmYXVsdFZhbHVlLCBmbG9hdCBtaW5WYWx1ZSwgZmxvYXQgbWF4VmFsdWUpCiB7CiAg
ICAgewotICAgICAgICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKG1fZXZlbnRzTG9jayk7Ci0g
ICAgICAgIGlmICghbG9ja2VyIHx8ICFtX2V2ZW50cy5zaXplKCkgfHwgU2Vjb25kcyB7IGNvbnRl
eHQuY3VycmVudFRpbWUoKSB9IDwgbV9ldmVudHNbMF0udGltZSgpKQorICAgICAgICBpZiAoIW1f
ZXZlbnRzTG9jay50cnlMb2NrKCkpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owor
ICAgICAgICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsgfSwgbV9ldmVudHNMb2NrIH07
CisgICAgICAgIGlmICghbV9ldmVudHMuc2l6ZSgpIHx8IFNlY29uZHMgeyBjb250ZXh0LmN1cnJl
bnRUaW1lKCkgfSA8IG1fZXZlbnRzWzBdLnRpbWUoKSkKICAgICAgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CiAgICAgfQogCkBAIC0zNDUsMTEgKzM0NywxMSBAQCBPcHRpb25hbDxmbG9hdD4g
QXVkaW9QYXJhbVRpbWVsaW5lOjp2YWx1ZUZvckNvbnRleHRUaW1lKEJhc2VBdWRpb0NvbnRleHQm
IGNvbnRleAogZmxvYXQgQXVkaW9QYXJhbVRpbWVsaW5lOjp2YWx1ZXNGb3JGcmFtZVJhbmdlKHNp
emVfdCBzdGFydEZyYW1lLCBzaXplX3QgZW5kRnJhbWUsIGZsb2F0IGRlZmF1bHRWYWx1ZSwgZmxv
YXQgbWluVmFsdWUsIGZsb2F0IG1heFZhbHVlLCBmbG9hdCogdmFsdWVzLCB1bnNpZ25lZCBudW1i
ZXJPZlZhbHVlcywgZG91YmxlIHNhbXBsZVJhdGUsIGRvdWJsZSBjb250cm9sUmF0ZSkKIHsKICAg
ICAvLyBXZSBjYW4ndCBjb250ZW5kIHRoZSBsb2NrIGluIHRoZSByZWFsdGltZSBhdWRpbyB0aHJl
YWQuCi0gICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhtX2V2ZW50c0xvY2spOwotICAgIGlm
ICghbG9ja2VyKSB7CisgICAgaWYgKCFtX2V2ZW50c0xvY2sudHJ5TG9jaygpKSB7CiAgICAgICAg
IHN0ZDo6ZmlsbF9uKHZhbHVlcywgbnVtYmVyT2ZWYWx1ZXMsIGRlZmF1bHRWYWx1ZSk7CiAgICAg
ICAgIHJldHVybiBkZWZhdWx0VmFsdWU7CiAgICAgfQorICAgIExvY2tlciBsb2NrZXIgeyBBZG9w
dExvY2tUYWcgeyB9LCBtX2V2ZW50c0xvY2sgfTsKIAogICAgIGZsb2F0IHZhbHVlID0gdmFsdWVz
Rm9yRnJhbWVSYW5nZUltcGwoc3RhcnRGcmFtZSwgZW5kRnJhbWUsIGRlZmF1bHRWYWx1ZSwgdmFs
dWVzLCBudW1iZXJPZlZhbHVlcywgc2FtcGxlUmF0ZSwgY29udHJvbFJhdGUpOwogCkBAIC05ODQs
OSArOTg2LDkgQEAgYm9vbCBBdWRpb1BhcmFtVGltZWxpbmU6OmlzRXZlbnRDdXJyZW50KGNvbnN0
IFBhcmFtRXZlbnQmIGV2ZW50LCBjb25zdCBQYXJhbUV2ZW4KIAogYm9vbCBBdWRpb1BhcmFtVGlt
ZWxpbmU6Omhhc1ZhbHVlcyhzaXplX3Qgc3RhcnRGcmFtZSwgZG91YmxlIHNhbXBsZVJhdGUpIGNv
bnN0CiB7Ci0gICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhtX2V2ZW50c0xvY2spOwotICAg
IGlmICghbG9ja2VyKQorICAgIGlmICghbV9ldmVudHNMb2NrLnRyeUxvY2soKSkKICAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9ja1RhZyB7IH0sIG1fZXZl
bnRzTG9jayB9OwogCiAgICAgLy8gUmV0dXJuIGZhbHNlIGlmIHRoZXJlIGFyZSBubyBldmVudHMg
aW4gdGhlIHRpbWUgcmFuZ2UuCiAgICAgYXV0byBlbmRGcmFtZSA9IHN0YXJ0RnJhbWUgKyBBdWRp
b1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGluZS5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtVGltZWxpbmUuaAppbmRleCA0Y2QxYTBmMDE0MWM5
MTgxYjRmYjYzMGMxNzM0NjYzM2YzODI4Nzk4Li45YjcyNjE3ZDQyYzA4YTQ3NGE3NTI1NjQ1MWM1
MDM2YzQzMWQ4Mjk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvUGFyYW1UaW1lbGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9QYXJhbVRpbWVsaW5lLmgKQEAgLTMwLDcgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkF1
ZGlvQ29udGV4dC5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Zsb2F0MzJBcnJheS5oPgot
I2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CisjaW5jbHVkZSA8d3RmL0NoZWNrZWRMb2NrLmg+CiAjaW5j
bHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xODksOSArMTg5
LDkgQEAgcHJpdmF0ZToKICAgICAgICAgY29uc3QgaW50IGV2ZW50SW5kZXg7CiAgICAgfTsKIAot
ICAgIHZvaWQgcmVtb3ZlQ2FuY2VsbGVkRXZlbnRzKHNpemVfdCBmaXJzdEV2ZW50VG9SZW1vdmUp
OwotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IGluc2VydEV2ZW50KFBhcmFtRXZlbnQmJik7Ci0gICAg
ZmxvYXQgdmFsdWVzRm9yRnJhbWVSYW5nZUltcGwoc2l6ZV90IHN0YXJ0RnJhbWUsIHNpemVfdCBl
bmRGcmFtZSwgZmxvYXQgZGVmYXVsdFZhbHVlLCBmbG9hdCogdmFsdWVzLCB1bnNpZ25lZCBudW1i
ZXJPZlZhbHVlcywgZG91YmxlIHNhbXBsZVJhdGUsIGRvdWJsZSBjb250cm9sUmF0ZSk7CisgICAg
dm9pZCByZW1vdmVDYW5jZWxsZWRFdmVudHMoc2l6ZV90IGZpcnN0RXZlbnRUb1JlbW92ZSkgV1RG
X1JFUVVJUkVTX0xPQ0sobV9ldmVudHNMb2NrKTsKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBpbnNl
cnRFdmVudChQYXJhbUV2ZW50JiYpIFdURl9SRVFVSVJFU19MT0NLKG1fZXZlbnRzTG9jayk7Cisg
ICAgZmxvYXQgdmFsdWVzRm9yRnJhbWVSYW5nZUltcGwoc2l6ZV90IHN0YXJ0RnJhbWUsIHNpemVf
dCBlbmRGcmFtZSwgZmxvYXQgZGVmYXVsdFZhbHVlLCBmbG9hdCogdmFsdWVzLCB1bnNpZ25lZCBu
dW1iZXJPZlZhbHVlcywgZG91YmxlIHNhbXBsZVJhdGUsIGRvdWJsZSBjb250cm9sUmF0ZSkgV1RG
X1JFUVVJUkVTX0xPQ0sobV9ldmVudHNMb2NrKTsKICAgICBmbG9hdCBsaW5lYXJSYW1wQXRUaW1l
KFNlY29uZHMgdCwgZmxvYXQgdmFsdWUxLCBTZWNvbmRzIHRpbWUxLCBmbG9hdCB2YWx1ZTIsIFNl
Y29uZHMgdGltZTIpOwogICAgIGZsb2F0IGV4cG9uZW50aWFsUmFtcEF0VGltZShTZWNvbmRzIHQs
IGZsb2F0IHZhbHVlMSwgU2Vjb25kcyB0aW1lMSwgZmxvYXQgdmFsdWUyLCBTZWNvbmRzIHRpbWUy
KTsKICAgICBmbG9hdCB2YWx1ZUN1cnZlQXRUaW1lKFNlY29uZHMgdCwgU2Vjb25kcyB0aW1lMSwg
U2Vjb25kcyBkdXJhdGlvbiwgY29uc3QgZmxvYXQqIGN1cnZlRGF0YSwgc2l6ZV90IGN1cnZlTGVu
Z3RoKTsKQEAgLTIwMCwxNCArMjAwLDE0IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHByb2Nlc3NM
aW5lYXJSYW1wKGNvbnN0IEF1dG9tYXRpb25TdGF0ZSYsIGZsb2F0KiB2YWx1ZXMsIHNpemVfdCYg
Y3VycmVudEZyYW1lLCBmbG9hdCYgdmFsdWUsIHVuc2lnbmVkJiB3cml0ZUluZGV4KTsKICAgICB2
b2lkIHByb2Nlc3NFeHBvbmVudGlhbFJhbXAoY29uc3QgQXV0b21hdGlvblN0YXRlJiwgZmxvYXQq
IHZhbHVlcywgc2l6ZV90JiBjdXJyZW50RnJhbWUsIGZsb2F0JiB2YWx1ZSwgdW5zaWduZWQmIHdy
aXRlSW5kZXgpOwotICAgIHZvaWQgcHJvY2Vzc0NhbmNlbFZhbHVlcyhjb25zdCBBdXRvbWF0aW9u
U3RhdGUmLCBmbG9hdCogdmFsdWVzLCBzaXplX3QmIGN1cnJlbnRGcmFtZSwgZmxvYXQmIHZhbHVl
LCB1bnNpZ25lZCYgd3JpdGVJbmRleCk7CisgICAgdm9pZCBwcm9jZXNzQ2FuY2VsVmFsdWVzKGNv
bnN0IEF1dG9tYXRpb25TdGF0ZSYsIGZsb2F0KiB2YWx1ZXMsIHNpemVfdCYgY3VycmVudEZyYW1l
LCBmbG9hdCYgdmFsdWUsIHVuc2lnbmVkJiB3cml0ZUluZGV4KSBXVEZfUkVRVUlSRVNfTE9DSyht
X2V2ZW50c0xvY2spOwogICAgIHZvaWQgcHJvY2Vzc1NldFRhcmdldChjb25zdCBBdXRvbWF0aW9u
U3RhdGUmLCBmbG9hdCogdmFsdWVzLCBzaXplX3QmIGN1cnJlbnRGcmFtZSwgZmxvYXQmIHZhbHVl
LCB1bnNpZ25lZCYgd3JpdGVJbmRleCk7CiAgICAgdm9pZCBwcm9jZXNzU2V0VmFsdWVDdXJ2ZShj
b25zdCBBdXRvbWF0aW9uU3RhdGUmLCBmbG9hdCogdmFsdWVzLCBzaXplX3QmIGN1cnJlbnRGcmFt
ZSwgZmxvYXQmIHZhbHVlLCB1bnNpZ25lZCYgd3JpdGVJbmRleCk7Ci0gICAgdm9pZCBwcm9jZXNz
U2V0VGFyZ2V0Rm9sbG93ZWRCeVJhbXAoaW50IGV2ZW50SW5kZXgsIFBhcmFtRXZlbnQqJiwgUGFy
YW1FdmVudDo6VHlwZSBuZXh0RXZlbnRUeXBlLCBzaXplX3QgY3VycmVudEZyYW1lLCBkb3VibGUg
c2FtcGxpbmdQZXJpb2QsIGRvdWJsZSBjb250cm9sUmF0ZSwgZmxvYXQmIHZhbHVlKTsKKyAgICB2
b2lkIHByb2Nlc3NTZXRUYXJnZXRGb2xsb3dlZEJ5UmFtcChpbnQgZXZlbnRJbmRleCwgUGFyYW1F
dmVudComLCBQYXJhbUV2ZW50OjpUeXBlIG5leHRFdmVudFR5cGUsIHNpemVfdCBjdXJyZW50RnJh
bWUsIGRvdWJsZSBzYW1wbGluZ1BlcmlvZCwgZG91YmxlIGNvbnRyb2xSYXRlLCBmbG9hdCYgdmFs
dWUpIFdURl9SRVFVSVJFU19MT0NLKG1fZXZlbnRzTG9jayk7CiAKLSAgICBWZWN0b3I8UGFyYW1F
dmVudD4gbV9ldmVudHM7CisgICAgVmVjdG9yPFBhcmFtRXZlbnQ+IG1fZXZlbnRzIFdURl9HVUFS
REVEX0JZX0xPQ0sobV9ldmVudHNMb2NrKTsKIAotICAgIG11dGFibGUgTG9jayBtX2V2ZW50c0xv
Y2s7CisgICAgbXV0YWJsZSBDaGVja2VkTG9jayBtX2V2ZW50c0xvY2s7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9BdWRpb0Rlc3RpbmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRp
b0Rlc3RpbmF0aW9uLmgKaW5kZXggODMxOTY0NzNiYzFhYTliZGVlODZmNzBkNzRmMDkwMTgxN2Y2
ZjY4YS4uZWI1NGYwZDUxZDc4NjBiOWY2MDQwZDg5MzU4ODQ0ODgyYTY1YmI2MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9EZXN0aW5hdGlvbi5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvRGVzdGluYXRpb24uaApAQCAtMzIs
NiArMzIsNyBAQAogI2luY2x1ZGUgIkF1ZGlvQnVzLmgiCiAjaW5jbHVkZSAiQXVkaW9JT0NhbGxi
YWNrLmgiCiAjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHd0Zi9DaGVja2VkTG9jay5oPgog
I2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+
CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CkBAIC03NywzMCArNzgsMzIg
QEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IEF1ZGlvRGVzdGluYXRpb24oQXVk
aW9JT0NhbGxiYWNrJik7CiAKLSAgICBMb2NrIG1fY2FsbGJhY2tMb2NrOwotICAgIEF1ZGlvSU9D
YWxsYmFjayogbV9jYWxsYmFjayB7IG51bGxwdHIgfTsKKyAgICBDaGVja2VkTG9jayBtX2NhbGxi
YWNrTG9jazsKKyAgICBBdWRpb0lPQ2FsbGJhY2sqIG1fY2FsbGJhY2sgV1RGX0dVQVJERURfQllf
TE9DSyhtX2NhbGxiYWNrTG9jaykgeyBudWxscHRyIH07CiB9OwogCiBpbmxpbmUgQXVkaW9EZXN0
aW5hdGlvbjo6QXVkaW9EZXN0aW5hdGlvbihBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrKQogewot
ICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9jYWxsYmFja0xvY2spOworICAgIExvY2tlciBs
b2NrZXIgeyBtX2NhbGxiYWNrTG9jayB9OwogICAgIG1fY2FsbGJhY2sgPSAmY2FsbGJhY2s7CiB9
CiAKIGlubGluZSB2b2lkIEF1ZGlvRGVzdGluYXRpb246OmNsZWFyQ2FsbGJhY2soKQogewotICAg
IGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9jYWxsYmFja0xvY2spOworICAgIExvY2tlciBsb2Nr
ZXIgeyBtX2NhbGxiYWNrTG9jayB9OwogICAgIG1fY2FsbGJhY2sgPSBudWxscHRyOwogfQogCiBp
bmxpbmUgdm9pZCBBdWRpb0Rlc3RpbmF0aW9uOjpjYWxsUmVuZGVyQ2FsbGJhY2soQXVkaW9CdXMq
IHNvdXJjZUJ1cywgQXVkaW9CdXMqIGRlc3RpbmF0aW9uQnVzLCBzaXplX3QgZnJhbWVzVG9Qcm9j
ZXNzLCBjb25zdCBBdWRpb0lPUG9zaXRpb24mIG91dHB1dFBvc2l0aW9uKQogewotICAgIGF1dG8g
bG9ja2VyID0gdHJ5SG9sZExvY2sobV9jYWxsYmFja0xvY2spOwotICAgIGlmICghbG9ja2VyIHx8
ICFtX2NhbGxiYWNrKSB7Ci0gICAgICAgIGRlc3RpbmF0aW9uQnVzLT56ZXJvKCk7Ci0gICAgICAg
IHJldHVybjsKKyAgICBpZiAobV9jYWxsYmFja0xvY2sudHJ5TG9jaygpKSB7CisgICAgICAgIExv
Y2tlciBsb2NrZXIgeyBBZG9wdExvY2tUYWcgeyB9LCBtX2NhbGxiYWNrTG9jayB9OworICAgICAg
ICBpZiAobV9jYWxsYmFjaykgeworICAgICAgICAgICAgbV9jYWxsYmFjay0+cmVuZGVyKHNvdXJj
ZUJ1cywgZGVzdGluYXRpb25CdXMsIGZyYW1lc1RvUHJvY2Vzcywgb3V0cHV0UG9zaXRpb24pOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAgICAgfQotICAgIG1fY2FsbGJhY2stPnJl
bmRlcihzb3VyY2VCdXMsIGRlc3RpbmF0aW9uQnVzLCBmcmFtZXNUb1Byb2Nlc3MsIG91dHB1dFBv
c2l0aW9uKTsKKyAgICBkZXN0aW5hdGlvbkJ1cy0+emVybygpOwogfQogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9jb2NvYS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXJVbml0LmNwcAppbmRleCA5ODA0M2Q5NWNlZmY1MjdmMjhiN2FkMjQxZmM5M2YwNzM2YjE5
MzhlLi5iMDAzNGI5MmZkNDAzYzIzNmJjMmU2ODhmZTEzMWE4NDRkMjRkNzg3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9BdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlclVuaXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL2NvY29hL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdC5jcHAKQEAg
LTg0LDcgKzg0LDcgQEAgdm9pZCBBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6OmFk
ZFNvdXJjZShSZWY8QXVkaW9TYW1wbGVEYXRhU291cmNlPiYmIHMKICAgICBSRUxFQVNFX0xPRyhX
ZWJSVEMsICJBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6OmFkZFNvdXJjZSIpOwog
CiAgICAgewotICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fc291cmNlc0xvY2spOwor
ICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9zb3VyY2VzTG9jayB9OwogICAgICAgICBBU1NFUlQo
IW1fc291cmNlcy5jb250YWlucyhzb3VyY2UuZ2V0KCkpKTsKICAgICAgICAgbV9zb3VyY2VzLmFk
ZChXVEZNb3ZlKHNvdXJjZSkpOwogICAgICAgICBtX3NvdXJjZXNDb3B5ID0gY29weVRvVmVjdG9y
KG1fc291cmNlcyk7CkBAIC05OSw3ICs5OSw3IEBAIHZvaWQgQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXJVbml0OjpyZW1vdmVTb3VyY2UoQXVkaW9TYW1wbGVEYXRhU291cmNlJiBzb3VyCiAK
ICAgICBib29sIHNob3VsZFN0b3AgPSBmYWxzZTsKICAgICB7Ci0gICAgICAgIGF1dG8gbG9ja2Vy
ID0gaG9sZExvY2sobV9zb3VyY2VzTG9jayk7CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBtX3Nv
dXJjZXNMb2NrIH07CiAgICAgICAgIG1fc291cmNlcy5yZW1vdmUoc291cmNlKTsKICAgICAgICAg
c2hvdWxkU3RvcCA9IG1fc291cmNlcy5pc0VtcHR5KCk7CiAgICAgICAgIG1fc291cmNlc0NvcHkg
PSBjb3B5VG9WZWN0b3IobV9zb3VyY2VzKTsKQEAgLTEzMyw5ICsxMzMsOSBAQCB2b2lkIEF1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6cmVuZGVyKHNpemVfdCBzYW1wbGVDb3VudCwg
QXVkaW9CdWZmZXJMaQogCiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAgICAgaWYgKG1f
c2hvdWxkVXBkYXRlUmVuZGVyU291cmNlcykgewotICAgICAgICBhdXRvIGxvY2tlciA9IHRyeUhv
bGRMb2NrKG1fc291cmNlc0xvY2spOwotICAgICAgICBpZiAoIWxvY2tlcikKKyAgICAgICAgaWYg
KCFtX3NvdXJjZXNMb2NrLnRyeUxvY2soKSkKICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
TG9ja2VyIGxvY2tlciB7IEFkb3B0TG9ja1RhZyB7IH0sIG1fc291cmNlc0xvY2sgfTsKIAogICAg
ICAgICBtX3JlbmRlclNvdXJjZXMgPSBXVEZNb3ZlKG1fc291cmNlc0NvcHkpOwogICAgICAgICBt
X3Nob3VsZFVwZGF0ZVJlbmRlclNvdXJjZXMgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1Jl
bmRlcmVyVW5pdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2Ev
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0LmgKaW5kZXggZTVlZmRmMDMyNmIyYzY4
Nzk1ZmI3ZmU2ZDU3ZWM3NWZhMjBjMmFlNi4uZmFjYjc3MDQ3OTg1ZTM0OWFkMGI5ZjJhNGZlYzE0
NGVmMWNjMzRlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vY29jb2EvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvQXVkaW9NZWRpYVN0cmVhbVRyYWNr
UmVuZGVyZXJVbml0LmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KQogCiAjaW5jbHVkZSAiQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQu
aCIKKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZExvY2suaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5o
PgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgpA
QCAtNjUsMTEgKzY2LDExIEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGNyZWF0ZUF1ZGlvVW5pdElm
TmVlZGVkKCk7CiAKLSAgICBIYXNoU2V0PFJlZjxBdWRpb1NhbXBsZURhdGFTb3VyY2U+PiBtX3Nv
dXJjZXM7CisgICAgSGFzaFNldDxSZWY8QXVkaW9TYW1wbGVEYXRhU291cmNlPj4gbV9zb3VyY2Vz
IFdURl9HVUFSREVEX0JZX0xPQ0sobV9zb3VyY2VzTG9jayk7CiAgICAgVmVjdG9yPFJlZjxBdWRp
b1NhbXBsZURhdGFTb3VyY2U+PiBtX3NvdXJjZXNDb3B5OwogICAgIFZlY3RvcjxSZWY8QXVkaW9T
YW1wbGVEYXRhU291cmNlPj4gbV9yZW5kZXJTb3VyY2VzOwogICAgIGJvb2wgbV9zaG91bGRVcGRh
dGVSZW5kZXJTb3VyY2VzIHsgZmFsc2UgfTsKLSAgICBMb2NrIG1fc291cmNlc0xvY2s7CisgICAg
Q2hlY2tlZExvY2sgbV9zb3VyY2VzTG9jazsKICAgICBVbmlxdWVSZWY8QXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQ+IG1faW50ZXJuYWxVbml0OwogfTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNz
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVj
cy5jcHAKaW5kZXggZDViNGQ0NjVmNjIxY2EwODYzYWM5MjAxM2ZmMDM5YWM4OGJkZGNmYS4uZjQ0
YzQxODkyYjM4ZjViYWQzMTk2ZDY5YTFjMTMyNGNlOTNiNWVjMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwCkBA
IC0yNzAsNyArMjcwLDEyIEBAIExpYldlYlJUQ0NvZGVjczo6RGVjb2RlciogTGliV2ViUlRDQ29k
ZWNzOjpjcmVhdGVEZWNvZGVyKFR5cGUgdHlwZSkKIAogaW50MzJfdCBMaWJXZWJSVENDb2RlY3M6
OnJlbGVhc2VEZWNvZGVyKERlY29kZXImIGRlY29kZXIpCiB7Ci0gICAgQVNTRVJUKCFkZWNvZGVy
LmRlY29kZWRJbWFnZUNhbGxiYWNrKTsKKyNpZiBBU1NFUlRfRU5BQkxFRAorICAgIHsKKyAgICAg
ICAgTG9ja2VyIGxvY2tlciB7IGRlY29kZXIuZGVjb2RlZEltYWdlQ2FsbGJhY2tMb2NrIH07Cisg
ICAgICAgIEFTU0VSVCghZGVjb2Rlci5kZWNvZGVkSW1hZ2VDYWxsYmFjayk7CisgICAgfQorI2Vu
ZGlmCiAgICAgZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb25BbmREaXNwYXRjaFRvVGhyZWFkKFt0
aGlzLCBkZWNvZGVySWRlbnRpZmllciA9IGRlY29kZXIuaWRlbnRpZmllcl0gewogICAgICAgICBB
U1NFUlQobV9kZWNvZGVycy5jb250YWlucyhkZWNvZGVySWRlbnRpZmllcikpOwogICAgICAgICBp
ZiAoYXV0byBkZWNvZGVyID0gbV9kZWNvZGVycy50YWtlKGRlY29kZXJJZGVudGlmaWVyKSkgewpA
QCAtMjk4LDcgKzMwMyw3IEBAIGludDMyX3QgTGliV2ViUlRDQ29kZWNzOjpkZWNvZGVGcmFtZShE
ZWNvZGVyJiBkZWNvZGVyLCB1aW50MzJfdCB0aW1lU3RhbXAsIGNvbnN0CiAKIHZvaWQgTGliV2Vi
UlRDQ29kZWNzOjpyZWdpc3RlckRlY29kZUZyYW1lQ2FsbGJhY2soRGVjb2RlciYgZGVjb2Rlciwg
dm9pZCogZGVjb2RlZEltYWdlQ2FsbGJhY2spCiB7Ci0gICAgTG9ja0hvbGRlciBob2xkZXIoZGVj
b2Rlci5kZWNvZGVkSW1hZ2VDYWxsYmFja0xvY2spOworICAgIExvY2tlciBsb2NrZXIgeyBkZWNv
ZGVyLmRlY29kZWRJbWFnZUNhbGxiYWNrTG9jayB9OwogICAgIGRlY29kZXIuZGVjb2RlZEltYWdl
Q2FsbGJhY2sgPSBkZWNvZGVkSW1hZ2VDYWxsYmFjazsKIH0KIApAQCAtMzE5LDEwICszMjQsMTEg
QEAgdm9pZCBMaWJXZWJSVENDb2RlY3M6OmNvbXBsZXRlZERlY29kaW5nKFJUQ0RlY29kZXJJZGVu
dGlmaWVyIGRlY29kZXJJZGVudGlmaWVyLAogICAgIGlmICghZGVjb2RlcikKICAgICAgICAgcmV0
dXJuOwogCi0gICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhkZWNvZGVyLT5kZWNvZGVkSW1h
Z2VDYWxsYmFja0xvY2spOwotICAgIGlmICghbG9ja2VyKQorICAgIGlmICghZGVjb2Rlci0+ZGVj
b2RlZEltYWdlQ2FsbGJhY2tMb2NrLnRyeUxvY2soKSkKICAgICAgICAgcmV0dXJuOwogCisgICAg
TG9ja2VyIGxvY2tlciB7IEFkb3B0TG9ja1RhZyB7IH0sIGRlY29kZXItPmRlY29kZWRJbWFnZUNh
bGxiYWNrTG9jayB9OworCiAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGVkSW1hZ2VDYWxsYmFjaykK
ICAgICAgICAgcmV0dXJuOwogCkBAIC0zOTMsNyArMzk5LDEyIEBAIExpYldlYlJUQ0NvZGVjczo6
RW5jb2RlciogTGliV2ViUlRDQ29kZWNzOjpjcmVhdGVFbmNvZGVyKFR5cGUgdHlwZSwgY29uc3Qg
c3RkOjptCiAKIGludDMyX3QgTGliV2ViUlRDQ29kZWNzOjpyZWxlYXNlRW5jb2RlcihFbmNvZGVy
JiBlbmNvZGVyKQogewotICAgIEFTU0VSVCghZW5jb2Rlci5lbmNvZGVkSW1hZ2VDYWxsYmFjayk7
CisjaWYgQVNTRVJUX0VOQUJMRUQKKyAgICB7CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBlbmNv
ZGVyLmVuY29kZWRJbWFnZUNhbGxiYWNrTG9jayB9OworICAgICAgICBBU1NFUlQoIWVuY29kZXIu
ZW5jb2RlZEltYWdlQ2FsbGJhY2spOworICAgIH0KKyNlbmRpZgogICAgIGVuc3VyZUdQVVByb2Nl
c3NDb25uZWN0aW9uQW5kRGlzcGF0Y2hUb1RocmVhZChbdGhpcywgZW5jb2RlcklkZW50aWZpZXIg
PSBlbmNvZGVyLmlkZW50aWZpZXJdIHsKICAgICAgICAgQVNTRVJUKG1fZW5jb2RlcnMuY29udGFp
bnMoZW5jb2RlcklkZW50aWZpZXIpKTsKICAgICAgICAgYXV0byBlbmNvZGVyID0gbV9lbmNvZGVy
cy50YWtlKGVuY29kZXJJZGVudGlmaWVyKTsKQEAgLTQ1NCw3ICs0NjUsNyBAQCBpbnQzMl90IExp
YldlYlJUQ0NvZGVjczo6ZW5jb2RlRnJhbWUoRW5jb2RlciYgZW5jb2RlciwgY29uc3Qgd2VicnRj
OjpWaWRlb0ZyYW1lJgogCiB2b2lkIExpYldlYlJUQ0NvZGVjczo6cmVnaXN0ZXJFbmNvZGVGcmFt
ZUNhbGxiYWNrKEVuY29kZXImIGVuY29kZXIsIHZvaWQqIGVuY29kZWRJbWFnZUNhbGxiYWNrKQog
ewotICAgIExvY2tIb2xkZXIgaG9sZGVyKGVuY29kZXIuZW5jb2RlZEltYWdlQ2FsbGJhY2tMb2Nr
KTsKKyAgICBMb2NrZXIgbG9ja2VyIHsgZW5jb2Rlci5lbmNvZGVkSW1hZ2VDYWxsYmFja0xvY2sg
fTsKIAogICAgIGVuY29kZXIuZW5jb2RlZEltYWdlQ2FsbGJhY2sgPSBlbmNvZGVkSW1hZ2VDYWxs
YmFjazsKIH0KQEAgLTQ4MSwxMCArNDkyLDExIEBAIHZvaWQgTGliV2ViUlRDQ29kZWNzOjpjb21w
bGV0ZWRFbmNvZGluZyhSVENFbmNvZGVySWRlbnRpZmllciBpZGVudGlmaWVyLCBJUEM6OkRhCiAg
ICAgaWYgKCFlbmNvZGVyKQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvIGxvY2tlciA9IHRy
eUhvbGRMb2NrKGVuY29kZXItPmVuY29kZWRJbWFnZUNhbGxiYWNrTG9jayk7Ci0gICAgaWYgKCFs
b2NrZXIpCisgICAgaWYgKCFlbmNvZGVyLT5lbmNvZGVkSW1hZ2VDYWxsYmFja0xvY2sudHJ5TG9j
aygpKQogICAgICAgICByZXR1cm47CiAKKyAgICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFn
IHsgfSwgZW5jb2Rlci0+ZW5jb2RlZEltYWdlQ2FsbGJhY2tMb2NrIH07CisKICAgICBpZiAoIWVu
Y29kZXItPmVuY29kZWRJbWFnZUNhbGxiYWNrKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmgK
aW5kZXggMWNkOGY0ZWU2MTE4ZDhkNDU2ZmE2OWFlZTA2MjJiZjc2NTc1NjU4ZS4uNGEwZTY0YjE4
NGU3MTZlM2UwMTExOTIyNDk3ZjZmOTExMjM0NDcwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmgKQEAgLTc0LDggKzc0
LDggQEAgcHVibGljOgogICAgIHB1YmxpYzoKICAgICAgICAgUlRDRGVjb2RlcklkZW50aWZpZXIg
aWRlbnRpZmllcjsKICAgICAgICAgVHlwZSB0eXBlOwotICAgICAgICB2b2lkKiBkZWNvZGVkSW1h
Z2VDYWxsYmFjayB7IG51bGxwdHIgfTsKLSAgICAgICAgTG9jayBkZWNvZGVkSW1hZ2VDYWxsYmFj
a0xvY2s7CisgICAgICAgIHZvaWQqIGRlY29kZWRJbWFnZUNhbGxiYWNrIFdURl9HVUFSREVEX0JZ
X0xPQ0soZGVjb2RlZEltYWdlQ2FsbGJhY2tMb2NrKSB7IG51bGxwdHIgfTsKKyAgICAgICAgQ2hl
Y2tlZExvY2sgZGVjb2RlZEltYWdlQ2FsbGJhY2tMb2NrOwogICAgICAgICBib29sIGhhc0Vycm9y
IHsgZmFsc2UgfTsKICAgICAgICAgUmVmUHRyPElQQzo6Q29ubmVjdGlvbj4gY29ubmVjdGlvbjsK
ICAgICB9OwpAQCAtMTAwLDggKzEwMCw4IEBAIHB1YmxpYzoKICAgICAgICAgd2VicnRjOjpWaWRl
b0NvZGVjVHlwZSBjb2RlY1R5cGUgeyB3ZWJydGM6OmtWaWRlb0NvZGVjR2VuZXJpYyB9OwogICAg
ICAgICBWZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPj4gcGFyYW1ldGVyczsKICAgICAg
ICAgT3B0aW9uYWw8RW5jb2RlckluaXRpYWxpemF0aW9uRGF0YT4gaW5pdGlhbGl6YXRpb25EYXRh
OwotICAgICAgICB2b2lkKiBlbmNvZGVkSW1hZ2VDYWxsYmFjayB7IG51bGxwdHIgfTsKLSAgICAg
ICAgTG9jayBlbmNvZGVkSW1hZ2VDYWxsYmFja0xvY2s7CisgICAgICAgIHZvaWQqIGVuY29kZWRJ
bWFnZUNhbGxiYWNrIFdURl9HVUFSREVEX0JZX0xPQ0soZW5jb2RlZEltYWdlQ2FsbGJhY2tMb2Nr
KSB7IG51bGxwdHIgfTsKKyAgICAgICAgQ2hlY2tlZExvY2sgZW5jb2RlZEltYWdlQ2FsbGJhY2tM
b2NrOwogICAgICAgICBSZWZQdHI8SVBDOjpDb25uZWN0aW9uPiBjb25uZWN0aW9uOwogICAgIH07
CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429259</attachid>
            <date>2021-05-20 19:36:18 -0700</date>
            <delta_ts>2021-05-21 08:08:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226056-20210520193617.patch</filename>
            <type>text/plain</type>
            <size>27143</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3ODQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGEwNmUxMDQ5YTQ2NjhmNTBmZDJhMGE4
ZTI5NjBkNzZkM2NjOWM0MTMuLjYwYjJmM2Y4ZWIxODYwMDgyMjcwOWFlMTg0N2QyY2FmNGI1MGE0
YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjEtMDUtMjAgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgQ2hlY2tlZExvY2sgbW9yZSBpbiBjYXNlcyB3aGVy
ZSB3ZSB0cnktbG9jaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjI2MDU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVXNlIENoZWNrZWRMb2NrIG1vcmUgaW4gY2FzZXMgd2hlcmUgd2UgdHJ5LWxvY2sgdG8g
YmVuZWZpdCBmcm9tIENsYW5nCisgICAgICAgIFRocmVhZCBTYWZldHkgQW5hbHlzaXMuCisKKyAg
ICAgICAgKiB3dGYvTG9nZ2VyLmNwcDoKKyAgICAgICAgKiB3dGYvTG9nZ2VyLmg6CisgICAgICAg
IChXVEY6OkxvZ2dlcjo6YWRkT2JzZXJ2ZXIpOgorICAgICAgICAoV1RGOjpMb2dnZXI6OnJlbW92
ZU9ic2VydmVyKToKKyAgICAgICAgKFdURjo6TG9nZ2VyOjpsb2cpOgorICAgICAgICAoV1RGOjpM
b2dnZXI6OmxvZ1ZlcmJvc2UpOgorICAgICAgICAoV1RGOjpMb2dnZXI6OldURl9SRVRVUk5TX0xP
Q0spOgorCiAyMDIxLTA1LTIwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAg
ICAgICAgQWRkIG1pc3NpbmcgbG9ja3MgaW4gTGFuZ3VhZ2UuY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGMz
OTBiYTRmODRlZDM0YWE3NGU5MjRjM2RmNDQ0YjE0ZDQ3N2JiNi4uOTM0NzYzZDIxNDVmYWQ4OTU2
YTdkMzAwODBiYmIxODdiOTc1MzYzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIx
LTA1LTIwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIENo
ZWNrZWRMb2NrIG1vcmUgaW4gY2FzZXMgd2hlcmUgd2UgdHJ5LWxvY2sKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjA1NgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBDaGVja2VkTG9jayBtb3JlIGlu
IGNhc2VzIHdoZXJlIHdlIHRyeS1sb2NrIHRvIGJlbmVmaXQgZnJvbSBDbGFuZworICAgICAgICBU
aHJlYWQgU2FmZXR5IEFuYWx5c2lzLgorCisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTcGVl
Y2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjphdWRpb1NhbXBsZXNBdmFpbGFibGUpOgor
ICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUlt
cGwuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGluZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1BhcmFtVGltZWxpbmU6OnNldFZhbHVlQXRUaW1lKToK
KyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvUGFyYW1UaW1lbGluZTo6bGluZWFyUmFtcFRvVmFsdWVB
dFRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9QYXJhbVRpbWVsaW5lOjpleHBvbmVudGlh
bFJhbXBUb1ZhbHVlQXRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvUGFyYW1UaW1lbGlu
ZTo6c2V0VGFyZ2V0QXRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvUGFyYW1UaW1lbGlu
ZTo6c2V0VmFsdWVDdXJ2ZUF0VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1BhcmFtVGlt
ZWxpbmU6OmNhbmNlbFNjaGVkdWxlZFZhbHVlcyk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Bh
cmFtVGltZWxpbmU6OmNhbmNlbEFuZEhvbGRBdFRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6QXVk
aW9QYXJhbVRpbWVsaW5lOjp2YWx1ZUZvckNvbnRleHRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6
OkF1ZGlvUGFyYW1UaW1lbGluZTo6dmFsdWVzRm9yRnJhbWVSYW5nZSk6CisgICAgICAgIChXZWJD
b3JlOjpBdWRpb1BhcmFtVGltZWxpbmU6Omhhc1ZhbHVlcyBjb25zdCk6CisgICAgICAgICogTW9k
dWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtVGltZWxpbmUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9h
dWRpby9BdWRpb0Rlc3RpbmF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0
aW9uOjpXVEZfR1VBUkRFRF9CWV9MT0NLKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvRGVzdGlu
YXRpb246OkF1ZGlvRGVzdGluYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5h
dGlvbjo6Y2xlYXJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9u
OjpjYWxsUmVuZGVyQ2FsbGJhY2spOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2Nv
Y29hL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6OmFkZFNvdXJjZSk6CisgICAg
ICAgIChXZWJDb3JlOjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQ6OnJlbW92ZVNv
dXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVu
aXQ6OnJlbmRlcik6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvQXVkaW9N
ZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0Lmg6CisKIDIwMjEtMDUtMjAgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgbWlzc2luZyBsb2NrIGluIEFYSXNv
bGF0ZWRUcmVlOjp0cmVlRm9ySUQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAxN2FjMWVhZWVlMzRmYzBjMTgzZWZi
OWZmZDc2NDg3NDM0YzJiZGU4Li5iZmI4ZmRlMjEzMGM5YWM3MTUxM2QyZjBmYjYyODZiMDNlYjBk
MDFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIxLTA1LTIwICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIENoZWNrZWRMb2NrIG1vcmUgaW4gY2Fz
ZXMgd2hlcmUgd2UgdHJ5LWxvY2sKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyNjA1NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFVzZSBDaGVja2VkTG9jayBtb3JlIGluIGNhc2VzIHdoZXJlIHdlIHRyeS1s
b2NrIHRvIGJlbmVmaXQgZnJvbSBDbGFuZworICAgICAgICBUaHJlYWQgU2FmZXR5IEFuYWx5c2lz
LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHA6
CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ0NvZGVjczo6cmVsZWFzZURlY29kZXIpOgorICAg
ICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6OnJlZ2lzdGVyRGVjb2RlRnJhbWVDYWxsYmFj
ayk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ0NvZGVjczo6Y29tcGxldGVkRGVjb2Rpbmcp
OgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6OnJlbGVhc2VFbmNvZGVyKToKKyAg
ICAgICAgKFdlYktpdDo6TGliV2ViUlRDQ29kZWNzOjpyZWdpc3RlckVuY29kZUZyYW1lQ2FsbGJh
Y2spOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6OmNvbXBsZXRlZEVuY29kaW5n
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmg6Cisg
ICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ0NvZGVjczo6RGVjb2Rlcjo6V1RGX0dVQVJERURfQllf
TE9DSyk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ0NvZGVjczo6RW5jb2Rlcjo6V1RGX0dV
QVJERURfQllfTE9DSyk6CisKIDIwMjEtMDUtMjAgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0
ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI3NzYw
Ni4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0xvZ2dlci5jcHAgYi9Tb3VyY2UvV1RGL3d0
Zi9Mb2dnZXIuY3BwCmluZGV4IGM4ZDg2YzA0NWEzNWJiZmViMzEyNDczZmVlMzhjOWFkMjYyOWI0
YTYuLmUwYjQ1MDY4OGZkNzgzOWZmNGNiYjI1ODk5N2FkOGM0ZjI1NTU3NTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL0xvZ2dlci5jcHAKKysrIGIvU291cmNlL1dURi93dGYvTG9nZ2VyLmNw
cApAQCAtMzIsNyArMzIsNyBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAotTG9jayBsb2dnZXJPYnNl
cnZlckxvY2s7CitDaGVja2VkTG9jayBsb2dnZXJPYnNlcnZlckxvY2s7CiAKIFN0cmluZyBMb2dn
ZXI6OkxvZ1NpdGVJZGVudGlmaWVyOjp0b1N0cmluZygpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9Mb2dnZXIuaCBiL1NvdXJjZS9XVEYvd3RmL0xvZ2dlci5oCmluZGV4IDkx
NTYxMWUwMzIzYTU1MWZmZDUzZjAwNWJlMzkyNGUwNmViNmFjMmIuLmU5OWQ0OWJmMmU5ZDlhZDJh
NmIzYjYxODBkY2JkOThjZDc4NWZhNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0xvZ2dl
ci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0xvZ2dlci5oCkBAIC0yNSw3ICsyNSw3IEBACiAKICNw
cmFnbWEgb25jZQogCi0jaW5jbHVkZSA8d3RmL0xvY2suaD4KKyNpbmNsdWRlIDx3dGYvQ2hlY2tl
ZExvY2suaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKQEAgLTExMiw3ICsxMTIsNyBAQCBzdHJ1Y3Qg
Q29uc29sZUxvZ1ZhbHVlPEFyZ3VtZW50LCBmYWxzZT4gewogICAgIH0KIH07CiAKLVdURl9FWFBP
UlRfUFJJVkFURSBleHRlcm4gTG9jayBsb2dnZXJPYnNlcnZlckxvY2s7CitXVEZfRVhQT1JUX1BS
SVZBVEUgZXh0ZXJuIENoZWNrZWRMb2NrIGxvZ2dlck9ic2VydmVyTG9jazsKIAogY2xhc3MgTG9n
Z2VyIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPExvZ2dlcj4gewogICAgIFdURl9NQUtF
X05PTkNPUFlBQkxFKExvZ2dlcik7CkBAIC0yODUsMTIgKzI4NSwxMiBAQCBwdWJsaWM6CiAKICAg
ICBzdGF0aWMgaW5saW5lIHZvaWQgYWRkT2JzZXJ2ZXIoT2JzZXJ2ZXImIG9ic2VydmVyKQogICAg
IHsKLSAgICAgICAgYXV0byBsb2NrID0gaG9sZExvY2sob2JzZXJ2ZXJMb2NrKCkpOworICAgICAg
ICBMb2NrZXIgbG9ja2VyIHsgb2JzZXJ2ZXJMb2NrKCkgfTsKICAgICAgICAgb2JzZXJ2ZXJzKCku
YXBwZW5kKG9ic2VydmVyKTsKICAgICB9CiAgICAgc3RhdGljIGlubGluZSB2b2lkIHJlbW92ZU9i
c2VydmVyKE9ic2VydmVyJiBvYnNlcnZlcikKICAgICB7Ci0gICAgICAgIGF1dG8gbG9jayA9IGhv
bGRMb2NrKG9ic2VydmVyTG9jaygpKTsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IG9ic2VydmVy
TG9jaygpIH07CiAgICAgICAgIG9ic2VydmVycygpLnJlbW92ZUZpcnN0TWF0Y2hpbmcoWyZvYnNl
cnZlcl0oYXV0byBhbk9ic2VydmVyKSB7CiAgICAgICAgICAgICByZXR1cm4gJmFuT2JzZXJ2ZXIu
Z2V0KCkgPT0gJm9ic2VydmVyOwogICAgICAgICB9KTsKQEAgLTMyMiwxMCArMzIyLDEwIEBAIHBy
aXZhdGU6CiAgICAgICAgIGlmIChjaGFubmVsLnN0YXRlID09IFdURkxvZ0NoYW5uZWxTdGF0ZTo6
T2ZmIHx8IGxldmVsID4gY2hhbm5lbC5sZXZlbCkKICAgICAgICAgICAgIHJldHVybjsKIAotICAg
ICAgICBhdXRvIGxvY2sgPSB0cnlIb2xkTG9jayhvYnNlcnZlckxvY2soKSk7Ci0gICAgICAgIGlm
ICghbG9jaykKKyAgICAgICAgaWYgKCFvYnNlcnZlckxvY2soKS50cnlMb2NrKCkpCiAgICAgICAg
ICAgICByZXR1cm47CiAKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9ja1RhZyB7IH0s
IG9ic2VydmVyTG9jaygpIH07CiAgICAgICAgIGZvciAoT2JzZXJ2ZXImIG9ic2VydmVyIDogb2Jz
ZXJ2ZXJzKCkpCiAgICAgICAgICAgICBvYnNlcnZlci5kaWRMb2dNZXNzYWdlKGNoYW5uZWwsIGxl
dmVsLCB7IENvbnNvbGVMb2dWYWx1ZTxBcmd1bWVudD46OnRvVmFsdWUoYXJndW1lbnRzKS4uLiB9
KTsKICAgICB9CkBAIC0zNTMsMTcgKzM1MywxNyBAQCBwcml2YXRlOgogICAgICAgICBpZiAoY2hh
bm5lbC5zdGF0ZSA9PSBXVEZMb2dDaGFubmVsU3RhdGU6Ok9mZiB8fCBsZXZlbCA+IGNoYW5uZWwu
bGV2ZWwpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgYXV0byBsb2NrID0gdHJ5SG9s
ZExvY2sob2JzZXJ2ZXJMb2NrKCkpOwotICAgICAgICBpZiAoIWxvY2spCisgICAgICAgIGlmICgh
b2JzZXJ2ZXJMb2NrKCkudHJ5TG9jaygpKQogICAgICAgICAgICAgcmV0dXJuOwogCisgICAgICAg
IExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2tUYWcgeyB9LCBvYnNlcnZlckxvY2soKSB9OwogICAg
ICAgICBmb3IgKE9ic2VydmVyJiBvYnNlcnZlciA6IG9ic2VydmVycygpKQogICAgICAgICAgICAg
b2JzZXJ2ZXIuZGlkTG9nTWVzc2FnZShjaGFubmVsLCBsZXZlbCwgeyBDb25zb2xlTG9nVmFsdWU8
QXJndW1lbnQ+Ojp0b1ZhbHVlKGFyZ3VtZW50cykuLi4gfSk7CiAgICAgfQogCi0gICAgV1RGX0VY
UE9SVF9QUklWQVRFIHN0YXRpYyBWZWN0b3I8c3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxPYnNlcnZl
cj4+JiBvYnNlcnZlcnMoKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFZlY3Rvcjxz
dGQ6OnJlZmVyZW5jZV93cmFwcGVyPE9ic2VydmVyPj4mIG9ic2VydmVycygpIFdURl9SRVFVSVJF
U19MT0NLKG9ic2VydmVyTG9jaygpKTsKIAotICAgIHN0YXRpYyBMb2NrJiBvYnNlcnZlckxvY2so
KQorICAgIHN0YXRpYyBDaGVja2VkTG9jayYgb2JzZXJ2ZXJMb2NrKCkgV1RGX1JFVFVSTlNfTE9D
Syhsb2dnZXJPYnNlcnZlckxvY2spCiAgICAgewogICAgICAgICByZXR1cm4gbG9nZ2VyT2JzZXJ2
ZXJMb2NrOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAKaW5k
ZXggNjFiMjZmMWY5NWJhMDAzMzFiMzkwYzEwZjRmMDlhMjAwOTlkZDQzNS4uMDNjOTVkYTUzMzhh
ODJjYzcyYjQxMmQ5MDA1NDk1YjhhMmExZDk4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJl
U291cmNlSW1wbC5jcHAKQEAgLTEwNSw5ICsxMDUsMTAgQEAgdm9pZCBTcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2VJbXBsOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1l
JgogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBpZiAo
YXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhtX2RhdGFTb3VyY2VMb2NrKSkKKyAgICAgICAgaWYg
KG1fZGF0YVNvdXJjZUxvY2sudHJ5TG9jaygpKSB7CiAgICAgICAgICAgICBtX2RhdGFTb3VyY2Ug
PSBXVEZNb3ZlKGRhdGFTb3VyY2UpOwotICAgICAgICBlbHNlCisgICAgICAgICAgICBtX2RhdGFT
b3VyY2VMb2NrLnVubG9jaygpOworICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKQEAgLTExOCw3ICsxMTksNyBAQCB2b2lkIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVy
ZVNvdXJjZUltcGw6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmCiAKICAg
ICAgICAgYXV0byBkYXRhID0gV2ViQXVkaW9CdWZmZXJMaXN0IHsgYXVkaW9EZXNjcmlwdGlvbiwg
c3RhdGljX2Nhc3Q8dWludDMyX3Q+KHNhbXBsZUNvdW50KSB9OwogICAgICAgICB7Ci0gICAgICAg
ICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fZGF0YVNvdXJjZUxvY2spOworICAgICAgICAg
ICAgTG9ja2VyIGxvY2tlciB7IG1fZGF0YVNvdXJjZUxvY2sgfTsKICAgICAgICAgICAgIG1fZGF0
YVNvdXJjZS0+cHVsbFNhbXBsZXMoKmRhdGEubGlzdCgpLCBzYW1wbGVDb3VudCwgdGltZS50aW1l
VmFsdWUoKSwgMCwgQXVkaW9TYW1wbGVEYXRhU291cmNlOjpDb3B5KTsKICAgICAgICAgfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2VJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVl
Y2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmgKaW5kZXggYmM1YzAyYTE4OTM0NzE0Yzc3
MzkzNTg0ZTIzYzczYjMwMWViODc0Zi4uZjhmYmNhYjQyZjEwNjhmOTEzZmEzOGU4ZTg1YmQyMjQw
ODJkZmU5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuaApAQCAtMjksNiAr
MjksNyBAQAogCiAjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgogI2luY2x1ZGUgIlNw
ZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbkNsaWVudElkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDx3
dGYvQ2hlY2tlZExvY2suaD4KIAogI2lmIFBMQVRGT1JNKENPQ09BKQogI2luY2x1ZGUgIkF1ZGlv
U2FtcGxlRGF0YVNvdXJjZS5oIgpAQCAtNzIsNyArNzMsNyBAQCBwcml2YXRlOgogCiAjaWYgUExB
VEZPUk0oQ09DT0EpCiAgICAgUmVmUHRyPEF1ZGlvU2FtcGxlRGF0YVNvdXJjZT4gbV9kYXRhU291
cmNlOwotICAgIExvY2sgbV9kYXRhU291cmNlTG9jazsKKyAgICBDaGVja2VkTG9jayBtX2RhdGFT
b3VyY2VMb2NrOwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGluZS5jcHAKaW5kZXggNzJlNDgwMGM4ODczN2M2
NjhjMWQ2NjllOGUwMThlMTNhYjA3ZTlmYS4uMDQwNmVhYjc3MTBlOGVkOTdkZTg5ODNhMjAwZTUx
NTZjMjI5ZWFhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb1BhcmFtVGltZWxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9QYXJhbVRpbWVsaW5lLmNwcApAQCAtNzMsMTMgKzczLDEzIEBAIHN0YXRpYyBib29s
IGhhc1NldFRhcmdldENvbnZlcmdlZChmbG9hdCB2YWx1ZSwgZmxvYXQgdGFyZ2V0LCBTZWNvbmRz
IGN1cnJlbnRUaW1lCiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlvUGFyYW1UaW1lbGluZTo6c2V0
VmFsdWVBdFRpbWUoZmxvYXQgdmFsdWUsIFNlY29uZHMgdGltZSkKIHsKLSAgICBhdXRvIGxvY2tl
ciA9IGhvbGRMb2NrKG1fZXZlbnRzTG9jayk7CisgICAgTG9ja2VyIGxvY2tlciB7IG1fZXZlbnRz
TG9jayB9OwogICAgIHJldHVybiBpbnNlcnRFdmVudChQYXJhbUV2ZW50OjpjcmVhdGVTZXRWYWx1
ZUV2ZW50KHZhbHVlLCB0aW1lKSk7CiB9CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlvUGFyYW1U
aW1lbGluZTo6bGluZWFyUmFtcFRvVmFsdWVBdFRpbWUoZmxvYXQgdGFyZ2V0VmFsdWUsIFNlY29u
ZHMgZW5kVGltZSwgZmxvYXQgY3VycmVudFZhbHVlLCBTZWNvbmRzIGN1cnJlbnRUaW1lKQogewot
ICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9ldmVudHNMb2NrKTsKKyAgICBMb2NrZXIgbG9j
a2VyIHsgbV9ldmVudHNMb2NrIH07CiAKICAgICAvLyBMaW5lYXIgcmFtcCBldmVudHMgbmVlZCBh
IHByZWNlZGluZyBldmVudCBzbyB0aGF0IHRoZXkgaGF2ZSBhbiBpbml0aWFsIHZhbHVlLgogICAg
IGlmIChtX2V2ZW50cy5pc0VtcHR5KCkpCkBAIC05MCw3ICs5MCw3IEBAIEV4Y2VwdGlvbk9yPHZv
aWQ+IEF1ZGlvUGFyYW1UaW1lbGluZTo6bGluZWFyUmFtcFRvVmFsdWVBdFRpbWUoZmxvYXQgdGFy
Z2V0VmFsdWUsCiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlvUGFyYW1UaW1lbGluZTo6ZXhwb25l
bnRpYWxSYW1wVG9WYWx1ZUF0VGltZShmbG9hdCB0YXJnZXRWYWx1ZSwgU2Vjb25kcyBlbmRUaW1l
LCBmbG9hdCBjdXJyZW50VmFsdWUsIFNlY29uZHMgY3VycmVudFRpbWUpCiB7Ci0gICAgYXV0byBs
b2NrZXIgPSBob2xkTG9jayhtX2V2ZW50c0xvY2spOworICAgIExvY2tlciBsb2NrZXIgeyBtX2V2
ZW50c0xvY2sgfTsKIAogICAgIC8vIEV4cG9uZW50aWFsIHJhbXAgZXZlbnRzIG5lZWQgYSBwcmVj
ZWRpbmcgZXZlbnQgc28gdGhhdCB0aGV5IGhhdmUgYW4gaW5pdGlhbCB2YWx1ZS4KICAgICBpZiAo
bV9ldmVudHMuaXNFbXB0eSgpKQpAQCAtMTAxLDcgKzEwMSw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+
IEF1ZGlvUGFyYW1UaW1lbGluZTo6ZXhwb25lbnRpYWxSYW1wVG9WYWx1ZUF0VGltZShmbG9hdCB0
YXJnZXRWCiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlvUGFyYW1UaW1lbGluZTo6c2V0VGFyZ2V0
QXRUaW1lKGZsb2F0IHRhcmdldCwgU2Vjb25kcyB0aW1lLCBmbG9hdCB0aW1lQ29uc3RhbnQpCiB7
Ci0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2V2ZW50c0xvY2spOworICAgIExvY2tlciBs
b2NrZXIgeyBtX2V2ZW50c0xvY2sgfTsKICAgICAvLyBJZiB0aW1lQ29uc3RhbnQgaXMgMCwgd2Ug
aW5zdGFudGx5IGp1bXAgdG8gdGhlIHRhcmdldCB2YWx1ZSwgc28gaW5zZXJ0IGEgU2V0VmFsdWVF
dmVudCBpbnN0ZWFkIG9mIFNldFRhcmdldEV2ZW50LgogICAgIGlmICghdGltZUNvbnN0YW50KQog
ICAgICAgICByZXR1cm4gaW5zZXJ0RXZlbnQoUGFyYW1FdmVudDo6Y3JlYXRlU2V0VmFsdWVFdmVu
dCh0YXJnZXQsIHRpbWUpKTsKQEAgLTExMCw3ICsxMTAsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBB
dWRpb1BhcmFtVGltZWxpbmU6OnNldFRhcmdldEF0VGltZShmbG9hdCB0YXJnZXQsIFNlY29uZHMg
dGltZQogCiBFeGNlcHRpb25Pcjx2b2lkPiBBdWRpb1BhcmFtVGltZWxpbmU6OnNldFZhbHVlQ3Vy
dmVBdFRpbWUoVmVjdG9yPGZsb2F0PiYmIGN1cnZlLCBTZWNvbmRzIHRpbWUsIFNlY29uZHMgZHVy
YXRpb24pCiB7Ci0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2V2ZW50c0xvY2spOworICAg
IExvY2tlciBsb2NrZXIgeyBtX2V2ZW50c0xvY2sgfTsKIAogICAgIGZsb2F0IGN1cnZlRW5kVmFs
dWUgPSBjdXJ2ZS5sYXN0KCk7CiAgICAgYXV0byByZXN1bHQgPSBpbnNlcnRFdmVudChQYXJhbUV2
ZW50OjpjcmVhdGVTZXRWYWx1ZUN1cnZlRXZlbnQoV1RGTW92ZShjdXJ2ZSksIHRpbWUsIGR1cmF0
aW9uKSk7CkBAIC0xODYsNyArMTg2LDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQXVkaW9QYXJhbVRp
bWVsaW5lOjppbnNlcnRFdmVudChQYXJhbUV2ZW50JiYgZXZlbnQpCiAKIHZvaWQgQXVkaW9QYXJh
bVRpbWVsaW5lOjpjYW5jZWxTY2hlZHVsZWRWYWx1ZXMoU2Vjb25kcyBjYW5jZWxUaW1lKQogewot
ICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9ldmVudHNMb2NrKTsKKyAgICBMb2NrZXIgbG9j
a2VyIHsgbV9ldmVudHNMb2NrIH07CiAKICAgICAvLyBSZW1vdmUgYWxsIGV2ZW50cyB3aG9zZSBz
dGFydCB0aW1lIGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgY2FuY2VsIHRpbWUuCiAg
ICAgLy8gQWxzbyBoYW5kbGUgdGhlIHNwZWNpYWwgY2FzZSB3aGVyZSB0aGUgY2FuY2VsIHRpbWUg
bGllcyBpbiB0aGUgbWlkZGxlIG9mIGEKQEAgLTIxNSw3ICsyMTUsNyBAQCB2b2lkIEF1ZGlvUGFy
YW1UaW1lbGluZTo6Y2FuY2VsU2NoZWR1bGVkVmFsdWVzKFNlY29uZHMgY2FuY2VsVGltZSkKIAog
RXhjZXB0aW9uT3I8dm9pZD4gQXVkaW9QYXJhbVRpbWVsaW5lOjpjYW5jZWxBbmRIb2xkQXRUaW1l
KFNlY29uZHMgY2FuY2VsVGltZSkKIHsKLSAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fZXZl
bnRzTG9jayk7CisgICAgTG9ja2VyIGxvY2tlciB7IG1fZXZlbnRzTG9jayB9OwogCiAgICAgLy8g
RmluZCB0aGUgZmlyc3QgZXZlbnQgYXQgb3IganVzdCBwYXN0IGNhbmNlbFRpbWUuCiAgICAgc2l6
ZV90IGkgPSBtX2V2ZW50cy5maW5kTWF0Y2hpbmcoWyZdKGF1dG8mIGV2ZW50KSB7CkBAIC0zMjcs
OCArMzI3LDEwIEBAIHZvaWQgQXVkaW9QYXJhbVRpbWVsaW5lOjpyZW1vdmVDYW5jZWxsZWRFdmVu
dHMoc2l6ZV90IGZpcnN0RXZlbnRUb1JlbW92ZSkKIE9wdGlvbmFsPGZsb2F0PiBBdWRpb1BhcmFt
VGltZWxpbmU6OnZhbHVlRm9yQ29udGV4dFRpbWUoQmFzZUF1ZGlvQ29udGV4dCYgY29udGV4dCwg
ZmxvYXQgZGVmYXVsdFZhbHVlLCBmbG9hdCBtaW5WYWx1ZSwgZmxvYXQgbWF4VmFsdWUpCiB7CiAg
ICAgewotICAgICAgICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKG1fZXZlbnRzTG9jayk7Ci0g
ICAgICAgIGlmICghbG9ja2VyIHx8ICFtX2V2ZW50cy5zaXplKCkgfHwgU2Vjb25kcyB7IGNvbnRl
eHQuY3VycmVudFRpbWUoKSB9IDwgbV9ldmVudHNbMF0udGltZSgpKQorICAgICAgICBpZiAoIW1f
ZXZlbnRzTG9jay50cnlMb2NrKCkpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owor
ICAgICAgICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsgfSwgbV9ldmVudHNMb2NrIH07
CisgICAgICAgIGlmICghbV9ldmVudHMuc2l6ZSgpIHx8IFNlY29uZHMgeyBjb250ZXh0LmN1cnJl
bnRUaW1lKCkgfSA8IG1fZXZlbnRzWzBdLnRpbWUoKSkKICAgICAgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CiAgICAgfQogCkBAIC0zNDUsMTEgKzM0NywxMSBAQCBPcHRpb25hbDxmbG9hdD4g
QXVkaW9QYXJhbVRpbWVsaW5lOjp2YWx1ZUZvckNvbnRleHRUaW1lKEJhc2VBdWRpb0NvbnRleHQm
IGNvbnRleAogZmxvYXQgQXVkaW9QYXJhbVRpbWVsaW5lOjp2YWx1ZXNGb3JGcmFtZVJhbmdlKHNp
emVfdCBzdGFydEZyYW1lLCBzaXplX3QgZW5kRnJhbWUsIGZsb2F0IGRlZmF1bHRWYWx1ZSwgZmxv
YXQgbWluVmFsdWUsIGZsb2F0IG1heFZhbHVlLCBmbG9hdCogdmFsdWVzLCB1bnNpZ25lZCBudW1i
ZXJPZlZhbHVlcywgZG91YmxlIHNhbXBsZVJhdGUsIGRvdWJsZSBjb250cm9sUmF0ZSkKIHsKICAg
ICAvLyBXZSBjYW4ndCBjb250ZW5kIHRoZSBsb2NrIGluIHRoZSByZWFsdGltZSBhdWRpbyB0aHJl
YWQuCi0gICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhtX2V2ZW50c0xvY2spOwotICAgIGlm
ICghbG9ja2VyKSB7CisgICAgaWYgKCFtX2V2ZW50c0xvY2sudHJ5TG9jaygpKSB7CiAgICAgICAg
IHN0ZDo6ZmlsbF9uKHZhbHVlcywgbnVtYmVyT2ZWYWx1ZXMsIGRlZmF1bHRWYWx1ZSk7CiAgICAg
ICAgIHJldHVybiBkZWZhdWx0VmFsdWU7CiAgICAgfQorICAgIExvY2tlciBsb2NrZXIgeyBBZG9w
dExvY2tUYWcgeyB9LCBtX2V2ZW50c0xvY2sgfTsKIAogICAgIGZsb2F0IHZhbHVlID0gdmFsdWVz
Rm9yRnJhbWVSYW5nZUltcGwoc3RhcnRGcmFtZSwgZW5kRnJhbWUsIGRlZmF1bHRWYWx1ZSwgdmFs
dWVzLCBudW1iZXJPZlZhbHVlcywgc2FtcGxlUmF0ZSwgY29udHJvbFJhdGUpOwogCkBAIC05ODQs
OSArOTg2LDkgQEAgYm9vbCBBdWRpb1BhcmFtVGltZWxpbmU6OmlzRXZlbnRDdXJyZW50KGNvbnN0
IFBhcmFtRXZlbnQmIGV2ZW50LCBjb25zdCBQYXJhbUV2ZW4KIAogYm9vbCBBdWRpb1BhcmFtVGlt
ZWxpbmU6Omhhc1ZhbHVlcyhzaXplX3Qgc3RhcnRGcmFtZSwgZG91YmxlIHNhbXBsZVJhdGUpIGNv
bnN0CiB7Ci0gICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhtX2V2ZW50c0xvY2spOwotICAg
IGlmICghbG9ja2VyKQorICAgIGlmICghbV9ldmVudHNMb2NrLnRyeUxvY2soKSkKICAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9ja1RhZyB7IH0sIG1fZXZl
bnRzTG9jayB9OwogCiAgICAgLy8gUmV0dXJuIGZhbHNlIGlmIHRoZXJlIGFyZSBubyBldmVudHMg
aW4gdGhlIHRpbWUgcmFuZ2UuCiAgICAgYXV0byBlbmRGcmFtZSA9IHN0YXJ0RnJhbWUgKyBBdWRp
b1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGluZS5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtVGltZWxpbmUuaAppbmRleCA0Y2QxYTBmMDE0MWM5
MTgxYjRmYjYzMGMxNzM0NjYzM2YzODI4Nzk4Li45YjcyNjE3ZDQyYzA4YTQ3NGE3NTI1NjQ1MWM1
MDM2YzQzMWQ4Mjk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvUGFyYW1UaW1lbGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9QYXJhbVRpbWVsaW5lLmgKQEAgLTMwLDcgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkF1
ZGlvQ29udGV4dC5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Zsb2F0MzJBcnJheS5oPgot
I2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CisjaW5jbHVkZSA8d3RmL0NoZWNrZWRMb2NrLmg+CiAjaW5j
bHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xODksOSArMTg5
LDkgQEAgcHJpdmF0ZToKICAgICAgICAgY29uc3QgaW50IGV2ZW50SW5kZXg7CiAgICAgfTsKIAot
ICAgIHZvaWQgcmVtb3ZlQ2FuY2VsbGVkRXZlbnRzKHNpemVfdCBmaXJzdEV2ZW50VG9SZW1vdmUp
OwotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IGluc2VydEV2ZW50KFBhcmFtRXZlbnQmJik7Ci0gICAg
ZmxvYXQgdmFsdWVzRm9yRnJhbWVSYW5nZUltcGwoc2l6ZV90IHN0YXJ0RnJhbWUsIHNpemVfdCBl
bmRGcmFtZSwgZmxvYXQgZGVmYXVsdFZhbHVlLCBmbG9hdCogdmFsdWVzLCB1bnNpZ25lZCBudW1i
ZXJPZlZhbHVlcywgZG91YmxlIHNhbXBsZVJhdGUsIGRvdWJsZSBjb250cm9sUmF0ZSk7CisgICAg
dm9pZCByZW1vdmVDYW5jZWxsZWRFdmVudHMoc2l6ZV90IGZpcnN0RXZlbnRUb1JlbW92ZSkgV1RG
X1JFUVVJUkVTX0xPQ0sobV9ldmVudHNMb2NrKTsKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBpbnNl
cnRFdmVudChQYXJhbUV2ZW50JiYpIFdURl9SRVFVSVJFU19MT0NLKG1fZXZlbnRzTG9jayk7Cisg
ICAgZmxvYXQgdmFsdWVzRm9yRnJhbWVSYW5nZUltcGwoc2l6ZV90IHN0YXJ0RnJhbWUsIHNpemVf
dCBlbmRGcmFtZSwgZmxvYXQgZGVmYXVsdFZhbHVlLCBmbG9hdCogdmFsdWVzLCB1bnNpZ25lZCBu
dW1iZXJPZlZhbHVlcywgZG91YmxlIHNhbXBsZVJhdGUsIGRvdWJsZSBjb250cm9sUmF0ZSkgV1RG
X1JFUVVJUkVTX0xPQ0sobV9ldmVudHNMb2NrKTsKICAgICBmbG9hdCBsaW5lYXJSYW1wQXRUaW1l
KFNlY29uZHMgdCwgZmxvYXQgdmFsdWUxLCBTZWNvbmRzIHRpbWUxLCBmbG9hdCB2YWx1ZTIsIFNl
Y29uZHMgdGltZTIpOwogICAgIGZsb2F0IGV4cG9uZW50aWFsUmFtcEF0VGltZShTZWNvbmRzIHQs
IGZsb2F0IHZhbHVlMSwgU2Vjb25kcyB0aW1lMSwgZmxvYXQgdmFsdWUyLCBTZWNvbmRzIHRpbWUy
KTsKICAgICBmbG9hdCB2YWx1ZUN1cnZlQXRUaW1lKFNlY29uZHMgdCwgU2Vjb25kcyB0aW1lMSwg
U2Vjb25kcyBkdXJhdGlvbiwgY29uc3QgZmxvYXQqIGN1cnZlRGF0YSwgc2l6ZV90IGN1cnZlTGVu
Z3RoKTsKQEAgLTIwMCwxNCArMjAwLDE0IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHByb2Nlc3NM
aW5lYXJSYW1wKGNvbnN0IEF1dG9tYXRpb25TdGF0ZSYsIGZsb2F0KiB2YWx1ZXMsIHNpemVfdCYg
Y3VycmVudEZyYW1lLCBmbG9hdCYgdmFsdWUsIHVuc2lnbmVkJiB3cml0ZUluZGV4KTsKICAgICB2
b2lkIHByb2Nlc3NFeHBvbmVudGlhbFJhbXAoY29uc3QgQXV0b21hdGlvblN0YXRlJiwgZmxvYXQq
IHZhbHVlcywgc2l6ZV90JiBjdXJyZW50RnJhbWUsIGZsb2F0JiB2YWx1ZSwgdW5zaWduZWQmIHdy
aXRlSW5kZXgpOwotICAgIHZvaWQgcHJvY2Vzc0NhbmNlbFZhbHVlcyhjb25zdCBBdXRvbWF0aW9u
U3RhdGUmLCBmbG9hdCogdmFsdWVzLCBzaXplX3QmIGN1cnJlbnRGcmFtZSwgZmxvYXQmIHZhbHVl
LCB1bnNpZ25lZCYgd3JpdGVJbmRleCk7CisgICAgdm9pZCBwcm9jZXNzQ2FuY2VsVmFsdWVzKGNv
bnN0IEF1dG9tYXRpb25TdGF0ZSYsIGZsb2F0KiB2YWx1ZXMsIHNpemVfdCYgY3VycmVudEZyYW1l
LCBmbG9hdCYgdmFsdWUsIHVuc2lnbmVkJiB3cml0ZUluZGV4KSBXVEZfUkVRVUlSRVNfTE9DSyht
X2V2ZW50c0xvY2spOwogICAgIHZvaWQgcHJvY2Vzc1NldFRhcmdldChjb25zdCBBdXRvbWF0aW9u
U3RhdGUmLCBmbG9hdCogdmFsdWVzLCBzaXplX3QmIGN1cnJlbnRGcmFtZSwgZmxvYXQmIHZhbHVl
LCB1bnNpZ25lZCYgd3JpdGVJbmRleCk7CiAgICAgdm9pZCBwcm9jZXNzU2V0VmFsdWVDdXJ2ZShj
b25zdCBBdXRvbWF0aW9uU3RhdGUmLCBmbG9hdCogdmFsdWVzLCBzaXplX3QmIGN1cnJlbnRGcmFt
ZSwgZmxvYXQmIHZhbHVlLCB1bnNpZ25lZCYgd3JpdGVJbmRleCk7Ci0gICAgdm9pZCBwcm9jZXNz
U2V0VGFyZ2V0Rm9sbG93ZWRCeVJhbXAoaW50IGV2ZW50SW5kZXgsIFBhcmFtRXZlbnQqJiwgUGFy
YW1FdmVudDo6VHlwZSBuZXh0RXZlbnRUeXBlLCBzaXplX3QgY3VycmVudEZyYW1lLCBkb3VibGUg
c2FtcGxpbmdQZXJpb2QsIGRvdWJsZSBjb250cm9sUmF0ZSwgZmxvYXQmIHZhbHVlKTsKKyAgICB2
b2lkIHByb2Nlc3NTZXRUYXJnZXRGb2xsb3dlZEJ5UmFtcChpbnQgZXZlbnRJbmRleCwgUGFyYW1F
dmVudComLCBQYXJhbUV2ZW50OjpUeXBlIG5leHRFdmVudFR5cGUsIHNpemVfdCBjdXJyZW50RnJh
bWUsIGRvdWJsZSBzYW1wbGluZ1BlcmlvZCwgZG91YmxlIGNvbnRyb2xSYXRlLCBmbG9hdCYgdmFs
dWUpIFdURl9SRVFVSVJFU19MT0NLKG1fZXZlbnRzTG9jayk7CiAKLSAgICBWZWN0b3I8UGFyYW1F
dmVudD4gbV9ldmVudHM7CisgICAgVmVjdG9yPFBhcmFtRXZlbnQ+IG1fZXZlbnRzIFdURl9HVUFS
REVEX0JZX0xPQ0sobV9ldmVudHNMb2NrKTsKIAotICAgIG11dGFibGUgTG9jayBtX2V2ZW50c0xv
Y2s7CisgICAgbXV0YWJsZSBDaGVja2VkTG9jayBtX2V2ZW50c0xvY2s7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9BdWRpb0Rlc3RpbmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRp
b0Rlc3RpbmF0aW9uLmgKaW5kZXggODMxOTY0NzNiYzFhYTliZGVlODZmNzBkNzRmMDkwMTgxN2Y2
ZjY4YS4uZWI1NGYwZDUxZDc4NjBiOWY2MDQwZDg5MzU4ODQ0ODgyYTY1YmI2MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9EZXN0aW5hdGlvbi5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvRGVzdGluYXRpb24uaApAQCAtMzIs
NiArMzIsNyBAQAogI2luY2x1ZGUgIkF1ZGlvQnVzLmgiCiAjaW5jbHVkZSAiQXVkaW9JT0NhbGxi
YWNrLmgiCiAjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHd0Zi9DaGVja2VkTG9jay5oPgog
I2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+
CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CkBAIC03NywzMCArNzgsMzIg
QEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IEF1ZGlvRGVzdGluYXRpb24oQXVk
aW9JT0NhbGxiYWNrJik7CiAKLSAgICBMb2NrIG1fY2FsbGJhY2tMb2NrOwotICAgIEF1ZGlvSU9D
YWxsYmFjayogbV9jYWxsYmFjayB7IG51bGxwdHIgfTsKKyAgICBDaGVja2VkTG9jayBtX2NhbGxi
YWNrTG9jazsKKyAgICBBdWRpb0lPQ2FsbGJhY2sqIG1fY2FsbGJhY2sgV1RGX0dVQVJERURfQllf
TE9DSyhtX2NhbGxiYWNrTG9jaykgeyBudWxscHRyIH07CiB9OwogCiBpbmxpbmUgQXVkaW9EZXN0
aW5hdGlvbjo6QXVkaW9EZXN0aW5hdGlvbihBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrKQogewot
ICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9jYWxsYmFja0xvY2spOworICAgIExvY2tlciBs
b2NrZXIgeyBtX2NhbGxiYWNrTG9jayB9OwogICAgIG1fY2FsbGJhY2sgPSAmY2FsbGJhY2s7CiB9
CiAKIGlubGluZSB2b2lkIEF1ZGlvRGVzdGluYXRpb246OmNsZWFyQ2FsbGJhY2soKQogewotICAg
IGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9jYWxsYmFja0xvY2spOworICAgIExvY2tlciBsb2Nr
ZXIgeyBtX2NhbGxiYWNrTG9jayB9OwogICAgIG1fY2FsbGJhY2sgPSBudWxscHRyOwogfQogCiBp
bmxpbmUgdm9pZCBBdWRpb0Rlc3RpbmF0aW9uOjpjYWxsUmVuZGVyQ2FsbGJhY2soQXVkaW9CdXMq
IHNvdXJjZUJ1cywgQXVkaW9CdXMqIGRlc3RpbmF0aW9uQnVzLCBzaXplX3QgZnJhbWVzVG9Qcm9j
ZXNzLCBjb25zdCBBdWRpb0lPUG9zaXRpb24mIG91dHB1dFBvc2l0aW9uKQogewotICAgIGF1dG8g
bG9ja2VyID0gdHJ5SG9sZExvY2sobV9jYWxsYmFja0xvY2spOwotICAgIGlmICghbG9ja2VyIHx8
ICFtX2NhbGxiYWNrKSB7Ci0gICAgICAgIGRlc3RpbmF0aW9uQnVzLT56ZXJvKCk7Ci0gICAgICAg
IHJldHVybjsKKyAgICBpZiAobV9jYWxsYmFja0xvY2sudHJ5TG9jaygpKSB7CisgICAgICAgIExv
Y2tlciBsb2NrZXIgeyBBZG9wdExvY2tUYWcgeyB9LCBtX2NhbGxiYWNrTG9jayB9OworICAgICAg
ICBpZiAobV9jYWxsYmFjaykgeworICAgICAgICAgICAgbV9jYWxsYmFjay0+cmVuZGVyKHNvdXJj
ZUJ1cywgZGVzdGluYXRpb25CdXMsIGZyYW1lc1RvUHJvY2Vzcywgb3V0cHV0UG9zaXRpb24pOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAgICAgfQotICAgIG1fY2FsbGJhY2stPnJl
bmRlcihzb3VyY2VCdXMsIGRlc3RpbmF0aW9uQnVzLCBmcmFtZXNUb1Byb2Nlc3MsIG91dHB1dFBv
c2l0aW9uKTsKKyAgICBkZXN0aW5hdGlvbkJ1cy0+emVybygpOwogfQogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2Nv
YS9BdWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmNwcAppbmRleCBlMTRmODc0MzJmMmEwOWJh
Y2EyNmJmNjZiYTY4MzRjNmZmODVkMGJhLi5lNTg5MTRkOThjOTZhOTA3YzE1Zjk2M2Y3N2I4NDEy
YTE5NzZmZDgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2Nv
YS9BdWRpb0Rlc3RpbmF0aW9uQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2NvY29hL0F1ZGlvRGVzdGluYXRpb25Db2NvYS5jcHAKQEAgLTE2MCw3ICsxNjAsNyBA
QCB2b2lkIEF1ZGlvRGVzdGluYXRpb25Db2NvYTo6c2V0SXNQbGF5aW5nKGJvb2wgaXNQbGF5aW5n
KQogICAgIH0KIAogICAgIHsKLSAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2NhbGxi
YWNrTG9jayk7CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBtX2NhbGxiYWNrTG9jayB9OwogICAg
ICAgICBpZiAobV9jYWxsYmFjaykKICAgICAgICAgICAgIG1fY2FsbGJhY2stPmlzUGxheWluZ0Rp
ZENoYW5nZSgpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL2NvY29hL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9BdWRpb01lZGlhU3RyZWFt
VHJhY2tSZW5kZXJlclVuaXQuY3BwCmluZGV4IDk4MDQzZDk1Y2VmZjUyN2YyOGI3YWQyNDFmYzkz
ZjA3MzZiMTkzOGUuLmIwMDM0YjkyZmQ0MDNjMjM2YmMyZTY4OGZlMTMxYTg0NGQyNGQ3ODcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2NvY29hL0F1ZGlv
TWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0
LmNwcApAQCAtODQsNyArODQsNyBAQCB2b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVy
VW5pdDo6YWRkU291cmNlKFJlZjxBdWRpb1NhbXBsZURhdGFTb3VyY2U+JiYgcwogICAgIFJFTEVB
U0VfTE9HKFdlYlJUQywgIkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6YWRkU291
cmNlIik7CiAKICAgICB7Ci0gICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9zb3VyY2Vz
TG9jayk7CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBtX3NvdXJjZXNMb2NrIH07CiAgICAgICAg
IEFTU0VSVCghbV9zb3VyY2VzLmNvbnRhaW5zKHNvdXJjZS5nZXQoKSkpOwogICAgICAgICBtX3Nv
dXJjZXMuYWRkKFdURk1vdmUoc291cmNlKSk7CiAgICAgICAgIG1fc291cmNlc0NvcHkgPSBjb3B5
VG9WZWN0b3IobV9zb3VyY2VzKTsKQEAgLTk5LDcgKzk5LDcgQEAgdm9pZCBBdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlclVuaXQ6OnJlbW92ZVNvdXJjZShBdWRpb1NhbXBsZURhdGFTb3VyY2Um
IHNvdXIKIAogICAgIGJvb2wgc2hvdWxkU3RvcCA9IGZhbHNlOwogICAgIHsKLSAgICAgICAgYXV0
byBsb2NrZXIgPSBob2xkTG9jayhtX3NvdXJjZXNMb2NrKTsKKyAgICAgICAgTG9ja2VyIGxvY2tl
ciB7IG1fc291cmNlc0xvY2sgfTsKICAgICAgICAgbV9zb3VyY2VzLnJlbW92ZShzb3VyY2UpOwog
ICAgICAgICBzaG91bGRTdG9wID0gbV9zb3VyY2VzLmlzRW1wdHkoKTsKICAgICAgICAgbV9zb3Vy
Y2VzQ29weSA9IGNvcHlUb1ZlY3RvcihtX3NvdXJjZXMpOwpAQCAtMTMzLDkgKzEzMyw5IEBAIHZv
aWQgQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0OjpyZW5kZXIoc2l6ZV90IHNhbXBs
ZUNvdW50LCBBdWRpb0J1ZmZlckxpCiAKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKICAg
ICBpZiAobV9zaG91bGRVcGRhdGVSZW5kZXJTb3VyY2VzKSB7Ci0gICAgICAgIGF1dG8gbG9ja2Vy
ID0gdHJ5SG9sZExvY2sobV9zb3VyY2VzTG9jayk7Ci0gICAgICAgIGlmICghbG9ja2VyKQorICAg
ICAgICBpZiAoIW1fc291cmNlc0xvY2sudHJ5TG9jaygpKQogICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsgfSwgbV9zb3VyY2VzTG9jayB9
OwogCiAgICAgICAgIG1fcmVuZGVyU291cmNlcyA9IFdURk1vdmUobV9zb3VyY2VzQ29weSk7CiAg
ICAgICAgIG1fc2hvdWxkVXBkYXRlUmVuZGVyU291cmNlcyA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJVbml0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9jb2NvYS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQuaAppbmRleCBlNWVmZGYw
MzI2YjJjNjg3OTVmYjdmZTZkNTdlYzc1ZmEyMGMyYWU2Li5mYWNiNzcwNDc5ODVlMzQ5YWQwYjlm
MmE0ZmVjMTQ0ZWYxY2MzNGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9jb2NvYS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jb2NvYS9BdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlclVuaXQuaApAQCAtMjgsNiArMjgsNyBAQAogI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCiAKICNpbmNsdWRlICJBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVy
bmFsVW5pdC5oIgorI2luY2x1ZGUgPHd0Zi9DaGVja2VkTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9G
b3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvVW5pcXVl
UmVmLmg+CkBAIC02NSwxMSArNjYsMTEgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgY3JlYXRlQXVk
aW9Vbml0SWZOZWVkZWQoKTsKIAotICAgIEhhc2hTZXQ8UmVmPEF1ZGlvU2FtcGxlRGF0YVNvdXJj
ZT4+IG1fc291cmNlczsKKyAgICBIYXNoU2V0PFJlZjxBdWRpb1NhbXBsZURhdGFTb3VyY2U+PiBt
X3NvdXJjZXMgV1RGX0dVQVJERURfQllfTE9DSyhtX3NvdXJjZXNMb2NrKTsKICAgICBWZWN0b3I8
UmVmPEF1ZGlvU2FtcGxlRGF0YVNvdXJjZT4+IG1fc291cmNlc0NvcHk7CiAgICAgVmVjdG9yPFJl
ZjxBdWRpb1NhbXBsZURhdGFTb3VyY2U+PiBtX3JlbmRlclNvdXJjZXM7CiAgICAgYm9vbCBtX3No
b3VsZFVwZGF0ZVJlbmRlclNvdXJjZXMgeyBmYWxzZSB9OwotICAgIExvY2sgbV9zb3VyY2VzTG9j
azsKKyAgICBDaGVja2VkTG9jayBtX3NvdXJjZXNMb2NrOwogICAgIFVuaXF1ZVJlZjxBdWRpb01l
ZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdD4gbV9pbnRlcm5hbFVuaXQ7CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJS
VENDb2RlY3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2Vi
UlRDQ29kZWNzLmNwcAppbmRleCBkNWI0ZDQ2NWY2MjFjYTA4NjNhYzkyMDEzZmYwMzlhYzg4YmRk
Y2ZhLi5mNDRjNDE4OTJiMzhmNWJhZDMxOTZkNjlhMWMxMzI0Y2U5M2I1ZWMzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVj
cy5jcHAKQEAgLTI3MCw3ICsyNzAsMTIgQEAgTGliV2ViUlRDQ29kZWNzOjpEZWNvZGVyKiBMaWJX
ZWJSVENDb2RlY3M6OmNyZWF0ZURlY29kZXIoVHlwZSB0eXBlKQogCiBpbnQzMl90IExpYldlYlJU
Q0NvZGVjczo6cmVsZWFzZURlY29kZXIoRGVjb2RlciYgZGVjb2RlcikKIHsKLSAgICBBU1NFUlQo
IWRlY29kZXIuZGVjb2RlZEltYWdlQ2FsbGJhY2spOworI2lmIEFTU0VSVF9FTkFCTEVECisgICAg
eworICAgICAgICBMb2NrZXIgbG9ja2VyIHsgZGVjb2Rlci5kZWNvZGVkSW1hZ2VDYWxsYmFja0xv
Y2sgfTsKKyAgICAgICAgQVNTRVJUKCFkZWNvZGVyLmRlY29kZWRJbWFnZUNhbGxiYWNrKTsKKyAg
ICB9CisjZW5kaWYKICAgICBlbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbkFuZERpc3BhdGNoVG9U
aHJlYWQoW3RoaXMsIGRlY29kZXJJZGVudGlmaWVyID0gZGVjb2Rlci5pZGVudGlmaWVyXSB7CiAg
ICAgICAgIEFTU0VSVChtX2RlY29kZXJzLmNvbnRhaW5zKGRlY29kZXJJZGVudGlmaWVyKSk7CiAg
ICAgICAgIGlmIChhdXRvIGRlY29kZXIgPSBtX2RlY29kZXJzLnRha2UoZGVjb2RlcklkZW50aWZp
ZXIpKSB7CkBAIC0yOTgsNyArMzAzLDcgQEAgaW50MzJfdCBMaWJXZWJSVENDb2RlY3M6OmRlY29k
ZUZyYW1lKERlY29kZXImIGRlY29kZXIsIHVpbnQzMl90IHRpbWVTdGFtcCwgY29uc3QKIAogdm9p
ZCBMaWJXZWJSVENDb2RlY3M6OnJlZ2lzdGVyRGVjb2RlRnJhbWVDYWxsYmFjayhEZWNvZGVyJiBk
ZWNvZGVyLCB2b2lkKiBkZWNvZGVkSW1hZ2VDYWxsYmFjaykKIHsKLSAgICBMb2NrSG9sZGVyIGhv
bGRlcihkZWNvZGVyLmRlY29kZWRJbWFnZUNhbGxiYWNrTG9jayk7CisgICAgTG9ja2VyIGxvY2tl
ciB7IGRlY29kZXIuZGVjb2RlZEltYWdlQ2FsbGJhY2tMb2NrIH07CiAgICAgZGVjb2Rlci5kZWNv
ZGVkSW1hZ2VDYWxsYmFjayA9IGRlY29kZWRJbWFnZUNhbGxiYWNrOwogfQogCkBAIC0zMTksMTAg
KzMyNCwxMSBAQCB2b2lkIExpYldlYlJUQ0NvZGVjczo6Y29tcGxldGVkRGVjb2RpbmcoUlRDRGVj
b2RlcklkZW50aWZpZXIgZGVjb2RlcklkZW50aWZpZXIsCiAgICAgaWYgKCFkZWNvZGVyKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKGRlY29kZXItPmRl
Y29kZWRJbWFnZUNhbGxiYWNrTG9jayk7Ci0gICAgaWYgKCFsb2NrZXIpCisgICAgaWYgKCFkZWNv
ZGVyLT5kZWNvZGVkSW1hZ2VDYWxsYmFja0xvY2sudHJ5TG9jaygpKQogICAgICAgICByZXR1cm47
CiAKKyAgICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsgfSwgZGVjb2Rlci0+ZGVjb2Rl
ZEltYWdlQ2FsbGJhY2tMb2NrIH07CisKICAgICBpZiAoIWRlY29kZXItPmRlY29kZWRJbWFnZUNh
bGxiYWNrKQogICAgICAgICByZXR1cm47CiAKQEAgLTM5Myw3ICszOTksMTIgQEAgTGliV2ViUlRD
Q29kZWNzOjpFbmNvZGVyKiBMaWJXZWJSVENDb2RlY3M6OmNyZWF0ZUVuY29kZXIoVHlwZSB0eXBl
LCBjb25zdCBzdGQ6Om0KIAogaW50MzJfdCBMaWJXZWJSVENDb2RlY3M6OnJlbGVhc2VFbmNvZGVy
KEVuY29kZXImIGVuY29kZXIpCiB7Ci0gICAgQVNTRVJUKCFlbmNvZGVyLmVuY29kZWRJbWFnZUNh
bGxiYWNrKTsKKyNpZiBBU1NFUlRfRU5BQkxFRAorICAgIHsKKyAgICAgICAgTG9ja2VyIGxvY2tl
ciB7IGVuY29kZXIuZW5jb2RlZEltYWdlQ2FsbGJhY2tMb2NrIH07CisgICAgICAgIEFTU0VSVCgh
ZW5jb2Rlci5lbmNvZGVkSW1hZ2VDYWxsYmFjayk7CisgICAgfQorI2VuZGlmCiAgICAgZW5zdXJl
R1BVUHJvY2Vzc0Nvbm5lY3Rpb25BbmREaXNwYXRjaFRvVGhyZWFkKFt0aGlzLCBlbmNvZGVySWRl
bnRpZmllciA9IGVuY29kZXIuaWRlbnRpZmllcl0gewogICAgICAgICBBU1NFUlQobV9lbmNvZGVy
cy5jb250YWlucyhlbmNvZGVySWRlbnRpZmllcikpOwogICAgICAgICBhdXRvIGVuY29kZXIgPSBt
X2VuY29kZXJzLnRha2UoZW5jb2RlcklkZW50aWZpZXIpOwpAQCAtNDU0LDcgKzQ2NSw3IEBAIGlu
dDMyX3QgTGliV2ViUlRDQ29kZWNzOjplbmNvZGVGcmFtZShFbmNvZGVyJiBlbmNvZGVyLCBjb25z
dCB3ZWJydGM6OlZpZGVvRnJhbWUmCiAKIHZvaWQgTGliV2ViUlRDQ29kZWNzOjpyZWdpc3RlckVu
Y29kZUZyYW1lQ2FsbGJhY2soRW5jb2RlciYgZW5jb2Rlciwgdm9pZCogZW5jb2RlZEltYWdlQ2Fs
bGJhY2spCiB7Ci0gICAgTG9ja0hvbGRlciBob2xkZXIoZW5jb2Rlci5lbmNvZGVkSW1hZ2VDYWxs
YmFja0xvY2spOworICAgIExvY2tlciBsb2NrZXIgeyBlbmNvZGVyLmVuY29kZWRJbWFnZUNhbGxi
YWNrTG9jayB9OwogCiAgICAgZW5jb2Rlci5lbmNvZGVkSW1hZ2VDYWxsYmFjayA9IGVuY29kZWRJ
bWFnZUNhbGxiYWNrOwogfQpAQCAtNDgxLDEwICs0OTIsMTEgQEAgdm9pZCBMaWJXZWJSVENDb2Rl
Y3M6OmNvbXBsZXRlZEVuY29kaW5nKFJUQ0VuY29kZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIElQ
Qzo6RGEKICAgICBpZiAoIWVuY29kZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1dG8gbG9j
a2VyID0gdHJ5SG9sZExvY2soZW5jb2Rlci0+ZW5jb2RlZEltYWdlQ2FsbGJhY2tMb2NrKTsKLSAg
ICBpZiAoIWxvY2tlcikKKyAgICBpZiAoIWVuY29kZXItPmVuY29kZWRJbWFnZUNhbGxiYWNrTG9j
ay50cnlMb2NrKCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIExvY2tlciBsb2NrZXIgeyBBZG9w
dExvY2tUYWcgeyB9LCBlbmNvZGVyLT5lbmNvZGVkSW1hZ2VDYWxsYmFja0xvY2sgfTsKKwogICAg
IGlmICghZW5jb2Rlci0+ZW5jb2RlZEltYWdlQ2FsbGJhY2spCiAgICAgICAgIHJldHVybjsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRD
Q29kZWNzLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVEND
b2RlY3MuaAppbmRleCAxY2Q4ZjRlZTYxMThkOGQ0NTZmYTY5YWVlMDYyMmJmNzY1NzU2NThlLi40
YTBlNjRiMTg0ZTcxNmUzZTAxMTE5MjI0OTdmNmY5MTEyMzQ0NzAxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuaApAQCAt
NzQsOCArNzQsOCBAQCBwdWJsaWM6CiAgICAgcHVibGljOgogICAgICAgICBSVENEZWNvZGVySWRl
bnRpZmllciBpZGVudGlmaWVyOwogICAgICAgICBUeXBlIHR5cGU7Ci0gICAgICAgIHZvaWQqIGRl
Y29kZWRJbWFnZUNhbGxiYWNrIHsgbnVsbHB0ciB9OwotICAgICAgICBMb2NrIGRlY29kZWRJbWFn
ZUNhbGxiYWNrTG9jazsKKyAgICAgICAgdm9pZCogZGVjb2RlZEltYWdlQ2FsbGJhY2sgV1RGX0dV
QVJERURfQllfTE9DSyhkZWNvZGVkSW1hZ2VDYWxsYmFja0xvY2spIHsgbnVsbHB0ciB9OworICAg
ICAgICBDaGVja2VkTG9jayBkZWNvZGVkSW1hZ2VDYWxsYmFja0xvY2s7CiAgICAgICAgIGJvb2wg
aGFzRXJyb3IgeyBmYWxzZSB9OwogICAgICAgICBSZWZQdHI8SVBDOjpDb25uZWN0aW9uPiBjb25u
ZWN0aW9uOwogICAgIH07CkBAIC0xMDAsOCArMTAwLDggQEAgcHVibGljOgogICAgICAgICB3ZWJy
dGM6OlZpZGVvQ29kZWNUeXBlIGNvZGVjVHlwZSB7IHdlYnJ0Yzo6a1ZpZGVvQ29kZWNHZW5lcmlj
IH07CiAgICAgICAgIFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+PiBwYXJhbWV0ZXJz
OwogICAgICAgICBPcHRpb25hbDxFbmNvZGVySW5pdGlhbGl6YXRpb25EYXRhPiBpbml0aWFsaXph
dGlvbkRhdGE7Ci0gICAgICAgIHZvaWQqIGVuY29kZWRJbWFnZUNhbGxiYWNrIHsgbnVsbHB0ciB9
OwotICAgICAgICBMb2NrIGVuY29kZWRJbWFnZUNhbGxiYWNrTG9jazsKKyAgICAgICAgdm9pZCog
ZW5jb2RlZEltYWdlQ2FsbGJhY2sgV1RGX0dVQVJERURfQllfTE9DSyhlbmNvZGVkSW1hZ2VDYWxs
YmFja0xvY2spIHsgbnVsbHB0ciB9OworICAgICAgICBDaGVja2VkTG9jayBlbmNvZGVkSW1hZ2VD
YWxsYmFja0xvY2s7CiAgICAgICAgIFJlZlB0cjxJUEM6OkNvbm5lY3Rpb24+IGNvbm5lY3Rpb247
CiAgICAgfTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429290</attachid>
            <date>2021-05-21 08:08:38 -0700</date>
            <delta_ts>2021-05-21 12:24:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226056-20210521080837.patch</filename>
            <type>text/plain</type>
            <size>22125</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3ODU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDIwMjFhZTU5YzdkMzE3MmQ0OTYzOWEw
OTZmYTU0NGY0NDZhODY1YmYuLjkyMjI3ODQxMjM3MzE0ZjQ0YjEwNTMzYTJkZWM1N2M4YmU0YWFl
YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjEtMDUtMjEgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgQ2hlY2tlZExvY2sgbW9yZSBpbiBjYXNlcyB3aGVy
ZSB3ZSB0cnktbG9jaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjI2MDU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVXNlIENoZWNrZWRMb2NrIG1vcmUgaW4gY2FzZXMgd2hlcmUgd2UgdHJ5LWxvY2sgdG8g
YmVuZWZpdCBmcm9tIENsYW5nCisgICAgICAgIFRocmVhZCBTYWZldHkgQW5hbHlzaXMuCisKKyAg
ICAgICAgKiB3dGYvTG9nZ2VyLmNwcDoKKyAgICAgICAgKiB3dGYvTG9nZ2VyLmg6CisgICAgICAg
IChXVEY6OkxvZ2dlcjo6YWRkT2JzZXJ2ZXIpOgorICAgICAgICAoV1RGOjpMb2dnZXI6OnJlbW92
ZU9ic2VydmVyKToKKyAgICAgICAgKFdURjo6TG9nZ2VyOjpsb2cpOgorICAgICAgICAoV1RGOjpM
b2dnZXI6OmxvZ1ZlcmJvc2UpOgorICAgICAgICAoV1RGOjpMb2dnZXI6OldURl9SRVRVUk5TX0xP
Q0spOgorCiAyMDIxLTA1LTIwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAg
ICAgICAgVXNlIENoZWNrZWRMb2NrIG1vcmUgaW4gV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjQ3YjQ1YTU0
ODM5NTU1M2JjMTlkYzg1NmFmZmZiNTg3OGNiZjlhOC4uMzRlNjJkYmVhMmFkMmViYzdjZTIzY2Q0
NzRiMzNjNTczYzEwYzAyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDIxLTA1LTIx
ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIENoZWNrZWRM
b2NrIG1vcmUgaW4gY2FzZXMgd2hlcmUgd2UgdHJ5LWxvY2sKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjA1NgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBDaGVja2VkTG9jayBtb3JlIGluIGNhc2Vz
IHdoZXJlIHdlIHRyeS1sb2NrIHRvIGJlbmVmaXQgZnJvbSBDbGFuZworICAgICAgICBUaHJlYWQg
U2FmZXR5IEFuYWx5c2lzLgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFt
VGltZWxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9QYXJhbVRpbWVsaW5lOjpzZXRW
YWx1ZUF0VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1BhcmFtVGltZWxpbmU6OmxpbmVh
clJhbXBUb1ZhbHVlQXRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvUGFyYW1UaW1lbGlu
ZTo6ZXhwb25lbnRpYWxSYW1wVG9WYWx1ZUF0VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRp
b1BhcmFtVGltZWxpbmU6OnNldFRhcmdldEF0VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRp
b1BhcmFtVGltZWxpbmU6OnNldFZhbHVlQ3VydmVBdFRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6
QXVkaW9QYXJhbVRpbWVsaW5lOjpjYW5jZWxTY2hlZHVsZWRWYWx1ZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6QXVkaW9QYXJhbVRpbWVsaW5lOjpjYW5jZWxBbmRIb2xkQXRUaW1lKToKKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvUGFyYW1UaW1lbGluZTo6dmFsdWVGb3JDb250ZXh0VGltZSk6CisgICAg
ICAgIChXZWJDb3JlOjpBdWRpb1BhcmFtVGltZWxpbmU6OnZhbHVlc0ZvckZyYW1lUmFuZ2UpOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9QYXJhbVRpbWVsaW5lOjpoYXNWYWx1ZXMgY29uc3QpOgor
ICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbVRpbWVsaW5lLmg6CisgICAgICAg
ICogcGxhdGZvcm0vYXVkaW8vQXVkaW9EZXN0aW5hdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6
QXVkaW9EZXN0aW5hdGlvbjo6V1RGX0dVQVJERURfQllfTE9DSyk6CisgICAgICAgIChXZWJDb3Jl
OjpBdWRpb0Rlc3RpbmF0aW9uOjpBdWRpb0Rlc3RpbmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OkF1ZGlvRGVzdGluYXRpb246OmNsZWFyQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6QXVk
aW9EZXN0aW5hdGlvbjo6Y2FsbFJlbmRlckNhbGxiYWNrKToKKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9jb2NvYS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJVbml0OjphZGRT
b3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJV
bml0OjpyZW1vdmVTb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9NZWRpYVN0cmVhbVRy
YWNrUmVuZGVyZXJVbml0OjpyZW5kZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L2NvY29hL0F1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdC5oOgorCiAyMDIxLTA1LTIx
ICBBZHJpYW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CiAKICAgICAgICAg
Tm9uLXVuaWZpZWQgYnVpbGQgZml4ZXMsIGxhdGUtaXNoIE1heSAyMDIxIGVkaXRpb24KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggZmUxYzc2YjlkYjFiOTdlODQwMzM4MzE5NDUxMjJkYzc5ZjkwZWNjMy4uODczYjVlNDcz
YzJiNWQ1ZTgwMTVmMjNkZmIzNzQyMWE3YTFlOGIyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBA
QAorMjAyMS0wNS0yMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAg
IFVzZSBDaGVja2VkTG9jayBtb3JlIGluIGNhc2VzIHdoZXJlIHdlIHRyeS1sb2NrCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYwNTYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgQ2hlY2tlZExvY2sg
bW9yZSBpbiBjYXNlcyB3aGVyZSB3ZSB0cnktbG9jayB0byBiZW5lZml0IGZyb20gQ2xhbmcKKyAg
ICAgICAgVGhyZWFkIFNhZmV0eSBBbmFseXNpcy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvR1BV
L3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVEND
b2RlY3M6OnJlbGVhc2VEZWNvZGVyKToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDQ29kZWNz
OjpyZWdpc3RlckRlY29kZUZyYW1lQ2FsbGJhY2spOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJS
VENDb2RlY3M6OmNvbXBsZXRlZERlY29kaW5nKToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRD
Q29kZWNzOjpyZWxlYXNlRW5jb2Rlcik6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ0NvZGVj
czo6cmVnaXN0ZXJFbmNvZGVGcmFtZUNhbGxiYWNrKToKKyAgICAgICAgKFdlYktpdDo6TGliV2Vi
UlRDQ29kZWNzOjpjb21wbGV0ZWRFbmNvZGluZyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
d2VicnRjL0xpYldlYlJUQ0NvZGVjcy5oOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2Rl
Y3M6OkRlY29kZXI6OldURl9HVUFSREVEX0JZX0xPQ0spOgorICAgICAgICAoV2ViS2l0OjpMaWJX
ZWJSVENDb2RlY3M6OkVuY29kZXI6OldURl9HVUFSREVEX0JZX0xPQ0spOgorCiAyMDIxLTA1LTIx
ICBBZHJpYW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CiAKICAgICAgICAg
Tm9uLXVuaWZpZWQgYnVpbGQgZml4ZXMsIGxhdGUtaXNoIE1heSAyMDIxIGVkaXRpb24KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL0xvZ2dlci5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9Mb2dnZXIu
Y3BwCmluZGV4IGM4ZDg2YzA0NWEzNWJiZmViMzEyNDczZmVlMzhjOWFkMjYyOWI0YTYuLmUwYjQ1
MDY4OGZkNzgzOWZmNGNiYjI1ODk5N2FkOGM0ZjI1NTU3NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL0xvZ2dlci5jcHAKKysrIGIvU291cmNlL1dURi93dGYvTG9nZ2VyLmNwcApAQCAtMzIs
NyArMzIsNyBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAotTG9jayBsb2dnZXJPYnNlcnZlckxvY2s7
CitDaGVja2VkTG9jayBsb2dnZXJPYnNlcnZlckxvY2s7CiAKIFN0cmluZyBMb2dnZXI6OkxvZ1Np
dGVJZGVudGlmaWVyOjp0b1N0cmluZygpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi9Mb2dnZXIuaCBiL1NvdXJjZS9XVEYvd3RmL0xvZ2dlci5oCmluZGV4IDkxNTYxMWUwMzIz
YTU1MWZmZDUzZjAwNWJlMzkyNGUwNmViNmFjMmIuLmU5OWQ0OWJmMmU5ZDlhZDJhNmIzYjYxODBk
Y2JkOThjZDc4NWZhNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0xvZ2dlci5oCisrKyBi
L1NvdXJjZS9XVEYvd3RmL0xvZ2dlci5oCkBAIC0yNSw3ICsyNSw3IEBACiAKICNwcmFnbWEgb25j
ZQogCi0jaW5jbHVkZSA8d3RmL0xvY2suaD4KKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZExvY2suaD4K
ICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9TdHJpbmdCdWlsZGVyLmg+CiAKQEAgLTExMiw3ICsxMTIsNyBAQCBzdHJ1Y3QgQ29uc29sZUxv
Z1ZhbHVlPEFyZ3VtZW50LCBmYWxzZT4gewogICAgIH0KIH07CiAKLVdURl9FWFBPUlRfUFJJVkFU
RSBleHRlcm4gTG9jayBsb2dnZXJPYnNlcnZlckxvY2s7CitXVEZfRVhQT1JUX1BSSVZBVEUgZXh0
ZXJuIENoZWNrZWRMb2NrIGxvZ2dlck9ic2VydmVyTG9jazsKIAogY2xhc3MgTG9nZ2VyIDogcHVi
bGljIFRocmVhZFNhZmVSZWZDb3VudGVkPExvZ2dlcj4gewogICAgIFdURl9NQUtFX05PTkNPUFlB
QkxFKExvZ2dlcik7CkBAIC0yODUsMTIgKzI4NSwxMiBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMg
aW5saW5lIHZvaWQgYWRkT2JzZXJ2ZXIoT2JzZXJ2ZXImIG9ic2VydmVyKQogICAgIHsKLSAgICAg
ICAgYXV0byBsb2NrID0gaG9sZExvY2sob2JzZXJ2ZXJMb2NrKCkpOworICAgICAgICBMb2NrZXIg
bG9ja2VyIHsgb2JzZXJ2ZXJMb2NrKCkgfTsKICAgICAgICAgb2JzZXJ2ZXJzKCkuYXBwZW5kKG9i
c2VydmVyKTsKICAgICB9CiAgICAgc3RhdGljIGlubGluZSB2b2lkIHJlbW92ZU9ic2VydmVyKE9i
c2VydmVyJiBvYnNlcnZlcikKICAgICB7Ci0gICAgICAgIGF1dG8gbG9jayA9IGhvbGRMb2NrKG9i
c2VydmVyTG9jaygpKTsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IG9ic2VydmVyTG9jaygpIH07
CiAgICAgICAgIG9ic2VydmVycygpLnJlbW92ZUZpcnN0TWF0Y2hpbmcoWyZvYnNlcnZlcl0oYXV0
byBhbk9ic2VydmVyKSB7CiAgICAgICAgICAgICByZXR1cm4gJmFuT2JzZXJ2ZXIuZ2V0KCkgPT0g
Jm9ic2VydmVyOwogICAgICAgICB9KTsKQEAgLTMyMiwxMCArMzIyLDEwIEBAIHByaXZhdGU6CiAg
ICAgICAgIGlmIChjaGFubmVsLnN0YXRlID09IFdURkxvZ0NoYW5uZWxTdGF0ZTo6T2ZmIHx8IGxl
dmVsID4gY2hhbm5lbC5sZXZlbCkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBhdXRv
IGxvY2sgPSB0cnlIb2xkTG9jayhvYnNlcnZlckxvY2soKSk7Ci0gICAgICAgIGlmICghbG9jaykK
KyAgICAgICAgaWYgKCFvYnNlcnZlckxvY2soKS50cnlMb2NrKCkpCiAgICAgICAgICAgICByZXR1
cm47CiAKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9ja1RhZyB7IH0sIG9ic2VydmVy
TG9jaygpIH07CiAgICAgICAgIGZvciAoT2JzZXJ2ZXImIG9ic2VydmVyIDogb2JzZXJ2ZXJzKCkp
CiAgICAgICAgICAgICBvYnNlcnZlci5kaWRMb2dNZXNzYWdlKGNoYW5uZWwsIGxldmVsLCB7IENv
bnNvbGVMb2dWYWx1ZTxBcmd1bWVudD46OnRvVmFsdWUoYXJndW1lbnRzKS4uLiB9KTsKICAgICB9
CkBAIC0zNTMsMTcgKzM1MywxNyBAQCBwcml2YXRlOgogICAgICAgICBpZiAoY2hhbm5lbC5zdGF0
ZSA9PSBXVEZMb2dDaGFubmVsU3RhdGU6Ok9mZiB8fCBsZXZlbCA+IGNoYW5uZWwubGV2ZWwpCiAg
ICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgYXV0byBsb2NrID0gdHJ5SG9sZExvY2sob2Jz
ZXJ2ZXJMb2NrKCkpOwotICAgICAgICBpZiAoIWxvY2spCisgICAgICAgIGlmICghb2JzZXJ2ZXJM
b2NrKCkudHJ5TG9jaygpKQogICAgICAgICAgICAgcmV0dXJuOwogCisgICAgICAgIExvY2tlciBs
b2NrZXIgeyBBZG9wdExvY2tUYWcgeyB9LCBvYnNlcnZlckxvY2soKSB9OwogICAgICAgICBmb3Ig
KE9ic2VydmVyJiBvYnNlcnZlciA6IG9ic2VydmVycygpKQogICAgICAgICAgICAgb2JzZXJ2ZXIu
ZGlkTG9nTWVzc2FnZShjaGFubmVsLCBsZXZlbCwgeyBDb25zb2xlTG9nVmFsdWU8QXJndW1lbnQ+
Ojp0b1ZhbHVlKGFyZ3VtZW50cykuLi4gfSk7CiAgICAgfQogCi0gICAgV1RGX0VYUE9SVF9QUklW
QVRFIHN0YXRpYyBWZWN0b3I8c3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxPYnNlcnZlcj4+JiBvYnNl
cnZlcnMoKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFZlY3RvcjxzdGQ6OnJlZmVy
ZW5jZV93cmFwcGVyPE9ic2VydmVyPj4mIG9ic2VydmVycygpIFdURl9SRVFVSVJFU19MT0NLKG9i
c2VydmVyTG9jaygpKTsKIAotICAgIHN0YXRpYyBMb2NrJiBvYnNlcnZlckxvY2soKQorICAgIHN0
YXRpYyBDaGVja2VkTG9jayYgb2JzZXJ2ZXJMb2NrKCkgV1RGX1JFVFVSTlNfTE9DSyhsb2dnZXJP
YnNlcnZlckxvY2spCiAgICAgewogICAgICAgICByZXR1cm4gbG9nZ2VyT2JzZXJ2ZXJMb2NrOwog
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Q
YXJhbVRpbWVsaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Q
YXJhbVRpbWVsaW5lLmNwcAppbmRleCA3MmU0ODAwYzg4NzM3YzY2OGMxZDY2OWU4ZTAxOGUxM2Fi
MDdlOWZhLi4wNDA2ZWFiNzcxMGU4ZWQ5N2RlODk4M2EyMDBlNTE1NmMyMjllYWFmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGluZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtVGltZWxp
bmUuY3BwCkBAIC03MywxMyArNzMsMTMgQEAgc3RhdGljIGJvb2wgaGFzU2V0VGFyZ2V0Q29udmVy
Z2VkKGZsb2F0IHZhbHVlLCBmbG9hdCB0YXJnZXQsIFNlY29uZHMgY3VycmVudFRpbWUKIAogRXhj
ZXB0aW9uT3I8dm9pZD4gQXVkaW9QYXJhbVRpbWVsaW5lOjpzZXRWYWx1ZUF0VGltZShmbG9hdCB2
YWx1ZSwgU2Vjb25kcyB0aW1lKQogewotICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9ldmVu
dHNMb2NrKTsKKyAgICBMb2NrZXIgbG9ja2VyIHsgbV9ldmVudHNMb2NrIH07CiAgICAgcmV0dXJu
IGluc2VydEV2ZW50KFBhcmFtRXZlbnQ6OmNyZWF0ZVNldFZhbHVlRXZlbnQodmFsdWUsIHRpbWUp
KTsKIH0KIAogRXhjZXB0aW9uT3I8dm9pZD4gQXVkaW9QYXJhbVRpbWVsaW5lOjpsaW5lYXJSYW1w
VG9WYWx1ZUF0VGltZShmbG9hdCB0YXJnZXRWYWx1ZSwgU2Vjb25kcyBlbmRUaW1lLCBmbG9hdCBj
dXJyZW50VmFsdWUsIFNlY29uZHMgY3VycmVudFRpbWUpCiB7Ci0gICAgYXV0byBsb2NrZXIgPSBo
b2xkTG9jayhtX2V2ZW50c0xvY2spOworICAgIExvY2tlciBsb2NrZXIgeyBtX2V2ZW50c0xvY2sg
fTsKIAogICAgIC8vIExpbmVhciByYW1wIGV2ZW50cyBuZWVkIGEgcHJlY2VkaW5nIGV2ZW50IHNv
IHRoYXQgdGhleSBoYXZlIGFuIGluaXRpYWwgdmFsdWUuCiAgICAgaWYgKG1fZXZlbnRzLmlzRW1w
dHkoKSkKQEAgLTkwLDcgKzkwLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQXVkaW9QYXJhbVRpbWVs
aW5lOjpsaW5lYXJSYW1wVG9WYWx1ZUF0VGltZShmbG9hdCB0YXJnZXRWYWx1ZSwKIAogRXhjZXB0
aW9uT3I8dm9pZD4gQXVkaW9QYXJhbVRpbWVsaW5lOjpleHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRU
aW1lKGZsb2F0IHRhcmdldFZhbHVlLCBTZWNvbmRzIGVuZFRpbWUsIGZsb2F0IGN1cnJlbnRWYWx1
ZSwgU2Vjb25kcyBjdXJyZW50VGltZSkKIHsKLSAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1f
ZXZlbnRzTG9jayk7CisgICAgTG9ja2VyIGxvY2tlciB7IG1fZXZlbnRzTG9jayB9OwogCiAgICAg
Ly8gRXhwb25lbnRpYWwgcmFtcCBldmVudHMgbmVlZCBhIHByZWNlZGluZyBldmVudCBzbyB0aGF0
IHRoZXkgaGF2ZSBhbiBpbml0aWFsIHZhbHVlLgogICAgIGlmIChtX2V2ZW50cy5pc0VtcHR5KCkp
CkBAIC0xMDEsNyArMTAxLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQXVkaW9QYXJhbVRpbWVsaW5l
OjpleHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lKGZsb2F0IHRhcmdldFYKIAogRXhjZXB0aW9u
T3I8dm9pZD4gQXVkaW9QYXJhbVRpbWVsaW5lOjpzZXRUYXJnZXRBdFRpbWUoZmxvYXQgdGFyZ2V0
LCBTZWNvbmRzIHRpbWUsIGZsb2F0IHRpbWVDb25zdGFudCkKIHsKLSAgICBhdXRvIGxvY2tlciA9
IGhvbGRMb2NrKG1fZXZlbnRzTG9jayk7CisgICAgTG9ja2VyIGxvY2tlciB7IG1fZXZlbnRzTG9j
ayB9OwogICAgIC8vIElmIHRpbWVDb25zdGFudCBpcyAwLCB3ZSBpbnN0YW50bHkganVtcCB0byB0
aGUgdGFyZ2V0IHZhbHVlLCBzbyBpbnNlcnQgYSBTZXRWYWx1ZUV2ZW50IGluc3RlYWQgb2YgU2V0
VGFyZ2V0RXZlbnQuCiAgICAgaWYgKCF0aW1lQ29uc3RhbnQpCiAgICAgICAgIHJldHVybiBpbnNl
cnRFdmVudChQYXJhbUV2ZW50OjpjcmVhdGVTZXRWYWx1ZUV2ZW50KHRhcmdldCwgdGltZSkpOwpA
QCAtMTEwLDcgKzExMCw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlvUGFyYW1UaW1lbGluZTo6
c2V0VGFyZ2V0QXRUaW1lKGZsb2F0IHRhcmdldCwgU2Vjb25kcyB0aW1lCiAKIEV4Y2VwdGlvbk9y
PHZvaWQ+IEF1ZGlvUGFyYW1UaW1lbGluZTo6c2V0VmFsdWVDdXJ2ZUF0VGltZShWZWN0b3I8Zmxv
YXQ+JiYgY3VydmUsIFNlY29uZHMgdGltZSwgU2Vjb25kcyBkdXJhdGlvbikKIHsKLSAgICBhdXRv
IGxvY2tlciA9IGhvbGRMb2NrKG1fZXZlbnRzTG9jayk7CisgICAgTG9ja2VyIGxvY2tlciB7IG1f
ZXZlbnRzTG9jayB9OwogCiAgICAgZmxvYXQgY3VydmVFbmRWYWx1ZSA9IGN1cnZlLmxhc3QoKTsK
ICAgICBhdXRvIHJlc3VsdCA9IGluc2VydEV2ZW50KFBhcmFtRXZlbnQ6OmNyZWF0ZVNldFZhbHVl
Q3VydmVFdmVudChXVEZNb3ZlKGN1cnZlKSwgdGltZSwgZHVyYXRpb24pKTsKQEAgLTE4Niw3ICsx
ODYsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBBdWRpb1BhcmFtVGltZWxpbmU6Omluc2VydEV2ZW50
KFBhcmFtRXZlbnQmJiBldmVudCkKIAogdm9pZCBBdWRpb1BhcmFtVGltZWxpbmU6OmNhbmNlbFNj
aGVkdWxlZFZhbHVlcyhTZWNvbmRzIGNhbmNlbFRpbWUpCiB7Ci0gICAgYXV0byBsb2NrZXIgPSBo
b2xkTG9jayhtX2V2ZW50c0xvY2spOworICAgIExvY2tlciBsb2NrZXIgeyBtX2V2ZW50c0xvY2sg
fTsKIAogICAgIC8vIFJlbW92ZSBhbGwgZXZlbnRzIHdob3NlIHN0YXJ0IHRpbWUgaXMgZ3JlYXRl
ciB0aGFuIG9yIGVxdWFsIHRvIHRoZSBjYW5jZWwgdGltZS4KICAgICAvLyBBbHNvIGhhbmRsZSB0
aGUgc3BlY2lhbCBjYXNlIHdoZXJlIHRoZSBjYW5jZWwgdGltZSBsaWVzIGluIHRoZSBtaWRkbGUg
b2YgYQpAQCAtMjE1LDcgKzIxNSw3IEBAIHZvaWQgQXVkaW9QYXJhbVRpbWVsaW5lOjpjYW5jZWxT
Y2hlZHVsZWRWYWx1ZXMoU2Vjb25kcyBjYW5jZWxUaW1lKQogCiBFeGNlcHRpb25Pcjx2b2lkPiBB
dWRpb1BhcmFtVGltZWxpbmU6OmNhbmNlbEFuZEhvbGRBdFRpbWUoU2Vjb25kcyBjYW5jZWxUaW1l
KQogewotICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9ldmVudHNMb2NrKTsKKyAgICBMb2Nr
ZXIgbG9ja2VyIHsgbV9ldmVudHNMb2NrIH07CiAKICAgICAvLyBGaW5kIHRoZSBmaXJzdCBldmVu
dCBhdCBvciBqdXN0IHBhc3QgY2FuY2VsVGltZS4KICAgICBzaXplX3QgaSA9IG1fZXZlbnRzLmZp
bmRNYXRjaGluZyhbJl0oYXV0byYgZXZlbnQpIHsKQEAgLTMyNyw4ICszMjcsMTAgQEAgdm9pZCBB
dWRpb1BhcmFtVGltZWxpbmU6OnJlbW92ZUNhbmNlbGxlZEV2ZW50cyhzaXplX3QgZmlyc3RFdmVu
dFRvUmVtb3ZlKQogT3B0aW9uYWw8ZmxvYXQ+IEF1ZGlvUGFyYW1UaW1lbGluZTo6dmFsdWVGb3JD
b250ZXh0VGltZShCYXNlQXVkaW9Db250ZXh0JiBjb250ZXh0LCBmbG9hdCBkZWZhdWx0VmFsdWUs
IGZsb2F0IG1pblZhbHVlLCBmbG9hdCBtYXhWYWx1ZSkKIHsKICAgICB7Ci0gICAgICAgIGF1dG8g
bG9ja2VyID0gdHJ5SG9sZExvY2sobV9ldmVudHNMb2NrKTsKLSAgICAgICAgaWYgKCFsb2NrZXIg
fHwgIW1fZXZlbnRzLnNpemUoKSB8fCBTZWNvbmRzIHsgY29udGV4dC5jdXJyZW50VGltZSgpIH0g
PCBtX2V2ZW50c1swXS50aW1lKCkpCisgICAgICAgIGlmICghbV9ldmVudHNMb2NrLnRyeUxvY2so
KSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgICAgIExvY2tlciBsb2Nr
ZXIgeyBBZG9wdExvY2tUYWcgeyB9LCBtX2V2ZW50c0xvY2sgfTsKKyAgICAgICAgaWYgKCFtX2V2
ZW50cy5zaXplKCkgfHwgU2Vjb25kcyB7IGNvbnRleHQuY3VycmVudFRpbWUoKSB9IDwgbV9ldmVu
dHNbMF0udGltZSgpKQogICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICB9CiAK
QEAgLTM0NSwxMSArMzQ3LDExIEBAIE9wdGlvbmFsPGZsb2F0PiBBdWRpb1BhcmFtVGltZWxpbmU6
OnZhbHVlRm9yQ29udGV4dFRpbWUoQmFzZUF1ZGlvQ29udGV4dCYgY29udGV4CiBmbG9hdCBBdWRp
b1BhcmFtVGltZWxpbmU6OnZhbHVlc0ZvckZyYW1lUmFuZ2Uoc2l6ZV90IHN0YXJ0RnJhbWUsIHNp
emVfdCBlbmRGcmFtZSwgZmxvYXQgZGVmYXVsdFZhbHVlLCBmbG9hdCBtaW5WYWx1ZSwgZmxvYXQg
bWF4VmFsdWUsIGZsb2F0KiB2YWx1ZXMsIHVuc2lnbmVkIG51bWJlck9mVmFsdWVzLCBkb3VibGUg
c2FtcGxlUmF0ZSwgZG91YmxlIGNvbnRyb2xSYXRlKQogewogICAgIC8vIFdlIGNhbid0IGNvbnRl
bmQgdGhlIGxvY2sgaW4gdGhlIHJlYWx0aW1lIGF1ZGlvIHRocmVhZC4KLSAgICBhdXRvIGxvY2tl
ciA9IHRyeUhvbGRMb2NrKG1fZXZlbnRzTG9jayk7Ci0gICAgaWYgKCFsb2NrZXIpIHsKKyAgICBp
ZiAoIW1fZXZlbnRzTG9jay50cnlMb2NrKCkpIHsKICAgICAgICAgc3RkOjpmaWxsX24odmFsdWVz
LCBudW1iZXJPZlZhbHVlcywgZGVmYXVsdFZhbHVlKTsKICAgICAgICAgcmV0dXJuIGRlZmF1bHRW
YWx1ZTsKICAgICB9CisgICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9ja1RhZyB7IH0sIG1fZXZl
bnRzTG9jayB9OwogCiAgICAgZmxvYXQgdmFsdWUgPSB2YWx1ZXNGb3JGcmFtZVJhbmdlSW1wbChz
dGFydEZyYW1lLCBlbmRGcmFtZSwgZGVmYXVsdFZhbHVlLCB2YWx1ZXMsIG51bWJlck9mVmFsdWVz
LCBzYW1wbGVSYXRlLCBjb250cm9sUmF0ZSk7CiAKQEAgLTk4NCw5ICs5ODYsOSBAQCBib29sIEF1
ZGlvUGFyYW1UaW1lbGluZTo6aXNFdmVudEN1cnJlbnQoY29uc3QgUGFyYW1FdmVudCYgZXZlbnQs
IGNvbnN0IFBhcmFtRXZlbgogCiBib29sIEF1ZGlvUGFyYW1UaW1lbGluZTo6aGFzVmFsdWVzKHNp
emVfdCBzdGFydEZyYW1lLCBkb3VibGUgc2FtcGxlUmF0ZSkgY29uc3QKIHsKLSAgICBhdXRvIGxv
Y2tlciA9IHRyeUhvbGRMb2NrKG1fZXZlbnRzTG9jayk7Ci0gICAgaWYgKCFsb2NrZXIpCisgICAg
aWYgKCFtX2V2ZW50c0xvY2sudHJ5TG9jaygpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBM
b2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrVGFnIHsgfSwgbV9ldmVudHNMb2NrIH07CiAKICAgICAv
LyBSZXR1cm4gZmFsc2UgaWYgdGhlcmUgYXJlIG5vIGV2ZW50cyBpbiB0aGUgdGltZSByYW5nZS4K
ICAgICBhdXRvIGVuZEZyYW1lID0gc3RhcnRGcmFtZSArIEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJR
dWFudHVtU2l6ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9QYXJhbVRpbWVsaW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvUGFyYW1UaW1lbGluZS5oCmluZGV4IDRjZDFhMGYwMTQxYzkxODFiNGZiNjMwYzE3MzQ2NjMz
ZjM4Mjg3OTguLjliNzI2MTdkNDJjMDhhNDc0YTc1MjU2NDUxYzUwMzZjNDMxZDgyOTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbVRpbWVsaW5l
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtVGltZWxp
bmUuaApAQCAtMzAsNyArMzAsNyBAQAogCiAjaW5jbHVkZSAiQXVkaW9Db250ZXh0LmgiCiAjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvRmxvYXQzMkFycmF5Lmg+Ci0jaW5jbHVkZSA8d3RmL0xvY2su
aD4KKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZExvY2suaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE4OSw5ICsxODksOSBAQCBwcml2YXRlOgogICAg
ICAgICBjb25zdCBpbnQgZXZlbnRJbmRleDsKICAgICB9OwogCi0gICAgdm9pZCByZW1vdmVDYW5j
ZWxsZWRFdmVudHMoc2l6ZV90IGZpcnN0RXZlbnRUb1JlbW92ZSk7Ci0gICAgRXhjZXB0aW9uT3I8
dm9pZD4gaW5zZXJ0RXZlbnQoUGFyYW1FdmVudCYmKTsKLSAgICBmbG9hdCB2YWx1ZXNGb3JGcmFt
ZVJhbmdlSW1wbChzaXplX3Qgc3RhcnRGcmFtZSwgc2l6ZV90IGVuZEZyYW1lLCBmbG9hdCBkZWZh
dWx0VmFsdWUsIGZsb2F0KiB2YWx1ZXMsIHVuc2lnbmVkIG51bWJlck9mVmFsdWVzLCBkb3VibGUg
c2FtcGxlUmF0ZSwgZG91YmxlIGNvbnRyb2xSYXRlKTsKKyAgICB2b2lkIHJlbW92ZUNhbmNlbGxl
ZEV2ZW50cyhzaXplX3QgZmlyc3RFdmVudFRvUmVtb3ZlKSBXVEZfUkVRVUlSRVNfTE9DSyhtX2V2
ZW50c0xvY2spOworICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IGluc2VydEV2ZW50KFBhcmFtRXZlbnQm
JikgV1RGX1JFUVVJUkVTX0xPQ0sobV9ldmVudHNMb2NrKTsKKyAgICBmbG9hdCB2YWx1ZXNGb3JG
cmFtZVJhbmdlSW1wbChzaXplX3Qgc3RhcnRGcmFtZSwgc2l6ZV90IGVuZEZyYW1lLCBmbG9hdCBk
ZWZhdWx0VmFsdWUsIGZsb2F0KiB2YWx1ZXMsIHVuc2lnbmVkIG51bWJlck9mVmFsdWVzLCBkb3Vi
bGUgc2FtcGxlUmF0ZSwgZG91YmxlIGNvbnRyb2xSYXRlKSBXVEZfUkVRVUlSRVNfTE9DSyhtX2V2
ZW50c0xvY2spOwogICAgIGZsb2F0IGxpbmVhclJhbXBBdFRpbWUoU2Vjb25kcyB0LCBmbG9hdCB2
YWx1ZTEsIFNlY29uZHMgdGltZTEsIGZsb2F0IHZhbHVlMiwgU2Vjb25kcyB0aW1lMik7CiAgICAg
ZmxvYXQgZXhwb25lbnRpYWxSYW1wQXRUaW1lKFNlY29uZHMgdCwgZmxvYXQgdmFsdWUxLCBTZWNv
bmRzIHRpbWUxLCBmbG9hdCB2YWx1ZTIsIFNlY29uZHMgdGltZTIpOwogICAgIGZsb2F0IHZhbHVl
Q3VydmVBdFRpbWUoU2Vjb25kcyB0LCBTZWNvbmRzIHRpbWUxLCBTZWNvbmRzIGR1cmF0aW9uLCBj
b25zdCBmbG9hdCogY3VydmVEYXRhLCBzaXplX3QgY3VydmVMZW5ndGgpOwpAQCAtMjAwLDE0ICsy
MDAsMTQgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcHJvY2Vzc0xpbmVhclJhbXAoY29uc3QgQXV0
b21hdGlvblN0YXRlJiwgZmxvYXQqIHZhbHVlcywgc2l6ZV90JiBjdXJyZW50RnJhbWUsIGZsb2F0
JiB2YWx1ZSwgdW5zaWduZWQmIHdyaXRlSW5kZXgpOwogICAgIHZvaWQgcHJvY2Vzc0V4cG9uZW50
aWFsUmFtcChjb25zdCBBdXRvbWF0aW9uU3RhdGUmLCBmbG9hdCogdmFsdWVzLCBzaXplX3QmIGN1
cnJlbnRGcmFtZSwgZmxvYXQmIHZhbHVlLCB1bnNpZ25lZCYgd3JpdGVJbmRleCk7Ci0gICAgdm9p
ZCBwcm9jZXNzQ2FuY2VsVmFsdWVzKGNvbnN0IEF1dG9tYXRpb25TdGF0ZSYsIGZsb2F0KiB2YWx1
ZXMsIHNpemVfdCYgY3VycmVudEZyYW1lLCBmbG9hdCYgdmFsdWUsIHVuc2lnbmVkJiB3cml0ZUlu
ZGV4KTsKKyAgICB2b2lkIHByb2Nlc3NDYW5jZWxWYWx1ZXMoY29uc3QgQXV0b21hdGlvblN0YXRl
JiwgZmxvYXQqIHZhbHVlcywgc2l6ZV90JiBjdXJyZW50RnJhbWUsIGZsb2F0JiB2YWx1ZSwgdW5z
aWduZWQmIHdyaXRlSW5kZXgpIFdURl9SRVFVSVJFU19MT0NLKG1fZXZlbnRzTG9jayk7CiAgICAg
dm9pZCBwcm9jZXNzU2V0VGFyZ2V0KGNvbnN0IEF1dG9tYXRpb25TdGF0ZSYsIGZsb2F0KiB2YWx1
ZXMsIHNpemVfdCYgY3VycmVudEZyYW1lLCBmbG9hdCYgdmFsdWUsIHVuc2lnbmVkJiB3cml0ZUlu
ZGV4KTsKICAgICB2b2lkIHByb2Nlc3NTZXRWYWx1ZUN1cnZlKGNvbnN0IEF1dG9tYXRpb25TdGF0
ZSYsIGZsb2F0KiB2YWx1ZXMsIHNpemVfdCYgY3VycmVudEZyYW1lLCBmbG9hdCYgdmFsdWUsIHVu
c2lnbmVkJiB3cml0ZUluZGV4KTsKLSAgICB2b2lkIHByb2Nlc3NTZXRUYXJnZXRGb2xsb3dlZEJ5
UmFtcChpbnQgZXZlbnRJbmRleCwgUGFyYW1FdmVudComLCBQYXJhbUV2ZW50OjpUeXBlIG5leHRF
dmVudFR5cGUsIHNpemVfdCBjdXJyZW50RnJhbWUsIGRvdWJsZSBzYW1wbGluZ1BlcmlvZCwgZG91
YmxlIGNvbnRyb2xSYXRlLCBmbG9hdCYgdmFsdWUpOworICAgIHZvaWQgcHJvY2Vzc1NldFRhcmdl
dEZvbGxvd2VkQnlSYW1wKGludCBldmVudEluZGV4LCBQYXJhbUV2ZW50KiYsIFBhcmFtRXZlbnQ6
OlR5cGUgbmV4dEV2ZW50VHlwZSwgc2l6ZV90IGN1cnJlbnRGcmFtZSwgZG91YmxlIHNhbXBsaW5n
UGVyaW9kLCBkb3VibGUgY29udHJvbFJhdGUsIGZsb2F0JiB2YWx1ZSkgV1RGX1JFUVVJUkVTX0xP
Q0sobV9ldmVudHNMb2NrKTsKIAotICAgIFZlY3RvcjxQYXJhbUV2ZW50PiBtX2V2ZW50czsKKyAg
ICBWZWN0b3I8UGFyYW1FdmVudD4gbV9ldmVudHMgV1RGX0dVQVJERURfQllfTE9DSyhtX2V2ZW50
c0xvY2spOwogCi0gICAgbXV0YWJsZSBMb2NrIG1fZXZlbnRzTG9jazsKKyAgICBtdXRhYmxlIENo
ZWNrZWRMb2NrIG1fZXZlbnRzTG9jazsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvRGVzdGluYXRpb24u
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvRGVzdGluYXRpb24uaAppbmRl
eCA4MzE5NjQ3M2JjMWFhOWJkZWU4NmY3MGQ3NGYwOTAxODE3ZjZmNjhhLi5lYjU0ZjBkNTFkNzg2
MGI5ZjYwNDBkODkzNTg4NDQ4ODJhNjViYjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9BdWRpb0Rlc3RpbmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vQXVkaW9EZXN0aW5hdGlvbi5oCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVk
ZSAiQXVkaW9CdXMuaCIKICNpbmNsdWRlICJBdWRpb0lPQ2FsbGJhY2suaCIKICNpbmNsdWRlIDxt
ZW1vcnk+CisjaW5jbHVkZSA8d3RmL0NoZWNrZWRMb2NrLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBs
ZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvVGhy
ZWFkU2FmZVJlZkNvdW50ZWQuaD4KQEAgLTc3LDMwICs3OCwzMiBAQCBwdWJsaWM6CiBwcm90ZWN0
ZWQ6CiAgICAgZXhwbGljaXQgQXVkaW9EZXN0aW5hdGlvbihBdWRpb0lPQ2FsbGJhY2smKTsKIAot
ICAgIExvY2sgbV9jYWxsYmFja0xvY2s7Ci0gICAgQXVkaW9JT0NhbGxiYWNrKiBtX2NhbGxiYWNr
IHsgbnVsbHB0ciB9OworICAgIENoZWNrZWRMb2NrIG1fY2FsbGJhY2tMb2NrOworICAgIEF1ZGlv
SU9DYWxsYmFjayogbV9jYWxsYmFjayBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fY2FsbGJhY2tMb2Nr
KSB7IG51bGxwdHIgfTsKIH07CiAKIGlubGluZSBBdWRpb0Rlc3RpbmF0aW9uOjpBdWRpb0Rlc3Rp
bmF0aW9uKEF1ZGlvSU9DYWxsYmFjayYgY2FsbGJhY2spCiB7Ci0gICAgYXV0byBsb2NrZXIgPSBo
b2xkTG9jayhtX2NhbGxiYWNrTG9jayk7CisgICAgTG9ja2VyIGxvY2tlciB7IG1fY2FsbGJhY2tM
b2NrIH07CiAgICAgbV9jYWxsYmFjayA9ICZjYWxsYmFjazsKIH0KIAogaW5saW5lIHZvaWQgQXVk
aW9EZXN0aW5hdGlvbjo6Y2xlYXJDYWxsYmFjaygpCiB7Ci0gICAgYXV0byBsb2NrZXIgPSBob2xk
TG9jayhtX2NhbGxiYWNrTG9jayk7CisgICAgTG9ja2VyIGxvY2tlciB7IG1fY2FsbGJhY2tMb2Nr
IH07CiAgICAgbV9jYWxsYmFjayA9IG51bGxwdHI7CiB9CiAKIGlubGluZSB2b2lkIEF1ZGlvRGVz
dGluYXRpb246OmNhbGxSZW5kZXJDYWxsYmFjayhBdWRpb0J1cyogc291cmNlQnVzLCBBdWRpb0J1
cyogZGVzdGluYXRpb25CdXMsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MsIGNvbnN0IEF1ZGlvSU9Q
b3NpdGlvbiYgb3V0cHV0UG9zaXRpb24pCiB7Ci0gICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9j
ayhtX2NhbGxiYWNrTG9jayk7Ci0gICAgaWYgKCFsb2NrZXIgfHwgIW1fY2FsbGJhY2spIHsKLSAg
ICAgICAgZGVzdGluYXRpb25CdXMtPnplcm8oKTsKLSAgICAgICAgcmV0dXJuOworICAgIGlmICht
X2NhbGxiYWNrTG9jay50cnlMb2NrKCkpIHsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0
TG9ja1RhZyB7IH0sIG1fY2FsbGJhY2tMb2NrIH07CisgICAgICAgIGlmIChtX2NhbGxiYWNrKSB7
CisgICAgICAgICAgICBtX2NhbGxiYWNrLT5yZW5kZXIoc291cmNlQnVzLCBkZXN0aW5hdGlvbkJ1
cywgZnJhbWVzVG9Qcm9jZXNzLCBvdXRwdXRQb3NpdGlvbik7CisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KICAgICB9Ci0gICAgbV9jYWxsYmFjay0+cmVuZGVyKHNvdXJjZUJ1cywgZGVz
dGluYXRpb25CdXMsIGZyYW1lc1RvUHJvY2Vzcywgb3V0cHV0UG9zaXRpb24pOworICAgIGRlc3Rp
bmF0aW9uQnVzLT56ZXJvKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRGVzdGluYXRpb25D
b2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0Rlc3Rp
bmF0aW9uQ29jb2EuY3BwCmluZGV4IGUxNGY4NzQzMmYyYTA5YmFjYTI2YmY2NmJhNjgzNGM2ZmY4
NWQwYmEuLmU1ODkxNGQ5OGM5NmE5MDdjMTVmOTYzZjc3Yjg0MTJhMTk3NmZkODMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRGVzdGluYXRpb25D
b2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9E
ZXN0aW5hdGlvbkNvY29hLmNwcApAQCAtMTYwLDcgKzE2MCw3IEBAIHZvaWQgQXVkaW9EZXN0aW5h
dGlvbkNvY29hOjpzZXRJc1BsYXlpbmcoYm9vbCBpc1BsYXlpbmcpCiAgICAgfQogCiAgICAgewot
ICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fY2FsbGJhY2tMb2NrKTsKKyAgICAgICAg
TG9ja2VyIGxvY2tlciB7IG1fY2FsbGJhY2tMb2NrIH07CiAgICAgICAgIGlmIChtX2NhbGxiYWNr
KQogICAgICAgICAgICAgbV9jYWxsYmFjay0+aXNQbGF5aW5nRGlkQ2hhbmdlKCk7CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRD
Q29kZWNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJU
Q0NvZGVjcy5jcHAKaW5kZXggZDViNGQ0NjVmNjIxY2EwODYzYWM5MjAxM2ZmMDM5YWM4OGJkZGNm
YS4uZjQ0YzQxODkyYjM4ZjViYWQzMTk2ZDY5YTFjMTMyNGNlOTNiNWVjMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3Mu
Y3BwCkBAIC0yNzAsNyArMjcwLDEyIEBAIExpYldlYlJUQ0NvZGVjczo6RGVjb2RlciogTGliV2Vi
UlRDQ29kZWNzOjpjcmVhdGVEZWNvZGVyKFR5cGUgdHlwZSkKIAogaW50MzJfdCBMaWJXZWJSVEND
b2RlY3M6OnJlbGVhc2VEZWNvZGVyKERlY29kZXImIGRlY29kZXIpCiB7Ci0gICAgQVNTRVJUKCFk
ZWNvZGVyLmRlY29kZWRJbWFnZUNhbGxiYWNrKTsKKyNpZiBBU1NFUlRfRU5BQkxFRAorICAgIHsK
KyAgICAgICAgTG9ja2VyIGxvY2tlciB7IGRlY29kZXIuZGVjb2RlZEltYWdlQ2FsbGJhY2tMb2Nr
IH07CisgICAgICAgIEFTU0VSVCghZGVjb2Rlci5kZWNvZGVkSW1hZ2VDYWxsYmFjayk7CisgICAg
fQorI2VuZGlmCiAgICAgZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb25BbmREaXNwYXRjaFRvVGhy
ZWFkKFt0aGlzLCBkZWNvZGVySWRlbnRpZmllciA9IGRlY29kZXIuaWRlbnRpZmllcl0gewogICAg
ICAgICBBU1NFUlQobV9kZWNvZGVycy5jb250YWlucyhkZWNvZGVySWRlbnRpZmllcikpOwogICAg
ICAgICBpZiAoYXV0byBkZWNvZGVyID0gbV9kZWNvZGVycy50YWtlKGRlY29kZXJJZGVudGlmaWVy
KSkgewpAQCAtMjk4LDcgKzMwMyw3IEBAIGludDMyX3QgTGliV2ViUlRDQ29kZWNzOjpkZWNvZGVG
cmFtZShEZWNvZGVyJiBkZWNvZGVyLCB1aW50MzJfdCB0aW1lU3RhbXAsIGNvbnN0CiAKIHZvaWQg
TGliV2ViUlRDQ29kZWNzOjpyZWdpc3RlckRlY29kZUZyYW1lQ2FsbGJhY2soRGVjb2RlciYgZGVj
b2Rlciwgdm9pZCogZGVjb2RlZEltYWdlQ2FsbGJhY2spCiB7Ci0gICAgTG9ja0hvbGRlciBob2xk
ZXIoZGVjb2Rlci5kZWNvZGVkSW1hZ2VDYWxsYmFja0xvY2spOworICAgIExvY2tlciBsb2NrZXIg
eyBkZWNvZGVyLmRlY29kZWRJbWFnZUNhbGxiYWNrTG9jayB9OwogICAgIGRlY29kZXIuZGVjb2Rl
ZEltYWdlQ2FsbGJhY2sgPSBkZWNvZGVkSW1hZ2VDYWxsYmFjazsKIH0KIApAQCAtMzE5LDEwICsz
MjQsMTEgQEAgdm9pZCBMaWJXZWJSVENDb2RlY3M6OmNvbXBsZXRlZERlY29kaW5nKFJUQ0RlY29k
ZXJJZGVudGlmaWVyIGRlY29kZXJJZGVudGlmaWVyLAogICAgIGlmICghZGVjb2RlcikKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhkZWNvZGVyLT5kZWNv
ZGVkSW1hZ2VDYWxsYmFja0xvY2spOwotICAgIGlmICghbG9ja2VyKQorICAgIGlmICghZGVjb2Rl
ci0+ZGVjb2RlZEltYWdlQ2FsbGJhY2tMb2NrLnRyeUxvY2soKSkKICAgICAgICAgcmV0dXJuOwog
CisgICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9ja1RhZyB7IH0sIGRlY29kZXItPmRlY29kZWRJ
bWFnZUNhbGxiYWNrTG9jayB9OworCiAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGVkSW1hZ2VDYWxs
YmFjaykKICAgICAgICAgcmV0dXJuOwogCkBAIC0zOTMsNyArMzk5LDEyIEBAIExpYldlYlJUQ0Nv
ZGVjczo6RW5jb2RlciogTGliV2ViUlRDQ29kZWNzOjpjcmVhdGVFbmNvZGVyKFR5cGUgdHlwZSwg
Y29uc3Qgc3RkOjptCiAKIGludDMyX3QgTGliV2ViUlRDQ29kZWNzOjpyZWxlYXNlRW5jb2RlcihF
bmNvZGVyJiBlbmNvZGVyKQogewotICAgIEFTU0VSVCghZW5jb2Rlci5lbmNvZGVkSW1hZ2VDYWxs
YmFjayk7CisjaWYgQVNTRVJUX0VOQUJMRUQKKyAgICB7CisgICAgICAgIExvY2tlciBsb2NrZXIg
eyBlbmNvZGVyLmVuY29kZWRJbWFnZUNhbGxiYWNrTG9jayB9OworICAgICAgICBBU1NFUlQoIWVu
Y29kZXIuZW5jb2RlZEltYWdlQ2FsbGJhY2spOworICAgIH0KKyNlbmRpZgogICAgIGVuc3VyZUdQ
VVByb2Nlc3NDb25uZWN0aW9uQW5kRGlzcGF0Y2hUb1RocmVhZChbdGhpcywgZW5jb2RlcklkZW50
aWZpZXIgPSBlbmNvZGVyLmlkZW50aWZpZXJdIHsKICAgICAgICAgQVNTRVJUKG1fZW5jb2RlcnMu
Y29udGFpbnMoZW5jb2RlcklkZW50aWZpZXIpKTsKICAgICAgICAgYXV0byBlbmNvZGVyID0gbV9l
bmNvZGVycy50YWtlKGVuY29kZXJJZGVudGlmaWVyKTsKQEAgLTQ1NCw3ICs0NjUsNyBAQCBpbnQz
Ml90IExpYldlYlJUQ0NvZGVjczo6ZW5jb2RlRnJhbWUoRW5jb2RlciYgZW5jb2RlciwgY29uc3Qg
d2VicnRjOjpWaWRlb0ZyYW1lJgogCiB2b2lkIExpYldlYlJUQ0NvZGVjczo6cmVnaXN0ZXJFbmNv
ZGVGcmFtZUNhbGxiYWNrKEVuY29kZXImIGVuY29kZXIsIHZvaWQqIGVuY29kZWRJbWFnZUNhbGxi
YWNrKQogewotICAgIExvY2tIb2xkZXIgaG9sZGVyKGVuY29kZXIuZW5jb2RlZEltYWdlQ2FsbGJh
Y2tMb2NrKTsKKyAgICBMb2NrZXIgbG9ja2VyIHsgZW5jb2Rlci5lbmNvZGVkSW1hZ2VDYWxsYmFj
a0xvY2sgfTsKIAogICAgIGVuY29kZXIuZW5jb2RlZEltYWdlQ2FsbGJhY2sgPSBlbmNvZGVkSW1h
Z2VDYWxsYmFjazsKIH0KQEAgLTQ4MSwxMCArNDkyLDExIEBAIHZvaWQgTGliV2ViUlRDQ29kZWNz
Ojpjb21wbGV0ZWRFbmNvZGluZyhSVENFbmNvZGVySWRlbnRpZmllciBpZGVudGlmaWVyLCBJUEM6
OkRhCiAgICAgaWYgKCFlbmNvZGVyKQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvIGxvY2tl
ciA9IHRyeUhvbGRMb2NrKGVuY29kZXItPmVuY29kZWRJbWFnZUNhbGxiYWNrTG9jayk7Ci0gICAg
aWYgKCFsb2NrZXIpCisgICAgaWYgKCFlbmNvZGVyLT5lbmNvZGVkSW1hZ2VDYWxsYmFja0xvY2su
dHJ5TG9jaygpKQogICAgICAgICByZXR1cm47CiAKKyAgICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRM
b2NrVGFnIHsgfSwgZW5jb2Rlci0+ZW5jb2RlZEltYWdlQ2FsbGJhY2tMb2NrIH07CisKICAgICBp
ZiAoIWVuY29kZXItPmVuY29kZWRJbWFnZUNhbGxiYWNrKQogICAgICAgICByZXR1cm47CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0Nv
ZGVjcy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29k
ZWNzLmgKaW5kZXggMWNkOGY0ZWU2MTE4ZDhkNDU2ZmE2OWFlZTA2MjJiZjc2NTc1NjU4ZS4uNGEw
ZTY0YjE4NGU3MTZlM2UwMTExOTIyNDk3ZjZmOTExMjM0NDcwMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmgKQEAgLTc0
LDggKzc0LDggQEAgcHVibGljOgogICAgIHB1YmxpYzoKICAgICAgICAgUlRDRGVjb2RlcklkZW50
aWZpZXIgaWRlbnRpZmllcjsKICAgICAgICAgVHlwZSB0eXBlOwotICAgICAgICB2b2lkKiBkZWNv
ZGVkSW1hZ2VDYWxsYmFjayB7IG51bGxwdHIgfTsKLSAgICAgICAgTG9jayBkZWNvZGVkSW1hZ2VD
YWxsYmFja0xvY2s7CisgICAgICAgIHZvaWQqIGRlY29kZWRJbWFnZUNhbGxiYWNrIFdURl9HVUFS
REVEX0JZX0xPQ0soZGVjb2RlZEltYWdlQ2FsbGJhY2tMb2NrKSB7IG51bGxwdHIgfTsKKyAgICAg
ICAgQ2hlY2tlZExvY2sgZGVjb2RlZEltYWdlQ2FsbGJhY2tMb2NrOwogICAgICAgICBib29sIGhh
c0Vycm9yIHsgZmFsc2UgfTsKICAgICAgICAgUmVmUHRyPElQQzo6Q29ubmVjdGlvbj4gY29ubmVj
dGlvbjsKICAgICB9OwpAQCAtMTAwLDggKzEwMCw4IEBAIHB1YmxpYzoKICAgICAgICAgd2VicnRj
OjpWaWRlb0NvZGVjVHlwZSBjb2RlY1R5cGUgeyB3ZWJydGM6OmtWaWRlb0NvZGVjR2VuZXJpYyB9
OwogICAgICAgICBWZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPj4gcGFyYW1ldGVyczsK
ICAgICAgICAgT3B0aW9uYWw8RW5jb2RlckluaXRpYWxpemF0aW9uRGF0YT4gaW5pdGlhbGl6YXRp
b25EYXRhOwotICAgICAgICB2b2lkKiBlbmNvZGVkSW1hZ2VDYWxsYmFjayB7IG51bGxwdHIgfTsK
LSAgICAgICAgTG9jayBlbmNvZGVkSW1hZ2VDYWxsYmFja0xvY2s7CisgICAgICAgIHZvaWQqIGVu
Y29kZWRJbWFnZUNhbGxiYWNrIFdURl9HVUFSREVEX0JZX0xPQ0soZW5jb2RlZEltYWdlQ2FsbGJh
Y2tMb2NrKSB7IG51bGxwdHIgfTsKKyAgICAgICAgQ2hlY2tlZExvY2sgZW5jb2RlZEltYWdlQ2Fs
bGJhY2tMb2NrOwogICAgICAgICBSZWZQdHI8SVBDOjpDb25uZWN0aW9uPiBjb25uZWN0aW9uOwog
ICAgIH07CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>