<?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>56213</bug_id>
          
          <creation_ts>2011-03-11 12:00:21 -0800</creation_ts>
          <short_desc>Selection uses first mousemove&apos;s localRect instead of that of mousedown</short_desc>
          <delta_ts>2012-04-30 22:37:48 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Minor</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>56223</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>alex</cc>
    
    <cc>ap</cc>
    
    <cc>daniele.metilli</cc>
    
    <cc>darin</cc>
    
    <cc>enrica</cc>
    
    <cc>eric</cc>
    
    <cc>evan</cc>
    
    <cc>leviw</cc>
    
    <cc>ojan</cc>
    
    <cc>patrick</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>366198</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-03-11 12:00:21 -0800</bug_when>
    <thetext>Currently, even when m_mouseDownMayStartSelect = true, we use the coordinates given by the first mousemouse event for selection / dragging purposes.  So when a user rapidly moves mouse to select text, it could be few or more letters off.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366209</commentid>
    <comment_count>1</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-03-11 12:06:09 -0800</bug_when>
    <thetext>I presume this is why it&apos;s so hard to select sometimes!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366215</commentid>
    <comment_count>2</comment_count>
      <attachid>85509</attachid>
    <who name="Evan Martin">evan</who>
    <bug_when>2011-03-11 12:10:29 -0800</bug_when>
    <thetext>Created attachment 85509
layout test that uses dumpAsText and prints PASS/FAIL

This is a better test than the one I included in my mail to webkit-dev.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366218</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-03-11 12:13:27 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt; I presume this is why it&apos;s so hard to select sometimes!

Yes!  I&apos;m so glad that Evan has finally spotted this bug.  The fix should be fairly straight forward.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366220</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-03-11 12:14:48 -0800</bug_when>
    <thetext>See also: bug 52986 (duplicate?).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366221</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-03-11 12:16:24 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; See also: bug 52986 (duplicate?).

Could be a complement. Whereas this bug addresses the issue with mousedown, the bug 52986 seems to address mouseup.  I think we need to be calling updateSelectionForMouseDrag in mouseup as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366369</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-03-11 15:25:02 -0800</bug_when>
    <thetext>It seems like dragstart event is using the correct coordinate:
(around L2690 of EventHandler.cpp)
        DragController* dragController = page ? page-&gt;dragController() : 0;
        bool startedDrag = dragController &amp;&amp; dragController-&gt;startDrag(m_frame, dragState().m_dragClipboard.get(), srcOp, event.event(), m_mouseDownPos, dragState().m_dragSrcIsDHTML);

Notice we use m_mouseDownPos here.  We just need to do the same and call updateSelectionForMouseDrag when the selection starts with mousedown&apos;s coordinates.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366466</commentid>
    <comment_count>7</comment_count>
      <attachid>85561</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-03-11 18:09:51 -0800</bug_when>
    <thetext>Created attachment 85561
fixes the bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366474</commentid>
    <comment_count>8</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-03-11 18:36:33 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; Created an attachment (id=85561) [details]
&gt; fixes the bug

One thing to consider here is what should happen if script / user modifies contents between the mouse down and the first mouse move.  In my current approach, the hit test is done in the first mouse move so any modifications done between mouse down and mouse move will be taken into account when we do the hit test.  This means that if scripts removes / appends nodes in keydown&apos;s event listener, we&apos;ll be doing the hit test against the new nodes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366488</commentid>
    <comment_count>9</comment_count>
      <attachid>85561</attachid>
    <who name="Evan Martin">evan</who>
    <bug_when>2011-03-11 19:49:25 -0800</bug_when>
    <thetext>Comment on attachment 85561
fixes the bug

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

&gt; Source/WebCore/page/EventHandler.cpp:551
&gt; +        HitTestResult result(m_mouseDownPos);

Wow, we already had a variable for it?

&gt; LayoutTests/editing/selection/drag-select-rapidly.html:4
&gt; +&lt;p&gt;This test verifies that selection begins at the mouse-down position. Select rapidly inside the box blow. The first letter should be selected.&lt;/p&gt;

Typo: &quot;blow&quot; -&gt; &quot;below&quot;.  I&apos;m not sure what &quot;select rapidly&quot; means, is it really possible for someone to reproduce this by hand?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366490</commentid>
    <comment_count>10</comment_count>
      <attachid>85561</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-03-11 20:05:45 -0800</bug_when>
    <thetext>Comment on attachment 85561
fixes the bug

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

&gt;&gt; Source/WebCore/page/EventHandler.cpp:551
&gt;&gt; +        HitTestResult result(m_mouseDownPos);
&gt; 
&gt; Wow, we already had a variable for it?

Yes.  We even use it for dragController, etc... This seems to be the only feature not using it.  We definitely need to do a lot of refactoring in this file :(

&gt;&gt; LayoutTests/editing/selection/drag-select-rapidly.html:4
&gt;&gt; +&lt;p&gt;This test verifies that selection begins at the mouse-down position. Select rapidly inside the box blow. The first letter should be selected.&lt;/p&gt;
&gt; 
&gt; Typo: &quot;blow&quot; -&gt; &quot;below&quot;.  I&apos;m not sure what &quot;select rapidly&quot; means, is it really possible for someone to reproduce this by hand?

Oops, will fix the typo before landing it.  As I wrote earlier, I have been annoyed by this bug so I&apos;m sure you can reproduce it in some cases.  It&apos;s just that it&apos;s extremely hard to do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366553</commentid>
    <comment_count>11</comment_count>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2011-03-12 01:43:53 -0800</bug_when>
    <thetext>*** Bug 31711 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>367026</commentid>
    <comment_count>12</comment_count>
      <attachid>85561</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-03-14 09:51:05 -0700</bug_when>
    <thetext>Comment on attachment 85561
fixes the bug

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

&gt; Source/WebCore/page/EventHandler.cpp:550
&gt; +        HitTestRequest request(HitTestRequest::Active);

Why is this Active while the dragController code uses ReadOnly?  Is it because you want the selection to update when the mouse exits the window?  Should it be Active | ReadOnly so we don&apos;t re-run RenderLayer::updateHoverActiveState?

&gt; Source/WebCore/page/EventHandler.cpp:555
&gt; +        updateSelectionForMouseDrag(result.innerNode(), result.localPoint());
&gt; +    }
&gt;      updateSelectionForMouseDrag(targetNode, event.localPoint());

Will this fire the selection change event twice?  It&apos;s probably fine if it does, but maybe we should codify that in a test?  What happens in other browsers?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>367030</commentid>
    <comment_count>13</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-03-14 10:00:47 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; &gt; Source/WebCore/page/EventHandler.cpp:555
&gt; &gt; +        updateSelectionForMouseDrag(result.innerNode(), result.localPoint());
&gt; &gt; +    }
&gt; &gt;      updateSelectionForMouseDrag(targetNode, event.localPoint());
&gt; 
&gt; Will this fire the selection change event twice?  It&apos;s probably fine if it does, but maybe we should codify that in a test?  What happens in other browsers?

I don&apos;t know how to test this behavior on other browsers.  I&apos;ll be extremely hard to emulate what eventSender does.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>367071</commentid>
    <comment_count>14</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-03-14 11:07:50 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 85561 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=85561&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/EventHandler.cpp:550
&gt; &gt; +        HitTestRequest request(HitTestRequest::Active);
&gt; 
&gt; Why is this Active while the dragController code uses ReadOnly?  Is it because you want the selection to update when the mouse exits the window?  Should it be Active | ReadOnly so we don&apos;t re-run RenderLayer::updateHoverActiveState?

Oh, you&apos;re right.  I think I should be using ReadOnly here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>367077</commentid>
    <comment_count>15</comment_count>
      <attachid>85692</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-03-14 11:16:39 -0700</bug_when>
    <thetext>Created attachment 85692
Fixed per Tony&apos;s comment</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>367100</commentid>
    <comment_count>16</comment_count>
      <attachid>85692</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-03-14 11:41:26 -0700</bug_when>
    <thetext>Comment on attachment 85692
Fixed per Tony&apos;s comment

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

&gt; LayoutTests/platform/mac/editing/selection/fake-drag-expected.txt:8
&gt; +EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 4 of #text &gt; DIV &gt; BODY &gt; HTML &gt; #document to 4 of #text &gt; DIV &gt; BODY &gt; HTML &gt; #document toDOMRange:range from 4 of #text &gt; DIV &gt; BODY &gt; HTML &gt; #document to 4 of #text &gt; DIV &gt; BODY &gt; HTML &gt; #document affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
&gt; +EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 4 of #text &gt; DIV &gt; BODY &gt; HTML &gt; #document to 4 of #text &gt; DIV &gt; BODY &gt; HTML &gt; #document toDOMRange:range from 4 of #text &gt; DIV &gt; BODY &gt; HTML &gt; #document to 5 of #text &gt; DIV &gt; BODY &gt; HTML &gt; #document affinity:NSSelectionAffinityDownstream stillSelecting:FALSE

Ah, it does fire selection changed twice.  That seems harmless . . .</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>367105</commentid>
    <comment_count>17</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-03-14 11:53:37 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; (From update of attachment 85692 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=85692&amp;action=review
&gt; 
&gt; &gt; LayoutTests/platform/mac/editing/selection/fake-drag-expected.txt:8
&gt; &gt; +EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 4 of #text &gt; DIV &gt; BODY &gt; HTML &gt; #document to 4 of #text &gt; DIV &gt; BODY &gt; HTML &gt; #document toDOMRange:range from 4 of #text &gt; DIV &gt; BODY &gt; HTML &gt; #document to 4 of #text &gt; DIV &gt; BODY &gt; HTML &gt; #document affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
&gt; &gt; +EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 4 of #text &gt; DIV &gt; BODY &gt; HTML &gt; #document to 4 of #text &gt; DIV &gt; BODY &gt; HTML &gt; #document toDOMRange:range from 4 of #text &gt; DIV &gt; BODY &gt; HTML &gt; #document to 5 of #text &gt; DIV &gt; BODY &gt; HTML &gt; #document affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
&gt; 
&gt; Ah, it does fire selection changed twice.  That seems harmless . . .

And it should fire twice since both mousedown and mousemove change selection.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>367124</commentid>
    <comment_count>18</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-03-14 12:22:14 -0700</bug_when>
    <thetext>But why should the delegate get called at all if the selection is not changing? This doesn’t look like a change to me:

EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 4 of #text &gt; DIV &gt; BODY &gt; HTML &gt; #document to 4 of #text &gt; DIV &gt; BODY &gt; HTML &gt; #document toDOMRange:range from 4 of #text &gt; DIV &gt; BODY &gt; HTML &gt; #document to 4 of #text &gt; DIV &gt; BODY &gt; HTML &gt; #document affinity:NSSelectionAffinityDownstream stillSelecting:FALSE</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>367132</commentid>
    <comment_count>19</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-03-14 12:32:21 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; But why should the delegate get called at all if the selection is not changing? This doesn’t look like a change to me:
&gt; 
&gt; EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 4 of #text &gt; DIV &gt; BODY &gt; HTML &gt; #document to 4 of #text &gt; DIV &gt; BODY &gt; HTML &gt; #document toDOMRange:range from 4 of #text &gt; DIV &gt; BODY &gt; HTML &gt; #document to 4 of #text &gt; DIV &gt; BODY &gt; HTML &gt; #document affinity:NSSelectionAffinityDownstream stillSelecting:FALSE

That&apos;s because we don&apos;t check whether or not selection had changed in EventHandler::updateSelectionForMouseDrag.  We should fix that in a separate patch though because it isn&apos;t directly related to this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>367143</commentid>
    <comment_count>20</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-03-14 12:47:17 -0700</bug_when>
    <thetext>Filed https://bugs.webkit.org/show_bug.cgi?id=56324.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>367192</commentid>
    <comment_count>21</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-03-14 13:47:52 -0700</bug_when>
    <thetext>Committed r81053: &lt;http://trac.webkit.org/changeset/81053&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>378505</commentid>
    <comment_count>22</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-04-03 00:46:30 -0700</bug_when>
    <thetext>*** Bug 26788 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>613244</commentid>
    <comment_count>23</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-04-30 22:37:48 -0700</bug_when>
    <thetext>*** Bug 52986 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>85509</attachid>
            <date>2011-03-11 12:10:29 -0800</date>
            <delta_ts>2011-03-11 12:10:29 -0800</delta_ts>
            <desc>layout test that uses dumpAsText and prints PASS/FAIL</desc>
            <filename>test.html</filename>
            <type>text/html</type>
            <size>901</size>
            <attacher name="Evan Martin">evan</attacher>
            
              <data encoding="base64">PHA+VGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgc2VsZWN0aW9uIGJlZ2lucyBhdCB0aGUgbW91c2Ut
ZG93biBwb3NpdGlvbi48L3A+Cgo8ZGl2IGlkPSd0ZXh0Jz5UaGUgZmlyc3QgcGFydCBvZiB0aGlz
IHRleHQgc2hvdWxkIGJlIHNlbGVjdGVkLjwvZGl2PgoKPGRpdiBpZD0ncmVzdWx0Jz48L2Rpdj4K
CjxzY3JpcHQ+CmlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CgppZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CiAgICB2
YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RleHQnKTsKICAgIHZhciB4ID0gZGl2
Lm9mZnNldExlZnQgKyAxOwogICAgdmFyIHkgPSBkaXYub2Zmc2V0VG9wICsgNTsKCiAgICBldmVu
dFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOwog
ICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCArIDUwLCB5KTsKICAgIGV2ZW50U2VuZGVyLm1v
dXNlVXAoKTsKCiAgICAvLyBXZSBwYXNzIGlmIHRoZSBhYm92ZSBldmVudHMgY2F1c2VkIHVzIHRv
IHNlbGVjdCBhIHJhbmdlIG9mIHRleHQgLS0KICAgIC8vIHRoYXQgaXMsIHRoYXQgdGhlIG9mZnNl
dHMgb2YgdGhlIHNlbGVjdGlvbiBzcGFuIGEgcmFuZ2UgcmF0aGVyIHRoYW4gYSBzaW5nbGUgb2Zm
c2V0LgogICAgdmFyIHNlbCA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKICAgIHZhciBwYXNzID0g
KHNlbC5hbmNob3JOb2RlID09IHNlbC5mb2N1c05vZGUgJiYgc2VsLmFuY2hvck9mZnNldCA8IHNl
bC5mb2N1c09mZnNldCk7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0JykuaW5u
ZXJUZXh0ID0gcGFzcyA/ICdQQVNTJyA6ICdGQUlMJzsKfQo8L3NjcmlwdD4KCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85561</attachid>
            <date>2011-03-11 18:09:51 -0800</date>
            <delta_ts>2011-03-14 11:16:35 -0700</delta_ts>
            <desc>fixes the bug</desc>
            <filename>bug-56213-20110311180950.patch</filename>
            <type>text/plain</type>
            <size>12921</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDgwOTE0KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDMtMTEgIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgU2VsZWN0aW9uIHVzZXMgZmlyc3QgbW91c2Vtb3ZlJ3MgbG9jYWxS
ZWN0IGluc3RlYWQgb2YgdGhhdCBvZiBtb3VzZWRvd24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2MjEzCisKKyAgICAgICAgRml4ZWQgdGhlIGJ1ZyBi
eSBhZGRpbmcgYW4gZXh0cmEgY2FsbCB0byB1cGRhdGVTZWxlY3Rpb25Gb3JNb3VzZURyYWcgaW4g
aGFuZGxlTW91c2VEcmFnZ2VkRXZlbnQKKyAgICAgICAgdXNpbmcgdGhlIG1vdXNlIGNvb3JkaW5h
dGVzIG9mIHRoZSBtb3VzZWRvd24gZXZlbnQgdGhhdCBzdGFydGVkIHRoZSBkcmFnLgorCisgICAg
ICAgIFRlc3Q6IGVkaXRpbmcvc2VsZWN0aW9uL2RyYWctc2VsZWN0LXJhcGlkbHkuaHRtbAorCisg
ICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRI
YW5kbGVyOjpoYW5kbGVNb3VzZURyYWdnZWRFdmVudCk6CisKIDIwMTEtMDMtMTEgIENocmlzIE1h
cnJpbiAgPGNtYXJyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQuCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCShyZXZpc2lvbiA4MDg5NCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTQ1LDcg
KzU0NSwxMyBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VEcmFnZ2VkRXZlCiAgICAg
ICAgIAogICAgICAgICBtX21vdXNlRG93bk1heVN0YXJ0QXV0b3Njcm9sbCA9IGZhbHNlOwogICAg
IH0KLSAgICAKKworICAgIGlmICghbV9iZWdhblNlbGVjdGluZ1RleHQpIHsKKyAgICAgICAgSGl0
VGVzdFJlcXVlc3QgcmVxdWVzdChIaXRUZXN0UmVxdWVzdDo6QWN0aXZlKTsKKyAgICAgICAgSGl0
VGVzdFJlc3VsdCByZXN1bHQobV9tb3VzZURvd25Qb3MpOworICAgICAgICBtX2ZyYW1lLT5kb2N1
bWVudCgpLT5yZW5kZXJWaWV3KCktPmxheWVyKCktPmhpdFRlc3QocmVxdWVzdCwgcmVzdWx0KTsK
KyAgICAgICAgdXBkYXRlU2VsZWN0aW9uRm9yTW91c2VEcmFnKHJlc3VsdC5pbm5lck5vZGUoKSwg
cmVzdWx0LmxvY2FsUG9pbnQoKSk7CisgICAgfQogICAgIHVwZGF0ZVNlbGVjdGlvbkZvck1vdXNl
RHJhZyh0YXJnZXROb2RlLCBldmVudC5sb2NhbFBvaW50KCkpOwogICAgIHJldHVybiB0cnVlOwog
fQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkocmV2aXNpb24gODA5MTQpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwyMyBAQAorMjAxMS0wMy0xMSAgUnlvc3VrZSBOaXdhICA8
cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBTZWxlY3Rpb24gdXNlcyBmaXJzdCBtb3VzZW1vdmUncyBsb2NhbFJlY3QgaW5z
dGVhZCBvZiB0aGF0IG9mIG1vdXNlZG93bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NTYyMTMKKworICAgICAgICBBZGRlZCBhIHRlc3QgdG8gZW5zdXJl
IHRoZSBzZWxlY3Rpb24gc3RhcnQgaXMgY29tcHV0ZWQgdXNpbmcgdGhlIG1vdXNlIGNvb3JkaW5h
dGVzIHBhc3NlZCBkb3duCisgICAgICAgIHRvIHRoZSBjb3JyZXNwb25kaW5nIG1vdXNlZG93biBl
dmVudCBpbnN0ZWFkIG9mIHRoYXQgb2YgdGhlIGZpcnN0IG1vdXNlbW92ZSBldmVudC4KKworICAg
ICAgICBUaGUgdGVzdCBpcyBjby1hdXRob3JlZCBieSBFdmFuIE1hcnRpbi4KKworICAgICAgICAq
IGVkaXRpbmcvc2VsZWN0aW9uL2FuY2hvci1mb2N1czItZXhwZWN0ZWQudHh0OiBFZGl0aW5nIGRl
bGVnYXRlIGNoYW5nZXMuCisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vYW5jaG9yLWZvY3Vz
My1leHBlY3RlZC50eHQ6IERpdHRvLgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2RyYWct
c2VsZWN0LXJhcGlkbHktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3Nl
bGVjdGlvbi9kcmFnLXNlbGVjdC1yYXBpZGx5Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRm
b3JtL21hYy9lZGl0aW5nL3NlbGVjdGlvbi9kcmFnLXNlbGVjdC0xLWV4cGVjdGVkLnR4dDogU2Vs
ZWN0cyB0aGUgY29ycmVjdCByYW5nZSBvZiB0ZXh0LgorICAgICAgICAqIHBsYXRmb3JtL21hYy9l
ZGl0aW5nL3NlbGVjdGlvbi9mYWtlLWRyYWctZXhwZWN0ZWQudHh0OiBEaXR0by4KKyAgICAgICAg
KiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9zZWxlY3Rpb24vaW5saW5lLWNsb3Nlc3QtbGVhZi1jaGls
ZC1leHBlY3RlZC50eHQ6IERpdHRvLgorCiAyMDExLTAzLTExICBEYXZpZCBMZXZpbiAgPGxldmlu
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBGaXggcHJvdG90eXBlLWluaGVyaXRhbmNlLWV4cGVj
dGVkIHJlc3VsdCBkdWUgdG8gdHdvIGNoYW5nZXM6CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5n
L3NlbGVjdGlvbi9hbmNob3ItZm9jdXMyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9hbmNob3ItZm9jdXMyLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gODA4OTQpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9hbmNob3ItZm9j
dXMyLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDcgQEAKIEVESVRJTkcg
REVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6KG51bGwpIHRvRE9NUmFuZ2U6
cmFuZ2UgZnJvbSAwIG9mIERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDAgb2YgRElW
ID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURv
d25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKIEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdE
aWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgog
RURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZTpyYW5nZSBmcm9t
IDAgb2YgRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gMCBvZiBESVYgPiBCT0RZID4g
SFRNTCA+ICNkb2N1bWVudCB0b0RPTVJhbmdlOnJhbmdlIGZyb20gMCBvZiBESVYgPiBCT0RZID4g
SFRNTCA+ICNkb2N1bWVudCB0byAwIG9mIERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFm
ZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNF
CitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZy
b20gMCBvZiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAwIG9mIERJViA+IEJPRFkg
PiBIVE1MID4gI2RvY3VtZW50IHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAwIG9mIERJViA+IEJPRFkg
PiBIVE1MID4gI2RvY3VtZW50IHRvIDAgb2YgRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQg
YWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFM
U0UKIEVESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2Ug
ZnJvbSAwIG9mIERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDAgb2YgRElWID4gQk9E
WSA+IEhUTUwgPiAjZG9jdW1lbnQgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDAgb2YgI3RleHQgPiBE
SVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA0IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+
IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0g
c3RpbGxTZWxlY3Rpbmc6RkFMU0UKIEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VT
ZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgogVGhpcyB0ZXN0
cyB0aGUgYW5jaG9yTm9kZSwgYW5jaG9yT2Zmc2V0LCBmb2N1c05vZGUgYW5kIGZvY3VzT2Zmc2V0
IHByb3BlcnRpZXMgb2YgdGhlIFNlbGVjdGlvbiBvYmplY3QuIFRoZXNlIHByb3BlcnRpZXMgYXJl
IHBhcnQgb2YgTW96aWxsYSdzIFNlbGVjdGlvbiBvYmplY3QgQVBJLCBhbmQgc28gdGhlaXIgdmFs
dWVzIHNob3VsZCBiZSBjb25zaXN0ZW50IGluIGJvdGggYnJvd3NlcnMuCkluZGV4OiBMYXlvdXRU
ZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9hbmNob3ItZm9jdXMzLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9hbmNob3ItZm9jdXMzLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gODA4OTQpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlv
bi9hbmNob3ItZm9jdXMzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDcg
QEAKIEVESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6KG51bGwp
IHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSA0IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAj
ZG9jdW1lbnQgdG8gNCBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFm
ZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNF
CiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRD
aGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KIEVESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5n
ZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJvbSA0IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhU
TUwgPiAjZG9jdW1lbnQgdG8gNCBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3Vt
ZW50IHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSA0IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwg
PiAjZG9jdW1lbnQgdG8gNCBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50
IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZB
TFNFCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJhbmdl
IGZyb20gNCBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDQgb2Yg
I3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0b0RPTVJhbmdlOnJhbmdlIGZy
b20gNCBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDQgb2YgI3Rl
eHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFm
ZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQogRURJVElORyBERUxFR0FURTog
c2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZTpyYW5nZSBmcm9tIDQgb2YgI3RleHQgPiBESVYg
PiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA0IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhU
TUwgPiAjZG9jdW1lbnQgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDAgb2YgI3RleHQgPiBESVYgPiBC
T0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA0IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwg
PiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxT
ZWxlY3Rpbmc6RkFMU0UKIEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rp
b246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgogVGhpcyB0ZXN0cyB0aGUg
YW5jaG9yTm9kZSwgYW5jaG9yT2Zmc2V0LCBmb2N1c05vZGUgYW5kIGZvY3VzT2Zmc2V0IHByb3Bl
cnRpZXMgb2YgdGhlIFNlbGVjdGlvbiBvYmplY3QuIFRoZXNlIHByb3BlcnRpZXMgYXJlIHBhcnQg
b2YgTW96aWxsYSdzIFNlbGVjdGlvbiBvYmplY3QgQVBJLCBhbmQgc28gdGhlaXIgdmFsdWVzIHNo
b3VsZCBiZSBjb25zaXN0ZW50IGluIGJvdGggYnJvd3NlcnMuCkluZGV4OiBMYXlvdXRUZXN0cy9l
ZGl0aW5nL3NlbGVjdGlvbi9kcmFnLXNlbGVjdC1yYXBpZGx5LWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kcmFnLXNlbGVjdC1yYXBpZGx5
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0
aW9uL2RyYWctc2VsZWN0LXJhcGlkbHktZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDQgQEAKK1RoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IHNlbGVjdGlvbiBiZWdpbnMgYXQgdGhl
IG1vdXNlLWRvd24gcG9zaXRpb24uIFNlbGVjdCByYXBpZGx5IGluc2lkZSB0aGUgYm94IGJsb3cu
IFRoZSBmaXJzdCBsZXR0ZXIgc2hvdWxkIGJlIHNlbGVjdGVkLgorCitUaGUgZmlyc3QgcGFydCBv
ZiB0aGlzIHRleHQgc2hvdWxkIGJlIHNlbGVjdGVkLgorUEFTUwpJbmRleDogTGF5b3V0VGVzdHMv
ZWRpdGluZy9zZWxlY3Rpb24vZHJhZy1zZWxlY3QtcmFwaWRseS5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RyYWctc2VsZWN0LXJhcGlkbHkuaHRtbAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RyYWctc2VsZWN0
LXJhcGlkbHkuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyNiBAQAorPCFET0NUWVBFIGh0
bWw+DQorPGh0bWw+DQorPGJvZHk+DQorPHA+VGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgc2VsZWN0
aW9uIGJlZ2lucyBhdCB0aGUgbW91c2UtZG93biBwb3NpdGlvbi4gU2VsZWN0IHJhcGlkbHkgaW5z
aWRlIHRoZSBib3ggYmxvdy4gVGhlIGZpcnN0IGxldHRlciBzaG91bGQgYmUgc2VsZWN0ZWQuPC9w
Pg0KKzxkaXYgaWQ9J3RleHQnIHN0eWxlPSJib3JkZXI6IHNvbGlkIDFweDsgcGFkZGluZzogMTBw
eDsiPlRoZSBmaXJzdCBwYXJ0IG9mIHRoaXMgdGV4dCBzaG91bGQgYmUgc2VsZWN0ZWQuPC9kaXY+
DQorPHNjcmlwdD4NCitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQ0KKyAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7DQorDQoraWYgKHdpbmRvdy5ldmVudFNlbmRl
cikgew0KKyAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RleHQnKTsNCisg
ICAgdmFyIHggPSBkaXYub2Zmc2V0TGVmdCArIDE7DQorICAgIHZhciB5ID0gZGl2Lm9mZnNldFRv
cCArIGRpdi5vZmZzZXRIZWlnaHQgLyAyOw0KKw0KKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVU
byh4LCB5KTsNCisgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7DQorDQorICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlTW92ZVRvKHggKyBkaXYub2Zmc2V0V2lkdGggLSA1LCB5KTsNCisgICAgZXZlbnRT
ZW5kZXIubW91c2VVcCgpOw0KKw0KKyAgICB2YXIgc2VsID0gd2luZG93LmdldFNlbGVjdGlvbigp
Ow0KKyAgICBkb2N1bWVudC53cml0ZShzZWwuYW5jaG9yTm9kZSA9PSBzZWwuZm9jdXNOb2RlICYm
IHNlbC5hbmNob3JPZmZzZXQgPCBzZWwuZm9jdXNPZmZzZXQgPyAnUEFTUycgOiAnRkFJTCcpOw0K
K30NCis8L3NjcmlwdD4NCis8L2JvZHk+DQorPC9odG1sPg0KSW5kZXg6IExheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9lZGl0aW5nL3NlbGVjdGlvbi9kcmFnLXNlbGVjdC0xLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9zZWxlY3Rpb24v
ZHJhZy1zZWxlY3QtMS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDgwODk0KQorKysgTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvc2VsZWN0aW9uL2RyYWctc2VsZWN0LTEtZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xNyw1ICsxNyw1IEBAIGxheWVyIGF0ICgwLDApIHNpemUg
ODAweDYwMAogICAgICAgUmVuZGVyQmxvY2sge1VMfSBhdCAoMCw3Mykgc2l6ZSA3ODR4MAogbGF5
ZXIgYXQgKDgxLDQ3KSBzaXplIDExOXgxMwogICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMywzKSBz
aXplIDExOXgxMwotc2VsZWN0aW9uIHN0YXJ0OiBwb3NpdGlvbiA1IG9mIGNoaWxkIDAgeyN0ZXh0
fSBvZiBjaGlsZCAwIHtTUEFOfSBvZiBjaGlsZCAyIHtESVZ9IG9mIGJvZHkKK3NlbGVjdGlvbiBz
dGFydDogcG9zaXRpb24gNCBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMCB7U1BBTn0gb2Yg
Y2hpbGQgMiB7RElWfSBvZiBib2R5CiBzZWxlY3Rpb24gZW5kOiAgIHBvc2l0aW9uIDEgb2YgY2hp
bGQgMSB7I3RleHR9IG9mIGNoaWxkIDIge0RJVn0gb2YgYm9keQpJbmRleDogTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL2VkaXRpbmcvc2VsZWN0aW9uL2Zha2UtZHJhZy1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvc2VsZWN0aW9uL2Zh
a2UtZHJhZy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDgwODk0KQorKysgTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2VkaXRpbmcvc2VsZWN0aW9uL2Zha2UtZHJhZy1leHBlY3RlZC50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTQsOSArNCwxMCBAQCBFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VT
ZWxlY3RlZERPCiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldl
YlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KIEVESVRJTkcgREVMRUdBVEU6IHNo
b3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJvbSAwIG9mIERJViA+IEJPRFkgPiBI
VE1MID4gI2RvY3VtZW50IHRvIDAgb2YgRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG9E
T01SYW5nZTpyYW5nZSBmcm9tIDQgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1
bWVudCB0byA0IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5p
dHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKIEVE
SVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5n
ZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgotRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2Vs
ZWN0ZWRET01SYW5nZTpyYW5nZSBmcm9tIDQgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+
ICNkb2N1bWVudCB0byA0IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQg
dG9ET01SYW5nZTpyYW5nZSBmcm9tIDUgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNk
b2N1bWVudCB0byA1IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZm
aW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UK
K0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJv
bSA0IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gNCBvZiAjdGV4
dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSA0
IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gNCBvZiAjdGV4dCA+
IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5p
dHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5HIERFTEVHQVRFOiBzaG91
bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20gNCBvZiAjdGV4dCA+IERJViA+IEJP
RFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDQgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+
ICNkb2N1bWVudCB0b0RPTVJhbmdlOnJhbmdlIGZyb20gNCBvZiAjdGV4dCA+IERJViA+IEJPRFkg
PiBIVE1MID4gI2RvY3VtZW50IHRvIDUgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNk
b2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVj
dGluZzpGQUxTRQogRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpX
ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCi1FRElUSU5HIERFTEVHQVRFOiBz
aG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20gNSBvZiAjdGV4dCA+IERJViA+
IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDUgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRN
TCA+ICNkb2N1bWVudCB0b0RPTVJhbmdlOnJhbmdlIGZyb20gNSBvZiAjdGV4dCA+IERJViA+IEJP
RFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDggb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+
ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNl
bGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01S
YW5nZTpyYW5nZSBmcm9tIDQgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVu
dCB0byA1IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG9ET01SYW5n
ZTpyYW5nZSBmcm9tIDQgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0
byA4IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNT
ZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKIEVESVRJTkcg
REVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVj
dGlvbk5vdGlmaWNhdGlvbgogbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgIFJlbmRlclZp
ZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCkBAIC0xNiw1ICsxNyw1IEBAIGxheWVyIGF0ICgwLDAp
IHNpemUgODAweDYwMAogICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSA4MDB4
MTgKICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMTkzeDE4CiAgICAg
ICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMTkzOiAiU2VsZWN0IG1lLCBzZWxlY3QgbWUs
IHNlbGVjdCBtZSIKLXNlbGVjdGlvbiBzdGFydDogcG9zaXRpb24gNSBvZiBjaGlsZCAwIHsjdGV4
dH0gb2YgY2hpbGQgMSB7RElWfSBvZiBib2R5CitzZWxlY3Rpb24gc3RhcnQ6IHBvc2l0aW9uIDQg
b2YgY2hpbGQgMCB7I3RleHR9IG9mIGNoaWxkIDEge0RJVn0gb2YgYm9keQogc2VsZWN0aW9uIGVu
ZDogICBwb3NpdGlvbiA4IG9mIGNoaWxkIDAgeyN0ZXh0fSBvZiBjaGlsZCAxIHtESVZ9IG9mIGJv
ZHkKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL3NlbGVjdGlvbi9pbmxp
bmUtY2xvc2VzdC1sZWFmLWNoaWxkLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9zZWxlY3Rpb24vaW5saW5lLWNsb3Nlc3QtbGVhZi1j
aGlsZC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDgwODk0KQorKysgTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL2VkaXRpbmcvc2VsZWN0aW9uL2lubGluZS1jbG9zZXN0LWxlYWYtY2hpbGQtZXhwZWN0
ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0zMyw0ICszMyw0IEBAIGxheWVyIGF0ICgwLDApIHNp
emUgODAweDYwMAogICAgICAgICAgICAgdGV4dCBydW4gYXQgKDQ2LDMxKSB3aWR0aCAzODogImlw
c3VtIgogICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKIHNlbGVj
dGlvbiBzdGFydDogcG9zaXRpb24gMiBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMSB7U1BB
Tn0gb2YgY2hpbGQgNCB7RElWfSBvZiBib2R5Ci1zZWxlY3Rpb24gZW5kOiAgIHBvc2l0aW9uIDQg
b2YgY2hpbGQgMiB7I3RleHR9IG9mIGNoaWxkIDEge1NQQU59IG9mIGNoaWxkIDQge0RJVn0gb2Yg
Ym9keQorc2VsZWN0aW9uIGVuZDogICBwb3NpdGlvbiA1IG9mIGNoaWxkIDIgeyN0ZXh0fSBvZiBj
aGlsZCAxIHtTUEFOfSBvZiBjaGlsZCA0IHtESVZ9IG9mIGJvZHkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85692</attachid>
            <date>2011-03-14 11:16:39 -0700</date>
            <delta_ts>2011-03-14 11:41:26 -0700</delta_ts>
            <desc>Fixed per Tony&apos;s comment</desc>
            <filename>bug-56213-20110314111638.patch</filename>
            <type>text/plain</type>
            <size>12948</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDgwOTE0KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDMtMTEgIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgU2VsZWN0aW9uIHVzZXMgZmlyc3QgbW91c2Vtb3ZlJ3MgbG9jYWxS
ZWN0IGluc3RlYWQgb2YgdGhhdCBvZiBtb3VzZWRvd24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2MjEzCisKKyAgICAgICAgRml4ZWQgdGhlIGJ1ZyBi
eSBhZGRpbmcgYW4gZXh0cmEgY2FsbCB0byB1cGRhdGVTZWxlY3Rpb25Gb3JNb3VzZURyYWcgaW4g
aGFuZGxlTW91c2VEcmFnZ2VkRXZlbnQKKyAgICAgICAgdXNpbmcgdGhlIG1vdXNlIGNvb3JkaW5h
dGVzIG9mIHRoZSBtb3VzZWRvd24gZXZlbnQgdGhhdCBzdGFydGVkIHRoZSBkcmFnLgorCisgICAg
ICAgIFRlc3Q6IGVkaXRpbmcvc2VsZWN0aW9uL2RyYWctc2VsZWN0LXJhcGlkbHkuaHRtbAorCisg
ICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRI
YW5kbGVyOjpoYW5kbGVNb3VzZURyYWdnZWRFdmVudCk6CisKIDIwMTEtMDMtMTEgIENocmlzIE1h
cnJpbiAgPGNtYXJyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQuCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCShyZXZpc2lvbiA4MDg5NCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTQ1LDcg
KzU0NSwxMyBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VEcmFnZ2VkRXZlCiAgICAg
ICAgIAogICAgICAgICBtX21vdXNlRG93bk1heVN0YXJ0QXV0b3Njcm9sbCA9IGZhbHNlOwogICAg
IH0KLSAgICAKKworICAgIGlmICghbV9iZWdhblNlbGVjdGluZ1RleHQpIHsKKyAgICAgICAgSGl0
VGVzdFJlcXVlc3QgcmVxdWVzdChIaXRUZXN0UmVxdWVzdDo6UmVhZE9ubHkgfCBIaXRUZXN0UmVx
dWVzdDo6QWN0aXZlKTsKKyAgICAgICAgSGl0VGVzdFJlc3VsdCByZXN1bHQobV9tb3VzZURvd25Q
b3MpOworICAgICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5yZW5kZXJWaWV3KCktPmxheWVyKCkt
PmhpdFRlc3QocmVxdWVzdCwgcmVzdWx0KTsKKyAgICAgICAgdXBkYXRlU2VsZWN0aW9uRm9yTW91
c2VEcmFnKHJlc3VsdC5pbm5lck5vZGUoKSwgcmVzdWx0LmxvY2FsUG9pbnQoKSk7CisgICAgfQog
ICAgIHVwZGF0ZVNlbGVjdGlvbkZvck1vdXNlRHJhZyh0YXJnZXROb2RlLCBldmVudC5sb2NhbFBv
aW50KCkpOwogICAgIHJldHVybiB0cnVlOwogfQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gODA5MTQpCisr
KyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMyBAQAor
MjAxMS0wMy0xMSAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTZWxlY3Rpb24gdXNlcyBmaXJz
dCBtb3VzZW1vdmUncyBsb2NhbFJlY3QgaW5zdGVhZCBvZiB0aGF0IG9mIG1vdXNlZG93bgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTYyMTMKKworICAg
ICAgICBBZGRlZCBhIHRlc3QgdG8gZW5zdXJlIHRoZSBzZWxlY3Rpb24gc3RhcnQgaXMgY29tcHV0
ZWQgdXNpbmcgdGhlIG1vdXNlIGNvb3JkaW5hdGVzIHBhc3NlZCBkb3duCisgICAgICAgIHRvIHRo
ZSBjb3JyZXNwb25kaW5nIG1vdXNlZG93biBldmVudCBpbnN0ZWFkIG9mIHRoYXQgb2YgdGhlIGZp
cnN0IG1vdXNlbW92ZSBldmVudC4KKworICAgICAgICBUaGUgdGVzdCBpcyBjby1hdXRob3JlZCBi
eSBFdmFuIE1hcnRpbi4KKworICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2FuY2hvci1mb2N1
czItZXhwZWN0ZWQudHh0OiBFZGl0aW5nIGRlbGVnYXRlIGNoYW5nZXMuCisgICAgICAgICogZWRp
dGluZy9zZWxlY3Rpb24vYW5jaG9yLWZvY3VzMy1leHBlY3RlZC50eHQ6IERpdHRvLgorICAgICAg
ICAqIGVkaXRpbmcvc2VsZWN0aW9uL2RyYWctc2VsZWN0LXJhcGlkbHktZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9kcmFnLXNlbGVjdC1yYXBpZGx5Lmh0
bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9lZGl0aW5nL3NlbGVjdGlvbi9kcmFn
LXNlbGVjdC0xLWV4cGVjdGVkLnR4dDogU2VsZWN0cyB0aGUgY29ycmVjdCByYW5nZSBvZiB0ZXh0
LgorICAgICAgICAqIHBsYXRmb3JtL21hYy9lZGl0aW5nL3NlbGVjdGlvbi9mYWtlLWRyYWctZXhw
ZWN0ZWQudHh0OiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9zZWxlY3Rp
b24vaW5saW5lLWNsb3Nlc3QtbGVhZi1jaGlsZC1leHBlY3RlZC50eHQ6IERpdHRvLgorCiAyMDEx
LTAzLTExICBEYXZpZCBMZXZpbiAgPGxldmluQGNocm9taXVtLm9yZz4KIAogICAgICAgICBGaXgg
cHJvdG90eXBlLWluaGVyaXRhbmNlLWV4cGVjdGVkIHJlc3VsdCBkdWUgdG8gdHdvIGNoYW5nZXM6
CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9hbmNob3ItZm9jdXMyLWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9hbmNo
b3ItZm9jdXMyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gODA4OTQpCisrKyBMYXlvdXRUZXN0cy9l
ZGl0aW5nL3NlbGVjdGlvbi9hbmNob3ItZm9jdXMyLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5
KQpAQCAtMSw2ICsxLDcgQEAKIEVESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVk
RE9NUmFuZ2U6KG51bGwpIHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAwIG9mIERJViA+IEJPRFkgPiBI
VE1MID4gI2RvY3VtZW50IHRvIDAgb2YgRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZm
aW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UK
IEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENo
YW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgogRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdl
U2VsZWN0ZWRET01SYW5nZTpyYW5nZSBmcm9tIDAgb2YgRElWID4gQk9EWSA+IEhUTUwgPiAjZG9j
dW1lbnQgdG8gMCBvZiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0b0RPTVJhbmdlOnJh
bmdlIGZyb20gMCBvZiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAwIG9mIERJViA+
IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3du
c3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFu
Z2VTZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20gMCBvZiBESVYgPiBCT0RZID4gSFRNTCA+ICNk
b2N1bWVudCB0byAwIG9mIERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvRE9NUmFuZ2U6
cmFuZ2UgZnJvbSAwIG9mIERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDAgb2YgRElW
ID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURv
d25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKIEVESVRJTkcgREVMRUdBVEU6IHNob3VsZENo
YW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJvbSAwIG9mIERJViA+IEJPRFkgPiBIVE1MID4g
I2RvY3VtZW50IHRvIDAgb2YgRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG9ET01SYW5n
ZTpyYW5nZSBmcm9tIDAgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0
byA0IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNT
ZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKIEVESVRJTkcg
REVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVj
dGlvbk5vdGlmaWNhdGlvbgogVGhpcyB0ZXN0cyB0aGUgYW5jaG9yTm9kZSwgYW5jaG9yT2Zmc2V0
LCBmb2N1c05vZGUgYW5kIGZvY3VzT2Zmc2V0IHByb3BlcnRpZXMgb2YgdGhlIFNlbGVjdGlvbiBv
YmplY3QuIFRoZXNlIHByb3BlcnRpZXMgYXJlIHBhcnQgb2YgTW96aWxsYSdzIFNlbGVjdGlvbiBv
YmplY3QgQVBJLCBhbmQgc28gdGhlaXIgdmFsdWVzIHNob3VsZCBiZSBjb25zaXN0ZW50IGluIGJv
dGggYnJvd3NlcnMuCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9hbmNob3It
Zm9jdXMzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3Nl
bGVjdGlvbi9hbmNob3ItZm9jdXMzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gODA4OTQpCisrKyBM
YXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9hbmNob3ItZm9jdXMzLWV4cGVjdGVkLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDcgQEAKIEVESVRJTkcgREVMRUdBVEU6IHNob3VsZENo
YW5nZVNlbGVjdGVkRE9NUmFuZ2U6KG51bGwpIHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSA0IG9mICN0
ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gNCBvZiAjdGV4dCA+IERJViA+
IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3du
c3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlk
Q2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KIEVE
SVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJvbSA0
IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gNCBvZiAjdGV4dCA+
IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSA0IG9m
ICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG8gNCBvZiAjdGV4dCA+IERJ
ViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlE
b3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRD
aGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJhbmdlIGZyb20gNCBvZiAjdGV4dCA+IERJViA+IEJPRFkg
PiBIVE1MID4gI2RvY3VtZW50IHRvIDQgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNk
b2N1bWVudCB0b0RPTVJhbmdlOnJhbmdlIGZyb20gNCBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBI
VE1MID4gI2RvY3VtZW50IHRvIDQgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1
bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGlu
ZzpGQUxTRQogRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZTpy
YW5nZSBmcm9tIDQgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA0
IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG9ET01SYW5nZTpyYW5n
ZSBmcm9tIDAgb2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA0IG9m
ICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rp
b25BZmZpbml0eURvd25zdHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKIEVESVRJTkcgREVMRUdB
VEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5v
dGlmaWNhdGlvbgogVGhpcyB0ZXN0cyB0aGUgYW5jaG9yTm9kZSwgYW5jaG9yT2Zmc2V0LCBmb2N1
c05vZGUgYW5kIGZvY3VzT2Zmc2V0IHByb3BlcnRpZXMgb2YgdGhlIFNlbGVjdGlvbiBvYmplY3Qu
IFRoZXNlIHByb3BlcnRpZXMgYXJlIHBhcnQgb2YgTW96aWxsYSdzIFNlbGVjdGlvbiBvYmplY3Qg
QVBJLCBhbmQgc28gdGhlaXIgdmFsdWVzIHNob3VsZCBiZSBjb25zaXN0ZW50IGluIGJvdGggYnJv
d3NlcnMuCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kcmFnLXNlbGVjdC1y
YXBpZGx5LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3Nl
bGVjdGlvbi9kcmFnLXNlbGVjdC1yYXBpZGx5LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RyYWctc2VsZWN0LXJhcGlkbHktZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQgQEAKK1RoaXMgdGVzdCB2ZXJpZmllcyB0
aGF0IHNlbGVjdGlvbiBiZWdpbnMgYXQgdGhlIG1vdXNlLWRvd24gcG9zaXRpb24uIFNlbGVjdCBy
YXBpZGx5IGluc2lkZSB0aGUgYm94IGJsb3cuIFRoZSBmaXJzdCBsZXR0ZXIgc2hvdWxkIGJlIHNl
bGVjdGVkLgorCitUaGUgZmlyc3QgcGFydCBvZiB0aGlzIHRleHQgc2hvdWxkIGJlIHNlbGVjdGVk
LgorUEFTUwpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZHJhZy1zZWxlY3Qt
cmFwaWRseS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9u
L2RyYWctc2VsZWN0LXJhcGlkbHkuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Vk
aXRpbmcvc2VsZWN0aW9uL2RyYWctc2VsZWN0LXJhcGlkbHkuaHRtbAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwyNiBAQAorPCFET0NUWVBFIGh0bWw+DQorPGh0bWw+DQorPGJvZHk+DQorPHA+VGhp
cyB0ZXN0IHZlcmlmaWVzIHRoYXQgc2VsZWN0aW9uIGJlZ2lucyBhdCB0aGUgbW91c2UtZG93biBw
b3NpdGlvbi4gU2VsZWN0IHJhcGlkbHkgaW5zaWRlIHRoZSBib3ggYmxvdy4gVGhlIGZpcnN0IGxl
dHRlciBzaG91bGQgYmUgc2VsZWN0ZWQuPC9wPg0KKzxkaXYgaWQ9J3RleHQnIHN0eWxlPSJib3Jk
ZXI6IHNvbGlkIDFweDsgcGFkZGluZzogMTBweDsiPlRoZSBmaXJzdCBwYXJ0IG9mIHRoaXMgdGV4
dCBzaG91bGQgYmUgc2VsZWN0ZWQuPC9kaXY+DQorPHNjcmlwdD4NCitpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQ0KKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
DQorDQoraWYgKHdpbmRvdy5ldmVudFNlbmRlcikgew0KKyAgICB2YXIgZGl2ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3RleHQnKTsNCisgICAgdmFyIHggPSBkaXYub2Zmc2V0TGVmdCArIDE7
DQorICAgIHZhciB5ID0gZGl2Lm9mZnNldFRvcCArIGRpdi5vZmZzZXRIZWlnaHQgLyAyOw0KKw0K
KyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsNCisgICAgZXZlbnRTZW5kZXIubW91
c2VEb3duKCk7DQorDQorICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHggKyBkaXYub2Zmc2V0
V2lkdGggLSA1LCB5KTsNCisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOw0KKw0KKyAgICB2YXIg
c2VsID0gd2luZG93LmdldFNlbGVjdGlvbigpOw0KKyAgICBkb2N1bWVudC53cml0ZShzZWwuYW5j
aG9yTm9kZSA9PSBzZWwuZm9jdXNOb2RlICYmIHNlbC5hbmNob3JPZmZzZXQgPCBzZWwuZm9jdXNP
ZmZzZXQgPyAnUEFTUycgOiAnRkFJTCcpOw0KK30NCis8L3NjcmlwdD4NCis8L2JvZHk+DQorPC9o
dG1sPg0KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL3NlbGVjdGlvbi9k
cmFnLXNlbGVjdC0xLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvZWRpdGluZy9zZWxlY3Rpb24vZHJhZy1zZWxlY3QtMS1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDgwODk0KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvc2VsZWN0
aW9uL2RyYWctc2VsZWN0LTEtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xNyw1ICsx
Nyw1IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgUmVuZGVyQmxvY2sge1VM
fSBhdCAoMCw3Mykgc2l6ZSA3ODR4MAogbGF5ZXIgYXQgKDgxLDQ3KSBzaXplIDExOXgxMwogICBS
ZW5kZXJCbG9jayB7RElWfSBhdCAoMywzKSBzaXplIDExOXgxMwotc2VsZWN0aW9uIHN0YXJ0OiBw
b3NpdGlvbiA1IG9mIGNoaWxkIDAgeyN0ZXh0fSBvZiBjaGlsZCAwIHtTUEFOfSBvZiBjaGlsZCAy
IHtESVZ9IG9mIGJvZHkKK3NlbGVjdGlvbiBzdGFydDogcG9zaXRpb24gNCBvZiBjaGlsZCAwIHsj
dGV4dH0gb2YgY2hpbGQgMCB7U1BBTn0gb2YgY2hpbGQgMiB7RElWfSBvZiBib2R5CiBzZWxlY3Rp
b24gZW5kOiAgIHBvc2l0aW9uIDEgb2YgY2hpbGQgMSB7I3RleHR9IG9mIGNoaWxkIDIge0RJVn0g
b2YgYm9keQpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvc2VsZWN0aW9u
L2Zha2UtZHJhZy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL2VkaXRpbmcvc2VsZWN0aW9uL2Zha2UtZHJhZy1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDgwODk0KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvc2VsZWN0aW9uL2Zh
a2UtZHJhZy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTQsOSArNCwxMCBAQCBFRElU
SU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPCiBFRElUSU5HIERFTEVHQVRFOiB3
ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmlj
YXRpb24KIEVESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6cmFu
Z2UgZnJvbSAwIG9mIERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDAgb2YgRElWID4g
Qk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDQgb2YgI3RleHQg
PiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA0IG9mICN0ZXh0ID4gRElWID4gQk9E
WSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJl
YW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKIEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFu
Z2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgotRURJVElO
RyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZTpyYW5nZSBmcm9tIDQgb2Yg
I3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA0IG9mICN0ZXh0ID4gRElW
ID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDUgb2YgI3Rl
eHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA1IG9mICN0ZXh0ID4gRElWID4g
Qk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25z
dHJlYW0gc3RpbGxTZWxlY3Rpbmc6RkFMU0UKK0VESVRJTkcgREVMRUdBVEU6IHNob3VsZENoYW5n
ZVNlbGVjdGVkRE9NUmFuZ2U6cmFuZ2UgZnJvbSA0IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhU
TUwgPiAjZG9jdW1lbnQgdG8gNCBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3Vt
ZW50IHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSA0IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhUTUwg
PiAjZG9jdW1lbnQgdG8gNCBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50
IGFmZmluaXR5Ok5TU2VsZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZB
TFNFCitFRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJhbmdl
IGZyb20gNCBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDQgb2Yg
I3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0b0RPTVJhbmdlOnJhbmdlIGZy
b20gNCBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDUgb2YgI3Rl
eHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFm
ZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQogRURJVElORyBERUxFR0FURTog
d2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZp
Y2F0aW9uCi1FRElUSU5HIERFTEVHQVRFOiBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlOnJh
bmdlIGZyb20gNSBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDUg
b2YgI3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0b0RPTVJhbmdlOnJhbmdl
IGZyb20gNSBvZiAjdGV4dCA+IERJViA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IHRvIDggb2Yg
I3RleHQgPiBESVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlv
bkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVjdGluZzpGQUxTRQorRURJVElORyBERUxFR0FU
RTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZTpyYW5nZSBmcm9tIDQgb2YgI3RleHQgPiBE
SVYgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA1IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+
IEhUTUwgPiAjZG9jdW1lbnQgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDQgb2YgI3RleHQgPiBESVYg
PiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byA4IG9mICN0ZXh0ID4gRElWID4gQk9EWSA+IEhU
TUwgPiAjZG9jdW1lbnQgYWZmaW5pdHk6TlNTZWxlY3Rpb25BZmZpbml0eURvd25zdHJlYW0gc3Rp
bGxTZWxlY3Rpbmc6RkFMU0UKIEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxl
Y3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgogbGF5ZXIgYXQgKDAs
MCkgc2l6ZSA4MDB4NjAwCiAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCkBAIC0x
Niw1ICsxNyw1IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgUmVuZGVyQmxv
Y2sge0RJVn0gYXQgKDAsMCkgc2l6ZSA4MDB4MTgKICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9
IGF0ICgwLDApIHNpemUgMTkzeDE4CiAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGgg
MTkzOiAiU2VsZWN0IG1lLCBzZWxlY3QgbWUsIHNlbGVjdCBtZSIKLXNlbGVjdGlvbiBzdGFydDog
cG9zaXRpb24gNSBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMSB7RElWfSBvZiBib2R5Citz
ZWxlY3Rpb24gc3RhcnQ6IHBvc2l0aW9uIDQgb2YgY2hpbGQgMCB7I3RleHR9IG9mIGNoaWxkIDEg
e0RJVn0gb2YgYm9keQogc2VsZWN0aW9uIGVuZDogICBwb3NpdGlvbiA4IG9mIGNoaWxkIDAgeyN0
ZXh0fSBvZiBjaGlsZCAxIHtESVZ9IG9mIGJvZHkKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9lZGl0aW5nL3NlbGVjdGlvbi9pbmxpbmUtY2xvc2VzdC1sZWFmLWNoaWxkLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9zZWxl
Y3Rpb24vaW5saW5lLWNsb3Nlc3QtbGVhZi1jaGlsZC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDgw
ODk0KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvc2VsZWN0aW9uL2lubGlu
ZS1jbG9zZXN0LWxlYWYtY2hpbGQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0zMyw0
ICszMyw0IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgICAgICAgdGV4dCBy
dW4gYXQgKDQ2LDMxKSB3aWR0aCAzODogImlwc3VtIgogICAgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDAsMCkgc2l6ZSAweDAKIHNlbGVjdGlvbiBzdGFydDogcG9zaXRpb24gMiBvZiBjaGls
ZCAwIHsjdGV4dH0gb2YgY2hpbGQgMSB7U1BBTn0gb2YgY2hpbGQgNCB7RElWfSBvZiBib2R5Ci1z
ZWxlY3Rpb24gZW5kOiAgIHBvc2l0aW9uIDQgb2YgY2hpbGQgMiB7I3RleHR9IG9mIGNoaWxkIDEg
e1NQQU59IG9mIGNoaWxkIDQge0RJVn0gb2YgYm9keQorc2VsZWN0aW9uIGVuZDogICBwb3NpdGlv
biA1IG9mIGNoaWxkIDIgeyN0ZXh0fSBvZiBjaGlsZCAxIHtTUEFOfSBvZiBjaGlsZCA0IHtESVZ9
IG9mIGJvZHkK
</data>
<flag name="review"
          id="77855"
          type_id="1"
          status="+"
          setter="tony"
    />
          </attachment>
      

    </bug>

</bugzilla>