<?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>158906</bug_id>
          
          <creation_ts>2016-06-18 12:28:50 -0700</creation_ts>
          <short_desc>REGRESSION(concurrent baseline JIT): Kraken/ai-astar runs 20% slower</short_desc>
          <delta_ts>2016-06-20 18:59:34 -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></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>barraclough</cc>
    
    <cc>benjamin</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenb</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>rniwa</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1203585</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-06-18 12:28:50 -0700</bug_when>
    <thetext>So far this looks like it&apos;s because the baseline compile of the search# is delayed by &gt;10ms.  I&apos;m still investigating why

I do know that it&apos;s only the decision to compile baseline code concurrently that causes the slow-down, and not any of the other changes in the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203586</commentid>
    <comment_count>1</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-06-18 12:32:03 -0700</bug_when>
    <thetext>Looks like we enqueue the search# plan and then it takes ~10ms for the compiler thread to wake up!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203588</commentid>
    <comment_count>2</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-06-18 12:43:18 -0700</bug_when>
    <thetext>This is fascinating!  Here&apos;s what&apos;s happening: we enqueued a compile of &lt;global&gt;, which is a ginormous piece of global code, during the benchmark&apos;s unmeansured initialization phase.  Then at the time that we try to compile search#, the JIT thread is busy compiling &lt;global&gt;.  That takes a long time to compile and it generates a disgusting amount of code.  &lt;global&gt; takes 16ms to compile and generates 8MB!!

There are a bunch of solutions we could attempt:

1) If we want to compile something and the concurrent JIT thread is busy then compile on the main thread instead.

2) Launch multiple JIT threads.

3) Delay the compilation of &lt;global&gt; based on size heuristics the same way that we do for DFG and FTL tier-up.  This might be hard because I think that &lt;global&gt; actually spends a significant amount of time in its silly loop.

4) Don&apos;t compile all of &lt;global&gt; with the baseline JIT.  It tiers up because of a tiny loop at the end.

I think I&apos;ll attempt (1).  That seems like the easiest way of recovering this regression.  I think it would be great to consider the other solutions, too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203590</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-06-18 13:15:53 -0700</bug_when>
    <thetext>Attempt (1) seems to work for Kraken/ai-astar!

Trunk (including concurrent baseline JIT): 111.2 ms
With my fix: 92.6 ms
With concurrent baseline JIT totally disabled: 87.9 ms

I&apos;ll do more tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203591</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-06-18 13:22:19 -0700</bug_when>
    <thetext>I believe that this resolves the Kraken issue.  Here are the numbers now.

FROM = concurrent baseline JIT completely disabled.
TO = my change, which uses synchronous compilation of the thread is busy.

TEST                         COMPARISON            FROM                 TO               DETAILS

====================================================================================

** TOTAL **:                 1.013x as fast    826.1ms +/- 0.6%   815.5ms +/- 1.1%     significant

====================================================================================

  ai:                        *1.043x as slow*   85.3ms +/- 2.0%    89.0ms +/- 1.6%     significant
    astar:                   *1.043x as slow*   85.3ms +/- 2.0%    89.0ms +/- 1.6%     significant

  audio:                     1.037x as fast    259.1ms +/- 1.1%   249.8ms +/- 2.9%     significant
    beat-detection:          ??                 58.1ms +/- 3.7%    59.1ms +/- 11.5%     might be *1.017x as slow*
    dft:                     1.100x as fast    103.1ms +/- 2.1%    93.7ms +/- 2.1%     significant
    fft:                     -                  43.9ms +/- 1.8%    42.9ms +/- 2.4% 
    oscillator:              ??                 54.0ms +/- 1.2%    54.1ms +/- 2.1%     might be *1.002x as slow*

  imaging:                   ??                185.1ms +/- 1.0%   185.6ms +/- 2.5%     might be *1.003x as slow*
    gaussian-blur:           -                  64.2ms +/- 2.2%    62.2ms +/- 3.4% 
    darkroom:                ??                 72.9ms +/- 1.0%    73.5ms +/- 0.8%     might be *1.008x as slow*
    desaturate:              ??                 48.0ms +/- 5.1%    49.9ms +/- 6.5%     might be *1.040x as slow*

  json:                      -                  58.7ms +/- 1.3%    57.8ms +/- 1.3% 
    parse-financial:         -                  35.2ms +/- 1.6%    34.8ms +/- 1.6% 
    stringify-tinderbox:     1.022x as fast     23.5ms +/- 1.6%    23.0ms +/- 1.5%     significant

  stanford:                  1.020x as fast    237.9ms +/- 0.8%   233.3ms +/- 1.2%     significant
    crypto-aes:              1.045x as fast     51.5ms +/- 1.9%    49.3ms +/- 1.2%     significant
    crypto-ccm:              -                  48.4ms +/- 1.9%    48.3ms +/- 4.7% 
    crypto-pbkdf2:           1.014x as fast     99.6ms +/- 1.3%    98.2ms +/- 0.6%     significant
    crypto-sha256-iterative: 1.024x as fast     38.4ms +/- 1.3%    37.5ms +/- 1.3%     significant</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203592</commentid>
    <comment_count>5</comment_count>
      <attachid>281618</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-06-18 13:50:33 -0700</bug_when>
    <thetext>Created attachment 281618
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203605</commentid>
    <comment_count>6</comment_count>
      <attachid>281618</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-06-18 23:51:22 -0700</bug_when>
    <thetext>Comment on attachment 281618
the patch

A bit nasty but let&apos;s try anyway. Especially since ARM hurts a lot and we don&apos;t have more cores.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203613</commentid>
    <comment_count>7</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-06-19 09:40:25 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Comment on attachment 281618 [details]
&gt; the patch
&gt; 
&gt; A bit nasty but let&apos;s try anyway. Especially since ARM hurts a lot and we
&gt; don&apos;t have more cores.

We had a similar thing arise with DFG vs FTL compilation, and we found that even on two cores, it&apos;s profitable to have DFG and FTL be in separate threads so that they interleave with each other in case the FTL takes a long time.

I think that a similar thing applies here.  Having additional baseline threads would likely help.  It would be a generalization of what this patch does.  But maybe what this patch does is even better, since most baseline compiles are fast enough that it&apos;s OK to just do them on the main thread when the helper is busy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203614</commentid>
    <comment_count>8</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-06-19 09:45:04 -0700</bug_when>
    <thetext>Landed in r202205.  I think.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203986</commentid>
    <comment_count>9</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-06-20 18:59:34 -0700</bug_when>
    <thetext>I think we&apos;re ~3% regressed on iPhone 6 Plus. Will email you details.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281618</attachid>
            <date>2016-06-18 13:50:33 -0700</date>
            <delta_ts>2016-06-18 23:51:22 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>7423</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjAyMTk4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU0IEBA
CisyMDE2LTA2LTE4ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
UkVHUkVTU0lPTihjb25jdXJyZW50IGJhc2VsaW5lIEpJVCk6IEtyYWtlbi9haS1hc3RhciBydW5z
IDIwJSBzbG93ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE1ODkwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAg
ICAKKyAgICAgICAgVGhlIGNvbmN1cnJlbnQgYmFzZWxpbmUgSklUIHdhcyBhIDItMyUgcHJvZ3Jl
c3Npb24gb24gSlNCZW5jaCwgcG9zc2libHkgYSAxJSBwcm9ncmVzc2lvbgorICAgICAgICBvbiBQ
TFQzLCBidXQgYSAyLTUlIHJlZ3Jlc3Npb24gb24gS3Jha2VuLiBUaGlzIHBhdGNoIGZpeGVzIHRo
ZSBLcmFrZW4gcmVncmVzc2lvbiB3aXRob3V0CisgICAgICAgIGFmZmVjdGluZyB0aGUgb3RoZXIg
dGVzdHMuCisgICAgICAgIAorICAgICAgICBUaGUgcHJvYmxlbSBpcyB0aGF0IEtyYWtlbi9haS1h
c3RhcidzIGluaXRpYWxpemF0aW9uIGNvZGUgaGFkIGEgZ2lub3Jtb3VzIHBpZWNlIG9mIGluaXQK
KyAgICAgICAgY29kZSB0aGF0IHRvb2sgYWJvdXQgMTZtcyB0byBjb21waWxlIGluIGJhc2VsaW5l
LiBUaGVyZSdzIG5vIGdvb2Qgd2F5IHRvIGF2b2lkIGxldHRpbmcgaXQKKyAgICAgICAgdGllci11
cCBpbnRvIGJhc2VsaW5lIHNpbmNlIGl0IGhhcyBhIGNvbXB1dGUgbG9vcC4gVGhlIHRpbWUgaXQg
dGFrZXMgdG8gcnVuIHRoaXMgY29kZSBpcworICAgICAgICBuZXZlciBtZWFzdXJlZC4gVGhlIGNv
bmN1cnJlbnQgYmFzZWxpbmUgSklUIGNhdXNlZCB1cyB0byBzY2hlZHVsZSB0aGUgY29tcGlsYXRp
b24gb2YgdGhpcworICAgICAgICBodWdlIGNvZGUgcmF0aGVyIHRoYW4gZG9pbmcgaXQgZWFnZXJs
eS4gVGhpcyBtZWFudCB0aGF0IGFmdGVyIGluaXRpYWxpemF0aW9uIHdhcyBkb25lIGFuZAorICAg
ICAgICB3ZSBzdGFydGVkIGFjdHVhbGx5IHJ1bm5pbmcgcmVhbCBzdHVmZiwgYWxsIG9mIHRoZSBy
ZWFsIHN0dWZmJ3MgY29tcGlsZXMgd291bGQgYmUgY29udm95ZWQKKyAgICAgICAgYmVoaW5kIHRo
aXMgc3VwZXItZXhwZW5zaXZlIGJhc2VsaW5lIGNvbXBpbGUuIE5vdGUgdGhhdCBERkcgYW5kIEZU
TCBjb21waWxlcyBjb252b3kgYmVoaW5kCisgICAgICAgIGJhc2VsaW5lIGNvbXBpbGVzLCBzaW5j
ZSB5b3UgY2FuJ3Qgc2NoZWR1bGUgYSBERkcgY29tcGlsZSBmb3IgYSBjb2RlIGJsb2NrIHVudGls
IHRoYXQgY29kZQorICAgICAgICBibG9jayBpcyBpbiBiYXNlbGluZS4KKyAgICAgICAgCisgICAg
ICAgIFRoaXMgdXNlcyB0aGUgc2ltcGxlc3QgZml4OiBpZiB3ZSBhcmUgdGhpbmtpbmcgYWJvdXQg
c2NoZWR1bGluZyBzb21lIGNvbXBpbGUgYW5kIHRoZQorICAgICAgICB0aHJlYWQgaXMgYnVzeSwg
ZG8gdGhlIGNvbXBpbGUgb24gdGhlIG1haW4gdGhyZWFkIGluc3RlYWQuIFRoaXMgZG9lc24ndCBj
b21wbGV0ZWx5CisgICAgICAgIGVsaW1pbmF0ZSB0aGUgYWktYXN0YXIgcmVncmVzc2lvbiAod2Ug
c3RpbGwgaGF2ZSBhIDQlIHJlZ3Jlc3Npb24gb24gdGhhdCB0ZXN0KSBidXQgaXQgbm93CisgICAg
ICAgIHJlc3VsdHMgaW4gY29uY3VycmVudCBiYXNlbGluZSBKSVQgYmVpbmcgYW4gb3ZlcmFsbCBw
cm9ncmVzc2lvbiBvbiBLcmFrZW4gYXMgYSB3aG9sZSAoMSUKKyAgICAgICAgb24gbXkgbWFjaGlu
ZSkuIFRoaXMgaXMgYmVjYXVzZSBjb25jdXJyZW50IGJhc2VsaW5lIGFwcGVhcnMgdG8gaGVscCBv
biBvdGhlciB0ZXN0cy4KKworICAgICAgICBJbiB0aGUgZnV0dXJlLCB3ZSBjb3VsZCBmaXggdGhp
cyBldmVuIGJldHRlciBieSBhbGxvd2luZyB0aGUgSklUV29ya2xpc3QgdG8gc3Bhd24gbW9yZQor
ICAgICAgICB0aHJlYWRzIG9yIGJ5IGJlaW5nIHNtYXJ0ZXIgYWJvdXQgYmFzZWxpbmUgY29tcGls
YXRpb24uIEkgdGhpbmsgaXQncyBuYXN0eSB0aGF0IGlmIGEgZ2lhbnQKKyAgICAgICAgcGllY2Ug
b2YgaW5pdGlhbGl6YXRpb24gY29kZSBlbmRzIGluIGEgY29tcHV0ZSBsb29wLCB3ZSBjb21waWxl
IGFsbCBvZiB0aGUgY29kZSBpbnN0ZWFkIG9mCisgICAgICAgIGp1c3QgdGhlIGxvb3AuIEl0J3Mg
YWxzbyBncm9zcyB0aGF0IGEgY29uc3RhbnQtbGlrZSBvYmplY3QgY3JlYXRpb24gZXhwcmVzc2lv
biB3aWxsIHJlc3VsdAorICAgICAgICBpbiBzbyBtdWNoIGNvZGUuIEl0IHdvdWxkIHJlc3VsdCBp
biBsZXNzIGNvZGUgaWYgd2UgYWxsb3dlZCBvdXJzZWx2ZXMgdG8gZG8gYSBiaXQgbW9yZQorICAg
ICAgICBzdGF0aWMgcmVhc29uaW5nIGFib3V0IG9iamVjdCBsaXRlcmFscy4KKyAgICAgICAgCisg
ICAgICAgIEJ1dCBmb3Igbm93LCBJIHRoaW5rIHRoYXQgdGhpcyBpcyBhIGdyZWF0IHdheSB0byBy
ZWNvdmVyIHRoZSBLcmFrZW4gcmVncmVzc2lvbiB3aGlsZSBzdGlsbAorICAgICAgICBrZWVwaW5n
IHRoZSBvdGhlciBwcm9ncmVzc2lvbnMgZnJvbSBjb25jdXJyZW50IGJhc2VsaW5lLgorCisgICAg
ICAgICogaml0L0pJVFdvcmtsaXN0LmNwcDoKKyAgICAgICAgKEpTQzo6SklUV29ya2xpc3Q6OlBs
YW46OlBsYW4pOgorICAgICAgICAoSlNDOjpKSVRXb3JrbGlzdDo6UGxhbjo6Y29tcGlsZUluVGhy
ZWFkKToKKyAgICAgICAgKEpTQzo6SklUV29ya2xpc3Q6OlBsYW46OmZpbmFsaXplKToKKyAgICAg
ICAgKEpTQzo6SklUV29ya2xpc3Q6OlBsYW46OmNvZGVCbG9jayk6CisgICAgICAgIChKU0M6OkpJ
VFdvcmtsaXN0OjpQbGFuOjppc0ZpbmlzaGVkQ29tcGlsaW5nKToKKyAgICAgICAgKEpTQzo6SklU
V29ya2xpc3Q6OlBsYW46OmNvbXBpbGVOb3cpOgorICAgICAgICAoSlNDOjpKSVRXb3JrbGlzdDo6
SklUV29ya2xpc3QpOgorICAgICAgICAoSlNDOjpKSVRXb3JrbGlzdDo6Y29tcGlsZUxhdGVyKToK
KyAgICAgICAgKEpTQzo6SklUV29ya2xpc3Q6OmNvbXBpbGVOb3cpOgorICAgICAgICAoSlNDOjpK
SVRXb3JrbGlzdDo6cnVuVGhyZWFkKToKKyAgICAgICAgKEpTQzo6SklUV29ya2xpc3Q6OlBsYW46
OmlzRmluYWxpemVkKTogRGVsZXRlZC4KKyAgICAgICAgKiBqaXQvSklUV29ya2xpc3QuaDoKKwog
MjAxNi0wNi0xNyAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjIwMjE1Mi4KSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUV29ya2xpc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUV29ya2xpc3QuY3BwCShyZXZpc2lvbiAyMDIxNzcpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFdvcmtsaXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NzEsOSArNzEsNiBAQCBwdWJsaWM6CiAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIAotICAgICAg
ICBMb2NrSG9sZGVyIGxvY2tlcihtX2xvY2spOwotICAgICAgICBtX2lzRmluYWxpemVkID0gdHJ1
ZTsKICAgICB9CiAgICAgCiAgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2soKSB7IHJldHVybiBtX2Nv
ZGVCbG9jazsgfQpAQCAtODQsMTAgKzgxLDEyIEBAIHB1YmxpYzoKICAgICAgICAgTG9ja0hvbGRl
ciBsb2NrZXIobV9sb2NrKTsKICAgICAgICAgcmV0dXJuIG1faXNGaW5pc2hlZENvbXBpbGluZzsK
ICAgICB9Ci0gICAgYm9vbCBpc0ZpbmFsaXplZCgpCisgICAgCisgICAgc3RhdGljIHZvaWQgY29t
cGlsZU5vdyhDb2RlQmxvY2sqIGNvZGVCbG9jaykKICAgICB7Ci0gICAgICAgIExvY2tIb2xkZXIg
bG9ja2VyKG1fbG9jayk7Ci0gICAgICAgIHJldHVybiBtX2lzRmluYWxpemVkOworICAgICAgICBQ
bGFuIHBsYW4oY29kZUJsb2NrKTsKKyAgICAgICAgcGxhbi5jb21waWxlSW5UaHJlYWQoKTsKKyAg
ICAgICAgcGxhbi5maW5hbGl6ZSgpOwogICAgIH0KICAgICAKIHByaXZhdGU6CkBAIC05NSw3ICs5
NCw2IEBAIHByaXZhdGU6CiAgICAgSklUIG1faml0OwogICAgIExvY2sgbV9sb2NrOwogICAgIGJv
b2wgbV9pc0ZpbmlzaGVkQ29tcGlsaW5nIHsgZmFsc2UgfTsKLSAgICBib29sIG1faXNGaW5hbGl6
ZWQgeyBmYWxzZSB9OwogfTsKIAogSklUV29ya2xpc3Q6OkpJVFdvcmtsaXN0KCkKQEAgLTE3Nywy
NCArMTc1LDQ1IEBAIHZvaWQgSklUV29ya2xpc3Q6OmNvbXBpbGVMYXRlcihDb2RlQmxvY2sKICAg
ICB9CiAgICAgCiAgICAgaWYgKCFPcHRpb25zOjp1c2VDb25jdXJyZW50SklUKCkpIHsKLSAgICAg
ICAgUGxhbiBwbGFuKGNvZGVCbG9jayk7Ci0gICAgICAgIHBsYW4uY29tcGlsZUluVGhyZWFkKCk7
Ci0gICAgICAgIHBsYW4uZmluYWxpemUoKTsKKyAgICAgICAgUGxhbjo6Y29tcGlsZU5vdyhjb2Rl
QmxvY2spOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIAogICAgIGNvZGVCbG9jay0+aml0
U29vbigpOwotICAgIAotICAgIFBsYW5zIG15UGxhbnM7Ci0gICAgTG9ja0hvbGRlciBsb2NrZXIo
bV9sb2NrKTsKLSAgICAKLSAgICBpZiAoIW1fcGxhbm5lZC5hZGQoY29kZUJsb2NrKS5pc05ld0Vu
dHJ5KQotICAgICAgICByZXR1cm47Ci0gICAgCi0gICAgUmVmUHRyPFBsYW4+IHBsYW4gPSBhZG9w
dFJlZihuZXcgUGxhbihjb2RlQmxvY2spKTsKLSAgICBtX3BsYW5zLmFwcGVuZChwbGFuKTsKLSAg
ICBtX3F1ZXVlLmFwcGVuZChwbGFuKTsKLSAgICBtX2NvbmRpdGlvbi5ub3RpZnlBbGwoKTsKKwor
ICAgIHsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9sb2NrKTsKKyAgICAgICAgCisgICAg
ICAgIGlmIChtX3BsYW5uZWQuY29udGFpbnMoY29kZUJsb2NrKSkKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgCisgICAgICAgIGlmIChtX251bUF2YWlsYWJsZVRocmVhZHMpIHsKKyAgICAg
ICAgICAgIG1fcGxhbm5lZC5hZGQoY29kZUJsb2NrKTsKKyAgICAgICAgICAgIFJlZlB0cjxQbGFu
PiBwbGFuID0gYWRvcHRSZWYobmV3IFBsYW4oY29kZUJsb2NrKSk7CisgICAgICAgICAgICBtX3Bs
YW5zLmFwcGVuZChwbGFuKTsKKyAgICAgICAgICAgIG1fcXVldWUuYXBwZW5kKHBsYW4pOworICAg
ICAgICAgICAgbV9jb25kaXRpb24ubm90aWZ5QWxsKCk7CisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBDb21waWxpbmcgb24gdGhlIG1haW4gdGhyZWFkIGlm
IHRoZSBoZWxwZXIgdGhyZWFkIGlzbid0IGF2YWlsYWJsZSBpcyBhIGRlZmVuc2UgYWdhaW5zdCB0
aGlzCisgICAgLy8gcGF0aG9sb2d5OgorICAgIC8vCisgICAgLy8gMSkgRG8gc29tZXRoaW5nIHRo
YXQgaXMgYWxsb3dlZCB0byB0YWtlIGEgd2hpbGUsIGxpa2UgbG9hZCBhIGdpYW50IHBpZWNlIG9m
IGluaXRpYWxpemF0aW9uCisgICAgLy8gICAgY29kZS4gVGhpcyBwbGFucyB0aGUgY29tcGlsZSBv
ZiB0aGUgaW5pdCBjb2RlLCBidXQgZG9lc24ndCBmaW5pc2ggaXQuIEl0IHdpbGwgdGFrZSBhCisg
ICAgLy8gICAgd2hpbGUuCisgICAgLy8KKyAgICAvLyAyKSBEbyBzb21ldGhpbmcgdGhhdCBpcyBz
dXBwb3NlZCB0byBiZSBxdWljay4gTm93IGFsbCBiYXNlbGluZSBjb21waWxlcywgYW5kIHNvIGFs
bCBERkcgYW5kCisgICAgLy8gICAgRlRMIGNvbXBpbGVzLCBvZiBldmVyeXRoaW5nIGlzIGJsb2Nr
ZWQgb24gdGhlIGxvbmctcnVubmluZyBiYXNlbGluZSBjb21waWxlIG9mIHRoYXQKKyAgICAvLyAg
ICBpbml0aWFsaXphdGlvbiBjb2RlLgorICAgIC8vCisgICAgLy8gVGhlIHNpbmdsZS10aHJlYWRl
ZCBjb25jdXJyZW50IEpJVCBoYXMgdGhpcyB0ZW5kZW5jeSB0byBjb252b3kgZXZlcnl0aGluZyB3
aGlsZSBhdCB0aGUgc2FtZQorICAgIC8vIHRpbWUgcG9zdHBvbmluZyB3aGVuIGl0IGhhcHBlbnMs
IHdoaWNoIG1lYW5zIHRoYXQgdGhlIGNvbnZveSBkZWxheXMgYXJlIGxlc3MgcHJlZGljdGFibGUu
CisgICAgLy8gVGhpcyB3b3JrcyBhcm91bmQgdGhlIGlzc3VlLiBJZiB0aGUgY29uY3VycmVudCBK
SVQgdGhyZWFkIGlzIGNvbnZveWVkLCB3ZSByZXZlcnQgdG8gbWFpbgorICAgIC8vIHRocmVhZCBj
b21waWxlcy4gVGhpcyBpcyBwcm9iYWJseSBub3QgYXMgZ29vZCBhcyBpZiB3ZSBoYWQgbXVsdGlw
bGUgSklUIHRocmVhZHMuIE1heWJlIHdlCisgICAgLy8gY2FuIGRvIHRoYXQgc29tZWRheS4KKyAg
ICBQbGFuOjpjb21waWxlTm93KGNvZGVCbG9jayk7CiB9CiAKIHZvaWQgSklUV29ya2xpc3Q6OmNv
bXBpbGVOb3coQ29kZUJsb2NrKiBjb2RlQmxvY2spCkBAIC0yMzUsOCArMjU0LDEwIEBAIHZvaWQg
SklUV29ya2xpc3Q6OnJ1blRocmVhZCgpCiAgICAgICAgIFBsYW5zIG15UGxhbnM7CiAgICAgICAg
IHsKICAgICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbG9jayk7CisgICAgICAgICAgICBt
X251bUF2YWlsYWJsZVRocmVhZHMrKzsKICAgICAgICAgICAgIHdoaWxlIChtX3F1ZXVlLmlzRW1w
dHkoKSkKICAgICAgICAgICAgICAgICBtX2NvbmRpdGlvbi53YWl0KG1fbG9jayk7CisgICAgICAg
ICAgICBtX251bUF2YWlsYWJsZVRocmVhZHMtLTsKICAgICAgICAgICAgIAogICAgICAgICAgICAg
Ly8gVGhpcyBpcyBhIGZ1biB3YXkgdG8gZGVxdWV1ZS4gSSBkb24ndCBrbm93IGlmIGl0J3MgYW55
IGJldHRlciBvciB3b3JzZSB0aGFuIGRlcXVldWluZwogICAgICAgICAgICAgLy8gb25lIHRoaW5n
IGF0IGEgdGltZS4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUV29ya2xpc3Qu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFdvcmtsaXN0LmgJ
KHJldmlzaW9uIDIwMjE3NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUV29ya2xp
c3QuaAkod29ya2luZyBjb3B5KQpAQCAtNzMsNiArNzMsOCBAQCBwcml2YXRlOgogICAgIAogICAg
IExvY2sgbV9sb2NrOwogICAgIENvbmRpdGlvbiBtX2NvbmRpdGlvbjsgLy8gV2UgdXNlIE9uZSBU
cnVlIENvbmRpdGlvbiBmb3IgZXZlcnl0aGluZyBiZWNhdXNlIHRoYXQncyBlYXNpZXIuCisgICAg
CisgICAgdW5zaWduZWQgbV9udW1BdmFpbGFibGVUaHJlYWRzIHsgMCB9OwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgSlNDCg==
</data>
<flag name="review"
          id="305443"
          type_id="1"
          status="+"
          setter="benjamin"
    />
          </attachment>
      

    </bug>

</bugzilla>