<?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>109639</bug_id>
          
          <creation_ts>2013-02-12 17:29:38 -0800</creation_ts>
          <short_desc>Padding and border changes doesn&apos;t trigger relayout of children</short_desc>
          <delta_ts>2013-02-19 10:16:55 -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>New Bugs</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>http://plexode.com/eval3/#ht=%3Cstyle%3E%0A.red%20%7B%20background-color%3A%20red%3B%20%7D%0A.green%20%7B%20background-color%3A%20green%3B%20%7D%0A%3C%2Fstyle%3E%0A%3Cdiv%20class%3D%22container%22%20style%3D%22width%3A%20100px%22%3E%0A%20%20%20%20%3Cdiv%20id%3D%22test1%22%20class%3D%22red%22%20style%3D%22padding-left%3A%2050px%22%20data-expected-width%3D%22100%22%3E%0A%20%20%20%20%20%20%20%20%3Cdiv%20class%3D%22green%22%20style%3D%22height%3A%2020px%22%20data-expected-width%3D%22100%22%3E%3C%2Fdiv%3E%0A%20%20%20%20%3C%2Fdiv%3E%0A%3C%2Fdiv%3E%0A&amp;jt=document.body.offsetLeft%3B%0Adocument.getElementById(%22test1%22).style.paddingLeft%20%3D%20%220%22%3B</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>109722</dependson>
    
    <dependson>109891</dependson>
          <blocked>109774</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Tony Chang">tony</reporter>
          <assigned_to name="Dave Hyatt">hyatt</assigned_to>
          <cc>buildbot</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>hyatt</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>rniwa</cc>
    
    <cc>tkent</cc>
    
    <cc>WebkitBugTracker</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>831465</commentid>
    <comment_count>0</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2013-02-12 17:29:38 -0800</bug_when>
    <thetext>Padding and border changes doesn&apos;t trigger relayout of children</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831470</commentid>
    <comment_count>1</comment_count>
      <attachid>187976</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2013-02-12 17:33:13 -0800</bug_when>
    <thetext>Created attachment 187976
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831471</commentid>
    <comment_count>2</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2013-02-12 17:33:52 -0800</bug_when>
    <thetext>fast/table/border-collapsing/cached-change-row-border-width.html failed on Chromium Linux, looking to see if it fails on Mac too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831528</commentid>
    <comment_count>3</comment_count>
      <attachid>187976</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-12 18:49:02 -0800</bug_when>
    <thetext>Comment on attachment 187976
Patch

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

New failing tests:
fast/table/border-collapsing/cached-change-row-border-width.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831743</commentid>
    <comment_count>4</comment_count>
      <attachid>187976</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-13 02:19:00 -0800</bug_when>
    <thetext>Comment on attachment 187976
Patch

Attachment 187976 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16454761

New failing tests:
fast/table/border-collapsing/cached-change-row-border-width.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831911</commentid>
    <comment_count>5</comment_count>
      <attachid>187976</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-13 08:10:11 -0800</bug_when>
    <thetext>Comment on attachment 187976
Patch

Attachment 187976 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/16546168

New failing tests:
fast/table/border-collapsing/cached-change-row-border-width.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832367</commentid>
    <comment_count>6</comment_count>
      <attachid>188189</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2013-02-13 14:41:38 -0800</bug_when>
    <thetext>Created attachment 188189
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832384</commentid>
    <comment_count>7</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2013-02-13 14:58:12 -0800</bug_when>
    <thetext>This patch also seems to fix bug 104864.  This makes me think that http://trac.webkit.org/changeset/129644 revealed this layout bug by doing fewer style recalcs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832759</commentid>
    <comment_count>8</comment_count>
      <attachid>188189</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2013-02-13 23:25:28 -0800</bug_when>
    <thetext>Comment on attachment 188189
Patch

Looks good</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833181</commentid>
    <comment_count>9</comment_count>
      <attachid>188189</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-14 09:54:56 -0800</bug_when>
    <thetext>Comment on attachment 188189
Patch

Clearing flags on attachment: 188189

Committed r142889: &lt;http://trac.webkit.org/changeset/142889&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833182</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-14 09:55:00 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833247</commentid>
    <comment_count>11</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2013-02-14 10:58:34 -0800</bug_when>
    <thetext>*** Bug 104864 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833689</commentid>
    <comment_count>12</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-02-14 22:14:45 -0800</bug_when>
    <thetext>This patch appears to have caused an assertion failure on scrollbars/overflow-scrollbar-combinations.html:

http://test-results.appspot.com/dashboards/flakiness_dashboard.html#group=%40ToT%20-%20webkit.org&amp;tests=scrollbars%2Foverflow-scrollbar-combinations.html

Blame list:
http://trac.webkit.org/log/?verbose=on&amp;rev=142890&amp;stop_rev=142888

ASSERTION FAILED: needsLayout()
/Volumes/Data/slave/mountainlion-debug/build/Source/WebCore/rendering/RenderBox.cpp(324) : virtual void WebCore::RenderBox::styleDidChange(WebCore::StyleDifference, const WebCore::RenderStyle *)
1   0x10d654c4a WebCore::RenderBox::styleDidChange(WebCore::StyleDifference, WebCore::RenderStyle const*)
2   0x10d5ca6d3 WebCore::RenderBlock::styleDidChange(WebCore::StyleDifference, WebCore::RenderStyle const*)
3   0x10d7b94fd WebCore::RenderScrollbarPart::styleDidChange(WebCore::StyleDifference, WebCore::RenderStyle const*)
4   0x10d78cf39 WebCore::RenderObject::setStyle(WTF::PassRefPtr&lt;WebCore::RenderStyle&gt;)
5   0x10d7b3d5e WebCore::RenderScrollbar::updateScrollbarPart(WebCore::ScrollbarPart, bool)
6   0x10d7b3ef1 WebCore::RenderScrollbar::updateScrollbarParts(bool)
7   0x10d7b43aa WebCore::RenderScrollbar::styleChanged()
8   0x10d70786c WebCore::RenderLayer::setHasVerticalScrollbar(bool)
9   0x10d714484 WebCore::RenderLayer::updateScrollbarsAfterStyleChange(WebCore::RenderStyle const*)
10  0x10d7149b1 WebCore::RenderLayer::styleChanged(WebCore::StyleDifference, WebCore::RenderStyle const*)
11  0x10d74e33e WebCore::RenderLayerModelObject::styleDidChange(WebCore::StyleDifference, WebCore::RenderStyle const*)
12  0x10d654526 WebCore::RenderBox::styleDidChange(WebCore::StyleDifference, WebCore::RenderStyle const*)
13  0x10d5ca6d3 WebCore::RenderBlock::styleDidChange(WebCore::StyleDifference, WebCore::RenderStyle const*)
14  0x10d78cf39 WebCore::RenderObject::setStyle(WTF::PassRefPtr&lt;WebCore::RenderStyle&gt;)
15  0x10d78c47a WebCore::RenderObject::setAnimatableStyle(WTF::PassRefPtr&lt;WebCore::RenderStyle&gt;)
16  0x10d4fa0d6 WebCore::NodeRenderingContext::createRendererForElementIfNeeded()
17  0x10c89298d WebCore::Element::createRendererIfNeeded()
18  0x10c8929e5 WebCore::Element::attach()
19  0x10cb198bc WebCore::executeTask(WebCore::HTMLConstructionSiteTask&amp;)
20  0x10cb19746 WebCore::HTMLConstructionSite::executeQueuedTasks()
21  0x10cc01075 WebCore::HTMLTreeBuilder::constructTree(WebCore::AtomicHTMLToken*)
22  0x10cb3a191 WebCore::HTMLDocumentParser::constructTreeFromHTMLToken(WebCore::HTMLToken&amp;)
23  0x10cb39949 WebCore::HTMLDocumentParser::pumpTokenizer(WebCore::HTMLDocumentParser::SynchronousMode)
24  0x10cb39110 WebCore::HTMLDocumentParser::pumpTokenizerIfPossible(WebCore::HTMLDocumentParser::SynchronousMode)
25  0x10cb3a650 WebCore::HTMLDocumentParser::append(WebCore::SegmentedString const&amp;)
26  0x10c644da7 WebCore::DecodedDataDocumentParser::appendBytes(WebCore::DocumentWriter*, char const*, unsigned long)
27  0x10c716963 WebCore::DocumentWriter::addData(char const*, unsigned long)
28  0x10c6dcc87 WebCore::DocumentLoader::commitData(char const*, unsigned long)
29  0x10a012371 WebKit::WebFrameLoaderClient::committedLoad(WebCore::DocumentLoader*, char const*, int)
30  0x10c6dcd60 WebCore::DocumentLoader::commitLoad(char const*, int)
31  0x10c6dd30b WebCore::DocumentLoader::receivedData(char const*, int)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833696</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-14 22:23:43 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 109891</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834180</commentid>
    <comment_count>14</comment_count>
      <attachid>188602</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2013-02-15 10:58:21 -0800</bug_when>
    <thetext>Created attachment 188602
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834184</commentid>
    <comment_count>15</comment_count>
      <attachid>188602</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2013-02-15 10:59:07 -0800</bug_when>
    <thetext>Comment on attachment 188602
Patch

Fixed the ASSERT by moving the check into the if statement. See ChangeLog for more details.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834602</commentid>
    <comment_count>16</comment_count>
      <attachid>188602</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-15 19:08:02 -0800</bug_when>
    <thetext>Comment on attachment 188602
Patch

Clearing flags on attachment: 188602

Committed r143092: &lt;http://trac.webkit.org/changeset/143092&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834603</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-15 19:08:07 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834643</commentid>
    <comment_count>18</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2013-02-15 23:01:27 -0800</bug_when>
    <thetext>I&apos;m not happy with this patch, or with the original code that was added here. Can we talk in #webkit on Monday about a better approach? I&apos;m guessing you ended up here because you weren&apos;t quite sure how to patch layoutBlock, but RenderBox is way too general a spot for this kind of code (and this code is going to trigger relayouts of children in situations where it wasn&apos;t necessary to do so).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835732</commentid>
    <comment_count>19</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2013-02-18 13:51:08 -0800</bug_when>
    <thetext>Reopening this to code a more specialized fix that doesn&apos;t do relayouts it shouldn&apos;t.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835742</commentid>
    <comment_count>20</comment_count>
      <attachid>188940</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2013-02-18 14:07:16 -0800</bug_when>
    <thetext>Created attachment 188940
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835743</commentid>
    <comment_count>21</comment_count>
      <attachid>188941</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2013-02-18 14:10:44 -0800</bug_when>
    <thetext>Created attachment 188941
Patch

Add a couple of null checks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835759</commentid>
    <comment_count>22</comment_count>
      <attachid>188941</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-18 14:45:36 -0800</bug_when>
    <thetext>Comment on attachment 188941
Patch

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

New failing tests:
fast/regions/seamless-iframe-flowed-into-regions.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835762</commentid>
    <comment_count>23</comment_count>
      <attachid>188941</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-02-18 14:49:29 -0800</bug_when>
    <thetext>Comment on attachment 188941
Patch

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

&gt; Source/WebCore/rendering/RenderBlock.cpp:420
&gt; +        // First walk our normal flow objects and see if there is any change.
&gt; +        for (RenderBox* childBox = firstChildBox(); childBox; childBox = childBox-&gt;nextSiblingBox()) {
&gt; +            if (childBox-&gt;isFloatingOrOutOfFlowPositioned())
&gt; +                continue;
&gt; +            childBox-&gt;setChildNeedsLayout(true, MarkOnlyThis);
&gt; +        }

I would be good to mention why we don&apos;t have to set floating objects dirty per IRC discussion.

&gt; Source/WebCore/rendering/RenderBlock.cpp:423
&gt; +        // Now walk the positioned objects for which we are the containing block.
&gt; +        TrackedRendererListHashSet* positionedDescendants = positionedObjects();

It would be great if you could come up with a test case for floating or position objects.

&gt; Source/WebCore/rendering/RenderTableRow.cpp:89
&gt; +                if (!childBox-&gt;isTableCell())
&gt; +                    continue;

On a completely unrelated note, it&apos;s weird that we can ever have a non-RenderTableCell RenderObject in RenderTableRow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835798</commentid>
    <comment_count>24</comment_count>
      <attachid>188954</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2013-02-18 15:39:33 -0800</bug_when>
    <thetext>Created attachment 188954
Patch with a positioning test case

I added a positioning test case that illustrates what was wrong with the RenderBox code and why you need RenderBlock-specific code to fix this bug the right way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835799</commentid>
    <comment_count>25</comment_count>
      <attachid>188954</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-02-18 15:41:21 -0800</bug_when>
    <thetext>Comment on attachment 188954
Patch with a positioning test case

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

&gt; Source/WebCore/ChangeLog:27
&gt; +        Reviewed by NOBODY (OOPS!).

This line should appear before the long description but after the bug url.

&gt; Source/WebCore/ChangeLog:30
&gt; +        Added fast/block/positioning/border-change-relayout-test.html to illustrate why the
&gt; +        old patch didn&apos;t work.

Please use the de-factor standard format:
Test: fast/block/positioning/border-change-relayout-test.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835873</commentid>
    <comment_count>26</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2013-02-18 18:03:41 -0800</bug_when>
    <thetext>Fixed in r143284.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836515</commentid>
    <comment_count>27</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2013-02-19 10:16:55 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; I&apos;m not happy with this patch, or with the original code that was added here. Can we talk in #webkit on Monday about a better approach? I&apos;m guessing you ended up here because you weren&apos;t quite sure how to patch layoutBlock, but RenderBox is way too general a spot for this kind of code (and this code is going to trigger relayouts of children in situations where it wasn&apos;t necessary to do so).

Thanks for fixing!  Sorry, I was OOO yesterday due to President&apos;s Day.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187976</attachid>
            <date>2013-02-12 17:33:13 -0800</date>
            <delta_ts>2013-02-13 14:41:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109639-20130212172942.patch</filename>
            <type>text/plain</type>
            <size>6722</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNjQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODgwYzY3MDhhMGIxMjNh
YWMwZTE2NDc3NzFmNTVlNDBiNGNmY2I0MC4uNDE4ODZmY2NiY2Y5NWRhZmVmM2IzMzhjNmVmMTY3
OWVkNzExMzVhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEzLTAyLTEyICBUb255
IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUGFkZGluZyBhbmQgYm9yZGVy
IGNoYW5nZXMgZG9lc24ndCB0cmlnZ2VyIHJlbGF5b3V0IG9mIGNoaWxkcmVuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk2MzkKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiBSZW5kZXJCbG9jazo6bGF5
b3V0QmxvY2ssIHdlIG9ubHkgcmVsYXlvdXQgb3VyIGNoaWxkcmVuIGlmIG91ciBsb2dpY2FsIHdp
ZHRoCisgICAgICAgIGNoYW5nZXMuIFRoaXMgbWlzc2VzIGNhc2VzIHdoZXJlIG91ciBsb2dpY2Fs
IHdpZHRoIGRvZXNuJ3QgY2hhbmdlIChpLmUuLCBwYWRkaW5nCisgICAgICAgIG9yIGJvcmRlciBj
aGFuZ2VzKSwgYnV0IG91ciBjb250ZW50IHdpZHRoIGRvZXMgY2hhbmdlLgorCisgICAgICAgIFRo
aXMgaXMgYSBtb3JlIGdlbmVyYWwgY2FzZSBvZiBidWcgMTA0OTk3LgorCisgICAgICAgIFRlc3Q6
IGZhc3QvYmxvY2svZHluYW1pYy1wYWRkaW5nLWJvcmRlci5odG1sCisKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmJvcmRlck9yUGFkZGluZ0xv
Z2ljYWxXaWR0aENoYW5nZWQpOiBPbmx5IGNoZWNrIGlmIHRoZSBsb2dpY2FsIHdpZHRoIGNoYW5n
ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnN0eWxlRGlkQ2hhbmdlKTogRHJvcCB0
aGUgYm9yZGVyLWJveCBjb25kaXRpb24gc2luY2UgdGhpcyBjYW4gaGFwcGVuCisgICAgICAgIGV2
ZW4gd2l0aG91dCBib3JkZXItYm94IGJveCBzaXppbmcuCisKIDIwMTMtMDItMTIgIEFkYW0gQmFy
dGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBCYWNrZ3JvdW5kSFRNTFBhcnNlcjo6
cmVzdW1lRnJvbSBzaG91bGQgdGFrZSBhIHN0cnVjdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQm94LmNwcAppbmRleCBiNTE3N2RiYjY1ZWEzMWUyMjRhNzYwZTAxNDdkOWIxZTg4OTgyN2U1
Li4yMjA0YTJhNjJkMDBjZDk1ODkwMjlmZjkxYzU4MDhhYWYwNzdhNjE1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtMjMyLDEyICsyMzIsMTggQEAgdm9pZCBSZW5k
ZXJCb3g6OnN0eWxlV2lsbENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVy
U3R5bGUqIG5ld1N0eWwKICAgICBSZW5kZXJCb3hNb2RlbE9iamVjdDo6c3R5bGVXaWxsQ2hhbmdl
KGRpZmYsIG5ld1N0eWxlKTsKIH0KIAotc3RhdGljIGJvb2wgYm9yZGVyV2lkdGhDaGFuZ2VkKGNv
bnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSwgY29uc3QgUmVuZGVyU3R5bGUqIG5ld1N0eWxlKQor
c3RhdGljIGJvb2wgYm9yZGVyT3JQYWRkaW5nTG9naWNhbFdpZHRoQ2hhbmdlZChjb25zdCBSZW5k
ZXJTdHlsZSogb2xkU3R5bGUsIGNvbnN0IFJlbmRlclN0eWxlKiBuZXdTdHlsZSkKIHsKLSAgICBy
ZXR1cm4gb2xkU3R5bGUtPmJvcmRlckxlZnRXaWR0aCgpICE9IG5ld1N0eWxlLT5ib3JkZXJMZWZ0
V2lkdGgoKQotICAgICAgICB8fCBvbGRTdHlsZS0+Ym9yZGVyVG9wV2lkdGgoKSAhPSBuZXdTdHls
ZS0+Ym9yZGVyVG9wV2lkdGgoKQotICAgICAgICB8fCBvbGRTdHlsZS0+Ym9yZGVyUmlnaHRXaWR0
aCgpICE9IG5ld1N0eWxlLT5ib3JkZXJSaWdodFdpZHRoKCkKLSAgICAgICAgfHwgb2xkU3R5bGUt
PmJvcmRlckJvdHRvbVdpZHRoKCkgIT0gbmV3U3R5bGUtPmJvcmRlckJvdHRvbVdpZHRoKCk7Cisg
ICAgaWYgKG5ld1N0eWxlLT5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpKQorICAgICAgICByZXR1
cm4gb2xkU3R5bGUtPmJvcmRlckxlZnRXaWR0aCgpICE9IG5ld1N0eWxlLT5ib3JkZXJMZWZ0V2lk
dGgoKQorICAgICAgICAgICAgfHwgb2xkU3R5bGUtPmJvcmRlclJpZ2h0V2lkdGgoKSAhPSBuZXdT
dHlsZS0+Ym9yZGVyUmlnaHRXaWR0aCgpCisgICAgICAgICAgICB8fCBvbGRTdHlsZS0+cGFkZGlu
Z0xlZnQoKSAhPSBuZXdTdHlsZS0+cGFkZGluZ0xlZnQoKQorICAgICAgICAgICAgfHwgb2xkU3R5
bGUtPnBhZGRpbmdSaWdodCgpICE9IG5ld1N0eWxlLT5wYWRkaW5nUmlnaHQoKTsKKworICAgIHJl
dHVybiBvbGRTdHlsZS0+Ym9yZGVyVG9wV2lkdGgoKSAhPSBuZXdTdHlsZS0+Ym9yZGVyVG9wV2lk
dGgoKQorICAgICAgICB8fCBvbGRTdHlsZS0+Ym9yZGVyQm90dG9tV2lkdGgoKSAhPSBuZXdTdHls
ZS0+Ym9yZGVyQm90dG9tV2lkdGgoKQorICAgICAgICB8fCBvbGRTdHlsZS0+cGFkZGluZ1RvcCgp
ICE9IG5ld1N0eWxlLT5wYWRkaW5nVG9wKCkKKyAgICAgICAgfHwgb2xkU3R5bGUtPnBhZGRpbmdC
b3R0b20oKSAhPSBuZXdTdHlsZS0+cGFkZGluZ0JvdHRvbSgpOwogfQogCiB2b2lkIFJlbmRlckJv
eDo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxl
KiBvbGRTdHlsZSkKQEAgLTMxNCw4ICszMjAsNyBAQCB2b2lkIFJlbmRlckJveDo6c3R5bGVEaWRD
aGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZQog
ICAgIHVwZGF0ZUV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm9BZnRlclN0eWxlQ2hhbmdlKHN0eWxl
KCktPnNoYXBlT3V0c2lkZSgpLCBvbGRTdHlsZSA/IG9sZFN0eWxlLT5zaGFwZU91dHNpZGUoKSA6
IDApOwogI2VuZGlmCiAKLSAgICBpZiAob2xkU3R5bGUgJiYgKG5ld1N0eWxlLT5ib3hTaXppbmco
KSA9PSBCT1JERVJfQk9YIHx8IG9sZFN0eWxlLT5ib3hTaXppbmcoKSA9PSBCT1JERVJfQk9YKSAm
JiBkaWZmID09IFN0eWxlRGlmZmVyZW5jZUxheW91dAotICAgICAgICAmJiAobmV3U3R5bGUtPnBh
ZGRpbmdCb3goKSAhPSBvbGRTdHlsZS0+cGFkZGluZ0JveCgpIHx8IGJvcmRlcldpZHRoQ2hhbmdl
ZChvbGRTdHlsZSwgbmV3U3R5bGUpKSkgeworICAgIGlmIChvbGRTdHlsZSAmJiBkaWZmID09IFN0
eWxlRGlmZmVyZW5jZUxheW91dCAmJiBib3JkZXJPclBhZGRpbmdMb2dpY2FsV2lkdGhDaGFuZ2Vk
KG9sZFN0eWxlLCBuZXdTdHlsZSkpIHsKICAgICAgICAgQVNTRVJUKG5lZWRzTGF5b3V0KCkpOwog
ICAgICAgICBmb3IgKFJlbmRlck9iamVjdCogY2hpbGQgPSBmaXJzdENoaWxkKCk7IGNoaWxkOyBj
aGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKQogICAgICAgICAgICAgY2hpbGQtPnNldENoaWxk
TmVlZHNMYXlvdXQodHJ1ZSwgTWFya09ubHlUaGlzKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3ZWZhOTk3ZDlhZWIwMGM5
M2NlNmRhZTU2MjNhZjNlYjU5YmZmMGY4Li44ZGY0YWVmYTNhZDYwMjU0YjRkMGNjZGZhZjU4OGJj
ZTdhMGJmNmE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTMtMDItMTIgIFRvbnkgQ2hhbmcg
IDx0b255QGNocm9taXVtLm9yZz4KKworICAgICAgICBQYWRkaW5nIGFuZCBib3JkZXIgY2hhbmdl
cyBkb2Vzbid0IHRyaWdnZXIgcmVsYXlvdXQgb2YgY2hpbGRyZW4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTYzOQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9ibG9jay9keW5hbWljLXBhZGRp
bmctYm9yZGVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ibG9jay9keW5h
bWljLXBhZGRpbmctYm9yZGVyLmh0bWw6IEFkZGVkLgorCiAyMDEzLTAyLTEyICBVZGF5IEtpcmFu
ICA8dWRheWtpcmFuQG1vdG9yb2xhLmNvbT4KIAogICAgICAgICBCYWNrZ3JvdW5kIHNpemUgd2lk
dGggc3BlY2lmaWVkIGluIHZpZXdwb3J0IHBlcmNlbnRhZ2UgdW5pdHMgbm90IHdvcmtpbmcKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvYmxvY2svZHluYW1pYy1wYWRkaW5nLWJvcmRlci1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL2R5bmFtaWMtcGFkZGluZy1ib3Jk
ZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZmYTFiNTFkOGNlZDk1NWFiMzMxZTY0YTFhOTc0
M2U3OWZhMzdjZTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL2R5
bmFtaWMtcGFkZGluZy1ib3JkZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorVGhpcyB0
ZXN0IHBhc3NlcyBpZiB0aGVyZSBpcyBubyByZWQgc2hvd2luZy4KKworUEFTUworUEFTUworUEFT
UworUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9keW5hbWljLXBhZGRp
bmctYm9yZGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL2R5bmFtaWMtcGFkZGluZy1i
b3JkZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZmVjYzQ3NzYxOTA3YWJlNmYwNzBjMGZkNWM1NmU3N2Nh
NzU3NTkxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9keW5hbWlj
LXBhZGRpbmctYm9yZGVyLmh0bWwKQEAgLTAsMCArMSw1MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorLnJlZCB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogcmVk
OworfQorLmdyZWVuIHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKK30KKzwvc3R5bGU+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBwYXNzZXMgaWYgdGhlcmUgaXMgbm8gcmVk
IHNob3dpbmcuPC9wPgorCis8ZGl2IGNsYXNzPSJjb250YWluZXIiIHN0eWxlPSJ3aWR0aDogMTAw
cHgiPgorICAgIDxkaXYgaWQ9InRlc3QxIiBjbGFzcz0icmVkIiBzdHlsZT0icGFkZGluZy1sZWZ0
OiA1MHB4IiBkYXRhLWV4cGVjdGVkLXdpZHRoPSIxMDAiPgorICAgICAgICA8ZGl2IGNsYXNzPSJn
cmVlbiIgc3R5bGU9ImhlaWdodDogMjBweCIgZGF0YS1leHBlY3RlZC13aWR0aD0iMTAwIj48L2Rp
dj4KKyAgICA8L2Rpdj4KKzwvZGl2PgorCis8ZGl2IGNsYXNzPSJjb250YWluZXIiIHN0eWxlPSIt
d2Via2l0LXdyaXRpbmctbW9kZTogdmVydGljYWwtcmw7IGhlaWdodDogMTAwcHgiPgorICAgIDxk
aXYgaWQ9InRlc3QyIiBjbGFzcz0icmVkIiBzdHlsZT0icGFkZGluZy10b3A6IDUwcHgiIGRhdGEt
ZXhwZWN0ZWQtaGVpZ2h0PSIxMDAiPgorICAgICAgICA8ZGl2IGNsYXNzPSJncmVlbiIgc3R5bGU9
IndpZHRoOiAyMHB4IiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iMTAwIj48L2Rpdj4KKyAgICA8L2Rp
dj4KKzwvZGl2PgorCis8ZGl2IGNsYXNzPSJjb250YWluZXIiIHN0eWxlPSJ3aWR0aDogMTAwcHg7
IC13ZWJraXQtd3JpdGluZy1tb2RlOiBob3Jpem9udGFsLWJ0OyI+CisgICAgPGRpdiBpZD0idGVz
dDMiIGNsYXNzPSJyZWQiIHN0eWxlPSJib3JkZXItbGVmdDogNTBweCBzb2xpZCByZWQiIGRhdGEt
ZXhwZWN0ZWQtd2lkdGg9IjEwMCI+CisgICAgICAgIDxkaXYgY2xhc3M9ImdyZWVuIiBzdHlsZT0i
aGVpZ2h0OiAyMHB4IiBkYXRhLWV4cGVjdGVkLXdpZHRoPSIxMDAiPjwvZGl2PgorICAgIDwvZGl2
PgorPC9kaXY+CisKKzxkaXYgY2xhc3M9ImNvbnRhaW5lciIgc3R5bGU9Ii13ZWJraXQtd3JpdGlu
Zy1tb2RlOiB2ZXJ0aWNhbC1scjsgaGVpZ2h0OiAxMDBweCI+CisgICAgPGRpdiBpZD0idGVzdDQi
IGNsYXNzPSJyZWQiIHN0eWxlPSJib3JkZXItdG9wOiA1MHB4IHNvbGlkIHJlZCIgZGF0YS1leHBl
Y3RlZC1oZWlnaHQ9IjEwMCI+CisgICAgICAgIDxkaXYgY2xhc3M9ImdyZWVuIiBzdHlsZT0id2lk
dGg6IDIwcHgiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSIxMDAiPjwvZGl2PgorICAgIDwvZGl2Pgor
PC9kaXY+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvY2hlY2stbGF5b3V0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQ+Citkb2N1bWVudC5ib2R5Lm9mZnNldExlZnQ7Citkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgidGVzdDEiKS5zdHlsZS5wYWRkaW5nTGVmdCA9ICIwIjsKK2RvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ0ZXN0MiIpLnN0eWxlLnBhZGRpbmdUb3AgPSAiMCI7Citkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgidGVzdDMiKS5zdHlsZS5ib3JkZXJXaWR0aCA9ICIwIjsKK2RvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0NCIpLnN0eWxlLmJvcmRlcldpZHRoID0gIjAiOworY2hl
Y2tMYXlvdXQoIi5jb250YWluZXIiKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188189</attachid>
            <date>2013-02-13 14:41:38 -0800</date>
            <delta_ts>2013-02-15 10:58:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109639-20130213143806.patch</filename>
            <type>text/plain</type>
            <size>8081</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNzc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODMzNGRiNjk0YjU2M2Yy
ZDYyMWQzODRjMGFlOGJjNThjMjA2YzQyNC4uMGVmMTE1NDU5ODM3MzFhNjA2OGNmYzZkMzk5YTA3
MDhhOTM5YTg3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEzLTAyLTEzICBUb255
IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUGFkZGluZyBhbmQgYm9yZGVy
IGNoYW5nZXMgZG9lc24ndCB0cmlnZ2VyIHJlbGF5b3V0IG9mIGNoaWxkcmVuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk2MzkKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiBSZW5kZXJCbG9jazo6bGF5
b3V0QmxvY2ssIHdlIG9ubHkgcmVsYXlvdXQgb3VyIGNoaWxkcmVuIGlmIG91ciBsb2dpY2FsIHdp
ZHRoCisgICAgICAgIGNoYW5nZXMuIFRoaXMgbWlzc2VzIGNhc2VzIHdoZXJlIG91ciBsb2dpY2Fs
IHdpZHRoIGRvZXNuJ3QgY2hhbmdlIChpLmUuLCBwYWRkaW5nCisgICAgICAgIG9yIGJvcmRlciBj
aGFuZ2VzKSwgYnV0IG91ciBjb250ZW50IHdpZHRoIGRvZXMgY2hhbmdlLgorCisgICAgICAgIFRo
aXMgaXMgYSBtb3JlIGdlbmVyYWwgY2FzZSBvZiBidWcgMTA0OTk3LgorCisgICAgICAgIFRlc3Q6
IGZhc3QvYmxvY2svZHluYW1pYy1wYWRkaW5nLWJvcmRlci5odG1sCisKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmJvcmRlck9yUGFkZGluZ0xv
Z2ljYWxXaWR0aENoYW5nZWQpOiBPbmx5IGNoZWNrIGlmIHRoZSBsb2dpY2FsIHdpZHRoIGNoYW5n
ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnN0eWxlRGlkQ2hhbmdlKTogRHJvcCB0
aGUgYm9yZGVyLWJveCBjb25kaXRpb24gc2luY2UgdGhpcyBjYW4gaGFwcGVuCisgICAgICAgIGV2
ZW4gd2l0aG91dCBib3JkZXItYm94IGJveCBzaXppbmcuCisKIDIwMTMtMDItMTMgIERlYW4gSmFj
a3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIFNtYWxsIHVwZGF0ZSB0byBzcGVlY2gg
YnViYmxlIGZvciBjYXB0aW9ucyBtZW51IFtNYWNdCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCb3guY3BwCmluZGV4IGI1MTc3ZGJiNjVlYTMxZTIyNGE3NjBlMDE0N2Q5YjFlODg5ODI3ZTUu
LjIyMDRhMmE2MmQwMGNkOTU4OTAyOWZmOTFjNTgwOGFhZjA3N2E2MTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCkBAIC0yMzIsMTIgKzIzMiwxOCBAQCB2b2lkIFJlbmRl
ckJveDo6c3R5bGVXaWxsQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJT
dHlsZSogbmV3U3R5bAogICAgIFJlbmRlckJveE1vZGVsT2JqZWN0OjpzdHlsZVdpbGxDaGFuZ2Uo
ZGlmZiwgbmV3U3R5bGUpOwogfQogCi1zdGF0aWMgYm9vbCBib3JkZXJXaWR0aENoYW5nZWQoY29u
c3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlLCBjb25zdCBSZW5kZXJTdHlsZSogbmV3U3R5bGUpCitz
dGF0aWMgYm9vbCBib3JkZXJPclBhZGRpbmdMb2dpY2FsV2lkdGhDaGFuZ2VkKGNvbnN0IFJlbmRl
clN0eWxlKiBvbGRTdHlsZSwgY29uc3QgUmVuZGVyU3R5bGUqIG5ld1N0eWxlKQogewotICAgIHJl
dHVybiBvbGRTdHlsZS0+Ym9yZGVyTGVmdFdpZHRoKCkgIT0gbmV3U3R5bGUtPmJvcmRlckxlZnRX
aWR0aCgpCi0gICAgICAgIHx8IG9sZFN0eWxlLT5ib3JkZXJUb3BXaWR0aCgpICE9IG5ld1N0eWxl
LT5ib3JkZXJUb3BXaWR0aCgpCi0gICAgICAgIHx8IG9sZFN0eWxlLT5ib3JkZXJSaWdodFdpZHRo
KCkgIT0gbmV3U3R5bGUtPmJvcmRlclJpZ2h0V2lkdGgoKQotICAgICAgICB8fCBvbGRTdHlsZS0+
Ym9yZGVyQm90dG9tV2lkdGgoKSAhPSBuZXdTdHlsZS0+Ym9yZGVyQm90dG9tV2lkdGgoKTsKKyAg
ICBpZiAobmV3U3R5bGUtPmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCisgICAgICAgIHJldHVy
biBvbGRTdHlsZS0+Ym9yZGVyTGVmdFdpZHRoKCkgIT0gbmV3U3R5bGUtPmJvcmRlckxlZnRXaWR0
aCgpCisgICAgICAgICAgICB8fCBvbGRTdHlsZS0+Ym9yZGVyUmlnaHRXaWR0aCgpICE9IG5ld1N0
eWxlLT5ib3JkZXJSaWdodFdpZHRoKCkKKyAgICAgICAgICAgIHx8IG9sZFN0eWxlLT5wYWRkaW5n
TGVmdCgpICE9IG5ld1N0eWxlLT5wYWRkaW5nTGVmdCgpCisgICAgICAgICAgICB8fCBvbGRTdHls
ZS0+cGFkZGluZ1JpZ2h0KCkgIT0gbmV3U3R5bGUtPnBhZGRpbmdSaWdodCgpOworCisgICAgcmV0
dXJuIG9sZFN0eWxlLT5ib3JkZXJUb3BXaWR0aCgpICE9IG5ld1N0eWxlLT5ib3JkZXJUb3BXaWR0
aCgpCisgICAgICAgIHx8IG9sZFN0eWxlLT5ib3JkZXJCb3R0b21XaWR0aCgpICE9IG5ld1N0eWxl
LT5ib3JkZXJCb3R0b21XaWR0aCgpCisgICAgICAgIHx8IG9sZFN0eWxlLT5wYWRkaW5nVG9wKCkg
IT0gbmV3U3R5bGUtPnBhZGRpbmdUb3AoKQorICAgICAgICB8fCBvbGRTdHlsZS0+cGFkZGluZ0Jv
dHRvbSgpICE9IG5ld1N0eWxlLT5wYWRkaW5nQm90dG9tKCk7CiB9CiAKIHZvaWQgUmVuZGVyQm94
OjpzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUq
IG9sZFN0eWxlKQpAQCAtMzE0LDggKzMyMCw3IEBAIHZvaWQgUmVuZGVyQm94OjpzdHlsZURpZENo
YW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlCiAg
ICAgdXBkYXRlRXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mb0FmdGVyU3R5bGVDaGFuZ2Uoc3R5bGUo
KS0+c2hhcGVPdXRzaWRlKCksIG9sZFN0eWxlID8gb2xkU3R5bGUtPnNoYXBlT3V0c2lkZSgpIDog
MCk7CiAjZW5kaWYKIAotICAgIGlmIChvbGRTdHlsZSAmJiAobmV3U3R5bGUtPmJveFNpemluZygp
ID09IEJPUkRFUl9CT1ggfHwgb2xkU3R5bGUtPmJveFNpemluZygpID09IEJPUkRFUl9CT1gpICYm
IGRpZmYgPT0gU3R5bGVEaWZmZXJlbmNlTGF5b3V0Ci0gICAgICAgICYmIChuZXdTdHlsZS0+cGFk
ZGluZ0JveCgpICE9IG9sZFN0eWxlLT5wYWRkaW5nQm94KCkgfHwgYm9yZGVyV2lkdGhDaGFuZ2Vk
KG9sZFN0eWxlLCBuZXdTdHlsZSkpKSB7CisgICAgaWYgKG9sZFN0eWxlICYmIGRpZmYgPT0gU3R5
bGVEaWZmZXJlbmNlTGF5b3V0ICYmIGJvcmRlck9yUGFkZGluZ0xvZ2ljYWxXaWR0aENoYW5nZWQo
b2xkU3R5bGUsIG5ld1N0eWxlKSkgewogICAgICAgICBBU1NFUlQobmVlZHNMYXlvdXQoKSk7CiAg
ICAgICAgIGZvciAoUmVuZGVyT2JqZWN0KiBjaGlsZCA9IGZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNo
aWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpCiAgICAgICAgICAgICBjaGlsZC0+c2V0Q2hpbGRO
ZWVkc0xheW91dCh0cnVlLCBNYXJrT25seVRoaXMpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDZjNmJkZDE1ZDg0MmEzNTFk
OGEwY2Q1ZWY3ZWU5NzYwNjNiMGI5ZDEuLmZmMDczY2VkYjFhMWE4ZTE5NjBkYzhhMDRiNTc3MDZk
YWQyYjU2OGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMy0wMi0xMyAgVG9ueSBDaGFuZyAg
PHRvbnlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFBhZGRpbmcgYW5kIGJvcmRlciBjaGFuZ2Vz
IGRvZXNuJ3QgdHJpZ2dlciByZWxheW91dCBvZiBjaGlsZHJlbgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NjM5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2Jsb2NrL2R5bmFtaWMtcGFkZGlu
Zy1ib3JkZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Jsb2NrL2R5bmFt
aWMtcGFkZGluZy1ib3JkZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC90YWJsZS9ib3Jk
ZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLXJvdy1ib3JkZXItd2lkdGgtZXhwZWN0ZWQudHh0
OiBXZSBzaG91bGQgaGF2ZSBiZWVuIHJlbGF5aW5nCisgICAgICAgIG91dCB0aGUgdGFibGUgd2hl
biB0aGUgYm9yZGVyIGNoYW5nZWQuIFRoZSBwaXhlbCByZXN1bHRzIGluIHRoaXMgY2FzZSBpcyB0
aGUgc2FtZSwgYnV0IHRoZQorICAgICAgICByZW5kZXIgdHJlZSBzaG93cyB0aGUgZGlmZmVyZW5j
ZS4KKwogMjAxMy0wMi0xMyAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAg
ICAgIERGRyBMb2dpY2FsTm90L0JyYW5jaCBwZWVwaG9sZSByZW1vdmFsIGFuZCBpbnZlcnNpb24g
aWdub3JlcyB0aGUgcG9zc2liaWxpdHkgb2YgdGhpbmdzIGV4aXRpbmcKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvYmxvY2svZHluYW1pYy1wYWRkaW5nLWJvcmRlci1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL2R5bmFtaWMtcGFkZGluZy1ib3JkZXItZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjZmYTFiNTFkOGNlZDk1NWFiMzMxZTY0YTFhOTc0M2U3OWZhMzdjZTIK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL2R5bmFtaWMtcGFkZGlu
Zy1ib3JkZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorVGhpcyB0ZXN0IHBhc3NlcyBp
ZiB0aGVyZSBpcyBubyByZWQgc2hvd2luZy4KKworUEFTUworUEFTUworUEFTUworUEFTUwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9keW5hbWljLXBhZGRpbmctYm9yZGVyLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL2R5bmFtaWMtcGFkZGluZy1ib3JkZXIuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4xZmVjYzQ3NzYxOTA3YWJlNmYwNzBjMGZkNWM1NmU3N2NhNzU3NTkxCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9keW5hbWljLXBhZGRpbmctYm9y
ZGVyLmh0bWwKQEAgLTAsMCArMSw1MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPHN0eWxlPgorLnJlZCB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogcmVkOworfQorLmdyZWVu
IHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxwPlRoaXMgdGVzdCBwYXNzZXMgaWYgdGhlcmUgaXMgbm8gcmVkIHNob3dpbmcuPC9w
PgorCis8ZGl2IGNsYXNzPSJjb250YWluZXIiIHN0eWxlPSJ3aWR0aDogMTAwcHgiPgorICAgIDxk
aXYgaWQ9InRlc3QxIiBjbGFzcz0icmVkIiBzdHlsZT0icGFkZGluZy1sZWZ0OiA1MHB4IiBkYXRh
LWV4cGVjdGVkLXdpZHRoPSIxMDAiPgorICAgICAgICA8ZGl2IGNsYXNzPSJncmVlbiIgc3R5bGU9
ImhlaWdodDogMjBweCIgZGF0YS1leHBlY3RlZC13aWR0aD0iMTAwIj48L2Rpdj4KKyAgICA8L2Rp
dj4KKzwvZGl2PgorCis8ZGl2IGNsYXNzPSJjb250YWluZXIiIHN0eWxlPSItd2Via2l0LXdyaXRp
bmctbW9kZTogdmVydGljYWwtcmw7IGhlaWdodDogMTAwcHgiPgorICAgIDxkaXYgaWQ9InRlc3Qy
IiBjbGFzcz0icmVkIiBzdHlsZT0icGFkZGluZy10b3A6IDUwcHgiIGRhdGEtZXhwZWN0ZWQtaGVp
Z2h0PSIxMDAiPgorICAgICAgICA8ZGl2IGNsYXNzPSJncmVlbiIgc3R5bGU9IndpZHRoOiAyMHB4
IiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iMTAwIj48L2Rpdj4KKyAgICA8L2Rpdj4KKzwvZGl2Pgor
Cis8ZGl2IGNsYXNzPSJjb250YWluZXIiIHN0eWxlPSJ3aWR0aDogMTAwcHg7IC13ZWJraXQtd3Jp
dGluZy1tb2RlOiBob3Jpem9udGFsLWJ0OyI+CisgICAgPGRpdiBpZD0idGVzdDMiIGNsYXNzPSJy
ZWQiIHN0eWxlPSJib3JkZXItbGVmdDogNTBweCBzb2xpZCByZWQiIGRhdGEtZXhwZWN0ZWQtd2lk
dGg9IjEwMCI+CisgICAgICAgIDxkaXYgY2xhc3M9ImdyZWVuIiBzdHlsZT0iaGVpZ2h0OiAyMHB4
IiBkYXRhLWV4cGVjdGVkLXdpZHRoPSIxMDAiPjwvZGl2PgorICAgIDwvZGl2PgorPC9kaXY+CisK
KzxkaXYgY2xhc3M9ImNvbnRhaW5lciIgc3R5bGU9Ii13ZWJraXQtd3JpdGluZy1tb2RlOiB2ZXJ0
aWNhbC1scjsgaGVpZ2h0OiAxMDBweCI+CisgICAgPGRpdiBpZD0idGVzdDQiIGNsYXNzPSJyZWQi
IHN0eWxlPSJib3JkZXItdG9wOiA1MHB4IHNvbGlkIHJlZCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9
IjEwMCI+CisgICAgICAgIDxkaXYgY2xhc3M9ImdyZWVuIiBzdHlsZT0id2lkdGg6IDIwcHgiIGRh
dGEtZXhwZWN0ZWQtaGVpZ2h0PSIxMDAiPjwvZGl2PgorICAgIDwvZGl2PgorPC9kaXY+CisKKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvY2hlY2stbGF5b3V0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQ+Citkb2N1bWVudC5ib2R5Lm9mZnNldExlZnQ7Citkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgidGVzdDEiKS5zdHlsZS5wYWRkaW5nTGVmdCA9ICIwIjsKK2RvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJ0ZXN0MiIpLnN0eWxlLnBhZGRpbmdUb3AgPSAiMCI7Citkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidGVzdDMiKS5zdHlsZS5ib3JkZXJXaWR0aCA9ICIwIjsKK2RvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJ0ZXN0NCIpLnN0eWxlLmJvcmRlcldpZHRoID0gIjAiOworY2hlY2tMYXlvdXQoIi5j
b250YWluZXIiKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLXJvdy1i
b3JkZXItd2lkdGgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC90YWJsZS9ib3JkZXIt
Y29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLXJvdy1ib3JkZXItd2lkdGgtZXhwZWN0ZWQudHh0Cmlu
ZGV4IGFmNzIzYzZjYzE5N2RjYzJlM2IzMGZlYThiNGQ4MTFiMDBmMWJmOTMuLmVjMjU0Nzc2Y2Y1
ODA2N2RlYzIyNDFlNmQ0NjA3M2ZlMWRhMDNjYmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS1yb3ctYm9yZGVyLXdpZHRo
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBz
aW5nL2NhY2hlZC1jaGFuZ2Utcm93LWJvcmRlci13aWR0aC1leHBlY3RlZC50eHQKQEAgLTYsNiAr
Niw2IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICAgICAgUmVuZGVyVGFibGUge1RB
QkxFfSBhdCAoMCwwKSBzaXplIDU2eDEwMyBbYm9yZGVyOiAoMnB4IHNvbGlkICMwMDAwRkYpXQog
ICAgICAgICBSZW5kZXJUYWJsZVNlY3Rpb24ge1RCT0RZfSBhdCAoMSwyKSBzaXplIDU0eDEwMAog
ICAgICAgICAgIFJlbmRlclRhYmxlUm93IHtUUn0gYXQgKDAsMCkgc2l6ZSA1NHg1MCBbYm9yZGVy
OiAoNHB4IHNvbGlkICNGRkZGMDApXQotICAgICAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0g
YXQgKDAsMjMpIHNpemUgNTR4NCBbYm9yZGVyOiAoMnB4IHNvbGlkICMwMEZGMDApXSBbcj0wIGM9
MCBycz0xIGNzPTFdCisgICAgICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMCwyMikg
c2l6ZSA1NHg2IFtib3JkZXI6ICgycHggc29saWQgIzAwRkYwMCldIFtyPTAgYz0wIHJzPTEgY3M9
MV0KICAgICAgICAgICBSZW5kZXJUYWJsZVJvdyB7VFJ9IGF0ICgwLDUwKSBzaXplIDU0eDUwCiAg
ICAgICAgICAgICBSZW5kZXJUYWJsZUNlbGwge1REfSBhdCAoMCw3Mykgc2l6ZSA1NHgzIFtib3Jk
ZXI6ICgycHggbm9uZSAjMDAwMDAwKV0gW3I9MSBjPTAgcnM9MSBjcz0xXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188602</attachid>
            <date>2013-02-15 10:58:21 -0800</date>
            <delta_ts>2013-02-18 14:07:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109639-20130215105447.patch</filename>
            <type>text/plain</type>
            <size>8331</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzMDExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWE2MWU1NTYwMTU2ZTQ3
MmRiNTdkZTJiZjNjYWJmOWZmOWU0OGEyYi4uYTY1MmZhZTBiNWNlODYzY2RjYmFhODk1OWZkNzMy
MDBjOTJlZGFiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEzLTAyLTE1ICBUb255
IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUGFkZGluZyBhbmQgYm9yZGVy
IGNoYW5nZXMgZG9lc24ndCB0cmlnZ2VyIHJlbGF5b3V0IG9mIGNoaWxkcmVuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk2MzkKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiBSZW5kZXJCbG9jazo6bGF5
b3V0QmxvY2ssIHdlIG9ubHkgcmVsYXlvdXQgb3VyIGNoaWxkcmVuIGlmIG91ciBsb2dpY2FsIHdp
ZHRoCisgICAgICAgIGNoYW5nZXMuIFRoaXMgbWlzc2VzIGNhc2VzIHdoZXJlIG91ciBsb2dpY2Fs
IHdpZHRoIGRvZXNuJ3QgY2hhbmdlIChpLmUuLCBwYWRkaW5nCisgICAgICAgIG9yIGJvcmRlciBj
aGFuZ2VzKSwgYnV0IG91ciBjb250ZW50IHdpZHRoIGRvZXMgY2hhbmdlLgorCisgICAgICAgIEFs
c28gY29udmVydCB0aGUgbmVlZHNMYXlvdXQgQVNTRVJUIGludG8gdGhlIGlmIHN0YXRlbWVudC4g
VGhpcyBpcyBiZWNhdXNlCisgICAgICAgIFJlbmRlclNjcm9sbGJhclBhcnQgY2FuIGNoYW5nZSBi
b3JkZXIgd2lkdGhzIGFuZCBub3QgbmVlZCBhIGxheW91dCBpZiB0aGUgc2Nyb2xsYmFyCisgICAg
ICAgIGRvZXNuJ3QgaGF2ZSBhIHBhcmVudC4gSW4gdGhpcyBjYXNlLCB3ZSBkb24ndCBuZWVkIHRv
IHNldCBhbnkgY2hpbGRyZW4gZm9yIGxheW91dC4KKworICAgICAgICBUaGlzIGlzIGEgbW9yZSBn
ZW5lcmFsIGNhc2Ugb2YgYnVnIDEwNDk5Ny4KKworICAgICAgICBUZXN0OiBmYXN0L2Jsb2NrL2R5
bmFtaWMtcGFkZGluZy1ib3JkZXIuaHRtbAorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJv
eC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpib3JkZXJPclBhZGRpbmdMb2dpY2FsV2lkdGhDaGFu
Z2VkKTogT25seSBjaGVjayBpZiB0aGUgbG9naWNhbCB3aWR0aCBjaGFuZ2VkLgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyQm94OjpzdHlsZURpZENoYW5nZSk6IERyb3AgdGhlIGJvcmRlci1ib3gg
Y29uZGl0aW9uIHNpbmNlIHRoaXMgY2FuIGhhcHBlbgorICAgICAgICBldmVuIHdpdGhvdXQgYm9y
ZGVyLWJveCBib3ggc2l6aW5nLgorCiAyMDEzLTAyLTE1ICBIYW5zIE11bGxlciAgPGhtdWxsZXJA
YWRvYmUuY29tPgogCiAgICAgICAgIFtDU1MgRXhjbHVzaW9uc10gRW5hYmxlIHNoYXBlLWluc2lk
ZSBzdXBwb3J0IGZvciBjaXJjbGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3Bw
CmluZGV4IDQxNjE3ODFhMTY5MWExOTMzNTgwZjE0N2JjZTQzMDA3ZTc4OGMxYmIuLjI2YTViMzkx
ODdmMTRhNjg2ZTMxNjc4MGUxNjNiMTlhYWEyMGQ2MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCb3guY3BwCkBAIC0yMzIsMTIgKzIzMiwxOCBAQCB2b2lkIFJlbmRlckJveDo6c3R5
bGVXaWxsQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHlsZSogbmV3
U3R5bAogICAgIFJlbmRlckJveE1vZGVsT2JqZWN0OjpzdHlsZVdpbGxDaGFuZ2UoZGlmZiwgbmV3
U3R5bGUpOwogfQogCi1zdGF0aWMgYm9vbCBib3JkZXJXaWR0aENoYW5nZWQoY29uc3QgUmVuZGVy
U3R5bGUqIG9sZFN0eWxlLCBjb25zdCBSZW5kZXJTdHlsZSogbmV3U3R5bGUpCitzdGF0aWMgYm9v
bCBib3JkZXJPclBhZGRpbmdMb2dpY2FsV2lkdGhDaGFuZ2VkKGNvbnN0IFJlbmRlclN0eWxlKiBv
bGRTdHlsZSwgY29uc3QgUmVuZGVyU3R5bGUqIG5ld1N0eWxlKQogewotICAgIHJldHVybiBvbGRT
dHlsZS0+Ym9yZGVyTGVmdFdpZHRoKCkgIT0gbmV3U3R5bGUtPmJvcmRlckxlZnRXaWR0aCgpCi0g
ICAgICAgIHx8IG9sZFN0eWxlLT5ib3JkZXJUb3BXaWR0aCgpICE9IG5ld1N0eWxlLT5ib3JkZXJU
b3BXaWR0aCgpCi0gICAgICAgIHx8IG9sZFN0eWxlLT5ib3JkZXJSaWdodFdpZHRoKCkgIT0gbmV3
U3R5bGUtPmJvcmRlclJpZ2h0V2lkdGgoKQotICAgICAgICB8fCBvbGRTdHlsZS0+Ym9yZGVyQm90
dG9tV2lkdGgoKSAhPSBuZXdTdHlsZS0+Ym9yZGVyQm90dG9tV2lkdGgoKTsKKyAgICBpZiAobmV3
U3R5bGUtPmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCisgICAgICAgIHJldHVybiBvbGRTdHls
ZS0+Ym9yZGVyTGVmdFdpZHRoKCkgIT0gbmV3U3R5bGUtPmJvcmRlckxlZnRXaWR0aCgpCisgICAg
ICAgICAgICB8fCBvbGRTdHlsZS0+Ym9yZGVyUmlnaHRXaWR0aCgpICE9IG5ld1N0eWxlLT5ib3Jk
ZXJSaWdodFdpZHRoKCkKKyAgICAgICAgICAgIHx8IG9sZFN0eWxlLT5wYWRkaW5nTGVmdCgpICE9
IG5ld1N0eWxlLT5wYWRkaW5nTGVmdCgpCisgICAgICAgICAgICB8fCBvbGRTdHlsZS0+cGFkZGlu
Z1JpZ2h0KCkgIT0gbmV3U3R5bGUtPnBhZGRpbmdSaWdodCgpOworCisgICAgcmV0dXJuIG9sZFN0
eWxlLT5ib3JkZXJUb3BXaWR0aCgpICE9IG5ld1N0eWxlLT5ib3JkZXJUb3BXaWR0aCgpCisgICAg
ICAgIHx8IG9sZFN0eWxlLT5ib3JkZXJCb3R0b21XaWR0aCgpICE9IG5ld1N0eWxlLT5ib3JkZXJC
b3R0b21XaWR0aCgpCisgICAgICAgIHx8IG9sZFN0eWxlLT5wYWRkaW5nVG9wKCkgIT0gbmV3U3R5
bGUtPnBhZGRpbmdUb3AoKQorICAgICAgICB8fCBvbGRTdHlsZS0+cGFkZGluZ0JvdHRvbSgpICE9
IG5ld1N0eWxlLT5wYWRkaW5nQm90dG9tKCk7CiB9CiAKIHZvaWQgUmVuZGVyQm94OjpzdHlsZURp
ZENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxl
KQpAQCAtMzE0LDkgKzMyMCw3IEBAIHZvaWQgUmVuZGVyQm94OjpzdHlsZURpZENoYW5nZShTdHls
ZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlCiAgICAgdXBkYXRl
RXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mb0FmdGVyU3R5bGVDaGFuZ2Uoc3R5bGUoKS0+c2hhcGVP
dXRzaWRlKCksIG9sZFN0eWxlID8gb2xkU3R5bGUtPnNoYXBlT3V0c2lkZSgpIDogMCk7CiAjZW5k
aWYKIAotICAgIGlmIChvbGRTdHlsZSAmJiAobmV3U3R5bGUtPmJveFNpemluZygpID09IEJPUkRF
Ul9CT1ggfHwgb2xkU3R5bGUtPmJveFNpemluZygpID09IEJPUkRFUl9CT1gpICYmIGRpZmYgPT0g
U3R5bGVEaWZmZXJlbmNlTGF5b3V0Ci0gICAgICAgICYmIChuZXdTdHlsZS0+cGFkZGluZ0JveCgp
ICE9IG9sZFN0eWxlLT5wYWRkaW5nQm94KCkgfHwgYm9yZGVyV2lkdGhDaGFuZ2VkKG9sZFN0eWxl
LCBuZXdTdHlsZSkpKSB7Ci0gICAgICAgIEFTU0VSVChuZWVkc0xheW91dCgpKTsKKyAgICBpZiAo
b2xkU3R5bGUgJiYgZGlmZiA9PSBTdHlsZURpZmZlcmVuY2VMYXlvdXQgJiYgbmVlZHNMYXlvdXQo
KSAmJiBib3JkZXJPclBhZGRpbmdMb2dpY2FsV2lkdGhDaGFuZ2VkKG9sZFN0eWxlLCBuZXdTdHls
ZSkpIHsKICAgICAgICAgZm9yIChSZW5kZXJPYmplY3QqIGNoaWxkID0gZmlyc3RDaGlsZCgpOyBj
aGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkKICAgICAgICAgICAgIGNoaWxkLT5z
ZXRDaGlsZE5lZWRzTGF5b3V0KHRydWUsIE1hcmtPbmx5VGhpcyk7CiAgICAgfQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDYx
NzdjMmUyZDBhMDhiYjQxOGRjNDBhNzc4M2JjZGRlNmRlMDk0YjUuLmQ3ODhmM2QxYmQwOTg0ODNi
MDIxNWIwYjhhOWE2MjI0N2RkZmU3YjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMy0wMi0x
NSAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFBhZGRpbmcgYW5k
IGJvcmRlciBjaGFuZ2VzIGRvZXNuJ3QgdHJpZ2dlciByZWxheW91dCBvZiBjaGlsZHJlbgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NjM5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2Jsb2Nr
L2R5bmFtaWMtcGFkZGluZy1ib3JkZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2Jsb2NrL2R5bmFtaWMtcGFkZGluZy1ib3JkZXIuaHRtbDogQWRkZWQuCisgICAgICAgICog
ZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLXJvdy1ib3JkZXItd2lk
dGgtZXhwZWN0ZWQudHh0OiBXZSBzaG91bGQgaGF2ZSBiZWVuIHJlbGF5aW5nCisgICAgICAgIG91
dCB0aGUgdGFibGUgd2hlbiB0aGUgYm9yZGVyIGNoYW5nZWQuIFRoZSBwaXhlbCByZXN1bHRzIGlu
IHRoaXMgY2FzZSBpcyB0aGUgc2FtZSwgYnV0IHRoZQorICAgICAgICByZW5kZXIgdHJlZSBzaG93
cyB0aGUgZGlmZmVyZW5jZS4KKwogMjAxMy0wMi0xNSAgU3VkYXJzYW5hIE5hZ2luZW5pICA8c3Vk
YXJzYW5hLm5hZ2luZW5pQGludGVsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIEVGTCBnYXJk
ZW5pbmcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL2R5bmFtaWMtcGFkZGlu
Zy1ib3JkZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9keW5hbWljLXBh
ZGRpbmctYm9yZGVyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZmExYjUxZDhjZWQ5NTVhYjMz
MWU2NGExYTk3NDNlNzlmYTM3Y2UyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9ibG9jay9keW5hbWljLXBhZGRpbmctYm9yZGVyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYg
QEAKK1RoaXMgdGVzdCBwYXNzZXMgaWYgdGhlcmUgaXMgbm8gcmVkIHNob3dpbmcuCisKK1BBU1MK
K1BBU1MKK1BBU1MKK1BBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvYmxvY2svZHlu
YW1pYy1wYWRkaW5nLWJvcmRlci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9keW5hbWlj
LXBhZGRpbmctYm9yZGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWZlY2M0Nzc2MTkwN2FiZTZmMDcwYzBm
ZDVjNTZlNzdjYTc1NzU5MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvYmxv
Y2svZHluYW1pYy1wYWRkaW5nLWJvcmRlci5odG1sCkBAIC0wLDAgKzEsNTAgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKy5yZWQgeworICAgIGJhY2tncm91bmQt
Y29sb3I6IHJlZDsKK30KKy5ncmVlbiB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47Cit9
Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgcGFzc2VzIGlmIHRoZXJl
IGlzIG5vIHJlZCBzaG93aW5nLjwvcD4KKworPGRpdiBjbGFzcz0iY29udGFpbmVyIiBzdHlsZT0i
d2lkdGg6IDEwMHB4Ij4KKyAgICA8ZGl2IGlkPSJ0ZXN0MSIgY2xhc3M9InJlZCIgc3R5bGU9InBh
ZGRpbmctbGVmdDogNTBweCIgZGF0YS1leHBlY3RlZC13aWR0aD0iMTAwIj4KKyAgICAgICAgPGRp
diBjbGFzcz0iZ3JlZW4iIHN0eWxlPSJoZWlnaHQ6IDIwcHgiIGRhdGEtZXhwZWN0ZWQtd2lkdGg9
IjEwMCI+PC9kaXY+CisgICAgPC9kaXY+Cis8L2Rpdj4KKworPGRpdiBjbGFzcz0iY29udGFpbmVy
IiBzdHlsZT0iLXdlYmtpdC13cml0aW5nLW1vZGU6IHZlcnRpY2FsLXJsOyBoZWlnaHQ6IDEwMHB4
Ij4KKyAgICA8ZGl2IGlkPSJ0ZXN0MiIgY2xhc3M9InJlZCIgc3R5bGU9InBhZGRpbmctdG9wOiA1
MHB4IiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iMTAwIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iZ3Jl
ZW4iIHN0eWxlPSJ3aWR0aDogMjBweCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjEwMCI+PC9kaXY+
CisgICAgPC9kaXY+Cis8L2Rpdj4KKworPGRpdiBjbGFzcz0iY29udGFpbmVyIiBzdHlsZT0id2lk
dGg6IDEwMHB4OyAtd2Via2l0LXdyaXRpbmctbW9kZTogaG9yaXpvbnRhbC1idDsiPgorICAgIDxk
aXYgaWQ9InRlc3QzIiBjbGFzcz0icmVkIiBzdHlsZT0iYm9yZGVyLWxlZnQ6IDUwcHggc29saWQg
cmVkIiBkYXRhLWV4cGVjdGVkLXdpZHRoPSIxMDAiPgorICAgICAgICA8ZGl2IGNsYXNzPSJncmVl
biIgc3R5bGU9ImhlaWdodDogMjBweCIgZGF0YS1leHBlY3RlZC13aWR0aD0iMTAwIj48L2Rpdj4K
KyAgICA8L2Rpdj4KKzwvZGl2PgorCis8ZGl2IGNsYXNzPSJjb250YWluZXIiIHN0eWxlPSItd2Vi
a2l0LXdyaXRpbmctbW9kZTogdmVydGljYWwtbHI7IGhlaWdodDogMTAwcHgiPgorICAgIDxkaXYg
aWQ9InRlc3Q0IiBjbGFzcz0icmVkIiBzdHlsZT0iYm9yZGVyLXRvcDogNTBweCBzb2xpZCByZWQi
IGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PSIxMDAiPgorICAgICAgICA8ZGl2IGNsYXNzPSJncmVlbiIg
c3R5bGU9IndpZHRoOiAyMHB4IiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iMTAwIj48L2Rpdj4KKyAg
ICA8L2Rpdj4KKzwvZGl2PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2NoZWNrLWxh
eW91dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZG9jdW1lbnQuYm9keS5vZmZzZXRMZWZ0Owor
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QxIikuc3R5bGUucGFkZGluZ0xlZnQgPSAiMCI7
Citkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdDIiKS5zdHlsZS5wYWRkaW5nVG9wID0gIjAi
OworZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QzIikuc3R5bGUuYm9yZGVyV2lkdGggPSAi
MCI7Citkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdDQiKS5zdHlsZS5ib3JkZXJXaWR0aCA9
ICIwIjsKK2NoZWNrTGF5b3V0KCIuY29udGFpbmVyIik7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNp
bmcvY2FjaGVkLWNoYW5nZS1yb3ctYm9yZGVyLXdpZHRoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvdGFibGUvYm9yZGVyLWNvbGxhcHNpbmcvY2FjaGVkLWNoYW5nZS1yb3ctYm9yZGVy
LXdpZHRoLWV4cGVjdGVkLnR4dAppbmRleCBhZjcyM2M2Y2MxOTdkY2MyZTNiMzBmZWE4YjRkODEx
YjAwZjFiZjkzLi5lYzI1NDc3NmNmNTgwNjdkZWMyMjQxZTZkNDYwNzNmZTFkYTAzY2JlIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3RhYmxlL2JvcmRlci1jb2xsYXBzaW5nL2NhY2hlZC1j
aGFuZ2Utcm93LWJvcmRlci13aWR0aC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jYWNoZWQtY2hhbmdlLXJvdy1ib3JkZXItd2lkdGgt
ZXhwZWN0ZWQudHh0CkBAIC02LDYgKzYsNiBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAK
ICAgICAgIFJlbmRlclRhYmxlIHtUQUJMRX0gYXQgKDAsMCkgc2l6ZSA1NngxMDMgW2JvcmRlcjog
KDJweCBzb2xpZCAjMDAwMEZGKV0KICAgICAgICAgUmVuZGVyVGFibGVTZWN0aW9uIHtUQk9EWX0g
YXQgKDEsMikgc2l6ZSA1NHgxMDAKICAgICAgICAgICBSZW5kZXJUYWJsZVJvdyB7VFJ9IGF0ICgw
LDApIHNpemUgNTR4NTAgW2JvcmRlcjogKDRweCBzb2xpZCAjRkZGRjAwKV0KLSAgICAgICAgICAg
IFJlbmRlclRhYmxlQ2VsbCB7VER9IGF0ICgwLDIzKSBzaXplIDU0eDQgW2JvcmRlcjogKDJweCBz
b2xpZCAjMDBGRjAwKV0gW3I9MCBjPTAgcnM9MSBjcz0xXQorICAgICAgICAgICAgUmVuZGVyVGFi
bGVDZWxsIHtURH0gYXQgKDAsMjIpIHNpemUgNTR4NiBbYm9yZGVyOiAoMnB4IHNvbGlkICMwMEZG
MDApXSBbcj0wIGM9MCBycz0xIGNzPTFdCiAgICAgICAgICAgUmVuZGVyVGFibGVSb3cge1RSfSBh
dCAoMCw1MCkgc2l6ZSA1NHg1MAogICAgICAgICAgICAgUmVuZGVyVGFibGVDZWxsIHtURH0gYXQg
KDAsNzMpIHNpemUgNTR4MyBbYm9yZGVyOiAoMnB4IG5vbmUgIzAwMDAwMCldIFtyPTEgYz0wIHJz
PTEgY3M9MV0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188940</attachid>
            <date>2013-02-18 14:07:16 -0800</date>
            <delta_ts>2013-02-18 14:10:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>10113</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0MzI2MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQzIEBACisyMDEzLTAyLTE4ICBEYXZpZCBI
eWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KKworICAgICAgICBQYWRkaW5nIGFuZCBib3JkZXIgY2hh
bmdlcyBkb24ndCB0cmlnZ2VyIHRoZSByZWxheW91dCBvZiBjaGlsZHJlbiBpbiBzb21lIGNhc2Vz
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NjM5
LgorCisgICAgICAgIFRoZSBmaXggZm9yIHRoaXMgYnVnIHdhcyB3YXkgdG9vIGdlbmVyYWwgYW5k
IGludm9sdmVkIHB1dHRpbmcgY29kZSBpbnRvIFJlbmRlckJveC4gU2luY2UKKyAgICAgICAgUmVu
ZGVyQm94IG1ha2VzIG5vIGFzc3VtcHRpb25zIGFib3V0IHdoYXQga2luZCBvZiBsYXlvdXQgc3lz
dGVtIG1pZ2h0IGRlcml2ZSBmcm9tIGl0LCBpdAorICAgICAgICB3YXMgaW5jb3JyZWN0IHRvIGp1
c3QgbWFyayBhbGwgY2hpbGRyZW4gYXMgbmVlZGluZyBsYXlvdXQgd2hlbmV2ZXIgYm9yZGVycyBh
bmQgcGFkZGluZworICAgICAgICBjaGFuZ2VkIHdpZHRocy4KKyAgICAgICAgCisgICAgICAgIFRo
aXMgcGF0Y2ggdGFrZXMgdGhlIHR3byBjYXNlcyBoYW5kbGVkIGJ5IHRoZSBvcmlnaW5hbCBjb2Rl
IGFuZCBtYWtlcyB0aGVtIG1vcmUKKyAgICAgICAgc3BlY2lhbGl6ZWQgZG93biBpbiBzdWJjbGFz
c2VzLCBpLmUuLCBSZW5kZXJCbG9jayBhbmQgUmVuZGVyVGFibGVSb3cuIFJlbmRlckJsb2NrIGhh
cworICAgICAgICBiZWVuIHJlZmluZWQgdG8gb25seSBjaGVjayBpZiBjaGlsZHJlbiBhcmVuJ3Qg
aW5saW5lIGFuZCB0byBhbHNvIG5vdCBpbnZhbGlkYXRlCisgICAgICAgIGZsb2F0cyBvciBpcnJl
bGV2YW50IHBvc2l0aW9uZWQgb2JqZWN0cyB0aGF0IG1pZ2h0IG5vdCBldmVuIGhhdmUgdGhpcyBi
bG9jayBhcyB0aGVpcgorICAgICAgICBjb250YWluaW5nIGJsb2NrLgorICAgICAgICAKKyAgICAg
ICAgVGhlIFJlbmRlclRhYmxlUm93IGNvZGUgaXMgc3BlY2lhbGl6ZWQgdG8gb25seSBjYXJlIGFi
b3V0IGNvbGxhcHNpbmcgYm9yZGVycyBhbmQKKyAgICAgICAgdG8gb25seSBjaGVjayBib3JkZXJz
IHJhdGhlciB0aGFuIHBhZGRpbmcuIEl0IGFsc28gcmVxdWlyZXMgdGhhdCBhIGNoaWxkIGJlIGEg
Y2VsbAorICAgICAgICBpbiBvcmRlciB0byBkbyB0aGUgaW52YWxpZGF0aW9uLgorICAgICAgICAK
KyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cywgc2luY2UgdGhpcyBpcyBqdXN0IHNw
ZWNpYWxpemluZyB0aGUgY29kZSB0byBtb3JlIHByZWNpc2VseQorICAgICAgICBjb3ZlciB0aGUg
dGVzdCBjYXNlcyB0aGF0IGhhdmUgYWxyZWFkeSBiZWVuIHdyaXR0ZW4uCisKKyAgICAgICAgTG9u
Z2VyIHRlcm0sIGl0IHNob3VsZCBiZSBsYXlvdXQgY29kZSB0aGF0IGZpZ3VyZXMgdGhpcyBzdHVm
ZiBvdXQgcmF0aGVyIHRoYW4gc3R5bGUKKyAgICAgICAgY2hhbmdlIGNvZGUsIGJ1dCB0aGF0IGlu
dm9sdmVzIG1vcmUgZHJhbWF0aWMgY2hhbmdlcyB0aGF0IGNhbiB3YWl0LgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJs
b2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmJvcmRlck9yUGFkZGluZ0xvZ2ljYWxXaWR0aENo
YW5nZWQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9j
azo6c3R5bGVEaWRDaGFuZ2UpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnN0eWxlRGlk
Q2hhbmdlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGVSb3cuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Ym9yZGVyTG9naWNhbFdpZHRoQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlUm93OjpzdHlsZURpZENoYW5nZSk6CisK
IDIwMTMtMDItMTggIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAg
RU1FOiBBZGQgYSBDRE1Qcml2YXRlIGltcGxlbWVudGF0aW9uIHVzaW5nIEFWRm91bmRhdGlvbi4K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAkocmV2aXNpb24g
MTQzMjU2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzM3LDE0ICszMzcsMzAgQEAgdm9pZCBSZW5kZXJCbG9jazo6c3R5bGVX
aWxsQ2hhbmdlKFN0eWxlRAogICAgIFJlbmRlckJveDo6c3R5bGVXaWxsQ2hhbmdlKGRpZmYsIG5l
d1N0eWxlKTsKIH0KIAorc3RhdGljIGJvb2wgYm9yZGVyT3JQYWRkaW5nTG9naWNhbFdpZHRoQ2hh
bmdlZChjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUsIGNvbnN0IFJlbmRlclN0eWxlKiBuZXdT
dHlsZSkKK3sKKyAgICBpZiAobmV3U3R5bGUtPmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCisg
ICAgICAgIHJldHVybiBvbGRTdHlsZS0+Ym9yZGVyTGVmdFdpZHRoKCkgIT0gbmV3U3R5bGUtPmJv
cmRlckxlZnRXaWR0aCgpCisgICAgICAgICAgICB8fCBvbGRTdHlsZS0+Ym9yZGVyUmlnaHRXaWR0
aCgpICE9IG5ld1N0eWxlLT5ib3JkZXJSaWdodFdpZHRoKCkKKyAgICAgICAgICAgIHx8IG9sZFN0
eWxlLT5wYWRkaW5nTGVmdCgpICE9IG5ld1N0eWxlLT5wYWRkaW5nTGVmdCgpCisgICAgICAgICAg
ICB8fCBvbGRTdHlsZS0+cGFkZGluZ1JpZ2h0KCkgIT0gbmV3U3R5bGUtPnBhZGRpbmdSaWdodCgp
OworCisgICAgcmV0dXJuIG9sZFN0eWxlLT5ib3JkZXJUb3BXaWR0aCgpICE9IG5ld1N0eWxlLT5i
b3JkZXJUb3BXaWR0aCgpCisgICAgICAgIHx8IG9sZFN0eWxlLT5ib3JkZXJCb3R0b21XaWR0aCgp
ICE9IG5ld1N0eWxlLT5ib3JkZXJCb3R0b21XaWR0aCgpCisgICAgICAgIHx8IG9sZFN0eWxlLT5w
YWRkaW5nVG9wKCkgIT0gbmV3U3R5bGUtPnBhZGRpbmdUb3AoKQorICAgICAgICB8fCBvbGRTdHls
ZS0+cGFkZGluZ0JvdHRvbSgpICE9IG5ld1N0eWxlLT5wYWRkaW5nQm90dG9tKCk7Cit9CisKIHZv
aWQgUmVuZGVyQmxvY2s6OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25z
dCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpCiB7CiAgICAgUmVuZGVyQm94OjpzdHlsZURpZENoYW5n
ZShkaWZmLCBvbGRTdHlsZSk7Ci0KKyAgICAKKyAgICBSZW5kZXJTdHlsZSogbmV3U3R5bGUgPSBz
dHlsZSgpOworICAgIAogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKICAgICAvLyBGSVhNRTog
QnVnIDg5OTkzOiBTdHlsZSBjaGFuZ2VzIHNob3VsZCBhZmZlY3QgdGhlIEV4Y2x1c2lvblNoYXBl
SW5zaWRlSW5mb3MgZm9yIG90aGVyIHJlbmRlciBibG9ja3MgdGhhdAogICAgIC8vIHNoYXJlIHRo
ZSBzYW1lIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbwotICAgIHVwZGF0ZUV4Y2x1c2lvblNoYXBl
SW5zaWRlSW5mb0FmdGVyU3R5bGVDaGFuZ2Uoc3R5bGUoKS0+cmVzb2x2ZWRTaGFwZUluc2lkZSgp
LCBvbGRTdHlsZSA/IG9sZFN0eWxlLT5yZXNvbHZlZFNoYXBlSW5zaWRlKCkgOiAwKTsKKyAgICB1
cGRhdGVFeGNsdXNpb25TaGFwZUluc2lkZUluZm9BZnRlclN0eWxlQ2hhbmdlKG5ld1N0eWxlLT5y
ZXNvbHZlZFNoYXBlSW5zaWRlKCksIG9sZFN0eWxlID8gb2xkU3R5bGUtPnJlc29sdmVkU2hhcGVJ
bnNpZGUoKSA6IDApOwogI2VuZGlmCiAKICAgICBpZiAoIWlzQW5vbnltb3VzQmxvY2soKSkgewpA
QCAtMzUyLDcgKzM2OCw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OnN0eWxlRGlkQ2hhbmdlKFN0eWxl
RGkKICAgICAgICAgZm9yIChSZW5kZXJCbG9jayogY3VyckNvbnQgPSBibG9ja0VsZW1lbnRDb250
aW51YXRpb24oKTsgY3VyckNvbnQ7IGN1cnJDb250ID0gY3VyckNvbnQtPmJsb2NrRWxlbWVudENv
bnRpbnVhdGlvbigpKSB7CiAgICAgICAgICAgICBSZW5kZXJCb3hNb2RlbE9iamVjdCogbmV4dENv
bnQgPSBjdXJyQ29udC0+Y29udGludWF0aW9uKCk7CiAgICAgICAgICAgICBjdXJyQ29udC0+c2V0
Q29udGludWF0aW9uKDApOwotICAgICAgICAgICAgY3VyckNvbnQtPnNldFN0eWxlKHN0eWxlKCkp
OworICAgICAgICAgICAgY3VyckNvbnQtPnNldFN0eWxlKG5ld1N0eWxlKTsKICAgICAgICAgICAg
IGN1cnJDb250LT5zZXRDb250aW51YXRpb24obmV4dENvbnQpOwogICAgICAgICB9CiAgICAgfQpA
QCAtMzg5LDYgKzQwNSwzMSBAQCB2b2lkIFJlbmRlckJsb2NrOjpzdHlsZURpZENoYW5nZShTdHls
ZURpCiAgICAgICAgIHBhcmVudEJsb2NrLT5tYXJrQWxsRGVzY2VuZGFudHNXaXRoRmxvYXRzRm9y
TGF5b3V0KCk7CiAgICAgICAgIHBhcmVudEJsb2NrLT5tYXJrU2libGluZ3NXaXRoRmxvYXRzRm9y
TGF5b3V0KCk7CiAgICAgfQorICAgIAorICAgIC8vIEl0J3MgcG9zc2libGUgZm9yIG91ciBib3Jk
ZXIvcGFkZGluZyB0byBjaGFuZ2UsIGJ1dCBmb3IgdGhlIG92ZXJhbGwgbG9naWNhbCB3aWR0aCBv
ZiB0aGUgYmxvY2sgdG8KKyAgICAvLyBlbmQgdXAgYmVpbmcgdGhlIHNhbWUuIFdoZW4gdGhpcyBo
YXBwZW5zLCB3ZSB3b24ndCB1bmRlcnN0YW5kIHRvIHNldCB8cmVsYXlvdXRDaGlsZHJlbnwgdG8g
dHJ1ZQorICAgIC8vIGluIGxheW91dEJsb2NrLiBMb25nZXItdGVybSwgd2Ugc2hvdWxkIGJlIGZp
Z3VyaW5nIHRoaXMgc3R1ZmYgb3V0IG92ZXIgaW4gbGF5b3V0QmxvY2ssIHNpbmNlCisgICAgLy8g
d2UgbmVlZCB0byBiZSBhYmxlIHRvIGhhbmRsZSB0aGUgc2FtZSBzaXR1YXRpb24gaW4gUmVuZGVy
UmVnaW9ucyB3aGVuIHdlIGhhdmUgZGlzdGluY3QgYm9yZGVycyBpbgorICAgIC8vIHRob3NlIHJl
Z2lvbnMuIEZvciBub3csIHRob3VnaCwgd2UganVzdCBtYXJrIHRoZSBjaGlsZHJlbiBmb3IgcmVs
YXlvdXQgcmlnaHQgaGVyZS4KKyAgICBpZiAob2xkU3R5bGUgJiYgZGlmZiA9PSBTdHlsZURpZmZl
cmVuY2VMYXlvdXQgJiYgbmVlZHNMYXlvdXQoKSAmJiBib3JkZXJPclBhZGRpbmdMb2dpY2FsV2lk
dGhDaGFuZ2VkKG9sZFN0eWxlLCBuZXdTdHlsZSkgJiYgIWNoaWxkcmVuSW5saW5lKCkpIHsKKyAg
ICAgICAgLy8gRmlyc3Qgd2FsayBvdXIgbm9ybWFsIGZsb3cgb2JqZWN0cyBhbmQgc2VlIGlmIHRo
ZXJlIGlzIGFueSBjaGFuZ2UuCisgICAgICAgIGZvciAoUmVuZGVyQm94KiBjaGlsZEJveCA9IGZp
cnN0Q2hpbGRCb3goKTsgY2hpbGRCb3g7IGNoaWxkQm94ID0gY2hpbGRCb3gtPm5leHRTaWJsaW5n
Qm94KCkpIHsKKyAgICAgICAgICAgIGlmIChjaGlsZEJveC0+aXNGbG9hdGluZ09yT3V0T2ZGbG93
UG9zaXRpb25lZCgpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgY2hp
bGRCb3gtPnNldENoaWxkTmVlZHNMYXlvdXQodHJ1ZSwgTWFya09ubHlUaGlzKTsKKyAgICAgICAg
fQorICAgICAgICAKKyAgICAgICAgLy8gTm93IHdhbGsgdGhlIHBvc2l0aW9uZWQgb2JqZWN0cyBm
b3Igd2hpY2ggd2UgYXJlIHRoZSBjb250YWluaW5nIGJsb2NrLgorICAgICAgICBUcmFja2VkUmVu
ZGVyZXJMaXN0SGFzaFNldCogcG9zaXRpb25lZERlc2NlbmRhbnRzID0gcG9zaXRpb25lZE9iamVj
dHMoKTsKKyAgICAgICAgaWYgKHBvc2l0aW9uZWREZXNjZW5kYW50cykgeworICAgICAgICAgICAg
UmVuZGVyQm94KiBwb3NpdGlvbmVkQm94OworICAgICAgICAgICAgVHJhY2tlZFJlbmRlcmVyTGlz
dEhhc2hTZXQ6Oml0ZXJhdG9yIGVuZCA9IHBvc2l0aW9uZWREZXNjZW5kYW50cy0+ZW5kKCk7Cisg
ICAgICAgICAgICBmb3IgKFRyYWNrZWRSZW5kZXJlckxpc3RIYXNoU2V0OjppdGVyYXRvciBpdCA9
IHBvc2l0aW9uZWREZXNjZW5kYW50cy0+YmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7CisgICAg
ICAgICAgICAgICAgcG9zaXRpb25lZEJveCA9ICppdDsKKyAgICAgICAgICAgICAgICBwb3NpdGlv
bmVkQm94LT5zZXRDaGlsZE5lZWRzTGF5b3V0KHRydWUsIE1hcmtPbmx5VGhpcyk7CisgICAgICAg
ICAgICB9CisgICAgICAgIH0KKyAgICB9CiB9CiAKIFJlbmRlckJsb2NrKiBSZW5kZXJCbG9jazo6
Y29udGludWF0aW9uQmVmb3JlKFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQpCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAkocmV2aXNpb24gMTQzMjQyKQorKysgU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIz
MiwyMCArMjMyLDYgQEAgdm9pZCBSZW5kZXJCb3g6OnN0eWxlV2lsbENoYW5nZShTdHlsZURpZgog
ICAgIFJlbmRlckJveE1vZGVsT2JqZWN0OjpzdHlsZVdpbGxDaGFuZ2UoZGlmZiwgbmV3U3R5bGUp
OwogfQogCi1zdGF0aWMgYm9vbCBib3JkZXJPclBhZGRpbmdMb2dpY2FsV2lkdGhDaGFuZ2VkKGNv
bnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSwgY29uc3QgUmVuZGVyU3R5bGUqIG5ld1N0eWxlKQot
ewotICAgIGlmIChuZXdTdHlsZS0+aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkKLSAgICAgICAg
cmV0dXJuIG9sZFN0eWxlLT5ib3JkZXJMZWZ0V2lkdGgoKSAhPSBuZXdTdHlsZS0+Ym9yZGVyTGVm
dFdpZHRoKCkKLSAgICAgICAgICAgIHx8IG9sZFN0eWxlLT5ib3JkZXJSaWdodFdpZHRoKCkgIT0g
bmV3U3R5bGUtPmJvcmRlclJpZ2h0V2lkdGgoKQotICAgICAgICAgICAgfHwgb2xkU3R5bGUtPnBh
ZGRpbmdMZWZ0KCkgIT0gbmV3U3R5bGUtPnBhZGRpbmdMZWZ0KCkKLSAgICAgICAgICAgIHx8IG9s
ZFN0eWxlLT5wYWRkaW5nUmlnaHQoKSAhPSBuZXdTdHlsZS0+cGFkZGluZ1JpZ2h0KCk7Ci0KLSAg
ICByZXR1cm4gb2xkU3R5bGUtPmJvcmRlclRvcFdpZHRoKCkgIT0gbmV3U3R5bGUtPmJvcmRlclRv
cFdpZHRoKCkKLSAgICAgICAgfHwgb2xkU3R5bGUtPmJvcmRlckJvdHRvbVdpZHRoKCkgIT0gbmV3
U3R5bGUtPmJvcmRlckJvdHRvbVdpZHRoKCkKLSAgICAgICAgfHwgb2xkU3R5bGUtPnBhZGRpbmdU
b3AoKSAhPSBuZXdTdHlsZS0+cGFkZGluZ1RvcCgpCi0gICAgICAgIHx8IG9sZFN0eWxlLT5wYWRk
aW5nQm90dG9tKCkgIT0gbmV3U3R5bGUtPnBhZGRpbmdCb3R0b20oKTsKLX0KLQogdm9pZCBSZW5k
ZXJCb3g6OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJT
dHlsZSogb2xkU3R5bGUpCiB7CiAgICAgLy8gSG9yaXpvbnRhbCB3cml0aW5nIG1vZGUgZGVmaW5p
dGlvbiBpcyB1cGRhdGVkIGluIFJlbmRlckJveE1vZGVsT2JqZWN0Ojp1cGRhdGVGcm9tU3R5bGUs
CkBAIC0zMTksMTEgKzMwNSw2IEBAIHZvaWQgUmVuZGVyQm94OjpzdHlsZURpZENoYW5nZShTdHls
ZURpZmYKICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCiAgICAgdXBkYXRlRXhjbHVzaW9uU2hh
cGVPdXRzaWRlSW5mb0FmdGVyU3R5bGVDaGFuZ2Uoc3R5bGUoKS0+c2hhcGVPdXRzaWRlKCksIG9s
ZFN0eWxlID8gb2xkU3R5bGUtPnNoYXBlT3V0c2lkZSgpIDogMCk7CiAjZW5kaWYKLQotICAgIGlm
IChvbGRTdHlsZSAmJiBkaWZmID09IFN0eWxlRGlmZmVyZW5jZUxheW91dCAmJiBuZWVkc0xheW91
dCgpICYmIGJvcmRlck9yUGFkZGluZ0xvZ2ljYWxXaWR0aENoYW5nZWQob2xkU3R5bGUsIG5ld1N0
eWxlKSkgewotICAgICAgICBmb3IgKFJlbmRlck9iamVjdCogY2hpbGQgPSBmaXJzdENoaWxkKCk7
IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKQotICAgICAgICAgICAgY2hpbGQt
PnNldENoaWxkTmVlZHNMYXlvdXQodHJ1ZSwgTWFya09ubHlUaGlzKTsKLSAgICB9CiB9CiAKICNp
ZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGFibGVSb3cuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUYWJsZVJvdy5jcHAJKHJldmlzaW9uIDE0MzI0MikKKysrIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUYWJsZVJvdy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU0LDYgKzU0
LDE2IEBAIHZvaWQgUmVuZGVyVGFibGVSb3c6OndpbGxCZVJlbW92ZWRGcm9tVHIKICAgICBzZWN0
aW9uKCktPnNldE5lZWRzQ2VsbFJlY2FsYygpOwogfQogCitzdGF0aWMgYm9vbCBib3JkZXJMb2dp
Y2FsV2lkdGhDaGFuZ2VkKGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSwgY29uc3QgUmVuZGVy
U3R5bGUqIG5ld1N0eWxlKQoreworICAgIGlmIChuZXdTdHlsZS0+aXNIb3Jpem9udGFsV3JpdGlu
Z01vZGUoKSkKKyAgICAgICAgcmV0dXJuIG9sZFN0eWxlLT5ib3JkZXJMZWZ0V2lkdGgoKSAhPSBu
ZXdTdHlsZS0+Ym9yZGVyTGVmdFdpZHRoKCkKKyAgICAgICAgICAgIHx8IG9sZFN0eWxlLT5ib3Jk
ZXJSaWdodFdpZHRoKCkgIT0gbmV3U3R5bGUtPmJvcmRlclJpZ2h0V2lkdGgoKTsKKworICAgIHJl
dHVybiBvbGRTdHlsZS0+Ym9yZGVyVG9wV2lkdGgoKSAhPSBuZXdTdHlsZS0+Ym9yZGVyVG9wV2lk
dGgoKQorICAgICAgICB8fCBvbGRTdHlsZS0+Ym9yZGVyQm90dG9tV2lkdGgoKSAhPSBuZXdTdHls
ZS0+Ym9yZGVyQm90dG9tV2lkdGgoKTsKK30KKwogdm9pZCBSZW5kZXJUYWJsZVJvdzo6c3R5bGVE
aWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHls
ZSkKIHsKICAgICBBU1NFUlQoc3R5bGUoKS0+ZGlzcGxheSgpID09IFRBQkxFX1JPVyk7CkBAIC02
OSw2ICs3OSwxNyBAQCB2b2lkIFJlbmRlclRhYmxlUm93OjpzdHlsZURpZENoYW5nZShTdHlsCiAg
ICAgICAgIFJlbmRlclRhYmxlKiB0YWJsZSA9IHRoaXMtPnRhYmxlKCk7CiAgICAgICAgIGlmICh0
YWJsZSAmJiAhdGFibGUtPnNlbGZOZWVkc0xheW91dCgpICYmICF0YWJsZS0+bm9ybWFsQ2hpbGRO
ZWVkc0xheW91dCgpICYmIG9sZFN0eWxlICYmIG9sZFN0eWxlLT5ib3JkZXIoKSAhPSBzdHlsZSgp
LT5ib3JkZXIoKSkKICAgICAgICAgICAgIHRhYmxlLT5pbnZhbGlkYXRlQ29sbGFwc2VkQm9yZGVy
cygpOworICAgICAgICAKKyAgICAgICAgaWYgKGRpZmYgPT0gU3R5bGVEaWZmZXJlbmNlTGF5b3V0
ICYmIG5lZWRzTGF5b3V0KCkgJiYgdGFibGUtPmNvbGxhcHNlQm9yZGVycygpICYmIGJvcmRlckxv
Z2ljYWxXaWR0aENoYW5nZWQob2xkU3R5bGUsIHN0eWxlKCkpKSB7CisgICAgICAgICAgICAvLyBJ
ZiB0aGUgYm9yZGVyIHdpZHRoIGNoYW5nZXMgb24gYSByb3csIHdlIG5lZWQgdG8gbWFrZSBzdXJl
IHRoZSBjZWxscyBpbiB0aGUgcm93IGtub3cgdG8gbGF5IG91dCBhZ2Fpbi4KKyAgICAgICAgICAg
IC8vIFRoaXMgb25seSBoYXBwZW5zIHdoZW4gYm9yZGVycyBhcmUgY29sbGFwc2VkLCBzaW5jZSB0
aGV5IGVuZCB1cCBhZmZlY3RpbmcgdGhlIGJvcmRlciBzaWRlcyBvZiB0aGUgY2VsbAorICAgICAg
ICAgICAgLy8gaXRzZWxmLgorICAgICAgICAgICAgZm9yIChSZW5kZXJCb3gqIGNoaWxkQm94ID0g
Zmlyc3RDaGlsZEJveCgpOyBjaGlsZEJveDsgY2hpbGRCb3ggPSBjaGlsZEJveC0+bmV4dFNpYmxp
bmdCb3goKSkgeworICAgICAgICAgICAgICAgIGlmICghY2hpbGRCb3gtPmlzVGFibGVDZWxsKCkp
CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIGNoaWxkQm94
LT5zZXRDaGlsZE5lZWRzTGF5b3V0KHRydWUsIE1hcmtPbmx5VGhpcyk7CisgICAgICAgICAgICB9
CisgICAgICAgIH0KICAgICB9CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188941</attachid>
            <date>2013-02-18 14:10:44 -0800</date>
            <delta_ts>2013-02-18 15:39:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>10134</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0MzI2MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQzIEBACisyMDEzLTAyLTE4ICBEYXZpZCBI
eWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KKworICAgICAgICBQYWRkaW5nIGFuZCBib3JkZXIgY2hh
bmdlcyBkb24ndCB0cmlnZ2VyIHRoZSByZWxheW91dCBvZiBjaGlsZHJlbiBpbiBzb21lIGNhc2Vz
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NjM5
LgorCisgICAgICAgIFRoZSBmaXggZm9yIHRoaXMgYnVnIHdhcyB3YXkgdG9vIGdlbmVyYWwgYW5k
IGludm9sdmVkIHB1dHRpbmcgY29kZSBpbnRvIFJlbmRlckJveC4gU2luY2UKKyAgICAgICAgUmVu
ZGVyQm94IG1ha2VzIG5vIGFzc3VtcHRpb25zIGFib3V0IHdoYXQga2luZCBvZiBsYXlvdXQgc3lz
dGVtIG1pZ2h0IGRlcml2ZSBmcm9tIGl0LCBpdAorICAgICAgICB3YXMgaW5jb3JyZWN0IHRvIGp1
c3QgbWFyayBhbGwgY2hpbGRyZW4gYXMgbmVlZGluZyBsYXlvdXQgd2hlbmV2ZXIgYm9yZGVycyBh
bmQgcGFkZGluZworICAgICAgICBjaGFuZ2VkIHdpZHRocy4KKyAgICAgICAgCisgICAgICAgIFRo
aXMgcGF0Y2ggdGFrZXMgdGhlIHR3byBjYXNlcyBoYW5kbGVkIGJ5IHRoZSBvcmlnaW5hbCBjb2Rl
IGFuZCBtYWtlcyB0aGVtIG1vcmUKKyAgICAgICAgc3BlY2lhbGl6ZWQgZG93biBpbiBzdWJjbGFz
c2VzLCBpLmUuLCBSZW5kZXJCbG9jayBhbmQgUmVuZGVyVGFibGVSb3cuIFJlbmRlckJsb2NrIGhh
cworICAgICAgICBiZWVuIHJlZmluZWQgdG8gb25seSBjaGVjayBpZiBjaGlsZHJlbiBhcmVuJ3Qg
aW5saW5lIGFuZCB0byBhbHNvIG5vdCBpbnZhbGlkYXRlCisgICAgICAgIGZsb2F0cyBvciBpcnJl
bGV2YW50IHBvc2l0aW9uZWQgb2JqZWN0cyB0aGF0IG1pZ2h0IG5vdCBldmVuIGhhdmUgdGhpcyBi
bG9jayBhcyB0aGVpcgorICAgICAgICBjb250YWluaW5nIGJsb2NrLgorICAgICAgICAKKyAgICAg
ICAgVGhlIFJlbmRlclRhYmxlUm93IGNvZGUgaXMgc3BlY2lhbGl6ZWQgdG8gb25seSBjYXJlIGFi
b3V0IGNvbGxhcHNpbmcgYm9yZGVycyBhbmQKKyAgICAgICAgdG8gb25seSBjaGVjayBib3JkZXJz
IHJhdGhlciB0aGFuIHBhZGRpbmcuIEl0IGFsc28gcmVxdWlyZXMgdGhhdCBhIGNoaWxkIGJlIGEg
Y2VsbAorICAgICAgICBpbiBvcmRlciB0byBkbyB0aGUgaW52YWxpZGF0aW9uLgorICAgICAgICAK
KyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cywgc2luY2UgdGhpcyBpcyBqdXN0IHNw
ZWNpYWxpemluZyB0aGUgY29kZSB0byBtb3JlIHByZWNpc2VseQorICAgICAgICBjb3ZlciB0aGUg
dGVzdCBjYXNlcyB0aGF0IGhhdmUgYWxyZWFkeSBiZWVuIHdyaXR0ZW4uCisKKyAgICAgICAgTG9u
Z2VyIHRlcm0sIGl0IHNob3VsZCBiZSBsYXlvdXQgY29kZSB0aGF0IGZpZ3VyZXMgdGhpcyBzdHVm
ZiBvdXQgcmF0aGVyIHRoYW4gc3R5bGUKKyAgICAgICAgY2hhbmdlIGNvZGUsIGJ1dCB0aGF0IGlu
dm9sdmVzIG1vcmUgZHJhbWF0aWMgY2hhbmdlcyB0aGF0IGNhbiB3YWl0LgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJs
b2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmJvcmRlck9yUGFkZGluZ0xvZ2ljYWxXaWR0aENo
YW5nZWQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9j
azo6c3R5bGVEaWRDaGFuZ2UpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnN0eWxlRGlk
Q2hhbmdlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGVSb3cuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Ym9yZGVyTG9naWNhbFdpZHRoQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlUm93OjpzdHlsZURpZENoYW5nZSk6CisK
IDIwMTMtMDItMTggIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAg
RU1FOiBBZGQgYSBDRE1Qcml2YXRlIGltcGxlbWVudGF0aW9uIHVzaW5nIEFWRm91bmRhdGlvbi4K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAkocmV2aXNpb24g
MTQzMjU2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzM3LDE0ICszMzcsMzAgQEAgdm9pZCBSZW5kZXJCbG9jazo6c3R5bGVX
aWxsQ2hhbmdlKFN0eWxlRAogICAgIFJlbmRlckJveDo6c3R5bGVXaWxsQ2hhbmdlKGRpZmYsIG5l
d1N0eWxlKTsKIH0KIAorc3RhdGljIGJvb2wgYm9yZGVyT3JQYWRkaW5nTG9naWNhbFdpZHRoQ2hh
bmdlZChjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUsIGNvbnN0IFJlbmRlclN0eWxlKiBuZXdT
dHlsZSkKK3sKKyAgICBpZiAobmV3U3R5bGUtPmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCisg
ICAgICAgIHJldHVybiBvbGRTdHlsZS0+Ym9yZGVyTGVmdFdpZHRoKCkgIT0gbmV3U3R5bGUtPmJv
cmRlckxlZnRXaWR0aCgpCisgICAgICAgICAgICB8fCBvbGRTdHlsZS0+Ym9yZGVyUmlnaHRXaWR0
aCgpICE9IG5ld1N0eWxlLT5ib3JkZXJSaWdodFdpZHRoKCkKKyAgICAgICAgICAgIHx8IG9sZFN0
eWxlLT5wYWRkaW5nTGVmdCgpICE9IG5ld1N0eWxlLT5wYWRkaW5nTGVmdCgpCisgICAgICAgICAg
ICB8fCBvbGRTdHlsZS0+cGFkZGluZ1JpZ2h0KCkgIT0gbmV3U3R5bGUtPnBhZGRpbmdSaWdodCgp
OworCisgICAgcmV0dXJuIG9sZFN0eWxlLT5ib3JkZXJUb3BXaWR0aCgpICE9IG5ld1N0eWxlLT5i
b3JkZXJUb3BXaWR0aCgpCisgICAgICAgIHx8IG9sZFN0eWxlLT5ib3JkZXJCb3R0b21XaWR0aCgp
ICE9IG5ld1N0eWxlLT5ib3JkZXJCb3R0b21XaWR0aCgpCisgICAgICAgIHx8IG9sZFN0eWxlLT5w
YWRkaW5nVG9wKCkgIT0gbmV3U3R5bGUtPnBhZGRpbmdUb3AoKQorICAgICAgICB8fCBvbGRTdHls
ZS0+cGFkZGluZ0JvdHRvbSgpICE9IG5ld1N0eWxlLT5wYWRkaW5nQm90dG9tKCk7Cit9CisKIHZv
aWQgUmVuZGVyQmxvY2s6OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25z
dCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpCiB7CiAgICAgUmVuZGVyQm94OjpzdHlsZURpZENoYW5n
ZShkaWZmLCBvbGRTdHlsZSk7Ci0KKyAgICAKKyAgICBSZW5kZXJTdHlsZSogbmV3U3R5bGUgPSBz
dHlsZSgpOworICAgIAogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKICAgICAvLyBGSVhNRTog
QnVnIDg5OTkzOiBTdHlsZSBjaGFuZ2VzIHNob3VsZCBhZmZlY3QgdGhlIEV4Y2x1c2lvblNoYXBl
SW5zaWRlSW5mb3MgZm9yIG90aGVyIHJlbmRlciBibG9ja3MgdGhhdAogICAgIC8vIHNoYXJlIHRo
ZSBzYW1lIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbwotICAgIHVwZGF0ZUV4Y2x1c2lvblNoYXBl
SW5zaWRlSW5mb0FmdGVyU3R5bGVDaGFuZ2Uoc3R5bGUoKS0+cmVzb2x2ZWRTaGFwZUluc2lkZSgp
LCBvbGRTdHlsZSA/IG9sZFN0eWxlLT5yZXNvbHZlZFNoYXBlSW5zaWRlKCkgOiAwKTsKKyAgICB1
cGRhdGVFeGNsdXNpb25TaGFwZUluc2lkZUluZm9BZnRlclN0eWxlQ2hhbmdlKG5ld1N0eWxlLT5y
ZXNvbHZlZFNoYXBlSW5zaWRlKCksIG9sZFN0eWxlID8gb2xkU3R5bGUtPnJlc29sdmVkU2hhcGVJ
bnNpZGUoKSA6IDApOwogI2VuZGlmCiAKICAgICBpZiAoIWlzQW5vbnltb3VzQmxvY2soKSkgewpA
QCAtMzUyLDcgKzM2OCw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OnN0eWxlRGlkQ2hhbmdlKFN0eWxl
RGkKICAgICAgICAgZm9yIChSZW5kZXJCbG9jayogY3VyckNvbnQgPSBibG9ja0VsZW1lbnRDb250
aW51YXRpb24oKTsgY3VyckNvbnQ7IGN1cnJDb250ID0gY3VyckNvbnQtPmJsb2NrRWxlbWVudENv
bnRpbnVhdGlvbigpKSB7CiAgICAgICAgICAgICBSZW5kZXJCb3hNb2RlbE9iamVjdCogbmV4dENv
bnQgPSBjdXJyQ29udC0+Y29udGludWF0aW9uKCk7CiAgICAgICAgICAgICBjdXJyQ29udC0+c2V0
Q29udGludWF0aW9uKDApOwotICAgICAgICAgICAgY3VyckNvbnQtPnNldFN0eWxlKHN0eWxlKCkp
OworICAgICAgICAgICAgY3VyckNvbnQtPnNldFN0eWxlKG5ld1N0eWxlKTsKICAgICAgICAgICAg
IGN1cnJDb250LT5zZXRDb250aW51YXRpb24obmV4dENvbnQpOwogICAgICAgICB9CiAgICAgfQpA
QCAtMzg5LDYgKzQwNSwzMSBAQCB2b2lkIFJlbmRlckJsb2NrOjpzdHlsZURpZENoYW5nZShTdHls
ZURpCiAgICAgICAgIHBhcmVudEJsb2NrLT5tYXJrQWxsRGVzY2VuZGFudHNXaXRoRmxvYXRzRm9y
TGF5b3V0KCk7CiAgICAgICAgIHBhcmVudEJsb2NrLT5tYXJrU2libGluZ3NXaXRoRmxvYXRzRm9y
TGF5b3V0KCk7CiAgICAgfQorICAgIAorICAgIC8vIEl0J3MgcG9zc2libGUgZm9yIG91ciBib3Jk
ZXIvcGFkZGluZyB0byBjaGFuZ2UsIGJ1dCBmb3IgdGhlIG92ZXJhbGwgbG9naWNhbCB3aWR0aCBv
ZiB0aGUgYmxvY2sgdG8KKyAgICAvLyBlbmQgdXAgYmVpbmcgdGhlIHNhbWUuIFdoZW4gdGhpcyBo
YXBwZW5zLCB3ZSB3b24ndCB1bmRlcnN0YW5kIHRvIHNldCB8cmVsYXlvdXRDaGlsZHJlbnwgdG8g
dHJ1ZQorICAgIC8vIGluIGxheW91dEJsb2NrLiBMb25nZXItdGVybSwgd2Ugc2hvdWxkIGJlIGZp
Z3VyaW5nIHRoaXMgc3R1ZmYgb3V0IG92ZXIgaW4gbGF5b3V0QmxvY2ssIHNpbmNlCisgICAgLy8g
d2UgbmVlZCB0byBiZSBhYmxlIHRvIGhhbmRsZSB0aGUgc2FtZSBzaXR1YXRpb24gaW4gUmVuZGVy
UmVnaW9ucyB3aGVuIHdlIGhhdmUgZGlzdGluY3QgYm9yZGVycyBpbgorICAgIC8vIHRob3NlIHJl
Z2lvbnMuIEZvciBub3csIHRob3VnaCwgd2UganVzdCBtYXJrIHRoZSBjaGlsZHJlbiBmb3IgcmVs
YXlvdXQgcmlnaHQgaGVyZS4KKyAgICBpZiAob2xkU3R5bGUgJiYgZGlmZiA9PSBTdHlsZURpZmZl
cmVuY2VMYXlvdXQgJiYgbmVlZHNMYXlvdXQoKSAmJiBib3JkZXJPclBhZGRpbmdMb2dpY2FsV2lk
dGhDaGFuZ2VkKG9sZFN0eWxlLCBuZXdTdHlsZSkgJiYgIWNoaWxkcmVuSW5saW5lKCkpIHsKKyAg
ICAgICAgLy8gRmlyc3Qgd2FsayBvdXIgbm9ybWFsIGZsb3cgb2JqZWN0cyBhbmQgc2VlIGlmIHRo
ZXJlIGlzIGFueSBjaGFuZ2UuCisgICAgICAgIGZvciAoUmVuZGVyQm94KiBjaGlsZEJveCA9IGZp
cnN0Q2hpbGRCb3goKTsgY2hpbGRCb3g7IGNoaWxkQm94ID0gY2hpbGRCb3gtPm5leHRTaWJsaW5n
Qm94KCkpIHsKKyAgICAgICAgICAgIGlmIChjaGlsZEJveC0+aXNGbG9hdGluZ09yT3V0T2ZGbG93
UG9zaXRpb25lZCgpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgY2hp
bGRCb3gtPnNldENoaWxkTmVlZHNMYXlvdXQodHJ1ZSwgTWFya09ubHlUaGlzKTsKKyAgICAgICAg
fQorICAgICAgICAKKyAgICAgICAgLy8gTm93IHdhbGsgdGhlIHBvc2l0aW9uZWQgb2JqZWN0cyBm
b3Igd2hpY2ggd2UgYXJlIHRoZSBjb250YWluaW5nIGJsb2NrLgorICAgICAgICBUcmFja2VkUmVu
ZGVyZXJMaXN0SGFzaFNldCogcG9zaXRpb25lZERlc2NlbmRhbnRzID0gcG9zaXRpb25lZE9iamVj
dHMoKTsKKyAgICAgICAgaWYgKHBvc2l0aW9uZWREZXNjZW5kYW50cykgeworICAgICAgICAgICAg
UmVuZGVyQm94KiBwb3NpdGlvbmVkQm94OworICAgICAgICAgICAgVHJhY2tlZFJlbmRlcmVyTGlz
dEhhc2hTZXQ6Oml0ZXJhdG9yIGVuZCA9IHBvc2l0aW9uZWREZXNjZW5kYW50cy0+ZW5kKCk7Cisg
ICAgICAgICAgICBmb3IgKFRyYWNrZWRSZW5kZXJlckxpc3RIYXNoU2V0OjppdGVyYXRvciBpdCA9
IHBvc2l0aW9uZWREZXNjZW5kYW50cy0+YmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7CisgICAg
ICAgICAgICAgICAgcG9zaXRpb25lZEJveCA9ICppdDsKKyAgICAgICAgICAgICAgICBwb3NpdGlv
bmVkQm94LT5zZXRDaGlsZE5lZWRzTGF5b3V0KHRydWUsIE1hcmtPbmx5VGhpcyk7CisgICAgICAg
ICAgICB9CisgICAgICAgIH0KKyAgICB9CiB9CiAKIFJlbmRlckJsb2NrKiBSZW5kZXJCbG9jazo6
Y29udGludWF0aW9uQmVmb3JlKFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQpCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAkocmV2aXNpb24gMTQzMjQyKQorKysgU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIz
MiwyMCArMjMyLDYgQEAgdm9pZCBSZW5kZXJCb3g6OnN0eWxlV2lsbENoYW5nZShTdHlsZURpZgog
ICAgIFJlbmRlckJveE1vZGVsT2JqZWN0OjpzdHlsZVdpbGxDaGFuZ2UoZGlmZiwgbmV3U3R5bGUp
OwogfQogCi1zdGF0aWMgYm9vbCBib3JkZXJPclBhZGRpbmdMb2dpY2FsV2lkdGhDaGFuZ2VkKGNv
bnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSwgY29uc3QgUmVuZGVyU3R5bGUqIG5ld1N0eWxlKQot
ewotICAgIGlmIChuZXdTdHlsZS0+aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkKLSAgICAgICAg
cmV0dXJuIG9sZFN0eWxlLT5ib3JkZXJMZWZ0V2lkdGgoKSAhPSBuZXdTdHlsZS0+Ym9yZGVyTGVm
dFdpZHRoKCkKLSAgICAgICAgICAgIHx8IG9sZFN0eWxlLT5ib3JkZXJSaWdodFdpZHRoKCkgIT0g
bmV3U3R5bGUtPmJvcmRlclJpZ2h0V2lkdGgoKQotICAgICAgICAgICAgfHwgb2xkU3R5bGUtPnBh
ZGRpbmdMZWZ0KCkgIT0gbmV3U3R5bGUtPnBhZGRpbmdMZWZ0KCkKLSAgICAgICAgICAgIHx8IG9s
ZFN0eWxlLT5wYWRkaW5nUmlnaHQoKSAhPSBuZXdTdHlsZS0+cGFkZGluZ1JpZ2h0KCk7Ci0KLSAg
ICByZXR1cm4gb2xkU3R5bGUtPmJvcmRlclRvcFdpZHRoKCkgIT0gbmV3U3R5bGUtPmJvcmRlclRv
cFdpZHRoKCkKLSAgICAgICAgfHwgb2xkU3R5bGUtPmJvcmRlckJvdHRvbVdpZHRoKCkgIT0gbmV3
U3R5bGUtPmJvcmRlckJvdHRvbVdpZHRoKCkKLSAgICAgICAgfHwgb2xkU3R5bGUtPnBhZGRpbmdU
b3AoKSAhPSBuZXdTdHlsZS0+cGFkZGluZ1RvcCgpCi0gICAgICAgIHx8IG9sZFN0eWxlLT5wYWRk
aW5nQm90dG9tKCkgIT0gbmV3U3R5bGUtPnBhZGRpbmdCb3R0b20oKTsKLX0KLQogdm9pZCBSZW5k
ZXJCb3g6OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJT
dHlsZSogb2xkU3R5bGUpCiB7CiAgICAgLy8gSG9yaXpvbnRhbCB3cml0aW5nIG1vZGUgZGVmaW5p
dGlvbiBpcyB1cGRhdGVkIGluIFJlbmRlckJveE1vZGVsT2JqZWN0Ojp1cGRhdGVGcm9tU3R5bGUs
CkBAIC0zMTksMTEgKzMwNSw2IEBAIHZvaWQgUmVuZGVyQm94OjpzdHlsZURpZENoYW5nZShTdHls
ZURpZmYKICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCiAgICAgdXBkYXRlRXhjbHVzaW9uU2hh
cGVPdXRzaWRlSW5mb0FmdGVyU3R5bGVDaGFuZ2Uoc3R5bGUoKS0+c2hhcGVPdXRzaWRlKCksIG9s
ZFN0eWxlID8gb2xkU3R5bGUtPnNoYXBlT3V0c2lkZSgpIDogMCk7CiAjZW5kaWYKLQotICAgIGlm
IChvbGRTdHlsZSAmJiBkaWZmID09IFN0eWxlRGlmZmVyZW5jZUxheW91dCAmJiBuZWVkc0xheW91
dCgpICYmIGJvcmRlck9yUGFkZGluZ0xvZ2ljYWxXaWR0aENoYW5nZWQob2xkU3R5bGUsIG5ld1N0
eWxlKSkgewotICAgICAgICBmb3IgKFJlbmRlck9iamVjdCogY2hpbGQgPSBmaXJzdENoaWxkKCk7
IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKQotICAgICAgICAgICAgY2hpbGQt
PnNldENoaWxkTmVlZHNMYXlvdXQodHJ1ZSwgTWFya09ubHlUaGlzKTsKLSAgICB9CiB9CiAKICNp
ZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGFibGVSb3cuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUYWJsZVJvdy5jcHAJKHJldmlzaW9uIDE0MzI0MikKKysrIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUYWJsZVJvdy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU0LDYgKzU0
LDE2IEBAIHZvaWQgUmVuZGVyVGFibGVSb3c6OndpbGxCZVJlbW92ZWRGcm9tVHIKICAgICBzZWN0
aW9uKCktPnNldE5lZWRzQ2VsbFJlY2FsYygpOwogfQogCitzdGF0aWMgYm9vbCBib3JkZXJMb2dp
Y2FsV2lkdGhDaGFuZ2VkKGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSwgY29uc3QgUmVuZGVy
U3R5bGUqIG5ld1N0eWxlKQoreworICAgIGlmIChuZXdTdHlsZS0+aXNIb3Jpem9udGFsV3JpdGlu
Z01vZGUoKSkKKyAgICAgICAgcmV0dXJuIG9sZFN0eWxlLT5ib3JkZXJMZWZ0V2lkdGgoKSAhPSBu
ZXdTdHlsZS0+Ym9yZGVyTGVmdFdpZHRoKCkKKyAgICAgICAgICAgIHx8IG9sZFN0eWxlLT5ib3Jk
ZXJSaWdodFdpZHRoKCkgIT0gbmV3U3R5bGUtPmJvcmRlclJpZ2h0V2lkdGgoKTsKKworICAgIHJl
dHVybiBvbGRTdHlsZS0+Ym9yZGVyVG9wV2lkdGgoKSAhPSBuZXdTdHlsZS0+Ym9yZGVyVG9wV2lk
dGgoKQorICAgICAgICB8fCBvbGRTdHlsZS0+Ym9yZGVyQm90dG9tV2lkdGgoKSAhPSBuZXdTdHls
ZS0+Ym9yZGVyQm90dG9tV2lkdGgoKTsKK30KKwogdm9pZCBSZW5kZXJUYWJsZVJvdzo6c3R5bGVE
aWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHls
ZSkKIHsKICAgICBBU1NFUlQoc3R5bGUoKS0+ZGlzcGxheSgpID09IFRBQkxFX1JPVyk7CkBAIC02
OSw2ICs3OSwxNyBAQCB2b2lkIFJlbmRlclRhYmxlUm93OjpzdHlsZURpZENoYW5nZShTdHlsCiAg
ICAgICAgIFJlbmRlclRhYmxlKiB0YWJsZSA9IHRoaXMtPnRhYmxlKCk7CiAgICAgICAgIGlmICh0
YWJsZSAmJiAhdGFibGUtPnNlbGZOZWVkc0xheW91dCgpICYmICF0YWJsZS0+bm9ybWFsQ2hpbGRO
ZWVkc0xheW91dCgpICYmIG9sZFN0eWxlICYmIG9sZFN0eWxlLT5ib3JkZXIoKSAhPSBzdHlsZSgp
LT5ib3JkZXIoKSkKICAgICAgICAgICAgIHRhYmxlLT5pbnZhbGlkYXRlQ29sbGFwc2VkQm9yZGVy
cygpOworICAgICAgICAKKyAgICAgICAgaWYgKHRhYmxlICYmIG9sZFN0eWxlICYmIGRpZmYgPT0g
U3R5bGVEaWZmZXJlbmNlTGF5b3V0ICYmIG5lZWRzTGF5b3V0KCkgJiYgdGFibGUtPmNvbGxhcHNl
Qm9yZGVycygpICYmIGJvcmRlckxvZ2ljYWxXaWR0aENoYW5nZWQob2xkU3R5bGUsIHN0eWxlKCkp
KSB7CisgICAgICAgICAgICAvLyBJZiB0aGUgYm9yZGVyIHdpZHRoIGNoYW5nZXMgb24gYSByb3cs
IHdlIG5lZWQgdG8gbWFrZSBzdXJlIHRoZSBjZWxscyBpbiB0aGUgcm93IGtub3cgdG8gbGF5IG91
dCBhZ2Fpbi4KKyAgICAgICAgICAgIC8vIFRoaXMgb25seSBoYXBwZW5zIHdoZW4gYm9yZGVycyBh
cmUgY29sbGFwc2VkLCBzaW5jZSB0aGV5IGVuZCB1cCBhZmZlY3RpbmcgdGhlIGJvcmRlciBzaWRl
cyBvZiB0aGUgY2VsbAorICAgICAgICAgICAgLy8gaXRzZWxmLgorICAgICAgICAgICAgZm9yIChS
ZW5kZXJCb3gqIGNoaWxkQm94ID0gZmlyc3RDaGlsZEJveCgpOyBjaGlsZEJveDsgY2hpbGRCb3gg
PSBjaGlsZEJveC0+bmV4dFNpYmxpbmdCb3goKSkgeworICAgICAgICAgICAgICAgIGlmICghY2hp
bGRCb3gtPmlzVGFibGVDZWxsKCkpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAg
ICAgICAgICAgICAgIGNoaWxkQm94LT5zZXRDaGlsZE5lZWRzTGF5b3V0KHRydWUsIE1hcmtPbmx5
VGhpcyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KICAgICB9CiB9CiAK
</data>
<flag name="review"
          id="209197"
          type_id="1"
          status="+"
          setter="rniwa"
    />
    <flag name="commit-queue"
          id="209201"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188954</attachid>
            <date>2013-02-18 15:39:33 -0800</date>
            <delta_ts>2013-02-18 15:41:21 -0800</delta_ts>
            <desc>Patch with a positioning test case</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>13248</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0MzI2MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ2IEBACisyMDEzLTAyLTE4ICBEYXZpZCBI
eWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KKworICAgICAgICBQYWRkaW5nIGFuZCBib3JkZXIgY2hh
bmdlcyBkb24ndCB0cmlnZ2VyIHRoZSByZWxheW91dCBvZiBjaGlsZHJlbiBpbiBzb21lIGNhc2Vz
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NjM5
LgorCisgICAgICAgIFRoZSBmaXggZm9yIHRoaXMgYnVnIHdhcyB3YXkgdG9vIGdlbmVyYWwgYW5k
IGludm9sdmVkIHB1dHRpbmcgY29kZSBpbnRvIFJlbmRlckJveC4gU2luY2UKKyAgICAgICAgUmVu
ZGVyQm94IG1ha2VzIG5vIGFzc3VtcHRpb25zIGFib3V0IHdoYXQga2luZCBvZiBsYXlvdXQgc3lz
dGVtIG1pZ2h0IGRlcml2ZSBmcm9tIGl0LCBpdAorICAgICAgICB3YXMgaW5jb3JyZWN0IHRvIGp1
c3QgbWFyayBhbGwgY2hpbGRyZW4gYXMgbmVlZGluZyBsYXlvdXQgd2hlbmV2ZXIgYm9yZGVycyBh
bmQgcGFkZGluZworICAgICAgICBjaGFuZ2VkIHdpZHRocy4KKyAgICAgICAgCisgICAgICAgIFRo
aXMgcGF0Y2ggdGFrZXMgdGhlIHR3byBjYXNlcyBoYW5kbGVkIGJ5IHRoZSBvcmlnaW5hbCBjb2Rl
IGFuZCBtYWtlcyB0aGVtIG1vcmUKKyAgICAgICAgc3BlY2lhbGl6ZWQgZG93biBpbiBzdWJjbGFz
c2VzLCBpLmUuLCBSZW5kZXJCbG9jayBhbmQgUmVuZGVyVGFibGVSb3cuIFJlbmRlckJsb2NrIGhh
cworICAgICAgICBiZWVuIHJlZmluZWQgdG8gb25seSBjaGVjayBpZiBjaGlsZHJlbiBhcmVuJ3Qg
aW5saW5lIGFuZCB0byBhbHNvIG5vdCBpbnZhbGlkYXRlCisgICAgICAgIGZsb2F0cyBvciBpcnJl
bGV2YW50IHBvc2l0aW9uZWQgb2JqZWN0cyB0aGF0IG1pZ2h0IG5vdCBldmVuIGhhdmUgdGhpcyBi
bG9jayBhcyB0aGVpcgorICAgICAgICBjb250YWluaW5nIGJsb2NrLgorICAgICAgICAKKyAgICAg
ICAgVGhlIFJlbmRlclRhYmxlUm93IGNvZGUgaXMgc3BlY2lhbGl6ZWQgdG8gb25seSBjYXJlIGFi
b3V0IGNvbGxhcHNpbmcgYm9yZGVycyBhbmQKKyAgICAgICAgdG8gb25seSBjaGVjayBib3JkZXJz
IHJhdGhlciB0aGFuIHBhZGRpbmcuIEl0IGFsc28gcmVxdWlyZXMgdGhhdCBhIGNoaWxkIGJlIGEg
Y2VsbAorICAgICAgICBpbiBvcmRlciB0byBkbyB0aGUgaW52YWxpZGF0aW9uLgorICAgICAgICAK
KyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cywgc2luY2UgdGhpcyBpcyBqdXN0IHNw
ZWNpYWxpemluZyB0aGUgY29kZSB0byBtb3JlIHByZWNpc2VseQorICAgICAgICBjb3ZlciB0aGUg
dGVzdCBjYXNlcyB0aGF0IGhhdmUgYWxyZWFkeSBiZWVuIHdyaXR0ZW4uCisKKyAgICAgICAgTG9u
Z2VyIHRlcm0sIGl0IHNob3VsZCBiZSBsYXlvdXQgY29kZSB0aGF0IGZpZ3VyZXMgdGhpcyBzdHVm
ZiBvdXQgcmF0aGVyIHRoYW4gc3R5bGUKKyAgICAgICAgY2hhbmdlIGNvZGUsIGJ1dCB0aGF0IGlu
dm9sdmVzIG1vcmUgZHJhbWF0aWMgY2hhbmdlcyB0aGF0IGNhbiB3YWl0LgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIGZhc3QvYmxvY2svcG9z
aXRpb25pbmcvYm9yZGVyLWNoYW5nZS1yZWxheW91dC10ZXN0Lmh0bWwgdG8gaWxsdXN0cmF0ZSB3
aHkgdGhlCisgICAgICAgIG9sZCBwYXRjaCBkaWRuJ3Qgd29yay4KKworICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJCbG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpib3JkZXJPclBhZGRpbmdM
b2dpY2FsV2lkdGhDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyQmxvY2s6OnN0eWxlRGlkQ2hhbmdlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
Qm94OjpzdHlsZURpZENoYW5nZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxlUm93
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmJvcmRlckxvZ2ljYWxXaWR0aENoYW5nZWQpOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZVJvdzo6c3R5bGVE
aWRDaGFuZ2UpOgorCiAyMDEzLTAyLTE4ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29t
PgogCiAgICAgICAgIEVNRTogQWRkIGEgQ0RNUHJpdmF0ZSBpbXBsZW1lbnRhdGlvbiB1c2luZyBB
VkZvdW5kYXRpb24uCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2su
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5j
cHAJKHJldmlzaW9uIDE0MzI1NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
bG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzNywxNCArMzM3LDMwIEBAIHZvaWQgUmVuZGVy
QmxvY2s6OnN0eWxlV2lsbENoYW5nZShTdHlsZUQKICAgICBSZW5kZXJCb3g6OnN0eWxlV2lsbENo
YW5nZShkaWZmLCBuZXdTdHlsZSk7CiB9CiAKK3N0YXRpYyBib29sIGJvcmRlck9yUGFkZGluZ0xv
Z2ljYWxXaWR0aENoYW5nZWQoY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlLCBjb25zdCBSZW5k
ZXJTdHlsZSogbmV3U3R5bGUpCit7CisgICAgaWYgKG5ld1N0eWxlLT5pc0hvcml6b250YWxXcml0
aW5nTW9kZSgpKQorICAgICAgICByZXR1cm4gb2xkU3R5bGUtPmJvcmRlckxlZnRXaWR0aCgpICE9
IG5ld1N0eWxlLT5ib3JkZXJMZWZ0V2lkdGgoKQorICAgICAgICAgICAgfHwgb2xkU3R5bGUtPmJv
cmRlclJpZ2h0V2lkdGgoKSAhPSBuZXdTdHlsZS0+Ym9yZGVyUmlnaHRXaWR0aCgpCisgICAgICAg
ICAgICB8fCBvbGRTdHlsZS0+cGFkZGluZ0xlZnQoKSAhPSBuZXdTdHlsZS0+cGFkZGluZ0xlZnQo
KQorICAgICAgICAgICAgfHwgb2xkU3R5bGUtPnBhZGRpbmdSaWdodCgpICE9IG5ld1N0eWxlLT5w
YWRkaW5nUmlnaHQoKTsKKworICAgIHJldHVybiBvbGRTdHlsZS0+Ym9yZGVyVG9wV2lkdGgoKSAh
PSBuZXdTdHlsZS0+Ym9yZGVyVG9wV2lkdGgoKQorICAgICAgICB8fCBvbGRTdHlsZS0+Ym9yZGVy
Qm90dG9tV2lkdGgoKSAhPSBuZXdTdHlsZS0+Ym9yZGVyQm90dG9tV2lkdGgoKQorICAgICAgICB8
fCBvbGRTdHlsZS0+cGFkZGluZ1RvcCgpICE9IG5ld1N0eWxlLT5wYWRkaW5nVG9wKCkKKyAgICAg
ICAgfHwgb2xkU3R5bGUtPnBhZGRpbmdCb3R0b20oKSAhPSBuZXdTdHlsZS0+cGFkZGluZ0JvdHRv
bSgpOworfQorCiB2b2lkIFJlbmRlckJsb2NrOjpzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVu
Y2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKQogewogICAgIFJlbmRlckJveDo6
c3R5bGVEaWRDaGFuZ2UoZGlmZiwgb2xkU3R5bGUpOwotCisgICAgCisgICAgUmVuZGVyU3R5bGUq
IG5ld1N0eWxlID0gc3R5bGUoKTsKKyAgICAKICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCiAg
ICAgLy8gRklYTUU6IEJ1ZyA4OTk5MzogU3R5bGUgY2hhbmdlcyBzaG91bGQgYWZmZWN0IHRoZSBF
eGNsdXNpb25TaGFwZUluc2lkZUluZm9zIGZvciBvdGhlciByZW5kZXIgYmxvY2tzIHRoYXQKICAg
ICAvLyBzaGFyZSB0aGUgc2FtZSBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8KLSAgICB1cGRhdGVF
eGNsdXNpb25TaGFwZUluc2lkZUluZm9BZnRlclN0eWxlQ2hhbmdlKHN0eWxlKCktPnJlc29sdmVk
U2hhcGVJbnNpZGUoKSwgb2xkU3R5bGUgPyBvbGRTdHlsZS0+cmVzb2x2ZWRTaGFwZUluc2lkZSgp
IDogMCk7CisgICAgdXBkYXRlRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvQWZ0ZXJTdHlsZUNoYW5n
ZShuZXdTdHlsZS0+cmVzb2x2ZWRTaGFwZUluc2lkZSgpLCBvbGRTdHlsZSA/IG9sZFN0eWxlLT5y
ZXNvbHZlZFNoYXBlSW5zaWRlKCkgOiAwKTsKICNlbmRpZgogCiAgICAgaWYgKCFpc0Fub255bW91
c0Jsb2NrKCkpIHsKQEAgLTM1Miw3ICszNjgsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjpzdHlsZURp
ZENoYW5nZShTdHlsZURpCiAgICAgICAgIGZvciAoUmVuZGVyQmxvY2sqIGN1cnJDb250ID0gYmxv
Y2tFbGVtZW50Q29udGludWF0aW9uKCk7IGN1cnJDb250OyBjdXJyQ29udCA9IGN1cnJDb250LT5i
bG9ja0VsZW1lbnRDb250aW51YXRpb24oKSkgewogICAgICAgICAgICAgUmVuZGVyQm94TW9kZWxP
YmplY3QqIG5leHRDb250ID0gY3VyckNvbnQtPmNvbnRpbnVhdGlvbigpOwogICAgICAgICAgICAg
Y3VyckNvbnQtPnNldENvbnRpbnVhdGlvbigwKTsKLSAgICAgICAgICAgIGN1cnJDb250LT5zZXRT
dHlsZShzdHlsZSgpKTsKKyAgICAgICAgICAgIGN1cnJDb250LT5zZXRTdHlsZShuZXdTdHlsZSk7
CiAgICAgICAgICAgICBjdXJyQ29udC0+c2V0Q29udGludWF0aW9uKG5leHRDb250KTsKICAgICAg
ICAgfQogICAgIH0KQEAgLTM4OSw2ICs0MDUsMzggQEAgdm9pZCBSZW5kZXJCbG9jazo6c3R5bGVE
aWRDaGFuZ2UoU3R5bGVEaQogICAgICAgICBwYXJlbnRCbG9jay0+bWFya0FsbERlc2NlbmRhbnRz
V2l0aEZsb2F0c0ZvckxheW91dCgpOwogICAgICAgICBwYXJlbnRCbG9jay0+bWFya1NpYmxpbmdz
V2l0aEZsb2F0c0ZvckxheW91dCgpOwogICAgIH0KKyAgICAKKyAgICAvLyBJdCdzIHBvc3NpYmxl
IGZvciBvdXIgYm9yZGVyL3BhZGRpbmcgdG8gY2hhbmdlLCBidXQgZm9yIHRoZSBvdmVyYWxsIGxv
Z2ljYWwgd2lkdGggb2YgdGhlIGJsb2NrIHRvCisgICAgLy8gZW5kIHVwIGJlaW5nIHRoZSBzYW1l
LiBXaGVuIHRoaXMgaGFwcGVucywgd2Ugd29uJ3QgdW5kZXJzdGFuZCB0byBzZXQgfHJlbGF5b3V0
Q2hpbGRyZW58IHRvIHRydWUKKyAgICAvLyBpbiBsYXlvdXRCbG9jay4gTG9uZ2VyLXRlcm0sIHdl
IHNob3VsZCBiZSBmaWd1cmluZyB0aGlzIHN0dWZmIG91dCBvdmVyIGluIGxheW91dEJsb2NrLCBz
aW5jZQorICAgIC8vIHdlIG5lZWQgdG8gYmUgYWJsZSB0byBoYW5kbGUgdGhlIHNhbWUgc2l0dWF0
aW9uIGluIFJlbmRlclJlZ2lvbnMgd2hlbiB3ZSBoYXZlIGRpc3RpbmN0IGJvcmRlcnMgaW4KKyAg
ICAvLyB0aG9zZSByZWdpb25zLiBGb3Igbm93LCB0aG91Z2gsIHdlIGp1c3QgbWFyayB0aGUgY2hp
bGRyZW4gZm9yIHJlbGF5b3V0IHJpZ2h0IGhlcmUuCisgICAgaWYgKG9sZFN0eWxlICYmIGRpZmYg
PT0gU3R5bGVEaWZmZXJlbmNlTGF5b3V0ICYmIG5lZWRzTGF5b3V0KCkgJiYgYm9yZGVyT3JQYWRk
aW5nTG9naWNhbFdpZHRoQ2hhbmdlZChvbGRTdHlsZSwgbmV3U3R5bGUpKSB7CisgICAgICAgIC8v
IEZpcnN0IHdhbGsgb3VyIG5vcm1hbCBmbG93IG9iamVjdHMgYW5kIHNlZSBpZiB0aGVyZSBpcyBh
bnkgY2hhbmdlLgorICAgICAgICBpZiAoIWNoaWxkcmVuSW5saW5lKCkpIHsKKyAgICAgICAgICAg
IGZvciAoUmVuZGVyQm94KiBjaGlsZEJveCA9IGZpcnN0Q2hpbGRCb3goKTsgY2hpbGRCb3g7IGNo
aWxkQm94ID0gY2hpbGRCb3gtPm5leHRTaWJsaW5nQm94KCkpIHsKKyAgICAgICAgICAgICAgICAv
LyBQb3NpdGlvbmVkIG9iamVjdHMgYXJlIGNoZWNrZWQgYmVsb3csIHNpbmNlIHdlIG9ubHkgY2Fy
ZSBhYm91dCB0aG9zZSBvYmplY3QgZm9yIHdoaWNoIHdlCisgICAgICAgICAgICAgICAgLy8gYXJl
IHRoZSBjb250YWluaW5nIGJsb2NrLiBXZSBza2lwIGZsb2F0cyBjb21wbGV0ZWx5LCBzaW5jZSB0
aGlzIG1hdGNoZXMgdGhlIGJlaGF2aW9yIG9mCisgICAgICAgICAgICAgICAgLy8gdGhlIHxyZWxh
eW91dENoaWxkcmVufCBib29sZWFuIGluIGxheW91dEJsb2NrLiBJdCBpcyBlbnRpcmVseSBwb3Nz
aWJsZSB0aGVyZSBhcmUgYnVncworICAgICAgICAgICAgICAgIC8vIHJlbGF0ZWQgdG8gZmxvYXRz
IGhlcmUsIGJ1dCBmb3Igbm93IHdlJ2xsIGJlIGNvbnNpc3RlbnQgd2l0aCBsYXlvdXRCbG9jaywg
c2luY2UgdGhvc2UKKyAgICAgICAgICAgICAgICAvLyBidWdzIHdvdWxkIGV4aXN0IGV2ZW4gd2l0
aG91dCBib3JkZXIvcGFkZGluZyBjaGFuZ2VzLgorICAgICAgICAgICAgICAgIGlmIChjaGlsZEJv
eC0+aXNGbG9hdGluZ09yT3V0T2ZGbG93UG9zaXRpb25lZCgpKQorICAgICAgICAgICAgICAgICAg
ICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBjaGlsZEJveC0+c2V0Q2hpbGROZWVkc0xheW91
dCh0cnVlLCBNYXJrT25seVRoaXMpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAg
ICAgLy8gTm93IHdhbGsgdGhlIHBvc2l0aW9uZWQgb2JqZWN0cyBmb3Igd2hpY2ggd2UgYXJlIHRo
ZSBjb250YWluaW5nIGJsb2NrLgorICAgICAgICBUcmFja2VkUmVuZGVyZXJMaXN0SGFzaFNldCog
cG9zaXRpb25lZERlc2NlbmRhbnRzID0gcG9zaXRpb25lZE9iamVjdHMoKTsKKyAgICAgICAgaWYg
KHBvc2l0aW9uZWREZXNjZW5kYW50cykgeworICAgICAgICAgICAgUmVuZGVyQm94KiBwb3NpdGlv
bmVkQm94OworICAgICAgICAgICAgVHJhY2tlZFJlbmRlcmVyTGlzdEhhc2hTZXQ6Oml0ZXJhdG9y
IGVuZCA9IHBvc2l0aW9uZWREZXNjZW5kYW50cy0+ZW5kKCk7CisgICAgICAgICAgICBmb3IgKFRy
YWNrZWRSZW5kZXJlckxpc3RIYXNoU2V0OjppdGVyYXRvciBpdCA9IHBvc2l0aW9uZWREZXNjZW5k
YW50cy0+YmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7CisgICAgICAgICAgICAgICAgcG9zaXRp
b25lZEJveCA9ICppdDsKKyAgICAgICAgICAgICAgICBwb3NpdGlvbmVkQm94LT5zZXRDaGlsZE5l
ZWRzTGF5b3V0KHRydWUsIE1hcmtDb250YWluaW5nQmxvY2tDaGFpbik7CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKyAgICB9CiB9CiAKIFJlbmRlckJsb2NrKiBSZW5kZXJCbG9jazo6Y29udGlu
dWF0aW9uQmVmb3JlKFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQpCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAkocmV2aXNpb24gMTQzMjQyKQorKysgU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzMiwyMCAr
MjMyLDYgQEAgdm9pZCBSZW5kZXJCb3g6OnN0eWxlV2lsbENoYW5nZShTdHlsZURpZgogICAgIFJl
bmRlckJveE1vZGVsT2JqZWN0OjpzdHlsZVdpbGxDaGFuZ2UoZGlmZiwgbmV3U3R5bGUpOwogfQog
Ci1zdGF0aWMgYm9vbCBib3JkZXJPclBhZGRpbmdMb2dpY2FsV2lkdGhDaGFuZ2VkKGNvbnN0IFJl
bmRlclN0eWxlKiBvbGRTdHlsZSwgY29uc3QgUmVuZGVyU3R5bGUqIG5ld1N0eWxlKQotewotICAg
IGlmIChuZXdTdHlsZS0+aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkKLSAgICAgICAgcmV0dXJu
IG9sZFN0eWxlLT5ib3JkZXJMZWZ0V2lkdGgoKSAhPSBuZXdTdHlsZS0+Ym9yZGVyTGVmdFdpZHRo
KCkKLSAgICAgICAgICAgIHx8IG9sZFN0eWxlLT5ib3JkZXJSaWdodFdpZHRoKCkgIT0gbmV3U3R5
bGUtPmJvcmRlclJpZ2h0V2lkdGgoKQotICAgICAgICAgICAgfHwgb2xkU3R5bGUtPnBhZGRpbmdM
ZWZ0KCkgIT0gbmV3U3R5bGUtPnBhZGRpbmdMZWZ0KCkKLSAgICAgICAgICAgIHx8IG9sZFN0eWxl
LT5wYWRkaW5nUmlnaHQoKSAhPSBuZXdTdHlsZS0+cGFkZGluZ1JpZ2h0KCk7Ci0KLSAgICByZXR1
cm4gb2xkU3R5bGUtPmJvcmRlclRvcFdpZHRoKCkgIT0gbmV3U3R5bGUtPmJvcmRlclRvcFdpZHRo
KCkKLSAgICAgICAgfHwgb2xkU3R5bGUtPmJvcmRlckJvdHRvbVdpZHRoKCkgIT0gbmV3U3R5bGUt
PmJvcmRlckJvdHRvbVdpZHRoKCkKLSAgICAgICAgfHwgb2xkU3R5bGUtPnBhZGRpbmdUb3AoKSAh
PSBuZXdTdHlsZS0+cGFkZGluZ1RvcCgpCi0gICAgICAgIHx8IG9sZFN0eWxlLT5wYWRkaW5nQm90
dG9tKCkgIT0gbmV3U3R5bGUtPnBhZGRpbmdCb3R0b20oKTsKLX0KLQogdm9pZCBSZW5kZXJCb3g6
OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHlsZSog
b2xkU3R5bGUpCiB7CiAgICAgLy8gSG9yaXpvbnRhbCB3cml0aW5nIG1vZGUgZGVmaW5pdGlvbiBp
cyB1cGRhdGVkIGluIFJlbmRlckJveE1vZGVsT2JqZWN0Ojp1cGRhdGVGcm9tU3R5bGUsCkBAIC0z
MTksMTEgKzMwNSw2IEBAIHZvaWQgUmVuZGVyQm94OjpzdHlsZURpZENoYW5nZShTdHlsZURpZmYK
ICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCiAgICAgdXBkYXRlRXhjbHVzaW9uU2hhcGVPdXRz
aWRlSW5mb0FmdGVyU3R5bGVDaGFuZ2Uoc3R5bGUoKS0+c2hhcGVPdXRzaWRlKCksIG9sZFN0eWxl
ID8gb2xkU3R5bGUtPnNoYXBlT3V0c2lkZSgpIDogMCk7CiAjZW5kaWYKLQotICAgIGlmIChvbGRT
dHlsZSAmJiBkaWZmID09IFN0eWxlRGlmZmVyZW5jZUxheW91dCAmJiBuZWVkc0xheW91dCgpICYm
IGJvcmRlck9yUGFkZGluZ0xvZ2ljYWxXaWR0aENoYW5nZWQob2xkU3R5bGUsIG5ld1N0eWxlKSkg
ewotICAgICAgICBmb3IgKFJlbmRlck9iamVjdCogY2hpbGQgPSBmaXJzdENoaWxkKCk7IGNoaWxk
OyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKQotICAgICAgICAgICAgY2hpbGQtPnNldENo
aWxkTmVlZHNMYXlvdXQodHJ1ZSwgTWFya09ubHlUaGlzKTsKLSAgICB9CiB9CiAKICNpZiBFTkFC
TEUoQ1NTX0VYQ0xVU0lPTlMpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGFibGVSb3cuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUYWJsZVJvdy5jcHAJKHJldmlzaW9uIDE0MzI0MikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUYWJsZVJvdy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU0LDYgKzU0LDE2IEBA
IHZvaWQgUmVuZGVyVGFibGVSb3c6OndpbGxCZVJlbW92ZWRGcm9tVHIKICAgICBzZWN0aW9uKCkt
PnNldE5lZWRzQ2VsbFJlY2FsYygpOwogfQogCitzdGF0aWMgYm9vbCBib3JkZXJMb2dpY2FsV2lk
dGhDaGFuZ2VkKGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSwgY29uc3QgUmVuZGVyU3R5bGUq
IG5ld1N0eWxlKQoreworICAgIGlmIChuZXdTdHlsZS0+aXNIb3Jpem9udGFsV3JpdGluZ01vZGUo
KSkKKyAgICAgICAgcmV0dXJuIG9sZFN0eWxlLT5ib3JkZXJMZWZ0V2lkdGgoKSAhPSBuZXdTdHls
ZS0+Ym9yZGVyTGVmdFdpZHRoKCkKKyAgICAgICAgICAgIHx8IG9sZFN0eWxlLT5ib3JkZXJSaWdo
dFdpZHRoKCkgIT0gbmV3U3R5bGUtPmJvcmRlclJpZ2h0V2lkdGgoKTsKKworICAgIHJldHVybiBv
bGRTdHlsZS0+Ym9yZGVyVG9wV2lkdGgoKSAhPSBuZXdTdHlsZS0+Ym9yZGVyVG9wV2lkdGgoKQor
ICAgICAgICB8fCBvbGRTdHlsZS0+Ym9yZGVyQm90dG9tV2lkdGgoKSAhPSBuZXdTdHlsZS0+Ym9y
ZGVyQm90dG9tV2lkdGgoKTsKK30KKwogdm9pZCBSZW5kZXJUYWJsZVJvdzo6c3R5bGVEaWRDaGFu
Z2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkKIHsK
ICAgICBBU1NFUlQoc3R5bGUoKS0+ZGlzcGxheSgpID09IFRBQkxFX1JPVyk7CkBAIC02OSw2ICs3
OSwxNyBAQCB2b2lkIFJlbmRlclRhYmxlUm93OjpzdHlsZURpZENoYW5nZShTdHlsCiAgICAgICAg
IFJlbmRlclRhYmxlKiB0YWJsZSA9IHRoaXMtPnRhYmxlKCk7CiAgICAgICAgIGlmICh0YWJsZSAm
JiAhdGFibGUtPnNlbGZOZWVkc0xheW91dCgpICYmICF0YWJsZS0+bm9ybWFsQ2hpbGROZWVkc0xh
eW91dCgpICYmIG9sZFN0eWxlICYmIG9sZFN0eWxlLT5ib3JkZXIoKSAhPSBzdHlsZSgpLT5ib3Jk
ZXIoKSkKICAgICAgICAgICAgIHRhYmxlLT5pbnZhbGlkYXRlQ29sbGFwc2VkQm9yZGVycygpOwor
ICAgICAgICAKKyAgICAgICAgaWYgKHRhYmxlICYmIG9sZFN0eWxlICYmIGRpZmYgPT0gU3R5bGVE
aWZmZXJlbmNlTGF5b3V0ICYmIG5lZWRzTGF5b3V0KCkgJiYgdGFibGUtPmNvbGxhcHNlQm9yZGVy
cygpICYmIGJvcmRlckxvZ2ljYWxXaWR0aENoYW5nZWQob2xkU3R5bGUsIHN0eWxlKCkpKSB7Cisg
ICAgICAgICAgICAvLyBJZiB0aGUgYm9yZGVyIHdpZHRoIGNoYW5nZXMgb24gYSByb3csIHdlIG5l
ZWQgdG8gbWFrZSBzdXJlIHRoZSBjZWxscyBpbiB0aGUgcm93IGtub3cgdG8gbGF5IG91dCBhZ2Fp
bi4KKyAgICAgICAgICAgIC8vIFRoaXMgb25seSBoYXBwZW5zIHdoZW4gYm9yZGVycyBhcmUgY29s
bGFwc2VkLCBzaW5jZSB0aGV5IGVuZCB1cCBhZmZlY3RpbmcgdGhlIGJvcmRlciBzaWRlcyBvZiB0
aGUgY2VsbAorICAgICAgICAgICAgLy8gaXRzZWxmLgorICAgICAgICAgICAgZm9yIChSZW5kZXJC
b3gqIGNoaWxkQm94ID0gZmlyc3RDaGlsZEJveCgpOyBjaGlsZEJveDsgY2hpbGRCb3ggPSBjaGls
ZEJveC0+bmV4dFNpYmxpbmdCb3goKSkgeworICAgICAgICAgICAgICAgIGlmICghY2hpbGRCb3gt
PmlzVGFibGVDZWxsKCkpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAg
ICAgICAgIGNoaWxkQm94LT5zZXRDaGlsZE5lZWRzTGF5b3V0KHRydWUsIE1hcmtPbmx5VGhpcyk7
CisgICAgICAgICAgICB9CisgICAgICAgIH0KICAgICB9CiB9CiAKSW5kZXg6IExheW91dFRlc3Rz
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9u
IDE0MzI3MCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDEzIEBACisyMDEzLTAyLTE4ICBEYXZpZCBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KKwor
ICAgICAgICBQYWRkaW5nIGFuZCBib3JkZXIgY2hhbmdlcyBkb24ndCB0cmlnZ2VyIHRoZSByZWxh
eW91dCBvZiBjaGlsZHJlbiBpbiBzb21lIGNhc2VzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NjM5LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9ibG9jay9wb3NpdGlvbmluZy9ib3JkZXIt
Y2hhbmdlLXJlbGF5b3V0LXRlc3QtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9ibG9jay9wb3NpdGlvbmluZy9ib3JkZXItY2hhbmdlLXJlbGF5b3V0LXRlc3QuaHRtbDogQWRk
ZWQuCisKIDIwMTMtMDItMTggIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAg
ICAgICBTdHJ1Y3R1cmU6OmZsYXR0ZW5EaWN0aW9uYXJ5U3RydWN0dXJlIHNob3VsZCBjb21wdXRl
IG1heCBvZmZzZXQgaW4gYSBtYW5uZXIgdGhhdCBzb3VuZGx5IGhhbmRsZXMgdGhlIGNhc2Ugd2hl
cmUgdGhlIHByb3BlcnR5IGxpc3QgYmVjb21lcyBlbXB0eQpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9ibG9jay9wb3NpdGlvbmluZy9ib3JkZXItY2hhbmdlLXJlbGF5b3V0LXRlc3QtZXhwZWN0ZWQu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL3Bvc2l0aW9uaW5nL2Jv
cmRlci1jaGFuZ2UtcmVsYXlvdXQtdGVzdC1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9ibG9jay9wb3NpdGlvbmluZy9ib3JkZXItY2hhbmdlLXJlbGF5b3V0
LXRlc3QtZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNiBAQAorPCFkb2N0
eXBlIGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKyogeyAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRl
ci1ib3g7IH0KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9InRlc3QiIHN0eWxl
PSJwb3NpdGlvbjpyZWxhdGl2ZTsgd2lkdGg6MTAwcHg7aGVpZ2h0OjEwMHB4OyBib3JkZXI6NXB4
IHNvbGlkIGJsYWNrOyBiYWNrZ3JvdW5kLWNvbG9yOnJlZCI+CisgICAgPGRpdiBzdHlsZT0iZGlz
cGxheTppbmxpbmUtYmxvY2siPgorICAgICAgICA8ZGl2PgorICAgICAgICAgICAgPGRpdiBzdHls
ZT0icG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3RvcDowO3dpZHRoOjEwMCU7IGhlaWdodDoxMDAl
O2JhY2tncm91bmQtY29sb3I6bGltZSI+PC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgIDwvZGl2
PgorPC9kaXY+Cis8L2JvZHk+CisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYmxvY2svcG9zaXRp
b25pbmcvYm9yZGVyLWNoYW5nZS1yZWxheW91dC10ZXN0Lmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9ibG9jay9wb3NpdGlvbmluZy9ib3JkZXItY2hhbmdlLXJlbGF5b3V0LXRl
c3QuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvYmxvY2svcG9zaXRpb25p
bmcvYm9yZGVyLWNoYW5nZS1yZWxheW91dC10ZXN0Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsMTYgQEAKKzwhZG9jdHlwZSBodG1sPgorPGhlYWQ+Cis8c3R5bGU+CisqIHsgLXdlYmtpdC1i
b3gtc2l6aW5nOiBib3JkZXItYm94OyB9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHkgb25sb2Fk
PSJkb2N1bWVudC5ib2R5Lm9mZnNldFdpZHRoOyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVz
dCcpLnN0eWxlLmJvcmRlciA9ICc1cHggc29saWQgYmxhY2snIj4KKzxkaXYgaWQ9InRlc3QiIHN0
eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZTsgd2lkdGg6MTAwcHg7aGVpZ2h0OjEwMHB4OyBib3JkZXI6
MTBweCBzb2xpZCBibHVlOyBiYWNrZ3JvdW5kLWNvbG9yOnJlZCI+CisgICAgPGRpdiBzdHlsZT0i
ZGlzcGxheTppbmxpbmUtYmxvY2siPgorICAgICAgICA8ZGl2PgorICAgICAgICAgICAgPGRpdiBz
dHlsZT0icG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3RvcDowO3dpZHRoOjEwMCU7IGhlaWdodDox
MDAlO2JhY2tncm91bmQtY29sb3I6bGltZSI+PC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgIDwv
ZGl2PgorPC9kaXY+Cis8L2JvZHk+CisK
</data>
<flag name="review"
          id="209213"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
      

    </bug>

</bugzilla>