<?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>123615</bug_id>
          
          <creation_ts>2013-11-01 01:33:39 -0700</creation_ts>
          <short_desc>[Win] Enable DFG JIT.</short_desc>
          <delta_ts>2014-07-11 11:53:48 -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>Web Template Framework</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Unspecified</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>
          <dependson>123614</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter>peavo</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>achristensen</cc>
    
    <cc>alex.christensen</cc>
    
    <cc>benjamin</cc>
    
    <cc>bfulgham</cc>
    
    <cc>bunhere</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>945861</commentid>
    <comment_count>0</comment_count>
    <who name="">peavo</who>
    <bug_when>2013-11-01 01:33:39 -0700</bug_when>
    <thetext>I have been running the last couple of days with DFG JIT enabled on Windows (release build), and haven&apos;t noticed any issues on normal, everyday browsing.
I suggest we go on and enable DFG JIT.

64-bit Windows won&apos;t get DFG JIT, as JIT is disabled there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945865</commentid>
    <comment_count>1</comment_count>
      <attachid>215723</attachid>
    <who name="">peavo</who>
    <bug_when>2013-11-01 01:38:56 -0700</bug_when>
    <thetext>Created attachment 215723
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945867</commentid>
    <comment_count>2</comment_count>
      <attachid>215723</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-11-01 02:23:45 -0700</bug_when>
    <thetext>Comment on attachment 215723
Patch

Attachment 215723 did not pass win-ews (win):
Output: http://webkit-queues.appspot.com/results/19888030</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945872</commentid>
    <comment_count>3</comment_count>
    <who name="">peavo</who>
    <bug_when>2013-11-01 02:36:58 -0700</bug_when>
    <thetext>Win build fails to link, this should be fixed in 123614, which this bug depends on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>951061</commentid>
    <comment_count>4</comment_count>
      <attachid>217051</attachid>
    <who name="">peavo</who>
    <bug_when>2013-11-15 07:27:27 -0800</bug_when>
    <thetext>Created attachment 217051
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>951062</commentid>
    <comment_count>5</comment_count>
    <who name="">peavo</who>
    <bug_when>2013-11-15 07:28:11 -0800</bug_when>
    <thetext>Only enable DFG for 32-bit Windows.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>951072</commentid>
    <comment_count>6</comment_count>
      <attachid>217051</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-11-15 08:13:31 -0800</bug_when>
    <thetext>Comment on attachment 217051
Patch

Attachment 217051 did not pass win-ews (win):
Output: http://webkit-queues.appspot.com/results/23658178</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>951105</commentid>
    <comment_count>7</comment_count>
      <attachid>217051</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-11-15 10:04:43 -0800</bug_when>
    <thetext>Comment on attachment 217051
Patch

Build failed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>951107</commentid>
    <comment_count>8</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-11-15 10:12:12 -0800</bug_when>
    <thetext>Build failure:

C:\cygwin\home\buildbot\WebKit\WebKitBuild\Release\lib32\JavaScriptCore.exp
     1&gt;DFGCommonData.obj : error LNK2019: unresolved external symbol &quot;public: void __thiscall JSC::DFG::JumpReplacement::fire(void)&quot; (?fire@JumpReplacement@DFG@JSC@@QAEXXZ) referenced in function &quot;public: bool __thiscall JSC::DFG::CommonData::invalidate(void)&quot; (?invalidate@CommonData@DFG@JSC@@QAE_NXZ)
     1&gt;DFGPlan.obj : error LNK2019: unresolved external symbol &quot;bool __cdecl JSC::DFG::performWatchpointCollection(class JSC::DFG::Graph &amp;)&quot; (?performWatchpointCollection@DFG@JSC@@YA_NAAVGraph@12@@Z) referenced in function &quot;private: enum JSC::DFG::Plan::CompilationPath __thiscall JSC::DFG::Plan::compileInThreadImpl(class JSC::DFG::LongLivedState &amp;)&quot; (?compileInThreadImpl@Plan@DFG@JSC@@AAE?AW4CompilationPath@123@AAVLongLivedState@23@@Z)
     1&gt;DFGPlan.obj : error LNK2019: unresolved external symbol &quot;bool __cdecl JSC::DFG::performInvalidationPointInjection(class JSC::DFG::Graph &amp;)&quot; (?performInvalidationPointInjection@DFG@JSC@@YA_NAAVGraph@12@@Z) referenced in function &quot;private: enum JSC::DFG::Plan::CompilationPath __thiscall JSC::DFG::Plan::compileInThreadImpl(class JSC::DFG::LongLivedState &amp;)&quot; (?compileInThreadImpl@Plan@DFG@JSC@@AAE?AW4CompilationPath@123@AAVLongLivedState@23@@Z)
     1&gt;C:\cygwin\home\buildbot\WebKit\WebKitBuild\Release\bin32\JavaScriptCore.dll : fatal error LNK1120: 3 unresolved externals
     1&gt;Done Building Project &quot;C:\cygwin\home\buildbot\WebKit\Source\JavaScriptCore\JavaScriptCore.vcxproj\JavaScriptCore.vcxproj&quot; (build target(s)) -- FAILED.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>951153</commentid>
    <comment_count>9</comment_count>
    <who name="">peavo</who>
    <bug_when>2013-11-15 12:10:41 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; Build failure:
&gt; 
&gt; C:\cygwin\home\buildbot\WebKit\WebKitBuild\Release\lib32\JavaScriptCore.exp
&gt;      1&gt;DFGCommonData.obj : error LNK2019: unresolved external symbol &quot;public: void __thiscall JSC::DFG::JumpReplacement::fire(void)&quot; (?fire@JumpReplacement@DFG@JSC@@QAEXXZ) referenced in function &quot;public: bool __thiscall JSC::DFG::CommonData::invalidate(void)&quot; (?invalidate@CommonData@DFG@JSC@@QAE_NXZ)
&gt;      1&gt;DFGPlan.obj : error LNK2019: unresolved external symbol &quot;bool __cdecl JSC::DFG::performWatchpointCollection(class JSC::DFG::Graph &amp;)&quot; (?performWatchpointCollection@DFG@JSC@@YA_NAAVGraph@12@@Z) referenced in function &quot;private: enum JSC::DFG::Plan::CompilationPath __thiscall JSC::DFG::Plan::compileInThreadImpl(class JSC::DFG::LongLivedState &amp;)&quot; (?compileInThreadImpl@Plan@DFG@JSC@@AAE?AW4CompilationPath@123@AAVLongLivedState@23@@Z)
&gt;      1&gt;DFGPlan.obj : error LNK2019: unresolved external symbol &quot;bool __cdecl JSC::DFG::performInvalidationPointInjection(class JSC::DFG::Graph &amp;)&quot; (?performInvalidationPointInjection@DFG@JSC@@YA_NAAVGraph@12@@Z) referenced in function &quot;private: enum JSC::DFG::Plan::CompilationPath __thiscall JSC::DFG::Plan::compileInThreadImpl(class JSC::DFG::LongLivedState &amp;)&quot; (?compileInThreadImpl@Plan@DFG@JSC@@AAE?AW4CompilationPath@123@AAVLongLivedState@23@@Z)
&gt;      1&gt;C:\cygwin\home\buildbot\WebKit\WebKitBuild\Release\bin32\JavaScriptCore.dll : fatal error LNK1120: 3 unresolved externals
&gt;      1&gt;Done Building Project &quot;C:\cygwin\home\buildbot\WebKit\Source\JavaScriptCore\JavaScriptCore.vcxproj\JavaScriptCore.vcxproj&quot; (build target(s)) -- FAILED.

These should be fixed by patch in bug 123614, which this bug depends on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>955504</commentid>
    <comment_count>10</comment_count>
      <attachid>218204</attachid>
    <who name="">peavo</who>
    <bug_when>2013-12-02 11:54:09 -0800</bug_when>
    <thetext>Created attachment 218204
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>955506</commentid>
    <comment_count>11</comment_count>
    <who name="">peavo</who>
    <bug_when>2013-12-02 11:55:24 -0800</bug_when>
    <thetext>Just reposted same patch to check that it builds cleanly now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>955516</commentid>
    <comment_count>12</comment_count>
    <who name="">peavo</who>
    <bug_when>2013-12-02 12:25:04 -0800</bug_when>
    <thetext>Output from run-javascriptcore-tests:

Results for Mozilla tests:
    0 regressions found.
    0 tests fixed.
    OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>955518</commentid>
    <comment_count>13</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-12-02 12:31:09 -0800</bug_when>
    <thetext>Given that the Windows JIT is often broken, and is still broken on 64bit, I&apos;m skeptical about turning on the DFG on Windows.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>955521</commentid>
    <comment_count>14</comment_count>
    <who name="">peavo</who>
    <bug_when>2013-12-02 12:34:39 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; Given that the Windows JIT is often broken, and is still broken on 64bit, I&apos;m skeptical about turning on the DFG on Windows.

To be on the safe side, could we turn it on just for WinCairo?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>955622</commentid>
    <comment_count>15</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-12-02 15:12:50 -0800</bug_when>
    <thetext>Isn&apos;t WinCairo the platform that&apos;s currently experiencing 64bit problems? My point is that it&apos;s not so good to take a platform that&apos;s under-maintained and turn on new features.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>955625</commentid>
    <comment_count>16</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-12-02 15:16:15 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; Isn&apos;t WinCairo the platform that&apos;s currently experiencing 64bit problems? My point is that it&apos;s not so good to take a platform that&apos;s under-maintained and turn on new features.

The Apple Windows port and the WinCairo port are nearly identical, especially at the JavaScriptCore level. They only differ by networking and graphics libraries.

We should be striving to get LINT, JIT, DFG, and other such features activated for 32- and 64-bit Windows.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>955630</commentid>
    <comment_count>17</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-12-02 15:19:33 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; Isn&apos;t WinCairo the platform that&apos;s currently experiencing 64bit problems? My point is that it&apos;s not so good to take a platform that&apos;s under-maintained and turn on new features.

BTW -- those 64-bit errors were Windows (i.e., Apple Windows and WinCairo), and were only visible outside our time-zone.  The bugs peavo found have probably been present for a very long time.

At this point, I believe the 64-bit JIT is working, thought the jsc-stress-tests will give us a better idea.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>955643</commentid>
    <comment_count>18</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-12-02 15:30:40 -0800</bug_when>
    <thetext>&gt; At this point, I believe the 64-bit JIT is working, thought the jsc-stress-tests will give us a better idea.

What is the status of run-jsc-stress-tests on Windows?

The current status of the Apple Windows buildbot is &quot;failed jscore-test Exiting early after 500 failures. 33059 tests run. 500 failures 6 new passes&quot;.

&gt; We should be striving to get LINT, JIT, DFG, and other such features activated for 32- and 64-bit Windows.

What should the priority of that work be relative to getting Windows to pass regression tests?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>955664</commentid>
    <comment_count>19</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-12-02 16:11:04 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; &gt; At this point, I believe the 64-bit JIT is working, thought the jsc-stress-tests will give us a better idea.
&gt; 
&gt; What is the status of run-jsc-stress-tests on Windows?

The script seems to run, though a number of tests are failing. I am investigating what&apos;s going on there. In some cases, it&apos;s lack of DFG support. I have filed https://bugs.webkit.org/show_bug.cgi?id=125111 

&gt; The current status of the Apple Windows buildbot is &quot;failed jscore-test Exiting early after 500 failures. 33059 tests run. 500 failures 6 new passes&quot;.

Looks like a machine problem; the bot has been rebooted.

We are seeing 6-8 failures on average, but the fact that &quot;testapi&quot; fails to run prevents us from seeing the results on the build bot. See https://bugs.webkit.org/show_bug.cgi?id=121972, which has not seen much progress in the last couple of months.

Filip suggested I get the jsc-stress-tests running, as they would give a better idea of things are not working and might shed light onto the VM destruction failure in that bug.
 
&gt; &gt; We should be striving to get LINT, JIT, DFG, and other such features activated for 32- and 64-bit Windows.
&gt; 
&gt; What should the priority of that work be relative to getting Windows to pass regression tests?

Point taken, we need to get regressions fixed first. Any hope of someone devoting some time to the testapi failure?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>996347</commentid>
    <comment_count>20</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-04-01 10:24:47 -0700</bug_when>
    <thetext>This is another bug I&apos;d like to get moving again. Is this patch still valid? It&apos;s pretty old at this point...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>996372</commentid>
    <comment_count>21</comment_count>
    <who name="">peavo</who>
    <bug_when>2014-04-01 11:31:50 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; This is another bug I&apos;d like to get moving again. Is this patch still valid? It&apos;s pretty old at this point...

Yes, I believe it&apos;s still valid. I will rebaseline it :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1010523</commentid>
    <comment_count>22</comment_count>
      <attachid>231774</attachid>
    <who name="">peavo</who>
    <bug_when>2014-05-20 09:51:38 -0700</bug_when>
    <thetext>Created attachment 231774
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1010526</commentid>
    <comment_count>23</comment_count>
    <who name="">peavo</who>
    <bug_when>2014-05-20 09:53:26 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; Created an attachment (id=231774) [details]
&gt; Patch

Rebased.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1010527</commentid>
    <comment_count>24</comment_count>
    <who name="">peavo</who>
    <bug_when>2014-05-20 09:54:06 -0700</bug_when>
    <thetext>Stress test results with DFG JIT enabled:

** The following JSC stress test failures have been introduced:
        mozilla-tests.yaml/ecma/GlobalObject/15.1.2.2-2.js.mozilla-dfg-eager-no-cjit-validate-phases
        mozilla-tests.yaml/ecma_3/Date/15.9.5.6.js.mozilla
        mozilla-tests.yaml/ecma_3/Date/15.9.5.6.js.mozilla-llint
        mozilla-tests.yaml/ecma_3/Date/15.9.5.6.js.mozilla-baseline
        mozilla-tests.yaml/ecma_3/Date/15.9.5.6.js.mozilla-dfg-eager-no-cjit-validate-phases
        stress/ftl-arithcos.js.default
        stress/ftl-arithcos.js.no-llint
        stress/ftl-arithcos.js.always-trigger-copy-phase
        stress/ftl-arithcos.js.no-cjit-validate-phases
        stress/ftl-arithcos.js.dfg-eager
        stress/ftl-arithcos.js.dfg-eager-no-cjit-validate
        jsc-layout-tests.yaml/js/script-tests/date-constructor.js.layout
        jsc-layout-tests.yaml/js/script-tests/date-constructor.js.layout-no-llint
        jsc-layout-tests.yaml/js/script-tests/date-constructor.js.layout-no-cjit
        jsc-layout-tests.yaml/js/script-tests/date-constructor.js.layout-dfg-eager-no-cjit
        jsc-layout-tests.yaml/js/script-tests/function-apply-many-args.js.layout
        jsc-layout-tests.yaml/js/script-tests/function-apply-many-args.js.layout-no-llint
        jsc-layout-tests.yaml/js/script-tests/function-apply-many-args.js.layout-no-cjit
        jsc-layout-tests.yaml/js/script-tests/function-apply-many-args.js.layout-dfg-eager-no-cjit
        jsc-layout-tests.yaml/js/script-tests/sort-stability.js.layout
        jsc-layout-tests.yaml/js/script-tests/sort-stability.js.layout-no-llint
        jsc-layout-tests.yaml/js/script-tests/sort-stability.js.layout-no-cjit
        jsc-layout-tests.yaml/js/script-tests/sort-stability.js.layout-dfg-eager-no-cjit

Results for JSC stress tests:
    23 failures found.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1010529</commentid>
    <comment_count>25</comment_count>
    <who name="">peavo</who>
    <bug_when>2014-05-20 09:55:06 -0700</bug_when>
    <thetext>Stress test results with only baseline JIT enabled:

** The following JSC stress test failures have been introduced:
        mozilla-tests.yaml/ecma_3/Date/15.9.5.6.js.mozilla
        mozilla-tests.yaml/ecma_3/Date/15.9.5.6.js.mozilla-llint
        mozilla-tests.yaml/ecma_3/Date/15.9.5.6.js.mozilla-baseline
        mozilla-tests.yaml/ecma_3/Date/15.9.5.6.js.mozilla-dfg-eager-no-cjit-validate-phases
        stress/ftl-arithcos.js.default
        stress/ftl-arithcos.js.no-llint
        stress/ftl-arithcos.js.always-trigger-copy-phase
        stress/ftl-arithcos.js.no-cjit-validate-phases
        stress/ftl-arithcos.js.dfg-eager
        stress/ftl-arithcos.js.dfg-eager-no-cjit-validate
        jsc-layout-tests.yaml/js/script-tests/date-constructor.js.layout
        jsc-layout-tests.yaml/js/script-tests/date-constructor.js.layout-no-llint
        jsc-layout-tests.yaml/js/script-tests/date-constructor.js.layout-no-cjit
        jsc-layout-tests.yaml/js/script-tests/date-constructor.js.layout-dfg-eager-no-cjit
        jsc-layout-tests.yaml/js/script-tests/function-apply-many-args.js.layout
        jsc-layout-tests.yaml/js/script-tests/function-apply-many-args.js.layout-no-llint
        jsc-layout-tests.yaml/js/script-tests/function-apply-many-args.js.layout-no-cjit
        jsc-layout-tests.yaml/js/script-tests/function-apply-many-args.js.layout-dfg-eager-no-cjit
        jsc-layout-tests.yaml/js/script-tests/sort-stability.js.layout
        jsc-layout-tests.yaml/js/script-tests/sort-stability.js.layout-no-llint
        jsc-layout-tests.yaml/js/script-tests/sort-stability.js.layout-no-cjit
        jsc-layout-tests.yaml/js/script-tests/sort-stability.js.layout-dfg-eager-no-cjit

Results for JSC stress tests:
    22 failures found.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1010541</commentid>
    <comment_count>26</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2014-05-20 10:13:41 -0700</bug_when>
    <thetext>Do you know what is causing mozilla-tests.yaml/ecma/GlobalObject/15.1.2.2-2.js.mozilla-dfg-eager-no-cjit-validate-phases
Will this interfere with https://bugs.webkit.org/show_bug.cgi?id=123615</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1010549</commentid>
    <comment_count>27</comment_count>
    <who name="">peavo</who>
    <bug_when>2014-05-20 10:23:35 -0700</bug_when>
    <thetext>(In reply to comment #26)
&gt; Do you know what is causing mozilla-tests.yaml/ecma/GlobalObject/15.1.2.2-2.js.mozilla-dfg-eager-no-cjit-validate-phases
&gt; Will this interfere with https://bugs.webkit.org/show_bug.cgi?id=123615

No, I haven&apos;t looked into that one yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1015033</commentid>
    <comment_count>28</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2014-06-11 23:08:50 -0700</bug_when>
    <thetext>This is not specific to 32-bit, and it works with 64-bit after https://bugs.webkit.org/show_bug.cgi?id=130638</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020336</commentid>
    <comment_count>29</comment_count>
      <attachid>234363</attachid>
    <who name="">peavo</who>
    <bug_when>2014-07-03 12:23:02 -0700</bug_when>
    <thetext>Created attachment 234363
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020338</commentid>
    <comment_count>30</comment_count>
    <who name="">peavo</who>
    <bug_when>2014-07-03 12:28:05 -0700</bug_when>
    <thetext>(In reply to comment #29)
&gt; Created an attachment (id=234363) [details]
&gt; Patch

Included crash fixes for DFG on Win64, and fixes for stress test failures (also 64-bit).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020339</commentid>
    <comment_count>31</comment_count>
    <who name="">peavo</who>
    <bug_when>2014-07-03 12:30:52 -0700</bug_when>
    <thetext>With this patch, there are no regressions on both 32 and 64-bit Windows when enabling DFG:

DFG 32-bit:


** The following JSC stress test failures have been introduced:
        jsc-layout-tests.yaml/js/script-tests/date-constructor.js.layout
        jsc-layout-tests.yaml/js/script-tests/date-constructor.js.layout-dfg-eager-no-cjit
        jsc-layout-tests.yaml/js/script-tests/date-constructor.js.layout-no-cjit
        jsc-layout-tests.yaml/js/script-tests/date-constructor.js.layout-no-llint
        jsc-layout-tests.yaml/js/script-tests/sort-stability.js.layout
        jsc-layout-tests.yaml/js/script-tests/sort-stability.js.layout-dfg-eager-no-cjit
        jsc-layout-tests.yaml/js/script-tests/sort-stability.js.layout-no-cjit
        jsc-layout-tests.yaml/js/script-tests/sort-stability.js.layout-no-llint
        mozilla-tests.yaml/ecma_3/Date/15.9.5.6.js.mozilla
        mozilla-tests.yaml/ecma_3/Date/15.9.5.6.js.mozilla-baseline
        mozilla-tests.yaml/ecma_3/Date/15.9.5.6.js.mozilla-dfg-eager-no-cjit-validate-phases
        mozilla-tests.yaml/ecma_3/Date/15.9.5.6.js.mozilla-llint
        stress/ftl-arithcos.js.always-trigger-copy-phase
        stress/ftl-arithcos.js.default
        stress/ftl-arithcos.js.dfg-eager
        stress/ftl-arithcos.js.dfg-eager-no-cjit-validate
        stress/ftl-arithcos.js.no-cjit-validate-phases
        stress/ftl-arithcos.js.no-llint

Results for JSC stress tests:
    18 failures found.

------------------------------------------------------------------------------------------------

Baseline 32-bit:


** The following JSC stress test failures have been introduced:
        jsc-layout-tests.yaml/js/script-tests/date-constructor.js.layout
        jsc-layout-tests.yaml/js/script-tests/date-constructor.js.layout-dfg-eager-no-cjit
        jsc-layout-tests.yaml/js/script-tests/date-constructor.js.layout-no-cjit
        jsc-layout-tests.yaml/js/script-tests/date-constructor.js.layout-no-llint
        jsc-layout-tests.yaml/js/script-tests/sort-stability.js.layout
        jsc-layout-tests.yaml/js/script-tests/sort-stability.js.layout-dfg-eager-no-cjit
        jsc-layout-tests.yaml/js/script-tests/sort-stability.js.layout-no-cjit
        jsc-layout-tests.yaml/js/script-tests/sort-stability.js.layout-no-llint
        mozilla-tests.yaml/ecma_3/Date/15.9.5.6.js.mozilla
        mozilla-tests.yaml/ecma_3/Date/15.9.5.6.js.mozilla-baseline
        mozilla-tests.yaml/ecma_3/Date/15.9.5.6.js.mozilla-dfg-eager-no-cjit-validate-phases
        mozilla-tests.yaml/ecma_3/Date/15.9.5.6.js.mozilla-llint
        stress/ftl-arithcos.js.always-trigger-copy-phase
        stress/ftl-arithcos.js.default
        stress/ftl-arithcos.js.dfg-eager
        stress/ftl-arithcos.js.dfg-eager-no-cjit-validate
        stress/ftl-arithcos.js.no-cjit-validate-phases
        stress/ftl-arithcos.js.no-llint

Results for JSC stress tests:
    18 failures found.

------------------------------------------------------------------------------------------------

DFG 64-bit:

** The following JSC stress test failures have been introduced:
        jsc-layout-tests.yaml/js/script-tests/date-constructor.js.layout
        jsc-layout-tests.yaml/js/script-tests/date-constructor.js.layout-dfg-eager-no-cjit
        jsc-layout-tests.yaml/js/script-tests/date-constructor.js.layout-no-cjit
        jsc-layout-tests.yaml/js/script-tests/date-constructor.js.layout-no-llint
        jsc-layout-tests.yaml/js/script-tests/math.js.layout
        jsc-layout-tests.yaml/js/script-tests/math.js.layout-dfg-eager-no-cjit
        jsc-layout-tests.yaml/js/script-tests/math.js.layout-no-cjit
        jsc-layout-tests.yaml/js/script-tests/math.js.layout-no-llint
        jsc-layout-tests.yaml/js/script-tests/sort-stability.js.layout
        jsc-layout-tests.yaml/js/script-tests/sort-stability.js.layout-dfg-eager-no-cjit
        jsc-layout-tests.yaml/js/script-tests/sort-stability.js.layout-no-cjit
        jsc-layout-tests.yaml/js/script-tests/sort-stability.js.layout-no-llint
        mozilla-tests.yaml/ecma_3/Date/15.9.5.6.js.mozilla
        mozilla-tests.yaml/ecma_3/Date/15.9.5.6.js.mozilla-baseline
        mozilla-tests.yaml/ecma_3/Date/15.9.5.6.js.mozilla-dfg-eager-no-cjit-validate-phases
        mozilla-tests.yaml/ecma_3/Date/15.9.5.6.js.mozilla-llint
        stress/ftl-arithcos.js.always-trigger-copy-phase
        stress/ftl-arithcos.js.default
        stress/ftl-arithcos.js.dfg-eager
        stress/ftl-arithcos.js.dfg-eager-no-cjit-validate
        stress/ftl-arithcos.js.no-cjit-validate-phases
        stress/ftl-arithcos.js.no-llint

Results for JSC stress tests:
    22 failures found.

------------------------------------------------------------------------------------------------

Baseline 64-bit:

** The following JSC stress test failures have been introduced:
        jsc-layout-tests.yaml/js/script-tests/date-constructor.js.layout
        jsc-layout-tests.yaml/js/script-tests/date-constructor.js.layout-dfg-eager-no-cjit
        jsc-layout-tests.yaml/js/script-tests/date-constructor.js.layout-no-cjit
        jsc-layout-tests.yaml/js/script-tests/date-constructor.js.layout-no-llint
        jsc-layout-tests.yaml/js/script-tests/math.js.layout
        jsc-layout-tests.yaml/js/script-tests/math.js.layout-dfg-eager-no-cjit
        jsc-layout-tests.yaml/js/script-tests/math.js.layout-no-cjit
        jsc-layout-tests.yaml/js/script-tests/math.js.layout-no-llint
        jsc-layout-tests.yaml/js/script-tests/sort-stability.js.layout
        jsc-layout-tests.yaml/js/script-tests/sort-stability.js.layout-dfg-eager-no-cjit
        jsc-layout-tests.yaml/js/script-tests/sort-stability.js.layout-no-cjit
        jsc-layout-tests.yaml/js/script-tests/sort-stability.js.layout-no-llint
        mozilla-tests.yaml/ecma_3/Date/15.9.5.6.js.mozilla
        mozilla-tests.yaml/ecma_3/Date/15.9.5.6.js.mozilla-baseline
        mozilla-tests.yaml/ecma_3/Date/15.9.5.6.js.mozilla-dfg-eager-no-cjit-validate-phases
        mozilla-tests.yaml/ecma_3/Date/15.9.5.6.js.mozilla-llint
        stress/ftl-arithcos.js.always-trigger-copy-phase
        stress/ftl-arithcos.js.default
        stress/ftl-arithcos.js.dfg-eager
        stress/ftl-arithcos.js.dfg-eager-no-cjit-validate
        stress/ftl-arithcos.js.no-cjit-validate-phases
        stress/ftl-arithcos.js.no-llint

Results for JSC stress tests:
    22 failures found.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020825</commentid>
    <comment_count>32</comment_count>
      <attachid>234363</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2014-07-07 09:50:29 -0700</bug_when>
    <thetext>Comment on attachment 234363
Patch

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

This is exciting!  Somebody from the JSC team will have to review it.

&gt; Source/JavaScriptCore/assembler/MacroAssemblerX86_64.h:162
&gt; +        // Note: this implementation supports up to 3 parameters.

Are 3 parameters always going to be enough?

&gt; Source/JavaScriptCore/assembler/MacroAssemblerX86_64.h:164
&gt; +        // Shift the parameters to the right.

Is there a way to make the parameters be in the right place without shifting them?

&gt; Source/WTF/wtf/Platform.h:699
&gt; +/* Enable the DFG JIT on X86 and X86_64.  Only tested on Mac, GNU/Linux, FreeBSD, and Windows. */

Couldn&apos;t we remove the Only tested... line entirely?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020849</commentid>
    <comment_count>33</comment_count>
      <attachid>234498</attachid>
    <who name="">peavo</who>
    <bug_when>2014-07-07 11:06:03 -0700</bug_when>
    <thetext>Created attachment 234498
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020851</commentid>
    <comment_count>34</comment_count>
    <who name="">peavo</who>
    <bug_when>2014-07-07 11:09:41 -0700</bug_when>
    <thetext>(In reply to comment #32)
&gt; (From update of attachment 234363 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=234363&amp;action=review
&gt;

Thanks for looking into this :)
 
&gt; This is exciting!  Somebody from the JSC team will have to review it.
&gt; 
&gt; &gt; Source/JavaScriptCore/assembler/MacroAssemblerX86_64.h:162
&gt; &gt; +        // Note: this implementation supports up to 3 parameters.
&gt; 
&gt; Are 3 parameters always going to be enough?
&gt; 

No, there is no guarantee for that.
Currently, there is only one caller (indirectly) of this method (JIT::callOperation(Sprt_JITOperation_EZ operation, int32_t op)),
which uses 2 parameters registers, so there is made room for one more parameter.
On the other hand, we probably don&apos;t want to add support for several more parameters than needed for performance reasons.

&gt; &gt; Source/JavaScriptCore/assembler/MacroAssemblerX86_64.h:164
&gt; &gt; +        // Shift the parameters to the right.
&gt; 
&gt; Is there a way to make the parameters be in the right place without shifting them?
&gt; 

Good point, I believe that would require us to add a new method similar to

setupArgumentsWithExecState(TrustedImm32(op));

which skips using the first parameter register (which is needed for the stack pointer to the return value).

Maybe that is the best way to go?

&gt; &gt; Source/WTF/wtf/Platform.h:699
&gt; &gt; +/* Enable the DFG JIT on X86 and X86_64.  Only tested on Mac, GNU/Linux, FreeBSD, and Windows. */
&gt; 
&gt; Couldn&apos;t we remove the Only tested... line entirely?

Fixed in latest patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1021154</commentid>
    <comment_count>35</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2014-07-08 12:18:52 -0700</bug_when>
    <thetext>(In reply to comment #34)
&gt; &gt; Is there a way to make the parameters be in the right place without shifting them?
&gt; &gt; 
&gt; 
&gt; Good point, I believe that would require us to add a new method similar to
&gt; 
&gt; setupArgumentsWithExecState(TrustedImm32(op));
&gt; 
&gt; which skips using the first parameter register (which is needed for the stack pointer to the return value).
&gt; 
&gt; Maybe that is the best way to go?
Maybe.  Try it.  I&apos;m not familiar enough with this code to say for sure, but I don&apos;t think shifting 3 parameter registers around is the best solution.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1021403</commentid>
    <comment_count>36</comment_count>
      <attachid>234647</attachid>
    <who name="">peavo</who>
    <bug_when>2014-07-09 11:22:03 -0700</bug_when>
    <thetext>Created attachment 234647
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1021404</commentid>
    <comment_count>37</comment_count>
    <who name="">peavo</who>
    <bug_when>2014-07-09 11:24:45 -0700</bug_when>
    <thetext>(In reply to comment #35)
&gt; (In reply to comment #34)
&gt; &gt; &gt; Is there a way to make the parameters be in the right place without shifting them?
&gt; &gt; &gt; 
&gt; &gt; 
&gt; &gt; Good point, I believe that would require us to add a new method similar to
&gt; &gt; 
&gt; &gt; setupArgumentsWithExecState(TrustedImm32(op));
&gt; &gt; 
&gt; &gt; which skips using the first parameter register (which is needed for the stack pointer to the return value).
&gt; &gt; 
&gt; &gt; Maybe that is the best way to go?
&gt; Maybe.  Try it.  I&apos;m not familiar enough with this code to say for sure, but I don&apos;t think shifting 3 parameter registers around is the best solution.

Added a method to setup the arguments which skips the first parameter register, in order to make room for the stack pointer to the return value.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1021655</commentid>
    <comment_count>38</comment_count>
      <attachid>234647</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2014-07-10 10:35:13 -0700</bug_when>
    <thetext>Comment on attachment 234647
Patch

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

This seems ok to me, but this needs to be reviewed by someone from the JavaScriptCore team.  I verified that it works as claimed.

&gt; Source/JavaScriptCore/assembler/MacroAssemblerX86_64.h:163
&gt; +        // Note: this implementation supports up to 3 parameters.

I think this comment needs to be removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1021705</commentid>
    <comment_count>39</comment_count>
      <attachid>234647</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2014-07-10 14:23:24 -0700</bug_when>
    <thetext>Comment on attachment 234647
Patch

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

I&apos;d suggested some renames of function names so that they are a little more consistent with each other, and reads more naturally.  Please also look into the storing of the CallerFrame pinter issue in callWithSlowPathReturnType.

&gt; Source/JavaScriptCore/assembler/MacroAssemblerX86_64.h:155
&gt; +    Call callSlowPathReturnType()

Let&apos;s rename &quot;callSlowPathReturnType&quot; to &quot;callWithSlowPathReturnType&quot;.

&gt;&gt; Source/JavaScriptCore/assembler/MacroAssemblerX86_64.h:163
&gt;&gt; +        // Note: this implementation supports up to 3 parameters.
&gt; 
&gt; I think this comment needs to be removed.

I disagree.  I think this comment is needed.  I would prefer an assertion on the number of parameters instead, but I don&apos;t think there&apos;s a way to assert this right now given that the parameters are set up by a different function (i.e. setupArgumentsWithExecStateForCallWithSlowPathReturnType).

&gt; Source/JavaScriptCore/assembler/MacroAssemblerX86_64.h:183
&gt; +        // We also need to allocate the shadow space on the stack for the 4 parameter registers.
&gt; +        // In addition, we need to allocate 16 bytes for the return value.
&gt; +        sub64(TrustedImm32(6 * sizeof(int64_t)), X86Registers::esp);
&gt; +
&gt; +        // The first parameter register should contain a pointer to the stack allocated space for the return value.
&gt; +        move(X86Registers::esp, X86Registers::ecx);
&gt; +        add64(TrustedImm32(4 * sizeof(int64_t)), X86Registers::ecx);
&gt; +
&gt; +        DataLabelPtr label = moveWithPatch(TrustedImmPtr(0), scratchRegister);
&gt; +        Call result = Call(m_assembler.call(scratchRegister), Call::Linkable);
&gt; +
&gt; +        add64(TrustedImm32(6 * sizeof(int64_t)), X86Registers::esp);
&gt; +
&gt; +        // Copy the return value into rax and rdx.
&gt; +        load64(Address(X86Registers::eax, sizeof(int64_t)), X86Registers::edx);
&gt; +        load64(Address(X86Registers::eax), X86Registers::eax);
&gt; +
&gt; +        ASSERT_UNUSED(label, differenceBetween(label, result) == REPTACH_OFFSET_CALL_R11);
&gt; +        return result;

This code looks stale compared to call() below.  Specifically, I don&apos;t see you storing the ebp (CallerFrame*) on the stack, and adjusting the stack accordingly for that.  Is that not needed here?

&gt; Source/JavaScriptCore/jit/CCallHelpers.h:802
&gt; +        // On Windows, an argument maps to the same register (based on its position), even when there are floating point arguments.

I suggest rephrasing this comment slightly as &quot;On Windows, arguments map to designated registers based on the argument positions, even when there are interlaced scalar and floating point arguments.&quot;

&gt; Source/JavaScriptCore/jit/CCallHelpers.h:816
&gt; +        // On Windows, an argument maps to the same register (based on its position), even when there are floating point arguments.

Ditto with comment.  I suggest using the rephrased comment above.

&gt; Source/JavaScriptCore/jit/CCallHelpers.h:817
&gt; +        // See http://msdn.microsoft.com/en-us/library/7572ztz4.aspx

This document at this url talks about &quot;Return Values&quot;.  I think you meant to us this url instead; http://msdn.microsoft.com/en-us/library/zthk2dkh.aspx

&gt; Source/JavaScriptCore/jit/CCallHelpers.h:1078
&gt; +    ALWAYS_INLINE void setupArgumentsSlowPathReturnTypeCallWithExecState(TrustedImm32 arg1)

Please rename &quot;setupArgumentsSlowPathReturnTypeCallWithExecState&quot; to &quot;setupArgumentsWithExecStateForCallWithSlowPathReturnType&quot;.

&gt; Source/JavaScriptCore/jit/JIT.h:268
&gt; +        Call appendSlowPathReturnTypeCall(const FunctionPtr&amp; function)

Please rename &quot;appendSlowPathReturnTypeCall&quot; to &quot;appendCallWithSlowPathReturnType&quot;.

&gt; Source/JavaScriptCore/jit/JIT.h:270
&gt; +            Call functionCall = callSlowPathReturnType();

Please rename &quot;callSlowPathReturnType&quot; to &quot;callWithSlowPathReturnType&quot;.

&gt; Source/JavaScriptCore/jit/JIT.h:661
&gt; +        MacroAssembler::Call appendSlowPathReturnTypeCallWithExceptionCheck(const FunctionPtr&amp;);

Please rename &quot;appendSlowPathReturnTypeCallWithExceptionCheck&quot; to &quot;appendCallWithExceptionCheckAndSlowPathReturnType&quot;.

&gt; Source/JavaScriptCore/jit/JITInlines.h:122
&gt; +ALWAYS_INLINE MacroAssembler::Call JIT::appendSlowPathReturnTypeCallWithExceptionCheck(const FunctionPtr&amp; function)

Please rename &quot;appendSlowPathReturnTypeCallWithExceptionCheck&quot; to &quot;appendCallWithExceptionCheckAndSlowPathReturnType&quot;.

&gt; Source/JavaScriptCore/jit/JITInlines.h:125
&gt; +    MacroAssembler::Call call = appendSlowPathReturnTypeCall(function);

Please rename &quot;appendSlowPathReturnTypeCall&quot; to &quot;appendCallWithSlowPathReturnType&quot;.

&gt; Source/JavaScriptCore/jit/JITInlines.h:250
&gt; +    setupArgumentsSlowPathReturnTypeCallWithExecState(TrustedImm32(op));
&gt; +    return appendSlowPathReturnTypeCallWithExceptionCheck(operation);

Please rename &quot;setupArgumentsSlowPathReturnTypeCallWithExecState&quot; to &quot;setupArgumentsWithExecStateForCallWithSlowPathReturnType&quot;, and &quot;appendSlowPathReturnTypeCallWithExceptionCheck&quot; to &quot;appendCallWithExceptionCheckAndSlowPathReturnType&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1021846</commentid>
    <comment_count>40</comment_count>
      <attachid>234766</attachid>
    <who name="">peavo</who>
    <bug_when>2014-07-11 08:55:53 -0700</bug_when>
    <thetext>Created attachment 234766
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1021847</commentid>
    <comment_count>41</comment_count>
    <who name="">peavo</who>
    <bug_when>2014-07-11 09:00:39 -0700</bug_when>
    <thetext>(In reply to comment #39)
&gt; (From update of attachment 234647 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=234647&amp;action=review
&gt; 

Thanks for reviewing :) The patch has been modified accordingly.
.
&gt; 
&gt; &gt; Source/JavaScriptCore/assembler/MacroAssemblerX86_64.h:183
&gt; &gt; +        // We also need to allocate the shadow space on the stack for the 4 parameter registers.
&gt; &gt; +        // In addition, we need to allocate 16 bytes for the return value.
&gt; &gt; +        sub64(TrustedImm32(6 * sizeof(int64_t)), X86Registers::esp);
&gt; &gt; +
&gt; &gt; +        // The first parameter register should contain a pointer to the stack allocated space for the return value.
&gt; &gt; +        move(X86Registers::esp, X86Registers::ecx);
&gt; &gt; +        add64(TrustedImm32(4 * sizeof(int64_t)), X86Registers::ecx);
&gt; &gt; +
&gt; &gt; +        DataLabelPtr label = moveWithPatch(TrustedImmPtr(0), scratchRegister);
&gt; &gt; +        Call result = Call(m_assembler.call(scratchRegister), Call::Linkable);
&gt; &gt; +
&gt; &gt; +        add64(TrustedImm32(6 * sizeof(int64_t)), X86Registers::esp);
&gt; &gt; +
&gt; &gt; +        // Copy the return value into rax and rdx.
&gt; &gt; +        load64(Address(X86Registers::eax, sizeof(int64_t)), X86Registers::edx);
&gt; &gt; +        load64(Address(X86Registers::eax), X86Registers::eax);
&gt; &gt; +
&gt; &gt; +        ASSERT_UNUSED(label, differenceBetween(label, result) == REPTACH_OFFSET_CALL_R11);
&gt; &gt; +        return result;
&gt; 
&gt; This code looks stale compared to call() below.  Specifically, I don&apos;t see you storing the ebp (CallerFrame*) on the stack, and adjusting the stack accordingly for that.  Is that not needed here?
&gt; 

I don&apos;t believe it&apos;s needed in this specific case, but I added it, since it will probably be required in the future.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1021869</commentid>
    <comment_count>42</comment_count>
      <attachid>234766</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2014-07-11 11:16:08 -0700</bug_when>
    <thetext>Comment on attachment 234766
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1021871</commentid>
    <comment_count>43</comment_count>
    <who name="">peavo</who>
    <bug_when>2014-07-11 11:20:19 -0700</bug_when>
    <thetext>(In reply to comment #42)
&gt; (From update of attachment 234766 [details])
&gt; r=me

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1021878</commentid>
    <comment_count>44</comment_count>
      <attachid>234766</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-07-11 11:53:40 -0700</bug_when>
    <thetext>Comment on attachment 234766
Patch

Clearing flags on attachment: 234766

Committed r171005: &lt;http://trac.webkit.org/changeset/171005&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1021879</commentid>
    <comment_count>45</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-07-11 11:53:48 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215723</attachid>
            <date>2013-11-01 01:38:56 -0700</date>
            <delta_ts>2013-11-15 07:27:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-123615-20131101093753.patch</filename>
            <type>text/plain</type>
            <size>1268</size>
            <attacher>peavo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxNTg0MjcpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDEzLTExLTAxICBwZWF2b0BvdXRsb29rLmNvbSAg
PHBlYXZvQG91dGxvb2suY29tPgorCisgICAgICAgIFtXaW5dIEVuYWJsZSBERkcgSklUIG9uIDMy
LWJpdC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEy
MzYxNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
d3RmL1BsYXRmb3JtLmg6IEVuYWJsZSBERkcgSklUIG9uIDMyLWJpdCBXaW5kb3dzLgorCiAyMDEz
LTEwLTMwICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVt
ZW50IGJhc2ljIEVTNiBNYXRoIGZ1bmN0aW9ucwpJbmRleDogU291cmNlL1dURi93dGYvUGxhdGZv
cm0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCShyZXZpc2lvbiAx
NTg0MjcpCisrKyBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCSh3b3JraW5nIGNvcHkpCkBAIC03
NDIsOSArNzQyLDkgQEAKICNkZWZpbmUgRU5BQkxFX0xMSU5UIDEKICNlbmRpZgogCi0jaWYgIWRl
ZmluZWQoRU5BQkxFX0RGR19KSVQpICYmIEVOQUJMRShKSVQpICYmICFDT01QSUxFUihNU1ZDKQot
LyogRW5hYmxlIHRoZSBERkcgSklUIG9uIFg4NiBhbmQgWDg2XzY0LiAgT25seSB0ZXN0ZWQgb24g
TWFjIGFuZCBHTlUvTGludXguICovCi0jaWYgKENQVShYODYpIHx8IENQVShYODZfNjQpKSAmJiAo
T1MoREFSV0lOKSB8fCBPUyhMSU5VWCkpCisjaWYgIWRlZmluZWQoRU5BQkxFX0RGR19KSVQpICYm
IEVOQUJMRShKSVQpCisvKiBFbmFibGUgdGhlIERGRyBKSVQgb24gWDg2IGFuZCBYODZfNjQuICov
CisjaWYgKENQVShYODYpIHx8IENQVShYODZfNjQpKSAmJiAoT1MoREFSV0lOKSB8fCBPUyhMSU5V
WCkgfHwgT1MoV0lORE9XUykpCiAjZGVmaW5lIEVOQUJMRV9ERkdfSklUIDEKICNlbmRpZgogLyog
RW5hYmxlIHRoZSBERkcgSklUIG9uIEFSTXY3LiAgT25seSB0ZXN0ZWQgb24gaU9TIGFuZCBRdC9H
VEsrIExpbnV4LiAqLwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217051</attachid>
            <date>2013-11-15 07:27:27 -0800</date>
            <delta_ts>2013-12-02 11:54:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-123615-20131115162541.patch</filename>
            <type>text/plain</type>
            <size>1290</size>
            <attacher>peavo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxNTkzMzUpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDEzLTExLTE1ICBwZWF2b0BvdXRsb29rLmNvbSAg
PHBlYXZvQG91dGxvb2suY29tPgorCisgICAgICAgIFtXaW5dIEVuYWJsZSBERkcgSklUIG9uIDMy
LWJpdC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEy
MzYxNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
d3RmL1BsYXRmb3JtLmg6IEVuYWJsZSBERkcgSklUIG9uIDMyLWJpdCBXaW5kb3dzLgorCiAyMDEz
LTExLTE0ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBD
TG9vcCBlYXNpZXIgdG8gYnVpbGQsIGFuZCBtYWtlIGl0IHdvcmsKSW5kZXg6IFNvdXJjZS9XVEYv
d3RmL1BsYXRmb3JtLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAko
cmV2aXNpb24gMTU5MzI4KQorKysgU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAkod29ya2luZyBj
b3B5KQpAQCAtNzUwLDkgKzc1MCw5IEBACiAjZGVmaW5lIEVOQUJMRV9MTElOVCAxCiAjZW5kaWYK
IAotI2lmICFkZWZpbmVkKEVOQUJMRV9ERkdfSklUKSAmJiBFTkFCTEUoSklUKSAmJiAhQ09NUElM
RVIoTVNWQykKLS8qIEVuYWJsZSB0aGUgREZHIEpJVCBvbiBYODYgYW5kIFg4Nl82NC4gIE9ubHkg
dGVzdGVkIG9uIE1hYyBhbmQgR05VL0xpbnV4LiAqLwotI2lmIChDUFUoWDg2KSB8fCBDUFUoWDg2
XzY0KSkgJiYgKE9TKERBUldJTikgfHwgT1MoTElOVVgpKQorI2lmICFkZWZpbmVkKEVOQUJMRV9E
RkdfSklUKSAmJiBFTkFCTEUoSklUKQorLyogRW5hYmxlIHRoZSBERkcgSklUIG9uIFg4NiBhbmQg
WDg2XzY0LiAqLworI2lmIChDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KSkgJiYgKE9TKERBUldJTikg
fHwgT1MoTElOVVgpKSB8fCBPUyhXSU5ET1dTKSAmJiBDUFUoWDg2KQogI2RlZmluZSBFTkFCTEVf
REZHX0pJVCAxCiAjZW5kaWYKIC8qIEVuYWJsZSB0aGUgREZHIEpJVCBvbiBBUk12Ny4gIE9ubHkg
dGVzdGVkIG9uIGlPUyBhbmQgUXQvR1RLKyBMaW51eC4gKi8K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>218204</attachid>
            <date>2013-12-02 11:54:09 -0800</date>
            <delta_ts>2014-05-20 09:51:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-123615-20131202205340.patch</filename>
            <type>text/plain</type>
            <size>1300</size>
            <attacher>peavo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxNTk5NDQpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDEzLTEyLTAyICBwZWF2b0BvdXRsb29rLmNvbSAg
PHBlYXZvQG91dGxvb2suY29tPgorCisgICAgICAgIFtXaW5dIEVuYWJsZSBERkcgSklUIG9uIDMy
LWJpdC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEy
MzYxNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
d3RmL1BsYXRmb3JtLmg6IEVuYWJsZSBERkcgSklUIG9uIDMyLWJpdCBXaW5kb3dzLgorCiAyMDEz
LTExLTMwICBwZWF2b0BvdXRsb29rLmNvbSAgPHBlYXZvQG91dGxvb2suY29tPgogCiAgICAgICAg
IFtXaW5dIFNvbWUgSmF2YVNjcmlwdCBkYXRlIHRlc3RzIGFyZSBmYWlsaW5nLgpJbmRleDogU291
cmNlL1dURi93dGYvUGxhdGZvcm0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybS5oCShyZXZpc2lvbiAxNTk5MzUpCisrKyBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCSh3
b3JraW5nIGNvcHkpCkBAIC03MzMsOSArNzMzLDkgQEAKICNkZWZpbmUgRU5BQkxFX0xMSU5UIDEK
ICNlbmRpZgogCi0jaWYgIWRlZmluZWQoRU5BQkxFX0RGR19KSVQpICYmIEVOQUJMRShKSVQpICYm
ICFDT01QSUxFUihNU1ZDKQotLyogRW5hYmxlIHRoZSBERkcgSklUIG9uIFg4NiBhbmQgWDg2XzY0
LiAgT25seSB0ZXN0ZWQgb24gTWFjIGFuZCBHTlUvTGludXguICovCi0jaWYgKENQVShYODYpIHx8
IENQVShYODZfNjQpKSAmJiAoT1MoREFSV0lOKSB8fCBPUyhMSU5VWCkpCisjaWYgIWRlZmluZWQo
RU5BQkxFX0RGR19KSVQpICYmIEVOQUJMRShKSVQpCisvKiBFbmFibGUgdGhlIERGRyBKSVQgb24g
WDg2IGFuZCBYODZfNjQuICovCisjaWYgKENQVShYODYpIHx8IENQVShYODZfNjQpKSAmJiAoT1Mo
REFSV0lOKSB8fCBPUyhMSU5VWCkpIHx8IChPUyhXSU5ET1dTKSAmJiBDUFUoWDg2KSkKICNkZWZp
bmUgRU5BQkxFX0RGR19KSVQgMQogI2VuZGlmCiAvKiBFbmFibGUgdGhlIERGRyBKSVQgb24gQVJN
djcuICBPbmx5IHRlc3RlZCBvbiBpT1MgYW5kIFF0L0dUSysgTGludXguICovCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231774</attachid>
            <date>2014-05-20 09:51:38 -0700</date>
            <delta_ts>2014-07-03 12:22:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-123615-20140520185112.patch</filename>
            <type>text/plain</type>
            <size>1371</size>
            <attacher>peavo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxNjkxMTMpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDE0LTA1LTIwICBwZWF2b0BvdXRsb29rLmNvbSAg
PHBlYXZvQG91dGxvb2suY29tPgorCisgICAgICAgIFtXaW5dIEVuYWJsZSBERkcgSklUIG9uIDMy
LWJpdC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEy
MzYxNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
d3RmL1BsYXRmb3JtLmg6IEVuYWJsZSBERkcgSklUIG9uIDMyLWJpdCBXaW5kb3dzLgorCiAyMDE0
LTA1LTE4ICBSaWsgQ2FiYW5pZXIgIDxjYWJhbmllckBhZG9iZS5jb20+CiAKICAgICAgICAgc3Vw
cG9ydCBmb3IgbmF2aWdhdG9yLmhhcmR3YXJlQ29uY3VycmVuY3kKSW5kZXg6IFNvdXJjZS9XVEYv
d3RmL1BsYXRmb3JtLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAko
cmV2aXNpb24gMTY4OTAzKQorKysgU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAkod29ya2luZyBj
b3B5KQpAQCAtNzE1LDkgKzcxNSw5IEBACiAjZGVmaW5lIEVOQUJMRV9MTElOVCAxCiAjZW5kaWYK
IAotI2lmICFkZWZpbmVkKEVOQUJMRV9ERkdfSklUKSAmJiBFTkFCTEUoSklUKSAmJiAhQ09NUElM
RVIoTVNWQykKLS8qIEVuYWJsZSB0aGUgREZHIEpJVCBvbiBYODYgYW5kIFg4Nl82NC4gIE9ubHkg
dGVzdGVkIG9uIE1hYywgR05VL0xpbnV4IGFuZCBGcmVlQlNELiAqLwotI2lmIChDUFUoWDg2KSB8
fCBDUFUoWDg2XzY0KSkgJiYgKE9TKERBUldJTikgfHwgT1MoTElOVVgpIHx8IE9TKEZSRUVCU0Qp
KQorI2lmICFkZWZpbmVkKEVOQUJMRV9ERkdfSklUKSAmJiBFTkFCTEUoSklUKQorLyogRW5hYmxl
IHRoZSBERkcgSklUIG9uIFg4NiBhbmQgWDg2XzY0LiAgT25seSB0ZXN0ZWQgb24gTWFjLCBHTlUv
TGludXgsIEZyZWVCU0QsIGFuZCBXaW5kb3dzLiAqLworI2lmIChDUFUoWDg2KSB8fCBDUFUoWDg2
XzY0KSkgJiYgKE9TKERBUldJTikgfHwgT1MoTElOVVgpIHx8IE9TKEZSRUVCU0QpIHx8IE9TKFdJ
TkRPV1MpKQogI2RlZmluZSBFTkFCTEVfREZHX0pJVCAxCiAjZW5kaWYKIC8qIEVuYWJsZSB0aGUg
REZHIEpJVCBvbiBBUk12Ny4gIE9ubHkgdGVzdGVkIG9uIGlPUyBhbmQgUXQvR1RLKyBMaW51eC4g
Ki8K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>234363</attachid>
            <date>2014-07-03 12:23:02 -0700</date>
            <delta_ts>2014-07-07 11:05:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-123615-20140703212243.patch</filename>
            <type>text/plain</type>
            <size>9306</size>
            <attacher>peavo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTcwNzU4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBA
CisyMDE0LTA3LTAzICBwZWF2b0BvdXRsb29rLmNvbSAgPHBlYXZvQG91dGxvb2suY29tPgorCisg
ICAgICAgIFtXaW5dIEVuYWJsZSBERkcgSklULgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzNjE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgV2hlbiB0aGUgcmV0dXJuIHR5cGUgb2YgYSBKSVQgZ2VuZXJh
dGVkIGZ1bmN0aW9uIGNhbGwgaXMgbGFyZ2VyIHRoYW4gNjQtYml0IChlLmcuIFNsb3dQYXRoUmV0
dXJuVHlwZSksCisgICAgICAgIHRoZSBub3JtYWwgY2FsbCgpIGltcGxlbWVudGF0aW9uIGNhbm5v
dCBiZSB1c2VkIG9uIDY0LWJpdCBXaW5kb3dzLCBiZWNhdXNlIHRoZSA2NC1iaXQgV2luZG93cyBB
QkkgaXMgZGlmZmVyZW50IGluIHRoaXMgY2FzZS4KKyAgICAgICAgQWxzbywgd2hlbiBnZW5lcmF0
aW5nIGNhbGxzIHdpdGggZG91YmxlIGFyZ3VtZW50cywgd2UgbmVlZCB0byBtYWtlIHN1cmUgdGhl
IGFyZ3VtZW50cyBhcmUgcHV0IGluIHRoZSBjb3JyZWN0IHJlZ2lzdGVycywKKyAgICAgICAgc2lu
Y2UgdGhlIHJlZ2lzdGVyIGFsbG9jYXRpb24gZGlmZmVycyBvbiA2NC1iaXQgV2luZG93cy4KKwor
ICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oOgorICAgICAgICAoSlND
OjpNYWNyb0Fzc2VtYmxlclg4Nl82NDo6Y2FsbFNsb3dQYXRoKTogQWRkZWQgbWV0aG9kIHRvIGhh
bmRsZSBmdW5jdGlvbiBjYWxscyB3aGVyZSB0aGUgcmV0dXJuIHZhbHVlIHR5cGUgc2l6ZSBpcyBs
YXJnZXIgdGhhbiA2NC1iaXQuCisgICAgICAgICogaml0L0NDYWxsSGVscGVycy5oOgorICAgICAg
ICAoSlNDOjpDQ2FsbEhlbHBlcnM6OnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZSk6IE1vdmUg
YXJndW1lbnRzIHRvIGNvcnJlY3QgcmVnaXN0ZXJzIHdoZW4gdGhlcmUgYXJlIGZsb2F0aW5nIHBv
aW50IGFyZ3VtZW50cy4KKyAgICAgICAgKiBqaXQvSklULmg6CisgICAgICAgIChKU0M6OkpJVDo6
YXBwZW5kU2xvd1BhdGhDYWxsKTogQWRkZWQgbWV0aG9kLgorICAgICAgICAqIGppdC9KSVRJbmxp
bmVzLmg6CisgICAgICAgIChKU0M6OkpJVDo6YXBwZW5kU2xvd1BhdGhDYWxsV2l0aEV4Y2VwdGlv
bkNoZWNrKTogQWRkZWQgbWV0aG9kLgorICAgICAgICAoSlNDOjpKSVQ6OmNhbGxPcGVyYXRpb24p
OiBDYWxsIG5ldyBtZXRob2QuCisKIDIwMTQtMDctMDEgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBw
bGUuY29tPgogCiAgICAgICAgIERlYnVnZ2VyJ3MgYnJlYWtwb2ludCBsaXN0IHNob3VsZCBub3Qg
YmUgYSBWZWN0b3IuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3Jv
QXNzZW1ibGVyWDg2XzY0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oCShyZXZpc2lvbiAxNzA3NTQpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0LmgJKHdvcmtp
bmcgY29weSkKQEAgLTE1MSw2ICsxNTEsNDMgQEAgcHVibGljOgogICAgICAgICBzdG9yZTgocmVn
LCBBZGRyZXNzKHNjcmF0Y2hSZWdpc3RlcikpOwogICAgIH0KIAorI2lmIE9TKFdJTkRPV1MpCisg
ICAgQ2FsbCBjYWxsU2xvd1BhdGgoKQorICAgIHsKKyAgICAgICAgLy8gT24gV2luNjQsIHdoZW4g
dGhlIHJldHVybiB0eXBlIGlzIGxhcmdlciB0aGFuIDggYnl0ZXMsIHdlIG5lZWQgdG8gYWxsb2Nh
dGUgc3BhY2Ugb24gdGhlIHN0YWNrIGZvciB0aGUgcmV0dXJuIHZhbHVlLgorICAgICAgICAvLyBP
biBlbnRyeSwgcmN4IHNob3VsZCBjb250YWluIGEgcG9pbnRlciB0byB0aGlzIHN0YWNrIHNwYWNl
LiBUaGUgb3RoZXIgcGFyYW1ldGVycyBhcmUgc2hpZnRlZCB0byB0aGUgcmlnaHQsCisgICAgICAg
IC8vIHJkeCBzaG91bGQgY29udGFpbiB0aGUgZmlyc3QgYXJndW1lbnQsIHI4IHNob3VsZCBjb250
YWluIHRoZSBzZWNvbmQgYXJndW1lbnQsIGFuZCByOSBzaG91bGQgY29udGFpbiB0aGUgdGhpcmQg
YXJndW1lbnQuCisgICAgICAgIC8vIE9uIHJldHVybiwgcmF4IGNvbnRhaW5zIGEgcG9pbnRlciB0
byB0aGlzIHN0YWNrIHZhbHVlLiBTZWUgaHR0cDovL21zZG4ubWljcm9zb2Z0LmNvbS9lbi11cy9s
aWJyYXJ5Lzc1NzJ6dHo0LmFzcHguCisgICAgICAgIC8vIFdlIHRoZW4gbmVlZCB0byBjb3B5IHRo
ZSAxNiBieXRlIHJldHVybiB2YWx1ZSBpbnRvIHJheCBhbmQgcmR4LCBzaW5jZSBKSVQgZXhwZWN0
cyB0aGUgcmV0dXJuIHZhbHVlIHRvIGJlIHNwbGl0IGJldHdlZW4gdGhlIHR3by4KKyAgICAgICAg
Ly8gTm90ZTogdGhpcyBpbXBsZW1lbnRhdGlvbiBzdXBwb3J0cyB1cCB0byAzIHBhcmFtZXRlcnMu
CisKKyAgICAgICAgLy8gU2hpZnQgdGhlIHBhcmFtZXRlcnMgdG8gdGhlIHJpZ2h0LgorICAgICAg
ICBtb3ZlKFg4NlJlZ2lzdGVyczo6cjgsIFg4NlJlZ2lzdGVyczo6cjkpOworICAgICAgICBtb3Zl
KFg4NlJlZ2lzdGVyczo6ZWR4LCBYODZSZWdpc3RlcnM6OnI4KTsKKyAgICAgICAgbW92ZShYODZS
ZWdpc3RlcnM6OmVjeCwgWDg2UmVnaXN0ZXJzOjplZHgpOworCisgICAgICAgIC8vIFdlIGFsc28g
bmVlZCB0byBhbGxvY2F0ZSB0aGUgc2hhZG93IHNwYWNlIG9uIHRoZSBzdGFjayBmb3IgdGhlIDQg
cGFyYW1ldGVyIHJlZ2lzdGVycy4KKyAgICAgICAgLy8gSW4gYWRkaXRpb24sIHdlIG5lZWQgdG8g
YWxsb2NhdGUgMTYgYnl0ZXMgZm9yIHRoZSByZXR1cm4gdmFsdWUuCisgICAgICAgIHN1YjY0KFRy
dXN0ZWRJbW0zMig2ICogc2l6ZW9mKGludDY0X3QpKSwgWDg2UmVnaXN0ZXJzOjplc3ApOworCisg
ICAgICAgIC8vIFRoZSBmaXJzdCBwYXJhbWV0ZXIgcmVnaXN0ZXIgc2hvdWxkIGNvbnRhaW4gYSBw
b2ludGVyIHRvIHRoZSBzdGFjayBhbGxvY2F0ZWQgc3BhY2UgZm9yIHRoZSByZXR1cm4gdmFsdWUu
CisgICAgICAgIG1vdmUoWDg2UmVnaXN0ZXJzOjplc3AsIFg4NlJlZ2lzdGVyczo6ZWN4KTsKKyAg
ICAgICAgYWRkNjQoVHJ1c3RlZEltbTMyKDQgKiBzaXplb2YoaW50NjRfdCkpLCBYODZSZWdpc3Rl
cnM6OmVjeCk7CisKKyAgICAgICAgRGF0YUxhYmVsUHRyIGxhYmVsID0gbW92ZVdpdGhQYXRjaChU
cnVzdGVkSW1tUHRyKDApLCBzY3JhdGNoUmVnaXN0ZXIpOworICAgICAgICBDYWxsIHJlc3VsdCA9
IENhbGwobV9hc3NlbWJsZXIuY2FsbChzY3JhdGNoUmVnaXN0ZXIpLCBDYWxsOjpMaW5rYWJsZSk7
CisKKyAgICAgICAgYWRkNjQoVHJ1c3RlZEltbTMyKDYgKiBzaXplb2YoaW50NjRfdCkpLCBYODZS
ZWdpc3RlcnM6OmVzcCk7CisKKyAgICAgICAgLy8gQ29weSB0aGUgcmV0dXJuIHZhbHVlIGludG8g
cmF4IGFuZCByZHguCisgICAgICAgIGxvYWQ2NChBZGRyZXNzKFg4NlJlZ2lzdGVyczo6ZWF4LCBz
aXplb2YoaW50NjRfdCkpLCBYODZSZWdpc3RlcnM6OmVkeCk7CisgICAgICAgIGxvYWQ2NChBZGRy
ZXNzKFg4NlJlZ2lzdGVyczo6ZWF4KSwgWDg2UmVnaXN0ZXJzOjplYXgpOworCisgICAgICAgIEFT
U0VSVF9VTlVTRUQobGFiZWwsIGRpZmZlcmVuY2VCZXR3ZWVuKGxhYmVsLCByZXN1bHQpID09IFJF
UFRBQ0hfT0ZGU0VUX0NBTExfUjExKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9Cisj
ZW5kaWYKKwogICAgIENhbGwgY2FsbCgpCiAgICAgewogI2lmIE9TKFdJTkRPV1MpCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgJKHJldmlzaW9uIDE3MDc1NCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTc5OCwxNCArNzk4LDI3IEBAIHB1YmxpYzoKICAgICAKICAgICBBTFdBWVNfSU5MSU5F
IHZvaWQgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEZQUlJlZyBhcmcxLCBHUFJSZWcgYXJn
MikKICAgICB7CisjaWYgT1MoV0lORE9XUykKKyAgICAgICAgLy8gT24gV2luZG93cywgYW4gYXJn
dW1lbnQgbWFwcyB0byB0aGUgc2FtZSByZWdpc3RlciAoYmFzZWQgb24gaXRzIHBvc2l0aW9uKSwg
ZXZlbiB3aGVuIHRoZXJlIGFyZSBmbG9hdGluZyBwb2ludCBhcmd1bWVudHMuCisgICAgICAgIC8v
IFNlZSBodHRwOi8vbXNkbi5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJhcnkvenRoazJka2guYXNw
eAorICAgICAgICBtb3ZlRG91YmxlKGFyZzEsIEZQUkluZm86OmFyZ3VtZW50RlBSMSk7CisgICAg
ICAgIG1vdmUoYXJnMiwgR1BSSW5mbzo6YXJndW1lbnRHUFIyKTsKKyNlbHNlCiAgICAgICAgIG1v
dmVEb3VibGUoYXJnMSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKICAgICAgICAgbW92ZShhcmcy
LCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOworI2VuZGlmCiAgICAgICAgIG1vdmUoR1BSSW5mbzo6
Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgfQogCiAgICAg
QUxXQVlTX0lOTElORSB2b2lkIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShHUFJSZWcgYXJn
MSwgR1BSUmVnIGFyZzIsIEZQUlJlZyBhcmczKQogICAgIHsKKyNpZiBPUyhXSU5ET1dTKQorICAg
ICAgICAvLyBPbiBXaW5kb3dzLCBhbiBhcmd1bWVudCBtYXBzIHRvIHRoZSBzYW1lIHJlZ2lzdGVy
IChiYXNlZCBvbiBpdHMgcG9zaXRpb24pLCBldmVuIHdoZW4gdGhlcmUgYXJlIGZsb2F0aW5nIHBv
aW50IGFyZ3VtZW50cy4KKyAgICAgICAgLy8gU2VlIGh0dHA6Ly9tc2RuLm1pY3Jvc29mdC5jb20v
ZW4tdXMvbGlicmFyeS83NTcyenR6NC5hc3B4CisgICAgICAgIG1vdmVEb3VibGUoYXJnMywgRlBS
SW5mbzo6YXJndW1lbnRGUFIzKTsKKyNlbHNlCiAgICAgICAgIG1vdmVEb3VibGUoYXJnMywgRlBS
SW5mbzo6YXJndW1lbnRGUFIwKTsKKyNlbmRpZgogICAgICAgICBzZXR1cFN0dWJBcmd1bWVudHMo
YXJnMSwgYXJnMik7CiAgICAgICAgIG1vdmUoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQ
UkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5o
CShyZXZpc2lvbiAxNzA3NTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yNjQsNiArMjY0LDE3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICAgICAgcmV0dXJuIGZ1bmN0aW9uQ2FsbDsKICAgICAgICAgfQogCisgICAgICAgIENhbGwgYXBw
ZW5kU2xvd1BhdGhDYWxsKGNvbnN0IEZ1bmN0aW9uUHRyJiBmdW5jdGlvbikKKyAgICAgICAgewor
I2lmIFBMQVRGT1JNKFdJTikgJiYgQ1BVKFg4Nl82NCkKKyAgICAgICAgICAgIENhbGwgZnVuY3Rp
b25DYWxsID0gY2FsbFNsb3dQYXRoKCk7CisjZWxzZQorICAgICAgICAgICAgQ2FsbCBmdW5jdGlv
bkNhbGwgPSBjYWxsKCk7CisjZW5kaWYKKyAgICAgICAgICAgIG1fY2FsbHMuYXBwZW5kKENhbGxS
ZWNvcmQoZnVuY3Rpb25DYWxsLCBtX2J5dGVjb2RlT2Zmc2V0LCBmdW5jdGlvbi52YWx1ZSgpKSk7
CisgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb25DYWxsOworICAgICAgICB9CisKICAgICAgICAg
dm9pZCBleGNlcHRpb25DaGVjayhKdW1wIGp1bXBUb0hhbmRsZXIpCiAgICAgICAgIHsKICAgICAg
ICAgICAgIG1fZXhjZXB0aW9uQ2hlY2tzLmFwcGVuZChqdW1wVG9IYW5kbGVyKTsKQEAgLTY0OCw2
ICs2NTksNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBsaW5rU2xvd0Nhc2VJZk5v
dEpTQ2VsbChWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiwgaW50IHZpcnR1YWxSZWdp
c3RlckluZGV4KTsKIAogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBhcHBlbmRDYWxsV2l0
aEV4Y2VwdGlvbkNoZWNrKGNvbnN0IEZ1bmN0aW9uUHRyJik7CisgICAgICAgIE1hY3JvQXNzZW1i
bGVyOjpDYWxsIGFwcGVuZFNsb3dQYXRoQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhjb25zdCBGdW5j
dGlvblB0ciYpOwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBhcHBlbmRDYWxsV2l0aENh
bGxGcmFtZVJvbGxiYWNrT25FeGNlcHRpb24oY29uc3QgRnVuY3Rpb25QdHImKTsKICAgICAgICAg
TWFjcm9Bc3NlbWJsZXI6OkNhbGwgYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVja1NldEpTVmFs
dWVSZXN1bHQoY29uc3QgRnVuY3Rpb25QdHImLCBpbnQpOwogICAgICAgICBNYWNyb0Fzc2VtYmxl
cjo6Q2FsbCBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrU2V0SlNWYWx1ZVJlc3VsdFdpdGhQ
cm9maWxlKGNvbnN0IEZ1bmN0aW9uUHRyJiwgaW50KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUSW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUSW5saW5lcy5oCShyZXZpc2lvbiAxNzA3NTQpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVElubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMTE4LDYgKzExOCwxNCBA
QCBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6CiAgICAgcmV0dXJuIGNh
bGw7CiB9CiAKK0FMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjphcHBlbmRT
bG93UGF0aENhbGxXaXRoRXhjZXB0aW9uQ2hlY2soY29uc3QgRnVuY3Rpb25QdHImIGZ1bmN0aW9u
KQoreworICAgIHVwZGF0ZVRvcENhbGxGcmFtZSgpOworICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxs
IGNhbGwgPSBhcHBlbmRTbG93UGF0aENhbGwoZnVuY3Rpb24pOworICAgIGV4Y2VwdGlvbkNoZWNr
KCk7CisgICAgcmV0dXJuIGNhbGw7Cit9CisKIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6
OkNhbGwgSklUOjphcHBlbmRDYWxsV2l0aENhbGxGcmFtZVJvbGxiYWNrT25FeGNlcHRpb24oY29u
c3QgRnVuY3Rpb25QdHImIGZ1bmN0aW9uKQogewogICAgIHVwZGF0ZVRvcENhbGxGcmFtZSgpOyAv
LyBUaGUgY2FsbGVlIGlzIHJlc3BvbnNpYmxlIGZvciBzZXR0aW5nIHRvcENhbGxGcmFtZSB0byB0
aGVpciBjYWxsZXIKQEAgLTIzNiw3ICsyNDQsNyBAQCBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1i
bGVyOjpDYWxsIEpJVDo6CiBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6
Y2FsbE9wZXJhdGlvbihTcHJ0X0pJVE9wZXJhdGlvbl9FWiBvcGVyYXRpb24sIGludDMyX3Qgb3Ap
CiB7CiAgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKFRydXN0ZWRJbW0zMihvcCkpOwot
ICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CisgICAg
cmV0dXJuIGFwcGVuZFNsb3dQYXRoQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb24pOwog
fQogCiBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlv
bihWX0pJVE9wZXJhdGlvbl9FIG9wZXJhdGlvbikKSW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNzA3NTgpCisr
KyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisy
MDE0LTA3LTAzICBwZWF2b0BvdXRsb29rLmNvbSAgPHBlYXZvQG91dGxvb2suY29tPgorCisgICAg
ICAgIFtXaW5dIEVuYWJsZSBERkcgSklULgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTIzNjE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm0uaDoKKwogMjAxNC0wNy0wMiAgRW5yaWNh
IENhc3VjY2kgIDxlbnJpY2FAYXBwbGUuY29tPgogCiAgICAgICAgIGlPUyBidWlsZCBmaXggYWZ0
ZXIgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTcwNjk3LgpJbmRleDogU291cmNl
L1dURi93dGYvUGxhdGZvcm0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bS5oCShyZXZpc2lvbiAxNzA3NTQpCisrKyBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC02OTUsOSArNjk1LDkgQEAKICNkZWZpbmUgRU5BQkxFX0RJU0FTU0VNQkxF
UiAxCiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKEVOQUJMRV9ERkdfSklUKSAmJiBFTkFCTEUoSklU
KSAmJiAhQ09NUElMRVIoTVNWQykKLS8qIEVuYWJsZSB0aGUgREZHIEpJVCBvbiBYODYgYW5kIFg4
Nl82NC4gIE9ubHkgdGVzdGVkIG9uIE1hYywgR05VL0xpbnV4IGFuZCBGcmVlQlNELiAqLwotI2lm
IChDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KSkgJiYgKE9TKERBUldJTikgfHwgT1MoTElOVVgpIHx8
IE9TKEZSRUVCU0QpKQorI2lmICFkZWZpbmVkKEVOQUJMRV9ERkdfSklUKSAmJiBFTkFCTEUoSklU
KQorLyogRW5hYmxlIHRoZSBERkcgSklUIG9uIFg4NiBhbmQgWDg2XzY0LiAgT25seSB0ZXN0ZWQg
b24gTWFjLCBHTlUvTGludXgsIEZyZWVCU0QsIGFuZCBXaW5kb3dzLiAqLworI2lmIChDUFUoWDg2
KSB8fCBDUFUoWDg2XzY0KSkgJiYgKE9TKERBUldJTikgfHwgT1MoTElOVVgpIHx8IE9TKEZSRUVC
U0QpIHx8IE9TKFdJTkRPV1MpKQogI2RlZmluZSBFTkFCTEVfREZHX0pJVCAxCiAjZW5kaWYKIC8q
IEVuYWJsZSB0aGUgREZHIEpJVCBvbiBBUk12Ny4gIE9ubHkgdGVzdGVkIG9uIGlPUyBhbmQgUXQv
R1RLKyBMaW51eC4gKi8K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>234498</attachid>
            <date>2014-07-07 11:06:03 -0700</date>
            <delta_ts>2014-07-09 11:21:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-123615-20140707200542.patch</filename>
            <type>text/plain</type>
            <size>9234</size>
            <attacher>peavo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTcwODQ1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBA
CisyMDE0LTA3LTA3ICBwZWF2b0BvdXRsb29rLmNvbSAgPHBlYXZvQG91dGxvb2suY29tPgorCisg
ICAgICAgIFtXaW5dIEVuYWJsZSBERkcgSklULgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzNjE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgV2hlbiB0aGUgcmV0dXJuIHR5cGUgb2YgYSBKSVQgZ2VuZXJh
dGVkIGZ1bmN0aW9uIGNhbGwgaXMgbGFyZ2VyIHRoYW4gNjQtYml0IChlLmcuIFNsb3dQYXRoUmV0
dXJuVHlwZSksCisgICAgICAgIHRoZSBub3JtYWwgY2FsbCgpIGltcGxlbWVudGF0aW9uIGNhbm5v
dCBiZSB1c2VkIG9uIDY0LWJpdCBXaW5kb3dzLCBiZWNhdXNlIHRoZSA2NC1iaXQgV2luZG93cyBB
QkkgaXMgZGlmZmVyZW50IGluIHRoaXMgY2FzZS4KKyAgICAgICAgQWxzbywgd2hlbiBnZW5lcmF0
aW5nIGNhbGxzIHdpdGggZG91YmxlIGFyZ3VtZW50cywgd2UgbmVlZCB0byBtYWtlIHN1cmUgdGhl
IGFyZ3VtZW50cyBhcmUgcHV0IGluIHRoZSBjb3JyZWN0IHJlZ2lzdGVycywKKyAgICAgICAgc2lu
Y2UgdGhlIHJlZ2lzdGVyIGFsbG9jYXRpb24gZGlmZmVycyBvbiA2NC1iaXQgV2luZG93cy4KKwor
ICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oOgorICAgICAgICAoSlND
OjpNYWNyb0Fzc2VtYmxlclg4Nl82NDo6Y2FsbFNsb3dQYXRoKTogQWRkZWQgbWV0aG9kIHRvIGhh
bmRsZSBmdW5jdGlvbiBjYWxscyB3aGVyZSB0aGUgcmV0dXJuIHZhbHVlIHR5cGUgc2l6ZSBpcyBs
YXJnZXIgdGhhbiA2NC1iaXQuCisgICAgICAgICogaml0L0NDYWxsSGVscGVycy5oOgorICAgICAg
ICAoSlNDOjpDQ2FsbEhlbHBlcnM6OnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZSk6IE1vdmUg
YXJndW1lbnRzIHRvIGNvcnJlY3QgcmVnaXN0ZXJzIHdoZW4gdGhlcmUgYXJlIGZsb2F0aW5nIHBv
aW50IGFyZ3VtZW50cy4KKyAgICAgICAgKiBqaXQvSklULmg6CisgICAgICAgIChKU0M6OkpJVDo6
YXBwZW5kU2xvd1BhdGhDYWxsKTogQWRkZWQgbWV0aG9kLgorICAgICAgICAqIGppdC9KSVRJbmxp
bmVzLmg6CisgICAgICAgIChKU0M6OkpJVDo6YXBwZW5kU2xvd1BhdGhDYWxsV2l0aEV4Y2VwdGlv
bkNoZWNrKTogQWRkZWQgbWV0aG9kLgorICAgICAgICAoSlNDOjpKSVQ6OmNhbGxPcGVyYXRpb24p
OiBDYWxsIG5ldyBtZXRob2QuCisKIDIwMTQtMDctMDcgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNl
a0BpZ2FsaWEuY29tPgogCiAgICAgICAgIEVuYWJsZSBBUk12NyBkaXNhc3NlbWJsZXIgZm9yIHRo
ZSBHVEsgcG9ydApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlclg4Nl82NC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaAkocmV2aXNpb24gMTcwODQ1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xNTEsNiArMTUxLDQzIEBAIHB1YmxpYzoKICAgICAgICAgc3RvcmU4KHJlZywg
QWRkcmVzcyhzY3JhdGNoUmVnaXN0ZXIpKTsKICAgICB9CiAKKyNpZiBPUyhXSU5ET1dTKQorICAg
IENhbGwgY2FsbFNsb3dQYXRoKCkKKyAgICB7CisgICAgICAgIC8vIE9uIFdpbjY0LCB3aGVuIHRo
ZSByZXR1cm4gdHlwZSBpcyBsYXJnZXIgdGhhbiA4IGJ5dGVzLCB3ZSBuZWVkIHRvIGFsbG9jYXRl
IHNwYWNlIG9uIHRoZSBzdGFjayBmb3IgdGhlIHJldHVybiB2YWx1ZS4KKyAgICAgICAgLy8gT24g
ZW50cnksIHJjeCBzaG91bGQgY29udGFpbiBhIHBvaW50ZXIgdG8gdGhpcyBzdGFjayBzcGFjZS4g
VGhlIG90aGVyIHBhcmFtZXRlcnMgYXJlIHNoaWZ0ZWQgdG8gdGhlIHJpZ2h0LAorICAgICAgICAv
LyByZHggc2hvdWxkIGNvbnRhaW4gdGhlIGZpcnN0IGFyZ3VtZW50LCByOCBzaG91bGQgY29udGFp
biB0aGUgc2Vjb25kIGFyZ3VtZW50LCBhbmQgcjkgc2hvdWxkIGNvbnRhaW4gdGhlIHRoaXJkIGFy
Z3VtZW50LgorICAgICAgICAvLyBPbiByZXR1cm4sIHJheCBjb250YWlucyBhIHBvaW50ZXIgdG8g
dGhpcyBzdGFjayB2YWx1ZS4gU2VlIGh0dHA6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGli
cmFyeS83NTcyenR6NC5hc3B4LgorICAgICAgICAvLyBXZSB0aGVuIG5lZWQgdG8gY29weSB0aGUg
MTYgYnl0ZSByZXR1cm4gdmFsdWUgaW50byByYXggYW5kIHJkeCwgc2luY2UgSklUIGV4cGVjdHMg
dGhlIHJldHVybiB2YWx1ZSB0byBiZSBzcGxpdCBiZXR3ZWVuIHRoZSB0d28uCisgICAgICAgIC8v
IE5vdGU6IHRoaXMgaW1wbGVtZW50YXRpb24gc3VwcG9ydHMgdXAgdG8gMyBwYXJhbWV0ZXJzLgor
CisgICAgICAgIC8vIFNoaWZ0IHRoZSBwYXJhbWV0ZXJzIHRvIHRoZSByaWdodC4KKyAgICAgICAg
bW92ZShYODZSZWdpc3RlcnM6OnI4LCBYODZSZWdpc3RlcnM6OnI5KTsKKyAgICAgICAgbW92ZShY
ODZSZWdpc3RlcnM6OmVkeCwgWDg2UmVnaXN0ZXJzOjpyOCk7CisgICAgICAgIG1vdmUoWDg2UmVn
aXN0ZXJzOjplY3gsIFg4NlJlZ2lzdGVyczo6ZWR4KTsKKworICAgICAgICAvLyBXZSBhbHNvIG5l
ZWQgdG8gYWxsb2NhdGUgdGhlIHNoYWRvdyBzcGFjZSBvbiB0aGUgc3RhY2sgZm9yIHRoZSA0IHBh
cmFtZXRlciByZWdpc3RlcnMuCisgICAgICAgIC8vIEluIGFkZGl0aW9uLCB3ZSBuZWVkIHRvIGFs
bG9jYXRlIDE2IGJ5dGVzIGZvciB0aGUgcmV0dXJuIHZhbHVlLgorICAgICAgICBzdWI2NChUcnVz
dGVkSW1tMzIoNiAqIHNpemVvZihpbnQ2NF90KSksIFg4NlJlZ2lzdGVyczo6ZXNwKTsKKworICAg
ICAgICAvLyBUaGUgZmlyc3QgcGFyYW1ldGVyIHJlZ2lzdGVyIHNob3VsZCBjb250YWluIGEgcG9p
bnRlciB0byB0aGUgc3RhY2sgYWxsb2NhdGVkIHNwYWNlIGZvciB0aGUgcmV0dXJuIHZhbHVlLgor
ICAgICAgICBtb3ZlKFg4NlJlZ2lzdGVyczo6ZXNwLCBYODZSZWdpc3RlcnM6OmVjeCk7CisgICAg
ICAgIGFkZDY0KFRydXN0ZWRJbW0zMig0ICogc2l6ZW9mKGludDY0X3QpKSwgWDg2UmVnaXN0ZXJz
OjplY3gpOworCisgICAgICAgIERhdGFMYWJlbFB0ciBsYWJlbCA9IG1vdmVXaXRoUGF0Y2goVHJ1
c3RlZEltbVB0cigwKSwgc2NyYXRjaFJlZ2lzdGVyKTsKKyAgICAgICAgQ2FsbCByZXN1bHQgPSBD
YWxsKG1fYXNzZW1ibGVyLmNhbGwoc2NyYXRjaFJlZ2lzdGVyKSwgQ2FsbDo6TGlua2FibGUpOwor
CisgICAgICAgIGFkZDY0KFRydXN0ZWRJbW0zMig2ICogc2l6ZW9mKGludDY0X3QpKSwgWDg2UmVn
aXN0ZXJzOjplc3ApOworCisgICAgICAgIC8vIENvcHkgdGhlIHJldHVybiB2YWx1ZSBpbnRvIHJh
eCBhbmQgcmR4LgorICAgICAgICBsb2FkNjQoQWRkcmVzcyhYODZSZWdpc3RlcnM6OmVheCwgc2l6
ZW9mKGludDY0X3QpKSwgWDg2UmVnaXN0ZXJzOjplZHgpOworICAgICAgICBsb2FkNjQoQWRkcmVz
cyhYODZSZWdpc3RlcnM6OmVheCksIFg4NlJlZ2lzdGVyczo6ZWF4KTsKKworICAgICAgICBBU1NF
UlRfVU5VU0VEKGxhYmVsLCBkaWZmZXJlbmNlQmV0d2VlbihsYWJlbCwgcmVzdWx0KSA9PSBSRVBU
QUNIX09GRlNFVF9DQUxMX1IxMSk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorI2Vu
ZGlmCisKICAgICBDYWxsIGNhbGwoKQogICAgIHsKICNpZiBPUyhXSU5ET1dTKQpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5oCShyZXZpc2lvbiAxNzA4NDUpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5oCSh3b3JraW5nIGNvcHkp
CkBAIC03OTgsMTQgKzc5OCwyNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgQUxXQVlTX0lOTElORSB2
b2lkIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShGUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIp
CiAgICAgeworI2lmIE9TKFdJTkRPV1MpCisgICAgICAgIC8vIE9uIFdpbmRvd3MsIGFuIGFyZ3Vt
ZW50IG1hcHMgdG8gdGhlIHNhbWUgcmVnaXN0ZXIgKGJhc2VkIG9uIGl0cyBwb3NpdGlvbiksIGV2
ZW4gd2hlbiB0aGVyZSBhcmUgZmxvYXRpbmcgcG9pbnQgYXJndW1lbnRzLgorICAgICAgICAvLyBT
ZWUgaHR0cDovL21zZG4ubWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5L3p0aGsyZGtoLmFzcHgK
KyAgICAgICAgbW92ZURvdWJsZShhcmcxLCBGUFJJbmZvOjphcmd1bWVudEZQUjEpOworICAgICAg
ICBtb3ZlKGFyZzIsIEdQUkluZm86OmFyZ3VtZW50R1BSMik7CisjZWxzZQogICAgICAgICBtb3Zl
RG91YmxlKGFyZzEsIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CiAgICAgICAgIG1vdmUoYXJnMiwg
R1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKKyNlbmRpZgogICAgICAgICBtb3ZlKEdQUkluZm86OmNh
bGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIH0KIAogICAgIEFM
V0FZU19JTkxJTkUgdm9pZCBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoR1BSUmVnIGFyZzEs
IEdQUlJlZyBhcmcyLCBGUFJSZWcgYXJnMykKICAgICB7CisjaWYgT1MoV0lORE9XUykKKyAgICAg
ICAgLy8gT24gV2luZG93cywgYW4gYXJndW1lbnQgbWFwcyB0byB0aGUgc2FtZSByZWdpc3RlciAo
YmFzZWQgb24gaXRzIHBvc2l0aW9uKSwgZXZlbiB3aGVuIHRoZXJlIGFyZSBmbG9hdGluZyBwb2lu
dCBhcmd1bWVudHMuCisgICAgICAgIC8vIFNlZSBodHRwOi8vbXNkbi5taWNyb3NvZnQuY29tL2Vu
LXVzL2xpYnJhcnkvNzU3Mnp0ejQuYXNweAorICAgICAgICBtb3ZlRG91YmxlKGFyZzMsIEZQUklu
Zm86OmFyZ3VtZW50RlBSMyk7CisjZWxzZQogICAgICAgICBtb3ZlRG91YmxlKGFyZzMsIEZQUklu
Zm86OmFyZ3VtZW50RlBSMCk7CisjZW5kaWYKICAgICAgICAgc2V0dXBTdHViQXJndW1lbnRzKGFy
ZzEsIGFyZzIpOwogICAgICAgICBtb3ZlKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjApOwogICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklULmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAko
cmV2aXNpb24gMTcwODQ1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAkod29y
a2luZyBjb3B5KQpAQCAtMjY0LDYgKzI2NCwxNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
ICAgIHJldHVybiBmdW5jdGlvbkNhbGw7CiAgICAgICAgIH0KIAorICAgICAgICBDYWxsIGFwcGVu
ZFNsb3dQYXRoQ2FsbChjb25zdCBGdW5jdGlvblB0ciYgZnVuY3Rpb24pCisgICAgICAgIHsKKyNp
ZiBQTEFURk9STShXSU4pICYmIENQVShYODZfNjQpCisgICAgICAgICAgICBDYWxsIGZ1bmN0aW9u
Q2FsbCA9IGNhbGxTbG93UGF0aCgpOworI2Vsc2UKKyAgICAgICAgICAgIENhbGwgZnVuY3Rpb25D
YWxsID0gY2FsbCgpOworI2VuZGlmCisgICAgICAgICAgICBtX2NhbGxzLmFwcGVuZChDYWxsUmVj
b3JkKGZ1bmN0aW9uQ2FsbCwgbV9ieXRlY29kZU9mZnNldCwgZnVuY3Rpb24udmFsdWUoKSkpOwor
ICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uQ2FsbDsKKyAgICAgICAgfQorCiAgICAgICAgIHZv
aWQgZXhjZXB0aW9uQ2hlY2soSnVtcCBqdW1wVG9IYW5kbGVyKQogICAgICAgICB7CiAgICAgICAg
ICAgICBtX2V4Y2VwdGlvbkNoZWNrcy5hcHBlbmQoanVtcFRvSGFuZGxlcik7CkBAIC02NDgsNiAr
NjU5LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZvaWQgbGlua1Nsb3dDYXNlSWZOb3RK
U0NlbGwoVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYsIGludCB2aXJ0dWFsUmVnaXN0
ZXJJbmRleCk7CiAKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgYXBwZW5kQ2FsbFdpdGhF
eGNlcHRpb25DaGVjayhjb25zdCBGdW5jdGlvblB0ciYpOworICAgICAgICBNYWNyb0Fzc2VtYmxl
cjo6Q2FsbCBhcHBlbmRTbG93UGF0aENhbGxXaXRoRXhjZXB0aW9uQ2hlY2soY29uc3QgRnVuY3Rp
b25QdHImKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgYXBwZW5kQ2FsbFdpdGhDYWxs
RnJhbWVSb2xsYmFja09uRXhjZXB0aW9uKGNvbnN0IEZ1bmN0aW9uUHRyJik7CiAgICAgICAgIE1h
Y3JvQXNzZW1ibGVyOjpDYWxsIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2tTZXRKU1ZhbHVl
UmVzdWx0KGNvbnN0IEZ1bmN0aW9uUHRyJiwgaW50KTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6
OkNhbGwgYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVja1NldEpTVmFsdWVSZXN1bHRXaXRoUHJv
ZmlsZShjb25zdCBGdW5jdGlvblB0ciYsIGludCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVElubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVElubGluZXMuaAkocmV2aXNpb24gMTcwODQ1KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRJbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTExOCw2ICsxMTgsMTQgQEAg
QUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OgogICAgIHJldHVybiBjYWxs
OwogfQogCitBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6YXBwZW5kU2xv
d1BhdGhDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKGNvbnN0IEZ1bmN0aW9uUHRyJiBmdW5jdGlvbikK
K3sKKyAgICB1cGRhdGVUb3BDYWxsRnJhbWUoKTsKKyAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBj
YWxsID0gYXBwZW5kU2xvd1BhdGhDYWxsKGZ1bmN0aW9uKTsKKyAgICBleGNlcHRpb25DaGVjaygp
OworICAgIHJldHVybiBjYWxsOworfQorCiBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpD
YWxsIEpJVDo6YXBwZW5kQ2FsbFdpdGhDYWxsRnJhbWVSb2xsYmFja09uRXhjZXB0aW9uKGNvbnN0
IEZ1bmN0aW9uUHRyJiBmdW5jdGlvbikKIHsKICAgICB1cGRhdGVUb3BDYWxsRnJhbWUoKTsgLy8g
VGhlIGNhbGxlZSBpcyByZXNwb25zaWJsZSBmb3Igc2V0dGluZyB0b3BDYWxsRnJhbWUgdG8gdGhl
aXIgY2FsbGVyCkBAIC0yMzYsNyArMjQ0LDcgQEAgQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxl
cjo6Q2FsbCBKSVQ6OgogQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNh
bGxPcGVyYXRpb24oU3BydF9KSVRPcGVyYXRpb25fRVogb3BlcmF0aW9uLCBpbnQzMl90IG9wKQog
ewogICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShUcnVzdGVkSW1tMzIob3ApKTsKLSAg
ICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRpb24pOworICAgIHJl
dHVybiBhcHBlbmRTbG93UGF0aENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKIH0K
IAogQUxXQVlTX0lOTElORSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24o
Vl9KSVRPcGVyYXRpb25fRSBvcGVyYXRpb24pCkluZGV4OiBTb3VyY2UvV1RGL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL0NoYW5nZUxvZwkocmV2aXNpb24gMTcwODQ1KQorKysg
U291cmNlL1dURi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMiBAQAorMjAx
NC0wNy0wNyAgcGVhdm9Ab3V0bG9vay5jb20gIDxwZWF2b0BvdXRsb29rLmNvbT4KKworICAgICAg
ICBbV2luXSBFbmFibGUgREZHIEpJVC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEyMzYxNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogd3RmL1BsYXRmb3JtLmg6CisKIDIwMTQtMDctMDcgIFphbiBEb2Jl
cnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgogCiAgICAgICAgIEVuYWJsZSBBUk12NyBkaXNh
c3NlbWJsZXIgZm9yIHRoZSBHVEsgcG9ydApJbmRleDogU291cmNlL1dURi93dGYvUGxhdGZvcm0u
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCShyZXZpc2lvbiAxNzA4
NDUpCisrKyBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCSh3b3JraW5nIGNvcHkpCkBAIC02OTUs
OSArNjk1LDkgQEAKICNkZWZpbmUgRU5BQkxFX0RJU0FTU0VNQkxFUiAxCiAjZW5kaWYKIAotI2lm
ICFkZWZpbmVkKEVOQUJMRV9ERkdfSklUKSAmJiBFTkFCTEUoSklUKSAmJiAhQ09NUElMRVIoTVNW
QykKLS8qIEVuYWJsZSB0aGUgREZHIEpJVCBvbiBYODYgYW5kIFg4Nl82NC4gIE9ubHkgdGVzdGVk
IG9uIE1hYywgR05VL0xpbnV4IGFuZCBGcmVlQlNELiAqLwotI2lmIChDUFUoWDg2KSB8fCBDUFUo
WDg2XzY0KSkgJiYgKE9TKERBUldJTikgfHwgT1MoTElOVVgpIHx8IE9TKEZSRUVCU0QpKQorI2lm
ICFkZWZpbmVkKEVOQUJMRV9ERkdfSklUKSAmJiBFTkFCTEUoSklUKQorLyogRW5hYmxlIHRoZSBE
RkcgSklUIG9uIFg4NiBhbmQgWDg2XzY0LiAqLworI2lmIChDUFUoWDg2KSB8fCBDUFUoWDg2XzY0
KSkgJiYgKE9TKERBUldJTikgfHwgT1MoTElOVVgpIHx8IE9TKEZSRUVCU0QpIHx8IE9TKFdJTkRP
V1MpKQogI2RlZmluZSBFTkFCTEVfREZHX0pJVCAxCiAjZW5kaWYKIC8qIEVuYWJsZSB0aGUgREZH
IEpJVCBvbiBBUk12Ny4gIE9ubHkgdGVzdGVkIG9uIGlPUyBhbmQgUXQvR1RLKyBMaW51eC4gKi8K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>234647</attachid>
            <date>2014-07-09 11:22:03 -0700</date>
            <delta_ts>2014-07-11 08:55:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-123615-20140709202143.patch</filename>
            <type>text/plain</type>
            <size>10008</size>
            <attacher>peavo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTcwOTIwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBA
CisyMDE0LTA3LTA5ICBwZWF2b0BvdXRsb29rLmNvbSAgPHBlYXZvQG91dGxvb2suY29tPgorCisg
ICAgICAgIFtXaW5dIEVuYWJsZSBERkcgSklULgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzNjE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgV2hlbiB0aGUgcmV0dXJuIHR5cGUgb2YgYSBKSVQgZ2VuZXJh
dGVkIGZ1bmN0aW9uIGNhbGwgaXMgbGFyZ2VyIHRoYW4gNjQtYml0IChlLmcuIFNsb3dQYXRoUmV0
dXJuVHlwZSksCisgICAgICAgIHRoZSBub3JtYWwgY2FsbCgpIGltcGxlbWVudGF0aW9uIGNhbm5v
dCBiZSB1c2VkIG9uIDY0LWJpdCBXaW5kb3dzLCBiZWNhdXNlIHRoZSA2NC1iaXQgV2luZG93cyBB
QkkgaXMgZGlmZmVyZW50IGluIHRoaXMgY2FzZS4KKyAgICAgICAgQWxzbywgd2hlbiBnZW5lcmF0
aW5nIGNhbGxzIHdpdGggZG91YmxlIGFyZ3VtZW50cywgd2UgbmVlZCB0byBtYWtlIHN1cmUgdGhl
IGFyZ3VtZW50cyBhcmUgcHV0IGluIHRoZSBjb3JyZWN0IHJlZ2lzdGVycywKKyAgICAgICAgc2lu
Y2UgdGhlIHJlZ2lzdGVyIGFsbG9jYXRpb24gZGlmZmVycyBvbiA2NC1iaXQgV2luZG93cy4KKwor
ICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oOgorICAgICAgICAoSlND
OjpNYWNyb0Fzc2VtYmxlclg4Nl82NDo6Y2FsbFNsb3dQYXRoUmV0dXJuVHlwZSk6IEFkZGVkIG1l
dGhvZCB0byBoYW5kbGUgZnVuY3Rpb24gY2FsbHMgd2hlcmUgdGhlIHJldHVybiB2YWx1ZSB0eXBl
IHNpemUgaXMgbGFyZ2VyIHRoYW4gNjQtYml0LgorICAgICAgICAqIGppdC9DQ2FsbEhlbHBlcnMu
aDoKKyAgICAgICAgKEpTQzo6Q0NhbGxIZWxwZXJzOjpzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3Rh
dGUpOiBNb3ZlIGFyZ3VtZW50cyB0byBjb3JyZWN0IHJlZ2lzdGVycyB3aGVuIHRoZXJlIGFyZSBm
bG9hdGluZyBwb2ludCBhcmd1bWVudHMuCisgICAgICAgIChKU0M6OkNDYWxsSGVscGVyczo6c2V0
dXBBcmd1bWVudHNTbG93UGF0aFJldHVyblR5cGVDYWxsV2l0aEV4ZWNTdGF0ZSk6IEFkZGVkIG1l
dGhvZC4KKyAgICAgICAgKiBqaXQvSklULmg6CisgICAgICAgIChKU0M6OkpJVDo6YXBwZW5kU2xv
d1BhdGhSZXR1cm5UeXBlQ2FsbCk6IEFkZGVkIG1ldGhvZC4KKyAgICAgICAgKiBqaXQvSklUSW5s
aW5lcy5oOgorICAgICAgICAoSlNDOjpKSVQ6OmFwcGVuZFNsb3dQYXRoUmV0dXJuVHlwZUNhbGxX
aXRoRXhjZXB0aW9uQ2hlY2spOiBBZGRlZCBtZXRob2QuCisgICAgICAgIChKU0M6OkpJVDo6Y2Fs
bE9wZXJhdGlvbik6IENhbGwgbmV3IG1ldGhvZC4KKwogMjAxNC0wNy0wOCAgQmVuamFtaW4gUG91
bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVzdG9yZSB0aGUgYXNzZXJ0
aW9uIGNoYW5nZWQgd2l0aCAxNzA4MzkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0LmgJKHJldmlzaW9uIDE3MDkx
NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZf
NjQuaAkod29ya2luZyBjb3B5KQpAQCAtMTUxLDYgKzE1MSwzOSBAQCBwdWJsaWM6CiAgICAgICAg
IHN0b3JlOChyZWcsIEFkZHJlc3Moc2NyYXRjaFJlZ2lzdGVyKSk7CiAgICAgfQogCisjaWYgT1Mo
V0lORE9XUykKKyAgICBDYWxsIGNhbGxTbG93UGF0aFJldHVyblR5cGUoKQorICAgIHsKKyAgICAg
ICAgLy8gT24gV2luNjQsIHdoZW4gdGhlIHJldHVybiB0eXBlIGlzIGxhcmdlciB0aGFuIDggYnl0
ZXMsIHdlIG5lZWQgdG8gYWxsb2NhdGUgc3BhY2Ugb24gdGhlIHN0YWNrIGZvciB0aGUgcmV0dXJu
IHZhbHVlLgorICAgICAgICAvLyBPbiBlbnRyeSwgcmN4IHNob3VsZCBjb250YWluIGEgcG9pbnRl
ciB0byB0aGlzIHN0YWNrIHNwYWNlLiBUaGUgb3RoZXIgcGFyYW1ldGVycyBhcmUgc2hpZnRlZCB0
byB0aGUgcmlnaHQsCisgICAgICAgIC8vIHJkeCBzaG91bGQgY29udGFpbiB0aGUgZmlyc3QgYXJn
dW1lbnQsIHI4IHNob3VsZCBjb250YWluIHRoZSBzZWNvbmQgYXJndW1lbnQsIGFuZCByOSBzaG91
bGQgY29udGFpbiB0aGUgdGhpcmQgYXJndW1lbnQuCisgICAgICAgIC8vIE9uIHJldHVybiwgcmF4
IGNvbnRhaW5zIGEgcG9pbnRlciB0byB0aGlzIHN0YWNrIHZhbHVlLiBTZWUgaHR0cDovL21zZG4u
bWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5Lzc1NzJ6dHo0LmFzcHguCisgICAgICAgIC8vIFdl
IHRoZW4gbmVlZCB0byBjb3B5IHRoZSAxNiBieXRlIHJldHVybiB2YWx1ZSBpbnRvIHJheCBhbmQg
cmR4LCBzaW5jZSBKSVQgZXhwZWN0cyB0aGUgcmV0dXJuIHZhbHVlIHRvIGJlIHNwbGl0IGJldHdl
ZW4gdGhlIHR3by4KKyAgICAgICAgLy8gSXQgaXMgYXNzdW1lZCB0aGF0IHRoZSBwYXJhbWV0ZXJz
IGFyZSBhbHJlYWR5IHNoaWZ0ZWQgdG8gdGhlIHJpZ2h0LCB3aGVuIGVudGVyaW5nIHRoaXMgbWV0
aG9kLgorICAgICAgICAvLyBOb3RlOiB0aGlzIGltcGxlbWVudGF0aW9uIHN1cHBvcnRzIHVwIHRv
IDMgcGFyYW1ldGVycy4KKworICAgICAgICAvLyBXZSBhbHNvIG5lZWQgdG8gYWxsb2NhdGUgdGhl
IHNoYWRvdyBzcGFjZSBvbiB0aGUgc3RhY2sgZm9yIHRoZSA0IHBhcmFtZXRlciByZWdpc3RlcnMu
CisgICAgICAgIC8vIEluIGFkZGl0aW9uLCB3ZSBuZWVkIHRvIGFsbG9jYXRlIDE2IGJ5dGVzIGZv
ciB0aGUgcmV0dXJuIHZhbHVlLgorICAgICAgICBzdWI2NChUcnVzdGVkSW1tMzIoNiAqIHNpemVv
ZihpbnQ2NF90KSksIFg4NlJlZ2lzdGVyczo6ZXNwKTsKKworICAgICAgICAvLyBUaGUgZmlyc3Qg
cGFyYW1ldGVyIHJlZ2lzdGVyIHNob3VsZCBjb250YWluIGEgcG9pbnRlciB0byB0aGUgc3RhY2sg
YWxsb2NhdGVkIHNwYWNlIGZvciB0aGUgcmV0dXJuIHZhbHVlLgorICAgICAgICBtb3ZlKFg4NlJl
Z2lzdGVyczo6ZXNwLCBYODZSZWdpc3RlcnM6OmVjeCk7CisgICAgICAgIGFkZDY0KFRydXN0ZWRJ
bW0zMig0ICogc2l6ZW9mKGludDY0X3QpKSwgWDg2UmVnaXN0ZXJzOjplY3gpOworCisgICAgICAg
IERhdGFMYWJlbFB0ciBsYWJlbCA9IG1vdmVXaXRoUGF0Y2goVHJ1c3RlZEltbVB0cigwKSwgc2Ny
YXRjaFJlZ2lzdGVyKTsKKyAgICAgICAgQ2FsbCByZXN1bHQgPSBDYWxsKG1fYXNzZW1ibGVyLmNh
bGwoc2NyYXRjaFJlZ2lzdGVyKSwgQ2FsbDo6TGlua2FibGUpOworCisgICAgICAgIGFkZDY0KFRy
dXN0ZWRJbW0zMig2ICogc2l6ZW9mKGludDY0X3QpKSwgWDg2UmVnaXN0ZXJzOjplc3ApOworCisg
ICAgICAgIC8vIENvcHkgdGhlIHJldHVybiB2YWx1ZSBpbnRvIHJheCBhbmQgcmR4LgorICAgICAg
ICBsb2FkNjQoQWRkcmVzcyhYODZSZWdpc3RlcnM6OmVheCwgc2l6ZW9mKGludDY0X3QpKSwgWDg2
UmVnaXN0ZXJzOjplZHgpOworICAgICAgICBsb2FkNjQoQWRkcmVzcyhYODZSZWdpc3RlcnM6OmVh
eCksIFg4NlJlZ2lzdGVyczo6ZWF4KTsKKworICAgICAgICBBU1NFUlRfVU5VU0VEKGxhYmVsLCBk
aWZmZXJlbmNlQmV0d2VlbihsYWJlbCwgcmVzdWx0KSA9PSBSRVBUQUNIX09GRlNFVF9DQUxMX1Ix
MSk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorI2VuZGlmCisKICAgICBDYWxsIGNh
bGwoKQogICAgIHsKICNpZiBPUyhXSU5ET1dTKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9DQ2FsbEhlbHBlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0NDYWxsSGVscGVycy5oCShyZXZpc2lvbiAxNzA5MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0NDYWxsSGVscGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC03OTgsMTQgKzc5OCwy
NyBAQCBwdWJsaWM6CiAgICAgCiAgICAgQUxXQVlTX0lOTElORSB2b2lkIHNldHVwQXJndW1lbnRz
V2l0aEV4ZWNTdGF0ZShGUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIpCiAgICAgeworI2lmIE9TKFdJ
TkRPV1MpICYmIENQVShYODZfNjQpCisgICAgICAgIC8vIE9uIFdpbmRvd3MsIGFuIGFyZ3VtZW50
IG1hcHMgdG8gdGhlIHNhbWUgcmVnaXN0ZXIgKGJhc2VkIG9uIGl0cyBwb3NpdGlvbiksIGV2ZW4g
d2hlbiB0aGVyZSBhcmUgZmxvYXRpbmcgcG9pbnQgYXJndW1lbnRzLgorICAgICAgICAvLyBTZWUg
aHR0cDovL21zZG4ubWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5L3p0aGsyZGtoLmFzcHgKKyAg
ICAgICAgbW92ZURvdWJsZShhcmcxLCBGUFJJbmZvOjphcmd1bWVudEZQUjEpOworICAgICAgICBt
b3ZlKGFyZzIsIEdQUkluZm86OmFyZ3VtZW50R1BSMik7CisjZWxzZQogICAgICAgICBtb3ZlRG91
YmxlKGFyZzEsIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CiAgICAgICAgIG1vdmUoYXJnMiwgR1BS
SW5mbzo6YXJndW1lbnRHUFIxKTsKKyNlbmRpZgogICAgICAgICBtb3ZlKEdQUkluZm86OmNhbGxG
cmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIH0KIAogICAgIEFMV0FZ
U19JTkxJTkUgdm9pZCBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoR1BSUmVnIGFyZzEsIEdQ
UlJlZyBhcmcyLCBGUFJSZWcgYXJnMykKICAgICB7CisjaWYgT1MoV0lORE9XUykgJiYgQ1BVKFg4
Nl82NCkKKyAgICAgICAgLy8gT24gV2luZG93cywgYW4gYXJndW1lbnQgbWFwcyB0byB0aGUgc2Ft
ZSByZWdpc3RlciAoYmFzZWQgb24gaXRzIHBvc2l0aW9uKSwgZXZlbiB3aGVuIHRoZXJlIGFyZSBm
bG9hdGluZyBwb2ludCBhcmd1bWVudHMuCisgICAgICAgIC8vIFNlZSBodHRwOi8vbXNkbi5taWNy
b3NvZnQuY29tL2VuLXVzL2xpYnJhcnkvNzU3Mnp0ejQuYXNweAorICAgICAgICBtb3ZlRG91Ymxl
KGFyZzMsIEZQUkluZm86OmFyZ3VtZW50RlBSMyk7CisjZWxzZQogICAgICAgICBtb3ZlRG91Ymxl
KGFyZzMsIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CisjZW5kaWYKICAgICAgICAgc2V0dXBTdHVi
QXJndW1lbnRzKGFyZzEsIGFyZzIpOwogICAgICAgICBtb3ZlKEdQUkluZm86OmNhbGxGcmFtZVJl
Z2lzdGVyLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIH0KQEAgLTEwNjEsNiArMTA3NCwx
NCBAQCBwdWJsaWM6CiAgICAgICAgIG1vdmUoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQ
UkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgfQogCisjaWYgT1MoV0lORE9XUykgJiYgQ1BVKFg4
Nl82NCkKKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHNTbG93UGF0aFJldHVy
blR5cGVDYWxsV2l0aEV4ZWNTdGF0ZShUcnVzdGVkSW1tMzIgYXJnMSkKKyAgICB7CisgICAgICAg
IG1vdmUoYXJnMSwgR1BSSW5mbzo6YXJndW1lbnRHUFIyKTsKKyAgICAgICAgbW92ZShHUFJJbmZv
OjpjYWxsRnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKKyAgICB9CisjZW5k
aWYKKwogICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUo
R1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcyKQogICAgIHsKICAgICAgICAgc2V0dXBTdHViQXJndW1l
bnRzKGFyZzEsIGFyZzIpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCShyZXZpc2lvbiAx
NzA5MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yNjQsNiArMjY0LDE1IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgcmV0dXJu
IGZ1bmN0aW9uQ2FsbDsKICAgICAgICAgfQogCisjaWYgT1MoV0lORE9XUykgJiYgQ1BVKFg4Nl82
NCkKKyAgICAgICAgQ2FsbCBhcHBlbmRTbG93UGF0aFJldHVyblR5cGVDYWxsKGNvbnN0IEZ1bmN0
aW9uUHRyJiBmdW5jdGlvbikKKyAgICAgICAgeworICAgICAgICAgICAgQ2FsbCBmdW5jdGlvbkNh
bGwgPSBjYWxsU2xvd1BhdGhSZXR1cm5UeXBlKCk7CisgICAgICAgICAgICBtX2NhbGxzLmFwcGVu
ZChDYWxsUmVjb3JkKGZ1bmN0aW9uQ2FsbCwgbV9ieXRlY29kZU9mZnNldCwgZnVuY3Rpb24udmFs
dWUoKSkpOworICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uQ2FsbDsKKyAgICAgICAgfQorI2Vu
ZGlmCisKICAgICAgICAgdm9pZCBleGNlcHRpb25DaGVjayhKdW1wIGp1bXBUb0hhbmRsZXIpCiAg
ICAgICAgIHsKICAgICAgICAgICAgIG1fZXhjZXB0aW9uQ2hlY2tzLmFwcGVuZChqdW1wVG9IYW5k
bGVyKTsKQEAgLTY0OCw2ICs2NTcsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBs
aW5rU2xvd0Nhc2VJZk5vdEpTQ2VsbChWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiwg
aW50IHZpcnR1YWxSZWdpc3RlckluZGV4KTsKIAogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2Fs
bCBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKGNvbnN0IEZ1bmN0aW9uUHRyJik7CisjaWYg
T1MoV0lORE9XUykgJiYgQ1BVKFg4Nl82NCkKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwg
YXBwZW5kU2xvd1BhdGhSZXR1cm5UeXBlQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhjb25zdCBGdW5j
dGlvblB0ciYpOworI2VuZGlmCiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGFwcGVuZENh
bGxXaXRoQ2FsbEZyYW1lUm9sbGJhY2tPbkV4Y2VwdGlvbihjb25zdCBGdW5jdGlvblB0ciYpOwog
ICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNr
U2V0SlNWYWx1ZVJlc3VsdChjb25zdCBGdW5jdGlvblB0ciYsIGludCk7CiAgICAgICAgIE1hY3Jv
QXNzZW1ibGVyOjpDYWxsIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2tTZXRKU1ZhbHVlUmVz
dWx0V2l0aFByb2ZpbGUoY29uc3QgRnVuY3Rpb25QdHImLCBpbnQpOwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgJKHJldmlzaW9uIDE3MDkxNSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTgsNiAr
MTE4LDE2IEBAIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjoKICAgICBy
ZXR1cm4gY2FsbDsKIH0KIAorI2lmIE9TKFdJTkRPV1MpICYmIENQVShYODZfNjQpCitBTFdBWVNf
SU5MSU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6YXBwZW5kU2xvd1BhdGhSZXR1cm5UeXBl
Q2FsbFdpdGhFeGNlcHRpb25DaGVjayhjb25zdCBGdW5jdGlvblB0ciYgZnVuY3Rpb24pCit7Cisg
ICAgdXBkYXRlVG9wQ2FsbEZyYW1lKCk7CisgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbCA9
IGFwcGVuZFNsb3dQYXRoUmV0dXJuVHlwZUNhbGwoZnVuY3Rpb24pOworICAgIGV4Y2VwdGlvbkNo
ZWNrKCk7CisgICAgcmV0dXJuIGNhbGw7Cit9CisjZW5kaWYKKwogQUxXQVlTX0lOTElORSBNYWNy
b0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OmFwcGVuZENhbGxXaXRoQ2FsbEZyYW1lUm9sbGJhY2tPbkV4
Y2VwdGlvbihjb25zdCBGdW5jdGlvblB0ciYgZnVuY3Rpb24pCiB7CiAgICAgdXBkYXRlVG9wQ2Fs
bEZyYW1lKCk7IC8vIFRoZSBjYWxsZWUgaXMgcmVzcG9uc2libGUgZm9yIHNldHRpbmcgdG9wQ2Fs
bEZyYW1lIHRvIHRoZWlyIGNhbGxlcgpAQCAtMjM1LDggKzI0NSwxMyBAQCBBTFdBWVNfSU5MSU5F
IE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6CiAKIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJs
ZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKFNwcnRfSklUT3BlcmF0aW9uX0VaIG9wZXJhdGlv
biwgaW50MzJfdCBvcCkKIHsKKyNpZiBPUyhXSU5ET1dTKSAmJiBDUFUoWDg2XzY0KQorICAgIHNl
dHVwQXJndW1lbnRzU2xvd1BhdGhSZXR1cm5UeXBlQ2FsbFdpdGhFeGVjU3RhdGUoVHJ1c3RlZElt
bTMyKG9wKSk7CisgICAgcmV0dXJuIGFwcGVuZFNsb3dQYXRoUmV0dXJuVHlwZUNhbGxXaXRoRXhj
ZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKKyNlbHNlCiAgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhl
Y1N0YXRlKFRydXN0ZWRJbW0zMihvcCkpOwogICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2Vw
dGlvbkNoZWNrKG9wZXJhdGlvbik7CisjZW5kaWYKIH0KIAogQUxXQVlTX0lOTElORSBNYWNyb0Fz
c2VtYmxlcjo6Q2FsbCBKSVQ6OmNhbGxPcGVyYXRpb24oVl9KSVRPcGVyYXRpb25fRSBvcGVyYXRp
b24pCkluZGV4OiBTb3VyY2UvV1RGL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RG
L0NoYW5nZUxvZwkocmV2aXNpb24gMTcwOTE1KQorKysgU291cmNlL1dURi9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwxMiBAQAorMjAxNC0wNy0wOSAgcGVhdm9Ab3V0bG9vay5j
b20gIDxwZWF2b0BvdXRsb29rLmNvbT4KKworICAgICAgICBbV2luXSBFbmFibGUgREZHIEpJVC4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMzYxNQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL1Bs
YXRmb3JtLmg6CisKIDIwMTQtMDctMDcgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEu
Y29tPgogCiAgICAgICAgIEVuYWJsZSBBUk12NyBkaXNhc3NlbWJsZXIgZm9yIHRoZSBHVEsgcG9y
dApJbmRleDogU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V1RGL3d0Zi9QbGF0Zm9ybS5oCShyZXZpc2lvbiAxNzA5MTUpCisrKyBTb3VyY2UvV1RGL3d0Zi9Q
bGF0Zm9ybS5oCSh3b3JraW5nIGNvcHkpCkBAIC02OTUsOSArNjk1LDkgQEAKICNkZWZpbmUgRU5B
QkxFX0RJU0FTU0VNQkxFUiAxCiAjZW5kaWYKIAotI2lmICFkZWZpbmVkKEVOQUJMRV9ERkdfSklU
KSAmJiBFTkFCTEUoSklUKSAmJiAhQ09NUElMRVIoTVNWQykKLS8qIEVuYWJsZSB0aGUgREZHIEpJ
VCBvbiBYODYgYW5kIFg4Nl82NC4gIE9ubHkgdGVzdGVkIG9uIE1hYywgR05VL0xpbnV4IGFuZCBG
cmVlQlNELiAqLwotI2lmIChDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KSkgJiYgKE9TKERBUldJTikg
fHwgT1MoTElOVVgpIHx8IE9TKEZSRUVCU0QpKQorI2lmICFkZWZpbmVkKEVOQUJMRV9ERkdfSklU
KSAmJiBFTkFCTEUoSklUKQorLyogRW5hYmxlIHRoZSBERkcgSklUIG9uIFg4NiBhbmQgWDg2XzY0
LiAqLworI2lmIChDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KSkgJiYgKE9TKERBUldJTikgfHwgT1Mo
TElOVVgpIHx8IE9TKEZSRUVCU0QpIHx8IE9TKFdJTkRPV1MpKQogI2RlZmluZSBFTkFCTEVfREZH
X0pJVCAxCiAjZW5kaWYKIC8qIEVuYWJsZSB0aGUgREZHIEpJVCBvbiBBUk12Ny4gIE9ubHkgdGVz
dGVkIG9uIGlPUyBhbmQgUXQvR1RLKyBMaW51eC4gKi8K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>234766</attachid>
            <date>2014-07-11 08:55:53 -0700</date>
            <delta_ts>2014-07-11 11:53:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-123615-20140711175521.patch</filename>
            <type>text/plain</type>
            <size>10646</size>
            <attacher>peavo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTcwOTIwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBA
CisyMDE0LTA3LTA5ICBwZWF2b0BvdXRsb29rLmNvbSAgPHBlYXZvQG91dGxvb2suY29tPgorCisg
ICAgICAgIFtXaW5dIEVuYWJsZSBERkcgSklULgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzNjE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgV2hlbiB0aGUgcmV0dXJuIHR5cGUgb2YgYSBKSVQgZ2VuZXJh
dGVkIGZ1bmN0aW9uIGNhbGwgaXMgbGFyZ2VyIHRoYW4gNjQtYml0IChlLmcuIFNsb3dQYXRoUmV0
dXJuVHlwZSksCisgICAgICAgIHRoZSBub3JtYWwgY2FsbCgpIGltcGxlbWVudGF0aW9uIGNhbm5v
dCBiZSB1c2VkIG9uIDY0LWJpdCBXaW5kb3dzLCBiZWNhdXNlIHRoZSA2NC1iaXQgV2luZG93cyBB
QkkgaXMgZGlmZmVyZW50IGluIHRoaXMgY2FzZS4KKyAgICAgICAgQWxzbywgd2hlbiBnZW5lcmF0
aW5nIGNhbGxzIHdpdGggZG91YmxlIGFyZ3VtZW50cywgd2UgbmVlZCB0byBtYWtlIHN1cmUgdGhl
IGFyZ3VtZW50cyBhcmUgcHV0IGluIHRoZSBjb3JyZWN0IHJlZ2lzdGVycywKKyAgICAgICAgc2lu
Y2UgdGhlIHJlZ2lzdGVyIGFsbG9jYXRpb24gZGlmZmVycyBvbiA2NC1iaXQgV2luZG93cy4KKwor
ICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oOgorICAgICAgICAoSlND
OjpNYWNyb0Fzc2VtYmxlclg4Nl82NDo6Y2FsbFdpdGhTbG93UGF0aFJldHVyblR5cGUpOiBBZGRl
ZCBtZXRob2QgdG8gaGFuZGxlIGZ1bmN0aW9uIGNhbGxzIHdoZXJlIHRoZSByZXR1cm4gdmFsdWUg
dHlwZSBzaXplIGlzIGxhcmdlciB0aGFuIDY0LWJpdC4KKyAgICAgICAgKiBqaXQvQ0NhbGxIZWxw
ZXJzLmg6CisgICAgICAgIChKU0M6OkNDYWxsSGVscGVyczo6c2V0dXBBcmd1bWVudHNXaXRoRXhl
Y1N0YXRlKTogTW92ZSBhcmd1bWVudHMgdG8gY29ycmVjdCByZWdpc3RlcnMgd2hlbiB0aGVyZSBh
cmUgZmxvYXRpbmcgcG9pbnQgYXJndW1lbnRzLgorICAgICAgICAoSlNDOjpDQ2FsbEhlbHBlcnM6
OnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZUZvckNhbGxXaXRoU2xvd1BhdGhSZXR1cm5UeXBl
KTogQWRkZWQgbWV0aG9kLgorICAgICAgICAqIGppdC9KSVQuaDoKKyAgICAgICAgKEpTQzo6SklU
OjphcHBlbmRDYWxsV2l0aFNsb3dQYXRoUmV0dXJuVHlwZSk6IEFkZGVkIG1ldGhvZC4KKyAgICAg
ICAgKiBqaXQvSklUSW5saW5lcy5oOgorICAgICAgICAoSlNDOjpKSVQ6OmFwcGVuZENhbGxXaXRo
RXhjZXB0aW9uQ2hlY2tBbmRTbG93UGF0aFJldHVyblR5cGUpOiBBZGRlZCBtZXRob2QuCisgICAg
ICAgIChKU0M6OkpJVDo6Y2FsbE9wZXJhdGlvbik6IENhbGwgbmV3IG1ldGhvZC4KKwogMjAxNC0w
Ny0wOCAgQmVuamFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
UmVzdG9yZSB0aGUgYXNzZXJ0aW9uIGNoYW5nZWQgd2l0aCAxNzA4MzkKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0
LmgJKHJldmlzaW9uIDE3MDkxNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
TWFjcm9Bc3NlbWJsZXJYODZfNjQuaAkod29ya2luZyBjb3B5KQpAQCAtMTUxLDYgKzE1MSw0NSBA
QCBwdWJsaWM6CiAgICAgICAgIHN0b3JlOChyZWcsIEFkZHJlc3Moc2NyYXRjaFJlZ2lzdGVyKSk7
CiAgICAgfQogCisjaWYgT1MoV0lORE9XUykKKyAgICBDYWxsIGNhbGxXaXRoU2xvd1BhdGhSZXR1
cm5UeXBlKCkKKyAgICB7CisgICAgICAgIC8vIE9uIFdpbjY0LCB3aGVuIHRoZSByZXR1cm4gdHlw
ZSBpcyBsYXJnZXIgdGhhbiA4IGJ5dGVzLCB3ZSBuZWVkIHRvIGFsbG9jYXRlIHNwYWNlIG9uIHRo
ZSBzdGFjayBmb3IgdGhlIHJldHVybiB2YWx1ZS4KKyAgICAgICAgLy8gT24gZW50cnksIHJjeCBz
aG91bGQgY29udGFpbiBhIHBvaW50ZXIgdG8gdGhpcyBzdGFjayBzcGFjZS4gVGhlIG90aGVyIHBh
cmFtZXRlcnMgYXJlIHNoaWZ0ZWQgdG8gdGhlIHJpZ2h0LAorICAgICAgICAvLyByZHggc2hvdWxk
IGNvbnRhaW4gdGhlIGZpcnN0IGFyZ3VtZW50LCByOCBzaG91bGQgY29udGFpbiB0aGUgc2Vjb25k
IGFyZ3VtZW50LCBhbmQgcjkgc2hvdWxkIGNvbnRhaW4gdGhlIHRoaXJkIGFyZ3VtZW50LgorICAg
ICAgICAvLyBPbiByZXR1cm4sIHJheCBjb250YWlucyBhIHBvaW50ZXIgdG8gdGhpcyBzdGFjayB2
YWx1ZS4gU2VlIGh0dHA6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS83NTcyenR6
NC5hc3B4LgorICAgICAgICAvLyBXZSB0aGVuIG5lZWQgdG8gY29weSB0aGUgMTYgYnl0ZSByZXR1
cm4gdmFsdWUgaW50byByYXggYW5kIHJkeCwgc2luY2UgSklUIGV4cGVjdHMgdGhlIHJldHVybiB2
YWx1ZSB0byBiZSBzcGxpdCBiZXR3ZWVuIHRoZSB0d28uCisgICAgICAgIC8vIEl0IGlzIGFzc3Vt
ZWQgdGhhdCB0aGUgcGFyYW1ldGVycyBhcmUgYWxyZWFkeSBzaGlmdGVkIHRvIHRoZSByaWdodCwg
d2hlbiBlbnRlcmluZyB0aGlzIG1ldGhvZC4KKyAgICAgICAgLy8gTm90ZTogdGhpcyBpbXBsZW1l
bnRhdGlvbiBzdXBwb3J0cyB1cCB0byAzIHBhcmFtZXRlcnMuCisKKyAgICAgICAgLy8gSklUIHJl
bGllcyBvbiB0aGUgQ2FsbGVyRnJhbWUgKGZyYW1lIHBvaW50ZXIpIGJlaW5nIHB1dCBvbiB0aGUg
c3RhY2ssCisgICAgICAgIC8vIE9uIFdpbjY0IHdlIG5lZWQgdG8gbWFudWFsbHkgY29weSB0aGUg
ZnJhbWUgcG9pbnRlciB0byB0aGUgc3RhY2ssIHNpbmNlIE1TVkMgbWF5IG5vdCBtYWludGFpbiBh
IGZyYW1lIHBvaW50ZXIgb24gNjQtYml0LgorICAgICAgICAvLyBTZWUgaHR0cDovL21zZG4ubWlj
cm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5Lzl6MXN0Znl3LmFzcHggd2hlcmUgaXQncyBzdGF0ZWQg
dGhhdCByYnAgTUFZIGJlIHVzZWQgYXMgYSBmcmFtZSBwb2ludGVyLgorICAgICAgICBzdG9yZTY0
KFg4NlJlZ2lzdGVyczo6ZWJwLCBBZGRyZXNzKFg4NlJlZ2lzdGVyczo6ZXNwLCAtMTYpKTsKKwor
ICAgICAgICAvLyBXZSBhbHNvIG5lZWQgdG8gYWxsb2NhdGUgdGhlIHNoYWRvdyBzcGFjZSBvbiB0
aGUgc3RhY2sgZm9yIHRoZSA0IHBhcmFtZXRlciByZWdpc3RlcnMuCisgICAgICAgIC8vIEluIGFk
ZGl0aW9uLCB3ZSBuZWVkIHRvIGFsbG9jYXRlIDE2IGJ5dGVzIGZvciB0aGUgcmV0dXJuIHZhbHVl
LgorICAgICAgICAvLyBBbHNvLCB3ZSBzaG91bGQgYWxsb2NhdGUgMTYgYnl0ZXMgZm9yIHRoZSBm
cmFtZSBwb2ludGVyLCBhbmQgcmV0dXJuIGFkZHJlc3MgKG5vdCBwb3B1bGF0ZWQpLgorICAgICAg
ICBzdWI2NChUcnVzdGVkSW1tMzIoOCAqIHNpemVvZihpbnQ2NF90KSksIFg4NlJlZ2lzdGVyczo6
ZXNwKTsKKworICAgICAgICAvLyBUaGUgZmlyc3QgcGFyYW1ldGVyIHJlZ2lzdGVyIHNob3VsZCBj
b250YWluIGEgcG9pbnRlciB0byB0aGUgc3RhY2sgYWxsb2NhdGVkIHNwYWNlIGZvciB0aGUgcmV0
dXJuIHZhbHVlLgorICAgICAgICBtb3ZlKFg4NlJlZ2lzdGVyczo6ZXNwLCBYODZSZWdpc3RlcnM6
OmVjeCk7CisgICAgICAgIGFkZDY0KFRydXN0ZWRJbW0zMig0ICogc2l6ZW9mKGludDY0X3QpKSwg
WDg2UmVnaXN0ZXJzOjplY3gpOworCisgICAgICAgIERhdGFMYWJlbFB0ciBsYWJlbCA9IG1vdmVX
aXRoUGF0Y2goVHJ1c3RlZEltbVB0cigwKSwgc2NyYXRjaFJlZ2lzdGVyKTsKKyAgICAgICAgQ2Fs
bCByZXN1bHQgPSBDYWxsKG1fYXNzZW1ibGVyLmNhbGwoc2NyYXRjaFJlZ2lzdGVyKSwgQ2FsbDo6
TGlua2FibGUpOworCisgICAgICAgIGFkZDY0KFRydXN0ZWRJbW0zMig4ICogc2l6ZW9mKGludDY0
X3QpKSwgWDg2UmVnaXN0ZXJzOjplc3ApOworCisgICAgICAgIC8vIENvcHkgdGhlIHJldHVybiB2
YWx1ZSBpbnRvIHJheCBhbmQgcmR4LgorICAgICAgICBsb2FkNjQoQWRkcmVzcyhYODZSZWdpc3Rl
cnM6OmVheCwgc2l6ZW9mKGludDY0X3QpKSwgWDg2UmVnaXN0ZXJzOjplZHgpOworICAgICAgICBs
b2FkNjQoQWRkcmVzcyhYODZSZWdpc3RlcnM6OmVheCksIFg4NlJlZ2lzdGVyczo6ZWF4KTsKKwor
ICAgICAgICBBU1NFUlRfVU5VU0VEKGxhYmVsLCBkaWZmZXJlbmNlQmV0d2VlbihsYWJlbCwgcmVz
dWx0KSA9PSBSRVBUQUNIX09GRlNFVF9DQUxMX1IxMSk7CisgICAgICAgIHJldHVybiByZXN1bHQ7
CisgICAgfQorI2VuZGlmCisKICAgICBDYWxsIGNhbGwoKQogICAgIHsKICNpZiBPUyhXSU5ET1dT
KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5oCShyZXZpc2lv
biAxNzA5MTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5oCSh3
b3JraW5nIGNvcHkpCkBAIC03OTgsMTQgKzc5OCwyNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgQUxX
QVlTX0lOTElORSB2b2lkIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShGUFJSZWcgYXJnMSwg
R1BSUmVnIGFyZzIpCiAgICAgeworI2lmIE9TKFdJTkRPV1MpICYmIENQVShYODZfNjQpCisgICAg
ICAgIC8vIE9uIFdpbmRvd3MsIGFyZ3VtZW50cyBtYXAgdG8gZGVzaWduYXRlZCByZWdpc3RlcnMg
YmFzZWQgb24gdGhlIGFyZ3VtZW50IHBvc2l0aW9ucywgZXZlbiB3aGVuIHRoZXJlIGFyZSBpbnRl
cmxhY2VkIHNjYWxhciBhbmQgZmxvYXRpbmcgcG9pbnQgYXJndW1lbnRzLgorICAgICAgICAvLyBT
ZWUgaHR0cDovL21zZG4ubWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5L3p0aGsyZGtoLmFzcHgK
KyAgICAgICAgbW92ZURvdWJsZShhcmcxLCBGUFJJbmZvOjphcmd1bWVudEZQUjEpOworICAgICAg
ICBtb3ZlKGFyZzIsIEdQUkluZm86OmFyZ3VtZW50R1BSMik7CisjZWxzZQogICAgICAgICBtb3Zl
RG91YmxlKGFyZzEsIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CiAgICAgICAgIG1vdmUoYXJnMiwg
R1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKKyNlbmRpZgogICAgICAgICBtb3ZlKEdQUkluZm86OmNh
bGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIH0KIAogICAgIEFM
V0FZU19JTkxJTkUgdm9pZCBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoR1BSUmVnIGFyZzEs
IEdQUlJlZyBhcmcyLCBGUFJSZWcgYXJnMykKICAgICB7CisjaWYgT1MoV0lORE9XUykgJiYgQ1BV
KFg4Nl82NCkKKyAgICAgICAgLy8gT24gV2luZG93cywgYXJndW1lbnRzIG1hcCB0byBkZXNpZ25h
dGVkIHJlZ2lzdGVycyBiYXNlZCBvbiB0aGUgYXJndW1lbnQgcG9zaXRpb25zLCBldmVuIHdoZW4g
dGhlcmUgYXJlIGludGVybGFjZWQgc2NhbGFyIGFuZCBmbG9hdGluZyBwb2ludCBhcmd1bWVudHMu
CisgICAgICAgIC8vIFNlZSBodHRwOi8vbXNkbi5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJhcnkv
enRoazJka2guYXNweAorICAgICAgICBtb3ZlRG91YmxlKGFyZzMsIEZQUkluZm86OmFyZ3VtZW50
RlBSMyk7CisjZWxzZQogICAgICAgICBtb3ZlRG91YmxlKGFyZzMsIEZQUkluZm86OmFyZ3VtZW50
RlBSMCk7CisjZW5kaWYKICAgICAgICAgc2V0dXBTdHViQXJndW1lbnRzKGFyZzEsIGFyZzIpOwog
ICAgICAgICBtb3ZlKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjApOwogICAgIH0KQEAgLTEwNjEsNiArMTA3NCwxNCBAQCBwdWJsaWM6CiAgICAgICAgIG1v
dmUoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAg
ICAgfQogCisjaWYgT1MoV0lORE9XUykgJiYgQ1BVKFg4Nl82NCkKKyAgICBBTFdBWVNfSU5MSU5F
IHZvaWQgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlRm9yQ2FsbFdpdGhTbG93UGF0aFJldHVy
blR5cGUoVHJ1c3RlZEltbTMyIGFyZzEpCisgICAgeworICAgICAgICBtb3ZlKGFyZzEsIEdQUklu
Zm86OmFyZ3VtZW50R1BSMik7CisgICAgICAgIG1vdmUoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0
ZXIsIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CisgICAgfQorI2VuZGlmCisKICAgICBBTFdBWVNf
SU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEdQUlJlZyBhcmcxLCBHUFJS
ZWcgYXJnMikKICAgICB7CiAgICAgICAgIHNldHVwU3R1YkFyZ3VtZW50cyhhcmcxLCBhcmcyKTsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAkocmV2aXNpb24gMTcwOTE1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAkod29ya2luZyBjb3B5KQpAQCAtMjY0LDYgKzI2NCwx
NSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbkNhbGw7CiAg
ICAgICAgIH0KIAorI2lmIE9TKFdJTkRPV1MpICYmIENQVShYODZfNjQpCisgICAgICAgIENhbGwg
YXBwZW5kQ2FsbFdpdGhTbG93UGF0aFJldHVyblR5cGUoY29uc3QgRnVuY3Rpb25QdHImIGZ1bmN0
aW9uKQorICAgICAgICB7CisgICAgICAgICAgICBDYWxsIGZ1bmN0aW9uQ2FsbCA9IGNhbGxXaXRo
U2xvd1BhdGhSZXR1cm5UeXBlKCk7CisgICAgICAgICAgICBtX2NhbGxzLmFwcGVuZChDYWxsUmVj
b3JkKGZ1bmN0aW9uQ2FsbCwgbV9ieXRlY29kZU9mZnNldCwgZnVuY3Rpb24udmFsdWUoKSkpOwor
ICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uQ2FsbDsKKyAgICAgICAgfQorI2VuZGlmCisKICAg
ICAgICAgdm9pZCBleGNlcHRpb25DaGVjayhKdW1wIGp1bXBUb0hhbmRsZXIpCiAgICAgICAgIHsK
ICAgICAgICAgICAgIG1fZXhjZXB0aW9uQ2hlY2tzLmFwcGVuZChqdW1wVG9IYW5kbGVyKTsKQEAg
LTY0OCw2ICs2NTcsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBsaW5rU2xvd0Nh
c2VJZk5vdEpTQ2VsbChWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiwgaW50IHZpcnR1
YWxSZWdpc3RlckluZGV4KTsKIAogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBhcHBlbmRD
YWxsV2l0aEV4Y2VwdGlvbkNoZWNrKGNvbnN0IEZ1bmN0aW9uUHRyJik7CisjaWYgT1MoV0lORE9X
UykgJiYgQ1BVKFg4Nl82NCkKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgYXBwZW5kQ2Fs
bFdpdGhFeGNlcHRpb25DaGVja0FuZFNsb3dQYXRoUmV0dXJuVHlwZShjb25zdCBGdW5jdGlvblB0
ciYpOworI2VuZGlmCiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGFwcGVuZENhbGxXaXRo
Q2FsbEZyYW1lUm9sbGJhY2tPbkV4Y2VwdGlvbihjb25zdCBGdW5jdGlvblB0ciYpOwogICAgICAg
ICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrU2V0SlNW
YWx1ZVJlc3VsdChjb25zdCBGdW5jdGlvblB0ciYsIGludCk7CiAgICAgICAgIE1hY3JvQXNzZW1i
bGVyOjpDYWxsIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2tTZXRKU1ZhbHVlUmVzdWx0V2l0
aFByb2ZpbGUoY29uc3QgRnVuY3Rpb25QdHImLCBpbnQpOwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRJbmxpbmVzLmgJKHJldmlzaW9uIDE3MDkxNSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTgsNiArMTE4LDE2
IEBAIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjoKICAgICByZXR1cm4g
Y2FsbDsKIH0KIAorI2lmIE9TKFdJTkRPV1MpICYmIENQVShYODZfNjQpCitBTFdBWVNfSU5MSU5F
IE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6YXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVja0Fu
ZFNsb3dQYXRoUmV0dXJuVHlwZShjb25zdCBGdW5jdGlvblB0ciYgZnVuY3Rpb24pCit7CisgICAg
dXBkYXRlVG9wQ2FsbEZyYW1lKCk7CisgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbCA9IGFw
cGVuZENhbGxXaXRoU2xvd1BhdGhSZXR1cm5UeXBlKGZ1bmN0aW9uKTsKKyAgICBleGNlcHRpb25D
aGVjaygpOworICAgIHJldHVybiBjYWxsOworfQorI2VuZGlmCisKIEFMV0FZU19JTkxJTkUgTWFj
cm9Bc3NlbWJsZXI6OkNhbGwgSklUOjphcHBlbmRDYWxsV2l0aENhbGxGcmFtZVJvbGxiYWNrT25F
eGNlcHRpb24oY29uc3QgRnVuY3Rpb25QdHImIGZ1bmN0aW9uKQogewogICAgIHVwZGF0ZVRvcENh
bGxGcmFtZSgpOyAvLyBUaGUgY2FsbGVlIGlzIHJlc3BvbnNpYmxlIGZvciBzZXR0aW5nIHRvcENh
bGxGcmFtZSB0byB0aGVpciBjYWxsZXIKQEAgLTIzNSw4ICsyNDUsMTMgQEAgQUxXQVlTX0lOTElO
RSBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBKSVQ6OgogCiBBTFdBWVNfSU5MSU5FIE1hY3JvQXNzZW1i
bGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihTcHJ0X0pJVE9wZXJhdGlvbl9FWiBvcGVyYXRp
b24sIGludDMyX3Qgb3ApCiB7CisjaWYgT1MoV0lORE9XUykgJiYgQ1BVKFg4Nl82NCkKKyAgICBz
ZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGVGb3JDYWxsV2l0aFNsb3dQYXRoUmV0dXJuVHlwZShU
cnVzdGVkSW1tMzIob3ApKTsKKyAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVj
a0FuZFNsb3dQYXRoUmV0dXJuVHlwZShvcGVyYXRpb24pOworI2Vsc2UKICAgICBzZXR1cEFyZ3Vt
ZW50c1dpdGhFeGVjU3RhdGUoVHJ1c3RlZEltbTMyKG9wKSk7CiAgICAgcmV0dXJuIGFwcGVuZENh
bGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKKyNlbmRpZgogfQogCiBBTFdBWVNfSU5M
SU5FIE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihWX0pJVE9wZXJhdGlv
bl9FIG9wZXJhdGlvbikKSW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNzA5MTUpCisrKyBTb3VyY2UvV1RGL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDE0LTA3LTA5ICBwZWF2
b0BvdXRsb29rLmNvbSAgPHBlYXZvQG91dGxvb2suY29tPgorCisgICAgICAgIFtXaW5dIEVuYWJs
ZSBERkcgSklULgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTIzNjE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiB3dGYvUGxhdGZvcm0uaDoKKwogMjAxNC0wNy0wNyAgWmFuIERvYmVyc2VrICA8emRvYmVy
c2VrQGlnYWxpYS5jb20+CiAKICAgICAgICAgRW5hYmxlIEFSTXY3IGRpc2Fzc2VtYmxlciBmb3Ig
dGhlIEdUSyBwb3J0CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgJKHJldmlzaW9uIDE3MDkxNSkKKysrIFNvdXJj
ZS9XVEYvd3RmL1BsYXRmb3JtLmgJKHdvcmtpbmcgY29weSkKQEAgLTY5NSw5ICs2OTUsOSBAQAog
I2RlZmluZSBFTkFCTEVfRElTQVNTRU1CTEVSIDEKICNlbmRpZgogCi0jaWYgIWRlZmluZWQoRU5B
QkxFX0RGR19KSVQpICYmIEVOQUJMRShKSVQpICYmICFDT01QSUxFUihNU1ZDKQotLyogRW5hYmxl
IHRoZSBERkcgSklUIG9uIFg4NiBhbmQgWDg2XzY0LiAgT25seSB0ZXN0ZWQgb24gTWFjLCBHTlUv
TGludXggYW5kIEZyZWVCU0QuICovCi0jaWYgKENQVShYODYpIHx8IENQVShYODZfNjQpKSAmJiAo
T1MoREFSV0lOKSB8fCBPUyhMSU5VWCkgfHwgT1MoRlJFRUJTRCkpCisjaWYgIWRlZmluZWQoRU5B
QkxFX0RGR19KSVQpICYmIEVOQUJMRShKSVQpCisvKiBFbmFibGUgdGhlIERGRyBKSVQgb24gWDg2
IGFuZCBYODZfNjQuICovCisjaWYgKENQVShYODYpIHx8IENQVShYODZfNjQpKSAmJiAoT1MoREFS
V0lOKSB8fCBPUyhMSU5VWCkgfHwgT1MoRlJFRUJTRCkgfHwgT1MoV0lORE9XUykpCiAjZGVmaW5l
IEVOQUJMRV9ERkdfSklUIDEKICNlbmRpZgogLyogRW5hYmxlIHRoZSBERkcgSklUIG9uIEFSTXY3
LiAgT25seSB0ZXN0ZWQgb24gaU9TIGFuZCBRdC9HVEsrIExpbnV4LiAqLwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>