<?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>185151</bug_id>
          
          <creation_ts>2018-04-30 17:50:22 -0700</creation_ts>
          <short_desc>B3::demoteValues should be able to handle patchpoint terminals</short_desc>
          <delta_ts>2018-05-01 12:57:25 -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>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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1419200</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2018-04-30 17:50:22 -0700</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419203</commentid>
    <comment_count>1</comment_count>
      <attachid>339168</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2018-04-30 17:59:58 -0700</bug_when>
    <thetext>Created attachment 339168
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419206</commentid>
    <comment_count>2</comment_count>
      <attachid>339168</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-04-30 18:14:06 -0700</bug_when>
    <thetext>Comment on attachment 339168
the patch

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

r=me

&gt; Source/JavaScriptCore/b3/B3BreakCriticalEdges.cpp:44
&gt; +        // Non-void terminals that are the moral equivalent of jumps trigger critical edge braking
&gt; +        // because of fixSSA&apos;s demoteValues.

&quot;of jumps trigger&quot; =&gt; &quot;of jumps that trigger&quot;
&quot;braking&quot; =&gt; &quot;breaking&quot;

I would also say instead of &quot;because of fixSSA&apos;s demote values&quot; something like &quot;fixSSA&apos;s demote values relies on this invariant&quot;

&gt; Source/JavaScriptCore/b3/B3FixSSA.cpp:306
&gt; +            if (variable) {

I think some comment saying this is for terminal patchpoints that are non void might make whoever reads this code in ~6months happier.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419386</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2018-05-01 12:56:14 -0700</bug_when>
    <thetext>Landed in https://trac.webkit.org/changeset/231204/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1419389</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-05-01 12:57:25 -0700</bug_when>
    <thetext>&lt;rdar://problem/39875383&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>339168</attachid>
            <date>2018-04-30 17:59:58 -0700</date>
            <delta_ts>2018-04-30 18:14:06 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>12434</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjMxMTg5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ2IEBA
CisyMDE4LTA0LTMwICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
QjM6OmRlbW90ZVZhbHVlcyBzaG91bGQgYmUgYWJsZSB0byBoYW5kbGUgcGF0Y2hwb2ludCB0ZXJt
aW5hbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4
NTE1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAg
ICAgICAgSWYgd2UgdHJ5IHRvIGRlbW90ZSBhIHBhdGNocG9pbnQgdGVybWluYWwgdGhlbiBwcmlv
ciB0byB0aGlzIGNoYW5nZSB3ZSB3b3VsZCBhcHBlbmQgYSBTZXQgdG8KKyAgICAgICAgdGhlIGJh
c2ljIGJsb2NrIHRoYXQgdGhlIHBhdGNocG9pbnQgdGVybWluYXRlZC4gVGhhdCdzIHdyb25nIGJl
Y2F1c2UgdGhlbiB0aGUgdGVybWluYWwgaXMgbm8KKyAgICAgICAgbG9uZ2VyIHRoZSBsYXN0IHRo
aW5nIGluIHRoZSBibG9jay4KKyAgICAgICAgCisgICAgICAgIEFpciBlbmNvdW50ZXJzIHRoaXMg
cHJvYmxlbSBpbiBzcGlsbGluZyBhbmQgc29sdmVzIGl0IGJ5IGRvaW5nIGEgZml4dXAgYWZ0ZXJ3
YXJkcy4gV2UgY2FuJ3QKKyAgICAgICAgcmVhbGx5IGRvIHRoYXQgYmVjYXVzZSBkZW1vdGlvbiBo
YXBwZW5zIGFzIGEgcHJlcmVxdWlzaXRlIHRvIG90aGVyIHRyYW5zZm9ybWF0aW9ucy4KKyAgICAg
ICAgCisgICAgICAgIE9uZSBzb2x1dGlvbiBtaWdodCBoYXZlIGJlZW4gdG8gbWFrZSBkZW1vdGVW
YWx1ZXMgaW5zZXJ0IGEgYmFzaWMgYmxvY2sgd2hlbmV2ZXIgaXQgZW5jb3VudGVycworICAgICAg
ICB0aGlzIHByb2JsZW0uIEJ1dCB0aGF0IHdvdWxkIGJyZWFrIGNsaWVudHMgdGhhdCBkbyBDRkcg
YW5hbHlzaXMgYmVmb3JlIGRlbW90ZVZhbHVlcyBhbmQgdXNlCisgICAgICAgIHRoZSByZXN1bHRz
IG9mIHRoZSBDRkcgYW5hbHlzaXMgYWZ0ZXIgZGVtb3RlVmFsdWVzLiBUYWlsZHVwIGRvZXMgdGhp
cy4gRm9ydHVuYXRlbHksIHRhaWxkdXAKKyAgICAgICAgYWxzbyBydW5zIGJyZWFrQ3JpdGljYWxF
ZGdlcy4gUHJvYmFibHkgYW55b25lIHVzaW5nIGRlbW90ZVZhbHVlcyB3aWxsIHVzZSBicmVha0Ny
aXRpY2FsRWRnZXMsCisgICAgICAgIHNvIGl0J3Mgbm90IGJhZCB0byBpbnRyb2R1Y2UgdGhhdCBy
ZXF1aXJlbWVudC4KKyAgICAgICAgCisgICAgICAgIFNvLCB0aGlzIHBhdGNoIHNvbHZlcyB0aGUg
cHJvYmxlbSBieSBlbnN1cmluZyB0aGF0IGJyZWFrQ3JpdGljYWxFZGdlcyB0cmVhdHMgYW55IHBh
dGNocG9pbnQKKyAgICAgICAgdGVybWluYWwgYXMgaWYgaXQgaGFkIG11bHRpcGxlIHN1Y2Nlc3Nv
cnMuIFRoaXMgbWVhbnMgdGhhdCBhIHBhdGNocG9pbnQgdGVybWluYWwncyBzdWNjZXNzb3JzCisg
ICAgICAgIHdpbGwgb25seSBoYXZlIGl0IGFzIHRoZWlyIHByZWRlY2Vzc29yLiBUaGVuLCBkZW1v
dGVWYWx1ZXMganVzdCBwcmVwZW5kcyB0aGUgU2V0IHRvIHRoZQorICAgICAgICBzdWNjZXNzb3Jz
IG9mIHRoZSBwYXRjaHBvaW50IHRlcm1pbmFsLgorICAgICAgICAKKyAgICAgICAgVGhpcyB3YXMg
cHJvYmFibHkgYXN5bXB0b21hdGljLiBJdCdzIGhhcmQgdG8gd3JpdGUgYSBKUyB0ZXN0IHRoYXQg
dHJpZ2dlcnMgdGhpcywgc28gSSBhZGRlZAorICAgICAgICBhIHVuaXQgdGVzdCBpbiB0ZXN0YjMu
CisKKyAgICAgICAgKiBiMy9CM0JyZWFrQ3JpdGljYWxFZGdlcy5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpicmVha0NyaXRpY2FsRWRnZXMpOgorICAgICAgICAqIGIzL0IzQnJlYWtDcml0aWNhbEVk
Z2VzLmg6CisgICAgICAgICogYjMvQjNGaXhTU0EuY3BwOgorICAgICAgICAoSlNDOjpCMzo6ZGVt
b3RlVmFsdWVzKToKKyAgICAgICAgKEpTQzo6QjM6OmZpeFNTQSk6CisgICAgICAgICogYjMvQjNG
aXhTU0EuaDoKKyAgICAgICAgKiBiMy9CM1ZhbHVlLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OlZh
bHVlOjpmb2xkSWRlbnRpdHkgY29uc3QpOgorICAgICAgICAoSlNDOjpCMzo6VmFsdWU6OnBlcmZv
cm1TdWJzdGl0dXRpb24pOgorICAgICAgICAqIGIzL0IzVmFsdWUuaDoKKyAgICAgICAgKiBiMy90
ZXN0YjMuY3BwOgorICAgICAgICAoSlNDOjpCMzo6dGVzdERlbW90ZVBhdGNocG9pbnRUZXJtaW5h
bCk6CisgICAgICAgIChKU0M6OkIzOjpydW4pOgorCiAyMDE4LTA0LTI5ICBGaWxpcCBQaXpsbyAg
PGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgTElDTSBzaG91bGRuJ3QgaG9pc3Qgbm9kZXMg
aWYgaG9pc3RlZCBub2RlcyBleGl0ZWQgaW4gdGhhdCBjb2RlIGJsb2NrCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNCcmVha0NyaXRpY2FsRWRnZXMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0JyZWFrQ3JpdGljYWxFZGdlcy5jcHAJKHJldmlz
aW9uIDIzMTE4NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0JyZWFrQ3JpdGljYWxF
ZGdlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxNi0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDAsNyArNDAsMTAgQEAgdm9pZCBicmVha0NyaXRpY2Fs
RWRnZXMoUHJvY2VkdXJlJiBwcm9jKQogICAgIEJsb2NrSW5zZXJ0aW9uU2V0IGluc2VydGlvblNl
dChwcm9jKTsKICAgICAKICAgICBmb3IgKEJhc2ljQmxvY2sqIGJsb2NrIDogcHJvYykgewotICAg
ICAgICBpZiAoYmxvY2stPm51bVN1Y2Nlc3NvcnMoKSA8PSAxKQorICAgICAgICAvLyBOb24tdm9p
ZCB0ZXJtaW5hbHMgdGhhdCBhcmUgdGhlIG1vcmFsIGVxdWl2YWxlbnQgb2YganVtcHMgdHJpZ2dl
ciBjcml0aWNhbCBlZGdlIGJyYWtpbmcKKyAgICAgICAgLy8gYmVjYXVzZSBvZiBmaXhTU0EncyBk
ZW1vdGVWYWx1ZXMuCisgICAgICAgIGlmIChibG9jay0+bnVtU3VjY2Vzc29ycygpIDw9IDEKKyAg
ICAgICAgICAgICYmIGJsb2NrLT5sYXN0KCktPnR5cGUoKSA9PSBWb2lkKQogICAgICAgICAgICAg
Y29udGludWU7CiAKICAgICAgICAgZm9yIChCYXNpY0Jsb2NrKiYgc3VjY2Vzc29yIDogYmxvY2st
PnN1Y2Nlc3NvckJsb2NrcygpKSB7CkBAIC01Nyw4ICs2MCw4IEBAIHZvaWQgYnJlYWtDcml0aWNh
bEVkZ2VzKFByb2NlZHVyZSYgcHJvYykKICAgICAgICAgfQogICAgIH0KIAotICAgIGluc2VydGlv
blNldC5leGVjdXRlKCk7Ci0gICAgcHJvYy5pbnZhbGlkYXRlQ0ZHKCk7CisgICAgaWYgKGluc2Vy
dGlvblNldC5leGVjdXRlKCkpCisgICAgICAgIHByb2MuaW52YWxpZGF0ZUNGRygpOwogfQogCiB9
IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M0JyZWFrQ3JpdGljYWxFZGdlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM0JyZWFrQ3JpdGljYWxFZGdlcy5oCShyZXZpc2lvbiAyMzExODYpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNCcmVha0NyaXRpY2FsRWRnZXMuaAkod29ya2luZyBjb3B5KQpA
QCAtMzEsNyArMzEsNyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKIAogY2xhc3Mg
UHJvY2VkdXJlOwogCi12b2lkIGJyZWFrQ3JpdGljYWxFZGdlcyhQcm9jZWR1cmUmKTsKK0pTX0VY
UE9SVF9QUklWQVRFIHZvaWQgYnJlYWtDcml0aWNhbEVkZ2VzKFByb2NlZHVyZSYpOwogCiB9IH0g
Ly8gbmFtZXNwYWNlIEpTQzo6QjMKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
Rml4U1NBLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNGaXhT
U0EuY3BwCShyZXZpc2lvbiAyMzExODYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNG
aXhTU0EuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxNi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxNi0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTcyLDYgKzE3Miw3IEBAIHZvaWQgZml4U1NB
R2xvYmFsbHkoUHJvY2VkdXJlJiBwcm9jKQogICAgIFRpbWluZ1Njb3BlIHRpbWluZ1Njb3BlKCJm
aXhTU0E6IGNvbnZlcnQiKTsKICAgICBJbnNlcnRpb25TZXQgaW5zZXJ0aW9uU2V0KHByb2MpOwog
ICAgIEluZGV4U3BhcnNlU2V0PEtleVZhbHVlUGFpcjx1bnNpZ25lZCwgVmFsdWUqPj4gbWFwcGlu
Zyhwcm9jLnZhcmlhYmxlcygpLnNpemUoKSk7CisgICAgSW5kZXhTZXQ8VmFsdWUqPiB2YWx1ZXNU
b0RlbGV0ZTsKICAgICBmb3IgKEJhc2ljQmxvY2sqIGJsb2NrIDogcHJvYy5ibG9ja3NJblByZU9y
ZGVyKCkpIHsKICAgICAgICAgbWFwcGluZy5jbGVhcigpOwogICAgICAgICAKQEAgLTIwNyw2ICsy
MDgsNyBAQCB2b2lkIGZpeFNTQUdsb2JhbGx5KFByb2NlZHVyZSYgcHJvYykKICAgICAgICAgICAg
ICAgICBWYXJpYWJsZSogdmFyaWFibGUgPSB2YXJpYWJsZVZhbHVlLT52YXJpYWJsZSgpOwogCiAg
ICAgICAgICAgICAgICAgdmFsdWUtPnJlcGxhY2VXaXRoSWRlbnRpdHkoZW5zdXJlTWFwcGluZyh2
YXJpYWJsZSwgdmFsdWVJbmRleCwgdmFsdWUtPm9yaWdpbigpKSk7CisgICAgICAgICAgICAgICAg
dmFsdWVzVG9EZWxldGUuYWRkKHZhbHVlKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICAKQEAgLTI0MCwxMiArMjQyLDI1IEBAIHZvaWQgZml4
U1NBR2xvYmFsbHkoUHJvY2VkdXJlJiBwcm9jKQogICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgICAKICAgICAgICAgICAgICAgICBpbnNlcnRpb25TZXQuaW5zZXJ0PFVwc2lsb25WYWx1
ZT4oCi0gICAgICAgICAgICAgICAgICAgIHVwc2lsb25JbnNlcnRpb25Qb2ludCwgdXBzaWxvbk9y
aWdpbiwgbWFwcGVkVmFsdWUsIHBoaSk7CisgICAgICAgICAgICAgICAgICAgIHVwc2lsb25JbnNl
cnRpb25Qb2ludCwgdXBzaWxvbk9yaWdpbiwgbWFwcGVkVmFsdWUtPmZvbGRJZGVudGl0eSgpLCBw
aGkpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAKICAgICAgICAgaW5zZXJ0aW9uU2V0LmV4
ZWN1dGUoYmxvY2spOwogICAgIH0KKyAgICAKKyAgICAvLyBUaGlzIGlzIGlzbid0IHN0cmljdGx5
IG5lY2Vzc2FyeSwgYnV0IGl0IGxlYXZlcyB0aGUgSVIgbmljZSBhbmQgdGlkeSwgd2hpY2ggaXMg
cGFydGljdWxhcmx5CisgICAgLy8gdXNlZnVsIGZvciBwaGFzZXMgdGhhdCBkbyBzaXplIGVzdGlt
YXRlcy4KKyAgICBmb3IgKEJhc2ljQmxvY2sqIGJsb2NrIDogcHJvYykgeworICAgICAgICBibG9j
ay0+dmFsdWVzKCkucmVtb3ZlQWxsTWF0Y2hpbmcoCisgICAgICAgICAgICBbJl0gKFZhbHVlKiB2
YWx1ZSkgLT4gYm9vbCB7CisgICAgICAgICAgICAgICAgaWYgKCF2YWx1ZXNUb0RlbGV0ZS5jb250
YWlucyh2YWx1ZSkgJiYgdmFsdWUtPm9wY29kZSgpICE9IE5vcCkKKyAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHByb2Mu
ZGVsZXRlVmFsdWUodmFsdWUpOworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAg
ICAgICAgfSk7CisgICAgfQogCiAgICAgaWYgKEIzRml4U1NBSW50ZXJuYWw6OnZlcmJvc2UpIHsK
ICAgICAgICAgZGF0YUxvZygiQjMgYWZ0ZXIgU1NBIGNvbnZlcnNpb246XG4iKTsKQEAgLTI4NSw2
ICszMDAsMTUgQEAgdm9pZCBkZW1vdGVWYWx1ZXMoUHJvY2VkdXJlJiBwcm9jLCBjb25zdAogICAg
IC8vIENoYW5nZSBhY2Nlc3NlcyB0byB0aGUgdmFsdWVzIHRvIGFjY2Vzc2VzIHRvIHRoZSBzdGFj
ayBzbG90cy4KICAgICBJbnNlcnRpb25TZXQgaW5zZXJ0aW9uU2V0KHByb2MpOwogICAgIGZvciAo
QmFzaWNCbG9jayogYmxvY2sgOiBwcm9jKSB7CisgICAgICAgIGlmIChibG9jay0+bnVtUHJlZGVj
ZXNzb3JzKCkpIHsKKyAgICAgICAgICAgIFZhbHVlKiB2YWx1ZSA9IGJsb2NrLT5wcmVkZWNlc3Nv
cigwKS0+bGFzdCgpOworICAgICAgICAgICAgVmFyaWFibGUqIHZhcmlhYmxlID0gbWFwLmdldCh2
YWx1ZSk7CisgICAgICAgICAgICBpZiAodmFyaWFibGUpIHsKKyAgICAgICAgICAgICAgICBSRUxF
QVNFX0FTU0VSVChibG9jay0+bnVtUHJlZGVjZXNzb3JzKCkgPT0gMSk7IC8vIENyaXRpY2FsIGVk
Z2VzIGJldHRlciBiZSBicm9rZW4uCisgICAgICAgICAgICAgICAgaW5zZXJ0aW9uU2V0Lmluc2Vy
dDxWYXJpYWJsZVZhbHVlPigwLCBTZXQsIHZhbHVlLT5vcmlnaW4oKSwgdmFyaWFibGUsIHZhbHVl
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKICAgICAgICAgZm9yICh1bnNp
Z25lZCB2YWx1ZUluZGV4ID0gMDsgdmFsdWVJbmRleCA8IGJsb2NrLT5zaXplKCk7ICsrdmFsdWVJ
bmRleCkgewogICAgICAgICAgICAgVmFsdWUqIHZhbHVlID0gYmxvY2stPmF0KHZhbHVlSW5kZXgp
OwogCkBAIC0zMTIsOCArMzM2LDEwIEBAIHZvaWQgZGVtb3RlVmFsdWVzKFByb2NlZHVyZSYgcHJv
YywgY29uc3QKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgaWYgKFZhcmlhYmxlKiB2YXJp
YWJsZSA9IG1hcC5nZXQodmFsdWUpKSB7Ci0gICAgICAgICAgICAgICAgaW5zZXJ0aW9uU2V0Lmlu
c2VydDxWYXJpYWJsZVZhbHVlPigKLSAgICAgICAgICAgICAgICAgICAgdmFsdWVJbmRleCArIDEs
IFNldCwgdmFsdWUtPm9yaWdpbigpLCB2YXJpYWJsZSwgdmFsdWUpOworICAgICAgICAgICAgICAg
IGlmICh2YWx1ZUluZGV4ICsgMSA8IGJsb2NrLT5zaXplKCkpIHsKKyAgICAgICAgICAgICAgICAg
ICAgaW5zZXJ0aW9uU2V0Lmluc2VydDxWYXJpYWJsZVZhbHVlPigKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHZhbHVlSW5kZXggKyAxLCBTZXQsIHZhbHVlLT5vcmlnaW4oKSwgdmFyaWFibGUsIHZh
bHVlKTsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAg
ICAgaW5zZXJ0aW9uU2V0LmV4ZWN1dGUoYmxvY2spOwpAQCAtMzI0LDYgKzM1MCw5IEBAIGJvb2wg
Zml4U1NBKFByb2NlZHVyZSYgcHJvYykKIHsKICAgICBQaGFzZVNjb3BlIHBoYXNlU2NvcGUocHJv
YywgImZpeFNTQSIpOwogCisgICAgaWYgKHByb2MudmFyaWFibGVzKCkuaXNFbXB0eSgpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgCiAgICAgLy8gTG90cyBvZiB2YXJpYWJsZXMgaGF2ZSB0
cml2aWFsIGxvY2FsIGxpdmVuZXNzLiBXZSBjYW4gYWxsb2NhdGUgdGhvc2Ugd2l0aG91dCBhbnkK
ICAgICAvLyB0cm91YmxlLgogICAgIGZpeFNTQUxvY2FsbHkocHJvYyk7CkBAIC0zMzYsNyArMzY1
LDYgQEAgYm9vbCBmaXhTU0EoUHJvY2VkdXJlJiBwcm9jKQogICAgIGlmIChwcm9jLnZhcmlhYmxl
cygpLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAotICAgIC8vIFdlIGtu
b3cgdGhhdCB3ZSBoYXZlIHZhcmlhYmxlcyB0byBvcHRpbWl6ZSwgc28gZG8gdGhhdCBub3cuCiAg
ICAgYnJlYWtDcml0aWNhbEVkZ2VzKHByb2MpOwogCiAgICAgZml4U1NBR2xvYmFsbHkocHJvYyk7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNGaXhTU0EuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNGaXhTU0EuaAkocmV2aXNpb24gMjMxMTg2KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRml4U1NBLmgJKHdvcmtpbmcgY29weSkKQEAg
LTM3LDcgKzM3LDcgQEAgY2xhc3MgUHJvY2VkdXJlOwogCiAvLyBUdXJucyBhbGwgbWVudGlvbnMg
b2YgdGhlIGdpdmVuIHZhbHVlcyBpbnRvIGFjY2Vzc2VzIHRvIHZhcmlhYmxlcy4gVGhpcyBpcyBt
ZWFudCB0byBiZSB1c2VkCiAvLyBmcm9tIHBoYXNlcyB0aGF0IGRvbid0IGxpa2UgU1NBIGZvciB3
aGF0ZXZlciByZWFzb24uCi12b2lkIGRlbW90ZVZhbHVlcyhQcm9jZWR1cmUmLCBjb25zdCBJbmRl
eFNldDxWYWx1ZSo+Jik7CitKU19FWFBPUlRfUFJJVkFURSB2b2lkIGRlbW90ZVZhbHVlcyhQcm9j
ZWR1cmUmLCBjb25zdCBJbmRleFNldDxWYWx1ZSo+Jik7CiAKIC8vIFRoaXMgZml4ZXMgU1NBIGZv
ciB5b3UuIFVzZSB0aGlzIGFmdGVyIHlvdSBoYXZlIGRvbmUgZGVtb3RlVmFsdWVzKCkgYW5kIHlv
dSBoYXZlIHBlcmZvcm1lZAogLy8gd2hhdGV2ZXIgZXZpbCB0cmFuc2Zvcm1hdGlvbiB5b3UgbmVl
ZGVkLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmNwcAkocmV2aXNpb24gMjMx
MTg2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC03NzgsMTMgKzc3OCwyMSBAQCBWYWx1ZUtleSBWYWx1ZTo6a2V5KCkgY29uc3QKICAg
ICB9CiB9CiAKK1ZhbHVlKiBWYWx1ZTo6Zm9sZElkZW50aXR5KCkgY29uc3QKK3sKKyAgICBWYWx1
ZSogY3VycmVudCA9IGNvbnN0X2Nhc3Q8VmFsdWUqPih0aGlzKTsKKyAgICB3aGlsZSAoY3VycmVu
dC0+b3Bjb2RlKCkgPT0gSWRlbnRpdHkpCisgICAgICAgIGN1cnJlbnQgPSBjdXJyZW50LT5jaGls
ZCgwKTsKKyAgICByZXR1cm4gY3VycmVudDsKK30KKwogYm9vbCBWYWx1ZTo6cGVyZm9ybVN1YnN0
aXR1dGlvbigpCiB7CiAgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKICAgICBmb3IgKFZhbHVlKiYg
Y2hpbGQgOiBjaGlsZHJlbigpKSB7Ci0gICAgICAgIHdoaWxlIChjaGlsZC0+b3Bjb2RlKCkgPT0g
SWRlbnRpdHkpIHsKKyAgICAgICAgaWYgKGNoaWxkLT5vcGNvZGUoKSA9PSBJZGVudGl0eSkgewog
ICAgICAgICAgICAgcmVzdWx0ID0gdHJ1ZTsKLSAgICAgICAgICAgIGNoaWxkID0gY2hpbGQtPmNo
aWxkKDApOworICAgICAgICAgICAgY2hpbGQgPSBjaGlsZC0+Zm9sZElkZW50aXR5KCk7CiAgICAg
ICAgIH0KICAgICB9CiAgICAgcmV0dXJuIHJlc3VsdDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM1ZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzVmFsdWUuaAkocmV2aXNpb24gMjMxMTg2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzVmFsdWUuaAkod29ya2luZyBjb3B5KQpAQCAtMjYwLDYgKzI2MCw4IEBAIHB1YmxpYzoKICAg
ICAvLyBlbXB0eSBWYWx1ZUtleSBpZiB0aGlzIFZhbHVlIGlzIGltcHVyZS4gTm90ZSB0aGF0IGFu
IG9wZXJhdGlvbiB0aGF0IHJldHVybnMgVm9pZCBjb3VsZCBzdGlsbAogICAgIC8vIGhhdmUgYSBu
b24tZW1wdHkgVmFsdWVLZXkuIFRoaXMgaGFwcGVucyBmb3IgZXhhbXBsZSB3aXRoIENoZWNrIG9w
ZXJhdGlvbnMuCiAgICAgVmFsdWVLZXkga2V5KCkgY29uc3Q7CisgICAgCisgICAgVmFsdWUqIGZv
bGRJZGVudGl0eSgpIGNvbnN0OwogCiAgICAgLy8gTWFrZXMgc3VyZSB0aGF0IG5vbmUgb2YgdGhl
IGNoaWxkcmVuIGFyZSBJZGVudGl0eSdzLiBJZiBhIGNoaWxkIHBvaW50cyB0byBJZGVudGl0eSwg
dGhpcyB3aWxsCiAgICAgLy8gcmVwb2ludCBpdCBhdCB0aGUgSWRlbnRpdHkncyBjaGlsZC4gRm9y
IHNpbXBsaWNpdHksIHRoaXMgd2lsbCBmb2xsb3cgYXJiaXRyYXJpbHkgbG9uZyBjaGFpbnMKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuY3BwCShyZXZpc2lvbiAyMzExODYpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIs
NiArMzIsNyBAQAogI2luY2x1ZGUgIkIzQXJndW1lbnRSZWdWYWx1ZS5oIgogI2luY2x1ZGUgIkIz
QXRvbWljVmFsdWUuaCIKICNpbmNsdWRlICJCM0Jhc2ljQmxvY2tJbmxpbmVzLmgiCisjaW5jbHVk
ZSAiQjNCcmVha0NyaXRpY2FsRWRnZXMuaCIKICNpbmNsdWRlICJCM0NDYWxsVmFsdWUuaCIKICNp
bmNsdWRlICJCM0NvbXBpbGF0aW9uLmgiCiAjaW5jbHVkZSAiQjNDb21waWxlLmgiCkBAIC00MCw2
ICs0MSw3IEBACiAjaW5jbHVkZSAiQjNDb25zdFB0clZhbHVlLmgiCiAjaW5jbHVkZSAiQjNFZmZl
Y3RzLmgiCiAjaW5jbHVkZSAiQjNGZW5jZVZhbHVlLmgiCisjaW5jbHVkZSAiQjNGaXhTU0EuaCIK
ICNpbmNsdWRlICJCM0dlbmVyYXRlLmgiCiAjaW5jbHVkZSAiQjNMb3dlclRvQWlyLmgiCiAjaW5j
bHVkZSAiQjNNYXRoRXh0cmFzLmgiCkBAIC02OSw2ICs3MSw3IEBACiAjaW5jbHVkZSA8Y21hdGg+
CiAjaW5jbHVkZSA8c3RyaW5nPgogI2luY2x1ZGUgPHd0Zi9GYXN0VExTLmg+CisjaW5jbHVkZSA8
d3RmL0luZGV4U2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0xpc3REdW1wLmg+CiAjaW5jbHVkZSA8d3Rm
L0xvY2suaD4KICNpbmNsdWRlIDx3dGYvTnVtYmVyT2ZDb3Jlcy5oPgpAQCAtMTYyMTAsNiArMTYy
MTMsMjcgQEAgdm9pZCB0ZXN0U2h1ZmZsZURvZXNudFRyYXNoQ2FsbGVlU2F2ZXMoKQogICAgIGZh
c3RGcmVlKGlucHV0UHRyKTsKIH0KIAordm9pZCB0ZXN0RGVtb3RlUGF0Y2hwb2ludFRlcm1pbmFs
KCkKK3sKKyAgICBQcm9jZWR1cmUgcHJvYzsKKyAgICAKKyAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOworICAgIEJhc2ljQmxvY2sqIGRvbmUgPSBwcm9jLmFkZEJsb2NrKCk7
CisgICAgCisgICAgUGF0Y2hwb2ludFZhbHVlKiBwYXRjaHBvaW50ID0gcm9vdC0+YXBwZW5kTmV3
PFBhdGNocG9pbnRWYWx1ZT4ocHJvYywgSW50MzIsIE9yaWdpbigpKTsKKyAgICBwYXRjaHBvaW50
LT5lZmZlY3RzLnRlcm1pbmFsID0gdHJ1ZTsKKyAgICByb290LT5zZXRTdWNjZXNzb3JzKGRvbmUp
OworICAgIAorICAgIGRvbmUtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcGF0Y2hwb2ludCk7CisgICAgCisgICAgcHJvYy5yZXNldFJlYWNoYWJpbGl0eSgpOworICAg
IGJyZWFrQ3JpdGljYWxFZGdlcyhwcm9jKTsKKyAgICBJbmRleFNldDxWYWx1ZSo+IHZhbHVlc1Rv
RGVtb3RlOworICAgIHZhbHVlc1RvRGVtb3RlLmFkZChwYXRjaHBvaW50KTsKKyAgICBkZW1vdGVW
YWx1ZXMocHJvYywgdmFsdWVzVG9EZW1vdGUpOworICAgIHZhbGlkYXRlKHByb2MpOworfQorCiAv
LyBNYWtlIHN1cmUgdGhlIGNvbXBpbGVyIGRvZXMgbm90IHRyeSB0byBvcHRpbWl6ZSBhbnl0aGlu
ZyBvdXQuCiBORVZFUl9JTkxJTkUgZG91YmxlIHplcm8oKQogewpAQCAtMTc3NzcsNiArMTc4MDEs
NyBAQCB2b2lkIHJ1bihjb25zdCBjaGFyKiBmaWx0ZXIpCiAgICAgUlVOKHRlc3RGbG9hdEVxdWFs
T3JVbm9yZGVyZWREb250Rm9sZCgpKTsKICAgICAKICAgICBSVU4odGVzdFNodWZmbGVEb2VzbnRU
cmFzaENhbGxlZVNhdmVzKCkpOworICAgIFJVTih0ZXN0RGVtb3RlUGF0Y2hwb2ludFRlcm1pbmFs
KCkpOwogCiAgICAgaWYgKGlzWDg2KCkpIHsKICAgICAgICAgUlVOKHRlc3RCcmFuY2hCaXRBbmRJ
bW1GdXNpb24oSWRlbnRpdHksIEludDY0LCAxLCBBaXI6OkJyYW5jaFRlc3QzMiwgQWlyOjpBcmc6
OlRtcCkpOwo=
</data>
<flag name="review"
          id="357419"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>