<?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>147165</bug_id>
          
          <creation_ts>2015-07-21 15:10:03 -0700</creation_ts>
          <short_desc>Occasional failure in v8-v6/v8-raytrace.js.ftl-eager</short_desc>
          <delta_ts>2015-08-14 22:14:35 -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>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="Basile Clement">basile_clement</assigned_to>
          <cc>ap</cc>
    
    <cc>barraclough</cc>
    
    <cc>basile_clement</cc>
    
    <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenb</cc>
    
    <cc>mmirman</cc>
    
    <cc>msaboff</cc>
    
    <cc>nrotem</cc>
    
    <cc>oliver</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1111074</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-07-21 15:10:03 -0700</bug_when>
    <thetext>Earliest revision that I see it in is r187107.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111075</commentid>
    <comment_count>1</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-07-21 15:10:37 -0700</bug_when>
    <thetext>[pizlo@dethklok OpenSource] DYLD_FRAMEWORK_PATH=WebKitBuild/Release/ until_fail.rb WebKitBuild/Release/jsc --useFTLJIT\=false --enableFunctionDotArguments\=true --useFTLJIT\=true --ftlCrashesIfCantInitializeLLVM\=true --thresholdForJITAfterWarmUp\=10 --thresholdForJITSoon\=10 --thresholdForOptimizeAfterWarmUp\=20 --thresholdForOptimizeAfterLongWarmUp\=20 --thresholdForOptimizeSoon\=20 --thresholdForFTLOptimizeAfterWarmUp\=20 --thresholdForFTLOptimizeSoon\=20 --maximumEvalCacheableSourceLength\=150000 PerformanceTests/SunSpider/tests/v8-v6/v8-raytrace.js
Doing run #1...
Running [&quot;WebKitBuild/Release/jsc&quot;, &quot;--useFTLJIT=false&quot;, &quot;--enableFunctionDotArguments=true&quot;, &quot;--useFTLJIT=true&quot;, &quot;--ftlCrashesIfCantInitializeLLVM=true&quot;, &quot;--thresholdForJITAfterWarmUp=10&quot;, &quot;--thresholdForJITSoon=10&quot;, &quot;--thresholdForOptimizeAfterWarmUp=20&quot;, &quot;--thresholdForOptimizeAfterLongWarmUp=20&quot;, &quot;--thresholdForOptimizeSoon=20&quot;, &quot;--thresholdForFTLOptimizeAfterWarmUp=20&quot;, &quot;--thresholdForFTLOptimizeSoon=20&quot;, &quot;--maximumEvalCacheableSourceLength=150000&quot;, &quot;PerformanceTests/SunSpider/tests/v8-v6/v8-raytrace.js&quot;]
Doing run #2...
Running [&quot;WebKitBuild/Release/jsc&quot;, &quot;--useFTLJIT=false&quot;, &quot;--enableFunctionDotArguments=true&quot;, &quot;--useFTLJIT=true&quot;, &quot;--ftlCrashesIfCantInitializeLLVM=true&quot;, &quot;--thresholdForJITAfterWarmUp=10&quot;, &quot;--thresholdForJITSoon=10&quot;, &quot;--thresholdForOptimizeAfterWarmUp=20&quot;, &quot;--thresholdForOptimizeAfterLongWarmUp=20&quot;, &quot;--thresholdForOptimizeSoon=20&quot;, &quot;--thresholdForFTLOptimizeAfterWarmUp=20&quot;, &quot;--thresholdForFTLOptimizeSoon=20&quot;, &quot;--maximumEvalCacheableSourceLength=150000&quot;, &quot;PerformanceTests/SunSpider/tests/v8-v6/v8-raytrace.js&quot;]
Doing run #3...
Running [&quot;WebKitBuild/Release/jsc&quot;, &quot;--useFTLJIT=false&quot;, &quot;--enableFunctionDotArguments=true&quot;, &quot;--useFTLJIT=true&quot;, &quot;--ftlCrashesIfCantInitializeLLVM=true&quot;, &quot;--thresholdForJITAfterWarmUp=10&quot;, &quot;--thresholdForJITSoon=10&quot;, &quot;--thresholdForOptimizeAfterWarmUp=20&quot;, &quot;--thresholdForOptimizeAfterLongWarmUp=20&quot;, &quot;--thresholdForOptimizeSoon=20&quot;, &quot;--thresholdForFTLOptimizeAfterWarmUp=20&quot;, &quot;--thresholdForFTLOptimizeSoon=20&quot;, &quot;--maximumEvalCacheableSourceLength=150000&quot;, &quot;PerformanceTests/SunSpider/tests/v8-v6/v8-raytrace.js&quot;]
Doing run #4...
Running [&quot;WebKitBuild/Release/jsc&quot;, &quot;--useFTLJIT=false&quot;, &quot;--enableFunctionDotArguments=true&quot;, &quot;--useFTLJIT=true&quot;, &quot;--ftlCrashesIfCantInitializeLLVM=true&quot;, &quot;--thresholdForJITAfterWarmUp=10&quot;, &quot;--thresholdForJITSoon=10&quot;, &quot;--thresholdForOptimizeAfterWarmUp=20&quot;, &quot;--thresholdForOptimizeAfterLongWarmUp=20&quot;, &quot;--thresholdForOptimizeSoon=20&quot;, &quot;--thresholdForFTLOptimizeAfterWarmUp=20&quot;, &quot;--thresholdForFTLOptimizeSoon=20&quot;, &quot;--maximumEvalCacheableSourceLength=150000&quot;, &quot;PerformanceTests/SunSpider/tests/v8-v6/v8-raytrace.js&quot;]
Doing run #5...
Running [&quot;WebKitBuild/Release/jsc&quot;, &quot;--useFTLJIT=false&quot;, &quot;--enableFunctionDotArguments=true&quot;, &quot;--useFTLJIT=true&quot;, &quot;--ftlCrashesIfCantInitializeLLVM=true&quot;, &quot;--thresholdForJITAfterWarmUp=10&quot;, &quot;--thresholdForJITSoon=10&quot;, &quot;--thresholdForOptimizeAfterWarmUp=20&quot;, &quot;--thresholdForOptimizeAfterLongWarmUp=20&quot;, &quot;--thresholdForOptimizeSoon=20&quot;, &quot;--thresholdForFTLOptimizeAfterWarmUp=20&quot;, &quot;--thresholdForFTLOptimizeSoon=20&quot;, &quot;--maximumEvalCacheableSourceLength=150000&quot;, &quot;PerformanceTests/SunSpider/tests/v8-v6/v8-raytrace.js&quot;]
Doing run #6...
Running [&quot;WebKitBuild/Release/jsc&quot;, &quot;--useFTLJIT=false&quot;, &quot;--enableFunctionDotArguments=true&quot;, &quot;--useFTLJIT=true&quot;, &quot;--ftlCrashesIfCantInitializeLLVM=true&quot;, &quot;--thresholdForJITAfterWarmUp=10&quot;, &quot;--thresholdForJITSoon=10&quot;, &quot;--thresholdForOptimizeAfterWarmUp=20&quot;, &quot;--thresholdForOptimizeAfterLongWarmUp=20&quot;, &quot;--thresholdForOptimizeSoon=20&quot;, &quot;--thresholdForFTLOptimizeAfterWarmUp=20&quot;, &quot;--thresholdForFTLOptimizeSoon=20&quot;, &quot;--maximumEvalCacheableSourceLength=150000&quot;, &quot;PerformanceTests/SunSpider/tests/v8-v6/v8-raytrace.js&quot;]
Doing run #7...
Running [&quot;WebKitBuild/Release/jsc&quot;, &quot;--useFTLJIT=false&quot;, &quot;--enableFunctionDotArguments=true&quot;, &quot;--useFTLJIT=true&quot;, &quot;--ftlCrashesIfCantInitializeLLVM=true&quot;, &quot;--thresholdForJITAfterWarmUp=10&quot;, &quot;--thresholdForJITSoon=10&quot;, &quot;--thresholdForOptimizeAfterWarmUp=20&quot;, &quot;--thresholdForOptimizeAfterLongWarmUp=20&quot;, &quot;--thresholdForOptimizeSoon=20&quot;, &quot;--thresholdForFTLOptimizeAfterWarmUp=20&quot;, &quot;--thresholdForFTLOptimizeSoon=20&quot;, &quot;--maximumEvalCacheableSourceLength=150000&quot;, &quot;PerformanceTests/SunSpider/tests/v8-v6/v8-raytrace.js&quot;]
Doing run #8...
Running [&quot;WebKitBuild/Release/jsc&quot;, &quot;--useFTLJIT=false&quot;, &quot;--enableFunctionDotArguments=true&quot;, &quot;--useFTLJIT=true&quot;, &quot;--ftlCrashesIfCantInitializeLLVM=true&quot;, &quot;--thresholdForJITAfterWarmUp=10&quot;, &quot;--thresholdForJITSoon=10&quot;, &quot;--thresholdForOptimizeAfterWarmUp=20&quot;, &quot;--thresholdForOptimizeAfterLongWarmUp=20&quot;, &quot;--thresholdForOptimizeSoon=20&quot;, &quot;--thresholdForFTLOptimizeAfterWarmUp=20&quot;, &quot;--thresholdForFTLOptimizeSoon=20&quot;, &quot;--maximumEvalCacheableSourceLength=150000&quot;, &quot;PerformanceTests/SunSpider/tests/v8-v6/v8-raytrace.js&quot;]
Doing run #9...
Running [&quot;WebKitBuild/Release/jsc&quot;, &quot;--useFTLJIT=false&quot;, &quot;--enableFunctionDotArguments=true&quot;, &quot;--useFTLJIT=true&quot;, &quot;--ftlCrashesIfCantInitializeLLVM=true&quot;, &quot;--thresholdForJITAfterWarmUp=10&quot;, &quot;--thresholdForJITSoon=10&quot;, &quot;--thresholdForOptimizeAfterWarmUp=20&quot;, &quot;--thresholdForOptimizeAfterLongWarmUp=20&quot;, &quot;--thresholdForOptimizeSoon=20&quot;, &quot;--thresholdForFTLOptimizeAfterWarmUp=20&quot;, &quot;--thresholdForFTLOptimizeSoon=20&quot;, &quot;--maximumEvalCacheableSourceLength=150000&quot;, &quot;PerformanceTests/SunSpider/tests/v8-v6/v8-raytrace.js&quot;]
Doing run #10...
Running [&quot;WebKitBuild/Release/jsc&quot;, &quot;--useFTLJIT=false&quot;, &quot;--enableFunctionDotArguments=true&quot;, &quot;--useFTLJIT=true&quot;, &quot;--ftlCrashesIfCantInitializeLLVM=true&quot;, &quot;--thresholdForJITAfterWarmUp=10&quot;, &quot;--thresholdForJITSoon=10&quot;, &quot;--thresholdForOptimizeAfterWarmUp=20&quot;, &quot;--thresholdForOptimizeAfterLongWarmUp=20&quot;, &quot;--thresholdForOptimizeSoon=20&quot;, &quot;--thresholdForFTLOptimizeAfterWarmUp=20&quot;, &quot;--thresholdForFTLOptimizeSoon=20&quot;, &quot;--maximumEvalCacheableSourceLength=150000&quot;, &quot;PerformanceTests/SunSpider/tests/v8-v6/v8-raytrace.js&quot;]
Exception: TypeError: this.initialize.apply is not a function. (In &apos;this.initialize.apply(this, arguments)&apos;, &apos;this.initialize.apply&apos; is undefined)
PerformanceTests/SunSpider/tests/v8-v6/v8-raytrace.js:31:28
testIntersection@PerformanceTests/SunSpider/tests/v8-v6/v8-raytrace.js:677:55
rayTrace@PerformanceTests/SunSpider/tests/v8-v6/v8-raytrace.js:768:51
getPixelColor@PerformanceTests/SunSpider/tests/v8-v6/v8-raytrace.js:669:38
renderScene@PerformanceTests/SunSpider/tests/v8-v6/v8-raytrace.js:656:43
renderScene@PerformanceTests/SunSpider/tests/v8-v6/v8-raytrace.js:898:26
global code@PerformanceTests/SunSpider/tests/v8-v6/v8-raytrace.js:902:14</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117721</commentid>
    <comment_count>2</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-08-14 13:00:26 -0700</bug_when>
    <thetext>This worked for me too:

DYLD_FRAMEWORK_PATH=WebKitBuild/Release/ until_fail.rb WebKitBuild/Release/jsc &quot;--thresholdForJITAfterWarmUp=10&quot; &quot;--thresholdForJITSoon=10&quot; &quot;--thresholdForOptimizeAfterWarmUp=20&quot; &quot;--thresholdForOptimizeAfterLongWarmUp=20&quot; &quot;--thresholdForOptimizeSoon=20&quot; &quot;--thresholdForFTLOptimizeAfterWarmUp=20&quot; &quot;--thresholdForFTLOptimizeSoon=20&quot; &quot;--maximumEvalCacheableSourceLength=150000&quot; --enableObjectAllocationSinking=false PerformanceTests/SunSpider/tests/v8-v6/v8-raytrace.js

I last tested this on r188482 on Yosemite.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117732</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-08-14 13:11:40 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; This worked for me too:
&gt; 
&gt; DYLD_FRAMEWORK_PATH=WebKitBuild/Release/ until_fail.rb
&gt; WebKitBuild/Release/jsc &quot;--thresholdForJITAfterWarmUp=10&quot;
&gt; &quot;--thresholdForJITSoon=10&quot; &quot;--thresholdForOptimizeAfterWarmUp=20&quot;
&gt; &quot;--thresholdForOptimizeAfterLongWarmUp=20&quot; &quot;--thresholdForOptimizeSoon=20&quot;
&gt; &quot;--thresholdForFTLOptimizeAfterWarmUp=20&quot; &quot;--thresholdForFTLOptimizeSoon=20&quot;
&gt; &quot;--maximumEvalCacheableSourceLength=150000&quot;
&gt; --enableObjectAllocationSinking=false
&gt; PerformanceTests/SunSpider/tests/v8-v6/v8-raytrace.js
&gt; 
&gt; I last tested this on r188482 on Yosemite.

I lied.  The command line I used was:

[pizlo@shakezilla OpenSource] DYLD_FRAMEWORK_PATH=WebKitBuild/Release/ until_fail.rb WebKitBuild/Release/jsc &quot;--thresholdForJITAfterWarmUp=10&quot; &quot;--thresholdForJITSoon=10&quot; &quot;--thresholdForOptimizeAfterWarmUp=20&quot; &quot;--thresholdForOptimizeAfterLongWarmUp=20&quot; &quot;--thresholdForOptimizeSoon=20&quot; &quot;--thresholdForFTLOptimizeAfterWarmUp=20&quot; &quot;--thresholdForFTLOptimizeSoon=20&quot; &quot;--maximumEvalCacheableSourceLength=150000&quot; PerformanceTests/SunSpider/tests/v8-v6/v8-raytrace.js
Doing run #1...
Running [&quot;WebKitBuild/Release/jsc&quot;, &quot;--thresholdForJITAfterWarmUp=10&quot;, &quot;--thresholdForJITSoon=10&quot;, &quot;--thresholdForOptimizeAfterWarmUp=20&quot;, &quot;--thresholdForOptimizeAfterLongWarmUp=20&quot;, &quot;--thresholdForOptimizeSoon=20&quot;, &quot;--thresholdForFTLOptimizeAfterWarmUp=20&quot;, &quot;--thresholdForFTLOptimizeSoon=20&quot;, &quot;--maximumEvalCacheableSourceLength=150000&quot;, &quot;PerformanceTests/SunSpider/tests/v8-v6/v8-raytrace.js&quot;]
Doing run #2...
Running [&quot;WebKitBuild/Release/jsc&quot;, &quot;--thresholdForJITAfterWarmUp=10&quot;, &quot;--thresholdForJITSoon=10&quot;, &quot;--thresholdForOptimizeAfterWarmUp=20&quot;, &quot;--thresholdForOptimizeAfterLongWarmUp=20&quot;, &quot;--thresholdForOptimizeSoon=20&quot;, &quot;--thresholdForFTLOptimizeAfterWarmUp=20&quot;, &quot;--thresholdForFTLOptimizeSoon=20&quot;, &quot;--maximumEvalCacheableSourceLength=150000&quot;, &quot;PerformanceTests/SunSpider/tests/v8-v6/v8-raytrace.js&quot;]
Doing run #3...
Running [&quot;WebKitBuild/Release/jsc&quot;, &quot;--thresholdForJITAfterWarmUp=10&quot;, &quot;--thresholdForJITSoon=10&quot;, &quot;--thresholdForOptimizeAfterWarmUp=20&quot;, &quot;--thresholdForOptimizeAfterLongWarmUp=20&quot;, &quot;--thresholdForOptimizeSoon=20&quot;, &quot;--thresholdForFTLOptimizeAfterWarmUp=20&quot;, &quot;--thresholdForFTLOptimizeSoon=20&quot;, &quot;--maximumEvalCacheableSourceLength=150000&quot;, &quot;PerformanceTests/SunSpider/tests/v8-v6/v8-raytrace.js&quot;]
Exception: TypeError: this.initialize.apply is not a function. (In &apos;this.initialize.apply(this, arguments)&apos;, &apos;this.initialize.apply&apos; is undefined)
PerformanceTests/SunSpider/tests/v8-v6/v8-raytrace.js:31:28
initialize@PerformanceTests/SunSpider/tests/v8-v6/v8-raytrace.js:527:46
PerformanceTests/SunSpider/tests/v8-v6/v8-raytrace.js:31:28
intersect@PerformanceTests/SunSpider/tests/v8-v6/v8-raytrace.js:474:55
testIntersection@PerformanceTests/SunSpider/tests/v8-v6/v8-raytrace.js:684:43
rayTrace@PerformanceTests/SunSpider/tests/v8-v6/v8-raytrace.js:768:51
rayTrace@PerformanceTests/SunSpider/tests/v8-v6/v8-raytrace.js:745:45
getPixelColor@PerformanceTests/SunSpider/tests/v8-v6/v8-raytrace.js:669:38
renderScene@PerformanceTests/SunSpider/tests/v8-v6/v8-raytrace.js:656:43
renderScene@PerformanceTests/SunSpider/tests/v8-v6/v8-raytrace.js:898:26
global code@PerformanceTests/SunSpider/tests/v8-v6/v8-raytrace.js:902:14
/Users/pizlo/bin/until_fail.rb:8:in `block in &lt;main&gt;&apos;: fail after 3 runs: #&lt;Process::Status: pid 2950 exit 3&gt; (RuntimeError)
	from /Users/pizlo/bin/until_fail.rb:4:in `loop&apos;
	from /Users/pizlo/bin/until_fail.rb:4:in `&lt;main&gt;&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117775</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-08-14 14:40:02 -0700</bug_when>
    <thetext>&lt;rdar://problem/22293750&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117842</commentid>
    <comment_count>5</comment_count>
      <attachid>259059</attachid>
    <who name="Basile Clement">basile_clement</who>
    <bug_when>2015-08-14 17:43:19 -0700</bug_when>
    <thetext>Created attachment 259059
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117843</commentid>
    <comment_count>6</comment_count>
    <who name="Basile Clement">basile_clement</who>
    <bug_when>2015-08-14 17:48:56 -0700</bug_when>
    <thetext>I locally changed any reference to &quot;sinking MultiGetByOffset&quot; into &quot;lowering MultiGetByOffset&quot; in the ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117846</commentid>
    <comment_count>7</comment_count>
      <attachid>259059</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-08-14 18:03:17 -0700</bug_when>
    <thetext>Comment on attachment 259059
Patch

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

r=me.

&gt; Source/JavaScriptCore/tests/stress/sink-multigetbyoffset.js:2
&gt; +Foo.prototype.f = 42;

should all &quot;f&quot;s be 42?

&gt; Source/JavaScriptCore/tests/stress/sink-multigetbyoffset.js:24
&gt; +        throw new Error(&quot;Result should be 12 but was &quot; + result);

&quot;result should be 12&quot; =&gt; &quot;result should be 42&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117887</commentid>
    <comment_count>8</comment_count>
    <who name="Basile Clement">basile_clement</who>
    <bug_when>2015-08-14 20:50:13 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Comment on attachment 259059 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=259059&amp;action=review
&gt; 
&gt; r=me.
&gt; 
&gt; &gt; Source/JavaScriptCore/tests/stress/sink-multigetbyoffset.js:2
&gt; &gt; +Foo.prototype.f = 42;
&gt; 
&gt; should all &quot;f&quot;s be 42?

Yes! In current trunk, the output of this test is:

&gt; Exception: Error: Result should be 12 but was 1927

I realize this test probably looks super confusing, I&apos;ll add a reference before landing stating that it is a regression test for this bug so that people can find the following explanation.

&gt; function get(o, p) {
&gt;     if (p)
&gt;         return o.f;
&gt;     return 42;
&gt; }
&gt;
&gt; for (var i = 0; i &lt; 100000; ++i) {
&gt;     get({ f: 42 }, i % 2);
&gt;     get({ o: 10, f: 42 }, i % 2);
&gt; }

This forces the &quot;o.f&quot; access to be profiled as always using either a {f:0} or {o:0,f:1} structure.

&gt; function foo() {
&gt;     var o = new Foo();
&gt;     return get(o, isFinalTier());
&gt; }
&gt; noInline(foo);
&gt;
&gt; for (var i = 0; i &lt; 1000000; ++i) {
&gt;     var result = foo();
&gt;     if (result !== 42)
&gt;         throw new Error(&quot;Result should be 12 but was &quot; + result);
&gt; }

Due to the forced profiling, and since before getting to the FTL the second parameter to get() is always false (i.e. the &quot;o.f&quot; access never gets profiled with a Foo object), the graph for foo looks like this (isFinalTier() being an intrinsic, it is constant-folded to true when compiling for the FTL):

    &lt;1&gt; NewObject([prototype={f:0}])
    &lt;2&gt; MultiGetByOffset(@1, f, [{f:0},{o:0,f:1}])
    &lt;3&gt; Return(@2)

Here, we will fail the structure check at @2, and OSR exit.
With allocation sinking enabled however, we currently make the (wrong) assumption that a MultiGetByOffset can&apos;t ever exit, and that (much like a GetByOffset) it must have been protected by a previous CheckStructure. This is obviously wrong, and will lead to the graph being transformed into something like this (1927 is a dummy default value that should never be read and is only present so that we can build valid Phi graphs):

    &lt;4&gt; JSConstant(1927)
    &lt;1&gt; PhantomNewObject()
    &lt;5&gt; JSConstant([prototype={f:0}])
    &lt;6&gt; PutHint(@1, StructurePLoc, @5)
    &lt;7&gt; PutHint(@2, &quot;f&quot;, @0)
    &lt;2&gt; Check()
    &lt;3&gt; Return(@4)

And now we&apos;re dead, because instead of exiting @2 is a no-op and we return an out-of-thin-air 1927.

With this patch, we will instead generate the following (correct) graph:


    &lt;4&gt; JSConstant(1927)
    &lt;1&gt; PhantomNewObject()
    &lt;5&gt; JSConstant([prototype={f:0}])
    &lt;6&gt; PutHint(@1, StructurePLoc, @5)
    &lt;7&gt; PutHint(@2, &quot;f&quot;, @0)
    &lt;2&gt; CheckStructureImmediate(@5, [])
    &lt;3&gt; Return(@4)

&gt; 
&gt; &gt; Source/JavaScriptCore/tests/stress/sink-multigetbyoffset.js:24
&gt; &gt; +        throw new Error(&quot;Result should be 12 but was &quot; + result);
&gt; 
&gt; &quot;result should be 12&quot; =&gt; &quot;result should be 42&quot;

Good catch, I&apos;ll change that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117889</commentid>
    <comment_count>9</comment_count>
      <attachid>259080</attachid>
    <who name="Basile Clement">basile_clement</who>
    <bug_when>2015-08-14 21:08:07 -0700</bug_when>
    <thetext>Created attachment 259080
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117895</commentid>
    <comment_count>10</comment_count>
      <attachid>259080</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-14 22:01:21 -0700</bug_when>
    <thetext>Comment on attachment 259080
Patch for landing

Clearing flags on attachment: 259080

Committed r188507: &lt;http://trac.webkit.org/changeset/188507&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117896</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-14 22:01:27 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117899</commentid>
    <comment_count>12</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-08-14 22:14:35 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; Comment on attachment 259059 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=259059&amp;action=review
&gt; &gt; 
&gt; &gt; r=me.
&gt; &gt; 
&gt; &gt; &gt; Source/JavaScriptCore/tests/stress/sink-multigetbyoffset.js:2
&gt; &gt; &gt; +Foo.prototype.f = 42;
&gt; &gt; 
&gt; &gt; should all &quot;f&quot;s be 42?
&gt; 
&gt; Yes! In current trunk, the output of this test is:
&gt; 
&gt; &gt; Exception: Error: Result should be 12 but was 1927
&gt; 
&gt; I realize this test probably looks super confusing, I&apos;ll add a reference
&gt; before landing stating that it is a regression test for this bug so that
&gt; people can find the following explanation.
&gt; 
&gt; &gt; function get(o, p) {
&gt; &gt;     if (p)
&gt; &gt;         return o.f;
&gt; &gt;     return 42;
&gt; &gt; }
&gt; &gt;
&gt; &gt; for (var i = 0; i &lt; 100000; ++i) {
&gt; &gt;     get({ f: 42 }, i % 2);
&gt; &gt;     get({ o: 10, f: 42 }, i % 2);
&gt; &gt; }
&gt; 
&gt; This forces the &quot;o.f&quot; access to be profiled as always using either a {f:0}
&gt; or {o:0,f:1} structure.
&gt; 
&gt; &gt; function foo() {
&gt; &gt;     var o = new Foo();
&gt; &gt;     return get(o, isFinalTier());
&gt; &gt; }
&gt; &gt; noInline(foo);
&gt; &gt;
&gt; &gt; for (var i = 0; i &lt; 1000000; ++i) {
&gt; &gt;     var result = foo();
&gt; &gt;     if (result !== 42)
&gt; &gt;         throw new Error(&quot;Result should be 12 but was &quot; + result);
&gt; &gt; }
&gt; 
&gt; Due to the forced profiling, and since before getting to the FTL the second
&gt; parameter to get() is always false (i.e. the &quot;o.f&quot; access never gets
&gt; profiled with a Foo object), the graph for foo looks like this
&gt; (isFinalTier() being an intrinsic, it is constant-folded to true when
&gt; compiling for the FTL):
&gt; 
&gt;     &lt;1&gt; NewObject([prototype={f:0}])
&gt;     &lt;2&gt; MultiGetByOffset(@1, f, [{f:0},{o:0,f:1}])
&gt;     &lt;3&gt; Return(@2)
&gt; 
&gt; Here, we will fail the structure check at @2, and OSR exit.
&gt; With allocation sinking enabled however, we currently make the (wrong)
&gt; assumption that a MultiGetByOffset can&apos;t ever exit, and that (much like a
&gt; GetByOffset) it must have been protected by a previous CheckStructure. This
&gt; is obviously wrong, and will lead to the graph being transformed into
&gt; something like this (1927 is a dummy default value that should never be read
&gt; and is only present so that we can build valid Phi graphs):
&gt; 
&gt;     &lt;4&gt; JSConstant(1927)
&gt;     &lt;1&gt; PhantomNewObject()
&gt;     &lt;5&gt; JSConstant([prototype={f:0}])
&gt;     &lt;6&gt; PutHint(@1, StructurePLoc, @5)
&gt;     &lt;7&gt; PutHint(@2, &quot;f&quot;, @0)
&gt;     &lt;2&gt; Check()
&gt;     &lt;3&gt; Return(@4)
&gt; 
&gt; And now we&apos;re dead, because instead of exiting @2 is a no-op and we return
&gt; an out-of-thin-air 1927.
&gt; 
&gt; With this patch, we will instead generate the following (correct) graph:
&gt; 
&gt; 
&gt;     &lt;4&gt; JSConstant(1927)
&gt;     &lt;1&gt; PhantomNewObject()
&gt;     &lt;5&gt; JSConstant([prototype={f:0}])
&gt;     &lt;6&gt; PutHint(@1, StructurePLoc, @5)
&gt;     &lt;7&gt; PutHint(@2, &quot;f&quot;, @0)
&gt;     &lt;2&gt; CheckStructureImmediate(@5, [])
&gt;     &lt;3&gt; Return(@4)

Thanks for clarifying. These examples helped me better understand.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259059</attachid>
            <date>2015-08-14 17:43:19 -0700</date>
            <delta_ts>2015-08-14 21:07:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147165-20150814174300.patch</filename>
            <type>text/plain</type>
            <size>7317</size>
            <attacher name="Basile Clement">basile_clement</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4NDgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
NTYxZjMxMTE4YWU3YzY1ZmNjMzRiNTg1MGUzODE3OGEyMjVmYjE1Li44YzY5MTg5NDMzNWZmOWZk
MzVjM2QzNDRlNThkMWU3MjA2NzM1MTljIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNiBAQAorMjAxNS0wOC0xNCAgQmFzaWxlIENsZW1lbnQgIDxiYXNpbGVfY2xlbWVudEBh
cHBsZS5jb20+CisKKyAgICAgICAgT2NjYXNpb25hbCBmYWlsdXJlIGluIHY4LXY2L3Y4LXJheXRy
YWNlLmpzLmZ0bC1lYWdlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTQ3MTY1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGhlIG9iamVjdCBhbGxvY2F0aW9uIHNpbmtpbmcgcGhhc2Ugd2FzIG5vdCBwcm9w
ZXJseSBjaGVja2luZyB0aGF0IGEKKyAgICAgICAgTXVsdGlHZXRCeU9mZnNldCB3YXMgc2FmZSB0
byBzaW5rIGJlZm9yZSBzaW5raW5nIGl0LgorICAgICAgICBUaGlzIG1ha2VzIGl0IHNvIHRoYXQg
d2Ugb25seSBzaW5rIE11bHRpR2V0QnlPZmZzZXQgaWYgaXQgb25seSBsb2FkcworICAgICAgICBm
cm9tIGRpcmVjdCBwcm9wZXJ0aWVzIG9mIHRoZSBvYmplY3QsIGFuZCBjb25zaWRlcnMgaXQgYXMg
YW4gZXNjYXBlIGluCisgICAgICAgIGFueSBvdGhlciBjYXNlIChlLmcuIGEgbG9hZCBmcm9tIHRo
ZSBwcm90b3R5cGUpLgorCisgICAgICAgIEl0IGFsc28gZW5zdXJlIHByb3BlciBjb252ZXJzaW9u
IG9mIE11bHRpR2V0QnlPZmZzZXQgaW50bworICAgICAgICBDaGVja1N0cnVjdHVyZUltbWVkaWF0
ZSB3aGVuIG5lZWRlZC4KKworICAgICAgICAqIGRmZy9ERkdPYmplY3RBbGxvY2F0aW9uU2lua2lu
Z1BoYXNlLmNwcDoKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwOgorICAgICAg
ICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OmNoZWNrU3RydWN0dXJlKToKKyAgICAg
ICAgICAgIFdlIHdlcmUgbm90IGNvbXBpbGluZyBwcm9wZXJseSBDaGVja1N0cnVjdHVyZSBhbmQK
KyAgICAgICAgICAgIENoZWNrU3RydWN0dXJlSW1tZWRpYXRlIG5vZGVzIHdpdGggYW4gZW1wdHkg
U3RydWN0dXJlU2V0LgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9zaW5rLW11bHRpZ2V0YnlvZmZz
ZXQuanM6IFJlZ3Jlc3Npb24gdGVzdC4KKwogMjAxNS0wOC0xNCAgQ29tbWl0IFF1ZXVlICA8Y29t
bWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQg
cjE4ODQ0NC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT2JqZWN0
QWxsb2NhdGlvblNpbmtpbmdQaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R09iamVjdEFsbG9jYXRpb25TaW5raW5nUGhhc2UuY3BwCmluZGV4IGZkODg5MTBlNTVhMWUwYTcx
YjExNjM0YjgyY2VhOTVlOGNkMTA2MWIuLjNlMjFjNGExMzkxNDVlN2VhZmM3YzAxMWRjNDRiN2Yx
NGRmY2QwMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT2JqZWN0
QWxsb2NhdGlvblNpbmtpbmdQaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdPYmplY3RBbGxvY2F0aW9uU2lua2luZ1BoYXNlLmNwcApAQCAtOTIxLDE0ICs5MjEsNjcg
QEAgcHJpdmF0ZToKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogCi0gICAgICAg
IGNhc2UgTXVsdGlHZXRCeU9mZnNldDoKLSAgICAgICAgICAgIHRhcmdldCA9IG1faGVhcC5vbmx5
TG9jYWxBbGxvY2F0aW9uKG5vZGUtPmNoaWxkMSgpLm5vZGUoKSk7Ci0gICAgICAgICAgICBpZiAo
dGFyZ2V0ICYmIHRhcmdldC0+aXNPYmplY3RBbGxvY2F0aW9uKCkpIHsKLSAgICAgICAgICAgICAg
ICB1bnNpZ25lZCBpZGVudGlmaWVyTnVtYmVyID0gbm9kZS0+bXVsdGlHZXRCeU9mZnNldERhdGEo
KS5pZGVudGlmaWVyTnVtYmVyOwotICAgICAgICAgICAgICAgIGV4YWN0UmVhZCA9IFByb21vdGVk
TG9jYXRpb25EZXNjcmlwdG9yKE5hbWVkUHJvcGVydHlQTG9jLCBpZGVudGlmaWVyTnVtYmVyKTsK
KyAgICAgICAgY2FzZSBNdWx0aUdldEJ5T2Zmc2V0OiB7CisgICAgICAgICAgICBBbGxvY2F0aW9u
KiBhbGxvY2F0aW9uID0gbV9oZWFwLm9ubHlMb2NhbEFsbG9jYXRpb24obm9kZS0+Y2hpbGQxKCku
bm9kZSgpKTsKKyAgICAgICAgICAgIGlmIChhbGxvY2F0aW9uICYmIGFsbG9jYXRpb24tPmlzT2Jq
ZWN0QWxsb2NhdGlvbigpKSB7CisgICAgICAgICAgICAgICAgTXVsdGlHZXRCeU9mZnNldERhdGEm
IGRhdGEgPSBub2RlLT5tdWx0aUdldEJ5T2Zmc2V0RGF0YSgpOworICAgICAgICAgICAgICAgIFN0
cnVjdHVyZVNldCB2YWxpZFN0cnVjdHVyZXM7CisgICAgICAgICAgICAgICAgYm9vbCBoYXNJbnZh
bGlkU3RydWN0dXJlcyA9IGZhbHNlOworICAgICAgICAgICAgICAgIGZvciAoY29uc3QgYXV0byYg
bXVsdGlHZXRCeU9mZnNldENhc2UgOiBkYXRhLmNhc2VzKSB7CisgICAgICAgICAgICAgICAgICAg
IGlmICghYWxsb2NhdGlvbi0+c3RydWN0dXJlcygpLm92ZXJsYXBzKG11bHRpR2V0QnlPZmZzZXRD
YXNlLnNldCgpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAg
ICAgICAgICAgICAgIHN3aXRjaCAobXVsdGlHZXRCeU9mZnNldENhc2UubWV0aG9kKCkua2luZCgp
KSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgR2V0QnlPZmZzZXRNZXRob2Q6OkxvYWRGcm9t
UHJvdG90eXBlOiAvLyBXZSBuZWVkIHRvIGVzY2FwZSB0aG9zZQorICAgICAgICAgICAgICAgICAg
ICBjYXNlIEdldEJ5T2Zmc2V0TWV0aG9kOjpDb25zdGFudDogLy8gV2UgZG9uJ3QgcmVhbGx5IGhh
dmUgYSB3YXkgb2YgZXhwcmVzc2luZyB0aGlzCisgICAgICAgICAgICAgICAgICAgICAgICBoYXNJ
bnZhbGlkU3RydWN0dXJlcyA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsK
KworICAgICAgICAgICAgICAgICAgICBjYXNlIEdldEJ5T2Zmc2V0TWV0aG9kOjpMb2FkOiAvLyBX
ZSdyZSBnb29kCisgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZFN0cnVjdHVyZXMubWVyZ2Uo
bXVsdGlHZXRCeU9mZnNldENhc2Uuc2V0KCkpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CisKKyAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAg
ICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGhhc0ludmFsaWRTdHJ1Y3R1
cmVzKSB7CisgICAgICAgICAgICAgICAgICAgIG1faGVhcC5lc2NhcGUobm9kZS0+Y2hpbGQxKCku
bm9kZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIHVuc2lnbmVkIGlkZW50aWZpZXJOdW1iZXIgPSBkYXRhLmlkZW50aWZp
ZXJOdW1iZXI7CisgICAgICAgICAgICAgICAgUHJvbW90ZWRIZWFwTG9jYXRpb24gbG9jYXRpb24o
TmFtZWRQcm9wZXJ0eVBMb2MsIGFsbG9jYXRpb24tPmlkZW50aWZpZXIoKSwgaWRlbnRpZmllck51
bWJlcik7CisgICAgICAgICAgICAgICAgaWYgKE5vZGUqIHZhbHVlID0gaGVhcFJlc29sdmUobG9j
YXRpb24pKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChhbGxvY2F0aW9uLT5zdHJ1Y3R1cmVz
KCkuaXNTdWJzZXRPZih2YWxpZFN0cnVjdHVyZXMpKQorICAgICAgICAgICAgICAgICAgICAgICAg
bm9kZS0+cmVwbGFjZVdpdGgodmFsdWUpOworICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIE5vZGUqIHN0cnVjdHVyZSA9IGhlYXBSZXNvbHZlKFByb21v
dGVkSGVhcExvY2F0aW9uKGFsbG9jYXRpb24tPmlkZW50aWZpZXIoKSwgU3RydWN0dXJlUExvYykp
OworICAgICAgICAgICAgICAgICAgICAgICAgQVNTRVJUKHN0cnVjdHVyZSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICBhbGxvY2F0aW9uLT5maWx0ZXJTdHJ1Y3R1cmVzKHZhbGlkU3RydWN0dXJl
cyk7CisgICAgICAgICAgICAgICAgICAgICAgICBub2RlLT5jb252ZXJ0VG9DaGVja1N0cnVjdHVy
ZShtX2dyYXBoLmFkZFN0cnVjdHVyZVNldChhbGxvY2F0aW9uLT5zdHJ1Y3R1cmVzKCkpKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIG5vZGUtPmNvbnZlcnRUb0NoZWNrU3RydWN0dXJlSW1tZWRp
YXRlKHN0cnVjdHVyZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBub2RlLT5zZXRSZXBsYWNl
bWVudCh2YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVs
c2UgaWYgKCFhbGxvY2F0aW9uLT5zdHJ1Y3R1cmVzKCkuaXNTdWJzZXRPZih2YWxpZFN0cnVjdHVy
ZXMpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIEV2ZW4gdGhvdWdoIHdlIGRvbid0IG5lZWQg
dGhlIHJlc3VsdCBoZXJlLCB3ZSBzdGlsbCBuZWVkCisgICAgICAgICAgICAgICAgICAgIC8vIHRv
IG1ha2UgdGhlIGNhbGwgdG8gdGVsbCBvdXIgY2FsbGVyIHRoYXQgd2UgY291bGQgbmVlZAorICAg
ICAgICAgICAgICAgICAgICAvLyB0aGUgU3RydWN0dXJlUExvYy4KKyAgICAgICAgICAgICAgICAg
ICAgLy8gVGhlIHJlYXNvbiBmb3IgdGhpcyBpcyB0aGF0IHdoZW4gd2UgZGVjaWRlIG5vdCB0byBz
aW5rIGEKKyAgICAgICAgICAgICAgICAgICAgLy8gbm9kZSwgd2Ugd2lsbCBzdGlsbCBsb3dlciBh
bnkgcmVhZCB0byBpdHMgZmllbGRzIGJlZm9yZQorICAgICAgICAgICAgICAgICAgICAvLyBpdCBl
c2NhcGVzICh3aGljaCBhcmUgdXN1YWxseSByZWFkcyBhY3Jvc3MgYSBmdW5jdGlvbgorICAgICAg
ICAgICAgICAgICAgICAvLyBjYWxsIHRoYXQgREZHQ2xvYmJlcml6ZSBjYW4ndCBoYW5kbGUpIC0g
YnV0IHdlIG9ubHkgZG8KKyAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBmb3IgUHJvbW90ZWRI
ZWFwTG9jYXRpb25zIHRoYXQgd2UgaGF2ZSBzZWVuIHJlYWQKKyAgICAgICAgICAgICAgICAgICAg
Ly8gZHVyaW5nIHRoZSBhbmFseXNpcyEKKyAgICAgICAgICAgICAgICAgICAgaGVhcFJlc29sdmUo
UHJvbW90ZWRIZWFwTG9jYXRpb24oYWxsb2NhdGlvbi0+aWRlbnRpZmllcigpLCBTdHJ1Y3R1cmVQ
TG9jKSk7CisgICAgICAgICAgICAgICAgICAgIGFsbG9jYXRpb24tPmZpbHRlclN0cnVjdHVyZXMo
dmFsaWRTdHJ1Y3R1cmVzKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgTm9k
ZSogaWRlbnRpZmllciA9IGFsbG9jYXRpb24tPmdldChsb2NhdGlvbi5kZXNjcmlwdG9yKCkpOwor
ICAgICAgICAgICAgICAgIGlmIChpZGVudGlmaWVyKQorICAgICAgICAgICAgICAgICAgICBtX2hl
YXAubmV3UG9pbnRlcihub2RlLCBpZGVudGlmaWVyKTsKICAgICAgICAgICAgIH0gZWxzZQogICAg
ICAgICAgICAgICAgIG1faGVhcC5lc2NhcGUobm9kZS0+Y2hpbGQxKCkubm9kZSgpKTsKICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICB9CiAKICAgICAgICAgY2FzZSBQdXRCeU9mZnNldDoKICAg
ICAgICAgICAgIHRhcmdldCA9IG1faGVhcC5vbmx5TG9jYWxBbGxvY2F0aW9uKG5vZGUtPmNoaWxk
MigpLm5vZGUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExv
d2VyREZHVG9MTFZNLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdU
b0xMVk0uY3BwCmluZGV4IGM2MWE3NTFmYzM0ODAxMzRjZGExZjc4NGQ0MDYwMDI3MGVmZTgzNGEu
LjA0ZjIzNGI1MjE1MGRkYjExOTA5MmE2ZGIzZDFhMDNlZWY0ZDE1NDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCkBAIC01NTE1LDYgKzU1
MTUsMTEgQEAgcHJpdmF0ZToKICAgICAgICAgTFZhbHVlIHN0cnVjdHVyZURpc2NyaW1pbmFudCwg
Y29uc3QgRm9ybWF0dGVkVmFsdWUmIGZvcm1hdHRlZFZhbHVlLCBFeGl0S2luZCBleGl0S2luZCwK
ICAgICAgICAgY29uc3QgU3RydWN0dXJlU2V0JiBzZXQsIGNvbnN0IEZ1bmN0b3ImIHdlYWtTdHJ1
Y3R1cmVEaXNjcmltaW5hbnQpCiAgICAgeworICAgICAgICBpZiAoc2V0LmlzRW1wdHkoKSkgewor
ICAgICAgICAgICAgdGVybWluYXRlKGV4aXRLaW5kKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgfQorCiAgICAgICAgIGlmIChzZXQuc2l6ZSgpID09IDEpIHsKICAgICAgICAgICAgIHNw
ZWN1bGF0ZSgKICAgICAgICAgICAgICAgICBleGl0S2luZCwgZm9ybWF0dGVkVmFsdWUsIDAsCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3NpbmstbXVsdGln
ZXRieW9mZnNldC5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvc2luay1t
dWx0aWdldGJ5b2Zmc2V0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI1ZDFmYjFlYzI1ODUzZDg4NmYzMjYyZTUw
MmUwNWJiY2IyZWJjYWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvc3RyZXNzL3NpbmstbXVsdGlnZXRieW9mZnNldC5qcwpAQCAtMCwwICsxLDI1IEBACitm
dW5jdGlvbiBGb28oKSB7IH0KK0Zvby5wcm90b3R5cGUuZiA9IDQyOworCitmdW5jdGlvbiBnZXQo
bywgcCkgeworICAgIGlmIChwKQorICAgICAgICByZXR1cm4gby5mOworICAgIHJldHVybiA0MjsK
K30KKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIGdldCh7IGY6IDQy
IH0sIGkgJSAyKTsKKyAgICBnZXQoeyBvOiAxMCwgZjogNDIgfSwgaSAlIDIpOworfQorCitmdW5j
dGlvbiBmb28oKSB7CisgICAgdmFyIG8gPSBuZXcgRm9vKCk7CisgICAgcmV0dXJuIGdldChvLCBp
c0ZpbmFsVGllcigpKTsKK30KK25vSW5saW5lKGZvbyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwg
MTAwMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbygpOworICAgIGlmIChyZXN1bHQg
IT09IDQyKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlJlc3VsdCBzaG91bGQgYmUgMTIgYnV0
IHdhcyAiICsgcmVzdWx0KTsKK30K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259080</attachid>
            <date>2015-08-14 21:08:07 -0700</date>
            <delta_ts>2015-08-14 22:01:21 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-147165-20150814210748.patch</filename>
            <type>text/plain</type>
            <size>7467</size>
            <attacher name="Basile Clement">basile_clement</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4NTA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
NjIzZDBiOGY3ZjY0NjY5ZmQ0ZjIzYjE3OTI3ZjA0YmI2MWViMDI5Li4wMzk1YTA4ZTJhZTk4Mzg2
OWE5OTYzZGEyYjI4NjE3OGFjNzZiM2MzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNiBAQAorMjAxNS0wOC0xNCAgQmFzaWxlIENsZW1lbnQgIDxiYXNpbGVfY2xlbWVudEBh
cHBsZS5jb20+CisKKyAgICAgICAgT2NjYXNpb25hbCBmYWlsdXJlIGluIHY4LXY2L3Y4LXJheXRy
YWNlLmpzLmZ0bC1lYWdlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTQ3MTY1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2FhbSBCYXJhdGkuCisKKyAg
ICAgICAgVGhlIG9iamVjdCBhbGxvY2F0aW9uIHNpbmtpbmcgcGhhc2Ugd2FzIG5vdCBwcm9wZXJs
eSBjaGVja2luZyB0aGF0IGEKKyAgICAgICAgTXVsdGlHZXRCeU9mZnNldCB3YXMgc2FmZSB0byBs
b3dlciBiZWZvcmUgbG93ZXJpbmcgaXQuCisgICAgICAgIFRoaXMgbWFrZXMgaXQgc28gdGhhdCB3
ZSBvbmx5IGxvd2VyIE11bHRpR2V0QnlPZmZzZXQgaWYgaXQgb25seSBsb2FkcworICAgICAgICBm
cm9tIGRpcmVjdCBwcm9wZXJ0aWVzIG9mIHRoZSBvYmplY3QsIGFuZCBjb25zaWRlcnMgaXQgYXMg
YW4gZXNjYXBlIGluCisgICAgICAgIGFueSBvdGhlciBjYXNlIChlLmcuIGEgbG9hZCBmcm9tIHRo
ZSBwcm90b3R5cGUpLgorCisgICAgICAgIEl0IGFsc28gZW5zdXJlIHByb3BlciBjb252ZXJzaW9u
IG9mIE11bHRpR2V0QnlPZmZzZXQgaW50bworICAgICAgICBDaGVja1N0cnVjdHVyZUltbWVkaWF0
ZSB3aGVuIG5lZWRlZC4KKworICAgICAgICAqIGRmZy9ERkdPYmplY3RBbGxvY2F0aW9uU2lua2lu
Z1BoYXNlLmNwcDoKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwOgorICAgICAg
ICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0xMVk06OmNoZWNrU3RydWN0dXJlKToKKyAgICAg
ICAgICAgIFdlIHdlcmUgbm90IGNvbXBpbGluZyBwcm9wZXJseSBDaGVja1N0cnVjdHVyZSBhbmQK
KyAgICAgICAgICAgIENoZWNrU3RydWN0dXJlSW1tZWRpYXRlIG5vZGVzIHdpdGggYW4gZW1wdHkg
U3RydWN0dXJlU2V0LgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9zaW5rLW11bHRpZ2V0YnlvZmZz
ZXQuanM6IFJlZ3Jlc3Npb24gdGVzdC4KKwogMjAxNS0wOC0xNCAgRmlsaXAgUGl6bG8gIDxmcGl6
bG9AYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBXVEY6OkxvY2sgYW5kIFdURjo6Q29uZGl0aW9u
IGluc3RlYWQgb2YgV1RGOjpNdXRleCwgV1RGOjpUaHJlYWRDb25kaXRpb24sIHN0ZDo6bXV0ZXgs
IGFuZCBzdGQ6OmNvbmRpdGlvbl92YXJpYWJsZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdPYmplY3RBbGxvY2F0aW9uU2lua2luZ1BoYXNlLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHT2JqZWN0QWxsb2NhdGlvblNpbmtpbmdQaGFzZS5jcHAKaW5k
ZXggZmQ4ODkxMGU1NWExZTBhNzFiMTE2MzRiODJjZWE5NWU4Y2QxMDYxYi4uM2UyMWM0YTEzOTE0
NWU3ZWFmYzdjMDExZGM0NGI3ZjE0ZGZjZDAzMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdPYmplY3RBbGxvY2F0aW9uU2lua2luZ1BoYXNlLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09iamVjdEFsbG9jYXRpb25TaW5raW5nUGhhc2UuY3Bw
CkBAIC05MjEsMTQgKzkyMSw2NyBAQCBwcml2YXRlOgogICAgICAgICAgICAgfQogICAgICAgICAg
ICAgYnJlYWs7CiAKLSAgICAgICAgY2FzZSBNdWx0aUdldEJ5T2Zmc2V0OgotICAgICAgICAgICAg
dGFyZ2V0ID0gbV9oZWFwLm9ubHlMb2NhbEFsbG9jYXRpb24obm9kZS0+Y2hpbGQxKCkubm9kZSgp
KTsKLSAgICAgICAgICAgIGlmICh0YXJnZXQgJiYgdGFyZ2V0LT5pc09iamVjdEFsbG9jYXRpb24o
KSkgewotICAgICAgICAgICAgICAgIHVuc2lnbmVkIGlkZW50aWZpZXJOdW1iZXIgPSBub2RlLT5t
dWx0aUdldEJ5T2Zmc2V0RGF0YSgpLmlkZW50aWZpZXJOdW1iZXI7Ci0gICAgICAgICAgICAgICAg
ZXhhY3RSZWFkID0gUHJvbW90ZWRMb2NhdGlvbkRlc2NyaXB0b3IoTmFtZWRQcm9wZXJ0eVBMb2Ms
IGlkZW50aWZpZXJOdW1iZXIpOworICAgICAgICBjYXNlIE11bHRpR2V0QnlPZmZzZXQ6IHsKKyAg
ICAgICAgICAgIEFsbG9jYXRpb24qIGFsbG9jYXRpb24gPSBtX2hlYXAub25seUxvY2FsQWxsb2Nh
dGlvbihub2RlLT5jaGlsZDEoKS5ub2RlKCkpOworICAgICAgICAgICAgaWYgKGFsbG9jYXRpb24g
JiYgYWxsb2NhdGlvbi0+aXNPYmplY3RBbGxvY2F0aW9uKCkpIHsKKyAgICAgICAgICAgICAgICBN
dWx0aUdldEJ5T2Zmc2V0RGF0YSYgZGF0YSA9IG5vZGUtPm11bHRpR2V0QnlPZmZzZXREYXRhKCk7
CisgICAgICAgICAgICAgICAgU3RydWN0dXJlU2V0IHZhbGlkU3RydWN0dXJlczsKKyAgICAgICAg
ICAgICAgICBib29sIGhhc0ludmFsaWRTdHJ1Y3R1cmVzID0gZmFsc2U7CisgICAgICAgICAgICAg
ICAgZm9yIChjb25zdCBhdXRvJiBtdWx0aUdldEJ5T2Zmc2V0Q2FzZSA6IGRhdGEuY2FzZXMpIHsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKCFhbGxvY2F0aW9uLT5zdHJ1Y3R1cmVzKCkub3Zlcmxh
cHMobXVsdGlHZXRCeU9mZnNldENhc2Uuc2V0KCkpKQorICAgICAgICAgICAgICAgICAgICAgICAg
Y29udGludWU7CisKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChtdWx0aUdldEJ5T2Zmc2V0
Q2FzZS5tZXRob2QoKS5raW5kKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBHZXRCeU9m
ZnNldE1ldGhvZDo6TG9hZEZyb21Qcm90b3R5cGU6IC8vIFdlIG5lZWQgdG8gZXNjYXBlIHRob3Nl
CisgICAgICAgICAgICAgICAgICAgIGNhc2UgR2V0QnlPZmZzZXRNZXRob2Q6OkNvbnN0YW50OiAv
LyBXZSBkb24ndCByZWFsbHkgaGF2ZSBhIHdheSBvZiBleHByZXNzaW5nIHRoaXMKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGhhc0ludmFsaWRTdHJ1Y3R1cmVzID0gdHJ1ZTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgICAgIGNhc2UgR2V0QnlPZmZz
ZXRNZXRob2Q6OkxvYWQ6IC8vIFdlJ3JlIGdvb2QKKyAgICAgICAgICAgICAgICAgICAgICAgIHZh
bGlkU3RydWN0dXJlcy5tZXJnZShtdWx0aUdldEJ5T2Zmc2V0Q2FzZS5zZXQoKSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Ogor
ICAgICAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBp
ZiAoaGFzSW52YWxpZFN0cnVjdHVyZXMpIHsKKyAgICAgICAgICAgICAgICAgICAgbV9oZWFwLmVz
Y2FwZShub2RlLT5jaGlsZDEoKS5ub2RlKCkpOworICAgICAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdW5zaWduZWQgaWRlbnRpZmllck51
bWJlciA9IGRhdGEuaWRlbnRpZmllck51bWJlcjsKKyAgICAgICAgICAgICAgICBQcm9tb3RlZEhl
YXBMb2NhdGlvbiBsb2NhdGlvbihOYW1lZFByb3BlcnR5UExvYywgYWxsb2NhdGlvbi0+aWRlbnRp
ZmllcigpLCBpZGVudGlmaWVyTnVtYmVyKTsKKyAgICAgICAgICAgICAgICBpZiAoTm9kZSogdmFs
dWUgPSBoZWFwUmVzb2x2ZShsb2NhdGlvbikpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGFs
bG9jYXRpb24tPnN0cnVjdHVyZXMoKS5pc1N1YnNldE9mKHZhbGlkU3RydWN0dXJlcykpCisgICAg
ICAgICAgICAgICAgICAgICAgICBub2RlLT5yZXBsYWNlV2l0aCh2YWx1ZSk7CisgICAgICAgICAg
ICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgTm9kZSogc3RydWN0dXJl
ID0gaGVhcFJlc29sdmUoUHJvbW90ZWRIZWFwTG9jYXRpb24oYWxsb2NhdGlvbi0+aWRlbnRpZmll
cigpLCBTdHJ1Y3R1cmVQTG9jKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlQoc3Ry
dWN0dXJlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFsbG9jYXRpb24tPmZpbHRlclN0cnVj
dHVyZXModmFsaWRTdHJ1Y3R1cmVzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUtPmNv
bnZlcnRUb0NoZWNrU3RydWN0dXJlKG1fZ3JhcGguYWRkU3RydWN0dXJlU2V0KGFsbG9jYXRpb24t
PnN0cnVjdHVyZXMoKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS0+Y29udmVydFRv
Q2hlY2tTdHJ1Y3R1cmVJbW1lZGlhdGUoc3RydWN0dXJlKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIG5vZGUtPnNldFJlcGxhY2VtZW50KHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIWFsbG9jYXRpb24tPnN0cnVjdHVyZXMoKS5pc1N1
YnNldE9mKHZhbGlkU3RydWN0dXJlcykpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gRXZlbiB0
aG91Z2ggd2UgZG9uJ3QgbmVlZCB0aGUgcmVzdWx0IGhlcmUsIHdlIHN0aWxsIG5lZWQKKyAgICAg
ICAgICAgICAgICAgICAgLy8gdG8gbWFrZSB0aGUgY2FsbCB0byB0ZWxsIG91ciBjYWxsZXIgdGhh
dCB3ZSBjb3VsZCBuZWVkCisgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBTdHJ1Y3R1cmVQTG9j
LgorICAgICAgICAgICAgICAgICAgICAvLyBUaGUgcmVhc29uIGZvciB0aGlzIGlzIHRoYXQgd2hl
biB3ZSBkZWNpZGUgbm90IHRvIHNpbmsgYQorICAgICAgICAgICAgICAgICAgICAvLyBub2RlLCB3
ZSB3aWxsIHN0aWxsIGxvd2VyIGFueSByZWFkIHRvIGl0cyBmaWVsZHMgYmVmb3JlCisgICAgICAg
ICAgICAgICAgICAgIC8vIGl0IGVzY2FwZXMgKHdoaWNoIGFyZSB1c3VhbGx5IHJlYWRzIGFjcm9z
cyBhIGZ1bmN0aW9uCisgICAgICAgICAgICAgICAgICAgIC8vIGNhbGwgdGhhdCBERkdDbG9iYmVy
aXplIGNhbid0IGhhbmRsZSkgLSBidXQgd2Ugb25seSBkbworICAgICAgICAgICAgICAgICAgICAv
LyB0aGlzIGZvciBQcm9tb3RlZEhlYXBMb2NhdGlvbnMgdGhhdCB3ZSBoYXZlIHNlZW4gcmVhZAor
ICAgICAgICAgICAgICAgICAgICAvLyBkdXJpbmcgdGhlIGFuYWx5c2lzIQorICAgICAgICAgICAg
ICAgICAgICBoZWFwUmVzb2x2ZShQcm9tb3RlZEhlYXBMb2NhdGlvbihhbGxvY2F0aW9uLT5pZGVu
dGlmaWVyKCksIFN0cnVjdHVyZVBMb2MpKTsKKyAgICAgICAgICAgICAgICAgICAgYWxsb2NhdGlv
bi0+ZmlsdGVyU3RydWN0dXJlcyh2YWxpZFN0cnVjdHVyZXMpOworICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICBOb2RlKiBpZGVudGlmaWVyID0gYWxsb2NhdGlvbi0+Z2V0KGxvY2F0
aW9uLmRlc2NyaXB0b3IoKSk7CisgICAgICAgICAgICAgICAgaWYgKGlkZW50aWZpZXIpCisgICAg
ICAgICAgICAgICAgICAgIG1faGVhcC5uZXdQb2ludGVyKG5vZGUsIGlkZW50aWZpZXIpOwogICAg
ICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgbV9oZWFwLmVzY2FwZShub2RlLT5jaGls
ZDEoKS5ub2RlKCkpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KIAogICAgICAgICBj
YXNlIFB1dEJ5T2Zmc2V0OgogICAgICAgICAgICAgdGFyZ2V0ID0gbV9oZWFwLm9ubHlMb2NhbEFs
bG9jYXRpb24obm9kZS0+Y2hpbGQyKCkubm9kZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAKaW5kZXggYzYxYTc1MWZjMzQ4MDEzNGNkYTFm
Nzg0ZDQwNjAwMjcwZWZlODM0YS4uMDRmMjM0YjUyMTUwZGRiMTE5MDkyYTZkYjNkMWEwM2VlZjRk
MTU0MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1Rv
TExWTS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExW
TS5jcHAKQEAgLTU1MTUsNiArNTUxNSwxMSBAQCBwcml2YXRlOgogICAgICAgICBMVmFsdWUgc3Ry
dWN0dXJlRGlzY3JpbWluYW50LCBjb25zdCBGb3JtYXR0ZWRWYWx1ZSYgZm9ybWF0dGVkVmFsdWUs
IEV4aXRLaW5kIGV4aXRLaW5kLAogICAgICAgICBjb25zdCBTdHJ1Y3R1cmVTZXQmIHNldCwgY29u
c3QgRnVuY3RvciYgd2Vha1N0cnVjdHVyZURpc2NyaW1pbmFudCkKICAgICB7CisgICAgICAgIGlm
IChzZXQuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICB0ZXJtaW5hdGUoZXhpdEtpbmQpOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKICAgICAgICAgaWYgKHNldC5zaXplKCkgPT0g
MSkgewogICAgICAgICAgICAgc3BlY3VsYXRlKAogICAgICAgICAgICAgICAgIGV4aXRLaW5kLCBm
b3JtYXR0ZWRWYWx1ZSwgMCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9zdHJlc3Mvc2luay1tdWx0aWdldGJ5b2Zmc2V0LmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL3N0cmVzcy9zaW5rLW11bHRpZ2V0YnlvZmZzZXQuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjljNGRi
YmM2NTE5Zjk5Mzc3OTRlYWRmNjMzNDJmYzg1NWRkMTJlZgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvc2luay1tdWx0aWdldGJ5b2Zmc2V0Lmpz
CkBAIC0wLDAgKzEsMjcgQEAKKy8vIFJlZ3Jlc3Npb24gdGVzdCBmb3IgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzE2NQorCitmdW5jdGlvbiBGb28oKSB7IH0KK0Zv
by5wcm90b3R5cGUuZiA9IDQyOworCitmdW5jdGlvbiBnZXQobywgcCkgeworICAgIGlmIChwKQor
ICAgICAgICByZXR1cm4gby5mOworICAgIHJldHVybiA0MjsKK30KKworZm9yICh2YXIgaSA9IDA7
IGkgPCAxMDAwMDA7ICsraSkgeworICAgIGdldCh7IGY6IDQyIH0sIGkgJSAyKTsKKyAgICBnZXQo
eyBvOiAxMCwgZjogNDIgfSwgaSAlIDIpOworfQorCitmdW5jdGlvbiBmb28oKSB7CisgICAgdmFy
IG8gPSBuZXcgRm9vKCk7CisgICAgcmV0dXJuIGdldChvLCBpc0ZpbmFsVGllcigpKTsKK30KK25v
SW5saW5lKGZvbyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwMDsgKytpKSB7CisgICAg
dmFyIHJlc3VsdCA9IGZvbygpOworICAgIGlmIChyZXN1bHQgIT09IDQyKQorICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoIlJlc3VsdCBzaG91bGQgYmUgNDIgYnV0IHdhcyAiICsgcmVzdWx0KTsKK30K
</data>

          </attachment>
      

    </bug>

</bugzilla>