<?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>136098</bug_id>
          
          <creation_ts>2014-08-20 00:45:10 -0700</creation_ts>
          <short_desc>Canvas direction should reflect change in dir attribute and also across save/restore operations</short_desc>
          <delta_ts>2014-08-26 20:53:16 -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>Canvas</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Vivek Galatage">vivekg</reporter>
          <assigned_to name="Vivek Galatage">vivekg</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>gyuyoung.kim</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1030239</commentid>
    <comment_count>0</comment_count>
    <who name="Vivek Galatage">vivekg</who>
    <bug_when>2014-08-20 00:45:10 -0700</bug_when>
    <thetext>CanvasRenderingContext2D direction should reflect change in Element&apos;s dir attribute</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030241</commentid>
    <comment_count>1</comment_count>
      <attachid>236862</attachid>
    <who name="Vivek Galatage">vivekg</who>
    <bug_when>2014-08-20 00:55:49 -0700</bug_when>
    <thetext>Created attachment 236862
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030277</commentid>
    <comment_count>2</comment_count>
      <attachid>236862</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-08-20 08:58:55 -0700</bug_when>
    <thetext>Comment on attachment 236862
Patch

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

Doesn’t work right with save/restore. After this sequence:

    context.direction = &quot;inherit&quot;;
    context.save();
    context.direction = &quot;rtl&quot;;
    context.restore();

the context will be in non-inherited state, but should be in inherited state. The correct way to fix this is to change m_direction in State to have a separate state for inherit, so perhaps not be a TextDirection at all, or to add a boolean there, or have it be an Optional&lt;TextDirection&gt; or something like that.

Need test cases that cover the behavior with save/restore.

&gt; Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp:124
&gt;      m_stateStack.first().m_direction = inheritedDirection(*canvas);

This is no longer a useful thing to do. It wastefully computes a direction that will never be used since drawTextInternal will re-compute the direction every time.

&gt; Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp:2294
&gt; +    if (m_hasInheritedDirection &amp;&amp; computedStyle)

If computedStyle is null then we should use LTR, not the direction that already happens to be in the state.

&gt; Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp:2295
&gt; +        modifiableState().m_direction = computedStyle-&gt;direction();

It’s not helpful to store a new direction in the context, since we just have to recompute it every time anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030484</commentid>
    <comment_count>3</comment_count>
      <attachid>236920</attachid>
    <who name="Vivek Galatage">vivekg</who>
    <bug_when>2014-08-21 03:03:53 -0700</bug_when>
    <thetext>Created attachment 236920
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030487</commentid>
    <comment_count>4</comment_count>
      <attachid>236922</attachid>
    <who name="Vivek Galatage">vivekg</who>
    <bug_when>2014-08-21 03:16:07 -0700</bug_when>
    <thetext>Created attachment 236922
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030506</commentid>
    <comment_count>5</comment_count>
      <attachid>236926</attachid>
    <who name="Vivek Galatage">vivekg</who>
    <bug_when>2014-08-21 07:55:44 -0700</bug_when>
    <thetext>Created attachment 236926
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030507</commentid>
    <comment_count>6</comment_count>
    <who name="Vivek Galatage">vivekg</who>
    <bug_when>2014-08-21 08:01:08 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Created an attachment (id=236926) [details]
&gt; Patch

Cleaned up the State constructor which I missed in the previous one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030602</commentid>
    <comment_count>7</comment_count>
      <attachid>236926</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-08-21 17:33:02 -0700</bug_when>
    <thetext>Comment on attachment 236926
Patch

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

&gt; Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp:2181
&gt; +    TextDirection direction;
&gt; +    switch (state().m_direction) {
&gt; +    case DirectionInherit:
&gt; +        direction = inheritedDirection(*canvas());
&gt; +        break;
&gt; +    case DirectionRTL:
&gt; +        direction = RTL;
&gt; +        break;
&gt; +    case DirectionLTR:
&gt; +        direction = LTR;
&gt; +        break;
&gt; +    default:
&gt; +        ASSERT_NOT_REACHED();
&gt; +        break;
&gt; +    }

Would be nicer to share this switch statement with drawTextInternal. But it might require too much rearranging to do that cleanly.

Also, best pattern for such switch statements is to not have a default. The way we do that is to put the switch into a function, use return, and then put the ASSERT_NOT_REACHED after the switch statement. This makes it so that if we add a new enumeration value, we get a compile time warning rather than just a runtime assertion.

&gt; Source/WebCore/html/canvas/CanvasRenderingContext2D.h:231
&gt; +    enum Direction {

Why not use &quot;enum class&quot; instead of enum? We are doing that in most new code, I believe.

&gt; Source/WebCore/html/canvas/CanvasRenderingContext2D.h:232
&gt; +        DirectionInherit = -1,

Seems unnecessary to give this a special value of -1. We should just let the enum values be the default ones starting with zero; no reason not to!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030673</commentid>
    <comment_count>8</comment_count>
      <attachid>236966</attachid>
    <who name="Vivek Galatage">vivekg</who>
    <bug_when>2014-08-21 22:30:37 -0700</bug_when>
    <thetext>Created attachment 236966
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030674</commentid>
    <comment_count>9</comment_count>
    <who name="Vivek Galatage">vivekg</who>
    <bug_when>2014-08-21 22:33:40 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 236926 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=236926&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp:2181
&gt; &gt; +    TextDirection direction;
&gt; &gt; +    switch (state().m_direction) {
&gt; &gt; +    case DirectionInherit:
&gt; &gt; +        direction = inheritedDirection(*canvas());
&gt; &gt; +        break;
&gt; &gt; +    case DirectionRTL:
&gt; &gt; +        direction = RTL;
&gt; &gt; +        break;
&gt; &gt; +    case DirectionLTR:
&gt; &gt; +        direction = LTR;
&gt; &gt; +        break;
&gt; &gt; +    default:
&gt; &gt; +        ASSERT_NOT_REACHED();
&gt; &gt; +        break;
&gt; &gt; +    }
&gt; 
&gt; Would be nicer to share this switch statement with drawTextInternal. But it might require too much rearranging to do that cleanly.
&gt; 

Done.

&gt; Also, best pattern for such switch statements is to not have a default. The way we do that is to put the switch into a function, use return, and then put the ASSERT_NOT_REACHED after the switch statement. This makes it so that if we add a new enumeration value, we get a compile time warning rather than just a runtime assertion.

Done.

&gt; 
&gt; &gt; Source/WebCore/html/canvas/CanvasRenderingContext2D.h:231
&gt; &gt; +    enum Direction {
&gt; 
&gt; Why not use &quot;enum class&quot; instead of enum? We are doing that in most new code, I believe.
&gt; 

Done.

&gt; &gt; Source/WebCore/html/canvas/CanvasRenderingContext2D.h:232
&gt; &gt; +        DirectionInherit = -1,
&gt; 
&gt; Seems unnecessary to give this a special value of -1. We should just let the enum values be the default ones starting with zero; no reason not to!

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030737</commentid>
    <comment_count>10</comment_count>
      <attachid>236966</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-08-22 09:06:26 -0700</bug_when>
    <thetext>Comment on attachment 236966
Patch

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

If this becomes a performance problem we might some day want to add code to cache the inherited direction. It’s not trivial invalidate such a cache correctly, but the extra cost of updating style and calling computedStyle every time we draw text might make canvas text drawing slow enough that such an optimization would be worth while.

&gt; Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp:2158
&gt; +TextDirection CanvasRenderingContext2D::toTextDirection(Direction direction, RenderStyle*&amp; computedStyle) const

The inline keyword needs to be here on the definition, rather than in the header file on the declaration.

&gt; Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp:2161
&gt; +    canvas()-&gt;document().updateStyleIfNeeded();
&gt; +    computedStyle = canvas()-&gt;computedStyle();

This work is wasteful when 1) the caller is not going to use computedStyle and 2) the direction is not Inherit. One way to fix that is to change the computedStyle out argument to make it optional; change it to a RenderStyle** with a default of nullptr. It would also complicate the logic a bit but it would make the direction getter significantly more efficient when the direction is set explicitly to LTR or RTL.

&gt; Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp:2176
&gt; +    RenderStyle* computedStyle = nullptr;

I don’t think you need to initialize this, since it’s an out parameter.

&gt; Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp:2295
&gt; +    RenderStyle* computedStyle = nullptr;

Ditto.

&gt; Source/WebCore/html/canvas/CanvasRenderingContext2D.h:234
&gt; +        Rtl,
&gt; +        Ltr

These should be all capitals. We capitalize acronyms.

&gt; Source/WebCore/html/canvas/CanvasRenderingContext2D.h:348
&gt; +    inline TextDirection toTextDirection(Direction, RenderStyle*&amp; computedStyle) const;

The inline keyword should be omitted here. If you do a little research you’ll find that information in C++ documentation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030741</commentid>
    <comment_count>11</comment_count>
      <attachid>236966</attachid>
    <who name="Vivek Galatage">vivekg</who>
    <bug_when>2014-08-22 09:45:27 -0700</bug_when>
    <thetext>Comment on attachment 236966
Patch

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

&gt;&gt; Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp:2158
&gt;&gt; +TextDirection CanvasRenderingContext2D::toTextDirection(Direction direction, RenderStyle*&amp; computedStyle) const
&gt; 
&gt; The inline keyword needs to be here on the definition, rather than in the header file on the declaration.

Will change it.

&gt;&gt; Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp:2161
&gt;&gt; +    computedStyle = canvas()-&gt;computedStyle();
&gt; 
&gt; This work is wasteful when 1) the caller is not going to use computedStyle and 2) the direction is not Inherit. One way to fix that is to change the computedStyle out argument to make it optional; change it to a RenderStyle** with a default of nullptr. It would also complicate the logic a bit but it would make the direction getter significantly more efficient when the direction is set explicitly to LTR or RTL.

Sure will change it. In fact had done it locally but was using the pointer reference for default argument. Should have used this logic of double pointer. Will change it accordingly. Thank you for all the effort you are taking during this review.

&gt;&gt; Source/WebCore/html/canvas/CanvasRenderingContext2D.h:234
&gt;&gt; +        Ltr
&gt; 
&gt; These should be all capitals. We capitalize acronyms.

The style checker did complain about all things being in capital, hence I ended up making it this way. Earlier, with just the enum, these were prefixed with Direction (DirectionInherit, DirectionRTL and DirectionLTR). With enum class being strict about using fully qualified name, I dropped the prefix. Is it OK to ignore style checker error for this case? Or do you suggest some other alternative.

&gt;&gt; Source/WebCore/html/canvas/CanvasRenderingContext2D.h:348
&gt;&gt; +    inline TextDirection toTextDirection(Direction, RenderStyle*&amp; computedStyle) const;
&gt; 
&gt; The inline keyword should be omitted here. If you do a little research you’ll find that information in C++ documentation.

Sure, will change it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030742</commentid>
    <comment_count>12</comment_count>
      <attachid>236966</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-08-22 09:56:38 -0700</bug_when>
    <thetext>Comment on attachment 236966
Patch

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

&gt;&gt;&gt; Source/WebCore/html/canvas/CanvasRenderingContext2D.h:234
&gt;&gt;&gt; +        Ltr
&gt;&gt; 
&gt;&gt; These should be all capitals. We capitalize acronyms.
&gt; 
&gt; The style checker did complain about all things being in capital, hence I ended up making it this way. Earlier, with just the enum, these were prefixed with Direction (DirectionInherit, DirectionRTL and DirectionLTR). With enum class being strict about using fully qualified name, I dropped the prefix. Is it OK to ignore style checker error for this case? Or do you suggest some other alternative.

The style checker is wrong. It’s OK to ignore the error and we should also get someone to fix the style checker.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1031127</commentid>
    <comment_count>13</comment_count>
    <who name="Vivek Galatage">vivekg</who>
    <bug_when>2014-08-25 06:05:07 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 236966 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=236966&amp;action=review
&gt; 
&gt; If this becomes a performance problem we might some day want to add code to cache the inherited direction. It’s not trivial invalidate such a cache correctly, but the extra cost of updating style and calling computedStyle every time we draw text might make canvas text drawing slow enough that such an optimization would be worth while.

Sure, shall we put a &quot;FIXME&quot; which summarizes above performance concern in the code? 

&gt; 
&gt; &gt; Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp:2161
&gt; &gt; +    canvas()-&gt;document().updateStyleIfNeeded();
&gt; &gt; +    computedStyle = canvas()-&gt;computedStyle();
&gt; 
&gt; This work is wasteful when 1) the caller is not going to use computedStyle and 2) the direction is not Inherit. 

I think current version of toTextDirection is trying to overdo things such as updateStyleIfNeeded. Its better if the call site makes the call to updateStyleIfNeeded() explicit and toTextDirection just takes care of the conversion. WDYT? 

For point 2, the computed Style is used in computing override (using isOverride function) which is irrespective of direction. So I think we still need to get the computedStyle for this to be correct. Is this understanding correct? 

Uploaded a new patch reflecting the same, PTAL. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1031131</commentid>
    <comment_count>14</comment_count>
      <attachid>237081</attachid>
    <who name="Vivek Galatage">vivekg</who>
    <bug_when>2014-08-25 06:07:35 -0700</bug_when>
    <thetext>Created attachment 237081
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1031133</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-08-25 06:10:36 -0700</bug_when>
    <thetext>Attachment 237081 did not pass style-queue:


ERROR: Source/WebCore/html/canvas/CanvasRenderingContext2D.h:233:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/html/canvas/CanvasRenderingContext2D.h:234:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Total errors found: 2 in 6 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>1031160</commentid>
    <comment_count>16</comment_count>
      <attachid>237081</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-08-25 09:46:13 -0700</bug_when>
    <thetext>Comment on attachment 237081
Patch

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

&gt; Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp:2170
&gt; +    RenderStyle* style = canvas()-&gt;computedStyle();
&gt; +    if (computedStyle)
&gt; +        *computedStyle = style;
&gt; +    switch (direction) {
&gt; +    case Direction::Inherit:
&gt; +        return style ? style-&gt;direction() : LTR;
&gt; +    case Direction::RTL:
&gt; +        return RTL;
&gt; +    case Direction::LTR:
&gt; +        return LTR;
&gt; +    }

If computedStyle is null and direction is not Inherit, we’d prefer not to call canvas() or computedStyle() at all. Reorganizing so this is done would be slightly ugly, but I think we should do it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1031196</commentid>
    <comment_count>17</comment_count>
      <attachid>236966</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-08-25 11:57:05 -0700</bug_when>
    <thetext>Comment on attachment 236966
Patch

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

&gt;&gt;&gt;&gt; Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp:2161
&gt;&gt;&gt;&gt; +    computedStyle = canvas()-&gt;computedStyle();
&gt;&gt;&gt; 
&gt;&gt;&gt; This work is wasteful when 1) the caller is not going to use computedStyle and 2) the direction is not Inherit. One way to fix that is to change the computedStyle out argument to make it optional; change it to a RenderStyle** with a default of nullptr. It would also complicate the logic a bit but it would make the direction getter significantly more efficient when the direction is set explicitly to LTR or RTL.
&gt;&gt; 
&gt;&gt; Sure will change it. In fact had done it locally but was using the pointer reference for default argument. Should have used this logic of double pointer. Will change it accordingly. Thank you for all the effort you are taking during this review.
&gt; 
&gt; I think current version of toTextDirection is trying to overdo things such as updateStyleIfNeeded. Its better if the call site makes the call to updateStyleIfNeeded() explicit and toTextDirection just takes care of the conversion. WDYT? 
&gt; 
&gt; For point 2, the computed Style is used in computing override (using isOverride function) which is irrespective of direction. So I think we still need to get the computedStyle for this to be correct. Is this understanding correct? 
&gt; 
&gt; Uploaded a new patch reflecting the same, PTAL. Thanks!

I don’t see how the call site could decide about updateStyleIfNeeded. In at least one case, it needs to know if the direction is Inherit.

It’s true that in CanvasRenderingContext2D::drawTextInternal updateStyleIfNeeded will have been called, and the RenderStyle is needed.

It’s CanvasRenderingContext2D::direction that needs the lighter weight version and would want to do updateStyleIfNeeded and get the RenderStyle only for the Inherit case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1031197</commentid>
    <comment_count>18</comment_count>
      <attachid>237081</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-08-25 11:57:32 -0700</bug_when>
    <thetext>Comment on attachment 237081
Patch

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

&gt; Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp:2177
&gt; +    canvas()-&gt;document().updateStyleIfNeeded();

This is only needed when direction is Inherit. It’s wasteful to always do it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1031354</commentid>
    <comment_count>19</comment_count>
      <attachid>237145</attachid>
    <who name="Vivek Galatage">vivekg</who>
    <bug_when>2014-08-26 03:26:10 -0700</bug_when>
    <thetext>Created attachment 237145
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1031355</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-08-26 03:27:47 -0700</bug_when>
    <thetext>Attachment 237145 did not pass style-queue:


ERROR: Source/WebCore/html/canvas/CanvasRenderingContext2D.h:233:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/html/canvas/CanvasRenderingContext2D.h:234:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Total errors found: 2 in 6 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>1031555</commentid>
    <comment_count>21</comment_count>
      <attachid>237145</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-08-26 20:17:13 -0700</bug_when>
    <thetext>Comment on attachment 237145
Patch

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

OK, lets land this one.

&gt; LayoutTests/fast/canvas/canvas-direction.html:220
&gt; +                                  [{ text: &apos;Left-to-Right text&apos;, direction: &apos;ltr&apos; },
&gt; +                                   { text: &apos;Right-to-Left text&apos;, direction: &apos;rtl&apos; },
&gt; +                                   { text: &apos;Right-to-Left text&apos;, direction: &apos;rtl&apos; },
&gt; +                                   { text: &apos;Left-to-Right text&apos;, direction: &apos;ltr&apos; },
&gt; +                                   { text: &apos;Right-to-Left text&apos;, direction: &apos;rtl&apos; },
&gt; +                                   { text: &apos;Right-to-Left text&apos;, direction: &apos;rtl&apos; }]);

We don’t do this kind of indenting in the WebKit. We never want to have to reindent if we rename something.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1031571</commentid>
    <comment_count>22</comment_count>
      <attachid>237145</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-08-26 20:53:11 -0700</bug_when>
    <thetext>Comment on attachment 237145
Patch

Clearing flags on attachment: 237145

Committed r172995: &lt;http://trac.webkit.org/changeset/172995&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1031572</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-08-26 20:53:16 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236862</attachid>
            <date>2014-08-20 00:55:49 -0700</date>
            <delta_ts>2014-08-21 03:03:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136098-20140820132539.patch</filename>
            <type>text/plain</type>
            <size>8604</size>
            <attacher name="Vivek Galatage">vivekg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcyNzk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTAzY2M2OWU1MWMzNGE4
OWIwZmQ5Njg2MDYyMTdkYWE4MGE2NDljMS4uOTEwNjk2MTUzMzRkNzhmZjI2NTk3MWJiMzg1ZjYx
MmM1MjU3YThhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE0LTA4LTIwICBWaXZl
ayBHYWxhdGFnZSAgPHZpdmVrLnZnQHNhbXN1bmcuY29tPgorCisgICAgICAgIENhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRCBkaXJlY3Rpb24gc2hvdWxkIHJlZmxlY3QgY2hhbmdlIGluIEVsZW1lbnQn
cyBkaXIgYXR0cmlidXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMzYwOTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBbnkgY2hhbmdlIGluIGVsZW1lbnQncyBkaXIgYXR0cmlidXRlIHNob3VsZCBiZSBw
cm9wYWdlZCB3aXRoaW4gdGhlIGNvbnRleHQuZGlyZWN0aW9uCisgICAgICAgIHdoZW4gdGhlIGRp
cmVjdGlvbiBpcyBzZXQgdG8gJ2luaGVyaXQnIHZhbHVlLgorCisgICAgICAgIFVwZGF0ZWQgZXhp
c3RpbmcgdGVzdCBjYXNlIGluIGNhbnZhcy1kaXJlY3Rpb24uaHRtbCB0byByZWZsZWN0IHRoaXMg
Y2hhbmdlLgorCisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Q2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEKToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRDo6ZGlyZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRDo6c2V0RGlyZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRDo6ZHJhd1RleHRJbnRlcm5hbCk6CisgICAgICAgICogaHRtbC9jYW52YXMvQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJELmg6CisKIDIwMTQtMDgtMTkgIFByYXRpayBTb2xhbmtpICA8
cHNvbGFua2lAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBQdXJnZWFibGVCdWZmZXIgc2lu
Y2UgaXQgaXMgbm90IHZlcnkgdXNlZnVsIGFueSBtb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAppbmRleCAzZmMz
NGVkNmM5MGY1ZWQ3ZjFmYWNiMDE0MjNlYWI4NjAxZDA2NTU4Li5lOGM1ZWI0ODJiYTg4OWM1ZDQ2
YTdkNzVmOTc3YzM4ODkxOGQ2ZjVjIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKQEAgLTExOSw2ICsxMTksNyBA
QCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRChIVE1M
Q2FudmFzRWxlbWVudCogY2FudmFzLCBibwogI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkK
ICAgICAsIG1fdXNlc0Rhc2hib2FyZENvbXBhdGliaWxpdHlNb2RlKHVzZXNEYXNoYm9hcmRDb21w
YXRpYmlsaXR5TW9kZSkKICNlbmRpZgorICAgICwgbV9oYXNJbmhlcml0ZWREaXJlY3Rpb24odHJ1
ZSkKIHsKICAgICBtX3N0YXRlU3RhY2suZmlyc3QoKS5tX2RpcmVjdGlvbiA9IGluaGVyaXRlZERp
cmVjdGlvbigqY2FudmFzKTsKICNpZiAhRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQpAQCAtMjE2
NSwxOSArMjE2NiwyMyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6c2V0VGV4dEJh
c2VsaW5lKGNvbnN0IFN0cmluZyYgcykKIAogU3RyaW5nIENhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RDo6ZGlyZWN0aW9uKCkgY29uc3QKIHsKLSAgICByZXR1cm4gc3RhdGUoKS5tX2RpcmVjdGlvbiA9
PSBSVEwgPyBBU0NJSUxpdGVyYWwoInJ0bCIpIDogQVNDSUlMaXRlcmFsKCJsdHIiKTsKKyAgICBU
ZXh0RGlyZWN0aW9uIGRpcmVjdGlvbiA9IG1faGFzSW5oZXJpdGVkRGlyZWN0aW9uID8gaW5oZXJp
dGVkRGlyZWN0aW9uKCpjYW52YXMoKSkgOiBzdGF0ZSgpLm1fZGlyZWN0aW9uOworICAgIHJldHVy
biBkaXJlY3Rpb24gPT0gUlRMID8gQVNDSUlMaXRlcmFsKCJydGwiKSA6IEFTQ0lJTGl0ZXJhbCgi
bHRyIik7CiB9CiAKIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpzZXREaXJlY3Rpb24o
Y29uc3QgU3RyaW5nJiBkaXJlY3Rpb25TdHJpbmcpCiB7CiAgICAgVGV4dERpcmVjdGlvbiBkaXJl
Y3Rpb247Ci0gICAgaWYgKGRpcmVjdGlvblN0cmluZyA9PSAiaW5oZXJpdCIpCisgICAgaWYgKGRp
cmVjdGlvblN0cmluZyA9PSAiaW5oZXJpdCIpIHsKICAgICAgICAgZGlyZWN0aW9uID0gaW5oZXJp
dGVkRGlyZWN0aW9uKCpjYW52YXMoKSk7Ci0gICAgZWxzZSBpZiAoZGlyZWN0aW9uU3RyaW5nID09
ICJydGwiKQorICAgICAgICBtX2hhc0luaGVyaXRlZERpcmVjdGlvbiA9IHRydWU7CisgICAgfSBl
bHNlIGlmIChkaXJlY3Rpb25TdHJpbmcgPT0gInJ0bCIpIHsKICAgICAgICAgZGlyZWN0aW9uID0g
UlRMOwotICAgIGVsc2UgaWYgKGRpcmVjdGlvblN0cmluZyA9PSAibHRyIikKKyAgICAgICAgbV9o
YXNJbmhlcml0ZWREaXJlY3Rpb24gPSBmYWxzZTsKKyAgICB9IGVsc2UgaWYgKGRpcmVjdGlvblN0
cmluZyA9PSAibHRyIikgewogICAgICAgICBkaXJlY3Rpb24gPSBMVFI7Ci0gICAgZWxzZQorICAg
ICAgICBtX2hhc0luaGVyaXRlZERpcmVjdGlvbiA9IGZhbHNlOworICAgIH0gZWxzZQogICAgICAg
ICByZXR1cm47CiAKICAgICBpZiAoc3RhdGUoKS5tX2RpcmVjdGlvbiA9PSBkaXJlY3Rpb24pCkBA
IC0yMjgzLDcgKzIyODgsMTEgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmRyYXdU
ZXh0SW50ZXJuYWwoY29uc3QgU3RyaW5nJiB0ZXh0LCBmbG9hdCB4LCBmbG8KIAogICAgIC8vIEZJ
WE1FOiBOZWVkIHRvIHR1cm4gb2ZmIGZvbnQgc21vb3RoaW5nLgogCisgICAgaWYgKG1faGFzSW5o
ZXJpdGVkRGlyZWN0aW9uKQorICAgICAgICBjYW52YXMoKS0+ZG9jdW1lbnQoKS51cGRhdGVTdHls
ZUlmTmVlZGVkKCk7CiAgICAgUmVuZGVyU3R5bGUqIGNvbXB1dGVkU3R5bGUgPSBjYW52YXMoKS0+
Y29tcHV0ZWRTdHlsZSgpOworICAgIGlmIChtX2hhc0luaGVyaXRlZERpcmVjdGlvbiAmJiBjb21w
dXRlZFN0eWxlKQorICAgICAgICBtb2RpZmlhYmxlU3RhdGUoKS5tX2RpcmVjdGlvbiA9IGNvbXB1
dGVkU3R5bGUtPmRpcmVjdGlvbigpOwogICAgIGJvb2wgaXNSVEwgPSBzdGF0ZSgpLm1fZGlyZWN0
aW9uID09IFJUTDsKICAgICBib29sIG92ZXJyaWRlID0gY29tcHV0ZWRTdHlsZSA/IGlzT3ZlcnJp
ZGUoY29tcHV0ZWRTdHlsZS0+dW5pY29kZUJpZGkoKSkgOiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaAppbmRl
eCBhZGI5NmU3N2JmOGFlZTExOTdkZjZlNTkxNmM1MmJjNTI5NTA5YTBhLi5iZjBlZjM5OWY3MTRl
MzUzYTg5MGY3NWU2ZjM2NGQyYjIxMmJkMTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaApAQCAtMzUwLDYgKzM1MCw3
IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQogICAgIGJvb2wgbV91
c2VzRGFzaGJvYXJkQ29tcGF0aWJpbGl0eU1vZGU7CiAjZW5kaWYKKyAgICBib29sIG1faGFzSW5o
ZXJpdGVkRGlyZWN0aW9uOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGQy
NWU5NzJkZWJjYjNmMjkyZDY5N2MzOWJlNDlkMjdiZjhlYTEwNjguLjU5NDk4YTA5ZGZmMjJiM2Ix
M2QxZTUwN2E1MjljNWJiYjI5OGExYTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNC0wOC0y
MCAgVml2ZWsgR2FsYXRhZ2UgIDx2aXZlay52Z0BzYW1zdW5nLmNvbT4KKworICAgICAgICBDYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQgZGlyZWN0aW9uIHNob3VsZCByZWZsZWN0IGNoYW5nZSBpbiBF
bGVtZW50J3MgZGlyIGF0dHJpYnV0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTM2MDk4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBmYXN0L2NhbnZhcy9jYW52YXMtZGlyZWN0aW9uLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBmYXN0L2NhbnZhcy9jYW52YXMtZGlyZWN0aW9uLmh0bWw6CisKIDIwMTQt
MDgtMTkgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNT
SU9OKHIxNzI0MDEpOiBmb3ItaW4gb3B0aW1pemF0aW9uIG5vIGxvbmdlciB3b3JrcyBhdCBhbGwK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1kaXJlY3Rpb24tZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWRpcmVjdGlvbi1leHBl
Y3RlZC50eHQKaW5kZXggMGMxNDEyZGIwNzMyNGU2ZDIwZmY0NTMyM2Q0ZjNlYzU4OThjNzY4NS4u
ZDA1ZDc3OWMzYTFiZWZmMjhjMTMxNjY3MWQwYTcwMjllMzI4MmE0MyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWRpcmVjdGlvbi1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWRpcmVjdGlvbi1leHBlY3RlZC50eHQKQEAg
LTUsNiArNSw4IEBAIFRlc3RzIHRoYXQgY29udGV4dC5kaXJlY3Rpb24gaXMgb3ZlcnJpZGRlbiBi
eSAncnRsJyB3aXRoIHBhcmVudCBlbGVtZW50IGhhdmluZyB1CiBUZXN0cyB0aGF0IGNvbnRleHQu
ZGlyZWN0aW9uIGlzIG92ZXJyaWRkZW4gYnkgJ2x0cicgd2l0aCBwYXJlbnQgZWxlbWVudCBoYXZp
bmcgZGlyZWN0aW9uIGFzIHJ0bDogUEFTUwogVGVzdHMgdGhhdCBjb250ZXh0LmRpcmVjdGlvbiBp
cyBvdmVycmlkZGVuIGJ5ICdpbmhlcml0JyB3aXRoIHBhcmVudCBlbGVtZW50IGhhdmluZyB1bnNw
ZWNpZmllZCBkaXJlY3Rpb246IFBBU1MKIFRlc3RzIHRoYXQgY29udGV4dC5kaXJlY3Rpb24gaXMg
b3ZlcnJpZGRlbiBieSAnaW5oZXJpdCcgd2l0aCBwYXJlbnQgZWxlbWVudCBoYXZpbmcgZGlyZWN0
aW9uIGFzIHJ0bDogUEFTUworVGVzdHMgdGhhdCBjaGFuZ2UgaW4gZWxlbWVudCdzIGRpciBhdHRy
aWJ1dGUgaXMgcmVmbGVjdGVkIGluIGNvbnRleHQuZGlyZWN0aW9uIGFzIHJ0bDogUEFTUworVGVz
dHMgdGhhdCBjaGFuZ2UgaW4gZWxlbWVudCdzIGRpciBhdHRyaWJ1dGUgaXMgcmVmbGVjdGVkIGlu
IGNvbnRleHQuZGlyZWN0aW9uIGFzIGx0cjogUEFTUwogVGVzdHMgdGhhdCBjb250ZXh0LnJlc2V0
KCkgc2V0cyB0aGUgY29udGV4dC5kaXJlY3Rpb24gdG8gbHRyOiBQQVNTCiBUZXN0cyB0aGF0IGNv
bnRleHQucmVzZXQoKSBzZXRzIHRoZSBjb250ZXh0LmRpcmVjdGlvbiB0byBydGw6IFBBU1MKIFRl
c3RzIHRoYXQgaW52YWxpZCBkaXJlY3Rpb24gdmFsdWUgUlRMIGhhcyBubyBlZmZlY3Qgb24gdGhl
IGNvbnRleHQuZGlyZWN0aW9uOiBQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nh
bnZhcy9jYW52YXMtZGlyZWN0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52
YXMtZGlyZWN0aW9uLmh0bWwKaW5kZXggYjdlNDk3NDU4NWMyN2FhNzliOGE0ZmFkZWY5NTA3MzU0
ODQ2OTQxOC4uMDdiNDkyMjQyZTdmN2ZiOTBhMWY4MTk2Yzg3OGRlNzJjNzA2ODBhOSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWRpcmVjdGlvbi5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1kaXJlY3Rpb24uaHRtbApAQCAtNDYsNiAr
NDYsMTQgQEAKIDxzcGFuPlRlc3RzIHRoYXQgY29udGV4dC5yZXNldCBzZXRzIHRoZSBkaXJlY3Rp
b24gYXMgcnRsPHNwYW4gaWQ9InJlc3VsdDgiPjwvc3Bhbj48L3NwYW4+PGJyPgogPGNhbnZhcyBp
ZD0iY2FudmFzOCIgd2lkdGg9NDAwIGhlaWdodD0yMCBzdHlsZT0iYm9yZGVyOjFweCBzb2xpZCBi
bGFjayI+PC9jYW52YXM+CiA8L2Rpdj4KKzxkaXY+Cis8c3Bhbj5UZXN0cyB0aGF0IGNoYW5nZSBp
biBlbGVtZW50J3MgZGlyIGF0dHJpYnV0ZSBpcyByZWZsZWN0ZWQgaW4gY29udGV4dC5kaXJlY3Rp
b24gYXMgcnRsOiA8c3BhbiBpZD0icmVzdWx0OSI+PC9zcGFuPjwvc3Bhbj48YnI+Cis8Y2FudmFz
IGlkPSJjYW52YXM5IiB3aWR0aD00MDAgaGVpZ2h0PTIwIHN0eWxlPSJib3JkZXI6MXB4IHNvbGlk
IGJsYWNrIj48L2NhbnZhcz4KKzwvZGl2PgorPGRpdiBkaXI9InJ0bCI+Cis8c3Bhbj5UZXN0cyB0
aGF0IGNoYW5nZSBpbiBlbGVtZW50J3MgZGlyIGF0dHJpYnV0ZSBpcyByZWZsZWN0ZWQgaW4gY29u
dGV4dC5kaXJlY3Rpb24gYXMgbHRyOiA8c3BhbiBpZD0icmVzdWx0MTAiPjwvc3Bhbj48L3NwYW4+
PGJyPgorPGNhbnZhcyBpZD0iY2FudmFzMTAiIHdpZHRoPTQwMCBoZWlnaHQ9MjAgc3R5bGU9ImJv
cmRlcjoxcHggc29saWQgYmxhY2siPjwvY2FudmFzPgorPC9kaXY+CiA8ZGl2IGlkPSJyZXN1bHRz
Ij4KIDwvZGl2PgogPHNjcmlwdD4KQEAgLTEyMyw2ICsxMzEsMjcgQEAgZnVuY3Rpb24gdmVyaWZ5
RGlyZWN0aW9uQWZ0ZXJSZXNldChjYW52YXNJZCwgdGV4dCwgZGlyZWN0aW9uLCBleHBlY3RlZERp
cmVjdGlvbikKICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGNhbnZhc0VsZW1lbnQucGFy
ZW50RWxlbWVudCk7CiB9CiAKK2Z1bmN0aW9uIHZlcmlmeURpcmVjdGlvbkFmdGVyQXR0cmlidXRl
Q2hhbmdlKGNhbnZhc0lkLCByZXN1bHRJZCwgdGV4dCwgbmV3RGlyZWN0aW9uLCBmb3JQYXJlbnRF
bGVtZW50KQoreworICAgIHZhciBjYW52YXNFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoY2FudmFzSWQpOworICAgIHZhciByZXN1bHRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQocmVzdWx0SWQpOworICAgIHZhciBjdHggPSBjYW52YXNFbGVtZW50LmdldENvbnRleHQo
JzJkJyk7CisgICAgdmFyIHdpZHRoID0gY2FudmFzRWxlbWVudC53aWR0aC8yOworICAgIHZhciBo
ZWlnaHQgPSBjYW52YXNFbGVtZW50LmhlaWdodDsKKworICAgIGlmIChmb3JQYXJlbnRFbGVtZW50
KQorICAgICAgICBjYW52YXNFbGVtZW50LnBhcmVudEVsZW1lbnQuZGlyID0gbmV3RGlyZWN0aW9u
OworICAgIGVsc2UKKyAgICAgICAgY2FudmFzRWxlbWVudC5kaXIgPSBuZXdEaXJlY3Rpb247Cisg
ICAgcmVzdWx0RWxlbWVudC50ZXh0Q29udGVudCA9IGN0eC5kaXJlY3Rpb24gPT0gbmV3RGlyZWN0
aW9uID8gJ1BBU1MnIDogJ0ZBSUwnOworICAgIHJlc3VsdEVsZW1lbnQuY2xhc3NOYW1lID0gY3R4
LmRpcmVjdGlvbiA9PSBuZXdEaXJlY3Rpb24gPyAncGFzcycgOiAnZmFpbCc7CisgICAgY3R4Lm1v
dmVUbyh3aWR0aCwgMCk7CisgICAgY3R4LmxpbmVUbyh3aWR0aCwgaGVpZ2h0KTsKKyAgICBjdHgu
c3Ryb2tlKCk7CisgICAgY3R4LmZvbnQgPSBmb250U2V0dGluZ3M7CisgICAgY3R4LmZpbGxUZXh0
KHRleHQsIHdpZHRoLCBoZWlnaHQvMik7Cit9CisKIGZ1bmN0aW9uIHZlcmlmeUludmFsaWREaXJl
Y3Rpb24oZGlyZWN0aW9uKQogewogICAgIHZhciBjdHggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdjYW52YXMnKS5nZXRDb250ZXh0KCcyZCcpOwpAQCAtMTQ0LDYgKzE3Myw5IEBAIHZlcmlmeURy
YXdUZXh0V2l0aFNwZWNpZmllZERpcmVjdGlvbignY2FudmFzNicsICdyZXN1bHQ2JywgJ1JpZ2h0
LXRvLUxlZnQgdGV4dCcsCiB2ZXJpZnlEaXJlY3Rpb25BZnRlclJlc2V0KCdjYW52YXM3JywgJ1Jp
Z2h0LXRvLUxlZnQnLCAncnRsJywgJ2x0cicpOwogdmVyaWZ5RGlyZWN0aW9uQWZ0ZXJSZXNldCgn
Y2FudmFzOCcsICdSaWdodC10by1MZWZ0JywgJ2x0cicsICdydGwnKTsKIAordmVyaWZ5RGlyZWN0
aW9uQWZ0ZXJBdHRyaWJ1dGVDaGFuZ2UoJ2NhbnZhczknLCAncmVzdWx0OScsICdSaWdodC10by1M
ZWZ0IHRleHQnLCAncnRsJywgdHJ1ZSk7Cit2ZXJpZnlEaXJlY3Rpb25BZnRlckF0dHJpYnV0ZUNo
YW5nZSgnY2FudmFzMTAnLCAncmVzdWx0MTAnLCAnTGVmdC10by1SaWdodCB0ZXh0JywgJ2x0cics
IGZhbHNlKTsKKwogdmVyaWZ5SW52YWxpZERpcmVjdGlvbignUlRMJyk7CiB2ZXJpZnlJbnZhbGlk
RGlyZWN0aW9uKCdMVFInKTsKIHZlcmlmeUludmFsaWREaXJlY3Rpb24oJ0lOSEVSSVQnKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236920</attachid>
            <date>2014-08-21 03:03:53 -0700</date>
            <delta_ts>2014-08-21 03:15:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136098-20140821153343.patch</filename>
            <type>text/plain</type>
            <size>13112</size>
            <attacher name="Vivek Galatage">vivekg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcyODI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjc4Y2QxMzQzZGI1ZTAy
ZjZiMTBlYWVmMWYwYTJkNTZhNTA4ODQ4OS4uZDlkNzQyMDk5OTI4ZWI4Y2RkZjlhZWNkNzE3MDQ2
MDI3ZGYyMjJjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE0LTA4LTIxICBWaXZl
ayBHYWxhdGFnZSAgPHZpdmVrLnZnQHNhbXN1bmcuY29tPgorCisgICAgICAgIENhbnZhcyBkaXJl
Y3Rpb24gc2hvdWxkIHJlZmxlY3QgY2hhbmdlIGluIGRpciBhdHRyaWJ1dGUgYW5kIGFsc28gYWNy
b3NzIHNhdmUvcmVzdG9yZSBvcGVyYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMzYwOTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBDaGFuZ2VkIFN0YXRlLm1fZGlyZWN0aW9uIHR5cGUgZnJvbSBU
ZXh0RGlyZWN0aW9uIHRvIERpcmVjdGlvbiBlbnVtIHRvIGFjY29tb2RhdGUgRGlyZWN0aW9uSW5o
ZXJpdAorICAgICAgICBhcyBhIHNlcGFyYXRlIHZhbHVlLiBNb2RpZmllZCB0aGUgZ2V0dGVyIHRv
IGNvbXB1dGUgdGhlICdsaXZlJyB2YWx1ZSBmb3IgdGhlIGRpcmVjdGlvbiBhdHRyaWJ1dGUKKwor
ICAgICAgICBVcGRhdGVkIGV4aXN0aW5nIGNhbnZhcy1kaXJlY3Rpb24uaHRtbCB3aXRoIGFkZGl0
aW9uYWwgY2FzZXMgdG8gcmVmbGVjdCB0aGlzIGNoYW5nZS4KKworICAgICAgICAqIGh0bWwvY2Fu
dmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQ6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCk6CisgICAgICAg
IChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnJlc2V0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6U3RhdGU6OlN0YXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZGlyZWN0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6c2V0RGlyZWN0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZHJhd1RleHRJbnRlcm5hbCk6
CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmg6CisKIDIw
MTQtMDgtMjAgIEJlbmphbWluIFBvdWxhaW4gIDxiZW5qYW1pbkB3ZWJraXQub3JnPgogCiAgICAg
ICAgIENTUzogSW1wbGVtZW50IHRoZSA6cGxhY2Vob2xkZXItc2hvd24gcHNldWRvLWNsYXNzIGZy
b20gU2VsZWN0b3JzIExldmVsIDQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCmluZGV4IDNmYzM0ZWQ2YzkwZjVlZDdm
MWZhY2IwMTQyM2VhYjg2MDFkMDY1NTguLjY1MzYwNGY4MWFkYjFmOGI3YzQ5NWQwM2RmZGQ2MDE5
ZTU1MDc3MTcgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcApAQCAtMTIwLDcgKzEyMCw2IEBAIENhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRDo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKEhUTUxDYW52YXNFbGVtZW50
KiBjYW52YXMsIGJvCiAgICAgLCBtX3VzZXNEYXNoYm9hcmRDb21wYXRpYmlsaXR5TW9kZSh1c2Vz
RGFzaGJvYXJkQ29tcGF0aWJpbGl0eU1vZGUpCiAjZW5kaWYKIHsKLSAgICBtX3N0YXRlU3RhY2su
Zmlyc3QoKS5tX2RpcmVjdGlvbiA9IGluaGVyaXRlZERpcmVjdGlvbigqY2FudmFzKTsKICNpZiAh
RU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQogICAgIEFTU0VSVF9VTlVTRUQodXNlc0Rhc2hib2Fy
ZENvbXBhdGliaWxpdHlNb2RlLCAhdXNlc0Rhc2hib2FyZENvbXBhdGliaWxpdHlNb2RlKTsKICNl
bmRpZgpAQCAtMTYyLDEyICsxNjEsMTIgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6
OnJlc2V0KCkKIHsKICAgICB1bndpbmRTdGF0ZVN0YWNrKCk7CiAgICAgbV9zdGF0ZVN0YWNrLnJl
c2l6ZSgxKTsKLSAgICBtX3N0YXRlU3RhY2suZmlyc3QoKSA9IFN0YXRlKGluaGVyaXRlZERpcmVj
dGlvbigqY2FudmFzKCkpKTsKKyAgICBtX3N0YXRlU3RhY2suZmlyc3QoKSA9IFN0YXRlKCk7CiAg
ICAgbV9wYXRoLmNsZWFyKCk7CiAgICAgbV91bnJlYWxpemVkU2F2ZUNvdW50ID0gMDsKIH0KIAot
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpTdGF0ZTo6U3RhdGUoVGV4dERpcmVjdGlvbiBkaXJl
Y3Rpb24pCitDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OlN0YXRlOjpTdGF0ZShEaXJlY3Rpb24g
ZGlyZWN0aW9uKQogICAgIDogbV9zdHJva2VTdHlsZShDb2xvcjo6YmxhY2spCiAgICAgLCBtX2Zp
bGxTdHlsZShDb2xvcjo6YmxhY2spCiAgICAgLCBtX2xpbmVXaWR0aCgxKQpAQCAtMjE2NSwxOCAr
MjE2NCwzMyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6c2V0VGV4dEJhc2VsaW5l
KGNvbnN0IFN0cmluZyYgcykKIAogU3RyaW5nIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZGly
ZWN0aW9uKCkgY29uc3QKIHsKLSAgICByZXR1cm4gc3RhdGUoKS5tX2RpcmVjdGlvbiA9PSBSVEwg
PyBBU0NJSUxpdGVyYWwoInJ0bCIpIDogQVNDSUlMaXRlcmFsKCJsdHIiKTsKKyAgICBUZXh0RGly
ZWN0aW9uIGRpcmVjdGlvbjsKKyAgICBzd2l0Y2ggKHN0YXRlKCkubV9kaXJlY3Rpb24pIHsKKyAg
ICBjYXNlIERpcmVjdGlvbkluaGVyaXQ6CisgICAgICAgIGRpcmVjdGlvbiA9IGluaGVyaXRlZERp
cmVjdGlvbigqY2FudmFzKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERpcmVjdGlvblJU
TDoKKyAgICAgICAgZGlyZWN0aW9uID0gUlRMOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERp
cmVjdGlvbkxUUjoKKyAgICAgICAgZGlyZWN0aW9uID0gTFRSOworICAgICAgICBicmVhazsKKyAg
ICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgYnJlYWs7
CisgICAgfQorICAgIHJldHVybiBkaXJlY3Rpb24gPT0gUlRMID8gQVNDSUlMaXRlcmFsKCJydGwi
KSA6IEFTQ0lJTGl0ZXJhbCgibHRyIik7CiB9CiAKIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEOjpzZXREaXJlY3Rpb24oY29uc3QgU3RyaW5nJiBkaXJlY3Rpb25TdHJpbmcpCiB7Ci0gICAg
VGV4dERpcmVjdGlvbiBkaXJlY3Rpb247CisgICAgRGlyZWN0aW9uIGRpcmVjdGlvbjsKICAgICBp
ZiAoZGlyZWN0aW9uU3RyaW5nID09ICJpbmhlcml0IikKLSAgICAgICAgZGlyZWN0aW9uID0gaW5o
ZXJpdGVkRGlyZWN0aW9uKCpjYW52YXMoKSk7CisgICAgICAgIGRpcmVjdGlvbiA9IERpcmVjdGlv
bkluaGVyaXQ7CiAgICAgZWxzZSBpZiAoZGlyZWN0aW9uU3RyaW5nID09ICJydGwiKQotICAgICAg
ICBkaXJlY3Rpb24gPSBSVEw7CisgICAgICAgIGRpcmVjdGlvbiA9IERpcmVjdGlvblJUTDsKICAg
ICBlbHNlIGlmIChkaXJlY3Rpb25TdHJpbmcgPT0gImx0ciIpCi0gICAgICAgIGRpcmVjdGlvbiA9
IExUUjsKKyAgICAgICAgZGlyZWN0aW9uID0gRGlyZWN0aW9uTFRSOwogICAgIGVsc2UKICAgICAg
ICAgcmV0dXJuOwogCkBAIC0yMjg0LDEwICsyMjk4LDI2IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEOjpkcmF3VGV4dEludGVybmFsKGNvbnN0IFN0cmluZyYgdGV4dCwgZmxvYXQgeCwg
ZmxvCiAgICAgLy8gRklYTUU6IE5lZWQgdG8gdHVybiBvZmYgZm9udCBzbW9vdGhpbmcuCiAKICAg
ICBSZW5kZXJTdHlsZSogY29tcHV0ZWRTdHlsZSA9IGNhbnZhcygpLT5jb21wdXRlZFN0eWxlKCk7
Ci0gICAgYm9vbCBpc1JUTCA9IHN0YXRlKCkubV9kaXJlY3Rpb24gPT0gUlRMOworICAgIFRleHRE
aXJlY3Rpb24gZGlyZWN0aW9uOworICAgIHN3aXRjaCAoc3RhdGUoKS5tX2RpcmVjdGlvbikgewor
ICAgIGNhc2UgRGlyZWN0aW9uSW5oZXJpdDoKKyAgICAgICAgY2FudmFzKCktPmRvY3VtZW50KCku
dXBkYXRlU3R5bGVJZk5lZWRlZCgpOworICAgICAgICBkaXJlY3Rpb24gPSBjb21wdXRlZFN0eWxl
ID8gY29tcHV0ZWRTdHlsZS0+ZGlyZWN0aW9uKCkgOiBMVFI7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgRGlyZWN0aW9uUlRMOgorICAgICAgICBkaXJlY3Rpb24gPSBSVEw7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgRGlyZWN0aW9uTFRSOgorICAgICAgICBkaXJlY3Rpb24gPSBMVFI7Cisg
ICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgICAgICBicmVhazsKKyAgICB9CisgICAgYm9vbCBpc1JUTCA9IGRpcmVjdGlvbiA9PSBS
VEw7CiAgICAgYm9vbCBvdmVycmlkZSA9IGNvbXB1dGVkU3R5bGUgPyBpc092ZXJyaWRlKGNvbXB1
dGVkU3R5bGUtPnVuaWNvZGVCaWRpKCkpIDogZmFsc2U7CiAKLSAgICBUZXh0UnVuIHRleHRSdW4o
bm9ybWFsaXplZFRleHQsIDAsIDAsIFRleHRSdW46OkFsbG93VHJhaWxpbmdFeHBhbnNpb24sIHN0
YXRlKCkubV9kaXJlY3Rpb24sIG92ZXJyaWRlLCB0cnVlLCBUZXh0UnVuOjpOb1JvdW5kaW5nKTsK
KyAgICBUZXh0UnVuIHRleHRSdW4obm9ybWFsaXplZFRleHQsIDAsIDAsIFRleHRSdW46OkFsbG93
VHJhaWxpbmdFeHBhbnNpb24sIGRpcmVjdGlvbiwgb3ZlcnJpZGUsIHRydWUsIFRleHRSdW46Ok5v
Um91bmRpbmcpOwogICAgIC8vIERyYXcgdGhlIGl0ZW0gdGV4dCBhdCB0aGUgY29ycmVjdCBwb2lu
dC4KICAgICBGbG9hdFBvaW50IGxvY2F0aW9uKHgsIHkpOwogICAgIHN3aXRjaCAoc3RhdGUoKS5t
X3RleHRCYXNlbGluZSkgewpAQCAtMjMwOCw3ICsyMzM4LDcgQEAgdm9pZCBDYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQ6OmRyYXdUZXh0SW50ZXJuYWwoY29uc3QgU3RyaW5nJiB0ZXh0LCBmbG9hdCB4
LCBmbG8KICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgZmxvYXQgZm9udFdpZHRoID0gZm9u
dC53aWR0aChUZXh0UnVuKG5vcm1hbGl6ZWRUZXh0LCAwLCAwLCBUZXh0UnVuOjpBbGxvd1RyYWls
aW5nRXhwYW5zaW9uLCBzdGF0ZSgpLm1fZGlyZWN0aW9uLCBvdmVycmlkZSkpOworICAgIGZsb2F0
IGZvbnRXaWR0aCA9IGZvbnQud2lkdGgoVGV4dFJ1bihub3JtYWxpemVkVGV4dCwgMCwgMCwgVGV4
dFJ1bjo6QWxsb3dUcmFpbGluZ0V4cGFuc2lvbiwgZGlyZWN0aW9uLCBvdmVycmlkZSkpOwogCiAg
ICAgdXNlTWF4V2lkdGggPSAodXNlTWF4V2lkdGggJiYgbWF4V2lkdGggPCBmb250V2lkdGgpOwog
ICAgIGZsb2F0IHdpZHRoID0gdXNlTWF4V2lkdGggPyBtYXhXaWR0aCA6IGZvbnRXaWR0aDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJELmgKaW5kZXggYWRiOTZlNzdiZjhhZWUxMTk3ZGY2ZTU5MTZjNTJiYzUyOTUwOWEwYS4uYmQ5
YzljZWY0ODQ1N2E2NjEyNzJlZmRjZTkxNmE3OTZjZjcwOGQ2MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgKQEAgLTIy
OCw4ICsyMjgsMTQgQEAgcHVibGljOgogICAgIHZvaWQgc2V0V2Via2l0SW1hZ2VTbW9vdGhpbmdF
bmFibGVkKGJvb2wpOwogCiBwcml2YXRlOgorICAgIGVudW0gRGlyZWN0aW9uIHsKKyAgICAgICAg
RGlyZWN0aW9uSW5oZXJpdCA9IC0xLAorICAgICAgICBEaXJlY3Rpb25SVEwsCisgICAgICAgIERp
cmVjdGlvbkxUUgorICAgIH07CisKICAgICBzdHJ1Y3QgU3RhdGUgOiBGb250U2VsZWN0b3JDbGll
bnQgewotICAgICAgICBleHBsaWNpdCBTdGF0ZShUZXh0RGlyZWN0aW9uID0gTFRSKTsKKyAgICAg
ICAgZXhwbGljaXQgU3RhdGUoRGlyZWN0aW9uID0gRGlyZWN0aW9uSW5oZXJpdCk7CiAgICAgICAg
IHZpcnR1YWwgflN0YXRlKCk7CiAKICAgICAgICAgU3RhdGUoY29uc3QgU3RhdGUmKTsKQEAgLTI2
MCw3ICsyNjYsNyBAQCBwcml2YXRlOgogICAgICAgICAvLyBUZXh0IHN0YXRlLgogICAgICAgICBU
ZXh0QWxpZ24gbV90ZXh0QWxpZ247CiAgICAgICAgIFRleHRCYXNlbGluZSBtX3RleHRCYXNlbGlu
ZTsKLSAgICAgICAgVGV4dERpcmVjdGlvbiBtX2RpcmVjdGlvbjsKKyAgICAgICAgRGlyZWN0aW9u
IG1fZGlyZWN0aW9uOwogCiAgICAgICAgIFN0cmluZyBtX3VucGFyc2VkRm9udDsKICAgICAgICAg
Rm9udCBtX2ZvbnQ7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggNzg5NjlmN2MzZTc2NWJkZTZiMmFlNTQ4ZTMxNWUxZTUzMzdk
MWFkZi4uNGExNWVkMzM5Yzg5YmJhMGVhYzgzYTBiOTllNDVmYWNhM2YxYTlmMCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDEzIEBACisyMDE0LTA4LTIxICBWaXZlayBHYWxhdGFnZSAgPHZpdmVrLnZnQHNhbXN1
bmcuY29tPgorCisgICAgICAgIENhbnZhcyBkaXJlY3Rpb24gc2hvdWxkIHJlZmxlY3QgY2hhbmdl
IGluIGRpciBhdHRyaWJ1dGUgYW5kIGFsc28gYWNyb3NzIHNhdmUvcmVzdG9yZSBvcGVyYXRpb25z
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzYwOTgK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3Qv
Y2FudmFzL2NhbnZhcy1kaXJlY3Rpb24tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvY2Fu
dmFzL2NhbnZhcy1kaXJlY3Rpb24uaHRtbDoKKwogMjAxNC0wOC0yMCAgQmVuamFtaW4gUG91bGFp
biAgPGJlbmphbWluQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQ1NTOiBJbXBsZW1lbnQgdGhlIDpw
bGFjZWhvbGRlci1zaG93biBwc2V1ZG8tY2xhc3MgZnJvbSBTZWxlY3RvcnMgTGV2ZWwgNApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWRpcmVjdGlvbi1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtZGlyZWN0aW9uLWV4cGVjdGVk
LnR4dAppbmRleCAwYzE0MTJkYjA3MzI0ZTZkMjBmZjQ1MzIzZDRmM2VjNTg5OGM3Njg1Li4xYzUz
ZGZjMThhYTdlMzAzYjdkYzEwNWFkZDI5NDY4ODQ5NDE5ODIwIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtZGlyZWN0aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtZGlyZWN0aW9uLWV4cGVjdGVkLnR4dApAQCAtNSw2
ICs1LDkgQEAgVGVzdHMgdGhhdCBjb250ZXh0LmRpcmVjdGlvbiBpcyBvdmVycmlkZGVuIGJ5ICdy
dGwnIHdpdGggcGFyZW50IGVsZW1lbnQgaGF2aW5nIHUKIFRlc3RzIHRoYXQgY29udGV4dC5kaXJl
Y3Rpb24gaXMgb3ZlcnJpZGRlbiBieSAnbHRyJyB3aXRoIHBhcmVudCBlbGVtZW50IGhhdmluZyBk
aXJlY3Rpb24gYXMgcnRsOiBQQVNTCiBUZXN0cyB0aGF0IGNvbnRleHQuZGlyZWN0aW9uIGlzIG92
ZXJyaWRkZW4gYnkgJ2luaGVyaXQnIHdpdGggcGFyZW50IGVsZW1lbnQgaGF2aW5nIHVuc3BlY2lm
aWVkIGRpcmVjdGlvbjogUEFTUwogVGVzdHMgdGhhdCBjb250ZXh0LmRpcmVjdGlvbiBpcyBvdmVy
cmlkZGVuIGJ5ICdpbmhlcml0JyB3aXRoIHBhcmVudCBlbGVtZW50IGhhdmluZyBkaXJlY3Rpb24g
YXMgcnRsOiBQQVNTCitUZXN0cyB0aGF0IGNoYW5nZSBpbiBlbGVtZW50J3MgZGlyIGF0dHJpYnV0
ZSBpcyByZWZsZWN0ZWQgaW4gY29udGV4dC5kaXJlY3Rpb24gYXMgcnRsOiBQQVNTCitUZXN0cyB0
aGF0IGNoYW5nZSBpbiBlbGVtZW50J3MgZGlyIGF0dHJpYnV0ZSBpcyByZWZsZWN0ZWQgaW4gY29u
dGV4dC5kaXJlY3Rpb24gYXMgbHRyOiBQQVNTCitUZXN0cyB0aGF0IGNvbnRleHQuZGlyZWN0aW9u
IHJlZmxlY3RzIHRoZSB2YWxpZCBkaXJlY3Rpb24gYWZ0ZXIgc2F2ZS9yZXN0b3JlIGNvbnRleHQg
b3BlcmF0aW9uczogUEFTUwogVGVzdHMgdGhhdCBjb250ZXh0LnJlc2V0KCkgc2V0cyB0aGUgY29u
dGV4dC5kaXJlY3Rpb24gdG8gbHRyOiBQQVNTCiBUZXN0cyB0aGF0IGNvbnRleHQucmVzZXQoKSBz
ZXRzIHRoZSBjb250ZXh0LmRpcmVjdGlvbiB0byBydGw6IFBBU1MKIFRlc3RzIHRoYXQgaW52YWxp
ZCBkaXJlY3Rpb24gdmFsdWUgUlRMIGhhcyBubyBlZmZlY3Qgb24gdGhlIGNvbnRleHQuZGlyZWN0
aW9uOiBQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtZGly
ZWN0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtZGlyZWN0aW9uLmh0
bWwKaW5kZXggYjdlNDk3NDU4NWMyN2FhNzliOGE0ZmFkZWY5NTA3MzU0ODQ2OTQxOC4uYmY1NzZi
MmMyMmM0MTMyNjQxMTIwMmMyOTE5ZmY4ODU0OTUxNjYyNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9jYW52YXMvY2FudmFzLWRpcmVjdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvY2FudmFzL2NhbnZhcy1kaXJlY3Rpb24uaHRtbApAQCAtNDYsNiArNDYsMTggQEAKIDxzcGFu
PlRlc3RzIHRoYXQgY29udGV4dC5yZXNldCBzZXRzIHRoZSBkaXJlY3Rpb24gYXMgcnRsPHNwYW4g
aWQ9InJlc3VsdDgiPjwvc3Bhbj48L3NwYW4+PGJyPgogPGNhbnZhcyBpZD0iY2FudmFzOCIgd2lk
dGg9NDAwIGhlaWdodD0yMCBzdHlsZT0iYm9yZGVyOjFweCBzb2xpZCBibGFjayI+PC9jYW52YXM+
CiA8L2Rpdj4KKzxkaXY+Cis8c3Bhbj5UZXN0cyB0aGF0IGNoYW5nZSBpbiBlbGVtZW50J3MgZGly
IGF0dHJpYnV0ZSBpcyByZWZsZWN0ZWQgaW4gY29udGV4dC5kaXJlY3Rpb24gYXMgcnRsOiA8c3Bh
biBpZD0icmVzdWx0OSI+PC9zcGFuPjwvc3Bhbj48YnI+Cis8Y2FudmFzIGlkPSJjYW52YXM5IiB3
aWR0aD00MDAgaGVpZ2h0PTIwIHN0eWxlPSJib3JkZXI6MXB4IHNvbGlkIGJsYWNrIj48L2NhbnZh
cz4KKzwvZGl2PgorPGRpdiBkaXI9InJ0bCI+Cis8c3Bhbj5UZXN0cyB0aGF0IGNoYW5nZSBpbiBl
bGVtZW50J3MgZGlyIGF0dHJpYnV0ZSBpcyByZWZsZWN0ZWQgaW4gY29udGV4dC5kaXJlY3Rpb24g
YXMgbHRyOiA8c3BhbiBpZD0icmVzdWx0MTAiPjwvc3Bhbj48L3NwYW4+PGJyPgorPGNhbnZhcyBp
ZD0iY2FudmFzMTAiIHdpZHRoPTQwMCBoZWlnaHQ9MjAgc3R5bGU9ImJvcmRlcjoxcHggc29saWQg
YmxhY2siPjwvY2FudmFzPgorPC9kaXY+Cis8ZGl2PgorPHNwYW4+VGVzdHMgdGhhdCBjb250ZXh0
LmRpcmVjdGlvbiByZWZsZWN0cyB0aGUgdmFsaWQgZGlyZWN0aW9uIGFmdGVyIHNhdmUvcmVzdG9y
ZSBjb250ZXh0IG9wZXJhdGlvbnM6IDxzcGFuIGlkPSJyZXN1bHQxMSI+PC9zcGFuPjwvc3Bhbj48
YnI+Cis8Y2FudmFzIGlkPSJjYW52YXMxMSIgc3R5bGU9ImJvcmRlcjoxcHggc29saWQgYmxhY2si
PjwvY2FudmFzPgorPC9kaXY+CiA8ZGl2IGlkPSJyZXN1bHRzIj4KIDwvZGl2PgogPHNjcmlwdD4K
QEAgLTEyMyw2ICsxMzUsNTcgQEAgZnVuY3Rpb24gdmVyaWZ5RGlyZWN0aW9uQWZ0ZXJSZXNldChj
YW52YXNJZCwgdGV4dCwgZGlyZWN0aW9uLCBleHBlY3RlZERpcmVjdGlvbikKICAgICBkb2N1bWVu
dC5ib2R5LnJlbW92ZUNoaWxkKGNhbnZhc0VsZW1lbnQucGFyZW50RWxlbWVudCk7CiB9CiAKK2Z1
bmN0aW9uIHZlcmlmeURpcmVjdGlvbkFmdGVyQXR0cmlidXRlQ2hhbmdlKGNhbnZhc0lkLCByZXN1
bHRJZCwgdGV4dCwgbmV3RGlyZWN0aW9uLCBmb3JQYXJlbnRFbGVtZW50KQoreworICAgIHZhciBj
YW52YXNFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoY2FudmFzSWQpOworICAgIHZh
ciByZXN1bHRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocmVzdWx0SWQpOworICAg
IHZhciBjdHggPSBjYW52YXNFbGVtZW50LmdldENvbnRleHQoJzJkJyk7CisgICAgdmFyIHdpZHRo
ID0gY2FudmFzRWxlbWVudC53aWR0aC8yOworICAgIHZhciBoZWlnaHQgPSBjYW52YXNFbGVtZW50
LmhlaWdodDsKKworICAgIGlmIChmb3JQYXJlbnRFbGVtZW50KQorICAgICAgICBjYW52YXNFbGVt
ZW50LnBhcmVudEVsZW1lbnQuZGlyID0gbmV3RGlyZWN0aW9uOworICAgIGVsc2UKKyAgICAgICAg
Y2FudmFzRWxlbWVudC5kaXIgPSBuZXdEaXJlY3Rpb247CisgICAgcmVzdWx0RWxlbWVudC50ZXh0
Q29udGVudCA9IGN0eC5kaXJlY3Rpb24gPT0gbmV3RGlyZWN0aW9uID8gJ1BBU1MnIDogJ0ZBSUwn
OworICAgIHJlc3VsdEVsZW1lbnQuY2xhc3NOYW1lID0gY3R4LmRpcmVjdGlvbiA9PSBuZXdEaXJl
Y3Rpb24gPyAncGFzcycgOiAnZmFpbCc7CisgICAgY3R4Lm1vdmVUbyh3aWR0aCwgMCk7CisgICAg
Y3R4LmxpbmVUbyh3aWR0aCwgaGVpZ2h0KTsKKyAgICBjdHguc3Ryb2tlKCk7CisgICAgY3R4LmZv
bnQgPSBmb250U2V0dGluZ3M7CisgICAgY3R4LmZpbGxUZXh0KHRleHQsIHdpZHRoLCBoZWlnaHQv
Mik7Cit9CisKK2Z1bmN0aW9uIHZlcmlmeURpcmVjdGlvbkFjcm9zc1NhdmVSZXN0b3JlcyhjYW52
YXNJZCwgcmVzdWx0SWQsIHRlc3RWZWN0b3IpCit7CisgICAgdmFyIGNhbnZhc0VsZW1lbnQgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZChjYW52YXNJZCk7CisgICAgdmFyIHJlc3VsdEVsZW1lbnQg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChyZXN1bHRJZCk7CisgICAgdmFyIGN0eCA9IGNhbnZh
c0VsZW1lbnQuZ2V0Q29udGV4dCgnMmQnKTsKKyAgICB2YXIgd2lkdGggPSBjYW52YXNFbGVtZW50
LndpZHRoLzI7CisgICAgdmFyIGhlaWdodCA9IDA7CisgICAgY3R4Lm1vdmVUbyh3aWR0aCwgMCk7
CisgICAgY3R4LmxpbmVUbyh3aWR0aCwgY2FudmFzRWxlbWVudC5oZWlnaHQpOworICAgIGN0eC5z
dHJva2UoKTsKKyAgICBjdHguZm9udCA9IGZvbnRTZXR0aW5nczsKKyAgICB2YXIgdGVzdFZlY3Rv
ckxlbmd0aCA9IHRlc3RWZWN0b3IubGVuZ3RoOworICAgIHZhciBpID0gMDsKKyAgICBmb3IgKDsg
aSA8IHRlc3RWZWN0b3IubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgaGVpZ2h0ICs9IDIwOworICAg
ICAgICBjdHguZGlyZWN0aW9uID0gdGVzdFZlY3RvcltpXS5kaXJlY3Rpb247CisgICAgICAgIGN0
eC5maWxsVGV4dCh0ZXN0VmVjdG9yW2ldLnRleHQsIHdpZHRoLCBoZWlnaHQpOworICAgICAgICBp
ZiAoaSAhPSB0ZXN0VmVjdG9yTGVuZ3RoIC0gMSkKKyAgICAgICAgICAgIGN0eC5zYXZlKCk7Cisg
ICAgfQorICAgIHZhciB2YWxpZERpcmVjdGlvbkNvdW50ID0gMDsKKyAgICBmb3IgKC0taTsgaSA+
IDA7IC0taSkgeworICAgICAgICBjdHgucmVzdG9yZSgpOworICAgICAgICBpZiAoY3R4LmRpcmVj
dGlvbiA9PSB0ZXN0VmVjdG9yW2kgLSAxXS5kaXJlY3Rpb24pCisgICAgICAgICAgICB2YWxpZERp
cmVjdGlvbkNvdW50Kys7CisgICAgfQorICAgIHJlc3VsdEVsZW1lbnQudGV4dENvbnRlbnQgPSB2
YWxpZERpcmVjdGlvbkNvdW50ID09IHRlc3RWZWN0b3JMZW5ndGggLSAxID8gJ1BBU1MnIDogJ0ZB
SUwnOworICAgIHJlc3VsdEVsZW1lbnQuY2xhc3NOYW1lID0gdmFsaWREaXJlY3Rpb25Db3VudCA9
PSB0ZXN0VmVjdG9yTGVuZ3RoIC0gMSA/ICdwYXNzJyA6ICdmYWlsJzsKK30KKwogZnVuY3Rpb24g
dmVyaWZ5SW52YWxpZERpcmVjdGlvbihkaXJlY3Rpb24pCiB7CiAgICAgdmFyIGN0eCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpLmdldENvbnRleHQoJzJkJyk7CkBAIC0xNDQsNiAr
MjA3LDE4IEBAIHZlcmlmeURyYXdUZXh0V2l0aFNwZWNpZmllZERpcmVjdGlvbignY2FudmFzNics
ICdyZXN1bHQ2JywgJ1JpZ2h0LXRvLUxlZnQgdGV4dCcsCiB2ZXJpZnlEaXJlY3Rpb25BZnRlclJl
c2V0KCdjYW52YXM3JywgJ1JpZ2h0LXRvLUxlZnQnLCAncnRsJywgJ2x0cicpOwogdmVyaWZ5RGly
ZWN0aW9uQWZ0ZXJSZXNldCgnY2FudmFzOCcsICdSaWdodC10by1MZWZ0JywgJ2x0cicsICdydGwn
KTsKIAordmVyaWZ5RGlyZWN0aW9uQWZ0ZXJBdHRyaWJ1dGVDaGFuZ2UoJ2NhbnZhczknLCAncmVz
dWx0OScsICdSaWdodC10by1MZWZ0IHRleHQnLCAncnRsJywgdHJ1ZSk7Cit2ZXJpZnlEaXJlY3Rp
b25BZnRlckF0dHJpYnV0ZUNoYW5nZSgnY2FudmFzMTAnLCAncmVzdWx0MTAnLCAnTGVmdC10by1S
aWdodCB0ZXh0JywgJ2x0cicsIGZhbHNlKTsKKwordmVyaWZ5RGlyZWN0aW9uQWNyb3NzU2F2ZVJl
c3RvcmVzKCdjYW52YXMxMScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Jl
c3VsdDExJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbeyB0ZXh0OiAnTGVm
dC10by1SaWdodCB0ZXh0JywgZGlyZWN0aW9uOiAnbHRyJyB9LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB7IHRleHQ6ICdSaWdodC10by1MZWZ0IHRleHQnLCBkaXJlY3Rpb246
ICdydGwnIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgdGV4dDogJ1Jp
Z2h0LXRvLUxlZnQgdGV4dCcsIGRpcmVjdGlvbjogJ3J0bCcgfSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgeyB0ZXh0OiAnTGVmdC10by1SaWdodCB0ZXh0JywgZGlyZWN0aW9u
OiAnbHRyJyB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHRleHQ6ICdS
aWdodC10by1MZWZ0IHRleHQnLCBkaXJlY3Rpb246ICdydGwnIH0sCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHsgdGV4dDogJ1JpZ2h0LXRvLUxlZnQgdGV4dCcsIGRpcmVjdGlv
bjogJ3J0bCcgfV0pOworCiB2ZXJpZnlJbnZhbGlkRGlyZWN0aW9uKCdSVEwnKTsKIHZlcmlmeUlu
dmFsaWREaXJlY3Rpb24oJ0xUUicpOwogdmVyaWZ5SW52YWxpZERpcmVjdGlvbignSU5IRVJJVCcp
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236922</attachid>
            <date>2014-08-21 03:16:07 -0700</date>
            <delta_ts>2014-08-21 07:55:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136098-20140821154556.patch</filename>
            <type>text/plain</type>
            <size>13164</size>
            <attacher name="Vivek Galatage">vivekg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcyODI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjc4Y2QxMzQzZGI1ZTAy
ZjZiMTBlYWVmMWYwYTJkNTZhNTA4ODQ4OS4uZDlkNzQyMDk5OTI4ZWI4Y2RkZjlhZWNkNzE3MDQ2
MDI3ZGYyMjJjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE0LTA4LTIxICBWaXZl
ayBHYWxhdGFnZSAgPHZpdmVrLnZnQHNhbXN1bmcuY29tPgorCisgICAgICAgIENhbnZhcyBkaXJl
Y3Rpb24gc2hvdWxkIHJlZmxlY3QgY2hhbmdlIGluIGRpciBhdHRyaWJ1dGUgYW5kIGFsc28gYWNy
b3NzIHNhdmUvcmVzdG9yZSBvcGVyYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMzYwOTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBDaGFuZ2VkIFN0YXRlLm1fZGlyZWN0aW9uIHR5cGUgZnJvbSBU
ZXh0RGlyZWN0aW9uIHRvIERpcmVjdGlvbiBlbnVtIHRvIGFjY29tb2RhdGUgRGlyZWN0aW9uSW5o
ZXJpdAorICAgICAgICBhcyBhIHNlcGFyYXRlIHZhbHVlLiBNb2RpZmllZCB0aGUgZ2V0dGVyIHRv
IGNvbXB1dGUgdGhlICdsaXZlJyB2YWx1ZSBmb3IgdGhlIGRpcmVjdGlvbiBhdHRyaWJ1dGUKKwor
ICAgICAgICBVcGRhdGVkIGV4aXN0aW5nIGNhbnZhcy1kaXJlY3Rpb24uaHRtbCB3aXRoIGFkZGl0
aW9uYWwgY2FzZXMgdG8gcmVmbGVjdCB0aGlzIGNoYW5nZS4KKworICAgICAgICAqIGh0bWwvY2Fu
dmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQ6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCk6CisgICAgICAg
IChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnJlc2V0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6U3RhdGU6OlN0YXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZGlyZWN0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6c2V0RGlyZWN0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZHJhd1RleHRJbnRlcm5hbCk6
CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmg6CisKIDIw
MTQtMDgtMjAgIEJlbmphbWluIFBvdWxhaW4gIDxiZW5qYW1pbkB3ZWJraXQub3JnPgogCiAgICAg
ICAgIENTUzogSW1wbGVtZW50IHRoZSA6cGxhY2Vob2xkZXItc2hvd24gcHNldWRvLWNsYXNzIGZy
b20gU2VsZWN0b3JzIExldmVsIDQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCmluZGV4IDNmYzM0ZWQ2YzkwZjVlZDdm
MWZhY2IwMTQyM2VhYjg2MDFkMDY1NTguLmFhZGE3NmJjNjY3NGIxOTY1YzFiYTdjNDE0YTI1MTA0
NzFlYzVmODcgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcApAQCAtMTIwLDcgKzEyMCw2IEBAIENhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRDo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKEhUTUxDYW52YXNFbGVtZW50
KiBjYW52YXMsIGJvCiAgICAgLCBtX3VzZXNEYXNoYm9hcmRDb21wYXRpYmlsaXR5TW9kZSh1c2Vz
RGFzaGJvYXJkQ29tcGF0aWJpbGl0eU1vZGUpCiAjZW5kaWYKIHsKLSAgICBtX3N0YXRlU3RhY2su
Zmlyc3QoKS5tX2RpcmVjdGlvbiA9IGluaGVyaXRlZERpcmVjdGlvbigqY2FudmFzKTsKICNpZiAh
RU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQogICAgIEFTU0VSVF9VTlVTRUQodXNlc0Rhc2hib2Fy
ZENvbXBhdGliaWxpdHlNb2RlLCAhdXNlc0Rhc2hib2FyZENvbXBhdGliaWxpdHlNb2RlKTsKICNl
bmRpZgpAQCAtMTYyLDEyICsxNjEsMTIgQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6
OnJlc2V0KCkKIHsKICAgICB1bndpbmRTdGF0ZVN0YWNrKCk7CiAgICAgbV9zdGF0ZVN0YWNrLnJl
c2l6ZSgxKTsKLSAgICBtX3N0YXRlU3RhY2suZmlyc3QoKSA9IFN0YXRlKGluaGVyaXRlZERpcmVj
dGlvbigqY2FudmFzKCkpKTsKKyAgICBtX3N0YXRlU3RhY2suZmlyc3QoKSA9IFN0YXRlKCk7CiAg
ICAgbV9wYXRoLmNsZWFyKCk7CiAgICAgbV91bnJlYWxpemVkU2F2ZUNvdW50ID0gMDsKIH0KIAot
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpTdGF0ZTo6U3RhdGUoVGV4dERpcmVjdGlvbiBkaXJl
Y3Rpb24pCitDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OlN0YXRlOjpTdGF0ZShEaXJlY3Rpb24g
ZGlyZWN0aW9uKQogICAgIDogbV9zdHJva2VTdHlsZShDb2xvcjo6YmxhY2spCiAgICAgLCBtX2Zp
bGxTdHlsZShDb2xvcjo6YmxhY2spCiAgICAgLCBtX2xpbmVXaWR0aCgxKQpAQCAtMjE2NSwxOCAr
MjE2NCwzMyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6c2V0VGV4dEJhc2VsaW5l
KGNvbnN0IFN0cmluZyYgcykKIAogU3RyaW5nIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZGly
ZWN0aW9uKCkgY29uc3QKIHsKLSAgICByZXR1cm4gc3RhdGUoKS5tX2RpcmVjdGlvbiA9PSBSVEwg
PyBBU0NJSUxpdGVyYWwoInJ0bCIpIDogQVNDSUlMaXRlcmFsKCJsdHIiKTsKKyAgICBUZXh0RGly
ZWN0aW9uIGRpcmVjdGlvbjsKKyAgICBzd2l0Y2ggKHN0YXRlKCkubV9kaXJlY3Rpb24pIHsKKyAg
ICBjYXNlIERpcmVjdGlvbkluaGVyaXQ6CisgICAgICAgIGRpcmVjdGlvbiA9IGluaGVyaXRlZERp
cmVjdGlvbigqY2FudmFzKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERpcmVjdGlvblJU
TDoKKyAgICAgICAgZGlyZWN0aW9uID0gUlRMOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERp
cmVjdGlvbkxUUjoKKyAgICAgICAgZGlyZWN0aW9uID0gTFRSOworICAgICAgICBicmVhazsKKyAg
ICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgYnJlYWs7
CisgICAgfQorICAgIHJldHVybiBkaXJlY3Rpb24gPT0gUlRMID8gQVNDSUlMaXRlcmFsKCJydGwi
KSA6IEFTQ0lJTGl0ZXJhbCgibHRyIik7CiB9CiAKIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEOjpzZXREaXJlY3Rpb24oY29uc3QgU3RyaW5nJiBkaXJlY3Rpb25TdHJpbmcpCiB7Ci0gICAg
VGV4dERpcmVjdGlvbiBkaXJlY3Rpb247CisgICAgRGlyZWN0aW9uIGRpcmVjdGlvbjsKICAgICBp
ZiAoZGlyZWN0aW9uU3RyaW5nID09ICJpbmhlcml0IikKLSAgICAgICAgZGlyZWN0aW9uID0gaW5o
ZXJpdGVkRGlyZWN0aW9uKCpjYW52YXMoKSk7CisgICAgICAgIGRpcmVjdGlvbiA9IERpcmVjdGlv
bkluaGVyaXQ7CiAgICAgZWxzZSBpZiAoZGlyZWN0aW9uU3RyaW5nID09ICJydGwiKQotICAgICAg
ICBkaXJlY3Rpb24gPSBSVEw7CisgICAgICAgIGRpcmVjdGlvbiA9IERpcmVjdGlvblJUTDsKICAg
ICBlbHNlIGlmIChkaXJlY3Rpb25TdHJpbmcgPT0gImx0ciIpCi0gICAgICAgIGRpcmVjdGlvbiA9
IExUUjsKKyAgICAgICAgZGlyZWN0aW9uID0gRGlyZWN0aW9uTFRSOwogICAgIGVsc2UKICAgICAg
ICAgcmV0dXJuOwogCkBAIC0yMjgzLDExICsyMjk3LDI4IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEOjpkcmF3VGV4dEludGVybmFsKGNvbnN0IFN0cmluZyYgdGV4dCwgZmxvYXQgeCwg
ZmxvCiAKICAgICAvLyBGSVhNRTogTmVlZCB0byB0dXJuIG9mZiBmb250IHNtb290aGluZy4KIAor
ICAgIGlmIChzdGF0ZSgpLm1fZGlyZWN0aW9uID09IERpcmVjdGlvbkluaGVyaXQpCisgICAgICAg
IGNhbnZhcygpLT5kb2N1bWVudCgpLnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKICAgICBSZW5kZXJT
dHlsZSogY29tcHV0ZWRTdHlsZSA9IGNhbnZhcygpLT5jb21wdXRlZFN0eWxlKCk7Ci0gICAgYm9v
bCBpc1JUTCA9IHN0YXRlKCkubV9kaXJlY3Rpb24gPT0gUlRMOworICAgIFRleHREaXJlY3Rpb24g
ZGlyZWN0aW9uOworICAgIHN3aXRjaCAoc3RhdGUoKS5tX2RpcmVjdGlvbikgeworICAgIGNhc2Ug
RGlyZWN0aW9uSW5oZXJpdDoKKyAgICAgICAgZGlyZWN0aW9uID0gY29tcHV0ZWRTdHlsZSA/IGNv
bXB1dGVkU3R5bGUtPmRpcmVjdGlvbigpIDogTFRSOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IERpcmVjdGlvblJUTDoKKyAgICAgICAgZGlyZWN0aW9uID0gUlRMOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIERpcmVjdGlvbkxUUjoKKyAgICAgICAgZGlyZWN0aW9uID0gTFRSOworICAgICAg
ICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgfQorICAgIGJvb2wgaXNSVEwgPSBkaXJlY3Rpb24gPT0gUlRMOwog
ICAgIGJvb2wgb3ZlcnJpZGUgPSBjb21wdXRlZFN0eWxlID8gaXNPdmVycmlkZShjb21wdXRlZFN0
eWxlLT51bmljb2RlQmlkaSgpKSA6IGZhbHNlOwogCi0gICAgVGV4dFJ1biB0ZXh0UnVuKG5vcm1h
bGl6ZWRUZXh0LCAwLCAwLCBUZXh0UnVuOjpBbGxvd1RyYWlsaW5nRXhwYW5zaW9uLCBzdGF0ZSgp
Lm1fZGlyZWN0aW9uLCBvdmVycmlkZSwgdHJ1ZSwgVGV4dFJ1bjo6Tm9Sb3VuZGluZyk7CisgICAg
VGV4dFJ1biB0ZXh0UnVuKG5vcm1hbGl6ZWRUZXh0LCAwLCAwLCBUZXh0UnVuOjpBbGxvd1RyYWls
aW5nRXhwYW5zaW9uLCBkaXJlY3Rpb24sIG92ZXJyaWRlLCB0cnVlLCBUZXh0UnVuOjpOb1JvdW5k
aW5nKTsKICAgICAvLyBEcmF3IHRoZSBpdGVtIHRleHQgYXQgdGhlIGNvcnJlY3QgcG9pbnQuCiAg
ICAgRmxvYXRQb2ludCBsb2NhdGlvbih4LCB5KTsKICAgICBzd2l0Y2ggKHN0YXRlKCkubV90ZXh0
QmFzZWxpbmUpIHsKQEAgLTIzMDgsNyArMjMzOSw3IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJEOjpkcmF3VGV4dEludGVybmFsKGNvbnN0IFN0cmluZyYgdGV4dCwgZmxvYXQgeCwgZmxv
CiAgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIGZsb2F0IGZvbnRXaWR0aCA9IGZvbnQud2lk
dGgoVGV4dFJ1bihub3JtYWxpemVkVGV4dCwgMCwgMCwgVGV4dFJ1bjo6QWxsb3dUcmFpbGluZ0V4
cGFuc2lvbiwgc3RhdGUoKS5tX2RpcmVjdGlvbiwgb3ZlcnJpZGUpKTsKKyAgICBmbG9hdCBmb250
V2lkdGggPSBmb250LndpZHRoKFRleHRSdW4obm9ybWFsaXplZFRleHQsIDAsIDAsIFRleHRSdW46
OkFsbG93VHJhaWxpbmdFeHBhbnNpb24sIGRpcmVjdGlvbiwgb3ZlcnJpZGUpKTsKIAogICAgIHVz
ZU1heFdpZHRoID0gKHVzZU1heFdpZHRoICYmIG1heFdpZHRoIDwgZm9udFdpZHRoKTsKICAgICBm
bG9hdCB3aWR0aCA9IHVzZU1heFdpZHRoID8gbWF4V2lkdGggOiBmb250V2lkdGg7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5o
CmluZGV4IGFkYjk2ZTc3YmY4YWVlMTE5N2RmNmU1OTE2YzUyYmM1Mjk1MDlhMGEuLmJkOWM5Y2Vm
NDg0NTdhNjYxMjcyZWZkY2U5MTZhNzk2Y2Y3MDhkNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oCkBAIC0yMjgsOCAr
MjI4LDE0IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFdlYmtpdEltYWdlU21vb3RoaW5nRW5hYmxl
ZChib29sKTsKIAogcHJpdmF0ZToKKyAgICBlbnVtIERpcmVjdGlvbiB7CisgICAgICAgIERpcmVj
dGlvbkluaGVyaXQgPSAtMSwKKyAgICAgICAgRGlyZWN0aW9uUlRMLAorICAgICAgICBEaXJlY3Rp
b25MVFIKKyAgICB9OworCiAgICAgc3RydWN0IFN0YXRlIDogRm9udFNlbGVjdG9yQ2xpZW50IHsK
LSAgICAgICAgZXhwbGljaXQgU3RhdGUoVGV4dERpcmVjdGlvbiA9IExUUik7CisgICAgICAgIGV4
cGxpY2l0IFN0YXRlKERpcmVjdGlvbiA9IERpcmVjdGlvbkluaGVyaXQpOwogICAgICAgICB2aXJ0
dWFsIH5TdGF0ZSgpOwogCiAgICAgICAgIFN0YXRlKGNvbnN0IFN0YXRlJik7CkBAIC0yNjAsNyAr
MjY2LDcgQEAgcHJpdmF0ZToKICAgICAgICAgLy8gVGV4dCBzdGF0ZS4KICAgICAgICAgVGV4dEFs
aWduIG1fdGV4dEFsaWduOwogICAgICAgICBUZXh0QmFzZWxpbmUgbV90ZXh0QmFzZWxpbmU7Ci0g
ICAgICAgIFRleHREaXJlY3Rpb24gbV9kaXJlY3Rpb247CisgICAgICAgIERpcmVjdGlvbiBtX2Rp
cmVjdGlvbjsKIAogICAgICAgICBTdHJpbmcgbV91bnBhcnNlZEZvbnQ7CiAgICAgICAgIEZvbnQg
bV9mb250OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IDc4OTY5ZjdjM2U3NjViZGU2YjJhZTU0OGUzMTVlMWU1MzM3ZDFhZGYu
LjRhMTVlZDMzOWM4OWJiYTBlYWM4M2EwYjk5ZTQ1ZmFjYTNmMWE5ZjAgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxMyBAQAorMjAxNC0wOC0yMSAgVml2ZWsgR2FsYXRhZ2UgIDx2aXZlay52Z0BzYW1zdW5nLmNv
bT4KKworICAgICAgICBDYW52YXMgZGlyZWN0aW9uIHNob3VsZCByZWZsZWN0IGNoYW5nZSBpbiBk
aXIgYXR0cmlidXRlIGFuZCBhbHNvIGFjcm9zcyBzYXZlL3Jlc3RvcmUgb3BlcmF0aW9ucworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2MDk4CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2NhbnZh
cy9jYW52YXMtZGlyZWN0aW9uLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2NhbnZhcy9j
YW52YXMtZGlyZWN0aW9uLmh0bWw6CisKIDIwMTQtMDgtMjAgIEJlbmphbWluIFBvdWxhaW4gIDxi
ZW5qYW1pbkB3ZWJraXQub3JnPgogCiAgICAgICAgIENTUzogSW1wbGVtZW50IHRoZSA6cGxhY2Vo
b2xkZXItc2hvd24gcHNldWRvLWNsYXNzIGZyb20gU2VsZWN0b3JzIExldmVsIDQKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1kaXJlY3Rpb24tZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWRpcmVjdGlvbi1leHBlY3RlZC50eHQK
aW5kZXggMGMxNDEyZGIwNzMyNGU2ZDIwZmY0NTMyM2Q0ZjNlYzU4OThjNzY4NS4uMWM1M2RmYzE4
YWE3ZTMwM2I3ZGMxMDVhZGQyOTQ2ODg0OTQxOTgyMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9jYW52YXMvY2FudmFzLWRpcmVjdGlvbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9jYW52YXMvY2FudmFzLWRpcmVjdGlvbi1leHBlY3RlZC50eHQKQEAgLTUsNiArNSw5
IEBAIFRlc3RzIHRoYXQgY29udGV4dC5kaXJlY3Rpb24gaXMgb3ZlcnJpZGRlbiBieSAncnRsJyB3
aXRoIHBhcmVudCBlbGVtZW50IGhhdmluZyB1CiBUZXN0cyB0aGF0IGNvbnRleHQuZGlyZWN0aW9u
IGlzIG92ZXJyaWRkZW4gYnkgJ2x0cicgd2l0aCBwYXJlbnQgZWxlbWVudCBoYXZpbmcgZGlyZWN0
aW9uIGFzIHJ0bDogUEFTUwogVGVzdHMgdGhhdCBjb250ZXh0LmRpcmVjdGlvbiBpcyBvdmVycmlk
ZGVuIGJ5ICdpbmhlcml0JyB3aXRoIHBhcmVudCBlbGVtZW50IGhhdmluZyB1bnNwZWNpZmllZCBk
aXJlY3Rpb246IFBBU1MKIFRlc3RzIHRoYXQgY29udGV4dC5kaXJlY3Rpb24gaXMgb3ZlcnJpZGRl
biBieSAnaW5oZXJpdCcgd2l0aCBwYXJlbnQgZWxlbWVudCBoYXZpbmcgZGlyZWN0aW9uIGFzIHJ0
bDogUEFTUworVGVzdHMgdGhhdCBjaGFuZ2UgaW4gZWxlbWVudCdzIGRpciBhdHRyaWJ1dGUgaXMg
cmVmbGVjdGVkIGluIGNvbnRleHQuZGlyZWN0aW9uIGFzIHJ0bDogUEFTUworVGVzdHMgdGhhdCBj
aGFuZ2UgaW4gZWxlbWVudCdzIGRpciBhdHRyaWJ1dGUgaXMgcmVmbGVjdGVkIGluIGNvbnRleHQu
ZGlyZWN0aW9uIGFzIGx0cjogUEFTUworVGVzdHMgdGhhdCBjb250ZXh0LmRpcmVjdGlvbiByZWZs
ZWN0cyB0aGUgdmFsaWQgZGlyZWN0aW9uIGFmdGVyIHNhdmUvcmVzdG9yZSBjb250ZXh0IG9wZXJh
dGlvbnM6IFBBU1MKIFRlc3RzIHRoYXQgY29udGV4dC5yZXNldCgpIHNldHMgdGhlIGNvbnRleHQu
ZGlyZWN0aW9uIHRvIGx0cjogUEFTUwogVGVzdHMgdGhhdCBjb250ZXh0LnJlc2V0KCkgc2V0cyB0
aGUgY29udGV4dC5kaXJlY3Rpb24gdG8gcnRsOiBQQVNTCiBUZXN0cyB0aGF0IGludmFsaWQgZGly
ZWN0aW9uIHZhbHVlIFJUTCBoYXMgbm8gZWZmZWN0IG9uIHRoZSBjb250ZXh0LmRpcmVjdGlvbjog
UEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWRpcmVjdGlv
bi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWRpcmVjdGlvbi5odG1sCmlu
ZGV4IGI3ZTQ5NzQ1ODVjMjdhYTc5YjhhNGZhZGVmOTUwNzM1NDg0Njk0MTguLmJmNTc2YjJjMjJj
NDEzMjY0MTEyMDJjMjkxOWZmODg1NDk1MTY2MjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvY2FudmFzL2NhbnZhcy1kaXJlY3Rpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nh
bnZhcy9jYW52YXMtZGlyZWN0aW9uLmh0bWwKQEAgLTQ2LDYgKzQ2LDE4IEBACiA8c3Bhbj5UZXN0
cyB0aGF0IGNvbnRleHQucmVzZXQgc2V0cyB0aGUgZGlyZWN0aW9uIGFzIHJ0bDxzcGFuIGlkPSJy
ZXN1bHQ4Ij48L3NwYW4+PC9zcGFuPjxicj4KIDxjYW52YXMgaWQ9ImNhbnZhczgiIHdpZHRoPTQw
MCBoZWlnaHQ9MjAgc3R5bGU9ImJvcmRlcjoxcHggc29saWQgYmxhY2siPjwvY2FudmFzPgogPC9k
aXY+Cis8ZGl2PgorPHNwYW4+VGVzdHMgdGhhdCBjaGFuZ2UgaW4gZWxlbWVudCdzIGRpciBhdHRy
aWJ1dGUgaXMgcmVmbGVjdGVkIGluIGNvbnRleHQuZGlyZWN0aW9uIGFzIHJ0bDogPHNwYW4gaWQ9
InJlc3VsdDkiPjwvc3Bhbj48L3NwYW4+PGJyPgorPGNhbnZhcyBpZD0iY2FudmFzOSIgd2lkdGg9
NDAwIGhlaWdodD0yMCBzdHlsZT0iYm9yZGVyOjFweCBzb2xpZCBibGFjayI+PC9jYW52YXM+Cis8
L2Rpdj4KKzxkaXYgZGlyPSJydGwiPgorPHNwYW4+VGVzdHMgdGhhdCBjaGFuZ2UgaW4gZWxlbWVu
dCdzIGRpciBhdHRyaWJ1dGUgaXMgcmVmbGVjdGVkIGluIGNvbnRleHQuZGlyZWN0aW9uIGFzIGx0
cjogPHNwYW4gaWQ9InJlc3VsdDEwIj48L3NwYW4+PC9zcGFuPjxicj4KKzxjYW52YXMgaWQ9ImNh
bnZhczEwIiB3aWR0aD00MDAgaGVpZ2h0PTIwIHN0eWxlPSJib3JkZXI6MXB4IHNvbGlkIGJsYWNr
Ij48L2NhbnZhcz4KKzwvZGl2PgorPGRpdj4KKzxzcGFuPlRlc3RzIHRoYXQgY29udGV4dC5kaXJl
Y3Rpb24gcmVmbGVjdHMgdGhlIHZhbGlkIGRpcmVjdGlvbiBhZnRlciBzYXZlL3Jlc3RvcmUgY29u
dGV4dCBvcGVyYXRpb25zOiA8c3BhbiBpZD0icmVzdWx0MTEiPjwvc3Bhbj48L3NwYW4+PGJyPgor
PGNhbnZhcyBpZD0iY2FudmFzMTEiIHN0eWxlPSJib3JkZXI6MXB4IHNvbGlkIGJsYWNrIj48L2Nh
bnZhcz4KKzwvZGl2PgogPGRpdiBpZD0icmVzdWx0cyI+CiA8L2Rpdj4KIDxzY3JpcHQ+CkBAIC0x
MjMsNiArMTM1LDU3IEBAIGZ1bmN0aW9uIHZlcmlmeURpcmVjdGlvbkFmdGVyUmVzZXQoY2FudmFz
SWQsIHRleHQsIGRpcmVjdGlvbiwgZXhwZWN0ZWREaXJlY3Rpb24pCiAgICAgZG9jdW1lbnQuYm9k
eS5yZW1vdmVDaGlsZChjYW52YXNFbGVtZW50LnBhcmVudEVsZW1lbnQpOwogfQogCitmdW5jdGlv
biB2ZXJpZnlEaXJlY3Rpb25BZnRlckF0dHJpYnV0ZUNoYW5nZShjYW52YXNJZCwgcmVzdWx0SWQs
IHRleHQsIG5ld0RpcmVjdGlvbiwgZm9yUGFyZW50RWxlbWVudCkKK3sKKyAgICB2YXIgY2FudmFz
RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGNhbnZhc0lkKTsKKyAgICB2YXIgcmVz
dWx0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHJlc3VsdElkKTsKKyAgICB2YXIg
Y3R4ID0gY2FudmFzRWxlbWVudC5nZXRDb250ZXh0KCcyZCcpOworICAgIHZhciB3aWR0aCA9IGNh
bnZhc0VsZW1lbnQud2lkdGgvMjsKKyAgICB2YXIgaGVpZ2h0ID0gY2FudmFzRWxlbWVudC5oZWln
aHQ7CisKKyAgICBpZiAoZm9yUGFyZW50RWxlbWVudCkKKyAgICAgICAgY2FudmFzRWxlbWVudC5w
YXJlbnRFbGVtZW50LmRpciA9IG5ld0RpcmVjdGlvbjsKKyAgICBlbHNlCisgICAgICAgIGNhbnZh
c0VsZW1lbnQuZGlyID0gbmV3RGlyZWN0aW9uOworICAgIHJlc3VsdEVsZW1lbnQudGV4dENvbnRl
bnQgPSBjdHguZGlyZWN0aW9uID09IG5ld0RpcmVjdGlvbiA/ICdQQVNTJyA6ICdGQUlMJzsKKyAg
ICByZXN1bHRFbGVtZW50LmNsYXNzTmFtZSA9IGN0eC5kaXJlY3Rpb24gPT0gbmV3RGlyZWN0aW9u
ID8gJ3Bhc3MnIDogJ2ZhaWwnOworICAgIGN0eC5tb3ZlVG8od2lkdGgsIDApOworICAgIGN0eC5s
aW5lVG8od2lkdGgsIGhlaWdodCk7CisgICAgY3R4LnN0cm9rZSgpOworICAgIGN0eC5mb250ID0g
Zm9udFNldHRpbmdzOworICAgIGN0eC5maWxsVGV4dCh0ZXh0LCB3aWR0aCwgaGVpZ2h0LzIpOwor
fQorCitmdW5jdGlvbiB2ZXJpZnlEaXJlY3Rpb25BY3Jvc3NTYXZlUmVzdG9yZXMoY2FudmFzSWQs
IHJlc3VsdElkLCB0ZXN0VmVjdG9yKQoreworICAgIHZhciBjYW52YXNFbGVtZW50ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoY2FudmFzSWQpOworICAgIHZhciByZXN1bHRFbGVtZW50ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQocmVzdWx0SWQpOworICAgIHZhciBjdHggPSBjYW52YXNFbGVt
ZW50LmdldENvbnRleHQoJzJkJyk7CisgICAgdmFyIHdpZHRoID0gY2FudmFzRWxlbWVudC53aWR0
aC8yOworICAgIHZhciBoZWlnaHQgPSAwOworICAgIGN0eC5tb3ZlVG8od2lkdGgsIDApOworICAg
IGN0eC5saW5lVG8od2lkdGgsIGNhbnZhc0VsZW1lbnQuaGVpZ2h0KTsKKyAgICBjdHguc3Ryb2tl
KCk7CisgICAgY3R4LmZvbnQgPSBmb250U2V0dGluZ3M7CisgICAgdmFyIHRlc3RWZWN0b3JMZW5n
dGggPSB0ZXN0VmVjdG9yLmxlbmd0aDsKKyAgICB2YXIgaSA9IDA7CisgICAgZm9yICg7IGkgPCB0
ZXN0VmVjdG9yLmxlbmd0aDsgKytpKSB7CisgICAgICAgIGhlaWdodCArPSAyMDsKKyAgICAgICAg
Y3R4LmRpcmVjdGlvbiA9IHRlc3RWZWN0b3JbaV0uZGlyZWN0aW9uOworICAgICAgICBjdHguZmls
bFRleHQodGVzdFZlY3RvcltpXS50ZXh0LCB3aWR0aCwgaGVpZ2h0KTsKKyAgICAgICAgaWYgKGkg
IT0gdGVzdFZlY3Rvckxlbmd0aCAtIDEpCisgICAgICAgICAgICBjdHguc2F2ZSgpOworICAgIH0K
KyAgICB2YXIgdmFsaWREaXJlY3Rpb25Db3VudCA9IDA7CisgICAgZm9yICgtLWk7IGkgPiAwOyAt
LWkpIHsKKyAgICAgICAgY3R4LnJlc3RvcmUoKTsKKyAgICAgICAgaWYgKGN0eC5kaXJlY3Rpb24g
PT0gdGVzdFZlY3RvcltpIC0gMV0uZGlyZWN0aW9uKQorICAgICAgICAgICAgdmFsaWREaXJlY3Rp
b25Db3VudCsrOworICAgIH0KKyAgICByZXN1bHRFbGVtZW50LnRleHRDb250ZW50ID0gdmFsaWRE
aXJlY3Rpb25Db3VudCA9PSB0ZXN0VmVjdG9yTGVuZ3RoIC0gMSA/ICdQQVNTJyA6ICdGQUlMJzsK
KyAgICByZXN1bHRFbGVtZW50LmNsYXNzTmFtZSA9IHZhbGlkRGlyZWN0aW9uQ291bnQgPT0gdGVz
dFZlY3Rvckxlbmd0aCAtIDEgPyAncGFzcycgOiAnZmFpbCc7Cit9CisKIGZ1bmN0aW9uIHZlcmlm
eUludmFsaWREaXJlY3Rpb24oZGlyZWN0aW9uKQogewogICAgIHZhciBjdHggPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdjYW52YXMnKS5nZXRDb250ZXh0KCcyZCcpOwpAQCAtMTQ0LDYgKzIwNywx
OCBAQCB2ZXJpZnlEcmF3VGV4dFdpdGhTcGVjaWZpZWREaXJlY3Rpb24oJ2NhbnZhczYnLCAncmVz
dWx0NicsICdSaWdodC10by1MZWZ0IHRleHQnLAogdmVyaWZ5RGlyZWN0aW9uQWZ0ZXJSZXNldCgn
Y2FudmFzNycsICdSaWdodC10by1MZWZ0JywgJ3J0bCcsICdsdHInKTsKIHZlcmlmeURpcmVjdGlv
bkFmdGVyUmVzZXQoJ2NhbnZhczgnLCAnUmlnaHQtdG8tTGVmdCcsICdsdHInLCAncnRsJyk7CiAK
K3ZlcmlmeURpcmVjdGlvbkFmdGVyQXR0cmlidXRlQ2hhbmdlKCdjYW52YXM5JywgJ3Jlc3VsdDkn
LCAnUmlnaHQtdG8tTGVmdCB0ZXh0JywgJ3J0bCcsIHRydWUpOwordmVyaWZ5RGlyZWN0aW9uQWZ0
ZXJBdHRyaWJ1dGVDaGFuZ2UoJ2NhbnZhczEwJywgJ3Jlc3VsdDEwJywgJ0xlZnQtdG8tUmlnaHQg
dGV4dCcsICdsdHInLCBmYWxzZSk7CisKK3ZlcmlmeURpcmVjdGlvbkFjcm9zc1NhdmVSZXN0b3Jl
cygnY2FudmFzMTEnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZXN1bHQx
MScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3sgdGV4dDogJ0xlZnQtdG8t
UmlnaHQgdGV4dCcsIGRpcmVjdGlvbjogJ2x0cicgfSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgeyB0ZXh0OiAnUmlnaHQtdG8tTGVmdCB0ZXh0JywgZGlyZWN0aW9uOiAncnRs
JyB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHRleHQ6ICdSaWdodC10
by1MZWZ0IHRleHQnLCBkaXJlY3Rpb246ICdydGwnIH0sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHsgdGV4dDogJ0xlZnQtdG8tUmlnaHQgdGV4dCcsIGRpcmVjdGlvbjogJ2x0
cicgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB0ZXh0OiAnUmlnaHQt
dG8tTGVmdCB0ZXh0JywgZGlyZWN0aW9uOiAncnRsJyB9LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB7IHRleHQ6ICdSaWdodC10by1MZWZ0IHRleHQnLCBkaXJlY3Rpb246ICdy
dGwnIH1dKTsKKwogdmVyaWZ5SW52YWxpZERpcmVjdGlvbignUlRMJyk7CiB2ZXJpZnlJbnZhbGlk
RGlyZWN0aW9uKCdMVFInKTsKIHZlcmlmeUludmFsaWREaXJlY3Rpb24oJ0lOSEVSSVQnKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236926</attachid>
            <date>2014-08-21 07:55:44 -0700</date>
            <delta_ts>2014-08-21 22:30:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136098-20140821202533.patch</filename>
            <type>text/plain</type>
            <size>13554</size>
            <attacher name="Vivek Galatage">vivekg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcyODI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDRmY2NkZjJjNGQ2NTdj
YWEwMDFhNzFlYzk3YjEwODU3YmJlOTQ1MC4uYWVhZjBjZDg2N2Q4NTFjYWFjNzI4MjIyYTRiZDY0
YTk1MTk1NzVhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE0LTA4LTIxICBWaXZl
ayBHYWxhdGFnZSAgPHZpdmVrLnZnQHNhbXN1bmcuY29tPgorCisgICAgICAgIENhbnZhcyBkaXJl
Y3Rpb24gc2hvdWxkIHJlZmxlY3QgY2hhbmdlIGluIGRpciBhdHRyaWJ1dGUgYW5kIGFsc28gYWNy
b3NzIHNhdmUvcmVzdG9yZSBvcGVyYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMzYwOTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBDaGFuZ2VkIFN0YXRlLm1fZGlyZWN0aW9uIHR5cGUgZnJvbSBU
ZXh0RGlyZWN0aW9uIHRvIERpcmVjdGlvbiBlbnVtIHRvIGFjY29tb2RhdGUgRGlyZWN0aW9uSW5o
ZXJpdAorICAgICAgICBhcyBhIHNlcGFyYXRlIHZhbHVlLiBNb2RpZmllZCB0aGUgZ2V0dGVyIHRv
IGNvbXB1dGUgdGhlICdsaXZlJyB2YWx1ZSBmb3IgdGhlIGRpcmVjdGlvbiBhdHRyaWJ1dGUuCisg
ICAgICAgIFJlbW92ZWQgZXhwbGljaXQgcGFzc2luZyBvZiBkaXJlY3Rpb24gdG8gQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEOjpTdGF0ZSBjb25zdHJ1Y3Rvci4KKworICAgICAgICBVcGRhdGVkIGV4
aXN0aW5nIGNhbnZhcy1kaXJlY3Rpb24uaHRtbCB3aXRoIGFkZGl0aW9uYWwgY2FzZXMgdG8gcmVm
bGVjdCB0aGlzIGNoYW5nZS4KKworICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQ6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCk6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQ6OnJlc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRDo6U3RhdGU6OlN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRDo6ZGlyZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRDo6c2V0RGlyZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRDo6ZHJhd1RleHRJbnRlcm5hbCk6CisgICAgICAgICogaHRtbC9j
YW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmg6CisKIDIwMTQtMDgtMjEgIFbDrWN0b3Ig
TWFudWVsIErDoXF1ZXogTGVhbCAgPHZqYXF1ZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RL
XSBXZWJraXRXZWJQcm9jZXNzIGNyYXNoaW5nIG5hdmlnYXRpbmcgYXdheSBmcm9tIG9nZyB2aWRl
byBlbGVtZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJELmNwcAppbmRleCAzZmMzNGVkNmM5MGY1ZWQ3ZjFmYWNiMDE0MjNl
YWI4NjAxZDA2NTU4Li5hZGYyZTRiMTY3ZjI0ZmI5ZWE0MTc3OTAxZmQ1ZmM2NWY4ODcwNWYxIDEw
MDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRC5jcHAKQEAgLTEyMCw3ICsxMjAsNiBAQCBDYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQ6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRChIVE1MQ2FudmFzRWxlbWVudCogY2FudmFzLCBi
bwogICAgICwgbV91c2VzRGFzaGJvYXJkQ29tcGF0aWJpbGl0eU1vZGUodXNlc0Rhc2hib2FyZENv
bXBhdGliaWxpdHlNb2RlKQogI2VuZGlmCiB7Ci0gICAgbV9zdGF0ZVN0YWNrLmZpcnN0KCkubV9k
aXJlY3Rpb24gPSBpbmhlcml0ZWREaXJlY3Rpb24oKmNhbnZhcyk7CiAjaWYgIUVOQUJMRShEQVNI
Qk9BUkRfU1VQUE9SVCkKICAgICBBU1NFUlRfVU5VU0VEKHVzZXNEYXNoYm9hcmRDb21wYXRpYmls
aXR5TW9kZSwgIXVzZXNEYXNoYm9hcmRDb21wYXRpYmlsaXR5TW9kZSk7CiAjZW5kaWYKQEAgLTE2
MiwxMiArMTYxLDEyIEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpyZXNldCgpCiB7
CiAgICAgdW53aW5kU3RhdGVTdGFjaygpOwogICAgIG1fc3RhdGVTdGFjay5yZXNpemUoMSk7Ci0g
ICAgbV9zdGF0ZVN0YWNrLmZpcnN0KCkgPSBTdGF0ZShpbmhlcml0ZWREaXJlY3Rpb24oKmNhbnZh
cygpKSk7CisgICAgbV9zdGF0ZVN0YWNrLmZpcnN0KCkgPSBTdGF0ZSgpOwogICAgIG1fcGF0aC5j
bGVhcigpOwogICAgIG1fdW5yZWFsaXplZFNhdmVDb3VudCA9IDA7CiB9CiAKLUNhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRDo6U3RhdGU6OlN0YXRlKFRleHREaXJlY3Rpb24gZGlyZWN0aW9uKQorQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJEOjpTdGF0ZTo6U3RhdGUoKQogICAgIDogbV9zdHJva2VTdHls
ZShDb2xvcjo6YmxhY2spCiAgICAgLCBtX2ZpbGxTdHlsZShDb2xvcjo6YmxhY2spCiAgICAgLCBt
X2xpbmVXaWR0aCgxKQpAQCAtMTg0LDcgKzE4Myw3IEBAIENhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RDo6U3RhdGU6OlN0YXRlKFRleHREaXJlY3Rpb24gZGlyZWN0aW9uKQogICAgICwgbV9pbWFnZVNt
b290aGluZ0VuYWJsZWQodHJ1ZSkKICAgICAsIG1fdGV4dEFsaWduKFN0YXJ0VGV4dEFsaWduKQog
ICAgICwgbV90ZXh0QmFzZWxpbmUoQWxwaGFiZXRpY1RleHRCYXNlbGluZSkKLSAgICAsIG1fZGly
ZWN0aW9uKGRpcmVjdGlvbikKKyAgICAsIG1fZGlyZWN0aW9uKERpcmVjdGlvbkluaGVyaXQpCiAg
ICAgLCBtX3VucGFyc2VkRm9udChkZWZhdWx0Rm9udCkKICAgICAsIG1fcmVhbGl6ZWRGb250KGZh
bHNlKQogewpAQCAtMjE2NSwxOCArMjE2NCwzMyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRDo6c2V0VGV4dEJhc2VsaW5lKGNvbnN0IFN0cmluZyYgcykKIAogU3RyaW5nIENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRDo6ZGlyZWN0aW9uKCkgY29uc3QKIHsKLSAgICByZXR1cm4gc3RhdGUo
KS5tX2RpcmVjdGlvbiA9PSBSVEwgPyBBU0NJSUxpdGVyYWwoInJ0bCIpIDogQVNDSUlMaXRlcmFs
KCJsdHIiKTsKKyAgICBUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbjsKKyAgICBzd2l0Y2ggKHN0YXRl
KCkubV9kaXJlY3Rpb24pIHsKKyAgICBjYXNlIERpcmVjdGlvbkluaGVyaXQ6CisgICAgICAgIGRp
cmVjdGlvbiA9IGluaGVyaXRlZERpcmVjdGlvbigqY2FudmFzKCkpOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIERpcmVjdGlvblJUTDoKKyAgICAgICAgZGlyZWN0aW9uID0gUlRMOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIERpcmVjdGlvbkxUUjoKKyAgICAgICAgZGlyZWN0aW9uID0gTFRS
OworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHJldHVybiBkaXJlY3Rpb24gPT0gUlRM
ID8gQVNDSUlMaXRlcmFsKCJydGwiKSA6IEFTQ0lJTGl0ZXJhbCgibHRyIik7CiB9CiAKIHZvaWQg
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpzZXREaXJlY3Rpb24oY29uc3QgU3RyaW5nJiBkaXJl
Y3Rpb25TdHJpbmcpCiB7Ci0gICAgVGV4dERpcmVjdGlvbiBkaXJlY3Rpb247CisgICAgRGlyZWN0
aW9uIGRpcmVjdGlvbjsKICAgICBpZiAoZGlyZWN0aW9uU3RyaW5nID09ICJpbmhlcml0IikKLSAg
ICAgICAgZGlyZWN0aW9uID0gaW5oZXJpdGVkRGlyZWN0aW9uKCpjYW52YXMoKSk7CisgICAgICAg
IGRpcmVjdGlvbiA9IERpcmVjdGlvbkluaGVyaXQ7CiAgICAgZWxzZSBpZiAoZGlyZWN0aW9uU3Ry
aW5nID09ICJydGwiKQotICAgICAgICBkaXJlY3Rpb24gPSBSVEw7CisgICAgICAgIGRpcmVjdGlv
biA9IERpcmVjdGlvblJUTDsKICAgICBlbHNlIGlmIChkaXJlY3Rpb25TdHJpbmcgPT0gImx0ciIp
Ci0gICAgICAgIGRpcmVjdGlvbiA9IExUUjsKKyAgICAgICAgZGlyZWN0aW9uID0gRGlyZWN0aW9u
TFRSOwogICAgIGVsc2UKICAgICAgICAgcmV0dXJuOwogCkBAIC0yMjgzLDExICsyMjk3LDI4IEBA
IHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpkcmF3VGV4dEludGVybmFsKGNvbnN0IFN0
cmluZyYgdGV4dCwgZmxvYXQgeCwgZmxvCiAKICAgICAvLyBGSVhNRTogTmVlZCB0byB0dXJuIG9m
ZiBmb250IHNtb290aGluZy4KIAorICAgIGlmIChzdGF0ZSgpLm1fZGlyZWN0aW9uID09IERpcmVj
dGlvbkluaGVyaXQpCisgICAgICAgIGNhbnZhcygpLT5kb2N1bWVudCgpLnVwZGF0ZVN0eWxlSWZO
ZWVkZWQoKTsKICAgICBSZW5kZXJTdHlsZSogY29tcHV0ZWRTdHlsZSA9IGNhbnZhcygpLT5jb21w
dXRlZFN0eWxlKCk7Ci0gICAgYm9vbCBpc1JUTCA9IHN0YXRlKCkubV9kaXJlY3Rpb24gPT0gUlRM
OworICAgIFRleHREaXJlY3Rpb24gZGlyZWN0aW9uOworICAgIHN3aXRjaCAoc3RhdGUoKS5tX2Rp
cmVjdGlvbikgeworICAgIGNhc2UgRGlyZWN0aW9uSW5oZXJpdDoKKyAgICAgICAgZGlyZWN0aW9u
ID0gY29tcHV0ZWRTdHlsZSA/IGNvbXB1dGVkU3R5bGUtPmRpcmVjdGlvbigpIDogTFRSOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIERpcmVjdGlvblJUTDoKKyAgICAgICAgZGlyZWN0aW9uID0g
UlRMOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERpcmVjdGlvbkxUUjoKKyAgICAgICAgZGly
ZWN0aW9uID0gTFRSOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGJvb2wgaXNSVEwg
PSBkaXJlY3Rpb24gPT0gUlRMOwogICAgIGJvb2wgb3ZlcnJpZGUgPSBjb21wdXRlZFN0eWxlID8g
aXNPdmVycmlkZShjb21wdXRlZFN0eWxlLT51bmljb2RlQmlkaSgpKSA6IGZhbHNlOwogCi0gICAg
VGV4dFJ1biB0ZXh0UnVuKG5vcm1hbGl6ZWRUZXh0LCAwLCAwLCBUZXh0UnVuOjpBbGxvd1RyYWls
aW5nRXhwYW5zaW9uLCBzdGF0ZSgpLm1fZGlyZWN0aW9uLCBvdmVycmlkZSwgdHJ1ZSwgVGV4dFJ1
bjo6Tm9Sb3VuZGluZyk7CisgICAgVGV4dFJ1biB0ZXh0UnVuKG5vcm1hbGl6ZWRUZXh0LCAwLCAw
LCBUZXh0UnVuOjpBbGxvd1RyYWlsaW5nRXhwYW5zaW9uLCBkaXJlY3Rpb24sIG92ZXJyaWRlLCB0
cnVlLCBUZXh0UnVuOjpOb1JvdW5kaW5nKTsKICAgICAvLyBEcmF3IHRoZSBpdGVtIHRleHQgYXQg
dGhlIGNvcnJlY3QgcG9pbnQuCiAgICAgRmxvYXRQb2ludCBsb2NhdGlvbih4LCB5KTsKICAgICBz
d2l0Y2ggKHN0YXRlKCkubV90ZXh0QmFzZWxpbmUpIHsKQEAgLTIzMDgsNyArMjMzOSw3IEBAIHZv
aWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpkcmF3VGV4dEludGVybmFsKGNvbnN0IFN0cmlu
ZyYgdGV4dCwgZmxvYXQgeCwgZmxvCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIGZsb2F0
IGZvbnRXaWR0aCA9IGZvbnQud2lkdGgoVGV4dFJ1bihub3JtYWxpemVkVGV4dCwgMCwgMCwgVGV4
dFJ1bjo6QWxsb3dUcmFpbGluZ0V4cGFuc2lvbiwgc3RhdGUoKS5tX2RpcmVjdGlvbiwgb3ZlcnJp
ZGUpKTsKKyAgICBmbG9hdCBmb250V2lkdGggPSBmb250LndpZHRoKFRleHRSdW4obm9ybWFsaXpl
ZFRleHQsIDAsIDAsIFRleHRSdW46OkFsbG93VHJhaWxpbmdFeHBhbnNpb24sIGRpcmVjdGlvbiwg
b3ZlcnJpZGUpKTsKIAogICAgIHVzZU1heFdpZHRoID0gKHVzZU1heFdpZHRoICYmIG1heFdpZHRo
IDwgZm9udFdpZHRoKTsKICAgICBmbG9hdCB3aWR0aCA9IHVzZU1heFdpZHRoID8gbWF4V2lkdGgg
OiBmb250V2lkdGg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRC5oCmluZGV4IGFkYjk2ZTc3YmY4YWVlMTE5N2RmNmU1OTE2YzUy
YmM1Mjk1MDlhMGEuLjVkY2M1ZDdlZTYzZTM3MjY1MWNhZDJhNjcwNDRmZWJlZDg0NWQ5MWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRC5oCkBAIC0yMjgsOCArMjI4LDE0IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFdlYmtp
dEltYWdlU21vb3RoaW5nRW5hYmxlZChib29sKTsKIAogcHJpdmF0ZToKKyAgICBlbnVtIERpcmVj
dGlvbiB7CisgICAgICAgIERpcmVjdGlvbkluaGVyaXQgPSAtMSwKKyAgICAgICAgRGlyZWN0aW9u
UlRMLAorICAgICAgICBEaXJlY3Rpb25MVFIKKyAgICB9OworCiAgICAgc3RydWN0IFN0YXRlIDog
Rm9udFNlbGVjdG9yQ2xpZW50IHsKLSAgICAgICAgZXhwbGljaXQgU3RhdGUoVGV4dERpcmVjdGlv
biA9IExUUik7CisgICAgICAgIFN0YXRlKCk7CiAgICAgICAgIHZpcnR1YWwgflN0YXRlKCk7CiAK
ICAgICAgICAgU3RhdGUoY29uc3QgU3RhdGUmKTsKQEAgLTI2MCw3ICsyNjYsNyBAQCBwcml2YXRl
OgogICAgICAgICAvLyBUZXh0IHN0YXRlLgogICAgICAgICBUZXh0QWxpZ24gbV90ZXh0QWxpZ247
CiAgICAgICAgIFRleHRCYXNlbGluZSBtX3RleHRCYXNlbGluZTsKLSAgICAgICAgVGV4dERpcmVj
dGlvbiBtX2RpcmVjdGlvbjsKKyAgICAgICAgRGlyZWN0aW9uIG1fZGlyZWN0aW9uOwogCiAgICAg
ICAgIFN0cmluZyBtX3VucGFyc2VkRm9udDsKICAgICAgICAgRm9udCBtX2ZvbnQ7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
Yzc3ZWFlNzkzZmU1YmFkNDhhYTAwZjMzZTlhMjliODRkYTZmMTg1YS4uZGMzYTQxZmVmNmU1MWJl
ODNiNjc5MDlkMjMwZWQxMGEwZTU0ZDExZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE0LTA4
LTIxICBWaXZlayBHYWxhdGFnZSAgPHZpdmVrLnZnQHNhbXN1bmcuY29tPgorCisgICAgICAgIENh
bnZhcyBkaXJlY3Rpb24gc2hvdWxkIHJlZmxlY3QgY2hhbmdlIGluIGRpciBhdHRyaWJ1dGUgYW5k
IGFsc28gYWNyb3NzIHNhdmUvcmVzdG9yZSBvcGVyYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzYwOTgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvY2FudmFzL2NhbnZhcy1kaXJlY3Rp
b24tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvY2FudmFzL2NhbnZhcy1kaXJlY3Rpb24u
aHRtbDoKKwogMjAxNC0wOC0yMSAgVsOtY3RvciBNYW51ZWwgSsOhcXVleiBMZWFsICA8dmphcXVl
ekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFdlYmtpdFdlYlByb2Nlc3MgY3Jhc2hpbmcg
bmF2aWdhdGluZyBhd2F5IGZyb20gb2dnIHZpZGVvIGVsZW1lbnQKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1kaXJlY3Rpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWRpcmVjdGlvbi1leHBlY3RlZC50eHQKaW5kZXggMGMx
NDEyZGIwNzMyNGU2ZDIwZmY0NTMyM2Q0ZjNlYzU4OThjNzY4NS4uMWM1M2RmYzE4YWE3ZTMwM2I3
ZGMxMDVhZGQyOTQ2ODg0OTQxOTgyMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52
YXMvY2FudmFzLWRpcmVjdGlvbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9j
YW52YXMvY2FudmFzLWRpcmVjdGlvbi1leHBlY3RlZC50eHQKQEAgLTUsNiArNSw5IEBAIFRlc3Rz
IHRoYXQgY29udGV4dC5kaXJlY3Rpb24gaXMgb3ZlcnJpZGRlbiBieSAncnRsJyB3aXRoIHBhcmVu
dCBlbGVtZW50IGhhdmluZyB1CiBUZXN0cyB0aGF0IGNvbnRleHQuZGlyZWN0aW9uIGlzIG92ZXJy
aWRkZW4gYnkgJ2x0cicgd2l0aCBwYXJlbnQgZWxlbWVudCBoYXZpbmcgZGlyZWN0aW9uIGFzIHJ0
bDogUEFTUwogVGVzdHMgdGhhdCBjb250ZXh0LmRpcmVjdGlvbiBpcyBvdmVycmlkZGVuIGJ5ICdp
bmhlcml0JyB3aXRoIHBhcmVudCBlbGVtZW50IGhhdmluZyB1bnNwZWNpZmllZCBkaXJlY3Rpb246
IFBBU1MKIFRlc3RzIHRoYXQgY29udGV4dC5kaXJlY3Rpb24gaXMgb3ZlcnJpZGRlbiBieSAnaW5o
ZXJpdCcgd2l0aCBwYXJlbnQgZWxlbWVudCBoYXZpbmcgZGlyZWN0aW9uIGFzIHJ0bDogUEFTUwor
VGVzdHMgdGhhdCBjaGFuZ2UgaW4gZWxlbWVudCdzIGRpciBhdHRyaWJ1dGUgaXMgcmVmbGVjdGVk
IGluIGNvbnRleHQuZGlyZWN0aW9uIGFzIHJ0bDogUEFTUworVGVzdHMgdGhhdCBjaGFuZ2UgaW4g
ZWxlbWVudCdzIGRpciBhdHRyaWJ1dGUgaXMgcmVmbGVjdGVkIGluIGNvbnRleHQuZGlyZWN0aW9u
IGFzIGx0cjogUEFTUworVGVzdHMgdGhhdCBjb250ZXh0LmRpcmVjdGlvbiByZWZsZWN0cyB0aGUg
dmFsaWQgZGlyZWN0aW9uIGFmdGVyIHNhdmUvcmVzdG9yZSBjb250ZXh0IG9wZXJhdGlvbnM6IFBB
U1MKIFRlc3RzIHRoYXQgY29udGV4dC5yZXNldCgpIHNldHMgdGhlIGNvbnRleHQuZGlyZWN0aW9u
IHRvIGx0cjogUEFTUwogVGVzdHMgdGhhdCBjb250ZXh0LnJlc2V0KCkgc2V0cyB0aGUgY29udGV4
dC5kaXJlY3Rpb24gdG8gcnRsOiBQQVNTCiBUZXN0cyB0aGF0IGludmFsaWQgZGlyZWN0aW9uIHZh
bHVlIFJUTCBoYXMgbm8gZWZmZWN0IG9uIHRoZSBjb250ZXh0LmRpcmVjdGlvbjogUEFTUwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWRpcmVjdGlvbi5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWRpcmVjdGlvbi5odG1sCmluZGV4IGI3ZTQ5
NzQ1ODVjMjdhYTc5YjhhNGZhZGVmOTUwNzM1NDg0Njk0MTguLmJmNTc2YjJjMjJjNDEzMjY0MTEy
MDJjMjkxOWZmODg1NDk1MTY2MjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFz
L2NhbnZhcy1kaXJlY3Rpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52
YXMtZGlyZWN0aW9uLmh0bWwKQEAgLTQ2LDYgKzQ2LDE4IEBACiA8c3Bhbj5UZXN0cyB0aGF0IGNv
bnRleHQucmVzZXQgc2V0cyB0aGUgZGlyZWN0aW9uIGFzIHJ0bDxzcGFuIGlkPSJyZXN1bHQ4Ij48
L3NwYW4+PC9zcGFuPjxicj4KIDxjYW52YXMgaWQ9ImNhbnZhczgiIHdpZHRoPTQwMCBoZWlnaHQ9
MjAgc3R5bGU9ImJvcmRlcjoxcHggc29saWQgYmxhY2siPjwvY2FudmFzPgogPC9kaXY+Cis8ZGl2
PgorPHNwYW4+VGVzdHMgdGhhdCBjaGFuZ2UgaW4gZWxlbWVudCdzIGRpciBhdHRyaWJ1dGUgaXMg
cmVmbGVjdGVkIGluIGNvbnRleHQuZGlyZWN0aW9uIGFzIHJ0bDogPHNwYW4gaWQ9InJlc3VsdDki
Pjwvc3Bhbj48L3NwYW4+PGJyPgorPGNhbnZhcyBpZD0iY2FudmFzOSIgd2lkdGg9NDAwIGhlaWdo
dD0yMCBzdHlsZT0iYm9yZGVyOjFweCBzb2xpZCBibGFjayI+PC9jYW52YXM+Cis8L2Rpdj4KKzxk
aXYgZGlyPSJydGwiPgorPHNwYW4+VGVzdHMgdGhhdCBjaGFuZ2UgaW4gZWxlbWVudCdzIGRpciBh
dHRyaWJ1dGUgaXMgcmVmbGVjdGVkIGluIGNvbnRleHQuZGlyZWN0aW9uIGFzIGx0cjogPHNwYW4g
aWQ9InJlc3VsdDEwIj48L3NwYW4+PC9zcGFuPjxicj4KKzxjYW52YXMgaWQ9ImNhbnZhczEwIiB3
aWR0aD00MDAgaGVpZ2h0PTIwIHN0eWxlPSJib3JkZXI6MXB4IHNvbGlkIGJsYWNrIj48L2NhbnZh
cz4KKzwvZGl2PgorPGRpdj4KKzxzcGFuPlRlc3RzIHRoYXQgY29udGV4dC5kaXJlY3Rpb24gcmVm
bGVjdHMgdGhlIHZhbGlkIGRpcmVjdGlvbiBhZnRlciBzYXZlL3Jlc3RvcmUgY29udGV4dCBvcGVy
YXRpb25zOiA8c3BhbiBpZD0icmVzdWx0MTEiPjwvc3Bhbj48L3NwYW4+PGJyPgorPGNhbnZhcyBp
ZD0iY2FudmFzMTEiIHN0eWxlPSJib3JkZXI6MXB4IHNvbGlkIGJsYWNrIj48L2NhbnZhcz4KKzwv
ZGl2PgogPGRpdiBpZD0icmVzdWx0cyI+CiA8L2Rpdj4KIDxzY3JpcHQ+CkBAIC0xMjMsNiArMTM1
LDU3IEBAIGZ1bmN0aW9uIHZlcmlmeURpcmVjdGlvbkFmdGVyUmVzZXQoY2FudmFzSWQsIHRleHQs
IGRpcmVjdGlvbiwgZXhwZWN0ZWREaXJlY3Rpb24pCiAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVD
aGlsZChjYW52YXNFbGVtZW50LnBhcmVudEVsZW1lbnQpOwogfQogCitmdW5jdGlvbiB2ZXJpZnlE
aXJlY3Rpb25BZnRlckF0dHJpYnV0ZUNoYW5nZShjYW52YXNJZCwgcmVzdWx0SWQsIHRleHQsIG5l
d0RpcmVjdGlvbiwgZm9yUGFyZW50RWxlbWVudCkKK3sKKyAgICB2YXIgY2FudmFzRWxlbWVudCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGNhbnZhc0lkKTsKKyAgICB2YXIgcmVzdWx0RWxlbWVu
dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHJlc3VsdElkKTsKKyAgICB2YXIgY3R4ID0gY2Fu
dmFzRWxlbWVudC5nZXRDb250ZXh0KCcyZCcpOworICAgIHZhciB3aWR0aCA9IGNhbnZhc0VsZW1l
bnQud2lkdGgvMjsKKyAgICB2YXIgaGVpZ2h0ID0gY2FudmFzRWxlbWVudC5oZWlnaHQ7CisKKyAg
ICBpZiAoZm9yUGFyZW50RWxlbWVudCkKKyAgICAgICAgY2FudmFzRWxlbWVudC5wYXJlbnRFbGVt
ZW50LmRpciA9IG5ld0RpcmVjdGlvbjsKKyAgICBlbHNlCisgICAgICAgIGNhbnZhc0VsZW1lbnQu
ZGlyID0gbmV3RGlyZWN0aW9uOworICAgIHJlc3VsdEVsZW1lbnQudGV4dENvbnRlbnQgPSBjdHgu
ZGlyZWN0aW9uID09IG5ld0RpcmVjdGlvbiA/ICdQQVNTJyA6ICdGQUlMJzsKKyAgICByZXN1bHRF
bGVtZW50LmNsYXNzTmFtZSA9IGN0eC5kaXJlY3Rpb24gPT0gbmV3RGlyZWN0aW9uID8gJ3Bhc3Mn
IDogJ2ZhaWwnOworICAgIGN0eC5tb3ZlVG8od2lkdGgsIDApOworICAgIGN0eC5saW5lVG8od2lk
dGgsIGhlaWdodCk7CisgICAgY3R4LnN0cm9rZSgpOworICAgIGN0eC5mb250ID0gZm9udFNldHRp
bmdzOworICAgIGN0eC5maWxsVGV4dCh0ZXh0LCB3aWR0aCwgaGVpZ2h0LzIpOworfQorCitmdW5j
dGlvbiB2ZXJpZnlEaXJlY3Rpb25BY3Jvc3NTYXZlUmVzdG9yZXMoY2FudmFzSWQsIHJlc3VsdElk
LCB0ZXN0VmVjdG9yKQoreworICAgIHZhciBjYW52YXNFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoY2FudmFzSWQpOworICAgIHZhciByZXN1bHRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQocmVzdWx0SWQpOworICAgIHZhciBjdHggPSBjYW52YXNFbGVtZW50LmdldENv
bnRleHQoJzJkJyk7CisgICAgdmFyIHdpZHRoID0gY2FudmFzRWxlbWVudC53aWR0aC8yOworICAg
IHZhciBoZWlnaHQgPSAwOworICAgIGN0eC5tb3ZlVG8od2lkdGgsIDApOworICAgIGN0eC5saW5l
VG8od2lkdGgsIGNhbnZhc0VsZW1lbnQuaGVpZ2h0KTsKKyAgICBjdHguc3Ryb2tlKCk7CisgICAg
Y3R4LmZvbnQgPSBmb250U2V0dGluZ3M7CisgICAgdmFyIHRlc3RWZWN0b3JMZW5ndGggPSB0ZXN0
VmVjdG9yLmxlbmd0aDsKKyAgICB2YXIgaSA9IDA7CisgICAgZm9yICg7IGkgPCB0ZXN0VmVjdG9y
Lmxlbmd0aDsgKytpKSB7CisgICAgICAgIGhlaWdodCArPSAyMDsKKyAgICAgICAgY3R4LmRpcmVj
dGlvbiA9IHRlc3RWZWN0b3JbaV0uZGlyZWN0aW9uOworICAgICAgICBjdHguZmlsbFRleHQodGVz
dFZlY3RvcltpXS50ZXh0LCB3aWR0aCwgaGVpZ2h0KTsKKyAgICAgICAgaWYgKGkgIT0gdGVzdFZl
Y3Rvckxlbmd0aCAtIDEpCisgICAgICAgICAgICBjdHguc2F2ZSgpOworICAgIH0KKyAgICB2YXIg
dmFsaWREaXJlY3Rpb25Db3VudCA9IDA7CisgICAgZm9yICgtLWk7IGkgPiAwOyAtLWkpIHsKKyAg
ICAgICAgY3R4LnJlc3RvcmUoKTsKKyAgICAgICAgaWYgKGN0eC5kaXJlY3Rpb24gPT0gdGVzdFZl
Y3RvcltpIC0gMV0uZGlyZWN0aW9uKQorICAgICAgICAgICAgdmFsaWREaXJlY3Rpb25Db3VudCsr
OworICAgIH0KKyAgICByZXN1bHRFbGVtZW50LnRleHRDb250ZW50ID0gdmFsaWREaXJlY3Rpb25D
b3VudCA9PSB0ZXN0VmVjdG9yTGVuZ3RoIC0gMSA/ICdQQVNTJyA6ICdGQUlMJzsKKyAgICByZXN1
bHRFbGVtZW50LmNsYXNzTmFtZSA9IHZhbGlkRGlyZWN0aW9uQ291bnQgPT0gdGVzdFZlY3Rvckxl
bmd0aCAtIDEgPyAncGFzcycgOiAnZmFpbCc7Cit9CisKIGZ1bmN0aW9uIHZlcmlmeUludmFsaWRE
aXJlY3Rpb24oZGlyZWN0aW9uKQogewogICAgIHZhciBjdHggPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdjYW52YXMnKS5nZXRDb250ZXh0KCcyZCcpOwpAQCAtMTQ0LDYgKzIwNywxOCBAQCB2ZXJp
ZnlEcmF3VGV4dFdpdGhTcGVjaWZpZWREaXJlY3Rpb24oJ2NhbnZhczYnLCAncmVzdWx0NicsICdS
aWdodC10by1MZWZ0IHRleHQnLAogdmVyaWZ5RGlyZWN0aW9uQWZ0ZXJSZXNldCgnY2FudmFzNycs
ICdSaWdodC10by1MZWZ0JywgJ3J0bCcsICdsdHInKTsKIHZlcmlmeURpcmVjdGlvbkFmdGVyUmVz
ZXQoJ2NhbnZhczgnLCAnUmlnaHQtdG8tTGVmdCcsICdsdHInLCAncnRsJyk7CiAKK3ZlcmlmeURp
cmVjdGlvbkFmdGVyQXR0cmlidXRlQ2hhbmdlKCdjYW52YXM5JywgJ3Jlc3VsdDknLCAnUmlnaHQt
dG8tTGVmdCB0ZXh0JywgJ3J0bCcsIHRydWUpOwordmVyaWZ5RGlyZWN0aW9uQWZ0ZXJBdHRyaWJ1
dGVDaGFuZ2UoJ2NhbnZhczEwJywgJ3Jlc3VsdDEwJywgJ0xlZnQtdG8tUmlnaHQgdGV4dCcsICds
dHInLCBmYWxzZSk7CisKK3ZlcmlmeURpcmVjdGlvbkFjcm9zc1NhdmVSZXN0b3JlcygnY2FudmFz
MTEnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZXN1bHQxMScsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3sgdGV4dDogJ0xlZnQtdG8tUmlnaHQgdGV4
dCcsIGRpcmVjdGlvbjogJ2x0cicgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgeyB0ZXh0OiAnUmlnaHQtdG8tTGVmdCB0ZXh0JywgZGlyZWN0aW9uOiAncnRsJyB9LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHRleHQ6ICdSaWdodC10by1MZWZ0IHRl
eHQnLCBkaXJlY3Rpb246ICdydGwnIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHsgdGV4dDogJ0xlZnQtdG8tUmlnaHQgdGV4dCcsIGRpcmVjdGlvbjogJ2x0cicgfSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB0ZXh0OiAnUmlnaHQtdG8tTGVmdCB0
ZXh0JywgZGlyZWN0aW9uOiAncnRsJyB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB7IHRleHQ6ICdSaWdodC10by1MZWZ0IHRleHQnLCBkaXJlY3Rpb246ICdydGwnIH1dKTsK
KwogdmVyaWZ5SW52YWxpZERpcmVjdGlvbignUlRMJyk7CiB2ZXJpZnlJbnZhbGlkRGlyZWN0aW9u
KCdMVFInKTsKIHZlcmlmeUludmFsaWREaXJlY3Rpb24oJ0lOSEVSSVQnKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236966</attachid>
            <date>2014-08-21 22:30:37 -0700</date>
            <delta_ts>2014-08-25 11:57:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136098-20140822110027.patch</filename>
            <type>text/plain</type>
            <size>14402</size>
            <attacher name="Vivek Galatage">vivekg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcyODQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTA2MGQwMzE1OTk2MzNm
YmEzNDFkMDM4NzVhYzJlODcyMGZmNzA2NS4uY2NmMDI3NTQ3NDNlOTA3OGI3Yjc5MDMwYTA2YmNi
ZjBhMjhjOTI2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE0LTA4LTIxICBWaXZl
ayBHYWxhdGFnZSAgPHZpdmVrLnZnQHNhbXN1bmcuY29tPgorCisgICAgICAgIENhbnZhcyBkaXJl
Y3Rpb24gc2hvdWxkIHJlZmxlY3QgY2hhbmdlIGluIGRpciBhdHRyaWJ1dGUgYW5kIGFsc28gYWNy
b3NzIHNhdmUvcmVzdG9yZSBvcGVyYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMzYwOTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBDaGFuZ2VkIFN0YXRlLm1fZGlyZWN0aW9uIHR5cGUgZnJvbSBU
ZXh0RGlyZWN0aW9uIHRvIERpcmVjdGlvbiBlbnVtIHRvIGFjY29tb2RhdGUgJ2luaGVyaXQnCisg
ICAgICAgIGFzIGEgc2VwYXJhdGUgdmFsdWUuIE1vZGlmaWVkIHRoZSBnZXR0ZXIgdG8gY29tcHV0
ZSB0aGUgJ2xpdmUnIHZhbHVlIGZvciB0aGUgZGlyZWN0aW9uIGF0dHJpYnV0ZS4KKyAgICAgICAg
UmVtb3ZlZCBleHBsaWNpdCBwYXNzaW5nIG9mIGRpcmVjdGlvbiB0byBDYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQ6OlN0YXRlIGNvbnN0cnVjdG9yLgorCisgICAgICAgIFVwZGF0ZWQgZXhpc3Rpbmcg
Y2FudmFzLWRpcmVjdGlvbi5odG1sIHdpdGggYWRkaXRpb25hbCBjYXNlcyB0byByZWZsZWN0IHRo
aXMgY2hhbmdlLgorCisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJELmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Q2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJEKToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRDo6cmVzZXQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJEOjpTdGF0ZTo6U3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEOjp0b1RleHREaXJlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEOjpkaXJlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEOjpzZXREaXJlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEOjpkcmF3VGV4dEludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6
OmluaGVyaXRlZERpcmVjdGlvbik6IERlbGV0ZWQuCisgICAgICAgICogaHRtbC9jYW52YXMvQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJELmg6CisKIDIwMTQtMDgtMjEgIFJ5dWFuIENob2kgIDxyeXVh
bi5jaG9pQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgYnVpbGQgZml4IHdoZW4g
UlVCQkVSX0JBTkRJTkcgaXMgbm90IGVuYWJsZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAppbmRleCAzZmMzNGVk
NmM5MGY1ZWQ3ZjFmYWNiMDE0MjNlYWI4NjAxZDA2NTU4Li4wODlkMWQ5ZjQ2NTgyOTEyY2YyNTc3
YTFmMjY2NjJmYmIwNWM3MTA2IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKQEAgLTEwNCwxMyArMTA0LDYgQEAg
cHJpdmF0ZToKICAgICBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQqIG1fY2FudmFzQ29udGV4dDsK
IH07CiAKLXN0YXRpYyBpbmxpbmUgVGV4dERpcmVjdGlvbiBpbmhlcml0ZWREaXJlY3Rpb24oSFRN
TENhbnZhc0VsZW1lbnQmIGNhbnZhc0VsZW1lbnQpCi17Ci0gICAgY2FudmFzRWxlbWVudC5kb2N1
bWVudCgpLnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKLSAgICBSZW5kZXJTdHlsZSogY29tcHV0ZWRT
dHlsZSA9IGNhbnZhc0VsZW1lbnQuY29tcHV0ZWRTdHlsZSgpOwotICAgIHJldHVybiBjb21wdXRl
ZFN0eWxlID8gY29tcHV0ZWRTdHlsZS0+ZGlyZWN0aW9uKCkgOiBMVFI7Ci19Ci0KIENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRDo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKEhUTUxDYW52YXNFbGVt
ZW50KiBjYW52YXMsIGJvb2wgdXNlc0NTU0NvbXBhdGliaWxpdHlQYXJzZU1vZGUsIGJvb2wgdXNl
c0Rhc2hib2FyZENvbXBhdGliaWxpdHlNb2RlKQogICAgIDogQ2FudmFzUmVuZGVyaW5nQ29udGV4
dChjYW52YXMpCiAgICAgLCBtX3N0YXRlU3RhY2soMSkKQEAgLTEyMCw3ICsxMTMsNiBAQCBDYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQ6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRChIVE1MQ2FudmFz
RWxlbWVudCogY2FudmFzLCBibwogICAgICwgbV91c2VzRGFzaGJvYXJkQ29tcGF0aWJpbGl0eU1v
ZGUodXNlc0Rhc2hib2FyZENvbXBhdGliaWxpdHlNb2RlKQogI2VuZGlmCiB7Ci0gICAgbV9zdGF0
ZVN0YWNrLmZpcnN0KCkubV9kaXJlY3Rpb24gPSBpbmhlcml0ZWREaXJlY3Rpb24oKmNhbnZhcyk7
CiAjaWYgIUVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkKICAgICBBU1NFUlRfVU5VU0VEKHVzZXNE
YXNoYm9hcmRDb21wYXRpYmlsaXR5TW9kZSwgIXVzZXNEYXNoYm9hcmRDb21wYXRpYmlsaXR5TW9k
ZSk7CiAjZW5kaWYKQEAgLTE2MiwxMiArMTU0LDEyIEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJEOjpyZXNldCgpCiB7CiAgICAgdW53aW5kU3RhdGVTdGFjaygpOwogICAgIG1fc3RhdGVT
dGFjay5yZXNpemUoMSk7Ci0gICAgbV9zdGF0ZVN0YWNrLmZpcnN0KCkgPSBTdGF0ZShpbmhlcml0
ZWREaXJlY3Rpb24oKmNhbnZhcygpKSk7CisgICAgbV9zdGF0ZVN0YWNrLmZpcnN0KCkgPSBTdGF0
ZSgpOwogICAgIG1fcGF0aC5jbGVhcigpOwogICAgIG1fdW5yZWFsaXplZFNhdmVDb3VudCA9IDA7
CiB9CiAKLUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6U3RhdGU6OlN0YXRlKFRleHREaXJlY3Rp
b24gZGlyZWN0aW9uKQorQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpTdGF0ZTo6U3RhdGUoKQog
ICAgIDogbV9zdHJva2VTdHlsZShDb2xvcjo6YmxhY2spCiAgICAgLCBtX2ZpbGxTdHlsZShDb2xv
cjo6YmxhY2spCiAgICAgLCBtX2xpbmVXaWR0aCgxKQpAQCAtMTg0LDcgKzE3Niw3IEBAIENhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRDo6U3RhdGU6OlN0YXRlKFRleHREaXJlY3Rpb24gZGlyZWN0aW9u
KQogICAgICwgbV9pbWFnZVNtb290aGluZ0VuYWJsZWQodHJ1ZSkKICAgICAsIG1fdGV4dEFsaWdu
KFN0YXJ0VGV4dEFsaWduKQogICAgICwgbV90ZXh0QmFzZWxpbmUoQWxwaGFiZXRpY1RleHRCYXNl
bGluZSkKLSAgICAsIG1fZGlyZWN0aW9uKGRpcmVjdGlvbikKKyAgICAsIG1fZGlyZWN0aW9uKERp
cmVjdGlvbjo6SW5oZXJpdCkKICAgICAsIG1fdW5wYXJzZWRGb250KGRlZmF1bHRGb250KQogICAg
ICwgbV9yZWFsaXplZEZvbnQoZmFsc2UpCiB7CkBAIC0yMTYzLDIwICsyMTU1LDM3IEBAIHZvaWQg
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpzZXRUZXh0QmFzZWxpbmUoY29uc3QgU3RyaW5nJiBz
KQogICAgIG1vZGlmaWFibGVTdGF0ZSgpLm1fdGV4dEJhc2VsaW5lID0gYmFzZWxpbmU7CiB9CiAK
K1RleHREaXJlY3Rpb24gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjp0b1RleHREaXJlY3Rpb24o
RGlyZWN0aW9uIGRpcmVjdGlvbiwgUmVuZGVyU3R5bGUqJiBjb21wdXRlZFN0eWxlKSBjb25zdAor
eworICAgIGNhbnZhcygpLT5kb2N1bWVudCgpLnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKKyAgICBj
b21wdXRlZFN0eWxlID0gY2FudmFzKCktPmNvbXB1dGVkU3R5bGUoKTsKKyAgICBzd2l0Y2ggKGRp
cmVjdGlvbikgeworICAgIGNhc2UgRGlyZWN0aW9uOjpJbmhlcml0OgorICAgICAgICByZXR1cm4g
Y29tcHV0ZWRTdHlsZSA/IGNvbXB1dGVkU3R5bGUtPmRpcmVjdGlvbigpIDogTFRSOworICAgIGNh
c2UgRGlyZWN0aW9uOjpSdGw6CisgICAgICAgIHJldHVybiBSVEw7CisgICAgY2FzZSBEaXJlY3Rp
b246Okx0cjoKKyAgICAgICAgcmV0dXJuIExUUjsKKyAgICB9CisgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgcmV0dXJuIExUUjsKK30KKwogU3RyaW5nIENhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRDo6ZGlyZWN0aW9uKCkgY29uc3QKIHsKLSAgICByZXR1cm4gc3RhdGUoKS5tX2RpcmVjdGlv
biA9PSBSVEwgPyBBU0NJSUxpdGVyYWwoInJ0bCIpIDogQVNDSUlMaXRlcmFsKCJsdHIiKTsKKyAg
ICBSZW5kZXJTdHlsZSogY29tcHV0ZWRTdHlsZSA9IG51bGxwdHI7CisgICAgcmV0dXJuIHRvVGV4
dERpcmVjdGlvbihzdGF0ZSgpLm1fZGlyZWN0aW9uLCBjb21wdXRlZFN0eWxlKSA9PSBSVEwgPyBB
U0NJSUxpdGVyYWwoInJ0bCIpIDogQVNDSUlMaXRlcmFsKCJsdHIiKTsKIH0KIAogdm9pZCBDYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnNldERpcmVjdGlvbihjb25zdCBTdHJpbmcmIGRpcmVjdGlv
blN0cmluZykKIHsKLSAgICBUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbjsKKyAgICBEaXJlY3Rpb24g
ZGlyZWN0aW9uOwogICAgIGlmIChkaXJlY3Rpb25TdHJpbmcgPT0gImluaGVyaXQiKQotICAgICAg
ICBkaXJlY3Rpb24gPSBpbmhlcml0ZWREaXJlY3Rpb24oKmNhbnZhcygpKTsKKyAgICAgICAgZGly
ZWN0aW9uID0gRGlyZWN0aW9uOjpJbmhlcml0OwogICAgIGVsc2UgaWYgKGRpcmVjdGlvblN0cmlu
ZyA9PSAicnRsIikKLSAgICAgICAgZGlyZWN0aW9uID0gUlRMOworICAgICAgICBkaXJlY3Rpb24g
PSBEaXJlY3Rpb246OlJ0bDsKICAgICBlbHNlIGlmIChkaXJlY3Rpb25TdHJpbmcgPT0gImx0ciIp
Ci0gICAgICAgIGRpcmVjdGlvbiA9IExUUjsKKyAgICAgICAgZGlyZWN0aW9uID0gRGlyZWN0aW9u
OjpMdHI7CiAgICAgZWxzZQogICAgICAgICByZXR1cm47CiAKQEAgLTIyODMsMTEgKzIyOTIsMTIg
QEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmRyYXdUZXh0SW50ZXJuYWwoY29uc3Qg
U3RyaW5nJiB0ZXh0LCBmbG9hdCB4LCBmbG8KIAogICAgIC8vIEZJWE1FOiBOZWVkIHRvIHR1cm4g
b2ZmIGZvbnQgc21vb3RoaW5nLgogCi0gICAgUmVuZGVyU3R5bGUqIGNvbXB1dGVkU3R5bGUgPSBj
YW52YXMoKS0+Y29tcHV0ZWRTdHlsZSgpOwotICAgIGJvb2wgaXNSVEwgPSBzdGF0ZSgpLm1fZGly
ZWN0aW9uID09IFJUTDsKKyAgICBSZW5kZXJTdHlsZSogY29tcHV0ZWRTdHlsZSA9IG51bGxwdHI7
CisgICAgVGV4dERpcmVjdGlvbiBkaXJlY3Rpb24gPSB0b1RleHREaXJlY3Rpb24oc3RhdGUoKS5t
X2RpcmVjdGlvbiwgY29tcHV0ZWRTdHlsZSk7CisgICAgYm9vbCBpc1JUTCA9IGRpcmVjdGlvbiA9
PSBSVEw7CiAgICAgYm9vbCBvdmVycmlkZSA9IGNvbXB1dGVkU3R5bGUgPyBpc092ZXJyaWRlKGNv
bXB1dGVkU3R5bGUtPnVuaWNvZGVCaWRpKCkpIDogZmFsc2U7CiAKLSAgICBUZXh0UnVuIHRleHRS
dW4obm9ybWFsaXplZFRleHQsIDAsIDAsIFRleHRSdW46OkFsbG93VHJhaWxpbmdFeHBhbnNpb24s
IHN0YXRlKCkubV9kaXJlY3Rpb24sIG92ZXJyaWRlLCB0cnVlLCBUZXh0UnVuOjpOb1JvdW5kaW5n
KTsKKyAgICBUZXh0UnVuIHRleHRSdW4obm9ybWFsaXplZFRleHQsIDAsIDAsIFRleHRSdW46OkFs
bG93VHJhaWxpbmdFeHBhbnNpb24sIGRpcmVjdGlvbiwgb3ZlcnJpZGUsIHRydWUsIFRleHRSdW46
Ok5vUm91bmRpbmcpOwogICAgIC8vIERyYXcgdGhlIGl0ZW0gdGV4dCBhdCB0aGUgY29ycmVjdCBw
b2ludC4KICAgICBGbG9hdFBvaW50IGxvY2F0aW9uKHgsIHkpOwogICAgIHN3aXRjaCAoc3RhdGUo
KS5tX3RleHRCYXNlbGluZSkgewpAQCAtMjMwOCw3ICsyMzE4LDcgQEAgdm9pZCBDYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQ6OmRyYXdUZXh0SW50ZXJuYWwoY29uc3QgU3RyaW5nJiB0ZXh0LCBmbG9h
dCB4LCBmbG8KICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgZmxvYXQgZm9udFdpZHRoID0g
Zm9udC53aWR0aChUZXh0UnVuKG5vcm1hbGl6ZWRUZXh0LCAwLCAwLCBUZXh0UnVuOjpBbGxvd1Ry
YWlsaW5nRXhwYW5zaW9uLCBzdGF0ZSgpLm1fZGlyZWN0aW9uLCBvdmVycmlkZSkpOworICAgIGZs
b2F0IGZvbnRXaWR0aCA9IGZvbnQud2lkdGgoVGV4dFJ1bihub3JtYWxpemVkVGV4dCwgMCwgMCwg
VGV4dFJ1bjo6QWxsb3dUcmFpbGluZ0V4cGFuc2lvbiwgZGlyZWN0aW9uLCBvdmVycmlkZSkpOwog
CiAgICAgdXNlTWF4V2lkdGggPSAodXNlTWF4V2lkdGggJiYgbWF4V2lkdGggPCBmb250V2lkdGgp
OwogICAgIGZsb2F0IHdpZHRoID0gdXNlTWF4V2lkdGggPyBtYXhXaWR0aCA6IGZvbnRXaWR0aDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJELmgKaW5kZXggYWRiOTZlNzdiZjhhZWUxMTk3ZGY2ZTU5MTZjNTJiYzUyOTUwOWEwYS4u
MjRiMzNmZWJmM2QxMTQxMjU4ZDY2NjRmMTczOGRkZjRlODA4NzQ5NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgKQEAg
LTIyOCw4ICsyMjgsMTQgQEAgcHVibGljOgogICAgIHZvaWQgc2V0V2Via2l0SW1hZ2VTbW9vdGhp
bmdFbmFibGVkKGJvb2wpOwogCiBwcml2YXRlOgorICAgIGVudW0gY2xhc3MgRGlyZWN0aW9uIHsK
KyAgICAgICAgSW5oZXJpdCwKKyAgICAgICAgUnRsLAorICAgICAgICBMdHIKKyAgICB9OworCiAg
ICAgc3RydWN0IFN0YXRlIDogRm9udFNlbGVjdG9yQ2xpZW50IHsKLSAgICAgICAgZXhwbGljaXQg
U3RhdGUoVGV4dERpcmVjdGlvbiA9IExUUik7CisgICAgICAgIFN0YXRlKCk7CiAgICAgICAgIHZp
cnR1YWwgflN0YXRlKCk7CiAKICAgICAgICAgU3RhdGUoY29uc3QgU3RhdGUmKTsKQEAgLTI2MCw3
ICsyNjYsNyBAQCBwcml2YXRlOgogICAgICAgICAvLyBUZXh0IHN0YXRlLgogICAgICAgICBUZXh0
QWxpZ24gbV90ZXh0QWxpZ247CiAgICAgICAgIFRleHRCYXNlbGluZSBtX3RleHRCYXNlbGluZTsK
LSAgICAgICAgVGV4dERpcmVjdGlvbiBtX2RpcmVjdGlvbjsKKyAgICAgICAgRGlyZWN0aW9uIG1f
ZGlyZWN0aW9uOwogCiAgICAgICAgIFN0cmluZyBtX3VucGFyc2VkRm9udDsKICAgICAgICAgRm9u
dCBtX2ZvbnQ7CkBAIC0zMzksNiArMzQ1LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wg
aXNBY2NlbGVyYXRlZCgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBib29sIGhhc0lu
dmVydGlibGVUcmFuc2Zvcm0oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBzdGF0ZSgpLm1faGFz
SW52ZXJ0aWJsZVRyYW5zZm9ybTsgfQorICAgIGlubGluZSBUZXh0RGlyZWN0aW9uIHRvVGV4dERp
cmVjdGlvbihEaXJlY3Rpb24sIFJlbmRlclN0eWxlKiYgY29tcHV0ZWRTdHlsZSkgY29uc3Q7CiAK
ICNpZiBFTkFCTEUoQUNDRUxFUkFURURfMkRfQ0FOVkFTKQogICAgIHZpcnR1YWwgUGxhdGZvcm1M
YXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDJjY2I4NDU4MDQw
MTA5MTM2NjJkMTgxZTYxMjNlNGM5MjFhN2NhNTguLjllN2IxMWI1OWY5NzEwZTg2MTAzNzNlNTFk
YTBlNzFmNzc2MzRhY2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNC0wOC0yMSAgVml2ZWsg
R2FsYXRhZ2UgIDx2aXZlay52Z0BzYW1zdW5nLmNvbT4KKworICAgICAgICBDYW52YXMgZGlyZWN0
aW9uIHNob3VsZCByZWZsZWN0IGNoYW5nZSBpbiBkaXIgYXR0cmlidXRlIGFuZCBhbHNvIGFjcm9z
cyBzYXZlL3Jlc3RvcmUgb3BlcmF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTM2MDk4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBmYXN0L2NhbnZhcy9jYW52YXMtZGlyZWN0aW9uLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBmYXN0L2NhbnZhcy9jYW52YXMtZGlyZWN0aW9uLmh0bWw6CisKIDIw
MTQtMDgtMjEgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBFbmFi
bGUgU0FUVVJBVEVEX0xBWU9VVF9BUklUSE1FVElDLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9jYW52YXMvY2FudmFzLWRpcmVjdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2NhbnZhcy9jYW52YXMtZGlyZWN0aW9uLWV4cGVjdGVkLnR4dAppbmRleCAwYzE0MTJkYjA3
MzI0ZTZkMjBmZjQ1MzIzZDRmM2VjNTg5OGM3Njg1Li4xYzUzZGZjMThhYTdlMzAzYjdkYzEwNWFk
ZDI5NDY4ODQ5NDE5ODIwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52
YXMtZGlyZWN0aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9j
YW52YXMtZGlyZWN0aW9uLWV4cGVjdGVkLnR4dApAQCAtNSw2ICs1LDkgQEAgVGVzdHMgdGhhdCBj
b250ZXh0LmRpcmVjdGlvbiBpcyBvdmVycmlkZGVuIGJ5ICdydGwnIHdpdGggcGFyZW50IGVsZW1l
bnQgaGF2aW5nIHUKIFRlc3RzIHRoYXQgY29udGV4dC5kaXJlY3Rpb24gaXMgb3ZlcnJpZGRlbiBi
eSAnbHRyJyB3aXRoIHBhcmVudCBlbGVtZW50IGhhdmluZyBkaXJlY3Rpb24gYXMgcnRsOiBQQVNT
CiBUZXN0cyB0aGF0IGNvbnRleHQuZGlyZWN0aW9uIGlzIG92ZXJyaWRkZW4gYnkgJ2luaGVyaXQn
IHdpdGggcGFyZW50IGVsZW1lbnQgaGF2aW5nIHVuc3BlY2lmaWVkIGRpcmVjdGlvbjogUEFTUwog
VGVzdHMgdGhhdCBjb250ZXh0LmRpcmVjdGlvbiBpcyBvdmVycmlkZGVuIGJ5ICdpbmhlcml0JyB3
aXRoIHBhcmVudCBlbGVtZW50IGhhdmluZyBkaXJlY3Rpb24gYXMgcnRsOiBQQVNTCitUZXN0cyB0
aGF0IGNoYW5nZSBpbiBlbGVtZW50J3MgZGlyIGF0dHJpYnV0ZSBpcyByZWZsZWN0ZWQgaW4gY29u
dGV4dC5kaXJlY3Rpb24gYXMgcnRsOiBQQVNTCitUZXN0cyB0aGF0IGNoYW5nZSBpbiBlbGVtZW50
J3MgZGlyIGF0dHJpYnV0ZSBpcyByZWZsZWN0ZWQgaW4gY29udGV4dC5kaXJlY3Rpb24gYXMgbHRy
OiBQQVNTCitUZXN0cyB0aGF0IGNvbnRleHQuZGlyZWN0aW9uIHJlZmxlY3RzIHRoZSB2YWxpZCBk
aXJlY3Rpb24gYWZ0ZXIgc2F2ZS9yZXN0b3JlIGNvbnRleHQgb3BlcmF0aW9uczogUEFTUwogVGVz
dHMgdGhhdCBjb250ZXh0LnJlc2V0KCkgc2V0cyB0aGUgY29udGV4dC5kaXJlY3Rpb24gdG8gbHRy
OiBQQVNTCiBUZXN0cyB0aGF0IGNvbnRleHQucmVzZXQoKSBzZXRzIHRoZSBjb250ZXh0LmRpcmVj
dGlvbiB0byBydGw6IFBBU1MKIFRlc3RzIHRoYXQgaW52YWxpZCBkaXJlY3Rpb24gdmFsdWUgUlRM
IGhhcyBubyBlZmZlY3Qgb24gdGhlIGNvbnRleHQuZGlyZWN0aW9uOiBQQVNTCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtZGlyZWN0aW9uLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtZGlyZWN0aW9uLmh0bWwKaW5kZXggYjdlNDk3NDU4NWMy
N2FhNzliOGE0ZmFkZWY5NTA3MzU0ODQ2OTQxOC4uYmY1NzZiMmMyMmM0MTMyNjQxMTIwMmMyOTE5
ZmY4ODU0OTUxNjYyNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFz
LWRpcmVjdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1kaXJl
Y3Rpb24uaHRtbApAQCAtNDYsNiArNDYsMTggQEAKIDxzcGFuPlRlc3RzIHRoYXQgY29udGV4dC5y
ZXNldCBzZXRzIHRoZSBkaXJlY3Rpb24gYXMgcnRsPHNwYW4gaWQ9InJlc3VsdDgiPjwvc3Bhbj48
L3NwYW4+PGJyPgogPGNhbnZhcyBpZD0iY2FudmFzOCIgd2lkdGg9NDAwIGhlaWdodD0yMCBzdHls
ZT0iYm9yZGVyOjFweCBzb2xpZCBibGFjayI+PC9jYW52YXM+CiA8L2Rpdj4KKzxkaXY+Cis8c3Bh
bj5UZXN0cyB0aGF0IGNoYW5nZSBpbiBlbGVtZW50J3MgZGlyIGF0dHJpYnV0ZSBpcyByZWZsZWN0
ZWQgaW4gY29udGV4dC5kaXJlY3Rpb24gYXMgcnRsOiA8c3BhbiBpZD0icmVzdWx0OSI+PC9zcGFu
Pjwvc3Bhbj48YnI+Cis8Y2FudmFzIGlkPSJjYW52YXM5IiB3aWR0aD00MDAgaGVpZ2h0PTIwIHN0
eWxlPSJib3JkZXI6MXB4IHNvbGlkIGJsYWNrIj48L2NhbnZhcz4KKzwvZGl2PgorPGRpdiBkaXI9
InJ0bCI+Cis8c3Bhbj5UZXN0cyB0aGF0IGNoYW5nZSBpbiBlbGVtZW50J3MgZGlyIGF0dHJpYnV0
ZSBpcyByZWZsZWN0ZWQgaW4gY29udGV4dC5kaXJlY3Rpb24gYXMgbHRyOiA8c3BhbiBpZD0icmVz
dWx0MTAiPjwvc3Bhbj48L3NwYW4+PGJyPgorPGNhbnZhcyBpZD0iY2FudmFzMTAiIHdpZHRoPTQw
MCBoZWlnaHQ9MjAgc3R5bGU9ImJvcmRlcjoxcHggc29saWQgYmxhY2siPjwvY2FudmFzPgorPC9k
aXY+Cis8ZGl2PgorPHNwYW4+VGVzdHMgdGhhdCBjb250ZXh0LmRpcmVjdGlvbiByZWZsZWN0cyB0
aGUgdmFsaWQgZGlyZWN0aW9uIGFmdGVyIHNhdmUvcmVzdG9yZSBjb250ZXh0IG9wZXJhdGlvbnM6
IDxzcGFuIGlkPSJyZXN1bHQxMSI+PC9zcGFuPjwvc3Bhbj48YnI+Cis8Y2FudmFzIGlkPSJjYW52
YXMxMSIgc3R5bGU9ImJvcmRlcjoxcHggc29saWQgYmxhY2siPjwvY2FudmFzPgorPC9kaXY+CiA8
ZGl2IGlkPSJyZXN1bHRzIj4KIDwvZGl2PgogPHNjcmlwdD4KQEAgLTEyMyw2ICsxMzUsNTcgQEAg
ZnVuY3Rpb24gdmVyaWZ5RGlyZWN0aW9uQWZ0ZXJSZXNldChjYW52YXNJZCwgdGV4dCwgZGlyZWN0
aW9uLCBleHBlY3RlZERpcmVjdGlvbikKICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGNh
bnZhc0VsZW1lbnQucGFyZW50RWxlbWVudCk7CiB9CiAKK2Z1bmN0aW9uIHZlcmlmeURpcmVjdGlv
bkFmdGVyQXR0cmlidXRlQ2hhbmdlKGNhbnZhc0lkLCByZXN1bHRJZCwgdGV4dCwgbmV3RGlyZWN0
aW9uLCBmb3JQYXJlbnRFbGVtZW50KQoreworICAgIHZhciBjYW52YXNFbGVtZW50ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoY2FudmFzSWQpOworICAgIHZhciByZXN1bHRFbGVtZW50ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQocmVzdWx0SWQpOworICAgIHZhciBjdHggPSBjYW52YXNFbGVt
ZW50LmdldENvbnRleHQoJzJkJyk7CisgICAgdmFyIHdpZHRoID0gY2FudmFzRWxlbWVudC53aWR0
aC8yOworICAgIHZhciBoZWlnaHQgPSBjYW52YXNFbGVtZW50LmhlaWdodDsKKworICAgIGlmIChm
b3JQYXJlbnRFbGVtZW50KQorICAgICAgICBjYW52YXNFbGVtZW50LnBhcmVudEVsZW1lbnQuZGly
ID0gbmV3RGlyZWN0aW9uOworICAgIGVsc2UKKyAgICAgICAgY2FudmFzRWxlbWVudC5kaXIgPSBu
ZXdEaXJlY3Rpb247CisgICAgcmVzdWx0RWxlbWVudC50ZXh0Q29udGVudCA9IGN0eC5kaXJlY3Rp
b24gPT0gbmV3RGlyZWN0aW9uID8gJ1BBU1MnIDogJ0ZBSUwnOworICAgIHJlc3VsdEVsZW1lbnQu
Y2xhc3NOYW1lID0gY3R4LmRpcmVjdGlvbiA9PSBuZXdEaXJlY3Rpb24gPyAncGFzcycgOiAnZmFp
bCc7CisgICAgY3R4Lm1vdmVUbyh3aWR0aCwgMCk7CisgICAgY3R4LmxpbmVUbyh3aWR0aCwgaGVp
Z2h0KTsKKyAgICBjdHguc3Ryb2tlKCk7CisgICAgY3R4LmZvbnQgPSBmb250U2V0dGluZ3M7Cisg
ICAgY3R4LmZpbGxUZXh0KHRleHQsIHdpZHRoLCBoZWlnaHQvMik7Cit9CisKK2Z1bmN0aW9uIHZl
cmlmeURpcmVjdGlvbkFjcm9zc1NhdmVSZXN0b3JlcyhjYW52YXNJZCwgcmVzdWx0SWQsIHRlc3RW
ZWN0b3IpCit7CisgICAgdmFyIGNhbnZhc0VsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZChjYW52YXNJZCk7CisgICAgdmFyIHJlc3VsdEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZChyZXN1bHRJZCk7CisgICAgdmFyIGN0eCA9IGNhbnZhc0VsZW1lbnQuZ2V0Q29udGV4dCgn
MmQnKTsKKyAgICB2YXIgd2lkdGggPSBjYW52YXNFbGVtZW50LndpZHRoLzI7CisgICAgdmFyIGhl
aWdodCA9IDA7CisgICAgY3R4Lm1vdmVUbyh3aWR0aCwgMCk7CisgICAgY3R4LmxpbmVUbyh3aWR0
aCwgY2FudmFzRWxlbWVudC5oZWlnaHQpOworICAgIGN0eC5zdHJva2UoKTsKKyAgICBjdHguZm9u
dCA9IGZvbnRTZXR0aW5nczsKKyAgICB2YXIgdGVzdFZlY3Rvckxlbmd0aCA9IHRlc3RWZWN0b3Iu
bGVuZ3RoOworICAgIHZhciBpID0gMDsKKyAgICBmb3IgKDsgaSA8IHRlc3RWZWN0b3IubGVuZ3Ro
OyArK2kpIHsKKyAgICAgICAgaGVpZ2h0ICs9IDIwOworICAgICAgICBjdHguZGlyZWN0aW9uID0g
dGVzdFZlY3RvcltpXS5kaXJlY3Rpb247CisgICAgICAgIGN0eC5maWxsVGV4dCh0ZXN0VmVjdG9y
W2ldLnRleHQsIHdpZHRoLCBoZWlnaHQpOworICAgICAgICBpZiAoaSAhPSB0ZXN0VmVjdG9yTGVu
Z3RoIC0gMSkKKyAgICAgICAgICAgIGN0eC5zYXZlKCk7CisgICAgfQorICAgIHZhciB2YWxpZERp
cmVjdGlvbkNvdW50ID0gMDsKKyAgICBmb3IgKC0taTsgaSA+IDA7IC0taSkgeworICAgICAgICBj
dHgucmVzdG9yZSgpOworICAgICAgICBpZiAoY3R4LmRpcmVjdGlvbiA9PSB0ZXN0VmVjdG9yW2kg
LSAxXS5kaXJlY3Rpb24pCisgICAgICAgICAgICB2YWxpZERpcmVjdGlvbkNvdW50Kys7CisgICAg
fQorICAgIHJlc3VsdEVsZW1lbnQudGV4dENvbnRlbnQgPSB2YWxpZERpcmVjdGlvbkNvdW50ID09
IHRlc3RWZWN0b3JMZW5ndGggLSAxID8gJ1BBU1MnIDogJ0ZBSUwnOworICAgIHJlc3VsdEVsZW1l
bnQuY2xhc3NOYW1lID0gdmFsaWREaXJlY3Rpb25Db3VudCA9PSB0ZXN0VmVjdG9yTGVuZ3RoIC0g
MSA/ICdwYXNzJyA6ICdmYWlsJzsKK30KKwogZnVuY3Rpb24gdmVyaWZ5SW52YWxpZERpcmVjdGlv
bihkaXJlY3Rpb24pCiB7CiAgICAgdmFyIGN0eCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Nh
bnZhcycpLmdldENvbnRleHQoJzJkJyk7CkBAIC0xNDQsNiArMjA3LDE4IEBAIHZlcmlmeURyYXdU
ZXh0V2l0aFNwZWNpZmllZERpcmVjdGlvbignY2FudmFzNicsICdyZXN1bHQ2JywgJ1JpZ2h0LXRv
LUxlZnQgdGV4dCcsCiB2ZXJpZnlEaXJlY3Rpb25BZnRlclJlc2V0KCdjYW52YXM3JywgJ1JpZ2h0
LXRvLUxlZnQnLCAncnRsJywgJ2x0cicpOwogdmVyaWZ5RGlyZWN0aW9uQWZ0ZXJSZXNldCgnY2Fu
dmFzOCcsICdSaWdodC10by1MZWZ0JywgJ2x0cicsICdydGwnKTsKIAordmVyaWZ5RGlyZWN0aW9u
QWZ0ZXJBdHRyaWJ1dGVDaGFuZ2UoJ2NhbnZhczknLCAncmVzdWx0OScsICdSaWdodC10by1MZWZ0
IHRleHQnLCAncnRsJywgdHJ1ZSk7Cit2ZXJpZnlEaXJlY3Rpb25BZnRlckF0dHJpYnV0ZUNoYW5n
ZSgnY2FudmFzMTAnLCAncmVzdWx0MTAnLCAnTGVmdC10by1SaWdodCB0ZXh0JywgJ2x0cicsIGZh
bHNlKTsKKwordmVyaWZ5RGlyZWN0aW9uQWNyb3NzU2F2ZVJlc3RvcmVzKCdjYW52YXMxMScsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Jlc3VsdDExJywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBbeyB0ZXh0OiAnTGVmdC10by1SaWdodCB0ZXh0JywgZGly
ZWN0aW9uOiAnbHRyJyB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHRl
eHQ6ICdSaWdodC10by1MZWZ0IHRleHQnLCBkaXJlY3Rpb246ICdydGwnIH0sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHsgdGV4dDogJ1JpZ2h0LXRvLUxlZnQgdGV4dCcsIGRp
cmVjdGlvbjogJ3J0bCcgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB0
ZXh0OiAnTGVmdC10by1SaWdodCB0ZXh0JywgZGlyZWN0aW9uOiAnbHRyJyB9LAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7IHRleHQ6ICdSaWdodC10by1MZWZ0IHRleHQnLCBk
aXJlY3Rpb246ICdydGwnIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsg
dGV4dDogJ1JpZ2h0LXRvLUxlZnQgdGV4dCcsIGRpcmVjdGlvbjogJ3J0bCcgfV0pOworCiB2ZXJp
ZnlJbnZhbGlkRGlyZWN0aW9uKCdSVEwnKTsKIHZlcmlmeUludmFsaWREaXJlY3Rpb24oJ0xUUicp
OwogdmVyaWZ5SW52YWxpZERpcmVjdGlvbignSU5IRVJJVCcpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>237081</attachid>
            <date>2014-08-25 06:07:35 -0700</date>
            <delta_ts>2014-08-26 03:25:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136098-20140825183726.patch</filename>
            <type>text/plain</type>
            <size>14484</size>
            <attacher name="Vivek Galatage">vivekg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcyODk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjkxNWE0OTFlY2JjZjgy
MDVmMTljMWQ0MjQ4ZjJmZDQwN2I5MmJjMy4uZDQxNWNkZDIxMGEwNmEwZWI1YjI2NzU1NWYwNGJl
NmI2NmNjN2IwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE0LTA4LTI0ICBWaXZl
ayBHYWxhdGFnZSAgPHZpdmVrLnZnQHNhbXN1bmcuY29tPgorCisgICAgICAgIENhbnZhcyBkaXJl
Y3Rpb24gc2hvdWxkIHJlZmxlY3QgY2hhbmdlIGluIGRpciBhdHRyaWJ1dGUgYW5kIGFsc28gYWNy
b3NzIHNhdmUvcmVzdG9yZSBvcGVyYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMzYwOTgKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBB
ZGxlci4KKworICAgICAgICBDaGFuZ2VkIFN0YXRlLm1fZGlyZWN0aW9uIHR5cGUgZnJvbSBUZXh0
RGlyZWN0aW9uIHRvIERpcmVjdGlvbiBlbnVtIHRvIGFjY29tb2RhdGUgJ2luaGVyaXQnCisgICAg
ICAgIGFzIGEgc2VwYXJhdGUgdmFsdWUuIE1vZGlmaWVkIHRoZSBnZXR0ZXIgdG8gY29tcHV0ZSB0
aGUgJ2xpdmUnIHZhbHVlIGZvciB0aGUgZGlyZWN0aW9uIGF0dHJpYnV0ZS4KKyAgICAgICAgUmVt
b3ZlZCBleHBsaWNpdCBwYXNzaW5nIG9mIGRpcmVjdGlvbiB0byBDYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQ6OlN0YXRlIGNvbnN0cnVjdG9yLgorCisgICAgICAgIFVwZGF0ZWQgZXhpc3RpbmcgY2Fu
dmFzLWRpcmVjdGlvbi5odG1sIHdpdGggYWRkaXRpb25hbCBjYXNlcyB0byByZWZsZWN0IHRoaXMg
Y2hhbmdlLgorCisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Q2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEKToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRDo6cmVzZXQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEOjpTdGF0ZTo6U3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJEOjp0b1RleHREaXJlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEOjpkaXJlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEOjpzZXREaXJlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEOjpkcmF3VGV4dEludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6Omlu
aGVyaXRlZERpcmVjdGlvbik6IERlbGV0ZWQuCisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJELmg6CisKIDIwMTQtMDgtMjQgIEFsZXhleSBQcm9za3VyeWFrb3Yg
IDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAgQVNTRVJUKGV4dHJhY3RhYmxlKCkpIHdoZW4gc3Rv
cmluZyBhIG5vbi1leHRyYWN0YWJsZSBrZXkgaW4gSW5kZXhlZERCCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAppbmRl
eCAzZmMzNGVkNmM5MGY1ZWQ3ZjFmYWNiMDE0MjNlYWI4NjAxZDA2NTU4Li5mZWVkZGY3ZjJlMDIy
NDNhNDYyNDU5ZmU3ODEzN2U3MmYxYTgwYjNhIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKQEAgLTEwNCwxMyAr
MTA0LDYgQEAgcHJpdmF0ZToKICAgICBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQqIG1fY2FudmFz
Q29udGV4dDsKIH07CiAKLXN0YXRpYyBpbmxpbmUgVGV4dERpcmVjdGlvbiBpbmhlcml0ZWREaXJl
Y3Rpb24oSFRNTENhbnZhc0VsZW1lbnQmIGNhbnZhc0VsZW1lbnQpCi17Ci0gICAgY2FudmFzRWxl
bWVudC5kb2N1bWVudCgpLnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKLSAgICBSZW5kZXJTdHlsZSog
Y29tcHV0ZWRTdHlsZSA9IGNhbnZhc0VsZW1lbnQuY29tcHV0ZWRTdHlsZSgpOwotICAgIHJldHVy
biBjb21wdXRlZFN0eWxlID8gY29tcHV0ZWRTdHlsZS0+ZGlyZWN0aW9uKCkgOiBMVFI7Ci19Ci0K
IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKEhUTUxD
YW52YXNFbGVtZW50KiBjYW52YXMsIGJvb2wgdXNlc0NTU0NvbXBhdGliaWxpdHlQYXJzZU1vZGUs
IGJvb2wgdXNlc0Rhc2hib2FyZENvbXBhdGliaWxpdHlNb2RlKQogICAgIDogQ2FudmFzUmVuZGVy
aW5nQ29udGV4dChjYW52YXMpCiAgICAgLCBtX3N0YXRlU3RhY2soMSkKQEAgLTEyMCw3ICsxMTMs
NiBAQCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRChI
VE1MQ2FudmFzRWxlbWVudCogY2FudmFzLCBibwogICAgICwgbV91c2VzRGFzaGJvYXJkQ29tcGF0
aWJpbGl0eU1vZGUodXNlc0Rhc2hib2FyZENvbXBhdGliaWxpdHlNb2RlKQogI2VuZGlmCiB7Ci0g
ICAgbV9zdGF0ZVN0YWNrLmZpcnN0KCkubV9kaXJlY3Rpb24gPSBpbmhlcml0ZWREaXJlY3Rpb24o
KmNhbnZhcyk7CiAjaWYgIUVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkKICAgICBBU1NFUlRfVU5V
U0VEKHVzZXNEYXNoYm9hcmRDb21wYXRpYmlsaXR5TW9kZSwgIXVzZXNEYXNoYm9hcmRDb21wYXRp
YmlsaXR5TW9kZSk7CiAjZW5kaWYKQEAgLTE2MiwxMiArMTU0LDEyIEBAIHZvaWQgQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEOjpyZXNldCgpCiB7CiAgICAgdW53aW5kU3RhdGVTdGFjaygpOwogICAg
IG1fc3RhdGVTdGFjay5yZXNpemUoMSk7Ci0gICAgbV9zdGF0ZVN0YWNrLmZpcnN0KCkgPSBTdGF0
ZShpbmhlcml0ZWREaXJlY3Rpb24oKmNhbnZhcygpKSk7CisgICAgbV9zdGF0ZVN0YWNrLmZpcnN0
KCkgPSBTdGF0ZSgpOwogICAgIG1fcGF0aC5jbGVhcigpOwogICAgIG1fdW5yZWFsaXplZFNhdmVD
b3VudCA9IDA7CiB9CiAKLUNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6U3RhdGU6OlN0YXRlKFRl
eHREaXJlY3Rpb24gZGlyZWN0aW9uKQorQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpTdGF0ZTo6
U3RhdGUoKQogICAgIDogbV9zdHJva2VTdHlsZShDb2xvcjo6YmxhY2spCiAgICAgLCBtX2ZpbGxT
dHlsZShDb2xvcjo6YmxhY2spCiAgICAgLCBtX2xpbmVXaWR0aCgxKQpAQCAtMTg0LDcgKzE3Niw3
IEBAIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6U3RhdGU6OlN0YXRlKFRleHREaXJlY3Rpb24g
ZGlyZWN0aW9uKQogICAgICwgbV9pbWFnZVNtb290aGluZ0VuYWJsZWQodHJ1ZSkKICAgICAsIG1f
dGV4dEFsaWduKFN0YXJ0VGV4dEFsaWduKQogICAgICwgbV90ZXh0QmFzZWxpbmUoQWxwaGFiZXRp
Y1RleHRCYXNlbGluZSkKLSAgICAsIG1fZGlyZWN0aW9uKGRpcmVjdGlvbikKKyAgICAsIG1fZGly
ZWN0aW9uKERpcmVjdGlvbjo6SW5oZXJpdCkKICAgICAsIG1fdW5wYXJzZWRGb250KGRlZmF1bHRG
b250KQogICAgICwgbV9yZWFsaXplZEZvbnQoZmFsc2UpCiB7CkBAIC0yMTYzLDIwICsyMTU1LDM4
IEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpzZXRUZXh0QmFzZWxpbmUoY29uc3Qg
U3RyaW5nJiBzKQogICAgIG1vZGlmaWFibGVTdGF0ZSgpLm1fdGV4dEJhc2VsaW5lID0gYmFzZWxp
bmU7CiB9CiAKK2lubGluZSBUZXh0RGlyZWN0aW9uIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6
dG9UZXh0RGlyZWN0aW9uKERpcmVjdGlvbiBkaXJlY3Rpb24sIFJlbmRlclN0eWxlKiogY29tcHV0
ZWRTdHlsZSkgY29uc3QKK3sKKyAgICBSZW5kZXJTdHlsZSogc3R5bGUgPSBjYW52YXMoKS0+Y29t
cHV0ZWRTdHlsZSgpOworICAgIGlmIChjb21wdXRlZFN0eWxlKQorICAgICAgICAqY29tcHV0ZWRT
dHlsZSA9IHN0eWxlOworICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7CisgICAgY2FzZSBEaXJlY3Rp
b246OkluaGVyaXQ6CisgICAgICAgIHJldHVybiBzdHlsZSA/IHN0eWxlLT5kaXJlY3Rpb24oKSA6
IExUUjsKKyAgICBjYXNlIERpcmVjdGlvbjo6UlRMOgorICAgICAgICByZXR1cm4gUlRMOworICAg
IGNhc2UgRGlyZWN0aW9uOjpMVFI6CisgICAgICAgIHJldHVybiBMVFI7CisgICAgfQorICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBMVFI7Cit9CisKIFN0cmluZyBDYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQ6OmRpcmVjdGlvbigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHN0YXRl
KCkubV9kaXJlY3Rpb24gPT0gUlRMID8gQVNDSUlMaXRlcmFsKCJydGwiKSA6IEFTQ0lJTGl0ZXJh
bCgibHRyIik7CisgICAgY2FudmFzKCktPmRvY3VtZW50KCkudXBkYXRlU3R5bGVJZk5lZWRlZCgp
OworICAgIHJldHVybiB0b1RleHREaXJlY3Rpb24oc3RhdGUoKS5tX2RpcmVjdGlvbikgPT0gUlRM
ID8gQVNDSUlMaXRlcmFsKCJydGwiKSA6IEFTQ0lJTGl0ZXJhbCgibHRyIik7CiB9CiAKIHZvaWQg
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpzZXREaXJlY3Rpb24oY29uc3QgU3RyaW5nJiBkaXJl
Y3Rpb25TdHJpbmcpCiB7Ci0gICAgVGV4dERpcmVjdGlvbiBkaXJlY3Rpb247CisgICAgRGlyZWN0
aW9uIGRpcmVjdGlvbjsKICAgICBpZiAoZGlyZWN0aW9uU3RyaW5nID09ICJpbmhlcml0IikKLSAg
ICAgICAgZGlyZWN0aW9uID0gaW5oZXJpdGVkRGlyZWN0aW9uKCpjYW52YXMoKSk7CisgICAgICAg
IGRpcmVjdGlvbiA9IERpcmVjdGlvbjo6SW5oZXJpdDsKICAgICBlbHNlIGlmIChkaXJlY3Rpb25T
dHJpbmcgPT0gInJ0bCIpCi0gICAgICAgIGRpcmVjdGlvbiA9IFJUTDsKKyAgICAgICAgZGlyZWN0
aW9uID0gRGlyZWN0aW9uOjpSVEw7CiAgICAgZWxzZSBpZiAoZGlyZWN0aW9uU3RyaW5nID09ICJs
dHIiKQotICAgICAgICBkaXJlY3Rpb24gPSBMVFI7CisgICAgICAgIGRpcmVjdGlvbiA9IERpcmVj
dGlvbjo6TFRSOwogICAgIGVsc2UKICAgICAgICAgcmV0dXJuOwogCkBAIC0yMjgzLDExICsyMjkz
LDEzIEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpkcmF3VGV4dEludGVybmFsKGNv
bnN0IFN0cmluZyYgdGV4dCwgZmxvYXQgeCwgZmxvCiAKICAgICAvLyBGSVhNRTogTmVlZCB0byB0
dXJuIG9mZiBmb250IHNtb290aGluZy4KIAotICAgIFJlbmRlclN0eWxlKiBjb21wdXRlZFN0eWxl
ID0gY2FudmFzKCktPmNvbXB1dGVkU3R5bGUoKTsKLSAgICBib29sIGlzUlRMID0gc3RhdGUoKS5t
X2RpcmVjdGlvbiA9PSBSVEw7CisgICAgUmVuZGVyU3R5bGUqIGNvbXB1dGVkU3R5bGU7CisgICAg
Y2FudmFzKCktPmRvY3VtZW50KCkudXBkYXRlU3R5bGVJZk5lZWRlZCgpOworICAgIFRleHREaXJl
Y3Rpb24gZGlyZWN0aW9uID0gdG9UZXh0RGlyZWN0aW9uKHN0YXRlKCkubV9kaXJlY3Rpb24sICZj
b21wdXRlZFN0eWxlKTsKKyAgICBib29sIGlzUlRMID0gZGlyZWN0aW9uID09IFJUTDsKICAgICBi
b29sIG92ZXJyaWRlID0gY29tcHV0ZWRTdHlsZSA/IGlzT3ZlcnJpZGUoY29tcHV0ZWRTdHlsZS0+
dW5pY29kZUJpZGkoKSkgOiBmYWxzZTsKIAotICAgIFRleHRSdW4gdGV4dFJ1bihub3JtYWxpemVk
VGV4dCwgMCwgMCwgVGV4dFJ1bjo6QWxsb3dUcmFpbGluZ0V4cGFuc2lvbiwgc3RhdGUoKS5tX2Rp
cmVjdGlvbiwgb3ZlcnJpZGUsIHRydWUsIFRleHRSdW46Ok5vUm91bmRpbmcpOworICAgIFRleHRS
dW4gdGV4dFJ1bihub3JtYWxpemVkVGV4dCwgMCwgMCwgVGV4dFJ1bjo6QWxsb3dUcmFpbGluZ0V4
cGFuc2lvbiwgZGlyZWN0aW9uLCBvdmVycmlkZSwgdHJ1ZSwgVGV4dFJ1bjo6Tm9Sb3VuZGluZyk7
CiAgICAgLy8gRHJhdyB0aGUgaXRlbSB0ZXh0IGF0IHRoZSBjb3JyZWN0IHBvaW50LgogICAgIEZs
b2F0UG9pbnQgbG9jYXRpb24oeCwgeSk7CiAgICAgc3dpdGNoIChzdGF0ZSgpLm1fdGV4dEJhc2Vs
aW5lKSB7CkBAIC0yMzA4LDcgKzIzMjAsNyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RDo6ZHJhd1RleHRJbnRlcm5hbChjb25zdCBTdHJpbmcmIHRleHQsIGZsb2F0IHgsIGZsbwogICAg
ICAgICBicmVhazsKICAgICB9CiAKLSAgICBmbG9hdCBmb250V2lkdGggPSBmb250LndpZHRoKFRl
eHRSdW4obm9ybWFsaXplZFRleHQsIDAsIDAsIFRleHRSdW46OkFsbG93VHJhaWxpbmdFeHBhbnNp
b24sIHN0YXRlKCkubV9kaXJlY3Rpb24sIG92ZXJyaWRlKSk7CisgICAgZmxvYXQgZm9udFdpZHRo
ID0gZm9udC53aWR0aChUZXh0UnVuKG5vcm1hbGl6ZWRUZXh0LCAwLCAwLCBUZXh0UnVuOjpBbGxv
d1RyYWlsaW5nRXhwYW5zaW9uLCBkaXJlY3Rpb24sIG92ZXJyaWRlKSk7CiAKICAgICB1c2VNYXhX
aWR0aCA9ICh1c2VNYXhXaWR0aCAmJiBtYXhXaWR0aCA8IGZvbnRXaWR0aCk7CiAgICAgZmxvYXQg
d2lkdGggPSB1c2VNYXhXaWR0aCA/IG1heFdpZHRoIDogZm9udFdpZHRoOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaAppbmRl
eCBhZGI5NmU3N2JmOGFlZTExOTdkZjZlNTkxNmM1MmJjNTI5NTA5YTBhLi42MDYxN2I4ZWZhMjAz
NDgxMDI4MDU2MWE5Y2MwNjdkYjFjYzEzMDFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaApAQCAtMjI4LDggKzIyOCwx
NCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRXZWJraXRJbWFnZVNtb290aGluZ0VuYWJsZWQoYm9v
bCk7CiAKIHByaXZhdGU6CisgICAgZW51bSBjbGFzcyBEaXJlY3Rpb24geworICAgICAgICBJbmhl
cml0LAorICAgICAgICBSVEwsCisgICAgICAgIExUUgorICAgIH07CisKICAgICBzdHJ1Y3QgU3Rh
dGUgOiBGb250U2VsZWN0b3JDbGllbnQgewotICAgICAgICBleHBsaWNpdCBTdGF0ZShUZXh0RGly
ZWN0aW9uID0gTFRSKTsKKyAgICAgICAgU3RhdGUoKTsKICAgICAgICAgdmlydHVhbCB+U3RhdGUo
KTsKIAogICAgICAgICBTdGF0ZShjb25zdCBTdGF0ZSYpOwpAQCAtMjYwLDcgKzI2Niw3IEBAIHBy
aXZhdGU6CiAgICAgICAgIC8vIFRleHQgc3RhdGUuCiAgICAgICAgIFRleHRBbGlnbiBtX3RleHRB
bGlnbjsKICAgICAgICAgVGV4dEJhc2VsaW5lIG1fdGV4dEJhc2VsaW5lOwotICAgICAgICBUZXh0
RGlyZWN0aW9uIG1fZGlyZWN0aW9uOworICAgICAgICBEaXJlY3Rpb24gbV9kaXJlY3Rpb247CiAK
ICAgICAgICAgU3RyaW5nIG1fdW5wYXJzZWRGb250OwogICAgICAgICBGb250IG1fZm9udDsKQEAg
LTMzOSw2ICszNDUsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc0FjY2VsZXJhdGVk
KCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIGJvb2wgaGFzSW52ZXJ0aWJsZVRyYW5z
Zm9ybSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHN0YXRlKCkubV9oYXNJbnZlcnRpYmxlVHJh
bnNmb3JtOyB9CisgICAgVGV4dERpcmVjdGlvbiB0b1RleHREaXJlY3Rpb24oRGlyZWN0aW9uLCBS
ZW5kZXJTdHlsZSoqIGNvbXB1dGVkU3R5bGUgPSBudWxscHRyKSBjb25zdDsKIAogI2lmIEVOQUJM
RShBQ0NFTEVSQVRFRF8yRF9DQU5WQVMpCiAgICAgdmlydHVhbCBQbGF0Zm9ybUxheWVyKiBwbGF0
Zm9ybUxheWVyKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMjhlMDlkZDg0MGU3Yjg1MThmMmZk
MWE2NTcxNDlkMDE1OTk1ZGU2ZS4uYTUxZWQwYjdiZjJjMmJiNzE5MjI5NTRhMzQyNjllOGRkMDNm
MTEwYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE0LTA4LTI0ICBWaXZlayBHYWxhdGFnZSAg
PHZpdmVrLnZnQHNhbXN1bmcuY29tPgorCisgICAgICAgIENhbnZhcyBkaXJlY3Rpb24gc2hvdWxk
IHJlZmxlY3QgY2hhbmdlIGluIGRpciBhdHRyaWJ1dGUgYW5kIGFsc28gYWNyb3NzIHNhdmUvcmVz
dG9yZSBvcGVyYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMzYwOTgKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAg
ICAgICAqIGZhc3QvY2FudmFzL2NhbnZhcy1kaXJlY3Rpb24tZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGZhc3QvY2FudmFzL2NhbnZhcy1kaXJlY3Rpb24uaHRtbDoKKwogMjAxNC0wOC0yNCAgQWxl
eGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBBU1NFUlQoZXh0cmFj
dGFibGUoKSkgd2hlbiBzdG9yaW5nIGEgbm9uLWV4dHJhY3RhYmxlIGtleSBpbiBJbmRleGVkREIK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1kaXJlY3Rpb24tZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWRpcmVjdGlvbi1leHBl
Y3RlZC50eHQKaW5kZXggMGMxNDEyZGIwNzMyNGU2ZDIwZmY0NTMyM2Q0ZjNlYzU4OThjNzY4NS4u
MWM1M2RmYzE4YWE3ZTMwM2I3ZGMxMDVhZGQyOTQ2ODg0OTQxOTgyMCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWRpcmVjdGlvbi1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWRpcmVjdGlvbi1leHBlY3RlZC50eHQKQEAg
LTUsNiArNSw5IEBAIFRlc3RzIHRoYXQgY29udGV4dC5kaXJlY3Rpb24gaXMgb3ZlcnJpZGRlbiBi
eSAncnRsJyB3aXRoIHBhcmVudCBlbGVtZW50IGhhdmluZyB1CiBUZXN0cyB0aGF0IGNvbnRleHQu
ZGlyZWN0aW9uIGlzIG92ZXJyaWRkZW4gYnkgJ2x0cicgd2l0aCBwYXJlbnQgZWxlbWVudCBoYXZp
bmcgZGlyZWN0aW9uIGFzIHJ0bDogUEFTUwogVGVzdHMgdGhhdCBjb250ZXh0LmRpcmVjdGlvbiBp
cyBvdmVycmlkZGVuIGJ5ICdpbmhlcml0JyB3aXRoIHBhcmVudCBlbGVtZW50IGhhdmluZyB1bnNw
ZWNpZmllZCBkaXJlY3Rpb246IFBBU1MKIFRlc3RzIHRoYXQgY29udGV4dC5kaXJlY3Rpb24gaXMg
b3ZlcnJpZGRlbiBieSAnaW5oZXJpdCcgd2l0aCBwYXJlbnQgZWxlbWVudCBoYXZpbmcgZGlyZWN0
aW9uIGFzIHJ0bDogUEFTUworVGVzdHMgdGhhdCBjaGFuZ2UgaW4gZWxlbWVudCdzIGRpciBhdHRy
aWJ1dGUgaXMgcmVmbGVjdGVkIGluIGNvbnRleHQuZGlyZWN0aW9uIGFzIHJ0bDogUEFTUworVGVz
dHMgdGhhdCBjaGFuZ2UgaW4gZWxlbWVudCdzIGRpciBhdHRyaWJ1dGUgaXMgcmVmbGVjdGVkIGlu
IGNvbnRleHQuZGlyZWN0aW9uIGFzIGx0cjogUEFTUworVGVzdHMgdGhhdCBjb250ZXh0LmRpcmVj
dGlvbiByZWZsZWN0cyB0aGUgdmFsaWQgZGlyZWN0aW9uIGFmdGVyIHNhdmUvcmVzdG9yZSBjb250
ZXh0IG9wZXJhdGlvbnM6IFBBU1MKIFRlc3RzIHRoYXQgY29udGV4dC5yZXNldCgpIHNldHMgdGhl
IGNvbnRleHQuZGlyZWN0aW9uIHRvIGx0cjogUEFTUwogVGVzdHMgdGhhdCBjb250ZXh0LnJlc2V0
KCkgc2V0cyB0aGUgY29udGV4dC5kaXJlY3Rpb24gdG8gcnRsOiBQQVNTCiBUZXN0cyB0aGF0IGlu
dmFsaWQgZGlyZWN0aW9uIHZhbHVlIFJUTCBoYXMgbm8gZWZmZWN0IG9uIHRoZSBjb250ZXh0LmRp
cmVjdGlvbjogUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFz
LWRpcmVjdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWRpcmVjdGlv
bi5odG1sCmluZGV4IGI3ZTQ5NzQ1ODVjMjdhYTc5YjhhNGZhZGVmOTUwNzM1NDg0Njk0MTguLmJm
NTc2YjJjMjJjNDEzMjY0MTEyMDJjMjkxOWZmODg1NDk1MTY2MjQgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1kaXJlY3Rpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2NhbnZhcy9jYW52YXMtZGlyZWN0aW9uLmh0bWwKQEAgLTQ2LDYgKzQ2LDE4IEBACiA8
c3Bhbj5UZXN0cyB0aGF0IGNvbnRleHQucmVzZXQgc2V0cyB0aGUgZGlyZWN0aW9uIGFzIHJ0bDxz
cGFuIGlkPSJyZXN1bHQ4Ij48L3NwYW4+PC9zcGFuPjxicj4KIDxjYW52YXMgaWQ9ImNhbnZhczgi
IHdpZHRoPTQwMCBoZWlnaHQ9MjAgc3R5bGU9ImJvcmRlcjoxcHggc29saWQgYmxhY2siPjwvY2Fu
dmFzPgogPC9kaXY+Cis8ZGl2PgorPHNwYW4+VGVzdHMgdGhhdCBjaGFuZ2UgaW4gZWxlbWVudCdz
IGRpciBhdHRyaWJ1dGUgaXMgcmVmbGVjdGVkIGluIGNvbnRleHQuZGlyZWN0aW9uIGFzIHJ0bDog
PHNwYW4gaWQ9InJlc3VsdDkiPjwvc3Bhbj48L3NwYW4+PGJyPgorPGNhbnZhcyBpZD0iY2FudmFz
OSIgd2lkdGg9NDAwIGhlaWdodD0yMCBzdHlsZT0iYm9yZGVyOjFweCBzb2xpZCBibGFjayI+PC9j
YW52YXM+Cis8L2Rpdj4KKzxkaXYgZGlyPSJydGwiPgorPHNwYW4+VGVzdHMgdGhhdCBjaGFuZ2Ug
aW4gZWxlbWVudCdzIGRpciBhdHRyaWJ1dGUgaXMgcmVmbGVjdGVkIGluIGNvbnRleHQuZGlyZWN0
aW9uIGFzIGx0cjogPHNwYW4gaWQ9InJlc3VsdDEwIj48L3NwYW4+PC9zcGFuPjxicj4KKzxjYW52
YXMgaWQ9ImNhbnZhczEwIiB3aWR0aD00MDAgaGVpZ2h0PTIwIHN0eWxlPSJib3JkZXI6MXB4IHNv
bGlkIGJsYWNrIj48L2NhbnZhcz4KKzwvZGl2PgorPGRpdj4KKzxzcGFuPlRlc3RzIHRoYXQgY29u
dGV4dC5kaXJlY3Rpb24gcmVmbGVjdHMgdGhlIHZhbGlkIGRpcmVjdGlvbiBhZnRlciBzYXZlL3Jl
c3RvcmUgY29udGV4dCBvcGVyYXRpb25zOiA8c3BhbiBpZD0icmVzdWx0MTEiPjwvc3Bhbj48L3Nw
YW4+PGJyPgorPGNhbnZhcyBpZD0iY2FudmFzMTEiIHN0eWxlPSJib3JkZXI6MXB4IHNvbGlkIGJs
YWNrIj48L2NhbnZhcz4KKzwvZGl2PgogPGRpdiBpZD0icmVzdWx0cyI+CiA8L2Rpdj4KIDxzY3Jp
cHQ+CkBAIC0xMjMsNiArMTM1LDU3IEBAIGZ1bmN0aW9uIHZlcmlmeURpcmVjdGlvbkFmdGVyUmVz
ZXQoY2FudmFzSWQsIHRleHQsIGRpcmVjdGlvbiwgZXhwZWN0ZWREaXJlY3Rpb24pCiAgICAgZG9j
dW1lbnQuYm9keS5yZW1vdmVDaGlsZChjYW52YXNFbGVtZW50LnBhcmVudEVsZW1lbnQpOwogfQog
CitmdW5jdGlvbiB2ZXJpZnlEaXJlY3Rpb25BZnRlckF0dHJpYnV0ZUNoYW5nZShjYW52YXNJZCwg
cmVzdWx0SWQsIHRleHQsIG5ld0RpcmVjdGlvbiwgZm9yUGFyZW50RWxlbWVudCkKK3sKKyAgICB2
YXIgY2FudmFzRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGNhbnZhc0lkKTsKKyAg
ICB2YXIgcmVzdWx0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHJlc3VsdElkKTsK
KyAgICB2YXIgY3R4ID0gY2FudmFzRWxlbWVudC5nZXRDb250ZXh0KCcyZCcpOworICAgIHZhciB3
aWR0aCA9IGNhbnZhc0VsZW1lbnQud2lkdGgvMjsKKyAgICB2YXIgaGVpZ2h0ID0gY2FudmFzRWxl
bWVudC5oZWlnaHQ7CisKKyAgICBpZiAoZm9yUGFyZW50RWxlbWVudCkKKyAgICAgICAgY2FudmFz
RWxlbWVudC5wYXJlbnRFbGVtZW50LmRpciA9IG5ld0RpcmVjdGlvbjsKKyAgICBlbHNlCisgICAg
ICAgIGNhbnZhc0VsZW1lbnQuZGlyID0gbmV3RGlyZWN0aW9uOworICAgIHJlc3VsdEVsZW1lbnQu
dGV4dENvbnRlbnQgPSBjdHguZGlyZWN0aW9uID09IG5ld0RpcmVjdGlvbiA/ICdQQVNTJyA6ICdG
QUlMJzsKKyAgICByZXN1bHRFbGVtZW50LmNsYXNzTmFtZSA9IGN0eC5kaXJlY3Rpb24gPT0gbmV3
RGlyZWN0aW9uID8gJ3Bhc3MnIDogJ2ZhaWwnOworICAgIGN0eC5tb3ZlVG8od2lkdGgsIDApOwor
ICAgIGN0eC5saW5lVG8od2lkdGgsIGhlaWdodCk7CisgICAgY3R4LnN0cm9rZSgpOworICAgIGN0
eC5mb250ID0gZm9udFNldHRpbmdzOworICAgIGN0eC5maWxsVGV4dCh0ZXh0LCB3aWR0aCwgaGVp
Z2h0LzIpOworfQorCitmdW5jdGlvbiB2ZXJpZnlEaXJlY3Rpb25BY3Jvc3NTYXZlUmVzdG9yZXMo
Y2FudmFzSWQsIHJlc3VsdElkLCB0ZXN0VmVjdG9yKQoreworICAgIHZhciBjYW52YXNFbGVtZW50
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoY2FudmFzSWQpOworICAgIHZhciByZXN1bHRFbGVt
ZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocmVzdWx0SWQpOworICAgIHZhciBjdHggPSBj
YW52YXNFbGVtZW50LmdldENvbnRleHQoJzJkJyk7CisgICAgdmFyIHdpZHRoID0gY2FudmFzRWxl
bWVudC53aWR0aC8yOworICAgIHZhciBoZWlnaHQgPSAwOworICAgIGN0eC5tb3ZlVG8od2lkdGgs
IDApOworICAgIGN0eC5saW5lVG8od2lkdGgsIGNhbnZhc0VsZW1lbnQuaGVpZ2h0KTsKKyAgICBj
dHguc3Ryb2tlKCk7CisgICAgY3R4LmZvbnQgPSBmb250U2V0dGluZ3M7CisgICAgdmFyIHRlc3RW
ZWN0b3JMZW5ndGggPSB0ZXN0VmVjdG9yLmxlbmd0aDsKKyAgICB2YXIgaSA9IDA7CisgICAgZm9y
ICg7IGkgPCB0ZXN0VmVjdG9yLmxlbmd0aDsgKytpKSB7CisgICAgICAgIGhlaWdodCArPSAyMDsK
KyAgICAgICAgY3R4LmRpcmVjdGlvbiA9IHRlc3RWZWN0b3JbaV0uZGlyZWN0aW9uOworICAgICAg
ICBjdHguZmlsbFRleHQodGVzdFZlY3RvcltpXS50ZXh0LCB3aWR0aCwgaGVpZ2h0KTsKKyAgICAg
ICAgaWYgKGkgIT0gdGVzdFZlY3Rvckxlbmd0aCAtIDEpCisgICAgICAgICAgICBjdHguc2F2ZSgp
OworICAgIH0KKyAgICB2YXIgdmFsaWREaXJlY3Rpb25Db3VudCA9IDA7CisgICAgZm9yICgtLWk7
IGkgPiAwOyAtLWkpIHsKKyAgICAgICAgY3R4LnJlc3RvcmUoKTsKKyAgICAgICAgaWYgKGN0eC5k
aXJlY3Rpb24gPT0gdGVzdFZlY3RvcltpIC0gMV0uZGlyZWN0aW9uKQorICAgICAgICAgICAgdmFs
aWREaXJlY3Rpb25Db3VudCsrOworICAgIH0KKyAgICByZXN1bHRFbGVtZW50LnRleHRDb250ZW50
ID0gdmFsaWREaXJlY3Rpb25Db3VudCA9PSB0ZXN0VmVjdG9yTGVuZ3RoIC0gMSA/ICdQQVNTJyA6
ICdGQUlMJzsKKyAgICByZXN1bHRFbGVtZW50LmNsYXNzTmFtZSA9IHZhbGlkRGlyZWN0aW9uQ291
bnQgPT0gdGVzdFZlY3Rvckxlbmd0aCAtIDEgPyAncGFzcycgOiAnZmFpbCc7Cit9CisKIGZ1bmN0
aW9uIHZlcmlmeUludmFsaWREaXJlY3Rpb24oZGlyZWN0aW9uKQogewogICAgIHZhciBjdHggPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKS5nZXRDb250ZXh0KCcyZCcpOwpAQCAtMTQ0
LDYgKzIwNywxOCBAQCB2ZXJpZnlEcmF3VGV4dFdpdGhTcGVjaWZpZWREaXJlY3Rpb24oJ2NhbnZh
czYnLCAncmVzdWx0NicsICdSaWdodC10by1MZWZ0IHRleHQnLAogdmVyaWZ5RGlyZWN0aW9uQWZ0
ZXJSZXNldCgnY2FudmFzNycsICdSaWdodC10by1MZWZ0JywgJ3J0bCcsICdsdHInKTsKIHZlcmlm
eURpcmVjdGlvbkFmdGVyUmVzZXQoJ2NhbnZhczgnLCAnUmlnaHQtdG8tTGVmdCcsICdsdHInLCAn
cnRsJyk7CiAKK3ZlcmlmeURpcmVjdGlvbkFmdGVyQXR0cmlidXRlQ2hhbmdlKCdjYW52YXM5Jywg
J3Jlc3VsdDknLCAnUmlnaHQtdG8tTGVmdCB0ZXh0JywgJ3J0bCcsIHRydWUpOwordmVyaWZ5RGly
ZWN0aW9uQWZ0ZXJBdHRyaWJ1dGVDaGFuZ2UoJ2NhbnZhczEwJywgJ3Jlc3VsdDEwJywgJ0xlZnQt
dG8tUmlnaHQgdGV4dCcsICdsdHInLCBmYWxzZSk7CisKK3ZlcmlmeURpcmVjdGlvbkFjcm9zc1Nh
dmVSZXN0b3JlcygnY2FudmFzMTEnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICdyZXN1bHQxMScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3sgdGV4dDog
J0xlZnQtdG8tUmlnaHQgdGV4dCcsIGRpcmVjdGlvbjogJ2x0cicgfSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgeyB0ZXh0OiAnUmlnaHQtdG8tTGVmdCB0ZXh0JywgZGlyZWN0
aW9uOiAncnRsJyB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHRleHQ6
ICdSaWdodC10by1MZWZ0IHRleHQnLCBkaXJlY3Rpb246ICdydGwnIH0sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHsgdGV4dDogJ0xlZnQtdG8tUmlnaHQgdGV4dCcsIGRpcmVj
dGlvbjogJ2x0cicgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB0ZXh0
OiAnUmlnaHQtdG8tTGVmdCB0ZXh0JywgZGlyZWN0aW9uOiAncnRsJyB9LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB7IHRleHQ6ICdSaWdodC10by1MZWZ0IHRleHQnLCBkaXJl
Y3Rpb246ICdydGwnIH1dKTsKKwogdmVyaWZ5SW52YWxpZERpcmVjdGlvbignUlRMJyk7CiB2ZXJp
ZnlJbnZhbGlkRGlyZWN0aW9uKCdMVFInKTsKIHZlcmlmeUludmFsaWREaXJlY3Rpb24oJ0lOSEVS
SVQnKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>237145</attachid>
            <date>2014-08-26 03:26:10 -0700</date>
            <delta_ts>2014-08-26 20:53:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136098-20140826155601.patch</filename>
            <type>text/plain</type>
            <size>14578</size>
            <attacher name="Vivek Galatage">vivekg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcyOTQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWM2NDE3MWU2ZDVkMjU5
OTYwYTc0MTIwZTlmYTQ4NmI3OTI4YjU0My4uNjQxNjAwZTc5ZWIxODhhZjIwMTYyN2NmMzY1NjI1
ODZmMzdhMzE3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE0LTA4LTI2ICBWaXZl
ayBHYWxhdGFnZSAgPHZpdmVrLnZnQHNhbXN1bmcuY29tPgorCisgICAgICAgIENhbnZhcyBkaXJl
Y3Rpb24gc2hvdWxkIHJlZmxlY3QgY2hhbmdlIGluIGRpciBhdHRyaWJ1dGUgYW5kIGFsc28gYWNy
b3NzIHNhdmUvcmVzdG9yZSBvcGVyYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMzYwOTgKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBB
ZGxlci4KKworICAgICAgICBDaGFuZ2VkIFN0YXRlLm1fZGlyZWN0aW9uIHR5cGUgZnJvbSBUZXh0
RGlyZWN0aW9uIHRvIERpcmVjdGlvbiBlbnVtIHRvIGFjY29tb2RhdGUgJ2luaGVyaXQnCisgICAg
ICAgIGFzIGEgc2VwYXJhdGUgdmFsdWUuIE1vZGlmaWVkIHRoZSBnZXR0ZXIgdG8gY29tcHV0ZSB0
aGUgJ2xpdmUnIHZhbHVlIGZvciB0aGUgZGlyZWN0aW9uIGF0dHJpYnV0ZS4KKyAgICAgICAgUmVt
b3ZlZCBleHBsaWNpdCBwYXNzaW5nIG9mIGRpcmVjdGlvbiB0byBDYW52YXNSZW5kZXJpbmdDb250
ZXh0MkQ6OlN0YXRlIGNvbnN0cnVjdG9yLgorCisgICAgICAgIFVwZGF0ZWQgZXhpc3RpbmcgY2Fu
dmFzLWRpcmVjdGlvbi5odG1sIHdpdGggYWRkaXRpb25hbCBjYXNlcyB0byByZWZsZWN0IHRoaXMg
Y2hhbmdlLgorCisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Q2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEKToKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRDo6cmVzZXQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEOjpTdGF0ZTo6U3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJEOjp0b1RleHREaXJlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEOjpkaXJlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEOjpzZXREaXJlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEOjpkcmF3VGV4dEludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6Omlu
aGVyaXRlZERpcmVjdGlvbik6IERlbGV0ZWQuCisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJELmg6CisKIDIwMTQtMDgtMjUgIFphbGFuIEJ1anRhcyAgPHphbGFu
QGFwcGxlLmNvbT4KIAogICAgICAgICBTdWJwaXhlbCBsYXlvdXQ6IHJlbW92ZSByb3VuZGVkTGF5
b3V0UG9pbnQvcm91bmRlZExheW91dFNpemUgZnVuY3Rpb25zLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKaW5kZXgg
M2ZjMzRlZDZjOTBmNWVkN2YxZmFjYjAxNDIzZWFiODYwMWQwNjU1OC4uZjg4ZjM0MTZkNGM4Zjlm
YzM4NThkMTFkOGRjODc4Y2JjNGZlZmEwOCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCkBAIC0xMDQsMTMgKzEw
NCw2IEBAIHByaXZhdGU6CiAgICAgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKiBtX2NhbnZhc0Nv
bnRleHQ7CiB9OwogCi1zdGF0aWMgaW5saW5lIFRleHREaXJlY3Rpb24gaW5oZXJpdGVkRGlyZWN0
aW9uKEhUTUxDYW52YXNFbGVtZW50JiBjYW52YXNFbGVtZW50KQotewotICAgIGNhbnZhc0VsZW1l
bnQuZG9jdW1lbnQoKS51cGRhdGVTdHlsZUlmTmVlZGVkKCk7Ci0gICAgUmVuZGVyU3R5bGUqIGNv
bXB1dGVkU3R5bGUgPSBjYW52YXNFbGVtZW50LmNvbXB1dGVkU3R5bGUoKTsKLSAgICByZXR1cm4g
Y29tcHV0ZWRTdHlsZSA/IGNvbXB1dGVkU3R5bGUtPmRpcmVjdGlvbigpIDogTFRSOwotfQotCiBD
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRChIVE1MQ2Fu
dmFzRWxlbWVudCogY2FudmFzLCBib29sIHVzZXNDU1NDb21wYXRpYmlsaXR5UGFyc2VNb2RlLCBi
b29sIHVzZXNEYXNoYm9hcmRDb21wYXRpYmlsaXR5TW9kZSkKICAgICA6IENhbnZhc1JlbmRlcmlu
Z0NvbnRleHQoY2FudmFzKQogICAgICwgbV9zdGF0ZVN0YWNrKDEpCkBAIC0xMjAsNyArMTEzLDYg
QEAgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQoSFRN
TENhbnZhc0VsZW1lbnQqIGNhbnZhcywgYm8KICAgICAsIG1fdXNlc0Rhc2hib2FyZENvbXBhdGli
aWxpdHlNb2RlKHVzZXNEYXNoYm9hcmRDb21wYXRpYmlsaXR5TW9kZSkKICNlbmRpZgogewotICAg
IG1fc3RhdGVTdGFjay5maXJzdCgpLm1fZGlyZWN0aW9uID0gaW5oZXJpdGVkRGlyZWN0aW9uKCpj
YW52YXMpOwogI2lmICFFTkFCTEUoREFTSEJPQVJEX1NVUFBPUlQpCiAgICAgQVNTRVJUX1VOVVNF
RCh1c2VzRGFzaGJvYXJkQ29tcGF0aWJpbGl0eU1vZGUsICF1c2VzRGFzaGJvYXJkQ29tcGF0aWJp
bGl0eU1vZGUpOwogI2VuZGlmCkBAIC0xNjIsMTIgKzE1NCwxMiBAQCB2b2lkIENhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRDo6cmVzZXQoKQogewogICAgIHVud2luZFN0YXRlU3RhY2soKTsKICAgICBt
X3N0YXRlU3RhY2sucmVzaXplKDEpOwotICAgIG1fc3RhdGVTdGFjay5maXJzdCgpID0gU3RhdGUo
aW5oZXJpdGVkRGlyZWN0aW9uKCpjYW52YXMoKSkpOworICAgIG1fc3RhdGVTdGFjay5maXJzdCgp
ID0gU3RhdGUoKTsKICAgICBtX3BhdGguY2xlYXIoKTsKICAgICBtX3VucmVhbGl6ZWRTYXZlQ291
bnQgPSAwOwogfQogCi1DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OlN0YXRlOjpTdGF0ZShUZXh0
RGlyZWN0aW9uIGRpcmVjdGlvbikKK0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6U3RhdGU6OlN0
YXRlKCkKICAgICA6IG1fc3Ryb2tlU3R5bGUoQ29sb3I6OmJsYWNrKQogICAgICwgbV9maWxsU3R5
bGUoQ29sb3I6OmJsYWNrKQogICAgICwgbV9saW5lV2lkdGgoMSkKQEAgLTE4NCw3ICsxNzYsNyBA
QCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OlN0YXRlOjpTdGF0ZShUZXh0RGlyZWN0aW9uIGRp
cmVjdGlvbikKICAgICAsIG1faW1hZ2VTbW9vdGhpbmdFbmFibGVkKHRydWUpCiAgICAgLCBtX3Rl
eHRBbGlnbihTdGFydFRleHRBbGlnbikKICAgICAsIG1fdGV4dEJhc2VsaW5lKEFscGhhYmV0aWNU
ZXh0QmFzZWxpbmUpCi0gICAgLCBtX2RpcmVjdGlvbihkaXJlY3Rpb24pCisgICAgLCBtX2RpcmVj
dGlvbihEaXJlY3Rpb246OkluaGVyaXQpCiAgICAgLCBtX3VucGFyc2VkRm9udChkZWZhdWx0Rm9u
dCkKICAgICAsIG1fcmVhbGl6ZWRGb250KGZhbHNlKQogewpAQCAtMjE2MywyMCArMjE1NSwzOSBA
QCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6c2V0VGV4dEJhc2VsaW5lKGNvbnN0IFN0
cmluZyYgcykKICAgICBtb2RpZmlhYmxlU3RhdGUoKS5tX3RleHRCYXNlbGluZSA9IGJhc2VsaW5l
OwogfQogCitpbmxpbmUgVGV4dERpcmVjdGlvbiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnRv
VGV4dERpcmVjdGlvbihEaXJlY3Rpb24gZGlyZWN0aW9uLCBSZW5kZXJTdHlsZSoqIGNvbXB1dGVk
U3R5bGUpIGNvbnN0Cit7CisgICAgUmVuZGVyU3R5bGUqIHN0eWxlID0gKGNvbXB1dGVkU3R5bGUg
fHwgZGlyZWN0aW9uID09IERpcmVjdGlvbjo6SW5oZXJpdCkgPyBjYW52YXMoKS0+Y29tcHV0ZWRT
dHlsZSgpIDogbnVsbHB0cjsKKyAgICBpZiAoY29tcHV0ZWRTdHlsZSkKKyAgICAgICAgKmNvbXB1
dGVkU3R5bGUgPSBzdHlsZTsKKyAgICBzd2l0Y2ggKGRpcmVjdGlvbikgeworICAgIGNhc2UgRGly
ZWN0aW9uOjpJbmhlcml0OgorICAgICAgICByZXR1cm4gc3R5bGUgPyBzdHlsZS0+ZGlyZWN0aW9u
KCkgOiBMVFI7CisgICAgY2FzZSBEaXJlY3Rpb246OlJUTDoKKyAgICAgICAgcmV0dXJuIFJUTDsK
KyAgICBjYXNlIERpcmVjdGlvbjo6TFRSOgorICAgICAgICByZXR1cm4gTFRSOworICAgIH0KKyAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gTFRSOworfQorCiBTdHJpbmcgQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJEOjpkaXJlY3Rpb24oKSBjb25zdAogewotICAgIHJldHVybiBz
dGF0ZSgpLm1fZGlyZWN0aW9uID09IFJUTCA/IEFTQ0lJTGl0ZXJhbCgicnRsIikgOiBBU0NJSUxp
dGVyYWwoImx0ciIpOworICAgIGlmIChzdGF0ZSgpLm1fZGlyZWN0aW9uID09IERpcmVjdGlvbjo6
SW5oZXJpdCkKKyAgICAgICAgY2FudmFzKCktPmRvY3VtZW50KCkudXBkYXRlU3R5bGVJZk5lZWRl
ZCgpOworICAgIHJldHVybiB0b1RleHREaXJlY3Rpb24oc3RhdGUoKS5tX2RpcmVjdGlvbikgPT0g
UlRMID8gQVNDSUlMaXRlcmFsKCJydGwiKSA6IEFTQ0lJTGl0ZXJhbCgibHRyIik7CiB9CiAKIHZv
aWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpzZXREaXJlY3Rpb24oY29uc3QgU3RyaW5nJiBk
aXJlY3Rpb25TdHJpbmcpCiB7Ci0gICAgVGV4dERpcmVjdGlvbiBkaXJlY3Rpb247CisgICAgRGly
ZWN0aW9uIGRpcmVjdGlvbjsKICAgICBpZiAoZGlyZWN0aW9uU3RyaW5nID09ICJpbmhlcml0IikK
LSAgICAgICAgZGlyZWN0aW9uID0gaW5oZXJpdGVkRGlyZWN0aW9uKCpjYW52YXMoKSk7CisgICAg
ICAgIGRpcmVjdGlvbiA9IERpcmVjdGlvbjo6SW5oZXJpdDsKICAgICBlbHNlIGlmIChkaXJlY3Rp
b25TdHJpbmcgPT0gInJ0bCIpCi0gICAgICAgIGRpcmVjdGlvbiA9IFJUTDsKKyAgICAgICAgZGly
ZWN0aW9uID0gRGlyZWN0aW9uOjpSVEw7CiAgICAgZWxzZSBpZiAoZGlyZWN0aW9uU3RyaW5nID09
ICJsdHIiKQotICAgICAgICBkaXJlY3Rpb24gPSBMVFI7CisgICAgICAgIGRpcmVjdGlvbiA9IERp
cmVjdGlvbjo6TFRSOwogICAgIGVsc2UKICAgICAgICAgcmV0dXJuOwogCkBAIC0yMjgzLDExICsy
Mjk0LDEzIEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpkcmF3VGV4dEludGVybmFs
KGNvbnN0IFN0cmluZyYgdGV4dCwgZmxvYXQgeCwgZmxvCiAKICAgICAvLyBGSVhNRTogTmVlZCB0
byB0dXJuIG9mZiBmb250IHNtb290aGluZy4KIAotICAgIFJlbmRlclN0eWxlKiBjb21wdXRlZFN0
eWxlID0gY2FudmFzKCktPmNvbXB1dGVkU3R5bGUoKTsKLSAgICBib29sIGlzUlRMID0gc3RhdGUo
KS5tX2RpcmVjdGlvbiA9PSBSVEw7CisgICAgUmVuZGVyU3R5bGUqIGNvbXB1dGVkU3R5bGU7Cisg
ICAgY2FudmFzKCktPmRvY3VtZW50KCkudXBkYXRlU3R5bGVJZk5lZWRlZCgpOworICAgIFRleHRE
aXJlY3Rpb24gZGlyZWN0aW9uID0gdG9UZXh0RGlyZWN0aW9uKHN0YXRlKCkubV9kaXJlY3Rpb24s
ICZjb21wdXRlZFN0eWxlKTsKKyAgICBib29sIGlzUlRMID0gZGlyZWN0aW9uID09IFJUTDsKICAg
ICBib29sIG92ZXJyaWRlID0gY29tcHV0ZWRTdHlsZSA/IGlzT3ZlcnJpZGUoY29tcHV0ZWRTdHls
ZS0+dW5pY29kZUJpZGkoKSkgOiBmYWxzZTsKIAotICAgIFRleHRSdW4gdGV4dFJ1bihub3JtYWxp
emVkVGV4dCwgMCwgMCwgVGV4dFJ1bjo6QWxsb3dUcmFpbGluZ0V4cGFuc2lvbiwgc3RhdGUoKS5t
X2RpcmVjdGlvbiwgb3ZlcnJpZGUsIHRydWUsIFRleHRSdW46Ok5vUm91bmRpbmcpOworICAgIFRl
eHRSdW4gdGV4dFJ1bihub3JtYWxpemVkVGV4dCwgMCwgMCwgVGV4dFJ1bjo6QWxsb3dUcmFpbGlu
Z0V4cGFuc2lvbiwgZGlyZWN0aW9uLCBvdmVycmlkZSwgdHJ1ZSwgVGV4dFJ1bjo6Tm9Sb3VuZGlu
Zyk7CiAgICAgLy8gRHJhdyB0aGUgaXRlbSB0ZXh0IGF0IHRoZSBjb3JyZWN0IHBvaW50LgogICAg
IEZsb2F0UG9pbnQgbG9jYXRpb24oeCwgeSk7CiAgICAgc3dpdGNoIChzdGF0ZSgpLm1fdGV4dEJh
c2VsaW5lKSB7CkBAIC0yMzA4LDcgKzIzMjEsNyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRDo6ZHJhd1RleHRJbnRlcm5hbChjb25zdCBTdHJpbmcmIHRleHQsIGZsb2F0IHgsIGZsbwog
ICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICBmbG9hdCBmb250V2lkdGggPSBmb250LndpZHRo
KFRleHRSdW4obm9ybWFsaXplZFRleHQsIDAsIDAsIFRleHRSdW46OkFsbG93VHJhaWxpbmdFeHBh
bnNpb24sIHN0YXRlKCkubV9kaXJlY3Rpb24sIG92ZXJyaWRlKSk7CisgICAgZmxvYXQgZm9udFdp
ZHRoID0gZm9udC53aWR0aChUZXh0UnVuKG5vcm1hbGl6ZWRUZXh0LCAwLCAwLCBUZXh0UnVuOjpB
bGxvd1RyYWlsaW5nRXhwYW5zaW9uLCBkaXJlY3Rpb24sIG92ZXJyaWRlKSk7CiAKICAgICB1c2VN
YXhXaWR0aCA9ICh1c2VNYXhXaWR0aCAmJiBtYXhXaWR0aCA8IGZvbnRXaWR0aCk7CiAgICAgZmxv
YXQgd2lkdGggPSB1c2VNYXhXaWR0aCA/IG1heFdpZHRoIDogZm9udFdpZHRoOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaApp
bmRleCBhZGI5NmU3N2JmOGFlZTExOTdkZjZlNTkxNmM1MmJjNTI5NTA5YTBhLi42MDYxN2I4ZWZh
MjAzNDgxMDI4MDU2MWE5Y2MwNjdkYjFjYzEzMDFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaApAQCAtMjI4LDggKzIy
OCwxNCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRXZWJraXRJbWFnZVNtb290aGluZ0VuYWJsZWQo
Ym9vbCk7CiAKIHByaXZhdGU6CisgICAgZW51bSBjbGFzcyBEaXJlY3Rpb24geworICAgICAgICBJ
bmhlcml0LAorICAgICAgICBSVEwsCisgICAgICAgIExUUgorICAgIH07CisKICAgICBzdHJ1Y3Qg
U3RhdGUgOiBGb250U2VsZWN0b3JDbGllbnQgewotICAgICAgICBleHBsaWNpdCBTdGF0ZShUZXh0
RGlyZWN0aW9uID0gTFRSKTsKKyAgICAgICAgU3RhdGUoKTsKICAgICAgICAgdmlydHVhbCB+U3Rh
dGUoKTsKIAogICAgICAgICBTdGF0ZShjb25zdCBTdGF0ZSYpOwpAQCAtMjYwLDcgKzI2Niw3IEBA
IHByaXZhdGU6CiAgICAgICAgIC8vIFRleHQgc3RhdGUuCiAgICAgICAgIFRleHRBbGlnbiBtX3Rl
eHRBbGlnbjsKICAgICAgICAgVGV4dEJhc2VsaW5lIG1fdGV4dEJhc2VsaW5lOwotICAgICAgICBU
ZXh0RGlyZWN0aW9uIG1fZGlyZWN0aW9uOworICAgICAgICBEaXJlY3Rpb24gbV9kaXJlY3Rpb247
CiAKICAgICAgICAgU3RyaW5nIG1fdW5wYXJzZWRGb250OwogICAgICAgICBGb250IG1fZm9udDsK
QEAgLTMzOSw2ICszNDUsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc0FjY2VsZXJh
dGVkKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIGJvb2wgaGFzSW52ZXJ0aWJsZVRy
YW5zZm9ybSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHN0YXRlKCkubV9oYXNJbnZlcnRpYmxl
VHJhbnNmb3JtOyB9CisgICAgVGV4dERpcmVjdGlvbiB0b1RleHREaXJlY3Rpb24oRGlyZWN0aW9u
LCBSZW5kZXJTdHlsZSoqIGNvbXB1dGVkU3R5bGUgPSBudWxscHRyKSBjb25zdDsKIAogI2lmIEVO
QUJMRShBQ0NFTEVSQVRFRF8yRF9DQU5WQVMpCiAgICAgdmlydHVhbCBQbGF0Zm9ybUxheWVyKiBw
bGF0Zm9ybUxheWVyKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDFlNGVjN2ZiMmU5ZTA1M2Q5
ZGM2MThlOWFhZTU5YjUwOGVjMjY0OC4uYmUwMjQwM2EyMDY2MTljYjhlNzAyYzRhMTZiNzZlNmQ3
YTUzMmZjMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE0LTA4LTI2ICBWaXZlayBHYWxhdGFn
ZSAgPHZpdmVrLnZnQHNhbXN1bmcuY29tPgorCisgICAgICAgIENhbnZhcyBkaXJlY3Rpb24gc2hv
dWxkIHJlZmxlY3QgY2hhbmdlIGluIGRpciBhdHRyaWJ1dGUgYW5kIGFsc28gYWNyb3NzIHNhdmUv
cmVzdG9yZSBvcGVyYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMzYwOTgKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKwor
ICAgICAgICAqIGZhc3QvY2FudmFzL2NhbnZhcy1kaXJlY3Rpb24tZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGZhc3QvY2FudmFzL2NhbnZhcy1kaXJlY3Rpb24uaHRtbDoKKwogMjAxNC0wOC0yMyAg
RmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIEZUTCBzaG91bGQgYmUg
YWJsZSB0byBkbyBwb2x5bW9ycGhpYyBjYWxsIGlubGluaW5nCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtZGlyZWN0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1kaXJlY3Rpb24tZXhwZWN0ZWQudHh0CmluZGV4IDBjMTQx
MmRiMDczMjRlNmQyMGZmNDUzMjNkNGYzZWM1ODk4Yzc2ODUuLjFjNTNkZmMxOGFhN2UzMDNiN2Rj
MTA1YWRkMjk0Njg4NDk0MTk4MjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFz
L2NhbnZhcy1kaXJlY3Rpb24tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2Fu
dmFzL2NhbnZhcy1kaXJlY3Rpb24tZXhwZWN0ZWQudHh0CkBAIC01LDYgKzUsOSBAQCBUZXN0cyB0
aGF0IGNvbnRleHQuZGlyZWN0aW9uIGlzIG92ZXJyaWRkZW4gYnkgJ3J0bCcgd2l0aCBwYXJlbnQg
ZWxlbWVudCBoYXZpbmcgdQogVGVzdHMgdGhhdCBjb250ZXh0LmRpcmVjdGlvbiBpcyBvdmVycmlk
ZGVuIGJ5ICdsdHInIHdpdGggcGFyZW50IGVsZW1lbnQgaGF2aW5nIGRpcmVjdGlvbiBhcyBydGw6
IFBBU1MKIFRlc3RzIHRoYXQgY29udGV4dC5kaXJlY3Rpb24gaXMgb3ZlcnJpZGRlbiBieSAnaW5o
ZXJpdCcgd2l0aCBwYXJlbnQgZWxlbWVudCBoYXZpbmcgdW5zcGVjaWZpZWQgZGlyZWN0aW9uOiBQ
QVNTCiBUZXN0cyB0aGF0IGNvbnRleHQuZGlyZWN0aW9uIGlzIG92ZXJyaWRkZW4gYnkgJ2luaGVy
aXQnIHdpdGggcGFyZW50IGVsZW1lbnQgaGF2aW5nIGRpcmVjdGlvbiBhcyBydGw6IFBBU1MKK1Rl
c3RzIHRoYXQgY2hhbmdlIGluIGVsZW1lbnQncyBkaXIgYXR0cmlidXRlIGlzIHJlZmxlY3RlZCBp
biBjb250ZXh0LmRpcmVjdGlvbiBhcyBydGw6IFBBU1MKK1Rlc3RzIHRoYXQgY2hhbmdlIGluIGVs
ZW1lbnQncyBkaXIgYXR0cmlidXRlIGlzIHJlZmxlY3RlZCBpbiBjb250ZXh0LmRpcmVjdGlvbiBh
cyBsdHI6IFBBU1MKK1Rlc3RzIHRoYXQgY29udGV4dC5kaXJlY3Rpb24gcmVmbGVjdHMgdGhlIHZh
bGlkIGRpcmVjdGlvbiBhZnRlciBzYXZlL3Jlc3RvcmUgY29udGV4dCBvcGVyYXRpb25zOiBQQVNT
CiBUZXN0cyB0aGF0IGNvbnRleHQucmVzZXQoKSBzZXRzIHRoZSBjb250ZXh0LmRpcmVjdGlvbiB0
byBsdHI6IFBBU1MKIFRlc3RzIHRoYXQgY29udGV4dC5yZXNldCgpIHNldHMgdGhlIGNvbnRleHQu
ZGlyZWN0aW9uIHRvIHJ0bDogUEFTUwogVGVzdHMgdGhhdCBpbnZhbGlkIGRpcmVjdGlvbiB2YWx1
ZSBSVEwgaGFzIG5vIGVmZmVjdCBvbiB0aGUgY29udGV4dC5kaXJlY3Rpb246IFBBU1MKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1kaXJlY3Rpb24uaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1kaXJlY3Rpb24uaHRtbAppbmRleCBiN2U0OTc0
NTg1YzI3YWE3OWI4YTRmYWRlZjk1MDczNTQ4NDY5NDE4Li5iZjU3NmIyYzIyYzQxMzI2NDExMjAy
YzI5MTlmZjg4NTQ5NTE2NjI0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9j
YW52YXMtZGlyZWN0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFz
LWRpcmVjdGlvbi5odG1sCkBAIC00Niw2ICs0NiwxOCBAQAogPHNwYW4+VGVzdHMgdGhhdCBjb250
ZXh0LnJlc2V0IHNldHMgdGhlIGRpcmVjdGlvbiBhcyBydGw8c3BhbiBpZD0icmVzdWx0OCI+PC9z
cGFuPjwvc3Bhbj48YnI+CiA8Y2FudmFzIGlkPSJjYW52YXM4IiB3aWR0aD00MDAgaGVpZ2h0PTIw
IHN0eWxlPSJib3JkZXI6MXB4IHNvbGlkIGJsYWNrIj48L2NhbnZhcz4KIDwvZGl2PgorPGRpdj4K
KzxzcGFuPlRlc3RzIHRoYXQgY2hhbmdlIGluIGVsZW1lbnQncyBkaXIgYXR0cmlidXRlIGlzIHJl
ZmxlY3RlZCBpbiBjb250ZXh0LmRpcmVjdGlvbiBhcyBydGw6IDxzcGFuIGlkPSJyZXN1bHQ5Ij48
L3NwYW4+PC9zcGFuPjxicj4KKzxjYW52YXMgaWQ9ImNhbnZhczkiIHdpZHRoPTQwMCBoZWlnaHQ9
MjAgc3R5bGU9ImJvcmRlcjoxcHggc29saWQgYmxhY2siPjwvY2FudmFzPgorPC9kaXY+Cis8ZGl2
IGRpcj0icnRsIj4KKzxzcGFuPlRlc3RzIHRoYXQgY2hhbmdlIGluIGVsZW1lbnQncyBkaXIgYXR0
cmlidXRlIGlzIHJlZmxlY3RlZCBpbiBjb250ZXh0LmRpcmVjdGlvbiBhcyBsdHI6IDxzcGFuIGlk
PSJyZXN1bHQxMCI+PC9zcGFuPjwvc3Bhbj48YnI+Cis8Y2FudmFzIGlkPSJjYW52YXMxMCIgd2lk
dGg9NDAwIGhlaWdodD0yMCBzdHlsZT0iYm9yZGVyOjFweCBzb2xpZCBibGFjayI+PC9jYW52YXM+
Cis8L2Rpdj4KKzxkaXY+Cis8c3Bhbj5UZXN0cyB0aGF0IGNvbnRleHQuZGlyZWN0aW9uIHJlZmxl
Y3RzIHRoZSB2YWxpZCBkaXJlY3Rpb24gYWZ0ZXIgc2F2ZS9yZXN0b3JlIGNvbnRleHQgb3BlcmF0
aW9uczogPHNwYW4gaWQ9InJlc3VsdDExIj48L3NwYW4+PC9zcGFuPjxicj4KKzxjYW52YXMgaWQ9
ImNhbnZhczExIiBzdHlsZT0iYm9yZGVyOjFweCBzb2xpZCBibGFjayI+PC9jYW52YXM+Cis8L2Rp
dj4KIDxkaXYgaWQ9InJlc3VsdHMiPgogPC9kaXY+CiA8c2NyaXB0PgpAQCAtMTIzLDYgKzEzNSw1
NyBAQCBmdW5jdGlvbiB2ZXJpZnlEaXJlY3Rpb25BZnRlclJlc2V0KGNhbnZhc0lkLCB0ZXh0LCBk
aXJlY3Rpb24sIGV4cGVjdGVkRGlyZWN0aW9uKQogICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hp
bGQoY2FudmFzRWxlbWVudC5wYXJlbnRFbGVtZW50KTsKIH0KIAorZnVuY3Rpb24gdmVyaWZ5RGly
ZWN0aW9uQWZ0ZXJBdHRyaWJ1dGVDaGFuZ2UoY2FudmFzSWQsIHJlc3VsdElkLCB0ZXh0LCBuZXdE
aXJlY3Rpb24sIGZvclBhcmVudEVsZW1lbnQpCit7CisgICAgdmFyIGNhbnZhc0VsZW1lbnQgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZChjYW52YXNJZCk7CisgICAgdmFyIHJlc3VsdEVsZW1lbnQg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChyZXN1bHRJZCk7CisgICAgdmFyIGN0eCA9IGNhbnZh
c0VsZW1lbnQuZ2V0Q29udGV4dCgnMmQnKTsKKyAgICB2YXIgd2lkdGggPSBjYW52YXNFbGVtZW50
LndpZHRoLzI7CisgICAgdmFyIGhlaWdodCA9IGNhbnZhc0VsZW1lbnQuaGVpZ2h0OworCisgICAg
aWYgKGZvclBhcmVudEVsZW1lbnQpCisgICAgICAgIGNhbnZhc0VsZW1lbnQucGFyZW50RWxlbWVu
dC5kaXIgPSBuZXdEaXJlY3Rpb247CisgICAgZWxzZQorICAgICAgICBjYW52YXNFbGVtZW50LmRp
ciA9IG5ld0RpcmVjdGlvbjsKKyAgICByZXN1bHRFbGVtZW50LnRleHRDb250ZW50ID0gY3R4LmRp
cmVjdGlvbiA9PSBuZXdEaXJlY3Rpb24gPyAnUEFTUycgOiAnRkFJTCc7CisgICAgcmVzdWx0RWxl
bWVudC5jbGFzc05hbWUgPSBjdHguZGlyZWN0aW9uID09IG5ld0RpcmVjdGlvbiA/ICdwYXNzJyA6
ICdmYWlsJzsKKyAgICBjdHgubW92ZVRvKHdpZHRoLCAwKTsKKyAgICBjdHgubGluZVRvKHdpZHRo
LCBoZWlnaHQpOworICAgIGN0eC5zdHJva2UoKTsKKyAgICBjdHguZm9udCA9IGZvbnRTZXR0aW5n
czsKKyAgICBjdHguZmlsbFRleHQodGV4dCwgd2lkdGgsIGhlaWdodC8yKTsKK30KKworZnVuY3Rp
b24gdmVyaWZ5RGlyZWN0aW9uQWNyb3NzU2F2ZVJlc3RvcmVzKGNhbnZhc0lkLCByZXN1bHRJZCwg
dGVzdFZlY3RvcikKK3sKKyAgICB2YXIgY2FudmFzRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKGNhbnZhc0lkKTsKKyAgICB2YXIgcmVzdWx0RWxlbWVudCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKHJlc3VsdElkKTsKKyAgICB2YXIgY3R4ID0gY2FudmFzRWxlbWVudC5nZXRDb250
ZXh0KCcyZCcpOworICAgIHZhciB3aWR0aCA9IGNhbnZhc0VsZW1lbnQud2lkdGgvMjsKKyAgICB2
YXIgaGVpZ2h0ID0gMDsKKyAgICBjdHgubW92ZVRvKHdpZHRoLCAwKTsKKyAgICBjdHgubGluZVRv
KHdpZHRoLCBjYW52YXNFbGVtZW50LmhlaWdodCk7CisgICAgY3R4LnN0cm9rZSgpOworICAgIGN0
eC5mb250ID0gZm9udFNldHRpbmdzOworICAgIHZhciB0ZXN0VmVjdG9yTGVuZ3RoID0gdGVzdFZl
Y3Rvci5sZW5ndGg7CisgICAgdmFyIGkgPSAwOworICAgIGZvciAoOyBpIDwgdGVzdFZlY3Rvci5s
ZW5ndGg7ICsraSkgeworICAgICAgICBoZWlnaHQgKz0gMjA7CisgICAgICAgIGN0eC5kaXJlY3Rp
b24gPSB0ZXN0VmVjdG9yW2ldLmRpcmVjdGlvbjsKKyAgICAgICAgY3R4LmZpbGxUZXh0KHRlc3RW
ZWN0b3JbaV0udGV4dCwgd2lkdGgsIGhlaWdodCk7CisgICAgICAgIGlmIChpICE9IHRlc3RWZWN0
b3JMZW5ndGggLSAxKQorICAgICAgICAgICAgY3R4LnNhdmUoKTsKKyAgICB9CisgICAgdmFyIHZh
bGlkRGlyZWN0aW9uQ291bnQgPSAwOworICAgIGZvciAoLS1pOyBpID4gMDsgLS1pKSB7CisgICAg
ICAgIGN0eC5yZXN0b3JlKCk7CisgICAgICAgIGlmIChjdHguZGlyZWN0aW9uID09IHRlc3RWZWN0
b3JbaSAtIDFdLmRpcmVjdGlvbikKKyAgICAgICAgICAgIHZhbGlkRGlyZWN0aW9uQ291bnQrKzsK
KyAgICB9CisgICAgcmVzdWx0RWxlbWVudC50ZXh0Q29udGVudCA9IHZhbGlkRGlyZWN0aW9uQ291
bnQgPT0gdGVzdFZlY3Rvckxlbmd0aCAtIDEgPyAnUEFTUycgOiAnRkFJTCc7CisgICAgcmVzdWx0
RWxlbWVudC5jbGFzc05hbWUgPSB2YWxpZERpcmVjdGlvbkNvdW50ID09IHRlc3RWZWN0b3JMZW5n
dGggLSAxID8gJ3Bhc3MnIDogJ2ZhaWwnOworfQorCiBmdW5jdGlvbiB2ZXJpZnlJbnZhbGlkRGly
ZWN0aW9uKGRpcmVjdGlvbikKIHsKICAgICB2YXIgY3R4ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnY2FudmFzJykuZ2V0Q29udGV4dCgnMmQnKTsKQEAgLTE0NCw2ICsyMDcsMTggQEAgdmVyaWZ5
RHJhd1RleHRXaXRoU3BlY2lmaWVkRGlyZWN0aW9uKCdjYW52YXM2JywgJ3Jlc3VsdDYnLCAnUmln
aHQtdG8tTGVmdCB0ZXh0JywKIHZlcmlmeURpcmVjdGlvbkFmdGVyUmVzZXQoJ2NhbnZhczcnLCAn
UmlnaHQtdG8tTGVmdCcsICdydGwnLCAnbHRyJyk7CiB2ZXJpZnlEaXJlY3Rpb25BZnRlclJlc2V0
KCdjYW52YXM4JywgJ1JpZ2h0LXRvLUxlZnQnLCAnbHRyJywgJ3J0bCcpOwogCit2ZXJpZnlEaXJl
Y3Rpb25BZnRlckF0dHJpYnV0ZUNoYW5nZSgnY2FudmFzOScsICdyZXN1bHQ5JywgJ1JpZ2h0LXRv
LUxlZnQgdGV4dCcsICdydGwnLCB0cnVlKTsKK3ZlcmlmeURpcmVjdGlvbkFmdGVyQXR0cmlidXRl
Q2hhbmdlKCdjYW52YXMxMCcsICdyZXN1bHQxMCcsICdMZWZ0LXRvLVJpZ2h0IHRleHQnLCAnbHRy
JywgZmFsc2UpOworCit2ZXJpZnlEaXJlY3Rpb25BY3Jvc3NTYXZlUmVzdG9yZXMoJ2NhbnZhczEx
JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmVzdWx0MTEnLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt7IHRleHQ6ICdMZWZ0LXRvLVJpZ2h0IHRleHQn
LCBkaXJlY3Rpb246ICdsdHInIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHsgdGV4dDogJ1JpZ2h0LXRvLUxlZnQgdGV4dCcsIGRpcmVjdGlvbjogJ3J0bCcgfSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB0ZXh0OiAnUmlnaHQtdG8tTGVmdCB0ZXh0
JywgZGlyZWN0aW9uOiAncnRsJyB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB7IHRleHQ6ICdMZWZ0LXRvLVJpZ2h0IHRleHQnLCBkaXJlY3Rpb246ICdsdHInIH0sCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgdGV4dDogJ1JpZ2h0LXRvLUxlZnQgdGV4
dCcsIGRpcmVjdGlvbjogJ3J0bCcgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgeyB0ZXh0OiAnUmlnaHQtdG8tTGVmdCB0ZXh0JywgZGlyZWN0aW9uOiAncnRsJyB9XSk7CisK
IHZlcmlmeUludmFsaWREaXJlY3Rpb24oJ1JUTCcpOwogdmVyaWZ5SW52YWxpZERpcmVjdGlvbign
TFRSJyk7CiB2ZXJpZnlJbnZhbGlkRGlyZWN0aW9uKCdJTkhFUklUJyk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>