<?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>225264</bug_id>
          
          <creation_ts>2021-04-30 19:58:19 -0700</creation_ts>
          <short_desc>Add some missing exception checks before some jsCasts.</short_desc>
          <delta_ts>2021-05-03 08:55: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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1755908</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-04-30 19:58:19 -0700</bug_when>
    <thetext>rdar://77381608</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1755911</commentid>
    <comment_count>1</comment_count>
      <attachid>427485</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-04-30 20:23:56 -0700</bug_when>
    <thetext>Created attachment 427485
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1755913</commentid>
    <comment_count>2</comment_count>
      <attachid>427486</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-04-30 20:25:07 -0700</bug_when>
    <thetext>Created attachment 427486
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1755915</commentid>
    <comment_count>3</comment_count>
      <attachid>427486</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-04-30 20:27:29 -0700</bug_when>
    <thetext>Comment on attachment 427486
proposed patch.

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

&gt; Source/JavaScriptCore/ChangeLog:12
&gt; +        time of the jsCast.  On ASSERTs are not enabled, this will be a no-op.  All clients

/On/If/.  Will fix before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1755918</commentid>
    <comment_count>4</comment_count>
      <attachid>427488</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-04-30 20:51:25 -0700</bug_when>
    <thetext>Created attachment 427488
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756194</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-03 08:55:02 -0700</bug_when>
    <thetext>Committed r276900 (237246@main): &lt;https://commits.webkit.org/237246@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 427488.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427485</attachid>
            <date>2021-04-30 20:23:56 -0700</date>
            <delta_ts>2021-04-30 20:25:07 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-225264.patch</filename>
            <type>text/plain</type>
            <size>13648</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjc2ODcwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM5IEBA
CisyMDIxLTA0LTMwICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgc29tZSBtaXNzaW5nIGV4Y2VwdGlvbiBjaGVja3MgYmVmb3JlIHNvbWUganNDYXN0cy4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTI2NAorICAg
ICAgICByZGFyOi8vNzczODE2MDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBJbnRyb2R1Y2luZyBKU09iamVjdDo6Z2V0QXMoKSBhbmQgSlNWYWx1ZTo6
Z2V0QXMoKSBjb252ZW5pZW5jZSBtZXRob2RzIHRoYXQgd2lsbAorICAgICAgICBjaGVjayBmb3Ig
YW4gZXhjZXB0aW9uIGJlZm9yZSBkb2luZyBhIGpzQ2FzdCBvbiB0aGUgcmVzdWx0LiAgV2Ugb25s
eSBuZWVkIHRoaXMKKyAgICAgICAgdG8gcGxhY2F0ZSB0aGUgYXNzZXJ0aW9uIGluIGpzQ2FzdCBp
biB0aGUgZXZlbnQgYSBwZW5kaW5nIGV4Y2VwdGlvbiBleGlzdHMgYXQgdGhlCisgICAgICAgIHRp
bWUgb2YgdGhlIGpzQ2FzdC4gIE9uIEFTU0VSVHMgYXJlIG5vdCBlbmFibGVkLCB0aGlzIHdpbGwg
YmUgYSBuby1vcC4gIEFsbCBjbGllbnRzCisgICAgICAgIHRoYXQgdXNlIGpzQ2FzdCB0aGlzIHdh
eSAoYW5kIG5vdyB1c2UgZ2V0QXMgaW5zdGVhZCkgd2lsbCBhbHJlYWR5IGJlIGRvaW5nIGFuCisg
ICAgICAgIGV4Y2VwdGlvbiBjaGVjayBpbW1lZGlhdGVseSBhZnRlci4gIEhlbmNlLCB0aGV5IGFy
ZSBhbHJlYWR5IGRvaW5nIHRoZSByaWdodCB0aGluZworICAgICAgICBpbiB0ZXJtcyBvZiBoYW5k
bGluZyBleGNlcHRpb25zLiAgV2UncmUgb25seSBwbGFjYXRpbmcgdGhlIGpzQ2FzdCBhc3NlcnRp
b24gaGVyZS4KKworICAgICAgICAqIHJ1bnRpbWUvQWJzdHJhY3RNb2R1bGVSZWNvcmQuY3BwOgor
ICAgICAgICAoSlNDOjpBYnN0cmFjdE1vZHVsZVJlY29yZDo6aG9zdFJlc29sdmVJbXBvcnRlZE1v
ZHVsZSk6CisgICAgICAgICogcnVudGltZS9KU0NKU1ZhbHVlLmg6CisgICAgICAgICogcnVudGlt
ZS9KU0NKU1ZhbHVlSW5saW5lcy5oOgorICAgICAgICAoSlNDOjpKU1ZhbHVlOjpnZXRBcyBjb25z
dCk6CisgICAgICAgICogcnVudGltZS9KU0ludGVybmFsUHJvbWlzZS5jcHA6CisgICAgICAgIChK
U0M6OkpTSW50ZXJuYWxQcm9taXNlOjp0aGVuKToKKyAgICAgICAgKiBydW50aW1lL0pTTW9kdWxl
TG9hZGVyLmNwcDoKKyAgICAgICAgKEpTQzo6SlNNb2R1bGVMb2FkZXI6OmRlcGVuZGVuY3lLZXlz
SWZFdmFsdWF0ZWQpOgorICAgICAgICAoSlNDOjpKU01vZHVsZUxvYWRlcjo6cHJvdmlkZUZldGNo
KToKKyAgICAgICAgKEpTQzo6SlNNb2R1bGVMb2FkZXI6OmxvYWRBbmRFdmFsdWF0ZU1vZHVsZSk6
CisgICAgICAgIChKU0M6OkpTTW9kdWxlTG9hZGVyOjpsb2FkTW9kdWxlKToKKyAgICAgICAgKEpT
Qzo6SlNNb2R1bGVMb2FkZXI6OmxpbmtBbmRFdmFsdWF0ZU1vZHVsZSk6CisgICAgICAgIChKU0M6
OkpTTW9kdWxlTG9hZGVyOjpyZXF1ZXN0SW1wb3J0TW9kdWxlKToKKyAgICAgICAgKiBydW50aW1l
L0pTT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpnZXRBcyBjb25zdCk6CisgICAg
ICAgICogcnVudGltZS9KU1Byb21pc2UuY3BwOgorICAgICAgICAoSlNDOjpKU1Byb21pc2U6OmNy
ZWF0ZURlZmVycmVkRGF0YSk6CisgICAgICAgICogcnVudGltZS9WTS5oOgorCiAyMDIxLTA0LTMw
ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBzbWFsbCBK
SVQgcG9vbCB0ZXN0cyBwYXNzIG9uIEFTCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9BYnN0cmFjdE1vZHVsZVJlY29yZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQWJzdHJhY3RNb2R1bGVSZWNvcmQuY3BwCShyZXZpc2lvbiAyNzY4
NDMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BYnN0cmFjdE1vZHVsZVJlY29y
ZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1Niw3ICsxNTYsNyBAQCBBYnN0cmFjdE1vZHVsZVJl
Y29yZCogQWJzdHJhY3RNb2R1bGVSZWNvCiAgICAgSlNWYWx1ZSBtb2R1bGVOYW1lVmFsdWUgPSBp
ZGVudGlmaWVyVG9KU1ZhbHVlKHZtLCBtb2R1bGVOYW1lKTsKICAgICBKU1ZhbHVlIGVudHJ5ID0g
bV9kZXBlbmRlbmNpZXNNYXAtPkpTTWFwOjpnZXQoZ2xvYmFsT2JqZWN0LCBtb2R1bGVOYW1lVmFs
dWUpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwotICAgIFJFTEVB
U0VfQU5EX1JFVFVSTihzY29wZSwganNDYXN0PEFic3RyYWN0TW9kdWxlUmVjb3JkKj4oZW50cnku
Z2V0KGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgIm1vZHVsZSIpKSkp
OworICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgZW50cnkuZ2V0QXM8QWJzdHJhY3RNb2R1
bGVSZWNvcmQqPihnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJtb2R1
bGUiKSkpOwogfQogCiBhdXRvIEFic3RyYWN0TW9kdWxlUmVjb3JkOjpyZXNvbHZlSW1wb3J0KEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IElkZW50aWZpZXImIGxvY2FsTmFtZSkg
LT4gUmVzb2x1dGlvbgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNW
YWx1ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pT
VmFsdWUuaAkocmV2aXNpb24gMjc2ODQzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNDSlNWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDcgKzEsNyBAQAogLyoKICAqICBD
b3B5cmlnaHQgKEMpIDE5OTktMjAwMSBIYXJyaSBQb3J0ZW4gKHBvcnRlbkBrZGUub3JnKQogICog
IENvcHlyaWdodCAoQykgMjAwMSBQZXRlciBLZWxseSAocG1rQHBvc3QuY29tKQotICogIENvcHly
aWdodCAoQykgMjAwMy0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqICBD
b3B5cmlnaHQgKEMpIDIwMDMtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMzE2LDYgKzMxNiw5IEBAIHB1YmxpYzoKICAgICBKU1Zh
bHVlIGdldChKU0dsb2JhbE9iamVjdCosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgUHJvcGVydHlT
bG90JikgY29uc3Q7CiAgICAgSlNWYWx1ZSBnZXQoSlNHbG9iYWxPYmplY3QqLCB1aW50NjRfdCBw
cm9wZXJ0eU5hbWUpIGNvbnN0OwogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUg
UHJvcGVydHlOYW1lVHlwZT4KKyAgICBUIGdldEFzKEpTR2xvYmFsT2JqZWN0KiwgUHJvcGVydHlO
YW1lVHlwZSkgY29uc3Q7CisKICAgICBib29sIGdldFByb3BlcnR5U2xvdChKU0dsb2JhbE9iamVj
dCosIFByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JikgY29uc3Q7CiAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgQ2FsbGJhY2tXaGVuTm9FeGNlcHRpb24+IHR5cGVuYW1lIHN0ZDo6cmVzdWx0X29mPENh
bGxiYWNrV2hlbk5vRXhjZXB0aW9uKGJvb2wsIFByb3BlcnR5U2xvdCYpPjo6dHlwZSBnZXRQcm9w
ZXJ0eVNsb3QoSlNHbG9iYWxPYmplY3QqLCBQcm9wZXJ0eU5hbWUsIENhbGxiYWNrV2hlbk5vRXhj
ZXB0aW9uKSBjb25zdDsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDYWxsYmFja1doZW5Ob0V4Y2Vw
dGlvbj4gdHlwZW5hbWUgc3RkOjpyZXN1bHRfb2Y8Q2FsbGJhY2tXaGVuTm9FeGNlcHRpb24oYm9v
bCwgUHJvcGVydHlTbG90Jik+Ojp0eXBlIGdldFByb3BlcnR5U2xvdChKU0dsb2JhbE9iamVjdCos
IFByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiwgQ2FsbGJhY2tXaGVuTm9FeGNlcHRpb24pIGNv
bnN0OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZUlubGlu
ZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1Zh
bHVlSW5saW5lcy5oCShyZXZpc2lvbiAyNzY4NDMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0NKU1ZhbHVlSW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMS0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTA0NSw2ICsx
MDQ1LDE4IEBAIEFMV0FZU19JTkxJTkUgSlNWYWx1ZSBKU1ZhbHVlOjpnZXQoSlNHbG8KICAgICBy
ZXR1cm4gZ2V0KGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbShnZXRWTShnbG9iYWxPYmpl
Y3QpLCBzdGF0aWNfY2FzdDxkb3VibGU+KHByb3BlcnR5TmFtZSkpKTsKIH0KIAordGVtcGxhdGU8
dHlwZW5hbWUgVCwgdHlwZW5hbWUgUHJvcGVydHlOYW1lVHlwZT4KK0FMV0FZU19JTkxJTkUgVCBK
U1ZhbHVlOjpnZXRBcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQcm9wZXJ0eU5hbWVU
eXBlIHByb3BlcnR5TmFtZSkgY29uc3QKK3sKKyAgICBKU1ZhbHVlIHZhbHVlID0gZ2V0KGdsb2Jh
bE9iamVjdCwgcHJvcGVydHlOYW1lKTsKKyNpZiBBU1NFUlRfRU5BQkxFRCB8fCBFTkFCTEUoU0VD
VVJJVFlfQVNTRVJUSU9OUykKKyAgICBWTSYgdm0gPSBnZXRWTShnbG9iYWxPYmplY3QpOworICAg
IGlmICh2bS5leGNlcHRpb25Gb3JJbnNwZWN0aW9uKCkpCisgICAgICAgIHJldHVybiBudWxscHRy
OworI2VuZGlmCisgICAgcmV0dXJuIGpzQ2FzdDxUPih2YWx1ZSk7Cit9CisKIGlubGluZSBib29s
IEpTVmFsdWU6OnB1dChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQcm9wZXJ0eU5hbWUg
cHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAg
ICAgaWYgKFVOTElLRUxZKCFpc0NlbGwoKSkpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0ludGVybmFsUHJvbWlzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2UuY3BwCShyZXZpc2lvbiAyNzY4NDMp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ludGVybmFsUHJvbWlzZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1
LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDE1LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC02MCw3ICs2MCw3IEBAIEpTSW50ZXJuYWxQcm9taXNlKiBKU0lu
dGVybmFsUHJvbWlzZTo6dGgKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCi0gICAgSlNPYmplY3QqIGZ1
bmN0aW9uID0ganNDYXN0PEpTT2JqZWN0Kj4oZ2V0KGdsb2JhbE9iamVjdCwgdm0ucHJvcGVydHlO
YW1lcy0+YnVpbHRpbk5hbWVzKCkudGhlblB1YmxpY05hbWUoKSkpOworICAgIEpTT2JqZWN0KiBm
dW5jdGlvbiA9IGdldEFzPEpTT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0LCB2bS5wcm9wZXJ0eU5hbWVz
LT5idWlsdGluTmFtZXMoKS50aGVuUHVibGljTmFtZSgpKTsKICAgICBSRVRVUk5fSUZfRVhDRVBU
SU9OKHNjb3BlLCBudWxscHRyKTsKICAgICBhdXRvIGNhbGxEYXRhID0gSlNDOjpnZXRDYWxsRGF0
YSh2bSwgZnVuY3Rpb24pOwogICAgIEFTU0VSVChjYWxsRGF0YS50eXBlICE9IENhbGxEYXRhOjpU
eXBlOjpOb25lKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTW9kdWxl
TG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U01vZHVsZUxvYWRlci5jcHAJKHJldmlzaW9uIDI3Njg0MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTTW9kdWxlTG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI2LDcg
KzEyNiw3IEBAIEpTQXJyYXkqIEpTTW9kdWxlTG9hZGVyOjpkZXBlbmRlbmN5S2V5c0kKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwogCi0gICAgSlNPYmplY3QqIGZ1bmN0aW9uID0ganNDYXN0PEpTT2JqZWN0
Kj4oZ2V0KGdsb2JhbE9iamVjdCwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkuZGVw
ZW5kZW5jeUtleXNJZkV2YWx1YXRlZFB1YmxpY05hbWUoKSkpOworICAgIEpTT2JqZWN0KiBmdW5j
dGlvbiA9IGdldEFzPEpTT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0LCB2bS5wcm9wZXJ0eU5hbWVzLT5i
dWlsdGluTmFtZXMoKS5kZXBlbmRlbmN5S2V5c0lmRXZhbHVhdGVkUHVibGljTmFtZSgpKTsKICAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKICAgICBhdXRvIGNhbGxEYXRh
ID0gSlNDOjpnZXRDYWxsRGF0YSh2bSwgZnVuY3Rpb24pOwogICAgIEFTU0VSVChjYWxsRGF0YS50
eXBlICE9IENhbGxEYXRhOjpUeXBlOjpOb25lKTsKQEAgLTE0NSw3ICsxNDUsNyBAQCBKU1ZhbHVl
IEpTTW9kdWxlTG9hZGVyOjpwcm92aWRlRmV0Y2goSlNHCiAgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAot
ICAgIEpTT2JqZWN0KiBmdW5jdGlvbiA9IGpzQ2FzdDxKU09iamVjdCo+KGdldChnbG9iYWxPYmpl
Y3QsIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnByb3ZpZGVGZXRjaFB1YmxpY05h
bWUoKSkpOworICAgIEpTT2JqZWN0KiBmdW5jdGlvbiA9IGdldEFzPEpTT2JqZWN0Kj4oZ2xvYmFs
T2JqZWN0LCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5wcm92aWRlRmV0Y2hQdWJs
aWNOYW1lKCkpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAgICAgYXV0
byBjYWxsRGF0YSA9IEpTQzo6Z2V0Q2FsbERhdGEodm0sIGZ1bmN0aW9uKTsKICAgICBBU1NFUlQo
Y2FsbERhdGEudHlwZSAhPSBDYWxsRGF0YTo6VHlwZTo6Tm9uZSk7CkBAIC0xNjQsNyArMTY0LDcg
QEAgSlNJbnRlcm5hbFByb21pc2UqIEpTTW9kdWxlTG9hZGVyOjpsb2FkQQogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CiAKLSAgICBKU09iamVjdCogZnVuY3Rpb24gPSBqc0Nhc3Q8SlNPYmplY3QqPihnZXQo
Z2xvYmFsT2JqZWN0LCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5sb2FkQW5kRXZh
bHVhdGVNb2R1bGVQdWJsaWNOYW1lKCkpKTsKKyAgICBKU09iamVjdCogZnVuY3Rpb24gPSBnZXRB
czxKU09iamVjdCo+KGdsb2JhbE9iamVjdCwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVz
KCkubG9hZEFuZEV2YWx1YXRlTW9kdWxlUHVibGljTmFtZSgpKTsKICAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCBudWxscHRyKTsKICAgICBhdXRvIGNhbGxEYXRhID0gSlNDOjpnZXRDYWxs
RGF0YSh2bSwgZnVuY3Rpb24pOwogICAgIEFTU0VSVChjYWxsRGF0YS50eXBlICE9IENhbGxEYXRh
OjpUeXBlOjpOb25lKTsKQEAgLTE4NSw3ICsxODUsNyBAQCBKU0ludGVybmFsUHJvbWlzZSogSlNN
b2R1bGVMb2FkZXI6OmxvYWRNCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAotICAgIEpTT2JqZWN0KiBm
dW5jdGlvbiA9IGpzQ2FzdDxKU09iamVjdCo+KGdldChnbG9iYWxPYmplY3QsIHZtLnByb3BlcnR5
TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmxvYWRNb2R1bGVQdWJsaWNOYW1lKCkpKTsKKyAgICBKU09i
amVjdCogZnVuY3Rpb24gPSBnZXRBczxKU09iamVjdCo+KGdsb2JhbE9iamVjdCwgdm0ucHJvcGVy
dHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkubG9hZE1vZHVsZVB1YmxpY05hbWUoKSk7CiAgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CiAgICAgYXV0byBjYWxsRGF0YSA9IEpT
Qzo6Z2V0Q2FsbERhdGEodm0sIGZ1bmN0aW9uKTsKICAgICBBU1NFUlQoY2FsbERhdGEudHlwZSAh
PSBDYWxsRGF0YTo6VHlwZTo6Tm9uZSk7CkBAIC0yMDYsNyArMjA2LDcgQEAgSlNWYWx1ZSBKU01v
ZHVsZUxvYWRlcjo6bGlua0FuZEV2YWx1YXRlTQogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKLSAgICBK
U09iamVjdCogZnVuY3Rpb24gPSBqc0Nhc3Q8SlNPYmplY3QqPihnZXQoZ2xvYmFsT2JqZWN0LCB2
bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5saW5rQW5kRXZhbHVhdGVNb2R1bGVQdWJs
aWNOYW1lKCkpKTsKKyAgICBKU09iamVjdCogZnVuY3Rpb24gPSBnZXRBczxKU09iamVjdCo+KGds
b2JhbE9iamVjdCwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkubGlua0FuZEV2YWx1
YXRlTW9kdWxlUHVibGljTmFtZSgpKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7
IH0pOwogICAgIGF1dG8gY2FsbERhdGEgPSBKU0M6OmdldENhbGxEYXRhKHZtLCBmdW5jdGlvbik7
CiAgICAgQVNTRVJUKGNhbGxEYXRhLnR5cGUgIT0gQ2FsbERhdGE6OlR5cGU6Ok5vbmUpOwpAQCAt
MjI0LDcgKzIyNCw3IEBAIEpTSW50ZXJuYWxQcm9taXNlKiBKU01vZHVsZUxvYWRlcjo6cmVxdWUK
ICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwogCi0gICAgYXV0byogZnVuY3Rpb24gPSBqc0Nhc3Q8SlNPYmpl
Y3QqPihnZXQoZ2xvYmFsT2JqZWN0LCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5y
ZXF1ZXN0SW1wb3J0TW9kdWxlUHVibGljTmFtZSgpKSk7CisgICAgYXV0byogZnVuY3Rpb24gPSBn
ZXRBczxKU09iamVjdCo+KGdsb2JhbE9iamVjdCwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5h
bWVzKCkucmVxdWVzdEltcG9ydE1vZHVsZVB1YmxpY05hbWUoKSk7CiAgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgbnVsbHB0cik7CiAgICAgYXV0byBjYWxsRGF0YSA9IEpTQzo6Z2V0Q2Fs
bERhdGEodm0sIGZ1bmN0aW9uKTsKICAgICBBU1NFUlQoY2FsbERhdGEudHlwZSAhPSBDYWxsRGF0
YTo6VHlwZTo6Tm9uZSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09i
amVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2Jq
ZWN0LmgJKHJldmlzaW9uIDI3Njg0MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTE1Miw2ICsxNTIsOSBAQCBwdWJsaWM6CiAg
ICAgSlNWYWx1ZSBnZXQoSlNHbG9iYWxPYmplY3QqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUpIGNv
bnN0OwogICAgIEpTVmFsdWUgZ2V0KEpTR2xvYmFsT2JqZWN0KiwgdWludDY0X3QgcHJvcGVydHlO
YW1lKSBjb25zdDsKIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFByb3BlcnR5
TmFtZVR5cGU+CisgICAgVCBnZXRBcyhKU0dsb2JhbE9iamVjdCosIFByb3BlcnR5TmFtZVR5cGUp
IGNvbnN0OworCiAgICAgdGVtcGxhdGU8Ym9vbCBjaGVja051bGxTdHJ1Y3R1cmUgPSBmYWxzZT4K
ICAgICBib29sIGdldFByb3BlcnR5U2xvdChKU0dsb2JhbE9iamVjdCosIFByb3BlcnR5TmFtZSwg
UHJvcGVydHlTbG90Jik7CiAgICAgYm9vbCBnZXRQcm9wZXJ0eVNsb3QoSlNHbG9iYWxPYmplY3Qq
LCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpOwpAQCAtMTUxNyw2ICsxNTIw
LDE4IEBAIGlubGluZSBKU1ZhbHVlIEpTT2JqZWN0OjpnZXQoSlNHbG9iYWxPYmoKICAgICByZXR1
cm4ganNVbmRlZmluZWQoKTsKIH0KIAordGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgUHJv
cGVydHlOYW1lVHlwZT4KK2lubGluZSBUIEpTT2JqZWN0OjpnZXRBcyhKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBQcm9wZXJ0eU5hbWVUeXBlIHByb3BlcnR5TmFtZSkgY29uc3QKK3sKKyAg
ICBKU1ZhbHVlIHZhbHVlID0gZ2V0KGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lKTsKKyNpZiBB
U1NFUlRfRU5BQkxFRCB8fCBFTkFCTEUoU0VDVVJJVFlfQVNTRVJUSU9OUykKKyAgICBWTSYgdm0g
PSBnZXRWTShnbG9iYWxPYmplY3QpOworICAgIGlmICh2bS5leGNlcHRpb25Gb3JJbnNwZWN0aW9u
KCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworI2VuZGlmCisgICAgcmV0dXJuIGpzQ2FzdDxU
Pih2YWx1ZSk7Cit9CisKIGlubGluZSBib29sIEpTT2JqZWN0OjpwdXREaXJlY3QoVk0mIHZtLCBQ
cm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCB1bnNpZ25lZCBhdHRyaWJ1
dGVzKQogewogICAgIEFTU0VSVCghdmFsdWUuaXNHZXR0ZXJTZXR0ZXIoKSAmJiAhKGF0dHJpYnV0
ZXMgJiBQcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNzb3IpKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlLmNwcAkocmV2aXNpb24gMjc2ODQzKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTE5LDExICsxMTksMTEgQEAgSlNQcm9taXNlOjpEZWZlcnJlZERhdGEgSlNQcm9taXNlOjpj
cmVhdAogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAKICAgICBEZWZlcnJl
ZERhdGEgcmVzdWx0OwotICAgIHJlc3VsdC5wcm9taXNlID0ganNDYXN0PEpTUHJvbWlzZSo+KGRl
ZmVycmVkLmdldChnbG9iYWxPYmplY3QsIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygp
LnByb21pc2VQcml2YXRlTmFtZSgpKSk7CisgICAgcmVzdWx0LnByb21pc2UgPSBkZWZlcnJlZC5n
ZXRBczxKU1Byb21pc2UqPihnbG9iYWxPYmplY3QsIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5O
YW1lcygpLnByb21pc2VQcml2YXRlTmFtZSgpKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCB7IH0pOwotICAgIHJlc3VsdC5yZXNvbHZlID0ganNDYXN0PEpTRnVuY3Rpb24qPihkZWZl
cnJlZC5nZXQoZ2xvYmFsT2JqZWN0LCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5y
ZXNvbHZlUHJpdmF0ZU5hbWUoKSkpOworICAgIHJlc3VsdC5yZXNvbHZlID0gZGVmZXJyZWQuZ2V0
QXM8SlNGdW5jdGlvbio+KGdsb2JhbE9iamVjdCwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5h
bWVzKCkucmVzb2x2ZVByaXZhdGVOYW1lKCkpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIHsgfSk7Ci0gICAgcmVzdWx0LnJlamVjdCA9IGpzQ2FzdDxKU0Z1bmN0aW9uKj4oZGVmZXJy
ZWQuZ2V0KGdsb2JhbE9iamVjdCwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucmVq
ZWN0UHJpdmF0ZU5hbWUoKSkpOworICAgIHJlc3VsdC5yZWplY3QgPSBkZWZlcnJlZC5nZXRBczxK
U0Z1bmN0aW9uKj4oZ2xvYmFsT2JqZWN0LCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMo
KS5yZWplY3RQcml2YXRlTmFtZSgpKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7
IH0pOwogCiAgICAgcmV0dXJuIHJlc3VsdDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1ZNLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Vk0uaAkocmV2aXNpb24gMjc2ODQzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Vk0uaAkod29ya2luZyBjb3B5KQpAQCAtODg3LDggKzg4Nyw4IEBAIHB1YmxpYzoKICAgICBFeGNl
cHRpb24qIGxhc3RFeGNlcHRpb24oKSBjb25zdCB7IHJldHVybiBtX2xhc3RFeGNlcHRpb247IH0K
ICAgICBKU0NlbGwqKiBhZGRyZXNzT2ZMYXN0RXhjZXB0aW9uKCkgeyByZXR1cm4gcmVpbnRlcnBy
ZXRfY2FzdDxKU0NlbGwqKj4oJm1fbGFzdEV4Y2VwdGlvbik7IH0KIAotICAgIC8vIFRoaXMgc2hv
dWxkIG9ubHkgYmUgdXNlZCBmb3IgdGVzdCBvciBhc3NlcnRpb24gY29kZSB0aGF0IHdhbnRzIHRv
IGluc3BlY3QKLSAgICAvLyB0aGUgcGVuZGluZyBleGNlcHRpb24gd2l0aG91dCBpbnRlcmZlcmlu
ZyB3aXRoIFRocm93L0NhdGNoU2NvcGVzLgorICAgIC8vIFRoaXMgc2hvdWxkIG9ubHkgYmUgdXNl
ZCBmb3IgY29kZSB0aGF0IHdhbnRzIHRvIGNoZWNrIGZvciBhbnkgcGVuZGluZworICAgIC8vIGV4
Y2VwdGlvbiB3aXRob3V0IGludGVyZmVyaW5nIHdpdGggVGhyb3cvQ2F0Y2hTY29wZXMuCiAgICAg
RXhjZXB0aW9uKiBleGNlcHRpb25Gb3JJbnNwZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9leGNl
cHRpb247IH0KIAogICAgIHZvaWQgc2V0RmFpbE5leHROZXdDb2RlQmxvY2soKSB7IG1fZmFpbE5l
eHROZXdDb2RlQmxvY2sgPSB0cnVlOyB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427486</attachid>
            <date>2021-04-30 20:25:07 -0700</date>
            <delta_ts>2021-04-30 20:51:25 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-225264.patch</filename>
            <type>text/plain</type>
            <size>13652</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjc2ODcwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM5IEBA
CisyMDIxLTA0LTMwICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgc29tZSBtaXNzaW5nIGV4Y2VwdGlvbiBjaGVja3MgYmVmb3JlIHNvbWUganNDYXN0cy4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTI2NAorICAg
ICAgICByZGFyOi8vNzczODE2MDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBJbnRyb2R1Y2luZyBKU09iamVjdDo6Z2V0QXMoKSBhbmQgSlNWYWx1ZTo6
Z2V0QXMoKSBjb252ZW5pZW5jZSBtZXRob2RzIHRoYXQgd2lsbAorICAgICAgICBjaGVjayBmb3Ig
YW4gZXhjZXB0aW9uIGJlZm9yZSBkb2luZyBhIGpzQ2FzdCBvbiB0aGUgZ2V0IHJlc3VsdC4gIFdl
IG9ubHkgbmVlZCB0aGlzCisgICAgICAgIHRvIHBsYWNhdGUgdGhlIGFzc2VydGlvbiBpbiBqc0Nh
c3QgaW4gdGhlIGV2ZW50IGEgcGVuZGluZyBleGNlcHRpb24gZXhpc3RzIGF0IHRoZQorICAgICAg
ICB0aW1lIG9mIHRoZSBqc0Nhc3QuICBPbiBBU1NFUlRzIGFyZSBub3QgZW5hYmxlZCwgdGhpcyB3
aWxsIGJlIGEgbm8tb3AuICBBbGwgY2xpZW50cworICAgICAgICB0aGF0IHVzZSBqc0Nhc3QgdGhp
cyB3YXkgKGFuZCBub3cgdXNlIGdldEFzIGluc3RlYWQpIHdpbGwgYWxyZWFkeSBiZSBkb2luZyBh
bgorICAgICAgICBleGNlcHRpb24gY2hlY2sgaW1tZWRpYXRlbHkgYWZ0ZXIuICBIZW5jZSwgdGhl
eSBhcmUgYWxyZWFkeSBkb2luZyB0aGUgcmlnaHQgdGhpbmcKKyAgICAgICAgaW4gdGVybXMgb2Yg
aGFuZGxpbmcgZXhjZXB0aW9ucy4gIFdlJ3JlIG9ubHkgcGxhY2F0aW5nIHRoZSBqc0Nhc3QgYXNz
ZXJ0aW9uIGhlcmUuCisKKyAgICAgICAgKiBydW50aW1lL0Fic3RyYWN0TW9kdWxlUmVjb3JkLmNw
cDoKKyAgICAgICAgKEpTQzo6QWJzdHJhY3RNb2R1bGVSZWNvcmQ6Omhvc3RSZXNvbHZlSW1wb3J0
ZWRNb2R1bGUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNDSlNWYWx1ZS5oOgorICAgICAgICAqIHJ1
bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaDoKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6Z2V0QXMg
Y29uc3QpOgorICAgICAgICAqIHJ1bnRpbWUvSlNJbnRlcm5hbFByb21pc2UuY3BwOgorICAgICAg
ICAoSlNDOjpKU0ludGVybmFsUHJvbWlzZTo6dGhlbik6CisgICAgICAgICogcnVudGltZS9KU01v
ZHVsZUxvYWRlci5jcHA6CisgICAgICAgIChKU0M6OkpTTW9kdWxlTG9hZGVyOjpkZXBlbmRlbmN5
S2V5c0lmRXZhbHVhdGVkKToKKyAgICAgICAgKEpTQzo6SlNNb2R1bGVMb2FkZXI6OnByb3ZpZGVG
ZXRjaCk6CisgICAgICAgIChKU0M6OkpTTW9kdWxlTG9hZGVyOjpsb2FkQW5kRXZhbHVhdGVNb2R1
bGUpOgorICAgICAgICAoSlNDOjpKU01vZHVsZUxvYWRlcjo6bG9hZE1vZHVsZSk6CisgICAgICAg
IChKU0M6OkpTTW9kdWxlTG9hZGVyOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGUpOgorICAgICAgICAo
SlNDOjpKU01vZHVsZUxvYWRlcjo6cmVxdWVzdEltcG9ydE1vZHVsZSk6CisgICAgICAgICogcnVu
dGltZS9KU09iamVjdC5oOgorICAgICAgICAoSlNDOjpKU09iamVjdDo6Z2V0QXMgY29uc3QpOgor
ICAgICAgICAqIHJ1bnRpbWUvSlNQcm9taXNlLmNwcDoKKyAgICAgICAgKEpTQzo6SlNQcm9taXNl
OjpjcmVhdGVEZWZlcnJlZERhdGEpOgorICAgICAgICAqIHJ1bnRpbWUvVk0uaDoKKwogMjAyMS0w
NC0zMCAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2Ugc21h
bGwgSklUIHBvb2wgdGVzdHMgcGFzcyBvbiBBUwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQWJzdHJhY3RNb2R1bGVSZWNvcmQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0Fic3RyYWN0TW9kdWxlUmVjb3JkLmNwcAkocmV2aXNpb24g
Mjc2ODQzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQWJzdHJhY3RNb2R1bGVS
ZWNvcmQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTYsNyArMTU2LDcgQEAgQWJzdHJhY3RNb2R1
bGVSZWNvcmQqIEFic3RyYWN0TW9kdWxlUmVjbwogICAgIEpTVmFsdWUgbW9kdWxlTmFtZVZhbHVl
ID0gaWRlbnRpZmllclRvSlNWYWx1ZSh2bSwgbW9kdWxlTmFtZSk7CiAgICAgSlNWYWx1ZSBlbnRy
eSA9IG1fZGVwZW5kZW5jaWVzTWFwLT5KU01hcDo6Z2V0KGdsb2JhbE9iamVjdCwgbW9kdWxlTmFt
ZVZhbHVlKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKLSAgICBS
RUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIGpzQ2FzdDxBYnN0cmFjdE1vZHVsZVJlY29yZCo+KGVu
dHJ5LmdldChnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJtb2R1bGUi
KSkpKTsKKyAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIGVudHJ5LmdldEFzPEFic3RyYWN0
TW9kdWxlUmVjb3JkKj4oZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAi
bW9kdWxlIikpKTsKIH0KIAogYXV0byBBYnN0cmFjdE1vZHVsZVJlY29yZDo6cmVzb2x2ZUltcG9y
dChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBJZGVudGlmaWVyJiBsb2NhbE5h
bWUpIC0+IFJlc29sdXRpb24KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
Q0pTVmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0NKU1ZhbHVlLmgJKHJldmlzaW9uIDI3Njg0MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQ0pTVmFsdWUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw3ICsxLDcgQEAKIC8qCiAg
KiAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDEgSGFycmkgUG9ydGVuIChwb3J0ZW5Aa2RlLm9yZykK
ICAqICBDb3B5cmlnaHQgKEMpIDIwMDEgUGV0ZXIgS2VsbHkgKHBta0Bwb3N0LmNvbSkKLSAqICBD
b3B5cmlnaHQgKEMpIDIwMDMtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiAgQ29weXJpZ2h0IChDKSAyMDAzLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTMxNiw2ICszMTYsOSBAQCBwdWJsaWM6CiAgICAg
SlNWYWx1ZSBnZXQoSlNHbG9iYWxPYmplY3QqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3Bl
cnR5U2xvdCYpIGNvbnN0OwogICAgIEpTVmFsdWUgZ2V0KEpTR2xvYmFsT2JqZWN0KiwgdWludDY0
X3QgcHJvcGVydHlOYW1lKSBjb25zdDsKIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVu
YW1lIFByb3BlcnR5TmFtZVR5cGU+CisgICAgVCBnZXRBcyhKU0dsb2JhbE9iamVjdCosIFByb3Bl
cnR5TmFtZVR5cGUpIGNvbnN0OworCiAgICAgYm9vbCBnZXRQcm9wZXJ0eVNsb3QoSlNHbG9iYWxP
YmplY3QqLCBQcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpIGNvbnN0OwogICAgIHRlbXBsYXRl
PHR5cGVuYW1lIENhbGxiYWNrV2hlbk5vRXhjZXB0aW9uPiB0eXBlbmFtZSBzdGQ6OnJlc3VsdF9v
ZjxDYWxsYmFja1doZW5Ob0V4Y2VwdGlvbihib29sLCBQcm9wZXJ0eVNsb3QmKT46OnR5cGUgZ2V0
UHJvcGVydHlTbG90KEpTR2xvYmFsT2JqZWN0KiwgUHJvcGVydHlOYW1lLCBDYWxsYmFja1doZW5O
b0V4Y2VwdGlvbikgY29uc3Q7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2FsbGJhY2tXaGVuTm9F
eGNlcHRpb24+IHR5cGVuYW1lIHN0ZDo6cmVzdWx0X29mPENhbGxiYWNrV2hlbk5vRXhjZXB0aW9u
KGJvb2wsIFByb3BlcnR5U2xvdCYpPjo6dHlwZSBnZXRQcm9wZXJ0eVNsb3QoSlNHbG9iYWxPYmpl
Y3QqLCBQcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYsIENhbGxiYWNrV2hlbk5vRXhjZXB0aW9u
KSBjb25zdDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWVJ
bmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlND
SlNWYWx1ZUlubGluZXMuaAkocmV2aXNpb24gMjc2ODQzKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEwNDUs
NiArMTA0NSwxOCBAQCBBTFdBWVNfSU5MSU5FIEpTVmFsdWUgSlNWYWx1ZTo6Z2V0KEpTR2xvCiAg
ICAgcmV0dXJuIGdldChnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb20oZ2V0Vk0oZ2xvYmFs
T2JqZWN0KSwgc3RhdGljX2Nhc3Q8ZG91YmxlPihwcm9wZXJ0eU5hbWUpKSk7CiB9CiAKK3RlbXBs
YXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFByb3BlcnR5TmFtZVR5cGU+CitBTFdBWVNfSU5MSU5F
IFQgSlNWYWx1ZTo6Z2V0QXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUHJvcGVydHlO
YW1lVHlwZSBwcm9wZXJ0eU5hbWUpIGNvbnN0Cit7CisgICAgSlNWYWx1ZSB2YWx1ZSA9IGdldChn
bG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSk7CisjaWYgQVNTRVJUX0VOQUJMRUQgfHwgRU5BQkxF
KFNFQ1VSSVRZX0FTU0VSVElPTlMpCisgICAgVk0mIHZtID0gZ2V0Vk0oZ2xvYmFsT2JqZWN0KTsK
KyAgICBpZiAodm0uZXhjZXB0aW9uRm9ySW5zcGVjdGlvbigpKQorICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKyNlbmRpZgorICAgIHJldHVybiBqc0Nhc3Q8VD4odmFsdWUpOworfQorCiBpbmxpbmUg
Ym9vbCBKU1ZhbHVlOjpwdXQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUHJvcGVydHlO
YW1lIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQog
ewogICAgIGlmIChVTkxJS0VMWSghaXNDZWxsKCkpKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlLmNwcAkocmV2aXNpb24gMjc2
ODQzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2Uu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxNS0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjAsNyArNjAsNyBAQCBKU0ludGVybmFsUHJvbWlzZSog
SlNJbnRlcm5hbFByb21pc2U6OnRoCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAotICAgIEpTT2JqZWN0
KiBmdW5jdGlvbiA9IGpzQ2FzdDxKU09iamVjdCo+KGdldChnbG9iYWxPYmplY3QsIHZtLnByb3Bl
cnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnRoZW5QdWJsaWNOYW1lKCkpKTsKKyAgICBKU09iamVj
dCogZnVuY3Rpb24gPSBnZXRBczxKU09iamVjdCo+KGdsb2JhbE9iamVjdCwgdm0ucHJvcGVydHlO
YW1lcy0+YnVpbHRpbk5hbWVzKCkudGhlblB1YmxpY05hbWUoKSk7CiAgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgbnVsbHB0cik7CiAgICAgYXV0byBjYWxsRGF0YSA9IEpTQzo6Z2V0Q2Fs
bERhdGEodm0sIGZ1bmN0aW9uKTsKICAgICBBU1NFUlQoY2FsbERhdGEudHlwZSAhPSBDYWxsRGF0
YTo6VHlwZTo6Tm9uZSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01v
ZHVsZUxvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNNb2R1bGVMb2FkZXIuY3BwCShyZXZpc2lvbiAyNzY4NDMpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU01vZHVsZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEy
Niw3ICsxMjYsNyBAQCBKU0FycmF5KiBKU01vZHVsZUxvYWRlcjo6ZGVwZW5kZW5jeUtleXNJCiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKIAotICAgIEpTT2JqZWN0KiBmdW5jdGlvbiA9IGpzQ2FzdDxKU09i
amVjdCo+KGdldChnbG9iYWxPYmplY3QsIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygp
LmRlcGVuZGVuY3lLZXlzSWZFdmFsdWF0ZWRQdWJsaWNOYW1lKCkpKTsKKyAgICBKU09iamVjdCog
ZnVuY3Rpb24gPSBnZXRBczxKU09iamVjdCo+KGdsb2JhbE9iamVjdCwgdm0ucHJvcGVydHlOYW1l
cy0+YnVpbHRpbk5hbWVzKCkuZGVwZW5kZW5jeUtleXNJZkV2YWx1YXRlZFB1YmxpY05hbWUoKSk7
CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CiAgICAgYXV0byBjYWxs
RGF0YSA9IEpTQzo6Z2V0Q2FsbERhdGEodm0sIGZ1bmN0aW9uKTsKICAgICBBU1NFUlQoY2FsbERh
dGEudHlwZSAhPSBDYWxsRGF0YTo6VHlwZTo6Tm9uZSk7CkBAIC0xNDUsNyArMTQ1LDcgQEAgSlNW
YWx1ZSBKU01vZHVsZUxvYWRlcjo6cHJvdmlkZUZldGNoKEpTRwogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CiAKLSAgICBKU09iamVjdCogZnVuY3Rpb24gPSBqc0Nhc3Q8SlNPYmplY3QqPihnZXQoZ2xvYmFs
T2JqZWN0LCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5wcm92aWRlRmV0Y2hQdWJs
aWNOYW1lKCkpKTsKKyAgICBKU09iamVjdCogZnVuY3Rpb24gPSBnZXRBczxKU09iamVjdCo+KGds
b2JhbE9iamVjdCwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucHJvdmlkZUZldGNo
UHVibGljTmFtZSgpKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogICAg
IGF1dG8gY2FsbERhdGEgPSBKU0M6OmdldENhbGxEYXRhKHZtLCBmdW5jdGlvbik7CiAgICAgQVNT
RVJUKGNhbGxEYXRhLnR5cGUgIT0gQ2FsbERhdGE6OlR5cGU6Ok5vbmUpOwpAQCAtMTY0LDcgKzE2
NCw3IEBAIEpTSW50ZXJuYWxQcm9taXNlKiBKU01vZHVsZUxvYWRlcjo6bG9hZEEKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwogCi0gICAgSlNPYmplY3QqIGZ1bmN0aW9uID0ganNDYXN0PEpTT2JqZWN0Kj4o
Z2V0KGdsb2JhbE9iamVjdCwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkubG9hZEFu
ZEV2YWx1YXRlTW9kdWxlUHVibGljTmFtZSgpKSk7CisgICAgSlNPYmplY3QqIGZ1bmN0aW9uID0g
Z2V0QXM8SlNPYmplY3QqPihnbG9iYWxPYmplY3QsIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5O
YW1lcygpLmxvYWRBbmRFdmFsdWF0ZU1vZHVsZVB1YmxpY05hbWUoKSk7CiAgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CiAgICAgYXV0byBjYWxsRGF0YSA9IEpTQzo6Z2V0
Q2FsbERhdGEodm0sIGZ1bmN0aW9uKTsKICAgICBBU1NFUlQoY2FsbERhdGEudHlwZSAhPSBDYWxs
RGF0YTo6VHlwZTo6Tm9uZSk7CkBAIC0xODUsNyArMTg1LDcgQEAgSlNJbnRlcm5hbFByb21pc2Uq
IEpTTW9kdWxlTG9hZGVyOjpsb2FkTQogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKLSAgICBKU09iamVj
dCogZnVuY3Rpb24gPSBqc0Nhc3Q8SlNPYmplY3QqPihnZXQoZ2xvYmFsT2JqZWN0LCB2bS5wcm9w
ZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5sb2FkTW9kdWxlUHVibGljTmFtZSgpKSk7CisgICAg
SlNPYmplY3QqIGZ1bmN0aW9uID0gZ2V0QXM8SlNPYmplY3QqPihnbG9iYWxPYmplY3QsIHZtLnBy
b3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmxvYWRNb2R1bGVQdWJsaWNOYW1lKCkpOwogICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwogICAgIGF1dG8gY2FsbERhdGEg
PSBKU0M6OmdldENhbGxEYXRhKHZtLCBmdW5jdGlvbik7CiAgICAgQVNTRVJUKGNhbGxEYXRhLnR5
cGUgIT0gQ2FsbERhdGE6OlR5cGU6Ok5vbmUpOwpAQCAtMjA2LDcgKzIwNiw3IEBAIEpTVmFsdWUg
SlNNb2R1bGVMb2FkZXI6OmxpbmtBbmRFdmFsdWF0ZU0KICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCi0g
ICAgSlNPYmplY3QqIGZ1bmN0aW9uID0ganNDYXN0PEpTT2JqZWN0Kj4oZ2V0KGdsb2JhbE9iamVj
dCwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkubGlua0FuZEV2YWx1YXRlTW9kdWxl
UHVibGljTmFtZSgpKSk7CisgICAgSlNPYmplY3QqIGZ1bmN0aW9uID0gZ2V0QXM8SlNPYmplY3Qq
PihnbG9iYWxPYmplY3QsIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmxpbmtBbmRF
dmFsdWF0ZU1vZHVsZVB1YmxpY05hbWUoKSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgeyB9KTsKICAgICBhdXRvIGNhbGxEYXRhID0gSlNDOjpnZXRDYWxsRGF0YSh2bSwgZnVuY3Rp
b24pOwogICAgIEFTU0VSVChjYWxsRGF0YS50eXBlICE9IENhbGxEYXRhOjpUeXBlOjpOb25lKTsK
QEAgLTIyNCw3ICsyMjQsNyBAQCBKU0ludGVybmFsUHJvbWlzZSogSlNNb2R1bGVMb2FkZXI6OnJl
cXVlCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAotICAgIGF1dG8qIGZ1bmN0aW9uID0ganNDYXN0PEpT
T2JqZWN0Kj4oZ2V0KGdsb2JhbE9iamVjdCwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVz
KCkucmVxdWVzdEltcG9ydE1vZHVsZVB1YmxpY05hbWUoKSkpOworICAgIGF1dG8qIGZ1bmN0aW9u
ID0gZ2V0QXM8SlNPYmplY3QqPihnbG9iYWxPYmplY3QsIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0
aW5OYW1lcygpLnJlcXVlc3RJbXBvcnRNb2R1bGVQdWJsaWNOYW1lKCkpOwogICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwogICAgIGF1dG8gY2FsbERhdGEgPSBKU0M6Omdl
dENhbGxEYXRhKHZtLCBmdW5jdGlvbik7CiAgICAgQVNTRVJUKGNhbGxEYXRhLnR5cGUgIT0gQ2Fs
bERhdGE6OlR5cGU6Ok5vbmUpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U09iamVjdC5oCShyZXZpc2lvbiAyNzY4NDMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU09iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNTIsNiArMTUyLDkgQEAgcHVibGlj
OgogICAgIEpTVmFsdWUgZ2V0KEpTR2xvYmFsT2JqZWN0KiwgdW5zaWduZWQgcHJvcGVydHlOYW1l
KSBjb25zdDsKICAgICBKU1ZhbHVlIGdldChKU0dsb2JhbE9iamVjdCosIHVpbnQ2NF90IHByb3Bl
cnR5TmFtZSkgY29uc3Q7CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBQcm9w
ZXJ0eU5hbWVUeXBlPgorICAgIFQgZ2V0QXMoSlNHbG9iYWxPYmplY3QqLCBQcm9wZXJ0eU5hbWVU
eXBlKSBjb25zdDsKKwogICAgIHRlbXBsYXRlPGJvb2wgY2hlY2tOdWxsU3RydWN0dXJlID0gZmFs
c2U+CiAgICAgYm9vbCBnZXRQcm9wZXJ0eVNsb3QoSlNHbG9iYWxPYmplY3QqLCBQcm9wZXJ0eU5h
bWUsIFByb3BlcnR5U2xvdCYpOwogICAgIGJvb2wgZ2V0UHJvcGVydHlTbG90KEpTR2xvYmFsT2Jq
ZWN0KiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKQEAgLTE1MTcsNiAr
MTUyMCwxOCBAQCBpbmxpbmUgSlNWYWx1ZSBKU09iamVjdDo6Z2V0KEpTR2xvYmFsT2JqCiAgICAg
cmV0dXJuIGpzVW5kZWZpbmVkKCk7CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1l
IFByb3BlcnR5TmFtZVR5cGU+CitpbmxpbmUgVCBKU09iamVjdDo6Z2V0QXMoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgUHJvcGVydHlOYW1lVHlwZSBwcm9wZXJ0eU5hbWUpIGNvbnN0Cit7
CisgICAgSlNWYWx1ZSB2YWx1ZSA9IGdldChnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSk7Cisj
aWYgQVNTRVJUX0VOQUJMRUQgfHwgRU5BQkxFKFNFQ1VSSVRZX0FTU0VSVElPTlMpCisgICAgVk0m
IHZtID0gZ2V0Vk0oZ2xvYmFsT2JqZWN0KTsKKyAgICBpZiAodm0uZXhjZXB0aW9uRm9ySW5zcGVj
dGlvbigpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyNlbmRpZgorICAgIHJldHVybiBqc0Nh
c3Q8VD4odmFsdWUpOworfQorCiBpbmxpbmUgYm9vbCBKU09iamVjdDo6cHV0RGlyZWN0KFZNJiB2
bSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgdW5zaWduZWQgYXR0
cmlidXRlcykKIHsKICAgICBBU1NFUlQoIXZhbHVlLmlzR2V0dGVyU2V0dGVyKCkgJiYgIShhdHRy
aWJ1dGVzICYgUHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vzc29yKSk7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZS5jcHAJKHJldmlzaW9uIDI3Njg0MykKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTExOSwxMSArMTE5LDExIEBAIEpTUHJvbWlzZTo6RGVmZXJyZWREYXRhIEpTUHJvbWlz
ZTo6Y3JlYXQKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogCiAgICAgRGVm
ZXJyZWREYXRhIHJlc3VsdDsKLSAgICByZXN1bHQucHJvbWlzZSA9IGpzQ2FzdDxKU1Byb21pc2Uq
PihkZWZlcnJlZC5nZXQoZ2xvYmFsT2JqZWN0LCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFt
ZXMoKS5wcm9taXNlUHJpdmF0ZU5hbWUoKSkpOworICAgIHJlc3VsdC5wcm9taXNlID0gZGVmZXJy
ZWQuZ2V0QXM8SlNQcm9taXNlKj4oZ2xvYmFsT2JqZWN0LCB2bS5wcm9wZXJ0eU5hbWVzLT5idWls
dGluTmFtZXMoKS5wcm9taXNlUHJpdmF0ZU5hbWUoKSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElP
TihzY29wZSwgeyB9KTsKLSAgICByZXN1bHQucmVzb2x2ZSA9IGpzQ2FzdDxKU0Z1bmN0aW9uKj4o
ZGVmZXJyZWQuZ2V0KGdsb2JhbE9iamVjdCwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVz
KCkucmVzb2x2ZVByaXZhdGVOYW1lKCkpKTsKKyAgICByZXN1bHQucmVzb2x2ZSA9IGRlZmVycmVk
LmdldEFzPEpTRnVuY3Rpb24qPihnbG9iYWxPYmplY3QsIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0
aW5OYW1lcygpLnJlc29sdmVQcml2YXRlTmFtZSgpKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCB7IH0pOwotICAgIHJlc3VsdC5yZWplY3QgPSBqc0Nhc3Q8SlNGdW5jdGlvbio+KGRl
ZmVycmVkLmdldChnbG9iYWxPYmplY3QsIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygp
LnJlamVjdFByaXZhdGVOYW1lKCkpKTsKKyAgICByZXN1bHQucmVqZWN0ID0gZGVmZXJyZWQuZ2V0
QXM8SlNGdW5jdGlvbio+KGdsb2JhbE9iamVjdCwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5h
bWVzKCkucmVqZWN0UHJpdmF0ZU5hbWUoKSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgeyB9KTsKIAogICAgIHJldHVybiByZXN1bHQ7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9WTS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1ZNLmgJKHJldmlzaW9uIDI3Njg0MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1ZNLmgJKHdvcmtpbmcgY29weSkKQEAgLTg4Nyw4ICs4ODcsOCBAQCBwdWJsaWM6CiAgICAg
RXhjZXB0aW9uKiBsYXN0RXhjZXB0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9sYXN0RXhjZXB0aW9u
OyB9CiAgICAgSlNDZWxsKiogYWRkcmVzc09mTGFzdEV4Y2VwdGlvbigpIHsgcmV0dXJuIHJlaW50
ZXJwcmV0X2Nhc3Q8SlNDZWxsKio+KCZtX2xhc3RFeGNlcHRpb24pOyB9CiAKLSAgICAvLyBUaGlz
IHNob3VsZCBvbmx5IGJlIHVzZWQgZm9yIHRlc3Qgb3IgYXNzZXJ0aW9uIGNvZGUgdGhhdCB3YW50
cyB0byBpbnNwZWN0Ci0gICAgLy8gdGhlIHBlbmRpbmcgZXhjZXB0aW9uIHdpdGhvdXQgaW50ZXJm
ZXJpbmcgd2l0aCBUaHJvdy9DYXRjaFNjb3Blcy4KKyAgICAvLyBUaGlzIHNob3VsZCBvbmx5IGJl
IHVzZWQgZm9yIGNvZGUgdGhhdCB3YW50cyB0byBjaGVjayBmb3IgYW55IHBlbmRpbmcKKyAgICAv
LyBleGNlcHRpb24gd2l0aG91dCBpbnRlcmZlcmluZyB3aXRoIFRocm93L0NhdGNoU2NvcGVzLgog
ICAgIEV4Y2VwdGlvbiogZXhjZXB0aW9uRm9ySW5zcGVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1f
ZXhjZXB0aW9uOyB9CiAKICAgICB2b2lkIHNldEZhaWxOZXh0TmV3Q29kZUJsb2NrKCkgeyBtX2Zh
aWxOZXh0TmV3Q29kZUJsb2NrID0gdHJ1ZTsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427488</attachid>
            <date>2021-04-30 20:51:25 -0700</date>
            <delta_ts>2021-05-03 08:55:03 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-225264.patch</filename>
            <type>text/plain</type>
            <size>13652</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjc2ODcwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM5IEBA
CisyMDIxLTA0LTMwICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgc29tZSBtaXNzaW5nIGV4Y2VwdGlvbiBjaGVja3MgYmVmb3JlIHNvbWUganNDYXN0cy4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTI2NAorICAg
ICAgICByZGFyOi8vNzczODE2MDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBJbnRyb2R1Y2luZyBKU09iamVjdDo6Z2V0QXMoKSBhbmQgSlNWYWx1ZTo6
Z2V0QXMoKSBjb252ZW5pZW5jZSBtZXRob2RzIHRoYXQgd2lsbAorICAgICAgICBjaGVjayBmb3Ig
YW4gZXhjZXB0aW9uIGJlZm9yZSBkb2luZyBhIGpzQ2FzdCBvbiB0aGUgZ2V0IHJlc3VsdC4gIFdl
IG9ubHkgbmVlZCB0aGlzCisgICAgICAgIHRvIHBsYWNhdGUgdGhlIGFzc2VydGlvbiBpbiBqc0Nh
c3QgaW4gdGhlIGV2ZW50IGEgcGVuZGluZyBleGNlcHRpb24gZXhpc3RzIGF0IHRoZQorICAgICAg
ICB0aW1lIG9mIHRoZSBqc0Nhc3QuICBJZiBBU1NFUlRzIGFyZSBub3QgZW5hYmxlZCwgdGhpcyB3
aWxsIGJlIGEgbm8tb3AuICBBbGwgY2xpZW50cworICAgICAgICB0aGF0IHVzZSBqc0Nhc3QgdGhp
cyB3YXkgKGFuZCBub3cgdXNlIGdldEFzIGluc3RlYWQpIHdpbGwgYWxyZWFkeSBiZSBkb2luZyBh
bgorICAgICAgICBleGNlcHRpb24gY2hlY2sgaW1tZWRpYXRlbHkgYWZ0ZXIuICBIZW5jZSwgdGhl
eSBhcmUgYWxyZWFkeSBkb2luZyB0aGUgcmlnaHQgdGhpbmcKKyAgICAgICAgaW4gdGVybXMgb2Yg
aGFuZGxpbmcgZXhjZXB0aW9ucy4gIFdlJ3JlIG9ubHkgcGxhY2F0aW5nIHRoZSBqc0Nhc3QgYXNz
ZXJ0aW9uIGhlcmUuCisKKyAgICAgICAgKiBydW50aW1lL0Fic3RyYWN0TW9kdWxlUmVjb3JkLmNw
cDoKKyAgICAgICAgKEpTQzo6QWJzdHJhY3RNb2R1bGVSZWNvcmQ6Omhvc3RSZXNvbHZlSW1wb3J0
ZWRNb2R1bGUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNDSlNWYWx1ZS5oOgorICAgICAgICAqIHJ1
bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaDoKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6Z2V0QXMg
Y29uc3QpOgorICAgICAgICAqIHJ1bnRpbWUvSlNJbnRlcm5hbFByb21pc2UuY3BwOgorICAgICAg
ICAoSlNDOjpKU0ludGVybmFsUHJvbWlzZTo6dGhlbik6CisgICAgICAgICogcnVudGltZS9KU01v
ZHVsZUxvYWRlci5jcHA6CisgICAgICAgIChKU0M6OkpTTW9kdWxlTG9hZGVyOjpkZXBlbmRlbmN5
S2V5c0lmRXZhbHVhdGVkKToKKyAgICAgICAgKEpTQzo6SlNNb2R1bGVMb2FkZXI6OnByb3ZpZGVG
ZXRjaCk6CisgICAgICAgIChKU0M6OkpTTW9kdWxlTG9hZGVyOjpsb2FkQW5kRXZhbHVhdGVNb2R1
bGUpOgorICAgICAgICAoSlNDOjpKU01vZHVsZUxvYWRlcjo6bG9hZE1vZHVsZSk6CisgICAgICAg
IChKU0M6OkpTTW9kdWxlTG9hZGVyOjpsaW5rQW5kRXZhbHVhdGVNb2R1bGUpOgorICAgICAgICAo
SlNDOjpKU01vZHVsZUxvYWRlcjo6cmVxdWVzdEltcG9ydE1vZHVsZSk6CisgICAgICAgICogcnVu
dGltZS9KU09iamVjdC5oOgorICAgICAgICAoSlNDOjpKU09iamVjdDo6Z2V0QXMgY29uc3QpOgor
ICAgICAgICAqIHJ1bnRpbWUvSlNQcm9taXNlLmNwcDoKKyAgICAgICAgKEpTQzo6SlNQcm9taXNl
OjpjcmVhdGVEZWZlcnJlZERhdGEpOgorICAgICAgICAqIHJ1bnRpbWUvVk0uaDoKKwogMjAyMS0w
NC0zMCAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2Ugc21h
bGwgSklUIHBvb2wgdGVzdHMgcGFzcyBvbiBBUwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQWJzdHJhY3RNb2R1bGVSZWNvcmQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0Fic3RyYWN0TW9kdWxlUmVjb3JkLmNwcAkocmV2aXNpb24g
Mjc2ODQzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQWJzdHJhY3RNb2R1bGVS
ZWNvcmQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTYsNyArMTU2LDcgQEAgQWJzdHJhY3RNb2R1
bGVSZWNvcmQqIEFic3RyYWN0TW9kdWxlUmVjbwogICAgIEpTVmFsdWUgbW9kdWxlTmFtZVZhbHVl
ID0gaWRlbnRpZmllclRvSlNWYWx1ZSh2bSwgbW9kdWxlTmFtZSk7CiAgICAgSlNWYWx1ZSBlbnRy
eSA9IG1fZGVwZW5kZW5jaWVzTWFwLT5KU01hcDo6Z2V0KGdsb2JhbE9iamVjdCwgbW9kdWxlTmFt
ZVZhbHVlKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKLSAgICBS
RUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIGpzQ2FzdDxBYnN0cmFjdE1vZHVsZVJlY29yZCo+KGVu
dHJ5LmdldChnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJtb2R1bGUi
KSkpKTsKKyAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIGVudHJ5LmdldEFzPEFic3RyYWN0
TW9kdWxlUmVjb3JkKj4oZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAi
bW9kdWxlIikpKTsKIH0KIAogYXV0byBBYnN0cmFjdE1vZHVsZVJlY29yZDo6cmVzb2x2ZUltcG9y
dChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBJZGVudGlmaWVyJiBsb2NhbE5h
bWUpIC0+IFJlc29sdXRpb24KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
Q0pTVmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0NKU1ZhbHVlLmgJKHJldmlzaW9uIDI3Njg0MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQ0pTVmFsdWUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw3ICsxLDcgQEAKIC8qCiAg
KiAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDEgSGFycmkgUG9ydGVuIChwb3J0ZW5Aa2RlLm9yZykK
ICAqICBDb3B5cmlnaHQgKEMpIDIwMDEgUGV0ZXIgS2VsbHkgKHBta0Bwb3N0LmNvbSkKLSAqICBD
b3B5cmlnaHQgKEMpIDIwMDMtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiAgQ29weXJpZ2h0IChDKSAyMDAzLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTMxNiw2ICszMTYsOSBAQCBwdWJsaWM6CiAgICAg
SlNWYWx1ZSBnZXQoSlNHbG9iYWxPYmplY3QqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIFByb3Bl
cnR5U2xvdCYpIGNvbnN0OwogICAgIEpTVmFsdWUgZ2V0KEpTR2xvYmFsT2JqZWN0KiwgdWludDY0
X3QgcHJvcGVydHlOYW1lKSBjb25zdDsKIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVu
YW1lIFByb3BlcnR5TmFtZVR5cGU+CisgICAgVCBnZXRBcyhKU0dsb2JhbE9iamVjdCosIFByb3Bl
cnR5TmFtZVR5cGUpIGNvbnN0OworCiAgICAgYm9vbCBnZXRQcm9wZXJ0eVNsb3QoSlNHbG9iYWxP
YmplY3QqLCBQcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYpIGNvbnN0OwogICAgIHRlbXBsYXRl
PHR5cGVuYW1lIENhbGxiYWNrV2hlbk5vRXhjZXB0aW9uPiB0eXBlbmFtZSBzdGQ6OnJlc3VsdF9v
ZjxDYWxsYmFja1doZW5Ob0V4Y2VwdGlvbihib29sLCBQcm9wZXJ0eVNsb3QmKT46OnR5cGUgZ2V0
UHJvcGVydHlTbG90KEpTR2xvYmFsT2JqZWN0KiwgUHJvcGVydHlOYW1lLCBDYWxsYmFja1doZW5O
b0V4Y2VwdGlvbikgY29uc3Q7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2FsbGJhY2tXaGVuTm9F
eGNlcHRpb24+IHR5cGVuYW1lIHN0ZDo6cmVzdWx0X29mPENhbGxiYWNrV2hlbk5vRXhjZXB0aW9u
KGJvb2wsIFByb3BlcnR5U2xvdCYpPjo6dHlwZSBnZXRQcm9wZXJ0eVNsb3QoSlNHbG9iYWxPYmpl
Y3QqLCBQcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYsIENhbGxiYWNrV2hlbk5vRXhjZXB0aW9u
KSBjb25zdDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWVJ
bmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlND
SlNWYWx1ZUlubGluZXMuaAkocmV2aXNpb24gMjc2ODQzKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNDSlNWYWx1ZUlubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEwNDUs
NiArMTA0NSwxOCBAQCBBTFdBWVNfSU5MSU5FIEpTVmFsdWUgSlNWYWx1ZTo6Z2V0KEpTR2xvCiAg
ICAgcmV0dXJuIGdldChnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb20oZ2V0Vk0oZ2xvYmFs
T2JqZWN0KSwgc3RhdGljX2Nhc3Q8ZG91YmxlPihwcm9wZXJ0eU5hbWUpKSk7CiB9CiAKK3RlbXBs
YXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFByb3BlcnR5TmFtZVR5cGU+CitBTFdBWVNfSU5MSU5F
IFQgSlNWYWx1ZTo6Z2V0QXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUHJvcGVydHlO
YW1lVHlwZSBwcm9wZXJ0eU5hbWUpIGNvbnN0Cit7CisgICAgSlNWYWx1ZSB2YWx1ZSA9IGdldChn
bG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSk7CisjaWYgQVNTRVJUX0VOQUJMRUQgfHwgRU5BQkxF
KFNFQ1VSSVRZX0FTU0VSVElPTlMpCisgICAgVk0mIHZtID0gZ2V0Vk0oZ2xvYmFsT2JqZWN0KTsK
KyAgICBpZiAodm0uZXhjZXB0aW9uRm9ySW5zcGVjdGlvbigpKQorICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKyNlbmRpZgorICAgIHJldHVybiBqc0Nhc3Q8VD4odmFsdWUpOworfQorCiBpbmxpbmUg
Ym9vbCBKU1ZhbHVlOjpwdXQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUHJvcGVydHlO
YW1lIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQog
ewogICAgIGlmIChVTkxJS0VMWSghaXNDZWxsKCkpKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTSW50ZXJuYWxQcm9taXNlLmNwcAkocmV2aXNpb24gMjc2
ODQzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNJbnRlcm5hbFByb21pc2Uu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxNS0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjAsNyArNjAsNyBAQCBKU0ludGVybmFsUHJvbWlzZSog
SlNJbnRlcm5hbFByb21pc2U6OnRoCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAotICAgIEpTT2JqZWN0
KiBmdW5jdGlvbiA9IGpzQ2FzdDxKU09iamVjdCo+KGdldChnbG9iYWxPYmplY3QsIHZtLnByb3Bl
cnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnRoZW5QdWJsaWNOYW1lKCkpKTsKKyAgICBKU09iamVj
dCogZnVuY3Rpb24gPSBnZXRBczxKU09iamVjdCo+KGdsb2JhbE9iamVjdCwgdm0ucHJvcGVydHlO
YW1lcy0+YnVpbHRpbk5hbWVzKCkudGhlblB1YmxpY05hbWUoKSk7CiAgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgbnVsbHB0cik7CiAgICAgYXV0byBjYWxsRGF0YSA9IEpTQzo6Z2V0Q2Fs
bERhdGEodm0sIGZ1bmN0aW9uKTsKICAgICBBU1NFUlQoY2FsbERhdGEudHlwZSAhPSBDYWxsRGF0
YTo6VHlwZTo6Tm9uZSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01v
ZHVsZUxvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNNb2R1bGVMb2FkZXIuY3BwCShyZXZpc2lvbiAyNzY4NDMpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU01vZHVsZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEy
Niw3ICsxMjYsNyBAQCBKU0FycmF5KiBKU01vZHVsZUxvYWRlcjo6ZGVwZW5kZW5jeUtleXNJCiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKIAotICAgIEpTT2JqZWN0KiBmdW5jdGlvbiA9IGpzQ2FzdDxKU09i
amVjdCo+KGdldChnbG9iYWxPYmplY3QsIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygp
LmRlcGVuZGVuY3lLZXlzSWZFdmFsdWF0ZWRQdWJsaWNOYW1lKCkpKTsKKyAgICBKU09iamVjdCog
ZnVuY3Rpb24gPSBnZXRBczxKU09iamVjdCo+KGdsb2JhbE9iamVjdCwgdm0ucHJvcGVydHlOYW1l
cy0+YnVpbHRpbk5hbWVzKCkuZGVwZW5kZW5jeUtleXNJZkV2YWx1YXRlZFB1YmxpY05hbWUoKSk7
CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CiAgICAgYXV0byBjYWxs
RGF0YSA9IEpTQzo6Z2V0Q2FsbERhdGEodm0sIGZ1bmN0aW9uKTsKICAgICBBU1NFUlQoY2FsbERh
dGEudHlwZSAhPSBDYWxsRGF0YTo6VHlwZTo6Tm9uZSk7CkBAIC0xNDUsNyArMTQ1LDcgQEAgSlNW
YWx1ZSBKU01vZHVsZUxvYWRlcjo6cHJvdmlkZUZldGNoKEpTRwogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CiAKLSAgICBKU09iamVjdCogZnVuY3Rpb24gPSBqc0Nhc3Q8SlNPYmplY3QqPihnZXQoZ2xvYmFs
T2JqZWN0LCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5wcm92aWRlRmV0Y2hQdWJs
aWNOYW1lKCkpKTsKKyAgICBKU09iamVjdCogZnVuY3Rpb24gPSBnZXRBczxKU09iamVjdCo+KGds
b2JhbE9iamVjdCwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucHJvdmlkZUZldGNo
UHVibGljTmFtZSgpKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogICAg
IGF1dG8gY2FsbERhdGEgPSBKU0M6OmdldENhbGxEYXRhKHZtLCBmdW5jdGlvbik7CiAgICAgQVNT
RVJUKGNhbGxEYXRhLnR5cGUgIT0gQ2FsbERhdGE6OlR5cGU6Ok5vbmUpOwpAQCAtMTY0LDcgKzE2
NCw3IEBAIEpTSW50ZXJuYWxQcm9taXNlKiBKU01vZHVsZUxvYWRlcjo6bG9hZEEKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwogCi0gICAgSlNPYmplY3QqIGZ1bmN0aW9uID0ganNDYXN0PEpTT2JqZWN0Kj4o
Z2V0KGdsb2JhbE9iamVjdCwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkubG9hZEFu
ZEV2YWx1YXRlTW9kdWxlUHVibGljTmFtZSgpKSk7CisgICAgSlNPYmplY3QqIGZ1bmN0aW9uID0g
Z2V0QXM8SlNPYmplY3QqPihnbG9iYWxPYmplY3QsIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5O
YW1lcygpLmxvYWRBbmRFdmFsdWF0ZU1vZHVsZVB1YmxpY05hbWUoKSk7CiAgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CiAgICAgYXV0byBjYWxsRGF0YSA9IEpTQzo6Z2V0
Q2FsbERhdGEodm0sIGZ1bmN0aW9uKTsKICAgICBBU1NFUlQoY2FsbERhdGEudHlwZSAhPSBDYWxs
RGF0YTo6VHlwZTo6Tm9uZSk7CkBAIC0xODUsNyArMTg1LDcgQEAgSlNJbnRlcm5hbFByb21pc2Uq
IEpTTW9kdWxlTG9hZGVyOjpsb2FkTQogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKLSAgICBKU09iamVj
dCogZnVuY3Rpb24gPSBqc0Nhc3Q8SlNPYmplY3QqPihnZXQoZ2xvYmFsT2JqZWN0LCB2bS5wcm9w
ZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5sb2FkTW9kdWxlUHVibGljTmFtZSgpKSk7CisgICAg
SlNPYmplY3QqIGZ1bmN0aW9uID0gZ2V0QXM8SlNPYmplY3QqPihnbG9iYWxPYmplY3QsIHZtLnBy
b3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmxvYWRNb2R1bGVQdWJsaWNOYW1lKCkpOwogICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwogICAgIGF1dG8gY2FsbERhdGEg
PSBKU0M6OmdldENhbGxEYXRhKHZtLCBmdW5jdGlvbik7CiAgICAgQVNTRVJUKGNhbGxEYXRhLnR5
cGUgIT0gQ2FsbERhdGE6OlR5cGU6Ok5vbmUpOwpAQCAtMjA2LDcgKzIwNiw3IEBAIEpTVmFsdWUg
SlNNb2R1bGVMb2FkZXI6OmxpbmtBbmRFdmFsdWF0ZU0KICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCi0g
ICAgSlNPYmplY3QqIGZ1bmN0aW9uID0ganNDYXN0PEpTT2JqZWN0Kj4oZ2V0KGdsb2JhbE9iamVj
dCwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkubGlua0FuZEV2YWx1YXRlTW9kdWxl
UHVibGljTmFtZSgpKSk7CisgICAgSlNPYmplY3QqIGZ1bmN0aW9uID0gZ2V0QXM8SlNPYmplY3Qq
PihnbG9iYWxPYmplY3QsIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmxpbmtBbmRF
dmFsdWF0ZU1vZHVsZVB1YmxpY05hbWUoKSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgeyB9KTsKICAgICBhdXRvIGNhbGxEYXRhID0gSlNDOjpnZXRDYWxsRGF0YSh2bSwgZnVuY3Rp
b24pOwogICAgIEFTU0VSVChjYWxsRGF0YS50eXBlICE9IENhbGxEYXRhOjpUeXBlOjpOb25lKTsK
QEAgLTIyNCw3ICsyMjQsNyBAQCBKU0ludGVybmFsUHJvbWlzZSogSlNNb2R1bGVMb2FkZXI6OnJl
cXVlCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAotICAgIGF1dG8qIGZ1bmN0aW9uID0ganNDYXN0PEpT
T2JqZWN0Kj4oZ2V0KGdsb2JhbE9iamVjdCwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVz
KCkucmVxdWVzdEltcG9ydE1vZHVsZVB1YmxpY05hbWUoKSkpOworICAgIGF1dG8qIGZ1bmN0aW9u
ID0gZ2V0QXM8SlNPYmplY3QqPihnbG9iYWxPYmplY3QsIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0
aW5OYW1lcygpLnJlcXVlc3RJbXBvcnRNb2R1bGVQdWJsaWNOYW1lKCkpOwogICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwogICAgIGF1dG8gY2FsbERhdGEgPSBKU0M6Omdl
dENhbGxEYXRhKHZtLCBmdW5jdGlvbik7CiAgICAgQVNTRVJUKGNhbGxEYXRhLnR5cGUgIT0gQ2Fs
bERhdGE6OlR5cGU6Ok5vbmUpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U09iamVjdC5oCShyZXZpc2lvbiAyNzY4NDMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU09iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNTIsNiArMTUyLDkgQEAgcHVibGlj
OgogICAgIEpTVmFsdWUgZ2V0KEpTR2xvYmFsT2JqZWN0KiwgdW5zaWduZWQgcHJvcGVydHlOYW1l
KSBjb25zdDsKICAgICBKU1ZhbHVlIGdldChKU0dsb2JhbE9iamVjdCosIHVpbnQ2NF90IHByb3Bl
cnR5TmFtZSkgY29uc3Q7CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBQcm9w
ZXJ0eU5hbWVUeXBlPgorICAgIFQgZ2V0QXMoSlNHbG9iYWxPYmplY3QqLCBQcm9wZXJ0eU5hbWVU
eXBlKSBjb25zdDsKKwogICAgIHRlbXBsYXRlPGJvb2wgY2hlY2tOdWxsU3RydWN0dXJlID0gZmFs
c2U+CiAgICAgYm9vbCBnZXRQcm9wZXJ0eVNsb3QoSlNHbG9iYWxPYmplY3QqLCBQcm9wZXJ0eU5h
bWUsIFByb3BlcnR5U2xvdCYpOwogICAgIGJvb2wgZ2V0UHJvcGVydHlTbG90KEpTR2xvYmFsT2Jq
ZWN0KiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKQEAgLTE1MTcsNiAr
MTUyMCwxOCBAQCBpbmxpbmUgSlNWYWx1ZSBKU09iamVjdDo6Z2V0KEpTR2xvYmFsT2JqCiAgICAg
cmV0dXJuIGpzVW5kZWZpbmVkKCk7CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1l
IFByb3BlcnR5TmFtZVR5cGU+CitpbmxpbmUgVCBKU09iamVjdDo6Z2V0QXMoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgUHJvcGVydHlOYW1lVHlwZSBwcm9wZXJ0eU5hbWUpIGNvbnN0Cit7
CisgICAgSlNWYWx1ZSB2YWx1ZSA9IGdldChnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSk7Cisj
aWYgQVNTRVJUX0VOQUJMRUQgfHwgRU5BQkxFKFNFQ1VSSVRZX0FTU0VSVElPTlMpCisgICAgVk0m
IHZtID0gZ2V0Vk0oZ2xvYmFsT2JqZWN0KTsKKyAgICBpZiAodm0uZXhjZXB0aW9uRm9ySW5zcGVj
dGlvbigpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyNlbmRpZgorICAgIHJldHVybiBqc0Nh
c3Q8VD4odmFsdWUpOworfQorCiBpbmxpbmUgYm9vbCBKU09iamVjdDo6cHV0RGlyZWN0KFZNJiB2
bSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgdW5zaWduZWQgYXR0
cmlidXRlcykKIHsKICAgICBBU1NFUlQoIXZhbHVlLmlzR2V0dGVyU2V0dGVyKCkgJiYgIShhdHRy
aWJ1dGVzICYgUHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vzc29yKSk7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb21pc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZS5jcHAJKHJldmlzaW9uIDI3Njg0MykKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvbWlzZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTExOSwxMSArMTE5LDExIEBAIEpTUHJvbWlzZTo6RGVmZXJyZWREYXRhIEpTUHJvbWlz
ZTo6Y3JlYXQKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogCiAgICAgRGVm
ZXJyZWREYXRhIHJlc3VsdDsKLSAgICByZXN1bHQucHJvbWlzZSA9IGpzQ2FzdDxKU1Byb21pc2Uq
PihkZWZlcnJlZC5nZXQoZ2xvYmFsT2JqZWN0LCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFt
ZXMoKS5wcm9taXNlUHJpdmF0ZU5hbWUoKSkpOworICAgIHJlc3VsdC5wcm9taXNlID0gZGVmZXJy
ZWQuZ2V0QXM8SlNQcm9taXNlKj4oZ2xvYmFsT2JqZWN0LCB2bS5wcm9wZXJ0eU5hbWVzLT5idWls
dGluTmFtZXMoKS5wcm9taXNlUHJpdmF0ZU5hbWUoKSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElP
TihzY29wZSwgeyB9KTsKLSAgICByZXN1bHQucmVzb2x2ZSA9IGpzQ2FzdDxKU0Z1bmN0aW9uKj4o
ZGVmZXJyZWQuZ2V0KGdsb2JhbE9iamVjdCwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVz
KCkucmVzb2x2ZVByaXZhdGVOYW1lKCkpKTsKKyAgICByZXN1bHQucmVzb2x2ZSA9IGRlZmVycmVk
LmdldEFzPEpTRnVuY3Rpb24qPihnbG9iYWxPYmplY3QsIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0
aW5OYW1lcygpLnJlc29sdmVQcml2YXRlTmFtZSgpKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCB7IH0pOwotICAgIHJlc3VsdC5yZWplY3QgPSBqc0Nhc3Q8SlNGdW5jdGlvbio+KGRl
ZmVycmVkLmdldChnbG9iYWxPYmplY3QsIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygp
LnJlamVjdFByaXZhdGVOYW1lKCkpKTsKKyAgICByZXN1bHQucmVqZWN0ID0gZGVmZXJyZWQuZ2V0
QXM8SlNGdW5jdGlvbio+KGdsb2JhbE9iamVjdCwgdm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5h
bWVzKCkucmVqZWN0UHJpdmF0ZU5hbWUoKSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgeyB9KTsKIAogICAgIHJldHVybiByZXN1bHQ7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9WTS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1ZNLmgJKHJldmlzaW9uIDI3Njg0MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1ZNLmgJKHdvcmtpbmcgY29weSkKQEAgLTg4Nyw4ICs4ODcsOCBAQCBwdWJsaWM6CiAgICAg
RXhjZXB0aW9uKiBsYXN0RXhjZXB0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9sYXN0RXhjZXB0aW9u
OyB9CiAgICAgSlNDZWxsKiogYWRkcmVzc09mTGFzdEV4Y2VwdGlvbigpIHsgcmV0dXJuIHJlaW50
ZXJwcmV0X2Nhc3Q8SlNDZWxsKio+KCZtX2xhc3RFeGNlcHRpb24pOyB9CiAKLSAgICAvLyBUaGlz
IHNob3VsZCBvbmx5IGJlIHVzZWQgZm9yIHRlc3Qgb3IgYXNzZXJ0aW9uIGNvZGUgdGhhdCB3YW50
cyB0byBpbnNwZWN0Ci0gICAgLy8gdGhlIHBlbmRpbmcgZXhjZXB0aW9uIHdpdGhvdXQgaW50ZXJm
ZXJpbmcgd2l0aCBUaHJvdy9DYXRjaFNjb3Blcy4KKyAgICAvLyBUaGlzIHNob3VsZCBvbmx5IGJl
IHVzZWQgZm9yIGNvZGUgdGhhdCB3YW50cyB0byBjaGVjayBmb3IgYW55IHBlbmRpbmcKKyAgICAv
LyBleGNlcHRpb24gd2l0aG91dCBpbnRlcmZlcmluZyB3aXRoIFRocm93L0NhdGNoU2NvcGVzLgog
ICAgIEV4Y2VwdGlvbiogZXhjZXB0aW9uRm9ySW5zcGVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1f
ZXhjZXB0aW9uOyB9CiAKICAgICB2b2lkIHNldEZhaWxOZXh0TmV3Q29kZUJsb2NrKCkgeyBtX2Zh
aWxOZXh0TmV3Q29kZUJsb2NrID0gdHJ1ZTsgfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>