<?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>230798</bug_id>
          
          <creation_ts>2021-09-25 16:48:04 -0700</creation_ts>
          <short_desc>Make byte codes with arithmetic profiles switch to using an index instead of a pointer in metadata</short_desc>
          <delta_ts>2021-09-28 08:33:04 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>230806</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Saam Barati">saam</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1797240</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-09-25 16:48:04 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797242</commentid>
    <comment_count>1</comment_count>
      <attachid>439276</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-09-25 17:16:09 -0700</bug_when>
    <thetext>Created attachment 439276
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797261</commentid>
    <comment_count>2</comment_count>
      <attachid>439284</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-09-25 21:43:25 -0700</bug_when>
    <thetext>Created attachment 439284
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797262</commentid>
    <comment_count>3</comment_count>
      <attachid>439285</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-09-25 21:51:31 -0700</bug_when>
    <thetext>Created attachment 439285
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797263</commentid>
    <comment_count>4</comment_count>
      <attachid>439285</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-09-25 22:00:18 -0700</bug_when>
    <thetext>Comment on attachment 439285
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797291</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-09-26 10:23:24 -0700</bug_when>
    <thetext>Committed r283088 (242146@main): &lt;https://commits.webkit.org/242146@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 439285.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797292</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-26 10:24:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/83549499&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797302</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2021-09-26 14:17:59 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 230806</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797762</commentid>
    <comment_count>8</comment_count>
      <attachid>439433</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-09-27 22:31:08 -0700</bug_when>
    <thetext>Created attachment 439433
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797877</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-09-28 07:07:30 -0700</bug_when>
    <thetext>ChangeLog entry in Source/JavaScriptCore/ChangeLog contains OOPS!.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797889</commentid>
    <comment_count>10</comment_count>
      <attachid>439477</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-09-28 08:31:17 -0700</bug_when>
    <thetext>Created attachment 439477
[fast-cq] patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797890</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-09-28 08:33:02 -0700</bug_when>
    <thetext>Committed r283168 (242216@main): &lt;https://commits.webkit.org/242216@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 439477.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439276</attachid>
            <date>2021-09-25 17:16:09 -0700</date>
            <delta_ts>2021-09-25 21:43:25 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>b-backup.diff</filename>
            <type>text/plain</type>
            <size>23858</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QucmIKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5y
YgkocmV2aXNpb24gMjgzMDg0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5
dGVjb2RlTGlzdC5yYgkod29ya2luZyBjb3B5KQpAQCAtNjQsOCArNjQsNiBAQCB0eXBlcyBbCiAK
ICAgICA6VmFsdWVQcm9maWxlLAogICAgIDpWYWx1ZVByb2ZpbGVBbmRWaXJ0dWFsUmVnaXN0ZXJC
dWZmZXIsCi0gICAgOlVuYXJ5QXJpdGhQcm9maWxlLAotICAgIDpCaW5hcnlBcml0aFByb2ZpbGUs
CiAgICAgOkFycmF5UHJvZmlsZSwKICAgICA6QXJyYXlBbGxvY2F0aW9uUHJvZmlsZSwKICAgICA6
T2JqZWN0QWxsb2NhdGlvblByb2ZpbGUsCkBAIC0yODksMTAgKzI4Nyw4IEBAIG9wX2dyb3VwIDpQ
cm9maWxlZEJpbmFyeU9wLAogICAgICAgICBkc3Q6IFZpcnR1YWxSZWdpc3RlciwKICAgICAgICAg
bGhzOiBWaXJ0dWFsUmVnaXN0ZXIsCiAgICAgICAgIHJoczogVmlydHVhbFJlZ2lzdGVyLAorICAg
ICAgICBwcm9maWxlSW5kZXg6IHVuc2lnbmVkLAogICAgICAgICBvcGVyYW5kVHlwZXM6IE9wZXJh
bmRUeXBlcywKLSAgICB9LAotICAgIG1ldGFkYXRhOiB7Ci0gICAgICAgIGFyaXRoUHJvZmlsZTog
QmluYXJ5QXJpdGhQcm9maWxlLioKICAgICB9CiAKIG9wX2dyb3VwIDpWYWx1ZVByb2ZpbGVkQmlu
YXJ5T3AsCkBAIC0zNTEsOSArMzQ3LDcgQEAgb3BfZ3JvdXAgOlVuYXJ5SW5QbGFjZVByb2ZpbGVk
T3AsCiAgICAgXSwKICAgICBhcmdzOiB7CiAgICAgICAgIHNyY0RzdDogVmlydHVhbFJlZ2lzdGVy
LAotICAgIH0sCi0gICAgbWV0YWRhdGE6IHsKLSAgICAgICAgYXJpdGhQcm9maWxlOiBVbmFyeUFy
aXRoUHJvZmlsZS4qCisgICAgICAgIHByb2ZpbGVJbmRleDogdW5zaWduZWQsCiAgICAgfQogCiBv
cCA6dG9fb2JqZWN0LApAQCAtMzgzLDEwICszNzcsOCBAQCBvcCA6bmVnYXRlLAogICAgIGFyZ3M6
IHsKICAgICAgICAgZHN0OiBWaXJ0dWFsUmVnaXN0ZXIsCiAgICAgICAgIG9wZXJhbmQ6IFZpcnR1
YWxSZWdpc3RlciwKKyAgICAgICAgcHJvZmlsZUluZGV4OiB1bnNpZ25lZCwKICAgICAgICAgcmVz
dWx0VHlwZTogUmVzdWx0VHlwZSwKLSAgICB9LAotICAgIG1ldGFkYXRhOiB7Ci0gICAgICAgIGFy
aXRoUHJvZmlsZTogVW5hcnlBcml0aFByb2ZpbGUuKgogICAgIH0KIAogb3AgOm5vdCwKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCShyZXZpc2lv
biAyODMwODQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDcxLDIxICs0NzEsNiBAQCBib29sIENvZGVCbG9jazo6Zmlu
aXNoQ3JlYXRpb24oVk0mIHZtLCBTCiAgICAgICAgIGJyZWFrOyBcCiAgICAgfQogCi0gICAgdW5z
aWduZWQgYmluYXJ5UHJvZmlsZUluZGV4ID0gMDsKLSAgICB1bnNpZ25lZCB1bmFyeVByb2ZpbGVJ
bmRleCA9IDA7Ci0jZGVmaW5lIExJTktfV0lUSF9CSU5BUllfQVJJVEhfUFJPRklMRShfX29wKSBc
Ci0gICAgQ0FTRShfX29wKTogeyBcCi0gICAgICAgIElOSVRJQUxJWkVfTUVUQURBVEEoX19vcCkg
XAotICAgICAgICBtZXRhZGF0YS5tX2FyaXRoUHJvZmlsZSA9ICZtX3VubGlua2VkQ29kZS0+Ymlu
YXJ5QXJpdGhQcm9maWxlKGJpbmFyeVByb2ZpbGVJbmRleCsrKTsgXAotICAgICAgICBicmVhazsg
XAotICAgIH0KLSNkZWZpbmUgTElOS19XSVRIX1VOQVJZX0FSSVRIX1BST0ZJTEUoX19vcCkgXAot
ICAgIENBU0UoX19vcCk6IHsgXAotICAgICAgICBJTklUSUFMSVpFX01FVEFEQVRBKF9fb3ApIFwK
LSAgICAgICAgbWV0YWRhdGEubV9hcml0aFByb2ZpbGUgPSAmbV91bmxpbmtlZENvZGUtPnVuYXJ5
QXJpdGhQcm9maWxlKHVuYXJ5UHJvZmlsZUluZGV4KyspOyBcCi0gICAgICAgIGJyZWFrOyBcCi0g
ICAgfQotCiAgICAgY29uc3QgSW5zdHJ1Y3Rpb25TdHJlYW0mIGluc3RydWN0aW9uU3RyZWFtID0g
aW5zdHJ1Y3Rpb25zKCk7CiAgICAgZm9yIChjb25zdCBhdXRvJiBpbnN0cnVjdGlvbiA6IGluc3Ry
dWN0aW9uU3RyZWFtKSB7CiAgICAgICAgIE9wY29kZUlEIG9wY29kZUlEID0gaW5zdHJ1Y3Rpb24t
Pm9wY29kZUlEKCk7CkBAIC01NDgsMTUgKzUzMyw2IEBAIGJvb2wgQ29kZUJsb2NrOjpmaW5pc2hD
cmVhdGlvbihWTSYgdm0sIFMKICAgICAgICAgTElOSyhPcENyZWF0ZVByb21pc2UpCiAgICAgICAg
IExJTksoT3BDcmVhdGVHZW5lcmF0b3IpCiAKLSAgICAgICAgTElOS19XSVRIX0JJTkFSWV9BUklU
SF9QUk9GSUxFKE9wQWRkKQotICAgICAgICBMSU5LX1dJVEhfQklOQVJZX0FSSVRIX1BST0ZJTEUo
T3BNdWwpCi0gICAgICAgIExJTktfV0lUSF9CSU5BUllfQVJJVEhfUFJPRklMRShPcERpdikKLSAg
ICAgICAgTElOS19XSVRIX0JJTkFSWV9BUklUSF9QUk9GSUxFKE9wU3ViKQotCi0gICAgICAgIExJ
TktfV0lUSF9VTkFSWV9BUklUSF9QUk9GSUxFKE9wTmVnYXRlKQotICAgICAgICBMSU5LX1dJVEhf
VU5BUllfQVJJVEhfUFJPRklMRShPcEluYykKLSAgICAgICAgTElOS19XSVRIX1VOQVJZX0FSSVRI
X1BST0ZJTEUoT3BEZWMpCi0KICAgICAgICAgTElOSyhPcEpuZXFQdHIpCiAKICAgICAgICAgTElO
SyhPcENhdGNoKQpAQCAtMzQxMywxMyArMzM4OSwxMyBAQCBCaW5hcnlBcml0aFByb2ZpbGUqIENv
ZGVCbG9jazo6YmluYXJ5QXJpCiB7CiAgICAgc3dpdGNoIChwYy0+b3Bjb2RlSUQoKSkgewogICAg
IGNhc2Ugb3BfYWRkOgotICAgICAgICByZXR1cm4gcGMtPmFzPE9wQWRkPigpLm1ldGFkYXRhKHRo
aXMpLm1fYXJpdGhQcm9maWxlOworICAgICAgICByZXR1cm4gJnVubGlua2VkQ29kZUJsb2NrKCkt
PmJpbmFyeUFyaXRoUHJvZmlsZShwYy0+YXM8T3BBZGQ+KCkubV9wcm9maWxlSW5kZXgpOwogICAg
IGNhc2Ugb3BfbXVsOgotICAgICAgICByZXR1cm4gcGMtPmFzPE9wTXVsPigpLm1ldGFkYXRhKHRo
aXMpLm1fYXJpdGhQcm9maWxlOworICAgICAgICByZXR1cm4gJnVubGlua2VkQ29kZUJsb2NrKCkt
PmJpbmFyeUFyaXRoUHJvZmlsZShwYy0+YXM8T3BNdWw+KCkubV9wcm9maWxlSW5kZXgpOwogICAg
IGNhc2Ugb3Bfc3ViOgotICAgICAgICByZXR1cm4gcGMtPmFzPE9wU3ViPigpLm1ldGFkYXRhKHRo
aXMpLm1fYXJpdGhQcm9maWxlOworICAgICAgICByZXR1cm4gJnVubGlua2VkQ29kZUJsb2NrKCkt
PmJpbmFyeUFyaXRoUHJvZmlsZShwYy0+YXM8T3BTdWI+KCkubV9wcm9maWxlSW5kZXgpOwogICAg
IGNhc2Ugb3BfZGl2OgotICAgICAgICByZXR1cm4gcGMtPmFzPE9wRGl2PigpLm1ldGFkYXRhKHRo
aXMpLm1fYXJpdGhQcm9maWxlOworICAgICAgICByZXR1cm4gJnVubGlua2VkQ29kZUJsb2NrKCkt
PmJpbmFyeUFyaXRoUHJvZmlsZShwYy0+YXM8T3BEaXY+KCkubV9wcm9maWxlSW5kZXgpOwogICAg
IGRlZmF1bHQ6CiAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTM0MzEsMTEgKzM0MDcsMTEgQEAg
VW5hcnlBcml0aFByb2ZpbGUqIENvZGVCbG9jazo6dW5hcnlBcml0aAogewogICAgIHN3aXRjaCAo
cGMtPm9wY29kZUlEKCkpIHsKICAgICBjYXNlIG9wX25lZ2F0ZToKLSAgICAgICAgcmV0dXJuIHBj
LT5hczxPcE5lZ2F0ZT4oKS5tZXRhZGF0YSh0aGlzKS5tX2FyaXRoUHJvZmlsZTsKKyAgICAgICAg
cmV0dXJuICZ1bmxpbmtlZENvZGVCbG9jaygpLT51bmFyeUFyaXRoUHJvZmlsZShwYy0+YXM8T3BO
ZWdhdGU+KCkubV9wcm9maWxlSW5kZXgpOwogICAgIGNhc2Ugb3BfaW5jOgotICAgICAgICByZXR1
cm4gcGMtPmFzPE9wSW5jPigpLm1ldGFkYXRhKHRoaXMpLm1fYXJpdGhQcm9maWxlOworICAgICAg
ICByZXR1cm4gJnVubGlua2VkQ29kZUJsb2NrKCktPnVuYXJ5QXJpdGhQcm9maWxlKHBjLT5hczxP
cEluYz4oKS5tX3Byb2ZpbGVJbmRleCk7CiAgICAgY2FzZSBvcF9kZWM6Ci0gICAgICAgIHJldHVy
biBwYy0+YXM8T3BEZWM+KCkubWV0YWRhdGEodGhpcykubV9hcml0aFByb2ZpbGU7CisgICAgICAg
IHJldHVybiAmdW5saW5rZWRDb2RlQmxvY2soKS0+dW5hcnlBcml0aFByb2ZpbGUocGMtPmFzPE9w
RGVjPigpLm1fcHJvZmlsZUluZGV4KTsKICAgICBkZWZhdWx0OgogICAgICAgICBicmVhazsKICAg
ICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRDb2RlQmxv
Y2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Vbmxp
bmtlZENvZGVCbG9jay5jcHAJKHJldmlzaW9uIDI4MzA4NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9VbmxpbmtlZENvZGVCbG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2
MSw3ICszNjEsNyBAQCBpbnQzMl90IFVubGlua2VkQ29kZUJsb2NrOjp0aHJlc2hvbGRGb3JKCiB9
CiAKIAotdm9pZCBVbmxpbmtlZENvZGVCbG9jazo6YWxsb2NhdGVTaGFyZWRQcm9maWxlcygpCit2
b2lkIFVubGlua2VkQ29kZUJsb2NrOjphbGxvY2F0ZVNoYXJlZFByb2ZpbGVzKHVuc2lnbmVkIG51
bUJpbmFyeUFyaXRoUHJvZmlsZXMsIHVuc2lnbmVkIG51bVVuYXJ5QXJpdGhQcm9maWxlcykKIHsK
ICAgICBSRUxFQVNFX0FTU0VSVCghbV9tZXRhZGF0YS0+aXNGaW5hbGl6ZWQoKSk7CiAKQEAgLTM4
OSwxOSArMzg5LDEwIEBAIHZvaWQgVW5saW5rZWRDb2RlQmxvY2s6OmFsbG9jYXRlU2hhcmVkUHIK
ICAgICAgICAgbnVtYmVyT2ZBcnJheVByb2ZpbGVzICs9IG1fbWV0YWRhdGEtPm51bUVudHJpZXM8
T3BJdGVyYXRvck5leHQ+KCk7CiAgICAgICAgIG51bWJlck9mQXJyYXlQcm9maWxlcyArPSBtX21l
dGFkYXRhLT5udW1FbnRyaWVzPE9wR2V0QnlJZD4oKTsKICAgICAgICAgbV9hcnJheVByb2ZpbGVz
ID0gRml4ZWRWZWN0b3I8VW5saW5rZWRBcnJheVByb2ZpbGU+KG51bWJlck9mQXJyYXlQcm9maWxl
cyk7Ci0KLSAgICAgICAgdW5zaWduZWQgbnVtYmVyT2ZCaW5hcnlBcml0aFByb2ZpbGVzID0gMDsK
LSNkZWZpbmUgQ09VTlQoX19vcCkgbnVtYmVyT2ZCaW5hcnlBcml0aFByb2ZpbGVzICs9IG1fbWV0
YWRhdGEtPm51bUVudHJpZXM8X19vcD4oKTsKLSAgICAgICAgRk9SX0VBQ0hfT1BDT0RFX1dJVEhf
QklOQVJZX0FSSVRIX1BST0ZJTEUoQ09VTlQpCi0jdW5kZWYgQ09VTlQKLSAgICAgICAgbV9iaW5h
cnlBcml0aFByb2ZpbGVzID0gRml4ZWRWZWN0b3I8QmluYXJ5QXJpdGhQcm9maWxlPihudW1iZXJP
ZkJpbmFyeUFyaXRoUHJvZmlsZXMpOwotCi0gICAgICAgIHVuc2lnbmVkIG51bWJlck9mVW5hcnlB
cml0aFByb2ZpbGVzID0gMDsKLSNkZWZpbmUgQ09VTlQoX19vcCkgbnVtYmVyT2ZVbmFyeUFyaXRo
UHJvZmlsZXMgKz0gbV9tZXRhZGF0YS0+bnVtRW50cmllczxfX29wPigpOwotICAgICAgICBGT1Jf
RUFDSF9PUENPREVfV0lUSF9VTkFSWV9BUklUSF9QUk9GSUxFKENPVU5UKQotI3VuZGVmIENPVU5U
Ci0gICAgICAgIG1fdW5hcnlBcml0aFByb2ZpbGVzID0gRml4ZWRWZWN0b3I8VW5hcnlBcml0aFBy
b2ZpbGU+KG51bWJlck9mVW5hcnlBcml0aFByb2ZpbGVzKTsKICAgICB9CisKKyAgICBtX2JpbmFy
eUFyaXRoUHJvZmlsZXMgPSBGaXhlZFZlY3RvcjxCaW5hcnlBcml0aFByb2ZpbGU+KG51bUJpbmFy
eUFyaXRoUHJvZmlsZXMpOworICAgIG1fdW5hcnlBcml0aFByb2ZpbGVzID0gRml4ZWRWZWN0b3I8
VW5hcnlBcml0aFByb2ZpbGU+KG51bVVuYXJ5QXJpdGhQcm9maWxlcyk7CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIEpTQwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2Vk
Q29kZUJsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L1VubGlua2VkQ29kZUJsb2NrLmgJKHJldmlzaW9uIDI4MzA4NCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZENvZGVCbG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
NTIsNyArMzUyLDcgQEAgcHVibGljOgogICAgICAgICAvLyBTb21lIGJ1aWx0aW5zIGFyZSByZXF1
aXJlZCB0byBhbHdheXMgY29tcGxldGUgdGhlIGxvb3BzIHRoZXkgcnVuLgogICAgICAgICByZXR1
cm4gIWlzQnVpbHRpbkZ1bmN0aW9uKCk7CiAgICAgfQotICAgIHZvaWQgYWxsb2NhdGVTaGFyZWRQ
cm9maWxlcygpOworICAgIHZvaWQgYWxsb2NhdGVTaGFyZWRQcm9maWxlcyh1bnNpZ25lZCBudW1C
aW5hcnlBcml0aFByb2ZpbGVzLCB1bnNpZ25lZCBudW1VbmFyeUFyaXRoUHJvZmlsZXMpOwogICAg
IFVubGlua2VkVmFsdWVQcm9maWxlJiB1bmxpbmtlZFZhbHVlUHJvZmlsZSh1bnNpZ25lZCBpbmRl
eCkgeyByZXR1cm4gbV92YWx1ZVByb2ZpbGVzW2luZGV4XTsgfQogICAgIFVubGlua2VkQXJyYXlQ
cm9maWxlJiB1bmxpbmtlZEFycmF5UHJvZmlsZSh1bnNpZ25lZCBpbmRleCkgeyByZXR1cm4gbV9h
cnJheVByb2ZpbGVzW2luZGV4XTsgfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2tHZW5lcmF0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZENvZGVCbG9ja0dlbmVyYXRvci5jcHAJ
KHJldmlzaW9uIDI4MzA4NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Vbmxp
bmtlZENvZGVCbG9ja0dlbmVyYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExOSw3ICsxMTks
NyBAQCB2b2lkIFVubGlua2VkQ29kZUJsb2NrR2VuZXJhdG9yOjpmaW5hbGl6CiAgICAgewogICAg
ICAgICBMb2NrZXIgbG9ja2VyIHsgbV9jb2RlQmxvY2stPmNlbGxMb2NrKCkgfTsKICAgICAgICAg
bV9jb2RlQmxvY2stPm1faW5zdHJ1Y3Rpb25zID0gV1RGTW92ZShpbnN0cnVjdGlvbnMpOwotICAg
ICAgICBtX2NvZGVCbG9jay0+YWxsb2NhdGVTaGFyZWRQcm9maWxlcygpOworICAgICAgICBtX2Nv
ZGVCbG9jay0+YWxsb2NhdGVTaGFyZWRQcm9maWxlcyhtX251bUJpbmFyeUFyaXRoUHJvZmlsZXMs
IG1fbnVtVW5hcnlBcml0aFByb2ZpbGVzKTsKICAgICAgICAgbV9jb2RlQmxvY2stPm1fbWV0YWRh
dGEtPmZpbmFsaXplKCk7CiAKICAgICAgICAgbV9jb2RlQmxvY2stPm1fanVtcFRhcmdldHMgPSBX
VEZNb3ZlKG1fanVtcFRhcmdldHMpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL1VubGlua2VkQ29kZUJsb2NrR2VuZXJhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkQ29kZUJsb2NrR2VuZXJhdG9yLmgJKHJldmlz
aW9uIDI4MzA4NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZENv
ZGVCbG9ja0dlbmVyYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMDAsNiArMjAwLDkgQEAgcHVi
bGljOgogCiAgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3Q7CiAKKyAgICB1bnNpZ25l
ZCBhZGRCaW5hcnlBcml0aFByb2ZpbGUoKSB7IHJldHVybiBtX251bUJpbmFyeUFyaXRoUHJvZmls
ZXMrKzsgfQorICAgIHVuc2lnbmVkIGFkZFVuYXJ5QXJpdGhQcm9maWxlKCkgeyByZXR1cm4gbV9u
dW1VbmFyeUFyaXRoUHJvZmlsZXMrKzsgfQorCiBwcml2YXRlOgogICAgIFZNJiBtX3ZtOwogICAg
IFN0cm9uZzxVbmxpbmtlZENvZGVCbG9jaz4gbV9jb2RlQmxvY2s7CkBAIC0yMjEsNiArMjI0LDgg
QEAgcHJpdmF0ZToKICAgICBWZWN0b3I8SW5zdHJ1Y3Rpb25TdHJlYW06Ok9mZnNldD4gbV9vcFBy
b2ZpbGVDb250cm9sRmxvd0J5dGVjb2RlT2Zmc2V0czsKICAgICBWZWN0b3I8Qml0VmVjdG9yPiBt
X2JpdFZlY3RvcnM7CiAgICAgVmVjdG9yPElkZW50aWZpZXJTZXQ+IG1fY29uc3RhbnRJZGVudGlm
aWVyU2V0czsKKyAgICB1bnNpZ25lZCBtX251bUJpbmFyeUFyaXRoUHJvZmlsZXMgeyAwIH07Cisg
ICAgdW5zaWduZWQgbV9udW1VbmFyeUFyaXRoUHJvZmlsZXMgeyAwIH07CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBKU0MKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0
ZWNvZGVHZW5lcmF0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCShyZXZpc2lvbiAyODMwODQpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTU5OCw3ICsxNTk4LDcgQEAgUmVnaXN0ZXJJRCogQnl0ZWNvZGVH
ZW5lcmF0b3I6OmVtaXRVbmFyeQogICAgICAgICBlbWl0VW5hcnlPcDxPcE5vdD4oZHN0LCBzcmMp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIG9wX25lZ2F0ZToKLSAgICAgICAgT3BOZWdhdGU6
OmVtaXQodGhpcywgZHN0LCBzcmMsIHR5cGUpOworICAgICAgICBPcE5lZ2F0ZTo6ZW1pdCh0aGlz
LCBkc3QsIHNyYywgbV9jb2RlQmxvY2stPmFkZFVuYXJ5QXJpdGhQcm9maWxlKCksIHR5cGUpOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIG9wX2JpdG5vdDoKICAgICAgICAgZW1pdFVuYXJ5T3A8
T3BCaXRub3Q+KGRzdCwgc3JjKTsKQEAgLTE2OTYsMTMgKzE2OTYsMTMgQEAgUmVnaXN0ZXJJRCog
Qnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRUeXBlTwogCiBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVy
YXRvcjo6ZW1pdEluYyhSZWdpc3RlcklEKiBzcmNEc3QpCiB7Ci0gICAgT3BJbmM6OmVtaXQodGhp
cywgc3JjRHN0KTsKKyAgICBPcEluYzo6ZW1pdCh0aGlzLCBzcmNEc3QsIG1fY29kZUJsb2NrLT5h
ZGRVbmFyeUFyaXRoUHJvZmlsZSgpKTsKICAgICByZXR1cm4gc3JjRHN0OwogfQogCiBSZWdpc3Rl
cklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdERlYyhSZWdpc3RlcklEKiBzcmNEc3QpCiB7Ci0g
ICAgT3BEZWM6OmVtaXQodGhpcywgc3JjRHN0KTsKKyAgICBPcERlYzo6ZW1pdCh0aGlzLCBzcmNE
c3QsIG1fY29kZUJsb2NrLT5hZGRVbmFyeUFyaXRoUHJvZmlsZSgpKTsKICAgICByZXR1cm4gc3Jj
RHN0OwogfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVj
b2RlR2VuZXJhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oCShyZXZpc2lvbiAyODMwODQpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTY4Miw3ICs2ODIsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIFJl
Z2lzdGVySUQqPgogICAgICAgICBlbWl0QmluYXJ5T3AoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3Rl
cklEKiBzcmMxLCBSZWdpc3RlcklEKiBzcmMyLCBPcGVyYW5kVHlwZXMgdHlwZXMpCiAgICAgICAg
IHsKLSAgICAgICAgICAgIEJpbmFyeU9wOjplbWl0KHRoaXMsIGRzdCwgc3JjMSwgc3JjMiwgdHlw
ZXMpOworICAgICAgICAgICAgQmluYXJ5T3A6OmVtaXQodGhpcywgZHN0LCBzcmMxLCBzcmMyLCBt
X2NvZGVCbG9jay0+YWRkQmluYXJ5QXJpdGhQcm9maWxlKCksIHR5cGVzKTsKICAgICAgICAgICAg
IHJldHVybiBkc3Q7CiAgICAgICAgIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRBcml0aG1ldGljLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVEFyaXRobWV0aWMuY3BwCShyZXZpc2lvbiAyODMwODQpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MjIsNyAr
NzIyLDcgQEAgdm9pZCBKSVQ6OmVtaXRCaW5hcnlEb3VibGVPcChjb25zdCBJbnN0cgogCiB2b2lk
IEpJVDo6ZW1pdF9vcF9uZWdhdGUoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlv
bikKIHsKLSAgICBVbmFyeUFyaXRoUHJvZmlsZSogYXJpdGhQcm9maWxlID0gY3VycmVudEluc3Ry
dWN0aW9uLT5hczxPcE5lZ2F0ZT4oKS5tZXRhZGF0YShtX3Byb2ZpbGVkQ29kZUJsb2NrKS5tX2Fy
aXRoUHJvZmlsZTsKKyAgICBVbmFyeUFyaXRoUHJvZmlsZSogYXJpdGhQcm9maWxlID0gJm1fdW5s
aW5rZWRDb2RlQmxvY2stPnVuYXJ5QXJpdGhQcm9maWxlKGN1cnJlbnRJbnN0cnVjdGlvbi0+YXM8
T3BOZWdhdGU+KCkubV9wcm9maWxlSW5kZXgpOwogICAgIEpJVE5lZ0lDKiBuZWdhdGVJQyA9IG1f
bWF0aElDcy5hZGRKSVROZWdJQyhhcml0aFByb2ZpbGUpOwogICAgIG1faW5zdHJ1Y3Rpb25Ub01h
dGhJQy5hZGQoY3VycmVudEluc3RydWN0aW9uLCBuZWdhdGVJQyk7CiAgICAgLy8gRklYTUU6IGl0
IHdvdWxkIGJlIGJldHRlciB0byBjYWxsIHRob3NlIG9wZXJhdGlvblZhbHVlTmVnYXRlLCBzaW5j
ZSB0aGUgb3BlcmFuZCBjYW4gYmUgYSBCaWdJbnQKQEAgLTkwNCw3ICs5MDQsNyBAQCB2b2lkIEpJ
VDo6ZW1pdF9vcF91cnNoaWZ0KGNvbnN0IEluc3RydWN0CiAKIHZvaWQgSklUOjplbWl0X29wX2Fk
ZChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogewotICAgIEJpbmFyeUFy
aXRoUHJvZmlsZSogYXJpdGhQcm9maWxlID0gY3VycmVudEluc3RydWN0aW9uLT5hczxPcEFkZD4o
KS5tZXRhZGF0YShtX3Byb2ZpbGVkQ29kZUJsb2NrKS5tX2FyaXRoUHJvZmlsZTsKKyAgICBCaW5h
cnlBcml0aFByb2ZpbGUqIGFyaXRoUHJvZmlsZSA9ICZtX3VubGlua2VkQ29kZUJsb2NrLT5iaW5h
cnlBcml0aFByb2ZpbGUoY3VycmVudEluc3RydWN0aW9uLT5hczxPcEFkZD4oKS5tX3Byb2ZpbGVJ
bmRleCk7CiAgICAgSklUQWRkSUMqIGFkZElDID0gbV9tYXRoSUNzLmFkZEpJVEFkZElDKGFyaXRo
UHJvZmlsZSk7CiAgICAgbV9pbnN0cnVjdGlvblRvTWF0aElDLmFkZChjdXJyZW50SW5zdHJ1Y3Rp
b24sIGFkZElDKTsKICAgICBlbWl0TWF0aElDRmFzdDxPcEFkZD4oYWRkSUMsIGN1cnJlbnRJbnN0
cnVjdGlvbiwgb3BlcmF0aW9uVmFsdWVBZGRQcm9maWxlZCwgb3BlcmF0aW9uVmFsdWVBZGQpOwpA
QCAtMTE3NSw3ICsxMTc1LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZGl2KGNvbnN0IEluc3RydWN0
aW9uKgogCiAgICAgQmluYXJ5QXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUgPSBudWxscHRyOwog
ICAgIGlmIChzaG91bGRFbWl0UHJvZmlsaW5nKCkpCi0gICAgICAgIGFyaXRoUHJvZmlsZSA9IGN1
cnJlbnRJbnN0cnVjdGlvbi0+YXM8T3BEaXY+KCkubWV0YWRhdGEobV9wcm9maWxlZENvZGVCbG9j
aykubV9hcml0aFByb2ZpbGU7CisgICAgICAgIGFyaXRoUHJvZmlsZSA9ICZtX3VubGlua2VkQ29k
ZUJsb2NrLT5iaW5hcnlBcml0aFByb2ZpbGUoY3VycmVudEluc3RydWN0aW9uLT5hczxPcERpdj4o
KS5tX3Byb2ZpbGVJbmRleCk7CiAKICAgICBTbmlwcGV0T3BlcmFuZCBsZWZ0T3BlcmFuZChieXRl
Y29kZS5tX29wZXJhbmRUeXBlcy5maXJzdCgpKTsKICAgICBTbmlwcGV0T3BlcmFuZCByaWdodE9w
ZXJhbmQoYnl0ZWNvZGUubV9vcGVyYW5kVHlwZXMuc2Vjb25kKCkpOwpAQCAtMTIyMCw3ICsxMjIw
LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZGl2KGNvbnN0IEluc3RydWN0aW9uKgogCiB2b2lkIEpJ
VDo6ZW1pdF9vcF9tdWwoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIHsK
LSAgICBCaW5hcnlBcml0aFByb2ZpbGUqIGFyaXRoUHJvZmlsZSA9IGN1cnJlbnRJbnN0cnVjdGlv
bi0+YXM8T3BNdWw+KCkubWV0YWRhdGEobV9wcm9maWxlZENvZGVCbG9jaykubV9hcml0aFByb2Zp
bGU7CisgICAgQmluYXJ5QXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUgPSAmbV91bmxpbmtlZENv
ZGVCbG9jay0+YmluYXJ5QXJpdGhQcm9maWxlKGN1cnJlbnRJbnN0cnVjdGlvbi0+YXM8T3BNdWw+
KCkubV9wcm9maWxlSW5kZXgpOwogICAgIEpJVE11bElDKiBtdWxJQyA9IG1fbWF0aElDcy5hZGRK
SVRNdWxJQyhhcml0aFByb2ZpbGUpOwogICAgIG1faW5zdHJ1Y3Rpb25Ub01hdGhJQy5hZGQoY3Vy
cmVudEluc3RydWN0aW9uLCBtdWxJQyk7CiAgICAgZW1pdE1hdGhJQ0Zhc3Q8T3BNdWw+KG11bElD
LCBjdXJyZW50SW5zdHJ1Y3Rpb24sIG9wZXJhdGlvblZhbHVlTXVsUHJvZmlsZWQsIG9wZXJhdGlv
blZhbHVlTXVsKTsKQEAgLTEyMzYsNyArMTIzNiw3IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9t
dWwoY29uc3QgSW5zdHJ1Y3QKIAogdm9pZCBKSVQ6OmVtaXRfb3Bfc3ViKGNvbnN0IEluc3RydWN0
aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7Ci0gICAgQmluYXJ5QXJpdGhQcm9maWxlKiBhcml0
aFByb2ZpbGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb24tPmFzPE9wU3ViPigpLm1ldGFkYXRhKG1fcHJv
ZmlsZWRDb2RlQmxvY2spLm1fYXJpdGhQcm9maWxlOworICAgIEJpbmFyeUFyaXRoUHJvZmlsZSog
YXJpdGhQcm9maWxlID0gJm1fdW5saW5rZWRDb2RlQmxvY2stPmJpbmFyeUFyaXRoUHJvZmlsZShj
dXJyZW50SW5zdHJ1Y3Rpb24tPmFzPE9wU3ViPigpLm1fcHJvZmlsZUluZGV4KTsKICAgICBKSVRT
dWJJQyogc3ViSUMgPSBtX21hdGhJQ3MuYWRkSklUU3ViSUMoYXJpdGhQcm9maWxlKTsKICAgICBt
X2luc3RydWN0aW9uVG9NYXRoSUMuYWRkKGN1cnJlbnRJbnN0cnVjdGlvbiwgc3ViSUMpOwogICAg
IGVtaXRNYXRoSUNGYXN0PE9wU3ViPihzdWJJQywgY3VycmVudEluc3RydWN0aW9uLCBvcGVyYXRp
b25WYWx1ZVN1YlByb2ZpbGVkLCBvcGVyYXRpb25WYWx1ZVN1Yik7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0
LmFzbQkocmV2aXNpb24gMjgzMDg0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xv
d0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20JKHdvcmtpbmcgY29weSkKQEAgLTEwMTIsMTQgKzEw
MTIsMTMgQEAgc3RyaWN0RXF1YWxpdHlKdW1wT3Aoam5zdHJpY3RlcSwgT3BKbnN0cgogCiBtYWNy
byBwcmVPcChvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIGludGVnZXJPcGVyYXRpb24pCiAgICAg
bGxpbnRPcFdpdGhNZXRhZGF0YShvcF8lb3Bjb2RlTmFtZSUsIG9wY29kZVN0cnVjdCwgbWFjcm8g
KHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCi0gICAgICAgIG1ldGFkYXRh
KHQxLCB0MikKICAgICAgICAgZ2V0KG1fc3JjRHN0LCB0MCkKICAgICAgICAgYmluZXEgVGFnT2Zm
c2V0W2NmciwgdDAsIDhdLCBJbnQzMlRhZywgLnNsb3cKICAgICAgICAgbG9hZGkgUGF5bG9hZE9m
ZnNldFtjZnIsIHQwLCA4XSwgdDIKLSAgICAgICAgIyBNZXRhZGF0YSBpbiB0MSwgc3JjRHN0IGlu
IHQyCisgICAgICAgICMgc3JjRHN0IGluIHQyCiAgICAgICAgIGludGVnZXJPcGVyYXRpb24odDIs
IC5zbG93KQogICAgICAgICBzdG9yZWkgdDIsIFBheWxvYWRPZmZzZXRbY2ZyLCB0MCwgOF0KLSAg
ICAgICAgdXBkYXRlVW5hcnlBcml0aFByb2ZpbGUob3Bjb2RlU3RydWN0LCBBcml0aFByb2ZpbGVJ
bnQsIHQxLCB0MikKKyAgICAgICAgdXBkYXRlVW5hcnlBcml0aFByb2ZpbGUoZ2V0LCBBcml0aFBy
b2ZpbGVJbnQsIHQ1LCB0MikKICAgICAgICAgZGlzcGF0Y2goKQogCiAgICAgLnNsb3c6CkBAIC0x
MDg0LDE5ICsxMDgzLDE3IEBAIGVuZCkKIAogCiBsbGludE9wV2l0aE1ldGFkYXRhKG9wX25lZ2F0
ZSwgT3BOZWdhdGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJu
KQotCi0gICAgbWV0YWRhdGEodDUsIHQwKQogICAgIGdldChtX29wZXJhbmQsIHQwKQogICAgIGxv
YWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwgdDAsIHQxLCB0MikKICAgICBiaW5lcSB0MSwgSW50
MzJUYWcsIC5vcE5lZ2F0ZVNyY05vdEludAogICAgIGJ0aXogdDIsIDB4N2ZmZmZmZmYsIC5vcE5l
Z2F0ZVNsb3cKICAgICBuZWdpIHQyCi0gICAgdXBkYXRlVW5hcnlBcml0aFByb2ZpbGUoT3BOZWdh
dGUsIEFyaXRoUHJvZmlsZUludCwgdDUsIHQzKQorICAgIHVwZGF0ZVVuYXJ5QXJpdGhQcm9maWxl
KGdldCwgQXJpdGhQcm9maWxlSW50LCB0MCwgdDMpCiAgICAgcmV0dXJuIChJbnQzMlRhZywgdDIp
CiAub3BOZWdhdGVTcmNOb3RJbnQ6CiAgICAgYmlhIHQxLCBMb3dlc3RUYWcsIC5vcE5lZ2F0ZVNs
b3cKICAgICB4b3JpIDB4ODAwMDAwMDAsIHQxCi0gICAgdXBkYXRlVW5hcnlBcml0aFByb2ZpbGUo
T3BOZWdhdGUsIEFyaXRoUHJvZmlsZU51bWJlciwgdDUsIHQzKQorICAgIHVwZGF0ZVVuYXJ5QXJp
dGhQcm9maWxlKGdldCwgQXJpdGhQcm9maWxlTnVtYmVyLCB0MCwgdDMpCiAgICAgcmV0dXJuKHQx
LCB0MikKIAogLm9wTmVnYXRlU2xvdzoKQEAgLTExMDcsNyArMTEwNCw2IEBAIGVuZCkKIAogbWFj
cm8gYmluYXJ5T3BDdXN0b21TdG9yZShvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIGludGVnZXJP
cGVyYXRpb25BbmRTdG9yZSwgZG91YmxlT3BlcmF0aW9uKQogICAgIGxsaW50T3BXaXRoTWV0YWRh
dGEob3BfJW9wY29kZU5hbWUlLCBvcGNvZGVTdHJ1Y3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3Bh
dGNoLCBtZXRhZGF0YSwgcmV0dXJuKQotICAgICAgICBtZXRhZGF0YSh0NSwgdDIpCiAgICAgICAg
IGdldChtX3JocywgdDIpCiAgICAgICAgIGdldChtX2xocywgdDApCiAgICAgICAgIGxvYWRDb25z
dGFudE9yVmFyaWFibGUoc2l6ZSwgdDIsIHQzLCB0MSkKQEAgLTExMjQsMTIgKzExMjAsMTIgQEAg
bWFjcm8gYmluYXJ5T3BDdXN0b21TdG9yZShvcGNvZGVOYW1lLCBvcAogICAgICAgICBiaWEgdDIs
IExvd2VzdFRhZywgLnNsb3cKICAgICAgICAgYmliIHQzLCBMb3dlc3RUYWcsIC5vcDFOb3RJbnRP
cDJEb3VibGUKICAgICAgICAgYmluZXEgdDMsIEludDMyVGFnLCAuc2xvdwotICAgICAgICB1cGRh
dGVCaW5hcnlBcml0aFByb2ZpbGUob3Bjb2RlU3RydWN0LCBBcml0aFByb2ZpbGVOdW1iZXJJbnQs
IHQ1LCB0NCkKKyAgICAgICAgdXBkYXRlQmluYXJ5QXJpdGhQcm9maWxlKGdldCwgQXJpdGhQcm9m
aWxlTnVtYmVySW50LCB0NSwgdDQpCiAgICAgICAgIGNpMmRzIHQxLCBmdDEKICAgICAgICAgam1w
IC5vcDFOb3RJbnRSZWFkeQogICAgIC5vcDFOb3RJbnRPcDJEb3VibGU6CiAgICAgICAgIGZpaTJk
IHQxLCB0MywgZnQxCi0gICAgICAgIHVwZGF0ZUJpbmFyeUFyaXRoUHJvZmlsZShvcGNvZGVTdHJ1
Y3QsIEFyaXRoUHJvZmlsZU51bWJlck51bWJlciwgdDUsIHQ0KQorICAgICAgICB1cGRhdGVCaW5h
cnlBcml0aFByb2ZpbGUoZ2V0LCBBcml0aFByb2ZpbGVOdW1iZXJOdW1iZXIsIHQ1LCB0NCkKICAg
ICAub3AxTm90SW50UmVhZHk6CiAgICAgICAgIGdldChtX2RzdCwgdDEpCiAgICAgICAgIGZpaTJk
IHQwLCB0MiwgZnQwCkBAIC0xMTQxLDcgKzExMzcsNyBAQCBtYWNybyBiaW5hcnlPcEN1c3RvbVN0
b3JlKG9wY29kZU5hbWUsIG9wCiAgICAgICAgICMgRmlyc3Qgb3BlcmFuZCBpcyBkZWZpbml0ZWx5
IGFuIGludCwgdGhlIHNlY29uZCBvcGVyYW5kIGlzIGRlZmluaXRlbHkgbm90LgogICAgICAgICBn
ZXQobV9kc3QsIHQyKQogICAgICAgICBiaWEgdDMsIExvd2VzdFRhZywgLnNsb3cKLSAgICAgICAg
dXBkYXRlQmluYXJ5QXJpdGhQcm9maWxlKG9wY29kZVN0cnVjdCwgQXJpdGhQcm9maWxlSW50TnVt
YmVyLCB0NSwgdDQpCisgICAgICAgIHVwZGF0ZUJpbmFyeUFyaXRoUHJvZmlsZShnZXQsIEFyaXRo
UHJvZmlsZUludE51bWJlciwgdDUsIHQ0KQogICAgICAgICBjaTJkcyB0MCwgZnQwCiAgICAgICAg
IGZpaTJkIHQxLCB0MywgZnQxCiAgICAgICAgIGRvdWJsZU9wZXJhdGlvbihmdDEsIGZ0MCkKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNt
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVy
cHJldGVyNjQuYXNtCShyZXZpc2lvbiAyODMwODQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQkod29ya2luZyBjb3B5KQpAQCAtMTA2Mywx
NCArMTA2MywxMyBAQCBtYWNybyBwcmVPcChvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIGluCiAg
ICAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF8lb3Bjb2RlTmFtZSUsIG9wY29kZVN0cnVjdCwgbWFj
cm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCiAgICAgICAgIGdldCht
X3NyY0RzdCwgdDApCiAgICAgICAgIGxvYWRxIFtjZnIsIHQwLCA4XSwgdDEKLSAgICAgICAgbWV0
YWRhdGEodDIsIHQzKQotICAgICAgICAjIHNyY0RzdCBpbiB0MSwgbWV0YWRhdGEgaW4gdDIKKyAg
ICAgICAgIyBzcmNEc3QgaW4gdDEKICAgICAgICAgIyBGSVhNRTogdGhlIG5leHQgbGluZSBqdW1w
cyB0byB0aGUgc2xvdyBwYXRoIGZvciBCaWdJbnQzMi4gV2UgY291bGQgaW5zdGVhZCBoYXZlIGEg
ZGVkaWNhdGVkIHBhdGggaW4gaGVyZSBmb3IgdGhlbS4KICAgICAgICAgYnFiIHQxLCBudW1iZXJU
YWcsIC5zbG93CiAgICAgICAgIGludGVnZXJPcGVyYXRpb24odDEsIC5zbG93KQogICAgICAgICBv
cnEgbnVtYmVyVGFnLCB0MQogICAgICAgICBzdG9yZXEgdDEsIFtjZnIsIHQwLCA4XQotICAgICAg
ICB1cGRhdGVVbmFyeUFyaXRoUHJvZmlsZShvcGNvZGVTdHJ1Y3QsIEFyaXRoUHJvZmlsZUludCwg
dDIsIHQzKQorICAgICAgICB1cGRhdGVVbmFyeUFyaXRoUHJvZmlsZShnZXQsIEFyaXRoUHJvZmls
ZUludCwgdDUsIHQzKQogICAgICAgICBkaXNwYXRjaCgpCiAKICAgICAuc2xvdzoKQEAgLTExMzcs
MTcgKzExMzYsMTYgQEAgZW5kKQogbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9uZWdhdGUsIE9wTmVn
YXRlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJldHVybikKICAgICBn
ZXQobV9vcGVyYW5kLCB0MCkKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHNpemUsIHQwLCB0
MykKLSAgICBtZXRhZGF0YSh0MSwgdDIpCiAgICAgYnFiIHQzLCBudW1iZXJUYWcsIC5vcE5lZ2F0
ZU5vdEludAogICAgIGJ0aXogdDMsIDB4N2ZmZmZmZmYsIC5vcE5lZ2F0ZVNsb3cKICAgICBuZWdp
IHQzCiAgICAgb3JxIG51bWJlclRhZywgdDMKLSAgICB1cGRhdGVVbmFyeUFyaXRoUHJvZmlsZShP
cE5lZ2F0ZSwgQXJpdGhQcm9maWxlSW50LCB0MSwgdDIpCisgICAgdXBkYXRlVW5hcnlBcml0aFBy
b2ZpbGUoZ2V0LCBBcml0aFByb2ZpbGVJbnQsIHQxLCB0MikKICAgICByZXR1cm4odDMpCiAub3BO
ZWdhdGVOb3RJbnQ6CiAgICAgYnRxeiB0MywgbnVtYmVyVGFnLCAub3BOZWdhdGVTbG93CiAgICAg
eG9ycSAweDgwMDAwMDAwMDAwMDAwMDAsIHQzCi0gICAgdXBkYXRlVW5hcnlBcml0aFByb2ZpbGUo
T3BOZWdhdGUsIEFyaXRoUHJvZmlsZU51bWJlciwgdDEsIHQyKQorICAgIHVwZGF0ZVVuYXJ5QXJp
dGhQcm9maWxlKGdldCwgQXJpdGhQcm9maWxlTnVtYmVyLCB0MSwgdDIpCiAgICAgcmV0dXJuKHQz
KQogCiAub3BOZWdhdGVTbG93OgpAQCAtMTE1OCw4ICsxMTU2LDYgQEAgZW5kKQogCiBtYWNybyBi
aW5hcnlPcEN1c3RvbVN0b3JlKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgaW50ZWdlck9wZXJh
dGlvbkFuZFN0b3JlLCBkb3VibGVPcGVyYXRpb24pCiAgICAgbGxpbnRPcFdpdGhNZXRhZGF0YShv
cF8lb3Bjb2RlTmFtZSUsIG9wY29kZVN0cnVjdCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gs
IG1ldGFkYXRhLCByZXR1cm4pCi0gICAgICAgIG1ldGFkYXRhKHQ1LCB0MCkKLQogICAgICAgICBn
ZXQobV9yaHMsIHQwKQogICAgICAgICBnZXQobV9saHMsIHQyKQogICAgICAgICBsb2FkQ29uc3Rh
bnRPclZhcmlhYmxlKHNpemUsIHQwLCB0MSkKQEAgLTExNjksNyArMTE2NSw3IEBAIG1hY3JvIGJp
bmFyeU9wQ3VzdG9tU3RvcmUob3Bjb2RlTmFtZSwgb3AKICAgICAgICAgZ2V0KG1fZHN0LCB0MikK
ICAgICAgICAgaW50ZWdlck9wZXJhdGlvbkFuZFN0b3JlKHQxLCB0MCwgLnNsb3csIHQyKQogCi0g
ICAgICAgIHVwZGF0ZUJpbmFyeUFyaXRoUHJvZmlsZShvcGNvZGVTdHJ1Y3QsIEFyaXRoUHJvZmls
ZUludEludCwgdDUsIHQyKQorICAgICAgICB1cGRhdGVCaW5hcnlBcml0aFByb2ZpbGUoZ2V0LCBB
cml0aFByb2ZpbGVJbnRJbnQsIHQ1LCB0MikKICAgICAgICAgZGlzcGF0Y2goKQogCiAgICAgLm9w
MU5vdEludDoKQEAgLTExNzksMTAgKzExNzUsMTAgQEAgbWFjcm8gYmluYXJ5T3BDdXN0b21TdG9y
ZShvcGNvZGVOYW1lLCBvcAogICAgICAgICBidHF6IHQxLCBudW1iZXJUYWcsIC5zbG93CiAgICAg
ICAgIGFkZHEgbnVtYmVyVGFnLCB0MQogICAgICAgICBmcTJkIHQxLCBmdDEKLSAgICAgICAgdXBk
YXRlQmluYXJ5QXJpdGhQcm9maWxlKG9wY29kZVN0cnVjdCwgQXJpdGhQcm9maWxlTnVtYmVyTnVt
YmVyLCB0NSwgdDIpCisgICAgICAgIHVwZGF0ZUJpbmFyeUFyaXRoUHJvZmlsZShnZXQsIEFyaXRo
UHJvZmlsZU51bWJlck51bWJlciwgdDUsIHQyKQogICAgICAgICBqbXAgLm9wMU5vdEludFJlYWR5
CiAgICAgLm9wMU5vdEludE9wMkludDoKLSAgICAgICAgdXBkYXRlQmluYXJ5QXJpdGhQcm9maWxl
KG9wY29kZVN0cnVjdCwgQXJpdGhQcm9maWxlTnVtYmVySW50LCB0NSwgdDIpCisgICAgICAgIHVw
ZGF0ZUJpbmFyeUFyaXRoUHJvZmlsZShnZXQsIEFyaXRoUHJvZmlsZU51bWJlckludCwgdDUsIHQy
KQogICAgICAgICBjaTJkcyB0MSwgZnQxCiAgICAgLm9wMU5vdEludFJlYWR5OgogICAgICAgICBn
ZXQobV9kc3QsIHQyKQpAQCAtMTE5Nyw3ICsxMTkzLDcgQEAgbWFjcm8gYmluYXJ5T3BDdXN0b21T
dG9yZShvcGNvZGVOYW1lLCBvcAogICAgIC5vcDJOb3RJbnQ6CiAgICAgICAgICMgRmlyc3Qgb3Bl
cmFuZCBpcyBkZWZpbml0ZWx5IGFuIGludCwgdGhlIHNlY29uZCBpcyBkZWZpbml0ZWx5IG5vdC4K
ICAgICAgICAgYnRxeiB0MSwgbnVtYmVyVGFnLCAuc2xvdwotICAgICAgICB1cGRhdGVCaW5hcnlB
cml0aFByb2ZpbGUob3Bjb2RlU3RydWN0LCBBcml0aFByb2ZpbGVJbnROdW1iZXIsIHQ1LCB0MikK
KyAgICAgICAgdXBkYXRlQmluYXJ5QXJpdGhQcm9maWxlKGdldCwgQXJpdGhQcm9maWxlSW50TnVt
YmVyLCB0NSwgdDIpCiAgICAgICAgIGdldChtX2RzdCwgdDIpCiAgICAgICAgIGNpMmRzIHQwLCBm
dDAKICAgICAgICAgYWRkcSBudW1iZXJUYWcsIHQxCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCShyZXZpc2lvbiAyODMw
ODQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5h
c20JKHdvcmtpbmcgY29weSkKQEAgLTI1NjYsMTQgKzI1NjYsMjAgQEAgbWFjcm8gbm90U3VwcG9y
dGVkKCkKIGVuZAogCiAKLW1hY3JvIHVwZGF0ZVVuYXJ5QXJpdGhQcm9maWxlKG9wY29kZVN0cnVj
dCwgdHlwZSwgbWV0YWRhdGEsIHRlbXApCi0gICAgbG9hZHAgJW9wY29kZVN0cnVjdCU6Ok1ldGFk
YXRhOjptX2FyaXRoUHJvZmlsZVttZXRhZGF0YV0sIHRlbXAKLSAgICBvcmggdHlwZSwgVW5hcnlB
cml0aFByb2ZpbGU6Om1fYml0c1t0ZW1wXQorbWFjcm8gdXBkYXRlVW5hcnlBcml0aFByb2ZpbGUo
Z2V0LCB0eXBlLCBzY3JhdGNoMSwgc2NyYXRjaDIpCisgICAgZ2V0KG1fcHJvZmlsZUluZGV4LCBz
Y3JhdGNoMSkKKyAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgc2NyYXRjaDIKKyAgICBsb2FkcCBD
b2RlQmxvY2s6Om1fdW5saW5rZWRDb2RlW3NjcmF0Y2gyXSwgc2NyYXRjaDIKKyAgICBsb2FkcCBV
bmxpbmtlZENvZGVCbG9jazo6bV91bmFyeUFyaXRoUHJvZmlsZXMgKyBGaXhlZFZlY3Rvcjo6bV9z
dG9yYWdlICsgUmVmQ291bnRlZEFycmF5OjptX2RhdGFbc2NyYXRjaDJdLCBzY3JhdGNoMgorICAg
IG9yaCB0eXBlLCBVbmFyeUFyaXRoUHJvZmlsZTo6bV9iaXRzW3NjcmF0Y2gyLCBzY3JhdGNoMSwg
Ml0KIGVuZAogCi1tYWNybyB1cGRhdGVCaW5hcnlBcml0aFByb2ZpbGUob3Bjb2RlU3RydWN0LCB0
eXBlLCBtZXRhZGF0YSwgdGVtcCkKLSAgICBsb2FkcCAlb3Bjb2RlU3RydWN0JTo6TWV0YWRhdGE6
Om1fYXJpdGhQcm9maWxlW21ldGFkYXRhXSwgdGVtcAotICAgIG9yaCB0eXBlLCBCaW5hcnlBcml0
aFByb2ZpbGU6Om1fYml0c1t0ZW1wXQorbWFjcm8gdXBkYXRlQmluYXJ5QXJpdGhQcm9maWxlKGdl
dCwgdHlwZSwgc2NyYXRjaDEsIHNjcmF0Y2gyKQorICAgIGdldChtX3Byb2ZpbGVJbmRleCwgc2Ny
YXRjaDEpCisgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHNjcmF0Y2gyCisgICAgbG9hZHAgQ29k
ZUJsb2NrOjptX3VubGlua2VkQ29kZVtzY3JhdGNoMl0sIHNjcmF0Y2gyCisgICAgbG9hZHAgVW5s
aW5rZWRDb2RlQmxvY2s6Om1fYmluYXJ5QXJpdGhQcm9maWxlcyArIEZpeGVkVmVjdG9yOjptX3N0
b3JhZ2UgKyBSZWZDb3VudGVkQXJyYXk6Om1fZGF0YVtzY3JhdGNoMl0sIHNjcmF0Y2gyCisgICAg
b3JoIHR5cGUsIEJpbmFyeUFyaXRoUHJvZmlsZTo6bV9iaXRzW3NjcmF0Y2gyLCBzY3JhdGNoMSwg
Ml0KIGVuZAogCiAvLyBGSVhNRTogV2Ugc2hvdWxkIG5vdCBuZWVkIHRoZSBYODZfNjRfV0lOIGNv
bmRpdGlvbiBoZXJlLCBzaW5jZSBXRUJBU1NFTUJMWSBzaG91bGQgYWxyZWFkeSBiZSBmYWxzZSBv
biBXaW5kb3dzCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93
UGF0aHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nv
bW1vblNsb3dQYXRocy5jcHAJKHJldmlzaW9uIDI4MzA4NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3OCw5
ICs0NzgsOCBAQCBKU0NfREVGSU5FX0NPTU1PTl9TTE9XX1BBVEgoc2xvd19wYXRoX3RvCiB9CiAK
ICNpZiBFTkFCTEUoSklUKQotc3RhdGljIHZvaWQgdXBkYXRlQXJpdGhQcm9maWxlRm9yVW5hcnlB
cml0aE9wKE9wTmVnYXRlOjpNZXRhZGF0YSYgbWV0YWRhdGEsIEpTVmFsdWUgcmVzdWx0LCBKU1Zh
bHVlIG9wZXJhbmQpCitzdGF0aWMgdm9pZCB1cGRhdGVBcml0aFByb2ZpbGVGb3JVbmFyeUFyaXRo
T3AoVW5hcnlBcml0aFByb2ZpbGUmIHByb2ZpbGUsIEpTVmFsdWUgcmVzdWx0LCBKU1ZhbHVlIG9w
ZXJhbmQpCiB7Ci0gICAgVW5hcnlBcml0aFByb2ZpbGUmIHByb2ZpbGUgPSAqbWV0YWRhdGEubV9h
cml0aFByb2ZpbGU7CiAgICAgcHJvZmlsZS5vYnNlcnZlQXJnKG9wZXJhbmQpOwogICAgIEFTU0VS
VChyZXN1bHQuaXNOdW1iZXIoKSB8fCByZXN1bHQuaXNCaWdJbnQoKSk7CiAKQEAgLTUxNCwyNCAr
NTEzLDI1IEBAIHN0YXRpYyB2b2lkIHVwZGF0ZUFyaXRoUHJvZmlsZUZvclVuYXJ5QXIKICAgICB9
CiB9CiAjZWxzZQotc3RhdGljIHZvaWQgdXBkYXRlQXJpdGhQcm9maWxlRm9yVW5hcnlBcml0aE9w
KE9wTmVnYXRlOjpNZXRhZGF0YSYsIEpTVmFsdWUsIEpTVmFsdWUpIHsgfQorc3RhdGljIHZvaWQg
dXBkYXRlQXJpdGhQcm9maWxlRm9yVW5hcnlBcml0aE9wKFVuYXJ5QXJpdGhQcm9maWxlJiwgSlNW
YWx1ZSwgSlNWYWx1ZSkgeyB9CiAjZW5kaWYKIAogSlNDX0RFRklORV9DT01NT05fU0xPV19QQVRI
KHNsb3dfcGF0aF9uZWdhdGUpCiB7CiAgICAgQkVHSU4oKTsKICAgICBhdXRvIGJ5dGVjb2RlID0g
cGMtPmFzPE9wTmVnYXRlPigpOwotICAgIGF1dG8mIG1ldGFkYXRhID0gYnl0ZWNvZGUubWV0YWRh
dGEoY29kZUJsb2NrKTsKICAgICBKU1ZhbHVlIG9wZXJhbmQgPSBHRVRfQyhieXRlY29kZS5tX29w
ZXJhbmQpLmpzVmFsdWUoKTsKICAgICBKU1ZhbHVlIHByaW1WYWx1ZSA9IG9wZXJhbmQudG9Qcmlt
aXRpdmUoZ2xvYmFsT2JqZWN0LCBQcmVmZXJOdW1iZXIpOwogICAgIENIRUNLX0VYQ0VQVElPTigp
OwogCisgICAgYXV0byYgcHJvZmlsZSA9IGNvZGVCbG9jay0+dW5saW5rZWRDb2RlQmxvY2soKS0+
dW5hcnlBcml0aFByb2ZpbGUoYnl0ZWNvZGUubV9wcm9maWxlSW5kZXgpOworCiAjaWYgVVNFKEJJ
R0lOVDMyKQogICAgIGlmIChwcmltVmFsdWUuaXNCaWdJbnQzMigpKSB7CiAgICAgICAgIEpTVmFs
dWUgcmVzdWx0ID0gSlNCaWdJbnQ6OnVuYXJ5TWludXMoZ2xvYmFsT2JqZWN0LCBwcmltVmFsdWUu
YmlnSW50MzJBc0ludDMyKCkpOwogICAgICAgICBDSEVDS19FWENFUFRJT04oKTsKICAgICAgICAg
UkVUVVJOX1dJVEhfUFJPRklMSU5HKHJlc3VsdCwgewotICAgICAgICAgICAgdXBkYXRlQXJpdGhQ
cm9maWxlRm9yVW5hcnlBcml0aE9wKG1ldGFkYXRhLCByZXN1bHQsIG9wZXJhbmQpOworICAgICAg
ICAgICAgdXBkYXRlQXJpdGhQcm9maWxlRm9yVW5hcnlBcml0aE9wKHByb2ZpbGUsIHJlc3VsdCwg
b3BlcmFuZCk7CiAgICAgICAgIH0pOwogICAgIH0KICNlbmRpZgpAQCAtNTQwLDE0ICs1NDAsMTQg
QEAgSlNDX0RFRklORV9DT01NT05fU0xPV19QQVRIKHNsb3dfcGF0aF9uZQogICAgICAgICBKU1Zh
bHVlIHJlc3VsdCA9IEpTQmlnSW50Ojp1bmFyeU1pbnVzKGdsb2JhbE9iamVjdCwgcHJpbVZhbHVl
LmFzSGVhcEJpZ0ludCgpKTsKICAgICAgICAgQ0hFQ0tfRVhDRVBUSU9OKCk7CiAgICAgICAgIFJF
VFVSTl9XSVRIX1BST0ZJTElORyhyZXN1bHQsIHsKLSAgICAgICAgICAgIHVwZGF0ZUFyaXRoUHJv
ZmlsZUZvclVuYXJ5QXJpdGhPcChtZXRhZGF0YSwgcmVzdWx0LCBvcGVyYW5kKTsKKyAgICAgICAg
ICAgIHVwZGF0ZUFyaXRoUHJvZmlsZUZvclVuYXJ5QXJpdGhPcChwcm9maWxlLCByZXN1bHQsIG9w
ZXJhbmQpOwogICAgICAgICB9KTsKICAgICB9CiAgICAgCiAgICAgSlNWYWx1ZSByZXN1bHQgPSBq
c051bWJlcigtcHJpbVZhbHVlLnRvTnVtYmVyKGdsb2JhbE9iamVjdCkpOwogICAgIENIRUNLX0VY
Q0VQVElPTigpOwogICAgIFJFVFVSTl9XSVRIX1BST0ZJTElORyhyZXN1bHQsIHsKLSAgICAgICAg
dXBkYXRlQXJpdGhQcm9maWxlRm9yVW5hcnlBcml0aE9wKG1ldGFkYXRhLCByZXN1bHQsIG9wZXJh
bmQpOworICAgICAgICB1cGRhdGVBcml0aFByb2ZpbGVGb3JVbmFyeUFyaXRoT3AocHJvZmlsZSwg
cmVzdWx0LCBvcGVyYW5kKTsKICAgICB9KTsKIH0KIAo=
</data>
<flag name="commit-queue"
          id="462890"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439284</attachid>
            <date>2021-09-25 21:43:25 -0700</date>
            <delta_ts>2021-09-25 21:56:45 -0700</delta_ts>
            <desc>patch</desc>
            <filename>b-backup.diff</filename>
            <type>text/plain</type>
            <size>26715</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjgzMDg1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ1IEBA
CisyMDIxLTA5LTI1ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IE1ha2UgYnl0ZSBjb2RlcyB3aXRoIGFyaXRobWV0aWMgcHJvZmlsZXMgc3dpdGNoIHRvIHVzaW5n
IGFuIGluZGV4IGluc3RlYWQgb2YgYSBwb2ludGVyIGluIG1ldGFkYXRhCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzA3OTgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIG1ha2VzIGVhY2gg
Ynl0ZWNvZGUgdGhhdCB1c2VzIGEgQmluYXJ5QXJpdGhQcm9maWxlL1VuYXJ5QXJpdGhQcm9maWxl
CisgICAgICAgIGhhdmUgYW4gaW5kZXggaW50byBhIHRhYmxlIGluc3RlYWQgb2Ygc3RvcmluZyBh
IHBvaW50ZXIgdG8gdGhlIHByb2ZpbGUgaW4gaXRzIG1ldGFkYXRhLgorICAgICAgICBUaGVuLCB3
ZSBjYW4ganVzdCBsb2FkIHRoZSBwcm9maWxlIHVzaW5nIHRoZSBpbmRleCBpbiB0aGUgYnl0ZWNv
ZGUsIHdoaWNoIHNhdmVzIG1lbW9yeS4KKworICAgICAgICAqIGJ5dGVjb2RlL0J5dGVjb2RlTGlz
dC5yYjoKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgorICAgICAgICAoSlNDOjpD
b2RlQmxvY2s6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpiaW5h
cnlBcml0aFByb2ZpbGVGb3JQQyk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6dW5hcnlBcml0
aFByb2ZpbGVGb3JQQyk6CisgICAgICAgICogYnl0ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2suY3Bw
OgorICAgICAgICAoSlNDOjpVbmxpbmtlZENvZGVCbG9jazo6YWxsb2NhdGVTaGFyZWRQcm9maWxl
cyk6CisgICAgICAgICogYnl0ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2suaDoKKyAgICAgICAgKiBi
eXRlY29kZS9VbmxpbmtlZENvZGVCbG9ja0dlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6OlVu
bGlua2VkQ29kZUJsb2NrR2VuZXJhdG9yOjpmaW5hbGl6ZSk6CisgICAgICAgICogYnl0ZWNvZGUv
VW5saW5rZWRDb2RlQmxvY2tHZW5lcmF0b3IuaDoKKyAgICAgICAgKEpTQzo6VW5saW5rZWRDb2Rl
QmxvY2tHZW5lcmF0b3I6OmFkZEJpbmFyeUFyaXRoUHJvZmlsZSk6CisgICAgICAgIChKU0M6OlVu
bGlua2VkQ29kZUJsb2NrR2VuZXJhdG9yOjphZGRVbmFyeUFyaXRoUHJvZmlsZSk6CisgICAgICAg
ICogYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6Qnl0
ZWNvZGVHZW5lcmF0b3I6OmVtaXRVbmFyeU9wKToKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5l
cmF0b3I6OmVtaXRJbmMpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdERl
Yyk6CisgICAgICAgICogYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmg6CisgICAgICAg
ICogaml0L0pJVEFyaXRobWV0aWMuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfbmVn
YXRlKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2FkZCk6CisgICAgICAgIChKU0M6OkpJ
VDo6ZW1pdF9vcF9kaXYpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfbXVsKToKKyAgICAg
ICAgKEpTQzo6SklUOjplbWl0X29wX3N1Yik6CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRl
cnByZXRlci5hc206CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFz
bToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtOgorICAgICAgICAq
IHJ1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcDoKKyAgICAgICAgKEpTQzo6dXBkYXRlQXJpdGhQ
cm9maWxlRm9yVW5hcnlBcml0aE9wKToKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9DT01NT05f
U0xPV19QQVRIKToKKwogMjAyMS0wOS0yNSAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNv
bT4KIAogICAgICAgICBCdWlsZCBhbiB1bmxpbmtlZCBiYXNlbGluZSBKSVQKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QucmIKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5yYgkocmV2aXNpb24g
MjgzMDg0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5y
Ygkod29ya2luZyBjb3B5KQpAQCAtNjQsOCArNjQsNiBAQCB0eXBlcyBbCiAKICAgICA6VmFsdWVQ
cm9maWxlLAogICAgIDpWYWx1ZVByb2ZpbGVBbmRWaXJ0dWFsUmVnaXN0ZXJCdWZmZXIsCi0gICAg
OlVuYXJ5QXJpdGhQcm9maWxlLAotICAgIDpCaW5hcnlBcml0aFByb2ZpbGUsCiAgICAgOkFycmF5
UHJvZmlsZSwKICAgICA6QXJyYXlBbGxvY2F0aW9uUHJvZmlsZSwKICAgICA6T2JqZWN0QWxsb2Nh
dGlvblByb2ZpbGUsCkBAIC0yODksMTAgKzI4Nyw4IEBAIG9wX2dyb3VwIDpQcm9maWxlZEJpbmFy
eU9wLAogICAgICAgICBkc3Q6IFZpcnR1YWxSZWdpc3RlciwKICAgICAgICAgbGhzOiBWaXJ0dWFs
UmVnaXN0ZXIsCiAgICAgICAgIHJoczogVmlydHVhbFJlZ2lzdGVyLAorICAgICAgICBwcm9maWxl
SW5kZXg6IHVuc2lnbmVkLAogICAgICAgICBvcGVyYW5kVHlwZXM6IE9wZXJhbmRUeXBlcywKLSAg
ICB9LAotICAgIG1ldGFkYXRhOiB7Ci0gICAgICAgIGFyaXRoUHJvZmlsZTogQmluYXJ5QXJpdGhQ
cm9maWxlLioKICAgICB9CiAKIG9wX2dyb3VwIDpWYWx1ZVByb2ZpbGVkQmluYXJ5T3AsCkBAIC0z
NTEsOSArMzQ3LDcgQEAgb3BfZ3JvdXAgOlVuYXJ5SW5QbGFjZVByb2ZpbGVkT3AsCiAgICAgXSwK
ICAgICBhcmdzOiB7CiAgICAgICAgIHNyY0RzdDogVmlydHVhbFJlZ2lzdGVyLAotICAgIH0sCi0g
ICAgbWV0YWRhdGE6IHsKLSAgICAgICAgYXJpdGhQcm9maWxlOiBVbmFyeUFyaXRoUHJvZmlsZS4q
CisgICAgICAgIHByb2ZpbGVJbmRleDogdW5zaWduZWQsCiAgICAgfQogCiBvcCA6dG9fb2JqZWN0
LApAQCAtMzgzLDEwICszNzcsOCBAQCBvcCA6bmVnYXRlLAogICAgIGFyZ3M6IHsKICAgICAgICAg
ZHN0OiBWaXJ0dWFsUmVnaXN0ZXIsCiAgICAgICAgIG9wZXJhbmQ6IFZpcnR1YWxSZWdpc3RlciwK
KyAgICAgICAgcHJvZmlsZUluZGV4OiB1bnNpZ25lZCwKICAgICAgICAgcmVzdWx0VHlwZTogUmVz
dWx0VHlwZSwKLSAgICB9LAotICAgIG1ldGFkYXRhOiB7Ci0gICAgICAgIGFyaXRoUHJvZmlsZTog
VW5hcnlBcml0aFByb2ZpbGUuKgogICAgIH0KIAogb3AgOm5vdCwKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCShyZXZpc2lvbiAyODMwODQpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDcxLDIxICs0NzEsNiBAQCBib29sIENvZGVCbG9jazo6ZmluaXNoQ3JlYXRpb24o
Vk0mIHZtLCBTCiAgICAgICAgIGJyZWFrOyBcCiAgICAgfQogCi0gICAgdW5zaWduZWQgYmluYXJ5
UHJvZmlsZUluZGV4ID0gMDsKLSAgICB1bnNpZ25lZCB1bmFyeVByb2ZpbGVJbmRleCA9IDA7Ci0j
ZGVmaW5lIExJTktfV0lUSF9CSU5BUllfQVJJVEhfUFJPRklMRShfX29wKSBcCi0gICAgQ0FTRShf
X29wKTogeyBcCi0gICAgICAgIElOSVRJQUxJWkVfTUVUQURBVEEoX19vcCkgXAotICAgICAgICBt
ZXRhZGF0YS5tX2FyaXRoUHJvZmlsZSA9ICZtX3VubGlua2VkQ29kZS0+YmluYXJ5QXJpdGhQcm9m
aWxlKGJpbmFyeVByb2ZpbGVJbmRleCsrKTsgXAotICAgICAgICBicmVhazsgXAotICAgIH0KLSNk
ZWZpbmUgTElOS19XSVRIX1VOQVJZX0FSSVRIX1BST0ZJTEUoX19vcCkgXAotICAgIENBU0UoX19v
cCk6IHsgXAotICAgICAgICBJTklUSUFMSVpFX01FVEFEQVRBKF9fb3ApIFwKLSAgICAgICAgbWV0
YWRhdGEubV9hcml0aFByb2ZpbGUgPSAmbV91bmxpbmtlZENvZGUtPnVuYXJ5QXJpdGhQcm9maWxl
KHVuYXJ5UHJvZmlsZUluZGV4KyspOyBcCi0gICAgICAgIGJyZWFrOyBcCi0gICAgfQotCiAgICAg
Y29uc3QgSW5zdHJ1Y3Rpb25TdHJlYW0mIGluc3RydWN0aW9uU3RyZWFtID0gaW5zdHJ1Y3Rpb25z
KCk7CiAgICAgZm9yIChjb25zdCBhdXRvJiBpbnN0cnVjdGlvbiA6IGluc3RydWN0aW9uU3RyZWFt
KSB7CiAgICAgICAgIE9wY29kZUlEIG9wY29kZUlEID0gaW5zdHJ1Y3Rpb24tPm9wY29kZUlEKCk7
CkBAIC01NDgsMTUgKzUzMyw2IEBAIGJvb2wgQ29kZUJsb2NrOjpmaW5pc2hDcmVhdGlvbihWTSYg
dm0sIFMKICAgICAgICAgTElOSyhPcENyZWF0ZVByb21pc2UpCiAgICAgICAgIExJTksoT3BDcmVh
dGVHZW5lcmF0b3IpCiAKLSAgICAgICAgTElOS19XSVRIX0JJTkFSWV9BUklUSF9QUk9GSUxFKE9w
QWRkKQotICAgICAgICBMSU5LX1dJVEhfQklOQVJZX0FSSVRIX1BST0ZJTEUoT3BNdWwpCi0gICAg
ICAgIExJTktfV0lUSF9CSU5BUllfQVJJVEhfUFJPRklMRShPcERpdikKLSAgICAgICAgTElOS19X
SVRIX0JJTkFSWV9BUklUSF9QUk9GSUxFKE9wU3ViKQotCi0gICAgICAgIExJTktfV0lUSF9VTkFS
WV9BUklUSF9QUk9GSUxFKE9wTmVnYXRlKQotICAgICAgICBMSU5LX1dJVEhfVU5BUllfQVJJVEhf
UFJPRklMRShPcEluYykKLSAgICAgICAgTElOS19XSVRIX1VOQVJZX0FSSVRIX1BST0ZJTEUoT3BE
ZWMpCi0KICAgICAgICAgTElOSyhPcEpuZXFQdHIpCiAKICAgICAgICAgTElOSyhPcENhdGNoKQpA
QCAtMzQxMywxMyArMzM4OSwxMyBAQCBCaW5hcnlBcml0aFByb2ZpbGUqIENvZGVCbG9jazo6Ymlu
YXJ5QXJpCiB7CiAgICAgc3dpdGNoIChwYy0+b3Bjb2RlSUQoKSkgewogICAgIGNhc2Ugb3BfYWRk
OgotICAgICAgICByZXR1cm4gcGMtPmFzPE9wQWRkPigpLm1ldGFkYXRhKHRoaXMpLm1fYXJpdGhQ
cm9maWxlOworICAgICAgICByZXR1cm4gJnVubGlua2VkQ29kZUJsb2NrKCktPmJpbmFyeUFyaXRo
UHJvZmlsZShwYy0+YXM8T3BBZGQ+KCkubV9wcm9maWxlSW5kZXgpOwogICAgIGNhc2Ugb3BfbXVs
OgotICAgICAgICByZXR1cm4gcGMtPmFzPE9wTXVsPigpLm1ldGFkYXRhKHRoaXMpLm1fYXJpdGhQ
cm9maWxlOworICAgICAgICByZXR1cm4gJnVubGlua2VkQ29kZUJsb2NrKCktPmJpbmFyeUFyaXRo
UHJvZmlsZShwYy0+YXM8T3BNdWw+KCkubV9wcm9maWxlSW5kZXgpOwogICAgIGNhc2Ugb3Bfc3Vi
OgotICAgICAgICByZXR1cm4gcGMtPmFzPE9wU3ViPigpLm1ldGFkYXRhKHRoaXMpLm1fYXJpdGhQ
cm9maWxlOworICAgICAgICByZXR1cm4gJnVubGlua2VkQ29kZUJsb2NrKCktPmJpbmFyeUFyaXRo
UHJvZmlsZShwYy0+YXM8T3BTdWI+KCkubV9wcm9maWxlSW5kZXgpOwogICAgIGNhc2Ugb3BfZGl2
OgotICAgICAgICByZXR1cm4gcGMtPmFzPE9wRGl2PigpLm1ldGFkYXRhKHRoaXMpLm1fYXJpdGhQ
cm9maWxlOworICAgICAgICByZXR1cm4gJnVubGlua2VkQ29kZUJsb2NrKCktPmJpbmFyeUFyaXRo
UHJvZmlsZShwYy0+YXM8T3BEaXY+KCkubV9wcm9maWxlSW5kZXgpOwogICAgIGRlZmF1bHQ6CiAg
ICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTM0MzEsMTEgKzM0MDcsMTEgQEAgVW5hcnlBcml0aFBy
b2ZpbGUqIENvZGVCbG9jazo6dW5hcnlBcml0aAogewogICAgIHN3aXRjaCAocGMtPm9wY29kZUlE
KCkpIHsKICAgICBjYXNlIG9wX25lZ2F0ZToKLSAgICAgICAgcmV0dXJuIHBjLT5hczxPcE5lZ2F0
ZT4oKS5tZXRhZGF0YSh0aGlzKS5tX2FyaXRoUHJvZmlsZTsKKyAgICAgICAgcmV0dXJuICZ1bmxp
bmtlZENvZGVCbG9jaygpLT51bmFyeUFyaXRoUHJvZmlsZShwYy0+YXM8T3BOZWdhdGU+KCkubV9w
cm9maWxlSW5kZXgpOwogICAgIGNhc2Ugb3BfaW5jOgotICAgICAgICByZXR1cm4gcGMtPmFzPE9w
SW5jPigpLm1ldGFkYXRhKHRoaXMpLm1fYXJpdGhQcm9maWxlOworICAgICAgICByZXR1cm4gJnVu
bGlua2VkQ29kZUJsb2NrKCktPnVuYXJ5QXJpdGhQcm9maWxlKHBjLT5hczxPcEluYz4oKS5tX3By
b2ZpbGVJbmRleCk7CiAgICAgY2FzZSBvcF9kZWM6Ci0gICAgICAgIHJldHVybiBwYy0+YXM8T3BE
ZWM+KCkubWV0YWRhdGEodGhpcykubV9hcml0aFByb2ZpbGU7CisgICAgICAgIHJldHVybiAmdW5s
aW5rZWRDb2RlQmxvY2soKS0+dW5hcnlBcml0aFByb2ZpbGUocGMtPmFzPE9wRGVjPigpLm1fcHJv
ZmlsZUluZGV4KTsKICAgICBkZWZhdWx0OgogICAgICAgICBicmVhazsKICAgICB9CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2suY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZENvZGVCbG9j
ay5jcHAJKHJldmlzaW9uIDI4MzA4NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9VbmxpbmtlZENvZGVCbG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2MSw3ICszNjEsNyBA
QCBpbnQzMl90IFVubGlua2VkQ29kZUJsb2NrOjp0aHJlc2hvbGRGb3JKCiB9CiAKIAotdm9pZCBV
bmxpbmtlZENvZGVCbG9jazo6YWxsb2NhdGVTaGFyZWRQcm9maWxlcygpCit2b2lkIFVubGlua2Vk
Q29kZUJsb2NrOjphbGxvY2F0ZVNoYXJlZFByb2ZpbGVzKHVuc2lnbmVkIG51bUJpbmFyeUFyaXRo
UHJvZmlsZXMsIHVuc2lnbmVkIG51bVVuYXJ5QXJpdGhQcm9maWxlcykKIHsKICAgICBSRUxFQVNF
X0FTU0VSVCghbV9tZXRhZGF0YS0+aXNGaW5hbGl6ZWQoKSk7CiAKQEAgLTM4OSwxOSArMzg5LDEw
IEBAIHZvaWQgVW5saW5rZWRDb2RlQmxvY2s6OmFsbG9jYXRlU2hhcmVkUHIKICAgICAgICAgbnVt
YmVyT2ZBcnJheVByb2ZpbGVzICs9IG1fbWV0YWRhdGEtPm51bUVudHJpZXM8T3BJdGVyYXRvck5l
eHQ+KCk7CiAgICAgICAgIG51bWJlck9mQXJyYXlQcm9maWxlcyArPSBtX21ldGFkYXRhLT5udW1F
bnRyaWVzPE9wR2V0QnlJZD4oKTsKICAgICAgICAgbV9hcnJheVByb2ZpbGVzID0gRml4ZWRWZWN0
b3I8VW5saW5rZWRBcnJheVByb2ZpbGU+KG51bWJlck9mQXJyYXlQcm9maWxlcyk7Ci0KLSAgICAg
ICAgdW5zaWduZWQgbnVtYmVyT2ZCaW5hcnlBcml0aFByb2ZpbGVzID0gMDsKLSNkZWZpbmUgQ09V
TlQoX19vcCkgbnVtYmVyT2ZCaW5hcnlBcml0aFByb2ZpbGVzICs9IG1fbWV0YWRhdGEtPm51bUVu
dHJpZXM8X19vcD4oKTsKLSAgICAgICAgRk9SX0VBQ0hfT1BDT0RFX1dJVEhfQklOQVJZX0FSSVRI
X1BST0ZJTEUoQ09VTlQpCi0jdW5kZWYgQ09VTlQKLSAgICAgICAgbV9iaW5hcnlBcml0aFByb2Zp
bGVzID0gRml4ZWRWZWN0b3I8QmluYXJ5QXJpdGhQcm9maWxlPihudW1iZXJPZkJpbmFyeUFyaXRo
UHJvZmlsZXMpOwotCi0gICAgICAgIHVuc2lnbmVkIG51bWJlck9mVW5hcnlBcml0aFByb2ZpbGVz
ID0gMDsKLSNkZWZpbmUgQ09VTlQoX19vcCkgbnVtYmVyT2ZVbmFyeUFyaXRoUHJvZmlsZXMgKz0g
bV9tZXRhZGF0YS0+bnVtRW50cmllczxfX29wPigpOwotICAgICAgICBGT1JfRUFDSF9PUENPREVf
V0lUSF9VTkFSWV9BUklUSF9QUk9GSUxFKENPVU5UKQotI3VuZGVmIENPVU5UCi0gICAgICAgIG1f
dW5hcnlBcml0aFByb2ZpbGVzID0gRml4ZWRWZWN0b3I8VW5hcnlBcml0aFByb2ZpbGU+KG51bWJl
ck9mVW5hcnlBcml0aFByb2ZpbGVzKTsKICAgICB9CisKKyAgICBtX2JpbmFyeUFyaXRoUHJvZmls
ZXMgPSBGaXhlZFZlY3RvcjxCaW5hcnlBcml0aFByb2ZpbGU+KG51bUJpbmFyeUFyaXRoUHJvZmls
ZXMpOworICAgIG1fdW5hcnlBcml0aFByb2ZpbGVzID0gRml4ZWRWZWN0b3I8VW5hcnlBcml0aFBy
b2ZpbGU+KG51bVVuYXJ5QXJpdGhQcm9maWxlcyk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkQ29kZUJsb2NrLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkQ29k
ZUJsb2NrLmgJKHJldmlzaW9uIDI4MzA4NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9VbmxpbmtlZENvZGVCbG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNTIsNyArMzUyLDcg
QEAgcHVibGljOgogICAgICAgICAvLyBTb21lIGJ1aWx0aW5zIGFyZSByZXF1aXJlZCB0byBhbHdh
eXMgY29tcGxldGUgdGhlIGxvb3BzIHRoZXkgcnVuLgogICAgICAgICByZXR1cm4gIWlzQnVpbHRp
bkZ1bmN0aW9uKCk7CiAgICAgfQotICAgIHZvaWQgYWxsb2NhdGVTaGFyZWRQcm9maWxlcygpOwor
ICAgIHZvaWQgYWxsb2NhdGVTaGFyZWRQcm9maWxlcyh1bnNpZ25lZCBudW1CaW5hcnlBcml0aFBy
b2ZpbGVzLCB1bnNpZ25lZCBudW1VbmFyeUFyaXRoUHJvZmlsZXMpOwogICAgIFVubGlua2VkVmFs
dWVQcm9maWxlJiB1bmxpbmtlZFZhbHVlUHJvZmlsZSh1bnNpZ25lZCBpbmRleCkgeyByZXR1cm4g
bV92YWx1ZVByb2ZpbGVzW2luZGV4XTsgfQogICAgIFVubGlua2VkQXJyYXlQcm9maWxlJiB1bmxp
bmtlZEFycmF5UHJvZmlsZSh1bnNpZ25lZCBpbmRleCkgeyByZXR1cm4gbV9hcnJheVByb2ZpbGVz
W2luZGV4XTsgfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5r
ZWRDb2RlQmxvY2tHZW5lcmF0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9VbmxpbmtlZENvZGVCbG9ja0dlbmVyYXRvci5jcHAJKHJldmlzaW9uIDI4
MzA4NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZENvZGVCbG9j
a0dlbmVyYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExOSw3ICsxMTksNyBAQCB2b2lkIFVu
bGlua2VkQ29kZUJsb2NrR2VuZXJhdG9yOjpmaW5hbGl6CiAgICAgewogICAgICAgICBMb2NrZXIg
bG9ja2VyIHsgbV9jb2RlQmxvY2stPmNlbGxMb2NrKCkgfTsKICAgICAgICAgbV9jb2RlQmxvY2st
Pm1faW5zdHJ1Y3Rpb25zID0gV1RGTW92ZShpbnN0cnVjdGlvbnMpOwotICAgICAgICBtX2NvZGVC
bG9jay0+YWxsb2NhdGVTaGFyZWRQcm9maWxlcygpOworICAgICAgICBtX2NvZGVCbG9jay0+YWxs
b2NhdGVTaGFyZWRQcm9maWxlcyhtX251bUJpbmFyeUFyaXRoUHJvZmlsZXMsIG1fbnVtVW5hcnlB
cml0aFByb2ZpbGVzKTsKICAgICAgICAgbV9jb2RlQmxvY2stPm1fbWV0YWRhdGEtPmZpbmFsaXpl
KCk7CiAKICAgICAgICAgbV9jb2RlQmxvY2stPm1fanVtcFRhcmdldHMgPSBXVEZNb3ZlKG1fanVt
cFRhcmdldHMpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2Vk
Q29kZUJsb2NrR2VuZXJhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL1VubGlua2VkQ29kZUJsb2NrR2VuZXJhdG9yLmgJKHJldmlzaW9uIDI4MzA4NCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZENvZGVCbG9ja0dlbmVy
YXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMDAsNiArMjAwLDkgQEAgcHVibGljOgogCiAgICAg
dm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3Q7CiAKKyAgICB1bnNpZ25lZCBhZGRCaW5hcnlB
cml0aFByb2ZpbGUoKSB7IHJldHVybiBtX251bUJpbmFyeUFyaXRoUHJvZmlsZXMrKzsgfQorICAg
IHVuc2lnbmVkIGFkZFVuYXJ5QXJpdGhQcm9maWxlKCkgeyByZXR1cm4gbV9udW1VbmFyeUFyaXRo
UHJvZmlsZXMrKzsgfQorCiBwcml2YXRlOgogICAgIFZNJiBtX3ZtOwogICAgIFN0cm9uZzxVbmxp
bmtlZENvZGVCbG9jaz4gbV9jb2RlQmxvY2s7CkBAIC0yMjEsNiArMjI0LDggQEAgcHJpdmF0ZToK
ICAgICBWZWN0b3I8SW5zdHJ1Y3Rpb25TdHJlYW06Ok9mZnNldD4gbV9vcFByb2ZpbGVDb250cm9s
Rmxvd0J5dGVjb2RlT2Zmc2V0czsKICAgICBWZWN0b3I8Qml0VmVjdG9yPiBtX2JpdFZlY3RvcnM7
CiAgICAgVmVjdG9yPElkZW50aWZpZXJTZXQ+IG1fY29uc3RhbnRJZGVudGlmaWVyU2V0czsKKyAg
ICB1bnNpZ25lZCBtX251bUJpbmFyeUFyaXRoUHJvZmlsZXMgeyAwIH07CisgICAgdW5zaWduZWQg
bV9udW1VbmFyeUFyaXRoUHJvZmlsZXMgeyAwIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0
b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIv
Qnl0ZWNvZGVHZW5lcmF0b3IuY3BwCShyZXZpc2lvbiAyODMwODQpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTU5OCw3ICsxNTk4LDcgQEAgUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVt
aXRVbmFyeQogICAgICAgICBlbWl0VW5hcnlPcDxPcE5vdD4oZHN0LCBzcmMpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIG9wX25lZ2F0ZToKLSAgICAgICAgT3BOZWdhdGU6OmVtaXQodGhpcywg
ZHN0LCBzcmMsIHR5cGUpOworICAgICAgICBPcE5lZ2F0ZTo6ZW1pdCh0aGlzLCBkc3QsIHNyYywg
bV9jb2RlQmxvY2stPmFkZFVuYXJ5QXJpdGhQcm9maWxlKCksIHR5cGUpOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIG9wX2JpdG5vdDoKICAgICAgICAgZW1pdFVuYXJ5T3A8T3BCaXRub3Q+KGRz
dCwgc3JjKTsKQEAgLTE2OTYsMTMgKzE2OTYsMTMgQEAgUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5l
cmF0b3I6OmVtaXRUeXBlTwogCiBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdElu
YyhSZWdpc3RlcklEKiBzcmNEc3QpCiB7Ci0gICAgT3BJbmM6OmVtaXQodGhpcywgc3JjRHN0KTsK
KyAgICBPcEluYzo6ZW1pdCh0aGlzLCBzcmNEc3QsIG1fY29kZUJsb2NrLT5hZGRVbmFyeUFyaXRo
UHJvZmlsZSgpKTsKICAgICByZXR1cm4gc3JjRHN0OwogfQogCiBSZWdpc3RlcklEKiBCeXRlY29k
ZUdlbmVyYXRvcjo6ZW1pdERlYyhSZWdpc3RlcklEKiBzcmNEc3QpCiB7Ci0gICAgT3BEZWM6OmVt
aXQodGhpcywgc3JjRHN0KTsKKyAgICBPcERlYzo6ZW1pdCh0aGlzLCBzcmNEc3QsIG1fY29kZUJs
b2NrLT5hZGRVbmFyeUFyaXRoUHJvZmlsZSgpKTsKICAgICByZXR1cm4gc3JjRHN0OwogfQogCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9y
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRl
Y29kZUdlbmVyYXRvci5oCShyZXZpc2lvbiAyODMwODQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTY4
Miw3ICs2ODIsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIFJlZ2lzdGVySUQqPgog
ICAgICAgICBlbWl0QmluYXJ5T3AoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBzcmMxLCBS
ZWdpc3RlcklEKiBzcmMyLCBPcGVyYW5kVHlwZXMgdHlwZXMpCiAgICAgICAgIHsKLSAgICAgICAg
ICAgIEJpbmFyeU9wOjplbWl0KHRoaXMsIGRzdCwgc3JjMSwgc3JjMiwgdHlwZXMpOworICAgICAg
ICAgICAgQmluYXJ5T3A6OmVtaXQodGhpcywgZHN0LCBzcmMxLCBzcmMyLCBtX2NvZGVCbG9jay0+
YWRkQmluYXJ5QXJpdGhQcm9maWxlKCksIHR5cGVzKTsKICAgICAgICAgICAgIHJldHVybiBkc3Q7
CiAgICAgICAgIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBcml0aG1l
dGljLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRo
bWV0aWMuY3BwCShyZXZpc2lvbiAyODMwODQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVEFyaXRobWV0aWMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MjIsNyArNzIyLDcgQEAgdm9p
ZCBKSVQ6OmVtaXRCaW5hcnlEb3VibGVPcChjb25zdCBJbnN0cgogCiB2b2lkIEpJVDo6ZW1pdF9v
cF9uZWdhdGUoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIHsKLSAgICBV
bmFyeUFyaXRoUHJvZmlsZSogYXJpdGhQcm9maWxlID0gY3VycmVudEluc3RydWN0aW9uLT5hczxP
cE5lZ2F0ZT4oKS5tZXRhZGF0YShtX3Byb2ZpbGVkQ29kZUJsb2NrKS5tX2FyaXRoUHJvZmlsZTsK
KyAgICBVbmFyeUFyaXRoUHJvZmlsZSogYXJpdGhQcm9maWxlID0gJm1fdW5saW5rZWRDb2RlQmxv
Y2stPnVuYXJ5QXJpdGhQcm9maWxlKGN1cnJlbnRJbnN0cnVjdGlvbi0+YXM8T3BOZWdhdGU+KCku
bV9wcm9maWxlSW5kZXgpOwogICAgIEpJVE5lZ0lDKiBuZWdhdGVJQyA9IG1fbWF0aElDcy5hZGRK
SVROZWdJQyhhcml0aFByb2ZpbGUpOwogICAgIG1faW5zdHJ1Y3Rpb25Ub01hdGhJQy5hZGQoY3Vy
cmVudEluc3RydWN0aW9uLCBuZWdhdGVJQyk7CiAgICAgLy8gRklYTUU6IGl0IHdvdWxkIGJlIGJl
dHRlciB0byBjYWxsIHRob3NlIG9wZXJhdGlvblZhbHVlTmVnYXRlLCBzaW5jZSB0aGUgb3BlcmFu
ZCBjYW4gYmUgYSBCaWdJbnQKQEAgLTkwNCw3ICs5MDQsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF91
cnNoaWZ0KGNvbnN0IEluc3RydWN0CiAKIHZvaWQgSklUOjplbWl0X29wX2FkZChjb25zdCBJbnN0
cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogewotICAgIEJpbmFyeUFyaXRoUHJvZmlsZSog
YXJpdGhQcm9maWxlID0gY3VycmVudEluc3RydWN0aW9uLT5hczxPcEFkZD4oKS5tZXRhZGF0YSht
X3Byb2ZpbGVkQ29kZUJsb2NrKS5tX2FyaXRoUHJvZmlsZTsKKyAgICBCaW5hcnlBcml0aFByb2Zp
bGUqIGFyaXRoUHJvZmlsZSA9ICZtX3VubGlua2VkQ29kZUJsb2NrLT5iaW5hcnlBcml0aFByb2Zp
bGUoY3VycmVudEluc3RydWN0aW9uLT5hczxPcEFkZD4oKS5tX3Byb2ZpbGVJbmRleCk7CiAgICAg
SklUQWRkSUMqIGFkZElDID0gbV9tYXRoSUNzLmFkZEpJVEFkZElDKGFyaXRoUHJvZmlsZSk7CiAg
ICAgbV9pbnN0cnVjdGlvblRvTWF0aElDLmFkZChjdXJyZW50SW5zdHJ1Y3Rpb24sIGFkZElDKTsK
ICAgICBlbWl0TWF0aElDRmFzdDxPcEFkZD4oYWRkSUMsIGN1cnJlbnRJbnN0cnVjdGlvbiwgb3Bl
cmF0aW9uVmFsdWVBZGRQcm9maWxlZCwgb3BlcmF0aW9uVmFsdWVBZGQpOwpAQCAtMTE3NSw3ICsx
MTc1LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZGl2KGNvbnN0IEluc3RydWN0aW9uKgogCiAgICAg
QmluYXJ5QXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUgPSBudWxscHRyOwogICAgIGlmIChzaG91
bGRFbWl0UHJvZmlsaW5nKCkpCi0gICAgICAgIGFyaXRoUHJvZmlsZSA9IGN1cnJlbnRJbnN0cnVj
dGlvbi0+YXM8T3BEaXY+KCkubWV0YWRhdGEobV9wcm9maWxlZENvZGVCbG9jaykubV9hcml0aFBy
b2ZpbGU7CisgICAgICAgIGFyaXRoUHJvZmlsZSA9ICZtX3VubGlua2VkQ29kZUJsb2NrLT5iaW5h
cnlBcml0aFByb2ZpbGUoY3VycmVudEluc3RydWN0aW9uLT5hczxPcERpdj4oKS5tX3Byb2ZpbGVJ
bmRleCk7CiAKICAgICBTbmlwcGV0T3BlcmFuZCBsZWZ0T3BlcmFuZChieXRlY29kZS5tX29wZXJh
bmRUeXBlcy5maXJzdCgpKTsKICAgICBTbmlwcGV0T3BlcmFuZCByaWdodE9wZXJhbmQoYnl0ZWNv
ZGUubV9vcGVyYW5kVHlwZXMuc2Vjb25kKCkpOwpAQCAtMTIyMCw3ICsxMjIwLDcgQEAgdm9pZCBK
SVQ6OmVtaXRfb3BfZGl2KGNvbnN0IEluc3RydWN0aW9uKgogCiB2b2lkIEpJVDo6ZW1pdF9vcF9t
dWwoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIHsKLSAgICBCaW5hcnlB
cml0aFByb2ZpbGUqIGFyaXRoUHJvZmlsZSA9IGN1cnJlbnRJbnN0cnVjdGlvbi0+YXM8T3BNdWw+
KCkubWV0YWRhdGEobV9wcm9maWxlZENvZGVCbG9jaykubV9hcml0aFByb2ZpbGU7CisgICAgQmlu
YXJ5QXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUgPSAmbV91bmxpbmtlZENvZGVCbG9jay0+Ymlu
YXJ5QXJpdGhQcm9maWxlKGN1cnJlbnRJbnN0cnVjdGlvbi0+YXM8T3BNdWw+KCkubV9wcm9maWxl
SW5kZXgpOwogICAgIEpJVE11bElDKiBtdWxJQyA9IG1fbWF0aElDcy5hZGRKSVRNdWxJQyhhcml0
aFByb2ZpbGUpOwogICAgIG1faW5zdHJ1Y3Rpb25Ub01hdGhJQy5hZGQoY3VycmVudEluc3RydWN0
aW9uLCBtdWxJQyk7CiAgICAgZW1pdE1hdGhJQ0Zhc3Q8T3BNdWw+KG11bElDLCBjdXJyZW50SW5z
dHJ1Y3Rpb24sIG9wZXJhdGlvblZhbHVlTXVsUHJvZmlsZWQsIG9wZXJhdGlvblZhbHVlTXVsKTsK
QEAgLTEyMzYsNyArMTIzNiw3IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9tdWwoY29uc3QgSW5z
dHJ1Y3QKIAogdm9pZCBKSVQ6OmVtaXRfb3Bfc3ViKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50
SW5zdHJ1Y3Rpb24pCiB7Ci0gICAgQmluYXJ5QXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUgPSBj
dXJyZW50SW5zdHJ1Y3Rpb24tPmFzPE9wU3ViPigpLm1ldGFkYXRhKG1fcHJvZmlsZWRDb2RlQmxv
Y2spLm1fYXJpdGhQcm9maWxlOworICAgIEJpbmFyeUFyaXRoUHJvZmlsZSogYXJpdGhQcm9maWxl
ID0gJm1fdW5saW5rZWRDb2RlQmxvY2stPmJpbmFyeUFyaXRoUHJvZmlsZShjdXJyZW50SW5zdHJ1
Y3Rpb24tPmFzPE9wU3ViPigpLm1fcHJvZmlsZUluZGV4KTsKICAgICBKSVRTdWJJQyogc3ViSUMg
PSBtX21hdGhJQ3MuYWRkSklUU3ViSUMoYXJpdGhQcm9maWxlKTsKICAgICBtX2luc3RydWN0aW9u
VG9NYXRoSUMuYWRkKGN1cnJlbnRJbnN0cnVjdGlvbiwgc3ViSUMpOwogICAgIGVtaXRNYXRoSUNG
YXN0PE9wU3ViPihzdWJJQywgY3VycmVudEluc3RydWN0aW9uLCBvcGVyYXRpb25WYWx1ZVN1YlBy
b2ZpbGVkLCBvcGVyYXRpb25WYWx1ZVN1Yik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQkocmV2aXNp
b24gMjgzMDg0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJw
cmV0ZXIzMl82NC5hc20JKHdvcmtpbmcgY29weSkKQEAgLTEwMTIsMTQgKzEwMTIsMTMgQEAgc3Ry
aWN0RXF1YWxpdHlKdW1wT3Aoam5zdHJpY3RlcSwgT3BKbnN0cgogCiBtYWNybyBwcmVPcChvcGNv
ZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIGludGVnZXJPcGVyYXRpb24pCiAgICAgbGxpbnRPcFdpdGhN
ZXRhZGF0YShvcF8lb3Bjb2RlTmFtZSUsIG9wY29kZVN0cnVjdCwgbWFjcm8gKHNpemUsIGdldCwg
ZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCi0gICAgICAgIG1ldGFkYXRhKHQxLCB0MikKICAg
ICAgICAgZ2V0KG1fc3JjRHN0LCB0MCkKICAgICAgICAgYmluZXEgVGFnT2Zmc2V0W2NmciwgdDAs
IDhdLCBJbnQzMlRhZywgLnNsb3cKICAgICAgICAgbG9hZGkgUGF5bG9hZE9mZnNldFtjZnIsIHQw
LCA4XSwgdDIKLSAgICAgICAgIyBNZXRhZGF0YSBpbiB0MSwgc3JjRHN0IGluIHQyCisgICAgICAg
ICMgc3JjRHN0IGluIHQyCiAgICAgICAgIGludGVnZXJPcGVyYXRpb24odDIsIC5zbG93KQogICAg
ICAgICBzdG9yZWkgdDIsIFBheWxvYWRPZmZzZXRbY2ZyLCB0MCwgOF0KLSAgICAgICAgdXBkYXRl
VW5hcnlBcml0aFByb2ZpbGUob3Bjb2RlU3RydWN0LCBBcml0aFByb2ZpbGVJbnQsIHQxLCB0MikK
KyAgICAgICAgdXBkYXRlVW5hcnlBcml0aFByb2ZpbGUoc2l6ZSwgb3Bjb2RlU3RydWN0LCBBcml0
aFByb2ZpbGVJbnQsIHQ1LCB0MikKICAgICAgICAgZGlzcGF0Y2goKQogCiAgICAgLnNsb3c6CkBA
IC0xMDg0LDE5ICsxMDgzLDE3IEBAIGVuZCkKIAogCiBsbGludE9wV2l0aE1ldGFkYXRhKG9wX25l
Z2F0ZSwgT3BOZWdhdGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0
dXJuKQotCi0gICAgbWV0YWRhdGEodDUsIHQwKQogICAgIGdldChtX29wZXJhbmQsIHQwKQogICAg
IGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwgdDAsIHQxLCB0MikKICAgICBiaW5lcSB0MSwg
SW50MzJUYWcsIC5vcE5lZ2F0ZVNyY05vdEludAogICAgIGJ0aXogdDIsIDB4N2ZmZmZmZmYsIC5v
cE5lZ2F0ZVNsb3cKICAgICBuZWdpIHQyCi0gICAgdXBkYXRlVW5hcnlBcml0aFByb2ZpbGUoT3BO
ZWdhdGUsIEFyaXRoUHJvZmlsZUludCwgdDUsIHQzKQorICAgIHVwZGF0ZVVuYXJ5QXJpdGhQcm9m
aWxlKHNpemUsIE9wTmVnYXRlLCBBcml0aFByb2ZpbGVJbnQsIHQwLCB0MykKICAgICByZXR1cm4g
KEludDMyVGFnLCB0MikKIC5vcE5lZ2F0ZVNyY05vdEludDoKICAgICBiaWEgdDEsIExvd2VzdFRh
ZywgLm9wTmVnYXRlU2xvdwogICAgIHhvcmkgMHg4MDAwMDAwMCwgdDEKLSAgICB1cGRhdGVVbmFy
eUFyaXRoUHJvZmlsZShPcE5lZ2F0ZSwgQXJpdGhQcm9maWxlTnVtYmVyLCB0NSwgdDMpCisgICAg
dXBkYXRlVW5hcnlBcml0aFByb2ZpbGUoc2l6ZSwgT3BOZWdhdGUsIEFyaXRoUHJvZmlsZU51bWJl
ciwgdDAsIHQzKQogICAgIHJldHVybih0MSwgdDIpCiAKIC5vcE5lZ2F0ZVNsb3c6CkBAIC0xMTA3
LDE0ICsxMTA0LDEzIEBAIGVuZCkKIAogbWFjcm8gYmluYXJ5T3BDdXN0b21TdG9yZShvcGNvZGVO
YW1lLCBvcGNvZGVTdHJ1Y3QsIGludGVnZXJPcGVyYXRpb25BbmRTdG9yZSwgZG91YmxlT3BlcmF0
aW9uKQogICAgIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfJW9wY29kZU5hbWUlLCBvcGNvZGVTdHJ1
Y3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuKQotICAgICAg
ICBtZXRhZGF0YSh0NSwgdDIpCiAgICAgICAgIGdldChtX3JocywgdDIpCiAgICAgICAgIGdldCht
X2xocywgdDApCiAgICAgICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwgdDIsIHQzLCB0
MSkKICAgICAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZTJSZWcoc2l6ZSwgdDAsIHQyLCB0MCkK
ICAgICAgICAgYmluZXEgdDIsIEludDMyVGFnLCAub3AxTm90SW50CiAgICAgICAgIGJpbmVxIHQz
LCBJbnQzMlRhZywgLm9wMk5vdEludAotICAgICAgICB1cGRhdGVCaW5hcnlBcml0aFByb2ZpbGUo
b3Bjb2RlU3RydWN0LCBBcml0aFByb2ZpbGVJbnRJbnQsIHQ1LCB0MikKKyAgICAgICAgdXBkYXRl
QmluYXJ5QXJpdGhQcm9maWxlKHNpemUsIG9wY29kZVN0cnVjdCwgQXJpdGhQcm9maWxlSW50SW50
LCB0NSwgdDIpCiAgICAgICAgIGdldChtX2RzdCwgdDIpCiAgICAgICAgIGludGVnZXJPcGVyYXRp
b25BbmRTdG9yZSh0MywgdDEsIHQwLCAuc2xvdywgdDIpCiAgICAgICAgIGRpc3BhdGNoKCkKQEAg
LTExMjQsMTIgKzExMjAsMTIgQEAgbWFjcm8gYmluYXJ5T3BDdXN0b21TdG9yZShvcGNvZGVOYW1l
LCBvcAogICAgICAgICBiaWEgdDIsIExvd2VzdFRhZywgLnNsb3cKICAgICAgICAgYmliIHQzLCBM
b3dlc3RUYWcsIC5vcDFOb3RJbnRPcDJEb3VibGUKICAgICAgICAgYmluZXEgdDMsIEludDMyVGFn
LCAuc2xvdwotICAgICAgICB1cGRhdGVCaW5hcnlBcml0aFByb2ZpbGUob3Bjb2RlU3RydWN0LCBB
cml0aFByb2ZpbGVOdW1iZXJJbnQsIHQ1LCB0NCkKKyAgICAgICAgdXBkYXRlQmluYXJ5QXJpdGhQ
cm9maWxlKHNpemUsIG9wY29kZVN0cnVjdCwgQXJpdGhQcm9maWxlTnVtYmVySW50LCB0NSwgdDQp
CiAgICAgICAgIGNpMmRzIHQxLCBmdDEKICAgICAgICAgam1wIC5vcDFOb3RJbnRSZWFkeQogICAg
IC5vcDFOb3RJbnRPcDJEb3VibGU6CiAgICAgICAgIGZpaTJkIHQxLCB0MywgZnQxCi0gICAgICAg
IHVwZGF0ZUJpbmFyeUFyaXRoUHJvZmlsZShvcGNvZGVTdHJ1Y3QsIEFyaXRoUHJvZmlsZU51bWJl
ck51bWJlciwgdDUsIHQ0KQorICAgICAgICB1cGRhdGVCaW5hcnlBcml0aFByb2ZpbGUoc2l6ZSwg
b3Bjb2RlU3RydWN0LCBBcml0aFByb2ZpbGVOdW1iZXJOdW1iZXIsIHQ1LCB0NCkKICAgICAub3Ax
Tm90SW50UmVhZHk6CiAgICAgICAgIGdldChtX2RzdCwgdDEpCiAgICAgICAgIGZpaTJkIHQwLCB0
MiwgZnQwCkBAIC0xMTQxLDcgKzExMzcsNyBAQCBtYWNybyBiaW5hcnlPcEN1c3RvbVN0b3JlKG9w
Y29kZU5hbWUsIG9wCiAgICAgICAgICMgRmlyc3Qgb3BlcmFuZCBpcyBkZWZpbml0ZWx5IGFuIGlu
dCwgdGhlIHNlY29uZCBvcGVyYW5kIGlzIGRlZmluaXRlbHkgbm90LgogICAgICAgICBnZXQobV9k
c3QsIHQyKQogICAgICAgICBiaWEgdDMsIExvd2VzdFRhZywgLnNsb3cKLSAgICAgICAgdXBkYXRl
QmluYXJ5QXJpdGhQcm9maWxlKG9wY29kZVN0cnVjdCwgQXJpdGhQcm9maWxlSW50TnVtYmVyLCB0
NSwgdDQpCisgICAgICAgIHVwZGF0ZUJpbmFyeUFyaXRoUHJvZmlsZShzaXplLCBvcGNvZGVTdHJ1
Y3QsIEFyaXRoUHJvZmlsZUludE51bWJlciwgdDUsIHQ0KQogICAgICAgICBjaTJkcyB0MCwgZnQw
CiAgICAgICAgIGZpaTJkIHQxLCB0MywgZnQxCiAgICAgICAgIGRvdWJsZU9wZXJhdGlvbihmdDEs
IGZ0MCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJl
dGVyNjQuYXNtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dM
ZXZlbEludGVycHJldGVyNjQuYXNtCShyZXZpc2lvbiAyODMwODQpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQkod29ya2luZyBjb3B5KQpA
QCAtMTA2MywxNCArMTA2MywxMyBAQCBtYWNybyBwcmVPcChvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1
Y3QsIGluCiAgICAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF8lb3Bjb2RlTmFtZSUsIG9wY29kZVN0
cnVjdCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCiAgICAg
ICAgIGdldChtX3NyY0RzdCwgdDApCiAgICAgICAgIGxvYWRxIFtjZnIsIHQwLCA4XSwgdDEKLSAg
ICAgICAgbWV0YWRhdGEodDIsIHQzKQotICAgICAgICAjIHNyY0RzdCBpbiB0MSwgbWV0YWRhdGEg
aW4gdDIKKyAgICAgICAgIyBzcmNEc3QgaW4gdDEKICAgICAgICAgIyBGSVhNRTogdGhlIG5leHQg
bGluZSBqdW1wcyB0byB0aGUgc2xvdyBwYXRoIGZvciBCaWdJbnQzMi4gV2UgY291bGQgaW5zdGVh
ZCBoYXZlIGEgZGVkaWNhdGVkIHBhdGggaW4gaGVyZSBmb3IgdGhlbS4KICAgICAgICAgYnFiIHQx
LCBudW1iZXJUYWcsIC5zbG93CiAgICAgICAgIGludGVnZXJPcGVyYXRpb24odDEsIC5zbG93KQog
ICAgICAgICBvcnEgbnVtYmVyVGFnLCB0MQogICAgICAgICBzdG9yZXEgdDEsIFtjZnIsIHQwLCA4
XQotICAgICAgICB1cGRhdGVVbmFyeUFyaXRoUHJvZmlsZShvcGNvZGVTdHJ1Y3QsIEFyaXRoUHJv
ZmlsZUludCwgdDIsIHQzKQorICAgICAgICB1cGRhdGVVbmFyeUFyaXRoUHJvZmlsZShzaXplLCBv
cGNvZGVTdHJ1Y3QsIEFyaXRoUHJvZmlsZUludCwgdDUsIHQzKQogICAgICAgICBkaXNwYXRjaCgp
CiAKICAgICAuc2xvdzoKQEAgLTExMzcsMTcgKzExMzYsMTYgQEAgZW5kKQogbGxpbnRPcFdpdGhN
ZXRhZGF0YShvcF9uZWdhdGUsIE9wTmVnYXRlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwg
bWV0YWRhdGEsIHJldHVybikKICAgICBnZXQobV9vcGVyYW5kLCB0MCkKICAgICBsb2FkQ29uc3Rh
bnRPclZhcmlhYmxlKHNpemUsIHQwLCB0MykKLSAgICBtZXRhZGF0YSh0MSwgdDIpCiAgICAgYnFi
IHQzLCBudW1iZXJUYWcsIC5vcE5lZ2F0ZU5vdEludAogICAgIGJ0aXogdDMsIDB4N2ZmZmZmZmYs
IC5vcE5lZ2F0ZVNsb3cKICAgICBuZWdpIHQzCiAgICAgb3JxIG51bWJlclRhZywgdDMKLSAgICB1
cGRhdGVVbmFyeUFyaXRoUHJvZmlsZShPcE5lZ2F0ZSwgQXJpdGhQcm9maWxlSW50LCB0MSwgdDIp
CisgICAgdXBkYXRlVW5hcnlBcml0aFByb2ZpbGUoc2l6ZSwgT3BOZWdhdGUsIEFyaXRoUHJvZmls
ZUludCwgdDEsIHQyKQogICAgIHJldHVybih0MykKIC5vcE5lZ2F0ZU5vdEludDoKICAgICBidHF6
IHQzLCBudW1iZXJUYWcsIC5vcE5lZ2F0ZVNsb3cKICAgICB4b3JxIDB4ODAwMDAwMDAwMDAwMDAw
MCwgdDMKLSAgICB1cGRhdGVVbmFyeUFyaXRoUHJvZmlsZShPcE5lZ2F0ZSwgQXJpdGhQcm9maWxl
TnVtYmVyLCB0MSwgdDIpCisgICAgdXBkYXRlVW5hcnlBcml0aFByb2ZpbGUoc2l6ZSwgT3BOZWdh
dGUsIEFyaXRoUHJvZmlsZU51bWJlciwgdDEsIHQyKQogICAgIHJldHVybih0MykKIAogLm9wTmVn
YXRlU2xvdzoKQEAgLTExNTgsOCArMTE1Niw2IEBAIGVuZCkKIAogbWFjcm8gYmluYXJ5T3BDdXN0
b21TdG9yZShvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIGludGVnZXJPcGVyYXRpb25BbmRTdG9y
ZSwgZG91YmxlT3BlcmF0aW9uKQogICAgIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfJW9wY29kZU5h
bWUlLCBvcGNvZGVTdHJ1Y3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwg
cmV0dXJuKQotICAgICAgICBtZXRhZGF0YSh0NSwgdDApCi0KICAgICAgICAgZ2V0KG1fcmhzLCB0
MCkKICAgICAgICAgZ2V0KG1fbGhzLCB0MikKICAgICAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJs
ZShzaXplLCB0MCwgdDEpCkBAIC0xMTY5LDcgKzExNjUsNyBAQCBtYWNybyBiaW5hcnlPcEN1c3Rv
bVN0b3JlKG9wY29kZU5hbWUsIG9wCiAgICAgICAgIGdldChtX2RzdCwgdDIpCiAgICAgICAgIGlu
dGVnZXJPcGVyYXRpb25BbmRTdG9yZSh0MSwgdDAsIC5zbG93LCB0MikKIAotICAgICAgICB1cGRh
dGVCaW5hcnlBcml0aFByb2ZpbGUob3Bjb2RlU3RydWN0LCBBcml0aFByb2ZpbGVJbnRJbnQsIHQ1
LCB0MikKKyAgICAgICAgdXBkYXRlQmluYXJ5QXJpdGhQcm9maWxlKHNpemUsIG9wY29kZVN0cnVj
dCwgQXJpdGhQcm9maWxlSW50SW50LCB0NSwgdDIpCiAgICAgICAgIGRpc3BhdGNoKCkKIAogICAg
IC5vcDFOb3RJbnQ6CkBAIC0xMTc5LDEwICsxMTc1LDEwIEBAIG1hY3JvIGJpbmFyeU9wQ3VzdG9t
U3RvcmUob3Bjb2RlTmFtZSwgb3AKICAgICAgICAgYnRxeiB0MSwgbnVtYmVyVGFnLCAuc2xvdwog
ICAgICAgICBhZGRxIG51bWJlclRhZywgdDEKICAgICAgICAgZnEyZCB0MSwgZnQxCi0gICAgICAg
IHVwZGF0ZUJpbmFyeUFyaXRoUHJvZmlsZShvcGNvZGVTdHJ1Y3QsIEFyaXRoUHJvZmlsZU51bWJl
ck51bWJlciwgdDUsIHQyKQorICAgICAgICB1cGRhdGVCaW5hcnlBcml0aFByb2ZpbGUoc2l6ZSwg
b3Bjb2RlU3RydWN0LCBBcml0aFByb2ZpbGVOdW1iZXJOdW1iZXIsIHQ1LCB0MikKICAgICAgICAg
am1wIC5vcDFOb3RJbnRSZWFkeQogICAgIC5vcDFOb3RJbnRPcDJJbnQ6Ci0gICAgICAgIHVwZGF0
ZUJpbmFyeUFyaXRoUHJvZmlsZShvcGNvZGVTdHJ1Y3QsIEFyaXRoUHJvZmlsZU51bWJlckludCwg
dDUsIHQyKQorICAgICAgICB1cGRhdGVCaW5hcnlBcml0aFByb2ZpbGUoc2l6ZSwgb3Bjb2RlU3Ry
dWN0LCBBcml0aFByb2ZpbGVOdW1iZXJJbnQsIHQ1LCB0MikKICAgICAgICAgY2kyZHMgdDEsIGZ0
MQogICAgIC5vcDFOb3RJbnRSZWFkeToKICAgICAgICAgZ2V0KG1fZHN0LCB0MikKQEAgLTExOTcs
NyArMTE5Myw3IEBAIG1hY3JvIGJpbmFyeU9wQ3VzdG9tU3RvcmUob3Bjb2RlTmFtZSwgb3AKICAg
ICAub3AyTm90SW50OgogICAgICAgICAjIEZpcnN0IG9wZXJhbmQgaXMgZGVmaW5pdGVseSBhbiBp
bnQsIHRoZSBzZWNvbmQgaXMgZGVmaW5pdGVseSBub3QuCiAgICAgICAgIGJ0cXogdDEsIG51bWJl
clRhZywgLnNsb3cKLSAgICAgICAgdXBkYXRlQmluYXJ5QXJpdGhQcm9maWxlKG9wY29kZVN0cnVj
dCwgQXJpdGhQcm9maWxlSW50TnVtYmVyLCB0NSwgdDIpCisgICAgICAgIHVwZGF0ZUJpbmFyeUFy
aXRoUHJvZmlsZShzaXplLCBvcGNvZGVTdHJ1Y3QsIEFyaXRoUHJvZmlsZUludE51bWJlciwgdDUs
IHQyKQogICAgICAgICBnZXQobV9kc3QsIHQyKQogICAgICAgICBjaTJkcyB0MCwgZnQwCiAgICAg
ICAgIGFkZHEgbnVtYmVyVGFnLCB0MQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQkocmV2aXNpb24gMjgzMDg0KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNTY2LDE0ICsyNTY2LDIwIEBAIG1hY3JvIG5vdFN1cHBvcnRlZCgpCiBl
bmQKIAogCi1tYWNybyB1cGRhdGVVbmFyeUFyaXRoUHJvZmlsZShvcGNvZGVTdHJ1Y3QsIHR5cGUs
IG1ldGFkYXRhLCB0ZW1wKQotICAgIGxvYWRwICVvcGNvZGVTdHJ1Y3QlOjpNZXRhZGF0YTo6bV9h
cml0aFByb2ZpbGVbbWV0YWRhdGFdLCB0ZW1wCi0gICAgb3JoIHR5cGUsIFVuYXJ5QXJpdGhQcm9m
aWxlOjptX2JpdHNbdGVtcF0KK21hY3JvIHVwZGF0ZVVuYXJ5QXJpdGhQcm9maWxlKHNpemUsIG9w
Y29kZVN0cnVjdCwgdHlwZSwgc2NyYXRjaDEsIHNjcmF0Y2gyKQorICAgIGdldHUoc2l6ZSwgb3Bj
b2RlU3RydWN0LCBtX3Byb2ZpbGVJbmRleCwgc2NyYXRjaDEpCisgICAgbG9hZHAgQ29kZUJsb2Nr
W2Nmcl0sIHNjcmF0Y2gyCisgICAgbG9hZHAgQ29kZUJsb2NrOjptX3VubGlua2VkQ29kZVtzY3Jh
dGNoMl0sIHNjcmF0Y2gyCisgICAgbG9hZHAgVW5saW5rZWRDb2RlQmxvY2s6Om1fdW5hcnlBcml0
aFByb2ZpbGVzICsgRml4ZWRWZWN0b3I6Om1fc3RvcmFnZSArIFJlZkNvdW50ZWRBcnJheTo6bV9k
YXRhW3NjcmF0Y2gyXSwgc2NyYXRjaDIKKyAgICBvcmggdHlwZSwgVW5hcnlBcml0aFByb2ZpbGU6
Om1fYml0c1tzY3JhdGNoMiwgc2NyYXRjaDEsIDJdCiBlbmQKIAotbWFjcm8gdXBkYXRlQmluYXJ5
QXJpdGhQcm9maWxlKG9wY29kZVN0cnVjdCwgdHlwZSwgbWV0YWRhdGEsIHRlbXApCi0gICAgbG9h
ZHAgJW9wY29kZVN0cnVjdCU6Ok1ldGFkYXRhOjptX2FyaXRoUHJvZmlsZVttZXRhZGF0YV0sIHRl
bXAKLSAgICBvcmggdHlwZSwgQmluYXJ5QXJpdGhQcm9maWxlOjptX2JpdHNbdGVtcF0KK21hY3Jv
IHVwZGF0ZUJpbmFyeUFyaXRoUHJvZmlsZShzaXplLCBvcGNvZGVTdHJ1Y3QsIHR5cGUsIHNjcmF0
Y2gxLCBzY3JhdGNoMikKKyAgICBnZXR1KHNpemUsIG9wY29kZVN0cnVjdCwgbV9wcm9maWxlSW5k
ZXgsIHNjcmF0Y2gxKQorICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCBzY3JhdGNoMgorICAgIGxv
YWRwIENvZGVCbG9jazo6bV91bmxpbmtlZENvZGVbc2NyYXRjaDJdLCBzY3JhdGNoMgorICAgIGxv
YWRwIFVubGlua2VkQ29kZUJsb2NrOjptX2JpbmFyeUFyaXRoUHJvZmlsZXMgKyBGaXhlZFZlY3Rv
cjo6bV9zdG9yYWdlICsgUmVmQ291bnRlZEFycmF5OjptX2RhdGFbc2NyYXRjaDJdLCBzY3JhdGNo
MgorICAgIG9yaCB0eXBlLCBCaW5hcnlBcml0aFByb2ZpbGU6Om1fYml0c1tzY3JhdGNoMiwgc2Ny
YXRjaDEsIDJdCiBlbmQKIAogLy8gRklYTUU6IFdlIHNob3VsZCBub3QgbmVlZCB0aGUgWDg2XzY0
X1dJTiBjb25kaXRpb24gaGVyZSwgc2luY2UgV0VCQVNTRU1CTFkgc2hvdWxkIGFscmVhZHkgYmUg
ZmFsc2Ugb24gV2luZG93cwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29t
bW9uU2xvd1BhdGhzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Db21tb25TbG93UGF0aHMuY3BwCShyZXZpc2lvbiAyODMwODQpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC00NzgsOSArNDc4LDggQEAgSlNDX0RFRklORV9DT01NT05fU0xPV19QQVRIKHNsb3dfcGF0aF90
bwogfQogCiAjaWYgRU5BQkxFKEpJVCkKLXN0YXRpYyB2b2lkIHVwZGF0ZUFyaXRoUHJvZmlsZUZv
clVuYXJ5QXJpdGhPcChPcE5lZ2F0ZTo6TWV0YWRhdGEmIG1ldGFkYXRhLCBKU1ZhbHVlIHJlc3Vs
dCwgSlNWYWx1ZSBvcGVyYW5kKQorc3RhdGljIHZvaWQgdXBkYXRlQXJpdGhQcm9maWxlRm9yVW5h
cnlBcml0aE9wKFVuYXJ5QXJpdGhQcm9maWxlJiBwcm9maWxlLCBKU1ZhbHVlIHJlc3VsdCwgSlNW
YWx1ZSBvcGVyYW5kKQogewotICAgIFVuYXJ5QXJpdGhQcm9maWxlJiBwcm9maWxlID0gKm1ldGFk
YXRhLm1fYXJpdGhQcm9maWxlOwogICAgIHByb2ZpbGUub2JzZXJ2ZUFyZyhvcGVyYW5kKTsKICAg
ICBBU1NFUlQocmVzdWx0LmlzTnVtYmVyKCkgfHwgcmVzdWx0LmlzQmlnSW50KCkpOwogCkBAIC01
MTQsMjQgKzUxMywyNSBAQCBzdGF0aWMgdm9pZCB1cGRhdGVBcml0aFByb2ZpbGVGb3JVbmFyeUFy
CiAgICAgfQogfQogI2Vsc2UKLXN0YXRpYyB2b2lkIHVwZGF0ZUFyaXRoUHJvZmlsZUZvclVuYXJ5
QXJpdGhPcChPcE5lZ2F0ZTo6TWV0YWRhdGEmLCBKU1ZhbHVlLCBKU1ZhbHVlKSB7IH0KK3N0YXRp
YyB2b2lkIHVwZGF0ZUFyaXRoUHJvZmlsZUZvclVuYXJ5QXJpdGhPcChVbmFyeUFyaXRoUHJvZmls
ZSYsIEpTVmFsdWUsIEpTVmFsdWUpIHsgfQogI2VuZGlmCiAKIEpTQ19ERUZJTkVfQ09NTU9OX1NM
T1dfUEFUSChzbG93X3BhdGhfbmVnYXRlKQogewogICAgIEJFR0lOKCk7CiAgICAgYXV0byBieXRl
Y29kZSA9IHBjLT5hczxPcE5lZ2F0ZT4oKTsKLSAgICBhdXRvJiBtZXRhZGF0YSA9IGJ5dGVjb2Rl
Lm1ldGFkYXRhKGNvZGVCbG9jayk7CiAgICAgSlNWYWx1ZSBvcGVyYW5kID0gR0VUX0MoYnl0ZWNv
ZGUubV9vcGVyYW5kKS5qc1ZhbHVlKCk7CiAgICAgSlNWYWx1ZSBwcmltVmFsdWUgPSBvcGVyYW5k
LnRvUHJpbWl0aXZlKGdsb2JhbE9iamVjdCwgUHJlZmVyTnVtYmVyKTsKICAgICBDSEVDS19FWENF
UFRJT04oKTsKIAorICAgIGF1dG8mIHByb2ZpbGUgPSBjb2RlQmxvY2stPnVubGlua2VkQ29kZUJs
b2NrKCktPnVuYXJ5QXJpdGhQcm9maWxlKGJ5dGVjb2RlLm1fcHJvZmlsZUluZGV4KTsKKwogI2lm
IFVTRShCSUdJTlQzMikKICAgICBpZiAocHJpbVZhbHVlLmlzQmlnSW50MzIoKSkgewogICAgICAg
ICBKU1ZhbHVlIHJlc3VsdCA9IEpTQmlnSW50Ojp1bmFyeU1pbnVzKGdsb2JhbE9iamVjdCwgcHJp
bVZhbHVlLmJpZ0ludDMyQXNJbnQzMigpKTsKICAgICAgICAgQ0hFQ0tfRVhDRVBUSU9OKCk7CiAg
ICAgICAgIFJFVFVSTl9XSVRIX1BST0ZJTElORyhyZXN1bHQsIHsKLSAgICAgICAgICAgIHVwZGF0
ZUFyaXRoUHJvZmlsZUZvclVuYXJ5QXJpdGhPcChtZXRhZGF0YSwgcmVzdWx0LCBvcGVyYW5kKTsK
KyAgICAgICAgICAgIHVwZGF0ZUFyaXRoUHJvZmlsZUZvclVuYXJ5QXJpdGhPcChwcm9maWxlLCBy
ZXN1bHQsIG9wZXJhbmQpOwogICAgICAgICB9KTsKICAgICB9CiAjZW5kaWYKQEAgLTU0MCwxNCAr
NTQwLDE0IEBAIEpTQ19ERUZJTkVfQ09NTU9OX1NMT1dfUEFUSChzbG93X3BhdGhfbmUKICAgICAg
ICAgSlNWYWx1ZSByZXN1bHQgPSBKU0JpZ0ludDo6dW5hcnlNaW51cyhnbG9iYWxPYmplY3QsIHBy
aW1WYWx1ZS5hc0hlYXBCaWdJbnQoKSk7CiAgICAgICAgIENIRUNLX0VYQ0VQVElPTigpOwogICAg
ICAgICBSRVRVUk5fV0lUSF9QUk9GSUxJTkcocmVzdWx0LCB7Ci0gICAgICAgICAgICB1cGRhdGVB
cml0aFByb2ZpbGVGb3JVbmFyeUFyaXRoT3AobWV0YWRhdGEsIHJlc3VsdCwgb3BlcmFuZCk7Cisg
ICAgICAgICAgICB1cGRhdGVBcml0aFByb2ZpbGVGb3JVbmFyeUFyaXRoT3AocHJvZmlsZSwgcmVz
dWx0LCBvcGVyYW5kKTsKICAgICAgICAgfSk7CiAgICAgfQogICAgIAogICAgIEpTVmFsdWUgcmVz
dWx0ID0ganNOdW1iZXIoLXByaW1WYWx1ZS50b051bWJlcihnbG9iYWxPYmplY3QpKTsKICAgICBD
SEVDS19FWENFUFRJT04oKTsKICAgICBSRVRVUk5fV0lUSF9QUk9GSUxJTkcocmVzdWx0LCB7Ci0g
ICAgICAgIHVwZGF0ZUFyaXRoUHJvZmlsZUZvclVuYXJ5QXJpdGhPcChtZXRhZGF0YSwgcmVzdWx0
LCBvcGVyYW5kKTsKKyAgICAgICAgdXBkYXRlQXJpdGhQcm9maWxlRm9yVW5hcnlBcml0aE9wKHBy
b2ZpbGUsIHJlc3VsdCwgb3BlcmFuZCk7CiAgICAgfSk7CiB9CiAK
</data>
<flag name="commit-queue"
          id="462904"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439285</attachid>
            <date>2021-09-25 21:51:31 -0700</date>
            <delta_ts>2021-09-27 22:31:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>b-backup.diff</filename>
            <type>text/plain</type>
            <size>27408</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjgzMDg1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ1IEBA
CisyMDIxLTA5LTI1ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IE1ha2UgYnl0ZSBjb2RlcyB3aXRoIGFyaXRobWV0aWMgcHJvZmlsZXMgc3dpdGNoIHRvIHVzaW5n
IGFuIGluZGV4IGluc3RlYWQgb2YgYSBwb2ludGVyIGluIG1ldGFkYXRhCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzA3OTgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIG1ha2VzIGVhY2gg
Ynl0ZWNvZGUgdGhhdCB1c2VzIGEgQmluYXJ5QXJpdGhQcm9maWxlL1VuYXJ5QXJpdGhQcm9maWxl
CisgICAgICAgIGhhdmUgYW4gaW5kZXggaW50byBhIHRhYmxlIGluc3RlYWQgb2Ygc3RvcmluZyBh
IHBvaW50ZXIgdG8gdGhlIHByb2ZpbGUgaW4gaXRzIG1ldGFkYXRhLgorICAgICAgICBUaGVuLCB3
ZSBjYW4ganVzdCBsb2FkIHRoZSBwcm9maWxlIHVzaW5nIHRoZSBpbmRleCBpbiB0aGUgYnl0ZWNv
ZGUsIHdoaWNoIHNhdmVzIG1lbW9yeS4KKworICAgICAgICAqIGJ5dGVjb2RlL0J5dGVjb2RlTGlz
dC5yYjoKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgorICAgICAgICAoSlNDOjpD
b2RlQmxvY2s6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpiaW5h
cnlBcml0aFByb2ZpbGVGb3JQQyk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6dW5hcnlBcml0
aFByb2ZpbGVGb3JQQyk6CisgICAgICAgICogYnl0ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2suY3Bw
OgorICAgICAgICAoSlNDOjpVbmxpbmtlZENvZGVCbG9jazo6YWxsb2NhdGVTaGFyZWRQcm9maWxl
cyk6CisgICAgICAgICogYnl0ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2suaDoKKyAgICAgICAgKiBi
eXRlY29kZS9VbmxpbmtlZENvZGVCbG9ja0dlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6OlVu
bGlua2VkQ29kZUJsb2NrR2VuZXJhdG9yOjpmaW5hbGl6ZSk6CisgICAgICAgICogYnl0ZWNvZGUv
VW5saW5rZWRDb2RlQmxvY2tHZW5lcmF0b3IuaDoKKyAgICAgICAgKEpTQzo6VW5saW5rZWRDb2Rl
QmxvY2tHZW5lcmF0b3I6OmFkZEJpbmFyeUFyaXRoUHJvZmlsZSk6CisgICAgICAgIChKU0M6OlVu
bGlua2VkQ29kZUJsb2NrR2VuZXJhdG9yOjphZGRVbmFyeUFyaXRoUHJvZmlsZSk6CisgICAgICAg
ICogYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6Qnl0
ZWNvZGVHZW5lcmF0b3I6OmVtaXRVbmFyeU9wKToKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5l
cmF0b3I6OmVtaXRJbmMpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdERl
Yyk6CisgICAgICAgICogYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmg6CisgICAgICAg
ICogaml0L0pJVEFyaXRobWV0aWMuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfbmVn
YXRlKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2FkZCk6CisgICAgICAgIChKU0M6OkpJ
VDo6ZW1pdF9vcF9kaXYpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfbXVsKToKKyAgICAg
ICAgKEpTQzo6SklUOjplbWl0X29wX3N1Yik6CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRl
cnByZXRlci5hc206CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFz
bToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtOgorICAgICAgICAq
IHJ1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcDoKKyAgICAgICAgKEpTQzo6dXBkYXRlQXJpdGhQ
cm9maWxlRm9yVW5hcnlBcml0aE9wKToKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9DT01NT05f
U0xPV19QQVRIKToKKwogMjAyMS0wOS0yNSAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNv
bT4KIAogICAgICAgICBCdWlsZCBhbiB1bmxpbmtlZCBiYXNlbGluZSBKSVQKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QucmIKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5yYgkocmV2aXNpb24g
MjgzMDg0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5y
Ygkod29ya2luZyBjb3B5KQpAQCAtNjQsOCArNjQsNiBAQCB0eXBlcyBbCiAKICAgICA6VmFsdWVQ
cm9maWxlLAogICAgIDpWYWx1ZVByb2ZpbGVBbmRWaXJ0dWFsUmVnaXN0ZXJCdWZmZXIsCi0gICAg
OlVuYXJ5QXJpdGhQcm9maWxlLAotICAgIDpCaW5hcnlBcml0aFByb2ZpbGUsCiAgICAgOkFycmF5
UHJvZmlsZSwKICAgICA6QXJyYXlBbGxvY2F0aW9uUHJvZmlsZSwKICAgICA6T2JqZWN0QWxsb2Nh
dGlvblByb2ZpbGUsCkBAIC0yODksMTAgKzI4Nyw4IEBAIG9wX2dyb3VwIDpQcm9maWxlZEJpbmFy
eU9wLAogICAgICAgICBkc3Q6IFZpcnR1YWxSZWdpc3RlciwKICAgICAgICAgbGhzOiBWaXJ0dWFs
UmVnaXN0ZXIsCiAgICAgICAgIHJoczogVmlydHVhbFJlZ2lzdGVyLAorICAgICAgICBwcm9maWxl
SW5kZXg6IHVuc2lnbmVkLAogICAgICAgICBvcGVyYW5kVHlwZXM6IE9wZXJhbmRUeXBlcywKLSAg
ICB9LAotICAgIG1ldGFkYXRhOiB7Ci0gICAgICAgIGFyaXRoUHJvZmlsZTogQmluYXJ5QXJpdGhQ
cm9maWxlLioKICAgICB9CiAKIG9wX2dyb3VwIDpWYWx1ZVByb2ZpbGVkQmluYXJ5T3AsCkBAIC0z
NTEsOSArMzQ3LDcgQEAgb3BfZ3JvdXAgOlVuYXJ5SW5QbGFjZVByb2ZpbGVkT3AsCiAgICAgXSwK
ICAgICBhcmdzOiB7CiAgICAgICAgIHNyY0RzdDogVmlydHVhbFJlZ2lzdGVyLAotICAgIH0sCi0g
ICAgbWV0YWRhdGE6IHsKLSAgICAgICAgYXJpdGhQcm9maWxlOiBVbmFyeUFyaXRoUHJvZmlsZS4q
CisgICAgICAgIHByb2ZpbGVJbmRleDogdW5zaWduZWQsCiAgICAgfQogCiBvcCA6dG9fb2JqZWN0
LApAQCAtMzgzLDEwICszNzcsOCBAQCBvcCA6bmVnYXRlLAogICAgIGFyZ3M6IHsKICAgICAgICAg
ZHN0OiBWaXJ0dWFsUmVnaXN0ZXIsCiAgICAgICAgIG9wZXJhbmQ6IFZpcnR1YWxSZWdpc3RlciwK
KyAgICAgICAgcHJvZmlsZUluZGV4OiB1bnNpZ25lZCwKICAgICAgICAgcmVzdWx0VHlwZTogUmVz
dWx0VHlwZSwKLSAgICB9LAotICAgIG1ldGFkYXRhOiB7Ci0gICAgICAgIGFyaXRoUHJvZmlsZTog
VW5hcnlBcml0aFByb2ZpbGUuKgogICAgIH0KIAogb3AgOm5vdCwKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCShyZXZpc2lvbiAyODMwODQpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDcxLDIxICs0NzEsNiBAQCBib29sIENvZGVCbG9jazo6ZmluaXNoQ3JlYXRpb24o
Vk0mIHZtLCBTCiAgICAgICAgIGJyZWFrOyBcCiAgICAgfQogCi0gICAgdW5zaWduZWQgYmluYXJ5
UHJvZmlsZUluZGV4ID0gMDsKLSAgICB1bnNpZ25lZCB1bmFyeVByb2ZpbGVJbmRleCA9IDA7Ci0j
ZGVmaW5lIExJTktfV0lUSF9CSU5BUllfQVJJVEhfUFJPRklMRShfX29wKSBcCi0gICAgQ0FTRShf
X29wKTogeyBcCi0gICAgICAgIElOSVRJQUxJWkVfTUVUQURBVEEoX19vcCkgXAotICAgICAgICBt
ZXRhZGF0YS5tX2FyaXRoUHJvZmlsZSA9ICZtX3VubGlua2VkQ29kZS0+YmluYXJ5QXJpdGhQcm9m
aWxlKGJpbmFyeVByb2ZpbGVJbmRleCsrKTsgXAotICAgICAgICBicmVhazsgXAotICAgIH0KLSNk
ZWZpbmUgTElOS19XSVRIX1VOQVJZX0FSSVRIX1BST0ZJTEUoX19vcCkgXAotICAgIENBU0UoX19v
cCk6IHsgXAotICAgICAgICBJTklUSUFMSVpFX01FVEFEQVRBKF9fb3ApIFwKLSAgICAgICAgbWV0
YWRhdGEubV9hcml0aFByb2ZpbGUgPSAmbV91bmxpbmtlZENvZGUtPnVuYXJ5QXJpdGhQcm9maWxl
KHVuYXJ5UHJvZmlsZUluZGV4KyspOyBcCi0gICAgICAgIGJyZWFrOyBcCi0gICAgfQotCiAgICAg
Y29uc3QgSW5zdHJ1Y3Rpb25TdHJlYW0mIGluc3RydWN0aW9uU3RyZWFtID0gaW5zdHJ1Y3Rpb25z
KCk7CiAgICAgZm9yIChjb25zdCBhdXRvJiBpbnN0cnVjdGlvbiA6IGluc3RydWN0aW9uU3RyZWFt
KSB7CiAgICAgICAgIE9wY29kZUlEIG9wY29kZUlEID0gaW5zdHJ1Y3Rpb24tPm9wY29kZUlEKCk7
CkBAIC01NDgsMTUgKzUzMyw2IEBAIGJvb2wgQ29kZUJsb2NrOjpmaW5pc2hDcmVhdGlvbihWTSYg
dm0sIFMKICAgICAgICAgTElOSyhPcENyZWF0ZVByb21pc2UpCiAgICAgICAgIExJTksoT3BDcmVh
dGVHZW5lcmF0b3IpCiAKLSAgICAgICAgTElOS19XSVRIX0JJTkFSWV9BUklUSF9QUk9GSUxFKE9w
QWRkKQotICAgICAgICBMSU5LX1dJVEhfQklOQVJZX0FSSVRIX1BST0ZJTEUoT3BNdWwpCi0gICAg
ICAgIExJTktfV0lUSF9CSU5BUllfQVJJVEhfUFJPRklMRShPcERpdikKLSAgICAgICAgTElOS19X
SVRIX0JJTkFSWV9BUklUSF9QUk9GSUxFKE9wU3ViKQotCi0gICAgICAgIExJTktfV0lUSF9VTkFS
WV9BUklUSF9QUk9GSUxFKE9wTmVnYXRlKQotICAgICAgICBMSU5LX1dJVEhfVU5BUllfQVJJVEhf
UFJPRklMRShPcEluYykKLSAgICAgICAgTElOS19XSVRIX1VOQVJZX0FSSVRIX1BST0ZJTEUoT3BE
ZWMpCi0KICAgICAgICAgTElOSyhPcEpuZXFQdHIpCiAKICAgICAgICAgTElOSyhPcENhdGNoKQpA
QCAtMzQxMywxMyArMzM4OSwxMyBAQCBCaW5hcnlBcml0aFByb2ZpbGUqIENvZGVCbG9jazo6Ymlu
YXJ5QXJpCiB7CiAgICAgc3dpdGNoIChwYy0+b3Bjb2RlSUQoKSkgewogICAgIGNhc2Ugb3BfYWRk
OgotICAgICAgICByZXR1cm4gcGMtPmFzPE9wQWRkPigpLm1ldGFkYXRhKHRoaXMpLm1fYXJpdGhQ
cm9maWxlOworICAgICAgICByZXR1cm4gJnVubGlua2VkQ29kZUJsb2NrKCktPmJpbmFyeUFyaXRo
UHJvZmlsZShwYy0+YXM8T3BBZGQ+KCkubV9wcm9maWxlSW5kZXgpOwogICAgIGNhc2Ugb3BfbXVs
OgotICAgICAgICByZXR1cm4gcGMtPmFzPE9wTXVsPigpLm1ldGFkYXRhKHRoaXMpLm1fYXJpdGhQ
cm9maWxlOworICAgICAgICByZXR1cm4gJnVubGlua2VkQ29kZUJsb2NrKCktPmJpbmFyeUFyaXRo
UHJvZmlsZShwYy0+YXM8T3BNdWw+KCkubV9wcm9maWxlSW5kZXgpOwogICAgIGNhc2Ugb3Bfc3Vi
OgotICAgICAgICByZXR1cm4gcGMtPmFzPE9wU3ViPigpLm1ldGFkYXRhKHRoaXMpLm1fYXJpdGhQ
cm9maWxlOworICAgICAgICByZXR1cm4gJnVubGlua2VkQ29kZUJsb2NrKCktPmJpbmFyeUFyaXRo
UHJvZmlsZShwYy0+YXM8T3BTdWI+KCkubV9wcm9maWxlSW5kZXgpOwogICAgIGNhc2Ugb3BfZGl2
OgotICAgICAgICByZXR1cm4gcGMtPmFzPE9wRGl2PigpLm1ldGFkYXRhKHRoaXMpLm1fYXJpdGhQ
cm9maWxlOworICAgICAgICByZXR1cm4gJnVubGlua2VkQ29kZUJsb2NrKCktPmJpbmFyeUFyaXRo
UHJvZmlsZShwYy0+YXM8T3BEaXY+KCkubV9wcm9maWxlSW5kZXgpOwogICAgIGRlZmF1bHQ6CiAg
ICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTM0MzEsMTEgKzM0MDcsMTEgQEAgVW5hcnlBcml0aFBy
b2ZpbGUqIENvZGVCbG9jazo6dW5hcnlBcml0aAogewogICAgIHN3aXRjaCAocGMtPm9wY29kZUlE
KCkpIHsKICAgICBjYXNlIG9wX25lZ2F0ZToKLSAgICAgICAgcmV0dXJuIHBjLT5hczxPcE5lZ2F0
ZT4oKS5tZXRhZGF0YSh0aGlzKS5tX2FyaXRoUHJvZmlsZTsKKyAgICAgICAgcmV0dXJuICZ1bmxp
bmtlZENvZGVCbG9jaygpLT51bmFyeUFyaXRoUHJvZmlsZShwYy0+YXM8T3BOZWdhdGU+KCkubV9w
cm9maWxlSW5kZXgpOwogICAgIGNhc2Ugb3BfaW5jOgotICAgICAgICByZXR1cm4gcGMtPmFzPE9w
SW5jPigpLm1ldGFkYXRhKHRoaXMpLm1fYXJpdGhQcm9maWxlOworICAgICAgICByZXR1cm4gJnVu
bGlua2VkQ29kZUJsb2NrKCktPnVuYXJ5QXJpdGhQcm9maWxlKHBjLT5hczxPcEluYz4oKS5tX3By
b2ZpbGVJbmRleCk7CiAgICAgY2FzZSBvcF9kZWM6Ci0gICAgICAgIHJldHVybiBwYy0+YXM8T3BE
ZWM+KCkubWV0YWRhdGEodGhpcykubV9hcml0aFByb2ZpbGU7CisgICAgICAgIHJldHVybiAmdW5s
aW5rZWRDb2RlQmxvY2soKS0+dW5hcnlBcml0aFByb2ZpbGUocGMtPmFzPE9wRGVjPigpLm1fcHJv
ZmlsZUluZGV4KTsKICAgICBkZWZhdWx0OgogICAgICAgICBicmVhazsKICAgICB9CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2suY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZENvZGVCbG9j
ay5jcHAJKHJldmlzaW9uIDI4MzA4NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9VbmxpbmtlZENvZGVCbG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2MSw3ICszNjEsNyBA
QCBpbnQzMl90IFVubGlua2VkQ29kZUJsb2NrOjp0aHJlc2hvbGRGb3JKCiB9CiAKIAotdm9pZCBV
bmxpbmtlZENvZGVCbG9jazo6YWxsb2NhdGVTaGFyZWRQcm9maWxlcygpCit2b2lkIFVubGlua2Vk
Q29kZUJsb2NrOjphbGxvY2F0ZVNoYXJlZFByb2ZpbGVzKHVuc2lnbmVkIG51bUJpbmFyeUFyaXRo
UHJvZmlsZXMsIHVuc2lnbmVkIG51bVVuYXJ5QXJpdGhQcm9maWxlcykKIHsKICAgICBSRUxFQVNF
X0FTU0VSVCghbV9tZXRhZGF0YS0+aXNGaW5hbGl6ZWQoKSk7CiAKQEAgLTM4OSwxOSArMzg5LDEw
IEBAIHZvaWQgVW5saW5rZWRDb2RlQmxvY2s6OmFsbG9jYXRlU2hhcmVkUHIKICAgICAgICAgbnVt
YmVyT2ZBcnJheVByb2ZpbGVzICs9IG1fbWV0YWRhdGEtPm51bUVudHJpZXM8T3BJdGVyYXRvck5l
eHQ+KCk7CiAgICAgICAgIG51bWJlck9mQXJyYXlQcm9maWxlcyArPSBtX21ldGFkYXRhLT5udW1F
bnRyaWVzPE9wR2V0QnlJZD4oKTsKICAgICAgICAgbV9hcnJheVByb2ZpbGVzID0gRml4ZWRWZWN0
b3I8VW5saW5rZWRBcnJheVByb2ZpbGU+KG51bWJlck9mQXJyYXlQcm9maWxlcyk7Ci0KLSAgICAg
ICAgdW5zaWduZWQgbnVtYmVyT2ZCaW5hcnlBcml0aFByb2ZpbGVzID0gMDsKLSNkZWZpbmUgQ09V
TlQoX19vcCkgbnVtYmVyT2ZCaW5hcnlBcml0aFByb2ZpbGVzICs9IG1fbWV0YWRhdGEtPm51bUVu
dHJpZXM8X19vcD4oKTsKLSAgICAgICAgRk9SX0VBQ0hfT1BDT0RFX1dJVEhfQklOQVJZX0FSSVRI
X1BST0ZJTEUoQ09VTlQpCi0jdW5kZWYgQ09VTlQKLSAgICAgICAgbV9iaW5hcnlBcml0aFByb2Zp
bGVzID0gRml4ZWRWZWN0b3I8QmluYXJ5QXJpdGhQcm9maWxlPihudW1iZXJPZkJpbmFyeUFyaXRo
UHJvZmlsZXMpOwotCi0gICAgICAgIHVuc2lnbmVkIG51bWJlck9mVW5hcnlBcml0aFByb2ZpbGVz
ID0gMDsKLSNkZWZpbmUgQ09VTlQoX19vcCkgbnVtYmVyT2ZVbmFyeUFyaXRoUHJvZmlsZXMgKz0g
bV9tZXRhZGF0YS0+bnVtRW50cmllczxfX29wPigpOwotICAgICAgICBGT1JfRUFDSF9PUENPREVf
V0lUSF9VTkFSWV9BUklUSF9QUk9GSUxFKENPVU5UKQotI3VuZGVmIENPVU5UCi0gICAgICAgIG1f
dW5hcnlBcml0aFByb2ZpbGVzID0gRml4ZWRWZWN0b3I8VW5hcnlBcml0aFByb2ZpbGU+KG51bWJl
ck9mVW5hcnlBcml0aFByb2ZpbGVzKTsKICAgICB9CisKKyAgICBtX2JpbmFyeUFyaXRoUHJvZmls
ZXMgPSBGaXhlZFZlY3RvcjxCaW5hcnlBcml0aFByb2ZpbGU+KG51bUJpbmFyeUFyaXRoUHJvZmls
ZXMpOworICAgIG1fdW5hcnlBcml0aFByb2ZpbGVzID0gRml4ZWRWZWN0b3I8VW5hcnlBcml0aFBy
b2ZpbGU+KG51bVVuYXJ5QXJpdGhQcm9maWxlcyk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkQ29kZUJsb2NrLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkQ29k
ZUJsb2NrLmgJKHJldmlzaW9uIDI4MzA4NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9VbmxpbmtlZENvZGVCbG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNTIsNyArMzUyLDcg
QEAgcHVibGljOgogICAgICAgICAvLyBTb21lIGJ1aWx0aW5zIGFyZSByZXF1aXJlZCB0byBhbHdh
eXMgY29tcGxldGUgdGhlIGxvb3BzIHRoZXkgcnVuLgogICAgICAgICByZXR1cm4gIWlzQnVpbHRp
bkZ1bmN0aW9uKCk7CiAgICAgfQotICAgIHZvaWQgYWxsb2NhdGVTaGFyZWRQcm9maWxlcygpOwor
ICAgIHZvaWQgYWxsb2NhdGVTaGFyZWRQcm9maWxlcyh1bnNpZ25lZCBudW1CaW5hcnlBcml0aFBy
b2ZpbGVzLCB1bnNpZ25lZCBudW1VbmFyeUFyaXRoUHJvZmlsZXMpOwogICAgIFVubGlua2VkVmFs
dWVQcm9maWxlJiB1bmxpbmtlZFZhbHVlUHJvZmlsZSh1bnNpZ25lZCBpbmRleCkgeyByZXR1cm4g
bV92YWx1ZVByb2ZpbGVzW2luZGV4XTsgfQogICAgIFVubGlua2VkQXJyYXlQcm9maWxlJiB1bmxp
bmtlZEFycmF5UHJvZmlsZSh1bnNpZ25lZCBpbmRleCkgeyByZXR1cm4gbV9hcnJheVByb2ZpbGVz
W2luZGV4XTsgfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5r
ZWRDb2RlQmxvY2tHZW5lcmF0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9VbmxpbmtlZENvZGVCbG9ja0dlbmVyYXRvci5jcHAJKHJldmlzaW9uIDI4
MzA4NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZENvZGVCbG9j
a0dlbmVyYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExOSw3ICsxMTksNyBAQCB2b2lkIFVu
bGlua2VkQ29kZUJsb2NrR2VuZXJhdG9yOjpmaW5hbGl6CiAgICAgewogICAgICAgICBMb2NrZXIg
bG9ja2VyIHsgbV9jb2RlQmxvY2stPmNlbGxMb2NrKCkgfTsKICAgICAgICAgbV9jb2RlQmxvY2st
Pm1faW5zdHJ1Y3Rpb25zID0gV1RGTW92ZShpbnN0cnVjdGlvbnMpOwotICAgICAgICBtX2NvZGVC
bG9jay0+YWxsb2NhdGVTaGFyZWRQcm9maWxlcygpOworICAgICAgICBtX2NvZGVCbG9jay0+YWxs
b2NhdGVTaGFyZWRQcm9maWxlcyhtX251bUJpbmFyeUFyaXRoUHJvZmlsZXMsIG1fbnVtVW5hcnlB
cml0aFByb2ZpbGVzKTsKICAgICAgICAgbV9jb2RlQmxvY2stPm1fbWV0YWRhdGEtPmZpbmFsaXpl
KCk7CiAKICAgICAgICAgbV9jb2RlQmxvY2stPm1fanVtcFRhcmdldHMgPSBXVEZNb3ZlKG1fanVt
cFRhcmdldHMpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2Vk
Q29kZUJsb2NrR2VuZXJhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL1VubGlua2VkQ29kZUJsb2NrR2VuZXJhdG9yLmgJKHJldmlzaW9uIDI4MzA4NCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZENvZGVCbG9ja0dlbmVy
YXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMDAsNiArMjAwLDkgQEAgcHVibGljOgogCiAgICAg
dm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3Q7CiAKKyAgICB1bnNpZ25lZCBhZGRCaW5hcnlB
cml0aFByb2ZpbGUoKSB7IHJldHVybiBtX251bUJpbmFyeUFyaXRoUHJvZmlsZXMrKzsgfQorICAg
IHVuc2lnbmVkIGFkZFVuYXJ5QXJpdGhQcm9maWxlKCkgeyByZXR1cm4gbV9udW1VbmFyeUFyaXRo
UHJvZmlsZXMrKzsgfQorCiBwcml2YXRlOgogICAgIFZNJiBtX3ZtOwogICAgIFN0cm9uZzxVbmxp
bmtlZENvZGVCbG9jaz4gbV9jb2RlQmxvY2s7CkBAIC0yMjEsNiArMjI0LDggQEAgcHJpdmF0ZToK
ICAgICBWZWN0b3I8SW5zdHJ1Y3Rpb25TdHJlYW06Ok9mZnNldD4gbV9vcFByb2ZpbGVDb250cm9s
Rmxvd0J5dGVjb2RlT2Zmc2V0czsKICAgICBWZWN0b3I8Qml0VmVjdG9yPiBtX2JpdFZlY3RvcnM7
CiAgICAgVmVjdG9yPElkZW50aWZpZXJTZXQ+IG1fY29uc3RhbnRJZGVudGlmaWVyU2V0czsKKyAg
ICB1bnNpZ25lZCBtX251bUJpbmFyeUFyaXRoUHJvZmlsZXMgeyAwIH07CisgICAgdW5zaWduZWQg
bV9udW1VbmFyeUFyaXRoUHJvZmlsZXMgeyAwIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0
b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIv
Qnl0ZWNvZGVHZW5lcmF0b3IuY3BwCShyZXZpc2lvbiAyODMwODQpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTU5OCw3ICsxNTk4LDcgQEAgUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVt
aXRVbmFyeQogICAgICAgICBlbWl0VW5hcnlPcDxPcE5vdD4oZHN0LCBzcmMpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIG9wX25lZ2F0ZToKLSAgICAgICAgT3BOZWdhdGU6OmVtaXQodGhpcywg
ZHN0LCBzcmMsIHR5cGUpOworICAgICAgICBPcE5lZ2F0ZTo6ZW1pdCh0aGlzLCBkc3QsIHNyYywg
bV9jb2RlQmxvY2stPmFkZFVuYXJ5QXJpdGhQcm9maWxlKCksIHR5cGUpOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIG9wX2JpdG5vdDoKICAgICAgICAgZW1pdFVuYXJ5T3A8T3BCaXRub3Q+KGRz
dCwgc3JjKTsKQEAgLTE2OTYsMTMgKzE2OTYsMTMgQEAgUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5l
cmF0b3I6OmVtaXRUeXBlTwogCiBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdElu
YyhSZWdpc3RlcklEKiBzcmNEc3QpCiB7Ci0gICAgT3BJbmM6OmVtaXQodGhpcywgc3JjRHN0KTsK
KyAgICBPcEluYzo6ZW1pdCh0aGlzLCBzcmNEc3QsIG1fY29kZUJsb2NrLT5hZGRVbmFyeUFyaXRo
UHJvZmlsZSgpKTsKICAgICByZXR1cm4gc3JjRHN0OwogfQogCiBSZWdpc3RlcklEKiBCeXRlY29k
ZUdlbmVyYXRvcjo6ZW1pdERlYyhSZWdpc3RlcklEKiBzcmNEc3QpCiB7Ci0gICAgT3BEZWM6OmVt
aXQodGhpcywgc3JjRHN0KTsKKyAgICBPcERlYzo6ZW1pdCh0aGlzLCBzcmNEc3QsIG1fY29kZUJs
b2NrLT5hZGRVbmFyeUFyaXRoUHJvZmlsZSgpKTsKICAgICByZXR1cm4gc3JjRHN0OwogfQogCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9y
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRl
Y29kZUdlbmVyYXRvci5oCShyZXZpc2lvbiAyODMwODQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTY4
Miw3ICs2ODIsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIFJlZ2lzdGVySUQqPgog
ICAgICAgICBlbWl0QmluYXJ5T3AoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBzcmMxLCBS
ZWdpc3RlcklEKiBzcmMyLCBPcGVyYW5kVHlwZXMgdHlwZXMpCiAgICAgICAgIHsKLSAgICAgICAg
ICAgIEJpbmFyeU9wOjplbWl0KHRoaXMsIGRzdCwgc3JjMSwgc3JjMiwgdHlwZXMpOworICAgICAg
ICAgICAgQmluYXJ5T3A6OmVtaXQodGhpcywgZHN0LCBzcmMxLCBzcmMyLCBtX2NvZGVCbG9jay0+
YWRkQmluYXJ5QXJpdGhQcm9maWxlKCksIHR5cGVzKTsKICAgICAgICAgICAgIHJldHVybiBkc3Q7
CiAgICAgICAgIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBcml0aG1l
dGljLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRo
bWV0aWMuY3BwCShyZXZpc2lvbiAyODMwODQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVEFyaXRobWV0aWMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MjIsNyArNzIyLDcgQEAgdm9p
ZCBKSVQ6OmVtaXRCaW5hcnlEb3VibGVPcChjb25zdCBJbnN0cgogCiB2b2lkIEpJVDo6ZW1pdF9v
cF9uZWdhdGUoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIHsKLSAgICBV
bmFyeUFyaXRoUHJvZmlsZSogYXJpdGhQcm9maWxlID0gY3VycmVudEluc3RydWN0aW9uLT5hczxP
cE5lZ2F0ZT4oKS5tZXRhZGF0YShtX3Byb2ZpbGVkQ29kZUJsb2NrKS5tX2FyaXRoUHJvZmlsZTsK
KyAgICBVbmFyeUFyaXRoUHJvZmlsZSogYXJpdGhQcm9maWxlID0gJm1fdW5saW5rZWRDb2RlQmxv
Y2stPnVuYXJ5QXJpdGhQcm9maWxlKGN1cnJlbnRJbnN0cnVjdGlvbi0+YXM8T3BOZWdhdGU+KCku
bV9wcm9maWxlSW5kZXgpOwogICAgIEpJVE5lZ0lDKiBuZWdhdGVJQyA9IG1fbWF0aElDcy5hZGRK
SVROZWdJQyhhcml0aFByb2ZpbGUpOwogICAgIG1faW5zdHJ1Y3Rpb25Ub01hdGhJQy5hZGQoY3Vy
cmVudEluc3RydWN0aW9uLCBuZWdhdGVJQyk7CiAgICAgLy8gRklYTUU6IGl0IHdvdWxkIGJlIGJl
dHRlciB0byBjYWxsIHRob3NlIG9wZXJhdGlvblZhbHVlTmVnYXRlLCBzaW5jZSB0aGUgb3BlcmFu
ZCBjYW4gYmUgYSBCaWdJbnQKQEAgLTkwNCw3ICs5MDQsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF91
cnNoaWZ0KGNvbnN0IEluc3RydWN0CiAKIHZvaWQgSklUOjplbWl0X29wX2FkZChjb25zdCBJbnN0
cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogewotICAgIEJpbmFyeUFyaXRoUHJvZmlsZSog
YXJpdGhQcm9maWxlID0gY3VycmVudEluc3RydWN0aW9uLT5hczxPcEFkZD4oKS5tZXRhZGF0YSht
X3Byb2ZpbGVkQ29kZUJsb2NrKS5tX2FyaXRoUHJvZmlsZTsKKyAgICBCaW5hcnlBcml0aFByb2Zp
bGUqIGFyaXRoUHJvZmlsZSA9ICZtX3VubGlua2VkQ29kZUJsb2NrLT5iaW5hcnlBcml0aFByb2Zp
bGUoY3VycmVudEluc3RydWN0aW9uLT5hczxPcEFkZD4oKS5tX3Byb2ZpbGVJbmRleCk7CiAgICAg
SklUQWRkSUMqIGFkZElDID0gbV9tYXRoSUNzLmFkZEpJVEFkZElDKGFyaXRoUHJvZmlsZSk7CiAg
ICAgbV9pbnN0cnVjdGlvblRvTWF0aElDLmFkZChjdXJyZW50SW5zdHJ1Y3Rpb24sIGFkZElDKTsK
ICAgICBlbWl0TWF0aElDRmFzdDxPcEFkZD4oYWRkSUMsIGN1cnJlbnRJbnN0cnVjdGlvbiwgb3Bl
cmF0aW9uVmFsdWVBZGRQcm9maWxlZCwgb3BlcmF0aW9uVmFsdWVBZGQpOwpAQCAtMTE3NSw3ICsx
MTc1LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZGl2KGNvbnN0IEluc3RydWN0aW9uKgogCiAgICAg
QmluYXJ5QXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUgPSBudWxscHRyOwogICAgIGlmIChzaG91
bGRFbWl0UHJvZmlsaW5nKCkpCi0gICAgICAgIGFyaXRoUHJvZmlsZSA9IGN1cnJlbnRJbnN0cnVj
dGlvbi0+YXM8T3BEaXY+KCkubWV0YWRhdGEobV9wcm9maWxlZENvZGVCbG9jaykubV9hcml0aFBy
b2ZpbGU7CisgICAgICAgIGFyaXRoUHJvZmlsZSA9ICZtX3VubGlua2VkQ29kZUJsb2NrLT5iaW5h
cnlBcml0aFByb2ZpbGUoY3VycmVudEluc3RydWN0aW9uLT5hczxPcERpdj4oKS5tX3Byb2ZpbGVJ
bmRleCk7CiAKICAgICBTbmlwcGV0T3BlcmFuZCBsZWZ0T3BlcmFuZChieXRlY29kZS5tX29wZXJh
bmRUeXBlcy5maXJzdCgpKTsKICAgICBTbmlwcGV0T3BlcmFuZCByaWdodE9wZXJhbmQoYnl0ZWNv
ZGUubV9vcGVyYW5kVHlwZXMuc2Vjb25kKCkpOwpAQCAtMTIyMCw3ICsxMjIwLDcgQEAgdm9pZCBK
SVQ6OmVtaXRfb3BfZGl2KGNvbnN0IEluc3RydWN0aW9uKgogCiB2b2lkIEpJVDo6ZW1pdF9vcF9t
dWwoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIHsKLSAgICBCaW5hcnlB
cml0aFByb2ZpbGUqIGFyaXRoUHJvZmlsZSA9IGN1cnJlbnRJbnN0cnVjdGlvbi0+YXM8T3BNdWw+
KCkubWV0YWRhdGEobV9wcm9maWxlZENvZGVCbG9jaykubV9hcml0aFByb2ZpbGU7CisgICAgQmlu
YXJ5QXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUgPSAmbV91bmxpbmtlZENvZGVCbG9jay0+Ymlu
YXJ5QXJpdGhQcm9maWxlKGN1cnJlbnRJbnN0cnVjdGlvbi0+YXM8T3BNdWw+KCkubV9wcm9maWxl
SW5kZXgpOwogICAgIEpJVE11bElDKiBtdWxJQyA9IG1fbWF0aElDcy5hZGRKSVRNdWxJQyhhcml0
aFByb2ZpbGUpOwogICAgIG1faW5zdHJ1Y3Rpb25Ub01hdGhJQy5hZGQoY3VycmVudEluc3RydWN0
aW9uLCBtdWxJQyk7CiAgICAgZW1pdE1hdGhJQ0Zhc3Q8T3BNdWw+KG11bElDLCBjdXJyZW50SW5z
dHJ1Y3Rpb24sIG9wZXJhdGlvblZhbHVlTXVsUHJvZmlsZWQsIG9wZXJhdGlvblZhbHVlTXVsKTsK
QEAgLTEyMzYsNyArMTIzNiw3IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9tdWwoY29uc3QgSW5z
dHJ1Y3QKIAogdm9pZCBKSVQ6OmVtaXRfb3Bfc3ViKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50
SW5zdHJ1Y3Rpb24pCiB7Ci0gICAgQmluYXJ5QXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUgPSBj
dXJyZW50SW5zdHJ1Y3Rpb24tPmFzPE9wU3ViPigpLm1ldGFkYXRhKG1fcHJvZmlsZWRDb2RlQmxv
Y2spLm1fYXJpdGhQcm9maWxlOworICAgIEJpbmFyeUFyaXRoUHJvZmlsZSogYXJpdGhQcm9maWxl
ID0gJm1fdW5saW5rZWRDb2RlQmxvY2stPmJpbmFyeUFyaXRoUHJvZmlsZShjdXJyZW50SW5zdHJ1
Y3Rpb24tPmFzPE9wU3ViPigpLm1fcHJvZmlsZUluZGV4KTsKICAgICBKSVRTdWJJQyogc3ViSUMg
PSBtX21hdGhJQ3MuYWRkSklUU3ViSUMoYXJpdGhQcm9maWxlKTsKICAgICBtX2luc3RydWN0aW9u
VG9NYXRoSUMuYWRkKGN1cnJlbnRJbnN0cnVjdGlvbiwgc3ViSUMpOwogICAgIGVtaXRNYXRoSUNG
YXN0PE9wU3ViPihzdWJJQywgY3VycmVudEluc3RydWN0aW9uLCBvcGVyYXRpb25WYWx1ZVN1YlBy
b2ZpbGVkLCBvcGVyYXRpb25WYWx1ZVN1Yik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQkocmV2aXNp
b24gMjgzMDg0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJw
cmV0ZXIzMl82NC5hc20JKHdvcmtpbmcgY29weSkKQEAgLTEwMTIsMTQgKzEwMTIsMTMgQEAgc3Ry
aWN0RXF1YWxpdHlKdW1wT3Aoam5zdHJpY3RlcSwgT3BKbnN0cgogCiBtYWNybyBwcmVPcChvcGNv
ZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIGludGVnZXJPcGVyYXRpb24pCiAgICAgbGxpbnRPcFdpdGhN
ZXRhZGF0YShvcF8lb3Bjb2RlTmFtZSUsIG9wY29kZVN0cnVjdCwgbWFjcm8gKHNpemUsIGdldCwg
ZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCi0gICAgICAgIG1ldGFkYXRhKHQxLCB0MikKICAg
ICAgICAgZ2V0KG1fc3JjRHN0LCB0MCkKICAgICAgICAgYmluZXEgVGFnT2Zmc2V0W2NmciwgdDAs
IDhdLCBJbnQzMlRhZywgLnNsb3cKICAgICAgICAgbG9hZGkgUGF5bG9hZE9mZnNldFtjZnIsIHQw
LCA4XSwgdDIKLSAgICAgICAgIyBNZXRhZGF0YSBpbiB0MSwgc3JjRHN0IGluIHQyCisgICAgICAg
ICMgc3JjRHN0IGluIHQyCiAgICAgICAgIGludGVnZXJPcGVyYXRpb24odDIsIC5zbG93KQogICAg
ICAgICBzdG9yZWkgdDIsIFBheWxvYWRPZmZzZXRbY2ZyLCB0MCwgOF0KLSAgICAgICAgdXBkYXRl
VW5hcnlBcml0aFByb2ZpbGUob3Bjb2RlU3RydWN0LCBBcml0aFByb2ZpbGVJbnQsIHQxLCB0MikK
KyAgICAgICAgdXBkYXRlVW5hcnlBcml0aFByb2ZpbGUoc2l6ZSwgb3Bjb2RlU3RydWN0LCBBcml0
aFByb2ZpbGVJbnQsIHQ1LCB0MikKICAgICAgICAgZGlzcGF0Y2goKQogCiAgICAgLnNsb3c6CkBA
IC0xMDg0LDE5ICsxMDgzLDE3IEBAIGVuZCkKIAogCiBsbGludE9wV2l0aE1ldGFkYXRhKG9wX25l
Z2F0ZSwgT3BOZWdhdGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0
dXJuKQotCi0gICAgbWV0YWRhdGEodDUsIHQwKQogICAgIGdldChtX29wZXJhbmQsIHQwKQogICAg
IGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwgdDAsIHQxLCB0MikKICAgICBiaW5lcSB0MSwg
SW50MzJUYWcsIC5vcE5lZ2F0ZVNyY05vdEludAogICAgIGJ0aXogdDIsIDB4N2ZmZmZmZmYsIC5v
cE5lZ2F0ZVNsb3cKICAgICBuZWdpIHQyCi0gICAgdXBkYXRlVW5hcnlBcml0aFByb2ZpbGUoT3BO
ZWdhdGUsIEFyaXRoUHJvZmlsZUludCwgdDUsIHQzKQorICAgIHVwZGF0ZVVuYXJ5QXJpdGhQcm9m
aWxlKHNpemUsIE9wTmVnYXRlLCBBcml0aFByb2ZpbGVJbnQsIHQwLCB0MykKICAgICByZXR1cm4g
KEludDMyVGFnLCB0MikKIC5vcE5lZ2F0ZVNyY05vdEludDoKICAgICBiaWEgdDEsIExvd2VzdFRh
ZywgLm9wTmVnYXRlU2xvdwogICAgIHhvcmkgMHg4MDAwMDAwMCwgdDEKLSAgICB1cGRhdGVVbmFy
eUFyaXRoUHJvZmlsZShPcE5lZ2F0ZSwgQXJpdGhQcm9maWxlTnVtYmVyLCB0NSwgdDMpCisgICAg
dXBkYXRlVW5hcnlBcml0aFByb2ZpbGUoc2l6ZSwgT3BOZWdhdGUsIEFyaXRoUHJvZmlsZU51bWJl
ciwgdDAsIHQzKQogICAgIHJldHVybih0MSwgdDIpCiAKIC5vcE5lZ2F0ZVNsb3c6CkBAIC0xMTA3
LDE0ICsxMTA0LDEzIEBAIGVuZCkKIAogbWFjcm8gYmluYXJ5T3BDdXN0b21TdG9yZShvcGNvZGVO
YW1lLCBvcGNvZGVTdHJ1Y3QsIGludGVnZXJPcGVyYXRpb25BbmRTdG9yZSwgZG91YmxlT3BlcmF0
aW9uKQogICAgIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfJW9wY29kZU5hbWUlLCBvcGNvZGVTdHJ1
Y3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuKQotICAgICAg
ICBtZXRhZGF0YSh0NSwgdDIpCiAgICAgICAgIGdldChtX3JocywgdDIpCiAgICAgICAgIGdldCht
X2xocywgdDApCiAgICAgICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwgdDIsIHQzLCB0
MSkKICAgICAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZTJSZWcoc2l6ZSwgdDAsIHQyLCB0MCkK
ICAgICAgICAgYmluZXEgdDIsIEludDMyVGFnLCAub3AxTm90SW50CiAgICAgICAgIGJpbmVxIHQz
LCBJbnQzMlRhZywgLm9wMk5vdEludAotICAgICAgICB1cGRhdGVCaW5hcnlBcml0aFByb2ZpbGUo
b3Bjb2RlU3RydWN0LCBBcml0aFByb2ZpbGVJbnRJbnQsIHQ1LCB0MikKKyAgICAgICAgdXBkYXRl
QmluYXJ5QXJpdGhQcm9maWxlKHNpemUsIG9wY29kZVN0cnVjdCwgQXJpdGhQcm9maWxlSW50SW50
LCB0NSwgdDIpCiAgICAgICAgIGdldChtX2RzdCwgdDIpCiAgICAgICAgIGludGVnZXJPcGVyYXRp
b25BbmRTdG9yZSh0MywgdDEsIHQwLCAuc2xvdywgdDIpCiAgICAgICAgIGRpc3BhdGNoKCkKQEAg
LTExMjQsMTIgKzExMjAsMTIgQEAgbWFjcm8gYmluYXJ5T3BDdXN0b21TdG9yZShvcGNvZGVOYW1l
LCBvcAogICAgICAgICBiaWEgdDIsIExvd2VzdFRhZywgLnNsb3cKICAgICAgICAgYmliIHQzLCBM
b3dlc3RUYWcsIC5vcDFOb3RJbnRPcDJEb3VibGUKICAgICAgICAgYmluZXEgdDMsIEludDMyVGFn
LCAuc2xvdwotICAgICAgICB1cGRhdGVCaW5hcnlBcml0aFByb2ZpbGUob3Bjb2RlU3RydWN0LCBB
cml0aFByb2ZpbGVOdW1iZXJJbnQsIHQ1LCB0NCkKKyAgICAgICAgdXBkYXRlQmluYXJ5QXJpdGhQ
cm9maWxlKHNpemUsIG9wY29kZVN0cnVjdCwgQXJpdGhQcm9maWxlTnVtYmVySW50LCB0NSwgdDQp
CiAgICAgICAgIGNpMmRzIHQxLCBmdDEKICAgICAgICAgam1wIC5vcDFOb3RJbnRSZWFkeQogICAg
IC5vcDFOb3RJbnRPcDJEb3VibGU6CiAgICAgICAgIGZpaTJkIHQxLCB0MywgZnQxCi0gICAgICAg
IHVwZGF0ZUJpbmFyeUFyaXRoUHJvZmlsZShvcGNvZGVTdHJ1Y3QsIEFyaXRoUHJvZmlsZU51bWJl
ck51bWJlciwgdDUsIHQ0KQorICAgICAgICB1cGRhdGVCaW5hcnlBcml0aFByb2ZpbGUoc2l6ZSwg
b3Bjb2RlU3RydWN0LCBBcml0aFByb2ZpbGVOdW1iZXJOdW1iZXIsIHQ1LCB0NCkKICAgICAub3Ax
Tm90SW50UmVhZHk6CiAgICAgICAgIGdldChtX2RzdCwgdDEpCiAgICAgICAgIGZpaTJkIHQwLCB0
MiwgZnQwCkBAIC0xMTQxLDcgKzExMzcsNyBAQCBtYWNybyBiaW5hcnlPcEN1c3RvbVN0b3JlKG9w
Y29kZU5hbWUsIG9wCiAgICAgICAgICMgRmlyc3Qgb3BlcmFuZCBpcyBkZWZpbml0ZWx5IGFuIGlu
dCwgdGhlIHNlY29uZCBvcGVyYW5kIGlzIGRlZmluaXRlbHkgbm90LgogICAgICAgICBnZXQobV9k
c3QsIHQyKQogICAgICAgICBiaWEgdDMsIExvd2VzdFRhZywgLnNsb3cKLSAgICAgICAgdXBkYXRl
QmluYXJ5QXJpdGhQcm9maWxlKG9wY29kZVN0cnVjdCwgQXJpdGhQcm9maWxlSW50TnVtYmVyLCB0
NSwgdDQpCisgICAgICAgIHVwZGF0ZUJpbmFyeUFyaXRoUHJvZmlsZShzaXplLCBvcGNvZGVTdHJ1
Y3QsIEFyaXRoUHJvZmlsZUludE51bWJlciwgdDUsIHQ0KQogICAgICAgICBjaTJkcyB0MCwgZnQw
CiAgICAgICAgIGZpaTJkIHQxLCB0MywgZnQxCiAgICAgICAgIGRvdWJsZU9wZXJhdGlvbihmdDEs
IGZ0MCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJl
dGVyNjQuYXNtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dM
ZXZlbEludGVycHJldGVyNjQuYXNtCShyZXZpc2lvbiAyODMwODQpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQkod29ya2luZyBjb3B5KQpA
QCAtMTA2MywxNCArMTA2MywxMyBAQCBtYWNybyBwcmVPcChvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1
Y3QsIGluCiAgICAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF8lb3Bjb2RlTmFtZSUsIG9wY29kZVN0
cnVjdCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCiAgICAg
ICAgIGdldChtX3NyY0RzdCwgdDApCiAgICAgICAgIGxvYWRxIFtjZnIsIHQwLCA4XSwgdDEKLSAg
ICAgICAgbWV0YWRhdGEodDIsIHQzKQotICAgICAgICAjIHNyY0RzdCBpbiB0MSwgbWV0YWRhdGEg
aW4gdDIKKyAgICAgICAgIyBzcmNEc3QgaW4gdDEKICAgICAgICAgIyBGSVhNRTogdGhlIG5leHQg
bGluZSBqdW1wcyB0byB0aGUgc2xvdyBwYXRoIGZvciBCaWdJbnQzMi4gV2UgY291bGQgaW5zdGVh
ZCBoYXZlIGEgZGVkaWNhdGVkIHBhdGggaW4gaGVyZSBmb3IgdGhlbS4KICAgICAgICAgYnFiIHQx
LCBudW1iZXJUYWcsIC5zbG93CiAgICAgICAgIGludGVnZXJPcGVyYXRpb24odDEsIC5zbG93KQog
ICAgICAgICBvcnEgbnVtYmVyVGFnLCB0MQogICAgICAgICBzdG9yZXEgdDEsIFtjZnIsIHQwLCA4
XQotICAgICAgICB1cGRhdGVVbmFyeUFyaXRoUHJvZmlsZShvcGNvZGVTdHJ1Y3QsIEFyaXRoUHJv
ZmlsZUludCwgdDIsIHQzKQorICAgICAgICB1cGRhdGVVbmFyeUFyaXRoUHJvZmlsZShzaXplLCBv
cGNvZGVTdHJ1Y3QsIEFyaXRoUHJvZmlsZUludCwgdDUsIHQzKQogICAgICAgICBkaXNwYXRjaCgp
CiAKICAgICAuc2xvdzoKQEAgLTExMzcsMTcgKzExMzYsMTYgQEAgZW5kKQogbGxpbnRPcFdpdGhN
ZXRhZGF0YShvcF9uZWdhdGUsIE9wTmVnYXRlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwg
bWV0YWRhdGEsIHJldHVybikKICAgICBnZXQobV9vcGVyYW5kLCB0MCkKICAgICBsb2FkQ29uc3Rh
bnRPclZhcmlhYmxlKHNpemUsIHQwLCB0MykKLSAgICBtZXRhZGF0YSh0MSwgdDIpCiAgICAgYnFi
IHQzLCBudW1iZXJUYWcsIC5vcE5lZ2F0ZU5vdEludAogICAgIGJ0aXogdDMsIDB4N2ZmZmZmZmYs
IC5vcE5lZ2F0ZVNsb3cKICAgICBuZWdpIHQzCiAgICAgb3JxIG51bWJlclRhZywgdDMKLSAgICB1
cGRhdGVVbmFyeUFyaXRoUHJvZmlsZShPcE5lZ2F0ZSwgQXJpdGhQcm9maWxlSW50LCB0MSwgdDIp
CisgICAgdXBkYXRlVW5hcnlBcml0aFByb2ZpbGUoc2l6ZSwgT3BOZWdhdGUsIEFyaXRoUHJvZmls
ZUludCwgdDEsIHQyKQogICAgIHJldHVybih0MykKIC5vcE5lZ2F0ZU5vdEludDoKICAgICBidHF6
IHQzLCBudW1iZXJUYWcsIC5vcE5lZ2F0ZVNsb3cKICAgICB4b3JxIDB4ODAwMDAwMDAwMDAwMDAw
MCwgdDMKLSAgICB1cGRhdGVVbmFyeUFyaXRoUHJvZmlsZShPcE5lZ2F0ZSwgQXJpdGhQcm9maWxl
TnVtYmVyLCB0MSwgdDIpCisgICAgdXBkYXRlVW5hcnlBcml0aFByb2ZpbGUoc2l6ZSwgT3BOZWdh
dGUsIEFyaXRoUHJvZmlsZU51bWJlciwgdDEsIHQyKQogICAgIHJldHVybih0MykKIAogLm9wTmVn
YXRlU2xvdzoKQEAgLTExNTgsOCArMTE1Niw2IEBAIGVuZCkKIAogbWFjcm8gYmluYXJ5T3BDdXN0
b21TdG9yZShvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIGludGVnZXJPcGVyYXRpb25BbmRTdG9y
ZSwgZG91YmxlT3BlcmF0aW9uKQogICAgIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfJW9wY29kZU5h
bWUlLCBvcGNvZGVTdHJ1Y3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwg
cmV0dXJuKQotICAgICAgICBtZXRhZGF0YSh0NSwgdDApCi0KICAgICAgICAgZ2V0KG1fcmhzLCB0
MCkKICAgICAgICAgZ2V0KG1fbGhzLCB0MikKICAgICAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJs
ZShzaXplLCB0MCwgdDEpCkBAIC0xMTY5LDcgKzExNjUsNyBAQCBtYWNybyBiaW5hcnlPcEN1c3Rv
bVN0b3JlKG9wY29kZU5hbWUsIG9wCiAgICAgICAgIGdldChtX2RzdCwgdDIpCiAgICAgICAgIGlu
dGVnZXJPcGVyYXRpb25BbmRTdG9yZSh0MSwgdDAsIC5zbG93LCB0MikKIAotICAgICAgICB1cGRh
dGVCaW5hcnlBcml0aFByb2ZpbGUob3Bjb2RlU3RydWN0LCBBcml0aFByb2ZpbGVJbnRJbnQsIHQ1
LCB0MikKKyAgICAgICAgdXBkYXRlQmluYXJ5QXJpdGhQcm9maWxlKHNpemUsIG9wY29kZVN0cnVj
dCwgQXJpdGhQcm9maWxlSW50SW50LCB0NSwgdDIpCiAgICAgICAgIGRpc3BhdGNoKCkKIAogICAg
IC5vcDFOb3RJbnQ6CkBAIC0xMTc5LDEwICsxMTc1LDEwIEBAIG1hY3JvIGJpbmFyeU9wQ3VzdG9t
U3RvcmUob3Bjb2RlTmFtZSwgb3AKICAgICAgICAgYnRxeiB0MSwgbnVtYmVyVGFnLCAuc2xvdwog
ICAgICAgICBhZGRxIG51bWJlclRhZywgdDEKICAgICAgICAgZnEyZCB0MSwgZnQxCi0gICAgICAg
IHVwZGF0ZUJpbmFyeUFyaXRoUHJvZmlsZShvcGNvZGVTdHJ1Y3QsIEFyaXRoUHJvZmlsZU51bWJl
ck51bWJlciwgdDUsIHQyKQorICAgICAgICB1cGRhdGVCaW5hcnlBcml0aFByb2ZpbGUoc2l6ZSwg
b3Bjb2RlU3RydWN0LCBBcml0aFByb2ZpbGVOdW1iZXJOdW1iZXIsIHQ1LCB0MikKICAgICAgICAg
am1wIC5vcDFOb3RJbnRSZWFkeQogICAgIC5vcDFOb3RJbnRPcDJJbnQ6Ci0gICAgICAgIHVwZGF0
ZUJpbmFyeUFyaXRoUHJvZmlsZShvcGNvZGVTdHJ1Y3QsIEFyaXRoUHJvZmlsZU51bWJlckludCwg
dDUsIHQyKQorICAgICAgICB1cGRhdGVCaW5hcnlBcml0aFByb2ZpbGUoc2l6ZSwgb3Bjb2RlU3Ry
dWN0LCBBcml0aFByb2ZpbGVOdW1iZXJJbnQsIHQ1LCB0MikKICAgICAgICAgY2kyZHMgdDEsIGZ0
MQogICAgIC5vcDFOb3RJbnRSZWFkeToKICAgICAgICAgZ2V0KG1fZHN0LCB0MikKQEAgLTExOTcs
NyArMTE5Myw3IEBAIG1hY3JvIGJpbmFyeU9wQ3VzdG9tU3RvcmUob3Bjb2RlTmFtZSwgb3AKICAg
ICAub3AyTm90SW50OgogICAgICAgICAjIEZpcnN0IG9wZXJhbmQgaXMgZGVmaW5pdGVseSBhbiBp
bnQsIHRoZSBzZWNvbmQgaXMgZGVmaW5pdGVseSBub3QuCiAgICAgICAgIGJ0cXogdDEsIG51bWJl
clRhZywgLnNsb3cKLSAgICAgICAgdXBkYXRlQmluYXJ5QXJpdGhQcm9maWxlKG9wY29kZVN0cnVj
dCwgQXJpdGhQcm9maWxlSW50TnVtYmVyLCB0NSwgdDIpCisgICAgICAgIHVwZGF0ZUJpbmFyeUFy
aXRoUHJvZmlsZShzaXplLCBvcGNvZGVTdHJ1Y3QsIEFyaXRoUHJvZmlsZUludE51bWJlciwgdDUs
IHQyKQogICAgICAgICBnZXQobV9kc3QsIHQyKQogICAgICAgICBjaTJkcyB0MCwgZnQwCiAgICAg
ICAgIGFkZHEgbnVtYmVyVGFnLCB0MQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQkocmV2aXNpb24gMjgzMDg0KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNTY2LDE0ICsyNTY2LDIwIEBAIG1hY3JvIG5vdFN1cHBvcnRlZCgpCiBl
bmQKIAogCi1tYWNybyB1cGRhdGVVbmFyeUFyaXRoUHJvZmlsZShvcGNvZGVTdHJ1Y3QsIHR5cGUs
IG1ldGFkYXRhLCB0ZW1wKQotICAgIGxvYWRwICVvcGNvZGVTdHJ1Y3QlOjpNZXRhZGF0YTo6bV9h
cml0aFByb2ZpbGVbbWV0YWRhdGFdLCB0ZW1wCi0gICAgb3JoIHR5cGUsIFVuYXJ5QXJpdGhQcm9m
aWxlOjptX2JpdHNbdGVtcF0KK21hY3JvIHVwZGF0ZVVuYXJ5QXJpdGhQcm9maWxlKHNpemUsIG9w
Y29kZVN0cnVjdCwgdHlwZSwgc2NyYXRjaDEsIHNjcmF0Y2gyKQorICAgIGdldHUoc2l6ZSwgb3Bj
b2RlU3RydWN0LCBtX3Byb2ZpbGVJbmRleCwgc2NyYXRjaDEpCisgICAgbG9hZHAgQ29kZUJsb2Nr
W2Nmcl0sIHNjcmF0Y2gyCisgICAgbG9hZHAgQ29kZUJsb2NrOjptX3VubGlua2VkQ29kZVtzY3Jh
dGNoMl0sIHNjcmF0Y2gyCisgICAgbG9hZHAgVW5saW5rZWRDb2RlQmxvY2s6Om1fdW5hcnlBcml0
aFByb2ZpbGVzICsgRml4ZWRWZWN0b3I6Om1fc3RvcmFnZSArIFJlZkNvdW50ZWRBcnJheTo6bV9k
YXRhW3NjcmF0Y2gyXSwgc2NyYXRjaDIKKyAgICBvcmggdHlwZSwgVW5hcnlBcml0aFByb2ZpbGU6
Om1fYml0c1tzY3JhdGNoMiwgc2NyYXRjaDEsIDJdCiBlbmQKIAotbWFjcm8gdXBkYXRlQmluYXJ5
QXJpdGhQcm9maWxlKG9wY29kZVN0cnVjdCwgdHlwZSwgbWV0YWRhdGEsIHRlbXApCi0gICAgbG9h
ZHAgJW9wY29kZVN0cnVjdCU6Ok1ldGFkYXRhOjptX2FyaXRoUHJvZmlsZVttZXRhZGF0YV0sIHRl
bXAKLSAgICBvcmggdHlwZSwgQmluYXJ5QXJpdGhQcm9maWxlOjptX2JpdHNbdGVtcF0KK21hY3Jv
IHVwZGF0ZUJpbmFyeUFyaXRoUHJvZmlsZShzaXplLCBvcGNvZGVTdHJ1Y3QsIHR5cGUsIHNjcmF0
Y2gxLCBzY3JhdGNoMikKKyAgICBnZXR1KHNpemUsIG9wY29kZVN0cnVjdCwgbV9wcm9maWxlSW5k
ZXgsIHNjcmF0Y2gxKQorICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCBzY3JhdGNoMgorICAgIGxv
YWRwIENvZGVCbG9jazo6bV91bmxpbmtlZENvZGVbc2NyYXRjaDJdLCBzY3JhdGNoMgorICAgIGxv
YWRwIFVubGlua2VkQ29kZUJsb2NrOjptX2JpbmFyeUFyaXRoUHJvZmlsZXMgKyBGaXhlZFZlY3Rv
cjo6bV9zdG9yYWdlICsgUmVmQ291bnRlZEFycmF5OjptX2RhdGFbc2NyYXRjaDJdLCBzY3JhdGNo
MgorICAgIG9yaCB0eXBlLCBCaW5hcnlBcml0aFByb2ZpbGU6Om1fYml0c1tzY3JhdGNoMiwgc2Ny
YXRjaDEsIDJdCiBlbmQKIAogLy8gRklYTUU6IFdlIHNob3VsZCBub3QgbmVlZCB0aGUgWDg2XzY0
X1dJTiBjb25kaXRpb24gaGVyZSwgc2luY2UgV0VCQVNTRU1CTFkgc2hvdWxkIGFscmVhZHkgYmUg
ZmFsc2Ugb24gV2luZG93cwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20v
Y2xvb3AucmIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20v
Y2xvb3AucmIJKHJldmlzaW9uIDI4MzA4NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZs
aW5lYXNtL2Nsb29wLnJiCSh3b3JraW5nIGNvcHkpCkBAIC0yNTksOSArMjU5LDExIEBAIGNsYXNz
IEJhc2VJbmRleAogICAgICAgICBjYXNlIHR5cGUKICAgICAgICAgd2hlbiA6aW50ODsgICAgICAg
aW50OE1lbVJlZgogICAgICAgICB3aGVuIDppbnQzMjsgICAgICBpbnQzMk1lbVJlZgorICAgICAg
ICB3aGVuIDppbnQxNjsgICAgICBpbnQxNk1lbVJlZgogICAgICAgICB3aGVuIDppbnQ2NDsgICAg
ICBpbnQ2NE1lbVJlZgogICAgICAgICB3aGVuIDppbnRwdHI7ICAgICBpbnRwdHJNZW1SZWYKICAg
ICAgICAgd2hlbiA6dWludDg7ICAgICAgdWludDhNZW1SZWYKKyAgICAgICAgd2hlbiA6dWludDE2
OyAgICAgdWludDE2TWVtUmVmCiAgICAgICAgIHdoZW4gOnVpbnQzMjsgICAgIHVpbnQzMk1lbVJl
ZgogICAgICAgICB3aGVuIDp1aW50NjQ7ICAgICB1aW50NjRNZW1SZWYKICAgICAgICAgd2hlbiA6
dWludHB0cjsgICAgdWludHB0ck1lbVJlZgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCShyZXZpc2lvbiAyODMwODQpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC00NzgsOSArNDc4LDggQEAgSlNDX0RFRklORV9DT01NT05fU0xPV19QQVRIKHNs
b3dfcGF0aF90bwogfQogCiAjaWYgRU5BQkxFKEpJVCkKLXN0YXRpYyB2b2lkIHVwZGF0ZUFyaXRo
UHJvZmlsZUZvclVuYXJ5QXJpdGhPcChPcE5lZ2F0ZTo6TWV0YWRhdGEmIG1ldGFkYXRhLCBKU1Zh
bHVlIHJlc3VsdCwgSlNWYWx1ZSBvcGVyYW5kKQorc3RhdGljIHZvaWQgdXBkYXRlQXJpdGhQcm9m
aWxlRm9yVW5hcnlBcml0aE9wKFVuYXJ5QXJpdGhQcm9maWxlJiBwcm9maWxlLCBKU1ZhbHVlIHJl
c3VsdCwgSlNWYWx1ZSBvcGVyYW5kKQogewotICAgIFVuYXJ5QXJpdGhQcm9maWxlJiBwcm9maWxl
ID0gKm1ldGFkYXRhLm1fYXJpdGhQcm9maWxlOwogICAgIHByb2ZpbGUub2JzZXJ2ZUFyZyhvcGVy
YW5kKTsKICAgICBBU1NFUlQocmVzdWx0LmlzTnVtYmVyKCkgfHwgcmVzdWx0LmlzQmlnSW50KCkp
OwogCkBAIC01MTQsMjQgKzUxMywyNSBAQCBzdGF0aWMgdm9pZCB1cGRhdGVBcml0aFByb2ZpbGVG
b3JVbmFyeUFyCiAgICAgfQogfQogI2Vsc2UKLXN0YXRpYyB2b2lkIHVwZGF0ZUFyaXRoUHJvZmls
ZUZvclVuYXJ5QXJpdGhPcChPcE5lZ2F0ZTo6TWV0YWRhdGEmLCBKU1ZhbHVlLCBKU1ZhbHVlKSB7
IH0KK3N0YXRpYyB2b2lkIHVwZGF0ZUFyaXRoUHJvZmlsZUZvclVuYXJ5QXJpdGhPcChVbmFyeUFy
aXRoUHJvZmlsZSYsIEpTVmFsdWUsIEpTVmFsdWUpIHsgfQogI2VuZGlmCiAKIEpTQ19ERUZJTkVf
Q09NTU9OX1NMT1dfUEFUSChzbG93X3BhdGhfbmVnYXRlKQogewogICAgIEJFR0lOKCk7CiAgICAg
YXV0byBieXRlY29kZSA9IHBjLT5hczxPcE5lZ2F0ZT4oKTsKLSAgICBhdXRvJiBtZXRhZGF0YSA9
IGJ5dGVjb2RlLm1ldGFkYXRhKGNvZGVCbG9jayk7CiAgICAgSlNWYWx1ZSBvcGVyYW5kID0gR0VU
X0MoYnl0ZWNvZGUubV9vcGVyYW5kKS5qc1ZhbHVlKCk7CiAgICAgSlNWYWx1ZSBwcmltVmFsdWUg
PSBvcGVyYW5kLnRvUHJpbWl0aXZlKGdsb2JhbE9iamVjdCwgUHJlZmVyTnVtYmVyKTsKICAgICBD
SEVDS19FWENFUFRJT04oKTsKIAorICAgIGF1dG8mIHByb2ZpbGUgPSBjb2RlQmxvY2stPnVubGlu
a2VkQ29kZUJsb2NrKCktPnVuYXJ5QXJpdGhQcm9maWxlKGJ5dGVjb2RlLm1fcHJvZmlsZUluZGV4
KTsKKwogI2lmIFVTRShCSUdJTlQzMikKICAgICBpZiAocHJpbVZhbHVlLmlzQmlnSW50MzIoKSkg
ewogICAgICAgICBKU1ZhbHVlIHJlc3VsdCA9IEpTQmlnSW50Ojp1bmFyeU1pbnVzKGdsb2JhbE9i
amVjdCwgcHJpbVZhbHVlLmJpZ0ludDMyQXNJbnQzMigpKTsKICAgICAgICAgQ0hFQ0tfRVhDRVBU
SU9OKCk7CiAgICAgICAgIFJFVFVSTl9XSVRIX1BST0ZJTElORyhyZXN1bHQsIHsKLSAgICAgICAg
ICAgIHVwZGF0ZUFyaXRoUHJvZmlsZUZvclVuYXJ5QXJpdGhPcChtZXRhZGF0YSwgcmVzdWx0LCBv
cGVyYW5kKTsKKyAgICAgICAgICAgIHVwZGF0ZUFyaXRoUHJvZmlsZUZvclVuYXJ5QXJpdGhPcChw
cm9maWxlLCByZXN1bHQsIG9wZXJhbmQpOwogICAgICAgICB9KTsKICAgICB9CiAjZW5kaWYKQEAg
LTU0MCwxNCArNTQwLDE0IEBAIEpTQ19ERUZJTkVfQ09NTU9OX1NMT1dfUEFUSChzbG93X3BhdGhf
bmUKICAgICAgICAgSlNWYWx1ZSByZXN1bHQgPSBKU0JpZ0ludDo6dW5hcnlNaW51cyhnbG9iYWxP
YmplY3QsIHByaW1WYWx1ZS5hc0hlYXBCaWdJbnQoKSk7CiAgICAgICAgIENIRUNLX0VYQ0VQVElP
TigpOwogICAgICAgICBSRVRVUk5fV0lUSF9QUk9GSUxJTkcocmVzdWx0LCB7Ci0gICAgICAgICAg
ICB1cGRhdGVBcml0aFByb2ZpbGVGb3JVbmFyeUFyaXRoT3AobWV0YWRhdGEsIHJlc3VsdCwgb3Bl
cmFuZCk7CisgICAgICAgICAgICB1cGRhdGVBcml0aFByb2ZpbGVGb3JVbmFyeUFyaXRoT3AocHJv
ZmlsZSwgcmVzdWx0LCBvcGVyYW5kKTsKICAgICAgICAgfSk7CiAgICAgfQogICAgIAogICAgIEpT
VmFsdWUgcmVzdWx0ID0ganNOdW1iZXIoLXByaW1WYWx1ZS50b051bWJlcihnbG9iYWxPYmplY3Qp
KTsKICAgICBDSEVDS19FWENFUFRJT04oKTsKICAgICBSRVRVUk5fV0lUSF9QUk9GSUxJTkcocmVz
dWx0LCB7Ci0gICAgICAgIHVwZGF0ZUFyaXRoUHJvZmlsZUZvclVuYXJ5QXJpdGhPcChtZXRhZGF0
YSwgcmVzdWx0LCBvcGVyYW5kKTsKKyAgICAgICAgdXBkYXRlQXJpdGhQcm9maWxlRm9yVW5hcnlB
cml0aE9wKHByb2ZpbGUsIHJlc3VsdCwgb3BlcmFuZCk7CiAgICAgfSk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439433</attachid>
            <date>2021-09-27 22:31:08 -0700</date>
            <delta_ts>2021-09-28 08:31:17 -0700</delta_ts>
            <desc>patch for landing</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>27408</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjgzMDg1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ1IEBA
CisyMDIxLTA5LTI1ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IE1ha2UgYnl0ZSBjb2RlcyB3aXRoIGFyaXRobWV0aWMgcHJvZmlsZXMgc3dpdGNoIHRvIHVzaW5n
IGFuIGluZGV4IGluc3RlYWQgb2YgYSBwb2ludGVyIGluIG1ldGFkYXRhCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzA3OTgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIG1ha2VzIGVhY2gg
Ynl0ZWNvZGUgdGhhdCB1c2VzIGEgQmluYXJ5QXJpdGhQcm9maWxlL1VuYXJ5QXJpdGhQcm9maWxl
CisgICAgICAgIGhhdmUgYW4gaW5kZXggaW50byBhIHRhYmxlIGluc3RlYWQgb2Ygc3RvcmluZyBh
IHBvaW50ZXIgdG8gdGhlIHByb2ZpbGUgaW4gaXRzIG1ldGFkYXRhLgorICAgICAgICBUaGVuLCB3
ZSBjYW4ganVzdCBsb2FkIHRoZSBwcm9maWxlIHVzaW5nIHRoZSBpbmRleCBpbiB0aGUgYnl0ZWNv
ZGUsIHdoaWNoIHNhdmVzIG1lbW9yeS4KKworICAgICAgICAqIGJ5dGVjb2RlL0J5dGVjb2RlTGlz
dC5yYjoKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgorICAgICAgICAoSlNDOjpD
b2RlQmxvY2s6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpiaW5h
cnlBcml0aFByb2ZpbGVGb3JQQyk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6dW5hcnlBcml0
aFByb2ZpbGVGb3JQQyk6CisgICAgICAgICogYnl0ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2suY3Bw
OgorICAgICAgICAoSlNDOjpVbmxpbmtlZENvZGVCbG9jazo6YWxsb2NhdGVTaGFyZWRQcm9maWxl
cyk6CisgICAgICAgICogYnl0ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2suaDoKKyAgICAgICAgKiBi
eXRlY29kZS9VbmxpbmtlZENvZGVCbG9ja0dlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6OlVu
bGlua2VkQ29kZUJsb2NrR2VuZXJhdG9yOjpmaW5hbGl6ZSk6CisgICAgICAgICogYnl0ZWNvZGUv
VW5saW5rZWRDb2RlQmxvY2tHZW5lcmF0b3IuaDoKKyAgICAgICAgKEpTQzo6VW5saW5rZWRDb2Rl
QmxvY2tHZW5lcmF0b3I6OmFkZEJpbmFyeUFyaXRoUHJvZmlsZSk6CisgICAgICAgIChKU0M6OlVu
bGlua2VkQ29kZUJsb2NrR2VuZXJhdG9yOjphZGRVbmFyeUFyaXRoUHJvZmlsZSk6CisgICAgICAg
ICogYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6Qnl0
ZWNvZGVHZW5lcmF0b3I6OmVtaXRVbmFyeU9wKToKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5l
cmF0b3I6OmVtaXRJbmMpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdERl
Yyk6CisgICAgICAgICogYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmg6CisgICAgICAg
ICogaml0L0pJVEFyaXRobWV0aWMuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfbmVn
YXRlKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2FkZCk6CisgICAgICAgIChKU0M6OkpJ
VDo6ZW1pdF9vcF9kaXYpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfbXVsKToKKyAgICAg
ICAgKEpTQzo6SklUOjplbWl0X29wX3N1Yik6CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRl
cnByZXRlci5hc206CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFz
bToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtOgorICAgICAgICAq
IHJ1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcDoKKyAgICAgICAgKEpTQzo6dXBkYXRlQXJpdGhQ
cm9maWxlRm9yVW5hcnlBcml0aE9wKToKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9DT01NT05f
U0xPV19QQVRIKToKKwogMjAyMS0wOS0yNSAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNv
bT4KIAogICAgICAgICBCdWlsZCBhbiB1bmxpbmtlZCBiYXNlbGluZSBKSVQKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QucmIKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5yYgkocmV2aXNpb24g
MjgzMDg0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5y
Ygkod29ya2luZyBjb3B5KQpAQCAtNjQsOCArNjQsNiBAQCB0eXBlcyBbCiAKICAgICA6VmFsdWVQ
cm9maWxlLAogICAgIDpWYWx1ZVByb2ZpbGVBbmRWaXJ0dWFsUmVnaXN0ZXJCdWZmZXIsCi0gICAg
OlVuYXJ5QXJpdGhQcm9maWxlLAotICAgIDpCaW5hcnlBcml0aFByb2ZpbGUsCiAgICAgOkFycmF5
UHJvZmlsZSwKICAgICA6QXJyYXlBbGxvY2F0aW9uUHJvZmlsZSwKICAgICA6T2JqZWN0QWxsb2Nh
dGlvblByb2ZpbGUsCkBAIC0yODksMTAgKzI4Nyw4IEBAIG9wX2dyb3VwIDpQcm9maWxlZEJpbmFy
eU9wLAogICAgICAgICBkc3Q6IFZpcnR1YWxSZWdpc3RlciwKICAgICAgICAgbGhzOiBWaXJ0dWFs
UmVnaXN0ZXIsCiAgICAgICAgIHJoczogVmlydHVhbFJlZ2lzdGVyLAorICAgICAgICBwcm9maWxl
SW5kZXg6IHVuc2lnbmVkLAogICAgICAgICBvcGVyYW5kVHlwZXM6IE9wZXJhbmRUeXBlcywKLSAg
ICB9LAotICAgIG1ldGFkYXRhOiB7Ci0gICAgICAgIGFyaXRoUHJvZmlsZTogQmluYXJ5QXJpdGhQ
cm9maWxlLioKICAgICB9CiAKIG9wX2dyb3VwIDpWYWx1ZVByb2ZpbGVkQmluYXJ5T3AsCkBAIC0z
NTEsOSArMzQ3LDcgQEAgb3BfZ3JvdXAgOlVuYXJ5SW5QbGFjZVByb2ZpbGVkT3AsCiAgICAgXSwK
ICAgICBhcmdzOiB7CiAgICAgICAgIHNyY0RzdDogVmlydHVhbFJlZ2lzdGVyLAotICAgIH0sCi0g
ICAgbWV0YWRhdGE6IHsKLSAgICAgICAgYXJpdGhQcm9maWxlOiBVbmFyeUFyaXRoUHJvZmlsZS4q
CisgICAgICAgIHByb2ZpbGVJbmRleDogdW5zaWduZWQsCiAgICAgfQogCiBvcCA6dG9fb2JqZWN0
LApAQCAtMzgzLDEwICszNzcsOCBAQCBvcCA6bmVnYXRlLAogICAgIGFyZ3M6IHsKICAgICAgICAg
ZHN0OiBWaXJ0dWFsUmVnaXN0ZXIsCiAgICAgICAgIG9wZXJhbmQ6IFZpcnR1YWxSZWdpc3RlciwK
KyAgICAgICAgcHJvZmlsZUluZGV4OiB1bnNpZ25lZCwKICAgICAgICAgcmVzdWx0VHlwZTogUmVz
dWx0VHlwZSwKLSAgICB9LAotICAgIG1ldGFkYXRhOiB7Ci0gICAgICAgIGFyaXRoUHJvZmlsZTog
VW5hcnlBcml0aFByb2ZpbGUuKgogICAgIH0KIAogb3AgOm5vdCwKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCShyZXZpc2lvbiAyODMwODQpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDcxLDIxICs0NzEsNiBAQCBib29sIENvZGVCbG9jazo6ZmluaXNoQ3JlYXRpb24o
Vk0mIHZtLCBTCiAgICAgICAgIGJyZWFrOyBcCiAgICAgfQogCi0gICAgdW5zaWduZWQgYmluYXJ5
UHJvZmlsZUluZGV4ID0gMDsKLSAgICB1bnNpZ25lZCB1bmFyeVByb2ZpbGVJbmRleCA9IDA7Ci0j
ZGVmaW5lIExJTktfV0lUSF9CSU5BUllfQVJJVEhfUFJPRklMRShfX29wKSBcCi0gICAgQ0FTRShf
X29wKTogeyBcCi0gICAgICAgIElOSVRJQUxJWkVfTUVUQURBVEEoX19vcCkgXAotICAgICAgICBt
ZXRhZGF0YS5tX2FyaXRoUHJvZmlsZSA9ICZtX3VubGlua2VkQ29kZS0+YmluYXJ5QXJpdGhQcm9m
aWxlKGJpbmFyeVByb2ZpbGVJbmRleCsrKTsgXAotICAgICAgICBicmVhazsgXAotICAgIH0KLSNk
ZWZpbmUgTElOS19XSVRIX1VOQVJZX0FSSVRIX1BST0ZJTEUoX19vcCkgXAotICAgIENBU0UoX19v
cCk6IHsgXAotICAgICAgICBJTklUSUFMSVpFX01FVEFEQVRBKF9fb3ApIFwKLSAgICAgICAgbWV0
YWRhdGEubV9hcml0aFByb2ZpbGUgPSAmbV91bmxpbmtlZENvZGUtPnVuYXJ5QXJpdGhQcm9maWxl
KHVuYXJ5UHJvZmlsZUluZGV4KyspOyBcCi0gICAgICAgIGJyZWFrOyBcCi0gICAgfQotCiAgICAg
Y29uc3QgSW5zdHJ1Y3Rpb25TdHJlYW0mIGluc3RydWN0aW9uU3RyZWFtID0gaW5zdHJ1Y3Rpb25z
KCk7CiAgICAgZm9yIChjb25zdCBhdXRvJiBpbnN0cnVjdGlvbiA6IGluc3RydWN0aW9uU3RyZWFt
KSB7CiAgICAgICAgIE9wY29kZUlEIG9wY29kZUlEID0gaW5zdHJ1Y3Rpb24tPm9wY29kZUlEKCk7
CkBAIC01NDgsMTUgKzUzMyw2IEBAIGJvb2wgQ29kZUJsb2NrOjpmaW5pc2hDcmVhdGlvbihWTSYg
dm0sIFMKICAgICAgICAgTElOSyhPcENyZWF0ZVByb21pc2UpCiAgICAgICAgIExJTksoT3BDcmVh
dGVHZW5lcmF0b3IpCiAKLSAgICAgICAgTElOS19XSVRIX0JJTkFSWV9BUklUSF9QUk9GSUxFKE9w
QWRkKQotICAgICAgICBMSU5LX1dJVEhfQklOQVJZX0FSSVRIX1BST0ZJTEUoT3BNdWwpCi0gICAg
ICAgIExJTktfV0lUSF9CSU5BUllfQVJJVEhfUFJPRklMRShPcERpdikKLSAgICAgICAgTElOS19X
SVRIX0JJTkFSWV9BUklUSF9QUk9GSUxFKE9wU3ViKQotCi0gICAgICAgIExJTktfV0lUSF9VTkFS
WV9BUklUSF9QUk9GSUxFKE9wTmVnYXRlKQotICAgICAgICBMSU5LX1dJVEhfVU5BUllfQVJJVEhf
UFJPRklMRShPcEluYykKLSAgICAgICAgTElOS19XSVRIX1VOQVJZX0FSSVRIX1BST0ZJTEUoT3BE
ZWMpCi0KICAgICAgICAgTElOSyhPcEpuZXFQdHIpCiAKICAgICAgICAgTElOSyhPcENhdGNoKQpA
QCAtMzQxMywxMyArMzM4OSwxMyBAQCBCaW5hcnlBcml0aFByb2ZpbGUqIENvZGVCbG9jazo6Ymlu
YXJ5QXJpCiB7CiAgICAgc3dpdGNoIChwYy0+b3Bjb2RlSUQoKSkgewogICAgIGNhc2Ugb3BfYWRk
OgotICAgICAgICByZXR1cm4gcGMtPmFzPE9wQWRkPigpLm1ldGFkYXRhKHRoaXMpLm1fYXJpdGhQ
cm9maWxlOworICAgICAgICByZXR1cm4gJnVubGlua2VkQ29kZUJsb2NrKCktPmJpbmFyeUFyaXRo
UHJvZmlsZShwYy0+YXM8T3BBZGQ+KCkubV9wcm9maWxlSW5kZXgpOwogICAgIGNhc2Ugb3BfbXVs
OgotICAgICAgICByZXR1cm4gcGMtPmFzPE9wTXVsPigpLm1ldGFkYXRhKHRoaXMpLm1fYXJpdGhQ
cm9maWxlOworICAgICAgICByZXR1cm4gJnVubGlua2VkQ29kZUJsb2NrKCktPmJpbmFyeUFyaXRo
UHJvZmlsZShwYy0+YXM8T3BNdWw+KCkubV9wcm9maWxlSW5kZXgpOwogICAgIGNhc2Ugb3Bfc3Vi
OgotICAgICAgICByZXR1cm4gcGMtPmFzPE9wU3ViPigpLm1ldGFkYXRhKHRoaXMpLm1fYXJpdGhQ
cm9maWxlOworICAgICAgICByZXR1cm4gJnVubGlua2VkQ29kZUJsb2NrKCktPmJpbmFyeUFyaXRo
UHJvZmlsZShwYy0+YXM8T3BTdWI+KCkubV9wcm9maWxlSW5kZXgpOwogICAgIGNhc2Ugb3BfZGl2
OgotICAgICAgICByZXR1cm4gcGMtPmFzPE9wRGl2PigpLm1ldGFkYXRhKHRoaXMpLm1fYXJpdGhQ
cm9maWxlOworICAgICAgICByZXR1cm4gJnVubGlua2VkQ29kZUJsb2NrKCktPmJpbmFyeUFyaXRo
UHJvZmlsZShwYy0+YXM8T3BEaXY+KCkubV9wcm9maWxlSW5kZXgpOwogICAgIGRlZmF1bHQ6CiAg
ICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTM0MzEsMTEgKzM0MDcsMTEgQEAgVW5hcnlBcml0aFBy
b2ZpbGUqIENvZGVCbG9jazo6dW5hcnlBcml0aAogewogICAgIHN3aXRjaCAocGMtPm9wY29kZUlE
KCkpIHsKICAgICBjYXNlIG9wX25lZ2F0ZToKLSAgICAgICAgcmV0dXJuIHBjLT5hczxPcE5lZ2F0
ZT4oKS5tZXRhZGF0YSh0aGlzKS5tX2FyaXRoUHJvZmlsZTsKKyAgICAgICAgcmV0dXJuICZ1bmxp
bmtlZENvZGVCbG9jaygpLT51bmFyeUFyaXRoUHJvZmlsZShwYy0+YXM8T3BOZWdhdGU+KCkubV9w
cm9maWxlSW5kZXgpOwogICAgIGNhc2Ugb3BfaW5jOgotICAgICAgICByZXR1cm4gcGMtPmFzPE9w
SW5jPigpLm1ldGFkYXRhKHRoaXMpLm1fYXJpdGhQcm9maWxlOworICAgICAgICByZXR1cm4gJnVu
bGlua2VkQ29kZUJsb2NrKCktPnVuYXJ5QXJpdGhQcm9maWxlKHBjLT5hczxPcEluYz4oKS5tX3By
b2ZpbGVJbmRleCk7CiAgICAgY2FzZSBvcF9kZWM6Ci0gICAgICAgIHJldHVybiBwYy0+YXM8T3BE
ZWM+KCkubWV0YWRhdGEodGhpcykubV9hcml0aFByb2ZpbGU7CisgICAgICAgIHJldHVybiAmdW5s
aW5rZWRDb2RlQmxvY2soKS0+dW5hcnlBcml0aFByb2ZpbGUocGMtPmFzPE9wRGVjPigpLm1fcHJv
ZmlsZUluZGV4KTsKICAgICBkZWZhdWx0OgogICAgICAgICBicmVhazsKICAgICB9CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2suY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZENvZGVCbG9j
ay5jcHAJKHJldmlzaW9uIDI4MzA4NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9VbmxpbmtlZENvZGVCbG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2MSw3ICszNjEsNyBA
QCBpbnQzMl90IFVubGlua2VkQ29kZUJsb2NrOjp0aHJlc2hvbGRGb3JKCiB9CiAKIAotdm9pZCBV
bmxpbmtlZENvZGVCbG9jazo6YWxsb2NhdGVTaGFyZWRQcm9maWxlcygpCit2b2lkIFVubGlua2Vk
Q29kZUJsb2NrOjphbGxvY2F0ZVNoYXJlZFByb2ZpbGVzKHVuc2lnbmVkIG51bUJpbmFyeUFyaXRo
UHJvZmlsZXMsIHVuc2lnbmVkIG51bVVuYXJ5QXJpdGhQcm9maWxlcykKIHsKICAgICBSRUxFQVNF
X0FTU0VSVCghbV9tZXRhZGF0YS0+aXNGaW5hbGl6ZWQoKSk7CiAKQEAgLTM4OSwxOSArMzg5LDEw
IEBAIHZvaWQgVW5saW5rZWRDb2RlQmxvY2s6OmFsbG9jYXRlU2hhcmVkUHIKICAgICAgICAgbnVt
YmVyT2ZBcnJheVByb2ZpbGVzICs9IG1fbWV0YWRhdGEtPm51bUVudHJpZXM8T3BJdGVyYXRvck5l
eHQ+KCk7CiAgICAgICAgIG51bWJlck9mQXJyYXlQcm9maWxlcyArPSBtX21ldGFkYXRhLT5udW1F
bnRyaWVzPE9wR2V0QnlJZD4oKTsKICAgICAgICAgbV9hcnJheVByb2ZpbGVzID0gRml4ZWRWZWN0
b3I8VW5saW5rZWRBcnJheVByb2ZpbGU+KG51bWJlck9mQXJyYXlQcm9maWxlcyk7Ci0KLSAgICAg
ICAgdW5zaWduZWQgbnVtYmVyT2ZCaW5hcnlBcml0aFByb2ZpbGVzID0gMDsKLSNkZWZpbmUgQ09V
TlQoX19vcCkgbnVtYmVyT2ZCaW5hcnlBcml0aFByb2ZpbGVzICs9IG1fbWV0YWRhdGEtPm51bUVu
dHJpZXM8X19vcD4oKTsKLSAgICAgICAgRk9SX0VBQ0hfT1BDT0RFX1dJVEhfQklOQVJZX0FSSVRI
X1BST0ZJTEUoQ09VTlQpCi0jdW5kZWYgQ09VTlQKLSAgICAgICAgbV9iaW5hcnlBcml0aFByb2Zp
bGVzID0gRml4ZWRWZWN0b3I8QmluYXJ5QXJpdGhQcm9maWxlPihudW1iZXJPZkJpbmFyeUFyaXRo
UHJvZmlsZXMpOwotCi0gICAgICAgIHVuc2lnbmVkIG51bWJlck9mVW5hcnlBcml0aFByb2ZpbGVz
ID0gMDsKLSNkZWZpbmUgQ09VTlQoX19vcCkgbnVtYmVyT2ZVbmFyeUFyaXRoUHJvZmlsZXMgKz0g
bV9tZXRhZGF0YS0+bnVtRW50cmllczxfX29wPigpOwotICAgICAgICBGT1JfRUFDSF9PUENPREVf
V0lUSF9VTkFSWV9BUklUSF9QUk9GSUxFKENPVU5UKQotI3VuZGVmIENPVU5UCi0gICAgICAgIG1f
dW5hcnlBcml0aFByb2ZpbGVzID0gRml4ZWRWZWN0b3I8VW5hcnlBcml0aFByb2ZpbGU+KG51bWJl
ck9mVW5hcnlBcml0aFByb2ZpbGVzKTsKICAgICB9CisKKyAgICBtX2JpbmFyeUFyaXRoUHJvZmls
ZXMgPSBGaXhlZFZlY3RvcjxCaW5hcnlBcml0aFByb2ZpbGU+KG51bUJpbmFyeUFyaXRoUHJvZmls
ZXMpOworICAgIG1fdW5hcnlBcml0aFByb2ZpbGVzID0gRml4ZWRWZWN0b3I8VW5hcnlBcml0aFBy
b2ZpbGU+KG51bVVuYXJ5QXJpdGhQcm9maWxlcyk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkQ29kZUJsb2NrLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkQ29k
ZUJsb2NrLmgJKHJldmlzaW9uIDI4MzA4NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9VbmxpbmtlZENvZGVCbG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNTIsNyArMzUyLDcg
QEAgcHVibGljOgogICAgICAgICAvLyBTb21lIGJ1aWx0aW5zIGFyZSByZXF1aXJlZCB0byBhbHdh
eXMgY29tcGxldGUgdGhlIGxvb3BzIHRoZXkgcnVuLgogICAgICAgICByZXR1cm4gIWlzQnVpbHRp
bkZ1bmN0aW9uKCk7CiAgICAgfQotICAgIHZvaWQgYWxsb2NhdGVTaGFyZWRQcm9maWxlcygpOwor
ICAgIHZvaWQgYWxsb2NhdGVTaGFyZWRQcm9maWxlcyh1bnNpZ25lZCBudW1CaW5hcnlBcml0aFBy
b2ZpbGVzLCB1bnNpZ25lZCBudW1VbmFyeUFyaXRoUHJvZmlsZXMpOwogICAgIFVubGlua2VkVmFs
dWVQcm9maWxlJiB1bmxpbmtlZFZhbHVlUHJvZmlsZSh1bnNpZ25lZCBpbmRleCkgeyByZXR1cm4g
bV92YWx1ZVByb2ZpbGVzW2luZGV4XTsgfQogICAgIFVubGlua2VkQXJyYXlQcm9maWxlJiB1bmxp
bmtlZEFycmF5UHJvZmlsZSh1bnNpZ25lZCBpbmRleCkgeyByZXR1cm4gbV9hcnJheVByb2ZpbGVz
W2luZGV4XTsgfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5r
ZWRDb2RlQmxvY2tHZW5lcmF0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9VbmxpbmtlZENvZGVCbG9ja0dlbmVyYXRvci5jcHAJKHJldmlzaW9uIDI4
MzA4NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZENvZGVCbG9j
a0dlbmVyYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExOSw3ICsxMTksNyBAQCB2b2lkIFVu
bGlua2VkQ29kZUJsb2NrR2VuZXJhdG9yOjpmaW5hbGl6CiAgICAgewogICAgICAgICBMb2NrZXIg
bG9ja2VyIHsgbV9jb2RlQmxvY2stPmNlbGxMb2NrKCkgfTsKICAgICAgICAgbV9jb2RlQmxvY2st
Pm1faW5zdHJ1Y3Rpb25zID0gV1RGTW92ZShpbnN0cnVjdGlvbnMpOwotICAgICAgICBtX2NvZGVC
bG9jay0+YWxsb2NhdGVTaGFyZWRQcm9maWxlcygpOworICAgICAgICBtX2NvZGVCbG9jay0+YWxs
b2NhdGVTaGFyZWRQcm9maWxlcyhtX251bUJpbmFyeUFyaXRoUHJvZmlsZXMsIG1fbnVtVW5hcnlB
cml0aFByb2ZpbGVzKTsKICAgICAgICAgbV9jb2RlQmxvY2stPm1fbWV0YWRhdGEtPmZpbmFsaXpl
KCk7CiAKICAgICAgICAgbV9jb2RlQmxvY2stPm1fanVtcFRhcmdldHMgPSBXVEZNb3ZlKG1fanVt
cFRhcmdldHMpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2Vk
Q29kZUJsb2NrR2VuZXJhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL1VubGlua2VkQ29kZUJsb2NrR2VuZXJhdG9yLmgJKHJldmlzaW9uIDI4MzA4NCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZENvZGVCbG9ja0dlbmVy
YXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMDAsNiArMjAwLDkgQEAgcHVibGljOgogCiAgICAg
dm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3Q7CiAKKyAgICB1bnNpZ25lZCBhZGRCaW5hcnlB
cml0aFByb2ZpbGUoKSB7IHJldHVybiBtX251bUJpbmFyeUFyaXRoUHJvZmlsZXMrKzsgfQorICAg
IHVuc2lnbmVkIGFkZFVuYXJ5QXJpdGhQcm9maWxlKCkgeyByZXR1cm4gbV9udW1VbmFyeUFyaXRo
UHJvZmlsZXMrKzsgfQorCiBwcml2YXRlOgogICAgIFZNJiBtX3ZtOwogICAgIFN0cm9uZzxVbmxp
bmtlZENvZGVCbG9jaz4gbV9jb2RlQmxvY2s7CkBAIC0yMjEsNiArMjI0LDggQEAgcHJpdmF0ZToK
ICAgICBWZWN0b3I8SW5zdHJ1Y3Rpb25TdHJlYW06Ok9mZnNldD4gbV9vcFByb2ZpbGVDb250cm9s
Rmxvd0J5dGVjb2RlT2Zmc2V0czsKICAgICBWZWN0b3I8Qml0VmVjdG9yPiBtX2JpdFZlY3RvcnM7
CiAgICAgVmVjdG9yPElkZW50aWZpZXJTZXQ+IG1fY29uc3RhbnRJZGVudGlmaWVyU2V0czsKKyAg
ICB1bnNpZ25lZCBtX251bUJpbmFyeUFyaXRoUHJvZmlsZXMgeyAwIH07CisgICAgdW5zaWduZWQg
bV9udW1VbmFyeUFyaXRoUHJvZmlsZXMgeyAwIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0
b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIv
Qnl0ZWNvZGVHZW5lcmF0b3IuY3BwCShyZXZpc2lvbiAyODMwODQpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTU5OCw3ICsxNTk4LDcgQEAgUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVt
aXRVbmFyeQogICAgICAgICBlbWl0VW5hcnlPcDxPcE5vdD4oZHN0LCBzcmMpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIG9wX25lZ2F0ZToKLSAgICAgICAgT3BOZWdhdGU6OmVtaXQodGhpcywg
ZHN0LCBzcmMsIHR5cGUpOworICAgICAgICBPcE5lZ2F0ZTo6ZW1pdCh0aGlzLCBkc3QsIHNyYywg
bV9jb2RlQmxvY2stPmFkZFVuYXJ5QXJpdGhQcm9maWxlKCksIHR5cGUpOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIG9wX2JpdG5vdDoKICAgICAgICAgZW1pdFVuYXJ5T3A8T3BCaXRub3Q+KGRz
dCwgc3JjKTsKQEAgLTE2OTYsMTMgKzE2OTYsMTMgQEAgUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5l
cmF0b3I6OmVtaXRUeXBlTwogCiBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdElu
YyhSZWdpc3RlcklEKiBzcmNEc3QpCiB7Ci0gICAgT3BJbmM6OmVtaXQodGhpcywgc3JjRHN0KTsK
KyAgICBPcEluYzo6ZW1pdCh0aGlzLCBzcmNEc3QsIG1fY29kZUJsb2NrLT5hZGRVbmFyeUFyaXRo
UHJvZmlsZSgpKTsKICAgICByZXR1cm4gc3JjRHN0OwogfQogCiBSZWdpc3RlcklEKiBCeXRlY29k
ZUdlbmVyYXRvcjo6ZW1pdERlYyhSZWdpc3RlcklEKiBzcmNEc3QpCiB7Ci0gICAgT3BEZWM6OmVt
aXQodGhpcywgc3JjRHN0KTsKKyAgICBPcERlYzo6ZW1pdCh0aGlzLCBzcmNEc3QsIG1fY29kZUJs
b2NrLT5hZGRVbmFyeUFyaXRoUHJvZmlsZSgpKTsKICAgICByZXR1cm4gc3JjRHN0OwogfQogCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9y
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRl
Y29kZUdlbmVyYXRvci5oCShyZXZpc2lvbiAyODMwODQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTY4
Miw3ICs2ODIsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIFJlZ2lzdGVySUQqPgog
ICAgICAgICBlbWl0QmluYXJ5T3AoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBzcmMxLCBS
ZWdpc3RlcklEKiBzcmMyLCBPcGVyYW5kVHlwZXMgdHlwZXMpCiAgICAgICAgIHsKLSAgICAgICAg
ICAgIEJpbmFyeU9wOjplbWl0KHRoaXMsIGRzdCwgc3JjMSwgc3JjMiwgdHlwZXMpOworICAgICAg
ICAgICAgQmluYXJ5T3A6OmVtaXQodGhpcywgZHN0LCBzcmMxLCBzcmMyLCBtX2NvZGVCbG9jay0+
YWRkQmluYXJ5QXJpdGhQcm9maWxlKCksIHR5cGVzKTsKICAgICAgICAgICAgIHJldHVybiBkc3Q7
CiAgICAgICAgIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBcml0aG1l
dGljLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRo
bWV0aWMuY3BwCShyZXZpc2lvbiAyODMwODQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVEFyaXRobWV0aWMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MjIsNyArNzIyLDcgQEAgdm9p
ZCBKSVQ6OmVtaXRCaW5hcnlEb3VibGVPcChjb25zdCBJbnN0cgogCiB2b2lkIEpJVDo6ZW1pdF9v
cF9uZWdhdGUoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIHsKLSAgICBV
bmFyeUFyaXRoUHJvZmlsZSogYXJpdGhQcm9maWxlID0gY3VycmVudEluc3RydWN0aW9uLT5hczxP
cE5lZ2F0ZT4oKS5tZXRhZGF0YShtX3Byb2ZpbGVkQ29kZUJsb2NrKS5tX2FyaXRoUHJvZmlsZTsK
KyAgICBVbmFyeUFyaXRoUHJvZmlsZSogYXJpdGhQcm9maWxlID0gJm1fdW5saW5rZWRDb2RlQmxv
Y2stPnVuYXJ5QXJpdGhQcm9maWxlKGN1cnJlbnRJbnN0cnVjdGlvbi0+YXM8T3BOZWdhdGU+KCku
bV9wcm9maWxlSW5kZXgpOwogICAgIEpJVE5lZ0lDKiBuZWdhdGVJQyA9IG1fbWF0aElDcy5hZGRK
SVROZWdJQyhhcml0aFByb2ZpbGUpOwogICAgIG1faW5zdHJ1Y3Rpb25Ub01hdGhJQy5hZGQoY3Vy
cmVudEluc3RydWN0aW9uLCBuZWdhdGVJQyk7CiAgICAgLy8gRklYTUU6IGl0IHdvdWxkIGJlIGJl
dHRlciB0byBjYWxsIHRob3NlIG9wZXJhdGlvblZhbHVlTmVnYXRlLCBzaW5jZSB0aGUgb3BlcmFu
ZCBjYW4gYmUgYSBCaWdJbnQKQEAgLTkwNCw3ICs5MDQsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF91
cnNoaWZ0KGNvbnN0IEluc3RydWN0CiAKIHZvaWQgSklUOjplbWl0X29wX2FkZChjb25zdCBJbnN0
cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogewotICAgIEJpbmFyeUFyaXRoUHJvZmlsZSog
YXJpdGhQcm9maWxlID0gY3VycmVudEluc3RydWN0aW9uLT5hczxPcEFkZD4oKS5tZXRhZGF0YSht
X3Byb2ZpbGVkQ29kZUJsb2NrKS5tX2FyaXRoUHJvZmlsZTsKKyAgICBCaW5hcnlBcml0aFByb2Zp
bGUqIGFyaXRoUHJvZmlsZSA9ICZtX3VubGlua2VkQ29kZUJsb2NrLT5iaW5hcnlBcml0aFByb2Zp
bGUoY3VycmVudEluc3RydWN0aW9uLT5hczxPcEFkZD4oKS5tX3Byb2ZpbGVJbmRleCk7CiAgICAg
SklUQWRkSUMqIGFkZElDID0gbV9tYXRoSUNzLmFkZEpJVEFkZElDKGFyaXRoUHJvZmlsZSk7CiAg
ICAgbV9pbnN0cnVjdGlvblRvTWF0aElDLmFkZChjdXJyZW50SW5zdHJ1Y3Rpb24sIGFkZElDKTsK
ICAgICBlbWl0TWF0aElDRmFzdDxPcEFkZD4oYWRkSUMsIGN1cnJlbnRJbnN0cnVjdGlvbiwgb3Bl
cmF0aW9uVmFsdWVBZGRQcm9maWxlZCwgb3BlcmF0aW9uVmFsdWVBZGQpOwpAQCAtMTE3NSw3ICsx
MTc1LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZGl2KGNvbnN0IEluc3RydWN0aW9uKgogCiAgICAg
QmluYXJ5QXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUgPSBudWxscHRyOwogICAgIGlmIChzaG91
bGRFbWl0UHJvZmlsaW5nKCkpCi0gICAgICAgIGFyaXRoUHJvZmlsZSA9IGN1cnJlbnRJbnN0cnVj
dGlvbi0+YXM8T3BEaXY+KCkubWV0YWRhdGEobV9wcm9maWxlZENvZGVCbG9jaykubV9hcml0aFBy
b2ZpbGU7CisgICAgICAgIGFyaXRoUHJvZmlsZSA9ICZtX3VubGlua2VkQ29kZUJsb2NrLT5iaW5h
cnlBcml0aFByb2ZpbGUoY3VycmVudEluc3RydWN0aW9uLT5hczxPcERpdj4oKS5tX3Byb2ZpbGVJ
bmRleCk7CiAKICAgICBTbmlwcGV0T3BlcmFuZCBsZWZ0T3BlcmFuZChieXRlY29kZS5tX29wZXJh
bmRUeXBlcy5maXJzdCgpKTsKICAgICBTbmlwcGV0T3BlcmFuZCByaWdodE9wZXJhbmQoYnl0ZWNv
ZGUubV9vcGVyYW5kVHlwZXMuc2Vjb25kKCkpOwpAQCAtMTIyMCw3ICsxMjIwLDcgQEAgdm9pZCBK
SVQ6OmVtaXRfb3BfZGl2KGNvbnN0IEluc3RydWN0aW9uKgogCiB2b2lkIEpJVDo6ZW1pdF9vcF9t
dWwoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIHsKLSAgICBCaW5hcnlB
cml0aFByb2ZpbGUqIGFyaXRoUHJvZmlsZSA9IGN1cnJlbnRJbnN0cnVjdGlvbi0+YXM8T3BNdWw+
KCkubWV0YWRhdGEobV9wcm9maWxlZENvZGVCbG9jaykubV9hcml0aFByb2ZpbGU7CisgICAgQmlu
YXJ5QXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUgPSAmbV91bmxpbmtlZENvZGVCbG9jay0+Ymlu
YXJ5QXJpdGhQcm9maWxlKGN1cnJlbnRJbnN0cnVjdGlvbi0+YXM8T3BNdWw+KCkubV9wcm9maWxl
SW5kZXgpOwogICAgIEpJVE11bElDKiBtdWxJQyA9IG1fbWF0aElDcy5hZGRKSVRNdWxJQyhhcml0
aFByb2ZpbGUpOwogICAgIG1faW5zdHJ1Y3Rpb25Ub01hdGhJQy5hZGQoY3VycmVudEluc3RydWN0
aW9uLCBtdWxJQyk7CiAgICAgZW1pdE1hdGhJQ0Zhc3Q8T3BNdWw+KG11bElDLCBjdXJyZW50SW5z
dHJ1Y3Rpb24sIG9wZXJhdGlvblZhbHVlTXVsUHJvZmlsZWQsIG9wZXJhdGlvblZhbHVlTXVsKTsK
QEAgLTEyMzYsNyArMTIzNiw3IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9tdWwoY29uc3QgSW5z
dHJ1Y3QKIAogdm9pZCBKSVQ6OmVtaXRfb3Bfc3ViKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50
SW5zdHJ1Y3Rpb24pCiB7Ci0gICAgQmluYXJ5QXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUgPSBj
dXJyZW50SW5zdHJ1Y3Rpb24tPmFzPE9wU3ViPigpLm1ldGFkYXRhKG1fcHJvZmlsZWRDb2RlQmxv
Y2spLm1fYXJpdGhQcm9maWxlOworICAgIEJpbmFyeUFyaXRoUHJvZmlsZSogYXJpdGhQcm9maWxl
ID0gJm1fdW5saW5rZWRDb2RlQmxvY2stPmJpbmFyeUFyaXRoUHJvZmlsZShjdXJyZW50SW5zdHJ1
Y3Rpb24tPmFzPE9wU3ViPigpLm1fcHJvZmlsZUluZGV4KTsKICAgICBKSVRTdWJJQyogc3ViSUMg
PSBtX21hdGhJQ3MuYWRkSklUU3ViSUMoYXJpdGhQcm9maWxlKTsKICAgICBtX2luc3RydWN0aW9u
VG9NYXRoSUMuYWRkKGN1cnJlbnRJbnN0cnVjdGlvbiwgc3ViSUMpOwogICAgIGVtaXRNYXRoSUNG
YXN0PE9wU3ViPihzdWJJQywgY3VycmVudEluc3RydWN0aW9uLCBvcGVyYXRpb25WYWx1ZVN1YlBy
b2ZpbGVkLCBvcGVyYXRpb25WYWx1ZVN1Yik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQkocmV2aXNp
b24gMjgzMDg0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJw
cmV0ZXIzMl82NC5hc20JKHdvcmtpbmcgY29weSkKQEAgLTEwMTIsMTQgKzEwMTIsMTMgQEAgc3Ry
aWN0RXF1YWxpdHlKdW1wT3Aoam5zdHJpY3RlcSwgT3BKbnN0cgogCiBtYWNybyBwcmVPcChvcGNv
ZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIGludGVnZXJPcGVyYXRpb24pCiAgICAgbGxpbnRPcFdpdGhN
ZXRhZGF0YShvcF8lb3Bjb2RlTmFtZSUsIG9wY29kZVN0cnVjdCwgbWFjcm8gKHNpemUsIGdldCwg
ZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCi0gICAgICAgIG1ldGFkYXRhKHQxLCB0MikKICAg
ICAgICAgZ2V0KG1fc3JjRHN0LCB0MCkKICAgICAgICAgYmluZXEgVGFnT2Zmc2V0W2NmciwgdDAs
IDhdLCBJbnQzMlRhZywgLnNsb3cKICAgICAgICAgbG9hZGkgUGF5bG9hZE9mZnNldFtjZnIsIHQw
LCA4XSwgdDIKLSAgICAgICAgIyBNZXRhZGF0YSBpbiB0MSwgc3JjRHN0IGluIHQyCisgICAgICAg
ICMgc3JjRHN0IGluIHQyCiAgICAgICAgIGludGVnZXJPcGVyYXRpb24odDIsIC5zbG93KQogICAg
ICAgICBzdG9yZWkgdDIsIFBheWxvYWRPZmZzZXRbY2ZyLCB0MCwgOF0KLSAgICAgICAgdXBkYXRl
VW5hcnlBcml0aFByb2ZpbGUob3Bjb2RlU3RydWN0LCBBcml0aFByb2ZpbGVJbnQsIHQxLCB0MikK
KyAgICAgICAgdXBkYXRlVW5hcnlBcml0aFByb2ZpbGUoc2l6ZSwgb3Bjb2RlU3RydWN0LCBBcml0
aFByb2ZpbGVJbnQsIHQ1LCB0MikKICAgICAgICAgZGlzcGF0Y2goKQogCiAgICAgLnNsb3c6CkBA
IC0xMDg0LDE5ICsxMDgzLDE3IEBAIGVuZCkKIAogCiBsbGludE9wV2l0aE1ldGFkYXRhKG9wX25l
Z2F0ZSwgT3BOZWdhdGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0
dXJuKQotCi0gICAgbWV0YWRhdGEodDUsIHQwKQogICAgIGdldChtX29wZXJhbmQsIHQwKQogICAg
IGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwgdDAsIHQxLCB0MikKICAgICBiaW5lcSB0MSwg
SW50MzJUYWcsIC5vcE5lZ2F0ZVNyY05vdEludAogICAgIGJ0aXogdDIsIDB4N2ZmZmZmZmYsIC5v
cE5lZ2F0ZVNsb3cKICAgICBuZWdpIHQyCi0gICAgdXBkYXRlVW5hcnlBcml0aFByb2ZpbGUoT3BO
ZWdhdGUsIEFyaXRoUHJvZmlsZUludCwgdDUsIHQzKQorICAgIHVwZGF0ZVVuYXJ5QXJpdGhQcm9m
aWxlKHNpemUsIE9wTmVnYXRlLCBBcml0aFByb2ZpbGVJbnQsIHQwLCB0MykKICAgICByZXR1cm4g
KEludDMyVGFnLCB0MikKIC5vcE5lZ2F0ZVNyY05vdEludDoKICAgICBiaWEgdDEsIExvd2VzdFRh
ZywgLm9wTmVnYXRlU2xvdwogICAgIHhvcmkgMHg4MDAwMDAwMCwgdDEKLSAgICB1cGRhdGVVbmFy
eUFyaXRoUHJvZmlsZShPcE5lZ2F0ZSwgQXJpdGhQcm9maWxlTnVtYmVyLCB0NSwgdDMpCisgICAg
dXBkYXRlVW5hcnlBcml0aFByb2ZpbGUoc2l6ZSwgT3BOZWdhdGUsIEFyaXRoUHJvZmlsZU51bWJl
ciwgdDAsIHQzKQogICAgIHJldHVybih0MSwgdDIpCiAKIC5vcE5lZ2F0ZVNsb3c6CkBAIC0xMTA3
LDE0ICsxMTA0LDEzIEBAIGVuZCkKIAogbWFjcm8gYmluYXJ5T3BDdXN0b21TdG9yZShvcGNvZGVO
YW1lLCBvcGNvZGVTdHJ1Y3QsIGludGVnZXJPcGVyYXRpb25BbmRTdG9yZSwgZG91YmxlT3BlcmF0
aW9uKQogICAgIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfJW9wY29kZU5hbWUlLCBvcGNvZGVTdHJ1
Y3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuKQotICAgICAg
ICBtZXRhZGF0YSh0NSwgdDIpCiAgICAgICAgIGdldChtX3JocywgdDIpCiAgICAgICAgIGdldCht
X2xocywgdDApCiAgICAgICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwgdDIsIHQzLCB0
MSkKICAgICAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZTJSZWcoc2l6ZSwgdDAsIHQyLCB0MCkK
ICAgICAgICAgYmluZXEgdDIsIEludDMyVGFnLCAub3AxTm90SW50CiAgICAgICAgIGJpbmVxIHQz
LCBJbnQzMlRhZywgLm9wMk5vdEludAotICAgICAgICB1cGRhdGVCaW5hcnlBcml0aFByb2ZpbGUo
b3Bjb2RlU3RydWN0LCBBcml0aFByb2ZpbGVJbnRJbnQsIHQ1LCB0MikKKyAgICAgICAgdXBkYXRl
QmluYXJ5QXJpdGhQcm9maWxlKHNpemUsIG9wY29kZVN0cnVjdCwgQXJpdGhQcm9maWxlSW50SW50
LCB0NSwgdDIpCiAgICAgICAgIGdldChtX2RzdCwgdDIpCiAgICAgICAgIGludGVnZXJPcGVyYXRp
b25BbmRTdG9yZSh0MywgdDEsIHQwLCAuc2xvdywgdDIpCiAgICAgICAgIGRpc3BhdGNoKCkKQEAg
LTExMjQsMTIgKzExMjAsMTIgQEAgbWFjcm8gYmluYXJ5T3BDdXN0b21TdG9yZShvcGNvZGVOYW1l
LCBvcAogICAgICAgICBiaWEgdDIsIExvd2VzdFRhZywgLnNsb3cKICAgICAgICAgYmliIHQzLCBM
b3dlc3RUYWcsIC5vcDFOb3RJbnRPcDJEb3VibGUKICAgICAgICAgYmluZXEgdDMsIEludDMyVGFn
LCAuc2xvdwotICAgICAgICB1cGRhdGVCaW5hcnlBcml0aFByb2ZpbGUob3Bjb2RlU3RydWN0LCBB
cml0aFByb2ZpbGVOdW1iZXJJbnQsIHQ1LCB0NCkKKyAgICAgICAgdXBkYXRlQmluYXJ5QXJpdGhQ
cm9maWxlKHNpemUsIG9wY29kZVN0cnVjdCwgQXJpdGhQcm9maWxlTnVtYmVySW50LCB0NSwgdDQp
CiAgICAgICAgIGNpMmRzIHQxLCBmdDEKICAgICAgICAgam1wIC5vcDFOb3RJbnRSZWFkeQogICAg
IC5vcDFOb3RJbnRPcDJEb3VibGU6CiAgICAgICAgIGZpaTJkIHQxLCB0MywgZnQxCi0gICAgICAg
IHVwZGF0ZUJpbmFyeUFyaXRoUHJvZmlsZShvcGNvZGVTdHJ1Y3QsIEFyaXRoUHJvZmlsZU51bWJl
ck51bWJlciwgdDUsIHQ0KQorICAgICAgICB1cGRhdGVCaW5hcnlBcml0aFByb2ZpbGUoc2l6ZSwg
b3Bjb2RlU3RydWN0LCBBcml0aFByb2ZpbGVOdW1iZXJOdW1iZXIsIHQ1LCB0NCkKICAgICAub3Ax
Tm90SW50UmVhZHk6CiAgICAgICAgIGdldChtX2RzdCwgdDEpCiAgICAgICAgIGZpaTJkIHQwLCB0
MiwgZnQwCkBAIC0xMTQxLDcgKzExMzcsNyBAQCBtYWNybyBiaW5hcnlPcEN1c3RvbVN0b3JlKG9w
Y29kZU5hbWUsIG9wCiAgICAgICAgICMgRmlyc3Qgb3BlcmFuZCBpcyBkZWZpbml0ZWx5IGFuIGlu
dCwgdGhlIHNlY29uZCBvcGVyYW5kIGlzIGRlZmluaXRlbHkgbm90LgogICAgICAgICBnZXQobV9k
c3QsIHQyKQogICAgICAgICBiaWEgdDMsIExvd2VzdFRhZywgLnNsb3cKLSAgICAgICAgdXBkYXRl
QmluYXJ5QXJpdGhQcm9maWxlKG9wY29kZVN0cnVjdCwgQXJpdGhQcm9maWxlSW50TnVtYmVyLCB0
NSwgdDQpCisgICAgICAgIHVwZGF0ZUJpbmFyeUFyaXRoUHJvZmlsZShzaXplLCBvcGNvZGVTdHJ1
Y3QsIEFyaXRoUHJvZmlsZUludE51bWJlciwgdDUsIHQ0KQogICAgICAgICBjaTJkcyB0MCwgZnQw
CiAgICAgICAgIGZpaTJkIHQxLCB0MywgZnQxCiAgICAgICAgIGRvdWJsZU9wZXJhdGlvbihmdDEs
IGZ0MCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJl
dGVyNjQuYXNtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dM
ZXZlbEludGVycHJldGVyNjQuYXNtCShyZXZpc2lvbiAyODMwODQpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQkod29ya2luZyBjb3B5KQpA
QCAtMTA2MywxNCArMTA2MywxMyBAQCBtYWNybyBwcmVPcChvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1
Y3QsIGluCiAgICAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF8lb3Bjb2RlTmFtZSUsIG9wY29kZVN0
cnVjdCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCiAgICAg
ICAgIGdldChtX3NyY0RzdCwgdDApCiAgICAgICAgIGxvYWRxIFtjZnIsIHQwLCA4XSwgdDEKLSAg
ICAgICAgbWV0YWRhdGEodDIsIHQzKQotICAgICAgICAjIHNyY0RzdCBpbiB0MSwgbWV0YWRhdGEg
aW4gdDIKKyAgICAgICAgIyBzcmNEc3QgaW4gdDEKICAgICAgICAgIyBGSVhNRTogdGhlIG5leHQg
bGluZSBqdW1wcyB0byB0aGUgc2xvdyBwYXRoIGZvciBCaWdJbnQzMi4gV2UgY291bGQgaW5zdGVh
ZCBoYXZlIGEgZGVkaWNhdGVkIHBhdGggaW4gaGVyZSBmb3IgdGhlbS4KICAgICAgICAgYnFiIHQx
LCBudW1iZXJUYWcsIC5zbG93CiAgICAgICAgIGludGVnZXJPcGVyYXRpb24odDEsIC5zbG93KQog
ICAgICAgICBvcnEgbnVtYmVyVGFnLCB0MQogICAgICAgICBzdG9yZXEgdDEsIFtjZnIsIHQwLCA4
XQotICAgICAgICB1cGRhdGVVbmFyeUFyaXRoUHJvZmlsZShvcGNvZGVTdHJ1Y3QsIEFyaXRoUHJv
ZmlsZUludCwgdDIsIHQzKQorICAgICAgICB1cGRhdGVVbmFyeUFyaXRoUHJvZmlsZShzaXplLCBv
cGNvZGVTdHJ1Y3QsIEFyaXRoUHJvZmlsZUludCwgdDUsIHQzKQogICAgICAgICBkaXNwYXRjaCgp
CiAKICAgICAuc2xvdzoKQEAgLTExMzcsMTcgKzExMzYsMTYgQEAgZW5kKQogbGxpbnRPcFdpdGhN
ZXRhZGF0YShvcF9uZWdhdGUsIE9wTmVnYXRlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwg
bWV0YWRhdGEsIHJldHVybikKICAgICBnZXQobV9vcGVyYW5kLCB0MCkKICAgICBsb2FkQ29uc3Rh
bnRPclZhcmlhYmxlKHNpemUsIHQwLCB0MykKLSAgICBtZXRhZGF0YSh0MSwgdDIpCiAgICAgYnFi
IHQzLCBudW1iZXJUYWcsIC5vcE5lZ2F0ZU5vdEludAogICAgIGJ0aXogdDMsIDB4N2ZmZmZmZmYs
IC5vcE5lZ2F0ZVNsb3cKICAgICBuZWdpIHQzCiAgICAgb3JxIG51bWJlclRhZywgdDMKLSAgICB1
cGRhdGVVbmFyeUFyaXRoUHJvZmlsZShPcE5lZ2F0ZSwgQXJpdGhQcm9maWxlSW50LCB0MSwgdDIp
CisgICAgdXBkYXRlVW5hcnlBcml0aFByb2ZpbGUoc2l6ZSwgT3BOZWdhdGUsIEFyaXRoUHJvZmls
ZUludCwgdDEsIHQyKQogICAgIHJldHVybih0MykKIC5vcE5lZ2F0ZU5vdEludDoKICAgICBidHF6
IHQzLCBudW1iZXJUYWcsIC5vcE5lZ2F0ZVNsb3cKICAgICB4b3JxIDB4ODAwMDAwMDAwMDAwMDAw
MCwgdDMKLSAgICB1cGRhdGVVbmFyeUFyaXRoUHJvZmlsZShPcE5lZ2F0ZSwgQXJpdGhQcm9maWxl
TnVtYmVyLCB0MSwgdDIpCisgICAgdXBkYXRlVW5hcnlBcml0aFByb2ZpbGUoc2l6ZSwgT3BOZWdh
dGUsIEFyaXRoUHJvZmlsZU51bWJlciwgdDEsIHQyKQogICAgIHJldHVybih0MykKIAogLm9wTmVn
YXRlU2xvdzoKQEAgLTExNTgsOCArMTE1Niw2IEBAIGVuZCkKIAogbWFjcm8gYmluYXJ5T3BDdXN0
b21TdG9yZShvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIGludGVnZXJPcGVyYXRpb25BbmRTdG9y
ZSwgZG91YmxlT3BlcmF0aW9uKQogICAgIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfJW9wY29kZU5h
bWUlLCBvcGNvZGVTdHJ1Y3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwg
cmV0dXJuKQotICAgICAgICBtZXRhZGF0YSh0NSwgdDApCi0KICAgICAgICAgZ2V0KG1fcmhzLCB0
MCkKICAgICAgICAgZ2V0KG1fbGhzLCB0MikKICAgICAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJs
ZShzaXplLCB0MCwgdDEpCkBAIC0xMTY5LDcgKzExNjUsNyBAQCBtYWNybyBiaW5hcnlPcEN1c3Rv
bVN0b3JlKG9wY29kZU5hbWUsIG9wCiAgICAgICAgIGdldChtX2RzdCwgdDIpCiAgICAgICAgIGlu
dGVnZXJPcGVyYXRpb25BbmRTdG9yZSh0MSwgdDAsIC5zbG93LCB0MikKIAotICAgICAgICB1cGRh
dGVCaW5hcnlBcml0aFByb2ZpbGUob3Bjb2RlU3RydWN0LCBBcml0aFByb2ZpbGVJbnRJbnQsIHQ1
LCB0MikKKyAgICAgICAgdXBkYXRlQmluYXJ5QXJpdGhQcm9maWxlKHNpemUsIG9wY29kZVN0cnVj
dCwgQXJpdGhQcm9maWxlSW50SW50LCB0NSwgdDIpCiAgICAgICAgIGRpc3BhdGNoKCkKIAogICAg
IC5vcDFOb3RJbnQ6CkBAIC0xMTc5LDEwICsxMTc1LDEwIEBAIG1hY3JvIGJpbmFyeU9wQ3VzdG9t
U3RvcmUob3Bjb2RlTmFtZSwgb3AKICAgICAgICAgYnRxeiB0MSwgbnVtYmVyVGFnLCAuc2xvdwog
ICAgICAgICBhZGRxIG51bWJlclRhZywgdDEKICAgICAgICAgZnEyZCB0MSwgZnQxCi0gICAgICAg
IHVwZGF0ZUJpbmFyeUFyaXRoUHJvZmlsZShvcGNvZGVTdHJ1Y3QsIEFyaXRoUHJvZmlsZU51bWJl
ck51bWJlciwgdDUsIHQyKQorICAgICAgICB1cGRhdGVCaW5hcnlBcml0aFByb2ZpbGUoc2l6ZSwg
b3Bjb2RlU3RydWN0LCBBcml0aFByb2ZpbGVOdW1iZXJOdW1iZXIsIHQ1LCB0MikKICAgICAgICAg
am1wIC5vcDFOb3RJbnRSZWFkeQogICAgIC5vcDFOb3RJbnRPcDJJbnQ6Ci0gICAgICAgIHVwZGF0
ZUJpbmFyeUFyaXRoUHJvZmlsZShvcGNvZGVTdHJ1Y3QsIEFyaXRoUHJvZmlsZU51bWJlckludCwg
dDUsIHQyKQorICAgICAgICB1cGRhdGVCaW5hcnlBcml0aFByb2ZpbGUoc2l6ZSwgb3Bjb2RlU3Ry
dWN0LCBBcml0aFByb2ZpbGVOdW1iZXJJbnQsIHQ1LCB0MikKICAgICAgICAgY2kyZHMgdDEsIGZ0
MQogICAgIC5vcDFOb3RJbnRSZWFkeToKICAgICAgICAgZ2V0KG1fZHN0LCB0MikKQEAgLTExOTcs
NyArMTE5Myw3IEBAIG1hY3JvIGJpbmFyeU9wQ3VzdG9tU3RvcmUob3Bjb2RlTmFtZSwgb3AKICAg
ICAub3AyTm90SW50OgogICAgICAgICAjIEZpcnN0IG9wZXJhbmQgaXMgZGVmaW5pdGVseSBhbiBp
bnQsIHRoZSBzZWNvbmQgaXMgZGVmaW5pdGVseSBub3QuCiAgICAgICAgIGJ0cXogdDEsIG51bWJl
clRhZywgLnNsb3cKLSAgICAgICAgdXBkYXRlQmluYXJ5QXJpdGhQcm9maWxlKG9wY29kZVN0cnVj
dCwgQXJpdGhQcm9maWxlSW50TnVtYmVyLCB0NSwgdDIpCisgICAgICAgIHVwZGF0ZUJpbmFyeUFy
aXRoUHJvZmlsZShzaXplLCBvcGNvZGVTdHJ1Y3QsIEFyaXRoUHJvZmlsZUludE51bWJlciwgdDUs
IHQyKQogICAgICAgICBnZXQobV9kc3QsIHQyKQogICAgICAgICBjaTJkcyB0MCwgZnQwCiAgICAg
ICAgIGFkZHEgbnVtYmVyVGFnLCB0MQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQkocmV2aXNpb24gMjgzMDg0KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNTY2LDE0ICsyNTY2LDIwIEBAIG1hY3JvIG5vdFN1cHBvcnRlZCgpCiBl
bmQKIAogCi1tYWNybyB1cGRhdGVVbmFyeUFyaXRoUHJvZmlsZShvcGNvZGVTdHJ1Y3QsIHR5cGUs
IG1ldGFkYXRhLCB0ZW1wKQotICAgIGxvYWRwICVvcGNvZGVTdHJ1Y3QlOjpNZXRhZGF0YTo6bV9h
cml0aFByb2ZpbGVbbWV0YWRhdGFdLCB0ZW1wCi0gICAgb3JoIHR5cGUsIFVuYXJ5QXJpdGhQcm9m
aWxlOjptX2JpdHNbdGVtcF0KK21hY3JvIHVwZGF0ZVVuYXJ5QXJpdGhQcm9maWxlKHNpemUsIG9w
Y29kZVN0cnVjdCwgdHlwZSwgc2NyYXRjaDEsIHNjcmF0Y2gyKQorICAgIGdldHUoc2l6ZSwgb3Bj
b2RlU3RydWN0LCBtX3Byb2ZpbGVJbmRleCwgc2NyYXRjaDEpCisgICAgbG9hZHAgQ29kZUJsb2Nr
W2Nmcl0sIHNjcmF0Y2gyCisgICAgbG9hZHAgQ29kZUJsb2NrOjptX3VubGlua2VkQ29kZVtzY3Jh
dGNoMl0sIHNjcmF0Y2gyCisgICAgbG9hZHAgVW5saW5rZWRDb2RlQmxvY2s6Om1fdW5hcnlBcml0
aFByb2ZpbGVzICsgRml4ZWRWZWN0b3I6Om1fc3RvcmFnZSArIFJlZkNvdW50ZWRBcnJheTo6bV9k
YXRhW3NjcmF0Y2gyXSwgc2NyYXRjaDIKKyAgICBvcmggdHlwZSwgVW5hcnlBcml0aFByb2ZpbGU6
Om1fYml0c1tzY3JhdGNoMiwgc2NyYXRjaDEsIDJdCiBlbmQKIAotbWFjcm8gdXBkYXRlQmluYXJ5
QXJpdGhQcm9maWxlKG9wY29kZVN0cnVjdCwgdHlwZSwgbWV0YWRhdGEsIHRlbXApCi0gICAgbG9h
ZHAgJW9wY29kZVN0cnVjdCU6Ok1ldGFkYXRhOjptX2FyaXRoUHJvZmlsZVttZXRhZGF0YV0sIHRl
bXAKLSAgICBvcmggdHlwZSwgQmluYXJ5QXJpdGhQcm9maWxlOjptX2JpdHNbdGVtcF0KK21hY3Jv
IHVwZGF0ZUJpbmFyeUFyaXRoUHJvZmlsZShzaXplLCBvcGNvZGVTdHJ1Y3QsIHR5cGUsIHNjcmF0
Y2gxLCBzY3JhdGNoMikKKyAgICBnZXR1KHNpemUsIG9wY29kZVN0cnVjdCwgbV9wcm9maWxlSW5k
ZXgsIHNjcmF0Y2gxKQorICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCBzY3JhdGNoMgorICAgIGxv
YWRwIENvZGVCbG9jazo6bV91bmxpbmtlZENvZGVbc2NyYXRjaDJdLCBzY3JhdGNoMgorICAgIGxv
YWRwIFVubGlua2VkQ29kZUJsb2NrOjptX2JpbmFyeUFyaXRoUHJvZmlsZXMgKyBGaXhlZFZlY3Rv
cjo6bV9zdG9yYWdlICsgUmVmQ291bnRlZEFycmF5OjptX2RhdGFbc2NyYXRjaDJdLCBzY3JhdGNo
MgorICAgIG9yaCB0eXBlLCBCaW5hcnlBcml0aFByb2ZpbGU6Om1fYml0c1tzY3JhdGNoMiwgc2Ny
YXRjaDEsIDJdCiBlbmQKIAogLy8gRklYTUU6IFdlIHNob3VsZCBub3QgbmVlZCB0aGUgWDg2XzY0
X1dJTiBjb25kaXRpb24gaGVyZSwgc2luY2UgV0VCQVNTRU1CTFkgc2hvdWxkIGFscmVhZHkgYmUg
ZmFsc2Ugb24gV2luZG93cwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20v
Y2xvb3AucmIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20v
Y2xvb3AucmIJKHJldmlzaW9uIDI4MzA4NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZs
aW5lYXNtL2Nsb29wLnJiCSh3b3JraW5nIGNvcHkpCkBAIC0yNTksOSArMjU5LDExIEBAIGNsYXNz
IEJhc2VJbmRleAogICAgICAgICBjYXNlIHR5cGUKICAgICAgICAgd2hlbiA6aW50ODsgICAgICAg
aW50OE1lbVJlZgogICAgICAgICB3aGVuIDppbnQzMjsgICAgICBpbnQzMk1lbVJlZgorICAgICAg
ICB3aGVuIDppbnQxNjsgICAgICBpbnQxNk1lbVJlZgogICAgICAgICB3aGVuIDppbnQ2NDsgICAg
ICBpbnQ2NE1lbVJlZgogICAgICAgICB3aGVuIDppbnRwdHI7ICAgICBpbnRwdHJNZW1SZWYKICAg
ICAgICAgd2hlbiA6dWludDg7ICAgICAgdWludDhNZW1SZWYKKyAgICAgICAgd2hlbiA6dWludDE2
OyAgICAgdWludDE2TWVtUmVmCiAgICAgICAgIHdoZW4gOnVpbnQzMjsgICAgIHVpbnQzMk1lbVJl
ZgogICAgICAgICB3aGVuIDp1aW50NjQ7ICAgICB1aW50NjRNZW1SZWYKICAgICAgICAgd2hlbiA6
dWludHB0cjsgICAgdWludHB0ck1lbVJlZgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCShyZXZpc2lvbiAyODMwODQpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC00NzgsOSArNDc4LDggQEAgSlNDX0RFRklORV9DT01NT05fU0xPV19QQVRIKHNs
b3dfcGF0aF90bwogfQogCiAjaWYgRU5BQkxFKEpJVCkKLXN0YXRpYyB2b2lkIHVwZGF0ZUFyaXRo
UHJvZmlsZUZvclVuYXJ5QXJpdGhPcChPcE5lZ2F0ZTo6TWV0YWRhdGEmIG1ldGFkYXRhLCBKU1Zh
bHVlIHJlc3VsdCwgSlNWYWx1ZSBvcGVyYW5kKQorc3RhdGljIHZvaWQgdXBkYXRlQXJpdGhQcm9m
aWxlRm9yVW5hcnlBcml0aE9wKFVuYXJ5QXJpdGhQcm9maWxlJiBwcm9maWxlLCBKU1ZhbHVlIHJl
c3VsdCwgSlNWYWx1ZSBvcGVyYW5kKQogewotICAgIFVuYXJ5QXJpdGhQcm9maWxlJiBwcm9maWxl
ID0gKm1ldGFkYXRhLm1fYXJpdGhQcm9maWxlOwogICAgIHByb2ZpbGUub2JzZXJ2ZUFyZyhvcGVy
YW5kKTsKICAgICBBU1NFUlQocmVzdWx0LmlzTnVtYmVyKCkgfHwgcmVzdWx0LmlzQmlnSW50KCkp
OwogCkBAIC01MTQsMjQgKzUxMywyNSBAQCBzdGF0aWMgdm9pZCB1cGRhdGVBcml0aFByb2ZpbGVG
b3JVbmFyeUFyCiAgICAgfQogfQogI2Vsc2UKLXN0YXRpYyB2b2lkIHVwZGF0ZUFyaXRoUHJvZmls
ZUZvclVuYXJ5QXJpdGhPcChPcE5lZ2F0ZTo6TWV0YWRhdGEmLCBKU1ZhbHVlLCBKU1ZhbHVlKSB7
IH0KK3N0YXRpYyB2b2lkIHVwZGF0ZUFyaXRoUHJvZmlsZUZvclVuYXJ5QXJpdGhPcChVbmFyeUFy
aXRoUHJvZmlsZSYsIEpTVmFsdWUsIEpTVmFsdWUpIHsgfQogI2VuZGlmCiAKIEpTQ19ERUZJTkVf
Q09NTU9OX1NMT1dfUEFUSChzbG93X3BhdGhfbmVnYXRlKQogewogICAgIEJFR0lOKCk7CiAgICAg
YXV0byBieXRlY29kZSA9IHBjLT5hczxPcE5lZ2F0ZT4oKTsKLSAgICBhdXRvJiBtZXRhZGF0YSA9
IGJ5dGVjb2RlLm1ldGFkYXRhKGNvZGVCbG9jayk7CiAgICAgSlNWYWx1ZSBvcGVyYW5kID0gR0VU
X0MoYnl0ZWNvZGUubV9vcGVyYW5kKS5qc1ZhbHVlKCk7CiAgICAgSlNWYWx1ZSBwcmltVmFsdWUg
PSBvcGVyYW5kLnRvUHJpbWl0aXZlKGdsb2JhbE9iamVjdCwgUHJlZmVyTnVtYmVyKTsKICAgICBD
SEVDS19FWENFUFRJT04oKTsKIAorICAgIGF1dG8mIHByb2ZpbGUgPSBjb2RlQmxvY2stPnVubGlu
a2VkQ29kZUJsb2NrKCktPnVuYXJ5QXJpdGhQcm9maWxlKGJ5dGVjb2RlLm1fcHJvZmlsZUluZGV4
KTsKKwogI2lmIFVTRShCSUdJTlQzMikKICAgICBpZiAocHJpbVZhbHVlLmlzQmlnSW50MzIoKSkg
ewogICAgICAgICBKU1ZhbHVlIHJlc3VsdCA9IEpTQmlnSW50Ojp1bmFyeU1pbnVzKGdsb2JhbE9i
amVjdCwgcHJpbVZhbHVlLmJpZ0ludDMyQXNJbnQzMigpKTsKICAgICAgICAgQ0hFQ0tfRVhDRVBU
SU9OKCk7CiAgICAgICAgIFJFVFVSTl9XSVRIX1BST0ZJTElORyhyZXN1bHQsIHsKLSAgICAgICAg
ICAgIHVwZGF0ZUFyaXRoUHJvZmlsZUZvclVuYXJ5QXJpdGhPcChtZXRhZGF0YSwgcmVzdWx0LCBv
cGVyYW5kKTsKKyAgICAgICAgICAgIHVwZGF0ZUFyaXRoUHJvZmlsZUZvclVuYXJ5QXJpdGhPcChw
cm9maWxlLCByZXN1bHQsIG9wZXJhbmQpOwogICAgICAgICB9KTsKICAgICB9CiAjZW5kaWYKQEAg
LTU0MCwxNCArNTQwLDE0IEBAIEpTQ19ERUZJTkVfQ09NTU9OX1NMT1dfUEFUSChzbG93X3BhdGhf
bmUKICAgICAgICAgSlNWYWx1ZSByZXN1bHQgPSBKU0JpZ0ludDo6dW5hcnlNaW51cyhnbG9iYWxP
YmplY3QsIHByaW1WYWx1ZS5hc0hlYXBCaWdJbnQoKSk7CiAgICAgICAgIENIRUNLX0VYQ0VQVElP
TigpOwogICAgICAgICBSRVRVUk5fV0lUSF9QUk9GSUxJTkcocmVzdWx0LCB7Ci0gICAgICAgICAg
ICB1cGRhdGVBcml0aFByb2ZpbGVGb3JVbmFyeUFyaXRoT3AobWV0YWRhdGEsIHJlc3VsdCwgb3Bl
cmFuZCk7CisgICAgICAgICAgICB1cGRhdGVBcml0aFByb2ZpbGVGb3JVbmFyeUFyaXRoT3AocHJv
ZmlsZSwgcmVzdWx0LCBvcGVyYW5kKTsKICAgICAgICAgfSk7CiAgICAgfQogICAgIAogICAgIEpT
VmFsdWUgcmVzdWx0ID0ganNOdW1iZXIoLXByaW1WYWx1ZS50b051bWJlcihnbG9iYWxPYmplY3Qp
KTsKICAgICBDSEVDS19FWENFUFRJT04oKTsKICAgICBSRVRVUk5fV0lUSF9QUk9GSUxJTkcocmVz
dWx0LCB7Ci0gICAgICAgIHVwZGF0ZUFyaXRoUHJvZmlsZUZvclVuYXJ5QXJpdGhPcChtZXRhZGF0
YSwgcmVzdWx0LCBvcGVyYW5kKTsKKyAgICAgICAgdXBkYXRlQXJpdGhQcm9maWxlRm9yVW5hcnlB
cml0aE9wKHByb2ZpbGUsIHJlc3VsdCwgb3BlcmFuZCk7CiAgICAgfSk7CiB9CiAK
</data>
<flag name="commit-queue"
          id="463113"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439477</attachid>
            <date>2021-09-28 08:31:17 -0700</date>
            <delta_ts>2021-09-28 08:33:03 -0700</delta_ts>
            <desc>[fast-cq] patch for landing</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>27407</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjgzMDg1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ1IEBA
CisyMDIxLTA5LTI1ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IE1ha2UgYnl0ZSBjb2RlcyB3aXRoIGFyaXRobWV0aWMgcHJvZmlsZXMgc3dpdGNoIHRvIHVzaW5n
IGFuIGluZGV4IGluc3RlYWQgb2YgYSBwb2ludGVyIGluIG1ldGFkYXRhCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzA3OTgKKworICAgICAgICBSZXZp
ZXdlZCBieSBZdXN1a2UgU3V6dWtpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggbWFrZXMgZWFjaCBi
eXRlY29kZSB0aGF0IHVzZXMgYSBCaW5hcnlBcml0aFByb2ZpbGUvVW5hcnlBcml0aFByb2ZpbGUK
KyAgICAgICAgaGF2ZSBhbiBpbmRleCBpbnRvIGEgdGFibGUgaW5zdGVhZCBvZiBzdG9yaW5nIGEg
cG9pbnRlciB0byB0aGUgcHJvZmlsZSBpbiBpdHMgbWV0YWRhdGEuCisgICAgICAgIFRoZW4sIHdl
IGNhbiBqdXN0IGxvYWQgdGhlIHByb2ZpbGUgdXNpbmcgdGhlIGluZGV4IGluIHRoZSBieXRlY29k
ZSwgd2hpY2ggc2F2ZXMgbWVtb3J5LgorCisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0
LnJiOgorICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5jcHA6CisgICAgICAgIChKU0M6OkNv
ZGVCbG9jazo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OmJpbmFy
eUFyaXRoUHJvZmlsZUZvclBDKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjp1bmFyeUFyaXRo
UHJvZmlsZUZvclBDKToKKyAgICAgICAgKiBieXRlY29kZS9VbmxpbmtlZENvZGVCbG9jay5jcHA6
CisgICAgICAgIChKU0M6OlVubGlua2VkQ29kZUJsb2NrOjphbGxvY2F0ZVNoYXJlZFByb2ZpbGVz
KToKKyAgICAgICAgKiBieXRlY29kZS9VbmxpbmtlZENvZGVCbG9jay5oOgorICAgICAgICAqIGJ5
dGVjb2RlL1VubGlua2VkQ29kZUJsb2NrR2VuZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6VW5s
aW5rZWRDb2RlQmxvY2tHZW5lcmF0b3I6OmZpbmFsaXplKToKKyAgICAgICAgKiBieXRlY29kZS9V
bmxpbmtlZENvZGVCbG9ja0dlbmVyYXRvci5oOgorICAgICAgICAoSlNDOjpVbmxpbmtlZENvZGVC
bG9ja0dlbmVyYXRvcjo6YWRkQmluYXJ5QXJpdGhQcm9maWxlKToKKyAgICAgICAgKEpTQzo6VW5s
aW5rZWRDb2RlQmxvY2tHZW5lcmF0b3I6OmFkZFVuYXJ5QXJpdGhQcm9maWxlKToKKyAgICAgICAg
KiBieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpCeXRl
Y29kZUdlbmVyYXRvcjo6ZW1pdFVuYXJ5T3ApOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVy
YXRvcjo6ZW1pdEluYyk6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0RGVj
KToKKyAgICAgICAgKiBieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaDoKKyAgICAgICAg
KiBqaXQvSklUQXJpdGhtZXRpYy5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9uZWdh
dGUpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfYWRkKToKKyAgICAgICAgKEpTQzo6SklU
OjplbWl0X29wX2Rpdik6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9tdWwpOgorICAgICAg
ICAoSlNDOjpKSVQ6OmVtaXRfb3Bfc3ViKToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVy
cHJldGVyLmFzbToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNt
OgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc206CisgICAgICAgICog
cnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwOgorICAgICAgICAoSlNDOjp1cGRhdGVBcml0aFBy
b2ZpbGVGb3JVbmFyeUFyaXRoT3ApOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0NPTU1PTl9T
TE9XX1BBVEgpOgorCiAyMDIxLTA5LTI1ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29t
PgogCiAgICAgICAgIEJ1aWxkIGFuIHVubGlua2VkIGJhc2VsaW5lIEpJVApJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5yYgo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0LnJiCShyZXZpc2lvbiAy
ODMwODQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0LnJi
CSh3b3JraW5nIGNvcHkpCkBAIC02NCw4ICs2NCw2IEBAIHR5cGVzIFsKIAogICAgIDpWYWx1ZVBy
b2ZpbGUsCiAgICAgOlZhbHVlUHJvZmlsZUFuZFZpcnR1YWxSZWdpc3RlckJ1ZmZlciwKLSAgICA6
VW5hcnlBcml0aFByb2ZpbGUsCi0gICAgOkJpbmFyeUFyaXRoUHJvZmlsZSwKICAgICA6QXJyYXlQ
cm9maWxlLAogICAgIDpBcnJheUFsbG9jYXRpb25Qcm9maWxlLAogICAgIDpPYmplY3RBbGxvY2F0
aW9uUHJvZmlsZSwKQEAgLTI4OSwxMCArMjg3LDggQEAgb3BfZ3JvdXAgOlByb2ZpbGVkQmluYXJ5
T3AsCiAgICAgICAgIGRzdDogVmlydHVhbFJlZ2lzdGVyLAogICAgICAgICBsaHM6IFZpcnR1YWxS
ZWdpc3RlciwKICAgICAgICAgcmhzOiBWaXJ0dWFsUmVnaXN0ZXIsCisgICAgICAgIHByb2ZpbGVJ
bmRleDogdW5zaWduZWQsCiAgICAgICAgIG9wZXJhbmRUeXBlczogT3BlcmFuZFR5cGVzLAotICAg
IH0sCi0gICAgbWV0YWRhdGE6IHsKLSAgICAgICAgYXJpdGhQcm9maWxlOiBCaW5hcnlBcml0aFBy
b2ZpbGUuKgogICAgIH0KIAogb3BfZ3JvdXAgOlZhbHVlUHJvZmlsZWRCaW5hcnlPcCwKQEAgLTM1
MSw5ICszNDcsNyBAQCBvcF9ncm91cCA6VW5hcnlJblBsYWNlUHJvZmlsZWRPcCwKICAgICBdLAog
ICAgIGFyZ3M6IHsKICAgICAgICAgc3JjRHN0OiBWaXJ0dWFsUmVnaXN0ZXIsCi0gICAgfSwKLSAg
ICBtZXRhZGF0YTogewotICAgICAgICBhcml0aFByb2ZpbGU6IFVuYXJ5QXJpdGhQcm9maWxlLioK
KyAgICAgICAgcHJvZmlsZUluZGV4OiB1bnNpZ25lZCwKICAgICB9CiAKIG9wIDp0b19vYmplY3Qs
CkBAIC0zODMsMTAgKzM3Nyw4IEBAIG9wIDpuZWdhdGUsCiAgICAgYXJnczogewogICAgICAgICBk
c3Q6IFZpcnR1YWxSZWdpc3RlciwKICAgICAgICAgb3BlcmFuZDogVmlydHVhbFJlZ2lzdGVyLAor
ICAgICAgICBwcm9maWxlSW5kZXg6IHVuc2lnbmVkLAogICAgICAgICByZXN1bHRUeXBlOiBSZXN1
bHRUeXBlLAotICAgIH0sCi0gICAgbWV0YWRhdGE6IHsKLSAgICAgICAgYXJpdGhQcm9maWxlOiBV
bmFyeUFyaXRoUHJvZmlsZS4qCiAgICAgfQogCiBvcCA6bm90LApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAJKHJldmlzaW9uIDI4MzA4NCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC00NzEsMjEgKzQ3MSw2IEBAIGJvb2wgQ29kZUJsb2NrOjpmaW5pc2hDcmVhdGlvbihW
TSYgdm0sIFMKICAgICAgICAgYnJlYWs7IFwKICAgICB9CiAKLSAgICB1bnNpZ25lZCBiaW5hcnlQ
cm9maWxlSW5kZXggPSAwOwotICAgIHVuc2lnbmVkIHVuYXJ5UHJvZmlsZUluZGV4ID0gMDsKLSNk
ZWZpbmUgTElOS19XSVRIX0JJTkFSWV9BUklUSF9QUk9GSUxFKF9fb3ApIFwKLSAgICBDQVNFKF9f
b3ApOiB7IFwKLSAgICAgICAgSU5JVElBTElaRV9NRVRBREFUQShfX29wKSBcCi0gICAgICAgIG1l
dGFkYXRhLm1fYXJpdGhQcm9maWxlID0gJm1fdW5saW5rZWRDb2RlLT5iaW5hcnlBcml0aFByb2Zp
bGUoYmluYXJ5UHJvZmlsZUluZGV4KyspOyBcCi0gICAgICAgIGJyZWFrOyBcCi0gICAgfQotI2Rl
ZmluZSBMSU5LX1dJVEhfVU5BUllfQVJJVEhfUFJPRklMRShfX29wKSBcCi0gICAgQ0FTRShfX29w
KTogeyBcCi0gICAgICAgIElOSVRJQUxJWkVfTUVUQURBVEEoX19vcCkgXAotICAgICAgICBtZXRh
ZGF0YS5tX2FyaXRoUHJvZmlsZSA9ICZtX3VubGlua2VkQ29kZS0+dW5hcnlBcml0aFByb2ZpbGUo
dW5hcnlQcm9maWxlSW5kZXgrKyk7IFwKLSAgICAgICAgYnJlYWs7IFwKLSAgICB9Ci0KICAgICBj
b25zdCBJbnN0cnVjdGlvblN0cmVhbSYgaW5zdHJ1Y3Rpb25TdHJlYW0gPSBpbnN0cnVjdGlvbnMo
KTsKICAgICBmb3IgKGNvbnN0IGF1dG8mIGluc3RydWN0aW9uIDogaW5zdHJ1Y3Rpb25TdHJlYW0p
IHsKICAgICAgICAgT3Bjb2RlSUQgb3Bjb2RlSUQgPSBpbnN0cnVjdGlvbi0+b3Bjb2RlSUQoKTsK
QEAgLTU0OCwxNSArNTMzLDYgQEAgYm9vbCBDb2RlQmxvY2s6OmZpbmlzaENyZWF0aW9uKFZNJiB2
bSwgUwogICAgICAgICBMSU5LKE9wQ3JlYXRlUHJvbWlzZSkKICAgICAgICAgTElOSyhPcENyZWF0
ZUdlbmVyYXRvcikKIAotICAgICAgICBMSU5LX1dJVEhfQklOQVJZX0FSSVRIX1BST0ZJTEUoT3BB
ZGQpCi0gICAgICAgIExJTktfV0lUSF9CSU5BUllfQVJJVEhfUFJPRklMRShPcE11bCkKLSAgICAg
ICAgTElOS19XSVRIX0JJTkFSWV9BUklUSF9QUk9GSUxFKE9wRGl2KQotICAgICAgICBMSU5LX1dJ
VEhfQklOQVJZX0FSSVRIX1BST0ZJTEUoT3BTdWIpCi0KLSAgICAgICAgTElOS19XSVRIX1VOQVJZ
X0FSSVRIX1BST0ZJTEUoT3BOZWdhdGUpCi0gICAgICAgIExJTktfV0lUSF9VTkFSWV9BUklUSF9Q
Uk9GSUxFKE9wSW5jKQotICAgICAgICBMSU5LX1dJVEhfVU5BUllfQVJJVEhfUFJPRklMRShPcERl
YykKLQogICAgICAgICBMSU5LKE9wSm5lcVB0cikKIAogICAgICAgICBMSU5LKE9wQ2F0Y2gpCkBA
IC0zNDEzLDEzICszMzg5LDEzIEBAIEJpbmFyeUFyaXRoUHJvZmlsZSogQ29kZUJsb2NrOjpiaW5h
cnlBcmkKIHsKICAgICBzd2l0Y2ggKHBjLT5vcGNvZGVJRCgpKSB7CiAgICAgY2FzZSBvcF9hZGQ6
Ci0gICAgICAgIHJldHVybiBwYy0+YXM8T3BBZGQ+KCkubWV0YWRhdGEodGhpcykubV9hcml0aFBy
b2ZpbGU7CisgICAgICAgIHJldHVybiAmdW5saW5rZWRDb2RlQmxvY2soKS0+YmluYXJ5QXJpdGhQ
cm9maWxlKHBjLT5hczxPcEFkZD4oKS5tX3Byb2ZpbGVJbmRleCk7CiAgICAgY2FzZSBvcF9tdWw6
Ci0gICAgICAgIHJldHVybiBwYy0+YXM8T3BNdWw+KCkubWV0YWRhdGEodGhpcykubV9hcml0aFBy
b2ZpbGU7CisgICAgICAgIHJldHVybiAmdW5saW5rZWRDb2RlQmxvY2soKS0+YmluYXJ5QXJpdGhQ
cm9maWxlKHBjLT5hczxPcE11bD4oKS5tX3Byb2ZpbGVJbmRleCk7CiAgICAgY2FzZSBvcF9zdWI6
Ci0gICAgICAgIHJldHVybiBwYy0+YXM8T3BTdWI+KCkubWV0YWRhdGEodGhpcykubV9hcml0aFBy
b2ZpbGU7CisgICAgICAgIHJldHVybiAmdW5saW5rZWRDb2RlQmxvY2soKS0+YmluYXJ5QXJpdGhQ
cm9maWxlKHBjLT5hczxPcFN1Yj4oKS5tX3Byb2ZpbGVJbmRleCk7CiAgICAgY2FzZSBvcF9kaXY6
Ci0gICAgICAgIHJldHVybiBwYy0+YXM8T3BEaXY+KCkubWV0YWRhdGEodGhpcykubV9hcml0aFBy
b2ZpbGU7CisgICAgICAgIHJldHVybiAmdW5saW5rZWRDb2RlQmxvY2soKS0+YmluYXJ5QXJpdGhQ
cm9maWxlKHBjLT5hczxPcERpdj4oKS5tX3Byb2ZpbGVJbmRleCk7CiAgICAgZGVmYXVsdDoKICAg
ICAgICAgYnJlYWs7CiAgICAgfQpAQCAtMzQzMSwxMSArMzQwNywxMSBAQCBVbmFyeUFyaXRoUHJv
ZmlsZSogQ29kZUJsb2NrOjp1bmFyeUFyaXRoCiB7CiAgICAgc3dpdGNoIChwYy0+b3Bjb2RlSUQo
KSkgewogICAgIGNhc2Ugb3BfbmVnYXRlOgotICAgICAgICByZXR1cm4gcGMtPmFzPE9wTmVnYXRl
PigpLm1ldGFkYXRhKHRoaXMpLm1fYXJpdGhQcm9maWxlOworICAgICAgICByZXR1cm4gJnVubGlu
a2VkQ29kZUJsb2NrKCktPnVuYXJ5QXJpdGhQcm9maWxlKHBjLT5hczxPcE5lZ2F0ZT4oKS5tX3By
b2ZpbGVJbmRleCk7CiAgICAgY2FzZSBvcF9pbmM6Ci0gICAgICAgIHJldHVybiBwYy0+YXM8T3BJ
bmM+KCkubWV0YWRhdGEodGhpcykubV9hcml0aFByb2ZpbGU7CisgICAgICAgIHJldHVybiAmdW5s
aW5rZWRDb2RlQmxvY2soKS0+dW5hcnlBcml0aFByb2ZpbGUocGMtPmFzPE9wSW5jPigpLm1fcHJv
ZmlsZUluZGV4KTsKICAgICBjYXNlIG9wX2RlYzoKLSAgICAgICAgcmV0dXJuIHBjLT5hczxPcERl
Yz4oKS5tZXRhZGF0YSh0aGlzKS5tX2FyaXRoUHJvZmlsZTsKKyAgICAgICAgcmV0dXJuICZ1bmxp
bmtlZENvZGVCbG9jaygpLT51bmFyeUFyaXRoUHJvZmlsZShwYy0+YXM8T3BEZWM+KCkubV9wcm9m
aWxlSW5kZXgpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJyZWFrOwogICAgIH0KSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZENvZGVCbG9jay5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkQ29kZUJsb2Nr
LmNwcAkocmV2aXNpb24gMjgzMDg0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L1VubGlua2VkQ29kZUJsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYxLDcgKzM2MSw3IEBA
IGludDMyX3QgVW5saW5rZWRDb2RlQmxvY2s6OnRocmVzaG9sZEZvckoKIH0KIAogCi12b2lkIFVu
bGlua2VkQ29kZUJsb2NrOjphbGxvY2F0ZVNoYXJlZFByb2ZpbGVzKCkKK3ZvaWQgVW5saW5rZWRD
b2RlQmxvY2s6OmFsbG9jYXRlU2hhcmVkUHJvZmlsZXModW5zaWduZWQgbnVtQmluYXJ5QXJpdGhQ
cm9maWxlcywgdW5zaWduZWQgbnVtVW5hcnlBcml0aFByb2ZpbGVzKQogewogICAgIFJFTEVBU0Vf
QVNTRVJUKCFtX21ldGFkYXRhLT5pc0ZpbmFsaXplZCgpKTsKIApAQCAtMzg5LDE5ICszODksMTAg
QEAgdm9pZCBVbmxpbmtlZENvZGVCbG9jazo6YWxsb2NhdGVTaGFyZWRQcgogICAgICAgICBudW1i
ZXJPZkFycmF5UHJvZmlsZXMgKz0gbV9tZXRhZGF0YS0+bnVtRW50cmllczxPcEl0ZXJhdG9yTmV4
dD4oKTsKICAgICAgICAgbnVtYmVyT2ZBcnJheVByb2ZpbGVzICs9IG1fbWV0YWRhdGEtPm51bUVu
dHJpZXM8T3BHZXRCeUlkPigpOwogICAgICAgICBtX2FycmF5UHJvZmlsZXMgPSBGaXhlZFZlY3Rv
cjxVbmxpbmtlZEFycmF5UHJvZmlsZT4obnVtYmVyT2ZBcnJheVByb2ZpbGVzKTsKLQotICAgICAg
ICB1bnNpZ25lZCBudW1iZXJPZkJpbmFyeUFyaXRoUHJvZmlsZXMgPSAwOwotI2RlZmluZSBDT1VO
VChfX29wKSBudW1iZXJPZkJpbmFyeUFyaXRoUHJvZmlsZXMgKz0gbV9tZXRhZGF0YS0+bnVtRW50
cmllczxfX29wPigpOwotICAgICAgICBGT1JfRUFDSF9PUENPREVfV0lUSF9CSU5BUllfQVJJVEhf
UFJPRklMRShDT1VOVCkKLSN1bmRlZiBDT1VOVAotICAgICAgICBtX2JpbmFyeUFyaXRoUHJvZmls
ZXMgPSBGaXhlZFZlY3RvcjxCaW5hcnlBcml0aFByb2ZpbGU+KG51bWJlck9mQmluYXJ5QXJpdGhQ
cm9maWxlcyk7Ci0KLSAgICAgICAgdW5zaWduZWQgbnVtYmVyT2ZVbmFyeUFyaXRoUHJvZmlsZXMg
PSAwOwotI2RlZmluZSBDT1VOVChfX29wKSBudW1iZXJPZlVuYXJ5QXJpdGhQcm9maWxlcyArPSBt
X21ldGFkYXRhLT5udW1FbnRyaWVzPF9fb3A+KCk7Ci0gICAgICAgIEZPUl9FQUNIX09QQ09ERV9X
SVRIX1VOQVJZX0FSSVRIX1BST0ZJTEUoQ09VTlQpCi0jdW5kZWYgQ09VTlQKLSAgICAgICAgbV91
bmFyeUFyaXRoUHJvZmlsZXMgPSBGaXhlZFZlY3RvcjxVbmFyeUFyaXRoUHJvZmlsZT4obnVtYmVy
T2ZVbmFyeUFyaXRoUHJvZmlsZXMpOwogICAgIH0KKworICAgIG1fYmluYXJ5QXJpdGhQcm9maWxl
cyA9IEZpeGVkVmVjdG9yPEJpbmFyeUFyaXRoUHJvZmlsZT4obnVtQmluYXJ5QXJpdGhQcm9maWxl
cyk7CisgICAgbV91bmFyeUFyaXRoUHJvZmlsZXMgPSBGaXhlZFZlY3RvcjxVbmFyeUFyaXRoUHJv
ZmlsZT4obnVtVW5hcnlBcml0aFByb2ZpbGVzKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgSlNDCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2suaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRDb2Rl
QmxvY2suaAkocmV2aXNpb24gMjgzMDg0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL1VubGlua2VkQ29kZUJsb2NrLmgJKHdvcmtpbmcgY29weSkKQEAgLTM1Miw3ICszNTIsNyBA
QCBwdWJsaWM6CiAgICAgICAgIC8vIFNvbWUgYnVpbHRpbnMgYXJlIHJlcXVpcmVkIHRvIGFsd2F5
cyBjb21wbGV0ZSB0aGUgbG9vcHMgdGhleSBydW4uCiAgICAgICAgIHJldHVybiAhaXNCdWlsdGlu
RnVuY3Rpb24oKTsKICAgICB9Ci0gICAgdm9pZCBhbGxvY2F0ZVNoYXJlZFByb2ZpbGVzKCk7Cisg
ICAgdm9pZCBhbGxvY2F0ZVNoYXJlZFByb2ZpbGVzKHVuc2lnbmVkIG51bUJpbmFyeUFyaXRoUHJv
ZmlsZXMsIHVuc2lnbmVkIG51bVVuYXJ5QXJpdGhQcm9maWxlcyk7CiAgICAgVW5saW5rZWRWYWx1
ZVByb2ZpbGUmIHVubGlua2VkVmFsdWVQcm9maWxlKHVuc2lnbmVkIGluZGV4KSB7IHJldHVybiBt
X3ZhbHVlUHJvZmlsZXNbaW5kZXhdOyB9CiAgICAgVW5saW5rZWRBcnJheVByb2ZpbGUmIHVubGlu
a2VkQXJyYXlQcm9maWxlKHVuc2lnbmVkIGluZGV4KSB7IHJldHVybiBtX2FycmF5UHJvZmlsZXNb
aW5kZXhdOyB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Vbmxpbmtl
ZENvZGVCbG9ja0dlbmVyYXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL1VubGlua2VkQ29kZUJsb2NrR2VuZXJhdG9yLmNwcAkocmV2aXNpb24gMjgz
MDg0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkQ29kZUJsb2Nr
R2VuZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE5LDcgKzExOSw3IEBAIHZvaWQgVW5s
aW5rZWRDb2RlQmxvY2tHZW5lcmF0b3I6OmZpbmFsaXoKICAgICB7CiAgICAgICAgIExvY2tlciBs
b2NrZXIgeyBtX2NvZGVCbG9jay0+Y2VsbExvY2soKSB9OwogICAgICAgICBtX2NvZGVCbG9jay0+
bV9pbnN0cnVjdGlvbnMgPSBXVEZNb3ZlKGluc3RydWN0aW9ucyk7Ci0gICAgICAgIG1fY29kZUJs
b2NrLT5hbGxvY2F0ZVNoYXJlZFByb2ZpbGVzKCk7CisgICAgICAgIG1fY29kZUJsb2NrLT5hbGxv
Y2F0ZVNoYXJlZFByb2ZpbGVzKG1fbnVtQmluYXJ5QXJpdGhQcm9maWxlcywgbV9udW1VbmFyeUFy
aXRoUHJvZmlsZXMpOwogICAgICAgICBtX2NvZGVCbG9jay0+bV9tZXRhZGF0YS0+ZmluYWxpemUo
KTsKIAogICAgICAgICBtX2NvZGVCbG9jay0+bV9qdW1wVGFyZ2V0cyA9IFdURk1vdmUobV9qdW1w
VGFyZ2V0cyk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRD
b2RlQmxvY2tHZW5lcmF0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvVW5saW5rZWRDb2RlQmxvY2tHZW5lcmF0b3IuaAkocmV2aXNpb24gMjgzMDg0KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkQ29kZUJsb2NrR2VuZXJh
dG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTIwMCw2ICsyMDAsOSBAQCBwdWJsaWM6CiAKICAgICB2
b2lkIGR1bXAoUHJpbnRTdHJlYW0mKSBjb25zdDsKIAorICAgIHVuc2lnbmVkIGFkZEJpbmFyeUFy
aXRoUHJvZmlsZSgpIHsgcmV0dXJuIG1fbnVtQmluYXJ5QXJpdGhQcm9maWxlcysrOyB9CisgICAg
dW5zaWduZWQgYWRkVW5hcnlBcml0aFByb2ZpbGUoKSB7IHJldHVybiBtX251bVVuYXJ5QXJpdGhQ
cm9maWxlcysrOyB9CisKIHByaXZhdGU6CiAgICAgVk0mIG1fdm07CiAgICAgU3Ryb25nPFVubGlu
a2VkQ29kZUJsb2NrPiBtX2NvZGVCbG9jazsKQEAgLTIyMSw2ICsyMjQsOCBAQCBwcml2YXRlOgog
ICAgIFZlY3RvcjxJbnN0cnVjdGlvblN0cmVhbTo6T2Zmc2V0PiBtX29wUHJvZmlsZUNvbnRyb2xG
bG93Qnl0ZWNvZGVPZmZzZXRzOwogICAgIFZlY3RvcjxCaXRWZWN0b3I+IG1fYml0VmVjdG9yczsK
ICAgICBWZWN0b3I8SWRlbnRpZmllclNldD4gbV9jb25zdGFudElkZW50aWZpZXJTZXRzOworICAg
IHVuc2lnbmVkIG1fbnVtQmluYXJ5QXJpdGhQcm9maWxlcyB7IDAgfTsKKyAgICB1bnNpZ25lZCBt
X251bVVuYXJ5QXJpdGhQcm9maWxlcyB7IDAgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRv
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9C
eXRlY29kZUdlbmVyYXRvci5jcHAJKHJldmlzaW9uIDI4MzA4NCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xNTk4LDcgKzE1OTgsNyBAQCBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1p
dFVuYXJ5CiAgICAgICAgIGVtaXRVbmFyeU9wPE9wTm90Pihkc3QsIHNyYyk7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2Ugb3BfbmVnYXRlOgotICAgICAgICBPcE5lZ2F0ZTo6ZW1pdCh0aGlzLCBk
c3QsIHNyYywgdHlwZSk7CisgICAgICAgIE9wTmVnYXRlOjplbWl0KHRoaXMsIGRzdCwgc3JjLCBt
X2NvZGVCbG9jay0+YWRkVW5hcnlBcml0aFByb2ZpbGUoKSwgdHlwZSk7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2Ugb3BfYml0bm90OgogICAgICAgICBlbWl0VW5hcnlPcDxPcEJpdG5vdD4oZHN0
LCBzcmMpOwpAQCAtMTY5NiwxMyArMTY5NiwxMyBAQCBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVy
YXRvcjo6ZW1pdFR5cGVPCiAKIFJlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0SW5j
KFJlZ2lzdGVySUQqIHNyY0RzdCkKIHsKLSAgICBPcEluYzo6ZW1pdCh0aGlzLCBzcmNEc3QpOwor
ICAgIE9wSW5jOjplbWl0KHRoaXMsIHNyY0RzdCwgbV9jb2RlQmxvY2stPmFkZFVuYXJ5QXJpdGhQ
cm9maWxlKCkpOwogICAgIHJldHVybiBzcmNEc3Q7CiB9CiAKIFJlZ2lzdGVySUQqIEJ5dGVjb2Rl
R2VuZXJhdG9yOjplbWl0RGVjKFJlZ2lzdGVySUQqIHNyY0RzdCkKIHsKLSAgICBPcERlYzo6ZW1p
dCh0aGlzLCBzcmNEc3QpOworICAgIE9wRGVjOjplbWl0KHRoaXMsIHNyY0RzdCwgbV9jb2RlQmxv
Y2stPmFkZFVuYXJ5QXJpdGhQcm9maWxlKCkpOwogICAgIHJldHVybiBzcmNEc3Q7CiB9CiAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3Iu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVj
b2RlR2VuZXJhdG9yLmgJKHJldmlzaW9uIDI4MzA4NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtNjgy
LDcgKzY4Miw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgUmVnaXN0ZXJJRCo+CiAg
ICAgICAgIGVtaXRCaW5hcnlPcChSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIHNyYzEsIFJl
Z2lzdGVySUQqIHNyYzIsIE9wZXJhbmRUeXBlcyB0eXBlcykKICAgICAgICAgewotICAgICAgICAg
ICAgQmluYXJ5T3A6OmVtaXQodGhpcywgZHN0LCBzcmMxLCBzcmMyLCB0eXBlcyk7CisgICAgICAg
ICAgICBCaW5hcnlPcDo6ZW1pdCh0aGlzLCBkc3QsIHNyYzEsIHNyYzIsIG1fY29kZUJsb2NrLT5h
ZGRCaW5hcnlBcml0aFByb2ZpbGUoKSwgdHlwZXMpOwogICAgICAgICAgICAgcmV0dXJuIGRzdDsK
ICAgICAgICAgfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0
aWMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQXJpdGht
ZXRpYy5jcHAJKHJldmlzaW9uIDI4MzA4NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUQXJpdGhtZXRpYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcyMiw3ICs3MjIsNyBAQCB2b2lk
IEpJVDo6ZW1pdEJpbmFyeURvdWJsZU9wKGNvbnN0IEluc3RyCiAKIHZvaWQgSklUOjplbWl0X29w
X25lZ2F0ZShjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogewotICAgIFVu
YXJ5QXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb24tPmFzPE9w
TmVnYXRlPigpLm1ldGFkYXRhKG1fcHJvZmlsZWRDb2RlQmxvY2spLm1fYXJpdGhQcm9maWxlOwor
ICAgIFVuYXJ5QXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUgPSAmbV91bmxpbmtlZENvZGVCbG9j
ay0+dW5hcnlBcml0aFByb2ZpbGUoY3VycmVudEluc3RydWN0aW9uLT5hczxPcE5lZ2F0ZT4oKS5t
X3Byb2ZpbGVJbmRleCk7CiAgICAgSklUTmVnSUMqIG5lZ2F0ZUlDID0gbV9tYXRoSUNzLmFkZEpJ
VE5lZ0lDKGFyaXRoUHJvZmlsZSk7CiAgICAgbV9pbnN0cnVjdGlvblRvTWF0aElDLmFkZChjdXJy
ZW50SW5zdHJ1Y3Rpb24sIG5lZ2F0ZUlDKTsKICAgICAvLyBGSVhNRTogaXQgd291bGQgYmUgYmV0
dGVyIHRvIGNhbGwgdGhvc2Ugb3BlcmF0aW9uVmFsdWVOZWdhdGUsIHNpbmNlIHRoZSBvcGVyYW5k
IGNhbiBiZSBhIEJpZ0ludApAQCAtOTA0LDcgKzkwNCw3IEBAIHZvaWQgSklUOjplbWl0X29wX3Vy
c2hpZnQoY29uc3QgSW5zdHJ1Y3QKIAogdm9pZCBKSVQ6OmVtaXRfb3BfYWRkKGNvbnN0IEluc3Ry
dWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7Ci0gICAgQmluYXJ5QXJpdGhQcm9maWxlKiBh
cml0aFByb2ZpbGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb24tPmFzPE9wQWRkPigpLm1ldGFkYXRhKG1f
cHJvZmlsZWRDb2RlQmxvY2spLm1fYXJpdGhQcm9maWxlOworICAgIEJpbmFyeUFyaXRoUHJvZmls
ZSogYXJpdGhQcm9maWxlID0gJm1fdW5saW5rZWRDb2RlQmxvY2stPmJpbmFyeUFyaXRoUHJvZmls
ZShjdXJyZW50SW5zdHJ1Y3Rpb24tPmFzPE9wQWRkPigpLm1fcHJvZmlsZUluZGV4KTsKICAgICBK
SVRBZGRJQyogYWRkSUMgPSBtX21hdGhJQ3MuYWRkSklUQWRkSUMoYXJpdGhQcm9maWxlKTsKICAg
ICBtX2luc3RydWN0aW9uVG9NYXRoSUMuYWRkKGN1cnJlbnRJbnN0cnVjdGlvbiwgYWRkSUMpOwog
ICAgIGVtaXRNYXRoSUNGYXN0PE9wQWRkPihhZGRJQywgY3VycmVudEluc3RydWN0aW9uLCBvcGVy
YXRpb25WYWx1ZUFkZFByb2ZpbGVkLCBvcGVyYXRpb25WYWx1ZUFkZCk7CkBAIC0xMTc1LDcgKzEx
NzUsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9kaXYoY29uc3QgSW5zdHJ1Y3Rpb24qCiAKICAgICBC
aW5hcnlBcml0aFByb2ZpbGUqIGFyaXRoUHJvZmlsZSA9IG51bGxwdHI7CiAgICAgaWYgKHNob3Vs
ZEVtaXRQcm9maWxpbmcoKSkKLSAgICAgICAgYXJpdGhQcm9maWxlID0gY3VycmVudEluc3RydWN0
aW9uLT5hczxPcERpdj4oKS5tZXRhZGF0YShtX3Byb2ZpbGVkQ29kZUJsb2NrKS5tX2FyaXRoUHJv
ZmlsZTsKKyAgICAgICAgYXJpdGhQcm9maWxlID0gJm1fdW5saW5rZWRDb2RlQmxvY2stPmJpbmFy
eUFyaXRoUHJvZmlsZShjdXJyZW50SW5zdHJ1Y3Rpb24tPmFzPE9wRGl2PigpLm1fcHJvZmlsZUlu
ZGV4KTsKIAogICAgIFNuaXBwZXRPcGVyYW5kIGxlZnRPcGVyYW5kKGJ5dGVjb2RlLm1fb3BlcmFu
ZFR5cGVzLmZpcnN0KCkpOwogICAgIFNuaXBwZXRPcGVyYW5kIHJpZ2h0T3BlcmFuZChieXRlY29k
ZS5tX29wZXJhbmRUeXBlcy5zZWNvbmQoKSk7CkBAIC0xMjIwLDcgKzEyMjAsNyBAQCB2b2lkIEpJ
VDo6ZW1pdF9vcF9kaXYoY29uc3QgSW5zdHJ1Y3Rpb24qCiAKIHZvaWQgSklUOjplbWl0X29wX211
bChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogewotICAgIEJpbmFyeUFy
aXRoUHJvZmlsZSogYXJpdGhQcm9maWxlID0gY3VycmVudEluc3RydWN0aW9uLT5hczxPcE11bD4o
KS5tZXRhZGF0YShtX3Byb2ZpbGVkQ29kZUJsb2NrKS5tX2FyaXRoUHJvZmlsZTsKKyAgICBCaW5h
cnlBcml0aFByb2ZpbGUqIGFyaXRoUHJvZmlsZSA9ICZtX3VubGlua2VkQ29kZUJsb2NrLT5iaW5h
cnlBcml0aFByb2ZpbGUoY3VycmVudEluc3RydWN0aW9uLT5hczxPcE11bD4oKS5tX3Byb2ZpbGVJ
bmRleCk7CiAgICAgSklUTXVsSUMqIG11bElDID0gbV9tYXRoSUNzLmFkZEpJVE11bElDKGFyaXRo
UHJvZmlsZSk7CiAgICAgbV9pbnN0cnVjdGlvblRvTWF0aElDLmFkZChjdXJyZW50SW5zdHJ1Y3Rp
b24sIG11bElDKTsKICAgICBlbWl0TWF0aElDRmFzdDxPcE11bD4obXVsSUMsIGN1cnJlbnRJbnN0
cnVjdGlvbiwgb3BlcmF0aW9uVmFsdWVNdWxQcm9maWxlZCwgb3BlcmF0aW9uVmFsdWVNdWwpOwpA
QCAtMTIzNiw3ICsxMjM2LDcgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX211bChjb25zdCBJbnN0
cnVjdAogCiB2b2lkIEpJVDo6ZW1pdF9vcF9zdWIoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJ
bnN0cnVjdGlvbikKIHsKLSAgICBCaW5hcnlBcml0aFByb2ZpbGUqIGFyaXRoUHJvZmlsZSA9IGN1
cnJlbnRJbnN0cnVjdGlvbi0+YXM8T3BTdWI+KCkubWV0YWRhdGEobV9wcm9maWxlZENvZGVCbG9j
aykubV9hcml0aFByb2ZpbGU7CisgICAgQmluYXJ5QXJpdGhQcm9maWxlKiBhcml0aFByb2ZpbGUg
PSAmbV91bmxpbmtlZENvZGVCbG9jay0+YmluYXJ5QXJpdGhQcm9maWxlKGN1cnJlbnRJbnN0cnVj
dGlvbi0+YXM8T3BTdWI+KCkubV9wcm9maWxlSW5kZXgpOwogICAgIEpJVFN1YklDKiBzdWJJQyA9
IG1fbWF0aElDcy5hZGRKSVRTdWJJQyhhcml0aFByb2ZpbGUpOwogICAgIG1faW5zdHJ1Y3Rpb25U
b01hdGhJQy5hZGQoY3VycmVudEluc3RydWN0aW9uLCBzdWJJQyk7CiAgICAgZW1pdE1hdGhJQ0Zh
c3Q8T3BTdWI+KHN1YklDLCBjdXJyZW50SW5zdHJ1Y3Rpb24sIG9wZXJhdGlvblZhbHVlU3ViUHJv
ZmlsZWQsIG9wZXJhdGlvblZhbHVlU3ViKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9s
bGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCShyZXZpc2lv
biAyODMwODQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnBy
ZXRlcjMyXzY0LmFzbQkod29ya2luZyBjb3B5KQpAQCAtMTAxMiwxNCArMTAxMiwxMyBAQCBzdHJp
Y3RFcXVhbGl0eUp1bXBPcChqbnN0cmljdGVxLCBPcEpuc3RyCiAKIG1hY3JvIHByZU9wKG9wY29k
ZU5hbWUsIG9wY29kZVN0cnVjdCwgaW50ZWdlck9wZXJhdGlvbikKICAgICBsbGludE9wV2l0aE1l
dGFkYXRhKG9wXyVvcGNvZGVOYW1lJSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBk
aXNwYXRjaCwgbWV0YWRhdGEsIHJldHVybikKLSAgICAgICAgbWV0YWRhdGEodDEsIHQyKQogICAg
ICAgICBnZXQobV9zcmNEc3QsIHQwKQogICAgICAgICBiaW5lcSBUYWdPZmZzZXRbY2ZyLCB0MCwg
OF0sIEludDMyVGFnLCAuc2xvdwogICAgICAgICBsb2FkaSBQYXlsb2FkT2Zmc2V0W2NmciwgdDAs
IDhdLCB0MgotICAgICAgICAjIE1ldGFkYXRhIGluIHQxLCBzcmNEc3QgaW4gdDIKKyAgICAgICAg
IyBzcmNEc3QgaW4gdDIKICAgICAgICAgaW50ZWdlck9wZXJhdGlvbih0MiwgLnNsb3cpCiAgICAg
ICAgIHN0b3JlaSB0MiwgUGF5bG9hZE9mZnNldFtjZnIsIHQwLCA4XQotICAgICAgICB1cGRhdGVV
bmFyeUFyaXRoUHJvZmlsZShvcGNvZGVTdHJ1Y3QsIEFyaXRoUHJvZmlsZUludCwgdDEsIHQyKQor
ICAgICAgICB1cGRhdGVVbmFyeUFyaXRoUHJvZmlsZShzaXplLCBvcGNvZGVTdHJ1Y3QsIEFyaXRo
UHJvZmlsZUludCwgdDUsIHQyKQogICAgICAgICBkaXNwYXRjaCgpCiAKICAgICAuc2xvdzoKQEAg
LTEwODQsMTkgKzEwODMsMTcgQEAgZW5kKQogCiAKIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfbmVn
YXRlLCBPcE5lZ2F0ZSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1
cm4pCi0KLSAgICBtZXRhZGF0YSh0NSwgdDApCiAgICAgZ2V0KG1fb3BlcmFuZCwgdDApCiAgICAg
bG9hZENvbnN0YW50T3JWYXJpYWJsZShzaXplLCB0MCwgdDEsIHQyKQogICAgIGJpbmVxIHQxLCBJ
bnQzMlRhZywgLm9wTmVnYXRlU3JjTm90SW50CiAgICAgYnRpeiB0MiwgMHg3ZmZmZmZmZiwgLm9w
TmVnYXRlU2xvdwogICAgIG5lZ2kgdDIKLSAgICB1cGRhdGVVbmFyeUFyaXRoUHJvZmlsZShPcE5l
Z2F0ZSwgQXJpdGhQcm9maWxlSW50LCB0NSwgdDMpCisgICAgdXBkYXRlVW5hcnlBcml0aFByb2Zp
bGUoc2l6ZSwgT3BOZWdhdGUsIEFyaXRoUHJvZmlsZUludCwgdDAsIHQzKQogICAgIHJldHVybiAo
SW50MzJUYWcsIHQyKQogLm9wTmVnYXRlU3JjTm90SW50OgogICAgIGJpYSB0MSwgTG93ZXN0VGFn
LCAub3BOZWdhdGVTbG93CiAgICAgeG9yaSAweDgwMDAwMDAwLCB0MQotICAgIHVwZGF0ZVVuYXJ5
QXJpdGhQcm9maWxlKE9wTmVnYXRlLCBBcml0aFByb2ZpbGVOdW1iZXIsIHQ1LCB0MykKKyAgICB1
cGRhdGVVbmFyeUFyaXRoUHJvZmlsZShzaXplLCBPcE5lZ2F0ZSwgQXJpdGhQcm9maWxlTnVtYmVy
LCB0MCwgdDMpCiAgICAgcmV0dXJuKHQxLCB0MikKIAogLm9wTmVnYXRlU2xvdzoKQEAgLTExMDcs
MTQgKzExMDQsMTMgQEAgZW5kKQogCiBtYWNybyBiaW5hcnlPcEN1c3RvbVN0b3JlKG9wY29kZU5h
bWUsIG9wY29kZVN0cnVjdCwgaW50ZWdlck9wZXJhdGlvbkFuZFN0b3JlLCBkb3VibGVPcGVyYXRp
b24pCiAgICAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF8lb3Bjb2RlTmFtZSUsIG9wY29kZVN0cnVj
dCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCi0gICAgICAg
IG1ldGFkYXRhKHQ1LCB0MikKICAgICAgICAgZ2V0KG1fcmhzLCB0MikKICAgICAgICAgZ2V0KG1f
bGhzLCB0MCkKICAgICAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShzaXplLCB0MiwgdDMsIHQx
KQogICAgICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlMlJlZyhzaXplLCB0MCwgdDIsIHQwKQog
ICAgICAgICBiaW5lcSB0MiwgSW50MzJUYWcsIC5vcDFOb3RJbnQKICAgICAgICAgYmluZXEgdDMs
IEludDMyVGFnLCAub3AyTm90SW50Ci0gICAgICAgIHVwZGF0ZUJpbmFyeUFyaXRoUHJvZmlsZShv
cGNvZGVTdHJ1Y3QsIEFyaXRoUHJvZmlsZUludEludCwgdDUsIHQyKQorICAgICAgICB1cGRhdGVC
aW5hcnlBcml0aFByb2ZpbGUoc2l6ZSwgb3Bjb2RlU3RydWN0LCBBcml0aFByb2ZpbGVJbnRJbnQs
IHQ1LCB0MikKICAgICAgICAgZ2V0KG1fZHN0LCB0MikKICAgICAgICAgaW50ZWdlck9wZXJhdGlv
bkFuZFN0b3JlKHQzLCB0MSwgdDAsIC5zbG93LCB0MikKICAgICAgICAgZGlzcGF0Y2goKQpAQCAt
MTEyNCwxMiArMTEyMCwxMiBAQCBtYWNybyBiaW5hcnlPcEN1c3RvbVN0b3JlKG9wY29kZU5hbWUs
IG9wCiAgICAgICAgIGJpYSB0MiwgTG93ZXN0VGFnLCAuc2xvdwogICAgICAgICBiaWIgdDMsIExv
d2VzdFRhZywgLm9wMU5vdEludE9wMkRvdWJsZQogICAgICAgICBiaW5lcSB0MywgSW50MzJUYWcs
IC5zbG93Ci0gICAgICAgIHVwZGF0ZUJpbmFyeUFyaXRoUHJvZmlsZShvcGNvZGVTdHJ1Y3QsIEFy
aXRoUHJvZmlsZU51bWJlckludCwgdDUsIHQ0KQorICAgICAgICB1cGRhdGVCaW5hcnlBcml0aFBy
b2ZpbGUoc2l6ZSwgb3Bjb2RlU3RydWN0LCBBcml0aFByb2ZpbGVOdW1iZXJJbnQsIHQ1LCB0NCkK
ICAgICAgICAgY2kyZHMgdDEsIGZ0MQogICAgICAgICBqbXAgLm9wMU5vdEludFJlYWR5CiAgICAg
Lm9wMU5vdEludE9wMkRvdWJsZToKICAgICAgICAgZmlpMmQgdDEsIHQzLCBmdDEKLSAgICAgICAg
dXBkYXRlQmluYXJ5QXJpdGhQcm9maWxlKG9wY29kZVN0cnVjdCwgQXJpdGhQcm9maWxlTnVtYmVy
TnVtYmVyLCB0NSwgdDQpCisgICAgICAgIHVwZGF0ZUJpbmFyeUFyaXRoUHJvZmlsZShzaXplLCBv
cGNvZGVTdHJ1Y3QsIEFyaXRoUHJvZmlsZU51bWJlck51bWJlciwgdDUsIHQ0KQogICAgIC5vcDFO
b3RJbnRSZWFkeToKICAgICAgICAgZ2V0KG1fZHN0LCB0MSkKICAgICAgICAgZmlpMmQgdDAsIHQy
LCBmdDAKQEAgLTExNDEsNyArMTEzNyw3IEBAIG1hY3JvIGJpbmFyeU9wQ3VzdG9tU3RvcmUob3Bj
b2RlTmFtZSwgb3AKICAgICAgICAgIyBGaXJzdCBvcGVyYW5kIGlzIGRlZmluaXRlbHkgYW4gaW50
LCB0aGUgc2Vjb25kIG9wZXJhbmQgaXMgZGVmaW5pdGVseSBub3QuCiAgICAgICAgIGdldChtX2Rz
dCwgdDIpCiAgICAgICAgIGJpYSB0MywgTG93ZXN0VGFnLCAuc2xvdwotICAgICAgICB1cGRhdGVC
aW5hcnlBcml0aFByb2ZpbGUob3Bjb2RlU3RydWN0LCBBcml0aFByb2ZpbGVJbnROdW1iZXIsIHQ1
LCB0NCkKKyAgICAgICAgdXBkYXRlQmluYXJ5QXJpdGhQcm9maWxlKHNpemUsIG9wY29kZVN0cnVj
dCwgQXJpdGhQcm9maWxlSW50TnVtYmVyLCB0NSwgdDQpCiAgICAgICAgIGNpMmRzIHQwLCBmdDAK
ICAgICAgICAgZmlpMmQgdDEsIHQzLCBmdDEKICAgICAgICAgZG91YmxlT3BlcmF0aW9uKGZ0MSwg
ZnQwKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0
ZXI2NC5hc20KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xl
dmVsSW50ZXJwcmV0ZXI2NC5hc20JKHJldmlzaW9uIDI4MzA4NCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCSh3b3JraW5nIGNvcHkpCkBA
IC0xMDYzLDE0ICsxMDYzLDEzIEBAIG1hY3JvIHByZU9wKG9wY29kZU5hbWUsIG9wY29kZVN0cnVj
dCwgaW4KICAgICBsbGludE9wV2l0aE1ldGFkYXRhKG9wXyVvcGNvZGVOYW1lJSwgb3Bjb2RlU3Ry
dWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJldHVybikKICAgICAg
ICAgZ2V0KG1fc3JjRHN0LCB0MCkKICAgICAgICAgbG9hZHEgW2NmciwgdDAsIDhdLCB0MQotICAg
ICAgICBtZXRhZGF0YSh0MiwgdDMpCi0gICAgICAgICMgc3JjRHN0IGluIHQxLCBtZXRhZGF0YSBp
biB0MgorICAgICAgICAjIHNyY0RzdCBpbiB0MQogICAgICAgICAjIEZJWE1FOiB0aGUgbmV4dCBs
aW5lIGp1bXBzIHRvIHRoZSBzbG93IHBhdGggZm9yIEJpZ0ludDMyLiBXZSBjb3VsZCBpbnN0ZWFk
IGhhdmUgYSBkZWRpY2F0ZWQgcGF0aCBpbiBoZXJlIGZvciB0aGVtLgogICAgICAgICBicWIgdDEs
IG51bWJlclRhZywgLnNsb3cKICAgICAgICAgaW50ZWdlck9wZXJhdGlvbih0MSwgLnNsb3cpCiAg
ICAgICAgIG9ycSBudW1iZXJUYWcsIHQxCiAgICAgICAgIHN0b3JlcSB0MSwgW2NmciwgdDAsIDhd
Ci0gICAgICAgIHVwZGF0ZVVuYXJ5QXJpdGhQcm9maWxlKG9wY29kZVN0cnVjdCwgQXJpdGhQcm9m
aWxlSW50LCB0MiwgdDMpCisgICAgICAgIHVwZGF0ZVVuYXJ5QXJpdGhQcm9maWxlKHNpemUsIG9w
Y29kZVN0cnVjdCwgQXJpdGhQcm9maWxlSW50LCB0NSwgdDMpCiAgICAgICAgIGRpc3BhdGNoKCkK
IAogICAgIC5zbG93OgpAQCAtMTEzNywxNyArMTEzNiwxNiBAQCBlbmQpCiBsbGludE9wV2l0aE1l
dGFkYXRhKG9wX25lZ2F0ZSwgT3BOZWdhdGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBt
ZXRhZGF0YSwgcmV0dXJuKQogICAgIGdldChtX29wZXJhbmQsIHQwKQogICAgIGxvYWRDb25zdGFu
dE9yVmFyaWFibGUoc2l6ZSwgdDAsIHQzKQotICAgIG1ldGFkYXRhKHQxLCB0MikKICAgICBicWIg
dDMsIG51bWJlclRhZywgLm9wTmVnYXRlTm90SW50CiAgICAgYnRpeiB0MywgMHg3ZmZmZmZmZiwg
Lm9wTmVnYXRlU2xvdwogICAgIG5lZ2kgdDMKICAgICBvcnEgbnVtYmVyVGFnLCB0MwotICAgIHVw
ZGF0ZVVuYXJ5QXJpdGhQcm9maWxlKE9wTmVnYXRlLCBBcml0aFByb2ZpbGVJbnQsIHQxLCB0MikK
KyAgICB1cGRhdGVVbmFyeUFyaXRoUHJvZmlsZShzaXplLCBPcE5lZ2F0ZSwgQXJpdGhQcm9maWxl
SW50LCB0MSwgdDIpCiAgICAgcmV0dXJuKHQzKQogLm9wTmVnYXRlTm90SW50OgogICAgIGJ0cXog
dDMsIG51bWJlclRhZywgLm9wTmVnYXRlU2xvdwogICAgIHhvcnEgMHg4MDAwMDAwMDAwMDAwMDAw
LCB0MwotICAgIHVwZGF0ZVVuYXJ5QXJpdGhQcm9maWxlKE9wTmVnYXRlLCBBcml0aFByb2ZpbGVO
dW1iZXIsIHQxLCB0MikKKyAgICB1cGRhdGVVbmFyeUFyaXRoUHJvZmlsZShzaXplLCBPcE5lZ2F0
ZSwgQXJpdGhQcm9maWxlTnVtYmVyLCB0MSwgdDIpCiAgICAgcmV0dXJuKHQzKQogCiAub3BOZWdh
dGVTbG93OgpAQCAtMTE1OCw4ICsxMTU2LDYgQEAgZW5kKQogCiBtYWNybyBiaW5hcnlPcEN1c3Rv
bVN0b3JlKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgaW50ZWdlck9wZXJhdGlvbkFuZFN0b3Jl
LCBkb3VibGVPcGVyYXRpb24pCiAgICAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF8lb3Bjb2RlTmFt
ZSUsIG9wY29kZVN0cnVjdCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBy
ZXR1cm4pCi0gICAgICAgIG1ldGFkYXRhKHQ1LCB0MCkKLQogICAgICAgICBnZXQobV9yaHMsIHQw
KQogICAgICAgICBnZXQobV9saHMsIHQyKQogICAgICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxl
KHNpemUsIHQwLCB0MSkKQEAgLTExNjksNyArMTE2NSw3IEBAIG1hY3JvIGJpbmFyeU9wQ3VzdG9t
U3RvcmUob3Bjb2RlTmFtZSwgb3AKICAgICAgICAgZ2V0KG1fZHN0LCB0MikKICAgICAgICAgaW50
ZWdlck9wZXJhdGlvbkFuZFN0b3JlKHQxLCB0MCwgLnNsb3csIHQyKQogCi0gICAgICAgIHVwZGF0
ZUJpbmFyeUFyaXRoUHJvZmlsZShvcGNvZGVTdHJ1Y3QsIEFyaXRoUHJvZmlsZUludEludCwgdDUs
IHQyKQorICAgICAgICB1cGRhdGVCaW5hcnlBcml0aFByb2ZpbGUoc2l6ZSwgb3Bjb2RlU3RydWN0
LCBBcml0aFByb2ZpbGVJbnRJbnQsIHQ1LCB0MikKICAgICAgICAgZGlzcGF0Y2goKQogCiAgICAg
Lm9wMU5vdEludDoKQEAgLTExNzksMTAgKzExNzUsMTAgQEAgbWFjcm8gYmluYXJ5T3BDdXN0b21T
dG9yZShvcGNvZGVOYW1lLCBvcAogICAgICAgICBidHF6IHQxLCBudW1iZXJUYWcsIC5zbG93CiAg
ICAgICAgIGFkZHEgbnVtYmVyVGFnLCB0MQogICAgICAgICBmcTJkIHQxLCBmdDEKLSAgICAgICAg
dXBkYXRlQmluYXJ5QXJpdGhQcm9maWxlKG9wY29kZVN0cnVjdCwgQXJpdGhQcm9maWxlTnVtYmVy
TnVtYmVyLCB0NSwgdDIpCisgICAgICAgIHVwZGF0ZUJpbmFyeUFyaXRoUHJvZmlsZShzaXplLCBv
cGNvZGVTdHJ1Y3QsIEFyaXRoUHJvZmlsZU51bWJlck51bWJlciwgdDUsIHQyKQogICAgICAgICBq
bXAgLm9wMU5vdEludFJlYWR5CiAgICAgLm9wMU5vdEludE9wMkludDoKLSAgICAgICAgdXBkYXRl
QmluYXJ5QXJpdGhQcm9maWxlKG9wY29kZVN0cnVjdCwgQXJpdGhQcm9maWxlTnVtYmVySW50LCB0
NSwgdDIpCisgICAgICAgIHVwZGF0ZUJpbmFyeUFyaXRoUHJvZmlsZShzaXplLCBvcGNvZGVTdHJ1
Y3QsIEFyaXRoUHJvZmlsZU51bWJlckludCwgdDUsIHQyKQogICAgICAgICBjaTJkcyB0MSwgZnQx
CiAgICAgLm9wMU5vdEludFJlYWR5OgogICAgICAgICBnZXQobV9kc3QsIHQyKQpAQCAtMTE5Nyw3
ICsxMTkzLDcgQEAgbWFjcm8gYmluYXJ5T3BDdXN0b21TdG9yZShvcGNvZGVOYW1lLCBvcAogICAg
IC5vcDJOb3RJbnQ6CiAgICAgICAgICMgRmlyc3Qgb3BlcmFuZCBpcyBkZWZpbml0ZWx5IGFuIGlu
dCwgdGhlIHNlY29uZCBpcyBkZWZpbml0ZWx5IG5vdC4KICAgICAgICAgYnRxeiB0MSwgbnVtYmVy
VGFnLCAuc2xvdwotICAgICAgICB1cGRhdGVCaW5hcnlBcml0aFByb2ZpbGUob3Bjb2RlU3RydWN0
LCBBcml0aFByb2ZpbGVJbnROdW1iZXIsIHQ1LCB0MikKKyAgICAgICAgdXBkYXRlQmluYXJ5QXJp
dGhQcm9maWxlKHNpemUsIG9wY29kZVN0cnVjdCwgQXJpdGhQcm9maWxlSW50TnVtYmVyLCB0NSwg
dDIpCiAgICAgICAgIGdldChtX2RzdCwgdDIpCiAgICAgICAgIGNpMmRzIHQwLCBmdDAKICAgICAg
ICAgYWRkcSBudW1iZXJUYWcsIHQxCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TG93TGV2ZWxJbnRlcnByZXRlci5hc20KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCShyZXZpc2lvbiAyODMwODQpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20JKHdvcmtp
bmcgY29weSkKQEAgLTI1NjYsMTQgKzI1NjYsMjAgQEAgbWFjcm8gbm90U3VwcG9ydGVkKCkKIGVu
ZAogCiAKLW1hY3JvIHVwZGF0ZVVuYXJ5QXJpdGhQcm9maWxlKG9wY29kZVN0cnVjdCwgdHlwZSwg
bWV0YWRhdGEsIHRlbXApCi0gICAgbG9hZHAgJW9wY29kZVN0cnVjdCU6Ok1ldGFkYXRhOjptX2Fy
aXRoUHJvZmlsZVttZXRhZGF0YV0sIHRlbXAKLSAgICBvcmggdHlwZSwgVW5hcnlBcml0aFByb2Zp
bGU6Om1fYml0c1t0ZW1wXQorbWFjcm8gdXBkYXRlVW5hcnlBcml0aFByb2ZpbGUoc2l6ZSwgb3Bj
b2RlU3RydWN0LCB0eXBlLCBzY3JhdGNoMSwgc2NyYXRjaDIpCisgICAgZ2V0dShzaXplLCBvcGNv
ZGVTdHJ1Y3QsIG1fcHJvZmlsZUluZGV4LCBzY3JhdGNoMSkKKyAgICBsb2FkcCBDb2RlQmxvY2tb
Y2ZyXSwgc2NyYXRjaDIKKyAgICBsb2FkcCBDb2RlQmxvY2s6Om1fdW5saW5rZWRDb2RlW3NjcmF0
Y2gyXSwgc2NyYXRjaDIKKyAgICBsb2FkcCBVbmxpbmtlZENvZGVCbG9jazo6bV91bmFyeUFyaXRo
UHJvZmlsZXMgKyBGaXhlZFZlY3Rvcjo6bV9zdG9yYWdlICsgUmVmQ291bnRlZEFycmF5OjptX2Rh
dGFbc2NyYXRjaDJdLCBzY3JhdGNoMgorICAgIG9yaCB0eXBlLCBVbmFyeUFyaXRoUHJvZmlsZTo6
bV9iaXRzW3NjcmF0Y2gyLCBzY3JhdGNoMSwgMl0KIGVuZAogCi1tYWNybyB1cGRhdGVCaW5hcnlB
cml0aFByb2ZpbGUob3Bjb2RlU3RydWN0LCB0eXBlLCBtZXRhZGF0YSwgdGVtcCkKLSAgICBsb2Fk
cCAlb3Bjb2RlU3RydWN0JTo6TWV0YWRhdGE6Om1fYXJpdGhQcm9maWxlW21ldGFkYXRhXSwgdGVt
cAotICAgIG9yaCB0eXBlLCBCaW5hcnlBcml0aFByb2ZpbGU6Om1fYml0c1t0ZW1wXQorbWFjcm8g
dXBkYXRlQmluYXJ5QXJpdGhQcm9maWxlKHNpemUsIG9wY29kZVN0cnVjdCwgdHlwZSwgc2NyYXRj
aDEsIHNjcmF0Y2gyKQorICAgIGdldHUoc2l6ZSwgb3Bjb2RlU3RydWN0LCBtX3Byb2ZpbGVJbmRl
eCwgc2NyYXRjaDEpCisgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHNjcmF0Y2gyCisgICAgbG9h
ZHAgQ29kZUJsb2NrOjptX3VubGlua2VkQ29kZVtzY3JhdGNoMl0sIHNjcmF0Y2gyCisgICAgbG9h
ZHAgVW5saW5rZWRDb2RlQmxvY2s6Om1fYmluYXJ5QXJpdGhQcm9maWxlcyArIEZpeGVkVmVjdG9y
OjptX3N0b3JhZ2UgKyBSZWZDb3VudGVkQXJyYXk6Om1fZGF0YVtzY3JhdGNoMl0sIHNjcmF0Y2gy
CisgICAgb3JoIHR5cGUsIEJpbmFyeUFyaXRoUHJvZmlsZTo6bV9iaXRzW3NjcmF0Y2gyLCBzY3Jh
dGNoMSwgMl0KIGVuZAogCiAvLyBGSVhNRTogV2Ugc2hvdWxkIG5vdCBuZWVkIHRoZSBYODZfNjRf
V0lOIGNvbmRpdGlvbiBoZXJlLCBzaW5jZSBXRUJBU1NFTUJMWSBzaG91bGQgYWxyZWFkeSBiZSBm
YWxzZSBvbiBXaW5kb3dzCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9j
bG9vcC5yYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9j
bG9vcC5yYgkocmV2aXNpb24gMjgzMDg0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxp
bmVhc20vY2xvb3AucmIJKHdvcmtpbmcgY29weSkKQEAgLTI1OSw5ICsyNTksMTEgQEAgY2xhc3Mg
QmFzZUluZGV4CiAgICAgICAgIGNhc2UgdHlwZQogICAgICAgICB3aGVuIDppbnQ4OyAgICAgICBp
bnQ4TWVtUmVmCiAgICAgICAgIHdoZW4gOmludDMyOyAgICAgIGludDMyTWVtUmVmCisgICAgICAg
IHdoZW4gOmludDE2OyAgICAgIGludDE2TWVtUmVmCiAgICAgICAgIHdoZW4gOmludDY0OyAgICAg
IGludDY0TWVtUmVmCiAgICAgICAgIHdoZW4gOmludHB0cjsgICAgIGludHB0ck1lbVJlZgogICAg
ICAgICB3aGVuIDp1aW50ODsgICAgICB1aW50OE1lbVJlZgorICAgICAgICB3aGVuIDp1aW50MTY7
ICAgICB1aW50MTZNZW1SZWYKICAgICAgICAgd2hlbiA6dWludDMyOyAgICAgdWludDMyTWVtUmVm
CiAgICAgICAgIHdoZW4gOnVpbnQ2NDsgICAgIHVpbnQ2NE1lbVJlZgogICAgICAgICB3aGVuIDp1
aW50cHRyOyAgICB1aW50cHRyTWVtUmVmCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Db21tb25TbG93UGF0aHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAJKHJldmlzaW9uIDI4MzA4NCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTQ3OCw5ICs0NzgsOCBAQCBKU0NfREVGSU5FX0NPTU1PTl9TTE9XX1BBVEgoc2xv
d19wYXRoX3RvCiB9CiAKICNpZiBFTkFCTEUoSklUKQotc3RhdGljIHZvaWQgdXBkYXRlQXJpdGhQ
cm9maWxlRm9yVW5hcnlBcml0aE9wKE9wTmVnYXRlOjpNZXRhZGF0YSYgbWV0YWRhdGEsIEpTVmFs
dWUgcmVzdWx0LCBKU1ZhbHVlIG9wZXJhbmQpCitzdGF0aWMgdm9pZCB1cGRhdGVBcml0aFByb2Zp
bGVGb3JVbmFyeUFyaXRoT3AoVW5hcnlBcml0aFByb2ZpbGUmIHByb2ZpbGUsIEpTVmFsdWUgcmVz
dWx0LCBKU1ZhbHVlIG9wZXJhbmQpCiB7Ci0gICAgVW5hcnlBcml0aFByb2ZpbGUmIHByb2ZpbGUg
PSAqbWV0YWRhdGEubV9hcml0aFByb2ZpbGU7CiAgICAgcHJvZmlsZS5vYnNlcnZlQXJnKG9wZXJh
bmQpOwogICAgIEFTU0VSVChyZXN1bHQuaXNOdW1iZXIoKSB8fCByZXN1bHQuaXNCaWdJbnQoKSk7
CiAKQEAgLTUxNCwyNCArNTEzLDI1IEBAIHN0YXRpYyB2b2lkIHVwZGF0ZUFyaXRoUHJvZmlsZUZv
clVuYXJ5QXIKICAgICB9CiB9CiAjZWxzZQotc3RhdGljIHZvaWQgdXBkYXRlQXJpdGhQcm9maWxl
Rm9yVW5hcnlBcml0aE9wKE9wTmVnYXRlOjpNZXRhZGF0YSYsIEpTVmFsdWUsIEpTVmFsdWUpIHsg
fQorc3RhdGljIHZvaWQgdXBkYXRlQXJpdGhQcm9maWxlRm9yVW5hcnlBcml0aE9wKFVuYXJ5QXJp
dGhQcm9maWxlJiwgSlNWYWx1ZSwgSlNWYWx1ZSkgeyB9CiAjZW5kaWYKIAogSlNDX0RFRklORV9D
T01NT05fU0xPV19QQVRIKHNsb3dfcGF0aF9uZWdhdGUpCiB7CiAgICAgQkVHSU4oKTsKICAgICBh
dXRvIGJ5dGVjb2RlID0gcGMtPmFzPE9wTmVnYXRlPigpOwotICAgIGF1dG8mIG1ldGFkYXRhID0g
Ynl0ZWNvZGUubWV0YWRhdGEoY29kZUJsb2NrKTsKICAgICBKU1ZhbHVlIG9wZXJhbmQgPSBHRVRf
QyhieXRlY29kZS5tX29wZXJhbmQpLmpzVmFsdWUoKTsKICAgICBKU1ZhbHVlIHByaW1WYWx1ZSA9
IG9wZXJhbmQudG9QcmltaXRpdmUoZ2xvYmFsT2JqZWN0LCBQcmVmZXJOdW1iZXIpOwogICAgIENI
RUNLX0VYQ0VQVElPTigpOwogCisgICAgYXV0byYgcHJvZmlsZSA9IGNvZGVCbG9jay0+dW5saW5r
ZWRDb2RlQmxvY2soKS0+dW5hcnlBcml0aFByb2ZpbGUoYnl0ZWNvZGUubV9wcm9maWxlSW5kZXgp
OworCiAjaWYgVVNFKEJJR0lOVDMyKQogICAgIGlmIChwcmltVmFsdWUuaXNCaWdJbnQzMigpKSB7
CiAgICAgICAgIEpTVmFsdWUgcmVzdWx0ID0gSlNCaWdJbnQ6OnVuYXJ5TWludXMoZ2xvYmFsT2Jq
ZWN0LCBwcmltVmFsdWUuYmlnSW50MzJBc0ludDMyKCkpOwogICAgICAgICBDSEVDS19FWENFUFRJ
T04oKTsKICAgICAgICAgUkVUVVJOX1dJVEhfUFJPRklMSU5HKHJlc3VsdCwgewotICAgICAgICAg
ICAgdXBkYXRlQXJpdGhQcm9maWxlRm9yVW5hcnlBcml0aE9wKG1ldGFkYXRhLCByZXN1bHQsIG9w
ZXJhbmQpOworICAgICAgICAgICAgdXBkYXRlQXJpdGhQcm9maWxlRm9yVW5hcnlBcml0aE9wKHBy
b2ZpbGUsIHJlc3VsdCwgb3BlcmFuZCk7CiAgICAgICAgIH0pOwogICAgIH0KICNlbmRpZgpAQCAt
NTQwLDE0ICs1NDAsMTQgQEAgSlNDX0RFRklORV9DT01NT05fU0xPV19QQVRIKHNsb3dfcGF0aF9u
ZQogICAgICAgICBKU1ZhbHVlIHJlc3VsdCA9IEpTQmlnSW50Ojp1bmFyeU1pbnVzKGdsb2JhbE9i
amVjdCwgcHJpbVZhbHVlLmFzSGVhcEJpZ0ludCgpKTsKICAgICAgICAgQ0hFQ0tfRVhDRVBUSU9O
KCk7CiAgICAgICAgIFJFVFVSTl9XSVRIX1BST0ZJTElORyhyZXN1bHQsIHsKLSAgICAgICAgICAg
IHVwZGF0ZUFyaXRoUHJvZmlsZUZvclVuYXJ5QXJpdGhPcChtZXRhZGF0YSwgcmVzdWx0LCBvcGVy
YW5kKTsKKyAgICAgICAgICAgIHVwZGF0ZUFyaXRoUHJvZmlsZUZvclVuYXJ5QXJpdGhPcChwcm9m
aWxlLCByZXN1bHQsIG9wZXJhbmQpOwogICAgICAgICB9KTsKICAgICB9CiAgICAgCiAgICAgSlNW
YWx1ZSByZXN1bHQgPSBqc051bWJlcigtcHJpbVZhbHVlLnRvTnVtYmVyKGdsb2JhbE9iamVjdCkp
OwogICAgIENIRUNLX0VYQ0VQVElPTigpOwogICAgIFJFVFVSTl9XSVRIX1BST0ZJTElORyhyZXN1
bHQsIHsKLSAgICAgICAgdXBkYXRlQXJpdGhQcm9maWxlRm9yVW5hcnlBcml0aE9wKG1ldGFkYXRh
LCByZXN1bHQsIG9wZXJhbmQpOworICAgICAgICB1cGRhdGVBcml0aFByb2ZpbGVGb3JVbmFyeUFy
aXRoT3AocHJvZmlsZSwgcmVzdWx0LCBvcGVyYW5kKTsKICAgICB9KTsKIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>