<?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>71956</bug_id>
          
          <creation_ts>2011-11-09 14:25:21 -0800</creation_ts>
          <short_desc>Cache and reuse HTMLCollections exposed by Document.</short_desc>
          <delta_ts>2011-12-16 15:33:28 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</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>72157</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andreas Kling">kling</reporter>
          <assigned_to name="Andreas Kling">kling</assigned_to>
          <cc>ap</cc>
    
    <cc>darin</cc>
    
    <cc>fishd</cc>
    
    <cc>ggaren</cc>
    
    <cc>koivisto</cc>
    
    <cc>ojan</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>499353</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-11-09 14:25:21 -0800</bug_when>
    <thetext>The following HTMLCollection objects are exposed to the web by Document (and HTMLDocument):
* all
* images
* embeds
* applets
* links
* forms
* anchors
* scripts

We currently create new HTMLCollection objects on demand when these getters are called, meaning you can end up with quite a few of these objects.
As an example, the full HTML5 spec page creates 34001 HTMLCollection objects by calling document.links repeatedly.

Both Firefox and Opera cache and reuse the same HTMLCollection objects (as evidenced by the returned collections containing properties that were set on collections previously returned by the same getters.)

We could match this behavior and make very good memory savings in some cases (~800 kB on full HTML5 spec.)

I believe this change is safe since the HTMLCollection API we expose to the web is stateless.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499913</commentid>
    <comment_count>1</comment_count>
      <attachid>114503</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-11-10 08:11:41 -0800</bug_when>
    <thetext>Created attachment 114503
Proposed patch

First stab at this. I didn&apos;t touch the document.all collection here, since it comes with some emotional baggage in the JS bindings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499914</commentid>
    <comment_count>2</comment_count>
      <attachid>114504</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-11-10 08:13:03 -0800</bug_when>
    <thetext>Created attachment 114504
Proposed patch

Oops, forgot to include fast/dom/gc-9.html rebaseline.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499921</commentid>
    <comment_count>3</comment_count>
      <attachid>114504</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-11-10 08:18:56 -0800</bug_when>
    <thetext>Comment on attachment 114504
Proposed patch

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

&gt; Source/WebCore/dom/Document.h:1429
&gt; +    Vector&lt;RefPtr&lt;HTMLCollection&gt;, NumCollectionTypes&gt; m_collections;

Since this is a fixed size array, then you should use an array, not a Vector.

    RefPtr&lt;HTMLCollection&gt; m_collections[NumCollectionTypes];</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499942</commentid>
    <comment_count>4</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-11-10 08:36:34 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 114504 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=114504&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/Document.h:1429
&gt; &gt; +    Vector&lt;RefPtr&lt;HTMLCollection&gt;, NumCollectionTypes&gt; m_collections;
&gt; 
&gt; Since this is a fixed size array, then you should use an array, not a Vector.
&gt; 
&gt;     RefPtr&lt;HTMLCollection&gt; m_collections[NumCollectionTypes];

Sure, I can do that instead. I just liked that Vector would handle initialization and deletion automatically. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499945</commentid>
    <comment_count>5</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-11-10 08:39:37 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; Sure, I can do that instead. I just liked that Vector would handle initialization and deletion automatically. :)

Um, disregard that comment, I&apos;m being silly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499946</commentid>
    <comment_count>6</comment_count>
      <attachid>114504</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2011-11-10 08:40:14 -0800</bug_when>
    <thetext>Comment on attachment 114504
Proposed patch

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

r=me

It would be good if we had more tests in this area. The fact that this affects one test only is slightly discorncerning (though it does document the new behavior).

&gt; Source/WebCore/dom/Document.h:1429
&gt; +    Vector&lt;RefPtr&lt;HTMLCollection&gt;, NumCollectionTypes&gt; m_collections;

I would just use plain array of RefPtrs here as the length is fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499982</commentid>
    <comment_count>7</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-11-10 09:09:50 -0800</bug_when>
    <thetext>Committed r99869: &lt;http://trac.webkit.org/changeset/99869&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>500055</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-11-10 11:05:01 -0800</bug_when>
    <thetext>&gt; RefPtr&lt;HTMLCollection&gt; m_collections[NumCollectionTypes]; 

While it&apos;s reassuring that gc-9 test passes, I don&apos;t understand what protects wrappers of these objects. Is there some magic?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>500429</commentid>
    <comment_count>9</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-11-10 17:11:52 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; &gt; RefPtr&lt;HTMLCollection&gt; m_collections[NumCollectionTypes]; 
&gt; 
&gt; While it&apos;s reassuring that gc-9 test passes, I don&apos;t understand what protects wrappers of these objects. Is there some magic?

Good question. I don&apos;t know how these are protected from GC, I assumed the &quot;default&quot; DOM wrapper protection would be enough here. CC&apos;ing some people that might be able to shed some light on how this mechanism works.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>500978</commentid>
    <comment_count>10</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-11-11 11:43:00 -0800</bug_when>
    <thetext>Reopen the bug since it was rolled out in http://trac.webkit.org/changeset/99995.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>500996</commentid>
    <comment_count>11</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2011-11-11 12:09:37 -0800</bug_when>
    <thetext>This was the cause of the perf regression: http://build.chromium.org/f/chromium/perf/mac-release-10.6-webkit-latest/intl1/report.html?history=150&amp;rev=109653.

kling, ping me offline and I can try to get you a way to run this test locally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>501344</commentid>
    <comment_count>12</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2011-11-11 20:35:02 -0800</bug_when>
    <thetext>FYI, the tracking chromium bug for the perf regression crbug.com/103868.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>501412</commentid>
    <comment_count>13</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-11-12 03:46:54 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; FYI, the tracking chromium bug for the perf regression crbug.com/103868.

Just to be clear, is this a speed or VM size regression? Or both? I&apos;m a bit unfamiliar with the Chromium cycler lingo. :/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>501450</commentid>
    <comment_count>14</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2011-11-12 10:10:13 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; (In reply to comment #12)
&gt; &gt; FYI, the tracking chromium bug for the perf regression crbug.com/103868.
&gt; 
&gt; Just to be clear, is this a speed or VM size regression? Or both? I&apos;m a bit unfamiliar with the Chromium cycler lingo. :/

Speed. Those graphs default to time. This does seem to have had an effect on memory as well.

~5% improvement: http://build.chromium.org/f/chromium/perf/vista-release-webkit-latest/intl1/report.html?history=150&amp;rev=-1&amp;graph=total_byte_b

~80% regression: http://build.chromium.org/f/chromium/perf/vista-release-webkit-latest/intl1/report.html?history=150&amp;rev=-1&amp;graph=ws_peak_r

I&apos;m not too familiar with the memory numbers myself. I&apos;ll try and find someone more familiar with this stuff to explain what total_byte_b adn ws_peak_r refer to.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>501451</commentid>
    <comment_count>15</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2011-11-12 10:21:14 -0800</bug_when>
    <thetext>TL;DR version: On the chromium Vista bot
~365% memory regression: http://build.chromium.org/f/chromium/perf/vista-release-webkit-latest/intl1/report.html?history=150&amp;rev=-1&amp;graph=ws_peak_r

~7% runtime regresson: http://build.chromium.org/f/chromium/perf/vista-release-webkit-latest/intl1/report.html?history=150&amp;rev=-1&amp;graph=times

The regression on the mac bot has different percentages but shows roughly the same result.

DETAILS:
http://www.chromium.org/developers/testing/chromium-build-infrastructure/performance-test-plots

_b refers to browser process memory use. _r refers to renderer (i.e. webkit) memory use. So, ws_peak_r refers to the peak working set size of the renderer while running the test. 

Looks like the memory improvement in the browser process comes from read_byte_b, which is &quot;I/O ops or bytes read&quot;: http://build.chromium.org/f/chromium/perf/vista-release-webkit-latest/intl1/report.html?history=150&amp;rev=-1&amp;graph=read_byte_b

But there&apos;s also a regression in writing I/O ops in the browser process: http://build.chromium.org/f/chromium/perf/vista-release-webkit-latest/intl1/report.html?history=150&amp;rev=-1&amp;graph=write_byte_b

I&apos;m not really sure how this change affects chromium&apos;s browser process at all, but in the renderer process it&apos;s more simple (i.e. it&apos;s mainly just WebKit).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>501452</commentid>
    <comment_count>16</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2011-11-12 10:26:11 -0800</bug_when>
    <thetext>The intl1, intl2 and moz test suites all show the regression:
http://build.chromium.org/f/chromium/perf/vista-release-webkit-latest/intl1/report.html?rev=109800&amp;graph=times&amp;history=150
http://build.chromium.org/f/chromium/perf/vista-release-webkit-latest/intl2/report.html?history=150&amp;rev=109800&amp;graph=times
http://build.chromium.org/f/chromium/perf/vista-release-webkit-latest/moz/report.html?history=150&amp;rev=109800&amp;graph=times</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>501453</commentid>
    <comment_count>17</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2011-11-12 10:28:43 -0800</bug_when>
    <thetext>What these tests do is they load static copies of websites of local disk. Once they hit the window&apos;s onload event, they&apos;ll load the next page. And it cycles 10 times through all the pages. So, the time is essentially the sum of the load of all the pages.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>501736</commentid>
    <comment_count>18</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-11-14 02:05:44 -0800</bug_when>
    <thetext>Thanks a lot for the informative write-up, Ojan! I&apos;ll return to this patch when I&apos;m back from vacation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502286</commentid>
    <comment_count>19</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2011-11-14 14:03:45 -0800</bug_when>
    <thetext>Specific pages from the intl1 suite where the mean runtime is &gt;7 ms slower after the patch than before. When you get around to trying to fix this, I can get your appropriate reductions of our copies of these sites.

allegro.pl
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  10.00   48.75   67.50   94.55  126.20  265.00 
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  11.00   53.75   75.50  102.60  123.00  355.00 
blog.skyrock.com
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  10.00   47.00   63.50   92.29  116.00  503.00 
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   10.0    51.0    70.0    99.5   119.5   557.0 
elmundo.es
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  10.00   48.50   67.00   94.24  126.50  265.00 
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   11.0    53.5    75.0   103.0   127.0   355.0 
fc2.com
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  10.00   47.50   64.00   93.18  119.00  503.00 
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   10.0    51.0    70.0   100.5   122.0   557.0 
free.fr
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   9.00   48.00   67.00   91.41  111.80  313.00 
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  10.00   51.25   71.00   98.59  113.00  331.00 
hatena.ne.jp
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  10.00   48.25   67.00   94.69  126.80  265.00 
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  11.00   53.25   75.50  103.70  131.00  355.00 
kakaku.com
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  10.00   47.25   63.50   91.59  113.00  503.00 
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  10.00   51.00   70.00   98.93  116.50  557.00 
naftemporiki.gr
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   9.00   48.00   67.00   91.77  112.00  313.00 
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  10.00   51.00   71.00   99.11  115.00  331.00 
pchome.com.tw
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  10.00   48.00   67.00   93.87  126.00  265.00 
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   11.0    53.0    75.0   103.4   135.0   355.0 
ricardo.ch
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  10.00   47.00   63.00   91.45  113.00  503.00 
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  10.00   51.00   70.00   99.02  117.00  557.00 
ruten.com.tw
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   9.00   47.75   67.00   89.88  111.20  313.00 
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  10.00   51.00   70.50   97.52  109.00  331.00 
uwants.com
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  10.00   47.75   67.00   91.79  123.80  265.00 
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  11.00   52.75   73.00  101.40  121.50  355.00 
www.auction.co.kr
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  10.00   47.75   63.50   92.48  116.00  503.00 
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   10.0    51.0    70.0   100.3   119.5   557.0 
www.chosun.com
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   9.00   47.50   67.00   89.75  111.50  313.00 
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  10.00   51.00   70.00   97.86  111.00  331.00 
www.eastmoney.com
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  10.00   47.50   67.00   89.04  117.50  265.00 
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  11.00   52.50   71.00   98.86  116.00  355.00</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502359</commentid>
    <comment_count>20</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2011-11-14 15:10:37 -0800</bug_when>
    <thetext>Ack. I totally screwed up that analysis. I&apos;ll upload the raw stdio data so that the analysis can be done properly as per https://sites.google.com/a/chromium.org/dev/developers/how-tos/using-r-to-reduce-page-cycler-regressions should I screw it up again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502361</commentid>
    <comment_count>21</comment_count>
      <attachid>115039</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2011-11-14 15:11:25 -0800</bug_when>
    <thetext>Created attachment 115039
run before regression stdio</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502363</commentid>
    <comment_count>22</comment_count>
      <attachid>115040</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2011-11-14 15:12:06 -0800</bug_when>
    <thetext>Created attachment 115040
run after regression stdio

These are the stdio results from the Chromium Vista Perf webkit canary bot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502366</commentid>
    <comment_count>23</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2011-11-14 15:13:48 -0800</bug_when>
    <thetext>Now with the proper analysis, these are the sites that regressed.

[1] &quot;haberturk.com&quot;
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  130.0   130.2   131.0   137.2   132.8   189.0 
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  145.0   147.0   148.5   151.1   149.8   176.0 
[1] &quot;pchome.com.tw&quot;
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   47.0    48.0    48.0    63.8    49.0   202.0 
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   69.0    70.0    71.0    85.4    73.0   206.0 
[1] &quot;sport24.gr&quot;
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   74.0    74.0    74.0    76.5    75.5    95.0 
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  81.00   81.25   83.50   92.40   98.00  125.00 
[1] &quot;udn.com&quot;
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  107.0   108.2   110.0   130.1   111.5   309.0 
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  134.0   136.5   138.5   156.4   149.0   291.0 
[1] &quot;www.alice.it&quot;
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  55.00   56.00   57.00   64.60   70.75  100.00 
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   59.0    67.0    86.0    82.0    95.5   100.0 
[1] &quot;www.auction.co.kr&quot;
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  261.0   265.0   265.5   290.0   267.5   503.0 
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  317.0   327.2   329.0   353.0   331.8   557.0 
[1] &quot;www.danawa.com&quot;
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  344.0   347.0   348.0   358.2   351.2   442.0 
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  364.0   369.0   371.5   380.7   386.8   430.0 
[1] &quot;www.dcinside.com&quot;
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  204.0   205.0   206.0   220.6   208.8   318.0 
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  221.0   230.2   232.0   249.3   232.8   396.0 
[1] &quot;www.eastmoney.com&quot;
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  112.0   112.2   114.0   119.4   115.0   172.0 
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  115.0   115.2   116.5   133.2   119.2   261.0</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502413</commentid>
    <comment_count>24</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-11-14 15:56:36 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; &gt; RefPtr&lt;HTMLCollection&gt; m_collections[NumCollectionTypes]; 
&gt; 
&gt; While it&apos;s reassuring that gc-9 test passes, I don&apos;t understand what protects wrappers of these objects. Is there some magic?

Looking at CodeGeneratorJS.pm, around line 2179, it reads to me like we tie the HTMLCollection to the base node (the Document in this case) via root(Node*).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>522965</commentid>
    <comment_count>25</comment_count>
      <attachid>119657</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-12-16 13:04:57 -0800</bug_when>
    <thetext>Created attachment 119657
Proposed patch v2

Okay, finally came back to this. The problem was that this patch introduced a reference cycle between Document and its cached HTMLCollections.
This updated version avoids that by having the cached collections not retain their base node pointers (the Document.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>522969</commentid>
    <comment_count>26</comment_count>
      <attachid>119658</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-12-16 13:12:40 -0800</bug_when>
    <thetext>Created attachment 119658
Proposed patch v3

Just recalled Alexey requesting that I use === in the test rather than ==. Same patch otherwise.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523000</commentid>
    <comment_count>27</comment_count>
      <attachid>119658</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2011-12-16 13:51:36 -0800</bug_when>
    <thetext>Comment on attachment 119658
Proposed patch v3

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523079</commentid>
    <comment_count>28</comment_count>
      <attachid>119658</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-12-16 15:11:19 -0800</bug_when>
    <thetext>Comment on attachment 119658
Proposed patch v3

Clearing flags on attachment: 119658

Committed r103115: &lt;http://trac.webkit.org/changeset/103115&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523080</commentid>
    <comment_count>29</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-12-16 15:11:33 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523104</commentid>
    <comment_count>30</comment_count>
      <attachid>119658</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-12-16 15:28:00 -0800</bug_when>
    <thetext>Comment on attachment 119658
Proposed patch v3

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

&gt; Source/WebCore/ChangeLog:25
&gt; +        collections that are cached on Document do not retained their base

“do not retain”.

&gt; Source/WebCore/dom/Document.h:1188
&gt; +    const RefPtr&lt;HTMLCollection&gt;&amp; cachedCollection(CollectionType);

Why not just return HTMLCollection*?

&gt; Source/WebCore/html/HTMLCollection.cpp:73
&gt; +    if (m_baseIsRetained)
&gt; +        m_base-&gt;deref();

A little confusing to use retain to mean ref/deref but I can’t think of obviously better wording.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523113</commentid>
    <comment_count>31</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-12-16 15:33:28 -0800</bug_when>
    <thetext>(In reply to comment #30)
&gt; (From update of attachment 119658 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=119658&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/Document.h:1188
&gt; &gt; +    const RefPtr&lt;HTMLCollection&gt;&amp; cachedCollection(CollectionType);
&gt; 
&gt; Why not just return HTMLCollection*?

Good point.
 
&gt; &gt; Source/WebCore/html/HTMLCollection.cpp:73
&gt; &gt; +    if (m_baseIsRetained)
&gt; &gt; +        m_base-&gt;deref();
&gt; 
&gt; A little confusing to use retain to mean ref/deref but I can’t think of obviously better wording.

Yeah, I agree. This bool will go away in a subsequent patch that makes document.all cached. With that, we can use m_base-&gt;isDocumentNode() to know if the node is retained/reffed or not.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114503</attachid>
            <date>2011-11-10 08:11:41 -0800</date>
            <delta_ts>2011-11-10 08:13:03 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>bug-71956.diff</filename>
            <type>text/plain</type>
            <size>5182</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAxYTE2N2ViLi5mZjQ2OGNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkg
QEAKKzIwMTEtMTEtMTAgIEFuZHJlYXMgS2xpbmcgIDxrbGluZ0B3ZWJraXQub3JnPgorCisgICAg
ICAgIENhY2hlIGFuZCByZXVzZSBIVE1MQ29sbGVjdGlvbnMgZXhwb3NlZCBieSBEb2N1bWVudC4K
KyAgICAgICAgPGh0dHA6Ly93ZWJraXQub3JnL2IvNzE5NTY+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTGV0IERvY3VtZW50IGNhY2hlIHRoZSB2YXJp
b3VzIEhUTUxDb2xsZWN0aW9uIG9iamVjdHMgaXQgZXhwb3Nlcy4KKyAgICAgICAgVGhleSdyZSBj
cmVhdGVkIG9uLWRlbWFuZCBhbmQgc3RvcmVkIGluIGEgdGlnaHQgVmVjdG9yLgorICAgICAgICBU
aGlzIGlzIGEgYmVoYXZpb3IgY2hhbmdlLCBzaW5jZSB0aGUgbGlmZXRpbWUgb2YgcmV0dXJuZWQg
Y29sbGVjdGlvbnMKKyAgICAgICAgaXMgbm93IHRpZWQgdG8gdGhlIGxpZmV0aW1lIG9mIHRoZSBE
b2N1bWVudC4gSG93ZXZlciwgdGhpcyBtYXRjaGVzIHRoZQorICAgICAgICBjdXJyZW50IGJlaGF2
aW9yIG9mIEZpcmVmb3ggYW5kIE9wZXJhLgorCisgICAgICAgIFRoaXMgcmVkdWNlcyBtZW1vcnkg
Y29uc3VtcHRpb24gYnkgfjgwMCBrQiAob24gNjQtYml0KSB3aGVuIGxvYWRpbmcKKyAgICAgICAg
dGhlIGZ1bGwgSFRNTDUgc3BlYy4gZG9jdW1lbnQubGlua3Mgd2FzIGNhbGxlZCAzNDAwMSB0aW1l
cywgeWllbGRpbmcKKyAgICAgICAgMzQwMDEgc2VwYXJhdGUgSFRNTENvbGxlY3Rpb25zLCBhbmQg
bm93IHdlIG9ubHkgbmVlZCAxLgorCisgICAgICAgIFRoZSBkb2N1bWVudC5hbGwgY29sbGVjdGlv
biByZXRhaW5zIHRoZSBvbGQgYmVoYXZpb3IsIGFzIGNhY2hpbmcgaXQKKyAgICAgICAgd291bGQg
YmUgYSBiaXQgbW9yZSBjb21wbGljYXRlZC4KKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6RG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnQ6OnJlbW92ZWRMYXN0UmVmKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
Ojpjb2xsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjppbWFnZXMpOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmFwcGxldHMpOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6OmVtYmVkcyk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cGx1Z2lucyk6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6b2JqZWN0cyk6CisgICAgICAgIChXZWJDb3JlOjpE
b2N1bWVudDo6c2NyaXB0cyk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6bGlua3MpOgor
ICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmZvcm1zKToKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50OjphbmNob3JzKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKiBo
dG1sL0NvbGxlY3Rpb25UeXBlLmg6CisKIDIwMTEtMTEtMTAgIE5pa29sYXMgWmltbWVybWFubiAg
PG56aW1tZXJtYW5uQHJpbS5jb20+CiAKICAgICAgICAgW0dUS10gc3ZnL2FzLWltYWdlL3N2Zy1p
bWFnZS1jaGFuZ2UtY29udGVudC1zaXplLnhodG1sIGNyYXNoZXMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
Y3BwCmluZGV4IGQ4YmFmNTcuLjEyNWVhNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAt
NDExLDYgKzQxMSw3IEBAIERvY3VtZW50OjpEb2N1bWVudChGcmFtZSogZnJhbWUsIGNvbnN0IEtV
UkwmIHVybCwgYm9vbCBpc1hIVE1MLCBib29sIGlzSFRNTCkKICAgICAsIG1fd3JpdGVSZWN1cnNp
b25Jc1Rvb0RlZXAoZmFsc2UpCiAgICAgLCBtX3dyaXRlUmVjdXJzaW9uRGVwdGgoMCkKICAgICAs
IG1fd2hlZWxFdmVudEhhbmRsZXJDb3VudCgwKQorICAgICwgbV9jb2xsZWN0aW9ucyhOdW1Db2xs
ZWN0aW9uVHlwZXMpCiB7CiAgICAgbV9kb2N1bWVudCA9IHRoaXM7CiAKQEAgLTU3MSw2ICs1NzIs
OCBAQCB2b2lkIERvY3VtZW50OjpyZW1vdmVkTGFzdFJlZigpCiAKICAgICAgICAgZGV0YWNoUGFy
c2VyKCk7CiAKKyAgICAgICAgbV9jb2xsZWN0aW9ucy5jbGVhcigpOworCiAgICAgICAgIG1fY3Nz
Q2FudmFzRWxlbWVudHMuY2xlYXIoKTsKIAogI2lmIEVOQUJMRShSRVFVRVNUX0FOSU1BVElPTl9G
UkFNRSkKQEAgLTQwOTYsNTAgKzQwOTksNTkgQEAgYm9vbCBEb2N1bWVudDo6aGFzU1ZHUm9vdE5v
ZGUoKSBjb25zdAogfQogI2VuZGlmCiAKK2NvbnN0IFJlZlB0cjxIVE1MQ29sbGVjdGlvbj4mIERv
Y3VtZW50Ojpjb2xsZWN0aW9uKENvbGxlY3Rpb25UeXBlIHR5cGUpCit7CisgICAgQVNTRVJUKHR5
cGUgPCBOdW1Db2xsZWN0aW9uVHlwZXMpOworICAgIGlmICghbV9jb2xsZWN0aW9uc1t0eXBlXSkK
KyAgICAgICAgbV9jb2xsZWN0aW9uc1t0eXBlXSA9IEhUTUxDb2xsZWN0aW9uOjpjcmVhdGUodGhp
cywgdHlwZSk7CisgICAgQVNTRVJUKG1fY29sbGVjdGlvbnNbdHlwZV0pOworICAgIHJldHVybiBt
X2NvbGxlY3Rpb25zW3R5cGVdOworfQorCiBQYXNzUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiBEb2N1
bWVudDo6aW1hZ2VzKCkKIHsKLSAgICByZXR1cm4gSFRNTENvbGxlY3Rpb246OmNyZWF0ZSh0aGlz
LCBEb2NJbWFnZXMpOworICAgIHJldHVybiBjb2xsZWN0aW9uKERvY0ltYWdlcyk7CiB9CiAKIFBh
c3NSZWZQdHI8SFRNTENvbGxlY3Rpb24+IERvY3VtZW50OjphcHBsZXRzKCkKIHsKLSAgICByZXR1
cm4gSFRNTENvbGxlY3Rpb246OmNyZWF0ZSh0aGlzLCBEb2NBcHBsZXRzKTsKKyAgICByZXR1cm4g
Y29sbGVjdGlvbihEb2NBcHBsZXRzKTsKIH0KIAogUGFzc1JlZlB0cjxIVE1MQ29sbGVjdGlvbj4g
RG9jdW1lbnQ6OmVtYmVkcygpCiB7Ci0gICAgcmV0dXJuIEhUTUxDb2xsZWN0aW9uOjpjcmVhdGUo
dGhpcywgRG9jRW1iZWRzKTsKKyAgICByZXR1cm4gY29sbGVjdGlvbihEb2NFbWJlZHMpOwogfQog
CiBQYXNzUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiBEb2N1bWVudDo6cGx1Z2lucygpCiB7CiAgICAg
Ly8gVGhpcyBpcyBhbiBhbGlhcyBmb3IgZW1iZWRzKCkgcmVxdWlyZWQgZm9yIHRoZSBKUyBET00g
YmluZGluZ3MuCi0gICAgcmV0dXJuIEhUTUxDb2xsZWN0aW9uOjpjcmVhdGUodGhpcywgRG9jRW1i
ZWRzKTsKKyAgICByZXR1cm4gY29sbGVjdGlvbihEb2NFbWJlZHMpOwogfQogCiBQYXNzUmVmUHRy
PEhUTUxDb2xsZWN0aW9uPiBEb2N1bWVudDo6b2JqZWN0cygpCiB7Ci0gICAgcmV0dXJuIEhUTUxD
b2xsZWN0aW9uOjpjcmVhdGUodGhpcywgRG9jT2JqZWN0cyk7CisgICAgcmV0dXJuIGNvbGxlY3Rp
b24oRG9jT2JqZWN0cyk7CiB9CiAKIFBhc3NSZWZQdHI8SFRNTENvbGxlY3Rpb24+IERvY3VtZW50
OjpzY3JpcHRzKCkKIHsKLSAgICByZXR1cm4gSFRNTENvbGxlY3Rpb246OmNyZWF0ZSh0aGlzLCBE
b2NTY3JpcHRzKTsKKyAgICByZXR1cm4gY29sbGVjdGlvbihEb2NTY3JpcHRzKTsKIH0KIAogUGFz
c1JlZlB0cjxIVE1MQ29sbGVjdGlvbj4gRG9jdW1lbnQ6OmxpbmtzKCkKIHsKLSAgICByZXR1cm4g
SFRNTENvbGxlY3Rpb246OmNyZWF0ZSh0aGlzLCBEb2NMaW5rcyk7CisgICAgcmV0dXJuIGNvbGxl
Y3Rpb24oRG9jTGlua3MpOwogfQogCiBQYXNzUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiBEb2N1bWVu
dDo6Zm9ybXMoKQogewotICAgIHJldHVybiBIVE1MQ29sbGVjdGlvbjo6Y3JlYXRlKHRoaXMsIERv
Y0Zvcm1zKTsKKyAgICByZXR1cm4gY29sbGVjdGlvbihEb2NGb3Jtcyk7CiB9CiAKIFBhc3NSZWZQ
dHI8SFRNTENvbGxlY3Rpb24+IERvY3VtZW50OjphbmNob3JzKCkKIHsKLSAgICByZXR1cm4gSFRN
TENvbGxlY3Rpb246OmNyZWF0ZSh0aGlzLCBEb2NBbmNob3JzKTsKKyAgICByZXR1cm4gY29sbGVj
dGlvbihEb2NBbmNob3JzKTsKIH0KIAogUGFzc1JlZlB0cjxIVE1MQWxsQ29sbGVjdGlvbj4gRG9j
dW1lbnQ6OmFsbCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IGI3Yjk3ZjUuLmM0ZTlhYjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xNDI0LDYgKzE0MjQsOSBAQCBwcml2YXRlOgogI2lmIEVO
QUJMRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkKICAgICBPd25QdHI8U2NyaXB0ZWRBbmltYXRp
b25Db250cm9sbGVyPiBtX3NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcjsKICNlbmRpZgorCisg
ICAgY29uc3QgUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiYgY29sbGVjdGlvbihDb2xsZWN0aW9uVHlw
ZSk7CisgICAgVmVjdG9yPFJlZlB0cjxIVE1MQ29sbGVjdGlvbj4sIE51bUNvbGxlY3Rpb25UeXBl
cz4gbV9jb2xsZWN0aW9uczsKIH07CiAKIC8vIFB1dCB0aGVzZSBtZXRob2RzIGhlcmUsIGJlY2F1
c2UgdGhleSByZXF1aXJlIHRoZSBEb2N1bWVudCBkZWZpbml0aW9uLCBidXQgd2UgcmVhbGx5IHdh
bnQgdG8gaW5saW5lIHRoZW0uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbGxl
Y3Rpb25UeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbGxlY3Rpb25UeXBlLmgKaW5kZXgg
OWQ3YmI1NC4uMmIwN2ZmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xsZWN0
aW9uVHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sbGVjdGlvblR5cGUuaApAQCAt
NTQsNyArNTQsOSBAQCBlbnVtIENvbGxlY3Rpb25UeXBlIHsKICAgICBEYXRhTGlzdE9wdGlvbnMs
CiAgICAgTWFwQXJlYXMsCiAKLSAgICBPdGhlckNvbGxlY3Rpb24KKyAgICBPdGhlckNvbGxlY3Rp
b24sCisKKyAgICBOdW1Db2xsZWN0aW9uVHlwZXMKIH07CiAKIHN0YXRpYyBjb25zdCBDb2xsZWN0
aW9uVHlwZSBGaXJzdFVubmFtZWREb2N1bWVudENhY2hlZFR5cGUgPSBEb2NJbWFnZXM7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114504</attachid>
            <date>2011-11-10 08:13:03 -0800</date>
            <delta_ts>2011-12-16 13:04:57 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>bug-71956.diff</filename>
            <type>text/plain</type>
            <size>10103</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5ZGRlOThlLi5jN2Y3ZmMzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMTEt
MTAgIEFuZHJlYXMgS2xpbmcgIDxrbGluZ0B3ZWJraXQub3JnPgorCisgICAgICAgIENhY2hlIGFu
ZCByZXVzZSBIVE1MQ29sbGVjdGlvbnMgZXhwb3NlZCBieSBEb2N1bWVudC4KKyAgICAgICAgPGh0
dHA6Ly93ZWJraXQub3JnL2IvNzE5NTY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVXBkYXRlIGZhc3QvZG9tL2djLTkuaHRtbCB0byBkb2N1bWVudCB0
aGUgbmV3IGxpZmV0aW1lIGJlaGF2aW9yIG9mCisgICAgICAgIEhUTUxDb2xsZWN0aW9uIG9iamVj
dHMgcmV0dXJuZWQgYnkgZG9jdW1lbnQuCisKKyAgICAgICAgKiBmYXN0L2RvbS9nYy05LWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9nYy05Lmh0bWw6CisKIDIwMTEtMTEtMTAgIE5p
a29sYXMgWmltbWVybWFubiAgPG56aW1tZXJtYW5uQHJpbS5jb20+CiAKICAgICAgICAgW0dUS10g
c3ZnL2FzLWltYWdlL3N2Zy1pbWFnZS1jaGFuZ2UtY29udGVudC1zaXplLnhodG1sIGNyYXNoZXMK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2djLTktZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vZ2MtOS1leHBlY3RlZC50eHQKaW5kZXggNDE0ZTE2Zi4uY2I1YjQy
YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vZ2MtOS1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vZ2MtOS1leHBlY3RlZC50eHQKQEAgLTE2LDEzICsxNiwx
MyBAQCBQQVNTOiBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnY2FudmFzJylbMF0uZ2V0
Q29udGV4dCgnMmQnKS5jcmVhdGVQYXR0ZXJuKAogUEFTUzogZG9jdW1lbnQuZ2V0RWxlbWVudHNC
eVRhZ05hbWUoJ3NlbGVjdCcpWzBdLm9wdGlvbnMubXlDdXN0b21Qcm9wZXJ0eSBzaG91bGQgYmUg
dW5kZWZpbmVkIGFuZCBpcy4KIFBBU1M6IGRvY3VtZW50LmFsbC5teUN1c3RvbVByb3BlcnR5IHNo
b3VsZCBiZSB1bmRlZmluZWQgYW5kIGlzLgogUEFTUzogZG9jdW1lbnQuYm9keS5jaGlsZE5vZGVz
Lm15Q3VzdG9tUHJvcGVydHkgc2hvdWxkIGJlIHVuZGVmaW5lZCBhbmQgaXMuCi1QQVNTOiBkb2N1
bWVudC5pbWFnZXMubXlDdXN0b21Qcm9wZXJ0eSBzaG91bGQgYmUgdW5kZWZpbmVkIGFuZCBpcy4K
LVBBU1M6IGRvY3VtZW50LmVtYmVkcy5teUN1c3RvbVByb3BlcnR5IHNob3VsZCBiZSB1bmRlZmlu
ZWQgYW5kIGlzLgotUEFTUzogZG9jdW1lbnQuYXBwbGV0cy5teUN1c3RvbVByb3BlcnR5IHNob3Vs
ZCBiZSB1bmRlZmluZWQgYW5kIGlzLgotUEFTUzogZG9jdW1lbnQubGlua3MubXlDdXN0b21Qcm9w
ZXJ0eSBzaG91bGQgYmUgdW5kZWZpbmVkIGFuZCBpcy4KLVBBU1M6IGRvY3VtZW50LmZvcm1zLm15
Q3VzdG9tUHJvcGVydHkgc2hvdWxkIGJlIHVuZGVmaW5lZCBhbmQgaXMuCi1QQVNTOiBkb2N1bWVu
dC5hbmNob3JzLm15Q3VzdG9tUHJvcGVydHkgc2hvdWxkIGJlIHVuZGVmaW5lZCBhbmQgaXMuCi1Q
QVNTOiBkb2N1bWVudC5zY3JpcHRzLm15Q3VzdG9tUHJvcGVydHkgc2hvdWxkIGJlIHVuZGVmaW5l
ZCBhbmQgaXMuCitQQVNTOiBkb2N1bWVudC5pbWFnZXMubXlDdXN0b21Qcm9wZXJ0eSBzaG91bGQg
YmUgMSBhbmQgaXMuCitQQVNTOiBkb2N1bWVudC5lbWJlZHMubXlDdXN0b21Qcm9wZXJ0eSBzaG91
bGQgYmUgMSBhbmQgaXMuCitQQVNTOiBkb2N1bWVudC5hcHBsZXRzLm15Q3VzdG9tUHJvcGVydHkg
c2hvdWxkIGJlIDEgYW5kIGlzLgorUEFTUzogZG9jdW1lbnQubGlua3MubXlDdXN0b21Qcm9wZXJ0
eSBzaG91bGQgYmUgMSBhbmQgaXMuCitQQVNTOiBkb2N1bWVudC5mb3Jtcy5teUN1c3RvbVByb3Bl
cnR5IHNob3VsZCBiZSAxIGFuZCBpcy4KK1BBU1M6IGRvY3VtZW50LmFuY2hvcnMubXlDdXN0b21Q
cm9wZXJ0eSBzaG91bGQgYmUgMSBhbmQgaXMuCitQQVNTOiBkb2N1bWVudC5zY3JpcHRzLm15Q3Vz
dG9tUHJvcGVydHkgc2hvdWxkIGJlIDEgYW5kIGlzLgogUEFTUzogZG9jdW1lbnQuZ2V0RWxlbWVu
dHNCeVRhZ05hbWUoJ2Zvcm0nKVswXS5lbGVtZW50cy5teUN1c3RvbVByb3BlcnR5IHNob3VsZCBi
ZSB1bmRlZmluZWQgYW5kIGlzLgogUEFTUzogZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUo
J3RhYmxlJylbMF0ucm93cy5teUN1c3RvbVByb3BlcnR5IHNob3VsZCBiZSB1bmRlZmluZWQgYW5k
IGlzLgogUEFTUzogZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3RhYmxlJylbMF0ucm93
c1swXS5jZWxscy5teUN1c3RvbVByb3BlcnR5IHNob3VsZCBiZSB1bmRlZmluZWQgYW5kIGlzLgpA
QCAtNTIsMTMgKzUyLDEzIEBAIFBBU1M6IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdj
YW52YXMnKVswXS5nZXRDb250ZXh0KCcyZCcpLmNyZWF0ZVBhdHRlcm4oCiBQQVNTOiBkb2N1bWVu
dC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2VsZWN0JylbMF0ub3B0aW9ucy5teUN1c3RvbVByb3Bl
cnR5IHNob3VsZCBiZSB1bmRlZmluZWQgYW5kIGlzLgogUEFTUzogZG9jdW1lbnQuYWxsLm15Q3Vz
dG9tUHJvcGVydHkgc2hvdWxkIGJlIHVuZGVmaW5lZCBhbmQgaXMuCiBQQVNTOiBkb2N1bWVudC5i
b2R5LmNoaWxkTm9kZXMubXlDdXN0b21Qcm9wZXJ0eSBzaG91bGQgYmUgdW5kZWZpbmVkIGFuZCBp
cy4KLVBBU1M6IGRvY3VtZW50LmltYWdlcy5teUN1c3RvbVByb3BlcnR5IHNob3VsZCBiZSB1bmRl
ZmluZWQgYW5kIGlzLgotUEFTUzogZG9jdW1lbnQuZW1iZWRzLm15Q3VzdG9tUHJvcGVydHkgc2hv
dWxkIGJlIHVuZGVmaW5lZCBhbmQgaXMuCi1QQVNTOiBkb2N1bWVudC5hcHBsZXRzLm15Q3VzdG9t
UHJvcGVydHkgc2hvdWxkIGJlIHVuZGVmaW5lZCBhbmQgaXMuCi1QQVNTOiBkb2N1bWVudC5saW5r
cy5teUN1c3RvbVByb3BlcnR5IHNob3VsZCBiZSB1bmRlZmluZWQgYW5kIGlzLgotUEFTUzogZG9j
dW1lbnQuZm9ybXMubXlDdXN0b21Qcm9wZXJ0eSBzaG91bGQgYmUgdW5kZWZpbmVkIGFuZCBpcy4K
LVBBU1M6IGRvY3VtZW50LmFuY2hvcnMubXlDdXN0b21Qcm9wZXJ0eSBzaG91bGQgYmUgdW5kZWZp
bmVkIGFuZCBpcy4KLVBBU1M6IGRvY3VtZW50LnNjcmlwdHMubXlDdXN0b21Qcm9wZXJ0eSBzaG91
bGQgYmUgdW5kZWZpbmVkIGFuZCBpcy4KK1BBU1M6IGRvY3VtZW50LmltYWdlcy5teUN1c3RvbVBy
b3BlcnR5IHNob3VsZCBiZSAxIGFuZCBpcy4KK1BBU1M6IGRvY3VtZW50LmVtYmVkcy5teUN1c3Rv
bVByb3BlcnR5IHNob3VsZCBiZSAxIGFuZCBpcy4KK1BBU1M6IGRvY3VtZW50LmFwcGxldHMubXlD
dXN0b21Qcm9wZXJ0eSBzaG91bGQgYmUgMSBhbmQgaXMuCitQQVNTOiBkb2N1bWVudC5saW5rcy5t
eUN1c3RvbVByb3BlcnR5IHNob3VsZCBiZSAxIGFuZCBpcy4KK1BBU1M6IGRvY3VtZW50LmZvcm1z
Lm15Q3VzdG9tUHJvcGVydHkgc2hvdWxkIGJlIDEgYW5kIGlzLgorUEFTUzogZG9jdW1lbnQuYW5j
aG9ycy5teUN1c3RvbVByb3BlcnR5IHNob3VsZCBiZSAxIGFuZCBpcy4KK1BBU1M6IGRvY3VtZW50
LnNjcmlwdHMubXlDdXN0b21Qcm9wZXJ0eSBzaG91bGQgYmUgMSBhbmQgaXMuCiBQQVNTOiBkb2N1
bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnZm9ybScpWzBdLmVsZW1lbnRzLm15Q3VzdG9tUHJv
cGVydHkgc2hvdWxkIGJlIHVuZGVmaW5lZCBhbmQgaXMuCiBQQVNTOiBkb2N1bWVudC5nZXRFbGVt
ZW50c0J5VGFnTmFtZSgndGFibGUnKVswXS5yb3dzLm15Q3VzdG9tUHJvcGVydHkgc2hvdWxkIGJl
IHVuZGVmaW5lZCBhbmQgaXMuCiBQQVNTOiBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgn
dGFibGUnKVswXS5yb3dzWzBdLmNlbGxzLm15Q3VzdG9tUHJvcGVydHkgc2hvdWxkIGJlIHVuZGVm
aW5lZCBhbmQgaXMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9nYy05Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9nYy05Lmh0bWwKaW5kZXggM2VkYTNhZS4uYzhmZDRkYyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vZ2MtOS5odG1sCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL2djLTkuaHRtbApAQCAtMTI2LDEzICsxMjYsMTMgQEAgdmFyIG9iamVjdHNU
b1Rlc3QgPSBbCiAgICAgWyAiZG9jdW1lbnQuYWxsIiBdLAogICAgIFsgImRvY3VtZW50LmJvZHku
Y2hpbGROb2RlcyIgXSwKIAotICAgIFsgImRvY3VtZW50LmltYWdlcyIgXSwKLSAgICBbICJkb2N1
bWVudC5lbWJlZHMiIF0sCi0gICAgWyAiZG9jdW1lbnQuYXBwbGV0cyIgXSwKLSAgICBbICJkb2N1
bWVudC5saW5rcyIgXSwKLSAgICBbICJkb2N1bWVudC5mb3JtcyIgXSwKLSAgICBbICJkb2N1bWVu
dC5hbmNob3JzIiBdLAotICAgIFsgImRvY3VtZW50LnNjcmlwdHMiIF0sCisgICAgWyAiZG9jdW1l
bnQuaW1hZ2VzIiwgImFsbG93IGN1c3RvbSIgXSwKKyAgICBbICJkb2N1bWVudC5lbWJlZHMiLCAi
YWxsb3cgY3VzdG9tIiBdLAorICAgIFsgImRvY3VtZW50LmFwcGxldHMiLCAiYWxsb3cgY3VzdG9t
IiBdLAorICAgIFsgImRvY3VtZW50LmxpbmtzIiwgImFsbG93IGN1c3RvbSIgXSwKKyAgICBbICJk
b2N1bWVudC5mb3JtcyIsICJhbGxvdyBjdXN0b20iIF0sCisgICAgWyAiZG9jdW1lbnQuYW5jaG9y
cyIsICJhbGxvdyBjdXN0b20iIF0sCisgICAgWyAiZG9jdW1lbnQuc2NyaXB0cyIsICJhbGxvdyBj
dXN0b20iIF0sCiAKICAgICBbICJkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnZm9ybScp
WzBdLmVsZW1lbnRzIiBdLAogICAgIFsgImRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCd0
YWJsZScpWzBdLnJvd3MiIF0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWExNjdlYi4uZmY0NjhjYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDExLTExLTEwICBBbmRyZWFzIEtsaW5nICA8a2xpbmdA
d2Via2l0Lm9yZz4KKworICAgICAgICBDYWNoZSBhbmQgcmV1c2UgSFRNTENvbGxlY3Rpb25zIGV4
cG9zZWQgYnkgRG9jdW1lbnQuCisgICAgICAgIDxodHRwOi8vd2Via2l0Lm9yZy9iLzcxOTU2Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIExldCBEb2N1
bWVudCBjYWNoZSB0aGUgdmFyaW91cyBIVE1MQ29sbGVjdGlvbiBvYmplY3RzIGl0IGV4cG9zZXMu
CisgICAgICAgIFRoZXkncmUgY3JlYXRlZCBvbi1kZW1hbmQgYW5kIHN0b3JlZCBpbiBhIHRpZ2h0
IFZlY3Rvci4KKyAgICAgICAgVGhpcyBpcyBhIGJlaGF2aW9yIGNoYW5nZSwgc2luY2UgdGhlIGxp
ZmV0aW1lIG9mIHJldHVybmVkIGNvbGxlY3Rpb25zCisgICAgICAgIGlzIG5vdyB0aWVkIHRvIHRo
ZSBsaWZldGltZSBvZiB0aGUgRG9jdW1lbnQuIEhvd2V2ZXIsIHRoaXMgbWF0Y2hlcyB0aGUKKyAg
ICAgICAgY3VycmVudCBiZWhhdmlvciBvZiBGaXJlZm94IGFuZCBPcGVyYS4KKworICAgICAgICBU
aGlzIHJlZHVjZXMgbWVtb3J5IGNvbnN1bXB0aW9uIGJ5IH44MDAga0IgKG9uIDY0LWJpdCkgd2hl
biBsb2FkaW5nCisgICAgICAgIHRoZSBmdWxsIEhUTUw1IHNwZWMuIGRvY3VtZW50LmxpbmtzIHdh
cyBjYWxsZWQgMzQwMDEgdGltZXMsIHlpZWxkaW5nCisgICAgICAgIDM0MDAxIHNlcGFyYXRlIEhU
TUxDb2xsZWN0aW9ucywgYW5kIG5vdyB3ZSBvbmx5IG5lZWQgMS4KKworICAgICAgICBUaGUgZG9j
dW1lbnQuYWxsIGNvbGxlY3Rpb24gcmV0YWlucyB0aGUgb2xkIGJlaGF2aW9yLCBhcyBjYWNoaW5n
IGl0CisgICAgICAgIHdvdWxkIGJlIGEgYml0IG1vcmUgY29tcGxpY2F0ZWQuCisKKyAgICAgICAg
KiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OkRvY3VtZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpyZW1vdmVkTGFzdFJlZik6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudDo6Y29sbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudDo6aW1hZ2VzKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjphcHBsZXRzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjplbWJlZHMpOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6OnBsdWdpbnMpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6Om9iamVjdHMpOgor
ICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNjcmlwdHMpOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnQ6OmxpbmtzKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpmb3Jtcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6YW5jaG9ycyk6CisgICAgICAgICogZG9tL0RvY3Vt
ZW50Lmg6CisgICAgICAgICogaHRtbC9Db2xsZWN0aW9uVHlwZS5oOgorCiAyMDExLTExLTEwICBO
aWtvbGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkByaW0uY29tPgogCiAgICAgICAgIFtHVEtd
IHN2Zy9hcy1pbWFnZS9zdmctaW1hZ2UtY2hhbmdlLWNvbnRlbnQtc2l6ZS54aHRtbCBjcmFzaGVz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBkOGJhZjU3Li4xMjVlYTQxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAKQEAgLTQxMSw2ICs0MTEsNyBAQCBEb2N1bWVudDo6RG9jdW1lbnQoRnJh
bWUqIGZyYW1lLCBjb25zdCBLVVJMJiB1cmwsIGJvb2wgaXNYSFRNTCwgYm9vbCBpc0hUTUwpCiAg
ICAgLCBtX3dyaXRlUmVjdXJzaW9uSXNUb29EZWVwKGZhbHNlKQogICAgICwgbV93cml0ZVJlY3Vy
c2lvbkRlcHRoKDApCiAgICAgLCBtX3doZWVsRXZlbnRIYW5kbGVyQ291bnQoMCkKKyAgICAsIG1f
Y29sbGVjdGlvbnMoTnVtQ29sbGVjdGlvblR5cGVzKQogewogICAgIG1fZG9jdW1lbnQgPSB0aGlz
OwogCkBAIC01NzEsNiArNTcyLDggQEAgdm9pZCBEb2N1bWVudDo6cmVtb3ZlZExhc3RSZWYoKQog
CiAgICAgICAgIGRldGFjaFBhcnNlcigpOwogCisgICAgICAgIG1fY29sbGVjdGlvbnMuY2xlYXIo
KTsKKwogICAgICAgICBtX2Nzc0NhbnZhc0VsZW1lbnRzLmNsZWFyKCk7CiAKICNpZiBFTkFCTEUo
UkVRVUVTVF9BTklNQVRJT05fRlJBTUUpCkBAIC00MDk2LDUwICs0MDk5LDU5IEBAIGJvb2wgRG9j
dW1lbnQ6Omhhc1NWR1Jvb3ROb2RlKCkgY29uc3QKIH0KICNlbmRpZgogCitjb25zdCBSZWZQdHI8
SFRNTENvbGxlY3Rpb24+JiBEb2N1bWVudDo6Y29sbGVjdGlvbihDb2xsZWN0aW9uVHlwZSB0eXBl
KQoreworICAgIEFTU0VSVCh0eXBlIDwgTnVtQ29sbGVjdGlvblR5cGVzKTsKKyAgICBpZiAoIW1f
Y29sbGVjdGlvbnNbdHlwZV0pCisgICAgICAgIG1fY29sbGVjdGlvbnNbdHlwZV0gPSBIVE1MQ29s
bGVjdGlvbjo6Y3JlYXRlKHRoaXMsIHR5cGUpOworICAgIEFTU0VSVChtX2NvbGxlY3Rpb25zW3R5
cGVdKTsKKyAgICByZXR1cm4gbV9jb2xsZWN0aW9uc1t0eXBlXTsKK30KKwogUGFzc1JlZlB0cjxI
VE1MQ29sbGVjdGlvbj4gRG9jdW1lbnQ6OmltYWdlcygpCiB7Ci0gICAgcmV0dXJuIEhUTUxDb2xs
ZWN0aW9uOjpjcmVhdGUodGhpcywgRG9jSW1hZ2VzKTsKKyAgICByZXR1cm4gY29sbGVjdGlvbihE
b2NJbWFnZXMpOwogfQogCiBQYXNzUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiBEb2N1bWVudDo6YXBw
bGV0cygpCiB7Ci0gICAgcmV0dXJuIEhUTUxDb2xsZWN0aW9uOjpjcmVhdGUodGhpcywgRG9jQXBw
bGV0cyk7CisgICAgcmV0dXJuIGNvbGxlY3Rpb24oRG9jQXBwbGV0cyk7CiB9CiAKIFBhc3NSZWZQ
dHI8SFRNTENvbGxlY3Rpb24+IERvY3VtZW50OjplbWJlZHMoKQogewotICAgIHJldHVybiBIVE1M
Q29sbGVjdGlvbjo6Y3JlYXRlKHRoaXMsIERvY0VtYmVkcyk7CisgICAgcmV0dXJuIGNvbGxlY3Rp
b24oRG9jRW1iZWRzKTsKIH0KIAogUGFzc1JlZlB0cjxIVE1MQ29sbGVjdGlvbj4gRG9jdW1lbnQ6
OnBsdWdpbnMoKQogewogICAgIC8vIFRoaXMgaXMgYW4gYWxpYXMgZm9yIGVtYmVkcygpIHJlcXVp
cmVkIGZvciB0aGUgSlMgRE9NIGJpbmRpbmdzLgotICAgIHJldHVybiBIVE1MQ29sbGVjdGlvbjo6
Y3JlYXRlKHRoaXMsIERvY0VtYmVkcyk7CisgICAgcmV0dXJuIGNvbGxlY3Rpb24oRG9jRW1iZWRz
KTsKIH0KIAogUGFzc1JlZlB0cjxIVE1MQ29sbGVjdGlvbj4gRG9jdW1lbnQ6Om9iamVjdHMoKQog
ewotICAgIHJldHVybiBIVE1MQ29sbGVjdGlvbjo6Y3JlYXRlKHRoaXMsIERvY09iamVjdHMpOwor
ICAgIHJldHVybiBjb2xsZWN0aW9uKERvY09iamVjdHMpOwogfQogCiBQYXNzUmVmUHRyPEhUTUxD
b2xsZWN0aW9uPiBEb2N1bWVudDo6c2NyaXB0cygpCiB7Ci0gICAgcmV0dXJuIEhUTUxDb2xsZWN0
aW9uOjpjcmVhdGUodGhpcywgRG9jU2NyaXB0cyk7CisgICAgcmV0dXJuIGNvbGxlY3Rpb24oRG9j
U2NyaXB0cyk7CiB9CiAKIFBhc3NSZWZQdHI8SFRNTENvbGxlY3Rpb24+IERvY3VtZW50OjpsaW5r
cygpCiB7Ci0gICAgcmV0dXJuIEhUTUxDb2xsZWN0aW9uOjpjcmVhdGUodGhpcywgRG9jTGlua3Mp
OworICAgIHJldHVybiBjb2xsZWN0aW9uKERvY0xpbmtzKTsKIH0KIAogUGFzc1JlZlB0cjxIVE1M
Q29sbGVjdGlvbj4gRG9jdW1lbnQ6OmZvcm1zKCkKIHsKLSAgICByZXR1cm4gSFRNTENvbGxlY3Rp
b246OmNyZWF0ZSh0aGlzLCBEb2NGb3Jtcyk7CisgICAgcmV0dXJuIGNvbGxlY3Rpb24oRG9jRm9y
bXMpOwogfQogCiBQYXNzUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiBEb2N1bWVudDo6YW5jaG9ycygp
CiB7Ci0gICAgcmV0dXJuIEhUTUxDb2xsZWN0aW9uOjpjcmVhdGUodGhpcywgRG9jQW5jaG9ycyk7
CisgICAgcmV0dXJuIGNvbGxlY3Rpb24oRG9jQW5jaG9ycyk7CiB9CiAKIFBhc3NSZWZQdHI8SFRN
TEFsbENvbGxlY3Rpb24+IERvY3VtZW50OjphbGwoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCBi
N2I5N2Y1Li5jNGU5YWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTQyNCw2ICsxNDI0LDkg
QEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpCiAgICAgT3du
UHRyPFNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcj4gbV9zY3JpcHRlZEFuaW1hdGlvbkNvbnRy
b2xsZXI7CiAjZW5kaWYKKworICAgIGNvbnN0IFJlZlB0cjxIVE1MQ29sbGVjdGlvbj4mIGNvbGxl
Y3Rpb24oQ29sbGVjdGlvblR5cGUpOworICAgIFZlY3RvcjxSZWZQdHI8SFRNTENvbGxlY3Rpb24+
LCBOdW1Db2xsZWN0aW9uVHlwZXM+IG1fY29sbGVjdGlvbnM7CiB9OwogCiAvLyBQdXQgdGhlc2Ug
bWV0aG9kcyBoZXJlLCBiZWNhdXNlIHRoZXkgcmVxdWlyZSB0aGUgRG9jdW1lbnQgZGVmaW5pdGlv
biwgYnV0IHdlIHJlYWxseSB3YW50IHRvIGlubGluZSB0aGVtLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9Db2xsZWN0aW9uVHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xs
ZWN0aW9uVHlwZS5oCmluZGV4IDlkN2JiNTQuLjJiMDdmZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvQ29sbGVjdGlvblR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Nv
bGxlY3Rpb25UeXBlLmgKQEAgLTU0LDcgKzU0LDkgQEAgZW51bSBDb2xsZWN0aW9uVHlwZSB7CiAg
ICAgRGF0YUxpc3RPcHRpb25zLAogICAgIE1hcEFyZWFzLAogCi0gICAgT3RoZXJDb2xsZWN0aW9u
CisgICAgT3RoZXJDb2xsZWN0aW9uLAorCisgICAgTnVtQ29sbGVjdGlvblR5cGVzCiB9OwogCiBz
dGF0aWMgY29uc3QgQ29sbGVjdGlvblR5cGUgRmlyc3RVbm5hbWVkRG9jdW1lbnRDYWNoZWRUeXBl
ID0gRG9jSW1hZ2VzOwo=
</data>
<flag name="review"
          id="113171"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>115039</attachid>
            <date>2011-11-14 15:11:25 -0800</date>
            <delta_ts>2011-11-14 15:11:25 -0800</delta_ts>
            <desc>run before regression stdio</desc>
            <filename>before-regression-stdio.html</filename>
            <type>text/html</type>
            <size>10851</size>
            <attacher name="Ojan Vafai">ojan</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFs
Ly9FTiIKICAgICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0
aW9uYWwuZHRkIj4KICA8aHRtbD4KICA8aGVhZD48dGl0bGU+TG9nIEZpbGUgY29udGVudHM8L3Rp
dGxlPgogIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4v
ZGVmYXVsdC5jc3MiIHR5cGU9InRleHQvY3NzIiAvPgogIDwvaGVhZD4KICA8Ym9keSBjbGFzcz0n
bG9nJz4KICAgIDxhIGhyZWY9InN0ZGlvL3RleHQiPih2aWV3IGFzIHRleHQpPC9hPjxici8+CiAg
ICA8cHJlPjxzcGFuIGNsYXNzPSJoZWFkZXIiPnB5dGhvbl9zbGF2ZSAuLlwuLlwuLlxzY3JpcHRz
XHNsYXZlXHJ1bnRlc3QucHkgLS10YXJnZXQgUmVsZWFzZSAtLWJ1aWxkLWRpciBzcmMvYnVpbGQg
cGVyZm9ybWFuY2VfdWlfdGVzdHMuZXhlIC0tZ3Rlc3RfZmlsdGVyPVBhZ2VDeWNsZXIqLkludGwx
RmlsZTpQYWdlQ3ljbGVyKi4qX0ludGwxRmlsZQogaW4gZGlyIEM6XGJcYnVpbGRcc2xhdmVcVmlz
dGFfUGVyZlxidWlsZCAodGltZW91dCA2MDAgc2VjcykKIHdhdGNoaW5nIGxvZ2ZpbGVzIHt9CiBh
cmd2OiBbJiMzOTtweXRob25fc2xhdmUmIzM5OywgJiMzOTsuLlxcLi5cXC4uXFxzY3JpcHRzXFxz
bGF2ZVxccnVudGVzdC5weSYjMzk7LCAmIzM5Oy0tdGFyZ2V0JiMzOTssICYjMzk7UmVsZWFzZSYj
Mzk7LCAmIzM5Oy0tYnVpbGQtZGlyJiMzOTssICYjMzk7c3JjL2J1aWxkJiMzOTssICYjMzk7cGVy
Zm9ybWFuY2VfdWlfdGVzdHMuZXhlJiMzOTssICYjMzk7LS1ndGVzdF9maWx0ZXI9UGFnZUN5Y2xl
ciouSW50bDFGaWxlOlBhZ2VDeWNsZXIqLipfSW50bDFGaWxlJiMzOTtdCiBlbnZpcm9ubWVudDoK
ICBBUFBEQVRBPUM6XFVzZXJzXGNocm9tZS1ib3QuUEVSRlxBcHBEYXRhXFJvYW1pbmcKICBDSFJP
TUVfSEVBRExFU1M9MQogIENPTVBVVEVSTkFNRT1DSFJPTUVQRVJGMTQKICBDT01TUEVDPUM6XFdp
bmRvd3Ncc3lzdGVtMzJcY21kLmV4ZQogIEhPTUVEUklWRT1DOgogIEhPTUVQQVRIPVxVc2Vyc1xj
aHJvbWUtYm90LlBFUkYKICBMT0NBTEFQUERBVEE9QzpcVXNlcnNcY2hyb21lLWJvdC5QRVJGXEFw
cERhdGFcTG9jYWwKICBMT0dOQU1FPWNocm9tZS1ib3QKICBOVU1CRVJfT0ZfUFJPQ0VTU09SUz00
CiAgT1M9V2luZG93c19OVAogIFBBVEg9QzpcYlxidWlsZFwuLlxkZXBvdF90b29scztDOlxiXGRl
cG90X3Rvb2xzXHB5dGhvbl9iaW47QzpcV2luZG93c1xzeXN0ZW0zMjtDOlxXaW5kb3dzXHN5c3Rl
bTMyXFdCRU07QzpcYlxidWlsZF9pbnRlcm5hbFx0b29scwogIFBBVEhFWFQ9LkNPTTsuRVhFOy5C
QVQ7LkNNRDsuVkJTOy5WQkU7LkpTOy5KU0U7LldTRjsuV1NIOy5NU0MKICBQUk9DRVNTT1JfQVJD
SElURUNUVVJFPXg4NgogIFBST0NFU1NPUl9BUkNISVRFVzY0MzI9QU1ENjQKICBQUk9HUkFNRklM
RVM9QzpcUHJvZ3JhbSBGaWxlcyAoeDg2KQogIFBST0dSQU1XNjQzMj1DOlxQcm9ncmFtIEZpbGVz
CiAgUFdEPUM6XGJcYnVpbGRcc2xhdmVcVmlzdGFfUGVyZlxidWlsZAogIFBZVEhPTlBBVEg9Qzpc
YlxidWlsZFx0aGlyZF9wYXJ0eVxidWlsZGJvdF83XzEyO0M6XGJcYnVpbGRcdGhpcmRfcGFydHlc
dHdpc3RlZF84XzE7QzpcYlxidWlsZFxzaXRlX2NvbmZpZztDOlxiXGJ1aWxkXHNjcmlwdHM7Qzpc
YlxidWlsZFxzY3JpcHRzXHJlbGVhc2U7QzpcYlxidWlsZFx0aGlyZF9wYXJ0eTtDOlxiXGJ1aWxk
X2ludGVybmFsXHNpdGVfY29uZmlnO0M6XGJcYnVpbGRfaW50ZXJuYWxcc3ltc3JjOy4KICBTWVNU
RU1EUklWRT1DOgogIFNZU1RFTVJPT1Q9QzpcV2luZG93cwogIFRFTVA9QzpcVXNlcnNcQ0hST01F
fjEuUEVSXEFwcERhdGFcTG9jYWxcVGVtcAogIFRNUD1DOlxVc2Vyc1xDSFJPTUV+MS5QRVJcQXBw
RGF0YVxMb2NhbFxUZW1wCiAgVVNFUkRPTUFJTj1QRVJGCiAgVVNFUk5BTUU9Y2hyb21lLWJvdAog
IFVTRVJQUk9GSUxFPUM6XFVzZXJzXGNocm9tZS1ib3QuUEVSRgogIFdJTkRJUj1DOlxXaW5kb3dz
CiBjbG9zaW5nIHN0ZGluCiB1c2luZyBQVFk6IEZhbHNlCjwvc3Bhbj48c3BhbiBjbGFzcz0ic3Rk
b3V0Ij5bUnVubmluZyBvbiBidWlsZGVyOiAmIzM0O05vbmUmIzM0O10NCg0KQzpcYlxidWlsZFxz
bGF2ZVxWaXN0YV9QZXJmXGJ1aWxkXHNyY1xidWlsZFxSZWxlYXNlXHBlcmZvcm1hbmNlX3VpX3Rl
c3RzLmV4ZSAtLWd0ZXN0X2ZpbHRlcj1QYWdlQ3ljbGVyKi5JbnRsMUZpbGU6UGFnZUN5Y2xlciou
Kl9JbnRsMUZpbGUNCk5vdGU6IEdvb2dsZSBUZXN0IGZpbHRlciA9IFBhZ2VDeWNsZXIqLkludGwx
RmlsZTpQYWdlQ3ljbGVyKi4qX0ludGwxRmlsZQ0KWz09PT09PT09PT1dIFJ1bm5pbmcgMiB0ZXN0
cyBmcm9tIDIgdGVzdCBjYXNlcy4NClstLS0tLS0tLS0tXSBHbG9iYWwgdGVzdCBlbnZpcm9ubWVu
dCBzZXQtdXAuDQpbLS0tLS0tLS0tLV0gMSB0ZXN0IGZyb20gUGFnZUN5Y2xlclRlc3QNClsgUlVO
ICAgICAgXSBQYWdlQ3ljbGVyVGVzdC5JbnRsMUZpbGUNClJFU1VMVCB2bV9wZWFrX2I6IHZtX3Br
X2I9IDI2MjAyMTEyIGJ5dGVzDQpSRVNVTFQgd3NfcGVha19iOiB3c19wa19iPSA0ODMwODIyNCBi
eXRlcw0KUkVTVUxUIHZtX3BlYWtfcjogdm1fcGtfcj0gMTMwMzgzODcyIGJ5dGVzDQpSRVNVTFQg
d3NfcGVha19yOiB3c19wa19yPSAxMjg0MTc3OTIgYnl0ZXMNClJFU1VMVCB2bV9zaW5nbGVfcGVh
a19yOiB2bV9zcGtfcj0gMTMwMzgzODcyIGJ5dGVzDQpSRVNVTFQgd3Nfc2luZ2xlX3BlYWtfcjog
d3Nfc3BrX3I9IDEyODQxNzc5MiBieXRlcw0KUkVTVUxUIHZtX2ZpbmFsX2I6IHZtX2ZfYj0gMjMy
Mjg0MTYgYnl0ZXMNClJFU1VMVCB3c19maW5hbF9iOiB3c19mX2I9IDQ1MzIyMjQwIGJ5dGVzDQpS
RVNVTFQgdm1fZmluYWxfcjogdm1fZl9yPSAxMjg1MTYwOTYgYnl0ZXMNClJFU1VMVCB3c19maW5h
bF9yOiB3c19mX3I9IDEyNDAyNjg4MCBieXRlcw0KUkVTVUxUIHZtX2ZpbmFsX3Q6IHZtX2ZfdD0g
MTUxNzQ0NTEyIGJ5dGVzDQpSRVNVTFQgd3NfZmluYWxfdDogd3NfZl90PSAxNjkzNDkxMjAgYnl0
ZXMNClJFU1VMVCBwcm9jZXNzZXM6IHByb2NfPSAyIA0KUkVTVUxUIHJlYWRfb3BfYjogcl9vcF9i
PSA5NzY3OSANClJFU1VMVCB3cml0ZV9vcF9iOiB3X29wX2I9IDYyMjMxIA0KUkVTVUxUIG90aGVy
X29wX2I6IG9fb3BfYj0gNTMxNTcgDQpSRVNVTFQgdG90YWxfb3BfYjogSU9fb3BfYj0gMjEzMDY3
IA0KUkVTVUxUIHJlYWRfYnl0ZV9iOiByX2I9IDE3NzA3OSBrYg0KUkVTVUxUIHdyaXRlX2J5dGVf
Yjogd19iPSAzMDEyNCBrYg0KUkVTVUxUIG90aGVyX2J5dGVfYjogb19iPSAxNDcga2INClJFU1VM
VCB0b3RhbF9ieXRlX2I6IElPX2I9IDIwNzM1MSBrYg0KUkVTVUxUIHJlYWRfb3Bfcjogcl9vcF9y
PSA0MzgyNyANClJFU1VMVCB3cml0ZV9vcF9yOiB3X29wX3I9IDk2Nzk4IA0KUkVTVUxUIG90aGVy
X29wX3I6IG9fb3Bfcj0gMzU4IA0KUkVTVUxUIHRvdGFsX29wX3I6IElPX29wX3I9IDE0MDk4MyAN
ClJFU1VMVCByZWFkX2J5dGVfcjogcl9yPSAxNzcxMCBrYg0KUkVTVUxUIHdyaXRlX2J5dGVfcjog
d19yPSAyODAzOCBrYg0KUkVTVUxUIG90aGVyX2J5dGVfcjogb19yPSA1IGtiDQpSRVNVTFQgdG90
YWxfYnl0ZV9yOiBJT19yPSA0NTc1MyBrYg0KUkVTVUxUIGNvbW1pdF9jaGFyZ2U6IGNjPSAxNjEx
MDQga2INClBhZ2VzOiBbMTI2LmNvbSwyY2gubmV0LDZwYXJrLmNvbSxhZmZpbGkubmV0LGFsbGVn
cm8ucGwsYXBlaGEucnUsYmFpZHUuY29tLGJicy53ZWZvbmcuY29tLGJsb2cuc2t5cm9jay5jb20s
Y21mdS5jb20sY24ueWFob28uY29tLGNvbnRyYS5ncixkdGlibG9nLmNvbSxlbC53aWtpcGVkaWEu
b3JnLGVsbXVuZG8uZXMsZXR0b2RheS5jb20sZXhibG9nLmpwLGV4Y2l0ZS5jby5qcCxmYzIuY29t
LGZvcmEucGwsZnJlZS5mcixnb2xlbS5kZSxnb28ubmUuanAsaGFiZXJ0dXJrLmNvbSxoYXRlbmEu
bmUuanAsaG9tZS5hbHRlcnZpc3RhLm9yZyxodXJyaXlldC5jb20udHIsanVnZW0uanAsa2FrYWt1
LmNvbSxtaXhpLmpwLG5hZnRlbXBvcmlraS5ncixuYXJvZC55YW5kZXgucnUsbmV3cy4xNjMuY29t
LHBhcnR5ZmxvY2submwscGNob21lLmNvbS50dyxwaG9lbml4dHYuY29tLHBob3RvZmlsZS5ydSxw
bC53aWtpcGVkaWEub3JnLHJpY2FyZG8uY2gscnUud2lraXBlZGlhLm9yZyxydXRlbi5jb20udHcs
c3BvcnQyNC5ncix0ZXJyYS5lcyx1ZG4uY29tLHV3YW50cy5jb20sdm9pbGEuZnIsd3d3LmFsaWNl
Lml0LHd3dy5hbWF6b24uY28uanAsd3d3LmF1Y3Rpb24uY28ua3Isd3d3LmNoaW5hcmVuLmNvbSx3
d3cuY2hvc3VuLmNvbSx3d3cuZGFuYXdhLmNvbSx3d3cuZGF1bS5uZXQsd3d3LmRjaW5zaWRlLmNv
bSx3d3cuZWFzdG1vbmV5LmNvbSx6b2wuY29tLmNuXQ0KKlJFU1VMVCB0aW1lczogdD0gWzIwNCw0
ODcsMTUwLDM3LDExMiwxMzAsMTQsMjY3LDQzLDI0Miw5NCwxNTksNDA4LDI3OCw3MCwzMjAsMTA5
LDIzMSwxNzksMzksNzIsNTQsMjk4LDE4OSwxMzgsNTcsMTM3LDIwNCw5OSw1MywxOTAsMzMsNTcy
LDM2LDIwMiwxMjQsMTI5LDIxMywzOCwyNjYsOTcsOTUsNzksMzA5LDIzMiwxMDQsMTAwLDE2Miw1
MDMsMjYzLDMxMyw0NDIsMjY0LDMxOCwxNzIsMzE5LDI1LDksNDYsMjksMjgsNDEsMTEsOTksMjgs
OTUsNjIsNTcsMTI1LDQzLDQ5LDExNiw0NCw0NCwxMDEsMzIsNTUsMzksNjgsMTMxLDYzLDM1LDk1
LDgzLDc1LDIwLDEyNiwyNiwyMDIsMjksNDgsODQsNjYsNTgsMzEsNjcsNTUsNzQsNjksMTEyLDEz
NCwxMTUsNTcsNTQsMjY1LDEzOCwyNTMsMzUyLDE1MSwyMDUsMTE1LDE1OSwyNSwxMCw0NywyOSwy
OCw0MCwxMCw5OSwyOCw5NSw2Myw1NywxMjMsNDMsNTAsMTE3LDQ0LDQ2LDEwMSwzMyw1NCwzOSw2
OCwxMzAsNzIsMzQsOTQsODQsNzUsMTksMTI3LDI3LDIwNCwzMCw0OSw4Nyw2Niw1OSwzMSw2OCw1
NSw3NCw2NiwxMTAsMTM1LDk2LDU2LDU0LDI2OCwxNDEsMjE2LDM0NCwxNjEsMjA2LDExMiwxNTgs
MjUsOSw0NiwyOCwyOSw0MCwxMCwxMDAsMjcsOTUsNjMsNTgsMTAxLDQ0LDQ5LDExOCw0Myw0NSw5
OSwzMiw1NSwzOSw2OSwxMzMsNjMsMzQsOTUsODIsNzYsMjAsMTI4LDI2LDIwNiwzMSw0OCw4NCw2
Nyw1OSwzMSw2OCw1Niw3NCw2NSwxMDgsMTM1LDkzLDU2LDU1LDI2NSwxNDAsMjE3LDM0NywxNTks
MjA5LDExNSwxNjAsMjUsMTAsNDcsMjksMjksNDEsMTAsMTAxLDI4LDk4LDYyLDU4LDEyNSw0NCw1
MCwxMTgsNDYsNDMsOTksMzIsNTQsMzksNjgsMTMxLDYyLDM2LDk2LDgyLDc1LDE5LDEyNywyNiwy
MTEsMjksNDgsODUsNjcsNjAsMzEsNjcsNTQsNzQsNjQsMTEwLDEzNCw5Niw1Nyw1NCwyNjUsMTM5
LDIxMiwzNTksMTY5LDI0MCwxMTMsMTU4LDI2LDEwLDQ2LDI5LDI5LDQxLDEwLDEwMCwyOSw5Niw2
Miw1NywxMDMsNDMsNDksMTE3LDQ3LDQ1LDEwMCwzMyw1NCwzOCw2NywxMzUsNjQsMzUsOTUsODMs
NzYsMjAsMTI5LDI2LDIwOCwyOSw0OCw4NSw2NSw1OSwzMiw2Niw1NSw3NCw2NSwxMDksMTM1LDk0
LDU1LDU0LDI2NiwxNDEsMjEyLDM0NiwxNTksMjA4LDExMiwxNTgsMjQsMTAsNDcsMjksMjksNDMs
MTAsMTAwLDI4LDk0LDYyLDU4LDEwMSw0NCw0OSwxMTcsNDQsNDMsOTksMzMsNTQsMzgsNjcsMTMw
LDYyLDM1LDk3LDgyLDc1LDE5LDEyOCwyNiwyMDQsMjksNDgsODIsNjYsNTgsMzEsNjcsNTcsNzQs
NjQsMTA4LDEzNSw5Niw3Niw1NCwyNjEsMTM4LDIxNSwzNDcsMTU3LDIwNSwxMTIsMTc1LDI1LDks
NDYsMjgsMjksNDEsMTEsMTAwLDI5LDk1LDYyLDU3LDEwMSw0Myw0OSwxMTksNDYsNDQsMTExLDMz
LDU1LDM5LDY3LDEzMiw2MiwzNSw5Niw4NCw3NiwyMCwxMjgsMjYsMjA2LDI5LDQ5LDg0LDY2LDU5
LDMyLDY4LDU1LDc2LDY5LDEwNywxMzYsOTIsNTYsNTQsMjY0LDEzOCwyMTcsMzQ4LDE1NywyMDUs
MTE1LDE1OCwyNSw5LDQ3LDI5LDI4LDQxLDEwLDExMCwyOCw5Niw2Myw1NywxMDEsNDMsNTAsMTE2
LDQ1LDQ0LDk5LDMyLDU3LDM3LDY3LDEzMCw2MiwzNSw5NSw4Miw3NiwyMCwxMjcsMjgsMjAyLDI5
LDUxLDg0LDY3LDYwLDMyLDY3LDU1LDc2LDYzLDExOCwxMzUsOTQsNTgsNTQsMjY2LDEzOSwyMTks
MzQ4LDE0NywyMDQsMTE1LDE1OCwyNCw5LDQ2LDI5LDI4LDQxLDksOTgsMjgsOTYsNjIsNTcsMTAz
LDQ0LDQ4LDExNyw0NCw0Myw5NywzMSw1NSwzNyw2NiwxMzEsNjAsMzUsOTUsODQsNzYsMjAsMTI2
LDI3LDIwNiwyOSw0Nyw4Myw2Nyw2MCwzMyw2Niw1NCw3NCw3NCwxMTAsMTM1LDk1LDc1LDU0LDI3
NywxNDIsMjIyLDM0OSwxNTAsMjA2LDExMywxNzVdIG1zDQpbICAgICAgIE9LIF0gUGFnZUN5Y2xl
clRlc3QuSW50bDFGaWxlICgxMjQ3MjIgbXMpDQpbLS0tLS0tLS0tLV0gMSB0ZXN0IGZyb20gUGFn
ZUN5Y2xlclRlc3QgKDEyNDcyMiBtcyB0b3RhbCkNCg0KWy0tLS0tLS0tLS1dIDEgdGVzdCBmcm9t
IFBhZ2VDeWNsZXJSZWZlcmVuY2VUZXN0DQpbIFJVTiAgICAgIF0gUGFnZUN5Y2xlclJlZmVyZW5j
ZVRlc3QuSW50bDFGaWxlDQpSRVNVTFQgdm1fcGVha19iOiB2bV9wa19iX3JlZj0gMjExMjcxNjgg
Ynl0ZXMNClJFU1VMVCB3c19wZWFrX2I6IHdzX3BrX2JfcmVmPSA0MjA0MTM0NCBieXRlcw0KUkVT
VUxUIHZtX3BlYWtfcjogdm1fcGtfcl9yZWY9IDExMzQzMDUyOCBieXRlcw0KUkVTVUxUIHdzX3Bl
YWtfcjogd3NfcGtfcl9yZWY9IDExODkzNTU1MiBieXRlcw0KUkVTVUxUIHZtX3NpbmdsZV9wZWFr
X3I6IHZtX3Nwa19yX3JlZj0gMTEzNDMwNTI4IGJ5dGVzDQpSRVNVTFQgd3Nfc2luZ2xlX3BlYWtf
cjogd3Nfc3BrX3JfcmVmPSAxMTg5MzU1NTIgYnl0ZXMNClJFU1VMVCB2bV9maW5hbF9iOiB2bV9m
X2JfcmVmPSAxOTA0NjQwMCBieXRlcw0KUkVTVUxUIHdzX2ZpbmFsX2I6IHdzX2ZfYl9yZWY9IDM5
OTY0NjcyIGJ5dGVzDQpSRVNVTFQgdm1fZmluYWxfcjogdm1fZl9yX3JlZj0gMTA3ODUxNzc2IGJ5
dGVzDQpSRVNVTFQgd3NfZmluYWxfcjogd3NfZl9yX3JlZj0gMTExMDY3MTM2IGJ5dGVzDQpSRVNV
TFQgdm1fZmluYWxfdDogdm1fZl90X3JlZj0gMTI2ODk4MTc2IGJ5dGVzDQpSRVNVTFQgd3NfZmlu
YWxfdDogd3NfZl90X3JlZj0gMTUxMDMxODA4IGJ5dGVzDQpSRVNVTFQgcHJvY2Vzc2VzOiBwcm9j
X19yZWY9IDIgDQpSRVNVTFQgcmVhZF9vcF9iOiByX29wX2JfcmVmPSA5NTM3OCANClJFU1VMVCB3
cml0ZV9vcF9iOiB3X29wX2JfcmVmPSA1NDQ4MSANClJFU1VMVCBvdGhlcl9vcF9iOiBvX29wX2Jf
cmVmPSA1MjE2MiANClJFU1VMVCB0b3RhbF9vcF9iOiBJT19vcF9iX3JlZj0gMjAyMDIxIA0KUkVT
VUxUIHJlYWRfYnl0ZV9iOiByX2JfcmVmPSAxNzM5MTYga2INClJFU1VMVCB3cml0ZV9ieXRlX2I6
IHdfYl9yZWY9IDI3NTQ0IGtiDQpSRVNVTFQgb3RoZXJfYnl0ZV9iOiBvX2JfcmVmPSA5NCBrYg0K
UkVTVUxUIHRvdGFsX2J5dGVfYjogSU9fYl9yZWY9IDIwMTU1NSBrYg0KUkVTVUxUIHJlYWRfb3Bf
cjogcl9vcF9yX3JlZj0gNDA4NTMgDQpSRVNVTFQgd3JpdGVfb3Bfcjogd19vcF9yX3JlZj0gOTUx
NTYgDQpSRVNVTFQgb3RoZXJfb3Bfcjogb19vcF9yX3JlZj0gNTg0IA0KUkVTVUxUIHRvdGFsX29w
X3I6IElPX29wX3JfcmVmPSAxMzY1OTMgDQpSRVNVTFQgcmVhZF9ieXRlX3I6IHJfcl9yZWY9IDE2
Nzg2IGtiDQpSRVNVTFQgd3JpdGVfYnl0ZV9yOiB3X3JfcmVmPSAyNjg3NyBrYg0KUkVTVUxUIG90
aGVyX2J5dGVfcjogb19yX3JlZj0gNyBrYg0KUkVTVUxUIHRvdGFsX2J5dGVfcjogSU9fcl9yZWY9
IDQzNjcxIGtiDQpSRVNVTFQgY29tbWl0X2NoYXJnZTogY2NfcmVmPSAxMjE0NzIga2INClBhZ2Vz
OiBbMTI2LmNvbSwyY2gubmV0LDZwYXJrLmNvbSxhZmZpbGkubmV0LGFsbGVncm8ucGwsYXBlaGEu
cnUsYmFpZHUuY29tLGJicy53ZWZvbmcuY29tLGJsb2cuc2t5cm9jay5jb20sY21mdS5jb20sY24u
eWFob28uY29tLGNvbnRyYS5ncixkdGlibG9nLmNvbSxlbC53aWtpcGVkaWEub3JnLGVsbXVuZG8u
ZXMsZXR0b2RheS5jb20sZXhibG9nLmpwLGV4Y2l0ZS5jby5qcCxmYzIuY29tLGZvcmEucGwsZnJl
ZS5mcixnb2xlbS5kZSxnb28ubmUuanAsaGFiZXJ0dXJrLmNvbSxoYXRlbmEubmUuanAsaG9tZS5h
bHRlcnZpc3RhLm9yZyxodXJyaXlldC5jb20udHIsanVnZW0uanAsa2FrYWt1LmNvbSxtaXhpLmpw
LG5hZnRlbXBvcmlraS5ncixuYXJvZC55YW5kZXgucnUsbmV3cy4xNjMuY29tLHBhcnR5ZmxvY2su
bmwscGNob21lLmNvbS50dyxwaG9lbml4dHYuY29tLHBob3RvZmlsZS5ydSxwbC53aWtpcGVkaWEu
b3JnLHJpY2FyZG8uY2gscnUud2lraXBlZGlhLm9yZyxydXRlbi5jb20udHcsc3BvcnQyNC5ncix0
ZXJyYS5lcyx1ZG4uY29tLHV3YW50cy5jb20sdm9pbGEuZnIsd3d3LmFsaWNlLml0LHd3dy5hbWF6
b24uY28uanAsd3d3LmF1Y3Rpb24uY28ua3Isd3d3LmNoaW5hcmVuLmNvbSx3d3cuY2hvc3VuLmNv
bSx3d3cuZGFuYXdhLmNvbSx3d3cuZGF1bS5uZXQsd3d3LmRjaW5zaWRlLmNvbSx3d3cuZWFzdG1v
bmV5LmNvbSx6b2wuY29tLmNuXQ0KKlJFU1VMVCB0aW1lczogdF9yZWY9IFs1OCw3NSw5NywzMyw0
Myw1MiwxNCwxNjcsNDAsMTU2LDgzLDczLDE2OCw4MSw2MywxOTYsNjgsNTQsMTUwLDM1LDY3LDUw
LDExMiwxNjQsNzMsNDEsMTIzLDEwOCw5MywyMSwxNDEsMzEsMjcxLDMyLDk0LDg5LDc5LDEwNCwz
MywxMTYsNzMsODMsNzAsMTU3LDE3OSw5OCw3NCw5MiwzMzAsMjE1LDI0NiwzNzYsMTc5LDM0Miwx
MjAsMjEyLDIxLDksNDMsMjYsMjcsMzYsOSw5NCwyNSw4Niw1OSw1Myw5NSw0MCw0NywxMDUsNDEs
NDAsOTEsMjksNTMsMzYsNjMsMTIwLDM0LDMyLDg1LDYwLDcxLDE4LDExNywyNSwxOTUsMjYsNDUs
ODAsNjEsNjAsMzAsNjksNTEsNjgsNjIsMTA1LDEyMSw4Nyw3Miw0OCwyMzksMTI4LDE5OSwzMjUs
MTQyLDIwOSwxMTQsMTU0LDIwLDgsNDMsMjgsMjYsMzYsOSw5MiwyNiw4NCw1Nyw1MSw5NCw0MSw0
NiwxMDcsNDAsMzksOTEsMjksNTEsMzYsNjIsMTIzLDM0LDMzLDg3LDYxLDcwLDE4LDExMywyMiwx
OTMsMjcsNDUsODAsNjEsNTksMzAsNjgsNTAsNjksNjcsMTAxLDExOCw4Nyw1Myw1MSwyMzksMTI4
LDE5OCwzMjcsMTUyLDE5MywxMTYsMTc1LDIxLDksNDMsMjYsMjcsMzYsOSw5MywyNSw4Nyw1OCw1
NSw5Niw0Miw0OCwxMDcsNDEsNDEsOTMsMjksNTMsMzYsNjUsMTIxLDM0LDMzLDg3LDYzLDcxLDE4
LDExNSwyNCwxOTYsMjcsNDYsODAsNjIsNTksMzAsNzEsNTEsNjksNjIsMTAzLDEyMSw4OSw1Myw1
MSwyNDMsMTI5LDE5OSwzMjgsMTUxLDE5OCwxMTUsMTc1LDIxLDksNDMsMjcsMjYsMzYsOSw5NCwy
Nyw4Niw3MSw1NCw5NCw0Miw0NywxMDYsNDEsMzksOTIsMjksNTIsMjksNjMsMTIyLDM0LDMzLDg3
LDYyLDcyLDE4LDExNywyNCwxOTUsMjcsNDQsNzksNjIsNTgsMzAsNjksNTAsNjksNjEsMTA0LDEy
Miw4OSw1Myw1MSwyNDcsMTMwLDIwMCwzMjgsMTUyLDE5OSwxMTQsMTc4LDIxLDgsNDMsMjYsMjYs
MzUsMTEsOTMsMjcsODcsNjEsNTMsOTEsNDEsNDcsMTA3LDQxLDQwLDkyLDI5LDUyLDM1LDY2LDEy
MSwzMywzMyw4Niw2Myw2OSwxOSwxMTcsMjQsMTk3LDI4LDQ1LDgwLDYzLDU5LDMxLDcwLDUwLDY5
LDY2LDEwNCwxMjMsOTEsNTMsNTAsMjQzLDEzMCwyMDMsMzI5LDE0NCwxOTcsMTE4LDE3MiwyMiw4
LDQzLDI2LDI3LDM1LDEwLDkyLDI2LDg4LDU5LDU0LDkyLDQxLDQ3LDEwNyw0MSw0MSw5MywzMCw1
MywzNiw2MywxMTksMzQsMzMsODUsNjIsNzMsMTcsMTE3LDI0LDE5NSwyOCw0NSw4MCw2NCw1OSwz
MSw3MCw1MCw2OSw2MCwxMDIsMTIxLDg5LDU0LDUxLDI0NiwxMzEsMjAyLDMzNSwxNDMsMTk5LDEx
NywxNzUsMjEsOCw0MywyNywyOCwzNiwxMCw5MywyNiw4OCw2MCw1NCw5MSw0Miw0NywxMDgsNDEs
NDAsOTQsMjksNTIsMzUsNjQsMTIxLDM0LDMyLDg3LDYwLDcyLDE4LDExOCwyNCwxOTQsMjcsNDUs
ODEsNjIsNTksMzAsNjgsNDgsNjgsNjUsMTAzLDEyMyw4Nyw3MSw0OSwyNDMsMTMwLDIwMSwzMjks
MTUwLDE5NCwxMTYsMTc3LDIxLDgsNDIsMjYsMjcsMzUsOSw5MywyNiw4NSw1OSw1Myw5MCw0MSw0
NywxMDYsNDAsNDEsOTEsMjgsNTIsMzUsNjQsMTIyLDM1LDMzLDg1LDYzLDcyLDE3LDExNSwyNCwx
OTQsMjcsNDQsODEsNjEsNTksMzAsNjcsNTAsNjksNjEsMTA0LDEyMSw4Nyw1Miw0OSwyNDUsMTI3
LDIwMCwzMzIsMTQxLDE5MywxMjIsMTc2LDIxLDksNDIsMjYsMjYsMzYsOSw5MywyNiw4Nyw1OCw1
NCw5NCw0Miw0NywxMDYsNDEsNDAsOTAsMjksNTQsMzUsNjUsMTE5LDM0LDMyLDg2LDYyLDY4LDE4
LDExNywyNCwxOTUsMjcsNDUsNzksNjUsNTksMzEsNjksNTAsNjgsNjYsMTAyLDEyMiw4OSw1Myw0
OSwyNDQsMTI4LDE5OSwzMzgsMTUyLDE5MywxMTYsMTc4XSBtcw0KWyAgICAgICBPSyBdIFBhZ2VD
eWNsZXJSZWZlcmVuY2VUZXN0LkludGwxRmlsZSAoNjQzNzcgbXMpDQpbLS0tLS0tLS0tLV0gMSB0
ZXN0IGZyb20gUGFnZUN5Y2xlclJlZmVyZW5jZVRlc3QgKDY0Mzc3IG1zIHRvdGFsKQ0KDQpbLS0t
LS0tLS0tLV0gR2xvYmFsIHRlc3QgZW52aXJvbm1lbnQgdGVhci1kb3duDQpbPT09PT09PT09PV0g
MiB0ZXN0cyBmcm9tIDIgdGVzdCBjYXNlcyByYW4uICgxODkwOTkgbXMgdG90YWwpDQpbICBQQVNT
RUQgIF0gMiB0ZXN0cy4NCg0KICBZT1UgSEFWRSAxIERJU0FCTEVEIFRFU1QNCg0KICBZT1UgSEFW
RSA3IEZMQUtZIFRFU1RTDQoNCiAgWU9VIEhBVkUgMyB0ZXN0cyB3aXRoIGlnbm9yZWQgZmFpbHVy
ZXMgKEZBSUxTIHByZWZpeCkNCg0KPC9zcGFuPjxzcGFuIGNsYXNzPSJoZWFkZXIiPnByb2dyYW0g
ZmluaXNoZWQgd2l0aCBleGl0IGNvZGUgMAplbGFwc2VkVGltZT0xODkuNTUxMDAwCjwvc3Bhbj48
L3ByZT4KPC9ib2R5Pgo8L2h0bWw+
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>115040</attachid>
            <date>2011-11-14 15:12:06 -0800</date>
            <delta_ts>2011-11-14 15:12:06 -0800</delta_ts>
            <desc>run after regression stdio</desc>
            <filename>after-regression-stdio.html</filename>
            <type>text/html</type>
            <size>10874</size>
            <attacher name="Ojan Vafai">ojan</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFs
Ly9FTiIKICAgICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0
aW9uYWwuZHRkIj4KICA8aHRtbD4KICA8aGVhZD48dGl0bGU+TG9nIEZpbGUgY29udGVudHM8L3Rp
dGxlPgogIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4v
ZGVmYXVsdC5jc3MiIHR5cGU9InRleHQvY3NzIiAvPgogIDwvaGVhZD4KICA8Ym9keSBjbGFzcz0n
bG9nJz4KICAgIDxhIGhyZWY9InN0ZGlvL3RleHQiPih2aWV3IGFzIHRleHQpPC9hPjxici8+CiAg
ICA8cHJlPjxzcGFuIGNsYXNzPSJoZWFkZXIiPnB5dGhvbl9zbGF2ZSAuLlwuLlwuLlxzY3JpcHRz
XHNsYXZlXHJ1bnRlc3QucHkgLS10YXJnZXQgUmVsZWFzZSAtLWJ1aWxkLWRpciBzcmMvYnVpbGQg
cGVyZm9ybWFuY2VfdWlfdGVzdHMuZXhlIC0tZ3Rlc3RfZmlsdGVyPVBhZ2VDeWNsZXIqLkludGwx
RmlsZTpQYWdlQ3ljbGVyKi4qX0ludGwxRmlsZQogaW4gZGlyIEM6XGJcYnVpbGRcc2xhdmVcVmlz
dGFfUGVyZlxidWlsZCAodGltZW91dCA2MDAgc2VjcykKIHdhdGNoaW5nIGxvZ2ZpbGVzIHt9CiBh
cmd2OiBbJiMzOTtweXRob25fc2xhdmUmIzM5OywgJiMzOTsuLlxcLi5cXC4uXFxzY3JpcHRzXFxz
bGF2ZVxccnVudGVzdC5weSYjMzk7LCAmIzM5Oy0tdGFyZ2V0JiMzOTssICYjMzk7UmVsZWFzZSYj
Mzk7LCAmIzM5Oy0tYnVpbGQtZGlyJiMzOTssICYjMzk7c3JjL2J1aWxkJiMzOTssICYjMzk7cGVy
Zm9ybWFuY2VfdWlfdGVzdHMuZXhlJiMzOTssICYjMzk7LS1ndGVzdF9maWx0ZXI9UGFnZUN5Y2xl
ciouSW50bDFGaWxlOlBhZ2VDeWNsZXIqLipfSW50bDFGaWxlJiMzOTtdCiBlbnZpcm9ubWVudDoK
ICBBUFBEQVRBPUM6XFVzZXJzXGNocm9tZS1ib3QuUEVSRlxBcHBEYXRhXFJvYW1pbmcKICBDSFJP
TUVfSEVBRExFU1M9MQogIENPTVBVVEVSTkFNRT1DSFJPTUVQRVJGMTQKICBDT01TUEVDPUM6XFdp
bmRvd3Ncc3lzdGVtMzJcY21kLmV4ZQogIEhPTUVEUklWRT1DOgogIEhPTUVQQVRIPVxVc2Vyc1xj
aHJvbWUtYm90LlBFUkYKICBMT0NBTEFQUERBVEE9QzpcVXNlcnNcY2hyb21lLWJvdC5QRVJGXEFw
cERhdGFcTG9jYWwKICBMT0dOQU1FPWNocm9tZS1ib3QKICBOVU1CRVJfT0ZfUFJPQ0VTU09SUz00
CiAgT1M9V2luZG93c19OVAogIFBBVEg9QzpcYlxidWlsZFwuLlxkZXBvdF90b29scztDOlxiXGRl
cG90X3Rvb2xzXHB5dGhvbl9iaW47QzpcV2luZG93c1xzeXN0ZW0zMjtDOlxXaW5kb3dzXHN5c3Rl
bTMyXFdCRU07QzpcYlxidWlsZF9pbnRlcm5hbFx0b29scwogIFBBVEhFWFQ9LkNPTTsuRVhFOy5C
QVQ7LkNNRDsuVkJTOy5WQkU7LkpTOy5KU0U7LldTRjsuV1NIOy5NU0MKICBQUk9DRVNTT1JfQVJD
SElURUNUVVJFPXg4NgogIFBST0NFU1NPUl9BUkNISVRFVzY0MzI9QU1ENjQKICBQUk9HUkFNRklM
RVM9QzpcUHJvZ3JhbSBGaWxlcyAoeDg2KQogIFBST0dSQU1XNjQzMj1DOlxQcm9ncmFtIEZpbGVz
CiAgUFdEPUM6XGJcYnVpbGRcc2xhdmVcVmlzdGFfUGVyZlxidWlsZAogIFBZVEhPTlBBVEg9Qzpc
YlxidWlsZFx0aGlyZF9wYXJ0eVxidWlsZGJvdF83XzEyO0M6XGJcYnVpbGRcdGhpcmRfcGFydHlc
dHdpc3RlZF84XzE7QzpcYlxidWlsZFxzaXRlX2NvbmZpZztDOlxiXGJ1aWxkXHNjcmlwdHM7Qzpc
YlxidWlsZFxzY3JpcHRzXHJlbGVhc2U7QzpcYlxidWlsZFx0aGlyZF9wYXJ0eTtDOlxiXGJ1aWxk
X2ludGVybmFsXHNpdGVfY29uZmlnO0M6XGJcYnVpbGRfaW50ZXJuYWxcc3ltc3JjOy4KICBTWVNU
RU1EUklWRT1DOgogIFNZU1RFTVJPT1Q9QzpcV2luZG93cwogIFRFTVA9QzpcVXNlcnNcQ0hST01F
fjEuUEVSXEFwcERhdGFcTG9jYWxcVGVtcAogIFRNUD1DOlxVc2Vyc1xDSFJPTUV+MS5QRVJcQXBw
RGF0YVxMb2NhbFxUZW1wCiAgVVNFUkRPTUFJTj1QRVJGCiAgVVNFUk5BTUU9Y2hyb21lLWJvdAog
IFVTRVJQUk9GSUxFPUM6XFVzZXJzXGNocm9tZS1ib3QuUEVSRgogIFdJTkRJUj1DOlxXaW5kb3dz
CiBjbG9zaW5nIHN0ZGluCiB1c2luZyBQVFk6IEZhbHNlCjwvc3Bhbj48c3BhbiBjbGFzcz0ic3Rk
b3V0Ij5bUnVubmluZyBvbiBidWlsZGVyOiAmIzM0O05vbmUmIzM0O10NCg0KQzpcYlxidWlsZFxz
bGF2ZVxWaXN0YV9QZXJmXGJ1aWxkXHNyY1xidWlsZFxSZWxlYXNlXHBlcmZvcm1hbmNlX3VpX3Rl
c3RzLmV4ZSAtLWd0ZXN0X2ZpbHRlcj1QYWdlQ3ljbGVyKi5JbnRsMUZpbGU6UGFnZUN5Y2xlciou
Kl9JbnRsMUZpbGUNCk5vdGU6IEdvb2dsZSBUZXN0IGZpbHRlciA9IFBhZ2VDeWNsZXIqLkludGwx
RmlsZTpQYWdlQ3ljbGVyKi4qX0ludGwxRmlsZQ0KWz09PT09PT09PT1dIFJ1bm5pbmcgMiB0ZXN0
cyBmcm9tIDIgdGVzdCBjYXNlcy4NClstLS0tLS0tLS0tXSBHbG9iYWwgdGVzdCBlbnZpcm9ubWVu
dCBzZXQtdXAuDQpbLS0tLS0tLS0tLV0gMSB0ZXN0IGZyb20gUGFnZUN5Y2xlclRlc3QNClsgUlVO
ICAgICAgXSBQYWdlQ3ljbGVyVGVzdC5JbnRsMUZpbGUNClJFU1VMVCB2bV9wZWFrX2I6IHZtX3Br
X2I9IDI2MzI5MDg4IGJ5dGVzDQpSRVNVTFQgd3NfcGVha19iOiB3c19wa19iPSA0ODIzMDQwMCBi
eXRlcw0KUkVTVUxUIHZtX3BlYWtfcjogdm1fcGtfcj0gNjI1MjQ2MjA4IGJ5dGVzDQpSRVNVTFQg
d3NfcGVha19yOiB3c19wa19yPSA2MjI0MzYzNTIgYnl0ZXMNClJFU1VMVCB2bV9zaW5nbGVfcGVh
a19yOiB2bV9zcGtfcj0gNjI1MjQ2MjA4IGJ5dGVzDQpSRVNVTFQgd3Nfc2luZ2xlX3BlYWtfcjog
d3Nfc3BrX3I9IDYyMjQzNjM1MiBieXRlcw0KUkVTVUxUIHZtX2ZpbmFsX2I6IHZtX2ZfYj0gMjMx
NTA1OTIgYnl0ZXMNClJFU1VMVCB3c19maW5hbF9iOiB3c19mX2I9IDQ1MDY4Mjg4IGJ5dGVzDQpS
RVNVTFQgdm1fZmluYWxfcjogdm1fZl9yPSA2MTM5NDEyNDggYnl0ZXMNClJFU1VMVCB3c19maW5h
bF9yOiB3c19mX3I9IDYwOTE4MTY5NiBieXRlcw0KUkVTVUxUIHZtX2ZpbmFsX3Q6IHZtX2ZfdD0g
NjM3MDkxODQwIGJ5dGVzDQpSRVNVTFQgd3NfZmluYWxfdDogd3NfZl90PSA2NTQyNDk5ODQgYnl0
ZXMNClJFU1VMVCBwcm9jZXNzZXM6IHByb2NfPSAyIA0KUkVTVUxUIHJlYWRfb3BfYjogcl9vcF9i
PSAxMDUyMDUgDQpSRVNVTFQgd3JpdGVfb3BfYjogd19vcF9iPSA4NjgxMyANClJFU1VMVCBvdGhl
cl9vcF9iOiBvX29wX2I9IDkwMDM5IA0KUkVTVUxUIHRvdGFsX29wX2I6IElPX29wX2I9IDI4MjA1
NyANClJFU1VMVCByZWFkX2J5dGVfYjogcl9iPSAxNjQ2MjEga2INClJFU1VMVCB3cml0ZV9ieXRl
X2I6IHdfYj0gMzIzMjAga2INClJFU1VMVCBvdGhlcl9ieXRlX2I6IG9fYj0gMTM3IGtiDQpSRVNV
TFQgdG90YWxfYnl0ZV9iOiBJT19iPSAxOTcwNzkga2INClJFU1VMVCByZWFkX29wX3I6IHJfb3Bf
cj0gNTk2OTkgDQpSRVNVTFQgd3JpdGVfb3Bfcjogd19vcF9yPSAxMDI4ODIgDQpSRVNVTFQgb3Ro
ZXJfb3Bfcjogb19vcF9yPSAzNTkgDQpSRVNVTFQgdG90YWxfb3BfcjogSU9fb3Bfcj0gMTYyOTQw
IA0KUkVTVUxUIHJlYWRfYnl0ZV9yOiByX3I9IDIwMDUyIGtiDQpSRVNVTFQgd3JpdGVfYnl0ZV9y
OiB3X3I9IDMwMDY3IGtiDQpSRVNVTFQgb3RoZXJfYnl0ZV9yOiBvX3I9IDUga2INClJFU1VMVCB0
b3RhbF9ieXRlX3I6IElPX3I9IDUwMTI0IGtiDQpSRVNVTFQgY29tbWl0X2NoYXJnZTogY2M9IDYy
OTU2MCBrYg0KUGFnZXM6IFsxMjYuY29tLDJjaC5uZXQsNnBhcmsuY29tLGFmZmlsaS5uZXQsYWxs
ZWdyby5wbCxhcGVoYS5ydSxiYWlkdS5jb20sYmJzLndlZm9uZy5jb20sYmxvZy5za3lyb2NrLmNv
bSxjbWZ1LmNvbSxjbi55YWhvby5jb20sY29udHJhLmdyLGR0aWJsb2cuY29tLGVsLndpa2lwZWRp
YS5vcmcsZWxtdW5kby5lcyxldHRvZGF5LmNvbSxleGJsb2cuanAsZXhjaXRlLmNvLmpwLGZjMi5j
b20sZm9yYS5wbCxmcmVlLmZyLGdvbGVtLmRlLGdvby5uZS5qcCxoYWJlcnR1cmsuY29tLGhhdGVu
YS5uZS5qcCxob21lLmFsdGVydmlzdGEub3JnLGh1cnJpeWV0LmNvbS50cixqdWdlbS5qcCxrYWth
a3UuY29tLG1peGkuanAsbmFmdGVtcG9yaWtpLmdyLG5hcm9kLnlhbmRleC5ydSxuZXdzLjE2My5j
b20scGFydHlmbG9jay5ubCxwY2hvbWUuY29tLnR3LHBob2VuaXh0di5jb20scGhvdG9maWxlLnJ1
LHBsLndpa2lwZWRpYS5vcmcscmljYXJkby5jaCxydS53aWtpcGVkaWEub3JnLHJ1dGVuLmNvbS50
dyxzcG9ydDI0LmdyLHRlcnJhLmVzLHVkbi5jb20sdXdhbnRzLmNvbSx2b2lsYS5mcix3d3cuYWxp
Y2UuaXQsd3d3LmFtYXpvbi5jby5qcCx3d3cuYXVjdGlvbi5jby5rcix3d3cuY2hpbmFyZW4uY29t
LHd3dy5jaG9zdW4uY29tLHd3dy5kYW5hd2EuY29tLHd3dy5kYXVtLm5ldCx3d3cuZGNpbnNpZGUu
Y29tLHd3dy5lYXN0bW9uZXkuY29tLHpvbC5jb20uY25dDQoqUkVTVUxUIHRpbWVzOiB0PSBbMTk0
LDQzNywxNDYsMzcsNzksMTIwLDE0LDIyMCw0MywyNDMsOTAsMTU3LDM2NiwyNTAsNjcsMzE4LDEx
MiwxNDksMTg3LDM3LDcxLDUyLDI3MiwxNzYsMTE5LDQ1LDEzNiwxNDgsOTQsNzEsMTgyLDM1LDUx
NywzNCwyMDYsMTMwLDE2OSwyMTUsMzQsMjY1LDgwLDk1LDc5LDI5MSwyMzEsMTAzLDk4LDIwNyw1
NTcsMjY1LDMwNCw0MzAsMjA3LDM5NiwyNjEsMzQ3LDI0LDgsNTEsMzEsMjgsNDMsMTEsMTA1LDMz
LDEwMiw2NSw2MiwxMjcsNDUsNDgsMTE4LDUwLDQ4LDExNywzNCw1NCw0MCw3MCwxNDYsNjcsMzcs
OTksOTIsNzgsMTksMTM1LDI1LDIwNiwzMCw3Myw4NSw2OCw1MywzMiw1Nyw1NSw4MSw2OSwxMzks
MTQ0LDk1LDg1LDQ4LDMxNywxNDIsMjIwLDM4MCwxNzAsMjMwLDE0MCwxNjAsMjUsOCw1MiwzMiwy
OSw0NCwxMSwxMDUsNDIsMTAyLDY2LDY1LDEwNSw0NSw0OCwxMTksNTEsNDcsMTA1LDMzLDU1LDQz
LDcwLDE0Nyw2NCwzNiw5OSw4NCw4OSwzOSwxMzUsMjUsMjA3LDMwLDczLDg1LDY0LDY2LDMxLDU4
LDU1LDg1LDcxLDE1NiwxNDQsODIsOTgsNDksMzI5LDE0MSwyMjEsMzk4LDE2NywyMzIsMTE3LDE1
OCwyMyw4LDUxLDMxLDI4LDQzLDExLDEwNiwzMywxMDQsNjMsNjEsMTA1LDQ1LDQ4LDExNiw1MSw0
OCwxMDUsMzQsNTUsNDEsNzAsMTQ5LDYyLDM2LDEwMCw5NSw3NSwyMCwxMzYsMjUsMjA4LDMwLDgx
LDg0LDY4LDU0LDMyLDU4LDU0LDgxLDcxLDE0NiwxNDQsOTcsODYsNDksMzI1LDE2MCwyMjIsMzY1
LDE2NywyMjksMTIwLDE1OSwzMyw5LDUwLDMxLDI5LDQ0LDExLDEwNSwzMywxMDEsOTIsNjQsMTAx
LDQ1LDQ4LDExOSw1MSw0OCwxMDcsMzQsNzksNDMsNzAsMTU0LDcwLDM2LDk5LDkyLDc3LDE5LDEz
NywyNSwyMTAsMzEsNzAsODUsNzAsNTQsMzIsNTgsNTQsODIsNjksMTM0LDE0NCw5Niw4Niw0OSwz
MjcsMTQzLDIyMywzNjQsMTYzLDIzMiwxMTcsMTYyLDI0LDksNTAsMzEsMjgsNDMsMTAsMTA2LDMz
LDEwMyw2Niw5OSwxMDIsNDQsNDcsMTIwLDQ5LDQ4LDEwNSwzNCw1Nyw0MSw3MSwxNDcsNjMsMzYs
OTksOTYsOTEsMzgsMTM4LDI1LDIwOCwzMCw3MCw4Myw2OSw1NSwzMiw1OCw1NSwxMTMsNjcsMTM4
LDE0NSw5Niw1OSw0OSwzMzIsMTQyLDIyNywzNzAsMTY1LDIzMiwxMTUsMTU3LDIzLDksNTEsMzAs
MjksNDQsMTEsMTA0LDM1LDEwMSw5MSw2MywxMDEsNDUsNDgsMTIwLDUwLDQ3LDEwNywzNCw1NSw0
MCw3MCwxNDksNjcsMzYsOTgsOTUsNzUsMjAsMTM1LDI1LDIxMCwzMCw2OSw4NSw3MCw1MiwzMCw1
OCw1NSw5OSw3MCwxNTAsMTQ1LDEwMiw4OCw0OSwzNTUsMTQxLDIyNywzODksMTcwLDIzMSwxMTUs
MTg0LDIzLDksNDksMjksMjksNDQsMTAsMTA1LDMzLDEwMCw2NCw2MiwxMDQsNDQsNDcsMTE3LDUx
LDQ4LDEwNywzMyw1NSw0Miw3MCwxNDUsNjQsMzgsMTAwLDk0LDc2LDIwLDEzNSwyNSwyMDcsMzAs
NzEsODYsNjksNTMsMzMsNTcsNTYsODEsNzEsMTM4LDE0NCw5NSw1OSw0OCwzMzEsMTQ0LDIyNCwz
NjksMTYwLDIzMywxMTYsMTU1LDIzLDksNTEsMzAsMjksNDMsMTEsMTA2LDM1LDEwMyw4NCw2MSwx
MDMsNDUsNDgsMTE4LDUzLDQ3LDEwNSwzNCw1Niw0Miw2OSwxNDgsNjMsMzYsMTAwLDk2LDc3LDIw
LDEzNiwyNSwyMDUsMjksNzEsODMsNjksNTQsMzIsNTgsNTUsODIsNjgsMTM2LDE0Niw5NSw2MSw0
OCwzMjgsMTQxLDIyNCwzNjksMTU3LDIyMSwxMTYsMTU2LDIyLDgsNTAsMzAsMjksNDQsMTAsMTA2
LDM5LDEwMSw2NSw2MiwxMDYsNDQsNDgsMTE4LDUyLDQ4LDEwNSwzNCw3Niw0MSw3MCwxNTAsNzAs
MzYsOTksOTQsNzksMjAsMTM1LDI1LDIwOCwzMCw3MCw4NCw2OCw1NCwzMSw1OCw1NSwxMjUsNjYs
MTM2LDE0Niw5OCwxMDAsNDksMzI5LDE0NCwyMjAsMzczLDE3MiwyNTcsMTE1LDE1NV0gbXMNClsg
ICAgICAgT0sgXSBQYWdlQ3ljbGVyVGVzdC5JbnRsMUZpbGUgKDEyNzA1NiBtcykNClstLS0tLS0t
LS0tXSAxIHRlc3QgZnJvbSBQYWdlQ3ljbGVyVGVzdCAoMTI3MDU2IG1zIHRvdGFsKQ0KDQpbLS0t
LS0tLS0tLV0gMSB0ZXN0IGZyb20gUGFnZUN5Y2xlclJlZmVyZW5jZVRlc3QNClsgUlVOICAgICAg
XSBQYWdlQ3ljbGVyUmVmZXJlbmNlVGVzdC5JbnRsMUZpbGUNClJFU1VMVCB2bV9wZWFrX2I6IHZt
X3BrX2JfcmVmPSAyMzY1NDQwMCBieXRlcw0KUkVTVUxUIHdzX3BlYWtfYjogd3NfcGtfYl9yZWY9
IDQ1MDE1MDQwIGJ5dGVzDQpSRVNVTFQgdm1fcGVha19yOiB2bV9wa19yX3JlZj0gMTEzMDkwNTYw
IGJ5dGVzDQpSRVNVTFQgd3NfcGVha19yOiB3c19wa19yX3JlZj0gMTE4NTU0NjI0IGJ5dGVzDQpS
RVNVTFQgdm1fc2luZ2xlX3BlYWtfcjogdm1fc3BrX3JfcmVmPSAxMTMwOTA1NjAgYnl0ZXMNClJF
U1VMVCB3c19zaW5nbGVfcGVha19yOiB3c19zcGtfcl9yZWY9IDExODU1NDYyNCBieXRlcw0KUkVT
VUxUIHZtX2ZpbmFsX2I6IHZtX2ZfYl9yZWY9IDIwODAzNTg0IGJ5dGVzDQpSRVNVTFQgd3NfZmlu
YWxfYjogd3NfZl9iX3JlZj0gNDIxNzY1MTIgYnl0ZXMNClJFU1VMVCB2bV9maW5hbF9yOiB2bV9m
X3JfcmVmPSAxMDc3NDExODQgYnl0ZXMNClJFU1VMVCB3c19maW5hbF9yOiB3c19mX3JfcmVmPSAx
MTEwNzUzMjggYnl0ZXMNClJFU1VMVCB2bV9maW5hbF90OiB2bV9mX3RfcmVmPSAxMjg1NDQ3Njgg
Ynl0ZXMNClJFU1VMVCB3c19maW5hbF90OiB3c19mX3RfcmVmPSAxNTMyNTE4NDAgYnl0ZXMNClJF
U1VMVCBwcm9jZXNzZXM6IHByb2NfX3JlZj0gMiANClJFU1VMVCByZWFkX29wX2I6IHJfb3BfYl9y
ZWY9IDk1MjA3IA0KUkVTVUxUIHdyaXRlX29wX2I6IHdfb3BfYl9yZWY9IDU0NDE0IA0KUkVTVUxU
IG90aGVyX29wX2I6IG9fb3BfYl9yZWY9IDUyMTU2IA0KUkVTVUxUIHRvdGFsX29wX2I6IElPX29w
X2JfcmVmPSAyMDE3NzcgDQpSRVNVTFQgcmVhZF9ieXRlX2I6IHJfYl9yZWY9IDE3MjYyNiBrYg0K
UkVTVUxUIHdyaXRlX2J5dGVfYjogd19iX3JlZj0gMjc5NzAga2INClJFU1VMVCBvdGhlcl9ieXRl
X2I6IG9fYl9yZWY9IDEwNiBrYg0KUkVTVUxUIHRvdGFsX2J5dGVfYjogSU9fYl9yZWY9IDIwMDcw
MyBrYg0KUkVTVUxUIHJlYWRfb3Bfcjogcl9vcF9yX3JlZj0gNDAxNjMgDQpSRVNVTFQgd3JpdGVf
b3Bfcjogd19vcF9yX3JlZj0gOTUxMzUgDQpSRVNVTFQgb3RoZXJfb3Bfcjogb19vcF9yX3JlZj0g
NTg0IA0KUkVTVUxUIHRvdGFsX29wX3I6IElPX29wX3JfcmVmPSAxMzU4ODIgDQpSRVNVTFQgcmVh
ZF9ieXRlX3I6IHJfcl9yZWY9IDE2ODI2IGtiDQpSRVNVTFQgd3JpdGVfYnl0ZV9yOiB3X3JfcmVm
PSAyNzAwMSBrYg0KUkVTVUxUIG90aGVyX2J5dGVfcjogb19yX3JlZj0gNyBrYg0KUkVTVUxUIHRv
dGFsX2J5dGVfcjogSU9fcl9yZWY9IDQzODM1IGtiDQpSRVNVTFQgY29tbWl0X2NoYXJnZTogY2Nf
cmVmPSAxMjE5NjQga2INClBhZ2VzOiBbMTI2LmNvbSwyY2gubmV0LDZwYXJrLmNvbSxhZmZpbGku
bmV0LGFsbGVncm8ucGwsYXBlaGEucnUsYmFpZHUuY29tLGJicy53ZWZvbmcuY29tLGJsb2cuc2t5
cm9jay5jb20sY21mdS5jb20sY24ueWFob28uY29tLGNvbnRyYS5ncixkdGlibG9nLmNvbSxlbC53
aWtpcGVkaWEub3JnLGVsbXVuZG8uZXMsZXR0b2RheS5jb20sZXhibG9nLmpwLGV4Y2l0ZS5jby5q
cCxmYzIuY29tLGZvcmEucGwsZnJlZS5mcixnb2xlbS5kZSxnb28ubmUuanAsaGFiZXJ0dXJrLmNv
bSxoYXRlbmEubmUuanAsaG9tZS5hbHRlcnZpc3RhLm9yZyxodXJyaXlldC5jb20udHIsanVnZW0u
anAsa2FrYWt1LmNvbSxtaXhpLmpwLG5hZnRlbXBvcmlraS5ncixuYXJvZC55YW5kZXgucnUsbmV3
cy4xNjMuY29tLHBhcnR5ZmxvY2submwscGNob21lLmNvbS50dyxwaG9lbml4dHYuY29tLHBob3Rv
ZmlsZS5ydSxwbC53aWtpcGVkaWEub3JnLHJpY2FyZG8uY2gscnUud2lraXBlZGlhLm9yZyxydXRl
bi5jb20udHcsc3BvcnQyNC5ncix0ZXJyYS5lcyx1ZG4uY29tLHV3YW50cy5jb20sdm9pbGEuZnIs
d3d3LmFsaWNlLml0LHd3dy5hbWF6b24uY28uanAsd3d3LmF1Y3Rpb24uY28ua3Isd3d3LmNoaW5h
cmVuLmNvbSx3d3cuY2hvc3VuLmNvbSx3d3cuZGFuYXdhLmNvbSx3d3cuZGF1bS5uZXQsd3d3LmRj
aW5zaWRlLmNvbSx3d3cuZWFzdG1vbmV5LmNvbSx6b2wuY29tLmNuXQ0KKlJFU1VMVCB0aW1lczog
dF9yZWY9IFs1Nyw3MCw4NiwzNCw0Myw1MiwxNiwyMDcsMzgsMTYwLDgyLDg2LDE4MSw4Myw2Niwx
OTAsNjgsNTYsMTUwLDMzLDY0LDQ2LDExMSwxNTgsNzUsNDEsMTI0LDExNiw4OCwyMCwxNDEsMjgs
MjYxLDMzLDk3LDg4LDc5LDEwNiwzMiwxMTYsNzcsNzksNjksMTU2LDE4MSw5Niw3MCw4MywzMzEs
MjE2LDI0NSwzODQsMTc4LDMxNCwxMTYsMjMzLDIxLDgsNDIsMjUsMjYsMzYsOSw5MywyNSw4Niw2
MCw1NCw5Niw0MCw0NywxMDQsNDEsMzksOTAsMjgsNTAsMzQsNjIsMTIyLDM2LDMyLDg2LDYxLDY5
LDE3LDExNCwyMywxOTAsMjcsNDUsODEsNjEsNTEsMzEsNTYsNDcsNjcsNjcsMTAzLDExOSw4Niw1
Myw0OSwyMzksMTI1LDE5MywzMjksMTQ5LDIwOCwxMTIsMTUyLDIxLDgsNDIsMjcsMjUsMzUsMTAs
OTIsMjUsODYsNTksNTMsOTQsNDEsNDcsMTA1LDQxLDM5LDg5LDI4LDUwLDM1LDYyLDEyMSw1OSwz
Miw4Nyw2Miw2OSwxNywxMTYsMjQsMTkzLDI3LDQ0LDgwLDYxLDUxLDMyLDU3LDQ5LDY4LDU5LDEw
MSwxMjEsODcsNTAsNTAsMjQwLDEyNywxOTgsMzI5LDE1NiwxOTcsMTE0LDE3NCwyMCw4LDQzLDI3
LDI2LDM2LDksOTQsMjYsODgsNTksNTQsOTMsNDIsNDcsMTA3LDQwLDM5LDkyLDI4LDUwLDM0LDYz
LDEyMyw1OSwzMiw4Nyw2MCw3MCwxOCwxMTYsMjQsMjAyLDI3LDQ2LDc5LDYwLDUxLDMxLDU1LDUw
LDcwLDY2LDEwNCwxMjEsODgsNTIsNTAsMjM5LDEyNywxOTcsMzQ1LDE1MSwxOTUsMTE1LDE3NCwy
MSw4LDQzLDI3LDI2LDM2LDksOTIsMjYsODcsNTgsNTYsMTI0LDQzLDQ2LDEwNSw0Miw0MCw5MSwy
OSw1MSwzNCw2NSwxMjEsMzQsMzIsODcsNjIsNzAsMTcsMTE1LDI0LDE5NCwyNyw0NSw3OSw2MSw1
MiwzMSw1OSw1MCw2OSw2MSwxMDMsMTIxLDg5LDgwLDQ5LDI0MSwxMjksMjAwLDMyOSwxNDYsMTk3
LDExNSwxNzQsMjEsOSw0NCwyNiwyNywzNiwxMCw5MywyNSw4Nyw1OSw1Myw5NCw0Miw0NiwxMDYs
NDAsNDAsOTEsMjksNTIsMzUsNjMsMTI0LDM1LDM0LDg2LDYxLDcxLDE4LDExNiwyNCwxOTUsMjcs
NDUsODEsNjEsNTEsMjksNTgsNTAsNjksNjgsMTAzLDEyMiw4OCw3Myw1MCwyNDEsMTI5LDIwMCwz
MjksMTU1LDE5OSwxMTUsMTc0LDIxLDgsNDIsMjcsMjYsMzUsMTAsOTIsMjYsODYsNjAsNTQsOTMs
NDIsNDcsMTA1LDQxLDQxLDg0LDQxLDUxLDM0LDYzLDEyMCw1OSwzMyw4Nyw2MCw3MCwxOCwxMTcs
MjUsMTkzLDI4LDQ1LDc5LDYwLDUxLDMwLDU4LDUxLDU2LDY2LDEwNSwxMjEsODYsNTEsNDksMjQz
LDEyNywxOTgsMzMxLDE2MSwxOTgsMTE0LDE3NiwyMSw5LDQ0LDI4LDI3LDM3LDEwLDkyLDI4LDg3
LDU5LDU0LDk1LDQyLDQ4LDEwNiw0Miw0MCw5MSwyOSw1MiwzNCw2NCwxMjIsNTcsMzIsODUsNjUs
NzAsMTgsMTE2LDIzLDE5MiwyOCw0NCw3OSw2MCw1MSwzMSw1Nyw1MSw2OCw2NSwxMDMsMTIxLDkw
LDUxLDQ5LDI0MCwxMzAsMTk3LDMyMywxNDIsMTk2LDExMywxNzUsMjEsOCw0MywyNywyNiwzNyw5
LDkzLDI1LDg2LDYwLDUyLDk1LDQxLDQ3LDEwNiw0MSw0MCw5MSwyOSw1MiwzNCw2MiwxMzEsMzQs
MzMsODcsNjAsNzAsMTgsMTE0LDI0LDE5MywyNyw0NCw4MCw2MCw1MiwzMCw1Niw1MCw2OCw2MSwx
MDIsMTIwLDg2LDcyLDQ5LDIzOSwxMjgsMTk4LDMyNiwxNDUsMTk1LDExMiwxNzUsMjEsOCw0Mywy
NiwyNiwzNiw5LDkxLDI1LDg3LDU4LDUzLDkxLDQzLDQ2LDEwNSw0MiwzOSw5MCwyOCw1MSwzNCw2
MiwxMTcsMzQsMzMsODYsNjEsNjksMTgsMTE0LDI0LDE5NCwyOCw0NCw4MSw2MSw1MiwzMCw1Nyw0
OSw2OCw2NSwxMDMsMTIwLDg2LDUwLDQ5LDI0MCwxMjgsMjAwLDMyNiwxNDQsMTk0LDExNSwxNzRd
IG1zDQpbICAgICAgIE9LIF0gUGFnZUN5Y2xlclJlZmVyZW5jZVRlc3QuSW50bDFGaWxlICg2NDIw
NSBtcykNClstLS0tLS0tLS0tXSAxIHRlc3QgZnJvbSBQYWdlQ3ljbGVyUmVmZXJlbmNlVGVzdCAo
NjQyMDUgbXMgdG90YWwpDQoNClstLS0tLS0tLS0tXSBHbG9iYWwgdGVzdCBlbnZpcm9ubWVudCB0
ZWFyLWRvd24NCls9PT09PT09PT09XSAyIHRlc3RzIGZyb20gMiB0ZXN0IGNhc2VzIHJhbi4gKDE5
MTI2MSBtcyB0b3RhbCkNClsgIFBBU1NFRCAgXSAyIHRlc3RzLg0KDQogIFlPVSBIQVZFIDEgRElT
QUJMRUQgVEVTVA0KDQogIFlPVSBIQVZFIDcgRkxBS1kgVEVTVFMNCg0KICBZT1UgSEFWRSAzIHRl
c3RzIHdpdGggaWdub3JlZCBmYWlsdXJlcyAoRkFJTFMgcHJlZml4KQ0KDQo8L3NwYW4+PHNwYW4g
Y2xhc3M9ImhlYWRlciI+cHJvZ3JhbSBmaW5pc2hlZCB3aXRoIGV4aXQgY29kZSAwCmVsYXBzZWRU
aW1lPTE5MS44MzkwMDAKPC9zcGFuPjwvcHJlPgo8L2JvZHk+CjwvaHRtbD4=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119657</attachid>
            <date>2011-12-16 13:04:57 -0800</date>
            <delta_ts>2011-12-16 13:12:40 -0800</delta_ts>
            <desc>Proposed patch v2</desc>
            <filename>bug-71956-v2.diff</filename>
            <type>text/plain</type>
            <size>16015</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0YTQzZWY2Li4yYzdkZjM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMTIt
MTYgIEFuZHJlYXMgS2xpbmcgIDxrbGluZ0B3ZWJraXQub3JnPgorCisgICAgICAgIENhY2hlIGFu
ZCByZXVzZSBIVE1MQ29sbGVjdGlvbnMgZXhwb3NlZCBieSBEb2N1bWVudC4KKyAgICAgICAgPGh0
dHA6Ly93ZWJraXQub3JnL2IvNzE5NTY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVXBkYXRlIGZhc3QvZG9tL2djLTkuaHRtbCB0byBkb2N1bWVudCB0
aGUgbmV3IGxpZmV0aW1lIGJlaGF2aW9yIG9mCisgICAgICAgIEhUTUxDb2xsZWN0aW9uIG9iamVj
dHMgcmV0dXJuZWQgYnkgZG9jdW1lbnQuCisKKyAgICAgICAgKiBmYXN0L2RvbS9kb2N1bWVudC1j
b2xsZWN0aW9uLWlkZW1wb3RlbmNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFz
dC9kb20vZG9jdW1lbnQtY29sbGVjdGlvbi1pZGVtcG90ZW5jZS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2RvbS9nYy05LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9nYy05
Lmh0bWw6CisKIDIwMTEtMTItMTYgIE1pa2hhaWwgTmFnYW5vdiAgPG1uYWdhbm92QGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBTY3JvbGwgbm9uLXZpc2libGUgZWRpdCBjb250cm9scyBhbmQgY2Fy
ZXQgaW50byB0aGUgY2VudGVyIG9mIHRoZSB2aWV3IHdoZW4gc3RhcnRpbmcgdHlwaW5nLgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vZG9jdW1lbnQtY29sbGVjdGlvbi1pZGVtcG90
ZW5jZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9kb2N1bWVudC1jb2xsZWN0
aW9uLWlkZW1wb3RlbmNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5mYWQwNjhjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
ZG9jdW1lbnQtY29sbGVjdGlvbi1pZGVtcG90ZW5jZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
OCBAQAorVGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgdGhlIEhUTUxDb2xsZWN0aW9uIGdldHRlcnMg
b24gZG9jdW1lbnQgKGV4Y2x1ZGluZyAuYWxsKSByZXR1cm5zIHRoZSBzYW1lIG9iamVjdCB3aGVu
IGNhbGxlZCByZXBlYXRlZGx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFT
UyBkb2N1bWVudC5hbGwgPT0gZG9jdW1lbnQuYWxsIGlzIGZhbHNlCitQQVNTIGRvY3VtZW50Lmlt
YWdlcyA9PSBkb2N1bWVudC5pbWFnZXMgaXMgdHJ1ZQorUEFTUyBkb2N1bWVudC5lbWJlZHMgPT0g
ZG9jdW1lbnQuZW1iZWRzIGlzIHRydWUKK1BBU1MgZG9jdW1lbnQucGx1Z2lucyA9PSBkb2N1bWVu
dC5wbHVnaW5zIGlzIHRydWUKK1BBU1MgZG9jdW1lbnQuYXBwbGV0cyA9PSBkb2N1bWVudC5hcHBs
ZXRzIGlzIHRydWUKK1BBU1MgZG9jdW1lbnQubGlua3MgPT0gZG9jdW1lbnQubGlua3MgaXMgdHJ1
ZQorUEFTUyBkb2N1bWVudC5mb3JtcyA9PSBkb2N1bWVudC5mb3JtcyBpcyB0cnVlCitQQVNTIGRv
Y3VtZW50LmFuY2hvcnMgPT0gZG9jdW1lbnQuYW5jaG9ycyBpcyB0cnVlCitQQVNTIGRvY3VtZW50
LnNjcmlwdHMgPT0gZG9jdW1lbnQuc2NyaXB0cyBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vZG9jdW1lbnQtY29sbGVjdGlvbi1pZGVtcG90ZW5jZS5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vZG9jdW1lbnQtY29sbGVjdGlvbi1pZGVtcG90ZW5jZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNkM2Y1NDEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9kb2N1bWVudC1jb2xsZWN0aW9uLWlkZW1wb3RlbmNlLmh0bWwK
QEAgLTAsMCArMSwyNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisKK2Rlc2NyaXB0aW9u
KCJUaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCB0aGUgSFRNTENvbGxlY3Rpb24gZ2V0dGVycyBvbiBk
b2N1bWVudCAoZXhjbHVkaW5nIC5hbGwpIHJldHVybnMgdGhlIHNhbWUgb2JqZWN0IHdoZW4gY2Fs
bGVkIHJlcGVhdGVkbHkuIik7CisKK3ZhciBjb2xsZWN0aW9ucyA9IFsgImltYWdlcyIsICJlbWJl
ZHMiLCAicGx1Z2lucyIsICJhcHBsZXRzIiwgImxpbmtzIiwgImZvcm1zIiwgImFuY2hvcnMiLCAi
c2NyaXB0cyIgXTsKKworc2hvdWxkQmUoImRvY3VtZW50LmFsbCA9PSBkb2N1bWVudC5hbGwiLCAi
ZmFsc2UiKTsKKworZm9yIChpID0gMDsgaSA8IGNvbGxlY3Rpb25zLmxlbmd0aDsgKytpKSB7Cisg
ICAgdmFyIGNvbGxlY3Rpb24gPSBjb2xsZWN0aW9uc1tpXTsKKyAgICBzaG91bGRCZSgiZG9jdW1l
bnQuIiArIGNvbGxlY3Rpb24gKyAiID09IGRvY3VtZW50LiIgKyBjb2xsZWN0aW9uLCAidHJ1ZSIp
OworfQorCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL2djLTktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vZ2Mt
OS1leHBlY3RlZC50eHQKaW5kZXggNDE0ZTE2Zi4uY2I1YjQyYyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vZ2MtOS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vZ2MtOS1leHBlY3RlZC50eHQKQEAgLTE2LDEzICsxNiwxMyBAQCBQQVNTOiBkb2N1bWVudC5n
ZXRFbGVtZW50c0J5VGFnTmFtZSgnY2FudmFzJylbMF0uZ2V0Q29udGV4dCgnMmQnKS5jcmVhdGVQ
YXR0ZXJuKAogUEFTUzogZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NlbGVjdCcpWzBd
Lm9wdGlvbnMubXlDdXN0b21Qcm9wZXJ0eSBzaG91bGQgYmUgdW5kZWZpbmVkIGFuZCBpcy4KIFBB
U1M6IGRvY3VtZW50LmFsbC5teUN1c3RvbVByb3BlcnR5IHNob3VsZCBiZSB1bmRlZmluZWQgYW5k
IGlzLgogUEFTUzogZG9jdW1lbnQuYm9keS5jaGlsZE5vZGVzLm15Q3VzdG9tUHJvcGVydHkgc2hv
dWxkIGJlIHVuZGVmaW5lZCBhbmQgaXMuCi1QQVNTOiBkb2N1bWVudC5pbWFnZXMubXlDdXN0b21Q
cm9wZXJ0eSBzaG91bGQgYmUgdW5kZWZpbmVkIGFuZCBpcy4KLVBBU1M6IGRvY3VtZW50LmVtYmVk
cy5teUN1c3RvbVByb3BlcnR5IHNob3VsZCBiZSB1bmRlZmluZWQgYW5kIGlzLgotUEFTUzogZG9j
dW1lbnQuYXBwbGV0cy5teUN1c3RvbVByb3BlcnR5IHNob3VsZCBiZSB1bmRlZmluZWQgYW5kIGlz
LgotUEFTUzogZG9jdW1lbnQubGlua3MubXlDdXN0b21Qcm9wZXJ0eSBzaG91bGQgYmUgdW5kZWZp
bmVkIGFuZCBpcy4KLVBBU1M6IGRvY3VtZW50LmZvcm1zLm15Q3VzdG9tUHJvcGVydHkgc2hvdWxk
IGJlIHVuZGVmaW5lZCBhbmQgaXMuCi1QQVNTOiBkb2N1bWVudC5hbmNob3JzLm15Q3VzdG9tUHJv
cGVydHkgc2hvdWxkIGJlIHVuZGVmaW5lZCBhbmQgaXMuCi1QQVNTOiBkb2N1bWVudC5zY3JpcHRz
Lm15Q3VzdG9tUHJvcGVydHkgc2hvdWxkIGJlIHVuZGVmaW5lZCBhbmQgaXMuCitQQVNTOiBkb2N1
bWVudC5pbWFnZXMubXlDdXN0b21Qcm9wZXJ0eSBzaG91bGQgYmUgMSBhbmQgaXMuCitQQVNTOiBk
b2N1bWVudC5lbWJlZHMubXlDdXN0b21Qcm9wZXJ0eSBzaG91bGQgYmUgMSBhbmQgaXMuCitQQVNT
OiBkb2N1bWVudC5hcHBsZXRzLm15Q3VzdG9tUHJvcGVydHkgc2hvdWxkIGJlIDEgYW5kIGlzLgor
UEFTUzogZG9jdW1lbnQubGlua3MubXlDdXN0b21Qcm9wZXJ0eSBzaG91bGQgYmUgMSBhbmQgaXMu
CitQQVNTOiBkb2N1bWVudC5mb3Jtcy5teUN1c3RvbVByb3BlcnR5IHNob3VsZCBiZSAxIGFuZCBp
cy4KK1BBU1M6IGRvY3VtZW50LmFuY2hvcnMubXlDdXN0b21Qcm9wZXJ0eSBzaG91bGQgYmUgMSBh
bmQgaXMuCitQQVNTOiBkb2N1bWVudC5zY3JpcHRzLm15Q3VzdG9tUHJvcGVydHkgc2hvdWxkIGJl
IDEgYW5kIGlzLgogUEFTUzogZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2Zvcm0nKVsw
XS5lbGVtZW50cy5teUN1c3RvbVByb3BlcnR5IHNob3VsZCBiZSB1bmRlZmluZWQgYW5kIGlzLgog
UEFTUzogZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3RhYmxlJylbMF0ucm93cy5teUN1
c3RvbVByb3BlcnR5IHNob3VsZCBiZSB1bmRlZmluZWQgYW5kIGlzLgogUEFTUzogZG9jdW1lbnQu
Z2V0RWxlbWVudHNCeVRhZ05hbWUoJ3RhYmxlJylbMF0ucm93c1swXS5jZWxscy5teUN1c3RvbVBy
b3BlcnR5IHNob3VsZCBiZSB1bmRlZmluZWQgYW5kIGlzLgpAQCAtNTIsMTMgKzUyLDEzIEBAIFBB
U1M6IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdjYW52YXMnKVswXS5nZXRDb250ZXh0
KCcyZCcpLmNyZWF0ZVBhdHRlcm4oCiBQQVNTOiBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFt
ZSgnc2VsZWN0JylbMF0ub3B0aW9ucy5teUN1c3RvbVByb3BlcnR5IHNob3VsZCBiZSB1bmRlZmlu
ZWQgYW5kIGlzLgogUEFTUzogZG9jdW1lbnQuYWxsLm15Q3VzdG9tUHJvcGVydHkgc2hvdWxkIGJl
IHVuZGVmaW5lZCBhbmQgaXMuCiBQQVNTOiBkb2N1bWVudC5ib2R5LmNoaWxkTm9kZXMubXlDdXN0
b21Qcm9wZXJ0eSBzaG91bGQgYmUgdW5kZWZpbmVkIGFuZCBpcy4KLVBBU1M6IGRvY3VtZW50Lmlt
YWdlcy5teUN1c3RvbVByb3BlcnR5IHNob3VsZCBiZSB1bmRlZmluZWQgYW5kIGlzLgotUEFTUzog
ZG9jdW1lbnQuZW1iZWRzLm15Q3VzdG9tUHJvcGVydHkgc2hvdWxkIGJlIHVuZGVmaW5lZCBhbmQg
aXMuCi1QQVNTOiBkb2N1bWVudC5hcHBsZXRzLm15Q3VzdG9tUHJvcGVydHkgc2hvdWxkIGJlIHVu
ZGVmaW5lZCBhbmQgaXMuCi1QQVNTOiBkb2N1bWVudC5saW5rcy5teUN1c3RvbVByb3BlcnR5IHNo
b3VsZCBiZSB1bmRlZmluZWQgYW5kIGlzLgotUEFTUzogZG9jdW1lbnQuZm9ybXMubXlDdXN0b21Q
cm9wZXJ0eSBzaG91bGQgYmUgdW5kZWZpbmVkIGFuZCBpcy4KLVBBU1M6IGRvY3VtZW50LmFuY2hv
cnMubXlDdXN0b21Qcm9wZXJ0eSBzaG91bGQgYmUgdW5kZWZpbmVkIGFuZCBpcy4KLVBBU1M6IGRv
Y3VtZW50LnNjcmlwdHMubXlDdXN0b21Qcm9wZXJ0eSBzaG91bGQgYmUgdW5kZWZpbmVkIGFuZCBp
cy4KK1BBU1M6IGRvY3VtZW50LmltYWdlcy5teUN1c3RvbVByb3BlcnR5IHNob3VsZCBiZSAxIGFu
ZCBpcy4KK1BBU1M6IGRvY3VtZW50LmVtYmVkcy5teUN1c3RvbVByb3BlcnR5IHNob3VsZCBiZSAx
IGFuZCBpcy4KK1BBU1M6IGRvY3VtZW50LmFwcGxldHMubXlDdXN0b21Qcm9wZXJ0eSBzaG91bGQg
YmUgMSBhbmQgaXMuCitQQVNTOiBkb2N1bWVudC5saW5rcy5teUN1c3RvbVByb3BlcnR5IHNob3Vs
ZCBiZSAxIGFuZCBpcy4KK1BBU1M6IGRvY3VtZW50LmZvcm1zLm15Q3VzdG9tUHJvcGVydHkgc2hv
dWxkIGJlIDEgYW5kIGlzLgorUEFTUzogZG9jdW1lbnQuYW5jaG9ycy5teUN1c3RvbVByb3BlcnR5
IHNob3VsZCBiZSAxIGFuZCBpcy4KK1BBU1M6IGRvY3VtZW50LnNjcmlwdHMubXlDdXN0b21Qcm9w
ZXJ0eSBzaG91bGQgYmUgMSBhbmQgaXMuCiBQQVNTOiBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFn
TmFtZSgnZm9ybScpWzBdLmVsZW1lbnRzLm15Q3VzdG9tUHJvcGVydHkgc2hvdWxkIGJlIHVuZGVm
aW5lZCBhbmQgaXMuCiBQQVNTOiBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgndGFibGUn
KVswXS5yb3dzLm15Q3VzdG9tUHJvcGVydHkgc2hvdWxkIGJlIHVuZGVmaW5lZCBhbmQgaXMuCiBQ
QVNTOiBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgndGFibGUnKVswXS5yb3dzWzBdLmNl
bGxzLm15Q3VzdG9tUHJvcGVydHkgc2hvdWxkIGJlIHVuZGVmaW5lZCBhbmQgaXMuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9nYy05Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9nYy05Lmh0bWwKaW5kZXggM2VkYTNhZS4uYzhmZDRkYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vZ2MtOS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2djLTkuaHRt
bApAQCAtMTI2LDEzICsxMjYsMTMgQEAgdmFyIG9iamVjdHNUb1Rlc3QgPSBbCiAgICAgWyAiZG9j
dW1lbnQuYWxsIiBdLAogICAgIFsgImRvY3VtZW50LmJvZHkuY2hpbGROb2RlcyIgXSwKIAotICAg
IFsgImRvY3VtZW50LmltYWdlcyIgXSwKLSAgICBbICJkb2N1bWVudC5lbWJlZHMiIF0sCi0gICAg
WyAiZG9jdW1lbnQuYXBwbGV0cyIgXSwKLSAgICBbICJkb2N1bWVudC5saW5rcyIgXSwKLSAgICBb
ICJkb2N1bWVudC5mb3JtcyIgXSwKLSAgICBbICJkb2N1bWVudC5hbmNob3JzIiBdLAotICAgIFsg
ImRvY3VtZW50LnNjcmlwdHMiIF0sCisgICAgWyAiZG9jdW1lbnQuaW1hZ2VzIiwgImFsbG93IGN1
c3RvbSIgXSwKKyAgICBbICJkb2N1bWVudC5lbWJlZHMiLCAiYWxsb3cgY3VzdG9tIiBdLAorICAg
IFsgImRvY3VtZW50LmFwcGxldHMiLCAiYWxsb3cgY3VzdG9tIiBdLAorICAgIFsgImRvY3VtZW50
LmxpbmtzIiwgImFsbG93IGN1c3RvbSIgXSwKKyAgICBbICJkb2N1bWVudC5mb3JtcyIsICJhbGxv
dyBjdXN0b20iIF0sCisgICAgWyAiZG9jdW1lbnQuYW5jaG9ycyIsICJhbGxvdyBjdXN0b20iIF0s
CisgICAgWyAiZG9jdW1lbnQuc2NyaXB0cyIsICJhbGxvdyBjdXN0b20iIF0sCiAKICAgICBbICJk
b2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnZm9ybScpWzBdLmVsZW1lbnRzIiBdLAogICAg
IFsgImRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCd0YWJsZScpWzBdLnJvd3MiIF0sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggZDJiYjI1Zi4uOTE0ZDc1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBA
CisyMDExLTEyLTE2ICBBbmRyZWFzIEtsaW5nICA8a2xpbmdAd2Via2l0Lm9yZz4KKworICAgICAg
ICBDYWNoZSBhbmQgcmV1c2UgSFRNTENvbGxlY3Rpb25zIGV4cG9zZWQgYnkgRG9jdW1lbnQuCisg
ICAgICAgIDxodHRwOi8vd2Via2l0Lm9yZy9iLzcxOTU2PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIExldCBEb2N1bWVudCBjYWNoZSB0aGUgdmFyaW91
cyBIVE1MQ29sbGVjdGlvbiBvYmplY3RzIGl0IGV4cG9zZXMuCisgICAgICAgIFRoaXMgaXMgYSBi
ZWhhdmlvciBjaGFuZ2UgaW4gdHdvIHdheXM6CisKKyAgICAgICAgMSkgVGhlIGxpZmV0aW1lIG9m
IHJldHVybmVkIGNvbGxlY3Rpb25zIGlzIG5vdyB0aWVkIHRvIHRoZSBsaWZldGltZQorICAgICAg
ICAgICBvZiB0aGUgRG9jdW1lbnQuIFRoaXMgbWF0Y2hlcyB0aGUgYmVoYXZpb3Igb2YgRmlyZWZv
eCBhbmQgT3BlcmEuCisKKyAgICAgICAgMikgVGhlIGNhY2hlZCBjb2xsZWN0aW9ucyByZXR1cm5l
ZCBieSBkb2N1bWVudCBhcmUgbm93IGV4YWN0bHkgZXF1YWwKKyAgICAgICAgICAgdG8gdGhvc2Ug
cmV0dXJuZWQgYnkgc3Vic2VxdWVudCBjYWxscyB0byB0aGUgc2FtZSBnZXR0ZXJzLgorCisgICAg
ICAgIFRoaXMgcmVkdWNlcyBtZW1vcnkgY29uc3VtcHRpb24gYnkgfjgwMCBrQiAob24gNjQtYml0
KSB3aGVuIGxvYWRpbmcKKyAgICAgICAgdGhlIGZ1bGwgSFRNTDUgc3BlYy4gZG9jdW1lbnQubGlu
a3Mgd2FzIGNhbGxlZCAzNDAwMSB0aW1lcywgeWllbGRpbmcKKyAgICAgICAgMzQwMDEgc2VwYXJh
dGUgSFRNTENvbGxlY3Rpb25zLCBhbmQgbm93IHdlIG9ubHkgbmVlZCAxLgorCisgICAgICAgIFRo
ZSBkb2N1bWVudC5hbGwgY29sbGVjdGlvbiByZXRhaW5zIHRoZSBvbGQgYmVoYXZpb3IsIGFzIGNh
Y2hpbmcgaXQKKyAgICAgICAgd2lsbCBiZSBhIGJpdCBtb3JlIGNvbXBsaWNhdGVkLgorCisgICAg
ICAgIFRvIGF2b2lkIGEgcmVmZXJlbmNlIGN5Y2xlIGJldHdlZW4gRG9jdW1lbnQgYW5kIEhUTUxD
b2xsZWN0aW9uLAorICAgICAgICBjb2xsZWN0aW9ucyB0aGF0IGFyZSBjYWNoZWQgb24gRG9jdW1l
bnQgZG8gbm90IHJldGFpbmVkIHRoZWlyIGJhc2UKKyAgICAgICAgbm9kZSBwb2ludGVyIChjb250
cm9sbGVkIGJ5IGEgbV9iYXNlSXNSZXRhaW5lZCBmbGFnLikKKworICAgICAgICBUZXN0czogZmFz
dC9kb20vZG9jdW1lbnQtY29sbGVjdGlvbi1pZGVtcG90ZW5jZS5odG1sCisgICAgICAgICAgICAg
ICBmYXN0L2RvbS9nYy05Lmh0bWwKKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZGV0YWNoKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50OjpjYWNoZWRDb2xsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjppbWFn
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmFwcGxldHMpOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OmVtYmVkcyk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cGx1
Z2lucyk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6b2JqZWN0cyk6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudDo6c2NyaXB0cyk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6
bGlua3MpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmZvcm1zKToKKyAgICAgICAgKFdl
YkNvcmU6OkRvY3VtZW50OjphbmNob3JzKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAg
ICAgICAgKiBodG1sL0hUTUxDb2xsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxD
b2xsZWN0aW9uOjpIVE1MQ29sbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29sbGVj
dGlvbjo6Y3JlYXRlRm9yQ2FjaGluZ09uRG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TENvbGxlY3Rpb246On5IVE1MQ29sbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29s
bGVjdGlvbjo6aXRlbUFmdGVyKToKKyAgICAgICAgKiBodG1sL0hUTUxDb2xsZWN0aW9uLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MQ29sbGVjdGlvbjo6YmFzZSk6CisKIDIwMTEtMTItMTYgIE1p
a2hhaWwgTmFnYW5vdiAgPG1uYWdhbm92QGNocm9taXVtLm9yZz4KIAogICAgICAgICBTY3JvbGwg
bm9uLXZpc2libGUgZWRpdCBjb250cm9scyBhbmQgY2FyZXQgaW50byB0aGUgY2VudGVyIG9mIHRo
ZSB2aWV3IHdoZW4gc3RhcnRpbmcgdHlwaW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXgg
ZGY0YjU3YS4uNDYyN2RjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC00MTkwLDUwICs0
MTkwLDU4IEBAIGJvb2wgRG9jdW1lbnQ6Omhhc1NWR1Jvb3ROb2RlKCkgY29uc3QKIH0KICNlbmRp
ZgogCitjb25zdCBSZWZQdHI8SFRNTENvbGxlY3Rpb24+JiBEb2N1bWVudDo6Y2FjaGVkQ29sbGVj
dGlvbihDb2xsZWN0aW9uVHlwZSB0eXBlKQoreworICAgIEFTU0VSVCh0eXBlIDwgTnVtVW5uYW1l
ZERvY3VtZW50Q2FjaGVkVHlwZXMpOworICAgIGlmICghbV9jb2xsZWN0aW9uc1t0eXBlXSkKKyAg
ICAgICAgbV9jb2xsZWN0aW9uc1t0eXBlXSA9IEhUTUxDb2xsZWN0aW9uOjpjcmVhdGVGb3JDYWNo
aW5nT25Eb2N1bWVudCh0aGlzLCB0eXBlKTsKKyAgICByZXR1cm4gbV9jb2xsZWN0aW9uc1t0eXBl
XTsKK30KKwogUGFzc1JlZlB0cjxIVE1MQ29sbGVjdGlvbj4gRG9jdW1lbnQ6OmltYWdlcygpCiB7
Ci0gICAgcmV0dXJuIEhUTUxDb2xsZWN0aW9uOjpjcmVhdGUodGhpcywgRG9jSW1hZ2VzKTsKKyAg
ICByZXR1cm4gY2FjaGVkQ29sbGVjdGlvbihEb2NJbWFnZXMpOwogfQogCiBQYXNzUmVmUHRyPEhU
TUxDb2xsZWN0aW9uPiBEb2N1bWVudDo6YXBwbGV0cygpCiB7Ci0gICAgcmV0dXJuIEhUTUxDb2xs
ZWN0aW9uOjpjcmVhdGUodGhpcywgRG9jQXBwbGV0cyk7CisgICAgcmV0dXJuIGNhY2hlZENvbGxl
Y3Rpb24oRG9jQXBwbGV0cyk7CiB9CiAKIFBhc3NSZWZQdHI8SFRNTENvbGxlY3Rpb24+IERvY3Vt
ZW50OjplbWJlZHMoKQogewotICAgIHJldHVybiBIVE1MQ29sbGVjdGlvbjo6Y3JlYXRlKHRoaXMs
IERvY0VtYmVkcyk7CisgICAgcmV0dXJuIGNhY2hlZENvbGxlY3Rpb24oRG9jRW1iZWRzKTsKIH0K
IAogUGFzc1JlZlB0cjxIVE1MQ29sbGVjdGlvbj4gRG9jdW1lbnQ6OnBsdWdpbnMoKQogewogICAg
IC8vIFRoaXMgaXMgYW4gYWxpYXMgZm9yIGVtYmVkcygpIHJlcXVpcmVkIGZvciB0aGUgSlMgRE9N
IGJpbmRpbmdzLgotICAgIHJldHVybiBIVE1MQ29sbGVjdGlvbjo6Y3JlYXRlKHRoaXMsIERvY0Vt
YmVkcyk7CisgICAgcmV0dXJuIGNhY2hlZENvbGxlY3Rpb24oRG9jRW1iZWRzKTsKIH0KIAogUGFz
c1JlZlB0cjxIVE1MQ29sbGVjdGlvbj4gRG9jdW1lbnQ6Om9iamVjdHMoKQogewotICAgIHJldHVy
biBIVE1MQ29sbGVjdGlvbjo6Y3JlYXRlKHRoaXMsIERvY09iamVjdHMpOworICAgIHJldHVybiBj
YWNoZWRDb2xsZWN0aW9uKERvY09iamVjdHMpOwogfQogCiBQYXNzUmVmUHRyPEhUTUxDb2xsZWN0
aW9uPiBEb2N1bWVudDo6c2NyaXB0cygpCiB7Ci0gICAgcmV0dXJuIEhUTUxDb2xsZWN0aW9uOjpj
cmVhdGUodGhpcywgRG9jU2NyaXB0cyk7CisgICAgcmV0dXJuIGNhY2hlZENvbGxlY3Rpb24oRG9j
U2NyaXB0cyk7CiB9CiAKIFBhc3NSZWZQdHI8SFRNTENvbGxlY3Rpb24+IERvY3VtZW50OjpsaW5r
cygpCiB7Ci0gICAgcmV0dXJuIEhUTUxDb2xsZWN0aW9uOjpjcmVhdGUodGhpcywgRG9jTGlua3Mp
OworICAgIHJldHVybiBjYWNoZWRDb2xsZWN0aW9uKERvY0xpbmtzKTsKIH0KIAogUGFzc1JlZlB0
cjxIVE1MQ29sbGVjdGlvbj4gRG9jdW1lbnQ6OmZvcm1zKCkKIHsKLSAgICByZXR1cm4gSFRNTENv
bGxlY3Rpb246OmNyZWF0ZSh0aGlzLCBEb2NGb3Jtcyk7CisgICAgcmV0dXJuIGNhY2hlZENvbGxl
Y3Rpb24oRG9jRm9ybXMpOwogfQogCiBQYXNzUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiBEb2N1bWVu
dDo6YW5jaG9ycygpCiB7Ci0gICAgcmV0dXJuIEhUTUxDb2xsZWN0aW9uOjpjcmVhdGUodGhpcywg
RG9jQW5jaG9ycyk7CisgICAgcmV0dXJuIGNhY2hlZENvbGxlY3Rpb24oRG9jQW5jaG9ycyk7CiB9
CiAKIFBhc3NSZWZQdHI8SFRNTEFsbENvbGxlY3Rpb24+IERvY3VtZW50OjphbGwoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuaAppbmRleCBkMjkyMjViLi5mNjE3ZjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApA
QCAtMTE4NSw2ICsxMTg1LDggQEAgcHJpdmF0ZToKICAgICBQYWdlVmlzaWJpbGl0eVN0YXRlIHZp
c2liaWxpdHlTdGF0ZSgpIGNvbnN0OwogI2VuZGlmCiAKKyAgICBjb25zdCBSZWZQdHI8SFRNTENv
bGxlY3Rpb24+JiBjYWNoZWRDb2xsZWN0aW9uKENvbGxlY3Rpb25UeXBlKTsKKwogICAgIGludCBt
X2d1YXJkUmVmQ291bnQ7CiAKICAgICBPd25QdHI8Q1NTU3R5bGVTZWxlY3Rvcj4gbV9zdHlsZVNl
bGVjdG9yOwpAQCAtMTM2NSw2ICsxMzY3LDggQEAgcHJpdmF0ZToKICAgICAKICAgICBDaGVja2Vk
UmFkaW9CdXR0b25zIG1fY2hlY2tlZFJhZGlvQnV0dG9uczsKIAorICAgIFJlZlB0cjxIVE1MQ29s
bGVjdGlvbj4gbV9jb2xsZWN0aW9uc1tOdW1Vbm5hbWVkRG9jdW1lbnRDYWNoZWRUeXBlc107CisK
ICAgICB0eXBlZGVmIEhhc2hNYXA8QXRvbWljU3RyaW5nSW1wbCosIENvbGxlY3Rpb25DYWNoZSo+
IE5hbWVkQ29sbGVjdGlvbk1hcDsKICAgICBGaXhlZEFycmF5PENvbGxlY3Rpb25DYWNoZSwgTnVt
VW5uYW1lZERvY3VtZW50Q2FjaGVkVHlwZXM+IG1fY29sbGVjdGlvbkluZm87CiAgICAgRml4ZWRB
cnJheTxOYW1lZENvbGxlY3Rpb25NYXAsIE51bU5hbWVkRG9jdW1lbnRDYWNoZWRUeXBlcz4gbV9u
YW1lQ29sbGVjdGlvbkluZm87CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxD
b2xsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rpb24uY3BwCmlu
ZGV4IDNmMmQwZTEuLjllMzE4NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TENvbGxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rpb24u
Y3BwCkBAIC0zNiwyMCArMzYsMjggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1l
c3BhY2UgSFRNTE5hbWVzOwogCi1IVE1MQ29sbGVjdGlvbjo6SFRNTENvbGxlY3Rpb24oUGFzc1Jl
ZlB0cjxOb2RlPiBiYXNlLCBDb2xsZWN0aW9uVHlwZSB0eXBlKQotICAgIDogbV9vd25zSW5mbyhm
YWxzZSkKK0hUTUxDb2xsZWN0aW9uOjpIVE1MQ29sbGVjdGlvbihEb2N1bWVudCogZG9jdW1lbnQs
IENvbGxlY3Rpb25UeXBlIHR5cGUpCisgICAgOiBtX2Jhc2VJc1JldGFpbmVkKGZhbHNlKQorICAg
ICwgbV9vd25zSW5mbyhmYWxzZSkKICAgICAsIG1fdHlwZSh0eXBlKQotICAgICwgbV9iYXNlKGJh
c2UpCi0gICAgLCBtX2luZm8obV9iYXNlLT5pc0RvY3VtZW50Tm9kZSgpID8gc3RhdGljX2Nhc3Q8
RG9jdW1lbnQqPihtX2Jhc2UuZ2V0KCkpLT5jb2xsZWN0aW9uSW5mbyh0eXBlKSA6IDApCisgICAg
LCBtX2Jhc2UoZG9jdW1lbnQpCisgICAgLCBtX2luZm8oZG9jdW1lbnQtPmNvbGxlY3Rpb25JbmZv
KHR5cGUpKQogewogfQogCiBIVE1MQ29sbGVjdGlvbjo6SFRNTENvbGxlY3Rpb24oUGFzc1JlZlB0
cjxOb2RlPiBiYXNlLCBDb2xsZWN0aW9uVHlwZSB0eXBlLCBDb2xsZWN0aW9uQ2FjaGUqIGluZm8p
Ci0gICAgOiBtX293bnNJbmZvKGZhbHNlKQorICAgIDogbV9iYXNlSXNSZXRhaW5lZCh0cnVlKQor
ICAgICwgbV9vd25zSW5mbyhmYWxzZSkKICAgICAsIG1fdHlwZSh0eXBlKQotICAgICwgbV9iYXNl
KGJhc2UpCisgICAgLCBtX2Jhc2UoYmFzZS5nZXQoKSkKICAgICAsIG1faW5mbyhpbmZvKQogewor
ICAgIG1fYmFzZS0+cmVmKCk7Cit9CisKK1Bhc3NSZWZQdHI8SFRNTENvbGxlY3Rpb24+IEhUTUxD
b2xsZWN0aW9uOjpjcmVhdGVGb3JDYWNoaW5nT25Eb2N1bWVudChEb2N1bWVudCogZG9jdW1lbnQs
IENvbGxlY3Rpb25UeXBlIHR5cGUpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MQ29s
bGVjdGlvbihkb2N1bWVudCwgdHlwZSkpOwogfQogCiBQYXNzUmVmUHRyPEhUTUxDb2xsZWN0aW9u
PiBIVE1MQ29sbGVjdGlvbjo6Y3JlYXRlKFBhc3NSZWZQdHI8Tm9kZT4gYmFzZSwgQ29sbGVjdGlv
blR5cGUgdHlwZSkKQEAgLTYxLDYgKzY5LDggQEAgSFRNTENvbGxlY3Rpb246On5IVE1MQ29sbGVj
dGlvbigpCiB7CiAgICAgaWYgKG1fb3duc0luZm8pCiAgICAgICAgIGRlbGV0ZSBtX2luZm87Cisg
ICAgaWYgKG1fYmFzZUlzUmV0YWluZWQpCisgICAgICAgIG1fYmFzZS0+ZGVyZWYoKTsKIH0KIAog
dm9pZCBIVE1MQ29sbGVjdGlvbjo6cmVzZXRDb2xsZWN0aW9uSW5mbygpIGNvbnN0CkBAIC0xMjEs
OSArMTMxLDkgQEAgRWxlbWVudCogSFRNTENvbGxlY3Rpb246Oml0ZW1BZnRlcihFbGVtZW50KiBw
cmV2aW91cykgY29uc3QKICAgICBpZiAoIXByZXZpb3VzKQogICAgICAgICBjdXJyZW50ID0gbV9i
YXNlLT5maXJzdENoaWxkKCk7CiAgICAgZWxzZQotICAgICAgICBjdXJyZW50ID0gbmV4dE5vZGVP
clNpYmxpbmcobV9iYXNlLmdldCgpLCBwcmV2aW91cywgZGVlcCk7CisgICAgICAgIGN1cnJlbnQg
PSBuZXh0Tm9kZU9yU2libGluZyhtX2Jhc2UsIHByZXZpb3VzLCBkZWVwKTsKIAotICAgIGZvciAo
OyBjdXJyZW50OyBjdXJyZW50ID0gbmV4dE5vZGVPclNpYmxpbmcobV9iYXNlLmdldCgpLCBjdXJy
ZW50LCBkZWVwKSkgeworICAgIGZvciAoOyBjdXJyZW50OyBjdXJyZW50ID0gbmV4dE5vZGVPclNp
YmxpbmcobV9iYXNlLCBjdXJyZW50LCBkZWVwKSkgewogICAgICAgICBpZiAoIWN1cnJlbnQtPmlz
RWxlbWVudE5vZGUoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBFbGVtZW50KiBl
ID0gc3RhdGljX2Nhc3Q8RWxlbWVudCo+KGN1cnJlbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQ29sbGVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ29s
bGVjdGlvbi5oCmluZGV4IDg1MjJmNWIuLmY5ZGI2MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTENvbGxlY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxD
b2xsZWN0aW9uLmgKQEAgLTMxLDYgKzMxLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitj
bGFzcyBEb2N1bWVudDsKIGNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBOb2RlOwogY2xhc3MgTm9kZUxp
c3Q7CkBAIC00MCw2ICs0MSw3IEBAIHN0cnVjdCBDb2xsZWN0aW9uQ2FjaGU7CiBjbGFzcyBIVE1M
Q29sbGVjdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPEhUTUxDb2xsZWN0aW9uPiB7CiBwdWJsaWM6
CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTENvbGxlY3Rpb24+IGNyZWF0ZShQYXNzUmVmUHRy
PE5vZGU+IGJhc2UsIENvbGxlY3Rpb25UeXBlKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1M
Q29sbGVjdGlvbj4gY3JlYXRlRm9yQ2FjaGluZ09uRG9jdW1lbnQoRG9jdW1lbnQqLCBDb2xsZWN0
aW9uVHlwZSk7CiAgICAgdmlydHVhbCB+SFRNTENvbGxlY3Rpb24oKTsKICAgICAKICAgICB1bnNp
Z25lZCBsZW5ndGgoKSBjb25zdDsKQEAgLTU1LDEyICs1NywxMiBAQCBwdWJsaWM6CiAKICAgICBQ
YXNzUmVmUHRyPE5vZGVMaXN0PiB0YWdzKGNvbnN0IFN0cmluZyYpOwogCi0gICAgTm9kZSogYmFz
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYmFzZS5nZXQoKTsgfQorICAgIE5vZGUqIGJhc2UoKSBjb25z
dCB7IHJldHVybiBtX2Jhc2U7IH0KICAgICBDb2xsZWN0aW9uVHlwZSB0eXBlKCkgY29uc3QgeyBy
ZXR1cm4gc3RhdGljX2Nhc3Q8Q29sbGVjdGlvblR5cGU+KG1fdHlwZSk7IH0KIAogcHJvdGVjdGVk
OgotICAgIEhUTUxDb2xsZWN0aW9uKFBhc3NSZWZQdHI8Tm9kZT4gYmFzZSwgQ29sbGVjdGlvblR5
cGUsIENvbGxlY3Rpb25DYWNoZSopOwotICAgIEhUTUxDb2xsZWN0aW9uKFBhc3NSZWZQdHI8Tm9k
ZT4gYmFzZSwgQ29sbGVjdGlvblR5cGUpOworICAgIEhUTUxDb2xsZWN0aW9uKFBhc3NSZWZQdHI8
Tm9kZT4gYmFzZSwgQ29sbGVjdGlvblR5cGUsIENvbGxlY3Rpb25DYWNoZSogPSAwKTsKKyAgICBI
VE1MQ29sbGVjdGlvbihEb2N1bWVudCosIENvbGxlY3Rpb25UeXBlKTsKIAogICAgIENvbGxlY3Rp
b25DYWNoZSogaW5mbygpIGNvbnN0IHsgcmV0dXJuIG1faW5mbzsgfQogICAgIHZvaWQgcmVzZXRD
b2xsZWN0aW9uSW5mbygpIGNvbnN0OwpAQCAtNzIsMTAgKzc0LDExIEBAIHByaXZhdGU6CiAgICAg
dmlydHVhbCB1bnNpZ25lZCBjYWxjTGVuZ3RoKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHVw
ZGF0ZU5hbWVDYWNoZSgpIGNvbnN0OwogCisgICAgYm9vbCBtX2Jhc2VJc1JldGFpbmVkIDogMTsK
ICAgICBtdXRhYmxlIGJvb2wgbV9vd25zSW5mbyA6IDE7CiAgICAgdW5zaWduZWQgbV90eXBlIDog
NTsgLy8gQ29sbGVjdGlvblR5cGUKIAotICAgIFJlZlB0cjxOb2RlPiBtX2Jhc2U7CisgICAgTm9k
ZSogbV9iYXNlOwogCiAgICAgbXV0YWJsZSBDb2xsZWN0aW9uQ2FjaGUqIG1faW5mbzsKIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119658</attachid>
            <date>2011-12-16 13:12:40 -0800</date>
            <delta_ts>2011-12-16 15:28:00 -0800</delta_ts>
            <desc>Proposed patch v3</desc>
            <filename>bug-71956-v3.diff</filename>
            <type>text/plain</type>
            <size>16205</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0YTQzZWY2Li5kNTYzZDA1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMTIt
MTYgIEFuZHJlYXMgS2xpbmcgIDxrbGluZ0B3ZWJraXQub3JnPgorCisgICAgICAgIENhY2hlIGFu
ZCByZXVzZSBIVE1MQ29sbGVjdGlvbnMgZXhwb3NlZCBieSBEb2N1bWVudC4KKyAgICAgICAgPGh0
dHA6Ly93ZWJraXQub3JnL2IvNzE5NTY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWRkZWQgYSB0ZXN0IHRvIHZlcmlmeSB0aGF0IGNvbGxlY3Rpb25z
IHJldHVybmVkIGJ5IGRvY3VtZW50IChleGNsdWRpbmcgLmFsbCkKKyAgICAgICAgYXJlIGVxdWFs
IHRvIHRoZSBjb2xsZWN0aW9ucyByZXR1cm5lZCBieSBzdWJzZXF1ZW50IGNhbGxzIHRvIHRoZSBz
YW1lIGdldHRlcnMuCisKKyAgICAgICAgQWxzbyB1cGRhdGUgZmFzdC9kb20vZ2MtOS5odG1sIHRv
IGNvdmVyIHRoZSBuZXcgbGlmZXRpbWUgYmVoYXZpb3Igb2YKKyAgICAgICAgSFRNTENvbGxlY3Rp
b24gb2JqZWN0cyByZXR1cm5lZCBieSBkb2N1bWVudC4KKworICAgICAgICAqIGZhc3QvZG9tL2Rv
Y3VtZW50LWNvbGxlY3Rpb24taWRlbXBvdGVuY2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2RvbS9kb2N1bWVudC1jb2xsZWN0aW9uLWlkZW1wb3RlbmNlLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvZG9tL2djLTktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3Qv
ZG9tL2djLTkuaHRtbDoKKwogMjAxMS0xMi0xNiAgTWlraGFpbCBOYWdhbm92ICA8bW5hZ2Fub3ZA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFNjcm9sbCBub24tdmlzaWJsZSBlZGl0IGNvbnRyb2xz
IGFuZCBjYXJldCBpbnRvIHRoZSBjZW50ZXIgb2YgdGhlIHZpZXcgd2hlbiBzdGFydGluZyB0eXBp
bmcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9kb2N1bWVudC1jb2xsZWN0aW9u
LWlkZW1wb3RlbmNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2RvY3VtZW50
LWNvbGxlY3Rpb24taWRlbXBvdGVuY2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjExZTJiZTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9kb2N1bWVudC1jb2xsZWN0aW9uLWlkZW1wb3RlbmNlLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDE4IEBACitUaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCB0aGUgSFRNTENvbGxlY3Rpb24g
Z2V0dGVycyBvbiBkb2N1bWVudCAoZXhjbHVkaW5nIC5hbGwpIHJldHVybnMgdGhlIHNhbWUgb2Jq
ZWN0IHdoZW4gY2FsbGVkIHJlcGVhdGVkbHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIGRvY3VtZW50LmFsbCA9PT0gZG9jdW1lbnQuYWxsIGlzIGZhbHNlCitQQVNTIGRv
Y3VtZW50LmltYWdlcyA9PT0gZG9jdW1lbnQuaW1hZ2VzIGlzIHRydWUKK1BBU1MgZG9jdW1lbnQu
ZW1iZWRzID09PSBkb2N1bWVudC5lbWJlZHMgaXMgdHJ1ZQorUEFTUyBkb2N1bWVudC5wbHVnaW5z
ID09PSBkb2N1bWVudC5wbHVnaW5zIGlzIHRydWUKK1BBU1MgZG9jdW1lbnQuYXBwbGV0cyA9PT0g
ZG9jdW1lbnQuYXBwbGV0cyBpcyB0cnVlCitQQVNTIGRvY3VtZW50LmxpbmtzID09PSBkb2N1bWVu
dC5saW5rcyBpcyB0cnVlCitQQVNTIGRvY3VtZW50LmZvcm1zID09PSBkb2N1bWVudC5mb3JtcyBp
cyB0cnVlCitQQVNTIGRvY3VtZW50LmFuY2hvcnMgPT09IGRvY3VtZW50LmFuY2hvcnMgaXMgdHJ1
ZQorUEFTUyBkb2N1bWVudC5zY3JpcHRzID09PSBkb2N1bWVudC5zY3JpcHRzIGlzIHRydWUKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9kb2N1bWVudC1jb2xsZWN0aW9uLWlkZW1wb3RlbmNl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9kb2N1bWVudC1jb2xsZWN0aW9uLWlkZW1wb3Rl
bmNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDU4NzA3ZAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2RvY3VtZW50LWNvbGxlY3Rpb24t
aWRlbXBvdGVuY2UuaHRtbApAQCAtMCwwICsxLDI0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlw
dD4KKworZGVzY3JpcHRpb24oIlRoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IHRoZSBIVE1MQ29sbGVj
dGlvbiBnZXR0ZXJzIG9uIGRvY3VtZW50IChleGNsdWRpbmcgLmFsbCkgcmV0dXJucyB0aGUgc2Ft
ZSBvYmplY3Qgd2hlbiBjYWxsZWQgcmVwZWF0ZWRseS4iKTsKKwordmFyIGNvbGxlY3Rpb25zID0g
WyAiaW1hZ2VzIiwgImVtYmVkcyIsICJwbHVnaW5zIiwgImFwcGxldHMiLCAibGlua3MiLCAiZm9y
bXMiLCAiYW5jaG9ycyIsICJzY3JpcHRzIiBdOworCitzaG91bGRCZSgiZG9jdW1lbnQuYWxsID09
PSBkb2N1bWVudC5hbGwiLCAiZmFsc2UiKTsKKworZm9yIChpID0gMDsgaSA8IGNvbGxlY3Rpb25z
Lmxlbmd0aDsgKytpKSB7CisgICAgdmFyIGNvbGxlY3Rpb24gPSBjb2xsZWN0aW9uc1tpXTsKKyAg
ICBzaG91bGRCZSgiZG9jdW1lbnQuIiArIGNvbGxlY3Rpb24gKyAiID09PSBkb2N1bWVudC4iICsg
Y29sbGVjdGlvbiwgInRydWUiKTsKK30KKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9nYy05LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL2djLTktZXhwZWN0ZWQudHh0CmluZGV4IDQxNGUxNmYuLmNiNWI0MmMg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2djLTktZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL2djLTktZXhwZWN0ZWQudHh0CkBAIC0xNiwxMyArMTYsMTMg
QEAgUEFTUzogZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2NhbnZhcycpWzBdLmdldENv
bnRleHQoJzJkJykuY3JlYXRlUGF0dGVybigKIFBBU1M6IGRvY3VtZW50LmdldEVsZW1lbnRzQnlU
YWdOYW1lKCdzZWxlY3QnKVswXS5vcHRpb25zLm15Q3VzdG9tUHJvcGVydHkgc2hvdWxkIGJlIHVu
ZGVmaW5lZCBhbmQgaXMuCiBQQVNTOiBkb2N1bWVudC5hbGwubXlDdXN0b21Qcm9wZXJ0eSBzaG91
bGQgYmUgdW5kZWZpbmVkIGFuZCBpcy4KIFBBU1M6IGRvY3VtZW50LmJvZHkuY2hpbGROb2Rlcy5t
eUN1c3RvbVByb3BlcnR5IHNob3VsZCBiZSB1bmRlZmluZWQgYW5kIGlzLgotUEFTUzogZG9jdW1l
bnQuaW1hZ2VzLm15Q3VzdG9tUHJvcGVydHkgc2hvdWxkIGJlIHVuZGVmaW5lZCBhbmQgaXMuCi1Q
QVNTOiBkb2N1bWVudC5lbWJlZHMubXlDdXN0b21Qcm9wZXJ0eSBzaG91bGQgYmUgdW5kZWZpbmVk
IGFuZCBpcy4KLVBBU1M6IGRvY3VtZW50LmFwcGxldHMubXlDdXN0b21Qcm9wZXJ0eSBzaG91bGQg
YmUgdW5kZWZpbmVkIGFuZCBpcy4KLVBBU1M6IGRvY3VtZW50LmxpbmtzLm15Q3VzdG9tUHJvcGVy
dHkgc2hvdWxkIGJlIHVuZGVmaW5lZCBhbmQgaXMuCi1QQVNTOiBkb2N1bWVudC5mb3Jtcy5teUN1
c3RvbVByb3BlcnR5IHNob3VsZCBiZSB1bmRlZmluZWQgYW5kIGlzLgotUEFTUzogZG9jdW1lbnQu
YW5jaG9ycy5teUN1c3RvbVByb3BlcnR5IHNob3VsZCBiZSB1bmRlZmluZWQgYW5kIGlzLgotUEFT
UzogZG9jdW1lbnQuc2NyaXB0cy5teUN1c3RvbVByb3BlcnR5IHNob3VsZCBiZSB1bmRlZmluZWQg
YW5kIGlzLgorUEFTUzogZG9jdW1lbnQuaW1hZ2VzLm15Q3VzdG9tUHJvcGVydHkgc2hvdWxkIGJl
IDEgYW5kIGlzLgorUEFTUzogZG9jdW1lbnQuZW1iZWRzLm15Q3VzdG9tUHJvcGVydHkgc2hvdWxk
IGJlIDEgYW5kIGlzLgorUEFTUzogZG9jdW1lbnQuYXBwbGV0cy5teUN1c3RvbVByb3BlcnR5IHNo
b3VsZCBiZSAxIGFuZCBpcy4KK1BBU1M6IGRvY3VtZW50LmxpbmtzLm15Q3VzdG9tUHJvcGVydHkg
c2hvdWxkIGJlIDEgYW5kIGlzLgorUEFTUzogZG9jdW1lbnQuZm9ybXMubXlDdXN0b21Qcm9wZXJ0
eSBzaG91bGQgYmUgMSBhbmQgaXMuCitQQVNTOiBkb2N1bWVudC5hbmNob3JzLm15Q3VzdG9tUHJv
cGVydHkgc2hvdWxkIGJlIDEgYW5kIGlzLgorUEFTUzogZG9jdW1lbnQuc2NyaXB0cy5teUN1c3Rv
bVByb3BlcnR5IHNob3VsZCBiZSAxIGFuZCBpcy4KIFBBU1M6IGRvY3VtZW50LmdldEVsZW1lbnRz
QnlUYWdOYW1lKCdmb3JtJylbMF0uZWxlbWVudHMubXlDdXN0b21Qcm9wZXJ0eSBzaG91bGQgYmUg
dW5kZWZpbmVkIGFuZCBpcy4KIFBBU1M6IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCd0
YWJsZScpWzBdLnJvd3MubXlDdXN0b21Qcm9wZXJ0eSBzaG91bGQgYmUgdW5kZWZpbmVkIGFuZCBp
cy4KIFBBU1M6IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCd0YWJsZScpWzBdLnJvd3Nb
MF0uY2VsbHMubXlDdXN0b21Qcm9wZXJ0eSBzaG91bGQgYmUgdW5kZWZpbmVkIGFuZCBpcy4KQEAg
LTUyLDEzICs1MiwxMyBAQCBQQVNTOiBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnY2Fu
dmFzJylbMF0uZ2V0Q29udGV4dCgnMmQnKS5jcmVhdGVQYXR0ZXJuKAogUEFTUzogZG9jdW1lbnQu
Z2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NlbGVjdCcpWzBdLm9wdGlvbnMubXlDdXN0b21Qcm9wZXJ0
eSBzaG91bGQgYmUgdW5kZWZpbmVkIGFuZCBpcy4KIFBBU1M6IGRvY3VtZW50LmFsbC5teUN1c3Rv
bVByb3BlcnR5IHNob3VsZCBiZSB1bmRlZmluZWQgYW5kIGlzLgogUEFTUzogZG9jdW1lbnQuYm9k
eS5jaGlsZE5vZGVzLm15Q3VzdG9tUHJvcGVydHkgc2hvdWxkIGJlIHVuZGVmaW5lZCBhbmQgaXMu
Ci1QQVNTOiBkb2N1bWVudC5pbWFnZXMubXlDdXN0b21Qcm9wZXJ0eSBzaG91bGQgYmUgdW5kZWZp
bmVkIGFuZCBpcy4KLVBBU1M6IGRvY3VtZW50LmVtYmVkcy5teUN1c3RvbVByb3BlcnR5IHNob3Vs
ZCBiZSB1bmRlZmluZWQgYW5kIGlzLgotUEFTUzogZG9jdW1lbnQuYXBwbGV0cy5teUN1c3RvbVBy
b3BlcnR5IHNob3VsZCBiZSB1bmRlZmluZWQgYW5kIGlzLgotUEFTUzogZG9jdW1lbnQubGlua3Mu
bXlDdXN0b21Qcm9wZXJ0eSBzaG91bGQgYmUgdW5kZWZpbmVkIGFuZCBpcy4KLVBBU1M6IGRvY3Vt
ZW50LmZvcm1zLm15Q3VzdG9tUHJvcGVydHkgc2hvdWxkIGJlIHVuZGVmaW5lZCBhbmQgaXMuCi1Q
QVNTOiBkb2N1bWVudC5hbmNob3JzLm15Q3VzdG9tUHJvcGVydHkgc2hvdWxkIGJlIHVuZGVmaW5l
ZCBhbmQgaXMuCi1QQVNTOiBkb2N1bWVudC5zY3JpcHRzLm15Q3VzdG9tUHJvcGVydHkgc2hvdWxk
IGJlIHVuZGVmaW5lZCBhbmQgaXMuCitQQVNTOiBkb2N1bWVudC5pbWFnZXMubXlDdXN0b21Qcm9w
ZXJ0eSBzaG91bGQgYmUgMSBhbmQgaXMuCitQQVNTOiBkb2N1bWVudC5lbWJlZHMubXlDdXN0b21Q
cm9wZXJ0eSBzaG91bGQgYmUgMSBhbmQgaXMuCitQQVNTOiBkb2N1bWVudC5hcHBsZXRzLm15Q3Vz
dG9tUHJvcGVydHkgc2hvdWxkIGJlIDEgYW5kIGlzLgorUEFTUzogZG9jdW1lbnQubGlua3MubXlD
dXN0b21Qcm9wZXJ0eSBzaG91bGQgYmUgMSBhbmQgaXMuCitQQVNTOiBkb2N1bWVudC5mb3Jtcy5t
eUN1c3RvbVByb3BlcnR5IHNob3VsZCBiZSAxIGFuZCBpcy4KK1BBU1M6IGRvY3VtZW50LmFuY2hv
cnMubXlDdXN0b21Qcm9wZXJ0eSBzaG91bGQgYmUgMSBhbmQgaXMuCitQQVNTOiBkb2N1bWVudC5z
Y3JpcHRzLm15Q3VzdG9tUHJvcGVydHkgc2hvdWxkIGJlIDEgYW5kIGlzLgogUEFTUzogZG9jdW1l
bnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2Zvcm0nKVswXS5lbGVtZW50cy5teUN1c3RvbVByb3Bl
cnR5IHNob3VsZCBiZSB1bmRlZmluZWQgYW5kIGlzLgogUEFTUzogZG9jdW1lbnQuZ2V0RWxlbWVu
dHNCeVRhZ05hbWUoJ3RhYmxlJylbMF0ucm93cy5teUN1c3RvbVByb3BlcnR5IHNob3VsZCBiZSB1
bmRlZmluZWQgYW5kIGlzLgogUEFTUzogZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3Rh
YmxlJylbMF0ucm93c1swXS5jZWxscy5teUN1c3RvbVByb3BlcnR5IHNob3VsZCBiZSB1bmRlZmlu
ZWQgYW5kIGlzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vZ2MtOS5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vZ2MtOS5odG1sCmluZGV4IDNlZGEzYWUuLmM4ZmQ0ZGMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2djLTkuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9nYy05Lmh0bWwKQEAgLTEyNiwxMyArMTI2LDEzIEBAIHZhciBvYmplY3RzVG9U
ZXN0ID0gWwogICAgIFsgImRvY3VtZW50LmFsbCIgXSwKICAgICBbICJkb2N1bWVudC5ib2R5LmNo
aWxkTm9kZXMiIF0sCiAKLSAgICBbICJkb2N1bWVudC5pbWFnZXMiIF0sCi0gICAgWyAiZG9jdW1l
bnQuZW1iZWRzIiBdLAotICAgIFsgImRvY3VtZW50LmFwcGxldHMiIF0sCi0gICAgWyAiZG9jdW1l
bnQubGlua3MiIF0sCi0gICAgWyAiZG9jdW1lbnQuZm9ybXMiIF0sCi0gICAgWyAiZG9jdW1lbnQu
YW5jaG9ycyIgXSwKLSAgICBbICJkb2N1bWVudC5zY3JpcHRzIiBdLAorICAgIFsgImRvY3VtZW50
LmltYWdlcyIsICJhbGxvdyBjdXN0b20iIF0sCisgICAgWyAiZG9jdW1lbnQuZW1iZWRzIiwgImFs
bG93IGN1c3RvbSIgXSwKKyAgICBbICJkb2N1bWVudC5hcHBsZXRzIiwgImFsbG93IGN1c3RvbSIg
XSwKKyAgICBbICJkb2N1bWVudC5saW5rcyIsICJhbGxvdyBjdXN0b20iIF0sCisgICAgWyAiZG9j
dW1lbnQuZm9ybXMiLCAiYWxsb3cgY3VzdG9tIiBdLAorICAgIFsgImRvY3VtZW50LmFuY2hvcnMi
LCAiYWxsb3cgY3VzdG9tIiBdLAorICAgIFsgImRvY3VtZW50LnNjcmlwdHMiLCAiYWxsb3cgY3Vz
dG9tIiBdLAogCiAgICAgWyAiZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2Zvcm0nKVsw
XS5lbGVtZW50cyIgXSwKICAgICBbICJkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgndGFi
bGUnKVswXS5yb3dzIiBdLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGQyYmIyNWYuLjkxNGQ3NWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSw1NCBAQAorMjAxMS0xMi0xNiAgQW5kcmVhcyBLbGluZyAgPGtsaW5nQHdl
YmtpdC5vcmc+CisKKyAgICAgICAgQ2FjaGUgYW5kIHJldXNlIEhUTUxDb2xsZWN0aW9ucyBleHBv
c2VkIGJ5IERvY3VtZW50LgorICAgICAgICA8aHR0cDovL3dlYmtpdC5vcmcvYi83MTk1Nj4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBMZXQgRG9jdW1l
bnQgY2FjaGUgdGhlIHZhcmlvdXMgSFRNTENvbGxlY3Rpb24gb2JqZWN0cyBpdCBleHBvc2VzLgor
ICAgICAgICBUaGlzIGlzIGEgYmVoYXZpb3IgY2hhbmdlIGluIHR3byB3YXlzOgorCisgICAgICAg
IDEpIFRoZSBsaWZldGltZSBvZiByZXR1cm5lZCBjb2xsZWN0aW9ucyBpcyBub3cgdGllZCB0byB0
aGUgbGlmZXRpbWUKKyAgICAgICAgICAgb2YgdGhlIERvY3VtZW50LiBUaGlzIG1hdGNoZXMgdGhl
IGJlaGF2aW9yIG9mIEZpcmVmb3ggYW5kIE9wZXJhLgorCisgICAgICAgIDIpIFRoZSBjYWNoZWQg
Y29sbGVjdGlvbnMgcmV0dXJuZWQgYnkgZG9jdW1lbnQgYXJlIG5vdyBleGFjdGx5IGVxdWFsCisg
ICAgICAgICAgIHRvIHRob3NlIHJldHVybmVkIGJ5IHN1YnNlcXVlbnQgY2FsbHMgdG8gdGhlIHNh
bWUgZ2V0dGVycy4KKworICAgICAgICBUaGlzIHJlZHVjZXMgbWVtb3J5IGNvbnN1bXB0aW9uIGJ5
IH44MDAga0IgKG9uIDY0LWJpdCkgd2hlbiBsb2FkaW5nCisgICAgICAgIHRoZSBmdWxsIEhUTUw1
IHNwZWMuIGRvY3VtZW50LmxpbmtzIHdhcyBjYWxsZWQgMzQwMDEgdGltZXMsIHlpZWxkaW5nCisg
ICAgICAgIDM0MDAxIHNlcGFyYXRlIEhUTUxDb2xsZWN0aW9ucywgYW5kIG5vdyB3ZSBvbmx5IG5l
ZWQgMS4KKworICAgICAgICBUaGUgZG9jdW1lbnQuYWxsIGNvbGxlY3Rpb24gcmV0YWlucyB0aGUg
b2xkIGJlaGF2aW9yLCBhcyBjYWNoaW5nIGl0CisgICAgICAgIHdpbGwgYmUgYSBiaXQgbW9yZSBj
b21wbGljYXRlZC4KKworICAgICAgICBUbyBhdm9pZCBhIHJlZmVyZW5jZSBjeWNsZSBiZXR3ZWVu
IERvY3VtZW50IGFuZCBIVE1MQ29sbGVjdGlvbiwKKyAgICAgICAgY29sbGVjdGlvbnMgdGhhdCBh
cmUgY2FjaGVkIG9uIERvY3VtZW50IGRvIG5vdCByZXRhaW5lZCB0aGVpciBiYXNlCisgICAgICAg
IG5vZGUgcG9pbnRlciAoY29udHJvbGxlZCBieSBhIG1fYmFzZUlzUmV0YWluZWQgZmxhZy4pCisK
KyAgICAgICAgVGVzdHM6IGZhc3QvZG9tL2RvY3VtZW50LWNvbGxlY3Rpb24taWRlbXBvdGVuY2Uu
aHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vZ2MtOS5odG1sCisKKyAgICAgICAgKiBkb20v
RG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmRldGFjaCk6CisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Y2FjaGVkQ29sbGVjdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpEb2N1bWVudDo6aW1hZ2VzKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjphcHBs
ZXRzKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjplbWJlZHMpOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OnBsdWdpbnMpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6Om9i
amVjdHMpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNjcmlwdHMpOgorICAgICAgICAo
V2ViQ29yZTo6RG9jdW1lbnQ6OmxpbmtzKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpm
b3Jtcyk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6YW5jaG9ycyk6CisgICAgICAgICog
ZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MQ29sbGVjdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MQ29sbGVjdGlvbjo6SFRNTENvbGxlY3Rpb24pOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTENvbGxlY3Rpb246OmNyZWF0ZUZvckNhY2hpbmdPbkRvY3VtZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxDb2xsZWN0aW9uOjp+SFRNTENvbGxlY3Rpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTENvbGxlY3Rpb246Oml0ZW1BZnRlcik6CisgICAgICAgICogaHRtbC9I
VE1MQ29sbGVjdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbGxlY3Rpb246OmJhc2Up
OgorCiAyMDExLTEyLTE2ICBNaWtoYWlsIE5hZ2Fub3YgIDxtbmFnYW5vdkBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgU2Nyb2xsIG5vbi12aXNpYmxlIGVkaXQgY29udHJvbHMgYW5kIGNhcmV0IGlu
dG8gdGhlIGNlbnRlciBvZiB0aGUgdmlldyB3aGVuIHN0YXJ0aW5nIHR5cGluZy4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCmluZGV4IGRmNGI1N2EuLjQ2MjdkY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcApAQCAtNDE5MCw1MCArNDE5MCw1OCBAQCBib29sIERvY3VtZW50OjpoYXNTVkdSb290Tm9k
ZSgpIGNvbnN0CiB9CiAjZW5kaWYKIAorY29uc3QgUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiYgRG9j
dW1lbnQ6OmNhY2hlZENvbGxlY3Rpb24oQ29sbGVjdGlvblR5cGUgdHlwZSkKK3sKKyAgICBBU1NF
UlQodHlwZSA8IE51bVVubmFtZWREb2N1bWVudENhY2hlZFR5cGVzKTsKKyAgICBpZiAoIW1fY29s
bGVjdGlvbnNbdHlwZV0pCisgICAgICAgIG1fY29sbGVjdGlvbnNbdHlwZV0gPSBIVE1MQ29sbGVj
dGlvbjo6Y3JlYXRlRm9yQ2FjaGluZ09uRG9jdW1lbnQodGhpcywgdHlwZSk7CisgICAgcmV0dXJu
IG1fY29sbGVjdGlvbnNbdHlwZV07Cit9CisKIFBhc3NSZWZQdHI8SFRNTENvbGxlY3Rpb24+IERv
Y3VtZW50OjppbWFnZXMoKQogewotICAgIHJldHVybiBIVE1MQ29sbGVjdGlvbjo6Y3JlYXRlKHRo
aXMsIERvY0ltYWdlcyk7CisgICAgcmV0dXJuIGNhY2hlZENvbGxlY3Rpb24oRG9jSW1hZ2VzKTsK
IH0KIAogUGFzc1JlZlB0cjxIVE1MQ29sbGVjdGlvbj4gRG9jdW1lbnQ6OmFwcGxldHMoKQogewot
ICAgIHJldHVybiBIVE1MQ29sbGVjdGlvbjo6Y3JlYXRlKHRoaXMsIERvY0FwcGxldHMpOworICAg
IHJldHVybiBjYWNoZWRDb2xsZWN0aW9uKERvY0FwcGxldHMpOwogfQogCiBQYXNzUmVmUHRyPEhU
TUxDb2xsZWN0aW9uPiBEb2N1bWVudDo6ZW1iZWRzKCkKIHsKLSAgICByZXR1cm4gSFRNTENvbGxl
Y3Rpb246OmNyZWF0ZSh0aGlzLCBEb2NFbWJlZHMpOworICAgIHJldHVybiBjYWNoZWRDb2xsZWN0
aW9uKERvY0VtYmVkcyk7CiB9CiAKIFBhc3NSZWZQdHI8SFRNTENvbGxlY3Rpb24+IERvY3VtZW50
OjpwbHVnaW5zKCkKIHsKICAgICAvLyBUaGlzIGlzIGFuIGFsaWFzIGZvciBlbWJlZHMoKSByZXF1
aXJlZCBmb3IgdGhlIEpTIERPTSBiaW5kaW5ncy4KLSAgICByZXR1cm4gSFRNTENvbGxlY3Rpb246
OmNyZWF0ZSh0aGlzLCBEb2NFbWJlZHMpOworICAgIHJldHVybiBjYWNoZWRDb2xsZWN0aW9uKERv
Y0VtYmVkcyk7CiB9CiAKIFBhc3NSZWZQdHI8SFRNTENvbGxlY3Rpb24+IERvY3VtZW50OjpvYmpl
Y3RzKCkKIHsKLSAgICByZXR1cm4gSFRNTENvbGxlY3Rpb246OmNyZWF0ZSh0aGlzLCBEb2NPYmpl
Y3RzKTsKKyAgICByZXR1cm4gY2FjaGVkQ29sbGVjdGlvbihEb2NPYmplY3RzKTsKIH0KIAogUGFz
c1JlZlB0cjxIVE1MQ29sbGVjdGlvbj4gRG9jdW1lbnQ6OnNjcmlwdHMoKQogewotICAgIHJldHVy
biBIVE1MQ29sbGVjdGlvbjo6Y3JlYXRlKHRoaXMsIERvY1NjcmlwdHMpOworICAgIHJldHVybiBj
YWNoZWRDb2xsZWN0aW9uKERvY1NjcmlwdHMpOwogfQogCiBQYXNzUmVmUHRyPEhUTUxDb2xsZWN0
aW9uPiBEb2N1bWVudDo6bGlua3MoKQogewotICAgIHJldHVybiBIVE1MQ29sbGVjdGlvbjo6Y3Jl
YXRlKHRoaXMsIERvY0xpbmtzKTsKKyAgICByZXR1cm4gY2FjaGVkQ29sbGVjdGlvbihEb2NMaW5r
cyk7CiB9CiAKIFBhc3NSZWZQdHI8SFRNTENvbGxlY3Rpb24+IERvY3VtZW50Ojpmb3JtcygpCiB7
Ci0gICAgcmV0dXJuIEhUTUxDb2xsZWN0aW9uOjpjcmVhdGUodGhpcywgRG9jRm9ybXMpOworICAg
IHJldHVybiBjYWNoZWRDb2xsZWN0aW9uKERvY0Zvcm1zKTsKIH0KIAogUGFzc1JlZlB0cjxIVE1M
Q29sbGVjdGlvbj4gRG9jdW1lbnQ6OmFuY2hvcnMoKQogewotICAgIHJldHVybiBIVE1MQ29sbGVj
dGlvbjo6Y3JlYXRlKHRoaXMsIERvY0FuY2hvcnMpOworICAgIHJldHVybiBjYWNoZWRDb2xsZWN0
aW9uKERvY0FuY2hvcnMpOwogfQogCiBQYXNzUmVmUHRyPEhUTUxBbGxDb2xsZWN0aW9uPiBEb2N1
bWVudDo6YWxsKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggZDI5MjI1Yi4uZjYxN2Y1OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmgKQEAgLTExODUsNiArMTE4NSw4IEBAIHByaXZhdGU6CiAgICAgUGFn
ZVZpc2liaWxpdHlTdGF0ZSB2aXNpYmlsaXR5U3RhdGUoKSBjb25zdDsKICNlbmRpZgogCisgICAg
Y29uc3QgUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiYgY2FjaGVkQ29sbGVjdGlvbihDb2xsZWN0aW9u
VHlwZSk7CisKICAgICBpbnQgbV9ndWFyZFJlZkNvdW50OwogCiAgICAgT3duUHRyPENTU1N0eWxl
U2VsZWN0b3I+IG1fc3R5bGVTZWxlY3RvcjsKQEAgLTEzNjUsNiArMTM2Nyw4IEBAIHByaXZhdGU6
CiAgICAgCiAgICAgQ2hlY2tlZFJhZGlvQnV0dG9ucyBtX2NoZWNrZWRSYWRpb0J1dHRvbnM7CiAK
KyAgICBSZWZQdHI8SFRNTENvbGxlY3Rpb24+IG1fY29sbGVjdGlvbnNbTnVtVW5uYW1lZERvY3Vt
ZW50Q2FjaGVkVHlwZXNdOworCiAgICAgdHlwZWRlZiBIYXNoTWFwPEF0b21pY1N0cmluZ0ltcGwq
LCBDb2xsZWN0aW9uQ2FjaGUqPiBOYW1lZENvbGxlY3Rpb25NYXA7CiAgICAgRml4ZWRBcnJheTxD
b2xsZWN0aW9uQ2FjaGUsIE51bVVubmFtZWREb2N1bWVudENhY2hlZFR5cGVzPiBtX2NvbGxlY3Rp
b25JbmZvOwogICAgIEZpeGVkQXJyYXk8TmFtZWRDb2xsZWN0aW9uTWFwLCBOdW1OYW1lZERvY3Vt
ZW50Q2FjaGVkVHlwZXM+IG1fbmFtZUNvbGxlY3Rpb25JbmZvOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQ29sbGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxDb2xsZWN0aW9uLmNwcAppbmRleCAzZjJkMGUxLi45ZTMxODYzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxDb2xsZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxDb2xsZWN0aW9uLmNwcApAQCAtMzYsMjAgKzM2LDI4IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotSFRNTENvbGxlY3Rpb246OkhU
TUxDb2xsZWN0aW9uKFBhc3NSZWZQdHI8Tm9kZT4gYmFzZSwgQ29sbGVjdGlvblR5cGUgdHlwZSkK
LSAgICA6IG1fb3duc0luZm8oZmFsc2UpCitIVE1MQ29sbGVjdGlvbjo6SFRNTENvbGxlY3Rpb24o
RG9jdW1lbnQqIGRvY3VtZW50LCBDb2xsZWN0aW9uVHlwZSB0eXBlKQorICAgIDogbV9iYXNlSXNS
ZXRhaW5lZChmYWxzZSkKKyAgICAsIG1fb3duc0luZm8oZmFsc2UpCiAgICAgLCBtX3R5cGUodHlw
ZSkKLSAgICAsIG1fYmFzZShiYXNlKQotICAgICwgbV9pbmZvKG1fYmFzZS0+aXNEb2N1bWVudE5v
ZGUoKSA/IHN0YXRpY19jYXN0PERvY3VtZW50Kj4obV9iYXNlLmdldCgpKS0+Y29sbGVjdGlvbklu
Zm8odHlwZSkgOiAwKQorICAgICwgbV9iYXNlKGRvY3VtZW50KQorICAgICwgbV9pbmZvKGRvY3Vt
ZW50LT5jb2xsZWN0aW9uSW5mbyh0eXBlKSkKIHsKIH0KIAogSFRNTENvbGxlY3Rpb246OkhUTUxD
b2xsZWN0aW9uKFBhc3NSZWZQdHI8Tm9kZT4gYmFzZSwgQ29sbGVjdGlvblR5cGUgdHlwZSwgQ29s
bGVjdGlvbkNhY2hlKiBpbmZvKQotICAgIDogbV9vd25zSW5mbyhmYWxzZSkKKyAgICA6IG1fYmFz
ZUlzUmV0YWluZWQodHJ1ZSkKKyAgICAsIG1fb3duc0luZm8oZmFsc2UpCiAgICAgLCBtX3R5cGUo
dHlwZSkKLSAgICAsIG1fYmFzZShiYXNlKQorICAgICwgbV9iYXNlKGJhc2UuZ2V0KCkpCiAgICAg
LCBtX2luZm8oaW5mbykKIHsKKyAgICBtX2Jhc2UtPnJlZigpOworfQorCitQYXNzUmVmUHRyPEhU
TUxDb2xsZWN0aW9uPiBIVE1MQ29sbGVjdGlvbjo6Y3JlYXRlRm9yQ2FjaGluZ09uRG9jdW1lbnQo
RG9jdW1lbnQqIGRvY3VtZW50LCBDb2xsZWN0aW9uVHlwZSB0eXBlKQoreworICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgSFRNTENvbGxlY3Rpb24oZG9jdW1lbnQsIHR5cGUpKTsKIH0KIAogUGFzc1Jl
ZlB0cjxIVE1MQ29sbGVjdGlvbj4gSFRNTENvbGxlY3Rpb246OmNyZWF0ZShQYXNzUmVmUHRyPE5v
ZGU+IGJhc2UsIENvbGxlY3Rpb25UeXBlIHR5cGUpCkBAIC02MSw2ICs2OSw4IEBAIEhUTUxDb2xs
ZWN0aW9uOjp+SFRNTENvbGxlY3Rpb24oKQogewogICAgIGlmIChtX293bnNJbmZvKQogICAgICAg
ICBkZWxldGUgbV9pbmZvOworICAgIGlmIChtX2Jhc2VJc1JldGFpbmVkKQorICAgICAgICBtX2Jh
c2UtPmRlcmVmKCk7CiB9CiAKIHZvaWQgSFRNTENvbGxlY3Rpb246OnJlc2V0Q29sbGVjdGlvbklu
Zm8oKSBjb25zdApAQCAtMTIxLDkgKzEzMSw5IEBAIEVsZW1lbnQqIEhUTUxDb2xsZWN0aW9uOjpp
dGVtQWZ0ZXIoRWxlbWVudCogcHJldmlvdXMpIGNvbnN0CiAgICAgaWYgKCFwcmV2aW91cykKICAg
ICAgICAgY3VycmVudCA9IG1fYmFzZS0+Zmlyc3RDaGlsZCgpOwogICAgIGVsc2UKLSAgICAgICAg
Y3VycmVudCA9IG5leHROb2RlT3JTaWJsaW5nKG1fYmFzZS5nZXQoKSwgcHJldmlvdXMsIGRlZXAp
OworICAgICAgICBjdXJyZW50ID0gbmV4dE5vZGVPclNpYmxpbmcobV9iYXNlLCBwcmV2aW91cywg
ZGVlcCk7CiAKLSAgICBmb3IgKDsgY3VycmVudDsgY3VycmVudCA9IG5leHROb2RlT3JTaWJsaW5n
KG1fYmFzZS5nZXQoKSwgY3VycmVudCwgZGVlcCkpIHsKKyAgICBmb3IgKDsgY3VycmVudDsgY3Vy
cmVudCA9IG5leHROb2RlT3JTaWJsaW5nKG1fYmFzZSwgY3VycmVudCwgZGVlcCkpIHsKICAgICAg
ICAgaWYgKCFjdXJyZW50LT5pc0VsZW1lbnROb2RlKCkpCiAgICAgICAgICAgICBjb250aW51ZTsK
ICAgICAgICAgRWxlbWVudCogZSA9IHN0YXRpY19jYXN0PEVsZW1lbnQqPihjdXJyZW50KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rpb24uaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rpb24uaAppbmRleCA4NTIyZjViLi5mOWRiNjM0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDb2xsZWN0aW9uLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQ29sbGVjdGlvbi5oCkBAIC0zMSw2ICszMSw3IEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBFbGVtZW50OwogY2xhc3Mg
Tm9kZTsKIGNsYXNzIE5vZGVMaXN0OwpAQCAtNDAsNiArNDEsNyBAQCBzdHJ1Y3QgQ29sbGVjdGlv
bkNhY2hlOwogY2xhc3MgSFRNTENvbGxlY3Rpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxIVE1MQ29s
bGVjdGlvbj4gewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxDb2xsZWN0aW9u
PiBjcmVhdGUoUGFzc1JlZlB0cjxOb2RlPiBiYXNlLCBDb2xsZWN0aW9uVHlwZSk7CisgICAgc3Rh
dGljIFBhc3NSZWZQdHI8SFRNTENvbGxlY3Rpb24+IGNyZWF0ZUZvckNhY2hpbmdPbkRvY3VtZW50
KERvY3VtZW50KiwgQ29sbGVjdGlvblR5cGUpOwogICAgIHZpcnR1YWwgfkhUTUxDb2xsZWN0aW9u
KCk7CiAgICAgCiAgICAgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3Q7CkBAIC01NSwxMiArNTcsMTIg
QEAgcHVibGljOgogCiAgICAgUGFzc1JlZlB0cjxOb2RlTGlzdD4gdGFncyhjb25zdCBTdHJpbmcm
KTsKIAotICAgIE5vZGUqIGJhc2UoKSBjb25zdCB7IHJldHVybiBtX2Jhc2UuZ2V0KCk7IH0KKyAg
ICBOb2RlKiBiYXNlKCkgY29uc3QgeyByZXR1cm4gbV9iYXNlOyB9CiAgICAgQ29sbGVjdGlvblR5
cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PENvbGxlY3Rpb25UeXBlPihtX3R5
cGUpOyB9CiAKIHByb3RlY3RlZDoKLSAgICBIVE1MQ29sbGVjdGlvbihQYXNzUmVmUHRyPE5vZGU+
IGJhc2UsIENvbGxlY3Rpb25UeXBlLCBDb2xsZWN0aW9uQ2FjaGUqKTsKLSAgICBIVE1MQ29sbGVj
dGlvbihQYXNzUmVmUHRyPE5vZGU+IGJhc2UsIENvbGxlY3Rpb25UeXBlKTsKKyAgICBIVE1MQ29s
bGVjdGlvbihQYXNzUmVmUHRyPE5vZGU+IGJhc2UsIENvbGxlY3Rpb25UeXBlLCBDb2xsZWN0aW9u
Q2FjaGUqID0gMCk7CisgICAgSFRNTENvbGxlY3Rpb24oRG9jdW1lbnQqLCBDb2xsZWN0aW9uVHlw
ZSk7CiAKICAgICBDb2xsZWN0aW9uQ2FjaGUqIGluZm8oKSBjb25zdCB7IHJldHVybiBtX2luZm87
IH0KICAgICB2b2lkIHJlc2V0Q29sbGVjdGlvbkluZm8oKSBjb25zdDsKQEAgLTcyLDEwICs3NCwx
MSBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdW5zaWduZWQgY2FsY0xlbmd0aCgpIGNvbnN0Owog
ICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVOYW1lQ2FjaGUoKSBjb25zdDsKIAorICAgIGJvb2wgbV9i
YXNlSXNSZXRhaW5lZCA6IDE7CiAgICAgbXV0YWJsZSBib29sIG1fb3duc0luZm8gOiAxOwogICAg
IHVuc2lnbmVkIG1fdHlwZSA6IDU7IC8vIENvbGxlY3Rpb25UeXBlCiAKLSAgICBSZWZQdHI8Tm9k
ZT4gbV9iYXNlOworICAgIE5vZGUqIG1fYmFzZTsKIAogICAgIG11dGFibGUgQ29sbGVjdGlvbkNh
Y2hlKiBtX2luZm87CiB9Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>