<?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>33593</bug_id>
          
          <creation_ts>2010-01-13 05:22:46 -0800</creation_ts>
          <short_desc>getComputedStyle gives incorrect information for &apos;height&apos; property</short_desc>
          <delta_ts>2012-04-03 16:30:24 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>HasReduction</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Allan Jardine">allan.jardine</reporter>
          <assigned_to name="Alexis Menard (darktears)">menard</assigned_to>
          <cc>bdakin</cc>
    
    <cc>dbarton</cc>
    
    <cc>dbates</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>hyatt</cc>
    
    <cc>jchaffraix</cc>
    
    <cc>koivisto</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>mitz</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>180177</commentid>
    <comment_count>0</comment_count>
      <attachid>46450</attachid>
    <who name="Allan Jardine">allan.jardine</who>
    <bug_when>2010-01-13 05:22:46 -0800</bug_when>
    <thetext>Created attachment 46450
Page showing the issue

When using getComputedStyle on a table cell to obtain the &apos;height&apos; property, Webkit appears to be giving the incorrect value (possibly returning the line-height instead?). The attached example (and live example here: http://sprymedia.co.uk/media/misc/webkit/table_height.html ) shows that the computed height is returns as 18px, even although I&apos;ve specifically given the cell a height of 200px in the CSS. I would have expected that the 200px would be returned.

Behaviour of other browsers:
1. Firefox 3.5: gives a height of 140px. This was why this test was but together in the first place, it appears to be using a &quot;border-box&quot; box model - for some reason.
2. Opera 10.10: gives a height of 140px as well

Tested on shipping Safari 4.0.2, Webkit r53178 and Chrome (Mac) 4.0.249.49 (35163) beta.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567223</commentid>
    <comment_count>1</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-02-28 16:42:25 -0800</bug_when>
    <thetext>As discussed with Alexis, it looks like this is a table cell issue: CSSComputedStyle calls internally RenderBox::contentBoxRect() that doesn&apos;t include the cell&apos;s intrinsic padding as it should.

Allan, a work-around is to set box-sizing: border-box; (or anything but &apos;content-box&apos;) on your cell. That should give you the right value (or at least something closer to what you want).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567953</commentid>
    <comment_count>2</comment_count>
      <attachid>129520</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2012-02-29 14:34:32 -0800</bug_when>
    <thetext>Created attachment 129520
Possible patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567959</commentid>
    <comment_count>3</comment_count>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2012-02-29 14:38:55 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Created an attachment (id=129520) [details]
&gt; Possible patch.

The proposed patch triggers regression in some layout tests for example : vertical-align-baseline.html where one cell is not correctly rendered.

&lt;td style=&quot;padding-top: 15px; border-top: 10px solid blue; border-bottom: 5px solid blue; vertical-align: bottom;&quot;&gt;&lt;div style=&quot;background-color: lightpink;&quot;&gt;Lorem&lt;/div&gt;&lt;/td&gt;

I&apos;m wondering if my patch is the correct approach or I should do something special in CSSComputedStyleDeclaration to handle the special case of cells. A bit like padding top is doing (by passing false to not take into account the intrinsic padding).

Any pointer would be appreciated here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>568255</commentid>
    <comment_count>4</comment_count>
      <attachid>129520</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-29 19:52:03 -0800</bug_when>
    <thetext>Comment on attachment 129520
Possible patch.

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

New failing tests:
fast/table/vertical-align-baseline.html
editing/deleting/5433862-1.html
fast/table/table-insert-before-non-anonymous-block.html
fast/table/border-collapsing/003.html
tables/mozilla/bugs/bug3037-1.html
editing/deleting/5206311-2.html
editing/deleting/5206311-1.html
fast/table/table-in-table-percent-width.html
editing/deleting/5433862-2.html
fast/table/table-in-table-percent-width-quirks-mode.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>568617</commentid>
    <comment_count>5</comment_count>
      <attachid>129695</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2012-03-01 06:17:54 -0800</bug_when>
    <thetext>Created attachment 129695
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>568730</commentid>
    <comment_count>6</comment_count>
      <attachid>129695</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-03-01 09:49:54 -0800</bug_when>
    <thetext>Comment on attachment 129695
Patch

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

&gt; Source/WebCore/rendering/RenderBox.h:134
&gt; +    LayoutRect contentBoxRect(bool includeIntrinsicPadding = false) const { return LayoutRect(borderLeft() + paddingLeft(includeIntrinsicPadding), borderTop() + paddingTop(includeIntrinsicPadding), contentWidth(includeIntrinsicPadding), contentHeight(includeIntrinsicPadding)); }

I really don&apos;t think the booleans are the way to go. Especially since here actually they mean to *exclude* the intrinsic padding from the contentBoxRect... We would need a new function if we really go down that path to avoid such errors.

&gt; Source/WebCore/rendering/RenderBox.h:182
&gt; +    LayoutUnit contentWidth(bool includeIntrinsicPadding = false) const { return clientWidth() - paddingLeft(includeIntrinsicPadding) - paddingRight(includeIntrinsicPadding); }
&gt; +    LayoutUnit contentHeight(bool includeIntrinsicPadding = false) const { return clientHeight() - paddingTop(includeIntrinsicPadding) - paddingBottom(includeIntrinsicPadding); }

IMHO the real bug is those 2 functions: we shouldn&apos;t remove the intrinsic padding AFAICT but dhyatt should comment on that further as he wrote the original intrinsic padding logic.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>568740</commentid>
    <comment_count>7</comment_count>
      <attachid>129719</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2012-03-01 09:57:50 -0800</bug_when>
    <thetext>Created attachment 129719
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>568950</commentid>
    <comment_count>8</comment_count>
      <attachid>129719</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2012-03-01 14:50:18 -0800</bug_when>
    <thetext>Comment on attachment 129719
Patch

Adding review flag for some people to look at it...maybe...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>568955</commentid>
    <comment_count>9</comment_count>
      <attachid>129719</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-03-01 14:58:59 -0800</bug_when>
    <thetext>Comment on attachment 129719
Patch

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

&gt; Source/WebCore/editing/DeleteSelectionCommand.cpp:366
&gt; +        if (r &amp;&amp; r-&gt;isTableCell() &amp;&amp; toRenderTableCell(r)-&gt;contentHeight(true) &lt;= 0) {

Enums are alwasy more clear than booleans.

&gt; Source/WebCore/rendering/RenderBox.h:181
&gt; +    LayoutUnit contentWidth(bool includeIntrinsicPadding = false) const { return clientWidth() - paddingLeft(includeIntrinsicPadding) - paddingRight(includeIntrinsicPadding); }

Please make this an Enum if you&apos;re going to go this route.

enum PaddingOptions { IncludeIntrinsicPadding, ExcludeIntrinsicPadding }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>570753</commentid>
    <comment_count>10</comment_count>
      <attachid>130149</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2012-03-05 09:07:30 -0800</bug_when>
    <thetext>Created attachment 130149
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>570759</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-05 09:10:55 -0800</bug_when>
    <thetext>Attachment 130149 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/fast...&quot; exit_code: 1
Source/WebCore/rendering/RenderBoxModelObject.h:83:  The parameter name &quot;paddingOption&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/rendering/RenderBoxModelObject.h:84:  The parameter name &quot;paddingOption&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/rendering/RenderBoxModelObject.h:85:  The parameter name &quot;paddingOption&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/rendering/RenderBoxModelObject.h:86:  The parameter name &quot;paddingOption&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/rendering/RenderBoxModelObject.h:87:  The parameter name &quot;paddingOption&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/rendering/RenderBoxModelObject.h:88:  The parameter name &quot;paddingOption&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/rendering/RenderBoxModelObject.h:89:  The parameter name &quot;paddingOption&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/rendering/RenderBoxModelObject.h:90:  The parameter name &quot;paddingOption&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/rendering/RenderTableCell.h:123:  The parameter name &quot;paddingOption&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/rendering/RenderTableCell.h:124:  The parameter name &quot;paddingOption&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/rendering/RenderTableCell.h:125:  The parameter name &quot;paddingOption&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/rendering/RenderTableCell.h:126:  The parameter name &quot;paddingOption&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/rendering/RenderTableCell.h:131:  The parameter name &quot;paddingOption&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/rendering/RenderTableCell.h:132:  The parameter name &quot;paddingOption&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 14 in 12 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>570885</commentid>
    <comment_count>12</comment_count>
      <attachid>130149</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2012-03-05 11:40:20 -0800</bug_when>
    <thetext>Comment on attachment 130149
Patch

This is way too intrusive. Just patch CSSComputedStyleDeclaration to do the right thing if renderer()-&gt;isTableCell() and don&apos;t complicate the interfaces to all of these functions that are widely used by all the other renderers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>570889</commentid>
    <comment_count>13</comment_count>
      <attachid>130149</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2012-03-05 11:43:51 -0800</bug_when>
    <thetext>Comment on attachment 130149
Patch

Actually meh I changed my mind. This is probably fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>570891</commentid>
    <comment_count>14</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2012-03-05 11:44:11 -0800</bug_when>
    <thetext>Please fix the style failures though before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>570994</commentid>
    <comment_count>15</comment_count>
      <attachid>130193</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2012-03-05 13:26:17 -0800</bug_when>
    <thetext>Created attachment 130193
Patch landed 2012-03-05</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571190</commentid>
    <comment_count>16</comment_count>
      <attachid>130193</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-05 16:51:53 -0800</bug_when>
    <thetext>Comment on attachment 130193
Patch landed 2012-03-05

Clearing flags on attachment: 130193

Committed r109818: &lt;http://trac.webkit.org/changeset/109818&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571191</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-05 16:52:02 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>592479</commentid>
    <comment_count>18</comment_count>
    <who name="Dave Barton">dbarton</who>
    <bug_when>2012-03-30 14:01:43 -0700</bug_when>
    <thetext>I am exploring using intrinsic padding for MathML, and this patch is causing me problems. I think the 5 uses of ExcludeIntrinsicPadding in RenderBox.h are wrong. For example:

    LayoutUnit contentWidth(PaddingOptions paddingOption = ExcludeIntrinsicPadding) const { return clientWidth() - paddingLeft(paddingOption) - paddingRight(paddingOption); }

Note that ExcludeIntrinsicPadding here causes the intrinsic padding to *not* be subtracted out (as Julien pointed out in comment #6), so it *is* counted as part of the content width, thus changing the previous behavior of contentWidth() (i.e., when called with no arguments). When I add intrinsic left padding to a MathML element, this confuses { text-align: center }, for instance, breaking my MathML layout.

Perhaps the enum values should be changed to { PaddingIncludesIntrinsic, PaddingExcludesIntrinsic }. Then the 5 occurrences of ExcludeIntrinsicPadding as a default argument in RenderBox.h could be changed to PaddingIncludesIntrinsic. I could do this here or in a new bug, but I&apos;d rather that someone involved in table rendering do it, so they can consider &amp; revise the rest of this patch as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>592774</commentid>
    <comment_count>19</comment_count>
    <who name="Dave Barton">dbarton</who>
    <bug_when>2012-03-30 20:38:35 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>592775</commentid>
    <comment_count>20</comment_count>
      <attachid>134936</attachid>
    <who name="Dave Barton">dbarton</who>
    <bug_when>2012-03-30 20:38:38 -0700</bug_when>
    <thetext>Created attachment 134936
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>592778</commentid>
    <comment_count>21</comment_count>
    <who name="Dave Barton">dbarton</who>
    <bug_when>2012-03-30 20:43:11 -0700</bug_when>
    <thetext>I went ahead and created a new patch, since I need this for MathML. I am fairly new, so please let me know if this corrected patch would be better in a new bug report, or if I should mark the previous patch as still not obsolete, since it was landed. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>593095</commentid>
    <comment_count>22</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2012-04-01 15:32:48 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; I went ahead and created a new patch, since I need this for MathML. I am fairly new, so please let me know if this corrected patch would be better in a new bug report, or if I should mark the previous patch as still not obsolete, since it was landed. Thanks!

Please file a new bug report with the patch.

You may find it beneficial to read the email &lt;https://lists.webkit.org/pipermail/webkit-dev/2011-June/017169.html&gt;, which discusses the strategy and motivation for filing a new bug report instead of reopening- or posting patches on- the original bug report.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>595019</commentid>
    <comment_count>23</comment_count>
    <who name="Dave Barton">dbarton</who>
    <bug_when>2012-04-03 16:30:24 -0700</bug_when>
    <thetext>I&apos;ve opened bug 83092 for the further intrinsic padding &amp; content box issues.

Thanks to everyone for their help.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>46450</attachid>
            <date>2010-01-13 05:22:46 -0800</date>
            <delta_ts>2010-01-13 05:22:46 -0800</delta_ts>
            <desc>Page showing the issue</desc>
            <filename>table_height.html</filename>
            <type>text/html</type>
            <size>1901</size>
            <attacher name="Allan Jardine">allan.jardine</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIgoJImh0dHA6
Ly93d3cudzMub3JnL1RSL2h0bWw0L3N0cmljdC5kdGQiPgo8aHRtbD4KCTxoZWFkPgoJCTx0aXRs
ZT5UYWJsZSBjZWxsIGhlaWdodDwvdGl0bGU+CgkJCgkJPHN0eWxlIHR5cGU9InRleHQvY3NzIiBt
ZWRpYT0ic2NyZWVuIj4KCQkJdGFibGUgewoJCQkJZmxvYXQ6IGxlZnQ7CgkJCX0KCQkJCgkJCXRh
YmxlIHRkIHsKCQkJCXBhZGRpbmc6IDIwcHg7CgkJCQlib3JkZXI6IDEwcHggc29saWQgYmx1ZTsK
CQkJfQoJCQkKCQkJI2NlbGwxIHsKCQkJCWhlaWdodDogMjAwcHg7CgkJCX0KCQk8L3N0eWxlPgoJ
CQoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+CgkJCXdp
bmRvdy5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7CgkJCQl2YXIgbjEgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnY2VsbDEnKTsKCQkJCXZhciBjb21wU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRT
dHlsZShuMSxudWxsKTsKCQkJCXZhciBoZWlnaHQgPSBjb21wU3R5bGUuZ2V0UHJvcGVydHlWYWx1
ZSgnaGVpZ2h0Jyk7CgkJCQl2YXIgcGFkZGluZ1RvcCA9IGNvbXBTdHlsZS5nZXRQcm9wZXJ0eVZh
bHVlKCdwYWRkaW5nLXRvcCcpOwoJCQkJdmFyIGJvcmRlclRvcCA9IGNvbXBTdHlsZS5nZXRQcm9w
ZXJ0eVZhbHVlKCdib3JkZXItdG9wLXdpZHRoJyk7CgkJCQl2YXIgcGFkZGluZ0JvdHRvbSA9IGNv
bXBTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCdwYWRkaW5nLWJvdHRvbScpOwoJCQkJdmFyIGJvcmRl
ckJvdHRvbSA9IGNvbXBTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCdib3JkZXItYm90dG9tLXdpZHRo
Jyk7CgkJCQkKCQkJCWhlaWdodCA9IHBhcnNlSW50KCBoZWlnaHQucmVwbGFjZSgvcHgvLCIiKSAp
OwoJCQkJcGFkZGluZ1RvcCA9IHBhcnNlSW50KCBwYWRkaW5nVG9wLnJlcGxhY2UoL3B4LywiIikg
KTsKCQkJCWJvcmRlclRvcCA9IHBhcnNlSW50KCBib3JkZXJUb3AucmVwbGFjZSgvcHgvLCIiKSAp
OwoJCQkJcGFkZGluZ0JvdHRvbSA9IHBhcnNlSW50KCBwYWRkaW5nQm90dG9tLnJlcGxhY2UoL3B4
LywiIikgKTsKCQkJCWJvcmRlckJvdHRvbSA9IHBhcnNlSW50KCBib3JkZXJCb3R0b20ucmVwbGFj
ZSgvcHgvLCIiKSApOwoJCQkJCgkJCQlkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2VsbDInKS5z
dHlsZS5oZWlnaHQgPSAoaGVpZ2h0K3BhZGRpbmdUb3ArYm9yZGVyVG9wKwoJCQkJCXBhZGRpbmdC
b3R0b20rYm9yZGVyQm90dG9tKSsicHgiOwoJCQkJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Nl
bGwzJykuc3R5bGUuaGVpZ2h0ID0gaGVpZ2h0KyJweCI7CgkJCQkKCQkJCWRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdpbmZvJykuaW5uZXJIVE1MID0gIkNvbXB1dGVkIGhlaWdodCBvZiBjZWxsIGlu
IGZpcnN0IHRhYmxlOiAiK2hlaWdodCsicHgiOwoJCQl9OwoJCTwvc2NyaXB0PgoJPC9oZWFkPgoJ
PGJvZHk+CgkJPGRpdiBpZD0iaW5mbyI+PC9kaXY+CgkJPHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNw
YWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIj4KCQkJPHRyPgoJCQkJPHRkIGlkPSJjZWxsMSI+T3Jp
Z2luYWwgLSBoZWlnaHQgMjAwcHg8L3RkPgoJCQk8L3RyPgoJCTwvdGFibGU+CgkJPHRhYmxlIGJv
cmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIj4KCQkJPHRyPgoJCQkJPHRk
IGlkPSJjZWxsMiI+Q29waWVkIG91dGVySGVpZ2h0PC90ZD4KCQkJPC90cj4KCQk8L3RhYmxlPgoJ
CTx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCI+CgkJCTx0
cj4KCQkJCTx0ZCBpZD0iY2VsbDMiPkNvcGllZCBoZWlnaHQ8L3RkPgoJCQk8L3RyPgoJCTwvdGFi
bGU+Cgk8L2JvZHk+CjwvaHRtbD4=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129520</attachid>
            <date>2012-02-29 14:34:32 -0800</date>
            <delta_ts>2012-03-01 06:17:38 -0800</delta_ts>
            <desc>Possible patch.</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>1625</size>
            <attacher name="Alexis Menard (darktears)">menard</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAppbmRleCBlMjNiNWQyLi5lM2E5NWViIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCkBAIC0xMzEsNyArMTMxLDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBib3JkZXJCb3VuZGluZ0JveCgpIGNvbnN0IHsg
cmV0dXJuIGJvcmRlckJveFJlY3QoKTsgfSAKIAogICAgIC8vIFRoZSBjb250ZW50IGFyZWEgb2Yg
dGhlIGJveCAoZXhjbHVkZXMgcGFkZGluZyBhbmQgYm9yZGVyKS4KLSAgICBMYXlvdXRSZWN0IGNv
bnRlbnRCb3hSZWN0KCkgY29uc3QgeyByZXR1cm4gTGF5b3V0UmVjdChib3JkZXJMZWZ0KCkgKyBw
YWRkaW5nTGVmdCgpLCBib3JkZXJUb3AoKSArIHBhZGRpbmdUb3AoKSwgY29udGVudFdpZHRoKCks
IGNvbnRlbnRIZWlnaHQoKSk7IH0KKyAgICBMYXlvdXRSZWN0IGNvbnRlbnRCb3hSZWN0KCkgY29u
c3QgeyByZXR1cm4gTGF5b3V0UmVjdChib3JkZXJMZWZ0KCkgKyBwYWRkaW5nTGVmdChmYWxzZSks
IGJvcmRlclRvcCgpICsgcGFkZGluZ1RvcChmYWxzZSksIGNvbnRlbnRXaWR0aCgpLCBjb250ZW50
SGVpZ2h0KCkpOyB9CiAgICAgLy8gVGhlIGNvbnRlbnQgYm94IGluIGFic29sdXRlIGNvb3Jkcy4g
SWdub3JlcyB0cmFuc2Zvcm1zLgogICAgIExheW91dFJlY3QgYWJzb2x1dGVDb250ZW50Qm94KCkg
Y29uc3Q7CiAgICAgLy8gVGhlIGNvbnRlbnQgYm94IGNvbnZlcnRlZCB0byBhYnNvbHV0ZSBjb29y
ZHMgKHRha2luZyB0cmFuc2Zvcm1zIGludG8gYWNjb3VudCkuCkBAIC0xNzgsOCArMTc4LDggQEAg
cHVibGljOgogICAgIAogICAgIHZvaWQgdXBkYXRlTGF5ZXJUcmFuc2Zvcm0oKTsKIAotICAgIExh
eW91dFVuaXQgY29udGVudFdpZHRoKCkgY29uc3QgeyByZXR1cm4gY2xpZW50V2lkdGgoKSAtIHBh
ZGRpbmdMZWZ0KCkgLSBwYWRkaW5nUmlnaHQoKTsgfQotICAgIExheW91dFVuaXQgY29udGVudEhl
aWdodCgpIGNvbnN0IHsgcmV0dXJuIGNsaWVudEhlaWdodCgpIC0gcGFkZGluZ1RvcCgpIC0gcGFk
ZGluZ0JvdHRvbSgpOyB9CisgICAgTGF5b3V0VW5pdCBjb250ZW50V2lkdGgoKSBjb25zdCB7IHJl
dHVybiBjbGllbnRXaWR0aCgpIC0gcGFkZGluZ0xlZnQoZmFsc2UpIC0gcGFkZGluZ1JpZ2h0KGZh
bHNlKTsgfQorICAgIExheW91dFVuaXQgY29udGVudEhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIGNs
aWVudEhlaWdodCgpIC0gcGFkZGluZ1RvcChmYWxzZSkgLSBwYWRkaW5nQm90dG9tKGZhbHNlKTsg
fQogICAgIExheW91dFVuaXQgY29udGVudExvZ2ljYWxXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIHN0
eWxlKCktPmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBjb250ZW50V2lkdGgoKSA6IGNvbnRl
bnRIZWlnaHQoKTsgfQogICAgIExheW91dFVuaXQgY29udGVudExvZ2ljYWxIZWlnaHQoKSBjb25z
dCB7IHJldHVybiBzdHlsZSgpLT5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gY29udGVudEhl
aWdodCgpIDogY29udGVudFdpZHRoKCk7IH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129695</attachid>
            <date>2012-03-01 06:17:54 -0800</date>
            <delta_ts>2012-03-01 09:57:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-33593-20120301111738.patch</filename>
            <type>text/plain</type>
            <size>6398</size>
            <attacher name="Alexis Menard (darktears)">menard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5MTM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjJmNjliNWM0ZjU1NzY2
MDdkOGU5OGVhNGFlYjEyMTJhMjhlMDE3Yy4uMTQ5MzY4NWE5NTc4OTMxZDQ3OTQ0MjFlNjc2NTVj
ZGVjN2RiODQ1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTAzLTAxICBBbGV4
aXMgTWVuYXJkICA8YWxleGlzLm1lbmFyZEBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIGdldENv
bXB1dGVkU3R5bGUgZ2l2ZXMgaW5jb3JyZWN0IGluZm9ybWF0aW9uIGZvciAnaGVpZ2h0JyBwcm9w
ZXJ0eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzM1
OTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBu
ZXcgdGVzdHMuIChPT1BTISkKKworICAgICAgICAqIGVkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29t
bWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpyZW1v
dmVOb2RlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94Lmg6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJCb3g6OmNvbnRlbnRCb3hSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckJveDo6Y29udGVudFdpZHRoKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6Y29udGVu
dEhlaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmNvbnRlbnRMb2dpY2FsV2lk
dGgpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94Ojpjb250ZW50TG9naWNhbEhlaWdodCk6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUYWJsZUNlbGw6OmNlbGxCYXNlbGluZVBvc2l0aW9uKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRhYmxlU2VjdGlvbjo6Zmlyc3RMaW5lQm94QmFzZWxpbmUpOgorCiAyMDEyLTAyLTI4ICBBbGV4
aXMgTWVuYXJkICA8YWxleGlzLm1lbmFyZEBvcGVuYm9zc2Eub3JnPgogCiAgICAgICAgIGdldENv
bXB1dGVkU3R5bGUgZmFpbHMgZm9yICdmaXJzdC1saW5lJyBwc2V1ZG8tZWxlbWVudApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKaW5kZXgg
OWE5NDUwOWNlYTI1OWRlZWFkNjg5ODc3MTBjNDg2ODkyYzMwNzMxMS4uMGI4NmRmMjExMGMzZGE5
MDBiMGQ1NTg5YjZmZDc0NWYxYjRmYmU0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCkBAIC0zNjMsNyArMzYzLDcgQEAgdm9pZCBE
ZWxldGVTZWxlY3Rpb25Db21tYW5kOjpyZW1vdmVOb2RlKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSkK
ICAgICAgICAgLy8gTWFrZSBzdXJlIGVtcHR5IGNlbGwgaGFzIHNvbWUgaGVpZ2h0LCBpZiBhIHBs
YWNlaG9sZGVyIGNhbiBiZSBpbnNlcnRlZC4KICAgICAgICAgZG9jdW1lbnQoKS0+dXBkYXRlTGF5
b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAgICAgICAgIFJlbmRlck9iamVjdCAqciA9
IG5vZGUtPnJlbmRlcmVyKCk7Ci0gICAgICAgIGlmIChyICYmIHItPmlzVGFibGVDZWxsKCkgJiYg
dG9SZW5kZXJUYWJsZUNlbGwociktPmNvbnRlbnRIZWlnaHQoKSA8PSAwKSB7CisgICAgICAgIGlm
IChyICYmIHItPmlzVGFibGVDZWxsKCkgJiYgdG9SZW5kZXJUYWJsZUNlbGwociktPmNvbnRlbnRI
ZWlnaHQodHJ1ZSkgPD0gMCkgewogICAgICAgICAgICAgUG9zaXRpb24gZmlyc3RFZGl0YWJsZVBv
c2l0aW9uID0gZmlyc3RFZGl0YWJsZVBvc2l0aW9uSW5Ob2RlKG5vZGUuZ2V0KCkpOwogICAgICAg
ICAgICAgaWYgKGZpcnN0RWRpdGFibGVQb3NpdGlvbi5pc05vdE51bGwoKSkKICAgICAgICAgICAg
ICAgICBpbnNlcnRCbG9ja1BsYWNlaG9sZGVyKGZpcnN0RWRpdGFibGVQb3NpdGlvbik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKaW5kZXggZTIzYjVkMjZlNjdlYjBjNTU4NWYzYWIz
NjFmM2U3ODE3ZGE0ZmRiOC4uMDlhN2MzOTM2ODUyZTQyN2M5NTY5NDFmODczMzNkZWJjYjA1ODQ5
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaApAQCAtMTMxLDcgKzEzMSw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIExheW91dFJlY3QgYm9yZGVyQm91bmRpbmdCb3goKSBjb25z
dCB7IHJldHVybiBib3JkZXJCb3hSZWN0KCk7IH0gCiAKICAgICAvLyBUaGUgY29udGVudCBhcmVh
IG9mIHRoZSBib3ggKGV4Y2x1ZGVzIHBhZGRpbmcgYW5kIGJvcmRlcikuCi0gICAgTGF5b3V0UmVj
dCBjb250ZW50Qm94UmVjdCgpIGNvbnN0IHsgcmV0dXJuIExheW91dFJlY3QoYm9yZGVyTGVmdCgp
ICsgcGFkZGluZ0xlZnQoKSwgYm9yZGVyVG9wKCkgKyBwYWRkaW5nVG9wKCksIGNvbnRlbnRXaWR0
aCgpLCBjb250ZW50SGVpZ2h0KCkpOyB9CisgICAgTGF5b3V0UmVjdCBjb250ZW50Qm94UmVjdChi
b29sIGluY2x1ZGVJbnRyaW5zaWNQYWRkaW5nID0gZmFsc2UpIGNvbnN0IHsgcmV0dXJuIExheW91
dFJlY3QoYm9yZGVyTGVmdCgpICsgcGFkZGluZ0xlZnQoaW5jbHVkZUludHJpbnNpY1BhZGRpbmcp
LCBib3JkZXJUb3AoKSArIHBhZGRpbmdUb3AoaW5jbHVkZUludHJpbnNpY1BhZGRpbmcpLCBjb250
ZW50V2lkdGgoaW5jbHVkZUludHJpbnNpY1BhZGRpbmcpLCBjb250ZW50SGVpZ2h0KGluY2x1ZGVJ
bnRyaW5zaWNQYWRkaW5nKSk7IH0KICAgICAvLyBUaGUgY29udGVudCBib3ggaW4gYWJzb2x1dGUg
Y29vcmRzLiBJZ25vcmVzIHRyYW5zZm9ybXMuCiAgICAgTGF5b3V0UmVjdCBhYnNvbHV0ZUNvbnRl
bnRCb3goKSBjb25zdDsKICAgICAvLyBUaGUgY29udGVudCBib3ggY29udmVydGVkIHRvIGFic29s
dXRlIGNvb3JkcyAodGFraW5nIHRyYW5zZm9ybXMgaW50byBhY2NvdW50KS4KQEAgLTE3OCwxMCAr
MTc4LDEwIEBAIHB1YmxpYzoKICAgICAKICAgICB2b2lkIHVwZGF0ZUxheWVyVHJhbnNmb3JtKCk7
CiAKLSAgICBMYXlvdXRVbml0IGNvbnRlbnRXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIGNsaWVudFdp
ZHRoKCkgLSBwYWRkaW5nTGVmdCgpIC0gcGFkZGluZ1JpZ2h0KCk7IH0KLSAgICBMYXlvdXRVbml0
IGNvbnRlbnRIZWlnaHQoKSBjb25zdCB7IHJldHVybiBjbGllbnRIZWlnaHQoKSAtIHBhZGRpbmdU
b3AoKSAtIHBhZGRpbmdCb3R0b20oKTsgfQotICAgIExheW91dFVuaXQgY29udGVudExvZ2ljYWxX
aWR0aCgpIGNvbnN0IHsgcmV0dXJuIHN0eWxlKCktPmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkg
PyBjb250ZW50V2lkdGgoKSA6IGNvbnRlbnRIZWlnaHQoKTsgfQotICAgIExheW91dFVuaXQgY29u
dGVudExvZ2ljYWxIZWlnaHQoKSBjb25zdCB7IHJldHVybiBzdHlsZSgpLT5pc0hvcml6b250YWxX
cml0aW5nTW9kZSgpID8gY29udGVudEhlaWdodCgpIDogY29udGVudFdpZHRoKCk7IH0KKyAgICBM
YXlvdXRVbml0IGNvbnRlbnRXaWR0aChib29sIGluY2x1ZGVJbnRyaW5zaWNQYWRkaW5nID0gZmFs
c2UpIGNvbnN0IHsgcmV0dXJuIGNsaWVudFdpZHRoKCkgLSBwYWRkaW5nTGVmdChpbmNsdWRlSW50
cmluc2ljUGFkZGluZykgLSBwYWRkaW5nUmlnaHQoaW5jbHVkZUludHJpbnNpY1BhZGRpbmcpOyB9
CisgICAgTGF5b3V0VW5pdCBjb250ZW50SGVpZ2h0KGJvb2wgaW5jbHVkZUludHJpbnNpY1BhZGRp
bmcgPSBmYWxzZSkgY29uc3QgeyByZXR1cm4gY2xpZW50SGVpZ2h0KCkgLSBwYWRkaW5nVG9wKGlu
Y2x1ZGVJbnRyaW5zaWNQYWRkaW5nKSAtIHBhZGRpbmdCb3R0b20oaW5jbHVkZUludHJpbnNpY1Bh
ZGRpbmcpOyB9CisgICAgTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbFdpZHRoKGJvb2wgaW5jbHVk
ZUludHJpbnNpY1BhZGRpbmcgPSBmYWxzZSkgY29uc3QgeyByZXR1cm4gc3R5bGUoKS0+aXNIb3Jp
em9udGFsV3JpdGluZ01vZGUoKSA/IGNvbnRlbnRXaWR0aChpbmNsdWRlSW50cmluc2ljUGFkZGlu
ZykgOiBjb250ZW50SGVpZ2h0KGluY2x1ZGVJbnRyaW5zaWNQYWRkaW5nKTsgfQorICAgIExheW91
dFVuaXQgY29udGVudExvZ2ljYWxIZWlnaHQoYm9vbCBpbmNsdWRlSW50cmluc2ljUGFkZGluZyA9
IGZhbHNlKSBjb25zdCB7IHJldHVybiBzdHlsZSgpLT5pc0hvcml6b250YWxXcml0aW5nTW9kZSgp
ID8gY29udGVudEhlaWdodChpbmNsdWRlSW50cmluc2ljUGFkZGluZykgOiBjb250ZW50V2lkdGgo
aW5jbHVkZUludHJpbnNpY1BhZGRpbmcpOyB9CiAKICAgICAvLyBJRSBleHRlbnNpb25zLiBVc2Vk
IHRvIGNhbGN1bGF0ZSBvZmZzZXRXaWR0aC9IZWlnaHQuICBPdmVycmlkZGVuIGJ5IGlubGluZXMg
KFJlbmRlckZsb3cpCiAgICAgLy8gdG8gcmV0dXJuIHRoZSByZW1haW5pbmcgd2lkdGggb24gYSBn
aXZlbiBsaW5lIChhbmQgdGhlIGhlaWdodCBvZiBhIHNpbmdsZSBsaW5lKS4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5jcHAKaW5kZXggNDM0YWMwZDY5NWJhOTIz
YWEwNzFlMDA1MDE1YzEwM2ZmODM5ZTQ0OS4uOTUxZTBlMTE5MjFiYjMyOWYzZWEzMjVkOTY3NDZl
NzJhN2NmZmEwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRh
YmxlQ2VsbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2Vs
bC5jcHAKQEAgLTMyOCw3ICszMjgsNyBAQCBMYXlvdXRVbml0IFJlbmRlclRhYmxlQ2VsbDo6Y2Vs
bEJhc2VsaW5lUG9zaXRpb24oKSBjb25zdAogICAgIExheW91dFVuaXQgZmlyc3RMaW5lQmFzZWxp
bmUgPSBmaXJzdExpbmVCb3hCYXNlbGluZSgpOwogICAgIGlmIChmaXJzdExpbmVCYXNlbGluZSAh
PSAtMSkKICAgICAgICAgcmV0dXJuIGZpcnN0TGluZUJhc2VsaW5lOwotICAgIHJldHVybiBwYWRk
aW5nQmVmb3JlKCkgKyBib3JkZXJCZWZvcmUoKSArIGNvbnRlbnRMb2dpY2FsSGVpZ2h0KCk7Cisg
ICAgcmV0dXJuIHBhZGRpbmdCZWZvcmUoKSArIGJvcmRlckJlZm9yZSgpICsgY29udGVudExvZ2lj
YWxIZWlnaHQodHJ1ZSk7CiB9CiAKIHZvaWQgUmVuZGVyVGFibGVDZWxsOjpzdHlsZURpZENoYW5n
ZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcAppbmRleCA2
NDc1Zjg3MDJlODM1YzQ0NmNlMDIxNDYzMTllZGNiNjMyYzk3ODNkLi5jNGE0ZDMxY2E2MmYzZDFl
MGIwMjcwM2Q3MDIxMTNhMTkwNTBmM2JkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcApAQCAtOTEyLDcgKzkxMiw3IEBAIExheW91dFVuaXQg
UmVuZGVyVGFibGVTZWN0aW9uOjpmaXJzdExpbmVCb3hCYXNlbGluZSgpIGNvbnN0CiAgICAgICAg
IGNvbnN0IENlbGxTdHJ1Y3QmIGNzID0gZmlyc3RSb3cuYXQoaSk7CiAgICAgICAgIGNvbnN0IFJl
bmRlclRhYmxlQ2VsbCogY2VsbCA9IGNzLnByaW1hcnlDZWxsKCk7CiAgICAgICAgIGlmIChjZWxs
KQotICAgICAgICAgICAgZmlyc3RMaW5lQmFzZWxpbmUgPSBtYXgoZmlyc3RMaW5lQmFzZWxpbmUs
IGNlbGwtPmxvZ2ljYWxUb3AoKSArIGNlbGwtPnBhZGRpbmdCZWZvcmUoKSArIGNlbGwtPmJvcmRl
ckJlZm9yZSgpICsgY2VsbC0+Y29udGVudExvZ2ljYWxIZWlnaHQoKSk7CisgICAgICAgICAgICBm
aXJzdExpbmVCYXNlbGluZSA9IG1heChmaXJzdExpbmVCYXNlbGluZSwgY2VsbC0+bG9naWNhbFRv
cCgpICsgY2VsbC0+cGFkZGluZ0JlZm9yZSgpICsgY2VsbC0+Ym9yZGVyQmVmb3JlKCkgKyBjZWxs
LT5jb250ZW50TG9naWNhbEhlaWdodCh0cnVlKSk7CiAgICAgfQogCiAgICAgcmV0dXJuIGZpcnN0
TGluZUJhc2VsaW5lOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129719</attachid>
            <date>2012-03-01 09:57:50 -0800</date>
            <delta_ts>2012-03-05 09:07:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-33593-20120301145734.patch</filename>
            <type>text/plain</type>
            <size>9299</size>
            <attacher name="Alexis Menard (darktears)">menard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5MTM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjJmNjliNWM0ZjU1NzY2
MDdkOGU5OGVhNGFlYjEyMTJhMjhlMDE3Yy4uZWYzN2E4MjA3MmVhZTRkNDNmZDMzZjRlZjRjZjUw
YTA3OGEwYTRhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTAzLTAxICBBbGV4
aXMgTWVuYXJkICA8YWxleGlzLm1lbmFyZEBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIGdldENv
bXB1dGVkU3R5bGUgZ2l2ZXMgaW5jb3JyZWN0IGluZm9ybWF0aW9uIGZvciAnaGVpZ2h0JyBwcm9w
ZXJ0eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzM1
OTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtl
IHN1cmUgdGhhdCB0aGUgY29udGVudEJveFJlY3QgZG9lc24ndCB0YWtlIGludG8gYWNjb3VudCB0
aGUKKyAgICAgICAgaW50cmluc2ljIHBhZGRpbmcuCisKKyAgICAgICAgVGVzdDogZmFzdC9jc3Mv
Z2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLWhlaWdodC5odG1sCisKKyAgICAgICAg
KiBlZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6cmVtb3ZlTm9kZSk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckJveC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94Ojpjb250ZW50Qm94UmVj
dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmNvbnRlbnRXaWR0aCk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJCb3g6OmNvbnRlbnRIZWlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyQm94Ojpjb250ZW50TG9naWNhbFdpZHRoKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckJveDo6Y29udGVudExvZ2ljYWxIZWlnaHQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJU
YWJsZUNlbGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGVDZWxsOjpjZWxsQmFz
ZWxpbmVQb3NpdGlvbik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZVNlY3Rpb246OmZpcnN0TGluZUJveEJh
c2VsaW5lKToKKwogMjAxMi0wMi0yOCAgQWxleGlzIE1lbmFyZCAgPGFsZXhpcy5tZW5hcmRAb3Bl
bmJvc3NhLm9yZz4KIAogICAgICAgICBnZXRDb21wdXRlZFN0eWxlIGZhaWxzIGZvciAnZmlyc3Qt
bGluZScgcHNldWRvLWVsZW1lbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0
ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCmluZGV4IDlhOTQ1MDljZWEyNTlkZWVhZDY4OTg3NzEwYzQ4
Njg5MmMzMDczMTEuLjBiODZkZjIxMTBjM2RhOTAwYjBkNTU4OWI2ZmQ3NDVmMWI0ZmJlNDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNw
cApAQCAtMzYzLDcgKzM2Myw3IEBAIHZvaWQgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6cmVtb3Zl
Tm9kZShQYXNzUmVmUHRyPE5vZGU+IG5vZGUpCiAgICAgICAgIC8vIE1ha2Ugc3VyZSBlbXB0eSBj
ZWxsIGhhcyBzb21lIGhlaWdodCwgaWYgYSBwbGFjZWhvbGRlciBjYW4gYmUgaW5zZXJ0ZWQuCiAg
ICAgICAgIGRvY3VtZW50KCktPnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygp
OwogICAgICAgICBSZW5kZXJPYmplY3QgKnIgPSBub2RlLT5yZW5kZXJlcigpOwotICAgICAgICBp
ZiAociAmJiByLT5pc1RhYmxlQ2VsbCgpICYmIHRvUmVuZGVyVGFibGVDZWxsKHIpLT5jb250ZW50
SGVpZ2h0KCkgPD0gMCkgeworICAgICAgICBpZiAociAmJiByLT5pc1RhYmxlQ2VsbCgpICYmIHRv
UmVuZGVyVGFibGVDZWxsKHIpLT5jb250ZW50SGVpZ2h0KHRydWUpIDw9IDApIHsKICAgICAgICAg
ICAgIFBvc2l0aW9uIGZpcnN0RWRpdGFibGVQb3NpdGlvbiA9IGZpcnN0RWRpdGFibGVQb3NpdGlv
bkluTm9kZShub2RlLmdldCgpKTsKICAgICAgICAgICAgIGlmIChmaXJzdEVkaXRhYmxlUG9zaXRp
b24uaXNOb3ROdWxsKCkpCiAgICAgICAgICAgICAgICAgaW5zZXJ0QmxvY2tQbGFjZWhvbGRlcihm
aXJzdEVkaXRhYmxlUG9zaXRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCmlu
ZGV4IGUyM2I1ZDI2ZTY3ZWIwYzU1ODVmM2FiMzYxZjNlNzgxN2RhNGZkYjguLjA5YTdjMzkzNjg1
MmU0MjdjOTU2OTQxZjg3MzMzZGViY2IwNTg0OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQm94LmgKQEAgLTEzMSw3ICsxMzEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBMYXlvdXRS
ZWN0IGJvcmRlckJvdW5kaW5nQm94KCkgY29uc3QgeyByZXR1cm4gYm9yZGVyQm94UmVjdCgpOyB9
IAogCiAgICAgLy8gVGhlIGNvbnRlbnQgYXJlYSBvZiB0aGUgYm94IChleGNsdWRlcyBwYWRkaW5n
IGFuZCBib3JkZXIpLgotICAgIExheW91dFJlY3QgY29udGVudEJveFJlY3QoKSBjb25zdCB7IHJl
dHVybiBMYXlvdXRSZWN0KGJvcmRlckxlZnQoKSArIHBhZGRpbmdMZWZ0KCksIGJvcmRlclRvcCgp
ICsgcGFkZGluZ1RvcCgpLCBjb250ZW50V2lkdGgoKSwgY29udGVudEhlaWdodCgpKTsgfQorICAg
IExheW91dFJlY3QgY29udGVudEJveFJlY3QoYm9vbCBpbmNsdWRlSW50cmluc2ljUGFkZGluZyA9
IGZhbHNlKSBjb25zdCB7IHJldHVybiBMYXlvdXRSZWN0KGJvcmRlckxlZnQoKSArIHBhZGRpbmdM
ZWZ0KGluY2x1ZGVJbnRyaW5zaWNQYWRkaW5nKSwgYm9yZGVyVG9wKCkgKyBwYWRkaW5nVG9wKGlu
Y2x1ZGVJbnRyaW5zaWNQYWRkaW5nKSwgY29udGVudFdpZHRoKGluY2x1ZGVJbnRyaW5zaWNQYWRk
aW5nKSwgY29udGVudEhlaWdodChpbmNsdWRlSW50cmluc2ljUGFkZGluZykpOyB9CiAgICAgLy8g
VGhlIGNvbnRlbnQgYm94IGluIGFic29sdXRlIGNvb3Jkcy4gSWdub3JlcyB0cmFuc2Zvcm1zLgog
ICAgIExheW91dFJlY3QgYWJzb2x1dGVDb250ZW50Qm94KCkgY29uc3Q7CiAgICAgLy8gVGhlIGNv
bnRlbnQgYm94IGNvbnZlcnRlZCB0byBhYnNvbHV0ZSBjb29yZHMgKHRha2luZyB0cmFuc2Zvcm1z
IGludG8gYWNjb3VudCkuCkBAIC0xNzgsMTAgKzE3OCwxMCBAQCBwdWJsaWM6CiAgICAgCiAgICAg
dm9pZCB1cGRhdGVMYXllclRyYW5zZm9ybSgpOwogCi0gICAgTGF5b3V0VW5pdCBjb250ZW50V2lk
dGgoKSBjb25zdCB7IHJldHVybiBjbGllbnRXaWR0aCgpIC0gcGFkZGluZ0xlZnQoKSAtIHBhZGRp
bmdSaWdodCgpOyB9Ci0gICAgTGF5b3V0VW5pdCBjb250ZW50SGVpZ2h0KCkgY29uc3QgeyByZXR1
cm4gY2xpZW50SGVpZ2h0KCkgLSBwYWRkaW5nVG9wKCkgLSBwYWRkaW5nQm90dG9tKCk7IH0KLSAg
ICBMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsV2lkdGgoKSBjb25zdCB7IHJldHVybiBzdHlsZSgp
LT5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gY29udGVudFdpZHRoKCkgOiBjb250ZW50SGVp
Z2h0KCk7IH0KLSAgICBMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsSGVpZ2h0KCkgY29uc3QgeyBy
ZXR1cm4gc3R5bGUoKS0+aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IGNvbnRlbnRIZWlnaHQo
KSA6IGNvbnRlbnRXaWR0aCgpOyB9CisgICAgTGF5b3V0VW5pdCBjb250ZW50V2lkdGgoYm9vbCBp
bmNsdWRlSW50cmluc2ljUGFkZGluZyA9IGZhbHNlKSBjb25zdCB7IHJldHVybiBjbGllbnRXaWR0
aCgpIC0gcGFkZGluZ0xlZnQoaW5jbHVkZUludHJpbnNpY1BhZGRpbmcpIC0gcGFkZGluZ1JpZ2h0
KGluY2x1ZGVJbnRyaW5zaWNQYWRkaW5nKTsgfQorICAgIExheW91dFVuaXQgY29udGVudEhlaWdo
dChib29sIGluY2x1ZGVJbnRyaW5zaWNQYWRkaW5nID0gZmFsc2UpIGNvbnN0IHsgcmV0dXJuIGNs
aWVudEhlaWdodCgpIC0gcGFkZGluZ1RvcChpbmNsdWRlSW50cmluc2ljUGFkZGluZykgLSBwYWRk
aW5nQm90dG9tKGluY2x1ZGVJbnRyaW5zaWNQYWRkaW5nKTsgfQorICAgIExheW91dFVuaXQgY29u
dGVudExvZ2ljYWxXaWR0aChib29sIGluY2x1ZGVJbnRyaW5zaWNQYWRkaW5nID0gZmFsc2UpIGNv
bnN0IHsgcmV0dXJuIHN0eWxlKCktPmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBjb250ZW50
V2lkdGgoaW5jbHVkZUludHJpbnNpY1BhZGRpbmcpIDogY29udGVudEhlaWdodChpbmNsdWRlSW50
cmluc2ljUGFkZGluZyk7IH0KKyAgICBMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsSGVpZ2h0KGJv
b2wgaW5jbHVkZUludHJpbnNpY1BhZGRpbmcgPSBmYWxzZSkgY29uc3QgeyByZXR1cm4gc3R5bGUo
KS0+aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IGNvbnRlbnRIZWlnaHQoaW5jbHVkZUludHJp
bnNpY1BhZGRpbmcpIDogY29udGVudFdpZHRoKGluY2x1ZGVJbnRyaW5zaWNQYWRkaW5nKTsgfQog
CiAgICAgLy8gSUUgZXh0ZW5zaW9ucy4gVXNlZCB0byBjYWxjdWxhdGUgb2Zmc2V0V2lkdGgvSGVp
Z2h0LiAgT3ZlcnJpZGRlbiBieSBpbmxpbmVzIChSZW5kZXJGbG93KQogICAgIC8vIHRvIHJldHVy
biB0aGUgcmVtYWluaW5nIHdpZHRoIG9uIGEgZ2l2ZW4gbGluZSAoYW5kIHRoZSBoZWlnaHQgb2Yg
YSBzaW5nbGUgbGluZSkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGFibGVDZWxsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNl
bGwuY3BwCmluZGV4IDQzNGFjMGQ2OTViYTkyM2FhMDcxZTAwNTAxNWMxMDNmZjgzOWU0NDkuLjk1
MWUwZTExOTIxYmIzMjlmM2VhMzI1ZDk2NzQ2ZTcyYTdjZmZhMGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwCkBAIC0zMjgsNyArMzI4LDcgQEAgTGF5
b3V0VW5pdCBSZW5kZXJUYWJsZUNlbGw6OmNlbGxCYXNlbGluZVBvc2l0aW9uKCkgY29uc3QKICAg
ICBMYXlvdXRVbml0IGZpcnN0TGluZUJhc2VsaW5lID0gZmlyc3RMaW5lQm94QmFzZWxpbmUoKTsK
ICAgICBpZiAoZmlyc3RMaW5lQmFzZWxpbmUgIT0gLTEpCiAgICAgICAgIHJldHVybiBmaXJzdExp
bmVCYXNlbGluZTsKLSAgICByZXR1cm4gcGFkZGluZ0JlZm9yZSgpICsgYm9yZGVyQmVmb3JlKCkg
KyBjb250ZW50TG9naWNhbEhlaWdodCgpOworICAgIHJldHVybiBwYWRkaW5nQmVmb3JlKCkgKyBi
b3JkZXJCZWZvcmUoKSArIGNvbnRlbnRMb2dpY2FsSGVpZ2h0KHRydWUpOwogfQogCiB2b2lkIFJl
bmRlclRhYmxlQ2VsbDo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0
IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRhYmxlU2VjdGlvbi5jcHAKaW5kZXggNjQ3NWY4NzAyZTgzNWM0NDZjZTAyMTQ2MzE5ZWRj
YjYzMmM5NzgzZC4uYzRhNGQzMWNhNjJmM2QxZTBiMDI3MDNkNzAyMTEzYTE5MDUwZjNiZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5jcHAKQEAg
LTkxMiw3ICs5MTIsNyBAQCBMYXlvdXRVbml0IFJlbmRlclRhYmxlU2VjdGlvbjo6Zmlyc3RMaW5l
Qm94QmFzZWxpbmUoKSBjb25zdAogICAgICAgICBjb25zdCBDZWxsU3RydWN0JiBjcyA9IGZpcnN0
Um93LmF0KGkpOwogICAgICAgICBjb25zdCBSZW5kZXJUYWJsZUNlbGwqIGNlbGwgPSBjcy5wcmlt
YXJ5Q2VsbCgpOwogICAgICAgICBpZiAoY2VsbCkKLSAgICAgICAgICAgIGZpcnN0TGluZUJhc2Vs
aW5lID0gbWF4KGZpcnN0TGluZUJhc2VsaW5lLCBjZWxsLT5sb2dpY2FsVG9wKCkgKyBjZWxsLT5w
YWRkaW5nQmVmb3JlKCkgKyBjZWxsLT5ib3JkZXJCZWZvcmUoKSArIGNlbGwtPmNvbnRlbnRMb2dp
Y2FsSGVpZ2h0KCkpOworICAgICAgICAgICAgZmlyc3RMaW5lQmFzZWxpbmUgPSBtYXgoZmlyc3RM
aW5lQmFzZWxpbmUsIGNlbGwtPmxvZ2ljYWxUb3AoKSArIGNlbGwtPnBhZGRpbmdCZWZvcmUoKSAr
IGNlbGwtPmJvcmRlckJlZm9yZSgpICsgY2VsbC0+Y29udGVudExvZ2ljYWxIZWlnaHQodHJ1ZSkp
OwogICAgIH0KIAogICAgIHJldHVybiBmaXJzdExpbmVCYXNlbGluZTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2NjQ4YTZh
OTBlNDg1YWE1NzRmMzNmMWE1NGVlNzNmMTcxMDk3NDI4Li5lOWU1OTU2MmFmMDY3ZjY0ODdiMGU0
OTcwZDE3ODNkNGQzY2RlMzY3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDMtMDEgIEFs
ZXhpcyBNZW5hcmQgIDxhbGV4aXMubWVuYXJkQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgZ2V0
Q29tcHV0ZWRTdHlsZSBnaXZlcyBpbmNvcnJlY3QgaW5mb3JtYXRpb24gZm9yICdoZWlnaHQnIHBy
b3BlcnR5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0z
MzU5MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1h
a2Ugc3VyZSB0aGF0IHRoZSBjb250ZW50Qm94UmVjdCBkb2Vzbid0IHRha2UgaW50byBhY2NvdW50
IHRoZQorICAgICAgICBpbnRyaW5zaWMgcGFkZGluZy4KKworICAgICAgICAqIGZhc3QvY3NzL2dl
dENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS1oZWlnaHQtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUt
aGVpZ2h0Lmh0bWw6IEFkZGVkLgorCiAyMDEyLTAyLTI4ICBBbGV4aXMgTWVuYXJkICA8YWxleGlz
Lm1lbmFyZEBvcGVuYm9zc2Eub3JnPgogCiAgICAgICAgIGdldENvbXB1dGVkU3R5bGUgZmFpbHMg
Zm9yICdmaXJzdC1saW5lJyBwc2V1ZG8tZWxlbWVudApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLWhlaWdodC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVk
U3R5bGUtaGVpZ2h0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZjJhNDhkMmY5NTQ2OTY3N2Rk
MmY2YWNhZTZmYTcxNzk1ODJiY2NhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLWhlaWdodC1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdCB0aGUgY29tcHV0ZWQgaGVpZ2h0IG9mIGEgY2VsbCA6
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMzU5My4KKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0eVZh
bHVlKCdoZWlnaHQnKSBpcyAnMjAwcHgnCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZ2V0
Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLWhlaWdodC5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLWhlaWdodC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmE2NDRjZWQyYjZhZjU2NGRlMjQ2ZTJiNjBiMWRmMjlhMmNhMjQ5NDYKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2dldENv
bXB1dGVkU3R5bGUtaGVpZ2h0Lmh0bWwKQEAgLTAsMCArMSwzOCBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHN0eWxlIHR5cGU9InRl
eHQvY3NzIj4KKyAgICB0YWJsZSB0ZCB7CisgICAgICAgIHBhZGRpbmc6IDIwcHg7CisgICAgICAg
IGJvcmRlcjogMTBweCBzb2xpZCBibHVlOworICAgIH0KKworICAgICNjZWxsMSB7CisgICAgICAg
IGhlaWdodDogMjAwcHg7CisgICAgfQorPC9zdHlsZT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8dGFi
bGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiIGlkPSJ0YWJsZSI+
CisgICAgPHRyIGlkPSJyb3cxIj4KKyAgICAgICAgPHRkIGlkPSJjZWxsMSI+aGVpZ2h0PC90ZD4K
KyAgICA8L3RyPgorPC90YWJsZT4KKzxzY3JpcHQ+CisKK2Rlc2NyaXB0aW9uKCJUZXN0IHRoZSBj
b21wdXRlZCBoZWlnaHQgb2YgYSBjZWxsIDogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTMzNTkzLiIpCisKK2UgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2VsbDEn
KTsKK3RhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhYmxlJyk7Citjb21wdXRlZFN0
eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZSwgbnVsbCk7CisKK3Nob3VsZEJlKCJjb21w
dXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ2hlaWdodCcpIiwgIicyMDBweCciKTsKKworZG9j
dW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0YWJsZSk7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130149</attachid>
            <date>2012-03-05 09:07:30 -0800</date>
            <delta_ts>2012-03-05 13:26:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-33593-20120305140713.patch</filename>
            <type>text/plain</type>
            <size>23273</size>
            <attacher name="Alexis Menard (darktears)">menard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5NzMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjFkNzNiNGU2ODFmZmI5
Y2IzNWZhMWJmMGJhOTU4MTIzMzc4Y2Q1MC4uZWNiYzZiZTRjOGIyMTViMjhlMDFjNDI0OGM3NmNi
MjdmMWY0ZjBmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEyLTAzLTA1ICBBbGV4
aXMgTWVuYXJkICA8YWxleGlzLm1lbmFyZEBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIGdldENv
bXB1dGVkU3R5bGUgZ2l2ZXMgaW5jb3JyZWN0IGluZm9ybWF0aW9uIGZvciAnaGVpZ2h0JyBwcm9w
ZXJ0eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzM1
OTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtl
IHN1cmUgdGhhdCB0aGUgY29udGVudEJveFJlY3QgZG9lc24ndCB0YWtlIGludG8gYWNjb3VudCB0
aGUKKyAgICAgICAgaW50cmluc2ljIHBhZGRpbmcgd2hlbiBxdWVyeWluZyBpdC4gQXMgc3RhdGVk
IGJ5IGh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtYm94LyN0aGUtbHNxdW8wCisgICAgICAgIHRo
ZSBoZWlnaHQgaXMgdGhlIGNvbnRlbnQgYXJlYSB3aGljaCBkb2Vzbid0IGluY2x1ZGUgdGhlIGlu
dHJpbnNpYyBwYWRkaW5nLCB0aGUgYm9yZGVyLCBhbmQKKyAgICAgICAgdGhlIHBhZGRpbmcuCisK
KyAgICAgICAgVGVzdDogZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxl
LWhlaWdodC5odG1sCisKKyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6Z2V0
UHJvcGVydHlDU1NWYWx1ZSk6CisgICAgICAgICogZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21t
YW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OnJlbW92
ZU5vZGUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guaDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckJveDo6Y29udGVudEJveFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
Qm94Ojpjb250ZW50V2lkdGgpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94Ojpjb250ZW50
SGVpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6Y29udGVudExvZ2ljYWxXaWR0
aCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmNvbnRlbnRMb2dpY2FsSGVpZ2h0KToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhZGRpbmdUb3ApOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhZGRpbmdCb3R0b20pOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhZGRpbmdMZWZ0KToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWRkaW5nUmlnaHQpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhZGRpbmdCZWZvcmUpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhZGRpbmdBZnRlcik6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFkZGluZ1N0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWRkaW5nRW5kKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyQm94TW9kZWxPYmplY3QuaDoKKyAgICAgICAgKFJlbmRlckJveE1vZGVsT2JqZWN0KToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRhYmxlQ2VsbDo6cGFkZGluZ1RvcCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUYWJsZUNlbGw6OnBhZGRpbmdCb3R0b20pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFi
bGVDZWxsOjpwYWRkaW5nTGVmdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZUNlbGw6
OnBhZGRpbmdSaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZUNlbGw6OnBhZGRp
bmdCZWZvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGVDZWxsOjpwYWRkaW5nQWZ0
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGVDZWxsOjpjZWxsQmFzZWxpbmVQb3Np
dGlvbik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5oOgorICAgICAgICAo
UmVuZGVyVGFibGVDZWxsKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlU2VjdGlvbjo6Zmlyc3RMaW5lQm94
QmFzZWxpbmUpOgorCiAyMDEyLTAzLTAyICBBbGV4YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogW1N0eWxlc10gW0NSQVNIXSBIYW5k
bGUgcnVsZSBhZGRpdGlvbiBhbmQgaW5saW5lIHN0eWxlIGVkaXRpbmcgZmFpbHVyZSBkdWUgdG8g
Q29udGVudC1TZWN1cml0eS1Qb2xpY3kgaW4gdGhlIHBhZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXggMGMwNTg0ZTgzNmRm
NTM5YTU0MmRmNjViMzlhNWIyN2JkMGI1N2FkMS4uYWUxMzgxMDUxYmI1OWNjMTMxNGVlZWQxNDc2
NWM3MmI5NTllNWRiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVk
U3R5bGVEZWNsYXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVk
U3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAgLTE4MTEsMTkgKzE4MTEsMTkgQEAgUGFzc1JlZlB0cjxD
U1NWYWx1ZT4gQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpnZXRQcm9wZXJ0eUNTU1ZhbHVl
KGludCBwcm9wZXIKICAgICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2wtPmNyZWF0ZVZhbHVl
KHN0eWxlLT5vdmVyZmxvd1koKSk7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlQYWRkaW5nVG9w
OgogICAgICAgICAgICAgaWYgKHJlbmRlcmVyICYmIHJlbmRlcmVyLT5pc0JveCgpKQotICAgICAg
ICAgICAgICAgIHJldHVybiB6b29tQWRqdXN0ZWRQaXhlbFZhbHVlKHRvUmVuZGVyQm94KHJlbmRl
cmVyKS0+cGFkZGluZ1RvcChmYWxzZSksIHN0eWxlLmdldCgpLCBjc3NWYWx1ZVBvb2wpOworICAg
ICAgICAgICAgICAgIHJldHVybiB6b29tQWRqdXN0ZWRQaXhlbFZhbHVlKHRvUmVuZGVyQm94KHJl
bmRlcmVyKS0+cGFkZGluZ1RvcChFeGNsdWRlSW50cmluc2ljUGFkZGluZyksIHN0eWxlLmdldCgp
LCBjc3NWYWx1ZVBvb2wpOwogICAgICAgICAgICAgcmV0dXJuIHpvb21BZGp1c3RlZFBpeGVsVmFs
dWVGb3JMZW5ndGgoc3R5bGUtPnBhZGRpbmdUb3AoKSwgc3R5bGUuZ2V0KCksIGNzc1ZhbHVlUG9v
bCk7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlQYWRkaW5nUmlnaHQ6CiAgICAgICAgICAgICBp
ZiAocmVuZGVyZXIgJiYgcmVuZGVyZXItPmlzQm94KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJu
IHpvb21BZGp1c3RlZFBpeGVsVmFsdWUodG9SZW5kZXJCb3gocmVuZGVyZXIpLT5wYWRkaW5nUmln
aHQoZmFsc2UpLCBzdHlsZS5nZXQoKSwgY3NzVmFsdWVQb29sKTsKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gem9vbUFkanVzdGVkUGl4ZWxWYWx1ZSh0b1JlbmRlckJveChyZW5kZXJlciktPnBhZGRp
bmdSaWdodChFeGNsdWRlSW50cmluc2ljUGFkZGluZyksIHN0eWxlLmdldCgpLCBjc3NWYWx1ZVBv
b2wpOwogICAgICAgICAgICAgcmV0dXJuIHpvb21BZGp1c3RlZFBpeGVsVmFsdWVGb3JMZW5ndGgo
c3R5bGUtPnBhZGRpbmdSaWdodCgpLCBzdHlsZS5nZXQoKSwgY3NzVmFsdWVQb29sKTsKICAgICAg
ICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmdCb3R0b206CiAgICAgICAgICAgICBpZiAocmVuZGVy
ZXIgJiYgcmVuZGVyZXItPmlzQm94KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHpvb21BZGp1
c3RlZFBpeGVsVmFsdWUodG9SZW5kZXJCb3gocmVuZGVyZXIpLT5wYWRkaW5nQm90dG9tKGZhbHNl
KSwgc3R5bGUuZ2V0KCksIGNzc1ZhbHVlUG9vbCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHpv
b21BZGp1c3RlZFBpeGVsVmFsdWUodG9SZW5kZXJCb3gocmVuZGVyZXIpLT5wYWRkaW5nQm90dG9t
KEV4Y2x1ZGVJbnRyaW5zaWNQYWRkaW5nKSwgc3R5bGUuZ2V0KCksIGNzc1ZhbHVlUG9vbCk7CiAg
ICAgICAgICAgICByZXR1cm4gem9vbUFkanVzdGVkUGl4ZWxWYWx1ZUZvckxlbmd0aChzdHlsZS0+
cGFkZGluZ0JvdHRvbSgpLCBzdHlsZS5nZXQoKSwgY3NzVmFsdWVQb29sKTsKICAgICAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eVBhZGRpbmdMZWZ0OgogICAgICAgICAgICAgaWYgKHJlbmRlcmVyICYmIHJl
bmRlcmVyLT5pc0JveCgpKQotICAgICAgICAgICAgICAgIHJldHVybiB6b29tQWRqdXN0ZWRQaXhl
bFZhbHVlKHRvUmVuZGVyQm94KHJlbmRlcmVyKS0+cGFkZGluZ0xlZnQoZmFsc2UpLCBzdHlsZS5n
ZXQoKSwgY3NzVmFsdWVQb29sKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gem9vbUFkanVzdGVk
UGl4ZWxWYWx1ZSh0b1JlbmRlckJveChyZW5kZXJlciktPnBhZGRpbmdMZWZ0KEV4Y2x1ZGVJbnRy
aW5zaWNQYWRkaW5nKSwgc3R5bGUuZ2V0KCksIGNzc1ZhbHVlUG9vbCk7CiAgICAgICAgICAgICBy
ZXR1cm4gem9vbUFkanVzdGVkUGl4ZWxWYWx1ZUZvckxlbmd0aChzdHlsZS0+cGFkZGluZ0xlZnQo
KSwgc3R5bGUuZ2V0KCksIGNzc1ZhbHVlUG9vbCk7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlQ
YWdlQnJlYWtBZnRlcjoKICAgICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2wtPmNyZWF0ZVZh
bHVlKHN0eWxlLT5wYWdlQnJlYWtBZnRlcigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCmluZGV4IDlhOTQ1MDljZWEyNTlkZWVhZDY4
OTg3NzEwYzQ4Njg5MmMzMDczMTEuLjVmNWRmY2ZiZDc0MjY0ZTQxYzFlMjI3YjJlMTBkNTg4NGNi
MzUwZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9u
Q29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25D
b21tYW5kLmNwcApAQCAtMzYzLDcgKzM2Myw3IEBAIHZvaWQgRGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZDo6cmVtb3ZlTm9kZShQYXNzUmVmUHRyPE5vZGU+IG5vZGUpCiAgICAgICAgIC8vIE1ha2Ugc3Vy
ZSBlbXB0eSBjZWxsIGhhcyBzb21lIGhlaWdodCwgaWYgYSBwbGFjZWhvbGRlciBjYW4gYmUgaW5z
ZXJ0ZWQuCiAgICAgICAgIGRvY3VtZW50KCktPnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHls
ZXNoZWV0cygpOwogICAgICAgICBSZW5kZXJPYmplY3QgKnIgPSBub2RlLT5yZW5kZXJlcigpOwot
ICAgICAgICBpZiAociAmJiByLT5pc1RhYmxlQ2VsbCgpICYmIHRvUmVuZGVyVGFibGVDZWxsKHIp
LT5jb250ZW50SGVpZ2h0KCkgPD0gMCkgeworICAgICAgICBpZiAociAmJiByLT5pc1RhYmxlQ2Vs
bCgpICYmIHRvUmVuZGVyVGFibGVDZWxsKHIpLT5jb250ZW50SGVpZ2h0KEluY2x1ZGVJbnRyaW5z
aWNQYWRkaW5nKSA8PSAwKSB7CiAgICAgICAgICAgICBQb3NpdGlvbiBmaXJzdEVkaXRhYmxlUG9z
aXRpb24gPSBmaXJzdEVkaXRhYmxlUG9zaXRpb25Jbk5vZGUobm9kZS5nZXQoKSk7CiAgICAgICAg
ICAgICBpZiAoZmlyc3RFZGl0YWJsZVBvc2l0aW9uLmlzTm90TnVsbCgpKQogICAgICAgICAgICAg
ICAgIGluc2VydEJsb2NrUGxhY2Vob2xkZXIoZmlyc3RFZGl0YWJsZVBvc2l0aW9uKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAppbmRleCAwMTRlNWJjMmU1NzAzNDEwNTQxYTY4MDAw
YzhjNzJkMDBjMzRhNDllLi4yMjEwYWY5ZGNmMGM2MjFlMjkzZmJjMTg1ZGI5NTRiZjJmYmM3YTM4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCkBAIC0xMzEsNyArMTMxLDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBib3JkZXJCb3VuZGluZ0JveCgpIGNvbnN0
IHsgcmV0dXJuIGJvcmRlckJveFJlY3QoKTsgfSAKIAogICAgIC8vIFRoZSBjb250ZW50IGFyZWEg
b2YgdGhlIGJveCAoZXhjbHVkZXMgcGFkZGluZyBhbmQgYm9yZGVyKS4KLSAgICBMYXlvdXRSZWN0
IGNvbnRlbnRCb3hSZWN0KCkgY29uc3QgeyByZXR1cm4gTGF5b3V0UmVjdChib3JkZXJMZWZ0KCkg
KyBwYWRkaW5nTGVmdCgpLCBib3JkZXJUb3AoKSArIHBhZGRpbmdUb3AoKSwgY29udGVudFdpZHRo
KCksIGNvbnRlbnRIZWlnaHQoKSk7IH0KKyAgICBMYXlvdXRSZWN0IGNvbnRlbnRCb3hSZWN0KFBh
ZGRpbmdPcHRpb25zIHBhZGRpbmdPcHRpb24gPSBFeGNsdWRlSW50cmluc2ljUGFkZGluZykgY29u
c3QgeyByZXR1cm4gTGF5b3V0UmVjdChib3JkZXJMZWZ0KCkgKyBwYWRkaW5nTGVmdChwYWRkaW5n
T3B0aW9uKSwgYm9yZGVyVG9wKCkgKyBwYWRkaW5nVG9wKHBhZGRpbmdPcHRpb24pLCBjb250ZW50
V2lkdGgocGFkZGluZ09wdGlvbiksIGNvbnRlbnRIZWlnaHQocGFkZGluZ09wdGlvbikpOyB9CiAg
ICAgLy8gVGhlIGNvbnRlbnQgYm94IGluIGFic29sdXRlIGNvb3Jkcy4gSWdub3JlcyB0cmFuc2Zv
cm1zLgogICAgIExheW91dFJlY3QgYWJzb2x1dGVDb250ZW50Qm94KCkgY29uc3Q7CiAgICAgLy8g
VGhlIGNvbnRlbnQgYm94IGNvbnZlcnRlZCB0byBhYnNvbHV0ZSBjb29yZHMgKHRha2luZyB0cmFu
c2Zvcm1zIGludG8gYWNjb3VudCkuCkBAIC0xNzgsMTAgKzE3OCwxMCBAQCBwdWJsaWM6CiAgICAg
CiAgICAgdm9pZCB1cGRhdGVMYXllclRyYW5zZm9ybSgpOwogCi0gICAgTGF5b3V0VW5pdCBjb250
ZW50V2lkdGgoKSBjb25zdCB7IHJldHVybiBjbGllbnRXaWR0aCgpIC0gcGFkZGluZ0xlZnQoKSAt
IHBhZGRpbmdSaWdodCgpOyB9Ci0gICAgTGF5b3V0VW5pdCBjb250ZW50SGVpZ2h0KCkgY29uc3Qg
eyByZXR1cm4gY2xpZW50SGVpZ2h0KCkgLSBwYWRkaW5nVG9wKCkgLSBwYWRkaW5nQm90dG9tKCk7
IH0KLSAgICBMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsV2lkdGgoKSBjb25zdCB7IHJldHVybiBz
dHlsZSgpLT5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gY29udGVudFdpZHRoKCkgOiBjb250
ZW50SGVpZ2h0KCk7IH0KLSAgICBMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsSGVpZ2h0KCkgY29u
c3QgeyByZXR1cm4gc3R5bGUoKS0+aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IGNvbnRlbnRI
ZWlnaHQoKSA6IGNvbnRlbnRXaWR0aCgpOyB9CisgICAgTGF5b3V0VW5pdCBjb250ZW50V2lkdGgo
UGFkZGluZ09wdGlvbnMgcGFkZGluZ09wdGlvbiA9IEV4Y2x1ZGVJbnRyaW5zaWNQYWRkaW5nKSBj
b25zdCB7IHJldHVybiBjbGllbnRXaWR0aCgpIC0gcGFkZGluZ0xlZnQocGFkZGluZ09wdGlvbikg
LSBwYWRkaW5nUmlnaHQocGFkZGluZ09wdGlvbik7IH0KKyAgICBMYXlvdXRVbml0IGNvbnRlbnRI
ZWlnaHQoUGFkZGluZ09wdGlvbnMgcGFkZGluZ09wdGlvbiA9IEV4Y2x1ZGVJbnRyaW5zaWNQYWRk
aW5nKSBjb25zdCB7IHJldHVybiBjbGllbnRIZWlnaHQoKSAtIHBhZGRpbmdUb3AocGFkZGluZ09w
dGlvbikgLSBwYWRkaW5nQm90dG9tKHBhZGRpbmdPcHRpb24pOyB9CisgICAgTGF5b3V0VW5pdCBj
b250ZW50TG9naWNhbFdpZHRoKFBhZGRpbmdPcHRpb25zIHBhZGRpbmdPcHRpb24gPSBFeGNsdWRl
SW50cmluc2ljUGFkZGluZykgY29uc3QgeyByZXR1cm4gc3R5bGUoKS0+aXNIb3Jpem9udGFsV3Jp
dGluZ01vZGUoKSA/IGNvbnRlbnRXaWR0aChwYWRkaW5nT3B0aW9uKSA6IGNvbnRlbnRIZWlnaHQo
cGFkZGluZ09wdGlvbik7IH0KKyAgICBMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsSGVpZ2h0KFBh
ZGRpbmdPcHRpb25zIHBhZGRpbmdPcHRpb24gPSBFeGNsdWRlSW50cmluc2ljUGFkZGluZykgY29u
c3QgeyByZXR1cm4gc3R5bGUoKS0+aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IGNvbnRlbnRI
ZWlnaHQocGFkZGluZ09wdGlvbikgOiBjb250ZW50V2lkdGgocGFkZGluZ09wdGlvbik7IH0KIAog
ICAgIC8vIElFIGV4dGVuc2lvbnMuIFVzZWQgdG8gY2FsY3VsYXRlIG9mZnNldFdpZHRoL0hlaWdo
dC4gIE92ZXJyaWRkZW4gYnkgaW5saW5lcyAoUmVuZGVyRmxvdykKICAgICAvLyB0byByZXR1cm4g
dGhlIHJlbWFpbmluZyB3aWR0aCBvbiBhIGdpdmVuIGxpbmUgKGFuZCB0aGUgaGVpZ2h0IG9mIGEg
c2luZ2xlIGxpbmUpLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJveE1vZGVsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hN
b2RlbE9iamVjdC5jcHAKaW5kZXggNWU0NjA2MjZlMTg0NTg0OGIxZjE3ZDYxNmUxNTAwNjZhZTFi
ZDdlOC4uYWM2ZDk4OWUxNjFmZGVhODk5ZmQxZTg4MjFhYjYxZTY4ZWZjMTg2NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCkBAIC01
MzgsNyArNTM4LDcgQEAgaW50IFJlbmRlckJveE1vZGVsT2JqZWN0OjpwaXhlbFNuYXBwZWRPZmZz
ZXRIZWlnaHQoKSBjb25zdAogICAgIHJldHVybiBvZmZzZXRIZWlnaHQoKTsKIH0KIAotTGF5b3V0
VW5pdCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFkZGluZ1RvcChib29sKSBjb25zdAorTGF5b3V0
VW5pdCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFkZGluZ1RvcChQYWRkaW5nT3B0aW9ucykgY29u
c3QKIHsKICAgICBMYXlvdXRVbml0IHcgPSAwOwogICAgIExlbmd0aCBwYWRkaW5nID0gc3R5bGUo
KS0+cGFkZGluZ1RvcCgpOwpAQCAtNTQ3LDcgKzU0Nyw3IEBAIExheW91dFVuaXQgUmVuZGVyQm94
TW9kZWxPYmplY3Q6OnBhZGRpbmdUb3AoYm9vbCkgY29uc3QKICAgICByZXR1cm4gcGFkZGluZy5j
YWxjTWluVmFsdWUodywgdmlld3BvcnRTaXplKCkpOwogfQogCi1MYXlvdXRVbml0IFJlbmRlckJv
eE1vZGVsT2JqZWN0OjpwYWRkaW5nQm90dG9tKGJvb2wpIGNvbnN0CitMYXlvdXRVbml0IFJlbmRl
ckJveE1vZGVsT2JqZWN0OjpwYWRkaW5nQm90dG9tKFBhZGRpbmdPcHRpb25zKSBjb25zdAogewog
ICAgIExheW91dFVuaXQgdyA9IDA7CiAgICAgTGVuZ3RoIHBhZGRpbmcgPSBzdHlsZSgpLT5wYWRk
aW5nQm90dG9tKCk7CkBAIC01NTYsNyArNTU2LDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJCb3hNb2Rl
bE9iamVjdDo6cGFkZGluZ0JvdHRvbShib29sKSBjb25zdAogICAgIHJldHVybiBwYWRkaW5nLmNh
bGNNaW5WYWx1ZSh3LCB2aWV3cG9ydFNpemUoKSk7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVyQm94
TW9kZWxPYmplY3Q6OnBhZGRpbmdMZWZ0KGJvb2wpIGNvbnN0CitMYXlvdXRVbml0IFJlbmRlckJv
eE1vZGVsT2JqZWN0OjpwYWRkaW5nTGVmdChQYWRkaW5nT3B0aW9ucykgY29uc3QKIHsKICAgICBM
YXlvdXRVbml0IHcgPSAwOwogICAgIExlbmd0aCBwYWRkaW5nID0gc3R5bGUoKS0+cGFkZGluZ0xl
ZnQoKTsKQEAgLTU2NSw3ICs1NjUsNyBAQCBMYXlvdXRVbml0IFJlbmRlckJveE1vZGVsT2JqZWN0
OjpwYWRkaW5nTGVmdChib29sKSBjb25zdAogICAgIHJldHVybiBwYWRkaW5nLmNhbGNNaW5WYWx1
ZSh3LCB2aWV3cG9ydFNpemUoKSk7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVyQm94TW9kZWxPYmpl
Y3Q6OnBhZGRpbmdSaWdodChib29sKSBjb25zdAorTGF5b3V0VW5pdCBSZW5kZXJCb3hNb2RlbE9i
amVjdDo6cGFkZGluZ1JpZ2h0KFBhZGRpbmdPcHRpb25zKSBjb25zdAogewogICAgIExheW91dFVu
aXQgdyA9IDA7CiAgICAgTGVuZ3RoIHBhZGRpbmcgPSBzdHlsZSgpLT5wYWRkaW5nUmlnaHQoKTsK
QEAgLTU3NCw3ICs1NzQsNyBAQCBMYXlvdXRVbml0IFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWRk
aW5nUmlnaHQoYm9vbCkgY29uc3QKICAgICByZXR1cm4gcGFkZGluZy5jYWxjTWluVmFsdWUodywg
dmlld3BvcnRTaXplKCkpOwogfQogCi1MYXlvdXRVbml0IFJlbmRlckJveE1vZGVsT2JqZWN0Ojpw
YWRkaW5nQmVmb3JlKGJvb2wpIGNvbnN0CitMYXlvdXRVbml0IFJlbmRlckJveE1vZGVsT2JqZWN0
OjpwYWRkaW5nQmVmb3JlKFBhZGRpbmdPcHRpb25zKSBjb25zdAogewogICAgIExheW91dFVuaXQg
dyA9IDA7CiAgICAgTGVuZ3RoIHBhZGRpbmcgPSBzdHlsZSgpLT5wYWRkaW5nQmVmb3JlKCk7CkBA
IC01ODMsNyArNTgzLDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFkZGlu
Z0JlZm9yZShib29sKSBjb25zdAogICAgIHJldHVybiBwYWRkaW5nLmNhbGNNaW5WYWx1ZSh3LCB2
aWV3cG9ydFNpemUoKSk7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBh
ZGRpbmdBZnRlcihib29sKSBjb25zdAorTGF5b3V0VW5pdCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6
cGFkZGluZ0FmdGVyKFBhZGRpbmdPcHRpb25zKSBjb25zdAogewogICAgIExheW91dFVuaXQgdyA9
IDA7CiAgICAgTGVuZ3RoIHBhZGRpbmcgPSBzdHlsZSgpLT5wYWRkaW5nQWZ0ZXIoKTsKQEAgLTU5
Miw3ICs1OTIsNyBAQCBMYXlvdXRVbml0IFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWRkaW5nQWZ0
ZXIoYm9vbCkgY29uc3QKICAgICByZXR1cm4gcGFkZGluZy5jYWxjTWluVmFsdWUodywgdmlld3Bv
cnRTaXplKCkpOwogfQogCi1MYXlvdXRVbml0IFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWRkaW5n
U3RhcnQoYm9vbCkgY29uc3QKK0xheW91dFVuaXQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhZGRp
bmdTdGFydChQYWRkaW5nT3B0aW9ucykgY29uc3QKIHsKICAgICBMYXlvdXRVbml0IHcgPSAwOwog
ICAgIExlbmd0aCBwYWRkaW5nID0gc3R5bGUoKS0+cGFkZGluZ1N0YXJ0KCk7CkBAIC02MDEsNyAr
NjAxLDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFkZGluZ1N0YXJ0KGJv
b2wpIGNvbnN0CiAgICAgcmV0dXJuIHBhZGRpbmcuY2FsY01pblZhbHVlKHcsIHZpZXdwb3J0U2l6
ZSgpKTsKIH0KIAotTGF5b3V0VW5pdCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFkZGluZ0VuZChi
b29sKSBjb25zdAorTGF5b3V0VW5pdCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFkZGluZ0VuZChQ
YWRkaW5nT3B0aW9ucykgY29uc3QKIHsKICAgICBMYXlvdXRVbml0IHcgPSAwOwogICAgIExlbmd0
aCBwYWRkaW5nID0gc3R5bGUoKS0+cGFkZGluZ0VuZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaAppbmRleCAzZGYzZDRhMTQ5MzNiMWJlY2Rj
MDE2NzdkMmI4MzAxYmRjOWI1OTE5Li4yZGM3NDI3NzhkMmVhNjZiNTA1NGRlMjM5NjBiZmQwZWNk
YjJiMWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9k
ZWxPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxP
YmplY3QuaApAQCAtNDAsNiArNDAsOCBAQCBlbnVtIEJhY2tncm91bmRCbGVlZEF2b2lkYW5jZSB7
CiAgICAgQmFja2dyb3VuZEJsZWVkVXNlVHJhbnNwYXJlbmN5TGF5ZXIKIH07CiAKK2VudW0gUGFk
ZGluZ09wdGlvbnMgeyBJbmNsdWRlSW50cmluc2ljUGFkZGluZywgRXhjbHVkZUludHJpbnNpY1Bh
ZGRpbmcgfTsKKwogLy8gVGhpcyBjbGFzcyBpcyB0aGUgYmFzZSBmb3IgYWxsIG9iamVjdHMgdGhh
dCBhZGhlcmUgdG8gdGhlIENTUyBib3ggbW9kZWwgYXMgZGVzY3JpYmVkCiAvLyBhdCBodHRwOi8v
d3d3LnczLm9yZy9UUi9DU1MyMS9ib3guaHRtbAogCkBAIC03OCwxNCArODAsMTQgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBib3JkZXJCb3VuZGluZ0JveCgpIGNvbnN0ID0gMDsK
IAogICAgIC8vIFZpcnR1YWwgc2luY2UgdGFibGUgY2VsbHMgb3ZlcnJpZGUKLSAgICB2aXJ0dWFs
IExheW91dFVuaXQgcGFkZGluZ1RvcChib29sIGluY2x1ZGVJbnRyaW5zaWNQYWRkaW5nID0gdHJ1
ZSkgY29uc3Q7Ci0gICAgdmlydHVhbCBMYXlvdXRVbml0IHBhZGRpbmdCb3R0b20oYm9vbCBpbmNs
dWRlSW50cmluc2ljUGFkZGluZyA9IHRydWUpIGNvbnN0OwotICAgIHZpcnR1YWwgTGF5b3V0VW5p
dCBwYWRkaW5nTGVmdChib29sIGluY2x1ZGVJbnRyaW5zaWNQYWRkaW5nID0gdHJ1ZSkgY29uc3Q7
Ci0gICAgdmlydHVhbCBMYXlvdXRVbml0IHBhZGRpbmdSaWdodChib29sIGluY2x1ZGVJbnRyaW5z
aWNQYWRkaW5nID0gdHJ1ZSkgY29uc3Q7Ci0gICAgdmlydHVhbCBMYXlvdXRVbml0IHBhZGRpbmdC
ZWZvcmUoYm9vbCBpbmNsdWRlSW50cmluc2ljUGFkZGluZyA9IHRydWUpIGNvbnN0OwotICAgIHZp
cnR1YWwgTGF5b3V0VW5pdCBwYWRkaW5nQWZ0ZXIoYm9vbCBpbmNsdWRlSW50cmluc2ljUGFkZGlu
ZyA9IHRydWUpIGNvbnN0OwotICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBwYWRkaW5nU3RhcnQoYm9v
bCBpbmNsdWRlSW50cmluc2ljUGFkZGluZyA9IHRydWUpIGNvbnN0OwotICAgIHZpcnR1YWwgTGF5
b3V0VW5pdCBwYWRkaW5nRW5kKGJvb2wgaW5jbHVkZUludHJpbnNpY1BhZGRpbmcgPSB0cnVlKSBj
b25zdDsKKyAgICB2aXJ0dWFsIExheW91dFVuaXQgcGFkZGluZ1RvcChQYWRkaW5nT3B0aW9ucyBw
YWRkaW5nT3B0aW9uID0gSW5jbHVkZUludHJpbnNpY1BhZGRpbmcpIGNvbnN0OworICAgIHZpcnR1
YWwgTGF5b3V0VW5pdCBwYWRkaW5nQm90dG9tKFBhZGRpbmdPcHRpb25zIHBhZGRpbmdPcHRpb24g
PSBJbmNsdWRlSW50cmluc2ljUGFkZGluZykgY29uc3Q7CisgICAgdmlydHVhbCBMYXlvdXRVbml0
IHBhZGRpbmdMZWZ0KFBhZGRpbmdPcHRpb25zIHBhZGRpbmdPcHRpb24gPSBJbmNsdWRlSW50cmlu
c2ljUGFkZGluZykgY29uc3Q7CisgICAgdmlydHVhbCBMYXlvdXRVbml0IHBhZGRpbmdSaWdodChQ
YWRkaW5nT3B0aW9ucyBwYWRkaW5nT3B0aW9uID0gSW5jbHVkZUludHJpbnNpY1BhZGRpbmcpIGNv
bnN0OworICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBwYWRkaW5nQmVmb3JlKFBhZGRpbmdPcHRpb25z
IHBhZGRpbmdPcHRpb24gPSBJbmNsdWRlSW50cmluc2ljUGFkZGluZykgY29uc3Q7CisgICAgdmly
dHVhbCBMYXlvdXRVbml0IHBhZGRpbmdBZnRlcihQYWRkaW5nT3B0aW9ucyBwYWRkaW5nT3B0aW9u
ID0gSW5jbHVkZUludHJpbnNpY1BhZGRpbmcpIGNvbnN0OworICAgIHZpcnR1YWwgTGF5b3V0VW5p
dCBwYWRkaW5nU3RhcnQoUGFkZGluZ09wdGlvbnMgcGFkZGluZ09wdGlvbiA9IEluY2x1ZGVJbnRy
aW5zaWNQYWRkaW5nKSBjb25zdDsKKyAgICB2aXJ0dWFsIExheW91dFVuaXQgcGFkZGluZ0VuZChQ
YWRkaW5nT3B0aW9ucyBwYWRkaW5nT3B0aW9uID0gSW5jbHVkZUludHJpbnNpY1BhZGRpbmcpIGNv
bnN0OwogCiAgICAgdmlydHVhbCBpbnQgYm9yZGVyVG9wKCkgY29uc3QgeyByZXR1cm4gc3R5bGUo
KS0+Ym9yZGVyVG9wV2lkdGgoKTsgfQogICAgIHZpcnR1YWwgaW50IGJvcmRlckJvdHRvbSgpIGNv
bnN0IHsgcmV0dXJuIHN0eWxlKCktPmJvcmRlckJvdHRvbVdpZHRoKCk7IH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5jcHAKaW5kZXggNzIyZTJkMWI3NGM0N2Y3
MzA5ZmMxY2NjMzgxZDEwMWE2YWVmNjI3MS4uYmJkMTM0MDMyZmE1MGQ2ZTcwZDE5M2FmYzhmZTdk
N2M1Nzg4MjY1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRh
YmxlQ2VsbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2Vs
bC5jcHAKQEAgLTE5MSw1MSArMTkxLDUxIEBAIHZvaWQgUmVuZGVyVGFibGVDZWxsOjpsYXlvdXQo
KQogICAgIHNldENlbGxXaWR0aENoYW5nZWQoZmFsc2UpOwogfQogCi1MYXlvdXRVbml0IFJlbmRl
clRhYmxlQ2VsbDo6cGFkZGluZ1RvcChib29sIGluY2x1ZGVJbnRyaW5zaWNQYWRkaW5nKSBjb25z
dAorTGF5b3V0VW5pdCBSZW5kZXJUYWJsZUNlbGw6OnBhZGRpbmdUb3AoUGFkZGluZ09wdGlvbnMg
cGFkZGluZ09wdGlvbikgY29uc3QKIHsKICAgICBMYXlvdXRVbml0IHJlc3VsdCA9IFJlbmRlckJs
b2NrOjpwYWRkaW5nVG9wKCk7Ci0gICAgaWYgKCFpbmNsdWRlSW50cmluc2ljUGFkZGluZyB8fCAh
aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkKKyAgICBpZiAocGFkZGluZ09wdGlvbiA9PSBFeGNs
dWRlSW50cmluc2ljUGFkZGluZyB8fCAhaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkKICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKICAgICByZXR1cm4gcmVzdWx0ICsgKHN0eWxlKCktPndyaXRpbmdN
b2RlKCkgPT0gVG9wVG9Cb3R0b21Xcml0aW5nTW9kZSA/IGludHJpbnNpY1BhZGRpbmdCZWZvcmUo
KSA6IGludHJpbnNpY1BhZGRpbmdBZnRlcigpKTsKIH0KIAotTGF5b3V0VW5pdCBSZW5kZXJUYWJs
ZUNlbGw6OnBhZGRpbmdCb3R0b20oYm9vbCBpbmNsdWRlSW50cmluc2ljUGFkZGluZykgY29uc3QK
K0xheW91dFVuaXQgUmVuZGVyVGFibGVDZWxsOjpwYWRkaW5nQm90dG9tKFBhZGRpbmdPcHRpb25z
IHBhZGRpbmdPcHRpb24pIGNvbnN0CiB7CiAgICAgTGF5b3V0VW5pdCByZXN1bHQgPSBSZW5kZXJC
bG9jazo6cGFkZGluZ0JvdHRvbSgpOwotICAgIGlmICghaW5jbHVkZUludHJpbnNpY1BhZGRpbmcg
fHwgIWlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCisgICAgaWYgKHBhZGRpbmdPcHRpb24gPT0g
RXhjbHVkZUludHJpbnNpY1BhZGRpbmcgfHwgIWlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCiAg
ICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgcmV0dXJuIHJlc3VsdCArIChzdHlsZSgpLT53cml0
aW5nTW9kZSgpID09IFRvcFRvQm90dG9tV3JpdGluZ01vZGUgPyBpbnRyaW5zaWNQYWRkaW5nQWZ0
ZXIoKSA6IGludHJpbnNpY1BhZGRpbmdCZWZvcmUoKSk7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVy
VGFibGVDZWxsOjpwYWRkaW5nTGVmdChib29sIGluY2x1ZGVJbnRyaW5zaWNQYWRkaW5nKSBjb25z
dAorTGF5b3V0VW5pdCBSZW5kZXJUYWJsZUNlbGw6OnBhZGRpbmdMZWZ0KFBhZGRpbmdPcHRpb25z
IHBhZGRpbmdPcHRpb24pIGNvbnN0CiB7CiAgICAgTGF5b3V0VW5pdCByZXN1bHQgPSBSZW5kZXJC
bG9jazo6cGFkZGluZ0xlZnQoKTsKLSAgICBpZiAoIWluY2x1ZGVJbnRyaW5zaWNQYWRkaW5nIHx8
IGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCisgICAgaWYgKHBhZGRpbmdPcHRpb24gPT0gRXhj
bHVkZUludHJpbnNpY1BhZGRpbmcgfHwgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkKICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKICAgICByZXR1cm4gcmVzdWx0ICsgKHN0eWxlKCktPndyaXRpbmdN
b2RlKCkgPT0gTGVmdFRvUmlnaHRXcml0aW5nTW9kZSA/IGludHJpbnNpY1BhZGRpbmdCZWZvcmUo
KSA6IGludHJpbnNpY1BhZGRpbmdBZnRlcigpKTsKICAgICAKIH0KIAotTGF5b3V0VW5pdCBSZW5k
ZXJUYWJsZUNlbGw6OnBhZGRpbmdSaWdodChib29sIGluY2x1ZGVJbnRyaW5zaWNQYWRkaW5nKSBj
b25zdAorTGF5b3V0VW5pdCBSZW5kZXJUYWJsZUNlbGw6OnBhZGRpbmdSaWdodChQYWRkaW5nT3B0
aW9ucyBwYWRkaW5nT3B0aW9uKSBjb25zdAogeyAgIAogICAgIExheW91dFVuaXQgcmVzdWx0ID0g
UmVuZGVyQmxvY2s6OnBhZGRpbmdSaWdodCgpOwotICAgIGlmICghaW5jbHVkZUludHJpbnNpY1Bh
ZGRpbmcgfHwgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkKKyAgICBpZiAocGFkZGluZ09wdGlv
biA9PSBFeGNsdWRlSW50cmluc2ljUGFkZGluZyB8fCBpc0hvcml6b250YWxXcml0aW5nTW9kZSgp
KQogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIHJldHVybiByZXN1bHQgKyAoc3R5bGUoKS0+
d3JpdGluZ01vZGUoKSA9PSBMZWZ0VG9SaWdodFdyaXRpbmdNb2RlID8gaW50cmluc2ljUGFkZGlu
Z0FmdGVyKCkgOiBpbnRyaW5zaWNQYWRkaW5nQmVmb3JlKCkpOwogfQogCi1MYXlvdXRVbml0IFJl
bmRlclRhYmxlQ2VsbDo6cGFkZGluZ0JlZm9yZShib29sIGluY2x1ZGVJbnRyaW5zaWNQYWRkaW5n
KSBjb25zdAorTGF5b3V0VW5pdCBSZW5kZXJUYWJsZUNlbGw6OnBhZGRpbmdCZWZvcmUoUGFkZGlu
Z09wdGlvbnMgcGFkZGluZ09wdGlvbikgY29uc3QKIHsKICAgICBMYXlvdXRVbml0IHJlc3VsdCA9
IFJlbmRlckJsb2NrOjpwYWRkaW5nQmVmb3JlKCk7Ci0gICAgaWYgKCFpbmNsdWRlSW50cmluc2lj
UGFkZGluZykKKyAgICBpZiAocGFkZGluZ09wdGlvbiA9PSBFeGNsdWRlSW50cmluc2ljUGFkZGlu
ZykKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICByZXR1cm4gcmVzdWx0ICsgaW50cmluc2lj
UGFkZGluZ0JlZm9yZSgpOwogfQogCi1MYXlvdXRVbml0IFJlbmRlclRhYmxlQ2VsbDo6cGFkZGlu
Z0FmdGVyKGJvb2wgaW5jbHVkZUludHJpbnNpY1BhZGRpbmcpIGNvbnN0CitMYXlvdXRVbml0IFJl
bmRlclRhYmxlQ2VsbDo6cGFkZGluZ0FmdGVyKFBhZGRpbmdPcHRpb25zIHBhZGRpbmdPcHRpb24p
IGNvbnN0CiB7CiAgICAgTGF5b3V0VW5pdCByZXN1bHQgPSBSZW5kZXJCbG9jazo6cGFkZGluZ0Fm
dGVyKCk7Ci0gICAgaWYgKCFpbmNsdWRlSW50cmluc2ljUGFkZGluZykKKyAgICBpZiAocGFkZGlu
Z09wdGlvbiA9PSBFeGNsdWRlSW50cmluc2ljUGFkZGluZykKICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKICAgICByZXR1cm4gcmVzdWx0ICsgaW50cmluc2ljUGFkZGluZ0FmdGVyKCk7CiB9CkBAIC0z
MjgsNyArMzI4LDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJUYWJsZUNlbGw6OmNlbGxCYXNlbGluZVBv
c2l0aW9uKCkgY29uc3QKICAgICBMYXlvdXRVbml0IGZpcnN0TGluZUJhc2VsaW5lID0gZmlyc3RM
aW5lQm94QmFzZWxpbmUoKTsKICAgICBpZiAoZmlyc3RMaW5lQmFzZWxpbmUgIT0gLTEpCiAgICAg
ICAgIHJldHVybiBmaXJzdExpbmVCYXNlbGluZTsKLSAgICByZXR1cm4gcGFkZGluZ0JlZm9yZSgp
ICsgYm9yZGVyQmVmb3JlKCkgKyBjb250ZW50TG9naWNhbEhlaWdodCgpOworICAgIHJldHVybiBw
YWRkaW5nQmVmb3JlKCkgKyBib3JkZXJCZWZvcmUoKSArIGNvbnRlbnRMb2dpY2FsSGVpZ2h0KElu
Y2x1ZGVJbnRyaW5zaWNQYWRkaW5nKTsKIH0KIAogdm9pZCBSZW5kZXJUYWJsZUNlbGw6OnN0eWxl
RGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5
bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxs
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmgKaW5kZXggYzE5
ZjdiNTJkZjdiZjZjOTMyN2EyNDY2ZDNhNjM0NzIwNTkyZTdkMy4uZGY3ODdkZjNiMzQ3MDRjMjA2
ZDQ5ZTBlODcxZjM2NGY2Y2U0MWFiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRhYmxlQ2VsbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUYWJsZUNlbGwuaApAQCAtMTIwLDE2ICsxMjAsMTYgQEAgcHVibGljOgogICAgIGludCBpbnRy
aW5zaWNQYWRkaW5nQmVmb3JlKCkgY29uc3QgeyByZXR1cm4gbV9pbnRyaW5zaWNQYWRkaW5nQmVm
b3JlOyB9CiAgICAgaW50IGludHJpbnNpY1BhZGRpbmdBZnRlcigpIGNvbnN0IHsgcmV0dXJuIG1f
aW50cmluc2ljUGFkZGluZ0FmdGVyOyB9CiAKLSAgICB2aXJ0dWFsIExheW91dFVuaXQgcGFkZGlu
Z1RvcChib29sIGluY2x1ZGVJbnRyaW5zaWNQYWRkaW5nID0gdHJ1ZSkgY29uc3Q7Ci0gICAgdmly
dHVhbCBMYXlvdXRVbml0IHBhZGRpbmdCb3R0b20oYm9vbCBpbmNsdWRlSW50cmluc2ljUGFkZGlu
ZyA9IHRydWUpIGNvbnN0OwotICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBwYWRkaW5nTGVmdChib29s
IGluY2x1ZGVJbnRyaW5zaWNQYWRkaW5nID0gdHJ1ZSkgY29uc3Q7Ci0gICAgdmlydHVhbCBMYXlv
dXRVbml0IHBhZGRpbmdSaWdodChib29sIGluY2x1ZGVJbnRyaW5zaWNQYWRkaW5nID0gdHJ1ZSkg
Y29uc3Q7CisgICAgdmlydHVhbCBMYXlvdXRVbml0IHBhZGRpbmdUb3AoUGFkZGluZ09wdGlvbnMg
cGFkZGluZ09wdGlvbiA9IEluY2x1ZGVJbnRyaW5zaWNQYWRkaW5nKSBjb25zdDsKKyAgICB2aXJ0
dWFsIExheW91dFVuaXQgcGFkZGluZ0JvdHRvbShQYWRkaW5nT3B0aW9ucyBwYWRkaW5nT3B0aW9u
ID0gSW5jbHVkZUludHJpbnNpY1BhZGRpbmcpIGNvbnN0OworICAgIHZpcnR1YWwgTGF5b3V0VW5p
dCBwYWRkaW5nTGVmdChQYWRkaW5nT3B0aW9ucyBwYWRkaW5nT3B0aW9uID0gSW5jbHVkZUludHJp
bnNpY1BhZGRpbmcpIGNvbnN0OworICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBwYWRkaW5nUmlnaHQo
UGFkZGluZ09wdGlvbnMgcGFkZGluZ09wdGlvbiA9IEluY2x1ZGVJbnRyaW5zaWNQYWRkaW5nKSBj
b25zdDsKICAgICAKICAgICAvLyBGSVhNRTogRm9yIG5vdyB3ZSBqdXN0IGFzc3VtZSB0aGUgY2Vs
bCBoYXMgdGhlIHNhbWUgYmxvY2sgZmxvdyBkaXJlY3Rpb24gYXMgdGhlIHRhYmxlLiAgSXQncyBs
aWtlbHkgd2UnbGwKICAgICAvLyBjcmVhdGUgYW4gZXh0cmEgYW5vbnltb3VzIFJlbmRlckJsb2Nr
IHRvIGhhbmRsZSBtaXhpbmcgZGlyZWN0aW9uYWxpdHkgYW55d2F5LCBpbiB3aGljaCBjYXNlIHdl
IGNhbiBsb2NrCiAgICAgLy8gdGhlIGJsb2NrIGZsb3cgZGlyZWN0aW9uYWxpdHkgb2YgdGhlIGNl
bGxzIHRvIHRoZSB0YWJsZSdzIGRpcmVjdGlvbmFsaXR5LgotICAgIHZpcnR1YWwgTGF5b3V0VW5p
dCBwYWRkaW5nQmVmb3JlKGJvb2wgaW5jbHVkZUludHJpbnNpY1BhZGRpbmcgPSB0cnVlKSBjb25z
dDsKLSAgICB2aXJ0dWFsIExheW91dFVuaXQgcGFkZGluZ0FmdGVyKGJvb2wgaW5jbHVkZUludHJp
bnNpY1BhZGRpbmcgPSB0cnVlKSBjb25zdDsKKyAgICB2aXJ0dWFsIExheW91dFVuaXQgcGFkZGlu
Z0JlZm9yZShQYWRkaW5nT3B0aW9ucyBwYWRkaW5nT3B0aW9uID0gSW5jbHVkZUludHJpbnNpY1Bh
ZGRpbmcpIGNvbnN0OworICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBwYWRkaW5nQWZ0ZXIoUGFkZGlu
Z09wdGlvbnMgcGFkZGluZ09wdGlvbiA9IEluY2x1ZGVJbnRyaW5zaWNQYWRkaW5nKSBjb25zdDsK
IAogICAgIHZvaWQgc2V0T3ZlcnJpZGVIZWlnaHRGcm9tUm93SGVpZ2h0KExheW91dFVuaXQpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uY3BwCmlu
ZGV4IDI0YWYyMWVmYzM2NzczY2IxN2JmNmNkNDczZDQ2Njc0ZDViNjhlZjAuLjA0ZDQyOTAxNGY0
MGJhMzFmYjEyYjMzYTA0YzVkODE1NGIzZDYwOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uY3BwCkBAIC05MTMsNyArOTEzLDcgQEAgTGF5b3V0
VW5pdCBSZW5kZXJUYWJsZVNlY3Rpb246OmZpcnN0TGluZUJveEJhc2VsaW5lKCkgY29uc3QKICAg
ICAgICAgY29uc3QgQ2VsbFN0cnVjdCYgY3MgPSBmaXJzdFJvdy5hdChpKTsKICAgICAgICAgY29u
c3QgUmVuZGVyVGFibGVDZWxsKiBjZWxsID0gY3MucHJpbWFyeUNlbGwoKTsKICAgICAgICAgaWYg
KGNlbGwpCi0gICAgICAgICAgICBmaXJzdExpbmVCYXNlbGluZSA9IG1heChmaXJzdExpbmVCYXNl
bGluZSwgY2VsbC0+bG9naWNhbFRvcCgpICsgY2VsbC0+cGFkZGluZ0JlZm9yZSgpICsgY2VsbC0+
Ym9yZGVyQmVmb3JlKCkgKyBjZWxsLT5jb250ZW50TG9naWNhbEhlaWdodCgpKTsKKyAgICAgICAg
ICAgIGZpcnN0TGluZUJhc2VsaW5lID0gbWF4KGZpcnN0TGluZUJhc2VsaW5lLCBjZWxsLT5sb2dp
Y2FsVG9wKCkgKyBjZWxsLT5wYWRkaW5nQmVmb3JlKCkgKyBjZWxsLT5ib3JkZXJCZWZvcmUoKSAr
IGNlbGwtPmNvbnRlbnRMb2dpY2FsSGVpZ2h0KEluY2x1ZGVJbnRyaW5zaWNQYWRkaW5nKSk7CiAg
ICAgfQogCiAgICAgcmV0dXJuIGZpcnN0TGluZUJhc2VsaW5lOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDY3ZjM2YjhjNDI1
ZDIzMjY3MjE5MzE2OTQ2ZmE0YTE4MDVlYzQzMTcuLjU3NzIyOGMxZGRlN2MwODcxOTc3YWI1N2Zm
ODJkNTVhMGI0MTFjYzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0wMy0wMSAgQWxleGlz
IE1lbmFyZCAgPGFsZXhpcy5tZW5hcmRAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBnZXRDb21w
dXRlZFN0eWxlIGdpdmVzIGluY29ycmVjdCBpbmZvcm1hdGlvbiBmb3IgJ2hlaWdodCcgcHJvcGVy
dHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMzNTkz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBz
dXJlIHRoYXQgdGhlIGNvbnRlbnRCb3hSZWN0IGRvZXNuJ3QgdGFrZSBpbnRvIGFjY291bnQgdGhl
CisgICAgICAgIGludHJpbnNpYyBwYWRkaW5nLgorCisgICAgICAgICogZmFzdC9jc3MvZ2V0Q29t
cHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLWhlaWdodC1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS1oZWln
aHQuaHRtbDogQWRkZWQuCisKIDIwMTItMDMtMDIgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBbU3R5bGVzXSBbQ1JBU0hd
IEhhbmRsZSBydWxlIGFkZGl0aW9uIGFuZCBpbmxpbmUgc3R5bGUgZWRpdGluZyBmYWlsdXJlIGR1
ZSB0byBDb250ZW50LVNlY3VyaXR5LVBvbGljeSBpbiB0aGUgcGFnZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLWhlaWdo
dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2dl
dENvbXB1dGVkU3R5bGUtaGVpZ2h0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZjJhNDhkMmY5
NTQ2OTY3N2RkMmY2YWNhZTZmYTcxNzk1ODJiY2NhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLWhlaWdodC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdCB0aGUgY29tcHV0ZWQgaGVpZ2h0IG9m
IGEgY2VsbCA6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMzU5My4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgY29tcHV0ZWRTdHlsZS5nZXRQ
cm9wZXJ0eVZhbHVlKCdoZWlnaHQnKSBpcyAnMjAwcHgnCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLWhlaWdodC5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLWhlaWdo
dC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmE2NDRjZWQyYjZhZjU2NGRlMjQ2ZTJiNjBiMWRmMjlhMmNhMjQ5
NDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9nZXRDb21wdXRlZFN0
eWxlL2dldENvbXB1dGVkU3R5bGUtaGVpZ2h0Lmh0bWwKQEAgLTAsMCArMSwzOCBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHN0eWxl
IHR5cGU9InRleHQvY3NzIj4KKyAgICB0YWJsZSB0ZCB7CisgICAgICAgIHBhZGRpbmc6IDIwcHg7
CisgICAgICAgIGJvcmRlcjogMTBweCBzb2xpZCBibHVlOworICAgIH0KKworICAgICNjZWxsMSB7
CisgICAgICAgIGhlaWdodDogMjAwcHg7CisgICAgfQorPC9zdHlsZT4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiIGlk
PSJ0YWJsZSI+CisgICAgPHRyIGlkPSJyb3cxIj4KKyAgICAgICAgPHRkIGlkPSJjZWxsMSI+aGVp
Z2h0PC90ZD4KKyAgICA8L3RyPgorPC90YWJsZT4KKzxzY3JpcHQ+CisKK2Rlc2NyaXB0aW9uKCJU
ZXN0IHRoZSBjb21wdXRlZCBoZWlnaHQgb2YgYSBjZWxsIDogaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTMzNTkzLiIpCisKK2UgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnY2VsbDEnKTsKK3RhYmxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhYmxlJyk7Citj
b21wdXRlZFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZSwgbnVsbCk7CisKK3Nob3Vs
ZEJlKCJjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ2hlaWdodCcpIiwgIicyMDBweCci
KTsKKworZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0YWJsZSk7CisKKzwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130193</attachid>
            <date>2012-03-05 13:26:17 -0800</date>
            <delta_ts>2012-04-01 11:17:08 -0700</delta_ts>
            <desc>Patch landed 2012-03-05</desc>
            <filename>bug-33593-20120305152446.patch</filename>
            <type>text/plain</type>
            <size>22902</size>
            <attacher name="Alexis Menard (darktears)">menard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5NzgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmZkYzBhNzc2YzQzMjhk
MmRiZmRlZjIxYTFlOTYyZjZjOWU3ZTE1Ni4uZjI1NGNhMTAyNzBiMTA5NDQ1MjI4NmEwYWE0ZWNi
OGZiNWQyYWI0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEyLTAzLTA1ICBBbGV4
aXMgTWVuYXJkICA8YWxleGlzLm1lbmFyZEBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIGdldENv
bXB1dGVkU3R5bGUgZ2l2ZXMgaW5jb3JyZWN0IGluZm9ybWF0aW9uIGZvciAnaGVpZ2h0JyBwcm9w
ZXJ0eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzM1
OTMKKworICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBIeWF0dC4KKworICAgICAgICBNYWtlIHN1
cmUgdGhhdCB0aGUgY29udGVudEJveFJlY3QgZG9lc24ndCB0YWtlIGludG8gYWNjb3VudCB0aGUK
KyAgICAgICAgaW50cmluc2ljIHBhZGRpbmcgd2hlbiBxdWVyeWluZyBpdC4gQXMgc3RhdGVkIGJ5
IGh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtYm94LyN0aGUtbHNxdW8wCisgICAgICAgIHRoZSBo
ZWlnaHQgaXMgdGhlIGNvbnRlbnQgYXJlYSB3aGljaCBkb2Vzbid0IGluY2x1ZGUgdGhlIGludHJp
bnNpYyBwYWRkaW5nLCB0aGUgYm9yZGVyLCBhbmQKKyAgICAgICAgdGhlIHBhZGRpbmcuCisKKyAg
ICAgICAgVGVzdDogZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLWhl
aWdodC5odG1sCisKKyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6Z2V0UHJv
cGVydHlDU1NWYWx1ZSk6CisgICAgICAgICogZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5k
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OnJlbW92ZU5v
ZGUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guaDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckJveDo6Y29udGVudEJveFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94
Ojpjb250ZW50V2lkdGgpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94Ojpjb250ZW50SGVp
Z2h0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6Y29udGVudExvZ2ljYWxXaWR0aCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmNvbnRlbnRMb2dpY2FsSGVpZ2h0KToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhZGRpbmdUb3ApOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhZGRpbmdCb3R0b20pOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhZGRpbmdMZWZ0KToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWRkaW5nUmlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhZGRpbmdCZWZvcmUpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhZGRpbmdBZnRlcik6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFkZGluZ1N0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckJveE1vZGVsT2JqZWN0OjpwYWRkaW5nRW5kKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyQm94TW9kZWxPYmplY3QuaDoKKyAgICAgICAgKFJlbmRlckJveE1vZGVsT2JqZWN0KToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclRhYmxlQ2VsbDo6cGFkZGluZ1RvcCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
YWJsZUNlbGw6OnBhZGRpbmdCb3R0b20pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGVD
ZWxsOjpwYWRkaW5nTGVmdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZUNlbGw6OnBh
ZGRpbmdSaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZUNlbGw6OnBhZGRpbmdC
ZWZvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGVDZWxsOjpwYWRkaW5nQWZ0ZXIp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGVDZWxsOjpjZWxsQmFzZWxpbmVQb3NpdGlv
bik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5oOgorICAgICAgICAoUmVu
ZGVyVGFibGVDZWxsKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlU2VjdGlvbjo6Zmlyc3RMaW5lQm94QmFz
ZWxpbmUpOgorCiAyMDEyLTAzLTA1ICBEYW5hIEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFtjaHJvbWl1bV0gUmVtb3ZlIG9sZCBjbGVhbnVwUmVzb3VyY2VzKCkgY29k
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJh
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9u
LmNwcAppbmRleCAwYzA1ODRlODM2ZGY1MzlhNTQyZGY2NWIzOWE1YjI3YmQwYjU3YWQxLi5hZTEz
ODEwNTFiYjU5Y2MxMzE0ZWVlZDE0NzY1YzcyYjk1OWU1ZGJjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtMTgxMSwxOSAr
MTgxMSwxOSBAQCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRp
b246OmdldFByb3BlcnR5Q1NTVmFsdWUoaW50IHByb3BlcgogICAgICAgICAgICAgcmV0dXJuIGNz
c1ZhbHVlUG9vbC0+Y3JlYXRlVmFsdWUoc3R5bGUtPm92ZXJmbG93WSgpKTsKICAgICAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eVBhZGRpbmdUb3A6CiAgICAgICAgICAgICBpZiAocmVuZGVyZXIgJiYgcmVu
ZGVyZXItPmlzQm94KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHpvb21BZGp1c3RlZFBpeGVs
VmFsdWUodG9SZW5kZXJCb3gocmVuZGVyZXIpLT5wYWRkaW5nVG9wKGZhbHNlKSwgc3R5bGUuZ2V0
KCksIGNzc1ZhbHVlUG9vbCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHpvb21BZGp1c3RlZFBp
eGVsVmFsdWUodG9SZW5kZXJCb3gocmVuZGVyZXIpLT5wYWRkaW5nVG9wKEV4Y2x1ZGVJbnRyaW5z
aWNQYWRkaW5nKSwgc3R5bGUuZ2V0KCksIGNzc1ZhbHVlUG9vbCk7CiAgICAgICAgICAgICByZXR1
cm4gem9vbUFkanVzdGVkUGl4ZWxWYWx1ZUZvckxlbmd0aChzdHlsZS0+cGFkZGluZ1RvcCgpLCBz
dHlsZS5nZXQoKSwgY3NzVmFsdWVQb29sKTsKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRp
bmdSaWdodDoKICAgICAgICAgICAgIGlmIChyZW5kZXJlciAmJiByZW5kZXJlci0+aXNCb3goKSkK
LSAgICAgICAgICAgICAgICByZXR1cm4gem9vbUFkanVzdGVkUGl4ZWxWYWx1ZSh0b1JlbmRlckJv
eChyZW5kZXJlciktPnBhZGRpbmdSaWdodChmYWxzZSksIHN0eWxlLmdldCgpLCBjc3NWYWx1ZVBv
b2wpOworICAgICAgICAgICAgICAgIHJldHVybiB6b29tQWRqdXN0ZWRQaXhlbFZhbHVlKHRvUmVu
ZGVyQm94KHJlbmRlcmVyKS0+cGFkZGluZ1JpZ2h0KEV4Y2x1ZGVJbnRyaW5zaWNQYWRkaW5nKSwg
c3R5bGUuZ2V0KCksIGNzc1ZhbHVlUG9vbCk7CiAgICAgICAgICAgICByZXR1cm4gem9vbUFkanVz
dGVkUGl4ZWxWYWx1ZUZvckxlbmd0aChzdHlsZS0+cGFkZGluZ1JpZ2h0KCksIHN0eWxlLmdldCgp
LCBjc3NWYWx1ZVBvb2wpOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5UGFkZGluZ0JvdHRvbToK
ICAgICAgICAgICAgIGlmIChyZW5kZXJlciAmJiByZW5kZXJlci0+aXNCb3goKSkKLSAgICAgICAg
ICAgICAgICByZXR1cm4gem9vbUFkanVzdGVkUGl4ZWxWYWx1ZSh0b1JlbmRlckJveChyZW5kZXJl
ciktPnBhZGRpbmdCb3R0b20oZmFsc2UpLCBzdHlsZS5nZXQoKSwgY3NzVmFsdWVQb29sKTsKKyAg
ICAgICAgICAgICAgICByZXR1cm4gem9vbUFkanVzdGVkUGl4ZWxWYWx1ZSh0b1JlbmRlckJveChy
ZW5kZXJlciktPnBhZGRpbmdCb3R0b20oRXhjbHVkZUludHJpbnNpY1BhZGRpbmcpLCBzdHlsZS5n
ZXQoKSwgY3NzVmFsdWVQb29sKTsKICAgICAgICAgICAgIHJldHVybiB6b29tQWRqdXN0ZWRQaXhl
bFZhbHVlRm9yTGVuZ3RoKHN0eWxlLT5wYWRkaW5nQm90dG9tKCksIHN0eWxlLmdldCgpLCBjc3NW
YWx1ZVBvb2wpOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5UGFkZGluZ0xlZnQ6CiAgICAgICAg
ICAgICBpZiAocmVuZGVyZXIgJiYgcmVuZGVyZXItPmlzQm94KCkpCi0gICAgICAgICAgICAgICAg
cmV0dXJuIHpvb21BZGp1c3RlZFBpeGVsVmFsdWUodG9SZW5kZXJCb3gocmVuZGVyZXIpLT5wYWRk
aW5nTGVmdChmYWxzZSksIHN0eWxlLmdldCgpLCBjc3NWYWx1ZVBvb2wpOworICAgICAgICAgICAg
ICAgIHJldHVybiB6b29tQWRqdXN0ZWRQaXhlbFZhbHVlKHRvUmVuZGVyQm94KHJlbmRlcmVyKS0+
cGFkZGluZ0xlZnQoRXhjbHVkZUludHJpbnNpY1BhZGRpbmcpLCBzdHlsZS5nZXQoKSwgY3NzVmFs
dWVQb29sKTsKICAgICAgICAgICAgIHJldHVybiB6b29tQWRqdXN0ZWRQaXhlbFZhbHVlRm9yTGVu
Z3RoKHN0eWxlLT5wYWRkaW5nTGVmdCgpLCBzdHlsZS5nZXQoKSwgY3NzVmFsdWVQb29sKTsKICAg
ICAgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZ2VCcmVha0FmdGVyOgogICAgICAgICAgICAgcmV0dXJu
IGNzc1ZhbHVlUG9vbC0+Y3JlYXRlVmFsdWUoc3R5bGUtPnBhZ2VCcmVha0FmdGVyKCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKaW5k
ZXggOWE5NDUwOWNlYTI1OWRlZWFkNjg5ODc3MTBjNDg2ODkyYzMwNzMxMS4uNWY1ZGZjZmJkNzQy
NjRlNDFjMWUyMjdiMmUxMGQ1ODg0Y2IzNTBlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCkBAIC0zNjMsNyArMzYzLDcgQEAgdm9p
ZCBEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpyZW1vdmVOb2RlKFBhc3NSZWZQdHI8Tm9kZT4gbm9k
ZSkKICAgICAgICAgLy8gTWFrZSBzdXJlIGVtcHR5IGNlbGwgaGFzIHNvbWUgaGVpZ2h0LCBpZiBh
IHBsYWNlaG9sZGVyIGNhbiBiZSBpbnNlcnRlZC4KICAgICAgICAgZG9jdW1lbnQoKS0+dXBkYXRl
TGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAgICAgICAgIFJlbmRlck9iamVjdCAq
ciA9IG5vZGUtPnJlbmRlcmVyKCk7Ci0gICAgICAgIGlmIChyICYmIHItPmlzVGFibGVDZWxsKCkg
JiYgdG9SZW5kZXJUYWJsZUNlbGwociktPmNvbnRlbnRIZWlnaHQoKSA8PSAwKSB7CisgICAgICAg
IGlmIChyICYmIHItPmlzVGFibGVDZWxsKCkgJiYgdG9SZW5kZXJUYWJsZUNlbGwociktPmNvbnRl
bnRIZWlnaHQoSW5jbHVkZUludHJpbnNpY1BhZGRpbmcpIDw9IDApIHsKICAgICAgICAgICAgIFBv
c2l0aW9uIGZpcnN0RWRpdGFibGVQb3NpdGlvbiA9IGZpcnN0RWRpdGFibGVQb3NpdGlvbkluTm9k
ZShub2RlLmdldCgpKTsKICAgICAgICAgICAgIGlmIChmaXJzdEVkaXRhYmxlUG9zaXRpb24uaXNO
b3ROdWxsKCkpCiAgICAgICAgICAgICAgICAgaW5zZXJ0QmxvY2tQbGFjZWhvbGRlcihmaXJzdEVk
aXRhYmxlUG9zaXRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCmluZGV4IDAx
NGU1YmMyZTU3MDM0MTA1NDFhNjgwMDBjOGM3MmQwMGMzNGE0OWUuLjIyMTBhZjlkY2YwYzYyMWUy
OTNmYmMxODVkYjk1NGJmMmZiYzdhMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94
LmgKQEAgLTEzMSw3ICsxMzEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBMYXlvdXRSZWN0IGJv
cmRlckJvdW5kaW5nQm94KCkgY29uc3QgeyByZXR1cm4gYm9yZGVyQm94UmVjdCgpOyB9IAogCiAg
ICAgLy8gVGhlIGNvbnRlbnQgYXJlYSBvZiB0aGUgYm94IChleGNsdWRlcyBwYWRkaW5nIGFuZCBi
b3JkZXIpLgotICAgIExheW91dFJlY3QgY29udGVudEJveFJlY3QoKSBjb25zdCB7IHJldHVybiBM
YXlvdXRSZWN0KGJvcmRlckxlZnQoKSArIHBhZGRpbmdMZWZ0KCksIGJvcmRlclRvcCgpICsgcGFk
ZGluZ1RvcCgpLCBjb250ZW50V2lkdGgoKSwgY29udGVudEhlaWdodCgpKTsgfQorICAgIExheW91
dFJlY3QgY29udGVudEJveFJlY3QoUGFkZGluZ09wdGlvbnMgcGFkZGluZ09wdGlvbiA9IEV4Y2x1
ZGVJbnRyaW5zaWNQYWRkaW5nKSBjb25zdCB7IHJldHVybiBMYXlvdXRSZWN0KGJvcmRlckxlZnQo
KSArIHBhZGRpbmdMZWZ0KHBhZGRpbmdPcHRpb24pLCBib3JkZXJUb3AoKSArIHBhZGRpbmdUb3Ao
cGFkZGluZ09wdGlvbiksIGNvbnRlbnRXaWR0aChwYWRkaW5nT3B0aW9uKSwgY29udGVudEhlaWdo
dChwYWRkaW5nT3B0aW9uKSk7IH0KICAgICAvLyBUaGUgY29udGVudCBib3ggaW4gYWJzb2x1dGUg
Y29vcmRzLiBJZ25vcmVzIHRyYW5zZm9ybXMuCiAgICAgTGF5b3V0UmVjdCBhYnNvbHV0ZUNvbnRl
bnRCb3goKSBjb25zdDsKICAgICAvLyBUaGUgY29udGVudCBib3ggY29udmVydGVkIHRvIGFic29s
dXRlIGNvb3JkcyAodGFraW5nIHRyYW5zZm9ybXMgaW50byBhY2NvdW50KS4KQEAgLTE3OCwxMCAr
MTc4LDEwIEBAIHB1YmxpYzoKICAgICAKICAgICB2b2lkIHVwZGF0ZUxheWVyVHJhbnNmb3JtKCk7
CiAKLSAgICBMYXlvdXRVbml0IGNvbnRlbnRXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIGNsaWVudFdp
ZHRoKCkgLSBwYWRkaW5nTGVmdCgpIC0gcGFkZGluZ1JpZ2h0KCk7IH0KLSAgICBMYXlvdXRVbml0
IGNvbnRlbnRIZWlnaHQoKSBjb25zdCB7IHJldHVybiBjbGllbnRIZWlnaHQoKSAtIHBhZGRpbmdU
b3AoKSAtIHBhZGRpbmdCb3R0b20oKTsgfQotICAgIExheW91dFVuaXQgY29udGVudExvZ2ljYWxX
aWR0aCgpIGNvbnN0IHsgcmV0dXJuIHN0eWxlKCktPmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkg
PyBjb250ZW50V2lkdGgoKSA6IGNvbnRlbnRIZWlnaHQoKTsgfQotICAgIExheW91dFVuaXQgY29u
dGVudExvZ2ljYWxIZWlnaHQoKSBjb25zdCB7IHJldHVybiBzdHlsZSgpLT5pc0hvcml6b250YWxX
cml0aW5nTW9kZSgpID8gY29udGVudEhlaWdodCgpIDogY29udGVudFdpZHRoKCk7IH0KKyAgICBM
YXlvdXRVbml0IGNvbnRlbnRXaWR0aChQYWRkaW5nT3B0aW9ucyBwYWRkaW5nT3B0aW9uID0gRXhj
bHVkZUludHJpbnNpY1BhZGRpbmcpIGNvbnN0IHsgcmV0dXJuIGNsaWVudFdpZHRoKCkgLSBwYWRk
aW5nTGVmdChwYWRkaW5nT3B0aW9uKSAtIHBhZGRpbmdSaWdodChwYWRkaW5nT3B0aW9uKTsgfQor
ICAgIExheW91dFVuaXQgY29udGVudEhlaWdodChQYWRkaW5nT3B0aW9ucyBwYWRkaW5nT3B0aW9u
ID0gRXhjbHVkZUludHJpbnNpY1BhZGRpbmcpIGNvbnN0IHsgcmV0dXJuIGNsaWVudEhlaWdodCgp
IC0gcGFkZGluZ1RvcChwYWRkaW5nT3B0aW9uKSAtIHBhZGRpbmdCb3R0b20ocGFkZGluZ09wdGlv
bik7IH0KKyAgICBMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsV2lkdGgoUGFkZGluZ09wdGlvbnMg
cGFkZGluZ09wdGlvbiA9IEV4Y2x1ZGVJbnRyaW5zaWNQYWRkaW5nKSBjb25zdCB7IHJldHVybiBz
dHlsZSgpLT5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gY29udGVudFdpZHRoKHBhZGRpbmdP
cHRpb24pIDogY29udGVudEhlaWdodChwYWRkaW5nT3B0aW9uKTsgfQorICAgIExheW91dFVuaXQg
Y29udGVudExvZ2ljYWxIZWlnaHQoUGFkZGluZ09wdGlvbnMgcGFkZGluZ09wdGlvbiA9IEV4Y2x1
ZGVJbnRyaW5zaWNQYWRkaW5nKSBjb25zdCB7IHJldHVybiBzdHlsZSgpLT5pc0hvcml6b250YWxX
cml0aW5nTW9kZSgpID8gY29udGVudEhlaWdodChwYWRkaW5nT3B0aW9uKSA6IGNvbnRlbnRXaWR0
aChwYWRkaW5nT3B0aW9uKTsgfQogCiAgICAgLy8gSUUgZXh0ZW5zaW9ucy4gVXNlZCB0byBjYWxj
dWxhdGUgb2Zmc2V0V2lkdGgvSGVpZ2h0LiAgT3ZlcnJpZGRlbiBieSBpbmxpbmVzIChSZW5kZXJG
bG93KQogICAgIC8vIHRvIHJldHVybiB0aGUgcmVtYWluaW5nIHdpZHRoIG9uIGEgZ2l2ZW4gbGlu
ZSAoYW5kIHRoZSBoZWlnaHQgb2YgYSBzaW5nbGUgbGluZSkuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcAppbmRleCA1ZTQ2MDYyNmUxODQ1
ODQ4YjFmMTdkNjE2ZTE1MDA2NmFlMWJkN2U4Li5hYzZkOTg5ZTE2MWZkZWE4OTlmZDFlODgyMWFi
NjFlNjhlZmMxODY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94TW9kZWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
b3hNb2RlbE9iamVjdC5jcHAKQEAgLTUzOCw3ICs1MzgsNyBAQCBpbnQgUmVuZGVyQm94TW9kZWxP
YmplY3Q6OnBpeGVsU25hcHBlZE9mZnNldEhlaWdodCgpIGNvbnN0CiAgICAgcmV0dXJuIG9mZnNl
dEhlaWdodCgpOwogfQogCi1MYXlvdXRVbml0IFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWRkaW5n
VG9wKGJvb2wpIGNvbnN0CitMYXlvdXRVbml0IFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWRkaW5n
VG9wKFBhZGRpbmdPcHRpb25zKSBjb25zdAogewogICAgIExheW91dFVuaXQgdyA9IDA7CiAgICAg
TGVuZ3RoIHBhZGRpbmcgPSBzdHlsZSgpLT5wYWRkaW5nVG9wKCk7CkBAIC01NDcsNyArNTQ3LDcg
QEAgTGF5b3V0VW5pdCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFkZGluZ1RvcChib29sKSBjb25z
dAogICAgIHJldHVybiBwYWRkaW5nLmNhbGNNaW5WYWx1ZSh3LCB2aWV3cG9ydFNpemUoKSk7CiB9
CiAKLUxheW91dFVuaXQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhZGRpbmdCb3R0b20oYm9vbCkg
Y29uc3QKK0xheW91dFVuaXQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhZGRpbmdCb3R0b20oUGFk
ZGluZ09wdGlvbnMpIGNvbnN0CiB7CiAgICAgTGF5b3V0VW5pdCB3ID0gMDsKICAgICBMZW5ndGgg
cGFkZGluZyA9IHN0eWxlKCktPnBhZGRpbmdCb3R0b20oKTsKQEAgLTU1Niw3ICs1NTYsNyBAQCBM
YXlvdXRVbml0IFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWRkaW5nQm90dG9tKGJvb2wpIGNvbnN0
CiAgICAgcmV0dXJuIHBhZGRpbmcuY2FsY01pblZhbHVlKHcsIHZpZXdwb3J0U2l6ZSgpKTsKIH0K
IAotTGF5b3V0VW5pdCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFkZGluZ0xlZnQoYm9vbCkgY29u
c3QKK0xheW91dFVuaXQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhZGRpbmdMZWZ0KFBhZGRpbmdP
cHRpb25zKSBjb25zdAogewogICAgIExheW91dFVuaXQgdyA9IDA7CiAgICAgTGVuZ3RoIHBhZGRp
bmcgPSBzdHlsZSgpLT5wYWRkaW5nTGVmdCgpOwpAQCAtNTY1LDcgKzU2NSw3IEBAIExheW91dFVu
aXQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhZGRpbmdMZWZ0KGJvb2wpIGNvbnN0CiAgICAgcmV0
dXJuIHBhZGRpbmcuY2FsY01pblZhbHVlKHcsIHZpZXdwb3J0U2l6ZSgpKTsKIH0KIAotTGF5b3V0
VW5pdCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFkZGluZ1JpZ2h0KGJvb2wpIGNvbnN0CitMYXlv
dXRVbml0IFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWRkaW5nUmlnaHQoUGFkZGluZ09wdGlvbnMp
IGNvbnN0CiB7CiAgICAgTGF5b3V0VW5pdCB3ID0gMDsKICAgICBMZW5ndGggcGFkZGluZyA9IHN0
eWxlKCktPnBhZGRpbmdSaWdodCgpOwpAQCAtNTc0LDcgKzU3NCw3IEBAIExheW91dFVuaXQgUmVu
ZGVyQm94TW9kZWxPYmplY3Q6OnBhZGRpbmdSaWdodChib29sKSBjb25zdAogICAgIHJldHVybiBw
YWRkaW5nLmNhbGNNaW5WYWx1ZSh3LCB2aWV3cG9ydFNpemUoKSk7CiB9CiAKLUxheW91dFVuaXQg
UmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhZGRpbmdCZWZvcmUoYm9vbCkgY29uc3QKK0xheW91dFVu
aXQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhZGRpbmdCZWZvcmUoUGFkZGluZ09wdGlvbnMpIGNv
bnN0CiB7CiAgICAgTGF5b3V0VW5pdCB3ID0gMDsKICAgICBMZW5ndGggcGFkZGluZyA9IHN0eWxl
KCktPnBhZGRpbmdCZWZvcmUoKTsKQEAgLTU4Myw3ICs1ODMsNyBAQCBMYXlvdXRVbml0IFJlbmRl
ckJveE1vZGVsT2JqZWN0OjpwYWRkaW5nQmVmb3JlKGJvb2wpIGNvbnN0CiAgICAgcmV0dXJuIHBh
ZGRpbmcuY2FsY01pblZhbHVlKHcsIHZpZXdwb3J0U2l6ZSgpKTsKIH0KIAotTGF5b3V0VW5pdCBS
ZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFkZGluZ0FmdGVyKGJvb2wpIGNvbnN0CitMYXlvdXRVbml0
IFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWRkaW5nQWZ0ZXIoUGFkZGluZ09wdGlvbnMpIGNvbnN0
CiB7CiAgICAgTGF5b3V0VW5pdCB3ID0gMDsKICAgICBMZW5ndGggcGFkZGluZyA9IHN0eWxlKCkt
PnBhZGRpbmdBZnRlcigpOwpAQCAtNTkyLDcgKzU5Miw3IEBAIExheW91dFVuaXQgUmVuZGVyQm94
TW9kZWxPYmplY3Q6OnBhZGRpbmdBZnRlcihib29sKSBjb25zdAogICAgIHJldHVybiBwYWRkaW5n
LmNhbGNNaW5WYWx1ZSh3LCB2aWV3cG9ydFNpemUoKSk7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVy
Qm94TW9kZWxPYmplY3Q6OnBhZGRpbmdTdGFydChib29sKSBjb25zdAorTGF5b3V0VW5pdCBSZW5k
ZXJCb3hNb2RlbE9iamVjdDo6cGFkZGluZ1N0YXJ0KFBhZGRpbmdPcHRpb25zKSBjb25zdAogewog
ICAgIExheW91dFVuaXQgdyA9IDA7CiAgICAgTGVuZ3RoIHBhZGRpbmcgPSBzdHlsZSgpLT5wYWRk
aW5nU3RhcnQoKTsKQEAgLTYwMSw3ICs2MDEsNyBAQCBMYXlvdXRVbml0IFJlbmRlckJveE1vZGVs
T2JqZWN0OjpwYWRkaW5nU3RhcnQoYm9vbCkgY29uc3QKICAgICByZXR1cm4gcGFkZGluZy5jYWxj
TWluVmFsdWUodywgdmlld3BvcnRTaXplKCkpOwogfQogCi1MYXlvdXRVbml0IFJlbmRlckJveE1v
ZGVsT2JqZWN0OjpwYWRkaW5nRW5kKGJvb2wpIGNvbnN0CitMYXlvdXRVbml0IFJlbmRlckJveE1v
ZGVsT2JqZWN0OjpwYWRkaW5nRW5kKFBhZGRpbmdPcHRpb25zKSBjb25zdAogewogICAgIExheW91
dFVuaXQgdyA9IDA7CiAgICAgTGVuZ3RoIHBhZGRpbmcgPSBzdHlsZSgpLT5wYWRkaW5nRW5kKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmpl
Y3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oCmlu
ZGV4IDNkZjNkNGExNDkzM2IxYmVjZGMwMTY3N2QyYjgzMDFiZGM5YjU5MTkuLmVjYzEzOWYxMmJl
NmE3ODdhMjUzNzkxZDQ3ZDFmNTZlZGYyZGIzOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oCkBAIC00MCw2ICs0MCw4IEBAIGVudW0gQmFj
a2dyb3VuZEJsZWVkQXZvaWRhbmNlIHsKICAgICBCYWNrZ3JvdW5kQmxlZWRVc2VUcmFuc3BhcmVu
Y3lMYXllcgogfTsKIAorZW51bSBQYWRkaW5nT3B0aW9ucyB7IEluY2x1ZGVJbnRyaW5zaWNQYWRk
aW5nLCBFeGNsdWRlSW50cmluc2ljUGFkZGluZyB9OworCiAvLyBUaGlzIGNsYXNzIGlzIHRoZSBi
YXNlIGZvciBhbGwgb2JqZWN0cyB0aGF0IGFkaGVyZSB0byB0aGUgQ1NTIGJveCBtb2RlbCBhcyBk
ZXNjcmliZWQKIC8vIGF0IGh0dHA6Ly93d3cudzMub3JnL1RSL0NTUzIxL2JveC5odG1sCiAKQEAg
LTc4LDE0ICs4MCwxNCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBMYXlvdXRSZWN0IGJvcmRlckJv
dW5kaW5nQm94KCkgY29uc3QgPSAwOwogCiAgICAgLy8gVmlydHVhbCBzaW5jZSB0YWJsZSBjZWxs
cyBvdmVycmlkZQotICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBwYWRkaW5nVG9wKGJvb2wgaW5jbHVk
ZUludHJpbnNpY1BhZGRpbmcgPSB0cnVlKSBjb25zdDsKLSAgICB2aXJ0dWFsIExheW91dFVuaXQg
cGFkZGluZ0JvdHRvbShib29sIGluY2x1ZGVJbnRyaW5zaWNQYWRkaW5nID0gdHJ1ZSkgY29uc3Q7
Ci0gICAgdmlydHVhbCBMYXlvdXRVbml0IHBhZGRpbmdMZWZ0KGJvb2wgaW5jbHVkZUludHJpbnNp
Y1BhZGRpbmcgPSB0cnVlKSBjb25zdDsKLSAgICB2aXJ0dWFsIExheW91dFVuaXQgcGFkZGluZ1Jp
Z2h0KGJvb2wgaW5jbHVkZUludHJpbnNpY1BhZGRpbmcgPSB0cnVlKSBjb25zdDsKLSAgICB2aXJ0
dWFsIExheW91dFVuaXQgcGFkZGluZ0JlZm9yZShib29sIGluY2x1ZGVJbnRyaW5zaWNQYWRkaW5n
ID0gdHJ1ZSkgY29uc3Q7Ci0gICAgdmlydHVhbCBMYXlvdXRVbml0IHBhZGRpbmdBZnRlcihib29s
IGluY2x1ZGVJbnRyaW5zaWNQYWRkaW5nID0gdHJ1ZSkgY29uc3Q7Ci0gICAgdmlydHVhbCBMYXlv
dXRVbml0IHBhZGRpbmdTdGFydChib29sIGluY2x1ZGVJbnRyaW5zaWNQYWRkaW5nID0gdHJ1ZSkg
Y29uc3Q7Ci0gICAgdmlydHVhbCBMYXlvdXRVbml0IHBhZGRpbmdFbmQoYm9vbCBpbmNsdWRlSW50
cmluc2ljUGFkZGluZyA9IHRydWUpIGNvbnN0OworICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBwYWRk
aW5nVG9wKFBhZGRpbmdPcHRpb25zID0gSW5jbHVkZUludHJpbnNpY1BhZGRpbmcpIGNvbnN0Owor
ICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBwYWRkaW5nQm90dG9tKFBhZGRpbmdPcHRpb25zID0gSW5j
bHVkZUludHJpbnNpY1BhZGRpbmcpIGNvbnN0OworICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBwYWRk
aW5nTGVmdChQYWRkaW5nT3B0aW9ucyA9IEluY2x1ZGVJbnRyaW5zaWNQYWRkaW5nKSBjb25zdDsK
KyAgICB2aXJ0dWFsIExheW91dFVuaXQgcGFkZGluZ1JpZ2h0KFBhZGRpbmdPcHRpb25zID0gSW5j
bHVkZUludHJpbnNpY1BhZGRpbmcpIGNvbnN0OworICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBwYWRk
aW5nQmVmb3JlKFBhZGRpbmdPcHRpb25zID0gSW5jbHVkZUludHJpbnNpY1BhZGRpbmcpIGNvbnN0
OworICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBwYWRkaW5nQWZ0ZXIoUGFkZGluZ09wdGlvbnMgPSBJ
bmNsdWRlSW50cmluc2ljUGFkZGluZykgY29uc3Q7CisgICAgdmlydHVhbCBMYXlvdXRVbml0IHBh
ZGRpbmdTdGFydChQYWRkaW5nT3B0aW9ucyA9IEluY2x1ZGVJbnRyaW5zaWNQYWRkaW5nKSBjb25z
dDsKKyAgICB2aXJ0dWFsIExheW91dFVuaXQgcGFkZGluZ0VuZChQYWRkaW5nT3B0aW9ucyA9IElu
Y2x1ZGVJbnRyaW5zaWNQYWRkaW5nKSBjb25zdDsKIAogICAgIHZpcnR1YWwgaW50IGJvcmRlclRv
cCgpIGNvbnN0IHsgcmV0dXJuIHN0eWxlKCktPmJvcmRlclRvcFdpZHRoKCk7IH0KICAgICB2aXJ0
dWFsIGludCBib3JkZXJCb3R0b20oKSBjb25zdCB7IHJldHVybiBzdHlsZSgpLT5ib3JkZXJCb3R0
b21XaWR0aCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGFibGVDZWxsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwu
Y3BwCmluZGV4IDcyMmUyZDFiNzRjNDdmNzMwOWZjMWNjYzM4MWQxMDFhNmFlZjYyNzEuLmJiZDEz
NDAzMmZhNTBkNmU3MGQxOTNhZmM4ZmU3ZDdjNTc4ODI2NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwCkBAIC0xOTEsNTEgKzE5MSw1MSBAQCB2b2lk
IFJlbmRlclRhYmxlQ2VsbDo6bGF5b3V0KCkKICAgICBzZXRDZWxsV2lkdGhDaGFuZ2VkKGZhbHNl
KTsKIH0KIAotTGF5b3V0VW5pdCBSZW5kZXJUYWJsZUNlbGw6OnBhZGRpbmdUb3AoYm9vbCBpbmNs
dWRlSW50cmluc2ljUGFkZGluZykgY29uc3QKK0xheW91dFVuaXQgUmVuZGVyVGFibGVDZWxsOjpw
YWRkaW5nVG9wKFBhZGRpbmdPcHRpb25zIHBhZGRpbmdPcHRpb24pIGNvbnN0CiB7CiAgICAgTGF5
b3V0VW5pdCByZXN1bHQgPSBSZW5kZXJCbG9jazo6cGFkZGluZ1RvcCgpOwotICAgIGlmICghaW5j
bHVkZUludHJpbnNpY1BhZGRpbmcgfHwgIWlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCisgICAg
aWYgKHBhZGRpbmdPcHRpb24gPT0gRXhjbHVkZUludHJpbnNpY1BhZGRpbmcgfHwgIWlzSG9yaXpv
bnRhbFdyaXRpbmdNb2RlKCkpCiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgcmV0dXJuIHJl
c3VsdCArIChzdHlsZSgpLT53cml0aW5nTW9kZSgpID09IFRvcFRvQm90dG9tV3JpdGluZ01vZGUg
PyBpbnRyaW5zaWNQYWRkaW5nQmVmb3JlKCkgOiBpbnRyaW5zaWNQYWRkaW5nQWZ0ZXIoKSk7CiB9
CiAKLUxheW91dFVuaXQgUmVuZGVyVGFibGVDZWxsOjpwYWRkaW5nQm90dG9tKGJvb2wgaW5jbHVk
ZUludHJpbnNpY1BhZGRpbmcpIGNvbnN0CitMYXlvdXRVbml0IFJlbmRlclRhYmxlQ2VsbDo6cGFk
ZGluZ0JvdHRvbShQYWRkaW5nT3B0aW9ucyBwYWRkaW5nT3B0aW9uKSBjb25zdAogewogICAgIExh
eW91dFVuaXQgcmVzdWx0ID0gUmVuZGVyQmxvY2s6OnBhZGRpbmdCb3R0b20oKTsKLSAgICBpZiAo
IWluY2x1ZGVJbnRyaW5zaWNQYWRkaW5nIHx8ICFpc0hvcml6b250YWxXcml0aW5nTW9kZSgpKQor
ICAgIGlmIChwYWRkaW5nT3B0aW9uID09IEV4Y2x1ZGVJbnRyaW5zaWNQYWRkaW5nIHx8ICFpc0hv
cml6b250YWxXcml0aW5nTW9kZSgpKQogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIHJldHVy
biByZXN1bHQgKyAoc3R5bGUoKS0+d3JpdGluZ01vZGUoKSA9PSBUb3BUb0JvdHRvbVdyaXRpbmdN
b2RlID8gaW50cmluc2ljUGFkZGluZ0FmdGVyKCkgOiBpbnRyaW5zaWNQYWRkaW5nQmVmb3JlKCkp
OwogfQogCi1MYXlvdXRVbml0IFJlbmRlclRhYmxlQ2VsbDo6cGFkZGluZ0xlZnQoYm9vbCBpbmNs
dWRlSW50cmluc2ljUGFkZGluZykgY29uc3QKK0xheW91dFVuaXQgUmVuZGVyVGFibGVDZWxsOjpw
YWRkaW5nTGVmdChQYWRkaW5nT3B0aW9ucyBwYWRkaW5nT3B0aW9uKSBjb25zdAogewogICAgIExh
eW91dFVuaXQgcmVzdWx0ID0gUmVuZGVyQmxvY2s6OnBhZGRpbmdMZWZ0KCk7Ci0gICAgaWYgKCFp
bmNsdWRlSW50cmluc2ljUGFkZGluZyB8fCBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpKQorICAg
IGlmIChwYWRkaW5nT3B0aW9uID09IEV4Y2x1ZGVJbnRyaW5zaWNQYWRkaW5nIHx8IGlzSG9yaXpv
bnRhbFdyaXRpbmdNb2RlKCkpCiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgcmV0dXJuIHJl
c3VsdCArIChzdHlsZSgpLT53cml0aW5nTW9kZSgpID09IExlZnRUb1JpZ2h0V3JpdGluZ01vZGUg
PyBpbnRyaW5zaWNQYWRkaW5nQmVmb3JlKCkgOiBpbnRyaW5zaWNQYWRkaW5nQWZ0ZXIoKSk7CiAg
ICAgCiB9CiAKLUxheW91dFVuaXQgUmVuZGVyVGFibGVDZWxsOjpwYWRkaW5nUmlnaHQoYm9vbCBp
bmNsdWRlSW50cmluc2ljUGFkZGluZykgY29uc3QKK0xheW91dFVuaXQgUmVuZGVyVGFibGVDZWxs
OjpwYWRkaW5nUmlnaHQoUGFkZGluZ09wdGlvbnMgcGFkZGluZ09wdGlvbikgY29uc3QKIHsgICAK
ICAgICBMYXlvdXRVbml0IHJlc3VsdCA9IFJlbmRlckJsb2NrOjpwYWRkaW5nUmlnaHQoKTsKLSAg
ICBpZiAoIWluY2x1ZGVJbnRyaW5zaWNQYWRkaW5nIHx8IGlzSG9yaXpvbnRhbFdyaXRpbmdNb2Rl
KCkpCisgICAgaWYgKHBhZGRpbmdPcHRpb24gPT0gRXhjbHVkZUludHJpbnNpY1BhZGRpbmcgfHwg
aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICBy
ZXR1cm4gcmVzdWx0ICsgKHN0eWxlKCktPndyaXRpbmdNb2RlKCkgPT0gTGVmdFRvUmlnaHRXcml0
aW5nTW9kZSA/IGludHJpbnNpY1BhZGRpbmdBZnRlcigpIDogaW50cmluc2ljUGFkZGluZ0JlZm9y
ZSgpKTsKIH0KIAotTGF5b3V0VW5pdCBSZW5kZXJUYWJsZUNlbGw6OnBhZGRpbmdCZWZvcmUoYm9v
bCBpbmNsdWRlSW50cmluc2ljUGFkZGluZykgY29uc3QKK0xheW91dFVuaXQgUmVuZGVyVGFibGVD
ZWxsOjpwYWRkaW5nQmVmb3JlKFBhZGRpbmdPcHRpb25zIHBhZGRpbmdPcHRpb24pIGNvbnN0CiB7
CiAgICAgTGF5b3V0VW5pdCByZXN1bHQgPSBSZW5kZXJCbG9jazo6cGFkZGluZ0JlZm9yZSgpOwot
ICAgIGlmICghaW5jbHVkZUludHJpbnNpY1BhZGRpbmcpCisgICAgaWYgKHBhZGRpbmdPcHRpb24g
PT0gRXhjbHVkZUludHJpbnNpY1BhZGRpbmcpCiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAg
cmV0dXJuIHJlc3VsdCArIGludHJpbnNpY1BhZGRpbmdCZWZvcmUoKTsKIH0KIAotTGF5b3V0VW5p
dCBSZW5kZXJUYWJsZUNlbGw6OnBhZGRpbmdBZnRlcihib29sIGluY2x1ZGVJbnRyaW5zaWNQYWRk
aW5nKSBjb25zdAorTGF5b3V0VW5pdCBSZW5kZXJUYWJsZUNlbGw6OnBhZGRpbmdBZnRlcihQYWRk
aW5nT3B0aW9ucyBwYWRkaW5nT3B0aW9uKSBjb25zdAogewogICAgIExheW91dFVuaXQgcmVzdWx0
ID0gUmVuZGVyQmxvY2s6OnBhZGRpbmdBZnRlcigpOwotICAgIGlmICghaW5jbHVkZUludHJpbnNp
Y1BhZGRpbmcpCisgICAgaWYgKHBhZGRpbmdPcHRpb24gPT0gRXhjbHVkZUludHJpbnNpY1BhZGRp
bmcpCiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgcmV0dXJuIHJlc3VsdCArIGludHJpbnNp
Y1BhZGRpbmdBZnRlcigpOwogfQpAQCAtMzI4LDcgKzMyOCw3IEBAIExheW91dFVuaXQgUmVuZGVy
VGFibGVDZWxsOjpjZWxsQmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0CiAgICAgTGF5b3V0VW5pdCBm
aXJzdExpbmVCYXNlbGluZSA9IGZpcnN0TGluZUJveEJhc2VsaW5lKCk7CiAgICAgaWYgKGZpcnN0
TGluZUJhc2VsaW5lICE9IC0xKQogICAgICAgICByZXR1cm4gZmlyc3RMaW5lQmFzZWxpbmU7Ci0g
ICAgcmV0dXJuIHBhZGRpbmdCZWZvcmUoKSArIGJvcmRlckJlZm9yZSgpICsgY29udGVudExvZ2lj
YWxIZWlnaHQoKTsKKyAgICByZXR1cm4gcGFkZGluZ0JlZm9yZSgpICsgYm9yZGVyQmVmb3JlKCkg
KyBjb250ZW50TG9naWNhbEhlaWdodChJbmNsdWRlSW50cmluc2ljUGFkZGluZyk7CiB9CiAKIHZv
aWQgUmVuZGVyVGFibGVDZWxsOjpzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwg
Y29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRhYmxlQ2VsbC5oCmluZGV4IGMxOWY3YjUyZGY3YmY2YzkzMjdhMjQ2NmQzYTYzNDcyMDU5
MmU3ZDMuLmUxODM3MmFjNTJlYmEwMTg0NGIzNjAwMjI2YzkwYmI0MTJmODAyZDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmgKQEAgLTEyMCwxNiArMTIwLDE2
IEBAIHB1YmxpYzoKICAgICBpbnQgaW50cmluc2ljUGFkZGluZ0JlZm9yZSgpIGNvbnN0IHsgcmV0
dXJuIG1faW50cmluc2ljUGFkZGluZ0JlZm9yZTsgfQogICAgIGludCBpbnRyaW5zaWNQYWRkaW5n
QWZ0ZXIoKSBjb25zdCB7IHJldHVybiBtX2ludHJpbnNpY1BhZGRpbmdBZnRlcjsgfQogCi0gICAg
dmlydHVhbCBMYXlvdXRVbml0IHBhZGRpbmdUb3AoYm9vbCBpbmNsdWRlSW50cmluc2ljUGFkZGlu
ZyA9IHRydWUpIGNvbnN0OwotICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBwYWRkaW5nQm90dG9tKGJv
b2wgaW5jbHVkZUludHJpbnNpY1BhZGRpbmcgPSB0cnVlKSBjb25zdDsKLSAgICB2aXJ0dWFsIExh
eW91dFVuaXQgcGFkZGluZ0xlZnQoYm9vbCBpbmNsdWRlSW50cmluc2ljUGFkZGluZyA9IHRydWUp
IGNvbnN0OwotICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBwYWRkaW5nUmlnaHQoYm9vbCBpbmNsdWRl
SW50cmluc2ljUGFkZGluZyA9IHRydWUpIGNvbnN0OworICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBw
YWRkaW5nVG9wKFBhZGRpbmdPcHRpb25zID0gSW5jbHVkZUludHJpbnNpY1BhZGRpbmcpIGNvbnN0
OworICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBwYWRkaW5nQm90dG9tKFBhZGRpbmdPcHRpb25zID0g
SW5jbHVkZUludHJpbnNpY1BhZGRpbmcpIGNvbnN0OworICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBw
YWRkaW5nTGVmdChQYWRkaW5nT3B0aW9ucyA9IEluY2x1ZGVJbnRyaW5zaWNQYWRkaW5nKSBjb25z
dDsKKyAgICB2aXJ0dWFsIExheW91dFVuaXQgcGFkZGluZ1JpZ2h0KFBhZGRpbmdPcHRpb25zID0g
SW5jbHVkZUludHJpbnNpY1BhZGRpbmcpIGNvbnN0OwogICAgIAogICAgIC8vIEZJWE1FOiBGb3Ig
bm93IHdlIGp1c3QgYXNzdW1lIHRoZSBjZWxsIGhhcyB0aGUgc2FtZSBibG9jayBmbG93IGRpcmVj
dGlvbiBhcyB0aGUgdGFibGUuICBJdCdzIGxpa2VseSB3ZSdsbAogICAgIC8vIGNyZWF0ZSBhbiBl
eHRyYSBhbm9ueW1vdXMgUmVuZGVyQmxvY2sgdG8gaGFuZGxlIG1peGluZyBkaXJlY3Rpb25hbGl0
eSBhbnl3YXksIGluIHdoaWNoIGNhc2Ugd2UgY2FuIGxvY2sKICAgICAvLyB0aGUgYmxvY2sgZmxv
dyBkaXJlY3Rpb25hbGl0eSBvZiB0aGUgY2VsbHMgdG8gdGhlIHRhYmxlJ3MgZGlyZWN0aW9uYWxp
dHkuCi0gICAgdmlydHVhbCBMYXlvdXRVbml0IHBhZGRpbmdCZWZvcmUoYm9vbCBpbmNsdWRlSW50
cmluc2ljUGFkZGluZyA9IHRydWUpIGNvbnN0OwotICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBwYWRk
aW5nQWZ0ZXIoYm9vbCBpbmNsdWRlSW50cmluc2ljUGFkZGluZyA9IHRydWUpIGNvbnN0OworICAg
IHZpcnR1YWwgTGF5b3V0VW5pdCBwYWRkaW5nQmVmb3JlKFBhZGRpbmdPcHRpb25zID0gSW5jbHVk
ZUludHJpbnNpY1BhZGRpbmcpIGNvbnN0OworICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBwYWRkaW5n
QWZ0ZXIoUGFkZGluZ09wdGlvbnMgPSBJbmNsdWRlSW50cmluc2ljUGFkZGluZykgY29uc3Q7CiAK
ICAgICB2b2lkIHNldE92ZXJyaWRlSGVpZ2h0RnJvbVJvd0hlaWdodChMYXlvdXRVbml0KTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcAppbmRl
eCAyNGFmMjFlZmMzNjc3M2NiMTdiZjZjZDQ3M2Q0NjY3NGQ1YjY4ZWYwLi4wNGQ0MjkwMTRmNDBi
YTMxZmIxMmIzM2EwNGM1ZDgxNTRiM2Q2MDk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcApAQCAtOTEzLDcgKzkxMyw3IEBAIExheW91dFVu
aXQgUmVuZGVyVGFibGVTZWN0aW9uOjpmaXJzdExpbmVCb3hCYXNlbGluZSgpIGNvbnN0CiAgICAg
ICAgIGNvbnN0IENlbGxTdHJ1Y3QmIGNzID0gZmlyc3RSb3cuYXQoaSk7CiAgICAgICAgIGNvbnN0
IFJlbmRlclRhYmxlQ2VsbCogY2VsbCA9IGNzLnByaW1hcnlDZWxsKCk7CiAgICAgICAgIGlmIChj
ZWxsKQotICAgICAgICAgICAgZmlyc3RMaW5lQmFzZWxpbmUgPSBtYXgoZmlyc3RMaW5lQmFzZWxp
bmUsIGNlbGwtPmxvZ2ljYWxUb3AoKSArIGNlbGwtPnBhZGRpbmdCZWZvcmUoKSArIGNlbGwtPmJv
cmRlckJlZm9yZSgpICsgY2VsbC0+Y29udGVudExvZ2ljYWxIZWlnaHQoKSk7CisgICAgICAgICAg
ICBmaXJzdExpbmVCYXNlbGluZSA9IG1heChmaXJzdExpbmVCYXNlbGluZSwgY2VsbC0+bG9naWNh
bFRvcCgpICsgY2VsbC0+cGFkZGluZ0JlZm9yZSgpICsgY2VsbC0+Ym9yZGVyQmVmb3JlKCkgKyBj
ZWxsLT5jb250ZW50TG9naWNhbEhlaWdodChJbmNsdWRlSW50cmluc2ljUGFkZGluZykpOwogICAg
IH0KIAogICAgIHJldHVybiBmaXJzdExpbmVCYXNlbGluZTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlYzQzNjNjNzkxY2M4
MzdhNjhmODQ4MTlkNjViZTRiMmI0ZDhkODdiLi4zNjczNmIwYjAwNzhlNWFlZDU2MGQ2OGE1ZjU0
MjJmZmM2NWVjMmY1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDMtMDUgIEFsZXhpcyBN
ZW5hcmQgIDxhbGV4aXMubWVuYXJkQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgZ2V0Q29tcHV0
ZWRTdHlsZSBnaXZlcyBpbmNvcnJlY3QgaW5mb3JtYXRpb24gZm9yICdoZWlnaHQnIHByb3BlcnR5
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMzU5Mwor
CisgICAgICAgIFJldmlld2VkIGJ5IERhdmlkIEh5YXR0LgorCisgICAgICAgIE1ha2Ugc3VyZSB0
aGF0IHRoZSBjb250ZW50Qm94UmVjdCBkb2Vzbid0IHRha2UgaW50byBhY2NvdW50IHRoZQorICAg
ICAgICBpbnRyaW5zaWMgcGFkZGluZy4KKworICAgICAgICAqIGZhc3QvY3NzL2dldENvbXB1dGVk
U3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS1oZWlnaHQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtaGVpZ2h0Lmh0
bWw6IEFkZGVkLgorCiAyMDEyLTAzLTA1ICBBZGFtIEtsZWluICA8YWRhbWtAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFVzZSBhIHByb3BlciBjbG9zaW5nIHRhZyBmb3Igc2hhZG93IGVsZW1lbnQg
bGF5b3V0IHRlc3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2dldENvbXB1dGVk
U3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS1oZWlnaHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLWhlaWdodC1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNmYyYTQ4ZDJmOTU0Njk2NzdkZDJmNmFjYWU2ZmE3MTc5NTgyYmNj
YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5
bGUvZ2V0Q29tcHV0ZWRTdHlsZS1oZWlnaHQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAK
K1Rlc3QgdGhlIGNvbXB1dGVkIGhlaWdodCBvZiBhIGNlbGwgOiBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzM1OTMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgnaGVpZ2h0JykgaXMgJzIw
MHB4JworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2dldENvbXB1dGVkU3R5bGUvZ2V0Q29t
cHV0ZWRTdHlsZS1oZWlnaHQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2dldENvbXB1dGVk
U3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS1oZWlnaHQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNjQ0Y2VkMmI2
YWY1NjRkZTI0NmUyYjYwYjFkZjI5YTJjYTI0OTQ2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLWhlaWdodC5o
dG1sCkBAIC0wLDAgKzEsMzggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxt
ZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgICAgdGFibGUg
dGQgeworICAgICAgICBwYWRkaW5nOiAyMHB4OworICAgICAgICBib3JkZXI6IDEwcHggc29saWQg
Ymx1ZTsKKyAgICB9CisKKyAgICAjY2VsbDEgeworICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAg
IH0KKzwvc3R5bGU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNw
YWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIiBpZD0idGFibGUiPgorICAgIDx0ciBpZD0icm93MSI+
CisgICAgICAgIDx0ZCBpZD0iY2VsbDEiPmhlaWdodDwvdGQ+CisgICAgPC90cj4KKzwvdGFibGU+
Cis8c2NyaXB0PgorCitkZXNjcmlwdGlvbigiVGVzdCB0aGUgY29tcHV0ZWQgaGVpZ2h0IG9mIGEg
Y2VsbCA6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMzU5My4iKQor
CitlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NlbGwxJyk7Cit0YWJsZSA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCd0YWJsZScpOworY29tcHV0ZWRTdHlsZSA9IHdpbmRvdy5nZXRDb21w
dXRlZFN0eWxlKGUsIG51bGwpOworCitzaG91bGRCZSgiY29tcHV0ZWRTdHlsZS5nZXRQcm9wZXJ0
eVZhbHVlKCdoZWlnaHQnKSIsICInMjAwcHgnIik7CisKK2RvY3VtZW50LmJvZHkucmVtb3ZlQ2hp
bGQodGFibGUpOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>134936</attachid>
            <date>2012-03-30 20:38:38 -0700</date>
            <delta_ts>2012-04-03 09:09:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-33593-20120330203837.patch</filename>
            <type>text/plain</type>
            <size>16874</size>
            <attacher name="Dave Barton">dbarton</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExMjc2OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQxIEBACisyMDEyLTAzLTMwICBEYXZpZCBC
YXJ0b24gIDxkYmFydG9uQG1hdGhzY3JpYmUuY29tPgorCisgICAgICAgIGdldENvbXB1dGVkU3R5
bGUgZ2l2ZXMgaW5jb3JyZWN0IGluZm9ybWF0aW9uIGZvciAnaGVpZ2h0JyBwcm9wZXJ0eQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzM1OTMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGZpeGVzIHRo
ZSBwcmV2aW91c2x5IGxhbmRlZCBwYXRjaCBmb3IgdGhpcyBidWcuIFRoZSBQYWRkaW5nT3B0aW9u
cyBlbnVtIHZhbHVlcyBoYXZlCisgICAgICAgIGJlZW4gY2xhcmlmaWVkIGFuZCByZW5hbWVkLCBh
bmQgNSBmdW5jdGlvbnMgaW4gUmVuZGVyQm94LmggaGF2ZSBiZWVuIHJlc3RvcmVkIHRvIHRoZWly
CisgICAgICAgIG9sZCBjb3JyZWN0IGJlaGF2aW9yIHdoZW4gcGFzc2VkIG5vIGFyZ3VtZW50cy4K
KworICAgICAgICBObyBuZXcgdGVzdHMuCisKKyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHls
ZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0NvbXB1dGVkU3R5bGVEZWNs
YXJhdGlvbjo6Z2V0UHJvcGVydHlDU1NWYWx1ZSk6CisgICAgICAgICogZWRpdGluZy9EZWxldGVT
ZWxlY3Rpb25Db21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQ6OnJlbW92ZU5vZGUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6Y29udGVudEJveFJlY3QpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQm94Ojpjb250ZW50V2lkdGgpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
Qm94Ojpjb250ZW50SGVpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6Y29udGVu
dExvZ2ljYWxXaWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmNvbnRlbnRMb2dp
Y2FsSGVpZ2h0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaDoK
KyAgICAgICAgKFJlbmRlckJveE1vZGVsT2JqZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyVGFibGVDZWxsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlQ2VsbDo6cGFk
ZGluZ1RvcCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZUNlbGw6OnBhZGRpbmdCb3R0
b20pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGVDZWxsOjpwYWRkaW5nTGVmdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZUNlbGw6OnBhZGRpbmdSaWdodCk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJUYWJsZUNlbGw6OnBhZGRpbmdCZWZvcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVGFibGVDZWxsOjpwYWRkaW5nQWZ0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVGFibGVDZWxsOjpjZWxsQmFzZWxpbmVQb3NpdGlvbik6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlclRhYmxlQ2VsbC5oOgorICAgICAgICAoUmVuZGVyVGFibGVDZWxsKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclRhYmxlU2VjdGlvbjo6Zmlyc3RMaW5lQm94QmFzZWxpbmUpOgorCiAyMDEyLTAzLTMw
ICBUb255IFRzZXVuZyAgPHRzZXVuZ0BhcHBsZS5jb20+CiAKICAgICAgICAgQ29tcG9zaXRlIEZv
bnQgUmVmZXJlbmNlcyBpcyBhIG5ldyBlc3RhYmxpc2hlZCBzdGFuZGFyZCAoSVNPL0lFQyAxNDQ5
Ni0yODoyMDEyKSBmb3Igc3BlY2lmeWluZwpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nv
bXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAJKHJldmlzaW9uIDExMjQ5OCkKKysr
IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xODQ4LDE5ICsxODQ4LDE5IEBAIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IENT
U0NvbXB1dGVkU3R5bGVEZWMKICAgICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2wtPmNyZWF0
ZVZhbHVlKHN0eWxlLT5vdmVyZmxvd1koKSk7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlQYWRk
aW5nVG9wOgogICAgICAgICAgICAgaWYgKHJlbmRlcmVyICYmIHJlbmRlcmVyLT5pc0JveCgpKQot
ICAgICAgICAgICAgICAgIHJldHVybiB6b29tQWRqdXN0ZWRQaXhlbFZhbHVlKHRvUmVuZGVyQm94
KHJlbmRlcmVyKS0+cGFkZGluZ1RvcChFeGNsdWRlSW50cmluc2ljUGFkZGluZyksIHN0eWxlLmdl
dCgpLCBjc3NWYWx1ZVBvb2wpOworICAgICAgICAgICAgICAgIHJldHVybiB6b29tQWRqdXN0ZWRQ
aXhlbFZhbHVlKHRvUmVuZGVyQm94KHJlbmRlcmVyKS0+cGFkZGluZ1RvcChQYWRkaW5nRXhjbHVk
ZXNJbnRyaW5zaWMpLCBzdHlsZS5nZXQoKSwgY3NzVmFsdWVQb29sKTsKICAgICAgICAgICAgIHJl
dHVybiB6b29tQWRqdXN0ZWRQaXhlbFZhbHVlRm9yTGVuZ3RoKHN0eWxlLT5wYWRkaW5nVG9wKCks
IHN0eWxlLmdldCgpLCBjc3NWYWx1ZVBvb2wpOwogICAgICAgICBjYXNlIENTU1Byb3BlcnR5UGFk
ZGluZ1JpZ2h0OgogICAgICAgICAgICAgaWYgKHJlbmRlcmVyICYmIHJlbmRlcmVyLT5pc0JveCgp
KQotICAgICAgICAgICAgICAgIHJldHVybiB6b29tQWRqdXN0ZWRQaXhlbFZhbHVlKHRvUmVuZGVy
Qm94KHJlbmRlcmVyKS0+cGFkZGluZ1JpZ2h0KEV4Y2x1ZGVJbnRyaW5zaWNQYWRkaW5nKSwgc3R5
bGUuZ2V0KCksIGNzc1ZhbHVlUG9vbCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHpvb21BZGp1
c3RlZFBpeGVsVmFsdWUodG9SZW5kZXJCb3gocmVuZGVyZXIpLT5wYWRkaW5nUmlnaHQoUGFkZGlu
Z0V4Y2x1ZGVzSW50cmluc2ljKSwgc3R5bGUuZ2V0KCksIGNzc1ZhbHVlUG9vbCk7CiAgICAgICAg
ICAgICByZXR1cm4gem9vbUFkanVzdGVkUGl4ZWxWYWx1ZUZvckxlbmd0aChzdHlsZS0+cGFkZGlu
Z1JpZ2h0KCksIHN0eWxlLmdldCgpLCBjc3NWYWx1ZVBvb2wpOwogICAgICAgICBjYXNlIENTU1By
b3BlcnR5UGFkZGluZ0JvdHRvbToKICAgICAgICAgICAgIGlmIChyZW5kZXJlciAmJiByZW5kZXJl
ci0+aXNCb3goKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gem9vbUFkanVzdGVkUGl4ZWxWYWx1
ZSh0b1JlbmRlckJveChyZW5kZXJlciktPnBhZGRpbmdCb3R0b20oRXhjbHVkZUludHJpbnNpY1Bh
ZGRpbmcpLCBzdHlsZS5nZXQoKSwgY3NzVmFsdWVQb29sKTsKKyAgICAgICAgICAgICAgICByZXR1
cm4gem9vbUFkanVzdGVkUGl4ZWxWYWx1ZSh0b1JlbmRlckJveChyZW5kZXJlciktPnBhZGRpbmdC
b3R0b20oUGFkZGluZ0V4Y2x1ZGVzSW50cmluc2ljKSwgc3R5bGUuZ2V0KCksIGNzc1ZhbHVlUG9v
bCk7CiAgICAgICAgICAgICByZXR1cm4gem9vbUFkanVzdGVkUGl4ZWxWYWx1ZUZvckxlbmd0aChz
dHlsZS0+cGFkZGluZ0JvdHRvbSgpLCBzdHlsZS5nZXQoKSwgY3NzVmFsdWVQb29sKTsKICAgICAg
ICAgY2FzZSBDU1NQcm9wZXJ0eVBhZGRpbmdMZWZ0OgogICAgICAgICAgICAgaWYgKHJlbmRlcmVy
ICYmIHJlbmRlcmVyLT5pc0JveCgpKQotICAgICAgICAgICAgICAgIHJldHVybiB6b29tQWRqdXN0
ZWRQaXhlbFZhbHVlKHRvUmVuZGVyQm94KHJlbmRlcmVyKS0+cGFkZGluZ0xlZnQoRXhjbHVkZUlu
dHJpbnNpY1BhZGRpbmcpLCBzdHlsZS5nZXQoKSwgY3NzVmFsdWVQb29sKTsKKyAgICAgICAgICAg
ICAgICByZXR1cm4gem9vbUFkanVzdGVkUGl4ZWxWYWx1ZSh0b1JlbmRlckJveChyZW5kZXJlcikt
PnBhZGRpbmdMZWZ0KFBhZGRpbmdFeGNsdWRlc0ludHJpbnNpYyksIHN0eWxlLmdldCgpLCBjc3NW
YWx1ZVBvb2wpOwogICAgICAgICAgICAgcmV0dXJuIHpvb21BZGp1c3RlZFBpeGVsVmFsdWVGb3JM
ZW5ndGgoc3R5bGUtPnBhZGRpbmdMZWZ0KCksIHN0eWxlLmdldCgpLCBjc3NWYWx1ZVBvb2wpOwog
ICAgICAgICBjYXNlIENTU1Byb3BlcnR5UGFnZUJyZWFrQWZ0ZXI6CiAgICAgICAgICAgICByZXR1
cm4gY3NzVmFsdWVQb29sLT5jcmVhdGVWYWx1ZShzdHlsZS0+cGFnZUJyZWFrQWZ0ZXIoKSk7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFu
ZC5jcHAJKHJldmlzaW9uIDExMjQ5OCkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRl
U2VsZWN0aW9uQ29tbWFuZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2Myw3ICszNjMsNyBAQCB2
b2lkIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6OnJlbW92ZU5vZGUoCiAgICAgICAgIC8vIE1ha2Ug
c3VyZSBlbXB0eSBjZWxsIGhhcyBzb21lIGhlaWdodCwgaWYgYSBwbGFjZWhvbGRlciBjYW4gYmUg
aW5zZXJ0ZWQuCiAgICAgICAgIGRvY3VtZW50KCktPnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdT
dHlsZXNoZWV0cygpOwogICAgICAgICBSZW5kZXJPYmplY3QgKnIgPSBub2RlLT5yZW5kZXJlcigp
OwotICAgICAgICBpZiAociAmJiByLT5pc1RhYmxlQ2VsbCgpICYmIHRvUmVuZGVyVGFibGVDZWxs
KHIpLT5jb250ZW50SGVpZ2h0KEluY2x1ZGVJbnRyaW5zaWNQYWRkaW5nKSA8PSAwKSB7CisgICAg
ICAgIGlmIChyICYmIHItPmlzVGFibGVDZWxsKCkgJiYgdG9SZW5kZXJUYWJsZUNlbGwociktPmNv
bnRlbnRIZWlnaHQoUGFkZGluZ0luY2x1ZGVzSW50cmluc2ljKSA8PSAwKSB7CiAgICAgICAgICAg
ICBQb3NpdGlvbiBmaXJzdEVkaXRhYmxlUG9zaXRpb24gPSBmaXJzdEVkaXRhYmxlUG9zaXRpb25J
bk5vZGUobm9kZS5nZXQoKSk7CiAgICAgICAgICAgICBpZiAoZmlyc3RFZGl0YWJsZVBvc2l0aW9u
LmlzTm90TnVsbCgpKQogICAgICAgICAgICAgICAgIGluc2VydEJsb2NrUGxhY2Vob2xkZXIoZmly
c3RFZGl0YWJsZVBvc2l0aW9uKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCb3guaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94
LmgJKHJldmlzaW9uIDExMjQ5OCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
b3guaAkod29ya2luZyBjb3B5KQpAQCAtMTM4LDcgKzEzOCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIEludFJlY3QgYm9yZGVyQm91bmRpbmdCb3goKSBjb25zdCB7IHJldHVybiBwaXhlbFNuYXBw
ZWRCb3JkZXJCb3hSZWN0KCk7IH0KIAogICAgIC8vIFRoZSBjb250ZW50IGFyZWEgb2YgdGhlIGJv
eCAoZXhjbHVkZXMgcGFkZGluZyBhbmQgYm9yZGVyKS4KLSAgICBMYXlvdXRSZWN0IGNvbnRlbnRC
b3hSZWN0KFBhZGRpbmdPcHRpb25zIHBhZGRpbmdPcHRpb24gPSBFeGNsdWRlSW50cmluc2ljUGFk
ZGluZykgY29uc3QgeyByZXR1cm4gTGF5b3V0UmVjdChib3JkZXJMZWZ0KCkgKyBwYWRkaW5nTGVm
dChwYWRkaW5nT3B0aW9uKSwgYm9yZGVyVG9wKCkgKyBwYWRkaW5nVG9wKHBhZGRpbmdPcHRpb24p
LCBjb250ZW50V2lkdGgocGFkZGluZ09wdGlvbiksIGNvbnRlbnRIZWlnaHQocGFkZGluZ09wdGlv
bikpOyB9CisgICAgTGF5b3V0UmVjdCBjb250ZW50Qm94UmVjdChQYWRkaW5nT3B0aW9ucyBwYWRk
aW5nT3B0aW9uID0gUGFkZGluZ0luY2x1ZGVzSW50cmluc2ljKSBjb25zdCB7IHJldHVybiBMYXlv
dXRSZWN0KGJvcmRlckxlZnQoKSArIHBhZGRpbmdMZWZ0KHBhZGRpbmdPcHRpb24pLCBib3JkZXJU
b3AoKSArIHBhZGRpbmdUb3AocGFkZGluZ09wdGlvbiksIGNvbnRlbnRXaWR0aChwYWRkaW5nT3B0
aW9uKSwgY29udGVudEhlaWdodChwYWRkaW5nT3B0aW9uKSk7IH0KICAgICAvLyBUaGUgY29udGVu
dCBib3ggaW4gYWJzb2x1dGUgY29vcmRzLiBJZ25vcmVzIHRyYW5zZm9ybXMuCiAgICAgTGF5b3V0
UmVjdCBhYnNvbHV0ZUNvbnRlbnRCb3goKSBjb25zdDsKICAgICAvLyBUaGUgY29udGVudCBib3gg
Y29udmVydGVkIHRvIGFic29sdXRlIGNvb3JkcyAodGFraW5nIHRyYW5zZm9ybXMgaW50byBhY2Nv
dW50KS4KQEAgLTE4NSwxMCArMTg1LDEwIEBAIHB1YmxpYzoKICAgICAKICAgICB2b2lkIHVwZGF0
ZUxheWVyVHJhbnNmb3JtKCk7CiAKLSAgICBMYXlvdXRVbml0IGNvbnRlbnRXaWR0aChQYWRkaW5n
T3B0aW9ucyBwYWRkaW5nT3B0aW9uID0gRXhjbHVkZUludHJpbnNpY1BhZGRpbmcpIGNvbnN0IHsg
cmV0dXJuIGNsaWVudFdpZHRoKCkgLSBwYWRkaW5nTGVmdChwYWRkaW5nT3B0aW9uKSAtIHBhZGRp
bmdSaWdodChwYWRkaW5nT3B0aW9uKTsgfQotICAgIExheW91dFVuaXQgY29udGVudEhlaWdodChQ
YWRkaW5nT3B0aW9ucyBwYWRkaW5nT3B0aW9uID0gRXhjbHVkZUludHJpbnNpY1BhZGRpbmcpIGNv
bnN0IHsgcmV0dXJuIGNsaWVudEhlaWdodCgpIC0gcGFkZGluZ1RvcChwYWRkaW5nT3B0aW9uKSAt
IHBhZGRpbmdCb3R0b20ocGFkZGluZ09wdGlvbik7IH0KLSAgICBMYXlvdXRVbml0IGNvbnRlbnRM
b2dpY2FsV2lkdGgoUGFkZGluZ09wdGlvbnMgcGFkZGluZ09wdGlvbiA9IEV4Y2x1ZGVJbnRyaW5z
aWNQYWRkaW5nKSBjb25zdCB7IHJldHVybiBzdHlsZSgpLT5pc0hvcml6b250YWxXcml0aW5nTW9k
ZSgpID8gY29udGVudFdpZHRoKHBhZGRpbmdPcHRpb24pIDogY29udGVudEhlaWdodChwYWRkaW5n
T3B0aW9uKTsgfQotICAgIExheW91dFVuaXQgY29udGVudExvZ2ljYWxIZWlnaHQoUGFkZGluZ09w
dGlvbnMgcGFkZGluZ09wdGlvbiA9IEV4Y2x1ZGVJbnRyaW5zaWNQYWRkaW5nKSBjb25zdCB7IHJl
dHVybiBzdHlsZSgpLT5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gY29udGVudEhlaWdodChw
YWRkaW5nT3B0aW9uKSA6IGNvbnRlbnRXaWR0aChwYWRkaW5nT3B0aW9uKTsgfQorICAgIExheW91
dFVuaXQgY29udGVudFdpZHRoKFBhZGRpbmdPcHRpb25zIHBhZGRpbmdPcHRpb24gPSBQYWRkaW5n
SW5jbHVkZXNJbnRyaW5zaWMpIGNvbnN0IHsgcmV0dXJuIGNsaWVudFdpZHRoKCkgLSBwYWRkaW5n
TGVmdChwYWRkaW5nT3B0aW9uKSAtIHBhZGRpbmdSaWdodChwYWRkaW5nT3B0aW9uKTsgfQorICAg
IExheW91dFVuaXQgY29udGVudEhlaWdodChQYWRkaW5nT3B0aW9ucyBwYWRkaW5nT3B0aW9uID0g
UGFkZGluZ0luY2x1ZGVzSW50cmluc2ljKSBjb25zdCB7IHJldHVybiBjbGllbnRIZWlnaHQoKSAt
IHBhZGRpbmdUb3AocGFkZGluZ09wdGlvbikgLSBwYWRkaW5nQm90dG9tKHBhZGRpbmdPcHRpb24p
OyB9CisgICAgTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbFdpZHRoKFBhZGRpbmdPcHRpb25zIHBh
ZGRpbmdPcHRpb24gPSBQYWRkaW5nSW5jbHVkZXNJbnRyaW5zaWMpIGNvbnN0IHsgcmV0dXJuIHN0
eWxlKCktPmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBjb250ZW50V2lkdGgocGFkZGluZ09w
dGlvbikgOiBjb250ZW50SGVpZ2h0KHBhZGRpbmdPcHRpb24pOyB9CisgICAgTGF5b3V0VW5pdCBj
b250ZW50TG9naWNhbEhlaWdodChQYWRkaW5nT3B0aW9ucyBwYWRkaW5nT3B0aW9uID0gUGFkZGlu
Z0luY2x1ZGVzSW50cmluc2ljKSBjb25zdCB7IHJldHVybiBzdHlsZSgpLT5pc0hvcml6b250YWxX
cml0aW5nTW9kZSgpID8gY29udGVudEhlaWdodChwYWRkaW5nT3B0aW9uKSA6IGNvbnRlbnRXaWR0
aChwYWRkaW5nT3B0aW9uKTsgfQogCiAgICAgLy8gSUUgZXh0ZW5zaW9ucy4gVXNlZCB0byBjYWxj
dWxhdGUgb2Zmc2V0V2lkdGgvSGVpZ2h0LiAgT3ZlcnJpZGRlbiBieSBpbmxpbmVzIChSZW5kZXJG
bG93KQogICAgIC8vIHRvIHJldHVybiB0aGUgcmVtYWluaW5nIHdpZHRoIG9uIGEgZ2l2ZW4gbGlu
ZSAoYW5kIHRoZSBoZWlnaHQgb2YgYSBzaW5nbGUgbGluZSkuCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaAkocmV2aXNpb24gMTEyNDk4
KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmgJKHdv
cmtpbmcgY29weSkKQEAgLTQwLDcgKzQwLDcgQEAgZW51bSBCYWNrZ3JvdW5kQmxlZWRBdm9pZGFu
Y2UgewogICAgIEJhY2tncm91bmRCbGVlZFVzZVRyYW5zcGFyZW5jeUxheWVyCiB9OwogCi1lbnVt
IFBhZGRpbmdPcHRpb25zIHsgSW5jbHVkZUludHJpbnNpY1BhZGRpbmcsIEV4Y2x1ZGVJbnRyaW5z
aWNQYWRkaW5nIH07CitlbnVtIFBhZGRpbmdPcHRpb25zIC8qIGZvciBpbnRyaW5zaWMgcGFkZGlu
ZyAqLyB7IFBhZGRpbmdJbmNsdWRlc0ludHJpbnNpYywgUGFkZGluZ0V4Y2x1ZGVzSW50cmluc2lj
IH07CiAKIC8vIFRoaXMgY2xhc3MgaXMgdGhlIGJhc2UgZm9yIGFsbCBvYmplY3RzIHRoYXQgYWRo
ZXJlIHRvIHRoZSBDU1MgYm94IG1vZGVsIGFzIGRlc2NyaWJlZAogLy8gYXQgaHR0cDovL3d3dy53
My5vcmcvVFIvQ1NTMjEvYm94Lmh0bWwKQEAgLTc5LDE1ICs3OSwxNSBAQCBwdWJsaWM6CiAgICAg
Ly8gVGhpcyB3aWxsIHdvcmsgb24gaW5saW5lcyB0byByZXR1cm4gdGhlIGJvdW5kaW5nIGJveCBv
ZiBhbGwgb2YgdGhlIGxpbmVzJyBib3JkZXIgYm94ZXMuCiAgICAgdmlydHVhbCBMYXlvdXRSZWN0
IGJvcmRlckJvdW5kaW5nQm94KCkgY29uc3QgPSAwOwogCi0gICAgLy8gVmlydHVhbCBzaW5jZSB0
YWJsZSBjZWxscyBvdmVycmlkZQotICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBwYWRkaW5nVG9wKFBh
ZGRpbmdPcHRpb25zID0gSW5jbHVkZUludHJpbnNpY1BhZGRpbmcpIGNvbnN0OwotICAgIHZpcnR1
YWwgTGF5b3V0VW5pdCBwYWRkaW5nQm90dG9tKFBhZGRpbmdPcHRpb25zID0gSW5jbHVkZUludHJp
bnNpY1BhZGRpbmcpIGNvbnN0OwotICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBwYWRkaW5nTGVmdChQ
YWRkaW5nT3B0aW9ucyA9IEluY2x1ZGVJbnRyaW5zaWNQYWRkaW5nKSBjb25zdDsKLSAgICB2aXJ0
dWFsIExheW91dFVuaXQgcGFkZGluZ1JpZ2h0KFBhZGRpbmdPcHRpb25zID0gSW5jbHVkZUludHJp
bnNpY1BhZGRpbmcpIGNvbnN0OwotICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBwYWRkaW5nQmVmb3Jl
KFBhZGRpbmdPcHRpb25zID0gSW5jbHVkZUludHJpbnNpY1BhZGRpbmcpIGNvbnN0OwotICAgIHZp
cnR1YWwgTGF5b3V0VW5pdCBwYWRkaW5nQWZ0ZXIoUGFkZGluZ09wdGlvbnMgPSBJbmNsdWRlSW50
cmluc2ljUGFkZGluZykgY29uc3Q7Ci0gICAgdmlydHVhbCBMYXlvdXRVbml0IHBhZGRpbmdTdGFy
dChQYWRkaW5nT3B0aW9ucyA9IEluY2x1ZGVJbnRyaW5zaWNQYWRkaW5nKSBjb25zdDsKLSAgICB2
aXJ0dWFsIExheW91dFVuaXQgcGFkZGluZ0VuZChQYWRkaW5nT3B0aW9ucyA9IEluY2x1ZGVJbnRy
aW5zaWNQYWRkaW5nKSBjb25zdDsKKyAgICAvLyBWaXJ0dWFsIHNpbmNlIHRhYmxlIGNlbGxzIGFu
ZCBNYXRoTUwgcmVuZGVyZXJzIG92ZXJyaWRlCisgICAgdmlydHVhbCBMYXlvdXRVbml0IHBhZGRp
bmdUb3AoUGFkZGluZ09wdGlvbnMgPSBQYWRkaW5nSW5jbHVkZXNJbnRyaW5zaWMpIGNvbnN0Owor
ICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBwYWRkaW5nQm90dG9tKFBhZGRpbmdPcHRpb25zID0gUGFk
ZGluZ0luY2x1ZGVzSW50cmluc2ljKSBjb25zdDsKKyAgICB2aXJ0dWFsIExheW91dFVuaXQgcGFk
ZGluZ0xlZnQoUGFkZGluZ09wdGlvbnMgPSBQYWRkaW5nSW5jbHVkZXNJbnRyaW5zaWMpIGNvbnN0
OworICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBwYWRkaW5nUmlnaHQoUGFkZGluZ09wdGlvbnMgPSBQ
YWRkaW5nSW5jbHVkZXNJbnRyaW5zaWMpIGNvbnN0OworICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBw
YWRkaW5nQmVmb3JlKFBhZGRpbmdPcHRpb25zID0gUGFkZGluZ0luY2x1ZGVzSW50cmluc2ljKSBj
b25zdDsKKyAgICB2aXJ0dWFsIExheW91dFVuaXQgcGFkZGluZ0FmdGVyKFBhZGRpbmdPcHRpb25z
ID0gUGFkZGluZ0luY2x1ZGVzSW50cmluc2ljKSBjb25zdDsKKyAgICB2aXJ0dWFsIExheW91dFVu
aXQgcGFkZGluZ1N0YXJ0KFBhZGRpbmdPcHRpb25zID0gUGFkZGluZ0luY2x1ZGVzSW50cmluc2lj
KSBjb25zdDsKKyAgICB2aXJ0dWFsIExheW91dFVuaXQgcGFkZGluZ0VuZChQYWRkaW5nT3B0aW9u
cyA9IFBhZGRpbmdJbmNsdWRlc0ludHJpbnNpYykgY29uc3Q7CiAKICAgICB2aXJ0dWFsIGludCBi
b3JkZXJUb3AoKSBjb25zdCB7IHJldHVybiBzdHlsZSgpLT5ib3JkZXJUb3BXaWR0aCgpOyB9CiAg
ICAgdmlydHVhbCBpbnQgYm9yZGVyQm90dG9tKCkgY29uc3QgeyByZXR1cm4gc3R5bGUoKS0+Ym9y
ZGVyQm90dG9tV2lkdGgoKTsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRhYmxlQ2VsbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRhYmxlQ2VsbC5jcHAJKHJldmlzaW9uIDExMjQ5OCkKKysrIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTQsNyArMTk0
LDcgQEAgdm9pZCBSZW5kZXJUYWJsZUNlbGw6OmxheW91dCgpCiBMYXlvdXRVbml0IFJlbmRlclRh
YmxlQ2VsbDo6cGFkZGluZ1RvcChQYWRkaW5nT3B0aW9ucyBwYWRkaW5nT3B0aW9uKSBjb25zdAog
ewogICAgIExheW91dFVuaXQgcmVzdWx0ID0gUmVuZGVyQmxvY2s6OnBhZGRpbmdUb3AoKTsKLSAg
ICBpZiAocGFkZGluZ09wdGlvbiA9PSBFeGNsdWRlSW50cmluc2ljUGFkZGluZyB8fCAhaXNIb3Jp
em9udGFsV3JpdGluZ01vZGUoKSkKKyAgICBpZiAocGFkZGluZ09wdGlvbiA9PSBQYWRkaW5nRXhj
bHVkZXNJbnRyaW5zaWMgfHwgIWlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCiAgICAgICAgIHJl
dHVybiByZXN1bHQ7CiAgICAgcmV0dXJuIHJlc3VsdCArIChzdHlsZSgpLT53cml0aW5nTW9kZSgp
ID09IFRvcFRvQm90dG9tV3JpdGluZ01vZGUgPyBpbnRyaW5zaWNQYWRkaW5nQmVmb3JlKCkgOiBp
bnRyaW5zaWNQYWRkaW5nQWZ0ZXIoKSk7CiB9CkBAIC0yMDIsNyArMjAyLDcgQEAgTGF5b3V0VW5p
dCBSZW5kZXJUYWJsZUNlbGw6OnBhZGRpbmdUb3AoUAogTGF5b3V0VW5pdCBSZW5kZXJUYWJsZUNl
bGw6OnBhZGRpbmdCb3R0b20oUGFkZGluZ09wdGlvbnMgcGFkZGluZ09wdGlvbikgY29uc3QKIHsK
ICAgICBMYXlvdXRVbml0IHJlc3VsdCA9IFJlbmRlckJsb2NrOjpwYWRkaW5nQm90dG9tKCk7Ci0g
ICAgaWYgKHBhZGRpbmdPcHRpb24gPT0gRXhjbHVkZUludHJpbnNpY1BhZGRpbmcgfHwgIWlzSG9y
aXpvbnRhbFdyaXRpbmdNb2RlKCkpCisgICAgaWYgKHBhZGRpbmdPcHRpb24gPT0gUGFkZGluZ0V4
Y2x1ZGVzSW50cmluc2ljIHx8ICFpc0hvcml6b250YWxXcml0aW5nTW9kZSgpKQogICAgICAgICBy
ZXR1cm4gcmVzdWx0OwogICAgIHJldHVybiByZXN1bHQgKyAoc3R5bGUoKS0+d3JpdGluZ01vZGUo
KSA9PSBUb3BUb0JvdHRvbVdyaXRpbmdNb2RlID8gaW50cmluc2ljUGFkZGluZ0FmdGVyKCkgOiBp
bnRyaW5zaWNQYWRkaW5nQmVmb3JlKCkpOwogfQpAQCAtMjEwLDcgKzIxMCw3IEBAIExheW91dFVu
aXQgUmVuZGVyVGFibGVDZWxsOjpwYWRkaW5nQm90dG8KIExheW91dFVuaXQgUmVuZGVyVGFibGVD
ZWxsOjpwYWRkaW5nTGVmdChQYWRkaW5nT3B0aW9ucyBwYWRkaW5nT3B0aW9uKSBjb25zdAogewog
ICAgIExheW91dFVuaXQgcmVzdWx0ID0gUmVuZGVyQmxvY2s6OnBhZGRpbmdMZWZ0KCk7Ci0gICAg
aWYgKHBhZGRpbmdPcHRpb24gPT0gRXhjbHVkZUludHJpbnNpY1BhZGRpbmcgfHwgaXNIb3Jpem9u
dGFsV3JpdGluZ01vZGUoKSkKKyAgICBpZiAocGFkZGluZ09wdGlvbiA9PSBQYWRkaW5nRXhjbHVk
ZXNJbnRyaW5zaWMgfHwgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkKICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKICAgICByZXR1cm4gcmVzdWx0ICsgKHN0eWxlKCktPndyaXRpbmdNb2RlKCkgPT0g
TGVmdFRvUmlnaHRXcml0aW5nTW9kZSA/IGludHJpbnNpY1BhZGRpbmdCZWZvcmUoKSA6IGludHJp
bnNpY1BhZGRpbmdBZnRlcigpKTsKICAgICAKQEAgLTIxOSw3ICsyMTksNyBAQCBMYXlvdXRVbml0
IFJlbmRlclRhYmxlQ2VsbDo6cGFkZGluZ0xlZnQoCiBMYXlvdXRVbml0IFJlbmRlclRhYmxlQ2Vs
bDo6cGFkZGluZ1JpZ2h0KFBhZGRpbmdPcHRpb25zIHBhZGRpbmdPcHRpb24pIGNvbnN0CiB7ICAg
CiAgICAgTGF5b3V0VW5pdCByZXN1bHQgPSBSZW5kZXJCbG9jazo6cGFkZGluZ1JpZ2h0KCk7Ci0g
ICAgaWYgKHBhZGRpbmdPcHRpb24gPT0gRXhjbHVkZUludHJpbnNpY1BhZGRpbmcgfHwgaXNIb3Jp
em9udGFsV3JpdGluZ01vZGUoKSkKKyAgICBpZiAocGFkZGluZ09wdGlvbiA9PSBQYWRkaW5nRXhj
bHVkZXNJbnRyaW5zaWMgfHwgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkKICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKICAgICByZXR1cm4gcmVzdWx0ICsgKHN0eWxlKCktPndyaXRpbmdNb2RlKCkg
PT0gTGVmdFRvUmlnaHRXcml0aW5nTW9kZSA/IGludHJpbnNpY1BhZGRpbmdBZnRlcigpIDogaW50
cmluc2ljUGFkZGluZ0JlZm9yZSgpKTsKIH0KQEAgLTIyNyw3ICsyMjcsNyBAQCBMYXlvdXRVbml0
IFJlbmRlclRhYmxlQ2VsbDo6cGFkZGluZ1JpZ2h0CiBMYXlvdXRVbml0IFJlbmRlclRhYmxlQ2Vs
bDo6cGFkZGluZ0JlZm9yZShQYWRkaW5nT3B0aW9ucyBwYWRkaW5nT3B0aW9uKSBjb25zdAogewog
ICAgIExheW91dFVuaXQgcmVzdWx0ID0gUmVuZGVyQmxvY2s6OnBhZGRpbmdCZWZvcmUoKTsKLSAg
ICBpZiAocGFkZGluZ09wdGlvbiA9PSBFeGNsdWRlSW50cmluc2ljUGFkZGluZykKKyAgICBpZiAo
cGFkZGluZ09wdGlvbiA9PSBQYWRkaW5nRXhjbHVkZXNJbnRyaW5zaWMpCiAgICAgICAgIHJldHVy
biByZXN1bHQ7CiAgICAgcmV0dXJuIHJlc3VsdCArIGludHJpbnNpY1BhZGRpbmdCZWZvcmUoKTsK
IH0KQEAgLTIzNSw3ICsyMzUsNyBAQCBMYXlvdXRVbml0IFJlbmRlclRhYmxlQ2VsbDo6cGFkZGlu
Z0JlZm9yCiBMYXlvdXRVbml0IFJlbmRlclRhYmxlQ2VsbDo6cGFkZGluZ0FmdGVyKFBhZGRpbmdP
cHRpb25zIHBhZGRpbmdPcHRpb24pIGNvbnN0CiB7CiAgICAgTGF5b3V0VW5pdCByZXN1bHQgPSBS
ZW5kZXJCbG9jazo6cGFkZGluZ0FmdGVyKCk7Ci0gICAgaWYgKHBhZGRpbmdPcHRpb24gPT0gRXhj
bHVkZUludHJpbnNpY1BhZGRpbmcpCisgICAgaWYgKHBhZGRpbmdPcHRpb24gPT0gUGFkZGluZ0V4
Y2x1ZGVzSW50cmluc2ljKQogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIHJldHVybiByZXN1
bHQgKyBpbnRyaW5zaWNQYWRkaW5nQWZ0ZXIoKTsKIH0KQEAgLTMyOCw3ICszMjgsNyBAQCBMYXlv
dXRVbml0IFJlbmRlclRhYmxlQ2VsbDo6Y2VsbEJhc2VsaW5lCiAgICAgTGF5b3V0VW5pdCBmaXJz
dExpbmVCYXNlbGluZSA9IGZpcnN0TGluZUJveEJhc2VsaW5lKCk7CiAgICAgaWYgKGZpcnN0TGlu
ZUJhc2VsaW5lICE9IC0xKQogICAgICAgICByZXR1cm4gZmlyc3RMaW5lQmFzZWxpbmU7Ci0gICAg
cmV0dXJuIHBhZGRpbmdCZWZvcmUoKSArIGJvcmRlckJlZm9yZSgpICsgY29udGVudExvZ2ljYWxI
ZWlnaHQoSW5jbHVkZUludHJpbnNpY1BhZGRpbmcpOworICAgIHJldHVybiBwYWRkaW5nQmVmb3Jl
KCkgKyBib3JkZXJCZWZvcmUoKSArIGNvbnRlbnRMb2dpY2FsSGVpZ2h0KCk7CiB9CiAKIHZvaWQg
UmVuZGVyVGFibGVDZWxsOjpzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29u
c3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRhYmxlQ2VsbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUYWJsZUNlbGwuaAkocmV2aXNpb24gMTEyNDk4KQorKysgU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMjAsMTYgKzEy
MCwxNiBAQCBwdWJsaWM6CiAgICAgaW50IGludHJpbnNpY1BhZGRpbmdCZWZvcmUoKSBjb25zdCB7
IHJldHVybiBtX2ludHJpbnNpY1BhZGRpbmdCZWZvcmU7IH0KICAgICBpbnQgaW50cmluc2ljUGFk
ZGluZ0FmdGVyKCkgY29uc3QgeyByZXR1cm4gbV9pbnRyaW5zaWNQYWRkaW5nQWZ0ZXI7IH0KIAot
ICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBwYWRkaW5nVG9wKFBhZGRpbmdPcHRpb25zID0gSW5jbHVk
ZUludHJpbnNpY1BhZGRpbmcpIGNvbnN0OwotICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBwYWRkaW5n
Qm90dG9tKFBhZGRpbmdPcHRpb25zID0gSW5jbHVkZUludHJpbnNpY1BhZGRpbmcpIGNvbnN0Owot
ICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBwYWRkaW5nTGVmdChQYWRkaW5nT3B0aW9ucyA9IEluY2x1
ZGVJbnRyaW5zaWNQYWRkaW5nKSBjb25zdDsKLSAgICB2aXJ0dWFsIExheW91dFVuaXQgcGFkZGlu
Z1JpZ2h0KFBhZGRpbmdPcHRpb25zID0gSW5jbHVkZUludHJpbnNpY1BhZGRpbmcpIGNvbnN0Owor
ICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBwYWRkaW5nVG9wKFBhZGRpbmdPcHRpb25zID0gUGFkZGlu
Z0luY2x1ZGVzSW50cmluc2ljKSBjb25zdDsKKyAgICB2aXJ0dWFsIExheW91dFVuaXQgcGFkZGlu
Z0JvdHRvbShQYWRkaW5nT3B0aW9ucyA9IFBhZGRpbmdJbmNsdWRlc0ludHJpbnNpYykgY29uc3Q7
CisgICAgdmlydHVhbCBMYXlvdXRVbml0IHBhZGRpbmdMZWZ0KFBhZGRpbmdPcHRpb25zID0gUGFk
ZGluZ0luY2x1ZGVzSW50cmluc2ljKSBjb25zdDsKKyAgICB2aXJ0dWFsIExheW91dFVuaXQgcGFk
ZGluZ1JpZ2h0KFBhZGRpbmdPcHRpb25zID0gUGFkZGluZ0luY2x1ZGVzSW50cmluc2ljKSBjb25z
dDsKICAgICAKICAgICAvLyBGSVhNRTogRm9yIG5vdyB3ZSBqdXN0IGFzc3VtZSB0aGUgY2VsbCBo
YXMgdGhlIHNhbWUgYmxvY2sgZmxvdyBkaXJlY3Rpb24gYXMgdGhlIHRhYmxlLiAgSXQncyBsaWtl
bHkgd2UnbGwKICAgICAvLyBjcmVhdGUgYW4gZXh0cmEgYW5vbnltb3VzIFJlbmRlckJsb2NrIHRv
IGhhbmRsZSBtaXhpbmcgZGlyZWN0aW9uYWxpdHkgYW55d2F5LCBpbiB3aGljaCBjYXNlIHdlIGNh
biBsb2NrCiAgICAgLy8gdGhlIGJsb2NrIGZsb3cgZGlyZWN0aW9uYWxpdHkgb2YgdGhlIGNlbGxz
IHRvIHRoZSB0YWJsZSdzIGRpcmVjdGlvbmFsaXR5LgotICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBw
YWRkaW5nQmVmb3JlKFBhZGRpbmdPcHRpb25zID0gSW5jbHVkZUludHJpbnNpY1BhZGRpbmcpIGNv
bnN0OwotICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBwYWRkaW5nQWZ0ZXIoUGFkZGluZ09wdGlvbnMg
PSBJbmNsdWRlSW50cmluc2ljUGFkZGluZykgY29uc3Q7CisgICAgdmlydHVhbCBMYXlvdXRVbml0
IHBhZGRpbmdCZWZvcmUoUGFkZGluZ09wdGlvbnMgPSBQYWRkaW5nSW5jbHVkZXNJbnRyaW5zaWMp
IGNvbnN0OworICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBwYWRkaW5nQWZ0ZXIoUGFkZGluZ09wdGlv
bnMgPSBQYWRkaW5nSW5jbHVkZXNJbnRyaW5zaWMpIGNvbnN0OwogCiAgICAgdm9pZCBzZXRPdmVy
cmlkZUhlaWdodEZyb21Sb3dIZWlnaHQoTGF5b3V0VW5pdCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uY3BwCShyZXZpc2lvbiAxMTI0
OTgpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtOTUwLDcgKzk1MCw3IEBAIExheW91dFVuaXQgUmVuZGVyVGFibGVT
ZWN0aW9uOjpmaXJzdExpbmUKICAgICAgICAgY29uc3QgQ2VsbFN0cnVjdCYgY3MgPSBmaXJzdFJv
dy5hdChpKTsKICAgICAgICAgY29uc3QgUmVuZGVyVGFibGVDZWxsKiBjZWxsID0gY3MucHJpbWFy
eUNlbGwoKTsKICAgICAgICAgaWYgKGNlbGwpCi0gICAgICAgICAgICBmaXJzdExpbmVCYXNlbGlu
ZSA9IG1heChmaXJzdExpbmVCYXNlbGluZSwgY2VsbC0+bG9naWNhbFRvcCgpICsgY2VsbC0+cGFk
ZGluZ0JlZm9yZSgpICsgY2VsbC0+Ym9yZGVyQmVmb3JlKCkgKyBjZWxsLT5jb250ZW50TG9naWNh
bEhlaWdodChJbmNsdWRlSW50cmluc2ljUGFkZGluZykpOworICAgICAgICAgICAgZmlyc3RMaW5l
QmFzZWxpbmUgPSBtYXgoZmlyc3RMaW5lQmFzZWxpbmUsIGNlbGwtPmxvZ2ljYWxUb3AoKSArIGNl
bGwtPnBhZGRpbmdCZWZvcmUoKSArIGNlbGwtPmJvcmRlckJlZm9yZSgpICsgY2VsbC0+Y29udGVu
dExvZ2ljYWxIZWlnaHQoKSk7CiAgICAgfQogCiAgICAgcmV0dXJuIGZpcnN0TGluZUJhc2VsaW5l
Owo=
</data>
<flag name="review"
          id="139325"
          type_id="1"
          status="-"
          setter="dbates"
    />
    <flag name="commit-queue"
          id="139326"
          type_id="3"
          status="-"
          setter="dbates"
    />
          </attachment>
      

    </bug>

</bugzilla>