<?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>73865</bug_id>
          
          <creation_ts>2011-12-05 14:13:41 -0800</creation_ts>
          <short_desc>V8 Wrappers for TextTrack and TextTrackCue should not be collected on event dispatch and when parent/owner are still reachable</short_desc>
          <delta_ts>2013-05-02 12:11:12 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Major</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>78052</dependson>
    
    <dependson>78149</dependson>
    
    <dependson>88541</dependson>
          <blocked>43668</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Erik Arvidsson">arv</assigned_to>
          <cc>abarth</cc>
    
    <cc>acolwell</cc>
    
    <cc>annacc</cc>
    
    <cc>antonm</cc>
    
    <cc>ap</cc>
    
    <cc>arv</cc>
    
    <cc>dino</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>gustavo</cc>
    
    <cc>japhet</cc>
    
    <cc>jknotten</cc>
    
    <cc>loislo</cc>
    
    <cc>ojan</cc>
    
    <cc>philn</cc>
    
    <cc>rakuco</cc>
    
    <cc>rniwa</cc>
    
    <cc>silviapf</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>vitalyr</cc>
    
    <cc>vrk</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>515384</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2011-12-05 14:13:41 -0800</bug_when>
    <thetext>Every non-DOM object that is an EventTarget needs code to make sure that the wrapper isn&apos;t collected during event dispatch or while the parent/owner object is reachable. For example, see tracklist-is-reachable.html test added in https://bugs.webkit.org/show_bug.cgi?id=71123.


Split off from https://bugs.webkit.org/show_bug.cgi?id=72179 for the V8 changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>532125</commentid>
    <comment_count>1</comment_count>
    <who name="John Knottenbelt">jknotten</who>
    <bug_when>2012-01-09 05:54:01 -0800</bug_when>
    <thetext>Until we implement the corresponding V8 changes, we can expect media/track/text-track-is-reachable.html to fail or crash: 

http://test-results.appspot.com/dashboards/flakiness_dashboard.html#showExpectations=true&amp;tests=media%2Ftrack%2Ftext-track-is-reachable.html

Will adjust test expectations accordingly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>532132</commentid>
    <comment_count>2</comment_count>
    <who name="John Knottenbelt">jknotten</who>
    <bug_when>2012-01-09 06:01:45 -0800</bug_when>
    <thetext>I think the full list of affected tests are:

media/track/tracklist-is-reachable.html
media/track/text-track-cue-is-reachable.html
media/track/text-track-is-reachable.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>541737</commentid>
    <comment_count>3</comment_count>
      <attachid>123818</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2012-01-24 14:56:10 -0800</bug_when>
    <thetext>Created attachment 123818
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>541741</commentid>
    <comment_count>4</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2012-01-24 15:02:35 -0800</bug_when>
    <thetext>Vitaly, this adds back something similar to what you removed in bug 64467. In this case we add new hidden references to the items of TextTrackList and TextTrackCueList to an HTMLMediaElement. These will be kept alive as long as the media element is alive.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>541802</commentid>
    <comment_count>5</comment_count>
    <who name="Vitaly Repeshko">vitalyr</who>
    <bug_when>2012-01-24 16:06:28 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; Vitaly, this adds back something similar to what you removed in bug 64467. In this case we add new hidden references to the items of TextTrackList and TextTrackCueList to an HTMLMediaElement. These will be kept alive as long as the media element is alive.

There&apos;s a better mechanism for unbounded lists like that. Please search for V8::AddImplicitReferences in V8GCController.cpp. I&apos;m worried that with the current patch it&apos;s possible to retain an unbounded number of objects by repeatedly adding and removing new elements to the lists. In general, having addNamedHiddenReference() without a corresponding delete is dangerous.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550176</commentid>
    <comment_count>6</comment_count>
      <attachid>125683</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2012-02-06 12:04:51 -0800</bug_when>
    <thetext>Created attachment 125683
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550245</commentid>
    <comment_count>7</comment_count>
      <attachid>125683</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2012-02-06 13:29:42 -0800</bug_when>
    <thetext>Comment on attachment 125683
Patch

I&apos;ll resolve the merge conflicts and upload a new patch for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>551128</commentid>
    <comment_count>8</comment_count>
      <attachid>125878</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2012-02-07 10:49:55 -0800</bug_when>
    <thetext>Created attachment 125878
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>552073</commentid>
    <comment_count>9</comment_count>
      <attachid>125878</attachid>
    <who name="anton muhin">antonm</who>
    <bug_when>2012-02-08 06:19:10 -0800</bug_when>
    <thetext>Comment on attachment 125878
Patch

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

&gt; Source/WebCore/bindings/v8/V8GCController.cpp:413
&gt; +    void visitDOMWrapper(DOMDataStore* store, TextTrack* textTrack, v8::Persistent&lt;v8::Object&gt; wrapper)

do we need another overload?  Maybe visitTextTrackDOMWrapper?

&gt; Source/WebCore/bindings/v8/V8GCController.cpp:416
&gt; +        if (!mediaElement)

may we have detached TextTrack object?  I mean one which has no mediaElement, but referenced directly from JS?  If yes, don&apos;t we want to retain its cues and in this case?

&gt; Source/WebCore/bindings/v8/V8GCController.cpp:433
&gt; +        appendToGrouperList(mediaElement, wrapper);

is TextTrack&apos;s media element reachable from text track itself in JavaScript?  if not, you should use implicit references instead.

&gt; Source/WebCore/bindings/v8/custom/V8TextTrackListCustom.cpp:42
&gt; +{

why not use implicit references for this?

&gt; Source/WebCore/bindings/v8/custom/V8TextTrackListCustom.cpp:49
&gt; +    if (!wrapper.IsEmpty() &amp;&amp; element) {

you will update hidden property on every toV8 invocation which is not necessary---you only need to update it when you first create a wrapper.

&gt; Source/WebCore/bindings/v8/custom/V8TextTrackListCustom.cpp:52
&gt; +            V8DOMWrapper::setNamedHiddenReference(elementValue.As&lt;v8::Object&gt;(), &quot;textTracks&quot;, wrapper);

may TextTrackList change the owner?  if yes, you&apos;ve got a problem.  and I really think you should use implicit references.

&gt; Source/WebCore/html/TextTrackCue.idl:37
&gt; +        V8DependentLifetime

shouldn&apos;t both TextTrack and TextTrackList interfaces in IDLs be marked with V9DependentLifetime as well?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>552257</commentid>
    <comment_count>10</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2012-02-08 10:26:23 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; 
&gt; &gt; Source/WebCore/bindings/v8/V8GCController.cpp:416
&gt; &gt; +        if (!mediaElement)
&gt; 
&gt; may we have detached TextTrack object?  I mean one which has no mediaElement, but referenced directly from JS?  If yes, don&apos;t we want to retain its cues and in this case?
&gt; 
  A reference to a TextTrack can outlive the parent media element.


&gt; &gt; Source/WebCore/bindings/v8/V8GCController.cpp:433
&gt; &gt; +        appendToGrouperList(mediaElement, wrapper);
&gt; 
&gt; is TextTrack&apos;s media element reachable from text track itself in JavaScript?  if not, you should use implicit references instead.
&gt; 
  Not from JavaScript.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>552259</commentid>
    <comment_count>11</comment_count>
    <who name="anton muhin">antonm</who>
    <bug_when>2012-02-08 10:27:52 -0800</bug_when>
    <thetext>Thanks a lot, Eric!

(In reply to comment #10)
&gt; (In reply to comment #9)
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/bindings/v8/V8GCController.cpp:416
&gt; &gt; &gt; +        if (!mediaElement)
&gt; &gt; 
&gt; &gt; may we have detached TextTrack object?  I mean one which has no mediaElement, but referenced directly from JS?  If yes, don&apos;t we want to retain its cues and in this case?
&gt; &gt; 
&gt;   A reference to a TextTrack can outlive the parent media element.
&gt; 
&gt; 
&gt; &gt; &gt; Source/WebCore/bindings/v8/V8GCController.cpp:433
&gt; &gt; &gt; +        appendToGrouperList(mediaElement, wrapper);
&gt; &gt; 
&gt; &gt; is TextTrack&apos;s media element reachable from text track itself in JavaScript?  if not, you should use implicit references instead.
&gt; &gt; 
&gt;   Not from JavaScript.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>552295</commentid>
    <comment_count>12</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2012-02-08 10:58:06 -0800</bug_when>
    <thetext>I think I need to back to the drawing board again. I realize how little I understand here and need more time to understand how this all works.

(In reply to comment #9)
&gt; (From update of attachment 125878 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=125878&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/bindings/v8/V8GCController.cpp:413
&gt; &gt; +    void visitDOMWrapper(DOMDataStore* store, TextTrack* textTrack, v8::Persistent&lt;v8::Object&gt; wrapper)
&gt; 
&gt; do we need another overload?  Maybe visitTextTrackDOMWrapper?

I&apos;ll rename if I end up keeping this

&gt; &gt; Source/WebCore/bindings/v8/V8GCController.cpp:416
&gt; &gt; +        if (!mediaElement)
&gt; 
&gt; may we have detached TextTrack object?  I mean one which has no mediaElement, but referenced directly from JS?  If yes, don&apos;t we want to retain its cues and in this case?

No. All TextTracks are associated with a media element. The TextTrackCue objects on the other hand may not be associated with any TextTrackCueList since it can be constructed directly:

new TextTrackCue(...)

&gt; 
&gt; &gt; Source/WebCore/bindings/v8/V8GCController.cpp:433
&gt; &gt; +        appendToGrouperList(mediaElement, wrapper);
&gt; 
&gt; is TextTrack&apos;s media element reachable from text track itself in JavaScript?  if not, you should use implicit references instead.

No. 

The TextTrackCue has a reference to the track if it is associated with one


&gt; &gt; Source/WebCore/bindings/v8/custom/V8TextTrackListCustom.cpp:42
&gt; &gt; +{
&gt; 
&gt; why not use implicit references for this?

This whole file is gone now due to http://trac.webkit.org/changeset/107035

&gt; &gt; Source/WebCore/html/TextTrackCue.idl:37
&gt; &gt; +        V8DependentLifetime
&gt; 
&gt; shouldn&apos;t both TextTrack and TextTrackList interfaces in IDLs be marked with V9DependentLifetime as well?

TextTrackList is kept alive by a hidden named reference from the HTMLMediaElement
TextTrackCueList is kept alive by a hidden named reference from TextTrack</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>552384</commentid>
    <comment_count>13</comment_count>
      <attachid>126133</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2012-02-08 12:19:02 -0800</bug_when>
    <thetext>Created attachment 126133
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>552389</commentid>
    <comment_count>14</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2012-02-08 12:24:37 -0800</bug_when>
    <thetext>This still seems wrong to me. If we need to do this for TextTrackList and TextTrackCueList we should probably do this for all other list types that are not list of nodes. If this is the case we should just make the code gen do this for us.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>552391</commentid>
    <comment_count>15</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2012-02-08 12:25:51 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; 
&gt; &gt; &gt; Source/WebCore/bindings/v8/V8GCController.cpp:416
&gt; &gt; &gt; +        if (!mediaElement)
&gt; &gt; 
&gt; &gt; may we have detached TextTrack object?  I mean one which has no mediaElement, but referenced directly from JS?  If yes, don&apos;t we want to retain its cues and in this case?
&gt; 
&gt; No. All TextTracks are associated with a media element. 

A TextTrack is *initially* associated with a media element, but the media element can be deleted and have its JS object collected while a JS reference to the TextTrack still exists.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>552464</commentid>
    <comment_count>16</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2012-02-08 13:51:20 -0800</bug_when>
    <thetext>I added a more generic bug that covers all lists. I believe we should fix this with the code generator instead of adding custom code for all of these.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553023</commentid>
    <comment_count>17</comment_count>
    <who name="anton muhin">antonm</who>
    <bug_when>2012-02-09 03:33:02 -0800</bug_when>
    <thetext>Erik, sorry, I got somewhat confused, do you want this patch to be reviewed?

(In reply to comment #13)
&gt; Created an attachment (id=126133) [details]
&gt; Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>553251</commentid>
    <comment_count>18</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2012-02-09 10:04:08 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; Erik, sorry, I got somewhat confused, do you want this patch to be reviewed?

Yes please.

I would like someone to look at it to see if the solution is correct. If it is I would like the code generator to generate this code for all list like wrappers. See bug 78149</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554040</commentid>
    <comment_count>19</comment_count>
      <attachid>126133</attachid>
    <who name="anton muhin">antonm</who>
    <bug_when>2012-02-10 05:53:47 -0800</bug_when>
    <thetext>Comment on attachment 126133
Patch

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

Neat, LGTM.

&gt; Source/WebCore/bindings/v8/V8GCController.cpp:38
&gt; +#include &quot;Element.h&quot;

do you need this include?

&gt; Source/WebCore/bindings/v8/V8GCController.cpp:40
&gt; +#include &quot;HTMLMediaElement.h&quot;

do you need this include?

&gt; Source/WebCore/bindings/v8/V8GCController.cpp:46
&gt; +#include &quot;TextTrack.h&quot;

won&apos;t V8&lt;WebCoreClass&gt; include WebCoreClass.h?

&gt; Source/WebCore/bindings/v8/V8GCController.cpp:350
&gt; +        WrapperTypeInfo* type = V8DOMWrapper::domWrapperType(wrapper);

as an option: we may place a flag into WrapperTypeInfo which says if it&apos;s a list like type, that would make this method nice and simple.

&gt; Source/WebCore/bindings/v8/V8GCController.cpp:405
&gt; +        Vector&lt;v8::Persistent&lt;v8::Value&gt; &gt; wrappers;

nit: do we place a space after &lt; to match the corresponding closing &gt; sequence?

&gt; Source/WebCore/bindings/v8/V8GCController.cpp:406
&gt; +        for (unsigned i = 0; i &lt; list-&gt;length(); ++i) {

nit: I believe in WebCore people rarely use ++i form despite common C wisdom, I might be easily wrong.

&gt; Source/WebCore/bindings/v8/V8GCController.cpp:408
&gt; +            v8::Handle&lt;v8::Object&gt; wrapper = getDOMObjectMap().get(item);

you may want to prefetch DOMObjectMap.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554139</commentid>
    <comment_count>20</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2012-02-10 10:10:32 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; do you need this include?
&gt; do you need this include?

Probably not.

&gt; won&apos;t V8&lt;WebCoreClass&gt; include WebCoreClass.h?

I thought it was encouraged to include your direct dependencies?

&gt; &gt; Source/WebCore/bindings/v8/V8GCController.cpp:350
&gt; &gt; +        WrapperTypeInfo* type = V8DOMWrapper::domWrapperType(wrapper);
&gt; 
&gt; as an option: we may place a flag into WrapperTypeInfo which says if it&apos;s a list like type, that would make this method nice and simple.

I want this code to be generated by the code generator. I haven&apos;t yet figured out the cleanest way to do this. Maybe adding a flag to the WrapperTypeInfo is the right way to go there.

&gt; &gt; Source/WebCore/bindings/v8/V8GCController.cpp:405
&gt; &gt; +        Vector&lt;v8::Persistent&lt;v8::Value&gt; &gt; wrappers;
&gt; 
&gt; nit: do we place a space after &lt; to match the corresponding closing &gt; sequence?
&gt; 
&gt; &gt; Source/WebCore/bindings/v8/V8GCController.cpp:406
&gt; &gt; +        for (unsigned i = 0; i &lt; list-&gt;length(); ++i) {
&gt; 
&gt; nit: I believe in WebCore people rarely use ++i form despite common C wisdom, I might be easily wrong.
&gt; 
&gt; &gt; Source/WebCore/bindings/v8/V8GCController.cpp:408
&gt; &gt; +            v8::Handle&lt;v8::Object&gt; wrapper = getDOMObjectMap().get(item);
&gt; 
&gt; you may want to prefetch DOMObjectMap.

ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555201</commentid>
    <comment_count>21</comment_count>
    <who name="anton muhin">antonm</who>
    <bug_when>2012-02-13 05:29:30 -0800</bug_when>
    <thetext>(In reply to comment #20)
&gt; (In reply to comment #19)
&gt; &gt; do you need this include?
&gt; &gt; do you need this include?
&gt; 
&gt; Probably not.
&gt; 
&gt; &gt; won&apos;t V8&lt;WebCoreClass&gt; include WebCoreClass.h?
&gt; 
&gt; I thought it was encouraged to include your direct dependencies?

I don&apos;t know for sure.  I thought we tried to minimize includes to reduce build time, etc., but if you heard otherwise, it&apos;s ok too.

&gt; 
&gt; &gt; &gt; Source/WebCore/bindings/v8/V8GCController.cpp:350
&gt; &gt; &gt; +        WrapperTypeInfo* type = V8DOMWrapper::domWrapperType(wrapper);
&gt; &gt; 
&gt; &gt; as an option: we may place a flag into WrapperTypeInfo which says if it&apos;s a list like type, that would make this method nice and simple.
&gt; 
&gt; I want this code to be generated by the code generator. I haven&apos;t yet figured out the cleanest way to do this. Maybe adding a flag to the WrapperTypeInfo is the right way to go there.
&gt; 
&gt; &gt; &gt; Source/WebCore/bindings/v8/V8GCController.cpp:405
&gt; &gt; &gt; +        Vector&lt;v8::Persistent&lt;v8::Value&gt; &gt; wrappers;
&gt; &gt; 
&gt; &gt; nit: do we place a space after &lt; to match the corresponding closing &gt; sequence?
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/bindings/v8/V8GCController.cpp:406
&gt; &gt; &gt; +        for (unsigned i = 0; i &lt; list-&gt;length(); ++i) {
&gt; &gt; 
&gt; &gt; nit: I believe in WebCore people rarely use ++i form despite common C wisdom, I might be easily wrong.
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/bindings/v8/V8GCController.cpp:408
&gt; &gt; &gt; +            v8::Handle&lt;v8::Object&gt; wrapper = getDOMObjectMap().get(item);
&gt; &gt; 
&gt; &gt; you may want to prefetch DOMObjectMap.
&gt; 
&gt; ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>605681</commentid>
    <comment_count>22</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2012-04-19 10:44:42 -0700</bug_when>
    <thetext>Are you hoping that this will be reviewed? If not, please clear the r? flag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749948</commentid>
    <comment_count>23</comment_count>
      <attachid>170454</attachid>
    <who name="Aaron Colwell">acolwell</who>
    <bug_when>2012-10-24 12:58:09 -0700</bug_when>
    <thetext>Created attachment 170454
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749954</commentid>
    <comment_count>24</comment_count>
    <who name="Aaron Colwell">acolwell</who>
    <bug_when>2012-10-24 13:05:27 -0700</bug_when>
    <thetext>I&apos;ve just uploaded my attempt to fix this bug for V8. I fully admit don&apos;t really understand the tradeoff between using V8CustomIsReachable and ActiveDOMObject for TextTrackCue. My solution looks simpler than the custom bindings in WebCore/bindings/js/JSTextTrackCueCustom.cpp but it is possible I am missing something critical. Advice is definitely welcome.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749960</commentid>
    <comment_count>25</comment_count>
      <attachid>170454</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-24 13:10:09 -0700</bug_when>
    <thetext>Comment on attachment 170454
Patch

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

&gt; Source/WebCore/html/track/TextTrackCue.cpp:235
&gt; +    suspendIfNeeded();

We usually call this function in create().  Take a look at how the other subclasses of ActiveDOMObject handle this issue.

&gt; Source/WebCore/html/track/TextTrackCue.cpp:1063
&gt; +    return m_track;

Are we sure that m_track will become false at some point?  Otherwise we&apos;ll leak.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750025</commentid>
    <comment_count>26</comment_count>
      <attachid>170454</attachid>
    <who name="Aaron Colwell">acolwell</who>
    <bug_when>2012-10-24 14:07:46 -0700</bug_when>
    <thetext>Comment on attachment 170454
Patch

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

&gt;&gt; Source/WebCore/html/track/TextTrackCue.cpp:235
&gt;&gt; +    suspendIfNeeded();
&gt; 
&gt; We usually call this function in create().  Take a look at how the other subclasses of ActiveDOMObject handle this issue.

Whoops. I didn&apos;t see the create() function in the .h file. Done.

&gt;&gt; Source/WebCore/html/track/TextTrackCue.cpp:1063
&gt;&gt; +    return m_track;
&gt; 
&gt; Are we sure that m_track will become false at some point?  Otherwise we&apos;ll leak.

TextTrack::removeCue() calls setTrack(0) on the cue, but it looks like that is the only scenario where this happens. I believe this may mean there are already leaks since there appears to be the following circular reference :

TextTrack -&gt; TextTrackCueList
    ^               |
    |               V
    +----------TextTrackCue

I&apos;ll dig deeper into this and file a separate bug &amp; patch if I find something.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752292</commentid>
    <comment_count>27</comment_count>
      <attachid>170985</attachid>
    <who name="Aaron Colwell">acolwell</who>
    <bug_when>2012-10-26 12:45:13 -0700</bug_when>
    <thetext>Created attachment 170985
Moved suspendIfNeeded() into TextTrackCue::create().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752295</commentid>
    <comment_count>28</comment_count>
    <who name="Aaron Colwell">acolwell</who>
    <bug_when>2012-10-26 12:48:04 -0700</bug_when>
    <thetext>Just posted a new patch that moves the suspendIfNeeded() call to the create() method.

I just fixed the TextTrack &amp; TextTrackCue circular reference (https://bugs.webkit.org/show_bug.cgi?id=100300) so I&apos;m pretty confident now that m_track will always get cleared.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752310</commentid>
    <comment_count>29</comment_count>
      <attachid>170985</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-26 13:09:10 -0700</bug_when>
    <thetext>Comment on attachment 170985
Moved suspendIfNeeded() into TextTrackCue::create().

Attachment 170985 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14614120</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752400</commentid>
    <comment_count>30</comment_count>
      <attachid>170985</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-26 14:23:30 -0700</bug_when>
    <thetext>Comment on attachment 170985
Moved suspendIfNeeded() into TextTrackCue::create().

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

This patch looks good, but I&apos;m not sure why V8 and JSC are using different mechanisms.  Can JSC use the same mechanism you&apos;re adding to this patch?  How does the existing JSC mechanism differ from the one you&apos;re adding here?

&gt; Source/WebCore/html/track/TextTrack.idl:31
&gt;      JSCustomMarkFunction,
&gt; -    JSCustomIsReachable
&gt; +    JSCustomIsReachable,

Should JSC use ImplOwnerRoot as well?  If you use the attribute GenerateIsReachable rather than V8GenerateIsReachable, it will be applied to both JSC and V8.

&gt; Source/WebCore/html/track/TextTrackCue.cpp:1062
&gt; +    return m_track;

Can we add an ASSERT, perhaps to stop() but perhaps elsewhere, that this eventually becomes 0?

&gt; Source/WebCore/html/track/TextTrackCue.idl:35
&gt;      JSCustomMarkFunction,
&gt; -    JSCustomIsReachable
&gt; +    JSCustomIsReachable,
&gt; +    ActiveDOMObject

Does JSC still need these CustomMark, CustomIsReachable attributes, or is ActiveDOMObject sufficient for JSC as well?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752401</commentid>
    <comment_count>31</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-26 14:24:05 -0700</bug_when>
    <thetext>Looks like you also have a compile problem on apple-mac.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752468</commentid>
    <comment_count>32</comment_count>
      <attachid>170985</attachid>
    <who name="Aaron Colwell">acolwell</who>
    <bug_when>2012-10-26 15:03:44 -0700</bug_when>
    <thetext>Comment on attachment 170985
Moved suspendIfNeeded() into TextTrackCue::create().

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

&gt;&gt; Source/WebCore/html/track/TextTrack.idl:31
&gt;&gt; +    JSCustomIsReachable,
&gt; 
&gt; Should JSC use ImplOwnerRoot as well?  If you use the attribute GenerateIsReachable rather than V8GenerateIsReachable, it will be applied to both JSC and V8.

I&apos;ll dig deeper. It does seem like both should be able to use the same mechanism. Documentation on these different options are a little thin so it is hard to know what is the best path.

&gt;&gt; Source/WebCore/html/track/TextTrackCue.idl:35
&gt;&gt; +    ActiveDOMObject
&gt; 
&gt; Does JSC still need these CustomMark, CustomIsReachable attributes, or is ActiveDOMObject sufficient for JSC as well?

I&apos;m investigating whether ActiveDOMObject can replace the custom reachable function. One thing that isn&apos;t clear to me is whether ActiveDOMObject takes into account whether event handlers are firing. The custom reachability handler (http://trac.webkit.org/browser/trunk/Source/WebCore/bindings/js/JSTextTrackCueCustom.cpp?order=name#L44) appears to take this into account when it is determining reachability. Unfortunately this method isn&apos;t const so I can&apos;t call it from hasPendingActivity().

Any docs or pointers about custom reachable handlers vs ActiveDOMObject would be greatly appreciated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752474</commentid>
    <comment_count>33</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-26 15:05:22 -0700</bug_when>
    <thetext>There is no documentation.  You need to read the code to understand how it works.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>795315</commentid>
    <comment_count>34</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-12-20 02:55:38 -0800</bug_when>
    <thetext>*** Bug 105520 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>795987</commentid>
    <comment_count>35</comment_count>
      <attachid>170985</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-12-20 17:35:48 -0800</bug_when>
    <thetext>Comment on attachment 170985
Moved suspendIfNeeded() into TextTrackCue::create().

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

&gt;&gt;&gt; Source/WebCore/html/track/TextTrack.idl:31
&gt;&gt;&gt; +    JSCustomIsReachable,
&gt;&gt; 
&gt;&gt; Should JSC use ImplOwnerRoot as well?  If you use the attribute GenerateIsReachable rather than V8GenerateIsReachable, it will be applied to both JSC and V8.
&gt; 
&gt; I&apos;ll dig deeper. It does seem like both should be able to use the same mechanism. Documentation on these different options are a little thin so it is hard to know what is the best path.

FWIW, we have the same crash in JSC:
http://test-results.appspot.com/dashboards/flakiness_dashboard.html#group=%40ToT%20-%20webkit.org&amp;tests=media%2Ftrack%2Ftracklist-is-reachable.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>795993</commentid>
    <comment_count>36</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-12-20 17:41:12 -0800</bug_when>
    <thetext>Added Mac test expectation in http://trac.webkit.org/changeset/138330.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796049</commentid>
    <comment_count>37</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-12-20 19:02:27 -0800</bug_when>
    <thetext>This bug is critical. It’s making all media element track tests intermittently crash.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796063</commentid>
    <comment_count>38</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2012-12-20 19:37:12 -0800</bug_when>
    <thetext>(In reply to comment #37)
&gt; This bug is critical. It’s making all media element track tests intermittently crash.

This bug is V8 specific, the corresponding JSC changes were in 
https://bugs.webkit.org/show_bug.cgi?id=72179 and have worked until now so something else is causing the new failures.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796077</commentid>
    <comment_count>39</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-12-20 20:04:33 -0800</bug_when>
    <thetext>(In reply to comment #38)
&gt; (In reply to comment #37)
&gt; &gt; This bug is critical. It’s making all media element track tests intermittently crash.
&gt; 
&gt; This bug is V8 specific, the corresponding JSC changes were in 
&gt; https://bugs.webkit.org/show_bug.cgi?id=72179 and have worked until now so something else is causing the new failures.

Okay. Let me file a bug new then.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>883882</commentid>
    <comment_count>40</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-05-02 12:11:12 -0700</bug_when>
    <thetext>V8 is no longer in WebKit.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123818</attachid>
            <date>2012-01-24 14:56:10 -0800</date>
            <delta_ts>2012-02-06 12:04:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73865-20120124145609.patch</filename>
            <type>text/plain</type>
            <size>17232</size>
            <attacher name="Erik Arvidsson">arv</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1NTQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjFiZjY5NjBlNzFiYzg4
ZjhmNDNmYTA4NzUyNDU4NTM3M2U5YWVlMS4uNGRmZTM2NWI1NWVhNTE3ZGQwYjUyMDE5ZWJjZjc3
NDVmMmNlMjMyZiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTAxLTI0ICBFcmlr
IEFydmlkc3NvbiAgPGFydkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVjggd3JhcHBlcnMgZm9y
IFRleHRUcmFjayBhbmQgVGV4dFRyYWNrQ3VlIHNob3VsZCBub3QgYmUgY29sbGVjdGVkIG9uIGV2
ZW50IGRpc3BhdGNoIGFuZCB3aGVuIHBhcmVudC9vd25lciBhcmUgc3RpbGwgcmVhY2hhYmxlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzg2NQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBoaWRkZW4g
cmVmZXJlbmNlcyB0byB0aGUgRE9NIHdyYXBwZXJzIHNvIHRoYXQgVjggZG9lcyBub3QgZ2FyYmFn
ZSBjb2xsZWN0IHRoZSB3cmFwcGVycyB1bnRpbAorICAgICAgICB0aGUgbWVkaWEgZWxlbWVudCBn
b2VzIGF3YXkuCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAg
ICAqIFRhcmdldC5wcmk6CisgICAgICAgICogVXNlVjguY21ha2U6CisgICAgICAgICogV2ViQ29y
ZS5neXBpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOgor
ICAgICAgICAoSGFzQ3VzdG9tVG9WOEltcGxlbWVudGF0aW9uKToKKyAgICAgICAgKiBiaW5kaW5n
cy92OC9WOERPTVdyYXBwZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhET01XcmFwcGVyOjph
ZGROYW1lZEhpZGRlblJlZmVyZW5jZSk6CisgICAgICAgICAgICBUaGlzIGFkZHMgYSBuZXcgaGlk
ZGVuIHJlZmVyZW5jZSBmcm9tIHBhcmVudCB0byBhIGNoaWxkLiBBbiBhcnJheSBpcyB1c2VkIHRv
IGFsbG93IHJlZmVyZW5jZXMKKyAgICAgICAgICAgIHRvIG11bHRpcGxlIGNoaWxkcmVuLgorICAg
ICAgICAqIGJpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5oOgorICAgICAgICAqIGJpbmRpbmdzL3Y4
L2N1c3RvbS9WOFRleHRUcmFja0N1ZUN1c3RvbS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6dG9WOCk6IEFkZCBoaWRkZW4gcmVmZXJlbmNlLgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1
c3RvbS9WOFRleHRUcmFja0N1c3RvbS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6dG9W
OCk6IEFkZCBoaWRkZW4gcmVmZXJlbmNlLgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9W
OFRleHRUcmFja0xpc3RDdXN0b20uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnRvVjgp
OiBBZGQgaGlkZGVuIHJlZmVyZW5jZS4KKwogMjAxMi0wMS0yMCAgSnVsaWVuIENoYWZmcmFpeCAg
PGpjaGFmZnJhaXhAd2Via2l0Lm9yZz4KIAogICAgICAgICBDcmFzaCBpbiBSZW5kZXJUYWJsZTo6
Ym9yZGVyQmVmb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291
cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCAxY2EwOWU2OWRlNWFjOWM3YzQ1NDhmMmJlNDU2
MDJlZTY5NGU5MGZiLi42YjA3OWEyYWQ3MGZkOTcxMjI0NmVhMjY5YzIxYzMyODZkZjgwYzU0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1RhcmdldC5wcmkKQEAgLTIwNyw2ICsyMDcsOSBAQCB2OCB7CiAgICAgICAgIGJpbmRpbmdzL3Y4
L2N1c3RvbS9WOFN0b3JhZ2VDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvdjgvY3VzdG9t
L1Y4U3R5bGVTaGVldEN1c3RvbS5jcHAgXAogICAgICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhT
dHlsZVNoZWV0TGlzdEN1c3RvbS5jcHAgXAorICAgICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhU
ZXh0VHJhY2tDdWVDdXN0b20uY3BwIFwKKyAgICAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4VGV4
dFRyYWNrQ3VzdG9tLmNwcCBcCisgICAgICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFRleHRUcmFj
a0xpc3RDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViS2l0QW5p
bWF0aW9uQ3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYktpdE11
dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4
V2ViS2l0UG9pbnRDb25zdHJ1Y3Rvci5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
VXNlVjguY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9Vc2VWOC5jbWFrZQppbmRleCAxMDg1ZGJiZTIx
ZjY1Y2EyZTgyMTQyNzQxMjcwM2E0MDIyYTBkZmQwLi5kNmVmOWFjYjIyMGY5NzJhMjlmMzljZTE3
ZDVmZGQwNmJmNjAzMzdjIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Vc2VWOC5jbWFrZQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Vc2VWOC5jbWFrZQpAQCAtMTQzLDYgKzE0Myw5IEBAIExJU1Qo
QVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFN0b3JhZ2VD
dXN0b20uY3BwCiAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4U3R5bGVTaGVldEN1c3RvbS5jcHAK
ICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhTdHlsZVNoZWV0TGlzdEN1c3RvbS5jcHAKKyAgICBi
aW5kaW5ncy92OC9jdXN0b20vVjhUZXh0VHJhY2tDdWVDdXN0b20uY3BwCisgICAgYmluZGluZ3Mv
djgvY3VzdG9tL1Y4VGV4dFRyYWNrQ3VzdG9tLmNwcAorICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9W
OFRleHRUcmFja0xpc3RDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4VWludDE2
QXJyYXlDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4VWludDMyQXJyYXlDdXN0
b20uY3BwCiAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4VWludDhBcnJheUN1c3RvbS5jcHAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQppbmRleCBiYmNjOTQ4NmRmMjUzY2YyODUxMjJiYjE0M2MzMjkyNjNmYmZmYmQ2
Li4xNWFlN2E2ODE4NmY2YzRjZWFjOWE4YzFiYmM5YTBlNDRiMWZkMDA5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5n
eXBpCkBAIC0yMjg2LDYgKzIyODYsOSBAQAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOFN0b3JhZ2VDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20v
VjhTdHlsZVNoZWV0Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9t
L1Y4U3R5bGVTaGVldExpc3RDdXN0b20uY3BwJywKKyAgICAgICAgICAgICdiaW5kaW5ncy92OC9j
dXN0b20vVjhUZXh0VHJhY2tDdWVDdXN0b20uY3BwJywKKyAgICAgICAgICAgICdiaW5kaW5ncy92
OC9jdXN0b20vVjhUZXh0VHJhY2tDdXN0b20uY3BwJywKKyAgICAgICAgICAgICdiaW5kaW5ncy92
OC9jdXN0b20vVjhUZXh0VHJhY2tMaXN0Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4VHJhY2tFdmVudEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOFVpbnQxNkFycmF5Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4VWludDMyQXJyYXlDdXN0b20uY3BwJywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KaW5kZXggZmQxZWYy
YTY0NDgzMTRhMDM0ZWJjOGE2NGNmMTY4NjE5NTYwN2E3MC4uMGE4YzIxY2U5MTgwOWRiNWNkNDFh
Nzc3ODhkZjdiMTIyODBlODFlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KQEAgLTMxNjUsNiArMzE2NSw5IEBAIHN1YiBIYXND
dXN0b21Ub1Y4SW1wbGVtZW50YXRpb24gewogICAgIHJldHVybiAxIGlmICRpbnRlcmZhY2VOYW1l
IGVxICJIVE1MRWxlbWVudCI7CiAgICAgcmV0dXJuIDEgaWYgJGludGVyZmFjZU5hbWUgZXEgIkxv
Y2F0aW9uIjsKICAgICByZXR1cm4gMSBpZiAkaW50ZXJmYWNlTmFtZSBlcSAiTmFtZWROb2RlTWFw
IjsKKyAgICByZXR1cm4gMSBpZiAkaW50ZXJmYWNlTmFtZSBlcSAiVGV4dFRyYWNrIjsKKyAgICBy
ZXR1cm4gMSBpZiAkaW50ZXJmYWNlTmFtZSBlcSAiVGV4dFRyYWNrQ3VlIjsKKyAgICByZXR1cm4g
MSBpZiAkaW50ZXJmYWNlTmFtZSBlcSAiVGV4dFRyYWNrTGlzdCI7CiAgICAgcmV0dXJuIDEgaWYg
JGludGVyZmFjZU5hbWUgZXEgIlNWR0RvY3VtZW50IjsKICAgICByZXR1cm4gMSBpZiAkaW50ZXJm
YWNlTmFtZSBlcSAiU1ZHRWxlbWVudCI7CiAgICAgcmV0dXJuIDEgaWYgJGludGVyZmFjZU5hbWUg
ZXEgIlNjcmlwdFByb2ZpbGUiOwpAQCAtMzE4Miw3ICszMTg1LDYgQEAgc3ViIEhhc0N1c3RvbVRv
VjhJbXBsZW1lbnRhdGlvbiB7CiAgICAgcmV0dXJuIDAgaWYgJGludGVyZmFjZU5hbWUgZXEgIkRP
TUltcGxlbWVudGF0aW9uIjsKICAgICByZXR1cm4gMCBpZiAkaW50ZXJmYWNlTmFtZSBlcSAiRE9N
U3RyaW5nTWFwIjsKICAgICByZXR1cm4gMCBpZiAkaW50ZXJmYWNlTmFtZSBlcSAiRE9NVG9rZW5M
aXN0IjsKLSAgICByZXR1cm4gMCBpZiAkaW50ZXJmYWNlTmFtZSBlcSAiVGV4dFRyYWNrIjsKIAog
ICAgICMgRm9yIGV2ZXJ5dGhpbmcgZWxzZSwgZG8gd2hhdCBKU0MgZG9lcy4KICAgICByZXR1cm4g
JGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tVG9KUyJ9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHAKaW5kZXggMGI3NTdjYTA4ZDc2MGY5
MzU2Zjg0OWVjNzBmODFkOWUwYTg5NzFlYy4uNGY3NTQ1MDFiZDRiNGIyZGJmYzkyNGJmYTA3NDIx
MjJjZDE2MzAwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01X
cmFwcGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIu
Y3BwCkBAIC0xODIsNiArMTgyLDE4IEBAIHZvaWQgVjhET01XcmFwcGVyOjpzZXROYW1lZEhpZGRl
bldpbmRvd1JlZmVyZW5jZShGcmFtZSogZnJhbWUsIGNvbnN0IGNoYXIqIG5hbWUsCiAgICAgc2V0
TmFtZWRIaWRkZW5SZWZlcmVuY2UoZ2xvYmFsLCBuYW1lLCBqc09iamVjdCk7CiB9CiAKK3ZvaWQg
VjhET01XcmFwcGVyOjphZGROYW1lZEhpZGRlblJlZmVyZW5jZSh2ODo6SGFuZGxlPHY4OjpPYmpl
Y3Q+IHBhcmVudCwgY29uc3QgY2hhciogbmFtZSwgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGNoaWxk
KQoreworICAgIHY4OjpIYW5kbGU8djg6OlN0cmluZz4gaGlkZGVuUHJvcGVydHlOYW1lID0gVjhI
aWRkZW5Qcm9wZXJ0eU5hbWU6OmhpZGRlblJlZmVyZW5jZU5hbWUobmFtZSk7CisgICAgdjg6Okxv
Y2FsPHY4OjpWYWx1ZT4gaGlkZGVuUmVmZXJlbmNlT2JqZWN0ID0gcGFyZW50LT5HZXRIaWRkZW5W
YWx1ZShoaWRkZW5Qcm9wZXJ0eU5hbWUpOworICAgIGlmIChoaWRkZW5SZWZlcmVuY2VPYmplY3Qu
SXNFbXB0eSgpKSB7CisgICAgICAgIGhpZGRlblJlZmVyZW5jZU9iamVjdCA9IHY4OjpBcnJheTo6
TmV3KCk7CisgICAgICAgIHBhcmVudC0+U2V0SGlkZGVuVmFsdWUoaGlkZGVuUHJvcGVydHlOYW1l
LCBoaWRkZW5SZWZlcmVuY2VPYmplY3QpOworICAgIH0KKyAgICB2ODo6TG9jYWw8djg6OkFycmF5
PiBoaWRkZW5SZWZlcmVuY2VBcnJheSA9IHY4OjpMb2NhbDx2ODo6QXJyYXk+OjpDYXN0KGhpZGRl
blJlZmVyZW5jZU9iamVjdCk7CisgICAgaGlkZGVuUmVmZXJlbmNlQXJyYXktPlNldCh2ODo6SW50
ZWdlcjo6TmV3KGhpZGRlblJlZmVyZW5jZUFycmF5LT5MZW5ndGgoKSksIGNoaWxkKTsKK30KKwog
V3JhcHBlclR5cGVJbmZvKiBWOERPTVdyYXBwZXI6OmRvbVdyYXBwZXJUeXBlKHY4OjpIYW5kbGU8
djg6Ok9iamVjdD4gb2JqZWN0KQogewogICAgIEFTU0VSVChWOERPTVdyYXBwZXI6Om1heWJlRE9N
V3JhcHBlcihvYmplY3QpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1Y4RE9NV3JhcHBlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVy
LmgKaW5kZXggNzQ4ZTgyN2M1YWMwMjg4ZDNlMDFlM2ViNzhkMjA0NmQ3NzcxMzQ3Ny4uNTUxMDEz
M2I0YmFlYTkzZjZkNTQ3YTgxNTI3NTE5ZDI3YmMwN2MyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvVjhET01XcmFwcGVyLmgKQEAgLTEyMSw2ICsxMjEsOCBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIC8vIG9sZCBjaGlsZHJlbi4KICAgICAgICAgc3RhdGljIHZvaWQgc2V0
TmFtZWRIaWRkZW5SZWZlcmVuY2Uodjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBwYXJlbnQsIGNvbnN0
IGNoYXIqIG5hbWUsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjaGlsZCk7CiAgICAgICAgIHN0YXRp
YyB2b2lkIHNldE5hbWVkSGlkZGVuV2luZG93UmVmZXJlbmNlKEZyYW1lKiwgY29uc3QgY2hhcios
IHY4OjpIYW5kbGU8djg6OlZhbHVlPik7CisgICAgICAgIC8vIExpa2Ugc2V0TmFtZWRIaWRkZW5S
ZWZlcmVuY2UgYnV0IGtlZXBzIGFkZGluZyBuZXcgcmVmZXJlbmNlcy4KKyAgICAgICAgc3RhdGlj
IHZvaWQgYWRkTmFtZWRIaWRkZW5SZWZlcmVuY2Uodjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBwYXJl
bnQsIGNvbnN0IGNoYXIqIG5hbWUsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjaGlsZCk7CiAKICAg
ICAgICAgc3RhdGljIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBpbnN0YW50aWF0ZVY4T2JqZWN0KFY4
UHJveHkqIHByb3h5LCBXcmFwcGVyVHlwZUluZm8qLCB2b2lkKiBpbXBsKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4VGV4dFRyYWNrQ3VlQ3VzdG9t
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFRleHRUcmFja0N1ZUN1
c3RvbS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOWNlZjFmZTdjY2QzNTEzZWE2YjQ0NzI5ZjJlNGRlODlkZDdj
ODUwNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOFRleHRUcmFja0N1ZUN1c3RvbS5jcHAKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRp
b24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFt
ZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisg
KiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJWOFRleHRUcmFja0N1ZS5oIgorCisjaW5jbHVkZSAiSFRNTE1lZGlh
RWxlbWVudC5oIgorI2luY2x1ZGUgIlRleHRUcmFjay5oIgorI2luY2x1ZGUgIlRleHRUcmFja0N1
ZS5oIgorI2luY2x1ZGUgIlY4RE9NV3JhcHBlci5oIgorI2luY2x1ZGUgIlY4SFRNTE1lZGlhRWxl
bWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiB0
b1Y4KFRleHRUcmFja0N1ZSogaW1wbCkKK3sKKyAgICBpZiAoIWltcGwpCisgICAgICAgIHJldHVy
biB2ODo6TnVsbCgpOworICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IFY4VGV4
dFRyYWNrQ3VlOjp3cmFwKGltcGwpOworCisgICAgLy8gQWRkIGEgaGlkZGVuIHJlZmVyZW5jZSBm
cm9tIHRoZSBtZWRpYSBlbGVtZW50IHRvIHRoZSB0ZXh0IHRyYWNrIGN1ZS4KKyAgICBUZXh0VHJh
Y2sqIHRyYWNrID0gaW1wbC0+dHJhY2soKTsKKyAgICBpZiAodHJhY2spIHsKKyAgICAgICAgSFRN
TE1lZGlhRWxlbWVudCogZWxlbWVudCA9IHRyYWNrLT5tZWRpYUVsZW1lbnQoKTsKKyAgICAgICAg
aWYgKCF3cmFwcGVyLklzRW1wdHkoKSAmJiBlbGVtZW50KSB7CisgICAgICAgICAgICB2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gZWxlbWVudFZhbHVlID0gdG9WOChlbGVtZW50KTsKKyAgICAgICAgICAg
IGlmICghZWxlbWVudFZhbHVlLklzRW1wdHkoKSAmJiBlbGVtZW50VmFsdWUtPklzT2JqZWN0KCkp
CisgICAgICAgICAgICAgICAgVjhET01XcmFwcGVyOjphZGROYW1lZEhpZGRlblJlZmVyZW5jZShl
bGVtZW50VmFsdWUuQXM8djg6Ok9iamVjdD4oKSwgInRleHRUcmFja0N1ZUl0ZW1zIiwgd3JhcHBl
cik7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHdyYXBwZXI7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOFRleHRUcmFja0N1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9j
dXN0b20vVjhUZXh0VHJhY2tDdXN0b20uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQyODk2NjgxNTljYzUzOTI0
ODllNmM0ZGY4ZGUzOWU1ZjcyZjRhZTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhUZXh0VHJhY2tDdXN0b20uY3BwCkBAIC0wLDAgKzEsNTcg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAq
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVjhUZXh0VHJhY2suaCIKKworI2luY2x1
ZGUgIkhUTUxNZWRpYUVsZW1lbnQuaCIKKyNpbmNsdWRlICJUZXh0VHJhY2suaCIKKyNpbmNsdWRl
ICJWOERPTVdyYXBwZXIuaCIKKyNpbmNsdWRlICJWOEhUTUxNZWRpYUVsZW1lbnQuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCit2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOChUZXh0VHJhY2sq
IGltcGwpCit7CisgICAgaWYgKCFpbXBsKQorICAgICAgICByZXR1cm4gdjg6Ok51bGwoKTsKKyAg
ICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBwZXIgPSBWOFRleHRUcmFjazo6d3JhcChpbXBs
KTsKKworICAgIC8vIEFkZCBhIGhpZGRlbiByZWZlcmVuY2UgZnJvbSB0aGUgbWVkaWEgZWxlbWVu
dCB0byB0aGUgdGV4dCB0cmFjay4KKyAgICBIVE1MTWVkaWFFbGVtZW50KiBlbGVtZW50ID0gaW1w
bC0+bWVkaWFFbGVtZW50KCk7CisgICAgaWYgKCF3cmFwcGVyLklzRW1wdHkoKSAmJiBlbGVtZW50
KSB7CisgICAgICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBlbGVtZW50VmFsdWUgPSB0b1Y4KGVs
ZW1lbnQpOworICAgICAgICBpZiAoIWVsZW1lbnRWYWx1ZS5Jc0VtcHR5KCkgJiYgZWxlbWVudFZh
bHVlLT5Jc09iamVjdCgpKQorICAgICAgICAgICAgVjhET01XcmFwcGVyOjphZGROYW1lZEhpZGRl
blJlZmVyZW5jZShlbGVtZW50VmFsdWUuQXM8djg6Ok9iamVjdD4oKSwgInRleHRUcmFja0l0ZW1z
Iiwgd3JhcHBlcik7CisgICAgfQorICAgIHJldHVybiB3cmFwcGVyOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0
b20vVjhUZXh0VHJhY2tMaXN0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L2N1c3RvbS9WOFRleHRUcmFja0xpc3RDdXN0b20uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM1NTYyMzQ3NDJh
MTA5Mzg3ZTUxM2IyMjM2YWZlZTFmMDgyOWRlNGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhUZXh0VHJhY2tMaXN0Q3VzdG9tLmNwcApAQCAt
MCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBt
ZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICog
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlY4VGV4dFRyYWNrTGlz
dC5oIgorCisjaW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVudC5oIgorI2luY2x1ZGUgIlRleHRUcmFj
a0xpc3QuaCIKKyNpbmNsdWRlICJWOERPTVdyYXBwZXIuaCIKKyNpbmNsdWRlICJWOEhUTUxNZWRp
YUVsZW1lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gdG9WOChUZXh0VHJhY2tMaXN0KiBpbXBsKQoreworICAgIGlmICghaW1wbCkKKyAgICAgICAg
cmV0dXJuIHY4OjpOdWxsKCk7CisgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyID0g
VjhUZXh0VHJhY2tMaXN0Ojp3cmFwKGltcGwpOworCisgICAgLy8gQWRkIGEgaGlkZGVuIHJlZmVy
ZW5jZSBmcm9tIHRoZSBtZWRpYSBlbGVtZW50IHRvIHRoZSB0ZXh0IHRyYWNrIGxpc3QuCisgICAg
SFRNTE1lZGlhRWxlbWVudCogZWxlbWVudCA9IGltcGwtPm93bmVyKCk7CisgICAgaWYgKCF3cmFw
cGVyLklzRW1wdHkoKSAmJiBlbGVtZW50KSB7CisgICAgICAgIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiBlbGVtZW50VmFsdWUgPSB0b1Y4KGVsZW1lbnQpOworICAgICAgICBpZiAoIWVsZW1lbnRWYWx1
ZS5Jc0VtcHR5KCkgJiYgZWxlbWVudFZhbHVlLT5Jc09iamVjdCgpKQorICAgICAgICAgICAgVjhE
T01XcmFwcGVyOjpzZXROYW1lZEhpZGRlblJlZmVyZW5jZShlbGVtZW50VmFsdWUuQXM8djg6Ok9i
amVjdD4oKSwgInRleHRUcmFja3MiLCB3cmFwcGVyKTsKKyAgICB9CisgICAgcmV0dXJuIHdyYXBw
ZXI7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmNWNiOTQ0NWZlNmQyNGY4
YmRmNDNhZjZjOWRjZjM1OTRjZGUwMWI5Li45MDI2NTRiZmQ1ZGVlN2VmNjEyNDcyZDc1NjA0MTA5
NDVhZTBjZTEyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTItMDEtMjQgIEVyaWsgQXJ2aWRz
c29uICA8YXJ2QGNocm9taXVtLm9yZz4KKworICAgICAgICBWOCB3cmFwcGVycyBmb3IgVGV4dFRy
YWNrIGFuZCBUZXh0VHJhY2tDdWUgc2hvdWxkIG5vdCBiZSBjb2xsZWN0ZWQgb24gZXZlbnQgZGlz
cGF0Y2ggYW5kIHdoZW4gcGFyZW50L293bmVyIGFyZSBzdGlsbCByZWFjaGFibGUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczODY1CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1
bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6CisKIDIwMTItMDEtMjAgIEp1bGllbiBDaGFmZnJhaXgg
IDxqY2hhZmZyYWl4QHdlYmtpdC5vcmc+CiAKICAgICAgICAgQ3Jhc2ggaW4gUmVuZGVyVGFibGU6
OmJvcmRlckJlZm9yZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
dGVzdF9leHBlY3RhdGlvbnMudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVz
dF9leHBlY3RhdGlvbnMudHh0CmluZGV4IDBlNDFhNzViMTliNmIzYzZmOGMxNTEwOGQyY2I5ZmVk
NmExYjcyOWMuLmM0YTQwYzUzNTY3YTc4ZDc0ZTgwMTQyOWQ5MzQ2NTBmYTU5NDNiYzUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50
eHQKQEAgLTM2MjgsMTAgKzM2MjgsNiBAQCBCVUdfU0VOT1JCTEFOQ08gR1BVIDogZmFzdC9jYW52
YXMvY2FudmFzLXRyYW5zZm9ybXMtZmlsbFJlY3Qtc2hhZG93Lmh0bWwgPSBURVhUCiAKIEJVR1dL
NjY5NTMgOiB0cmFuc2l0aW9ucy9kZWZhdWx0LXRpbWluZy1mdW5jdGlvbi5odG1sID0gUEFTUyBG
QUlMCiAKLUJVR1dLNzM4NjUgOiBtZWRpYS90cmFjay90cmFja2xpc3QtaXMtcmVhY2hhYmxlLmh0
bWwgPSBURVhUIENSQVNICi1CVUdXSzczODY1IDogbWVkaWEvdHJhY2svdGV4dC10cmFjay1jdWUt
aXMtcmVhY2hhYmxlLmh0bWwgPSBURVhUIENSQVNICi1CVUdXSzczODY1IDogbWVkaWEvdHJhY2sv
dGV4dC10cmFjay1pcy1yZWFjaGFibGUuaHRtbCA9IFRFWFQgQ1JBU0gKLQogLy8gdXNlIFNraWEg
dG8gZHJhdyB2ZXJ0aWNhbCB0ZXh0IGRpcmVjdGx5IGluc3RlYWQgb2YgdGV4dC1vbi1wYXRoCiBC
VUdfQ0FSWUNMQVJLIE1BQyBDUFUgOiBlZGl0aW5nL3NlbGVjdGlvbi92ZXJ0aWNhbC1sci1sdHIt
ZXh0ZW5kLWxpbmUtYmFja3dhcmQtYnIuaHRtbCA9IElNQUdFCiBCVUdfQ0FSWUNMQVJLIE1BQyBD
UFUgOiBlZGl0aW5nL3NlbGVjdGlvbi92ZXJ0aWNhbC1sci1sdHItZXh0ZW5kLWxpbmUtZm9yd2Fy
ZC1ici5odG1sID0gSU1BR0UK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125683</attachid>
            <date>2012-02-06 12:04:51 -0800</date>
            <delta_ts>2012-02-07 10:49:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73865-20120206120450.patch</filename>
            <type>text/plain</type>
            <size>11726</size>
            <attacher name="Erik Arvidsson">arv</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2MTUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjQzMmRmYmM4ZmU3NzY0
N2UzYmE2MGM2YzU2MTYxYjUwZmJjMWUzMS4uZjI5NDFmMDdjY2VhMWI2YTc3ODUzZDM5ZTQ2MWIw
NjQ5ZTExNTczOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTAyLTA2ICBFcmlr
IEFydmlkc3NvbiAgPGFydkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVjggd3JhcHBlcnMgZm9y
IFRleHRUcmFjayBhbmQgVGV4dFRyYWNrQ3VlIHNob3VsZCBub3QgYmUgY29sbGVjdGVkIG9uIGV2
ZW50IGRpc3BhdGNoIGFuZCB3aGVuIHBhcmVudC9vd25lciBhcmUgc3RpbGwgcmVhY2hhYmxlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzg2NQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzcGVjaWFs
IGhhbmRsaW5nIGZvciBIVE1MTWVkaWFFbGVtZW50IGFuZCBUZXh0VHJhY2sgdG8gYWRkIGltcGxp
Y2l0IHJlZmVyZW5jZXMgdG8gdGhlIGl0ZW1zIGluIHRoZQorICAgICAgICB0ZXh0VHJhY2tzIGFu
ZCBjdWVzIGNvbGxlY3Rpb25zIHJlc3BlY3RpdmVseS4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4
aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBVc2VWOC5j
bWFrZToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9yVjgucG06CisgICAgICAgIChIYXNDdXN0b21Ub1Y4SW1wbGVtZW50YXRp
b24pOiBOZWVkcyBjdXN0b20gdG9WOCBmb3IgVGV4dFRyYWNrTGlzdCB0byBhZGQgcmVmZXJlbmNl
IGZyb20gdGhlIEhUTUxNZWRpYUVsZW1lbnQgdG8gdGhlIFRleHRUcmFja0xpc3QuCisgICAgICAg
ICogYmluZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3Jv
dXBlclZpc2l0b3I6OnZpc2l0RE9NV3JhcHBlcik6CisgICAgICAgIChHcm91cGVyVmlzaXRvcik6
CisgICAgICAgIChXZWJDb3JlOjpHcm91cGVyVmlzaXRvcjo6YXBwZW5kVG9Hcm91cGVyTGlzdCk6
IEV4dHJhY3RlZCBpbnRvIGEgbWV0aG9kLgorICAgICAgICAqIGh0bWwvVGV4dFRyYWNrLmlkbDoK
KyAgICAgICAgKiBodG1sL1RleHRUcmFja0N1ZS5pZGw6CisKIDIwMTItMDEtMjcgIEtlbiBCdWNo
YW5hbiAgPGtlbnJiQGNocm9taXVtLm9yZz4KIAogICAgICAgICBDcmFzaCBpbiB1cGRhdGVGaXJz
dExldHRlcigpIGZyb20gdW5uZWNlc3NhcnkgYW5vbnltb3VzIGJsb2NrCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRl
eCA2ZjU0NDY1MGI3Y2VjYWYwNjE5M2YwYzU0NjJhY2Y0NDA0NWZmYTcyLi4zMGI4NWJlOGI0ZmJj
MTFkMDhiN2VjZjc2ZDM5ZDc4ZDU0MThlMTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9U
YXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTIwNyw2ICsyMDcs
NyBAQCB2OCB7CiAgICAgICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFN0b3JhZ2VDdXN0b20uY3Bw
IFwKICAgICAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4U3R5bGVTaGVldEN1c3RvbS5jcHAgXAog
ICAgICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhTdHlsZVNoZWV0TGlzdEN1c3RvbS5jcHAgXAor
ICAgICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhUZXh0VHJhY2tMaXN0Q3VzdG9tLmNwcCBcCiAg
ICAgICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYktpdEFuaW1hdGlvbkN1c3RvbS5jcHAgXAog
ICAgICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhXZWJLaXRNdXRhdGlvbk9ic2VydmVyQ3VzdG9t
LmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYktpdFBvaW50Q29uc3RydWN0
b3IuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1VzZVY4LmNtYWtlIGIvU291cmNl
L1dlYkNvcmUvVXNlVjguY21ha2UKaW5kZXggMTA4NWRiYmUyMWY2NWNhMmU4MjE0Mjc0MTI3MDNh
NDAyMmEwZGZkMC4uYTFiYTAwYzU5NTA4MTUwNmY5N2ZhMjBkYTFiNTI5NzdlN2VjM2E1NyAxMDA3
NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvVXNlVjguY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUv
VXNlVjguY21ha2UKQEAgLTE0Myw2ICsxNDMsNyBAQCBMSVNUKEFQUEVORCBXZWJDb3JlX1NPVVJD
RVMKICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhTdG9yYWdlQ3VzdG9tLmNwcAogICAgIGJpbmRp
bmdzL3Y4L2N1c3RvbS9WOFN0eWxlU2hlZXRDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4U3R5bGVTaGVldExpc3RDdXN0b20uY3BwCisgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4
VGV4dFRyYWNrTGlzdEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhVaW50MTZB
cnJheUN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhVaW50MzJBcnJheUN1c3Rv
bS5jcHAKICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhVaW50OEFycmF5Q3VzdG9tLmNwcApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCmluZGV4IGJiOTg4M2RhNmFlZmI1MWUzY2Y1NWVlOGRkY2I2YTcxM2JmYTU5NDEu
LjVkNTRiYTA1MDRhODc1OTAwMDcwZDU3M2VjNzkxYmZmOTAzMjQyOGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5
cGkKQEAgLTE4OTEsNiArMTg5MSw3IEBACiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9t
L1Y4U3RvcmFnZUN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OFN0eWxlU2hlZXRDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20v
VjhTdHlsZVNoZWV0TGlzdEN1c3RvbS5jcHAnLAorICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOFRleHRUcmFja0xpc3RDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92
OC9jdXN0b20vVjhUcmFja0V2ZW50Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3Mv
djgvY3VzdG9tL1Y4VWludDE2QXJyYXlDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5n
cy92OC9jdXN0b20vVjhVaW50MzJBcnJheUN1c3RvbS5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0gYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQppbmRleCA4ZTA0Y2ZjYjRj
NGQ1NTUzYTg5MmNlYTIyMjRjMzM0YTU4NDU3MjBlLi5iNzE5YTk1NTE2MWJmNTVlNDBhNjhhNzc5
OTMwMzE0MjMxZWZiMTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JWOC5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JWOC5wbQpAQCAtMzE1Myw2ICszMTUzLDcgQEAgc3ViIEhhc0N1c3Rv
bVRvVjhJbXBsZW1lbnRhdGlvbiB7CiAgICAgcmV0dXJuIDEgaWYgJGludGVyZmFjZU5hbWUgZXEg
IlNWR0VsZW1lbnQiOwogICAgIHJldHVybiAxIGlmICRpbnRlcmZhY2VOYW1lIGVxICJTY3JpcHRQ
cm9maWxlIjsKICAgICByZXR1cm4gMSBpZiAkaW50ZXJmYWNlTmFtZSBlcSAiU2NyaXB0UHJvZmls
ZU5vZGUiOworICAgIHJldHVybiAxIGlmICRpbnRlcmZhY2VOYW1lIGVxICJUZXh0VHJhY2tMaXN0
IjsKICAgICByZXR1cm4gMSBpZiAkaW50ZXJmYWNlTmFtZSBlcSAiV29ya2VyQ29udGV4dCI7CiAg
ICAgIyBXZSBkb24ndCBnZW5lcmF0ZSBhIGN1c3RvbSBjb252ZXJ0ZXIgKGJ1dCBKU0MgZG9lcykg
Zm9yIHRoZSBmb2xsb3dpbmc6CiAgICAgcmV0dXJuIDAgaWYgJGludGVyZmFjZU5hbWUgZXEgIkFi
c3RyYWN0V29ya2VyIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4
R0NDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4R0NDb250cm9s
bGVyLmNwcAppbmRleCA4MjZlYjNhOTQ1MmQ0ZDA4NDA5YTk3YjZjNWFkYjE3ZDc1YTVkOTY1Li5h
NGE1MTAzZjZjZTM2MWFkZTI4YzQxZTY0ZWUxNDk4NDIyNGQ2OTgxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEdDQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIuY3BwCkBAIC0zNSwxMiArMzUsMTcgQEAK
ICNpbmNsdWRlICJBdHRyLmgiCiAjaW5jbHVkZSAiRE9NRGF0YVN0b3JlLmgiCiAjaW5jbHVkZSAi
RE9NSW1wbGVtZW50YXRpb24uaCIKKyNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRN
TEltYWdlRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxNZWRpYUVsZW1lbnQuaCIKICNpbmNsdWRl
ICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJNZXNzYWdlUG9ydC5oIgogI2luY2x1ZGUgIlBsYXRm
b3JtU3VwcG9ydC5oIgogI2luY2x1ZGUgIlJldGFpbmVkRE9NSW5mby5oIgogI2luY2x1ZGUgIlJl
dGFpbmVkT2JqZWN0SW5mby5oIgorI2luY2x1ZGUgIlRleHRUcmFjay5oIgorI2luY2x1ZGUgIlRl
eHRUcmFja0N1ZUxpc3QuaCIKKyNpbmNsdWRlICJUZXh0VHJhY2tMaXN0LmgiCiAjaW5jbHVkZSAi
VjhCaW5kaW5nLmgiCiAjaW5jbHVkZSAiVjhDU1NSdWxlLmgiCiAjaW5jbHVkZSAiVjhDU1NSdWxl
TGlzdC5oIgpAQCAtNDksNiArNTQsOSBAQAogI2luY2x1ZGUgIlY4TWVzc2FnZVBvcnQuaCIKICNp
bmNsdWRlICJWOFN0eWxlU2hlZXQuaCIKICNpbmNsdWRlICJWOFN0eWxlU2hlZXRMaXN0LmgiCisj
aW5jbHVkZSAiVjhUZXh0VHJhY2suaCIKKyNpbmNsdWRlICJWOFRleHRUcmFja0N1ZUxpc3QuaCIK
KyNpbmNsdWRlICJWOFRleHRUcmFja0xpc3QuaCIKICNpbmNsdWRlICJXcmFwcGVyVHlwZUluZm8u
aCIKIAogI2luY2x1ZGUgPGFsZ29yaXRobT4KQEAgLTMxNCw3ICszMjIsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCB2aXNpdERPTVdyYXBwZXIoRE9NRGF0YVN0b3JlKiBzdG9yZSwgTm9kZSogbm9kZSwg
djg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gd3JhcHBlcikKICAgICB7CiAgICAgICAgIGlmIChu
b2RlLT5oYXNFdmVudExpc3RlbmVycygpKSB7Ci0gICAgICAgICAgICBWZWN0b3I8djg6OlBlcnNp
c3RlbnQ8djg6OlZhbHVlPiA+IGxpc3RlbmVyczsKKyAgICAgICAgICAgIFZlY3Rvcjx2ODo6UGVy
c2lzdGVudDx2ODo6VmFsdWU+ID4gd3JhcHBlcnM7CiAgICAgICAgICAgICBFdmVudExpc3RlbmVy
SXRlcmF0b3IgaXRlcmF0b3Iobm9kZSk7CiAgICAgICAgICAgICB3aGlsZSAoRXZlbnRMaXN0ZW5l
ciogbGlzdGVuZXIgPSBpdGVyYXRvci5uZXh0TGlzdGVuZXIoKSkgewogICAgICAgICAgICAgICAg
IGlmIChsaXN0ZW5lci0+dHlwZSgpICE9IEV2ZW50TGlzdGVuZXI6OkpTRXZlbnRMaXN0ZW5lclR5
cGUpCkBAIC0zMjIsMjAgKzMzMCw0MCBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgVjhBYnN0
cmFjdEV2ZW50TGlzdGVuZXIqIHY4bGlzdGVuZXIgPSBzdGF0aWNfY2FzdDxWOEFic3RyYWN0RXZl
bnRMaXN0ZW5lcio+KGxpc3RlbmVyKTsKICAgICAgICAgICAgICAgICBpZiAoIXY4bGlzdGVuZXIt
Pmhhc0V4aXN0aW5nTGlzdGVuZXJPYmplY3QoKSkKICAgICAgICAgICAgICAgICAgICAgY29udGlu
dWU7Ci0gICAgICAgICAgICAgICAgbGlzdGVuZXJzLmFwcGVuZCh2OGxpc3RlbmVyLT5leGlzdGlu
Z0xpc3RlbmVyT2JqZWN0UGVyc2lzdGVudEhhbmRsZSgpKTsKKyAgICAgICAgICAgICAgICB3cmFw
cGVycy5hcHBlbmQodjhsaXN0ZW5lci0+ZXhpc3RpbmdMaXN0ZW5lck9iamVjdFBlcnNpc3RlbnRI
YW5kbGUoKSk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoIWxpc3RlbmVycy5pc0Vt
cHR5KCkpCi0gICAgICAgICAgICAgICAgdjg6OlY4OjpBZGRJbXBsaWNpdFJlZmVyZW5jZXMod3Jh
cHBlciwgbGlzdGVuZXJzLmRhdGEoKSwgbGlzdGVuZXJzLnNpemUoKSk7CisgICAgICAgICAgICBp
ZiAoIXdyYXBwZXJzLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICB2ODo6Vjg6OkFkZEltcGxp
Y2l0UmVmZXJlbmNlcyh3cmFwcGVyLCB3cmFwcGVycy5kYXRhKCksIHdyYXBwZXJzLnNpemUoKSk7
CiAgICAgICAgIH0KIAotICAgICAgICBHcm91cElkIGdyb3VwSWQgPSBjYWxjdWxhdGVHcm91cElk
KG5vZGUpOwotICAgICAgICBpZiAoIWdyb3VwSWQpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgIG1fZ3JvdXBlci5hcHBlbmQoR3JvdXBlckl0ZW0oZ3JvdXBJZCwgd3JhcHBlcikpOworI2lm
IEVOQUJMRShWSURFT19UUkFDSykKKyAgICAgICAgaWYgKG5vZGUtPmlzRWxlbWVudE5vZGUoKSAm
JiBzdGF0aWNfY2FzdDxFbGVtZW50Kj4obm9kZSktPmlzTWVkaWFFbGVtZW50KCkpIHsKKyAgICAg
ICAgICAgIEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWxlbWVudCA9IHN0YXRpY19jYXN0PEhUTUxN
ZWRpYUVsZW1lbnQqPihub2RlKTsKKyAgICAgICAgICAgIFRleHRUcmFja0xpc3QqIHRleHRUcmFj
a0xpc3QgPSBtZWRpYUVsZW1lbnQtPnRleHRUcmFja3MoKTsKKworICAgICAgICAgICAgVmVjdG9y
PHY4OjpQZXJzaXN0ZW50PHY4OjpWYWx1ZT4gPiB3cmFwcGVyczsKKyAgICAgICAgICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCB0ZXh0VHJhY2tMaXN0LT5sZW5ndGgoKTsgKytpKSB7CisgICAg
ICAgICAgICAgICAgVGV4dFRyYWNrKiB0ZXh0VHJhY2sgPSB0ZXh0VHJhY2tMaXN0LT5pdGVtKGkp
OworICAgICAgICAgICAgICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IHdyYXBwZXIgPSBn
ZXRET01PYmplY3RNYXAoKS5nZXQodGV4dFRyYWNrKTsKKyAgICAgICAgICAgICAgICBpZiAoIXdy
YXBwZXIuSXNFbXB0eSgpKQorICAgICAgICAgICAgICAgICAgICB3cmFwcGVycy5hcHBlbmQod3Jh
cHBlcik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICghd3JhcHBlcnMuaXNFbXB0
eSgpKQorICAgICAgICAgICAgICAgIHY4OjpWODo6QWRkSW1wbGljaXRSZWZlcmVuY2VzKHdyYXBw
ZXIsIHdyYXBwZXJzLmRhdGEoKSwgd3JhcHBlcnMuc2l6ZSgpKTsKKyAgICAgICAgfQorI2VuZGlm
CisKKyAgICAgICAgYXBwZW5kVG9Hcm91cGVyTGlzdChub2RlLCB3cmFwcGVyKTsKICAgICB9CiAK
ICAgICB2b2lkIHZpc2l0RE9NV3JhcHBlcihET01EYXRhU3RvcmUqIHN0b3JlLCB2b2lkKiBvYmpl
Y3QsIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IHdyYXBwZXIpCiAgICAgeworI2lmIEVOQUJM
RShWSURFT19UUkFDSykKKyAgICAgICAgV3JhcHBlclR5cGVJbmZvKiB0eXBlID0gVjhET01XcmFw
cGVyOjpkb21XcmFwcGVyVHlwZSh3cmFwcGVyKTsKKyAgICAgICAgaWYgKHR5cGUgPT0gJlY4VGV4
dFRyYWNrOjppbmZvKQorICAgICAgICAgICAgdmlzaXRET01XcmFwcGVyKHN0b3JlLCBzdGF0aWNf
Y2FzdDxUZXh0VHJhY2sqPihvYmplY3QpLCB3cmFwcGVyKTsKKyNlbmRpZgogICAgIH0KIAogICAg
IHZvaWQgYXBwbHlHcm91cGluZygpCkBAIC0zODAsNiArNDA4LDQwIEBAIHB1YmxpYzoKICAgICB9
CiAKIHByaXZhdGU6CisKKyNpZiBFTkFCTEUoVklERU9fVFJBQ0spCisgICAgdm9pZCB2aXNpdERP
TVdyYXBwZXIoRE9NRGF0YVN0b3JlKiBzdG9yZSwgVGV4dFRyYWNrKiB0ZXh0VHJhY2ssIHY4OjpQ
ZXJzaXN0ZW50PHY4OjpPYmplY3Q+IHdyYXBwZXIpCisgICAgeworICAgICAgICBIVE1MTWVkaWFF
bGVtZW50KiBtZWRpYUVsZW1lbnQgPSB0ZXh0VHJhY2stPm1lZGlhRWxlbWVudCgpOworICAgICAg
ICBpZiAoIW1lZGlhRWxlbWVudCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBWZWN0
b3I8djg6OlBlcnNpc3RlbnQ8djg6OlZhbHVlPiA+IHdyYXBwZXJzOworICAgICAgICBUZXh0VHJh
Y2tDdWVMaXN0KiBjdWVzID0gdGV4dFRyYWNrLT5jdWVzKCk7CisgICAgICAgIGlmIChjdWVzKSB7
CisgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgY3Vlcy0+bGVuZ3RoKCk7ICsr
aSkgeworICAgICAgICAgICAgICAgIFRleHRUcmFja0N1ZSogY3VlID0gY3Vlcy0+aXRlbShpKTsK
KyAgICAgICAgICAgICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBwZXIgPSBnZXRET01P
YmplY3RNYXAoKS5nZXQoY3VlKTsKKyAgICAgICAgICAgICAgICBpZiAoIXdyYXBwZXIuSXNFbXB0
eSgpKQorICAgICAgICAgICAgICAgICAgICB3cmFwcGVycy5hcHBlbmQod3JhcHBlcik7CisgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICghd3JhcHBlcnMuaXNFbXB0eSgpKQorICAgICAg
ICAgICAgICAgIHY4OjpWODo6QWRkSW1wbGljaXRSZWZlcmVuY2VzKHdyYXBwZXIsIHdyYXBwZXJz
LmRhdGEoKSwgd3JhcHBlcnMuc2l6ZSgpKTsKKyAgICAgICAgfQorCisgICAgICAgIGFwcGVuZFRv
R3JvdXBlckxpc3QobWVkaWFFbGVtZW50LCB3cmFwcGVyKTsKKyAgICB9CisjZW5kaWYKKworICAg
IHZvaWQgYXBwZW5kVG9Hcm91cGVyTGlzdChOb2RlKiBub2RlLCB2ODo6UGVyc2lzdGVudDx2ODo6
T2JqZWN0PiB3cmFwcGVyKQorICAgIHsKKyAgICAgICAgR3JvdXBJZCBncm91cElkID0gY2FsY3Vs
YXRlR3JvdXBJZChub2RlKTsKKyAgICAgICAgaWYgKCFncm91cElkKQorICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICBtX2dyb3VwZXIuYXBwZW5kKEdyb3VwZXJJdGVtKGdyb3VwSWQsIHdyYXBw
ZXIpKTsKKyAgICB9CisKICAgICBHcm91cGVyTGlzdCBtX2dyb3VwZXI7CiB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRUcmFjay5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1RleHRUcmFjay5pZGwKaW5kZXggMGFjMDFiNDM4OTI0NGY2M2I2YTc0NzI4ZDBmOWM1MTBl
Yjc3MWY3Mi4uZTJiYTU1YjQ1NDcxNmEwODI5MmFkMTllMTRjZmNhMDk2NGYwYzVlYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0VHJhY2suaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvVGV4dFRyYWNrLmlkbApAQCAtMzAsNyArMzAsOCBAQCBtb2R1bGUgaHRtbCB7CiAg
ICAgICAgIEVuYWJsZWRBdFJ1bnRpbWU9d2Via2l0VmlkZW9UcmFjaywKICAgICAgICAgRXZlbnRU
YXJnZXQsCiAgICAgICAgIEN1c3RvbU1hcmtGdW5jdGlvbiwKLSAgICAgICAgQ3VzdG9tSXNSZWFj
aGFibGUKKyAgICAgICAgQ3VzdG9tSXNSZWFjaGFibGUsCisgICAgICAgIFY4RGVwZW5kZW50TGlm
ZXRpbWUKICAgICBdIFRleHRUcmFjayB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01T
dHJpbmcga2luZDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBsYWJlbDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dFRyYWNrQ3VlLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvVGV4dFRyYWNrQ3VlLmlkbAppbmRleCA5MTNhOWJkNDQwYWFkYzU0YTI4
YjIzODBmMDcyMzljODM2ZGQ5MGJiLi5hMTNiYjA0MmQwZDg2MGY5ODAwNzMwNjZlNDA5YTMyZDA0
MzQ5M2ZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRUcmFja0N1ZS5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0VHJhY2tDdWUuaWRsCkBAIC0zMyw3ICszMyw4
IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4
dCwKICAgICAgICAgRXZlbnRUYXJnZXQsCiAgICAgICAgIEN1c3RvbU1hcmtGdW5jdGlvbiwKLSAg
ICAgICAgQ3VzdG9tSXNSZWFjaGFibGUKKyAgICAgICAgQ3VzdG9tSXNSZWFjaGFibGUsCisgICAg
ICAgIFY4RGVwZW5kZW50TGlmZXRpbWUKICAgICBdIFRleHRUcmFja0N1ZSB7CiAgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBUZXh0VHJhY2sgdHJhY2s7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjYzljZmM5MjdjNGI5
NzRmMDdhMzNiNjQzOWRkMTU2MzkwOWUxNmIzLi45MzE3MTRmZTc3M2NmMDg5NTc4YjA2ZTJmMWQw
ZTBjMTVhYzM2NDBkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTItMDItMDYgIEVyaWsgQXJ2
aWRzc29uICA8YXJ2QGNocm9taXVtLm9yZz4KKworICAgICAgICBWOCB3cmFwcGVycyBmb3IgVGV4
dFRyYWNrIGFuZCBUZXh0VHJhY2tDdWUgc2hvdWxkIG5vdCBiZSBjb2xsZWN0ZWQgb24gZXZlbnQg
ZGlzcGF0Y2ggYW5kIHdoZW4gcGFyZW50L293bmVyIGFyZSBzdGlsbCByZWFjaGFibGUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczODY1CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJv
bWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6CisKIDIwMTItMDEtMjcgIEtlbiBCdWNoYW5hbiAg
PGtlbnJiQGNocm9taXVtLm9yZz4KIAogICAgICAgICBDcmFzaCBpbiB1cGRhdGVGaXJzdExldHRl
cigpIGZyb20gdW5uZWNlc3NhcnkgYW5vbnltb3VzIGJsb2NrCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKaW5kZXggZjI2ZmFmNDY3
NDRkMDIzZmY2NjhkYzc5NDgxZTBlMWNiNWQ0ZmRjMi4uNzY5MzhmYzNjYzMyZTAzOGEwZDVmODEx
MTVhNzU0MGNhNWMxYmU3OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dApAQCAtMzU4NiwxMCArMzU4Niw2IEBAIEJVR19TRU5P
UkJMQU5DTyBHUFUgOiBmYXN0L2NhbnZhcy9jYW52YXMtdHJhbnNmb3Jtcy1maWxsUmVjdC1zaGFk
b3cuaHRtbCA9IFRFWFQKIAogQlVHV0s2Njk1MyA6IHRyYW5zaXRpb25zL2RlZmF1bHQtdGltaW5n
LWZ1bmN0aW9uLmh0bWwgPSBQQVNTIEZBSUwKIAotQlVHV0s3Mzg2NSA6IG1lZGlhL3RyYWNrL3Ry
YWNrbGlzdC1pcy1yZWFjaGFibGUuaHRtbCA9IFRFWFQgQ1JBU0gKLUJVR1dLNzM4NjUgOiBtZWRp
YS90cmFjay90ZXh0LXRyYWNrLWN1ZS1pcy1yZWFjaGFibGUuaHRtbCA9IFRFWFQgQ1JBU0gKLUJV
R1dLNzM4NjUgOiBtZWRpYS90cmFjay90ZXh0LXRyYWNrLWlzLXJlYWNoYWJsZS5odG1sID0gVEVY
VCBDUkFTSAotCiAvLyB1c2UgU2tpYSB0byBkcmF3IHZlcnRpY2FsIHRleHQgZGlyZWN0bHkgaW5z
dGVhZCBvZiB0ZXh0LW9uLXBhdGgKIEJVR19DQVJZQ0xBUksgTUFDIENQVSA6IGVkaXRpbmcvc2Vs
ZWN0aW9uL3ZlcnRpY2FsLWxyLWx0ci1leHRlbmQtbGluZS1iYWNrd2FyZC1ici5odG1sID0gSU1B
R0UKIEJVR19DQVJZQ0xBUksgTUFDIENQVSA6IGVkaXRpbmcvc2VsZWN0aW9uL3ZlcnRpY2FsLWxy
LWx0ci1leHRlbmQtbGluZS1mb3J3YXJkLWJyLmh0bWwgPSBJTUFHRQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125878</attachid>
            <date>2012-02-07 10:49:55 -0800</date>
            <delta_ts>2012-02-08 12:18:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73865-20120207104954.patch</filename>
            <type>text/plain</type>
            <size>14482</size>
            <attacher name="Erik Arvidsson">arv</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2OTU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWEzNGQ1YjE1OTc5ZWY0
YzA2NzFmMzE3NzEzNjQ5YWNmZDU2NGUyMC4uYmNlMzA4ZjZmY2NjMGVmZDIzY2EzMjczMjM4MmQ3
NGQzZjI5M2ZiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTAyLTA3ICBFcmlr
IEFydmlkc3NvbiAgPGFydkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVjggd3JhcHBlcnMgZm9y
IFRleHRUcmFjayBhbmQgVGV4dFRyYWNrQ3VlIHNob3VsZCBub3QgYmUgY29sbGVjdGVkIG9uIGV2
ZW50IGRpc3BhdGNoIGFuZCB3aGVuIHBhcmVudC9vd25lciBhcmUgc3RpbGwgcmVhY2hhYmxlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzg2NQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzcGVjaWFs
IGhhbmRsaW5nIGZvciBIVE1MTWVkaWFFbGVtZW50IGFuZCBUZXh0VHJhY2sgdG8gYWRkIGltcGxp
Y2l0IHJlZmVyZW5jZXMgdG8gdGhlIGl0ZW1zIGluIHRoZQorICAgICAgICB0ZXh0VHJhY2tzIGFu
ZCBjdWVzIGNvbGxlY3Rpb25zIHJlc3BlY3RpdmVseS4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4
aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBVc2VWOC5j
bWFrZToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9yVjgucG06CisgICAgICAgIChIYXNDdXN0b21Ub1Y4SW1wbGVtZW50YXRp
b24pOiBOZWVkcyBjdXN0b20gdG9WOCBmb3IgVGV4dFRyYWNrTGlzdCB0byBhZGQgcmVmZXJlbmNl
IGZyb20gdGhlIEhUTUxNZWRpYUVsZW1lbnQgdG8gdGhlIFRleHRUcmFja0xpc3QuCisgICAgICAg
ICogYmluZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3Jv
dXBlclZpc2l0b3I6OnZpc2l0RE9NV3JhcHBlcik6CisgICAgICAgIChHcm91cGVyVmlzaXRvcik6
CisgICAgICAgIChXZWJDb3JlOjpHcm91cGVyVmlzaXRvcjo6YXBwZW5kVG9Hcm91cGVyTGlzdCk6
IEV4dHJhY3RlZCBpbnRvIGEgbWV0aG9kLgorICAgICAgICAqIGh0bWwvVGV4dFRyYWNrLmlkbDoK
KyAgICAgICAgKiBodG1sL1RleHRUcmFja0N1ZS5pZGw6CisKIDIwMTItMDItMDcgIFBldGVyIFJ5
YmluICA8cGV0ZXIucnliaW5AZ21haWwuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IENv
ZGVHZW5lcmF0b3JJbnNwZWN0b3IucHk6IGV4dGVuZCBBcnJheSB2YWxpZGF0b3IgZnVuY3Rpb25h
bGl0eQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJD
b3JlL1RhcmdldC5wcmkKaW5kZXggZDM0YzZkOTc4NTQ1MWE4NzFkNjdhYjVmY2VkYTAwODM1NmU2
NDA0Zi4uZjM2OGNjOGE2ZDAyYzYxMWNjZjM2YjdlMGFmYmE5ZDU4OTg5OGFhYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQu
cHJpCkBAIC0yMDcsNiArMjA3LDcgQEAgdjggewogICAgICAgICBiaW5kaW5ncy92OC9jdXN0b20v
VjhTdG9yYWdlQ3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFN0eWxl
U2hlZXRDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4U3R5bGVTaGVl
dExpc3RDdXN0b20uY3BwIFwKKyAgICAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4VGV4dFRyYWNr
TGlzdEN1c3RvbS5jcHAgXAogICAgICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhXZWJLaXRBbmlt
YXRpb25DdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViS2l0TXV0
YXRpb25PYnNlcnZlckN1c3RvbS5jcHAgXAogICAgICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhX
ZWJLaXRQb2ludENvbnN0cnVjdG9yLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9V
c2VWOC5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1VzZVY4LmNtYWtlCmluZGV4IDEwODVkYmJlMjFm
NjVjYTJlODIxNDI3NDEyNzAzYTQwMjJhMGRmZDAuLmExYmEwMGM1OTUwODE1MDZmOTdmYTIwZGEx
YjUyOTc3ZTdlYzNhNTcgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1VzZVY4LmNtYWtlCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1VzZVY4LmNtYWtlCkBAIC0xNDMsNiArMTQzLDcgQEAgTElTVChB
UFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4U3RvcmFnZUN1
c3RvbS5jcHAKICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhTdHlsZVNoZWV0Q3VzdG9tLmNwcAog
ICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFN0eWxlU2hlZXRMaXN0Q3VzdG9tLmNwcAorICAgIGJp
bmRpbmdzL3Y4L2N1c3RvbS9WOFRleHRUcmFja0xpc3RDdXN0b20uY3BwCiAgICAgYmluZGluZ3Mv
djgvY3VzdG9tL1Y4VWludDE2QXJyYXlDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvdjgvY3VzdG9t
L1Y4VWludDMyQXJyYXlDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4VWludDhB
cnJheUN1c3RvbS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCAwN2EzNDBmOGI2MmZmMTQxZWE3YmZk
NTQ3Mzk3NTE3Njk1Y2U2MzM0Li5mOWYzNTNhM2EyM2Q1YTc2MDYxMWVjNDYxMzZhYTQxZmVhY2E5
MzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0xODg5LDYgKzE4ODksNyBAQAogICAgICAgICAgICAg
J2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFN0b3JhZ2VDdXN0b20uY3BwJywKICAgICAgICAgICAgICdi
aW5kaW5ncy92OC9jdXN0b20vVjhTdHlsZVNoZWV0Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAn
YmluZGluZ3MvdjgvY3VzdG9tL1Y4U3R5bGVTaGVldExpc3RDdXN0b20uY3BwJywKKyAgICAgICAg
ICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhUZXh0VHJhY2tMaXN0Q3VzdG9tLmNwcCcsCiAgICAg
ICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4VHJhY2tFdmVudEN1c3RvbS5jcHAnLAogICAg
ICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFVpbnQxNkFycmF5Q3VzdG9tLmNwcCcsCiAg
ICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4VWludDMyQXJyYXlDdXN0b20uY3BwJywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
clY4LnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgu
cG0KaW5kZXggYWUyNmE3NDFjYmZjMmEzNGRkMjMzMTdiZmQzYzA4YWE3ZGE1NWY5MC4uNjMzZTE0
NGQ4ZWEyYzdmMDhlY2NhNWEzZjM3OWIyODk3NTY1NTY3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KQEAgLTMxMzAsNiArMzEz
MCw3IEBAIHN1YiBIYXNDdXN0b21Ub1Y4SW1wbGVtZW50YXRpb24gewogICAgIHJldHVybiAxIGlm
ICRpbnRlcmZhY2VOYW1lIGVxICJTVkdFbGVtZW50IjsKICAgICByZXR1cm4gMSBpZiAkaW50ZXJm
YWNlTmFtZSBlcSAiU2NyaXB0UHJvZmlsZSI7CiAgICAgcmV0dXJuIDEgaWYgJGludGVyZmFjZU5h
bWUgZXEgIlNjcmlwdFByb2ZpbGVOb2RlIjsKKyAgICByZXR1cm4gMSBpZiAkaW50ZXJmYWNlTmFt
ZSBlcSAiVGV4dFRyYWNrTGlzdCI7CiAgICAgcmV0dXJuIDEgaWYgJGludGVyZmFjZU5hbWUgZXEg
IldvcmtlckNvbnRleHQiOwogICAgICMgV2UgZG9uJ3QgZ2VuZXJhdGUgYSBjdXN0b20gY29udmVy
dGVyIChidXQgSlNDIGRvZXMpIGZvciB0aGUgZm9sbG93aW5nOgogICAgIHJldHVybiAwIGlmICRp
bnRlcmZhY2VOYW1lIGVxICJBYnN0cmFjdFdvcmtlciI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9WOEdDQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9WOEdDQ29udHJvbGxlci5jcHAKaW5kZXggODI2ZWIzYTk0NTJkNGQwODQwOWE5N2I2
YzVhZGIxN2Q3NWE1ZDk2NS4uYTRhNTEwM2Y2Y2UzNjFhZGUyOGM0MWU2NGVlMTQ5ODQyMjRkNjk4
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4R0NDb250cm9sbGVyLmNwcApA
QCAtMzUsMTIgKzM1LDE3IEBACiAjaW5jbHVkZSAiQXR0ci5oIgogI2luY2x1ZGUgIkRPTURhdGFT
dG9yZS5oIgogI2luY2x1ZGUgIkRPTUltcGxlbWVudGF0aW9uLmgiCisjaW5jbHVkZSAiRWxlbWVu
dC5oIgogI2luY2x1ZGUgIkhUTUxJbWFnZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTWVkaWFF
bGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVBvcnQu
aCIKICNpbmNsdWRlICJQbGF0Zm9ybVN1cHBvcnQuaCIKICNpbmNsdWRlICJSZXRhaW5lZERPTUlu
Zm8uaCIKICNpbmNsdWRlICJSZXRhaW5lZE9iamVjdEluZm8uaCIKKyNpbmNsdWRlICJUZXh0VHJh
Y2suaCIKKyNpbmNsdWRlICJUZXh0VHJhY2tDdWVMaXN0LmgiCisjaW5jbHVkZSAiVGV4dFRyYWNr
TGlzdC5oIgogI2luY2x1ZGUgIlY4QmluZGluZy5oIgogI2luY2x1ZGUgIlY4Q1NTUnVsZS5oIgog
I2luY2x1ZGUgIlY4Q1NTUnVsZUxpc3QuaCIKQEAgLTQ5LDYgKzU0LDkgQEAKICNpbmNsdWRlICJW
OE1lc3NhZ2VQb3J0LmgiCiAjaW5jbHVkZSAiVjhTdHlsZVNoZWV0LmgiCiAjaW5jbHVkZSAiVjhT
dHlsZVNoZWV0TGlzdC5oIgorI2luY2x1ZGUgIlY4VGV4dFRyYWNrLmgiCisjaW5jbHVkZSAiVjhU
ZXh0VHJhY2tDdWVMaXN0LmgiCisjaW5jbHVkZSAiVjhUZXh0VHJhY2tMaXN0LmgiCiAjaW5jbHVk
ZSAiV3JhcHBlclR5cGVJbmZvLmgiCiAKICNpbmNsdWRlIDxhbGdvcml0aG0+CkBAIC0zMTQsNyAr
MzIyLDcgQEAgcHVibGljOgogICAgIHZvaWQgdmlzaXRET01XcmFwcGVyKERPTURhdGFTdG9yZSog
c3RvcmUsIE5vZGUqIG5vZGUsIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IHdyYXBwZXIpCiAg
ICAgewogICAgICAgICBpZiAobm9kZS0+aGFzRXZlbnRMaXN0ZW5lcnMoKSkgewotICAgICAgICAg
ICAgVmVjdG9yPHY4OjpQZXJzaXN0ZW50PHY4OjpWYWx1ZT4gPiBsaXN0ZW5lcnM7CisgICAgICAg
ICAgICBWZWN0b3I8djg6OlBlcnNpc3RlbnQ8djg6OlZhbHVlPiA+IHdyYXBwZXJzOwogICAgICAg
ICAgICAgRXZlbnRMaXN0ZW5lckl0ZXJhdG9yIGl0ZXJhdG9yKG5vZGUpOwogICAgICAgICAgICAg
d2hpbGUgKEV2ZW50TGlzdGVuZXIqIGxpc3RlbmVyID0gaXRlcmF0b3IubmV4dExpc3RlbmVyKCkp
IHsKICAgICAgICAgICAgICAgICBpZiAobGlzdGVuZXItPnR5cGUoKSAhPSBFdmVudExpc3RlbmVy
OjpKU0V2ZW50TGlzdGVuZXJUeXBlKQpAQCAtMzIyLDIwICszMzAsNDAgQEAgcHVibGljOgogICAg
ICAgICAgICAgICAgIFY4QWJzdHJhY3RFdmVudExpc3RlbmVyKiB2OGxpc3RlbmVyID0gc3RhdGlj
X2Nhc3Q8VjhBYnN0cmFjdEV2ZW50TGlzdGVuZXIqPihsaXN0ZW5lcik7CiAgICAgICAgICAgICAg
ICAgaWYgKCF2OGxpc3RlbmVyLT5oYXNFeGlzdGluZ0xpc3RlbmVyT2JqZWN0KCkpCiAgICAgICAg
ICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgIGxpc3RlbmVycy5hcHBlbmQo
djhsaXN0ZW5lci0+ZXhpc3RpbmdMaXN0ZW5lck9iamVjdFBlcnNpc3RlbnRIYW5kbGUoKSk7Cisg
ICAgICAgICAgICAgICAgd3JhcHBlcnMuYXBwZW5kKHY4bGlzdGVuZXItPmV4aXN0aW5nTGlzdGVu
ZXJPYmplY3RQZXJzaXN0ZW50SGFuZGxlKCkpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAg
aWYgKCFsaXN0ZW5lcnMuaXNFbXB0eSgpKQotICAgICAgICAgICAgICAgIHY4OjpWODo6QWRkSW1w
bGljaXRSZWZlcmVuY2VzKHdyYXBwZXIsIGxpc3RlbmVycy5kYXRhKCksIGxpc3RlbmVycy5zaXpl
KCkpOworICAgICAgICAgICAgaWYgKCF3cmFwcGVycy5pc0VtcHR5KCkpCisgICAgICAgICAgICAg
ICAgdjg6OlY4OjpBZGRJbXBsaWNpdFJlZmVyZW5jZXMod3JhcHBlciwgd3JhcHBlcnMuZGF0YSgp
LCB3cmFwcGVycy5zaXplKCkpOwogICAgICAgICB9CiAKLSAgICAgICAgR3JvdXBJZCBncm91cElk
ID0gY2FsY3VsYXRlR3JvdXBJZChub2RlKTsKLSAgICAgICAgaWYgKCFncm91cElkKQotICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICBtX2dyb3VwZXIuYXBwZW5kKEdyb3VwZXJJdGVtKGdyb3Vw
SWQsIHdyYXBwZXIpKTsKKyNpZiBFTkFCTEUoVklERU9fVFJBQ0spCisgICAgICAgIGlmIChub2Rl
LT5pc0VsZW1lbnROb2RlKCkgJiYgc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG5vZGUpLT5pc01lZGlh
RWxlbWVudCgpKSB7CisgICAgICAgICAgICBIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQg
PSBzdGF0aWNfY2FzdDxIVE1MTWVkaWFFbGVtZW50Kj4obm9kZSk7CisgICAgICAgICAgICBUZXh0
VHJhY2tMaXN0KiB0ZXh0VHJhY2tMaXN0ID0gbWVkaWFFbGVtZW50LT50ZXh0VHJhY2tzKCk7CisK
KyAgICAgICAgICAgIFZlY3Rvcjx2ODo6UGVyc2lzdGVudDx2ODo6VmFsdWU+ID4gd3JhcHBlcnM7
CisgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgdGV4dFRyYWNrTGlzdC0+bGVu
Z3RoKCk7ICsraSkgeworICAgICAgICAgICAgICAgIFRleHRUcmFjayogdGV4dFRyYWNrID0gdGV4
dFRyYWNrTGlzdC0+aXRlbShpKTsKKyAgICAgICAgICAgICAgICB2ODo6UGVyc2lzdGVudDx2ODo6
T2JqZWN0PiB3cmFwcGVyID0gZ2V0RE9NT2JqZWN0TWFwKCkuZ2V0KHRleHRUcmFjayk7CisgICAg
ICAgICAgICAgICAgaWYgKCF3cmFwcGVyLklzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICAgICAg
d3JhcHBlcnMuYXBwZW5kKHdyYXBwZXIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBp
ZiAoIXdyYXBwZXJzLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICB2ODo6Vjg6OkFkZEltcGxp
Y2l0UmVmZXJlbmNlcyh3cmFwcGVyLCB3cmFwcGVycy5kYXRhKCksIHdyYXBwZXJzLnNpemUoKSk7
CisgICAgICAgIH0KKyNlbmRpZgorCisgICAgICAgIGFwcGVuZFRvR3JvdXBlckxpc3Qobm9kZSwg
d3JhcHBlcik7CiAgICAgfQogCiAgICAgdm9pZCB2aXNpdERPTVdyYXBwZXIoRE9NRGF0YVN0b3Jl
KiBzdG9yZSwgdm9pZCogb2JqZWN0LCB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiB3cmFwcGVy
KQogICAgIHsKKyNpZiBFTkFCTEUoVklERU9fVFJBQ0spCisgICAgICAgIFdyYXBwZXJUeXBlSW5m
byogdHlwZSA9IFY4RE9NV3JhcHBlcjo6ZG9tV3JhcHBlclR5cGUod3JhcHBlcik7CisgICAgICAg
IGlmICh0eXBlID09ICZWOFRleHRUcmFjazo6aW5mbykKKyAgICAgICAgICAgIHZpc2l0RE9NV3Jh
cHBlcihzdG9yZSwgc3RhdGljX2Nhc3Q8VGV4dFRyYWNrKj4ob2JqZWN0KSwgd3JhcHBlcik7Cisj
ZW5kaWYKICAgICB9CiAKICAgICB2b2lkIGFwcGx5R3JvdXBpbmcoKQpAQCAtMzgwLDYgKzQwOCw0
MCBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgorCisjaWYgRU5BQkxFKFZJREVPX1RSQUNL
KQorICAgIHZvaWQgdmlzaXRET01XcmFwcGVyKERPTURhdGFTdG9yZSogc3RvcmUsIFRleHRUcmFj
ayogdGV4dFRyYWNrLCB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiB3cmFwcGVyKQorICAgIHsK
KyAgICAgICAgSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVtZW50ID0gdGV4dFRyYWNrLT5tZWRp
YUVsZW1lbnQoKTsKKyAgICAgICAgaWYgKCFtZWRpYUVsZW1lbnQpCisgICAgICAgICAgICByZXR1
cm47CisKKyAgICAgICAgVmVjdG9yPHY4OjpQZXJzaXN0ZW50PHY4OjpWYWx1ZT4gPiB3cmFwcGVy
czsKKyAgICAgICAgVGV4dFRyYWNrQ3VlTGlzdCogY3VlcyA9IHRleHRUcmFjay0+Y3VlcygpOwor
ICAgICAgICBpZiAoY3VlcykgeworICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IGN1ZXMtPmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgICAgICBUZXh0VHJhY2tDdWUqIGN1
ZSA9IGN1ZXMtPml0ZW0oaSk7CisgICAgICAgICAgICAgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0
PiB3cmFwcGVyID0gZ2V0RE9NT2JqZWN0TWFwKCkuZ2V0KGN1ZSk7CisgICAgICAgICAgICAgICAg
aWYgKCF3cmFwcGVyLklzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICAgICAgd3JhcHBlcnMuYXBw
ZW5kKHdyYXBwZXIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoIXdyYXBwZXJz
LmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICB2ODo6Vjg6OkFkZEltcGxpY2l0UmVmZXJlbmNl
cyh3cmFwcGVyLCB3cmFwcGVycy5kYXRhKCksIHdyYXBwZXJzLnNpemUoKSk7CisgICAgICAgIH0K
KworICAgICAgICBhcHBlbmRUb0dyb3VwZXJMaXN0KG1lZGlhRWxlbWVudCwgd3JhcHBlcik7Cisg
ICAgfQorI2VuZGlmCisKKyAgICB2b2lkIGFwcGVuZFRvR3JvdXBlckxpc3QoTm9kZSogbm9kZSwg
djg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gd3JhcHBlcikKKyAgICB7CisgICAgICAgIEdyb3Vw
SWQgZ3JvdXBJZCA9IGNhbGN1bGF0ZUdyb3VwSWQobm9kZSk7CisgICAgICAgIGlmICghZ3JvdXBJ
ZCkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgbV9ncm91cGVyLmFwcGVuZChHcm91cGVy
SXRlbShncm91cElkLCB3cmFwcGVyKSk7CisgICAgfQorCiAgICAgR3JvdXBlckxpc3QgbV9ncm91
cGVyOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9t
L1Y4VGV4dFRyYWNrTGlzdEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9j
dXN0b20vVjhUZXh0VHJhY2tMaXN0Q3VzdG9tLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNTU2MjM0NzQyYTEw
OTM4N2U1MTNiMjIzNmFmZWUxZjA4MjlkZTRiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4VGV4dFRyYWNrTGlzdEN1c3RvbS5jcHAKQEAgLTAs
MCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0
OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
CisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJWOFRleHRUcmFja0xpc3Qu
aCIKKworI2luY2x1ZGUgIkhUTUxNZWRpYUVsZW1lbnQuaCIKKyNpbmNsdWRlICJUZXh0VHJhY2tM
aXN0LmgiCisjaW5jbHVkZSAiVjhET01XcmFwcGVyLmgiCisjaW5jbHVkZSAiVjhIVE1MTWVkaWFF
bGVtZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordjg6OkhhbmRsZTx2ODo6VmFsdWU+
IHRvVjgoVGV4dFRyYWNrTGlzdCogaW1wbCkKK3sKKyAgICBpZiAoIWltcGwpCisgICAgICAgIHJl
dHVybiB2ODo6TnVsbCgpOworICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IFY4
VGV4dFRyYWNrTGlzdDo6d3JhcChpbXBsKTsKKworICAgIC8vIEFkZCBhIGhpZGRlbiByZWZlcmVu
Y2UgZnJvbSB0aGUgbWVkaWEgZWxlbWVudCB0byB0aGUgdGV4dCB0cmFjayBsaXN0LgorICAgIEhU
TUxNZWRpYUVsZW1lbnQqIGVsZW1lbnQgPSBpbXBsLT5vd25lcigpOworICAgIGlmICghd3JhcHBl
ci5Jc0VtcHR5KCkgJiYgZWxlbWVudCkgeworICAgICAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
ZWxlbWVudFZhbHVlID0gdG9WOChlbGVtZW50KTsKKyAgICAgICAgaWYgKCFlbGVtZW50VmFsdWUu
SXNFbXB0eSgpICYmIGVsZW1lbnRWYWx1ZS0+SXNPYmplY3QoKSkKKyAgICAgICAgICAgIFY4RE9N
V3JhcHBlcjo6c2V0TmFtZWRIaWRkZW5SZWZlcmVuY2UoZWxlbWVudFZhbHVlLkFzPHY4OjpPYmpl
Y3Q+KCksICJ0ZXh0VHJhY2tzIiwgd3JhcHBlcik7CisgICAgfQorICAgIHJldHVybiB3cmFwcGVy
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1RleHRUcmFjay5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRUcmFjay5pZGwK
aW5kZXggODQ1YTgwYzAxOTRiYmI1MDU1OGRhODIyOTNlNDY5YjFkZTI1YWU1YS4uYTQ4Mzk2ZTIw
Mjg3OTk2MTliOTFmMDA4ZjIwMzMzNWJlZjZhZjA1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9UZXh0VHJhY2suaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dFRyYWNr
LmlkbApAQCAtMzAsNyArMzAsOCBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIFY4RW5hYmxlZEF0
UnVudGltZT13ZWJraXRWaWRlb1RyYWNrLAogICAgICAgICBFdmVudFRhcmdldCwKICAgICAgICAg
SlNDdXN0b21NYXJrRnVuY3Rpb24sCi0gICAgICAgIEpTQ3VzdG9tSXNSZWFjaGFibGUKKyAgICAg
ICAgSlNDdXN0b21Jc1JlYWNoYWJsZSwKKyAgICAgICAgVjhEZXBlbmRlbnRMaWZldGltZQogICAg
IF0gVGV4dFRyYWNrIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBraW5k
OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGxhYmVsOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0VHJhY2tDdWUuaWRsIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9UZXh0VHJhY2tDdWUuaWRsCmluZGV4IGZjNmM1OTFlMzFjMTNlMzM0MTY0ODBhMGE5N2Vk
ZThkZGM2ODY1YzMuLmI5ZmRmMjBjYjY1ZmQwNTg1ZDQxZmNlMzliNGRmY2FlMDc5OGJjYjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dFRyYWNrQ3VlLmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1RleHRUcmFja0N1ZS5pZGwKQEAgLTMzLDcgKzMzLDggQEAgbW9kdWxl
IGh0bWwgewogICAgICAgICBDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LAogICAgICAg
ICBFdmVudFRhcmdldCwKICAgICAgICAgSlNDdXN0b21NYXJrRnVuY3Rpb24sCi0gICAgICAgIEpT
Q3VzdG9tSXNSZWFjaGFibGUKKyAgICAgICAgSlNDdXN0b21Jc1JlYWNoYWJsZSwKKyAgICAgICAg
VjhEZXBlbmRlbnRMaWZldGltZQogICAgIF0gVGV4dFRyYWNrQ3VlIHsKICAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIFRleHRUcmFjayB0cmFjazsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDk0N2RhYTNiOTNiYzhlNzFi
NjYxOGY2MmUyZmFmYWJmYmQ5MTc0MGIuLjg4NjM5ZWY5ZjJiMThmMmMwOTRlN2ZhYTMxM2JlOGM0
ZjU4MGY3YWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMi0wMi0wNyAgRXJpayBBcnZpZHNz
b24gIDxhcnZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFY4IHdyYXBwZXJzIGZvciBUZXh0VHJh
Y2sgYW5kIFRleHRUcmFja0N1ZSBzaG91bGQgbm90IGJlIGNvbGxlY3RlZCBvbiBldmVudCBkaXNw
YXRjaCBhbmQgd2hlbiBwYXJlbnQvb3duZXIgYXJlIHN0aWxsIHJlYWNoYWJsZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM4NjUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVt
L3Rlc3RfZXhwZWN0YXRpb25zLnR4dDoKKwogMjAxMi0wMi0wNyAgSnVsaWVuIENoYWZmcmFpeCAg
PGpjaGFmZnJhaXhAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIGdhcmRlbmluZy4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRp
b25zLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25z
LnR4dAppbmRleCAyMjcxZjIxN2RhMTI2MTc0NWNlY2RhY2NlZjA2NmE5NzExZTQzZDE1Li5kNWZh
MThhYjIzMWY0NGZkOGRmMDRhZDAzNjI5YTEwYTM3MmY2ZDhkIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CkBAIC0zNTM2LDEw
ICszNTM2LDYgQEAgQlVHX1NFTk9SQkxBTkNPIEdQVSA6IGZhc3QvY2FudmFzL2NhbnZhcy10cmFu
c2Zvcm1zLWZpbGxSZWN0LXNoYWRvdy5odG1sID0gVEVYVAogCiBCVUdXSzY2OTUzIDogdHJhbnNp
dGlvbnMvZGVmYXVsdC10aW1pbmctZnVuY3Rpb24uaHRtbCA9IFBBU1MgRkFJTAogCi1CVUdXSzcz
ODY1IDogbWVkaWEvdHJhY2svdHJhY2tsaXN0LWlzLXJlYWNoYWJsZS5odG1sID0gVEVYVCBDUkFT
SAotQlVHV0s3Mzg2NSA6IG1lZGlhL3RyYWNrL3RleHQtdHJhY2stY3VlLWlzLXJlYWNoYWJsZS5o
dG1sID0gVEVYVCBDUkFTSAotQlVHV0s3Mzg2NSA6IG1lZGlhL3RyYWNrL3RleHQtdHJhY2staXMt
cmVhY2hhYmxlLmh0bWwgPSBURVhUIENSQVNICi0KIC8vIHVzZSBTa2lhIHRvIGRyYXcgdmVydGlj
YWwgdGV4dCBkaXJlY3RseSBpbnN0ZWFkIG9mIHRleHQtb24tcGF0aAogQlVHX0NBUllDTEFSSyBN
QUMgQ1BVIDogZWRpdGluZy9zZWxlY3Rpb24vdmVydGljYWwtbHItbHRyLWV4dGVuZC1saW5lLWJh
Y2t3YXJkLWJyLmh0bWwgPSBJTUFHRQogQlVHX0NBUllDTEFSSyBNQUMgQ1BVIDogZWRpdGluZy9z
ZWxlY3Rpb24vdmVydGljYWwtbHItbHRyLWV4dGVuZC1saW5lLWZvcndhcmQtYnIuaHRtbCA9IElN
QUdFCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126133</attachid>
            <date>2012-02-08 12:19:02 -0800</date>
            <delta_ts>2012-10-24 12:58:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73865-20120208121906.patch</filename>
            <type>text/plain</type>
            <size>8980</size>
            <attacher name="Erik Arvidsson">arv</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3MTAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjU0ZDE2OTRiMWM3NjY0
YzljZWUzYWYzYTA4ZjczOGMwNWQxMzM3ZS4uYThlYWNhNTgwZGQyZGY3MDE0ZTU3MTg4Nzg4MmUw
NzQyZjY2NDVmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTAyLTA4ICBFcmlr
IEFydmlkc3NvbiAgPGFydkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVjggd3JhcHBlcnMgZm9y
IFRleHRUcmFjayBhbmQgVGV4dFRyYWNrQ3VlIHNob3VsZCBub3QgYmUgY29sbGVjdGVkIG9uIGV2
ZW50IGRpc3BhdGNoIGFuZCB3aGVuIHBhcmVudC9vd25lciBhcmUgc3RpbGwgcmVhY2hhYmxlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzg2NQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgYWRkcyBp
bXBsaWNpdCByZWZlcmVuY2VzIGZyb20gdGhlIFRleHRUcmFja0xpc3QgdG8gaXRzIFRleHRUcmFj
ayBvYmplY3RzIGFzIHdlbGwgYXMgaW1wbGljaXQgcmVmZXJlbmNlcyBmcm9tIHRoZQorICAgICAg
ICBUZXh0VHJhY2tDdWVMaXN0IHRvIGl0cyBUZXh0VHJhY2tDdWUgb2JqZWN0cy4KKworICAgICAg
ICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogYmluZGluZ3MvdjgvVjhH
Q0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JvdXBlclZpc2l0b3I6OnZpc2l0
RE9NV3JhcHBlcik6CisgICAgICAgIChHcm91cGVyVmlzaXRvcik6CisgICAgICAgIChXZWJDb3Jl
OjpHcm91cGVyVmlzaXRvcjo6dmlzaXRMaXN0RE9NV3JhcHBlcik6IEFkZHMgaW1wbGljaXQgcmVm
ZXJlbmNlcyBmcm9tIGEgbGlzdCB0byBhbGwgaXRlbXMgaW4gdGhlIGxpc3QuCisgICAgICAgICog
aHRtbC9UZXh0VHJhY2suaWRsOgorICAgICAgICAqIGh0bWwvVGV4dFRyYWNrQ3VlLmlkbDoKKyAg
ICAgICAgKiBodG1sL1RleHRUcmFja0N1ZUxpc3QuaWRsOgorICAgICAgICAqIGh0bWwvdHJhY2sv
VGV4dFRyYWNrTGlzdC5pZGw6CisKIDIwMTItMDItMDggIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVy
c2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggYXNzZXJ0aW9uIGluIHN2Zy9kb20vU1ZHU3R5
bGVkRWxlbWVudC1wZW5kaW5nUmVzb3VyY2UtY3Jhc2guaHRtbApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIuY3BwCmluZGV4IDgyNmViM2E5NDUyZDRkMDg0MDlh
OTdiNmM1YWRiMTdkNzVhNWQ5NjUuLmYyMzFmMmVmYWVmZDcyZDZmMDA3NzBmZWU1OGUwNWIxYjM0
MTE0ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4R0NDb250cm9s
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEdDQ29udHJvbGxlci5j
cHAKQEAgLTM1LDEyICszNSwxOCBAQAogI2luY2x1ZGUgIkF0dHIuaCIKICNpbmNsdWRlICJET01E
YXRhU3RvcmUuaCIKICNpbmNsdWRlICJET01JbXBsZW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgIkVs
ZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MSW1hZ2VFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE1l
ZGlhRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIk1lc3NhZ2VQ
b3J0LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdXBwb3J0LmgiCiAjaW5jbHVkZSAiUmV0YWluZWRE
T01JbmZvLmgiCiAjaW5jbHVkZSAiUmV0YWluZWRPYmplY3RJbmZvLmgiCisjaW5jbHVkZSAiVGV4
dFRyYWNrLmgiCisjaW5jbHVkZSAiVGV4dFRyYWNrQ3VlLmgiCisjaW5jbHVkZSAiVGV4dFRyYWNr
Q3VlTGlzdC5oIgorI2luY2x1ZGUgIlRleHRUcmFja0xpc3QuaCIKICNpbmNsdWRlICJWOEJpbmRp
bmcuaCIKICNpbmNsdWRlICJWOENTU1J1bGUuaCIKICNpbmNsdWRlICJWOENTU1J1bGVMaXN0Lmgi
CkBAIC00OSw2ICs1NSwxMCBAQAogI2luY2x1ZGUgIlY4TWVzc2FnZVBvcnQuaCIKICNpbmNsdWRl
ICJWOFN0eWxlU2hlZXQuaCIKICNpbmNsdWRlICJWOFN0eWxlU2hlZXRMaXN0LmgiCisjaW5jbHVk
ZSAiVjhUZXh0VHJhY2suaCIKKyNpbmNsdWRlICJWOFRleHRUcmFja0N1ZS5oIgorI2luY2x1ZGUg
IlY4VGV4dFRyYWNrQ3VlTGlzdC5oIgorI2luY2x1ZGUgIlY4VGV4dFRyYWNrTGlzdC5oIgogI2lu
Y2x1ZGUgIldyYXBwZXJUeXBlSW5mby5oIgogCiAjaW5jbHVkZSA8YWxnb3JpdGhtPgpAQCAtMzE0
LDcgKzMyNCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHZpc2l0RE9NV3JhcHBlcihET01EYXRhU3Rv
cmUqIHN0b3JlLCBOb2RlKiBub2RlLCB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiB3cmFwcGVy
KQogICAgIHsKICAgICAgICAgaWYgKG5vZGUtPmhhc0V2ZW50TGlzdGVuZXJzKCkpIHsKLSAgICAg
ICAgICAgIFZlY3Rvcjx2ODo6UGVyc2lzdGVudDx2ODo6VmFsdWU+ID4gbGlzdGVuZXJzOworICAg
ICAgICAgICAgVmVjdG9yPHY4OjpQZXJzaXN0ZW50PHY4OjpWYWx1ZT4gPiB3cmFwcGVyczsKICAg
ICAgICAgICAgIEV2ZW50TGlzdGVuZXJJdGVyYXRvciBpdGVyYXRvcihub2RlKTsKICAgICAgICAg
ICAgIHdoaWxlIChFdmVudExpc3RlbmVyKiBsaXN0ZW5lciA9IGl0ZXJhdG9yLm5leHRMaXN0ZW5l
cigpKSB7CiAgICAgICAgICAgICAgICAgaWYgKGxpc3RlbmVyLT50eXBlKCkgIT0gRXZlbnRMaXN0
ZW5lcjo6SlNFdmVudExpc3RlbmVyVHlwZSkKQEAgLTMyMiwxMCArMzMyLDEwIEBAIHB1YmxpYzoK
ICAgICAgICAgICAgICAgICBWOEFic3RyYWN0RXZlbnRMaXN0ZW5lciogdjhsaXN0ZW5lciA9IHN0
YXRpY19jYXN0PFY4QWJzdHJhY3RFdmVudExpc3RlbmVyKj4obGlzdGVuZXIpOwogICAgICAgICAg
ICAgICAgIGlmICghdjhsaXN0ZW5lci0+aGFzRXhpc3RpbmdMaXN0ZW5lck9iamVjdCgpKQogICAg
ICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICBsaXN0ZW5lcnMuYXBw
ZW5kKHY4bGlzdGVuZXItPmV4aXN0aW5nTGlzdGVuZXJPYmplY3RQZXJzaXN0ZW50SGFuZGxlKCkp
OworICAgICAgICAgICAgICAgIHdyYXBwZXJzLmFwcGVuZCh2OGxpc3RlbmVyLT5leGlzdGluZ0xp
c3RlbmVyT2JqZWN0UGVyc2lzdGVudEhhbmRsZSgpKTsKICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIGlmICghbGlzdGVuZXJzLmlzRW1wdHkoKSkKLSAgICAgICAgICAgICAgICB2ODo6Vjg6OkFk
ZEltcGxpY2l0UmVmZXJlbmNlcyh3cmFwcGVyLCBsaXN0ZW5lcnMuZGF0YSgpLCBsaXN0ZW5lcnMu
c2l6ZSgpKTsKKyAgICAgICAgICAgIGlmICghd3JhcHBlcnMuaXNFbXB0eSgpKQorICAgICAgICAg
ICAgICAgIHY4OjpWODo6QWRkSW1wbGljaXRSZWZlcmVuY2VzKHdyYXBwZXIsIHdyYXBwZXJzLmRh
dGEoKSwgd3JhcHBlcnMuc2l6ZSgpKTsKICAgICAgICAgfQogCiAgICAgICAgIEdyb3VwSWQgZ3Jv
dXBJZCA9IGNhbGN1bGF0ZUdyb3VwSWQobm9kZSk7CkBAIC0zMzYsNiArMzQ2LDEzIEBAIHB1Ymxp
YzoKIAogICAgIHZvaWQgdmlzaXRET01XcmFwcGVyKERPTURhdGFTdG9yZSogc3RvcmUsIHZvaWQq
IG9iamVjdCwgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gd3JhcHBlcikKICAgICB7CisjaWYg
RU5BQkxFKFZJREVPX1RSQUNLKQorICAgICAgICBXcmFwcGVyVHlwZUluZm8qIHR5cGUgPSBWOERP
TVdyYXBwZXI6OmRvbVdyYXBwZXJUeXBlKHdyYXBwZXIpOworICAgICAgICBpZiAodHlwZSA9PSAm
VjhUZXh0VHJhY2tDdWVMaXN0OjppbmZvKQorICAgICAgICAgICAgdmlzaXRMaXN0RE9NV3JhcHBl
cjxUZXh0VHJhY2tDdWVMaXN0LCBUZXh0VHJhY2tDdWU+KHN0b3JlLCBzdGF0aWNfY2FzdDxUZXh0
VHJhY2tDdWVMaXN0Kj4ob2JqZWN0KSwgd3JhcHBlcik7CisgICAgICAgIGVsc2UgaWYgKHR5cGUg
PT0gJlY4VGV4dFRyYWNrTGlzdDo6aW5mbykKKyAgICAgICAgICAgIHZpc2l0TGlzdERPTVdyYXBw
ZXI8VGV4dFRyYWNrTGlzdCwgVGV4dFRyYWNrPihzdG9yZSwgc3RhdGljX2Nhc3Q8VGV4dFRyYWNr
TGlzdCo+KG9iamVjdCksIHdyYXBwZXIpOworI2VuZGlmCiAgICAgfQogCiAgICAgdm9pZCBhcHBs
eUdyb3VwaW5nKCkKQEAgLTM4MCw2ICszOTcsMjQgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0
ZToKKworI2lmIEVOQUJMRShWSURFT19UUkFDSykKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBMaXN0
VHlwZSwgdHlwZW5hbWUgSXRlbVR5cGU+CisgICAgdm9pZCB2aXNpdExpc3RET01XcmFwcGVyKERP
TURhdGFTdG9yZSogc3RvcmUsIExpc3RUeXBlKiBsaXN0LCB2ODo6UGVyc2lzdGVudDx2ODo6T2Jq
ZWN0PiB3cmFwcGVyKQorICAgIHsKKyAgICAgICAgVmVjdG9yPHY4OjpQZXJzaXN0ZW50PHY4OjpW
YWx1ZT4gPiB3cmFwcGVyczsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxpc3Qt
Pmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgICAgIEl0ZW1UeXBlKiBpdGVtID0gbGlzdC0+aXRl
bShpKTsKKyAgICAgICAgICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IGdldERP
TU9iamVjdE1hcCgpLmdldChpdGVtKTsKKyAgICAgICAgICAgIGlmICghd3JhcHBlci5Jc0VtcHR5
KCkpCisgICAgICAgICAgICAgICAgd3JhcHBlcnMuYXBwZW5kKHdyYXBwZXIpOworICAgICAgICB9
CisKKyAgICAgICAgaWYgKCF3cmFwcGVycy5pc0VtcHR5KCkpCisgICAgICAgICAgICB2ODo6Vjg6
OkFkZEltcGxpY2l0UmVmZXJlbmNlcyh3cmFwcGVyLCB3cmFwcGVycy5kYXRhKCksIHdyYXBwZXJz
LnNpemUoKSk7CisgICAgfQorI2VuZGlmCisKICAgICBHcm91cGVyTGlzdCBtX2dyb3VwZXI7CiB9
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRUcmFjay5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1RleHRUcmFjay5pZGwKaW5kZXggODQ1YTgwYzAxOTRiYmI1MDU1OGRh
ODIyOTNlNDY5YjFkZTI1YWU1YS4uYTQ4Mzk2ZTIwMjg3OTk2MTliOTFmMDA4ZjIwMzMzNWJlZjZh
ZjA1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0VHJhY2suaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dFRyYWNrLmlkbApAQCAtMzAsNyArMzAsOCBAQCBtb2R1
bGUgaHRtbCB7CiAgICAgICAgIFY4RW5hYmxlZEF0UnVudGltZT13ZWJraXRWaWRlb1RyYWNrLAog
ICAgICAgICBFdmVudFRhcmdldCwKICAgICAgICAgSlNDdXN0b21NYXJrRnVuY3Rpb24sCi0gICAg
ICAgIEpTQ3VzdG9tSXNSZWFjaGFibGUKKyAgICAgICAgSlNDdXN0b21Jc1JlYWNoYWJsZSwKKyAg
ICAgICAgVjhEZXBlbmRlbnRMaWZldGltZQogICAgIF0gVGV4dFRyYWNrIHsKICAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBraW5kOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgRE9NU3RyaW5nIGxhYmVsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0
VHJhY2tDdWUuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0VHJhY2tDdWUuaWRsCmluZGV4
IDRmN2E0MGJhZTU0NmExYjc1YTZhYjA3M2NlM2IwMDA5MjA5YjZlMDguLjY1OTQ5M2IzZmJmNGRj
NDJjZmM0ZGJkYTk4Yzk4MjVhMzE5ZWU4ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvVGV4dFRyYWNrQ3VlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRUcmFja0N1
ZS5pZGwKQEAgLTMzLDcgKzMzLDggQEAgbW9kdWxlIGh0bWwgewogICAgICAgICBDYWxsV2l0aD1T
Y3JpcHRFeGVjdXRpb25Db250ZXh0LAogICAgICAgICBFdmVudFRhcmdldCwKICAgICAgICAgSlND
dXN0b21NYXJrRnVuY3Rpb24sCi0gICAgICAgIEpTQ3VzdG9tSXNSZWFjaGFibGUKKyAgICAgICAg
SlNDdXN0b21Jc1JlYWNoYWJsZSwKKyAgICAgICAgVjhEZXBlbmRlbnRMaWZldGltZQogICAgIF0g
VGV4dFRyYWNrQ3VlIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFRleHRUcmFjayB0cmFj
azsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0VHJhY2tDdWVMaXN0Lmlk
bCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dFRyYWNrQ3VlTGlzdC5pZGwKaW5kZXggNTUxODQw
ZmU5MGUzZTA0NGM1NjI4NDU5NmQ3MjAwOTgxYTU5ZDdiMS4uZjY2OWM4MGVjMGE4MTkyNzVkMGYw
YmU5YjE1ODBkNWZiMGQyZDJlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0
VHJhY2tDdWVMaXN0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRUcmFja0N1ZUxp
c3QuaWRsCkBAIC0yOCw3ICsyOCw4IEBAIG1vZHVsZSBodG1sIHsKICAgICBpbnRlcmZhY2UgWwog
ICAgICAgICBDb25kaXRpb25hbD1WSURFT19UUkFDSywKICAgICAgICAgVjhFbmFibGVkQXRSdW50
aW1lPXdlYmtpdFZpZGVvVHJhY2ssCi0gICAgICAgIEluZGV4ZWRHZXR0ZXIKKyAgICAgICAgSW5k
ZXhlZEdldHRlciwKKyAgICAgICAgVjhEZXBlbmRlbnRMaWZldGltZQogICAgIF0gVGV4dFRyYWNr
Q3VlTGlzdCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0
aDsKICAgICAgICAgVGV4dFRyYWNrQ3VlIGl0ZW0oaW4gdW5zaWduZWQgbG9uZyBpbmRleCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0xpc3QuaWRsIGIv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tMaXN0LmlkbAppbmRleCBhZWRkYTJl
MDc0ZGJjODcxZTQxY2ZjZTYwMGY5OTYxYjRlZmYzM2E0Li4yODk5MTQwNTM2NmM2MDAwMDdmMWJi
NmEyYjU0MDhlMjU3N2VjY2IyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1RleHRUcmFja0xpc3QuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRy
YWNrTGlzdC5pZGwKQEAgLTMxLDcgKzMxLDggQEAgbW9kdWxlIGh0bWwgewogICAgICAgICBJbmRl
eGVkR2V0dGVyLAogICAgICAgICBFdmVudFRhcmdldCwKICAgICAgICAgSlNDdXN0b21NYXJrRnVu
Y3Rpb24sCi0gICAgICAgIEpTQ3VzdG9tSXNSZWFjaGFibGUKKyAgICAgICAgSlNDdXN0b21Jc1Jl
YWNoYWJsZSwKKyAgICAgICAgVjhEZXBlbmRlbnRMaWZldGltZQogICAgIF0gVGV4dFRyYWNrTGlz
dCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKICAg
ICAgICAgVGV4dFRyYWNrIGl0ZW0oaW4gdW5zaWduZWQgbG9uZyBpbmRleCk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNWNi
N2YyMmM0MTBkYzU5YjNjYjkyZWUxMWUzOTA2N2U4N2M2N2FlZC4uYzNhZGMxNDVmYjRmMDYzNWMx
NTIzNWQ2ZGJmMWUzZGRmMzAxNmFkYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDEyLTAyLTA4
ICBFcmlrIEFydmlkc3NvbiAgPGFydkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVjggd3JhcHBl
cnMgZm9yIFRleHRUcmFjayBhbmQgVGV4dFRyYWNrQ3VlIHNob3VsZCBub3QgYmUgY29sbGVjdGVk
IG9uIGV2ZW50IGRpc3BhdGNoIGFuZCB3aGVuIHBhcmVudC9vd25lciBhcmUgc3RpbGwgcmVhY2hh
YmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Mzg2
NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxh
dGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0OgorCiAyMDEyLTAyLTA4ICBEYXZp
ZCBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgxMjIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAppbmRleCBiYWFhMTE1OTdmYWZjZmFiNTcy
NGU2ZWIzNjQyMjkzNDEzMTUzMTNlLi5lMGZkMzU5MmExZWE5NDdjODJhYTdmYWVkNzgxYzc3NzE4
N2RhYjZmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4
cGVjdGF0aW9ucy50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9l
eHBlY3RhdGlvbnMudHh0CkBAIC0zNTMzLDEwICszNTMzLDYgQEAgQlVHX1NFTk9SQkxBTkNPIEdQ
VSA6IGZhc3QvY2FudmFzL2NhbnZhcy10cmFuc2Zvcm1zLWZpbGxSZWN0LXNoYWRvdy5odG1sID0g
VEVYVAogCiBCVUdXSzY2OTUzIDogdHJhbnNpdGlvbnMvZGVmYXVsdC10aW1pbmctZnVuY3Rpb24u
aHRtbCA9IFBBU1MgRkFJTAogCi1CVUdXSzczODY1IDogbWVkaWEvdHJhY2svdHJhY2tsaXN0LWlz
LXJlYWNoYWJsZS5odG1sID0gVEVYVCBDUkFTSAotQlVHV0s3Mzg2NSA6IG1lZGlhL3RyYWNrL3Rl
eHQtdHJhY2stY3VlLWlzLXJlYWNoYWJsZS5odG1sID0gVEVYVCBDUkFTSAotQlVHV0s3Mzg2NSA6
IG1lZGlhL3RyYWNrL3RleHQtdHJhY2staXMtcmVhY2hhYmxlLmh0bWwgPSBURVhUIENSQVNICi0K
IC8vIHVzZSBTa2lhIHRvIGRyYXcgdmVydGljYWwgdGV4dCBkaXJlY3RseSBpbnN0ZWFkIG9mIHRl
eHQtb24tcGF0aAogQlVHX0NBUllDTEFSSyBNQUMgQ1BVIDogZWRpdGluZy9zZWxlY3Rpb24vdmVy
dGljYWwtbHItbHRyLWV4dGVuZC1saW5lLWJhY2t3YXJkLWJyLmh0bWwgPSBJTUFHRQogQlVHX0NB
UllDTEFSSyBNQUMgQ1BVIDogZWRpdGluZy9zZWxlY3Rpb24vdmVydGljYWwtbHItbHRyLWV4dGVu
ZC1saW5lLWZvcndhcmQtYnIuaHRtbCA9IElNQUdFCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170454</attachid>
            <date>2012-10-24 12:58:09 -0700</date>
            <delta_ts>2012-10-26 12:45:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73865-20121024125644.patch</filename>
            <type>text/plain</type>
            <size>7512</size>
            <attacher name="Aaron Colwell">acolwell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyMzg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjA5OTk1MGNjNDdkMzc2
ZDM3ZDViOTZmMGQ4ODVjODkyYjhhM2I3Yi4uYzZmNThlOTA5MTgyYzA2NDNmNzA5NzhmNGE2YTlj
NTI3OTgzODdjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTEwLTI0ICBBYXJv
biBDb2x3ZWxsICA8YWNvbHdlbGxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFY4IHdyYXBwZXJz
IGZvciBUZXh0VHJhY2sgYW5kIFRleHRUcmFja0N1ZSBzaG91bGQgbm90IGJlIGNvbGxlY3RlZCBv
biBldmVudCBkaXNwYXRjaCBhbmQgd2hlbiBwYXJlbnQvb3duZXIgYXJlIHN0aWxsIHJlYWNoYWJs
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM4NjUK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIFRl
eHRUcmFjayByZWFjaGFibGUgYXMgbG9uZyBhcyBpdCBpcyBhdHRhY2hlZCB0byBhbiBlbGVtZW50
LgorICAgICAgICBLZWVwIFRleHRUcmFja0N1ZSB3cmFwcGVyIGFsaXZlIGFzIGxvbmcgYXMgaXQg
aXMgYXNzb2NpYXRlZCB3aXRoIGEgVGV4dFRyYWNrLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4g
bWVkaWEvdHJhY2svdGV4dC10cmFjay1jdWUtaXMtcmVhY2hhYmxlLmh0bWwgJiBtZWRpYS90cmFj
ay90ZXh0LXRyYWNrLWlzLXJlYWNoYWJsZS5odG1sIGNvdmVyIHRoaXMgY29kZS4KKworICAgICAg
ICAqIGh0bWwvdHJhY2svVGV4dFRyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFj
azo6b3duZXIpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogaHRtbC90cmFjay9UZXh0
VHJhY2suaDoKKyAgICAgICAgKFRleHRUcmFjayk6CisgICAgICAgICogaHRtbC90cmFjay9UZXh0
VHJhY2suaWRsOgorICAgICAgICAqIGh0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZTo6VGV4dFRyYWNrQ3VlKToKKyAgICAgICAgKFdlYkNv
cmU6OlRleHRUcmFja0N1ZTo6aGFzUGVuZGluZ0FjdGl2aXR5KToKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAqIGh0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmg6CisgICAgICAgIChUZXh0VHJh
Y2tDdWUpOgorICAgICAgICAqIGh0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmlkbDoKKwogMjAxMi0x
MC0yNCAgTmljbyBXZWJlciAgPHRoYWtpc0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgSG9ub3Ig
aW1hZ2Ugb3JpZW50YXRpb24gaW4gR3JhcGhpY3NDb250ZXh0U2tpYQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9UZXh0VHJhY2suY3BwCmluZGV4IDk4NmEzZjU3Yjk0ZjAzNzI1NzFhYzFiZGQ4Zjhk
YmU0NDg4ZDM2MWYuLmQzOTVkOTNmNWFhMTk4MWEwY2ZjNTg0M2QzYzkyYzRkOWIxOTU2MTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5jcHAKQEAgLTMyOSw2ICszMjksMTEg
QEAgVGV4dFRyYWNrQ3VlTGlzdCogVGV4dFRyYWNrOjplbnN1cmVUZXh0VHJhY2tDdWVMaXN0KCkK
ICAgICByZXR1cm4gbV9jdWVzLmdldCgpOwogfQogCitOb2RlKiBUZXh0VHJhY2s6Om93bmVyKCkK
K3sKKyAgICByZXR1cm4gbV9tZWRpYUVsZW1lbnQ7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRU
cmFjay5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suaAppbmRleCAzYmE0
ZDM3YmE5YmZhNDYwMGYwZGQxZWVlMDdjYmI4MjU4ZTRkMmZmLi43NTI0OTA2NDkzNDk2Y2Q1Nzll
OWZhYzhmZjViNzJhNjVlZDUzM2U1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL1RleHRUcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNr
LmgKQEAgLTExNSw2ICsxMTUsOCBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzUmVuZGVyZWQoKTsK
IAorICAgIE5vZGUqIG93bmVyKCk7CisKIHByb3RlY3RlZDoKICAgICBUZXh0VHJhY2soU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCosIFRleHRUcmFja0NsaWVudCosIGNvbnN0IEF0b21pY1N0cmluZyYg
a2luZCwgY29uc3QgQXRvbWljU3RyaW5nJiBsYWJlbCwgY29uc3QgQXRvbWljU3RyaW5nJiBsYW5n
dWFnZSwgVGV4dFRyYWNrVHlwZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svVGV4dFRyYWNrLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNr
LmlkbAppbmRleCBlNjQ2NWE3YWY2ZDU3NDcwMmViZGQxYjMyZGQxMTk1ZDBmZTk5OWNlLi4zYjY3
ZTEzY2M3ZDVhYTU4YmM4NGFiMDQ3ZjQ1ZjFhYzcyMGY4ZGViIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9UZXh0VHJhY2suaWRsCkBAIC0yOCw3ICsyOCw4IEBACiAgICAgVjhFbmFibGVkQXRS
dW50aW1lPXdlYmtpdFZpZGVvVHJhY2ssCiAgICAgRXZlbnRUYXJnZXQsCiAgICAgSlNDdXN0b21N
YXJrRnVuY3Rpb24sCi0gICAgSlNDdXN0b21Jc1JlYWNoYWJsZQorICAgIEpTQ3VzdG9tSXNSZWFj
aGFibGUsCisgICAgVjhHZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGxPd25lclJvb3QKIF0gaW50ZXJm
YWNlIFRleHRUcmFjayB7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBraW5kOwog
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbGFiZWw7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHAKaW5kZXggYmI3MzQ0NWU1NzM5OTI4N2E4Y2RjMjJk
NTQyZjBmYjRmMDg1YjFkZi4uNWU0MTZiNTM1MDkzNmYyNzJjMDMwOTRhYWVlMDUxMTQzNzFkMGJm
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcApAQCAtMTk5
LDcgKzE5OSw4IEBAIGNvbnN0IEF0b21pY1N0cmluZyYgVGV4dFRyYWNrQ3VlOjpmdXR1cmVOb2Rl
c1NoYWRvd1BzZXVkb0lkKCkKIH0KIAogVGV4dFRyYWNrQ3VlOjpUZXh0VHJhY2tDdWUoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgZG91YmxlIHN0YXJ0LCBkb3VibGUgZW5kLCBjb25z
dCBTdHJpbmcmIGNvbnRlbnQpCi0gICAgOiBtX3N0YXJ0VGltZShzdGFydCkKKyAgICA6IEFjdGl2
ZURPTU9iamVjdChjb250ZXh0LCB0aGlzKQorICAgICwgbV9zdGFydFRpbWUoc3RhcnQpCiAgICAg
LCBtX2VuZFRpbWUoZW5kKQogICAgICwgbV9jb250ZW50KGNvbnRlbnQpCiAgICAgLCBtX2xpbmVQ
b3NpdGlvbih1bmRlZmluZWRQb3NpdGlvbikKQEAgLTIzMCw2ICsyMzEsOCBAQCBUZXh0VHJhY2tD
dWU6OlRleHRUcmFja0N1ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBkb3VibGUg
c3RhcnQsIGRvdWJsZQogICAgIG1fZGlzcGxheVdyaXRpbmdNb2RlTWFwW0hvcml6b250YWxdID0g
Q1NTVmFsdWVIb3Jpem9udGFsVGI7CiAgICAgbV9kaXNwbGF5V3JpdGluZ01vZGVNYXBbVmVydGlj
YWxHcm93aW5nTGVmdF0gPSBDU1NWYWx1ZVZlcnRpY2FsUmw7CiAgICAgbV9kaXNwbGF5V3JpdGlu
Z01vZGVNYXBbVmVydGljYWxHcm93aW5nUmlnaHRdID0gQ1NTVmFsdWVWZXJ0aWNhbExyOworCisg
ICAgc3VzcGVuZElmTmVlZGVkKCk7CiB9CiAKIFRleHRUcmFja0N1ZTo6flRleHRUcmFja0N1ZSgp
CkBAIC0xMDU1LDYgKzEwNTgsMTEgQEAgRXZlbnRUYXJnZXREYXRhKiBUZXh0VHJhY2tDdWU6OmVu
c3VyZUV2ZW50VGFyZ2V0RGF0YSgpCiAgICAgcmV0dXJuICZtX2V2ZW50VGFyZ2V0RGF0YTsKIH0K
IAorYm9vbCBUZXh0VHJhY2tDdWU6Omhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1fdHJhY2s7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuaAppbmRleCAzZTI5ZDFlNzQyNThm
NzMxOGMwYjcxMWMwOTk4NzAxZDRlZGJmMGE3Li41MDMzODI2YWIxNDIxNGU2ZWMzMjZhMzExNzEx
YWRjZDFmOGQ4YmQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRU
cmFja0N1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmgK
QEAgLTMzLDYgKzMzLDcgQEAKIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKIAorI2luY2x1ZGUg
IkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAi
SFRNTEVsZW1lbnQuaCIKICNpbmNsdWRlICJUZXh0VHJhY2suaCIKQEAgLTcyLDcgKzczLDcgQEAg
cHJpdmF0ZToKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1jbGFzcyBUZXh0
VHJhY2tDdWUgOiBwdWJsaWMgUmVmQ291bnRlZDxUZXh0VHJhY2tDdWU+LCBwdWJsaWMgRXZlbnRU
YXJnZXQgeworY2xhc3MgVGV4dFRyYWNrQ3VlIDogcHVibGljIFJlZkNvdW50ZWQ8VGV4dFRyYWNr
Q3VlPiwgcHVibGljIEV2ZW50VGFyZ2V0LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKIHB1Ymxp
YzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxUZXh0VHJhY2tDdWU+IGNyZWF0ZShTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjb250ZXh0LCBkb3VibGUgc3RhcnQsIGRvdWJsZSBlbmQsIGNvbnN0IFN0
cmluZyYgY29udGVudCkKICAgICB7CkBAIC0xNjAsNiArMTYxLDkgQEAgcHVibGljOgogICAgIHVz
aW5nIFJlZkNvdW50ZWQ8VGV4dFRyYWNrQ3VlPjo6cmVmOwogICAgIHVzaW5nIFJlZkNvdW50ZWQ8
VGV4dFRyYWNrQ3VlPjo6ZGVyZWY7CiAKKyAgICAvLyBBY3RpdmVET01PYmplY3QgaW50ZXJmYWNl
CisgICAgdmlydHVhbCBib29sIGhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0IE9WRVJSSURFOwor
CiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBFdmVudFRhcmdldERhdGEqIGV2ZW50VGFyZ2V0RGF0
YSgpOwogICAgIHZpcnR1YWwgRXZlbnRUYXJnZXREYXRhKiBlbnN1cmVFdmVudFRhcmdldERhdGEo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmlk
bCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmlkbAppbmRleCBkZGI2
N2U0NGUzYWQ3MTZlNTliN2Y4NTk4ODg3YTQwMTA1NDI0MzZkLi43NzcwNzRhMTUyMjY2MWFkNjY5
Y2QxYTZhYWI4ZjM1MTdiNjllMWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL1RleHRUcmFja0N1ZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0
VHJhY2tDdWUuaWRsCkBAIC0zMSw3ICszMSw4IEBACiAgICAgQ2FsbFdpdGg9U2NyaXB0RXhlY3V0
aW9uQ29udGV4dCwKICAgICBFdmVudFRhcmdldCwKICAgICBKU0N1c3RvbU1hcmtGdW5jdGlvbiwK
LSAgICBKU0N1c3RvbUlzUmVhY2hhYmxlCisgICAgSlNDdXN0b21Jc1JlYWNoYWJsZSwKKyAgICBB
Y3RpdmVET01PYmplY3QKIF0gaW50ZXJmYWNlIFRleHRUcmFja0N1ZSB7CiAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIFRleHRUcmFjayB0cmFjazsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGFkY2U2ODFhMmJkMDhlNmFhMDNj
MTkzY2UwZjEyMDYwNTRkNDFmZGYuLjZmY2YyNjc0YWQ0M2MwMmNlNGRjYzAyODNmYzE0MWJiNzM5
YWE4YjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0xMC0yNCAgQWFyb24gQ29sd2VsbCAg
PGFjb2x3ZWxsQGNocm9taXVtLm9yZz4KKworICAgICAgICBWOCB3cmFwcGVycyBmb3IgVGV4dFRy
YWNrIGFuZCBUZXh0VHJhY2tDdWUgc2hvdWxkIG5vdCBiZSBjb2xsZWN0ZWQgb24gZXZlbnQgZGlz
cGF0Y2ggYW5kIHdoZW4gcGFyZW50L293bmVyIGFyZSBzdGlsbCByZWFjaGFibGUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczODY1CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZpbmcgZmFpbHVyZSBl
eHBlY3RhdGlvbnMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRp
b25zOgorCiAyMDEyLTEwLTI0ICBaYW4gRG9iZXJzZWsgIDx6YW5kb2JlcnNla0BnbWFpbC5jb20+
CiAKICAgICAgICAgVW5yZXZpZXdlZCBHVEsgZ2FyZGVuaW5nLgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggODRhYjZiNGRkODlkYmYyNzU1
M2YyYmQyYTRmODMyMGVjZGI3MWMzMi4uNjk0MGMyNTI0ZWRiNDdmMjgyODE4NjhhYThkMDZkYzAx
ZTVjNmFiYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4
cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0
YXRpb25zCkBAIC0yOTk4LDkgKzI5OTgsNiBAQCB3ZWJraXQub3JnL2IvOTQ2ODggZmFzdC9qcy90
b1N0cmluZy1vdmVycmlkZXMuaHRtbCBbIEZhaWx1cmUgXQogCiB3ZWJraXQub3JnL2IvOTE5NDQg
cGxhdGZvcm0vY2hyb21pdW0vdmlydHVhbC9ncHUvZmFzdC9jYW52YXMvY2FudmFzLXRyYW5zZm9y
bXMtZmlsbFJlY3Qtc2hhZG93Lmh0bWwgWyBGYWlsdXJlIF0KIAotd2Via2l0Lm9yZy9iLzczODY1
IG1lZGlhL3RyYWNrL3RleHQtdHJhY2stY3VlLWlzLXJlYWNoYWJsZS5odG1sIFsgRmFpbHVyZSBd
Ci13ZWJraXQub3JnL2IvNzM4NjUgbWVkaWEvdHJhY2svdGV4dC10cmFjay1pcy1yZWFjaGFibGUu
aHRtbCBbIEZhaWx1cmUgXQotCiB3ZWJraXQub3JnL2IvNzIyNzEgWyBTbm93TGVvcGFyZCBEZWJ1
ZyBdIGZhc3QvZG9tL25vZGUtaXRlcmF0b3ItcmVmZXJlbmNlLW5vZGUtbW92ZWQtY3Jhc2guaHRt
bCBbIENyYXNoIFBhc3MgXQogCiB3ZWJraXQub3JnL2IvNzIzNzYgWyBXaW4gXSBmYXN0L2Zvcm1z
L2ZpbGUvaW5wdXQtZmlsZS1sYWJlbC5odG1sIFsgRmFpbHVyZSBQYXNzIF0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170985</attachid>
            <date>2012-10-26 12:45:13 -0700</date>
            <delta_ts>2012-12-20 17:35:48 -0800</delta_ts>
            <desc>Moved suspendIfNeeded() into TextTrackCue::create().</desc>
            <filename>bug-73865-20121026124344.patch</filename>
            <type>text/plain</type>
            <size>7526</size>
            <attacher name="Aaron Colwell">acolwell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyNjg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDFlYjVkNDg5OGVlNmE1
MGQ2OWY0ZDU4Yzk4YjFiM2JlMTYyMWExYy4uOWM3ZjgxYzQ5MmFhYjZjZTM2NjI0ZWM3MTYxNjBi
ZDI1OGM4Zjg5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTEwLTI2ICBBYXJv
biBDb2x3ZWxsICA8YWNvbHdlbGxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFY4IHdyYXBwZXJz
IGZvciBUZXh0VHJhY2sgYW5kIFRleHRUcmFja0N1ZSBzaG91bGQgbm90IGJlIGNvbGxlY3RlZCBv
biBldmVudCBkaXNwYXRjaCBhbmQgd2hlbiBwYXJlbnQvb3duZXIgYXJlIHN0aWxsIHJlYWNoYWJs
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM4NjUK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIFRl
eHRUcmFjayByZWFjaGFibGUgYXMgbG9uZyBhcyBpdCBpcyBhdHRhY2hlZCB0byBhbiBlbGVtZW50
LgorICAgICAgICBLZWVwIFRleHRUcmFja0N1ZSB3cmFwcGVyIGFsaXZlIGFzIGxvbmcgYXMgaXQg
aXMgYXNzb2NpYXRlZCB3aXRoIGEgVGV4dFRyYWNrLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4g
bWVkaWEvdHJhY2svdGV4dC10cmFjay1jdWUtaXMtcmVhY2hhYmxlLmh0bWwgJiBtZWRpYS90cmFj
ay90ZXh0LXRyYWNrLWlzLXJlYWNoYWJsZS5odG1sIGNvdmVyIHRoaXMgY29kZS4KKworICAgICAg
ICAqIGh0bWwvdHJhY2svVGV4dFRyYWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFj
azo6b3duZXIpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogaHRtbC90cmFjay9UZXh0
VHJhY2suaDoKKyAgICAgICAgKFRleHRUcmFjayk6CisgICAgICAgICogaHRtbC90cmFjay9UZXh0
VHJhY2suaWRsOgorICAgICAgICAqIGh0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZTo6VGV4dFRyYWNrQ3VlKToKKyAgICAgICAgKFdlYkNv
cmU6OlRleHRUcmFja0N1ZTo6aGFzUGVuZGluZ0FjdGl2aXR5KToKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAqIGh0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmg6CisgICAgICAgIChXZWJDb3Jl
OjpUZXh0VHJhY2tDdWU6OmNyZWF0ZSk6CisgICAgICAgIChUZXh0VHJhY2tDdWUpOgorICAgICAg
ICAqIGh0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmlkbDoKKwogMjAxMi0xMC0yNiAgRWxsaW90dCBT
cHJlaG4gIDxlc3ByZWhuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZW1vdmUgc2V0UmVuZGVy
U3R5bGUgaW4gZmF2b3Igb2YgY2FsbGJhY2tzIG9uIEhUTUxPcHRpb25FbGVtZW50IGFuZCBIVE1M
T3B0R3JvdXBFbGVtZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1Rl
eHRUcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5jcHAKaW5k
ZXggNGY3NmI4YWJmZjkxNjg0NGFmOGUyOGM2ZmQwY2FjNTljODRjNGQ3My4uN2RjMzg0YjBkYzU1
MTkyZmUxNDI3MTNlZWNkOWUzOWU5NmU4ZTdjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9UZXh0VHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
VGV4dFRyYWNrLmNwcApAQCAtMzM0LDYgKzMzNCwxMSBAQCBUZXh0VHJhY2tDdWVMaXN0KiBUZXh0
VHJhY2s6OmVuc3VyZVRleHRUcmFja0N1ZUxpc3QoKQogICAgIHJldHVybiBtX2N1ZXMuZ2V0KCk7
CiB9CiAKK05vZGUqIFRleHRUcmFjazo6b3duZXIoKQoreworICAgIHJldHVybiBtX21lZGlhRWxl
bWVudDsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1RleHRUcmFjay5oCmluZGV4IDNiYTRkMzdiYTliZmE0NjAwZjBkZDFlZWUwN2Ni
YjgyNThlNGQyZmYuLjc1MjQ5MDY0OTM0OTZjZDU3OWU5ZmFjOGZmNWI3MmE2NWVkNTMzZTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suaApAQCAtMTE1LDYgKzExNSw4IEBAIHB1
YmxpYzoKIAogICAgIGJvb2wgaXNSZW5kZXJlZCgpOwogCisgICAgTm9kZSogb3duZXIoKTsKKwog
cHJvdGVjdGVkOgogICAgIFRleHRUcmFjayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgVGV4dFRy
YWNrQ2xpZW50KiwgY29uc3QgQXRvbWljU3RyaW5nJiBraW5kLCBjb25zdCBBdG9taWNTdHJpbmcm
IGxhYmVsLCBjb25zdCBBdG9taWNTdHJpbmcmIGxhbmd1YWdlLCBUZXh0VHJhY2tUeXBlKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suaWRsIGIvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2suaWRsCmluZGV4IGU2NDY1YTdhZjZkNTc0
NzAyZWJkZDFiMzJkZDExOTVkMGZlOTk5Y2UuLjNiNjdlMTNjYzdkNWFhNThiYzg0YWIwNDdmNDVm
MWFjNzIwZjhkZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRy
YWNrLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5pZGwKQEAg
LTI4LDcgKzI4LDggQEAKICAgICBWOEVuYWJsZWRBdFJ1bnRpbWU9d2Via2l0VmlkZW9UcmFjaywK
ICAgICBFdmVudFRhcmdldCwKICAgICBKU0N1c3RvbU1hcmtGdW5jdGlvbiwKLSAgICBKU0N1c3Rv
bUlzUmVhY2hhYmxlCisgICAgSlNDdXN0b21Jc1JlYWNoYWJsZSwKKyAgICBWOEdlbmVyYXRlSXNS
ZWFjaGFibGU9SW1wbE93bmVyUm9vdAogXSBpbnRlcmZhY2UgVGV4dFRyYWNrIHsKICAgICByZWFk
b25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGtpbmQ7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERP
TVN0cmluZyBsYWJlbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4
dFRyYWNrQ3VlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNw
cAppbmRleCBhMDRiMWI4Y2JmODdiNzliN2NmMWNkZTM1YmI5MDdlNGIwMTAxMWZmLi5kNDJhN2Nk
MGM4Mjk5YjFkMTdjMDJhODRjYzhiYzJjMGFhNThmOTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9UZXh0VHJhY2tDdWUuY3BwCkBAIC0xOTksNyArMTk5LDggQEAgY29uc3QgQXRvbWlj
U3RyaW5nJiBUZXh0VHJhY2tDdWU6OmZ1dHVyZU5vZGVzU2hhZG93UHNldWRvSWQoKQogfQogCiBU
ZXh0VHJhY2tDdWU6OlRleHRUcmFja0N1ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
LCBkb3VibGUgc3RhcnQsIGRvdWJsZSBlbmQsIGNvbnN0IFN0cmluZyYgY29udGVudCkKLSAgICA6
IG1fc3RhcnRUaW1lKHN0YXJ0KQorICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQsIHRoaXMp
CisgICAgLCBtX3N0YXJ0VGltZShzdGFydCkKICAgICAsIG1fZW5kVGltZShlbmQpCiAgICAgLCBt
X2NvbnRlbnQoY29udGVudCkKICAgICAsIG1fbGluZVBvc2l0aW9uKHVuZGVmaW5lZFBvc2l0aW9u
KQpAQCAtMTA1Niw2ICsxMDU3LDExIEBAIEV2ZW50VGFyZ2V0RGF0YSogVGV4dFRyYWNrQ3VlOjpl
bnN1cmVFdmVudFRhcmdldERhdGEoKQogICAgIHJldHVybiAmbV9ldmVudFRhcmdldERhdGE7CiB9
CiAKK2Jvb2wgVGV4dFRyYWNrQ3VlOjpoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdAoreworICAg
IHJldHVybiBtX3RyYWNrOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmgKaW5kZXggMDFhMGU2NjAzN2E1
MGMxNmRiODQ0MTFhZTJkZDJmMWU0MzMwNjQ1Ni4uZWE1MjdjZjJlNDU1OWY4ZmI3NjM5ZGUxY2M3
NjRmNmZlNDg1ZjU2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0
VHJhY2tDdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5o
CkBAIC0zMyw2ICszMyw3IEBACiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAKKyNpbmNsdWRl
ICJBY3RpdmVET01PYmplY3QuaCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgogI2luY2x1ZGUg
IkhUTUxFbGVtZW50LmgiCiAjaW5jbHVkZSAiVGV4dFRyYWNrLmgiCkBAIC03MiwxMSArNzMsMTMg
QEAgcHJpdmF0ZToKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1jbGFzcyBU
ZXh0VHJhY2tDdWUgOiBwdWJsaWMgUmVmQ291bnRlZDxUZXh0VHJhY2tDdWU+LCBwdWJsaWMgRXZl
bnRUYXJnZXQgeworY2xhc3MgVGV4dFRyYWNrQ3VlIDogcHVibGljIFJlZkNvdW50ZWQ8VGV4dFRy
YWNrQ3VlPiwgcHVibGljIEV2ZW50VGFyZ2V0LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKIHB1
YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxUZXh0VHJhY2tDdWU+IGNyZWF0ZShTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBkb3VibGUgc3RhcnQsIGRvdWJsZSBlbmQsIGNvbnN0
IFN0cmluZyYgY29udGVudCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgVGV4
dFRyYWNrQ3VlKGNvbnRleHQsIHN0YXJ0LCBlbmQsIGNvbnRlbnQpKTsKKyAgICAgICAgUmVmUHRy
PFRleHRUcmFja0N1ZT4gY3VlKGFkb3B0UmVmKG5ldyBUZXh0VHJhY2tDdWUoY29udGV4dCwgc3Rh
cnQsIGVuZCwgY29udGVudCkpKTsKKyAgICAgICAgY3VlLT5zdXNwZW5kSWZOZWVkZWQoKTsKKyAg
ICAgICAgcmV0dXJuIGN1ZS5yZWxlYXNlKCk7CiAgICAgfQogCiAgICAgdmlydHVhbCB+VGV4dFRy
YWNrQ3VlKCk7CkBAIC0xNjAsNiArMTYzLDkgQEAgcHVibGljOgogICAgIHVzaW5nIFJlZkNvdW50
ZWQ8VGV4dFRyYWNrQ3VlPjo6cmVmOwogICAgIHVzaW5nIFJlZkNvdW50ZWQ8VGV4dFRyYWNrQ3Vl
Pjo6ZGVyZWY7CiAKKyAgICAvLyBBY3RpdmVET01PYmplY3QgaW50ZXJmYWNlCisgICAgdmlydHVh
bCBib29sIGhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0IE9WRVJSSURFOworCiBwcm90ZWN0ZWQ6
CiAgICAgdmlydHVhbCBFdmVudFRhcmdldERhdGEqIGV2ZW50VGFyZ2V0RGF0YSgpOwogICAgIHZp
cnR1YWwgRXZlbnRUYXJnZXREYXRhKiBlbnN1cmVFdmVudFRhcmdldERhdGEoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmlkbAppbmRleCBkZGI2N2U0NGUzYWQ3MTZl
NTliN2Y4NTk4ODg3YTQwMTA1NDI0MzZkLi43NzcwNzRhMTUyMjY2MWFkNjY5Y2QxYTZhYWI4ZjM1
MTdiNjllMWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFj
a0N1ZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuaWRs
CkBAIC0zMSw3ICszMSw4IEBACiAgICAgQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCwK
ICAgICBFdmVudFRhcmdldCwKICAgICBKU0N1c3RvbU1hcmtGdW5jdGlvbiwKLSAgICBKU0N1c3Rv
bUlzUmVhY2hhYmxlCisgICAgSlNDdXN0b21Jc1JlYWNoYWJsZSwKKyAgICBBY3RpdmVET01PYmpl
Y3QKIF0gaW50ZXJmYWNlIFRleHRUcmFja0N1ZSB7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFRl
eHRUcmFjayB0cmFjazsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDU2ODgzNDMxZGY0MTY1MTgyZDVlZjQxNjc2MWI5ZTlj
MjFlYzg0ZjQuLmQ1MWIzZGIyNzQ0NmE4NDhjYmRjZGVmZDc0NTY3ZjY1ZGQ2NWRlZjMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNCBAQAorMjAxMi0xMC0yNiAgQWFyb24gQ29sd2VsbCAgPGFjb2x3ZWxsQGNo
cm9taXVtLm9yZz4KKworICAgICAgICBWOCB3cmFwcGVycyBmb3IgVGV4dFRyYWNrIGFuZCBUZXh0
VHJhY2tDdWUgc2hvdWxkIG5vdCBiZSBjb2xsZWN0ZWQgb24gZXZlbnQgZGlzcGF0Y2ggYW5kIHdo
ZW4gcGFyZW50L293bmVyIGFyZSBzdGlsbCByZWFjaGFibGUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczODY1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZpbmcgZmFpbHVyZSBleHBlY3RhdGlvbnMu
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDEy
LTEwLTI2ICBEaXJrIFNjaHVsemUgIDxrcml0QHdlYmtpdC5vcmc+CiAKICAgICAgICAgLXdlYmtp
dC1jbGlwLXBhdGggcHJvcGVydHkgc2hvdWxkIGp1c3QgcmVmZXJlbmNlIGNsaXBQYXRoCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwppbmRleCAwMzIz
OTQwMzJkODQ0MWQwNzJlODQ5MzAxOWMwMTkxNzFiNDMxNTYzLi45NDdlYzYyOTM1NzllOTA4Y2Fk
MmJkYzA0MTNlMzdjY2FkYTEzMmE5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTMwMDIsOSArMzAwMiw2IEBAIHdlYmtpdC5vcmcvYi85
NDY4OCBmYXN0L2pzL3RvU3RyaW5nLW92ZXJyaWRlcy5odG1sIFsgRmFpbHVyZSBdCiAKIHdlYmtp
dC5vcmcvYi85MTk0NCBwbGF0Zm9ybS9jaHJvbWl1bS92aXJ0dWFsL2dwdS9mYXN0L2NhbnZhcy9j
YW52YXMtdHJhbnNmb3Jtcy1maWxsUmVjdC1zaGFkb3cuaHRtbCBbIEZhaWx1cmUgXQogCi13ZWJr
aXQub3JnL2IvNzM4NjUgbWVkaWEvdHJhY2svdGV4dC10cmFjay1jdWUtaXMtcmVhY2hhYmxlLmh0
bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi83Mzg2NSBtZWRpYS90cmFjay90ZXh0LXRyYWNr
LWlzLXJlYWNoYWJsZS5odG1sIFsgRmFpbHVyZSBdCi0KIHdlYmtpdC5vcmcvYi83MjI3MSBbIFNu
b3dMZW9wYXJkIERlYnVnIF0gZmFzdC9kb20vbm9kZS1pdGVyYXRvci1yZWZlcmVuY2Utbm9kZS1t
b3ZlZC1jcmFzaC5odG1sIFsgQ3Jhc2ggUGFzcyBdCiAKIHdlYmtpdC5vcmcvYi83MjM3NiBbIFdp
biBdIGZhc3QvZm9ybXMvZmlsZS9pbnB1dC1maWxlLWxhYmVsLmh0bWwgWyBGYWlsdXJlIFBhc3Mg
XQo=
</data>
<flag name="review"
          id="184755"
          type_id="1"
          status="-"
          setter="abarth"
    />
    <flag name="commit-queue"
          id="184756"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
      

    </bug>

</bugzilla>