<?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>226255</bug_id>
          
          <creation_ts>2021-05-25 19:35:23 -0700</creation_ts>
          <short_desc>Stop using UncheckedLock in WTF::AutomaticThread</short_desc>
          <delta_ts>2021-05-26 09:47:18 -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>Web Template Framework</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <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>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1763805</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-25 19:35:23 -0700</bug_when>
    <thetext>Stop using UncheckedLock in WTF::AutomaticThread as it is being phased out in favor of Lock, which supports Clang thread safety analysis.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763806</commentid>
    <comment_count>1</comment_count>
      <attachid>429725</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-25 19:41:19 -0700</bug_when>
    <thetext>Created attachment 429725
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763807</commentid>
    <comment_count>2</comment_count>
      <attachid>429726</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-25 20:09:16 -0700</bug_when>
    <thetext>Created attachment 429726
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763810</commentid>
    <comment_count>3</comment_count>
      <attachid>429727</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-25 20:13:00 -0700</bug_when>
    <thetext>Created attachment 429727
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763909</commentid>
    <comment_count>4</comment_count>
      <attachid>429727</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-05-26 08:04:08 -0700</bug_when>
    <thetext>Comment on attachment 429727
Patch

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

&gt; Source/WTF/wtf/ParallelHelperPool.cpp:189
&gt; +        assertIsHeld(*m_pool.m_lock);

Why not just annotate the poll function? Or does this only work for locks that are a member of the same class as the method?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763911</commentid>
    <comment_count>5</comment_count>
      <attachid>429727</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-26 08:06:40 -0700</bug_when>
    <thetext>Comment on attachment 429727
Patch

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

&gt;&gt; Source/WTF/wtf/ParallelHelperPool.cpp:189
&gt;&gt; +        assertIsHeld(*m_pool.m_lock);
&gt; 
&gt; Why not just annotate the poll function? Or does this only work for locks that are a member of the same class as the method?

I&apos;ll try. I think I already tried that and it didn&apos;t work but I don&apos;t really remember why.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763913</commentid>
    <comment_count>6</comment_count>
      <attachid>429759</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-26 08:11:37 -0700</bug_when>
    <thetext>Created attachment 429759
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763914</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-26 08:12:10 -0700</bug_when>
    <thetext>(In reply to Keith Miller from comment #4)
&gt; Comment on attachment 429727 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=429727&amp;action=review
&gt; 
&gt; &gt; Source/WTF/wtf/ParallelHelperPool.cpp:189
&gt; &gt; +        assertIsHeld(*m_pool.m_lock);
&gt; 
&gt; Why not just annotate the poll function? Or does this only work for locks
&gt; that are a member of the same class as the method?

Looks like it builds without the assertIsHeld() and the annotation. Made the change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763918</commentid>
    <comment_count>8</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-05-26 08:19:17 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #7)
&gt; (In reply to Keith Miller from comment #4)
&gt; &gt; Comment on attachment 429727 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=429727&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WTF/wtf/ParallelHelperPool.cpp:189
&gt; &gt; &gt; +        assertIsHeld(*m_pool.m_lock);
&gt; &gt; 
&gt; &gt; Why not just annotate the poll function? Or does this only work for locks
&gt; &gt; that are a member of the same class as the method?
&gt; 
&gt; Looks like it builds without the assertIsHeld() and the annotation. Made the
&gt; change.

Interesting, I&apos;m surprised it&apos;s able to prove that no function changes the m_pool ref. Or maybe it makes the assumption that those values are constant? I guess the same thing would apply to the Box&lt;Lock&gt; that we pass to the AtomaticThread too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763944</commentid>
    <comment_count>9</comment_count>
      <attachid>429767</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-26 09:42:46 -0700</bug_when>
    <thetext>Created attachment 429767
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763945</commentid>
    <comment_count>10</comment_count>
      <attachid>429767</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-26 09:46:45 -0700</bug_when>
    <thetext>Comment on attachment 429767
Patch

Clearing flags on attachment: 429767

Committed r278087 (238164@main): &lt;https://commits.webkit.org/238164@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763946</commentid>
    <comment_count>11</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-26 09:46:48 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763947</commentid>
    <comment_count>12</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-26 09:47:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/78517626&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429725</attachid>
            <date>2021-05-25 19:41:19 -0700</date>
            <delta_ts>2021-05-25 20:09:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226255-20210525194118.patch</filename>
            <type>text/plain</type>
            <size>20680</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MDcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
ZDFmMDk1NDllNjEzNWY1MWEyMjc5MzMwN2YwMDFhZGE2OTczYmU2Li5iMzdiYjM3MzQwZTZhYjlk
ZTFkZjQxZjdmODQyMGRiZDNiMGUzNGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOSBAQAorMjAyMS0wNS0yNSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFN0b3AgdXNpbmcgVW5jaGVja2VkTG9jayBpbiBXVEY6OkF1dG9tYXRpY1RocmVh
ZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MjU1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU29tZSBj
b2RlIGluIEpTQyBoYWQgdG8gYmUgcG9ydGVkIGZyb20gVW5jaGVja2VkTG9jayB0byBMb2NrIGFz
IGEgcmVzdWx0IG9mCisgICAgICAgIFdURjo6QXV0b21hdGljVGhyZWFkIHVzaW5nIHRoZSBMb2Nr
IHR5cGUuCisKKyAgICAgICAgKiBkZmcvREZHV29ya2xpc3QuY3BwOgorICAgICAgICAoSlNDOjpE
Rkc6OldvcmtsaXN0OjpXb3JrbGlzdCk6CisgICAgICAgICogZGZnL0RGR1dvcmtsaXN0Lmg6Cisg
ICAgICAgICogaGVhcC9IZWFwLmNwcDoKKyAgICAgICAgKEpTQzo6SGVhcDo6SGVhcCk6CisgICAg
ICAgICogaGVhcC9IZWFwLmg6CisgICAgICAgICogaml0L0pJVFdvcmtsaXN0LmNwcDoKKyAgICAg
ICAgKEpTQzo6SklUV29ya2xpc3Q6OkpJVFdvcmtsaXN0KToKKyAgICAgICAgKiBqaXQvSklUV29y
a2xpc3QuaDoKKyAgICAgICAgKiBydW50aW1lL1ZNVHJhcHMuY3BwOgorICAgICAgICAoSlNDOjpW
TVRyYXBzOjpWTVRyYXBzKToKKyAgICAgICAgKiBydW50aW1lL1ZNVHJhcHMuaDoKKyAgICAgICAg
KiB3YXNtL1dhc21Xb3JrbGlzdC5jcHA6CisgICAgICAgIChKU0M6Oldhc206OldvcmtsaXN0OjpX
b3JrbGlzdCk6CisgICAgICAgICogd2FzbS9XYXNtV29ya2xpc3QuaDoKKwogMjAyMS0wNS0yNSAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBVbmNoZWNrZWRM
b2NrIGxlc3MgaW4gSmF2YVNjcmlwdENvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdl
TG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggYjVmMmZjYWYzZjA5N2ZkNjg5MDg1ZWFi
YjcyYTJmMWRhMWFkMzJmOC4uYTkzYjQ1ZGIxY2E1NjdjMGI2MmU2NTg3ZDhiNjc1MDhlMThjZGQx
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAyMS0wNS0yNSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgorCisgICAgICAgIFN0b3AgdXNpbmcgVW5jaGVja2VkTG9jayBpbiBXVEY6OkF1
dG9tYXRpY1RocmVhZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjI2MjU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgU3RvcCB1c2luZyBVbmNoZWNrZWRMb2NrIGluIFdURjo6QXV0b21hdGljVGhyZWFkIGFz
IGl0IGlzIGJlaW5nIHBoYXNlZCBvdXQgaW4gZmF2b3Igb2YKKyAgICAgICAgTG9jaywgd2hpY2gg
c3VwcG9ydHMgQ2xhbmcgdGhyZWFkIHNhZmV0eSBhbmFseXNpcy4KKworICAgICAgICAqIHd0Zi9B
dXRvbWF0aWNUaHJlYWQuY3BwOgorICAgICAgICAoV1RGOjpBdXRvbWF0aWNUaHJlYWRDb25kaXRp
b246OndhaXQpOgorICAgICAgICAoV1RGOjpBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246OndhaXRG
b3IpOgorICAgICAgICAoV1RGOjpBdXRvbWF0aWNUaHJlYWQ6OkF1dG9tYXRpY1RocmVhZCk6Cisg
ICAgICAgICogd3RmL0F1dG9tYXRpY1RocmVhZC5oOgorICAgICAgICAqIHd0Zi9QYXJhbGxlbEhl
bHBlclBvb2wuY3BwOgorICAgICAgICAoV1RGOjpQYXJhbGxlbEhlbHBlckNsaWVudDo6flBhcmFs
bGVsSGVscGVyQ2xpZW50KToKKyAgICAgICAgKFdURjo6UGFyYWxsZWxIZWxwZXJDbGllbnQ6OmZp
bmlzaCk6CisgICAgICAgIChXVEY6OlBhcmFsbGVsSGVscGVyQ2xpZW50OjpmaW5pc2hXaXRoTG9j
ayk6CisgICAgICAgIChXVEY6OlBhcmFsbGVsSGVscGVyUG9vbDo6UGFyYWxsZWxIZWxwZXJQb29s
KToKKyAgICAgICAgKiB3dGYvUGFyYWxsZWxIZWxwZXJQb29sLmg6CisgICAgICAgIChXVEY6OlBh
cmFsbGVsSGVscGVyUG9vbDo6bnVtYmVyT2ZUaHJlYWRzIGNvbnN0KToKKyAgICAgICAgKiB3dGYv
V29ya2VyUG9vbC5jcHA6CisgICAgICAgIChXVEY6OldvcmtlclBvb2w6OldvcmtlclBvb2wpOgor
ICAgICAgICAqIHd0Zi9Xb3JrZXJQb29sLmg6CisKIDIwMjEtMDUtMjUgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBVc2UgVW5jaGVja2VkTG9jayBsZXNzIGluIEph
dmFTY3JpcHRDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dv
cmtsaXN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCmlu
ZGV4IGQxNTdhZGY4NzZkYzg0NjgzYTg2YzA0NmVhMmJlZWNiYWI5OWE5MzcuLjRkMjI4Y2ZlODdh
ZDk4MTkzNmMwN2MwOWQ0MWI3Mjc1MTU1OTRhOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHV29ya2xpc3QuY3BwCkBAIC0zOSw3ICszOSw3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1l
c3BhY2UgREZHIHsKIAogY2xhc3MgV29ya2xpc3Q6OlRocmVhZEJvZHkgZmluYWwgOiBwdWJsaWMg
QXV0b21hdGljVGhyZWFkIHsKIHB1YmxpYzoKLSAgICBUaHJlYWRCb2R5KGNvbnN0IEFic3RyYWN0
TG9ja2VyJiBsb2NrZXIsIFdvcmtsaXN0JiB3b3JrbGlzdCwgVGhyZWFkRGF0YSYgZGF0YSwgQm94
PFVuY2hlY2tlZExvY2s+IGxvY2ssIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+JiYgY29u
ZGl0aW9uLCBpbnQgcmVsYXRpdmVQcmlvcml0eSkKKyAgICBUaHJlYWRCb2R5KGNvbnN0IEFic3Ry
YWN0TG9ja2VyJiBsb2NrZXIsIFdvcmtsaXN0JiB3b3JrbGlzdCwgVGhyZWFkRGF0YSYgZGF0YSwg
Qm94PExvY2s+IGxvY2ssIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+JiYgY29uZGl0aW9u
LCBpbnQgcmVsYXRpdmVQcmlvcml0eSkKICAgICAgICAgOiBBdXRvbWF0aWNUaHJlYWQobG9ja2Vy
LCBsb2NrLCBXVEZNb3ZlKGNvbmRpdGlvbiksIFRocmVhZFR5cGU6OkNvbXBpbGVyKQogICAgICAg
ICAsIG1fd29ya2xpc3Qod29ya2xpc3QpCiAgICAgICAgICwgbV9kYXRhKGRhdGEpCkBAIC0xODEs
NyArMTgxLDcgQEAgc3RhdGljIENTdHJpbmcgY3JlYXRlV29ya2xpc3ROYW1lKENTdHJpbmcmJiB0
aWVyTmFtZSkKIFdvcmtsaXN0OjpXb3JrbGlzdChDU3RyaW5nJiYgdGllck5hbWUpCiAgICAgOiBt
X3RocmVhZE5hbWUoY3JlYXRlV29ya2xpc3ROYW1lKFdURk1vdmUodGllck5hbWUpKSkKICAgICAs
IG1fcGxhbkVucXVldWVkKEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbjo6Y3JlYXRlKCkpCi0gICAg
LCBtX2xvY2soQm94PFVuY2hlY2tlZExvY2s+OjpjcmVhdGUoKSkKKyAgICAsIG1fbG9jayhCb3g8
TG9jaz46OmNyZWF0ZSgpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1dvcmtsaXN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmts
aXN0LmgKaW5kZXggNTc2ZTAzZTQ3ZTZlZjUwM2M2ZDAxMTZlY2ZiZGMwYThjNmM3NWM4OC4uM2Uy
YmJhMmZmOGUxNWJhMWI5ZjJmNWVjNjIxYjMwMGI2ZjkxNGJhYSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHV29ya2xpc3QuaApAQCAtMTEwLDEwICsxMTAsMTAgQEAgcHJpdmF0ZToKICAg
ICAvLyBiZSBjb21wbGV0ZWQuCiAgICAgVmVjdG9yPFJlZlB0cjxQbGFuPiwgMTY+IG1fcmVhZHlQ
bGFuczsKICAgICBSZWY8QXV0b21hdGljVGhyZWFkQ29uZGl0aW9uPiBtX3BsYW5FbnF1ZXVlZDsK
LSAgICBVbmNoZWNrZWRDb25kaXRpb24gbV9wbGFuQ29tcGlsZWQ7CisgICAgQ29uZGl0aW9uIG1f
cGxhbkNvbXBpbGVkOwogCiAgICAgVW5jaGVja2VkTG9jayBtX3N1c3BlbnNpb25Mb2NrOwotICAg
IEJveDxVbmNoZWNrZWRMb2NrPiBtX2xvY2s7CisgICAgQm94PExvY2s+IG1fbG9jazsKIH07CiAK
IEpTX0VYUE9SVF9QUklWQVRFIHVuc2lnbmVkIHNldE51bWJlck9mREZHQ29tcGlsZXJUaHJlYWRz
KHVuc2lnbmVkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKaW5kZXggY2JhZGNmOWUz
MmNjOTkwOTc0YWU5YzU3NWMzNzY5YWIyZDhhMmVhZC4uNjQ1NTc4ZDI2MWJmNTFlMjMxMTAzM2Mz
ZTczYzQzYjY1YTM4NGNjYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
SGVhcC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKQEAgLTMw
Miw3ICszMDIsNyBAQCBIZWFwOjpIZWFwKFZNJiB2bSwgSGVhcFR5cGUgaGVhcFR5cGUpCiAgICAg
LCBtX3NoYXJlZENvbGxlY3Rvck1hcmtTdGFjayhtYWtlVW5pcXVlPE1hcmtTdGFja0FycmF5Pigp
KQogICAgICwgbV9zaGFyZWRNdXRhdG9yTWFya1N0YWNrKG1ha2VVbmlxdWU8TWFya1N0YWNrQXJy
YXk+KCkpCiAgICAgLCBtX2hlbHBlckNsaWVudCgmaGVhcEhlbHBlclBvb2woKSkKLSAgICAsIG1f
dGhyZWFkTG9jayhCb3g8VW5jaGVja2VkTG9jaz46OmNyZWF0ZSgpKQorICAgICwgbV90aHJlYWRM
b2NrKEJveDxMb2NrPjo6Y3JlYXRlKCkpCiAgICAgLCBtX3RocmVhZENvbmRpdGlvbihBdXRvbWF0
aWNUaHJlYWRDb25kaXRpb246OmNyZWF0ZSgpKQogewogICAgIG1fd29ybGRTdGF0ZS5zdG9yZSgw
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaAppbmRleCAwODJkMzExYWM2NjFiYjQwZDFiNjBm
MzUxZmQ3YzUwNmY5OWUwOTFlLi5hNWVlZmM2OWRiZDNjNmNjZDE2MWNkOTNkY2IxNTA3OTYyMTY2
NzgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCkBAIC03NDYsNyArNzQ2LDcgQEAgcHJp
dmF0ZToKIAogICAgIHVpbnQ2NF90IG1fbXV0YXRvckV4ZWN1dGlvblZlcnNpb24geyAwIH07CiAg
ICAgdWludDY0X3QgbV9waGFzZVZlcnNpb24geyAwIH07Ci0gICAgQm94PFVuY2hlY2tlZExvY2s+
IG1fdGhyZWFkTG9jazsKKyAgICBCb3g8TG9jaz4gbV90aHJlYWRMb2NrOwogICAgIFJlZjxBdXRv
bWF0aWNUaHJlYWRDb25kaXRpb24+IG1fdGhyZWFkQ29uZGl0aW9uOyAvLyBUaGUgbXV0YXRvciBt
dXN0IG5vdCB3YWl0IG9uIHRoaXMuIEl0IHdvdWxkIGNhdXNlIGEgZGVhZGxvY2suCiAgICAgUmVm
UHRyPEF1dG9tYXRpY1RocmVhZD4gbV90aHJlYWQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUV29ya2xpc3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRXb3JrbGlzdC5jcHAKaW5kZXggYTk2ODk3NGJkNmE5ODIzYjkwYWFkYzQ0YTQxNGE1Mzdh
OTAzY2Y3YS4uYTcwNTJlNzlmMGE3NDM2N2ZlM2ZkYzVhM2NmNmQ1MzhlNjkzMjAwZSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRXb3JrbGlzdC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRXb3JrbGlzdC5jcHAKQEAgLTE2NSw3ICsxNjUsNyBA
QCBwcml2YXRlOgogfTsKIAogSklUV29ya2xpc3Q6OkpJVFdvcmtsaXN0KCkKLSAgICA6IG1fbG9j
ayhCb3g8VW5jaGVja2VkTG9jaz46OmNyZWF0ZSgpKQorICAgIDogbV9sb2NrKEJveDxMb2NrPjo6
Y3JlYXRlKCkpCiAgICAgLCBtX2NvbmRpdGlvbihBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246OmNy
ZWF0ZSgpKQogewogICAgIExvY2tlciBsb2NrZXIgeyAqbV9sb2NrIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFdvcmtsaXN0LmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVFdvcmtsaXN0LmgKaW5kZXggYTcyYTgzODcwYTAwODJmY2QzNDQ5NTI5MGVh
NTBlYTE0MGQ4OWYyZi4uYjlmNzdjYTFiM2RkZWZhNjE0OGIxMzY5NDJkNTdhMDlkNjVlYTdhMyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRXb3JrbGlzdC5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUV29ya2xpc3QuaApAQCAtNzEsNyArNzEsNyBA
QCBwcml2YXRlOgogICAgIFBsYW5zIG1fcGxhbnM7CiAgICAgSGFzaFNldDxDb2RlQmxvY2sqPiBt
X3BsYW5uZWQ7CiAgICAgCi0gICAgQm94PFVuY2hlY2tlZExvY2s+IG1fbG9jazsKKyAgICBCb3g8
TG9jaz4gbV9sb2NrOwogICAgIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+IG1fY29uZGl0
aW9uOyAvLyBXZSB1c2UgT25lIFRydWUgQ29uZGl0aW9uIGZvciBldmVyeXRoaW5nIGJlY2F1c2Ug
dGhhdCdzIGVhc2llci4KICAgICBSZWZQdHI8QXV0b21hdGljVGhyZWFkPiBtX3RocmVhZDsKICAg
ICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNVHJhcHMuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1UcmFwcy5jcHAKaW5kZXggNTdkYjMx
OWNlY2ZiNzM3MTk3ZTI2ZDljZGQyZGI3YTU4YmIwOGM2Ny4uMGRjN2UzYjc3M2EzNGY0NTU1OWQx
OWVhODMwMjgyNTQ5Y2Y3Y2ZiNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvVk1UcmFwcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1U
cmFwcy5jcHAKQEAgLTQzNyw3ICs0MzcsNyBAQCB2b2lkIFZNVHJhcHM6OnVuZG9EZWZlclRlcm1p
bmF0aW9uU2xvdyhEZWZlckFjdGlvbiBkZWZlckFjdGlvbikKIH0KIAogVk1UcmFwczo6Vk1UcmFw
cygpCi0gICAgOiBtX2xvY2soQm94PFVuY2hlY2tlZExvY2s+OjpjcmVhdGUoKSkKKyAgICA6IG1f
bG9jayhCb3g8TG9jaz46OmNyZWF0ZSgpKQogICAgICwgbV9jb25kaXRpb24oQXV0b21hdGljVGhy
ZWFkQ29uZGl0aW9uOjpjcmVhdGUoKSkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1ZNVHJhcHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1ZNVHJhcHMuaAppbmRleCA1ZDE1YzkyZjcwNDE3NTFkODA0ZTRjNTcyYTU1MzAxMDdiZmU0MmRj
Li5kOTRjODA2YjFiZThkNzQzNGUwM2UzMmNlMDBiYjI0MzFkODRiYWU3IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTVRyYXBzLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvVk1UcmFwcy5oCkBAIC0yNDcsNyArMjQ3LDcgQEAgcHJpdmF0ZToK
IAogICAgIHN0YXRpYyBjb25zdGV4cHIgQml0RmllbGQgTmVlZEV4Y2VwdGlvbkhhbmRsaW5nTWFz
ayA9IH4oMSA8PCBOZWVkRXhjZXB0aW9uSGFuZGxpbmcpOwogCi0gICAgQm94PFVuY2hlY2tlZExv
Y2s+IG1fbG9jazsKKyAgICBCb3g8TG9jaz4gbV9sb2NrOwogICAgIFJlZjxBdXRvbWF0aWNUaHJl
YWRDb25kaXRpb24+IG1fY29uZGl0aW9uOwogICAgIEF0b21pYzxCaXRGaWVsZD4gbV90cmFwQml0
cyB7IDAgfTsKICAgICBib29sIG1fbmVlZFRvSW52YWxpZGF0ZWRDb2RlQmxvY2tzIHsgZmFsc2Ug
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Xb3JrbGlzdC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtV29ya2xpc3QuY3BwCmluZGV4IDM4
OThlY2FiNGMwODg3ZTI1YTBhMzQ4MWI0MTFiOGY2N2MxZWJjMjkuLjViYWQwZDkwYTU2MmUyNWRk
ZTgxN2I1ODJjMDYwNjY1NmM5MDZlYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21Xb3JrbGlzdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbVdvcmtsaXN0LmNwcApAQCAtMTI4LDcgKzEyOCw3IEBAIHByaXZhdGU6CiAgICAgfQogCiBw
dWJsaWM6Ci0gICAgVW5jaGVja2VkQ29uZGl0aW9uIHN5bmNocm9uaXplOworICAgIENvbmRpdGlv
biBzeW5jaHJvbml6ZTsKICAgICBXb3JrbGlzdCYgd29ya2xpc3Q7CiAgICAgLy8gV2UgY2FuIG9u
bHkgbW9kaWZ5IGVsZW1lbnQgd2hlbiBob2xkaW5nIHRoZSBsb2NrLiBBIHN5bmNocm9ub3VzIGNv
bXBpbGUgbWlnaHQgbG9vayBhdCBlYWNoIHRocmVhZCdzIHRhc2tzIGluIG9yZGVyIHRvIGJvb3N0
IHRoZSBwcmlvcml0eS4KICAgICBRdWV1ZUVsZW1lbnQgZWxlbWVudDsKQEAgLTIxMyw3ICsyMTMs
NyBAQCB2b2lkIFdvcmtsaXN0OjpzdG9wQWxsUGxhbnNGb3JDb250ZXh0KENvbnRleHQmIGNvbnRl
eHQpCiB9CiAKIFdvcmtsaXN0OjpXb3JrbGlzdCgpCi0gICAgOiBtX2xvY2soQm94PFVuY2hlY2tl
ZExvY2s+OjpjcmVhdGUoKSkKKyAgICA6IG1fbG9jayhCb3g8TG9jaz46OmNyZWF0ZSgpKQogICAg
ICwgbV9wbGFuRW5xdWV1ZWQoQXV0b21hdGljVGhyZWFkQ29uZGl0aW9uOjpjcmVhdGUoKSkKIHsK
ICAgICB1bnNpZ25lZCBudW1iZXJPZkNvbXBpbGF0aW9uVGhyZWFkcyA9IE9wdGlvbnM6OnVzZUNv
bmN1cnJlbnRKSVQoKSA/IGtlcm5UQ1NNQXdhcmVOdW1iZXJPZlByb2Nlc3NvckNvcmVzKCkgOiAx
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVdvcmtsaXN0Lmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtV29ya2xpc3QuaAppbmRleCA0NWE2ZmJi
NmNmOWE4NTNjMjgxZmRiYmFjZDU2ZmJlZGQxZmE1OWNmLi41NmQ3OWEwZTk4OWE2MDJmMjEzM2Qw
MzA5MGZkYmNjNjM3Yzk1NjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtV29ya2xpc3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtV29y
a2xpc3QuaApAQCAtODQsNyArODQsNyBAQCBwcml2YXRlOgogICAgICAgICByZXR1cm4gbGVmdC5w
cmlvcml0eSA+IHJpZ2h0LnByaW9yaXR5OwogICAgIH0KIAotICAgIEJveDxVbmNoZWNrZWRMb2Nr
PiBtX2xvY2s7CisgICAgQm94PExvY2s+IG1fbG9jazsKICAgICBSZWY8QXV0b21hdGljVGhyZWFk
Q29uZGl0aW9uPiBtX3BsYW5FbnF1ZXVlZDsKICAgICAvLyBUZWNobmljYWxseSwgdGhpcyBjb3Vs
ZCBvdmVyZmxvdyBidXQgdGhhdCdzIHVubGlrZWx5LiBFdmVuIGlmIGl0IGRpZCwgd2Ugd2lsbCBq
dXN0IGNvbXBpbGUgdGhpbmdzIG9mIHRoZSBzYW1lCiAgICAgLy8gUHJpb3JpdHkgaXQgdGhlIHdy
b25nIG9yZGVyLCB3aGljaCBpc24ndCB3cm9uZywganVzdCBzdWJvcHRpbWFsLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvQXV0b21hdGljVGhyZWFkLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0F1
dG9tYXRpY1RocmVhZC5jcHAKaW5kZXggM2M1YmU1MTNjMjYzY2E4YjRkYTZiN2MyNmM2ZjgzNzM5
ZGEzMWUwYy4uZjRlYTc4ZDEzZTFjZGRiNjE5YjgyMjg2OGQzM2M3MjdjOWYyZjk4YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvQXV0b21hdGljVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9BdXRvbWF0aWNUaHJlYWQuY3BwCkBAIC03NywxMiArNzcsMTIgQEAgdm9pZCBBdXRvbWF0
aWNUaHJlYWRDb25kaXRpb246Om5vdGlmeUFsbChjb25zdCBBYnN0cmFjdExvY2tlciYgbG9ja2Vy
KQogICAgIH0KIH0KIAotdm9pZCBBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246OndhaXQoVW5jaGVj
a2VkTG9jayYgbG9jaykKK3ZvaWQgQXV0b21hdGljVGhyZWFkQ29uZGl0aW9uOjp3YWl0KExvY2sm
IGxvY2spCiB7CiAgICAgbV9jb25kaXRpb24ud2FpdChsb2NrKTsKIH0KIAotYm9vbCBBdXRvbWF0
aWNUaHJlYWRDb25kaXRpb246OndhaXRGb3IoVW5jaGVja2VkTG9jayYgbG9jaywgU2Vjb25kcyB0
aW1lKQorYm9vbCBBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246OndhaXRGb3IoTG9jayYgbG9jaywg
U2Vjb25kcyB0aW1lKQogewogICAgIHJldHVybiBtX2NvbmRpdGlvbi53YWl0Rm9yKGxvY2ssIHRp
bWUpOwogfQpAQCAtMTA0LDEyICsxMDQsMTIgQEAgYm9vbCBBdXRvbWF0aWNUaHJlYWRDb25kaXRp
b246OmNvbnRhaW5zKGNvbnN0IEFic3RyYWN0TG9ja2VyJiwgQXV0b21hdGljVGhyZWFkKgogICAg
IHJldHVybiBtX3RocmVhZHMuY29udGFpbnModGhyZWFkKTsKIH0KIAotQXV0b21hdGljVGhyZWFk
OjpBdXRvbWF0aWNUaHJlYWQoY29uc3QgQWJzdHJhY3RMb2NrZXImIGxvY2tlciwgQm94PFVuY2hl
Y2tlZExvY2s+IGxvY2ssIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+JiYgY29uZGl0aW9u
LCBTZWNvbmRzIHRpbWVvdXQpCitBdXRvbWF0aWNUaHJlYWQ6OkF1dG9tYXRpY1RocmVhZChjb25z
dCBBYnN0cmFjdExvY2tlciYgbG9ja2VyLCBCb3g8TG9jaz4gbG9jaywgUmVmPEF1dG9tYXRpY1Ro
cmVhZENvbmRpdGlvbj4mJiBjb25kaXRpb24sIFNlY29uZHMgdGltZW91dCkKICAgICA6IEF1dG9t
YXRpY1RocmVhZChsb2NrZXIsIGxvY2ssIFdURk1vdmUoY29uZGl0aW9uKSwgVGhyZWFkVHlwZTo6
VW5rbm93biwgdGltZW91dCkKIHsKIH0KIAotQXV0b21hdGljVGhyZWFkOjpBdXRvbWF0aWNUaHJl
YWQoY29uc3QgQWJzdHJhY3RMb2NrZXImIGxvY2tlciwgQm94PFVuY2hlY2tlZExvY2s+IGxvY2ss
IFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+JiYgY29uZGl0aW9uLCBUaHJlYWRUeXBlIHR5
cGUsIFNlY29uZHMgdGltZW91dCkKK0F1dG9tYXRpY1RocmVhZDo6QXV0b21hdGljVGhyZWFkKGNv
bnN0IEFic3RyYWN0TG9ja2VyJiBsb2NrZXIsIEJveDxMb2NrPiBsb2NrLCBSZWY8QXV0b21hdGlj
VGhyZWFkQ29uZGl0aW9uPiYmIGNvbmRpdGlvbiwgVGhyZWFkVHlwZSB0eXBlLCBTZWNvbmRzIHRp
bWVvdXQpCiAgICAgOiBtX2xvY2sobG9jaykKICAgICAsIG1fY29uZGl0aW9uKFdURk1vdmUoY29u
ZGl0aW9uKSkKICAgICAsIG1fdGltZW91dCh0aW1lb3V0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvQXV0b21hdGljVGhyZWFkLmggYi9Tb3VyY2UvV1RGL3d0Zi9BdXRvbWF0aWNUaHJlYWQu
aAppbmRleCAwOWZjYWZlZjIzOTU5MWIyZTEyY2RmMDJmZGYwMDZjY2RkNDEyYTZiLi4yZThmZTYw
YjdmZjQ2MTdhYjdiZjY4ZjBlZmQ1ZjI1OGFiNjA4Y2M1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L3d0Zi9BdXRvbWF0aWNUaHJlYWQuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9BdXRvbWF0aWNUaHJl
YWQuaApAQCAtODEsOCArODEsOCBAQCBwdWJsaWM6CiAgICAgLy8gT25lIGtub3duLWdvb2QgY2Fz
ZSBmb3Igb25lLXRydWUtY29uZGl0aW9uIGlzIHdoZW4gdGhlIGNvbW11bmljYXRpb24gaW52b2x2
ZXMganVzdCB0d28KICAgICAvLyB0aHJlYWRzLiBJbiBzdWNoIGNhc2VzLCB0aGUgdGhyZWFkIGRv
aW5nIHRoZSBub3RpZnlBbGwoKSBjYW4gd2FrZSB1cCBhdCBtb3N0IG9uZSB0aHJlYWQgLQogICAg
IC8vIGl0cyBwYXJ0bmVyLgotICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHdhaXQoVW5jaGVj
a2VkTG9jayYpOwotICAgIFdURl9FWFBPUlRfUFJJVkFURSBib29sIHdhaXRGb3IoVW5jaGVja2Vk
TG9jayYsIFNlY29uZHMpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHdhaXQoTG9jayYg
bG9jaykgV1RGX1JFUVVJUkVTX0xPQ0sobG9jayk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIGJv
b2wgd2FpdEZvcihMb2NrJiBsb2NrLCBTZWNvbmRzKSBXVEZfUkVRVUlSRVNfTE9DSyhsb2NrKTsK
ICAgICAKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIEF1dG9tYXRpY1RocmVhZDsKQEAgLTkz
LDcgKzkzLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlbW92ZShjb25zdCBBYnN0cmFjdExvY2tl
ciYsIEF1dG9tYXRpY1RocmVhZCopOwogICAgIGJvb2wgY29udGFpbnMoY29uc3QgQWJzdHJhY3RM
b2NrZXImLCBBdXRvbWF0aWNUaHJlYWQqKTsKICAgICAKLSAgICBVbmNoZWNrZWRDb25kaXRpb24g
bV9jb25kaXRpb247CisgICAgQ29uZGl0aW9uIG1fY29uZGl0aW9uOwogICAgIFZlY3RvcjxBdXRv
bWF0aWNUaHJlYWQqPiBtX3RocmVhZHM7CiB9OwogCkBAIC0xMzEsOSArMTMxLDkgQEAgcHVibGlj
OgogcHJvdGVjdGVkOgogICAgIC8vIFRoaXMgbG9naWNhbGx5IGNyZWF0ZXMgdGhlIHRocmVhZCwg
YnV0IGluIHJlYWxpdHkgdGhlIHRocmVhZCB3b24ndCBiZSBjcmVhdGVkIHVudGlsIHNvbWVvbmUK
ICAgICAvLyBjYWxscyBBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246Om5vdGlmeU9uZSgpIG9yIG5v
dGlmeUFsbCgpLgotICAgIEF1dG9tYXRpY1RocmVhZChjb25zdCBBYnN0cmFjdExvY2tlciYsIEJv
eDxVbmNoZWNrZWRMb2NrPiwgUmVmPEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbj4mJiwgU2Vjb25k
cyB0aW1lb3V0ID0gMTBfcyk7CisgICAgQXV0b21hdGljVGhyZWFkKGNvbnN0IEFic3RyYWN0TG9j
a2VyJiwgQm94PExvY2s+LCBSZWY8QXV0b21hdGljVGhyZWFkQ29uZGl0aW9uPiYmLCBTZWNvbmRz
IHRpbWVvdXQgPSAxMF9zKTsKIAotICAgIEF1dG9tYXRpY1RocmVhZChjb25zdCBBYnN0cmFjdExv
Y2tlciYsIEJveDxVbmNoZWNrZWRMb2NrPiwgUmVmPEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbj4m
JiwgVGhyZWFkVHlwZSwgU2Vjb25kcyB0aW1lb3V0ID0gMTBfcyk7CisgICAgQXV0b21hdGljVGhy
ZWFkKGNvbnN0IEFic3RyYWN0TG9ja2VyJiwgQm94PExvY2s+LCBSZWY8QXV0b21hdGljVGhyZWFk
Q29uZGl0aW9uPiYmLCBUaHJlYWRUeXBlLCBTZWNvbmRzIHRpbWVvdXQgPSAxMF9zKTsKICAgICAK
ICAgICAvLyBUbyB1bmRlcnN0YW5kIFBvbGxSZXN1bHQgYW5kIFdvcmtSZXN1bHQsIGltYWdpbmUg
dGhhdCBwb2xsKCkgYW5kIHdvcmsoKSBhcmUgYmVpbmcgY2FsbGVkIGxpa2UKICAgICAvLyBzbzoK
QEAgLTE4MywxNSArMTgzLDE1IEBAIHByaXZhdGU6CiAgICAgCiAgICAgdm9pZCBzdGFydChjb25z
dCBBYnN0cmFjdExvY2tlciYpOwogICAgIAotICAgIEJveDxVbmNoZWNrZWRMb2NrPiBtX2xvY2s7
CisgICAgQm94PExvY2s+IG1fbG9jazsKICAgICBSZWY8QXV0b21hdGljVGhyZWFkQ29uZGl0aW9u
PiBtX2NvbmRpdGlvbjsKICAgICBTZWNvbmRzIG1fdGltZW91dDsKICAgICBUaHJlYWRUeXBlIG1f
dGhyZWFkVHlwZSB7IFRocmVhZFR5cGU6OlVua25vd24gfTsKICAgICBib29sIG1faXNSdW5uaW5n
IHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9pc1dhaXRpbmcgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9o
YXNVbmRlcmx5aW5nVGhyZWFkIHsgZmFsc2UgfTsKLSAgICBVbmNoZWNrZWRDb25kaXRpb24gbV93
YWl0Q29uZGl0aW9uOwotICAgIFVuY2hlY2tlZENvbmRpdGlvbiBtX2lzUnVubmluZ0NvbmRpdGlv
bjsKKyAgICBDb25kaXRpb24gbV93YWl0Q29uZGl0aW9uOworICAgIENvbmRpdGlvbiBtX2lzUnVu
bmluZ0NvbmRpdGlvbjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1BhcmFs
bGVsSGVscGVyUG9vbC5jcHAKaW5kZXggYzczNDY4NTU5MzE0ZDA5NzAwYmRkOGE1ZDBhNTUyMDFl
MGQ1MGM5Yy4uZTQ1YmFlN2E3YTdkOTliZWZjZTc3ZTBiNzE1YWY3YmU3YmI5MjY5OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmNwcAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9QYXJhbGxlbEhlbHBlclBvb2wuY3BwCkBAIC00MSw3ICs0MSw3IEBAIFBhcmFsbGVs
SGVscGVyQ2xpZW50OjpQYXJhbGxlbEhlbHBlckNsaWVudChSZWZQdHI8UGFyYWxsZWxIZWxwZXJQ
b29sPiYmIHBvb2wpCiBQYXJhbGxlbEhlbHBlckNsaWVudDo6flBhcmFsbGVsSGVscGVyQ2xpZW50
KCkKIHsKICAgICBMb2NrZXIgbG9ja2VyIHsgKm1fcG9vbC0+bV9sb2NrIH07Ci0gICAgZmluaXNo
KGxvY2tlcik7CisgICAgZmluaXNoV2l0aExvY2soKTsKIAogICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgbV9wb29sLT5tX2NsaWVudHMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgaWYgKG1fcG9v
bC0+bV9jbGllbnRzW2ldID09IHRoaXMpIHsKQEAgLTYzLDcgKzYzLDcgQEAgdm9pZCBQYXJhbGxl
bEhlbHBlckNsaWVudDo6c2V0VGFzayhSZWZQdHI8U2hhcmVkVGFzazx2b2lkICgpPj4mJiB0YXNr
KQogdm9pZCBQYXJhbGxlbEhlbHBlckNsaWVudDo6ZmluaXNoKCkKIHsKICAgICBMb2NrZXIgbG9j
a2VyIHsgKm1fcG9vbC0+bV9sb2NrIH07Ci0gICAgZmluaXNoKGxvY2tlcik7CisgICAgZmluaXNo
V2l0aExvY2soKTsKIH0KIAogdm9pZCBQYXJhbGxlbEhlbHBlckNsaWVudDo6ZG9Tb21lSGVscGlu
ZygpCkBAIC04Niw3ICs4Niw3IEBAIHZvaWQgUGFyYWxsZWxIZWxwZXJDbGllbnQ6OnJ1blRhc2tJ
blBhcmFsbGVsKFJlZlB0cjxTaGFyZWRUYXNrPHZvaWQgKCk+PiYmIHRhc2spCiAgICAgZmluaXNo
KCk7CiB9CiAKLXZvaWQgUGFyYWxsZWxIZWxwZXJDbGllbnQ6OmZpbmlzaChjb25zdCBBYnN0cmFj
dExvY2tlciYpCit2b2lkIFBhcmFsbGVsSGVscGVyQ2xpZW50OjpmaW5pc2hXaXRoTG9jaygpCiB7
CiAgICAgbV90YXNrID0gbnVsbHB0cjsKICAgICB3aGlsZSAobV9udW1BY3RpdmUpCkBAIC0xMjIs
NyArMTIyLDcgQEAgdm9pZCBQYXJhbGxlbEhlbHBlckNsaWVudDo6cnVuVGFzayhjb25zdCBSZWZQ
dHI8U2hhcmVkVGFzazx2b2lkICgpPj4mIHRhc2spCiB9CiAKIFBhcmFsbGVsSGVscGVyUG9vbDo6
UGFyYWxsZWxIZWxwZXJQb29sKENTdHJpbmcmJiB0aHJlYWROYW1lKQotICAgIDogbV9sb2NrKEJv
eDxVbmNoZWNrZWRMb2NrPjo6Y3JlYXRlKCkpCisgICAgOiBtX2xvY2soQm94PExvY2s+OjpjcmVh
dGUoKSkKICAgICAsIG1fd29ya0F2YWlsYWJsZUNvbmRpdGlvbihBdXRvbWF0aWNUaHJlYWRDb25k
aXRpb246OmNyZWF0ZSgpKQogICAgICwgbV90aHJlYWROYW1lKFdURk1vdmUodGhyZWFkTmFtZSkp
CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEhlbHBlclBvb2wuaCBiL1Nv
dXJjZS9XVEYvd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5oCmluZGV4IDY2NGZhZGU4NTM5OTNhYjRi
MDU5NTQ4NzIyMTRmMzg3YzlhNmQwNTMuLjIwZTBmNmE0NWQ1NjI5MTc0NzFjY2Q2MDdmMTJlMzJm
MWY2NDQ3YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5o
CisrKyBiL1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5oCkBAIC02Miw3ICs2Miw0
MiBAQCBjbGFzcyBBdXRvbWF0aWNUaHJlYWRDb25kaXRpb247CiAvLyBhIHRhc2sgYXQgcmFuZG9t
LiBTbyBsb25nIGFzIGFueSBjbGllbnQgaGFzIGEgdGFzaywgYWxsIHRocmVhZHMgaW4gdGhlIHBv
b2wgd2lsbCBjb250aW51ZQogLy8gcnVubmluZyB0aGUgYXZhaWxhYmxlIHRhc2tzLiBUaHJlYWRz
IGdvIGlkbGUgd2hlbiBubyBjbGllbnQgaGFzIHRhc2tzIHRvIHJ1bi4KIAotY2xhc3MgUGFyYWxs
ZWxIZWxwZXJQb29sOworY2xhc3MgUGFyYWxsZWxIZWxwZXJDbGllbnQ7CisKK2NsYXNzIFBhcmFs
bGVsSGVscGVyUG9vbCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxQYXJhbGxlbEhlbHBl
clBvb2w+IHsKK3B1YmxpYzoKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgUGFyYWxsZWxIZWxwZXJQ
b29sKENTdHJpbmcmJiB0aHJlYWROYW1lKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgflBhcmFs
bGVsSGVscGVyUG9vbCgpOworCisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgZW5zdXJlVGhy
ZWFkcyh1bnNpZ25lZCBudW1UaHJlYWRzKTsKKworICAgIHVuc2lnbmVkIG51bWJlck9mVGhyZWFk
cygpIGNvbnN0IHsgcmV0dXJuIG1fbnVtVGhyZWFkczsgfQorICAgIAorICAgIFdURl9FWFBPUlRf
UFJJVkFURSB2b2lkIGRvU29tZUhlbHBpbmcoKTsKKworcHJpdmF0ZToKKyAgICBmcmllbmQgY2xh
c3MgUGFyYWxsZWxIZWxwZXJDbGllbnQ7CisgICAgY2xhc3MgVGhyZWFkOworICAgIGZyaWVuZCBj
bGFzcyBUaHJlYWQ7CisKKyAgICB2b2lkIGRpZE1ha2VXb3JrQXZhaWxhYmxlKGNvbnN0IEFic3Ry
YWN0TG9ja2VyJik7CisKKyAgICBib29sIGhhc0NsaWVudFdpdGhUYXNrKGNvbnN0IEFic3RyYWN0
TG9ja2VyJik7CisgICAgUGFyYWxsZWxIZWxwZXJDbGllbnQqIGdldENsaWVudFdpdGhUYXNrKGNv
bnN0IEFic3RyYWN0TG9ja2VyJik7CisgICAgUGFyYWxsZWxIZWxwZXJDbGllbnQqIHdhaXRGb3JD
bGllbnRXaXRoVGFzayhjb25zdCBBYnN0cmFjdExvY2tlciYpOworICAgIAorICAgIEJveDxMb2Nr
PiBtX2xvY2s7IC8vIEF1dG9tYXRpY1RocmVhZCB3YW50cyB0aGlzIGluIGEgYm94IGZvciBzYWZl
dHkuCisgICAgUmVmPEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbj4gbV93b3JrQXZhaWxhYmxlQ29u
ZGl0aW9uOworICAgIENvbmRpdGlvbiBtX3dvcmtDb21wbGV0ZUNvbmRpdGlvbjsKKworICAgIFdl
YWtSYW5kb20gbV9yYW5kb207CisgICAgCisgICAgVmVjdG9yPFBhcmFsbGVsSGVscGVyQ2xpZW50
Kj4gbV9jbGllbnRzOworICAgIFZlY3RvcjxSZWZQdHI8QXV0b21hdGljVGhyZWFkPj4gbV90aHJl
YWRzOworICAgIENTdHJpbmcgbV90aHJlYWROYW1lOworICAgIHVuc2lnbmVkIG1fbnVtVGhyZWFk
cyB7IDAgfTsgLy8gVGhpcyBjYW4gYmUgbGFyZ2VyIHRoYW4gbV90aHJlYWRzLnNpemUoKSBiZWNh
dXNlIHdlIHN0YXJ0IHRocmVhZHMgb25seSBvbmNlIHRoZXJlIGlzIHdvcmsuCisgICAgYm9vbCBt
X2lzRHlpbmcgeyBmYWxzZSB9OworfTsKIAogLy8gQSBjbGllbnQgaXMgYSBwbGFjZWhvbGRlciBm
b3IgYSBwYXJhbGxlbCBhbGdvcml0aG0uIEEgcGFyYWxsZWwgYWxnb3JpdGhtIHdpbGwgaGF2ZSBh
IHRhc2sgdGhhdAogLy8gY2FuIGJlIHJ1biBjb25jdXJyZW50bHkuIFdoZW5ldmVyIGEgY2xpZW50
IGhhcyBhIHRhc2sgc2V0ICh5b3UgaGF2ZSBjYWxsZWQgc2V0VGFzaygpIG9yCkBAIC0xNDEsNyAr
MTc2LDcgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgc2V0VGFzayhjcmVhdGVTaGFyZWRUYXNr
PHZvaWQgKCk+KGZ1bmN0b3IpKTsKICAgICB9Ci0gICAgCisKICAgICBXVEZfRVhQT1JUX1BSSVZB
VEUgdm9pZCBmaW5pc2goKTsKIAogICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGRvU29tZUhl
bHBpbmcoKTsKQEAgLTE2OCw1MCArMjAzLDE1IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZnJp
ZW5kIGNsYXNzIFBhcmFsbGVsSGVscGVyUG9vbDsKIAotICAgIHZvaWQgZmluaXNoKGNvbnN0IEFi
c3RyYWN0TG9ja2VyJik7CisgICAgdm9pZCBmaW5pc2hXaXRoTG9jaygpIFdURl9SRVFVSVJFU19M
T0NLKCptX3Bvb2wtPm1fbG9jayk7CiAgICAgUmVmUHRyPFNoYXJlZFRhc2s8dm9pZCAoKT4+IGNs
YWltVGFzayhjb25zdCBBYnN0cmFjdExvY2tlciYpOwogICAgIHZvaWQgcnVuVGFzayhjb25zdCBS
ZWZQdHI8U2hhcmVkVGFzazx2b2lkICgpPj4mKTsKLSAgICAKKwogICAgIFJlZlB0cjxQYXJhbGxl
bEhlbHBlclBvb2w+IG1fcG9vbDsKICAgICBSZWZQdHI8U2hhcmVkVGFzazx2b2lkICgpPj4gbV90
YXNrOwogICAgIHVuc2lnbmVkIG1fbnVtQWN0aXZlIHsgMCB9OwogfTsKIAotY2xhc3MgUGFyYWxs
ZWxIZWxwZXJQb29sIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFBhcmFsbGVsSGVscGVy
UG9vbD4gewotcHVibGljOgotICAgIFdURl9FWFBPUlRfUFJJVkFURSBQYXJhbGxlbEhlbHBlclBv
b2woQ1N0cmluZyYmIHRocmVhZE5hbWUpOwotICAgIFdURl9FWFBPUlRfUFJJVkFURSB+UGFyYWxs
ZWxIZWxwZXJQb29sKCk7Ci0KLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBlbnN1cmVUaHJl
YWRzKHVuc2lnbmVkIG51bVRocmVhZHMpOwotCi0gICAgdW5zaWduZWQgbnVtYmVyT2ZUaHJlYWRz
KCkgY29uc3QgeyByZXR1cm4gbV9udW1UaHJlYWRzOyB9Ci0gICAgCi0gICAgV1RGX0VYUE9SVF9Q
UklWQVRFIHZvaWQgZG9Tb21lSGVscGluZygpOwotCi1wcml2YXRlOgotICAgIGZyaWVuZCBjbGFz
cyBQYXJhbGxlbEhlbHBlckNsaWVudDsKLSAgICBjbGFzcyBUaHJlYWQ7Ci0gICAgZnJpZW5kIGNs
YXNzIFRocmVhZDsKLQotICAgIHZvaWQgZGlkTWFrZVdvcmtBdmFpbGFibGUoY29uc3QgQWJzdHJh
Y3RMb2NrZXImKTsKLQotICAgIGJvb2wgaGFzQ2xpZW50V2l0aFRhc2soY29uc3QgQWJzdHJhY3RM
b2NrZXImKTsKLSAgICBQYXJhbGxlbEhlbHBlckNsaWVudCogZ2V0Q2xpZW50V2l0aFRhc2soY29u
c3QgQWJzdHJhY3RMb2NrZXImKTsKLSAgICBQYXJhbGxlbEhlbHBlckNsaWVudCogd2FpdEZvckNs
aWVudFdpdGhUYXNrKGNvbnN0IEFic3RyYWN0TG9ja2VyJik7Ci0gICAgCi0gICAgQm94PFVuY2hl
Y2tlZExvY2s+IG1fbG9jazsgLy8gQXV0b21hdGljVGhyZWFkIHdhbnRzIHRoaXMgaW4gYSBib3gg
Zm9yIHNhZmV0eS4KLSAgICBSZWY8QXV0b21hdGljVGhyZWFkQ29uZGl0aW9uPiBtX3dvcmtBdmFp
bGFibGVDb25kaXRpb247Ci0gICAgVW5jaGVja2VkQ29uZGl0aW9uIG1fd29ya0NvbXBsZXRlQ29u
ZGl0aW9uOwotCi0gICAgV2Vha1JhbmRvbSBtX3JhbmRvbTsKLSAgICAKLSAgICBWZWN0b3I8UGFy
YWxsZWxIZWxwZXJDbGllbnQqPiBtX2NsaWVudHM7Ci0gICAgVmVjdG9yPFJlZlB0cjxBdXRvbWF0
aWNUaHJlYWQ+PiBtX3RocmVhZHM7Ci0gICAgQ1N0cmluZyBtX3RocmVhZE5hbWU7Ci0gICAgdW5z
aWduZWQgbV9udW1UaHJlYWRzIHsgMCB9OyAvLyBUaGlzIGNhbiBiZSBsYXJnZXIgdGhhbiBtX3Ro
cmVhZHMuc2l6ZSgpIGJlY2F1c2Ugd2Ugc3RhcnQgdGhyZWFkcyBvbmx5IG9uY2UgdGhlcmUgaXMg
d29yay4KLSAgICBib29sIG1faXNEeWluZyB7IGZhbHNlIH07Ci19OwotCiB9IC8vIG5hbWVzcGFj
ZSBXVEYKIAogdXNpbmcgV1RGOjpQYXJhbGxlbEhlbHBlckNsaWVudDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL1dvcmtlclBvb2wuY3BwIGIvU291cmNlL1dURi93dGYvV29ya2VyUG9vbC5j
cHAKaW5kZXggMjE5ZGJmMTUxZDY2MzdjNjdhM2U0NzZmZDEzZTNkMWI4OGI0MzU3YS4uOGE5YzFm
ZGE3NGE3M2IyYzVhYjVjZGEyZDhlNDYwOWFiZTgwYTMwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvV29ya2VyUG9vbC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvV29ya2VyUG9vbC5jcHAK
QEAgLTMyLDcgKzMyLDcgQEAgY2xhc3MgV29ya2VyUG9vbDo6V29ya2VyIGZpbmFsIDogcHVibGlj
IEF1dG9tYXRpY1RocmVhZCB7CiBwdWJsaWM6CiAgICAgZnJpZW5kIGNsYXNzIFdvcmtlclBvb2w7
CiAKLSAgICBXb3JrZXIoY29uc3QgQWJzdHJhY3RMb2NrZXImIGxvY2tlciwgV29ya2VyUG9vbCYg
cG9vbCwgQm94PFVuY2hlY2tlZExvY2s+IGxvY2ssIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRp
b24+JiYgY29uZGl0aW9uLCBTZWNvbmRzIHRpbWVvdXQpCisgICAgV29ya2VyKGNvbnN0IEFic3Ry
YWN0TG9ja2VyJiBsb2NrZXIsIFdvcmtlclBvb2wmIHBvb2wsIEJveDxMb2NrPiBsb2NrLCBSZWY8
QXV0b21hdGljVGhyZWFkQ29uZGl0aW9uPiYmIGNvbmRpdGlvbiwgU2Vjb25kcyB0aW1lb3V0KQog
ICAgICAgICA6IEF1dG9tYXRpY1RocmVhZChsb2NrZXIsIGxvY2ssIFdURk1vdmUoY29uZGl0aW9u
KSwgdGltZW91dCkKICAgICAgICAgLCBtX3Bvb2wocG9vbCkKICAgICB7CkBAIC04Miw3ICs4Miw3
IEBAIHByaXZhdGU6CiB9OwogCiBXb3JrZXJQb29sOjpXb3JrZXJQb29sKEFTQ0lJTGl0ZXJhbCBu
YW1lLCB1bnNpZ25lZCBudW1iZXJPZldvcmtlcnMsIFNlY29uZHMgdGltZW91dCkKLSAgICA6IG1f
bG9jayhCb3g8VW5jaGVja2VkTG9jaz46OmNyZWF0ZSgpKQorICAgIDogbV9sb2NrKEJveDxMb2Nr
Pjo6Y3JlYXRlKCkpCiAgICAgLCBtX2NvbmRpdGlvbihBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246
OmNyZWF0ZSgpKQogICAgICwgbV90aW1lb3V0KHRpbWVvdXQpCiAgICAgLCBtX25hbWUobmFtZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1dvcmtlclBvb2wuaCBiL1NvdXJjZS9XVEYvd3Rm
L1dvcmtlclBvb2wuaAppbmRleCA3YTQwNDJiNDZiMTY4ODAyM2YxY2VmOWU2NDJhYjJjNDhjODg5
M2Q5Li42MjM1ZTczMWVkNzViODAxMjUwOTUzNTkwNjhiMDhkNGMxZGNmZWMyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi9Xb3JrZXJQb29sLmgKKysrIGIvU291cmNlL1dURi93dGYvV29ya2Vy
UG9vbC5oCkBAIC01Nyw3ICs1Nyw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIHNob3VsZFNsZWVw
KGNvbnN0IEFic3RyYWN0TG9ja2VyJik7CiAKLSAgICBCb3g8VW5jaGVja2VkTG9jaz4gbV9sb2Nr
OworICAgIEJveDxMb2NrPiBtX2xvY2s7CiAgICAgUmVmPEF1dG9tYXRpY1RocmVhZENvbmRpdGlv
bj4gbV9jb25kaXRpb247CiAgICAgU2Vjb25kcyBtX3RpbWVvdXQ7CiAgICAgTW9ub3RvbmljVGlt
ZSBtX2xhc3RUaW1lb3V0VGltZSB7IE1vbm90b25pY1RpbWU6Om5hbigpIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429726</attachid>
            <date>2021-05-25 20:09:16 -0700</date>
            <delta_ts>2021-05-25 20:12:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226255-20210525200915.patch</filename>
            <type>text/plain</type>
            <size>23207</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MDcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
ZDFmMDk1NDllNjEzNWY1MWEyMjc5MzMwN2YwMDFhZGE2OTczYmU2Li5iMzdiYjM3MzQwZTZhYjlk
ZTFkZjQxZjdmODQyMGRiZDNiMGUzNGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOSBAQAorMjAyMS0wNS0yNSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFN0b3AgdXNpbmcgVW5jaGVja2VkTG9jayBpbiBXVEY6OkF1dG9tYXRpY1RocmVh
ZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MjU1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU29tZSBj
b2RlIGluIEpTQyBoYWQgdG8gYmUgcG9ydGVkIGZyb20gVW5jaGVja2VkTG9jayB0byBMb2NrIGFz
IGEgcmVzdWx0IG9mCisgICAgICAgIFdURjo6QXV0b21hdGljVGhyZWFkIHVzaW5nIHRoZSBMb2Nr
IHR5cGUuCisKKyAgICAgICAgKiBkZmcvREZHV29ya2xpc3QuY3BwOgorICAgICAgICAoSlNDOjpE
Rkc6OldvcmtsaXN0OjpXb3JrbGlzdCk6CisgICAgICAgICogZGZnL0RGR1dvcmtsaXN0Lmg6Cisg
ICAgICAgICogaGVhcC9IZWFwLmNwcDoKKyAgICAgICAgKEpTQzo6SGVhcDo6SGVhcCk6CisgICAg
ICAgICogaGVhcC9IZWFwLmg6CisgICAgICAgICogaml0L0pJVFdvcmtsaXN0LmNwcDoKKyAgICAg
ICAgKEpTQzo6SklUV29ya2xpc3Q6OkpJVFdvcmtsaXN0KToKKyAgICAgICAgKiBqaXQvSklUV29y
a2xpc3QuaDoKKyAgICAgICAgKiBydW50aW1lL1ZNVHJhcHMuY3BwOgorICAgICAgICAoSlNDOjpW
TVRyYXBzOjpWTVRyYXBzKToKKyAgICAgICAgKiBydW50aW1lL1ZNVHJhcHMuaDoKKyAgICAgICAg
KiB3YXNtL1dhc21Xb3JrbGlzdC5jcHA6CisgICAgICAgIChKU0M6Oldhc206OldvcmtsaXN0OjpX
b3JrbGlzdCk6CisgICAgICAgICogd2FzbS9XYXNtV29ya2xpc3QuaDoKKwogMjAyMS0wNS0yNSAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBVbmNoZWNrZWRM
b2NrIGxlc3MgaW4gSmF2YVNjcmlwdENvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdl
TG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggYjVmMmZjYWYzZjA5N2ZkNjg5MDg1ZWFi
YjcyYTJmMWRhMWFkMzJmOC4uYTkzYjQ1ZGIxY2E1NjdjMGI2MmU2NTg3ZDhiNjc1MDhlMThjZGQx
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAyMS0wNS0yNSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgorCisgICAgICAgIFN0b3AgdXNpbmcgVW5jaGVja2VkTG9jayBpbiBXVEY6OkF1
dG9tYXRpY1RocmVhZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjI2MjU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgU3RvcCB1c2luZyBVbmNoZWNrZWRMb2NrIGluIFdURjo6QXV0b21hdGljVGhyZWFkIGFz
IGl0IGlzIGJlaW5nIHBoYXNlZCBvdXQgaW4gZmF2b3Igb2YKKyAgICAgICAgTG9jaywgd2hpY2gg
c3VwcG9ydHMgQ2xhbmcgdGhyZWFkIHNhZmV0eSBhbmFseXNpcy4KKworICAgICAgICAqIHd0Zi9B
dXRvbWF0aWNUaHJlYWQuY3BwOgorICAgICAgICAoV1RGOjpBdXRvbWF0aWNUaHJlYWRDb25kaXRp
b246OndhaXQpOgorICAgICAgICAoV1RGOjpBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246OndhaXRG
b3IpOgorICAgICAgICAoV1RGOjpBdXRvbWF0aWNUaHJlYWQ6OkF1dG9tYXRpY1RocmVhZCk6Cisg
ICAgICAgICogd3RmL0F1dG9tYXRpY1RocmVhZC5oOgorICAgICAgICAqIHd0Zi9QYXJhbGxlbEhl
bHBlclBvb2wuY3BwOgorICAgICAgICAoV1RGOjpQYXJhbGxlbEhlbHBlckNsaWVudDo6flBhcmFs
bGVsSGVscGVyQ2xpZW50KToKKyAgICAgICAgKFdURjo6UGFyYWxsZWxIZWxwZXJDbGllbnQ6OmZp
bmlzaCk6CisgICAgICAgIChXVEY6OlBhcmFsbGVsSGVscGVyQ2xpZW50OjpmaW5pc2hXaXRoTG9j
ayk6CisgICAgICAgIChXVEY6OlBhcmFsbGVsSGVscGVyUG9vbDo6UGFyYWxsZWxIZWxwZXJQb29s
KToKKyAgICAgICAgKiB3dGYvUGFyYWxsZWxIZWxwZXJQb29sLmg6CisgICAgICAgIChXVEY6OlBh
cmFsbGVsSGVscGVyUG9vbDo6bnVtYmVyT2ZUaHJlYWRzIGNvbnN0KToKKyAgICAgICAgKiB3dGYv
V29ya2VyUG9vbC5jcHA6CisgICAgICAgIChXVEY6OldvcmtlclBvb2w6OldvcmtlclBvb2wpOgor
ICAgICAgICAqIHd0Zi9Xb3JrZXJQb29sLmg6CisKIDIwMjEtMDUtMjUgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBVc2UgVW5jaGVja2VkTG9jayBsZXNzIGluIEph
dmFTY3JpcHRDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dv
cmtsaXN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCmlu
ZGV4IGQxNTdhZGY4NzZkYzg0NjgzYTg2YzA0NmVhMmJlZWNiYWI5OWE5MzcuLjRkMjI4Y2ZlODdh
ZDk4MTkzNmMwN2MwOWQ0MWI3Mjc1MTU1OTRhOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHV29ya2xpc3QuY3BwCkBAIC0zOSw3ICszOSw3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1l
c3BhY2UgREZHIHsKIAogY2xhc3MgV29ya2xpc3Q6OlRocmVhZEJvZHkgZmluYWwgOiBwdWJsaWMg
QXV0b21hdGljVGhyZWFkIHsKIHB1YmxpYzoKLSAgICBUaHJlYWRCb2R5KGNvbnN0IEFic3RyYWN0
TG9ja2VyJiBsb2NrZXIsIFdvcmtsaXN0JiB3b3JrbGlzdCwgVGhyZWFkRGF0YSYgZGF0YSwgQm94
PFVuY2hlY2tlZExvY2s+IGxvY2ssIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+JiYgY29u
ZGl0aW9uLCBpbnQgcmVsYXRpdmVQcmlvcml0eSkKKyAgICBUaHJlYWRCb2R5KGNvbnN0IEFic3Ry
YWN0TG9ja2VyJiBsb2NrZXIsIFdvcmtsaXN0JiB3b3JrbGlzdCwgVGhyZWFkRGF0YSYgZGF0YSwg
Qm94PExvY2s+IGxvY2ssIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+JiYgY29uZGl0aW9u
LCBpbnQgcmVsYXRpdmVQcmlvcml0eSkKICAgICAgICAgOiBBdXRvbWF0aWNUaHJlYWQobG9ja2Vy
LCBsb2NrLCBXVEZNb3ZlKGNvbmRpdGlvbiksIFRocmVhZFR5cGU6OkNvbXBpbGVyKQogICAgICAg
ICAsIG1fd29ya2xpc3Qod29ya2xpc3QpCiAgICAgICAgICwgbV9kYXRhKGRhdGEpCkBAIC0xODEs
NyArMTgxLDcgQEAgc3RhdGljIENTdHJpbmcgY3JlYXRlV29ya2xpc3ROYW1lKENTdHJpbmcmJiB0
aWVyTmFtZSkKIFdvcmtsaXN0OjpXb3JrbGlzdChDU3RyaW5nJiYgdGllck5hbWUpCiAgICAgOiBt
X3RocmVhZE5hbWUoY3JlYXRlV29ya2xpc3ROYW1lKFdURk1vdmUodGllck5hbWUpKSkKICAgICAs
IG1fcGxhbkVucXVldWVkKEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbjo6Y3JlYXRlKCkpCi0gICAg
LCBtX2xvY2soQm94PFVuY2hlY2tlZExvY2s+OjpjcmVhdGUoKSkKKyAgICAsIG1fbG9jayhCb3g8
TG9jaz46OmNyZWF0ZSgpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1dvcmtsaXN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmts
aXN0LmgKaW5kZXggNTc2ZTAzZTQ3ZTZlZjUwM2M2ZDAxMTZlY2ZiZGMwYThjNmM3NWM4OC4uM2Uy
YmJhMmZmOGUxNWJhMWI5ZjJmNWVjNjIxYjMwMGI2ZjkxNGJhYSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHV29ya2xpc3QuaApAQCAtMTEwLDEwICsxMTAsMTAgQEAgcHJpdmF0ZToKICAg
ICAvLyBiZSBjb21wbGV0ZWQuCiAgICAgVmVjdG9yPFJlZlB0cjxQbGFuPiwgMTY+IG1fcmVhZHlQ
bGFuczsKICAgICBSZWY8QXV0b21hdGljVGhyZWFkQ29uZGl0aW9uPiBtX3BsYW5FbnF1ZXVlZDsK
LSAgICBVbmNoZWNrZWRDb25kaXRpb24gbV9wbGFuQ29tcGlsZWQ7CisgICAgQ29uZGl0aW9uIG1f
cGxhbkNvbXBpbGVkOwogCiAgICAgVW5jaGVja2VkTG9jayBtX3N1c3BlbnNpb25Mb2NrOwotICAg
IEJveDxVbmNoZWNrZWRMb2NrPiBtX2xvY2s7CisgICAgQm94PExvY2s+IG1fbG9jazsKIH07CiAK
IEpTX0VYUE9SVF9QUklWQVRFIHVuc2lnbmVkIHNldE51bWJlck9mREZHQ29tcGlsZXJUaHJlYWRz
KHVuc2lnbmVkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKaW5kZXggY2JhZGNmOWUz
MmNjOTkwOTc0YWU5YzU3NWMzNzY5YWIyZDhhMmVhZC4uNjQ1NTc4ZDI2MWJmNTFlMjMxMTAzM2Mz
ZTczYzQzYjY1YTM4NGNjYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
SGVhcC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKQEAgLTMw
Miw3ICszMDIsNyBAQCBIZWFwOjpIZWFwKFZNJiB2bSwgSGVhcFR5cGUgaGVhcFR5cGUpCiAgICAg
LCBtX3NoYXJlZENvbGxlY3Rvck1hcmtTdGFjayhtYWtlVW5pcXVlPE1hcmtTdGFja0FycmF5Pigp
KQogICAgICwgbV9zaGFyZWRNdXRhdG9yTWFya1N0YWNrKG1ha2VVbmlxdWU8TWFya1N0YWNrQXJy
YXk+KCkpCiAgICAgLCBtX2hlbHBlckNsaWVudCgmaGVhcEhlbHBlclBvb2woKSkKLSAgICAsIG1f
dGhyZWFkTG9jayhCb3g8VW5jaGVja2VkTG9jaz46OmNyZWF0ZSgpKQorICAgICwgbV90aHJlYWRM
b2NrKEJveDxMb2NrPjo6Y3JlYXRlKCkpCiAgICAgLCBtX3RocmVhZENvbmRpdGlvbihBdXRvbWF0
aWNUaHJlYWRDb25kaXRpb246OmNyZWF0ZSgpKQogewogICAgIG1fd29ybGRTdGF0ZS5zdG9yZSgw
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaAppbmRleCAwODJkMzExYWM2NjFiYjQwZDFiNjBm
MzUxZmQ3YzUwNmY5OWUwOTFlLi5hNWVlZmM2OWRiZDNjNmNjZDE2MWNkOTNkY2IxNTA3OTYyMTY2
NzgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCkBAIC03NDYsNyArNzQ2LDcgQEAgcHJp
dmF0ZToKIAogICAgIHVpbnQ2NF90IG1fbXV0YXRvckV4ZWN1dGlvblZlcnNpb24geyAwIH07CiAg
ICAgdWludDY0X3QgbV9waGFzZVZlcnNpb24geyAwIH07Ci0gICAgQm94PFVuY2hlY2tlZExvY2s+
IG1fdGhyZWFkTG9jazsKKyAgICBCb3g8TG9jaz4gbV90aHJlYWRMb2NrOwogICAgIFJlZjxBdXRv
bWF0aWNUaHJlYWRDb25kaXRpb24+IG1fdGhyZWFkQ29uZGl0aW9uOyAvLyBUaGUgbXV0YXRvciBt
dXN0IG5vdCB3YWl0IG9uIHRoaXMuIEl0IHdvdWxkIGNhdXNlIGEgZGVhZGxvY2suCiAgICAgUmVm
UHRyPEF1dG9tYXRpY1RocmVhZD4gbV90aHJlYWQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUV29ya2xpc3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRXb3JrbGlzdC5jcHAKaW5kZXggYTk2ODk3NGJkNmE5ODIzYjkwYWFkYzQ0YTQxNGE1Mzdh
OTAzY2Y3YS4uYTcwNTJlNzlmMGE3NDM2N2ZlM2ZkYzVhM2NmNmQ1MzhlNjkzMjAwZSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRXb3JrbGlzdC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRXb3JrbGlzdC5jcHAKQEAgLTE2NSw3ICsxNjUsNyBA
QCBwcml2YXRlOgogfTsKIAogSklUV29ya2xpc3Q6OkpJVFdvcmtsaXN0KCkKLSAgICA6IG1fbG9j
ayhCb3g8VW5jaGVja2VkTG9jaz46OmNyZWF0ZSgpKQorICAgIDogbV9sb2NrKEJveDxMb2NrPjo6
Y3JlYXRlKCkpCiAgICAgLCBtX2NvbmRpdGlvbihBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246OmNy
ZWF0ZSgpKQogewogICAgIExvY2tlciBsb2NrZXIgeyAqbV9sb2NrIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFdvcmtsaXN0LmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVFdvcmtsaXN0LmgKaW5kZXggYTcyYTgzODcwYTAwODJmY2QzNDQ5NTI5MGVh
NTBlYTE0MGQ4OWYyZi4uYjlmNzdjYTFiM2RkZWZhNjE0OGIxMzY5NDJkNTdhMDlkNjVlYTdhMyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRXb3JrbGlzdC5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUV29ya2xpc3QuaApAQCAtNzEsNyArNzEsNyBA
QCBwcml2YXRlOgogICAgIFBsYW5zIG1fcGxhbnM7CiAgICAgSGFzaFNldDxDb2RlQmxvY2sqPiBt
X3BsYW5uZWQ7CiAgICAgCi0gICAgQm94PFVuY2hlY2tlZExvY2s+IG1fbG9jazsKKyAgICBCb3g8
TG9jaz4gbV9sb2NrOwogICAgIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+IG1fY29uZGl0
aW9uOyAvLyBXZSB1c2UgT25lIFRydWUgQ29uZGl0aW9uIGZvciBldmVyeXRoaW5nIGJlY2F1c2Ug
dGhhdCdzIGVhc2llci4KICAgICBSZWZQdHI8QXV0b21hdGljVGhyZWFkPiBtX3RocmVhZDsKICAg
ICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNVHJhcHMuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1UcmFwcy5jcHAKaW5kZXggNTdkYjMx
OWNlY2ZiNzM3MTk3ZTI2ZDljZGQyZGI3YTU4YmIwOGM2Ny4uMGRjN2UzYjc3M2EzNGY0NTU1OWQx
OWVhODMwMjgyNTQ5Y2Y3Y2ZiNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvVk1UcmFwcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1U
cmFwcy5jcHAKQEAgLTQzNyw3ICs0MzcsNyBAQCB2b2lkIFZNVHJhcHM6OnVuZG9EZWZlclRlcm1p
bmF0aW9uU2xvdyhEZWZlckFjdGlvbiBkZWZlckFjdGlvbikKIH0KIAogVk1UcmFwczo6Vk1UcmFw
cygpCi0gICAgOiBtX2xvY2soQm94PFVuY2hlY2tlZExvY2s+OjpjcmVhdGUoKSkKKyAgICA6IG1f
bG9jayhCb3g8TG9jaz46OmNyZWF0ZSgpKQogICAgICwgbV9jb25kaXRpb24oQXV0b21hdGljVGhy
ZWFkQ29uZGl0aW9uOjpjcmVhdGUoKSkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1ZNVHJhcHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1ZNVHJhcHMuaAppbmRleCA1ZDE1YzkyZjcwNDE3NTFkODA0ZTRjNTcyYTU1MzAxMDdiZmU0MmRj
Li5kOTRjODA2YjFiZThkNzQzNGUwM2UzMmNlMDBiYjI0MzFkODRiYWU3IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTVRyYXBzLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvVk1UcmFwcy5oCkBAIC0yNDcsNyArMjQ3LDcgQEAgcHJpdmF0ZToK
IAogICAgIHN0YXRpYyBjb25zdGV4cHIgQml0RmllbGQgTmVlZEV4Y2VwdGlvbkhhbmRsaW5nTWFz
ayA9IH4oMSA8PCBOZWVkRXhjZXB0aW9uSGFuZGxpbmcpOwogCi0gICAgQm94PFVuY2hlY2tlZExv
Y2s+IG1fbG9jazsKKyAgICBCb3g8TG9jaz4gbV9sb2NrOwogICAgIFJlZjxBdXRvbWF0aWNUaHJl
YWRDb25kaXRpb24+IG1fY29uZGl0aW9uOwogICAgIEF0b21pYzxCaXRGaWVsZD4gbV90cmFwQml0
cyB7IDAgfTsKICAgICBib29sIG1fbmVlZFRvSW52YWxpZGF0ZWRDb2RlQmxvY2tzIHsgZmFsc2Ug
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Xb3JrbGlzdC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtV29ya2xpc3QuY3BwCmluZGV4IDM4
OThlY2FiNGMwODg3ZTI1YTBhMzQ4MWI0MTFiOGY2N2MxZWJjMjkuLjViYWQwZDkwYTU2MmUyNWRk
ZTgxN2I1ODJjMDYwNjY1NmM5MDZlYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21Xb3JrbGlzdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbVdvcmtsaXN0LmNwcApAQCAtMTI4LDcgKzEyOCw3IEBAIHByaXZhdGU6CiAgICAgfQogCiBw
dWJsaWM6Ci0gICAgVW5jaGVja2VkQ29uZGl0aW9uIHN5bmNocm9uaXplOworICAgIENvbmRpdGlv
biBzeW5jaHJvbml6ZTsKICAgICBXb3JrbGlzdCYgd29ya2xpc3Q7CiAgICAgLy8gV2UgY2FuIG9u
bHkgbW9kaWZ5IGVsZW1lbnQgd2hlbiBob2xkaW5nIHRoZSBsb2NrLiBBIHN5bmNocm9ub3VzIGNv
bXBpbGUgbWlnaHQgbG9vayBhdCBlYWNoIHRocmVhZCdzIHRhc2tzIGluIG9yZGVyIHRvIGJvb3N0
IHRoZSBwcmlvcml0eS4KICAgICBRdWV1ZUVsZW1lbnQgZWxlbWVudDsKQEAgLTIxMyw3ICsyMTMs
NyBAQCB2b2lkIFdvcmtsaXN0OjpzdG9wQWxsUGxhbnNGb3JDb250ZXh0KENvbnRleHQmIGNvbnRl
eHQpCiB9CiAKIFdvcmtsaXN0OjpXb3JrbGlzdCgpCi0gICAgOiBtX2xvY2soQm94PFVuY2hlY2tl
ZExvY2s+OjpjcmVhdGUoKSkKKyAgICA6IG1fbG9jayhCb3g8TG9jaz46OmNyZWF0ZSgpKQogICAg
ICwgbV9wbGFuRW5xdWV1ZWQoQXV0b21hdGljVGhyZWFkQ29uZGl0aW9uOjpjcmVhdGUoKSkKIHsK
ICAgICB1bnNpZ25lZCBudW1iZXJPZkNvbXBpbGF0aW9uVGhyZWFkcyA9IE9wdGlvbnM6OnVzZUNv
bmN1cnJlbnRKSVQoKSA/IGtlcm5UQ1NNQXdhcmVOdW1iZXJPZlByb2Nlc3NvckNvcmVzKCkgOiAx
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVdvcmtsaXN0Lmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtV29ya2xpc3QuaAppbmRleCA0NWE2ZmJi
NmNmOWE4NTNjMjgxZmRiYmFjZDU2ZmJlZGQxZmE1OWNmLi41NmQ3OWEwZTk4OWE2MDJmMjEzM2Qw
MzA5MGZkYmNjNjM3Yzk1NjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtV29ya2xpc3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtV29y
a2xpc3QuaApAQCAtODQsNyArODQsNyBAQCBwcml2YXRlOgogICAgICAgICByZXR1cm4gbGVmdC5w
cmlvcml0eSA+IHJpZ2h0LnByaW9yaXR5OwogICAgIH0KIAotICAgIEJveDxVbmNoZWNrZWRMb2Nr
PiBtX2xvY2s7CisgICAgQm94PExvY2s+IG1fbG9jazsKICAgICBSZWY8QXV0b21hdGljVGhyZWFk
Q29uZGl0aW9uPiBtX3BsYW5FbnF1ZXVlZDsKICAgICAvLyBUZWNobmljYWxseSwgdGhpcyBjb3Vs
ZCBvdmVyZmxvdyBidXQgdGhhdCdzIHVubGlrZWx5LiBFdmVuIGlmIGl0IGRpZCwgd2Ugd2lsbCBq
dXN0IGNvbXBpbGUgdGhpbmdzIG9mIHRoZSBzYW1lCiAgICAgLy8gUHJpb3JpdHkgaXQgdGhlIHdy
b25nIG9yZGVyLCB3aGljaCBpc24ndCB3cm9uZywganVzdCBzdWJvcHRpbWFsLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvQXV0b21hdGljVGhyZWFkLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0F1
dG9tYXRpY1RocmVhZC5jcHAKaW5kZXggM2M1YmU1MTNjMjYzY2E4YjRkYTZiN2MyNmM2ZjgzNzM5
ZGEzMWUwYy4uZjRlYTc4ZDEzZTFjZGRiNjE5YjgyMjg2OGQzM2M3MjdjOWYyZjk4YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvQXV0b21hdGljVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9BdXRvbWF0aWNUaHJlYWQuY3BwCkBAIC03NywxMiArNzcsMTIgQEAgdm9pZCBBdXRvbWF0
aWNUaHJlYWRDb25kaXRpb246Om5vdGlmeUFsbChjb25zdCBBYnN0cmFjdExvY2tlciYgbG9ja2Vy
KQogICAgIH0KIH0KIAotdm9pZCBBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246OndhaXQoVW5jaGVj
a2VkTG9jayYgbG9jaykKK3ZvaWQgQXV0b21hdGljVGhyZWFkQ29uZGl0aW9uOjp3YWl0KExvY2sm
IGxvY2spCiB7CiAgICAgbV9jb25kaXRpb24ud2FpdChsb2NrKTsKIH0KIAotYm9vbCBBdXRvbWF0
aWNUaHJlYWRDb25kaXRpb246OndhaXRGb3IoVW5jaGVja2VkTG9jayYgbG9jaywgU2Vjb25kcyB0
aW1lKQorYm9vbCBBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246OndhaXRGb3IoTG9jayYgbG9jaywg
U2Vjb25kcyB0aW1lKQogewogICAgIHJldHVybiBtX2NvbmRpdGlvbi53YWl0Rm9yKGxvY2ssIHRp
bWUpOwogfQpAQCAtMTA0LDEyICsxMDQsMTIgQEAgYm9vbCBBdXRvbWF0aWNUaHJlYWRDb25kaXRp
b246OmNvbnRhaW5zKGNvbnN0IEFic3RyYWN0TG9ja2VyJiwgQXV0b21hdGljVGhyZWFkKgogICAg
IHJldHVybiBtX3RocmVhZHMuY29udGFpbnModGhyZWFkKTsKIH0KIAotQXV0b21hdGljVGhyZWFk
OjpBdXRvbWF0aWNUaHJlYWQoY29uc3QgQWJzdHJhY3RMb2NrZXImIGxvY2tlciwgQm94PFVuY2hl
Y2tlZExvY2s+IGxvY2ssIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+JiYgY29uZGl0aW9u
LCBTZWNvbmRzIHRpbWVvdXQpCitBdXRvbWF0aWNUaHJlYWQ6OkF1dG9tYXRpY1RocmVhZChjb25z
dCBBYnN0cmFjdExvY2tlciYgbG9ja2VyLCBCb3g8TG9jaz4gbG9jaywgUmVmPEF1dG9tYXRpY1Ro
cmVhZENvbmRpdGlvbj4mJiBjb25kaXRpb24sIFNlY29uZHMgdGltZW91dCkKICAgICA6IEF1dG9t
YXRpY1RocmVhZChsb2NrZXIsIGxvY2ssIFdURk1vdmUoY29uZGl0aW9uKSwgVGhyZWFkVHlwZTo6
VW5rbm93biwgdGltZW91dCkKIHsKIH0KIAotQXV0b21hdGljVGhyZWFkOjpBdXRvbWF0aWNUaHJl
YWQoY29uc3QgQWJzdHJhY3RMb2NrZXImIGxvY2tlciwgQm94PFVuY2hlY2tlZExvY2s+IGxvY2ss
IFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+JiYgY29uZGl0aW9uLCBUaHJlYWRUeXBlIHR5
cGUsIFNlY29uZHMgdGltZW91dCkKK0F1dG9tYXRpY1RocmVhZDo6QXV0b21hdGljVGhyZWFkKGNv
bnN0IEFic3RyYWN0TG9ja2VyJiBsb2NrZXIsIEJveDxMb2NrPiBsb2NrLCBSZWY8QXV0b21hdGlj
VGhyZWFkQ29uZGl0aW9uPiYmIGNvbmRpdGlvbiwgVGhyZWFkVHlwZSB0eXBlLCBTZWNvbmRzIHRp
bWVvdXQpCiAgICAgOiBtX2xvY2sobG9jaykKICAgICAsIG1fY29uZGl0aW9uKFdURk1vdmUoY29u
ZGl0aW9uKSkKICAgICAsIG1fdGltZW91dCh0aW1lb3V0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvQXV0b21hdGljVGhyZWFkLmggYi9Tb3VyY2UvV1RGL3d0Zi9BdXRvbWF0aWNUaHJlYWQu
aAppbmRleCAwOWZjYWZlZjIzOTU5MWIyZTEyY2RmMDJmZGYwMDZjY2RkNDEyYTZiLi4yZThmZTYw
YjdmZjQ2MTdhYjdiZjY4ZjBlZmQ1ZjI1OGFiNjA4Y2M1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L3d0Zi9BdXRvbWF0aWNUaHJlYWQuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9BdXRvbWF0aWNUaHJl
YWQuaApAQCAtODEsOCArODEsOCBAQCBwdWJsaWM6CiAgICAgLy8gT25lIGtub3duLWdvb2QgY2Fz
ZSBmb3Igb25lLXRydWUtY29uZGl0aW9uIGlzIHdoZW4gdGhlIGNvbW11bmljYXRpb24gaW52b2x2
ZXMganVzdCB0d28KICAgICAvLyB0aHJlYWRzLiBJbiBzdWNoIGNhc2VzLCB0aGUgdGhyZWFkIGRv
aW5nIHRoZSBub3RpZnlBbGwoKSBjYW4gd2FrZSB1cCBhdCBtb3N0IG9uZSB0aHJlYWQgLQogICAg
IC8vIGl0cyBwYXJ0bmVyLgotICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHdhaXQoVW5jaGVj
a2VkTG9jayYpOwotICAgIFdURl9FWFBPUlRfUFJJVkFURSBib29sIHdhaXRGb3IoVW5jaGVja2Vk
TG9jayYsIFNlY29uZHMpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHdhaXQoTG9jayYg
bG9jaykgV1RGX1JFUVVJUkVTX0xPQ0sobG9jayk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIGJv
b2wgd2FpdEZvcihMb2NrJiBsb2NrLCBTZWNvbmRzKSBXVEZfUkVRVUlSRVNfTE9DSyhsb2NrKTsK
ICAgICAKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIEF1dG9tYXRpY1RocmVhZDsKQEAgLTkz
LDcgKzkzLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlbW92ZShjb25zdCBBYnN0cmFjdExvY2tl
ciYsIEF1dG9tYXRpY1RocmVhZCopOwogICAgIGJvb2wgY29udGFpbnMoY29uc3QgQWJzdHJhY3RM
b2NrZXImLCBBdXRvbWF0aWNUaHJlYWQqKTsKICAgICAKLSAgICBVbmNoZWNrZWRDb25kaXRpb24g
bV9jb25kaXRpb247CisgICAgQ29uZGl0aW9uIG1fY29uZGl0aW9uOwogICAgIFZlY3RvcjxBdXRv
bWF0aWNUaHJlYWQqPiBtX3RocmVhZHM7CiB9OwogCkBAIC0xMzEsOSArMTMxLDkgQEAgcHVibGlj
OgogcHJvdGVjdGVkOgogICAgIC8vIFRoaXMgbG9naWNhbGx5IGNyZWF0ZXMgdGhlIHRocmVhZCwg
YnV0IGluIHJlYWxpdHkgdGhlIHRocmVhZCB3b24ndCBiZSBjcmVhdGVkIHVudGlsIHNvbWVvbmUK
ICAgICAvLyBjYWxscyBBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246Om5vdGlmeU9uZSgpIG9yIG5v
dGlmeUFsbCgpLgotICAgIEF1dG9tYXRpY1RocmVhZChjb25zdCBBYnN0cmFjdExvY2tlciYsIEJv
eDxVbmNoZWNrZWRMb2NrPiwgUmVmPEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbj4mJiwgU2Vjb25k
cyB0aW1lb3V0ID0gMTBfcyk7CisgICAgQXV0b21hdGljVGhyZWFkKGNvbnN0IEFic3RyYWN0TG9j
a2VyJiwgQm94PExvY2s+LCBSZWY8QXV0b21hdGljVGhyZWFkQ29uZGl0aW9uPiYmLCBTZWNvbmRz
IHRpbWVvdXQgPSAxMF9zKTsKIAotICAgIEF1dG9tYXRpY1RocmVhZChjb25zdCBBYnN0cmFjdExv
Y2tlciYsIEJveDxVbmNoZWNrZWRMb2NrPiwgUmVmPEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbj4m
JiwgVGhyZWFkVHlwZSwgU2Vjb25kcyB0aW1lb3V0ID0gMTBfcyk7CisgICAgQXV0b21hdGljVGhy
ZWFkKGNvbnN0IEFic3RyYWN0TG9ja2VyJiwgQm94PExvY2s+LCBSZWY8QXV0b21hdGljVGhyZWFk
Q29uZGl0aW9uPiYmLCBUaHJlYWRUeXBlLCBTZWNvbmRzIHRpbWVvdXQgPSAxMF9zKTsKICAgICAK
ICAgICAvLyBUbyB1bmRlcnN0YW5kIFBvbGxSZXN1bHQgYW5kIFdvcmtSZXN1bHQsIGltYWdpbmUg
dGhhdCBwb2xsKCkgYW5kIHdvcmsoKSBhcmUgYmVpbmcgY2FsbGVkIGxpa2UKICAgICAvLyBzbzoK
QEAgLTE4MywxNSArMTgzLDE1IEBAIHByaXZhdGU6CiAgICAgCiAgICAgdm9pZCBzdGFydChjb25z
dCBBYnN0cmFjdExvY2tlciYpOwogICAgIAotICAgIEJveDxVbmNoZWNrZWRMb2NrPiBtX2xvY2s7
CisgICAgQm94PExvY2s+IG1fbG9jazsKICAgICBSZWY8QXV0b21hdGljVGhyZWFkQ29uZGl0aW9u
PiBtX2NvbmRpdGlvbjsKICAgICBTZWNvbmRzIG1fdGltZW91dDsKICAgICBUaHJlYWRUeXBlIG1f
dGhyZWFkVHlwZSB7IFRocmVhZFR5cGU6OlVua25vd24gfTsKICAgICBib29sIG1faXNSdW5uaW5n
IHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9pc1dhaXRpbmcgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9o
YXNVbmRlcmx5aW5nVGhyZWFkIHsgZmFsc2UgfTsKLSAgICBVbmNoZWNrZWRDb25kaXRpb24gbV93
YWl0Q29uZGl0aW9uOwotICAgIFVuY2hlY2tlZENvbmRpdGlvbiBtX2lzUnVubmluZ0NvbmRpdGlv
bjsKKyAgICBDb25kaXRpb24gbV93YWl0Q29uZGl0aW9uOworICAgIENvbmRpdGlvbiBtX2lzUnVu
bmluZ0NvbmRpdGlvbjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1BhcmFs
bGVsSGVscGVyUG9vbC5jcHAKaW5kZXggYzczNDY4NTU5MzE0ZDA5NzAwYmRkOGE1ZDBhNTUyMDFl
MGQ1MGM5Yy4uNjE3MzNiNzY3ZDU5N2I5MTMwMjA1Zjk5MjFmNWIyYmEzNWUzYjM3OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmNwcAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9QYXJhbGxlbEhlbHBlclBvb2wuY3BwCkBAIC00MSw3ICs0MSw3IEBAIFBhcmFsbGVs
SGVscGVyQ2xpZW50OjpQYXJhbGxlbEhlbHBlckNsaWVudChSZWZQdHI8UGFyYWxsZWxIZWxwZXJQ
b29sPiYmIHBvb2wpCiBQYXJhbGxlbEhlbHBlckNsaWVudDo6flBhcmFsbGVsSGVscGVyQ2xpZW50
KCkKIHsKICAgICBMb2NrZXIgbG9ja2VyIHsgKm1fcG9vbC0+bV9sb2NrIH07Ci0gICAgZmluaXNo
KGxvY2tlcik7CisgICAgZmluaXNoV2l0aExvY2soKTsKIAogICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgbV9wb29sLT5tX2NsaWVudHMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgaWYgKG1fcG9v
bC0+bV9jbGllbnRzW2ldID09IHRoaXMpIHsKQEAgLTYzLDcgKzYzLDcgQEAgdm9pZCBQYXJhbGxl
bEhlbHBlckNsaWVudDo6c2V0VGFzayhSZWZQdHI8U2hhcmVkVGFzazx2b2lkICgpPj4mJiB0YXNr
KQogdm9pZCBQYXJhbGxlbEhlbHBlckNsaWVudDo6ZmluaXNoKCkKIHsKICAgICBMb2NrZXIgbG9j
a2VyIHsgKm1fcG9vbC0+bV9sb2NrIH07Ci0gICAgZmluaXNoKGxvY2tlcik7CisgICAgZmluaXNo
V2l0aExvY2soKTsKIH0KIAogdm9pZCBQYXJhbGxlbEhlbHBlckNsaWVudDo6ZG9Tb21lSGVscGlu
ZygpCkBAIC03MSw3ICs3MSw3IEBAIHZvaWQgUGFyYWxsZWxIZWxwZXJDbGllbnQ6OmRvU29tZUhl
bHBpbmcoKQogICAgIFJlZlB0cjxTaGFyZWRUYXNrPHZvaWQgKCk+PiB0YXNrOwogICAgIHsKICAg
ICAgICAgTG9ja2VyIGxvY2tlciB7ICptX3Bvb2wtPm1fbG9jayB9OwotICAgICAgICB0YXNrID0g
Y2xhaW1UYXNrKGxvY2tlcik7CisgICAgICAgIHRhc2sgPSBjbGFpbVRhc2soKTsKICAgICAgICAg
aWYgKCF0YXNrKQogICAgICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTg2LDE0ICs4NiwxNCBA
QCB2b2lkIFBhcmFsbGVsSGVscGVyQ2xpZW50OjpydW5UYXNrSW5QYXJhbGxlbChSZWZQdHI8U2hh
cmVkVGFzazx2b2lkICgpPj4mJiB0YXNrKQogICAgIGZpbmlzaCgpOwogfQogCi12b2lkIFBhcmFs
bGVsSGVscGVyQ2xpZW50OjpmaW5pc2goY29uc3QgQWJzdHJhY3RMb2NrZXImKQordm9pZCBQYXJh
bGxlbEhlbHBlckNsaWVudDo6ZmluaXNoV2l0aExvY2soKQogewogICAgIG1fdGFzayA9IG51bGxw
dHI7CiAgICAgd2hpbGUgKG1fbnVtQWN0aXZlKQogICAgICAgICBtX3Bvb2wtPm1fd29ya0NvbXBs
ZXRlQ29uZGl0aW9uLndhaXQoKm1fcG9vbC0+bV9sb2NrKTsKIH0KIAotUmVmUHRyPFNoYXJlZFRh
c2s8dm9pZCAoKT4+IFBhcmFsbGVsSGVscGVyQ2xpZW50OjpjbGFpbVRhc2soY29uc3QgQWJzdHJh
Y3RMb2NrZXImKQorUmVmUHRyPFNoYXJlZFRhc2s8dm9pZCAoKT4+IFBhcmFsbGVsSGVscGVyQ2xp
ZW50OjpjbGFpbVRhc2soKQogewogICAgIGlmICghbV90YXNrKQogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKQEAgLTEyMiw3ICsxMjIsNyBAQCB2b2lkIFBhcmFsbGVsSGVscGVyQ2xpZW50OjpydW5U
YXNrKGNvbnN0IFJlZlB0cjxTaGFyZWRUYXNrPHZvaWQgKCk+PiYgdGFzaykKIH0KIAogUGFyYWxs
ZWxIZWxwZXJQb29sOjpQYXJhbGxlbEhlbHBlclBvb2woQ1N0cmluZyYmIHRocmVhZE5hbWUpCi0g
ICAgOiBtX2xvY2soQm94PFVuY2hlY2tlZExvY2s+OjpjcmVhdGUoKSkKKyAgICA6IG1fbG9jayhC
b3g8TG9jaz46OmNyZWF0ZSgpKQogICAgICwgbV93b3JrQXZhaWxhYmxlQ29uZGl0aW9uKEF1dG9t
YXRpY1RocmVhZENvbmRpdGlvbjo6Y3JlYXRlKCkpCiAgICAgLCBtX3RocmVhZE5hbWUoV1RGTW92
ZSh0aHJlYWROYW1lKSkKIHsKQEAgLTE0OCw3ICsxNDgsNyBAQCB2b2lkIFBhcmFsbGVsSGVscGVy
UG9vbDo6ZW5zdXJlVGhyZWFkcyh1bnNpZ25lZCBudW1UaHJlYWRzKQogICAgIGlmIChudW1UaHJl
YWRzIDwgbV9udW1UaHJlYWRzKQogICAgICAgICByZXR1cm47CiAgICAgbV9udW1UaHJlYWRzID0g
bnVtVGhyZWFkczsKLSAgICBpZiAoZ2V0Q2xpZW50V2l0aFRhc2sobG9ja2VyKSkKKyAgICBpZiAo
Z2V0Q2xpZW50V2l0aFRhc2soKSkKICAgICAgICAgZGlkTWFrZVdvcmtBdmFpbGFibGUobG9ja2Vy
KTsKIH0KIApAQCAtMTU4LDEwICsxNTgsMTEgQEAgdm9pZCBQYXJhbGxlbEhlbHBlclBvb2w6OmRv
U29tZUhlbHBpbmcoKQogICAgIFJlZlB0cjxTaGFyZWRUYXNrPHZvaWQgKCk+PiB0YXNrOwogICAg
IHsKICAgICAgICAgTG9ja2VyIGxvY2tlciB7ICptX2xvY2sgfTsKLSAgICAgICAgY2xpZW50ID0g
Z2V0Q2xpZW50V2l0aFRhc2sobG9ja2VyKTsKKyAgICAgICAgY2xpZW50ID0gZ2V0Q2xpZW50V2l0
aFRhc2soKTsKICAgICAgICAgaWYgKCFjbGllbnQpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgIHRhc2sgPSBjbGllbnQtPmNsYWltVGFzayhsb2NrZXIpOworICAgICAgICBhc3NlcnRJc0hl
bGQoKmNsaWVudC0+bV9wb29sLT5tX2xvY2spOworICAgICAgICB0YXNrID0gY2xpZW50LT5jbGFp
bVRhc2soKTsKICAgICB9CiAKICAgICBjbGllbnQtPnJ1blRhc2sodGFzayk7CkBAIC0xODEsMTMg
KzE4MiwxNSBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIFBvbGxSZXN1bHQgcG9s
bChjb25zdCBBYnN0cmFjdExvY2tlciYgbG9ja2VyKSBmaW5hbAorICAgIFBvbGxSZXN1bHQgcG9s
bChjb25zdCBBYnN0cmFjdExvY2tlciYpIGZpbmFsCiAgICAgewogICAgICAgICBpZiAobV9wb29s
Lm1faXNEeWluZykKICAgICAgICAgICAgIHJldHVybiBQb2xsUmVzdWx0OjpTdG9wOwotICAgICAg
ICBtX2NsaWVudCA9IG1fcG9vbC5nZXRDbGllbnRXaXRoVGFzayhsb2NrZXIpOworICAgICAgICBh
c3NlcnRJc0hlbGQoKm1fcG9vbC5tX2xvY2spOworICAgICAgICBtX2NsaWVudCA9IG1fcG9vbC5n
ZXRDbGllbnRXaXRoVGFzaygpOwogICAgICAgICBpZiAobV9jbGllbnQpIHsKLSAgICAgICAgICAg
IG1fdGFzayA9IG1fY2xpZW50LT5jbGFpbVRhc2sobG9ja2VyKTsKKyAgICAgICAgICAgIGFzc2Vy
dElzSGVsZCgqbV9jbGllbnQtPm1fcG9vbC0+bV9sb2NrKTsKKyAgICAgICAgICAgIG1fdGFzayA9
IG1fY2xpZW50LT5jbGFpbVRhc2soKTsKICAgICAgICAgICAgIHJldHVybiBQb2xsUmVzdWx0OjpX
b3JrOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBQb2xsUmVzdWx0OjpXYWl0OwpAQCAtMjEz
LDEyICsyMTYsMTIgQEAgdm9pZCBQYXJhbGxlbEhlbHBlclBvb2w6OmRpZE1ha2VXb3JrQXZhaWxh
YmxlKGNvbnN0IEFic3RyYWN0TG9ja2VyJiBsb2NrZXIpCiAgICAgbV93b3JrQXZhaWxhYmxlQ29u
ZGl0aW9uLT5ub3RpZnlBbGwobG9ja2VyKTsKIH0KIAotYm9vbCBQYXJhbGxlbEhlbHBlclBvb2w6
Omhhc0NsaWVudFdpdGhUYXNrKGNvbnN0IEFic3RyYWN0TG9ja2VyJiBsb2NrZXIpCitib29sIFBh
cmFsbGVsSGVscGVyUG9vbDo6aGFzQ2xpZW50V2l0aFRhc2soKQogewotICAgIHJldHVybiAhIWdl
dENsaWVudFdpdGhUYXNrKGxvY2tlcik7CisgICAgcmV0dXJuICEhZ2V0Q2xpZW50V2l0aFRhc2so
KTsKIH0KIAotUGFyYWxsZWxIZWxwZXJDbGllbnQqIFBhcmFsbGVsSGVscGVyUG9vbDo6Z2V0Q2xp
ZW50V2l0aFRhc2soY29uc3QgQWJzdHJhY3RMb2NrZXImKQorUGFyYWxsZWxIZWxwZXJDbGllbnQq
IFBhcmFsbGVsSGVscGVyUG9vbDo6Z2V0Q2xpZW50V2l0aFRhc2soKQogewogICAgIC8vIFdlIGxv
YWQtYmFsYW5jZSBieSBiZWluZyByYW5kb20uCiAgICAgdW5zaWduZWQgc3RhcnRJbmRleCA9IG1f
cmFuZG9tLmdldFVpbnQzMihtX2NsaWVudHMuc2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5oIGIvU291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxw
ZXJQb29sLmgKaW5kZXggNjY0ZmFkZTg1Mzk5M2FiNGIwNTk1NDg3MjIxNGYzODdjOWE2ZDA1My4u
ZDdmMzhjZmUyYTUzNWRkZTk1NThlMjhiNDQ1MzQ2NWM4ZTc5NDFhZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmgKKysrIGIvU291cmNlL1dURi93dGYvUGFy
YWxsZWxIZWxwZXJQb29sLmgKQEAgLTYyLDcgKzYyLDQxIEBAIGNsYXNzIEF1dG9tYXRpY1RocmVh
ZENvbmRpdGlvbjsKIC8vIGEgdGFzayBhdCByYW5kb20uIFNvIGxvbmcgYXMgYW55IGNsaWVudCBo
YXMgYSB0YXNrLCBhbGwgdGhyZWFkcyBpbiB0aGUgcG9vbCB3aWxsIGNvbnRpbnVlCiAvLyBydW5u
aW5nIHRoZSBhdmFpbGFibGUgdGFza3MuIFRocmVhZHMgZ28gaWRsZSB3aGVuIG5vIGNsaWVudCBo
YXMgdGFza3MgdG8gcnVuLgogCi1jbGFzcyBQYXJhbGxlbEhlbHBlclBvb2w7CitjbGFzcyBQYXJh
bGxlbEhlbHBlckNsaWVudDsKKworY2xhc3MgUGFyYWxsZWxIZWxwZXJQb29sIDogcHVibGljIFRo
cmVhZFNhZmVSZWZDb3VudGVkPFBhcmFsbGVsSGVscGVyUG9vbD4geworcHVibGljOgorICAgIFdU
Rl9FWFBPUlRfUFJJVkFURSBQYXJhbGxlbEhlbHBlclBvb2woQ1N0cmluZyYmIHRocmVhZE5hbWUp
OworICAgIFdURl9FWFBPUlRfUFJJVkFURSB+UGFyYWxsZWxIZWxwZXJQb29sKCk7CisKKyAgICBX
VEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBlbnN1cmVUaHJlYWRzKHVuc2lnbmVkIG51bVRocmVhZHMp
OworCisgICAgdW5zaWduZWQgbnVtYmVyT2ZUaHJlYWRzKCkgY29uc3QgeyByZXR1cm4gbV9udW1U
aHJlYWRzOyB9CisgICAgCisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgZG9Tb21lSGVscGlu
ZygpOworCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBQYXJhbGxlbEhlbHBlckNsaWVudDsK
KyAgICBjbGFzcyBUaHJlYWQ7CisgICAgZnJpZW5kIGNsYXNzIFRocmVhZDsKKworICAgIHZvaWQg
ZGlkTWFrZVdvcmtBdmFpbGFibGUoY29uc3QgQWJzdHJhY3RMb2NrZXImKSBXVEZfUkVRVUlSRVNf
TE9DSyhtX2xvY2spOworCisgICAgYm9vbCBoYXNDbGllbnRXaXRoVGFzaygpIFdURl9SRVFVSVJF
U19MT0NLKG1fbG9jayk7CisgICAgUGFyYWxsZWxIZWxwZXJDbGllbnQqIGdldENsaWVudFdpdGhU
YXNrKCkgV1RGX1JFUVVJUkVTX0xPQ0sobV9sb2NrKTsKKyAgICAKKyAgICBCb3g8TG9jaz4gbV9s
b2NrOyAvLyBBdXRvbWF0aWNUaHJlYWQgd2FudHMgdGhpcyBpbiBhIGJveCBmb3Igc2FmZXR5Lgor
ICAgIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+IG1fd29ya0F2YWlsYWJsZUNvbmRpdGlv
bjsKKyAgICBDb25kaXRpb24gbV93b3JrQ29tcGxldGVDb25kaXRpb247CisKKyAgICBXZWFrUmFu
ZG9tIG1fcmFuZG9tOworICAgIAorICAgIFZlY3RvcjxQYXJhbGxlbEhlbHBlckNsaWVudCo+IG1f
Y2xpZW50czsKKyAgICBWZWN0b3I8UmVmUHRyPEF1dG9tYXRpY1RocmVhZD4+IG1fdGhyZWFkczsK
KyAgICBDU3RyaW5nIG1fdGhyZWFkTmFtZTsKKyAgICB1bnNpZ25lZCBtX251bVRocmVhZHMgeyAw
IH07IC8vIFRoaXMgY2FuIGJlIGxhcmdlciB0aGFuIG1fdGhyZWFkcy5zaXplKCkgYmVjYXVzZSB3
ZSBzdGFydCB0aHJlYWRzIG9ubHkgb25jZSB0aGVyZSBpcyB3b3JrLgorICAgIGJvb2wgbV9pc0R5
aW5nIHsgZmFsc2UgfTsKK307CiAKIC8vIEEgY2xpZW50IGlzIGEgcGxhY2Vob2xkZXIgZm9yIGEg
cGFyYWxsZWwgYWxnb3JpdGhtLiBBIHBhcmFsbGVsIGFsZ29yaXRobSB3aWxsIGhhdmUgYSB0YXNr
IHRoYXQKIC8vIGNhbiBiZSBydW4gY29uY3VycmVudGx5LiBXaGVuZXZlciBhIGNsaWVudCBoYXMg
YSB0YXNrIHNldCAoeW91IGhhdmUgY2FsbGVkIHNldFRhc2soKSBvcgpAQCAtMTQxLDcgKzE3NSw3
IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHNldFRhc2soY3JlYXRlU2hhcmVkVGFzazx2b2lk
ICgpPihmdW5jdG9yKSk7CiAgICAgfQotICAgIAorCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZv
aWQgZmluaXNoKCk7CiAKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBkb1NvbWVIZWxwaW5n
KCk7CkBAIC0xNjgsNTAgKzIwMiwxNSBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGZyaWVuZCBj
bGFzcyBQYXJhbGxlbEhlbHBlclBvb2w7CiAKLSAgICB2b2lkIGZpbmlzaChjb25zdCBBYnN0cmFj
dExvY2tlciYpOwotICAgIFJlZlB0cjxTaGFyZWRUYXNrPHZvaWQgKCk+PiBjbGFpbVRhc2soY29u
c3QgQWJzdHJhY3RMb2NrZXImKTsKKyAgICB2b2lkIGZpbmlzaFdpdGhMb2NrKCkgV1RGX1JFUVVJ
UkVTX0xPQ0soKm1fcG9vbC0+bV9sb2NrKTsKKyAgICBSZWZQdHI8U2hhcmVkVGFzazx2b2lkICgp
Pj4gY2xhaW1UYXNrKCkgV1RGX1JFUVVJUkVTX0xPQ0soKm1fcG9vbC0+bV9sb2NrKTsKICAgICB2
b2lkIHJ1blRhc2soY29uc3QgUmVmUHRyPFNoYXJlZFRhc2s8dm9pZCAoKT4+Jik7Ci0gICAgCisK
ICAgICBSZWZQdHI8UGFyYWxsZWxIZWxwZXJQb29sPiBtX3Bvb2w7CiAgICAgUmVmUHRyPFNoYXJl
ZFRhc2s8dm9pZCAoKT4+IG1fdGFzazsKICAgICB1bnNpZ25lZCBtX251bUFjdGl2ZSB7IDAgfTsK
IH07CiAKLWNsYXNzIFBhcmFsbGVsSGVscGVyUG9vbCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291
bnRlZDxQYXJhbGxlbEhlbHBlclBvb2w+IHsKLXB1YmxpYzoKLSAgICBXVEZfRVhQT1JUX1BSSVZB
VEUgUGFyYWxsZWxIZWxwZXJQb29sKENTdHJpbmcmJiB0aHJlYWROYW1lKTsKLSAgICBXVEZfRVhQ
T1JUX1BSSVZBVEUgflBhcmFsbGVsSGVscGVyUG9vbCgpOwotCi0gICAgV1RGX0VYUE9SVF9QUklW
QVRFIHZvaWQgZW5zdXJlVGhyZWFkcyh1bnNpZ25lZCBudW1UaHJlYWRzKTsKLQotICAgIHVuc2ln
bmVkIG51bWJlck9mVGhyZWFkcygpIGNvbnN0IHsgcmV0dXJuIG1fbnVtVGhyZWFkczsgfQotICAg
IAotICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGRvU29tZUhlbHBpbmcoKTsKLQotcHJpdmF0
ZToKLSAgICBmcmllbmQgY2xhc3MgUGFyYWxsZWxIZWxwZXJDbGllbnQ7Ci0gICAgY2xhc3MgVGhy
ZWFkOwotICAgIGZyaWVuZCBjbGFzcyBUaHJlYWQ7Ci0KLSAgICB2b2lkIGRpZE1ha2VXb3JrQXZh
aWxhYmxlKGNvbnN0IEFic3RyYWN0TG9ja2VyJik7Ci0KLSAgICBib29sIGhhc0NsaWVudFdpdGhU
YXNrKGNvbnN0IEFic3RyYWN0TG9ja2VyJik7Ci0gICAgUGFyYWxsZWxIZWxwZXJDbGllbnQqIGdl
dENsaWVudFdpdGhUYXNrKGNvbnN0IEFic3RyYWN0TG9ja2VyJik7Ci0gICAgUGFyYWxsZWxIZWxw
ZXJDbGllbnQqIHdhaXRGb3JDbGllbnRXaXRoVGFzayhjb25zdCBBYnN0cmFjdExvY2tlciYpOwot
ICAgIAotICAgIEJveDxVbmNoZWNrZWRMb2NrPiBtX2xvY2s7IC8vIEF1dG9tYXRpY1RocmVhZCB3
YW50cyB0aGlzIGluIGEgYm94IGZvciBzYWZldHkuCi0gICAgUmVmPEF1dG9tYXRpY1RocmVhZENv
bmRpdGlvbj4gbV93b3JrQXZhaWxhYmxlQ29uZGl0aW9uOwotICAgIFVuY2hlY2tlZENvbmRpdGlv
biBtX3dvcmtDb21wbGV0ZUNvbmRpdGlvbjsKLQotICAgIFdlYWtSYW5kb20gbV9yYW5kb207Ci0g
ICAgCi0gICAgVmVjdG9yPFBhcmFsbGVsSGVscGVyQ2xpZW50Kj4gbV9jbGllbnRzOwotICAgIFZl
Y3RvcjxSZWZQdHI8QXV0b21hdGljVGhyZWFkPj4gbV90aHJlYWRzOwotICAgIENTdHJpbmcgbV90
aHJlYWROYW1lOwotICAgIHVuc2lnbmVkIG1fbnVtVGhyZWFkcyB7IDAgfTsgLy8gVGhpcyBjYW4g
YmUgbGFyZ2VyIHRoYW4gbV90aHJlYWRzLnNpemUoKSBiZWNhdXNlIHdlIHN0YXJ0IHRocmVhZHMg
b25seSBvbmNlIHRoZXJlIGlzIHdvcmsuCi0gICAgYm9vbCBtX2lzRHlpbmcgeyBmYWxzZSB9Owot
fTsKLQogfSAvLyBuYW1lc3BhY2UgV1RGCiAKIHVzaW5nIFdURjo6UGFyYWxsZWxIZWxwZXJDbGll
bnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Xb3JrZXJQb29sLmNwcCBiL1NvdXJjZS9X
VEYvd3RmL1dvcmtlclBvb2wuY3BwCmluZGV4IDIxOWRiZjE1MWQ2NjM3YzY3YTNlNDc2ZmQxM2Uz
ZDFiODhiNDM1N2EuLjhhOWMxZmRhNzRhNzNiMmM1YWI1Y2RhMmQ4ZTQ2MDlhYmU4MGEzMGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1dvcmtlclBvb2wuY3BwCisrKyBiL1NvdXJjZS9XVEYv
d3RmL1dvcmtlclBvb2wuY3BwCkBAIC0zMiw3ICszMiw3IEBAIGNsYXNzIFdvcmtlclBvb2w6Oldv
cmtlciBmaW5hbCA6IHB1YmxpYyBBdXRvbWF0aWNUaHJlYWQgewogcHVibGljOgogICAgIGZyaWVu
ZCBjbGFzcyBXb3JrZXJQb29sOwogCi0gICAgV29ya2VyKGNvbnN0IEFic3RyYWN0TG9ja2VyJiBs
b2NrZXIsIFdvcmtlclBvb2wmIHBvb2wsIEJveDxVbmNoZWNrZWRMb2NrPiBsb2NrLCBSZWY8QXV0
b21hdGljVGhyZWFkQ29uZGl0aW9uPiYmIGNvbmRpdGlvbiwgU2Vjb25kcyB0aW1lb3V0KQorICAg
IFdvcmtlcihjb25zdCBBYnN0cmFjdExvY2tlciYgbG9ja2VyLCBXb3JrZXJQb29sJiBwb29sLCBC
b3g8TG9jaz4gbG9jaywgUmVmPEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbj4mJiBjb25kaXRpb24s
IFNlY29uZHMgdGltZW91dCkKICAgICAgICAgOiBBdXRvbWF0aWNUaHJlYWQobG9ja2VyLCBsb2Nr
LCBXVEZNb3ZlKGNvbmRpdGlvbiksIHRpbWVvdXQpCiAgICAgICAgICwgbV9wb29sKHBvb2wpCiAg
ICAgewpAQCAtODIsNyArODIsNyBAQCBwcml2YXRlOgogfTsKIAogV29ya2VyUG9vbDo6V29ya2Vy
UG9vbChBU0NJSUxpdGVyYWwgbmFtZSwgdW5zaWduZWQgbnVtYmVyT2ZXb3JrZXJzLCBTZWNvbmRz
IHRpbWVvdXQpCi0gICAgOiBtX2xvY2soQm94PFVuY2hlY2tlZExvY2s+OjpjcmVhdGUoKSkKKyAg
ICA6IG1fbG9jayhCb3g8TG9jaz46OmNyZWF0ZSgpKQogICAgICwgbV9jb25kaXRpb24oQXV0b21h
dGljVGhyZWFkQ29uZGl0aW9uOjpjcmVhdGUoKSkKICAgICAsIG1fdGltZW91dCh0aW1lb3V0KQog
ICAgICwgbV9uYW1lKG5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Xb3JrZXJQb29s
LmggYi9Tb3VyY2UvV1RGL3d0Zi9Xb3JrZXJQb29sLmgKaW5kZXggN2E0MDQyYjQ2YjE2ODgwMjNm
MWNlZjllNjQyYWIyYzQ4Yzg4OTNkOS4uNjIzNWU3MzFlZDc1YjgwMTI1MDk1MzU5MDY4YjA4ZDRj
MWRjZmVjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvV29ya2VyUG9vbC5oCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL1dvcmtlclBvb2wuaApAQCAtNTcsNyArNTcsNyBAQCBwcml2YXRlOgogCiAg
ICAgYm9vbCBzaG91bGRTbGVlcChjb25zdCBBYnN0cmFjdExvY2tlciYpOwogCi0gICAgQm94PFVu
Y2hlY2tlZExvY2s+IG1fbG9jazsKKyAgICBCb3g8TG9jaz4gbV9sb2NrOwogICAgIFJlZjxBdXRv
bWF0aWNUaHJlYWRDb25kaXRpb24+IG1fY29uZGl0aW9uOwogICAgIFNlY29uZHMgbV90aW1lb3V0
OwogICAgIE1vbm90b25pY1RpbWUgbV9sYXN0VGltZW91dFRpbWUgeyBNb25vdG9uaWNUaW1lOjpu
YW4oKSB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429727</attachid>
            <date>2021-05-25 20:13:00 -0700</date>
            <delta_ts>2021-05-26 08:11:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226255-20210525201259.patch</filename>
            <type>text/plain</type>
            <size>23236</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MDcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
ZDFmMDk1NDllNjEzNWY1MWEyMjc5MzMwN2YwMDFhZGE2OTczYmU2Li5iMzdiYjM3MzQwZTZhYjlk
ZTFkZjQxZjdmODQyMGRiZDNiMGUzNGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOSBAQAorMjAyMS0wNS0yNSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFN0b3AgdXNpbmcgVW5jaGVja2VkTG9jayBpbiBXVEY6OkF1dG9tYXRpY1RocmVh
ZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MjU1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU29tZSBj
b2RlIGluIEpTQyBoYWQgdG8gYmUgcG9ydGVkIGZyb20gVW5jaGVja2VkTG9jayB0byBMb2NrIGFz
IGEgcmVzdWx0IG9mCisgICAgICAgIFdURjo6QXV0b21hdGljVGhyZWFkIHVzaW5nIHRoZSBMb2Nr
IHR5cGUuCisKKyAgICAgICAgKiBkZmcvREZHV29ya2xpc3QuY3BwOgorICAgICAgICAoSlNDOjpE
Rkc6OldvcmtsaXN0OjpXb3JrbGlzdCk6CisgICAgICAgICogZGZnL0RGR1dvcmtsaXN0Lmg6Cisg
ICAgICAgICogaGVhcC9IZWFwLmNwcDoKKyAgICAgICAgKEpTQzo6SGVhcDo6SGVhcCk6CisgICAg
ICAgICogaGVhcC9IZWFwLmg6CisgICAgICAgICogaml0L0pJVFdvcmtsaXN0LmNwcDoKKyAgICAg
ICAgKEpTQzo6SklUV29ya2xpc3Q6OkpJVFdvcmtsaXN0KToKKyAgICAgICAgKiBqaXQvSklUV29y
a2xpc3QuaDoKKyAgICAgICAgKiBydW50aW1lL1ZNVHJhcHMuY3BwOgorICAgICAgICAoSlNDOjpW
TVRyYXBzOjpWTVRyYXBzKToKKyAgICAgICAgKiBydW50aW1lL1ZNVHJhcHMuaDoKKyAgICAgICAg
KiB3YXNtL1dhc21Xb3JrbGlzdC5jcHA6CisgICAgICAgIChKU0M6Oldhc206OldvcmtsaXN0OjpX
b3JrbGlzdCk6CisgICAgICAgICogd2FzbS9XYXNtV29ya2xpc3QuaDoKKwogMjAyMS0wNS0yNSAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBVbmNoZWNrZWRM
b2NrIGxlc3MgaW4gSmF2YVNjcmlwdENvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdl
TG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggYjVmMmZjYWYzZjA5N2ZkNjg5MDg1ZWFi
YjcyYTJmMWRhMWFkMzJmOC4uYTkzYjQ1ZGIxY2E1NjdjMGI2MmU2NTg3ZDhiNjc1MDhlMThjZGQx
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAyMS0wNS0yNSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgorCisgICAgICAgIFN0b3AgdXNpbmcgVW5jaGVja2VkTG9jayBpbiBXVEY6OkF1
dG9tYXRpY1RocmVhZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjI2MjU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgU3RvcCB1c2luZyBVbmNoZWNrZWRMb2NrIGluIFdURjo6QXV0b21hdGljVGhyZWFkIGFz
IGl0IGlzIGJlaW5nIHBoYXNlZCBvdXQgaW4gZmF2b3Igb2YKKyAgICAgICAgTG9jaywgd2hpY2gg
c3VwcG9ydHMgQ2xhbmcgdGhyZWFkIHNhZmV0eSBhbmFseXNpcy4KKworICAgICAgICAqIHd0Zi9B
dXRvbWF0aWNUaHJlYWQuY3BwOgorICAgICAgICAoV1RGOjpBdXRvbWF0aWNUaHJlYWRDb25kaXRp
b246OndhaXQpOgorICAgICAgICAoV1RGOjpBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246OndhaXRG
b3IpOgorICAgICAgICAoV1RGOjpBdXRvbWF0aWNUaHJlYWQ6OkF1dG9tYXRpY1RocmVhZCk6Cisg
ICAgICAgICogd3RmL0F1dG9tYXRpY1RocmVhZC5oOgorICAgICAgICAqIHd0Zi9QYXJhbGxlbEhl
bHBlclBvb2wuY3BwOgorICAgICAgICAoV1RGOjpQYXJhbGxlbEhlbHBlckNsaWVudDo6flBhcmFs
bGVsSGVscGVyQ2xpZW50KToKKyAgICAgICAgKFdURjo6UGFyYWxsZWxIZWxwZXJDbGllbnQ6OmZp
bmlzaCk6CisgICAgICAgIChXVEY6OlBhcmFsbGVsSGVscGVyQ2xpZW50OjpmaW5pc2hXaXRoTG9j
ayk6CisgICAgICAgIChXVEY6OlBhcmFsbGVsSGVscGVyUG9vbDo6UGFyYWxsZWxIZWxwZXJQb29s
KToKKyAgICAgICAgKiB3dGYvUGFyYWxsZWxIZWxwZXJQb29sLmg6CisgICAgICAgIChXVEY6OlBh
cmFsbGVsSGVscGVyUG9vbDo6bnVtYmVyT2ZUaHJlYWRzIGNvbnN0KToKKyAgICAgICAgKiB3dGYv
V29ya2VyUG9vbC5jcHA6CisgICAgICAgIChXVEY6OldvcmtlclBvb2w6OldvcmtlclBvb2wpOgor
ICAgICAgICAqIHd0Zi9Xb3JrZXJQb29sLmg6CisKIDIwMjEtMDUtMjUgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBVc2UgVW5jaGVja2VkTG9jayBsZXNzIGluIEph
dmFTY3JpcHRDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dv
cmtsaXN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCmlu
ZGV4IGQxNTdhZGY4NzZkYzg0NjgzYTg2YzA0NmVhMmJlZWNiYWI5OWE5MzcuLjRkMjI4Y2ZlODdh
ZDk4MTkzNmMwN2MwOWQ0MWI3Mjc1MTU1OTRhOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHV29ya2xpc3QuY3BwCkBAIC0zOSw3ICszOSw3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1l
c3BhY2UgREZHIHsKIAogY2xhc3MgV29ya2xpc3Q6OlRocmVhZEJvZHkgZmluYWwgOiBwdWJsaWMg
QXV0b21hdGljVGhyZWFkIHsKIHB1YmxpYzoKLSAgICBUaHJlYWRCb2R5KGNvbnN0IEFic3RyYWN0
TG9ja2VyJiBsb2NrZXIsIFdvcmtsaXN0JiB3b3JrbGlzdCwgVGhyZWFkRGF0YSYgZGF0YSwgQm94
PFVuY2hlY2tlZExvY2s+IGxvY2ssIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+JiYgY29u
ZGl0aW9uLCBpbnQgcmVsYXRpdmVQcmlvcml0eSkKKyAgICBUaHJlYWRCb2R5KGNvbnN0IEFic3Ry
YWN0TG9ja2VyJiBsb2NrZXIsIFdvcmtsaXN0JiB3b3JrbGlzdCwgVGhyZWFkRGF0YSYgZGF0YSwg
Qm94PExvY2s+IGxvY2ssIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+JiYgY29uZGl0aW9u
LCBpbnQgcmVsYXRpdmVQcmlvcml0eSkKICAgICAgICAgOiBBdXRvbWF0aWNUaHJlYWQobG9ja2Vy
LCBsb2NrLCBXVEZNb3ZlKGNvbmRpdGlvbiksIFRocmVhZFR5cGU6OkNvbXBpbGVyKQogICAgICAg
ICAsIG1fd29ya2xpc3Qod29ya2xpc3QpCiAgICAgICAgICwgbV9kYXRhKGRhdGEpCkBAIC0xODEs
NyArMTgxLDcgQEAgc3RhdGljIENTdHJpbmcgY3JlYXRlV29ya2xpc3ROYW1lKENTdHJpbmcmJiB0
aWVyTmFtZSkKIFdvcmtsaXN0OjpXb3JrbGlzdChDU3RyaW5nJiYgdGllck5hbWUpCiAgICAgOiBt
X3RocmVhZE5hbWUoY3JlYXRlV29ya2xpc3ROYW1lKFdURk1vdmUodGllck5hbWUpKSkKICAgICAs
IG1fcGxhbkVucXVldWVkKEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbjo6Y3JlYXRlKCkpCi0gICAg
LCBtX2xvY2soQm94PFVuY2hlY2tlZExvY2s+OjpjcmVhdGUoKSkKKyAgICAsIG1fbG9jayhCb3g8
TG9jaz46OmNyZWF0ZSgpKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1dvcmtsaXN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmts
aXN0LmgKaW5kZXggNTc2ZTAzZTQ3ZTZlZjUwM2M2ZDAxMTZlY2ZiZGMwYThjNmM3NWM4OC4uM2Uy
YmJhMmZmOGUxNWJhMWI5ZjJmNWVjNjIxYjMwMGI2ZjkxNGJhYSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHV29ya2xpc3QuaApAQCAtMTEwLDEwICsxMTAsMTAgQEAgcHJpdmF0ZToKICAg
ICAvLyBiZSBjb21wbGV0ZWQuCiAgICAgVmVjdG9yPFJlZlB0cjxQbGFuPiwgMTY+IG1fcmVhZHlQ
bGFuczsKICAgICBSZWY8QXV0b21hdGljVGhyZWFkQ29uZGl0aW9uPiBtX3BsYW5FbnF1ZXVlZDsK
LSAgICBVbmNoZWNrZWRDb25kaXRpb24gbV9wbGFuQ29tcGlsZWQ7CisgICAgQ29uZGl0aW9uIG1f
cGxhbkNvbXBpbGVkOwogCiAgICAgVW5jaGVja2VkTG9jayBtX3N1c3BlbnNpb25Mb2NrOwotICAg
IEJveDxVbmNoZWNrZWRMb2NrPiBtX2xvY2s7CisgICAgQm94PExvY2s+IG1fbG9jazsKIH07CiAK
IEpTX0VYUE9SVF9QUklWQVRFIHVuc2lnbmVkIHNldE51bWJlck9mREZHQ29tcGlsZXJUaHJlYWRz
KHVuc2lnbmVkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKaW5kZXggY2JhZGNmOWUz
MmNjOTkwOTc0YWU5YzU3NWMzNzY5YWIyZDhhMmVhZC4uNjQ1NTc4ZDI2MWJmNTFlMjMxMTAzM2Mz
ZTczYzQzYjY1YTM4NGNjYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
SGVhcC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKQEAgLTMw
Miw3ICszMDIsNyBAQCBIZWFwOjpIZWFwKFZNJiB2bSwgSGVhcFR5cGUgaGVhcFR5cGUpCiAgICAg
LCBtX3NoYXJlZENvbGxlY3Rvck1hcmtTdGFjayhtYWtlVW5pcXVlPE1hcmtTdGFja0FycmF5Pigp
KQogICAgICwgbV9zaGFyZWRNdXRhdG9yTWFya1N0YWNrKG1ha2VVbmlxdWU8TWFya1N0YWNrQXJy
YXk+KCkpCiAgICAgLCBtX2hlbHBlckNsaWVudCgmaGVhcEhlbHBlclBvb2woKSkKLSAgICAsIG1f
dGhyZWFkTG9jayhCb3g8VW5jaGVja2VkTG9jaz46OmNyZWF0ZSgpKQorICAgICwgbV90aHJlYWRM
b2NrKEJveDxMb2NrPjo6Y3JlYXRlKCkpCiAgICAgLCBtX3RocmVhZENvbmRpdGlvbihBdXRvbWF0
aWNUaHJlYWRDb25kaXRpb246OmNyZWF0ZSgpKQogewogICAgIG1fd29ybGRTdGF0ZS5zdG9yZSgw
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaAppbmRleCAwODJkMzExYWM2NjFiYjQwZDFiNjBm
MzUxZmQ3YzUwNmY5OWUwOTFlLi5hNWVlZmM2OWRiZDNjNmNjZDE2MWNkOTNkY2IxNTA3OTYyMTY2
NzgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCkBAIC03NDYsNyArNzQ2LDcgQEAgcHJp
dmF0ZToKIAogICAgIHVpbnQ2NF90IG1fbXV0YXRvckV4ZWN1dGlvblZlcnNpb24geyAwIH07CiAg
ICAgdWludDY0X3QgbV9waGFzZVZlcnNpb24geyAwIH07Ci0gICAgQm94PFVuY2hlY2tlZExvY2s+
IG1fdGhyZWFkTG9jazsKKyAgICBCb3g8TG9jaz4gbV90aHJlYWRMb2NrOwogICAgIFJlZjxBdXRv
bWF0aWNUaHJlYWRDb25kaXRpb24+IG1fdGhyZWFkQ29uZGl0aW9uOyAvLyBUaGUgbXV0YXRvciBt
dXN0IG5vdCB3YWl0IG9uIHRoaXMuIEl0IHdvdWxkIGNhdXNlIGEgZGVhZGxvY2suCiAgICAgUmVm
UHRyPEF1dG9tYXRpY1RocmVhZD4gbV90aHJlYWQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUV29ya2xpc3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRXb3JrbGlzdC5jcHAKaW5kZXggYTk2ODk3NGJkNmE5ODIzYjkwYWFkYzQ0YTQxNGE1Mzdh
OTAzY2Y3YS4uYTcwNTJlNzlmMGE3NDM2N2ZlM2ZkYzVhM2NmNmQ1MzhlNjkzMjAwZSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRXb3JrbGlzdC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRXb3JrbGlzdC5jcHAKQEAgLTE2NSw3ICsxNjUsNyBA
QCBwcml2YXRlOgogfTsKIAogSklUV29ya2xpc3Q6OkpJVFdvcmtsaXN0KCkKLSAgICA6IG1fbG9j
ayhCb3g8VW5jaGVja2VkTG9jaz46OmNyZWF0ZSgpKQorICAgIDogbV9sb2NrKEJveDxMb2NrPjo6
Y3JlYXRlKCkpCiAgICAgLCBtX2NvbmRpdGlvbihBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246OmNy
ZWF0ZSgpKQogewogICAgIExvY2tlciBsb2NrZXIgeyAqbV9sb2NrIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFdvcmtsaXN0LmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVFdvcmtsaXN0LmgKaW5kZXggYTcyYTgzODcwYTAwODJmY2QzNDQ5NTI5MGVh
NTBlYTE0MGQ4OWYyZi4uYjlmNzdjYTFiM2RkZWZhNjE0OGIxMzY5NDJkNTdhMDlkNjVlYTdhMyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRXb3JrbGlzdC5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUV29ya2xpc3QuaApAQCAtNzEsNyArNzEsNyBA
QCBwcml2YXRlOgogICAgIFBsYW5zIG1fcGxhbnM7CiAgICAgSGFzaFNldDxDb2RlQmxvY2sqPiBt
X3BsYW5uZWQ7CiAgICAgCi0gICAgQm94PFVuY2hlY2tlZExvY2s+IG1fbG9jazsKKyAgICBCb3g8
TG9jaz4gbV9sb2NrOwogICAgIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+IG1fY29uZGl0
aW9uOyAvLyBXZSB1c2UgT25lIFRydWUgQ29uZGl0aW9uIGZvciBldmVyeXRoaW5nIGJlY2F1c2Ug
dGhhdCdzIGVhc2llci4KICAgICBSZWZQdHI8QXV0b21hdGljVGhyZWFkPiBtX3RocmVhZDsKICAg
ICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNVHJhcHMuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1UcmFwcy5jcHAKaW5kZXggNTdkYjMx
OWNlY2ZiNzM3MTk3ZTI2ZDljZGQyZGI3YTU4YmIwOGM2Ny4uMGRjN2UzYjc3M2EzNGY0NTU1OWQx
OWVhODMwMjgyNTQ5Y2Y3Y2ZiNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvVk1UcmFwcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1U
cmFwcy5jcHAKQEAgLTQzNyw3ICs0MzcsNyBAQCB2b2lkIFZNVHJhcHM6OnVuZG9EZWZlclRlcm1p
bmF0aW9uU2xvdyhEZWZlckFjdGlvbiBkZWZlckFjdGlvbikKIH0KIAogVk1UcmFwczo6Vk1UcmFw
cygpCi0gICAgOiBtX2xvY2soQm94PFVuY2hlY2tlZExvY2s+OjpjcmVhdGUoKSkKKyAgICA6IG1f
bG9jayhCb3g8TG9jaz46OmNyZWF0ZSgpKQogICAgICwgbV9jb25kaXRpb24oQXV0b21hdGljVGhy
ZWFkQ29uZGl0aW9uOjpjcmVhdGUoKSkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1ZNVHJhcHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1ZNVHJhcHMuaAppbmRleCA1ZDE1YzkyZjcwNDE3NTFkODA0ZTRjNTcyYTU1MzAxMDdiZmU0MmRj
Li5kOTRjODA2YjFiZThkNzQzNGUwM2UzMmNlMDBiYjI0MzFkODRiYWU3IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTVRyYXBzLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvVk1UcmFwcy5oCkBAIC0yNDcsNyArMjQ3LDcgQEAgcHJpdmF0ZToK
IAogICAgIHN0YXRpYyBjb25zdGV4cHIgQml0RmllbGQgTmVlZEV4Y2VwdGlvbkhhbmRsaW5nTWFz
ayA9IH4oMSA8PCBOZWVkRXhjZXB0aW9uSGFuZGxpbmcpOwogCi0gICAgQm94PFVuY2hlY2tlZExv
Y2s+IG1fbG9jazsKKyAgICBCb3g8TG9jaz4gbV9sb2NrOwogICAgIFJlZjxBdXRvbWF0aWNUaHJl
YWRDb25kaXRpb24+IG1fY29uZGl0aW9uOwogICAgIEF0b21pYzxCaXRGaWVsZD4gbV90cmFwQml0
cyB7IDAgfTsKICAgICBib29sIG1fbmVlZFRvSW52YWxpZGF0ZWRDb2RlQmxvY2tzIHsgZmFsc2Ug
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Xb3JrbGlzdC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtV29ya2xpc3QuY3BwCmluZGV4IDM4
OThlY2FiNGMwODg3ZTI1YTBhMzQ4MWI0MTFiOGY2N2MxZWJjMjkuLjViYWQwZDkwYTU2MmUyNWRk
ZTgxN2I1ODJjMDYwNjY1NmM5MDZlYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL1dhc21Xb3JrbGlzdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbVdvcmtsaXN0LmNwcApAQCAtMTI4LDcgKzEyOCw3IEBAIHByaXZhdGU6CiAgICAgfQogCiBw
dWJsaWM6Ci0gICAgVW5jaGVja2VkQ29uZGl0aW9uIHN5bmNocm9uaXplOworICAgIENvbmRpdGlv
biBzeW5jaHJvbml6ZTsKICAgICBXb3JrbGlzdCYgd29ya2xpc3Q7CiAgICAgLy8gV2UgY2FuIG9u
bHkgbW9kaWZ5IGVsZW1lbnQgd2hlbiBob2xkaW5nIHRoZSBsb2NrLiBBIHN5bmNocm9ub3VzIGNv
bXBpbGUgbWlnaHQgbG9vayBhdCBlYWNoIHRocmVhZCdzIHRhc2tzIGluIG9yZGVyIHRvIGJvb3N0
IHRoZSBwcmlvcml0eS4KICAgICBRdWV1ZUVsZW1lbnQgZWxlbWVudDsKQEAgLTIxMyw3ICsyMTMs
NyBAQCB2b2lkIFdvcmtsaXN0OjpzdG9wQWxsUGxhbnNGb3JDb250ZXh0KENvbnRleHQmIGNvbnRl
eHQpCiB9CiAKIFdvcmtsaXN0OjpXb3JrbGlzdCgpCi0gICAgOiBtX2xvY2soQm94PFVuY2hlY2tl
ZExvY2s+OjpjcmVhdGUoKSkKKyAgICA6IG1fbG9jayhCb3g8TG9jaz46OmNyZWF0ZSgpKQogICAg
ICwgbV9wbGFuRW5xdWV1ZWQoQXV0b21hdGljVGhyZWFkQ29uZGl0aW9uOjpjcmVhdGUoKSkKIHsK
ICAgICB1bnNpZ25lZCBudW1iZXJPZkNvbXBpbGF0aW9uVGhyZWFkcyA9IE9wdGlvbnM6OnVzZUNv
bmN1cnJlbnRKSVQoKSA/IGtlcm5UQ1NNQXdhcmVOdW1iZXJPZlByb2Nlc3NvckNvcmVzKCkgOiAx
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVdvcmtsaXN0Lmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtV29ya2xpc3QuaAppbmRleCA0NWE2ZmJi
NmNmOWE4NTNjMjgxZmRiYmFjZDU2ZmJlZGQxZmE1OWNmLi41NmQ3OWEwZTk4OWE2MDJmMjEzM2Qw
MzA5MGZkYmNjNjM3Yzk1NjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtV29ya2xpc3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtV29y
a2xpc3QuaApAQCAtODQsNyArODQsNyBAQCBwcml2YXRlOgogICAgICAgICByZXR1cm4gbGVmdC5w
cmlvcml0eSA+IHJpZ2h0LnByaW9yaXR5OwogICAgIH0KIAotICAgIEJveDxVbmNoZWNrZWRMb2Nr
PiBtX2xvY2s7CisgICAgQm94PExvY2s+IG1fbG9jazsKICAgICBSZWY8QXV0b21hdGljVGhyZWFk
Q29uZGl0aW9uPiBtX3BsYW5FbnF1ZXVlZDsKICAgICAvLyBUZWNobmljYWxseSwgdGhpcyBjb3Vs
ZCBvdmVyZmxvdyBidXQgdGhhdCdzIHVubGlrZWx5LiBFdmVuIGlmIGl0IGRpZCwgd2Ugd2lsbCBq
dXN0IGNvbXBpbGUgdGhpbmdzIG9mIHRoZSBzYW1lCiAgICAgLy8gUHJpb3JpdHkgaXQgdGhlIHdy
b25nIG9yZGVyLCB3aGljaCBpc24ndCB3cm9uZywganVzdCBzdWJvcHRpbWFsLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvQXV0b21hdGljVGhyZWFkLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0F1
dG9tYXRpY1RocmVhZC5jcHAKaW5kZXggM2M1YmU1MTNjMjYzY2E4YjRkYTZiN2MyNmM2ZjgzNzM5
ZGEzMWUwYy4uZjRlYTc4ZDEzZTFjZGRiNjE5YjgyMjg2OGQzM2M3MjdjOWYyZjk4YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvQXV0b21hdGljVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9BdXRvbWF0aWNUaHJlYWQuY3BwCkBAIC03NywxMiArNzcsMTIgQEAgdm9pZCBBdXRvbWF0
aWNUaHJlYWRDb25kaXRpb246Om5vdGlmeUFsbChjb25zdCBBYnN0cmFjdExvY2tlciYgbG9ja2Vy
KQogICAgIH0KIH0KIAotdm9pZCBBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246OndhaXQoVW5jaGVj
a2VkTG9jayYgbG9jaykKK3ZvaWQgQXV0b21hdGljVGhyZWFkQ29uZGl0aW9uOjp3YWl0KExvY2sm
IGxvY2spCiB7CiAgICAgbV9jb25kaXRpb24ud2FpdChsb2NrKTsKIH0KIAotYm9vbCBBdXRvbWF0
aWNUaHJlYWRDb25kaXRpb246OndhaXRGb3IoVW5jaGVja2VkTG9jayYgbG9jaywgU2Vjb25kcyB0
aW1lKQorYm9vbCBBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246OndhaXRGb3IoTG9jayYgbG9jaywg
U2Vjb25kcyB0aW1lKQogewogICAgIHJldHVybiBtX2NvbmRpdGlvbi53YWl0Rm9yKGxvY2ssIHRp
bWUpOwogfQpAQCAtMTA0LDEyICsxMDQsMTIgQEAgYm9vbCBBdXRvbWF0aWNUaHJlYWRDb25kaXRp
b246OmNvbnRhaW5zKGNvbnN0IEFic3RyYWN0TG9ja2VyJiwgQXV0b21hdGljVGhyZWFkKgogICAg
IHJldHVybiBtX3RocmVhZHMuY29udGFpbnModGhyZWFkKTsKIH0KIAotQXV0b21hdGljVGhyZWFk
OjpBdXRvbWF0aWNUaHJlYWQoY29uc3QgQWJzdHJhY3RMb2NrZXImIGxvY2tlciwgQm94PFVuY2hl
Y2tlZExvY2s+IGxvY2ssIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+JiYgY29uZGl0aW9u
LCBTZWNvbmRzIHRpbWVvdXQpCitBdXRvbWF0aWNUaHJlYWQ6OkF1dG9tYXRpY1RocmVhZChjb25z
dCBBYnN0cmFjdExvY2tlciYgbG9ja2VyLCBCb3g8TG9jaz4gbG9jaywgUmVmPEF1dG9tYXRpY1Ro
cmVhZENvbmRpdGlvbj4mJiBjb25kaXRpb24sIFNlY29uZHMgdGltZW91dCkKICAgICA6IEF1dG9t
YXRpY1RocmVhZChsb2NrZXIsIGxvY2ssIFdURk1vdmUoY29uZGl0aW9uKSwgVGhyZWFkVHlwZTo6
VW5rbm93biwgdGltZW91dCkKIHsKIH0KIAotQXV0b21hdGljVGhyZWFkOjpBdXRvbWF0aWNUaHJl
YWQoY29uc3QgQWJzdHJhY3RMb2NrZXImIGxvY2tlciwgQm94PFVuY2hlY2tlZExvY2s+IGxvY2ss
IFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+JiYgY29uZGl0aW9uLCBUaHJlYWRUeXBlIHR5
cGUsIFNlY29uZHMgdGltZW91dCkKK0F1dG9tYXRpY1RocmVhZDo6QXV0b21hdGljVGhyZWFkKGNv
bnN0IEFic3RyYWN0TG9ja2VyJiBsb2NrZXIsIEJveDxMb2NrPiBsb2NrLCBSZWY8QXV0b21hdGlj
VGhyZWFkQ29uZGl0aW9uPiYmIGNvbmRpdGlvbiwgVGhyZWFkVHlwZSB0eXBlLCBTZWNvbmRzIHRp
bWVvdXQpCiAgICAgOiBtX2xvY2sobG9jaykKICAgICAsIG1fY29uZGl0aW9uKFdURk1vdmUoY29u
ZGl0aW9uKSkKICAgICAsIG1fdGltZW91dCh0aW1lb3V0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvQXV0b21hdGljVGhyZWFkLmggYi9Tb3VyY2UvV1RGL3d0Zi9BdXRvbWF0aWNUaHJlYWQu
aAppbmRleCAwOWZjYWZlZjIzOTU5MWIyZTEyY2RmMDJmZGYwMDZjY2RkNDEyYTZiLi4yZThmZTYw
YjdmZjQ2MTdhYjdiZjY4ZjBlZmQ1ZjI1OGFiNjA4Y2M1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L3d0Zi9BdXRvbWF0aWNUaHJlYWQuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9BdXRvbWF0aWNUaHJl
YWQuaApAQCAtODEsOCArODEsOCBAQCBwdWJsaWM6CiAgICAgLy8gT25lIGtub3duLWdvb2QgY2Fz
ZSBmb3Igb25lLXRydWUtY29uZGl0aW9uIGlzIHdoZW4gdGhlIGNvbW11bmljYXRpb24gaW52b2x2
ZXMganVzdCB0d28KICAgICAvLyB0aHJlYWRzLiBJbiBzdWNoIGNhc2VzLCB0aGUgdGhyZWFkIGRv
aW5nIHRoZSBub3RpZnlBbGwoKSBjYW4gd2FrZSB1cCBhdCBtb3N0IG9uZSB0aHJlYWQgLQogICAg
IC8vIGl0cyBwYXJ0bmVyLgotICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHdhaXQoVW5jaGVj
a2VkTG9jayYpOwotICAgIFdURl9FWFBPUlRfUFJJVkFURSBib29sIHdhaXRGb3IoVW5jaGVja2Vk
TG9jayYsIFNlY29uZHMpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHdhaXQoTG9jayYg
bG9jaykgV1RGX1JFUVVJUkVTX0xPQ0sobG9jayk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIGJv
b2wgd2FpdEZvcihMb2NrJiBsb2NrLCBTZWNvbmRzKSBXVEZfUkVRVUlSRVNfTE9DSyhsb2NrKTsK
ICAgICAKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIEF1dG9tYXRpY1RocmVhZDsKQEAgLTkz
LDcgKzkzLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlbW92ZShjb25zdCBBYnN0cmFjdExvY2tl
ciYsIEF1dG9tYXRpY1RocmVhZCopOwogICAgIGJvb2wgY29udGFpbnMoY29uc3QgQWJzdHJhY3RM
b2NrZXImLCBBdXRvbWF0aWNUaHJlYWQqKTsKICAgICAKLSAgICBVbmNoZWNrZWRDb25kaXRpb24g
bV9jb25kaXRpb247CisgICAgQ29uZGl0aW9uIG1fY29uZGl0aW9uOwogICAgIFZlY3RvcjxBdXRv
bWF0aWNUaHJlYWQqPiBtX3RocmVhZHM7CiB9OwogCkBAIC0xMzEsOSArMTMxLDkgQEAgcHVibGlj
OgogcHJvdGVjdGVkOgogICAgIC8vIFRoaXMgbG9naWNhbGx5IGNyZWF0ZXMgdGhlIHRocmVhZCwg
YnV0IGluIHJlYWxpdHkgdGhlIHRocmVhZCB3b24ndCBiZSBjcmVhdGVkIHVudGlsIHNvbWVvbmUK
ICAgICAvLyBjYWxscyBBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246Om5vdGlmeU9uZSgpIG9yIG5v
dGlmeUFsbCgpLgotICAgIEF1dG9tYXRpY1RocmVhZChjb25zdCBBYnN0cmFjdExvY2tlciYsIEJv
eDxVbmNoZWNrZWRMb2NrPiwgUmVmPEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbj4mJiwgU2Vjb25k
cyB0aW1lb3V0ID0gMTBfcyk7CisgICAgQXV0b21hdGljVGhyZWFkKGNvbnN0IEFic3RyYWN0TG9j
a2VyJiwgQm94PExvY2s+LCBSZWY8QXV0b21hdGljVGhyZWFkQ29uZGl0aW9uPiYmLCBTZWNvbmRz
IHRpbWVvdXQgPSAxMF9zKTsKIAotICAgIEF1dG9tYXRpY1RocmVhZChjb25zdCBBYnN0cmFjdExv
Y2tlciYsIEJveDxVbmNoZWNrZWRMb2NrPiwgUmVmPEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbj4m
JiwgVGhyZWFkVHlwZSwgU2Vjb25kcyB0aW1lb3V0ID0gMTBfcyk7CisgICAgQXV0b21hdGljVGhy
ZWFkKGNvbnN0IEFic3RyYWN0TG9ja2VyJiwgQm94PExvY2s+LCBSZWY8QXV0b21hdGljVGhyZWFk
Q29uZGl0aW9uPiYmLCBUaHJlYWRUeXBlLCBTZWNvbmRzIHRpbWVvdXQgPSAxMF9zKTsKICAgICAK
ICAgICAvLyBUbyB1bmRlcnN0YW5kIFBvbGxSZXN1bHQgYW5kIFdvcmtSZXN1bHQsIGltYWdpbmUg
dGhhdCBwb2xsKCkgYW5kIHdvcmsoKSBhcmUgYmVpbmcgY2FsbGVkIGxpa2UKICAgICAvLyBzbzoK
QEAgLTE4MywxNSArMTgzLDE1IEBAIHByaXZhdGU6CiAgICAgCiAgICAgdm9pZCBzdGFydChjb25z
dCBBYnN0cmFjdExvY2tlciYpOwogICAgIAotICAgIEJveDxVbmNoZWNrZWRMb2NrPiBtX2xvY2s7
CisgICAgQm94PExvY2s+IG1fbG9jazsKICAgICBSZWY8QXV0b21hdGljVGhyZWFkQ29uZGl0aW9u
PiBtX2NvbmRpdGlvbjsKICAgICBTZWNvbmRzIG1fdGltZW91dDsKICAgICBUaHJlYWRUeXBlIG1f
dGhyZWFkVHlwZSB7IFRocmVhZFR5cGU6OlVua25vd24gfTsKICAgICBib29sIG1faXNSdW5uaW5n
IHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9pc1dhaXRpbmcgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9o
YXNVbmRlcmx5aW5nVGhyZWFkIHsgZmFsc2UgfTsKLSAgICBVbmNoZWNrZWRDb25kaXRpb24gbV93
YWl0Q29uZGl0aW9uOwotICAgIFVuY2hlY2tlZENvbmRpdGlvbiBtX2lzUnVubmluZ0NvbmRpdGlv
bjsKKyAgICBDb25kaXRpb24gbV93YWl0Q29uZGl0aW9uOworICAgIENvbmRpdGlvbiBtX2lzUnVu
bmluZ0NvbmRpdGlvbjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1BhcmFs
bGVsSGVscGVyUG9vbC5jcHAKaW5kZXggYzczNDY4NTU5MzE0ZDA5NzAwYmRkOGE1ZDBhNTUyMDFl
MGQ1MGM5Yy4uNjE3MzNiNzY3ZDU5N2I5MTMwMjA1Zjk5MjFmNWIyYmEzNWUzYjM3OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmNwcAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9QYXJhbGxlbEhlbHBlclBvb2wuY3BwCkBAIC00MSw3ICs0MSw3IEBAIFBhcmFsbGVs
SGVscGVyQ2xpZW50OjpQYXJhbGxlbEhlbHBlckNsaWVudChSZWZQdHI8UGFyYWxsZWxIZWxwZXJQ
b29sPiYmIHBvb2wpCiBQYXJhbGxlbEhlbHBlckNsaWVudDo6flBhcmFsbGVsSGVscGVyQ2xpZW50
KCkKIHsKICAgICBMb2NrZXIgbG9ja2VyIHsgKm1fcG9vbC0+bV9sb2NrIH07Ci0gICAgZmluaXNo
KGxvY2tlcik7CisgICAgZmluaXNoV2l0aExvY2soKTsKIAogICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgbV9wb29sLT5tX2NsaWVudHMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgaWYgKG1fcG9v
bC0+bV9jbGllbnRzW2ldID09IHRoaXMpIHsKQEAgLTYzLDcgKzYzLDcgQEAgdm9pZCBQYXJhbGxl
bEhlbHBlckNsaWVudDo6c2V0VGFzayhSZWZQdHI8U2hhcmVkVGFzazx2b2lkICgpPj4mJiB0YXNr
KQogdm9pZCBQYXJhbGxlbEhlbHBlckNsaWVudDo6ZmluaXNoKCkKIHsKICAgICBMb2NrZXIgbG9j
a2VyIHsgKm1fcG9vbC0+bV9sb2NrIH07Ci0gICAgZmluaXNoKGxvY2tlcik7CisgICAgZmluaXNo
V2l0aExvY2soKTsKIH0KIAogdm9pZCBQYXJhbGxlbEhlbHBlckNsaWVudDo6ZG9Tb21lSGVscGlu
ZygpCkBAIC03MSw3ICs3MSw3IEBAIHZvaWQgUGFyYWxsZWxIZWxwZXJDbGllbnQ6OmRvU29tZUhl
bHBpbmcoKQogICAgIFJlZlB0cjxTaGFyZWRUYXNrPHZvaWQgKCk+PiB0YXNrOwogICAgIHsKICAg
ICAgICAgTG9ja2VyIGxvY2tlciB7ICptX3Bvb2wtPm1fbG9jayB9OwotICAgICAgICB0YXNrID0g
Y2xhaW1UYXNrKGxvY2tlcik7CisgICAgICAgIHRhc2sgPSBjbGFpbVRhc2soKTsKICAgICAgICAg
aWYgKCF0YXNrKQogICAgICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTg2LDE0ICs4NiwxNCBA
QCB2b2lkIFBhcmFsbGVsSGVscGVyQ2xpZW50OjpydW5UYXNrSW5QYXJhbGxlbChSZWZQdHI8U2hh
cmVkVGFzazx2b2lkICgpPj4mJiB0YXNrKQogICAgIGZpbmlzaCgpOwogfQogCi12b2lkIFBhcmFs
bGVsSGVscGVyQ2xpZW50OjpmaW5pc2goY29uc3QgQWJzdHJhY3RMb2NrZXImKQordm9pZCBQYXJh
bGxlbEhlbHBlckNsaWVudDo6ZmluaXNoV2l0aExvY2soKQogewogICAgIG1fdGFzayA9IG51bGxw
dHI7CiAgICAgd2hpbGUgKG1fbnVtQWN0aXZlKQogICAgICAgICBtX3Bvb2wtPm1fd29ya0NvbXBs
ZXRlQ29uZGl0aW9uLndhaXQoKm1fcG9vbC0+bV9sb2NrKTsKIH0KIAotUmVmUHRyPFNoYXJlZFRh
c2s8dm9pZCAoKT4+IFBhcmFsbGVsSGVscGVyQ2xpZW50OjpjbGFpbVRhc2soY29uc3QgQWJzdHJh
Y3RMb2NrZXImKQorUmVmUHRyPFNoYXJlZFRhc2s8dm9pZCAoKT4+IFBhcmFsbGVsSGVscGVyQ2xp
ZW50OjpjbGFpbVRhc2soKQogewogICAgIGlmICghbV90YXNrKQogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKQEAgLTEyMiw3ICsxMjIsNyBAQCB2b2lkIFBhcmFsbGVsSGVscGVyQ2xpZW50OjpydW5U
YXNrKGNvbnN0IFJlZlB0cjxTaGFyZWRUYXNrPHZvaWQgKCk+PiYgdGFzaykKIH0KIAogUGFyYWxs
ZWxIZWxwZXJQb29sOjpQYXJhbGxlbEhlbHBlclBvb2woQ1N0cmluZyYmIHRocmVhZE5hbWUpCi0g
ICAgOiBtX2xvY2soQm94PFVuY2hlY2tlZExvY2s+OjpjcmVhdGUoKSkKKyAgICA6IG1fbG9jayhC
b3g8TG9jaz46OmNyZWF0ZSgpKQogICAgICwgbV93b3JrQXZhaWxhYmxlQ29uZGl0aW9uKEF1dG9t
YXRpY1RocmVhZENvbmRpdGlvbjo6Y3JlYXRlKCkpCiAgICAgLCBtX3RocmVhZE5hbWUoV1RGTW92
ZSh0aHJlYWROYW1lKSkKIHsKQEAgLTE0OCw3ICsxNDgsNyBAQCB2b2lkIFBhcmFsbGVsSGVscGVy
UG9vbDo6ZW5zdXJlVGhyZWFkcyh1bnNpZ25lZCBudW1UaHJlYWRzKQogICAgIGlmIChudW1UaHJl
YWRzIDwgbV9udW1UaHJlYWRzKQogICAgICAgICByZXR1cm47CiAgICAgbV9udW1UaHJlYWRzID0g
bnVtVGhyZWFkczsKLSAgICBpZiAoZ2V0Q2xpZW50V2l0aFRhc2sobG9ja2VyKSkKKyAgICBpZiAo
Z2V0Q2xpZW50V2l0aFRhc2soKSkKICAgICAgICAgZGlkTWFrZVdvcmtBdmFpbGFibGUobG9ja2Vy
KTsKIH0KIApAQCAtMTU4LDEwICsxNTgsMTEgQEAgdm9pZCBQYXJhbGxlbEhlbHBlclBvb2w6OmRv
U29tZUhlbHBpbmcoKQogICAgIFJlZlB0cjxTaGFyZWRUYXNrPHZvaWQgKCk+PiB0YXNrOwogICAg
IHsKICAgICAgICAgTG9ja2VyIGxvY2tlciB7ICptX2xvY2sgfTsKLSAgICAgICAgY2xpZW50ID0g
Z2V0Q2xpZW50V2l0aFRhc2sobG9ja2VyKTsKKyAgICAgICAgY2xpZW50ID0gZ2V0Q2xpZW50V2l0
aFRhc2soKTsKICAgICAgICAgaWYgKCFjbGllbnQpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgIHRhc2sgPSBjbGllbnQtPmNsYWltVGFzayhsb2NrZXIpOworICAgICAgICBhc3NlcnRJc0hl
bGQoKmNsaWVudC0+bV9wb29sLT5tX2xvY2spOworICAgICAgICB0YXNrID0gY2xpZW50LT5jbGFp
bVRhc2soKTsKICAgICB9CiAKICAgICBjbGllbnQtPnJ1blRhc2sodGFzayk7CkBAIC0xODEsMTMg
KzE4MiwxNSBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIFBvbGxSZXN1bHQgcG9s
bChjb25zdCBBYnN0cmFjdExvY2tlciYgbG9ja2VyKSBmaW5hbAorICAgIFBvbGxSZXN1bHQgcG9s
bChjb25zdCBBYnN0cmFjdExvY2tlciYpIGZpbmFsCiAgICAgewogICAgICAgICBpZiAobV9wb29s
Lm1faXNEeWluZykKICAgICAgICAgICAgIHJldHVybiBQb2xsUmVzdWx0OjpTdG9wOwotICAgICAg
ICBtX2NsaWVudCA9IG1fcG9vbC5nZXRDbGllbnRXaXRoVGFzayhsb2NrZXIpOworICAgICAgICBh
c3NlcnRJc0hlbGQoKm1fcG9vbC5tX2xvY2spOworICAgICAgICBtX2NsaWVudCA9IG1fcG9vbC5n
ZXRDbGllbnRXaXRoVGFzaygpOwogICAgICAgICBpZiAobV9jbGllbnQpIHsKLSAgICAgICAgICAg
IG1fdGFzayA9IG1fY2xpZW50LT5jbGFpbVRhc2sobG9ja2VyKTsKKyAgICAgICAgICAgIGFzc2Vy
dElzSGVsZCgqbV9jbGllbnQtPm1fcG9vbC0+bV9sb2NrKTsKKyAgICAgICAgICAgIG1fdGFzayA9
IG1fY2xpZW50LT5jbGFpbVRhc2soKTsKICAgICAgICAgICAgIHJldHVybiBQb2xsUmVzdWx0OjpX
b3JrOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBQb2xsUmVzdWx0OjpXYWl0OwpAQCAtMjEz
LDEyICsyMTYsMTIgQEAgdm9pZCBQYXJhbGxlbEhlbHBlclBvb2w6OmRpZE1ha2VXb3JrQXZhaWxh
YmxlKGNvbnN0IEFic3RyYWN0TG9ja2VyJiBsb2NrZXIpCiAgICAgbV93b3JrQXZhaWxhYmxlQ29u
ZGl0aW9uLT5ub3RpZnlBbGwobG9ja2VyKTsKIH0KIAotYm9vbCBQYXJhbGxlbEhlbHBlclBvb2w6
Omhhc0NsaWVudFdpdGhUYXNrKGNvbnN0IEFic3RyYWN0TG9ja2VyJiBsb2NrZXIpCitib29sIFBh
cmFsbGVsSGVscGVyUG9vbDo6aGFzQ2xpZW50V2l0aFRhc2soKQogewotICAgIHJldHVybiAhIWdl
dENsaWVudFdpdGhUYXNrKGxvY2tlcik7CisgICAgcmV0dXJuICEhZ2V0Q2xpZW50V2l0aFRhc2so
KTsKIH0KIAotUGFyYWxsZWxIZWxwZXJDbGllbnQqIFBhcmFsbGVsSGVscGVyUG9vbDo6Z2V0Q2xp
ZW50V2l0aFRhc2soY29uc3QgQWJzdHJhY3RMb2NrZXImKQorUGFyYWxsZWxIZWxwZXJDbGllbnQq
IFBhcmFsbGVsSGVscGVyUG9vbDo6Z2V0Q2xpZW50V2l0aFRhc2soKQogewogICAgIC8vIFdlIGxv
YWQtYmFsYW5jZSBieSBiZWluZyByYW5kb20uCiAgICAgdW5zaWduZWQgc3RhcnRJbmRleCA9IG1f
cmFuZG9tLmdldFVpbnQzMihtX2NsaWVudHMuc2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5oIGIvU291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxw
ZXJQb29sLmgKaW5kZXggNjY0ZmFkZTg1Mzk5M2FiNGIwNTk1NDg3MjIxNGYzODdjOWE2ZDA1My4u
NDdhNGYzMTZmMWU1NTZmZjYxMmU4ZDRjZDZjYzliNTY2YjZhMGIyMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmgKKysrIGIvU291cmNlL1dURi93dGYvUGFy
YWxsZWxIZWxwZXJQb29sLmgKQEAgLTYyLDcgKzYyLDQxIEBAIGNsYXNzIEF1dG9tYXRpY1RocmVh
ZENvbmRpdGlvbjsKIC8vIGEgdGFzayBhdCByYW5kb20uIFNvIGxvbmcgYXMgYW55IGNsaWVudCBo
YXMgYSB0YXNrLCBhbGwgdGhyZWFkcyBpbiB0aGUgcG9vbCB3aWxsIGNvbnRpbnVlCiAvLyBydW5u
aW5nIHRoZSBhdmFpbGFibGUgdGFza3MuIFRocmVhZHMgZ28gaWRsZSB3aGVuIG5vIGNsaWVudCBo
YXMgdGFza3MgdG8gcnVuLgogCi1jbGFzcyBQYXJhbGxlbEhlbHBlclBvb2w7CitjbGFzcyBQYXJh
bGxlbEhlbHBlckNsaWVudDsKKworY2xhc3MgUGFyYWxsZWxIZWxwZXJQb29sIDogcHVibGljIFRo
cmVhZFNhZmVSZWZDb3VudGVkPFBhcmFsbGVsSGVscGVyUG9vbD4geworcHVibGljOgorICAgIFdU
Rl9FWFBPUlRfUFJJVkFURSBQYXJhbGxlbEhlbHBlclBvb2woQ1N0cmluZyYmIHRocmVhZE5hbWUp
OworICAgIFdURl9FWFBPUlRfUFJJVkFURSB+UGFyYWxsZWxIZWxwZXJQb29sKCk7CisKKyAgICBX
VEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBlbnN1cmVUaHJlYWRzKHVuc2lnbmVkIG51bVRocmVhZHMp
OworCisgICAgdW5zaWduZWQgbnVtYmVyT2ZUaHJlYWRzKCkgY29uc3QgeyByZXR1cm4gbV9udW1U
aHJlYWRzOyB9CisgICAgCisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgZG9Tb21lSGVscGlu
ZygpOworCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBQYXJhbGxlbEhlbHBlckNsaWVudDsK
KyAgICBjbGFzcyBUaHJlYWQ7CisgICAgZnJpZW5kIGNsYXNzIFRocmVhZDsKKworICAgIHZvaWQg
ZGlkTWFrZVdvcmtBdmFpbGFibGUoY29uc3QgQWJzdHJhY3RMb2NrZXImKSBXVEZfUkVRVUlSRVNf
TE9DSyhtX2xvY2spOworCisgICAgYm9vbCBoYXNDbGllbnRXaXRoVGFzaygpIFdURl9SRVFVSVJF
U19MT0NLKG1fbG9jayk7CisgICAgUGFyYWxsZWxIZWxwZXJDbGllbnQqIGdldENsaWVudFdpdGhU
YXNrKCkgV1RGX1JFUVVJUkVTX0xPQ0sobV9sb2NrKTsKKyAgICAKKyAgICBCb3g8TG9jaz4gbV9s
b2NrOyAvLyBBdXRvbWF0aWNUaHJlYWQgd2FudHMgdGhpcyBpbiBhIGJveCBmb3Igc2FmZXR5Lgor
ICAgIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+IG1fd29ya0F2YWlsYWJsZUNvbmRpdGlv
bjsKKyAgICBDb25kaXRpb24gbV93b3JrQ29tcGxldGVDb25kaXRpb247CisKKyAgICBXZWFrUmFu
ZG9tIG1fcmFuZG9tOworICAgIAorICAgIFZlY3RvcjxQYXJhbGxlbEhlbHBlckNsaWVudCo+IG1f
Y2xpZW50cyBXVEZfR1VBUkRFRF9CWV9MT0NLKCptX2xvY2spOworICAgIFZlY3RvcjxSZWZQdHI8
QXV0b21hdGljVGhyZWFkPj4gbV90aHJlYWRzOworICAgIENTdHJpbmcgbV90aHJlYWROYW1lOwor
ICAgIHVuc2lnbmVkIG1fbnVtVGhyZWFkcyB7IDAgfTsgLy8gVGhpcyBjYW4gYmUgbGFyZ2VyIHRo
YW4gbV90aHJlYWRzLnNpemUoKSBiZWNhdXNlIHdlIHN0YXJ0IHRocmVhZHMgb25seSBvbmNlIHRo
ZXJlIGlzIHdvcmsuCisgICAgYm9vbCBtX2lzRHlpbmcgeyBmYWxzZSB9OworfTsKIAogLy8gQSBj
bGllbnQgaXMgYSBwbGFjZWhvbGRlciBmb3IgYSBwYXJhbGxlbCBhbGdvcml0aG0uIEEgcGFyYWxs
ZWwgYWxnb3JpdGhtIHdpbGwgaGF2ZSBhIHRhc2sgdGhhdAogLy8gY2FuIGJlIHJ1biBjb25jdXJy
ZW50bHkuIFdoZW5ldmVyIGEgY2xpZW50IGhhcyBhIHRhc2sgc2V0ICh5b3UgaGF2ZSBjYWxsZWQg
c2V0VGFzaygpIG9yCkBAIC0xNDEsNyArMTc1LDcgQEAgcHVibGljOgogICAgIHsKICAgICAgICAg
c2V0VGFzayhjcmVhdGVTaGFyZWRUYXNrPHZvaWQgKCk+KGZ1bmN0b3IpKTsKICAgICB9Ci0gICAg
CisKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBmaW5pc2goKTsKIAogICAgIFdURl9FWFBP
UlRfUFJJVkFURSB2b2lkIGRvU29tZUhlbHBpbmcoKTsKQEAgLTE2OCw1MCArMjAyLDE1IEBAIHB1
YmxpYzoKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIFBhcmFsbGVsSGVscGVyUG9vbDsKIAot
ICAgIHZvaWQgZmluaXNoKGNvbnN0IEFic3RyYWN0TG9ja2VyJik7Ci0gICAgUmVmUHRyPFNoYXJl
ZFRhc2s8dm9pZCAoKT4+IGNsYWltVGFzayhjb25zdCBBYnN0cmFjdExvY2tlciYpOworICAgIHZv
aWQgZmluaXNoV2l0aExvY2soKSBXVEZfUkVRVUlSRVNfTE9DSygqbV9wb29sLT5tX2xvY2spOwor
ICAgIFJlZlB0cjxTaGFyZWRUYXNrPHZvaWQgKCk+PiBjbGFpbVRhc2soKSBXVEZfUkVRVUlSRVNf
TE9DSygqbV9wb29sLT5tX2xvY2spOwogICAgIHZvaWQgcnVuVGFzayhjb25zdCBSZWZQdHI8U2hh
cmVkVGFzazx2b2lkICgpPj4mKTsKLSAgICAKKwogICAgIFJlZlB0cjxQYXJhbGxlbEhlbHBlclBv
b2w+IG1fcG9vbDsKICAgICBSZWZQdHI8U2hhcmVkVGFzazx2b2lkICgpPj4gbV90YXNrOwogICAg
IHVuc2lnbmVkIG1fbnVtQWN0aXZlIHsgMCB9OwogfTsKIAotY2xhc3MgUGFyYWxsZWxIZWxwZXJQ
b29sIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFBhcmFsbGVsSGVscGVyUG9vbD4gewot
cHVibGljOgotICAgIFdURl9FWFBPUlRfUFJJVkFURSBQYXJhbGxlbEhlbHBlclBvb2woQ1N0cmlu
ZyYmIHRocmVhZE5hbWUpOwotICAgIFdURl9FWFBPUlRfUFJJVkFURSB+UGFyYWxsZWxIZWxwZXJQ
b29sKCk7Ci0KLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBlbnN1cmVUaHJlYWRzKHVuc2ln
bmVkIG51bVRocmVhZHMpOwotCi0gICAgdW5zaWduZWQgbnVtYmVyT2ZUaHJlYWRzKCkgY29uc3Qg
eyByZXR1cm4gbV9udW1UaHJlYWRzOyB9Ci0gICAgCi0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZv
aWQgZG9Tb21lSGVscGluZygpOwotCi1wcml2YXRlOgotICAgIGZyaWVuZCBjbGFzcyBQYXJhbGxl
bEhlbHBlckNsaWVudDsKLSAgICBjbGFzcyBUaHJlYWQ7Ci0gICAgZnJpZW5kIGNsYXNzIFRocmVh
ZDsKLQotICAgIHZvaWQgZGlkTWFrZVdvcmtBdmFpbGFibGUoY29uc3QgQWJzdHJhY3RMb2NrZXIm
KTsKLQotICAgIGJvb2wgaGFzQ2xpZW50V2l0aFRhc2soY29uc3QgQWJzdHJhY3RMb2NrZXImKTsK
LSAgICBQYXJhbGxlbEhlbHBlckNsaWVudCogZ2V0Q2xpZW50V2l0aFRhc2soY29uc3QgQWJzdHJh
Y3RMb2NrZXImKTsKLSAgICBQYXJhbGxlbEhlbHBlckNsaWVudCogd2FpdEZvckNsaWVudFdpdGhU
YXNrKGNvbnN0IEFic3RyYWN0TG9ja2VyJik7Ci0gICAgCi0gICAgQm94PFVuY2hlY2tlZExvY2s+
IG1fbG9jazsgLy8gQXV0b21hdGljVGhyZWFkIHdhbnRzIHRoaXMgaW4gYSBib3ggZm9yIHNhZmV0
eS4KLSAgICBSZWY8QXV0b21hdGljVGhyZWFkQ29uZGl0aW9uPiBtX3dvcmtBdmFpbGFibGVDb25k
aXRpb247Ci0gICAgVW5jaGVja2VkQ29uZGl0aW9uIG1fd29ya0NvbXBsZXRlQ29uZGl0aW9uOwot
Ci0gICAgV2Vha1JhbmRvbSBtX3JhbmRvbTsKLSAgICAKLSAgICBWZWN0b3I8UGFyYWxsZWxIZWxw
ZXJDbGllbnQqPiBtX2NsaWVudHM7Ci0gICAgVmVjdG9yPFJlZlB0cjxBdXRvbWF0aWNUaHJlYWQ+
PiBtX3RocmVhZHM7Ci0gICAgQ1N0cmluZyBtX3RocmVhZE5hbWU7Ci0gICAgdW5zaWduZWQgbV9u
dW1UaHJlYWRzIHsgMCB9OyAvLyBUaGlzIGNhbiBiZSBsYXJnZXIgdGhhbiBtX3RocmVhZHMuc2l6
ZSgpIGJlY2F1c2Ugd2Ugc3RhcnQgdGhyZWFkcyBvbmx5IG9uY2UgdGhlcmUgaXMgd29yay4KLSAg
ICBib29sIG1faXNEeWluZyB7IGZhbHNlIH07Ci19OwotCiB9IC8vIG5hbWVzcGFjZSBXVEYKIAog
dXNpbmcgV1RGOjpQYXJhbGxlbEhlbHBlckNsaWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL1dvcmtlclBvb2wuY3BwIGIvU291cmNlL1dURi93dGYvV29ya2VyUG9vbC5jcHAKaW5kZXgg
MjE5ZGJmMTUxZDY2MzdjNjdhM2U0NzZmZDEzZTNkMWI4OGI0MzU3YS4uOGE5YzFmZGE3NGE3M2Iy
YzVhYjVjZGEyZDhlNDYwOWFiZTgwYTMwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvV29y
a2VyUG9vbC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvV29ya2VyUG9vbC5jcHAKQEAgLTMyLDcg
KzMyLDcgQEAgY2xhc3MgV29ya2VyUG9vbDo6V29ya2VyIGZpbmFsIDogcHVibGljIEF1dG9tYXRp
Y1RocmVhZCB7CiBwdWJsaWM6CiAgICAgZnJpZW5kIGNsYXNzIFdvcmtlclBvb2w7CiAKLSAgICBX
b3JrZXIoY29uc3QgQWJzdHJhY3RMb2NrZXImIGxvY2tlciwgV29ya2VyUG9vbCYgcG9vbCwgQm94
PFVuY2hlY2tlZExvY2s+IGxvY2ssIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+JiYgY29u
ZGl0aW9uLCBTZWNvbmRzIHRpbWVvdXQpCisgICAgV29ya2VyKGNvbnN0IEFic3RyYWN0TG9ja2Vy
JiBsb2NrZXIsIFdvcmtlclBvb2wmIHBvb2wsIEJveDxMb2NrPiBsb2NrLCBSZWY8QXV0b21hdGlj
VGhyZWFkQ29uZGl0aW9uPiYmIGNvbmRpdGlvbiwgU2Vjb25kcyB0aW1lb3V0KQogICAgICAgICA6
IEF1dG9tYXRpY1RocmVhZChsb2NrZXIsIGxvY2ssIFdURk1vdmUoY29uZGl0aW9uKSwgdGltZW91
dCkKICAgICAgICAgLCBtX3Bvb2wocG9vbCkKICAgICB7CkBAIC04Miw3ICs4Miw3IEBAIHByaXZh
dGU6CiB9OwogCiBXb3JrZXJQb29sOjpXb3JrZXJQb29sKEFTQ0lJTGl0ZXJhbCBuYW1lLCB1bnNp
Z25lZCBudW1iZXJPZldvcmtlcnMsIFNlY29uZHMgdGltZW91dCkKLSAgICA6IG1fbG9jayhCb3g8
VW5jaGVja2VkTG9jaz46OmNyZWF0ZSgpKQorICAgIDogbV9sb2NrKEJveDxMb2NrPjo6Y3JlYXRl
KCkpCiAgICAgLCBtX2NvbmRpdGlvbihBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246OmNyZWF0ZSgp
KQogICAgICwgbV90aW1lb3V0KHRpbWVvdXQpCiAgICAgLCBtX25hbWUobmFtZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL1dvcmtlclBvb2wuaCBiL1NvdXJjZS9XVEYvd3RmL1dvcmtlclBv
b2wuaAppbmRleCA3YTQwNDJiNDZiMTY4ODAyM2YxY2VmOWU2NDJhYjJjNDhjODg5M2Q5Li42MjM1
ZTczMWVkNzViODAxMjUwOTUzNTkwNjhiMDhkNGMxZGNmZWMyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi9Xb3JrZXJQb29sLmgKKysrIGIvU291cmNlL1dURi93dGYvV29ya2VyUG9vbC5oCkBA
IC01Nyw3ICs1Nyw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIHNob3VsZFNsZWVwKGNvbnN0IEFi
c3RyYWN0TG9ja2VyJik7CiAKLSAgICBCb3g8VW5jaGVja2VkTG9jaz4gbV9sb2NrOworICAgIEJv
eDxMb2NrPiBtX2xvY2s7CiAgICAgUmVmPEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbj4gbV9jb25k
aXRpb247CiAgICAgU2Vjb25kcyBtX3RpbWVvdXQ7CiAgICAgTW9ub3RvbmljVGltZSBtX2xhc3RU
aW1lb3V0VGltZSB7IE1vbm90b25pY1RpbWU6Om5hbigpIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429759</attachid>
            <date>2021-05-26 08:11:37 -0700</date>
            <delta_ts>2021-05-26 09:42:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226255-20210526081136.patch</filename>
            <type>text/plain</type>
            <size>23630</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MDgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
N2JmYzA4MTZmNzAxZTk2ODI0ZmI4MjUwNTY1NzZiYmRkNWI4NzAzLi5jNjRmZWRmNjJhNTE1ZTdj
OTdhZjI5YjBhODA3MjkyMDMxNGY1ZWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOSBAQAorMjAyMS0wNS0yNiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFN0b3AgdXNpbmcgVW5jaGVja2VkTG9jayBpbiBXVEY6OkF1dG9tYXRpY1RocmVh
ZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MjU1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgS2VpdGggTWlsbGVyLgorCisgICAgICAgIFNvbWUgY29k
ZSBpbiBKU0MgaGFkIHRvIGJlIHBvcnRlZCBmcm9tIFVuY2hlY2tlZExvY2sgdG8gTG9jayBhcyBh
IHJlc3VsdCBvZgorICAgICAgICBXVEY6OkF1dG9tYXRpY1RocmVhZCB1c2luZyB0aGUgTG9jayB0
eXBlLgorCisgICAgICAgICogZGZnL0RGR1dvcmtsaXN0LmNwcDoKKyAgICAgICAgKEpTQzo6REZH
OjpXb3JrbGlzdDo6V29ya2xpc3QpOgorICAgICAgICAqIGRmZy9ERkdXb3JrbGlzdC5oOgorICAg
ICAgICAqIGhlYXAvSGVhcC5jcHA6CisgICAgICAgIChKU0M6OkhlYXA6OkhlYXApOgorICAgICAg
ICAqIGhlYXAvSGVhcC5oOgorICAgICAgICAqIGppdC9KSVRXb3JrbGlzdC5jcHA6CisgICAgICAg
IChKU0M6OkpJVFdvcmtsaXN0OjpKSVRXb3JrbGlzdCk6CisgICAgICAgICogaml0L0pJVFdvcmts
aXN0Lmg6CisgICAgICAgICogcnVudGltZS9WTVRyYXBzLmNwcDoKKyAgICAgICAgKEpTQzo6Vk1U
cmFwczo6Vk1UcmFwcyk6CisgICAgICAgICogcnVudGltZS9WTVRyYXBzLmg6CisgICAgICAgICog
d2FzbS9XYXNtV29ya2xpc3QuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpXb3JrbGlzdDo6V29y
a2xpc3QpOgorICAgICAgICAqIHdhc20vV2FzbVdvcmtsaXN0Lmg6CisKIDIwMjEtMDUtMjUgIEZ1
amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CiAKICAgICAgICAgQ2xhbmcg
Y2FuJ3QgY29tcGlsZSBPcHRpb25hbDxHUFJUZW1wb3Jhcnk+IHNpbmNlIHIyNzgwMzUgYmVjYXVz
ZSBHUFJUZW1wb3JhcnkgaGFzIG5vbi1jb25zdCBjb3B5IGNvbnN0cnVjdG9yCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGI1ZjJm
Y2FmM2YwOTdmZDY4OTA4NWVhYmI3MmEyZjFkYTFhZDMyZjguLmNjNTA3MTUwY2NkOTBiZTBhNGVm
MmE5OGZhMzYwN2M5MDIwYzFlNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMjEtMDUtMjYgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBTdG9wIHVzaW5nIFVuY2hl
Y2tlZExvY2sgaW4gV1RGOjpBdXRvbWF0aWNUaHJlYWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjI1NQorCisgICAgICAgIFJldmlld2VkIGJ5IEtl
aXRoIE1pbGxlci4KKworICAgICAgICBTdG9wIHVzaW5nIFVuY2hlY2tlZExvY2sgaW4gV1RGOjpB
dXRvbWF0aWNUaHJlYWQgYXMgaXQgaXMgYmVpbmcgcGhhc2VkIG91dCBpbiBmYXZvciBvZgorICAg
ICAgICBMb2NrLCB3aGljaCBzdXBwb3J0cyBDbGFuZyB0aHJlYWQgc2FmZXR5IGFuYWx5c2lzLgor
CisgICAgICAgICogd3RmL0F1dG9tYXRpY1RocmVhZC5jcHA6CisgICAgICAgIChXVEY6OkF1dG9t
YXRpY1RocmVhZENvbmRpdGlvbjo6d2FpdCk6CisgICAgICAgIChXVEY6OkF1dG9tYXRpY1RocmVh
ZENvbmRpdGlvbjo6d2FpdEZvcik6CisgICAgICAgIChXVEY6OkF1dG9tYXRpY1RocmVhZDo6QXV0
b21hdGljVGhyZWFkKToKKyAgICAgICAgKiB3dGYvQXV0b21hdGljVGhyZWFkLmg6CisgICAgICAg
ICogd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5jcHA6CisgICAgICAgIChXVEY6OlBhcmFsbGVsSGVs
cGVyQ2xpZW50Ojp+UGFyYWxsZWxIZWxwZXJDbGllbnQpOgorICAgICAgICAoV1RGOjpQYXJhbGxl
bEhlbHBlckNsaWVudDo6ZmluaXNoKToKKyAgICAgICAgKFdURjo6UGFyYWxsZWxIZWxwZXJDbGll
bnQ6OmZpbmlzaFdpdGhMb2NrKToKKyAgICAgICAgKFdURjo6UGFyYWxsZWxIZWxwZXJQb29sOjpQ
YXJhbGxlbEhlbHBlclBvb2wpOgorICAgICAgICAqIHd0Zi9QYXJhbGxlbEhlbHBlclBvb2wuaDoK
KyAgICAgICAgKFdURjo6UGFyYWxsZWxIZWxwZXJQb29sOjpudW1iZXJPZlRocmVhZHMgY29uc3Qp
OgorICAgICAgICAqIHd0Zi9Xb3JrZXJQb29sLmNwcDoKKyAgICAgICAgKFdURjo6V29ya2VyUG9v
bDo6V29ya2VyUG9vbCk6CisgICAgICAgICogd3RmL1dvcmtlclBvb2wuaDoKKwogMjAyMS0wNS0y
NSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBVbmNoZWNr
ZWRMb2NrIGxlc3MgaW4gSmF2YVNjcmlwdENvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdXb3JrbGlzdC5jcHAKaW5kZXggZDE1N2FkZjg3NmRjODQ2ODNhODZjMDQ2ZWEyYmVlY2JhYjk5
YTkzNy4uNGQyMjhjZmU4N2FkOTgxOTM2YzA3YzA5ZDQxYjcyNzUxNTU5NGE5MSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgbmFt
ZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogCiBjbGFzcyBXb3JrbGlzdDo6VGhyZWFkQm9k
eSBmaW5hbCA6IHB1YmxpYyBBdXRvbWF0aWNUaHJlYWQgewogcHVibGljOgotICAgIFRocmVhZEJv
ZHkoY29uc3QgQWJzdHJhY3RMb2NrZXImIGxvY2tlciwgV29ya2xpc3QmIHdvcmtsaXN0LCBUaHJl
YWREYXRhJiBkYXRhLCBCb3g8VW5jaGVja2VkTG9jaz4gbG9jaywgUmVmPEF1dG9tYXRpY1RocmVh
ZENvbmRpdGlvbj4mJiBjb25kaXRpb24sIGludCByZWxhdGl2ZVByaW9yaXR5KQorICAgIFRocmVh
ZEJvZHkoY29uc3QgQWJzdHJhY3RMb2NrZXImIGxvY2tlciwgV29ya2xpc3QmIHdvcmtsaXN0LCBU
aHJlYWREYXRhJiBkYXRhLCBCb3g8TG9jaz4gbG9jaywgUmVmPEF1dG9tYXRpY1RocmVhZENvbmRp
dGlvbj4mJiBjb25kaXRpb24sIGludCByZWxhdGl2ZVByaW9yaXR5KQogICAgICAgICA6IEF1dG9t
YXRpY1RocmVhZChsb2NrZXIsIGxvY2ssIFdURk1vdmUoY29uZGl0aW9uKSwgVGhyZWFkVHlwZTo6
Q29tcGlsZXIpCiAgICAgICAgICwgbV93b3JrbGlzdCh3b3JrbGlzdCkKICAgICAgICAgLCBtX2Rh
dGEoZGF0YSkKQEAgLTE4MSw3ICsxODEsNyBAQCBzdGF0aWMgQ1N0cmluZyBjcmVhdGVXb3JrbGlz
dE5hbWUoQ1N0cmluZyYmIHRpZXJOYW1lKQogV29ya2xpc3Q6OldvcmtsaXN0KENTdHJpbmcmJiB0
aWVyTmFtZSkKICAgICA6IG1fdGhyZWFkTmFtZShjcmVhdGVXb3JrbGlzdE5hbWUoV1RGTW92ZSh0
aWVyTmFtZSkpKQogICAgICwgbV9wbGFuRW5xdWV1ZWQoQXV0b21hdGljVGhyZWFkQ29uZGl0aW9u
OjpjcmVhdGUoKSkKLSAgICAsIG1fbG9jayhCb3g8VW5jaGVja2VkTG9jaz46OmNyZWF0ZSgpKQor
ICAgICwgbV9sb2NrKEJveDxMb2NrPjo6Y3JlYXRlKCkpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHV29ya2xpc3QuaAppbmRleCA1NzZlMDNlNDdlNmVmNTAzYzZkMDExNmVjZmJk
YzBhOGM2Yzc1Yzg4Li4zZTJiYmEyZmY4ZTE1YmExYjlmMmY1ZWM2MjFiMzAwYjZmOTE0YmFhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5oCkBAIC0xMTAsMTAgKzExMCwx
MCBAQCBwcml2YXRlOgogICAgIC8vIGJlIGNvbXBsZXRlZC4KICAgICBWZWN0b3I8UmVmUHRyPFBs
YW4+LCAxNj4gbV9yZWFkeVBsYW5zOwogICAgIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+
IG1fcGxhbkVucXVldWVkOwotICAgIFVuY2hlY2tlZENvbmRpdGlvbiBtX3BsYW5Db21waWxlZDsK
KyAgICBDb25kaXRpb24gbV9wbGFuQ29tcGlsZWQ7CiAKICAgICBVbmNoZWNrZWRMb2NrIG1fc3Vz
cGVuc2lvbkxvY2s7Ci0gICAgQm94PFVuY2hlY2tlZExvY2s+IG1fbG9jazsKKyAgICBCb3g8TG9j
az4gbV9sb2NrOwogfTsKIAogSlNfRVhQT1JUX1BSSVZBVEUgdW5zaWduZWQgc2V0TnVtYmVyT2ZE
RkdDb21waWxlclRocmVhZHModW5zaWduZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvSGVhcC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNw
cAppbmRleCBjYmFkY2Y5ZTMyY2M5OTA5NzRhZTljNTc1YzM3NjlhYjJkOGEyZWFkLi42NDU1Nzhk
MjYxYmY1MWUyMzExMDMzYzNlNzNjNDNiNjVhMzg0Y2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9IZWFwLmNwcApAQCAtMzAyLDcgKzMwMiw3IEBAIEhlYXA6OkhlYXAoVk0mIHZtLCBIZWFwVHlw
ZSBoZWFwVHlwZSkKICAgICAsIG1fc2hhcmVkQ29sbGVjdG9yTWFya1N0YWNrKG1ha2VVbmlxdWU8
TWFya1N0YWNrQXJyYXk+KCkpCiAgICAgLCBtX3NoYXJlZE11dGF0b3JNYXJrU3RhY2sobWFrZVVu
aXF1ZTxNYXJrU3RhY2tBcnJheT4oKSkKICAgICAsIG1faGVscGVyQ2xpZW50KCZoZWFwSGVscGVy
UG9vbCgpKQotICAgICwgbV90aHJlYWRMb2NrKEJveDxVbmNoZWNrZWRMb2NrPjo6Y3JlYXRlKCkp
CisgICAgLCBtX3RocmVhZExvY2soQm94PExvY2s+OjpjcmVhdGUoKSkKICAgICAsIG1fdGhyZWFk
Q29uZGl0aW9uKEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbjo6Y3JlYXRlKCkpCiB7CiAgICAgbV93
b3JsZFN0YXRlLnN0b3JlKDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvSGVhcC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCmluZGV4IDA4MmQz
MTFhYzY2MWJiNDBkMWI2MGYzNTFmZDdjNTA2Zjk5ZTA5MWUuLmE1ZWVmYzY5ZGJkM2M2Y2NkMTYx
Y2Q5M2RjYjE1MDc5NjIxNjY3ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0hlYXAuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgKQEAgLTc0
Niw3ICs3NDYsNyBAQCBwcml2YXRlOgogCiAgICAgdWludDY0X3QgbV9tdXRhdG9yRXhlY3V0aW9u
VmVyc2lvbiB7IDAgfTsKICAgICB1aW50NjRfdCBtX3BoYXNlVmVyc2lvbiB7IDAgfTsKLSAgICBC
b3g8VW5jaGVja2VkTG9jaz4gbV90aHJlYWRMb2NrOworICAgIEJveDxMb2NrPiBtX3RocmVhZExv
Y2s7CiAgICAgUmVmPEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbj4gbV90aHJlYWRDb25kaXRpb247
IC8vIFRoZSBtdXRhdG9yIG11c3Qgbm90IHdhaXQgb24gdGhpcy4gSXQgd291bGQgY2F1c2UgYSBk
ZWFkbG9jay4KICAgICBSZWZQdHI8QXV0b21hdGljVGhyZWFkPiBtX3RocmVhZDsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRXb3JrbGlzdC5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVFdvcmtsaXN0LmNwcAppbmRleCBhOTY4OTc0YmQ2YTk4MjNi
OTBhYWRjNDRhNDE0YTUzN2E5MDNjZjdhLi5hNzA1MmU3OWYwYTc0MzY3ZmUzZmRjNWEzY2Y2ZDUz
OGU2OTMyMDBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFdvcmts
aXN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFdvcmtsaXN0LmNwcApA
QCAtMTY1LDcgKzE2NSw3IEBAIHByaXZhdGU6CiB9OwogCiBKSVRXb3JrbGlzdDo6SklUV29ya2xp
c3QoKQotICAgIDogbV9sb2NrKEJveDxVbmNoZWNrZWRMb2NrPjo6Y3JlYXRlKCkpCisgICAgOiBt
X2xvY2soQm94PExvY2s+OjpjcmVhdGUoKSkKICAgICAsIG1fY29uZGl0aW9uKEF1dG9tYXRpY1Ro
cmVhZENvbmRpdGlvbjo6Y3JlYXRlKCkpCiB7CiAgICAgTG9ja2VyIGxvY2tlciB7ICptX2xvY2sg
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUV29ya2xpc3QuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUV29ya2xpc3QuaAppbmRleCBhNzJhODM4NzBh
MDA4MmZjZDM0NDk1MjkwZWE1MGVhMTQwZDg5ZjJmLi5iOWY3N2NhMWIzZGRlZmE2MTQ4YjEzNjk0
MmQ1N2EwOWQ2NWVhN2EzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VFdvcmtsaXN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRXb3JrbGlzdC5o
CkBAIC03MSw3ICs3MSw3IEBAIHByaXZhdGU6CiAgICAgUGxhbnMgbV9wbGFuczsKICAgICBIYXNo
U2V0PENvZGVCbG9jayo+IG1fcGxhbm5lZDsKICAgICAKLSAgICBCb3g8VW5jaGVja2VkTG9jaz4g
bV9sb2NrOworICAgIEJveDxMb2NrPiBtX2xvY2s7CiAgICAgUmVmPEF1dG9tYXRpY1RocmVhZENv
bmRpdGlvbj4gbV9jb25kaXRpb247IC8vIFdlIHVzZSBPbmUgVHJ1ZSBDb25kaXRpb24gZm9yIGV2
ZXJ5dGhpbmcgYmVjYXVzZSB0aGF0J3MgZWFzaWVyLgogICAgIFJlZlB0cjxBdXRvbWF0aWNUaHJl
YWQ+IG1fdGhyZWFkOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvVk1UcmFwcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTVRyYXBz
LmNwcAppbmRleCA1N2RiMzE5Y2VjZmI3MzcxOTdlMjZkOWNkZDJkYjdhNThiYjA4YzY3Li4wZGM3
ZTNiNzczYTM0ZjQ1NTU5ZDE5ZWE4MzAyODI1NDljZjdjZmI0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9WTVRyYXBzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9WTVRyYXBzLmNwcApAQCAtNDM3LDcgKzQzNyw3IEBAIHZvaWQgVk1UcmFw
czo6dW5kb0RlZmVyVGVybWluYXRpb25TbG93KERlZmVyQWN0aW9uIGRlZmVyQWN0aW9uKQogfQog
CiBWTVRyYXBzOjpWTVRyYXBzKCkKLSAgICA6IG1fbG9jayhCb3g8VW5jaGVja2VkTG9jaz46OmNy
ZWF0ZSgpKQorICAgIDogbV9sb2NrKEJveDxMb2NrPjo6Y3JlYXRlKCkpCiAgICAgLCBtX2NvbmRp
dGlvbihBdXRvbWF0aWNUaHJlYWRDb25kaXRpb246OmNyZWF0ZSgpKQogewogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1UcmFwcy5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvVk1UcmFwcy5oCmluZGV4IDVkMTVjOTJmNzA0MTc1MWQ4MDRlNGM1
NzJhNTUzMDEwN2JmZTQyZGMuLmQ5NGM4MDZiMWJlOGQ3NDM0ZTAzZTMyY2UwMGJiMjQzMWQ4NGJh
ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNVHJhcHMuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTVRyYXBzLmgKQEAgLTI0Nyw3ICsy
NDcsNyBAQCBwcml2YXRlOgogCiAgICAgc3RhdGljIGNvbnN0ZXhwciBCaXRGaWVsZCBOZWVkRXhj
ZXB0aW9uSGFuZGxpbmdNYXNrID0gfigxIDw8IE5lZWRFeGNlcHRpb25IYW5kbGluZyk7CiAKLSAg
ICBCb3g8VW5jaGVja2VkTG9jaz4gbV9sb2NrOworICAgIEJveDxMb2NrPiBtX2xvY2s7CiAgICAg
UmVmPEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbj4gbV9jb25kaXRpb247CiAgICAgQXRvbWljPEJp
dEZpZWxkPiBtX3RyYXBCaXRzIHsgMCB9OwogICAgIGJvb2wgbV9uZWVkVG9JbnZhbGlkYXRlZENv
ZGVCbG9ja3MgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbVdvcmtsaXN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Xb3Jr
bGlzdC5jcHAKaW5kZXggMzg5OGVjYWI0YzA4ODdlMjVhMGEzNDgxYjQxMWI4ZjY3YzFlYmMyOS4u
NWJhZDBkOTBhNTYyZTI1ZGRlODE3YjU4MmMwNjA2NjU2YzkwNmViYSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVdvcmtsaXN0LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtV29ya2xpc3QuY3BwCkBAIC0xMjgsNyArMTI4LDcgQEAgcHJp
dmF0ZToKICAgICB9CiAKIHB1YmxpYzoKLSAgICBVbmNoZWNrZWRDb25kaXRpb24gc3luY2hyb25p
emU7CisgICAgQ29uZGl0aW9uIHN5bmNocm9uaXplOwogICAgIFdvcmtsaXN0JiB3b3JrbGlzdDsK
ICAgICAvLyBXZSBjYW4gb25seSBtb2RpZnkgZWxlbWVudCB3aGVuIGhvbGRpbmcgdGhlIGxvY2su
IEEgc3luY2hyb25vdXMgY29tcGlsZSBtaWdodCBsb29rIGF0IGVhY2ggdGhyZWFkJ3MgdGFza3Mg
aW4gb3JkZXIgdG8gYm9vc3QgdGhlIHByaW9yaXR5LgogICAgIFF1ZXVlRWxlbWVudCBlbGVtZW50
OwpAQCAtMjEzLDcgKzIxMyw3IEBAIHZvaWQgV29ya2xpc3Q6OnN0b3BBbGxQbGFuc0ZvckNvbnRl
eHQoQ29udGV4dCYgY29udGV4dCkKIH0KIAogV29ya2xpc3Q6OldvcmtsaXN0KCkKLSAgICA6IG1f
bG9jayhCb3g8VW5jaGVja2VkTG9jaz46OmNyZWF0ZSgpKQorICAgIDogbV9sb2NrKEJveDxMb2Nr
Pjo6Y3JlYXRlKCkpCiAgICAgLCBtX3BsYW5FbnF1ZXVlZChBdXRvbWF0aWNUaHJlYWRDb25kaXRp
b246OmNyZWF0ZSgpKQogewogICAgIHVuc2lnbmVkIG51bWJlck9mQ29tcGlsYXRpb25UaHJlYWRz
ID0gT3B0aW9uczo6dXNlQ29uY3VycmVudEpJVCgpID8ga2VyblRDU01Bd2FyZU51bWJlck9mUHJv
Y2Vzc29yQ29yZXMoKSA6IDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtV29ya2xpc3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Xb3JrbGlz
dC5oCmluZGV4IDQ1YTZmYmI2Y2Y5YTg1M2MyODFmZGJiYWNkNTZmYmVkZDFmYTU5Y2YuLjU2ZDc5
YTBlOTg5YTYwMmYyMTMzZDAzMDkwZmRiY2M2MzdjOTU2MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21Xb3JrbGlzdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21Xb3JrbGlzdC5oCkBAIC04NCw3ICs4NCw3IEBAIHByaXZhdGU6CiAgICAg
ICAgIHJldHVybiBsZWZ0LnByaW9yaXR5ID4gcmlnaHQucHJpb3JpdHk7CiAgICAgfQogCi0gICAg
Qm94PFVuY2hlY2tlZExvY2s+IG1fbG9jazsKKyAgICBCb3g8TG9jaz4gbV9sb2NrOwogICAgIFJl
ZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+IG1fcGxhbkVucXVldWVkOwogICAgIC8vIFRlY2hu
aWNhbGx5LCB0aGlzIGNvdWxkIG92ZXJmbG93IGJ1dCB0aGF0J3MgdW5saWtlbHkuIEV2ZW4gaWYg
aXQgZGlkLCB3ZSB3aWxsIGp1c3QgY29tcGlsZSB0aGluZ3Mgb2YgdGhlIHNhbWUKICAgICAvLyBQ
cmlvcml0eSBpdCB0aGUgd3Jvbmcgb3JkZXIsIHdoaWNoIGlzbid0IHdyb25nLCBqdXN0IHN1Ym9w
dGltYWwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9BdXRvbWF0aWNUaHJlYWQuY3BwIGIv
U291cmNlL1dURi93dGYvQXV0b21hdGljVGhyZWFkLmNwcAppbmRleCAzYzViZTUxM2MyNjNjYThi
NGRhNmI3YzI2YzZmODM3MzlkYTMxZTBjLi5mNGVhNzhkMTNlMWNkZGI2MTliODIyODY4ZDMzYzcy
N2M5ZjJmOThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9BdXRvbWF0aWNUaHJlYWQuY3Bw
CisrKyBiL1NvdXJjZS9XVEYvd3RmL0F1dG9tYXRpY1RocmVhZC5jcHAKQEAgLTc3LDEyICs3Nywx
MiBAQCB2b2lkIEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbjo6bm90aWZ5QWxsKGNvbnN0IEFic3Ry
YWN0TG9ja2VyJiBsb2NrZXIpCiAgICAgfQogfQogCi12b2lkIEF1dG9tYXRpY1RocmVhZENvbmRp
dGlvbjo6d2FpdChVbmNoZWNrZWRMb2NrJiBsb2NrKQordm9pZCBBdXRvbWF0aWNUaHJlYWRDb25k
aXRpb246OndhaXQoTG9jayYgbG9jaykKIHsKICAgICBtX2NvbmRpdGlvbi53YWl0KGxvY2spOwog
fQogCi1ib29sIEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbjo6d2FpdEZvcihVbmNoZWNrZWRMb2Nr
JiBsb2NrLCBTZWNvbmRzIHRpbWUpCitib29sIEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbjo6d2Fp
dEZvcihMb2NrJiBsb2NrLCBTZWNvbmRzIHRpbWUpCiB7CiAgICAgcmV0dXJuIG1fY29uZGl0aW9u
LndhaXRGb3IobG9jaywgdGltZSk7CiB9CkBAIC0xMDQsMTIgKzEwNCwxMiBAQCBib29sIEF1dG9t
YXRpY1RocmVhZENvbmRpdGlvbjo6Y29udGFpbnMoY29uc3QgQWJzdHJhY3RMb2NrZXImLCBBdXRv
bWF0aWNUaHJlYWQqCiAgICAgcmV0dXJuIG1fdGhyZWFkcy5jb250YWlucyh0aHJlYWQpOwogfQog
Ci1BdXRvbWF0aWNUaHJlYWQ6OkF1dG9tYXRpY1RocmVhZChjb25zdCBBYnN0cmFjdExvY2tlciYg
bG9ja2VyLCBCb3g8VW5jaGVja2VkTG9jaz4gbG9jaywgUmVmPEF1dG9tYXRpY1RocmVhZENvbmRp
dGlvbj4mJiBjb25kaXRpb24sIFNlY29uZHMgdGltZW91dCkKK0F1dG9tYXRpY1RocmVhZDo6QXV0
b21hdGljVGhyZWFkKGNvbnN0IEFic3RyYWN0TG9ja2VyJiBsb2NrZXIsIEJveDxMb2NrPiBsb2Nr
LCBSZWY8QXV0b21hdGljVGhyZWFkQ29uZGl0aW9uPiYmIGNvbmRpdGlvbiwgU2Vjb25kcyB0aW1l
b3V0KQogICAgIDogQXV0b21hdGljVGhyZWFkKGxvY2tlciwgbG9jaywgV1RGTW92ZShjb25kaXRp
b24pLCBUaHJlYWRUeXBlOjpVbmtub3duLCB0aW1lb3V0KQogewogfQogCi1BdXRvbWF0aWNUaHJl
YWQ6OkF1dG9tYXRpY1RocmVhZChjb25zdCBBYnN0cmFjdExvY2tlciYgbG9ja2VyLCBCb3g8VW5j
aGVja2VkTG9jaz4gbG9jaywgUmVmPEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbj4mJiBjb25kaXRp
b24sIFRocmVhZFR5cGUgdHlwZSwgU2Vjb25kcyB0aW1lb3V0KQorQXV0b21hdGljVGhyZWFkOjpB
dXRvbWF0aWNUaHJlYWQoY29uc3QgQWJzdHJhY3RMb2NrZXImIGxvY2tlciwgQm94PExvY2s+IGxv
Y2ssIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+JiYgY29uZGl0aW9uLCBUaHJlYWRUeXBl
IHR5cGUsIFNlY29uZHMgdGltZW91dCkKICAgICA6IG1fbG9jayhsb2NrKQogICAgICwgbV9jb25k
aXRpb24oV1RGTW92ZShjb25kaXRpb24pKQogICAgICwgbV90aW1lb3V0KHRpbWVvdXQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9BdXRvbWF0aWNUaHJlYWQuaCBiL1NvdXJjZS9XVEYvd3Rm
L0F1dG9tYXRpY1RocmVhZC5oCmluZGV4IDA5ZmNhZmVmMjM5NTkxYjJlMTJjZGYwMmZkZjAwNmNj
ZGQ0MTJhNmIuLmQwOTJmZDQzZmU0ODNlY2VkMWZmMGY4NzEwZDE5OTJkZjcwNDJjMjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0F1dG9tYXRpY1RocmVhZC5oCisrKyBiL1NvdXJjZS9XVEYv
d3RmL0F1dG9tYXRpY1RocmVhZC5oCkBAIC04MSw4ICs4MSw4IEBAIHB1YmxpYzoKICAgICAvLyBP
bmUga25vd24tZ29vZCBjYXNlIGZvciBvbmUtdHJ1ZS1jb25kaXRpb24gaXMgd2hlbiB0aGUgY29t
bXVuaWNhdGlvbiBpbnZvbHZlcyBqdXN0IHR3bwogICAgIC8vIHRocmVhZHMuIEluIHN1Y2ggY2Fz
ZXMsIHRoZSB0aHJlYWQgZG9pbmcgdGhlIG5vdGlmeUFsbCgpIGNhbiB3YWtlIHVwIGF0IG1vc3Qg
b25lIHRocmVhZCAtCiAgICAgLy8gaXRzIHBhcnRuZXIuCi0gICAgV1RGX0VYUE9SVF9QUklWQVRF
IHZvaWQgd2FpdChVbmNoZWNrZWRMb2NrJik7Ci0gICAgV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wg
d2FpdEZvcihVbmNoZWNrZWRMb2NrJiwgU2Vjb25kcyk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRF
IHZvaWQgd2FpdChMb2NrJiBsb2NrKSBXVEZfUkVRVUlSRVNfTE9DSyhsb2NrKTsKKyAgICBXVEZf
RVhQT1JUX1BSSVZBVEUgYm9vbCB3YWl0Rm9yKExvY2smIGxvY2ssIFNlY29uZHMpIFdURl9SRVFV
SVJFU19MT0NLKGxvY2spOwogICAgIAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgQXV0b21h
dGljVGhyZWFkOwpAQCAtOTMsNyArOTMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVtb3ZlKGNv
bnN0IEFic3RyYWN0TG9ja2VyJiwgQXV0b21hdGljVGhyZWFkKik7CiAgICAgYm9vbCBjb250YWlu
cyhjb25zdCBBYnN0cmFjdExvY2tlciYsIEF1dG9tYXRpY1RocmVhZCopOwogICAgIAotICAgIFVu
Y2hlY2tlZENvbmRpdGlvbiBtX2NvbmRpdGlvbjsKKyAgICBDb25kaXRpb24gbV9jb25kaXRpb247
CiAgICAgVmVjdG9yPEF1dG9tYXRpY1RocmVhZCo+IG1fdGhyZWFkczsKIH07CiAKQEAgLTEzMSw5
ICsxMzEsOSBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgLy8gVGhpcyBsb2dpY2FsbHkgY3Jl
YXRlcyB0aGUgdGhyZWFkLCBidXQgaW4gcmVhbGl0eSB0aGUgdGhyZWFkIHdvbid0IGJlIGNyZWF0
ZWQgdW50aWwgc29tZW9uZQogICAgIC8vIGNhbGxzIEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbjo6
bm90aWZ5T25lKCkgb3Igbm90aWZ5QWxsKCkuCi0gICAgQXV0b21hdGljVGhyZWFkKGNvbnN0IEFi
c3RyYWN0TG9ja2VyJiwgQm94PFVuY2hlY2tlZExvY2s+LCBSZWY8QXV0b21hdGljVGhyZWFkQ29u
ZGl0aW9uPiYmLCBTZWNvbmRzIHRpbWVvdXQgPSAxMF9zKTsKKyAgICBBdXRvbWF0aWNUaHJlYWQo
Y29uc3QgQWJzdHJhY3RMb2NrZXImLCBCb3g8TG9jaz4sIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25k
aXRpb24+JiYsIFNlY29uZHMgdGltZW91dCA9IDEwX3MpOwogCi0gICAgQXV0b21hdGljVGhyZWFk
KGNvbnN0IEFic3RyYWN0TG9ja2VyJiwgQm94PFVuY2hlY2tlZExvY2s+LCBSZWY8QXV0b21hdGlj
VGhyZWFkQ29uZGl0aW9uPiYmLCBUaHJlYWRUeXBlLCBTZWNvbmRzIHRpbWVvdXQgPSAxMF9zKTsK
KyAgICBBdXRvbWF0aWNUaHJlYWQoY29uc3QgQWJzdHJhY3RMb2NrZXImLCBCb3g8TG9jaz4sIFJl
ZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+JiYsIFRocmVhZFR5cGUsIFNlY29uZHMgdGltZW91
dCA9IDEwX3MpOwogICAgIAogICAgIC8vIFRvIHVuZGVyc3RhbmQgUG9sbFJlc3VsdCBhbmQgV29y
a1Jlc3VsdCwgaW1hZ2luZSB0aGF0IHBvbGwoKSBhbmQgd29yaygpIGFyZSBiZWluZyBjYWxsZWQg
bGlrZQogICAgIC8vIHNvOgpAQCAtMTYyLDcgKzE2Miw3IEBAIHByb3RlY3RlZDoKICAgICAvLyB9
CiAgICAgCiAgICAgZW51bSBjbGFzcyBQb2xsUmVzdWx0IHsgV29yaywgU3RvcCwgV2FpdCB9Owot
ICAgIHZpcnR1YWwgUG9sbFJlc3VsdCBwb2xsKGNvbnN0IEFic3RyYWN0TG9ja2VyJikgPSAwOwor
ICAgIHZpcnR1YWwgUG9sbFJlc3VsdCBwb2xsKGNvbnN0IEFic3RyYWN0TG9ja2VyJikgV1RGX1JF
UVVJUkVTX0xPQ0sobV9sb2NrKSA9IDA7CiAgICAgCiAgICAgZW51bSBjbGFzcyBXb3JrUmVzdWx0
IHsgQ29udGludWUsIFN0b3AgfTsKICAgICB2aXJ0dWFsIFdvcmtSZXN1bHQgd29yaygpID0gMDsK
QEAgLTE4MywxNSArMTgzLDE1IEBAIHByaXZhdGU6CiAgICAgCiAgICAgdm9pZCBzdGFydChjb25z
dCBBYnN0cmFjdExvY2tlciYpOwogICAgIAotICAgIEJveDxVbmNoZWNrZWRMb2NrPiBtX2xvY2s7
CisgICAgQm94PExvY2s+IG1fbG9jazsKICAgICBSZWY8QXV0b21hdGljVGhyZWFkQ29uZGl0aW9u
PiBtX2NvbmRpdGlvbjsKICAgICBTZWNvbmRzIG1fdGltZW91dDsKICAgICBUaHJlYWRUeXBlIG1f
dGhyZWFkVHlwZSB7IFRocmVhZFR5cGU6OlVua25vd24gfTsKICAgICBib29sIG1faXNSdW5uaW5n
IHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9pc1dhaXRpbmcgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9o
YXNVbmRlcmx5aW5nVGhyZWFkIHsgZmFsc2UgfTsKLSAgICBVbmNoZWNrZWRDb25kaXRpb24gbV93
YWl0Q29uZGl0aW9uOwotICAgIFVuY2hlY2tlZENvbmRpdGlvbiBtX2lzUnVubmluZ0NvbmRpdGlv
bjsKKyAgICBDb25kaXRpb24gbV93YWl0Q29uZGl0aW9uOworICAgIENvbmRpdGlvbiBtX2lzUnVu
bmluZ0NvbmRpdGlvbjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1BhcmFs
bGVsSGVscGVyUG9vbC5jcHAKaW5kZXggYzczNDY4NTU5MzE0ZDA5NzAwYmRkOGE1ZDBhNTUyMDFl
MGQ1MGM5Yy4uMmFhMmI4MTM1MjE0ZDczN2E5YzhhMDRkMGY1NWQwMDMzODQ2MjFmNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmNwcAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9QYXJhbGxlbEhlbHBlclBvb2wuY3BwCkBAIC00MSw3ICs0MSw3IEBAIFBhcmFsbGVs
SGVscGVyQ2xpZW50OjpQYXJhbGxlbEhlbHBlckNsaWVudChSZWZQdHI8UGFyYWxsZWxIZWxwZXJQ
b29sPiYmIHBvb2wpCiBQYXJhbGxlbEhlbHBlckNsaWVudDo6flBhcmFsbGVsSGVscGVyQ2xpZW50
KCkKIHsKICAgICBMb2NrZXIgbG9ja2VyIHsgKm1fcG9vbC0+bV9sb2NrIH07Ci0gICAgZmluaXNo
KGxvY2tlcik7CisgICAgZmluaXNoV2l0aExvY2soKTsKIAogICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgbV9wb29sLT5tX2NsaWVudHMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgaWYgKG1fcG9v
bC0+bV9jbGllbnRzW2ldID09IHRoaXMpIHsKQEAgLTYzLDcgKzYzLDcgQEAgdm9pZCBQYXJhbGxl
bEhlbHBlckNsaWVudDo6c2V0VGFzayhSZWZQdHI8U2hhcmVkVGFzazx2b2lkICgpPj4mJiB0YXNr
KQogdm9pZCBQYXJhbGxlbEhlbHBlckNsaWVudDo6ZmluaXNoKCkKIHsKICAgICBMb2NrZXIgbG9j
a2VyIHsgKm1fcG9vbC0+bV9sb2NrIH07Ci0gICAgZmluaXNoKGxvY2tlcik7CisgICAgZmluaXNo
V2l0aExvY2soKTsKIH0KIAogdm9pZCBQYXJhbGxlbEhlbHBlckNsaWVudDo6ZG9Tb21lSGVscGlu
ZygpCkBAIC03MSw3ICs3MSw3IEBAIHZvaWQgUGFyYWxsZWxIZWxwZXJDbGllbnQ6OmRvU29tZUhl
bHBpbmcoKQogICAgIFJlZlB0cjxTaGFyZWRUYXNrPHZvaWQgKCk+PiB0YXNrOwogICAgIHsKICAg
ICAgICAgTG9ja2VyIGxvY2tlciB7ICptX3Bvb2wtPm1fbG9jayB9OwotICAgICAgICB0YXNrID0g
Y2xhaW1UYXNrKGxvY2tlcik7CisgICAgICAgIHRhc2sgPSBjbGFpbVRhc2soKTsKICAgICAgICAg
aWYgKCF0YXNrKQogICAgICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTg2LDE0ICs4NiwxNCBA
QCB2b2lkIFBhcmFsbGVsSGVscGVyQ2xpZW50OjpydW5UYXNrSW5QYXJhbGxlbChSZWZQdHI8U2hh
cmVkVGFzazx2b2lkICgpPj4mJiB0YXNrKQogICAgIGZpbmlzaCgpOwogfQogCi12b2lkIFBhcmFs
bGVsSGVscGVyQ2xpZW50OjpmaW5pc2goY29uc3QgQWJzdHJhY3RMb2NrZXImKQordm9pZCBQYXJh
bGxlbEhlbHBlckNsaWVudDo6ZmluaXNoV2l0aExvY2soKQogewogICAgIG1fdGFzayA9IG51bGxw
dHI7CiAgICAgd2hpbGUgKG1fbnVtQWN0aXZlKQogICAgICAgICBtX3Bvb2wtPm1fd29ya0NvbXBs
ZXRlQ29uZGl0aW9uLndhaXQoKm1fcG9vbC0+bV9sb2NrKTsKIH0KIAotUmVmUHRyPFNoYXJlZFRh
c2s8dm9pZCAoKT4+IFBhcmFsbGVsSGVscGVyQ2xpZW50OjpjbGFpbVRhc2soY29uc3QgQWJzdHJh
Y3RMb2NrZXImKQorUmVmUHRyPFNoYXJlZFRhc2s8dm9pZCAoKT4+IFBhcmFsbGVsSGVscGVyQ2xp
ZW50OjpjbGFpbVRhc2soKQogewogICAgIGlmICghbV90YXNrKQogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKQEAgLTEyMiw3ICsxMjIsNyBAQCB2b2lkIFBhcmFsbGVsSGVscGVyQ2xpZW50OjpydW5U
YXNrKGNvbnN0IFJlZlB0cjxTaGFyZWRUYXNrPHZvaWQgKCk+PiYgdGFzaykKIH0KIAogUGFyYWxs
ZWxIZWxwZXJQb29sOjpQYXJhbGxlbEhlbHBlclBvb2woQ1N0cmluZyYmIHRocmVhZE5hbWUpCi0g
ICAgOiBtX2xvY2soQm94PFVuY2hlY2tlZExvY2s+OjpjcmVhdGUoKSkKKyAgICA6IG1fbG9jayhC
b3g8TG9jaz46OmNyZWF0ZSgpKQogICAgICwgbV93b3JrQXZhaWxhYmxlQ29uZGl0aW9uKEF1dG9t
YXRpY1RocmVhZENvbmRpdGlvbjo6Y3JlYXRlKCkpCiAgICAgLCBtX3RocmVhZE5hbWUoV1RGTW92
ZSh0aHJlYWROYW1lKSkKIHsKQEAgLTE0OCw3ICsxNDgsNyBAQCB2b2lkIFBhcmFsbGVsSGVscGVy
UG9vbDo6ZW5zdXJlVGhyZWFkcyh1bnNpZ25lZCBudW1UaHJlYWRzKQogICAgIGlmIChudW1UaHJl
YWRzIDwgbV9udW1UaHJlYWRzKQogICAgICAgICByZXR1cm47CiAgICAgbV9udW1UaHJlYWRzID0g
bnVtVGhyZWFkczsKLSAgICBpZiAoZ2V0Q2xpZW50V2l0aFRhc2sobG9ja2VyKSkKKyAgICBpZiAo
Z2V0Q2xpZW50V2l0aFRhc2soKSkKICAgICAgICAgZGlkTWFrZVdvcmtBdmFpbGFibGUobG9ja2Vy
KTsKIH0KIApAQCAtMTU4LDEwICsxNTgsMTEgQEAgdm9pZCBQYXJhbGxlbEhlbHBlclBvb2w6OmRv
U29tZUhlbHBpbmcoKQogICAgIFJlZlB0cjxTaGFyZWRUYXNrPHZvaWQgKCk+PiB0YXNrOwogICAg
IHsKICAgICAgICAgTG9ja2VyIGxvY2tlciB7ICptX2xvY2sgfTsKLSAgICAgICAgY2xpZW50ID0g
Z2V0Q2xpZW50V2l0aFRhc2sobG9ja2VyKTsKKyAgICAgICAgY2xpZW50ID0gZ2V0Q2xpZW50V2l0
aFRhc2soKTsKICAgICAgICAgaWYgKCFjbGllbnQpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgIHRhc2sgPSBjbGllbnQtPmNsYWltVGFzayhsb2NrZXIpOworICAgICAgICBhc3NlcnRJc0hl
bGQoKmNsaWVudC0+bV9wb29sLT5tX2xvY2spOworICAgICAgICB0YXNrID0gY2xpZW50LT5jbGFp
bVRhc2soKTsKICAgICB9CiAKICAgICBjbGllbnQtPnJ1blRhc2sodGFzayk7CkBAIC0xODEsMTMg
KzE4MiwxNCBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIFBvbGxSZXN1bHQgcG9s
bChjb25zdCBBYnN0cmFjdExvY2tlciYgbG9ja2VyKSBmaW5hbAorICAgIFBvbGxSZXN1bHQgcG9s
bChjb25zdCBBYnN0cmFjdExvY2tlciYpIGZpbmFsIFdURl9SRVFVSVJFU19MT0NLKCptX3Bvb2wu
bV9sb2NrKQogICAgIHsKICAgICAgICAgaWYgKG1fcG9vbC5tX2lzRHlpbmcpCiAgICAgICAgICAg
ICByZXR1cm4gUG9sbFJlc3VsdDo6U3RvcDsKLSAgICAgICAgbV9jbGllbnQgPSBtX3Bvb2wuZ2V0
Q2xpZW50V2l0aFRhc2sobG9ja2VyKTsKKyAgICAgICAgbV9jbGllbnQgPSBtX3Bvb2wuZ2V0Q2xp
ZW50V2l0aFRhc2soKTsKICAgICAgICAgaWYgKG1fY2xpZW50KSB7Ci0gICAgICAgICAgICBtX3Rh
c2sgPSBtX2NsaWVudC0+Y2xhaW1UYXNrKGxvY2tlcik7CisgICAgICAgICAgICBhc3NlcnRJc0hl
bGQoKm1fY2xpZW50LT5tX3Bvb2wtPm1fbG9jayk7CisgICAgICAgICAgICBtX3Rhc2sgPSBtX2Ns
aWVudC0+Y2xhaW1UYXNrKCk7CiAgICAgICAgICAgICByZXR1cm4gUG9sbFJlc3VsdDo6V29yazsK
ICAgICAgICAgfQogICAgICAgICByZXR1cm4gUG9sbFJlc3VsdDo6V2FpdDsKQEAgLTIxMywxMiAr
MjE1LDEyIEBAIHZvaWQgUGFyYWxsZWxIZWxwZXJQb29sOjpkaWRNYWtlV29ya0F2YWlsYWJsZShj
b25zdCBBYnN0cmFjdExvY2tlciYgbG9ja2VyKQogICAgIG1fd29ya0F2YWlsYWJsZUNvbmRpdGlv
bi0+bm90aWZ5QWxsKGxvY2tlcik7CiB9CiAKLWJvb2wgUGFyYWxsZWxIZWxwZXJQb29sOjpoYXND
bGllbnRXaXRoVGFzayhjb25zdCBBYnN0cmFjdExvY2tlciYgbG9ja2VyKQorYm9vbCBQYXJhbGxl
bEhlbHBlclBvb2w6Omhhc0NsaWVudFdpdGhUYXNrKCkKIHsKLSAgICByZXR1cm4gISFnZXRDbGll
bnRXaXRoVGFzayhsb2NrZXIpOworICAgIHJldHVybiAhIWdldENsaWVudFdpdGhUYXNrKCk7CiB9
CiAKLVBhcmFsbGVsSGVscGVyQ2xpZW50KiBQYXJhbGxlbEhlbHBlclBvb2w6OmdldENsaWVudFdp
dGhUYXNrKGNvbnN0IEFic3RyYWN0TG9ja2VyJikKK1BhcmFsbGVsSGVscGVyQ2xpZW50KiBQYXJh
bGxlbEhlbHBlclBvb2w6OmdldENsaWVudFdpdGhUYXNrKCkKIHsKICAgICAvLyBXZSBsb2FkLWJh
bGFuY2UgYnkgYmVpbmcgcmFuZG9tLgogICAgIHVuc2lnbmVkIHN0YXJ0SW5kZXggPSBtX3JhbmRv
bS5nZXRVaW50MzIobV9jbGllbnRzLnNpemUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi9QYXJhbGxlbEhlbHBlclBvb2wuaCBiL1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSGVscGVyUG9v
bC5oCmluZGV4IDY2NGZhZGU4NTM5OTNhYjRiMDU5NTQ4NzIyMTRmMzg3YzlhNmQwNTMuLjQ3YTRm
MzE2ZjFlNTU2ZmY2MTJlOGQ0Y2Q2Y2M5YjU2NmI2YTBiMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVs
SGVscGVyUG9vbC5oCkBAIC02Miw3ICs2Miw0MSBAQCBjbGFzcyBBdXRvbWF0aWNUaHJlYWRDb25k
aXRpb247CiAvLyBhIHRhc2sgYXQgcmFuZG9tLiBTbyBsb25nIGFzIGFueSBjbGllbnQgaGFzIGEg
dGFzaywgYWxsIHRocmVhZHMgaW4gdGhlIHBvb2wgd2lsbCBjb250aW51ZQogLy8gcnVubmluZyB0
aGUgYXZhaWxhYmxlIHRhc2tzLiBUaHJlYWRzIGdvIGlkbGUgd2hlbiBubyBjbGllbnQgaGFzIHRh
c2tzIHRvIHJ1bi4KIAotY2xhc3MgUGFyYWxsZWxIZWxwZXJQb29sOworY2xhc3MgUGFyYWxsZWxI
ZWxwZXJDbGllbnQ7CisKK2NsYXNzIFBhcmFsbGVsSGVscGVyUG9vbCA6IHB1YmxpYyBUaHJlYWRT
YWZlUmVmQ291bnRlZDxQYXJhbGxlbEhlbHBlclBvb2w+IHsKK3B1YmxpYzoKKyAgICBXVEZfRVhQ
T1JUX1BSSVZBVEUgUGFyYWxsZWxIZWxwZXJQb29sKENTdHJpbmcmJiB0aHJlYWROYW1lKTsKKyAg
ICBXVEZfRVhQT1JUX1BSSVZBVEUgflBhcmFsbGVsSGVscGVyUG9vbCgpOworCisgICAgV1RGX0VY
UE9SVF9QUklWQVRFIHZvaWQgZW5zdXJlVGhyZWFkcyh1bnNpZ25lZCBudW1UaHJlYWRzKTsKKwor
ICAgIHVuc2lnbmVkIG51bWJlck9mVGhyZWFkcygpIGNvbnN0IHsgcmV0dXJuIG1fbnVtVGhyZWFk
czsgfQorICAgIAorICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGRvU29tZUhlbHBpbmcoKTsK
KworcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgUGFyYWxsZWxIZWxwZXJDbGllbnQ7CisgICAg
Y2xhc3MgVGhyZWFkOworICAgIGZyaWVuZCBjbGFzcyBUaHJlYWQ7CisKKyAgICB2b2lkIGRpZE1h
a2VXb3JrQXZhaWxhYmxlKGNvbnN0IEFic3RyYWN0TG9ja2VyJikgV1RGX1JFUVVJUkVTX0xPQ0so
bV9sb2NrKTsKKworICAgIGJvb2wgaGFzQ2xpZW50V2l0aFRhc2soKSBXVEZfUkVRVUlSRVNfTE9D
SyhtX2xvY2spOworICAgIFBhcmFsbGVsSGVscGVyQ2xpZW50KiBnZXRDbGllbnRXaXRoVGFzaygp
IFdURl9SRVFVSVJFU19MT0NLKG1fbG9jayk7CisgICAgCisgICAgQm94PExvY2s+IG1fbG9jazsg
Ly8gQXV0b21hdGljVGhyZWFkIHdhbnRzIHRoaXMgaW4gYSBib3ggZm9yIHNhZmV0eS4KKyAgICBS
ZWY8QXV0b21hdGljVGhyZWFkQ29uZGl0aW9uPiBtX3dvcmtBdmFpbGFibGVDb25kaXRpb247Cisg
ICAgQ29uZGl0aW9uIG1fd29ya0NvbXBsZXRlQ29uZGl0aW9uOworCisgICAgV2Vha1JhbmRvbSBt
X3JhbmRvbTsKKyAgICAKKyAgICBWZWN0b3I8UGFyYWxsZWxIZWxwZXJDbGllbnQqPiBtX2NsaWVu
dHMgV1RGX0dVQVJERURfQllfTE9DSygqbV9sb2NrKTsKKyAgICBWZWN0b3I8UmVmUHRyPEF1dG9t
YXRpY1RocmVhZD4+IG1fdGhyZWFkczsKKyAgICBDU3RyaW5nIG1fdGhyZWFkTmFtZTsKKyAgICB1
bnNpZ25lZCBtX251bVRocmVhZHMgeyAwIH07IC8vIFRoaXMgY2FuIGJlIGxhcmdlciB0aGFuIG1f
dGhyZWFkcy5zaXplKCkgYmVjYXVzZSB3ZSBzdGFydCB0aHJlYWRzIG9ubHkgb25jZSB0aGVyZSBp
cyB3b3JrLgorICAgIGJvb2wgbV9pc0R5aW5nIHsgZmFsc2UgfTsKK307CiAKIC8vIEEgY2xpZW50
IGlzIGEgcGxhY2Vob2xkZXIgZm9yIGEgcGFyYWxsZWwgYWxnb3JpdGhtLiBBIHBhcmFsbGVsIGFs
Z29yaXRobSB3aWxsIGhhdmUgYSB0YXNrIHRoYXQKIC8vIGNhbiBiZSBydW4gY29uY3VycmVudGx5
LiBXaGVuZXZlciBhIGNsaWVudCBoYXMgYSB0YXNrIHNldCAoeW91IGhhdmUgY2FsbGVkIHNldFRh
c2soKSBvcgpAQCAtMTQxLDcgKzE3NSw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHNldFRh
c2soY3JlYXRlU2hhcmVkVGFzazx2b2lkICgpPihmdW5jdG9yKSk7CiAgICAgfQotICAgIAorCiAg
ICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgZmluaXNoKCk7CiAKICAgICBXVEZfRVhQT1JUX1BS
SVZBVEUgdm9pZCBkb1NvbWVIZWxwaW5nKCk7CkBAIC0xNjgsNTAgKzIwMiwxNSBAQCBwdWJsaWM6
CiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBQYXJhbGxlbEhlbHBlclBvb2w7CiAKLSAgICB2
b2lkIGZpbmlzaChjb25zdCBBYnN0cmFjdExvY2tlciYpOwotICAgIFJlZlB0cjxTaGFyZWRUYXNr
PHZvaWQgKCk+PiBjbGFpbVRhc2soY29uc3QgQWJzdHJhY3RMb2NrZXImKTsKKyAgICB2b2lkIGZp
bmlzaFdpdGhMb2NrKCkgV1RGX1JFUVVJUkVTX0xPQ0soKm1fcG9vbC0+bV9sb2NrKTsKKyAgICBS
ZWZQdHI8U2hhcmVkVGFzazx2b2lkICgpPj4gY2xhaW1UYXNrKCkgV1RGX1JFUVVJUkVTX0xPQ0so
Km1fcG9vbC0+bV9sb2NrKTsKICAgICB2b2lkIHJ1blRhc2soY29uc3QgUmVmUHRyPFNoYXJlZFRh
c2s8dm9pZCAoKT4+Jik7Ci0gICAgCisKICAgICBSZWZQdHI8UGFyYWxsZWxIZWxwZXJQb29sPiBt
X3Bvb2w7CiAgICAgUmVmUHRyPFNoYXJlZFRhc2s8dm9pZCAoKT4+IG1fdGFzazsKICAgICB1bnNp
Z25lZCBtX251bUFjdGl2ZSB7IDAgfTsKIH07CiAKLWNsYXNzIFBhcmFsbGVsSGVscGVyUG9vbCA6
IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxQYXJhbGxlbEhlbHBlclBvb2w+IHsKLXB1Ymxp
YzoKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgUGFyYWxsZWxIZWxwZXJQb29sKENTdHJpbmcmJiB0
aHJlYWROYW1lKTsKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgflBhcmFsbGVsSGVscGVyUG9vbCgp
OwotCi0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgZW5zdXJlVGhyZWFkcyh1bnNpZ25lZCBu
dW1UaHJlYWRzKTsKLQotICAgIHVuc2lnbmVkIG51bWJlck9mVGhyZWFkcygpIGNvbnN0IHsgcmV0
dXJuIG1fbnVtVGhyZWFkczsgfQotICAgIAotICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGRv
U29tZUhlbHBpbmcoKTsKLQotcHJpdmF0ZToKLSAgICBmcmllbmQgY2xhc3MgUGFyYWxsZWxIZWxw
ZXJDbGllbnQ7Ci0gICAgY2xhc3MgVGhyZWFkOwotICAgIGZyaWVuZCBjbGFzcyBUaHJlYWQ7Ci0K
LSAgICB2b2lkIGRpZE1ha2VXb3JrQXZhaWxhYmxlKGNvbnN0IEFic3RyYWN0TG9ja2VyJik7Ci0K
LSAgICBib29sIGhhc0NsaWVudFdpdGhUYXNrKGNvbnN0IEFic3RyYWN0TG9ja2VyJik7Ci0gICAg
UGFyYWxsZWxIZWxwZXJDbGllbnQqIGdldENsaWVudFdpdGhUYXNrKGNvbnN0IEFic3RyYWN0TG9j
a2VyJik7Ci0gICAgUGFyYWxsZWxIZWxwZXJDbGllbnQqIHdhaXRGb3JDbGllbnRXaXRoVGFzayhj
b25zdCBBYnN0cmFjdExvY2tlciYpOwotICAgIAotICAgIEJveDxVbmNoZWNrZWRMb2NrPiBtX2xv
Y2s7IC8vIEF1dG9tYXRpY1RocmVhZCB3YW50cyB0aGlzIGluIGEgYm94IGZvciBzYWZldHkuCi0g
ICAgUmVmPEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbj4gbV93b3JrQXZhaWxhYmxlQ29uZGl0aW9u
OwotICAgIFVuY2hlY2tlZENvbmRpdGlvbiBtX3dvcmtDb21wbGV0ZUNvbmRpdGlvbjsKLQotICAg
IFdlYWtSYW5kb20gbV9yYW5kb207Ci0gICAgCi0gICAgVmVjdG9yPFBhcmFsbGVsSGVscGVyQ2xp
ZW50Kj4gbV9jbGllbnRzOwotICAgIFZlY3RvcjxSZWZQdHI8QXV0b21hdGljVGhyZWFkPj4gbV90
aHJlYWRzOwotICAgIENTdHJpbmcgbV90aHJlYWROYW1lOwotICAgIHVuc2lnbmVkIG1fbnVtVGhy
ZWFkcyB7IDAgfTsgLy8gVGhpcyBjYW4gYmUgbGFyZ2VyIHRoYW4gbV90aHJlYWRzLnNpemUoKSBi
ZWNhdXNlIHdlIHN0YXJ0IHRocmVhZHMgb25seSBvbmNlIHRoZXJlIGlzIHdvcmsuCi0gICAgYm9v
bCBtX2lzRHlpbmcgeyBmYWxzZSB9OwotfTsKLQogfSAvLyBuYW1lc3BhY2UgV1RGCiAKIHVzaW5n
IFdURjo6UGFyYWxsZWxIZWxwZXJDbGllbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9X
b3JrZXJQb29sLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1dvcmtlclBvb2wuY3BwCmluZGV4IDIxOWRi
ZjE1MWQ2NjM3YzY3YTNlNDc2ZmQxM2UzZDFiODhiNDM1N2EuLjhhOWMxZmRhNzRhNzNiMmM1YWI1
Y2RhMmQ4ZTQ2MDlhYmU4MGEzMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1dvcmtlclBv
b2wuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1dvcmtlclBvb2wuY3BwCkBAIC0zMiw3ICszMiw3
IEBAIGNsYXNzIFdvcmtlclBvb2w6OldvcmtlciBmaW5hbCA6IHB1YmxpYyBBdXRvbWF0aWNUaHJl
YWQgewogcHVibGljOgogICAgIGZyaWVuZCBjbGFzcyBXb3JrZXJQb29sOwogCi0gICAgV29ya2Vy
KGNvbnN0IEFic3RyYWN0TG9ja2VyJiBsb2NrZXIsIFdvcmtlclBvb2wmIHBvb2wsIEJveDxVbmNo
ZWNrZWRMb2NrPiBsb2NrLCBSZWY8QXV0b21hdGljVGhyZWFkQ29uZGl0aW9uPiYmIGNvbmRpdGlv
biwgU2Vjb25kcyB0aW1lb3V0KQorICAgIFdvcmtlcihjb25zdCBBYnN0cmFjdExvY2tlciYgbG9j
a2VyLCBXb3JrZXJQb29sJiBwb29sLCBCb3g8TG9jaz4gbG9jaywgUmVmPEF1dG9tYXRpY1RocmVh
ZENvbmRpdGlvbj4mJiBjb25kaXRpb24sIFNlY29uZHMgdGltZW91dCkKICAgICAgICAgOiBBdXRv
bWF0aWNUaHJlYWQobG9ja2VyLCBsb2NrLCBXVEZNb3ZlKGNvbmRpdGlvbiksIHRpbWVvdXQpCiAg
ICAgICAgICwgbV9wb29sKHBvb2wpCiAgICAgewpAQCAtODIsNyArODIsNyBAQCBwcml2YXRlOgog
fTsKIAogV29ya2VyUG9vbDo6V29ya2VyUG9vbChBU0NJSUxpdGVyYWwgbmFtZSwgdW5zaWduZWQg
bnVtYmVyT2ZXb3JrZXJzLCBTZWNvbmRzIHRpbWVvdXQpCi0gICAgOiBtX2xvY2soQm94PFVuY2hl
Y2tlZExvY2s+OjpjcmVhdGUoKSkKKyAgICA6IG1fbG9jayhCb3g8TG9jaz46OmNyZWF0ZSgpKQog
ICAgICwgbV9jb25kaXRpb24oQXV0b21hdGljVGhyZWFkQ29uZGl0aW9uOjpjcmVhdGUoKSkKICAg
ICAsIG1fdGltZW91dCh0aW1lb3V0KQogICAgICwgbV9uYW1lKG5hbWUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9Xb3JrZXJQb29sLmggYi9Tb3VyY2UvV1RGL3d0Zi9Xb3JrZXJQb29sLmgK
aW5kZXggN2E0MDQyYjQ2YjE2ODgwMjNmMWNlZjllNjQyYWIyYzQ4Yzg4OTNkOS4uNjIzNWU3MzFl
ZDc1YjgwMTI1MDk1MzU5MDY4YjA4ZDRjMWRjZmVjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvV29ya2VyUG9vbC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1dvcmtlclBvb2wuaApAQCAtNTcs
NyArNTcsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBzaG91bGRTbGVlcChjb25zdCBBYnN0cmFj
dExvY2tlciYpOwogCi0gICAgQm94PFVuY2hlY2tlZExvY2s+IG1fbG9jazsKKyAgICBCb3g8TG9j
az4gbV9sb2NrOwogICAgIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+IG1fY29uZGl0aW9u
OwogICAgIFNlY29uZHMgbV90aW1lb3V0OwogICAgIE1vbm90b25pY1RpbWUgbV9sYXN0VGltZW91
dFRpbWUgeyBNb25vdG9uaWNUaW1lOjpuYW4oKSB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429767</attachid>
            <date>2021-05-26 09:42:46 -0700</date>
            <delta_ts>2021-05-26 09:46:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226255-20210526094245.patch</filename>
            <type>text/plain</type>
            <size>21413</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MDg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
OThlZTIyMTY1NzQ2NDY0NjFjYWZjNzJlNGE2NjFiY2RhNDA1NzQxLi4xOWRjMDVkMjMyMWM4YmQz
YzU0MDM3NGU4NTQ3ZGI0ODkxZWNmNmNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOSBAQAorMjAyMS0wNS0yNiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFN0b3AgdXNpbmcgVW5jaGVja2VkTG9jayBpbiBXVEY6OkF1dG9tYXRpY1RocmVh
ZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MjU1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgS2VpdGggTWlsbGVyLgorCisgICAgICAgIFNvbWUgY29k
ZSBpbiBKU0MgaGFkIHRvIGJlIHBvcnRlZCBmcm9tIFVuY2hlY2tlZExvY2sgdG8gTG9jayBhcyBh
IHJlc3VsdCBvZgorICAgICAgICBXVEY6OkF1dG9tYXRpY1RocmVhZCB1c2luZyB0aGUgTG9jayB0
eXBlLgorCisgICAgICAgICogZGZnL0RGR1dvcmtsaXN0LmNwcDoKKyAgICAgICAgKEpTQzo6REZH
OjpXb3JrbGlzdDo6V29ya2xpc3QpOgorICAgICAgICAqIGRmZy9ERkdXb3JrbGlzdC5oOgorICAg
ICAgICAqIGhlYXAvSGVhcC5jcHA6CisgICAgICAgIChKU0M6OkhlYXA6OkhlYXApOgorICAgICAg
ICAqIGhlYXAvSGVhcC5oOgorICAgICAgICAqIGppdC9KSVRXb3JrbGlzdC5jcHA6CisgICAgICAg
IChKU0M6OkpJVFdvcmtsaXN0OjpKSVRXb3JrbGlzdCk6CisgICAgICAgICogaml0L0pJVFdvcmts
aXN0Lmg6CisgICAgICAgICogcnVudGltZS9WTVRyYXBzLmNwcDoKKyAgICAgICAgKEpTQzo6Vk1U
cmFwczo6Vk1UcmFwcyk6CisgICAgICAgICogcnVudGltZS9WTVRyYXBzLmg6CisgICAgICAgICog
d2FzbS9XYXNtV29ya2xpc3QuY3BwOgorICAgICAgICAoSlNDOjpXYXNtOjpXb3JrbGlzdDo6V29y
a2xpc3QpOgorICAgICAgICAqIHdhc20vV2FzbVdvcmtsaXN0Lmg6CisKIDIwMjEtMDUtMjYgIFRh
ZGV1IFphZ2FsbG8gIDx0emFnYWxsb0BhcHBsZS5jb20+CiAKICAgICAgICAgTWVyZ2UgYWxsIHRo
ZSBKSVQgd29ya2xpc3RzIGludG8gYSBzaGFyZWQgd29ya2xpc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggYjVmMmZjYWYzZjA5
N2ZkNjg5MDg1ZWFiYjcyYTJmMWRhMWFkMzJmOC4uY2M1MDcxNTBjY2Q5MGJlMGE0ZWYyYTk4ZmEz
NjA3YzkwMjBjMWU0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAyMS0wNS0yNiAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFN0b3AgdXNpbmcgVW5jaGVja2VkTG9j
ayBpbiBXVEY6OkF1dG9tYXRpY1RocmVhZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MjU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgS2VpdGggTWls
bGVyLgorCisgICAgICAgIFN0b3AgdXNpbmcgVW5jaGVja2VkTG9jayBpbiBXVEY6OkF1dG9tYXRp
Y1RocmVhZCBhcyBpdCBpcyBiZWluZyBwaGFzZWQgb3V0IGluIGZhdm9yIG9mCisgICAgICAgIExv
Y2ssIHdoaWNoIHN1cHBvcnRzIENsYW5nIHRocmVhZCBzYWZldHkgYW5hbHlzaXMuCisKKyAgICAg
ICAgKiB3dGYvQXV0b21hdGljVGhyZWFkLmNwcDoKKyAgICAgICAgKFdURjo6QXV0b21hdGljVGhy
ZWFkQ29uZGl0aW9uOjp3YWl0KToKKyAgICAgICAgKFdURjo6QXV0b21hdGljVGhyZWFkQ29uZGl0
aW9uOjp3YWl0Rm9yKToKKyAgICAgICAgKFdURjo6QXV0b21hdGljVGhyZWFkOjpBdXRvbWF0aWNU
aHJlYWQpOgorICAgICAgICAqIHd0Zi9BdXRvbWF0aWNUaHJlYWQuaDoKKyAgICAgICAgKiB3dGYv
UGFyYWxsZWxIZWxwZXJQb29sLmNwcDoKKyAgICAgICAgKFdURjo6UGFyYWxsZWxIZWxwZXJDbGll
bnQ6On5QYXJhbGxlbEhlbHBlckNsaWVudCk6CisgICAgICAgIChXVEY6OlBhcmFsbGVsSGVscGVy
Q2xpZW50OjpmaW5pc2gpOgorICAgICAgICAoV1RGOjpQYXJhbGxlbEhlbHBlckNsaWVudDo6Zmlu
aXNoV2l0aExvY2spOgorICAgICAgICAoV1RGOjpQYXJhbGxlbEhlbHBlclBvb2w6OlBhcmFsbGVs
SGVscGVyUG9vbCk6CisgICAgICAgICogd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5oOgorICAgICAg
ICAoV1RGOjpQYXJhbGxlbEhlbHBlclBvb2w6Om51bWJlck9mVGhyZWFkcyBjb25zdCk6CisgICAg
ICAgICogd3RmL1dvcmtlclBvb2wuY3BwOgorICAgICAgICAoV1RGOjpXb3JrZXJQb29sOjpXb3Jr
ZXJQb29sKToKKyAgICAgICAgKiB3dGYvV29ya2VyUG9vbC5oOgorCiAyMDIxLTA1LTI1ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIFVuY2hlY2tlZExvY2sg
bGVzcyBpbiBKYXZhU2NyaXB0Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvSGVhcC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAppbmRl
eCBlZTI2ZjE3Yzk0ZDFhOGZlNjk0YmIxZTQzZDAyYTFmYTY0NDBjYzc4Li5hNzFiNzAyZjZmNmJj
MGNjMDhlYThjM2MxM2UxODA4ODQ0ZWU5ZTQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9IZWFwLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFw
LmNwcApAQCAtMzAxLDcgKzMwMSw3IEBAIEhlYXA6OkhlYXAoVk0mIHZtLCBIZWFwVHlwZSBoZWFw
VHlwZSkKICAgICAsIG1fc2hhcmVkQ29sbGVjdG9yTWFya1N0YWNrKG1ha2VVbmlxdWU8TWFya1N0
YWNrQXJyYXk+KCkpCiAgICAgLCBtX3NoYXJlZE11dGF0b3JNYXJrU3RhY2sobWFrZVVuaXF1ZTxN
YXJrU3RhY2tBcnJheT4oKSkKICAgICAsIG1faGVscGVyQ2xpZW50KCZoZWFwSGVscGVyUG9vbCgp
KQotICAgICwgbV90aHJlYWRMb2NrKEJveDxVbmNoZWNrZWRMb2NrPjo6Y3JlYXRlKCkpCisgICAg
LCBtX3RocmVhZExvY2soQm94PExvY2s+OjpjcmVhdGUoKSkKICAgICAsIG1fdGhyZWFkQ29uZGl0
aW9uKEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbjo6Y3JlYXRlKCkpCiB7CiAgICAgbV93b3JsZFN0
YXRlLnN0b3JlKDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVh
cC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCmluZGV4IGUyNzFlZjYzMTY4
NDdhMTIyODMyN2JiOGQ1MDM1ZmY0MDA0NmM4Y2UuLmMyYmVjNzc5MmI5NWViYTFmYTJkMWZiMGZl
Y2MxMWVkMjczOTFhNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hl
YXAuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgKQEAgLTc0MCw3ICs3
NDAsNyBAQCBwcml2YXRlOgogCiAgICAgdWludDY0X3QgbV9tdXRhdG9yRXhlY3V0aW9uVmVyc2lv
biB7IDAgfTsKICAgICB1aW50NjRfdCBtX3BoYXNlVmVyc2lvbiB7IDAgfTsKLSAgICBCb3g8VW5j
aGVja2VkTG9jaz4gbV90aHJlYWRMb2NrOworICAgIEJveDxMb2NrPiBtX3RocmVhZExvY2s7CiAg
ICAgUmVmPEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbj4gbV90aHJlYWRDb25kaXRpb247IC8vIFRo
ZSBtdXRhdG9yIG11c3Qgbm90IHdhaXQgb24gdGhpcy4gSXQgd291bGQgY2F1c2UgYSBkZWFkbG9j
ay4KICAgICBSZWZQdHI8QXV0b21hdGljVGhyZWFkPiBtX3RocmVhZDsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRXb3JrbGlzdC5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVFdvcmtsaXN0LmNwcAppbmRleCA5NzhiZGQ0MWJmYmM4YzI0MDJjMGI4
MWFhOTY4ZWNlZmZmY2U4NzJiLi4yYWE0ZWQ0MWE2MTM3ZmZiYjc3OGY2Y2NlNDIwZTM4ZGZkYjJj
NTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFdvcmtsaXN0LmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFdvcmtsaXN0LmNwcApAQCAtMzcs
NyArMzcsNyBAQAogbmFtZXNwYWNlIEpTQyB7CiAKIEpJVFdvcmtsaXN0OjpKSVRXb3JrbGlzdCgp
Ci0gICAgOiBtX2xvY2soQm94PFVuY2hlY2tlZExvY2s+OjpjcmVhdGUoKSkKKyAgICA6IG1fbG9j
ayhCb3g8TG9jaz46OmNyZWF0ZSgpKQogICAgICwgbV9wbGFuRW5xdWV1ZWQoQXV0b21hdGljVGhy
ZWFkQ29uZGl0aW9uOjpjcmVhdGUoKSkKIHsKICAgICBtX21heGltdW1OdW1iZXJPZkNvbmN1cnJl
bnRDb21waWxhdGlvbnNQZXJUaWVyID0gewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRXb3JrbGlzdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRXb3Jr
bGlzdC5oCmluZGV4IDljNmE5MDM4YzlkMDkzMDI2OGJiMTk4NzViNzJkM2QzNDAzMzczYjAuLmY0
YTYyOWRjYjYxNTE0YzU1Y2I1MDI0MzdkNjdkZmJkZTNkMGNhNWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUV29ya2xpc3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVFdvcmtsaXN0LmgKQEAgLTExOSwxMCArMTE5LDEwIEBAIHByaXZhdGU6CiAg
ICAgVmVjdG9yPFJlZlB0cjxKSVRQbGFuPiwgMTY+IG1fcmVhZHlQbGFuczsKIAogICAgIFVuY2hl
Y2tlZExvY2sgbV9zdXNwZW5zaW9uTG9jazsKLSAgICBCb3g8VW5jaGVja2VkTG9jaz4gbV9sb2Nr
OworICAgIEJveDxMb2NrPiBtX2xvY2s7CiAKICAgICBSZWY8QXV0b21hdGljVGhyZWFkQ29uZGl0
aW9uPiBtX3BsYW5FbnF1ZXVlZDsKLSAgICBVbmNoZWNrZWRDb25kaXRpb24gbV9wbGFuQ29tcGls
ZWQ7CisgICAgQ29uZGl0aW9uIG1fcGxhbkNvbXBpbGVkOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
SlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTVRyYXBzLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNVHJhcHMuY3BwCmluZGV4IDU3ZGIz
MTljZWNmYjczNzE5N2UyNmQ5Y2RkMmRiN2E1OGJiMDhjNjcuLjBkYzdlM2I3NzNhMzRmNDU1NTlk
MTllYTgzMDI4MjU0OWNmN2NmYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1ZNVHJhcHMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZN
VHJhcHMuY3BwCkBAIC00MzcsNyArNDM3LDcgQEAgdm9pZCBWTVRyYXBzOjp1bmRvRGVmZXJUZXJt
aW5hdGlvblNsb3coRGVmZXJBY3Rpb24gZGVmZXJBY3Rpb24pCiB9CiAKIFZNVHJhcHM6OlZNVHJh
cHMoKQotICAgIDogbV9sb2NrKEJveDxVbmNoZWNrZWRMb2NrPjo6Y3JlYXRlKCkpCisgICAgOiBt
X2xvY2soQm94PExvY2s+OjpjcmVhdGUoKSkKICAgICAsIG1fY29uZGl0aW9uKEF1dG9tYXRpY1Ro
cmVhZENvbmRpdGlvbjo6Y3JlYXRlKCkpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9WTVRyYXBzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9WTVRyYXBzLmgKaW5kZXggNWQxNWM5MmY3MDQxNzUxZDgwNGU0YzU3MmE1NTMwMTA3YmZlNDJk
Yy4uZDk0YzgwNmIxYmU4ZDc0MzRlMDNlMzJjZTAwYmIyNDMxZDg0YmFlNyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1UcmFwcy5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1ZNVHJhcHMuaApAQCAtMjQ3LDcgKzI0Nyw3IEBAIHByaXZhdGU6
CiAKICAgICBzdGF0aWMgY29uc3RleHByIEJpdEZpZWxkIE5lZWRFeGNlcHRpb25IYW5kbGluZ01h
c2sgPSB+KDEgPDwgTmVlZEV4Y2VwdGlvbkhhbmRsaW5nKTsKIAotICAgIEJveDxVbmNoZWNrZWRM
b2NrPiBtX2xvY2s7CisgICAgQm94PExvY2s+IG1fbG9jazsKICAgICBSZWY8QXV0b21hdGljVGhy
ZWFkQ29uZGl0aW9uPiBtX2NvbmRpdGlvbjsKICAgICBBdG9taWM8Qml0RmllbGQ+IG1fdHJhcEJp
dHMgeyAwIH07CiAgICAgYm9vbCBtX25lZWRUb0ludmFsaWRhdGVkQ29kZUJsb2NrcyB7IGZhbHNl
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtV29ya2xpc3Qu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVdvcmtsaXN0LmNwcAppbmRleCAz
ODk4ZWNhYjRjMDg4N2UyNWEwYTM0ODFiNDExYjhmNjdjMWViYzI5Li41YmFkMGQ5MGE1NjJlMjVk
ZGU4MTdiNTgyYzA2MDY2NTZjOTA2ZWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtV29ya2xpc3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21Xb3JrbGlzdC5jcHAKQEAgLTEyOCw3ICsxMjgsNyBAQCBwcml2YXRlOgogICAgIH0KIAog
cHVibGljOgotICAgIFVuY2hlY2tlZENvbmRpdGlvbiBzeW5jaHJvbml6ZTsKKyAgICBDb25kaXRp
b24gc3luY2hyb25pemU7CiAgICAgV29ya2xpc3QmIHdvcmtsaXN0OwogICAgIC8vIFdlIGNhbiBv
bmx5IG1vZGlmeSBlbGVtZW50IHdoZW4gaG9sZGluZyB0aGUgbG9jay4gQSBzeW5jaHJvbm91cyBj
b21waWxlIG1pZ2h0IGxvb2sgYXQgZWFjaCB0aHJlYWQncyB0YXNrcyBpbiBvcmRlciB0byBib29z
dCB0aGUgcHJpb3JpdHkuCiAgICAgUXVldWVFbGVtZW50IGVsZW1lbnQ7CkBAIC0yMTMsNyArMjEz
LDcgQEAgdm9pZCBXb3JrbGlzdDo6c3RvcEFsbFBsYW5zRm9yQ29udGV4dChDb250ZXh0JiBjb250
ZXh0KQogfQogCiBXb3JrbGlzdDo6V29ya2xpc3QoKQotICAgIDogbV9sb2NrKEJveDxVbmNoZWNr
ZWRMb2NrPjo6Y3JlYXRlKCkpCisgICAgOiBtX2xvY2soQm94PExvY2s+OjpjcmVhdGUoKSkKICAg
ICAsIG1fcGxhbkVucXVldWVkKEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbjo6Y3JlYXRlKCkpCiB7
CiAgICAgdW5zaWduZWQgbnVtYmVyT2ZDb21waWxhdGlvblRocmVhZHMgPSBPcHRpb25zOjp1c2VD
b25jdXJyZW50SklUKCkgPyBrZXJuVENTTUF3YXJlTnVtYmVyT2ZQcm9jZXNzb3JDb3JlcygpIDog
MTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Xb3JrbGlzdC5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVdvcmtsaXN0LmgKaW5kZXggNDVhNmZi
YjZjZjlhODUzYzI4MWZkYmJhY2Q1NmZiZWRkMWZhNTljZi4uNTZkNzlhMGU5ODlhNjAyZjIxMzNk
MDMwOTBmZGJjYzYzN2M5NTYzOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vV2FzbVdvcmtsaXN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVdv
cmtsaXN0LmgKQEAgLTg0LDcgKzg0LDcgQEAgcHJpdmF0ZToKICAgICAgICAgcmV0dXJuIGxlZnQu
cHJpb3JpdHkgPiByaWdodC5wcmlvcml0eTsKICAgICB9CiAKLSAgICBCb3g8VW5jaGVja2VkTG9j
az4gbV9sb2NrOworICAgIEJveDxMb2NrPiBtX2xvY2s7CiAgICAgUmVmPEF1dG9tYXRpY1RocmVh
ZENvbmRpdGlvbj4gbV9wbGFuRW5xdWV1ZWQ7CiAgICAgLy8gVGVjaG5pY2FsbHksIHRoaXMgY291
bGQgb3ZlcmZsb3cgYnV0IHRoYXQncyB1bmxpa2VseS4gRXZlbiBpZiBpdCBkaWQsIHdlIHdpbGwg
anVzdCBjb21waWxlIHRoaW5ncyBvZiB0aGUgc2FtZQogICAgIC8vIFByaW9yaXR5IGl0IHRoZSB3
cm9uZyBvcmRlciwgd2hpY2ggaXNuJ3Qgd3JvbmcsIGp1c3Qgc3Vib3B0aW1hbC4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL0F1dG9tYXRpY1RocmVhZC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9B
dXRvbWF0aWNUaHJlYWQuY3BwCmluZGV4IDNjNWJlNTEzYzI2M2NhOGI0ZGE2YjdjMjZjNmY4Mzcz
OWRhMzFlMGMuLmY0ZWE3OGQxM2UxY2RkYjYxOWI4MjI4NjhkMzNjNzI3YzlmMmY5OGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0F1dG9tYXRpY1RocmVhZC5jcHAKKysrIGIvU291cmNlL1dU
Ri93dGYvQXV0b21hdGljVGhyZWFkLmNwcApAQCAtNzcsMTIgKzc3LDEyIEBAIHZvaWQgQXV0b21h
dGljVGhyZWFkQ29uZGl0aW9uOjpub3RpZnlBbGwoY29uc3QgQWJzdHJhY3RMb2NrZXImIGxvY2tl
cikKICAgICB9CiB9CiAKLXZvaWQgQXV0b21hdGljVGhyZWFkQ29uZGl0aW9uOjp3YWl0KFVuY2hl
Y2tlZExvY2smIGxvY2spCit2b2lkIEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbjo6d2FpdChMb2Nr
JiBsb2NrKQogewogICAgIG1fY29uZGl0aW9uLndhaXQobG9jayk7CiB9CiAKLWJvb2wgQXV0b21h
dGljVGhyZWFkQ29uZGl0aW9uOjp3YWl0Rm9yKFVuY2hlY2tlZExvY2smIGxvY2ssIFNlY29uZHMg
dGltZSkKK2Jvb2wgQXV0b21hdGljVGhyZWFkQ29uZGl0aW9uOjp3YWl0Rm9yKExvY2smIGxvY2ss
IFNlY29uZHMgdGltZSkKIHsKICAgICByZXR1cm4gbV9jb25kaXRpb24ud2FpdEZvcihsb2NrLCB0
aW1lKTsKIH0KQEAgLTEwNCwxMiArMTA0LDEyIEBAIGJvb2wgQXV0b21hdGljVGhyZWFkQ29uZGl0
aW9uOjpjb250YWlucyhjb25zdCBBYnN0cmFjdExvY2tlciYsIEF1dG9tYXRpY1RocmVhZCoKICAg
ICByZXR1cm4gbV90aHJlYWRzLmNvbnRhaW5zKHRocmVhZCk7CiB9CiAKLUF1dG9tYXRpY1RocmVh
ZDo6QXV0b21hdGljVGhyZWFkKGNvbnN0IEFic3RyYWN0TG9ja2VyJiBsb2NrZXIsIEJveDxVbmNo
ZWNrZWRMb2NrPiBsb2NrLCBSZWY8QXV0b21hdGljVGhyZWFkQ29uZGl0aW9uPiYmIGNvbmRpdGlv
biwgU2Vjb25kcyB0aW1lb3V0KQorQXV0b21hdGljVGhyZWFkOjpBdXRvbWF0aWNUaHJlYWQoY29u
c3QgQWJzdHJhY3RMb2NrZXImIGxvY2tlciwgQm94PExvY2s+IGxvY2ssIFJlZjxBdXRvbWF0aWNU
aHJlYWRDb25kaXRpb24+JiYgY29uZGl0aW9uLCBTZWNvbmRzIHRpbWVvdXQpCiAgICAgOiBBdXRv
bWF0aWNUaHJlYWQobG9ja2VyLCBsb2NrLCBXVEZNb3ZlKGNvbmRpdGlvbiksIFRocmVhZFR5cGU6
OlVua25vd24sIHRpbWVvdXQpCiB7CiB9CiAKLUF1dG9tYXRpY1RocmVhZDo6QXV0b21hdGljVGhy
ZWFkKGNvbnN0IEFic3RyYWN0TG9ja2VyJiBsb2NrZXIsIEJveDxVbmNoZWNrZWRMb2NrPiBsb2Nr
LCBSZWY8QXV0b21hdGljVGhyZWFkQ29uZGl0aW9uPiYmIGNvbmRpdGlvbiwgVGhyZWFkVHlwZSB0
eXBlLCBTZWNvbmRzIHRpbWVvdXQpCitBdXRvbWF0aWNUaHJlYWQ6OkF1dG9tYXRpY1RocmVhZChj
b25zdCBBYnN0cmFjdExvY2tlciYgbG9ja2VyLCBCb3g8TG9jaz4gbG9jaywgUmVmPEF1dG9tYXRp
Y1RocmVhZENvbmRpdGlvbj4mJiBjb25kaXRpb24sIFRocmVhZFR5cGUgdHlwZSwgU2Vjb25kcyB0
aW1lb3V0KQogICAgIDogbV9sb2NrKGxvY2spCiAgICAgLCBtX2NvbmRpdGlvbihXVEZNb3ZlKGNv
bmRpdGlvbikpCiAgICAgLCBtX3RpbWVvdXQodGltZW91dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL0F1dG9tYXRpY1RocmVhZC5oIGIvU291cmNlL1dURi93dGYvQXV0b21hdGljVGhyZWFk
LmgKaW5kZXggMDlmY2FmZWYyMzk1OTFiMmUxMmNkZjAyZmRmMDA2Y2NkZDQxMmE2Yi4uMmU4ZmU2
MGI3ZmY0NjE3YWI3YmY2OGYwZWZkNWYyNThhYjYwOGNjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvQXV0b21hdGljVGhyZWFkLmgKKysrIGIvU291cmNlL1dURi93dGYvQXV0b21hdGljVGhy
ZWFkLmgKQEAgLTgxLDggKzgxLDggQEAgcHVibGljOgogICAgIC8vIE9uZSBrbm93bi1nb29kIGNh
c2UgZm9yIG9uZS10cnVlLWNvbmRpdGlvbiBpcyB3aGVuIHRoZSBjb21tdW5pY2F0aW9uIGludm9s
dmVzIGp1c3QgdHdvCiAgICAgLy8gdGhyZWFkcy4gSW4gc3VjaCBjYXNlcywgdGhlIHRocmVhZCBk
b2luZyB0aGUgbm90aWZ5QWxsKCkgY2FuIHdha2UgdXAgYXQgbW9zdCBvbmUgdGhyZWFkIC0KICAg
ICAvLyBpdHMgcGFydG5lci4KLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCB3YWl0KFVuY2hl
Y2tlZExvY2smKTsKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgYm9vbCB3YWl0Rm9yKFVuY2hlY2tl
ZExvY2smLCBTZWNvbmRzKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCB3YWl0KExvY2sm
IGxvY2spIFdURl9SRVFVSVJFU19MT0NLKGxvY2spOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBi
b29sIHdhaXRGb3IoTG9jayYgbG9jaywgU2Vjb25kcykgV1RGX1JFUVVJUkVTX0xPQ0sobG9jayk7
CiAgICAgCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBBdXRvbWF0aWNUaHJlYWQ7CkBAIC05
Myw3ICs5Myw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZW1vdmUoY29uc3QgQWJzdHJhY3RMb2Nr
ZXImLCBBdXRvbWF0aWNUaHJlYWQqKTsKICAgICBib29sIGNvbnRhaW5zKGNvbnN0IEFic3RyYWN0
TG9ja2VyJiwgQXV0b21hdGljVGhyZWFkKik7CiAgICAgCi0gICAgVW5jaGVja2VkQ29uZGl0aW9u
IG1fY29uZGl0aW9uOworICAgIENvbmRpdGlvbiBtX2NvbmRpdGlvbjsKICAgICBWZWN0b3I8QXV0
b21hdGljVGhyZWFkKj4gbV90aHJlYWRzOwogfTsKIApAQCAtMTMxLDkgKzEzMSw5IEBAIHB1Ymxp
YzoKIHByb3RlY3RlZDoKICAgICAvLyBUaGlzIGxvZ2ljYWxseSBjcmVhdGVzIHRoZSB0aHJlYWQs
IGJ1dCBpbiByZWFsaXR5IHRoZSB0aHJlYWQgd29uJ3QgYmUgY3JlYXRlZCB1bnRpbCBzb21lb25l
CiAgICAgLy8gY2FsbHMgQXV0b21hdGljVGhyZWFkQ29uZGl0aW9uOjpub3RpZnlPbmUoKSBvciBu
b3RpZnlBbGwoKS4KLSAgICBBdXRvbWF0aWNUaHJlYWQoY29uc3QgQWJzdHJhY3RMb2NrZXImLCBC
b3g8VW5jaGVja2VkTG9jaz4sIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+JiYsIFNlY29u
ZHMgdGltZW91dCA9IDEwX3MpOworICAgIEF1dG9tYXRpY1RocmVhZChjb25zdCBBYnN0cmFjdExv
Y2tlciYsIEJveDxMb2NrPiwgUmVmPEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbj4mJiwgU2Vjb25k
cyB0aW1lb3V0ID0gMTBfcyk7CiAKLSAgICBBdXRvbWF0aWNUaHJlYWQoY29uc3QgQWJzdHJhY3RM
b2NrZXImLCBCb3g8VW5jaGVja2VkTG9jaz4sIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+
JiYsIFRocmVhZFR5cGUsIFNlY29uZHMgdGltZW91dCA9IDEwX3MpOworICAgIEF1dG9tYXRpY1Ro
cmVhZChjb25zdCBBYnN0cmFjdExvY2tlciYsIEJveDxMb2NrPiwgUmVmPEF1dG9tYXRpY1RocmVh
ZENvbmRpdGlvbj4mJiwgVGhyZWFkVHlwZSwgU2Vjb25kcyB0aW1lb3V0ID0gMTBfcyk7CiAgICAg
CiAgICAgLy8gVG8gdW5kZXJzdGFuZCBQb2xsUmVzdWx0IGFuZCBXb3JrUmVzdWx0LCBpbWFnaW5l
IHRoYXQgcG9sbCgpIGFuZCB3b3JrKCkgYXJlIGJlaW5nIGNhbGxlZCBsaWtlCiAgICAgLy8gc286
CkBAIC0xODMsMTUgKzE4MywxNSBAQCBwcml2YXRlOgogICAgIAogICAgIHZvaWQgc3RhcnQoY29u
c3QgQWJzdHJhY3RMb2NrZXImKTsKICAgICAKLSAgICBCb3g8VW5jaGVja2VkTG9jaz4gbV9sb2Nr
OworICAgIEJveDxMb2NrPiBtX2xvY2s7CiAgICAgUmVmPEF1dG9tYXRpY1RocmVhZENvbmRpdGlv
bj4gbV9jb25kaXRpb247CiAgICAgU2Vjb25kcyBtX3RpbWVvdXQ7CiAgICAgVGhyZWFkVHlwZSBt
X3RocmVhZFR5cGUgeyBUaHJlYWRUeXBlOjpVbmtub3duIH07CiAgICAgYm9vbCBtX2lzUnVubmlu
ZyB7IHRydWUgfTsKICAgICBib29sIG1faXNXYWl0aW5nIHsgZmFsc2UgfTsKICAgICBib29sIG1f
aGFzVW5kZXJseWluZ1RocmVhZCB7IGZhbHNlIH07Ci0gICAgVW5jaGVja2VkQ29uZGl0aW9uIG1f
d2FpdENvbmRpdGlvbjsKLSAgICBVbmNoZWNrZWRDb25kaXRpb24gbV9pc1J1bm5pbmdDb25kaXRp
b247CisgICAgQ29uZGl0aW9uIG1fd2FpdENvbmRpdGlvbjsKKyAgICBDb25kaXRpb24gbV9pc1J1
bm5pbmdDb25kaXRpb247CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9QYXJh
bGxlbEhlbHBlclBvb2wuY3BwCmluZGV4IGM3MzQ2ODU1OTMxNGQwOTcwMGJkZDhhNWQwYTU1MjAx
ZTBkNTBjOWMuLjYxNzMzYjc2N2Q1OTdiOTEzMDIwNWY5OTIxZjViMmJhMzVlM2IzNzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5jcHAKKysrIGIvU291cmNl
L1dURi93dGYvUGFyYWxsZWxIZWxwZXJQb29sLmNwcApAQCAtNDEsNyArNDEsNyBAQCBQYXJhbGxl
bEhlbHBlckNsaWVudDo6UGFyYWxsZWxIZWxwZXJDbGllbnQoUmVmUHRyPFBhcmFsbGVsSGVscGVy
UG9vbD4mJiBwb29sKQogUGFyYWxsZWxIZWxwZXJDbGllbnQ6On5QYXJhbGxlbEhlbHBlckNsaWVu
dCgpCiB7CiAgICAgTG9ja2VyIGxvY2tlciB7ICptX3Bvb2wtPm1fbG9jayB9OwotICAgIGZpbmlz
aChsb2NrZXIpOworICAgIGZpbmlzaFdpdGhMb2NrKCk7CiAKICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IG1fcG9vbC0+bV9jbGllbnRzLnNpemUoKTsgKytpKSB7CiAgICAgICAgIGlmIChtX3Bv
b2wtPm1fY2xpZW50c1tpXSA9PSB0aGlzKSB7CkBAIC02Myw3ICs2Myw3IEBAIHZvaWQgUGFyYWxs
ZWxIZWxwZXJDbGllbnQ6OnNldFRhc2soUmVmUHRyPFNoYXJlZFRhc2s8dm9pZCAoKT4+JiYgdGFz
aykKIHZvaWQgUGFyYWxsZWxIZWxwZXJDbGllbnQ6OmZpbmlzaCgpCiB7CiAgICAgTG9ja2VyIGxv
Y2tlciB7ICptX3Bvb2wtPm1fbG9jayB9OwotICAgIGZpbmlzaChsb2NrZXIpOworICAgIGZpbmlz
aFdpdGhMb2NrKCk7CiB9CiAKIHZvaWQgUGFyYWxsZWxIZWxwZXJDbGllbnQ6OmRvU29tZUhlbHBp
bmcoKQpAQCAtNzEsNyArNzEsNyBAQCB2b2lkIFBhcmFsbGVsSGVscGVyQ2xpZW50Ojpkb1NvbWVI
ZWxwaW5nKCkKICAgICBSZWZQdHI8U2hhcmVkVGFzazx2b2lkICgpPj4gdGFzazsKICAgICB7CiAg
ICAgICAgIExvY2tlciBsb2NrZXIgeyAqbV9wb29sLT5tX2xvY2sgfTsKLSAgICAgICAgdGFzayA9
IGNsYWltVGFzayhsb2NrZXIpOworICAgICAgICB0YXNrID0gY2xhaW1UYXNrKCk7CiAgICAgICAg
IGlmICghdGFzaykKICAgICAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC04NiwxNCArODYsMTQg
QEAgdm9pZCBQYXJhbGxlbEhlbHBlckNsaWVudDo6cnVuVGFza0luUGFyYWxsZWwoUmVmUHRyPFNo
YXJlZFRhc2s8dm9pZCAoKT4+JiYgdGFzaykKICAgICBmaW5pc2goKTsKIH0KIAotdm9pZCBQYXJh
bGxlbEhlbHBlckNsaWVudDo6ZmluaXNoKGNvbnN0IEFic3RyYWN0TG9ja2VyJikKK3ZvaWQgUGFy
YWxsZWxIZWxwZXJDbGllbnQ6OmZpbmlzaFdpdGhMb2NrKCkKIHsKICAgICBtX3Rhc2sgPSBudWxs
cHRyOwogICAgIHdoaWxlIChtX251bUFjdGl2ZSkKICAgICAgICAgbV9wb29sLT5tX3dvcmtDb21w
bGV0ZUNvbmRpdGlvbi53YWl0KCptX3Bvb2wtPm1fbG9jayk7CiB9CiAKLVJlZlB0cjxTaGFyZWRU
YXNrPHZvaWQgKCk+PiBQYXJhbGxlbEhlbHBlckNsaWVudDo6Y2xhaW1UYXNrKGNvbnN0IEFic3Ry
YWN0TG9ja2VyJikKK1JlZlB0cjxTaGFyZWRUYXNrPHZvaWQgKCk+PiBQYXJhbGxlbEhlbHBlckNs
aWVudDo6Y2xhaW1UYXNrKCkKIHsKICAgICBpZiAoIW1fdGFzaykKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CkBAIC0xMjIsNyArMTIyLDcgQEAgdm9pZCBQYXJhbGxlbEhlbHBlckNsaWVudDo6cnVu
VGFzayhjb25zdCBSZWZQdHI8U2hhcmVkVGFzazx2b2lkICgpPj4mIHRhc2spCiB9CiAKIFBhcmFs
bGVsSGVscGVyUG9vbDo6UGFyYWxsZWxIZWxwZXJQb29sKENTdHJpbmcmJiB0aHJlYWROYW1lKQot
ICAgIDogbV9sb2NrKEJveDxVbmNoZWNrZWRMb2NrPjo6Y3JlYXRlKCkpCisgICAgOiBtX2xvY2so
Qm94PExvY2s+OjpjcmVhdGUoKSkKICAgICAsIG1fd29ya0F2YWlsYWJsZUNvbmRpdGlvbihBdXRv
bWF0aWNUaHJlYWRDb25kaXRpb246OmNyZWF0ZSgpKQogICAgICwgbV90aHJlYWROYW1lKFdURk1v
dmUodGhyZWFkTmFtZSkpCiB7CkBAIC0xNDgsNyArMTQ4LDcgQEAgdm9pZCBQYXJhbGxlbEhlbHBl
clBvb2w6OmVuc3VyZVRocmVhZHModW5zaWduZWQgbnVtVGhyZWFkcykKICAgICBpZiAobnVtVGhy
ZWFkcyA8IG1fbnVtVGhyZWFkcykKICAgICAgICAgcmV0dXJuOwogICAgIG1fbnVtVGhyZWFkcyA9
IG51bVRocmVhZHM7Ci0gICAgaWYgKGdldENsaWVudFdpdGhUYXNrKGxvY2tlcikpCisgICAgaWYg
KGdldENsaWVudFdpdGhUYXNrKCkpCiAgICAgICAgIGRpZE1ha2VXb3JrQXZhaWxhYmxlKGxvY2tl
cik7CiB9CiAKQEAgLTE1OCwxMCArMTU4LDExIEBAIHZvaWQgUGFyYWxsZWxIZWxwZXJQb29sOjpk
b1NvbWVIZWxwaW5nKCkKICAgICBSZWZQdHI8U2hhcmVkVGFzazx2b2lkICgpPj4gdGFzazsKICAg
ICB7CiAgICAgICAgIExvY2tlciBsb2NrZXIgeyAqbV9sb2NrIH07Ci0gICAgICAgIGNsaWVudCA9
IGdldENsaWVudFdpdGhUYXNrKGxvY2tlcik7CisgICAgICAgIGNsaWVudCA9IGdldENsaWVudFdp
dGhUYXNrKCk7CiAgICAgICAgIGlmICghY2xpZW50KQogICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICB0YXNrID0gY2xpZW50LT5jbGFpbVRhc2sobG9ja2VyKTsKKyAgICAgICAgYXNzZXJ0SXNI
ZWxkKCpjbGllbnQtPm1fcG9vbC0+bV9sb2NrKTsKKyAgICAgICAgdGFzayA9IGNsaWVudC0+Y2xh
aW1UYXNrKCk7CiAgICAgfQogCiAgICAgY2xpZW50LT5ydW5UYXNrKHRhc2spOwpAQCAtMTgxLDEz
ICsxODIsMTUgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBQb2xsUmVzdWx0IHBv
bGwoY29uc3QgQWJzdHJhY3RMb2NrZXImIGxvY2tlcikgZmluYWwKKyAgICBQb2xsUmVzdWx0IHBv
bGwoY29uc3QgQWJzdHJhY3RMb2NrZXImKSBmaW5hbAogICAgIHsKICAgICAgICAgaWYgKG1fcG9v
bC5tX2lzRHlpbmcpCiAgICAgICAgICAgICByZXR1cm4gUG9sbFJlc3VsdDo6U3RvcDsKLSAgICAg
ICAgbV9jbGllbnQgPSBtX3Bvb2wuZ2V0Q2xpZW50V2l0aFRhc2sobG9ja2VyKTsKKyAgICAgICAg
YXNzZXJ0SXNIZWxkKCptX3Bvb2wubV9sb2NrKTsKKyAgICAgICAgbV9jbGllbnQgPSBtX3Bvb2wu
Z2V0Q2xpZW50V2l0aFRhc2soKTsKICAgICAgICAgaWYgKG1fY2xpZW50KSB7Ci0gICAgICAgICAg
ICBtX3Rhc2sgPSBtX2NsaWVudC0+Y2xhaW1UYXNrKGxvY2tlcik7CisgICAgICAgICAgICBhc3Nl
cnRJc0hlbGQoKm1fY2xpZW50LT5tX3Bvb2wtPm1fbG9jayk7CisgICAgICAgICAgICBtX3Rhc2sg
PSBtX2NsaWVudC0+Y2xhaW1UYXNrKCk7CiAgICAgICAgICAgICByZXR1cm4gUG9sbFJlc3VsdDo6
V29yazsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gUG9sbFJlc3VsdDo6V2FpdDsKQEAgLTIx
MywxMiArMjE2LDEyIEBAIHZvaWQgUGFyYWxsZWxIZWxwZXJQb29sOjpkaWRNYWtlV29ya0F2YWls
YWJsZShjb25zdCBBYnN0cmFjdExvY2tlciYgbG9ja2VyKQogICAgIG1fd29ya0F2YWlsYWJsZUNv
bmRpdGlvbi0+bm90aWZ5QWxsKGxvY2tlcik7CiB9CiAKLWJvb2wgUGFyYWxsZWxIZWxwZXJQb29s
OjpoYXNDbGllbnRXaXRoVGFzayhjb25zdCBBYnN0cmFjdExvY2tlciYgbG9ja2VyKQorYm9vbCBQ
YXJhbGxlbEhlbHBlclBvb2w6Omhhc0NsaWVudFdpdGhUYXNrKCkKIHsKLSAgICByZXR1cm4gISFn
ZXRDbGllbnRXaXRoVGFzayhsb2NrZXIpOworICAgIHJldHVybiAhIWdldENsaWVudFdpdGhUYXNr
KCk7CiB9CiAKLVBhcmFsbGVsSGVscGVyQ2xpZW50KiBQYXJhbGxlbEhlbHBlclBvb2w6OmdldENs
aWVudFdpdGhUYXNrKGNvbnN0IEFic3RyYWN0TG9ja2VyJikKK1BhcmFsbGVsSGVscGVyQ2xpZW50
KiBQYXJhbGxlbEhlbHBlclBvb2w6OmdldENsaWVudFdpdGhUYXNrKCkKIHsKICAgICAvLyBXZSBs
b2FkLWJhbGFuY2UgYnkgYmVpbmcgcmFuZG9tLgogICAgIHVuc2lnbmVkIHN0YXJ0SW5kZXggPSBt
X3JhbmRvbS5nZXRVaW50MzIobV9jbGllbnRzLnNpemUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9QYXJhbGxlbEhlbHBlclBvb2wuaCBiL1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSGVs
cGVyUG9vbC5oCmluZGV4IDY2NGZhZGU4NTM5OTNhYjRiMDU5NTQ4NzIyMTRmMzg3YzlhNmQwNTMu
LjQ3YTRmMzE2ZjFlNTU2ZmY2MTJlOGQ0Y2Q2Y2M5YjU2NmI2YTBiMjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL1BhcmFsbGVsSGVscGVyUG9vbC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1Bh
cmFsbGVsSGVscGVyUG9vbC5oCkBAIC02Miw3ICs2Miw0MSBAQCBjbGFzcyBBdXRvbWF0aWNUaHJl
YWRDb25kaXRpb247CiAvLyBhIHRhc2sgYXQgcmFuZG9tLiBTbyBsb25nIGFzIGFueSBjbGllbnQg
aGFzIGEgdGFzaywgYWxsIHRocmVhZHMgaW4gdGhlIHBvb2wgd2lsbCBjb250aW51ZQogLy8gcnVu
bmluZyB0aGUgYXZhaWxhYmxlIHRhc2tzLiBUaHJlYWRzIGdvIGlkbGUgd2hlbiBubyBjbGllbnQg
aGFzIHRhc2tzIHRvIHJ1bi4KIAotY2xhc3MgUGFyYWxsZWxIZWxwZXJQb29sOworY2xhc3MgUGFy
YWxsZWxIZWxwZXJDbGllbnQ7CisKK2NsYXNzIFBhcmFsbGVsSGVscGVyUG9vbCA6IHB1YmxpYyBU
aHJlYWRTYWZlUmVmQ291bnRlZDxQYXJhbGxlbEhlbHBlclBvb2w+IHsKK3B1YmxpYzoKKyAgICBX
VEZfRVhQT1JUX1BSSVZBVEUgUGFyYWxsZWxIZWxwZXJQb29sKENTdHJpbmcmJiB0aHJlYWROYW1l
KTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgflBhcmFsbGVsSGVscGVyUG9vbCgpOworCisgICAg
V1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgZW5zdXJlVGhyZWFkcyh1bnNpZ25lZCBudW1UaHJlYWRz
KTsKKworICAgIHVuc2lnbmVkIG51bWJlck9mVGhyZWFkcygpIGNvbnN0IHsgcmV0dXJuIG1fbnVt
VGhyZWFkczsgfQorICAgIAorICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGRvU29tZUhlbHBp
bmcoKTsKKworcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgUGFyYWxsZWxIZWxwZXJDbGllbnQ7
CisgICAgY2xhc3MgVGhyZWFkOworICAgIGZyaWVuZCBjbGFzcyBUaHJlYWQ7CisKKyAgICB2b2lk
IGRpZE1ha2VXb3JrQXZhaWxhYmxlKGNvbnN0IEFic3RyYWN0TG9ja2VyJikgV1RGX1JFUVVJUkVT
X0xPQ0sobV9sb2NrKTsKKworICAgIGJvb2wgaGFzQ2xpZW50V2l0aFRhc2soKSBXVEZfUkVRVUlS
RVNfTE9DSyhtX2xvY2spOworICAgIFBhcmFsbGVsSGVscGVyQ2xpZW50KiBnZXRDbGllbnRXaXRo
VGFzaygpIFdURl9SRVFVSVJFU19MT0NLKG1fbG9jayk7CisgICAgCisgICAgQm94PExvY2s+IG1f
bG9jazsgLy8gQXV0b21hdGljVGhyZWFkIHdhbnRzIHRoaXMgaW4gYSBib3ggZm9yIHNhZmV0eS4K
KyAgICBSZWY8QXV0b21hdGljVGhyZWFkQ29uZGl0aW9uPiBtX3dvcmtBdmFpbGFibGVDb25kaXRp
b247CisgICAgQ29uZGl0aW9uIG1fd29ya0NvbXBsZXRlQ29uZGl0aW9uOworCisgICAgV2Vha1Jh
bmRvbSBtX3JhbmRvbTsKKyAgICAKKyAgICBWZWN0b3I8UGFyYWxsZWxIZWxwZXJDbGllbnQqPiBt
X2NsaWVudHMgV1RGX0dVQVJERURfQllfTE9DSygqbV9sb2NrKTsKKyAgICBWZWN0b3I8UmVmUHRy
PEF1dG9tYXRpY1RocmVhZD4+IG1fdGhyZWFkczsKKyAgICBDU3RyaW5nIG1fdGhyZWFkTmFtZTsK
KyAgICB1bnNpZ25lZCBtX251bVRocmVhZHMgeyAwIH07IC8vIFRoaXMgY2FuIGJlIGxhcmdlciB0
aGFuIG1fdGhyZWFkcy5zaXplKCkgYmVjYXVzZSB3ZSBzdGFydCB0aHJlYWRzIG9ubHkgb25jZSB0
aGVyZSBpcyB3b3JrLgorICAgIGJvb2wgbV9pc0R5aW5nIHsgZmFsc2UgfTsKK307CiAKIC8vIEEg
Y2xpZW50IGlzIGEgcGxhY2Vob2xkZXIgZm9yIGEgcGFyYWxsZWwgYWxnb3JpdGhtLiBBIHBhcmFs
bGVsIGFsZ29yaXRobSB3aWxsIGhhdmUgYSB0YXNrIHRoYXQKIC8vIGNhbiBiZSBydW4gY29uY3Vy
cmVudGx5LiBXaGVuZXZlciBhIGNsaWVudCBoYXMgYSB0YXNrIHNldCAoeW91IGhhdmUgY2FsbGVk
IHNldFRhc2soKSBvcgpAQCAtMTQxLDcgKzE3NSw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAg
IHNldFRhc2soY3JlYXRlU2hhcmVkVGFzazx2b2lkICgpPihmdW5jdG9yKSk7CiAgICAgfQotICAg
IAorCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgZmluaXNoKCk7CiAKICAgICBXVEZfRVhQ
T1JUX1BSSVZBVEUgdm9pZCBkb1NvbWVIZWxwaW5nKCk7CkBAIC0xNjgsNTAgKzIwMiwxNSBAQCBw
dWJsaWM6CiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBQYXJhbGxlbEhlbHBlclBvb2w7CiAK
LSAgICB2b2lkIGZpbmlzaChjb25zdCBBYnN0cmFjdExvY2tlciYpOwotICAgIFJlZlB0cjxTaGFy
ZWRUYXNrPHZvaWQgKCk+PiBjbGFpbVRhc2soY29uc3QgQWJzdHJhY3RMb2NrZXImKTsKKyAgICB2
b2lkIGZpbmlzaFdpdGhMb2NrKCkgV1RGX1JFUVVJUkVTX0xPQ0soKm1fcG9vbC0+bV9sb2NrKTsK
KyAgICBSZWZQdHI8U2hhcmVkVGFzazx2b2lkICgpPj4gY2xhaW1UYXNrKCkgV1RGX1JFUVVJUkVT
X0xPQ0soKm1fcG9vbC0+bV9sb2NrKTsKICAgICB2b2lkIHJ1blRhc2soY29uc3QgUmVmUHRyPFNo
YXJlZFRhc2s8dm9pZCAoKT4+Jik7Ci0gICAgCisKICAgICBSZWZQdHI8UGFyYWxsZWxIZWxwZXJQ
b29sPiBtX3Bvb2w7CiAgICAgUmVmUHRyPFNoYXJlZFRhc2s8dm9pZCAoKT4+IG1fdGFzazsKICAg
ICB1bnNpZ25lZCBtX251bUFjdGl2ZSB7IDAgfTsKIH07CiAKLWNsYXNzIFBhcmFsbGVsSGVscGVy
UG9vbCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxQYXJhbGxlbEhlbHBlclBvb2w+IHsK
LXB1YmxpYzoKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgUGFyYWxsZWxIZWxwZXJQb29sKENTdHJp
bmcmJiB0aHJlYWROYW1lKTsKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgflBhcmFsbGVsSGVscGVy
UG9vbCgpOwotCi0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgZW5zdXJlVGhyZWFkcyh1bnNp
Z25lZCBudW1UaHJlYWRzKTsKLQotICAgIHVuc2lnbmVkIG51bWJlck9mVGhyZWFkcygpIGNvbnN0
IHsgcmV0dXJuIG1fbnVtVGhyZWFkczsgfQotICAgIAotICAgIFdURl9FWFBPUlRfUFJJVkFURSB2
b2lkIGRvU29tZUhlbHBpbmcoKTsKLQotcHJpdmF0ZToKLSAgICBmcmllbmQgY2xhc3MgUGFyYWxs
ZWxIZWxwZXJDbGllbnQ7Ci0gICAgY2xhc3MgVGhyZWFkOwotICAgIGZyaWVuZCBjbGFzcyBUaHJl
YWQ7Ci0KLSAgICB2b2lkIGRpZE1ha2VXb3JrQXZhaWxhYmxlKGNvbnN0IEFic3RyYWN0TG9ja2Vy
Jik7Ci0KLSAgICBib29sIGhhc0NsaWVudFdpdGhUYXNrKGNvbnN0IEFic3RyYWN0TG9ja2VyJik7
Ci0gICAgUGFyYWxsZWxIZWxwZXJDbGllbnQqIGdldENsaWVudFdpdGhUYXNrKGNvbnN0IEFic3Ry
YWN0TG9ja2VyJik7Ci0gICAgUGFyYWxsZWxIZWxwZXJDbGllbnQqIHdhaXRGb3JDbGllbnRXaXRo
VGFzayhjb25zdCBBYnN0cmFjdExvY2tlciYpOwotICAgIAotICAgIEJveDxVbmNoZWNrZWRMb2Nr
PiBtX2xvY2s7IC8vIEF1dG9tYXRpY1RocmVhZCB3YW50cyB0aGlzIGluIGEgYm94IGZvciBzYWZl
dHkuCi0gICAgUmVmPEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbj4gbV93b3JrQXZhaWxhYmxlQ29u
ZGl0aW9uOwotICAgIFVuY2hlY2tlZENvbmRpdGlvbiBtX3dvcmtDb21wbGV0ZUNvbmRpdGlvbjsK
LQotICAgIFdlYWtSYW5kb20gbV9yYW5kb207Ci0gICAgCi0gICAgVmVjdG9yPFBhcmFsbGVsSGVs
cGVyQ2xpZW50Kj4gbV9jbGllbnRzOwotICAgIFZlY3RvcjxSZWZQdHI8QXV0b21hdGljVGhyZWFk
Pj4gbV90aHJlYWRzOwotICAgIENTdHJpbmcgbV90aHJlYWROYW1lOwotICAgIHVuc2lnbmVkIG1f
bnVtVGhyZWFkcyB7IDAgfTsgLy8gVGhpcyBjYW4gYmUgbGFyZ2VyIHRoYW4gbV90aHJlYWRzLnNp
emUoKSBiZWNhdXNlIHdlIHN0YXJ0IHRocmVhZHMgb25seSBvbmNlIHRoZXJlIGlzIHdvcmsuCi0g
ICAgYm9vbCBtX2lzRHlpbmcgeyBmYWxzZSB9OwotfTsKLQogfSAvLyBuYW1lc3BhY2UgV1RGCiAK
IHVzaW5nIFdURjo6UGFyYWxsZWxIZWxwZXJDbGllbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi9Xb3JrZXJQb29sLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1dvcmtlclBvb2wuY3BwCmluZGV4
IDIxOWRiZjE1MWQ2NjM3YzY3YTNlNDc2ZmQxM2UzZDFiODhiNDM1N2EuLjhhOWMxZmRhNzRhNzNi
MmM1YWI1Y2RhMmQ4ZTQ2MDlhYmU4MGEzMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1dv
cmtlclBvb2wuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1dvcmtlclBvb2wuY3BwCkBAIC0zMiw3
ICszMiw3IEBAIGNsYXNzIFdvcmtlclBvb2w6OldvcmtlciBmaW5hbCA6IHB1YmxpYyBBdXRvbWF0
aWNUaHJlYWQgewogcHVibGljOgogICAgIGZyaWVuZCBjbGFzcyBXb3JrZXJQb29sOwogCi0gICAg
V29ya2VyKGNvbnN0IEFic3RyYWN0TG9ja2VyJiBsb2NrZXIsIFdvcmtlclBvb2wmIHBvb2wsIEJv
eDxVbmNoZWNrZWRMb2NrPiBsb2NrLCBSZWY8QXV0b21hdGljVGhyZWFkQ29uZGl0aW9uPiYmIGNv
bmRpdGlvbiwgU2Vjb25kcyB0aW1lb3V0KQorICAgIFdvcmtlcihjb25zdCBBYnN0cmFjdExvY2tl
ciYgbG9ja2VyLCBXb3JrZXJQb29sJiBwb29sLCBCb3g8TG9jaz4gbG9jaywgUmVmPEF1dG9tYXRp
Y1RocmVhZENvbmRpdGlvbj4mJiBjb25kaXRpb24sIFNlY29uZHMgdGltZW91dCkKICAgICAgICAg
OiBBdXRvbWF0aWNUaHJlYWQobG9ja2VyLCBsb2NrLCBXVEZNb3ZlKGNvbmRpdGlvbiksIHRpbWVv
dXQpCiAgICAgICAgICwgbV9wb29sKHBvb2wpCiAgICAgewpAQCAtODIsNyArODIsNyBAQCBwcml2
YXRlOgogfTsKIAogV29ya2VyUG9vbDo6V29ya2VyUG9vbChBU0NJSUxpdGVyYWwgbmFtZSwgdW5z
aWduZWQgbnVtYmVyT2ZXb3JrZXJzLCBTZWNvbmRzIHRpbWVvdXQpCi0gICAgOiBtX2xvY2soQm94
PFVuY2hlY2tlZExvY2s+OjpjcmVhdGUoKSkKKyAgICA6IG1fbG9jayhCb3g8TG9jaz46OmNyZWF0
ZSgpKQogICAgICwgbV9jb25kaXRpb24oQXV0b21hdGljVGhyZWFkQ29uZGl0aW9uOjpjcmVhdGUo
KSkKICAgICAsIG1fdGltZW91dCh0aW1lb3V0KQogICAgICwgbV9uYW1lKG5hbWUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9Xb3JrZXJQb29sLmggYi9Tb3VyY2UvV1RGL3d0Zi9Xb3JrZXJQ
b29sLmgKaW5kZXggN2E0MDQyYjQ2YjE2ODgwMjNmMWNlZjllNjQyYWIyYzQ4Yzg4OTNkOS4uNjIz
NWU3MzFlZDc1YjgwMTI1MDk1MzU5MDY4YjA4ZDRjMWRjZmVjMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvV29ya2VyUG9vbC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1dvcmtlclBvb2wuaApA
QCAtNTcsNyArNTcsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBzaG91bGRTbGVlcChjb25zdCBB
YnN0cmFjdExvY2tlciYpOwogCi0gICAgQm94PFVuY2hlY2tlZExvY2s+IG1fbG9jazsKKyAgICBC
b3g8TG9jaz4gbV9sb2NrOwogICAgIFJlZjxBdXRvbWF0aWNUaHJlYWRDb25kaXRpb24+IG1fY29u
ZGl0aW9uOwogICAgIFNlY29uZHMgbV90aW1lb3V0OwogICAgIE1vbm90b25pY1RpbWUgbV9sYXN0
VGltZW91dFRpbWUgeyBNb25vdG9uaWNUaW1lOjpuYW4oKSB9Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>