<?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>221691</bug_id>
          
          <creation_ts>2021-02-10 10:26:34 -0800</creation_ts>
          <short_desc>[GPUP] Some media-capabilities tests fail when media in GPU Process is enabled</short_desc>
          <delta_ts>2021-02-25 17:10:16 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>Other</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>
          
          <blocked>221830</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Peng Liu">peng.liu6</reporter>
          <assigned_to name="Eric Carlson">eric.carlson</assigned_to>
          <cc>annulen</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>pnormand</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1727609</commentid>
    <comment_count>0</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-02-10 10:26:34 -0800</bug_when>
    <thetext>media/mediacapabilities/mediacapabilities-types.html
platform/mac/media/mediacapabilities/mediacapabilities-encodingInfo-undefined.html
platform/mac/media/mediacapabilities/vp9-decodingInfo-sw.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730286</commentid>
    <comment_count>1</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-02-17 08:30:49 -0800</bug_when>
    <thetext>(In reply to Peng Liu from comment #0)
&gt; media/mediacapabilities/mediacapabilities-types.html

Why was this flagged in the wk2 expectations?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730329</commentid>
    <comment_count>2</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-02-17 09:47:46 -0800</bug_when>
    <thetext>They are flagged as flaky because of the GPU Process work. Now &quot;media in GPU Process&quot; is enabled in the test runner for Mac and iOS. It is disabled for GStreamer-based ports, right? Then maybe I need to move the change to mac-wk2 and ios-wk2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730361</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-02-17 10:27:15 -0800</bug_when>
    <thetext>&lt;rdar://problem/74439420&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733044</commentid>
    <comment_count>4</comment_count>
      <attachid>421447</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-02-24 13:09:40 -0800</bug_when>
    <thetext>Created attachment 421447
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733053</commentid>
    <comment_count>5</comment_count>
      <attachid>421451</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-02-24 13:21:49 -0800</bug_when>
    <thetext>Created attachment 421451
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733103</commentid>
    <comment_count>6</comment_count>
      <attachid>421464</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-02-24 15:13:16 -0800</bug_when>
    <thetext>Created attachment 421464
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733135</commentid>
    <comment_count>7</comment_count>
      <attachid>421478</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-02-24 16:15:18 -0800</bug_when>
    <thetext>Created attachment 421478
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733323</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-02-25 07:46:03 -0800</bug_when>
    <thetext>Tools/Scripts/svn-apply failed to apply attachment 421478 to trunk.
Please resolve the conflicts and upload a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733448</commentid>
    <comment_count>9</comment_count>
      <attachid>421552</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-02-25 12:09:43 -0800</bug_when>
    <thetext>Created attachment 421552
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733470</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-02-25 13:04:56 -0800</bug_when>
    <thetext>Committed r273504: &lt;https://commits.webkit.org/r273504&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 421552.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733608</commentid>
    <comment_count>11</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-02-25 17:10:16 -0800</bug_when>
    <thetext>*** Bug 221821 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421447</attachid>
            <date>2021-02-24 13:09:40 -0800</date>
            <delta_ts>2021-02-24 13:21:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221691-20210224130940.patch</filename>
            <type>text/plain</type>
            <size>42123</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczMjY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGVmMWEzMjI4NTIxMDll
ODA0YzUzNGUzYWFkODUyZjQyNDlkMGEzNy4uNjdhMmUzOGQwOGI3ZmRlNWE2MzVhZDgwNjhjY2Ri
N2YwMTVkYmI3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDIxLTAyLTI0ICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtHUFVQXSBTb21l
IG1lZGlhLWNhcGFiaWxpdGllcyB0ZXN0cyBmYWlsIHdoZW4gbWVkaWEgaW4gR1BVIFByb2Nlc3Mg
aXMgZW5hYmxlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjIxNjkxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NDQzOTQyMD4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTeW5jIGJhdHRlcnkgc3RhdHVz
IGFuZCBWUDkgdGVzdGluZyBvdmVycmlkZXMgc2V0IGJ5IEludGVybmFscyB0byB0aGUgR1BVIHBy
b2Nlc3MgCisgICAgICAgIHdoZW4gdGhleSBjaGFuZ2UuCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
LCBmaXhlcyBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1N5c3Rl
bUJhdHRlcnkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9TeXN0ZW1CYXR0ZXJ5Lm1tOgor
ICAgICAgICAoV2ViQ29yZTo6c3lzdGVtSGFzQmF0dGVyeSk6CisgICAgICAgIChXZWJDb3JlOjpz
eXN0ZW1IYXNBQyk6CisgICAgICAgIChXZWJDb3JlOjpTeXN0ZW1CYXR0ZXJ5U3RhdHVzVGVzdGlu
Z092ZXJyaWRlczo6c2luZ2xldG9uKToKKyAgICAgICAgKFdlYkNvcmU6OlN5c3RlbUJhdHRlcnlT
dGF0dXNUZXN0aW5nT3ZlcnJpZGVzOjpzZXRIYXNCYXR0ZXJ5KToKKyAgICAgICAgKFdlYkNvcmU6
OlN5c3RlbUJhdHRlcnlTdGF0dXNUZXN0aW5nT3ZlcnJpZGVzOjpzZXRIYXNBQyk6CisgICAgICAg
IChXZWJDb3JlOjpTeXN0ZW1CYXR0ZXJ5U3RhdHVzVGVzdGluZ092ZXJyaWRlczo6c2V0Q29uZmln
dXJhdGlvbkNoYW5nZWRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpzZXRPdmVycmlkZVN5
c3RlbUhhc0JhdHRlcnlGb3JUZXN0aW5nKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnNl
dE92ZXJyaWRlU3lzdGVtSGFzQUNGb3JUZXN0aW5nKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9WUDlVdGlsaXRpZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmVlbkRh
dGFPdmVycmlkZXM6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JlZW5EYXRh
T3ZlcnJpZGVzOjpkZWNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I9PSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVlA5VXRpbGl0aWVzQ29jb2EuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WUDlVdGlsaXRpZXNDb2NvYS5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OlZQOVRlc3RpbmdPdmVycmlkZXM6OnNpbmdsZXRvbik6CisgICAgICAgIChX
ZWJDb3JlOjpWUDlUZXN0aW5nT3ZlcnJpZGVzOjpzZXRIYXJkd2FyZURlY29kZXJEaXNhYmxlZCk6
CisgICAgICAgIChXZWJDb3JlOjpWUDlUZXN0aW5nT3ZlcnJpZGVzOjpzZXRWUDlTY3JlZW5TaXpl
QW5kU2NhbGUpOgorICAgICAgICAoV2ViQ29yZTo6VlA5VGVzdGluZ092ZXJyaWRlczo6c2V0Q29u
ZmlndXJhdGlvbkNoYW5nZWRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjp2cDlIYXJkd2Fy
ZURlY29kZXJBdmFpbGFibGUpOgorICAgICAgICAoV2ViQ29yZTo6aXNWUDlDb2RlY0NvbmZpZ3Vy
YXRpb25SZWNvcmRTdXBwb3J0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGVWUFBhcmFt
ZXRlcnMpOgorICAgICAgICAoKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnNldE92ZXJy
aWRlVlA5SGFyZHdhcmVEZWNvZGVyRGlzYWJsZWRGb3JUZXN0aW5nKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OnNldE92ZXJyaWRlVlA5U2NyZWVuU2l6ZUFuZFNjYWxlRm9yVGVzdGluZyk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpyZXNldE92ZXJyaWRlVlA5U2NyZWVuU2l6ZUFu
ZFNjYWxlRm9yVGVzdGluZyk6IERlbGV0ZWQuCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpJbnRlcm5hbHMpOgorICAgICAgICAo
V2ViQ29yZTo6SW50ZXJuYWxzOjpzZXRTeXN0ZW1IYXNCYXR0ZXJ5Rm9yVGVzdGluZyk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnNldFN5c3RlbUhhc0FDRm9yVGVzdGluZyk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnNldEhhcmR3YXJlVlA5RGVjb2RlckRpc2FibGVkRm9y
VGVzdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnNldFZQOVNjcmVlblNpemVB
bmRTY2FsZUZvclRlc3RpbmcpOgorCiAyMDIxLTAyLTIyICBTZXJnaW8gVmlsbGFyIFNlbmluICA8
c3ZpbGxhckBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyNjY2OTUpOiB0d2l0
Y2gudHY6IHdoZW4gaW4gZnVsbHNjcmVlbiwgV2ViS2l0IGNvbnRpbnVhbGx5IGRvZXMgMzUwbXMg
bGF5b3V0cy4gRmlyZWZveCBhbmQgQ2hyb21lIGRvIG5vdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBmZTQyOTg3N2Ux
YTM1MWU5N2JiNzM0MGU5YjBhNjkzMTk0YzMxZGY5Li5iYWUwMGU0NmFkNmYzODNkNzZlYTI1NWQ0
N2FjNzViM2MwZTA1N2ZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIxLTAyLTI0ICBF
cmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtHUFVQXSBT
b21lIG1lZGlhLWNhcGFiaWxpdGllcyB0ZXN0cyBmYWlsIHdoZW4gbWVkaWEgaW4gR1BVIFByb2Nl
c3MgaXMgZW5hYmxlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjIxNjkxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NDQzOTQyMD4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEdQVVByb2Nlc3MvR1BV
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OnNldE1lZGlhT3ZlcnJpZGVzRm9yVGVzdGluZyk6CisgICAgICAgICog
R1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgICogR1BVUHJv
Y2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojpjb21w
dXRlRmlsdGVyZWREZXZpY2VMaXN0KToKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlv
bi5jcHA6CisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3NDb25uZWN0aW9uOjp1cGRhdGVNZWRp
YUNvbmZpZ3VyYXRpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25u
ZWN0aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFFbmdp
bmVDb25maWd1cmF0aW9uRmFjdG9yeS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlh
RW5naW5lQ29uZmlndXJhdGlvbkZhY3Rvcnk6OnJlZ2lzdGVyRmFjdG9yeSk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6
c2V0VXNlR1BVUHJvY2Vzc0Zvck1lZGlhKToKKwogMjAyMS0wMi0yMiAgU2FtIFNuZWRkb24gIDxn
c25lZGRlcnNAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjI3MzIwNCk6IHdlYmtp
dHB5IHRlc3RzIGRvbid0IHJ1biBvbiBQeTMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NvY29hL1N5c3RlbUJhdHRlcnkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nv
Y29hL1N5c3RlbUJhdHRlcnkuaAppbmRleCA5MzU0NzdhNmY0YjUwZmE1ODYwN2UxYzFiODVjZTM1
NGYxOTA5ZTI1Li5kYjAxMDE2NWIxZjhmNDM0YzA5ZjNkMTIxMDU2Y2EyNzg5MTk1NjBiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TeXN0ZW1CYXR0ZXJ5LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU3lzdGVtQmF0dGVyeS5oCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogKgogKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNSw3ICszNSwyMiBA
QCBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFN5c3RlbUhhc0FDKGJvb2wpOwogV0VCQ09SRV9FWFBP
UlQgYm9vbCBzeXN0ZW1IYXNBQygpOwogV0VCQ09SRV9FWFBPUlQgT3B0aW9uYWw8Ym9vbD4gY2Fj
aGVkU3lzdGVtSGFzQUMoKTsKIAotV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRPdmVycmlkZVN5c3Rl
bUhhc0JhdHRlcnlGb3JUZXN0aW5nKE9wdGlvbmFsPGJvb2w+JiYpOwotV0VCQ09SRV9FWFBPUlQg
dm9pZCBzZXRPdmVycmlkZVN5c3RlbUhhc0FDRm9yVGVzdGluZyhPcHRpb25hbDxib29sPiYmKTsK
K2NsYXNzIFdFQkNPUkVfRVhQT1JUIFN5c3RlbUJhdHRlcnlTdGF0dXNUZXN0aW5nT3ZlcnJpZGVz
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgU3lzdGVtQmF0dGVyeVN0YXR1c1Rlc3RpbmdPdmVycmlk
ZXMmIHNpbmdsZXRvbigpOworCisgICAgdm9pZCBzZXRIYXNBQyhPcHRpb25hbDxib29sPiYmKTsK
KyAgICBPcHRpb25hbDxib29sPiBoYXNBQygpIHsgcmV0dXJuIG1faGFzQUM7IH0KKworICAgIHZv
aWQgc2V0SGFzQmF0dGVyeShPcHRpb25hbDxib29sPiYmKTsKKyAgICBPcHRpb25hbDxib29sPiBo
YXNCYXR0ZXJ5KCkgeyByZXR1cm4gIG1faGFzQmF0dGVyeTsgfQorCisgICAgdm9pZCBzZXRDb25m
aWd1cmF0aW9uQ2hhbmdlZENhbGxiYWNrKHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiYmKTsKKworcHJp
dmF0ZToKKyAgICBPcHRpb25hbDxib29sPiBtX2hhc0JhdHRlcnk7CisgICAgT3B0aW9uYWw8Ym9v
bD4gbV9oYXNBQzsKKyAgICBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4gbV9jb25maWd1cmF0aW9uQ2hh
bmdlZENhbGxiYWNrOworfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY29jb2EvU3lzdGVtQmF0dGVyeS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29h
L1N5c3RlbUJhdHRlcnkubW0KaW5kZXggZTY1ZGY3NWI0MTAxNjEwZjI2ZjBhMzRjMjBiMGFkZDM3
NDVlZjI0Mi4uY2E1NWE5OGRjMWVhOGUzOTU2N2M2ZDcwZjdlZDhhNGU4MzMxYTM5MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU3lzdGVtQmF0dGVyeS5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TeXN0ZW1CYXR0ZXJ5Lm1tCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDggKzMz
LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgT3B0aW9uYWw8Ym9vbD4gaGFzQmF0
dGVyeTsKIHN0YXRpYyBPcHRpb25hbDxib29sPiBoYXNBQzsKLXN0YXRpYyBPcHRpb25hbDxib29s
PiBoYXNCYXR0ZXJ5T3ZlcnJpZGVGb3JUZXN0aW5nOwotc3RhdGljIE9wdGlvbmFsPGJvb2w+IGhh
c0FDT3ZlcnJpZGVGb3JUZXN0aW5nOwogCiB2b2lkIHNldFN5c3RlbUhhc0JhdHRlcnkoYm9vbCBi
YXR0ZXJ5KQogewpAQCAtNDMsOCArNDEsOCBAQCB2b2lkIHNldFN5c3RlbUhhc0JhdHRlcnkoYm9v
bCBiYXR0ZXJ5KQogCiBib29sIHN5c3RlbUhhc0JhdHRlcnkoKQogewotICAgIGlmIChoYXNCYXR0
ZXJ5T3ZlcnJpZGVGb3JUZXN0aW5nKQotICAgICAgICByZXR1cm4gKmhhc0JhdHRlcnlPdmVycmlk
ZUZvclRlc3Rpbmc7CisgICAgaWYgKGF1dG8gb3ZlcnJpZGVGb3JUZXN0aW5nID0gU3lzdGVtQmF0
dGVyeVN0YXR1c1Rlc3RpbmdPdmVycmlkZXM6OnNpbmdsZXRvbigpLmhhc0JhdHRlcnkoKSkKKyAg
ICAgICAgcmV0dXJuICpvdmVycmlkZUZvclRlc3Rpbmc7CiAKICAgICBpZiAoIWhhc0JhdHRlcnku
aGFzVmFsdWUoKSkgewogICAgICAgICBoYXNCYXR0ZXJ5ID0gW10gewpAQCAtODYsOCArODQsOCBA
QCB2b2lkIHNldFN5c3RlbUhhc0FDKGJvb2wgYWMpCiAKIGJvb2wgc3lzdGVtSGFzQUMoKQogewot
ICAgIGlmIChoYXNBQ092ZXJyaWRlRm9yVGVzdGluZykKLSAgICAgICAgcmV0dXJuICpoYXNBQ092
ZXJyaWRlRm9yVGVzdGluZzsKKyAgICBpZiAoYXV0byBvdmVycmlkZUZvclRlc3RpbmcgPSBTeXN0
ZW1CYXR0ZXJ5U3RhdHVzVGVzdGluZ092ZXJyaWRlczo6c2luZ2xldG9uKCkuaGFzQUMoKSkKKyAg
ICAgICAgcmV0dXJuICpvdmVycmlkZUZvclRlc3Rpbmc7CiAKICAgICBpZiAoIWhhc0FDLmhhc1Zh
bHVlKCkpIHsKICAgICAgICAgaGFzQUMgPSBbXSB7CkBAIC0xMjEsMTQgKzExOSwyOSBAQCBPcHRp
b25hbDxib29sPiBjYWNoZWRTeXN0ZW1IYXNBQygpCiAgICAgcmV0dXJuIGhhc0FDOwogfQogCi12
b2lkIHNldE92ZXJyaWRlU3lzdGVtSGFzQmF0dGVyeUZvclRlc3RpbmcoT3B0aW9uYWw8Ym9vbD4m
JiBoYXNCYXR0ZXJ5KQorU3lzdGVtQmF0dGVyeVN0YXR1c1Rlc3RpbmdPdmVycmlkZXMmIFN5c3Rl
bUJhdHRlcnlTdGF0dXNUZXN0aW5nT3ZlcnJpZGVzOjpzaW5nbGV0b24oKQogewotICAgIGhhc0Jh
dHRlcnlPdmVycmlkZUZvclRlc3RpbmcgPSBXVEZNb3ZlKGhhc0JhdHRlcnkpOworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxTeXN0ZW1CYXR0ZXJ5U3RhdHVzVGVzdGluZ092ZXJyaWRlcz4gY2Vu
dGVyOworICAgIHJldHVybiBjZW50ZXI7CiB9CiAKLXZvaWQgc2V0T3ZlcnJpZGVTeXN0ZW1IYXNB
Q0ZvclRlc3RpbmcoT3B0aW9uYWw8Ym9vbD4mJiBoYXNBQykKK3ZvaWQgU3lzdGVtQmF0dGVyeVN0
YXR1c1Rlc3RpbmdPdmVycmlkZXM6OnNldEhhc0JhdHRlcnkoT3B0aW9uYWw8Ym9vbD4mJiBoYXNC
YXR0ZXJ5KQogewotICAgIGhhc0FDT3ZlcnJpZGVGb3JUZXN0aW5nID0gV1RGTW92ZShoYXNBQyk7
CisgICAgbV9oYXNCYXR0ZXJ5ID0gV1RGTW92ZShoYXNCYXR0ZXJ5KTsKKyAgICBpZiAobV9jb25m
aWd1cmF0aW9uQ2hhbmdlZENhbGxiYWNrKQorICAgICAgICBtX2NvbmZpZ3VyYXRpb25DaGFuZ2Vk
Q2FsbGJhY2soKTsKK30KKwordm9pZCBTeXN0ZW1CYXR0ZXJ5U3RhdHVzVGVzdGluZ092ZXJyaWRl
czo6c2V0SGFzQUMoT3B0aW9uYWw8Ym9vbD4mJiBoYXNBQykKK3sKKyAgICBtX2hhc0FDID0gV1RG
TW92ZShoYXNBQyk7CisgICAgaWYgKG1fY29uZmlndXJhdGlvbkNoYW5nZWRDYWxsYmFjaykKKyAg
ICAgICAgbV9jb25maWd1cmF0aW9uQ2hhbmdlZENhbGxiYWNrKCk7Cit9CisKK3ZvaWQgU3lzdGVt
QmF0dGVyeVN0YXR1c1Rlc3RpbmdPdmVycmlkZXM6OnNldENvbmZpZ3VyYXRpb25DaGFuZ2VkQ2Fs
bGJhY2soc3RkOjpmdW5jdGlvbjx2b2lkKCk+JiYgY2FsbGJhY2spCit7CisgICAgbV9jb25maWd1
cmF0aW9uQ2hhbmdlZENhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayk7CiB9CiAKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZQOVV0aWxpdGllcy5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVlA5VXRpbGl0aWVzLmgKaW5kZXggODg3
Njk4MzhkNTA4MTk4MmQyMmEwN2IwNTlkNDBiZDMxNWMyY2JlNi4uZGEzMDkwMGE0ZWM3MjM4M2Uz
ZWIwMzNkNWM0NjY1YzA3ZWNkOTU3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvVlA5VXRpbGl0aWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvVlA5VXRpbGl0aWVzLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAyMC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTI3LDQgKzEyNyw0MSBAQCBzdHJ1Y3QgVlBDb2RlY0Nv
bmZpZ3VyYXRpb25SZWNvcmQgewogCiBXRUJDT1JFX0VYUE9SVCBPcHRpb25hbDxWUENvZGVjQ29u
ZmlndXJhdGlvblJlY29yZD4gcGFyc2VWUENvZGVjUGFyYW1ldGVycyhTdHJpbmdWaWV3IGNvZGVj
U3RyaW5nKTsKIAorc3RydWN0IFNjcmVlbkRhdGFPdmVycmlkZXMgeworICAgIGRvdWJsZSB3aWR0
aCB7IDAgfTsKKyAgICBkb3VibGUgaGVpZ2h0IHsgMCB9OworICAgIGRvdWJsZSBzY2FsZSB7IDEg
fTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CisgICAgdm9pZCBlbmNvZGUoRW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgd2lkdGg7CisgICAg
ICAgIGVuY29kZXIgPDwgaGVpZ2h0OworICAgICAgICBlbmNvZGVyIDw8IHNjYWxlOworICAgIH0K
KworICAgIHRlbXBsYXRlIDxjbGFzcyBEZWNvZGVyPgorICAgIHN0YXRpYyBPcHRpb25hbDxTY3Jl
ZW5EYXRhT3ZlcnJpZGVzPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisjZGVmaW5l
IERFQ09ERShuYW1lLCB0eXBlKSBcCisgICAgT3B0aW9uYWw8dHlwZT4gbmFtZTsgXAorICAgIGRl
Y29kZXIgPj4gbmFtZTsgXAorICAgIGlmICghbmFtZSkgXAorICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OyBcCisKKyAgICBERUNPREUod2lkdGgsIGRvdWJsZSk7CisgICAgREVDT0RFKGhlaWdo
dCwgZG91YmxlKTsKKyAgICBERUNPREUoc2NhbGUsIGRvdWJsZSk7CisjdW5kZWYgREVDT0RFCisK
KyAgICByZXR1cm4ge3sgV1RGTW92ZSgqd2lkdGgpLCBXVEZNb3ZlKCpoZWlnaHQpLCBXVEZNb3Zl
KCpzY2FsZSkgfX07CisgICAgfQorfTsKKworaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBT
Y3JlZW5EYXRhT3ZlcnJpZGVzJiBhLCBjb25zdCBTY3JlZW5EYXRhT3ZlcnJpZGVzJiBiKQorewor
ICAgIHJldHVybiBhLndpZHRoID09IGIud2lkdGggJiYgYS5oZWlnaHQgPT0gYi5oZWlnaHQgJiYg
YS5zY2FsZSA9PSBiLnNjYWxlOworfQorCisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZQOVV0aWxpdGllc0NvY29hLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WUDlVdGlsaXRpZXNDb2NvYS5oCmluZGV4IDJm
MDAwNmI0MWQxNzFjYTcxZmM4NGVlMWJhNzFhZDRjZGQxMGVjNTYuLmZjYWY5OWFlZDMyNjBlYjVj
YjBkMWM1NmNlZTA5ZGU2ZWZiMGRjMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL1ZQOVV0aWxpdGllc0NvY29hLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVlA5VXRpbGl0aWVzQ29jb2EuaApAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00MSwxMCArNDEs
NiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBzdHJ1Y3QgTWVkaWFDYXBhYmlsaXRpZXNJbmZvOwog
c3RydWN0IFZpZGVvQ29uZmlndXJhdGlvbjsKIAotV0VCQ09SRV9FWFBPUlQgZXh0ZXJuIHZvaWQg
c2V0T3ZlcnJpZGVWUDlIYXJkd2FyZURlY29kZXJEaXNhYmxlZEZvclRlc3RpbmcoYm9vbCk7Ci1X
RUJDT1JFX0VYUE9SVCBleHRlcm4gdm9pZCBzZXRPdmVycmlkZVZQOVNjcmVlblNpemVBbmRTY2Fs
ZUZvclRlc3RpbmcoZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCwgZmxvYXQgc2NhbGUpOwotV0VC
Q09SRV9FWFBPUlQgZXh0ZXJuIHZvaWQgcmVzZXRPdmVycmlkZVZQOVNjcmVlblNpemVBbmRTY2Fs
ZUZvclRlc3RpbmcoKTsKLQogV0VCQ09SRV9FWFBPUlQgZXh0ZXJuIHZvaWQgcmVnaXN0ZXJXZWJL
aXRWUDlEZWNvZGVyKCk7CiBXRUJDT1JFX0VYUE9SVCBleHRlcm4gdm9pZCByZWdpc3RlcldlYktp
dFZQOERlY29kZXIoKTsKIFdFQkNPUkVfRVhQT1JUIGV4dGVybiB2b2lkIHJlZ2lzdGVyU3VwcGxl
bWVudGFsVlA5RGVjb2RlcigpOwpAQCAtNzEsNiArNjcsMjQgQEAgc3RydWN0IFZQOEZyYW1lSGVh
ZGVyIHsKIE9wdGlvbmFsPFZQOEZyYW1lSGVhZGVyPiBwYXJzZVZQOEZyYW1lSGVhZGVyKHVpbnQ4
X3QqIGZyYW1lRGF0YSwgc2l6ZV90IGZyYW1lU2l6ZSk7CiBSZXRhaW5QdHI8Q01Gb3JtYXREZXNj
cmlwdGlvblJlZj4gY3JlYXRlRm9ybWF0RGVzY3JpcHRpb25Gcm9tVlA4SGVhZGVyKGNvbnN0IFZQ
OEZyYW1lSGVhZGVyJiwgY29uc3Qgd2VibTo6RWxlbWVudDx3ZWJtOjpDb2xvdXI+Jik7CiAKK2Ns
YXNzIFdFQkNPUkVfRVhQT1JUIFZQOVRlc3RpbmdPdmVycmlkZXMgeworcHVibGljOgorICAgIHN0
YXRpYyBWUDlUZXN0aW5nT3ZlcnJpZGVzJiBzaW5nbGV0b24oKTsKKworICAgIHZvaWQgc2V0SGFy
ZHdhcmVEZWNvZGVyRGlzYWJsZWQoT3B0aW9uYWw8Ym9vbD4mJik7CisgICAgT3B0aW9uYWw8Ym9v
bD4gaGFyZHdhcmVEZWNvZGVyRGlzYWJsZWQoKSB7IHJldHVybiBtX2hhcmR3YXJlRGVjb2RlckRp
c2FibGVkOyB9CisKKyAgICB2b2lkIHNldFZQOVNjcmVlblNpemVBbmRTY2FsZShPcHRpb25hbDxT
Y3JlZW5EYXRhT3ZlcnJpZGVzPiYmKTsKKyAgICBPcHRpb25hbDxTY3JlZW5EYXRhT3ZlcnJpZGVz
PiB2cDlTY3JlZW5TaXplQW5kU2NhbGUoKSAgeyByZXR1cm4gbV9zY3JlZW5TaXplQW5kU2NhbGU7
IH0KKworICAgIHZvaWQgc2V0Q29uZmlndXJhdGlvbkNoYW5nZWRDYWxsYmFjayhzdGQ6OmZ1bmN0
aW9uPHZvaWQoKT4mJik7CisKK3ByaXZhdGU6CisgICAgT3B0aW9uYWw8Ym9vbD4gbV9oYXJkd2Fy
ZURlY29kZXJEaXNhYmxlZDsKKyAgICBPcHRpb25hbDxTY3JlZW5EYXRhT3ZlcnJpZGVzPiBtX3Nj
cmVlblNpemVBbmRTY2FsZTsKKyAgICBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4gbV9jb25maWd1cmF0
aW9uQ2hhbmdlZENhbGxiYWNrOworfTsKKwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZQOVV0aWxpdGllc0NvY29hLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVlA5VXRpbGl0aWVzQ29jb2Eu
bW0KaW5kZXggMzE5NzNiMmM2NDE3YmI1NzhmODBiMjUwMjU1M2UyY2M2MTZhZTljYS4uNjk5MjMw
NTJmMjJjNzViNGRlYzY0NjMzMjhlY2U3NzI5NWIzMzM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVlA5VXRpbGl0aWVzQ29jb2EubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVlA5VXRpbGl0aWVzQ29jb2Eu
bW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMC0yMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtNTAsMjggKzUwLDI5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5nIG5hbWVzcGFjZSBQ
QUw7CiB1c2luZyBuYW1lc3BhY2Ugd2VibTsKIAotc3RhdGljIGJvb2wgaGFyZHdhcmVWUDlEZWNv
ZGVyRGlzYWJsZWRGb3JUZXN0aW5nIHsgZmFsc2UgfTsKLQotc3RydWN0IE92ZXJyaWRlU2NyZWVu
RGF0YSB7Ci0gICAgZmxvYXQgd2lkdGggeyAwIH07Ci0gICAgZmxvYXQgaGVpZ2h0IHsgMCB9Owot
ICAgIGZsb2F0IHNjYWxlIHsgMSB9OwotfTsKLXN0YXRpYyBPcHRpb25hbDxPdmVycmlkZVNjcmVl
bkRhdGE+IHNjcmVlblNpemVBbmRTY2FsZUZvclRlc3Rpbmc7CitWUDlUZXN0aW5nT3ZlcnJpZGVz
JiBWUDlUZXN0aW5nT3ZlcnJpZGVzOjpzaW5nbGV0b24oKQoreworICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxWUDlUZXN0aW5nT3ZlcnJpZGVzPiBjZW50ZXI7CisgICAgcmV0dXJuIGNlbnRlcjsK
K30KIAotdm9pZCBzZXRPdmVycmlkZVZQOUhhcmR3YXJlRGVjb2RlckRpc2FibGVkRm9yVGVzdGlu
Zyhib29sIGRpc2FibGVkKQordm9pZCBWUDlUZXN0aW5nT3ZlcnJpZGVzOjpzZXRIYXJkd2FyZURl
Y29kZXJEaXNhYmxlZChPcHRpb25hbDxib29sPiYmIGRpc2FibGVkKQogewotICAgIGhhcmR3YXJl
VlA5RGVjb2RlckRpc2FibGVkRm9yVGVzdGluZyA9IGRpc2FibGVkOworICAgIG1faGFyZHdhcmVE
ZWNvZGVyRGlzYWJsZWQgPSBXVEZNb3ZlKGRpc2FibGVkKTsKKyAgICBpZiAobV9jb25maWd1cmF0
aW9uQ2hhbmdlZENhbGxiYWNrKQorICAgICAgICBtX2NvbmZpZ3VyYXRpb25DaGFuZ2VkQ2FsbGJh
Y2soKTsKIH0KIAotdm9pZCBzZXRPdmVycmlkZVZQOVNjcmVlblNpemVBbmRTY2FsZUZvclRlc3Rp
bmcoZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCwgZmxvYXQgc2NhbGUpCit2b2lkIFZQOVRlc3Rp
bmdPdmVycmlkZXM6OnNldFZQOVNjcmVlblNpemVBbmRTY2FsZShPcHRpb25hbDxTY3JlZW5EYXRh
T3ZlcnJpZGVzPiYmIG92ZXJyaWRlcykKIHsKLSAgICBzY3JlZW5TaXplQW5kU2NhbGVGb3JUZXN0
aW5nID0gbWFrZU9wdGlvbmFsPE92ZXJyaWRlU2NyZWVuRGF0YT4oeyB3aWR0aCwgaGVpZ2h0LCBz
Y2FsZSB9KTsKKyAgICBtX3NjcmVlblNpemVBbmRTY2FsZSA9IFdURk1vdmUob3ZlcnJpZGVzKTsK
KyAgICBpZiAobV9jb25maWd1cmF0aW9uQ2hhbmdlZENhbGxiYWNrKQorICAgICAgICBtX2NvbmZp
Z3VyYXRpb25DaGFuZ2VkQ2FsbGJhY2soKTsKIH0KIAotdm9pZCByZXNldE92ZXJyaWRlVlA5U2Ny
ZWVuU2l6ZUFuZFNjYWxlRm9yVGVzdGluZygpCit2b2lkIFZQOVRlc3RpbmdPdmVycmlkZXM6OnNl
dENvbmZpZ3VyYXRpb25DaGFuZ2VkQ2FsbGJhY2soc3RkOjpmdW5jdGlvbjx2b2lkKCk+JiYgY2Fs
bGJhY2spCiB7Ci0gICAgc2NyZWVuU2l6ZUFuZFNjYWxlRm9yVGVzdGluZyA9IFdURjo6bnVsbG9w
dDsKKyAgICBtX2NvbmZpZ3VyYXRpb25DaGFuZ2VkQ2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNr
KTsKIH0KIAogZW51bSBjbGFzcyBSZXNvbHV0aW9uQ2F0ZWdvcnkgOiB1aW50OF90IHsKQEAgLTEz
OSw2ICsxNDAsMTQgQEAgYm9vbCBpc1ZQOERlY29kZXJBdmFpbGFibGUoKQogICAgIHJldHVybiBu
b0VyciA9PSBWVFNlbGVjdEFuZENyZWF0ZVZpZGVvRGVjb2Rlckluc3RhbmNlKCd2cDA4Jywga0NG
QWxsb2NhdG9yRGVmYXVsdCwgbnVsbHB0ciwgbnVsbHB0cik7CiB9CiAKK3N0YXRpYyBib29sIHZw
OUhhcmR3YXJlRGVjb2RlckF2YWlsYWJsZSgpCit7CisgICAgaWYgKGF1dG8gZGlzYWJsZWRGb3JU
ZXN0aW5nID0gVlA5VGVzdGluZ092ZXJyaWRlczo6c2luZ2xldG9uKCkuaGFyZHdhcmVEZWNvZGVy
RGlzYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuICEqZGlzYWJsZWRGb3JUZXN0aW5nOworCisgICAg
cmV0dXJuIGNhbkxvYWRfVmlkZW9Ub29sYm94X1ZUSXNIYXJkd2FyZURlY29kZVN1cHBvcnRlZCgp
ICYmIFZUSXNIYXJkd2FyZURlY29kZVN1cHBvcnRlZChrQ01WaWRlb0NvZGVjVHlwZV9WUDkpOwor
fQorCiBzdGF0aWMgYm9vbCBpc1ZQOUNvZGVjQ29uZmlndXJhdGlvblJlY29yZFN1cHBvcnRlZChW
UENvZGVjQ29uZmlndXJhdGlvblJlY29yZCYgY29kZWNDb25maWd1cmF0aW9uKQogewogICAgIGlm
ICghaXNWUDlEZWNvZGVyQXZhaWxhYmxlKCkpCkBAIC0xNjEsNyArMTcwLDcgQEAgc3RhdGljIGJv
b2wgaXNWUDlDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmRTdXBwb3J0ZWQoVlBDb2RlY0NvbmZpZ3Vy
YXRpb25SZWNvcmQmIGMKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgLy8gSGFyZHdhcmUg
ZGVjb2RlcnMgYXJlIGFsd2F5cyBhdmFpbGFibGUuCi0gICAgaWYgKGNhbkxvYWRfVmlkZW9Ub29s
Ym94X1ZUSXNIYXJkd2FyZURlY29kZVN1cHBvcnRlZCgpICYmIFZUSXNIYXJkd2FyZURlY29kZVN1
cHBvcnRlZChrQ01WaWRlb0NvZGVjVHlwZV9WUDkpICYmICFoYXJkd2FyZVZQOURlY29kZXJEaXNh
YmxlZEZvclRlc3RpbmcpCisgICAgaWYgKHZwOUhhcmR3YXJlRGVjb2RlckF2YWlsYWJsZSgpKQog
ICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIC8vIEZvciB3YWxsLXBvd2VyZWQgZGV2aWNlcywg
YWx3YXlzIHJlcG9ydCBWUDkgYXMgc3VwcG9ydGVkLCBldmVuIGlmIG5vdCBwb3dlckVmZmljaWVu
dC4KQEAgLTE3NSw5ICsxODQsOCBAQCBzdGF0aWMgYm9vbCBpc1ZQOUNvZGVjQ29uZmlndXJhdGlv
blJlY29yZFN1cHBvcnRlZChWUENvZGVjQ29uZmlndXJhdGlvblJlY29yZCYgYwogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKIAogICAgIGJvb2wgaGFzNGtTY3JlZW4gPSBmYWxzZTsKLQotICAgIGlmIChz
Y3JlZW5TaXplQW5kU2NhbGVGb3JUZXN0aW5nKSB7Ci0gICAgICAgIGF1dG8gc2NyZWVuU2l6ZSA9
IEZsb2F0U2l6ZShzY3JlZW5TaXplQW5kU2NhbGVGb3JUZXN0aW5nLT53aWR0aCwgc2NyZWVuU2l6
ZUFuZFNjYWxlRm9yVGVzdGluZy0+aGVpZ2h0KS5zY2FsZWQoc2NyZWVuU2l6ZUFuZFNjYWxlRm9y
VGVzdGluZy0+c2NhbGUpOworICAgIGlmIChhdXRvIG92ZXJyaWRlRm9yVGVzdGluZyA9IFZQOVRl
c3RpbmdPdmVycmlkZXM6OnNpbmdsZXRvbigpLnZwOVNjcmVlblNpemVBbmRTY2FsZSgpKSB7Cisg
ICAgICAgIGF1dG8gc2NyZWVuU2l6ZSA9IEZsb2F0U2l6ZShvdmVycmlkZUZvclRlc3RpbmctPndp
ZHRoLCBvdmVycmlkZUZvclRlc3RpbmctPmhlaWdodCkuc2NhbGVkKG92ZXJyaWRlRm9yVGVzdGlu
Zy0+c2NhbGUpOwogICAgICAgICBoYXM0a1NjcmVlbiA9IHJlc29sdXRpb25DYXRlZ29yeShzY3Jl
ZW5TaXplKSA+PSBSZXNvbHV0aW9uQ2F0ZWdvcnk6OlJfNEs7CiAgICAgfSBlbHNlIHsKICAgICAg
ICAgZm9yIChhdXRvJiBzY3JlZW5EYXRhIDogZ2V0U2NyZWVuUHJvcGVydGllcygpLnNjcmVlbkRh
dGFNYXAudmFsdWVzKCkpIHsKQEAgLTI0Myw3ICsyNTEsNyBAQCBib29sIHZhbGlkYXRlVlBQYXJh
bWV0ZXJzKFZQQ29kZWNDb25maWd1cmF0aW9uUmVjb3JkJiBjb2RlY0NvbmZpZ3VyYXRpb24sIE1l
ZGlhQwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAotICAgIGlmIChjYW5Mb2Fk
X1ZpZGVvVG9vbGJveF9WVElzSGFyZHdhcmVEZWNvZGVTdXBwb3J0ZWQoKSAmJiBWVElzSGFyZHdh
cmVEZWNvZGVTdXBwb3J0ZWQoa0NNVmlkZW9Db2RlY1R5cGVfVlA5KSAmJiAhaGFyZHdhcmVWUDlE
ZWNvZGVyRGlzYWJsZWRGb3JUZXN0aW5nKSB7CisgICAgaWYgKHZwOUhhcmR3YXJlRGVjb2RlckF2
YWlsYWJsZSgpKSB7CiAgICAgICAgIC8vIEhXIFZQOSBEZWNvZGVyIGRvZXMgbm90IHN1cHBvcnQg
YWxwaGEgY2hhbm5lbDoKICAgICAgICAgaWYgKHZpZGVvQ29uZmlndXJhdGlvbi5hbHBoYUNoYW5u
ZWwgJiYgKnZpZGVvQ29uZmlndXJhdGlvbi5hbHBoYUNoYW5uZWwpCiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CkBAIC0yOTIsOCArMzAwLDggQEAgYm9vbCB2YWxpZGF0ZVZQUGFyYW1ldGVycyhW
UENvZGVjQ29uZmlndXJhdGlvblJlY29yZCYgY29kZWNDb25maWd1cmF0aW9uLCBNZWRpYUMKIAog
ICAgIGJvb2wgaGFzNGtTY3JlZW4gPSBmYWxzZTsKIAotICAgIGlmIChzY3JlZW5TaXplQW5kU2Nh
bGVGb3JUZXN0aW5nKSB7Ci0gICAgICAgIGF1dG8gc2NyZWVuU2l6ZSA9IEZsb2F0U2l6ZShzY3Jl
ZW5TaXplQW5kU2NhbGVGb3JUZXN0aW5nLT53aWR0aCwgc2NyZWVuU2l6ZUFuZFNjYWxlRm9yVGVz
dGluZy0+aGVpZ2h0KS5zY2FsZWQoc2NyZWVuU2l6ZUFuZFNjYWxlRm9yVGVzdGluZy0+c2NhbGUp
OworICAgIGlmIChhdXRvIG92ZXJyaWRlRm9yVGVzdGluZyA9IFZQOVRlc3RpbmdPdmVycmlkZXM6
OnNpbmdsZXRvbigpLnZwOVNjcmVlblNpemVBbmRTY2FsZSgpKSB7CisgICAgICAgIGF1dG8gc2Ny
ZWVuU2l6ZSA9IEZsb2F0U2l6ZShvdmVycmlkZUZvclRlc3RpbmctPndpZHRoLCBvdmVycmlkZUZv
clRlc3RpbmctPmhlaWdodCkuc2NhbGVkKG92ZXJyaWRlRm9yVGVzdGluZy0+c2NhbGUpOwogICAg
ICAgICBoYXM0a1NjcmVlbiA9IHJlc29sdXRpb25DYXRlZ29yeShzY3JlZW5TaXplKSA+PSBSZXNv
bHV0aW9uQ2F0ZWdvcnk6OlJfNEs7CiAgICAgfSBlbHNlIHsKICAgICAgICAgZm9yIChhdXRvJiBz
Y3JlZW5EYXRhIDogZ2V0U2NyZWVuUHJvcGVydGllcygpLnNjcmVlbkRhdGFNYXAudmFsdWVzKCkp
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCA2MWVhOWExNWJhOWNkMTkz
M2Q4M2U1NTI3ZDk5N2U3NDY2NWYyZTEwLi42Njk1NDg2MGU0MTJjZWI0OWQ0OTAzN2I0MzA3M2Vi
OWZiMjA1NjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC02MjcsMTMg
KzYyNywxMyBAQCBJbnRlcm5hbHM6OkludGVybmFscyhEb2N1bWVudCYgZG9jdW1lbnQpCiAjZW5k
aWYKIAogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHNldE92ZXJyaWRlU3lzdGVtSGFzQmF0dGVy
eUZvclRlc3RpbmcoV1RGOjpudWxsb3B0KTsKLSAgICBzZXRPdmVycmlkZVN5c3RlbUhhc0FDRm9y
VGVzdGluZyhXVEY6Om51bGxvcHQpOworICAgIFN5c3RlbUJhdHRlcnlTdGF0dXNUZXN0aW5nT3Zl
cnJpZGVzOjpzaW5nbGV0b24oKS5zZXRIYXNBQyhXVEY6Om51bGxvcHQpOworICAgIFN5c3RlbUJh
dHRlcnlTdGF0dXNUZXN0aW5nT3ZlcnJpZGVzOjpzaW5nbGV0b24oKS5zZXRIYXNCYXR0ZXJ5KFdU
Rjo6bnVsbG9wdCk7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShWUDkpICYmIFBMQVRGT1JNKENPQ09B
KQotICAgIHNldE92ZXJyaWRlVlA5SGFyZHdhcmVEZWNvZGVyRGlzYWJsZWRGb3JUZXN0aW5nKGZh
bHNlKTsKLSAgICByZXNldE92ZXJyaWRlVlA5U2NyZWVuU2l6ZUFuZFNjYWxlRm9yVGVzdGluZygp
OworICAgIFZQOVRlc3RpbmdPdmVycmlkZXM6OnNpbmdsZXRvbigpLnNldEhhcmR3YXJlRGVjb2Rl
ckRpc2FibGVkKFdURjo6bnVsbG9wdCk7CisgICAgVlA5VGVzdGluZ092ZXJyaWRlczo6c2luZ2xl
dG9uKCkuc2V0VlA5U2NyZWVuU2l6ZUFuZFNjYWxlKFdURjo6bnVsbG9wdCk7CiAjZW5kaWYKIH0K
IApAQCAtNTg0Miw3ICs1ODQyLDcgQEAgYm9vbCBJbnRlcm5hbHM6OnN5c3RlbUhhc0JhdHRlcnko
KSBjb25zdAogdm9pZCBJbnRlcm5hbHM6OnNldFN5c3RlbUhhc0JhdHRlcnlGb3JUZXN0aW5nKGJv
b2wgaGFzQmF0dGVyeSkKIHsKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBXZWJDb3JlOjpzZXRP
dmVycmlkZVN5c3RlbUhhc0JhdHRlcnlGb3JUZXN0aW5nKGhhc0JhdHRlcnkpOworICAgIFN5c3Rl
bUJhdHRlcnlTdGF0dXNUZXN0aW5nT3ZlcnJpZGVzOjpzaW5nbGV0b24oKS5zZXRIYXNCYXR0ZXJ5
KGhhc0JhdHRlcnkpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oaGFzQmF0dGVyeSk7CiAjZW5k
aWYKQEAgLTU4NTEsNyArNTg1MSw3IEBAIHZvaWQgSW50ZXJuYWxzOjpzZXRTeXN0ZW1IYXNCYXR0
ZXJ5Rm9yVGVzdGluZyhib29sIGhhc0JhdHRlcnkpCiB2b2lkIEludGVybmFsczo6c2V0U3lzdGVt
SGFzQUNGb3JUZXN0aW5nKGJvb2wgaGFzQUMpCiB7CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAg
V2ViQ29yZTo6c2V0T3ZlcnJpZGVTeXN0ZW1IYXNBQ0ZvclRlc3RpbmcoaGFzQUMpOworICAgIFN5
c3RlbUJhdHRlcnlTdGF0dXNUZXN0aW5nT3ZlcnJpZGVzOjpzaW5nbGV0b24oKS5zZXRIYXNBQyho
YXNBQyk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShoYXNBQyk7CiAjZW5kaWYKQEAgLTU4NjAs
NyArNTg2MCw3IEBAIHZvaWQgSW50ZXJuYWxzOjpzZXRTeXN0ZW1IYXNBQ0ZvclRlc3RpbmcoYm9v
bCBoYXNBQykKIHZvaWQgSW50ZXJuYWxzOjpzZXRIYXJkd2FyZVZQOURlY29kZXJEaXNhYmxlZEZv
clRlc3RpbmcoYm9vbCBkaXNhYmxlZCkKIHsKICNpZiBFTkFCTEUoVlA5KSAmJiBQTEFURk9STShD
T0NPQSkKLSAgICBXZWJDb3JlOjpzZXRPdmVycmlkZVZQOUhhcmR3YXJlRGVjb2RlckRpc2FibGVk
Rm9yVGVzdGluZyhkaXNhYmxlZCk7CisgICAgVlA5VGVzdGluZ092ZXJyaWRlczo6c2luZ2xldG9u
KCkuc2V0SGFyZHdhcmVEZWNvZGVyRGlzYWJsZWQoZGlzYWJsZWQpOwogI2Vsc2UKICAgICBVTlVT
RURfUEFSQU0oZGlzYWJsZWQpOwogI2VuZGlmCkBAIC01ODY5LDcgKzU4NjksNyBAQCB2b2lkIElu
dGVybmFsczo6c2V0SGFyZHdhcmVWUDlEZWNvZGVyRGlzYWJsZWRGb3JUZXN0aW5nKGJvb2wgZGlz
YWJsZWQpCiB2b2lkIEludGVybmFsczo6c2V0VlA5U2NyZWVuU2l6ZUFuZFNjYWxlRm9yVGVzdGlu
Zyhkb3VibGUgd2lkdGgsIGRvdWJsZSBoZWlnaHQsIGRvdWJsZSBzY2FsZSkKIHsKICNpZiBFTkFC
TEUoVlA5KSAmJiBQTEFURk9STShDT0NPQSkKLSAgICBXZWJDb3JlOjpzZXRPdmVycmlkZVZQOVNj
cmVlblNpemVBbmRTY2FsZUZvclRlc3Rpbmcod2lkdGgsIGhlaWdodCwgc2NhbGUpOworICAgIFZQ
OVRlc3RpbmdPdmVycmlkZXM6OnNpbmdsZXRvbigpLnNldFZQOVNjcmVlblNpemVBbmRTY2FsZSht
YWtlT3B0aW9uYWw8U2NyZWVuRGF0YU92ZXJyaWRlcz4oeyB3aWR0aCwgaGVpZ2h0LCBzY2FsZSB9
KSk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTSh3aWR0aCk7CiAgICAgVU5VU0VEX1BBUkFNKGhl
aWdodCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggZGFmMDM4MTQ1Mzg5ZDQ2NzY4MmQ0Yzk0YjYwMDg1N2Rk
MWUzMWE2MS4uYzNlOTYxMTE2MWFjMzc1NDUxZGY2ZGJhMmI2MDIzNmZhNDFjMzBlYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE5LTIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiTGliV2ViUlRDQ29kZWNzUHJveHkuaCIK
ICNpbmNsdWRlICJMaWJXZWJSVENDb2RlY3NQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTG9n
Z2luZy5oIgorI2luY2x1ZGUgIk1lZGlhT3ZlcnJpZGVzRm9yVGVzdGluZy5oIgogI2luY2x1ZGUg
IlJlbW90ZUF1ZGlvSGFyZHdhcmVMaXN0ZW5lclByb3h5LmgiCiAjaW5jbHVkZSAiUmVtb3RlQXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyUHJveHkuaCIKQEAgLTExOCw2ICsxMTksMTQgQEAKICNpbmNsdWRlICJS
ZW1vdGVNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5UHJveHlNZXNzYWdlcy5oIgogI2Vu
ZGlmCiAKKyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlIDxXZWJDb3JlL1N5c3RlbUJhdHRl
cnkuaD4KKyNlbmRpZgorCisjaWYgRU5BQkxFKFZQOSkgJiYgUExBVEZPUk0oQ09DT0EpCisjaW5j
bHVkZSA8V2ViQ29yZS9WUDlVdGlsaXRpZXNDb2NvYS5oPgorI2VuZGlmCisKIG5hbWVzcGFjZSBX
ZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTQyOSw2ICs0MzgsMTkgQEAg
dm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZWxlYXNlUmVtb3RlQ29tbWFuZExpc3Rl
bmVyKFJlbW90ZVJlbW90ZUNvbW1hbmQKICAgICBBU1NFUlRfVU5VU0VEKGZvdW5kLCBmb3VuZCk7
CiB9CiAKK3ZvaWQgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6c2V0TWVkaWFPdmVycmlkZXNG
b3JUZXN0aW5nKE1lZGlhT3ZlcnJpZGVzRm9yVGVzdGluZyBvdmVycmlkZXMpCit7CisjaWYgRU5B
QkxFKFZQOSkgJiYgUExBVEZPUk0oQ09DT0EpCisgICAgVlA5VGVzdGluZ092ZXJyaWRlczo6c2lu
Z2xldG9uKCkuc2V0SGFyZHdhcmVEZWNvZGVyRGlzYWJsZWQoV1RGTW92ZShvdmVycmlkZXMudnA5
SGFyZHdhcmVEZWNvZGVyRGlzYWJsZWQpKTsKKyAgICBWUDlUZXN0aW5nT3ZlcnJpZGVzOjpzaW5n
bGV0b24oKS5zZXRWUDlTY3JlZW5TaXplQW5kU2NhbGUoV1RGTW92ZShvdmVycmlkZXMudnA5U2Ny
ZWVuU2l6ZUFuZFNjYWxlKSk7CisjZW5kaWYKKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFN5
c3RlbUJhdHRlcnlTdGF0dXNUZXN0aW5nT3ZlcnJpZGVzOjpzaW5nbGV0b24oKS5zZXRIYXNBQyhX
VEZNb3ZlKG92ZXJyaWRlcy5zeXN0ZW1IYXNBQykpOworICAgIFN5c3RlbUJhdHRlcnlTdGF0dXNU
ZXN0aW5nT3ZlcnJpZGVzOjpzaW5nbGV0b24oKS5zZXRIYXNCYXR0ZXJ5KFdURk1vdmUob3ZlcnJp
ZGVzLnN5c3RlbUhhc0JhdHRlcnkpKTsKKyNlbmRpZgorfQorCiBib29sIEdQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OmRpc3BhdGNoTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24s
IElQQzo6RGVjb2RlciYgZGVjb2RlcikKIHsKICNpZiBFTkFCTEUoV0VCX0FVRElPKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
aCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgK
aW5kZXggOTJkMTgyNDU0ZTM4MGQxMzI5YWUxZjI0MzM5ZDFlYmIxZmYxMWE4NC4uY2QzMzY3ZWY3
NjRhZDc4NjJjZDkzYjNlNWEzMjZjMWE1YjIwODczMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTktMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTcwLDYgKzcwLDcgQEAg
Y2xhc3MgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDsKIGNsYXNzIFJlbW90ZUdyYXBoaWNzQ29udGV4
dEdMOwogY2xhc3MgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjsKIGNsYXNz
IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk7CitzdHJ1Y3QgTWVkaWFPdmVycmlkZXNGb3JU
ZXN0aW5nOwogc3RydWN0IFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb247CiAKIGNsYXNz
IEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MKQEAgLTE2NSw2ICsxNjYsNyBAQCBwcml2YXRlOgog
ICAgIHZvaWQgcmVsZWFzZUF1ZGlvSGFyZHdhcmVMaXN0ZW5lcihSZW1vdGVBdWRpb0hhcmR3YXJl
TGlzdGVuZXJJZGVudGlmaWVyKTsKICAgICB2b2lkIGNyZWF0ZVJlbW90ZUNvbW1hbmRMaXN0ZW5l
cihSZW1vdGVSZW1vdGVDb21tYW5kTGlzdGVuZXJJZGVudGlmaWVyKTsKICAgICB2b2lkIHJlbGVh
c2VSZW1vdGVDb21tYW5kTGlzdGVuZXIoUmVtb3RlUmVtb3RlQ29tbWFuZExpc3RlbmVySWRlbnRp
Zmllcik7CisgICAgdm9pZCBzZXRNZWRpYU92ZXJyaWRlc0ZvclRlc3RpbmcoTWVkaWFPdmVycmlk
ZXNGb3JUZXN0aW5nKTsKIAogICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50CiAgICAgdm9p
ZCBkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2Fn
ZXMuaW4KaW5kZXggYTM0MTI5ZmQxZDMwNTdjMzhjNmM0YmMzZTJhNjgzZjlkNTYwMWNjNi4uZGNj
MDRmZTYzNmY3ZmFhYjNmY2FjOGE1Nzk5MjI2OGQ1NGNlZjc0OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4K
KysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
bWVzc2FnZXMuaW4KQEAgLTEsNCArMSw0IEBACi0jIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxOS0yMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtNDAsNiArNDAsNyBAQCBtZXNzYWdlcyAtPiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzIFdh
bnRzRGlzcGF0Y2hNZXNzYWdlIHsKICNpZiBFTkFCTEUoVlA5KQogICAgIEVuYWJsZVZQOURlY29k
ZXJzKGJvb2wgc2hvdWxkRW5hYmxlVlA4RGVjb2RlciwgYm9vbCBzaG91bGRFbmFibGVWUDlEZWNv
ZGVyLCBib29sIHNob3VsZEVuYWJsZVZQOVNXRGVjb2RlcikKICNlbmRpZgorICAgIFNldE1lZGlh
T3ZlcnJpZGVzRm9yVGVzdGluZyhzdHJ1Y3QgV2ViS2l0OjpNZWRpYU92ZXJyaWRlc0ZvclRlc3Rp
bmcgY29uZmlndXJhdGlvbikKICAgICBDcmVhdGVBdWRpb0hhcmR3YXJlTGlzdGVuZXIoV2ViS2l0
OjpSZW1vdGVBdWRpb0hhcmR3YXJlTGlzdGVuZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCiAgICAg
UmVsZWFzZUF1ZGlvSGFyZHdhcmVMaXN0ZW5lcihXZWJLaXQ6OlJlbW90ZUF1ZGlvSGFyZHdhcmVM
aXN0ZW5lcklkZW50aWZpZXIgaWRlbnRpZmllcikKICAgICBDcmVhdGVSZW1vdGVDb21tYW5kTGlz
dGVuZXIoV2ViS2l0OjpSZW1vdGVSZW1vdGVDb21tYW5kTGlzdGVuZXJJZGVudGlmaWVyIGlkZW50
aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCAzOGQwMDMyMGY1NDUwMzMyYWZkY2E5MDdkYWE1MTJiZjgyZjk2YmQ1Li43OTI4OWI1
ZGY1Yjk0MzUxYTNiZGExOGNmOWVjN2I0MTFiZjFjMDMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQyNiwxMiArNDI2LDYgQEAKIAkJ
MUNBOEI5NDYxMjdDODgyQTAwNTc2QzJCIC8qIFdlYkluc3BlY3RvclByb3h5TWVzc2FnZXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQThCOTQ0MTI3
Qzg4MkEwMDU3NkMyQiAvKiBXZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2VzLmggKi87IH07CiAJCTFD
QkJFNEEwMTlCNjZDNTMwMDZCN0Q4MSAvKiBXZWJJbnNwZWN0b3JVSU1lc3NhZ2VSZWNlaXZlci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0JCRTQ5
RTE5QjY2QzUzMDA2QjdEODEgLyogV2ViSW5zcGVjdG9yVUlNZXNzYWdlUmVjZWl2ZXIuY3BwICov
OyB9OwogCQkxQ0JCRTRBMTE5QjY2QzUzMDA2QjdEODEgLyogV2ViSW5zcGVjdG9yVUlNZXNzYWdl
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNCQkU0
OUYxOUI2NkM1MzAwNkI3RDgxIC8qIFdlYkluc3BlY3RvclVJTWVzc2FnZXMuaCAqLzsgfTsKLQkJ
MUQ0NzY1ODYyNUNDQTQxNjAwN0FGMzEyIC8qIFJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDQ3NjU4NDI1
Q0NBNDE2MDA3QUYzMTIgLyogUmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHkuaCAqLzsgfTsKLQkJ
MUQ0NzY1OTMyNUNDQ0U5MzAwN0FGMzEyIC8qIFJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5TWVz
c2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFE
NDc2NTkwMjVDQ0NFOTMwMDdBRjMxMiAvKiBSZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eU1lc3Nh
Z2VzLmggKi87IH07Ci0JCTFENDc2NTk0MjVDQ0NFOTMwMDdBRjMxMiAvKiBSZW1vdGVJbWFnZURl
Y29kZXJBVkZQcm94eU1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMUQ0NzY1OTEyNUNDQ0U5MzAwN0FGMzEyIC8qIFJlbW90ZUlt
YWdlRGVjb2RlckFWRlByb3h5TWVzc2FnZXNSZXBsaWVzLmggKi87IH07Ci0JCTFENDc2NTlDMjVD
RTc0QUQwMDdBRjMxMiAvKiBSZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2VyTWVzc2FnZXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFENDc2NTk5MjVD
RTc0QUMwMDdBRjMxMiAvKiBSZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2VyTWVzc2FnZXMuaCAq
LzsgfTsKLQkJMUQ0NzY1OUQyNUNFNzRBRDAwN0FGMzEyIC8qIFJlbW90ZUltYWdlRGVjb2RlckFW
Rk1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDFENDc2NTlBMjVDRTc0QUMwMDdBRjMxMiAvKiBSZW1vdGVJbWFnZURl
Y29kZXJBVkZNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi87IH07Ci0JCTFENDc2NUExMjVDRjU3
NDAwMDdBRjMxMiAvKiBSZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2VyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDQ3NjU5RjI1Q0Y1NzQwMDA3QUYz
MTIgLyogUmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFuYWdlci5oICovOyB9OwogCQkxRDRENzM3MDIz
QTlFNTQ3MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQ0
RDczNkIyM0E5REY1NTAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJMUQ0RDczNzEyM0E5RTU2MjAwNzE3QTI1IC8qIFJlbW90
ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFENEQ3MzZDMjNBOURGNjAwMDcxN0EyNSAvKiBSZW1vdGVN
ZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzLmggKi87IH07CiAJCTFENEQ3Mzc2MjNBOUVEMTgw
MDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQ0RDczNzUyM0E5
RUI2ODAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVz
LmggKi87IH07CkBAIC0yMzgwLDYgKzIzNzQsNyBAQAogCQkwNzI5N0Y5RDFDMTdCQkVBMjIzRjA3
MzUgLyogRGV2aWNlSWRIYXNoU2FsdFN0b3JhZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRGV2aWNlSWRIYXNoU2FsdFN0b3JhZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMDcyOTdGQTAxQzE4NkFEQjAwM0YwNzM1IC8qIFdLVXNlck1lZGlhUGVybWlzc2lv
bkNoZWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLVXNlck1l
ZGlhUGVybWlzc2lvbkNoZWNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcy
OTdGQTExQzE4NkFEQjAwM0YwNzM1IC8qIFdLVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLVXNlck1lZGlhUGVybWlzc2lvbkNoZWNr
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3NDQ3MjA1MjVFNUJEMDIwMDU0QjIz
MSAvKiBNZWRpYU92ZXJyaWRlc0ZvclRlc3RpbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFPdmVy
cmlkZXNGb3JUZXN0aW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NDg3OUI3
MjM3M0E5MDkwMEY1Njc4RSAvKiBBcHBLaXRTb2Z0TGluay5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBBcHBL
aXRTb2Z0TGluay5oOyBwYXRoID0gaW9zL0FwcEtpdFNvZnRMaW5rLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTA3NDg3OUI4MjM3M0E5MDkwMEY1Njc4RSAvKiBBcHBLaXRTb2Z0TGlu
ay5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IEFwcEtpdFNvZnRMaW5rLm1tOyBwYXRoID0gaW9z
L0FwcEtpdFNvZnRMaW5rLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzRFNzVG
QjFERjFGRDEzMDBEMzE4RUMgLyogVXNlck1lZGlhUHJvY2Vzc01hbmFnZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVXNlck1lZGlhUHJvY2Vzc01hbmFnZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTYwMjIsNiArNjAxNyw3IEBACiAJCQkJQ0RBOTU5Mzky
NDEyQjE3NTAwOTEwRUVGIC8qIGlvcyAqLywKIAkJCQkwNzFCQzU3OTIzQzkzQkI5MDA2ODBEN0Mg
LyogQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwICovLAogCQkJCTA3MUJDNTc3MjNDOTNCQjcw
MDY4MEQ3QyAvKiBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5oICovLAorCQkJCTA3NDQ3MjA1MjVF
NUJEMDIwMDU0QjIzMSAvKiBNZWRpYU92ZXJyaWRlc0ZvclRlc3RpbmcuaCAqLywKIAkJCQkwNzky
MzEzMTIzOUIzQjBDMDA5NTk4RTIgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcCAqLywK
IAkJCQkwNzkyMzEzMjIzOUIzQjBDMDA5NTk4RTIgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
LmggKi8sCiAJCQkJMDdCMUQwNEIyM0QzOEZDRTAwMzk5QTZFIC8qIE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZS5tZXNzYWdlcy5pbiAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHAKaW5kZXggNmRlMWRkYzBhYzFiMzAzMTJl
NDU3N2Y2ZjNlNTlmOTBjMmRkMjVlMS4uNGY4ZDExYzg0YTQzOTYyMzgwOTNiOTUxMzA3ZjdlNDFj
ZTVkYjgwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9j
ZXNzQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQ
cm9jZXNzQ29ubmVjdGlvbi5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxOS0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkxpYldlYlJUQ0Nv
ZGVjcy5oIgogI2luY2x1ZGUgIkxpYldlYlJUQ0NvZGVjc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAi
TG9nZ2luZy5oIgorI2luY2x1ZGUgIk1lZGlhT3ZlcnJpZGVzRm9yVGVzdGluZy5oIgogI2luY2x1
ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTWVkaWFT
b3VyY2VQcml2YXRlUmVtb3RlTWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVBdWRpb0hhcmR3
YXJlTGlzdGVuZXJNZXNzYWdlcy5oIgpAQCAtNzYsNiArNzcsMTQgQEAKICNpbmNsdWRlICJSZW1v
dGVHcmFwaGljc0NvbnRleHRHTFByb3h5TWVzc2FnZXMuaCIKICNlbmRpZgogCisjaWYgUExBVEZP
Uk0oQ09DT0EpCisjaW5jbHVkZSA8V2ViQ29yZS9TeXN0ZW1CYXR0ZXJ5Lmg+CisjZW5kaWYKKwor
I2lmIEVOQUJMRShWUDkpICYmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUgPFdlYkNvcmUvVlA5
VXRpbGl0aWVzQ29jb2EuaD4KKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogCkBAIC0yNDIsNiArMjUxLDM1IEBAIHZvaWQgR1BVUHJvY2Vzc0Nv
bm5lY3Rpb246OnVwZGF0ZVBhcmFtZXRlcnMoY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVy
cyYgcGFyCiAjZW5kaWYKIH0KIAordm9pZCBHUFVQcm9jZXNzQ29ubmVjdGlvbjo6dXBkYXRlTWVk
aWFDb25maWd1cmF0aW9uKCkKK3sKKyAgICBib29sIHNldHRpbmdzQ2hhbmdlZCA9IGZhbHNlOwor
CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgaWYgKG1fbWVkaWFPdmVycmlkZXNGb3JUZXN0aW5n
LnN5c3RlbUhhc0FDICE9IFN5c3RlbUJhdHRlcnlTdGF0dXNUZXN0aW5nT3ZlcnJpZGVzOjpzaW5n
bGV0b24oKS5oYXNBQygpIHx8IG1fbWVkaWFPdmVycmlkZXNGb3JUZXN0aW5nLnN5c3RlbUhhc0Jh
dHRlcnkgIT0gU3lzdGVtQmF0dGVyeVN0YXR1c1Rlc3RpbmdPdmVycmlkZXM6OnNpbmdsZXRvbigp
Lmhhc0JhdHRlcnkoKSkKKyAgICAgICAgc2V0dGluZ3NDaGFuZ2VkID0gdHJ1ZTsKKyNlbmRpZgor
CisjaWYgRU5BQkxFKFZQOSkgJiYgUExBVEZPUk0oQ09DT0EpCisgICAgaWYgKG1fbWVkaWFPdmVy
cmlkZXNGb3JUZXN0aW5nLnZwOUhhcmR3YXJlRGVjb2RlckRpc2FibGVkICE9IFZQOVRlc3RpbmdP
dmVycmlkZXM6OnNpbmdsZXRvbigpLmhhcmR3YXJlRGVjb2RlckRpc2FibGVkKCkgfHwgbV9tZWRp
YU92ZXJyaWRlc0ZvclRlc3RpbmcudnA5U2NyZWVuU2l6ZUFuZFNjYWxlICE9IFZQOVRlc3RpbmdP
dmVycmlkZXM6OnNpbmdsZXRvbigpLnZwOVNjcmVlblNpemVBbmRTY2FsZSgpKQorICAgICAgICBz
ZXR0aW5nc0NoYW5nZWQgPSB0cnVlOworI2VuZGlmCisKKyAgICBpZiAoIXNldHRpbmdzQ2hhbmdl
ZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9tZWRpYU92ZXJyaWRlc0ZvclRlc3RpbmcgPSB7
CisgICAgICAgIFN5c3RlbUJhdHRlcnlTdGF0dXNUZXN0aW5nT3ZlcnJpZGVzOjpzaW5nbGV0b24o
KS5oYXNBQygpLAorICAgICAgICBTeXN0ZW1CYXR0ZXJ5U3RhdHVzVGVzdGluZ092ZXJyaWRlczo6
c2luZ2xldG9uKCkuaGFzQmF0dGVyeSgpLAorCisgICAgICAgIFZQOVRlc3RpbmdPdmVycmlkZXM6
OnNpbmdsZXRvbigpLmhhcmR3YXJlRGVjb2RlckRpc2FibGVkKCksCisgICAgICAgIFZQOVRlc3Rp
bmdPdmVycmlkZXM6OnNpbmdsZXRvbigpLnZwOVNjcmVlblNpemVBbmRTY2FsZSgpLAorICAgIH07
CisKKyAgICBjb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6R1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6U2V0TWVkaWFPdmVycmlkZXNGb3JUZXN0aW5nKG1fbWVkaWFPdmVycmlkZXNGb3JUZXN0
aW5nKSwgeyB9KTsKKworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVO
QUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
R1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaAppbmRleCAwYjdiZjhhOTcxZjY2YWRhYjUxZGM3MzU1MWM4
YTAxM2Q3MWU5NGZjLi4wMGMwYzJmMDAzYTNhODk3ZGVjOTI5Njg5MjkxZmJmYzVmMzZkNWU4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0
aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVj
dGlvbi5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiAjaW5j
bHVkZSAiQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIk1lZGlhT3ZlcnJpZGVzRm9yVGVzdGluZy5o
IgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlck1hcC5oIgogI2luY2x1ZGUgIlNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllck1hbmFnZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTWVkaWFT
ZXNzaW9uLmg+CkBAIC00Myw2ICs0NCw3IEBAIGNsYXNzIFJlbW90ZUNETUZhY3Rvcnk7CiBjbGFz
cyBSZW1vdGVNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5OwogY2xhc3MgUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyOwogY2xhc3MgUmVtb3RlTGVnYWN5Q0RNRmFjdG9yeTsKK3N0cnVjdCBP
dmVycmlkZVNjcmVlbkRhdGFGb3JUZXN0aW5nOwogc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFt
ZXRlcnM7CiAKIGNsYXNzIEdQVVByb2Nlc3NDb25uZWN0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8
R1BVUHJvY2Vzc0Nvbm5lY3Rpb24+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8R1BVUHJvY2Vzc0Nv
bm5lY3Rpb24+LCBJUEM6OkNvbm5lY3Rpb246OkNsaWVudCB7CkBAIC04MSw2ICs4Myw3IEBAIHB1
YmxpYzoKICAgICBSZW1vdGVNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5JiBtZWRpYUVu
Z2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5KCk7CiAKICAgICB2b2lkIHVwZGF0ZVBhcmFtZXRlcnMo
Y29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYpOworICAgIHZvaWQgdXBkYXRlTWVkaWFD
b25maWd1cmF0aW9uKCk7CiAKICNpZiBFTkFCTEUoVlA5KQogICAgIGJvb2wgaXNWUDhEZWNvZGVy
RW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZW5hYmxlVlA4RGVjb2RlcjsgfQpAQCAtMTI5LDYg
KzEzMiwxMSBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9lbmFibGVWUDlEZWNvZGVyIHsgZmFsc2Ug
fTsKICAgICBib29sIG1fZW5hYmxlVlA5U1dEZWNvZGVyIHsgZmFsc2UgfTsKICNlbmRpZgorCisj
aWYgUExBVEZPUk0oQ09DT0EpCisgICAgTWVkaWFPdmVycmlkZXNGb3JUZXN0aW5nIG1fbWVkaWFP
dmVycmlkZXNGb3JUZXN0aW5nOworI2VuZGlmCisKICAgICBXZWFrSGFzaFNldDxDbGllbnQ+IG1f
Y2xpZW50czsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvTWVkaWFPdmVycmlkZXNGb3JUZXN0aW5nLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL01lZGlhT3ZlcnJpZGVzRm9yVGVzdGluZy5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUzMWY5
ZGE3Yzk3Mzk2M2MzNGIyZWEzZTI5ZTFhY2Q2YzZkZmUxOTAKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhT3ZlcnJpZGVzRm9yVGVzdGlu
Zy5oCkBAIC0wLDAgKzEsODQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgPFdlYkNvcmUvVlA5VXRpbGl0aWVzLmg+CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitzdHJ1Y3QgTWVkaWFPdmVycmlkZXNGb3JUZXN0aW5nIHsK
KyAgICBPcHRpb25hbDxib29sPiBzeXN0ZW1IYXNBQzsKKyAgICBPcHRpb25hbDxib29sPiBzeXN0
ZW1IYXNCYXR0ZXJ5OworCisgICAgT3B0aW9uYWw8Ym9vbD4gdnA5SGFyZHdhcmVEZWNvZGVyRGlz
YWJsZWQ7CisgICAgT3B0aW9uYWw8V2ViQ29yZTo6U2NyZWVuRGF0YU92ZXJyaWRlcz4gdnA5U2Ny
ZWVuU2l6ZUFuZFNjYWxlOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KKyAgICB2b2lk
IGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8
PCBzeXN0ZW1IYXNBQzsKKyAgICAgICAgZW5jb2RlciA8PCBzeXN0ZW1IYXNCYXR0ZXJ5OworICAg
ICAgICBlbmNvZGVyIDw8IHZwOUhhcmR3YXJlRGVjb2RlckRpc2FibGVkOworICAgICAgICBlbmNv
ZGVyIDw8IHZwOVNjcmVlblNpemVBbmRTY2FsZTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZSA8Y2xh
c3MgRGVjb2Rlcj4KKyAgICBzdGF0aWMgT3B0aW9uYWw8TWVkaWFPdmVycmlkZXNGb3JUZXN0aW5n
PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIE9wdGlvbmFsPE9wdGlv
bmFsPGJvb2w+PiBzeXN0ZW1IYXNBQzsKKyAgICAgICAgZGVjb2RlciA+PiBzeXN0ZW1IYXNBQzsK
KyAgICAgICAgaWYgKCFzeXN0ZW1IYXNBQykKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7CisKKyAgICAgICAgT3B0aW9uYWw8T3B0aW9uYWw8Ym9vbD4+IHN5c3RlbUhhc0JhdHRlcnk7
CisgICAgICAgIGRlY29kZXIgPj4gc3lzdGVtSGFzQmF0dGVyeTsKKyAgICAgICAgaWYgKCFzeXN0
ZW1IYXNCYXR0ZXJ5KQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAg
ICBPcHRpb25hbDxPcHRpb25hbDxib29sPj4gdnA5SGFyZHdhcmVEZWNvZGVyRGlzYWJsZWQ7Cisg
ICAgICAgIGRlY29kZXIgPj4gdnA5SGFyZHdhcmVEZWNvZGVyRGlzYWJsZWQ7CisgICAgICAgIGlm
ICghdnA5SGFyZHdhcmVEZWNvZGVyRGlzYWJsZWQpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OworCisgICAgICAgIE9wdGlvbmFsPE9wdGlvbmFsPFdlYkNvcmU6OlNjcmVlbkRhdGFP
dmVycmlkZXM+PiB2cDlTY3JlZW5TaXplQW5kU2NhbGU7CisgICAgICAgIGRlY29kZXIgPj4gdnA5
U2NyZWVuU2l6ZUFuZFNjYWxlOworICAgICAgICBpZiAoIXZwOVNjcmVlblNpemVBbmRTY2FsZSkK
KyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHt7Cisg
ICAgICAgICAgICAqc3lzdGVtSGFzQUMsCisgICAgICAgICAgICAqc3lzdGVtSGFzQmF0dGVyeSwK
KyAgICAgICAgICAgICp2cDlIYXJkd2FyZURlY29kZXJEaXNhYmxlZCwKKyAgICAgICAgICAgICp2
cDlTY3JlZW5TaXplQW5kU2NhbGUsCisgICAgICAgIH19OworICAgIH0KK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhRW5naW5lQ29u
ZmlndXJhdGlvbkZhY3RvcnkuY3BwCmluZGV4IDU3MGQwMjJjNjJmNWFkMzU4NTIzZGZlN2I3ZTYw
YmU2NmY1YWJjMzEuLmVmNTcwY2IxZThlOWE4NjUxMGE1NjI1YWEwYTY3NDhmMGRmMjkwNmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFF
bmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5LmNwcApA
QCAtNTAsMjQgKzUwLDMwIEBAIFJlbW90ZU1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3Rvcnk6
On5SZW1vdGVNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5KCkKIHZvaWQgUmVtb3RlTWVk
aWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeTo6cmVnaXN0ZXJGYWN0b3J5KCkKIHsKICAgICBN
ZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5OjpjbGVhckZhY3RvcmllcygpOwotICAgIE1l
ZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3Rvcnk6Omluc3RhbGxGYWN0b3J5KHsKLSAgICAgICAg
W3dlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyldIChNZWRpYURlY29kaW5nQ29uZmlndXJhdGlv
biYmIGNvbmZpZ3VyYXRpb24sIE1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3Rvcnk6OkRlY29k
aW5nQ29uZmlndXJhdGlvbkNhbGxiYWNrJiYgY2FsbGJhY2spIHsKLSAgICAgICAgICAgIGlmICgh
d2Vha1RoaXMpIHsKLSAgICAgICAgICAgICAgICBjYWxsYmFjayh7eyB9LCBXVEZNb3ZlKGNvbmZp
Z3VyYXRpb24pfSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotCi0g
ICAgICAgICAgICB3ZWFrVGhpcy0+Y3JlYXRlRGVjb2RpbmdDb25maWd1cmF0aW9uKFdURk1vdmUo
Y29uZmlndXJhdGlvbiksIFdURk1vdmUoY2FsbGJhY2spKTsKLSAgICAgICAgfSwKLSAgICAgICAg
W3dlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyldIChNZWRpYUVuY29kaW5nQ29uZmlndXJhdGlv
biYmIGNvbmZpZ3VyYXRpb24sIE1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3Rvcnk6OkVuY29k
aW5nQ29uZmlndXJhdGlvbkNhbGxiYWNrJiYgY2FsbGJhY2spIHsKLSAgICAgICAgICAgIGlmICgh
d2Vha1RoaXMpIHsKLSAgICAgICAgICAgICAgICBjYWxsYmFjayh7eyB9LCBXVEZNb3ZlKGNvbmZp
Z3VyYXRpb24pfSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotCi0g
ICAgICAgICAgICB3ZWFrVGhpcy0+Y3JlYXRlRW5jb2RpbmdDb25maWd1cmF0aW9uKFdURk1vdmUo
Y29uZmlndXJhdGlvbiksIFdURk1vdmUoY2FsbGJhY2spKTsKLSAgICAgICAgfSwKLSAgICB9KTsK
KworICAgIGF1dG8gY3JlYXRlRGVjb2RpbmdDb25maWd1cmF0aW9uID0gW3dlYWtUaGlzID0gbWFr
ZVdlYWtQdHIodGhpcyldIChNZWRpYURlY29kaW5nQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRp
b24sIE1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3Rvcnk6OkRlY29kaW5nQ29uZmlndXJhdGlv
bkNhbGxiYWNrJiYgY2FsbGJhY2spIHsKKyAgICAgICAgaWYgKCF3ZWFrVGhpcykgeworICAgICAg
ICAgICAgY2FsbGJhY2soe3sgfSwgV1RGTW92ZShjb25maWd1cmF0aW9uKX0pOworICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgd2Vha1RoaXMtPmNyZWF0ZURlY29kaW5n
Q29uZmlndXJhdGlvbihXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pLCBXVEZNb3ZlKGNhbGxiYWNrKSk7
CisgICAgfTsKKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIE1lZGlhRW5naW5lQ29uZmlndXJh
dGlvbkZhY3Rvcnk6OkNyZWF0ZUVuY29kaW5nQ29uZmlndXJhdGlvbiBjcmVhdGVFbmNvZGluZ0Nv
bmZpZ3VyYXRpb24gPSBudWxscHRyOworI2Vsc2UKKyAgICBhdXRvIGNyZWF0ZUVuY29kaW5nQ29u
ZmlndXJhdGlvbiA9IFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpXSAoTWVkaWFFbmNvZGlu
Z0NvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uLCBNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25G
YWN0b3J5OjpFbmNvZGluZ0NvbmZpZ3VyYXRpb25DYWxsYmFjayYmIGNhbGxiYWNrKSB7CisgICAg
ICAgIGlmICghd2Vha1RoaXMpIHsKKyAgICAgICAgICAgIGNhbGxiYWNrKHt7IH0sIFdURk1vdmUo
Y29uZmlndXJhdGlvbil9KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAg
ICAgIHdlYWtUaGlzLT5jcmVhdGVFbmNvZGluZ0NvbmZpZ3VyYXRpb24oV1RGTW92ZShjb25maWd1
cmF0aW9uKSwgV1RGTW92ZShjYWxsYmFjaykpOworICAgIH07CisjZW5kaWYKKworICAgIE1lZGlh
RW5naW5lQ29uZmlndXJhdGlvbkZhY3Rvcnk6Omluc3RhbGxGYWN0b3J5KHsgV1RGTW92ZShjcmVh
dGVEZWNvZGluZ0NvbmZpZ3VyYXRpb24pLCBXVEZNb3ZlKGNyZWF0ZUVuY29kaW5nQ29uZmlndXJh
dGlvbikgfSk7CiB9CiAKIGNvbnN0IGNoYXIqIFJlbW90ZU1lZGlhRW5naW5lQ29uZmlndXJhdGlv
bkZhY3Rvcnk6OnN1cHBsZW1lbnROYW1lKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmNwcAppbmRleCAyOTg5YTFhMDRiZGNmMmVkNGJmN2FlZWZmMTk2ZDNmNzI3NWE0NzNlLi4z
NTJjYTI2YmE5OWEzZDkxZWFmNWRhNGNhNTZkODFkMTYyYjkzYzIxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC0xMzAsNiArMTMwLDcgQEAKICNpbmNsdWRlIDxX
ZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2Vy
Q29udGV4dERhdGEuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9TeXN0ZW1CYXR0ZXJ5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyR2VzdHVyZUlu
ZGljYXRvci5oPgogI2luY2x1ZGUgPHd0Zi9BbGdvcml0aG1zLmg+CiAjaW5jbHVkZSA8d3RmL0Nh
bGxiYWNrQWdncmVnYXRvci5oPgpAQCAtMTk2NSw2ICsxOTY2LDE4IEBAIHZvaWQgV2ViUHJvY2Vz
czo6c2V0VXNlR1BVUHJvY2Vzc0Zvck1lZGlhKGJvb2wgdXNlR1BVUHJvY2Vzc0Zvck1lZGlhKQog
ICAgICAgICBXZWJDb3JlOjpSZW1vdGVDb21tYW5kTGlzdGVuZXI6OnNldENyZWF0aW9uRnVuY3Rp
b24oW3RoaXNdIChXZWJDb3JlOjpSZW1vdGVDb21tYW5kTGlzdGVuZXJDbGllbnQmIGNsaWVudCkg
eyByZXR1cm4gUmVtb3RlUmVtb3RlQ29tbWFuZExpc3RlbmVyOjpjcmVhdGUoY2xpZW50LCAqdGhp
cyk7IH0pOwogICAgIGVsc2UKICAgICAgICAgV2ViQ29yZTo6UmVtb3RlQ29tbWFuZExpc3RlbmVy
OjpyZXNldENyZWF0aW9uRnVuY3Rpb24oKTsKKworICAgIGlmICh1c2VHUFVQcm9jZXNzRm9yTWVk
aWEpIHsKKyAgICAgICAgU3lzdGVtQmF0dGVyeVN0YXR1c1Rlc3RpbmdPdmVycmlkZXM6OnNpbmds
ZXRvbigpLnNldENvbmZpZ3VyYXRpb25DaGFuZ2VkQ2FsbGJhY2soW3RoaXNdICgpIHsKKyAgICAg
ICAgICAgIGVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkudXBkYXRlTWVkaWFDb25maWd1cmF0
aW9uKCk7CisgICAgICAgIH0pOworICAgICAgICBWUDlUZXN0aW5nT3ZlcnJpZGVzOjpzaW5nbGV0
b24oKS5zZXRDb25maWd1cmF0aW9uQ2hhbmdlZENhbGxiYWNrKFt0aGlzXSAoKSB7CisgICAgICAg
ICAgICBlbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLnVwZGF0ZU1lZGlhQ29uZmlndXJhdGlv
bigpOworICAgICAgICB9KTsKKyAgICB9IGVsc2UgeworICAgICAgICBTeXN0ZW1CYXR0ZXJ5U3Rh
dHVzVGVzdGluZ092ZXJyaWRlczo6c2luZ2xldG9uKCkuc2V0Q29uZmlndXJhdGlvbkNoYW5nZWRD
YWxsYmFjayhudWxscHRyKTsKKyAgICAgICAgVlA5VGVzdGluZ092ZXJyaWRlczo6c2luZ2xldG9u
KCkuc2V0Q29uZmlndXJhdGlvbkNoYW5nZWRDYWxsYmFjayhudWxscHRyKTsKKyAgICB9CiB9CiAK
IGJvb2wgV2ViUHJvY2Vzczo6c2hvdWxkVXNlUmVtb3RlUmVuZGVyaW5nRm9yKFJlbmRlcmluZ1B1
cnBvc2UgcHVycG9zZSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkMWJiYzRiYTJmYzdkZTY3MzUxMDk1MmJjYTVlOWU1NzEz
NTA0NGY2Li4wMWQ2ZDRlY2M1MzRjYWE3MGUzMzJkYWJiZTczZGE0N2VmMWRjZWU2IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTMgQEAKKzIwMjEtMDItMjQgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBh
cHBsZS5jb20+CisKKyAgICAgICAgW0dQVVBdIFNvbWUgbWVkaWEtY2FwYWJpbGl0aWVzIHRlc3Rz
IGZhaWwgd2hlbiBtZWRpYSBpbiBHUFUgUHJvY2VzcyBpcyBlbmFibGVkCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjE2OTEKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzc0NDM5NDIwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogZ3B1LXByb2Nlc3MvVGVzdEV4cGVjdGF0aW9uczogVW4tc2tpcCB0aGUg
cGFzc2luZyB0ZXN0cy4KKwogMjAyMS0wMi0yMiAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29t
PgogCiAgICAgICAgIFJlc3luYyB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zaXppbmcvYXNw
ZWN0LXJhdGlvIGZyb20gdXBzdHJlYW0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2dwdS1wcm9j
ZXNzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9ncHUtcHJvY2Vzcy9UZXN0RXhwZWN0
YXRpb25zCmluZGV4IGE0NTQwNjQ5MTY4MzU1ZjQ4NzUyMDFkYzVhZjM4ZGU2ZTA2NWMxMGEuLjEw
Zjg4ODAwMDk4NTEyODliNjgwMzg0YzU5ZTg4ZTBmNjk5MDJiYjggMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2dwdS1wcm9jZXNzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvZ3B1
LXByb2Nlc3MvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTYzLDExICsxNjMsNiBAQCBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhLXNvdXJjZS9Tb3VyY2VCdWZmZXItYWJvcnQtdXBk
YXRpbmcuaHRtbCBbCiBtZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLXJlc2l6ZS5odG1s
IFsgVGltZW91dCBdCiBwbGF0Zm9ybS9tYWMvbWVkaWEvbWVkaWEtc291cmNlL3ZpZGVvcGxheWJh
Y2txdWFsaXR5LWRlY29tcHJlc3Npb25zZXNzaW9uLmh0bWwgWyBGYWlsdXJlIF0KIAotIyB3ZWJr
aXQub3JnL2IvMjIxNjkxCi1tZWRpYS9tZWRpYWNhcGFiaWxpdGllcy9tZWRpYWNhcGFiaWxpdGll
cy10eXBlcy5odG1sIFsgRmFpbHVyZSBdCi1wbGF0Zm9ybS9tYWMvbWVkaWEvbWVkaWFjYXBhYmls
aXRpZXMvbWVkaWFjYXBhYmlsaXRpZXMtZW5jb2RpbmdJbmZvLXVuZGVmaW5lZC5odG1sIFsgRmFp
bHVyZSBdCi1wbGF0Zm9ybS9tYWMvbWVkaWEvbWVkaWFjYXBhYmlsaXRpZXMvdnA5LWRlY29kaW5n
SW5mby1zdy5odG1sIFsgRmFpbHVyZSBdCi0KIHN2Zy9jYW52YXMvY2FudmFzLWdsb2JhbC1hbHBo
YS1zdmcuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogCiAjIHdlYmtpdC5vcmcvYi8yMjA4MDUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421451</attachid>
            <date>2021-02-24 13:21:49 -0800</date>
            <delta_ts>2021-02-24 15:13:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221691-20210224132148.patch</filename>
            <type>text/plain</type>
            <size>40651</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczNDMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTgwZjE2YmUwZWU2OWJh
Y2FiMTUzNTY4ZTZiODU0MWVhNDliNDMyZi4uMzRmNWQ2NDRhMGMzZDQwY2Y4YzE5NmQzYjNlMmE3
NjliNTQwNzAwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDIxLTAyLTI0ICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtHUFVQXSBTb21l
IG1lZGlhLWNhcGFiaWxpdGllcyB0ZXN0cyBmYWlsIHdoZW4gbWVkaWEgaW4gR1BVIFByb2Nlc3Mg
aXMgZW5hYmxlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjIxNjkxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NDQzOTQyMD4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTeW5jIGJhdHRlcnkgc3RhdHVz
IGFuZCBWUDkgdGVzdGluZyBvdmVycmlkZXMgc2V0IGJ5IEludGVybmFscyB0byB0aGUgR1BVIHBy
b2Nlc3MgCisgICAgICAgIHdoZW4gdGhleSBjaGFuZ2UuCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
LCBmaXhlcyBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1N5c3Rl
bUJhdHRlcnkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9TeXN0ZW1CYXR0ZXJ5Lm1tOgor
ICAgICAgICAoV2ViQ29yZTo6c3lzdGVtSGFzQmF0dGVyeSk6CisgICAgICAgIChXZWJDb3JlOjpz
eXN0ZW1IYXNBQyk6CisgICAgICAgIChXZWJDb3JlOjpTeXN0ZW1CYXR0ZXJ5U3RhdHVzVGVzdGlu
Z092ZXJyaWRlczo6c2luZ2xldG9uKToKKyAgICAgICAgKFdlYkNvcmU6OlN5c3RlbUJhdHRlcnlT
dGF0dXNUZXN0aW5nT3ZlcnJpZGVzOjpzZXRIYXNCYXR0ZXJ5KToKKyAgICAgICAgKFdlYkNvcmU6
OlN5c3RlbUJhdHRlcnlTdGF0dXNUZXN0aW5nT3ZlcnJpZGVzOjpzZXRIYXNBQyk6CisgICAgICAg
IChXZWJDb3JlOjpTeXN0ZW1CYXR0ZXJ5U3RhdHVzVGVzdGluZ092ZXJyaWRlczo6c2V0Q29uZmln
dXJhdGlvbkNoYW5nZWRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpzZXRPdmVycmlkZVN5
c3RlbUhhc0JhdHRlcnlGb3JUZXN0aW5nKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnNl
dE92ZXJyaWRlU3lzdGVtSGFzQUNGb3JUZXN0aW5nKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9WUDlVdGlsaXRpZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmVlbkRh
dGFPdmVycmlkZXM6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JlZW5EYXRh
T3ZlcnJpZGVzOjpkZWNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I9PSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVlA5VXRpbGl0aWVzQ29jb2EuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WUDlVdGlsaXRpZXNDb2NvYS5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OlZQOVRlc3RpbmdPdmVycmlkZXM6OnNpbmdsZXRvbik6CisgICAgICAgIChX
ZWJDb3JlOjpWUDlUZXN0aW5nT3ZlcnJpZGVzOjpzZXRIYXJkd2FyZURlY29kZXJEaXNhYmxlZCk6
CisgICAgICAgIChXZWJDb3JlOjpWUDlUZXN0aW5nT3ZlcnJpZGVzOjpzZXRWUDlTY3JlZW5TaXpl
QW5kU2NhbGUpOgorICAgICAgICAoV2ViQ29yZTo6VlA5VGVzdGluZ092ZXJyaWRlczo6c2V0Q29u
ZmlndXJhdGlvbkNoYW5nZWRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjp2cDlIYXJkd2Fy
ZURlY29kZXJBdmFpbGFibGUpOgorICAgICAgICAoV2ViQ29yZTo6aXNWUDlDb2RlY0NvbmZpZ3Vy
YXRpb25SZWNvcmRTdXBwb3J0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGVWUFBhcmFt
ZXRlcnMpOgorICAgICAgICAoKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnNldE92ZXJy
aWRlVlA5SGFyZHdhcmVEZWNvZGVyRGlzYWJsZWRGb3JUZXN0aW5nKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OnNldE92ZXJyaWRlVlA5U2NyZWVuU2l6ZUFuZFNjYWxlRm9yVGVzdGluZyk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpyZXNldE92ZXJyaWRlVlA5U2NyZWVuU2l6ZUFu
ZFNjYWxlRm9yVGVzdGluZyk6IERlbGV0ZWQuCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpJbnRlcm5hbHMpOgorICAgICAgICAo
V2ViQ29yZTo6SW50ZXJuYWxzOjpzZXRTeXN0ZW1IYXNCYXR0ZXJ5Rm9yVGVzdGluZyk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnNldFN5c3RlbUhhc0FDRm9yVGVzdGluZyk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnNldEhhcmR3YXJlVlA5RGVjb2RlckRpc2FibGVkRm9y
VGVzdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnNldFZQOVNjcmVlblNpemVB
bmRTY2FsZUZvclRlc3RpbmcpOgorCiAyMDIxLTAyLTI0ICBNaWNoYWVsIENhdGFuemFybyAgPG1j
YXRhbnphcm9AZ25vbWUub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHNpbGVuY2UgLVdyZXR1
cm4tdHlwZSB3YXJuaW5ncyBmcm9tIHIyNzMxMjcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZDk2YjhjN2ZmNTA3MmY0
OThkMTNhMjRiNDg3NzYxMGViNTgyOTc2Yy4uNWIwMWFjMzRjZWNiN2Y0YjM2ZTFlMmUzYzQ1MzU3
MGE2NTA1MGVjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAyMS0wMi0yNCAgRXJpYyBD
YXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVUF0gU29tZSBt
ZWRpYS1jYXBhYmlsaXRpZXMgdGVzdHMgZmFpbCB3aGVuIG1lZGlhIGluIEdQVSBQcm9jZXNzIGlz
IGVuYWJsZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyMTY5MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzQ0Mzk0MjA+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL0dQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpzZXRNZWRpYU92ZXJyaWRlc0ZvclRlc3RpbmcpOgorICAgICAgICAqIEdQVVBy
b2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oOgorICAgICAgICAqIEdQVVByb2Nlc3Mv
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nl
c3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Y29tcHV0ZUZp
bHRlcmVkRGV2aWNlTGlzdCk6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3Bw
OgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNzQ29ubmVjdGlvbjo6dXBkYXRlTWVkaWFDb25m
aWd1cmF0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlv
bi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhRW5naW5lQ29u
ZmlndXJhdGlvbkZhY3RvcnkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYUVuZ2lu
ZUNvbmZpZ3VyYXRpb25GYWN0b3J5OjpyZWdpc3RlckZhY3RvcnkpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnNldFVz
ZUdQVVByb2Nlc3NGb3JNZWRpYSk6CisKIDIwMjEtMDItMjQgIFJ1c3NlbGwgRXBzdGVpbiAgPHJl
cHN0ZWluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZlcnQgcjI3MjczNS4gcmRhcjovL3Byb2Js
ZW0vNzQ2NzQ4MzcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1N5
c3RlbUJhdHRlcnkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1N5c3RlbUJhdHRl
cnkuaAppbmRleCA5MzU0NzdhNmY0YjUwZmE1ODYwN2UxYzFiODVjZTM1NGYxOTA5ZTI1Li5kYjAx
MDE2NWIxZjhmNDM0YzA5ZjNkMTIxMDU2Y2EyNzg5MTk1NjBiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TeXN0ZW1CYXR0ZXJ5LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY29jb2EvU3lzdGVtQmF0dGVyeS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyogQ29w
eXJpZ2h0IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogKgog
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNSw3ICszNSwyMiBAQCBXRUJDT1JFX0VYUE9S
VCB2b2lkIHNldFN5c3RlbUhhc0FDKGJvb2wpOwogV0VCQ09SRV9FWFBPUlQgYm9vbCBzeXN0ZW1I
YXNBQygpOwogV0VCQ09SRV9FWFBPUlQgT3B0aW9uYWw8Ym9vbD4gY2FjaGVkU3lzdGVtSGFzQUMo
KTsKIAotV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRPdmVycmlkZVN5c3RlbUhhc0JhdHRlcnlGb3JU
ZXN0aW5nKE9wdGlvbmFsPGJvb2w+JiYpOwotV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRPdmVycmlk
ZVN5c3RlbUhhc0FDRm9yVGVzdGluZyhPcHRpb25hbDxib29sPiYmKTsKK2NsYXNzIFdFQkNPUkVf
RVhQT1JUIFN5c3RlbUJhdHRlcnlTdGF0dXNUZXN0aW5nT3ZlcnJpZGVzIHsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgU3lzdGVtQmF0dGVyeVN0YXR1c1Rlc3RpbmdPdmVycmlkZXMmIHNpbmdsZXRvbigp
OworCisgICAgdm9pZCBzZXRIYXNBQyhPcHRpb25hbDxib29sPiYmKTsKKyAgICBPcHRpb25hbDxi
b29sPiBoYXNBQygpIHsgcmV0dXJuIG1faGFzQUM7IH0KKworICAgIHZvaWQgc2V0SGFzQmF0dGVy
eShPcHRpb25hbDxib29sPiYmKTsKKyAgICBPcHRpb25hbDxib29sPiBoYXNCYXR0ZXJ5KCkgeyBy
ZXR1cm4gIG1faGFzQmF0dGVyeTsgfQorCisgICAgdm9pZCBzZXRDb25maWd1cmF0aW9uQ2hhbmdl
ZENhbGxiYWNrKHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiYmKTsKKworcHJpdmF0ZToKKyAgICBPcHRp
b25hbDxib29sPiBtX2hhc0JhdHRlcnk7CisgICAgT3B0aW9uYWw8Ym9vbD4gbV9oYXNBQzsKKyAg
ICBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4gbV9jb25maWd1cmF0aW9uQ2hhbmdlZENhbGxiYWNrOwor
fTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU3lzdGVt
QmF0dGVyeS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1N5c3RlbUJhdHRlcnku
bW0KaW5kZXggZTY1ZGY3NWI0MTAxNjEwZjI2ZjBhMzRjMjBiMGFkZDM3NDVlZjI0Mi4uY2E1NWE5
OGRjMWVhOGUzOTU2N2M2ZDcwZjdlZDhhNGU4MzMxYTM5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY29jb2EvU3lzdGVtQmF0dGVyeS5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jb2NvYS9TeXN0ZW1CYXR0ZXJ5Lm1tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDggKzMzLDYgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBzdGF0aWMgT3B0aW9uYWw8Ym9vbD4gaGFzQmF0dGVyeTsKIHN0YXRpYyBP
cHRpb25hbDxib29sPiBoYXNBQzsKLXN0YXRpYyBPcHRpb25hbDxib29sPiBoYXNCYXR0ZXJ5T3Zl
cnJpZGVGb3JUZXN0aW5nOwotc3RhdGljIE9wdGlvbmFsPGJvb2w+IGhhc0FDT3ZlcnJpZGVGb3JU
ZXN0aW5nOwogCiB2b2lkIHNldFN5c3RlbUhhc0JhdHRlcnkoYm9vbCBiYXR0ZXJ5KQogewpAQCAt
NDMsOCArNDEsOCBAQCB2b2lkIHNldFN5c3RlbUhhc0JhdHRlcnkoYm9vbCBiYXR0ZXJ5KQogCiBi
b29sIHN5c3RlbUhhc0JhdHRlcnkoKQogewotICAgIGlmIChoYXNCYXR0ZXJ5T3ZlcnJpZGVGb3JU
ZXN0aW5nKQotICAgICAgICByZXR1cm4gKmhhc0JhdHRlcnlPdmVycmlkZUZvclRlc3Rpbmc7Cisg
ICAgaWYgKGF1dG8gb3ZlcnJpZGVGb3JUZXN0aW5nID0gU3lzdGVtQmF0dGVyeVN0YXR1c1Rlc3Rp
bmdPdmVycmlkZXM6OnNpbmdsZXRvbigpLmhhc0JhdHRlcnkoKSkKKyAgICAgICAgcmV0dXJuICpv
dmVycmlkZUZvclRlc3Rpbmc7CiAKICAgICBpZiAoIWhhc0JhdHRlcnkuaGFzVmFsdWUoKSkgewog
ICAgICAgICBoYXNCYXR0ZXJ5ID0gW10gewpAQCAtODYsOCArODQsOCBAQCB2b2lkIHNldFN5c3Rl
bUhhc0FDKGJvb2wgYWMpCiAKIGJvb2wgc3lzdGVtSGFzQUMoKQogewotICAgIGlmIChoYXNBQ092
ZXJyaWRlRm9yVGVzdGluZykKLSAgICAgICAgcmV0dXJuICpoYXNBQ092ZXJyaWRlRm9yVGVzdGlu
ZzsKKyAgICBpZiAoYXV0byBvdmVycmlkZUZvclRlc3RpbmcgPSBTeXN0ZW1CYXR0ZXJ5U3RhdHVz
VGVzdGluZ092ZXJyaWRlczo6c2luZ2xldG9uKCkuaGFzQUMoKSkKKyAgICAgICAgcmV0dXJuICpv
dmVycmlkZUZvclRlc3Rpbmc7CiAKICAgICBpZiAoIWhhc0FDLmhhc1ZhbHVlKCkpIHsKICAgICAg
ICAgaGFzQUMgPSBbXSB7CkBAIC0xMjEsMTQgKzExOSwyOSBAQCBPcHRpb25hbDxib29sPiBjYWNo
ZWRTeXN0ZW1IYXNBQygpCiAgICAgcmV0dXJuIGhhc0FDOwogfQogCi12b2lkIHNldE92ZXJyaWRl
U3lzdGVtSGFzQmF0dGVyeUZvclRlc3RpbmcoT3B0aW9uYWw8Ym9vbD4mJiBoYXNCYXR0ZXJ5KQor
U3lzdGVtQmF0dGVyeVN0YXR1c1Rlc3RpbmdPdmVycmlkZXMmIFN5c3RlbUJhdHRlcnlTdGF0dXNU
ZXN0aW5nT3ZlcnJpZGVzOjpzaW5nbGV0b24oKQogewotICAgIGhhc0JhdHRlcnlPdmVycmlkZUZv
clRlc3RpbmcgPSBXVEZNb3ZlKGhhc0JhdHRlcnkpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxTeXN0ZW1CYXR0ZXJ5U3RhdHVzVGVzdGluZ092ZXJyaWRlcz4gY2VudGVyOworICAgIHJldHVy
biBjZW50ZXI7CiB9CiAKLXZvaWQgc2V0T3ZlcnJpZGVTeXN0ZW1IYXNBQ0ZvclRlc3RpbmcoT3B0
aW9uYWw8Ym9vbD4mJiBoYXNBQykKK3ZvaWQgU3lzdGVtQmF0dGVyeVN0YXR1c1Rlc3RpbmdPdmVy
cmlkZXM6OnNldEhhc0JhdHRlcnkoT3B0aW9uYWw8Ym9vbD4mJiBoYXNCYXR0ZXJ5KQogewotICAg
IGhhc0FDT3ZlcnJpZGVGb3JUZXN0aW5nID0gV1RGTW92ZShoYXNBQyk7CisgICAgbV9oYXNCYXR0
ZXJ5ID0gV1RGTW92ZShoYXNCYXR0ZXJ5KTsKKyAgICBpZiAobV9jb25maWd1cmF0aW9uQ2hhbmdl
ZENhbGxiYWNrKQorICAgICAgICBtX2NvbmZpZ3VyYXRpb25DaGFuZ2VkQ2FsbGJhY2soKTsKK30K
Kwordm9pZCBTeXN0ZW1CYXR0ZXJ5U3RhdHVzVGVzdGluZ092ZXJyaWRlczo6c2V0SGFzQUMoT3B0
aW9uYWw8Ym9vbD4mJiBoYXNBQykKK3sKKyAgICBtX2hhc0FDID0gV1RGTW92ZShoYXNBQyk7Cisg
ICAgaWYgKG1fY29uZmlndXJhdGlvbkNoYW5nZWRDYWxsYmFjaykKKyAgICAgICAgbV9jb25maWd1
cmF0aW9uQ2hhbmdlZENhbGxiYWNrKCk7Cit9CisKK3ZvaWQgU3lzdGVtQmF0dGVyeVN0YXR1c1Rl
c3RpbmdPdmVycmlkZXM6OnNldENvbmZpZ3VyYXRpb25DaGFuZ2VkQ2FsbGJhY2soc3RkOjpmdW5j
dGlvbjx2b2lkKCk+JiYgY2FsbGJhY2spCit7CisgICAgbV9jb25maWd1cmF0aW9uQ2hhbmdlZENh
bGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZQOVV0aWxpdGllcy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvVlA5VXRpbGl0aWVzLmgKaW5kZXggODg3Njk4MzhkNTA4MTk4MmQy
MmEwN2IwNTlkNDBiZDMxNWMyY2JlNi4uZGEzMDkwMGE0ZWM3MjM4M2UzZWIwMzNkNWM0NjY1YzA3
ZWNkOTU3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVlA5
VXRpbGl0aWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVlA5VXRp
bGl0aWVzLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMC0yMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtMTI3LDQgKzEyNyw0MSBAQCBzdHJ1Y3QgVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNv
cmQgewogCiBXRUJDT1JFX0VYUE9SVCBPcHRpb25hbDxWUENvZGVjQ29uZmlndXJhdGlvblJlY29y
ZD4gcGFyc2VWUENvZGVjUGFyYW1ldGVycyhTdHJpbmdWaWV3IGNvZGVjU3RyaW5nKTsKIAorc3Ry
dWN0IFNjcmVlbkRhdGFPdmVycmlkZXMgeworICAgIGRvdWJsZSB3aWR0aCB7IDAgfTsKKyAgICBk
b3VibGUgaGVpZ2h0IHsgMCB9OworICAgIGRvdWJsZSBzY2FsZSB7IDEgfTsKKworICAgIHRlbXBs
YXRlPGNsYXNzIEVuY29kZXI+CisgICAgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29u
c3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgd2lkdGg7CisgICAgICAgIGVuY29kZXIgPDwg
aGVpZ2h0OworICAgICAgICBlbmNvZGVyIDw8IHNjYWxlOworICAgIH0KKworICAgIHRlbXBsYXRl
IDxjbGFzcyBEZWNvZGVyPgorICAgIHN0YXRpYyBPcHRpb25hbDxTY3JlZW5EYXRhT3ZlcnJpZGVz
PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisjZGVmaW5lIERFQ09ERShuYW1lLCB0
eXBlKSBcCisgICAgT3B0aW9uYWw8dHlwZT4gbmFtZTsgXAorICAgIGRlY29kZXIgPj4gbmFtZTsg
XAorICAgIGlmICghbmFtZSkgXAorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OyBcCisKKyAg
ICBERUNPREUod2lkdGgsIGRvdWJsZSk7CisgICAgREVDT0RFKGhlaWdodCwgZG91YmxlKTsKKyAg
ICBERUNPREUoc2NhbGUsIGRvdWJsZSk7CisjdW5kZWYgREVDT0RFCisKKyAgICByZXR1cm4ge3sg
V1RGTW92ZSgqd2lkdGgpLCBXVEZNb3ZlKCpoZWlnaHQpLCBXVEZNb3ZlKCpzY2FsZSkgfX07Cisg
ICAgfQorfTsKKworaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBTY3JlZW5EYXRhT3ZlcnJp
ZGVzJiBhLCBjb25zdCBTY3JlZW5EYXRhT3ZlcnJpZGVzJiBiKQoreworICAgIHJldHVybiBhLndp
ZHRoID09IGIud2lkdGggJiYgYS5oZWlnaHQgPT0gYi5oZWlnaHQgJiYgYS5zY2FsZSA9PSBiLnNj
YWxlOworfQorCisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL1ZQOVV0aWxpdGllc0NvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9WUDlVdGlsaXRpZXNDb2NvYS5oCmluZGV4IDJmMDAwNmI0MWQxNzFjYTcx
ZmM4NGVlMWJhNzFhZDRjZGQxMGVjNTYuLmZjYWY5OWFlZDMyNjBlYjVjYjBkMWM1NmNlZTA5ZGU2
ZWZiMGRjMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL1ZQOVV0aWxpdGllc0NvY29hLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvVlA5VXRpbGl0aWVzQ29jb2EuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00MSwxMCArNDEsNiBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiBzdHJ1Y3QgTWVkaWFDYXBhYmlsaXRpZXNJbmZvOwogc3RydWN0IFZpZGVvQ29u
ZmlndXJhdGlvbjsKIAotV0VCQ09SRV9FWFBPUlQgZXh0ZXJuIHZvaWQgc2V0T3ZlcnJpZGVWUDlI
YXJkd2FyZURlY29kZXJEaXNhYmxlZEZvclRlc3RpbmcoYm9vbCk7Ci1XRUJDT1JFX0VYUE9SVCBl
eHRlcm4gdm9pZCBzZXRPdmVycmlkZVZQOVNjcmVlblNpemVBbmRTY2FsZUZvclRlc3RpbmcoZmxv
YXQgd2lkdGgsIGZsb2F0IGhlaWdodCwgZmxvYXQgc2NhbGUpOwotV0VCQ09SRV9FWFBPUlQgZXh0
ZXJuIHZvaWQgcmVzZXRPdmVycmlkZVZQOVNjcmVlblNpemVBbmRTY2FsZUZvclRlc3RpbmcoKTsK
LQogV0VCQ09SRV9FWFBPUlQgZXh0ZXJuIHZvaWQgcmVnaXN0ZXJXZWJLaXRWUDlEZWNvZGVyKCk7
CiBXRUJDT1JFX0VYUE9SVCBleHRlcm4gdm9pZCByZWdpc3RlcldlYktpdFZQOERlY29kZXIoKTsK
IFdFQkNPUkVfRVhQT1JUIGV4dGVybiB2b2lkIHJlZ2lzdGVyU3VwcGxlbWVudGFsVlA5RGVjb2Rl
cigpOwpAQCAtNzEsNiArNjcsMjQgQEAgc3RydWN0IFZQOEZyYW1lSGVhZGVyIHsKIE9wdGlvbmFs
PFZQOEZyYW1lSGVhZGVyPiBwYXJzZVZQOEZyYW1lSGVhZGVyKHVpbnQ4X3QqIGZyYW1lRGF0YSwg
c2l6ZV90IGZyYW1lU2l6ZSk7CiBSZXRhaW5QdHI8Q01Gb3JtYXREZXNjcmlwdGlvblJlZj4gY3Jl
YXRlRm9ybWF0RGVzY3JpcHRpb25Gcm9tVlA4SGVhZGVyKGNvbnN0IFZQOEZyYW1lSGVhZGVyJiwg
Y29uc3Qgd2VibTo6RWxlbWVudDx3ZWJtOjpDb2xvdXI+Jik7CiAKK2NsYXNzIFdFQkNPUkVfRVhQ
T1JUIFZQOVRlc3RpbmdPdmVycmlkZXMgeworcHVibGljOgorICAgIHN0YXRpYyBWUDlUZXN0aW5n
T3ZlcnJpZGVzJiBzaW5nbGV0b24oKTsKKworICAgIHZvaWQgc2V0SGFyZHdhcmVEZWNvZGVyRGlz
YWJsZWQoT3B0aW9uYWw8Ym9vbD4mJik7CisgICAgT3B0aW9uYWw8Ym9vbD4gaGFyZHdhcmVEZWNv
ZGVyRGlzYWJsZWQoKSB7IHJldHVybiBtX2hhcmR3YXJlRGVjb2RlckRpc2FibGVkOyB9CisKKyAg
ICB2b2lkIHNldFZQOVNjcmVlblNpemVBbmRTY2FsZShPcHRpb25hbDxTY3JlZW5EYXRhT3ZlcnJp
ZGVzPiYmKTsKKyAgICBPcHRpb25hbDxTY3JlZW5EYXRhT3ZlcnJpZGVzPiB2cDlTY3JlZW5TaXpl
QW5kU2NhbGUoKSAgeyByZXR1cm4gbV9zY3JlZW5TaXplQW5kU2NhbGU7IH0KKworICAgIHZvaWQg
c2V0Q29uZmlndXJhdGlvbkNoYW5nZWRDYWxsYmFjayhzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4mJik7
CisKK3ByaXZhdGU6CisgICAgT3B0aW9uYWw8Ym9vbD4gbV9oYXJkd2FyZURlY29kZXJEaXNhYmxl
ZDsKKyAgICBPcHRpb25hbDxTY3JlZW5EYXRhT3ZlcnJpZGVzPiBtX3NjcmVlblNpemVBbmRTY2Fs
ZTsKKyAgICBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4gbV9jb25maWd1cmF0aW9uQ2hhbmdlZENhbGxi
YWNrOworfTsKKwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL1ZQOVV0aWxpdGllc0NvY29hLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVlA5VXRpbGl0aWVzQ29jb2EubW0KaW5kZXggMzE5NzNi
MmM2NDE3YmI1NzhmODBiMjUwMjU1M2UyY2M2MTZhZTljYS4uNjk5MjMwNTJmMjJjNzViNGRlYzY0
NjMzMjhlY2U3NzI5NWIzMzM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvVlA5VXRpbGl0aWVzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVlA5VXRpbGl0aWVzQ29jb2EubW0KQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTAsMjggKzUwLDI5
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5nIG5hbWVzcGFjZSBQQUw7CiB1c2luZyBuYW1l
c3BhY2Ugd2VibTsKIAotc3RhdGljIGJvb2wgaGFyZHdhcmVWUDlEZWNvZGVyRGlzYWJsZWRGb3JU
ZXN0aW5nIHsgZmFsc2UgfTsKLQotc3RydWN0IE92ZXJyaWRlU2NyZWVuRGF0YSB7Ci0gICAgZmxv
YXQgd2lkdGggeyAwIH07Ci0gICAgZmxvYXQgaGVpZ2h0IHsgMCB9OwotICAgIGZsb2F0IHNjYWxl
IHsgMSB9OwotfTsKLXN0YXRpYyBPcHRpb25hbDxPdmVycmlkZVNjcmVlbkRhdGE+IHNjcmVlblNp
emVBbmRTY2FsZUZvclRlc3Rpbmc7CitWUDlUZXN0aW5nT3ZlcnJpZGVzJiBWUDlUZXN0aW5nT3Zl
cnJpZGVzOjpzaW5nbGV0b24oKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWUDlUZXN0
aW5nT3ZlcnJpZGVzPiBjZW50ZXI7CisgICAgcmV0dXJuIGNlbnRlcjsKK30KIAotdm9pZCBzZXRP
dmVycmlkZVZQOUhhcmR3YXJlRGVjb2RlckRpc2FibGVkRm9yVGVzdGluZyhib29sIGRpc2FibGVk
KQordm9pZCBWUDlUZXN0aW5nT3ZlcnJpZGVzOjpzZXRIYXJkd2FyZURlY29kZXJEaXNhYmxlZChP
cHRpb25hbDxib29sPiYmIGRpc2FibGVkKQogewotICAgIGhhcmR3YXJlVlA5RGVjb2RlckRpc2Fi
bGVkRm9yVGVzdGluZyA9IGRpc2FibGVkOworICAgIG1faGFyZHdhcmVEZWNvZGVyRGlzYWJsZWQg
PSBXVEZNb3ZlKGRpc2FibGVkKTsKKyAgICBpZiAobV9jb25maWd1cmF0aW9uQ2hhbmdlZENhbGxi
YWNrKQorICAgICAgICBtX2NvbmZpZ3VyYXRpb25DaGFuZ2VkQ2FsbGJhY2soKTsKIH0KIAotdm9p
ZCBzZXRPdmVycmlkZVZQOVNjcmVlblNpemVBbmRTY2FsZUZvclRlc3RpbmcoZmxvYXQgd2lkdGgs
IGZsb2F0IGhlaWdodCwgZmxvYXQgc2NhbGUpCit2b2lkIFZQOVRlc3RpbmdPdmVycmlkZXM6OnNl
dFZQOVNjcmVlblNpemVBbmRTY2FsZShPcHRpb25hbDxTY3JlZW5EYXRhT3ZlcnJpZGVzPiYmIG92
ZXJyaWRlcykKIHsKLSAgICBzY3JlZW5TaXplQW5kU2NhbGVGb3JUZXN0aW5nID0gbWFrZU9wdGlv
bmFsPE92ZXJyaWRlU2NyZWVuRGF0YT4oeyB3aWR0aCwgaGVpZ2h0LCBzY2FsZSB9KTsKKyAgICBt
X3NjcmVlblNpemVBbmRTY2FsZSA9IFdURk1vdmUob3ZlcnJpZGVzKTsKKyAgICBpZiAobV9jb25m
aWd1cmF0aW9uQ2hhbmdlZENhbGxiYWNrKQorICAgICAgICBtX2NvbmZpZ3VyYXRpb25DaGFuZ2Vk
Q2FsbGJhY2soKTsKIH0KIAotdm9pZCByZXNldE92ZXJyaWRlVlA5U2NyZWVuU2l6ZUFuZFNjYWxl
Rm9yVGVzdGluZygpCit2b2lkIFZQOVRlc3RpbmdPdmVycmlkZXM6OnNldENvbmZpZ3VyYXRpb25D
aGFuZ2VkQ2FsbGJhY2soc3RkOjpmdW5jdGlvbjx2b2lkKCk+JiYgY2FsbGJhY2spCiB7Ci0gICAg
c2NyZWVuU2l6ZUFuZFNjYWxlRm9yVGVzdGluZyA9IFdURjo6bnVsbG9wdDsKKyAgICBtX2NvbmZp
Z3VyYXRpb25DaGFuZ2VkQ2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKTsKIH0KIAogZW51bSBj
bGFzcyBSZXNvbHV0aW9uQ2F0ZWdvcnkgOiB1aW50OF90IHsKQEAgLTEzOSw2ICsxNDAsMTQgQEAg
Ym9vbCBpc1ZQOERlY29kZXJBdmFpbGFibGUoKQogICAgIHJldHVybiBub0VyciA9PSBWVFNlbGVj
dEFuZENyZWF0ZVZpZGVvRGVjb2Rlckluc3RhbmNlKCd2cDA4Jywga0NGQWxsb2NhdG9yRGVmYXVs
dCwgbnVsbHB0ciwgbnVsbHB0cik7CiB9CiAKK3N0YXRpYyBib29sIHZwOUhhcmR3YXJlRGVjb2Rl
ckF2YWlsYWJsZSgpCit7CisgICAgaWYgKGF1dG8gZGlzYWJsZWRGb3JUZXN0aW5nID0gVlA5VGVz
dGluZ092ZXJyaWRlczo6c2luZ2xldG9uKCkuaGFyZHdhcmVEZWNvZGVyRGlzYWJsZWQoKSkKKyAg
ICAgICAgcmV0dXJuICEqZGlzYWJsZWRGb3JUZXN0aW5nOworCisgICAgcmV0dXJuIGNhbkxvYWRf
VmlkZW9Ub29sYm94X1ZUSXNIYXJkd2FyZURlY29kZVN1cHBvcnRlZCgpICYmIFZUSXNIYXJkd2Fy
ZURlY29kZVN1cHBvcnRlZChrQ01WaWRlb0NvZGVjVHlwZV9WUDkpOworfQorCiBzdGF0aWMgYm9v
bCBpc1ZQOUNvZGVjQ29uZmlndXJhdGlvblJlY29yZFN1cHBvcnRlZChWUENvZGVjQ29uZmlndXJh
dGlvblJlY29yZCYgY29kZWNDb25maWd1cmF0aW9uKQogewogICAgIGlmICghaXNWUDlEZWNvZGVy
QXZhaWxhYmxlKCkpCkBAIC0xNjEsNyArMTcwLDcgQEAgc3RhdGljIGJvb2wgaXNWUDlDb2RlY0Nv
bmZpZ3VyYXRpb25SZWNvcmRTdXBwb3J0ZWQoVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQmIGMK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgLy8gSGFyZHdhcmUgZGVjb2RlcnMgYXJlIGFs
d2F5cyBhdmFpbGFibGUuCi0gICAgaWYgKGNhbkxvYWRfVmlkZW9Ub29sYm94X1ZUSXNIYXJkd2Fy
ZURlY29kZVN1cHBvcnRlZCgpICYmIFZUSXNIYXJkd2FyZURlY29kZVN1cHBvcnRlZChrQ01WaWRl
b0NvZGVjVHlwZV9WUDkpICYmICFoYXJkd2FyZVZQOURlY29kZXJEaXNhYmxlZEZvclRlc3Rpbmcp
CisgICAgaWYgKHZwOUhhcmR3YXJlRGVjb2RlckF2YWlsYWJsZSgpKQogICAgICAgICByZXR1cm4g
dHJ1ZTsKIAogICAgIC8vIEZvciB3YWxsLXBvd2VyZWQgZGV2aWNlcywgYWx3YXlzIHJlcG9ydCBW
UDkgYXMgc3VwcG9ydGVkLCBldmVuIGlmIG5vdCBwb3dlckVmZmljaWVudC4KQEAgLTE3NSw5ICsx
ODQsOCBAQCBzdGF0aWMgYm9vbCBpc1ZQOUNvZGVjQ29uZmlndXJhdGlvblJlY29yZFN1cHBvcnRl
ZChWUENvZGVjQ29uZmlndXJhdGlvblJlY29yZCYgYwogICAgICAgICByZXR1cm4gdHJ1ZTsKIAog
ICAgIGJvb2wgaGFzNGtTY3JlZW4gPSBmYWxzZTsKLQotICAgIGlmIChzY3JlZW5TaXplQW5kU2Nh
bGVGb3JUZXN0aW5nKSB7Ci0gICAgICAgIGF1dG8gc2NyZWVuU2l6ZSA9IEZsb2F0U2l6ZShzY3Jl
ZW5TaXplQW5kU2NhbGVGb3JUZXN0aW5nLT53aWR0aCwgc2NyZWVuU2l6ZUFuZFNjYWxlRm9yVGVz
dGluZy0+aGVpZ2h0KS5zY2FsZWQoc2NyZWVuU2l6ZUFuZFNjYWxlRm9yVGVzdGluZy0+c2NhbGUp
OworICAgIGlmIChhdXRvIG92ZXJyaWRlRm9yVGVzdGluZyA9IFZQOVRlc3RpbmdPdmVycmlkZXM6
OnNpbmdsZXRvbigpLnZwOVNjcmVlblNpemVBbmRTY2FsZSgpKSB7CisgICAgICAgIGF1dG8gc2Ny
ZWVuU2l6ZSA9IEZsb2F0U2l6ZShvdmVycmlkZUZvclRlc3RpbmctPndpZHRoLCBvdmVycmlkZUZv
clRlc3RpbmctPmhlaWdodCkuc2NhbGVkKG92ZXJyaWRlRm9yVGVzdGluZy0+c2NhbGUpOwogICAg
ICAgICBoYXM0a1NjcmVlbiA9IHJlc29sdXRpb25DYXRlZ29yeShzY3JlZW5TaXplKSA+PSBSZXNv
bHV0aW9uQ2F0ZWdvcnk6OlJfNEs7CiAgICAgfSBlbHNlIHsKICAgICAgICAgZm9yIChhdXRvJiBz
Y3JlZW5EYXRhIDogZ2V0U2NyZWVuUHJvcGVydGllcygpLnNjcmVlbkRhdGFNYXAudmFsdWVzKCkp
IHsKQEAgLTI0Myw3ICsyNTEsNyBAQCBib29sIHZhbGlkYXRlVlBQYXJhbWV0ZXJzKFZQQ29kZWND
b25maWd1cmF0aW9uUmVjb3JkJiBjb2RlY0NvbmZpZ3VyYXRpb24sIE1lZGlhQwogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAotICAgIGlmIChjYW5Mb2FkX1ZpZGVvVG9vbGJveF9W
VElzSGFyZHdhcmVEZWNvZGVTdXBwb3J0ZWQoKSAmJiBWVElzSGFyZHdhcmVEZWNvZGVTdXBwb3J0
ZWQoa0NNVmlkZW9Db2RlY1R5cGVfVlA5KSAmJiAhaGFyZHdhcmVWUDlEZWNvZGVyRGlzYWJsZWRG
b3JUZXN0aW5nKSB7CisgICAgaWYgKHZwOUhhcmR3YXJlRGVjb2RlckF2YWlsYWJsZSgpKSB7CiAg
ICAgICAgIC8vIEhXIFZQOSBEZWNvZGVyIGRvZXMgbm90IHN1cHBvcnQgYWxwaGEgY2hhbm5lbDoK
ICAgICAgICAgaWYgKHZpZGVvQ29uZmlndXJhdGlvbi5hbHBoYUNoYW5uZWwgJiYgKnZpZGVvQ29u
ZmlndXJhdGlvbi5hbHBoYUNoYW5uZWwpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0y
OTIsOCArMzAwLDggQEAgYm9vbCB2YWxpZGF0ZVZQUGFyYW1ldGVycyhWUENvZGVjQ29uZmlndXJh
dGlvblJlY29yZCYgY29kZWNDb25maWd1cmF0aW9uLCBNZWRpYUMKIAogICAgIGJvb2wgaGFzNGtT
Y3JlZW4gPSBmYWxzZTsKIAotICAgIGlmIChzY3JlZW5TaXplQW5kU2NhbGVGb3JUZXN0aW5nKSB7
Ci0gICAgICAgIGF1dG8gc2NyZWVuU2l6ZSA9IEZsb2F0U2l6ZShzY3JlZW5TaXplQW5kU2NhbGVG
b3JUZXN0aW5nLT53aWR0aCwgc2NyZWVuU2l6ZUFuZFNjYWxlRm9yVGVzdGluZy0+aGVpZ2h0KS5z
Y2FsZWQoc2NyZWVuU2l6ZUFuZFNjYWxlRm9yVGVzdGluZy0+c2NhbGUpOworICAgIGlmIChhdXRv
IG92ZXJyaWRlRm9yVGVzdGluZyA9IFZQOVRlc3RpbmdPdmVycmlkZXM6OnNpbmdsZXRvbigpLnZw
OVNjcmVlblNpemVBbmRTY2FsZSgpKSB7CisgICAgICAgIGF1dG8gc2NyZWVuU2l6ZSA9IEZsb2F0
U2l6ZShvdmVycmlkZUZvclRlc3RpbmctPndpZHRoLCBvdmVycmlkZUZvclRlc3RpbmctPmhlaWdo
dCkuc2NhbGVkKG92ZXJyaWRlRm9yVGVzdGluZy0+c2NhbGUpOwogICAgICAgICBoYXM0a1NjcmVl
biA9IHJlc29sdXRpb25DYXRlZ29yeShzY3JlZW5TaXplKSA+PSBSZXNvbHV0aW9uQ2F0ZWdvcnk6
OlJfNEs7CiAgICAgfSBlbHNlIHsKICAgICAgICAgZm9yIChhdXRvJiBzY3JlZW5EYXRhIDogZ2V0
U2NyZWVuUHJvcGVydGllcygpLnNjcmVlbkRhdGFNYXAudmFsdWVzKCkpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCA2MWVhOWExNWJhOWNkMTkzM2Q4M2U1NTI3ZDk5N2U3
NDY2NWYyZTEwLi42Njk1NDg2MGU0MTJjZWI0OWQ0OTAzN2I0MzA3M2ViOWZiMjA1NjBlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC02MjcsMTMgKzYyNywxMyBAQCBJbnRl
cm5hbHM6OkludGVybmFscyhEb2N1bWVudCYgZG9jdW1lbnQpCiAjZW5kaWYKIAogI2lmIFBMQVRG
T1JNKENPQ09BKQotICAgIHNldE92ZXJyaWRlU3lzdGVtSGFzQmF0dGVyeUZvclRlc3RpbmcoV1RG
OjpudWxsb3B0KTsKLSAgICBzZXRPdmVycmlkZVN5c3RlbUhhc0FDRm9yVGVzdGluZyhXVEY6Om51
bGxvcHQpOworICAgIFN5c3RlbUJhdHRlcnlTdGF0dXNUZXN0aW5nT3ZlcnJpZGVzOjpzaW5nbGV0
b24oKS5zZXRIYXNBQyhXVEY6Om51bGxvcHQpOworICAgIFN5c3RlbUJhdHRlcnlTdGF0dXNUZXN0
aW5nT3ZlcnJpZGVzOjpzaW5nbGV0b24oKS5zZXRIYXNCYXR0ZXJ5KFdURjo6bnVsbG9wdCk7CiAj
ZW5kaWYKIAogI2lmIEVOQUJMRShWUDkpICYmIFBMQVRGT1JNKENPQ09BKQotICAgIHNldE92ZXJy
aWRlVlA5SGFyZHdhcmVEZWNvZGVyRGlzYWJsZWRGb3JUZXN0aW5nKGZhbHNlKTsKLSAgICByZXNl
dE92ZXJyaWRlVlA5U2NyZWVuU2l6ZUFuZFNjYWxlRm9yVGVzdGluZygpOworICAgIFZQOVRlc3Rp
bmdPdmVycmlkZXM6OnNpbmdsZXRvbigpLnNldEhhcmR3YXJlRGVjb2RlckRpc2FibGVkKFdURjo6
bnVsbG9wdCk7CisgICAgVlA5VGVzdGluZ092ZXJyaWRlczo6c2luZ2xldG9uKCkuc2V0VlA5U2Ny
ZWVuU2l6ZUFuZFNjYWxlKFdURjo6bnVsbG9wdCk7CiAjZW5kaWYKIH0KIApAQCAtNTg0Miw3ICs1
ODQyLDcgQEAgYm9vbCBJbnRlcm5hbHM6OnN5c3RlbUhhc0JhdHRlcnkoKSBjb25zdAogdm9pZCBJ
bnRlcm5hbHM6OnNldFN5c3RlbUhhc0JhdHRlcnlGb3JUZXN0aW5nKGJvb2wgaGFzQmF0dGVyeSkK
IHsKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBXZWJDb3JlOjpzZXRPdmVycmlkZVN5c3RlbUhh
c0JhdHRlcnlGb3JUZXN0aW5nKGhhc0JhdHRlcnkpOworICAgIFN5c3RlbUJhdHRlcnlTdGF0dXNU
ZXN0aW5nT3ZlcnJpZGVzOjpzaW5nbGV0b24oKS5zZXRIYXNCYXR0ZXJ5KGhhc0JhdHRlcnkpOwog
I2Vsc2UKICAgICBVTlVTRURfUEFSQU0oaGFzQmF0dGVyeSk7CiAjZW5kaWYKQEAgLTU4NTEsNyAr
NTg1MSw3IEBAIHZvaWQgSW50ZXJuYWxzOjpzZXRTeXN0ZW1IYXNCYXR0ZXJ5Rm9yVGVzdGluZyhi
b29sIGhhc0JhdHRlcnkpCiB2b2lkIEludGVybmFsczo6c2V0U3lzdGVtSGFzQUNGb3JUZXN0aW5n
KGJvb2wgaGFzQUMpCiB7CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgV2ViQ29yZTo6c2V0T3Zl
cnJpZGVTeXN0ZW1IYXNBQ0ZvclRlc3RpbmcoaGFzQUMpOworICAgIFN5c3RlbUJhdHRlcnlTdGF0
dXNUZXN0aW5nT3ZlcnJpZGVzOjpzaW5nbGV0b24oKS5zZXRIYXNBQyhoYXNBQyk7CiAjZWxzZQog
ICAgIFVOVVNFRF9QQVJBTShoYXNBQyk7CiAjZW5kaWYKQEAgLTU4NjAsNyArNTg2MCw3IEBAIHZv
aWQgSW50ZXJuYWxzOjpzZXRTeXN0ZW1IYXNBQ0ZvclRlc3RpbmcoYm9vbCBoYXNBQykKIHZvaWQg
SW50ZXJuYWxzOjpzZXRIYXJkd2FyZVZQOURlY29kZXJEaXNhYmxlZEZvclRlc3RpbmcoYm9vbCBk
aXNhYmxlZCkKIHsKICNpZiBFTkFCTEUoVlA5KSAmJiBQTEFURk9STShDT0NPQSkKLSAgICBXZWJD
b3JlOjpzZXRPdmVycmlkZVZQOUhhcmR3YXJlRGVjb2RlckRpc2FibGVkRm9yVGVzdGluZyhkaXNh
YmxlZCk7CisgICAgVlA5VGVzdGluZ092ZXJyaWRlczo6c2luZ2xldG9uKCkuc2V0SGFyZHdhcmVE
ZWNvZGVyRGlzYWJsZWQoZGlzYWJsZWQpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oZGlzYWJs
ZWQpOwogI2VuZGlmCkBAIC01ODY5LDcgKzU4NjksNyBAQCB2b2lkIEludGVybmFsczo6c2V0SGFy
ZHdhcmVWUDlEZWNvZGVyRGlzYWJsZWRGb3JUZXN0aW5nKGJvb2wgZGlzYWJsZWQpCiB2b2lkIElu
dGVybmFsczo6c2V0VlA5U2NyZWVuU2l6ZUFuZFNjYWxlRm9yVGVzdGluZyhkb3VibGUgd2lkdGgs
IGRvdWJsZSBoZWlnaHQsIGRvdWJsZSBzY2FsZSkKIHsKICNpZiBFTkFCTEUoVlA5KSAmJiBQTEFU
Rk9STShDT0NPQSkKLSAgICBXZWJDb3JlOjpzZXRPdmVycmlkZVZQOVNjcmVlblNpemVBbmRTY2Fs
ZUZvclRlc3Rpbmcod2lkdGgsIGhlaWdodCwgc2NhbGUpOworICAgIFZQOVRlc3RpbmdPdmVycmlk
ZXM6OnNpbmdsZXRvbigpLnNldFZQOVNjcmVlblNpemVBbmRTY2FsZShtYWtlT3B0aW9uYWw8U2Ny
ZWVuRGF0YU92ZXJyaWRlcz4oeyB3aWR0aCwgaGVpZ2h0LCBzY2FsZSB9KSk7CiAjZWxzZQogICAg
IFVOVVNFRF9QQVJBTSh3aWR0aCk7CiAgICAgVU5VU0VEX1BBUkFNKGhlaWdodCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5j
cHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5j
cHAKaW5kZXggZjQyY2EyODg0Y2UyYmE3MTM5OGMyYzcwM2M5MzY5NzhiZjlhYjc2MC4uODgxMTY4
ZTViZDhjNzNkYjhkOTJlYjhiZTIzNTFlMDEzN2EwZmEwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE5LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zOCw2ICsz
OCw3IEBACiAjaW5jbHVkZSAiTGliV2ViUlRDQ29kZWNzUHJveHkuaCIKICNpbmNsdWRlICJMaWJX
ZWJSVENDb2RlY3NQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1
ZGUgIk1lZGlhT3ZlcnJpZGVzRm9yVGVzdGluZy5oIgogI2luY2x1ZGUgIlJlbW90ZUF1ZGlvSGFy
ZHdhcmVMaXN0ZW5lclByb3h5LmgiCiAjaW5jbHVkZSAiUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRy
YWNrUmVuZGVyZXJNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
UHJveHkuaCIKQEAgLTExOSw2ICsxMjAsMTQgQEAKICNpbmNsdWRlICJSZW1vdGVNZWRpYUVuZ2lu
ZUNvbmZpZ3VyYXRpb25GYWN0b3J5UHJveHlNZXNzYWdlcy5oIgogI2VuZGlmCiAKKyNpZiBQTEFU
Rk9STShDT0NPQSkKKyNpbmNsdWRlIDxXZWJDb3JlL1N5c3RlbUJhdHRlcnkuaD4KKyNlbmRpZgor
CisjaWYgRU5BQkxFKFZQOSkgJiYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSA8V2ViQ29yZS9W
UDlVdGlsaXRpZXNDb2NvYS5oPgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTQzMyw2ICs0NDIsMTkgQEAgdm9pZCBHUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpyZWxlYXNlUmVtb3RlQ29tbWFuZExpc3RlbmVyKFJlbW90ZVJlbW90
ZUNvbW1hbmQKICAgICBBU1NFUlRfVU5VU0VEKGZvdW5kLCBmb3VuZCk7CiB9CiAKK3ZvaWQgR1BV
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6c2V0TWVkaWFPdmVycmlkZXNGb3JUZXN0aW5nKE1lZGlh
T3ZlcnJpZGVzRm9yVGVzdGluZyBvdmVycmlkZXMpCit7CisjaWYgRU5BQkxFKFZQOSkgJiYgUExB
VEZPUk0oQ09DT0EpCisgICAgVlA5VGVzdGluZ092ZXJyaWRlczo6c2luZ2xldG9uKCkuc2V0SGFy
ZHdhcmVEZWNvZGVyRGlzYWJsZWQoV1RGTW92ZShvdmVycmlkZXMudnA5SGFyZHdhcmVEZWNvZGVy
RGlzYWJsZWQpKTsKKyAgICBWUDlUZXN0aW5nT3ZlcnJpZGVzOjpzaW5nbGV0b24oKS5zZXRWUDlT
Y3JlZW5TaXplQW5kU2NhbGUoV1RGTW92ZShvdmVycmlkZXMudnA5U2NyZWVuU2l6ZUFuZFNjYWxl
KSk7CisjZW5kaWYKKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIFN5c3RlbUJhdHRlcnlTdGF0
dXNUZXN0aW5nT3ZlcnJpZGVzOjpzaW5nbGV0b24oKS5zZXRIYXNBQyhXVEZNb3ZlKG92ZXJyaWRl
cy5zeXN0ZW1IYXNBQykpOworICAgIFN5c3RlbUJhdHRlcnlTdGF0dXNUZXN0aW5nT3ZlcnJpZGVz
OjpzaW5nbGV0b24oKS5zZXRIYXNCYXR0ZXJ5KFdURk1vdmUob3ZlcnJpZGVzLnN5c3RlbUhhc0Jh
dHRlcnkpKTsKKyNlbmRpZgorfQorCiBib29sIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRp
c3BhdGNoTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYg
ZGVjb2RlcikKIHsKICNpZiBFTkFCTEUoV0VCX0FVRElPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXggZjg4NjliMGMy
ZDFjMzJjMDhlZGQ4MGQ0ODM0NzdmMmZkOTExODg1Ny4uMThhM2MxZGY4OTQ5ZGRmOTQ4ZWMxN2Q1
ZGUyZjEwM2QwMjNmZjY1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTktMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTcyLDYgKzcyLDcgQEAgY2xhc3MgUmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0w7CiBjbGFzcyBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5h
Z2VyOwogY2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTsKIHN0cnVjdCBHUFVQcm9j
ZXNzQ29ubmVjdGlvblBhcmFtZXRlcnM7CitzdHJ1Y3QgTWVkaWFPdmVycmlkZXNGb3JUZXN0aW5n
Owogc3RydWN0IFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb247CiAKIGNsYXNzIEdQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MKQEAgLTE3MSw2ICsxNzIsNyBAQCBwcml2YXRlOgogICAgIHZv
aWQgcmVsZWFzZUF1ZGlvSGFyZHdhcmVMaXN0ZW5lcihSZW1vdGVBdWRpb0hhcmR3YXJlTGlzdGVu
ZXJJZGVudGlmaWVyKTsKICAgICB2b2lkIGNyZWF0ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lcihSZW1v
dGVSZW1vdGVDb21tYW5kTGlzdGVuZXJJZGVudGlmaWVyKTsKICAgICB2b2lkIHJlbGVhc2VSZW1v
dGVDb21tYW5kTGlzdGVuZXIoUmVtb3RlUmVtb3RlQ29tbWFuZExpc3RlbmVySWRlbnRpZmllcik7
CisgICAgdm9pZCBzZXRNZWRpYU92ZXJyaWRlc0ZvclRlc3RpbmcoTWVkaWFPdmVycmlkZXNGb3JU
ZXN0aW5nKTsKIAogICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50CiAgICAgdm9pZCBkaWRD
bG9zZShJUEM6OkNvbm5lY3Rpb24mKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4K
aW5kZXggYTM0MTI5ZmQxZDMwNTdjMzhjNmM0YmMzZTJhNjgzZjlkNTYwMWNjNi4uZGNjMDRmZTYz
NmY3ZmFhYjNmY2FjOGE1Nzk5MjI2OGQ1NGNlZjc0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2Fn
ZXMuaW4KQEAgLTEsNCArMSw0IEBACi0jIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxOS0yMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDAs
NiArNDAsNyBAQCBtZXNzYWdlcyAtPiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzIFdhbnRzRGlz
cGF0Y2hNZXNzYWdlIHsKICNpZiBFTkFCTEUoVlA5KQogICAgIEVuYWJsZVZQOURlY29kZXJzKGJv
b2wgc2hvdWxkRW5hYmxlVlA4RGVjb2RlciwgYm9vbCBzaG91bGRFbmFibGVWUDlEZWNvZGVyLCBi
b29sIHNob3VsZEVuYWJsZVZQOVNXRGVjb2RlcikKICNlbmRpZgorICAgIFNldE1lZGlhT3ZlcnJp
ZGVzRm9yVGVzdGluZyhzdHJ1Y3QgV2ViS2l0OjpNZWRpYU92ZXJyaWRlc0ZvclRlc3RpbmcgY29u
ZmlndXJhdGlvbikKICAgICBDcmVhdGVBdWRpb0hhcmR3YXJlTGlzdGVuZXIoV2ViS2l0OjpSZW1v
dGVBdWRpb0hhcmR3YXJlTGlzdGVuZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCiAgICAgUmVsZWFz
ZUF1ZGlvSGFyZHdhcmVMaXN0ZW5lcihXZWJLaXQ6OlJlbW90ZUF1ZGlvSGFyZHdhcmVMaXN0ZW5l
cklkZW50aWZpZXIgaWRlbnRpZmllcikKICAgICBDcmVhdGVSZW1vdGVDb21tYW5kTGlzdGVuZXIo
V2ViS2l0OjpSZW1vdGVSZW1vdGVDb21tYW5kTGlzdGVuZXJJZGVudGlmaWVyIGlkZW50aWZpZXIp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKaW5kZXggYjY0MDgxNDI3YzhhZTUz
ZGM0MWI1ZGNjYWU3Nzk3NjE1NGNiMjAxYS4uZDEwMWIzODYwMGViN2FkOGUzNjJlNWE4ZTJkNWYz
NWQyNjI2YmNiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcApAQCAtNzQw
LDcgKzc0MCw3IEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6
OmNvbXB1dGVGaWx0ZXJlZERldmljZUxpc3QoYm9vbCByZXZlCiAgICAgICAgICAgICBmaWx0ZXJl
ZERldmljZXMuYXBwZW5kKHJldmVhbElkc0FuZExhYmVscyA/IGRldmljZSA6IENhcHR1cmVEZXZp
Y2UoeyB9LCBkZXZpY2UudHlwZSgpLCB7IH0sIHsgfSkpOwogICAgICAgICB9CiAKLSAgICAgICAg
bV9oYXNGaWx0ZXJlZERldmljZUxpc3QgPSAhcmV2ZWFsSWRzQW5kTGFiZWxzOworICAgICAgICB3
ZWFrVGhpcy0+bV9oYXNGaWx0ZXJlZERldmljZUxpc3QgPSAhcmV2ZWFsSWRzQW5kTGFiZWxzOwog
ICAgICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsIGZpbHRlcmVkRGV2aWNlcy5zaXplKCks
ICIgZGV2aWNlcyByZXZlYWxlZCIpOwogCiAgICAgICAgIGNvbXBsZXRpb24oV1RGTW92ZShmaWx0
ZXJlZERldmljZXMpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDMxOWYyZTRjNzc4Y2Q0ZDVmNDNmMDU2MTdmNTMxMzM5YzZhYmI5MGUu
LjRiMDExZDcxOWIxM2Q5YmE5ZGVmNDlhNDhkM2M4ZGQ2NDkyN2VjNGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjM3Niw2ICsyMzc2
LDcgQEAKIAkJMDcyOTdGOUQxQzE3QkJFQTIyM0YwNzM1IC8qIERldmljZUlkSGFzaFNhbHRTdG9y
YWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERldmljZUlkSGFzaFNhbHRT
dG9yYWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3Mjk3RkEwMUMxODZBREIw
MDNGMDczNSAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25DaGVjay5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS1VzZXJNZWRpYVBlcm1pc3Npb25DaGVjay5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3Mjk3RkExMUMxODZBREIwMDNGMDczNSAvKiBX
S1VzZXJNZWRpYVBlcm1pc3Npb25DaGVjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXS1VzZXJNZWRpYVBlcm1pc3Npb25DaGVjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkwNzQ0NzIwNTI1RTVCRDAyMDA1NEIyMzEgLyogTWVkaWFPdmVycmlkZXNGb3JUZXN0
aW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhT3ZlcnJpZGVzRm9yVGVzdGluZy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwNzQ4NzlCNzIzNzNBOTA5MDBGNTY3OEUgLyogQXBwS2l0
U29mdExpbmsuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQXBwS2l0U29mdExpbmsuaDsgcGF0aCA9IGlvcy9B
cHBLaXRTb2Z0TGluay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzQ4NzlCODIz
NzNBOTA5MDBGNTY3OEUgLyogQXBwS2l0U29mdExpbmsubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUg
PSBBcHBLaXRTb2Z0TGluay5tbTsgcGF0aCA9IGlvcy9BcHBLaXRTb2Z0TGluay5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc0RTc1RkIxREYxRkQxMzAwRDMxOEVDIC8qIFVzZXJN
ZWRpYVByb2Nlc3NNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVz
ZXJNZWRpYVByb2Nlc3NNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02
MDIxLDYgKzYwMjIsNyBAQAogCQkJCUNEQTk1OTM5MjQxMkIxNzUwMDkxMEVFRiAvKiBpb3MgKi8s
CiAJCQkJMDcxQkM1NzkyM0M5M0JCOTAwNjgwRDdDIC8qIEF1ZGlvVHJhY2tQcml2YXRlUmVtb3Rl
LmNwcCAqLywKIAkJCQkwNzFCQzU3NzIzQzkzQkI3MDA2ODBEN0MgLyogQXVkaW9UcmFja1ByaXZh
dGVSZW1vdGUuaCAqLywKKwkJCQkwNzQ0NzIwNTI1RTVCRDAyMDA1NEIyMzEgLyogTWVkaWFPdmVy
cmlkZXNGb3JUZXN0aW5nLmggKi8sCiAJCQkJMDc5MjMxMzEyMzlCM0IwQzAwOTU5OEUyIC8qIE1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAgKi8sCiAJCQkJMDc5MjMxMzIyMzlCM0IwQzAwOTU5
OEUyIC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oICovLAogCQkJCTA3QjFEMDRCMjNEMzhG
Q0UwMDM5OUE2RSAvKiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUubWVzc2FnZXMuaW4gKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0
aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rp
b24uY3BwCmluZGV4IDZkZTFkZGMwYWMxYjMwMzEyZTQ1NzdmNmYzZTU5ZjkwYzJkZDI1ZTEuLjRm
OGQxMWM4NGE0Mzk2MjM4MDkzYjk1MTMwN2Y3ZTQxY2U1ZGI4MDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTktMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDYg
KzMzLDcgQEAKICNpbmNsdWRlICJMaWJXZWJSVENDb2RlY3MuaCIKICNpbmNsdWRlICJMaWJXZWJS
VENDb2RlY3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJNZWRp
YU92ZXJyaWRlc0ZvclRlc3RpbmcuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVSZW1v
dGVNZXNzYWdlcy5oIgogI2luY2x1ZGUgIk1lZGlhU291cmNlUHJpdmF0ZVJlbW90ZU1lc3NhZ2Vz
LmgiCiAjaW5jbHVkZSAiUmVtb3RlQXVkaW9IYXJkd2FyZUxpc3RlbmVyTWVzc2FnZXMuaCIKQEAg
LTc2LDYgKzc3LDE0IEBACiAjaW5jbHVkZSAiUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eU1l
c3NhZ2VzLmgiCiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUgPFdlYkNv
cmUvU3lzdGVtQmF0dGVyeS5oPgorI2VuZGlmCisKKyNpZiBFTkFCTEUoVlA5KSAmJiBQTEFURk9S
TShDT0NPQSkKKyNpbmNsdWRlIDxXZWJDb3JlL1ZQOVV0aWxpdGllc0NvY29hLmg+CisjZW5kaWYK
KwogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtMjQy
LDYgKzI1MSwzNSBAQCB2b2lkIEdQVVByb2Nlc3NDb25uZWN0aW9uOjp1cGRhdGVQYXJhbWV0ZXJz
KGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmIHBhcgogI2VuZGlmCiB9CiAKK3ZvaWQg
R1BVUHJvY2Vzc0Nvbm5lY3Rpb246OnVwZGF0ZU1lZGlhQ29uZmlndXJhdGlvbigpCit7CisgICAg
Ym9vbCBzZXR0aW5nc0NoYW5nZWQgPSBmYWxzZTsKKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAg
IGlmIChtX21lZGlhT3ZlcnJpZGVzRm9yVGVzdGluZy5zeXN0ZW1IYXNBQyAhPSBTeXN0ZW1CYXR0
ZXJ5U3RhdHVzVGVzdGluZ092ZXJyaWRlczo6c2luZ2xldG9uKCkuaGFzQUMoKSB8fCBtX21lZGlh
T3ZlcnJpZGVzRm9yVGVzdGluZy5zeXN0ZW1IYXNCYXR0ZXJ5ICE9IFN5c3RlbUJhdHRlcnlTdGF0
dXNUZXN0aW5nT3ZlcnJpZGVzOjpzaW5nbGV0b24oKS5oYXNCYXR0ZXJ5KCkpCisgICAgICAgIHNl
dHRpbmdzQ2hhbmdlZCA9IHRydWU7CisjZW5kaWYKKworI2lmIEVOQUJMRShWUDkpICYmIFBMQVRG
T1JNKENPQ09BKQorICAgIGlmIChtX21lZGlhT3ZlcnJpZGVzRm9yVGVzdGluZy52cDlIYXJkd2Fy
ZURlY29kZXJEaXNhYmxlZCAhPSBWUDlUZXN0aW5nT3ZlcnJpZGVzOjpzaW5nbGV0b24oKS5oYXJk
d2FyZURlY29kZXJEaXNhYmxlZCgpIHx8IG1fbWVkaWFPdmVycmlkZXNGb3JUZXN0aW5nLnZwOVNj
cmVlblNpemVBbmRTY2FsZSAhPSBWUDlUZXN0aW5nT3ZlcnJpZGVzOjpzaW5nbGV0b24oKS52cDlT
Y3JlZW5TaXplQW5kU2NhbGUoKSkKKyAgICAgICAgc2V0dGluZ3NDaGFuZ2VkID0gdHJ1ZTsKKyNl
bmRpZgorCisgICAgaWYgKCFzZXR0aW5nc0NoYW5nZWQpCisgICAgICAgIHJldHVybjsKKworICAg
IG1fbWVkaWFPdmVycmlkZXNGb3JUZXN0aW5nID0geworICAgICAgICBTeXN0ZW1CYXR0ZXJ5U3Rh
dHVzVGVzdGluZ092ZXJyaWRlczo6c2luZ2xldG9uKCkuaGFzQUMoKSwKKyAgICAgICAgU3lzdGVt
QmF0dGVyeVN0YXR1c1Rlc3RpbmdPdmVycmlkZXM6OnNpbmdsZXRvbigpLmhhc0JhdHRlcnkoKSwK
KworICAgICAgICBWUDlUZXN0aW5nT3ZlcnJpZGVzOjpzaW5nbGV0b24oKS5oYXJkd2FyZURlY29k
ZXJEaXNhYmxlZCgpLAorICAgICAgICBWUDlUZXN0aW5nT3ZlcnJpZGVzOjpzaW5nbGV0b24oKS52
cDlTY3JlZW5TaXplQW5kU2NhbGUoKSwKKyAgICB9OworCisgICAgY29ubmVjdGlvbigpLnNlbmQo
TWVzc2FnZXM6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlNldE1lZGlhT3ZlcnJpZGVzRm9y
VGVzdGluZyhtX21lZGlhT3ZlcnJpZGVzRm9yVGVzdGluZyksIHsgfSk7CisKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmgKaW5k
ZXggMGI3YmY4YTk3MWY2NmFkYWI1MWRjNzM1NTFjOGEwMTNkNzFlOTRmYy4uMDBjMGMyZjAwM2Ez
YTg5N2RlYzkyOTY4OTI5MWZiZmM1ZjM2ZDVlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaApAQCAtMjgsNiArMjgsNyBAQAog
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNs
dWRlICJNZWRpYU92ZXJyaWRlc0ZvclRlc3RpbmcuaCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2
ZXJNYXAuaCIKICNpbmNsdWRlICJTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmgiCiAj
aW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybU1lZGlhU2Vzc2lvbi5oPgpAQCAtNDMsNiArNDQsNyBA
QCBjbGFzcyBSZW1vdGVDRE1GYWN0b3J5OwogY2xhc3MgUmVtb3RlTWVkaWFFbmdpbmVDb25maWd1
cmF0aW9uRmFjdG9yeTsKIGNsYXNzIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjsKIGNsYXNzIFJl
bW90ZUxlZ2FjeUNETUZhY3Rvcnk7CitzdHJ1Y3QgT3ZlcnJpZGVTY3JlZW5EYXRhRm9yVGVzdGlu
ZzsKIHN0cnVjdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOwogCiBjbGFzcyBHUFVQcm9jZXNz
Q29ubmVjdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPEdQVVByb2Nlc3NDb25uZWN0aW9uPiwgcHVi
bGljIENhbk1ha2VXZWFrUHRyPEdQVVByb2Nlc3NDb25uZWN0aW9uPiwgSVBDOjpDb25uZWN0aW9u
OjpDbGllbnQgewpAQCAtODEsNiArODMsNyBAQCBwdWJsaWM6CiAgICAgUmVtb3RlTWVkaWFFbmdp
bmVDb25maWd1cmF0aW9uRmFjdG9yeSYgbWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeSgp
OwogCiAgICAgdm9pZCB1cGRhdGVQYXJhbWV0ZXJzKGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFt
ZXRlcnMmKTsKKyAgICB2b2lkIHVwZGF0ZU1lZGlhQ29uZmlndXJhdGlvbigpOwogCiAjaWYgRU5B
QkxFKFZQOSkKICAgICBib29sIGlzVlA4RGVjb2RlckVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBt
X2VuYWJsZVZQOERlY29kZXI7IH0KQEAgLTEyOSw2ICsxMzIsMTEgQEAgcHJpdmF0ZToKICAgICBi
b29sIG1fZW5hYmxlVlA5RGVjb2RlciB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2VuYWJsZVZQOVNX
RGVjb2RlciB7IGZhbHNlIH07CiAjZW5kaWYKKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIE1l
ZGlhT3ZlcnJpZGVzRm9yVGVzdGluZyBtX21lZGlhT3ZlcnJpZGVzRm9yVGVzdGluZzsKKyNlbmRp
ZgorCiAgICAgV2Vha0hhc2hTZXQ8Q2xpZW50PiBtX2NsaWVudHM7CiB9OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhT3ZlcnJpZGVzRm9yVGVz
dGluZy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYU92ZXJyaWRl
c0ZvclRlc3RpbmcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMzFmOWRhN2M5NzM5NjNjMzRiMmVhM2UyOWUxYWNk
NmM2ZGZlMTkwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9NZWRpYU92ZXJyaWRlc0ZvclRlc3RpbmcuaApAQCAtMCwwICsxLDg0IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNs
dWRlIDxXZWJDb3JlL1ZQOVV0aWxpdGllcy5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3Ry
dWN0IE1lZGlhT3ZlcnJpZGVzRm9yVGVzdGluZyB7CisgICAgT3B0aW9uYWw8Ym9vbD4gc3lzdGVt
SGFzQUM7CisgICAgT3B0aW9uYWw8Ym9vbD4gc3lzdGVtSGFzQmF0dGVyeTsKKworICAgIE9wdGlv
bmFsPGJvb2w+IHZwOUhhcmR3YXJlRGVjb2RlckRpc2FibGVkOworICAgIE9wdGlvbmFsPFdlYkNv
cmU6OlNjcmVlbkRhdGFPdmVycmlkZXM+IHZwOVNjcmVlblNpemVBbmRTY2FsZTsKKworICAgIHRl
bXBsYXRlPGNsYXNzIEVuY29kZXI+CisgICAgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2Rlcikg
Y29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgc3lzdGVtSGFzQUM7CisgICAgICAgIGVu
Y29kZXIgPDwgc3lzdGVtSGFzQmF0dGVyeTsKKyAgICAgICAgZW5jb2RlciA8PCB2cDlIYXJkd2Fy
ZURlY29kZXJEaXNhYmxlZDsKKyAgICAgICAgZW5jb2RlciA8PCB2cDlTY3JlZW5TaXplQW5kU2Nh
bGU7CisgICAgfQorCisgICAgdGVtcGxhdGUgPGNsYXNzIERlY29kZXI+CisgICAgc3RhdGljIE9w
dGlvbmFsPE1lZGlhT3ZlcnJpZGVzRm9yVGVzdGluZz4gZGVjb2RlKERlY29kZXImIGRlY29kZXIp
CisgICAgeworICAgICAgICBPcHRpb25hbDxPcHRpb25hbDxib29sPj4gc3lzdGVtSGFzQUM7Cisg
ICAgICAgIGRlY29kZXIgPj4gc3lzdGVtSGFzQUM7CisgICAgICAgIGlmICghc3lzdGVtSGFzQUMp
CisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgICAgIE9wdGlvbmFsPE9w
dGlvbmFsPGJvb2w+PiBzeXN0ZW1IYXNCYXR0ZXJ5OworICAgICAgICBkZWNvZGVyID4+IHN5c3Rl
bUhhc0JhdHRlcnk7CisgICAgICAgIGlmICghc3lzdGVtSGFzQmF0dGVyeSkKKyAgICAgICAgICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgT3B0aW9uYWw8T3B0aW9uYWw8Ym9vbD4+
IHZwOUhhcmR3YXJlRGVjb2RlckRpc2FibGVkOworICAgICAgICBkZWNvZGVyID4+IHZwOUhhcmR3
YXJlRGVjb2RlckRpc2FibGVkOworICAgICAgICBpZiAoIXZwOUhhcmR3YXJlRGVjb2RlckRpc2Fi
bGVkKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAgICBPcHRpb25h
bDxPcHRpb25hbDxXZWJDb3JlOjpTY3JlZW5EYXRhT3ZlcnJpZGVzPj4gdnA5U2NyZWVuU2l6ZUFu
ZFNjYWxlOworICAgICAgICBkZWNvZGVyID4+IHZwOVNjcmVlblNpemVBbmRTY2FsZTsKKyAgICAg
ICAgaWYgKCF2cDlTY3JlZW5TaXplQW5kU2NhbGUpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OworCisgICAgICAgIHJldHVybiB7eworICAgICAgICAgICAgKnN5c3RlbUhhc0FDLAor
ICAgICAgICAgICAgKnN5c3RlbUhhc0JhdHRlcnksCisgICAgICAgICAgICAqdnA5SGFyZHdhcmVE
ZWNvZGVyRGlzYWJsZWQsCisgICAgICAgICAgICAqdnA5U2NyZWVuU2l6ZUFuZFNjYWxlLAorICAg
ICAgICB9fTsKKyAgICB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlh
RW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9SZW1vdGVNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5LmNwcAppbmRl
eCA1NzBkMDIyYzYyZjVhZDM1ODUyM2RmZTdiN2U2MGJlNjZmNWFiYzMxLi5lZjU3MGNiMWU4ZTlh
ODY1MTBhNTYyNWFhMGE2NzQ4ZjBkZjI5MDZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3Rvcnku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFF
bmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeS5jcHAKQEAgLTUwLDI0ICs1MCwzMCBAQCBSZW1vdGVN
ZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5Ojp+UmVtb3RlTWVkaWFFbmdpbmVDb25maWd1
cmF0aW9uRmFjdG9yeSgpCiB2b2lkIFJlbW90ZU1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3Rv
cnk6OnJlZ2lzdGVyRmFjdG9yeSgpCiB7CiAgICAgTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFj
dG9yeTo6Y2xlYXJGYWN0b3JpZXMoKTsKLSAgICBNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0
b3J5OjppbnN0YWxsRmFjdG9yeSh7Ci0gICAgICAgIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRo
aXMpXSAoTWVkaWFEZWNvZGluZ0NvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uLCBNZWRpYUVu
Z2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5OjpEZWNvZGluZ0NvbmZpZ3VyYXRpb25DYWxsYmFjayYm
IGNhbGxiYWNrKSB7Ci0gICAgICAgICAgICBpZiAoIXdlYWtUaGlzKSB7Ci0gICAgICAgICAgICAg
ICAgY2FsbGJhY2soe3sgfSwgV1RGTW92ZShjb25maWd1cmF0aW9uKX0pOwotICAgICAgICAgICAg
ICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgd2Vha1RoaXMtPmNyZWF0
ZURlY29kaW5nQ29uZmlndXJhdGlvbihXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pLCBXVEZNb3ZlKGNh
bGxiYWNrKSk7Ci0gICAgICAgIH0sCi0gICAgICAgIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRo
aXMpXSAoTWVkaWFFbmNvZGluZ0NvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uLCBNZWRpYUVu
Z2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5OjpFbmNvZGluZ0NvbmZpZ3VyYXRpb25DYWxsYmFjayYm
IGNhbGxiYWNrKSB7Ci0gICAgICAgICAgICBpZiAoIXdlYWtUaGlzKSB7Ci0gICAgICAgICAgICAg
ICAgY2FsbGJhY2soe3sgfSwgV1RGTW92ZShjb25maWd1cmF0aW9uKX0pOwotICAgICAgICAgICAg
ICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgd2Vha1RoaXMtPmNyZWF0
ZUVuY29kaW5nQ29uZmlndXJhdGlvbihXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pLCBXVEZNb3ZlKGNh
bGxiYWNrKSk7Ci0gICAgICAgIH0sCi0gICAgfSk7CisKKyAgICBhdXRvIGNyZWF0ZURlY29kaW5n
Q29uZmlndXJhdGlvbiA9IFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpXSAoTWVkaWFEZWNv
ZGluZ0NvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uLCBNZWRpYUVuZ2luZUNvbmZpZ3VyYXRp
b25GYWN0b3J5OjpEZWNvZGluZ0NvbmZpZ3VyYXRpb25DYWxsYmFjayYmIGNhbGxiYWNrKSB7Cisg
ICAgICAgIGlmICghd2Vha1RoaXMpIHsKKyAgICAgICAgICAgIGNhbGxiYWNrKHt7IH0sIFdURk1v
dmUoY29uZmlndXJhdGlvbil9KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisg
ICAgICAgIHdlYWtUaGlzLT5jcmVhdGVEZWNvZGluZ0NvbmZpZ3VyYXRpb24oV1RGTW92ZShjb25m
aWd1cmF0aW9uKSwgV1RGTW92ZShjYWxsYmFjaykpOworICAgIH07CisKKyNpZiBQTEFURk9STShD
T0NPQSkKKyAgICBNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5OjpDcmVhdGVFbmNvZGlu
Z0NvbmZpZ3VyYXRpb24gY3JlYXRlRW5jb2RpbmdDb25maWd1cmF0aW9uID0gbnVsbHB0cjsKKyNl
bHNlCisgICAgYXV0byBjcmVhdGVFbmNvZGluZ0NvbmZpZ3VyYXRpb24gPSBbd2Vha1RoaXMgPSBt
YWtlV2Vha1B0cih0aGlzKV0gKE1lZGlhRW5jb2RpbmdDb25maWd1cmF0aW9uJiYgY29uZmlndXJh
dGlvbiwgTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeTo6RW5jb2RpbmdDb25maWd1cmF0
aW9uQ2FsbGJhY2smJiBjYWxsYmFjaykgeworICAgICAgICBpZiAoIXdlYWtUaGlzKSB7CisgICAg
ICAgICAgICBjYWxsYmFjayh7eyB9LCBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pfSk7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICB3ZWFrVGhpcy0+Y3JlYXRlRW5jb2Rp
bmdDb25maWd1cmF0aW9uKFdURk1vdmUoY29uZmlndXJhdGlvbiksIFdURk1vdmUoY2FsbGJhY2sp
KTsKKyAgICB9OworI2VuZGlmCisKKyAgICBNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5
OjppbnN0YWxsRmFjdG9yeSh7IFdURk1vdmUoY3JlYXRlRGVjb2RpbmdDb25maWd1cmF0aW9uKSwg
V1RGTW92ZShjcmVhdGVFbmNvZGluZ0NvbmZpZ3VyYXRpb24pIH0pOwogfQogCiBjb25zdCBjaGFy
KiBSZW1vdGVNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5OjpzdXBwbGVtZW50TmFtZSgp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggMzAxYjg4NzdiMzU3
ZDBkNjEzYTNhZDEwMGFhOTRmOWU4ZDc2ZjYyMi4uYzUxOGI1OThmMWRjYTdkZWExZTgzYzE1NzRj
ZjZkZTk1NmQ1N2RlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApA
QCAtMTMxLDYgKzEzMSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvU2VydmljZVdvcmtlckNvbnRleHREYXRhLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9TZXR0aW5ncy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU3lzdGVtQmF0dGVyeS5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvVXNlckdlc3R1cmVJbmRpY2F0b3IuaD4KICNpbmNsdWRlIDx3dGYv
QWxnb3JpdGhtcy5oPgogI2luY2x1ZGUgPHd0Zi9DYWxsYmFja0FnZ3JlZ2F0b3IuaD4KQEAgLTE5
NzUsNiArMTk3NiwxOCBAQCB2b2lkIFdlYlByb2Nlc3M6OnNldFVzZUdQVVByb2Nlc3NGb3JNZWRp
YShib29sIHVzZUdQVVByb2Nlc3NGb3JNZWRpYSkKICAgICAgICAgV2ViQ29yZTo6UmVtb3RlQ29t
bWFuZExpc3RlbmVyOjpzZXRDcmVhdGlvbkZ1bmN0aW9uKFt0aGlzXSAoV2ViQ29yZTo6UmVtb3Rl
Q29tbWFuZExpc3RlbmVyQ2xpZW50JiBjbGllbnQpIHsgcmV0dXJuIFJlbW90ZVJlbW90ZUNvbW1h
bmRMaXN0ZW5lcjo6Y3JlYXRlKGNsaWVudCwgKnRoaXMpOyB9KTsKICAgICBlbHNlCiAgICAgICAg
IFdlYkNvcmU6OlJlbW90ZUNvbW1hbmRMaXN0ZW5lcjo6cmVzZXRDcmVhdGlvbkZ1bmN0aW9uKCk7
CisKKyAgICBpZiAodXNlR1BVUHJvY2Vzc0Zvck1lZGlhKSB7CisgICAgICAgIFN5c3RlbUJhdHRl
cnlTdGF0dXNUZXN0aW5nT3ZlcnJpZGVzOjpzaW5nbGV0b24oKS5zZXRDb25maWd1cmF0aW9uQ2hh
bmdlZENhbGxiYWNrKFt0aGlzXSAoKSB7CisgICAgICAgICAgICBlbnN1cmVHUFVQcm9jZXNzQ29u
bmVjdGlvbigpLnVwZGF0ZU1lZGlhQ29uZmlndXJhdGlvbigpOworICAgICAgICB9KTsKKyAgICAg
ICAgVlA5VGVzdGluZ092ZXJyaWRlczo6c2luZ2xldG9uKCkuc2V0Q29uZmlndXJhdGlvbkNoYW5n
ZWRDYWxsYmFjayhbdGhpc10gKCkgeworICAgICAgICAgICAgZW5zdXJlR1BVUHJvY2Vzc0Nvbm5l
Y3Rpb24oKS51cGRhdGVNZWRpYUNvbmZpZ3VyYXRpb24oKTsKKyAgICAgICAgfSk7CisgICAgfSBl
bHNlIHsKKyAgICAgICAgU3lzdGVtQmF0dGVyeVN0YXR1c1Rlc3RpbmdPdmVycmlkZXM6OnNpbmds
ZXRvbigpLnNldENvbmZpZ3VyYXRpb25DaGFuZ2VkQ2FsbGJhY2sobnVsbHB0cik7CisgICAgICAg
IFZQOVRlc3RpbmdPdmVycmlkZXM6OnNpbmdsZXRvbigpLnNldENvbmZpZ3VyYXRpb25DaGFuZ2Vk
Q2FsbGJhY2sobnVsbHB0cik7CisgICAgfQogfQogCiBib29sIFdlYlByb2Nlc3M6OnNob3VsZFVz
ZVJlbW90ZVJlbmRlcmluZ0ZvcihSZW5kZXJpbmdQdXJwb3NlIHB1cnBvc2UpCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOTNm
MmE1OGM1MWJiNDYwMWZmNDkyNjM0Y2U3NGM2YjM4NjI2YzY1YS4uMWQwZDVjMzNjNmMyMzEyMWJl
ZDk1ZjI1Mjk2MWY3MDM3ZmZlOWZlOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIxLTAyLTI0
ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtHUFVQ
XSBTb21lIG1lZGlhLWNhcGFiaWxpdGllcyB0ZXN0cyBmYWlsIHdoZW4gbWVkaWEgaW4gR1BVIFBy
b2Nlc3MgaXMgZW5hYmxlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjIxNjkxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NDQzOTQyMD4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGdwdS1wcm9jZXNz
L1Rlc3RFeHBlY3RhdGlvbnM6IFVuLXNraXAgdGhlIHBhc3NpbmcgdGVzdHMuCisKIDIwMjEtMDIt
MjQgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBtb2RlbCB0
ZXN0IGRpZmZlcmVuY2VzIGJldHdlZW4gcGxhdGZvcm1zCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9ncHUtcHJvY2Vzcy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvZ3B1LXByb2Nlc3Mv
VGVzdEV4cGVjdGF0aW9ucwppbmRleCA0NzIxYmJhODdmY2U1OWY0NmNmNjM2MjdlMWE3OTllZjE2
MmI1MjA1Li4wY2E0ZjQzNDhjZTA1ZTM5YzdmMjgzMjgwOTlhZWJhOTdhZGVmYzE3IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9ncHUtcHJvY2Vzcy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91
dFRlc3RzL2dwdS1wcm9jZXNzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTEzNywxMSArMTM3LDYgQEAg
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYS1zb3VyY2UvU291cmNlQnVmZmVy
LWFib3J0LXVwZGF0aW5nLmh0bWwgWwogbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1y
ZXNpemUuaHRtbCBbIFRpbWVvdXQgXQogcGxhdGZvcm0vbWFjL21lZGlhL21lZGlhLXNvdXJjZS92
aWRlb3BsYXliYWNrcXVhbGl0eS1kZWNvbXByZXNzaW9uc2Vzc2lvbi5odG1sIFsgRmFpbHVyZSBd
CiAKLSMgd2Via2l0Lm9yZy9iLzIyMTY5MQotbWVkaWEvbWVkaWFjYXBhYmlsaXRpZXMvbWVkaWFj
YXBhYmlsaXRpZXMtdHlwZXMuaHRtbCBbIEZhaWx1cmUgXQotcGxhdGZvcm0vbWFjL21lZGlhL21l
ZGlhY2FwYWJpbGl0aWVzL21lZGlhY2FwYWJpbGl0aWVzLWVuY29kaW5nSW5mby11bmRlZmluZWQu
aHRtbCBbIEZhaWx1cmUgXQotcGxhdGZvcm0vbWFjL21lZGlhL21lZGlhY2FwYWJpbGl0aWVzL3Zw
OS1kZWNvZGluZ0luZm8tc3cuaHRtbCBbIEZhaWx1cmUgXQotCiBzdmcvY2FudmFzL2NhbnZhcy1n
bG9iYWwtYWxwaGEtc3ZnLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIAogIyB3ZWJraXQub3Jn
L2IvMjIwODA1Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421464</attachid>
            <date>2021-02-24 15:13:16 -0800</date>
            <delta_ts>2021-02-24 17:04:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221691-20210224151315.patch</filename>
            <type>text/plain</type>
            <size>41497</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczNDMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTgwZjE2YmUwZWU2OWJh
Y2FiMTUzNTY4ZTZiODU0MWVhNDliNDMyZi4uMzRmNWQ2NDRhMGMzZDQwY2Y4YzE5NmQzYjNlMmE3
NjliNTQwNzAwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDIxLTAyLTI0ICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtHUFVQXSBTb21l
IG1lZGlhLWNhcGFiaWxpdGllcyB0ZXN0cyBmYWlsIHdoZW4gbWVkaWEgaW4gR1BVIFByb2Nlc3Mg
aXMgZW5hYmxlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjIxNjkxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NDQzOTQyMD4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTeW5jIGJhdHRlcnkgc3RhdHVz
IGFuZCBWUDkgdGVzdGluZyBvdmVycmlkZXMgc2V0IGJ5IEludGVybmFscyB0byB0aGUgR1BVIHBy
b2Nlc3MgCisgICAgICAgIHdoZW4gdGhleSBjaGFuZ2UuCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
LCBmaXhlcyBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1N5c3Rl
bUJhdHRlcnkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9TeXN0ZW1CYXR0ZXJ5Lm1tOgor
ICAgICAgICAoV2ViQ29yZTo6c3lzdGVtSGFzQmF0dGVyeSk6CisgICAgICAgIChXZWJDb3JlOjpz
eXN0ZW1IYXNBQyk6CisgICAgICAgIChXZWJDb3JlOjpTeXN0ZW1CYXR0ZXJ5U3RhdHVzVGVzdGlu
Z092ZXJyaWRlczo6c2luZ2xldG9uKToKKyAgICAgICAgKFdlYkNvcmU6OlN5c3RlbUJhdHRlcnlT
dGF0dXNUZXN0aW5nT3ZlcnJpZGVzOjpzZXRIYXNCYXR0ZXJ5KToKKyAgICAgICAgKFdlYkNvcmU6
OlN5c3RlbUJhdHRlcnlTdGF0dXNUZXN0aW5nT3ZlcnJpZGVzOjpzZXRIYXNBQyk6CisgICAgICAg
IChXZWJDb3JlOjpTeXN0ZW1CYXR0ZXJ5U3RhdHVzVGVzdGluZ092ZXJyaWRlczo6c2V0Q29uZmln
dXJhdGlvbkNoYW5nZWRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpzZXRPdmVycmlkZVN5
c3RlbUhhc0JhdHRlcnlGb3JUZXN0aW5nKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnNl
dE92ZXJyaWRlU3lzdGVtSGFzQUNGb3JUZXN0aW5nKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9WUDlVdGlsaXRpZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmVlbkRh
dGFPdmVycmlkZXM6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JlZW5EYXRh
T3ZlcnJpZGVzOjpkZWNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I9PSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVlA5VXRpbGl0aWVzQ29jb2EuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WUDlVdGlsaXRpZXNDb2NvYS5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OlZQOVRlc3RpbmdPdmVycmlkZXM6OnNpbmdsZXRvbik6CisgICAgICAgIChX
ZWJDb3JlOjpWUDlUZXN0aW5nT3ZlcnJpZGVzOjpzZXRIYXJkd2FyZURlY29kZXJEaXNhYmxlZCk6
CisgICAgICAgIChXZWJDb3JlOjpWUDlUZXN0aW5nT3ZlcnJpZGVzOjpzZXRWUDlTY3JlZW5TaXpl
QW5kU2NhbGUpOgorICAgICAgICAoV2ViQ29yZTo6VlA5VGVzdGluZ092ZXJyaWRlczo6c2V0Q29u
ZmlndXJhdGlvbkNoYW5nZWRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjp2cDlIYXJkd2Fy
ZURlY29kZXJBdmFpbGFibGUpOgorICAgICAgICAoV2ViQ29yZTo6aXNWUDlDb2RlY0NvbmZpZ3Vy
YXRpb25SZWNvcmRTdXBwb3J0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGVWUFBhcmFt
ZXRlcnMpOgorICAgICAgICAoKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnNldE92ZXJy
aWRlVlA5SGFyZHdhcmVEZWNvZGVyRGlzYWJsZWRGb3JUZXN0aW5nKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OnNldE92ZXJyaWRlVlA5U2NyZWVuU2l6ZUFuZFNjYWxlRm9yVGVzdGluZyk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpyZXNldE92ZXJyaWRlVlA5U2NyZWVuU2l6ZUFu
ZFNjYWxlRm9yVGVzdGluZyk6IERlbGV0ZWQuCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpJbnRlcm5hbHMpOgorICAgICAgICAo
V2ViQ29yZTo6SW50ZXJuYWxzOjpzZXRTeXN0ZW1IYXNCYXR0ZXJ5Rm9yVGVzdGluZyk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnNldFN5c3RlbUhhc0FDRm9yVGVzdGluZyk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnNldEhhcmR3YXJlVlA5RGVjb2RlckRpc2FibGVkRm9y
VGVzdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnNldFZQOVNjcmVlblNpemVB
bmRTY2FsZUZvclRlc3RpbmcpOgorCiAyMDIxLTAyLTI0ICBNaWNoYWVsIENhdGFuemFybyAgPG1j
YXRhbnphcm9AZ25vbWUub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHNpbGVuY2UgLVdyZXR1
cm4tdHlwZSB3YXJuaW5ncyBmcm9tIHIyNzMxMjcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZDk2YjhjN2ZmNTA3MmY0
OThkMTNhMjRiNDg3NzYxMGViNTgyOTc2Yy4uNWIwMWFjMzRjZWNiN2Y0YjM2ZTFlMmUzYzQ1MzU3
MGE2NTA1MGVjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAyMS0wMi0yNCAgRXJpYyBD
YXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVUF0gU29tZSBt
ZWRpYS1jYXBhYmlsaXRpZXMgdGVzdHMgZmFpbCB3aGVuIG1lZGlhIGluIEdQVSBQcm9jZXNzIGlz
IGVuYWJsZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyMTY5MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzQ0Mzk0MjA+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL0dQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpzZXRNZWRpYU92ZXJyaWRlc0ZvclRlc3RpbmcpOgorICAgICAgICAqIEdQVVBy
b2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oOgorICAgICAgICAqIEdQVVByb2Nlc3Mv
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nl
c3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Y29tcHV0ZUZp
bHRlcmVkRGV2aWNlTGlzdCk6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3Bw
OgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNzQ29ubmVjdGlvbjo6dXBkYXRlTWVkaWFDb25m
aWd1cmF0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlv
bi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhRW5naW5lQ29u
ZmlndXJhdGlvbkZhY3RvcnkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYUVuZ2lu
ZUNvbmZpZ3VyYXRpb25GYWN0b3J5OjpyZWdpc3RlckZhY3RvcnkpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnNldFVz
ZUdQVVByb2Nlc3NGb3JNZWRpYSk6CisKIDIwMjEtMDItMjQgIFJ1c3NlbGwgRXBzdGVpbiAgPHJl
cHN0ZWluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZlcnQgcjI3MjczNS4gcmRhcjovL3Byb2Js
ZW0vNzQ2NzQ4MzcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9T
b3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDg1NDcxZWE1YmZlOGUyNjRhYmQ1NzY4
OTI3NjBjMTJkMzVlMDU4NzcuLjFiMDNmMGFhZjE0YmUyMzBkN2U5ZDg0MGRlNjcyNWRjNjI3MzNm
OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNl
L1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTI5MSw2ICsxMjkxLDcgQEAgc2V0KFdlYkNvcmVf
UFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1RleHRUcmFj
a1JlcHJlc2VudGF0aW9uLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9UaWxlZEJhY2tpbmcuaAog
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL1RyYWNrUHJpdmF0ZUJhc2UuaAorICAgIHBsYXRmb3JtL2dy
YXBoaWNzL1ZQOVV0aWxpdGllcy5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvVmVsb2NpdHlEYXRh
LmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9WaWRlb0xheWVyTWFuYWdlci5oCiAgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvVmlkZW9QbGF5YmFja1F1YWxpdHlNZXRyaWNzLmgKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1N5c3RlbUJhdHRlcnkuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2NvY29hL1N5c3RlbUJhdHRlcnkuaAppbmRleCA5MzU0NzdhNmY0YjUwZmE1
ODYwN2UxYzFiODVjZTM1NGYxOTA5ZTI1Li45NzM1MjQyNzEzYWYwYzA5ZDdiMzVlYTc2ZmM0ZGMz
ZDBkMDI0NDFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TeXN0
ZW1CYXR0ZXJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU3lzdGVtQmF0
dGVyeS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogKgogKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0yNSw2ICsyNSw5IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSA8d3RmL0Z1bmN0aW9u
Lmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
V0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTeXN0ZW1IYXNCYXR0ZXJ5KGJvb2wpOwpAQCAtMzUsNyAr
MzgsMjIgQEAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTeXN0ZW1IYXNBQyhib29sKTsKIFdFQkNP
UkVfRVhQT1JUIGJvb2wgc3lzdGVtSGFzQUMoKTsKIFdFQkNPUkVfRVhQT1JUIE9wdGlvbmFsPGJv
b2w+IGNhY2hlZFN5c3RlbUhhc0FDKCk7CiAKLVdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0T3ZlcnJp
ZGVTeXN0ZW1IYXNCYXR0ZXJ5Rm9yVGVzdGluZyhPcHRpb25hbDxib29sPiYmKTsKLVdFQkNPUkVf
RVhQT1JUIHZvaWQgc2V0T3ZlcnJpZGVTeXN0ZW1IYXNBQ0ZvclRlc3RpbmcoT3B0aW9uYWw8Ym9v
bD4mJik7CitjbGFzcyBXRUJDT1JFX0VYUE9SVCBTeXN0ZW1CYXR0ZXJ5U3RhdHVzVGVzdGluZ092
ZXJyaWRlcyB7CitwdWJsaWM6CisgICAgc3RhdGljIFN5c3RlbUJhdHRlcnlTdGF0dXNUZXN0aW5n
T3ZlcnJpZGVzJiBzaW5nbGV0b24oKTsKKworICAgIHZvaWQgc2V0SGFzQUMoT3B0aW9uYWw8Ym9v
bD4mJik7CisgICAgT3B0aW9uYWw8Ym9vbD4gaGFzQUMoKSB7IHJldHVybiBtX2hhc0FDOyB9CisK
KyAgICB2b2lkIHNldEhhc0JhdHRlcnkoT3B0aW9uYWw8Ym9vbD4mJik7CisgICAgT3B0aW9uYWw8
Ym9vbD4gaGFzQmF0dGVyeSgpIHsgcmV0dXJuICBtX2hhc0JhdHRlcnk7IH0KKworICAgIHZvaWQg
c2V0Q29uZmlndXJhdGlvbkNoYW5nZWRDYWxsYmFjayhzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4mJik7
CisKK3ByaXZhdGU6CisgICAgT3B0aW9uYWw8Ym9vbD4gbV9oYXNCYXR0ZXJ5OworICAgIE9wdGlv
bmFsPGJvb2w+IG1faGFzQUM7CisgICAgV1RGOjpGdW5jdGlvbjx2b2lkKCk+IG1fY29uZmlndXJh
dGlvbkNoYW5nZWRDYWxsYmFjazsKK307CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2NvY29hL1N5c3RlbUJhdHRlcnkubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jb2NvYS9TeXN0ZW1CYXR0ZXJ5Lm1tCmluZGV4IGU2NWRmNzViNDEwMTYxMGYyNmYwYTM0YzIw
YjBhZGQzNzQ1ZWYyNDIuLmNhNTVhOThkYzFlYThlMzk1NjdjNmQ3MGY3ZWQ4YTRlODMzMWEzOTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1N5c3RlbUJhdHRlcnku
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU3lzdGVtQmF0dGVyeS5tbQpA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0z
Myw4ICszMyw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIE9wdGlvbmFsPGJvb2w+
IGhhc0JhdHRlcnk7CiBzdGF0aWMgT3B0aW9uYWw8Ym9vbD4gaGFzQUM7Ci1zdGF0aWMgT3B0aW9u
YWw8Ym9vbD4gaGFzQmF0dGVyeU92ZXJyaWRlRm9yVGVzdGluZzsKLXN0YXRpYyBPcHRpb25hbDxi
b29sPiBoYXNBQ092ZXJyaWRlRm9yVGVzdGluZzsKIAogdm9pZCBzZXRTeXN0ZW1IYXNCYXR0ZXJ5
KGJvb2wgYmF0dGVyeSkKIHsKQEAgLTQzLDggKzQxLDggQEAgdm9pZCBzZXRTeXN0ZW1IYXNCYXR0
ZXJ5KGJvb2wgYmF0dGVyeSkKIAogYm9vbCBzeXN0ZW1IYXNCYXR0ZXJ5KCkKIHsKLSAgICBpZiAo
aGFzQmF0dGVyeU92ZXJyaWRlRm9yVGVzdGluZykKLSAgICAgICAgcmV0dXJuICpoYXNCYXR0ZXJ5
T3ZlcnJpZGVGb3JUZXN0aW5nOworICAgIGlmIChhdXRvIG92ZXJyaWRlRm9yVGVzdGluZyA9IFN5
c3RlbUJhdHRlcnlTdGF0dXNUZXN0aW5nT3ZlcnJpZGVzOjpzaW5nbGV0b24oKS5oYXNCYXR0ZXJ5
KCkpCisgICAgICAgIHJldHVybiAqb3ZlcnJpZGVGb3JUZXN0aW5nOwogCiAgICAgaWYgKCFoYXNC
YXR0ZXJ5Lmhhc1ZhbHVlKCkpIHsKICAgICAgICAgaGFzQmF0dGVyeSA9IFtdIHsKQEAgLTg2LDgg
Kzg0LDggQEAgdm9pZCBzZXRTeXN0ZW1IYXNBQyhib29sIGFjKQogCiBib29sIHN5c3RlbUhhc0FD
KCkKIHsKLSAgICBpZiAoaGFzQUNPdmVycmlkZUZvclRlc3RpbmcpCi0gICAgICAgIHJldHVybiAq
aGFzQUNPdmVycmlkZUZvclRlc3Rpbmc7CisgICAgaWYgKGF1dG8gb3ZlcnJpZGVGb3JUZXN0aW5n
ID0gU3lzdGVtQmF0dGVyeVN0YXR1c1Rlc3RpbmdPdmVycmlkZXM6OnNpbmdsZXRvbigpLmhhc0FD
KCkpCisgICAgICAgIHJldHVybiAqb3ZlcnJpZGVGb3JUZXN0aW5nOwogCiAgICAgaWYgKCFoYXNB
Qy5oYXNWYWx1ZSgpKSB7CiAgICAgICAgIGhhc0FDID0gW10gewpAQCAtMTIxLDE0ICsxMTksMjkg
QEAgT3B0aW9uYWw8Ym9vbD4gY2FjaGVkU3lzdGVtSGFzQUMoKQogICAgIHJldHVybiBoYXNBQzsK
IH0KIAotdm9pZCBzZXRPdmVycmlkZVN5c3RlbUhhc0JhdHRlcnlGb3JUZXN0aW5nKE9wdGlvbmFs
PGJvb2w+JiYgaGFzQmF0dGVyeSkKK1N5c3RlbUJhdHRlcnlTdGF0dXNUZXN0aW5nT3ZlcnJpZGVz
JiBTeXN0ZW1CYXR0ZXJ5U3RhdHVzVGVzdGluZ092ZXJyaWRlczo6c2luZ2xldG9uKCkKIHsKLSAg
ICBoYXNCYXR0ZXJ5T3ZlcnJpZGVGb3JUZXN0aW5nID0gV1RGTW92ZShoYXNCYXR0ZXJ5KTsKKyAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3lzdGVtQmF0dGVyeVN0YXR1c1Rlc3RpbmdPdmVycmlk
ZXM+IGNlbnRlcjsKKyAgICByZXR1cm4gY2VudGVyOwogfQogCi12b2lkIHNldE92ZXJyaWRlU3lz
dGVtSGFzQUNGb3JUZXN0aW5nKE9wdGlvbmFsPGJvb2w+JiYgaGFzQUMpCit2b2lkIFN5c3RlbUJh
dHRlcnlTdGF0dXNUZXN0aW5nT3ZlcnJpZGVzOjpzZXRIYXNCYXR0ZXJ5KE9wdGlvbmFsPGJvb2w+
JiYgaGFzQmF0dGVyeSkKIHsKLSAgICBoYXNBQ092ZXJyaWRlRm9yVGVzdGluZyA9IFdURk1vdmUo
aGFzQUMpOworICAgIG1faGFzQmF0dGVyeSA9IFdURk1vdmUoaGFzQmF0dGVyeSk7CisgICAgaWYg
KG1fY29uZmlndXJhdGlvbkNoYW5nZWRDYWxsYmFjaykKKyAgICAgICAgbV9jb25maWd1cmF0aW9u
Q2hhbmdlZENhbGxiYWNrKCk7Cit9CisKK3ZvaWQgU3lzdGVtQmF0dGVyeVN0YXR1c1Rlc3RpbmdP
dmVycmlkZXM6OnNldEhhc0FDKE9wdGlvbmFsPGJvb2w+JiYgaGFzQUMpCit7CisgICAgbV9oYXNB
QyA9IFdURk1vdmUoaGFzQUMpOworICAgIGlmIChtX2NvbmZpZ3VyYXRpb25DaGFuZ2VkQ2FsbGJh
Y2spCisgICAgICAgIG1fY29uZmlndXJhdGlvbkNoYW5nZWRDYWxsYmFjaygpOworfQorCit2b2lk
IFN5c3RlbUJhdHRlcnlTdGF0dXNUZXN0aW5nT3ZlcnJpZGVzOjpzZXRDb25maWd1cmF0aW9uQ2hh
bmdlZENhbGxiYWNrKHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiYmIGNhbGxiYWNrKQoreworICAgIG1f
Y29uZmlndXJhdGlvbkNoYW5nZWRDYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spOwogfQogCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WUDlVdGlsaXRp
ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZQOVV0aWxpdGllcy5oCmlu
ZGV4IDg4NzY5ODM4ZDUwODE5ODJkMjJhMDdiMDU5ZDQwYmQzMTVjMmNiZTYuLmRhMzA5MDBhNGVj
NzIzODNlM2ViMDMzZDVjNDY2NWMwN2VjZDk1N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL1ZQOVV0aWxpdGllcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL1ZQOVV0aWxpdGllcy5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEyNyw0ICsxMjcsNDEgQEAgc3RydWN0IFZQ
Q29kZWNDb25maWd1cmF0aW9uUmVjb3JkIHsKIAogV0VCQ09SRV9FWFBPUlQgT3B0aW9uYWw8VlBD
b2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQ+IHBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoU3RyaW5nVmll
dyBjb2RlY1N0cmluZyk7CiAKK3N0cnVjdCBTY3JlZW5EYXRhT3ZlcnJpZGVzIHsKKyAgICBkb3Vi
bGUgd2lkdGggeyAwIH07CisgICAgZG91YmxlIGhlaWdodCB7IDAgfTsKKyAgICBkb3VibGUgc2Nh
bGUgeyAxIH07CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgorICAgIHZvaWQgZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IHdpZHRo
OworICAgICAgICBlbmNvZGVyIDw8IGhlaWdodDsKKyAgICAgICAgZW5jb2RlciA8PCBzY2FsZTsK
KyAgICB9CisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgRGVjb2Rlcj4KKyAgICBzdGF0aWMgT3B0aW9u
YWw8U2NyZWVuRGF0YU92ZXJyaWRlcz4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgewor
I2RlZmluZSBERUNPREUobmFtZSwgdHlwZSkgXAorICAgIE9wdGlvbmFsPHR5cGU+IG5hbWU7IFwK
KyAgICBkZWNvZGVyID4+IG5hbWU7IFwKKyAgICBpZiAoIW5hbWUpIFwKKyAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsgXAorCisgICAgREVDT0RFKHdpZHRoLCBkb3VibGUpOworICAgIERFQ09E
RShoZWlnaHQsIGRvdWJsZSk7CisgICAgREVDT0RFKHNjYWxlLCBkb3VibGUpOworI3VuZGVmIERF
Q09ERQorCisgICAgcmV0dXJuIHt7IFdURk1vdmUoKndpZHRoKSwgV1RGTW92ZSgqaGVpZ2h0KSwg
V1RGTW92ZSgqc2NhbGUpIH19OworICAgIH0KK307CisKK2lubGluZSBib29sIG9wZXJhdG9yPT0o
Y29uc3QgU2NyZWVuRGF0YU92ZXJyaWRlcyYgYSwgY29uc3QgU2NyZWVuRGF0YU92ZXJyaWRlcyYg
YikKK3sKKyAgICByZXR1cm4gYS53aWR0aCA9PSBiLndpZHRoICYmIGEuaGVpZ2h0ID09IGIuaGVp
Z2h0ICYmIGEuc2NhbGUgPT0gYi5zY2FsZTsKK30KKworCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WUDlVdGlsaXRpZXNDb2NvYS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVlA5VXRpbGl0aWVzQ29jb2EuaApp
bmRleCAyZjAwMDZiNDFkMTcxY2E3MWZjODRlZTFiYTcxYWQ0Y2RkMTBlYzU2Li5mY2FmOTlhZWQz
MjYwZWI1Y2IwZDFjNTZjZWUwOWRlNmVmYjBkYzJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WUDlVdGlsaXRpZXNDb2NvYS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZQOVV0aWxpdGllc0NvY29hLmgKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMC0yMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDEs
MTAgKzQxLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogc3RydWN0IE1lZGlhQ2FwYWJpbGl0aWVz
SW5mbzsKIHN0cnVjdCBWaWRlb0NvbmZpZ3VyYXRpb247CiAKLVdFQkNPUkVfRVhQT1JUIGV4dGVy
biB2b2lkIHNldE92ZXJyaWRlVlA5SGFyZHdhcmVEZWNvZGVyRGlzYWJsZWRGb3JUZXN0aW5nKGJv
b2wpOwotV0VCQ09SRV9FWFBPUlQgZXh0ZXJuIHZvaWQgc2V0T3ZlcnJpZGVWUDlTY3JlZW5TaXpl
QW5kU2NhbGVGb3JUZXN0aW5nKGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQsIGZsb2F0IHNjYWxl
KTsKLVdFQkNPUkVfRVhQT1JUIGV4dGVybiB2b2lkIHJlc2V0T3ZlcnJpZGVWUDlTY3JlZW5TaXpl
QW5kU2NhbGVGb3JUZXN0aW5nKCk7Ci0KIFdFQkNPUkVfRVhQT1JUIGV4dGVybiB2b2lkIHJlZ2lz
dGVyV2ViS2l0VlA5RGVjb2RlcigpOwogV0VCQ09SRV9FWFBPUlQgZXh0ZXJuIHZvaWQgcmVnaXN0
ZXJXZWJLaXRWUDhEZWNvZGVyKCk7CiBXRUJDT1JFX0VYUE9SVCBleHRlcm4gdm9pZCByZWdpc3Rl
clN1cHBsZW1lbnRhbFZQOURlY29kZXIoKTsKQEAgLTcxLDYgKzY3LDI0IEBAIHN0cnVjdCBWUDhG
cmFtZUhlYWRlciB7CiBPcHRpb25hbDxWUDhGcmFtZUhlYWRlcj4gcGFyc2VWUDhGcmFtZUhlYWRl
cih1aW50OF90KiBmcmFtZURhdGEsIHNpemVfdCBmcmFtZVNpemUpOwogUmV0YWluUHRyPENNRm9y
bWF0RGVzY3JpcHRpb25SZWY+IGNyZWF0ZUZvcm1hdERlc2NyaXB0aW9uRnJvbVZQOEhlYWRlcihj
b25zdCBWUDhGcmFtZUhlYWRlciYsIGNvbnN0IHdlYm06OkVsZW1lbnQ8d2VibTo6Q29sb3VyPiYp
OwogCitjbGFzcyBXRUJDT1JFX0VYUE9SVCBWUDlUZXN0aW5nT3ZlcnJpZGVzIHsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgVlA5VGVzdGluZ092ZXJyaWRlcyYgc2luZ2xldG9uKCk7CisKKyAgICB2b2lk
IHNldEhhcmR3YXJlRGVjb2RlckRpc2FibGVkKE9wdGlvbmFsPGJvb2w+JiYpOworICAgIE9wdGlv
bmFsPGJvb2w+IGhhcmR3YXJlRGVjb2RlckRpc2FibGVkKCkgeyByZXR1cm4gbV9oYXJkd2FyZURl
Y29kZXJEaXNhYmxlZDsgfQorCisgICAgdm9pZCBzZXRWUDlTY3JlZW5TaXplQW5kU2NhbGUoT3B0
aW9uYWw8U2NyZWVuRGF0YU92ZXJyaWRlcz4mJik7CisgICAgT3B0aW9uYWw8U2NyZWVuRGF0YU92
ZXJyaWRlcz4gdnA5U2NyZWVuU2l6ZUFuZFNjYWxlKCkgIHsgcmV0dXJuIG1fc2NyZWVuU2l6ZUFu
ZFNjYWxlOyB9CisKKyAgICB2b2lkIHNldENvbmZpZ3VyYXRpb25DaGFuZ2VkQ2FsbGJhY2soc3Rk
OjpmdW5jdGlvbjx2b2lkKCk+JiYpOworCitwcml2YXRlOgorICAgIE9wdGlvbmFsPGJvb2w+IG1f
aGFyZHdhcmVEZWNvZGVyRGlzYWJsZWQ7CisgICAgT3B0aW9uYWw8U2NyZWVuRGF0YU92ZXJyaWRl
cz4gbV9zY3JlZW5TaXplQW5kU2NhbGU7CisgICAgV1RGOjpGdW5jdGlvbjx2b2lkKCk+IG1fY29u
ZmlndXJhdGlvbkNoYW5nZWRDYWxsYmFjazsKK307CisKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WUDlVdGlsaXRpZXNDb2Nv
YS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZQOVV0aWxpdGll
c0NvY29hLm1tCmluZGV4IDMxOTczYjJjNjQxN2JiNTc4ZjgwYjI1MDI1NTNlMmNjNjE2YWU5Y2Eu
LjY5OTIzMDUyZjIyYzc1YjRkZWM2NDYzMzI4ZWNlNzcyOTViMzMzNGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZQOVV0aWxpdGllc0NvY29hLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZQOVV0aWxpdGll
c0NvY29hLm1tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTUwLDI4ICs1MCwyOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB1c2luZyBuYW1l
c3BhY2UgUEFMOwogdXNpbmcgbmFtZXNwYWNlIHdlYm07CiAKLXN0YXRpYyBib29sIGhhcmR3YXJl
VlA5RGVjb2RlckRpc2FibGVkRm9yVGVzdGluZyB7IGZhbHNlIH07Ci0KLXN0cnVjdCBPdmVycmlk
ZVNjcmVlbkRhdGEgewotICAgIGZsb2F0IHdpZHRoIHsgMCB9OwotICAgIGZsb2F0IGhlaWdodCB7
IDAgfTsKLSAgICBmbG9hdCBzY2FsZSB7IDEgfTsKLX07Ci1zdGF0aWMgT3B0aW9uYWw8T3ZlcnJp
ZGVTY3JlZW5EYXRhPiBzY3JlZW5TaXplQW5kU2NhbGVGb3JUZXN0aW5nOworVlA5VGVzdGluZ092
ZXJyaWRlcyYgVlA5VGVzdGluZ092ZXJyaWRlczo6c2luZ2xldG9uKCkKK3sKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8VlA5VGVzdGluZ092ZXJyaWRlcz4gY2VudGVyOworICAgIHJldHVybiBj
ZW50ZXI7Cit9CiAKLXZvaWQgc2V0T3ZlcnJpZGVWUDlIYXJkd2FyZURlY29kZXJEaXNhYmxlZEZv
clRlc3RpbmcoYm9vbCBkaXNhYmxlZCkKK3ZvaWQgVlA5VGVzdGluZ092ZXJyaWRlczo6c2V0SGFy
ZHdhcmVEZWNvZGVyRGlzYWJsZWQoT3B0aW9uYWw8Ym9vbD4mJiBkaXNhYmxlZCkKIHsKLSAgICBo
YXJkd2FyZVZQOURlY29kZXJEaXNhYmxlZEZvclRlc3RpbmcgPSBkaXNhYmxlZDsKKyAgICBtX2hh
cmR3YXJlRGVjb2RlckRpc2FibGVkID0gV1RGTW92ZShkaXNhYmxlZCk7CisgICAgaWYgKG1fY29u
ZmlndXJhdGlvbkNoYW5nZWRDYWxsYmFjaykKKyAgICAgICAgbV9jb25maWd1cmF0aW9uQ2hhbmdl
ZENhbGxiYWNrKCk7CiB9CiAKLXZvaWQgc2V0T3ZlcnJpZGVWUDlTY3JlZW5TaXplQW5kU2NhbGVG
b3JUZXN0aW5nKGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQsIGZsb2F0IHNjYWxlKQordm9pZCBW
UDlUZXN0aW5nT3ZlcnJpZGVzOjpzZXRWUDlTY3JlZW5TaXplQW5kU2NhbGUoT3B0aW9uYWw8U2Ny
ZWVuRGF0YU92ZXJyaWRlcz4mJiBvdmVycmlkZXMpCiB7Ci0gICAgc2NyZWVuU2l6ZUFuZFNjYWxl
Rm9yVGVzdGluZyA9IG1ha2VPcHRpb25hbDxPdmVycmlkZVNjcmVlbkRhdGE+KHsgd2lkdGgsIGhl
aWdodCwgc2NhbGUgfSk7CisgICAgbV9zY3JlZW5TaXplQW5kU2NhbGUgPSBXVEZNb3ZlKG92ZXJy
aWRlcyk7CisgICAgaWYgKG1fY29uZmlndXJhdGlvbkNoYW5nZWRDYWxsYmFjaykKKyAgICAgICAg
bV9jb25maWd1cmF0aW9uQ2hhbmdlZENhbGxiYWNrKCk7CiB9CiAKLXZvaWQgcmVzZXRPdmVycmlk
ZVZQOVNjcmVlblNpemVBbmRTY2FsZUZvclRlc3RpbmcoKQordm9pZCBWUDlUZXN0aW5nT3ZlcnJp
ZGVzOjpzZXRDb25maWd1cmF0aW9uQ2hhbmdlZENhbGxiYWNrKHN0ZDo6ZnVuY3Rpb248dm9pZCgp
PiYmIGNhbGxiYWNrKQogewotICAgIHNjcmVlblNpemVBbmRTY2FsZUZvclRlc3RpbmcgPSBXVEY6
Om51bGxvcHQ7CisgICAgbV9jb25maWd1cmF0aW9uQ2hhbmdlZENhbGxiYWNrID0gV1RGTW92ZShj
YWxsYmFjayk7CiB9CiAKIGVudW0gY2xhc3MgUmVzb2x1dGlvbkNhdGVnb3J5IDogdWludDhfdCB7
CkBAIC0xMzksNiArMTQwLDE0IEBAIGJvb2wgaXNWUDhEZWNvZGVyQXZhaWxhYmxlKCkKICAgICBy
ZXR1cm4gbm9FcnIgPT0gVlRTZWxlY3RBbmRDcmVhdGVWaWRlb0RlY29kZXJJbnN0YW5jZSgndnAw
OCcsIGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIG51bGxwdHIpOwogfQogCitzdGF0aWMg
Ym9vbCB2cDlIYXJkd2FyZURlY29kZXJBdmFpbGFibGUoKQoreworICAgIGlmIChhdXRvIGRpc2Fi
bGVkRm9yVGVzdGluZyA9IFZQOVRlc3RpbmdPdmVycmlkZXM6OnNpbmdsZXRvbigpLmhhcmR3YXJl
RGVjb2RlckRpc2FibGVkKCkpCisgICAgICAgIHJldHVybiAhKmRpc2FibGVkRm9yVGVzdGluZzsK
KworICAgIHJldHVybiBjYW5Mb2FkX1ZpZGVvVG9vbGJveF9WVElzSGFyZHdhcmVEZWNvZGVTdXBw
b3J0ZWQoKSAmJiBWVElzSGFyZHdhcmVEZWNvZGVTdXBwb3J0ZWQoa0NNVmlkZW9Db2RlY1R5cGVf
VlA5KTsKK30KKwogc3RhdGljIGJvb2wgaXNWUDlDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmRTdXBw
b3J0ZWQoVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQmIGNvZGVjQ29uZmlndXJhdGlvbikKIHsK
ICAgICBpZiAoIWlzVlA5RGVjb2RlckF2YWlsYWJsZSgpKQpAQCAtMTYxLDcgKzE3MCw3IEBAIHN0
YXRpYyBib29sIGlzVlA5Q29kZWNDb25maWd1cmF0aW9uUmVjb3JkU3VwcG9ydGVkKFZQQ29kZWND
b25maWd1cmF0aW9uUmVjb3JkJiBjCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIC8vIEhh
cmR3YXJlIGRlY29kZXJzIGFyZSBhbHdheXMgYXZhaWxhYmxlLgotICAgIGlmIChjYW5Mb2FkX1Zp
ZGVvVG9vbGJveF9WVElzSGFyZHdhcmVEZWNvZGVTdXBwb3J0ZWQoKSAmJiBWVElzSGFyZHdhcmVE
ZWNvZGVTdXBwb3J0ZWQoa0NNVmlkZW9Db2RlY1R5cGVfVlA5KSAmJiAhaGFyZHdhcmVWUDlEZWNv
ZGVyRGlzYWJsZWRGb3JUZXN0aW5nKQorICAgIGlmICh2cDlIYXJkd2FyZURlY29kZXJBdmFpbGFi
bGUoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICAvLyBGb3Igd2FsbC1wb3dlcmVkIGRl
dmljZXMsIGFsd2F5cyByZXBvcnQgVlA5IGFzIHN1cHBvcnRlZCwgZXZlbiBpZiBub3QgcG93ZXJF
ZmZpY2llbnQuCkBAIC0xNzUsOSArMTg0LDggQEAgc3RhdGljIGJvb2wgaXNWUDlDb2RlY0NvbmZp
Z3VyYXRpb25SZWNvcmRTdXBwb3J0ZWQoVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQmIGMKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBib29sIGhhczRrU2NyZWVuID0gZmFsc2U7Ci0KLSAg
ICBpZiAoc2NyZWVuU2l6ZUFuZFNjYWxlRm9yVGVzdGluZykgewotICAgICAgICBhdXRvIHNjcmVl
blNpemUgPSBGbG9hdFNpemUoc2NyZWVuU2l6ZUFuZFNjYWxlRm9yVGVzdGluZy0+d2lkdGgsIHNj
cmVlblNpemVBbmRTY2FsZUZvclRlc3RpbmctPmhlaWdodCkuc2NhbGVkKHNjcmVlblNpemVBbmRT
Y2FsZUZvclRlc3RpbmctPnNjYWxlKTsKKyAgICBpZiAoYXV0byBvdmVycmlkZUZvclRlc3Rpbmcg
PSBWUDlUZXN0aW5nT3ZlcnJpZGVzOjpzaW5nbGV0b24oKS52cDlTY3JlZW5TaXplQW5kU2NhbGUo
KSkgeworICAgICAgICBhdXRvIHNjcmVlblNpemUgPSBGbG9hdFNpemUob3ZlcnJpZGVGb3JUZXN0
aW5nLT53aWR0aCwgb3ZlcnJpZGVGb3JUZXN0aW5nLT5oZWlnaHQpLnNjYWxlZChvdmVycmlkZUZv
clRlc3RpbmctPnNjYWxlKTsKICAgICAgICAgaGFzNGtTY3JlZW4gPSByZXNvbHV0aW9uQ2F0ZWdv
cnkoc2NyZWVuU2l6ZSkgPj0gUmVzb2x1dGlvbkNhdGVnb3J5OjpSXzRLOwogICAgIH0gZWxzZSB7
CiAgICAgICAgIGZvciAoYXV0byYgc2NyZWVuRGF0YSA6IGdldFNjcmVlblByb3BlcnRpZXMoKS5z
Y3JlZW5EYXRhTWFwLnZhbHVlcygpKSB7CkBAIC0yNDMsNyArMjUxLDcgQEAgYm9vbCB2YWxpZGF0
ZVZQUGFyYW1ldGVycyhWUENvZGVjQ29uZmlndXJhdGlvblJlY29yZCYgY29kZWNDb25maWd1cmF0
aW9uLCBNZWRpYUMKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICBpZiAo
Y2FuTG9hZF9WaWRlb1Rvb2xib3hfVlRJc0hhcmR3YXJlRGVjb2RlU3VwcG9ydGVkKCkgJiYgVlRJ
c0hhcmR3YXJlRGVjb2RlU3VwcG9ydGVkKGtDTVZpZGVvQ29kZWNUeXBlX1ZQOSkgJiYgIWhhcmR3
YXJlVlA5RGVjb2RlckRpc2FibGVkRm9yVGVzdGluZykgeworICAgIGlmICh2cDlIYXJkd2FyZURl
Y29kZXJBdmFpbGFibGUoKSkgewogICAgICAgICAvLyBIVyBWUDkgRGVjb2RlciBkb2VzIG5vdCBz
dXBwb3J0IGFscGhhIGNoYW5uZWw6CiAgICAgICAgIGlmICh2aWRlb0NvbmZpZ3VyYXRpb24uYWxw
aGFDaGFubmVsICYmICp2aWRlb0NvbmZpZ3VyYXRpb24uYWxwaGFDaGFubmVsKQogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwpAQCAtMjkyLDggKzMwMCw4IEBAIGJvb2wgdmFsaWRhdGVWUFBhcmFt
ZXRlcnMoVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQmIGNvZGVjQ29uZmlndXJhdGlvbiwgTWVk
aWFDCiAKICAgICBib29sIGhhczRrU2NyZWVuID0gZmFsc2U7CiAKLSAgICBpZiAoc2NyZWVuU2l6
ZUFuZFNjYWxlRm9yVGVzdGluZykgewotICAgICAgICBhdXRvIHNjcmVlblNpemUgPSBGbG9hdFNp
emUoc2NyZWVuU2l6ZUFuZFNjYWxlRm9yVGVzdGluZy0+d2lkdGgsIHNjcmVlblNpemVBbmRTY2Fs
ZUZvclRlc3RpbmctPmhlaWdodCkuc2NhbGVkKHNjcmVlblNpemVBbmRTY2FsZUZvclRlc3Rpbmct
PnNjYWxlKTsKKyAgICBpZiAoYXV0byBvdmVycmlkZUZvclRlc3RpbmcgPSBWUDlUZXN0aW5nT3Zl
cnJpZGVzOjpzaW5nbGV0b24oKS52cDlTY3JlZW5TaXplQW5kU2NhbGUoKSkgeworICAgICAgICBh
dXRvIHNjcmVlblNpemUgPSBGbG9hdFNpemUob3ZlcnJpZGVGb3JUZXN0aW5nLT53aWR0aCwgb3Zl
cnJpZGVGb3JUZXN0aW5nLT5oZWlnaHQpLnNjYWxlZChvdmVycmlkZUZvclRlc3RpbmctPnNjYWxl
KTsKICAgICAgICAgaGFzNGtTY3JlZW4gPSByZXNvbHV0aW9uQ2F0ZWdvcnkoc2NyZWVuU2l6ZSkg
Pj0gUmVzb2x1dGlvbkNhdGVnb3J5OjpSXzRLOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGZvciAo
YXV0byYgc2NyZWVuRGF0YSA6IGdldFNjcmVlblByb3BlcnRpZXMoKS5zY3JlZW5EYXRhTWFwLnZh
bHVlcygpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggNjFlYTlhMTVi
YTljZDE5MzNkODNlNTUyN2Q5OTdlNzQ2NjVmMmUxMC4uNjY5NTQ4NjBlNDEyY2ViNDlkNDkwMzdi
NDMwNzNlYjlmYjIwNTYwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAt
NjI3LDEzICs2MjcsMTMgQEAgSW50ZXJuYWxzOjpJbnRlcm5hbHMoRG9jdW1lbnQmIGRvY3VtZW50
KQogI2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBzZXRPdmVycmlkZVN5c3RlbUhh
c0JhdHRlcnlGb3JUZXN0aW5nKFdURjo6bnVsbG9wdCk7Ci0gICAgc2V0T3ZlcnJpZGVTeXN0ZW1I
YXNBQ0ZvclRlc3RpbmcoV1RGOjpudWxsb3B0KTsKKyAgICBTeXN0ZW1CYXR0ZXJ5U3RhdHVzVGVz
dGluZ092ZXJyaWRlczo6c2luZ2xldG9uKCkuc2V0SGFzQUMoV1RGOjpudWxsb3B0KTsKKyAgICBT
eXN0ZW1CYXR0ZXJ5U3RhdHVzVGVzdGluZ092ZXJyaWRlczo6c2luZ2xldG9uKCkuc2V0SGFzQmF0
dGVyeShXVEY6Om51bGxvcHQpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoVlA5KSAmJiBQTEFURk9S
TShDT0NPQSkKLSAgICBzZXRPdmVycmlkZVZQOUhhcmR3YXJlRGVjb2RlckRpc2FibGVkRm9yVGVz
dGluZyhmYWxzZSk7Ci0gICAgcmVzZXRPdmVycmlkZVZQOVNjcmVlblNpemVBbmRTY2FsZUZvclRl
c3RpbmcoKTsKKyAgICBWUDlUZXN0aW5nT3ZlcnJpZGVzOjpzaW5nbGV0b24oKS5zZXRIYXJkd2Fy
ZURlY29kZXJEaXNhYmxlZChXVEY6Om51bGxvcHQpOworICAgIFZQOVRlc3RpbmdPdmVycmlkZXM6
OnNpbmdsZXRvbigpLnNldFZQOVNjcmVlblNpemVBbmRTY2FsZShXVEY6Om51bGxvcHQpOwogI2Vu
ZGlmCiB9CiAKQEAgLTU4NDIsNyArNTg0Miw3IEBAIGJvb2wgSW50ZXJuYWxzOjpzeXN0ZW1IYXNC
YXR0ZXJ5KCkgY29uc3QKIHZvaWQgSW50ZXJuYWxzOjpzZXRTeXN0ZW1IYXNCYXR0ZXJ5Rm9yVGVz
dGluZyhib29sIGhhc0JhdHRlcnkpCiB7CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgV2ViQ29y
ZTo6c2V0T3ZlcnJpZGVTeXN0ZW1IYXNCYXR0ZXJ5Rm9yVGVzdGluZyhoYXNCYXR0ZXJ5KTsKKyAg
ICBTeXN0ZW1CYXR0ZXJ5U3RhdHVzVGVzdGluZ092ZXJyaWRlczo6c2luZ2xldG9uKCkuc2V0SGFz
QmF0dGVyeShoYXNCYXR0ZXJ5KTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGhhc0JhdHRlcnkp
OwogI2VuZGlmCkBAIC01ODUxLDcgKzU4NTEsNyBAQCB2b2lkIEludGVybmFsczo6c2V0U3lzdGVt
SGFzQmF0dGVyeUZvclRlc3RpbmcoYm9vbCBoYXNCYXR0ZXJ5KQogdm9pZCBJbnRlcm5hbHM6OnNl
dFN5c3RlbUhhc0FDRm9yVGVzdGluZyhib29sIGhhc0FDKQogewogI2lmIFBMQVRGT1JNKENPQ09B
KQotICAgIFdlYkNvcmU6OnNldE92ZXJyaWRlU3lzdGVtSGFzQUNGb3JUZXN0aW5nKGhhc0FDKTsK
KyAgICBTeXN0ZW1CYXR0ZXJ5U3RhdHVzVGVzdGluZ092ZXJyaWRlczo6c2luZ2xldG9uKCkuc2V0
SGFzQUMoaGFzQUMpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oaGFzQUMpOwogI2VuZGlmCkBA
IC01ODYwLDcgKzU4NjAsNyBAQCB2b2lkIEludGVybmFsczo6c2V0U3lzdGVtSGFzQUNGb3JUZXN0
aW5nKGJvb2wgaGFzQUMpCiB2b2lkIEludGVybmFsczo6c2V0SGFyZHdhcmVWUDlEZWNvZGVyRGlz
YWJsZWRGb3JUZXN0aW5nKGJvb2wgZGlzYWJsZWQpCiB7CiAjaWYgRU5BQkxFKFZQOSkgJiYgUExB
VEZPUk0oQ09DT0EpCi0gICAgV2ViQ29yZTo6c2V0T3ZlcnJpZGVWUDlIYXJkd2FyZURlY29kZXJE
aXNhYmxlZEZvclRlc3RpbmcoZGlzYWJsZWQpOworICAgIFZQOVRlc3RpbmdPdmVycmlkZXM6OnNp
bmdsZXRvbigpLnNldEhhcmR3YXJlRGVjb2RlckRpc2FibGVkKGRpc2FibGVkKTsKICNlbHNlCiAg
ICAgVU5VU0VEX1BBUkFNKGRpc2FibGVkKTsKICNlbmRpZgpAQCAtNTg2OSw3ICs1ODY5LDcgQEAg
dm9pZCBJbnRlcm5hbHM6OnNldEhhcmR3YXJlVlA5RGVjb2RlckRpc2FibGVkRm9yVGVzdGluZyhi
b29sIGRpc2FibGVkKQogdm9pZCBJbnRlcm5hbHM6OnNldFZQOVNjcmVlblNpemVBbmRTY2FsZUZv
clRlc3RpbmcoZG91YmxlIHdpZHRoLCBkb3VibGUgaGVpZ2h0LCBkb3VibGUgc2NhbGUpCiB7CiAj
aWYgRU5BQkxFKFZQOSkgJiYgUExBVEZPUk0oQ09DT0EpCi0gICAgV2ViQ29yZTo6c2V0T3ZlcnJp
ZGVWUDlTY3JlZW5TaXplQW5kU2NhbGVGb3JUZXN0aW5nKHdpZHRoLCBoZWlnaHQsIHNjYWxlKTsK
KyAgICBWUDlUZXN0aW5nT3ZlcnJpZGVzOjpzaW5nbGV0b24oKS5zZXRWUDlTY3JlZW5TaXplQW5k
U2NhbGUobWFrZU9wdGlvbmFsPFNjcmVlbkRhdGFPdmVycmlkZXM+KHsgd2lkdGgsIGhlaWdodCwg
c2NhbGUgfSkpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0od2lkdGgpOwogICAgIFVOVVNFRF9Q
QVJBTShoZWlnaHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IGY0MmNhMjg4NGNlMmJhNzEzOThjMmM3MDNj
OTM2OTc4YmY5YWI3NjAuLjg4MTE2OGU1YmQ4YzczZGI4ZDkyZWI4YmUyMzUxZTAxMzdhMGZhMDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxOS0y
MDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIkxpYldlYlJUQ0NvZGVjc1By
b3h5LmgiCiAjaW5jbHVkZSAiTGliV2ViUlRDQ29kZWNzUHJveHlNZXNzYWdlcy5oIgogI2luY2x1
ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJNZWRpYU92ZXJyaWRlc0ZvclRlc3RpbmcuaCIKICNp
bmNsdWRlICJSZW1vdGVBdWRpb0hhcmR3YXJlTGlzdGVuZXJQcm94eS5oIgogI2luY2x1ZGUgIlJl
bW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5oIgogI2luY2x1ZGUgIlJl
bW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmgiCkBAIC0xMTksNiArMTIwLDE0IEBACiAjaW5j
bHVkZSAiUmVtb3RlTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeVByb3h5TWVzc2FnZXMu
aCIKICNlbmRpZgogCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSA8V2ViQ29yZS9TeXN0
ZW1CYXR0ZXJ5Lmg+CisjZW5kaWYKKworI2lmIEVOQUJMRShWUDkpICYmIFBMQVRGT1JNKENPQ09B
KQorI2luY2x1ZGUgPFdlYkNvcmUvVlA5VXRpbGl0aWVzQ29jb2EuaD4KKyNlbmRpZgorCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC00MzMsNiArNDQy
LDE5IEBAIHZvaWQgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVsZWFzZVJlbW90ZUNvbW1h
bmRMaXN0ZW5lcihSZW1vdGVSZW1vdGVDb21tYW5kCiAgICAgQVNTRVJUX1VOVVNFRChmb3VuZCwg
Zm91bmQpOwogfQogCit2b2lkIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnNldE1lZGlhT3Zl
cnJpZGVzRm9yVGVzdGluZyhNZWRpYU92ZXJyaWRlc0ZvclRlc3Rpbmcgb3ZlcnJpZGVzKQorewor
I2lmIEVOQUJMRShWUDkpICYmIFBMQVRGT1JNKENPQ09BKQorICAgIFZQOVRlc3RpbmdPdmVycmlk
ZXM6OnNpbmdsZXRvbigpLnNldEhhcmR3YXJlRGVjb2RlckRpc2FibGVkKFdURk1vdmUob3ZlcnJp
ZGVzLnZwOUhhcmR3YXJlRGVjb2RlckRpc2FibGVkKSk7CisgICAgVlA5VGVzdGluZ092ZXJyaWRl
czo6c2luZ2xldG9uKCkuc2V0VlA5U2NyZWVuU2l6ZUFuZFNjYWxlKFdURk1vdmUob3ZlcnJpZGVz
LnZwOVNjcmVlblNpemVBbmRTY2FsZSkpOworI2VuZGlmCisKKyNpZiBQTEFURk9STShDT0NPQSkK
KyAgICBTeXN0ZW1CYXR0ZXJ5U3RhdHVzVGVzdGluZ092ZXJyaWRlczo6c2luZ2xldG9uKCkuc2V0
SGFzQUMoV1RGTW92ZShvdmVycmlkZXMuc3lzdGVtSGFzQUMpKTsKKyAgICBTeXN0ZW1CYXR0ZXJ5
U3RhdHVzVGVzdGluZ092ZXJyaWRlczo6c2luZ2xldG9uKCkuc2V0SGFzQmF0dGVyeShXVEZNb3Zl
KG92ZXJyaWRlcy5zeXN0ZW1IYXNCYXR0ZXJ5KSk7CisjZW5kaWYKK30KKwogYm9vbCBHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpkaXNwYXRjaE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25u
ZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCiB7CiAjaWYgRU5BQkxFKFdFQl9BVURJTykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5oCmluZGV4IGY4ODY5YjBjMmQxYzMyYzA4ZWRkODBkNDgzNDc3ZjJmZDkxMTg4NTcuLjE4
YTNjMWRmODk0OWRkZjk0OGVjMTdkNWRlMmYxMDNkMDIzZmY2NTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE5LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC03Miw2ICs3
Miw3IEBAIGNsYXNzIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOwogY2xhc3MgUmVtb3RlU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjsKIGNsYXNzIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHk7CiBzdHJ1Y3QgR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzOworc3RydWN0IE1l
ZGlhT3ZlcnJpZGVzRm9yVGVzdGluZzsKIHN0cnVjdCBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1
cmF0aW9uOwogCiBjbGFzcyBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzCkBAIC0xNzEsNiArMTcy
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlbGVhc2VBdWRpb0hhcmR3YXJlTGlzdGVuZXIoUmVt
b3RlQXVkaW9IYXJkd2FyZUxpc3RlbmVySWRlbnRpZmllcik7CiAgICAgdm9pZCBjcmVhdGVSZW1v
dGVDb21tYW5kTGlzdGVuZXIoUmVtb3RlUmVtb3RlQ29tbWFuZExpc3RlbmVySWRlbnRpZmllcik7
CiAgICAgdm9pZCByZWxlYXNlUmVtb3RlQ29tbWFuZExpc3RlbmVyKFJlbW90ZVJlbW90ZUNvbW1h
bmRMaXN0ZW5lcklkZW50aWZpZXIpOworICAgIHZvaWQgc2V0TWVkaWFPdmVycmlkZXNGb3JUZXN0
aW5nKE1lZGlhT3ZlcnJpZGVzRm9yVGVzdGluZyk7CiAKICAgICAvLyBJUEM6OkNvbm5lY3Rpb246
OkNsaWVudAogICAgIHZvaWQgZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikgZmluYWw7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IGEzNDEyOWZkMWQzMDU3YzM4YzZjNGJjM2UyYTY4
M2Y5ZDU2MDFjYzYuLmRjYzA0ZmU2MzZmN2ZhYWIzZmNhYzhhNTc5OTIyNjhkNTRjZWY3NDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0xLDQgKzEsNCBAQAotIyBDb3B5cmlnaHQg
KEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMp
IDIwMTktMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTQwLDYgKzQwLDcgQEAgbWVzc2FnZXMgLT4gR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2VzcyBXYW50c0Rpc3BhdGNoTWVzc2FnZSB7CiAjaWYgRU5BQkxFKFZQOSkKICAg
ICBFbmFibGVWUDlEZWNvZGVycyhib29sIHNob3VsZEVuYWJsZVZQOERlY29kZXIsIGJvb2wgc2hv
dWxkRW5hYmxlVlA5RGVjb2RlciwgYm9vbCBzaG91bGRFbmFibGVWUDlTV0RlY29kZXIpCiAjZW5k
aWYKKyAgICBTZXRNZWRpYU92ZXJyaWRlc0ZvclRlc3Rpbmcoc3RydWN0IFdlYktpdDo6TWVkaWFP
dmVycmlkZXNGb3JUZXN0aW5nIGNvbmZpZ3VyYXRpb24pCiAgICAgQ3JlYXRlQXVkaW9IYXJkd2Fy
ZUxpc3RlbmVyKFdlYktpdDo6UmVtb3RlQXVkaW9IYXJkd2FyZUxpc3RlbmVySWRlbnRpZmllciBp
ZGVudGlmaWVyKQogICAgIFJlbGVhc2VBdWRpb0hhcmR3YXJlTGlzdGVuZXIoV2ViS2l0OjpSZW1v
dGVBdWRpb0hhcmR3YXJlTGlzdGVuZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCiAgICAgQ3JlYXRl
UmVtb3RlQ29tbWFuZExpc3RlbmVyKFdlYktpdDo6UmVtb3RlUmVtb3RlQ29tbWFuZExpc3RlbmVy
SWRlbnRpZmllciBpZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3Bw
CmluZGV4IGI2NDA4MTQyN2M4YWU1M2RjNDFiNWRjY2FlNzc5NzYxNTRjYjIwMWEuLmQxMDFiMzg2
MDBlYjdhZDhlMzYyZTVhOGUyZDVmMzVkMjYyNmJjYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eS5jcHAKQEAgLTc0MCw3ICs3NDAsNyBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5Ojpjb21wdXRlRmlsdGVyZWREZXZpY2VMaXN0KGJvb2wgcmV2
ZQogICAgICAgICAgICAgZmlsdGVyZWREZXZpY2VzLmFwcGVuZChyZXZlYWxJZHNBbmRMYWJlbHMg
PyBkZXZpY2UgOiBDYXB0dXJlRGV2aWNlKHsgfSwgZGV2aWNlLnR5cGUoKSwgeyB9LCB7IH0pKTsK
ICAgICAgICAgfQogCi0gICAgICAgIG1faGFzRmlsdGVyZWREZXZpY2VMaXN0ID0gIXJldmVhbElk
c0FuZExhYmVsczsKKyAgICAgICAgd2Vha1RoaXMtPm1faGFzRmlsdGVyZWREZXZpY2VMaXN0ID0g
IXJldmVhbElkc0FuZExhYmVsczsKICAgICAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCBm
aWx0ZXJlZERldmljZXMuc2l6ZSgpLCAiIGRldmljZXMgcmV2ZWFsZWQiKTsKIAogICAgICAgICBj
b21wbGV0aW9uKFdURk1vdmUoZmlsdGVyZWREZXZpY2VzKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAzMTlmMmU0Yzc3OGNkNGQ1ZjQz
ZjA1NjE3ZjUzMTMzOWM2YWJiOTBlLi40YjAxMWQ3MTliMTNkOWJhOWRlZjQ5YTQ4ZDNjOGRkNjQ5
MjdlYzRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTIzNzYsNiArMjM3Niw3IEBACiAJCTA3Mjk3RjlEMUMxN0JCRUEyMjNGMDczNSAv
KiBEZXZpY2VJZEhhc2hTYWx0U3RvcmFnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBEZXZpY2VJZEhhc2hTYWx0U3RvcmFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwNzI5N0ZBMDFDMTg2QURCMDAzRjA3MzUgLyogV0tVc2VyTWVkaWFQZXJtaXNzaW9uQ2hl
Y2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tVc2VyTWVkaWFQ
ZXJtaXNzaW9uQ2hlY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzI5N0ZB
MTFDMTg2QURCMDAzRjA3MzUgLyogV0tVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2suaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2suaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc0NDcyMDUyNUU1QkQwMjAwNTRCMjMxIC8q
IE1lZGlhT3ZlcnJpZGVzRm9yVGVzdGluZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYU92ZXJyaWRl
c0ZvclRlc3RpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc0ODc5QjcyMzcz
QTkwOTAwRjU2NzhFIC8qIEFwcEtpdFNvZnRMaW5rLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEFwcEtpdFNv
ZnRMaW5rLmg7IHBhdGggPSBpb3MvQXBwS2l0U29mdExpbmsuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMDc0ODc5QjgyMzczQTkwOTAwRjU2NzhFIC8qIEFwcEtpdFNvZnRMaW5rLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBuYW1lID0gQXBwS2l0U29mdExpbmsubW07IHBhdGggPSBpb3MvQXBw
S2l0U29mdExpbmsubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NEU3NUZCMURG
MUZEMTMwMEQzMThFQyAvKiBVc2VyTWVkaWFQcm9jZXNzTWFuYWdlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBVc2VyTWVkaWFQcm9jZXNzTWFuYWdlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtNjAyMSw2ICs2MDIyLDcgQEAKIAkJCQlDREE5NTkzOTI0MTJC
MTc1MDA5MTBFRUYgLyogaW9zICovLAogCQkJCTA3MUJDNTc5MjNDOTNCQjkwMDY4MEQ3QyAvKiBB
dWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAgKi8sCiAJCQkJMDcxQkM1NzcyM0M5M0JCNzAwNjgw
RDdDIC8qIEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmggKi8sCisJCQkJMDc0NDcyMDUyNUU1QkQw
MjAwNTRCMjMxIC8qIE1lZGlhT3ZlcnJpZGVzRm9yVGVzdGluZy5oICovLAogCQkJCTA3OTIzMTMx
MjM5QjNCMEMwMDk1OThFMiAvKiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwICovLAogCQkJ
CTA3OTIzMTMyMjM5QjNCMEMwMDk1OThFMiAvKiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaCAq
LywKIAkJCQkwN0IxRDA0QjIzRDM4RkNFMDAzOTlBNkUgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlLm1lc3NhZ2VzLmluICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcAppbmRleCA2ZGUxZGRjMGFjMWIzMDMxMmU0NTc3
ZjZmM2U1OWY5MGMyZGQyNWUxLi44ODJiNjkyOTI3ODZlNGVlY2UxMmIwYmRkZmU1OGE5M2U4OWMz
OWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3ND
b25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nl
c3NDb25uZWN0aW9uLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE5
LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiTGliV2ViUlRDQ29kZWNz
LmgiCiAjaW5jbHVkZSAiTGliV2ViUlRDQ29kZWNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJMb2dn
aW5nLmgiCisjaW5jbHVkZSAiTWVkaWFPdmVycmlkZXNGb3JUZXN0aW5nLmgiCiAjaW5jbHVkZSAi
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZXMuaCIKICNpbmNsdWRlICJNZWRpYVNvdXJj
ZVByaXZhdGVSZW1vdGVNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZUF1ZGlvSGFyZHdhcmVM
aXN0ZW5lck1lc3NhZ2VzLmgiCkBAIC03Niw2ICs3NywxNCBAQAogI2luY2x1ZGUgIlJlbW90ZUdy
YXBoaWNzQ29udGV4dEdMUHJveHlNZXNzYWdlcy5oIgogI2VuZGlmCiAKKyNpZiBQTEFURk9STShD
T0NPQSkKKyNpbmNsdWRlIDxXZWJDb3JlL1N5c3RlbUJhdHRlcnkuaD4KKyNlbmRpZgorCisjaWYg
RU5BQkxFKFZQOSkgJiYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSA8V2ViQ29yZS9WUDlVdGls
aXRpZXNDb2NvYS5oPgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAKQEAgLTI0Miw2ICsyNTEsMzYgQEAgdm9pZCBHUFVQcm9jZXNzQ29ubmVj
dGlvbjo6dXBkYXRlUGFyYW1ldGVycyhjb25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiBw
YXIKICNlbmRpZgogfQogCit2b2lkIEdQVVByb2Nlc3NDb25uZWN0aW9uOjp1cGRhdGVNZWRpYUNv
bmZpZ3VyYXRpb24oKQoreworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIGJvb2wgc2V0dGluZ3ND
aGFuZ2VkID0gZmFsc2U7CisKKyAgICBpZiAobV9tZWRpYU92ZXJyaWRlc0ZvclRlc3Rpbmcuc3lz
dGVtSGFzQUMgIT0gU3lzdGVtQmF0dGVyeVN0YXR1c1Rlc3RpbmdPdmVycmlkZXM6OnNpbmdsZXRv
bigpLmhhc0FDKCkgfHwgbV9tZWRpYU92ZXJyaWRlc0ZvclRlc3Rpbmcuc3lzdGVtSGFzQmF0dGVy
eSAhPSBTeXN0ZW1CYXR0ZXJ5U3RhdHVzVGVzdGluZ092ZXJyaWRlczo6c2luZ2xldG9uKCkuaGFz
QmF0dGVyeSgpKQorICAgICAgICBzZXR0aW5nc0NoYW5nZWQgPSB0cnVlOworCisjaWYgRU5BQkxF
KFZQOSkKKyAgICBpZiAobV9tZWRpYU92ZXJyaWRlc0ZvclRlc3RpbmcudnA5SGFyZHdhcmVEZWNv
ZGVyRGlzYWJsZWQgIT0gVlA5VGVzdGluZ092ZXJyaWRlczo6c2luZ2xldG9uKCkuaGFyZHdhcmVE
ZWNvZGVyRGlzYWJsZWQoKSB8fCBtX21lZGlhT3ZlcnJpZGVzRm9yVGVzdGluZy52cDlTY3JlZW5T
aXplQW5kU2NhbGUgIT0gVlA5VGVzdGluZ092ZXJyaWRlczo6c2luZ2xldG9uKCkudnA5U2NyZWVu
U2l6ZUFuZFNjYWxlKCkpCisgICAgICAgIHNldHRpbmdzQ2hhbmdlZCA9IHRydWU7CisjZW5kaWYK
KworICAgIGlmICghc2V0dGluZ3NDaGFuZ2VkKQorICAgICAgICByZXR1cm47CisKKyAgICBtX21l
ZGlhT3ZlcnJpZGVzRm9yVGVzdGluZyA9IHsKKyAgICAgICAgU3lzdGVtQmF0dGVyeVN0YXR1c1Rl
c3RpbmdPdmVycmlkZXM6OnNpbmdsZXRvbigpLmhhc0FDKCksCisgICAgICAgIFN5c3RlbUJhdHRl
cnlTdGF0dXNUZXN0aW5nT3ZlcnJpZGVzOjpzaW5nbGV0b24oKS5oYXNCYXR0ZXJ5KCksCisKKyNp
ZiBFTkFCTEUoVlA5KQorICAgICAgICBWUDlUZXN0aW5nT3ZlcnJpZGVzOjpzaW5nbGV0b24oKS5o
YXJkd2FyZURlY29kZXJEaXNhYmxlZCgpLAorICAgICAgICBWUDlUZXN0aW5nT3ZlcnJpZGVzOjpz
aW5nbGV0b24oKS52cDlTY3JlZW5TaXplQW5kU2NhbGUoKSwKKyNlbmRpZgorICAgIH07CisKKyAg
ICBjb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
U2V0TWVkaWFPdmVycmlkZXNGb3JUZXN0aW5nKG1fbWVkaWFPdmVycmlkZXNGb3JUZXN0aW5nKSwg
eyB9KTsKKyNlbmRpZgorfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVO
QUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
R1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaAppbmRleCAwYjdiZjhhOTcxZjY2YWRhYjUxZGM3MzU1MWM4
YTAxM2Q3MWU5NGZjLi4wMGMwYzJmMDAzYTNhODk3ZGVjOTI5Njg5MjkxZmJmYzVmMzZkNWU4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0
aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVj
dGlvbi5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiAjaW5j
bHVkZSAiQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIk1lZGlhT3ZlcnJpZGVzRm9yVGVzdGluZy5o
IgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlck1hcC5oIgogI2luY2x1ZGUgIlNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllck1hbmFnZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTWVkaWFT
ZXNzaW9uLmg+CkBAIC00Myw2ICs0NCw3IEBAIGNsYXNzIFJlbW90ZUNETUZhY3Rvcnk7CiBjbGFz
cyBSZW1vdGVNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5OwogY2xhc3MgUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyOwogY2xhc3MgUmVtb3RlTGVnYWN5Q0RNRmFjdG9yeTsKK3N0cnVjdCBP
dmVycmlkZVNjcmVlbkRhdGFGb3JUZXN0aW5nOwogc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFt
ZXRlcnM7CiAKIGNsYXNzIEdQVVByb2Nlc3NDb25uZWN0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8
R1BVUHJvY2Vzc0Nvbm5lY3Rpb24+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8R1BVUHJvY2Vzc0Nv
bm5lY3Rpb24+LCBJUEM6OkNvbm5lY3Rpb246OkNsaWVudCB7CkBAIC04MSw2ICs4Myw3IEBAIHB1
YmxpYzoKICAgICBSZW1vdGVNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5JiBtZWRpYUVu
Z2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5KCk7CiAKICAgICB2b2lkIHVwZGF0ZVBhcmFtZXRlcnMo
Y29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYpOworICAgIHZvaWQgdXBkYXRlTWVkaWFD
b25maWd1cmF0aW9uKCk7CiAKICNpZiBFTkFCTEUoVlA5KQogICAgIGJvb2wgaXNWUDhEZWNvZGVy
RW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZW5hYmxlVlA4RGVjb2RlcjsgfQpAQCAtMTI5LDYg
KzEzMiwxMSBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9lbmFibGVWUDlEZWNvZGVyIHsgZmFsc2Ug
fTsKICAgICBib29sIG1fZW5hYmxlVlA5U1dEZWNvZGVyIHsgZmFsc2UgfTsKICNlbmRpZgorCisj
aWYgUExBVEZPUk0oQ09DT0EpCisgICAgTWVkaWFPdmVycmlkZXNGb3JUZXN0aW5nIG1fbWVkaWFP
dmVycmlkZXNGb3JUZXN0aW5nOworI2VuZGlmCisKICAgICBXZWFrSGFzaFNldDxDbGllbnQ+IG1f
Y2xpZW50czsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvTWVkaWFPdmVycmlkZXNGb3JUZXN0aW5nLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL01lZGlhT3ZlcnJpZGVzRm9yVGVzdGluZy5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUzMWY5
ZGE3Yzk3Mzk2M2MzNGIyZWEzZTI5ZTFhY2Q2YzZkZmUxOTAKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhT3ZlcnJpZGVzRm9yVGVzdGlu
Zy5oCkBAIC0wLDAgKzEsODQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgPFdlYkNvcmUvVlA5VXRpbGl0aWVzLmg+CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitzdHJ1Y3QgTWVkaWFPdmVycmlkZXNGb3JUZXN0aW5nIHsK
KyAgICBPcHRpb25hbDxib29sPiBzeXN0ZW1IYXNBQzsKKyAgICBPcHRpb25hbDxib29sPiBzeXN0
ZW1IYXNCYXR0ZXJ5OworCisgICAgT3B0aW9uYWw8Ym9vbD4gdnA5SGFyZHdhcmVEZWNvZGVyRGlz
YWJsZWQ7CisgICAgT3B0aW9uYWw8V2ViQ29yZTo6U2NyZWVuRGF0YU92ZXJyaWRlcz4gdnA5U2Ny
ZWVuU2l6ZUFuZFNjYWxlOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KKyAgICB2b2lk
IGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8
PCBzeXN0ZW1IYXNBQzsKKyAgICAgICAgZW5jb2RlciA8PCBzeXN0ZW1IYXNCYXR0ZXJ5OworICAg
ICAgICBlbmNvZGVyIDw8IHZwOUhhcmR3YXJlRGVjb2RlckRpc2FibGVkOworICAgICAgICBlbmNv
ZGVyIDw8IHZwOVNjcmVlblNpemVBbmRTY2FsZTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZSA8Y2xh
c3MgRGVjb2Rlcj4KKyAgICBzdGF0aWMgT3B0aW9uYWw8TWVkaWFPdmVycmlkZXNGb3JUZXN0aW5n
PiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIE9wdGlvbmFsPE9wdGlv
bmFsPGJvb2w+PiBzeXN0ZW1IYXNBQzsKKyAgICAgICAgZGVjb2RlciA+PiBzeXN0ZW1IYXNBQzsK
KyAgICAgICAgaWYgKCFzeXN0ZW1IYXNBQykKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7CisKKyAgICAgICAgT3B0aW9uYWw8T3B0aW9uYWw8Ym9vbD4+IHN5c3RlbUhhc0JhdHRlcnk7
CisgICAgICAgIGRlY29kZXIgPj4gc3lzdGVtSGFzQmF0dGVyeTsKKyAgICAgICAgaWYgKCFzeXN0
ZW1IYXNCYXR0ZXJ5KQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAg
ICBPcHRpb25hbDxPcHRpb25hbDxib29sPj4gdnA5SGFyZHdhcmVEZWNvZGVyRGlzYWJsZWQ7Cisg
ICAgICAgIGRlY29kZXIgPj4gdnA5SGFyZHdhcmVEZWNvZGVyRGlzYWJsZWQ7CisgICAgICAgIGlm
ICghdnA5SGFyZHdhcmVEZWNvZGVyRGlzYWJsZWQpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OworCisgICAgICAgIE9wdGlvbmFsPE9wdGlvbmFsPFdlYkNvcmU6OlNjcmVlbkRhdGFP
dmVycmlkZXM+PiB2cDlTY3JlZW5TaXplQW5kU2NhbGU7CisgICAgICAgIGRlY29kZXIgPj4gdnA5
U2NyZWVuU2l6ZUFuZFNjYWxlOworICAgICAgICBpZiAoIXZwOVNjcmVlblNpemVBbmRTY2FsZSkK
KyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHt7Cisg
ICAgICAgICAgICAqc3lzdGVtSGFzQUMsCisgICAgICAgICAgICAqc3lzdGVtSGFzQmF0dGVyeSwK
KyAgICAgICAgICAgICp2cDlIYXJkd2FyZURlY29kZXJEaXNhYmxlZCwKKyAgICAgICAgICAgICp2
cDlTY3JlZW5TaXplQW5kU2NhbGUsCisgICAgICAgIH19OworICAgIH0KK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhRW5naW5lQ29u
ZmlndXJhdGlvbkZhY3RvcnkuY3BwCmluZGV4IDU3MGQwMjJjNjJmNWFkMzU4NTIzZGZlN2I3ZTYw
YmU2NmY1YWJjMzEuLmVmNTcwY2IxZThlOWE4NjUxMGE1NjI1YWEwYTY3NDhmMGRmMjkwNmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFF
bmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5LmNwcApA
QCAtNTAsMjQgKzUwLDMwIEBAIFJlbW90ZU1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3Rvcnk6
On5SZW1vdGVNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5KCkKIHZvaWQgUmVtb3RlTWVk
aWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeTo6cmVnaXN0ZXJGYWN0b3J5KCkKIHsKICAgICBN
ZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5OjpjbGVhckZhY3RvcmllcygpOwotICAgIE1l
ZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3Rvcnk6Omluc3RhbGxGYWN0b3J5KHsKLSAgICAgICAg
W3dlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyldIChNZWRpYURlY29kaW5nQ29uZmlndXJhdGlv
biYmIGNvbmZpZ3VyYXRpb24sIE1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3Rvcnk6OkRlY29k
aW5nQ29uZmlndXJhdGlvbkNhbGxiYWNrJiYgY2FsbGJhY2spIHsKLSAgICAgICAgICAgIGlmICgh
d2Vha1RoaXMpIHsKLSAgICAgICAgICAgICAgICBjYWxsYmFjayh7eyB9LCBXVEZNb3ZlKGNvbmZp
Z3VyYXRpb24pfSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotCi0g
ICAgICAgICAgICB3ZWFrVGhpcy0+Y3JlYXRlRGVjb2RpbmdDb25maWd1cmF0aW9uKFdURk1vdmUo
Y29uZmlndXJhdGlvbiksIFdURk1vdmUoY2FsbGJhY2spKTsKLSAgICAgICAgfSwKLSAgICAgICAg
W3dlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyldIChNZWRpYUVuY29kaW5nQ29uZmlndXJhdGlv
biYmIGNvbmZpZ3VyYXRpb24sIE1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3Rvcnk6OkVuY29k
aW5nQ29uZmlndXJhdGlvbkNhbGxiYWNrJiYgY2FsbGJhY2spIHsKLSAgICAgICAgICAgIGlmICgh
d2Vha1RoaXMpIHsKLSAgICAgICAgICAgICAgICBjYWxsYmFjayh7eyB9LCBXVEZNb3ZlKGNvbmZp
Z3VyYXRpb24pfSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotCi0g
ICAgICAgICAgICB3ZWFrVGhpcy0+Y3JlYXRlRW5jb2RpbmdDb25maWd1cmF0aW9uKFdURk1vdmUo
Y29uZmlndXJhdGlvbiksIFdURk1vdmUoY2FsbGJhY2spKTsKLSAgICAgICAgfSwKLSAgICB9KTsK
KworICAgIGF1dG8gY3JlYXRlRGVjb2RpbmdDb25maWd1cmF0aW9uID0gW3dlYWtUaGlzID0gbWFr
ZVdlYWtQdHIodGhpcyldIChNZWRpYURlY29kaW5nQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRp
b24sIE1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3Rvcnk6OkRlY29kaW5nQ29uZmlndXJhdGlv
bkNhbGxiYWNrJiYgY2FsbGJhY2spIHsKKyAgICAgICAgaWYgKCF3ZWFrVGhpcykgeworICAgICAg
ICAgICAgY2FsbGJhY2soe3sgfSwgV1RGTW92ZShjb25maWd1cmF0aW9uKX0pOworICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgd2Vha1RoaXMtPmNyZWF0ZURlY29kaW5n
Q29uZmlndXJhdGlvbihXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pLCBXVEZNb3ZlKGNhbGxiYWNrKSk7
CisgICAgfTsKKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIE1lZGlhRW5naW5lQ29uZmlndXJh
dGlvbkZhY3Rvcnk6OkNyZWF0ZUVuY29kaW5nQ29uZmlndXJhdGlvbiBjcmVhdGVFbmNvZGluZ0Nv
bmZpZ3VyYXRpb24gPSBudWxscHRyOworI2Vsc2UKKyAgICBhdXRvIGNyZWF0ZUVuY29kaW5nQ29u
ZmlndXJhdGlvbiA9IFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpXSAoTWVkaWFFbmNvZGlu
Z0NvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uLCBNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25G
YWN0b3J5OjpFbmNvZGluZ0NvbmZpZ3VyYXRpb25DYWxsYmFjayYmIGNhbGxiYWNrKSB7CisgICAg
ICAgIGlmICghd2Vha1RoaXMpIHsKKyAgICAgICAgICAgIGNhbGxiYWNrKHt7IH0sIFdURk1vdmUo
Y29uZmlndXJhdGlvbil9KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAg
ICAgIHdlYWtUaGlzLT5jcmVhdGVFbmNvZGluZ0NvbmZpZ3VyYXRpb24oV1RGTW92ZShjb25maWd1
cmF0aW9uKSwgV1RGTW92ZShjYWxsYmFjaykpOworICAgIH07CisjZW5kaWYKKworICAgIE1lZGlh
RW5naW5lQ29uZmlndXJhdGlvbkZhY3Rvcnk6Omluc3RhbGxGYWN0b3J5KHsgV1RGTW92ZShjcmVh
dGVEZWNvZGluZ0NvbmZpZ3VyYXRpb24pLCBXVEZNb3ZlKGNyZWF0ZUVuY29kaW5nQ29uZmlndXJh
dGlvbikgfSk7CiB9CiAKIGNvbnN0IGNoYXIqIFJlbW90ZU1lZGlhRW5naW5lQ29uZmlndXJhdGlv
bkZhY3Rvcnk6OnN1cHBsZW1lbnROYW1lKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmNwcAppbmRleCAzMDFiODg3N2IzNTdkMGQ2MTNhM2FkMTAwYWE5NGY5ZThkNzZmNjIyLi4y
ZWE1OWU4YWZkMjU5ZjFmMjU4ZDQ1MjgyZmM2OTBjNmQyYWUxNjI4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC0xMzEsNiArMTMxLDcgQEAKICNpbmNsdWRlIDxX
ZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2Vy
Q29udGV4dERhdGEuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9TeXN0ZW1CYXR0ZXJ5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyR2VzdHVyZUlu
ZGljYXRvci5oPgogI2luY2x1ZGUgPHd0Zi9BbGdvcml0aG1zLmg+CiAjaW5jbHVkZSA8d3RmL0Nh
bGxiYWNrQWdncmVnYXRvci5oPgpAQCAtMTk3NSw2ICsxOTc2LDI0IEBAIHZvaWQgV2ViUHJvY2Vz
czo6c2V0VXNlR1BVUHJvY2Vzc0Zvck1lZGlhKGJvb2wgdXNlR1BVUHJvY2Vzc0Zvck1lZGlhKQog
ICAgICAgICBXZWJDb3JlOjpSZW1vdGVDb21tYW5kTGlzdGVuZXI6OnNldENyZWF0aW9uRnVuY3Rp
b24oW3RoaXNdIChXZWJDb3JlOjpSZW1vdGVDb21tYW5kTGlzdGVuZXJDbGllbnQmIGNsaWVudCkg
eyByZXR1cm4gUmVtb3RlUmVtb3RlQ29tbWFuZExpc3RlbmVyOjpjcmVhdGUoY2xpZW50LCAqdGhp
cyk7IH0pOwogICAgIGVsc2UKICAgICAgICAgV2ViQ29yZTo6UmVtb3RlQ29tbWFuZExpc3RlbmVy
OjpyZXNldENyZWF0aW9uRnVuY3Rpb24oKTsKKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIGlm
ICh1c2VHUFVQcm9jZXNzRm9yTWVkaWEpIHsKKyAgICAgICAgU3lzdGVtQmF0dGVyeVN0YXR1c1Rl
c3RpbmdPdmVycmlkZXM6OnNpbmdsZXRvbigpLnNldENvbmZpZ3VyYXRpb25DaGFuZ2VkQ2FsbGJh
Y2soW3RoaXNdICgpIHsKKyAgICAgICAgICAgIGVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCku
dXBkYXRlTWVkaWFDb25maWd1cmF0aW9uKCk7CisgICAgICAgIH0pOworI2lmIEVOQUJMRShWUDkp
CisgICAgICAgIFZQOVRlc3RpbmdPdmVycmlkZXM6OnNpbmdsZXRvbigpLnNldENvbmZpZ3VyYXRp
b25DaGFuZ2VkQ2FsbGJhY2soW3RoaXNdICgpIHsKKyAgICAgICAgICAgIGVuc3VyZUdQVVByb2Nl
c3NDb25uZWN0aW9uKCkudXBkYXRlTWVkaWFDb25maWd1cmF0aW9uKCk7CisgICAgICAgIH0pOwor
I2VuZGlmCisgICAgfSBlbHNlIHsKKyAgICAgICAgU3lzdGVtQmF0dGVyeVN0YXR1c1Rlc3RpbmdP
dmVycmlkZXM6OnNpbmdsZXRvbigpLnNldENvbmZpZ3VyYXRpb25DaGFuZ2VkQ2FsbGJhY2sobnVs
bHB0cik7CisjaWYgRU5BQkxFKFZQOSkKKyAgICAgICAgVlA5VGVzdGluZ092ZXJyaWRlczo6c2lu
Z2xldG9uKCkuc2V0Q29uZmlndXJhdGlvbkNoYW5nZWRDYWxsYmFjayhudWxscHRyKTsKKyNlbmRp
ZgorICAgIH0KKyNlbmRpZgogfQogCiBib29sIFdlYlByb2Nlc3M6OnNob3VsZFVzZVJlbW90ZVJl
bmRlcmluZ0ZvcihSZW5kZXJpbmdQdXJwb3NlIHB1cnBvc2UpCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOTNmMmE1OGM1MWJi
NDYwMWZmNDkyNjM0Y2U3NGM2YjM4NjI2YzY1YS4uMWQwZDVjMzNjNmMyMzEyMWJlZDk1ZjI1Mjk2
MWY3MDM3ZmZlOWZlOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIxLTAyLTI0ICBFcmljIENh
cmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtHUFVQXSBTb21lIG1l
ZGlhLWNhcGFiaWxpdGllcyB0ZXN0cyBmYWlsIHdoZW4gbWVkaWEgaW4gR1BVIFByb2Nlc3MgaXMg
ZW5hYmxlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjIxNjkxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NDQzOTQyMD4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGdwdS1wcm9jZXNzL1Rlc3RFeHBl
Y3RhdGlvbnM6IFVuLXNraXAgdGhlIHBhc3NpbmcgdGVzdHMuCisKIDIwMjEtMDItMjQgIFNhbSBX
ZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBtb2RlbCB0ZXN0IGRpZmZl
cmVuY2VzIGJldHdlZW4gcGxhdGZvcm1zCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9ncHUtcHJv
Y2Vzcy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvZ3B1LXByb2Nlc3MvVGVzdEV4cGVj
dGF0aW9ucwppbmRleCA0NzIxYmJhODdmY2U1OWY0NmNmNjM2MjdlMWE3OTllZjE2MmI1MjA1Li4w
Y2E0ZjQzNDhjZTA1ZTM5YzdmMjgzMjgwOTlhZWJhOTdhZGVmYzE3IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9ncHUtcHJvY2Vzcy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL2dw
dS1wcm9jZXNzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTEzNywxMSArMTM3LDYgQEAgaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYS1zb3VyY2UvU291cmNlQnVmZmVyLWFib3J0LXVw
ZGF0aW5nLmh0bWwgWwogbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1yZXNpemUuaHRt
bCBbIFRpbWVvdXQgXQogcGxhdGZvcm0vbWFjL21lZGlhL21lZGlhLXNvdXJjZS92aWRlb3BsYXli
YWNrcXVhbGl0eS1kZWNvbXByZXNzaW9uc2Vzc2lvbi5odG1sIFsgRmFpbHVyZSBdCiAKLSMgd2Vi
a2l0Lm9yZy9iLzIyMTY5MQotbWVkaWEvbWVkaWFjYXBhYmlsaXRpZXMvbWVkaWFjYXBhYmlsaXRp
ZXMtdHlwZXMuaHRtbCBbIEZhaWx1cmUgXQotcGxhdGZvcm0vbWFjL21lZGlhL21lZGlhY2FwYWJp
bGl0aWVzL21lZGlhY2FwYWJpbGl0aWVzLWVuY29kaW5nSW5mby11bmRlZmluZWQuaHRtbCBbIEZh
aWx1cmUgXQotcGxhdGZvcm0vbWFjL21lZGlhL21lZGlhY2FwYWJpbGl0aWVzL3ZwOS1kZWNvZGlu
Z0luZm8tc3cuaHRtbCBbIEZhaWx1cmUgXQotCiBzdmcvY2FudmFzL2NhbnZhcy1nbG9iYWwtYWxw
aGEtc3ZnLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIAogIyB3ZWJraXQub3JnL2IvMjIwODA1
Cg==
</data>
<flag name="commit-queue"
          id="440332"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421478</attachid>
            <date>2021-02-24 16:15:18 -0800</date>
            <delta_ts>2021-02-25 12:09:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221691-20210224161517.patch</filename>
            <type>text/plain</type>
            <size>41444</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczNDMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTgwZjE2YmUwZWU2OWJh
Y2FiMTUzNTY4ZTZiODU0MWVhNDliNDMyZi4uMzRmNWQ2NDRhMGMzZDQwY2Y4YzE5NmQzYjNlMmE3
NjliNTQwNzAwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDIxLTAyLTI0ICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtHUFVQXSBTb21l
IG1lZGlhLWNhcGFiaWxpdGllcyB0ZXN0cyBmYWlsIHdoZW4gbWVkaWEgaW4gR1BVIFByb2Nlc3Mg
aXMgZW5hYmxlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjIxNjkxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NDQzOTQyMD4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTeW5jIGJhdHRlcnkgc3RhdHVz
IGFuZCBWUDkgdGVzdGluZyBvdmVycmlkZXMgc2V0IGJ5IEludGVybmFscyB0byB0aGUgR1BVIHBy
b2Nlc3MgCisgICAgICAgIHdoZW4gdGhleSBjaGFuZ2UuCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
LCBmaXhlcyBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1N5c3Rl
bUJhdHRlcnkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9TeXN0ZW1CYXR0ZXJ5Lm1tOgor
ICAgICAgICAoV2ViQ29yZTo6c3lzdGVtSGFzQmF0dGVyeSk6CisgICAgICAgIChXZWJDb3JlOjpz
eXN0ZW1IYXNBQyk6CisgICAgICAgIChXZWJDb3JlOjpTeXN0ZW1CYXR0ZXJ5U3RhdHVzVGVzdGlu
Z092ZXJyaWRlczo6c2luZ2xldG9uKToKKyAgICAgICAgKFdlYkNvcmU6OlN5c3RlbUJhdHRlcnlT
dGF0dXNUZXN0aW5nT3ZlcnJpZGVzOjpzZXRIYXNCYXR0ZXJ5KToKKyAgICAgICAgKFdlYkNvcmU6
OlN5c3RlbUJhdHRlcnlTdGF0dXNUZXN0aW5nT3ZlcnJpZGVzOjpzZXRIYXNBQyk6CisgICAgICAg
IChXZWJDb3JlOjpTeXN0ZW1CYXR0ZXJ5U3RhdHVzVGVzdGluZ092ZXJyaWRlczo6c2V0Q29uZmln
dXJhdGlvbkNoYW5nZWRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpzZXRPdmVycmlkZVN5
c3RlbUhhc0JhdHRlcnlGb3JUZXN0aW5nKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnNl
dE92ZXJyaWRlU3lzdGVtSGFzQUNGb3JUZXN0aW5nKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9WUDlVdGlsaXRpZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmVlbkRh
dGFPdmVycmlkZXM6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JlZW5EYXRh
T3ZlcnJpZGVzOjpkZWNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I9PSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVlA5VXRpbGl0aWVzQ29jb2EuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WUDlVdGlsaXRpZXNDb2NvYS5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OlZQOVRlc3RpbmdPdmVycmlkZXM6OnNpbmdsZXRvbik6CisgICAgICAgIChX
ZWJDb3JlOjpWUDlUZXN0aW5nT3ZlcnJpZGVzOjpzZXRIYXJkd2FyZURlY29kZXJEaXNhYmxlZCk6
CisgICAgICAgIChXZWJDb3JlOjpWUDlUZXN0aW5nT3ZlcnJpZGVzOjpzZXRWUDlTY3JlZW5TaXpl
QW5kU2NhbGUpOgorICAgICAgICAoV2ViQ29yZTo6VlA5VGVzdGluZ092ZXJyaWRlczo6c2V0Q29u
ZmlndXJhdGlvbkNoYW5nZWRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjp2cDlIYXJkd2Fy
ZURlY29kZXJBdmFpbGFibGUpOgorICAgICAgICAoV2ViQ29yZTo6aXNWUDlDb2RlY0NvbmZpZ3Vy
YXRpb25SZWNvcmRTdXBwb3J0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGVWUFBhcmFt
ZXRlcnMpOgorICAgICAgICAoKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnNldE92ZXJy
aWRlVlA5SGFyZHdhcmVEZWNvZGVyRGlzYWJsZWRGb3JUZXN0aW5nKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OnNldE92ZXJyaWRlVlA5U2NyZWVuU2l6ZUFuZFNjYWxlRm9yVGVzdGluZyk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpyZXNldE92ZXJyaWRlVlA5U2NyZWVuU2l6ZUFu
ZFNjYWxlRm9yVGVzdGluZyk6IERlbGV0ZWQuCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpJbnRlcm5hbHMpOgorICAgICAgICAo
V2ViQ29yZTo6SW50ZXJuYWxzOjpzZXRTeXN0ZW1IYXNCYXR0ZXJ5Rm9yVGVzdGluZyk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnNldFN5c3RlbUhhc0FDRm9yVGVzdGluZyk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnNldEhhcmR3YXJlVlA5RGVjb2RlckRpc2FibGVkRm9y
VGVzdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnNldFZQOVNjcmVlblNpemVB
bmRTY2FsZUZvclRlc3RpbmcpOgorCiAyMDIxLTAyLTI0ICBNaWNoYWVsIENhdGFuemFybyAgPG1j
YXRhbnphcm9AZ25vbWUub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHNpbGVuY2UgLVdyZXR1
cm4tdHlwZSB3YXJuaW5ncyBmcm9tIHIyNzMxMjcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZDk2YjhjN2ZmNTA3MmY0
OThkMTNhMjRiNDg3NzYxMGViNTgyOTc2Yy4uNWIwMWFjMzRjZWNiN2Y0YjM2ZTFlMmUzYzQ1MzU3
MGE2NTA1MGVjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAyMS0wMi0yNCAgRXJpYyBD
YXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVUF0gU29tZSBt
ZWRpYS1jYXBhYmlsaXRpZXMgdGVzdHMgZmFpbCB3aGVuIG1lZGlhIGluIEdQVSBQcm9jZXNzIGlz
IGVuYWJsZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyMTY5MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzQ0Mzk0MjA+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL0dQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpzZXRNZWRpYU92ZXJyaWRlc0ZvclRlc3RpbmcpOgorICAgICAgICAqIEdQVVBy
b2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oOgorICAgICAgICAqIEdQVVByb2Nlc3Mv
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nl
c3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Y29tcHV0ZUZp
bHRlcmVkRGV2aWNlTGlzdCk6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3Bw
OgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNzQ29ubmVjdGlvbjo6dXBkYXRlTWVkaWFDb25m
aWd1cmF0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlv
bi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhRW5naW5lQ29u
ZmlndXJhdGlvbkZhY3RvcnkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYUVuZ2lu
ZUNvbmZpZ3VyYXRpb25GYWN0b3J5OjpyZWdpc3RlckZhY3RvcnkpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnNldFVz
ZUdQVVByb2Nlc3NGb3JNZWRpYSk6CisKIDIwMjEtMDItMjQgIFJ1c3NlbGwgRXBzdGVpbiAgPHJl
cHN0ZWluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZlcnQgcjI3MjczNS4gcmRhcjovL3Byb2Js
ZW0vNzQ2NzQ4MzcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9T
b3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDg1NDcxZWE1YmZlOGUyNjRhYmQ1NzY4
OTI3NjBjMTJkMzVlMDU4NzcuLjFiMDNmMGFhZjE0YmUyMzBkN2U5ZDg0MGRlNjcyNWRjNjI3MzNm
OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNl
L1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTI5MSw2ICsxMjkxLDcgQEAgc2V0KFdlYkNvcmVf
UFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1RleHRUcmFj
a1JlcHJlc2VudGF0aW9uLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9UaWxlZEJhY2tpbmcuaAog
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL1RyYWNrUHJpdmF0ZUJhc2UuaAorICAgIHBsYXRmb3JtL2dy
YXBoaWNzL1ZQOVV0aWxpdGllcy5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvVmVsb2NpdHlEYXRh
LmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9WaWRlb0xheWVyTWFuYWdlci5oCiAgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvVmlkZW9QbGF5YmFja1F1YWxpdHlNZXRyaWNzLmgKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1N5c3RlbUJhdHRlcnkuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2NvY29hL1N5c3RlbUJhdHRlcnkuaAppbmRleCA5MzU0NzdhNmY0YjUwZmE1
ODYwN2UxYzFiODVjZTM1NGYxOTA5ZTI1Li45NzM1MjQyNzEzYWYwYzA5ZDdiMzVlYTc2ZmM0ZGMz
ZDBkMDI0NDFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TeXN0
ZW1CYXR0ZXJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU3lzdGVtQmF0
dGVyeS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogKgogKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0yNSw2ICsyNSw5IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSA8d3RmL0Z1bmN0aW9u
Lmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
V0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTeXN0ZW1IYXNCYXR0ZXJ5KGJvb2wpOwpAQCAtMzUsNyAr
MzgsMjIgQEAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTeXN0ZW1IYXNBQyhib29sKTsKIFdFQkNP
UkVfRVhQT1JUIGJvb2wgc3lzdGVtSGFzQUMoKTsKIFdFQkNPUkVfRVhQT1JUIE9wdGlvbmFsPGJv
b2w+IGNhY2hlZFN5c3RlbUhhc0FDKCk7CiAKLVdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0T3ZlcnJp
ZGVTeXN0ZW1IYXNCYXR0ZXJ5Rm9yVGVzdGluZyhPcHRpb25hbDxib29sPiYmKTsKLVdFQkNPUkVf
RVhQT1JUIHZvaWQgc2V0T3ZlcnJpZGVTeXN0ZW1IYXNBQ0ZvclRlc3RpbmcoT3B0aW9uYWw8Ym9v
bD4mJik7CitjbGFzcyBXRUJDT1JFX0VYUE9SVCBTeXN0ZW1CYXR0ZXJ5U3RhdHVzVGVzdGluZ092
ZXJyaWRlcyB7CitwdWJsaWM6CisgICAgc3RhdGljIFN5c3RlbUJhdHRlcnlTdGF0dXNUZXN0aW5n
T3ZlcnJpZGVzJiBzaW5nbGV0b24oKTsKKworICAgIHZvaWQgc2V0SGFzQUMoT3B0aW9uYWw8Ym9v
bD4mJik7CisgICAgT3B0aW9uYWw8Ym9vbD4gaGFzQUMoKSB7IHJldHVybiBtX2hhc0FDOyB9CisK
KyAgICB2b2lkIHNldEhhc0JhdHRlcnkoT3B0aW9uYWw8Ym9vbD4mJik7CisgICAgT3B0aW9uYWw8
Ym9vbD4gaGFzQmF0dGVyeSgpIHsgcmV0dXJuICBtX2hhc0JhdHRlcnk7IH0KKworICAgIHZvaWQg
c2V0Q29uZmlndXJhdGlvbkNoYW5nZWRDYWxsYmFjayhzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4mJik7
CisKK3ByaXZhdGU6CisgICAgT3B0aW9uYWw8Ym9vbD4gbV9oYXNCYXR0ZXJ5OworICAgIE9wdGlv
bmFsPGJvb2w+IG1faGFzQUM7CisgICAgV1RGOjpGdW5jdGlvbjx2b2lkKCk+IG1fY29uZmlndXJh
dGlvbkNoYW5nZWRDYWxsYmFjazsKK307CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2NvY29hL1N5c3RlbUJhdHRlcnkubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jb2NvYS9TeXN0ZW1CYXR0ZXJ5Lm1tCmluZGV4IGU2NWRmNzViNDEwMTYxMGYyNmYwYTM0YzIw
YjBhZGQzNzQ1ZWYyNDIuLmNhNTVhOThkYzFlYThlMzk1NjdjNmQ3MGY3ZWQ4YTRlODMzMWEzOTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1N5c3RlbUJhdHRlcnku
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU3lzdGVtQmF0dGVyeS5tbQpA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0z
Myw4ICszMyw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIE9wdGlvbmFsPGJvb2w+
IGhhc0JhdHRlcnk7CiBzdGF0aWMgT3B0aW9uYWw8Ym9vbD4gaGFzQUM7Ci1zdGF0aWMgT3B0aW9u
YWw8Ym9vbD4gaGFzQmF0dGVyeU92ZXJyaWRlRm9yVGVzdGluZzsKLXN0YXRpYyBPcHRpb25hbDxi
b29sPiBoYXNBQ092ZXJyaWRlRm9yVGVzdGluZzsKIAogdm9pZCBzZXRTeXN0ZW1IYXNCYXR0ZXJ5
KGJvb2wgYmF0dGVyeSkKIHsKQEAgLTQzLDggKzQxLDggQEAgdm9pZCBzZXRTeXN0ZW1IYXNCYXR0
ZXJ5KGJvb2wgYmF0dGVyeSkKIAogYm9vbCBzeXN0ZW1IYXNCYXR0ZXJ5KCkKIHsKLSAgICBpZiAo
aGFzQmF0dGVyeU92ZXJyaWRlRm9yVGVzdGluZykKLSAgICAgICAgcmV0dXJuICpoYXNCYXR0ZXJ5
T3ZlcnJpZGVGb3JUZXN0aW5nOworICAgIGlmIChhdXRvIG92ZXJyaWRlRm9yVGVzdGluZyA9IFN5
c3RlbUJhdHRlcnlTdGF0dXNUZXN0aW5nT3ZlcnJpZGVzOjpzaW5nbGV0b24oKS5oYXNCYXR0ZXJ5
KCkpCisgICAgICAgIHJldHVybiAqb3ZlcnJpZGVGb3JUZXN0aW5nOwogCiAgICAgaWYgKCFoYXNC
YXR0ZXJ5Lmhhc1ZhbHVlKCkpIHsKICAgICAgICAgaGFzQmF0dGVyeSA9IFtdIHsKQEAgLTg2LDgg
Kzg0LDggQEAgdm9pZCBzZXRTeXN0ZW1IYXNBQyhib29sIGFjKQogCiBib29sIHN5c3RlbUhhc0FD
KCkKIHsKLSAgICBpZiAoaGFzQUNPdmVycmlkZUZvclRlc3RpbmcpCi0gICAgICAgIHJldHVybiAq
aGFzQUNPdmVycmlkZUZvclRlc3Rpbmc7CisgICAgaWYgKGF1dG8gb3ZlcnJpZGVGb3JUZXN0aW5n
ID0gU3lzdGVtQmF0dGVyeVN0YXR1c1Rlc3RpbmdPdmVycmlkZXM6OnNpbmdsZXRvbigpLmhhc0FD
KCkpCisgICAgICAgIHJldHVybiAqb3ZlcnJpZGVGb3JUZXN0aW5nOwogCiAgICAgaWYgKCFoYXNB
Qy5oYXNWYWx1ZSgpKSB7CiAgICAgICAgIGhhc0FDID0gW10gewpAQCAtMTIxLDE0ICsxMTksMjkg
QEAgT3B0aW9uYWw8Ym9vbD4gY2FjaGVkU3lzdGVtSGFzQUMoKQogICAgIHJldHVybiBoYXNBQzsK
IH0KIAotdm9pZCBzZXRPdmVycmlkZVN5c3RlbUhhc0JhdHRlcnlGb3JUZXN0aW5nKE9wdGlvbmFs
PGJvb2w+JiYgaGFzQmF0dGVyeSkKK1N5c3RlbUJhdHRlcnlTdGF0dXNUZXN0aW5nT3ZlcnJpZGVz
JiBTeXN0ZW1CYXR0ZXJ5U3RhdHVzVGVzdGluZ092ZXJyaWRlczo6c2luZ2xldG9uKCkKIHsKLSAg
ICBoYXNCYXR0ZXJ5T3ZlcnJpZGVGb3JUZXN0aW5nID0gV1RGTW92ZShoYXNCYXR0ZXJ5KTsKKyAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3lzdGVtQmF0dGVyeVN0YXR1c1Rlc3RpbmdPdmVycmlk
ZXM+IGNlbnRlcjsKKyAgICByZXR1cm4gY2VudGVyOwogfQogCi12b2lkIHNldE92ZXJyaWRlU3lz
dGVtSGFzQUNGb3JUZXN0aW5nKE9wdGlvbmFsPGJvb2w+JiYgaGFzQUMpCit2b2lkIFN5c3RlbUJh
dHRlcnlTdGF0dXNUZXN0aW5nT3ZlcnJpZGVzOjpzZXRIYXNCYXR0ZXJ5KE9wdGlvbmFsPGJvb2w+
JiYgaGFzQmF0dGVyeSkKIHsKLSAgICBoYXNBQ092ZXJyaWRlRm9yVGVzdGluZyA9IFdURk1vdmUo
aGFzQUMpOworICAgIG1faGFzQmF0dGVyeSA9IFdURk1vdmUoaGFzQmF0dGVyeSk7CisgICAgaWYg
KG1fY29uZmlndXJhdGlvbkNoYW5nZWRDYWxsYmFjaykKKyAgICAgICAgbV9jb25maWd1cmF0aW9u
Q2hhbmdlZENhbGxiYWNrKCk7Cit9CisKK3ZvaWQgU3lzdGVtQmF0dGVyeVN0YXR1c1Rlc3RpbmdP
dmVycmlkZXM6OnNldEhhc0FDKE9wdGlvbmFsPGJvb2w+JiYgaGFzQUMpCit7CisgICAgbV9oYXNB
QyA9IFdURk1vdmUoaGFzQUMpOworICAgIGlmIChtX2NvbmZpZ3VyYXRpb25DaGFuZ2VkQ2FsbGJh
Y2spCisgICAgICAgIG1fY29uZmlndXJhdGlvbkNoYW5nZWRDYWxsYmFjaygpOworfQorCit2b2lk
IFN5c3RlbUJhdHRlcnlTdGF0dXNUZXN0aW5nT3ZlcnJpZGVzOjpzZXRDb25maWd1cmF0aW9uQ2hh
bmdlZENhbGxiYWNrKHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiYmIGNhbGxiYWNrKQoreworICAgIG1f
Y29uZmlndXJhdGlvbkNoYW5nZWRDYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spOwogfQogCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9WUDlVdGlsaXRp
ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1ZQOVV0aWxpdGllcy5oCmlu
ZGV4IDg4NzY5ODM4ZDUwODE5ODJkMjJhMDdiMDU5ZDQwYmQzMTVjMmNiZTYuLmRhMzA5MDBhNGVj
NzIzODNlM2ViMDMzZDVjNDY2NWMwN2VjZDk1N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL1ZQOVV0aWxpdGllcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL1ZQOVV0aWxpdGllcy5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEyNyw0ICsxMjcsNDEgQEAgc3RydWN0IFZQ
Q29kZWNDb25maWd1cmF0aW9uUmVjb3JkIHsKIAogV0VCQ09SRV9FWFBPUlQgT3B0aW9uYWw8VlBD
b2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQ+IHBhcnNlVlBDb2RlY1BhcmFtZXRlcnMoU3RyaW5nVmll
dyBjb2RlY1N0cmluZyk7CiAKK3N0cnVjdCBTY3JlZW5EYXRhT3ZlcnJpZGVzIHsKKyAgICBkb3Vi
bGUgd2lkdGggeyAwIH07CisgICAgZG91YmxlIGhlaWdodCB7IDAgfTsKKyAgICBkb3VibGUgc2Nh
bGUgeyAxIH07CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgorICAgIHZvaWQgZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IHdpZHRo
OworICAgICAgICBlbmNvZGVyIDw8IGhlaWdodDsKKyAgICAgICAgZW5jb2RlciA8PCBzY2FsZTsK
KyAgICB9CisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgRGVjb2Rlcj4KKyAgICBzdGF0aWMgT3B0aW9u
YWw8U2NyZWVuRGF0YU92ZXJyaWRlcz4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgewor
I2RlZmluZSBERUNPREUobmFtZSwgdHlwZSkgXAorICAgIE9wdGlvbmFsPHR5cGU+IG5hbWU7IFwK
KyAgICBkZWNvZGVyID4+IG5hbWU7IFwKKyAgICBpZiAoIW5hbWUpIFwKKyAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsgXAorCisgICAgREVDT0RFKHdpZHRoLCBkb3VibGUpOworICAgIERFQ09E
RShoZWlnaHQsIGRvdWJsZSk7CisgICAgREVDT0RFKHNjYWxlLCBkb3VibGUpOworI3VuZGVmIERF
Q09ERQorCisgICAgcmV0dXJuIHt7IFdURk1vdmUoKndpZHRoKSwgV1RGTW92ZSgqaGVpZ2h0KSwg
V1RGTW92ZSgqc2NhbGUpIH19OworICAgIH0KK307CisKK2lubGluZSBib29sIG9wZXJhdG9yPT0o
Y29uc3QgU2NyZWVuRGF0YU92ZXJyaWRlcyYgYSwgY29uc3QgU2NyZWVuRGF0YU92ZXJyaWRlcyYg
YikKK3sKKyAgICByZXR1cm4gYS53aWR0aCA9PSBiLndpZHRoICYmIGEuaGVpZ2h0ID09IGIuaGVp
Z2h0ICYmIGEuc2NhbGUgPT0gYi5zY2FsZTsKK30KKworCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WUDlVdGlsaXRpZXNDb2NvYS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVlA5VXRpbGl0aWVzQ29jb2EuaApp
bmRleCAyZjAwMDZiNDFkMTcxY2E3MWZjODRlZTFiYTcxYWQ0Y2RkMTBlYzU2Li5mY2FmOTlhZWQz
MjYwZWI1Y2IwZDFjNTZjZWUwOWRlNmVmYjBkYzJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WUDlVdGlsaXRpZXNDb2NvYS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZQOVV0aWxpdGllc0NvY29hLmgKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMC0yMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDEs
MTAgKzQxLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogc3RydWN0IE1lZGlhQ2FwYWJpbGl0aWVz
SW5mbzsKIHN0cnVjdCBWaWRlb0NvbmZpZ3VyYXRpb247CiAKLVdFQkNPUkVfRVhQT1JUIGV4dGVy
biB2b2lkIHNldE92ZXJyaWRlVlA5SGFyZHdhcmVEZWNvZGVyRGlzYWJsZWRGb3JUZXN0aW5nKGJv
b2wpOwotV0VCQ09SRV9FWFBPUlQgZXh0ZXJuIHZvaWQgc2V0T3ZlcnJpZGVWUDlTY3JlZW5TaXpl
QW5kU2NhbGVGb3JUZXN0aW5nKGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQsIGZsb2F0IHNjYWxl
KTsKLVdFQkNPUkVfRVhQT1JUIGV4dGVybiB2b2lkIHJlc2V0T3ZlcnJpZGVWUDlTY3JlZW5TaXpl
QW5kU2NhbGVGb3JUZXN0aW5nKCk7Ci0KIFdFQkNPUkVfRVhQT1JUIGV4dGVybiB2b2lkIHJlZ2lz
dGVyV2ViS2l0VlA5RGVjb2RlcigpOwogV0VCQ09SRV9FWFBPUlQgZXh0ZXJuIHZvaWQgcmVnaXN0
ZXJXZWJLaXRWUDhEZWNvZGVyKCk7CiBXRUJDT1JFX0VYUE9SVCBleHRlcm4gdm9pZCByZWdpc3Rl
clN1cHBsZW1lbnRhbFZQOURlY29kZXIoKTsKQEAgLTcxLDYgKzY3LDI0IEBAIHN0cnVjdCBWUDhG
cmFtZUhlYWRlciB7CiBPcHRpb25hbDxWUDhGcmFtZUhlYWRlcj4gcGFyc2VWUDhGcmFtZUhlYWRl
cih1aW50OF90KiBmcmFtZURhdGEsIHNpemVfdCBmcmFtZVNpemUpOwogUmV0YWluUHRyPENNRm9y
bWF0RGVzY3JpcHRpb25SZWY+IGNyZWF0ZUZvcm1hdERlc2NyaXB0aW9uRnJvbVZQOEhlYWRlcihj
b25zdCBWUDhGcmFtZUhlYWRlciYsIGNvbnN0IHdlYm06OkVsZW1lbnQ8d2VibTo6Q29sb3VyPiYp
OwogCitjbGFzcyBXRUJDT1JFX0VYUE9SVCBWUDlUZXN0aW5nT3ZlcnJpZGVzIHsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgVlA5VGVzdGluZ092ZXJyaWRlcyYgc2luZ2xldG9uKCk7CisKKyAgICB2b2lk
IHNldEhhcmR3YXJlRGVjb2RlckRpc2FibGVkKE9wdGlvbmFsPGJvb2w+JiYpOworICAgIE9wdGlv
bmFsPGJvb2w+IGhhcmR3YXJlRGVjb2RlckRpc2FibGVkKCkgeyByZXR1cm4gbV9oYXJkd2FyZURl
Y29kZXJEaXNhYmxlZDsgfQorCisgICAgdm9pZCBzZXRWUDlTY3JlZW5TaXplQW5kU2NhbGUoT3B0
aW9uYWw8U2NyZWVuRGF0YU92ZXJyaWRlcz4mJik7CisgICAgT3B0aW9uYWw8U2NyZWVuRGF0YU92
ZXJyaWRlcz4gdnA5U2NyZWVuU2l6ZUFuZFNjYWxlKCkgIHsgcmV0dXJuIG1fc2NyZWVuU2l6ZUFu
ZFNjYWxlOyB9CisKKyAgICB2b2lkIHNldENvbmZpZ3VyYXRpb25DaGFuZ2VkQ2FsbGJhY2soc3Rk
OjpmdW5jdGlvbjx2b2lkKCk+JiYpOworCitwcml2YXRlOgorICAgIE9wdGlvbmFsPGJvb2w+IG1f
aGFyZHdhcmVEZWNvZGVyRGlzYWJsZWQ7CisgICAgT3B0aW9uYWw8U2NyZWVuRGF0YU92ZXJyaWRl
cz4gbV9zY3JlZW5TaXplQW5kU2NhbGU7CisgICAgV1RGOjpGdW5jdGlvbjx2b2lkKCk+IG1fY29u
ZmlndXJhdGlvbkNoYW5nZWRDYWxsYmFjazsKK307CisKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9WUDlVdGlsaXRpZXNDb2Nv
YS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZQOVV0aWxpdGll
c0NvY29hLm1tCmluZGV4IDMxOTczYjJjNjQxN2JiNTc4ZjgwYjI1MDI1NTNlMmNjNjE2YWU5Y2Eu
LjY5OTIzMDUyZjIyYzc1YjRkZWM2NDYzMzI4ZWNlNzcyOTViMzMzNGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZQOVV0aWxpdGllc0NvY29hLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZQOVV0aWxpdGll
c0NvY29hLm1tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTUwLDI4ICs1MCwyOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB1c2luZyBuYW1l
c3BhY2UgUEFMOwogdXNpbmcgbmFtZXNwYWNlIHdlYm07CiAKLXN0YXRpYyBib29sIGhhcmR3YXJl
VlA5RGVjb2RlckRpc2FibGVkRm9yVGVzdGluZyB7IGZhbHNlIH07Ci0KLXN0cnVjdCBPdmVycmlk
ZVNjcmVlbkRhdGEgewotICAgIGZsb2F0IHdpZHRoIHsgMCB9OwotICAgIGZsb2F0IGhlaWdodCB7
IDAgfTsKLSAgICBmbG9hdCBzY2FsZSB7IDEgfTsKLX07Ci1zdGF0aWMgT3B0aW9uYWw8T3ZlcnJp
ZGVTY3JlZW5EYXRhPiBzY3JlZW5TaXplQW5kU2NhbGVGb3JUZXN0aW5nOworVlA5VGVzdGluZ092
ZXJyaWRlcyYgVlA5VGVzdGluZ092ZXJyaWRlczo6c2luZ2xldG9uKCkKK3sKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8VlA5VGVzdGluZ092ZXJyaWRlcz4gY2VudGVyOworICAgIHJldHVybiBj
ZW50ZXI7Cit9CiAKLXZvaWQgc2V0T3ZlcnJpZGVWUDlIYXJkd2FyZURlY29kZXJEaXNhYmxlZEZv
clRlc3RpbmcoYm9vbCBkaXNhYmxlZCkKK3ZvaWQgVlA5VGVzdGluZ092ZXJyaWRlczo6c2V0SGFy
ZHdhcmVEZWNvZGVyRGlzYWJsZWQoT3B0aW9uYWw8Ym9vbD4mJiBkaXNhYmxlZCkKIHsKLSAgICBo
YXJkd2FyZVZQOURlY29kZXJEaXNhYmxlZEZvclRlc3RpbmcgPSBkaXNhYmxlZDsKKyAgICBtX2hh
cmR3YXJlRGVjb2RlckRpc2FibGVkID0gV1RGTW92ZShkaXNhYmxlZCk7CisgICAgaWYgKG1fY29u
ZmlndXJhdGlvbkNoYW5nZWRDYWxsYmFjaykKKyAgICAgICAgbV9jb25maWd1cmF0aW9uQ2hhbmdl
ZENhbGxiYWNrKCk7CiB9CiAKLXZvaWQgc2V0T3ZlcnJpZGVWUDlTY3JlZW5TaXplQW5kU2NhbGVG
b3JUZXN0aW5nKGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQsIGZsb2F0IHNjYWxlKQordm9pZCBW
UDlUZXN0aW5nT3ZlcnJpZGVzOjpzZXRWUDlTY3JlZW5TaXplQW5kU2NhbGUoT3B0aW9uYWw8U2Ny
ZWVuRGF0YU92ZXJyaWRlcz4mJiBvdmVycmlkZXMpCiB7Ci0gICAgc2NyZWVuU2l6ZUFuZFNjYWxl
Rm9yVGVzdGluZyA9IG1ha2VPcHRpb25hbDxPdmVycmlkZVNjcmVlbkRhdGE+KHsgd2lkdGgsIGhl
aWdodCwgc2NhbGUgfSk7CisgICAgbV9zY3JlZW5TaXplQW5kU2NhbGUgPSBXVEZNb3ZlKG92ZXJy
aWRlcyk7CisgICAgaWYgKG1fY29uZmlndXJhdGlvbkNoYW5nZWRDYWxsYmFjaykKKyAgICAgICAg
bV9jb25maWd1cmF0aW9uQ2hhbmdlZENhbGxiYWNrKCk7CiB9CiAKLXZvaWQgcmVzZXRPdmVycmlk
ZVZQOVNjcmVlblNpemVBbmRTY2FsZUZvclRlc3RpbmcoKQordm9pZCBWUDlUZXN0aW5nT3ZlcnJp
ZGVzOjpzZXRDb25maWd1cmF0aW9uQ2hhbmdlZENhbGxiYWNrKHN0ZDo6ZnVuY3Rpb248dm9pZCgp
PiYmIGNhbGxiYWNrKQogewotICAgIHNjcmVlblNpemVBbmRTY2FsZUZvclRlc3RpbmcgPSBXVEY6
Om51bGxvcHQ7CisgICAgbV9jb25maWd1cmF0aW9uQ2hhbmdlZENhbGxiYWNrID0gV1RGTW92ZShj
YWxsYmFjayk7CiB9CiAKIGVudW0gY2xhc3MgUmVzb2x1dGlvbkNhdGVnb3J5IDogdWludDhfdCB7
CkBAIC0xMzksNiArMTQwLDE0IEBAIGJvb2wgaXNWUDhEZWNvZGVyQXZhaWxhYmxlKCkKICAgICBy
ZXR1cm4gbm9FcnIgPT0gVlRTZWxlY3RBbmRDcmVhdGVWaWRlb0RlY29kZXJJbnN0YW5jZSgndnAw
OCcsIGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIG51bGxwdHIpOwogfQogCitzdGF0aWMg
Ym9vbCB2cDlIYXJkd2FyZURlY29kZXJBdmFpbGFibGUoKQoreworICAgIGlmIChhdXRvIGRpc2Fi
bGVkRm9yVGVzdGluZyA9IFZQOVRlc3RpbmdPdmVycmlkZXM6OnNpbmdsZXRvbigpLmhhcmR3YXJl
RGVjb2RlckRpc2FibGVkKCkpCisgICAgICAgIHJldHVybiAhKmRpc2FibGVkRm9yVGVzdGluZzsK
KworICAgIHJldHVybiBjYW5Mb2FkX1ZpZGVvVG9vbGJveF9WVElzSGFyZHdhcmVEZWNvZGVTdXBw
b3J0ZWQoKSAmJiBWVElzSGFyZHdhcmVEZWNvZGVTdXBwb3J0ZWQoa0NNVmlkZW9Db2RlY1R5cGVf
VlA5KTsKK30KKwogc3RhdGljIGJvb2wgaXNWUDlDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmRTdXBw
b3J0ZWQoVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQmIGNvZGVjQ29uZmlndXJhdGlvbikKIHsK
ICAgICBpZiAoIWlzVlA5RGVjb2RlckF2YWlsYWJsZSgpKQpAQCAtMTYxLDcgKzE3MCw3IEBAIHN0
YXRpYyBib29sIGlzVlA5Q29kZWNDb25maWd1cmF0aW9uUmVjb3JkU3VwcG9ydGVkKFZQQ29kZWND
b25maWd1cmF0aW9uUmVjb3JkJiBjCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIC8vIEhh
cmR3YXJlIGRlY29kZXJzIGFyZSBhbHdheXMgYXZhaWxhYmxlLgotICAgIGlmIChjYW5Mb2FkX1Zp
ZGVvVG9vbGJveF9WVElzSGFyZHdhcmVEZWNvZGVTdXBwb3J0ZWQoKSAmJiBWVElzSGFyZHdhcmVE
ZWNvZGVTdXBwb3J0ZWQoa0NNVmlkZW9Db2RlY1R5cGVfVlA5KSAmJiAhaGFyZHdhcmVWUDlEZWNv
ZGVyRGlzYWJsZWRGb3JUZXN0aW5nKQorICAgIGlmICh2cDlIYXJkd2FyZURlY29kZXJBdmFpbGFi
bGUoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICAvLyBGb3Igd2FsbC1wb3dlcmVkIGRl
dmljZXMsIGFsd2F5cyByZXBvcnQgVlA5IGFzIHN1cHBvcnRlZCwgZXZlbiBpZiBub3QgcG93ZXJF
ZmZpY2llbnQuCkBAIC0xNzUsOSArMTg0LDggQEAgc3RhdGljIGJvb2wgaXNWUDlDb2RlY0NvbmZp
Z3VyYXRpb25SZWNvcmRTdXBwb3J0ZWQoVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQmIGMKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBib29sIGhhczRrU2NyZWVuID0gZmFsc2U7Ci0KLSAg
ICBpZiAoc2NyZWVuU2l6ZUFuZFNjYWxlRm9yVGVzdGluZykgewotICAgICAgICBhdXRvIHNjcmVl
blNpemUgPSBGbG9hdFNpemUoc2NyZWVuU2l6ZUFuZFNjYWxlRm9yVGVzdGluZy0+d2lkdGgsIHNj
cmVlblNpemVBbmRTY2FsZUZvclRlc3RpbmctPmhlaWdodCkuc2NhbGVkKHNjcmVlblNpemVBbmRT
Y2FsZUZvclRlc3RpbmctPnNjYWxlKTsKKyAgICBpZiAoYXV0byBvdmVycmlkZUZvclRlc3Rpbmcg
PSBWUDlUZXN0aW5nT3ZlcnJpZGVzOjpzaW5nbGV0b24oKS52cDlTY3JlZW5TaXplQW5kU2NhbGUo
KSkgeworICAgICAgICBhdXRvIHNjcmVlblNpemUgPSBGbG9hdFNpemUob3ZlcnJpZGVGb3JUZXN0
aW5nLT53aWR0aCwgb3ZlcnJpZGVGb3JUZXN0aW5nLT5oZWlnaHQpLnNjYWxlZChvdmVycmlkZUZv
clRlc3RpbmctPnNjYWxlKTsKICAgICAgICAgaGFzNGtTY3JlZW4gPSByZXNvbHV0aW9uQ2F0ZWdv
cnkoc2NyZWVuU2l6ZSkgPj0gUmVzb2x1dGlvbkNhdGVnb3J5OjpSXzRLOwogICAgIH0gZWxzZSB7
CiAgICAgICAgIGZvciAoYXV0byYgc2NyZWVuRGF0YSA6IGdldFNjcmVlblByb3BlcnRpZXMoKS5z
Y3JlZW5EYXRhTWFwLnZhbHVlcygpKSB7CkBAIC0yNDMsNyArMjUxLDcgQEAgYm9vbCB2YWxpZGF0
ZVZQUGFyYW1ldGVycyhWUENvZGVjQ29uZmlndXJhdGlvblJlY29yZCYgY29kZWNDb25maWd1cmF0
aW9uLCBNZWRpYUMKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICBpZiAo
Y2FuTG9hZF9WaWRlb1Rvb2xib3hfVlRJc0hhcmR3YXJlRGVjb2RlU3VwcG9ydGVkKCkgJiYgVlRJ
c0hhcmR3YXJlRGVjb2RlU3VwcG9ydGVkKGtDTVZpZGVvQ29kZWNUeXBlX1ZQOSkgJiYgIWhhcmR3
YXJlVlA5RGVjb2RlckRpc2FibGVkRm9yVGVzdGluZykgeworICAgIGlmICh2cDlIYXJkd2FyZURl
Y29kZXJBdmFpbGFibGUoKSkgewogICAgICAgICAvLyBIVyBWUDkgRGVjb2RlciBkb2VzIG5vdCBz
dXBwb3J0IGFscGhhIGNoYW5uZWw6CiAgICAgICAgIGlmICh2aWRlb0NvbmZpZ3VyYXRpb24uYWxw
aGFDaGFubmVsICYmICp2aWRlb0NvbmZpZ3VyYXRpb24uYWxwaGFDaGFubmVsKQogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwpAQCAtMjkyLDggKzMwMCw4IEBAIGJvb2wgdmFsaWRhdGVWUFBhcmFt
ZXRlcnMoVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQmIGNvZGVjQ29uZmlndXJhdGlvbiwgTWVk
aWFDCiAKICAgICBib29sIGhhczRrU2NyZWVuID0gZmFsc2U7CiAKLSAgICBpZiAoc2NyZWVuU2l6
ZUFuZFNjYWxlRm9yVGVzdGluZykgewotICAgICAgICBhdXRvIHNjcmVlblNpemUgPSBGbG9hdFNp
emUoc2NyZWVuU2l6ZUFuZFNjYWxlRm9yVGVzdGluZy0+d2lkdGgsIHNjcmVlblNpemVBbmRTY2Fs
ZUZvclRlc3RpbmctPmhlaWdodCkuc2NhbGVkKHNjcmVlblNpemVBbmRTY2FsZUZvclRlc3Rpbmct
PnNjYWxlKTsKKyAgICBpZiAoYXV0byBvdmVycmlkZUZvclRlc3RpbmcgPSBWUDlUZXN0aW5nT3Zl
cnJpZGVzOjpzaW5nbGV0b24oKS52cDlTY3JlZW5TaXplQW5kU2NhbGUoKSkgeworICAgICAgICBh
dXRvIHNjcmVlblNpemUgPSBGbG9hdFNpemUob3ZlcnJpZGVGb3JUZXN0aW5nLT53aWR0aCwgb3Zl
cnJpZGVGb3JUZXN0aW5nLT5oZWlnaHQpLnNjYWxlZChvdmVycmlkZUZvclRlc3RpbmctPnNjYWxl
KTsKICAgICAgICAgaGFzNGtTY3JlZW4gPSByZXNvbHV0aW9uQ2F0ZWdvcnkoc2NyZWVuU2l6ZSkg
Pj0gUmVzb2x1dGlvbkNhdGVnb3J5OjpSXzRLOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGZvciAo
YXV0byYgc2NyZWVuRGF0YSA6IGdldFNjcmVlblByb3BlcnRpZXMoKS5zY3JlZW5EYXRhTWFwLnZh
bHVlcygpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggNjFlYTlhMTVi
YTljZDE5MzNkODNlNTUyN2Q5OTdlNzQ2NjVmMmUxMC4uNjY5NTQ4NjBlNDEyY2ViNDlkNDkwMzdi
NDMwNzNlYjlmYjIwNTYwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAt
NjI3LDEzICs2MjcsMTMgQEAgSW50ZXJuYWxzOjpJbnRlcm5hbHMoRG9jdW1lbnQmIGRvY3VtZW50
KQogI2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBzZXRPdmVycmlkZVN5c3RlbUhh
c0JhdHRlcnlGb3JUZXN0aW5nKFdURjo6bnVsbG9wdCk7Ci0gICAgc2V0T3ZlcnJpZGVTeXN0ZW1I
YXNBQ0ZvclRlc3RpbmcoV1RGOjpudWxsb3B0KTsKKyAgICBTeXN0ZW1CYXR0ZXJ5U3RhdHVzVGVz
dGluZ092ZXJyaWRlczo6c2luZ2xldG9uKCkuc2V0SGFzQUMoV1RGOjpudWxsb3B0KTsKKyAgICBT
eXN0ZW1CYXR0ZXJ5U3RhdHVzVGVzdGluZ092ZXJyaWRlczo6c2luZ2xldG9uKCkuc2V0SGFzQmF0
dGVyeShXVEY6Om51bGxvcHQpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoVlA5KSAmJiBQTEFURk9S
TShDT0NPQSkKLSAgICBzZXRPdmVycmlkZVZQOUhhcmR3YXJlRGVjb2RlckRpc2FibGVkRm9yVGVz
dGluZyhmYWxzZSk7Ci0gICAgcmVzZXRPdmVycmlkZVZQOVNjcmVlblNpemVBbmRTY2FsZUZvclRl
c3RpbmcoKTsKKyAgICBWUDlUZXN0aW5nT3ZlcnJpZGVzOjpzaW5nbGV0b24oKS5zZXRIYXJkd2Fy
ZURlY29kZXJEaXNhYmxlZChXVEY6Om51bGxvcHQpOworICAgIFZQOVRlc3RpbmdPdmVycmlkZXM6
OnNpbmdsZXRvbigpLnNldFZQOVNjcmVlblNpemVBbmRTY2FsZShXVEY6Om51bGxvcHQpOwogI2Vu
ZGlmCiB9CiAKQEAgLTU4NDIsNyArNTg0Miw3IEBAIGJvb2wgSW50ZXJuYWxzOjpzeXN0ZW1IYXNC
YXR0ZXJ5KCkgY29uc3QKIHZvaWQgSW50ZXJuYWxzOjpzZXRTeXN0ZW1IYXNCYXR0ZXJ5Rm9yVGVz
dGluZyhib29sIGhhc0JhdHRlcnkpCiB7CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgV2ViQ29y
ZTo6c2V0T3ZlcnJpZGVTeXN0ZW1IYXNCYXR0ZXJ5Rm9yVGVzdGluZyhoYXNCYXR0ZXJ5KTsKKyAg
ICBTeXN0ZW1CYXR0ZXJ5U3RhdHVzVGVzdGluZ092ZXJyaWRlczo6c2luZ2xldG9uKCkuc2V0SGFz
QmF0dGVyeShoYXNCYXR0ZXJ5KTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGhhc0JhdHRlcnkp
OwogI2VuZGlmCkBAIC01ODUxLDcgKzU4NTEsNyBAQCB2b2lkIEludGVybmFsczo6c2V0U3lzdGVt
SGFzQmF0dGVyeUZvclRlc3RpbmcoYm9vbCBoYXNCYXR0ZXJ5KQogdm9pZCBJbnRlcm5hbHM6OnNl
dFN5c3RlbUhhc0FDRm9yVGVzdGluZyhib29sIGhhc0FDKQogewogI2lmIFBMQVRGT1JNKENPQ09B
KQotICAgIFdlYkNvcmU6OnNldE92ZXJyaWRlU3lzdGVtSGFzQUNGb3JUZXN0aW5nKGhhc0FDKTsK
KyAgICBTeXN0ZW1CYXR0ZXJ5U3RhdHVzVGVzdGluZ092ZXJyaWRlczo6c2luZ2xldG9uKCkuc2V0
SGFzQUMoaGFzQUMpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oaGFzQUMpOwogI2VuZGlmCkBA
IC01ODYwLDcgKzU4NjAsNyBAQCB2b2lkIEludGVybmFsczo6c2V0U3lzdGVtSGFzQUNGb3JUZXN0
aW5nKGJvb2wgaGFzQUMpCiB2b2lkIEludGVybmFsczo6c2V0SGFyZHdhcmVWUDlEZWNvZGVyRGlz
YWJsZWRGb3JUZXN0aW5nKGJvb2wgZGlzYWJsZWQpCiB7CiAjaWYgRU5BQkxFKFZQOSkgJiYgUExB
VEZPUk0oQ09DT0EpCi0gICAgV2ViQ29yZTo6c2V0T3ZlcnJpZGVWUDlIYXJkd2FyZURlY29kZXJE
aXNhYmxlZEZvclRlc3RpbmcoZGlzYWJsZWQpOworICAgIFZQOVRlc3RpbmdPdmVycmlkZXM6OnNp
bmdsZXRvbigpLnNldEhhcmR3YXJlRGVjb2RlckRpc2FibGVkKGRpc2FibGVkKTsKICNlbHNlCiAg
ICAgVU5VU0VEX1BBUkFNKGRpc2FibGVkKTsKICNlbmRpZgpAQCAtNTg2OSw3ICs1ODY5LDcgQEAg
dm9pZCBJbnRlcm5hbHM6OnNldEhhcmR3YXJlVlA5RGVjb2RlckRpc2FibGVkRm9yVGVzdGluZyhi
b29sIGRpc2FibGVkKQogdm9pZCBJbnRlcm5hbHM6OnNldFZQOVNjcmVlblNpemVBbmRTY2FsZUZv
clRlc3RpbmcoZG91YmxlIHdpZHRoLCBkb3VibGUgaGVpZ2h0LCBkb3VibGUgc2NhbGUpCiB7CiAj
aWYgRU5BQkxFKFZQOSkgJiYgUExBVEZPUk0oQ09DT0EpCi0gICAgV2ViQ29yZTo6c2V0T3ZlcnJp
ZGVWUDlTY3JlZW5TaXplQW5kU2NhbGVGb3JUZXN0aW5nKHdpZHRoLCBoZWlnaHQsIHNjYWxlKTsK
KyAgICBWUDlUZXN0aW5nT3ZlcnJpZGVzOjpzaW5nbGV0b24oKS5zZXRWUDlTY3JlZW5TaXplQW5k
U2NhbGUobWFrZU9wdGlvbmFsPFNjcmVlbkRhdGFPdmVycmlkZXM+KHsgd2lkdGgsIGhlaWdodCwg
c2NhbGUgfSkpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0od2lkdGgpOwogICAgIFVOVVNFRF9Q
QVJBTShoZWlnaHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IGY0MmNhMjg4NGNlMmJhNzEzOThjMmM3MDNj
OTM2OTc4YmY5YWI3NjAuLjg4MTE2OGU1YmQ4YzczZGI4ZDkyZWI4YmUyMzUxZTAxMzdhMGZhMDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxOS0y
MDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIkxpYldlYlJUQ0NvZGVjc1By
b3h5LmgiCiAjaW5jbHVkZSAiTGliV2ViUlRDQ29kZWNzUHJveHlNZXNzYWdlcy5oIgogI2luY2x1
ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJNZWRpYU92ZXJyaWRlc0ZvclRlc3RpbmcuaCIKICNp
bmNsdWRlICJSZW1vdGVBdWRpb0hhcmR3YXJlTGlzdGVuZXJQcm94eS5oIgogI2luY2x1ZGUgIlJl
bW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlci5oIgogI2luY2x1ZGUgIlJl
bW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmgiCkBAIC0xMTksNiArMTIwLDE0IEBACiAjaW5j
bHVkZSAiUmVtb3RlTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeVByb3h5TWVzc2FnZXMu
aCIKICNlbmRpZgogCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSA8V2ViQ29yZS9TeXN0
ZW1CYXR0ZXJ5Lmg+CisjZW5kaWYKKworI2lmIEVOQUJMRShWUDkpICYmIFBMQVRGT1JNKENPQ09B
KQorI2luY2x1ZGUgPFdlYkNvcmUvVlA5VXRpbGl0aWVzQ29jb2EuaD4KKyNlbmRpZgorCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC00MzMsNiArNDQy
LDE5IEBAIHZvaWQgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVsZWFzZVJlbW90ZUNvbW1h
bmRMaXN0ZW5lcihSZW1vdGVSZW1vdGVDb21tYW5kCiAgICAgQVNTRVJUX1VOVVNFRChmb3VuZCwg
Zm91bmQpOwogfQogCit2b2lkIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnNldE1lZGlhT3Zl
cnJpZGVzRm9yVGVzdGluZyhNZWRpYU92ZXJyaWRlc0ZvclRlc3Rpbmcgb3ZlcnJpZGVzKQorewor
I2lmIEVOQUJMRShWUDkpICYmIFBMQVRGT1JNKENPQ09BKQorICAgIFZQOVRlc3RpbmdPdmVycmlk
ZXM6OnNpbmdsZXRvbigpLnNldEhhcmR3YXJlRGVjb2RlckRpc2FibGVkKFdURk1vdmUob3ZlcnJp
ZGVzLnZwOUhhcmR3YXJlRGVjb2RlckRpc2FibGVkKSk7CisgICAgVlA5VGVzdGluZ092ZXJyaWRl
czo6c2luZ2xldG9uKCkuc2V0VlA5U2NyZWVuU2l6ZUFuZFNjYWxlKFdURk1vdmUob3ZlcnJpZGVz
LnZwOVNjcmVlblNpemVBbmRTY2FsZSkpOworI2VuZGlmCisKKyNpZiBQTEFURk9STShDT0NPQSkK
KyAgICBTeXN0ZW1CYXR0ZXJ5U3RhdHVzVGVzdGluZ092ZXJyaWRlczo6c2luZ2xldG9uKCkuc2V0
SGFzQUMoV1RGTW92ZShvdmVycmlkZXMuc3lzdGVtSGFzQUMpKTsKKyAgICBTeXN0ZW1CYXR0ZXJ5
U3RhdHVzVGVzdGluZ092ZXJyaWRlczo6c2luZ2xldG9uKCkuc2V0SGFzQmF0dGVyeShXVEZNb3Zl
KG92ZXJyaWRlcy5zeXN0ZW1IYXNCYXR0ZXJ5KSk7CisjZW5kaWYKK30KKwogYm9vbCBHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpkaXNwYXRjaE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25u
ZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCiB7CiAjaWYgRU5BQkxFKFdFQl9BVURJTykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5oCmluZGV4IGY4ODY5YjBjMmQxYzMyYzA4ZWRkODBkNDgzNDc3ZjJmZDkxMTg4NTcuLjE4
YTNjMWRmODk0OWRkZjk0OGVjMTdkNWRlMmYxMDNkMDIzZmY2NTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE5LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC03Miw2ICs3
Miw3IEBAIGNsYXNzIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOwogY2xhc3MgUmVtb3RlU2FtcGxl
QnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjsKIGNsYXNzIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHk7CiBzdHJ1Y3QgR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzOworc3RydWN0IE1l
ZGlhT3ZlcnJpZGVzRm9yVGVzdGluZzsKIHN0cnVjdCBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1
cmF0aW9uOwogCiBjbGFzcyBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzCkBAIC0xNzEsNiArMTcy
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlbGVhc2VBdWRpb0hhcmR3YXJlTGlzdGVuZXIoUmVt
b3RlQXVkaW9IYXJkd2FyZUxpc3RlbmVySWRlbnRpZmllcik7CiAgICAgdm9pZCBjcmVhdGVSZW1v
dGVDb21tYW5kTGlzdGVuZXIoUmVtb3RlUmVtb3RlQ29tbWFuZExpc3RlbmVySWRlbnRpZmllcik7
CiAgICAgdm9pZCByZWxlYXNlUmVtb3RlQ29tbWFuZExpc3RlbmVyKFJlbW90ZVJlbW90ZUNvbW1h
bmRMaXN0ZW5lcklkZW50aWZpZXIpOworICAgIHZvaWQgc2V0TWVkaWFPdmVycmlkZXNGb3JUZXN0
aW5nKE1lZGlhT3ZlcnJpZGVzRm9yVGVzdGluZyk7CiAKICAgICAvLyBJUEM6OkNvbm5lY3Rpb246
OkNsaWVudAogICAgIHZvaWQgZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikgZmluYWw7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IGEzNDEyOWZkMWQzMDU3YzM4YzZjNGJjM2UyYTY4
M2Y5ZDU2MDFjYzYuLmRjYzA0ZmU2MzZmN2ZhYWIzZmNhYzhhNTc5OTIyNjhkNTRjZWY3NDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0xLDQgKzEsNCBAQAotIyBDb3B5cmlnaHQg
KEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMp
IDIwMTktMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTQwLDYgKzQwLDcgQEAgbWVzc2FnZXMgLT4gR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2VzcyBXYW50c0Rpc3BhdGNoTWVzc2FnZSB7CiAjaWYgRU5BQkxFKFZQOSkKICAg
ICBFbmFibGVWUDlEZWNvZGVycyhib29sIHNob3VsZEVuYWJsZVZQOERlY29kZXIsIGJvb2wgc2hv
dWxkRW5hYmxlVlA5RGVjb2RlciwgYm9vbCBzaG91bGRFbmFibGVWUDlTV0RlY29kZXIpCiAjZW5k
aWYKKyAgICBTZXRNZWRpYU92ZXJyaWRlc0ZvclRlc3Rpbmcoc3RydWN0IFdlYktpdDo6TWVkaWFP
dmVycmlkZXNGb3JUZXN0aW5nIGNvbmZpZ3VyYXRpb24pCiAgICAgQ3JlYXRlQXVkaW9IYXJkd2Fy
ZUxpc3RlbmVyKFdlYktpdDo6UmVtb3RlQXVkaW9IYXJkd2FyZUxpc3RlbmVySWRlbnRpZmllciBp
ZGVudGlmaWVyKQogICAgIFJlbGVhc2VBdWRpb0hhcmR3YXJlTGlzdGVuZXIoV2ViS2l0OjpSZW1v
dGVBdWRpb0hhcmR3YXJlTGlzdGVuZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCiAgICAgQ3JlYXRl
UmVtb3RlQ29tbWFuZExpc3RlbmVyKFdlYktpdDo6UmVtb3RlUmVtb3RlQ29tbWFuZExpc3RlbmVy
SWRlbnRpZmllciBpZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3Bw
CmluZGV4IGI2NDA4MTQyN2M4YWU1M2RjNDFiNWRjY2FlNzc5NzYxNTRjYjIwMWEuLmQxMDFiMzg2
MDBlYjdhZDhlMzYyZTVhOGUyZDVmMzVkMjYyNmJjYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eS5jcHAKQEAgLTc0MCw3ICs3NDAsNyBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5Ojpjb21wdXRlRmlsdGVyZWREZXZpY2VMaXN0KGJvb2wgcmV2
ZQogICAgICAgICAgICAgZmlsdGVyZWREZXZpY2VzLmFwcGVuZChyZXZlYWxJZHNBbmRMYWJlbHMg
PyBkZXZpY2UgOiBDYXB0dXJlRGV2aWNlKHsgfSwgZGV2aWNlLnR5cGUoKSwgeyB9LCB7IH0pKTsK
ICAgICAgICAgfQogCi0gICAgICAgIG1faGFzRmlsdGVyZWREZXZpY2VMaXN0ID0gIXJldmVhbElk
c0FuZExhYmVsczsKKyAgICAgICAgd2Vha1RoaXMtPm1faGFzRmlsdGVyZWREZXZpY2VMaXN0ID0g
IXJldmVhbElkc0FuZExhYmVsczsKICAgICAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCBm
aWx0ZXJlZERldmljZXMuc2l6ZSgpLCAiIGRldmljZXMgcmV2ZWFsZWQiKTsKIAogICAgICAgICBj
b21wbGV0aW9uKFdURk1vdmUoZmlsdGVyZWREZXZpY2VzKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAzMTlmMmU0Yzc3OGNkNGQ1ZjQz
ZjA1NjE3ZjUzMTMzOWM2YWJiOTBlLi40YjAxMWQ3MTliMTNkOWJhOWRlZjQ5YTQ4ZDNjOGRkNjQ5
MjdlYzRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTIzNzYsNiArMjM3Niw3IEBACiAJCTA3Mjk3RjlEMUMxN0JCRUEyMjNGMDczNSAv
KiBEZXZpY2VJZEhhc2hTYWx0U3RvcmFnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBEZXZpY2VJZEhhc2hTYWx0U3RvcmFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwNzI5N0ZBMDFDMTg2QURCMDAzRjA3MzUgLyogV0tVc2VyTWVkaWFQZXJtaXNzaW9uQ2hl
Y2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tVc2VyTWVkaWFQ
ZXJtaXNzaW9uQ2hlY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzI5N0ZB
MTFDMTg2QURCMDAzRjA3MzUgLyogV0tVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2suaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2suaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDc0NDcyMDUyNUU1QkQwMjAwNTRCMjMxIC8q
IE1lZGlhT3ZlcnJpZGVzRm9yVGVzdGluZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYU92ZXJyaWRl
c0ZvclRlc3RpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDc0ODc5QjcyMzcz
QTkwOTAwRjU2NzhFIC8qIEFwcEtpdFNvZnRMaW5rLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEFwcEtpdFNv
ZnRMaW5rLmg7IHBhdGggPSBpb3MvQXBwS2l0U29mdExpbmsuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMDc0ODc5QjgyMzczQTkwOTAwRjU2NzhFIC8qIEFwcEtpdFNvZnRMaW5rLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBuYW1lID0gQXBwS2l0U29mdExpbmsubW07IHBhdGggPSBpb3MvQXBw
S2l0U29mdExpbmsubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NEU3NUZCMURG
MUZEMTMwMEQzMThFQyAvKiBVc2VyTWVkaWFQcm9jZXNzTWFuYWdlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBVc2VyTWVkaWFQcm9jZXNzTWFuYWdlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtNjAyMSw2ICs2MDIyLDcgQEAKIAkJCQlDREE5NTkzOTI0MTJC
MTc1MDA5MTBFRUYgLyogaW9zICovLAogCQkJCTA3MUJDNTc5MjNDOTNCQjkwMDY4MEQ3QyAvKiBB
dWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5jcHAgKi8sCiAJCQkJMDcxQkM1NzcyM0M5M0JCNzAwNjgw
RDdDIC8qIEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmggKi8sCisJCQkJMDc0NDcyMDUyNUU1QkQw
MjAwNTRCMjMxIC8qIE1lZGlhT3ZlcnJpZGVzRm9yVGVzdGluZy5oICovLAogCQkJCTA3OTIzMTMx
MjM5QjNCMEMwMDk1OThFMiAvKiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwICovLAogCQkJ
CTA3OTIzMTMyMjM5QjNCMEMwMDk1OThFMiAvKiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaCAq
LywKIAkJCQkwN0IxRDA0QjIzRDM4RkNFMDAzOTlBNkUgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlLm1lc3NhZ2VzLmluICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcAppbmRleCA2ZGUxZGRjMGFjMWIzMDMxMmU0NTc3
ZjZmM2U1OWY5MGMyZGQyNWUxLi40Nzg1ZTdmZjQ1N2RiMjlhYTYzNzUzYzNhYTRmNjU1ZWIyYzRi
OThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3ND
b25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nl
c3NDb25uZWN0aW9uLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE5
LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiTGliV2ViUlRDQ29kZWNz
LmgiCiAjaW5jbHVkZSAiTGliV2ViUlRDQ29kZWNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJMb2dn
aW5nLmgiCisjaW5jbHVkZSAiTWVkaWFPdmVycmlkZXNGb3JUZXN0aW5nLmgiCiAjaW5jbHVkZSAi
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZXMuaCIKICNpbmNsdWRlICJNZWRpYVNvdXJj
ZVByaXZhdGVSZW1vdGVNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZUF1ZGlvSGFyZHdhcmVM
aXN0ZW5lck1lc3NhZ2VzLmgiCkBAIC03Niw2ICs3NywxNCBAQAogI2luY2x1ZGUgIlJlbW90ZUdy
YXBoaWNzQ29udGV4dEdMUHJveHlNZXNzYWdlcy5oIgogI2VuZGlmCiAKKyNpZiBQTEFURk9STShD
T0NPQSkKKyNpbmNsdWRlIDxXZWJDb3JlL1N5c3RlbUJhdHRlcnkuaD4KKyNlbmRpZgorCisjaWYg
RU5BQkxFKFZQOSkgJiYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSA8V2ViQ29yZS9WUDlVdGls
aXRpZXNDb2NvYS5oPgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAKQEAgLTI0Miw2ICsyNTEsMzYgQEAgdm9pZCBHUFVQcm9jZXNzQ29ubmVj
dGlvbjo6dXBkYXRlUGFyYW1ldGVycyhjb25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiBw
YXIKICNlbmRpZgogfQogCit2b2lkIEdQVVByb2Nlc3NDb25uZWN0aW9uOjp1cGRhdGVNZWRpYUNv
bmZpZ3VyYXRpb24oKQoreworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIGJvb2wgc2V0dGluZ3ND
aGFuZ2VkID0gZmFsc2U7CisKKyAgICBpZiAobV9tZWRpYU92ZXJyaWRlc0ZvclRlc3Rpbmcuc3lz
dGVtSGFzQUMgIT0gU3lzdGVtQmF0dGVyeVN0YXR1c1Rlc3RpbmdPdmVycmlkZXM6OnNpbmdsZXRv
bigpLmhhc0FDKCkgfHwgbV9tZWRpYU92ZXJyaWRlc0ZvclRlc3Rpbmcuc3lzdGVtSGFzQmF0dGVy
eSAhPSBTeXN0ZW1CYXR0ZXJ5U3RhdHVzVGVzdGluZ092ZXJyaWRlczo6c2luZ2xldG9uKCkuaGFz
QmF0dGVyeSgpKQorICAgICAgICBzZXR0aW5nc0NoYW5nZWQgPSB0cnVlOworCisjaWYgRU5BQkxF
KFZQOSkKKyAgICBpZiAobV9tZWRpYU92ZXJyaWRlc0ZvclRlc3RpbmcudnA5SGFyZHdhcmVEZWNv
ZGVyRGlzYWJsZWQgIT0gVlA5VGVzdGluZ092ZXJyaWRlczo6c2luZ2xldG9uKCkuaGFyZHdhcmVE
ZWNvZGVyRGlzYWJsZWQoKSB8fCBtX21lZGlhT3ZlcnJpZGVzRm9yVGVzdGluZy52cDlTY3JlZW5T
aXplQW5kU2NhbGUgIT0gVlA5VGVzdGluZ092ZXJyaWRlczo6c2luZ2xldG9uKCkudnA5U2NyZWVu
U2l6ZUFuZFNjYWxlKCkpCisgICAgICAgIHNldHRpbmdzQ2hhbmdlZCA9IHRydWU7CisjZW5kaWYK
KworICAgIGlmICghc2V0dGluZ3NDaGFuZ2VkKQorICAgICAgICByZXR1cm47CisKKyAgICBtX21l
ZGlhT3ZlcnJpZGVzRm9yVGVzdGluZyA9IHsKKyAgICAgICAgLnN5c3RlbUhhc0FDID0gU3lzdGVt
QmF0dGVyeVN0YXR1c1Rlc3RpbmdPdmVycmlkZXM6OnNpbmdsZXRvbigpLmhhc0FDKCksCisgICAg
ICAgIC5zeXN0ZW1IYXNCYXR0ZXJ5ID0gU3lzdGVtQmF0dGVyeVN0YXR1c1Rlc3RpbmdPdmVycmlk
ZXM6OnNpbmdsZXRvbigpLmhhc0JhdHRlcnkoKSwKKworI2lmIEVOQUJMRShWUDkpCisgICAgICAg
IC52cDlIYXJkd2FyZURlY29kZXJEaXNhYmxlZCA9IFZQOVRlc3RpbmdPdmVycmlkZXM6OnNpbmds
ZXRvbigpLmhhcmR3YXJlRGVjb2RlckRpc2FibGVkKCksCisgICAgICAgIC52cDlTY3JlZW5TaXpl
QW5kU2NhbGUgPSBWUDlUZXN0aW5nT3ZlcnJpZGVzOjpzaW5nbGV0b24oKS52cDlTY3JlZW5TaXpl
QW5kU2NhbGUoKSwKKyNlbmRpZgorICAgIH07CisKKyAgICBjb25uZWN0aW9uKCkuc2VuZChNZXNz
YWdlczo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6U2V0TWVkaWFPdmVycmlkZXNGb3JUZXN0
aW5nKG1fbWVkaWFPdmVycmlkZXNGb3JUZXN0aW5nKSwgeyB9KTsKKyNlbmRpZgorfQorCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24u
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaApp
bmRleCAwYjdiZjhhOTcxZjY2YWRhYjUxZGM3MzU1MWM4YTAxM2Q3MWU5NGZjLi4wMGMwYzJmMDAz
YTNhODk3ZGVjOTI5Njg5MjkxZmJmYzVmMzZkNWU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5oCkBAIC0yOCw2ICsyOCw3IEBA
CiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgorI2lu
Y2x1ZGUgIk1lZGlhT3ZlcnJpZGVzRm9yVGVzdGluZy5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNl
aXZlck1hcC5oIgogI2luY2x1ZGUgIlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuaCIK
ICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTWVkaWFTZXNzaW9uLmg+CkBAIC00Myw2ICs0NCw3
IEBAIGNsYXNzIFJlbW90ZUNETUZhY3Rvcnk7CiBjbGFzcyBSZW1vdGVNZWRpYUVuZ2luZUNvbmZp
Z3VyYXRpb25GYWN0b3J5OwogY2xhc3MgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOwogY2xhc3Mg
UmVtb3RlTGVnYWN5Q0RNRmFjdG9yeTsKK3N0cnVjdCBPdmVycmlkZVNjcmVlbkRhdGFGb3JUZXN0
aW5nOwogc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM7CiAKIGNsYXNzIEdQVVByb2Nl
c3NDb25uZWN0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8R1BVUHJvY2Vzc0Nvbm5lY3Rpb24+LCBw
dWJsaWMgQ2FuTWFrZVdlYWtQdHI8R1BVUHJvY2Vzc0Nvbm5lY3Rpb24+LCBJUEM6OkNvbm5lY3Rp
b246OkNsaWVudCB7CkBAIC04MSw2ICs4Myw3IEBAIHB1YmxpYzoKICAgICBSZW1vdGVNZWRpYUVu
Z2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5JiBtZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5
KCk7CiAKICAgICB2b2lkIHVwZGF0ZVBhcmFtZXRlcnMoY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFy
YW1ldGVycyYpOworICAgIHZvaWQgdXBkYXRlTWVkaWFDb25maWd1cmF0aW9uKCk7CiAKICNpZiBF
TkFCTEUoVlA5KQogICAgIGJvb2wgaXNWUDhEZWNvZGVyRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJu
IG1fZW5hYmxlVlA4RGVjb2RlcjsgfQpAQCAtMTI5LDYgKzEzMiwxMSBAQCBwcml2YXRlOgogICAg
IGJvb2wgbV9lbmFibGVWUDlEZWNvZGVyIHsgZmFsc2UgfTsKICAgICBib29sIG1fZW5hYmxlVlA5
U1dEZWNvZGVyIHsgZmFsc2UgfTsKICNlbmRpZgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAg
TWVkaWFPdmVycmlkZXNGb3JUZXN0aW5nIG1fbWVkaWFPdmVycmlkZXNGb3JUZXN0aW5nOworI2Vu
ZGlmCisKICAgICBXZWFrSGFzaFNldDxDbGllbnQ+IG1fY2xpZW50czsKIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFPdmVycmlkZXNGb3JU
ZXN0aW5nLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhT3ZlcnJp
ZGVzRm9yVGVzdGluZy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUzMWY5ZGE3Yzk3Mzk2M2MzNGIyZWEzZTI5ZTFh
Y2Q2YzZkZmUxOTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL01lZGlhT3ZlcnJpZGVzRm9yVGVzdGluZy5oCkBAIC0wLDAgKzEsODQgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2lu
Y2x1ZGUgPFdlYkNvcmUvVlA5VXRpbGl0aWVzLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitz
dHJ1Y3QgTWVkaWFPdmVycmlkZXNGb3JUZXN0aW5nIHsKKyAgICBPcHRpb25hbDxib29sPiBzeXN0
ZW1IYXNBQzsKKyAgICBPcHRpb25hbDxib29sPiBzeXN0ZW1IYXNCYXR0ZXJ5OworCisgICAgT3B0
aW9uYWw8Ym9vbD4gdnA5SGFyZHdhcmVEZWNvZGVyRGlzYWJsZWQ7CisgICAgT3B0aW9uYWw8V2Vi
Q29yZTo6U2NyZWVuRGF0YU92ZXJyaWRlcz4gdnA5U2NyZWVuU2l6ZUFuZFNjYWxlOworCisgICAg
dGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KKyAgICB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVy
KSBjb25zdAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCBzeXN0ZW1IYXNBQzsKKyAgICAgICAg
ZW5jb2RlciA8PCBzeXN0ZW1IYXNCYXR0ZXJ5OworICAgICAgICBlbmNvZGVyIDw8IHZwOUhhcmR3
YXJlRGVjb2RlckRpc2FibGVkOworICAgICAgICBlbmNvZGVyIDw8IHZwOVNjcmVlblNpemVBbmRT
Y2FsZTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgRGVjb2Rlcj4KKyAgICBzdGF0aWMg
T3B0aW9uYWw8TWVkaWFPdmVycmlkZXNGb3JUZXN0aW5nPiBkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
cikKKyAgICB7CisgICAgICAgIE9wdGlvbmFsPE9wdGlvbmFsPGJvb2w+PiBzeXN0ZW1IYXNBQzsK
KyAgICAgICAgZGVjb2RlciA+PiBzeXN0ZW1IYXNBQzsKKyAgICAgICAgaWYgKCFzeXN0ZW1IYXNB
QykKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgT3B0aW9uYWw8
T3B0aW9uYWw8Ym9vbD4+IHN5c3RlbUhhc0JhdHRlcnk7CisgICAgICAgIGRlY29kZXIgPj4gc3lz
dGVtSGFzQmF0dGVyeTsKKyAgICAgICAgaWYgKCFzeXN0ZW1IYXNCYXR0ZXJ5KQorICAgICAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAgICBPcHRpb25hbDxPcHRpb25hbDxib29s
Pj4gdnA5SGFyZHdhcmVEZWNvZGVyRGlzYWJsZWQ7CisgICAgICAgIGRlY29kZXIgPj4gdnA5SGFy
ZHdhcmVEZWNvZGVyRGlzYWJsZWQ7CisgICAgICAgIGlmICghdnA5SGFyZHdhcmVEZWNvZGVyRGlz
YWJsZWQpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgICAgIE9wdGlv
bmFsPE9wdGlvbmFsPFdlYkNvcmU6OlNjcmVlbkRhdGFPdmVycmlkZXM+PiB2cDlTY3JlZW5TaXpl
QW5kU2NhbGU7CisgICAgICAgIGRlY29kZXIgPj4gdnA5U2NyZWVuU2l6ZUFuZFNjYWxlOworICAg
ICAgICBpZiAoIXZwOVNjcmVlblNpemVBbmRTY2FsZSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIHt7CisgICAgICAgICAgICAqc3lzdGVtSGFzQUMs
CisgICAgICAgICAgICAqc3lzdGVtSGFzQmF0dGVyeSwKKyAgICAgICAgICAgICp2cDlIYXJkd2Fy
ZURlY29kZXJEaXNhYmxlZCwKKyAgICAgICAgICAgICp2cDlTY3JlZW5TaXplQW5kU2NhbGUsCisg
ICAgICAgIH19OworICAgIH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVk
aWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnkuY3BwCmlu
ZGV4IDU3MGQwMjJjNjJmNWFkMzU4NTIzZGZlN2I3ZTYwYmU2NmY1YWJjMzEuLmVmNTcwY2IxZThl
OWE4NjUxMGE1NjI1YWEwYTY3NDhmMGRmMjkwNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9y
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRp
YUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5LmNwcApAQCAtNTAsMjQgKzUwLDMwIEBAIFJlbW90
ZU1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3Rvcnk6On5SZW1vdGVNZWRpYUVuZ2luZUNvbmZp
Z3VyYXRpb25GYWN0b3J5KCkKIHZvaWQgUmVtb3RlTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFj
dG9yeTo6cmVnaXN0ZXJGYWN0b3J5KCkKIHsKICAgICBNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25G
YWN0b3J5OjpjbGVhckZhY3RvcmllcygpOwotICAgIE1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZh
Y3Rvcnk6Omluc3RhbGxGYWN0b3J5KHsKLSAgICAgICAgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIo
dGhpcyldIChNZWRpYURlY29kaW5nQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24sIE1lZGlh
RW5naW5lQ29uZmlndXJhdGlvbkZhY3Rvcnk6OkRlY29kaW5nQ29uZmlndXJhdGlvbkNhbGxiYWNr
JiYgY2FsbGJhY2spIHsKLSAgICAgICAgICAgIGlmICghd2Vha1RoaXMpIHsKLSAgICAgICAgICAg
ICAgICBjYWxsYmFjayh7eyB9LCBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pfSk7Ci0gICAgICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICB3ZWFrVGhpcy0+Y3Jl
YXRlRGVjb2RpbmdDb25maWd1cmF0aW9uKFdURk1vdmUoY29uZmlndXJhdGlvbiksIFdURk1vdmUo
Y2FsbGJhY2spKTsKLSAgICAgICAgfSwKLSAgICAgICAgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIo
dGhpcyldIChNZWRpYUVuY29kaW5nQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24sIE1lZGlh
RW5naW5lQ29uZmlndXJhdGlvbkZhY3Rvcnk6OkVuY29kaW5nQ29uZmlndXJhdGlvbkNhbGxiYWNr
JiYgY2FsbGJhY2spIHsKLSAgICAgICAgICAgIGlmICghd2Vha1RoaXMpIHsKLSAgICAgICAgICAg
ICAgICBjYWxsYmFjayh7eyB9LCBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pfSk7Ci0gICAgICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICB3ZWFrVGhpcy0+Y3Jl
YXRlRW5jb2RpbmdDb25maWd1cmF0aW9uKFdURk1vdmUoY29uZmlndXJhdGlvbiksIFdURk1vdmUo
Y2FsbGJhY2spKTsKLSAgICAgICAgfSwKLSAgICB9KTsKKworICAgIGF1dG8gY3JlYXRlRGVjb2Rp
bmdDb25maWd1cmF0aW9uID0gW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyldIChNZWRpYURl
Y29kaW5nQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24sIE1lZGlhRW5naW5lQ29uZmlndXJh
dGlvbkZhY3Rvcnk6OkRlY29kaW5nQ29uZmlndXJhdGlvbkNhbGxiYWNrJiYgY2FsbGJhY2spIHsK
KyAgICAgICAgaWYgKCF3ZWFrVGhpcykgeworICAgICAgICAgICAgY2FsbGJhY2soe3sgfSwgV1RG
TW92ZShjb25maWd1cmF0aW9uKX0pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisK
KyAgICAgICAgd2Vha1RoaXMtPmNyZWF0ZURlY29kaW5nQ29uZmlndXJhdGlvbihXVEZNb3ZlKGNv
bmZpZ3VyYXRpb24pLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisgICAgfTsKKworI2lmIFBMQVRGT1JN
KENPQ09BKQorICAgIE1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3Rvcnk6OkNyZWF0ZUVuY29k
aW5nQ29uZmlndXJhdGlvbiBjcmVhdGVFbmNvZGluZ0NvbmZpZ3VyYXRpb24gPSBudWxscHRyOwor
I2Vsc2UKKyAgICBhdXRvIGNyZWF0ZUVuY29kaW5nQ29uZmlndXJhdGlvbiA9IFt3ZWFrVGhpcyA9
IG1ha2VXZWFrUHRyKHRoaXMpXSAoTWVkaWFFbmNvZGluZ0NvbmZpZ3VyYXRpb24mJiBjb25maWd1
cmF0aW9uLCBNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5OjpFbmNvZGluZ0NvbmZpZ3Vy
YXRpb25DYWxsYmFjayYmIGNhbGxiYWNrKSB7CisgICAgICAgIGlmICghd2Vha1RoaXMpIHsKKyAg
ICAgICAgICAgIGNhbGxiYWNrKHt7IH0sIFdURk1vdmUoY29uZmlndXJhdGlvbil9KTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHdlYWtUaGlzLT5jcmVhdGVFbmNv
ZGluZ0NvbmZpZ3VyYXRpb24oV1RGTW92ZShjb25maWd1cmF0aW9uKSwgV1RGTW92ZShjYWxsYmFj
aykpOworICAgIH07CisjZW5kaWYKKworICAgIE1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3Rv
cnk6Omluc3RhbGxGYWN0b3J5KHsgV1RGTW92ZShjcmVhdGVEZWNvZGluZ0NvbmZpZ3VyYXRpb24p
LCBXVEZNb3ZlKGNyZWF0ZUVuY29kaW5nQ29uZmlndXJhdGlvbikgfSk7CiB9CiAKIGNvbnN0IGNo
YXIqIFJlbW90ZU1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3Rvcnk6OnN1cHBsZW1lbnROYW1l
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCAzMDFiODg3N2Iz
NTdkMGQ2MTNhM2FkMTAwYWE5NGY5ZThkNzZmNjIyLi4zODU0ZDVlNDJmMTFlNTA4OTc5MDFjMWE1
Y2NkYzU0OTU2NGU0ZDU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3Bw
CkBAIC0yMDgsNiArMjA4LDcgQEAKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5j
bHVkZSA8V2ViQ29yZS9TeXN0ZW1CYXR0ZXJ5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9WUDlVdGls
aXRpZXNDb2NvYS5oPgogI2VuZGlmCiAKQEAgLTE5NzUsNiArMTk3NiwyNCBAQCB2b2lkIFdlYlBy
b2Nlc3M6OnNldFVzZUdQVVByb2Nlc3NGb3JNZWRpYShib29sIHVzZUdQVVByb2Nlc3NGb3JNZWRp
YSkKICAgICAgICAgV2ViQ29yZTo6UmVtb3RlQ29tbWFuZExpc3RlbmVyOjpzZXRDcmVhdGlvbkZ1
bmN0aW9uKFt0aGlzXSAoV2ViQ29yZTo6UmVtb3RlQ29tbWFuZExpc3RlbmVyQ2xpZW50JiBjbGll
bnQpIHsgcmV0dXJuIFJlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lcjo6Y3JlYXRlKGNsaWVudCwg
KnRoaXMpOyB9KTsKICAgICBlbHNlCiAgICAgICAgIFdlYkNvcmU6OlJlbW90ZUNvbW1hbmRMaXN0
ZW5lcjo6cmVzZXRDcmVhdGlvbkZ1bmN0aW9uKCk7CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAg
ICBpZiAodXNlR1BVUHJvY2Vzc0Zvck1lZGlhKSB7CisgICAgICAgIFN5c3RlbUJhdHRlcnlTdGF0
dXNUZXN0aW5nT3ZlcnJpZGVzOjpzaW5nbGV0b24oKS5zZXRDb25maWd1cmF0aW9uQ2hhbmdlZENh
bGxiYWNrKFt0aGlzXSAoKSB7CisgICAgICAgICAgICBlbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlv
bigpLnVwZGF0ZU1lZGlhQ29uZmlndXJhdGlvbigpOworICAgICAgICB9KTsKKyNpZiBFTkFCTEUo
VlA5KQorICAgICAgICBWUDlUZXN0aW5nT3ZlcnJpZGVzOjpzaW5nbGV0b24oKS5zZXRDb25maWd1
cmF0aW9uQ2hhbmdlZENhbGxiYWNrKFt0aGlzXSAoKSB7CisgICAgICAgICAgICBlbnN1cmVHUFVQ
cm9jZXNzQ29ubmVjdGlvbigpLnVwZGF0ZU1lZGlhQ29uZmlndXJhdGlvbigpOworICAgICAgICB9
KTsKKyNlbmRpZgorICAgIH0gZWxzZSB7CisgICAgICAgIFN5c3RlbUJhdHRlcnlTdGF0dXNUZXN0
aW5nT3ZlcnJpZGVzOjpzaW5nbGV0b24oKS5zZXRDb25maWd1cmF0aW9uQ2hhbmdlZENhbGxiYWNr
KG51bGxwdHIpOworI2lmIEVOQUJMRShWUDkpCisgICAgICAgIFZQOVRlc3RpbmdPdmVycmlkZXM6
OnNpbmdsZXRvbigpLnNldENvbmZpZ3VyYXRpb25DaGFuZ2VkQ2FsbGJhY2sobnVsbHB0cik7Cisj
ZW5kaWYKKyAgICB9CisjZW5kaWYKIH0KIAogYm9vbCBXZWJQcm9jZXNzOjpzaG91bGRVc2VSZW1v
dGVSZW5kZXJpbmdGb3IoUmVuZGVyaW5nUHVycG9zZSBwdXJwb3NlKQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDkzZjJhNThj
NTFiYjQ2MDFmZjQ5MjYzNGNlNzRjNmIzODYyNmM2NWEuLjFkMGQ1YzMzYzZjMjMxMjFiZWQ5NWYy
NTI5NjFmNzAzN2ZmZTlmZTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMS0wMi0yNCAgRXJp
YyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVUF0gU29t
ZSBtZWRpYS1jYXBhYmlsaXRpZXMgdGVzdHMgZmFpbCB3aGVuIG1lZGlhIGluIEdQVSBQcm9jZXNz
IGlzIGVuYWJsZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIyMTY5MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzQ0Mzk0MjA+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBncHUtcHJvY2Vzcy9UZXN0
RXhwZWN0YXRpb25zOiBVbi1za2lwIHRoZSBwYXNzaW5nIHRlc3RzLgorCiAyMDIxLTAyLTI0ICBT
YW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggbW9kZWwgdGVzdCBk
aWZmZXJlbmNlcyBiZXR3ZWVuIHBsYXRmb3JtcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZ3B1
LXByb2Nlc3MvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL2dwdS1wcm9jZXNzL1Rlc3RF
eHBlY3RhdGlvbnMKaW5kZXggNDcyMWJiYTg3ZmNlNTlmNDZjZjYzNjI3ZTFhNzk5ZWYxNjJiNTIw
NS4uMGNhNGY0MzQ4Y2UwNWUzOWM3ZjI4MzI4MDk5YWViYTk3YWRlZmMxNyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZ3B1LXByb2Nlc3MvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0
cy9ncHUtcHJvY2Vzcy9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMzcsMTEgKzEzNyw2IEBAIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWEtc291cmNlL1NvdXJjZUJ1ZmZlci1hYm9y
dC11cGRhdGluZy5odG1sIFsKIG1lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtcmVzaXpl
Lmh0bWwgWyBUaW1lb3V0IF0KIHBsYXRmb3JtL21hYy9tZWRpYS9tZWRpYS1zb3VyY2UvdmlkZW9w
bGF5YmFja3F1YWxpdHktZGVjb21wcmVzc2lvbnNlc3Npb24uaHRtbCBbIEZhaWx1cmUgXQogCi0j
IHdlYmtpdC5vcmcvYi8yMjE2OTEKLW1lZGlhL21lZGlhY2FwYWJpbGl0aWVzL21lZGlhY2FwYWJp
bGl0aWVzLXR5cGVzLmh0bWwgWyBGYWlsdXJlIF0KLXBsYXRmb3JtL21hYy9tZWRpYS9tZWRpYWNh
cGFiaWxpdGllcy9tZWRpYWNhcGFiaWxpdGllcy1lbmNvZGluZ0luZm8tdW5kZWZpbmVkLmh0bWwg
WyBGYWlsdXJlIF0KLXBsYXRmb3JtL21hYy9tZWRpYS9tZWRpYWNhcGFiaWxpdGllcy92cDktZGVj
b2RpbmdJbmZvLXN3Lmh0bWwgWyBGYWlsdXJlIF0KLQogc3ZnL2NhbnZhcy9jYW52YXMtZ2xvYmFs
LWFscGhhLXN2Zy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKICMgd2Via2l0Lm9yZy9iLzIy
MDgwNQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421552</attachid>
            <date>2021-02-25 12:09:43 -0800</date>
            <delta_ts>2021-02-25 13:04:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221691-20210225120943.patch</filename>
            <type>text/plain</type>
            <size>40355</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczNDg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2U1YjM1ZDJkYjgwNWQy
NzA1NGM5MmRkZjVmNzNkNDE2NzI5OWI3Zi4uMmM5NzNiMDlmNWNjZGM2M2E0NGM4Y2MwNGVlZmU2
YjljYTg0YzY2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDIxLTAyLTI1ICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtHUFVQXSBTb21l
IG1lZGlhLWNhcGFiaWxpdGllcyB0ZXN0cyBmYWlsIHdoZW4gbWVkaWEgaW4gR1BVIFByb2Nlc3Mg
aXMgZW5hYmxlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjIxNjkxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NDQzOTQyMD4KKworICAgICAgICBS
ZXZpZXdlZCBieSBKZXIgTm9ibGUuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCB0aGlzIGZpeGVz
IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBw
bGF0Zm9ybS9jb2NvYS9TeXN0ZW1CYXR0ZXJ5Lmg6CisgICAgICAgICogcGxhdGZvcm0vY29jb2Ev
U3lzdGVtQmF0dGVyeS5tbToKKyAgICAgICAgKFdlYkNvcmU6OnN5c3RlbUhhc0JhdHRlcnkpOgor
ICAgICAgICAoV2ViQ29yZTo6c3lzdGVtSGFzQUMpOgorICAgICAgICAoV2ViQ29yZTo6U3lzdGVt
QmF0dGVyeVN0YXR1c1Rlc3RpbmdPdmVycmlkZXM6OnNpbmdsZXRvbik6CisgICAgICAgIChXZWJD
b3JlOjpTeXN0ZW1CYXR0ZXJ5U3RhdHVzVGVzdGluZ092ZXJyaWRlczo6c2V0SGFzQmF0dGVyeSk6
CisgICAgICAgIChXZWJDb3JlOjpTeXN0ZW1CYXR0ZXJ5U3RhdHVzVGVzdGluZ092ZXJyaWRlczo6
c2V0SGFzQUMpOgorICAgICAgICAoV2ViQ29yZTo6U3lzdGVtQmF0dGVyeVN0YXR1c1Rlc3RpbmdP
dmVycmlkZXM6OnNldENvbmZpZ3VyYXRpb25DaGFuZ2VkQ2FsbGJhY2spOgorICAgICAgICAoV2Vi
Q29yZTo6c2V0T3ZlcnJpZGVTeXN0ZW1IYXNCYXR0ZXJ5Rm9yVGVzdGluZyk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpzZXRPdmVycmlkZVN5c3RlbUhhc0FDRm9yVGVzdGluZyk6IERlbGV0
ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvVlA5VXRpbGl0aWVzLmg6CisgICAgICAg
IChXZWJDb3JlOjpTY3JlZW5EYXRhT3ZlcnJpZGVzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6U2NyZWVuRGF0YU92ZXJyaWRlczo6ZGVjb2RlKToKKyAgICAgICAgKFdlYkNvcmU6
Om9wZXJhdG9yPT0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZQOVV0aWxp
dGllc0NvY29hLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvVlA5VXRpbGl0
aWVzQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpWUDlUZXN0aW5nT3ZlcnJpZGVzOjpzaW5n
bGV0b24pOgorICAgICAgICAoV2ViQ29yZTo6VlA5VGVzdGluZ092ZXJyaWRlczo6c2V0SGFyZHdh
cmVEZWNvZGVyRGlzYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6VlA5VGVzdGluZ092ZXJyaWRl
czo6c2V0VlA5U2NyZWVuU2l6ZUFuZFNjYWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlZQOVRlc3Rp
bmdPdmVycmlkZXM6OnNldENvbmZpZ3VyYXRpb25DaGFuZ2VkQ2FsbGJhY2spOgorICAgICAgICAo
V2ViQ29yZTo6dnA5SGFyZHdhcmVEZWNvZGVyQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6
OmlzVlA5Q29kZWNDb25maWd1cmF0aW9uUmVjb3JkU3VwcG9ydGVkKToKKyAgICAgICAgKFdlYkNv
cmU6OnZhbGlkYXRlVlBQYXJhbWV0ZXJzKToKKyAgICAgICAgKCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpzZXRPdmVycmlkZVZQOUhhcmR3YXJlRGVjb2RlckRpc2FibGVkRm9yVGVzdGlu
Zyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpzZXRPdmVycmlkZVZQOVNjcmVlblNpemVB
bmRTY2FsZUZvclRlc3RpbmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6cmVzZXRPdmVy
cmlkZVZQOVNjcmVlblNpemVBbmRTY2FsZUZvclRlc3RpbmcpOiBEZWxldGVkLgorICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6SW50
ZXJuYWxzKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6c2V0U3lzdGVtSGFzQmF0dGVy
eUZvclRlc3RpbmcpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzZXRTeXN0ZW1IYXNB
Q0ZvclRlc3RpbmcpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzZXRIYXJkd2FyZVZQ
OURlY29kZXJEaXNhYmxlZEZvclRlc3RpbmcpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxz
OjpzZXRWUDlTY3JlZW5TaXplQW5kU2NhbGVGb3JUZXN0aW5nKToKKwogMjAyMS0wMi0yNSAgTGF1
cm8gTW91cmEgIDxsbW91cmFAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLiBHTGli
IGRlYnVnIGJ1aWxkZml4IGFmdGVyIHIyNzM0NzcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYzU0N2NkZWQ1N2VlMzNi
MDQxNDI0YjI4OTk3ODEyM2NlZjNiNjc4MC4uOTZiYjJmMzkyMTg3N2M5NDhkMjVhZmM1OTA2ZTc2
YmNlMzE3YTU0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAyMS0wMi0yNSAgRXJpYyBD
YXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVUF0gU29tZSBt
ZWRpYS1jYXBhYmlsaXRpZXMgdGVzdHMgZmFpbCB3aGVuIG1lZGlhIGluIEdQVSBQcm9jZXNzIGlz
IGVuYWJsZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyMTY5MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzQ0Mzk0MjA+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgSmVyIE5vYmxlLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6c2V0TWVkaWFPdmVycmlkZXNGb3JUZXN0aW5nKToKKyAgICAgICAgKiBHUFVQcm9jZXNz
L0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL0dQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vz
c0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNzQ29ubmVjdGlvbjo6
dXBkYXRlTWVkaWFDb25maWd1cmF0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9HUFVQ
cm9jZXNzQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlh
T3ZlcnJpZGVzRm9yVGVzdGluZy5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6TWVkaWFPdmVy
cmlkZXNGb3JUZXN0aW5nOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYU92
ZXJyaWRlc0ZvclRlc3Rpbmc6OmRlY29kZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvUmVtb3RlTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZU1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3Rvcnk6OnJlZ2lzdGVyRmFj
dG9yeSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzczo6c2V0VXNlR1BVUHJvY2Vzc0Zvck1lZGlhKToKKwogMjAyMS0wMi0y
NSAgUGVyIEFybmUgIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBUZW1wb3JhcmlseSBz
dG9wIGVuZm9yY2luZyBub3RpZmljYXRpb24gZmlsdGVyaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRl
eCA4NTQ3MWVhNWJmZThlMjY0YWJkNTc2ODkyNzYwYzEyZDM1ZTA1ODc3Li4xYjAzZjBhYWYxNGJl
MjMwZDdlOWQ4NDBkZTY3MjVkYzYyNzMzZjkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9I
ZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTEyOTEs
NiArMTI5MSw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBw
bGF0Zm9ybS9ncmFwaGljcy9UZXh0VHJhY2tSZXByZXNlbnRhdGlvbi5oCiAgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvVGlsZWRCYWNraW5nLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9UcmFja1ByaXZh
dGVCYXNlLmgKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9WUDlVdGlsaXRpZXMuaAogICAgIHBsYXRm
b3JtL2dyYXBoaWNzL1ZlbG9jaXR5RGF0YS5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvVmlkZW9M
YXllck1hbmFnZXIuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1ZpZGVvUGxheWJhY2tRdWFsaXR5
TWV0cmljcy5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TeXN0
ZW1CYXR0ZXJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TeXN0ZW1CYXR0ZXJ5
LmgKaW5kZXggOTM1NDc3YTZmNGI1MGZhNTg2MDdlMWMxYjg1Y2UzNTRmMTkwOWUyNS4uOTczNTI0
MjcxM2FmMGMwOWQ3YjM1ZWE3NmZjNGRjM2QwZDAyNDQxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY29jb2EvU3lzdGVtQmF0dGVyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2NvY29hL1N5c3RlbUJhdHRlcnkuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0qIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisqIENvcHly
aWdodCAoQykgMjAyMC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICoKICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjUsNiArMjUsOSBAQAogCiAjcHJhZ21hIG9uY2UK
IAorI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgor
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U3lzdGVtSGFz
QmF0dGVyeShib29sKTsKQEAgLTM1LDcgKzM4LDIyIEBAIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0
U3lzdGVtSGFzQUMoYm9vbCk7CiBXRUJDT1JFX0VYUE9SVCBib29sIHN5c3RlbUhhc0FDKCk7CiBX
RUJDT1JFX0VYUE9SVCBPcHRpb25hbDxib29sPiBjYWNoZWRTeXN0ZW1IYXNBQygpOwogCi1XRUJD
T1JFX0VYUE9SVCB2b2lkIHNldE92ZXJyaWRlU3lzdGVtSGFzQmF0dGVyeUZvclRlc3RpbmcoT3B0
aW9uYWw8Ym9vbD4mJik7Ci1XRUJDT1JFX0VYUE9SVCB2b2lkIHNldE92ZXJyaWRlU3lzdGVtSGFz
QUNGb3JUZXN0aW5nKE9wdGlvbmFsPGJvb2w+JiYpOworY2xhc3MgV0VCQ09SRV9FWFBPUlQgU3lz
dGVtQmF0dGVyeVN0YXR1c1Rlc3RpbmdPdmVycmlkZXMgeworcHVibGljOgorICAgIHN0YXRpYyBT
eXN0ZW1CYXR0ZXJ5U3RhdHVzVGVzdGluZ092ZXJyaWRlcyYgc2luZ2xldG9uKCk7CisKKyAgICB2
b2lkIHNldEhhc0FDKE9wdGlvbmFsPGJvb2w+JiYpOworICAgIE9wdGlvbmFsPGJvb2w+IGhhc0FD
KCkgeyByZXR1cm4gbV9oYXNBQzsgfQorCisgICAgdm9pZCBzZXRIYXNCYXR0ZXJ5KE9wdGlvbmFs
PGJvb2w+JiYpOworICAgIE9wdGlvbmFsPGJvb2w+IGhhc0JhdHRlcnkoKSB7IHJldHVybiAgbV9o
YXNCYXR0ZXJ5OyB9CisKKyAgICB2b2lkIHNldENvbmZpZ3VyYXRpb25DaGFuZ2VkQ2FsbGJhY2so
c3RkOjpmdW5jdGlvbjx2b2lkKCk+JiYpOworCitwcml2YXRlOgorICAgIE9wdGlvbmFsPGJvb2w+
IG1faGFzQmF0dGVyeTsKKyAgICBPcHRpb25hbDxib29sPiBtX2hhc0FDOworICAgIFdURjo6RnVu
Y3Rpb248dm9pZCgpPiBtX2NvbmZpZ3VyYXRpb25DaGFuZ2VkQ2FsbGJhY2s7Cit9OwogCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TeXN0ZW1CYXR0ZXJ5Lm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU3lzdGVtQmF0dGVyeS5tbQppbmRleCBl
NjVkZjc1YjQxMDE2MTBmMjZmMGEzNGMyMGIwYWRkMzc0NWVmMjQyLi43Zjg5MWI0MTRmYWQzOTg3
NDA1Yzk0NzczNWRjMDNlODFiOTRkNjhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jb2NvYS9TeXN0ZW1CYXR0ZXJ5Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2NvY29hL1N5c3RlbUJhdHRlcnkubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAyMC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzMsOCArMzMsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIHN0YXRpYyBPcHRpb25hbDxib29sPiBoYXNCYXR0ZXJ5Owogc3RhdGljIE9wdGlvbmFsPGJv
b2w+IGhhc0FDOwotc3RhdGljIE9wdGlvbmFsPGJvb2w+IGhhc0JhdHRlcnlPdmVycmlkZUZvclRl
c3Rpbmc7Ci1zdGF0aWMgT3B0aW9uYWw8Ym9vbD4gaGFzQUNPdmVycmlkZUZvclRlc3Rpbmc7CiAK
IHZvaWQgc2V0U3lzdGVtSGFzQmF0dGVyeShib29sIGJhdHRlcnkpCiB7CkBAIC00Myw4ICs0MSw4
IEBAIHZvaWQgc2V0U3lzdGVtSGFzQmF0dGVyeShib29sIGJhdHRlcnkpCiAKIGJvb2wgc3lzdGVt
SGFzQmF0dGVyeSgpCiB7Ci0gICAgaWYgKGhhc0JhdHRlcnlPdmVycmlkZUZvclRlc3RpbmcpCi0g
ICAgICAgIHJldHVybiAqaGFzQmF0dGVyeU92ZXJyaWRlRm9yVGVzdGluZzsKKyAgICBpZiAoYXV0
byBvdmVycmlkZUZvclRlc3RpbmcgPSBTeXN0ZW1CYXR0ZXJ5U3RhdHVzVGVzdGluZ092ZXJyaWRl
czo6c2luZ2xldG9uKCkuaGFzQmF0dGVyeSgpKQorICAgICAgICByZXR1cm4gKm92ZXJyaWRlRm9y
VGVzdGluZzsKIAogICAgIGlmICghaGFzQmF0dGVyeS5oYXNWYWx1ZSgpKSB7CiAgICAgICAgIGhh
c0JhdHRlcnkgPSBbXSB7CkBAIC04Niw4ICs4NCw4IEBAIHZvaWQgc2V0U3lzdGVtSGFzQUMoYm9v
bCBhYykKIAogYm9vbCBzeXN0ZW1IYXNBQygpCiB7Ci0gICAgaWYgKGhhc0FDT3ZlcnJpZGVGb3JU
ZXN0aW5nKQotICAgICAgICByZXR1cm4gKmhhc0FDT3ZlcnJpZGVGb3JUZXN0aW5nOworICAgIGlm
IChhdXRvIG92ZXJyaWRlRm9yVGVzdGluZyA9IFN5c3RlbUJhdHRlcnlTdGF0dXNUZXN0aW5nT3Zl
cnJpZGVzOjpzaW5nbGV0b24oKS5oYXNBQygpKQorICAgICAgICByZXR1cm4gKm92ZXJyaWRlRm9y
VGVzdGluZzsKIAogICAgIGlmICghaGFzQUMuaGFzVmFsdWUoKSkgewogICAgICAgICBoYXNBQyA9
IFtdIHsKQEAgLTEyMSwxNCArMTE5LDI5IEBAIE9wdGlvbmFsPGJvb2w+IGNhY2hlZFN5c3RlbUhh
c0FDKCkKICAgICByZXR1cm4gaGFzQUM7CiB9CiAKLXZvaWQgc2V0T3ZlcnJpZGVTeXN0ZW1IYXNC
YXR0ZXJ5Rm9yVGVzdGluZyhPcHRpb25hbDxib29sPiYmIGhhc0JhdHRlcnkpCitTeXN0ZW1CYXR0
ZXJ5U3RhdHVzVGVzdGluZ092ZXJyaWRlcyYgU3lzdGVtQmF0dGVyeVN0YXR1c1Rlc3RpbmdPdmVy
cmlkZXM6OnNpbmdsZXRvbigpCiB7Ci0gICAgaGFzQmF0dGVyeU92ZXJyaWRlRm9yVGVzdGluZyA9
IFdURk1vdmUoaGFzQmF0dGVyeSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN5c3RlbUJh
dHRlcnlTdGF0dXNUZXN0aW5nT3ZlcnJpZGVzPiBpbnN0YW5jZTsKKyAgICByZXR1cm4gaW5zdGFu
Y2U7CiB9CiAKLXZvaWQgc2V0T3ZlcnJpZGVTeXN0ZW1IYXNBQ0ZvclRlc3RpbmcoT3B0aW9uYWw8
Ym9vbD4mJiBoYXNBQykKK3ZvaWQgU3lzdGVtQmF0dGVyeVN0YXR1c1Rlc3RpbmdPdmVycmlkZXM6
OnNldEhhc0JhdHRlcnkoT3B0aW9uYWw8Ym9vbD4mJiBoYXNCYXR0ZXJ5KQogewotICAgIGhhc0FD
T3ZlcnJpZGVGb3JUZXN0aW5nID0gV1RGTW92ZShoYXNBQyk7CisgICAgbV9oYXNCYXR0ZXJ5ID0g
V1RGTW92ZShoYXNCYXR0ZXJ5KTsKKyAgICBpZiAobV9jb25maWd1cmF0aW9uQ2hhbmdlZENhbGxi
YWNrKQorICAgICAgICBtX2NvbmZpZ3VyYXRpb25DaGFuZ2VkQ2FsbGJhY2soKTsKK30KKwordm9p
ZCBTeXN0ZW1CYXR0ZXJ5U3RhdHVzVGVzdGluZ092ZXJyaWRlczo6c2V0SGFzQUMoT3B0aW9uYWw8
Ym9vbD4mJiBoYXNBQykKK3sKKyAgICBtX2hhc0FDID0gV1RGTW92ZShoYXNBQyk7CisgICAgaWYg
KG1fY29uZmlndXJhdGlvbkNoYW5nZWRDYWxsYmFjaykKKyAgICAgICAgbV9jb25maWd1cmF0aW9u
Q2hhbmdlZENhbGxiYWNrKCk7Cit9CisKK3ZvaWQgU3lzdGVtQmF0dGVyeVN0YXR1c1Rlc3RpbmdP
dmVycmlkZXM6OnNldENvbmZpZ3VyYXRpb25DaGFuZ2VkQ2FsbGJhY2soc3RkOjpmdW5jdGlvbjx2
b2lkKCk+JiYgY2FsbGJhY2spCit7CisgICAgbV9jb25maWd1cmF0aW9uQ2hhbmdlZENhbGxiYWNr
ID0gV1RGTW92ZShjYWxsYmFjayk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL1ZQOVV0aWxpdGllcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvVlA5VXRpbGl0aWVzLmgKaW5kZXggODg3Njk4MzhkNTA4MTk4MmQyMmEwN2Iw
NTlkNDBiZDMxNWMyY2JlNi4uZGEzMDkwMGE0ZWM3MjM4M2UzZWIwMzNkNWM0NjY1YzA3ZWNkOTU3
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVlA5VXRpbGl0
aWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVlA5VXRpbGl0aWVz
LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMC0yMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMTI3LDQgKzEyNyw0MSBAQCBzdHJ1Y3QgVlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQgewog
CiBXRUJDT1JFX0VYUE9SVCBPcHRpb25hbDxWUENvZGVjQ29uZmlndXJhdGlvblJlY29yZD4gcGFy
c2VWUENvZGVjUGFyYW1ldGVycyhTdHJpbmdWaWV3IGNvZGVjU3RyaW5nKTsKIAorc3RydWN0IFNj
cmVlbkRhdGFPdmVycmlkZXMgeworICAgIGRvdWJsZSB3aWR0aCB7IDAgfTsKKyAgICBkb3VibGUg
aGVpZ2h0IHsgMCB9OworICAgIGRvdWJsZSBzY2FsZSB7IDEgfTsKKworICAgIHRlbXBsYXRlPGNs
YXNzIEVuY29kZXI+CisgICAgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAg
ICB7CisgICAgICAgIGVuY29kZXIgPDwgd2lkdGg7CisgICAgICAgIGVuY29kZXIgPDwgaGVpZ2h0
OworICAgICAgICBlbmNvZGVyIDw8IHNjYWxlOworICAgIH0KKworICAgIHRlbXBsYXRlIDxjbGFz
cyBEZWNvZGVyPgorICAgIHN0YXRpYyBPcHRpb25hbDxTY3JlZW5EYXRhT3ZlcnJpZGVzPiBkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisjZGVmaW5lIERFQ09ERShuYW1lLCB0eXBlKSBc
CisgICAgT3B0aW9uYWw8dHlwZT4gbmFtZTsgXAorICAgIGRlY29kZXIgPj4gbmFtZTsgXAorICAg
IGlmICghbmFtZSkgXAorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OyBcCisKKyAgICBERUNP
REUod2lkdGgsIGRvdWJsZSk7CisgICAgREVDT0RFKGhlaWdodCwgZG91YmxlKTsKKyAgICBERUNP
REUoc2NhbGUsIGRvdWJsZSk7CisjdW5kZWYgREVDT0RFCisKKyAgICByZXR1cm4ge3sgV1RGTW92
ZSgqd2lkdGgpLCBXVEZNb3ZlKCpoZWlnaHQpLCBXVEZNb3ZlKCpzY2FsZSkgfX07CisgICAgfQor
fTsKKworaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBTY3JlZW5EYXRhT3ZlcnJpZGVzJiBh
LCBjb25zdCBTY3JlZW5EYXRhT3ZlcnJpZGVzJiBiKQoreworICAgIHJldHVybiBhLndpZHRoID09
IGIud2lkdGggJiYgYS5oZWlnaHQgPT0gYi5oZWlnaHQgJiYgYS5zY2FsZSA9PSBiLnNjYWxlOwor
fQorCisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL1ZQOVV0aWxpdGllc0NvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9WUDlVdGlsaXRpZXNDb2NvYS5oCmluZGV4IDJmMDAwNmI0MWQxNzFjYTcxZmM4NGVl
MWJhNzFhZDRjZGQxMGVjNTYuLmZjYWY5OWFlZDMyNjBlYjVjYjBkMWM1NmNlZTA5ZGU2ZWZiMGRj
MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1ZQ
OVV0aWxpdGllc0NvY29hLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvVlA5VXRpbGl0aWVzQ29jb2EuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00MSwxMCArNDEsNiBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiBzdHJ1Y3QgTWVkaWFDYXBhYmlsaXRpZXNJbmZvOwogc3RydWN0IFZpZGVvQ29uZmlndXJh
dGlvbjsKIAotV0VCQ09SRV9FWFBPUlQgZXh0ZXJuIHZvaWQgc2V0T3ZlcnJpZGVWUDlIYXJkd2Fy
ZURlY29kZXJEaXNhYmxlZEZvclRlc3RpbmcoYm9vbCk7Ci1XRUJDT1JFX0VYUE9SVCBleHRlcm4g
dm9pZCBzZXRPdmVycmlkZVZQOVNjcmVlblNpemVBbmRTY2FsZUZvclRlc3RpbmcoZmxvYXQgd2lk
dGgsIGZsb2F0IGhlaWdodCwgZmxvYXQgc2NhbGUpOwotV0VCQ09SRV9FWFBPUlQgZXh0ZXJuIHZv
aWQgcmVzZXRPdmVycmlkZVZQOVNjcmVlblNpemVBbmRTY2FsZUZvclRlc3RpbmcoKTsKLQogV0VC
Q09SRV9FWFBPUlQgZXh0ZXJuIHZvaWQgcmVnaXN0ZXJXZWJLaXRWUDlEZWNvZGVyKCk7CiBXRUJD
T1JFX0VYUE9SVCBleHRlcm4gdm9pZCByZWdpc3RlcldlYktpdFZQOERlY29kZXIoKTsKIFdFQkNP
UkVfRVhQT1JUIGV4dGVybiB2b2lkIHJlZ2lzdGVyU3VwcGxlbWVudGFsVlA5RGVjb2RlcigpOwpA
QCAtNzEsNiArNjcsMjQgQEAgc3RydWN0IFZQOEZyYW1lSGVhZGVyIHsKIE9wdGlvbmFsPFZQOEZy
YW1lSGVhZGVyPiBwYXJzZVZQOEZyYW1lSGVhZGVyKHVpbnQ4X3QqIGZyYW1lRGF0YSwgc2l6ZV90
IGZyYW1lU2l6ZSk7CiBSZXRhaW5QdHI8Q01Gb3JtYXREZXNjcmlwdGlvblJlZj4gY3JlYXRlRm9y
bWF0RGVzY3JpcHRpb25Gcm9tVlA4SGVhZGVyKGNvbnN0IFZQOEZyYW1lSGVhZGVyJiwgY29uc3Qg
d2VibTo6RWxlbWVudDx3ZWJtOjpDb2xvdXI+Jik7CiAKK2NsYXNzIFdFQkNPUkVfRVhQT1JUIFZQ
OVRlc3RpbmdPdmVycmlkZXMgeworcHVibGljOgorICAgIHN0YXRpYyBWUDlUZXN0aW5nT3ZlcnJp
ZGVzJiBzaW5nbGV0b24oKTsKKworICAgIHZvaWQgc2V0SGFyZHdhcmVEZWNvZGVyRGlzYWJsZWQo
T3B0aW9uYWw8Ym9vbD4mJik7CisgICAgT3B0aW9uYWw8Ym9vbD4gaGFyZHdhcmVEZWNvZGVyRGlz
YWJsZWQoKSB7IHJldHVybiBtX2hhcmR3YXJlRGVjb2RlckRpc2FibGVkOyB9CisKKyAgICB2b2lk
IHNldFZQOVNjcmVlblNpemVBbmRTY2FsZShPcHRpb25hbDxTY3JlZW5EYXRhT3ZlcnJpZGVzPiYm
KTsKKyAgICBPcHRpb25hbDxTY3JlZW5EYXRhT3ZlcnJpZGVzPiB2cDlTY3JlZW5TaXplQW5kU2Nh
bGUoKSAgeyByZXR1cm4gbV9zY3JlZW5TaXplQW5kU2NhbGU7IH0KKworICAgIHZvaWQgc2V0Q29u
ZmlndXJhdGlvbkNoYW5nZWRDYWxsYmFjayhzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4mJik7CisKK3By
aXZhdGU6CisgICAgT3B0aW9uYWw8Ym9vbD4gbV9oYXJkd2FyZURlY29kZXJEaXNhYmxlZDsKKyAg
ICBPcHRpb25hbDxTY3JlZW5EYXRhT3ZlcnJpZGVzPiBtX3NjcmVlblNpemVBbmRTY2FsZTsKKyAg
ICBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4gbV9jb25maWd1cmF0aW9uQ2hhbmdlZENhbGxiYWNrOwor
fTsKKwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL1ZQOVV0aWxpdGllc0NvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvVlA5VXRpbGl0aWVzQ29jb2EubW0KaW5kZXggMzE5NzNiMmM2NDE3
YmI1NzhmODBiMjUwMjU1M2UyY2M2MTZhZTljYS4uYzVmYTM4ODQ3OGU0ZTQyYTUwNzhlODIxZjdh
Mzg4Yjg5YTY3MjYxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvVlA5VXRpbGl0aWVzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvVlA5VXRpbGl0aWVzQ29jb2EubW0KQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAyMC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTAsMjggKzUwLDI5IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5nIG5hbWVzcGFjZSBQQUw7CiB1c2luZyBuYW1lc3BhY2Ug
d2VibTsKIAotc3RhdGljIGJvb2wgaGFyZHdhcmVWUDlEZWNvZGVyRGlzYWJsZWRGb3JUZXN0aW5n
IHsgZmFsc2UgfTsKLQotc3RydWN0IE92ZXJyaWRlU2NyZWVuRGF0YSB7Ci0gICAgZmxvYXQgd2lk
dGggeyAwIH07Ci0gICAgZmxvYXQgaGVpZ2h0IHsgMCB9OwotICAgIGZsb2F0IHNjYWxlIHsgMSB9
OwotfTsKLXN0YXRpYyBPcHRpb25hbDxPdmVycmlkZVNjcmVlbkRhdGE+IHNjcmVlblNpemVBbmRT
Y2FsZUZvclRlc3Rpbmc7CitWUDlUZXN0aW5nT3ZlcnJpZGVzJiBWUDlUZXN0aW5nT3ZlcnJpZGVz
OjpzaW5nbGV0b24oKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWUDlUZXN0aW5nT3Zl
cnJpZGVzPiBpbnN0YW5jZTsKKyAgICByZXR1cm4gaW5zdGFuY2U7Cit9CiAKLXZvaWQgc2V0T3Zl
cnJpZGVWUDlIYXJkd2FyZURlY29kZXJEaXNhYmxlZEZvclRlc3RpbmcoYm9vbCBkaXNhYmxlZCkK
K3ZvaWQgVlA5VGVzdGluZ092ZXJyaWRlczo6c2V0SGFyZHdhcmVEZWNvZGVyRGlzYWJsZWQoT3B0
aW9uYWw8Ym9vbD4mJiBkaXNhYmxlZCkKIHsKLSAgICBoYXJkd2FyZVZQOURlY29kZXJEaXNhYmxl
ZEZvclRlc3RpbmcgPSBkaXNhYmxlZDsKKyAgICBtX2hhcmR3YXJlRGVjb2RlckRpc2FibGVkID0g
V1RGTW92ZShkaXNhYmxlZCk7CisgICAgaWYgKG1fY29uZmlndXJhdGlvbkNoYW5nZWRDYWxsYmFj
aykKKyAgICAgICAgbV9jb25maWd1cmF0aW9uQ2hhbmdlZENhbGxiYWNrKCk7CiB9CiAKLXZvaWQg
c2V0T3ZlcnJpZGVWUDlTY3JlZW5TaXplQW5kU2NhbGVGb3JUZXN0aW5nKGZsb2F0IHdpZHRoLCBm
bG9hdCBoZWlnaHQsIGZsb2F0IHNjYWxlKQordm9pZCBWUDlUZXN0aW5nT3ZlcnJpZGVzOjpzZXRW
UDlTY3JlZW5TaXplQW5kU2NhbGUoT3B0aW9uYWw8U2NyZWVuRGF0YU92ZXJyaWRlcz4mJiBvdmVy
cmlkZXMpCiB7Ci0gICAgc2NyZWVuU2l6ZUFuZFNjYWxlRm9yVGVzdGluZyA9IG1ha2VPcHRpb25h
bDxPdmVycmlkZVNjcmVlbkRhdGE+KHsgd2lkdGgsIGhlaWdodCwgc2NhbGUgfSk7CisgICAgbV9z
Y3JlZW5TaXplQW5kU2NhbGUgPSBXVEZNb3ZlKG92ZXJyaWRlcyk7CisgICAgaWYgKG1fY29uZmln
dXJhdGlvbkNoYW5nZWRDYWxsYmFjaykKKyAgICAgICAgbV9jb25maWd1cmF0aW9uQ2hhbmdlZENh
bGxiYWNrKCk7CiB9CiAKLXZvaWQgcmVzZXRPdmVycmlkZVZQOVNjcmVlblNpemVBbmRTY2FsZUZv
clRlc3RpbmcoKQordm9pZCBWUDlUZXN0aW5nT3ZlcnJpZGVzOjpzZXRDb25maWd1cmF0aW9uQ2hh
bmdlZENhbGxiYWNrKHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiYmIGNhbGxiYWNrKQogewotICAgIHNj
cmVlblNpemVBbmRTY2FsZUZvclRlc3RpbmcgPSBXVEY6Om51bGxvcHQ7CisgICAgbV9jb25maWd1
cmF0aW9uQ2hhbmdlZENhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayk7CiB9CiAKIGVudW0gY2xh
c3MgUmVzb2x1dGlvbkNhdGVnb3J5IDogdWludDhfdCB7CkBAIC0xMzksNiArMTQwLDE0IEBAIGJv
b2wgaXNWUDhEZWNvZGVyQXZhaWxhYmxlKCkKICAgICByZXR1cm4gbm9FcnIgPT0gVlRTZWxlY3RB
bmRDcmVhdGVWaWRlb0RlY29kZXJJbnN0YW5jZSgndnAwOCcsIGtDRkFsbG9jYXRvckRlZmF1bHQs
IG51bGxwdHIsIG51bGxwdHIpOwogfQogCitzdGF0aWMgYm9vbCB2cDlIYXJkd2FyZURlY29kZXJB
dmFpbGFibGUoKQoreworICAgIGlmIChhdXRvIGRpc2FibGVkRm9yVGVzdGluZyA9IFZQOVRlc3Rp
bmdPdmVycmlkZXM6OnNpbmdsZXRvbigpLmhhcmR3YXJlRGVjb2RlckRpc2FibGVkKCkpCisgICAg
ICAgIHJldHVybiAhKmRpc2FibGVkRm9yVGVzdGluZzsKKworICAgIHJldHVybiBjYW5Mb2FkX1Zp
ZGVvVG9vbGJveF9WVElzSGFyZHdhcmVEZWNvZGVTdXBwb3J0ZWQoKSAmJiBWVElzSGFyZHdhcmVE
ZWNvZGVTdXBwb3J0ZWQoa0NNVmlkZW9Db2RlY1R5cGVfVlA5KTsKK30KKwogc3RhdGljIGJvb2wg
aXNWUDlDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmRTdXBwb3J0ZWQoVlBDb2RlY0NvbmZpZ3VyYXRp
b25SZWNvcmQmIGNvZGVjQ29uZmlndXJhdGlvbikKIHsKICAgICBpZiAoIWlzVlA5RGVjb2RlckF2
YWlsYWJsZSgpKQpAQCAtMTYxLDcgKzE3MCw3IEBAIHN0YXRpYyBib29sIGlzVlA5Q29kZWNDb25m
aWd1cmF0aW9uUmVjb3JkU3VwcG9ydGVkKFZQQ29kZWNDb25maWd1cmF0aW9uUmVjb3JkJiBjCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIC8vIEhhcmR3YXJlIGRlY29kZXJzIGFyZSBhbHdh
eXMgYXZhaWxhYmxlLgotICAgIGlmIChjYW5Mb2FkX1ZpZGVvVG9vbGJveF9WVElzSGFyZHdhcmVE
ZWNvZGVTdXBwb3J0ZWQoKSAmJiBWVElzSGFyZHdhcmVEZWNvZGVTdXBwb3J0ZWQoa0NNVmlkZW9D
b2RlY1R5cGVfVlA5KSAmJiAhaGFyZHdhcmVWUDlEZWNvZGVyRGlzYWJsZWRGb3JUZXN0aW5nKQor
ICAgIGlmICh2cDlIYXJkd2FyZURlY29kZXJBdmFpbGFibGUoKSkKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAKICAgICAvLyBGb3Igd2FsbC1wb3dlcmVkIGRldmljZXMsIGFsd2F5cyByZXBvcnQgVlA5
IGFzIHN1cHBvcnRlZCwgZXZlbiBpZiBub3QgcG93ZXJFZmZpY2llbnQuCkBAIC0xNzUsOSArMTg0
LDggQEAgc3RhdGljIGJvb2wgaXNWUDlDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmRTdXBwb3J0ZWQo
VlBDb2RlY0NvbmZpZ3VyYXRpb25SZWNvcmQmIGMKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAg
ICBib29sIGhhczRrU2NyZWVuID0gZmFsc2U7Ci0KLSAgICBpZiAoc2NyZWVuU2l6ZUFuZFNjYWxl
Rm9yVGVzdGluZykgewotICAgICAgICBhdXRvIHNjcmVlblNpemUgPSBGbG9hdFNpemUoc2NyZWVu
U2l6ZUFuZFNjYWxlRm9yVGVzdGluZy0+d2lkdGgsIHNjcmVlblNpemVBbmRTY2FsZUZvclRlc3Rp
bmctPmhlaWdodCkuc2NhbGVkKHNjcmVlblNpemVBbmRTY2FsZUZvclRlc3RpbmctPnNjYWxlKTsK
KyAgICBpZiAoYXV0byBvdmVycmlkZUZvclRlc3RpbmcgPSBWUDlUZXN0aW5nT3ZlcnJpZGVzOjpz
aW5nbGV0b24oKS52cDlTY3JlZW5TaXplQW5kU2NhbGUoKSkgeworICAgICAgICBhdXRvIHNjcmVl
blNpemUgPSBGbG9hdFNpemUob3ZlcnJpZGVGb3JUZXN0aW5nLT53aWR0aCwgb3ZlcnJpZGVGb3JU
ZXN0aW5nLT5oZWlnaHQpLnNjYWxlZChvdmVycmlkZUZvclRlc3RpbmctPnNjYWxlKTsKICAgICAg
ICAgaGFzNGtTY3JlZW4gPSByZXNvbHV0aW9uQ2F0ZWdvcnkoc2NyZWVuU2l6ZSkgPj0gUmVzb2x1
dGlvbkNhdGVnb3J5OjpSXzRLOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGZvciAoYXV0byYgc2Ny
ZWVuRGF0YSA6IGdldFNjcmVlblByb3BlcnRpZXMoKS5zY3JlZW5EYXRhTWFwLnZhbHVlcygpKSB7
CkBAIC0yNDMsNyArMjUxLDcgQEAgYm9vbCB2YWxpZGF0ZVZQUGFyYW1ldGVycyhWUENvZGVjQ29u
ZmlndXJhdGlvblJlY29yZCYgY29kZWNDb25maWd1cmF0aW9uLCBNZWRpYUMKICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICBpZiAoY2FuTG9hZF9WaWRlb1Rvb2xib3hfVlRJ
c0hhcmR3YXJlRGVjb2RlU3VwcG9ydGVkKCkgJiYgVlRJc0hhcmR3YXJlRGVjb2RlU3VwcG9ydGVk
KGtDTVZpZGVvQ29kZWNUeXBlX1ZQOSkgJiYgIWhhcmR3YXJlVlA5RGVjb2RlckRpc2FibGVkRm9y
VGVzdGluZykgeworICAgIGlmICh2cDlIYXJkd2FyZURlY29kZXJBdmFpbGFibGUoKSkgewogICAg
ICAgICAvLyBIVyBWUDkgRGVjb2RlciBkb2VzIG5vdCBzdXBwb3J0IGFscGhhIGNoYW5uZWw6CiAg
ICAgICAgIGlmICh2aWRlb0NvbmZpZ3VyYXRpb24uYWxwaGFDaGFubmVsICYmICp2aWRlb0NvbmZp
Z3VyYXRpb24uYWxwaGFDaGFubmVsKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMjky
LDggKzMwMCw4IEBAIGJvb2wgdmFsaWRhdGVWUFBhcmFtZXRlcnMoVlBDb2RlY0NvbmZpZ3VyYXRp
b25SZWNvcmQmIGNvZGVjQ29uZmlndXJhdGlvbiwgTWVkaWFDCiAKICAgICBib29sIGhhczRrU2Ny
ZWVuID0gZmFsc2U7CiAKLSAgICBpZiAoc2NyZWVuU2l6ZUFuZFNjYWxlRm9yVGVzdGluZykgewot
ICAgICAgICBhdXRvIHNjcmVlblNpemUgPSBGbG9hdFNpemUoc2NyZWVuU2l6ZUFuZFNjYWxlRm9y
VGVzdGluZy0+d2lkdGgsIHNjcmVlblNpemVBbmRTY2FsZUZvclRlc3RpbmctPmhlaWdodCkuc2Nh
bGVkKHNjcmVlblNpemVBbmRTY2FsZUZvclRlc3RpbmctPnNjYWxlKTsKKyAgICBpZiAoYXV0byBv
dmVycmlkZUZvclRlc3RpbmcgPSBWUDlUZXN0aW5nT3ZlcnJpZGVzOjpzaW5nbGV0b24oKS52cDlT
Y3JlZW5TaXplQW5kU2NhbGUoKSkgeworICAgICAgICBhdXRvIHNjcmVlblNpemUgPSBGbG9hdFNp
emUob3ZlcnJpZGVGb3JUZXN0aW5nLT53aWR0aCwgb3ZlcnJpZGVGb3JUZXN0aW5nLT5oZWlnaHQp
LnNjYWxlZChvdmVycmlkZUZvclRlc3RpbmctPnNjYWxlKTsKICAgICAgICAgaGFzNGtTY3JlZW4g
PSByZXNvbHV0aW9uQ2F0ZWdvcnkoc2NyZWVuU2l6ZSkgPj0gUmVzb2x1dGlvbkNhdGVnb3J5OjpS
XzRLOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGZvciAoYXV0byYgc2NyZWVuRGF0YSA6IGdldFNj
cmVlblByb3BlcnRpZXMoKS5zY3JlZW5EYXRhTWFwLnZhbHVlcygpKSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAKaW5kZXggNjFlYTlhMTViYTljZDE5MzNkODNlNTUyN2Q5OTdlNzQ2
NjVmMmUxMC4uNjY5NTQ4NjBlNDEyY2ViNDlkNDkwMzdiNDMwNzNlYjlmYjIwNTYwZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtNjI3LDEzICs2MjcsMTMgQEAgSW50ZXJu
YWxzOjpJbnRlcm5hbHMoRG9jdW1lbnQmIGRvY3VtZW50KQogI2VuZGlmCiAKICNpZiBQTEFURk9S
TShDT0NPQSkKLSAgICBzZXRPdmVycmlkZVN5c3RlbUhhc0JhdHRlcnlGb3JUZXN0aW5nKFdURjo6
bnVsbG9wdCk7Ci0gICAgc2V0T3ZlcnJpZGVTeXN0ZW1IYXNBQ0ZvclRlc3RpbmcoV1RGOjpudWxs
b3B0KTsKKyAgICBTeXN0ZW1CYXR0ZXJ5U3RhdHVzVGVzdGluZ092ZXJyaWRlczo6c2luZ2xldG9u
KCkuc2V0SGFzQUMoV1RGOjpudWxsb3B0KTsKKyAgICBTeXN0ZW1CYXR0ZXJ5U3RhdHVzVGVzdGlu
Z092ZXJyaWRlczo6c2luZ2xldG9uKCkuc2V0SGFzQmF0dGVyeShXVEY6Om51bGxvcHQpOwogI2Vu
ZGlmCiAKICNpZiBFTkFCTEUoVlA5KSAmJiBQTEFURk9STShDT0NPQSkKLSAgICBzZXRPdmVycmlk
ZVZQOUhhcmR3YXJlRGVjb2RlckRpc2FibGVkRm9yVGVzdGluZyhmYWxzZSk7Ci0gICAgcmVzZXRP
dmVycmlkZVZQOVNjcmVlblNpemVBbmRTY2FsZUZvclRlc3RpbmcoKTsKKyAgICBWUDlUZXN0aW5n
T3ZlcnJpZGVzOjpzaW5nbGV0b24oKS5zZXRIYXJkd2FyZURlY29kZXJEaXNhYmxlZChXVEY6Om51
bGxvcHQpOworICAgIFZQOVRlc3RpbmdPdmVycmlkZXM6OnNpbmdsZXRvbigpLnNldFZQOVNjcmVl
blNpemVBbmRTY2FsZShXVEY6Om51bGxvcHQpOwogI2VuZGlmCiB9CiAKQEAgLTU4NDIsNyArNTg0
Miw3IEBAIGJvb2wgSW50ZXJuYWxzOjpzeXN0ZW1IYXNCYXR0ZXJ5KCkgY29uc3QKIHZvaWQgSW50
ZXJuYWxzOjpzZXRTeXN0ZW1IYXNCYXR0ZXJ5Rm9yVGVzdGluZyhib29sIGhhc0JhdHRlcnkpCiB7
CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgV2ViQ29yZTo6c2V0T3ZlcnJpZGVTeXN0ZW1IYXNC
YXR0ZXJ5Rm9yVGVzdGluZyhoYXNCYXR0ZXJ5KTsKKyAgICBTeXN0ZW1CYXR0ZXJ5U3RhdHVzVGVz
dGluZ092ZXJyaWRlczo6c2luZ2xldG9uKCkuc2V0SGFzQmF0dGVyeShoYXNCYXR0ZXJ5KTsKICNl
bHNlCiAgICAgVU5VU0VEX1BBUkFNKGhhc0JhdHRlcnkpOwogI2VuZGlmCkBAIC01ODUxLDcgKzU4
NTEsNyBAQCB2b2lkIEludGVybmFsczo6c2V0U3lzdGVtSGFzQmF0dGVyeUZvclRlc3RpbmcoYm9v
bCBoYXNCYXR0ZXJ5KQogdm9pZCBJbnRlcm5hbHM6OnNldFN5c3RlbUhhc0FDRm9yVGVzdGluZyhi
b29sIGhhc0FDKQogewogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIFdlYkNvcmU6OnNldE92ZXJy
aWRlU3lzdGVtSGFzQUNGb3JUZXN0aW5nKGhhc0FDKTsKKyAgICBTeXN0ZW1CYXR0ZXJ5U3RhdHVz
VGVzdGluZ092ZXJyaWRlczo6c2luZ2xldG9uKCkuc2V0SGFzQUMoaGFzQUMpOwogI2Vsc2UKICAg
ICBVTlVTRURfUEFSQU0oaGFzQUMpOwogI2VuZGlmCkBAIC01ODYwLDcgKzU4NjAsNyBAQCB2b2lk
IEludGVybmFsczo6c2V0U3lzdGVtSGFzQUNGb3JUZXN0aW5nKGJvb2wgaGFzQUMpCiB2b2lkIElu
dGVybmFsczo6c2V0SGFyZHdhcmVWUDlEZWNvZGVyRGlzYWJsZWRGb3JUZXN0aW5nKGJvb2wgZGlz
YWJsZWQpCiB7CiAjaWYgRU5BQkxFKFZQOSkgJiYgUExBVEZPUk0oQ09DT0EpCi0gICAgV2ViQ29y
ZTo6c2V0T3ZlcnJpZGVWUDlIYXJkd2FyZURlY29kZXJEaXNhYmxlZEZvclRlc3RpbmcoZGlzYWJs
ZWQpOworICAgIFZQOVRlc3RpbmdPdmVycmlkZXM6OnNpbmdsZXRvbigpLnNldEhhcmR3YXJlRGVj
b2RlckRpc2FibGVkKGRpc2FibGVkKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGRpc2FibGVk
KTsKICNlbmRpZgpAQCAtNTg2OSw3ICs1ODY5LDcgQEAgdm9pZCBJbnRlcm5hbHM6OnNldEhhcmR3
YXJlVlA5RGVjb2RlckRpc2FibGVkRm9yVGVzdGluZyhib29sIGRpc2FibGVkKQogdm9pZCBJbnRl
cm5hbHM6OnNldFZQOVNjcmVlblNpemVBbmRTY2FsZUZvclRlc3RpbmcoZG91YmxlIHdpZHRoLCBk
b3VibGUgaGVpZ2h0LCBkb3VibGUgc2NhbGUpCiB7CiAjaWYgRU5BQkxFKFZQOSkgJiYgUExBVEZP
Uk0oQ09DT0EpCi0gICAgV2ViQ29yZTo6c2V0T3ZlcnJpZGVWUDlTY3JlZW5TaXplQW5kU2NhbGVG
b3JUZXN0aW5nKHdpZHRoLCBoZWlnaHQsIHNjYWxlKTsKKyAgICBWUDlUZXN0aW5nT3ZlcnJpZGVz
OjpzaW5nbGV0b24oKS5zZXRWUDlTY3JlZW5TaXplQW5kU2NhbGUobWFrZU9wdGlvbmFsPFNjcmVl
bkRhdGFPdmVycmlkZXM+KHsgd2lkdGgsIGhlaWdodCwgc2NhbGUgfSkpOwogI2Vsc2UKICAgICBV
TlVTRURfUEFSQU0od2lkdGgpOwogICAgIFVOVVNFRF9QQVJBTShoZWlnaHQpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3Bw
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3Bw
CmluZGV4IGNlNjAyYjE2ZDA3NTAwNmNhMzI2MDUyZDlhMDE5ZmYyNzNjMTQ2ZGYuLmMzOTlkNmJm
YzJjZjg0M2IwYzRlZDMzN2U0NzUxMGY4OWFjOGJjYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxOS0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzgsNiArMzgs
NyBAQAogI2luY2x1ZGUgIkxpYldlYlJUQ0NvZGVjc1Byb3h5LmgiCiAjaW5jbHVkZSAiTGliV2Vi
UlRDQ29kZWNzUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRl
ICJNZWRpYU92ZXJyaWRlc0ZvclRlc3RpbmcuaCIKICNpbmNsdWRlICJSZW1vdGVBdWRpb0hhcmR3
YXJlTGlzdGVuZXJQcm94eS5oIgogI2luY2x1ZGUgIlJlbW90ZUF1ZGlvTWVkaWFTdHJlYW1UcmFj
a1JlbmRlcmVyTWFuYWdlci5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclBy
b3h5LmgiCkBAIC0xMTksNiArMTIwLDE0IEBACiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFFbmdpbmVD
b25maWd1cmF0aW9uRmFjdG9yeVByb3h5TWVzc2FnZXMuaCIKICNlbmRpZgogCisjaWYgUExBVEZP
Uk0oQ09DT0EpCisjaW5jbHVkZSA8V2ViQ29yZS9TeXN0ZW1CYXR0ZXJ5Lmg+CisjZW5kaWYKKwor
I2lmIEVOQUJMRShWUDkpICYmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUgPFdlYkNvcmUvVlA5
VXRpbGl0aWVzQ29jb2EuaD4KKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogCkBAIC00MzgsNiArNDQ3LDE5IEBAIHZvaWQgR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6cmVsZWFzZVJlbW90ZUNvbW1hbmRMaXN0ZW5lcihSZW1vdGVSZW1vdGVD
b21tYW5kCiAgICAgQVNTRVJUX1VOVVNFRChmb3VuZCwgZm91bmQpOwogfQogCit2b2lkIEdQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnNldE1lZGlhT3ZlcnJpZGVzRm9yVGVzdGluZyhNZWRpYU92
ZXJyaWRlc0ZvclRlc3Rpbmcgb3ZlcnJpZGVzKQoreworI2lmIEVOQUJMRShWUDkpICYmIFBMQVRG
T1JNKENPQ09BKQorICAgIFZQOVRlc3RpbmdPdmVycmlkZXM6OnNpbmdsZXRvbigpLnNldEhhcmR3
YXJlRGVjb2RlckRpc2FibGVkKFdURk1vdmUob3ZlcnJpZGVzLnZwOUhhcmR3YXJlRGVjb2RlckRp
c2FibGVkKSk7CisgICAgVlA5VGVzdGluZ092ZXJyaWRlczo6c2luZ2xldG9uKCkuc2V0VlA5U2Ny
ZWVuU2l6ZUFuZFNjYWxlKFdURk1vdmUob3ZlcnJpZGVzLnZwOVNjcmVlblNpemVBbmRTY2FsZSkp
OworI2VuZGlmCisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBTeXN0ZW1CYXR0ZXJ5U3RhdHVz
VGVzdGluZ092ZXJyaWRlczo6c2luZ2xldG9uKCkuc2V0SGFzQUMoV1RGTW92ZShvdmVycmlkZXMu
c3lzdGVtSGFzQUMpKTsKKyAgICBTeXN0ZW1CYXR0ZXJ5U3RhdHVzVGVzdGluZ092ZXJyaWRlczo6
c2luZ2xldG9uKCkuc2V0SGFzQmF0dGVyeShXVEZNb3ZlKG92ZXJyaWRlcy5zeXN0ZW1IYXNCYXR0
ZXJ5KSk7CisjZW5kaWYKK30KKwogYm9vbCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaXNw
YXRjaE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRl
Y29kZXIpCiB7CiAjaWYgRU5BQkxFKFdFQl9BVURJTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4IDdiODFjMTMzNWI3
NTVlNmEzZWY1MjgxZDczZWZjNTRmZDRkZDgyOTYuLjJhZmJlYWE0ZGJiODMyYjA2MmIzNDQ4ZjZk
ZTQ5OWY4ZWMxZmEzMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDE5LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC03MSw2ICs3MSw3IEBAIGNsYXNzIFJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMOwogY2xhc3MgUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdl
cjsKIGNsYXNzIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk7CiBzdHJ1Y3QgR1BVUHJvY2Vz
c0Nvbm5lY3Rpb25QYXJhbWV0ZXJzOworc3RydWN0IE1lZGlhT3ZlcnJpZGVzRm9yVGVzdGluZzsK
IHN0cnVjdCBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uOwogCiBjbGFzcyBHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzCkBAIC0xNzEsNiArMTcyLDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IHJlbGVhc2VBdWRpb0hhcmR3YXJlTGlzdGVuZXIoUmVtb3RlQXVkaW9IYXJkd2FyZUxpc3RlbmVy
SWRlbnRpZmllcik7CiAgICAgdm9pZCBjcmVhdGVSZW1vdGVDb21tYW5kTGlzdGVuZXIoUmVtb3Rl
UmVtb3RlQ29tbWFuZExpc3RlbmVySWRlbnRpZmllcik7CiAgICAgdm9pZCByZWxlYXNlUmVtb3Rl
Q29tbWFuZExpc3RlbmVyKFJlbW90ZVJlbW90ZUNvbW1hbmRMaXN0ZW5lcklkZW50aWZpZXIpOwor
ICAgIHZvaWQgc2V0TWVkaWFPdmVycmlkZXNGb3JUZXN0aW5nKE1lZGlhT3ZlcnJpZGVzRm9yVGVz
dGluZyk7CiAKICAgICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudAogICAgIHZvaWQgZGlkQ2xv
c2UoSVBDOjpDb25uZWN0aW9uJikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCmlu
ZGV4IGEzNDEyOWZkMWQzMDU3YzM4YzZjNGJjM2UyYTY4M2Y5ZDU2MDFjYzYuLmRjYzA0ZmU2MzZm
N2ZhYWIzZmNhYzhhNTc5OTIyNjhkNTRjZWY3NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2Vz
LmluCkBAIC0xLDQgKzEsNCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTktMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQwLDYg
KzQwLDcgQEAgbWVzc2FnZXMgLT4gR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyBXYW50c0Rpc3Bh
dGNoTWVzc2FnZSB7CiAjaWYgRU5BQkxFKFZQOSkKICAgICBFbmFibGVWUDlEZWNvZGVycyhib29s
IHNob3VsZEVuYWJsZVZQOERlY29kZXIsIGJvb2wgc2hvdWxkRW5hYmxlVlA5RGVjb2RlciwgYm9v
bCBzaG91bGRFbmFibGVWUDlTV0RlY29kZXIpCiAjZW5kaWYKKyAgICBTZXRNZWRpYU92ZXJyaWRl
c0ZvclRlc3Rpbmcoc3RydWN0IFdlYktpdDo6TWVkaWFPdmVycmlkZXNGb3JUZXN0aW5nIGNvbmZp
Z3VyYXRpb24pCiAgICAgQ3JlYXRlQXVkaW9IYXJkd2FyZUxpc3RlbmVyKFdlYktpdDo6UmVtb3Rl
QXVkaW9IYXJkd2FyZUxpc3RlbmVySWRlbnRpZmllciBpZGVudGlmaWVyKQogICAgIFJlbGVhc2VB
dWRpb0hhcmR3YXJlTGlzdGVuZXIoV2ViS2l0OjpSZW1vdGVBdWRpb0hhcmR3YXJlTGlzdGVuZXJJ
ZGVudGlmaWVyIGlkZW50aWZpZXIpCiAgICAgQ3JlYXRlUmVtb3RlQ29tbWFuZExpc3RlbmVyKFdl
YktpdDo6UmVtb3RlUmVtb3RlQ29tbWFuZExpc3RlbmVySWRlbnRpZmllciBpZGVudGlmaWVyKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
OGJkYjAwMWE4YTg1ZTYzMDYzNjc5ZjQ4ZDgyYzIzNzFlMzM4N2U3OC4uZmUwZDhhZDZhNTM3Nzgy
ODJkZDVjM2RhM2Q3YjFmOTAyNTJlZTVjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMzc2LDYgKzIzNzYsNyBAQAogCQkwNzI5N0Y5
RDFDMTdCQkVBMjIzRjA3MzUgLyogRGV2aWNlSWRIYXNoU2FsdFN0b3JhZ2UuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGV2aWNlSWRIYXNoU2FsdFN0b3JhZ2UuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDcyOTdGQTAxQzE4NkFEQjAwM0YwNzM1IC8qIFdLVXNl
ck1lZGlhUGVybWlzc2lvbkNoZWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFdLVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMDcyOTdGQTExQzE4NkFEQjAwM0YwNzM1IC8qIFdLVXNlck1lZGlhUGVybWlz
c2lvbkNoZWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLVXNlck1lZGlh
UGVybWlzc2lvbkNoZWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3NDQ3MjA1
MjVFNUJEMDIwMDU0QjIzMSAvKiBNZWRpYU92ZXJyaWRlc0ZvclRlc3RpbmcuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTWVkaWFPdmVycmlkZXNGb3JUZXN0aW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTA3NDg3OUI3MjM3M0E5MDkwMEY1Njc4RSAvKiBBcHBLaXRTb2Z0TGluay5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBBcHBLaXRTb2Z0TGluay5oOyBwYXRoID0gaW9zL0FwcEtpdFNvZnRMaW5rLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3NDg3OUI4MjM3M0E5MDkwMEY1Njc4RSAv
KiBBcHBLaXRTb2Z0TGluay5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IEFwcEtpdFNvZnRMaW5r
Lm1tOyBwYXRoID0gaW9zL0FwcEtpdFNvZnRMaW5rLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwNzRFNzVGQjFERjFGRDEzMDBEMzE4RUMgLyogVXNlck1lZGlhUHJvY2Vzc01hbmFn
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVXNlck1lZGlhUHJvY2Vzc01h
bmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTYwMjIsNiArNjAyMyw3IEBA
CiAJCQkJQ0RBOTU5MzkyNDEyQjE3NTAwOTEwRUVGIC8qIGlvcyAqLywKIAkJCQkwNzFCQzU3OTIz
QzkzQkI5MDA2ODBEN0MgLyogQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwICovLAogCQkJCTA3
MUJDNTc3MjNDOTNCQjcwMDY4MEQ3QyAvKiBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5oICovLAor
CQkJCTA3NDQ3MjA1MjVFNUJEMDIwMDU0QjIzMSAvKiBNZWRpYU92ZXJyaWRlc0ZvclRlc3Rpbmcu
aCAqLywKIAkJCQkwNzkyMzEzMTIzOUIzQjBDMDA5NTk4RTIgLyogTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlLmNwcCAqLywKIAkJCQkwNzkyMzEzMjIzOUIzQjBDMDA5NTk4RTIgLyogTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlLmggKi8sCiAJCQkJMDdCMUQwNEIyM0QzOEZDRTAwMzk5QTZFIC8qIE1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5tZXNzYWdlcy5pbiAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHAKaW5kZXggNmRl
MWRkYzBhYzFiMzAzMTJlNDU3N2Y2ZjNlNTlmOTBjMmRkMjVlMS4uNDc4NWU3ZmY0NTdkYjI5YWE2
Mzc1M2MzYWE0ZjY1NWViMmM0Yjk4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxOS0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1
ZGUgIkxpYldlYlJUQ0NvZGVjcy5oIgogI2luY2x1ZGUgIkxpYldlYlJUQ0NvZGVjc01lc3NhZ2Vz
LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIk1lZGlhT3ZlcnJpZGVzRm9yVGVz
dGluZy5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzLmgiCiAj
aW5jbHVkZSAiTWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlTWVzc2FnZXMuaCIKICNpbmNsdWRlICJS
ZW1vdGVBdWRpb0hhcmR3YXJlTGlzdGVuZXJNZXNzYWdlcy5oIgpAQCAtNzYsNiArNzcsMTQgQEAK
ICNpbmNsdWRlICJSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5TWVzc2FnZXMuaCIKICNlbmRp
ZgogCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSA8V2ViQ29yZS9TeXN0ZW1CYXR0ZXJ5
Lmg+CisjZW5kaWYKKworI2lmIEVOQUJMRShWUDkpICYmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1
ZGUgPFdlYkNvcmUvVlA5VXRpbGl0aWVzQ29jb2EuaD4KKyNlbmRpZgorCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC0yNDIsNiArMjUxLDM2IEBAIHZv
aWQgR1BVUHJvY2Vzc0Nvbm5lY3Rpb246OnVwZGF0ZVBhcmFtZXRlcnMoY29uc3QgV2ViUGFnZUNy
ZWF0aW9uUGFyYW1ldGVycyYgcGFyCiAjZW5kaWYKIH0KIAordm9pZCBHUFVQcm9jZXNzQ29ubmVj
dGlvbjo6dXBkYXRlTWVkaWFDb25maWd1cmF0aW9uKCkKK3sKKyNpZiBQTEFURk9STShDT0NPQSkK
KyAgICBib29sIHNldHRpbmdzQ2hhbmdlZCA9IGZhbHNlOworCisgICAgaWYgKG1fbWVkaWFPdmVy
cmlkZXNGb3JUZXN0aW5nLnN5c3RlbUhhc0FDICE9IFN5c3RlbUJhdHRlcnlTdGF0dXNUZXN0aW5n
T3ZlcnJpZGVzOjpzaW5nbGV0b24oKS5oYXNBQygpIHx8IG1fbWVkaWFPdmVycmlkZXNGb3JUZXN0
aW5nLnN5c3RlbUhhc0JhdHRlcnkgIT0gU3lzdGVtQmF0dGVyeVN0YXR1c1Rlc3RpbmdPdmVycmlk
ZXM6OnNpbmdsZXRvbigpLmhhc0JhdHRlcnkoKSkKKyAgICAgICAgc2V0dGluZ3NDaGFuZ2VkID0g
dHJ1ZTsKKworI2lmIEVOQUJMRShWUDkpCisgICAgaWYgKG1fbWVkaWFPdmVycmlkZXNGb3JUZXN0
aW5nLnZwOUhhcmR3YXJlRGVjb2RlckRpc2FibGVkICE9IFZQOVRlc3RpbmdPdmVycmlkZXM6OnNp
bmdsZXRvbigpLmhhcmR3YXJlRGVjb2RlckRpc2FibGVkKCkgfHwgbV9tZWRpYU92ZXJyaWRlc0Zv
clRlc3RpbmcudnA5U2NyZWVuU2l6ZUFuZFNjYWxlICE9IFZQOVRlc3RpbmdPdmVycmlkZXM6OnNp
bmdsZXRvbigpLnZwOVNjcmVlblNpemVBbmRTY2FsZSgpKQorICAgICAgICBzZXR0aW5nc0NoYW5n
ZWQgPSB0cnVlOworI2VuZGlmCisKKyAgICBpZiAoIXNldHRpbmdzQ2hhbmdlZCkKKyAgICAgICAg
cmV0dXJuOworCisgICAgbV9tZWRpYU92ZXJyaWRlc0ZvclRlc3RpbmcgPSB7CisgICAgICAgIC5z
eXN0ZW1IYXNBQyA9IFN5c3RlbUJhdHRlcnlTdGF0dXNUZXN0aW5nT3ZlcnJpZGVzOjpzaW5nbGV0
b24oKS5oYXNBQygpLAorICAgICAgICAuc3lzdGVtSGFzQmF0dGVyeSA9IFN5c3RlbUJhdHRlcnlT
dGF0dXNUZXN0aW5nT3ZlcnJpZGVzOjpzaW5nbGV0b24oKS5oYXNCYXR0ZXJ5KCksCisKKyNpZiBF
TkFCTEUoVlA5KQorICAgICAgICAudnA5SGFyZHdhcmVEZWNvZGVyRGlzYWJsZWQgPSBWUDlUZXN0
aW5nT3ZlcnJpZGVzOjpzaW5nbGV0b24oKS5oYXJkd2FyZURlY29kZXJEaXNhYmxlZCgpLAorICAg
ICAgICAudnA5U2NyZWVuU2l6ZUFuZFNjYWxlID0gVlA5VGVzdGluZ092ZXJyaWRlczo6c2luZ2xl
dG9uKCkudnA5U2NyZWVuU2l6ZUFuZFNjYWxlKCksCisjZW5kaWYKKyAgICB9OworCisgICAgY29u
bmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlNldE1l
ZGlhT3ZlcnJpZGVzRm9yVGVzdGluZyhtX21lZGlhT3ZlcnJpZGVzRm9yVGVzdGluZyksIHsgfSk7
CisjZW5kaWYKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUo
R1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQ
VVByb2Nlc3NDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVBy
b2Nlc3NDb25uZWN0aW9uLmgKaW5kZXggMGI3YmY4YTk3MWY2NmFkYWI1MWRjNzM1NTFjOGEwMTNk
NzFlOTRmYy4uMDBjMGMyZjAwM2EzYTg5N2RlYzkyOTY4OTI5MWZiZmM1ZjM2ZDVlOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24u
aApAQCAtMjgsNiArMjgsNyBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAogI2luY2x1ZGUg
IkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJNZWRpYU92ZXJyaWRlc0ZvclRlc3RpbmcuaCIKICNp
bmNsdWRlICJNZXNzYWdlUmVjZWl2ZXJNYXAuaCIKICNpbmNsdWRlICJTYW1wbGVCdWZmZXJEaXNw
bGF5TGF5ZXJNYW5hZ2VyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybU1lZGlhU2Vzc2lv
bi5oPgpAQCAtNDMsNiArNDQsNyBAQCBjbGFzcyBSZW1vdGVDRE1GYWN0b3J5OwogY2xhc3MgUmVt
b3RlTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeTsKIGNsYXNzIFJlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlcjsKIGNsYXNzIFJlbW90ZUxlZ2FjeUNETUZhY3Rvcnk7CitzdHJ1Y3QgT3ZlcnJp
ZGVTY3JlZW5EYXRhRm9yVGVzdGluZzsKIHN0cnVjdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJz
OwogCiBjbGFzcyBHUFVQcm9jZXNzQ29ubmVjdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPEdQVVBy
b2Nlc3NDb25uZWN0aW9uPiwgcHVibGljIENhbk1ha2VXZWFrUHRyPEdQVVByb2Nlc3NDb25uZWN0
aW9uPiwgSVBDOjpDb25uZWN0aW9uOjpDbGllbnQgewpAQCAtODEsNiArODMsNyBAQCBwdWJsaWM6
CiAgICAgUmVtb3RlTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeSYgbWVkaWFFbmdpbmVD
b25maWd1cmF0aW9uRmFjdG9yeSgpOwogCiAgICAgdm9pZCB1cGRhdGVQYXJhbWV0ZXJzKGNvbnN0
IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmKTsKKyAgICB2b2lkIHVwZGF0ZU1lZGlhQ29uZmln
dXJhdGlvbigpOwogCiAjaWYgRU5BQkxFKFZQOSkKICAgICBib29sIGlzVlA4RGVjb2RlckVuYWJs
ZWQoKSBjb25zdCB7IHJldHVybiBtX2VuYWJsZVZQOERlY29kZXI7IH0KQEAgLTEyOSw2ICsxMzIs
MTEgQEAgcHJpdmF0ZToKICAgICBib29sIG1fZW5hYmxlVlA5RGVjb2RlciB7IGZhbHNlIH07CiAg
ICAgYm9vbCBtX2VuYWJsZVZQOVNXRGVjb2RlciB7IGZhbHNlIH07CiAjZW5kaWYKKworI2lmIFBM
QVRGT1JNKENPQ09BKQorICAgIE1lZGlhT3ZlcnJpZGVzRm9yVGVzdGluZyBtX21lZGlhT3ZlcnJp
ZGVzRm9yVGVzdGluZzsKKyNlbmRpZgorCiAgICAgV2Vha0hhc2hTZXQ8Q2xpZW50PiBtX2NsaWVu
dHM7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L01lZGlhT3ZlcnJpZGVzRm9yVGVzdGluZy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9NZWRpYU92ZXJyaWRlc0ZvclRlc3RpbmcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMzFmOWRhN2M5
NzM5NjNjMzRiMmVhM2UyOWUxYWNkNmM2ZGZlMTkwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYU92ZXJyaWRlc0ZvclRlc3RpbmcuaApA
QCAtMCwwICsxLDg0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUo
R1BVX1BST0NFU1MpCisKKyNpbmNsdWRlIDxXZWJDb3JlL1ZQOVV0aWxpdGllcy5oPgorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworc3RydWN0IE1lZGlhT3ZlcnJpZGVzRm9yVGVzdGluZyB7CisgICAg
T3B0aW9uYWw8Ym9vbD4gc3lzdGVtSGFzQUM7CisgICAgT3B0aW9uYWw8Ym9vbD4gc3lzdGVtSGFz
QmF0dGVyeTsKKworICAgIE9wdGlvbmFsPGJvb2w+IHZwOUhhcmR3YXJlRGVjb2RlckRpc2FibGVk
OworICAgIE9wdGlvbmFsPFdlYkNvcmU6OlNjcmVlbkRhdGFPdmVycmlkZXM+IHZwOVNjcmVlblNp
emVBbmRTY2FsZTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CisgICAgdm9pZCBlbmNv
ZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIgPDwgc3lz
dGVtSGFzQUM7CisgICAgICAgIGVuY29kZXIgPDwgc3lzdGVtSGFzQmF0dGVyeTsKKyAgICAgICAg
ZW5jb2RlciA8PCB2cDlIYXJkd2FyZURlY29kZXJEaXNhYmxlZDsKKyAgICAgICAgZW5jb2RlciA8
PCB2cDlTY3JlZW5TaXplQW5kU2NhbGU7CisgICAgfQorCisgICAgdGVtcGxhdGUgPGNsYXNzIERl
Y29kZXI+CisgICAgc3RhdGljIE9wdGlvbmFsPE1lZGlhT3ZlcnJpZGVzRm9yVGVzdGluZz4gZGVj
b2RlKERlY29kZXImIGRlY29kZXIpCisgICAgeworICAgICAgICBPcHRpb25hbDxPcHRpb25hbDxi
b29sPj4gc3lzdGVtSGFzQUM7CisgICAgICAgIGRlY29kZXIgPj4gc3lzdGVtSGFzQUM7CisgICAg
ICAgIGlmICghc3lzdGVtSGFzQUMpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owor
CisgICAgICAgIE9wdGlvbmFsPE9wdGlvbmFsPGJvb2w+PiBzeXN0ZW1IYXNCYXR0ZXJ5OworICAg
ICAgICBkZWNvZGVyID4+IHN5c3RlbUhhc0JhdHRlcnk7CisgICAgICAgIGlmICghc3lzdGVtSGFz
QmF0dGVyeSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgT3B0
aW9uYWw8T3B0aW9uYWw8Ym9vbD4+IHZwOUhhcmR3YXJlRGVjb2RlckRpc2FibGVkOworICAgICAg
ICBkZWNvZGVyID4+IHZwOUhhcmR3YXJlRGVjb2RlckRpc2FibGVkOworICAgICAgICBpZiAoIXZw
OUhhcmR3YXJlRGVjb2RlckRpc2FibGVkKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKKworICAgICAgICBPcHRpb25hbDxPcHRpb25hbDxXZWJDb3JlOjpTY3JlZW5EYXRhT3ZlcnJp
ZGVzPj4gdnA5U2NyZWVuU2l6ZUFuZFNjYWxlOworICAgICAgICBkZWNvZGVyID4+IHZwOVNjcmVl
blNpemVBbmRTY2FsZTsKKyAgICAgICAgaWYgKCF2cDlTY3JlZW5TaXplQW5kU2NhbGUpCisgICAg
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiB7eworICAgICAg
ICAgICAgKnN5c3RlbUhhc0FDLAorICAgICAgICAgICAgKnN5c3RlbUhhc0JhdHRlcnksCisgICAg
ICAgICAgICAqdnA5SGFyZHdhcmVEZWNvZGVyRGlzYWJsZWQsCisgICAgICAgICAgICAqdnA5U2Ny
ZWVuU2l6ZUFuZFNjYWxlLAorICAgICAgICB9fTsKKyAgICB9Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL1JlbW90ZU1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnkuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYUVuZ2luZUNvbmZpZ3Vy
YXRpb25GYWN0b3J5LmNwcAppbmRleCA1NzBkMDIyYzYyZjVhZDM1ODUyM2RmZTdiN2U2MGJlNjZm
NWFiYzMxLi5lZjU3MGNiMWU4ZTlhODY1MTBhNTYyNWFhMGE2NzQ4ZjBkZjI5MDZjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhRW5naW5l
Q29uZmlndXJhdGlvbkZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeS5jcHAKQEAgLTUw
LDI0ICs1MCwzMCBAQCBSZW1vdGVNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5Ojp+UmVt
b3RlTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeSgpCiB2b2lkIFJlbW90ZU1lZGlhRW5n
aW5lQ29uZmlndXJhdGlvbkZhY3Rvcnk6OnJlZ2lzdGVyRmFjdG9yeSgpCiB7CiAgICAgTWVkaWFF
bmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeTo6Y2xlYXJGYWN0b3JpZXMoKTsKLSAgICBNZWRpYUVu
Z2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5OjppbnN0YWxsRmFjdG9yeSh7Ci0gICAgICAgIFt3ZWFr
VGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpXSAoTWVkaWFEZWNvZGluZ0NvbmZpZ3VyYXRpb24mJiBj
b25maWd1cmF0aW9uLCBNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5OjpEZWNvZGluZ0Nv
bmZpZ3VyYXRpb25DYWxsYmFjayYmIGNhbGxiYWNrKSB7Ci0gICAgICAgICAgICBpZiAoIXdlYWtU
aGlzKSB7Ci0gICAgICAgICAgICAgICAgY2FsbGJhY2soe3sgfSwgV1RGTW92ZShjb25maWd1cmF0
aW9uKX0pOwotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLQotICAgICAg
ICAgICAgd2Vha1RoaXMtPmNyZWF0ZURlY29kaW5nQ29uZmlndXJhdGlvbihXVEZNb3ZlKGNvbmZp
Z3VyYXRpb24pLCBXVEZNb3ZlKGNhbGxiYWNrKSk7Ci0gICAgICAgIH0sCi0gICAgICAgIFt3ZWFr
VGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpXSAoTWVkaWFFbmNvZGluZ0NvbmZpZ3VyYXRpb24mJiBj
b25maWd1cmF0aW9uLCBNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5OjpFbmNvZGluZ0Nv
bmZpZ3VyYXRpb25DYWxsYmFjayYmIGNhbGxiYWNrKSB7Ci0gICAgICAgICAgICBpZiAoIXdlYWtU
aGlzKSB7Ci0gICAgICAgICAgICAgICAgY2FsbGJhY2soe3sgfSwgV1RGTW92ZShjb25maWd1cmF0
aW9uKX0pOwotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLQotICAgICAg
ICAgICAgd2Vha1RoaXMtPmNyZWF0ZUVuY29kaW5nQ29uZmlndXJhdGlvbihXVEZNb3ZlKGNvbmZp
Z3VyYXRpb24pLCBXVEZNb3ZlKGNhbGxiYWNrKSk7Ci0gICAgICAgIH0sCi0gICAgfSk7CisKKyAg
ICBhdXRvIGNyZWF0ZURlY29kaW5nQ29uZmlndXJhdGlvbiA9IFt3ZWFrVGhpcyA9IG1ha2VXZWFr
UHRyKHRoaXMpXSAoTWVkaWFEZWNvZGluZ0NvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uLCBN
ZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5OjpEZWNvZGluZ0NvbmZpZ3VyYXRpb25DYWxs
YmFjayYmIGNhbGxiYWNrKSB7CisgICAgICAgIGlmICghd2Vha1RoaXMpIHsKKyAgICAgICAgICAg
IGNhbGxiYWNrKHt7IH0sIFdURk1vdmUoY29uZmlndXJhdGlvbil9KTsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHdlYWtUaGlzLT5jcmVhdGVEZWNvZGluZ0NvbmZp
Z3VyYXRpb24oV1RGTW92ZShjb25maWd1cmF0aW9uKSwgV1RGTW92ZShjYWxsYmFjaykpOworICAg
IH07CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25G
YWN0b3J5OjpDcmVhdGVFbmNvZGluZ0NvbmZpZ3VyYXRpb24gY3JlYXRlRW5jb2RpbmdDb25maWd1
cmF0aW9uID0gbnVsbHB0cjsKKyNlbHNlCisgICAgYXV0byBjcmVhdGVFbmNvZGluZ0NvbmZpZ3Vy
YXRpb24gPSBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKV0gKE1lZGlhRW5jb2RpbmdDb25m
aWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbiwgTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9y
eTo6RW5jb2RpbmdDb25maWd1cmF0aW9uQ2FsbGJhY2smJiBjYWxsYmFjaykgeworICAgICAgICBp
ZiAoIXdlYWtUaGlzKSB7CisgICAgICAgICAgICBjYWxsYmFjayh7eyB9LCBXVEZNb3ZlKGNvbmZp
Z3VyYXRpb24pfSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICB3
ZWFrVGhpcy0+Y3JlYXRlRW5jb2RpbmdDb25maWd1cmF0aW9uKFdURk1vdmUoY29uZmlndXJhdGlv
biksIFdURk1vdmUoY2FsbGJhY2spKTsKKyAgICB9OworI2VuZGlmCisKKyAgICBNZWRpYUVuZ2lu
ZUNvbmZpZ3VyYXRpb25GYWN0b3J5OjppbnN0YWxsRmFjdG9yeSh7IFdURk1vdmUoY3JlYXRlRGVj
b2RpbmdDb25maWd1cmF0aW9uKSwgV1RGTW92ZShjcmVhdGVFbmNvZGluZ0NvbmZpZ3VyYXRpb24p
IH0pOwogfQogCiBjb25zdCBjaGFyKiBSZW1vdGVNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0
b3J5OjpzdXBwbGVtZW50TmFtZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5j
cHAKaW5kZXggMzAxYjg4NzdiMzU3ZDBkNjEzYTNhZDEwMGFhOTRmOWU4ZDc2ZjYyMi4uMzg1NGQ1
ZTQyZjExZTUwODk3OTAxYzFhNWNjZGM1NDk1NjRlNGQ1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtMjA4LDYgKzIwOCw3IEBACiAjZW5kaWYKIAogI2lmIFBM
QVRGT1JNKENPQ09BKQorI2luY2x1ZGUgPFdlYkNvcmUvU3lzdGVtQmF0dGVyeS5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvVlA5VXRpbGl0aWVzQ29jb2EuaD4KICNlbmRpZgogCkBAIC0xOTc1LDYgKzE5
NzYsMjQgQEAgdm9pZCBXZWJQcm9jZXNzOjpzZXRVc2VHUFVQcm9jZXNzRm9yTWVkaWEoYm9vbCB1
c2VHUFVQcm9jZXNzRm9yTWVkaWEpCiAgICAgICAgIFdlYkNvcmU6OlJlbW90ZUNvbW1hbmRMaXN0
ZW5lcjo6c2V0Q3JlYXRpb25GdW5jdGlvbihbdGhpc10gKFdlYkNvcmU6OlJlbW90ZUNvbW1hbmRM
aXN0ZW5lckNsaWVudCYgY2xpZW50KSB7IHJldHVybiBSZW1vdGVSZW1vdGVDb21tYW5kTGlzdGVu
ZXI6OmNyZWF0ZShjbGllbnQsICp0aGlzKTsgfSk7CiAgICAgZWxzZQogICAgICAgICBXZWJDb3Jl
OjpSZW1vdGVDb21tYW5kTGlzdGVuZXI6OnJlc2V0Q3JlYXRpb25GdW5jdGlvbigpOworCisjaWYg
UExBVEZPUk0oQ09DT0EpCisgICAgaWYgKHVzZUdQVVByb2Nlc3NGb3JNZWRpYSkgeworICAgICAg
ICBTeXN0ZW1CYXR0ZXJ5U3RhdHVzVGVzdGluZ092ZXJyaWRlczo6c2luZ2xldG9uKCkuc2V0Q29u
ZmlndXJhdGlvbkNoYW5nZWRDYWxsYmFjayhbdGhpc10gKCkgeworICAgICAgICAgICAgZW5zdXJl
R1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS51cGRhdGVNZWRpYUNvbmZpZ3VyYXRpb24oKTsKKyAgICAg
ICAgfSk7CisjaWYgRU5BQkxFKFZQOSkKKyAgICAgICAgVlA5VGVzdGluZ092ZXJyaWRlczo6c2lu
Z2xldG9uKCkuc2V0Q29uZmlndXJhdGlvbkNoYW5nZWRDYWxsYmFjayhbdGhpc10gKCkgeworICAg
ICAgICAgICAgZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS51cGRhdGVNZWRpYUNvbmZpZ3Vy
YXRpb24oKTsKKyAgICAgICAgfSk7CisjZW5kaWYKKyAgICB9IGVsc2UgeworICAgICAgICBTeXN0
ZW1CYXR0ZXJ5U3RhdHVzVGVzdGluZ092ZXJyaWRlczo6c2luZ2xldG9uKCkuc2V0Q29uZmlndXJh
dGlvbkNoYW5nZWRDYWxsYmFjayhudWxscHRyKTsKKyNpZiBFTkFCTEUoVlA5KQorICAgICAgICBW
UDlUZXN0aW5nT3ZlcnJpZGVzOjpzaW5nbGV0b24oKS5zZXRDb25maWd1cmF0aW9uQ2hhbmdlZENh
bGxiYWNrKG51bGxwdHIpOworI2VuZGlmCisgICAgfQorI2VuZGlmCiB9CiAKIGJvb2wgV2ViUHJv
Y2Vzczo6c2hvdWxkVXNlUmVtb3RlUmVuZGVyaW5nRm9yKFJlbmRlcmluZ1B1cnBvc2UgcHVycG9z
ZSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCA3YTRkNDZjNjJmNTYyZTE0MmY5ZGI4ZDQwNjlmZmU3MDNiMTU4MTE3Li43YjVl
ZDVlZjE2ZDFiYWMwM2M3YjJhZjZiZjUzYTI2MGFhZTI3NDY5IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMjEtMDItMjUgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgW0dQVVBdIFNvbWUgbWVkaWEtY2FwYWJpbGl0aWVzIHRlc3RzIGZhaWwgd2hlbiBt
ZWRpYSBpbiBHUFUgUHJvY2VzcyBpcyBlbmFibGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjE2OTEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc0
NDM5NDIwPgorCisgICAgICAgIFJldmlld2VkIGJ5IEplciBOb2JsZS4KKworICAgICAgICAqIHBs
YXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25zOiBVbi1za2lwIHRlc3RzIHRoYXQgbm8gbG9uZ2Vy
IGZhaWwuCisKIDIwMjEtMDItMjQgIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KIAog
ICAgICAgICBbR1BVUF0gUmVtb3ZlIGR1cGxpY2F0ZWQgaXRlbXMgaW4gTGF5b3V0VGVzdHMvZ3B1
LXByb2Nlc3MvVGVzdEV4cGVjdGF0aW9ucyByZWxhdGVkIHRvIG1lZGlhCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGM0ZGI2NmZkNGZjYTg3MmRmZTQ3ZDVk
ZDliZTYyMDBkMjk1MWYwMzIuLjZmYmU4NzcyN2I0YzJkNmJlMWRjNmQwNDBkNzI5MTBjNzJjZTIz
ODkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25z
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25zCkBAIC0yNzks
OSArMjc5LDYgQEAgbWVkaWEvdmlkZW8tY29udHJvbGxlci1jdXJyZW50VGltZS1yYXRlLmh0bWwg
WyBGYWlsdXJlIF0KIG1lZGlhL3ZpZGVvLW9yaWVudGF0aW9uLWNhbnZhcy5odG1sIFsgRmFpbHVy
ZSBdCiBtZWRpYS92aWRlby1zZXQtcmF0ZS1mcm9tLXBhdXNlLmh0bWwgWyBUaW1lb3V0IFBhc3Mg
XQogCi0jIHdlYmtpdC5vcmcvYi8yMjE2OTEKLW1lZGlhL21lZGlhY2FwYWJpbGl0aWVzL21lZGlh
Y2FwYWJpbGl0aWVzLXR5cGVzLmh0bWwgWyBGYWlsdXJlIF0KLQogIyB3ZWJraXQub3JnL2IvMjIw
ODA1CiB3ZWJhdWRpby9QYW5uZXIvaHJ0Zi1kYXRhYmFzZS5odG1sIFsgVGltZW91dCBdCiB3ZWJh
dWRpby9jb2RlYy10ZXN0cy9hYWMvdmJyLTEyOGticHMtNDRraHouaHRtbCBbIFRpbWVvdXQgXQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>