<?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>65212</bug_id>
          
          <creation_ts>2011-07-26 15:42:39 -0700</creation_ts>
          <short_desc>DFG speculative JIT never emits inline double comparisons, even when it would be obvious more efficient to do so</short_desc>
          <delta_ts>2011-07-26 18:28:01 -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>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>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>barraclough</cc>
    
    <cc>fpizlo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>442580</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-07-26 15:42:39 -0700</bug_when>
    <thetext>The DFG speculative JIT gets some of its performance improvement from treating certain numbers as doubles and never as ints.  But comparisons don&apos;t take advantage of this, and instead either speculate integer, or perform slow C calls.  The DFG speculative JIT&apos;s compare/branch implementations should inline double comparisons if it&apos;s obvious that this would be a win, for example if both operands are known to be double.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442583</commentid>
    <comment_count>1</comment_count>
      <attachid>102066</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-07-26 15:47:45 -0700</bug_when>
    <thetext>Created attachment 102066
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442677</commentid>
    <comment_count>2</comment_count>
      <attachid>102066</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-26 18:27:56 -0700</bug_when>
    <thetext>Comment on attachment 102066
the patch

Clearing flags on attachment: 102066

Committed r91807: &lt;http://trac.webkit.org/changeset/91807&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442678</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-26 18:28:01 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102066</attachid>
            <date>2011-07-26 15:47:45 -0700</date>
            <delta_ts>2011-07-26 18:27:56 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>fastspeccompare_patch_1.diff</filename>
            <type>text/plain</type>
            <size>9699</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTE3OTQpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjcgQEAK
KzIwMTEtMDctMjYgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBE
Rkcgc3BlY3VsYXRpdmUgSklUIG5ldmVyIGVtaXRzIGlubGluZSBkb3VibGUgY29tcGFyaXNvbnMs
IGV2ZW4gd2hlbiBpdAorICAgICAgICB3b3VsZCBiZSBvYnZpb3VzIG1vcmUgZWZmaWNpZW50IHRv
IGRvIHNvLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NjUyMTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisg
ICAgICAgIFRoaXMgaGFuZGxlcyB0aGUgb2J2aW91cyBjYXNlIG9mIGlubGluaW5nIGRvdWJsZSBj
b21wYXJpc29uczogaXQgb25seSBhZGRyZXNzZXMKKyAgICAgICAgdGhlIHNwZWN1bGF0aXZlIEpJ
VCwgYW5kIG9ubHkgZm9yIGZ1c2VkIGNvbXBhcmUvYnJhbmNoIHNlcXVlbmNlcy4gIEJ1dCBpdCBk
b2VzCisgICAgICAgIGhhbmRsZSB0aGUgY2FzZSB3aGVyZSBib3RoIG9wZXJhbmRzIGFyZSBkb3Vi
bGUgKGFuZCB0aGVyZSBpcyBubyBzbG93IHBhdGgpLAorICAgICAgICBvciB3aGVyZSBvbmUgb3Bl
cmFuZCBpcyBkb3VibGUgYW5kIHRoZSBvdGhlciBpcyB1bmtub3duIHR5cGUgKGluIHdoaWNoIGNh
c2UgaXQKKyAgICAgICAgYXR0ZW1wdHMgdG8gdW5ib3ggdGhlIGRvdWJsZSwgb3RoZXJ3aXNlIHRh
a2luZyBzbG93IHBhdGgpLiAgVGhpcyBpcyBhbiAwLjglCisgICAgICAgIHNwZWVkLXVwIG9uIFN1
blNwaWRlci4KKworICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6CisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbnZlcnRUb0RvdWJsZSk6CisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQZWVwSG9sZURvdWJsZUJyYW5jaCk6Cisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBhcmUpOgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3Vs
YXRpdmVKSVQuaDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6aXNSZWdpc3Rl
ckRhdGFGb3JtYXREb3VibGUpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpz
aG91bGRTcGVjdWxhdGVJbnRlZ2VyKToKKwogMjAxMS0wNy0yNiAgTWFyayBIYWhuZW5iZXJnICA8
bWhhaG5lbmJlcmdAYXBwbGUuY29tPgogCiAgICAgICAgIFJlZmFjdG9yIGF1dG9tYXRpY2FsbHkg
Z2VuZXJhdGVkIEpTIERPTSBiaW5kaW5ncyB0byByZXBsYWNlIG9wZXJhdG9yIG5ldyB3aXRoIHN0
YXRpYyBjcmVhdGUgbWV0aG9kcwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAJKHJldmlzaW9uIDkxNzc1KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4
MCw4ICszODAsMTA3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQZWVwSG9sZUludGUK
ICAgICAgICAgYWRkQnJhbmNoKG1faml0Lmp1bXAoKSwgbm90VGFrZW4pOwogfQogCitKSVRDb21w
aWxlcjo6SnVtcCBTcGVjdWxhdGl2ZUpJVDo6Y29udmVydFRvRG91YmxlKEdQUlJlZyB2YWx1ZSwg
RlBSUmVnIHJlc3VsdCwgR1BSUmVnIHRtcCkKK3sKKyAgICBKSVRDb21waWxlcjo6SnVtcCBpc0lu
dGVnZXIgPSBtX2ppdC5icmFuY2hQdHIoTWFjcm9Bc3NlbWJsZXI6OkFib3ZlT3JFcXVhbCwgdmFs
dWUsIEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3Rlcik7CisgICAgCisgICAgSklUQ29tcGls
ZXI6Okp1bXAgbm90TnVtYmVyID0gbV9qaXQuYnJhbmNoVGVzdFB0cihNYWNyb0Fzc2VtYmxlcjo6
WmVybywgdmFsdWUsIEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3Rlcik7CisgICAgCisgICAg
bV9qaXQubW92ZSh2YWx1ZSwgdG1wKTsKKyAgICBtX2ppdC5hZGRQdHIoR1BSSW5mbzo6dGFnVHlw
ZU51bWJlclJlZ2lzdGVyLCB0bXApOworICAgIG1faml0Lm1vdmVQdHJUb0RvdWJsZSh0bXAsIHJl
c3VsdCk7CisgICAgCisgICAgSklUQ29tcGlsZXI6Okp1bXAgZG9uZSA9IG1faml0Lmp1bXAoKTsK
KyAgICAKKyAgICBpc0ludGVnZXIubGluaygmbV9qaXQpOworICAgIAorICAgIG1faml0LmNvbnZl
cnRJbnQzMlRvRG91YmxlKHZhbHVlLCByZXN1bHQpOworICAgIAorICAgIGRvbmUubGluaygmbV9q
aXQpOworCisgICAgcmV0dXJuIG5vdE51bWJlcjsKK30KKwordm9pZCBTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZVBlZXBIb2xlRG91YmxlQnJhbmNoKE5vZGUmIG5vZGUsIE5vZGVJbmRleCBicmFuY2hO
b2RlSW5kZXgsIEpJVENvbXBpbGVyOjpEb3VibGVDb25kaXRpb24gY29uZGl0aW9uLCBaX0RGR09w
ZXJhdGlvbl9FSkogb3BlcmF0aW9uKQoreworICAgIE5vZGUmIGJyYW5jaE5vZGUgPSBtX2ppdC5n
cmFwaCgpW2JyYW5jaE5vZGVJbmRleF07CisgICAgQmxvY2tJbmRleCB0YWtlbiA9IG1faml0Lmdy
YXBoKCkuYmxvY2tJbmRleEZvckJ5dGVjb2RlT2Zmc2V0KGJyYW5jaE5vZGUudGFrZW5CeXRlY29k
ZU9mZnNldCgpKTsKKyAgICBCbG9ja0luZGV4IG5vdFRha2VuID0gbV9qaXQuZ3JhcGgoKS5ibG9j
a0luZGV4Rm9yQnl0ZWNvZGVPZmZzZXQoYnJhbmNoTm9kZS5ub3RUYWtlbkJ5dGVjb2RlT2Zmc2V0
KCkpOworICAgIAorICAgIGJvb2wgb3AxTnVtZXJpYyA9IGlzS25vd25OdW1lcmljKG5vZGUuY2hp
bGQxKCkpOworICAgIGJvb2wgb3AyTnVtZXJpYyA9IGlzS25vd25OdW1lcmljKG5vZGUuY2hpbGQy
KCkpOworICAgIAorICAgIGlmIChvcDFOdW1lcmljICYmIG9wMk51bWVyaWMpIHsKKyAgICAgICAg
U3BlY3VsYXRlRG91YmxlT3BlcmFuZCBvcDEodGhpcywgbm9kZS5jaGlsZDEoKSk7CisgICAgICAg
IFNwZWN1bGF0ZURvdWJsZU9wZXJhbmQgb3AyKHRoaXMsIG5vZGUuY2hpbGQyKCkpOworICAgICAg
ICAKKyAgICAgICAgYWRkQnJhbmNoKG1faml0LmJyYW5jaERvdWJsZShjb25kaXRpb24sIG9wMS5m
cHIoKSwgb3AyLmZwcigpKSwgdGFrZW4pOworICAgIH0gZWxzZSBpZiAob3AxTnVtZXJpYykgewor
ICAgICAgICBTcGVjdWxhdGVEb3VibGVPcGVyYW5kIG9wMSh0aGlzLCBub2RlLmNoaWxkMSgpKTsK
KyAgICAgICAgSlNWYWx1ZU9wZXJhbmQgb3AyKHRoaXMsIG5vZGUuY2hpbGQyKCkpOworICAgICAg
ICAKKyAgICAgICAgRlBSVGVtcG9yYXJ5IGZwclRtcCh0aGlzKTsKKyAgICAgICAgR1BSVGVtcG9y
YXJ5IGdwclRtcCh0aGlzKTsKKyAgICAgICAgCisgICAgICAgIEZQUlJlZyBvcDFGUFIgPSBvcDEu
ZnByKCk7CisgICAgICAgIEdQUlJlZyBvcDJHUFIgPSBvcDIuZ3ByKCk7CisgICAgICAgIEZQUlJl
ZyBvcDJGUFIgPSBmcHJUbXAuZnByKCk7CisgICAgICAgIEdQUlJlZyBncHIgPSBncHJUbXAuZ3By
KCk7CisgICAgICAgIAorICAgICAgICBKSVRDb21waWxlcjo6SnVtcCBzbG93UGF0aCA9IGNvbnZl
cnRUb0RvdWJsZShvcDJHUFIsIG9wMkZQUiwgZ3ByKTsKKyAgICAgICAgCisgICAgICAgIGFkZEJy
YW5jaChtX2ppdC5icmFuY2hEb3VibGUoY29uZGl0aW9uLCBvcDFGUFIsIG9wMkZQUiksIHRha2Vu
KTsKKyAgICAgICAgYWRkQnJhbmNoKG1faml0Lmp1bXAoKSwgbm90VGFrZW4pOworICAgICAgICAK
KyAgICAgICAgc2xvd1BhdGgubGluaygmbV9qaXQpOworICAgICAgICAKKyAgICAgICAgYm94RG91
YmxlKG9wMUZQUiwgZ3ByKTsKKyAgICAgICAgCisgICAgICAgIHNpbGVudFNwaWxsQWxsUmVnaXN0
ZXJzKGdwcik7CisgICAgICAgIHNldHVwU3R1YkFyZ3VtZW50cyhncHIsIG9wMkdQUik7CisgICAg
ICAgIG1faml0Lm1vdmUoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCk7CisgICAgICAgIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9u
KTsKKyAgICAgICAgbV9qaXQubW92ZShHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgZ3ByKTsKKyAg
ICAgICAgc2lsZW50RmlsbEFsbFJlZ2lzdGVycyhncHIpOworICAgICAgICAKKyAgICAgICAgYWRk
QnJhbmNoKG1faml0LmJyYW5jaFRlc3Q4KEpJVENvbXBpbGVyOjpOb25aZXJvLCBncHIpLCB0YWtl
bik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgSlNWYWx1ZU9wZXJhbmQgb3AxKHRoaXMsIG5vZGUu
Y2hpbGQxKCkpOworICAgICAgICBTcGVjdWxhdGVEb3VibGVPcGVyYW5kIG9wMih0aGlzLCBub2Rl
LmNoaWxkMigpKTsKKyAgICAgICAgCisgICAgICAgIEZQUlRlbXBvcmFyeSBmcHJUbXAodGhpcyk7
CisgICAgICAgIEdQUlRlbXBvcmFyeSBncHJUbXAodGhpcyk7CisgICAgICAgIAorICAgICAgICBG
UFJSZWcgb3AyRlBSID0gb3AyLmZwcigpOworICAgICAgICBHUFJSZWcgb3AxR1BSID0gb3AxLmdw
cigpOworICAgICAgICBGUFJSZWcgb3AxRlBSID0gZnByVG1wLmZwcigpOworICAgICAgICBHUFJS
ZWcgZ3ByID0gZ3ByVG1wLmdwcigpOworICAgICAgICAKKyAgICAgICAgSklUQ29tcGlsZXI6Okp1
bXAgc2xvd1BhdGggPSBjb252ZXJ0VG9Eb3VibGUob3AxR1BSLCBvcDFGUFIsIGdwcik7CisgICAg
ICAgIAorICAgICAgICBhZGRCcmFuY2gobV9qaXQuYnJhbmNoRG91YmxlKGNvbmRpdGlvbiwgb3Ax
RlBSLCBvcDJGUFIpLCB0YWtlbik7CisgICAgICAgIGFkZEJyYW5jaChtX2ppdC5qdW1wKCksIG5v
dFRha2VuKTsKKyAgICAgICAgCisgICAgICAgIHNsb3dQYXRoLmxpbmsoJm1faml0KTsKKyAgICAg
ICAgCisgICAgICAgIGJveERvdWJsZShvcDJGUFIsIGdwcik7CisgICAgICAgIAorICAgICAgICBz
aWxlbnRTcGlsbEFsbFJlZ2lzdGVycyhncHIpOworICAgICAgICBzZXR1cFN0dWJBcmd1bWVudHMo
b3AxR1BSLCBncHIpOworICAgICAgICBtX2ppdC5tb3ZlKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lz
dGVyLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOworICAgICAgICBhcHBlbmRDYWxsV2l0aEV4Y2Vw
dGlvbkNoZWNrKG9wZXJhdGlvbik7CisgICAgICAgIG1faml0Lm1vdmUoR1BSSW5mbzo6cmV0dXJu
VmFsdWVHUFIsIGdwcik7CisgICAgICAgIHNpbGVudEZpbGxBbGxSZWdpc3RlcnMoZ3ByKTsKKyAg
ICAgICAgCisgICAgICAgIGFkZEJyYW5jaChtX2ppdC5icmFuY2hUZXN0OChKSVRDb21waWxlcjo6
Tm9uWmVybywgZ3ByKSwgdGFrZW4pOworICAgIH0KKyAgICAKKyAgICBpZiAobm90VGFrZW4gIT0g
KG1fYmxvY2sgKyAxKSkKKyAgICAgICAgYWRkQnJhbmNoKG1faml0Lmp1bXAoKSwgbm90VGFrZW4p
OworfQorCiAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIGNvbXBhcmUgaXMgZnVzZWQgd2l0aCBhIHN1
YnNlcXVlbnQgYnJhbmNoLgotYm9vbCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGFyZShOb2RlJiBub2Rl
LCBNYWNyb0Fzc2VtYmxlcjo6UmVsYXRpb25hbENvbmRpdGlvbiBjb25kaXRpb24sIFpfREZHT3Bl
cmF0aW9uX0VKSiBvcGVyYXRpb24pCitib29sIFNwZWN1bGF0aXZlSklUOjpjb21wYXJlKE5vZGUm
IG5vZGUsIE1hY3JvQXNzZW1ibGVyOjpSZWxhdGlvbmFsQ29uZGl0aW9uIGNvbmRpdGlvbiwgTWFj
cm9Bc3NlbWJsZXI6OkRvdWJsZUNvbmRpdGlvbiBkb3VibGVDb25kaXRpb24sIFpfREZHT3BlcmF0
aW9uX0VKSiBvcGVyYXRpb24pCiB7CiAgICAgLy8gRnVzZWQgY29tcGFyZSAmIGJyYW5jaC4KICAg
ICBOb2RlSW5kZXggYnJhbmNoTm9kZUluZGV4ID0gZGV0ZWN0UGVlcEhvbGVCcmFuY2goKTsKQEAg
LTM5NCw2ICs0OTMsMTAgQEAgYm9vbCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGFyZShOb2RlJiBub2Rl
LAogICAgICAgICAgICAgY29tcGlsZVBlZXBIb2xlSW50ZWdlckJyYW5jaChub2RlLCBicmFuY2hO
b2RlSW5kZXgsIGNvbmRpdGlvbik7CiAgICAgICAgICAgICB1c2Uobm9kZS5jaGlsZDEoKSk7CiAg
ICAgICAgICAgICB1c2Uobm9kZS5jaGlsZDIoKSk7CisgICAgICAgIH0gZWxzZSBpZiAoaXNLbm93
bk51bWVyaWMobm9kZS5jaGlsZDEoKSkgfHwgaXNLbm93bk51bWVyaWMobm9kZS5jaGlsZDIoKSkp
IHsKKyAgICAgICAgICAgIGNvbXBpbGVQZWVwSG9sZURvdWJsZUJyYW5jaChub2RlLCBicmFuY2hO
b2RlSW5kZXgsIGRvdWJsZUNvbmRpdGlvbiwgb3BlcmF0aW9uKTsKKyAgICAgICAgICAgIHVzZShu
b2RlLmNoaWxkMSgpKTsKKyAgICAgICAgICAgIHVzZShub2RlLmNoaWxkMigpKTsKICAgICAgICAg
fSBlbHNlCiAgICAgICAgICAgICBub25TcGVjdWxhdGl2ZVBlZXBob2xlQnJhbmNoKG5vZGUsIGJy
YW5jaE5vZGVJbmRleCwgY29uZGl0aW9uLCBvcGVyYXRpb24pOwogCkBAIC03NDcsMjIgKzg1MCwy
MiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUmIG5vZGUpCiAgICAgfQogCiAg
ICAgY2FzZSBDb21wYXJlTGVzczoKLSAgICAgICAgaWYgKGNvbXBhcmUobm9kZSwgSklUQ29tcGls
ZXI6Okxlc3NUaGFuLCBvcGVyYXRpb25Db21wYXJlTGVzcykpCisgICAgICAgIGlmIChjb21wYXJl
KG5vZGUsIEpJVENvbXBpbGVyOjpMZXNzVGhhbiwgSklUQ29tcGlsZXI6OkRvdWJsZUxlc3NUaGFu
LCBvcGVyYXRpb25Db21wYXJlTGVzcykpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGJy
ZWFrOwogCiAgICAgY2FzZSBDb21wYXJlTGVzc0VxOgotICAgICAgICBpZiAoY29tcGFyZShub2Rl
LCBKSVRDb21waWxlcjo6TGVzc1RoYW5PckVxdWFsLCBvcGVyYXRpb25Db21wYXJlTGVzc0VxKSkK
KyAgICAgICAgaWYgKGNvbXBhcmUobm9kZSwgSklUQ29tcGlsZXI6Okxlc3NUaGFuT3JFcXVhbCwg
SklUQ29tcGlsZXI6OkRvdWJsZUxlc3NUaGFuT3JFcXVhbCwgb3BlcmF0aW9uQ29tcGFyZUxlc3NF
cSkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDb21w
YXJlR3JlYXRlcjoKLSAgICAgICAgaWYgKGNvbXBhcmUobm9kZSwgSklUQ29tcGlsZXI6OkdyZWF0
ZXJUaGFuLCBvcGVyYXRpb25Db21wYXJlR3JlYXRlcikpCisgICAgICAgIGlmIChjb21wYXJlKG5v
ZGUsIEpJVENvbXBpbGVyOjpHcmVhdGVyVGhhbiwgSklUQ29tcGlsZXI6OkRvdWJsZUdyZWF0ZXJU
aGFuLCBvcGVyYXRpb25Db21wYXJlR3JlYXRlcikpCiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIGJyZWFrOwogCiAgICAgY2FzZSBDb21wYXJlR3JlYXRlckVxOgotICAgICAgICBpZiAoY29t
cGFyZShub2RlLCBKSVRDb21waWxlcjo6R3JlYXRlclRoYW5PckVxdWFsLCBvcGVyYXRpb25Db21w
YXJlR3JlYXRlckVxKSkKKyAgICAgICAgaWYgKGNvbXBhcmUobm9kZSwgSklUQ29tcGlsZXI6Okdy
ZWF0ZXJUaGFuT3JFcXVhbCwgSklUQ29tcGlsZXI6OkRvdWJsZUdyZWF0ZXJUaGFuT3JFcXVhbCwg
b3BlcmF0aW9uQ29tcGFyZUdyZWF0ZXJFcSkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IGJyZWFrOwogCkBAIC03NzcsNyArODgwLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZShOb2RlJiBub2RlKQogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICB9Ci0gICAgICAgIGlmIChjb21wYXJlKG5vZGUsIEpJVENvbXBpbGVyOjpFcXVh
bCwgb3BlcmF0aW9uQ29tcGFyZUVxKSkKKyAgICAgICAgaWYgKGNvbXBhcmUobm9kZSwgSklUQ29t
cGlsZXI6OkVxdWFsLCBKSVRDb21waWxlcjo6RG91YmxlRXF1YWwsIG9wZXJhdGlvbkNvbXBhcmVF
cSkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGJyZWFrOwogCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCShyZXZpc2lvbiA5MTc3
NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAkod29y
a2luZyBjb3B5KQpAQCAtMTU1LDcgKzE1NSw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICB8fCAo
aW5mby5zcGlsbEZvcm1hdCgpIHwgRGF0YUZvcm1hdEpTKSA9PSBEYXRhRm9ybWF0SlNJbnRlZ2Vy
OwogICAgIH0KIAotICAgIGJvb2wgaXNEYXRhRm9ybWF0RG91YmxlKE5vZGVJbmRleCBub2RlSW5k
ZXgpCisgICAgYm9vbCBpc1JlZ2lzdGVyRGF0YUZvcm1hdERvdWJsZShOb2RlSW5kZXggbm9kZUlu
ZGV4KQogICAgIHsKICAgICAgICAgTm9kZSYgbm9kZSA9IG1faml0LmdyYXBoKClbbm9kZUluZGV4
XTsKICAgICAgICAgVmlydHVhbFJlZ2lzdGVyIHZpcnR1YWxSZWdpc3RlciA9IG5vZGUudmlydHVh
bFJlZ2lzdGVyKCk7CkBAIC0xNjMsMTQgKzE2MywxNyBAQCBwcml2YXRlOgogCiAgICAgICAgIHJl
dHVybiAoaW5mby5yZWdpc3RlckZvcm1hdCgpIHwgRGF0YUZvcm1hdEpTKSA9PSBEYXRhRm9ybWF0
SlNEb3VibGU7CiAgICAgfQotCisgICAgCiAgICAgYm9vbCBzaG91bGRTcGVjdWxhdGVJbnRlZ2Vy
KE5vZGVJbmRleCBvcDEsIE5vZGVJbmRleCBvcDIpCiAgICAgewotICAgICAgICByZXR1cm4gIShp
c0RhdGFGb3JtYXREb3VibGUob3AxKSB8fCBpc0RhdGFGb3JtYXREb3VibGUob3AyKSkgJiYgKGlz
SW50ZWdlcihvcDEpIHx8IGlzSW50ZWdlcihvcDIpKTsKKyAgICAgICAgcmV0dXJuICEoaXNSZWdp
c3RlckRhdGFGb3JtYXREb3VibGUob3AxKSB8fCBpc1JlZ2lzdGVyRGF0YUZvcm1hdERvdWJsZShv
cDIpKSAmJiAoaXNJbnRlZ2VyKG9wMSkgfHwgaXNJbnRlZ2VyKG9wMikpOwogICAgIH0KIAotICAg
IGJvb2wgY29tcGFyZShOb2RlJiwgTWFjcm9Bc3NlbWJsZXI6OlJlbGF0aW9uYWxDb25kaXRpb24s
IFpfREZHT3BlcmF0aW9uX0VKSik7CisgICAgYm9vbCBjb21wYXJlKE5vZGUmLCBNYWNyb0Fzc2Vt
Ymxlcjo6UmVsYXRpb25hbENvbmRpdGlvbiwgTWFjcm9Bc3NlbWJsZXI6OkRvdWJsZUNvbmRpdGlv
biwgWl9ERkdPcGVyYXRpb25fRUpKKTsKICAgICB2b2lkIGNvbXBpbGVQZWVwSG9sZUludGVnZXJC
cmFuY2goTm9kZSYsIE5vZGVJbmRleCBicmFuY2hOb2RlSW5kZXgsIEpJVENvbXBpbGVyOjpSZWxh
dGlvbmFsQ29uZGl0aW9uKTsKKyAgICB2b2lkIGNvbXBpbGVQZWVwSG9sZURvdWJsZUJyYW5jaChO
b2RlJiwgTm9kZUluZGV4IGJyYW5jaE5vZGVJbmRleCwgSklUQ29tcGlsZXI6OkRvdWJsZUNvbmRp
dGlvbiwgWl9ERkdPcGVyYXRpb25fRUpKKTsKKyAgICAKKyAgICBKSVRDb21waWxlcjo6SnVtcCBj
b252ZXJ0VG9Eb3VibGUoR1BSUmVnIHZhbHVlLCBGUFJSZWcgcmVzdWx0LCBHUFJSZWcgdG1wKTsK
IAogICAgIC8vIEFkZCBhIHNwZWN1bGF0aW9uIGNoZWNrIHdpdGhvdXQgYWRkaXRpb25hbCByZWNv
dmVyeS4KICAgICB2b2lkIHNwZWN1bGF0aW9uQ2hlY2soTWFjcm9Bc3NlbWJsZXI6Okp1bXAganVt
cFRvRmFpbCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>