<?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>141455</bug_id>
          
          <creation_ts>2015-02-10 18:11:40 -0800</creation_ts>
          <short_desc>Split FTL::JSCall into the part that knows about call inline caching and the part that interacts with LLVM patchpoints</short_desc>
          <delta_ts>2015-02-10 18:41:37 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>141332</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1068212</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-02-10 18:11:40 -0800</bug_when>
    <thetext>The part that knows about call inline caching can be reused to build other things, like https://bugs.webkit.org/show_bug.cgi?id=141332.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1068214</commentid>
    <comment_count>1</comment_count>
      <attachid>246363</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-02-10 18:13:27 -0800</bug_when>
    <thetext>Created attachment 246363
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1068215</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-02-10 18:14:54 -0800</bug_when>
    <thetext>Attachment 246363 did not pass style-queue:


ERROR: Source/JavaScriptCore/ftl/FTLJSCall.cpp:46:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
Total errors found: 1 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1068222</commentid>
    <comment_count>3</comment_count>
      <attachid>246363</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-02-10 18:35:49 -0800</bug_when>
    <thetext>Comment on attachment 246363
the patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1068225</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-02-10 18:41:37 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/179912</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>246363</attachid>
            <date>2015-02-10 18:13:27 -0800</date>
            <delta_ts>2015-02-10 18:35:49 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>18308</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTc5OTA5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBA
CisyMDE1LTAyLTEwICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
U3BsaXQgRlRMOjpKU0NhbGwgaW50byB0aGUgcGFydCB0aGF0IGtub3dzIGFib3V0IGNhbGwgaW5s
aW5lIGNhY2hpbmcgYW5kIHRoZSBwYXJ0IHRoYXQgaW50ZXJhY3RzIHdpdGggTExWTSBwYXRjaHBv
aW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQx
NDU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAg
ICAgICBUaGUgbmV3bHkgaW50cm9kdWNlZCBGVEw6OkpTQ2FsbEJhc2UgY2FuIGJlIHVzZWQgdG8g
YnVpbGQgb3RoZXIgdGhpbmdzLCBsaWtlIHRoZSBGVEwgcG9ydGlvbgorICAgICAgICBvZiBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQxMzMyLgorCisgICAgICAgICog
Q01ha2VMaXN0cy50eHQ6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2Ny
aXB0Q29yZS52Y3hwcm9qOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmg6CisgICAgICAg
IChKU0M6OkNhbGxMaW5rSW5mbzo6c3BlY2lhbGl6YXRpb25LaW5kRm9yKToKKyAgICAgICAgKEpT
Qzo6Q2FsbExpbmtJbmZvOjpzcGVjaWFsaXphdGlvbktpbmQpOgorICAgICAgICAqIGZ0bC9GVExK
U0NhbGwuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkpTQ2FsbDo6SlNDYWxsKToKKyAgICAgICAg
KEpTQzo6RlRMOjpKU0NhbGw6OmVtaXQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpGVEw6OkpT
Q2FsbDo6bGluayk6IERlbGV0ZWQuCisgICAgICAgICogZnRsL0ZUTEpTQ2FsbC5oOgorICAgICAg
ICAqIGZ0bC9GVExKU0NhbGxCYXNlLmNwcDogQWRkZWQuCisgICAgICAgIChKU0M6OkZUTDo6SlND
YWxsQmFzZTo6SlNDYWxsQmFzZSk6CisgICAgICAgIChKU0M6OkZUTDo6SlNDYWxsQmFzZTo6ZW1p
dCk6CisgICAgICAgIChKU0M6OkZUTDo6SlNDYWxsQmFzZTo6bGluayk6CisgICAgICAgICogZnRs
L0ZUTEpTQ2FsbEJhc2UuaDogQWRkZWQuCisKIDIwMTUtMDItMTAgIEZpbGlwIFBpemxvICA8ZnBp
emxvQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBmaXggYnVpbGQuCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAxNzk5MDMpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTg0Myw2
ICs4NDMsNyBAQCBpZiAoRU5BQkxFX0ZUTF9KSVQpCiAgICAgICAgIGZ0bC9GVExKSVRDb2RlLmNw
cAogICAgICAgICBmdGwvRlRMSklURmluYWxpemVyLmNwcAogICAgICAgICBmdGwvRlRMSlNDYWxs
LmNwcAorICAgICAgICBmdGwvRlRMSlNDYWxsQmFzZS5jcHAKICAgICAgICAgZnRsL0ZUTExpbmsu
Y3BwCiAgICAgICAgIGZ0bC9GVExMb2NhdGlvbi5jcHAKICAgICAgICAgZnRsL0ZUTExvd2VyREZH
VG9MTFZNLmNwcApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZj
eHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCShy
ZXZpc2lvbiAxNzk5MDMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
dmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC01MTAsNiAr
NTEwLDcgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGZ0bFxGVExKSVRDb2RlLmNwcCIg
Lz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGZ0bFxGVExKSVRGaW5hbGl6ZXIuY3BwIiAv
PgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZnRsXEZUTEpTQ2FsbC5jcHAiIC8+CisgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxmdGxcRlRMSlNDYWxsQmFzZS5jcHAiIC8+CiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxmdGxcRlRMTGluay5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxmdGxcRlRMTG9jYXRpb24uY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5cZnRsXEZUTExvd2VyREZHVG9MTFZNLmNwcCIgLz4KQEAgLTExOTEsNiArMTE5Miw3IEBA
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxmdGxcRlRMSklUQ29kZS5oIiAvPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cZnRsXEZUTEpJVEZpbmFsaXplci5oIiAvPgogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cZnRsXEZUTEpTQ2FsbC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cZnRsXEZUTEpTQ2FsbEJhc2UuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGZ0bFxGVExMaW5rLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxmdGxcRlRM
TG9jYXRpb24uaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGZ0bFxGVExMb3dlckRG
R1RvTExWTS5oIiAvPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9u
IDE3OTkwMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC01NjIsNiArNTYyLDggQEAKIAkJ
MEZDRUZBREMxODA2NEExNDAwNDcyQ0U0IC8qIGNvbmZpZ19sbHZtLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkNFRkFEQjE4MDY0QTE0MDA0NzJDRTQg
LyogY29uZmlnX2xsdm0uaCAqLzsgfTsKIAkJMEZDRUZBREYxODA3MzhDMDAwNDcyQ0U0IC8qIEZU
TExvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGQ0VGQUREMTgwNzM4QzAwMDQ3MkNFNCAvKiBGVExMb2NhdGlvbi5jcHAgKi87IH07CiAJ
CTBGQ0VGQUUwMTgwNzM4QzAwMDQ3MkNFNCAvKiBGVExMb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZDRUZBREUxODA3MzhDMDAwNDcyQ0U0
IC8qIEZUTExvY2F0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJMEZEMTIwMkYxQThBRUQxMjAwMEY1MjgwIC8qIEZUTEpTQ2FsbEJhc2UuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZEMTIwMkQx
QThBRUQxMjAwMEY1MjgwIC8qIEZUTEpTQ2FsbEJhc2UuY3BwICovOyB9OworCQkwRkQxMjAzMDFB
OEFFRDEyMDAwRjUyODAgLyogRlRMSlNDYWxsQmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZEMTIwMkUxQThBRUQxMjAwMEY1MjgwIC8qIEZUTEpT
Q2FsbEJhc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQkwRkQyQzkyNDE2RDAxRUU5MDBDNzgwM0YgLyogU3RydWN0dXJlSW5saW5lcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZEMkM5MjMxNkQwMUVF
OTAwQzc4MDNGIC8qIFN0cnVjdHVyZUlubGluZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRkQzQzgyNjE0MTE1RDQwMDBGRDgxQ0IgLyogREZH
RHJpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGRDNDODIwMTQxMTVDRjgwMEZEODFDQiAvKiBERkdEcml2ZXIuY3BwICovOyB9OwogCQkwRkQz
QzgyODE0MTE1RDRGMDBGRDgxQ0IgLyogREZHRHJpdmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkQzQzgyMjE0MTE1RDBFMDBGRDgxQ0IgLyogREZH
RHJpdmVyLmggKi87IH07CkBAIC0yMjQzLDYgKzIyNDUsOCBAQAogCQkwRkNFRkFEQjE4MDY0QTE0
MDA0NzJDRTQgLyogY29uZmlnX2xsdm0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gY29uZmlnX2xsdm0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZDRUZBREQx
ODA3MzhDMDAwNDcyQ0U0IC8qIEZUTExvY2F0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IEZUTExvY2F0aW9uLmNwcDsgcGF0aCA9IGZ0bC9GVExMb2NhdGlvbi5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGQ0VGQURFMTgwNzM4QzAwMDQ3MkNF
NCAvKiBGVExMb2NhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBGVExM
b2NhdGlvbi5oOyBwYXRoID0gZnRsL0ZUTExvY2F0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTBGRDEyMDJEMUE4QUVEMTIwMDBGNTI4MCAvKiBGVExKU0NhbGxCYXNlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEZUTEpTQ2FsbEJhc2UuY3BwOyBw
YXRoID0gZnRsL0ZUTEpTQ2FsbEJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkwRkQxMjAyRTFBOEFFRDEyMDAwRjUyODAgLyogRlRMSlNDYWxsQmFzZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBGVExKU0NhbGxCYXNlLmg7IHBhdGggPSBmdGwvRlRMSlND
YWxsQmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkQyQzkyMzE2RDAxRUU5
MDBDNzgwM0YgLyogU3RydWN0dXJlSW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTdHJ1Y3R1cmVJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTBGRDNDODIwMTQxMTVDRjgwMEZEODFDQiAvKiBERkdEcml2ZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHRHJpdmVyLmNwcDsgcGF0aCA9IGRmZy9ERkdEcml2
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkQzQzgyMjE0MTE1RDBFMDBG
RDgxQ0IgLyogREZHRHJpdmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERG
R0RyaXZlci5oOyBwYXRoID0gZGZnL0RGR0RyaXZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMzYwMCw2ICszNjA0LDggQEAKIAkJCQlBNzhBOTc3RTE3OTczOEQ1MDA5REY3NDQg
LyogRlRMSklURmluYWxpemVyLmggKi8sCiAJCQkJMEY2QjFDQjMxODVGQzlFOTAwODQ1RDk3IC8q
IEZUTEpTQ2FsbC5jcHAgKi8sCiAJCQkJMEY2QjFDQjQxODVGQzlFOTAwODQ1RDk3IC8qIEZUTEpT
Q2FsbC5oICovLAorCQkJCTBGRDEyMDJEMUE4QUVEMTIwMDBGNTI4MCAvKiBGVExKU0NhbGxCYXNl
LmNwcCAqLywKKwkJCQkwRkQxMjAyRTFBOEFFRDEyMDAwRjUyODAgLyogRlRMSlNDYWxsQmFzZS5o
ICovLAogCQkJCTBGOEYyQjkzMTcyRTA0OUUwMDdEQkRBNSAvKiBGVExMaW5rLmNwcCAqLywKIAkJ
CQkwRjhGMkI5NDE3MkUwNDlFMDA3REJEQTUgLyogRlRMTGluay5oICovLAogCQkJCTBGQ0VGQURE
MTgwNzM4QzAwMDQ3MkNFNCAvKiBGVExMb2NhdGlvbi5jcHAgKi8sCkBAIC02MTI5LDYgKzYxMzUs
NyBAQAogCQkJCTE0N0I4NDYzMEU2REU2QjEwMDQ3NzVBNCAvKiBQdXRQcm9wZXJ0eVNsb3QuaCBp
biBIZWFkZXJzICovLAogCQkJCTJBQUQ5NjRBMTg1Njk0MTcwMDFGOTNCRSAvKiBSZWN1cnNpdmVB
bGxvY2F0aW9uU2NvcGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRjYwQUMyMTY3NDBGODMwMDAy
OTc3OSAvKiBSZWR1Y2VXaGl0ZXNwYWNlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkQxMjAzMDFB
OEFFRDEyMDAwRjUyODAgLyogRlRMSlNDYWxsQmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZB
N0E4RUMxOEI0MTNDODAwNTIzNzFEIC8qIFJlZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0
NUEwRTE2RjVDRDAwQjM0NDYwIC8qIFJlZ0V4cC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTE3MTJC
M0YxMUM3QjIyODAwN0E1MzE1IC8qIFJlZ0V4cENhY2hlLmggaW4gSGVhZGVycyAqLywKQEAgLTcy
NTcsNiArNzI2NCw3IEBACiAJCQkJQTU0Q0YyRjkxODRFQUVEQTAwMjM3RjE5IC8qIFNjcmlwdE9i
amVjdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNTRDRjJGNTE4NEVBQjI0MDAyMzdGMTkgLyog
U2NyaXB0VmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTcyOTlEQTUxN0QxMjg1ODAwNUY1
RkY5IC8qIFNldENvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGRDEyMDJGMUE4
QUVEMTIwMDBGNTI4MCAvKiBGVExKU0NhbGxCYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3
OTBERDZCMTgyRjQ5OTcwMDU4ODgwNyAvKiBTZXRJdGVyYXRvckNvbnN0cnVjdG9yLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUE3OTBERDZEMTgyRjQ5OTcwMDU4ODgwNyAvKiBTZXRJdGVyYXRvclBy
b3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzI5OURBMTE3RDEyODQ4MDA1RjVGRjkg
LyogU2V0UHJvdG90eXBlLmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5mby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua0luZm8uaAkocmV2aXNpb24gMTc5OTAzKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5mby5oCSh3b3JraW5nIGNv
cHkpCkBAIC01NSw3ICs1NSw3IEBAIHN0cnVjdCBDYWxsTGlua0luZm8gOiBwdWJsaWMgQmFzaWNS
YXdTZW4KICAgICAgICAgQVNTRVJUKG9wY29kZUlEID09IG9wX2NhbGxfdmFyYXJncyk7CiAgICAg
ICAgIHJldHVybiBDYWxsVmFyYXJnczsKICAgICB9Ci0gICAgICAgIAorICAgIAogICAgIENhbGxM
aW5rSW5mbygpCiAgICAgICAgIDogaXNGVEwoZmFsc2UpCiAgICAgICAgICwgaGFzU2VlblNob3Vs
ZFJlcGF0Y2goZmFsc2UpCkBAIC03MSwxMCArNzEsMTQgQEAgc3RydWN0IENhbGxMaW5rSW5mbyA6
IHB1YmxpYyBCYXNpY1Jhd1NlbgogICAgICAgICAgICAgcmVtb3ZlKCk7CiAgICAgfQogICAgIAot
ICAgIENvZGVTcGVjaWFsaXphdGlvbktpbmQgc3BlY2lhbGl6YXRpb25LaW5kKCkgY29uc3QKKyAg
ICBzdGF0aWMgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBzcGVjaWFsaXphdGlvbktpbmRGb3IoQ2Fs
bFR5cGUgY2FsbFR5cGUpCiAgICAgewogICAgICAgICByZXR1cm4gc3BlY2lhbGl6YXRpb25Gcm9t
SXNDb25zdHJ1Y3QoY2FsbFR5cGUgPT0gQ29uc3RydWN0IHx8IGNhbGxUeXBlID09IENvbnN0cnVj
dFZhcmFyZ3MpOwogICAgIH0KKyAgICBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIHNwZWNpYWxpemF0
aW9uS2luZCgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gc3BlY2lhbGl6YXRpb25LaW5k
Rm9yKHN0YXRpY19jYXN0PENhbGxUeXBlPihjYWxsVHlwZSkpOworICAgIH0KIAogICAgIENvZGVM
b2NhdGlvbk5lYXJDYWxsIGNhbGxSZXR1cm5Mb2NhdGlvbjsKICAgICBDb2RlTG9jYXRpb25EYXRh
TGFiZWxQdHIgaG90UGF0aEJlZ2luOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExKU0NhbGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
SlNDYWxsLmNwcAkocmV2aXNpb24gMTc5OTAzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExKU0NhbGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDU5ICszMywyMyBAQAogCiBu
YW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CiAKK3VzaW5nIG5hbWVzcGFjZSBERkc7CisK
IEpTQ2FsbDo6SlNDYWxsKCkKICAgICA6IG1fc3RhY2ttYXBJRChVSU5UX01BWCkKLSAgICAsIG1f
bm9kZShudWxscHRyKQotICAgICwgbV9jYWxsTGlua0luZm8obnVsbHB0cikKICAgICAsIG1faW5z
dHJ1Y3Rpb25PZmZzZXQoVUlOVF9NQVgpCiB7CiB9CiAKLUpTQ2FsbDo6SlNDYWxsKHVuc2lnbmVk
IHN0YWNrbWFwSUQsIERGRzo6Tm9kZSogbm9kZSkKLSAgICA6IG1fc3RhY2ttYXBJRChzdGFja21h
cElEKQotICAgICwgbV9ub2RlKG5vZGUpCi0gICAgLCBtX2NhbGxMaW5rSW5mbyhudWxscHRyKQor
SlNDYWxsOjpKU0NhbGwodW5zaWduZWQgc3RhY2ttYXBJRCwgTm9kZSogbm9kZSkKKyAgICA6IEpT
Q2FsbEJhc2UoCisgICAgICAgIG5vZGUtPm9wKCkgPT0gQ29uc3RydWN0ID8gQ2FsbExpbmtJbmZv
OjpDb25zdHJ1Y3QgOiBDYWxsTGlua0luZm86OkNhbGwsCisgICAgICAgIG5vZGUtPm9yaWdpbi5z
ZW1hbnRpYykKKyAgICAsIG1fc3RhY2ttYXBJRChzdGFja21hcElEKQogICAgICwgbV9pbnN0cnVj
dGlvbk9mZnNldCgwKQogewogfQogCi12b2lkIEpTQ2FsbDo6ZW1pdChDQ2FsbEhlbHBlcnMmIGpp
dCkKLXsKLSAgICBtX2NhbGxMaW5rSW5mbyA9IGppdC5jb2RlQmxvY2soKS0+YWRkQ2FsbExpbmtJ
bmZvKCk7Ci0gICAgCi0gICAgQ0NhbGxIZWxwZXJzOjpKdW1wIHNsb3dQYXRoID0gaml0LmJyYW5j
aFB0cldpdGhQYXRjaCgKLSAgICAgICAgQ0NhbGxIZWxwZXJzOjpOb3RFcXVhbCwgR1BSSW5mbzo6
cmVnVDAsIG1fdGFyZ2V0VG9DaGVjaywKLSAgICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1t
UHRyKDApKTsKLSAgICAKLSAgICBtX2Zhc3RDYWxsID0gaml0Lm5lYXJDYWxsKCk7Ci0gICAgQ0Nh
bGxIZWxwZXJzOjpKdW1wIGRvbmUgPSBqaXQuanVtcCgpOwotICAgIAotICAgIHNsb3dQYXRoLmxp
bmsoJmppdCk7Ci0gICAgCi0gICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRy
KG1fY2FsbExpbmtJbmZvKSwgR1BSSW5mbzo6cmVnVDIpOwotICAgIG1fc2xvd0NhbGwgPSBqaXQu
bmVhckNhbGwoKTsKLSAgICAKLSAgICBkb25lLmxpbmsoJmppdCk7Ci19Ci0KLXZvaWQgSlNDYWxs
OjpsaW5rKFZNJiB2bSwgTGlua0J1ZmZlciYgbGlua0J1ZmZlcikKLXsKLSAgICBUaHVua0dlbmVy
YXRvciBnZW5lcmF0b3IgPSBsaW5rVGh1bmtHZW5lcmF0b3JGb3IoCi0gICAgICAgIG1fbm9kZS0+
b3AoKSA9PSBERkc6OkNvbnN0cnVjdCA/IENvZGVGb3JDb25zdHJ1Y3QgOiBDb2RlRm9yQ2FsbCwK
LSAgICAgICAgTXVzdFByZXNlcnZlUmVnaXN0ZXJzKTsKLSAgICAKLSAgICBsaW5rQnVmZmVyLmxp
bmsoCi0gICAgICAgIG1fc2xvd0NhbGwsIEZ1bmN0aW9uUHRyKHZtLmdldENUSVN0dWIoZ2VuZXJh
dG9yKS5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSkpOwotICAgIAotICAgIG1fY2FsbExpbmtJ
bmZvLT5pc0ZUTCA9IHRydWU7Ci0gICAgbV9jYWxsTGlua0luZm8tPmNhbGxUeXBlID0gbV9ub2Rl
LT5vcCgpID09IERGRzo6Q29uc3RydWN0ID8gQ2FsbExpbmtJbmZvOjpDb25zdHJ1Y3QgOiBDYWxs
TGlua0luZm86OkNhbGw7Ci0gICAgbV9jYWxsTGlua0luZm8tPmNvZGVPcmlnaW4gPSBtX25vZGUt
Pm9yaWdpbi5zZW1hbnRpYzsKLSAgICBtX2NhbGxMaW5rSW5mby0+Y2FsbFJldHVybkxvY2F0aW9u
ID0gbGlua0J1ZmZlci5sb2NhdGlvbk9mTmVhckNhbGwobV9zbG93Q2FsbCk7Ci0gICAgbV9jYWxs
TGlua0luZm8tPmhvdFBhdGhCZWdpbiA9IGxpbmtCdWZmZXIubG9jYXRpb25PZihtX3RhcmdldFRv
Q2hlY2spOwotICAgIG1fY2FsbExpbmtJbmZvLT5ob3RQYXRoT3RoZXIgPSBsaW5rQnVmZmVyLmxv
Y2F0aW9uT2ZOZWFyQ2FsbChtX2Zhc3RDYWxsKTsKLSAgICBtX2NhbGxMaW5rSW5mby0+Y2FsbGVl
R1BSID0gR1BSSW5mbzo6cmVnVDA7Ci19Ci0KIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpGVEwKIAog
I2VuZGlmIC8vIEVOQUJMRShGVExfSklUKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExKU0NhbGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TEpTQ2FsbC5oCShyZXZpc2lvbiAxNzk5MDMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTEpTQ2FsbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTMtMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDI4ICsyOCwyMSBAQAogCiAjaWYg
RU5BQkxFKEZUTF9KSVQpCiAKLSNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKLSNpbmNsdWRlICJD
YWxsTGlua0luZm8uaCIKLSNpbmNsdWRlICJDb2RlT3JpZ2luLmgiCisjaW5jbHVkZSAiRlRMSlND
YWxsQmFzZS5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIAotY2xhc3MgTGlua0J1ZmZlcjsKLQogbmFt
ZXNwYWNlIERGRyB7CiBzdHJ1Y3QgTm9kZTsKIH0KIAogbmFtZXNwYWNlIEZUTCB7CiAKLWNsYXNz
IEpTQ2FsbCB7CitjbGFzcyBKU0NhbGwgOiBwdWJsaWMgSlNDYWxsQmFzZSB7CiBwdWJsaWM6CiAg
ICAgSlNDYWxsKCk7CiAgICAgSlNDYWxsKHVuc2lnbmVkIHN0YWNrbWFwSUQsIERGRzo6Tm9kZSop
OwogICAgIAotICAgIHZvaWQgZW1pdChDQ2FsbEhlbHBlcnMmKTsKLSAgICB2b2lkIGxpbmsoVk0m
LCBMaW5rQnVmZmVyJik7Ci0gICAgCiAgICAgdW5zaWduZWQgc3RhY2ttYXBJRCgpIGNvbnN0IHsg
cmV0dXJuIG1fc3RhY2ttYXBJRDsgfQogICAgIAogICAgIGJvb2wgb3BlcmF0b3I8KGNvbnN0IEpT
Q2FsbCYgb3RoZXIpIGNvbnN0CkBAIC01OSwxMSArNTIsNiBAQCBwdWJsaWM6CiAgICAgCiBwcml2
YXRlOgogICAgIHVuc2lnbmVkIG1fc3RhY2ttYXBJRDsKLSAgICBERkc6Ok5vZGUqIG1fbm9kZTsK
LSAgICBDQ2FsbEhlbHBlcnM6OkRhdGFMYWJlbFB0ciBtX3RhcmdldFRvQ2hlY2s7Ci0gICAgQ0Nh
bGxIZWxwZXJzOjpDYWxsIG1fZmFzdENhbGw7Ci0gICAgQ0NhbGxIZWxwZXJzOjpDYWxsIG1fc2xv
d0NhbGw7Ci0gICAgQ2FsbExpbmtJbmZvKiBtX2NhbGxMaW5rSW5mbzsKIAogcHVibGljOgogICAg
IHVpbnQzMl90IG1faW5zdHJ1Y3Rpb25PZmZzZXQ7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTEpTQ2FsbEJhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMSlNDYWxsQmFzZS5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTEpTQ2FsbEJhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
ODggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkZUTEpTQ2FsbEJhc2UuaCIKKworI2lmIEVOQUJM
RShGVExfSklUKQorCisjaW5jbHVkZSAiREZHTm9kZS5oIgorI2luY2x1ZGUgIkxpbmtCdWZmZXIu
aCIKKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgeworCitKU0NhbGxCYXNlOjpKU0Nh
bGxCYXNlKCkKKyAgICA6IG1fdHlwZShDYWxsTGlua0luZm86Ok5vbmUpCisgICAgLCBtX2NhbGxM
aW5rSW5mbyhudWxscHRyKQoreworfQorCitKU0NhbGxCYXNlOjpKU0NhbGxCYXNlKENhbGxMaW5r
SW5mbzo6Q2FsbFR5cGUgdHlwZSwgQ29kZU9yaWdpbiBvcmlnaW4pCisgICAgOiBtX3R5cGUodHlw
ZSkKKyAgICAsIG1fb3JpZ2luKG9yaWdpbikKKyAgICAsIG1fY2FsbExpbmtJbmZvKG51bGxwdHIp
Cit7Cit9CisKK3ZvaWQgSlNDYWxsQmFzZTo6ZW1pdChDQ2FsbEhlbHBlcnMmIGppdCkKK3sKKyAg
ICBtX2NhbGxMaW5rSW5mbyA9IGppdC5jb2RlQmxvY2soKS0+YWRkQ2FsbExpbmtJbmZvKCk7Cisg
ICAgCisgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIHNsb3dQYXRoID0gaml0LmJyYW5jaFB0cldpdGhQ
YXRjaCgKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpOb3RFcXVhbCwgR1BSSW5mbzo6cmVnVDAsIG1f
dGFyZ2V0VG9DaGVjaywKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKDApKTsK
KyAgICAKKyAgICBtX2Zhc3RDYWxsID0gaml0Lm5lYXJDYWxsKCk7CisgICAgQ0NhbGxIZWxwZXJz
OjpKdW1wIGRvbmUgPSBqaXQuanVtcCgpOworICAgIAorICAgIHNsb3dQYXRoLmxpbmsoJmppdCk7
CisgICAgCisgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKG1fY2FsbExp
bmtJbmZvKSwgR1BSSW5mbzo6cmVnVDIpOworICAgIG1fc2xvd0NhbGwgPSBqaXQubmVhckNhbGwo
KTsKKyAgICAKKyAgICBkb25lLmxpbmsoJmppdCk7Cit9CisKK3ZvaWQgSlNDYWxsQmFzZTo6bGlu
ayhWTSYgdm0sIExpbmtCdWZmZXImIGxpbmtCdWZmZXIpCit7CisgICAgVGh1bmtHZW5lcmF0b3Ig
Z2VuZXJhdG9yID0gbGlua1RodW5rR2VuZXJhdG9yRm9yKAorICAgICAgICBDYWxsTGlua0luZm86
OnNwZWNpYWxpemF0aW9uS2luZEZvcihtX3R5cGUpLCBNdXN0UHJlc2VydmVSZWdpc3RlcnMpOwor
ICAgIAorICAgIGxpbmtCdWZmZXIubGluaygKKyAgICAgICAgbV9zbG93Q2FsbCwgRnVuY3Rpb25Q
dHIodm0uZ2V0Q1RJU3R1YihnZW5lcmF0b3IpLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKSk7
CisgICAgCisgICAgbV9jYWxsTGlua0luZm8tPmlzRlRMID0gdHJ1ZTsKKyAgICBtX2NhbGxMaW5r
SW5mby0+Y2FsbFR5cGUgPSBtX3R5cGU7CisgICAgbV9jYWxsTGlua0luZm8tPmNvZGVPcmlnaW4g
PSBtX29yaWdpbjsKKyAgICBtX2NhbGxMaW5rSW5mby0+Y2FsbFJldHVybkxvY2F0aW9uID0gbGlu
a0J1ZmZlci5sb2NhdGlvbk9mTmVhckNhbGwobV9zbG93Q2FsbCk7CisgICAgbV9jYWxsTGlua0lu
Zm8tPmhvdFBhdGhCZWdpbiA9IGxpbmtCdWZmZXIubG9jYXRpb25PZihtX3RhcmdldFRvQ2hlY2sp
OworICAgIG1fY2FsbExpbmtJbmZvLT5ob3RQYXRoT3RoZXIgPSBsaW5rQnVmZmVyLmxvY2F0aW9u
T2ZOZWFyQ2FsbChtX2Zhc3RDYWxsKTsKKyAgICBtX2NhbGxMaW5rSW5mby0+Y2FsbGVlR1BSID0g
R1BSSW5mbzo6cmVnVDA7Cit9CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpGVEwKKworI2VuZGlm
IC8vIEVOQUJMRShGVExfSklUKQorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TEpTQ2FsbEJhc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TEpTQ2FsbEJhc2UuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMSlNDYWxsQmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBGVExKU0NhbGxC
YXNlX2gKKyNkZWZpbmUgRlRMSlNDYWxsQmFzZV9oCisKKyNpZiBFTkFCTEUoRlRMX0pJVCkKKwor
I2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgorI2luY2x1ZGUgIkNhbGxMaW5rSW5mby5oIgorI2lu
Y2x1ZGUgIkNvZGVPcmlnaW4uaCIKKworbmFtZXNwYWNlIEpTQyB7CisKK2NsYXNzIExpbmtCdWZm
ZXI7CisKK25hbWVzcGFjZSBGVEwgeworCitjbGFzcyBKU0NhbGxCYXNlIHsKK3B1YmxpYzoKKyAg
ICBKU0NhbGxCYXNlKCk7CisgICAgSlNDYWxsQmFzZShDYWxsTGlua0luZm86OkNhbGxUeXBlLCBD
b2RlT3JpZ2luKTsKKyAgICAKKyAgICB2b2lkIGVtaXQoQ0NhbGxIZWxwZXJzJik7CisgICAgdm9p
ZCBsaW5rKFZNJiwgTGlua0J1ZmZlciYpOworICAgIAorcHJpdmF0ZToKKyAgICBDYWxsTGlua0lu
Zm86OkNhbGxUeXBlIG1fdHlwZTsKKyAgICBDb2RlT3JpZ2luIG1fb3JpZ2luOworICAgIENDYWxs
SGVscGVyczo6RGF0YUxhYmVsUHRyIG1fdGFyZ2V0VG9DaGVjazsKKyAgICBDQ2FsbEhlbHBlcnM6
OkNhbGwgbV9mYXN0Q2FsbDsKKyAgICBDQ2FsbEhlbHBlcnM6OkNhbGwgbV9zbG93Q2FsbDsKKyAg
ICBDYWxsTGlua0luZm8qIG1fY2FsbExpbmtJbmZvOworfTsKKworfSB9IC8vIG5hbWVzcGFjZSBK
U0M6OkZUTAorCisjZW5kaWYgLy8gRU5BQkxFKEZUTF9KSVQpCisKKyNlbmRpZiAvLyBGVExKU0Nh
bGxCYXNlX2gKKwo=
</data>
<flag name="review"
          id="271295"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
      

    </bug>

</bugzilla>