<?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>127709</bug_id>
          
          <creation_ts>2014-01-27 14:24:45 -0800</creation_ts>
          <short_desc>FTL ArithMod case needs to be factored for hackability and correctness rather than just minimizing the amount of code</short_desc>
          <delta_ts>2014-01-27 14:33:01 -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>112840</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>mmirman</cc>
    
    <cc>msaboff</cc>
    
    <cc>nrotem</cc>
    
    <cc>oliver</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>972564</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-01-27 14:24:45 -0800</bug_when>
    <thetext>The refactoring to make ArithDiv and ArithMod share code created two bugs.  One was fixed some time ago and I don&apos;t want to fix the other one.  The issue here is that although the two operations appear at first to have the same lowering, they actually have subtle differences.  Trying to make them share code will cause bugs.  Some of those bugs will be correctness bugs and then maybe you will catch them, but other times they will be performance bugs - like a 2x regression in audio-oscillator - and then maybe you&apos;ll overlook them.

The correct solution is to roll out the offending fix and to be more careful about changing ArithMod in the future.  It has historically been the case that everytime someone tries to refactor ArithMod lowering, they introduce bugs.  Sometimes those bugs are really hard to track down.  I&apos;m really tired of having to fix ArithMod bugs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972565</commentid>
    <comment_count>1</comment_count>
      <attachid>222357</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-01-27 14:25:51 -0800</bug_when>
    <thetext>Created attachment 222357
the patch

Already rs=markH.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972573</commentid>
    <comment_count>2</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-01-27 14:33:01 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/162868</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222357</attachid>
            <date>2014-01-27 14:25:51 -0800</date>
            <delta_ts>2014-01-27 14:25:51 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>10386</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTYyODY3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBA
CisyMDE0LTAxLTI3ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
RlRMIEFyaXRoTW9kIGNhc2UgbmVlZHMgdG8gYmUgZmFjdG9yZWQgZm9yIGhhY2thYmlsaXR5IGFu
ZCBjb3JyZWN0bmVzcyByYXRoZXIgdGhhbiBqdXN0IG1pbmltaXppbmcgdGhlIGFtb3VudCBvZiBj
b2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc3
MDkKKworICAgICAgICBSdWJiZXIgc3RhbXBlZCBieSBNYXJrIEhhaG5lbmJlcmcuCisgICAgICAg
IAorICAgICAgICBSb2xsIG91dCBwYXJ0IG9mIHIxNTY3ODQuCisKKyAgICAgICAgKiBmdGwvRlRM
TG93ZXJERkdUb0xMVk0uY3BwOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpj
b21waWxlTm9kZSk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVB
cml0aERpdik6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVBcml0
aE1vZCk6CisKIDIwMTQtMDEtMjcgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxl
LmNvbT4KIAogICAgICAgICBBZGRlZCBtaXNzaW5nIGZpbGVzIHRvIHRoZSBicmFuY2guCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAko
cmV2aXNpb24gMTYyODY3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRG
R1RvTExWTS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxNCw4ICszMTQsMTAgQEAgcHJpdmF0ZToK
ICAgICAgICAgICAgIGNvbXBpbGVBcml0aE11bCgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIGNhc2UgQXJpdGhEaXY6CisgICAgICAgICAgICBjb21waWxlQXJpdGhEaXYoKTsKKyAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFyaXRoTW9kOgotICAgICAgICAgICAgY29tcGls
ZUFyaXRoRGl2TW9kKCk7CisgICAgICAgICAgICBjb21waWxlQXJpdGhNb2QoKTsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFyaXRoTWluOgogICAgICAgICBjYXNlIEFyaXRoTWF4
OgpAQCAtMTA3NCwxNiArMTA3NiwxNiBAQCBwcml2YXRlOgogICAgICAgICB9CiAgICAgfQogCi0g
ICAgdm9pZCBjb21waWxlQXJpdGhEaXZNb2QoKQorICAgIHZvaWQgY29tcGlsZUFyaXRoRGl2KCkK
ICAgICB7CiAgICAgICAgIHN3aXRjaCAobV9ub2RlLT5iaW5hcnlVc2VLaW5kKCkpIHsKICAgICAg
ICAgY2FzZSBJbnQzMlVzZTogewogICAgICAgICAgICAgTFZhbHVlIG51bWVyYXRvciA9IGxvd0lu
dDMyKG1fbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgTFZhbHVlIGRlbm9taW5hdG9yID0g
bG93SW50MzIobV9ub2RlLT5jaGlsZDIoKSk7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIExC
YXNpY0Jsb2NrIHVuc2FmZURlbm9taW5hdG9yID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0
aERpdk1vZCB1bnNhZmUgZGVub21pbmF0b3IiKSk7Ci0gICAgICAgICAgICBMQmFzaWNCbG9jayBj
b250aW51YXRpb24gPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoRGl2TW9kIGNvbnRpbnVh
dGlvbiIpKTsKLSAgICAgICAgICAgIExCYXNpY0Jsb2NrIGRvbmUgPSBGVExfTkVXX0JMT0NLKG1f
b3V0LCAoIkFyaXRoRGl2TW9kIGRvbmUiKSk7CisgICAgICAgICAgICBMQmFzaWNCbG9jayB1bnNh
ZmVEZW5vbWluYXRvciA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhEaXYgdW5zYWZlIGRl
bm9taW5hdG9yIikpOworICAgICAgICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0aW9uID0gRlRM
X05FV19CTE9DSyhtX291dCwgKCJBcml0aERpdiBjb250aW51YXRpb24iKSk7CisgICAgICAgICAg
ICBMQmFzaWNCbG9jayBkb25lID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0aERpdiBkb25l
IikpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBWZWN0b3I8VmFsdWVGcm9tQmxvY2ssIDM+
IHJlc3VsdHM7CiAgICAgICAgICAgICAKQEAgLTExMDUsOSArMTEwNyw5IEBAIHByaXZhdGU6CiAg
ICAgICAgICAgICAgICAgLy8gSWYgdGhlIGRlbm9taW5hdG9yIGlzIG5vdCB6ZXJvIChpLmUuIGl0
J3MgLTEgYmVjYXVzZSB3ZSdyZSBndWFyZGVkIGJ5IHRoZQogICAgICAgICAgICAgICAgIC8vIGNo
ZWNrIGFib3ZlKSBhbmQgdGhlIG51bWVyYXRvciBpcyAtMl4zMSB0aGVuIHRoZSByZXN1bHQgc2hv
dWxkIGJlIC0yXjMxLgogICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIExCYXNpY0Js
b2NrIGRpdkJ5WmVybyA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhEaXZNb2QgZGl2aWRl
IGJ5IHplcm8iKSk7Ci0gICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sgbm90RGl2QnlaZXJvID0g
RlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0aERpdk1vZCBub3QgZGl2aWRlIGJ5IHplcm8iKSk7
Ci0gICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sgbmVnMlRvVGhlMzFCeU5lZzEgPSBGVExfTkVX
X0JMT0NLKG1fb3V0LCAoIkFyaXRoRGl2TW9kIC0yXjMxLy0xIikpOworICAgICAgICAgICAgICAg
IExCYXNpY0Jsb2NrIGRpdkJ5WmVybyA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhEaXYg
ZGl2aWRlIGJ5IHplcm8iKSk7CisgICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sgbm90RGl2Qnla
ZXJvID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0aERpdiBub3QgZGl2aWRlIGJ5IHplcm8i
KSk7CisgICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sgbmVnMlRvVGhlMzFCeU5lZzEgPSBGVExf
TkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoRGl2IC0yXjMxLy0xIikpOwogICAgICAgICAgICAgICAg
IAogICAgICAgICAgICAgICAgIG1fb3V0LmJyYW5jaChtX291dC5pc1plcm8zMihkZW5vbWluYXRv
ciksIGRpdkJ5WmVybywgbm90RGl2QnlaZXJvKTsKICAgICAgICAgICAgICAgICAKQEAgLTExMTks
MTggKzExMjEsMTUgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBtX291dC5icmFuY2gobV9v
dXQuZXF1YWwobnVtZXJhdG9yLCBuZWcyVG9UaGUzMSksIG5lZzJUb1RoZTMxQnlOZWcxLCBjb250
aW51YXRpb24pOwogICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIG1fb3V0LmFwcGVu
ZFRvKG5lZzJUb1RoZTMxQnlOZWcxLCBjb250aW51YXRpb24pOwotICAgICAgICAgICAgICAgIGlm
IChtX25vZGUtPm9wKCkgPT0gQXJpdGhEaXYpCi0gICAgICAgICAgICAgICAgICAgIHJlc3VsdHMu
YXBwZW5kKG1fb3V0LmFuY2hvcihuZWcyVG9UaGUzMSkpOwotICAgICAgICAgICAgICAgIGVsc2UK
LSAgICAgICAgICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQobV9vdXQuYW5jaG9yKG1fb3V0Lmlu
dDMyWmVybykpOworICAgICAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKG1fb3V0LmFuY2hvcihu
ZWcyVG9UaGUzMSkpOwogICAgICAgICAgICAgICAgIG1fb3V0Lmp1bXAoZG9uZSk7CiAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGNvbnRpbnVh
dGlvbiwgZG9uZSk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGlmIChzaG91bGRDaGVja05l
Z2F0aXZlWmVybyhtX25vZGUtPmFyaXRoTW9kZSgpKSkgewotICAgICAgICAgICAgICAgIExCYXNp
Y0Jsb2NrIHplcm9OdW1lcmF0b3IgPSBGVExfTkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoRGl2TW9k
IHplcm8gbnVtZXJhdG9yIikpOwotICAgICAgICAgICAgICAgIExCYXNpY0Jsb2NrIG51bWVyYXRv
ckNvbnRpbnVhdGlvbiA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhEaXZNb2QgbnVtZXJh
dG9yIGNvbnRpbnVhdGlvbiIpKTsKKyAgICAgICAgICAgICAgICBMQmFzaWNCbG9jayB6ZXJvTnVt
ZXJhdG9yID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0aERpdiB6ZXJvIG51bWVyYXRvciIp
KTsKKyAgICAgICAgICAgICAgICBMQmFzaWNCbG9jayBudW1lcmF0b3JDb250aW51YXRpb24gPSBG
VExfTkVXX0JMT0NLKG1fb3V0LCAoIkFyaXRoRGl2IG51bWVyYXRvciBjb250aW51YXRpb24iKSk7
CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgbV9vdXQuYnJhbmNoKG1fb3V0Lmlz
WmVybzMyKG51bWVyYXRvciksIHplcm9OdW1lcmF0b3IsIG51bWVyYXRvckNvbnRpbnVhdGlvbik7
CiAgICAgICAgICAgICAgICAgCkBAIC0xMTQ0LDE3ICsxMTQzLDE1IEBAIHByaXZhdGU6CiAgICAg
ICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8obnVtZXJhdG9yQ29udGludWF0aW9uLCBpbm5lckxh
c3ROZXh0KTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIAotICAgICAgICAgICAgTFZhbHVl
IGRpdk1vZFJlc3VsdCA9IG1fbm9kZS0+b3AoKSA9PSBBcml0aERpdgotICAgICAgICAgICAgICAg
ID8gbV9vdXQuZGl2KG51bWVyYXRvciwgZGVub21pbmF0b3IpCi0gICAgICAgICAgICAgICAgOiBt
X291dC5yZW0obnVtZXJhdG9yLCBkZW5vbWluYXRvcik7CisgICAgICAgICAgICBMVmFsdWUgcmVz
dWx0ID0gbV9vdXQuZGl2KG51bWVyYXRvciwgZGVub21pbmF0b3IpOwogICAgICAgICAgICAgCiAg
ICAgICAgICAgICBpZiAoc2hvdWxkQ2hlY2tPdmVyZmxvdyhtX25vZGUtPmFyaXRoTW9kZSgpKSkg
ewogICAgICAgICAgICAgICAgIHNwZWN1bGF0ZSgKICAgICAgICAgICAgICAgICAgICAgT3ZlcmZs
b3csIG5vVmFsdWUoKSwgMCwKLSAgICAgICAgICAgICAgICAgICAgbV9vdXQubm90RXF1YWwobV9v
dXQubXVsKGRpdk1vZFJlc3VsdCwgZGVub21pbmF0b3IpLCBudW1lcmF0b3IpKTsKKyAgICAgICAg
ICAgICAgICAgICAgbV9vdXQubm90RXF1YWwobV9vdXQubXVsKHJlc3VsdCwgZGVub21pbmF0b3Ip
LCBudW1lcmF0b3IpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIAotICAgICAgICAgICAg
cmVzdWx0cy5hcHBlbmQobV9vdXQuYW5jaG9yKGRpdk1vZFJlc3VsdCkpOworICAgICAgICAgICAg
cmVzdWx0cy5hcHBlbmQobV9vdXQuYW5jaG9yKHJlc3VsdCkpOwogICAgICAgICAgICAgbV9vdXQu
anVtcChkb25lKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oZG9u
ZSwgbGFzdE5leHQpOwpAQCAtMTE2NCw5ICsxMTYxLDggQEAgcHJpdmF0ZToKICAgICAgICAgfQog
ICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgTnVtYmVyVXNlOiB7Ci0gICAgICAgICAgICBMVmFs
dWUgQzEgPSBsb3dEb3VibGUobV9ub2RlLT5jaGlsZDEoKSk7Ci0gICAgICAgICAgICBMVmFsdWUg
QzIgPSBsb3dEb3VibGUobV9ub2RlLT5jaGlsZDIoKSk7Ci0gICAgICAgICAgICBzZXREb3VibGUo
bV9ub2RlLT5vcCgpID09IEFyaXRoRGl2ID8gbV9vdXQuZG91YmxlRGl2KEMxLCBDMikgOiBtX291
dC5kb3VibGVSZW0oQzEsIEMyKSk7CisgICAgICAgICAgICBzZXREb3VibGUobV9vdXQuZG91Ymxl
RGl2KAorICAgICAgICAgICAgICAgIGxvd0RvdWJsZShtX25vZGUtPmNoaWxkMSgpKSwgbG93RG91
YmxlKG1fbm9kZS0+Y2hpbGQyKCkpKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQog
ICAgICAgICAgICAgCkBAIC0xMTc2LDYgKzExNzIsOTkgQEAgcHJpdmF0ZToKICAgICAgICAgfQog
ICAgIH0KICAgICAKKyAgICB2b2lkIGNvbXBpbGVBcml0aE1vZCgpCisgICAgeworICAgICAgICBz
d2l0Y2ggKG1fbm9kZS0+YmluYXJ5VXNlS2luZCgpKSB7CisgICAgICAgIGNhc2UgSW50MzJVc2U6
IHsKKyAgICAgICAgICAgIExWYWx1ZSBudW1lcmF0b3IgPSBsb3dJbnQzMihtX25vZGUtPmNoaWxk
MSgpKTsKKyAgICAgICAgICAgIExWYWx1ZSBkZW5vbWluYXRvciA9IGxvd0ludDMyKG1fbm9kZS0+
Y2hpbGQyKCkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBMQmFzaWNCbG9jayB1bnNhZmVE
ZW5vbWluYXRvciA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiQXJpdGhNb2QgdW5zYWZlIGRlbm9t
aW5hdG9yIikpOworICAgICAgICAgICAgTEJhc2ljQmxvY2sgY29udGludWF0aW9uID0gRlRMX05F
V19CTE9DSyhtX291dCwgKCJBcml0aE1vZCBjb250aW51YXRpb24iKSk7CisgICAgICAgICAgICBM
QmFzaWNCbG9jayBkb25lID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0aE1vZCBkb25lIikp
OworICAgICAgICAgICAgCisgICAgICAgICAgICBWZWN0b3I8VmFsdWVGcm9tQmxvY2ssIDM+IHJl
c3VsdHM7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIExWYWx1ZSBhZGp1c3RlZERlbm9taW5h
dG9yID0gbV9vdXQuYWRkKGRlbm9taW5hdG9yLCBtX291dC5pbnQzMk9uZSk7CisgICAgICAgICAg
ICAKKyAgICAgICAgICAgIG1fb3V0LmJyYW5jaChtX291dC5hYm92ZShhZGp1c3RlZERlbm9taW5h
dG9yLCBtX291dC5pbnQzMk9uZSksIGNvbnRpbnVhdGlvbiwgdW5zYWZlRGVub21pbmF0b3IpOwor
ICAgICAgICAgICAgCisgICAgICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFw
cGVuZFRvKHVuc2FmZURlbm9taW5hdG9yLCBjb250aW51YXRpb24pOworICAgICAgICAgICAgCisg
ICAgICAgICAgICBMVmFsdWUgbmVnMlRvVGhlMzEgPSBtX291dC5jb25zdEludDMyKC0yMTQ3NDgz
NjQ3LTEpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBGSVhNRTogLTJeMzEgLyAtMSB3
aWxsIGFjdHVhbGx5IHlpZWxkIG5lZ2F0aXZlIHplcm8sIHNvIHdlIGNvdWxkIGhhdmUgYQorICAg
ICAgICAgICAgLy8gc2VwYXJhdGUgY2FzZSBmb3IgdGhhdC4gQnV0IGl0IHByb2JhYmx5IGRvZXNu
J3QgbWF0dGVyIHNvIG11Y2guCisgICAgICAgICAgICBpZiAoc2hvdWxkQ2hlY2tPdmVyZmxvdyht
X25vZGUtPmFyaXRoTW9kZSgpKSkgeworICAgICAgICAgICAgICAgIExWYWx1ZSBjb25kID0gbV9v
dXQuYml0T3IobV9vdXQuaXNaZXJvMzIoZGVub21pbmF0b3IpLCBtX291dC5lcXVhbChudW1lcmF0
b3IsIG5lZzJUb1RoZTMxKSk7CisgICAgICAgICAgICAgICAgc3BlY3VsYXRlKE92ZXJmbG93LCBu
b1ZhbHVlKCksIDAsIGNvbmQpOworICAgICAgICAgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0
aW9uKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyB0
aGUgY2FzZSB3aGVyZSB3ZSBjb252ZXJ0IHRoZSByZXN1bHQgdG8gYW4gaW50IGFmdGVyIHdlJ3Jl
IGRvbmUuIFNvLAorICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBkZW5vbWluYXRvciBpcyB6ZXJv
LCB0aGVuIHRoZSByZXN1bHQgc2hvdWxkIGJlIHJlc3VsdCBzaG91bGQgYmUgemVyby4KKyAgICAg
ICAgICAgICAgICAvLyBJZiB0aGUgZGVub21pbmF0b3IgaXMgbm90IHplcm8gKGkuZS4gaXQncyAt
MSBiZWNhdXNlIHdlJ3JlIGd1YXJkZWQgYnkgdGhlCisgICAgICAgICAgICAgICAgLy8gY2hlY2sg
YWJvdmUpIGFuZCB0aGUgbnVtZXJhdG9yIGlzIC0yXjMxIHRoZW4gdGhlIHJlc3VsdCBzaG91bGQg
YmUgLTJeMzEuCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sg
bW9kQnlaZXJvID0gRlRMX05FV19CTE9DSyhtX291dCwgKCJBcml0aE1vZCBtb2R1bG8gYnkgemVy
byIpKTsKKyAgICAgICAgICAgICAgICBMQmFzaWNCbG9jayBub3RNb2RCeVplcm8gPSBGVExfTkVX
X0JMT0NLKG1fb3V0LCAoIkFyaXRoTW9kIG5vdCBtb2R1bG8gYnkgemVybyIpKTsKKyAgICAgICAg
ICAgICAgICBMQmFzaWNCbG9jayBuZWcyVG9UaGUzMUJ5TmVnMSA9IEZUTF9ORVdfQkxPQ0sobV9v
dXQsICgiQXJpdGhNb2QgLTJeMzEvLTEiKSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAg
ICAgICAgbV9vdXQuYnJhbmNoKG1fb3V0LmlzWmVybzMyKGRlbm9taW5hdG9yKSwgbW9kQnlaZXJv
LCBub3RNb2RCeVplcm8pOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIG1fb3V0
LmFwcGVuZFRvKG1vZEJ5WmVybywgbm90TW9kQnlaZXJvKTsKKyAgICAgICAgICAgICAgICByZXN1
bHRzLmFwcGVuZChtX291dC5hbmNob3IobV9vdXQuaW50MzJaZXJvKSk7CisgICAgICAgICAgICAg
ICAgbV9vdXQuanVtcChkb25lKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBt
X291dC5hcHBlbmRUbyhub3RNb2RCeVplcm8sIG5lZzJUb1RoZTMxQnlOZWcxKTsKKyAgICAgICAg
ICAgICAgICBtX291dC5icmFuY2gobV9vdXQuZXF1YWwobnVtZXJhdG9yLCBuZWcyVG9UaGUzMSks
IG5lZzJUb1RoZTMxQnlOZWcxLCBjb250aW51YXRpb24pOworICAgICAgICAgICAgICAgIAorICAg
ICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKG5lZzJUb1RoZTMxQnlOZWcxLCBjb250aW51YXRp
b24pOworICAgICAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKG1fb3V0LmFuY2hvcihtX291dC5p
bnQzMlplcm8pKTsKKyAgICAgICAgICAgICAgICBtX291dC5qdW1wKGRvbmUpOworICAgICAgICAg
ICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhjb250aW51YXRp
b24sIGRvbmUpOworICAgICAgICAgICAgCisgICAgICAgICAgICBMVmFsdWUgcmVtYWluZGVyID0g
bV9vdXQucmVtKG51bWVyYXRvciwgZGVub21pbmF0b3IpOworICAgICAgICAgICAgCisgICAgICAg
ICAgICBpZiAoc2hvdWxkQ2hlY2tOZWdhdGl2ZVplcm8obV9ub2RlLT5hcml0aE1vZGUoKSkpIHsK
KyAgICAgICAgICAgICAgICBMQmFzaWNCbG9jayBuZWdhdGl2ZU51bWVyYXRvciA9IEZUTF9ORVdf
QkxPQ0sobV9vdXQsICgiQXJpdGhNb2QgbmVnYXRpdmUgbnVtZXJhdG9yIikpOworICAgICAgICAg
ICAgICAgIExCYXNpY0Jsb2NrIG51bWVyYXRvckNvbnRpbnVhdGlvbiA9IEZUTF9ORVdfQkxPQ0so
bV9vdXQsICgiQXJpdGhNb2QgbnVtZXJhdG9yIGNvbnRpbnVhdGlvbiIpKTsKKyAgICAgICAgICAg
ICAgICAKKyAgICAgICAgICAgICAgICBtX291dC5icmFuY2goCisgICAgICAgICAgICAgICAgICAg
IG1fb3V0Lmxlc3NUaGFuKG51bWVyYXRvciwgbV9vdXQuaW50MzJaZXJvKSwKKyAgICAgICAgICAg
ICAgICAgICAgbmVnYXRpdmVOdW1lcmF0b3IsIG51bWVyYXRvckNvbnRpbnVhdGlvbik7CisgICAg
ICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgTEJhc2ljQmxvY2sgaW5uZXJMYXN0TmV4dCA9
IG1fb3V0LmFwcGVuZFRvKG5lZ2F0aXZlTnVtZXJhdG9yLCBudW1lcmF0b3JDb250aW51YXRpb24p
OworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHNwZWN1bGF0ZShOZWdhdGl2ZVpl
cm8sIG5vVmFsdWUoKSwgMCwgbV9vdXQuaXNaZXJvMzIocmVtYWluZGVyKSk7CisgICAgICAgICAg
ICAgICAgCisgICAgICAgICAgICAgICAgbV9vdXQuanVtcChudW1lcmF0b3JDb250aW51YXRpb24p
OworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKG51bWVy
YXRvckNvbnRpbnVhdGlvbiwgaW5uZXJMYXN0TmV4dCk7CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICAKKyAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKG1fb3V0LmFuY2hvcihyZW1haW5kZXIp
KTsKKyAgICAgICAgICAgIG1fb3V0Lmp1bXAoZG9uZSk7CisgICAgICAgICAgICAKKyAgICAgICAg
ICAgIG1fb3V0LmFwcGVuZFRvKGRvbmUsIGxhc3ROZXh0KTsKKyAgICAgICAgICAgIAorICAgICAg
ICAgICAgc2V0SW50MzIobV9vdXQucGhpKG1fb3V0LmludDMyLCByZXN1bHRzKSk7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIGNhc2UgTnVtYmVy
VXNlOiB7CisgICAgICAgICAgICBzZXREb3VibGUoCisgICAgICAgICAgICAgICAgbV9vdXQuZG91
YmxlUmVtKGxvd0RvdWJsZShtX25vZGUtPmNoaWxkMSgpKSwgbG93RG91YmxlKG1fbm9kZS0+Y2hp
bGQyKCkpKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICAgICAgCisg
ICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKICAgICB2b2lkIGNvbXBp
bGVBcml0aE1pbk9yTWF4KCkKICAgICB7CiAgICAgICAgIHN3aXRjaCAobV9ub2RlLT5iaW5hcnlV
c2VLaW5kKCkpIHsK
</data>

          </attachment>
      

    </bug>

</bugzilla>