<?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>79443</bug_id>
          
          <creation_ts>2012-02-23 21:56:52 -0800</creation_ts>
          <short_desc>REGRESSION (r105396): Dragging an iWork document into icloud.com opens it in the Mac app instead of uploading it to icloud.com</short_desc>
          <delta_ts>2012-03-08 18:24:49 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>UI Events</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>https://www.icloud.com/#iwork</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, Regression</keywords>
          <priority>P1</priority>
          <bug_severity>Major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>mitz</reporter>
          <assigned_to name="Andy Estes">aestes</assigned_to>
          <cc>abarth</cc>
    
    <cc>aestes</cc>
    
    <cc>ap</cc>
    
    <cc>dbates</cc>
    
    <cc>dcheng</cc>
    
    <cc>dglazkov</cc>
    
    <cc>rniwa</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>563922</commentid>
    <comment_count>0</comment_count>
    <who name="">mitz</who>
    <bug_when>2012-02-23 21:56:52 -0800</bug_when>
    <thetext>Steps to reproduce:
1. Navigate to the URL (sign in to iCloud if necessary)
2. Select the Numbers tab and drag a Numbers document from the Finder into the browser window

Expected result:
A progress window appears as the Numbers document is uploaded to iCloud, then it is added to the view of documents in the cloud

Actual result:
The document opens in the Mac Numbers app

Regression:
Caused by &lt;http://trac.webkit.org/r105396&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563923</commentid>
    <comment_count>1</comment_count>
    <who name="">mitz</who>
    <bug_when>2012-02-23 21:57:22 -0800</bug_when>
    <thetext>&lt;rdar://problem/10925082&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563926</commentid>
    <comment_count>2</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-02-23 22:03:35 -0800</bug_when>
    <thetext>Could you diagnose what&apos;s going wrong? It&apos;s hard for me to debug this bug given I don&apos;t have an iCloud account. There&apos;s also https://bugs.webkit.org/show_bug.cgi?id=79172. Does Daniel&apos;s patch there fix this bug as well?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565909</commentid>
    <comment_count>3</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2012-02-27 13:00:47 -0800</bug_when>
    <thetext>I&apos;m taking a look at this now. I&apos;m working on creating a test case, but a quick debugging session showed me that m_dragDestinationAction &amp; DragDestinationActionDHTML is true in DragController::performDrag() when m_isHandlingDrag is false. This means that the code block bound by if (m_isHandlingDrag) prior to r105396 is now being executed, and that&apos;s causing this particular behavior difference.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>570203</commentid>
    <comment_count>4</comment_count>
      <attachid>130013</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2012-03-03 19:30:01 -0800</bug_when>
    <thetext>Created attachment 130013
Test case

Sam and I looked at this and created a test case.

The issue is that iCloud is changing the drop target from display:block to display:none in its drop event handler. When concludeEditDrag() hit tests for the drop target later, it gets a different element in return. This seems like a WebKit bug that we would dispatch an event to one element but then call concludeEditDrag() on another. We should use the same element.

Note that Firefox handles this case correctly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571094</commentid>
    <comment_count>5</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2012-03-05 15:23:32 -0800</bug_when>
    <thetext>I should point out that r105396 isn&apos;t really to blame here; it just exposed a long-standing bug. As far as I can tell, DragController::concludeEditDrag() has determined the drag target by hit testing since the beginning of time. I&apos;ll leave &apos;REGRESSION(...&apos; in the title since it&apos;s helpful to know when the behavior change started to occur.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573145</commentid>
    <comment_count>6</comment_count>
      <attachid>130674</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2012-03-07 12:54:07 -0800</bug_when>
    <thetext>Created attachment 130674
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573147</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-07 12:58:06 -0800</bug_when>
    <thetext>Attachment 130674 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/fast...&quot; exit_code: 1
LayoutTests/ChangeLog:11:  Line contains tab character.  [whitespace/tab] [5]
Total errors found: 1 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573193</commentid>
    <comment_count>8</comment_count>
      <attachid>130674</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2012-03-07 13:42:25 -0800</bug_when>
    <thetext>Comment on attachment 130674
Patch

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

&gt;&gt; LayoutTests/ChangeLog:11
&gt;&gt; +		EventSender.beginDragWithFiles().
&gt; 
&gt; Line contains tab character.  [whitespace/tab] [5]

Will fix before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573216</commentid>
    <comment_count>9</comment_count>
      <attachid>130674</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-07 14:01:10 -0800</bug_when>
    <thetext>Comment on attachment 130674
Patch

Attachment 130674 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11854336

New failing tests:
fast/forms/drag-out-of-textarea.html
editing/pasteboard/drop-text-events.html
editing/pasteboard/drag-drop-input-textarea.html
editing/selection/drag-text-delay.html
fast/events/5056619.html
fast/forms/drag-into-textarea.html
editing/pasteboard/drag-drop-url-text.html
fast/events/content-changed-during-drop.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573304</commentid>
    <comment_count>10</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2012-03-07 15:30:37 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 130674 [details])
&gt; Attachment 130674 [details] did not pass chromium-ews (chromium-xvfb):
&gt; Output: http://queues.webkit.org/results/11854336
&gt; 
&gt; New failing tests:
&gt; fast/forms/drag-out-of-textarea.html
&gt; editing/pasteboard/drop-text-events.html
&gt; editing/pasteboard/drag-drop-input-textarea.html
&gt; editing/selection/drag-text-delay.html
&gt; fast/events/5056619.html
&gt; fast/forms/drag-into-textarea.html
&gt; editing/pasteboard/drag-drop-url-text.html
&gt; fast/events/content-changed-during-drop.html

Seems likely that I broke these. I&apos;ll take a look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573363</commentid>
    <comment_count>11</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2012-03-07 16:49:48 -0800</bug_when>
    <thetext>It&apos;s sad that http://queues.webkit.org/results/11854336 make no mention of the test failures listed in comment #9.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573364</commentid>
    <comment_count>12</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2012-03-07 16:51:38 -0800</bug_when>
    <thetext>I think http://queues.webkit.org/results/11850353 is the link the review bot meant to include.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573603</commentid>
    <comment_count>13</comment_count>
      <attachid>130769</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2012-03-07 22:11:58 -0800</bug_when>
    <thetext>Created attachment 130769
Patch

I got a little carried away with that last patch. This version is much more to the point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573678</commentid>
    <comment_count>14</comment_count>
      <attachid>130769</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-08 00:10:37 -0800</bug_when>
    <thetext>Comment on attachment 130769
Patch

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

&gt; Source/WebCore/page/DragController.cpp:226
&gt; +    if (m_fileInputElementUnderMouse) {
&gt; +        m_fileInputElementUnderMouse-&gt;setCanReceiveDroppedFiles(false);
&gt; +        m_fileInputElementUnderMouse = 0;
&gt;      }

Could you explain why we need to always do this?

&gt; Source/WebCore/page/DragController.cpp:467
&gt; +        // m_fileInputElementUnderMouse should be the element we hit tested for,
&gt; +        // unless it was made display:none by a drop event handler.
&gt; +        ASSERT(m_fileInputElementUnderMouse == element || !m_fileInputElementUnderMouse-&gt;renderer());

I don&apos;t think this assertion is accurate. You can also move the element to elsewhere in the document or to a different frame, right?

&gt; Source/WebCore/page/DragController.cpp:558
&gt; +            // m_fileInputElementUnderMouse should be the element we hit tested
&gt; +            // for, unless it was made display:none by a drop event handler.
&gt; +            ASSERT(m_fileInputElementUnderMouse == result.innerNonSharedNode() || !m_fileInputElementUnderMouse-&gt;renderer());

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573689</commentid>
    <comment_count>15</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2012-03-08 00:31:47 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; (From update of attachment 130769 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=130769&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/DragController.cpp:226
&gt; &gt; +    if (m_fileInputElementUnderMouse) {
&gt; &gt; +        m_fileInputElementUnderMouse-&gt;setCanReceiveDroppedFiles(false);
&gt; &gt; +        m_fileInputElementUnderMouse = 0;
&gt; &gt;      }
&gt; 
&gt; Could you explain why we need to always do this?

This was moved out of concludeEditDrag() in order to keep m_fileInputElementUnderMouse alive. If m_fileInputElementUnderMouse is non-null then we must be doing an edit drag, so this should be the same as doing it in concludeEditDrag(). I could probably assert that an edit drag is taking place.

&gt; 
&gt; &gt; Source/WebCore/page/DragController.cpp:467
&gt; &gt; +        // m_fileInputElementUnderMouse should be the element we hit tested for,
&gt; &gt; +        // unless it was made display:none by a drop event handler.
&gt; &gt; +        ASSERT(m_fileInputElementUnderMouse == element || !m_fileInputElementUnderMouse-&gt;renderer());
&gt; 
&gt; I don&apos;t think this assertion is accurate. You can also move the element to elsewhere in the document or to a different frame, right?

True, but in those cases m_fileInputElementUnderMouse would have been nulled out in tryDocumentDrag() by virtue of the mouse no longer being over a file input element.

&gt; 
&gt; &gt; Source/WebCore/page/DragController.cpp:558
&gt; &gt; +            // m_fileInputElementUnderMouse should be the element we hit tested
&gt; &gt; +            // for, unless it was made display:none by a drop event handler.
&gt; &gt; +            ASSERT(m_fileInputElementUnderMouse == result.innerNonSharedNode() || !m_fileInputElementUnderMouse-&gt;renderer());
&gt; 
&gt; Ditto.

Yeah, you&apos;re right about this one. m_fileInputElementUnderMouse would be set to NULL when moved outside of an input element, but element would still be non-null. I need to fix this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573691</commentid>
    <comment_count>16</comment_count>
      <attachid>130769</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2012-03-08 00:33:13 -0800</bug_when>
    <thetext>Comment on attachment 130769
Patch

r- since the assertion in canProcessDrag() is wrong in some cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574137</commentid>
    <comment_count>17</comment_count>
      <attachid>130893</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2012-03-08 13:36:20 -0800</bug_when>
    <thetext>Created attachment 130893
Patch

An even simpler approach, without the bogus ASSERT in canProcessDrag().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574144</commentid>
    <comment_count>18</comment_count>
      <attachid>130893</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-08 13:40:46 -0800</bug_when>
    <thetext>Comment on attachment 130893
Patch

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

&gt; Source/WebCore/page/DragController.cpp:463
&gt; +        ASSERT(fileInput == element || !fileInput-&gt;renderer());

Makes a lot more sense :D</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574459</commentid>
    <comment_count>19</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2012-03-08 18:24:49 -0800</bug_when>
    <thetext>Committed r110243: &lt;http://trac.webkit.org/changeset/110243&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>130013</attachid>
            <date>2012-03-03 19:30:01 -0800</date>
            <delta_ts>2012-03-03 19:30:01 -0800</delta_ts>
            <desc>Test case</desc>
            <filename>drop.html</filename>
            <type>text/html</type>
            <size>518</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">PHA+VGVzdCBjYXNlIGZvciBidWcgNzk0NDMuIFRvIHJlcHJvZHVjZSwgZHJvcCBhIGZpbGUgb250
byB0aGUgZmlsZSBpbnB1dCBlbGVtZW50IGJlbG93LiBUaGUgbmFtZSBvZiB0aGUgZmlsZSBzaG91
bGQgYXBwZWFyLiBJZiB0aGUgZmlsZSBpcyBvcGVuZWQgb3IgZG93bmxvYWRlZCBpbnN0ZWFkLCB0
aGlzIGJ1ZyByZXByb2R1Y2VzLjwvcD4KPGlucHV0IGlkPSJkcm9wLXRhcmdldCIgdHlwZT0iZmls
ZSI+CjxzY3JpcHQ+CiAgICB2YXIgZHJvcFRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJkcm9wLXRhcmdldCIpOwogICAgZHJvcFRhcmdldC5hZGRFdmVudExpc3RlbmVyKCJkcm9wIiwg
ZnVuY3Rpb24oZSkgewogICAgICAgIGRyb3BUYXJnZXQuc3R5bGUuZGlzcGxheSA9ICJub25lIjsK
ICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICBkcm9wVGFyZ2V0LnN0
eWxlLmRpc3BsYXkgPSAiYmxvY2siOwogICAgICAgIH0sIDApOwogICAgfSwgZmFsc2UpOwo8L3Nj
cmlwdD4=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130674</attachid>
            <date>2012-03-07 12:54:07 -0800</date>
            <delta_ts>2012-03-07 22:11:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79443-20120307125406.patch</filename>
            <type>text/plain</type>
            <size>18124</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5ODAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGYyOWJiZTMxMTc4YjAy
MmQxNzNmZDhiNWVlMDdmZTc1ZjYzZjFhOC4uMTU3Y2VjODdjOWUzNjJlNzJhYWZlNmFkZGFlZDMz
Y2JjNzU5NTU2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDEyLTAzLTA3ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChyMTA1Mzk2
KTogRHJhZ2dpbmcgYW4gaVdvcmsgZG9jdW1lbnQgaW50byBpY2xvdWQuY29tIG9wZW5zIGl0IGlu
IHRoZSBNYWMgYXBwIGluc3RlYWQgb2YgdXBsb2FkaW5nIGl0IHRvIGljbG91ZC5jb20KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5NDQzCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaWNsb3VkLmNvbSByZWdp
c3RlcnMgYSBkcm9wIGV2ZW50IGhhbmRsZXIgdGhhdCBzZXRzIGRpc3BsYXk6bm9uZSBvbiB0aGUK
KyAgICAgICAgZmlsZSBpbnB1dCBlbGVtZW50IHJlY2VpdmluZyB0aGUgZHJvcC4gRHJhZ0NvbnRy
b2xsZXIgd2FzIGxhdGVyIGhpdAorICAgICAgICB0ZXN0aW5nIGZvciB0aGUgZWxlbWVudCB1bmRl
ciB0aGUgbW91c2UgdG8gc2VlIGlmIGl0IGlzIGEgZmlsZSBpbnB1dAorICAgICAgICBlbGVtZW50
IGluIG5lZWQgb2YgcmVjZWl2aW5nIGZpbGVzLiBIb3dldmVyLCBzaW5jZSB0aGUgZmlsZSBpbnB1
dAorICAgICAgICBlbGVtZW50IHJlY2VpdmluZyB0aGUgZHJvcCBubyBsb25nZXIgaGFzIGEgcmVu
ZGVyZXIsIGhpdCB0ZXN0aW5nIHdpbGwKKyAgICAgICAgb3Zlcmxvb2sgaXQsIGxlYWRpbmcgdG8g
RHJhZ0NvbnRyb2xsZXIgYXNzdW1pbmcgYSBkaWZmZXJlbnQgZWxlbWVudCBpcworICAgICAgICB1
bmRlciB0aGUgbW91c2UgdGhhbiB3aGF0IHJlY2VpdmVkIHRoZSBkcm9wIGV2ZW50LgorCisgICAg
ICAgIEZpeCB0aGlzIGJ5IGhhdmluZyBEcmFnQ29udHJvbGxlciBrZWVwIHRyYWNrIG9mIHRoZSBl
bGVtZW50IHVuZGVyIHRoZQorICAgICAgICBtb3VzZS4gSWYgdGhpcyBpcyBhIGZpbGUgaW5wdXQg
ZWxlbWVudCwgc2V0IHJlY2VpdmVkIGZpbGVzIG9uIGl0IGV2ZW4KKyAgICAgICAgaWYgaXQgbm8g
bG9uZ2VyIGhhcyBhIHJlbmRlcmVyLiBEcmFnQ29udHJvbGxlciBhbHJlYWR5IGtlZXBzIHRyYWNr
IG9mCisgICAgICAgIHRoZSBlbGVtZW50IHVuZGVyIHRoZSBtb3VzZSBpZiBpdCBpcyBhIGZpbGUg
aW5wdXQgZWxlbWVudCwgc28gdGhpcworICAgICAgICBwYXRjaCBqdXN0IHVzZXMgdGhhdCBlbGVt
ZW50IGluIHBsYWNlcyB3aGVyZSB1bm5lY2Vzc2FyeSBoaXQgdGVzdGluZworICAgICAgICB3YXMg
dGFraW5nIHBsYWNlIGJlZm9yZS4KKworICAgICAgICBOb3RlIHRoYXQgdGhpcyBkdXBsaWNhdGVz
IHRoZSBlbGVtZW50IHRyYWNraW5nIGRvbmUgYnkgRXZlbnRIYW5kbGVyIGluCisgICAgICAgIHRo
ZSBjYXNlIG9mIERIVE1MIGRyYWcgYWN0aW9ucy4gV2Ugc2hvdWxkIHJlbW92ZSB0aGF0IGR1cGxp
Y2F0aW9uIGF0CisgICAgICAgIHNvbWUgcG9pbnQuCisKKyAgICAgICAgVGVzdDogZmFzdC9ldmVu
dHMvZmlsZS1pbnB1dC1oaWRkZW4taW4tb25kcm9wLmh0bWwKKworICAgICAgICAqIGh0bWwvSFRN
TElucHV0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50Ojpz
ZXRDYW5SZWNlaXZlRHJvcHBlZEZpbGVzKToKKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdDb250cm9sbGVyOjpEcmFnQ29udHJvbGxlcik6
CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29udHJvbGxlcjo6ZHJhZ0V4aXRlZCk6CisgICAgICAg
IChXZWJDb3JlOjpEcmFnQ29udHJvbGxlcjo6cGVyZm9ybURyYWcpOgorICAgICAgICAoV2ViQ29y
ZTo6RHJhZ0NvbnRyb2xsZXI6OnRyeURvY3VtZW50RHJhZyk6CisgICAgICAgIChXZWJDb3JlOjpE
cmFnQ29udHJvbGxlcjo6Y29uY2x1ZGVFZGl0RHJhZyk6CisgICAgICAgIChXZWJDb3JlOjpEcmFn
Q29udHJvbGxlcjo6Y2FuUHJvY2Vzc0RyYWcpOgorICAgICAgICAqIHBhZ2UvRHJhZ0NvbnRyb2xs
ZXIuaDoKKyAgICAgICAgKERyYWdDb250cm9sbGVyKToKKwogMjAxMi0wMy0wNSAgQW5kZXJzIENh
cmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIEFsd2F5cyB1cGRhdGUgdGhl
IHNjcm9sbCBsYXllciBwb3NpdGlvbiBvbiB0aGUgbWFpbiB0aHJlYWQgd2hlbiB3ZSBoYXZlIGFu
IG92ZXJsYXkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4IDBl
MWY5ZGYyMDBkZDU4ZjgxY2UzOTg4ZmNjNjc4ZjNjZjQzMmE3MjYuLmEwN2NlYTZmMDU5ZDYzYWM4
ZDEyODhkNDg0ODhjYTQyOGZmNjIyNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmNwcApAQCAtMTM1Niw3ICsxMzU2LDggQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50Ojpz
ZXRDYW5SZWNlaXZlRHJvcHBlZEZpbGVzKGJvb2wgY2FuUmVjZWl2ZURyb3BwZWRGaWxlcykKICAg
ICBpZiAobV9jYW5SZWNlaXZlRHJvcHBlZEZpbGVzID09IGNhblJlY2VpdmVEcm9wcGVkRmlsZXMp
CiAgICAgICAgIHJldHVybjsKICAgICBtX2NhblJlY2VpdmVEcm9wcGVkRmlsZXMgPSBjYW5SZWNl
aXZlRHJvcHBlZEZpbGVzOwotICAgIHJlbmRlcmVyKCktPnVwZGF0ZUZyb21FbGVtZW50KCk7Cisg
ICAgaWYgKHJlbmRlcmVyKCkpCisgICAgICAgIHJlbmRlcmVyKCktPnVwZGF0ZUZyb21FbGVtZW50
KCk7CiB9CiAKIFN0cmluZyBIVE1MSW5wdXRFbGVtZW50Ojp2aXNpYmxlVmFsdWUoKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAppbmRleCA0ODkxYWFkMGI2MjBiZjYy
MWIyZGRjZTlmZjE2NDVkNjk1NDVjZTE3Li5jYjVlOWQzNjZiZjU1OTA3ZTFkMmEwM2UzMDEyMWEw
OWZiMDBjMzhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcApAQCAtODgs
NyArODgsNyBAQCBEcmFnQ29udHJvbGxlcjo6RHJhZ0NvbnRyb2xsZXIoUGFnZSogcGFnZSwgRHJh
Z0NsaWVudCogY2xpZW50KQogICAgICwgbV9jbGllbnQoY2xpZW50KQogICAgICwgbV9kb2N1bWVu
dFVuZGVyTW91c2UoMCkKICAgICAsIG1fZHJhZ0luaXRpYXRvcigwKQotICAgICwgbV9maWxlSW5w
dXRFbGVtZW50VW5kZXJNb3VzZSgwKQorICAgICwgbV9lbGVtZW50VW5kZXJNb3VzZSgwKQogICAg
ICwgbV9kcmFnRGVzdGluYXRpb25BY3Rpb24oRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uTm9uZSkKICAg
ICAsIG1fZHJhZ1NvdXJjZUFjdGlvbihEcmFnU291cmNlQWN0aW9uTm9uZSkKICAgICAsIG1fZGlk
SW5pdGlhdGVEcmFnKGZhbHNlKQpAQCAtMTc0LDYgKzE3NCwyNyBAQCBEcmFnU2Vzc2lvbiBEcmFn
Q29udHJvbGxlcjo6ZHJhZ0VudGVyZWQoRHJhZ0RhdGEqIGRyYWdEYXRhKQogICAgIHJldHVybiBk
cmFnRW50ZXJlZE9yVXBkYXRlZChkcmFnRGF0YSk7CiB9CiAKK3N0YXRpYyBIVE1MSW5wdXRFbGVt
ZW50KiBhc0ZpbGVJbnB1dChOb2RlKiBub2RlKQoreworICAgIEFTU0VSVChub2RlKTsKKyAgICAK
KyAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSBub2RlLT50b0lucHV0RWxlbWVu
dCgpOworICAgIAorICAgIC8vIElmIHRoaXMgaXMgYSBidXR0b24gaW5zaWRlIG9mIHRoZSBhIGZp
bGUgaW5wdXQsIG1vdmUgdXAgdG8gdGhlIGZpbGUgaW5wdXQuCisgICAgaWYgKGlucHV0RWxlbWVu
dCAmJiBpbnB1dEVsZW1lbnQtPmlzVGV4dEJ1dHRvbigpICYmIGlucHV0RWxlbWVudC0+dHJlZVNj
b3BlKCktPnJvb3ROb2RlKCktPmlzU2hhZG93Um9vdCgpKQorICAgICAgICBpbnB1dEVsZW1lbnQg
PSBpbnB1dEVsZW1lbnQtPnRyZWVTY29wZSgpLT5yb290Tm9kZSgpLT5zaGFkb3dIb3N0KCktPnRv
SW5wdXRFbGVtZW50KCk7CisgICAgCisgICAgcmV0dXJuIGlucHV0RWxlbWVudCAmJiBpbnB1dEVs
ZW1lbnQtPmlzRmlsZVVwbG9hZCgpID8gaW5wdXRFbGVtZW50IDogMDsKK30KKworc3RhdGljIHZv
aWQgc2V0Q2FuUmVjZWl2ZURyb3BwZWRGaWxlc0ZvckVsZW1lbnQoRWxlbWVudCogZWxlbWVudCwg
Ym9vbCBjYW5SZWNlaXZlRHJvcHBlZEZpbGVzKQoreworICAgIGlmICghZWxlbWVudCkKKyAgICAg
ICAgcmV0dXJuOworICAgIGlmIChIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50QXNGaWxlSW5wdXQg
PSBhc0ZpbGVJbnB1dChlbGVtZW50KSkKKyAgICAgICAgZWxlbWVudEFzRmlsZUlucHV0LT5zZXRD
YW5SZWNlaXZlRHJvcHBlZEZpbGVzKGNhblJlY2VpdmVEcm9wcGVkRmlsZXMpOworfQorCiB2b2lk
IERyYWdDb250cm9sbGVyOjpkcmFnRXhpdGVkKERyYWdEYXRhKiBkcmFnRGF0YSkKIHsKICAgICBB
U1NFUlQoZHJhZ0RhdGEpOwpAQCAtMTg3LDkgKzIwOCw4IEBAIHZvaWQgRHJhZ0NvbnRyb2xsZXI6
OmRyYWdFeGl0ZWQoRHJhZ0RhdGEqIGRyYWdEYXRhKQogICAgICAgICBjbGlwYm9hcmQtPnNldEFj
Y2Vzc1BvbGljeShDbGlwYm9hcmROdW1iKTsgICAgLy8gaW52YWxpZGF0ZSBjbGlwYm9hcmQgaGVy
ZSBmb3Igc2VjdXJpdHkKICAgICB9CiAgICAgbW91c2VNb3ZlZEludG9Eb2N1bWVudCgwKTsKLSAg
ICBpZiAobV9maWxlSW5wdXRFbGVtZW50VW5kZXJNb3VzZSkKLSAgICAgICAgbV9maWxlSW5wdXRF
bGVtZW50VW5kZXJNb3VzZS0+c2V0Q2FuUmVjZWl2ZURyb3BwZWRGaWxlcyhmYWxzZSk7Ci0gICAg
bV9maWxlSW5wdXRFbGVtZW50VW5kZXJNb3VzZSA9IDA7CisgICAgc2V0Q2FuUmVjZWl2ZURyb3Bw
ZWRGaWxlc0ZvckVsZW1lbnQobV9lbGVtZW50VW5kZXJNb3VzZS5nZXQoKSwgZmFsc2UpOworICAg
IG1fZWxlbWVudFVuZGVyTW91c2UgPSAwOwogfQogCiBEcmFnU2Vzc2lvbiBEcmFnQ29udHJvbGxl
cjo6ZHJhZ1VwZGF0ZWQoRHJhZ0RhdGEqIGRyYWdEYXRhKQpAQCAtMjAxLDYgKzIyMSw3IEBAIGJv
b2wgRHJhZ0NvbnRyb2xsZXI6OnBlcmZvcm1EcmFnKERyYWdEYXRhKiBkcmFnRGF0YSkKIHsKICAg
ICBBU1NFUlQoZHJhZ0RhdGEpOwogICAgIG1fZG9jdW1lbnRVbmRlck1vdXNlID0gbV9wYWdlLT5t
YWluRnJhbWUoKS0+ZG9jdW1lbnRBdFBvaW50KGRyYWdEYXRhLT5jbGllbnRQb3NpdGlvbigpKTsK
KyAgICBBU1NFUlQoIW1fZWxlbWVudFVuZGVyTW91c2UgfHwgbV9lbGVtZW50VW5kZXJNb3VzZS0+
ZG9jdW1lbnQoKSA9PSBtX2RvY3VtZW50VW5kZXJNb3VzZSk7CiAgICAgaWYgKG1fZHJhZ0Rlc3Rp
bmF0aW9uQWN0aW9uICYgRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uREhUTUwpIHsKICAgICAgICAgbV9j
bGllbnQtPndpbGxQZXJmb3JtRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uKERyYWdEZXN0aW5hdGlvbkFj
dGlvbkRIVE1MLCBkcmFnRGF0YSk7CiAgICAgICAgIFJlZlB0cjxGcmFtZT4gbWFpbkZyYW1lID0g
bV9wYWdlLT5tYWluRnJhbWUoKTsKQEAgLTIxNywxMyArMjM4LDE0IEBAIGJvb2wgRHJhZ0NvbnRy
b2xsZXI6OnBlcmZvcm1EcmFnKERyYWdEYXRhKiBkcmFnRGF0YSkKICAgICAgICAgICAgIHJldHVy
biB0cnVlOwogICAgICAgICB9CiAgICAgfQotCi0gICAgaWYgKChtX2RyYWdEZXN0aW5hdGlvbkFj
dGlvbiAmIERyYWdEZXN0aW5hdGlvbkFjdGlvbkVkaXQpICYmIGNvbmNsdWRlRWRpdERyYWcoZHJh
Z0RhdGEpKSB7Ci0gICAgICAgIG1fZG9jdW1lbnRVbmRlck1vdXNlID0gMDsKLSAgICAgICAgcmV0
dXJuIHRydWU7Ci0gICAgfQotCisgICAgCisgICAgYm9vbCBkaWRDb25jbHVkZUVkaXREcmFnID0g
KG1fZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uICYgRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uRWRpdCkgJiYg
Y29uY2x1ZGVFZGl0RHJhZyhkcmFnRGF0YSk7CisgICAgCisgICAgc2V0Q2FuUmVjZWl2ZURyb3Bw
ZWRGaWxlc0ZvckVsZW1lbnQobV9lbGVtZW50VW5kZXJNb3VzZS5nZXQoKSwgZmFsc2UpOworICAg
IG1fZWxlbWVudFVuZGVyTW91c2UgPSAwOwogICAgIG1fZG9jdW1lbnRVbmRlck1vdXNlID0gMDsK
KyAgICBpZiAoZGlkQ29uY2x1ZGVFZGl0RHJhZykKKyAgICAgICAgcmV0dXJuIHRydWU7CiAKICAg
ICBpZiAob3BlcmF0aW9uRm9yTG9hZChkcmFnRGF0YSkgPT0gRHJhZ09wZXJhdGlvbk5vbmUpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTI2MywxOSArMjg1LDYgQEAgRHJhZ1Nlc3Npb24gRHJh
Z0NvbnRyb2xsZXI6OmRyYWdFbnRlcmVkT3JVcGRhdGVkKERyYWdEYXRhKiBkcmFnRGF0YSkKICAg
ICByZXR1cm4gZHJhZ1Nlc3Npb247CiB9CiAKLXN0YXRpYyBIVE1MSW5wdXRFbGVtZW50KiBhc0Zp
bGVJbnB1dChOb2RlKiBub2RlKQotewotICAgIEFTU0VSVChub2RlKTsKLQotICAgIEhUTUxJbnB1
dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IG5vZGUtPnRvSW5wdXRFbGVtZW50KCk7Ci0KLSAgICAv
LyBJZiB0aGlzIGlzIGEgYnV0dG9uIGluc2lkZSBvZiB0aGUgYSBmaWxlIGlucHV0LCBtb3ZlIHVw
IHRvIHRoZSBmaWxlIGlucHV0LgotICAgIGlmIChpbnB1dEVsZW1lbnQgJiYgaW5wdXRFbGVtZW50
LT5pc1RleHRCdXR0b24oKSAmJiBpbnB1dEVsZW1lbnQtPnRyZWVTY29wZSgpLT5yb290Tm9kZSgp
LT5pc1NoYWRvd1Jvb3QoKSkKLSAgICAgICAgaW5wdXRFbGVtZW50ID0gaW5wdXRFbGVtZW50LT50
cmVlU2NvcGUoKS0+cm9vdE5vZGUoKS0+c2hhZG93SG9zdCgpLT50b0lucHV0RWxlbWVudCgpOwot
Ci0gICAgcmV0dXJuIGlucHV0RWxlbWVudCAmJiBpbnB1dEVsZW1lbnQtPmlzRmlsZVVwbG9hZCgp
ID8gaW5wdXRFbGVtZW50IDogMDsKLX0KLQogLy8gVGhpcyBjYW4gcmV0dXJuIG51bGwgaWYgYW4g
ZW1wdHkgZG9jdW1lbnQgaXMgbG9hZGVkLgogc3RhdGljIEVsZW1lbnQqIGVsZW1lbnRVbmRlck1v
dXNlKERvY3VtZW50KiBkb2N1bWVudFVuZGVyTW91c2UsIGNvbnN0IEludFBvaW50JiBwKQogewpA
QCAtMzIzLDQxICszMzIsMzcgQEAgYm9vbCBEcmFnQ29udHJvbGxlcjo6dHJ5RG9jdW1lbnREcmFn
KERyYWdEYXRhKiBkcmFnRGF0YSwgRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uIGEKICAgICBSZWZQdHI8
RnJhbWVWaWV3PiBmcmFtZVZpZXcgPSBtX2RvY3VtZW50VW5kZXJNb3VzZS0+dmlldygpOwogICAg
IGlmICghZnJhbWVWaWV3KQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgSW50UG9p
bnQgcG9pbnQgPSBmcmFtZVZpZXctPndpbmRvd1RvQ29udGVudHMoZHJhZ0RhdGEtPmNsaWVudFBv
c2l0aW9uKCkpOworICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBlbGVtZW50VW5kZXJNb3VzZShtX2Rv
Y3VtZW50VW5kZXJNb3VzZS5nZXQoKSwgcG9pbnQpOworICAgIGlmIChtX2VsZW1lbnRVbmRlck1v
dXNlICE9IGVsZW1lbnQpIHsKKyAgICAgICAgc2V0Q2FuUmVjZWl2ZURyb3BwZWRGaWxlc0ZvckVs
ZW1lbnQobV9lbGVtZW50VW5kZXJNb3VzZS5nZXQoKSwgZmFsc2UpOworICAgICAgICBtX2VsZW1l
bnRVbmRlck1vdXNlID0gZWxlbWVudDsKKyAgICB9CiAKLSAgICBpZiAobV9pc0hhbmRsaW5nRHJh
ZykgewotICAgICAgICBtX3BhZ2UtPmRyYWdDYXJldENvbnRyb2xsZXIoKS0+Y2xlYXIoKTsKLSAg
ICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfSBlbHNlIGlmICgoYWN0aW9uTWFzayAmIERyYWdEZXN0
aW5hdGlvbkFjdGlvbkVkaXQpICYmIGNhblByb2Nlc3NEcmFnKGRyYWdEYXRhKSkgeworICAgIGlm
ICgoYWN0aW9uTWFzayAmIERyYWdEZXN0aW5hdGlvbkFjdGlvbkVkaXQpICYmIGNhblByb2Nlc3NE
cmFnKGRyYWdEYXRhKSkgewogICAgICAgICBpZiAoZHJhZ0RhdGEtPmNvbnRhaW5zQ29sb3IoKSkg
ewogICAgICAgICAgICAgZHJhZ1Nlc3Npb24ub3BlcmF0aW9uID0gRHJhZ09wZXJhdGlvbkdlbmVy
aWM7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogCi0gICAgICAgIEludFBv
aW50IHBvaW50ID0gZnJhbWVWaWV3LT53aW5kb3dUb0NvbnRlbnRzKGRyYWdEYXRhLT5jbGllbnRQ
b3NpdGlvbigpKTsKLSAgICAgICAgRWxlbWVudCogZWxlbWVudCA9IGVsZW1lbnRVbmRlck1vdXNl
KG1fZG9jdW1lbnRVbmRlck1vdXNlLmdldCgpLCBwb2ludCk7Ci0gICAgICAgIGlmICghZWxlbWVu
dCkKKyAgICAgICAgaWYgKCFtX2VsZW1lbnRVbmRlck1vdXNlKQogICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgICAgICAKLSAgICAgICAgSFRNTElucHV0RWxlbWVudCogZWxlbWVudEFzRmls
ZUlucHV0ID0gYXNGaWxlSW5wdXQoZWxlbWVudCk7Ci0gICAgICAgIGlmIChtX2ZpbGVJbnB1dEVs
ZW1lbnRVbmRlck1vdXNlICE9IGVsZW1lbnRBc0ZpbGVJbnB1dCkgewotICAgICAgICAgICAgaWYg
KG1fZmlsZUlucHV0RWxlbWVudFVuZGVyTW91c2UpCi0gICAgICAgICAgICAgICAgbV9maWxlSW5w
dXRFbGVtZW50VW5kZXJNb3VzZS0+c2V0Q2FuUmVjZWl2ZURyb3BwZWRGaWxlcyhmYWxzZSk7Ci0g
ICAgICAgICAgICBtX2ZpbGVJbnB1dEVsZW1lbnRVbmRlck1vdXNlID0gZWxlbWVudEFzRmlsZUlu
cHV0OwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBpZiAoIW1fZmlsZUlucHV0RWxlbWVu
dFVuZGVyTW91c2UpCisgICAgICAgIEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnRBc0ZpbGVJbnB1
dCA9IG1fZWxlbWVudFVuZGVyTW91c2UgPyBhc0ZpbGVJbnB1dChtX2VsZW1lbnRVbmRlck1vdXNl
LmdldCgpKSA6IDA7CisgICAgICAgIGlmICghZWxlbWVudEFzRmlsZUlucHV0KQogICAgICAgICAg
ICAgbV9wYWdlLT5kcmFnQ2FyZXRDb250cm9sbGVyKCktPnNldENhcmV0UG9zaXRpb24obV9kb2N1
bWVudFVuZGVyTW91c2UtPmZyYW1lKCktPnZpc2libGVQb3NpdGlvbkZvclBvaW50KHBvaW50KSk7
CiAKICAgICAgICAgRnJhbWUqIGlubmVyRnJhbWUgPSBlbGVtZW50LT5kb2N1bWVudCgpLT5mcmFt
ZSgpOwogICAgICAgICBkcmFnU2Vzc2lvbi5vcGVyYXRpb24gPSBkcmFnSXNNb3ZlKGlubmVyRnJh
bWUtPnNlbGVjdGlvbigpLCBkcmFnRGF0YSkgPyBEcmFnT3BlcmF0aW9uTW92ZSA6IERyYWdPcGVy
YXRpb25Db3B5OwotICAgICAgICBkcmFnU2Vzc2lvbi5tb3VzZUlzT3ZlckZpbGVJbnB1dCA9IG1f
ZmlsZUlucHV0RWxlbWVudFVuZGVyTW91c2U7CisgICAgICAgIGRyYWdTZXNzaW9uLm1vdXNlSXNP
dmVyRmlsZUlucHV0ID0gZWxlbWVudEFzRmlsZUlucHV0OwogICAgICAgICBkcmFnU2Vzc2lvbi5u
dW1iZXJPZkl0ZW1zVG9CZUFjY2VwdGVkID0gMDsKIAogICAgICAgICB1bnNpZ25lZCBudW1iZXJP
ZkZpbGVzID0gZHJhZ0RhdGEtPm51bWJlck9mRmlsZXMoKTsKLSAgICAgICAgaWYgKG1fZmlsZUlu
cHV0RWxlbWVudFVuZGVyTW91c2UpIHsKLSAgICAgICAgICAgIGlmIChtX2ZpbGVJbnB1dEVsZW1l
bnRVbmRlck1vdXNlLT5kaXNhYmxlZCgpKQorICAgICAgICBpZiAoZWxlbWVudEFzRmlsZUlucHV0
KSB7CisgICAgICAgICAgICBpZiAoZWxlbWVudEFzRmlsZUlucHV0LT5kaXNhYmxlZCgpKQogICAg
ICAgICAgICAgICAgIGRyYWdTZXNzaW9uLm51bWJlck9mSXRlbXNUb0JlQWNjZXB0ZWQgPSAwOwot
ICAgICAgICAgICAgZWxzZSBpZiAobV9maWxlSW5wdXRFbGVtZW50VW5kZXJNb3VzZS0+bXVsdGlw
bGUoKSkKKyAgICAgICAgICAgIGVsc2UgaWYgKGVsZW1lbnRBc0ZpbGVJbnB1dC0+bXVsdGlwbGUo
KSkKICAgICAgICAgICAgICAgICBkcmFnU2Vzc2lvbi5udW1iZXJPZkl0ZW1zVG9CZUFjY2VwdGVk
ID0gbnVtYmVyT2ZGaWxlczsKICAgICAgICAgICAgIGVsc2UgaWYgKG51bWJlck9mRmlsZXMgPiAx
KQogICAgICAgICAgICAgICAgIGRyYWdTZXNzaW9uLm51bWJlck9mSXRlbXNUb0JlQWNjZXB0ZWQg
PSAwOwpAQCAtMzY2LDcgKzM3MSw3IEBAIGJvb2wgRHJhZ0NvbnRyb2xsZXI6OnRyeURvY3VtZW50
RHJhZyhEcmFnRGF0YSogZHJhZ0RhdGEsIERyYWdEZXN0aW5hdGlvbkFjdGlvbiBhCiAgICAgICAg
ICAgICAKICAgICAgICAgICAgIGlmICghZHJhZ1Nlc3Npb24ubnVtYmVyT2ZJdGVtc1RvQmVBY2Nl
cHRlZCkKICAgICAgICAgICAgICAgICBkcmFnU2Vzc2lvbi5vcGVyYXRpb24gPSBEcmFnT3BlcmF0
aW9uTm9uZTsKLSAgICAgICAgICAgIG1fZmlsZUlucHV0RWxlbWVudFVuZGVyTW91c2UtPnNldENh
blJlY2VpdmVEcm9wcGVkRmlsZXMoZHJhZ1Nlc3Npb24ubnVtYmVyT2ZJdGVtc1RvQmVBY2NlcHRl
ZCk7CisgICAgICAgICAgICBlbGVtZW50QXNGaWxlSW5wdXQtPnNldENhblJlY2VpdmVEcm9wcGVk
RmlsZXMoZHJhZ1Nlc3Npb24ubnVtYmVyT2ZJdGVtc1RvQmVBY2NlcHRlZCk7CiAgICAgICAgIH0g
ZWxzZSB7CiAgICAgICAgICAgICAvLyBXZSBhcmUgbm90IG92ZXIgYSBmaWxlIGlucHV0IGVsZW1l
bnQuIFRoZSBkcmFnZ2VkIGl0ZW0ocykgd2lsbCBvbmx5CiAgICAgICAgICAgICAvLyBiZSBsb2Fk
ZWQgaW50byB0aGUgdmlldyB0aGUgbnVtYmVyIG9mIGRyYWdnZWQgaXRlbXMgaXMgMS4KQEAgLTM3
OCwxMCArMzgzLDkgQEAgYm9vbCBEcmFnQ29udHJvbGxlcjo6dHJ5RG9jdW1lbnREcmFnKERyYWdE
YXRhKiBkcmFnRGF0YSwgRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uIGEKICAgICAKICAgICAvLyBXZSBh
cmUgbm90IG92ZXIgYW4gZWRpdGFibGUgcmVnaW9uLiBNYWtlIHN1cmUgd2UncmUgY2xlYXJpbmcg
YW55IHByaW9yIGRyYWcgY3Vyc29yLgogICAgIG1fcGFnZS0+ZHJhZ0NhcmV0Q29udHJvbGxlcigp
LT5jbGVhcigpOwotICAgIGlmIChtX2ZpbGVJbnB1dEVsZW1lbnRVbmRlck1vdXNlKQotICAgICAg
ICBtX2ZpbGVJbnB1dEVsZW1lbnRVbmRlck1vdXNlLT5zZXRDYW5SZWNlaXZlRHJvcHBlZEZpbGVz
KGZhbHNlKTsKLSAgICBtX2ZpbGVJbnB1dEVsZW1lbnRVbmRlck1vdXNlID0gMDsKLSAgICByZXR1
cm4gZmFsc2U7CisgICAgc2V0Q2FuUmVjZWl2ZURyb3BwZWRGaWxlc0ZvckVsZW1lbnQobV9lbGVt
ZW50VW5kZXJNb3VzZS5nZXQoKSwgZmFsc2UpOworICAgIG1fZWxlbWVudFVuZGVyTW91c2UgPSAw
OworICAgIHJldHVybiBtX2lzSGFuZGxpbmdEcmFnOwogfQogCiBEcmFnU291cmNlQWN0aW9uIERy
YWdDb250cm9sbGVyOjpkZWxlZ2F0ZURyYWdTb3VyY2VBY3Rpb24oY29uc3QgSW50UG9pbnQmIHJv
b3RWaWV3UG9pbnQpCkBAIC00MjQsMTkgKzQyOCwxMSBAQCBib29sIERyYWdDb250cm9sbGVyOjpj
b25jbHVkZUVkaXREcmFnKERyYWdEYXRhKiBkcmFnRGF0YSkKICAgICBBU1NFUlQoZHJhZ0RhdGEp
OwogICAgIEFTU0VSVCghbV9pc0hhbmRsaW5nRHJhZyk7CiAKLSAgICBpZiAobV9maWxlSW5wdXRF
bGVtZW50VW5kZXJNb3VzZSkgewotICAgICAgICBtX2ZpbGVJbnB1dEVsZW1lbnRVbmRlck1vdXNl
LT5zZXRDYW5SZWNlaXZlRHJvcHBlZEZpbGVzKGZhbHNlKTsKLSAgICAgICAgbV9maWxlSW5wdXRF
bGVtZW50VW5kZXJNb3VzZSA9IDA7Ci0gICAgfQotCi0gICAgaWYgKCFtX2RvY3VtZW50VW5kZXJN
b3VzZSkKKyAgICBpZiAoIW1fZG9jdW1lbnRVbmRlck1vdXNlIHx8ICFtX2VsZW1lbnRVbmRlck1v
dXNlKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBJbnRQb2ludCBwb2ludCA9IG1fZG9j
dW1lbnRVbmRlck1vdXNlLT52aWV3KCktPndpbmRvd1RvQ29udGVudHMoZHJhZ0RhdGEtPmNsaWVu
dFBvc2l0aW9uKCkpOwotICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBlbGVtZW50VW5kZXJNb3VzZSht
X2RvY3VtZW50VW5kZXJNb3VzZS5nZXQoKSwgcG9pbnQpOwotICAgIGlmICghZWxlbWVudCkKLSAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgIEZyYW1lKiBpbm5lckZyYW1lID0gZWxlbWVudC0+b3du
ZXJEb2N1bWVudCgpLT5mcmFtZSgpOworICAgIEZyYW1lKiBpbm5lckZyYW1lID0gbV9lbGVtZW50
VW5kZXJNb3VzZS0+b3duZXJEb2N1bWVudCgpLT5mcmFtZSgpOwogICAgIEFTU0VSVChpbm5lckZy
YW1lKTsKIAogICAgIGlmIChtX3BhZ2UtPmRyYWdDYXJldENvbnRyb2xsZXIoKS0+aGFzQ2FyZXQo
KSAmJiAhZGlzcGF0Y2hUZXh0SW5wdXRFdmVudEZvcihpbm5lckZyYW1lLCBkcmFnRGF0YSkpCkBA
IC00NjEsNyArNDU3LDcgQEAgYm9vbCBEcmFnQ29udHJvbGxlcjo6Y29uY2x1ZGVFZGl0RHJhZyhE
cmFnRGF0YSogZHJhZ0RhdGEpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICBp
ZiAoSFRNTElucHV0RWxlbWVudCogZmlsZUlucHV0ID0gYXNGaWxlSW5wdXQoZWxlbWVudCkpIHsK
KyAgICBpZiAoSFRNTElucHV0RWxlbWVudCogZmlsZUlucHV0ID0gYXNGaWxlSW5wdXQobV9lbGVt
ZW50VW5kZXJNb3VzZS5nZXQoKSkpIHsKICAgICAgICAgaWYgKGZpbGVJbnB1dC0+ZGlzYWJsZWQo
KSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtNTM4LDIyICs1MzQsMjEgQEAgYm9v
bCBEcmFnQ29udHJvbGxlcjo6Y2FuUHJvY2Vzc0RyYWcoRHJhZ0RhdGEqIGRyYWdEYXRhKQogICAg
IGlmICghZHJhZ0RhdGEtPmNvbnRhaW5zQ29tcGF0aWJsZUNvbnRlbnQoKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCi0gICAgSW50UG9pbnQgcG9pbnQgPSBtX3BhZ2UtPm1haW5GcmFtZSgpLT52
aWV3KCktPndpbmRvd1RvQ29udGVudHMoZHJhZ0RhdGEtPmNsaWVudFBvc2l0aW9uKCkpOwotICAg
IEhpdFRlc3RSZXN1bHQgcmVzdWx0ID0gSGl0VGVzdFJlc3VsdChwb2ludCk7Ci0gICAgaWYgKCFt
X3BhZ2UtPm1haW5GcmFtZSgpLT5jb250ZW50UmVuZGVyZXIoKSkKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotCi0gICAgcmVzdWx0ID0gbV9wYWdlLT5tYWluRnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCkt
PmhpdFRlc3RSZXN1bHRBdFBvaW50KHBvaW50LCB0cnVlKTsKLQotICAgIGlmICghcmVzdWx0Lmlu
bmVyTm9uU2hhcmVkTm9kZSgpKQorICAgIGlmICghbV9lbGVtZW50VW5kZXJNb3VzZSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKGRyYWdEYXRhLT5jb250YWluc0ZpbGVzKCkgJiYg
YXNGaWxlSW5wdXQocmVzdWx0LmlubmVyTm9uU2hhcmVkTm9kZSgpKSkKKyAgICBpZiAoZHJhZ0Rh
dGEtPmNvbnRhaW5zRmlsZXMoKSAmJiBhc0ZpbGVJbnB1dChtX2VsZW1lbnRVbmRlck1vdXNlLmdl
dCgpKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBpZiAoIXJlc3VsdC5pbm5lck5vblNo
YXJlZE5vZGUoKS0+cmVuZGVyZXJJc0VkaXRhYmxlKCkpCisgICAgaWYgKCFtX2VsZW1lbnRVbmRl
ck1vdXNlLT5yZW5kZXJlcklzRWRpdGFibGUoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IAorICAgIEludFBvaW50IHBvaW50ID0gbV9wYWdlLT5tYWluRnJhbWUoKS0+dmlldygpLT53aW5k
b3dUb0NvbnRlbnRzKGRyYWdEYXRhLT5jbGllbnRQb3NpdGlvbigpKTsKKyAgICBIaXRUZXN0UmVz
dWx0IHJlc3VsdCA9IEhpdFRlc3RSZXN1bHQocG9pbnQpOworICAgIGlmICghbV9wYWdlLT5tYWlu
RnJhbWUoKS0+Y29udGVudFJlbmRlcmVyKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAg
IHJlc3VsdCA9IG1fcGFnZS0+bWFpbkZyYW1lKCktPmV2ZW50SGFuZGxlcigpLT5oaXRUZXN0UmVz
dWx0QXRQb2ludChwb2ludCwgdHJ1ZSk7CiAgICAgaWYgKG1fZGlkSW5pdGlhdGVEcmFnICYmIG1f
ZG9jdW1lbnRVbmRlck1vdXNlID09IG1fZHJhZ0luaXRpYXRvciAmJiByZXN1bHQuaXNTZWxlY3Rl
ZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRHJhZ0NvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xs
ZXIuaAppbmRleCA3NGQ2MTc4MmU4ZjY5ZTY0MDEzNjllMDkxZTViZmJmYTZhNjU5NWE5Li5iYTlm
NmRkMDA0OTNhNjA5MjFlYWJjYWY3ZTk2YzE3ZmI2NGQ2MjkwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9E
cmFnQ29udHJvbGxlci5oCkBAIC0xMjIsNyArMTIyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICAKICAgICAgICAgUmVmUHRyPERvY3VtZW50PiBtX2RvY3VtZW50VW5kZXJNb3VzZTsg
Ly8gVGhlIGRvY3VtZW50IHRoZSBtb3VzZSB3YXMgbGFzdCBkcmFnZ2VkIG92ZXIuCiAgICAgICAg
IFJlZlB0cjxEb2N1bWVudD4gbV9kcmFnSW5pdGlhdG9yOyAvLyBUaGUgRG9jdW1lbnQgKGlmIGFu
eSkgdGhhdCBpbml0aWF0ZWQgdGhlIGRyYWcuCi0gICAgICAgIFJlZlB0cjxIVE1MSW5wdXRFbGVt
ZW50PiBtX2ZpbGVJbnB1dEVsZW1lbnRVbmRlck1vdXNlOworICAgICAgICBSZWZQdHI8RWxlbWVu
dD4gbV9lbGVtZW50VW5kZXJNb3VzZTsKICAgICAgICAgCiAgICAgICAgIERyYWdEZXN0aW5hdGlv
bkFjdGlvbiBtX2RyYWdEZXN0aW5hdGlvbkFjdGlvbjsKICAgICAgICAgRHJhZ1NvdXJjZUFjdGlv
biBtX2RyYWdTb3VyY2VBY3Rpb247CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTIzN2I5ZTFhMmQzMTEwMzE1MGQ2OTkyNjU3
NzE5NjYzMmI0N2U5NS4uNTJmZGQzZTZhMzU2OTFmYmZmNGZhYzViNDA2NDczMDgwYmJmNTdjNyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTAzLTA3ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFw
cGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChyMTA1Mzk2KTogRHJhZ2dpbmcgYW4gaVdv
cmsgZG9jdW1lbnQgaW50byBpY2xvdWQuY29tIG9wZW5zIGl0IGluIHRoZSBNYWMgYXBwIGluc3Rl
YWQgb2YgdXBsb2FkaW5nIGl0IHRvIGljbG91ZC5jb20KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5NDQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9maWxlLWlucHV0LWhpZGRlbi1p
bi1vbmRyb3AtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9maWxl
LWlucHV0LWhpZGRlbi1pbi1vbmRyb3AuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
d2syL1NraXBwZWQ6IFdlYktpdFRlc3RSdW5uZXIgZG9lc24ndCBzdXBwb3J0CisJCUV2ZW50U2Vu
ZGVyLmJlZ2luRHJhZ1dpdGhGaWxlcygpLgorCiAyMDEyLTAzLTA1ICBUb255IENoYW5nICA8dG9u
eUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgSW1wbGVtZW50IGZsZXgtd3JhcDogd3JhcApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZmlsZS1pbnB1dC1oaWRkZW4taW4tb25k
cm9wLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2ZpbGUtaW5wdXQtaGlk
ZGVuLWluLW9uZHJvcC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmRhMDE5ZTg1MDk4NjQyYmYx
MzAyY2M2ZjZiZTQ3YzRkOGMyMTFiZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL2ZpbGUtaW5wdXQtaGlkZGVuLWluLW9uZHJvcC1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwyIEBACitQQVNTIGRyb3BUYXJnZXQudmFsdWUgaXMgIkM6XFxmYWtlcGF0aFxcYWJlLnBu
ZyIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZmlsZS1pbnB1dC1oaWRk
ZW4taW4tb25kcm9wLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9maWxlLWlucHV0LWhp
ZGRlbi1pbi1vbmRyb3AuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YzcwZWY2MDMwMmYyZjkyOWI1YzVhMzM1
OGU5NmY3ZDQ4MjM5MzY5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvZmlsZS1pbnB1dC1oaWRkZW4taW4tb25kcm9wLmh0bWwKQEAgLTAsMCArMSwzOCBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
LndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgdmFyIGRyb3BU
YXJnZXQ7CisgICAgICAgIAorICAgICAgICBmdW5jdGlvbiB0ZXN0KCkKKyAgICAgICAgeworICAg
ICAgICAgICAgZHJvcFRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkcm9wLXRhcmdl
dCIpOworICAgICAgICAgICAgZHJvcFRhcmdldC5hZGRFdmVudExpc3RlbmVyKCJkcm9wIiwgZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICAgICAgZHJvcFRhcmdldC5zdHlsZS5kaXNwbGF5ID0gIm5v
bmUiOworICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZHJvcFRhcmdldC52YWx1ZSIsICJDOlxc
ZmFrZXBhdGhcXGFiZS5wbmciKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgICAgICB9LCAwKTsKKyAgICAgICAgICAg
IH0sIGZhbHNlKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNl
bmRlcikgeworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLmJlZ2luRHJhZ1dpdGhGaWxlcyhb
InJlc291cmNlcy9hYmUucG5nIl0pOworICAgICAgICAgICAgICAgIHZhciB4ID0gZHJvcFRhcmdl
dC5vZmZzZXRMZWZ0ICsgZHJvcFRhcmdldC5vZmZzZXRXaWR0aCAvIDI7CisgICAgICAgICAgICAg
ICAgdmFyIHkgPSBkcm9wVGFyZ2V0Lm9mZnNldFRvcCArIGRyb3BUYXJnZXQub2Zmc2V0SGVpZ2h0
IC8gMjsKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKKyAg
ICAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdCgpIj4KKyAg
ICA8aW5wdXQgdHlwZT0iZmlsZSIgaWQ9ImRyb3AtdGFyZ2V0Ij4KKzwvYm9keT4KKzwvaHRtbD4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS93azIvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9Ta2lwcGVkCmluZGV4
IGM5NDRhZWNmMzg4MDhlOWJkOGMzZDBhOWYzZDA5YTgxOWMxY2U3ZWMuLjJhZTE0N2QwNmIxNDky
ODA1NjNjYTczNzUzYWJhZjBkY2U2MzlhNGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL3drMi9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9Ta2lwcGVkCkBA
IC0xMzQ0LDYgKzEzNDQsNyBAQCBmYXN0L2RvbS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWNs
b25lLWZyYW1lcy5odG1sCiBmYXN0L2V2ZW50cy9kcmFnLWZpbGUtY3Jhc2guaHRtbAogZmFzdC9l
dmVudHMvZHJhZy10by1uYXZpZ2F0ZS5odG1sCiBmYXN0L2V2ZW50cy9kcm9wem9uZS0wMDQuaHRt
bAorZmFzdC9ldmVudHMvZmlsZS1pbnB1dC1oaWRkZW4taW4tb25kcm9wLmh0bWwKIGZhc3QvZXZl
bnRzL3ByZXZlbnQtZHJhZy10by1uYXZpZ2F0ZS5odG1sCiBmYXN0L2ZpbGVzL2FwcGx5LWJsb2It
dXJsLXRvLWltZy5odG1sCiBmYXN0L2ZpbGVzL2FwcGx5LWJsb2ItdXJsLXRvLXhoci5odG1sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130769</attachid>
            <date>2012-03-07 22:11:58 -0800</date>
            <delta_ts>2012-03-08 13:36:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79443-20120307221157.patch</filename>
            <type>text/plain</type>
            <size>9572</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5ODAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGYyOWJiZTMxMTc4YjAy
MmQxNzNmZDhiNWVlMDdmZTc1ZjYzZjFhOC4uNjkwM2U4ZGM3YTFjOTRlNWI5ZGE4ZTk4MzI4OWVj
YTlkZjIyYmFlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTAzLTA3ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChyMTA1Mzk2
KTogRHJhZ2dpbmcgYW4gaVdvcmsgZG9jdW1lbnQgaW50byBpY2xvdWQuY29tIG9wZW5zIGl0IGlu
IHRoZSBNYWMgYXBwIGluc3RlYWQgb2YgdXBsb2FkaW5nIGl0IHRvIGljbG91ZC5jb20KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5NDQzCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaWNsb3VkLmNvbSByZWdp
c3RlcnMgYSBkcm9wIGV2ZW50IGhhbmRsZXIgdGhhdCBzZXRzIGRpc3BsYXk6bm9uZSBvbiB0aGUK
KyAgICAgICAgZmlsZSBpbnB1dCBlbGVtZW50IHJlY2VpdmluZyB0aGUgZHJvcC4gQWZ0ZXIgZGlz
cGF0Y2hpbmcgdGhlIGRyb3AgZXZlbnQsCisgICAgICAgIERyYWdDb250cm9sbGVyIGhpdCB0ZXN0
cyB0aGUgcG9zaXRpb24gdW5kZXIgdGhlIG1vdXNlIHRvIHNlZSBpZiBpdCBpcyBhCisgICAgICAg
IGZpbGUgaW5wdXQgZWxlbWVudCBpbiBuZWVkIG9mIHJlY2VpdmluZyBmaWxlcy4gU2luY2UgdGhl
IGZpbGUgaW5wdXQKKyAgICAgICAgZWxlbWVudCBoYXMgbG9zdCBpdHMgcmVuZGVyZXIsIGl0IGNh
bm5vdCBiZSBmb3VuZCBieSBoaXQgdGVzdGluZywgc28KKyAgICAgICAgdGhlIGRyb3BwZWQgZmls
ZSBpcyBuZXZlciBhdHRhY2hlZCB0byB0aGUgZmlsZSBpbnB1dCBlbGVtZW50LCBubyBjaGFuZ2UK
KyAgICAgICAgZXZlbnQgZmlyZXMsIGFuZCBubyB1cGxvYWQgY29tbWVuY2VzLiBXZSB3YW50IHRo
ZXNlIHRoaW5ncyB0byBoYXBwZW4KKyAgICAgICAgZXZlbiBpZiB0aGUgZWxlbWVudCBpcyBubyBs
b25nZXIgdmlzaWJsZS4KKworICAgICAgICBTaW5jZSB3ZSBhbHJlYWR5IGtlZXAgdHJhY2sgb2Yg
dGhlIGZpbGUgaW5wdXQgZWxlbWVudCB1bmRlciB0aGUgbW91c2UKKyAgICAgICAgdmlhIG1fZmls
ZUlucHV0RWxlbWVudFVuZGVyTW91c2UsIHRoaXMgYWRkaXRpb25hbCBoaXQgdGVzdCBpcworICAg
ICAgICB1bm5lY2Vzc2FyeS4gVXNlIG1fZmlsZUlucHV0RWxlbWVudFVuZGVyTW91c2UgaW4gY29u
Y2x1ZGVFZGl0RHJhZygpCisgICAgICAgIHdoZW4gZHJvcHBpbmcgZmlsZXMuCisKKyAgICAgICAg
VGVzdDogZmFzdC9ldmVudHMvZmlsZS1pbnB1dC1oaWRkZW4taW4tb25kcm9wLmh0bWwKKworICAg
ICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
SW5wdXRFbGVtZW50OjpzZXRDYW5SZWNlaXZlRHJvcHBlZEZpbGVzKTogV2Ugbm93IGNhbGwKKyAg
ICAgICAgdGhpcyBtZXRob2QgYXQgdGltZXMgd2hlcmUgdGhlIGVsZW1lbnQgbm8gbG9uZ2VyIGhh
cyBhIHJlbmRlcmVyLiBBZGQgYQorICAgICAgICBudWxsIGNoZWNrLgorICAgICAgICAqIHBhZ2Uv
RHJhZ0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0NvbnRyb2xsZXI6OnBl
cmZvcm1EcmFnKToKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdDb250cm9sbGVyOjpjb25jbHVkZUVk
aXREcmFnKTogVXNlCisgICAgICAgIG1fZmlsZUlucHV0RWxlbWVudFVuZGVyTW91c2UgaW5zdGVh
ZCBvZiB0aGUgZWxlbWVudCByZXR1cm5lZCBieSBoaXQKKyAgICAgICAgdGVzdGluZy4gQXNzZXJ0
IHRoYXQgbV9maWxlSW5wdXRFbGVtZW50VW5kZXJNb3VzZSBlcXVhbHMgdGhlIGhpdCB0ZXN0ZWQK
KyAgICAgICAgZWxlbWVudCB1bmxlc3MgbV9maWxlSW5wdXRFbGVtZW50VW5kZXJNb3VzZSBkb2Vz
bid0IGhhdmUgYSByZW5kZXJlci4KKyAgICAgICAgKFdlYkNvcmU6OkRyYWdDb250cm9sbGVyOjpj
YW5Qcm9jZXNzRHJhZyk6IERpdHRvLgorCiAyMDEyLTAzLTA1ICBBbmRlcnMgQ2FybHNzb24gIDxh
bmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgQWx3YXlzIHVwZGF0ZSB0aGUgc2Nyb2xsIGxh
eWVyIHBvc2l0aW9uIG9uIHRoZSBtYWluIHRocmVhZCB3aGVuIHdlIGhhdmUgYW4gb3ZlcmxheQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKaW5kZXggMGUxZjlkZjIwMGRk
NThmODFjZTM5ODhmY2M2NzhmM2NmNDMyYTcyNi4uYTA3Y2VhNmYwNTlkNjNhYzhkMTI4OGQ0ODQ4
OGNhNDI4ZmY2MjI2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3Bw
CkBAIC0xMzU2LDcgKzEzNTYsOCBAQCB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnNldENhblJlY2Vp
dmVEcm9wcGVkRmlsZXMoYm9vbCBjYW5SZWNlaXZlRHJvcHBlZEZpbGVzKQogICAgIGlmIChtX2Nh
blJlY2VpdmVEcm9wcGVkRmlsZXMgPT0gY2FuUmVjZWl2ZURyb3BwZWRGaWxlcykKICAgICAgICAg
cmV0dXJuOwogICAgIG1fY2FuUmVjZWl2ZURyb3BwZWRGaWxlcyA9IGNhblJlY2VpdmVEcm9wcGVk
RmlsZXM7Ci0gICAgcmVuZGVyZXIoKS0+dXBkYXRlRnJvbUVsZW1lbnQoKTsKKyAgICBpZiAocmVu
ZGVyZXIoKSkKKyAgICAgICAgcmVuZGVyZXIoKS0+dXBkYXRlRnJvbUVsZW1lbnQoKTsKIH0KIAog
U3RyaW5nIEhUTUxJbnB1dEVsZW1lbnQ6OnZpc2libGVWYWx1ZSgpIGNvbnN0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCmluZGV4IDQ4OTFhYWQwYjYyMGJmNjIxYjJkZGNlOWZm
MTY0NWQ2OTU0NWNlMTcuLjUzMTA3YjRkN2VhM2E3NzU4YmRhYzc1OTEzN2ZmOTg4ZjdhNjdlZDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCkBAIC0yMTgsMTMgKzIxOCwx
OCBAQCBib29sIERyYWdDb250cm9sbGVyOjpwZXJmb3JtRHJhZyhEcmFnRGF0YSogZHJhZ0RhdGEp
CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoKG1fZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uICYg
RHJhZ0Rlc3RpbmF0aW9uQWN0aW9uRWRpdCkgJiYgY29uY2x1ZGVFZGl0RHJhZyhkcmFnRGF0YSkp
IHsKLSAgICAgICAgbV9kb2N1bWVudFVuZGVyTW91c2UgPSAwOwotICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICBib29sIGRpZENvbmNsdWRlRWRpdERyYWcgPSAobV9kcmFnRGVzdGluYXRpb25BY3Rp
b24gJiBEcmFnRGVzdGluYXRpb25BY3Rpb25FZGl0KSAmJiBjb25jbHVkZUVkaXREcmFnKGRyYWdE
YXRhKTsKKyAgICAKKyAgICBpZiAobV9maWxlSW5wdXRFbGVtZW50VW5kZXJNb3VzZSkgeworICAg
ICAgICBtX2ZpbGVJbnB1dEVsZW1lbnRVbmRlck1vdXNlLT5zZXRDYW5SZWNlaXZlRHJvcHBlZEZp
bGVzKGZhbHNlKTsKKyAgICAgICAgbV9maWxlSW5wdXRFbGVtZW50VW5kZXJNb3VzZSA9IDA7CiAg
ICAgfQogCiAgICAgbV9kb2N1bWVudFVuZGVyTW91c2UgPSAwOwogCisgICAgaWYgKGRpZENvbmNs
dWRlRWRpdERyYWcpCisgICAgICAgIHJldHVybiB0cnVlOworCiAgICAgaWYgKG9wZXJhdGlvbkZv
ckxvYWQoZHJhZ0RhdGEpID09IERyYWdPcGVyYXRpb25Ob25lKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKQEAgLTQyNCwxMSArNDI5LDYgQEAgYm9vbCBEcmFnQ29udHJvbGxlcjo6Y29uY2x1ZGVF
ZGl0RHJhZyhEcmFnRGF0YSogZHJhZ0RhdGEpCiAgICAgQVNTRVJUKGRyYWdEYXRhKTsKICAgICBB
U1NFUlQoIW1faXNIYW5kbGluZ0RyYWcpOwogCi0gICAgaWYgKG1fZmlsZUlucHV0RWxlbWVudFVu
ZGVyTW91c2UpIHsKLSAgICAgICAgbV9maWxlSW5wdXRFbGVtZW50VW5kZXJNb3VzZS0+c2V0Q2Fu
UmVjZWl2ZURyb3BwZWRGaWxlcyhmYWxzZSk7Ci0gICAgICAgIG1fZmlsZUlucHV0RWxlbWVudFVu
ZGVyTW91c2UgPSAwOwotICAgIH0KLQogICAgIGlmICghbV9kb2N1bWVudFVuZGVyTW91c2UpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtNDYxLDggKzQ2MSwxMSBAQCBib29sIERyYWdDb250
cm9sbGVyOjpjb25jbHVkZUVkaXREcmFnKERyYWdEYXRhKiBkcmFnRGF0YSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIH0KIAotICAgIGlmIChIVE1MSW5wdXRFbGVtZW50KiBmaWxlSW5wdXQg
PSBhc0ZpbGVJbnB1dChlbGVtZW50KSkgewotICAgICAgICBpZiAoZmlsZUlucHV0LT5kaXNhYmxl
ZCgpKQorICAgIGlmIChtX2ZpbGVJbnB1dEVsZW1lbnRVbmRlck1vdXNlKSB7CisgICAgICAgIC8v
IG1fZmlsZUlucHV0RWxlbWVudFVuZGVyTW91c2Ugc2hvdWxkIGJlIHRoZSBlbGVtZW50IHdlIGhp
dCB0ZXN0ZWQgZm9yLAorICAgICAgICAvLyB1bmxlc3MgaXQgd2FzIG1hZGUgZGlzcGxheTpub25l
IGJ5IGEgZHJvcCBldmVudCBoYW5kbGVyLgorICAgICAgICBBU1NFUlQobV9maWxlSW5wdXRFbGVt
ZW50VW5kZXJNb3VzZSA9PSBlbGVtZW50IHx8ICFtX2ZpbGVJbnB1dEVsZW1lbnRVbmRlck1vdXNl
LT5yZW5kZXJlcigpKTsKKyAgICAgICAgaWYgKG1fZmlsZUlucHV0RWxlbWVudFVuZGVyTW91c2Ut
PmRpc2FibGVkKCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgaWYgKCFk
cmFnRGF0YS0+Y29udGFpbnNGaWxlcygpKQpAQCAtNDczLDcgKzQ3Niw3IEBAIGJvb2wgRHJhZ0Nv
bnRyb2xsZXI6OmNvbmNsdWRlRWRpdERyYWcoRHJhZ0RhdGEqIGRyYWdEYXRhKQogICAgICAgICBp
ZiAoZmlsZW5hbWVzLmlzRW1wdHkoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAg
ICAgICBmaWxlSW5wdXQtPnJlY2VpdmVEcm9wcGVkRmlsZXMoZmlsZW5hbWVzKTsKKyAgICAgICAg
bV9maWxlSW5wdXRFbGVtZW50VW5kZXJNb3VzZS0+cmVjZWl2ZURyb3BwZWRGaWxlcyhmaWxlbmFt
ZXMpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTU0OCw4ICs1NTEsMTcgQEAg
Ym9vbCBEcmFnQ29udHJvbGxlcjo6Y2FuUHJvY2Vzc0RyYWcoRHJhZ0RhdGEqIGRyYWdEYXRhKQog
ICAgIGlmICghcmVzdWx0LmlubmVyTm9uU2hhcmVkTm9kZSgpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKLSAgICBpZiAoZHJhZ0RhdGEtPmNvbnRhaW5zRmlsZXMoKSAmJiBhc0ZpbGVJbnB1dChy
ZXN1bHQuaW5uZXJOb25TaGFyZWROb2RlKCkpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBp
ZiAoZHJhZ0RhdGEtPmNvbnRhaW5zRmlsZXMoKSkgeworICAgICAgICBpZiAobV9maWxlSW5wdXRF
bGVtZW50VW5kZXJNb3VzZSkgeworICAgICAgICAgICAgLy8gbV9maWxlSW5wdXRFbGVtZW50VW5k
ZXJNb3VzZSBzaG91bGQgYmUgdGhlIGVsZW1lbnQgd2UgaGl0IHRlc3RlZAorICAgICAgICAgICAg
Ly8gZm9yLCB1bmxlc3MgaXQgd2FzIG1hZGUgZGlzcGxheTpub25lIGJ5IGEgZHJvcCBldmVudCBo
YW5kbGVyLgorICAgICAgICAgICAgQVNTRVJUKG1fZmlsZUlucHV0RWxlbWVudFVuZGVyTW91c2Ug
PT0gcmVzdWx0LmlubmVyTm9uU2hhcmVkTm9kZSgpIHx8ICFtX2ZpbGVJbnB1dEVsZW1lbnRVbmRl
ck1vdXNlLT5yZW5kZXJlcigpKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9
CisgICAgICAgIAorICAgICAgICBpZiAoYXNGaWxlSW5wdXQocmVzdWx0LmlubmVyTm9uU2hhcmVk
Tm9kZSgpKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KIAogICAgIGlmICghcmVz
dWx0LmlubmVyTm9uU2hhcmVkTm9kZSgpLT5yZW5kZXJlcklzRWRpdGFibGUoKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDEyMzdiOWUxYTJkMzExMDMxNTBkNjk5MjY1NzcxOTY2MzJi
NDdlOTUuLjFlZjg4MzgxOThkYjZjYzJkOGExNDE2ZGU2MTJiN2FjMDM1ZTQ3ODggMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNSBAQAorMjAxMi0wMy0wNyAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+
CisKKyAgICAgICAgUkVHUkVTU0lPTiAocjEwNTM5Nik6IERyYWdnaW5nIGFuIGlXb3JrIGRvY3Vt
ZW50IGludG8gaWNsb3VkLmNvbSBvcGVucyBpdCBpbiB0aGUgTWFjIGFwcCBpbnN0ZWFkIG9mIHVw
bG9hZGluZyBpdCB0byBpY2xvdWQuY29tCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD03OTQ0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogZmFzdC9ldmVudHMvZmlsZS1pbnB1dC1oaWRkZW4taW4tb25kcm9w
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvZmlsZS1pbnB1dC1o
aWRkZW4taW4tb25kcm9wLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL3drMi9Ta2lw
cGVkOiBXZWJLaXRUZXN0UnVubmVyIGRvZXNuJ3Qgc3VwcG9ydAorICAgICAgICBFdmVudFNlbmRl
ci5iZWdpbkRyYWdXaXRoRmlsZXMoKS4KKwogMjAxMi0wMy0wNSAgVG9ueSBDaGFuZyAgPHRvbnlA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIEltcGxlbWVudCBmbGV4LXdyYXA6IHdyYXAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2ZpbGUtaW5wdXQtaGlkZGVuLWluLW9uZHJv
cC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9maWxlLWlucHV0LWhpZGRl
bi1pbi1vbmRyb3AtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJkYTAxOWU4NTA5ODY0MmJmMTMw
MmNjNmY2YmU0N2M0ZDhjMjExYmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9maWxlLWlucHV0LWhpZGRlbi1pbi1vbmRyb3AtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMiBAQAorUEFTUyBkcm9wVGFyZ2V0LnZhbHVlIGlzICJDOlxcZmFrZXBhdGhcXGFiZS5wbmci
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2ZpbGUtaW5wdXQtaGlkZGVu
LWluLW9uZHJvcC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZmlsZS1pbnB1dC1oaWRk
ZW4taW4tb25kcm9wLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWM3MGVmNjAzMDJmMmY5MjliNWM1YTMzNThl
OTZmN2Q0ODIzOTM2OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L2ZpbGUtaW5wdXQtaGlkZGVuLWluLW9uZHJvcC5odG1sCkBAIC0wLDAgKzEsMzggQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53
YWl0VW50aWxEb25lKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHZhciBkcm9wVGFy
Z2V0OworICAgICAgICAKKyAgICAgICAgZnVuY3Rpb24gdGVzdCgpCisgICAgICAgIHsKKyAgICAg
ICAgICAgIGRyb3BUYXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZHJvcC10YXJnZXQi
KTsKKyAgICAgICAgICAgIGRyb3BUYXJnZXQuYWRkRXZlbnRMaXN0ZW5lcigiZHJvcCIsIGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgICAgIGRyb3BUYXJnZXQuc3R5bGUuZGlzcGxheSA9ICJub25l
IjsKKyAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
ICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRyb3BUYXJnZXQudmFsdWUiLCAiQzpcXGZh
a2VwYXRoXFxhYmUucG5nIik7CisgICAgICAgICAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICAgICAgfSwgMCk7CisgICAgICAgICAgICB9
LCBmYWxzZSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmICh3aW5kb3cuZXZlbnRTZW5k
ZXIpIHsKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5iZWdpbkRyYWdXaXRoRmlsZXMoWyJy
ZXNvdXJjZXMvYWJlLnBuZyJdKTsKKyAgICAgICAgICAgICAgICB2YXIgeCA9IGRyb3BUYXJnZXQu
b2Zmc2V0TGVmdCArIGRyb3BUYXJnZXQub2Zmc2V0V2lkdGggLyAyOworICAgICAgICAgICAgICAg
IHZhciB5ID0gZHJvcFRhcmdldC5vZmZzZXRUb3AgKyBkcm9wVGFyZ2V0Lm9mZnNldEhlaWdodCAv
IDI7CisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7CisgICAg
ICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworICAgICAgICAgICAgfQorICAgICAg
ICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3QoKSI+CisgICAg
PGlucHV0IHR5cGU9ImZpbGUiIGlkPSJkcm9wLXRhcmdldCI+Cis8L2JvZHk+Cis8L2h0bWw+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2syL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvU2tpcHBlZAppbmRleCBj
OTQ0YWVjZjM4ODA4ZTliZDhjM2QwYTlmM2QwOWE4MTljMWNlN2VjLi4yYWUxNDdkMDZiMTQ5Mjgw
NTYzY2E3Mzc1M2FiYWYwZGNlNjM5YTRhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS93azIvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvU2tpcHBlZApAQCAt
MTM0NCw2ICsxMzQ0LDcgQEAgZmFzdC9kb20vV2luZG93L3dpbmRvdy1wb3N0bWVzc2FnZS1jbG9u
ZS1mcmFtZXMuaHRtbAogZmFzdC9ldmVudHMvZHJhZy1maWxlLWNyYXNoLmh0bWwKIGZhc3QvZXZl
bnRzL2RyYWctdG8tbmF2aWdhdGUuaHRtbAogZmFzdC9ldmVudHMvZHJvcHpvbmUtMDA0Lmh0bWwK
K2Zhc3QvZXZlbnRzL2ZpbGUtaW5wdXQtaGlkZGVuLWluLW9uZHJvcC5odG1sCiBmYXN0L2V2ZW50
cy9wcmV2ZW50LWRyYWctdG8tbmF2aWdhdGUuaHRtbAogZmFzdC9maWxlcy9hcHBseS1ibG9iLXVy
bC10by1pbWcuaHRtbAogZmFzdC9maWxlcy9hcHBseS1ibG9iLXVybC10by14aHIuaHRtbAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130893</attachid>
            <date>2012-03-08 13:36:20 -0800</date>
            <delta_ts>2012-03-08 18:15:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79443-20120308133619.patch</filename>
            <type>text/plain</type>
            <size>7368</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5ODAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGYyOWJiZTMxMTc4YjAy
MmQxNzNmZDhiNWVlMDdmZTc1ZjYzZjFhOC4uMmFmMmM5NzZkN2FiYjU1MmFmZTQwMzAxMzhkMTUx
ZmQ0NTJlMDVkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTAzLTA3ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChyMTA1Mzk2
KTogRHJhZ2dpbmcgYW4gaVdvcmsgZG9jdW1lbnQgaW50byBpY2xvdWQuY29tIG9wZW5zIGl0IGlu
IHRoZSBNYWMgYXBwIGluc3RlYWQgb2YgdXBsb2FkaW5nIGl0IHRvIGljbG91ZC5jb20KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5NDQzCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaWNsb3VkLmNvbSByZWdp
c3RlcnMgYSBkcm9wIGV2ZW50IGhhbmRsZXIgdGhhdCBzZXRzIGRpc3BsYXk6bm9uZSBvbiB0aGUK
KyAgICAgICAgZmlsZSBpbnB1dCBlbGVtZW50IHJlY2VpdmluZyB0aGUgZHJvcC4gQWZ0ZXIgZGlz
cGF0Y2hpbmcgdGhlIGRyb3AgZXZlbnQsCisgICAgICAgIERyYWdDb250cm9sbGVyIGhpdCB0ZXN0
cyB0aGUgcG9zaXRpb24gdW5kZXIgdGhlIG1vdXNlIHRvIHNlZSBpZiBpdCBpcyBhCisgICAgICAg
IGZpbGUgaW5wdXQgZWxlbWVudCBpbiBuZWVkIG9mIHJlY2VpdmluZyBmaWxlcy4gU2luY2UgdGhl
IGZpbGUgaW5wdXQKKyAgICAgICAgZWxlbWVudCBoYXMgbG9zdCBpdHMgcmVuZGVyZXIsIGl0IGNh
bm5vdCBiZSBmb3VuZCBieSBoaXQgdGVzdGluZywgc28KKyAgICAgICAgdGhlIGRyb3BwZWQgZmls
ZSBpcyBuZXZlciBhdHRhY2hlZCB0byB0aGUgZmlsZSBpbnB1dCBlbGVtZW50LCBubyBjaGFuZ2UK
KyAgICAgICAgZXZlbnQgZmlyZXMsIGFuZCBubyB1cGxvYWQgY29tbWVuY2VzLiBXZSB3YW50IHRo
ZXNlIHRoaW5ncyB0byBoYXBwZW4KKyAgICAgICAgZXZlbiBpZiB0aGUgZWxlbWVudCBpcyBubyBs
b25nZXIgdmlzaWJsZS4KKworICAgICAgICBTaW5jZSB3ZSBhbHJlYWR5IGtlZXAgdHJhY2sgb2Yg
dGhlIGZpbGUgaW5wdXQgZWxlbWVudCB1bmRlciB0aGUgbW91c2UKKyAgICAgICAgdmlhIG1fZmls
ZUlucHV0RWxlbWVudFVuZGVyTW91c2UsIHRoaXMgYWRkaXRpb25hbCBoaXQgdGVzdCBpcworICAg
ICAgICB1bm5lY2Vzc2FyeS4gVXNlIG1fZmlsZUlucHV0RWxlbWVudFVuZGVyTW91c2UgaW4gY29u
Y2x1ZGVFZGl0RHJhZygpCisgICAgICAgIHdoZW4gZHJvcHBpbmcgZmlsZXMuCisKKyAgICAgICAg
VGVzdDogZmFzdC9ldmVudHMvZmlsZS1pbnB1dC1oaWRkZW4taW4tb25kcm9wLmh0bWwKKworICAg
ICAgICAqIHBhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0Nv
bnRyb2xsZXI6OmNvbmNsdWRlRWRpdERyYWcpOiBVc2UKKyAgICAgICAgbV9maWxlSW5wdXRFbGVt
ZW50VW5kZXJNb3VzZSBpbnN0ZWFkIG9mIHRoZSBlbGVtZW50IHJldHVybmVkIGJ5IGhpdAorICAg
ICAgICB0ZXN0aW5nLiBBc3NlcnQgdGhhdCBtX2ZpbGVJbnB1dEVsZW1lbnRVbmRlck1vdXNlIGVx
dWFscyB0aGUgaGl0IHRlc3RlZAorICAgICAgICBlbGVtZW50IHVubGVzcyBtX2ZpbGVJbnB1dEVs
ZW1lbnRVbmRlck1vdXNlIGRvZXNuJ3QgaGF2ZSBhIHJlbmRlcmVyLgorCiAyMDEyLTAzLTA1ICBB
bmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgQWx3YXlzIHVw
ZGF0ZSB0aGUgc2Nyb2xsIGxheWVyIHBvc2l0aW9uIG9uIHRoZSBtYWluIHRocmVhZCB3aGVuIHdl
IGhhdmUgYW4gb3ZlcmxheQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29u
dHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAppbmRl
eCA0ODkxYWFkMGI2MjBiZjYyMWIyZGRjZTlmZjE2NDVkNjk1NDVjZTE3Li4yNDdmZTM5NDM3ZGE0
ODliNTNmOWRjNzE1Y2I5ZGE4MjNkOTdkN2YwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RyYWdDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250
cm9sbGVyLmNwcApAQCAtNDI0LDYgKzQyNCw3IEBAIGJvb2wgRHJhZ0NvbnRyb2xsZXI6OmNvbmNs
dWRlRWRpdERyYWcoRHJhZ0RhdGEqIGRyYWdEYXRhKQogICAgIEFTU0VSVChkcmFnRGF0YSk7CiAg
ICAgQVNTRVJUKCFtX2lzSGFuZGxpbmdEcmFnKTsKIAorICAgIFJlZlB0cjxIVE1MSW5wdXRFbGVt
ZW50PiBmaWxlSW5wdXQgPSBtX2ZpbGVJbnB1dEVsZW1lbnRVbmRlck1vdXNlOwogICAgIGlmICht
X2ZpbGVJbnB1dEVsZW1lbnRVbmRlck1vdXNlKSB7CiAgICAgICAgIG1fZmlsZUlucHV0RWxlbWVu
dFVuZGVyTW91c2UtPnNldENhblJlY2VpdmVEcm9wcGVkRmlsZXMoZmFsc2UpOwogICAgICAgICBt
X2ZpbGVJbnB1dEVsZW1lbnRVbmRlck1vdXNlID0gMDsKQEAgLTQ1NiwxOCArNDU3LDEzIEBAIGJv
b2wgRHJhZ0NvbnRyb2xsZXI6OmNvbmNsdWRlRWRpdERyYWcoRHJhZ0RhdGEqIGRyYWdEYXRhKQog
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICBpZiAoIW1fcGFnZS0+ZHJhZ0NvbnRy
b2xsZXIoKS0+Y2FuUHJvY2Vzc0RyYWcoZHJhZ0RhdGEpKSB7Ci0gICAgICAgIG1fcGFnZS0+ZHJh
Z0NhcmV0Q29udHJvbGxlcigpLT5jbGVhcigpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
fQotCi0gICAgaWYgKEhUTUxJbnB1dEVsZW1lbnQqIGZpbGVJbnB1dCA9IGFzRmlsZUlucHV0KGVs
ZW1lbnQpKSB7CisgICAgaWYgKGRyYWdEYXRhLT5jb250YWluc0ZpbGVzKCkgJiYgZmlsZUlucHV0
KSB7CisgICAgICAgIC8vIGZpbGVJbnB1dCBzaG91bGQgYmUgdGhlIGVsZW1lbnQgd2UgaGl0IHRl
c3RlZCBmb3IsIHVubGVzcyBpdCB3YXMgbWFkZQorICAgICAgICAvLyBkaXNwbGF5Om5vbmUgaW4g
YSBkcm9wIGV2ZW50IGhhbmRsZXIuCisgICAgICAgIEFTU0VSVChmaWxlSW5wdXQgPT0gZWxlbWVu
dCB8fCAhZmlsZUlucHV0LT5yZW5kZXJlcigpKTsKICAgICAgICAgaWYgKGZpbGVJbnB1dC0+ZGlz
YWJsZWQoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgICAgICBpZiAoIWRyYWdE
YXRhLT5jb250YWluc0ZpbGVzKCkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KICAgICAg
ICAgVmVjdG9yPFN0cmluZz4gZmlsZW5hbWVzOwogICAgICAgICBkcmFnRGF0YS0+YXNGaWxlbmFt
ZXMoZmlsZW5hbWVzKTsKICAgICAgICAgaWYgKGZpbGVuYW1lcy5pc0VtcHR5KCkpCkBAIC00Nzcs
NiArNDczLDExIEBAIGJvb2wgRHJhZ0NvbnRyb2xsZXI6OmNvbmNsdWRlRWRpdERyYWcoRHJhZ0Rh
dGEqIGRyYWdEYXRhKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKKyAgICBpZiAoIW1f
cGFnZS0+ZHJhZ0NvbnRyb2xsZXIoKS0+Y2FuUHJvY2Vzc0RyYWcoZHJhZ0RhdGEpKSB7CisgICAg
ICAgIG1fcGFnZS0+ZHJhZ0NhcmV0Q29udHJvbGxlcigpLT5jbGVhcigpOworICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgfQorCiAgICAgVmlzaWJsZVNlbGVjdGlvbiBkcmFnQ2FyZXQgPSBtX3Bh
Z2UtPmRyYWdDYXJldENvbnRyb2xsZXIoKS0+Y2FyZXRQb3NpdGlvbigpOwogICAgIG1fcGFnZS0+
ZHJhZ0NhcmV0Q29udHJvbGxlcigpLT5jbGVhcigpOwogICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2Ug
PSBkcmFnQ2FyZXQudG9Ob3JtYWxpemVkUmFuZ2UoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxMjM3YjllMWEyZDMxMTAz
MTUwZDY5OTI2NTc3MTk2NjMyYjQ3ZTk1Li4xZWY4ODM4MTk4ZGI2Y2MyZDhhMTQxNmRlNjEyYjdh
YzAzNWU0Nzg4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDMtMDcgIEFuZHkgRXN0ZXMg
IDxhZXN0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04gKHIxMDUzOTYpOiBEcmFn
Z2luZyBhbiBpV29yayBkb2N1bWVudCBpbnRvIGljbG91ZC5jb20gb3BlbnMgaXQgaW4gdGhlIE1h
YyBhcHAgaW5zdGVhZCBvZiB1cGxvYWRpbmcgaXQgdG8gaWNsb3VkLmNvbQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzk0NDMKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZXZlbnRzL2ZpbGUtaW5w
dXQtaGlkZGVuLWluLW9uZHJvcC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
ZXZlbnRzL2ZpbGUtaW5wdXQtaGlkZGVuLWluLW9uZHJvcC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS93azIvU2tpcHBlZDogV2ViS2l0VGVzdFJ1bm5lciBkb2Vzbid0IHN1cHBvcnQK
KyAgICAgICAgRXZlbnRTZW5kZXIuYmVnaW5EcmFnV2l0aEZpbGVzKCkuCisKIDIwMTItMDMtMDUg
IFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KIAogICAgICAgICBJbXBsZW1lbnQgZmxl
eC13cmFwOiB3cmFwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9maWxlLWlu
cHV0LWhpZGRlbi1pbi1vbmRyb3AtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvZmlsZS1pbnB1dC1oaWRkZW4taW4tb25kcm9wLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4y
ZGEwMTllODUwOTg2NDJiZjEzMDJjYzZmNmJlNDdjNGQ4YzIxMWJmCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZmlsZS1pbnB1dC1oaWRkZW4taW4tb25kcm9wLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDIgQEAKK1BBU1MgZHJvcFRhcmdldC52YWx1ZSBpcyAiQzpc
XGZha2VwYXRoXFxhYmUucG5nIgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy9maWxlLWlucHV0LWhpZGRlbi1pbi1vbmRyb3AuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL2ZpbGUtaW5wdXQtaGlkZGVuLWluLW9uZHJvcC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjljNzBlZjYw
MzAyZjJmOTI5YjVjNWEzMzU4ZTk2ZjdkNDgyMzkzNjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9maWxlLWlucHV0LWhpZGRlbi1pbi1vbmRyb3AuaHRtbApAQCAt
MCwwICsxLDM4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlw
dCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdD4KKyAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICB9CisgICAgICAgIAor
ICAgICAgICB2YXIgZHJvcFRhcmdldDsKKyAgICAgICAgCisgICAgICAgIGZ1bmN0aW9uIHRlc3Qo
KQorICAgICAgICB7CisgICAgICAgICAgICBkcm9wVGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImRyb3AtdGFyZ2V0Iik7CisgICAgICAgICAgICBkcm9wVGFyZ2V0LmFkZEV2ZW50TGlz
dGVuZXIoImRyb3AiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBkcm9wVGFyZ2V0LnN0
eWxlLmRpc3BsYXkgPSAibm9uZSI7CisgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlv
bigpIHsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJkcm9wVGFy
Z2V0LnZhbHVlIiwgIkM6XFxmYWtlcGF0aFxcYWJlLnBuZyIpOworICAgICAgICAgICAgICAgICAg
ICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAgICAgICAgICAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgICAgIH0s
IDApOworICAgICAgICAgICAgfSwgZmFsc2UpOworICAgICAgICAgICAgCisgICAgICAgICAgICBp
ZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIuYmVn
aW5EcmFnV2l0aEZpbGVzKFsicmVzb3VyY2VzL2FiZS5wbmciXSk7CisgICAgICAgICAgICAgICAg
dmFyIHggPSBkcm9wVGFyZ2V0Lm9mZnNldExlZnQgKyBkcm9wVGFyZ2V0Lm9mZnNldFdpZHRoIC8g
MjsKKyAgICAgICAgICAgICAgICB2YXIgeSA9IGRyb3BUYXJnZXQub2Zmc2V0VG9wICsgZHJvcFRh
cmdldC5vZmZzZXRIZWlnaHQgLyAyOworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNl
TW92ZVRvKHgsIHkpOworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25s
b2FkPSJ0ZXN0KCkiPgorICAgIDxpbnB1dCB0eXBlPSJmaWxlIiBpZD0iZHJvcC10YXJnZXQiPgor
PC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2syL1NraXBwZWQKaW5kZXggYzk0NGFlY2YzODgwOGU5YmQ4YzNkMGE5ZjNkMDlhODE5YzFjZTdl
Yy4uMmFlMTQ3ZDA2YjE0OTI4MDU2M2NhNzM3NTNhYmFmMGRjZTYzOWE0YSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2syL1NraXBwZWQKQEAgLTEzNDQsNiArMTM0NCw3IEBAIGZhc3QvZG9tL1dpbmRvdy93aW5k
b3ctcG9zdG1lc3NhZ2UtY2xvbmUtZnJhbWVzLmh0bWwKIGZhc3QvZXZlbnRzL2RyYWctZmlsZS1j
cmFzaC5odG1sCiBmYXN0L2V2ZW50cy9kcmFnLXRvLW5hdmlnYXRlLmh0bWwKIGZhc3QvZXZlbnRz
L2Ryb3B6b25lLTAwNC5odG1sCitmYXN0L2V2ZW50cy9maWxlLWlucHV0LWhpZGRlbi1pbi1vbmRy
b3AuaHRtbAogZmFzdC9ldmVudHMvcHJldmVudC1kcmFnLXRvLW5hdmlnYXRlLmh0bWwKIGZhc3Qv
ZmlsZXMvYXBwbHktYmxvYi11cmwtdG8taW1nLmh0bWwKIGZhc3QvZmlsZXMvYXBwbHktYmxvYi11
cmwtdG8teGhyLmh0bWwK
</data>
<flag name="review"
          id="134036"
          type_id="1"
          status="+"
          setter="rniwa"
    />
    <flag name="commit-queue"
          id="134040"
          type_id="3"
          status="-"
          setter="aestes"
    />
          </attachment>
      

    </bug>

</bugzilla>