<?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>100763</bug_id>
          
          <creation_ts>2012-10-30 08:42:43 -0700</creation_ts>
          <short_desc>[CSS Exclusions] Store ExclusionPolygonEdge vertices in clockwise order</short_desc>
          <delta_ts>2012-11-06 15:47:36 -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>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>100039</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Hans Muller">giles_joplin</reporter>
          <assigned_to name="Hans Muller">giles_joplin</assigned_to>
          <cc>donggwan.kim</cc>
    
    <cc>eric</cc>
    
    <cc>krit</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>754395</commentid>
    <comment_count>0</comment_count>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2012-10-30 08:42:43 -0700</bug_when>
    <thetext>The ExclusionPolygon&apos;s internal logic, notably getVertexIntersectionVertices(), assumes that ExclusionPolygonEdge vertices are stored in clockwise order. Currently this is assumption is not enforced.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754952</commentid>
    <comment_count>1</comment_count>
      <attachid>171581</attachid>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2012-10-30 21:51:44 -0700</bug_when>
    <thetext>Created attachment 171581
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755434</commentid>
    <comment_count>2</comment_count>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2012-10-31 10:24:44 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Created an attachment (id=171581) [details]
&gt; Patch

This change just forces a polygon&apos;s edges&apos; vertices to be listed in clockwise order.  So the inside of the polygon is always on the &quot;right side&quot; of the line segment from vertexIndex1 to vertexIndex2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758500</commentid>
    <comment_count>3</comment_count>
      <attachid>171581</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-11-05 07:04:27 -0800</bug_when>
    <thetext>Comment on attachment 171581
Patch

I actually don&apos;t understand what you mean with forcing clockwise order. If you do that, don&apos;t you miss necessary information to determine fill rules (even odd/nonzero)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758558</commentid>
    <comment_count>4</comment_count>
      <attachid>172339</attachid>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2012-11-05 08:30:10 -0800</bug_when>
    <thetext>Created attachment 172339
Self-intersecting polygon example with fill-rule = evenodd, nonzero (SVG)

We only support polygons defined by a single list of vertices.   Holes can occur because the polygon self-intersects but not because secondary lists of vertices are included.   Self-intersecting polygons fill correctly, even if the vertex order is reversed, with both fill rules.  I&apos;ve attached an SVG example.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758562</commentid>
    <comment_count>5</comment_count>
      <attachid>172340</attachid>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2012-11-05 08:32:15 -0800</bug_when>
    <thetext>Created attachment 172340
Self-intersecting polygon example with fill-rule = evenodd, nonzero (SVG) 

Fixed a typo in the previous version of the SVG example.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758568</commentid>
    <comment_count>6</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-11-05 08:36:33 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; Created an attachment (id=172339) [details]
&gt; Self-intersecting polygon example with fill-rule = evenodd, nonzero (SVG)
&gt; 
&gt; We only support polygons defined by a single list of vertices.   Holes can occur because the polygon self-intersects but not because secondary lists of vertices are included.   Self-intersecting polygons fill correctly, even if the vertex order is reversed, with both fill rules.  I&apos;ve attached an SVG example.

You don&apos;t reorder the points, you just shift them. If your code does the same, the description seems misleading. Do you just shift?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758584</commentid>
    <comment_count>7</comment_count>
      <attachid>172345</attachid>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2012-11-05 08:53:08 -0800</bug_when>
    <thetext>Created attachment 172345
Self-intersecting polygon example with fill-rule = evenodd, nonzero (SVG)

Sorry about the previous version of the example, it was incorrect.  This version reverses the order of the polygons&apos; vertices, as does the ExclusionPolygon patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758959</commentid>
    <comment_count>8</comment_count>
      <attachid>171581</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-11-05 15:31:22 -0800</bug_when>
    <thetext>Comment on attachment 171581
Patch

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

LGTM. Just some snippets.

&gt; LayoutTests/fast/exclusions/shape-inside/shape-inside-counterclockwise-polygon-expected.html:18
&gt; +    var hasSubpixelSupport = false; // test doesn&apos;t depend on subpixel layout

Proper sentences please.

&gt; LayoutTests/fast/exclusions/shape-inside/shape-inside-counterclockwise-polygon.html:18
&gt; +    var hasSubpixelSupport = false; // test doesn&apos;t depend on subpixel layout

Ditto.

&gt; Source/WebCore/rendering/ExclusionPolygon.cpp:70
&gt; +        for (unsigned i = 1; i &lt; nVertices; i++) {

++i Official style now.

&gt; Source/WebCore/rendering/ExclusionPolygon.cpp:81
&gt; +        unsigned vertexIndex = (clockwise) ? i : nVertices - 1 - i;

Are the braces necessary here? I would rather remove them.

&gt; Source/WebCore/rendering/ExclusionPolygon.cpp:86
&gt; +        m_edges[i].vertexIndex2 = ((clockwise) ? vertexIndex + 1 : vertexIndex - 1 + nVertices) % nVertices;

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759789</commentid>
    <comment_count>9</comment_count>
      <attachid>172606</attachid>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2012-11-06 09:49:29 -0800</bug_when>
    <thetext>Created attachment 172606
Patch

I&apos;ve made the suggested changes.  Merging with the latest repository, which includes the collinear and coincident vertices changes, required a non-trivial merge.  The most significant change (albeit a small one) was in ExclusionPolygon::findNextEdgeVertexIndex().  The &quot;lastVertexIndex&quot; is actually always zero (because we always start at zero) for both clockwise and counter-clockwise traversals.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759829</commentid>
    <comment_count>10</comment_count>
      <attachid>172606</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-11-06 10:25:18 -0800</bug_when>
    <thetext>Comment on attachment 172606
Patch

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

&gt; Source/WebCore/ChangeLog:22
&gt; +        (WebCore):

Please leave lines like this out of the change log even though the script generates them. For extra credit, get the script fixed to not add these.

&gt; Source/WebCore/ChangeLog:24
&gt; +        (WebCore::appendIntervalX): Made this an inline.

Why?

&gt; Source/WebCore/rendering/ExclusionPolygon.cpp:103
&gt; +    bool clockwise = true;

No reason to define and initialize this here.

&gt; Source/WebCore/rendering/ExclusionPolygon.cpp:111
&gt; +    FloatPoint prevVertex = vertexAt((minVertexIndex -1 + nVertices) % nVertices);

Missing space after the &quot;-&quot; here. Also might be clearer to add nVertices before subtracting 1 so we don’t rely on underflow behavior, even though that behavior is defined.

&gt; Source/WebCore/rendering/ExclusionPolygon.cpp:112
&gt; +    clockwise = determinant(vertexAt(minVertexIndex) - prevVertex, nextVertex - prevVertex) &gt; 0;

The boolean should be initialized here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759937</commentid>
    <comment_count>11</comment_count>
      <attachid>172628</attachid>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2012-11-06 11:53:03 -0800</bug_when>
    <thetext>Created attachment 172628
Patch

I&apos;ve made the suggested changes.  I wasn&apos;t exactly sure how to handle processing the bug from here, since I&apos;ve made changes since the review+, so I just reset both flags.  My apologies if that&apos;s not the expected bug flag protocol.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760105</commentid>
    <comment_count>12</comment_count>
      <attachid>172659</attachid>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2012-11-06 15:22:26 -0800</bug_when>
    <thetext>Created attachment 172659
Patch

I&apos;ve updated the &quot;reviewed by&quot; lines in the ChangeLogs to specify Darin Adler as the reviewer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760108</commentid>
    <comment_count>13</comment_count>
      <attachid>172659</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-11-06 15:24:41 -0800</bug_when>
    <thetext>Comment on attachment 172659
Patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760129</commentid>
    <comment_count>14</comment_count>
      <attachid>172659</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-06 15:47:31 -0800</bug_when>
    <thetext>Comment on attachment 172659
Patch

Clearing flags on attachment: 172659

Committed r133682: &lt;http://trac.webkit.org/changeset/133682&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760131</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-06 15:47:36 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171581</attachid>
            <date>2012-10-30 21:51:44 -0700</date>
            <delta_ts>2012-11-06 09:49:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>tmp.patch</filename>
            <type>text/plain</type>
            <size>8425</size>
            <attacher name="Hans Muller">giles_joplin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhOTI5MTFjLi42ZjcyN2IxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMTAt
MzAgIEhhbnMgTXVsbGVyICA8aG11bGxlckBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTUyBFeGNs
dXNpb25zXSBTdG9yZSBFeGNsdXNpb25Qb2x5Z29uRWRnZSB2ZXJ0aWNlcyBpbiBjbG9ja3dpc2Ug
b3JkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEw
MDc2MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFZl
cmlmeSB0aGF0IGEgc2hhcGUtaW5zaWRlIHBvbHlnb24gd2hvc2UgdmVydGljZXMgYXJlIHNwZWNp
ZmllZCBpbiBjb3VudGVyY2xvY2t3aXNlCisgICAgICAgIG9yZGVyIGlzIGhhbmRsZWQgY29ycmVj
dGx5LgorCisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNp
ZGUtY291bnRlcmNsb2Nrd2lzZS1wb2x5Z29uLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLWNvdW50ZXJjbG9j
a3dpc2UtcG9seWdvbi5odG1sOiBBZGRlZC4KKwogMjAxMi0xMC0zMCAgS2VuaWNoaSBJc2hpYmFz
aGkgIDxiYXNoaUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCB0ZXN0IGV4cGVj
dGF0aW9ucyB1cGRhdGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9z
aGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLWNvdW50ZXJjbG9ja3dpc2UtcG9seWdvbi1leHBlY3Rl
ZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1p
bnNpZGUtY291bnRlcmNsb2Nrd2lzZS1wb2x5Z29uLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTkxNmFhMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLWNvdW50ZXJj
bG9ja3dpc2UtcG9seWdvbi1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMzkgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvc2ltcGxl
LXBvbHlnb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyAgICBpZiAod2luZG93LmludGVybmFs
cykKKyAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRDU1NFeGNsdXNpb25zRW5h
YmxlZCh0cnVlKTsKKworICAgIC8vIFJlY3RpbGluZWFyIHBvbHlnb24gd2l0aCB0aGlzIHNoYXBl
IChzYW1lIGFzIHNoYXBlLWluc2lkZS1yZWN0aWxpbmVhci1wb2x5Z29uLTAwMi5odG1sKS4KKyAg
ICAvLyBUaGUgdmVydGljZXMgYXJlIHNwZWNpZmllZCBpbiBjb3VudGVyLWNsb2Nrd2lzZSBvcmRl
ci4KKyAgICAvLyAgIFhYWAorICAgIC8vIFhYWFhYWFgKKyAgICAvLyBYWFhYWFhYCisgICAgLy8g
ICBYWFgKKyAgICAKKyAgICB2YXIgdmVydGljZXMgPSBbe3g6MCwgeToxNTB9LCB7eDoxMDAsIHk6
MTUwfSwge3g6MTAwLCB5OjIwMH0sIHt4OjI1MCwgeToyMDB9LCB7eDoyNTAsIHk6MTUwfSwge3g6
MzUwLCB5OjE1MH0sIHt4OjM1MCwgeTo1MH0sIHt4OjI1MCwgeTo1MH0sIHt4OjI1MCwgeTowfSwg
e3g6MTAwLCB5OjB9LCB7eDoxMDAsIHk6NTB9LCB7eDowLCB5OjUwfV07CisgICAgdmFyIGxpbmVI
ZWlnaHQgPSA1MDsKKyAgICB2YXIgaGFzU3VicGl4ZWxTdXBwb3J0ID0gZmFsc2U7IC8vIHRlc3Qg
ZG9lc24ndCBkZXBlbmQgb24gc3VicGl4ZWwgbGF5b3V0Cis8L3NjcmlwdD4KKworPHN0eWxlIGlk
PSJzdHlsZXNoZWV0Ij4KKyAgICAjcG9seWdvbi1zaGFwZS1pbnNpZGUsICNwb2x5Z29uLXN2Zy1z
aGFwZSB7CisgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgbGVmdDogMHB4Owor
ICAgICAgICB0b3A6IDBweDsKKyAgICB9Cis8L3N0eWxlPgorPC9oZWFkPgorCis8Ym9keSBpZD0i
Ym9keSIgb25sb2FkPSJjcmVhdGVQb2x5Z29uU2hhcGVJbnNpZGVUZXN0Q2FzZUV4cGVjdGVkKHZl
cnRpY2VzKSI+CisgICAgPHN2ZyBpZD0icG9seWdvbi1zdmctc2hhcGUiIHhtbG5zPSJodHRwOi8v
d3d3LnczLm9yZy8yMDAwL3N2ZyI+PC9zdmc+CisgICAgPGRpdiBpZD0icG9seWdvbi1zaGFwZS1p
bnNpZGUiPjwvZGl2PgorICAgIDxwIGlkPSJpbmZvcm1hdGl2ZS10ZXh0Ij4KKyAgICAgICAgVGhp
cyB0ZXN0IHJlcXVpcmVzIHRoZSBBaGVtIGZvbnQuIEl0IGNyZWF0ZXMgYSBwb2x5Z29uYWwgc2hh
cGUtaW5zaWRlIGFuZCBhIG1hdGNoaW5nCisgICAgICAgIGZpbGxlZCBTVkcgcG9seWdvbi4gVGhl
IGNvbnRlbnQgc2hvdWxkIGp1c3QgZmlsbCB0aGUgc2hhcGUsIHdpdGggYWx0ZXJuYXRpbmcgYmxh
Y2sgYW5kCisgICAgICAgIGVtcHR5IHJlY3RhbmdsZXMgb24gZWFjaCBsaW5lLjwvcD4KKzwvYm9k
eT4KKworPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3No
YXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtY291bnRlcmNsb2Nrd2lzZS1wb2x5Z29uLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1jb3Vu
dGVyY2xvY2t3aXNlLXBvbHlnb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi4zMmJlYTQ1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNp
b25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtY291bnRlcmNsb2Nrd2lzZS1wb2x5Z29uLmh0
bWwKQEAgLTAsMCArMSwzOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9zaW1wbGUtcG9seWdvbi5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0PgorICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICB3aW5kb3cuaW50ZXJuYWxz
LnNldHRpbmdzLnNldENTU0V4Y2x1c2lvbnNFbmFibGVkKHRydWUpOworCisgICAgLy8gUmVjdGls
aW5lYXIgcG9seWdvbiB3aXRoIHRoaXMgc2hhcGUgKHNhbWUgYXMgc2hhcGUtaW5zaWRlLXJlY3Rp
bGluZWFyLXBvbHlnb24tMDAyLmh0bWwpLgorICAgIC8vIFRoZSB2ZXJ0aWNlcyBhcmUgc3BlY2lm
aWVkIGluIGNvdW50ZXItY2xvY2t3aXNlIG9yZGVyLgorICAgIC8vICAgWFhYCisgICAgLy8gWFhY
WFhYWAorICAgIC8vIFhYWFhYWFgKKyAgICAvLyAgIFhYWAorICAgIAorICAgIHZhciB2ZXJ0aWNl
cyA9IFt7eDowLCB5OjE1MH0sIHt4OjEwMCwgeToxNTB9LCB7eDoxMDAsIHk6MjAwfSwge3g6MjUw
LCB5OjIwMH0sIHt4OjI1MCwgeToxNTB9LCB7eDozNTAsIHk6MTUwfSwge3g6MzUwLCB5OjUwfSwg
e3g6MjUwLCB5OjUwfSwge3g6MjUwLCB5OjB9LCB7eDoxMDAsIHk6MH0sIHt4OjEwMCwgeTo1MH0s
IHt4OjAsIHk6NTB9XTsKKyAgICB2YXIgbGluZUhlaWdodCA9IDUwOworICAgIHZhciBoYXNTdWJw
aXhlbFN1cHBvcnQgPSBmYWxzZTsgLy8gdGVzdCBkb2Vzbid0IGRlcGVuZCBvbiBzdWJwaXhlbCBs
YXlvdXQKKzwvc2NyaXB0PgorCis8c3R5bGUgaWQ9InN0eWxlc2hlZXQiPgorICAgICNwb2x5Z29u
LXNoYXBlLWluc2lkZSwgI3BvbHlnb24tc3ZnLXNoYXBlIHsKKyAgICAgICAgcG9zaXRpb246IGFi
c29sdXRlOworICAgICAgICBsZWZ0OiAwcHg7CisgICAgICAgIHRvcDogMHB4OworICAgIH0KKzwv
c3R5bGU+Cis8L2hlYWQ+CisKKzxib2R5IGlkPSJib2R5IiBvbmxvYWQ9ImNyZWF0ZVBvbHlnb25T
aGFwZUluc2lkZVRlc3RDYXNlKHZlcnRpY2VzKSI+CisgICAgPHN2ZyBpZD0icG9seWdvbi1zdmct
c2hhcGUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PC9zdmc+CisgICAgPGRp
diBpZD0icG9seWdvbi1zaGFwZS1pbnNpZGUiPjwvZGl2PgorICAgIDxwIGlkPSJpbmZvcm1hdGl2
ZS10ZXh0Ij4KKyAgICAgICAgVGhpcyB0ZXN0IHJlcXVpcmVzIHRoZSBBaGVtIGZvbnQuIEl0IGNy
ZWF0ZXMgYSBwb2x5Z29uYWwgc2hhcGUtaW5zaWRlIGFuZCBhIG1hdGNoaW5nCisgICAgICAgIGZp
bGxlZCBTVkcgcG9seWdvbi4gVGhlIGNvbnRlbnQgc2hvdWxkIGp1c3QgZmlsbCB0aGUgc2hhcGUs
IHdpdGggYWx0ZXJuYXRpbmcgYmxhY2sgYW5kCisgICAgICAgIGVtcHR5IHJlY3RhbmdsZXMgb24g
ZWFjaCBsaW5lLjwvcD4KKzwvYm9keT4KKworPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDAwY2RmNDYu
Ljc1YzhjNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxMi0xMC0zMCAgSGFucyBN
dWxsZXIgIDxobXVsbGVyQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIEV4Y2x1c2lvbnNdIFN0
b3JlIEV4Y2x1c2lvblBvbHlnb25FZGdlIHZlcnRpY2VzIGluIGNsb2Nrd2lzZSBvcmRlcgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAwNzYzCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIEV4Y2x1c2lv
blBvbHlnb24ncyBpbnRlcm5hbCBsb2dpYywgbm90YWJseSBnZXRWZXJ0ZXhJbnRlcnNlY3Rpb25W
ZXJ0aWNlcygpLAorICAgICAgICBhc3N1bWVzIHRoYXQgRXhjbHVzaW9uUG9seWdvbkVkZ2UgdmVy
dGljZXMgYXJlIHN0b3JlZCBpbiBjbG9ja3dpc2Ugb3JkZXIuCisgICAgICAgIElmIHRoaXMgaXMg
bm90IHRydWUsIHRoZW4gd2UgY29uc3RydWN0IHRoZSBwb2x5Z29uJ3MgZWRnZXMgaW4gcmV2ZXJz
ZS4KKworICAgICAgICBUbyBkZXRlcm1pbmUgaWYgdGhlIHZlcnRpY2VzIGFyZSBpbiBjbG9ja3dp
c2Ugb3JkZXIsIHdlIGNvbXBhcmUgdGhlIHNsb3BlCisgICAgICAgIG9mIHRoZSBsaW5lIGJldHdl
ZW4gdGhlIHRvcCxsZWZ0IHZlcnRleCBhbmQgaXRzIHByZXZpb3VzIHZlcnRleCwgd2l0aCB0aGUK
KyAgICAgICAgdGhlIHNsb3BlIG9mIHRoZSBsaW5lIG9mIHZlcnRpY2VzIGJlZm9yZSBhbmQgYWZ0
ZXIgdGhlIHRvcCxsZWZ0IHZlcnRleC4KKyAgICAgICAgSWYgdGhlIHNsb3BlIG9mIHRoZSBsYXR0
ZXIgaXMgZ3JlYXRlciwgdGhlbiB0b3AsbGVmdCB2ZXJ0ZXggaXMgbG9jYXRlZAorICAgICAgICB0
byBpdHMgbGVmdCwgYW5kIHRoZSB2ZXJ0aWNlcyBhcmUgY2xvY2t3aXNlLgorCisgICAgICAgIFRl
c3Q6IGZhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLWNvdW50ZXJjbG9j
a3dpc2UtcG9seWdvbi5odG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcvRXhjbHVzaW9uUG9seWdv
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkZXRlcm1pbmFudCk6IFVzZWQgdG8gZGVjaWRlIGlm
IHRoZSBtaW4gdmVydGV4IGlzIG9uIHRoZSBsZWZ0IHNpZGUgb2YgdGhlIGxpbmUgdGhhdCBwYXNz
ZXMgdGhyb3VnaCBpdHMgYWRqYWNlbnQgdmVydGljZXMuCisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkV4Y2x1c2lvblBvbHlnb246OkV4Y2x1c2lvblBvbHlnb24pOiBJZiB0
aGUgcG9seWdvbidzIHZlcnRpY2VzIGFyZSBzcGVjaWZpZWQgaW4gY291bnRlcmNsb2Nrd2lzZSBv
cmRlciwgY29uc3RydWN0IHRoZSBlZGdlcyBpbiByZXZlcnNlLgorICAgICAgICAoV2ViQ29yZTo6
YXBwZW5kSW50ZXJ2YWxYKTogTWFkZSB0aGlzIGFuIGlubGluZS4KKwogMjAxMi0xMC0zMCAgQ2hh
cmxlcyBXZWkgIDxjaGFybGVzLndlaUB0b3JjaG1vYmlsZS5jb20uY24+CiAKICAgICAgICAgW0Js
YWNrQmVycnldIFB1cmdlQ3JlZGVudGlhbCBzaG91bGQgYWxzbyBwdXJnZSB0aGUgcGVyc2lzdGVk
IGNyZWRlbnRpYWwgc3RvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9F
eGNsdXNpb25Qb2x5Z29uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25Q
b2x5Z29uLmNwcAppbmRleCA5NjEyMjc3Li5kOTE3ZjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uUG9seWdvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0V4Y2x1c2lvblBvbHlnb24uY3BwCkBAIC00Nyw2ICs0NywxMSBAQCBzdHJ1Y3Qg
RWRnZUludGVyc2VjdGlvbiB7CiAgICAgRWRnZUludGVyc2VjdGlvblR5cGUgdHlwZTsKIH07CiAK
K3N0YXRpYyBpbmxpbmUgZmxvYXQgZGV0ZXJtaW5hbnQoY29uc3QgRmxvYXRTaXplJiBhLCBjb25z
dCBGbG9hdFNpemUmIGIpCit7CisgICAgcmV0dXJuIGEud2lkdGgoKSAqIGIuaGVpZ2h0KCkgLSBh
LmhlaWdodCgpICogYi53aWR0aCgpOworfQorCiBFeGNsdXNpb25Qb2x5Z29uOjpFeGNsdXNpb25Q
b2x5Z29uKFBhc3NPd25QdHI8VmVjdG9yPEZsb2F0UG9pbnQ+ID4gdmVydGljZXMsIFdpbmRSdWxl
IGZpbGxSdWxlKQogICAgIDogRXhjbHVzaW9uU2hhcGUoKQogICAgICwgbV92ZXJ0aWNlcyh2ZXJ0
aWNlcykKQEAgLTU5LDEyICs2NCwyNiBAQCBFeGNsdXNpb25Qb2x5Z29uOjpFeGNsdXNpb25Qb2x5
Z29uKFBhc3NPd25QdHI8VmVjdG9yPEZsb2F0UG9pbnQ+ID4gdmVydGljZXMsIFdpbgogICAgIGlm
IChuVmVydGljZXMpCiAgICAgICAgIG1fYm91bmRpbmdCb3guc2V0TG9jYXRpb24odmVydGV4QXQo
MCkpOwogCisgICAgYm9vbCBjbG9ja3dpc2UgPSB0cnVlOworICAgIGlmICghbV9lbXB0eSkgewor
ICAgICAgICB1bnNpZ25lZCBtaW5WZXJ0ZXhJbmRleCA9IDA7CisgICAgICAgIGZvciAodW5zaWdu
ZWQgaSA9IDE7IGkgPCBuVmVydGljZXM7IGkrKykgeworICAgICAgICAgICAgY29uc3QgRmxvYXRQ
b2ludCYgdmVydGV4ID0gdmVydGV4QXQoaSk7CisgICAgICAgICAgICBpZiAodmVydGV4LnkoKSA8
IHZlcnRleEF0KG1pblZlcnRleEluZGV4KS55KCkgfHwgKHZlcnRleC55KCkgPT0gdmVydGV4QXQo
bWluVmVydGV4SW5kZXgpLnkoKSAmJiB2ZXJ0ZXgueCgpIDwgdmVydGV4QXQobWluVmVydGV4SW5k
ZXgpLngoKSkpCisgICAgICAgICAgICAgICAgbWluVmVydGV4SW5kZXggPSBpOworICAgICAgICB9
CisgICAgICAgIEZsb2F0UG9pbnQgbmV4dFZlcnRleCA9IHZlcnRleEF0KChtaW5WZXJ0ZXhJbmRl
eCArIDEpICUgblZlcnRpY2VzKTsKKyAgICAgICAgRmxvYXRQb2ludCBwcmV2VmVydGV4ID0gdmVy
dGV4QXQoKG1pblZlcnRleEluZGV4IC0xICsgblZlcnRpY2VzKSAlIG5WZXJ0aWNlcyk7CisgICAg
ICAgIGNsb2Nrd2lzZSA9IGRldGVybWluYW50KHZlcnRleEF0KG1pblZlcnRleEluZGV4KSAtIHBy
ZXZWZXJ0ZXgsIG5leHRWZXJ0ZXggLSBwcmV2VmVydGV4KSA+IDA7CisgICAgfQorCiAgICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IG5WZXJ0aWNlczsgaSsrKSB7Ci0gICAgICAgIGNvbnN0IEZs
b2F0UG9pbnQmIHZlcnRleCA9IHZlcnRleEF0KGkpOworICAgICAgICB1bnNpZ25lZCB2ZXJ0ZXhJ
bmRleCA9IChjbG9ja3dpc2UpID8gaSA6IG5WZXJ0aWNlcyAtIDEgLSBpOworICAgICAgICBjb25z
dCBGbG9hdFBvaW50JiB2ZXJ0ZXggPSB2ZXJ0ZXhBdCh2ZXJ0ZXhJbmRleCk7CiAgICAgICAgIG1f
Ym91bmRpbmdCb3guZXh0ZW5kKHZlcnRleCk7CiAgICAgICAgIG1fZWRnZXNbaV0ucG9seWdvbiA9
IHRoaXM7Ci0gICAgICAgIG1fZWRnZXNbaV0udmVydGV4SW5kZXgxID0gaTsKLSAgICAgICAgbV9l
ZGdlc1tpXS52ZXJ0ZXhJbmRleDIgPSAoaSArIDEpICUgblZlcnRpY2VzOworICAgICAgICBtX2Vk
Z2VzW2ldLnZlcnRleEluZGV4MSA9IHZlcnRleEluZGV4OworICAgICAgICBtX2VkZ2VzW2ldLnZl
cnRleEluZGV4MiA9ICgoY2xvY2t3aXNlKSA/IHZlcnRleEluZGV4ICsgMSA6IHZlcnRleEluZGV4
IC0gMSArIG5WZXJ0aWNlcykgJSBuVmVydGljZXM7CiAgICAgICAgIG1fZWRnZXNbaV0uZWRnZUlu
ZGV4ID0gaTsKICAgICB9CiAKQEAgLTEzMiw3ICsxNTEsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wg
Z2V0VmVydGV4SW50ZXJzZWN0aW9uVmVydGljZXMoY29uc3QgRWRnZUludGVyc2VjdGlvbiYgaW50
ZXJzZQogICAgIHJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgYm9vbCBhcHBlbmRJbnRlcnZhbFgo
ZmxvYXQgeCwgYm9vbCBpbnNpZGUsIFZlY3RvcjxFeGNsdXNpb25JbnRlcnZhbD4mIHJlc3VsdCkK
K3N0YXRpYyBpbmxpbmUgYm9vbCBhcHBlbmRJbnRlcnZhbFgoZmxvYXQgeCwgYm9vbCBpbnNpZGUs
IFZlY3RvcjxFeGNsdXNpb25JbnRlcnZhbD4mIHJlc3VsdCkKIHsKICAgICBpZiAoIWluc2lkZSkK
ICAgICAgICAgcmVzdWx0LmFwcGVuZChFeGNsdXNpb25JbnRlcnZhbCh4KSk7Cg==
</data>
<flag name="review"
          id="185657"
          type_id="1"
          status="-"
          setter="krit"
    />
    <flag name="commit-queue"
          id="185658"
          type_id="3"
          status="-"
          setter="krit"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>172339</attachid>
            <date>2012-11-05 08:30:10 -0800</date>
            <delta_ts>2012-11-05 08:32:15 -0800</delta_ts>
            <desc>Self-intersecting polygon example with fill-rule = evenodd, nonzero (SVG)</desc>
            <filename>star.svg</filename>
            <type>image/svg+xml</type>
            <size>1107</size>
            <attacher name="Hans Muller">giles_joplin</attacher>
            
              <data encoding="base64">PCEtLQpXZSBvbmx5IHN1cHBvcnQgcG9seWdvbnMgZGVmaW5lZCBieSBhIHNpbmdsZSBsaXN0IG9m
IHZlcnRpY2VzLiAgIEhvbGVzIGNhbiBvY2N1ciBiZWNhdXNlIHRoZSBwb2x5Z29uIHNlbGYtaW50
ZXJzZWN0cyBidXQgbm90IGJlY2F1c2Ugc2Vjb25kYXJ5IGxpc3RzIG9mIHZlcnRpY2VzIGFyZSBp
bmNsdWRlZC4gICBTZWxmLWludGVyc2VjdGluZyBwb2x5Z29ucyBmaWxsIGNvcnJlY3RseSwgZXZl
biBpZiB0aGUgdmVydGV4IG9yZGVyIGlzIHJldmVyc2VkLCB3aXRoIGJvdGggZmlsbCBydWxlcy4g
IEkndmUgYXR0YWNoZWQgYW4gU1ZHIGV4YW1wbGUuCi0tPgoKPD94bWwgdmVyc2lvbj0iMS4wIj8+
CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8cG9seWdvbiBmaWxs
LXJ1bGU9ImV2ZW5vZGQiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsMCkiICAgICBmaWxsPSJyZWQi
IHN0cm9rZT0iYmx1ZSIgc3Ryb2tlLXdpZHRoPSIzIiBwb2ludHM9IjI1MCw3NSAzMjMsMzAxIDEz
MSwxNjEgMzY5LDE2MSAxNzcsMzAxIiAvPiAgPCEtLSBjbG9ja3dpc2UgLS0+CiAgPHBvbHlnb24g
ZmlsbC1ydWxlPSJldmVub2RkIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg0MDAsMCkiICAgZmlsbD0i
cmVkIiBzdHJva2U9ImJsdWUiIHN0cm9rZS13aWR0aD0iMyIgcG9pbnRzPSIzMjMsMzAxIDEzMSwx
NjEgMzY5LDE2MSAxNzcsMzAxIDI1MCw3NSIgLz4gIDwhLS0gY291bnRlci1jbG9ja3dpc2UgLS0+
CiAgPHBvbHlnb24gZmlsbC1ydWxlPSJub256ZXJvIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLDQw
MCkiICAgZmlsbD0icmVkIiBzdHJva2U9ImJsdWUiIHN0cm9rZS13aWR0aD0iMyIgcG9pbnRzPSIy
NTAsNzUgMzIzLDMwMSAxMzEsMTYxIDM2OSwxNjEgMTc3LDMwMSIgLz4gIDwhLS0gY2xvY2t3aXNl
IC0tPgogIDxwb2x5Z29uIGZpbGwtcnVsZT0ibm9uemVybyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUo
NDAwLDQwMCkiIGZpbGw9InJlZCIgc3Ryb2tlPSJibHVlIiBzdHJva2Utd2lkdGg9IjMiIHBvaW50
cz0iMzIzLDMwMSAxMzEsMTYxIDM2OSwxNjEgMTc3LDMwMSAyNTAsNzUiIC8+ICA8IS0tIGNvdW50
ZXItY2xvY2t3aXNlIC0tPgo8L3N2Zz4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>172340</attachid>
            <date>2012-11-05 08:32:15 -0800</date>
            <delta_ts>2012-11-05 08:53:08 -0800</delta_ts>
            <desc>Self-intersecting polygon example with fill-rule = evenodd, nonzero (SVG) </desc>
            <filename>star.svg</filename>
            <type>image/svg+xml</type>
            <size>1106</size>
            <attacher name="Hans Muller">giles_joplin</attacher>
            
              <data encoding="base64">PD94bWwgdmVyc2lvbj0iMS4wIj8+CjwhLS0KV2Ugb25seSBzdXBwb3J0IHBvbHlnb25zIGRlZmlu
ZWQgYnkgYSBzaW5nbGUgbGlzdCBvZiB2ZXJ0aWNlcy4gICBIb2xlcyBjYW4gb2NjdXIgYmVjYXVz
ZSB0aGUgcG9seWdvbiBzZWxmLWludGVyc2VjdHMgYnV0IG5vdCBiZWNhdXNlIHNlY29uZGFyeSBs
aXN0cyBvZiB2ZXJ0aWNlcyBhcmUgaW5jbHVkZWQuICAgU2VsZi1pbnRlcnNlY3RpbmcgcG9seWdv
bnMgZmlsbCBjb3JyZWN0bHksIGV2ZW4gaWYgdGhlIHZlcnRleCBvcmRlciBpcyByZXZlcnNlZCwg
d2l0aCBib3RoIGZpbGwgcnVsZXMuICBJJ3ZlIGF0dGFjaGVkIGFuIFNWRyBleGFtcGxlLgotLT4K
PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxwb2x5Z29uIGZpbGwt
cnVsZT0iZXZlbm9kZCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCwwKSIgICAgIGZpbGw9InJlZCIg
c3Ryb2tlPSJibHVlIiBzdHJva2Utd2lkdGg9IjMiIHBvaW50cz0iMjUwLDc1IDMyMywzMDEgMTMx
LDE2MSAzNjksMTYxIDE3NywzMDEiIC8+ICA8IS0tIGNsb2Nrd2lzZSAtLT4KICA8cG9seWdvbiBm
aWxsLXJ1bGU9ImV2ZW5vZGQiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDQwMCwwKSIgICBmaWxsPSJy
ZWQiIHN0cm9rZT0iYmx1ZSIgc3Ryb2tlLXdpZHRoPSIzIiBwb2ludHM9IjMyMywzMDEgMTMxLDE2
MSAzNjksMTYxIDE3NywzMDEgMjUwLDc1IiAvPiAgPCEtLSBjb3VudGVyLWNsb2Nrd2lzZSAtLT4K
ICA8cG9seWdvbiBmaWxsLXJ1bGU9Im5vbnplcm8iIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsNDAw
KSIgICBmaWxsPSJyZWQiIHN0cm9rZT0iYmx1ZSIgc3Ryb2tlLXdpZHRoPSIzIiBwb2ludHM9IjI1
MCw3NSAzMjMsMzAxIDEzMSwxNjEgMzY5LDE2MSAxNzcsMzAxIiAvPiAgPCEtLSBjbG9ja3dpc2Ug
LS0+CiAgPHBvbHlnb24gZmlsbC1ydWxlPSJub256ZXJvIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg0
MDAsNDAwKSIgZmlsbD0icmVkIiBzdHJva2U9ImJsdWUiIHN0cm9rZS13aWR0aD0iMyIgcG9pbnRz
PSIzMjMsMzAxIDEzMSwxNjEgMzY5LDE2MSAxNzcsMzAxIDI1MCw3NSIgLz4gIDwhLS0gY291bnRl
ci1jbG9ja3dpc2UgLS0+Cjwvc3ZnPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>172345</attachid>
            <date>2012-11-05 08:53:08 -0800</date>
            <delta_ts>2012-11-05 08:53:08 -0800</delta_ts>
            <desc>Self-intersecting polygon example with fill-rule = evenodd, nonzero (SVG)</desc>
            <filename>star.svg</filename>
            <type>image/svg+xml</type>
            <size>1106</size>
            <attacher name="Hans Muller">giles_joplin</attacher>
            
              <data encoding="base64">PD94bWwgdmVyc2lvbj0iMS4wIj8+CjwhLS0KV2Ugb25seSBzdXBwb3J0IHBvbHlnb25zIGRlZmlu
ZWQgYnkgYSBzaW5nbGUgbGlzdCBvZiB2ZXJ0aWNlcy4gICBIb2xlcyBjYW4gb2NjdXIgYmVjYXVz
ZSB0aGUgcG9seWdvbiBzZWxmLWludGVyc2VjdHMgYnV0IG5vdCBiZWNhdXNlIHNlY29uZGFyeSBs
aXN0cyBvZiB2ZXJ0aWNlcyBhcmUgaW5jbHVkZWQuICAgU2VsZi1pbnRlcnNlY3RpbmcgcG9seWdv
bnMgZmlsbCBjb3JyZWN0bHksIGV2ZW4gaWYgdGhlIHZlcnRleCBvcmRlciBpcyByZXZlcnNlZCwg
d2l0aCBib3RoIGZpbGwgcnVsZXMuICBJJ3ZlIGF0dGFjaGVkIGFuIFNWRyBleGFtcGxlLgotLT4K
PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxwb2x5Z29uIGZpbGwt
cnVsZT0iZXZlbm9kZCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCwwKSIgICAgIGZpbGw9InJlZCIg
c3Ryb2tlPSJibHVlIiBzdHJva2Utd2lkdGg9IjMiIHBvaW50cz0iMjUwLDc1IDMyMywzMDEgMTMx
LDE2MSAzNjksMTYxIDE3NywzMDEiIC8+ICA8IS0tIGNsb2Nrd2lzZSAtLT4KICA8cG9seWdvbiBm
aWxsLXJ1bGU9ImV2ZW5vZGQiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDQwMCwwKSIgICBmaWxsPSJy
ZWQiIHN0cm9rZT0iYmx1ZSIgc3Ryb2tlLXdpZHRoPSIzIiBwb2ludHM9IjE3NywzMDEgMzY5LDE2
MSAxMzEsMTYxIDMyMywzMDEgMjUwLDc1IiAvPiAgPCEtLSBjb3VudGVyLWNsb2Nrd2lzZSAtLT4K
ICA8cG9seWdvbiBmaWxsLXJ1bGU9Im5vbnplcm8iIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsNDAw
KSIgICBmaWxsPSJyZWQiIHN0cm9rZT0iYmx1ZSIgc3Ryb2tlLXdpZHRoPSIzIiBwb2ludHM9IjI1
MCw3NSAzMjMsMzAxIDEzMSwxNjEgMzY5LDE2MSAxNzcsMzAxIiAvPiAgPCEtLSBjbG9ja3dpc2Ug
LS0+CiAgPHBvbHlnb24gZmlsbC1ydWxlPSJub256ZXJvIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg0
MDAsNDAwKSIgZmlsbD0icmVkIiBzdHJva2U9ImJsdWUiIHN0cm9rZS13aWR0aD0iMyIgcG9pbnRz
PSIxNzcsMzAxIDM2OSwxNjEgMTMxLDE2MSAzMjMsMzAxIDI1MCw3NSIgLz4gIDwhLS0gY291bnRl
ci1jbG9ja3dpc2UgLS0+Cjwvc3ZnPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172606</attachid>
            <date>2012-11-06 09:49:29 -0800</date>
            <delta_ts>2012-11-06 11:53:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>tmp.patch</filename>
            <type>text/plain</type>
            <size>8999</size>
            <attacher name="Hans Muller">giles_joplin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkMGJlNmQwLi4wNzNlZmQ2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMTAt
MzAgIEhhbnMgTXVsbGVyICA8aG11bGxlckBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTUyBFeGNs
dXNpb25zXSBTdG9yZSBFeGNsdXNpb25Qb2x5Z29uRWRnZSB2ZXJ0aWNlcyBpbiBjbG9ja3dpc2Ug
b3JkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEw
MDc2MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFZl
cmlmeSB0aGF0IGEgc2hhcGUtaW5zaWRlIHBvbHlnb24gd2hvc2UgdmVydGljZXMgYXJlIHNwZWNp
ZmllZCBpbiBjb3VudGVyY2xvY2t3aXNlCisgICAgICAgIG9yZGVyIGlzIGhhbmRsZWQgY29ycmVj
dGx5LgorCisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNp
ZGUtY291bnRlcmNsb2Nrd2lzZS1wb2x5Z29uLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLWNvdW50ZXJjbG9j
a3dpc2UtcG9seWdvbi5odG1sOiBBZGRlZC4KKwogMjAxMi0xMS0wNSAgQmV0aCBEYWtpbiAgPGJk
YWtpbkBhcHBsZS5jb20+CiAKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwMTAwMQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25z
L3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtY291bnRlcmNsb2Nrd2lzZS1wb2x5Z29uLWV4cGVj
dGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBl
LWluc2lkZS1jb3VudGVyY2xvY2t3aXNlLXBvbHlnb24tZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41Zjk3YmEzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtY291bnRl
cmNsb2Nrd2lzZS1wb2x5Z29uLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwzOSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9zaW1w
bGUtcG9seWdvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorICAgIGlmICh3aW5kb3cuaW50ZXJu
YWxzKQorICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldENTU0V4Y2x1c2lvbnNF
bmFibGVkKHRydWUpOworCisgICAgLy8gUmVjdGlsaW5lYXIgcG9seWdvbiB3aXRoIHRoaXMgc2hh
cGUgKHNhbWUgYXMgc2hhcGUtaW5zaWRlLXJlY3RpbGluZWFyLXBvbHlnb24tMDAyLmh0bWwpLgor
ICAgIC8vIFRoZSB2ZXJ0aWNlcyBhcmUgc3BlY2lmaWVkIGluIGNvdW50ZXItY2xvY2t3aXNlIG9y
ZGVyLgorICAgIC8vICAgWFhYCisgICAgLy8gWFhYWFhYWAorICAgIC8vIFhYWFhYWFgKKyAgICAv
LyAgIFhYWAorICAgIAorICAgIHZhciB2ZXJ0aWNlcyA9IFt7eDowLCB5OjE1MH0sIHt4OjEwMCwg
eToxNTB9LCB7eDoxMDAsIHk6MjAwfSwge3g6MjUwLCB5OjIwMH0sIHt4OjI1MCwgeToxNTB9LCB7
eDozNTAsIHk6MTUwfSwge3g6MzUwLCB5OjUwfSwge3g6MjUwLCB5OjUwfSwge3g6MjUwLCB5OjB9
LCB7eDoxMDAsIHk6MH0sIHt4OjEwMCwgeTo1MH0sIHt4OjAsIHk6NTB9XTsKKyAgICB2YXIgbGlu
ZUhlaWdodCA9IDUwOworICAgIHZhciBoYXNTdWJwaXhlbFN1cHBvcnQgPSBmYWxzZTsgLy8gVGhp
cyB0ZXN0IGRvZXNuJ3QgZGVwZW5kIG9uIHN1YnBpeGVsIGxheW91dC4KKzwvc2NyaXB0PgorCis8
c3R5bGUgaWQ9InN0eWxlc2hlZXQiPgorICAgICNwb2x5Z29uLXNoYXBlLWluc2lkZSwgI3BvbHln
b24tc3ZnLXNoYXBlIHsKKyAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICBsZWZ0
OiAwcHg7CisgICAgICAgIHRvcDogMHB4OworICAgIH0KKzwvc3R5bGU+Cis8L2hlYWQ+CisKKzxi
b2R5IGlkPSJib2R5IiBvbmxvYWQ9ImNyZWF0ZVBvbHlnb25TaGFwZUluc2lkZVRlc3RDYXNlRXhw
ZWN0ZWQodmVydGljZXMpIj4KKyAgICA8c3ZnIGlkPSJwb2x5Z29uLXN2Zy1zaGFwZSIgeG1sbnM9
Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48L3N2Zz4KKyAgICA8ZGl2IGlkPSJwb2x5Z29u
LXNoYXBlLWluc2lkZSI+PC9kaXY+CisgICAgPHAgaWQ9ImluZm9ybWF0aXZlLXRleHQiPgorICAg
ICAgICBUaGlzIHRlc3QgcmVxdWlyZXMgdGhlIEFoZW0gZm9udC4gSXQgY3JlYXRlcyBhIHBvbHln
b25hbCBzaGFwZS1pbnNpZGUgYW5kIGEgbWF0Y2hpbmcKKyAgICAgICAgZmlsbGVkIFNWRyBwb2x5
Z29uLiBUaGUgY29udGVudCBzaG91bGQganVzdCBmaWxsIHRoZSBzaGFwZSwgd2l0aCBhbHRlcm5h
dGluZyBibGFjayBhbmQKKyAgICAgICAgZW1wdHkgcmVjdGFuZ2xlcyBvbiBlYWNoIGxpbmUuPC9w
PgorPC9ib2R5PgorCis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1
c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1jb3VudGVyY2xvY2t3aXNlLXBvbHlnb24u
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5z
aWRlLWNvdW50ZXJjbG9ja3dpc2UtcG9seWdvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLmNlYTgzYjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1jb3VudGVyY2xvY2t3aXNlLXBv
bHlnb24uaHRtbApAQCAtMCwwICsxLDM5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3NpbXBsZS1wb2x5Z29uLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIHdpbmRvdy5p
bnRlcm5hbHMuc2V0dGluZ3Muc2V0Q1NTRXhjbHVzaW9uc0VuYWJsZWQodHJ1ZSk7CisKKyAgICAv
LyBSZWN0aWxpbmVhciBwb2x5Z29uIHdpdGggdGhpcyBzaGFwZSAoc2FtZSBhcyBzaGFwZS1pbnNp
ZGUtcmVjdGlsaW5lYXItcG9seWdvbi0wMDIuaHRtbCkuCisgICAgLy8gVGhlIHZlcnRpY2VzIGFy
ZSBzcGVjaWZpZWQgaW4gY291bnRlci1jbG9ja3dpc2Ugb3JkZXIuCisgICAgLy8gICBYWFgKKyAg
ICAvLyBYWFhYWFhYCisgICAgLy8gWFhYWFhYWAorICAgIC8vICAgWFhYCisgICAgCisgICAgdmFy
IHZlcnRpY2VzID0gW3t4OjAsIHk6MTUwfSwge3g6MTAwLCB5OjE1MH0sIHt4OjEwMCwgeToyMDB9
LCB7eDoyNTAsIHk6MjAwfSwge3g6MjUwLCB5OjE1MH0sIHt4OjM1MCwgeToxNTB9LCB7eDozNTAs
IHk6NTB9LCB7eDoyNTAsIHk6NTB9LCB7eDoyNTAsIHk6MH0sIHt4OjEwMCwgeTowfSwge3g6MTAw
LCB5OjUwfSwge3g6MCwgeTo1MH1dOworICAgIHZhciBsaW5lSGVpZ2h0ID0gNTA7CisgICAgdmFy
IGhhc1N1YnBpeGVsU3VwcG9ydCA9IGZhbHNlOyAvLyBUaGlzIHRlc3QgZG9lc24ndCBkZXBlbmQg
b24gc3VicGl4ZWwgbGF5b3V0LgorPC9zY3JpcHQ+CisKKzxzdHlsZSBpZD0ic3R5bGVzaGVldCI+
CisgICAgI3BvbHlnb24tc2hhcGUtaW5zaWRlLCAjcG9seWdvbi1zdmctc2hhcGUgeworICAgICAg
ICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgIGxlZnQ6IDBweDsKKyAgICAgICAgdG9wOiAw
cHg7CisgICAgfQorPC9zdHlsZT4KKzwvaGVhZD4KKworPGJvZHkgaWQ9ImJvZHkiIG9ubG9hZD0i
Y3JlYXRlUG9seWdvblNoYXBlSW5zaWRlVGVzdENhc2UodmVydGljZXMpIj4KKyAgICA8c3ZnIGlk
PSJwb2x5Z29uLXN2Zy1zaGFwZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48
L3N2Zz4KKyAgICA8ZGl2IGlkPSJwb2x5Z29uLXNoYXBlLWluc2lkZSI+PC9kaXY+CisgICAgPHAg
aWQ9ImluZm9ybWF0aXZlLXRleHQiPgorICAgICAgICBUaGlzIHRlc3QgcmVxdWlyZXMgdGhlIEFo
ZW0gZm9udC4gSXQgY3JlYXRlcyBhIHBvbHlnb25hbCBzaGFwZS1pbnNpZGUgYW5kIGEgbWF0Y2hp
bmcKKyAgICAgICAgZmlsbGVkIFNWRyBwb2x5Z29uLiBUaGUgY29udGVudCBzaG91bGQganVzdCBm
aWxsIHRoZSBzaGFwZSwgd2l0aCBhbHRlcm5hdGluZyBibGFjayBhbmQKKyAgICAgICAgZW1wdHkg
cmVjdGFuZ2xlcyBvbiBlYWNoIGxpbmUuPC9wPgorPC9ib2R5PgorCis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggM2ZkN2U2Zi4uNTZjY2I3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEy
LTEwLTMwICBIYW5zIE11bGxlciAgPGhtdWxsZXJAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1Mg
RXhjbHVzaW9uc10gU3RvcmUgRXhjbHVzaW9uUG9seWdvbkVkZ2UgdmVydGljZXMgaW4gY2xvY2t3
aXNlIG9yZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDA3NjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUaGUgRXhjbHVzaW9uUG9seWdvbidzIGludGVybmFsIGxvZ2ljLCBub3RhYmx5IGdldFZlcnRl
eEludGVyc2VjdGlvblZlcnRpY2VzKCksCisgICAgICAgIGFzc3VtZXMgdGhhdCBFeGNsdXNpb25Q
b2x5Z29uRWRnZSB2ZXJ0aWNlcyBhcmUgc3RvcmVkIGluIGNsb2Nrd2lzZSBvcmRlci4KKyAgICAg
ICAgSWYgdGhpcyBpcyBub3QgdHJ1ZSwgdGhlbiB3ZSBjb25zdHJ1Y3QgdGhlIHBvbHlnb24ncyBl
ZGdlcyBpbiByZXZlcnNlLgorCisgICAgICAgIFRvIGRldGVybWluZSBpZiB0aGUgdmVydGljZXMg
YXJlIGluIGNsb2Nrd2lzZSBvcmRlciwgd2UgY29tcGFyZSB0aGUgc2xvcGUKKyAgICAgICAgb2Yg
dGhlIGxpbmUgYmV0d2VlbiB0aGUgdG9wLGxlZnQgdmVydGV4IGFuZCBpdHMgcHJldmlvdXMgdmVy
dGV4LCB3aXRoIHRoZQorICAgICAgICB0aGUgc2xvcGUgb2YgdGhlIGxpbmUgb2YgdmVydGljZXMg
YmVmb3JlIGFuZCBhZnRlciB0aGUgdG9wLGxlZnQgdmVydGV4LgorICAgICAgICBJZiB0aGUgc2xv
cGUgb2YgdGhlIGxhdHRlciBpcyBncmVhdGVyLCB0aGVuIHRvcCxsZWZ0IHZlcnRleCBpcyBsb2Nh
dGVkCisgICAgICAgIHRvIGl0cyBsZWZ0LCBhbmQgdGhlIHZlcnRpY2VzIGFyZSBjbG9ja3dpc2Uu
CisKKyAgICAgICAgVGVzdDogZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNp
ZGUtY291bnRlcmNsb2Nrd2lzZS1wb2x5Z29uLmh0bWwKKworICAgICAgICAqIHJlbmRlcmluZy9F
eGNsdXNpb25Qb2x5Z29uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmRldGVybWluYW50KTogVXNl
ZCB0byBkZWNpZGUgaWYgdGhlIG1pbiB2ZXJ0ZXggaXMgb24gdGhlIGxlZnQgc2lkZSBvZiB0aGUg
bGluZSB0aGF0IHBhc3NlcyB0aHJvdWdoIGl0cyBhZGphY2VudCB2ZXJ0aWNlcy4KKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RXhjbHVzaW9uUG9seWdvbjo6RXhjbHVzaW9u
UG9seWdvbik6IElmIHRoZSBwb2x5Z29uJ3MgdmVydGljZXMgYXJlIHNwZWNpZmllZCBpbiBjb3Vu
dGVyY2xvY2t3aXNlIG9yZGVyLCBjb25zdHJ1Y3QgdGhlIGVkZ2VzIGluIHJldmVyc2UuCisgICAg
ICAgIChXZWJDb3JlOjphcHBlbmRJbnRlcnZhbFgpOiBNYWRlIHRoaXMgYW4gaW5saW5lLgorCiAy
MDEyLTExLTA1ICBCZXRoIERha2luICA8YmRha2luQGFwcGxlLmNvbT4KIAogICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxMDAxCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uUG9seWdvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uUG9seWdvbi5jcHAKaW5kZXggYTE3YTM5OC4uNDEzYmM5
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblBvbHlnb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25Qb2x5Z29uLmNwcApA
QCAtNzEsMTIgKzcxLDExIEBAIHVuc2lnbmVkIEV4Y2x1c2lvblBvbHlnb246OmZpbmROZXh0RWRn
ZVZlcnRleEluZGV4KHVuc2lnbmVkIHZlcnRleEluZGV4MSwgYm9vbCBjCiB7CiAgICAgdW5zaWdu
ZWQgblZlcnRpY2VzID0gbnVtYmVyT2ZWZXJ0aWNlcygpOwogICAgIHVuc2lnbmVkIHZlcnRleElu
ZGV4MiA9IG5leHRWZXJ0ZXhJbmRleCh2ZXJ0ZXhJbmRleDEsIG5WZXJ0aWNlcywgY2xvY2t3aXNl
KTsKLSAgICB1bnNpZ25lZCBsYXN0VmVydGV4SW5kZXggPSAoY2xvY2t3aXNlKSA/IDAgOiBuVmVy
dGljZXMgLSAxOwogCi0gICAgd2hpbGUgKHZlcnRleEluZGV4MiAhPSBsYXN0VmVydGV4SW5kZXgg
JiYgYXJlQ29pbmNpZGVudFBvaW50cyh2ZXJ0ZXhBdCh2ZXJ0ZXhJbmRleDEpLCB2ZXJ0ZXhBdCh2
ZXJ0ZXhJbmRleDIpKSkKKyAgICB3aGlsZSAodmVydGV4SW5kZXgyICYmIGFyZUNvaW5jaWRlbnRQ
b2ludHModmVydGV4QXQodmVydGV4SW5kZXgxKSwgdmVydGV4QXQodmVydGV4SW5kZXgyKSkpCiAg
ICAgICAgIHZlcnRleEluZGV4MiA9IG5leHRWZXJ0ZXhJbmRleCh2ZXJ0ZXhJbmRleDIsIG5WZXJ0
aWNlcywgY2xvY2t3aXNlKTsKIAotICAgIHdoaWxlICh2ZXJ0ZXhJbmRleDIgIT0gbGFzdFZlcnRl
eEluZGV4KSB7CisgICAgd2hpbGUgKHZlcnRleEluZGV4MikgewogICAgICAgICB1bnNpZ25lZCB2
ZXJ0ZXhJbmRleDMgPSBuZXh0VmVydGV4SW5kZXgodmVydGV4SW5kZXgyLCBuVmVydGljZXMsIGNs
b2Nrd2lzZSk7CiAgICAgICAgIGlmICghYXJlQ29sbGluZWFyUG9pbnRzKHZlcnRleEF0KHZlcnRl
eEluZGV4MSksIHZlcnRleEF0KHZlcnRleEluZGV4MiksIHZlcnRleEF0KHZlcnRleEluZGV4Mykp
KQogICAgICAgICAgICAgYnJlYWs7CkBAIC0xMDEsMTEgKzEwMCwyMiBAQCBFeGNsdXNpb25Qb2x5
Z29uOjpFeGNsdXNpb25Qb2x5Z29uKFBhc3NPd25QdHI8VmVjdG9yPEZsb2F0UG9pbnQ+ID4gdmVy
dGljZXMsIFdpbgogICAgIGlmIChtX2VtcHR5KQogICAgICAgICByZXR1cm47CiAKKyAgICBib29s
IGNsb2Nrd2lzZSA9IHRydWU7CisgICAgdW5zaWduZWQgbWluVmVydGV4SW5kZXggPSAwOworICAg
IGZvciAodW5zaWduZWQgaSA9IDE7IGkgPCBuVmVydGljZXM7ICsraSkgeworICAgICAgICBjb25z
dCBGbG9hdFBvaW50JiB2ZXJ0ZXggPSB2ZXJ0ZXhBdChpKTsKKyAgICAgICAgaWYgKHZlcnRleC55
KCkgPCB2ZXJ0ZXhBdChtaW5WZXJ0ZXhJbmRleCkueSgpIHx8ICh2ZXJ0ZXgueSgpID09IHZlcnRl
eEF0KG1pblZlcnRleEluZGV4KS55KCkgJiYgdmVydGV4LngoKSA8IHZlcnRleEF0KG1pblZlcnRl
eEluZGV4KS54KCkpKQorICAgICAgICAgICAgbWluVmVydGV4SW5kZXggPSBpOworICAgIH0KKyAg
ICBGbG9hdFBvaW50IG5leHRWZXJ0ZXggPSB2ZXJ0ZXhBdCgobWluVmVydGV4SW5kZXggKyAxKSAl
IG5WZXJ0aWNlcyk7CisgICAgRmxvYXRQb2ludCBwcmV2VmVydGV4ID0gdmVydGV4QXQoKG1pblZl
cnRleEluZGV4IC0xICsgblZlcnRpY2VzKSAlIG5WZXJ0aWNlcyk7CisgICAgY2xvY2t3aXNlID0g
ZGV0ZXJtaW5hbnQodmVydGV4QXQobWluVmVydGV4SW5kZXgpIC0gcHJldlZlcnRleCwgbmV4dFZl
cnRleCAtIHByZXZWZXJ0ZXgpID4gMDsKKwogICAgIHVuc2lnbmVkIGVkZ2VJbmRleCA9IDA7CiAg
ICAgdW5zaWduZWQgdmVydGV4SW5kZXgxID0gMDsKICAgICBkbyB7CiAgICAgICAgIG1fYm91bmRp
bmdCb3guZXh0ZW5kKHZlcnRleEF0KHZlcnRleEluZGV4MSkpOwotICAgICAgICB1bnNpZ25lZCB2
ZXJ0ZXhJbmRleDIgPSBmaW5kTmV4dEVkZ2VWZXJ0ZXhJbmRleCh2ZXJ0ZXhJbmRleDEsIHRydWUp
OworICAgICAgICB1bnNpZ25lZCB2ZXJ0ZXhJbmRleDIgPSBmaW5kTmV4dEVkZ2VWZXJ0ZXhJbmRl
eCh2ZXJ0ZXhJbmRleDEsIGNsb2Nrd2lzZSk7CiAgICAgICAgIG1fZWRnZXNbZWRnZUluZGV4XS5w
b2x5Z29uID0gdGhpczsKICAgICAgICAgbV9lZGdlc1tlZGdlSW5kZXhdLnZlcnRleEluZGV4MSA9
IHZlcnRleEluZGV4MTsKICAgICAgICAgbV9lZGdlc1tlZGdlSW5kZXhdLnZlcnRleEluZGV4MiA9
IHZlcnRleEluZGV4MjsKQEAgLTEzMyw3ICsxNDMsNiBAQCBFeGNsdXNpb25Qb2x5Z29uOjpFeGNs
dXNpb25Qb2x5Z29uKFBhc3NPd25QdHI8VmVjdG9yPEZsb2F0UG9pbnQ+ID4gdmVydGljZXMsIFdp
bgogICAgICAgICBFeGNsdXNpb25Qb2x5Z29uRWRnZSogZWRnZSA9ICZtX2VkZ2VzW2ldOwogICAg
ICAgICBtX2VkZ2VUcmVlLmFkZChFZGdlSW50ZXJ2YWwoZWRnZS0+bWluWSgpLCBlZGdlLT5tYXhZ
KCksIGVkZ2UpKTsKICAgICB9Ci0KIH0KIAogc3RhdGljIGJvb2wgY29tcHV0ZVhJbnRlcnNlY3Rp
b24oY29uc3QgRXhjbHVzaW9uUG9seWdvbkVkZ2UqIGVkZ2VQb2ludGVyLCBmbG9hdCB5LCBFZGdl
SW50ZXJzZWN0aW9uJiByZXN1bHQpCkBAIC0xOTQsNyArMjAzLDcgQEAgc3RhdGljIGlubGluZSBi
b29sIGdldFZlcnRleEludGVyc2VjdGlvblZlcnRpY2VzKGNvbnN0IEVkZ2VJbnRlcnNlY3Rpb24m
IGludGVyc2UKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIGJvb2wgYXBwZW5kSW50ZXJ2
YWxYKGZsb2F0IHgsIGJvb2wgaW5zaWRlLCBWZWN0b3I8RXhjbHVzaW9uSW50ZXJ2YWw+JiByZXN1
bHQpCitzdGF0aWMgaW5saW5lIGJvb2wgYXBwZW5kSW50ZXJ2YWxYKGZsb2F0IHgsIGJvb2wgaW5z
aWRlLCBWZWN0b3I8RXhjbHVzaW9uSW50ZXJ2YWw+JiByZXN1bHQpCiB7CiAgICAgaWYgKCFpbnNp
ZGUpCiAgICAgICAgIHJlc3VsdC5hcHBlbmQoRXhjbHVzaW9uSW50ZXJ2YWwoeCkpOwo=
</data>
<flag name="review"
          id="186985"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172628</attachid>
            <date>2012-11-06 11:53:03 -0800</date>
            <delta_ts>2012-11-06 15:22:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>tmp.patch</filename>
            <type>text/plain</type>
            <size>9041</size>
            <attacher name="Hans Muller">giles_joplin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjMzA1MTcyLi5kNDgxY2NkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMTAt
MzAgIEhhbnMgTXVsbGVyICA8aG11bGxlckBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTUyBFeGNs
dXNpb25zXSBTdG9yZSBFeGNsdXNpb25Qb2x5Z29uRWRnZSB2ZXJ0aWNlcyBpbiBjbG9ja3dpc2Ug
b3JkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEw
MDc2MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFZl
cmlmeSB0aGF0IGEgc2hhcGUtaW5zaWRlIHBvbHlnb24gd2hvc2UgdmVydGljZXMgYXJlIHNwZWNp
ZmllZCBpbiBjb3VudGVyY2xvY2t3aXNlCisgICAgICAgIG9yZGVyIGlzIGhhbmRsZWQgY29ycmVj
dGx5LgorCisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNp
ZGUtY291bnRlcmNsb2Nrd2lzZS1wb2x5Z29uLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLWNvdW50ZXJjbG9j
a3dpc2UtcG9seWdvbi5odG1sOiBBZGRlZC4KKwogMjAxMi0xMS0wNiAgU2hlcmlmZiBCb3QgIDx3
ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGlu
ZyBvdXQgcjEzMzUyOSBhbmQgcjEzMzU2Mi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLWNvdW50ZXJjbG9ja3dpc2UtcG9s
eWdvbi1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWlu
c2lkZS9zaGFwZS1pbnNpZGUtY291bnRlcmNsb2Nrd2lzZS1wb2x5Z29uLWV4cGVjdGVkLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWY5N2JhMwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5z
aWRlLWNvdW50ZXJjbG9ja3dpc2UtcG9seWdvbi1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMzkg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvc2ltcGxlLXBvbHlnb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyAgICBpZiAod2lu
ZG93LmludGVybmFscykKKyAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRDU1NF
eGNsdXNpb25zRW5hYmxlZCh0cnVlKTsKKworICAgIC8vIFJlY3RpbGluZWFyIHBvbHlnb24gd2l0
aCB0aGlzIHNoYXBlIChzYW1lIGFzIHNoYXBlLWluc2lkZS1yZWN0aWxpbmVhci1wb2x5Z29uLTAw
Mi5odG1sKS4KKyAgICAvLyBUaGUgdmVydGljZXMgYXJlIHNwZWNpZmllZCBpbiBjb3VudGVyLWNs
b2Nrd2lzZSBvcmRlci4KKyAgICAvLyAgIFhYWAorICAgIC8vIFhYWFhYWFgKKyAgICAvLyBYWFhY
WFhYCisgICAgLy8gICBYWFgKKyAgICAKKyAgICB2YXIgdmVydGljZXMgPSBbe3g6MCwgeToxNTB9
LCB7eDoxMDAsIHk6MTUwfSwge3g6MTAwLCB5OjIwMH0sIHt4OjI1MCwgeToyMDB9LCB7eDoyNTAs
IHk6MTUwfSwge3g6MzUwLCB5OjE1MH0sIHt4OjM1MCwgeTo1MH0sIHt4OjI1MCwgeTo1MH0sIHt4
OjI1MCwgeTowfSwge3g6MTAwLCB5OjB9LCB7eDoxMDAsIHk6NTB9LCB7eDowLCB5OjUwfV07Cisg
ICAgdmFyIGxpbmVIZWlnaHQgPSA1MDsKKyAgICB2YXIgaGFzU3VicGl4ZWxTdXBwb3J0ID0gZmFs
c2U7IC8vIFRoaXMgdGVzdCBkb2Vzbid0IGRlcGVuZCBvbiBzdWJwaXhlbCBsYXlvdXQuCis8L3Nj
cmlwdD4KKworPHN0eWxlIGlkPSJzdHlsZXNoZWV0Ij4KKyAgICAjcG9seWdvbi1zaGFwZS1pbnNp
ZGUsICNwb2x5Z29uLXN2Zy1zaGFwZSB7CisgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAg
ICAgICAgbGVmdDogMHB4OworICAgICAgICB0b3A6IDBweDsKKyAgICB9Cis8L3N0eWxlPgorPC9o
ZWFkPgorCis8Ym9keSBpZD0iYm9keSIgb25sb2FkPSJjcmVhdGVQb2x5Z29uU2hhcGVJbnNpZGVU
ZXN0Q2FzZUV4cGVjdGVkKHZlcnRpY2VzKSI+CisgICAgPHN2ZyBpZD0icG9seWdvbi1zdmctc2hh
cGUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PC9zdmc+CisgICAgPGRpdiBp
ZD0icG9seWdvbi1zaGFwZS1pbnNpZGUiPjwvZGl2PgorICAgIDxwIGlkPSJpbmZvcm1hdGl2ZS10
ZXh0Ij4KKyAgICAgICAgVGhpcyB0ZXN0IHJlcXVpcmVzIHRoZSBBaGVtIGZvbnQuIEl0IGNyZWF0
ZXMgYSBwb2x5Z29uYWwgc2hhcGUtaW5zaWRlIGFuZCBhIG1hdGNoaW5nCisgICAgICAgIGZpbGxl
ZCBTVkcgcG9seWdvbi4gVGhlIGNvbnRlbnQgc2hvdWxkIGp1c3QgZmlsbCB0aGUgc2hhcGUsIHdp
dGggYWx0ZXJuYXRpbmcgYmxhY2sgYW5kCisgICAgICAgIGVtcHR5IHJlY3RhbmdsZXMgb24gZWFj
aCBsaW5lLjwvcD4KKzwvYm9keT4KKworPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtY291bnRlcmNsb2Nrd2lz
ZS1wb2x5Z29uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRl
L3NoYXBlLWluc2lkZS1jb3VudGVyY2xvY2t3aXNlLXBvbHlnb24uaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZWE4M2I0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtY291bnRlcmNs
b2Nrd2lzZS1wb2x5Z29uLmh0bWwKQEAgLTAsMCArMSwzOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9zaW1wbGUtcG9seWdvbi5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAg
ICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldENTU0V4Y2x1c2lvbnNFbmFibGVkKHRydWUp
OworCisgICAgLy8gUmVjdGlsaW5lYXIgcG9seWdvbiB3aXRoIHRoaXMgc2hhcGUgKHNhbWUgYXMg
c2hhcGUtaW5zaWRlLXJlY3RpbGluZWFyLXBvbHlnb24tMDAyLmh0bWwpLgorICAgIC8vIFRoZSB2
ZXJ0aWNlcyBhcmUgc3BlY2lmaWVkIGluIGNvdW50ZXItY2xvY2t3aXNlIG9yZGVyLgorICAgIC8v
ICAgWFhYCisgICAgLy8gWFhYWFhYWAorICAgIC8vIFhYWFhYWFgKKyAgICAvLyAgIFhYWAorICAg
IAorICAgIHZhciB2ZXJ0aWNlcyA9IFt7eDowLCB5OjE1MH0sIHt4OjEwMCwgeToxNTB9LCB7eDox
MDAsIHk6MjAwfSwge3g6MjUwLCB5OjIwMH0sIHt4OjI1MCwgeToxNTB9LCB7eDozNTAsIHk6MTUw
fSwge3g6MzUwLCB5OjUwfSwge3g6MjUwLCB5OjUwfSwge3g6MjUwLCB5OjB9LCB7eDoxMDAsIHk6
MH0sIHt4OjEwMCwgeTo1MH0sIHt4OjAsIHk6NTB9XTsKKyAgICB2YXIgbGluZUhlaWdodCA9IDUw
OworICAgIHZhciBoYXNTdWJwaXhlbFN1cHBvcnQgPSBmYWxzZTsgLy8gVGhpcyB0ZXN0IGRvZXNu
J3QgZGVwZW5kIG9uIHN1YnBpeGVsIGxheW91dC4KKzwvc2NyaXB0PgorCis8c3R5bGUgaWQ9InN0
eWxlc2hlZXQiPgorICAgICNwb2x5Z29uLXNoYXBlLWluc2lkZSwgI3BvbHlnb24tc3ZnLXNoYXBl
IHsKKyAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICBsZWZ0OiAwcHg7CisgICAg
ICAgIHRvcDogMHB4OworICAgIH0KKzwvc3R5bGU+Cis8L2hlYWQ+CisKKzxib2R5IGlkPSJib2R5
IiBvbmxvYWQ9ImNyZWF0ZVBvbHlnb25TaGFwZUluc2lkZVRlc3RDYXNlKHZlcnRpY2VzKSI+Cisg
ICAgPHN2ZyBpZD0icG9seWdvbi1zdmctc2hhcGUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8y
MDAwL3N2ZyI+PC9zdmc+CisgICAgPGRpdiBpZD0icG9seWdvbi1zaGFwZS1pbnNpZGUiPjwvZGl2
PgorICAgIDxwIGlkPSJpbmZvcm1hdGl2ZS10ZXh0Ij4KKyAgICAgICAgVGhpcyB0ZXN0IHJlcXVp
cmVzIHRoZSBBaGVtIGZvbnQuIEl0IGNyZWF0ZXMgYSBwb2x5Z29uYWwgc2hhcGUtaW5zaWRlIGFu
ZCBhIG1hdGNoaW5nCisgICAgICAgIGZpbGxlZCBTVkcgcG9seWdvbi4gVGhlIGNvbnRlbnQgc2hv
dWxkIGp1c3QgZmlsbCB0aGUgc2hhcGUsIHdpdGggYWx0ZXJuYXRpbmcgYmxhY2sgYW5kCisgICAg
ICAgIGVtcHR5IHJlY3RhbmdsZXMgb24gZWFjaCBsaW5lLjwvcD4KKzwvYm9keT4KKworPC9odG1s
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IGJmOWUxM2QuLjUwNWMwMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
NyBAQAorMjAxMi0xMC0zMCAgSGFucyBNdWxsZXIgIDxobXVsbGVyQGFkb2JlLmNvbT4KKworICAg
ICAgICBbQ1NTIEV4Y2x1c2lvbnNdIFN0b3JlIEV4Y2x1c2lvblBvbHlnb25FZGdlIHZlcnRpY2Vz
IGluIGNsb2Nrd2lzZSBvcmRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTAwNzYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGhlIEV4Y2x1c2lvblBvbHlnb24ncyBpbnRlcm5hbCBsb2dpYywgbm90YWJs
eSBnZXRWZXJ0ZXhJbnRlcnNlY3Rpb25WZXJ0aWNlcygpLAorICAgICAgICBhc3N1bWVzIHRoYXQg
RXhjbHVzaW9uUG9seWdvbkVkZ2UgdmVydGljZXMgYXJlIHN0b3JlZCBpbiBjbG9ja3dpc2Ugb3Jk
ZXIuCisgICAgICAgIElmIHRoaXMgaXMgbm90IHRydWUsIHRoZW4gd2UgY29uc3RydWN0IHRoZSBw
b2x5Z29uJ3MgZWRnZXMgaW4gcmV2ZXJzZS4KKworICAgICAgICBUbyBkZXRlcm1pbmUgaWYgdGhl
IHZlcnRpY2VzIGFyZSBpbiBjbG9ja3dpc2Ugb3JkZXIsIHdlIGNvbXBhcmUgdGhlIHNsb3BlCisg
ICAgICAgIG9mIHRoZSBsaW5lIGJldHdlZW4gdGhlIHRvcCxsZWZ0IHZlcnRleCBhbmQgaXRzIHBy
ZXZpb3VzIHZlcnRleCwgd2l0aCB0aGUKKyAgICAgICAgdGhlIHNsb3BlIG9mIHRoZSBsaW5lIG9m
IHZlcnRpY2VzIGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIHRvcCxsZWZ0IHZlcnRleC4KKyAgICAgICAg
SWYgdGhlIHNsb3BlIG9mIHRoZSBsYXR0ZXIgaXMgZ3JlYXRlciwgdGhlbiB0b3AsbGVmdCB2ZXJ0
ZXggaXMgbG9jYXRlZAorICAgICAgICB0byBpdHMgbGVmdCwgYW5kIHRoZSB2ZXJ0aWNlcyBhcmUg
Y2xvY2t3aXNlLgorCisgICAgICAgIFRlc3Q6IGZhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUv
c2hhcGUtaW5zaWRlLWNvdW50ZXJjbG9ja3dpc2UtcG9seWdvbi5odG1sCisKKyAgICAgICAgKiBy
ZW5kZXJpbmcvRXhjbHVzaW9uUG9seWdvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkZXRlcm1p
bmFudCk6IFVzZWQgdG8gZGVjaWRlIGlmIHRoZSBtaW4gdmVydGV4IGlzIG9uIHRoZSBsZWZ0IHNp
ZGUgb2YgdGhlIGxpbmUgdGhhdCBwYXNzZXMgdGhyb3VnaCBpdHMgYWRqYWNlbnQgdmVydGljZXMu
CisgICAgICAgIChXZWJDb3JlOjpFeGNsdXNpb25Qb2x5Z29uOjpFeGNsdXNpb25Qb2x5Z29uKTog
SWYgdGhlIHBvbHlnb24ncyB2ZXJ0aWNlcyBhcmUgc3BlY2lmaWVkIGluIGNvdW50ZXJjbG9ja3dp
c2Ugb3JkZXIsIGNvbnN0cnVjdCB0aGUgZWRnZXMgaW4gcmV2ZXJzZS4KKyAgICAgICAgKFdlYkNv
cmU6OmFwcGVuZEludGVydmFsWCk6IE1hZGUgdGhpcyBhbiBpbmxpbmUgc2luY2UgaXQgd2FzIG9u
bHkgZGVmaW5lZCBhcyBhIGZ1bmN0aW9uIGZvciB0aGUgc2FrZSBvZiBjbGFyaXR5LgorCiAyMDEy
LTExLTA2ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAg
ICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTMzNTI5IGFuZCByMTMzNTYyLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblBvbHlnb24uY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblBvbHlnb24uY3BwCmluZGV4IGExN2EzOTgu
LmVmYjZhY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25Q
b2x5Z29uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uUG9seWdv
bi5jcHAKQEAgLTcxLDEyICs3MSwxMSBAQCB1bnNpZ25lZCBFeGNsdXNpb25Qb2x5Z29uOjpmaW5k
TmV4dEVkZ2VWZXJ0ZXhJbmRleCh1bnNpZ25lZCB2ZXJ0ZXhJbmRleDEsIGJvb2wgYwogewogICAg
IHVuc2lnbmVkIG5WZXJ0aWNlcyA9IG51bWJlck9mVmVydGljZXMoKTsKICAgICB1bnNpZ25lZCB2
ZXJ0ZXhJbmRleDIgPSBuZXh0VmVydGV4SW5kZXgodmVydGV4SW5kZXgxLCBuVmVydGljZXMsIGNs
b2Nrd2lzZSk7Ci0gICAgdW5zaWduZWQgbGFzdFZlcnRleEluZGV4ID0gKGNsb2Nrd2lzZSkgPyAw
IDogblZlcnRpY2VzIC0gMTsKIAotICAgIHdoaWxlICh2ZXJ0ZXhJbmRleDIgIT0gbGFzdFZlcnRl
eEluZGV4ICYmIGFyZUNvaW5jaWRlbnRQb2ludHModmVydGV4QXQodmVydGV4SW5kZXgxKSwgdmVy
dGV4QXQodmVydGV4SW5kZXgyKSkpCisgICAgd2hpbGUgKHZlcnRleEluZGV4MiAmJiBhcmVDb2lu
Y2lkZW50UG9pbnRzKHZlcnRleEF0KHZlcnRleEluZGV4MSksIHZlcnRleEF0KHZlcnRleEluZGV4
MikpKQogICAgICAgICB2ZXJ0ZXhJbmRleDIgPSBuZXh0VmVydGV4SW5kZXgodmVydGV4SW5kZXgy
LCBuVmVydGljZXMsIGNsb2Nrd2lzZSk7CiAKLSAgICB3aGlsZSAodmVydGV4SW5kZXgyICE9IGxh
c3RWZXJ0ZXhJbmRleCkgeworICAgIHdoaWxlICh2ZXJ0ZXhJbmRleDIpIHsKICAgICAgICAgdW5z
aWduZWQgdmVydGV4SW5kZXgzID0gbmV4dFZlcnRleEluZGV4KHZlcnRleEluZGV4MiwgblZlcnRp
Y2VzLCBjbG9ja3dpc2UpOwogICAgICAgICBpZiAoIWFyZUNvbGxpbmVhclBvaW50cyh2ZXJ0ZXhB
dCh2ZXJ0ZXhJbmRleDEpLCB2ZXJ0ZXhBdCh2ZXJ0ZXhJbmRleDIpLCB2ZXJ0ZXhBdCh2ZXJ0ZXhJ
bmRleDMpKSkKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTAxLDExICsxMDAsMjEgQEAgRXhjbHVz
aW9uUG9seWdvbjo6RXhjbHVzaW9uUG9seWdvbihQYXNzT3duUHRyPFZlY3RvcjxGbG9hdFBvaW50
PiA+IHZlcnRpY2VzLCBXaW4KICAgICBpZiAobV9lbXB0eSkKICAgICAgICAgcmV0dXJuOwogCisg
ICAgdW5zaWduZWQgbWluVmVydGV4SW5kZXggPSAwOworICAgIGZvciAodW5zaWduZWQgaSA9IDE7
IGkgPCBuVmVydGljZXM7ICsraSkgeworICAgICAgICBjb25zdCBGbG9hdFBvaW50JiB2ZXJ0ZXgg
PSB2ZXJ0ZXhBdChpKTsKKyAgICAgICAgaWYgKHZlcnRleC55KCkgPCB2ZXJ0ZXhBdChtaW5WZXJ0
ZXhJbmRleCkueSgpIHx8ICh2ZXJ0ZXgueSgpID09IHZlcnRleEF0KG1pblZlcnRleEluZGV4KS55
KCkgJiYgdmVydGV4LngoKSA8IHZlcnRleEF0KG1pblZlcnRleEluZGV4KS54KCkpKQorICAgICAg
ICAgICAgbWluVmVydGV4SW5kZXggPSBpOworICAgIH0KKyAgICBGbG9hdFBvaW50IG5leHRWZXJ0
ZXggPSB2ZXJ0ZXhBdCgobWluVmVydGV4SW5kZXggKyAxKSAlIG5WZXJ0aWNlcyk7CisgICAgRmxv
YXRQb2ludCBwcmV2VmVydGV4ID0gdmVydGV4QXQoKG1pblZlcnRleEluZGV4ICsgblZlcnRpY2Vz
IC0gMSkgJSBuVmVydGljZXMpOworICAgIGJvb2wgY2xvY2t3aXNlID0gZGV0ZXJtaW5hbnQodmVy
dGV4QXQobWluVmVydGV4SW5kZXgpIC0gcHJldlZlcnRleCwgbmV4dFZlcnRleCAtIHByZXZWZXJ0
ZXgpID4gMDsKKwogICAgIHVuc2lnbmVkIGVkZ2VJbmRleCA9IDA7CiAgICAgdW5zaWduZWQgdmVy
dGV4SW5kZXgxID0gMDsKICAgICBkbyB7CiAgICAgICAgIG1fYm91bmRpbmdCb3guZXh0ZW5kKHZl
cnRleEF0KHZlcnRleEluZGV4MSkpOwotICAgICAgICB1bnNpZ25lZCB2ZXJ0ZXhJbmRleDIgPSBm
aW5kTmV4dEVkZ2VWZXJ0ZXhJbmRleCh2ZXJ0ZXhJbmRleDEsIHRydWUpOworICAgICAgICB1bnNp
Z25lZCB2ZXJ0ZXhJbmRleDIgPSBmaW5kTmV4dEVkZ2VWZXJ0ZXhJbmRleCh2ZXJ0ZXhJbmRleDEs
IGNsb2Nrd2lzZSk7CiAgICAgICAgIG1fZWRnZXNbZWRnZUluZGV4XS5wb2x5Z29uID0gdGhpczsK
ICAgICAgICAgbV9lZGdlc1tlZGdlSW5kZXhdLnZlcnRleEluZGV4MSA9IHZlcnRleEluZGV4MTsK
ICAgICAgICAgbV9lZGdlc1tlZGdlSW5kZXhdLnZlcnRleEluZGV4MiA9IHZlcnRleEluZGV4MjsK
QEAgLTEzMyw3ICsxNDIsNiBAQCBFeGNsdXNpb25Qb2x5Z29uOjpFeGNsdXNpb25Qb2x5Z29uKFBh
c3NPd25QdHI8VmVjdG9yPEZsb2F0UG9pbnQ+ID4gdmVydGljZXMsIFdpbgogICAgICAgICBFeGNs
dXNpb25Qb2x5Z29uRWRnZSogZWRnZSA9ICZtX2VkZ2VzW2ldOwogICAgICAgICBtX2VkZ2VUcmVl
LmFkZChFZGdlSW50ZXJ2YWwoZWRnZS0+bWluWSgpLCBlZGdlLT5tYXhZKCksIGVkZ2UpKTsKICAg
ICB9Ci0KIH0KIAogc3RhdGljIGJvb2wgY29tcHV0ZVhJbnRlcnNlY3Rpb24oY29uc3QgRXhjbHVz
aW9uUG9seWdvbkVkZ2UqIGVkZ2VQb2ludGVyLCBmbG9hdCB5LCBFZGdlSW50ZXJzZWN0aW9uJiBy
ZXN1bHQpCkBAIC0xOTQsNyArMjAyLDcgQEAgc3RhdGljIGlubGluZSBib29sIGdldFZlcnRleElu
dGVyc2VjdGlvblZlcnRpY2VzKGNvbnN0IEVkZ2VJbnRlcnNlY3Rpb24mIGludGVyc2UKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIGJvb2wgYXBwZW5kSW50ZXJ2YWxYKGZsb2F0IHgsIGJv
b2wgaW5zaWRlLCBWZWN0b3I8RXhjbHVzaW9uSW50ZXJ2YWw+JiByZXN1bHQpCitzdGF0aWMgaW5s
aW5lIGJvb2wgYXBwZW5kSW50ZXJ2YWxYKGZsb2F0IHgsIGJvb2wgaW5zaWRlLCBWZWN0b3I8RXhj
bHVzaW9uSW50ZXJ2YWw+JiByZXN1bHQpCiB7CiAgICAgaWYgKCFpbnNpZGUpCiAgICAgICAgIHJl
c3VsdC5hcHBlbmQoRXhjbHVzaW9uSW50ZXJ2YWwoeCkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172659</attachid>
            <date>2012-11-06 15:22:26 -0800</date>
            <delta_ts>2012-11-06 15:47:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>tmp.patch</filename>
            <type>text/plain</type>
            <size>9026</size>
            <attacher name="Hans Muller">giles_joplin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmYTRhY2VhLi5lM2RiNmM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMTAt
MzAgIEhhbnMgTXVsbGVyICA8aG11bGxlckBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTUyBFeGNs
dXNpb25zXSBTdG9yZSBFeGNsdXNpb25Qb2x5Z29uRWRnZSB2ZXJ0aWNlcyBpbiBjbG9ja3dpc2Ug
b3JkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEw
MDc2MworCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIFZlcmlm
eSB0aGF0IGEgc2hhcGUtaW5zaWRlIHBvbHlnb24gd2hvc2UgdmVydGljZXMgYXJlIHNwZWNpZmll
ZCBpbiBjb3VudGVyY2xvY2t3aXNlCisgICAgICAgIG9yZGVyIGlzIGhhbmRsZWQgY29ycmVjdGx5
LgorCisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUt
Y291bnRlcmNsb2Nrd2lzZS1wb2x5Z29uLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLWNvdW50ZXJjbG9ja3dp
c2UtcG9seWdvbi5odG1sOiBBZGRlZC4KKwogMjAxMi0xMS0wNiAgSm9zaHVhIEJlbGwgIDxqc2Jl
bGxAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIGh0dHAvdGVzdHMvaW5zcGVjdG9yLWVuYWJsZWQv
ZHluYW1pYy1zY3JpcHRzLmh0bWwgaXMgZmxha2V5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1jb3VudGVyY2xvY2t3aXNl
LXBvbHlnb24tZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFw
ZS1pbnNpZGUvc2hhcGUtaW5zaWRlLWNvdW50ZXJjbG9ja3dpc2UtcG9seWdvbi1leHBlY3RlZC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVmOTdiYTMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBl
LWluc2lkZS1jb3VudGVyY2xvY2t3aXNlLXBvbHlnb24tZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsx
LDM5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL3NpbXBsZS1wb2x5Z29uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisgICAgaWYg
KHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0
Q1NTRXhjbHVzaW9uc0VuYWJsZWQodHJ1ZSk7CisKKyAgICAvLyBSZWN0aWxpbmVhciBwb2x5Z29u
IHdpdGggdGhpcyBzaGFwZSAoc2FtZSBhcyBzaGFwZS1pbnNpZGUtcmVjdGlsaW5lYXItcG9seWdv
bi0wMDIuaHRtbCkuCisgICAgLy8gVGhlIHZlcnRpY2VzIGFyZSBzcGVjaWZpZWQgaW4gY291bnRl
ci1jbG9ja3dpc2Ugb3JkZXIuCisgICAgLy8gICBYWFgKKyAgICAvLyBYWFhYWFhYCisgICAgLy8g
WFhYWFhYWAorICAgIC8vICAgWFhYCisgICAgCisgICAgdmFyIHZlcnRpY2VzID0gW3t4OjAsIHk6
MTUwfSwge3g6MTAwLCB5OjE1MH0sIHt4OjEwMCwgeToyMDB9LCB7eDoyNTAsIHk6MjAwfSwge3g6
MjUwLCB5OjE1MH0sIHt4OjM1MCwgeToxNTB9LCB7eDozNTAsIHk6NTB9LCB7eDoyNTAsIHk6NTB9
LCB7eDoyNTAsIHk6MH0sIHt4OjEwMCwgeTowfSwge3g6MTAwLCB5OjUwfSwge3g6MCwgeTo1MH1d
OworICAgIHZhciBsaW5lSGVpZ2h0ID0gNTA7CisgICAgdmFyIGhhc1N1YnBpeGVsU3VwcG9ydCA9
IGZhbHNlOyAvLyBUaGlzIHRlc3QgZG9lc24ndCBkZXBlbmQgb24gc3VicGl4ZWwgbGF5b3V0Lgor
PC9zY3JpcHQ+CisKKzxzdHlsZSBpZD0ic3R5bGVzaGVldCI+CisgICAgI3BvbHlnb24tc2hhcGUt
aW5zaWRlLCAjcG9seWdvbi1zdmctc2hhcGUgeworICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7
CisgICAgICAgIGxlZnQ6IDBweDsKKyAgICAgICAgdG9wOiAwcHg7CisgICAgfQorPC9zdHlsZT4K
KzwvaGVhZD4KKworPGJvZHkgaWQ9ImJvZHkiIG9ubG9hZD0iY3JlYXRlUG9seWdvblNoYXBlSW5z
aWRlVGVzdENhc2VFeHBlY3RlZCh2ZXJ0aWNlcykiPgorICAgIDxzdmcgaWQ9InBvbHlnb24tc3Zn
LXNoYXBlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPgorICAgIDxk
aXYgaWQ9InBvbHlnb24tc2hhcGUtaW5zaWRlIj48L2Rpdj4KKyAgICA8cCBpZD0iaW5mb3JtYXRp
dmUtdGV4dCI+CisgICAgICAgIFRoaXMgdGVzdCByZXF1aXJlcyB0aGUgQWhlbSBmb250LiBJdCBj
cmVhdGVzIGEgcG9seWdvbmFsIHNoYXBlLWluc2lkZSBhbmQgYSBtYXRjaGluZworICAgICAgICBm
aWxsZWQgU1ZHIHBvbHlnb24uIFRoZSBjb250ZW50IHNob3VsZCBqdXN0IGZpbGwgdGhlIHNoYXBl
LCB3aXRoIGFsdGVybmF0aW5nIGJsYWNrIGFuZAorICAgICAgICBlbXB0eSByZWN0YW5nbGVzIG9u
IGVhY2ggbGluZS48L3A+Cis8L2JvZHk+CisKKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLWNvdW50ZXJjbG9j
a3dpc2UtcG9seWdvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWlu
c2lkZS9zaGFwZS1pbnNpZGUtY291bnRlcmNsb2Nrd2lzZS1wb2x5Z29uLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2VhODNiNAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLWNvdW50
ZXJjbG9ja3dpc2UtcG9seWdvbi5odG1sCkBAIC0wLDAgKzEsMzkgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvc2ltcGxlLXBvbHln
b24uanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAg
ICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRDU1NFeGNsdXNpb25zRW5hYmxlZCh0
cnVlKTsKKworICAgIC8vIFJlY3RpbGluZWFyIHBvbHlnb24gd2l0aCB0aGlzIHNoYXBlIChzYW1l
IGFzIHNoYXBlLWluc2lkZS1yZWN0aWxpbmVhci1wb2x5Z29uLTAwMi5odG1sKS4KKyAgICAvLyBU
aGUgdmVydGljZXMgYXJlIHNwZWNpZmllZCBpbiBjb3VudGVyLWNsb2Nrd2lzZSBvcmRlci4KKyAg
ICAvLyAgIFhYWAorICAgIC8vIFhYWFhYWFgKKyAgICAvLyBYWFhYWFhYCisgICAgLy8gICBYWFgK
KyAgICAKKyAgICB2YXIgdmVydGljZXMgPSBbe3g6MCwgeToxNTB9LCB7eDoxMDAsIHk6MTUwfSwg
e3g6MTAwLCB5OjIwMH0sIHt4OjI1MCwgeToyMDB9LCB7eDoyNTAsIHk6MTUwfSwge3g6MzUwLCB5
OjE1MH0sIHt4OjM1MCwgeTo1MH0sIHt4OjI1MCwgeTo1MH0sIHt4OjI1MCwgeTowfSwge3g6MTAw
LCB5OjB9LCB7eDoxMDAsIHk6NTB9LCB7eDowLCB5OjUwfV07CisgICAgdmFyIGxpbmVIZWlnaHQg
PSA1MDsKKyAgICB2YXIgaGFzU3VicGl4ZWxTdXBwb3J0ID0gZmFsc2U7IC8vIFRoaXMgdGVzdCBk
b2Vzbid0IGRlcGVuZCBvbiBzdWJwaXhlbCBsYXlvdXQuCis8L3NjcmlwdD4KKworPHN0eWxlIGlk
PSJzdHlsZXNoZWV0Ij4KKyAgICAjcG9seWdvbi1zaGFwZS1pbnNpZGUsICNwb2x5Z29uLXN2Zy1z
aGFwZSB7CisgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgbGVmdDogMHB4Owor
ICAgICAgICB0b3A6IDBweDsKKyAgICB9Cis8L3N0eWxlPgorPC9oZWFkPgorCis8Ym9keSBpZD0i
Ym9keSIgb25sb2FkPSJjcmVhdGVQb2x5Z29uU2hhcGVJbnNpZGVUZXN0Q2FzZSh2ZXJ0aWNlcyki
PgorICAgIDxzdmcgaWQ9InBvbHlnb24tc3ZnLXNoYXBlIiB4bWxucz0iaHR0cDovL3d3dy53My5v
cmcvMjAwMC9zdmciPjwvc3ZnPgorICAgIDxkaXYgaWQ9InBvbHlnb24tc2hhcGUtaW5zaWRlIj48
L2Rpdj4KKyAgICA8cCBpZD0iaW5mb3JtYXRpdmUtdGV4dCI+CisgICAgICAgIFRoaXMgdGVzdCBy
ZXF1aXJlcyB0aGUgQWhlbSBmb250LiBJdCBjcmVhdGVzIGEgcG9seWdvbmFsIHNoYXBlLWluc2lk
ZSBhbmQgYSBtYXRjaGluZworICAgICAgICBmaWxsZWQgU1ZHIHBvbHlnb24uIFRoZSBjb250ZW50
IHNob3VsZCBqdXN0IGZpbGwgdGhlIHNoYXBlLCB3aXRoIGFsdGVybmF0aW5nIGJsYWNrIGFuZAor
ICAgICAgICBlbXB0eSByZWN0YW5nbGVzIG9uIGVhY2ggbGluZS48L3A+Cis8L2JvZHk+CisKKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCAzZjkwZWU1Li5kOTY2OTNiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjcgQEAKKzIwMTItMTAtMzAgIEhhbnMgTXVsbGVyICA8aG11bGxlckBhZG9iZS5jb20+CisK
KyAgICAgICAgW0NTUyBFeGNsdXNpb25zXSBTdG9yZSBFeGNsdXNpb25Qb2x5Z29uRWRnZSB2ZXJ0
aWNlcyBpbiBjbG9ja3dpc2Ugb3JkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwMDc2MworCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVy
LgorCisgICAgICAgIFRoZSBFeGNsdXNpb25Qb2x5Z29uJ3MgaW50ZXJuYWwgbG9naWMsIG5vdGFi
bHkgZ2V0VmVydGV4SW50ZXJzZWN0aW9uVmVydGljZXMoKSwKKyAgICAgICAgYXNzdW1lcyB0aGF0
IEV4Y2x1c2lvblBvbHlnb25FZGdlIHZlcnRpY2VzIGFyZSBzdG9yZWQgaW4gY2xvY2t3aXNlIG9y
ZGVyLgorICAgICAgICBJZiB0aGlzIGlzIG5vdCB0cnVlLCB0aGVuIHdlIGNvbnN0cnVjdCB0aGUg
cG9seWdvbidzIGVkZ2VzIGluIHJldmVyc2UuCisKKyAgICAgICAgVG8gZGV0ZXJtaW5lIGlmIHRo
ZSB2ZXJ0aWNlcyBhcmUgaW4gY2xvY2t3aXNlIG9yZGVyLCB3ZSBjb21wYXJlIHRoZSBzbG9wZQor
ICAgICAgICBvZiB0aGUgbGluZSBiZXR3ZWVuIHRoZSB0b3AsbGVmdCB2ZXJ0ZXggYW5kIGl0cyBw
cmV2aW91cyB2ZXJ0ZXgsIHdpdGggdGhlCisgICAgICAgIHRoZSBzbG9wZSBvZiB0aGUgbGluZSBv
ZiB2ZXJ0aWNlcyBiZWZvcmUgYW5kIGFmdGVyIHRoZSB0b3AsbGVmdCB2ZXJ0ZXguCisgICAgICAg
IElmIHRoZSBzbG9wZSBvZiB0aGUgbGF0dGVyIGlzIGdyZWF0ZXIsIHRoZW4gdG9wLGxlZnQgdmVy
dGV4IGlzIGxvY2F0ZWQKKyAgICAgICAgdG8gaXRzIGxlZnQsIGFuZCB0aGUgdmVydGljZXMgYXJl
IGNsb2Nrd2lzZS4KKworICAgICAgICBUZXN0OiBmYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRl
L3NoYXBlLWluc2lkZS1jb3VudGVyY2xvY2t3aXNlLXBvbHlnb24uaHRtbAorCisgICAgICAgICog
cmVuZGVyaW5nL0V4Y2x1c2lvblBvbHlnb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZGV0ZXJt
aW5hbnQpOiBVc2VkIHRvIGRlY2lkZSBpZiB0aGUgbWluIHZlcnRleCBpcyBvbiB0aGUgbGVmdCBz
aWRlIG9mIHRoZSBsaW5lIHRoYXQgcGFzc2VzIHRocm91Z2ggaXRzIGFkamFjZW50IHZlcnRpY2Vz
LgorICAgICAgICAoV2ViQ29yZTo6RXhjbHVzaW9uUG9seWdvbjo6RXhjbHVzaW9uUG9seWdvbik6
IElmIHRoZSBwb2x5Z29uJ3MgdmVydGljZXMgYXJlIHNwZWNpZmllZCBpbiBjb3VudGVyY2xvY2t3
aXNlIG9yZGVyLCBjb25zdHJ1Y3QgdGhlIGVkZ2VzIGluIHJldmVyc2UuCisgICAgICAgIChXZWJD
b3JlOjphcHBlbmRJbnRlcnZhbFgpOiBNYWRlIHRoaXMgYW4gaW5saW5lIHNpbmNlIGl0IHdhcyBv
bmx5IGRlZmluZWQgYXMgYSBmdW5jdGlvbiBmb3IgdGhlIHNha2Ugb2YgY2xhcml0eS4KKwogMjAx
Mi0xMS0wNiAgVGlhbmNoZW5nIEppYW5nICA8dGlqaWFuZ0ByaW0uY29tPgogCiAgICAgICAgIFtC
bGFja0JlcnJ5XSBVcGRhdGUgQkIxMCBmb3JtIHRoZW1lLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblBvbHlnb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0V4Y2x1c2lvblBvbHlnb24uY3BwCmluZGV4IGExN2EzOTguLmVmYjZhY2QgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25Qb2x5Z29uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uUG9seWdvbi5jcHAKQEAgLTcxLDEy
ICs3MSwxMSBAQCB1bnNpZ25lZCBFeGNsdXNpb25Qb2x5Z29uOjpmaW5kTmV4dEVkZ2VWZXJ0ZXhJ
bmRleCh1bnNpZ25lZCB2ZXJ0ZXhJbmRleDEsIGJvb2wgYwogewogICAgIHVuc2lnbmVkIG5WZXJ0
aWNlcyA9IG51bWJlck9mVmVydGljZXMoKTsKICAgICB1bnNpZ25lZCB2ZXJ0ZXhJbmRleDIgPSBu
ZXh0VmVydGV4SW5kZXgodmVydGV4SW5kZXgxLCBuVmVydGljZXMsIGNsb2Nrd2lzZSk7Ci0gICAg
dW5zaWduZWQgbGFzdFZlcnRleEluZGV4ID0gKGNsb2Nrd2lzZSkgPyAwIDogblZlcnRpY2VzIC0g
MTsKIAotICAgIHdoaWxlICh2ZXJ0ZXhJbmRleDIgIT0gbGFzdFZlcnRleEluZGV4ICYmIGFyZUNv
aW5jaWRlbnRQb2ludHModmVydGV4QXQodmVydGV4SW5kZXgxKSwgdmVydGV4QXQodmVydGV4SW5k
ZXgyKSkpCisgICAgd2hpbGUgKHZlcnRleEluZGV4MiAmJiBhcmVDb2luY2lkZW50UG9pbnRzKHZl
cnRleEF0KHZlcnRleEluZGV4MSksIHZlcnRleEF0KHZlcnRleEluZGV4MikpKQogICAgICAgICB2
ZXJ0ZXhJbmRleDIgPSBuZXh0VmVydGV4SW5kZXgodmVydGV4SW5kZXgyLCBuVmVydGljZXMsIGNs
b2Nrd2lzZSk7CiAKLSAgICB3aGlsZSAodmVydGV4SW5kZXgyICE9IGxhc3RWZXJ0ZXhJbmRleCkg
eworICAgIHdoaWxlICh2ZXJ0ZXhJbmRleDIpIHsKICAgICAgICAgdW5zaWduZWQgdmVydGV4SW5k
ZXgzID0gbmV4dFZlcnRleEluZGV4KHZlcnRleEluZGV4MiwgblZlcnRpY2VzLCBjbG9ja3dpc2Up
OwogICAgICAgICBpZiAoIWFyZUNvbGxpbmVhclBvaW50cyh2ZXJ0ZXhBdCh2ZXJ0ZXhJbmRleDEp
LCB2ZXJ0ZXhBdCh2ZXJ0ZXhJbmRleDIpLCB2ZXJ0ZXhBdCh2ZXJ0ZXhJbmRleDMpKSkKICAgICAg
ICAgICAgIGJyZWFrOwpAQCAtMTAxLDExICsxMDAsMjEgQEAgRXhjbHVzaW9uUG9seWdvbjo6RXhj
bHVzaW9uUG9seWdvbihQYXNzT3duUHRyPFZlY3RvcjxGbG9hdFBvaW50PiA+IHZlcnRpY2VzLCBX
aW4KICAgICBpZiAobV9lbXB0eSkKICAgICAgICAgcmV0dXJuOwogCisgICAgdW5zaWduZWQgbWlu
VmVydGV4SW5kZXggPSAwOworICAgIGZvciAodW5zaWduZWQgaSA9IDE7IGkgPCBuVmVydGljZXM7
ICsraSkgeworICAgICAgICBjb25zdCBGbG9hdFBvaW50JiB2ZXJ0ZXggPSB2ZXJ0ZXhBdChpKTsK
KyAgICAgICAgaWYgKHZlcnRleC55KCkgPCB2ZXJ0ZXhBdChtaW5WZXJ0ZXhJbmRleCkueSgpIHx8
ICh2ZXJ0ZXgueSgpID09IHZlcnRleEF0KG1pblZlcnRleEluZGV4KS55KCkgJiYgdmVydGV4Lngo
KSA8IHZlcnRleEF0KG1pblZlcnRleEluZGV4KS54KCkpKQorICAgICAgICAgICAgbWluVmVydGV4
SW5kZXggPSBpOworICAgIH0KKyAgICBGbG9hdFBvaW50IG5leHRWZXJ0ZXggPSB2ZXJ0ZXhBdCgo
bWluVmVydGV4SW5kZXggKyAxKSAlIG5WZXJ0aWNlcyk7CisgICAgRmxvYXRQb2ludCBwcmV2VmVy
dGV4ID0gdmVydGV4QXQoKG1pblZlcnRleEluZGV4ICsgblZlcnRpY2VzIC0gMSkgJSBuVmVydGlj
ZXMpOworICAgIGJvb2wgY2xvY2t3aXNlID0gZGV0ZXJtaW5hbnQodmVydGV4QXQobWluVmVydGV4
SW5kZXgpIC0gcHJldlZlcnRleCwgbmV4dFZlcnRleCAtIHByZXZWZXJ0ZXgpID4gMDsKKwogICAg
IHVuc2lnbmVkIGVkZ2VJbmRleCA9IDA7CiAgICAgdW5zaWduZWQgdmVydGV4SW5kZXgxID0gMDsK
ICAgICBkbyB7CiAgICAgICAgIG1fYm91bmRpbmdCb3guZXh0ZW5kKHZlcnRleEF0KHZlcnRleElu
ZGV4MSkpOwotICAgICAgICB1bnNpZ25lZCB2ZXJ0ZXhJbmRleDIgPSBmaW5kTmV4dEVkZ2VWZXJ0
ZXhJbmRleCh2ZXJ0ZXhJbmRleDEsIHRydWUpOworICAgICAgICB1bnNpZ25lZCB2ZXJ0ZXhJbmRl
eDIgPSBmaW5kTmV4dEVkZ2VWZXJ0ZXhJbmRleCh2ZXJ0ZXhJbmRleDEsIGNsb2Nrd2lzZSk7CiAg
ICAgICAgIG1fZWRnZXNbZWRnZUluZGV4XS5wb2x5Z29uID0gdGhpczsKICAgICAgICAgbV9lZGdl
c1tlZGdlSW5kZXhdLnZlcnRleEluZGV4MSA9IHZlcnRleEluZGV4MTsKICAgICAgICAgbV9lZGdl
c1tlZGdlSW5kZXhdLnZlcnRleEluZGV4MiA9IHZlcnRleEluZGV4MjsKQEAgLTEzMyw3ICsxNDIs
NiBAQCBFeGNsdXNpb25Qb2x5Z29uOjpFeGNsdXNpb25Qb2x5Z29uKFBhc3NPd25QdHI8VmVjdG9y
PEZsb2F0UG9pbnQ+ID4gdmVydGljZXMsIFdpbgogICAgICAgICBFeGNsdXNpb25Qb2x5Z29uRWRn
ZSogZWRnZSA9ICZtX2VkZ2VzW2ldOwogICAgICAgICBtX2VkZ2VUcmVlLmFkZChFZGdlSW50ZXJ2
YWwoZWRnZS0+bWluWSgpLCBlZGdlLT5tYXhZKCksIGVkZ2UpKTsKICAgICB9Ci0KIH0KIAogc3Rh
dGljIGJvb2wgY29tcHV0ZVhJbnRlcnNlY3Rpb24oY29uc3QgRXhjbHVzaW9uUG9seWdvbkVkZ2Uq
IGVkZ2VQb2ludGVyLCBmbG9hdCB5LCBFZGdlSW50ZXJzZWN0aW9uJiByZXN1bHQpCkBAIC0xOTQs
NyArMjAyLDcgQEAgc3RhdGljIGlubGluZSBib29sIGdldFZlcnRleEludGVyc2VjdGlvblZlcnRp
Y2VzKGNvbnN0IEVkZ2VJbnRlcnNlY3Rpb24mIGludGVyc2UKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAotc3RhdGljIGJvb2wgYXBwZW5kSW50ZXJ2YWxYKGZsb2F0IHgsIGJvb2wgaW5zaWRlLCBWZWN0
b3I8RXhjbHVzaW9uSW50ZXJ2YWw+JiByZXN1bHQpCitzdGF0aWMgaW5saW5lIGJvb2wgYXBwZW5k
SW50ZXJ2YWxYKGZsb2F0IHgsIGJvb2wgaW5zaWRlLCBWZWN0b3I8RXhjbHVzaW9uSW50ZXJ2YWw+
JiByZXN1bHQpCiB7CiAgICAgaWYgKCFpbnNpZGUpCiAgICAgICAgIHJlc3VsdC5hcHBlbmQoRXhj
bHVzaW9uSW50ZXJ2YWwoeCkpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>