<?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>77620</bug_id>
          
          <creation_ts>2012-02-02 02:20:33 -0800</creation_ts>
          <short_desc>Hovered node gets stuck on touch events</short_desc>
          <delta_ts>2013-02-05 10:32:57 -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></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Allan Sandfeld Jensen">allan.jensen</reporter>
          <assigned_to name="Allan Sandfeld Jensen">allan.jensen</assigned_to>
          <cc>gmak</cc>
    
    <cc>jamesr</cc>
    
    <cc>japhet</cc>
    
    <cc>kenneth</cc>
    
    <cc>ossy</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>547748</commentid>
    <comment_count>0</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-02-02 02:20:33 -0800</bug_when>
    <thetext>If you touch click on a node and the move the finger off the node (make sure the page is not scrollable, otherwise the finger will pan), the node will continue to have hovered state after you lift the finger.

This can be demonstrated on any page with links.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547768</commentid>
    <comment_count>1</comment_count>
      <attachid>125105</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-02-02 04:08:58 -0800</bug_when>
    <thetext>Created attachment 125105
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547776</commentid>
    <comment_count>2</comment_count>
      <attachid>125105</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-02-02 04:20:09 -0800</bug_when>
    <thetext>Comment on attachment 125105
Patch

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

&gt; Source/WebCore/rendering/HitTestRequest.h:55
&gt; +    // Convinience functions

// Conv_e_nience functions_._

&gt; Source/WebCore/rendering/RenderLayer.cpp:4050
&gt; +    // Check to see if the hovered node has changed. If not, then we don&apos;t need to
&gt; +    // do anything.

I would merge that to one line. It fits the length of the other comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547781</commentid>
    <comment_count>3</comment_count>
      <attachid>125111</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-02-02 04:30:04 -0800</bug_when>
    <thetext>Created attachment 125111
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547797</commentid>
    <comment_count>4</comment_count>
      <attachid>125117</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-02-02 05:01:58 -0800</bug_when>
    <thetext>Created attachment 125117
Patch

One line update to chromium port, so it compiles.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547840</commentid>
    <comment_count>5</comment_count>
      <attachid>125117</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-02-02 06:06:24 -0800</bug_when>
    <thetext>Comment on attachment 125117
Patch

we do it much simplier. I will paste a patch...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547858</commentid>
    <comment_count>6</comment_count>
      <attachid>125117</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-02 07:10:04 -0800</bug_when>
    <thetext>Comment on attachment 125117
Patch

Clearing flags on attachment: 125117

Committed r106554: &lt;http://trac.webkit.org/changeset/106554&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547859</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-02 07:10:08 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547945</commentid>
    <comment_count>8</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-02-02 09:53:12 -0800</bug_when>
    <thetext>Reopen, because it made 4 tests crash in debug mode:
- fast/events/touch/basic-multi-touch-events.html
- fast/events/touch/touch-target.html
- fast/events/touch/touch-before-pressing-spin-button.html
- fast/events/touch/touch-coords-in-zoom-and-scroll.html

SHOULD NEVER BE REACHED
../../../../Source/WebCore/page/EventHandler.cpp(3253) : bool WebCore::EventHandler::handleTouchEvent(const WebCore::PlatformTouchEvent&amp;)

Could you check these crashes and fix?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547948</commentid>
    <comment_count>9</comment_count>
      <attachid>125117</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-02-02 09:55:31 -0800</bug_when>
    <thetext>Comment on attachment 125117
Patch

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

&gt; Source/WebCore/page/EventHandler.cpp:3253
&gt; +            ASSERT_NOT_REACHED();

It seems this assertion hit. But why?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547954</commentid>
    <comment_count>10</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-02-02 10:04:52 -0800</bug_when>
    <thetext>I skipped them to paint the debug bot green: http://trac.webkit.org/changeset/106567/trunk/LayoutTests/platform/qt/Skipped

Please unskip them with the proper fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548033</commentid>
    <comment_count>11</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-02-02 11:55:01 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 125117 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=125117&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/EventHandler.cpp:3253
&gt; &gt; +            ASSERT_NOT_REACHED();
&gt; 
&gt; It seems this assertion hit. But why?

There is a fifth touchpoint state; stationary. We don&apos;t really send them here, but I guess they can be inserted by javascript, and it should be handled anyway in case other platforms send it to handleTouchEvent.

Anyway the fix is easy: Just remove the assertion, or add a check for the last touchpoint state. The assertion is not critical, just a common practice in the bottom of a switch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548062</commentid>
    <comment_count>12</comment_count>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-02-02 12:36:14 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #9)
&gt; &gt; (From update of attachment 125117 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=125117&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/page/EventHandler.cpp:3253
&gt; &gt; &gt; +            ASSERT_NOT_REACHED();
&gt; &gt; 
&gt; &gt; It seems this assertion hit. But why?
&gt; 
&gt; There is a fifth touchpoint state; stationary. We don&apos;t really send them here, but I guess they can be inserted by javascript, and it should be handled anyway in case other platforms send it to handleTouchEvent.
&gt; 
&gt; Anyway the fix is easy: Just remove the assertion, or add a check for the last touchpoint state. The assertion is not critical, just a common practice in the bottom of a switch.

Chromium is hitting this assertion too.  See http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=touch-target.html%20touch-coords-in-zoom-and-scroll.html%20basic-multi-touch-events.html

Will mark as expected failures in the meantime.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548591</commentid>
    <comment_count>13</comment_count>
      <attachid>125295</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-02-03 02:23:37 -0800</bug_when>
    <thetext>Created attachment 125295
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548593</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-03 02:26:40 -0800</bug_when>
    <thetext>Attachment 125295 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebCore/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
Total errors found: 1 in 2 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>548595</commentid>
    <comment_count>15</comment_count>
      <attachid>125295</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-02-03 02:29:37 -0800</bug_when>
    <thetext>Comment on attachment 125295
Patch

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

&gt; Source/WebCore/ChangeLog:10
&gt; +
&gt; +        * page/EventHandler.cpp:
&gt; +        (WebCore::eventNameForTouchPointState): Explicitly show how TouchStationary is handled.
&gt; +        (WebCore::EventHandler::handleTouchEvent): Remove TouchStationary from ASSERT.
&gt; +

Maybe you could write that you are adding code so that it is like before you last patch?

&gt; Source/WebCore/page/EventHandler.cpp:3200
&gt; +    case PlatformTouchPoint::TouchStationary:
&gt; +        // TouchStationary state is not converted to touch events.
&gt;      default:
&gt;          ASSERT_NOT_REACHED();

It could be a bit more obvious that the ASSERT is also meant for the TouchStationary</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548602</commentid>
    <comment_count>16</comment_count>
      <attachid>125300</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-02-03 02:58:05 -0800</bug_when>
    <thetext>Created attachment 125300
Fixup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548636</commentid>
    <comment_count>17</comment_count>
      <attachid>125300</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-03 04:49:32 -0800</bug_when>
    <thetext>Comment on attachment 125300
Fixup

Clearing flags on attachment: 125300

Committed r106649: &lt;http://trac.webkit.org/changeset/106649&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548637</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-03 04:49:37 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>549031</commentid>
    <comment_count>19</comment_count>
      <attachid>125117</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-02-03 13:45:57 -0800</bug_when>
    <thetext>Comment on attachment 125117
Patch

patch changes a lot more than needed to achieve this.

it also does unrelated renames... :/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825576</commentid>
    <comment_count>20</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-02-05 09:59:43 -0800</bug_when>
    <thetext>I don&apos;t think this is the behavior we want to have for touch events in chromium.  Touch interactions should not trigger :active behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825611</commentid>
    <comment_count>21</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-02-05 10:32:57 -0800</bug_when>
    <thetext>(In reply to comment #20)
&gt; I don&apos;t think this is the behavior we want to have for touch events in chromium.  Touch interactions should not trigger :active behavior.

Then set the hit-test performed to ReadOnly. Btw, this bug was only about clearing the state when releasing the touch. I don&apos;t know where it was originally introduced to be set on touch down.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125105</attachid>
            <date>2012-02-02 04:08:58 -0800</date>
            <delta_ts>2012-02-02 04:29:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77620-20120202130816.patch</filename>
            <type>text/plain</type>
            <size>12836</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2NTQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTQ3Nzk2MWY2ODJlOTQ0
NzliN2FjZDkyMzEzZWRhMzA5ODI0ZDU2Zi4uMTBhNzIxZGIzNmVhYWZjZTUzY2M3ZWM4ZTgwYmEx
NjAxMmU3YWVlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTAyLTAyICBBbGxh
biBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5Abm9raWEuY29tPgorCisgICAgICAgIFVw
ZGF0ZSBhY3RpdmUgYW5kIGhvdmVyIHN0YXRlIG9uIHRvdWNoIHJlbGVhc2UuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzYyMAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcmVuZGVyaW5nL0hpdFRlc3RS
ZXF1ZXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpIaXRUZXN0UmVxdWVzdDo6bW92ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpIaXRUZXN0UmVxdWVzdDo6cmVsZWFzZSk6CisgICAgICAgIChXZWJDb3Jl
OjpIaXRUZXN0UmVxdWVzdDo6dG91Y2hFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpIaXRUZXN0
UmVxdWVzdDo6bW91c2VFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpIaXRUZXN0UmVxdWVzdDo6
dG91Y2hNb3ZlKToKKyAgICAgICAgKFdlYkNvcmU6OkhpdFRlc3RSZXF1ZXN0Ojp0b3VjaFJlbGVh
c2UpOgorICAgICAgICAgICAgUmVuYW1lIHRoZSBlbnVtIHZhbHVlcyBpbiBIaXRUZXN0UmVxdWVz
dCB0byBiZSBtb3VzZS90b3VjaAorICAgICAgICAgICAgYWdub3N0aWMsIGFuZCBhZGQgdmFsdWUg
Zm9yIHJlY29nbml6aW5nIHRvdWNoIGV2ZW50cy4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
RnJhbWVTZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRnJhbWVTZXQ6Om5vZGVBdFBv
aW50KTogVXBkYXRlIGZvciBIaXRUZXN0UmVxdWVzdCByZW5hbWUuCisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpoaXRU
ZXN0KTogZGl0dG8KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjp1cGRhdGVIb3ZlckFj
dGl2ZVN0YXRlKTogUmVzZXQgaG92ZXJzdGF0ZSBvbiB0b3VjaCByZWxlYXNlLgorICAgICAgICAq
IHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6
dXBkYXRlU2VsZWN0aW9uRm9yTW91c2VEcmFnKTogVXBkYXRlIGZvciBIaXRUZXN0UmVxdWVzdCBy
ZW5hbWUuCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRsZU1vdXNlTW92ZUV2
ZW50KTogZGl0dG8KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VS
ZWxlYXNlRXZlbnQpOiBkaXR0bworICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpob3Zl
clRpbWVyRmlyZWQpOiBkaXR0bworICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpkcmFn
U291cmNlRW5kZWRBdCk6IGRpdHRvCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6Omhh
bmRsZVRvdWNoRXZlbnQpOiBIaXR0ZXN0IHRvdWNoIHJlbGVhc2UgdG8gcmVzZXQKKyAgICAgICAg
ICAgIGFjdGl2ZSBhbmQgaG92ZXIgc3RhdGVzIGFuZCBhZGQgdG91Y2ggZW51bSB0byBhbGwgdG91
Y2ggaGl0dGVzdHMuCisKIDIwMTItMDItMDIgIEtpbnVrbyBZYXN1ZGEgIDxraW51a29AY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIENsZWFudXA6IE1vdmUgY2hyb21lLXNwZWNpZmljIGZpbGVzeXN0
ZW0gdHlwZSBoYW5kbGluZyBjb2RlIChmb3IgRmlsZVN5c3RlbSBBUEkpIHVuZGVyIGNocm9taXVt
IGRpcmVjdG9yeSAocmUtbGFuZGluZyByMTA1Mzk1KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwCmluZGV4IDRhYjE4MzNlMmRiMzBiMDM2OWY2ZmZiNzE1NTFlNWMxOTA4NWJhZDcuLmEy
ZjMyMmUyNjk1NTc3ZDQ1Yjg5ZmNmY2RhYTY2YWFlYjJiNDJhNDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5jcHAKQEAgLTY0Niw3ICs2NDYsNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6
dXBkYXRlU2VsZWN0aW9uRm9yTW91c2VEcmFnKCkKIAogICAgIEhpdFRlc3RSZXF1ZXN0IHJlcXVl
c3QoSGl0VGVzdFJlcXVlc3Q6OlJlYWRPbmx5IHwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEhpdFRlc3RSZXF1ZXN0OjpBY3RpdmUgfAotICAgICAgICAgICAgICAgICAgICAgICAgICAgSGl0
VGVzdFJlcXVlc3Q6Ok1vdXNlTW92ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICBIaXRU
ZXN0UmVxdWVzdDo6TW92ZSk7CiAgICAgSGl0VGVzdFJlc3VsdCByZXN1bHQodmlldy0+d2luZG93
VG9Db250ZW50cyhtX2N1cnJlbnRNb3VzZVBvc2l0aW9uKSk7CiAgICAgbGF5ZXItPmhpdFRlc3Qo
cmVxdWVzdCwgcmVzdWx0KTsKICAgICB1cGRhdGVTZWxlY3Rpb25Gb3JNb3VzZURyYWcocmVzdWx0
KTsKQEAgLTE2MjAsNyArMTYyMCw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZU1v
dmVFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIG1vdXNlRXZlbnQsIEhpCiAgICAgaWYg
KG1fbGFzdFNjcm9sbGJhclVuZGVyTW91c2UgJiYgbV9tb3VzZVByZXNzZWQpCiAgICAgICAgIHJl
dHVybiBtX2xhc3RTY3JvbGxiYXJVbmRlck1vdXNlLT5tb3VzZU1vdmVkKG1vdXNlRXZlbnQpOwog
Ci0gICAgSGl0VGVzdFJlcXVlc3Q6OkhpdFRlc3RSZXF1ZXN0VHlwZSBoaXRUeXBlID0gSGl0VGVz
dFJlcXVlc3Q6Ok1vdXNlTW92ZTsKKyAgICBIaXRUZXN0UmVxdWVzdDo6SGl0VGVzdFJlcXVlc3RU
eXBlIGhpdFR5cGUgPSBIaXRUZXN0UmVxdWVzdDo6TW92ZTsKICAgICBpZiAobV9tb3VzZVByZXNz
ZWQpCiAgICAgICAgIGhpdFR5cGUgfD0gSGl0VGVzdFJlcXVlc3Q6OkFjdGl2ZTsKIApAQCAtMTcy
Nyw3ICsxNzI3LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZU1vdXNlUmVsZWFzZUV2ZW50
KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgbW91c2VFdmVudCkKICAgICAgICAgcmV0dXJuIG1f
bGFzdFNjcm9sbGJhclVuZGVyTW91c2UtPm1vdXNlVXAobW91c2VFdmVudCk7CiAgICAgfQogCi0g
ICAgSGl0VGVzdFJlcXVlc3QgcmVxdWVzdChIaXRUZXN0UmVxdWVzdDo6TW91c2VVcCk7CisgICAg
SGl0VGVzdFJlcXVlc3QgcmVxdWVzdChIaXRUZXN0UmVxdWVzdDo6UmVsZWFzZSk7CiAgICAgTW91
c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyBtZXYgPSBwcmVwYXJlTW91c2VFdmVudChyZXF1ZXN0
LCBtb3VzZUV2ZW50KTsKICAgICBGcmFtZSogc3ViZnJhbWUgPSBtX2NhcHR1cmluZ01vdXNlRXZl
bnRzTm9kZS5nZXQoKSA/IHN1YmZyYW1lRm9yVGFyZ2V0Tm9kZShtX2NhcHR1cmluZ01vdXNlRXZl
bnRzTm9kZS5nZXQoKSkgOiBzdWJmcmFtZUZvckhpdFRlc3RSZXN1bHQobWV2KTsKICAgICBpZiAo
bV9ldmVudEhhbmRsZXJXaWxsUmVzZXRDYXB0dXJpbmdNb3VzZUV2ZW50c05vZGUpCkBAIC0yNDU2
LDcgKzI0NTYsNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6aG92ZXJUaW1lckZpcmVkKFRpbWVyPEV2
ZW50SGFuZGxlcj4qKQogCiAgICAgaWYgKFJlbmRlclZpZXcqIHJlbmRlcmVyID0gbV9mcmFtZS0+
Y29udGVudFJlbmRlcmVyKCkpIHsKICAgICAgICAgaWYgKEZyYW1lVmlldyogdmlldyA9IG1fZnJh
bWUtPnZpZXcoKSkgewotICAgICAgICAgICAgSGl0VGVzdFJlcXVlc3QgcmVxdWVzdChIaXRUZXN0
UmVxdWVzdDo6TW91c2VNb3ZlKTsKKyAgICAgICAgICAgIEhpdFRlc3RSZXF1ZXN0IHJlcXVlc3Qo
SGl0VGVzdFJlcXVlc3Q6Ok1vdmUpOwogICAgICAgICAgICAgSGl0VGVzdFJlc3VsdCByZXN1bHQo
dmlldy0+d2luZG93VG9Db250ZW50cyhtX2N1cnJlbnRNb3VzZVBvc2l0aW9uKSk7CiAgICAgICAg
ICAgICByZW5kZXJlci0+bGF5ZXIoKS0+aGl0VGVzdChyZXF1ZXN0LCByZXN1bHQpOwogICAgICAg
ICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+dXBkYXRlU3R5bGVJZk5lZWRlZCgpOwpAQCAtMjc3
Myw3ICsyNzczLDcgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmZyZWVDbGlwYm9hcmQoKQogdm9pZCBF
dmVudEhhbmRsZXI6OmRyYWdTb3VyY2VFbmRlZEF0KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYg
ZXZlbnQsIERyYWdPcGVyYXRpb24gb3BlcmF0aW9uKQogewogICAgIC8vIFNlbmQgYSBoaXQgdGVz
dCByZXF1ZXN0IHNvIHRoYXQgUmVuZGVyTGF5ZXIgZ2V0cyBhIGNoYW5jZSB0byB1cGRhdGUgdGhl
IDpob3ZlciBhbmQgOmFjdGl2ZSBwc2V1ZG9jbGFzc2VzLgotICAgIEhpdFRlc3RSZXF1ZXN0IHJl
cXVlc3QoSGl0VGVzdFJlcXVlc3Q6Ok1vdXNlVXApOworICAgIEhpdFRlc3RSZXF1ZXN0IHJlcXVl
c3QoSGl0VGVzdFJlcXVlc3Q6OlJlbGVhc2UpOwogICAgIHByZXBhcmVNb3VzZUV2ZW50KHJlcXVl
c3QsIGV2ZW50KTsKIAogICAgIGlmIChkcmFnU3RhdGUoKS5tX2RyYWdTcmMgJiYgZHJhZ1N0YXRl
KCkuc2hvdWxkRGlzcGF0Y2hFdmVudHMoKSkgewpAQCAtMzIzMiw3ICszMjMyLDcgQEAgYm9vbCBF
dmVudEhhbmRsZXI6OmhhbmRsZVRvdWNoRXZlbnQoY29uc3QgUGxhdGZvcm1Ub3VjaEV2ZW50JiBl
dmVudCkKICAgICAgICAgUGxhdGZvcm1Ub3VjaFBvaW50OjpTdGF0ZSBwb2ludFN0YXRlID0gcG9p
bnQuc3RhdGUoKTsKICAgICAgICAgTGF5b3V0UG9pbnQgcGFnZVBvaW50ID0gZG9jdW1lbnRQb2lu
dEZvcldpbmRvd1BvaW50KG1fZnJhbWUsIHBvaW50LnBvcygpKTsKIAotICAgICAgICBIaXRUZXN0
UmVxdWVzdDo6SGl0VGVzdFJlcXVlc3RUeXBlIGhpdFR5cGUgPSBIaXRUZXN0UmVxdWVzdDo6QWN0
aXZlIHwgSGl0VGVzdFJlcXVlc3Q6OlJlYWRPbmx5OworICAgICAgICBIaXRUZXN0UmVxdWVzdDo6
SGl0VGVzdFJlcXVlc3RUeXBlIGhpdFR5cGUgPSBIaXRUZXN0UmVxdWVzdDo6VG91Y2hFdmVudDsK
ICAgICAgICAgLy8gVGhlIEhpdFRlc3RSZXF1ZXN0IHR5cGVzIHVzZWQgZm9yIG1vdXNlIGV2ZW50
cyBtYXAgcXVpdGUgYWRlcXVhdGVseQogICAgICAgICAvLyB0byB0b3VjaCBldmVudHMuIE5vdGUg
dGhhdCBpbiBhZGRpdGlvbiB0byBtZWFuaW5nIHRoYXQgdGhlIGhpdCB0ZXN0CiAgICAgICAgIC8v
IHNob3VsZCBhZmZlY3QgdGhlIGFjdGl2ZSBzdGF0ZSBvZiB0aGUgY3VycmVudCBub2RlIGlmIG5l
Y2Vzc2FyeSwKQEAgLTMyNDAsMTYgKzMyNDAsMTcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRs
ZVRvdWNoRXZlbnQoY29uc3QgUGxhdGZvcm1Ub3VjaEV2ZW50JiBldmVudCkKICAgICAgICAgLy8g
d2l0aCB0aGUgbW91c2UgKG9yIGZpbmdlciBpbiB0aGlzIGNhc2UpIGJlaW5nIHByZXNzZWQuCiAg
ICAgICAgIHN3aXRjaCAocG9pbnRTdGF0ZSkgewogICAgICAgICBjYXNlIFBsYXRmb3JtVG91Y2hQ
b2ludDo6VG91Y2hQcmVzc2VkOgotICAgICAgICAgICAgaGl0VHlwZSA9IEhpdFRlc3RSZXF1ZXN0
OjpBY3RpdmU7CisgICAgICAgICAgICBoaXRUeXBlIHw9IEhpdFRlc3RSZXF1ZXN0OjpBY3RpdmU7
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRv
dWNoTW92ZWQ6Ci0gICAgICAgICAgICBoaXRUeXBlID0gSGl0VGVzdFJlcXVlc3Q6OkFjdGl2ZSB8
IEhpdFRlc3RSZXF1ZXN0OjpNb3VzZU1vdmUgfCBIaXRUZXN0UmVxdWVzdDo6UmVhZE9ubHk7Cisg
ICAgICAgICAgICBoaXRUeXBlIHw9IEhpdFRlc3RSZXF1ZXN0OjpBY3RpdmUgfCBIaXRUZXN0UmVx
dWVzdDo6TW92ZSB8IEhpdFRlc3RSZXF1ZXN0OjpSZWFkT25seTsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICBjYXNlIFBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hSZWxlYXNlZDoKICAgICAg
ICAgY2FzZSBQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoQ2FuY2VsbGVkOgotICAgICAgICAgICAg
aGl0VHlwZSA9IEhpdFRlc3RSZXF1ZXN0OjpNb3VzZVVwOworICAgICAgICAgICAgaGl0VHlwZSB8
PSBIaXRUZXN0UmVxdWVzdDo6UmVsZWFzZTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBk
ZWZhdWx0OgorICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgfQogCkBAIC0zMjc0LDEwICszMjc1LDEzIEBAIGJvb2wgRXZlbnRIYW5k
bGVyOjpoYW5kbGVUb3VjaEV2ZW50KGNvbnN0IFBsYXRmb3JtVG91Y2hFdmVudCYgZXZlbnQpCiAg
ICAgICAgICAgICBtX29yaWdpbmF0aW5nVG91Y2hQb2ludFRhcmdldHMuc2V0KHRvdWNoUG9pbnRU
YXJnZXRLZXksIG5vZGUpOwogICAgICAgICAgICAgdG91Y2hUYXJnZXQgPSBub2RlOwogICAgICAg
ICB9IGVsc2UgaWYgKHBvaW50U3RhdGUgPT0gUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaFJlbGVh
c2VkIHx8IHBvaW50U3RhdGUgPT0gUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaENhbmNlbGxlZCkg
eworICAgICAgICAgICAgLy8gV2Ugb25seSBwZXJmb3JtIGEgaGl0dGVzdCBvbiByZWxlYXNlIG9y
IGNhbmNlbCB0byB1bnNldCA6YWN0aXZlIG9yIDpob3ZlciBzdGF0ZS4KKyAgICAgICAgICAgIGhp
dFRlc3RSZXN1bHRBdFBvaW50KHBhZ2VQb2ludCwgLyphbGxvd1NoYWRvd0NvbnRlbnQqLyBmYWxz
ZSwgZmFsc2UsIERvbnRIaXRUZXN0U2Nyb2xsYmFycywgaGl0VHlwZSk7CiAgICAgICAgICAgICAv
LyBUaGUgdGFyZ2V0IHNob3VsZCBiZSB0aGUgb3JpZ2luYWwgdGFyZ2V0IGZvciB0aGlzIHRvdWNo
LCBzbyBnZXQgaXQgZnJvbSB0aGUgaGFzaG1hcC4gQXMgaXQncyBhIHJlbGVhc2Ugb3IgY2FuY2Vs
CiAgICAgICAgICAgICAvLyB3ZSBhbHNvIHJlbW92ZSBpdCBmcm9tIHRoZSBtYXAuCiAgICAgICAg
ICAgICB0b3VjaFRhcmdldCA9IG1fb3JpZ2luYXRpbmdUb3VjaFBvaW50VGFyZ2V0cy50YWtlKHRv
dWNoUG9pbnRUYXJnZXRLZXkpOwogICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIC8vIE5vIGhp
dHRlc3QgaXMgcGVyZm9ybWVkIG9uIG1vdmUsIHNpbmNlIHRoZSB0YXJnZXQgaXMgbm90IGFsbG93
ZWQgdG8gY2hhbmdlIGFueXdheS4KICAgICAgICAgICAgIHRvdWNoVGFyZ2V0ID0gbV9vcmlnaW5h
dGluZ1RvdWNoUG9pbnRUYXJnZXRzLmdldCh0b3VjaFBvaW50VGFyZ2V0S2V5KTsKIAogICAgICAg
ICBpZiAoIXRvdWNoVGFyZ2V0LmdldCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0hpdFRlc3RSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVz
dFJlcXVlc3QuaAppbmRleCAxZDA0NDFkODZjMDQzM2Y3OWMwZDMyNjAxZGZhYTM1YzA4YWMwM2Mw
Li5iN2JhNGE4NDYwNzQ1NjdjN2JhMTExZWJmMGFkNjgwOWY4MDYwNThkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlcXVlc3QuaApAQCAtMjksMTAgKzI5LDExIEBAIHB1Ymxp
YzoKICAgICBlbnVtIFJlcXVlc3RUeXBlIHsKICAgICAgICAgUmVhZE9ubHkgPSAxIDw8IDEsCiAg
ICAgICAgIEFjdGl2ZSA9IDEgPDwgMiwKLSAgICAgICAgTW91c2VNb3ZlID0gMSA8PCAzLAotICAg
ICAgICBNb3VzZVVwID0gMSA8PCA0LAorICAgICAgICBNb3ZlID0gMSA8PCAzLAorICAgICAgICBS
ZWxlYXNlID0gMSA8PCA0LAogICAgICAgICBJZ25vcmVDbGlwcGluZyA9IDEgPDwgNSwKLSAgICAg
ICAgU1ZHQ2xpcENvbnRlbnQgPSAxIDw8IDYKKyAgICAgICAgU1ZHQ2xpcENvbnRlbnQgPSAxIDw8
IDYsCisgICAgICAgIFRvdWNoRXZlbnQgPSAxIDw8IDcKICAgICB9OwogCiAgICAgdHlwZWRlZiB1
bnNpZ25lZCBIaXRUZXN0UmVxdWVzdFR5cGU7CkBAIC00NCwxMCArNDUsMTYgQEAgcHVibGljOgog
CiAgICAgYm9vbCByZWFkT25seSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdFR5cGUgJiBSZWFk
T25seTsgfQogICAgIGJvb2wgYWN0aXZlKCkgY29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0VHlwZSAm
IEFjdGl2ZTsgfQotICAgIGJvb2wgbW91c2VNb3ZlKCkgY29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0
VHlwZSAmIE1vdXNlTW92ZTsgfQotICAgIGJvb2wgbW91c2VVcCgpIGNvbnN0IHsgcmV0dXJuIG1f
cmVxdWVzdFR5cGUgJiBNb3VzZVVwOyB9CisgICAgYm9vbCBtb3ZlKCkgY29uc3QgeyByZXR1cm4g
bV9yZXF1ZXN0VHlwZSAmIE1vdmU7IH0KKyAgICBib29sIHJlbGVhc2UoKSBjb25zdCB7IHJldHVy
biBtX3JlcXVlc3RUeXBlICYgUmVsZWFzZTsgfQogICAgIGJvb2wgaWdub3JlQ2xpcHBpbmcoKSBj
b25zdCB7IHJldHVybiBtX3JlcXVlc3RUeXBlICYgSWdub3JlQ2xpcHBpbmc7IH0KICAgICBib29s
IHN2Z0NsaXBDb250ZW50KCkgY29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0VHlwZSAmIFNWR0NsaXBD
b250ZW50OyB9CisgICAgYm9vbCB0b3VjaEV2ZW50KCkgY29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0
VHlwZSAmIFRvdWNoRXZlbnQ7IH0KKyAgICBib29sIG1vdXNlRXZlbnQoKSBjb25zdCB7IHJldHVy
biAhdG91Y2hFdmVudCgpOyB9CisKKyAgICAvLyBDb252aW5pZW5jZSBmdW5jdGlvbnMKKyAgICBi
b29sIHRvdWNoTW92ZSgpIGNvbnN0IHsgcmV0dXJuIG1vdmUoKSAmJiB0b3VjaEV2ZW50KCk7IH0K
KyAgICBib29sIHRvdWNoUmVsZWFzZSgpIGNvbnN0IHsgcmV0dXJuIHJlbGVhc2UoKSAmJiB0b3Vj
aEV2ZW50KCk7IH0KIAogICAgIEhpdFRlc3RSZXF1ZXN0VHlwZSB0eXBlKCkgY29uc3QgeyByZXR1
cm4gbV9yZXF1ZXN0VHlwZTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRnJhbWVTZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZy
YW1lU2V0LmNwcAppbmRleCAwNzRmM2VkNWRmMzMxZDA0MWY5YjdkNTUyMzlkNzFiYzAzYTFmNzg5
Li42YjZkMjM5ODE3ZjNjYzI5YWJjOWFlYmZjNzUyZWFiYmQ5ZmJiOGM2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhbWVTZXQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFtZVNldC5jcHAKQEAgLTE2Nyw3ICsxNjcsNyBAQCBi
b29sIFJlbmRlckZyYW1lU2V0Ojpub2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYgcmVx
dWVzdCwgSGl0VGVzdFJlc3VsdCYgcgogICAgICAgICB8fCBtX2lzUmVzaXppbmc7CiAKICAgICBp
ZiAoaW5zaWRlICYmIGZyYW1lU2V0KCktPm5vUmVzaXplKCkKLSAgICAgICAgICAgICYmICFyZXF1
ZXN0LnJlYWRPbmx5KCkgJiYgIXJlc3VsdC5pbm5lck5vZGUoKSkgeworICAgICAgICAgICAgJiYg
IXJlcXVlc3QucmVhZE9ubHkoKSAmJiAhcmVzdWx0LmlubmVyTm9kZSgpICYmICFyZXF1ZXN0LnRv
dWNoTW92ZSgpKSB7CiAgICAgICAgIHJlc3VsdC5zZXRJbm5lck5vZGUobm9kZSgpKTsKICAgICAg
ICAgcmVzdWx0LnNldElubmVyTm9uU2hhcmVkTm9kZShub2RlKCkpOwogICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IDIxYWEzZDM2M2VhYWEyZWU1Y2Y0
ZjkxYjNjY2RkNjUzMzBiMDljZTcuLmU5ZjQ1ZDQ3ZWY0MjVhMWE1MjNjOGIxMGJiNjRmZjZjMmRj
MzFhZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtMzEw
NCw3ICszMTA0LDcgQEAgYm9vbCBSZW5kZXJMYXllcjo6aGl0VGVzdChjb25zdCBIaXRUZXN0UmVx
dWVzdCYgcmVxdWVzdCwgSGl0VGVzdFJlc3VsdCYgcmVzdWx0KQogICAgICAgICAvLyBXZSBkaWRu
J3QgaGl0IGFueSBsYXllci4gSWYgd2UgYXJlIHRoZSByb290IGxheWVyIGFuZCB0aGUgbW91c2Ug
aXMgLS0gb3IganVzdCB3YXMgLS0gZG93biwgCiAgICAgICAgIC8vIHJldHVybiBvdXJzZWx2ZXMu
IFdlIGRvIHRoaXMgc28gbW91c2UgZXZlbnRzIGNvbnRpbnVlIGdldHRpbmcgZGVsaXZlcmVkIGFm
dGVyIGEgZHJhZyBoYXMgCiAgICAgICAgIC8vIGV4aXRlZCB0aGUgV2ViVmlldywgYW5kIHNvIGhp
dCB0ZXN0aW5nIG92ZXIgYSBzY3JvbGxiYXIgaGl0cyB0aGUgY29udGVudCBkb2N1bWVudC4KLSAg
ICAgICAgaWYgKChyZXF1ZXN0LmFjdGl2ZSgpIHx8IHJlcXVlc3QubW91c2VVcCgpKSAmJiByZW5k
ZXJlcigpLT5pc1JlbmRlclZpZXcoKSkgeworICAgICAgICBpZiAoKHJlcXVlc3QuYWN0aXZlKCkg
fHwgcmVxdWVzdC5yZWxlYXNlKCkpICYmIHJlbmRlcmVyKCktPmlzUmVuZGVyVmlldygpKSB7CiAg
ICAgICAgICAgICByZW5kZXJlcigpLT51cGRhdGVIaXRUZXN0UmVzdWx0KHJlc3VsdCwgcmVzdWx0
LnBvaW50KCkpOwogICAgICAgICAgICAgaW5zaWRlTGF5ZXIgPSB0aGlzOwogICAgICAgICB9CkBA
IC00MDEzLDEzICs0MDEzLDEyIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZUhvdmVyQWN0aXZl
U3RhdGUoY29uc3QgSGl0VGVzdFJlcXVlc3QmIHJlcXVlc3QsIEhpdFRlc3RSCiAgICAgICAgIGRv
Yy0+c2V0QWN0aXZlTm9kZSgwKTsKICAgICB9IGVsc2UgewogICAgICAgICBOb2RlKiBuZXdBY3Rp
dmVOb2RlID0gcmVzdWx0LmlubmVyTm9kZSgpOwotICAgICAgICBpZiAoIWFjdGl2ZU5vZGUgJiYg
bmV3QWN0aXZlTm9kZSAmJiByZXF1ZXN0LmFjdGl2ZSgpKSB7CisgICAgICAgIGlmICghYWN0aXZl
Tm9kZSAmJiBuZXdBY3RpdmVOb2RlICYmIHJlcXVlc3QuYWN0aXZlKCkgJiYgIXJlcXVlc3QudG91
Y2hNb3ZlKCkpIHsKICAgICAgICAgICAgIC8vIFdlIGFyZSBzZXR0aW5nIHRoZSA6YWN0aXZlIGNo
YWluIGFuZCBmcmVlemluZyBpdC4gSWYgZnV0dXJlIG1vdmVzIGhhcHBlbiwgdGhleQogICAgICAg
ICAgICAgLy8gd2lsbCBuZWVkIHRvIHJlZmVyZW5jZSB0aGlzIGNoYWluLgogICAgICAgICAgICAg
Zm9yIChSZW5kZXJPYmplY3QqIGN1cnIgPSBuZXdBY3RpdmVOb2RlLT5yZW5kZXJlcigpOyBjdXJy
OyBjdXJyID0gY3Vyci0+cGFyZW50KCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoY3Vyci0+bm9k
ZSgpICYmICFjdXJyLT5pc1RleHQoKSkgeworICAgICAgICAgICAgICAgIGlmIChjdXJyLT5ub2Rl
KCkgJiYgIWN1cnItPmlzVGV4dCgpKQogICAgICAgICAgICAgICAgICAgICBjdXJyLT5ub2RlKCkt
PnNldEluQWN0aXZlQ2hhaW4oKTsKLSAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICBkb2MtPnNldEFjdGl2ZU5vZGUobmV3QWN0aXZlTm9kZSk7CiAgICAgICAgIH0K
QEAgLTQwMzEsMTEgKzQwMzAsMjQgQEAgdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlSG92ZXJBY3Rp
dmVTdGF0ZShjb25zdCBIaXRUZXN0UmVxdWVzdCYgcmVxdWVzdCwgSGl0VGVzdFIKICAgICAvLyBJ
ZiB0aGUgbW91c2UgaXMgZG93biBhbmQgaWYgdGhpcyBpcyBhIG1vdXNlIG1vdmUgZXZlbnQsIHdl
IHdhbnQgdG8gcmVzdHJpY3QgY2hhbmdlcyBpbiAKICAgICAvLyA6aG92ZXIvOmFjdGl2ZSB0byBv
bmx5IGFwcGx5IHRvIGVsZW1lbnRzIHRoYXQgYXJlIGluIHRoZSA6YWN0aXZlIGNoYWluIHRoYXQg
d2UgZnJvemUKICAgICAvLyBhdCB0aGUgdGltZSB0aGUgbW91c2Ugd2VudCBkb3duLgotICAgIGJv
b2wgbXVzdEJlSW5BY3RpdmVDaGFpbiA9IHJlcXVlc3QuYWN0aXZlKCkgJiYgcmVxdWVzdC5tb3Vz
ZU1vdmUoKTsKKyAgICBib29sIG11c3RCZUluQWN0aXZlQ2hhaW4gPSByZXF1ZXN0LmFjdGl2ZSgp
ICYmIHJlcXVlc3QubW92ZSgpOwogCi0gICAgLy8gQ2hlY2sgdG8gc2VlIGlmIHRoZSBob3ZlcmVk
IG5vZGUgaGFzIGNoYW5nZWQuICBJZiBub3QsIHRoZW4gd2UgZG9uJ3QgbmVlZCB0bwotICAgIC8v
IGRvIGFueXRoaW5nLiAgCiAgICAgUmVmUHRyPE5vZGU+IG9sZEhvdmVyTm9kZSA9IGRvYy0+aG92
ZXJOb2RlKCk7CisgICAgLy8gQ2xlYXIgdGhlIDpob3ZlciBjaGFpbiB3aGVuIHRoZSB0b3VjaCBn
ZXN0dXJlIGlzIG92ZXIuCisgICAgaWYgKHJlcXVlc3QudG91Y2hSZWxlYXNlKCkpIHsKKyAgICAg
ICAgaWYgKG9sZEhvdmVyTm9kZSkgeworICAgICAgICAgICAgZm9yIChSZW5kZXJPYmplY3QqIGN1
cnIgPSBvbGRIb3Zlck5vZGUtPnJlbmRlcmVyKCk7IGN1cnI7IGN1cnIgPSBjdXJyLT5wYXJlbnQo
KSkgeworICAgICAgICAgICAgICAgIGlmIChjdXJyLT5ub2RlKCkgJiYgIWN1cnItPmlzVGV4dCgp
KQorICAgICAgICAgICAgICAgICAgICBjdXJyLT5ub2RlKCktPnNldEhvdmVyZWQoZmFsc2UpOwor
ICAgICAgICAgICAgfQorICAgICAgICAgICAgZG9jLT5zZXRIb3Zlck5vZGUoMCk7CisgICAgICAg
IH0KKyAgICAgICAgLy8gQSB0b3VjaCByZWxlYXNlIGNhbiBub3Qgc2V0IG5ldyBob3ZlciBvciBh
Y3RpdmUgdGFyZ2V0LgorICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gQ2hlY2sgdG8g
c2VlIGlmIHRoZSBob3ZlcmVkIG5vZGUgaGFzIGNoYW5nZWQuIElmIG5vdCwgdGhlbiB3ZSBkb24n
dCBuZWVkIHRvCisgICAgLy8gZG8gYW55dGhpbmcuCiAgICAgTm9kZSogbmV3SG92ZXJOb2RlID0g
cmVzdWx0LmlubmVyTm9kZSgpOwogICAgIGlmIChuZXdIb3Zlck5vZGUgJiYgIW5ld0hvdmVyTm9k
ZS0+cmVuZGVyZXIoKSkKICAgICAgICAgbmV3SG92ZXJOb2RlID0gcmVzdWx0LmlubmVyTm9uU2hh
cmVkTm9kZSgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125111</attachid>
            <date>2012-02-02 04:30:04 -0800</date>
            <delta_ts>2012-02-02 05:01:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77620-20120202132922.patch</filename>
            <type>text/plain</type>
            <size>12838</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2NTQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTQ3Nzk2MWY2ODJlOTQ0
NzliN2FjZDkyMzEzZWRhMzA5ODI0ZDU2Zi4uMTBhNzIxZGIzNmVhYWZjZTUzY2M3ZWM4ZTgwYmEx
NjAxMmU3YWVlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTAyLTAyICBBbGxh
biBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5Abm9raWEuY29tPgorCisgICAgICAgIFVw
ZGF0ZSBhY3RpdmUgYW5kIGhvdmVyIHN0YXRlIG9uIHRvdWNoIHJlbGVhc2UuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzYyMAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcmVuZGVyaW5nL0hpdFRlc3RS
ZXF1ZXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpIaXRUZXN0UmVxdWVzdDo6bW92ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpIaXRUZXN0UmVxdWVzdDo6cmVsZWFzZSk6CisgICAgICAgIChXZWJDb3Jl
OjpIaXRUZXN0UmVxdWVzdDo6dG91Y2hFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpIaXRUZXN0
UmVxdWVzdDo6bW91c2VFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpIaXRUZXN0UmVxdWVzdDo6
dG91Y2hNb3ZlKToKKyAgICAgICAgKFdlYkNvcmU6OkhpdFRlc3RSZXF1ZXN0Ojp0b3VjaFJlbGVh
c2UpOgorICAgICAgICAgICAgUmVuYW1lIHRoZSBlbnVtIHZhbHVlcyBpbiBIaXRUZXN0UmVxdWVz
dCB0byBiZSBtb3VzZS90b3VjaAorICAgICAgICAgICAgYWdub3N0aWMsIGFuZCBhZGQgdmFsdWUg
Zm9yIHJlY29nbml6aW5nIHRvdWNoIGV2ZW50cy4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
RnJhbWVTZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRnJhbWVTZXQ6Om5vZGVBdFBv
aW50KTogVXBkYXRlIGZvciBIaXRUZXN0UmVxdWVzdCByZW5hbWUuCisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpoaXRU
ZXN0KTogZGl0dG8KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjp1cGRhdGVIb3ZlckFj
dGl2ZVN0YXRlKTogUmVzZXQgaG92ZXJzdGF0ZSBvbiB0b3VjaCByZWxlYXNlLgorICAgICAgICAq
IHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6
dXBkYXRlU2VsZWN0aW9uRm9yTW91c2VEcmFnKTogVXBkYXRlIGZvciBIaXRUZXN0UmVxdWVzdCBy
ZW5hbWUuCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRsZU1vdXNlTW92ZUV2
ZW50KTogZGl0dG8KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VS
ZWxlYXNlRXZlbnQpOiBkaXR0bworICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpob3Zl
clRpbWVyRmlyZWQpOiBkaXR0bworICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpkcmFn
U291cmNlRW5kZWRBdCk6IGRpdHRvCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6Omhh
bmRsZVRvdWNoRXZlbnQpOiBIaXR0ZXN0IHRvdWNoIHJlbGVhc2UgdG8gcmVzZXQKKyAgICAgICAg
ICAgIGFjdGl2ZSBhbmQgaG92ZXIgc3RhdGVzIGFuZCBhZGQgdG91Y2ggZW51bSB0byBhbGwgdG91
Y2ggaGl0dGVzdHMuCisKIDIwMTItMDItMDIgIEtpbnVrbyBZYXN1ZGEgIDxraW51a29AY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIENsZWFudXA6IE1vdmUgY2hyb21lLXNwZWNpZmljIGZpbGVzeXN0
ZW0gdHlwZSBoYW5kbGluZyBjb2RlIChmb3IgRmlsZVN5c3RlbSBBUEkpIHVuZGVyIGNocm9taXVt
IGRpcmVjdG9yeSAocmUtbGFuZGluZyByMTA1Mzk1KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwCmluZGV4IDRhYjE4MzNlMmRiMzBiMDM2OWY2ZmZiNzE1NTFlNWMxOTA4NWJhZDcuLmEy
ZjMyMmUyNjk1NTc3ZDQ1Yjg5ZmNmY2RhYTY2YWFlYjJiNDJhNDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5jcHAKQEAgLTY0Niw3ICs2NDYsNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6
dXBkYXRlU2VsZWN0aW9uRm9yTW91c2VEcmFnKCkKIAogICAgIEhpdFRlc3RSZXF1ZXN0IHJlcXVl
c3QoSGl0VGVzdFJlcXVlc3Q6OlJlYWRPbmx5IHwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEhpdFRlc3RSZXF1ZXN0OjpBY3RpdmUgfAotICAgICAgICAgICAgICAgICAgICAgICAgICAgSGl0
VGVzdFJlcXVlc3Q6Ok1vdXNlTW92ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICBIaXRU
ZXN0UmVxdWVzdDo6TW92ZSk7CiAgICAgSGl0VGVzdFJlc3VsdCByZXN1bHQodmlldy0+d2luZG93
VG9Db250ZW50cyhtX2N1cnJlbnRNb3VzZVBvc2l0aW9uKSk7CiAgICAgbGF5ZXItPmhpdFRlc3Qo
cmVxdWVzdCwgcmVzdWx0KTsKICAgICB1cGRhdGVTZWxlY3Rpb25Gb3JNb3VzZURyYWcocmVzdWx0
KTsKQEAgLTE2MjAsNyArMTYyMCw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZU1v
dmVFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIG1vdXNlRXZlbnQsIEhpCiAgICAgaWYg
KG1fbGFzdFNjcm9sbGJhclVuZGVyTW91c2UgJiYgbV9tb3VzZVByZXNzZWQpCiAgICAgICAgIHJl
dHVybiBtX2xhc3RTY3JvbGxiYXJVbmRlck1vdXNlLT5tb3VzZU1vdmVkKG1vdXNlRXZlbnQpOwog
Ci0gICAgSGl0VGVzdFJlcXVlc3Q6OkhpdFRlc3RSZXF1ZXN0VHlwZSBoaXRUeXBlID0gSGl0VGVz
dFJlcXVlc3Q6Ok1vdXNlTW92ZTsKKyAgICBIaXRUZXN0UmVxdWVzdDo6SGl0VGVzdFJlcXVlc3RU
eXBlIGhpdFR5cGUgPSBIaXRUZXN0UmVxdWVzdDo6TW92ZTsKICAgICBpZiAobV9tb3VzZVByZXNz
ZWQpCiAgICAgICAgIGhpdFR5cGUgfD0gSGl0VGVzdFJlcXVlc3Q6OkFjdGl2ZTsKIApAQCAtMTcy
Nyw3ICsxNzI3LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZU1vdXNlUmVsZWFzZUV2ZW50
KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgbW91c2VFdmVudCkKICAgICAgICAgcmV0dXJuIG1f
bGFzdFNjcm9sbGJhclVuZGVyTW91c2UtPm1vdXNlVXAobW91c2VFdmVudCk7CiAgICAgfQogCi0g
ICAgSGl0VGVzdFJlcXVlc3QgcmVxdWVzdChIaXRUZXN0UmVxdWVzdDo6TW91c2VVcCk7CisgICAg
SGl0VGVzdFJlcXVlc3QgcmVxdWVzdChIaXRUZXN0UmVxdWVzdDo6UmVsZWFzZSk7CiAgICAgTW91
c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyBtZXYgPSBwcmVwYXJlTW91c2VFdmVudChyZXF1ZXN0
LCBtb3VzZUV2ZW50KTsKICAgICBGcmFtZSogc3ViZnJhbWUgPSBtX2NhcHR1cmluZ01vdXNlRXZl
bnRzTm9kZS5nZXQoKSA/IHN1YmZyYW1lRm9yVGFyZ2V0Tm9kZShtX2NhcHR1cmluZ01vdXNlRXZl
bnRzTm9kZS5nZXQoKSkgOiBzdWJmcmFtZUZvckhpdFRlc3RSZXN1bHQobWV2KTsKICAgICBpZiAo
bV9ldmVudEhhbmRsZXJXaWxsUmVzZXRDYXB0dXJpbmdNb3VzZUV2ZW50c05vZGUpCkBAIC0yNDU2
LDcgKzI0NTYsNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6aG92ZXJUaW1lckZpcmVkKFRpbWVyPEV2
ZW50SGFuZGxlcj4qKQogCiAgICAgaWYgKFJlbmRlclZpZXcqIHJlbmRlcmVyID0gbV9mcmFtZS0+
Y29udGVudFJlbmRlcmVyKCkpIHsKICAgICAgICAgaWYgKEZyYW1lVmlldyogdmlldyA9IG1fZnJh
bWUtPnZpZXcoKSkgewotICAgICAgICAgICAgSGl0VGVzdFJlcXVlc3QgcmVxdWVzdChIaXRUZXN0
UmVxdWVzdDo6TW91c2VNb3ZlKTsKKyAgICAgICAgICAgIEhpdFRlc3RSZXF1ZXN0IHJlcXVlc3Qo
SGl0VGVzdFJlcXVlc3Q6Ok1vdmUpOwogICAgICAgICAgICAgSGl0VGVzdFJlc3VsdCByZXN1bHQo
dmlldy0+d2luZG93VG9Db250ZW50cyhtX2N1cnJlbnRNb3VzZVBvc2l0aW9uKSk7CiAgICAgICAg
ICAgICByZW5kZXJlci0+bGF5ZXIoKS0+aGl0VGVzdChyZXF1ZXN0LCByZXN1bHQpOwogICAgICAg
ICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+dXBkYXRlU3R5bGVJZk5lZWRlZCgpOwpAQCAtMjc3
Myw3ICsyNzczLDcgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmZyZWVDbGlwYm9hcmQoKQogdm9pZCBF
dmVudEhhbmRsZXI6OmRyYWdTb3VyY2VFbmRlZEF0KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYg
ZXZlbnQsIERyYWdPcGVyYXRpb24gb3BlcmF0aW9uKQogewogICAgIC8vIFNlbmQgYSBoaXQgdGVz
dCByZXF1ZXN0IHNvIHRoYXQgUmVuZGVyTGF5ZXIgZ2V0cyBhIGNoYW5jZSB0byB1cGRhdGUgdGhl
IDpob3ZlciBhbmQgOmFjdGl2ZSBwc2V1ZG9jbGFzc2VzLgotICAgIEhpdFRlc3RSZXF1ZXN0IHJl
cXVlc3QoSGl0VGVzdFJlcXVlc3Q6Ok1vdXNlVXApOworICAgIEhpdFRlc3RSZXF1ZXN0IHJlcXVl
c3QoSGl0VGVzdFJlcXVlc3Q6OlJlbGVhc2UpOwogICAgIHByZXBhcmVNb3VzZUV2ZW50KHJlcXVl
c3QsIGV2ZW50KTsKIAogICAgIGlmIChkcmFnU3RhdGUoKS5tX2RyYWdTcmMgJiYgZHJhZ1N0YXRl
KCkuc2hvdWxkRGlzcGF0Y2hFdmVudHMoKSkgewpAQCAtMzIzMiw3ICszMjMyLDcgQEAgYm9vbCBF
dmVudEhhbmRsZXI6OmhhbmRsZVRvdWNoRXZlbnQoY29uc3QgUGxhdGZvcm1Ub3VjaEV2ZW50JiBl
dmVudCkKICAgICAgICAgUGxhdGZvcm1Ub3VjaFBvaW50OjpTdGF0ZSBwb2ludFN0YXRlID0gcG9p
bnQuc3RhdGUoKTsKICAgICAgICAgTGF5b3V0UG9pbnQgcGFnZVBvaW50ID0gZG9jdW1lbnRQb2lu
dEZvcldpbmRvd1BvaW50KG1fZnJhbWUsIHBvaW50LnBvcygpKTsKIAotICAgICAgICBIaXRUZXN0
UmVxdWVzdDo6SGl0VGVzdFJlcXVlc3RUeXBlIGhpdFR5cGUgPSBIaXRUZXN0UmVxdWVzdDo6QWN0
aXZlIHwgSGl0VGVzdFJlcXVlc3Q6OlJlYWRPbmx5OworICAgICAgICBIaXRUZXN0UmVxdWVzdDo6
SGl0VGVzdFJlcXVlc3RUeXBlIGhpdFR5cGUgPSBIaXRUZXN0UmVxdWVzdDo6VG91Y2hFdmVudDsK
ICAgICAgICAgLy8gVGhlIEhpdFRlc3RSZXF1ZXN0IHR5cGVzIHVzZWQgZm9yIG1vdXNlIGV2ZW50
cyBtYXAgcXVpdGUgYWRlcXVhdGVseQogICAgICAgICAvLyB0byB0b3VjaCBldmVudHMuIE5vdGUg
dGhhdCBpbiBhZGRpdGlvbiB0byBtZWFuaW5nIHRoYXQgdGhlIGhpdCB0ZXN0CiAgICAgICAgIC8v
IHNob3VsZCBhZmZlY3QgdGhlIGFjdGl2ZSBzdGF0ZSBvZiB0aGUgY3VycmVudCBub2RlIGlmIG5l
Y2Vzc2FyeSwKQEAgLTMyNDAsMTYgKzMyNDAsMTcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRs
ZVRvdWNoRXZlbnQoY29uc3QgUGxhdGZvcm1Ub3VjaEV2ZW50JiBldmVudCkKICAgICAgICAgLy8g
d2l0aCB0aGUgbW91c2UgKG9yIGZpbmdlciBpbiB0aGlzIGNhc2UpIGJlaW5nIHByZXNzZWQuCiAg
ICAgICAgIHN3aXRjaCAocG9pbnRTdGF0ZSkgewogICAgICAgICBjYXNlIFBsYXRmb3JtVG91Y2hQ
b2ludDo6VG91Y2hQcmVzc2VkOgotICAgICAgICAgICAgaGl0VHlwZSA9IEhpdFRlc3RSZXF1ZXN0
OjpBY3RpdmU7CisgICAgICAgICAgICBoaXRUeXBlIHw9IEhpdFRlc3RSZXF1ZXN0OjpBY3RpdmU7
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRv
dWNoTW92ZWQ6Ci0gICAgICAgICAgICBoaXRUeXBlID0gSGl0VGVzdFJlcXVlc3Q6OkFjdGl2ZSB8
IEhpdFRlc3RSZXF1ZXN0OjpNb3VzZU1vdmUgfCBIaXRUZXN0UmVxdWVzdDo6UmVhZE9ubHk7Cisg
ICAgICAgICAgICBoaXRUeXBlIHw9IEhpdFRlc3RSZXF1ZXN0OjpBY3RpdmUgfCBIaXRUZXN0UmVx
dWVzdDo6TW92ZSB8IEhpdFRlc3RSZXF1ZXN0OjpSZWFkT25seTsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICBjYXNlIFBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hSZWxlYXNlZDoKICAgICAg
ICAgY2FzZSBQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoQ2FuY2VsbGVkOgotICAgICAgICAgICAg
aGl0VHlwZSA9IEhpdFRlc3RSZXF1ZXN0OjpNb3VzZVVwOworICAgICAgICAgICAgaGl0VHlwZSB8
PSBIaXRUZXN0UmVxdWVzdDo6UmVsZWFzZTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBk
ZWZhdWx0OgorICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgfQogCkBAIC0zMjc0LDEwICszMjc1LDEzIEBAIGJvb2wgRXZlbnRIYW5k
bGVyOjpoYW5kbGVUb3VjaEV2ZW50KGNvbnN0IFBsYXRmb3JtVG91Y2hFdmVudCYgZXZlbnQpCiAg
ICAgICAgICAgICBtX29yaWdpbmF0aW5nVG91Y2hQb2ludFRhcmdldHMuc2V0KHRvdWNoUG9pbnRU
YXJnZXRLZXksIG5vZGUpOwogICAgICAgICAgICAgdG91Y2hUYXJnZXQgPSBub2RlOwogICAgICAg
ICB9IGVsc2UgaWYgKHBvaW50U3RhdGUgPT0gUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaFJlbGVh
c2VkIHx8IHBvaW50U3RhdGUgPT0gUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaENhbmNlbGxlZCkg
eworICAgICAgICAgICAgLy8gV2Ugb25seSBwZXJmb3JtIGEgaGl0dGVzdCBvbiByZWxlYXNlIG9y
IGNhbmNlbCB0byB1bnNldCA6YWN0aXZlIG9yIDpob3ZlciBzdGF0ZS4KKyAgICAgICAgICAgIGhp
dFRlc3RSZXN1bHRBdFBvaW50KHBhZ2VQb2ludCwgLyphbGxvd1NoYWRvd0NvbnRlbnQqLyBmYWxz
ZSwgZmFsc2UsIERvbnRIaXRUZXN0U2Nyb2xsYmFycywgaGl0VHlwZSk7CiAgICAgICAgICAgICAv
LyBUaGUgdGFyZ2V0IHNob3VsZCBiZSB0aGUgb3JpZ2luYWwgdGFyZ2V0IGZvciB0aGlzIHRvdWNo
LCBzbyBnZXQgaXQgZnJvbSB0aGUgaGFzaG1hcC4gQXMgaXQncyBhIHJlbGVhc2Ugb3IgY2FuY2Vs
CiAgICAgICAgICAgICAvLyB3ZSBhbHNvIHJlbW92ZSBpdCBmcm9tIHRoZSBtYXAuCiAgICAgICAg
ICAgICB0b3VjaFRhcmdldCA9IG1fb3JpZ2luYXRpbmdUb3VjaFBvaW50VGFyZ2V0cy50YWtlKHRv
dWNoUG9pbnRUYXJnZXRLZXkpOwogICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIC8vIE5vIGhp
dHRlc3QgaXMgcGVyZm9ybWVkIG9uIG1vdmUsIHNpbmNlIHRoZSB0YXJnZXQgaXMgbm90IGFsbG93
ZWQgdG8gY2hhbmdlIGFueXdheS4KICAgICAgICAgICAgIHRvdWNoVGFyZ2V0ID0gbV9vcmlnaW5h
dGluZ1RvdWNoUG9pbnRUYXJnZXRzLmdldCh0b3VjaFBvaW50VGFyZ2V0S2V5KTsKIAogICAgICAg
ICBpZiAoIXRvdWNoVGFyZ2V0LmdldCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0hpdFRlc3RSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVz
dFJlcXVlc3QuaAppbmRleCAxZDA0NDFkODZjMDQzM2Y3OWMwZDMyNjAxZGZhYTM1YzA4YWMwM2Mw
Li5mZWQ1NmJhOGVkYzAyMjlhYWUxYWNhNWM4ZmE2ZjU1ZWZiMzhkN2U0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlcXVlc3QuaApAQCAtMjksMTAgKzI5LDExIEBAIHB1Ymxp
YzoKICAgICBlbnVtIFJlcXVlc3RUeXBlIHsKICAgICAgICAgUmVhZE9ubHkgPSAxIDw8IDEsCiAg
ICAgICAgIEFjdGl2ZSA9IDEgPDwgMiwKLSAgICAgICAgTW91c2VNb3ZlID0gMSA8PCAzLAotICAg
ICAgICBNb3VzZVVwID0gMSA8PCA0LAorICAgICAgICBNb3ZlID0gMSA8PCAzLAorICAgICAgICBS
ZWxlYXNlID0gMSA8PCA0LAogICAgICAgICBJZ25vcmVDbGlwcGluZyA9IDEgPDwgNSwKLSAgICAg
ICAgU1ZHQ2xpcENvbnRlbnQgPSAxIDw8IDYKKyAgICAgICAgU1ZHQ2xpcENvbnRlbnQgPSAxIDw8
IDYsCisgICAgICAgIFRvdWNoRXZlbnQgPSAxIDw8IDcKICAgICB9OwogCiAgICAgdHlwZWRlZiB1
bnNpZ25lZCBIaXRUZXN0UmVxdWVzdFR5cGU7CkBAIC00NCwxMCArNDUsMTYgQEAgcHVibGljOgog
CiAgICAgYm9vbCByZWFkT25seSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdFR5cGUgJiBSZWFk
T25seTsgfQogICAgIGJvb2wgYWN0aXZlKCkgY29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0VHlwZSAm
IEFjdGl2ZTsgfQotICAgIGJvb2wgbW91c2VNb3ZlKCkgY29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0
VHlwZSAmIE1vdXNlTW92ZTsgfQotICAgIGJvb2wgbW91c2VVcCgpIGNvbnN0IHsgcmV0dXJuIG1f
cmVxdWVzdFR5cGUgJiBNb3VzZVVwOyB9CisgICAgYm9vbCBtb3ZlKCkgY29uc3QgeyByZXR1cm4g
bV9yZXF1ZXN0VHlwZSAmIE1vdmU7IH0KKyAgICBib29sIHJlbGVhc2UoKSBjb25zdCB7IHJldHVy
biBtX3JlcXVlc3RUeXBlICYgUmVsZWFzZTsgfQogICAgIGJvb2wgaWdub3JlQ2xpcHBpbmcoKSBj
b25zdCB7IHJldHVybiBtX3JlcXVlc3RUeXBlICYgSWdub3JlQ2xpcHBpbmc7IH0KICAgICBib29s
IHN2Z0NsaXBDb250ZW50KCkgY29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0VHlwZSAmIFNWR0NsaXBD
b250ZW50OyB9CisgICAgYm9vbCB0b3VjaEV2ZW50KCkgY29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0
VHlwZSAmIFRvdWNoRXZlbnQ7IH0KKyAgICBib29sIG1vdXNlRXZlbnQoKSBjb25zdCB7IHJldHVy
biAhdG91Y2hFdmVudCgpOyB9CisKKyAgICAvLyBDb252ZW5pZW5jZSBmdW5jdGlvbnMKKyAgICBi
b29sIHRvdWNoTW92ZSgpIGNvbnN0IHsgcmV0dXJuIG1vdmUoKSAmJiB0b3VjaEV2ZW50KCk7IH0K
KyAgICBib29sIHRvdWNoUmVsZWFzZSgpIGNvbnN0IHsgcmV0dXJuIHJlbGVhc2UoKSAmJiB0b3Vj
aEV2ZW50KCk7IH0KIAogICAgIEhpdFRlc3RSZXF1ZXN0VHlwZSB0eXBlKCkgY29uc3QgeyByZXR1
cm4gbV9yZXF1ZXN0VHlwZTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRnJhbWVTZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZy
YW1lU2V0LmNwcAppbmRleCAwNzRmM2VkNWRmMzMxZDA0MWY5YjdkNTUyMzlkNzFiYzAzYTFmNzg5
Li42YjZkMjM5ODE3ZjNjYzI5YWJjOWFlYmZjNzUyZWFiYmQ5ZmJiOGM2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhbWVTZXQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFtZVNldC5jcHAKQEAgLTE2Nyw3ICsxNjcsNyBAQCBi
b29sIFJlbmRlckZyYW1lU2V0Ojpub2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYgcmVx
dWVzdCwgSGl0VGVzdFJlc3VsdCYgcgogICAgICAgICB8fCBtX2lzUmVzaXppbmc7CiAKICAgICBp
ZiAoaW5zaWRlICYmIGZyYW1lU2V0KCktPm5vUmVzaXplKCkKLSAgICAgICAgICAgICYmICFyZXF1
ZXN0LnJlYWRPbmx5KCkgJiYgIXJlc3VsdC5pbm5lck5vZGUoKSkgeworICAgICAgICAgICAgJiYg
IXJlcXVlc3QucmVhZE9ubHkoKSAmJiAhcmVzdWx0LmlubmVyTm9kZSgpICYmICFyZXF1ZXN0LnRv
dWNoTW92ZSgpKSB7CiAgICAgICAgIHJlc3VsdC5zZXRJbm5lck5vZGUobm9kZSgpKTsKICAgICAg
ICAgcmVzdWx0LnNldElubmVyTm9uU2hhcmVkTm9kZShub2RlKCkpOwogICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IDIxYWEzZDM2M2VhYWEyZWU1Y2Y0
ZjkxYjNjY2RkNjUzMzBiMDljZTcuLmQwNmIzMGQ3ZDAwNDRiNDhjYTJiZTE0MGQwYTBhMGRjNTU0
ZTAyYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtMzEw
NCw3ICszMTA0LDcgQEAgYm9vbCBSZW5kZXJMYXllcjo6aGl0VGVzdChjb25zdCBIaXRUZXN0UmVx
dWVzdCYgcmVxdWVzdCwgSGl0VGVzdFJlc3VsdCYgcmVzdWx0KQogICAgICAgICAvLyBXZSBkaWRu
J3QgaGl0IGFueSBsYXllci4gSWYgd2UgYXJlIHRoZSByb290IGxheWVyIGFuZCB0aGUgbW91c2Ug
aXMgLS0gb3IganVzdCB3YXMgLS0gZG93biwgCiAgICAgICAgIC8vIHJldHVybiBvdXJzZWx2ZXMu
IFdlIGRvIHRoaXMgc28gbW91c2UgZXZlbnRzIGNvbnRpbnVlIGdldHRpbmcgZGVsaXZlcmVkIGFm
dGVyIGEgZHJhZyBoYXMgCiAgICAgICAgIC8vIGV4aXRlZCB0aGUgV2ViVmlldywgYW5kIHNvIGhp
dCB0ZXN0aW5nIG92ZXIgYSBzY3JvbGxiYXIgaGl0cyB0aGUgY29udGVudCBkb2N1bWVudC4KLSAg
ICAgICAgaWYgKChyZXF1ZXN0LmFjdGl2ZSgpIHx8IHJlcXVlc3QubW91c2VVcCgpKSAmJiByZW5k
ZXJlcigpLT5pc1JlbmRlclZpZXcoKSkgeworICAgICAgICBpZiAoKHJlcXVlc3QuYWN0aXZlKCkg
fHwgcmVxdWVzdC5yZWxlYXNlKCkpICYmIHJlbmRlcmVyKCktPmlzUmVuZGVyVmlldygpKSB7CiAg
ICAgICAgICAgICByZW5kZXJlcigpLT51cGRhdGVIaXRUZXN0UmVzdWx0KHJlc3VsdCwgcmVzdWx0
LnBvaW50KCkpOwogICAgICAgICAgICAgaW5zaWRlTGF5ZXIgPSB0aGlzOwogICAgICAgICB9CkBA
IC00MDEzLDEzICs0MDEzLDEyIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZUhvdmVyQWN0aXZl
U3RhdGUoY29uc3QgSGl0VGVzdFJlcXVlc3QmIHJlcXVlc3QsIEhpdFRlc3RSCiAgICAgICAgIGRv
Yy0+c2V0QWN0aXZlTm9kZSgwKTsKICAgICB9IGVsc2UgewogICAgICAgICBOb2RlKiBuZXdBY3Rp
dmVOb2RlID0gcmVzdWx0LmlubmVyTm9kZSgpOwotICAgICAgICBpZiAoIWFjdGl2ZU5vZGUgJiYg
bmV3QWN0aXZlTm9kZSAmJiByZXF1ZXN0LmFjdGl2ZSgpKSB7CisgICAgICAgIGlmICghYWN0aXZl
Tm9kZSAmJiBuZXdBY3RpdmVOb2RlICYmIHJlcXVlc3QuYWN0aXZlKCkgJiYgIXJlcXVlc3QudG91
Y2hNb3ZlKCkpIHsKICAgICAgICAgICAgIC8vIFdlIGFyZSBzZXR0aW5nIHRoZSA6YWN0aXZlIGNo
YWluIGFuZCBmcmVlemluZyBpdC4gSWYgZnV0dXJlIG1vdmVzIGhhcHBlbiwgdGhleQogICAgICAg
ICAgICAgLy8gd2lsbCBuZWVkIHRvIHJlZmVyZW5jZSB0aGlzIGNoYWluLgogICAgICAgICAgICAg
Zm9yIChSZW5kZXJPYmplY3QqIGN1cnIgPSBuZXdBY3RpdmVOb2RlLT5yZW5kZXJlcigpOyBjdXJy
OyBjdXJyID0gY3Vyci0+cGFyZW50KCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoY3Vyci0+bm9k
ZSgpICYmICFjdXJyLT5pc1RleHQoKSkgeworICAgICAgICAgICAgICAgIGlmIChjdXJyLT5ub2Rl
KCkgJiYgIWN1cnItPmlzVGV4dCgpKQogICAgICAgICAgICAgICAgICAgICBjdXJyLT5ub2RlKCkt
PnNldEluQWN0aXZlQ2hhaW4oKTsKLSAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICBkb2MtPnNldEFjdGl2ZU5vZGUobmV3QWN0aXZlTm9kZSk7CiAgICAgICAgIH0K
QEAgLTQwMzEsMTEgKzQwMzAsMjQgQEAgdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlSG92ZXJBY3Rp
dmVTdGF0ZShjb25zdCBIaXRUZXN0UmVxdWVzdCYgcmVxdWVzdCwgSGl0VGVzdFIKICAgICAvLyBJ
ZiB0aGUgbW91c2UgaXMgZG93biBhbmQgaWYgdGhpcyBpcyBhIG1vdXNlIG1vdmUgZXZlbnQsIHdl
IHdhbnQgdG8gcmVzdHJpY3QgY2hhbmdlcyBpbiAKICAgICAvLyA6aG92ZXIvOmFjdGl2ZSB0byBv
bmx5IGFwcGx5IHRvIGVsZW1lbnRzIHRoYXQgYXJlIGluIHRoZSA6YWN0aXZlIGNoYWluIHRoYXQg
d2UgZnJvemUKICAgICAvLyBhdCB0aGUgdGltZSB0aGUgbW91c2Ugd2VudCBkb3duLgotICAgIGJv
b2wgbXVzdEJlSW5BY3RpdmVDaGFpbiA9IHJlcXVlc3QuYWN0aXZlKCkgJiYgcmVxdWVzdC5tb3Vz
ZU1vdmUoKTsKKyAgICBib29sIG11c3RCZUluQWN0aXZlQ2hhaW4gPSByZXF1ZXN0LmFjdGl2ZSgp
ICYmIHJlcXVlc3QubW92ZSgpOwogCi0gICAgLy8gQ2hlY2sgdG8gc2VlIGlmIHRoZSBob3ZlcmVk
IG5vZGUgaGFzIGNoYW5nZWQuICBJZiBub3QsIHRoZW4gd2UgZG9uJ3QgbmVlZCB0bwotICAgIC8v
IGRvIGFueXRoaW5nLiAgCiAgICAgUmVmUHRyPE5vZGU+IG9sZEhvdmVyTm9kZSA9IGRvYy0+aG92
ZXJOb2RlKCk7CisgICAgLy8gQ2xlYXIgdGhlIDpob3ZlciBjaGFpbiB3aGVuIHRoZSB0b3VjaCBn
ZXN0dXJlIGlzIG92ZXIuCisgICAgaWYgKHJlcXVlc3QudG91Y2hSZWxlYXNlKCkpIHsKKyAgICAg
ICAgaWYgKG9sZEhvdmVyTm9kZSkgeworICAgICAgICAgICAgZm9yIChSZW5kZXJPYmplY3QqIGN1
cnIgPSBvbGRIb3Zlck5vZGUtPnJlbmRlcmVyKCk7IGN1cnI7IGN1cnIgPSBjdXJyLT5wYXJlbnQo
KSkgeworICAgICAgICAgICAgICAgIGlmIChjdXJyLT5ub2RlKCkgJiYgIWN1cnItPmlzVGV4dCgp
KQorICAgICAgICAgICAgICAgICAgICBjdXJyLT5ub2RlKCktPnNldEhvdmVyZWQoZmFsc2UpOwor
ICAgICAgICAgICAgfQorICAgICAgICAgICAgZG9jLT5zZXRIb3Zlck5vZGUoMCk7CisgICAgICAg
IH0KKyAgICAgICAgLy8gQSB0b3VjaCByZWxlYXNlIGNhbiBub3Qgc2V0IG5ldyBob3ZlciBvciBh
Y3RpdmUgdGFyZ2V0LgorICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gQ2hlY2sgdG8g
c2VlIGlmIHRoZSBob3ZlcmVkIG5vZGUgaGFzIGNoYW5nZWQuCisgICAgLy8gSWYgaXQgaGFzbid0
LCB3ZSBkbyBub3QgbmVlZCB0byBkbyBhbnl0aGluZy4KICAgICBOb2RlKiBuZXdIb3Zlck5vZGUg
PSByZXN1bHQuaW5uZXJOb2RlKCk7CiAgICAgaWYgKG5ld0hvdmVyTm9kZSAmJiAhbmV3SG92ZXJO
b2RlLT5yZW5kZXJlcigpKQogICAgICAgICBuZXdIb3Zlck5vZGUgPSByZXN1bHQuaW5uZXJOb25T
aGFyZWROb2RlKCk7Cg==
</data>
<flag name="review"
          id="126538"
          type_id="1"
          status="+"
          setter="kenneth"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125117</attachid>
            <date>2012-02-02 05:01:58 -0800</date>
            <delta_ts>2012-02-03 13:45:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>Patch</filename>
            <type>text/plain</type>
            <size>14214</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBlNDc3OTYxLi4xMGE3MjFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMg
QEAKKzIwMTItMDItMDIgIEFsbGFuIFNhbmRmZWxkIEplbnNlbiAgPGFsbGFuLmplbnNlbkBub2tp
YS5jb20+CisKKyAgICAgICAgVXBkYXRlIGFjdGl2ZSBhbmQgaG92ZXIgc3RhdGUgb24gdG91Y2gg
cmVsZWFzZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTc3NjIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiByZW5kZXJpbmcvSGl0VGVzdFJlcXVlc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkhpdFRlc3RS
ZXF1ZXN0Ojptb3ZlKToKKyAgICAgICAgKFdlYkNvcmU6OkhpdFRlc3RSZXF1ZXN0OjpyZWxlYXNl
KToKKyAgICAgICAgKFdlYkNvcmU6OkhpdFRlc3RSZXF1ZXN0Ojp0b3VjaEV2ZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OkhpdFRlc3RSZXF1ZXN0Ojptb3VzZUV2ZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkhpdFRlc3RSZXF1ZXN0Ojp0b3VjaE1vdmUpOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVz
dFJlcXVlc3Q6OnRvdWNoUmVsZWFzZSk6CisgICAgICAgICAgICBSZW5hbWUgdGhlIGVudW0gdmFs
dWVzIGluIEhpdFRlc3RSZXF1ZXN0IHRvIGJlIG1vdXNlL3RvdWNoCisgICAgICAgICAgICBhZ25v
c3RpYywgYW5kIGFkZCB2YWx1ZSBmb3IgcmVjb2duaXppbmcgdG91Y2ggZXZlbnRzLgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJGcmFtZVNldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJGcmFtZVNldDo6bm9kZUF0UG9pbnQpOiBVcGRhdGUgZm9yIEhpdFRlc3RSZXF1ZXN0IHJlbmFt
ZS4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXI6OmhpdFRlc3QpOiBkaXR0bworICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXI6OnVwZGF0ZUhvdmVyQWN0aXZlU3RhdGUpOiBSZXNldCBob3ZlcnN0YXRlIG9uIHRvdWNo
IHJlbGVhc2UuCisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RXZlbnRIYW5kbGVyOjp1cGRhdGVTZWxlY3Rpb25Gb3JNb3VzZURyYWcpOiBVcGRhdGUg
Zm9yIEhpdFRlc3RSZXF1ZXN0IHJlbmFtZS4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxl
cjo6aGFuZGxlTW91c2VNb3ZlRXZlbnQpOiBkaXR0bworICAgICAgICAoV2ViQ29yZTo6RXZlbnRI
YW5kbGVyOjpoYW5kbGVNb3VzZVJlbGVhc2VFdmVudCk6IGRpdHRvCisgICAgICAgIChXZWJDb3Jl
OjpFdmVudEhhbmRsZXI6OmhvdmVyVGltZXJGaXJlZCk6IGRpdHRvCisgICAgICAgIChXZWJDb3Jl
OjpFdmVudEhhbmRsZXI6OmRyYWdTb3VyY2VFbmRlZEF0KTogZGl0dG8KKyAgICAgICAgKFdlYkNv
cmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlVG91Y2hFdmVudCk6IEhpdHRlc3QgdG91Y2ggcmVsZWFz
ZSB0byByZXNldAorICAgICAgICAgICAgYWN0aXZlIGFuZCBob3ZlciBzdGF0ZXMgYW5kIGFkZCB0
b3VjaCBlbnVtIHRvIGFsbCB0b3VjaCBoaXR0ZXN0cy4KKwogMjAxMi0wMi0wMiAgS2ludWtvIFlh
c3VkYSAgPGtpbnVrb0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQ2xlYW51cDogTW92ZSBjaHJv
bWUtc3BlY2lmaWMgZmlsZXN5c3RlbSB0eXBlIGhhbmRsaW5nIGNvZGUgKGZvciBGaWxlU3lzdGVt
IEFQSSkgdW5kZXIgY2hyb21pdW0gZGlyZWN0b3J5IChyZS1sYW5kaW5nIHIxMDUzOTUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggNGFiMTgzMy4uYTJmMzIyZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtNjQ2LDcgKzY0Niw3IEBAIHZvaWQgRXZl
bnRIYW5kbGVyOjp1cGRhdGVTZWxlY3Rpb25Gb3JNb3VzZURyYWcoKQogCiAgICAgSGl0VGVzdFJl
cXVlc3QgcmVxdWVzdChIaXRUZXN0UmVxdWVzdDo6UmVhZE9ubHkgfAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgSGl0VGVzdFJlcXVlc3Q6OkFjdGl2ZSB8Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICBIaXRUZXN0UmVxdWVzdDo6TW91c2VNb3ZlKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEhpdFRlc3RSZXF1ZXN0OjpNb3ZlKTsKICAgICBIaXRUZXN0UmVzdWx0IHJlc3VsdCh2
aWV3LT53aW5kb3dUb0NvbnRlbnRzKG1fY3VycmVudE1vdXNlUG9zaXRpb24pKTsKICAgICBsYXll
ci0+aGl0VGVzdChyZXF1ZXN0LCByZXN1bHQpOwogICAgIHVwZGF0ZVNlbGVjdGlvbkZvck1vdXNl
RHJhZyhyZXN1bHQpOwpAQCAtMTYyMCw3ICsxNjIwLDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6Omhh
bmRsZU1vdXNlTW92ZUV2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgbW91c2VFdmVudCwg
SGkKICAgICBpZiAobV9sYXN0U2Nyb2xsYmFyVW5kZXJNb3VzZSAmJiBtX21vdXNlUHJlc3NlZCkK
ICAgICAgICAgcmV0dXJuIG1fbGFzdFNjcm9sbGJhclVuZGVyTW91c2UtPm1vdXNlTW92ZWQobW91
c2VFdmVudCk7CiAKLSAgICBIaXRUZXN0UmVxdWVzdDo6SGl0VGVzdFJlcXVlc3RUeXBlIGhpdFR5
cGUgPSBIaXRUZXN0UmVxdWVzdDo6TW91c2VNb3ZlOworICAgIEhpdFRlc3RSZXF1ZXN0OjpIaXRU
ZXN0UmVxdWVzdFR5cGUgaGl0VHlwZSA9IEhpdFRlc3RSZXF1ZXN0OjpNb3ZlOwogICAgIGlmICht
X21vdXNlUHJlc3NlZCkKICAgICAgICAgaGl0VHlwZSB8PSBIaXRUZXN0UmVxdWVzdDo6QWN0aXZl
OwogCkBAIC0xNzI3LDcgKzE3MjcsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VS
ZWxlYXNlRXZlbnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBtb3VzZUV2ZW50KQogICAgICAg
ICByZXR1cm4gbV9sYXN0U2Nyb2xsYmFyVW5kZXJNb3VzZS0+bW91c2VVcChtb3VzZUV2ZW50KTsK
ICAgICB9CiAKLSAgICBIaXRUZXN0UmVxdWVzdCByZXF1ZXN0KEhpdFRlc3RSZXF1ZXN0OjpNb3Vz
ZVVwKTsKKyAgICBIaXRUZXN0UmVxdWVzdCByZXF1ZXN0KEhpdFRlc3RSZXF1ZXN0OjpSZWxlYXNl
KTsKICAgICBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzIG1ldiA9IHByZXBhcmVNb3VzZUV2
ZW50KHJlcXVlc3QsIG1vdXNlRXZlbnQpOwogICAgIEZyYW1lKiBzdWJmcmFtZSA9IG1fY2FwdHVy
aW5nTW91c2VFdmVudHNOb2RlLmdldCgpID8gc3ViZnJhbWVGb3JUYXJnZXROb2RlKG1fY2FwdHVy
aW5nTW91c2VFdmVudHNOb2RlLmdldCgpKSA6IHN1YmZyYW1lRm9ySGl0VGVzdFJlc3VsdChtZXYp
OwogICAgIGlmIChtX2V2ZW50SGFuZGxlcldpbGxSZXNldENhcHR1cmluZ01vdXNlRXZlbnRzTm9k
ZSkKQEAgLTI0NTYsNyArMjQ1Niw3IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpob3ZlclRpbWVyRmly
ZWQoVGltZXI8RXZlbnRIYW5kbGVyPiopCiAKICAgICBpZiAoUmVuZGVyVmlldyogcmVuZGVyZXIg
PSBtX2ZyYW1lLT5jb250ZW50UmVuZGVyZXIoKSkgewogICAgICAgICBpZiAoRnJhbWVWaWV3KiB2
aWV3ID0gbV9mcmFtZS0+dmlldygpKSB7Ci0gICAgICAgICAgICBIaXRUZXN0UmVxdWVzdCByZXF1
ZXN0KEhpdFRlc3RSZXF1ZXN0OjpNb3VzZU1vdmUpOworICAgICAgICAgICAgSGl0VGVzdFJlcXVl
c3QgcmVxdWVzdChIaXRUZXN0UmVxdWVzdDo6TW92ZSk7CiAgICAgICAgICAgICBIaXRUZXN0UmVz
dWx0IHJlc3VsdCh2aWV3LT53aW5kb3dUb0NvbnRlbnRzKG1fY3VycmVudE1vdXNlUG9zaXRpb24p
KTsKICAgICAgICAgICAgIHJlbmRlcmVyLT5sYXllcigpLT5oaXRUZXN0KHJlcXVlc3QsIHJlc3Vs
dCk7CiAgICAgICAgICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT51cGRhdGVTdHlsZUlmTmVlZGVk
KCk7CkBAIC0yNzczLDcgKzI3NzMsNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6ZnJlZUNsaXBib2Fy
ZCgpCiB2b2lkIEV2ZW50SGFuZGxlcjo6ZHJhZ1NvdXJjZUVuZGVkQXQoY29uc3QgUGxhdGZvcm1N
b3VzZUV2ZW50JiBldmVudCwgRHJhZ09wZXJhdGlvbiBvcGVyYXRpb24pCiB7CiAgICAgLy8gU2Vu
ZCBhIGhpdCB0ZXN0IHJlcXVlc3Qgc28gdGhhdCBSZW5kZXJMYXllciBnZXRzIGEgY2hhbmNlIHRv
IHVwZGF0ZSB0aGUgOmhvdmVyIGFuZCA6YWN0aXZlIHBzZXVkb2NsYXNzZXMuCi0gICAgSGl0VGVz
dFJlcXVlc3QgcmVxdWVzdChIaXRUZXN0UmVxdWVzdDo6TW91c2VVcCk7CisgICAgSGl0VGVzdFJl
cXVlc3QgcmVxdWVzdChIaXRUZXN0UmVxdWVzdDo6UmVsZWFzZSk7CiAgICAgcHJlcGFyZU1vdXNl
RXZlbnQocmVxdWVzdCwgZXZlbnQpOwogCiAgICAgaWYgKGRyYWdTdGF0ZSgpLm1fZHJhZ1NyYyAm
JiBkcmFnU3RhdGUoKS5zaG91bGREaXNwYXRjaEV2ZW50cygpKSB7CkBAIC0zMjMyLDcgKzMyMzIs
NyBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlVG91Y2hFdmVudChjb25zdCBQbGF0Zm9ybVRv
dWNoRXZlbnQmIGV2ZW50KQogICAgICAgICBQbGF0Zm9ybVRvdWNoUG9pbnQ6OlN0YXRlIHBvaW50
U3RhdGUgPSBwb2ludC5zdGF0ZSgpOwogICAgICAgICBMYXlvdXRQb2ludCBwYWdlUG9pbnQgPSBk
b2N1bWVudFBvaW50Rm9yV2luZG93UG9pbnQobV9mcmFtZSwgcG9pbnQucG9zKCkpOwogCi0gICAg
ICAgIEhpdFRlc3RSZXF1ZXN0OjpIaXRUZXN0UmVxdWVzdFR5cGUgaGl0VHlwZSA9IEhpdFRlc3RS
ZXF1ZXN0OjpBY3RpdmUgfCBIaXRUZXN0UmVxdWVzdDo6UmVhZE9ubHk7CisgICAgICAgIEhpdFRl
c3RSZXF1ZXN0OjpIaXRUZXN0UmVxdWVzdFR5cGUgaGl0VHlwZSA9IEhpdFRlc3RSZXF1ZXN0OjpU
b3VjaEV2ZW50OwogICAgICAgICAvLyBUaGUgSGl0VGVzdFJlcXVlc3QgdHlwZXMgdXNlZCBmb3Ig
bW91c2UgZXZlbnRzIG1hcCBxdWl0ZSBhZGVxdWF0ZWx5CiAgICAgICAgIC8vIHRvIHRvdWNoIGV2
ZW50cy4gTm90ZSB0aGF0IGluIGFkZGl0aW9uIHRvIG1lYW5pbmcgdGhhdCB0aGUgaGl0IHRlc3QK
ICAgICAgICAgLy8gc2hvdWxkIGFmZmVjdCB0aGUgYWN0aXZlIHN0YXRlIG9mIHRoZSBjdXJyZW50
IG5vZGUgaWYgbmVjZXNzYXJ5LApAQCAtMzI0MCwxNiArMzI0MCwxNyBAQCBib29sIEV2ZW50SGFu
ZGxlcjo6aGFuZGxlVG91Y2hFdmVudChjb25zdCBQbGF0Zm9ybVRvdWNoRXZlbnQmIGV2ZW50KQog
ICAgICAgICAvLyB3aXRoIHRoZSBtb3VzZSAob3IgZmluZ2VyIGluIHRoaXMgY2FzZSkgYmVpbmcg
cHJlc3NlZC4KICAgICAgICAgc3dpdGNoIChwb2ludFN0YXRlKSB7CiAgICAgICAgIGNhc2UgUGxh
dGZvcm1Ub3VjaFBvaW50OjpUb3VjaFByZXNzZWQ6Ci0gICAgICAgICAgICBoaXRUeXBlID0gSGl0
VGVzdFJlcXVlc3Q6OkFjdGl2ZTsKKyAgICAgICAgICAgIGhpdFR5cGUgfD0gSGl0VGVzdFJlcXVl
c3Q6OkFjdGl2ZTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFBsYXRmb3JtVG91
Y2hQb2ludDo6VG91Y2hNb3ZlZDoKLSAgICAgICAgICAgIGhpdFR5cGUgPSBIaXRUZXN0UmVxdWVz
dDo6QWN0aXZlIHwgSGl0VGVzdFJlcXVlc3Q6Ok1vdXNlTW92ZSB8IEhpdFRlc3RSZXF1ZXN0OjpS
ZWFkT25seTsKKyAgICAgICAgICAgIGhpdFR5cGUgfD0gSGl0VGVzdFJlcXVlc3Q6OkFjdGl2ZSB8
IEhpdFRlc3RSZXF1ZXN0OjpNb3ZlIHwgSGl0VGVzdFJlcXVlc3Q6OlJlYWRPbmx5OwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaFJlbGVh
c2VkOgogICAgICAgICBjYXNlIFBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hDYW5jZWxsZWQ6Ci0g
ICAgICAgICAgICBoaXRUeXBlID0gSGl0VGVzdFJlcXVlc3Q6Ok1vdXNlVXA7CisgICAgICAgICAg
ICBoaXRUeXBlIHw9IEhpdFRlc3RSZXF1ZXN0OjpSZWxlYXNlOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKQEAgLTMyNzQsMTAgKzMyNzUsMTMgQEAgYm9v
bCBFdmVudEhhbmRsZXI6OmhhbmRsZVRvdWNoRXZlbnQoY29uc3QgUGxhdGZvcm1Ub3VjaEV2ZW50
JiBldmVudCkKICAgICAgICAgICAgIG1fb3JpZ2luYXRpbmdUb3VjaFBvaW50VGFyZ2V0cy5zZXQo
dG91Y2hQb2ludFRhcmdldEtleSwgbm9kZSk7CiAgICAgICAgICAgICB0b3VjaFRhcmdldCA9IG5v
ZGU7CiAgICAgICAgIH0gZWxzZSBpZiAocG9pbnRTdGF0ZSA9PSBQbGF0Zm9ybVRvdWNoUG9pbnQ6
OlRvdWNoUmVsZWFzZWQgfHwgcG9pbnRTdGF0ZSA9PSBQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNo
Q2FuY2VsbGVkKSB7CisgICAgICAgICAgICAvLyBXZSBvbmx5IHBlcmZvcm0gYSBoaXR0ZXN0IG9u
IHJlbGVhc2Ugb3IgY2FuY2VsIHRvIHVuc2V0IDphY3RpdmUgb3IgOmhvdmVyIHN0YXRlLgorICAg
ICAgICAgICAgaGl0VGVzdFJlc3VsdEF0UG9pbnQocGFnZVBvaW50LCAvKmFsbG93U2hhZG93Q29u
dGVudCovIGZhbHNlLCBmYWxzZSwgRG9udEhpdFRlc3RTY3JvbGxiYXJzLCBoaXRUeXBlKTsKICAg
ICAgICAgICAgIC8vIFRoZSB0YXJnZXQgc2hvdWxkIGJlIHRoZSBvcmlnaW5hbCB0YXJnZXQgZm9y
IHRoaXMgdG91Y2gsIHNvIGdldCBpdCBmcm9tIHRoZSBoYXNobWFwLiBBcyBpdCdzIGEgcmVsZWFz
ZSBvciBjYW5jZWwKICAgICAgICAgICAgIC8vIHdlIGFsc28gcmVtb3ZlIGl0IGZyb20gdGhlIG1h
cC4KICAgICAgICAgICAgIHRvdWNoVGFyZ2V0ID0gbV9vcmlnaW5hdGluZ1RvdWNoUG9pbnRUYXJn
ZXRzLnRha2UodG91Y2hQb2ludFRhcmdldEtleSk7CiAgICAgICAgIH0gZWxzZQorICAgICAgICAg
ICAgLy8gTm8gaGl0dGVzdCBpcyBwZXJmb3JtZWQgb24gbW92ZSwgc2luY2UgdGhlIHRhcmdldCBp
cyBub3QgYWxsb3dlZCB0byBjaGFuZ2UgYW55d2F5LgogICAgICAgICAgICAgdG91Y2hUYXJnZXQg
PSBtX29yaWdpbmF0aW5nVG91Y2hQb2ludFRhcmdldHMuZ2V0KHRvdWNoUG9pbnRUYXJnZXRLZXkp
OwogCiAgICAgICAgIGlmICghdG91Y2hUYXJnZXQuZ2V0KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9IaXRUZXN0UmVxdWVzdC5oCmluZGV4IDFkMDQ0MWQuLmU2YTUyMzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVxdWVzdC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVxdWVzdC5oCkBAIC0xLDYgKzEsNyBAQAogLyoKICAq
IENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgogICogQ29weXJpZ2h0IChD
KSAyMDA5IFRvcmNoIE1vYmlsZSBJbmMuIGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLworICog
Q29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFy
eSgtaWVzKQogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yOSwxMCArMzAsMTEgQEAgcHVibGljOgog
ICAgIGVudW0gUmVxdWVzdFR5cGUgewogICAgICAgICBSZWFkT25seSA9IDEgPDwgMSwKICAgICAg
ICAgQWN0aXZlID0gMSA8PCAyLAotICAgICAgICBNb3VzZU1vdmUgPSAxIDw8IDMsCi0gICAgICAg
IE1vdXNlVXAgPSAxIDw8IDQsCisgICAgICAgIE1vdmUgPSAxIDw8IDMsCisgICAgICAgIFJlbGVh
c2UgPSAxIDw8IDQsCiAgICAgICAgIElnbm9yZUNsaXBwaW5nID0gMSA8PCA1LAotICAgICAgICBT
VkdDbGlwQ29udGVudCA9IDEgPDwgNgorICAgICAgICBTVkdDbGlwQ29udGVudCA9IDEgPDwgNiwK
KyAgICAgICAgVG91Y2hFdmVudCA9IDEgPDwgNwogICAgIH07CiAKICAgICB0eXBlZGVmIHVuc2ln
bmVkIEhpdFRlc3RSZXF1ZXN0VHlwZTsKQEAgLTQ0LDEwICs0NiwxNiBAQCBwdWJsaWM6CiAKICAg
ICBib29sIHJlYWRPbmx5KCkgY29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0VHlwZSAmIFJlYWRPbmx5
OyB9CiAgICAgYm9vbCBhY3RpdmUoKSBjb25zdCB7IHJldHVybiBtX3JlcXVlc3RUeXBlICYgQWN0
aXZlOyB9Ci0gICAgYm9vbCBtb3VzZU1vdmUoKSBjb25zdCB7IHJldHVybiBtX3JlcXVlc3RUeXBl
ICYgTW91c2VNb3ZlOyB9Ci0gICAgYm9vbCBtb3VzZVVwKCkgY29uc3QgeyByZXR1cm4gbV9yZXF1
ZXN0VHlwZSAmIE1vdXNlVXA7IH0KKyAgICBib29sIG1vdmUoKSBjb25zdCB7IHJldHVybiBtX3Jl
cXVlc3RUeXBlICYgTW92ZTsgfQorICAgIGJvb2wgcmVsZWFzZSgpIGNvbnN0IHsgcmV0dXJuIG1f
cmVxdWVzdFR5cGUgJiBSZWxlYXNlOyB9CiAgICAgYm9vbCBpZ25vcmVDbGlwcGluZygpIGNvbnN0
IHsgcmV0dXJuIG1fcmVxdWVzdFR5cGUgJiBJZ25vcmVDbGlwcGluZzsgfQogICAgIGJvb2wgc3Zn
Q2xpcENvbnRlbnQoKSBjb25zdCB7IHJldHVybiBtX3JlcXVlc3RUeXBlICYgU1ZHQ2xpcENvbnRl
bnQ7IH0KKyAgICBib29sIHRvdWNoRXZlbnQoKSBjb25zdCB7IHJldHVybiBtX3JlcXVlc3RUeXBl
ICYgVG91Y2hFdmVudDsgfQorICAgIGJvb2wgbW91c2VFdmVudCgpIGNvbnN0IHsgcmV0dXJuICF0
b3VjaEV2ZW50KCk7IH0KKworICAgIC8vIENvbnZlbmllbmNlIGZ1bmN0aW9ucworICAgIGJvb2wg
dG91Y2hNb3ZlKCkgY29uc3QgeyByZXR1cm4gbW92ZSgpICYmIHRvdWNoRXZlbnQoKTsgfQorICAg
IGJvb2wgdG91Y2hSZWxlYXNlKCkgY29uc3QgeyByZXR1cm4gcmVsZWFzZSgpICYmIHRvdWNoRXZl
bnQoKTsgfQogCiAgICAgSGl0VGVzdFJlcXVlc3RUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBt
X3JlcXVlc3RUeXBlOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJGcmFtZVNldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhbWVT
ZXQuY3BwCmluZGV4IDA3NGYzZWQuLjZiNmQyMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJGcmFtZVNldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckZyYW1lU2V0LmNwcApAQCAtMTY3LDcgKzE2Nyw3IEBAIGJvb2wgUmVuZGVyRnJh
bWVTZXQ6Om5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiByZXF1ZXN0LCBIaXRUZXN0
UmVzdWx0JiByCiAgICAgICAgIHx8IG1faXNSZXNpemluZzsKIAogICAgIGlmIChpbnNpZGUgJiYg
ZnJhbWVTZXQoKS0+bm9SZXNpemUoKQotICAgICAgICAgICAgJiYgIXJlcXVlc3QucmVhZE9ubHko
KSAmJiAhcmVzdWx0LmlubmVyTm9kZSgpKSB7CisgICAgICAgICAgICAmJiAhcmVxdWVzdC5yZWFk
T25seSgpICYmICFyZXN1bHQuaW5uZXJOb2RlKCkgJiYgIXJlcXVlc3QudG91Y2hNb3ZlKCkpIHsK
ICAgICAgICAgcmVzdWx0LnNldElubmVyTm9kZShub2RlKCkpOwogICAgICAgICByZXN1bHQuc2V0
SW5uZXJOb25TaGFyZWROb2RlKG5vZGUoKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllci5jcHAKaW5kZXggMjFhYTNkMy4uZDA2YjMwZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC0zMTA0LDcgKzMxMDQsNyBAQCBib29sIFJl
bmRlckxheWVyOjpoaXRUZXN0KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiByZXF1ZXN0LCBIaXRUZXN0
UmVzdWx0JiByZXN1bHQpCiAgICAgICAgIC8vIFdlIGRpZG4ndCBoaXQgYW55IGxheWVyLiBJZiB3
ZSBhcmUgdGhlIHJvb3QgbGF5ZXIgYW5kIHRoZSBtb3VzZSBpcyAtLSBvciBqdXN0IHdhcyAtLSBk
b3duLCAKICAgICAgICAgLy8gcmV0dXJuIG91cnNlbHZlcy4gV2UgZG8gdGhpcyBzbyBtb3VzZSBl
dmVudHMgY29udGludWUgZ2V0dGluZyBkZWxpdmVyZWQgYWZ0ZXIgYSBkcmFnIGhhcyAKICAgICAg
ICAgLy8gZXhpdGVkIHRoZSBXZWJWaWV3LCBhbmQgc28gaGl0IHRlc3Rpbmcgb3ZlciBhIHNjcm9s
bGJhciBoaXRzIHRoZSBjb250ZW50IGRvY3VtZW50LgotICAgICAgICBpZiAoKHJlcXVlc3QuYWN0
aXZlKCkgfHwgcmVxdWVzdC5tb3VzZVVwKCkpICYmIHJlbmRlcmVyKCktPmlzUmVuZGVyVmlldygp
KSB7CisgICAgICAgIGlmICgocmVxdWVzdC5hY3RpdmUoKSB8fCByZXF1ZXN0LnJlbGVhc2UoKSkg
JiYgcmVuZGVyZXIoKS0+aXNSZW5kZXJWaWV3KCkpIHsKICAgICAgICAgICAgIHJlbmRlcmVyKCkt
PnVwZGF0ZUhpdFRlc3RSZXN1bHQocmVzdWx0LCByZXN1bHQucG9pbnQoKSk7CiAgICAgICAgICAg
ICBpbnNpZGVMYXllciA9IHRoaXM7CiAgICAgICAgIH0KQEAgLTQwMTMsMTMgKzQwMTMsMTIgQEAg
dm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlSG92ZXJBY3RpdmVTdGF0ZShjb25zdCBIaXRUZXN0UmVx
dWVzdCYgcmVxdWVzdCwgSGl0VGVzdFIKICAgICAgICAgZG9jLT5zZXRBY3RpdmVOb2RlKDApOwog
ICAgIH0gZWxzZSB7CiAgICAgICAgIE5vZGUqIG5ld0FjdGl2ZU5vZGUgPSByZXN1bHQuaW5uZXJO
b2RlKCk7Ci0gICAgICAgIGlmICghYWN0aXZlTm9kZSAmJiBuZXdBY3RpdmVOb2RlICYmIHJlcXVl
c3QuYWN0aXZlKCkpIHsKKyAgICAgICAgaWYgKCFhY3RpdmVOb2RlICYmIG5ld0FjdGl2ZU5vZGUg
JiYgcmVxdWVzdC5hY3RpdmUoKSAmJiAhcmVxdWVzdC50b3VjaE1vdmUoKSkgewogICAgICAgICAg
ICAgLy8gV2UgYXJlIHNldHRpbmcgdGhlIDphY3RpdmUgY2hhaW4gYW5kIGZyZWV6aW5nIGl0LiBJ
ZiBmdXR1cmUgbW92ZXMgaGFwcGVuLCB0aGV5CiAgICAgICAgICAgICAvLyB3aWxsIG5lZWQgdG8g
cmVmZXJlbmNlIHRoaXMgY2hhaW4uCiAgICAgICAgICAgICBmb3IgKFJlbmRlck9iamVjdCogY3Vy
ciA9IG5ld0FjdGl2ZU5vZGUtPnJlbmRlcmVyKCk7IGN1cnI7IGN1cnIgPSBjdXJyLT5wYXJlbnQo
KSkgewotICAgICAgICAgICAgICAgIGlmIChjdXJyLT5ub2RlKCkgJiYgIWN1cnItPmlzVGV4dCgp
KSB7CisgICAgICAgICAgICAgICAgaWYgKGN1cnItPm5vZGUoKSAmJiAhY3Vyci0+aXNUZXh0KCkp
CiAgICAgICAgICAgICAgICAgICAgIGN1cnItPm5vZGUoKS0+c2V0SW5BY3RpdmVDaGFpbigpOwot
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGRvYy0+c2V0QWN0
aXZlTm9kZShuZXdBY3RpdmVOb2RlKTsKICAgICAgICAgfQpAQCAtNDAzMSwxMSArNDAzMCwyNCBA
QCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVIb3ZlckFjdGl2ZVN0YXRlKGNvbnN0IEhpdFRlc3RS
ZXF1ZXN0JiByZXF1ZXN0LCBIaXRUZXN0UgogICAgIC8vIElmIHRoZSBtb3VzZSBpcyBkb3duIGFu
ZCBpZiB0aGlzIGlzIGEgbW91c2UgbW92ZSBldmVudCwgd2Ugd2FudCB0byByZXN0cmljdCBjaGFu
Z2VzIGluIAogICAgIC8vIDpob3Zlci86YWN0aXZlIHRvIG9ubHkgYXBwbHkgdG8gZWxlbWVudHMg
dGhhdCBhcmUgaW4gdGhlIDphY3RpdmUgY2hhaW4gdGhhdCB3ZSBmcm96ZQogICAgIC8vIGF0IHRo
ZSB0aW1lIHRoZSBtb3VzZSB3ZW50IGRvd24uCi0gICAgYm9vbCBtdXN0QmVJbkFjdGl2ZUNoYWlu
ID0gcmVxdWVzdC5hY3RpdmUoKSAmJiByZXF1ZXN0Lm1vdXNlTW92ZSgpOworICAgIGJvb2wgbXVz
dEJlSW5BY3RpdmVDaGFpbiA9IHJlcXVlc3QuYWN0aXZlKCkgJiYgcmVxdWVzdC5tb3ZlKCk7CiAK
LSAgICAvLyBDaGVjayB0byBzZWUgaWYgdGhlIGhvdmVyZWQgbm9kZSBoYXMgY2hhbmdlZC4gIElm
IG5vdCwgdGhlbiB3ZSBkb24ndCBuZWVkIHRvCi0gICAgLy8gZG8gYW55dGhpbmcuICAKICAgICBS
ZWZQdHI8Tm9kZT4gb2xkSG92ZXJOb2RlID0gZG9jLT5ob3Zlck5vZGUoKTsKKyAgICAvLyBDbGVh
ciB0aGUgOmhvdmVyIGNoYWluIHdoZW4gdGhlIHRvdWNoIGdlc3R1cmUgaXMgb3Zlci4KKyAgICBp
ZiAocmVxdWVzdC50b3VjaFJlbGVhc2UoKSkgeworICAgICAgICBpZiAob2xkSG92ZXJOb2RlKSB7
CisgICAgICAgICAgICBmb3IgKFJlbmRlck9iamVjdCogY3VyciA9IG9sZEhvdmVyTm9kZS0+cmVu
ZGVyZXIoKTsgY3VycjsgY3VyciA9IGN1cnItPnBhcmVudCgpKSB7CisgICAgICAgICAgICAgICAg
aWYgKGN1cnItPm5vZGUoKSAmJiAhY3Vyci0+aXNUZXh0KCkpCisgICAgICAgICAgICAgICAgICAg
IGN1cnItPm5vZGUoKS0+c2V0SG92ZXJlZChmYWxzZSk7CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICBkb2MtPnNldEhvdmVyTm9kZSgwKTsKKyAgICAgICAgfQorICAgICAgICAvLyBBIHRvdWNo
IHJlbGVhc2UgY2FuIG5vdCBzZXQgbmV3IGhvdmVyIG9yIGFjdGl2ZSB0YXJnZXQuCisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICAvLyBDaGVjayB0byBzZWUgaWYgdGhlIGhvdmVyZWQgbm9k
ZSBoYXMgY2hhbmdlZC4KKyAgICAvLyBJZiBpdCBoYXNuJ3QsIHdlIGRvIG5vdCBuZWVkIHRvIGRv
IGFueXRoaW5nLgogICAgIE5vZGUqIG5ld0hvdmVyTm9kZSA9IHJlc3VsdC5pbm5lck5vZGUoKTsK
ICAgICBpZiAobmV3SG92ZXJOb2RlICYmICFuZXdIb3Zlck5vZGUtPnJlbmRlcmVyKCkpCiAgICAg
ICAgIG5ld0hvdmVyTm9kZSA9IHJlc3VsdC5pbm5lck5vblNoYXJlZE5vZGUoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKaW5kZXggMzIzYzQyOS4uOGQ2MzExZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wMi0wMiAgQWxsYW4gU2FuZGZlbGQgSmVu
c2VuICA8YWxsYW4uamVuc2VuQG5va2lhLmNvbT4KKworICAgICAgICBVcGRhdGUgZW51bSBuYW1l
IGZvciBIaXRUZXN0UmVxdWVzdDo6UmVxdWVzdFR5cGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3NjIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzcmMvV2ViRnJhbWVJbXBsLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViRnJhbWVJbXBsOjp2aXNpYmxlUG9zaXRpb25Gb3JXaW5kb3dQb2ludCk6CisK
IDIwMTItMDItMDIgIEtpbnVrbyBZYXN1ZGEgIDxraW51a29AY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIENsZWFudXA6IE1vdmUgY2hyb21lLXNwZWNpZmljIGZpbGVzeXN0ZW0gdHlwZSBoYW5kbGlu
ZyBjb2RlIChmb3IgRmlsZVN5c3RlbSBBUEkpIHVuZGVyIGNocm9taXVtIGRpcmVjdG9yeSAocmUt
bGFuZGluZyByMTA1Mzk1KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViRnJhbWVJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1w
bC5jcHAKaW5kZXggOTE2M2UyZS4uMjUyNGNmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJGcmFtZUltcGwuY3BwCkBAIC0xMzg0LDcgKzEzODQsNyBAQCB2b2lkIFdlYkZyYW1l
SW1wbDo6c2VsZWN0UmFuZ2UoY29uc3QgV2ViUG9pbnQmIHN0YXJ0LCBjb25zdCBXZWJQb2ludCYg
ZW5kKQogCiBWaXNpYmxlUG9zaXRpb24gV2ViRnJhbWVJbXBsOjp2aXNpYmxlUG9zaXRpb25Gb3JX
aW5kb3dQb2ludChjb25zdCBXZWJQb2ludCYgcG9pbnQpCiB7Ci0gICAgSGl0VGVzdFJlcXVlc3Q6
OkhpdFRlc3RSZXF1ZXN0VHlwZSBoaXRUeXBlID0gSGl0VGVzdFJlcXVlc3Q6Ok1vdXNlTW92ZTsK
KyAgICBIaXRUZXN0UmVxdWVzdDo6SGl0VGVzdFJlcXVlc3RUeXBlIGhpdFR5cGUgPSBIaXRUZXN0
UmVxdWVzdDo6TW92ZTsKICAgICBoaXRUeXBlIHw9IEhpdFRlc3RSZXF1ZXN0OjpSZWFkT25seTsK
ICAgICBoaXRUeXBlIHw9IEhpdFRlc3RSZXF1ZXN0OjpBY3RpdmU7CiAgICAgSGl0VGVzdFJlcXVl
c3QgcmVxdWVzdChoaXRUeXBlKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125295</attachid>
            <date>2012-02-03 02:23:37 -0800</date>
            <delta_ts>2012-02-03 02:58:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>Patch</filename>
            <type>text/plain</type>
            <size>2334</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBlNDg5ODFiLi5lOWI4MzhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMTItMDItMDMgIEFsbGFuIFNhbmRmZWxkIEplbnNlbiAgPGFsbGFuLmplbnNlbkBub2tp
YS5jb20+CisKKyAgICAgICAgRG8gbm90IEFTU0VSVCBvbiBUb3VjaFN0YXRpb25hcnkgVG91Y2hQ
b2ludCBzdGF0ZS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmV2ZW50TmFt
ZUZvclRvdWNoUG9pbnRTdGF0ZSk6IEV4cGxpY2l0bHkgc2hvdyBob3cgVG91Y2hTdGF0aW9uYXJ5
IGlzIGhhbmRsZWQuCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRsZVRvdWNo
RXZlbnQpOiBSZW1vdmUgVG91Y2hTdGF0aW9uYXJ5IGZyb20gQVNTRVJULgorCiAyMDEyLTAyLTAz
ICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZW1vdmUg
W0xlZ2FjeVBhcmVudF0gZnJvbSBDb2RlR2VuZXJhdG9yR09iamVjdC5wbSwgYW5kIHJlbmFtZSBp
dCB0byBbSlNMZWdhY3lQYXJlbnRdCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5k
ZXggYTJmMzIyZS4uNDE3NjQyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVu
dEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApA
QCAtMzE5NCw2ICszMTk0LDggQEAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnROYW1l
Rm9yVG91Y2hQb2ludFN0YXRlKFBsYXRmb3JtVG91Y2hQb2ludDo6U3RhdGUKICAgICAgICAgcmV0
dXJuIGV2ZW50TmFtZXMoKS50b3VjaHN0YXJ0RXZlbnQ7CiAgICAgY2FzZSBQbGF0Zm9ybVRvdWNo
UG9pbnQ6OlRvdWNoTW92ZWQ6CiAgICAgICAgIHJldHVybiBldmVudE5hbWVzKCkudG91Y2htb3Zl
RXZlbnQ7CisgICAgY2FzZSBQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoU3RhdGlvbmFyeToKKyAg
ICAgICAgLy8gVG91Y2hTdGF0aW9uYXJ5IHN0YXRlIGlzIG5vdCBjb252ZXJ0ZWQgdG8gdG91Y2gg
ZXZlbnRzLgogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAg
ICAgICByZXR1cm4gZW1wdHlBdG9tOwpAQCAtMzI0OSw2ICszMjUxLDkgQEAgYm9vbCBFdmVudEhh
bmRsZXI6OmhhbmRsZVRvdWNoRXZlbnQoY29uc3QgUGxhdGZvcm1Ub3VjaEV2ZW50JiBldmVudCkK
ICAgICAgICAgY2FzZSBQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoQ2FuY2VsbGVkOgogICAgICAg
ICAgICAgaGl0VHlwZSB8PSBIaXRUZXN0UmVxdWVzdDo6UmVsZWFzZTsKICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIFBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hTdGF0aW9uYXJ5Ogor
ICAgICAgICAgICAgaGl0VHlwZSB8PSBIaXRUZXN0UmVxdWVzdDo6QWN0aXZlIHwgSGl0VGVzdFJl
cXVlc3Q6OlJlYWRPbmx5OworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6CiAg
ICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAt
MzI4MSw3ICszMjg2LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZVRvdWNoRXZlbnQoY29u
c3QgUGxhdGZvcm1Ub3VjaEV2ZW50JiBldmVudCkKICAgICAgICAgICAgIC8vIHdlIGFsc28gcmVt
b3ZlIGl0IGZyb20gdGhlIG1hcC4KICAgICAgICAgICAgIHRvdWNoVGFyZ2V0ID0gbV9vcmlnaW5h
dGluZ1RvdWNoUG9pbnRUYXJnZXRzLnRha2UodG91Y2hQb2ludFRhcmdldEtleSk7CiAgICAgICAg
IH0gZWxzZQotICAgICAgICAgICAgLy8gTm8gaGl0dGVzdCBpcyBwZXJmb3JtZWQgb24gbW92ZSwg
c2luY2UgdGhlIHRhcmdldCBpcyBub3QgYWxsb3dlZCB0byBjaGFuZ2UgYW55d2F5LgorICAgICAg
ICAgICAgLy8gTm8gaGl0dGVzdCBpcyBwZXJmb3JtZWQgb24gbW92ZSBvciBzdGF0aW9uYXJ5LCBz
aW5jZSB0aGUgdGFyZ2V0IGlzIG5vdCBhbGxvd2VkIHRvIGNoYW5nZSBhbnl3YXkuCiAgICAgICAg
ICAgICB0b3VjaFRhcmdldCA9IG1fb3JpZ2luYXRpbmdUb3VjaFBvaW50VGFyZ2V0cy5nZXQodG91
Y2hQb2ludFRhcmdldEtleSk7CiAKICAgICAgICAgaWYgKCF0b3VjaFRhcmdldC5nZXQoKSkK
</data>
<flag name="review"
          id="126769"
          type_id="1"
          status="+"
          setter="kenneth"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125300</attachid>
            <date>2012-02-03 02:58:05 -0800</date>
            <delta_ts>2012-02-03 04:49:32 -0800</delta_ts>
            <desc>Fixup</desc>
            <filename>Patch</filename>
            <type>text/plain</type>
            <size>2543</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBlNDg5ODFiLi4zMmVjNWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYg
QEAKKzIwMTItMDItMDMgIEFsbGFuIFNhbmRmZWxkIEplbnNlbiAgPGFsbGFuLmplbnNlbkBub2tp
YS5jb20+CisKKyAgICAgICAgRG8gbm90IEFTU0VSVCBvbiBUb3VjaFN0YXRpb25hcnkgVG91Y2hQ
b2ludCBzdGF0ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTc3NjIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpldmVudE5hbWVG
b3JUb3VjaFBvaW50U3RhdGUpOiBFeHBsaWNpdGx5IHNob3cgdGhhdCBUb3VjaFN0YXRpb25hcnkg
aXMgYXNzZXJ0ZWQuCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRsZVRvdWNo
RXZlbnQpOgorICAgICAgICAgICAgUmVtb3ZlIFRvdWNoU3RhdGlvbmFyeSBmcm9tIEFTU0VSVC4g
VGhlIHZhbHVlIG9mIEhpdFRlc3RSZXF1ZXN0IGlzIHJlc3RvcmVkIHRvIHRoZQorICAgICAgICAg
ICAgdmFsdWUgaXQgc2hvdWxkIGhhdmUgaWYgaGl0dGVzdGVkLCBidXQgaXMgbm90IHVzZWQuCisK
IDIwMTItMDItMDMgIEtlbnRhcm8gSGFyYSAgPGhhcmFrZW5AY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFJlbW92ZSBbTGVnYWN5UGFyZW50XSBmcm9tIENvZGVHZW5lcmF0b3JHT2JqZWN0LnBtLCBh
bmQgcmVuYW1lIGl0IHRvIFtKU0xlZ2FjeVBhcmVudF0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5k
bGVyLmNwcAppbmRleCBhMmYzMjJlLi44ZTZlYTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhh
bmRsZXIuY3BwCkBAIC0zMTk0LDYgKzMxOTQsOCBAQCBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5n
JiBldmVudE5hbWVGb3JUb3VjaFBvaW50U3RhdGUoUGxhdGZvcm1Ub3VjaFBvaW50OjpTdGF0ZQog
ICAgICAgICByZXR1cm4gZXZlbnROYW1lcygpLnRvdWNoc3RhcnRFdmVudDsKICAgICBjYXNlIFBs
YXRmb3JtVG91Y2hQb2ludDo6VG91Y2hNb3ZlZDoKICAgICAgICAgcmV0dXJuIGV2ZW50TmFtZXMo
KS50b3VjaG1vdmVFdmVudDsKKyAgICBjYXNlIFBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hTdGF0
aW9uYXJ5OgorICAgICAgICAvLyBUb3VjaFN0YXRpb25hcnkgc3RhdGUgaXMgbm90IGNvbnZlcnRl
ZCB0byB0b3VjaCBldmVudHMsIHNvIGZhbGwgdGhyb3VnaCB0byBhc3NlcnQuCiAgICAgZGVmYXVs
dDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiBlbXB0eUF0
b207CkBAIC0zMjQ5LDYgKzMyNTEsOSBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlVG91Y2hF
dmVudChjb25zdCBQbGF0Zm9ybVRvdWNoRXZlbnQmIGV2ZW50KQogICAgICAgICBjYXNlIFBsYXRm
b3JtVG91Y2hQb2ludDo6VG91Y2hDYW5jZWxsZWQ6CiAgICAgICAgICAgICBoaXRUeXBlIHw9IEhp
dFRlc3RSZXF1ZXN0OjpSZWxlYXNlOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
UGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaFN0YXRpb25hcnk6CisgICAgICAgICAgICBoaXRUeXBl
IHw9IEhpdFRlc3RSZXF1ZXN0OjpBY3RpdmUgfCBIaXRUZXN0UmVxdWVzdDo6UmVhZE9ubHk7Cisg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC0zMjgxLDcgKzMyODYsNyBAQCBi
b29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlVG91Y2hFdmVudChjb25zdCBQbGF0Zm9ybVRvdWNoRXZl
bnQmIGV2ZW50KQogICAgICAgICAgICAgLy8gd2UgYWxzbyByZW1vdmUgaXQgZnJvbSB0aGUgbWFw
LgogICAgICAgICAgICAgdG91Y2hUYXJnZXQgPSBtX29yaWdpbmF0aW5nVG91Y2hQb2ludFRhcmdl
dHMudGFrZSh0b3VjaFBvaW50VGFyZ2V0S2V5KTsKICAgICAgICAgfSBlbHNlCi0gICAgICAgICAg
ICAvLyBObyBoaXR0ZXN0IGlzIHBlcmZvcm1lZCBvbiBtb3ZlLCBzaW5jZSB0aGUgdGFyZ2V0IGlz
IG5vdCBhbGxvd2VkIHRvIGNoYW5nZSBhbnl3YXkuCisgICAgICAgICAgICAvLyBObyBoaXR0ZXN0
IGlzIHBlcmZvcm1lZCBvbiBtb3ZlIG9yIHN0YXRpb25hcnksIHNpbmNlIHRoZSB0YXJnZXQgaXMg
bm90IGFsbG93ZWQgdG8gY2hhbmdlIGFueXdheS4KICAgICAgICAgICAgIHRvdWNoVGFyZ2V0ID0g
bV9vcmlnaW5hdGluZ1RvdWNoUG9pbnRUYXJnZXRzLmdldCh0b3VjaFBvaW50VGFyZ2V0S2V5KTsK
IAogICAgICAgICBpZiAoIXRvdWNoVGFyZ2V0LmdldCgpKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>