<?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>64759</bug_id>
          
          <creation_ts>2011-07-18 15:13:36 -0700</creation_ts>
          <short_desc>DFG JIT does not optimize strict equality as effectively as the old JIT does</short_desc>
          <delta_ts>2011-07-18 17:36:54 -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>438763</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-07-18 15:13:36 -0700</bug_when>
    <thetext>The old JSC JIT optimizes strict equality (===) by having a fast path for when one operand is not a cell, and neither operand is a number.  The DFG JIT only has fast-path optimizations for strict equality that speculate that both operands are integers.  The DFG JIT should have similar optimizations to the old JIT for strict equality.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438766</commentid>
    <comment_count>1</comment_count>
      <attachid>101218</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-07-18 15:18:54 -0700</bug_when>
    <thetext>Created attachment 101218
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438860</commentid>
    <comment_count>2</comment_count>
      <attachid>101218</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-18 17:36:50 -0700</bug_when>
    <thetext>Comment on attachment 101218
the patch

Clearing flags on attachment: 101218

Committed r91226: &lt;http://trac.webkit.org/changeset/91226&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438861</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-18 17:36:54 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>101218</attachid>
            <date>2011-07-18 15:18:54 -0700</date>
            <delta_ts>2011-07-18 17:36:49 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>stricteq_patch_1.diff</filename>
            <type>text/plain</type>
            <size>12287</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTEyMTMpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjggQEAK
KzIwMTEtMDctMTggIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBE
RkcgSklUIGRvZXMgbm90IG9wdGltaXplIHN0cmljdCBlcXVhbGl0eSBhcyBlZmZlY3RpdmVseSBh
cyB0aGUgb2xkIEpJVCBkb2VzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NjQ3NTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KyAgICAgICAgCisgICAgICAgIFRoaXMgYWRkcyBhIG1vcmUgY29tcGxldGUgc2V0IG9mIHN0cmlj
dCBlcXVhbGl0eSBvcHRpbWl6YXRpb25zLiAgSWYgZWl0aGVyCisgICAgICAgIG9wZXJhbmQgaXMg
a25vd24gbnVtZXJpYywgdGhlbiB0aGUgY29kZSByZXZlcnRzIHRvIHRoZSBvbGQgc3R5bGUgb2Yg
b3B0aW1pemluZworICAgICAgICAoZmlyc3QgdHJ5IGludGVnZXIgY29tcGFyaXNvbikuICBPdGhl
cndpc2UgaXQgdXNlcyB0aGUgb2xkIEpJVCdzIHRyaWNrIG9mCisgICAgICAgIGZpcnN0IHNpbXVs
dGFuZW91c2x5IGNoZWNraW5nIGlmIGJvdGggb3BlcmFuZHMgYXJlIGVpdGhlciBudW1iZXJzIG9y
IGNlbGxzOworICAgICAgICBpZiBub3QgdGhlbiBhIGZhc3QgcGF0aCBpcyB0YWtlbi4KKworICAg
ICAgICAqIGRmZy9ERkdKSVRDb2RlR2VuZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpK
SVRDb2RlR2VuZXJhdG9yOjpub25TcGVjdWxhdGl2ZVBlZXBob2xlU3RyaWN0RXEpOgorICAgICAg
ICAoSlNDOjpERkc6OkpJVENvZGVHZW5lcmF0b3I6Om5vblNwZWN1bGF0aXZlTm9uUGVlcGhvbGVT
dHJpY3RFcSk6CisgICAgICAgIChKU0M6OkRGRzo6SklUQ29kZUdlbmVyYXRvcjo6bm9uU3BlY3Vs
YXRpdmVTdHJpY3RFcSk6CisgICAgICAgICogZGZnL0RGR0pJVENvZGVHZW5lcmF0b3IuaDoKKyAg
ICAgICAgKiBkZmcvREZHTm9uU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6
Ok5vblNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0aW9u
cy5jcHA6CisgICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuaDoKKyAgICAgICAgKiBkZmcvREZH
U3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpj
b21waWxlKToKKwogMjAxMS0wNy0xOCAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgog
CiAgICAgICAgIERGRyBKSVQgZG9lcyBub3Qgb3B0aW1pemUgZXF1YWwtbnVsbCBjb21wYXJpc29u
cyBhbmQgYnJhbmNoZXMuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENv
ZGVHZW5lcmF0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHSklUQ29kZUdlbmVyYXRvci5jcHAJKHJldmlzaW9uIDkxMjExKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlR2VuZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NzY0LDYgKzc2NCwxNjYgQEAgYm9vbCBKSVRDb2RlR2VuZXJhdG9yOjpub25TcGVjdWxhdGl2ZUNv
bQogICAgIHJldHVybiBmYWxzZTsKIH0KIAordm9pZCBKSVRDb2RlR2VuZXJhdG9yOjpub25TcGVj
dWxhdGl2ZVBlZXBob2xlU3RyaWN0RXEoTm9kZSYgbm9kZSwgTm9kZUluZGV4IGJyYW5jaE5vZGVJ
bmRleCwgYm9vbCBpbnZlcnQpCit7CisgICAgTm9kZSYgYnJhbmNoTm9kZSA9IG1faml0LmdyYXBo
KClbYnJhbmNoTm9kZUluZGV4XTsKKyAgICBCbG9ja0luZGV4IHRha2VuID0gbV9qaXQuZ3JhcGgo
KS5ibG9ja0luZGV4Rm9yQnl0ZWNvZGVPZmZzZXQoYnJhbmNoTm9kZS50YWtlbkJ5dGVjb2RlT2Zm
c2V0KCkpOworICAgIEJsb2NrSW5kZXggbm90VGFrZW4gPSBtX2ppdC5ncmFwaCgpLmJsb2NrSW5k
ZXhGb3JCeXRlY29kZU9mZnNldChicmFuY2hOb2RlLm5vdFRha2VuQnl0ZWNvZGVPZmZzZXQoKSk7
CisKKyAgICAvLyBUaGUgYnJhbmNoIGluc3RydWN0aW9uIHdpbGwgYnJhbmNoIHRvIHRoZSB0YWtl
biBibG9jay4KKyAgICAvLyBJZiB0YWtlbiBpcyBuZXh0LCBzd2l0Y2ggdGFrZW4gd2l0aCBub3RU
YWtlbiAmIGludmVydCB0aGUgYnJhbmNoIGNvbmRpdGlvbiBzbyB3ZSBjYW4gZmFsbCB0aHJvdWdo
LgorICAgIGlmICh0YWtlbiA9PSAobV9ibG9jayArIDEpKSB7CisgICAgICAgIGludmVydCA9ICFp
bnZlcnQ7CisgICAgICAgIEJsb2NrSW5kZXggdG1wID0gdGFrZW47CisgICAgICAgIHRha2VuID0g
bm90VGFrZW47CisgICAgICAgIG5vdFRha2VuID0gdG1wOworICAgIH0KKyAgICAKKyAgICBKU1Zh
bHVlT3BlcmFuZCBhcmcxKHRoaXMsIG5vZGUuY2hpbGQxKCkpOworICAgIEpTVmFsdWVPcGVyYW5k
IGFyZzIodGhpcywgbm9kZS5jaGlsZDIoKSk7CisgICAgR1BSUmVnIGFyZzFHUFIgPSBhcmcxLmdw
cigpOworICAgIEdQUlJlZyBhcmcyR1BSID0gYXJnMi5ncHIoKTsKKyAgICAKKyAgICBHUFJUZW1w
b3JhcnkgcmVzdWx0KHRoaXMpOworICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7
CisgICAgCisgICAgaWYgKGlzS25vd25DZWxsKG5vZGUuY2hpbGQxKCkpICYmIGlzS25vd25DZWxs
KG5vZGUuY2hpbGQyKCkpKSB7CisgICAgICAgIC8vIHNlZSBpZiB3ZSBnZXQgbHVja3k6IGlmIHRo
ZSBhcmd1bWVudHMgYXJlIGNlbGxzIGFuZCB0aGV5IHJlZmVyZW5jZSB0aGUgc2FtZQorICAgICAg
ICAvLyBjZWxsLCB0aGVuIHRoZXkgbXVzdCBiZSBzdHJpY3RseSBlcXVhbC4KKyAgICAgICAgYWRk
QnJhbmNoKG1faml0LmJyYW5jaFB0cihKSVRDb21waWxlcjo6RXF1YWwsIGFyZzFHUFIsIGFyZzJH
UFIpLCBpbnZlcnQgPyBub3RUYWtlbiA6IHRha2VuKTsKKyAgICAgICAgCisgICAgICAgIHNpbGVu
dFNwaWxsQWxsUmVnaXN0ZXJzKHJlc3VsdEdQUik7CisgICAgICAgIHNldHVwU3R1YkFyZ3VtZW50
cyhhcmcxR1BSLCBhcmcyR1BSKTsKKyAgICAgICAgbV9qaXQubW92ZShHUFJJbmZvOjpjYWxsRnJh
bWVSZWdpc3RlciwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKKyAgICAgICAgYXBwZW5kQ2FsbFdp
dGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb25Db21wYXJlU3RyaWN0RXFDZWxsKTsKKyAgICAgICAg
bV9qaXQubW92ZShHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgcmVzdWx0R1BSKTsKKyAgICAgICAg
c2lsZW50RmlsbEFsbFJlZ2lzdGVycyhyZXN1bHRHUFIpOworICAgICAgICAKKyAgICAgICAgYWRk
QnJhbmNoKG1faml0LmJyYW5jaFRlc3Q4KGludmVydCA/IEpJVENvbXBpbGVyOjpOb25aZXJvIDog
SklUQ29tcGlsZXI6Olplcm8sIHJlc3VsdEdQUiksIHRha2VuKTsKKyAgICB9IGVsc2UgeworICAg
ICAgICBtX2ppdC5vclB0cihhcmcxR1BSLCBhcmcyR1BSLCByZXN1bHRHUFIpOworICAgICAgICAK
KyAgICAgICAgSklUQ29tcGlsZXI6Okp1bXAgdHdvQ2VsbHNDYXNlID0gbV9qaXQuYnJhbmNoVGVz
dFB0cihKSVRDb21waWxlcjo6WmVybywgcmVzdWx0R1BSLCBHUFJJbmZvOjp0YWdNYXNrUmVnaXN0
ZXIpOworICAgICAgICAKKyAgICAgICAgSklUQ29tcGlsZXI6Okp1bXAgbnVtYmVyQ2FzZSA9IG1f
aml0LmJyYW5jaFRlc3RQdHIoSklUQ29tcGlsZXI6Ok5vblplcm8sIHJlc3VsdEdQUiwgR1BSSW5m
bzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKTsKKyAgICAgICAgCisgICAgICAgIGFkZEJyYW5jaCht
X2ppdC5icmFuY2gzMihpbnZlcnQgPyBKSVRDb21waWxlcjo6Tm90RXF1YWwgOiBKSVRDb21waWxl
cjo6RXF1YWwsIGFyZzFHUFIsIGFyZzJHUFIpLCB0YWtlbik7CisgICAgICAgIGFkZEJyYW5jaCht
X2ppdC5qdW1wKCksIG5vdFRha2VuKTsKKyAgICAgICAgCisgICAgICAgIHR3b0NlbGxzQ2FzZS5s
aW5rKCZtX2ppdCk7CisgICAgICAgIGFkZEJyYW5jaChtX2ppdC5icmFuY2hQdHIoSklUQ29tcGls
ZXI6OkVxdWFsLCBhcmcxR1BSLCBhcmcyR1BSKSwgaW52ZXJ0ID8gbm90VGFrZW4gOiB0YWtlbik7
CisgICAgICAgIAorICAgICAgICBudW1iZXJDYXNlLmxpbmsoJm1faml0KTsKKyAgICAgICAgCisg
ICAgICAgIHNpbGVudFNwaWxsQWxsUmVnaXN0ZXJzKHJlc3VsdEdQUik7CisgICAgICAgIHNldHVw
U3R1YkFyZ3VtZW50cyhhcmcxR1BSLCBhcmcyR1BSKTsKKyAgICAgICAgbV9qaXQubW92ZShHUFJJ
bmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKKyAgICAgICAg
YXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb25Db21wYXJlU3RyaWN0RXEpOwor
ICAgICAgICBtX2ppdC5tb3ZlKEdQUkluZm86OnJldHVyblZhbHVlR1BSLCByZXN1bHRHUFIpOwor
ICAgICAgICBzaWxlbnRGaWxsQWxsUmVnaXN0ZXJzKHJlc3VsdEdQUik7CisgICAgICAgIAorICAg
ICAgICBhZGRCcmFuY2gobV9qaXQuYnJhbmNoVGVzdDgoaW52ZXJ0ID8gSklUQ29tcGlsZXI6Olpl
cm8gOiBKSVRDb21waWxlcjo6Tm9uWmVybywgcmVzdWx0R1BSKSwgdGFrZW4pOworICAgIH0KKyAg
ICAKKyAgICBpZiAobm90VGFrZW4gIT0gKG1fYmxvY2sgKyAxKSkKKyAgICAgICAgYWRkQnJhbmNo
KG1faml0Lmp1bXAoKSwgbm90VGFrZW4pOworfQorCit2b2lkIEpJVENvZGVHZW5lcmF0b3I6Om5v
blNwZWN1bGF0aXZlTm9uUGVlcGhvbGVTdHJpY3RFcShOb2RlJiBub2RlLCBib29sIGludmVydCkK
K3sKKyAgICBKU1ZhbHVlT3BlcmFuZCBhcmcxKHRoaXMsIG5vZGUuY2hpbGQxKCkpOworICAgIEpT
VmFsdWVPcGVyYW5kIGFyZzIodGhpcywgbm9kZS5jaGlsZDIoKSk7CisgICAgR1BSUmVnIGFyZzFH
UFIgPSBhcmcxLmdwcigpOworICAgIEdQUlJlZyBhcmcyR1BSID0gYXJnMi5ncHIoKTsKKyAgICAK
KyAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMpOworICAgIEdQUlJlZyByZXN1bHRHUFIgPSBy
ZXN1bHQuZ3ByKCk7CisgICAgCisgICAgaWYgKGlzS25vd25DZWxsKG5vZGUuY2hpbGQxKCkpICYm
IGlzS25vd25DZWxsKG5vZGUuY2hpbGQyKCkpKSB7CisgICAgICAgIC8vIHNlZSBpZiB3ZSBnZXQg
bHVja3k6IGlmIHRoZSBhcmd1bWVudHMgYXJlIGNlbGxzIGFuZCB0aGV5IHJlZmVyZW5jZSB0aGUg
c2FtZQorICAgICAgICAvLyBjZWxsLCB0aGVuIHRoZXkgbXVzdCBiZSBzdHJpY3RseSBlcXVhbC4K
KyAgICAgICAgSklUQ29tcGlsZXI6Okp1bXAgbm90RXF1YWxDYXNlID0gbV9qaXQuYnJhbmNoUHRy
KEpJVENvbXBpbGVyOjpOb3RFcXVhbCwgYXJnMUdQUiwgYXJnMkdQUik7CisgICAgICAgIAorICAg
ICAgICBtX2ppdC5tb3ZlKEpJVENvbXBpbGVyOjpUcnVzdGVkSW1tUHRyKEpTVmFsdWU6OmVuY29k
ZShqc0Jvb2xlYW4oIWludmVydCkpKSwgcmVzdWx0R1BSKTsKKyAgICAgICAgCisgICAgICAgIEpJ
VENvbXBpbGVyOjpKdW1wIGRvbmUgPSBtX2ppdC5qdW1wKCk7CisKKyAgICAgICAgbm90RXF1YWxD
YXNlLmxpbmsoJm1faml0KTsKKyAgICAgICAgCisgICAgICAgIHNpbGVudFNwaWxsQWxsUmVnaXN0
ZXJzKHJlc3VsdEdQUik7CisgICAgICAgIHNldHVwU3R1YkFyZ3VtZW50cyhhcmcxR1BSLCBhcmcy
R1BSKTsKKyAgICAgICAgbV9qaXQubW92ZShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BS
SW5mbzo6YXJndW1lbnRHUFIwKTsKKyAgICAgICAgYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVj
ayhvcGVyYXRpb25Db21wYXJlU3RyaWN0RXFDZWxsKTsKKyAgICAgICAgbV9qaXQubW92ZShHUFJJ
bmZvOjpyZXR1cm5WYWx1ZUdQUiwgcmVzdWx0R1BSKTsKKyAgICAgICAgc2lsZW50RmlsbEFsbFJl
Z2lzdGVycyhyZXN1bHRHUFIpOworICAgICAgICAKKyAgICAgICAgbV9qaXQuYW5kUHRyKEpJVENv
bXBpbGVyOjpUcnVzdGVkSW1tMzIoMSksIHJlc3VsdEdQUik7CisgICAgICAgIG1faml0Lm9yMzIo
SklUQ29tcGlsZXI6OlRydXN0ZWRJbW0zMihWYWx1ZUZhbHNlKSwgcmVzdWx0R1BSKTsKKyAgICAg
ICAgCisgICAgICAgIGRvbmUubGluaygmbV9qaXQpOworICAgIH0gZWxzZSB7CisgICAgICAgIG1f
aml0Lm9yUHRyKGFyZzFHUFIsIGFyZzJHUFIsIHJlc3VsdEdQUik7CisgICAgICAgIAorICAgICAg
ICBKSVRDb21waWxlcjo6SnVtcCB0d29DZWxsc0Nhc2UgPSBtX2ppdC5icmFuY2hUZXN0UHRyKEpJ
VENvbXBpbGVyOjpaZXJvLCByZXN1bHRHUFIsIEdQUkluZm86OnRhZ01hc2tSZWdpc3Rlcik7Cisg
ICAgICAgIAorICAgICAgICBKSVRDb21waWxlcjo6SnVtcCBudW1iZXJDYXNlID0gbV9qaXQuYnJh
bmNoVGVzdFB0cihKSVRDb21waWxlcjo6Tm9uWmVybywgcmVzdWx0R1BSLCBHUFJJbmZvOjp0YWdU
eXBlTnVtYmVyUmVnaXN0ZXIpOworICAgICAgICAKKyAgICAgICAgbV9qaXQuY29tcGFyZTMyKGlu
dmVydCA/IEpJVENvbXBpbGVyOjpOb3RFcXVhbCA6IEpJVENvbXBpbGVyOjpFcXVhbCwgYXJnMUdQ
UiwgYXJnMkdQUiwgcmVzdWx0R1BSKTsKKyAgICAgICAgCisgICAgICAgIEpJVENvbXBpbGVyOjpK
dW1wIGRvbmUxID0gbV9qaXQuanVtcCgpOworICAgICAgICAKKyAgICAgICAgdHdvQ2VsbHNDYXNl
LmxpbmsoJm1faml0KTsKKyAgICAgICAgSklUQ29tcGlsZXI6Okp1bXAgbm90RXF1YWxDYXNlID0g
bV9qaXQuYnJhbmNoUHRyKEpJVENvbXBpbGVyOjpOb3RFcXVhbCwgYXJnMUdQUiwgYXJnMkdQUik7
CisgICAgICAgIAorICAgICAgICBtX2ppdC5tb3ZlKEpJVENvbXBpbGVyOjpUcnVzdGVkSW1tUHRy
KEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oIWludmVydCkpKSwgcmVzdWx0R1BSKTsKKyAgICAg
ICAgCisgICAgICAgIEpJVENvbXBpbGVyOjpKdW1wIGRvbmUyID0gbV9qaXQuanVtcCgpOworICAg
ICAgICAKKyAgICAgICAgbnVtYmVyQ2FzZS5saW5rKCZtX2ppdCk7CisgICAgICAgIG5vdEVxdWFs
Q2FzZS5saW5rKCZtX2ppdCk7CisgICAgICAgIAorICAgICAgICBzaWxlbnRTcGlsbEFsbFJlZ2lz
dGVycyhyZXN1bHRHUFIpOworICAgICAgICBzZXR1cFN0dWJBcmd1bWVudHMoYXJnMUdQUiwgYXJn
MkdQUik7CisgICAgICAgIG1faml0Lm1vdmUoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQ
UkluZm86OmFyZ3VtZW50R1BSMCk7CisgICAgICAgIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hl
Y2sob3BlcmF0aW9uQ29tcGFyZVN0cmljdEVxKTsKKyAgICAgICAgbV9qaXQubW92ZShHUFJJbmZv
OjpyZXR1cm5WYWx1ZUdQUiwgcmVzdWx0R1BSKTsKKyAgICAgICAgc2lsZW50RmlsbEFsbFJlZ2lz
dGVycyhyZXN1bHRHUFIpOworICAgICAgICAKKyAgICAgICAgbV9qaXQuYW5kUHRyKEpJVENvbXBp
bGVyOjpUcnVzdGVkSW1tMzIoMSksIHJlc3VsdEdQUik7CisKKyAgICAgICAgZG9uZTEubGluaygm
bV9qaXQpOworCisgICAgICAgIG1faml0Lm9yMzIoSklUQ29tcGlsZXI6OlRydXN0ZWRJbW0zMihW
YWx1ZUZhbHNlKSwgcmVzdWx0R1BSKTsKKyAgICAgICAgCisgICAgICAgIGRvbmUyLmxpbmsoJm1f
aml0KTsKKyAgICB9CisgICAgCisgICAganNWYWx1ZVJlc3VsdChyZXN1bHRHUFIsIG1fY29tcGls
ZUluZGV4KTsKK30KKworYm9vbCBKSVRDb2RlR2VuZXJhdG9yOjpub25TcGVjdWxhdGl2ZVN0cmlj
dEVxKE5vZGUmIG5vZGUsIGJvb2wgaW52ZXJ0KQoreworICAgIGlmICghaW52ZXJ0ICYmIChpc0tu
b3duTnVtZXJpYyhub2RlLmNoaWxkMSgpKSB8fCBpc0tub3duTnVtZXJpYyhub2RlLmNoaWxkMigp
KSkpCisgICAgICAgIHJldHVybiBub25TcGVjdWxhdGl2ZUNvbXBhcmUobm9kZSwgTWFjcm9Bc3Nl
bWJsZXI6OkVxdWFsLCBvcGVyYXRpb25Db21wYXJlU3RyaWN0RXEpOworICAgIAorICAgIE5vZGVJ
bmRleCBicmFuY2hOb2RlSW5kZXggPSBkZXRlY3RQZWVwSG9sZUJyYW5jaCgpOworICAgIGlmIChi
cmFuY2hOb2RlSW5kZXggIT0gTm9Ob2RlKSB7CisgICAgICAgIEFTU0VSVChub2RlLmFkanVzdGVk
UmVmQ291bnQoKSA9PSAxKTsKKyAgICAgICAgCisgICAgICAgIG5vblNwZWN1bGF0aXZlUGVlcGhv
bGVTdHJpY3RFcShub2RlLCBicmFuY2hOb2RlSW5kZXgsIGludmVydCk7CisgICAgCisgICAgICAg
IHVzZShub2RlLmNoaWxkMSgpKTsKKyAgICAgICAgdXNlKG5vZGUuY2hpbGQyKCkpOworICAgICAg
ICBtX2NvbXBpbGVJbmRleCA9IGJyYW5jaE5vZGVJbmRleDsKKyAgICAgICAgCisgICAgICAgIHJl
dHVybiB0cnVlOworICAgIH0KKyAgICAKKyAgICBub25TcGVjdWxhdGl2ZU5vblBlZXBob2xlU3Ry
aWN0RXEobm9kZSwgaW52ZXJ0KTsKKyAgICAKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIHZvaWQg
SklUQ29kZUdlbmVyYXRvcjo6ZW1pdEJyYW5jaChOb2RlJiBub2RlKQogewogICAgIEpTVmFsdWVP
cGVyYW5kIHZhbHVlKHRoaXMsIG5vZGUuY2hpbGQxKCkpOwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdKSVRDb2RlR2VuZXJhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlR2VuZXJhdG9yLmgJKHJldmlzaW9uIDkxMjExKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlR2VuZXJhdG9yLmgJKHdvcmtp
bmcgY29weSkKQEAgLTU3MSw2ICs1NzEsMTAgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgbm9uU3Bl
Y3VsYXRpdmVOb25QZWVwaG9sZUNvbXBhcmUoTm9kZSYsIE1hY3JvQXNzZW1ibGVyOjpSZWxhdGlv
bmFsQ29uZGl0aW9uLCBaX0RGR09wZXJhdGlvbl9FSkogaGVscGVyRnVuY3Rpb24pOwogICAgIGJv
b2wgbm9uU3BlY3VsYXRpdmVDb21wYXJlKE5vZGUmLCBNYWNyb0Fzc2VtYmxlcjo6UmVsYXRpb25h
bENvbmRpdGlvbiwgWl9ERkdPcGVyYXRpb25fRUpKIGhlbHBlckZ1bmN0aW9uKTsKICAgICAKKyAg
ICB2b2lkIG5vblNwZWN1bGF0aXZlUGVlcGhvbGVTdHJpY3RFcShOb2RlJiwgTm9kZUluZGV4IGJy
YW5jaE5vZGVJbmRleCwgYm9vbCBpbnZlcnQgPSBmYWxzZSk7CisgICAgdm9pZCBub25TcGVjdWxh
dGl2ZU5vblBlZXBob2xlU3RyaWN0RXEoTm9kZSYsIGJvb2wgaW52ZXJ0ID0gZmFsc2UpOworICAg
IGJvb2wgbm9uU3BlY3VsYXRpdmVTdHJpY3RFcShOb2RlJiwgYm9vbCBpbnZlcnQgPSBmYWxzZSk7
CisgICAgCiAgICAgdm9pZCBlbWl0QnJhbmNoKE5vZGUmKTsKICAgICAKICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6QWRkcmVzcyBhZGRyZXNzT2ZDYWxsRGF0YShpbnQgaWR4KQpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdOb25TcGVjdWxhdGl2ZUpJVC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb25TcGVjdWxhdGl2ZUpJVC5jcHAJKHJldmlz
aW9uIDkxMjExKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb25TcGVjdWxhdGl2
ZUpJVC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY4OCw3ICs2ODgsNyBAQCB2b2lkIE5vblNwZWN1
bGF0aXZlSklUOjpjb21waWxlKFNwZWN1bGF0CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBD
b21wYXJlU3RyaWN0RXE6Ci0gICAgICAgIGlmIChub25TcGVjdWxhdGl2ZUNvbXBhcmUobm9kZSwg
TWFjcm9Bc3NlbWJsZXI6OkVxdWFsLCBvcGVyYXRpb25Db21wYXJlU3RyaWN0RXEpKQorICAgICAg
ICBpZiAobm9uU3BlY3VsYXRpdmVTdHJpY3RFcShub2RlKSkKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgYnJlYWs7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3Bl
cmF0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
cGVyYXRpb25zLmNwcAkocmV2aXNpb24gOTEyMTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR09wZXJhdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MjQsNiArNDI5LDE3IEBA
IGJvb2wgb3BlcmF0aW9uQ29tcGFyZUVxKEV4ZWNTdGF0ZSogZXhlYywKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZXF1YWxTbG93Q2FzZUlubGluZShleGVjLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9w
MSksIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AyKSk7CiB9CiAKK2Jvb2wgb3BlcmF0aW9uQ29t
cGFyZVN0cmljdEVxQ2VsbChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRP
cDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpCit7CisgICAgSlNWYWx1ZSBvcDEgPSBKU1Zh
bHVlOjpkZWNvZGUoZW5jb2RlZE9wMSk7CisgICAgSlNWYWx1ZSBvcDIgPSBKU1ZhbHVlOjpkZWNv
ZGUoZW5jb2RlZE9wMik7CisgICAgCisgICAgQVNTRVJUKG9wMS5pc0NlbGwoKSk7CisgICAgQVNT
RVJUKG9wMi5pc0NlbGwoKSk7CisgICAgCisgICAgcmV0dXJuIEpTVmFsdWU6OnN0cmljdEVxdWFs
U2xvd0Nhc2VJbmxpbmUoZXhlYywgb3AxLCBvcDIpOworfQorCiBib29sIG9wZXJhdGlvbkNvbXBh
cmVTdHJpY3RFcShFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRPcDIpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OnN0cmljdEVx
dWFsKGV4ZWMsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AxKSwgSlNWYWx1ZTo6ZGVjb2RlKGVu
Y29kZWRPcDIpKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9u
cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9u
cy5oCShyZXZpc2lvbiA5MTIxMSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3Bl
cmF0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC04Miw2ICs4Miw3IEBAIGJvb2wgb3BlcmF0aW9u
Q29tcGFyZUxlc3NFcShFeGVjU3RhdGUqLCAKIGJvb2wgb3BlcmF0aW9uQ29tcGFyZUdyZWF0ZXIo
RXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZE9wMik7CiBib29sIG9wZXJhdGlvbkNvbXBhcmVHcmVhdGVyRXEoRXhlY1N0YXRlKiwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMik7CiBib29s
IG9wZXJhdGlvbkNvbXBhcmVFcShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3Ax
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKTsKK2Jvb2wgb3BlcmF0aW9uQ29tcGFyZVN0cmlj
dEVxQ2VsbChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkT3AyKTsKIGJvb2wgb3BlcmF0aW9uQ29tcGFyZVN0cmljdEVxKEV4ZWNTdGF0
ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDEsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRPcDIp
Owogdm9pZCogb3BlcmF0aW9uVmlydHVhbENhbGwoRXhlY1N0YXRlKik7CiB2b2lkKiBvcGVyYXRp
b25MaW5rQ2FsbChFeGVjU3RhdGUqKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCShyZXZpc2lvbiA5MTIxMSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC03ODIsNyArNzgyLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlJiBub2Rl
KQogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ29tcGFyZVN0cmljdEVxOgotICAgICAgICBp
ZiAoY29tcGFyZShub2RlLCBKSVRDb21waWxlcjo6RXF1YWwsIG9wZXJhdGlvbkNvbXBhcmVTdHJp
Y3RFcSkpCisgICAgICAgIGlmIChub25TcGVjdWxhdGl2ZVN0cmljdEVxKG5vZGUpKQogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICBicmVhazsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>