<?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>136801</bug_id>
          
          <creation_ts>2014-09-12 23:25:51 -0700</creation_ts>
          <short_desc>REGRESSION: Text with a zero offset, zero blur shadow vanishes</short_desc>
          <delta_ts>2014-09-24 19:46:41 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>data:text/html,&lt;div%20style=&quot;color:%20green;%20text-shadow:%20blue%200%200&quot;&gt;text&lt;/div&gt;</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, Regression</keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>mitz</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>d-r</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>fmalita</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jonlee</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>pdr</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1035051</commentid>
    <comment_count>0</comment_count>
    <who name="">mitz</who>
    <bug_when>2014-09-12 23:25:51 -0700</bug_when>
    <thetext>To reproduce, open the URL. The text is invisible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035347</commentid>
    <comment_count>1</comment_count>
      <attachid>238150</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-09-15 17:47:53 -0700</bug_when>
    <thetext>Created attachment 238150
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035352</commentid>
    <comment_count>2</comment_count>
      <attachid>238150</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-09-15 18:16:58 -0700</bug_when>
    <thetext>Comment on attachment 238150
Patch

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

&gt; Source/WebCore/rendering/TextPainter.cpp:82
&gt; +    // often draw the ::last:: shadow and the text itself in a single call.

I don&apos;t like ::last::

&gt; Source/WebCore/rendering/svg/SVGInlineTextBox.cpp:606
&gt; +            extraOffset = TextPainter::applyShadowToGraphicsContext(*context, shadow, shadowRect, onlyDrawsShadow,
&gt; +                TextPainter::isEmptyShadow(shadow, MainTextIsOpaqueOrNot::MainTextIsNotOpaque), Horizontal);

I think the enumification is overzealous. This is the only call site with default values for the last few parameters, and that could have been avoided by giving them default values in the declaration. Your enumification creates ugliness like DrawsRealTextAlongWithShadowOrNot::DoesNotDrawRealTextAlongWithShadow in the imp, which makes me throw up a little.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035353</commentid>
    <comment_count>3</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-09-15 18:19:13 -0700</bug_when>
    <thetext>Could just be &quot;DrawsRealTextAlongWithShadow::{Yes, No}&quot;. I think that has been suggested to me before... don&apos;t know if that would be better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035502</commentid>
    <comment_count>4</comment_count>
      <attachid>238187</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-09-16 10:46:07 -0700</bug_when>
    <thetext>Created attachment 238187
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035504</commentid>
    <comment_count>5</comment_count>
      <attachid>238187</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-09-16 11:02:14 -0700</bug_when>
    <thetext>Comment on attachment 238187
Patch

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

&gt; Source/WebCore/rendering/TextPainter.h:56
&gt; +enum class MainTextIsOpaque {
&gt; +    Yes,
&gt; +    No
&gt; +};
&gt; +enum class ShadowIsEmpty {
&gt; +    Yes,
&gt; +    No
&gt; +};
&gt; +enum class DrawsRealTextAlongWithShadow {
&gt; +    Yes,
&gt; +    No
&gt; +};

I still don&apos;t like these.

First &quot;real&quot; doesn&apos;t add anything to the last one. (What text is not &quot;real&quot; text?)

Secondly, I think they are not very readable in use:

if (opaque == MainTextIsOpaque::No)

makes me have to stop and think. This would read better as if (!opaque). I can&apos;t come up with good enum names that would make it like if (opaque == MainTextIsOpaque).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035629</commentid>
    <comment_count>6</comment_count>
      <attachid>238222</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-09-16 17:02:29 -0700</bug_when>
    <thetext>Created attachment 238222
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035633</commentid>
    <comment_count>7</comment_count>
      <attachid>238224</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-09-16 17:08:42 -0700</bug_when>
    <thetext>Created attachment 238224
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035639</commentid>
    <comment_count>8</comment_count>
      <attachid>238227</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-09-16 17:25:15 -0700</bug_when>
    <thetext>Created attachment 238227
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035658</commentid>
    <comment_count>9</comment_count>
      <attachid>238227</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-09-16 18:43:22 -0700</bug_when>
    <thetext>Comment on attachment 238227
Patch

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

&gt; Source/WebCore/rendering/TextPainter.cpp:68
&gt; +FloatSize TextPainter::applyShadowToGraphicsContext(GraphicsContext&amp; context, const ShadowData&amp; shadow, const FloatRect&amp; textRect, bool onlyDrawsShadow, bool emptyShadow, FontOrientation orientation)

emptyShadow -&gt; shadowIsEmpty

&gt; Source/WebCore/rendering/TextPainter.cpp:103
&gt; +    bool lastShadowIterationDrawsRealTextAsWell = !stroked &amp;&amp; opaque;

&quot;real text&quot;? &quot;as well&quot; doesn&apos;t seem necessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035670</commentid>
    <comment_count>10</comment_count>
      <attachid>238236</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-09-16 21:04:23 -0700</bug_when>
    <thetext>Created attachment 238236
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036352</commentid>
    <comment_count>11</comment_count>
      <attachid>238236</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-09-21 11:46:35 -0700</bug_when>
    <thetext>Comment on attachment 238236
Patch

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

It’s OK to rearrange like this. No need to have this live in InlineTextBox. But this is unnecessarily tricky to use, and the applyShadowToGraphicsContext function has two confusing boolean arguments!

I’m going to say review- because I think we can factor this better.

&gt; Source/WebCore/rendering/TextPainter.cpp:103
&gt; +    bool lastShadowIterationDrawsText = !stroked &amp;&amp; opaque;

This should be named lastShadowIterationShouldDrawText, I think. But maybe it won’t exist at all after some more refactoring.

&gt; Source/WebCore/rendering/TextPainter.cpp:108
&gt; +        bool emptyShadow = TextPainter::isEmptyShadow(shadow, opaque);

It’s not great for a local variable to be named &quot;emptyShadow&quot; when it&apos;s not a shadow, but rather is a boolean.

&gt; Source/WebCore/rendering/TextPainter.cpp:109
&gt; +        bool onlyDrawsShadow = TextPainter::isLastShadowIteration(shadow) &amp;&amp; lastShadowIterationDrawsText;

I am deeply puzzled by the logic here. It says that when we want to draw text, then we should only draw a shadow. That can’t be right so I must be reading it wrong.

&gt; Source/WebCore/rendering/TextPainter.cpp:136
&gt; +        if (!onlyDrawsShadow)
&gt; +            context.restore(); // Matching call to context.save() in applyShadowToGraphicsContext
&gt;          else
&gt;              context.clearShadow();

Seems to me this would be clearer if these four lines of code were a function like applyShadowToGraphicsContext, maybe called removeShadowFromGraphicsContext or unapplyShadowFromGraphicsContext. Another way to do it would be to use a class for this and have the destructor do this work. That would concentrate the code to set things up and clean them up in one place.

&gt; Source/WebCore/rendering/TextPainter.h:59
&gt; +    static inline bool isLastShadowIteration(const ShadowData* shadow)
&gt; +    {
&gt; +        return shadow &amp;&amp; !shadow-&gt;next();
&gt; +    }
&gt; +    static inline bool isEmptyShadow(const ShadowData* shadow, bool textIsOpaque = false)
&gt; +    {
&gt; +        return textIsOpaque &amp;&amp; shadow &amp;&amp; shadow-&gt;location() == IntPoint() &amp;&amp; !shadow-&gt;radius();
&gt; +    }

I understand these need for these two functions to be defined in the header file since they are inlined. But I suggest putting them outside the class definition, at the end of the header file, rather than having them inline. I think this makes the header easier to read.

I don’t understand what an “empty shadow” is, which makes the isEmptyShadow quite unpleasant. It’s something different from “no shadow at all”. I think it’s a shadow that is completely covered by opaque text perhaps, but then it’s not really a kind of shadow, so the function name is not good. It really seems bad to have to pass a “text is opaque” boolean to a function that claims to be doing something to a shadow.

&gt; Source/WebCore/rendering/TextPainter.h:61
&gt; +    static FloatSize applyShadowToGraphicsContext(GraphicsContext&amp;, const ShadowData&amp;, const FloatRect&amp; textRect, bool onlyDrawsShadow, bool shadowIsEmpty, FontOrientation = Horizontal);

I don’t like the separation of responsibilities here. I think we should have a single helper function that does everything, or perhaps two, one to start and one to end, not three functions that have to be used carefully with boolean parameters. Maybe this set of three functions should be a class; that could help us correctly unapply the shadow from the graphics context in exactly the right cases without having to be so careful about how we write the code at the call sites.

It seems to me that applyShadowToGraphicsContext can return some indication that we should skip the shadow entirely, rather than requiring a relatively subtle and complex check at both call sites.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036642</commentid>
    <comment_count>12</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-09-22 18:06:51 -0700</bug_when>
    <thetext>&lt;rdar://problem/18421210&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036649</commentid>
    <comment_count>13</comment_count>
      <attachid>238236</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-09-22 19:21:24 -0700</bug_when>
    <thetext>Comment on attachment 238236
Patch

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

&gt;&gt; Source/WebCore/rendering/TextPainter.cpp:103
&gt;&gt; +    bool lastShadowIterationDrawsText = !stroked &amp;&amp; opaque;
&gt; 
&gt; This should be named lastShadowIterationShouldDrawText, I think. But maybe it won’t exist at all after some more refactoring.

Done.

&gt;&gt; Source/WebCore/rendering/TextPainter.cpp:108
&gt;&gt; +        bool emptyShadow = TextPainter::isEmptyShadow(shadow, opaque);
&gt; 
&gt; It’s not great for a local variable to be named &quot;emptyShadow&quot; when it&apos;s not a shadow, but rather is a boolean.

Done.

&gt;&gt; Source/WebCore/rendering/TextPainter.cpp:109
&gt;&gt; +        bool onlyDrawsShadow = TextPainter::isLastShadowIteration(shadow) &amp;&amp; lastShadowIterationDrawsText;
&gt; 
&gt; I am deeply puzzled by the logic here. It says that when we want to draw text, then we should only draw a shadow. That can’t be right so I must be reading it wrong.

This is actually the negation of what the name implies. I&apos;ve switched it around and negated all the uses of it so the name is accurate. This fell out of lots of refactoring over the past few patches.

&gt;&gt; Source/WebCore/rendering/TextPainter.cpp:136
&gt;&gt;              context.clearShadow();
&gt; 
&gt; Seems to me this would be clearer if these four lines of code were a function like applyShadowToGraphicsContext, maybe called removeShadowFromGraphicsContext or unapplyShadowFromGraphicsContext. Another way to do it would be to use a class for this and have the destructor do this work. That would concentrate the code to set things up and clean them up in one place.

You are so right. I couldn&apos;t see the forest for the trees. I&apos;m not sure about if I should create a new file for this new class. Given how small the class definition is, I&apos;ve just put it in TextPainter.h. Please let me know if I should create a new .h and .cpp instead.

&gt;&gt; Source/WebCore/rendering/TextPainter.h:59
&gt;&gt; +    }
&gt; 
&gt; I understand these need for these two functions to be defined in the header file since they are inlined. But I suggest putting them outside the class definition, at the end of the header file, rather than having them inline. I think this makes the header easier to read.
&gt; 
&gt; I don’t understand what an “empty shadow” is, which makes the isEmptyShadow quite unpleasant. It’s something different from “no shadow at all”. I think it’s a shadow that is completely covered by opaque text perhaps, but then it’s not really a kind of shadow, so the function name is not good. It really seems bad to have to pass a “text is opaque” boolean to a function that claims to be doing something to a shadow.

Done.

I renamed it to shadowIsCompletelyCoveredByText().

&gt;&gt; Source/WebCore/rendering/TextPainter.h:61
&gt;&gt; +    static FloatSize applyShadowToGraphicsContext(GraphicsContext&amp;, const ShadowData&amp;, const FloatRect&amp; textRect, bool onlyDrawsShadow, bool shadowIsEmpty, FontOrientation = Horizontal);
&gt; 
&gt; I don’t like the separation of responsibilities here. I think we should have a single helper function that does everything, or perhaps two, one to start and one to end, not three functions that have to be used carefully with boolean parameters. Maybe this set of three functions should be a class; that could help us correctly unapply the shadow from the graphics context in exactly the right cases without having to be so careful about how we write the code at the call sites.
&gt; 
&gt; It seems to me that applyShadowToGraphicsContext can return some indication that we should skip the shadow entirely, rather than requiring a relatively subtle and complex check at both call sites.

A class is so much better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036650</commentid>
    <comment_count>14</comment_count>
      <attachid>238512</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-09-22 19:21:43 -0700</bug_when>
    <thetext>Created attachment 238512
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036834</commentid>
    <comment_count>15</comment_count>
      <attachid>238571</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-09-23 14:16:39 -0700</bug_when>
    <thetext>Created attachment 238571
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1037001</commentid>
    <comment_count>16</comment_count>
      <attachid>238512</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-09-24 12:18:40 -0700</bug_when>
    <thetext>Comment on attachment 238512
Patch

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

I think we can do considerably better.

&gt; Source/WebCore/rendering/TextPainter.cpp:83
&gt; +    // often draw the ::last:: shadow and the text itself in a single call.

I don’t think ::last:: here is better than just last or possibly *last*.

&gt; Source/WebCore/rendering/TextPainter.cpp:131
&gt; +            extraOffset = roundedIntSize(shadowApplier.extraOffset());

I don’t think this it adds clarity to have this inside an if statement any more. We should do it without the null shadow check.

&gt; Source/WebCore/rendering/TextPainter.h:79
&gt; +    ShadowApplier(GraphicsContext&amp;, const ShadowData*, const FloatRect&amp; textRect, bool onlyDrawsShadow, bool shadowIsEmpty, FontOrientation = Horizontal);

Can we replace these two booleans with an enum: DrawTextOnly, DrawShadowOnly, or DrawTextAndShadow? Or two booleans: drawText and drawShadow. Or even better, take my advice about not passing anything in that the ShadowApplier can compute, and pass in only what the caller knows that ShadowApplier doesn’t know.

&gt; Source/WebCore/rendering/TextPainter.h:82
&gt; +private:

Nicer with a blank line above this to separate the two.

&gt; Source/WebCore/rendering/TextPainter.h:97
&gt; +inline bool isLastShadowIteration(const ShadowData* shadow)
&gt; +{
&gt; +    return shadow &amp;&amp; !shadow-&gt;next();
&gt; +}
&gt; +
&gt; +inline bool shadowIsCompletelyCoveredByText(const ShadowData* shadow, bool textIsOpaque = false)
&gt; +{
&gt; +    return textIsOpaque &amp;&amp; shadow &amp;&amp; shadow-&gt;location() == IntPoint() &amp;&amp; !shadow-&gt;radius();
&gt; +}

It seems to me that we can put all this logic into ShadowApplier instead of having these two separate functions, if we let the applier also decide that there is nothing to draw. We can add a boolean member function that tells the caller there is nothing to draw, which can be called on the applier. We can also set m_shadow to nullptr in that case even if the passed-in shadow was non-null, so the destructor won’t do any work.

&gt; Source/WebCore/rendering/svg/SVGInlineTextBox.cpp:603
&gt; +            context-&gt;save();

Too bad that we go GraphicsContext::save/restore twice here if ShadowApplier decided to save the context; that can be an expensive operation. If we add a member function didSaveContext() to ShadowApplier, and then only save/restore here if the ShadowApplier didn’t already save/restore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1037002</commentid>
    <comment_count>17</comment_count>
      <attachid>238571</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-09-24 12:19:25 -0700</bug_when>
    <thetext>Comment on attachment 238571
Patch

This is OK, but see my comments because I think we can do even better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1037119</commentid>
    <comment_count>18</comment_count>
      <attachid>238512</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-09-24 19:13:44 -0700</bug_when>
    <thetext>Comment on attachment 238512
Patch

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

&gt;&gt; Source/WebCore/rendering/TextPainter.cpp:83
&gt;&gt; +    // often draw the ::last:: shadow and the text itself in a single call.
&gt; 
&gt; I don’t think ::last:: here is better than just last or possibly *last*.

Done.

&gt;&gt; Source/WebCore/rendering/TextPainter.cpp:131
&gt;&gt; +            extraOffset = roundedIntSize(shadowApplier.extraOffset());
&gt; 
&gt; I don’t think this it adds clarity to have this inside an if statement any more. We should do it without the null shadow check.

Yep - that&apos;s what that last patch is for.

&gt;&gt; Source/WebCore/rendering/TextPainter.h:79
&gt;&gt; +    ShadowApplier(GraphicsContext&amp;, const ShadowData*, const FloatRect&amp; textRect, bool onlyDrawsShadow, bool shadowIsEmpty, FontOrientation = Horizontal);
&gt; 
&gt; Can we replace these two booleans with an enum: DrawTextOnly, DrawShadowOnly, or DrawTextAndShadow? Or two booleans: drawText and drawShadow. Or even better, take my advice about not passing anything in that the ShadowApplier can compute, and pass in only what the caller knows that ShadowApplier doesn’t know.

I did the latter - only passing in lastShadowIterationShouldDrawText and opaque. onlyDrawsShadow and avoidDrawingShadow are both computed in ShadowApplier::ShadowApplier().

&gt;&gt; Source/WebCore/rendering/TextPainter.h:82
&gt;&gt; +private:
&gt; 
&gt; Nicer with a blank line above this to separate the two.

Done.

&gt;&gt; Source/WebCore/rendering/TextPainter.h:97
&gt;&gt; +}
&gt; 
&gt; It seems to me that we can put all this logic into ShadowApplier instead of having these two separate functions, if we let the applier also decide that there is nothing to draw. We can add a boolean member function that tells the caller there is nothing to draw, which can be called on the applier. We can also set m_shadow to nullptr in that case even if the passed-in shadow was non-null, so the destructor won’t do any work.

Done. These two functions are now private.

&gt;&gt; Source/WebCore/rendering/svg/SVGInlineTextBox.cpp:603
&gt;&gt; +            context-&gt;save();
&gt; 
&gt; Too bad that we go GraphicsContext::save/restore twice here if ShadowApplier decided to save the context; that can be an expensive operation. If we add a member function didSaveContext() to ShadowApplier, and then only save/restore here if the ShadowApplier didn’t already save/restore.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1037123</commentid>
    <comment_count>19</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-09-24 19:32:32 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/173941</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1037126</commentid>
    <comment_count>20</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-09-24 19:40:45 -0700</bug_when>
    <thetext>Looks like this broke the build for quite a few bots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1037128</commentid>
    <comment_count>21</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-09-24 19:46:41 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; Looks like this broke the build for quite a few bots.

Landed a build fix in http://trac.webkit.org/changeset/173942</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238150</attachid>
            <date>2014-09-15 17:47:53 -0700</date>
            <delta_ts>2014-09-16 10:46:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136801-20140915174750.patch</filename>
            <type>text/plain</type>
            <size>23267</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTczNjIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTI1MjE4OWU3YmRlNWVm
Y2RjMWQzZGE4YWY3MzE5OTBlN2IzMzYyZi4uYmQxOWUzODE5MTgxMzM2NTUyYzZhNGFjMWU3MDQ5
NjQxMjczZDI0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDE0LTA5LTE1ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lP
TjogVGV4dCB3aXRoIGEgemVybyBvZmZzZXQsIHplcm8gYmx1ciBzaGFkb3cgdmFuaXNoZXMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNjgwMQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
cGVyZm9ybXMgc29tZSBjbGVhbnVwIHJlZ2FyZGluZyBUZXh0UGFpbnRlcidzIHNoYWRvdyBsb2dp
YyBhbmQgaGFuZGxlcyBhbgorICAgICAgICBhZGRpdGlvbmFsIGNhc2Ugb2YgZW1wdHkgc2hhZG93
cy4gUHJldmlvdXNseSwgdGhlcmUgd2FzIHRpZ2h0IGNvdXBsaW5nIGJldHdlZW4KKyAgICAgICAg
YXBwbHlTaGFkb3dUb0dyYXBoaWNhbENvbnRleHQoKSBhbmQgcGFpbnRUZXh0V2l0aFNoYWRvd3Mo
KSwgYXMgdGhleSBib3RoIHVzZWQgYQorICAgICAgICBjb2xsZWN0aW9uIG9mIHZhcmlhYmxlcyB0
byBkZXRlcm1pbmUgaG93IHNoYWRvd3MgYXJlIHRvIGJlIGRyYXduLgorCisgICAgICAgIEdyYXBo
aWNzQ29udGV4dCBhbGxvd3MgdXMgdG8gcHV0IG9uZSBzaGFkb3cgb24gdGV4dCwgYnV0IHRoZSBD
U1Mgc3BlYyBhbGxvd3MgZm9yIGEgc2VyaWVzCisgICAgICAgIG9mIHNoYWRvd3MuIFdlIGFsbG93
IGZvciB0aGlzIGJ5IGxvb3Bpbmcgb3ZlciBldmVyeSBzaGFkb3cgaW4gdGhlIGxpc3QsIGFwcGx5
aW5nIGEKKyAgICAgICAgc2hhZG93LCBhbmQgZHJhd2luZyB0ZXh0LiBIb3dldmVyLCBpbiBvcmRl
ciB0byBhdm9pZCBkcmF3aW5nIHRoZSBtYWluIHRleHQgaXRzZWxmIG11bHRpcGxlCisgICAgICAg
IHRpbWVzIG9uIHRvcCBvZiBpdHNlbGYsIHdlIGNsaXAgdGhlIGNvbnRleHQgdG8gdGhlIHNoYWRv
d2VkIHJlZ2lvbiwgdGhlbiBkcmF3IHRoZSB0ZXh0CisgICAgICAgIGluIHNvbWUgYXJiaXRyYXJ5
IHBsYWNlIHRoYXQgaXMgb3V0c2lkZSBvZiB0aGUgY2xpcCByZWdpb24uIFdlIHRoZXJlZm9yZSBn
aXZlIGEgdmVjdG9yCisgICAgICAgIGZyb20gdGhpcyBhcmJpdHJhcnkgcGxhY2UgdG8gdGhlIHNo
YWRvdyBsb2NhdGlvbiB0byB0aGUgR3JhcGhpY3NDb250ZXh0IGFzIHRoZSBzaGFkb3cKKyAgICAg
ICAgb2Zmc2V0LiBIb3dldmVyLCB3ZSBoYXZlIGFuIG9wdGltaXphdGlvbiB0byBhbGxvdyB1cyB0
byBkcmF3IHRoZSB0ZXh0IGl0c2VsZiBkdXJpbmcgdGhlCisgICAgICAgIGxhc3QgaXRlcmF0aW9u
IG9mIHRoaXMgbG9vcCwgd2hpY2ggbWVhbnMgd2UgZG9uJ3QgZG8gYW55IG9mIHRoZSBhZm9yZW1l
bnRpb25lZCBjbGlwcGluZy4KKyAgICAgICAgVGhpcyBvcHRpbWl6YXRpb24gaXMgcHJlZGljYXRl
ZCBvbiB0aGUgbWFpbiB0ZXh0IGJlaW5nIG9wYXF1ZSBhbmQgbm9uLXN0cm9rZWQuIE90aGVyd2lz
ZSwKKyAgICAgICAgYW4gYWRkaXRpb25hbCBpdGVyYXRpb24gb2YgdGhlIGxvb3AgaXMgcGVyZm9y
bWVkICh0aGlzIGV4dHJhIGl0ZXJhdGlvbiBpcyBjb25jZXB0dWFsbHkgdGhlCisgICAgICAgIHNh
bWUgYXMgdGhlIGNhc2Ugd2hlcmUgdGhlcmUgaXMgbm8gc2hhZG93IHNwZWNpZmllZCBhdCBhbGwp
LgorCisgICAgICAgIFJlZ2FyZGluZyB0aGUgb3JpZ2luYWwgaW50ZW50IG9mIHRoaXMgc2V0IG9m
IHBhdGNoZXMgKG5vdCBkcmF3aW5nIGVtcHR5IHNoYWRvd3MpLCB0aGVyZQorICAgICAgICBhcmUg
dHdvIGNhc2VzOiB3aGVuIHdlIGFyZSBvbmx5IGRyYXdpbmcgdGhlIHNoYWRvdyB3aXRoIG91dCB0
aGUgbWFpbiB0ZXh0LCBpbiB3aGljaCBjYXNlCisgICAgICAgIHRoZSBlbnRpcmUgbG9vcCBpdGVy
YXRpb24gY2FuIGJlIGF2b2lkZWQsIGFuZCB0aGUgY2FzZSB3aGVyZSBib3RoIHRoZSBzaGFkb3cg
YW5kIG1haW4KKyAgICAgICAgdGV4dCBhcmUgYmVpbmcgZHJhd24gYXQgb25jZSwgd2hlcmUgd2Ug
aGF2ZSB0byBkcmF3IHRoZSBtYWluIHRleHQgd2l0aG91dCB0aGUgc2hhZG93LgorICAgICAgICBQ
cmV2aW91c2x5LCBvbmx5IHRoZSBmaXJzdCBjYXNlIHdhcyBoYW5kbGVkOyB0aGlzIHBhdGNoIGhh
bmRsZXMgdGhlIHNlY29uZCBjYXNlIGFzIHdlbGwuCisKKyAgICAgICAgVGhpcyBwYXRjaCBtb3Zl
cyBhcHBseVNoYWRvd1RvR3JhcGhpY3NDb250ZXh0IHNvIHRoYXQgdGhlIHR3byBmdW5jdGlvbnMg
YXJlIHBoeXNpY2FsbHkKKyAgICAgICAgY2xvc2UgdG9nZXRoZXIsIGFzIHdlbGwgYXMgY2hhbmdp
bmcgYWxsIHRoZSBib29sZWFuIGZsYWdzIHRvIGl0IHRvIGJlIGVudW0gY2xhc3Nlcy4gSQorICAg
ICAgICBhbHNvIGNoYW5nZWQgdGhlIHNlbWFudGljcyBvZiB0aGUgZmxhZ3MgdG8gYmUgbW9yZSB1
bmRlcnN0YW5kYWJsZSB0byB0aGUgYWxnb3JpdGhtIGRlc2NyaWJlZAorICAgICAgICBhYm92ZS4g
R2l2ZW4gdGhlc2UgbmV3IGZsYWdzLCBJIHJlbW92ZWQgdGhlIGRpZFNhdmVDb250ZXh0IG91dCBw
YXJhbSB0bworICAgICAgICBhcHBseVNoYWRvd1RvR3JhcGhpY3NDb250ZXh0KCksIHdoaWNoIGlz
IG5vdyBjb25jZXB0dWFsbHkgaWRlbnRpY2FsIGFzIG9uZSBvZiB0aGUgaW5wdXRzLAorICAgICAg
ICBvbmx5RHJhd3NTaGFkb3cuIFRoZXNlIG5ldyBmbGFncyB3aWxsIGhvcGVmdWxseSBpbmNyZWFz
ZSB0aGUgcmVhZGFiaWxpdHkgb2YgdGhpcyBzZWN0aW9uCisgICAgICAgIG9mIHRoZSBjb2RlIGZv
ciBmdXR1cmUgZGV2ZWxvcGVycyBzbyB0aGF0IHRoZXNlIG1pc3Rha2VzIEkgaGF2ZSBtYWRlIHdp
bGwgbm90IGJlIHJlcGVhdGVkLgorCisgICAgICAgIFRlc3Q6IGZhc3QvdGV4dC9lbXB0eS1zaGFk
b3cuaHRtbDogVXBkYXRlZCB0byB0ZXN0IHRoaXMgY2FzZSBhcyB3ZWxsIGFzIGEgY29sbGVjdGlv
biBvZgorICAgICAgICBvdGhlciBjYXNlcy4KKworICAgICAgICAqIHJlbmRlcmluZy9JbmxpbmVU
ZXh0Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklubGluZVRleHRCb3g6OmFwcGx5U2hhZG93
VG9HcmFwaGljc0NvbnRleHQpOiBNb3ZlZCB0byBUZXh0UGFpbnRlci4KKyAgICAgICAgKiByZW5k
ZXJpbmcvSW5saW5lVGV4dEJveC5oOiBNb3ZlZCBhcHBseVNoYWRvd1RvR3JhcGhpY3NDb250ZXh0
KCkgdG8gVGV4dFBhaW50ZXIuCisgICAgICAgICogcmVuZGVyaW5nL1RleHRQYWludGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlRleHRQYWludGVyOjphcHBseVNoYWRvd1RvR3JhcGhpY3NDb250
ZXh0KTogTW92ZWQgZnJvbSBJbmxpbmVUZXh0Qm94LiBVc2luZworICAgICAgICBlbnVtIGNsYXNz
ZXMgaW5zdGVhZCBvZiBib29sZWFuIGFyZ3VtZW50cy4gVGhlIHNlbWFudGljcyBvZiB0aGVzZSBh
cmd1bWVudHMgaGF2ZSBjaGFuZ2VkCisgICAgICAgIHNvIGFzIHRvIG1ha2UgdGhlIGFsZ29yaXRo
bSBtb3JlIHVuZGVyc3RhbmRhYmxlLiBJbiBhZGRpdGlvbiwgY2hlY2sgZm9yIHRoZSBzZWNvbmQK
KyAgICAgICAgY2FzZSBhYm92ZSByZWdhcmRpbmcgZW1wdHkgc2hhZG93cyBhbmQgZG9uJ3QgZHJh
dyBzaGFkb3cgaWYgdGhhdCBjYXNlIG9jY3Vycy4KKyAgICAgICAgKFdlYkNvcmU6OnBhaW50VGV4
dFdpdGhTaGFkb3dzKTogVXNlIGVudW0gY2xhc3NlcyB0byByZXByZXNlbnQgZmxhZ3MgdGhhdCB3
ZXJlIGRlc2NyaWJlZAorICAgICAgICBlYXJsaWVyLgorICAgICAgICAoV2ViQ29yZTo6aXNFbXB0
eVNoYWRvdyk6IE1vdmVkIHRvIGhlYWRlci4KKyAgICAgICAgKiByZW5kZXJpbmcvVGV4dFBhaW50
ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRQYWludGVyOjppc0xhc3RTaGFkb3dJdGVyYXRp
b24pOiBDb252ZW5pZW5jZSBmdW5jdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRQYWludGVy
Ojppc0VtcHR5U2hhZG93KTogRGl0dG8uIE5lZWRzIHRvIGtub3cgd2hldGhlciBvciBub3QgdGhl
IG1haW4gdGV4dAorICAgICAgICBpcyBvcGFxdWUgYmVjYXVzZSBvdGhlcndpc2Ugc2hhZG93cyBh
cmUgYWx3YXlzIHZpc2libGUgKHRoZXJlZm9yZSBuZXZlciBlbXB0eSkuCisgICAgICAgICogcmVu
ZGVyaW5nL3N2Zy9TVkdJbmxpbmVUZXh0Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0lu
bGluZVRleHRCb3g6OnBhaW50VGV4dFdpdGhTaGFkb3dzKTogVXBkYXRlIHRvIG5ldyBzaWduYXR1
cmUgb2YKKyAgICAgICAgYXBwbHlTaGFkb3dUb0dyYXBoaWNzQ29udGV4dCgpLgorCiAyMDE0LTA5
LTE1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQXZvaWQgcmVk
dW5kYW50IGlzRWxlbWVudE5vZGUoKSBjaGVja3MgaW4gVHJhdmVyc2FsPEhUTUwqRWxlbWVudD4g
LyBUcmF2ZXJzYWw8U1ZHKkVsZW1lbnQ+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvSW5saW5lVGV4dEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5l
VGV4dEJveC5jcHAKaW5kZXggMjYwMGNhYTdlOWRmNzkwYjY0MzhjYjUyNjk0YWRhYjhjMmNhNWFk
NS4uYjJkYTU4YmI1NWNmOTBhNjFlZWI4ODA0ZDljMjBhYTFkY2E0OWZmNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcApAQCAtNDI0LDM0ICs0MjQsNiBAQCBi
b29sIElubGluZVRleHRCb3g6Om5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiByZXF1
ZXN0LCBIaXRUZXN0UmVzdWx0JiByZQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotRmxvYXRTaXpl
IElubGluZVRleHRCb3g6OmFwcGx5U2hhZG93VG9HcmFwaGljc0NvbnRleHQoR3JhcGhpY3NDb250
ZXh0JiBjb250ZXh0LCBjb25zdCBTaGFkb3dEYXRhKiBzaGFkb3csIGNvbnN0IEZsb2F0UmVjdCYg
dGV4dFJlY3QsIGJvb2wgc3Ryb2tlZCwgYm9vbCBvcGFxdWUsIGJvb2wgaG9yaXpvbnRhbCwgYm9v
bCYgZGlkU2F2ZUNvbnRleHQpCi17Ci0gICAgaWYgKCFzaGFkb3cpCi0gICAgICAgIHJldHVybiBG
bG9hdFNpemUoKTsKLQotICAgIEZsb2F0U2l6ZSBleHRyYU9mZnNldDsKLSAgICBpbnQgc2hhZG93
WCA9IGhvcml6b250YWwgPyBzaGFkb3ctPngoKSA6IHNoYWRvdy0+eSgpOwotICAgIGludCBzaGFk
b3dZID0gaG9yaXpvbnRhbCA/IHNoYWRvdy0+eSgpIDogLXNoYWRvdy0+eCgpOwotICAgIEZsb2F0
U2l6ZSBzaGFkb3dPZmZzZXQoc2hhZG93WCwgc2hhZG93WSk7Ci0gICAgaW50IHNoYWRvd1JhZGl1
cyA9IHNoYWRvdy0+cmFkaXVzKCk7Ci0gICAgY29uc3QgQ29sb3ImIHNoYWRvd0NvbG9yID0gc2hh
ZG93LT5jb2xvcigpOwotCi0gICAgaWYgKHNoYWRvdy0+bmV4dCgpIHx8IHN0cm9rZWQgfHwgIW9w
YXF1ZSkgewotICAgICAgICBGbG9hdFJlY3Qgc2hhZG93UmVjdCh0ZXh0UmVjdCk7Ci0gICAgICAg
IHNoYWRvd1JlY3QuaW5mbGF0ZShzaGFkb3ctPnBhaW50aW5nRXh0ZW50KCkpOwotICAgICAgICBz
aGFkb3dSZWN0Lm1vdmUoc2hhZG93T2Zmc2V0KTsKLSAgICAgICAgY29udGV4dC5zYXZlKCk7Ci0g
ICAgICAgIGNvbnRleHQuY2xpcChzaGFkb3dSZWN0KTsKLQotICAgICAgICBleHRyYU9mZnNldCA9
IEZsb2F0U2l6ZSgwLCAyICogdGV4dFJlY3QuaGVpZ2h0KCkgKyBzdGQ6Om1heCgwLjBmLCBzaGFk
b3dPZmZzZXQuaGVpZ2h0KCkpICsgc2hhZG93UmFkaXVzKTsKLSAgICAgICAgc2hhZG93T2Zmc2V0
IC09IGV4dHJhT2Zmc2V0OwotICAgICAgICBkaWRTYXZlQ29udGV4dCA9IHRydWU7Ci0gICAgfQot
Ci0gICAgY29udGV4dC5zZXRTaGFkb3coc2hhZG93T2Zmc2V0LCBzaGFkb3dSYWRpdXMsIHNoYWRv
d0NvbG9yLCBjb250ZXh0LmZpbGxDb2xvclNwYWNlKCkpOwotICAgIHJldHVybiBleHRyYU9mZnNl
dDsKLX0KLQogc3RhdGljIGlubGluZSBib29sIGVtcGhhc2lzUG9zaXRpb25IYXNOZWl0aGVyTGVm
dE5vclJpZ2h0KFRleHRFbXBoYXNpc1Bvc2l0aW9uIGVtcGhhc2lzUG9zaXRpb24pCiB7CiAgICAg
cmV0dXJuICEoZW1waGFzaXNQb3NpdGlvbiAmIFRleHRFbXBoYXNpc1Bvc2l0aW9uTGVmdCkgJiYg
IShlbXBoYXNpc1Bvc2l0aW9uICYgVGV4dEVtcGhhc2lzUG9zaXRpb25SaWdodCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guaAppbmRleCBlODlhMmNkOWM3Zjk4ODk5YWI0
NzNlZmI3NDI3ZTM4NDY0YTc5YzliLi42ZjgxOGM0NWIxN2JiZmE4NzcyMjdmMjM3YTQ2NzE5MzU3
MWFiNDQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJv
eC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmgKQEAgLTE1
NCw5ICsxNTQsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBpbnQgb2Zmc2V0Rm9yUG9zaXRpb24o
ZmxvYXQgeCwgYm9vbCBpbmNsdWRlUGFydGlhbEdseXBocyA9IHRydWUpIGNvbnN0OwogICAgIHZp
cnR1YWwgZmxvYXQgcG9zaXRpb25Gb3JPZmZzZXQoaW50IG9mZnNldCkgY29uc3Q7CiAKLSAgICAv
LyBOZWVkcyB0byBiZSBwdWJsaWMsIHNvIHRoZSBzdGF0aWMgcGFpbnRUZXh0V2l0aFNoYWRvd3Mo
KSBmdW5jdGlvbiBjYW4gdXNlIGl0LgotICAgIHN0YXRpYyBGbG9hdFNpemUgYXBwbHlTaGFkb3dU
b0dyYXBoaWNzQ29udGV4dChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBTaGFkb3dEYXRhKiwgY29u
c3QgRmxvYXRSZWN0JiB0ZXh0UmVjdCwgYm9vbCBzdHJva2VkLCBib29sIG9wYXF1ZSwgYm9vbCBo
b3Jpem9udGFsLCBib29sJiBkaWRTYXZlQ29udGV4dCk7Ci0KIHByb3RlY3RlZDoKICAgICB2b2lk
IHBhaW50Q29tcG9zaXRpb25CYWNrZ3JvdW5kKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0
UG9pbnQmIGJveE9yaWdpbiwgY29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBGb250JiwgaW50IHN0
YXJ0UG9zLCBpbnQgZW5kUG9zKTsKICAgICB2b2lkIHBhaW50RG9jdW1lbnRNYXJrZXJzKEdyYXBo
aWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UG9pbnQmIGJveE9yaWdpbiwgY29uc3QgUmVuZGVyU3R5
bGUmLCBjb25zdCBGb250JiwgYm9vbCBiYWNrZ3JvdW5kKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFpbnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvVGV4dFBhaW50ZXIuY3BwCmluZGV4IGZhMWQ3OWEwMGY5ZjE5MmI4YzhiZjFhMjQ3NzRkZjQ0
ZThmN2Y1YzQuLjg3OTVjMmQzOGNmZDI5NDNlYjNkOWQxYzQyOTQ4MjEyODYwYzU5ZjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFpbnRlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRQYWludGVyLmNwcApAQCAtNjUsMTEgKzY1LDM1IEBA
IHN0YXRpYyB2b2lkIGRyYXdUZXh0T3JFbXBoYXNpc01hcmtzKEdyYXBoaWNzQ29udGV4dCYgY29u
dGV4dCwgY29uc3QgRm9udCYgZm9udCwKICAgICAgICAgY29udGV4dC5kcmF3RW1waGFzaXNNYXJr
cyhmb250LCB0ZXh0UnVuLCBlbXBoYXNpc01hcmssIHBvaW50ICsgSW50U2l6ZSgwLCBlbXBoYXNp
c01hcmtPZmZzZXQpLCBmcm9tLCB0byk7CiB9CiAKLXN0YXRpYyBib29sIGlzRW1wdHlTaGFkb3co
Y29uc3QgU2hhZG93RGF0YSogc2hhZG93KQorRmxvYXRTaXplIFRleHRQYWludGVyOjphcHBseVNo
YWRvd1RvR3JhcGhpY3NDb250ZXh0KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgU2hh
ZG93RGF0YSogc2hhZG93LCBjb25zdCBGbG9hdFJlY3QmIHRleHRSZWN0LCBEcmF3c1JlYWxUZXh0
QWxvbmdXaXRoU2hhZG93T3JOb3Qgb25seURyYXdzU2hhZG93LCBTaGFkb3dJc0VtcHR5T3JOb3Qg
ZW1wdHlTaGFkb3csIEZvbnRPcmllbnRhdGlvbiBvcmllbnRhdGlvbikKIHsKICAgICBpZiAoIXNo
YWRvdykKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVybiBzaGFkb3ctPmxvY2F0aW9u
KCkgPT0gSW50UG9pbnQoKSAmJiAhc2hhZG93LT5yYWRpdXMoKTsKKyAgICAgICAgcmV0dXJuIEZs
b2F0U2l6ZSgpOworCisgICAgRmxvYXRTaXplIGV4dHJhT2Zmc2V0OworICAgIGludCBzaGFkb3dY
ID0gb3JpZW50YXRpb24gPT0gSG9yaXpvbnRhbCA/IHNoYWRvdy0+eCgpIDogc2hhZG93LT55KCk7
CisgICAgaW50IHNoYWRvd1kgPSBvcmllbnRhdGlvbiA9PSBIb3Jpem9udGFsID8gc2hhZG93LT55
KCkgOiAtc2hhZG93LT54KCk7CisgICAgRmxvYXRTaXplIHNoYWRvd09mZnNldChzaGFkb3dYLCBz
aGFkb3dZKTsKKyAgICBpbnQgc2hhZG93UmFkaXVzID0gc2hhZG93LT5yYWRpdXMoKTsKKyAgICBj
b25zdCBDb2xvciYgc2hhZG93Q29sb3IgPSBzaGFkb3ctPmNvbG9yKCk7CisKKyAgICAvLyBXaGVu
IGRyYXdpbmcgc2hhZG93cywgd2UgdXN1YWxseSBjbGlwIHRoZSBjb250ZXh0IHRvIHRoZSBhcmVh
IHRoZSBzaGFkb3cgd2lsbCByZXNpZGUsIGFuZCB0aGVuCisgICAgLy8gZHJhdyB0aGUgdGV4dCBp
dHNlbGYgb3V0c2lkZSB0aGUgY2xpcHBlZCBhcmVhIChzbyBvbmx5IHRoZSBzaGFkb3cgc2hvd3Mg
dXApLiBIb3dldmVyLCB3ZSBjYW4KKyAgICAvLyBvZnRlbiBkcmF3IHRoZSA6Omxhc3Q6OiBzaGFk
b3cgYW5kIHRoZSB0ZXh0IGl0c2VsZiBpbiBhIHNpbmdsZSBjYWxsLgorICAgIGlmIChvbmx5RHJh
d3NTaGFkb3cgPT0gRHJhd3NSZWFsVGV4dEFsb25nV2l0aFNoYWRvd09yTm90OjpEb2VzTm90RHJh
d1JlYWxUZXh0QWxvbmdXaXRoU2hhZG93KSB7CisgICAgICAgIEZsb2F0UmVjdCBzaGFkb3dSZWN0
KHRleHRSZWN0KTsKKyAgICAgICAgc2hhZG93UmVjdC5pbmZsYXRlKHNoYWRvdy0+cGFpbnRpbmdF
eHRlbnQoKSk7CisgICAgICAgIHNoYWRvd1JlY3QubW92ZShzaGFkb3dPZmZzZXQpOworICAgICAg
ICBjb250ZXh0LnNhdmUoKTsKKyAgICAgICAgY29udGV4dC5jbGlwKHNoYWRvd1JlY3QpOworCisg
ICAgICAgIGV4dHJhT2Zmc2V0ID0gRmxvYXRTaXplKDAsIDIgKiB0ZXh0UmVjdC5oZWlnaHQoKSAr
IHN0ZDo6bWF4KDAuMGYsIHNoYWRvd09mZnNldC5oZWlnaHQoKSkgKyBzaGFkb3dSYWRpdXMpOwor
ICAgICAgICBzaGFkb3dPZmZzZXQgLT0gZXh0cmFPZmZzZXQ7CisgICAgfQorCisgICAgaWYgKGVt
cHR5U2hhZG93ID09IFNoYWRvd0lzRW1wdHlPck5vdDo6U2hhZG93SXNOb3RFbXB0eSkKKyAgICAg
ICAgY29udGV4dC5zZXRTaGFkb3coc2hhZG93T2Zmc2V0LCBzaGFkb3dSYWRpdXMsIHNoYWRvd0Nv
bG9yLCBjb250ZXh0LmZpbGxDb2xvclNwYWNlKCkpOworICAgIHJldHVybiBleHRyYU9mZnNldDsK
IH0KIAogc3RhdGljIHZvaWQgcGFpbnRUZXh0V2l0aFNoYWRvd3MoR3JhcGhpY3NDb250ZXh0JiBj
b250ZXh0LCBjb25zdCBGb250JiBmb250LCBjb25zdCBUZXh0UnVuJiB0ZXh0UnVuLCBjb25zdCBB
dG9taWNTdHJpbmcmIGVtcGhhc2lzTWFyaywKQEAgLTc4LDIxICsxMDIsMzIgQEAgc3RhdGljIHZv
aWQgcGFpbnRUZXh0V2l0aFNoYWRvd3MoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBG
b250JiBmb250LCBjb24KIHsKICAgICBDb2xvciBmaWxsQ29sb3IgPSBjb250ZXh0LmZpbGxDb2xv
cigpOwogICAgIENvbG9yU3BhY2UgZmlsbENvbG9yU3BhY2UgPSBjb250ZXh0LmZpbGxDb2xvclNw
YWNlKCk7Ci0gICAgYm9vbCBvcGFxdWUgPSAhZmlsbENvbG9yLmhhc0FscGhhKCk7Ci0gICAgaWYg
KCFvcGFxdWUpCisgICAgTWFpblRleHRJc09wYXF1ZU9yTm90IG9wYXF1ZTsKKyAgICBpZiAoZmls
bENvbG9yLmhhc0FscGhhKCkpCisgICAgICAgIG9wYXF1ZSA9IE1haW5UZXh0SXNPcGFxdWVPck5v
dDo6TWFpblRleHRJc05vdE9wYXF1ZTsKKyAgICBlbHNlCisgICAgICAgIG9wYXF1ZSA9IE1haW5U
ZXh0SXNPcGFxdWVPck5vdDo6TWFpblRleHRJc09wYXF1ZTsKKyAgICBib29sIGxhc3RTaGFkb3dJ
dGVyYXRpb25EcmF3c1JlYWxUZXh0QXNXZWxsID0gIXN0cm9rZWQgJiYgb3BhcXVlID09IE1haW5U
ZXh0SXNPcGFxdWVPck5vdDo6TWFpblRleHRJc09wYXF1ZTsKKyAgICBpZiAob3BhcXVlID09IE1h
aW5UZXh0SXNPcGFxdWVPck5vdDo6TWFpblRleHRJc05vdE9wYXF1ZSkKICAgICAgICAgY29udGV4
dC5zZXRGaWxsQ29sb3IoQ29sb3I6OmJsYWNrLCBmaWxsQ29sb3JTcGFjZSk7CiAKICAgICBkbyB7
Ci0gICAgICAgIGlmIChpc0VtcHR5U2hhZG93KHNoYWRvdykpIHsKKyAgICAgICAgU2hhZG93SXNF
bXB0eU9yTm90IGVtcHR5U2hhZG93ID0gVGV4dFBhaW50ZXI6OmlzRW1wdHlTaGFkb3coc2hhZG93
LCBvcGFxdWUpOworICAgICAgICBEcmF3c1JlYWxUZXh0QWxvbmdXaXRoU2hhZG93T3JOb3Qgb25s
eURyYXdzU2hhZG93OworICAgICAgICBpZiAoIVRleHRQYWludGVyOjppc0xhc3RTaGFkb3dJdGVy
YXRpb24oc2hhZG93KSB8fCAhbGFzdFNoYWRvd0l0ZXJhdGlvbkRyYXdzUmVhbFRleHRBc1dlbGwp
CisgICAgICAgICAgICBvbmx5RHJhd3NTaGFkb3cgPSBEcmF3c1JlYWxUZXh0QWxvbmdXaXRoU2hh
ZG93T3JOb3Q6OkRvZXNOb3REcmF3UmVhbFRleHRBbG9uZ1dpdGhTaGFkb3c7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIG9ubHlEcmF3c1NoYWRvdyA9IERyYXdzUmVhbFRleHRBbG9uZ1dpdGhT
aGFkb3dPck5vdDo6RHJhd3NSZWFsVGV4dEFsb25nV2l0aFNoYWRvdzsKKyAgICAgICAgaWYgKGVt
cHR5U2hhZG93ID09IFNoYWRvd0lzRW1wdHlPck5vdDo6U2hhZG93SXNFbXB0eQorICAgICAgICAg
ICAgJiYgb25seURyYXdzU2hhZG93ID09IERyYXdzUmVhbFRleHRBbG9uZ1dpdGhTaGFkb3dPck5v
dDo6RG9lc05vdERyYXdSZWFsVGV4dEFsb25nV2l0aFNoYWRvdykgewogICAgICAgICAgICAgc2hh
ZG93ID0gc2hhZG93LT5uZXh0KCk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQog
CiAgICAgICAgIEludFNpemUgZXh0cmFPZmZzZXQ7Ci0gICAgICAgIGJvb2wgZGlkU2F2ZUNvbnRl
eHQgPSBmYWxzZTsKICAgICAgICAgaWYgKHNoYWRvdykKLSAgICAgICAgICAgIGV4dHJhT2Zmc2V0
ID0gcm91bmRlZEludFNpemUoSW5saW5lVGV4dEJveDo6YXBwbHlTaGFkb3dUb0dyYXBoaWNzQ29u
dGV4dChjb250ZXh0LCBzaGFkb3csIGJveFJlY3QsIHN0cm9rZWQsIG9wYXF1ZSwgaG9yaXpvbnRh
bCwgZGlkU2F2ZUNvbnRleHQpKTsKLSAgICAgICAgZWxzZSBpZiAoIW9wYXF1ZSkKKyAgICAgICAg
ICAgIGV4dHJhT2Zmc2V0ID0gcm91bmRlZEludFNpemUoVGV4dFBhaW50ZXI6OmFwcGx5U2hhZG93
VG9HcmFwaGljc0NvbnRleHQoY29udGV4dCwgc2hhZG93LCBib3hSZWN0LCBvbmx5RHJhd3NTaGFk
b3csIGVtcHR5U2hhZG93LCBob3Jpem9udGFsID8gSG9yaXpvbnRhbCA6IFZlcnRpY2FsKSk7Cisg
ICAgICAgIGVsc2UgaWYgKG9wYXF1ZSA9PSBNYWluVGV4dElzT3BhcXVlT3JOb3Q6Ok1haW5UZXh0
SXNOb3RPcGFxdWUpCiAgICAgICAgICAgICBjb250ZXh0LnNldEZpbGxDb2xvcihmaWxsQ29sb3Is
IGZpbGxDb2xvclNwYWNlKTsKIAogICAgICAgICBpZiAoc3RhcnRPZmZzZXQgPD0gZW5kT2Zmc2V0
KQpAQCAtMTA3LDEzICsxNDIsMTMgQEAgc3RhdGljIHZvaWQgcGFpbnRUZXh0V2l0aFNoYWRvd3Mo
R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGb250JiBmb250LCBjb24KICAgICAgICAg
aWYgKCFzaGFkb3cpCiAgICAgICAgICAgICBicmVhazsKIAotICAgICAgICBpZiAoZGlkU2F2ZUNv
bnRleHQpCi0gICAgICAgICAgICBjb250ZXh0LnJlc3RvcmUoKTsKKyAgICAgICAgaWYgKG9ubHlE
cmF3c1NoYWRvdyA9PSBEcmF3c1JlYWxUZXh0QWxvbmdXaXRoU2hhZG93T3JOb3Q6OkRvZXNOb3RE
cmF3UmVhbFRleHRBbG9uZ1dpdGhTaGFkb3cpCisgICAgICAgICAgICBjb250ZXh0LnJlc3RvcmUo
KTsgLy8gTWF0Y2hpbmcgY2FsbCB0byBjb250ZXh0LnNhdmUoKSBpbiBhcHBseVNoYWRvd1RvR3Jh
cGhpY3NDb250ZXh0CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGNvbnRleHQuY2xlYXJTaGFk
b3coKTsKIAogICAgICAgICBzaGFkb3cgPSBzaGFkb3ctPm5leHQoKTsKLSAgICB9IHdoaWxlIChz
aGFkb3cgfHwgc3Ryb2tlZCB8fCAhb3BhcXVlKTsKKyAgICB9IHdoaWxlIChzaGFkb3cgfHwgIWxh
c3RTaGFkb3dJdGVyYXRpb25EcmF3c1JlYWxUZXh0QXNXZWxsKTsKIH0KIAogdm9pZCBUZXh0UGFp
bnRlcjo6cGFpbnRUZXh0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9U
ZXh0UGFpbnRlci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRQYWludGVyLmgKaW5k
ZXggOTZmODNhYTJiMzEzNDE5NjZkMzZmNTkzNGI4YTU3NmMzZDA0MDdkNy4uODYzN2IyMGM0ZTgz
ODdiNjc3YTllNDFhYjM2MTVhOTQ3OGExYWMxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1RleHRQYWludGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Rl
eHRQYWludGVyLmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI2luY2x1ZGUgIkFmZmluZVRyYW5zZm9y
bS5oIgogI2luY2x1ZGUgIkRhc2hBcnJheS5oIgorI2luY2x1ZGUgIkZvbnRPcmllbnRhdGlvbi5o
IgogI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDEs
MTIgKzQyLDM4IEBAIHN0YXRpYyBpbmxpbmUgQWZmaW5lVHJhbnNmb3JtIHJvdGF0aW9uKGNvbnN0
IEZsb2F0UmVjdCYgYm94UmVjdCwgUm90YXRpb25EaXJlY3RpCiAgICAgICAgIDogQWZmaW5lVHJh
bnNmb3JtKDAsIC0xLCAxLCAwLCBib3hSZWN0LngoKSAtIGJveFJlY3QubWF4WSgpLCBib3hSZWN0
LngoKSArIGJveFJlY3QubWF4WSgpKTsKIH0KIAorZW51bSBjbGFzcyBNYWluVGV4dElzT3BhcXVl
T3JOb3QgeworICAgIE1haW5UZXh0SXNPcGFxdWUsCisgICAgTWFpblRleHRJc05vdE9wYXF1ZQor
fTsKK2VudW0gY2xhc3MgU2hhZG93SXNFbXB0eU9yTm90IHsKKyAgICBTaGFkb3dJc0VtcHR5LAor
ICAgIFNoYWRvd0lzTm90RW1wdHkKK307CitlbnVtIGNsYXNzIERyYXdzUmVhbFRleHRBbG9uZ1dp
dGhTaGFkb3dPck5vdCB7CisgICAgRHJhd3NSZWFsVGV4dEFsb25nV2l0aFNoYWRvdywKKyAgICBE
b2VzTm90RHJhd1JlYWxUZXh0QWxvbmdXaXRoU2hhZG93Cit9OworCiBjbGFzcyBUZXh0UGFpbnRl
ciB7CiBwdWJsaWM6CiAgICAgVGV4dFBhaW50ZXIoR3JhcGhpY3NDb250ZXh0JiwgYm9vbCBwYWlu
dFNlbGVjdGVkVGV4dE9ubHksIGJvb2wgcGFpbnRTZWxlY3RlZFRleHRTZXBhcmF0ZWx5LCBjb25z
dCBGb250JiwKICAgICBpbnQgc3RhcnRQb3NpdGlvbkluVGV4dFJ1biwgaW50IGVuZFBvc2l0aW9u
SW5UZXh0Qm94U3RyaW5nLCBpbnQgbGVuZ3RoLCBjb25zdCBBdG9taWNTdHJpbmcmIGVtcGhhc2lz
TWFyaywgUmVuZGVyQ29tYmluZVRleHQqLAogICAgIFRleHRSdW4mLCBGbG9hdFJlY3QmIGJveFJl
Y3QsIEZsb2F0UG9pbnQmIHRleHRPcmlnaW4sIGludCBlbXBoYXNpc01hcmtPZmZzZXQsIGNvbnN0
IFNoYWRvd0RhdGEqIHRleHRTaGFkb3csIGNvbnN0IFNoYWRvd0RhdGEqIHNlbGVjdGlvblNoYWRv
dywKICAgICBib29sIHRleHRCb3hJc0hvcml6b250YWwsIFRleHRQYWludFN0eWxlJiBub25TZWxl
Y3Rpb25QYWludFN0eWxlLCBUZXh0UGFpbnRTdHlsZSYgc2VsZWN0aW9uUGFpbnRTdHlsZSk7CisK
KyAgICBzdGF0aWMgaW5saW5lIGJvb2wgaXNMYXN0U2hhZG93SXRlcmF0aW9uKGNvbnN0IFNoYWRv
d0RhdGEqIHNoYWRvdykKKyAgICB7CisgICAgICAgIHJldHVybiBzaGFkb3cgJiYgIXNoYWRvdy0+
bmV4dCgpOworICAgIH0KKyAgICBzdGF0aWMgaW5saW5lIFNoYWRvd0lzRW1wdHlPck5vdCBpc0Vt
cHR5U2hhZG93KGNvbnN0IFNoYWRvd0RhdGEqIHNoYWRvdywgTWFpblRleHRJc09wYXF1ZU9yTm90
IG1haW5UZXh0SXNPcGFxdWUpCisgICAgeworICAgICAgICBpZiAobWFpblRleHRJc09wYXF1ZSA9
PSBNYWluVGV4dElzT3BhcXVlT3JOb3Q6Ok1haW5UZXh0SXNPcGFxdWUgJiYgc2hhZG93ICYmIHNo
YWRvdy0+bG9jYXRpb24oKSA9PSBJbnRQb2ludCgpICYmICFzaGFkb3ctPnJhZGl1cygpKQorICAg
ICAgICAgICAgcmV0dXJuIFNoYWRvd0lzRW1wdHlPck5vdDo6U2hhZG93SXNFbXB0eTsKKyAgICAg
ICAgcmV0dXJuIFNoYWRvd0lzRW1wdHlPck5vdDo6U2hhZG93SXNOb3RFbXB0eTsKKyAgICB9CisK
KyAgICBzdGF0aWMgRmxvYXRTaXplIGFwcGx5U2hhZG93VG9HcmFwaGljc0NvbnRleHQoR3JhcGhp
Y3NDb250ZXh0JiwgY29uc3QgU2hhZG93RGF0YSosIGNvbnN0IEZsb2F0UmVjdCYgdGV4dFJlY3Qs
IERyYXdzUmVhbFRleHRBbG9uZ1dpdGhTaGFkb3dPck5vdCwgU2hhZG93SXNFbXB0eU9yTm90LCBG
b250T3JpZW50YXRpb24pOwogICAgIAogICAgIHZvaWQgcGFpbnRUZXh0KCk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHSW5saW5lVGV4dEJveC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR0lubGluZVRleHRCb3guY3BwCmluZGV4IGNk
ZWNkYTQ3MWE5MDkyYjk4ODhkZDI0NjUzNDlkZjY5M2MzMDYwNWYuLmU3ZjBjNDkyMjdlODdmNTk5
OTU4NmI3YTFhNmM0NjRjMzljMDcwODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvU1ZHSW5saW5lVGV4dEJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9TVkdJbmxpbmVUZXh0Qm94LmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUg
IlNWR1Jlc291cmNlc0NhY2hlLmgiCiAjaW5jbHVkZSAiU1ZHUm9vdElubGluZUJveC5oIgogI2lu
Y2x1ZGUgIlNWR1RleHRSdW5SZW5kZXJpbmdDb250ZXh0LmgiCisjaW5jbHVkZSAiVGV4dFBhaW50
ZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01OTUsOSArNTk2LDE0IEBAIHZvaWQg
U1ZHSW5saW5lVGV4dEJveDo6cGFpbnRUZXh0V2l0aFNoYWRvd3MoR3JhcGhpY3NDb250ZXh0KiBj
b250ZXh0LCBSZW5kZXJTdHlsCiAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICBGbG9hdFNp
emUgZXh0cmFPZmZzZXQ7Ci0gICAgICAgIGJvb2wgZGlkU2F2ZUNvbnRleHQgPSBmYWxzZTsKKyAg
ICAgICAgRHJhd3NSZWFsVGV4dEFsb25nV2l0aFNoYWRvd09yTm90IG9ubHlEcmF3c1NoYWRvdzsK
KyAgICAgICAgaWYgKFRleHRQYWludGVyOjppc0xhc3RTaGFkb3dJdGVyYXRpb24oc2hhZG93KSkK
KyAgICAgICAgICAgIG9ubHlEcmF3c1NoYWRvdyA9IERyYXdzUmVhbFRleHRBbG9uZ1dpdGhTaGFk
b3dPck5vdDo6RHJhd3NSZWFsVGV4dEFsb25nV2l0aFNoYWRvdzsKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgb25seURyYXdzU2hhZG93ID0gRHJhd3NSZWFsVGV4dEFsb25nV2l0aFNoYWRvd09y
Tm90OjpEb2VzTm90RHJhd1JlYWxUZXh0QWxvbmdXaXRoU2hhZG93OwogICAgICAgICBpZiAoc2hh
ZG93KQotICAgICAgICAgICAgZXh0cmFPZmZzZXQgPSBhcHBseVNoYWRvd1RvR3JhcGhpY3NDb250
ZXh0KCpjb250ZXh0LCBzaGFkb3csIHNoYWRvd1JlY3QsIGZhbHNlIC8qIHN0cm9rZWQgKi8sIHRy
dWUgLyogb3BhcXVlICovLCB0cnVlIC8qIGhvcml6b250YWwgKi8sIGRpZFNhdmVDb250ZXh0KTsK
KyAgICAgICAgICAgIGV4dHJhT2Zmc2V0ID0gVGV4dFBhaW50ZXI6OmFwcGx5U2hhZG93VG9HcmFw
aGljc0NvbnRleHQoKmNvbnRleHQsIHNoYWRvdywgc2hhZG93UmVjdCwgb25seURyYXdzU2hhZG93
LAorICAgICAgICAgICAgICAgIFRleHRQYWludGVyOjppc0VtcHR5U2hhZG93KHNoYWRvdywgTWFp
blRleHRJc09wYXF1ZU9yTm90OjpNYWluVGV4dElzTm90T3BhcXVlKSwgSG9yaXpvbnRhbCk7CiAK
ICAgICAgICAgY29udGV4dC0+c2F2ZSgpOwogICAgICAgICBjb250ZXh0LT5zY2FsZShGbG9hdFNp
emUoMSAvIHNjYWxpbmdGYWN0b3IsIDEgLyBzY2FsaW5nRmFjdG9yKSk7CkBAIC02MDcsOCArNjEz
LDggQEAgdm9pZCBTVkdJbmxpbmVUZXh0Qm94OjpwYWludFRleHRXaXRoU2hhZG93cyhHcmFwaGlj
c0NvbnRleHQqIGNvbnRleHQsIFJlbmRlclN0eWwKICAgICAgICAgY29udGV4dC0+cmVzdG9yZSgp
OwogCiAgICAgICAgIGlmIChzaGFkb3cpIHsKLSAgICAgICAgICAgIGlmIChkaWRTYXZlQ29udGV4
dCkKLSAgICAgICAgICAgICAgICBjb250ZXh0LT5yZXN0b3JlKCk7CisgICAgICAgICAgICBpZiAo
b25seURyYXdzU2hhZG93ID09IERyYXdzUmVhbFRleHRBbG9uZ1dpdGhTaGFkb3dPck5vdDo6RG9l
c05vdERyYXdSZWFsVGV4dEFsb25nV2l0aFNoYWRvdykKKyAgICAgICAgICAgICAgICBjb250ZXh0
LT5yZXN0b3JlKCk7IC8vIE1hdGNoaW5nIGNhbGwgdG8gY29udGV4dC5zYXZlKCkgaW4gYXBwbHlT
aGFkb3dUb0dyYXBoaWNzQ29udGV4dAogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAg
IGNvbnRleHQtPmNsZWFyU2hhZG93KCk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyYzZmNDNhOTNmODQz
MGZiMTBlZjE4NmEyZmFjOTIxN2Y1NTI5MWU1Li5jZWU2ZjY4ZWVkNTFlYTI5OTNiODcwMzhhZGMw
ZjI3OThhOGYyNGE1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTQtMDktMTUgIE15bGVzIEMu
IE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OOiBU
ZXh0IHdpdGggYSB6ZXJvIG9mZnNldCwgemVybyBibHVyIHNoYWRvdyB2YW5pc2hlcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2ODAxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyB0ZXN0IHNob3Vs
ZCBiZSBhIGNvbXByZWhlbnNpdmUgdGVzdCBvZiBlbXB0eSBzaGFkb3dzLiBJdCB0ZXN0cyBldmVy
eQorICAgICAgICBjb21iaW5hdGlvbiBvZiBvbmUgYW5kIHR3byBzaGFkb3dzIGJlaW5nIGVtcHR5
LCBhcyB3ZWxsIGFzIHRyYW5zcGFyZW50IGFuZAorICAgICAgICBvcGFxdWUgdGV4dC4KKworICAg
ICAgICBBZnRlciB1cGRhdGluZyBmYXN0L3RleHQvZW1wdHktc2hhZG93Lmh0bWwsIGZhc3QvdGV4
dC9lbXB0eS1zaGFkb3ctd2l0aC1jb2xvci5odG1sCisgICAgICAgIGlzIG5vIGxvbmdlciBuZWNl
c3NhcnkuCisKKyAgICAgICAgKiBmYXN0L3RleHQvZW1wdHktc2hhZG93LWV4cGVjdGVkLmh0bWw6
CisgICAgICAgICogZmFzdC90ZXh0L2VtcHR5LXNoYWRvdy13aXRoLWNvbG9yLWV4cGVjdGVkLmh0
bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC90ZXh0L2VtcHR5LXNoYWRvdy13aXRoLWNvbG9y
Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC90ZXh0L2VtcHR5LXNoYWRvdy5odG1sOgor
CiAyMDE0LTA4LTA3ICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgog
CiAgICAgICAgIFtDU1MgR3JpZCBMYXlvdXRdIFNvcnQgaXRlbXMgYnkgc3BhbiB3aGVuIHJlc29s
dmluZyBjb250ZW50LWJhc2VkIHRyYWNrIHNpemluZyBmdW5jdGlvbnMKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvdGV4dC9lbXB0eS1zaGFkb3ctZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvdGV4dC9lbXB0eS1zaGFkb3ctZXhwZWN0ZWQuaHRtbAppbmRleCBjZTJiOTZiMGJk
MDJmOWNmYzhkZmM2OTk3NzE2M2M5NTJmNjYzNmE4Li4yYjNmYWVhNWM0MGZiM2RkMmU5MzE3ODFi
YWUwMDhlZTQ5MmRhZGRhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvZW1wdHkt
c2hhZG93LWV4cGVjdGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2VtcHR5LXNo
YWRvdy1leHBlY3RlZC5odG1sCkBAIC0xLDMgKzEsMjAgQEAKLVRoaXMgdGVzdHMgdGhhdCB0ZXh0
IGRyYXduIHdpdGggdGV4dC1zaGFkb3dzIG9mIHJhZGl1cyAwIGFuZCAoMCwgMCkgb2Zmc2V0IGFy
ZSBub3QgZHJhd24uCi1UaGlzIGlzIGEgYmV0dGVyIG91dGNvbWUgdGhhbiB0aGVtIGJlaW5nIGRy
YXduIGluIGFuIHVnbHkgd2F5LgotVGhpcyB0ZXN0IGlzIHN1Y2Nlc3NmdWwgaWYgdGhlIHRleHQg
YmVsb3cgaXMgY29tcGxldGVseSBpbnZpc2libGUuCis8cD5UaGlzIHRlc3RzIHRoYXQgdGV4dCBk
cmF3biB3aXRoIHRleHQtc2hhZG93cyBvZiByYWRpdXMgMCBhbmQgKDAsIDApIG9mZnNldCBhcmUg
bm90IGRyYXduLjwvcD4KKzxwPkluIHRoZSBmb2xsb3dpbmcgdGVzdHMsIHRoZSBhY3R1YWwgdGV4
dCBpcyBncmVlbiB3aGlsZSB0aGUgc2hhZG93cyBhcmUgYmx1ZS48L3A+CisKKzxkaXYgc3R5bGU9
ImNvbG9yOiBncmVlbjsiPgorPGRpdiBzdHlsZT0idGV4dC1zaGFkb3c6IDVweCA1cHggYmx1ZTsi
PlRleHQgd2l0aCBhIHNpbmdsZSBzaGFkb3cuPC9kaXY+Cis8ZGl2PlRleHQgd2l0aCBvbmUgZW1w
dHkgKHVuZHJhd24pIHNoYWRvdy48L2Rpdj4KKzxkaXYgc3R5bGU9InRleHQtc2hhZG93OiA1cHgg
NXB4IGJsdWUsIDEwcHggMTBweCBibHVlOyI+VGV4dCB3aXRoIHR3byBzaGFkb3dzPC9kaXY+Cis8
ZGl2IHN0eWxlPSJ0ZXh0LXNoYWRvdzogNXB4IDVweCBibHVlOyI+VGV4dCB3aXRoIHR3byBzaGFk
b3dzOiBmaXJzdCBkcmF3biBhbmQgc2Vjb25kIGVtcHR5ICh1bmRyYXduKS48L2Rpdj4KKzxkaXYg
c3R5bGU9InRleHQtc2hhZG93OiAxMHB4IDEwcHggYmx1ZTsiPlRleHQgd2l0aCB0d28gc2hhZG93
czogZmlyc3QgZW1wdHkgKHVuZHJhd24pIGFuZCBzZWNvbmQgZHJhd24uPC9kaXY+Cis8ZGl2PlRl
eHQgd2l0aCB0d28gZW1wdHkgKHVuZHJhd24pIHNoYWRvd3MuPC9kaXY+Cis8L2Rpdj4KKworPGRp
diBzdHlsZT0iY29sb3I6IHRyYW5zcGFyZW50OyI+Cis8ZGl2IHN0eWxlPSJ0ZXh0LXNoYWRvdzog
NXB4IDVweCBibHVlOyI+VHJhbnNwYXJlbnQgdGV4dCB3aXRoIGEgc2luZ2xlIHNoYWRvdy48L2Rp
dj4KKzxkaXYgc3R5bGU9ImNvbG9yOiBibHVlOyI+VHJhbnNwYXJlbnQgdGV4dCB3aXRoIG9uZSBl
bXB0eSBzaGFkb3cuPC9kaXY+Cis8ZGl2IHN0eWxlPSJ0ZXh0LXNoYWRvdzogNXB4IDVweCBibHVl
LCAxMHB4IDEwcHggYmx1ZTsiPlRyYW5zcGFyZW50IHRleHQgd2l0aCB0d28gc2hhZG93czwvZGl2
PgorPGRpdiBzdHlsZT0iY29sb3I6IGJsdWU7IHRleHQtc2hhZG93OiA3cHggN3B4IGJsdWU7Ij5U
cmFuc3BhcmVudCB0ZXh0IHdpdGggdHdvIHNoYWRvd3M6IGZpcnN0IGRyYXduIGFuZCBzZWNvbmQg
ZW1wdHkuPC9kaXY+Cis8ZGl2IHN0eWxlPSJjb2xvcjogYmx1ZTsgdGV4dC1zaGFkb3c6IDEwcHgg
MTBweCBibHVlOyI+VHJhbnNwYXJlbnQgdGV4dCB3aXRoIHR3byBzaGFkb3dzOiBmaXJzdCBkcmF3
biBhbmQgc2Vjb25kIGVtcHR5LjwvZGl2PgorPGRpdiBzdHlsZT0iY29sb3I6IGJsdWU7IHBvc2l0
aW9uOiByZWxhdGl2ZTsiPjxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMHB4
OyB0b3A6IDBweDsiPlRyYW5zcGFyZW50IHRleHQgd2l0aCB0d28gZW1wdHkgc2hhZG93cy48L2Rp
dj48ZGl2IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDBweDsgdG9wOiAwcHg7Ij5U
cmFuc3BhcmVudCB0ZXh0IHdpdGggdHdvIGVtcHR5IHNoYWRvd3MuPC9kaXY+PC9kaXY+Cis8L2Rp
dj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9lbXB0eS1zaGFkb3ctd2l0aC1j
b2xvci1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2VtcHR5LXNoYWRvdy13
aXRoLWNvbG9yLWV4cGVjdGVkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ1
YTRkOTIwZjczNWNjYzhmODZmMmQ3NzA2MDU3YmZkZTQ2MmYwM2IuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2VtcHR5
LXNoYWRvdy13aXRoLWNvbG9yLWV4cGVjdGVkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxNSAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c3R5bGU+Ci0jdGVzdCB7
Ci0gICAgY29sb3I6IGdyZWVuOwotICAgIGZvbnQtc2l6ZTogMTZweDsKLX0KLTwvc3R5bGU+Ci08
L2hlYWQ+Ci08Ym9keT4KLVRoaXMgdGVzdCBtYWtlcyBzdXJlIHRoYXQgdGV4dCBkcmF3biB3aXRo
IGFuIGVtcHR5IHNoYWRvdyBpcyBjb2xvcmVkIGNvcnJlY3RseS4gSXQgcGFzc2VzIGlmIHRoZSBm
b2xsb3dpbmcgdGV4dCBpcyBncmVlbi4KLTxkaXYgaWQ9InRlc3QiPlRoaXMgc2hvdWxkIGJlIGdy
ZWVuLjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC90ZXh0L2VtcHR5LXNoYWRvdy13aXRoLWNvbG9yLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Rl
eHQvZW1wdHktc2hhZG93LXdpdGgtY29sb3IuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggM2ZkZjk1YzNmYjc3ZDkyMTJkZWNiNWQyM2ZmODFkNTk0OTM4Yjc4YS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Rl
eHQvZW1wdHktc2hhZG93LXdpdGgtY29sb3IuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE3ICsw
LDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzdHlsZT4KLSN0ZXN0IHsK
LSAgICBjb2xvcjogZ3JlZW47Ci0gICAgZm9udC1zaXplOiAxNnB4OwotICAgIHRleHQtc2hhZG93
OiByZWQgMjBweCAyMHB4LCByZWQgMHB4IDBweDsKLSAgICBvdmVyZmxvdzogaGlkZGVuOwotfQot
PC9zdHlsZT4KLTwvaGVhZD4KLTxib2R5PgotVGhpcyB0ZXN0IG1ha2VzIHN1cmUgdGhhdCB0ZXh0
IGRyYXduIHdpdGggYW4gZW1wdHkgc2hhZG93IGlzIGNvbG9yZWQgY29ycmVjdGx5LiBJdCBwYXNz
ZXMgaWYgdGhlIGZvbGxvd2luZyB0ZXh0IGlzIGdyZWVuLgotPGRpdiBpZD0idGVzdCI+VGhpcyBz
aG91bGQgYmUgZ3JlZW4uPC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L3RleHQvZW1wdHktc2hhZG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Rl
eHQvZW1wdHktc2hhZG93Lmh0bWwKaW5kZXggNDI3Y2RkOGM2M2M5YTE4MmE1YzBkZjFhZDI4ZDMx
ZDQ0YjI0YTNjZi4uMmIzZTc3ODM0Y2FlZDIyOTk5ZWQ4MDhlMzU1MDQ2NmVmYTBiODQ5MSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2VtcHR5LXNoYWRvdy5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvdGV4dC9lbXB0eS1zaGFkb3cuaHRtbApAQCAtMSw0ICsxLDIwIEBACi1U
aGlzIHRlc3RzIHRoYXQgdGV4dCBkcmF3biB3aXRoIHRleHQtc2hhZG93cyBvZiByYWRpdXMgMCBh
bmQgKDAsIDApIG9mZnNldCBhcmUgbm90IGRyYXduLgotVGhpcyBpcyBhIGJldHRlciBvdXRjb21l
IHRoYW4gdGhlbSBiZWluZyBkcmF3biBpbiBhbiB1Z2x5IHdheS4KLVRoaXMgdGVzdCBpcyBzdWNj
ZXNzZnVsIGlmIHRoZSB0ZXh0IGJlbG93IGlzIGNvbXBsZXRlbHkgaW52aXNpYmxlLgotPGRpdiBz
dHlsZT0iY29sb3I6I2ZmZjt0ZXh0LXNoYWRvdzowIDAgIzAwMCI+VGhpcyBpcyBzb21lIHRleHQ8
L2Rpdj4KKzxwPlRoaXMgdGVzdHMgdGhhdCB0ZXh0IGRyYXduIHdpdGggdGV4dC1zaGFkb3dzIG9m
IHJhZGl1cyAwIGFuZCAoMCwgMCkgb2Zmc2V0IGFyZSBub3QgZHJhd24uPC9wPgorPHA+SW4gdGhl
IGZvbGxvd2luZyB0ZXN0cywgdGhlIGFjdHVhbCB0ZXh0IGlzIGdyZWVuIHdoaWxlIHRoZSBzaGFk
b3dzIGFyZSBibHVlLjwvcD4KKworPGRpdiBzdHlsZT0iY29sb3I6IGdyZWVuOyI+Cis8ZGl2IHN0
eWxlPSJ0ZXh0LXNoYWRvdzogNXB4IDVweCBibHVlOyI+VGV4dCB3aXRoIGEgc2luZ2xlIHNoYWRv
dy48L2Rpdj4KKzxkaXYgc3R5bGU9InRleHQtc2hhZG93OiAwcHggMHB4IGJsdWU7Ij5UZXh0IHdp
dGggb25lIGVtcHR5ICh1bmRyYXduKSBzaGFkb3cuPC9kaXY+Cis8ZGl2IHN0eWxlPSJ0ZXh0LXNo
YWRvdzogNXB4IDVweCBibHVlLCAxMHB4IDEwcHggYmx1ZTsiPlRleHQgd2l0aCB0d28gc2hhZG93
czwvZGl2PgorPGRpdiBzdHlsZT0idGV4dC1zaGFkb3c6IDVweCA1cHggYmx1ZSwgMHB4IDBweCBi
bHVlOyI+VGV4dCB3aXRoIHR3byBzaGFkb3dzOiBmaXJzdCBkcmF3biBhbmQgc2Vjb25kIGVtcHR5
ICh1bmRyYXduKS48L2Rpdj4KKzxkaXYgc3R5bGU9InRleHQtc2hhZG93OiAwcHggMHB4IGJsdWUs
IDEwcHggMTBweCBibHVlOyI+VGV4dCB3aXRoIHR3byBzaGFkb3dzOiBmaXJzdCBlbXB0eSAodW5k
cmF3bikgYW5kIHNlY29uZCBkcmF3bi48L2Rpdj4KKzxkaXYgc3R5bGU9InRleHQtc2hhZG93OiAw
cHggMHB4IGJsdWUsIDBweCAwcHggYmx1ZTsiPlRleHQgd2l0aCB0d28gZW1wdHkgKHVuZHJhd24p
IHNoYWRvd3MuPC9kaXY+Cis8L2Rpdj4KKworPGRpdiBzdHlsZT0iY29sb3I6IHRyYW5zcGFyZW50
OyI+Cis8ZGl2IHN0eWxlPSJ0ZXh0LXNoYWRvdzogNXB4IDVweCBibHVlOyI+VHJhbnNwYXJlbnQg
dGV4dCB3aXRoIGEgc2luZ2xlIHNoYWRvdy48L2Rpdj4KKzxkaXYgc3R5bGU9InRleHQtc2hhZG93
OiAwcHggMHB4IGJsdWU7Ij5UcmFuc3BhcmVudCB0ZXh0IHdpdGggb25lIGVtcHR5IHNoYWRvdy48
L2Rpdj4KKzxkaXYgc3R5bGU9InRleHQtc2hhZG93OiA1cHggNXB4IGJsdWUsIDEwcHggMTBweCBi
bHVlOyI+VHJhbnNwYXJlbnQgdGV4dCB3aXRoIHR3byBzaGFkb3dzPC9kaXY+Cis8ZGl2IHN0eWxl
PSJ0ZXh0LXNoYWRvdzogN3B4IDdweCBibHVlLCAwcHggMHB4IGJsdWU7Ij5UcmFuc3BhcmVudCB0
ZXh0IHdpdGggdHdvIHNoYWRvd3M6IGZpcnN0IGRyYXduIGFuZCBzZWNvbmQgZW1wdHkuPC9kaXY+
Cis8ZGl2IHN0eWxlPSJ0ZXh0LXNoYWRvdzogMHB4IDBweCBibHVlLCAxMHB4IDEwcHggYmx1ZTsi
PlRyYW5zcGFyZW50IHRleHQgd2l0aCB0d28gc2hhZG93czogZmlyc3QgZHJhd24gYW5kIHNlY29u
ZCBlbXB0eS48L2Rpdj4KKzxkaXYgc3R5bGU9InRleHQtc2hhZG93OiAwcHggMHB4IGJsdWUsIDBw
eCAwcHggYmx1ZTsiPlRyYW5zcGFyZW50IHRleHQgd2l0aCB0d28gZW1wdHkgc2hhZG93cy48L2Rp
dj4KKzwvZGl2Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238187</attachid>
            <date>2014-09-16 10:46:07 -0700</date>
            <delta_ts>2014-09-16 17:02:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136801-20140916104605.patch</filename>
            <type>text/plain</type>
            <size>22373</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTczNjIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTI1MjE4OWU3YmRlNWVm
Y2RjMWQzZGE4YWY3MzE5OTBlN2IzMzYyZi4uYmQxOWUzODE5MTgxMzM2NTUyYzZhNGFjMWU3MDQ5
NjQxMjczZDI0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDE0LTA5LTE1ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lP
TjogVGV4dCB3aXRoIGEgemVybyBvZmZzZXQsIHplcm8gYmx1ciBzaGFkb3cgdmFuaXNoZXMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNjgwMQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
cGVyZm9ybXMgc29tZSBjbGVhbnVwIHJlZ2FyZGluZyBUZXh0UGFpbnRlcidzIHNoYWRvdyBsb2dp
YyBhbmQgaGFuZGxlcyBhbgorICAgICAgICBhZGRpdGlvbmFsIGNhc2Ugb2YgZW1wdHkgc2hhZG93
cy4gUHJldmlvdXNseSwgdGhlcmUgd2FzIHRpZ2h0IGNvdXBsaW5nIGJldHdlZW4KKyAgICAgICAg
YXBwbHlTaGFkb3dUb0dyYXBoaWNhbENvbnRleHQoKSBhbmQgcGFpbnRUZXh0V2l0aFNoYWRvd3Mo
KSwgYXMgdGhleSBib3RoIHVzZWQgYQorICAgICAgICBjb2xsZWN0aW9uIG9mIHZhcmlhYmxlcyB0
byBkZXRlcm1pbmUgaG93IHNoYWRvd3MgYXJlIHRvIGJlIGRyYXduLgorCisgICAgICAgIEdyYXBo
aWNzQ29udGV4dCBhbGxvd3MgdXMgdG8gcHV0IG9uZSBzaGFkb3cgb24gdGV4dCwgYnV0IHRoZSBD
U1Mgc3BlYyBhbGxvd3MgZm9yIGEgc2VyaWVzCisgICAgICAgIG9mIHNoYWRvd3MuIFdlIGFsbG93
IGZvciB0aGlzIGJ5IGxvb3Bpbmcgb3ZlciBldmVyeSBzaGFkb3cgaW4gdGhlIGxpc3QsIGFwcGx5
aW5nIGEKKyAgICAgICAgc2hhZG93LCBhbmQgZHJhd2luZyB0ZXh0LiBIb3dldmVyLCBpbiBvcmRl
ciB0byBhdm9pZCBkcmF3aW5nIHRoZSBtYWluIHRleHQgaXRzZWxmIG11bHRpcGxlCisgICAgICAg
IHRpbWVzIG9uIHRvcCBvZiBpdHNlbGYsIHdlIGNsaXAgdGhlIGNvbnRleHQgdG8gdGhlIHNoYWRv
d2VkIHJlZ2lvbiwgdGhlbiBkcmF3IHRoZSB0ZXh0CisgICAgICAgIGluIHNvbWUgYXJiaXRyYXJ5
IHBsYWNlIHRoYXQgaXMgb3V0c2lkZSBvZiB0aGUgY2xpcCByZWdpb24uIFdlIHRoZXJlZm9yZSBn
aXZlIGEgdmVjdG9yCisgICAgICAgIGZyb20gdGhpcyBhcmJpdHJhcnkgcGxhY2UgdG8gdGhlIHNo
YWRvdyBsb2NhdGlvbiB0byB0aGUgR3JhcGhpY3NDb250ZXh0IGFzIHRoZSBzaGFkb3cKKyAgICAg
ICAgb2Zmc2V0LiBIb3dldmVyLCB3ZSBoYXZlIGFuIG9wdGltaXphdGlvbiB0byBhbGxvdyB1cyB0
byBkcmF3IHRoZSB0ZXh0IGl0c2VsZiBkdXJpbmcgdGhlCisgICAgICAgIGxhc3QgaXRlcmF0aW9u
IG9mIHRoaXMgbG9vcCwgd2hpY2ggbWVhbnMgd2UgZG9uJ3QgZG8gYW55IG9mIHRoZSBhZm9yZW1l
bnRpb25lZCBjbGlwcGluZy4KKyAgICAgICAgVGhpcyBvcHRpbWl6YXRpb24gaXMgcHJlZGljYXRl
ZCBvbiB0aGUgbWFpbiB0ZXh0IGJlaW5nIG9wYXF1ZSBhbmQgbm9uLXN0cm9rZWQuIE90aGVyd2lz
ZSwKKyAgICAgICAgYW4gYWRkaXRpb25hbCBpdGVyYXRpb24gb2YgdGhlIGxvb3AgaXMgcGVyZm9y
bWVkICh0aGlzIGV4dHJhIGl0ZXJhdGlvbiBpcyBjb25jZXB0dWFsbHkgdGhlCisgICAgICAgIHNh
bWUgYXMgdGhlIGNhc2Ugd2hlcmUgdGhlcmUgaXMgbm8gc2hhZG93IHNwZWNpZmllZCBhdCBhbGwp
LgorCisgICAgICAgIFJlZ2FyZGluZyB0aGUgb3JpZ2luYWwgaW50ZW50IG9mIHRoaXMgc2V0IG9m
IHBhdGNoZXMgKG5vdCBkcmF3aW5nIGVtcHR5IHNoYWRvd3MpLCB0aGVyZQorICAgICAgICBhcmUg
dHdvIGNhc2VzOiB3aGVuIHdlIGFyZSBvbmx5IGRyYXdpbmcgdGhlIHNoYWRvdyB3aXRoIG91dCB0
aGUgbWFpbiB0ZXh0LCBpbiB3aGljaCBjYXNlCisgICAgICAgIHRoZSBlbnRpcmUgbG9vcCBpdGVy
YXRpb24gY2FuIGJlIGF2b2lkZWQsIGFuZCB0aGUgY2FzZSB3aGVyZSBib3RoIHRoZSBzaGFkb3cg
YW5kIG1haW4KKyAgICAgICAgdGV4dCBhcmUgYmVpbmcgZHJhd24gYXQgb25jZSwgd2hlcmUgd2Ug
aGF2ZSB0byBkcmF3IHRoZSBtYWluIHRleHQgd2l0aG91dCB0aGUgc2hhZG93LgorICAgICAgICBQ
cmV2aW91c2x5LCBvbmx5IHRoZSBmaXJzdCBjYXNlIHdhcyBoYW5kbGVkOyB0aGlzIHBhdGNoIGhh
bmRsZXMgdGhlIHNlY29uZCBjYXNlIGFzIHdlbGwuCisKKyAgICAgICAgVGhpcyBwYXRjaCBtb3Zl
cyBhcHBseVNoYWRvd1RvR3JhcGhpY3NDb250ZXh0IHNvIHRoYXQgdGhlIHR3byBmdW5jdGlvbnMg
YXJlIHBoeXNpY2FsbHkKKyAgICAgICAgY2xvc2UgdG9nZXRoZXIsIGFzIHdlbGwgYXMgY2hhbmdp
bmcgYWxsIHRoZSBib29sZWFuIGZsYWdzIHRvIGl0IHRvIGJlIGVudW0gY2xhc3Nlcy4gSQorICAg
ICAgICBhbHNvIGNoYW5nZWQgdGhlIHNlbWFudGljcyBvZiB0aGUgZmxhZ3MgdG8gYmUgbW9yZSB1
bmRlcnN0YW5kYWJsZSB0byB0aGUgYWxnb3JpdGhtIGRlc2NyaWJlZAorICAgICAgICBhYm92ZS4g
R2l2ZW4gdGhlc2UgbmV3IGZsYWdzLCBJIHJlbW92ZWQgdGhlIGRpZFNhdmVDb250ZXh0IG91dCBw
YXJhbSB0bworICAgICAgICBhcHBseVNoYWRvd1RvR3JhcGhpY3NDb250ZXh0KCksIHdoaWNoIGlz
IG5vdyBjb25jZXB0dWFsbHkgaWRlbnRpY2FsIGFzIG9uZSBvZiB0aGUgaW5wdXRzLAorICAgICAg
ICBvbmx5RHJhd3NTaGFkb3cuIFRoZXNlIG5ldyBmbGFncyB3aWxsIGhvcGVmdWxseSBpbmNyZWFz
ZSB0aGUgcmVhZGFiaWxpdHkgb2YgdGhpcyBzZWN0aW9uCisgICAgICAgIG9mIHRoZSBjb2RlIGZv
ciBmdXR1cmUgZGV2ZWxvcGVycyBzbyB0aGF0IHRoZXNlIG1pc3Rha2VzIEkgaGF2ZSBtYWRlIHdp
bGwgbm90IGJlIHJlcGVhdGVkLgorCisgICAgICAgIFRlc3Q6IGZhc3QvdGV4dC9lbXB0eS1zaGFk
b3cuaHRtbDogVXBkYXRlZCB0byB0ZXN0IHRoaXMgY2FzZSBhcyB3ZWxsIGFzIGEgY29sbGVjdGlv
biBvZgorICAgICAgICBvdGhlciBjYXNlcy4KKworICAgICAgICAqIHJlbmRlcmluZy9JbmxpbmVU
ZXh0Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklubGluZVRleHRCb3g6OmFwcGx5U2hhZG93
VG9HcmFwaGljc0NvbnRleHQpOiBNb3ZlZCB0byBUZXh0UGFpbnRlci4KKyAgICAgICAgKiByZW5k
ZXJpbmcvSW5saW5lVGV4dEJveC5oOiBNb3ZlZCBhcHBseVNoYWRvd1RvR3JhcGhpY3NDb250ZXh0
KCkgdG8gVGV4dFBhaW50ZXIuCisgICAgICAgICogcmVuZGVyaW5nL1RleHRQYWludGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlRleHRQYWludGVyOjphcHBseVNoYWRvd1RvR3JhcGhpY3NDb250
ZXh0KTogTW92ZWQgZnJvbSBJbmxpbmVUZXh0Qm94LiBVc2luZworICAgICAgICBlbnVtIGNsYXNz
ZXMgaW5zdGVhZCBvZiBib29sZWFuIGFyZ3VtZW50cy4gVGhlIHNlbWFudGljcyBvZiB0aGVzZSBh
cmd1bWVudHMgaGF2ZSBjaGFuZ2VkCisgICAgICAgIHNvIGFzIHRvIG1ha2UgdGhlIGFsZ29yaXRo
bSBtb3JlIHVuZGVyc3RhbmRhYmxlLiBJbiBhZGRpdGlvbiwgY2hlY2sgZm9yIHRoZSBzZWNvbmQK
KyAgICAgICAgY2FzZSBhYm92ZSByZWdhcmRpbmcgZW1wdHkgc2hhZG93cyBhbmQgZG9uJ3QgZHJh
dyBzaGFkb3cgaWYgdGhhdCBjYXNlIG9jY3Vycy4KKyAgICAgICAgKFdlYkNvcmU6OnBhaW50VGV4
dFdpdGhTaGFkb3dzKTogVXNlIGVudW0gY2xhc3NlcyB0byByZXByZXNlbnQgZmxhZ3MgdGhhdCB3
ZXJlIGRlc2NyaWJlZAorICAgICAgICBlYXJsaWVyLgorICAgICAgICAoV2ViQ29yZTo6aXNFbXB0
eVNoYWRvdyk6IE1vdmVkIHRvIGhlYWRlci4KKyAgICAgICAgKiByZW5kZXJpbmcvVGV4dFBhaW50
ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRQYWludGVyOjppc0xhc3RTaGFkb3dJdGVyYXRp
b24pOiBDb252ZW5pZW5jZSBmdW5jdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRQYWludGVy
Ojppc0VtcHR5U2hhZG93KTogRGl0dG8uIE5lZWRzIHRvIGtub3cgd2hldGhlciBvciBub3QgdGhl
IG1haW4gdGV4dAorICAgICAgICBpcyBvcGFxdWUgYmVjYXVzZSBvdGhlcndpc2Ugc2hhZG93cyBh
cmUgYWx3YXlzIHZpc2libGUgKHRoZXJlZm9yZSBuZXZlciBlbXB0eSkuCisgICAgICAgICogcmVu
ZGVyaW5nL3N2Zy9TVkdJbmxpbmVUZXh0Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0lu
bGluZVRleHRCb3g6OnBhaW50VGV4dFdpdGhTaGFkb3dzKTogVXBkYXRlIHRvIG5ldyBzaWduYXR1
cmUgb2YKKyAgICAgICAgYXBwbHlTaGFkb3dUb0dyYXBoaWNzQ29udGV4dCgpLgorCiAyMDE0LTA5
LTE1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQXZvaWQgcmVk
dW5kYW50IGlzRWxlbWVudE5vZGUoKSBjaGVja3MgaW4gVHJhdmVyc2FsPEhUTUwqRWxlbWVudD4g
LyBUcmF2ZXJzYWw8U1ZHKkVsZW1lbnQ+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvSW5saW5lVGV4dEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5l
VGV4dEJveC5jcHAKaW5kZXggMjYwMGNhYTdlOWRmNzkwYjY0MzhjYjUyNjk0YWRhYjhjMmNhNWFk
NS4uYjJkYTU4YmI1NWNmOTBhNjFlZWI4ODA0ZDljMjBhYTFkY2E0OWZmNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcApAQCAtNDI0LDM0ICs0MjQsNiBAQCBi
b29sIElubGluZVRleHRCb3g6Om5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiByZXF1
ZXN0LCBIaXRUZXN0UmVzdWx0JiByZQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotRmxvYXRTaXpl
IElubGluZVRleHRCb3g6OmFwcGx5U2hhZG93VG9HcmFwaGljc0NvbnRleHQoR3JhcGhpY3NDb250
ZXh0JiBjb250ZXh0LCBjb25zdCBTaGFkb3dEYXRhKiBzaGFkb3csIGNvbnN0IEZsb2F0UmVjdCYg
dGV4dFJlY3QsIGJvb2wgc3Ryb2tlZCwgYm9vbCBvcGFxdWUsIGJvb2wgaG9yaXpvbnRhbCwgYm9v
bCYgZGlkU2F2ZUNvbnRleHQpCi17Ci0gICAgaWYgKCFzaGFkb3cpCi0gICAgICAgIHJldHVybiBG
bG9hdFNpemUoKTsKLQotICAgIEZsb2F0U2l6ZSBleHRyYU9mZnNldDsKLSAgICBpbnQgc2hhZG93
WCA9IGhvcml6b250YWwgPyBzaGFkb3ctPngoKSA6IHNoYWRvdy0+eSgpOwotICAgIGludCBzaGFk
b3dZID0gaG9yaXpvbnRhbCA/IHNoYWRvdy0+eSgpIDogLXNoYWRvdy0+eCgpOwotICAgIEZsb2F0
U2l6ZSBzaGFkb3dPZmZzZXQoc2hhZG93WCwgc2hhZG93WSk7Ci0gICAgaW50IHNoYWRvd1JhZGl1
cyA9IHNoYWRvdy0+cmFkaXVzKCk7Ci0gICAgY29uc3QgQ29sb3ImIHNoYWRvd0NvbG9yID0gc2hh
ZG93LT5jb2xvcigpOwotCi0gICAgaWYgKHNoYWRvdy0+bmV4dCgpIHx8IHN0cm9rZWQgfHwgIW9w
YXF1ZSkgewotICAgICAgICBGbG9hdFJlY3Qgc2hhZG93UmVjdCh0ZXh0UmVjdCk7Ci0gICAgICAg
IHNoYWRvd1JlY3QuaW5mbGF0ZShzaGFkb3ctPnBhaW50aW5nRXh0ZW50KCkpOwotICAgICAgICBz
aGFkb3dSZWN0Lm1vdmUoc2hhZG93T2Zmc2V0KTsKLSAgICAgICAgY29udGV4dC5zYXZlKCk7Ci0g
ICAgICAgIGNvbnRleHQuY2xpcChzaGFkb3dSZWN0KTsKLQotICAgICAgICBleHRyYU9mZnNldCA9
IEZsb2F0U2l6ZSgwLCAyICogdGV4dFJlY3QuaGVpZ2h0KCkgKyBzdGQ6Om1heCgwLjBmLCBzaGFk
b3dPZmZzZXQuaGVpZ2h0KCkpICsgc2hhZG93UmFkaXVzKTsKLSAgICAgICAgc2hhZG93T2Zmc2V0
IC09IGV4dHJhT2Zmc2V0OwotICAgICAgICBkaWRTYXZlQ29udGV4dCA9IHRydWU7Ci0gICAgfQot
Ci0gICAgY29udGV4dC5zZXRTaGFkb3coc2hhZG93T2Zmc2V0LCBzaGFkb3dSYWRpdXMsIHNoYWRv
d0NvbG9yLCBjb250ZXh0LmZpbGxDb2xvclNwYWNlKCkpOwotICAgIHJldHVybiBleHRyYU9mZnNl
dDsKLX0KLQogc3RhdGljIGlubGluZSBib29sIGVtcGhhc2lzUG9zaXRpb25IYXNOZWl0aGVyTGVm
dE5vclJpZ2h0KFRleHRFbXBoYXNpc1Bvc2l0aW9uIGVtcGhhc2lzUG9zaXRpb24pCiB7CiAgICAg
cmV0dXJuICEoZW1waGFzaXNQb3NpdGlvbiAmIFRleHRFbXBoYXNpc1Bvc2l0aW9uTGVmdCkgJiYg
IShlbXBoYXNpc1Bvc2l0aW9uICYgVGV4dEVtcGhhc2lzUG9zaXRpb25SaWdodCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guaAppbmRleCBlODlhMmNkOWM3Zjk4ODk5YWI0
NzNlZmI3NDI3ZTM4NDY0YTc5YzliLi42ZjgxOGM0NWIxN2JiZmE4NzcyMjdmMjM3YTQ2NzE5MzU3
MWFiNDQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJv
eC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmgKQEAgLTE1
NCw5ICsxNTQsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBpbnQgb2Zmc2V0Rm9yUG9zaXRpb24o
ZmxvYXQgeCwgYm9vbCBpbmNsdWRlUGFydGlhbEdseXBocyA9IHRydWUpIGNvbnN0OwogICAgIHZp
cnR1YWwgZmxvYXQgcG9zaXRpb25Gb3JPZmZzZXQoaW50IG9mZnNldCkgY29uc3Q7CiAKLSAgICAv
LyBOZWVkcyB0byBiZSBwdWJsaWMsIHNvIHRoZSBzdGF0aWMgcGFpbnRUZXh0V2l0aFNoYWRvd3Mo
KSBmdW5jdGlvbiBjYW4gdXNlIGl0LgotICAgIHN0YXRpYyBGbG9hdFNpemUgYXBwbHlTaGFkb3dU
b0dyYXBoaWNzQ29udGV4dChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBTaGFkb3dEYXRhKiwgY29u
c3QgRmxvYXRSZWN0JiB0ZXh0UmVjdCwgYm9vbCBzdHJva2VkLCBib29sIG9wYXF1ZSwgYm9vbCBo
b3Jpem9udGFsLCBib29sJiBkaWRTYXZlQ29udGV4dCk7Ci0KIHByb3RlY3RlZDoKICAgICB2b2lk
IHBhaW50Q29tcG9zaXRpb25CYWNrZ3JvdW5kKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0
UG9pbnQmIGJveE9yaWdpbiwgY29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBGb250JiwgaW50IHN0
YXJ0UG9zLCBpbnQgZW5kUG9zKTsKICAgICB2b2lkIHBhaW50RG9jdW1lbnRNYXJrZXJzKEdyYXBo
aWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UG9pbnQmIGJveE9yaWdpbiwgY29uc3QgUmVuZGVyU3R5
bGUmLCBjb25zdCBGb250JiwgYm9vbCBiYWNrZ3JvdW5kKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFpbnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvVGV4dFBhaW50ZXIuY3BwCmluZGV4IGZhMWQ3OWEwMGY5ZjE5MmI4YzhiZjFhMjQ3NzRkZjQ0
ZThmN2Y1YzQuLjI3NDMxOTE5OGJlNDE5MTAwZjVhMWEwNTNkMzVkYmVkYWY0OGJlZmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFpbnRlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRQYWludGVyLmNwcApAQCAtNjUsMTEgKzY1LDM1IEBA
IHN0YXRpYyB2b2lkIGRyYXdUZXh0T3JFbXBoYXNpc01hcmtzKEdyYXBoaWNzQ29udGV4dCYgY29u
dGV4dCwgY29uc3QgRm9udCYgZm9udCwKICAgICAgICAgY29udGV4dC5kcmF3RW1waGFzaXNNYXJr
cyhmb250LCB0ZXh0UnVuLCBlbXBoYXNpc01hcmssIHBvaW50ICsgSW50U2l6ZSgwLCBlbXBoYXNp
c01hcmtPZmZzZXQpLCBmcm9tLCB0byk7CiB9CiAKLXN0YXRpYyBib29sIGlzRW1wdHlTaGFkb3co
Y29uc3QgU2hhZG93RGF0YSogc2hhZG93KQorRmxvYXRTaXplIFRleHRQYWludGVyOjphcHBseVNo
YWRvd1RvR3JhcGhpY3NDb250ZXh0KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgU2hh
ZG93RGF0YSogc2hhZG93LCBjb25zdCBGbG9hdFJlY3QmIHRleHRSZWN0LCBEcmF3c1JlYWxUZXh0
QWxvbmdXaXRoU2hhZG93IG9ubHlEcmF3c1NoYWRvdywgU2hhZG93SXNFbXB0eSBlbXB0eVNoYWRv
dywgRm9udE9yaWVudGF0aW9uIG9yaWVudGF0aW9uKQogewogICAgIGlmICghc2hhZG93KQotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIHNoYWRvdy0+bG9jYXRpb24oKSA9PSBJbnRQ
b2ludCgpICYmICFzaGFkb3ctPnJhZGl1cygpOworICAgICAgICByZXR1cm4gRmxvYXRTaXplKCk7
CisKKyAgICBGbG9hdFNpemUgZXh0cmFPZmZzZXQ7CisgICAgaW50IHNoYWRvd1ggPSBvcmllbnRh
dGlvbiA9PSBIb3Jpem9udGFsID8gc2hhZG93LT54KCkgOiBzaGFkb3ctPnkoKTsKKyAgICBpbnQg
c2hhZG93WSA9IG9yaWVudGF0aW9uID09IEhvcml6b250YWwgPyBzaGFkb3ctPnkoKSA6IC1zaGFk
b3ctPngoKTsKKyAgICBGbG9hdFNpemUgc2hhZG93T2Zmc2V0KHNoYWRvd1gsIHNoYWRvd1kpOwor
ICAgIGludCBzaGFkb3dSYWRpdXMgPSBzaGFkb3ctPnJhZGl1cygpOworICAgIGNvbnN0IENvbG9y
JiBzaGFkb3dDb2xvciA9IHNoYWRvdy0+Y29sb3IoKTsKKworICAgIC8vIFdoZW4gZHJhd2luZyBz
aGFkb3dzLCB3ZSB1c3VhbGx5IGNsaXAgdGhlIGNvbnRleHQgdG8gdGhlIGFyZWEgdGhlIHNoYWRv
dyB3aWxsIHJlc2lkZSwgYW5kIHRoZW4KKyAgICAvLyBkcmF3IHRoZSB0ZXh0IGl0c2VsZiBvdXRz
aWRlIHRoZSBjbGlwcGVkIGFyZWEgKHNvIG9ubHkgdGhlIHNoYWRvdyBzaG93cyB1cCkuIEhvd2V2
ZXIsIHdlIGNhbgorICAgIC8vIG9mdGVuIGRyYXcgdGhlIDo6bGFzdDo6IHNoYWRvdyBhbmQgdGhl
IHRleHQgaXRzZWxmIGluIGEgc2luZ2xlIGNhbGwuCisgICAgaWYgKG9ubHlEcmF3c1NoYWRvdyA9
PSBEcmF3c1JlYWxUZXh0QWxvbmdXaXRoU2hhZG93OjpObykgeworICAgICAgICBGbG9hdFJlY3Qg
c2hhZG93UmVjdCh0ZXh0UmVjdCk7CisgICAgICAgIHNoYWRvd1JlY3QuaW5mbGF0ZShzaGFkb3ct
PnBhaW50aW5nRXh0ZW50KCkpOworICAgICAgICBzaGFkb3dSZWN0Lm1vdmUoc2hhZG93T2Zmc2V0
KTsKKyAgICAgICAgY29udGV4dC5zYXZlKCk7CisgICAgICAgIGNvbnRleHQuY2xpcChzaGFkb3dS
ZWN0KTsKKworICAgICAgICBleHRyYU9mZnNldCA9IEZsb2F0U2l6ZSgwLCAyICogdGV4dFJlY3Qu
aGVpZ2h0KCkgKyBzdGQ6Om1heCgwLjBmLCBzaGFkb3dPZmZzZXQuaGVpZ2h0KCkpICsgc2hhZG93
UmFkaXVzKTsKKyAgICAgICAgc2hhZG93T2Zmc2V0IC09IGV4dHJhT2Zmc2V0OworICAgIH0KKwor
ICAgIGlmIChlbXB0eVNoYWRvdyA9PSBTaGFkb3dJc0VtcHR5OjpObykKKyAgICAgICAgY29udGV4
dC5zZXRTaGFkb3coc2hhZG93T2Zmc2V0LCBzaGFkb3dSYWRpdXMsIHNoYWRvd0NvbG9yLCBjb250
ZXh0LmZpbGxDb2xvclNwYWNlKCkpOworICAgIHJldHVybiBleHRyYU9mZnNldDsKIH0KIAogc3Rh
dGljIHZvaWQgcGFpbnRUZXh0V2l0aFNoYWRvd3MoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBj
b25zdCBGb250JiBmb250LCBjb25zdCBUZXh0UnVuJiB0ZXh0UnVuLCBjb25zdCBBdG9taWNTdHJp
bmcmIGVtcGhhc2lzTWFyaywKQEAgLTc4LDIxICsxMDIsMjQgQEAgc3RhdGljIHZvaWQgcGFpbnRU
ZXh0V2l0aFNoYWRvd3MoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGb250JiBmb250
LCBjb24KIHsKICAgICBDb2xvciBmaWxsQ29sb3IgPSBjb250ZXh0LmZpbGxDb2xvcigpOwogICAg
IENvbG9yU3BhY2UgZmlsbENvbG9yU3BhY2UgPSBjb250ZXh0LmZpbGxDb2xvclNwYWNlKCk7Ci0g
ICAgYm9vbCBvcGFxdWUgPSAhZmlsbENvbG9yLmhhc0FscGhhKCk7Ci0gICAgaWYgKCFvcGFxdWUp
CisgICAgTWFpblRleHRJc09wYXF1ZSBvcGFxdWUgPSBmaWxsQ29sb3IuaGFzQWxwaGEoKSA/IE1h
aW5UZXh0SXNPcGFxdWU6Ok5vIDogTWFpblRleHRJc09wYXF1ZTo6WWVzOworICAgIGJvb2wgbGFz
dFNoYWRvd0l0ZXJhdGlvbkRyYXdzUmVhbFRleHRBc1dlbGwgPSAhc3Ryb2tlZCAmJiBvcGFxdWUg
PT0gTWFpblRleHRJc09wYXF1ZTo6WWVzOworICAgIGlmIChvcGFxdWUgPT0gTWFpblRleHRJc09w
YXF1ZTo6Tm8pCiAgICAgICAgIGNvbnRleHQuc2V0RmlsbENvbG9yKENvbG9yOjpibGFjaywgZmls
bENvbG9yU3BhY2UpOwogCiAgICAgZG8gewotICAgICAgICBpZiAoaXNFbXB0eVNoYWRvdyhzaGFk
b3cpKSB7CisgICAgICAgIFNoYWRvd0lzRW1wdHkgZW1wdHlTaGFkb3cgPSBUZXh0UGFpbnRlcjo6
aXNFbXB0eVNoYWRvdyhzaGFkb3csIG9wYXF1ZSk7CisgICAgICAgIERyYXdzUmVhbFRleHRBbG9u
Z1dpdGhTaGFkb3cgb25seURyYXdzU2hhZG93ID0KKyAgICAgICAgICAgIFRleHRQYWludGVyOjpp
c0xhc3RTaGFkb3dJdGVyYXRpb24oc2hhZG93KSAmJiBsYXN0U2hhZG93SXRlcmF0aW9uRHJhd3NS
ZWFsVGV4dEFzV2VsbCA/IERyYXdzUmVhbFRleHRBbG9uZ1dpdGhTaGFkb3c6OlllcyA6IERyYXdz
UmVhbFRleHRBbG9uZ1dpdGhTaGFkb3c6Ok5vOworICAgICAgICBpZiAoZW1wdHlTaGFkb3cgPT0g
U2hhZG93SXNFbXB0eTo6WWVzICYmIG9ubHlEcmF3c1NoYWRvdyA9PSBEcmF3c1JlYWxUZXh0QWxv
bmdXaXRoU2hhZG93OjpObykgewogICAgICAgICAgICAgc2hhZG93ID0gc2hhZG93LT5uZXh0KCk7
CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCiAgICAgICAgIEludFNpemUgZXh0
cmFPZmZzZXQ7Ci0gICAgICAgIGJvb2wgZGlkU2F2ZUNvbnRleHQgPSBmYWxzZTsKICAgICAgICAg
aWYgKHNoYWRvdykKLSAgICAgICAgICAgIGV4dHJhT2Zmc2V0ID0gcm91bmRlZEludFNpemUoSW5s
aW5lVGV4dEJveDo6YXBwbHlTaGFkb3dUb0dyYXBoaWNzQ29udGV4dChjb250ZXh0LCBzaGFkb3cs
IGJveFJlY3QsIHN0cm9rZWQsIG9wYXF1ZSwgaG9yaXpvbnRhbCwgZGlkU2F2ZUNvbnRleHQpKTsK
LSAgICAgICAgZWxzZSBpZiAoIW9wYXF1ZSkKKyAgICAgICAgICAgIGV4dHJhT2Zmc2V0ID0gcm91
bmRlZEludFNpemUoVGV4dFBhaW50ZXI6OmFwcGx5U2hhZG93VG9HcmFwaGljc0NvbnRleHQoY29u
dGV4dCwgc2hhZG93LCBib3hSZWN0LCBvbmx5RHJhd3NTaGFkb3csIGVtcHR5U2hhZG93LCBob3Jp
em9udGFsID8gSG9yaXpvbnRhbCA6IFZlcnRpY2FsKSk7CisgICAgICAgIGVsc2UgaWYgKG9wYXF1
ZSA9PSBNYWluVGV4dElzT3BhcXVlOjpObykKICAgICAgICAgICAgIGNvbnRleHQuc2V0RmlsbENv
bG9yKGZpbGxDb2xvciwgZmlsbENvbG9yU3BhY2UpOwogCiAgICAgICAgIGlmIChzdGFydE9mZnNl
dCA8PSBlbmRPZmZzZXQpCkBAIC0xMDcsMTMgKzEzNCwxMyBAQCBzdGF0aWMgdm9pZCBwYWludFRl
eHRXaXRoU2hhZG93cyhHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZvbnQmIGZvbnQs
IGNvbgogICAgICAgICBpZiAoIXNoYWRvdykKICAgICAgICAgICAgIGJyZWFrOwogCi0gICAgICAg
IGlmIChkaWRTYXZlQ29udGV4dCkKLSAgICAgICAgICAgIGNvbnRleHQucmVzdG9yZSgpOworICAg
ICAgICBpZiAob25seURyYXdzU2hhZG93ID09IERyYXdzUmVhbFRleHRBbG9uZ1dpdGhTaGFkb3c6
Ok5vKQorICAgICAgICAgICAgY29udGV4dC5yZXN0b3JlKCk7IC8vIE1hdGNoaW5nIGNhbGwgdG8g
Y29udGV4dC5zYXZlKCkgaW4gYXBwbHlTaGFkb3dUb0dyYXBoaWNzQ29udGV4dAogICAgICAgICBl
bHNlCiAgICAgICAgICAgICBjb250ZXh0LmNsZWFyU2hhZG93KCk7CiAKICAgICAgICAgc2hhZG93
ID0gc2hhZG93LT5uZXh0KCk7Ci0gICAgfSB3aGlsZSAoc2hhZG93IHx8IHN0cm9rZWQgfHwgIW9w
YXF1ZSk7CisgICAgfSB3aGlsZSAoc2hhZG93IHx8ICFsYXN0U2hhZG93SXRlcmF0aW9uRHJhd3NS
ZWFsVGV4dEFzV2VsbCk7CiB9CiAKIHZvaWQgVGV4dFBhaW50ZXI6OnBhaW50VGV4dCgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dFBhaW50ZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFpbnRlci5oCmluZGV4IDk2ZjgzYWEyYjMxMzQxOTY2ZDM2
ZjU5MzRiOGE1NzZjM2QwNDA3ZDcuLmQ0YjU2ZDM1NWJmODI4NmQzNGJjZDE3NWI1Njk2ZmRlM2Y0
NzAzOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFpbnRlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFpbnRlci5oCkBAIC0yNSw2ICsy
NSw3IEBACiAKICNpbmNsdWRlICJBZmZpbmVUcmFuc2Zvcm0uaCIKICNpbmNsdWRlICJEYXNoQXJy
YXkuaCIKKyNpbmNsdWRlICJGb250T3JpZW50YXRpb24uaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQxLDEyICs0MiwzOCBAQCBzdGF0aWMgaW5s
aW5lIEFmZmluZVRyYW5zZm9ybSByb3RhdGlvbihjb25zdCBGbG9hdFJlY3QmIGJveFJlY3QsIFJv
dGF0aW9uRGlyZWN0aQogICAgICAgICA6IEFmZmluZVRyYW5zZm9ybSgwLCAtMSwgMSwgMCwgYm94
UmVjdC54KCkgLSBib3hSZWN0Lm1heFkoKSwgYm94UmVjdC54KCkgKyBib3hSZWN0Lm1heFkoKSk7
CiB9CiAKK2VudW0gY2xhc3MgTWFpblRleHRJc09wYXF1ZSB7CisgICAgWWVzLAorICAgIE5vCit9
OworZW51bSBjbGFzcyBTaGFkb3dJc0VtcHR5IHsKKyAgICBZZXMsCisgICAgTm8KK307CitlbnVt
IGNsYXNzIERyYXdzUmVhbFRleHRBbG9uZ1dpdGhTaGFkb3cgeworICAgIFllcywKKyAgICBObwor
fTsKKwogY2xhc3MgVGV4dFBhaW50ZXIgewogcHVibGljOgogICAgIFRleHRQYWludGVyKEdyYXBo
aWNzQ29udGV4dCYsIGJvb2wgcGFpbnRTZWxlY3RlZFRleHRPbmx5LCBib29sIHBhaW50U2VsZWN0
ZWRUZXh0U2VwYXJhdGVseSwgY29uc3QgRm9udCYsCiAgICAgaW50IHN0YXJ0UG9zaXRpb25JblRl
eHRSdW4sIGludCBlbmRQb3NpdGlvbkluVGV4dEJveFN0cmluZywgaW50IGxlbmd0aCwgY29uc3Qg
QXRvbWljU3RyaW5nJiBlbXBoYXNpc01hcmssIFJlbmRlckNvbWJpbmVUZXh0KiwKICAgICBUZXh0
UnVuJiwgRmxvYXRSZWN0JiBib3hSZWN0LCBGbG9hdFBvaW50JiB0ZXh0T3JpZ2luLCBpbnQgZW1w
aGFzaXNNYXJrT2Zmc2V0LCBjb25zdCBTaGFkb3dEYXRhKiB0ZXh0U2hhZG93LCBjb25zdCBTaGFk
b3dEYXRhKiBzZWxlY3Rpb25TaGFkb3csCiAgICAgYm9vbCB0ZXh0Qm94SXNIb3Jpem9udGFsLCBU
ZXh0UGFpbnRTdHlsZSYgbm9uU2VsZWN0aW9uUGFpbnRTdHlsZSwgVGV4dFBhaW50U3R5bGUmIHNl
bGVjdGlvblBhaW50U3R5bGUpOworCisgICAgc3RhdGljIGlubGluZSBib29sIGlzTGFzdFNoYWRv
d0l0ZXJhdGlvbihjb25zdCBTaGFkb3dEYXRhKiBzaGFkb3cpCisgICAgeworICAgICAgICByZXR1
cm4gc2hhZG93ICYmICFzaGFkb3ctPm5leHQoKTsKKyAgICB9CisgICAgc3RhdGljIGlubGluZSBT
aGFkb3dJc0VtcHR5IGlzRW1wdHlTaGFkb3coY29uc3QgU2hhZG93RGF0YSogc2hhZG93LCBNYWlu
VGV4dElzT3BhcXVlIG1haW5UZXh0SXNPcGFxdWUpCisgICAgeworICAgICAgICBpZiAobWFpblRl
eHRJc09wYXF1ZSA9PSBNYWluVGV4dElzT3BhcXVlOjpZZXMgJiYgc2hhZG93ICYmIHNoYWRvdy0+
bG9jYXRpb24oKSA9PSBJbnRQb2ludCgpICYmICFzaGFkb3ctPnJhZGl1cygpKQorICAgICAgICAg
ICAgcmV0dXJuIFNoYWRvd0lzRW1wdHk6OlllczsKKyAgICAgICAgcmV0dXJuIFNoYWRvd0lzRW1w
dHk6Ok5vOworICAgIH0KKworICAgIHN0YXRpYyBGbG9hdFNpemUgYXBwbHlTaGFkb3dUb0dyYXBo
aWNzQ29udGV4dChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBTaGFkb3dEYXRhKiwgY29uc3QgRmxv
YXRSZWN0JiB0ZXh0UmVjdCwgRHJhd3NSZWFsVGV4dEFsb25nV2l0aFNoYWRvdywgU2hhZG93SXNF
bXB0eSwgRm9udE9yaWVudGF0aW9uKTsKICAgICAKICAgICB2b2lkIHBhaW50VGV4dCgpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR0lubGluZVRleHRCb3gu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdJbmxpbmVUZXh0Qm94LmNwcApp
bmRleCBjZGVjZGE0NzFhOTA5MmI5ODg4ZGQyNDY1MzQ5ZGY2OTNjMzA2MDVmLi4xNGEwNzM3ZTFl
ZDY1YThkZDc2NDcwNzJiOTU5MTg4MWYzYzEzODA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1NWR0lubGluZVRleHRCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvU1ZHSW5saW5lVGV4dEJveC5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNp
bmNsdWRlICJTVkdSZXNvdXJjZXNDYWNoZS5oIgogI2luY2x1ZGUgIlNWR1Jvb3RJbmxpbmVCb3gu
aCIKICNpbmNsdWRlICJTVkdUZXh0UnVuUmVuZGVyaW5nQ29udGV4dC5oIgorI2luY2x1ZGUgIlRl
eHRQYWludGVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTk1LDkgKzU5NiwxMCBA
QCB2b2lkIFNWR0lubGluZVRleHRCb3g6OnBhaW50VGV4dFdpdGhTaGFkb3dzKEdyYXBoaWNzQ29u
dGV4dCogY29udGV4dCwgUmVuZGVyU3R5bAogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAg
RmxvYXRTaXplIGV4dHJhT2Zmc2V0OwotICAgICAgICBib29sIGRpZFNhdmVDb250ZXh0ID0gZmFs
c2U7CisgICAgICAgIERyYXdzUmVhbFRleHRBbG9uZ1dpdGhTaGFkb3cgb25seURyYXdzU2hhZG93
ID0gVGV4dFBhaW50ZXI6OmlzTGFzdFNoYWRvd0l0ZXJhdGlvbihzaGFkb3cpID8gRHJhd3NSZWFs
VGV4dEFsb25nV2l0aFNoYWRvdzo6WWVzIDogRHJhd3NSZWFsVGV4dEFsb25nV2l0aFNoYWRvdzo6
Tm87CiAgICAgICAgIGlmIChzaGFkb3cpCi0gICAgICAgICAgICBleHRyYU9mZnNldCA9IGFwcGx5
U2hhZG93VG9HcmFwaGljc0NvbnRleHQoKmNvbnRleHQsIHNoYWRvdywgc2hhZG93UmVjdCwgZmFs
c2UgLyogc3Ryb2tlZCAqLywgdHJ1ZSAvKiBvcGFxdWUgKi8sIHRydWUgLyogaG9yaXpvbnRhbCAq
LywgZGlkU2F2ZUNvbnRleHQpOworICAgICAgICAgICAgZXh0cmFPZmZzZXQgPSBUZXh0UGFpbnRl
cjo6YXBwbHlTaGFkb3dUb0dyYXBoaWNzQ29udGV4dCgqY29udGV4dCwgc2hhZG93LCBzaGFkb3dS
ZWN0LCBvbmx5RHJhd3NTaGFkb3csCisgICAgICAgICAgICAgICAgVGV4dFBhaW50ZXI6OmlzRW1w
dHlTaGFkb3coc2hhZG93LCBNYWluVGV4dElzT3BhcXVlOjpObyksIEhvcml6b250YWwpOwogCiAg
ICAgICAgIGNvbnRleHQtPnNhdmUoKTsKICAgICAgICAgY29udGV4dC0+c2NhbGUoRmxvYXRTaXpl
KDEgLyBzY2FsaW5nRmFjdG9yLCAxIC8gc2NhbGluZ0ZhY3RvcikpOwpAQCAtNjA3LDggKzYwOSw4
IEBAIHZvaWQgU1ZHSW5saW5lVGV4dEJveDo6cGFpbnRUZXh0V2l0aFNoYWRvd3MoR3JhcGhpY3ND
b250ZXh0KiBjb250ZXh0LCBSZW5kZXJTdHlsCiAgICAgICAgIGNvbnRleHQtPnJlc3RvcmUoKTsK
IAogICAgICAgICBpZiAoc2hhZG93KSB7Ci0gICAgICAgICAgICBpZiAoZGlkU2F2ZUNvbnRleHQp
Ci0gICAgICAgICAgICAgICAgY29udGV4dC0+cmVzdG9yZSgpOworICAgICAgICAgICAgaWYgKG9u
bHlEcmF3c1NoYWRvdyA9PSBEcmF3c1JlYWxUZXh0QWxvbmdXaXRoU2hhZG93OjpObykKKyAgICAg
ICAgICAgICAgICBjb250ZXh0LT5yZXN0b3JlKCk7IC8vIE1hdGNoaW5nIGNhbGwgdG8gY29udGV4
dC5zYXZlKCkgaW4gYXBwbHlTaGFkb3dUb0dyYXBoaWNzQ29udGV4dAogICAgICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgICAgIGNvbnRleHQtPmNsZWFyU2hhZG93KCk7CiAgICAgICAgIH0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCAyYzZmNDNhOTNmODQzMGZiMTBlZjE4NmEyZmFjOTIxN2Y1NTI5MWU1Li5jZWU2ZjY4ZWVk
NTFlYTI5OTNiODcwMzhhZGMwZjI3OThhOGYyNGE1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIw
MTQtMDktMTUgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAg
ICAgICBSRUdSRVNTSU9OOiBUZXh0IHdpdGggYSB6ZXJvIG9mZnNldCwgemVybyBibHVyIHNoYWRv
dyB2YW5pc2hlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTM2ODAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhpcyB0ZXN0IHNob3VsZCBiZSBhIGNvbXByZWhlbnNpdmUgdGVzdCBvZiBlbXB0eSBzaGFk
b3dzLiBJdCB0ZXN0cyBldmVyeQorICAgICAgICBjb21iaW5hdGlvbiBvZiBvbmUgYW5kIHR3byBz
aGFkb3dzIGJlaW5nIGVtcHR5LCBhcyB3ZWxsIGFzIHRyYW5zcGFyZW50IGFuZAorICAgICAgICBv
cGFxdWUgdGV4dC4KKworICAgICAgICBBZnRlciB1cGRhdGluZyBmYXN0L3RleHQvZW1wdHktc2hh
ZG93Lmh0bWwsIGZhc3QvdGV4dC9lbXB0eS1zaGFkb3ctd2l0aC1jb2xvci5odG1sCisgICAgICAg
IGlzIG5vIGxvbmdlciBuZWNlc3NhcnkuCisKKyAgICAgICAgKiBmYXN0L3RleHQvZW1wdHktc2hh
ZG93LWV4cGVjdGVkLmh0bWw6CisgICAgICAgICogZmFzdC90ZXh0L2VtcHR5LXNoYWRvdy13aXRo
LWNvbG9yLWV4cGVjdGVkLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC90ZXh0L2VtcHR5
LXNoYWRvdy13aXRoLWNvbG9yLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC90ZXh0L2Vt
cHR5LXNoYWRvdy5odG1sOgorCiAyMDE0LTA4LTA3ICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3Zp
bGxhckBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtDU1MgR3JpZCBMYXlvdXRdIFNvcnQgaXRlbXMg
Ynkgc3BhbiB3aGVuIHJlc29sdmluZyBjb250ZW50LWJhc2VkIHRyYWNrIHNpemluZyBmdW5jdGlv
bnMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9lbXB0eS1zaGFkb3ctZXhwZWN0
ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9lbXB0eS1zaGFkb3ctZXhwZWN0ZWQuaHRt
bAppbmRleCBjZTJiOTZiMGJkMDJmOWNmYzhkZmM2OTk3NzE2M2M5NTJmNjYzNmE4Li4yYjNmYWVh
NWM0MGZiM2RkMmU5MzE3ODFiYWUwMDhlZTQ5MmRhZGRhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L3RleHQvZW1wdHktc2hhZG93LWV4cGVjdGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC90ZXh0L2VtcHR5LXNoYWRvdy1leHBlY3RlZC5odG1sCkBAIC0xLDMgKzEsMjAgQEAKLVRo
aXMgdGVzdHMgdGhhdCB0ZXh0IGRyYXduIHdpdGggdGV4dC1zaGFkb3dzIG9mIHJhZGl1cyAwIGFu
ZCAoMCwgMCkgb2Zmc2V0IGFyZSBub3QgZHJhd24uCi1UaGlzIGlzIGEgYmV0dGVyIG91dGNvbWUg
dGhhbiB0aGVtIGJlaW5nIGRyYXduIGluIGFuIHVnbHkgd2F5LgotVGhpcyB0ZXN0IGlzIHN1Y2Nl
c3NmdWwgaWYgdGhlIHRleHQgYmVsb3cgaXMgY29tcGxldGVseSBpbnZpc2libGUuCis8cD5UaGlz
IHRlc3RzIHRoYXQgdGV4dCBkcmF3biB3aXRoIHRleHQtc2hhZG93cyBvZiByYWRpdXMgMCBhbmQg
KDAsIDApIG9mZnNldCBhcmUgbm90IGRyYXduLjwvcD4KKzxwPkluIHRoZSBmb2xsb3dpbmcgdGVz
dHMsIHRoZSBhY3R1YWwgdGV4dCBpcyBncmVlbiB3aGlsZSB0aGUgc2hhZG93cyBhcmUgYmx1ZS48
L3A+CisKKzxkaXYgc3R5bGU9ImNvbG9yOiBncmVlbjsiPgorPGRpdiBzdHlsZT0idGV4dC1zaGFk
b3c6IDVweCA1cHggYmx1ZTsiPlRleHQgd2l0aCBhIHNpbmdsZSBzaGFkb3cuPC9kaXY+Cis8ZGl2
PlRleHQgd2l0aCBvbmUgZW1wdHkgKHVuZHJhd24pIHNoYWRvdy48L2Rpdj4KKzxkaXYgc3R5bGU9
InRleHQtc2hhZG93OiA1cHggNXB4IGJsdWUsIDEwcHggMTBweCBibHVlOyI+VGV4dCB3aXRoIHR3
byBzaGFkb3dzPC9kaXY+Cis8ZGl2IHN0eWxlPSJ0ZXh0LXNoYWRvdzogNXB4IDVweCBibHVlOyI+
VGV4dCB3aXRoIHR3byBzaGFkb3dzOiBmaXJzdCBkcmF3biBhbmQgc2Vjb25kIGVtcHR5ICh1bmRy
YXduKS48L2Rpdj4KKzxkaXYgc3R5bGU9InRleHQtc2hhZG93OiAxMHB4IDEwcHggYmx1ZTsiPlRl
eHQgd2l0aCB0d28gc2hhZG93czogZmlyc3QgZW1wdHkgKHVuZHJhd24pIGFuZCBzZWNvbmQgZHJh
d24uPC9kaXY+Cis8ZGl2PlRleHQgd2l0aCB0d28gZW1wdHkgKHVuZHJhd24pIHNoYWRvd3MuPC9k
aXY+Cis8L2Rpdj4KKworPGRpdiBzdHlsZT0iY29sb3I6IHRyYW5zcGFyZW50OyI+Cis8ZGl2IHN0
eWxlPSJ0ZXh0LXNoYWRvdzogNXB4IDVweCBibHVlOyI+VHJhbnNwYXJlbnQgdGV4dCB3aXRoIGEg
c2luZ2xlIHNoYWRvdy48L2Rpdj4KKzxkaXYgc3R5bGU9ImNvbG9yOiBibHVlOyI+VHJhbnNwYXJl
bnQgdGV4dCB3aXRoIG9uZSBlbXB0eSBzaGFkb3cuPC9kaXY+Cis8ZGl2IHN0eWxlPSJ0ZXh0LXNo
YWRvdzogNXB4IDVweCBibHVlLCAxMHB4IDEwcHggYmx1ZTsiPlRyYW5zcGFyZW50IHRleHQgd2l0
aCB0d28gc2hhZG93czwvZGl2PgorPGRpdiBzdHlsZT0iY29sb3I6IGJsdWU7IHRleHQtc2hhZG93
OiA3cHggN3B4IGJsdWU7Ij5UcmFuc3BhcmVudCB0ZXh0IHdpdGggdHdvIHNoYWRvd3M6IGZpcnN0
IGRyYXduIGFuZCBzZWNvbmQgZW1wdHkuPC9kaXY+Cis8ZGl2IHN0eWxlPSJjb2xvcjogYmx1ZTsg
dGV4dC1zaGFkb3c6IDEwcHggMTBweCBibHVlOyI+VHJhbnNwYXJlbnQgdGV4dCB3aXRoIHR3byBz
aGFkb3dzOiBmaXJzdCBkcmF3biBhbmQgc2Vjb25kIGVtcHR5LjwvZGl2PgorPGRpdiBzdHlsZT0i
Y29sb3I6IGJsdWU7IHBvc2l0aW9uOiByZWxhdGl2ZTsiPjxkaXYgc3R5bGU9InBvc2l0aW9uOiBh
YnNvbHV0ZTsgbGVmdDogMHB4OyB0b3A6IDBweDsiPlRyYW5zcGFyZW50IHRleHQgd2l0aCB0d28g
ZW1wdHkgc2hhZG93cy48L2Rpdj48ZGl2IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6
IDBweDsgdG9wOiAwcHg7Ij5UcmFuc3BhcmVudCB0ZXh0IHdpdGggdHdvIGVtcHR5IHNoYWRvd3Mu
PC9kaXY+PC9kaXY+Cis8L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9l
bXB0eS1zaGFkb3ctd2l0aC1jb2xvci1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90
ZXh0L2VtcHR5LXNoYWRvdy13aXRoLWNvbG9yLWV4cGVjdGVkLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDQ1YTRkOTIwZjczNWNjYzhmODZmMmQ3NzA2MDU3YmZkZTQ2MmYwM2Iu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC90ZXh0L2VtcHR5LXNoYWRvdy13aXRoLWNvbG9yLWV4cGVjdGVkLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSwxNSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+
Ci08c3R5bGU+Ci0jdGVzdCB7Ci0gICAgY29sb3I6IGdyZWVuOwotICAgIGZvbnQtc2l6ZTogMTZw
eDsKLX0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLVRoaXMgdGVzdCBtYWtlcyBzdXJlIHRo
YXQgdGV4dCBkcmF3biB3aXRoIGFuIGVtcHR5IHNoYWRvdyBpcyBjb2xvcmVkIGNvcnJlY3RseS4g
SXQgcGFzc2VzIGlmIHRoZSBmb2xsb3dpbmcgdGV4dCBpcyBncmVlbi4KLTxkaXYgaWQ9InRlc3Qi
PlRoaXMgc2hvdWxkIGJlIGdyZWVuLjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2VtcHR5LXNoYWRvdy13aXRoLWNvbG9yLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L3RleHQvZW1wdHktc2hhZG93LXdpdGgtY29sb3IuaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2ZkZjk1YzNmYjc3ZDkyMTJkZWNiNWQyM2ZmODFkNTk0
OTM4Yjc4YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L3RleHQvZW1wdHktc2hhZG93LXdpdGgtY29sb3IuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDE3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4K
LTxzdHlsZT4KLSN0ZXN0IHsKLSAgICBjb2xvcjogZ3JlZW47Ci0gICAgZm9udC1zaXplOiAxNnB4
OwotICAgIHRleHQtc2hhZG93OiByZWQgMjBweCAyMHB4LCByZWQgMHB4IDBweDsKLSAgICBvdmVy
ZmxvdzogaGlkZGVuOwotfQotPC9zdHlsZT4KLTwvaGVhZD4KLTxib2R5PgotVGhpcyB0ZXN0IG1h
a2VzIHN1cmUgdGhhdCB0ZXh0IGRyYXduIHdpdGggYW4gZW1wdHkgc2hhZG93IGlzIGNvbG9yZWQg
Y29ycmVjdGx5LiBJdCBwYXNzZXMgaWYgdGhlIGZvbGxvd2luZyB0ZXh0IGlzIGdyZWVuLgotPGRp
diBpZD0idGVzdCI+VGhpcyBzaG91bGQgYmUgZ3JlZW4uPC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvZW1wdHktc2hhZG93Lmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L3RleHQvZW1wdHktc2hhZG93Lmh0bWwKaW5kZXggNDI3Y2RkOGM2M2M5
YTE4MmE1YzBkZjFhZDI4ZDMxZDQ0YjI0YTNjZi4uMmIzZTc3ODM0Y2FlZDIyOTk5ZWQ4MDhlMzU1
MDQ2NmVmYTBiODQ5MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2VtcHR5LXNo
YWRvdy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9lbXB0eS1zaGFkb3cuaHRtbApA
QCAtMSw0ICsxLDIwIEBACi1UaGlzIHRlc3RzIHRoYXQgdGV4dCBkcmF3biB3aXRoIHRleHQtc2hh
ZG93cyBvZiByYWRpdXMgMCBhbmQgKDAsIDApIG9mZnNldCBhcmUgbm90IGRyYXduLgotVGhpcyBp
cyBhIGJldHRlciBvdXRjb21lIHRoYW4gdGhlbSBiZWluZyBkcmF3biBpbiBhbiB1Z2x5IHdheS4K
LVRoaXMgdGVzdCBpcyBzdWNjZXNzZnVsIGlmIHRoZSB0ZXh0IGJlbG93IGlzIGNvbXBsZXRlbHkg
aW52aXNpYmxlLgotPGRpdiBzdHlsZT0iY29sb3I6I2ZmZjt0ZXh0LXNoYWRvdzowIDAgIzAwMCI+
VGhpcyBpcyBzb21lIHRleHQ8L2Rpdj4KKzxwPlRoaXMgdGVzdHMgdGhhdCB0ZXh0IGRyYXduIHdp
dGggdGV4dC1zaGFkb3dzIG9mIHJhZGl1cyAwIGFuZCAoMCwgMCkgb2Zmc2V0IGFyZSBub3QgZHJh
d24uPC9wPgorPHA+SW4gdGhlIGZvbGxvd2luZyB0ZXN0cywgdGhlIGFjdHVhbCB0ZXh0IGlzIGdy
ZWVuIHdoaWxlIHRoZSBzaGFkb3dzIGFyZSBibHVlLjwvcD4KKworPGRpdiBzdHlsZT0iY29sb3I6
IGdyZWVuOyI+Cis8ZGl2IHN0eWxlPSJ0ZXh0LXNoYWRvdzogNXB4IDVweCBibHVlOyI+VGV4dCB3
aXRoIGEgc2luZ2xlIHNoYWRvdy48L2Rpdj4KKzxkaXYgc3R5bGU9InRleHQtc2hhZG93OiAwcHgg
MHB4IGJsdWU7Ij5UZXh0IHdpdGggb25lIGVtcHR5ICh1bmRyYXduKSBzaGFkb3cuPC9kaXY+Cis8
ZGl2IHN0eWxlPSJ0ZXh0LXNoYWRvdzogNXB4IDVweCBibHVlLCAxMHB4IDEwcHggYmx1ZTsiPlRl
eHQgd2l0aCB0d28gc2hhZG93czwvZGl2PgorPGRpdiBzdHlsZT0idGV4dC1zaGFkb3c6IDVweCA1
cHggYmx1ZSwgMHB4IDBweCBibHVlOyI+VGV4dCB3aXRoIHR3byBzaGFkb3dzOiBmaXJzdCBkcmF3
biBhbmQgc2Vjb25kIGVtcHR5ICh1bmRyYXduKS48L2Rpdj4KKzxkaXYgc3R5bGU9InRleHQtc2hh
ZG93OiAwcHggMHB4IGJsdWUsIDEwcHggMTBweCBibHVlOyI+VGV4dCB3aXRoIHR3byBzaGFkb3dz
OiBmaXJzdCBlbXB0eSAodW5kcmF3bikgYW5kIHNlY29uZCBkcmF3bi48L2Rpdj4KKzxkaXYgc3R5
bGU9InRleHQtc2hhZG93OiAwcHggMHB4IGJsdWUsIDBweCAwcHggYmx1ZTsiPlRleHQgd2l0aCB0
d28gZW1wdHkgKHVuZHJhd24pIHNoYWRvd3MuPC9kaXY+Cis8L2Rpdj4KKworPGRpdiBzdHlsZT0i
Y29sb3I6IHRyYW5zcGFyZW50OyI+Cis8ZGl2IHN0eWxlPSJ0ZXh0LXNoYWRvdzogNXB4IDVweCBi
bHVlOyI+VHJhbnNwYXJlbnQgdGV4dCB3aXRoIGEgc2luZ2xlIHNoYWRvdy48L2Rpdj4KKzxkaXYg
c3R5bGU9InRleHQtc2hhZG93OiAwcHggMHB4IGJsdWU7Ij5UcmFuc3BhcmVudCB0ZXh0IHdpdGgg
b25lIGVtcHR5IHNoYWRvdy48L2Rpdj4KKzxkaXYgc3R5bGU9InRleHQtc2hhZG93OiA1cHggNXB4
IGJsdWUsIDEwcHggMTBweCBibHVlOyI+VHJhbnNwYXJlbnQgdGV4dCB3aXRoIHR3byBzaGFkb3dz
PC9kaXY+Cis8ZGl2IHN0eWxlPSJ0ZXh0LXNoYWRvdzogN3B4IDdweCBibHVlLCAwcHggMHB4IGJs
dWU7Ij5UcmFuc3BhcmVudCB0ZXh0IHdpdGggdHdvIHNoYWRvd3M6IGZpcnN0IGRyYXduIGFuZCBz
ZWNvbmQgZW1wdHkuPC9kaXY+Cis8ZGl2IHN0eWxlPSJ0ZXh0LXNoYWRvdzogMHB4IDBweCBibHVl
LCAxMHB4IDEwcHggYmx1ZTsiPlRyYW5zcGFyZW50IHRleHQgd2l0aCB0d28gc2hhZG93czogZmly
c3QgZHJhd24gYW5kIHNlY29uZCBlbXB0eS48L2Rpdj4KKzxkaXYgc3R5bGU9InRleHQtc2hhZG93
OiAwcHggMHB4IGJsdWUsIDBweCAwcHggYmx1ZTsiPlRyYW5zcGFyZW50IHRleHQgd2l0aCB0d28g
ZW1wdHkgc2hhZG93cy48L2Rpdj4KKzwvZGl2Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238222</attachid>
            <date>2014-09-16 17:02:29 -0700</date>
            <delta_ts>2014-09-16 17:08:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136801-20140916170226.patch</filename>
            <type>text/plain</type>
            <size>20928</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTczNjc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjMyMjY3MGIzZjUzMDFj
YTczM2E1MGZhODE1NzU3OTYwNDZjZGM1MC4uYWNmZjk2YTAwNGRjY2QyZmQ4NzMwNzEyNzU1NWMy
NWNjNTk3NjdiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDE0LTA5LTE1ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lP
TjogVGV4dCB3aXRoIGEgemVybyBvZmZzZXQsIHplcm8gYmx1ciBzaGFkb3cgdmFuaXNoZXMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNjgwMQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
cGVyZm9ybXMgc29tZSBjbGVhbnVwIHJlZ2FyZGluZyBUZXh0UGFpbnRlcidzIHNoYWRvdyBsb2dp
YyBhbmQgaGFuZGxlcyBhbgorICAgICAgICBhZGRpdGlvbmFsIGNhc2Ugb2YgZW1wdHkgc2hhZG93
cy4gUHJldmlvdXNseSwgdGhlcmUgd2FzIHRpZ2h0IGNvdXBsaW5nIGJldHdlZW4KKyAgICAgICAg
YXBwbHlTaGFkb3dUb0dyYXBoaWNhbENvbnRleHQoKSBhbmQgcGFpbnRUZXh0V2l0aFNoYWRvd3Mo
KSwgYXMgdGhleSBib3RoIHVzZWQgYQorICAgICAgICBjb2xsZWN0aW9uIG9mIHZhcmlhYmxlcyB0
byBkZXRlcm1pbmUgaG93IHNoYWRvd3MgYXJlIHRvIGJlIGRyYXduLgorCisgICAgICAgIEdyYXBo
aWNzQ29udGV4dCBhbGxvd3MgdXMgdG8gcHV0IG9uZSBzaGFkb3cgb24gdGV4dCwgYnV0IHRoZSBD
U1Mgc3BlYyBhbGxvd3MgZm9yIGEgc2VyaWVzCisgICAgICAgIG9mIHNoYWRvd3MuIFdlIGFsbG93
IGZvciB0aGlzIGJ5IGxvb3Bpbmcgb3ZlciBldmVyeSBzaGFkb3cgaW4gdGhlIGxpc3QsIGFwcGx5
aW5nIGEKKyAgICAgICAgc2hhZG93LCBhbmQgZHJhd2luZyB0ZXh0LiBIb3dldmVyLCBpbiBvcmRl
ciB0byBhdm9pZCBkcmF3aW5nIHRoZSBtYWluIHRleHQgaXRzZWxmIG11bHRpcGxlCisgICAgICAg
IHRpbWVzIG9uIHRvcCBvZiBpdHNlbGYsIHdlIGNsaXAgdGhlIGNvbnRleHQgdG8gdGhlIHNoYWRv
d2VkIHJlZ2lvbiwgdGhlbiBkcmF3IHRoZSB0ZXh0CisgICAgICAgIGluIHNvbWUgYXJiaXRyYXJ5
IHBsYWNlIHRoYXQgaXMgb3V0c2lkZSBvZiB0aGUgY2xpcCByZWdpb24uIFdlIHRoZXJlZm9yZSBn
aXZlIGEgdmVjdG9yCisgICAgICAgIGZyb20gdGhpcyBhcmJpdHJhcnkgcGxhY2UgdG8gdGhlIHNo
YWRvdyBsb2NhdGlvbiB0byB0aGUgR3JhcGhpY3NDb250ZXh0IGFzIHRoZSBzaGFkb3cKKyAgICAg
ICAgb2Zmc2V0LiBIb3dldmVyLCB3ZSBoYXZlIGFuIG9wdGltaXphdGlvbiB0byBhbGxvdyB1cyB0
byBkcmF3IHRoZSB0ZXh0IGl0c2VsZiBkdXJpbmcgdGhlCisgICAgICAgIGxhc3QgaXRlcmF0aW9u
IG9mIHRoaXMgbG9vcCwgd2hpY2ggbWVhbnMgd2UgZG9uJ3QgZG8gYW55IG9mIHRoZSBhZm9yZW1l
bnRpb25lZCBjbGlwcGluZy4KKyAgICAgICAgVGhpcyBvcHRpbWl6YXRpb24gaXMgcHJlZGljYXRl
ZCBvbiB0aGUgbWFpbiB0ZXh0IGJlaW5nIG9wYXF1ZSBhbmQgbm9uLXN0cm9rZWQuIE90aGVyd2lz
ZSwKKyAgICAgICAgYW4gYWRkaXRpb25hbCBpdGVyYXRpb24gb2YgdGhlIGxvb3AgaXMgcGVyZm9y
bWVkICh0aGlzIGV4dHJhIGl0ZXJhdGlvbiBpcyBjb25jZXB0dWFsbHkgdGhlCisgICAgICAgIHNh
bWUgYXMgdGhlIGNhc2Ugd2hlcmUgdGhlcmUgaXMgbm8gc2hhZG93IHNwZWNpZmllZCBhdCBhbGwp
LgorCisgICAgICAgIFJlZ2FyZGluZyB0aGUgb3JpZ2luYWwgaW50ZW50IG9mIHRoaXMgc2V0IG9m
IHBhdGNoZXMgKG5vdCBkcmF3aW5nIGVtcHR5IHNoYWRvd3MpLCB0aGVyZQorICAgICAgICBhcmUg
dHdvIGNhc2VzOiB3aGVuIHdlIGFyZSBvbmx5IGRyYXdpbmcgdGhlIHNoYWRvdyB3aXRoIG91dCB0
aGUgbWFpbiB0ZXh0LCBpbiB3aGljaCBjYXNlCisgICAgICAgIHRoZSBlbnRpcmUgbG9vcCBpdGVy
YXRpb24gY2FuIGJlIGF2b2lkZWQsIGFuZCB0aGUgY2FzZSB3aGVyZSBib3RoIHRoZSBzaGFkb3cg
YW5kIG1haW4KKyAgICAgICAgdGV4dCBhcmUgYmVpbmcgZHJhd24gYXQgb25jZSwgd2hlcmUgd2Ug
aGF2ZSB0byBkcmF3IHRoZSBtYWluIHRleHQgd2l0aG91dCB0aGUgc2hhZG93LgorICAgICAgICBQ
cmV2aW91c2x5LCBvbmx5IHRoZSBmaXJzdCBjYXNlIHdhcyBoYW5kbGVkOyB0aGlzIHBhdGNoIGhh
bmRsZXMgdGhlIHNlY29uZCBjYXNlIGFzIHdlbGwuCisKKyAgICAgICAgVGhpcyBwYXRjaCBtb3Zl
cyBhcHBseVNoYWRvd1RvR3JhcGhpY3NDb250ZXh0IHNvIHRoYXQgdGhlIHR3byBmdW5jdGlvbnMg
YXJlIHBoeXNpY2FsbHkKKyAgICAgICAgY2xvc2UgdG9nZXRoZXIuIEkgYWxzbyBjaGFuZ2VkIHRo
ZSBzZW1hbnRpY3Mgb2YgdGhlIGZsYWdzIHRvIGJlIG1vcmUgdW5kZXJzdGFuZGFibGUgdG8KKyAg
ICAgICAgdGhlIGFsZ29yaXRobSBkZXNjcmliZWQgYWJvdmUuIEdpdmVuIHRoZXNlIG5ldyBmbGFn
cywgSSByZW1vdmVkIHRoZSBkaWRTYXZlQ29udGV4dCBvdXQKKyAgICAgICAgcGFyYW0gdG8gYXBw
bHlTaGFkb3dUb0dyYXBoaWNzQ29udGV4dCgpLCB3aGljaCBpcyBub3cgY29uY2VwdHVhbGx5IGlk
ZW50aWNhbCBhcyBvbmUgb2YKKyAgICAgICAgdGhlIGlucHV0cywgb25seURyYXdzU2hhZG93LiBU
aGVzZSBuZXcgZmxhZ3Mgd2lsbCBob3BlZnVsbHkgaW5jcmVhc2UgdGhlIHJlYWRhYmlsaXR5IG9m
CisgICAgICAgIHRoaXMgc2VjdGlvbiBvZiB0aGUgY29kZSBmb3IgZnV0dXJlIGRldmVsb3BlcnMg
c28gdGhhdCB0aGVzZSBtaXN0YWtlcyBJIGhhdmUgbWFkZSB3aWxsIG5vdAorICAgICAgICBiZSBy
ZXBlYXRlZC4KKworICAgICAgICBUZXN0OiBmYXN0L3RleHQvZW1wdHktc2hhZG93Lmh0bWw6IFVw
ZGF0ZWQgdG8gdGVzdCB0aGlzIGNhc2UgYXMgd2VsbCBhcyBhIGNvbGxlY3Rpb24gb2YKKyAgICAg
ICAgb3RoZXIgY2FzZXMuCisKKyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94OjphcHBseVNoYWRvd1RvR3JhcGhpY3ND
b250ZXh0KTogTW92ZWQgdG8gVGV4dFBhaW50ZXIuCisgICAgICAgICogcmVuZGVyaW5nL0lubGlu
ZVRleHRCb3guaDogTW92ZWQgYXBwbHlTaGFkb3dUb0dyYXBoaWNzQ29udGV4dCgpIHRvIFRleHRQ
YWludGVyLgorICAgICAgICAqIHJlbmRlcmluZy9UZXh0UGFpbnRlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpUZXh0UGFpbnRlcjo6YXBwbHlTaGFkb3dUb0dyYXBoaWNzQ29udGV4dCk6IE1vdmVk
IGZyb20gSW5saW5lVGV4dEJveC4gVXNpbmcKKyAgICAgICAgZW51bSBjbGFzc2VzIGluc3RlYWQg
b2YgYm9vbGVhbiBhcmd1bWVudHMuIFRoZSBzZW1hbnRpY3Mgb2YgdGhlc2UgYXJndW1lbnRzIGhh
dmUgY2hhbmdlZAorICAgICAgICBzbyBhcyB0byBtYWtlIHRoZSBhbGdvcml0aG0gbW9yZSB1bmRl
cnN0YW5kYWJsZS4gSW4gYWRkaXRpb24sIGNoZWNrIGZvciB0aGUgc2Vjb25kCisgICAgICAgIGNh
c2UgYWJvdmUgcmVnYXJkaW5nIGVtcHR5IHNoYWRvd3MgYW5kIGRvbid0IGRyYXcgc2hhZG93IGlm
IHRoYXQgY2FzZSBvY2N1cnMuCisgICAgICAgIChXZWJDb3JlOjpwYWludFRleHRXaXRoU2hhZG93
cyk6IFVzZSBlbnVtIGNsYXNzZXMgdG8gcmVwcmVzZW50IGZsYWdzIHRoYXQgd2VyZSBkZXNjcmli
ZWQKKyAgICAgICAgZWFybGllci4KKyAgICAgICAgKFdlYkNvcmU6OmlzRW1wdHlTaGFkb3cpOiBN
b3ZlZCB0byBoZWFkZXIuCisgICAgICAgICogcmVuZGVyaW5nL1RleHRQYWludGVyLmg6CisgICAg
ICAgIChXZWJDb3JlOjpUZXh0UGFpbnRlcjo6aXNMYXN0U2hhZG93SXRlcmF0aW9uKTogQ29udmVu
aWVuY2UgZnVuY3Rpb24uCisgICAgICAgIChXZWJDb3JlOjpUZXh0UGFpbnRlcjo6aXNFbXB0eVNo
YWRvdyk6IERpdHRvLiBOZWVkcyB0byBrbm93IHdoZXRoZXIgb3Igbm90IHRoZSBtYWluIHRleHQK
KyAgICAgICAgaXMgb3BhcXVlIGJlY2F1c2Ugb3RoZXJ3aXNlIHNoYWRvd3MgYXJlIGFsd2F5cyB2
aXNpYmxlICh0aGVyZWZvcmUgbmV2ZXIgZW1wdHkpLgorICAgICAgICAqIHJlbmRlcmluZy9zdmcv
U1ZHSW5saW5lVGV4dEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdJbmxpbmVUZXh0Qm94
OjpwYWludFRleHRXaXRoU2hhZG93cyk6IFVwZGF0ZSB0byBuZXcgc2lnbmF0dXJlIG9mCisgICAg
ICAgIGFwcGx5U2hhZG93VG9HcmFwaGljc0NvbnRleHQoKS4KKwogMjAxNC0wOS0xNiAgRW5yaWNh
IENhc3VjY2kgIDxlbnJpY2FAYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUgSFRNTENvbnZlcnRl
ciBmcm9tIGVkaXRpbmcvY29jb2EgdG8gcGxhdGZvcm0vY29jb2EuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAKaW5kZXggMjYwMGNhYTdlOWRmNzkwYjY0MzhjYjUy
Njk0YWRhYjhjMmNhNWFkNS4uYjJkYTU4YmI1NWNmOTBhNjFlZWI4ODA0ZDljMjBhYTFkY2E0OWZm
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcApAQCAtNDI0
LDM0ICs0MjQsNiBAQCBib29sIElubGluZVRleHRCb3g6Om5vZGVBdFBvaW50KGNvbnN0IEhpdFRl
c3RSZXF1ZXN0JiByZXF1ZXN0LCBIaXRUZXN0UmVzdWx0JiByZQogICAgIHJldHVybiBmYWxzZTsK
IH0KIAotRmxvYXRTaXplIElubGluZVRleHRCb3g6OmFwcGx5U2hhZG93VG9HcmFwaGljc0NvbnRl
eHQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBTaGFkb3dEYXRhKiBzaGFkb3csIGNv
bnN0IEZsb2F0UmVjdCYgdGV4dFJlY3QsIGJvb2wgc3Ryb2tlZCwgYm9vbCBvcGFxdWUsIGJvb2wg
aG9yaXpvbnRhbCwgYm9vbCYgZGlkU2F2ZUNvbnRleHQpCi17Ci0gICAgaWYgKCFzaGFkb3cpCi0g
ICAgICAgIHJldHVybiBGbG9hdFNpemUoKTsKLQotICAgIEZsb2F0U2l6ZSBleHRyYU9mZnNldDsK
LSAgICBpbnQgc2hhZG93WCA9IGhvcml6b250YWwgPyBzaGFkb3ctPngoKSA6IHNoYWRvdy0+eSgp
OwotICAgIGludCBzaGFkb3dZID0gaG9yaXpvbnRhbCA/IHNoYWRvdy0+eSgpIDogLXNoYWRvdy0+
eCgpOwotICAgIEZsb2F0U2l6ZSBzaGFkb3dPZmZzZXQoc2hhZG93WCwgc2hhZG93WSk7Ci0gICAg
aW50IHNoYWRvd1JhZGl1cyA9IHNoYWRvdy0+cmFkaXVzKCk7Ci0gICAgY29uc3QgQ29sb3ImIHNo
YWRvd0NvbG9yID0gc2hhZG93LT5jb2xvcigpOwotCi0gICAgaWYgKHNoYWRvdy0+bmV4dCgpIHx8
IHN0cm9rZWQgfHwgIW9wYXF1ZSkgewotICAgICAgICBGbG9hdFJlY3Qgc2hhZG93UmVjdCh0ZXh0
UmVjdCk7Ci0gICAgICAgIHNoYWRvd1JlY3QuaW5mbGF0ZShzaGFkb3ctPnBhaW50aW5nRXh0ZW50
KCkpOwotICAgICAgICBzaGFkb3dSZWN0Lm1vdmUoc2hhZG93T2Zmc2V0KTsKLSAgICAgICAgY29u
dGV4dC5zYXZlKCk7Ci0gICAgICAgIGNvbnRleHQuY2xpcChzaGFkb3dSZWN0KTsKLQotICAgICAg
ICBleHRyYU9mZnNldCA9IEZsb2F0U2l6ZSgwLCAyICogdGV4dFJlY3QuaGVpZ2h0KCkgKyBzdGQ6
Om1heCgwLjBmLCBzaGFkb3dPZmZzZXQuaGVpZ2h0KCkpICsgc2hhZG93UmFkaXVzKTsKLSAgICAg
ICAgc2hhZG93T2Zmc2V0IC09IGV4dHJhT2Zmc2V0OwotICAgICAgICBkaWRTYXZlQ29udGV4dCA9
IHRydWU7Ci0gICAgfQotCi0gICAgY29udGV4dC5zZXRTaGFkb3coc2hhZG93T2Zmc2V0LCBzaGFk
b3dSYWRpdXMsIHNoYWRvd0NvbG9yLCBjb250ZXh0LmZpbGxDb2xvclNwYWNlKCkpOwotICAgIHJl
dHVybiBleHRyYU9mZnNldDsKLX0KLQogc3RhdGljIGlubGluZSBib29sIGVtcGhhc2lzUG9zaXRp
b25IYXNOZWl0aGVyTGVmdE5vclJpZ2h0KFRleHRFbXBoYXNpc1Bvc2l0aW9uIGVtcGhhc2lzUG9z
aXRpb24pCiB7CiAgICAgcmV0dXJuICEoZW1waGFzaXNQb3NpdGlvbiAmIFRleHRFbXBoYXNpc1Bv
c2l0aW9uTGVmdCkgJiYgIShlbXBoYXNpc1Bvc2l0aW9uICYgVGV4dEVtcGhhc2lzUG9zaXRpb25S
aWdodCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJv
eC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guaAppbmRleCBlODlh
MmNkOWM3Zjk4ODk5YWI0NzNlZmI3NDI3ZTM4NDY0YTc5YzliLi42ZjgxOGM0NWIxN2JiZmE4Nzcy
MjdmMjM3YTQ2NzE5MzU3MWFiNDQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvSW5saW5lVGV4dEJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVU
ZXh0Qm94LmgKQEAgLTE1NCw5ICsxNTQsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBpbnQgb2Zm
c2V0Rm9yUG9zaXRpb24oZmxvYXQgeCwgYm9vbCBpbmNsdWRlUGFydGlhbEdseXBocyA9IHRydWUp
IGNvbnN0OwogICAgIHZpcnR1YWwgZmxvYXQgcG9zaXRpb25Gb3JPZmZzZXQoaW50IG9mZnNldCkg
Y29uc3Q7CiAKLSAgICAvLyBOZWVkcyB0byBiZSBwdWJsaWMsIHNvIHRoZSBzdGF0aWMgcGFpbnRU
ZXh0V2l0aFNoYWRvd3MoKSBmdW5jdGlvbiBjYW4gdXNlIGl0LgotICAgIHN0YXRpYyBGbG9hdFNp
emUgYXBwbHlTaGFkb3dUb0dyYXBoaWNzQ29udGV4dChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBT
aGFkb3dEYXRhKiwgY29uc3QgRmxvYXRSZWN0JiB0ZXh0UmVjdCwgYm9vbCBzdHJva2VkLCBib29s
IG9wYXF1ZSwgYm9vbCBob3Jpem9udGFsLCBib29sJiBkaWRTYXZlQ29udGV4dCk7Ci0KIHByb3Rl
Y3RlZDoKICAgICB2b2lkIHBhaW50Q29tcG9zaXRpb25CYWNrZ3JvdW5kKEdyYXBoaWNzQ29udGV4
dCosIGNvbnN0IEZsb2F0UG9pbnQmIGJveE9yaWdpbiwgY29uc3QgUmVuZGVyU3R5bGUmLCBjb25z
dCBGb250JiwgaW50IHN0YXJ0UG9zLCBpbnQgZW5kUG9zKTsKICAgICB2b2lkIHBhaW50RG9jdW1l
bnRNYXJrZXJzKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UG9pbnQmIGJveE9yaWdpbiwg
Y29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBGb250JiwgYm9vbCBiYWNrZ3JvdW5kKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFpbnRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvVGV4dFBhaW50ZXIuY3BwCmluZGV4IGZhMWQ3OWEwMGY5ZjE5MmI4
YzhiZjFhMjQ3NzRkZjQ0ZThmN2Y1YzQuLjBhZDg0NTc5OWVkMWYxZGY5YzJiMDZmYmM1MGVmNGU1
ZjZlNTExNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFpbnRl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRQYWludGVyLmNwcApAQCAt
NjUsMTEgKzY1LDM1IEBAIHN0YXRpYyB2b2lkIGRyYXdUZXh0T3JFbXBoYXNpc01hcmtzKEdyYXBo
aWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRm9udCYgZm9udCwKICAgICAgICAgY29udGV4dC5k
cmF3RW1waGFzaXNNYXJrcyhmb250LCB0ZXh0UnVuLCBlbXBoYXNpc01hcmssIHBvaW50ICsgSW50
U2l6ZSgwLCBlbXBoYXNpc01hcmtPZmZzZXQpLCBmcm9tLCB0byk7CiB9CiAKLXN0YXRpYyBib29s
IGlzRW1wdHlTaGFkb3coY29uc3QgU2hhZG93RGF0YSogc2hhZG93KQorRmxvYXRTaXplIFRleHRQ
YWludGVyOjphcHBseVNoYWRvd1RvR3JhcGhpY3NDb250ZXh0KEdyYXBoaWNzQ29udGV4dCYgY29u
dGV4dCwgY29uc3QgU2hhZG93RGF0YSogc2hhZG93LCBjb25zdCBGbG9hdFJlY3QmIHRleHRSZWN0
LCBib29sIG9ubHlEcmF3c1NoYWRvdywgYm9vbCBlbXB0eVNoYWRvdywgRm9udE9yaWVudGF0aW9u
IG9yaWVudGF0aW9uKQogewogICAgIGlmICghc2hhZG93KQotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgcmV0dXJuIHNoYWRvdy0+bG9jYXRpb24oKSA9PSBJbnRQb2ludCgpICYmICFzaGFkb3ct
PnJhZGl1cygpOworICAgICAgICByZXR1cm4gRmxvYXRTaXplKCk7CisKKyAgICBGbG9hdFNpemUg
ZXh0cmFPZmZzZXQ7CisgICAgaW50IHNoYWRvd1ggPSBvcmllbnRhdGlvbiA9PSBIb3Jpem9udGFs
ID8gc2hhZG93LT54KCkgOiBzaGFkb3ctPnkoKTsKKyAgICBpbnQgc2hhZG93WSA9IG9yaWVudGF0
aW9uID09IEhvcml6b250YWwgPyBzaGFkb3ctPnkoKSA6IC1zaGFkb3ctPngoKTsKKyAgICBGbG9h
dFNpemUgc2hhZG93T2Zmc2V0KHNoYWRvd1gsIHNoYWRvd1kpOworICAgIGludCBzaGFkb3dSYWRp
dXMgPSBzaGFkb3ctPnJhZGl1cygpOworICAgIGNvbnN0IENvbG9yJiBzaGFkb3dDb2xvciA9IHNo
YWRvdy0+Y29sb3IoKTsKKworICAgIC8vIFdoZW4gZHJhd2luZyBzaGFkb3dzLCB3ZSB1c3VhbGx5
IGNsaXAgdGhlIGNvbnRleHQgdG8gdGhlIGFyZWEgdGhlIHNoYWRvdyB3aWxsIHJlc2lkZSwgYW5k
IHRoZW4KKyAgICAvLyBkcmF3IHRoZSB0ZXh0IGl0c2VsZiBvdXRzaWRlIHRoZSBjbGlwcGVkIGFy
ZWEgKHNvIG9ubHkgdGhlIHNoYWRvdyBzaG93cyB1cCkuIEhvd2V2ZXIsIHdlIGNhbgorICAgIC8v
IG9mdGVuIGRyYXcgdGhlIDo6bGFzdDo6IHNoYWRvdyBhbmQgdGhlIHRleHQgaXRzZWxmIGluIGEg
c2luZ2xlIGNhbGwuCisgICAgaWYgKCFvbmx5RHJhd3NTaGFkb3cpIHsKKyAgICAgICAgRmxvYXRS
ZWN0IHNoYWRvd1JlY3QodGV4dFJlY3QpOworICAgICAgICBzaGFkb3dSZWN0LmluZmxhdGUoc2hh
ZG93LT5wYWludGluZ0V4dGVudCgpKTsKKyAgICAgICAgc2hhZG93UmVjdC5tb3ZlKHNoYWRvd09m
ZnNldCk7CisgICAgICAgIGNvbnRleHQuc2F2ZSgpOworICAgICAgICBjb250ZXh0LmNsaXAoc2hh
ZG93UmVjdCk7CisKKyAgICAgICAgZXh0cmFPZmZzZXQgPSBGbG9hdFNpemUoMCwgMiAqIHRleHRS
ZWN0LmhlaWdodCgpICsgc3RkOjptYXgoMC4wZiwgc2hhZG93T2Zmc2V0LmhlaWdodCgpKSArIHNo
YWRvd1JhZGl1cyk7CisgICAgICAgIHNoYWRvd09mZnNldCAtPSBleHRyYU9mZnNldDsKKyAgICB9
CisKKyAgICBpZiAoIWVtcHR5U2hhZG93KQorICAgICAgICBjb250ZXh0LnNldFNoYWRvdyhzaGFk
b3dPZmZzZXQsIHNoYWRvd1JhZGl1cywgc2hhZG93Q29sb3IsIGNvbnRleHQuZmlsbENvbG9yU3Bh
Y2UoKSk7CisgICAgcmV0dXJuIGV4dHJhT2Zmc2V0OwogfQogCiBzdGF0aWMgdm9pZCBwYWludFRl
eHRXaXRoU2hhZG93cyhHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZvbnQmIGZvbnQs
IGNvbnN0IFRleHRSdW4mIHRleHRSdW4sIGNvbnN0IEF0b21pY1N0cmluZyYgZW1waGFzaXNNYXJr
LApAQCAtNzksMTkgKzEwMywyMSBAQCBzdGF0aWMgdm9pZCBwYWludFRleHRXaXRoU2hhZG93cyhH
cmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZvbnQmIGZvbnQsIGNvbgogICAgIENvbG9y
IGZpbGxDb2xvciA9IGNvbnRleHQuZmlsbENvbG9yKCk7CiAgICAgQ29sb3JTcGFjZSBmaWxsQ29s
b3JTcGFjZSA9IGNvbnRleHQuZmlsbENvbG9yU3BhY2UoKTsKICAgICBib29sIG9wYXF1ZSA9ICFm
aWxsQ29sb3IuaGFzQWxwaGEoKTsKKyAgICBib29sIGxhc3RTaGFkb3dJdGVyYXRpb25EcmF3c1Jl
YWxUZXh0QXNXZWxsID0gIXN0cm9rZWQgJiYgb3BhcXVlOwogICAgIGlmICghb3BhcXVlKQogICAg
ICAgICBjb250ZXh0LnNldEZpbGxDb2xvcihDb2xvcjo6YmxhY2ssIGZpbGxDb2xvclNwYWNlKTsK
IAogICAgIGRvIHsKLSAgICAgICAgaWYgKGlzRW1wdHlTaGFkb3coc2hhZG93KSkgeworICAgICAg
ICBib29sIGVtcHR5U2hhZG93ID0gVGV4dFBhaW50ZXI6OmlzRW1wdHlTaGFkb3coc2hhZG93LCBv
cGFxdWUpOworICAgICAgICBib29sIG9ubHlEcmF3c1NoYWRvdyA9IFRleHRQYWludGVyOjppc0xh
c3RTaGFkb3dJdGVyYXRpb24oc2hhZG93KSAmJiBsYXN0U2hhZG93SXRlcmF0aW9uRHJhd3NSZWFs
VGV4dEFzV2VsbDsKKyAgICAgICAgaWYgKGVtcHR5U2hhZG93ICYmICFvbmx5RHJhd3NTaGFkb3cp
IHsKICAgICAgICAgICAgIHNoYWRvdyA9IHNoYWRvdy0+bmV4dCgpOwogICAgICAgICAgICAgY29u
dGludWU7CiAgICAgICAgIH0KIAogICAgICAgICBJbnRTaXplIGV4dHJhT2Zmc2V0OwotICAgICAg
ICBib29sIGRpZFNhdmVDb250ZXh0ID0gZmFsc2U7CiAgICAgICAgIGlmIChzaGFkb3cpCi0gICAg
ICAgICAgICBleHRyYU9mZnNldCA9IHJvdW5kZWRJbnRTaXplKElubGluZVRleHRCb3g6OmFwcGx5
U2hhZG93VG9HcmFwaGljc0NvbnRleHQoY29udGV4dCwgc2hhZG93LCBib3hSZWN0LCBzdHJva2Vk
LCBvcGFxdWUsIGhvcml6b250YWwsIGRpZFNhdmVDb250ZXh0KSk7CisgICAgICAgICAgICBleHRy
YU9mZnNldCA9IHJvdW5kZWRJbnRTaXplKFRleHRQYWludGVyOjphcHBseVNoYWRvd1RvR3JhcGhp
Y3NDb250ZXh0KGNvbnRleHQsIHNoYWRvdywgYm94UmVjdCwgb25seURyYXdzU2hhZG93LCBlbXB0
eVNoYWRvdywgaG9yaXpvbnRhbCA/IEhvcml6b250YWwgOiBWZXJ0aWNhbCkpOwogICAgICAgICBl
bHNlIGlmICghb3BhcXVlKQogICAgICAgICAgICAgY29udGV4dC5zZXRGaWxsQ29sb3IoZmlsbENv
bG9yLCBmaWxsQ29sb3JTcGFjZSk7CiAKQEAgLTEwNywxMyArMTMzLDEzIEBAIHN0YXRpYyB2b2lk
IHBhaW50VGV4dFdpdGhTaGFkb3dzKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRm9u
dCYgZm9udCwgY29uCiAgICAgICAgIGlmICghc2hhZG93KQogICAgICAgICAgICAgYnJlYWs7CiAK
LSAgICAgICAgaWYgKGRpZFNhdmVDb250ZXh0KQotICAgICAgICAgICAgY29udGV4dC5yZXN0b3Jl
KCk7CisgICAgICAgIGlmICghb25seURyYXdzU2hhZG93KQorICAgICAgICAgICAgY29udGV4dC5y
ZXN0b3JlKCk7IC8vIE1hdGNoaW5nIGNhbGwgdG8gY29udGV4dC5zYXZlKCkgaW4gYXBwbHlTaGFk
b3dUb0dyYXBoaWNzQ29udGV4dAogICAgICAgICBlbHNlCiAgICAgICAgICAgICBjb250ZXh0LmNs
ZWFyU2hhZG93KCk7CiAKICAgICAgICAgc2hhZG93ID0gc2hhZG93LT5uZXh0KCk7Ci0gICAgfSB3
aGlsZSAoc2hhZG93IHx8IHN0cm9rZWQgfHwgIW9wYXF1ZSk7CisgICAgfSB3aGlsZSAoc2hhZG93
IHx8ICFsYXN0U2hhZG93SXRlcmF0aW9uRHJhd3NSZWFsVGV4dEFzV2VsbCk7CiB9CiAKIHZvaWQg
VGV4dFBhaW50ZXI6OnBhaW50VGV4dCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvVGV4dFBhaW50ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFpbnRl
ci5oCmluZGV4IDk2ZjgzYWEyYjMxMzQxOTY2ZDM2ZjU5MzRiOGE1NzZjM2QwNDA3ZDcuLmY5ZGJi
YmU2M2NlZGRhYzMzZWFiZWM4MmU1ODk1YzAzZWFiZmNmM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFpbnRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9UZXh0UGFpbnRlci5oCkBAIC0yNSw2ICsyNSw3IEBACiAKICNpbmNsdWRlICJBZmZpbmVU
cmFuc2Zvcm0uaCIKICNpbmNsdWRlICJEYXNoQXJyYXkuaCIKKyNpbmNsdWRlICJGb250T3JpZW50
YXRpb24uaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
QEAgLTQ3LDYgKzQ4LDE3IEBAIHB1YmxpYzoKICAgICBpbnQgc3RhcnRQb3NpdGlvbkluVGV4dFJ1
biwgaW50IGVuZFBvc2l0aW9uSW5UZXh0Qm94U3RyaW5nLCBpbnQgbGVuZ3RoLCBjb25zdCBBdG9t
aWNTdHJpbmcmIGVtcGhhc2lzTWFyaywgUmVuZGVyQ29tYmluZVRleHQqLAogICAgIFRleHRSdW4m
LCBGbG9hdFJlY3QmIGJveFJlY3QsIEZsb2F0UG9pbnQmIHRleHRPcmlnaW4sIGludCBlbXBoYXNp
c01hcmtPZmZzZXQsIGNvbnN0IFNoYWRvd0RhdGEqIHRleHRTaGFkb3csIGNvbnN0IFNoYWRvd0Rh
dGEqIHNlbGVjdGlvblNoYWRvdywKICAgICBib29sIHRleHRCb3hJc0hvcml6b250YWwsIFRleHRQ
YWludFN0eWxlJiBub25TZWxlY3Rpb25QYWludFN0eWxlLCBUZXh0UGFpbnRTdHlsZSYgc2VsZWN0
aW9uUGFpbnRTdHlsZSk7CisKKyAgICBzdGF0aWMgaW5saW5lIGJvb2wgaXNMYXN0U2hhZG93SXRl
cmF0aW9uKGNvbnN0IFNoYWRvd0RhdGEqIHNoYWRvdykKKyAgICB7CisgICAgICAgIHJldHVybiBz
aGFkb3cgJiYgIXNoYWRvdy0+bmV4dCgpOworICAgIH0KKyAgICBzdGF0aWMgaW5saW5lIGJvb2wg
aXNFbXB0eVNoYWRvdyhjb25zdCBTaGFkb3dEYXRhKiBzaGFkb3csIGJvb2wgdGV4dElzT3BhcXVl
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRleHRJc09wYXF1ZSAmJiBzaGFkb3cgJiYgc2hhZG93
LT5sb2NhdGlvbigpID09IEludFBvaW50KCkgJiYgIXNoYWRvdy0+cmFkaXVzKCk7CisgICAgfQor
CisgICAgc3RhdGljIEZsb2F0U2l6ZSBhcHBseVNoYWRvd1RvR3JhcGhpY3NDb250ZXh0KEdyYXBo
aWNzQ29udGV4dCYsIGNvbnN0IFNoYWRvd0RhdGEqLCBjb25zdCBGbG9hdFJlY3QmIHRleHRSZWN0
LCBib29sIG9ubHlEcmF3c1NoYWRvdywgYm9vbCBzaGFkb3dJc0VtcHR5LCBGb250T3JpZW50YXRp
b24gPSBIb3Jpem9udGFsKTsKICAgICAKICAgICB2b2lkIHBhaW50VGV4dCgpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR0lubGluZVRleHRCb3guY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdJbmxpbmVUZXh0Qm94LmNwcAppbmRleCBj
ZGVjZGE0NzFhOTA5MmI5ODg4ZGQyNDY1MzQ5ZGY2OTNjMzA2MDVmLi4wYmExMDgyNDFjMTZiNTAx
MzRjNGZlMWE2MDIyNmQ3MzBlNDBjNmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1NWR0lubGluZVRleHRCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvU1ZHSW5saW5lVGV4dEJveC5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRl
ICJTVkdSZXNvdXJjZXNDYWNoZS5oIgogI2luY2x1ZGUgIlNWR1Jvb3RJbmxpbmVCb3guaCIKICNp
bmNsdWRlICJTVkdUZXh0UnVuUmVuZGVyaW5nQ29udGV4dC5oIgorI2luY2x1ZGUgIlRleHRQYWlu
dGVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTk1LDkgKzU5Niw5IEBAIHZvaWQg
U1ZHSW5saW5lVGV4dEJveDo6cGFpbnRUZXh0V2l0aFNoYWRvd3MoR3JhcGhpY3NDb250ZXh0KiBj
b250ZXh0LCBSZW5kZXJTdHlsCiAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICBGbG9hdFNp
emUgZXh0cmFPZmZzZXQ7Ci0gICAgICAgIGJvb2wgZGlkU2F2ZUNvbnRleHQgPSBmYWxzZTsKKyAg
ICAgICAgYm9vbCBvbmx5RHJhd3NTaGFkb3cgPSBUZXh0UGFpbnRlcjo6aXNMYXN0U2hhZG93SXRl
cmF0aW9uKHNoYWRvdyk7CiAgICAgICAgIGlmIChzaGFkb3cpCi0gICAgICAgICAgICBleHRyYU9m
ZnNldCA9IGFwcGx5U2hhZG93VG9HcmFwaGljc0NvbnRleHQoKmNvbnRleHQsIHNoYWRvdywgc2hh
ZG93UmVjdCwgZmFsc2UgLyogc3Ryb2tlZCAqLywgdHJ1ZSAvKiBvcGFxdWUgKi8sIHRydWUgLyog
aG9yaXpvbnRhbCAqLywgZGlkU2F2ZUNvbnRleHQpOworICAgICAgICAgICAgZXh0cmFPZmZzZXQg
PSBUZXh0UGFpbnRlcjo6YXBwbHlTaGFkb3dUb0dyYXBoaWNzQ29udGV4dCgqY29udGV4dCwgc2hh
ZG93LCBzaGFkb3dSZWN0LCBvbmx5RHJhd3NTaGFkb3csIFRleHRQYWludGVyOjppc0VtcHR5U2hh
ZG93KHNoYWRvdywgZmFsc2UpKTsKIAogICAgICAgICBjb250ZXh0LT5zYXZlKCk7CiAgICAgICAg
IGNvbnRleHQtPnNjYWxlKEZsb2F0U2l6ZSgxIC8gc2NhbGluZ0ZhY3RvciwgMSAvIHNjYWxpbmdG
YWN0b3IpKTsKQEAgLTYwNyw4ICs2MDgsOCBAQCB2b2lkIFNWR0lubGluZVRleHRCb3g6OnBhaW50
VGV4dFdpdGhTaGFkb3dzKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgUmVuZGVyU3R5bAogICAg
ICAgICBjb250ZXh0LT5yZXN0b3JlKCk7CiAKICAgICAgICAgaWYgKHNoYWRvdykgewotICAgICAg
ICAgICAgaWYgKGRpZFNhdmVDb250ZXh0KQotICAgICAgICAgICAgICAgIGNvbnRleHQtPnJlc3Rv
cmUoKTsKKyAgICAgICAgICAgIGlmICghb25seURyYXdzU2hhZG93KQorICAgICAgICAgICAgICAg
IGNvbnRleHQtPnJlc3RvcmUoKTsgLy8gTWF0Y2hpbmcgY2FsbCB0byBjb250ZXh0LnNhdmUoKSBp
biBhcHBseVNoYWRvd1RvR3JhcGhpY3NDb250ZXh0CiAgICAgICAgICAgICBlbHNlCiAgICAgICAg
ICAgICAgICAgY29udGV4dC0+Y2xlYXJTaGFkb3coKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDJjZTk2
MGVlNzY2NmM3NTkxYzQyNDUyOWQzZjA3NjJkMGUxZTk3NjkuLjVlZWEyNGJlMWFkNDBkZjI1YzMw
ZTJmMzIwMmQ2ZjVjN2I2ZmZmNjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxNC0wOS0xNSAg
TXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JF
U1NJT046IFRleHQgd2l0aCBhIHplcm8gb2Zmc2V0LCB6ZXJvIGJsdXIgc2hhZG93IHZhbmlzaGVz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzY4MDEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHRl
c3Qgc2hvdWxkIGJlIGEgY29tcHJlaGVuc2l2ZSB0ZXN0IG9mIGVtcHR5IHNoYWRvd3MuIEl0IHRl
c3RzIGV2ZXJ5CisgICAgICAgIGNvbWJpbmF0aW9uIG9mIG9uZSBhbmQgdHdvIHNoYWRvd3MgYmVp
bmcgZW1wdHksIGFzIHdlbGwgYXMgdHJhbnNwYXJlbnQgYW5kCisgICAgICAgIG9wYXF1ZSB0ZXh0
LgorCisgICAgICAgIEFmdGVyIHVwZGF0aW5nIGZhc3QvdGV4dC9lbXB0eS1zaGFkb3cuaHRtbCwg
ZmFzdC90ZXh0L2VtcHR5LXNoYWRvdy13aXRoLWNvbG9yLmh0bWwKKyAgICAgICAgaXMgbm8gbG9u
Z2VyIG5lY2Vzc2FyeS4KKworICAgICAgICAqIGZhc3QvdGV4dC9lbXB0eS1zaGFkb3ctZXhwZWN0
ZWQuaHRtbDoKKyAgICAgICAgKiBmYXN0L3RleHQvZW1wdHktc2hhZG93LXdpdGgtY29sb3ItZXhw
ZWN0ZWQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3RleHQvZW1wdHktc2hhZG93LXdp
dGgtY29sb3IuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3RleHQvZW1wdHktc2hhZG93
Lmh0bWw6CisKIDIwMTQtMDktMTYgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxl
LmNvbT4KIAogICAgICAgICBNYWtlIHNwZWxsaW5nIHRlc3RzIG1vcmUgcmVsaWFibGUgYnkgdXNp
bmcgYSB3b3JkIHRoYXQgaXMgbWlzc3BlbGxlZCBldmVyeXdoZXJlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L3RleHQvZW1wdHktc2hhZG93LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L3RleHQvZW1wdHktc2hhZG93LWV4cGVjdGVkLmh0bWwKaW5kZXggY2UyYjk2YjBiZDAy
ZjljZmM4ZGZjNjk5NzcxNjNjOTUyZjY2MzZhOC4uMmIzZmFlYTVjNDBmYjNkZDJlOTMxNzgxYmFl
MDA4ZWU0OTJkYWRkYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2VtcHR5LXNo
YWRvdy1leHBlY3RlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9lbXB0eS1zaGFk
b3ctZXhwZWN0ZWQuaHRtbApAQCAtMSwzICsxLDIwIEBACi1UaGlzIHRlc3RzIHRoYXQgdGV4dCBk
cmF3biB3aXRoIHRleHQtc2hhZG93cyBvZiByYWRpdXMgMCBhbmQgKDAsIDApIG9mZnNldCBhcmUg
bm90IGRyYXduLgotVGhpcyBpcyBhIGJldHRlciBvdXRjb21lIHRoYW4gdGhlbSBiZWluZyBkcmF3
biBpbiBhbiB1Z2x5IHdheS4KLVRoaXMgdGVzdCBpcyBzdWNjZXNzZnVsIGlmIHRoZSB0ZXh0IGJl
bG93IGlzIGNvbXBsZXRlbHkgaW52aXNpYmxlLgorPHA+VGhpcyB0ZXN0cyB0aGF0IHRleHQgZHJh
d24gd2l0aCB0ZXh0LXNoYWRvd3Mgb2YgcmFkaXVzIDAgYW5kICgwLCAwKSBvZmZzZXQgYXJlIG5v
dCBkcmF3bi48L3A+Cis8cD5JbiB0aGUgZm9sbG93aW5nIHRlc3RzLCB0aGUgYWN0dWFsIHRleHQg
aXMgZ3JlZW4gd2hpbGUgdGhlIHNoYWRvd3MgYXJlIGJsdWUuPC9wPgorCis8ZGl2IHN0eWxlPSJj
b2xvcjogZ3JlZW47Ij4KKzxkaXYgc3R5bGU9InRleHQtc2hhZG93OiA1cHggNXB4IGJsdWU7Ij5U
ZXh0IHdpdGggYSBzaW5nbGUgc2hhZG93LjwvZGl2PgorPGRpdj5UZXh0IHdpdGggb25lIGVtcHR5
ICh1bmRyYXduKSBzaGFkb3cuPC9kaXY+Cis8ZGl2IHN0eWxlPSJ0ZXh0LXNoYWRvdzogNXB4IDVw
eCBibHVlLCAxMHB4IDEwcHggYmx1ZTsiPlRleHQgd2l0aCB0d28gc2hhZG93czwvZGl2PgorPGRp
diBzdHlsZT0idGV4dC1zaGFkb3c6IDVweCA1cHggYmx1ZTsiPlRleHQgd2l0aCB0d28gc2hhZG93
czogZmlyc3QgZHJhd24gYW5kIHNlY29uZCBlbXB0eSAodW5kcmF3bikuPC9kaXY+Cis8ZGl2IHN0
eWxlPSJ0ZXh0LXNoYWRvdzogMTBweCAxMHB4IGJsdWU7Ij5UZXh0IHdpdGggdHdvIHNoYWRvd3M6
IGZpcnN0IGVtcHR5ICh1bmRyYXduKSBhbmQgc2Vjb25kIGRyYXduLjwvZGl2PgorPGRpdj5UZXh0
IHdpdGggdHdvIGVtcHR5ICh1bmRyYXduKSBzaGFkb3dzLjwvZGl2PgorPC9kaXY+CisKKzxkaXYg
c3R5bGU9ImNvbG9yOiB0cmFuc3BhcmVudDsiPgorPGRpdiBzdHlsZT0idGV4dC1zaGFkb3c6IDVw
eCA1cHggYmx1ZTsiPlRyYW5zcGFyZW50IHRleHQgd2l0aCBhIHNpbmdsZSBzaGFkb3cuPC9kaXY+
Cis8ZGl2IHN0eWxlPSJjb2xvcjogYmx1ZTsiPlRyYW5zcGFyZW50IHRleHQgd2l0aCBvbmUgZW1w
dHkgc2hhZG93LjwvZGl2PgorPGRpdiBzdHlsZT0idGV4dC1zaGFkb3c6IDVweCA1cHggYmx1ZSwg
MTBweCAxMHB4IGJsdWU7Ij5UcmFuc3BhcmVudCB0ZXh0IHdpdGggdHdvIHNoYWRvd3M8L2Rpdj4K
KzxkaXYgc3R5bGU9ImNvbG9yOiBibHVlOyB0ZXh0LXNoYWRvdzogN3B4IDdweCBibHVlOyI+VHJh
bnNwYXJlbnQgdGV4dCB3aXRoIHR3byBzaGFkb3dzOiBmaXJzdCBkcmF3biBhbmQgc2Vjb25kIGVt
cHR5LjwvZGl2PgorPGRpdiBzdHlsZT0iY29sb3I6IGJsdWU7IHRleHQtc2hhZG93OiAxMHB4IDEw
cHggYmx1ZTsiPlRyYW5zcGFyZW50IHRleHQgd2l0aCB0d28gc2hhZG93czogZmlyc3QgZHJhd24g
YW5kIHNlY29uZCBlbXB0eS48L2Rpdj4KKzxkaXYgc3R5bGU9ImNvbG9yOiBibHVlOyBwb3NpdGlv
bjogcmVsYXRpdmU7Ij48ZGl2IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDBweDsg
dG9wOiAwcHg7Ij5UcmFuc3BhcmVudCB0ZXh0IHdpdGggdHdvIGVtcHR5IHNoYWRvd3MuPC9kaXY+
PGRpdiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwcHg7IHRvcDogMHB4OyI+VHJh
bnNwYXJlbnQgdGV4dCB3aXRoIHR3byBlbXB0eSBzaGFkb3dzLjwvZGl2PjwvZGl2PgorPC9kaXY+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvZW1wdHktc2hhZG93LXdpdGgtY29s
b3ItZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9lbXB0eS1zaGFkb3ctd2l0
aC1jb2xvci1leHBlY3RlZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NWE0
ZDkyMGY3MzVjY2M4Zjg2ZjJkNzcwNjA1N2JmZGU0NjJmMDNiLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9lbXB0eS1z
aGFkb3ctd2l0aC1jb2xvci1leHBlY3RlZC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTUgKzAs
MCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHN0eWxlPgotI3Rlc3Qgewot
ICAgIGNvbG9yOiBncmVlbjsKLSAgICBmb250LXNpemU6IDE2cHg7Ci19Ci08L3N0eWxlPgotPC9o
ZWFkPgotPGJvZHk+Ci1UaGlzIHRlc3QgbWFrZXMgc3VyZSB0aGF0IHRleHQgZHJhd24gd2l0aCBh
biBlbXB0eSBzaGFkb3cgaXMgY29sb3JlZCBjb3JyZWN0bHkuIEl0IHBhc3NlcyBpZiB0aGUgZm9s
bG93aW5nIHRleHQgaXMgZ3JlZW4uCi08ZGl2IGlkPSJ0ZXN0Ij5UaGlzIHNob3VsZCBiZSBncmVl
bi48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
dGV4dC9lbXB0eS1zaGFkb3ctd2l0aC1jb2xvci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0
L2VtcHR5LXNoYWRvdy13aXRoLWNvbG9yLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDNmZGY5NWMzZmI3N2Q5MjEyZGVjYjVkMjNmZjgxZDU5NDkzOGI3OGEuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0
L2VtcHR5LXNoYWRvdy13aXRoLWNvbG9yLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCww
IEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c3R5bGU+Ci0jdGVzdCB7Ci0g
ICAgY29sb3I6IGdyZWVuOwotICAgIGZvbnQtc2l6ZTogMTZweDsKLSAgICB0ZXh0LXNoYWRvdzog
cmVkIDIwcHggMjBweCwgcmVkIDBweCAwcHg7Ci0gICAgb3ZlcmZsb3c6IGhpZGRlbjsKLX0KLTwv
c3R5bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLVRoaXMgdGVzdCBtYWtlcyBzdXJlIHRoYXQgdGV4dCBk
cmF3biB3aXRoIGFuIGVtcHR5IHNoYWRvdyBpcyBjb2xvcmVkIGNvcnJlY3RseS4gSXQgcGFzc2Vz
IGlmIHRoZSBmb2xsb3dpbmcgdGV4dCBpcyBncmVlbi4KLTxkaXYgaWQ9InRlc3QiPlRoaXMgc2hv
dWxkIGJlIGdyZWVuLjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC90ZXh0L2VtcHR5LXNoYWRvdy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0
L2VtcHR5LXNoYWRvdy5odG1sCmluZGV4IDQyN2NkZDhjNjNjOWExODJhNWMwZGYxYWQyOGQzMWQ0
NGIyNGEzY2YuLjJiM2U3NzgzNGNhZWQyMjk5OWVkODA4ZTM1NTA0NjZlZmEwYjg0OTEgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9lbXB0eS1zaGFkb3cuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L3RleHQvZW1wdHktc2hhZG93Lmh0bWwKQEAgLTEsNCArMSwyMCBAQAotVGhp
cyB0ZXN0cyB0aGF0IHRleHQgZHJhd24gd2l0aCB0ZXh0LXNoYWRvd3Mgb2YgcmFkaXVzIDAgYW5k
ICgwLCAwKSBvZmZzZXQgYXJlIG5vdCBkcmF3bi4KLVRoaXMgaXMgYSBiZXR0ZXIgb3V0Y29tZSB0
aGFuIHRoZW0gYmVpbmcgZHJhd24gaW4gYW4gdWdseSB3YXkuCi1UaGlzIHRlc3QgaXMgc3VjY2Vz
c2Z1bCBpZiB0aGUgdGV4dCBiZWxvdyBpcyBjb21wbGV0ZWx5IGludmlzaWJsZS4KLTxkaXYgc3R5
bGU9ImNvbG9yOiNmZmY7dGV4dC1zaGFkb3c6MCAwICMwMDAiPlRoaXMgaXMgc29tZSB0ZXh0PC9k
aXY+Cis8cD5UaGlzIHRlc3RzIHRoYXQgdGV4dCBkcmF3biB3aXRoIHRleHQtc2hhZG93cyBvZiBy
YWRpdXMgMCBhbmQgKDAsIDApIG9mZnNldCBhcmUgbm90IGRyYXduLjwvcD4KKzxwPkluIHRoZSBm
b2xsb3dpbmcgdGVzdHMsIHRoZSBhY3R1YWwgdGV4dCBpcyBncmVlbiB3aGlsZSB0aGUgc2hhZG93
cyBhcmUgYmx1ZS48L3A+CisKKzxkaXYgc3R5bGU9ImNvbG9yOiBncmVlbjsiPgorPGRpdiBzdHls
ZT0idGV4dC1zaGFkb3c6IDVweCA1cHggYmx1ZTsiPlRleHQgd2l0aCBhIHNpbmdsZSBzaGFkb3cu
PC9kaXY+Cis8ZGl2IHN0eWxlPSJ0ZXh0LXNoYWRvdzogMHB4IDBweCBibHVlOyI+VGV4dCB3aXRo
IG9uZSBlbXB0eSAodW5kcmF3bikgc2hhZG93LjwvZGl2PgorPGRpdiBzdHlsZT0idGV4dC1zaGFk
b3c6IDVweCA1cHggYmx1ZSwgMTBweCAxMHB4IGJsdWU7Ij5UZXh0IHdpdGggdHdvIHNoYWRvd3M8
L2Rpdj4KKzxkaXYgc3R5bGU9InRleHQtc2hhZG93OiA1cHggNXB4IGJsdWUsIDBweCAwcHggYmx1
ZTsiPlRleHQgd2l0aCB0d28gc2hhZG93czogZmlyc3QgZHJhd24gYW5kIHNlY29uZCBlbXB0eSAo
dW5kcmF3bikuPC9kaXY+Cis8ZGl2IHN0eWxlPSJ0ZXh0LXNoYWRvdzogMHB4IDBweCBibHVlLCAx
MHB4IDEwcHggYmx1ZTsiPlRleHQgd2l0aCB0d28gc2hhZG93czogZmlyc3QgZW1wdHkgKHVuZHJh
d24pIGFuZCBzZWNvbmQgZHJhd24uPC9kaXY+Cis8ZGl2IHN0eWxlPSJ0ZXh0LXNoYWRvdzogMHB4
IDBweCBibHVlLCAwcHggMHB4IGJsdWU7Ij5UZXh0IHdpdGggdHdvIGVtcHR5ICh1bmRyYXduKSBz
aGFkb3dzLjwvZGl2PgorPC9kaXY+CisKKzxkaXYgc3R5bGU9ImNvbG9yOiB0cmFuc3BhcmVudDsi
PgorPGRpdiBzdHlsZT0idGV4dC1zaGFkb3c6IDVweCA1cHggYmx1ZTsiPlRyYW5zcGFyZW50IHRl
eHQgd2l0aCBhIHNpbmdsZSBzaGFkb3cuPC9kaXY+Cis8ZGl2IHN0eWxlPSJ0ZXh0LXNoYWRvdzog
MHB4IDBweCBibHVlOyI+VHJhbnNwYXJlbnQgdGV4dCB3aXRoIG9uZSBlbXB0eSBzaGFkb3cuPC9k
aXY+Cis8ZGl2IHN0eWxlPSJ0ZXh0LXNoYWRvdzogNXB4IDVweCBibHVlLCAxMHB4IDEwcHggYmx1
ZTsiPlRyYW5zcGFyZW50IHRleHQgd2l0aCB0d28gc2hhZG93czwvZGl2PgorPGRpdiBzdHlsZT0i
dGV4dC1zaGFkb3c6IDdweCA3cHggYmx1ZSwgMHB4IDBweCBibHVlOyI+VHJhbnNwYXJlbnQgdGV4
dCB3aXRoIHR3byBzaGFkb3dzOiBmaXJzdCBkcmF3biBhbmQgc2Vjb25kIGVtcHR5LjwvZGl2Pgor
PGRpdiBzdHlsZT0idGV4dC1zaGFkb3c6IDBweCAwcHggYmx1ZSwgMTBweCAxMHB4IGJsdWU7Ij5U
cmFuc3BhcmVudCB0ZXh0IHdpdGggdHdvIHNoYWRvd3M6IGZpcnN0IGRyYXduIGFuZCBzZWNvbmQg
ZW1wdHkuPC9kaXY+Cis8ZGl2IHN0eWxlPSJ0ZXh0LXNoYWRvdzogMHB4IDBweCBibHVlLCAwcHgg
MHB4IGJsdWU7Ij5UcmFuc3BhcmVudCB0ZXh0IHdpdGggdHdvIGVtcHR5IHNoYWRvd3MuPC9kaXY+
Cis8L2Rpdj4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238224</attachid>
            <date>2014-09-16 17:08:42 -0700</date>
            <delta_ts>2014-09-16 17:25:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136801-20140916170839.patch</filename>
            <type>text/plain</type>
            <size>20892</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTczNjc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjMyMjY3MGIzZjUzMDFj
YTczM2E1MGZhODE1NzU3OTYwNDZjZGM1MC4uYWNmZjk2YTAwNGRjY2QyZmQ4NzMwNzEyNzU1NWMy
NWNjNTk3NjdiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDE0LTA5LTE1ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lP
TjogVGV4dCB3aXRoIGEgemVybyBvZmZzZXQsIHplcm8gYmx1ciBzaGFkb3cgdmFuaXNoZXMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNjgwMQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
cGVyZm9ybXMgc29tZSBjbGVhbnVwIHJlZ2FyZGluZyBUZXh0UGFpbnRlcidzIHNoYWRvdyBsb2dp
YyBhbmQgaGFuZGxlcyBhbgorICAgICAgICBhZGRpdGlvbmFsIGNhc2Ugb2YgZW1wdHkgc2hhZG93
cy4gUHJldmlvdXNseSwgdGhlcmUgd2FzIHRpZ2h0IGNvdXBsaW5nIGJldHdlZW4KKyAgICAgICAg
YXBwbHlTaGFkb3dUb0dyYXBoaWNhbENvbnRleHQoKSBhbmQgcGFpbnRUZXh0V2l0aFNoYWRvd3Mo
KSwgYXMgdGhleSBib3RoIHVzZWQgYQorICAgICAgICBjb2xsZWN0aW9uIG9mIHZhcmlhYmxlcyB0
byBkZXRlcm1pbmUgaG93IHNoYWRvd3MgYXJlIHRvIGJlIGRyYXduLgorCisgICAgICAgIEdyYXBo
aWNzQ29udGV4dCBhbGxvd3MgdXMgdG8gcHV0IG9uZSBzaGFkb3cgb24gdGV4dCwgYnV0IHRoZSBD
U1Mgc3BlYyBhbGxvd3MgZm9yIGEgc2VyaWVzCisgICAgICAgIG9mIHNoYWRvd3MuIFdlIGFsbG93
IGZvciB0aGlzIGJ5IGxvb3Bpbmcgb3ZlciBldmVyeSBzaGFkb3cgaW4gdGhlIGxpc3QsIGFwcGx5
aW5nIGEKKyAgICAgICAgc2hhZG93LCBhbmQgZHJhd2luZyB0ZXh0LiBIb3dldmVyLCBpbiBvcmRl
ciB0byBhdm9pZCBkcmF3aW5nIHRoZSBtYWluIHRleHQgaXRzZWxmIG11bHRpcGxlCisgICAgICAg
IHRpbWVzIG9uIHRvcCBvZiBpdHNlbGYsIHdlIGNsaXAgdGhlIGNvbnRleHQgdG8gdGhlIHNoYWRv
d2VkIHJlZ2lvbiwgdGhlbiBkcmF3IHRoZSB0ZXh0CisgICAgICAgIGluIHNvbWUgYXJiaXRyYXJ5
IHBsYWNlIHRoYXQgaXMgb3V0c2lkZSBvZiB0aGUgY2xpcCByZWdpb24uIFdlIHRoZXJlZm9yZSBn
aXZlIGEgdmVjdG9yCisgICAgICAgIGZyb20gdGhpcyBhcmJpdHJhcnkgcGxhY2UgdG8gdGhlIHNo
YWRvdyBsb2NhdGlvbiB0byB0aGUgR3JhcGhpY3NDb250ZXh0IGFzIHRoZSBzaGFkb3cKKyAgICAg
ICAgb2Zmc2V0LiBIb3dldmVyLCB3ZSBoYXZlIGFuIG9wdGltaXphdGlvbiB0byBhbGxvdyB1cyB0
byBkcmF3IHRoZSB0ZXh0IGl0c2VsZiBkdXJpbmcgdGhlCisgICAgICAgIGxhc3QgaXRlcmF0aW9u
IG9mIHRoaXMgbG9vcCwgd2hpY2ggbWVhbnMgd2UgZG9uJ3QgZG8gYW55IG9mIHRoZSBhZm9yZW1l
bnRpb25lZCBjbGlwcGluZy4KKyAgICAgICAgVGhpcyBvcHRpbWl6YXRpb24gaXMgcHJlZGljYXRl
ZCBvbiB0aGUgbWFpbiB0ZXh0IGJlaW5nIG9wYXF1ZSBhbmQgbm9uLXN0cm9rZWQuIE90aGVyd2lz
ZSwKKyAgICAgICAgYW4gYWRkaXRpb25hbCBpdGVyYXRpb24gb2YgdGhlIGxvb3AgaXMgcGVyZm9y
bWVkICh0aGlzIGV4dHJhIGl0ZXJhdGlvbiBpcyBjb25jZXB0dWFsbHkgdGhlCisgICAgICAgIHNh
bWUgYXMgdGhlIGNhc2Ugd2hlcmUgdGhlcmUgaXMgbm8gc2hhZG93IHNwZWNpZmllZCBhdCBhbGwp
LgorCisgICAgICAgIFJlZ2FyZGluZyB0aGUgb3JpZ2luYWwgaW50ZW50IG9mIHRoaXMgc2V0IG9m
IHBhdGNoZXMgKG5vdCBkcmF3aW5nIGVtcHR5IHNoYWRvd3MpLCB0aGVyZQorICAgICAgICBhcmUg
dHdvIGNhc2VzOiB3aGVuIHdlIGFyZSBvbmx5IGRyYXdpbmcgdGhlIHNoYWRvdyB3aXRoIG91dCB0
aGUgbWFpbiB0ZXh0LCBpbiB3aGljaCBjYXNlCisgICAgICAgIHRoZSBlbnRpcmUgbG9vcCBpdGVy
YXRpb24gY2FuIGJlIGF2b2lkZWQsIGFuZCB0aGUgY2FzZSB3aGVyZSBib3RoIHRoZSBzaGFkb3cg
YW5kIG1haW4KKyAgICAgICAgdGV4dCBhcmUgYmVpbmcgZHJhd24gYXQgb25jZSwgd2hlcmUgd2Ug
aGF2ZSB0byBkcmF3IHRoZSBtYWluIHRleHQgd2l0aG91dCB0aGUgc2hhZG93LgorICAgICAgICBQ
cmV2aW91c2x5LCBvbmx5IHRoZSBmaXJzdCBjYXNlIHdhcyBoYW5kbGVkOyB0aGlzIHBhdGNoIGhh
bmRsZXMgdGhlIHNlY29uZCBjYXNlIGFzIHdlbGwuCisKKyAgICAgICAgVGhpcyBwYXRjaCBtb3Zl
cyBhcHBseVNoYWRvd1RvR3JhcGhpY3NDb250ZXh0IHNvIHRoYXQgdGhlIHR3byBmdW5jdGlvbnMg
YXJlIHBoeXNpY2FsbHkKKyAgICAgICAgY2xvc2UgdG9nZXRoZXIuIEkgYWxzbyBjaGFuZ2VkIHRo
ZSBzZW1hbnRpY3Mgb2YgdGhlIGZsYWdzIHRvIGJlIG1vcmUgdW5kZXJzdGFuZGFibGUgdG8KKyAg
ICAgICAgdGhlIGFsZ29yaXRobSBkZXNjcmliZWQgYWJvdmUuIEdpdmVuIHRoZXNlIG5ldyBmbGFn
cywgSSByZW1vdmVkIHRoZSBkaWRTYXZlQ29udGV4dCBvdXQKKyAgICAgICAgcGFyYW0gdG8gYXBw
bHlTaGFkb3dUb0dyYXBoaWNzQ29udGV4dCgpLCB3aGljaCBpcyBub3cgY29uY2VwdHVhbGx5IGlk
ZW50aWNhbCBhcyBvbmUgb2YKKyAgICAgICAgdGhlIGlucHV0cywgb25seURyYXdzU2hhZG93LiBU
aGVzZSBuZXcgZmxhZ3Mgd2lsbCBob3BlZnVsbHkgaW5jcmVhc2UgdGhlIHJlYWRhYmlsaXR5IG9m
CisgICAgICAgIHRoaXMgc2VjdGlvbiBvZiB0aGUgY29kZSBmb3IgZnV0dXJlIGRldmVsb3BlcnMg
c28gdGhhdCB0aGVzZSBtaXN0YWtlcyBJIGhhdmUgbWFkZSB3aWxsIG5vdAorICAgICAgICBiZSBy
ZXBlYXRlZC4KKworICAgICAgICBUZXN0OiBmYXN0L3RleHQvZW1wdHktc2hhZG93Lmh0bWw6IFVw
ZGF0ZWQgdG8gdGVzdCB0aGlzIGNhc2UgYXMgd2VsbCBhcyBhIGNvbGxlY3Rpb24gb2YKKyAgICAg
ICAgb3RoZXIgY2FzZXMuCisKKyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94OjphcHBseVNoYWRvd1RvR3JhcGhpY3ND
b250ZXh0KTogTW92ZWQgdG8gVGV4dFBhaW50ZXIuCisgICAgICAgICogcmVuZGVyaW5nL0lubGlu
ZVRleHRCb3guaDogTW92ZWQgYXBwbHlTaGFkb3dUb0dyYXBoaWNzQ29udGV4dCgpIHRvIFRleHRQ
YWludGVyLgorICAgICAgICAqIHJlbmRlcmluZy9UZXh0UGFpbnRlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpUZXh0UGFpbnRlcjo6YXBwbHlTaGFkb3dUb0dyYXBoaWNzQ29udGV4dCk6IE1vdmVk
IGZyb20gSW5saW5lVGV4dEJveC4gVXNpbmcKKyAgICAgICAgZW51bSBjbGFzc2VzIGluc3RlYWQg
b2YgYm9vbGVhbiBhcmd1bWVudHMuIFRoZSBzZW1hbnRpY3Mgb2YgdGhlc2UgYXJndW1lbnRzIGhh
dmUgY2hhbmdlZAorICAgICAgICBzbyBhcyB0byBtYWtlIHRoZSBhbGdvcml0aG0gbW9yZSB1bmRl
cnN0YW5kYWJsZS4gSW4gYWRkaXRpb24sIGNoZWNrIGZvciB0aGUgc2Vjb25kCisgICAgICAgIGNh
c2UgYWJvdmUgcmVnYXJkaW5nIGVtcHR5IHNoYWRvd3MgYW5kIGRvbid0IGRyYXcgc2hhZG93IGlm
IHRoYXQgY2FzZSBvY2N1cnMuCisgICAgICAgIChXZWJDb3JlOjpwYWludFRleHRXaXRoU2hhZG93
cyk6IFVzZSBlbnVtIGNsYXNzZXMgdG8gcmVwcmVzZW50IGZsYWdzIHRoYXQgd2VyZSBkZXNjcmli
ZWQKKyAgICAgICAgZWFybGllci4KKyAgICAgICAgKFdlYkNvcmU6OmlzRW1wdHlTaGFkb3cpOiBN
b3ZlZCB0byBoZWFkZXIuCisgICAgICAgICogcmVuZGVyaW5nL1RleHRQYWludGVyLmg6CisgICAg
ICAgIChXZWJDb3JlOjpUZXh0UGFpbnRlcjo6aXNMYXN0U2hhZG93SXRlcmF0aW9uKTogQ29udmVu
aWVuY2UgZnVuY3Rpb24uCisgICAgICAgIChXZWJDb3JlOjpUZXh0UGFpbnRlcjo6aXNFbXB0eVNo
YWRvdyk6IERpdHRvLiBOZWVkcyB0byBrbm93IHdoZXRoZXIgb3Igbm90IHRoZSBtYWluIHRleHQK
KyAgICAgICAgaXMgb3BhcXVlIGJlY2F1c2Ugb3RoZXJ3aXNlIHNoYWRvd3MgYXJlIGFsd2F5cyB2
aXNpYmxlICh0aGVyZWZvcmUgbmV2ZXIgZW1wdHkpLgorICAgICAgICAqIHJlbmRlcmluZy9zdmcv
U1ZHSW5saW5lVGV4dEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdJbmxpbmVUZXh0Qm94
OjpwYWludFRleHRXaXRoU2hhZG93cyk6IFVwZGF0ZSB0byBuZXcgc2lnbmF0dXJlIG9mCisgICAg
ICAgIGFwcGx5U2hhZG93VG9HcmFwaGljc0NvbnRleHQoKS4KKwogMjAxNC0wOS0xNiAgRW5yaWNh
IENhc3VjY2kgIDxlbnJpY2FAYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUgSFRNTENvbnZlcnRl
ciBmcm9tIGVkaXRpbmcvY29jb2EgdG8gcGxhdGZvcm0vY29jb2EuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAKaW5kZXggMjYwMGNhYTdlOWRmNzkwYjY0MzhjYjUy
Njk0YWRhYjhjMmNhNWFkNS4uYjJkYTU4YmI1NWNmOTBhNjFlZWI4ODA0ZDljMjBhYTFkY2E0OWZm
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcApAQCAtNDI0
LDM0ICs0MjQsNiBAQCBib29sIElubGluZVRleHRCb3g6Om5vZGVBdFBvaW50KGNvbnN0IEhpdFRl
c3RSZXF1ZXN0JiByZXF1ZXN0LCBIaXRUZXN0UmVzdWx0JiByZQogICAgIHJldHVybiBmYWxzZTsK
IH0KIAotRmxvYXRTaXplIElubGluZVRleHRCb3g6OmFwcGx5U2hhZG93VG9HcmFwaGljc0NvbnRl
eHQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBTaGFkb3dEYXRhKiBzaGFkb3csIGNv
bnN0IEZsb2F0UmVjdCYgdGV4dFJlY3QsIGJvb2wgc3Ryb2tlZCwgYm9vbCBvcGFxdWUsIGJvb2wg
aG9yaXpvbnRhbCwgYm9vbCYgZGlkU2F2ZUNvbnRleHQpCi17Ci0gICAgaWYgKCFzaGFkb3cpCi0g
ICAgICAgIHJldHVybiBGbG9hdFNpemUoKTsKLQotICAgIEZsb2F0U2l6ZSBleHRyYU9mZnNldDsK
LSAgICBpbnQgc2hhZG93WCA9IGhvcml6b250YWwgPyBzaGFkb3ctPngoKSA6IHNoYWRvdy0+eSgp
OwotICAgIGludCBzaGFkb3dZID0gaG9yaXpvbnRhbCA/IHNoYWRvdy0+eSgpIDogLXNoYWRvdy0+
eCgpOwotICAgIEZsb2F0U2l6ZSBzaGFkb3dPZmZzZXQoc2hhZG93WCwgc2hhZG93WSk7Ci0gICAg
aW50IHNoYWRvd1JhZGl1cyA9IHNoYWRvdy0+cmFkaXVzKCk7Ci0gICAgY29uc3QgQ29sb3ImIHNo
YWRvd0NvbG9yID0gc2hhZG93LT5jb2xvcigpOwotCi0gICAgaWYgKHNoYWRvdy0+bmV4dCgpIHx8
IHN0cm9rZWQgfHwgIW9wYXF1ZSkgewotICAgICAgICBGbG9hdFJlY3Qgc2hhZG93UmVjdCh0ZXh0
UmVjdCk7Ci0gICAgICAgIHNoYWRvd1JlY3QuaW5mbGF0ZShzaGFkb3ctPnBhaW50aW5nRXh0ZW50
KCkpOwotICAgICAgICBzaGFkb3dSZWN0Lm1vdmUoc2hhZG93T2Zmc2V0KTsKLSAgICAgICAgY29u
dGV4dC5zYXZlKCk7Ci0gICAgICAgIGNvbnRleHQuY2xpcChzaGFkb3dSZWN0KTsKLQotICAgICAg
ICBleHRyYU9mZnNldCA9IEZsb2F0U2l6ZSgwLCAyICogdGV4dFJlY3QuaGVpZ2h0KCkgKyBzdGQ6
Om1heCgwLjBmLCBzaGFkb3dPZmZzZXQuaGVpZ2h0KCkpICsgc2hhZG93UmFkaXVzKTsKLSAgICAg
ICAgc2hhZG93T2Zmc2V0IC09IGV4dHJhT2Zmc2V0OwotICAgICAgICBkaWRTYXZlQ29udGV4dCA9
IHRydWU7Ci0gICAgfQotCi0gICAgY29udGV4dC5zZXRTaGFkb3coc2hhZG93T2Zmc2V0LCBzaGFk
b3dSYWRpdXMsIHNoYWRvd0NvbG9yLCBjb250ZXh0LmZpbGxDb2xvclNwYWNlKCkpOwotICAgIHJl
dHVybiBleHRyYU9mZnNldDsKLX0KLQogc3RhdGljIGlubGluZSBib29sIGVtcGhhc2lzUG9zaXRp
b25IYXNOZWl0aGVyTGVmdE5vclJpZ2h0KFRleHRFbXBoYXNpc1Bvc2l0aW9uIGVtcGhhc2lzUG9z
aXRpb24pCiB7CiAgICAgcmV0dXJuICEoZW1waGFzaXNQb3NpdGlvbiAmIFRleHRFbXBoYXNpc1Bv
c2l0aW9uTGVmdCkgJiYgIShlbXBoYXNpc1Bvc2l0aW9uICYgVGV4dEVtcGhhc2lzUG9zaXRpb25S
aWdodCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJv
eC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guaAppbmRleCBlODlh
MmNkOWM3Zjk4ODk5YWI0NzNlZmI3NDI3ZTM4NDY0YTc5YzliLi42ZjgxOGM0NWIxN2JiZmE4Nzcy
MjdmMjM3YTQ2NzE5MzU3MWFiNDQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvSW5saW5lVGV4dEJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVU
ZXh0Qm94LmgKQEAgLTE1NCw5ICsxNTQsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBpbnQgb2Zm
c2V0Rm9yUG9zaXRpb24oZmxvYXQgeCwgYm9vbCBpbmNsdWRlUGFydGlhbEdseXBocyA9IHRydWUp
IGNvbnN0OwogICAgIHZpcnR1YWwgZmxvYXQgcG9zaXRpb25Gb3JPZmZzZXQoaW50IG9mZnNldCkg
Y29uc3Q7CiAKLSAgICAvLyBOZWVkcyB0byBiZSBwdWJsaWMsIHNvIHRoZSBzdGF0aWMgcGFpbnRU
ZXh0V2l0aFNoYWRvd3MoKSBmdW5jdGlvbiBjYW4gdXNlIGl0LgotICAgIHN0YXRpYyBGbG9hdFNp
emUgYXBwbHlTaGFkb3dUb0dyYXBoaWNzQ29udGV4dChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBT
aGFkb3dEYXRhKiwgY29uc3QgRmxvYXRSZWN0JiB0ZXh0UmVjdCwgYm9vbCBzdHJva2VkLCBib29s
IG9wYXF1ZSwgYm9vbCBob3Jpem9udGFsLCBib29sJiBkaWRTYXZlQ29udGV4dCk7Ci0KIHByb3Rl
Y3RlZDoKICAgICB2b2lkIHBhaW50Q29tcG9zaXRpb25CYWNrZ3JvdW5kKEdyYXBoaWNzQ29udGV4
dCosIGNvbnN0IEZsb2F0UG9pbnQmIGJveE9yaWdpbiwgY29uc3QgUmVuZGVyU3R5bGUmLCBjb25z
dCBGb250JiwgaW50IHN0YXJ0UG9zLCBpbnQgZW5kUG9zKTsKICAgICB2b2lkIHBhaW50RG9jdW1l
bnRNYXJrZXJzKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UG9pbnQmIGJveE9yaWdpbiwg
Y29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBGb250JiwgYm9vbCBiYWNrZ3JvdW5kKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFpbnRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvVGV4dFBhaW50ZXIuY3BwCmluZGV4IGZhMWQ3OWEwMGY5ZjE5MmI4
YzhiZjFhMjQ3NzRkZjQ0ZThmN2Y1YzQuLjQ5NTE3ZWRmYjQ5OWIzZGRiNmYxN2E3MWQ4MjM0ZmEx
ZDdlZjI1MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFpbnRl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRQYWludGVyLmNwcApAQCAt
NjUsMTEgKzY1LDMyIEBAIHN0YXRpYyB2b2lkIGRyYXdUZXh0T3JFbXBoYXNpc01hcmtzKEdyYXBo
aWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRm9udCYgZm9udCwKICAgICAgICAgY29udGV4dC5k
cmF3RW1waGFzaXNNYXJrcyhmb250LCB0ZXh0UnVuLCBlbXBoYXNpc01hcmssIHBvaW50ICsgSW50
U2l6ZSgwLCBlbXBoYXNpc01hcmtPZmZzZXQpLCBmcm9tLCB0byk7CiB9CiAKLXN0YXRpYyBib29s
IGlzRW1wdHlTaGFkb3coY29uc3QgU2hhZG93RGF0YSogc2hhZG93KQorRmxvYXRTaXplIFRleHRQ
YWludGVyOjphcHBseVNoYWRvd1RvR3JhcGhpY3NDb250ZXh0KEdyYXBoaWNzQ29udGV4dCYgY29u
dGV4dCwgY29uc3QgU2hhZG93RGF0YSYgc2hhZG93LCBjb25zdCBGbG9hdFJlY3QmIHRleHRSZWN0
LCBib29sIG9ubHlEcmF3c1NoYWRvdywgYm9vbCBlbXB0eVNoYWRvdywgRm9udE9yaWVudGF0aW9u
IG9yaWVudGF0aW9uKQogewotICAgIGlmICghc2hhZG93KQotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgcmV0dXJuIHNoYWRvdy0+bG9jYXRpb24oKSA9PSBJbnRQb2ludCgpICYmICFzaGFkb3ct
PnJhZGl1cygpOworICAgIEZsb2F0U2l6ZSBleHRyYU9mZnNldDsKKyAgICBpbnQgc2hhZG93WCA9
IG9yaWVudGF0aW9uID09IEhvcml6b250YWwgPyBzaGFkb3cueCgpIDogc2hhZG93LnkoKTsKKyAg
ICBpbnQgc2hhZG93WSA9IG9yaWVudGF0aW9uID09IEhvcml6b250YWwgPyBzaGFkb3cueSgpIDog
LXNoYWRvdy54KCk7CisgICAgRmxvYXRTaXplIHNoYWRvd09mZnNldChzaGFkb3dYLCBzaGFkb3dZ
KTsKKyAgICBpbnQgc2hhZG93UmFkaXVzID0gc2hhZG93LnJhZGl1cygpOworICAgIGNvbnN0IENv
bG9yJiBzaGFkb3dDb2xvciA9IHNoYWRvdy5jb2xvcigpOworCisgICAgLy8gV2hlbiBkcmF3aW5n
IHNoYWRvd3MsIHdlIHVzdWFsbHkgY2xpcCB0aGUgY29udGV4dCB0byB0aGUgYXJlYSB0aGUgc2hh
ZG93IHdpbGwgcmVzaWRlLCBhbmQgdGhlbgorICAgIC8vIGRyYXcgdGhlIHRleHQgaXRzZWxmIG91
dHNpZGUgdGhlIGNsaXBwZWQgYXJlYSAoc28gb25seSB0aGUgc2hhZG93IHNob3dzIHVwKS4gSG93
ZXZlciwgd2UgY2FuCisgICAgLy8gb2Z0ZW4gZHJhdyB0aGUgOjpsYXN0Ojogc2hhZG93IGFuZCB0
aGUgdGV4dCBpdHNlbGYgaW4gYSBzaW5nbGUgY2FsbC4KKyAgICBpZiAoIW9ubHlEcmF3c1NoYWRv
dykgeworICAgICAgICBGbG9hdFJlY3Qgc2hhZG93UmVjdCh0ZXh0UmVjdCk7CisgICAgICAgIHNo
YWRvd1JlY3QuaW5mbGF0ZShzaGFkb3cucGFpbnRpbmdFeHRlbnQoKSk7CisgICAgICAgIHNoYWRv
d1JlY3QubW92ZShzaGFkb3dPZmZzZXQpOworICAgICAgICBjb250ZXh0LnNhdmUoKTsKKyAgICAg
ICAgY29udGV4dC5jbGlwKHNoYWRvd1JlY3QpOworCisgICAgICAgIGV4dHJhT2Zmc2V0ID0gRmxv
YXRTaXplKDAsIDIgKiB0ZXh0UmVjdC5oZWlnaHQoKSArIHN0ZDo6bWF4KDAuMGYsIHNoYWRvd09m
ZnNldC5oZWlnaHQoKSkgKyBzaGFkb3dSYWRpdXMpOworICAgICAgICBzaGFkb3dPZmZzZXQgLT0g
ZXh0cmFPZmZzZXQ7CisgICAgfQorCisgICAgaWYgKCFlbXB0eVNoYWRvdykKKyAgICAgICAgY29u
dGV4dC5zZXRTaGFkb3coc2hhZG93T2Zmc2V0LCBzaGFkb3dSYWRpdXMsIHNoYWRvd0NvbG9yLCBj
b250ZXh0LmZpbGxDb2xvclNwYWNlKCkpOworICAgIHJldHVybiBleHRyYU9mZnNldDsKIH0KIAog
c3RhdGljIHZvaWQgcGFpbnRUZXh0V2l0aFNoYWRvd3MoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0
LCBjb25zdCBGb250JiBmb250LCBjb25zdCBUZXh0UnVuJiB0ZXh0UnVuLCBjb25zdCBBdG9taWNT
dHJpbmcmIGVtcGhhc2lzTWFyaywKQEAgLTc5LDE5ICsxMDAsMjEgQEAgc3RhdGljIHZvaWQgcGFp
bnRUZXh0V2l0aFNoYWRvd3MoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGb250JiBm
b250LCBjb24KICAgICBDb2xvciBmaWxsQ29sb3IgPSBjb250ZXh0LmZpbGxDb2xvcigpOwogICAg
IENvbG9yU3BhY2UgZmlsbENvbG9yU3BhY2UgPSBjb250ZXh0LmZpbGxDb2xvclNwYWNlKCk7CiAg
ICAgYm9vbCBvcGFxdWUgPSAhZmlsbENvbG9yLmhhc0FscGhhKCk7CisgICAgYm9vbCBsYXN0U2hh
ZG93SXRlcmF0aW9uRHJhd3NSZWFsVGV4dEFzV2VsbCA9ICFzdHJva2VkICYmIG9wYXF1ZTsKICAg
ICBpZiAoIW9wYXF1ZSkKICAgICAgICAgY29udGV4dC5zZXRGaWxsQ29sb3IoQ29sb3I6OmJsYWNr
LCBmaWxsQ29sb3JTcGFjZSk7CiAKICAgICBkbyB7Ci0gICAgICAgIGlmIChpc0VtcHR5U2hhZG93
KHNoYWRvdykpIHsKKyAgICAgICAgYm9vbCBlbXB0eVNoYWRvdyA9IFRleHRQYWludGVyOjppc0Vt
cHR5U2hhZG93KHNoYWRvdywgb3BhcXVlKTsKKyAgICAgICAgYm9vbCBvbmx5RHJhd3NTaGFkb3cg
PSBUZXh0UGFpbnRlcjo6aXNMYXN0U2hhZG93SXRlcmF0aW9uKHNoYWRvdykgJiYgbGFzdFNoYWRv
d0l0ZXJhdGlvbkRyYXdzUmVhbFRleHRBc1dlbGw7CisgICAgICAgIGlmIChlbXB0eVNoYWRvdyAm
JiAhb25seURyYXdzU2hhZG93KSB7CiAgICAgICAgICAgICBzaGFkb3cgPSBzaGFkb3ctPm5leHQo
KTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKICAgICAgICAgSW50U2l6ZSBl
eHRyYU9mZnNldDsKLSAgICAgICAgYm9vbCBkaWRTYXZlQ29udGV4dCA9IGZhbHNlOwogICAgICAg
ICBpZiAoc2hhZG93KQotICAgICAgICAgICAgZXh0cmFPZmZzZXQgPSByb3VuZGVkSW50U2l6ZShJ
bmxpbmVUZXh0Qm94OjphcHBseVNoYWRvd1RvR3JhcGhpY3NDb250ZXh0KGNvbnRleHQsIHNoYWRv
dywgYm94UmVjdCwgc3Ryb2tlZCwgb3BhcXVlLCBob3Jpem9udGFsLCBkaWRTYXZlQ29udGV4dCkp
OworICAgICAgICAgICAgZXh0cmFPZmZzZXQgPSByb3VuZGVkSW50U2l6ZShUZXh0UGFpbnRlcjo6
YXBwbHlTaGFkb3dUb0dyYXBoaWNzQ29udGV4dChjb250ZXh0LCAqc2hhZG93LCBib3hSZWN0LCBv
bmx5RHJhd3NTaGFkb3csIGVtcHR5U2hhZG93LCBob3Jpem9udGFsID8gSG9yaXpvbnRhbCA6IFZl
cnRpY2FsKSk7CiAgICAgICAgIGVsc2UgaWYgKCFvcGFxdWUpCiAgICAgICAgICAgICBjb250ZXh0
LnNldEZpbGxDb2xvcihmaWxsQ29sb3IsIGZpbGxDb2xvclNwYWNlKTsKIApAQCAtMTA3LDEzICsx
MzAsMTMgQEAgc3RhdGljIHZvaWQgcGFpbnRUZXh0V2l0aFNoYWRvd3MoR3JhcGhpY3NDb250ZXh0
JiBjb250ZXh0LCBjb25zdCBGb250JiBmb250LCBjb24KICAgICAgICAgaWYgKCFzaGFkb3cpCiAg
ICAgICAgICAgICBicmVhazsKIAotICAgICAgICBpZiAoZGlkU2F2ZUNvbnRleHQpCi0gICAgICAg
ICAgICBjb250ZXh0LnJlc3RvcmUoKTsKKyAgICAgICAgaWYgKCFvbmx5RHJhd3NTaGFkb3cpCisg
ICAgICAgICAgICBjb250ZXh0LnJlc3RvcmUoKTsgLy8gTWF0Y2hpbmcgY2FsbCB0byBjb250ZXh0
LnNhdmUoKSBpbiBhcHBseVNoYWRvd1RvR3JhcGhpY3NDb250ZXh0CiAgICAgICAgIGVsc2UKICAg
ICAgICAgICAgIGNvbnRleHQuY2xlYXJTaGFkb3coKTsKIAogICAgICAgICBzaGFkb3cgPSBzaGFk
b3ctPm5leHQoKTsKLSAgICB9IHdoaWxlIChzaGFkb3cgfHwgc3Ryb2tlZCB8fCAhb3BhcXVlKTsK
KyAgICB9IHdoaWxlIChzaGFkb3cgfHwgIWxhc3RTaGFkb3dJdGVyYXRpb25EcmF3c1JlYWxUZXh0
QXNXZWxsKTsKIH0KIAogdm9pZCBUZXh0UGFpbnRlcjo6cGFpbnRUZXh0KCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFpbnRlci5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1RleHRQYWludGVyLmgKaW5kZXggOTZmODNhYTJiMzEzNDE5NjZkMzZmNTkzNGI4
YTU3NmMzZDA0MDdkNy4uZjU3NDllODI2NmUxMDJjODRhZGQ1ODVhNTUyNzk0MjQ1NThmNDljNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRQYWludGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRQYWludGVyLmgKQEAgLTI1LDYgKzI1LDcgQEAK
IAogI2luY2x1ZGUgIkFmZmluZVRyYW5zZm9ybS5oIgogI2luY2x1ZGUgIkRhc2hBcnJheS5oIgor
I2luY2x1ZGUgIkZvbnRPcmllbnRhdGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDcsNiArNDgsMTcgQEAgcHVibGljOgogICAgIGludCBz
dGFydFBvc2l0aW9uSW5UZXh0UnVuLCBpbnQgZW5kUG9zaXRpb25JblRleHRCb3hTdHJpbmcsIGlu
dCBsZW5ndGgsIGNvbnN0IEF0b21pY1N0cmluZyYgZW1waGFzaXNNYXJrLCBSZW5kZXJDb21iaW5l
VGV4dCosCiAgICAgVGV4dFJ1biYsIEZsb2F0UmVjdCYgYm94UmVjdCwgRmxvYXRQb2ludCYgdGV4
dE9yaWdpbiwgaW50IGVtcGhhc2lzTWFya09mZnNldCwgY29uc3QgU2hhZG93RGF0YSogdGV4dFNo
YWRvdywgY29uc3QgU2hhZG93RGF0YSogc2VsZWN0aW9uU2hhZG93LAogICAgIGJvb2wgdGV4dEJv
eElzSG9yaXpvbnRhbCwgVGV4dFBhaW50U3R5bGUmIG5vblNlbGVjdGlvblBhaW50U3R5bGUsIFRl
eHRQYWludFN0eWxlJiBzZWxlY3Rpb25QYWludFN0eWxlKTsKKworICAgIHN0YXRpYyBpbmxpbmUg
Ym9vbCBpc0xhc3RTaGFkb3dJdGVyYXRpb24oY29uc3QgU2hhZG93RGF0YSogc2hhZG93KQorICAg
IHsKKyAgICAgICAgcmV0dXJuIHNoYWRvdyAmJiAhc2hhZG93LT5uZXh0KCk7CisgICAgfQorICAg
IHN0YXRpYyBpbmxpbmUgYm9vbCBpc0VtcHR5U2hhZG93KGNvbnN0IFNoYWRvd0RhdGEqIHNoYWRv
dywgYm9vbCB0ZXh0SXNPcGFxdWUpCisgICAgeworICAgICAgICByZXR1cm4gdGV4dElzT3BhcXVl
ICYmIHNoYWRvdyAmJiBzaGFkb3ctPmxvY2F0aW9uKCkgPT0gSW50UG9pbnQoKSAmJiAhc2hhZG93
LT5yYWRpdXMoKTsKKyAgICB9CisKKyAgICBzdGF0aWMgRmxvYXRTaXplIGFwcGx5U2hhZG93VG9H
cmFwaGljc0NvbnRleHQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgU2hhZG93RGF0YSYsIGNvbnN0
IEZsb2F0UmVjdCYgdGV4dFJlY3QsIGJvb2wgb25seURyYXdzU2hhZG93LCBib29sIHNoYWRvd0lz
RW1wdHksIEZvbnRPcmllbnRhdGlvbiA9IEhvcml6b250YWwpOwogICAgIAogICAgIHZvaWQgcGFp
bnRUZXh0KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZH
SW5saW5lVGV4dEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR0lubGlu
ZVRleHRCb3guY3BwCmluZGV4IGNkZWNkYTQ3MWE5MDkyYjk4ODhkZDI0NjUzNDlkZjY5M2MzMDYw
NWYuLjZiM2YyZjM4MDcyODE4ODg1YzcyMTYzNTdkZmQxNTZhMzMwNTQ2MDcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHSW5saW5lVGV4dEJveC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdJbmxpbmVUZXh0Qm94LmNwcApAQCAtMzcs
NiArMzcsNyBAQAogI2luY2x1ZGUgIlNWR1Jlc291cmNlc0NhY2hlLmgiCiAjaW5jbHVkZSAiU1ZH
Um9vdElubGluZUJveC5oIgogI2luY2x1ZGUgIlNWR1RleHRSdW5SZW5kZXJpbmdDb250ZXh0Lmgi
CisjaW5jbHVkZSAiVGV4dFBhaW50ZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01
OTUsOSArNTk2LDkgQEAgdm9pZCBTVkdJbmxpbmVUZXh0Qm94OjpwYWludFRleHRXaXRoU2hhZG93
cyhHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIFJlbmRlclN0eWwKICAgICAgICAgICAgIGJyZWFr
OwogCiAgICAgICAgIEZsb2F0U2l6ZSBleHRyYU9mZnNldDsKLSAgICAgICAgYm9vbCBkaWRTYXZl
Q29udGV4dCA9IGZhbHNlOworICAgICAgICBib29sIG9ubHlEcmF3c1NoYWRvdyA9IFRleHRQYWlu
dGVyOjppc0xhc3RTaGFkb3dJdGVyYXRpb24oc2hhZG93KTsKICAgICAgICAgaWYgKHNoYWRvdykK
LSAgICAgICAgICAgIGV4dHJhT2Zmc2V0ID0gYXBwbHlTaGFkb3dUb0dyYXBoaWNzQ29udGV4dCgq
Y29udGV4dCwgc2hhZG93LCBzaGFkb3dSZWN0LCBmYWxzZSAvKiBzdHJva2VkICovLCB0cnVlIC8q
IG9wYXF1ZSAqLywgdHJ1ZSAvKiBob3Jpem9udGFsICovLCBkaWRTYXZlQ29udGV4dCk7CisgICAg
ICAgICAgICBleHRyYU9mZnNldCA9IFRleHRQYWludGVyOjphcHBseVNoYWRvd1RvR3JhcGhpY3ND
b250ZXh0KCpjb250ZXh0LCAqc2hhZG93LCBzaGFkb3dSZWN0LCBvbmx5RHJhd3NTaGFkb3csIFRl
eHRQYWludGVyOjppc0VtcHR5U2hhZG93KHNoYWRvdywgZmFsc2UpKTsKIAogICAgICAgICBjb250
ZXh0LT5zYXZlKCk7CiAgICAgICAgIGNvbnRleHQtPnNjYWxlKEZsb2F0U2l6ZSgxIC8gc2NhbGlu
Z0ZhY3RvciwgMSAvIHNjYWxpbmdGYWN0b3IpKTsKQEAgLTYwNyw4ICs2MDgsOCBAQCB2b2lkIFNW
R0lubGluZVRleHRCb3g6OnBhaW50VGV4dFdpdGhTaGFkb3dzKEdyYXBoaWNzQ29udGV4dCogY29u
dGV4dCwgUmVuZGVyU3R5bAogICAgICAgICBjb250ZXh0LT5yZXN0b3JlKCk7CiAKICAgICAgICAg
aWYgKHNoYWRvdykgewotICAgICAgICAgICAgaWYgKGRpZFNhdmVDb250ZXh0KQotICAgICAgICAg
ICAgICAgIGNvbnRleHQtPnJlc3RvcmUoKTsKKyAgICAgICAgICAgIGlmICghb25seURyYXdzU2hh
ZG93KQorICAgICAgICAgICAgICAgIGNvbnRleHQtPnJlc3RvcmUoKTsgLy8gTWF0Y2hpbmcgY2Fs
bCB0byBjb250ZXh0LnNhdmUoKSBpbiBhcHBseVNoYWRvd1RvR3JhcGhpY3NDb250ZXh0CiAgICAg
ICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgY29udGV4dC0+Y2xlYXJTaGFkb3coKTsKICAg
ICAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IDJjZTk2MGVlNzY2NmM3NTkxYzQyNDUyOWQzZjA3NjJkMGUxZTk3Njku
LjVlZWEyNGJlMWFkNDBkZjI1YzMwZTJmMzIwMmQ2ZjVjN2I2ZmZmNjAgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyMiBAQAorMjAxNC0wOS0xNSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUu
Y29tPgorCisgICAgICAgIFJFR1JFU1NJT046IFRleHQgd2l0aCBhIHplcm8gb2Zmc2V0LCB6ZXJv
IGJsdXIgc2hhZG93IHZhbmlzaGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMzY4MDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGlzIHRlc3Qgc2hvdWxkIGJlIGEgY29tcHJlaGVuc2l2ZSB0ZXN0IG9m
IGVtcHR5IHNoYWRvd3MuIEl0IHRlc3RzIGV2ZXJ5CisgICAgICAgIGNvbWJpbmF0aW9uIG9mIG9u
ZSBhbmQgdHdvIHNoYWRvd3MgYmVpbmcgZW1wdHksIGFzIHdlbGwgYXMgdHJhbnNwYXJlbnQgYW5k
CisgICAgICAgIG9wYXF1ZSB0ZXh0LgorCisgICAgICAgIEFmdGVyIHVwZGF0aW5nIGZhc3QvdGV4
dC9lbXB0eS1zaGFkb3cuaHRtbCwgZmFzdC90ZXh0L2VtcHR5LXNoYWRvdy13aXRoLWNvbG9yLmh0
bWwKKyAgICAgICAgaXMgbm8gbG9uZ2VyIG5lY2Vzc2FyeS4KKworICAgICAgICAqIGZhc3QvdGV4
dC9lbXB0eS1zaGFkb3ctZXhwZWN0ZWQuaHRtbDoKKyAgICAgICAgKiBmYXN0L3RleHQvZW1wdHkt
c2hhZG93LXdpdGgtY29sb3ItZXhwZWN0ZWQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0
L3RleHQvZW1wdHktc2hhZG93LXdpdGgtY29sb3IuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBm
YXN0L3RleHQvZW1wdHktc2hhZG93Lmh0bWw6CisKIDIwMTQtMDktMTYgIE15bGVzIEMuIE1heGZp
ZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIHNwZWxsaW5nIHRlc3Rz
IG1vcmUgcmVsaWFibGUgYnkgdXNpbmcgYSB3b3JkIHRoYXQgaXMgbWlzc3BlbGxlZCBldmVyeXdo
ZXJlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvZW1wdHktc2hhZG93LWV4cGVj
dGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvZW1wdHktc2hhZG93LWV4cGVjdGVkLmh0
bWwKaW5kZXggY2UyYjk2YjBiZDAyZjljZmM4ZGZjNjk5NzcxNjNjOTUyZjY2MzZhOC4uMmIzZmFl
YTVjNDBmYjNkZDJlOTMxNzgxYmFlMDA4ZWU0OTJkYWRkYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC90ZXh0L2VtcHR5LXNoYWRvdy1leHBlY3RlZC5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvdGV4dC9lbXB0eS1zaGFkb3ctZXhwZWN0ZWQuaHRtbApAQCAtMSwzICsxLDIwIEBACi1U
aGlzIHRlc3RzIHRoYXQgdGV4dCBkcmF3biB3aXRoIHRleHQtc2hhZG93cyBvZiByYWRpdXMgMCBh
bmQgKDAsIDApIG9mZnNldCBhcmUgbm90IGRyYXduLgotVGhpcyBpcyBhIGJldHRlciBvdXRjb21l
IHRoYW4gdGhlbSBiZWluZyBkcmF3biBpbiBhbiB1Z2x5IHdheS4KLVRoaXMgdGVzdCBpcyBzdWNj
ZXNzZnVsIGlmIHRoZSB0ZXh0IGJlbG93IGlzIGNvbXBsZXRlbHkgaW52aXNpYmxlLgorPHA+VGhp
cyB0ZXN0cyB0aGF0IHRleHQgZHJhd24gd2l0aCB0ZXh0LXNoYWRvd3Mgb2YgcmFkaXVzIDAgYW5k
ICgwLCAwKSBvZmZzZXQgYXJlIG5vdCBkcmF3bi48L3A+Cis8cD5JbiB0aGUgZm9sbG93aW5nIHRl
c3RzLCB0aGUgYWN0dWFsIHRleHQgaXMgZ3JlZW4gd2hpbGUgdGhlIHNoYWRvd3MgYXJlIGJsdWUu
PC9wPgorCis8ZGl2IHN0eWxlPSJjb2xvcjogZ3JlZW47Ij4KKzxkaXYgc3R5bGU9InRleHQtc2hh
ZG93OiA1cHggNXB4IGJsdWU7Ij5UZXh0IHdpdGggYSBzaW5nbGUgc2hhZG93LjwvZGl2PgorPGRp
dj5UZXh0IHdpdGggb25lIGVtcHR5ICh1bmRyYXduKSBzaGFkb3cuPC9kaXY+Cis8ZGl2IHN0eWxl
PSJ0ZXh0LXNoYWRvdzogNXB4IDVweCBibHVlLCAxMHB4IDEwcHggYmx1ZTsiPlRleHQgd2l0aCB0
d28gc2hhZG93czwvZGl2PgorPGRpdiBzdHlsZT0idGV4dC1zaGFkb3c6IDVweCA1cHggYmx1ZTsi
PlRleHQgd2l0aCB0d28gc2hhZG93czogZmlyc3QgZHJhd24gYW5kIHNlY29uZCBlbXB0eSAodW5k
cmF3bikuPC9kaXY+Cis8ZGl2IHN0eWxlPSJ0ZXh0LXNoYWRvdzogMTBweCAxMHB4IGJsdWU7Ij5U
ZXh0IHdpdGggdHdvIHNoYWRvd3M6IGZpcnN0IGVtcHR5ICh1bmRyYXduKSBhbmQgc2Vjb25kIGRy
YXduLjwvZGl2PgorPGRpdj5UZXh0IHdpdGggdHdvIGVtcHR5ICh1bmRyYXduKSBzaGFkb3dzLjwv
ZGl2PgorPC9kaXY+CisKKzxkaXYgc3R5bGU9ImNvbG9yOiB0cmFuc3BhcmVudDsiPgorPGRpdiBz
dHlsZT0idGV4dC1zaGFkb3c6IDVweCA1cHggYmx1ZTsiPlRyYW5zcGFyZW50IHRleHQgd2l0aCBh
IHNpbmdsZSBzaGFkb3cuPC9kaXY+Cis8ZGl2IHN0eWxlPSJjb2xvcjogYmx1ZTsiPlRyYW5zcGFy
ZW50IHRleHQgd2l0aCBvbmUgZW1wdHkgc2hhZG93LjwvZGl2PgorPGRpdiBzdHlsZT0idGV4dC1z
aGFkb3c6IDVweCA1cHggYmx1ZSwgMTBweCAxMHB4IGJsdWU7Ij5UcmFuc3BhcmVudCB0ZXh0IHdp
dGggdHdvIHNoYWRvd3M8L2Rpdj4KKzxkaXYgc3R5bGU9ImNvbG9yOiBibHVlOyB0ZXh0LXNoYWRv
dzogN3B4IDdweCBibHVlOyI+VHJhbnNwYXJlbnQgdGV4dCB3aXRoIHR3byBzaGFkb3dzOiBmaXJz
dCBkcmF3biBhbmQgc2Vjb25kIGVtcHR5LjwvZGl2PgorPGRpdiBzdHlsZT0iY29sb3I6IGJsdWU7
IHRleHQtc2hhZG93OiAxMHB4IDEwcHggYmx1ZTsiPlRyYW5zcGFyZW50IHRleHQgd2l0aCB0d28g
c2hhZG93czogZmlyc3QgZHJhd24gYW5kIHNlY29uZCBlbXB0eS48L2Rpdj4KKzxkaXYgc3R5bGU9
ImNvbG9yOiBibHVlOyBwb3NpdGlvbjogcmVsYXRpdmU7Ij48ZGl2IHN0eWxlPSJwb3NpdGlvbjog
YWJzb2x1dGU7IGxlZnQ6IDBweDsgdG9wOiAwcHg7Ij5UcmFuc3BhcmVudCB0ZXh0IHdpdGggdHdv
IGVtcHR5IHNoYWRvd3MuPC9kaXY+PGRpdiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0
OiAwcHg7IHRvcDogMHB4OyI+VHJhbnNwYXJlbnQgdGV4dCB3aXRoIHR3byBlbXB0eSBzaGFkb3dz
LjwvZGl2PjwvZGl2PgorPC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQv
ZW1wdHktc2hhZG93LXdpdGgtY29sb3ItZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
dGV4dC9lbXB0eS1zaGFkb3ctd2l0aC1jb2xvci1leHBlY3RlZC5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA0NWE0ZDkyMGY3MzVjY2M4Zjg2ZjJkNzcwNjA1N2JmZGU0NjJmMDNi
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvdGV4dC9lbXB0eS1zaGFkb3ctd2l0aC1jb2xvci1leHBlY3RlZC5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsMTUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFk
PgotPHN0eWxlPgotI3Rlc3QgewotICAgIGNvbG9yOiBncmVlbjsKLSAgICBmb250LXNpemU6IDE2
cHg7Ci19Ci08L3N0eWxlPgotPC9oZWFkPgotPGJvZHk+Ci1UaGlzIHRlc3QgbWFrZXMgc3VyZSB0
aGF0IHRleHQgZHJhd24gd2l0aCBhbiBlbXB0eSBzaGFkb3cgaXMgY29sb3JlZCBjb3JyZWN0bHku
IEl0IHBhc3NlcyBpZiB0aGUgZm9sbG93aW5nIHRleHQgaXMgZ3JlZW4uCi08ZGl2IGlkPSJ0ZXN0
Ij5UaGlzIHNob3VsZCBiZSBncmVlbi48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9lbXB0eS1zaGFkb3ctd2l0aC1jb2xvci5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC90ZXh0L2VtcHR5LXNoYWRvdy13aXRoLWNvbG9yLmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNmZGY5NWMzZmI3N2Q5MjEyZGVjYjVkMjNmZjgxZDU5
NDkzOGI3OGEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC90ZXh0L2VtcHR5LXNoYWRvdy13aXRoLWNvbG9yLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+
Ci08c3R5bGU+Ci0jdGVzdCB7Ci0gICAgY29sb3I6IGdyZWVuOwotICAgIGZvbnQtc2l6ZTogMTZw
eDsKLSAgICB0ZXh0LXNoYWRvdzogcmVkIDIwcHggMjBweCwgcmVkIDBweCAwcHg7Ci0gICAgb3Zl
cmZsb3c6IGhpZGRlbjsKLX0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLVRoaXMgdGVzdCBt
YWtlcyBzdXJlIHRoYXQgdGV4dCBkcmF3biB3aXRoIGFuIGVtcHR5IHNoYWRvdyBpcyBjb2xvcmVk
IGNvcnJlY3RseS4gSXQgcGFzc2VzIGlmIHRoZSBmb2xsb3dpbmcgdGV4dCBpcyBncmVlbi4KLTxk
aXYgaWQ9InRlc3QiPlRoaXMgc2hvdWxkIGJlIGdyZWVuLjwvZGl2PgotPC9ib2R5PgotPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2VtcHR5LXNoYWRvdy5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC90ZXh0L2VtcHR5LXNoYWRvdy5odG1sCmluZGV4IDQyN2NkZDhjNjNj
OWExODJhNWMwZGYxYWQyOGQzMWQ0NGIyNGEzY2YuLjJiM2U3NzgzNGNhZWQyMjk5OWVkODA4ZTM1
NTA0NjZlZmEwYjg0OTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9lbXB0eS1z
aGFkb3cuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvZW1wdHktc2hhZG93Lmh0bWwK
QEAgLTEsNCArMSwyMCBAQAotVGhpcyB0ZXN0cyB0aGF0IHRleHQgZHJhd24gd2l0aCB0ZXh0LXNo
YWRvd3Mgb2YgcmFkaXVzIDAgYW5kICgwLCAwKSBvZmZzZXQgYXJlIG5vdCBkcmF3bi4KLVRoaXMg
aXMgYSBiZXR0ZXIgb3V0Y29tZSB0aGFuIHRoZW0gYmVpbmcgZHJhd24gaW4gYW4gdWdseSB3YXku
Ci1UaGlzIHRlc3QgaXMgc3VjY2Vzc2Z1bCBpZiB0aGUgdGV4dCBiZWxvdyBpcyBjb21wbGV0ZWx5
IGludmlzaWJsZS4KLTxkaXYgc3R5bGU9ImNvbG9yOiNmZmY7dGV4dC1zaGFkb3c6MCAwICMwMDAi
PlRoaXMgaXMgc29tZSB0ZXh0PC9kaXY+Cis8cD5UaGlzIHRlc3RzIHRoYXQgdGV4dCBkcmF3biB3
aXRoIHRleHQtc2hhZG93cyBvZiByYWRpdXMgMCBhbmQgKDAsIDApIG9mZnNldCBhcmUgbm90IGRy
YXduLjwvcD4KKzxwPkluIHRoZSBmb2xsb3dpbmcgdGVzdHMsIHRoZSBhY3R1YWwgdGV4dCBpcyBn
cmVlbiB3aGlsZSB0aGUgc2hhZG93cyBhcmUgYmx1ZS48L3A+CisKKzxkaXYgc3R5bGU9ImNvbG9y
OiBncmVlbjsiPgorPGRpdiBzdHlsZT0idGV4dC1zaGFkb3c6IDVweCA1cHggYmx1ZTsiPlRleHQg
d2l0aCBhIHNpbmdsZSBzaGFkb3cuPC9kaXY+Cis8ZGl2IHN0eWxlPSJ0ZXh0LXNoYWRvdzogMHB4
IDBweCBibHVlOyI+VGV4dCB3aXRoIG9uZSBlbXB0eSAodW5kcmF3bikgc2hhZG93LjwvZGl2Pgor
PGRpdiBzdHlsZT0idGV4dC1zaGFkb3c6IDVweCA1cHggYmx1ZSwgMTBweCAxMHB4IGJsdWU7Ij5U
ZXh0IHdpdGggdHdvIHNoYWRvd3M8L2Rpdj4KKzxkaXYgc3R5bGU9InRleHQtc2hhZG93OiA1cHgg
NXB4IGJsdWUsIDBweCAwcHggYmx1ZTsiPlRleHQgd2l0aCB0d28gc2hhZG93czogZmlyc3QgZHJh
d24gYW5kIHNlY29uZCBlbXB0eSAodW5kcmF3bikuPC9kaXY+Cis8ZGl2IHN0eWxlPSJ0ZXh0LXNo
YWRvdzogMHB4IDBweCBibHVlLCAxMHB4IDEwcHggYmx1ZTsiPlRleHQgd2l0aCB0d28gc2hhZG93
czogZmlyc3QgZW1wdHkgKHVuZHJhd24pIGFuZCBzZWNvbmQgZHJhd24uPC9kaXY+Cis8ZGl2IHN0
eWxlPSJ0ZXh0LXNoYWRvdzogMHB4IDBweCBibHVlLCAwcHggMHB4IGJsdWU7Ij5UZXh0IHdpdGgg
dHdvIGVtcHR5ICh1bmRyYXduKSBzaGFkb3dzLjwvZGl2PgorPC9kaXY+CisKKzxkaXYgc3R5bGU9
ImNvbG9yOiB0cmFuc3BhcmVudDsiPgorPGRpdiBzdHlsZT0idGV4dC1zaGFkb3c6IDVweCA1cHgg
Ymx1ZTsiPlRyYW5zcGFyZW50IHRleHQgd2l0aCBhIHNpbmdsZSBzaGFkb3cuPC9kaXY+Cis8ZGl2
IHN0eWxlPSJ0ZXh0LXNoYWRvdzogMHB4IDBweCBibHVlOyI+VHJhbnNwYXJlbnQgdGV4dCB3aXRo
IG9uZSBlbXB0eSBzaGFkb3cuPC9kaXY+Cis8ZGl2IHN0eWxlPSJ0ZXh0LXNoYWRvdzogNXB4IDVw
eCBibHVlLCAxMHB4IDEwcHggYmx1ZTsiPlRyYW5zcGFyZW50IHRleHQgd2l0aCB0d28gc2hhZG93
czwvZGl2PgorPGRpdiBzdHlsZT0idGV4dC1zaGFkb3c6IDdweCA3cHggYmx1ZSwgMHB4IDBweCBi
bHVlOyI+VHJhbnNwYXJlbnQgdGV4dCB3aXRoIHR3byBzaGFkb3dzOiBmaXJzdCBkcmF3biBhbmQg
c2Vjb25kIGVtcHR5LjwvZGl2PgorPGRpdiBzdHlsZT0idGV4dC1zaGFkb3c6IDBweCAwcHggYmx1
ZSwgMTBweCAxMHB4IGJsdWU7Ij5UcmFuc3BhcmVudCB0ZXh0IHdpdGggdHdvIHNoYWRvd3M6IGZp
cnN0IGRyYXduIGFuZCBzZWNvbmQgZW1wdHkuPC9kaXY+Cis8ZGl2IHN0eWxlPSJ0ZXh0LXNoYWRv
dzogMHB4IDBweCBibHVlLCAwcHggMHB4IGJsdWU7Ij5UcmFuc3BhcmVudCB0ZXh0IHdpdGggdHdv
IGVtcHR5IHNoYWRvd3MuPC9kaXY+Cis8L2Rpdj4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238227</attachid>
            <date>2014-09-16 17:25:15 -0700</date>
            <delta_ts>2014-09-16 21:04:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136801-20140916172512.patch</filename>
            <type>text/plain</type>
            <size>20893</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTczNjc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjMyMjY3MGIzZjUzMDFj
YTczM2E1MGZhODE1NzU3OTYwNDZjZGM1MC4uYWNmZjk2YTAwNGRjY2QyZmQ4NzMwNzEyNzU1NWMy
NWNjNTk3NjdiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDE0LTA5LTE1ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lP
TjogVGV4dCB3aXRoIGEgemVybyBvZmZzZXQsIHplcm8gYmx1ciBzaGFkb3cgdmFuaXNoZXMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNjgwMQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
cGVyZm9ybXMgc29tZSBjbGVhbnVwIHJlZ2FyZGluZyBUZXh0UGFpbnRlcidzIHNoYWRvdyBsb2dp
YyBhbmQgaGFuZGxlcyBhbgorICAgICAgICBhZGRpdGlvbmFsIGNhc2Ugb2YgZW1wdHkgc2hhZG93
cy4gUHJldmlvdXNseSwgdGhlcmUgd2FzIHRpZ2h0IGNvdXBsaW5nIGJldHdlZW4KKyAgICAgICAg
YXBwbHlTaGFkb3dUb0dyYXBoaWNhbENvbnRleHQoKSBhbmQgcGFpbnRUZXh0V2l0aFNoYWRvd3Mo
KSwgYXMgdGhleSBib3RoIHVzZWQgYQorICAgICAgICBjb2xsZWN0aW9uIG9mIHZhcmlhYmxlcyB0
byBkZXRlcm1pbmUgaG93IHNoYWRvd3MgYXJlIHRvIGJlIGRyYXduLgorCisgICAgICAgIEdyYXBo
aWNzQ29udGV4dCBhbGxvd3MgdXMgdG8gcHV0IG9uZSBzaGFkb3cgb24gdGV4dCwgYnV0IHRoZSBD
U1Mgc3BlYyBhbGxvd3MgZm9yIGEgc2VyaWVzCisgICAgICAgIG9mIHNoYWRvd3MuIFdlIGFsbG93
IGZvciB0aGlzIGJ5IGxvb3Bpbmcgb3ZlciBldmVyeSBzaGFkb3cgaW4gdGhlIGxpc3QsIGFwcGx5
aW5nIGEKKyAgICAgICAgc2hhZG93LCBhbmQgZHJhd2luZyB0ZXh0LiBIb3dldmVyLCBpbiBvcmRl
ciB0byBhdm9pZCBkcmF3aW5nIHRoZSBtYWluIHRleHQgaXRzZWxmIG11bHRpcGxlCisgICAgICAg
IHRpbWVzIG9uIHRvcCBvZiBpdHNlbGYsIHdlIGNsaXAgdGhlIGNvbnRleHQgdG8gdGhlIHNoYWRv
d2VkIHJlZ2lvbiwgdGhlbiBkcmF3IHRoZSB0ZXh0CisgICAgICAgIGluIHNvbWUgYXJiaXRyYXJ5
IHBsYWNlIHRoYXQgaXMgb3V0c2lkZSBvZiB0aGUgY2xpcCByZWdpb24uIFdlIHRoZXJlZm9yZSBn
aXZlIGEgdmVjdG9yCisgICAgICAgIGZyb20gdGhpcyBhcmJpdHJhcnkgcGxhY2UgdG8gdGhlIHNo
YWRvdyBsb2NhdGlvbiB0byB0aGUgR3JhcGhpY3NDb250ZXh0IGFzIHRoZSBzaGFkb3cKKyAgICAg
ICAgb2Zmc2V0LiBIb3dldmVyLCB3ZSBoYXZlIGFuIG9wdGltaXphdGlvbiB0byBhbGxvdyB1cyB0
byBkcmF3IHRoZSB0ZXh0IGl0c2VsZiBkdXJpbmcgdGhlCisgICAgICAgIGxhc3QgaXRlcmF0aW9u
IG9mIHRoaXMgbG9vcCwgd2hpY2ggbWVhbnMgd2UgZG9uJ3QgZG8gYW55IG9mIHRoZSBhZm9yZW1l
bnRpb25lZCBjbGlwcGluZy4KKyAgICAgICAgVGhpcyBvcHRpbWl6YXRpb24gaXMgcHJlZGljYXRl
ZCBvbiB0aGUgbWFpbiB0ZXh0IGJlaW5nIG9wYXF1ZSBhbmQgbm9uLXN0cm9rZWQuIE90aGVyd2lz
ZSwKKyAgICAgICAgYW4gYWRkaXRpb25hbCBpdGVyYXRpb24gb2YgdGhlIGxvb3AgaXMgcGVyZm9y
bWVkICh0aGlzIGV4dHJhIGl0ZXJhdGlvbiBpcyBjb25jZXB0dWFsbHkgdGhlCisgICAgICAgIHNh
bWUgYXMgdGhlIGNhc2Ugd2hlcmUgdGhlcmUgaXMgbm8gc2hhZG93IHNwZWNpZmllZCBhdCBhbGwp
LgorCisgICAgICAgIFJlZ2FyZGluZyB0aGUgb3JpZ2luYWwgaW50ZW50IG9mIHRoaXMgc2V0IG9m
IHBhdGNoZXMgKG5vdCBkcmF3aW5nIGVtcHR5IHNoYWRvd3MpLCB0aGVyZQorICAgICAgICBhcmUg
dHdvIGNhc2VzOiB3aGVuIHdlIGFyZSBvbmx5IGRyYXdpbmcgdGhlIHNoYWRvdyB3aXRoIG91dCB0
aGUgbWFpbiB0ZXh0LCBpbiB3aGljaCBjYXNlCisgICAgICAgIHRoZSBlbnRpcmUgbG9vcCBpdGVy
YXRpb24gY2FuIGJlIGF2b2lkZWQsIGFuZCB0aGUgY2FzZSB3aGVyZSBib3RoIHRoZSBzaGFkb3cg
YW5kIG1haW4KKyAgICAgICAgdGV4dCBhcmUgYmVpbmcgZHJhd24gYXQgb25jZSwgd2hlcmUgd2Ug
aGF2ZSB0byBkcmF3IHRoZSBtYWluIHRleHQgd2l0aG91dCB0aGUgc2hhZG93LgorICAgICAgICBQ
cmV2aW91c2x5LCBvbmx5IHRoZSBmaXJzdCBjYXNlIHdhcyBoYW5kbGVkOyB0aGlzIHBhdGNoIGhh
bmRsZXMgdGhlIHNlY29uZCBjYXNlIGFzIHdlbGwuCisKKyAgICAgICAgVGhpcyBwYXRjaCBtb3Zl
cyBhcHBseVNoYWRvd1RvR3JhcGhpY3NDb250ZXh0IHNvIHRoYXQgdGhlIHR3byBmdW5jdGlvbnMg
YXJlIHBoeXNpY2FsbHkKKyAgICAgICAgY2xvc2UgdG9nZXRoZXIuIEkgYWxzbyBjaGFuZ2VkIHRo
ZSBzZW1hbnRpY3Mgb2YgdGhlIGZsYWdzIHRvIGJlIG1vcmUgdW5kZXJzdGFuZGFibGUgdG8KKyAg
ICAgICAgdGhlIGFsZ29yaXRobSBkZXNjcmliZWQgYWJvdmUuIEdpdmVuIHRoZXNlIG5ldyBmbGFn
cywgSSByZW1vdmVkIHRoZSBkaWRTYXZlQ29udGV4dCBvdXQKKyAgICAgICAgcGFyYW0gdG8gYXBw
bHlTaGFkb3dUb0dyYXBoaWNzQ29udGV4dCgpLCB3aGljaCBpcyBub3cgY29uY2VwdHVhbGx5IGlk
ZW50aWNhbCBhcyBvbmUgb2YKKyAgICAgICAgdGhlIGlucHV0cywgb25seURyYXdzU2hhZG93LiBU
aGVzZSBuZXcgZmxhZ3Mgd2lsbCBob3BlZnVsbHkgaW5jcmVhc2UgdGhlIHJlYWRhYmlsaXR5IG9m
CisgICAgICAgIHRoaXMgc2VjdGlvbiBvZiB0aGUgY29kZSBmb3IgZnV0dXJlIGRldmVsb3BlcnMg
c28gdGhhdCB0aGVzZSBtaXN0YWtlcyBJIGhhdmUgbWFkZSB3aWxsIG5vdAorICAgICAgICBiZSBy
ZXBlYXRlZC4KKworICAgICAgICBUZXN0OiBmYXN0L3RleHQvZW1wdHktc2hhZG93Lmh0bWw6IFVw
ZGF0ZWQgdG8gdGVzdCB0aGlzIGNhc2UgYXMgd2VsbCBhcyBhIGNvbGxlY3Rpb24gb2YKKyAgICAg
ICAgb3RoZXIgY2FzZXMuCisKKyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94OjphcHBseVNoYWRvd1RvR3JhcGhpY3ND
b250ZXh0KTogTW92ZWQgdG8gVGV4dFBhaW50ZXIuCisgICAgICAgICogcmVuZGVyaW5nL0lubGlu
ZVRleHRCb3guaDogTW92ZWQgYXBwbHlTaGFkb3dUb0dyYXBoaWNzQ29udGV4dCgpIHRvIFRleHRQ
YWludGVyLgorICAgICAgICAqIHJlbmRlcmluZy9UZXh0UGFpbnRlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpUZXh0UGFpbnRlcjo6YXBwbHlTaGFkb3dUb0dyYXBoaWNzQ29udGV4dCk6IE1vdmVk
IGZyb20gSW5saW5lVGV4dEJveC4gVXNpbmcKKyAgICAgICAgZW51bSBjbGFzc2VzIGluc3RlYWQg
b2YgYm9vbGVhbiBhcmd1bWVudHMuIFRoZSBzZW1hbnRpY3Mgb2YgdGhlc2UgYXJndW1lbnRzIGhh
dmUgY2hhbmdlZAorICAgICAgICBzbyBhcyB0byBtYWtlIHRoZSBhbGdvcml0aG0gbW9yZSB1bmRl
cnN0YW5kYWJsZS4gSW4gYWRkaXRpb24sIGNoZWNrIGZvciB0aGUgc2Vjb25kCisgICAgICAgIGNh
c2UgYWJvdmUgcmVnYXJkaW5nIGVtcHR5IHNoYWRvd3MgYW5kIGRvbid0IGRyYXcgc2hhZG93IGlm
IHRoYXQgY2FzZSBvY2N1cnMuCisgICAgICAgIChXZWJDb3JlOjpwYWludFRleHRXaXRoU2hhZG93
cyk6IFVzZSBlbnVtIGNsYXNzZXMgdG8gcmVwcmVzZW50IGZsYWdzIHRoYXQgd2VyZSBkZXNjcmli
ZWQKKyAgICAgICAgZWFybGllci4KKyAgICAgICAgKFdlYkNvcmU6OmlzRW1wdHlTaGFkb3cpOiBN
b3ZlZCB0byBoZWFkZXIuCisgICAgICAgICogcmVuZGVyaW5nL1RleHRQYWludGVyLmg6CisgICAg
ICAgIChXZWJDb3JlOjpUZXh0UGFpbnRlcjo6aXNMYXN0U2hhZG93SXRlcmF0aW9uKTogQ29udmVu
aWVuY2UgZnVuY3Rpb24uCisgICAgICAgIChXZWJDb3JlOjpUZXh0UGFpbnRlcjo6aXNFbXB0eVNo
YWRvdyk6IERpdHRvLiBOZWVkcyB0byBrbm93IHdoZXRoZXIgb3Igbm90IHRoZSBtYWluIHRleHQK
KyAgICAgICAgaXMgb3BhcXVlIGJlY2F1c2Ugb3RoZXJ3aXNlIHNoYWRvd3MgYXJlIGFsd2F5cyB2
aXNpYmxlICh0aGVyZWZvcmUgbmV2ZXIgZW1wdHkpLgorICAgICAgICAqIHJlbmRlcmluZy9zdmcv
U1ZHSW5saW5lVGV4dEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdJbmxpbmVUZXh0Qm94
OjpwYWludFRleHRXaXRoU2hhZG93cyk6IFVwZGF0ZSB0byBuZXcgc2lnbmF0dXJlIG9mCisgICAg
ICAgIGFwcGx5U2hhZG93VG9HcmFwaGljc0NvbnRleHQoKS4KKwogMjAxNC0wOS0xNiAgRW5yaWNh
IENhc3VjY2kgIDxlbnJpY2FAYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUgSFRNTENvbnZlcnRl
ciBmcm9tIGVkaXRpbmcvY29jb2EgdG8gcGxhdGZvcm0vY29jb2EuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAKaW5kZXggMjYwMGNhYTdlOWRmNzkwYjY0MzhjYjUy
Njk0YWRhYjhjMmNhNWFkNS4uYjJkYTU4YmI1NWNmOTBhNjFlZWI4ODA0ZDljMjBhYTFkY2E0OWZm
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcApAQCAtNDI0
LDM0ICs0MjQsNiBAQCBib29sIElubGluZVRleHRCb3g6Om5vZGVBdFBvaW50KGNvbnN0IEhpdFRl
c3RSZXF1ZXN0JiByZXF1ZXN0LCBIaXRUZXN0UmVzdWx0JiByZQogICAgIHJldHVybiBmYWxzZTsK
IH0KIAotRmxvYXRTaXplIElubGluZVRleHRCb3g6OmFwcGx5U2hhZG93VG9HcmFwaGljc0NvbnRl
eHQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBTaGFkb3dEYXRhKiBzaGFkb3csIGNv
bnN0IEZsb2F0UmVjdCYgdGV4dFJlY3QsIGJvb2wgc3Ryb2tlZCwgYm9vbCBvcGFxdWUsIGJvb2wg
aG9yaXpvbnRhbCwgYm9vbCYgZGlkU2F2ZUNvbnRleHQpCi17Ci0gICAgaWYgKCFzaGFkb3cpCi0g
ICAgICAgIHJldHVybiBGbG9hdFNpemUoKTsKLQotICAgIEZsb2F0U2l6ZSBleHRyYU9mZnNldDsK
LSAgICBpbnQgc2hhZG93WCA9IGhvcml6b250YWwgPyBzaGFkb3ctPngoKSA6IHNoYWRvdy0+eSgp
OwotICAgIGludCBzaGFkb3dZID0gaG9yaXpvbnRhbCA/IHNoYWRvdy0+eSgpIDogLXNoYWRvdy0+
eCgpOwotICAgIEZsb2F0U2l6ZSBzaGFkb3dPZmZzZXQoc2hhZG93WCwgc2hhZG93WSk7Ci0gICAg
aW50IHNoYWRvd1JhZGl1cyA9IHNoYWRvdy0+cmFkaXVzKCk7Ci0gICAgY29uc3QgQ29sb3ImIHNo
YWRvd0NvbG9yID0gc2hhZG93LT5jb2xvcigpOwotCi0gICAgaWYgKHNoYWRvdy0+bmV4dCgpIHx8
IHN0cm9rZWQgfHwgIW9wYXF1ZSkgewotICAgICAgICBGbG9hdFJlY3Qgc2hhZG93UmVjdCh0ZXh0
UmVjdCk7Ci0gICAgICAgIHNoYWRvd1JlY3QuaW5mbGF0ZShzaGFkb3ctPnBhaW50aW5nRXh0ZW50
KCkpOwotICAgICAgICBzaGFkb3dSZWN0Lm1vdmUoc2hhZG93T2Zmc2V0KTsKLSAgICAgICAgY29u
dGV4dC5zYXZlKCk7Ci0gICAgICAgIGNvbnRleHQuY2xpcChzaGFkb3dSZWN0KTsKLQotICAgICAg
ICBleHRyYU9mZnNldCA9IEZsb2F0U2l6ZSgwLCAyICogdGV4dFJlY3QuaGVpZ2h0KCkgKyBzdGQ6
Om1heCgwLjBmLCBzaGFkb3dPZmZzZXQuaGVpZ2h0KCkpICsgc2hhZG93UmFkaXVzKTsKLSAgICAg
ICAgc2hhZG93T2Zmc2V0IC09IGV4dHJhT2Zmc2V0OwotICAgICAgICBkaWRTYXZlQ29udGV4dCA9
IHRydWU7Ci0gICAgfQotCi0gICAgY29udGV4dC5zZXRTaGFkb3coc2hhZG93T2Zmc2V0LCBzaGFk
b3dSYWRpdXMsIHNoYWRvd0NvbG9yLCBjb250ZXh0LmZpbGxDb2xvclNwYWNlKCkpOwotICAgIHJl
dHVybiBleHRyYU9mZnNldDsKLX0KLQogc3RhdGljIGlubGluZSBib29sIGVtcGhhc2lzUG9zaXRp
b25IYXNOZWl0aGVyTGVmdE5vclJpZ2h0KFRleHRFbXBoYXNpc1Bvc2l0aW9uIGVtcGhhc2lzUG9z
aXRpb24pCiB7CiAgICAgcmV0dXJuICEoZW1waGFzaXNQb3NpdGlvbiAmIFRleHRFbXBoYXNpc1Bv
c2l0aW9uTGVmdCkgJiYgIShlbXBoYXNpc1Bvc2l0aW9uICYgVGV4dEVtcGhhc2lzUG9zaXRpb25S
aWdodCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJv
eC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guaAppbmRleCBlODlh
MmNkOWM3Zjk4ODk5YWI0NzNlZmI3NDI3ZTM4NDY0YTc5YzliLi42ZjgxOGM0NWIxN2JiZmE4Nzcy
MjdmMjM3YTQ2NzE5MzU3MWFiNDQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvSW5saW5lVGV4dEJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVU
ZXh0Qm94LmgKQEAgLTE1NCw5ICsxNTQsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBpbnQgb2Zm
c2V0Rm9yUG9zaXRpb24oZmxvYXQgeCwgYm9vbCBpbmNsdWRlUGFydGlhbEdseXBocyA9IHRydWUp
IGNvbnN0OwogICAgIHZpcnR1YWwgZmxvYXQgcG9zaXRpb25Gb3JPZmZzZXQoaW50IG9mZnNldCkg
Y29uc3Q7CiAKLSAgICAvLyBOZWVkcyB0byBiZSBwdWJsaWMsIHNvIHRoZSBzdGF0aWMgcGFpbnRU
ZXh0V2l0aFNoYWRvd3MoKSBmdW5jdGlvbiBjYW4gdXNlIGl0LgotICAgIHN0YXRpYyBGbG9hdFNp
emUgYXBwbHlTaGFkb3dUb0dyYXBoaWNzQ29udGV4dChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBT
aGFkb3dEYXRhKiwgY29uc3QgRmxvYXRSZWN0JiB0ZXh0UmVjdCwgYm9vbCBzdHJva2VkLCBib29s
IG9wYXF1ZSwgYm9vbCBob3Jpem9udGFsLCBib29sJiBkaWRTYXZlQ29udGV4dCk7Ci0KIHByb3Rl
Y3RlZDoKICAgICB2b2lkIHBhaW50Q29tcG9zaXRpb25CYWNrZ3JvdW5kKEdyYXBoaWNzQ29udGV4
dCosIGNvbnN0IEZsb2F0UG9pbnQmIGJveE9yaWdpbiwgY29uc3QgUmVuZGVyU3R5bGUmLCBjb25z
dCBGb250JiwgaW50IHN0YXJ0UG9zLCBpbnQgZW5kUG9zKTsKICAgICB2b2lkIHBhaW50RG9jdW1l
bnRNYXJrZXJzKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEZsb2F0UG9pbnQmIGJveE9yaWdpbiwg
Y29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBGb250JiwgYm9vbCBiYWNrZ3JvdW5kKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFpbnRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvVGV4dFBhaW50ZXIuY3BwCmluZGV4IGZhMWQ3OWEwMGY5ZjE5MmI4
YzhiZjFhMjQ3NzRkZjQ0ZThmN2Y1YzQuLjQ5NTE3ZWRmYjQ5OWIzZGRiNmYxN2E3MWQ4MjM0ZmEx
ZDdlZjI1MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFpbnRl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRQYWludGVyLmNwcApAQCAt
NjUsMTEgKzY1LDMyIEBAIHN0YXRpYyB2b2lkIGRyYXdUZXh0T3JFbXBoYXNpc01hcmtzKEdyYXBo
aWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRm9udCYgZm9udCwKICAgICAgICAgY29udGV4dC5k
cmF3RW1waGFzaXNNYXJrcyhmb250LCB0ZXh0UnVuLCBlbXBoYXNpc01hcmssIHBvaW50ICsgSW50
U2l6ZSgwLCBlbXBoYXNpc01hcmtPZmZzZXQpLCBmcm9tLCB0byk7CiB9CiAKLXN0YXRpYyBib29s
IGlzRW1wdHlTaGFkb3coY29uc3QgU2hhZG93RGF0YSogc2hhZG93KQorRmxvYXRTaXplIFRleHRQ
YWludGVyOjphcHBseVNoYWRvd1RvR3JhcGhpY3NDb250ZXh0KEdyYXBoaWNzQ29udGV4dCYgY29u
dGV4dCwgY29uc3QgU2hhZG93RGF0YSYgc2hhZG93LCBjb25zdCBGbG9hdFJlY3QmIHRleHRSZWN0
LCBib29sIG9ubHlEcmF3c1NoYWRvdywgYm9vbCBlbXB0eVNoYWRvdywgRm9udE9yaWVudGF0aW9u
IG9yaWVudGF0aW9uKQogewotICAgIGlmICghc2hhZG93KQotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgcmV0dXJuIHNoYWRvdy0+bG9jYXRpb24oKSA9PSBJbnRQb2ludCgpICYmICFzaGFkb3ct
PnJhZGl1cygpOworICAgIEZsb2F0U2l6ZSBleHRyYU9mZnNldDsKKyAgICBpbnQgc2hhZG93WCA9
IG9yaWVudGF0aW9uID09IEhvcml6b250YWwgPyBzaGFkb3cueCgpIDogc2hhZG93LnkoKTsKKyAg
ICBpbnQgc2hhZG93WSA9IG9yaWVudGF0aW9uID09IEhvcml6b250YWwgPyBzaGFkb3cueSgpIDog
LXNoYWRvdy54KCk7CisgICAgRmxvYXRTaXplIHNoYWRvd09mZnNldChzaGFkb3dYLCBzaGFkb3dZ
KTsKKyAgICBpbnQgc2hhZG93UmFkaXVzID0gc2hhZG93LnJhZGl1cygpOworICAgIGNvbnN0IENv
bG9yJiBzaGFkb3dDb2xvciA9IHNoYWRvdy5jb2xvcigpOworCisgICAgLy8gV2hlbiBkcmF3aW5n
IHNoYWRvd3MsIHdlIHVzdWFsbHkgY2xpcCB0aGUgY29udGV4dCB0byB0aGUgYXJlYSB0aGUgc2hh
ZG93IHdpbGwgcmVzaWRlLCBhbmQgdGhlbgorICAgIC8vIGRyYXcgdGhlIHRleHQgaXRzZWxmIG91
dHNpZGUgdGhlIGNsaXBwZWQgYXJlYSAoc28gb25seSB0aGUgc2hhZG93IHNob3dzIHVwKS4gSG93
ZXZlciwgd2UgY2FuCisgICAgLy8gb2Z0ZW4gZHJhdyB0aGUgOjpsYXN0Ojogc2hhZG93IGFuZCB0
aGUgdGV4dCBpdHNlbGYgaW4gYSBzaW5nbGUgY2FsbC4KKyAgICBpZiAoIW9ubHlEcmF3c1NoYWRv
dykgeworICAgICAgICBGbG9hdFJlY3Qgc2hhZG93UmVjdCh0ZXh0UmVjdCk7CisgICAgICAgIHNo
YWRvd1JlY3QuaW5mbGF0ZShzaGFkb3cucGFpbnRpbmdFeHRlbnQoKSk7CisgICAgICAgIHNoYWRv
d1JlY3QubW92ZShzaGFkb3dPZmZzZXQpOworICAgICAgICBjb250ZXh0LnNhdmUoKTsKKyAgICAg
ICAgY29udGV4dC5jbGlwKHNoYWRvd1JlY3QpOworCisgICAgICAgIGV4dHJhT2Zmc2V0ID0gRmxv
YXRTaXplKDAsIDIgKiB0ZXh0UmVjdC5oZWlnaHQoKSArIHN0ZDo6bWF4KDAuMGYsIHNoYWRvd09m
ZnNldC5oZWlnaHQoKSkgKyBzaGFkb3dSYWRpdXMpOworICAgICAgICBzaGFkb3dPZmZzZXQgLT0g
ZXh0cmFPZmZzZXQ7CisgICAgfQorCisgICAgaWYgKCFlbXB0eVNoYWRvdykKKyAgICAgICAgY29u
dGV4dC5zZXRTaGFkb3coc2hhZG93T2Zmc2V0LCBzaGFkb3dSYWRpdXMsIHNoYWRvd0NvbG9yLCBj
b250ZXh0LmZpbGxDb2xvclNwYWNlKCkpOworICAgIHJldHVybiBleHRyYU9mZnNldDsKIH0KIAog
c3RhdGljIHZvaWQgcGFpbnRUZXh0V2l0aFNoYWRvd3MoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0
LCBjb25zdCBGb250JiBmb250LCBjb25zdCBUZXh0UnVuJiB0ZXh0UnVuLCBjb25zdCBBdG9taWNT
dHJpbmcmIGVtcGhhc2lzTWFyaywKQEAgLTc5LDE5ICsxMDAsMjEgQEAgc3RhdGljIHZvaWQgcGFp
bnRUZXh0V2l0aFNoYWRvd3MoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGb250JiBm
b250LCBjb24KICAgICBDb2xvciBmaWxsQ29sb3IgPSBjb250ZXh0LmZpbGxDb2xvcigpOwogICAg
IENvbG9yU3BhY2UgZmlsbENvbG9yU3BhY2UgPSBjb250ZXh0LmZpbGxDb2xvclNwYWNlKCk7CiAg
ICAgYm9vbCBvcGFxdWUgPSAhZmlsbENvbG9yLmhhc0FscGhhKCk7CisgICAgYm9vbCBsYXN0U2hh
ZG93SXRlcmF0aW9uRHJhd3NSZWFsVGV4dEFzV2VsbCA9ICFzdHJva2VkICYmIG9wYXF1ZTsKICAg
ICBpZiAoIW9wYXF1ZSkKICAgICAgICAgY29udGV4dC5zZXRGaWxsQ29sb3IoQ29sb3I6OmJsYWNr
LCBmaWxsQ29sb3JTcGFjZSk7CiAKICAgICBkbyB7Ci0gICAgICAgIGlmIChpc0VtcHR5U2hhZG93
KHNoYWRvdykpIHsKKyAgICAgICAgYm9vbCBlbXB0eVNoYWRvdyA9IFRleHRQYWludGVyOjppc0Vt
cHR5U2hhZG93KHNoYWRvdywgb3BhcXVlKTsKKyAgICAgICAgYm9vbCBvbmx5RHJhd3NTaGFkb3cg
PSBUZXh0UGFpbnRlcjo6aXNMYXN0U2hhZG93SXRlcmF0aW9uKHNoYWRvdykgJiYgbGFzdFNoYWRv
d0l0ZXJhdGlvbkRyYXdzUmVhbFRleHRBc1dlbGw7CisgICAgICAgIGlmIChlbXB0eVNoYWRvdyAm
JiAhb25seURyYXdzU2hhZG93KSB7CiAgICAgICAgICAgICBzaGFkb3cgPSBzaGFkb3ctPm5leHQo
KTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKICAgICAgICAgSW50U2l6ZSBl
eHRyYU9mZnNldDsKLSAgICAgICAgYm9vbCBkaWRTYXZlQ29udGV4dCA9IGZhbHNlOwogICAgICAg
ICBpZiAoc2hhZG93KQotICAgICAgICAgICAgZXh0cmFPZmZzZXQgPSByb3VuZGVkSW50U2l6ZShJ
bmxpbmVUZXh0Qm94OjphcHBseVNoYWRvd1RvR3JhcGhpY3NDb250ZXh0KGNvbnRleHQsIHNoYWRv
dywgYm94UmVjdCwgc3Ryb2tlZCwgb3BhcXVlLCBob3Jpem9udGFsLCBkaWRTYXZlQ29udGV4dCkp
OworICAgICAgICAgICAgZXh0cmFPZmZzZXQgPSByb3VuZGVkSW50U2l6ZShUZXh0UGFpbnRlcjo6
YXBwbHlTaGFkb3dUb0dyYXBoaWNzQ29udGV4dChjb250ZXh0LCAqc2hhZG93LCBib3hSZWN0LCBv
bmx5RHJhd3NTaGFkb3csIGVtcHR5U2hhZG93LCBob3Jpem9udGFsID8gSG9yaXpvbnRhbCA6IFZl
cnRpY2FsKSk7CiAgICAgICAgIGVsc2UgaWYgKCFvcGFxdWUpCiAgICAgICAgICAgICBjb250ZXh0
LnNldEZpbGxDb2xvcihmaWxsQ29sb3IsIGZpbGxDb2xvclNwYWNlKTsKIApAQCAtMTA3LDEzICsx
MzAsMTMgQEAgc3RhdGljIHZvaWQgcGFpbnRUZXh0V2l0aFNoYWRvd3MoR3JhcGhpY3NDb250ZXh0
JiBjb250ZXh0LCBjb25zdCBGb250JiBmb250LCBjb24KICAgICAgICAgaWYgKCFzaGFkb3cpCiAg
ICAgICAgICAgICBicmVhazsKIAotICAgICAgICBpZiAoZGlkU2F2ZUNvbnRleHQpCi0gICAgICAg
ICAgICBjb250ZXh0LnJlc3RvcmUoKTsKKyAgICAgICAgaWYgKCFvbmx5RHJhd3NTaGFkb3cpCisg
ICAgICAgICAgICBjb250ZXh0LnJlc3RvcmUoKTsgLy8gTWF0Y2hpbmcgY2FsbCB0byBjb250ZXh0
LnNhdmUoKSBpbiBhcHBseVNoYWRvd1RvR3JhcGhpY3NDb250ZXh0CiAgICAgICAgIGVsc2UKICAg
ICAgICAgICAgIGNvbnRleHQuY2xlYXJTaGFkb3coKTsKIAogICAgICAgICBzaGFkb3cgPSBzaGFk
b3ctPm5leHQoKTsKLSAgICB9IHdoaWxlIChzaGFkb3cgfHwgc3Ryb2tlZCB8fCAhb3BhcXVlKTsK
KyAgICB9IHdoaWxlIChzaGFkb3cgfHwgIWxhc3RTaGFkb3dJdGVyYXRpb25EcmF3c1JlYWxUZXh0
QXNXZWxsKTsKIH0KIAogdm9pZCBUZXh0UGFpbnRlcjo6cGFpbnRUZXh0KCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFpbnRlci5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1RleHRQYWludGVyLmgKaW5kZXggOTZmODNhYTJiMzEzNDE5NjZkMzZmNTkzNGI4
YTU3NmMzZDA0MDdkNy4uOGZiMTM0ZmU3NjJlZTVhZjYwZGZlNDExOGMxNmQ4NTMyYzY0YjBhMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRQYWludGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRQYWludGVyLmgKQEAgLTI1LDYgKzI1LDcgQEAK
IAogI2luY2x1ZGUgIkFmZmluZVRyYW5zZm9ybS5oIgogI2luY2x1ZGUgIkRhc2hBcnJheS5oIgor
I2luY2x1ZGUgIkZvbnRPcmllbnRhdGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDcsNiArNDgsMTcgQEAgcHVibGljOgogICAgIGludCBz
dGFydFBvc2l0aW9uSW5UZXh0UnVuLCBpbnQgZW5kUG9zaXRpb25JblRleHRCb3hTdHJpbmcsIGlu
dCBsZW5ndGgsIGNvbnN0IEF0b21pY1N0cmluZyYgZW1waGFzaXNNYXJrLCBSZW5kZXJDb21iaW5l
VGV4dCosCiAgICAgVGV4dFJ1biYsIEZsb2F0UmVjdCYgYm94UmVjdCwgRmxvYXRQb2ludCYgdGV4
dE9yaWdpbiwgaW50IGVtcGhhc2lzTWFya09mZnNldCwgY29uc3QgU2hhZG93RGF0YSogdGV4dFNo
YWRvdywgY29uc3QgU2hhZG93RGF0YSogc2VsZWN0aW9uU2hhZG93LAogICAgIGJvb2wgdGV4dEJv
eElzSG9yaXpvbnRhbCwgVGV4dFBhaW50U3R5bGUmIG5vblNlbGVjdGlvblBhaW50U3R5bGUsIFRl
eHRQYWludFN0eWxlJiBzZWxlY3Rpb25QYWludFN0eWxlKTsKKworICAgIHN0YXRpYyBpbmxpbmUg
Ym9vbCBpc0xhc3RTaGFkb3dJdGVyYXRpb24oY29uc3QgU2hhZG93RGF0YSogc2hhZG93KQorICAg
IHsKKyAgICAgICAgcmV0dXJuIHNoYWRvdyAmJiAhc2hhZG93LT5uZXh0KCk7CisgICAgfQorICAg
IHN0YXRpYyBpbmxpbmUgYm9vbCBpc0VtcHR5U2hhZG93KGNvbnN0IFNoYWRvd0RhdGEqIHNoYWRv
dywgYm9vbCB0ZXh0SXNPcGFxdWUgPSBmYWxzZSkKKyAgICB7CisgICAgICAgIHJldHVybiB0ZXh0
SXNPcGFxdWUgJiYgc2hhZG93ICYmIHNoYWRvdy0+bG9jYXRpb24oKSA9PSBJbnRQb2ludCgpICYm
ICFzaGFkb3ctPnJhZGl1cygpOworICAgIH0KKworICAgIHN0YXRpYyBGbG9hdFNpemUgYXBwbHlT
aGFkb3dUb0dyYXBoaWNzQ29udGV4dChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBTaGFkb3dEYXRh
JiwgY29uc3QgRmxvYXRSZWN0JiB0ZXh0UmVjdCwgYm9vbCBvbmx5RHJhd3NTaGFkb3csIGJvb2wg
c2hhZG93SXNFbXB0eSwgRm9udE9yaWVudGF0aW9uID0gSG9yaXpvbnRhbCk7CiAgICAgCiAgICAg
dm9pZCBwYWludFRleHQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9TVkdJbmxpbmVUZXh0Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
U1ZHSW5saW5lVGV4dEJveC5jcHAKaW5kZXggY2RlY2RhNDcxYTkwOTJiOTg4OGRkMjQ2NTM0OWRm
NjkzYzMwNjA1Zi4uYjQ4Yzc1NDA1NjZhMjZlNWNjY2Y0MGE1ODEzMzIyNzI0NTYwYmI4MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdJbmxpbmVUZXh0Qm94LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR0lubGluZVRleHRCb3guY3Bw
CkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiU1ZHUmVzb3VyY2VzQ2FjaGUuaCIKICNpbmNs
dWRlICJTVkdSb290SW5saW5lQm94LmgiCiAjaW5jbHVkZSAiU1ZHVGV4dFJ1blJlbmRlcmluZ0Nv
bnRleHQuaCIKKyNpbmNsdWRlICJUZXh0UGFpbnRlci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKQEAgLTU5NSw5ICs1OTYsOSBAQCB2b2lkIFNWR0lubGluZVRleHRCb3g6OnBhaW50VGV4dFdp
dGhTaGFkb3dzKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgUmVuZGVyU3R5bAogICAgICAgICAg
ICAgYnJlYWs7CiAKICAgICAgICAgRmxvYXRTaXplIGV4dHJhT2Zmc2V0OwotICAgICAgICBib29s
IGRpZFNhdmVDb250ZXh0ID0gZmFsc2U7CisgICAgICAgIGJvb2wgb25seURyYXdzU2hhZG93ID0g
VGV4dFBhaW50ZXI6OmlzTGFzdFNoYWRvd0l0ZXJhdGlvbihzaGFkb3cpOwogICAgICAgICBpZiAo
c2hhZG93KQotICAgICAgICAgICAgZXh0cmFPZmZzZXQgPSBhcHBseVNoYWRvd1RvR3JhcGhpY3ND
b250ZXh0KCpjb250ZXh0LCBzaGFkb3csIHNoYWRvd1JlY3QsIGZhbHNlIC8qIHN0cm9rZWQgKi8s
IHRydWUgLyogb3BhcXVlICovLCB0cnVlIC8qIGhvcml6b250YWwgKi8sIGRpZFNhdmVDb250ZXh0
KTsKKyAgICAgICAgICAgIGV4dHJhT2Zmc2V0ID0gVGV4dFBhaW50ZXI6OmFwcGx5U2hhZG93VG9H
cmFwaGljc0NvbnRleHQoKmNvbnRleHQsICpzaGFkb3csIHNoYWRvd1JlY3QsIG9ubHlEcmF3c1No
YWRvdywgVGV4dFBhaW50ZXI6OmlzRW1wdHlTaGFkb3coc2hhZG93KSk7CiAKICAgICAgICAgY29u
dGV4dC0+c2F2ZSgpOwogICAgICAgICBjb250ZXh0LT5zY2FsZShGbG9hdFNpemUoMSAvIHNjYWxp
bmdGYWN0b3IsIDEgLyBzY2FsaW5nRmFjdG9yKSk7CkBAIC02MDcsOCArNjA4LDggQEAgdm9pZCBT
VkdJbmxpbmVUZXh0Qm94OjpwYWludFRleHRXaXRoU2hhZG93cyhHcmFwaGljc0NvbnRleHQqIGNv
bnRleHQsIFJlbmRlclN0eWwKICAgICAgICAgY29udGV4dC0+cmVzdG9yZSgpOwogCiAgICAgICAg
IGlmIChzaGFkb3cpIHsKLSAgICAgICAgICAgIGlmIChkaWRTYXZlQ29udGV4dCkKLSAgICAgICAg
ICAgICAgICBjb250ZXh0LT5yZXN0b3JlKCk7CisgICAgICAgICAgICBpZiAoIW9ubHlEcmF3c1No
YWRvdykKKyAgICAgICAgICAgICAgICBjb250ZXh0LT5yZXN0b3JlKCk7IC8vIE1hdGNoaW5nIGNh
bGwgdG8gY29udGV4dC5zYXZlKCkgaW4gYXBwbHlTaGFkb3dUb0dyYXBoaWNzQ29udGV4dAogICAg
ICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIGNvbnRleHQtPmNsZWFyU2hhZG93KCk7CiAg
ICAgICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCAyY2U5NjBlZTc2NjZjNzU5MWM0MjQ1MjlkM2YwNzYyZDBlMWU5NzY5
Li41ZWVhMjRiZTFhZDQwZGYyNWMzMGUyZjMyMDJkNmY1YzdiNmZmZjYwIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjIgQEAKKzIwMTQtMDktMTUgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxl
LmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OOiBUZXh0IHdpdGggYSB6ZXJvIG9mZnNldCwgemVy
byBibHVyIHNoYWRvdyB2YW5pc2hlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTM2ODAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhpcyB0ZXN0IHNob3VsZCBiZSBhIGNvbXByZWhlbnNpdmUgdGVzdCBv
ZiBlbXB0eSBzaGFkb3dzLiBJdCB0ZXN0cyBldmVyeQorICAgICAgICBjb21iaW5hdGlvbiBvZiBv
bmUgYW5kIHR3byBzaGFkb3dzIGJlaW5nIGVtcHR5LCBhcyB3ZWxsIGFzIHRyYW5zcGFyZW50IGFu
ZAorICAgICAgICBvcGFxdWUgdGV4dC4KKworICAgICAgICBBZnRlciB1cGRhdGluZyBmYXN0L3Rl
eHQvZW1wdHktc2hhZG93Lmh0bWwsIGZhc3QvdGV4dC9lbXB0eS1zaGFkb3ctd2l0aC1jb2xvci5o
dG1sCisgICAgICAgIGlzIG5vIGxvbmdlciBuZWNlc3NhcnkuCisKKyAgICAgICAgKiBmYXN0L3Rl
eHQvZW1wdHktc2hhZG93LWV4cGVjdGVkLmh0bWw6CisgICAgICAgICogZmFzdC90ZXh0L2VtcHR5
LXNoYWRvdy13aXRoLWNvbG9yLWV4cGVjdGVkLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFz
dC90ZXh0L2VtcHR5LXNoYWRvdy13aXRoLWNvbG9yLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICog
ZmFzdC90ZXh0L2VtcHR5LXNoYWRvdy5odG1sOgorCiAyMDE0LTA5LTE2ICBNeWxlcyBDLiBNYXhm
aWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBzcGVsbGluZyB0ZXN0
cyBtb3JlIHJlbGlhYmxlIGJ5IHVzaW5nIGEgd29yZCB0aGF0IGlzIG1pc3NwZWxsZWQgZXZlcnl3
aGVyZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2VtcHR5LXNoYWRvdy1leHBl
Y3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2VtcHR5LXNoYWRvdy1leHBlY3RlZC5o
dG1sCmluZGV4IGNlMmI5NmIwYmQwMmY5Y2ZjOGRmYzY5OTc3MTYzYzk1MmY2NjM2YTguLjJiM2Zh
ZWE1YzQwZmIzZGQyZTkzMTc4MWJhZTAwOGVlNDkyZGFkZGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvdGV4dC9lbXB0eS1zaGFkb3ctZXhwZWN0ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L3RleHQvZW1wdHktc2hhZG93LWV4cGVjdGVkLmh0bWwKQEAgLTEsMyArMSwyMCBAQAot
VGhpcyB0ZXN0cyB0aGF0IHRleHQgZHJhd24gd2l0aCB0ZXh0LXNoYWRvd3Mgb2YgcmFkaXVzIDAg
YW5kICgwLCAwKSBvZmZzZXQgYXJlIG5vdCBkcmF3bi4KLVRoaXMgaXMgYSBiZXR0ZXIgb3V0Y29t
ZSB0aGFuIHRoZW0gYmVpbmcgZHJhd24gaW4gYW4gdWdseSB3YXkuCi1UaGlzIHRlc3QgaXMgc3Vj
Y2Vzc2Z1bCBpZiB0aGUgdGV4dCBiZWxvdyBpcyBjb21wbGV0ZWx5IGludmlzaWJsZS4KKzxwPlRo
aXMgdGVzdHMgdGhhdCB0ZXh0IGRyYXduIHdpdGggdGV4dC1zaGFkb3dzIG9mIHJhZGl1cyAwIGFu
ZCAoMCwgMCkgb2Zmc2V0IGFyZSBub3QgZHJhd24uPC9wPgorPHA+SW4gdGhlIGZvbGxvd2luZyB0
ZXN0cywgdGhlIGFjdHVhbCB0ZXh0IGlzIGdyZWVuIHdoaWxlIHRoZSBzaGFkb3dzIGFyZSBibHVl
LjwvcD4KKworPGRpdiBzdHlsZT0iY29sb3I6IGdyZWVuOyI+Cis8ZGl2IHN0eWxlPSJ0ZXh0LXNo
YWRvdzogNXB4IDVweCBibHVlOyI+VGV4dCB3aXRoIGEgc2luZ2xlIHNoYWRvdy48L2Rpdj4KKzxk
aXY+VGV4dCB3aXRoIG9uZSBlbXB0eSAodW5kcmF3bikgc2hhZG93LjwvZGl2PgorPGRpdiBzdHls
ZT0idGV4dC1zaGFkb3c6IDVweCA1cHggYmx1ZSwgMTBweCAxMHB4IGJsdWU7Ij5UZXh0IHdpdGgg
dHdvIHNoYWRvd3M8L2Rpdj4KKzxkaXYgc3R5bGU9InRleHQtc2hhZG93OiA1cHggNXB4IGJsdWU7
Ij5UZXh0IHdpdGggdHdvIHNoYWRvd3M6IGZpcnN0IGRyYXduIGFuZCBzZWNvbmQgZW1wdHkgKHVu
ZHJhd24pLjwvZGl2PgorPGRpdiBzdHlsZT0idGV4dC1zaGFkb3c6IDEwcHggMTBweCBibHVlOyI+
VGV4dCB3aXRoIHR3byBzaGFkb3dzOiBmaXJzdCBlbXB0eSAodW5kcmF3bikgYW5kIHNlY29uZCBk
cmF3bi48L2Rpdj4KKzxkaXY+VGV4dCB3aXRoIHR3byBlbXB0eSAodW5kcmF3bikgc2hhZG93cy48
L2Rpdj4KKzwvZGl2PgorCis8ZGl2IHN0eWxlPSJjb2xvcjogdHJhbnNwYXJlbnQ7Ij4KKzxkaXYg
c3R5bGU9InRleHQtc2hhZG93OiA1cHggNXB4IGJsdWU7Ij5UcmFuc3BhcmVudCB0ZXh0IHdpdGgg
YSBzaW5nbGUgc2hhZG93LjwvZGl2PgorPGRpdiBzdHlsZT0iY29sb3I6IGJsdWU7Ij5UcmFuc3Bh
cmVudCB0ZXh0IHdpdGggb25lIGVtcHR5IHNoYWRvdy48L2Rpdj4KKzxkaXYgc3R5bGU9InRleHQt
c2hhZG93OiA1cHggNXB4IGJsdWUsIDEwcHggMTBweCBibHVlOyI+VHJhbnNwYXJlbnQgdGV4dCB3
aXRoIHR3byBzaGFkb3dzPC9kaXY+Cis8ZGl2IHN0eWxlPSJjb2xvcjogYmx1ZTsgdGV4dC1zaGFk
b3c6IDdweCA3cHggYmx1ZTsiPlRyYW5zcGFyZW50IHRleHQgd2l0aCB0d28gc2hhZG93czogZmly
c3QgZHJhd24gYW5kIHNlY29uZCBlbXB0eS48L2Rpdj4KKzxkaXYgc3R5bGU9ImNvbG9yOiBibHVl
OyB0ZXh0LXNoYWRvdzogMTBweCAxMHB4IGJsdWU7Ij5UcmFuc3BhcmVudCB0ZXh0IHdpdGggdHdv
IHNoYWRvd3M6IGZpcnN0IGRyYXduIGFuZCBzZWNvbmQgZW1wdHkuPC9kaXY+Cis8ZGl2IHN0eWxl
PSJjb2xvcjogYmx1ZTsgcG9zaXRpb246IHJlbGF0aXZlOyI+PGRpdiBzdHlsZT0icG9zaXRpb246
IGFic29sdXRlOyBsZWZ0OiAwcHg7IHRvcDogMHB4OyI+VHJhbnNwYXJlbnQgdGV4dCB3aXRoIHR3
byBlbXB0eSBzaGFkb3dzLjwvZGl2PjxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVm
dDogMHB4OyB0b3A6IDBweDsiPlRyYW5zcGFyZW50IHRleHQgd2l0aCB0d28gZW1wdHkgc2hhZG93
cy48L2Rpdj48L2Rpdj4KKzwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0
L2VtcHR5LXNoYWRvdy13aXRoLWNvbG9yLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L3RleHQvZW1wdHktc2hhZG93LXdpdGgtY29sb3ItZXhwZWN0ZWQuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNDVhNGQ5MjBmNzM1Y2NjOGY4NmYyZDc3MDYwNTdiZmRlNDYyZjAz
Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L3RleHQvZW1wdHktc2hhZG93LXdpdGgtY29sb3ItZXhwZWN0ZWQuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDE1ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVh
ZD4KLTxzdHlsZT4KLSN0ZXN0IHsKLSAgICBjb2xvcjogZ3JlZW47Ci0gICAgZm9udC1zaXplOiAx
NnB4OwotfQotPC9zdHlsZT4KLTwvaGVhZD4KLTxib2R5PgotVGhpcyB0ZXN0IG1ha2VzIHN1cmUg
dGhhdCB0ZXh0IGRyYXduIHdpdGggYW4gZW1wdHkgc2hhZG93IGlzIGNvbG9yZWQgY29ycmVjdGx5
LiBJdCBwYXNzZXMgaWYgdGhlIGZvbGxvd2luZyB0ZXh0IGlzIGdyZWVuLgotPGRpdiBpZD0idGVz
dCI+VGhpcyBzaG91bGQgYmUgZ3JlZW4uPC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvZW1wdHktc2hhZG93LXdpdGgtY29sb3IuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvdGV4dC9lbXB0eS1zaGFkb3ctd2l0aC1jb2xvci5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZmRmOTVjM2ZiNzdkOTIxMmRlY2I1ZDIzZmY4MWQ1
OTQ5MzhiNzhhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvdGV4dC9lbXB0eS1zaGFkb3ctd2l0aC1jb2xvci5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFk
PgotPHN0eWxlPgotI3Rlc3QgewotICAgIGNvbG9yOiBncmVlbjsKLSAgICBmb250LXNpemU6IDE2
cHg7Ci0gICAgdGV4dC1zaGFkb3c6IHJlZCAyMHB4IDIwcHgsIHJlZCAwcHggMHB4OwotICAgIG92
ZXJmbG93OiBoaWRkZW47Ci19Ci08L3N0eWxlPgotPC9oZWFkPgotPGJvZHk+Ci1UaGlzIHRlc3Qg
bWFrZXMgc3VyZSB0aGF0IHRleHQgZHJhd24gd2l0aCBhbiBlbXB0eSBzaGFkb3cgaXMgY29sb3Jl
ZCBjb3JyZWN0bHkuIEl0IHBhc3NlcyBpZiB0aGUgZm9sbG93aW5nIHRleHQgaXMgZ3JlZW4uCi08
ZGl2IGlkPSJ0ZXN0Ij5UaGlzIHNob3VsZCBiZSBncmVlbi48L2Rpdj4KLTwvYm9keT4KLTwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9lbXB0eS1zaGFkb3cuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvdGV4dC9lbXB0eS1zaGFkb3cuaHRtbAppbmRleCA0MjdjZGQ4YzYz
YzlhMTgyYTVjMGRmMWFkMjhkMzFkNDRiMjRhM2NmLi4yYjNlNzc4MzRjYWVkMjI5OTllZDgwOGUz
NTUwNDY2ZWZhMGI4NDkxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvZW1wdHkt
c2hhZG93Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2VtcHR5LXNoYWRvdy5odG1s
CkBAIC0xLDQgKzEsMjAgQEAKLVRoaXMgdGVzdHMgdGhhdCB0ZXh0IGRyYXduIHdpdGggdGV4dC1z
aGFkb3dzIG9mIHJhZGl1cyAwIGFuZCAoMCwgMCkgb2Zmc2V0IGFyZSBub3QgZHJhd24uCi1UaGlz
IGlzIGEgYmV0dGVyIG91dGNvbWUgdGhhbiB0aGVtIGJlaW5nIGRyYXduIGluIGFuIHVnbHkgd2F5
LgotVGhpcyB0ZXN0IGlzIHN1Y2Nlc3NmdWwgaWYgdGhlIHRleHQgYmVsb3cgaXMgY29tcGxldGVs
eSBpbnZpc2libGUuCi08ZGl2IHN0eWxlPSJjb2xvcjojZmZmO3RleHQtc2hhZG93OjAgMCAjMDAw
Ij5UaGlzIGlzIHNvbWUgdGV4dDwvZGl2PgorPHA+VGhpcyB0ZXN0cyB0aGF0IHRleHQgZHJhd24g
d2l0aCB0ZXh0LXNoYWRvd3Mgb2YgcmFkaXVzIDAgYW5kICgwLCAwKSBvZmZzZXQgYXJlIG5vdCBk
cmF3bi48L3A+Cis8cD5JbiB0aGUgZm9sbG93aW5nIHRlc3RzLCB0aGUgYWN0dWFsIHRleHQgaXMg
Z3JlZW4gd2hpbGUgdGhlIHNoYWRvd3MgYXJlIGJsdWUuPC9wPgorCis8ZGl2IHN0eWxlPSJjb2xv
cjogZ3JlZW47Ij4KKzxkaXYgc3R5bGU9InRleHQtc2hhZG93OiA1cHggNXB4IGJsdWU7Ij5UZXh0
IHdpdGggYSBzaW5nbGUgc2hhZG93LjwvZGl2PgorPGRpdiBzdHlsZT0idGV4dC1zaGFkb3c6IDBw
eCAwcHggYmx1ZTsiPlRleHQgd2l0aCBvbmUgZW1wdHkgKHVuZHJhd24pIHNoYWRvdy48L2Rpdj4K
KzxkaXYgc3R5bGU9InRleHQtc2hhZG93OiA1cHggNXB4IGJsdWUsIDEwcHggMTBweCBibHVlOyI+
VGV4dCB3aXRoIHR3byBzaGFkb3dzPC9kaXY+Cis8ZGl2IHN0eWxlPSJ0ZXh0LXNoYWRvdzogNXB4
IDVweCBibHVlLCAwcHggMHB4IGJsdWU7Ij5UZXh0IHdpdGggdHdvIHNoYWRvd3M6IGZpcnN0IGRy
YXduIGFuZCBzZWNvbmQgZW1wdHkgKHVuZHJhd24pLjwvZGl2PgorPGRpdiBzdHlsZT0idGV4dC1z
aGFkb3c6IDBweCAwcHggYmx1ZSwgMTBweCAxMHB4IGJsdWU7Ij5UZXh0IHdpdGggdHdvIHNoYWRv
d3M6IGZpcnN0IGVtcHR5ICh1bmRyYXduKSBhbmQgc2Vjb25kIGRyYXduLjwvZGl2PgorPGRpdiBz
dHlsZT0idGV4dC1zaGFkb3c6IDBweCAwcHggYmx1ZSwgMHB4IDBweCBibHVlOyI+VGV4dCB3aXRo
IHR3byBlbXB0eSAodW5kcmF3bikgc2hhZG93cy48L2Rpdj4KKzwvZGl2PgorCis8ZGl2IHN0eWxl
PSJjb2xvcjogdHJhbnNwYXJlbnQ7Ij4KKzxkaXYgc3R5bGU9InRleHQtc2hhZG93OiA1cHggNXB4
IGJsdWU7Ij5UcmFuc3BhcmVudCB0ZXh0IHdpdGggYSBzaW5nbGUgc2hhZG93LjwvZGl2PgorPGRp
diBzdHlsZT0idGV4dC1zaGFkb3c6IDBweCAwcHggYmx1ZTsiPlRyYW5zcGFyZW50IHRleHQgd2l0
aCBvbmUgZW1wdHkgc2hhZG93LjwvZGl2PgorPGRpdiBzdHlsZT0idGV4dC1zaGFkb3c6IDVweCA1
cHggYmx1ZSwgMTBweCAxMHB4IGJsdWU7Ij5UcmFuc3BhcmVudCB0ZXh0IHdpdGggdHdvIHNoYWRv
d3M8L2Rpdj4KKzxkaXYgc3R5bGU9InRleHQtc2hhZG93OiA3cHggN3B4IGJsdWUsIDBweCAwcHgg
Ymx1ZTsiPlRyYW5zcGFyZW50IHRleHQgd2l0aCB0d28gc2hhZG93czogZmlyc3QgZHJhd24gYW5k
IHNlY29uZCBlbXB0eS48L2Rpdj4KKzxkaXYgc3R5bGU9InRleHQtc2hhZG93OiAwcHggMHB4IGJs
dWUsIDEwcHggMTBweCBibHVlOyI+VHJhbnNwYXJlbnQgdGV4dCB3aXRoIHR3byBzaGFkb3dzOiBm
aXJzdCBkcmF3biBhbmQgc2Vjb25kIGVtcHR5LjwvZGl2PgorPGRpdiBzdHlsZT0idGV4dC1zaGFk
b3c6IDBweCAwcHggYmx1ZSwgMHB4IDBweCBibHVlOyI+VHJhbnNwYXJlbnQgdGV4dCB3aXRoIHR3
byBlbXB0eSBzaGFkb3dzLjwvZGl2PgorPC9kaXY+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238236</attachid>
            <date>2014-09-16 21:04:23 -0700</date>
            <delta_ts>2014-09-22 19:21:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136801-20140916210420.patch</filename>
            <type>text/plain</type>
            <size>20822</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTczNjg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2RmZjZlNmVlMTMzOWM5
N2M5YWY5YWMzNTdjZGM0MDZlZWEwNWNlOC4uYmFhMDI4ODZmNzQ1MTFlNGVkZjA5NDRiMjJkMjVi
YmMwNDBmZTA1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDE0LTA5LTE2ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lP
TjogVGV4dCB3aXRoIGEgemVybyBvZmZzZXQsIHplcm8gYmx1ciBzaGFkb3cgdmFuaXNoZXMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNjgwMQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
cGVyZm9ybXMgc29tZSBjbGVhbnVwIHJlZ2FyZGluZyBUZXh0UGFpbnRlcidzIHNoYWRvdyBsb2dp
YyBhbmQgaGFuZGxlcyBhbgorICAgICAgICBhZGRpdGlvbmFsIGNhc2Ugb2YgZW1wdHkgc2hhZG93
cy4gUHJldmlvdXNseSwgdGhlcmUgd2FzIHRpZ2h0IGNvdXBsaW5nIGJldHdlZW4KKyAgICAgICAg
YXBwbHlTaGFkb3dUb0dyYXBoaWNhbENvbnRleHQoKSBhbmQgcGFpbnRUZXh0V2l0aFNoYWRvd3Mo
KSwgYXMgdGhleSBib3RoIHVzZWQgYQorICAgICAgICBjb2xsZWN0aW9uIG9mIHZhcmlhYmxlcyB0
byBkZXRlcm1pbmUgaG93IHNoYWRvd3MgYXJlIHRvIGJlIGRyYXduLgorCisgICAgICAgIEdyYXBo
aWNzQ29udGV4dCBhbGxvd3MgdXMgdG8gcHV0IG9uZSBzaGFkb3cgb24gdGV4dCwgYnV0IHRoZSBD
U1Mgc3BlYyBhbGxvd3MgZm9yIGEgc2VyaWVzCisgICAgICAgIG9mIHNoYWRvd3MuIFdlIGFsbG93
IGZvciB0aGlzIGJ5IGxvb3Bpbmcgb3ZlciBldmVyeSBzaGFkb3cgaW4gdGhlIGxpc3QsIGFwcGx5
aW5nIGEKKyAgICAgICAgc2hhZG93LCBhbmQgZHJhd2luZyB0ZXh0LiBIb3dldmVyLCBpbiBvcmRl
ciB0byBhdm9pZCBkcmF3aW5nIHRoZSBtYWluIHRleHQgaXRzZWxmIG11bHRpcGxlCisgICAgICAg
IHRpbWVzIG9uIHRvcCBvZiBpdHNlbGYsIHdlIGNsaXAgdGhlIGNvbnRleHQgdG8gdGhlIHNoYWRv
d2VkIHJlZ2lvbiwgdGhlbiBkcmF3IHRoZSB0ZXh0CisgICAgICAgIGluIHNvbWUgYXJiaXRyYXJ5
IHBsYWNlIHRoYXQgaXMgb3V0c2lkZSBvZiB0aGUgY2xpcCByZWdpb24uIFdlIHRoZXJlZm9yZSBn
aXZlIGEgdmVjdG9yCisgICAgICAgIGZyb20gdGhpcyBhcmJpdHJhcnkgcGxhY2UgdG8gdGhlIHNo
YWRvdyBsb2NhdGlvbiB0byB0aGUgR3JhcGhpY3NDb250ZXh0IGFzIHRoZSBzaGFkb3cKKyAgICAg
ICAgb2Zmc2V0LiBIb3dldmVyLCB3ZSBoYXZlIGFuIG9wdGltaXphdGlvbiB0byBhbGxvdyB1cyB0
byBkcmF3IHRoZSB0ZXh0IGl0c2VsZiBkdXJpbmcgdGhlCisgICAgICAgIGxhc3QgaXRlcmF0aW9u
IG9mIHRoaXMgbG9vcCwgd2hpY2ggbWVhbnMgd2UgZG9uJ3QgZG8gYW55IG9mIHRoZSBhZm9yZW1l
bnRpb25lZCBjbGlwcGluZy4KKyAgICAgICAgVGhpcyBvcHRpbWl6YXRpb24gaXMgcHJlZGljYXRl
ZCBvbiB0aGUgbWFpbiB0ZXh0IGJlaW5nIG9wYXF1ZSBhbmQgbm9uLXN0cm9rZWQuIE90aGVyd2lz
ZSwKKyAgICAgICAgYW4gYWRkaXRpb25hbCBpdGVyYXRpb24gb2YgdGhlIGxvb3AgaXMgcGVyZm9y
bWVkICh0aGlzIGV4dHJhIGl0ZXJhdGlvbiBpcyBjb25jZXB0dWFsbHkgdGhlCisgICAgICAgIHNh
bWUgYXMgdGhlIGNhc2Ugd2hlcmUgdGhlcmUgaXMgbm8gc2hhZG93IHNwZWNpZmllZCBhdCBhbGwp
LgorCisgICAgICAgIFJlZ2FyZGluZyB0aGUgb3JpZ2luYWwgaW50ZW50IG9mIHRoaXMgc2V0IG9m
IHBhdGNoZXMgKG5vdCBkcmF3aW5nIGVtcHR5IHNoYWRvd3MpLCB0aGVyZQorICAgICAgICBhcmUg
dHdvIGNhc2VzOiB3aGVuIHdlIGFyZSBvbmx5IGRyYXdpbmcgdGhlIHNoYWRvdyB3aXRoIG91dCB0
aGUgbWFpbiB0ZXh0LCBpbiB3aGljaCBjYXNlCisgICAgICAgIHRoZSBlbnRpcmUgbG9vcCBpdGVy
YXRpb24gY2FuIGJlIGF2b2lkZWQsIGFuZCB0aGUgY2FzZSB3aGVyZSBib3RoIHRoZSBzaGFkb3cg
YW5kIG1haW4KKyAgICAgICAgdGV4dCBhcmUgYmVpbmcgZHJhd24gYXQgb25jZSwgd2hlcmUgd2Ug
aGF2ZSB0byBkcmF3IHRoZSBtYWluIHRleHQgd2l0aG91dCB0aGUgc2hhZG93LgorICAgICAgICBQ
cmV2aW91c2x5LCBvbmx5IHRoZSBmaXJzdCBjYXNlIHdhcyBoYW5kbGVkOyB0aGlzIHBhdGNoIGhh
bmRsZXMgdGhlIHNlY29uZCBjYXNlIGFzIHdlbGwuCisKKyAgICAgICAgVGhpcyBwYXRjaCBtb3Zl
cyBhcHBseVNoYWRvd1RvR3JhcGhpY3NDb250ZXh0IHNvIHRoYXQgdGhlIHR3byBmdW5jdGlvbnMg
YXJlIHBoeXNpY2FsbHkKKyAgICAgICAgY2xvc2UgdG9nZXRoZXIuIEkgYWxzbyBjaGFuZ2VkIHRo
ZSBzZW1hbnRpY3Mgb2YgdGhlIGZsYWdzIHRvIGJlIG1vcmUgdW5kZXJzdGFuZGFibGUgdG8KKyAg
ICAgICAgdGhlIGFsZ29yaXRobSBkZXNjcmliZWQgYWJvdmUuIEdpdmVuIHRoZXNlIG5ldyBmbGFn
cywgSSByZW1vdmVkIHRoZSBkaWRTYXZlQ29udGV4dCBvdXQKKyAgICAgICAgcGFyYW0gdG8gYXBw
bHlTaGFkb3dUb0dyYXBoaWNzQ29udGV4dCgpLCB3aGljaCBpcyBub3cgY29uY2VwdHVhbGx5IGlk
ZW50aWNhbCBhcyBvbmUgb2YKKyAgICAgICAgdGhlIGlucHV0cywgb25seURyYXdzU2hhZG93LiBU
aGVzZSBuZXcgZmxhZ3Mgd2lsbCBob3BlZnVsbHkgaW5jcmVhc2UgdGhlIHJlYWRhYmlsaXR5IG9m
CisgICAgICAgIHRoaXMgc2VjdGlvbiBvZiB0aGUgY29kZSBmb3IgZnV0dXJlIGRldmVsb3BlcnMg
c28gdGhhdCB0aGVzZSBtaXN0YWtlcyBJIGhhdmUgbWFkZSB3aWxsIG5vdAorICAgICAgICBiZSBy
ZXBlYXRlZC4KKworICAgICAgICBUZXN0OiBmYXN0L3RleHQvZW1wdHktc2hhZG93Lmh0bWw6IFVw
ZGF0ZWQgdG8gdGVzdCB0aGlzIGNhc2UgYXMgd2VsbCBhcyBhIGNvbGxlY3Rpb24gb2YKKyAgICAg
ICAgb3RoZXIgY2FzZXMuCisKKyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94OjphcHBseVNoYWRvd1RvR3JhcGhpY3ND
b250ZXh0KTogTW92ZWQgdG8gVGV4dFBhaW50ZXIuCisgICAgICAgICogcmVuZGVyaW5nL0lubGlu
ZVRleHRCb3guaDogTW92ZWQgYXBwbHlTaGFkb3dUb0dyYXBoaWNzQ29udGV4dCgpIHRvIFRleHRQ
YWludGVyLgorICAgICAgICAqIHJlbmRlcmluZy9UZXh0UGFpbnRlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpUZXh0UGFpbnRlcjo6YXBwbHlTaGFkb3dUb0dyYXBoaWNzQ29udGV4dCk6IE1vdmVk
IGZyb20gSW5saW5lVGV4dEJveC4gVXNpbmcKKyAgICAgICAgZW51bSBjbGFzc2VzIGluc3RlYWQg
b2YgYm9vbGVhbiBhcmd1bWVudHMuIFRoZSBzZW1hbnRpY3Mgb2YgdGhlc2UgYXJndW1lbnRzIGhh
dmUgY2hhbmdlZAorICAgICAgICBzbyBhcyB0byBtYWtlIHRoZSBhbGdvcml0aG0gbW9yZSB1bmRl
cnN0YW5kYWJsZS4gSW4gYWRkaXRpb24sIGNoZWNrIGZvciB0aGUgc2Vjb25kCisgICAgICAgIGNh
c2UgYWJvdmUgcmVnYXJkaW5nIGVtcHR5IHNoYWRvd3MgYW5kIGRvbid0IGRyYXcgc2hhZG93IGlm
IHRoYXQgY2FzZSBvY2N1cnMuCisgICAgICAgIChXZWJDb3JlOjpwYWludFRleHRXaXRoU2hhZG93
cyk6IFVzZSBlbnVtIGNsYXNzZXMgdG8gcmVwcmVzZW50IGZsYWdzIHRoYXQgd2VyZSBkZXNjcmli
ZWQKKyAgICAgICAgZWFybGllci4KKyAgICAgICAgKFdlYkNvcmU6OmlzRW1wdHlTaGFkb3cpOiBN
b3ZlZCB0byBoZWFkZXIuCisgICAgICAgICogcmVuZGVyaW5nL1RleHRQYWludGVyLmg6CisgICAg
ICAgIChXZWJDb3JlOjpUZXh0UGFpbnRlcjo6aXNMYXN0U2hhZG93SXRlcmF0aW9uKTogQ29udmVu
aWVuY2UgZnVuY3Rpb24uCisgICAgICAgIChXZWJDb3JlOjpUZXh0UGFpbnRlcjo6aXNFbXB0eVNo
YWRvdyk6IERpdHRvLiBOZWVkcyB0byBrbm93IHdoZXRoZXIgb3Igbm90IHRoZSBtYWluIHRleHQK
KyAgICAgICAgaXMgb3BhcXVlIGJlY2F1c2Ugb3RoZXJ3aXNlIHNoYWRvd3MgYXJlIGFsd2F5cyB2
aXNpYmxlICh0aGVyZWZvcmUgbmV2ZXIgZW1wdHkpLgorICAgICAgICAqIHJlbmRlcmluZy9zdmcv
U1ZHSW5saW5lVGV4dEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdJbmxpbmVUZXh0Qm94
OjpwYWludFRleHRXaXRoU2hhZG93cyk6IFVwZGF0ZSB0byBuZXcgc2lnbmF0dXJlIG9mCisgICAg
ICAgIGFwcGx5U2hhZG93VG9HcmFwaGljc0NvbnRleHQoKS4KKwogMjAxNC0wOS0xNiAgQ2hyaXMg
RHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbmFtZSBOb2RlOjpjaGlsZE5v
ZGUoaW5kZXgpIHRvIHRyYXZlcnNlVG9DaGlsZEF0KGluZGV4KSBmb3IgY2xhcml0eQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCmluZGV4IDI2MDBjYWE3ZTlkZjc5
MGI2NDM4Y2I1MjY5NGFkYWI4YzJjYTVhZDUuLmIyZGE1OGJiNTVjZjkwYTYxZWViODgwNGQ5YzIw
YWExZGNhNDlmZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVU
ZXh0Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5j
cHAKQEAgLTQyNCwzNCArNDI0LDYgQEAgYm9vbCBJbmxpbmVUZXh0Qm94Ojpub2RlQXRQb2ludChj
b25zdCBIaXRUZXN0UmVxdWVzdCYgcmVxdWVzdCwgSGl0VGVzdFJlc3VsdCYgcmUKICAgICByZXR1
cm4gZmFsc2U7CiB9CiAKLUZsb2F0U2l6ZSBJbmxpbmVUZXh0Qm94OjphcHBseVNoYWRvd1RvR3Jh
cGhpY3NDb250ZXh0KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgU2hhZG93RGF0YSog
c2hhZG93LCBjb25zdCBGbG9hdFJlY3QmIHRleHRSZWN0LCBib29sIHN0cm9rZWQsIGJvb2wgb3Bh
cXVlLCBib29sIGhvcml6b250YWwsIGJvb2wmIGRpZFNhdmVDb250ZXh0KQotewotICAgIGlmICgh
c2hhZG93KQotICAgICAgICByZXR1cm4gRmxvYXRTaXplKCk7Ci0KLSAgICBGbG9hdFNpemUgZXh0
cmFPZmZzZXQ7Ci0gICAgaW50IHNoYWRvd1ggPSBob3Jpem9udGFsID8gc2hhZG93LT54KCkgOiBz
aGFkb3ctPnkoKTsKLSAgICBpbnQgc2hhZG93WSA9IGhvcml6b250YWwgPyBzaGFkb3ctPnkoKSA6
IC1zaGFkb3ctPngoKTsKLSAgICBGbG9hdFNpemUgc2hhZG93T2Zmc2V0KHNoYWRvd1gsIHNoYWRv
d1kpOwotICAgIGludCBzaGFkb3dSYWRpdXMgPSBzaGFkb3ctPnJhZGl1cygpOwotICAgIGNvbnN0
IENvbG9yJiBzaGFkb3dDb2xvciA9IHNoYWRvdy0+Y29sb3IoKTsKLQotICAgIGlmIChzaGFkb3ct
Pm5leHQoKSB8fCBzdHJva2VkIHx8ICFvcGFxdWUpIHsKLSAgICAgICAgRmxvYXRSZWN0IHNoYWRv
d1JlY3QodGV4dFJlY3QpOwotICAgICAgICBzaGFkb3dSZWN0LmluZmxhdGUoc2hhZG93LT5wYWlu
dGluZ0V4dGVudCgpKTsKLSAgICAgICAgc2hhZG93UmVjdC5tb3ZlKHNoYWRvd09mZnNldCk7Ci0g
ICAgICAgIGNvbnRleHQuc2F2ZSgpOwotICAgICAgICBjb250ZXh0LmNsaXAoc2hhZG93UmVjdCk7
Ci0KLSAgICAgICAgZXh0cmFPZmZzZXQgPSBGbG9hdFNpemUoMCwgMiAqIHRleHRSZWN0LmhlaWdo
dCgpICsgc3RkOjptYXgoMC4wZiwgc2hhZG93T2Zmc2V0LmhlaWdodCgpKSArIHNoYWRvd1JhZGl1
cyk7Ci0gICAgICAgIHNoYWRvd09mZnNldCAtPSBleHRyYU9mZnNldDsKLSAgICAgICAgZGlkU2F2
ZUNvbnRleHQgPSB0cnVlOwotICAgIH0KLQotICAgIGNvbnRleHQuc2V0U2hhZG93KHNoYWRvd09m
ZnNldCwgc2hhZG93UmFkaXVzLCBzaGFkb3dDb2xvciwgY29udGV4dC5maWxsQ29sb3JTcGFjZSgp
KTsKLSAgICByZXR1cm4gZXh0cmFPZmZzZXQ7Ci19Ci0KIHN0YXRpYyBpbmxpbmUgYm9vbCBlbXBo
YXNpc1Bvc2l0aW9uSGFzTmVpdGhlckxlZnROb3JSaWdodChUZXh0RW1waGFzaXNQb3NpdGlvbiBl
bXBoYXNpc1Bvc2l0aW9uKQogewogICAgIHJldHVybiAhKGVtcGhhc2lzUG9zaXRpb24gJiBUZXh0
RW1waGFzaXNQb3NpdGlvbkxlZnQpICYmICEoZW1waGFzaXNQb3NpdGlvbiAmIFRleHRFbXBoYXNp
c1Bvc2l0aW9uUmlnaHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lu
bGluZVRleHRCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmgK
aW5kZXggZTg5YTJjZDljN2Y5ODg5OWFiNDczZWZiNzQyN2UzODQ2NGE3OWM5Yi4uNmY4MThjNDVi
MTdiYmZhODc3MjI3ZjIzN2E0NjcxOTM1NzFhYjQ0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvSW5saW5lVGV4dEJveC5oCkBAIC0xNTQsOSArMTU0LDYgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgaW50IG9mZnNldEZvclBvc2l0aW9uKGZsb2F0IHgsIGJvb2wgaW5jbHVkZVBhcnRpYWxHbHlw
aHMgPSB0cnVlKSBjb25zdDsKICAgICB2aXJ0dWFsIGZsb2F0IHBvc2l0aW9uRm9yT2Zmc2V0KGlu
dCBvZmZzZXQpIGNvbnN0OwogCi0gICAgLy8gTmVlZHMgdG8gYmUgcHVibGljLCBzbyB0aGUgc3Rh
dGljIHBhaW50VGV4dFdpdGhTaGFkb3dzKCkgZnVuY3Rpb24gY2FuIHVzZSBpdC4KLSAgICBzdGF0
aWMgRmxvYXRTaXplIGFwcGx5U2hhZG93VG9HcmFwaGljc0NvbnRleHQoR3JhcGhpY3NDb250ZXh0
JiwgY29uc3QgU2hhZG93RGF0YSosIGNvbnN0IEZsb2F0UmVjdCYgdGV4dFJlY3QsIGJvb2wgc3Ry
b2tlZCwgYm9vbCBvcGFxdWUsIGJvb2wgaG9yaXpvbnRhbCwgYm9vbCYgZGlkU2F2ZUNvbnRleHQp
OwotCiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBwYWludENvbXBvc2l0aW9uQmFja2dyb3VuZChHcmFw
aGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFBvaW50JiBib3hPcmlnaW4sIGNvbnN0IFJlbmRlclN0
eWxlJiwgY29uc3QgRm9udCYsIGludCBzdGFydFBvcywgaW50IGVuZFBvcyk7CiAgICAgdm9pZCBw
YWludERvY3VtZW50TWFya2VycyhHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFBvaW50JiBi
b3hPcmlnaW4sIGNvbnN0IFJlbmRlclN0eWxlJiwgY29uc3QgRm9udCYsIGJvb2wgYmFja2dyb3Vu
ZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dFBhaW50ZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRQYWludGVyLmNwcAppbmRleCBmYTFkNzlh
MDBmOWYxOTJiOGM4YmYxYTI0Nzc0ZGY0NGU4ZjdmNWM0Li5lY2UwZTlmZWRlOGZhMWMyY2UyMmI2
NTY1NTIzNjU0MTJiYWQxNGMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
VGV4dFBhaW50ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFpbnRl
ci5jcHAKQEAgLTY1LDExICs2NSwzMiBAQCBzdGF0aWMgdm9pZCBkcmF3VGV4dE9yRW1waGFzaXNN
YXJrcyhHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZvbnQmIGZvbnQsCiAgICAgICAg
IGNvbnRleHQuZHJhd0VtcGhhc2lzTWFya3MoZm9udCwgdGV4dFJ1biwgZW1waGFzaXNNYXJrLCBw
b2ludCArIEludFNpemUoMCwgZW1waGFzaXNNYXJrT2Zmc2V0KSwgZnJvbSwgdG8pOwogfQogCi1z
dGF0aWMgYm9vbCBpc0VtcHR5U2hhZG93KGNvbnN0IFNoYWRvd0RhdGEqIHNoYWRvdykKK0Zsb2F0
U2l6ZSBUZXh0UGFpbnRlcjo6YXBwbHlTaGFkb3dUb0dyYXBoaWNzQ29udGV4dChHcmFwaGljc0Nv
bnRleHQmIGNvbnRleHQsIGNvbnN0IFNoYWRvd0RhdGEmIHNoYWRvdywgY29uc3QgRmxvYXRSZWN0
JiB0ZXh0UmVjdCwgYm9vbCBvbmx5RHJhd3NTaGFkb3csIGJvb2wgc2hhZG93SXNFbXB0eSwgRm9u
dE9yaWVudGF0aW9uIG9yaWVudGF0aW9uKQogewotICAgIGlmICghc2hhZG93KQotICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIHNoYWRvdy0+bG9jYXRpb24oKSA9PSBJbnRQb2ludCgp
ICYmICFzaGFkb3ctPnJhZGl1cygpOworICAgIEZsb2F0U2l6ZSBleHRyYU9mZnNldDsKKyAgICBp
bnQgc2hhZG93WCA9IG9yaWVudGF0aW9uID09IEhvcml6b250YWwgPyBzaGFkb3cueCgpIDogc2hh
ZG93LnkoKTsKKyAgICBpbnQgc2hhZG93WSA9IG9yaWVudGF0aW9uID09IEhvcml6b250YWwgPyBz
aGFkb3cueSgpIDogLXNoYWRvdy54KCk7CisgICAgRmxvYXRTaXplIHNoYWRvd09mZnNldChzaGFk
b3dYLCBzaGFkb3dZKTsKKyAgICBpbnQgc2hhZG93UmFkaXVzID0gc2hhZG93LnJhZGl1cygpOwor
ICAgIGNvbnN0IENvbG9yJiBzaGFkb3dDb2xvciA9IHNoYWRvdy5jb2xvcigpOworCisgICAgLy8g
V2hlbiBkcmF3aW5nIHNoYWRvd3MsIHdlIHVzdWFsbHkgY2xpcCB0aGUgY29udGV4dCB0byB0aGUg
YXJlYSB0aGUgc2hhZG93IHdpbGwgcmVzaWRlLCBhbmQgdGhlbgorICAgIC8vIGRyYXcgdGhlIHRl
eHQgaXRzZWxmIG91dHNpZGUgdGhlIGNsaXBwZWQgYXJlYSAoc28gb25seSB0aGUgc2hhZG93IHNo
b3dzIHVwKS4gSG93ZXZlciwgd2UgY2FuCisgICAgLy8gb2Z0ZW4gZHJhdyB0aGUgOjpsYXN0Ojog
c2hhZG93IGFuZCB0aGUgdGV4dCBpdHNlbGYgaW4gYSBzaW5nbGUgY2FsbC4KKyAgICBpZiAoIW9u
bHlEcmF3c1NoYWRvdykgeworICAgICAgICBGbG9hdFJlY3Qgc2hhZG93UmVjdCh0ZXh0UmVjdCk7
CisgICAgICAgIHNoYWRvd1JlY3QuaW5mbGF0ZShzaGFkb3cucGFpbnRpbmdFeHRlbnQoKSk7Cisg
ICAgICAgIHNoYWRvd1JlY3QubW92ZShzaGFkb3dPZmZzZXQpOworICAgICAgICBjb250ZXh0LnNh
dmUoKTsKKyAgICAgICAgY29udGV4dC5jbGlwKHNoYWRvd1JlY3QpOworCisgICAgICAgIGV4dHJh
T2Zmc2V0ID0gRmxvYXRTaXplKDAsIDIgKiB0ZXh0UmVjdC5oZWlnaHQoKSArIHN0ZDo6bWF4KDAu
MGYsIHNoYWRvd09mZnNldC5oZWlnaHQoKSkgKyBzaGFkb3dSYWRpdXMpOworICAgICAgICBzaGFk
b3dPZmZzZXQgLT0gZXh0cmFPZmZzZXQ7CisgICAgfQorCisgICAgaWYgKCFzaGFkb3dJc0VtcHR5
KQorICAgICAgICBjb250ZXh0LnNldFNoYWRvdyhzaGFkb3dPZmZzZXQsIHNoYWRvd1JhZGl1cywg
c2hhZG93Q29sb3IsIGNvbnRleHQuZmlsbENvbG9yU3BhY2UoKSk7CisgICAgcmV0dXJuIGV4dHJh
T2Zmc2V0OwogfQogCiBzdGF0aWMgdm9pZCBwYWludFRleHRXaXRoU2hhZG93cyhHcmFwaGljc0Nv
bnRleHQmIGNvbnRleHQsIGNvbnN0IEZvbnQmIGZvbnQsIGNvbnN0IFRleHRSdW4mIHRleHRSdW4s
IGNvbnN0IEF0b21pY1N0cmluZyYgZW1waGFzaXNNYXJrLApAQCAtNzksMTkgKzEwMCwyMSBAQCBz
dGF0aWMgdm9pZCBwYWludFRleHRXaXRoU2hhZG93cyhHcmFwaGljc0NvbnRleHQmIGNvbnRleHQs
IGNvbnN0IEZvbnQmIGZvbnQsIGNvbgogICAgIENvbG9yIGZpbGxDb2xvciA9IGNvbnRleHQuZmls
bENvbG9yKCk7CiAgICAgQ29sb3JTcGFjZSBmaWxsQ29sb3JTcGFjZSA9IGNvbnRleHQuZmlsbENv
bG9yU3BhY2UoKTsKICAgICBib29sIG9wYXF1ZSA9ICFmaWxsQ29sb3IuaGFzQWxwaGEoKTsKKyAg
ICBib29sIGxhc3RTaGFkb3dJdGVyYXRpb25EcmF3c1RleHQgPSAhc3Ryb2tlZCAmJiBvcGFxdWU7
CiAgICAgaWYgKCFvcGFxdWUpCiAgICAgICAgIGNvbnRleHQuc2V0RmlsbENvbG9yKENvbG9yOjpi
bGFjaywgZmlsbENvbG9yU3BhY2UpOwogCiAgICAgZG8gewotICAgICAgICBpZiAoaXNFbXB0eVNo
YWRvdyhzaGFkb3cpKSB7CisgICAgICAgIGJvb2wgZW1wdHlTaGFkb3cgPSBUZXh0UGFpbnRlcjo6
aXNFbXB0eVNoYWRvdyhzaGFkb3csIG9wYXF1ZSk7CisgICAgICAgIGJvb2wgb25seURyYXdzU2hh
ZG93ID0gVGV4dFBhaW50ZXI6OmlzTGFzdFNoYWRvd0l0ZXJhdGlvbihzaGFkb3cpICYmIGxhc3RT
aGFkb3dJdGVyYXRpb25EcmF3c1RleHQ7CisgICAgICAgIGlmIChlbXB0eVNoYWRvdyAmJiAhb25s
eURyYXdzU2hhZG93KSB7CiAgICAgICAgICAgICBzaGFkb3cgPSBzaGFkb3ctPm5leHQoKTsKICAg
ICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKICAgICAgICAgSW50U2l6ZSBleHRyYU9m
ZnNldDsKLSAgICAgICAgYm9vbCBkaWRTYXZlQ29udGV4dCA9IGZhbHNlOwogICAgICAgICBpZiAo
c2hhZG93KQotICAgICAgICAgICAgZXh0cmFPZmZzZXQgPSByb3VuZGVkSW50U2l6ZShJbmxpbmVU
ZXh0Qm94OjphcHBseVNoYWRvd1RvR3JhcGhpY3NDb250ZXh0KGNvbnRleHQsIHNoYWRvdywgYm94
UmVjdCwgc3Ryb2tlZCwgb3BhcXVlLCBob3Jpem9udGFsLCBkaWRTYXZlQ29udGV4dCkpOworICAg
ICAgICAgICAgZXh0cmFPZmZzZXQgPSByb3VuZGVkSW50U2l6ZShUZXh0UGFpbnRlcjo6YXBwbHlT
aGFkb3dUb0dyYXBoaWNzQ29udGV4dChjb250ZXh0LCAqc2hhZG93LCBib3hSZWN0LCBvbmx5RHJh
d3NTaGFkb3csIGVtcHR5U2hhZG93LCBob3Jpem9udGFsID8gSG9yaXpvbnRhbCA6IFZlcnRpY2Fs
KSk7CiAgICAgICAgIGVsc2UgaWYgKCFvcGFxdWUpCiAgICAgICAgICAgICBjb250ZXh0LnNldEZp
bGxDb2xvcihmaWxsQ29sb3IsIGZpbGxDb2xvclNwYWNlKTsKIApAQCAtMTA3LDEzICsxMzAsMTMg
QEAgc3RhdGljIHZvaWQgcGFpbnRUZXh0V2l0aFNoYWRvd3MoR3JhcGhpY3NDb250ZXh0JiBjb250
ZXh0LCBjb25zdCBGb250JiBmb250LCBjb24KICAgICAgICAgaWYgKCFzaGFkb3cpCiAgICAgICAg
ICAgICBicmVhazsKIAotICAgICAgICBpZiAoZGlkU2F2ZUNvbnRleHQpCi0gICAgICAgICAgICBj
b250ZXh0LnJlc3RvcmUoKTsKKyAgICAgICAgaWYgKCFvbmx5RHJhd3NTaGFkb3cpCisgICAgICAg
ICAgICBjb250ZXh0LnJlc3RvcmUoKTsgLy8gTWF0Y2hpbmcgY2FsbCB0byBjb250ZXh0LnNhdmUo
KSBpbiBhcHBseVNoYWRvd1RvR3JhcGhpY3NDb250ZXh0CiAgICAgICAgIGVsc2UKICAgICAgICAg
ICAgIGNvbnRleHQuY2xlYXJTaGFkb3coKTsKIAogICAgICAgICBzaGFkb3cgPSBzaGFkb3ctPm5l
eHQoKTsKLSAgICB9IHdoaWxlIChzaGFkb3cgfHwgc3Ryb2tlZCB8fCAhb3BhcXVlKTsKKyAgICB9
IHdoaWxlIChzaGFkb3cgfHwgIWxhc3RTaGFkb3dJdGVyYXRpb25EcmF3c1RleHQpOwogfQogCiB2
b2lkIFRleHRQYWludGVyOjpwYWludFRleHQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1RleHRQYWludGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dFBh
aW50ZXIuaAppbmRleCA5NmY4M2FhMmIzMTM0MTk2NmQzNmY1OTM0YjhhNTc2YzNkMDQwN2Q3Li44
ZmIxMzRmZTc2MmVlNWFmNjBkZmU0MTE4YzE2ZDg1MzJjNjRiMGEzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dFBhaW50ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvVGV4dFBhaW50ZXIuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjaW5jbHVkZSAiQWZm
aW5lVHJhbnNmb3JtLmgiCiAjaW5jbHVkZSAiRGFzaEFycmF5LmgiCisjaW5jbHVkZSAiRm9udE9y
aWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CkBAIC00Nyw2ICs0OCwxNyBAQCBwdWJsaWM6CiAgICAgaW50IHN0YXJ0UG9zaXRpb25JblRl
eHRSdW4sIGludCBlbmRQb3NpdGlvbkluVGV4dEJveFN0cmluZywgaW50IGxlbmd0aCwgY29uc3Qg
QXRvbWljU3RyaW5nJiBlbXBoYXNpc01hcmssIFJlbmRlckNvbWJpbmVUZXh0KiwKICAgICBUZXh0
UnVuJiwgRmxvYXRSZWN0JiBib3hSZWN0LCBGbG9hdFBvaW50JiB0ZXh0T3JpZ2luLCBpbnQgZW1w
aGFzaXNNYXJrT2Zmc2V0LCBjb25zdCBTaGFkb3dEYXRhKiB0ZXh0U2hhZG93LCBjb25zdCBTaGFk
b3dEYXRhKiBzZWxlY3Rpb25TaGFkb3csCiAgICAgYm9vbCB0ZXh0Qm94SXNIb3Jpem9udGFsLCBU
ZXh0UGFpbnRTdHlsZSYgbm9uU2VsZWN0aW9uUGFpbnRTdHlsZSwgVGV4dFBhaW50U3R5bGUmIHNl
bGVjdGlvblBhaW50U3R5bGUpOworCisgICAgc3RhdGljIGlubGluZSBib29sIGlzTGFzdFNoYWRv
d0l0ZXJhdGlvbihjb25zdCBTaGFkb3dEYXRhKiBzaGFkb3cpCisgICAgeworICAgICAgICByZXR1
cm4gc2hhZG93ICYmICFzaGFkb3ctPm5leHQoKTsKKyAgICB9CisgICAgc3RhdGljIGlubGluZSBi
b29sIGlzRW1wdHlTaGFkb3coY29uc3QgU2hhZG93RGF0YSogc2hhZG93LCBib29sIHRleHRJc09w
YXF1ZSA9IGZhbHNlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRleHRJc09wYXF1ZSAmJiBzaGFk
b3cgJiYgc2hhZG93LT5sb2NhdGlvbigpID09IEludFBvaW50KCkgJiYgIXNoYWRvdy0+cmFkaXVz
KCk7CisgICAgfQorCisgICAgc3RhdGljIEZsb2F0U2l6ZSBhcHBseVNoYWRvd1RvR3JhcGhpY3ND
b250ZXh0KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IFNoYWRvd0RhdGEmLCBjb25zdCBGbG9hdFJl
Y3QmIHRleHRSZWN0LCBib29sIG9ubHlEcmF3c1NoYWRvdywgYm9vbCBzaGFkb3dJc0VtcHR5LCBG
b250T3JpZW50YXRpb24gPSBIb3Jpem9udGFsKTsKICAgICAKICAgICB2b2lkIHBhaW50VGV4dCgp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR0lubGluZVRl
eHRCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdJbmxpbmVUZXh0Qm94
LmNwcAppbmRleCBjZGVjZGE0NzFhOTA5MmI5ODg4ZGQyNDY1MzQ5ZGY2OTNjMzA2MDVmLi5iNDhj
NzU0MDU2NmEyNmU1Y2NjZjQwYTU4MTMzMjI3MjQ1NjBiYjgxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR0lubGluZVRleHRCb3guY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHSW5saW5lVGV4dEJveC5jcHAKQEAgLTM3LDYgKzM3LDcg
QEAKICNpbmNsdWRlICJTVkdSZXNvdXJjZXNDYWNoZS5oIgogI2luY2x1ZGUgIlNWR1Jvb3RJbmxp
bmVCb3guaCIKICNpbmNsdWRlICJTVkdUZXh0UnVuUmVuZGVyaW5nQ29udGV4dC5oIgorI2luY2x1
ZGUgIlRleHRQYWludGVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTk1LDkgKzU5
Niw5IEBAIHZvaWQgU1ZHSW5saW5lVGV4dEJveDo6cGFpbnRUZXh0V2l0aFNoYWRvd3MoR3JhcGhp
Y3NDb250ZXh0KiBjb250ZXh0LCBSZW5kZXJTdHlsCiAgICAgICAgICAgICBicmVhazsKIAogICAg
ICAgICBGbG9hdFNpemUgZXh0cmFPZmZzZXQ7Ci0gICAgICAgIGJvb2wgZGlkU2F2ZUNvbnRleHQg
PSBmYWxzZTsKKyAgICAgICAgYm9vbCBvbmx5RHJhd3NTaGFkb3cgPSBUZXh0UGFpbnRlcjo6aXNM
YXN0U2hhZG93SXRlcmF0aW9uKHNoYWRvdyk7CiAgICAgICAgIGlmIChzaGFkb3cpCi0gICAgICAg
ICAgICBleHRyYU9mZnNldCA9IGFwcGx5U2hhZG93VG9HcmFwaGljc0NvbnRleHQoKmNvbnRleHQs
IHNoYWRvdywgc2hhZG93UmVjdCwgZmFsc2UgLyogc3Ryb2tlZCAqLywgdHJ1ZSAvKiBvcGFxdWUg
Ki8sIHRydWUgLyogaG9yaXpvbnRhbCAqLywgZGlkU2F2ZUNvbnRleHQpOworICAgICAgICAgICAg
ZXh0cmFPZmZzZXQgPSBUZXh0UGFpbnRlcjo6YXBwbHlTaGFkb3dUb0dyYXBoaWNzQ29udGV4dCgq
Y29udGV4dCwgKnNoYWRvdywgc2hhZG93UmVjdCwgb25seURyYXdzU2hhZG93LCBUZXh0UGFpbnRl
cjo6aXNFbXB0eVNoYWRvdyhzaGFkb3cpKTsKIAogICAgICAgICBjb250ZXh0LT5zYXZlKCk7CiAg
ICAgICAgIGNvbnRleHQtPnNjYWxlKEZsb2F0U2l6ZSgxIC8gc2NhbGluZ0ZhY3RvciwgMSAvIHNj
YWxpbmdGYWN0b3IpKTsKQEAgLTYwNyw4ICs2MDgsOCBAQCB2b2lkIFNWR0lubGluZVRleHRCb3g6
OnBhaW50VGV4dFdpdGhTaGFkb3dzKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgUmVuZGVyU3R5
bAogICAgICAgICBjb250ZXh0LT5yZXN0b3JlKCk7CiAKICAgICAgICAgaWYgKHNoYWRvdykgewot
ICAgICAgICAgICAgaWYgKGRpZFNhdmVDb250ZXh0KQotICAgICAgICAgICAgICAgIGNvbnRleHQt
PnJlc3RvcmUoKTsKKyAgICAgICAgICAgIGlmICghb25seURyYXdzU2hhZG93KQorICAgICAgICAg
ICAgICAgIGNvbnRleHQtPnJlc3RvcmUoKTsgLy8gTWF0Y2hpbmcgY2FsbCB0byBjb250ZXh0LnNh
dmUoKSBpbiBhcHBseVNoYWRvd1RvR3JhcGhpY3NDb250ZXh0CiAgICAgICAgICAgICBlbHNlCiAg
ICAgICAgICAgICAgICAgY29udGV4dC0+Y2xlYXJTaGFkb3coKTsKICAgICAgICAgfQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IDk2NmI0Y2M3ZTE4NjcyODU0YzJkNzVmZDFlMzI2ZjZlNTBiNGI4MzcuLmRlMTc3YjMxZDZlMTg5
YjI4MjAyMmU5OWNhZTI1ZTY4ZDU0MjE5YjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxNC0w
OS0xNiAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAg
IFJFR1JFU1NJT046IFRleHQgd2l0aCBhIHplcm8gb2Zmc2V0LCB6ZXJvIGJsdXIgc2hhZG93IHZh
bmlzaGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MzY4MDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
aGlzIHRlc3Qgc2hvdWxkIGJlIGEgY29tcHJlaGVuc2l2ZSB0ZXN0IG9mIGVtcHR5IHNoYWRvd3Mu
IEl0IHRlc3RzIGV2ZXJ5CisgICAgICAgIGNvbWJpbmF0aW9uIG9mIG9uZSBhbmQgdHdvIHNoYWRv
d3MgYmVpbmcgZW1wdHksIGFzIHdlbGwgYXMgdHJhbnNwYXJlbnQgYW5kCisgICAgICAgIG9wYXF1
ZSB0ZXh0LgorCisgICAgICAgIEFmdGVyIHVwZGF0aW5nIGZhc3QvdGV4dC9lbXB0eS1zaGFkb3cu
aHRtbCwgZmFzdC90ZXh0L2VtcHR5LXNoYWRvdy13aXRoLWNvbG9yLmh0bWwKKyAgICAgICAgaXMg
bm8gbG9uZ2VyIG5lY2Vzc2FyeS4KKworICAgICAgICAqIGZhc3QvdGV4dC9lbXB0eS1zaGFkb3ct
ZXhwZWN0ZWQuaHRtbDoKKyAgICAgICAgKiBmYXN0L3RleHQvZW1wdHktc2hhZG93LXdpdGgtY29s
b3ItZXhwZWN0ZWQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3RleHQvZW1wdHktc2hh
ZG93LXdpdGgtY29sb3IuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3RleHQvZW1wdHkt
c2hhZG93Lmh0bWw6CisKIDIwMTQtMDktMTYgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBn
bWFpbC5jb20+CiAKICAgICAgICAgUHJvbWlzZTogRHJvcCBQcm9taXNlLmNhc3QKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9lbXB0eS1zaGFkb3ctZXhwZWN0ZWQuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvdGV4dC9lbXB0eS1zaGFkb3ctZXhwZWN0ZWQuaHRtbAppbmRleCBjZTJi
OTZiMGJkMDJmOWNmYzhkZmM2OTk3NzE2M2M5NTJmNjYzNmE4Li4yYjNmYWVhNWM0MGZiM2RkMmU5
MzE3ODFiYWUwMDhlZTQ5MmRhZGRhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQv
ZW1wdHktc2hhZG93LWV4cGVjdGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2Vt
cHR5LXNoYWRvdy1leHBlY3RlZC5odG1sCkBAIC0xLDMgKzEsMjAgQEAKLVRoaXMgdGVzdHMgdGhh
dCB0ZXh0IGRyYXduIHdpdGggdGV4dC1zaGFkb3dzIG9mIHJhZGl1cyAwIGFuZCAoMCwgMCkgb2Zm
c2V0IGFyZSBub3QgZHJhd24uCi1UaGlzIGlzIGEgYmV0dGVyIG91dGNvbWUgdGhhbiB0aGVtIGJl
aW5nIGRyYXduIGluIGFuIHVnbHkgd2F5LgotVGhpcyB0ZXN0IGlzIHN1Y2Nlc3NmdWwgaWYgdGhl
IHRleHQgYmVsb3cgaXMgY29tcGxldGVseSBpbnZpc2libGUuCis8cD5UaGlzIHRlc3RzIHRoYXQg
dGV4dCBkcmF3biB3aXRoIHRleHQtc2hhZG93cyBvZiByYWRpdXMgMCBhbmQgKDAsIDApIG9mZnNl
dCBhcmUgbm90IGRyYXduLjwvcD4KKzxwPkluIHRoZSBmb2xsb3dpbmcgdGVzdHMsIHRoZSBhY3R1
YWwgdGV4dCBpcyBncmVlbiB3aGlsZSB0aGUgc2hhZG93cyBhcmUgYmx1ZS48L3A+CisKKzxkaXYg
c3R5bGU9ImNvbG9yOiBncmVlbjsiPgorPGRpdiBzdHlsZT0idGV4dC1zaGFkb3c6IDVweCA1cHgg
Ymx1ZTsiPlRleHQgd2l0aCBhIHNpbmdsZSBzaGFkb3cuPC9kaXY+Cis8ZGl2PlRleHQgd2l0aCBv
bmUgZW1wdHkgKHVuZHJhd24pIHNoYWRvdy48L2Rpdj4KKzxkaXYgc3R5bGU9InRleHQtc2hhZG93
OiA1cHggNXB4IGJsdWUsIDEwcHggMTBweCBibHVlOyI+VGV4dCB3aXRoIHR3byBzaGFkb3dzPC9k
aXY+Cis8ZGl2IHN0eWxlPSJ0ZXh0LXNoYWRvdzogNXB4IDVweCBibHVlOyI+VGV4dCB3aXRoIHR3
byBzaGFkb3dzOiBmaXJzdCBkcmF3biBhbmQgc2Vjb25kIGVtcHR5ICh1bmRyYXduKS48L2Rpdj4K
KzxkaXYgc3R5bGU9InRleHQtc2hhZG93OiAxMHB4IDEwcHggYmx1ZTsiPlRleHQgd2l0aCB0d28g
c2hhZG93czogZmlyc3QgZW1wdHkgKHVuZHJhd24pIGFuZCBzZWNvbmQgZHJhd24uPC9kaXY+Cis8
ZGl2PlRleHQgd2l0aCB0d28gZW1wdHkgKHVuZHJhd24pIHNoYWRvd3MuPC9kaXY+Cis8L2Rpdj4K
KworPGRpdiBzdHlsZT0iY29sb3I6IHRyYW5zcGFyZW50OyI+Cis8ZGl2IHN0eWxlPSJ0ZXh0LXNo
YWRvdzogNXB4IDVweCBibHVlOyI+VHJhbnNwYXJlbnQgdGV4dCB3aXRoIGEgc2luZ2xlIHNoYWRv
dy48L2Rpdj4KKzxkaXYgc3R5bGU9ImNvbG9yOiBibHVlOyI+VHJhbnNwYXJlbnQgdGV4dCB3aXRo
IG9uZSBlbXB0eSBzaGFkb3cuPC9kaXY+Cis8ZGl2IHN0eWxlPSJ0ZXh0LXNoYWRvdzogNXB4IDVw
eCBibHVlLCAxMHB4IDEwcHggYmx1ZTsiPlRyYW5zcGFyZW50IHRleHQgd2l0aCB0d28gc2hhZG93
czwvZGl2PgorPGRpdiBzdHlsZT0iY29sb3I6IGJsdWU7IHRleHQtc2hhZG93OiA3cHggN3B4IGJs
dWU7Ij5UcmFuc3BhcmVudCB0ZXh0IHdpdGggdHdvIHNoYWRvd3M6IGZpcnN0IGRyYXduIGFuZCBz
ZWNvbmQgZW1wdHkuPC9kaXY+Cis8ZGl2IHN0eWxlPSJjb2xvcjogYmx1ZTsgdGV4dC1zaGFkb3c6
IDEwcHggMTBweCBibHVlOyI+VHJhbnNwYXJlbnQgdGV4dCB3aXRoIHR3byBzaGFkb3dzOiBmaXJz
dCBkcmF3biBhbmQgc2Vjb25kIGVtcHR5LjwvZGl2PgorPGRpdiBzdHlsZT0iY29sb3I6IGJsdWU7
IHBvc2l0aW9uOiByZWxhdGl2ZTsiPjxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVm
dDogMHB4OyB0b3A6IDBweDsiPlRyYW5zcGFyZW50IHRleHQgd2l0aCB0d28gZW1wdHkgc2hhZG93
cy48L2Rpdj48ZGl2IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDBweDsgdG9wOiAw
cHg7Ij5UcmFuc3BhcmVudCB0ZXh0IHdpdGggdHdvIGVtcHR5IHNoYWRvd3MuPC9kaXY+PC9kaXY+
Cis8L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9lbXB0eS1zaGFkb3ct
d2l0aC1jb2xvci1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2VtcHR5LXNo
YWRvdy13aXRoLWNvbG9yLWV4cGVjdGVkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDQ1YTRkOTIwZjczNWNjYzhmODZmMmQ3NzA2MDU3YmZkZTQ2MmYwM2IuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0
L2VtcHR5LXNoYWRvdy13aXRoLWNvbG9yLWV4cGVjdGVkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSwxNSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c3R5bGU+Ci0j
dGVzdCB7Ci0gICAgY29sb3I6IGdyZWVuOwotICAgIGZvbnQtc2l6ZTogMTZweDsKLX0KLTwvc3R5
bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLVRoaXMgdGVzdCBtYWtlcyBzdXJlIHRoYXQgdGV4dCBkcmF3
biB3aXRoIGFuIGVtcHR5IHNoYWRvdyBpcyBjb2xvcmVkIGNvcnJlY3RseS4gSXQgcGFzc2VzIGlm
IHRoZSBmb2xsb3dpbmcgdGV4dCBpcyBncmVlbi4KLTxkaXYgaWQ9InRlc3QiPlRoaXMgc2hvdWxk
IGJlIGdyZWVuLjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC90ZXh0L2VtcHR5LXNoYWRvdy13aXRoLWNvbG9yLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L3RleHQvZW1wdHktc2hhZG93LXdpdGgtY29sb3IuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggM2ZkZjk1YzNmYjc3ZDkyMTJkZWNiNWQyM2ZmODFkNTk0OTM4Yjc4YS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L3RleHQvZW1wdHktc2hhZG93LXdpdGgtY29sb3IuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDE3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzdHlsZT4KLSN0
ZXN0IHsKLSAgICBjb2xvcjogZ3JlZW47Ci0gICAgZm9udC1zaXplOiAxNnB4OwotICAgIHRleHQt
c2hhZG93OiByZWQgMjBweCAyMHB4LCByZWQgMHB4IDBweDsKLSAgICBvdmVyZmxvdzogaGlkZGVu
OwotfQotPC9zdHlsZT4KLTwvaGVhZD4KLTxib2R5PgotVGhpcyB0ZXN0IG1ha2VzIHN1cmUgdGhh
dCB0ZXh0IGRyYXduIHdpdGggYW4gZW1wdHkgc2hhZG93IGlzIGNvbG9yZWQgY29ycmVjdGx5LiBJ
dCBwYXNzZXMgaWYgdGhlIGZvbGxvd2luZyB0ZXh0IGlzIGdyZWVuLgotPGRpdiBpZD0idGVzdCI+
VGhpcyBzaG91bGQgYmUgZ3JlZW4uPC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvZW1wdHktc2hhZG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L3RleHQvZW1wdHktc2hhZG93Lmh0bWwKaW5kZXggNDI3Y2RkOGM2M2M5YTE4MmE1YzBkZjFh
ZDI4ZDMxZDQ0YjI0YTNjZi4uMmIzZTc3ODM0Y2FlZDIyOTk5ZWQ4MDhlMzU1MDQ2NmVmYTBiODQ5
MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2VtcHR5LXNoYWRvdy5odG1sCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9lbXB0eS1zaGFkb3cuaHRtbApAQCAtMSw0ICsxLDIw
IEBACi1UaGlzIHRlc3RzIHRoYXQgdGV4dCBkcmF3biB3aXRoIHRleHQtc2hhZG93cyBvZiByYWRp
dXMgMCBhbmQgKDAsIDApIG9mZnNldCBhcmUgbm90IGRyYXduLgotVGhpcyBpcyBhIGJldHRlciBv
dXRjb21lIHRoYW4gdGhlbSBiZWluZyBkcmF3biBpbiBhbiB1Z2x5IHdheS4KLVRoaXMgdGVzdCBp
cyBzdWNjZXNzZnVsIGlmIHRoZSB0ZXh0IGJlbG93IGlzIGNvbXBsZXRlbHkgaW52aXNpYmxlLgot
PGRpdiBzdHlsZT0iY29sb3I6I2ZmZjt0ZXh0LXNoYWRvdzowIDAgIzAwMCI+VGhpcyBpcyBzb21l
IHRleHQ8L2Rpdj4KKzxwPlRoaXMgdGVzdHMgdGhhdCB0ZXh0IGRyYXduIHdpdGggdGV4dC1zaGFk
b3dzIG9mIHJhZGl1cyAwIGFuZCAoMCwgMCkgb2Zmc2V0IGFyZSBub3QgZHJhd24uPC9wPgorPHA+
SW4gdGhlIGZvbGxvd2luZyB0ZXN0cywgdGhlIGFjdHVhbCB0ZXh0IGlzIGdyZWVuIHdoaWxlIHRo
ZSBzaGFkb3dzIGFyZSBibHVlLjwvcD4KKworPGRpdiBzdHlsZT0iY29sb3I6IGdyZWVuOyI+Cis8
ZGl2IHN0eWxlPSJ0ZXh0LXNoYWRvdzogNXB4IDVweCBibHVlOyI+VGV4dCB3aXRoIGEgc2luZ2xl
IHNoYWRvdy48L2Rpdj4KKzxkaXYgc3R5bGU9InRleHQtc2hhZG93OiAwcHggMHB4IGJsdWU7Ij5U
ZXh0IHdpdGggb25lIGVtcHR5ICh1bmRyYXduKSBzaGFkb3cuPC9kaXY+Cis8ZGl2IHN0eWxlPSJ0
ZXh0LXNoYWRvdzogNXB4IDVweCBibHVlLCAxMHB4IDEwcHggYmx1ZTsiPlRleHQgd2l0aCB0d28g
c2hhZG93czwvZGl2PgorPGRpdiBzdHlsZT0idGV4dC1zaGFkb3c6IDVweCA1cHggYmx1ZSwgMHB4
IDBweCBibHVlOyI+VGV4dCB3aXRoIHR3byBzaGFkb3dzOiBmaXJzdCBkcmF3biBhbmQgc2Vjb25k
IGVtcHR5ICh1bmRyYXduKS48L2Rpdj4KKzxkaXYgc3R5bGU9InRleHQtc2hhZG93OiAwcHggMHB4
IGJsdWUsIDEwcHggMTBweCBibHVlOyI+VGV4dCB3aXRoIHR3byBzaGFkb3dzOiBmaXJzdCBlbXB0
eSAodW5kcmF3bikgYW5kIHNlY29uZCBkcmF3bi48L2Rpdj4KKzxkaXYgc3R5bGU9InRleHQtc2hh
ZG93OiAwcHggMHB4IGJsdWUsIDBweCAwcHggYmx1ZTsiPlRleHQgd2l0aCB0d28gZW1wdHkgKHVu
ZHJhd24pIHNoYWRvd3MuPC9kaXY+Cis8L2Rpdj4KKworPGRpdiBzdHlsZT0iY29sb3I6IHRyYW5z
cGFyZW50OyI+Cis8ZGl2IHN0eWxlPSJ0ZXh0LXNoYWRvdzogNXB4IDVweCBibHVlOyI+VHJhbnNw
YXJlbnQgdGV4dCB3aXRoIGEgc2luZ2xlIHNoYWRvdy48L2Rpdj4KKzxkaXYgc3R5bGU9InRleHQt
c2hhZG93OiAwcHggMHB4IGJsdWU7Ij5UcmFuc3BhcmVudCB0ZXh0IHdpdGggb25lIGVtcHR5IHNo
YWRvdy48L2Rpdj4KKzxkaXYgc3R5bGU9InRleHQtc2hhZG93OiA1cHggNXB4IGJsdWUsIDEwcHgg
MTBweCBibHVlOyI+VHJhbnNwYXJlbnQgdGV4dCB3aXRoIHR3byBzaGFkb3dzPC9kaXY+Cis8ZGl2
IHN0eWxlPSJ0ZXh0LXNoYWRvdzogN3B4IDdweCBibHVlLCAwcHggMHB4IGJsdWU7Ij5UcmFuc3Bh
cmVudCB0ZXh0IHdpdGggdHdvIHNoYWRvd3M6IGZpcnN0IGRyYXduIGFuZCBzZWNvbmQgZW1wdHku
PC9kaXY+Cis8ZGl2IHN0eWxlPSJ0ZXh0LXNoYWRvdzogMHB4IDBweCBibHVlLCAxMHB4IDEwcHgg
Ymx1ZTsiPlRyYW5zcGFyZW50IHRleHQgd2l0aCB0d28gc2hhZG93czogZmlyc3QgZHJhd24gYW5k
IHNlY29uZCBlbXB0eS48L2Rpdj4KKzxkaXYgc3R5bGU9InRleHQtc2hhZG93OiAwcHggMHB4IGJs
dWUsIDBweCAwcHggYmx1ZTsiPlRyYW5zcGFyZW50IHRleHQgd2l0aCB0d28gZW1wdHkgc2hhZG93
cy48L2Rpdj4KKzwvZGl2Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238512</attachid>
            <date>2014-09-22 19:21:43 -0700</date>
            <delta_ts>2014-09-24 19:13:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136801-20140922192142.patch</filename>
            <type>text/plain</type>
            <size>19285</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTczODUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmM4MGRjNWJhNzBkM2Q2
YzBlODQ2OWE2ZmVhNWM4OTRmZWNhMjdhMi4uZWU2NDBlOWY4NWVmOTY1Y2U0YTQ4NzA4MGFjOThk
YjgzOTk3YmU0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDE0LTA5LTIyICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lP
TjogVGV4dCB3aXRoIGEgemVybyBvZmZzZXQsIHplcm8gYmx1ciBzaGFkb3cgdmFuaXNoZXMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNjgwMQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
cGVyZm9ybXMgc29tZSBjbGVhbnVwIHJlZ2FyZGluZyBUZXh0UGFpbnRlcidzIHNoYWRvdyBsb2dp
YyBhbmQgaGFuZGxlcyBhbgorICAgICAgICBhZGRpdGlvbmFsIGNhc2Ugb2YgZW1wdHkgc2hhZG93
cy4gUHJldmlvdXNseSwgdGhlcmUgd2FzIHRpZ2h0IGNvdXBsaW5nIGJldHdlZW4KKyAgICAgICAg
YXBwbHlTaGFkb3dUb0dyYXBoaWNhbENvbnRleHQoKSBhbmQgcGFpbnRUZXh0V2l0aFNoYWRvd3Mo
KSwgYXMgdGhleSBib3RoIHVzZWQgYQorICAgICAgICBjb2xsZWN0aW9uIG9mIHZhcmlhYmxlcyB0
byBkZXRlcm1pbmUgaG93IHNoYWRvd3MgYXJlIHRvIGJlIGRyYXduLiBUaGlzIGNvbXBsZXhpdHkg
aGFzCisgICAgICAgIGJlZW4gbW92ZWQgaW50byBhIGhlbHBlciBjbGFzcywgU2hhZG93QXBwbGll
ciwgd2hpY2ggcGVyZm9ybXMgd2hhdAorICAgICAgICBhcHBseVNoYWRvd1RvR3JhcGhpY3NDb250
ZXh0KCkgdXNlZCB0byBkbywgYW5kIGNsZWFucyB1cCBjb3JyZWN0bHkgaW4gaXRzIGRlc3RydWN0
b3IuCisgICAgICAgIFRoaXMgcmVtb3ZlcyB0aGUgdGlnaHQgY291cGxpbmcgbWVudGlvbmVkIGVh
cmxpZXIuCisKKyAgICAgICAgVGVzdDogZmFzdC90ZXh0L2VtcHR5LXNoYWRvdy5odG1sCisKKyAg
ICAgICAgKiByZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bmxpbmVUZXh0Qm94OjphcHBseVNoYWRvd1RvR3JhcGhpY3NDb250ZXh0KTogTW92ZWQgdG8gU2hh
ZG93QXBwbGllci4KKyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5lVGV4dEJveC5oOiBEZWxldGVk
IGFwcGx5U2hhZG93VG9HcmFwaGljc0NvbnRleHQgc2lnbmF0dXJlLgorICAgICAgICAqIHJlbmRl
cmluZy9UZXh0UGFpbnRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dBcHBsaWVyOjpT
aGFkb3dBcHBsaWVyKTogUGVyZm9ybSB0aGUgY29udGVudHMgb2YgYXBwbHlTaGFkb3dUb0dyYXBo
aWNzQ29udGV4dCgpCisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dBcHBsaWVyOjp+U2hhZG93QXBw
bGllcik6IFVuZG8gdGhlIHdvcmsgZG9uZSBwcmV2aW91c2x5CisgICAgICAgIChXZWJDb3JlOjpw
YWludFRleHRXaXRoU2hhZG93cyk6IENyZWF0ZSBhIFNoYWRvd0FwcGxpZXIgdG8gZG8gdGhlIHJl
bGV2YW50IHNoYWRvdyB3b3JrLiBJbiBhZGRpdGlvbiwKKyAgICAgICAgcmVmYWN0b3Igc29tZSBi
b29sZWFuIGZsYWdzIHRvIG1vcmUgbWVhbmluZ2Z1bCBvbmVzIHdpdGggcmVsYXRpb24gdG8gdGhl
IGNvbXB1dGF0aW9uIGF0IGhhbmQuCisgICAgICAgIChXZWJDb3JlOjppc0VtcHR5U2hhZG93KTog
TW92ZWQgdG8gVGV4dFBhaW50ZXIuaCwgbmFtZWQgc2hhZG93SXNDb21wbGV0ZWx5Q292ZXJlZEJ5
VGV4dCgpCisgICAgICAgICogcmVuZGVyaW5nL1RleHRQYWludGVyLmg6CisgICAgICAgIChXZWJD
b3JlOjpTaGFkb3dBcHBsaWVyOjpTaGFkb3dBcHBsaWVyKTogTW92ZWQgZnJvbSBJbmxpbmVUZXh0
Qm94OjphcHBseVNoYWRvd1RvR3JhcGhpY3NDb250ZXh0KCkuCisgICAgICAgIChXZWJDb3JlOjpT
aGFkb3dBcHBsaWVyOjpleHRyYU9mZnNldCk6IEdldHRlci4KKyAgICAgICAgKFdlYkNvcmU6OlNo
YWRvd0FwcGxpZXI6On5TaGFkb3dBcHBsaWVyKTogTW92ZWQgZnJvbSBUZXh0UGFpbnRlcjo6cGFp
bnRUZXh0V2l0aFNoYWRvd3MoKS4KKyAgICAgICAgKFdlYkNvcmU6OmlzTGFzdFNoYWRvd0l0ZXJh
dGlvbik6IEhlbHBlciBmdW5jdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OnNoYWRvd0lzQ29tcGxl
dGVseUNvdmVyZWRCeVRleHQpOiBEZXRlcm1pbmVzIHdoZXRoZXIgb3Igbm90IHdlIHNob3VsZCBu
b3QgZHJhdyB0aGUgc2hhZG93LgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvU1ZHSW5saW5lVGV4
dEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdJbmxpbmVUZXh0Qm94OjpwYWludFRleHRX
aXRoU2hhZG93cyk6IFVwZGF0ZSB0byB1c2UgU2hhZG93QXBwbGllci4KKwogMjAxNC0wOS0xOSAg
TXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIEltcGxl
bWVudCAndmhlYScsICd2bXR4JywgYW5kICdrZXJuJyB0YWJsZXMgaW4gU1ZHIC0+IE9URiBjb252
ZXJ0ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcAppbmRleCAy
NjAwY2FhN2U5ZGY3OTBiNjQzOGNiNTI2OTRhZGFiOGMyY2E1YWQ1Li5iMmRhNThiYjU1Y2Y5MGE2
MWVlYjg4MDRkOWMyMGFhMWRjYTQ5ZmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvSW5saW5lVGV4dEJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lu
bGluZVRleHRCb3guY3BwCkBAIC00MjQsMzQgKzQyNCw2IEBAIGJvb2wgSW5saW5lVGV4dEJveDo6
bm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmIHJlcXVlc3QsIEhpdFRlc3RSZXN1bHQm
IHJlCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1GbG9hdFNpemUgSW5saW5lVGV4dEJveDo6YXBw
bHlTaGFkb3dUb0dyYXBoaWNzQ29udGV4dChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0
IFNoYWRvd0RhdGEqIHNoYWRvdywgY29uc3QgRmxvYXRSZWN0JiB0ZXh0UmVjdCwgYm9vbCBzdHJv
a2VkLCBib29sIG9wYXF1ZSwgYm9vbCBob3Jpem9udGFsLCBib29sJiBkaWRTYXZlQ29udGV4dCkK
LXsKLSAgICBpZiAoIXNoYWRvdykKLSAgICAgICAgcmV0dXJuIEZsb2F0U2l6ZSgpOwotCi0gICAg
RmxvYXRTaXplIGV4dHJhT2Zmc2V0OwotICAgIGludCBzaGFkb3dYID0gaG9yaXpvbnRhbCA/IHNo
YWRvdy0+eCgpIDogc2hhZG93LT55KCk7Ci0gICAgaW50IHNoYWRvd1kgPSBob3Jpem9udGFsID8g
c2hhZG93LT55KCkgOiAtc2hhZG93LT54KCk7Ci0gICAgRmxvYXRTaXplIHNoYWRvd09mZnNldChz
aGFkb3dYLCBzaGFkb3dZKTsKLSAgICBpbnQgc2hhZG93UmFkaXVzID0gc2hhZG93LT5yYWRpdXMo
KTsKLSAgICBjb25zdCBDb2xvciYgc2hhZG93Q29sb3IgPSBzaGFkb3ctPmNvbG9yKCk7Ci0KLSAg
ICBpZiAoc2hhZG93LT5uZXh0KCkgfHwgc3Ryb2tlZCB8fCAhb3BhcXVlKSB7Ci0gICAgICAgIEZs
b2F0UmVjdCBzaGFkb3dSZWN0KHRleHRSZWN0KTsKLSAgICAgICAgc2hhZG93UmVjdC5pbmZsYXRl
KHNoYWRvdy0+cGFpbnRpbmdFeHRlbnQoKSk7Ci0gICAgICAgIHNoYWRvd1JlY3QubW92ZShzaGFk
b3dPZmZzZXQpOwotICAgICAgICBjb250ZXh0LnNhdmUoKTsKLSAgICAgICAgY29udGV4dC5jbGlw
KHNoYWRvd1JlY3QpOwotCi0gICAgICAgIGV4dHJhT2Zmc2V0ID0gRmxvYXRTaXplKDAsIDIgKiB0
ZXh0UmVjdC5oZWlnaHQoKSArIHN0ZDo6bWF4KDAuMGYsIHNoYWRvd09mZnNldC5oZWlnaHQoKSkg
KyBzaGFkb3dSYWRpdXMpOwotICAgICAgICBzaGFkb3dPZmZzZXQgLT0gZXh0cmFPZmZzZXQ7Ci0g
ICAgICAgIGRpZFNhdmVDb250ZXh0ID0gdHJ1ZTsKLSAgICB9Ci0KLSAgICBjb250ZXh0LnNldFNo
YWRvdyhzaGFkb3dPZmZzZXQsIHNoYWRvd1JhZGl1cywgc2hhZG93Q29sb3IsIGNvbnRleHQuZmls
bENvbG9yU3BhY2UoKSk7Ci0gICAgcmV0dXJuIGV4dHJhT2Zmc2V0OwotfQotCiBzdGF0aWMgaW5s
aW5lIGJvb2wgZW1waGFzaXNQb3NpdGlvbkhhc05laXRoZXJMZWZ0Tm9yUmlnaHQoVGV4dEVtcGhh
c2lzUG9zaXRpb24gZW1waGFzaXNQb3NpdGlvbikKIHsKICAgICByZXR1cm4gIShlbXBoYXNpc1Bv
c2l0aW9uICYgVGV4dEVtcGhhc2lzUG9zaXRpb25MZWZ0KSAmJiAhKGVtcGhhc2lzUG9zaXRpb24g
JiBUZXh0RW1waGFzaXNQb3NpdGlvblJpZ2h0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5s
aW5lVGV4dEJveC5oCmluZGV4IGU4OWEyY2Q5YzdmOTg4OTlhYjQ3M2VmYjc0MjdlMzg0NjRhNzlj
OWIuLjZmODE4YzQ1YjE3YmJmYTg3NzIyN2YyMzdhNDY3MTkzNTcxYWI0NDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guaApAQCAtMTU0LDkgKzE1NCw2IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIGludCBvZmZzZXRGb3JQb3NpdGlvbihmbG9hdCB4LCBib29sIGluY2x1
ZGVQYXJ0aWFsR2x5cGhzID0gdHJ1ZSkgY29uc3Q7CiAgICAgdmlydHVhbCBmbG9hdCBwb3NpdGlv
bkZvck9mZnNldChpbnQgb2Zmc2V0KSBjb25zdDsKIAotICAgIC8vIE5lZWRzIHRvIGJlIHB1Ymxp
Yywgc28gdGhlIHN0YXRpYyBwYWludFRleHRXaXRoU2hhZG93cygpIGZ1bmN0aW9uIGNhbiB1c2Ug
aXQuCi0gICAgc3RhdGljIEZsb2F0U2l6ZSBhcHBseVNoYWRvd1RvR3JhcGhpY3NDb250ZXh0KEdy
YXBoaWNzQ29udGV4dCYsIGNvbnN0IFNoYWRvd0RhdGEqLCBjb25zdCBGbG9hdFJlY3QmIHRleHRS
ZWN0LCBib29sIHN0cm9rZWQsIGJvb2wgb3BhcXVlLCBib29sIGhvcml6b250YWwsIGJvb2wmIGRp
ZFNhdmVDb250ZXh0KTsKLQogcHJvdGVjdGVkOgogICAgIHZvaWQgcGFpbnRDb21wb3NpdGlvbkJh
Y2tncm91bmQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRQb2ludCYgYm94T3JpZ2luLCBj
b25zdCBSZW5kZXJTdHlsZSYsIGNvbnN0IEZvbnQmLCBpbnQgc3RhcnRQb3MsIGludCBlbmRQb3Mp
OwogICAgIHZvaWQgcGFpbnREb2N1bWVudE1hcmtlcnMoR3JhcGhpY3NDb250ZXh0KiwgY29uc3Qg
RmxvYXRQb2ludCYgYm94T3JpZ2luLCBjb25zdCBSZW5kZXJTdHlsZSYsIGNvbnN0IEZvbnQmLCBi
b29sIGJhY2tncm91bmQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Rl
eHRQYWludGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFpbnRlci5jcHAK
aW5kZXggZmExZDc5YTAwZjlmMTkyYjhjOGJmMWEyNDc3NGRmNDRlOGY3ZjVjNC4uOTQzYTEzNDUx
YzU1NTQ5NzdlNTMyMjQxODVjYTkyYTZlMzM5MTkyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1RleHRQYWludGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvVGV4dFBhaW50ZXIuY3BwCkBAIC02NSwxMSArNjUsNDUgQEAgc3RhdGljIHZvaWQgZHJhd1Rl
eHRPckVtcGhhc2lzTWFya3MoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGb250JiBm
b250LAogICAgICAgICBjb250ZXh0LmRyYXdFbXBoYXNpc01hcmtzKGZvbnQsIHRleHRSdW4sIGVt
cGhhc2lzTWFyaywgcG9pbnQgKyBJbnRTaXplKDAsIGVtcGhhc2lzTWFya09mZnNldCksIGZyb20s
IHRvKTsKIH0KIAotc3RhdGljIGJvb2wgaXNFbXB0eVNoYWRvdyhjb25zdCBTaGFkb3dEYXRhKiBz
aGFkb3cpCitTaGFkb3dBcHBsaWVyOjpTaGFkb3dBcHBsaWVyKEdyYXBoaWNzQ29udGV4dCYgY29u
dGV4dCwgY29uc3QgU2hhZG93RGF0YSogc2hhZG93LCBjb25zdCBGbG9hdFJlY3QmIHRleHRSZWN0
LCBib29sIG9ubHlEcmF3c1NoYWRvdywgYm9vbCBhdm9pZERyYXdpbmdTaGFkb3csIEZvbnRPcmll
bnRhdGlvbiBvcmllbnRhdGlvbikKKyAgICA6IG1fY29udGV4dChjb250ZXh0KQorICAgICwgbV9z
aGFkb3coc2hhZG93KQorICAgICwgbV9vbmx5RHJhd3NTaGFkb3cob25seURyYXdzU2hhZG93KQog
ewogICAgIGlmICghc2hhZG93KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIHNo
YWRvdy0+bG9jYXRpb24oKSA9PSBJbnRQb2ludCgpICYmICFzaGFkb3ctPnJhZGl1cygpOworICAg
ICAgICByZXR1cm47CisgICAgaW50IHNoYWRvd1ggPSBvcmllbnRhdGlvbiA9PSBIb3Jpem9udGFs
ID8gc2hhZG93LT54KCkgOiBzaGFkb3ctPnkoKTsKKyAgICBpbnQgc2hhZG93WSA9IG9yaWVudGF0
aW9uID09IEhvcml6b250YWwgPyBzaGFkb3ctPnkoKSA6IC1zaGFkb3ctPngoKTsKKyAgICBGbG9h
dFNpemUgc2hhZG93T2Zmc2V0KHNoYWRvd1gsIHNoYWRvd1kpOworICAgIGludCBzaGFkb3dSYWRp
dXMgPSBzaGFkb3ctPnJhZGl1cygpOworICAgIGNvbnN0IENvbG9yJiBzaGFkb3dDb2xvciA9IHNo
YWRvdy0+Y29sb3IoKTsKKworICAgIC8vIFdoZW4gZHJhd2luZyBzaGFkb3dzLCB3ZSB1c3VhbGx5
IGNsaXAgdGhlIGNvbnRleHQgdG8gdGhlIGFyZWEgdGhlIHNoYWRvdyB3aWxsIHJlc2lkZSwgYW5k
IHRoZW4KKyAgICAvLyBkcmF3IHRoZSB0ZXh0IGl0c2VsZiBvdXRzaWRlIHRoZSBjbGlwcGVkIGFy
ZWEgKHNvIG9ubHkgdGhlIHNoYWRvdyBzaG93cyB1cCkuIEhvd2V2ZXIsIHdlIGNhbgorICAgIC8v
IG9mdGVuIGRyYXcgdGhlIDo6bGFzdDo6IHNoYWRvdyBhbmQgdGhlIHRleHQgaXRzZWxmIGluIGEg
c2luZ2xlIGNhbGwuCisgICAgaWYgKG9ubHlEcmF3c1NoYWRvdykgeworICAgICAgICBGbG9hdFJl
Y3Qgc2hhZG93UmVjdCh0ZXh0UmVjdCk7CisgICAgICAgIHNoYWRvd1JlY3QuaW5mbGF0ZShzaGFk
b3ctPnBhaW50aW5nRXh0ZW50KCkpOworICAgICAgICBzaGFkb3dSZWN0Lm1vdmUoc2hhZG93T2Zm
c2V0KTsKKyAgICAgICAgY29udGV4dC5zYXZlKCk7CisgICAgICAgIGNvbnRleHQuY2xpcChzaGFk
b3dSZWN0KTsKKworICAgICAgICBtX2V4dHJhT2Zmc2V0ID0gRmxvYXRTaXplKDAsIDIgKiB0ZXh0
UmVjdC5oZWlnaHQoKSArIHN0ZDo6bWF4KDAuMGYsIHNoYWRvd09mZnNldC5oZWlnaHQoKSkgKyBz
aGFkb3dSYWRpdXMpOworICAgICAgICBzaGFkb3dPZmZzZXQgLT0gbV9leHRyYU9mZnNldDsKKyAg
ICB9CisKKyAgICBpZiAoIWF2b2lkRHJhd2luZ1NoYWRvdykKKyAgICAgICAgY29udGV4dC5zZXRT
aGFkb3coc2hhZG93T2Zmc2V0LCBzaGFkb3dSYWRpdXMsIHNoYWRvd0NvbG9yLCBjb250ZXh0LmZp
bGxDb2xvclNwYWNlKCkpOworfQorCitTaGFkb3dBcHBsaWVyOjp+U2hhZG93QXBwbGllcigpCit7
CisgICAgaWYgKCFtX3NoYWRvdykKKyAgICAgICAgcmV0dXJuOworICAgIGlmIChtX29ubHlEcmF3
c1NoYWRvdykKKyAgICAgICAgbV9jb250ZXh0LnJlc3RvcmUoKTsKKyAgICBlbHNlCisgICAgICAg
IG1fY29udGV4dC5jbGVhclNoYWRvdygpOwogfQogCiBzdGF0aWMgdm9pZCBwYWludFRleHRXaXRo
U2hhZG93cyhHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZvbnQmIGZvbnQsIGNvbnN0
IFRleHRSdW4mIHRleHRSdW4sIGNvbnN0IEF0b21pY1N0cmluZyYgZW1waGFzaXNNYXJrLApAQCAt
NzksMTkgKzExMywyMiBAQCBzdGF0aWMgdm9pZCBwYWludFRleHRXaXRoU2hhZG93cyhHcmFwaGlj
c0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZvbnQmIGZvbnQsIGNvbgogICAgIENvbG9yIGZpbGxD
b2xvciA9IGNvbnRleHQuZmlsbENvbG9yKCk7CiAgICAgQ29sb3JTcGFjZSBmaWxsQ29sb3JTcGFj
ZSA9IGNvbnRleHQuZmlsbENvbG9yU3BhY2UoKTsKICAgICBib29sIG9wYXF1ZSA9ICFmaWxsQ29s
b3IuaGFzQWxwaGEoKTsKKyAgICBib29sIGxhc3RTaGFkb3dJdGVyYXRpb25TaG91bGREcmF3VGV4
dCA9ICFzdHJva2VkICYmIG9wYXF1ZTsKICAgICBpZiAoIW9wYXF1ZSkKICAgICAgICAgY29udGV4
dC5zZXRGaWxsQ29sb3IoQ29sb3I6OmJsYWNrLCBmaWxsQ29sb3JTcGFjZSk7CiAKICAgICBkbyB7
Ci0gICAgICAgIGlmIChpc0VtcHR5U2hhZG93KHNoYWRvdykpIHsKKyAgICAgICAgYm9vbCBhdm9p
ZERyYXdpbmdTaGFkb3cgPSBzaGFkb3dJc0NvbXBsZXRlbHlDb3ZlcmVkQnlUZXh0KHNoYWRvdywg
b3BhcXVlKTsKKyAgICAgICAgYm9vbCBvbmx5RHJhd3NTaGFkb3cgPSAhaXNMYXN0U2hhZG93SXRl
cmF0aW9uKHNoYWRvdykgfHwgIWxhc3RTaGFkb3dJdGVyYXRpb25TaG91bGREcmF3VGV4dDsKKyAg
ICAgICAgaWYgKGF2b2lkRHJhd2luZ1NoYWRvdyAmJiBvbmx5RHJhd3NTaGFkb3cpIHsKICAgICAg
ICAgICAgIHNoYWRvdyA9IHNoYWRvdy0+bmV4dCgpOwogICAgICAgICAgICAgY29udGludWU7CiAg
ICAgICAgIH0KIAorICAgICAgICBTaGFkb3dBcHBsaWVyIHNoYWRvd0FwcGxpZXIoY29udGV4dCwg
c2hhZG93LCBib3hSZWN0LCBvbmx5RHJhd3NTaGFkb3csIGF2b2lkRHJhd2luZ1NoYWRvdywgaG9y
aXpvbnRhbCA/IEhvcml6b250YWwgOiBWZXJ0aWNhbCk7CiAgICAgICAgIEludFNpemUgZXh0cmFP
ZmZzZXQ7Ci0gICAgICAgIGJvb2wgZGlkU2F2ZUNvbnRleHQgPSBmYWxzZTsKICAgICAgICAgaWYg
KHNoYWRvdykKLSAgICAgICAgICAgIGV4dHJhT2Zmc2V0ID0gcm91bmRlZEludFNpemUoSW5saW5l
VGV4dEJveDo6YXBwbHlTaGFkb3dUb0dyYXBoaWNzQ29udGV4dChjb250ZXh0LCBzaGFkb3csIGJv
eFJlY3QsIHN0cm9rZWQsIG9wYXF1ZSwgaG9yaXpvbnRhbCwgZGlkU2F2ZUNvbnRleHQpKTsKKyAg
ICAgICAgICAgIGV4dHJhT2Zmc2V0ID0gcm91bmRlZEludFNpemUoc2hhZG93QXBwbGllci5leHRy
YU9mZnNldCgpKTsKICAgICAgICAgZWxzZSBpZiAoIW9wYXF1ZSkKICAgICAgICAgICAgIGNvbnRl
eHQuc2V0RmlsbENvbG9yKGZpbGxDb2xvciwgZmlsbENvbG9yU3BhY2UpOwogCkBAIC0xMDcsMTMg
KzE0NCw4IEBAIHN0YXRpYyB2b2lkIHBhaW50VGV4dFdpdGhTaGFkb3dzKEdyYXBoaWNzQ29udGV4
dCYgY29udGV4dCwgY29uc3QgRm9udCYgZm9udCwgY29uCiAgICAgICAgIGlmICghc2hhZG93KQog
ICAgICAgICAgICAgYnJlYWs7CiAKLSAgICAgICAgaWYgKGRpZFNhdmVDb250ZXh0KQotICAgICAg
ICAgICAgY29udGV4dC5yZXN0b3JlKCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvbnRl
eHQuY2xlYXJTaGFkb3coKTsKLQogICAgICAgICBzaGFkb3cgPSBzaGFkb3ctPm5leHQoKTsKLSAg
ICB9IHdoaWxlIChzaGFkb3cgfHwgc3Ryb2tlZCB8fCAhb3BhcXVlKTsKKyAgICB9IHdoaWxlIChz
aGFkb3cgfHwgIWxhc3RTaGFkb3dJdGVyYXRpb25TaG91bGREcmF3VGV4dCk7CiB9CiAKIHZvaWQg
VGV4dFBhaW50ZXI6OnBhaW50VGV4dCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvVGV4dFBhaW50ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFpbnRl
ci5oCmluZGV4IDk2ZjgzYWEyYjMxMzQxOTY2ZDM2ZjU5MzRiOGE1NzZjM2QwNDA3ZDcuLmEwNzc0
NDk0YTllZDZjZjU4NjAzY2U5ZTk4OGU5ZTFlZTU5MGU1MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFpbnRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9UZXh0UGFpbnRlci5oCkBAIC0yNSw2ICsyNSw3IEBACiAKICNpbmNsdWRlICJBZmZpbmVU
cmFuc2Zvcm0uaCIKICNpbmNsdWRlICJEYXNoQXJyYXkuaCIKKyNpbmNsdWRlICJGb250T3JpZW50
YXRpb24uaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
QEAgLTczLDYgKzc0LDI4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3RleHRCb3hJc0hvcml6b250
YWw7CiB9OwogCitjbGFzcyBTaGFkb3dBcHBsaWVyIHsKK3B1YmxpYzoKKyAgICBTaGFkb3dBcHBs
aWVyKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IFNoYWRvd0RhdGEqLCBjb25zdCBGbG9hdFJlY3Qm
IHRleHRSZWN0LCBib29sIG9ubHlEcmF3c1NoYWRvdywgYm9vbCBzaGFkb3dJc0VtcHR5LCBGb250
T3JpZW50YXRpb24gPSBIb3Jpem9udGFsKTsKKyAgICBGbG9hdFNpemUgZXh0cmFPZmZzZXQoKSBj
b25zdCB7IHJldHVybiBtX2V4dHJhT2Zmc2V0OyB9CisgICAgflNoYWRvd0FwcGxpZXIoKTsKK3By
aXZhdGU6CisgICAgRmxvYXRTaXplIG1fZXh0cmFPZmZzZXQ7CisgICAgR3JhcGhpY3NDb250ZXh0
JiBtX2NvbnRleHQ7CisgICAgY29uc3QgU2hhZG93RGF0YSogbV9zaGFkb3c7CisgICAgYm9vbCBt
X29ubHlEcmF3c1NoYWRvdzsKK307CisKK2lubGluZSBib29sIGlzTGFzdFNoYWRvd0l0ZXJhdGlv
bihjb25zdCBTaGFkb3dEYXRhKiBzaGFkb3cpCit7CisgICAgcmV0dXJuIHNoYWRvdyAmJiAhc2hh
ZG93LT5uZXh0KCk7Cit9CisKK2lubGluZSBib29sIHNoYWRvd0lzQ29tcGxldGVseUNvdmVyZWRC
eVRleHQoY29uc3QgU2hhZG93RGF0YSogc2hhZG93LCBib29sIHRleHRJc09wYXF1ZSA9IGZhbHNl
KQoreworICAgIHJldHVybiB0ZXh0SXNPcGFxdWUgJiYgc2hhZG93ICYmIHNoYWRvdy0+bG9jYXRp
b24oKSA9PSBJbnRQb2ludCgpICYmICFzaGFkb3ctPnJhZGl1cygpOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBUZXh0UGFpbnRlcl9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR0lubGluZVRleHRCb3guY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdJbmxpbmVUZXh0Qm94LmNwcAppbmRleCBjZGVjZGE0NzFh
OTA5MmI5ODg4ZGQyNDY1MzQ5ZGY2OTNjMzA2MDVmLi44NTExZDZlMjUzOWQ5NDAzYWJiYjBlYWNj
MjljOGJiNTI0ZGE0M2Y5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1NWR0lubGluZVRleHRCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
U1ZHSW5saW5lVGV4dEJveC5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJTVkdSZXNv
dXJjZXNDYWNoZS5oIgogI2luY2x1ZGUgIlNWR1Jvb3RJbmxpbmVCb3guaCIKICNpbmNsdWRlICJT
VkdUZXh0UnVuUmVuZGVyaW5nQ29udGV4dC5oIgorI2luY2x1ZGUgIlRleHRQYWludGVyLmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTk0LDIzICs1OTUsMTcgQEAgdm9pZCBTVkdJbmxp
bmVUZXh0Qm94OjpwYWludFRleHRXaXRoU2hhZG93cyhHcmFwaGljc0NvbnRleHQqIGNvbnRleHQs
IFJlbmRlclN0eWwKICAgICAgICAgaWYgKCFwcmVwYXJlR3JhcGhpY3NDb250ZXh0Rm9yVGV4dFBh
aW50aW5nKGNvbnRleHQsIHNjYWxpbmdGYWN0b3IsIHRleHRSdW4sIHN0eWxlKSkKICAgICAgICAg
ICAgIGJyZWFrOwogCi0gICAgICAgIEZsb2F0U2l6ZSBleHRyYU9mZnNldDsKLSAgICAgICAgYm9v
bCBkaWRTYXZlQ29udGV4dCA9IGZhbHNlOwotICAgICAgICBpZiAoc2hhZG93KQotICAgICAgICAg
ICAgZXh0cmFPZmZzZXQgPSBhcHBseVNoYWRvd1RvR3JhcGhpY3NDb250ZXh0KCpjb250ZXh0LCBz
aGFkb3csIHNoYWRvd1JlY3QsIGZhbHNlIC8qIHN0cm9rZWQgKi8sIHRydWUgLyogb3BhcXVlICov
LCB0cnVlIC8qIGhvcml6b250YWwgKi8sIGRpZFNhdmVDb250ZXh0KTsKKyAgICAgICAgeworICAg
ICAgICAgICAgRmxvYXRTaXplIGV4dHJhT2Zmc2V0OworICAgICAgICAgICAgYm9vbCBvbmx5RHJh
d3NTaGFkb3cgPSAhaXNMYXN0U2hhZG93SXRlcmF0aW9uKHNoYWRvdyk7CisgICAgICAgICAgICBT
aGFkb3dBcHBsaWVyIHNoYWRvd0FwcGxpZXIoKmNvbnRleHQsIHNoYWRvdywgc2hhZG93UmVjdCwg
b25seURyYXdzU2hhZG93LCBzaGFkb3dJc0NvbXBsZXRlbHlDb3ZlcmVkQnlUZXh0KHNoYWRvdykp
OwogCi0gICAgICAgIGNvbnRleHQtPnNhdmUoKTsKLSAgICAgICAgY29udGV4dC0+c2NhbGUoRmxv
YXRTaXplKDEgLyBzY2FsaW5nRmFjdG9yLCAxIC8gc2NhbGluZ0ZhY3RvcikpOwotCi0gICAgICAg
IHNjYWxlZEZvbnQuZHJhd1RleHQoY29udGV4dCwgdGV4dFJ1biwgdGV4dE9yaWdpbiArIGV4dHJh
T2Zmc2V0LCBzdGFydFBvc2l0aW9uLCBlbmRQb3NpdGlvbik7CisgICAgICAgICAgICBjb250ZXh0
LT5zYXZlKCk7CisgICAgICAgICAgICBjb250ZXh0LT5zY2FsZShGbG9hdFNpemUoMSAvIHNjYWxp
bmdGYWN0b3IsIDEgLyBzY2FsaW5nRmFjdG9yKSk7CiAKLSAgICAgICAgY29udGV4dC0+cmVzdG9y
ZSgpOworICAgICAgICAgICAgc2NhbGVkRm9udC5kcmF3VGV4dChjb250ZXh0LCB0ZXh0UnVuLCB0
ZXh0T3JpZ2luICsgc2hhZG93QXBwbGllci5leHRyYU9mZnNldCgpLCBzdGFydFBvc2l0aW9uLCBl
bmRQb3NpdGlvbik7CiAKLSAgICAgICAgaWYgKHNoYWRvdykgewotICAgICAgICAgICAgaWYgKGRp
ZFNhdmVDb250ZXh0KQotICAgICAgICAgICAgICAgIGNvbnRleHQtPnJlc3RvcmUoKTsKLSAgICAg
ICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBjb250ZXh0LT5jbGVhclNoYWRvdygpOworICAg
ICAgICAgICAgY29udGV4dC0+cmVzdG9yZSgpOwogICAgICAgICB9CiAKICAgICAgICAgcmVzdG9y
ZUdyYXBoaWNzQ29udGV4dEFmdGVyVGV4dFBhaW50aW5nKGNvbnRleHQsIHRleHRSdW4pOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IGI0YmE2YWEzYzIzYzg0ZTcwMDNiZTBlNzIxNmU1MWQzN2IwYzkzZjMuLjI2NjE1YzFjMzAz
ODJkNzAzMjE2YWE5MjhjODZiZTA1M2ZmODkyMDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAx
NC0wOS0yMiAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAg
ICAgIFJFR1JFU1NJT046IFRleHQgd2l0aCBhIHplcm8gb2Zmc2V0LCB6ZXJvIGJsdXIgc2hhZG93
IHZhbmlzaGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMzY4MDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUaGlzIHRlc3Qgc2hvdWxkIGJlIGEgY29tcHJlaGVuc2l2ZSB0ZXN0IG9mIGVtcHR5IHNoYWRv
d3MuIEl0IHRlc3RzIGV2ZXJ5CisgICAgICAgIGNvbWJpbmF0aW9uIG9mIG9uZSBhbmQgdHdvIHNo
YWRvd3MgYmVpbmcgZW1wdHksIGFzIHdlbGwgYXMgdHJhbnNwYXJlbnQgYW5kCisgICAgICAgIG9w
YXF1ZSB0ZXh0LgorCisgICAgICAgIEFmdGVyIHVwZGF0aW5nIGZhc3QvdGV4dC9lbXB0eS1zaGFk
b3cuaHRtbCwgZmFzdC90ZXh0L2VtcHR5LXNoYWRvdy13aXRoLWNvbG9yLmh0bWwKKyAgICAgICAg
aXMgbm8gbG9uZ2VyIG5lY2Vzc2FyeS4KKworICAgICAgICAqIGZhc3QvdGV4dC9lbXB0eS1zaGFk
b3ctZXhwZWN0ZWQuaHRtbDoKKyAgICAgICAgKiBmYXN0L3RleHQvZW1wdHktc2hhZG93LXdpdGgt
Y29sb3ItZXhwZWN0ZWQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3RleHQvZW1wdHkt
c2hhZG93LXdpdGgtY29sb3IuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3RleHQvZW1w
dHktc2hhZG93Lmh0bWw6CisKIDIwMTQtMDktMjIgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUu
Y29tPgogCiAgICAgICAgIEJhZCBjYXN0IGluIGlzVmFsaWRDb2x1bW5TcGFubmVyLgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2VtcHR5LXNoYWRvdy1leHBlY3RlZC5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC90ZXh0L2VtcHR5LXNoYWRvdy1leHBlY3RlZC5odG1sCmluZGV4IGNl
MmI5NmIwYmQwMmY5Y2ZjOGRmYzY5OTc3MTYzYzk1MmY2NjM2YTguLjJiM2ZhZWE1YzQwZmIzZGQy
ZTkzMTc4MWJhZTAwOGVlNDkyZGFkZGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvdGV4
dC9lbXB0eS1zaGFkb3ctZXhwZWN0ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQv
ZW1wdHktc2hhZG93LWV4cGVjdGVkLmh0bWwKQEAgLTEsMyArMSwyMCBAQAotVGhpcyB0ZXN0cyB0
aGF0IHRleHQgZHJhd24gd2l0aCB0ZXh0LXNoYWRvd3Mgb2YgcmFkaXVzIDAgYW5kICgwLCAwKSBv
ZmZzZXQgYXJlIG5vdCBkcmF3bi4KLVRoaXMgaXMgYSBiZXR0ZXIgb3V0Y29tZSB0aGFuIHRoZW0g
YmVpbmcgZHJhd24gaW4gYW4gdWdseSB3YXkuCi1UaGlzIHRlc3QgaXMgc3VjY2Vzc2Z1bCBpZiB0
aGUgdGV4dCBiZWxvdyBpcyBjb21wbGV0ZWx5IGludmlzaWJsZS4KKzxwPlRoaXMgdGVzdHMgdGhh
dCB0ZXh0IGRyYXduIHdpdGggdGV4dC1zaGFkb3dzIG9mIHJhZGl1cyAwIGFuZCAoMCwgMCkgb2Zm
c2V0IGFyZSBub3QgZHJhd24uPC9wPgorPHA+SW4gdGhlIGZvbGxvd2luZyB0ZXN0cywgdGhlIGFj
dHVhbCB0ZXh0IGlzIGdyZWVuIHdoaWxlIHRoZSBzaGFkb3dzIGFyZSBibHVlLjwvcD4KKworPGRp
diBzdHlsZT0iY29sb3I6IGdyZWVuOyI+Cis8ZGl2IHN0eWxlPSJ0ZXh0LXNoYWRvdzogNXB4IDVw
eCBibHVlOyI+VGV4dCB3aXRoIGEgc2luZ2xlIHNoYWRvdy48L2Rpdj4KKzxkaXY+VGV4dCB3aXRo
IG9uZSBlbXB0eSAodW5kcmF3bikgc2hhZG93LjwvZGl2PgorPGRpdiBzdHlsZT0idGV4dC1zaGFk
b3c6IDVweCA1cHggYmx1ZSwgMTBweCAxMHB4IGJsdWU7Ij5UZXh0IHdpdGggdHdvIHNoYWRvd3M8
L2Rpdj4KKzxkaXYgc3R5bGU9InRleHQtc2hhZG93OiA1cHggNXB4IGJsdWU7Ij5UZXh0IHdpdGgg
dHdvIHNoYWRvd3M6IGZpcnN0IGRyYXduIGFuZCBzZWNvbmQgZW1wdHkgKHVuZHJhd24pLjwvZGl2
PgorPGRpdiBzdHlsZT0idGV4dC1zaGFkb3c6IDEwcHggMTBweCBibHVlOyI+VGV4dCB3aXRoIHR3
byBzaGFkb3dzOiBmaXJzdCBlbXB0eSAodW5kcmF3bikgYW5kIHNlY29uZCBkcmF3bi48L2Rpdj4K
KzxkaXY+VGV4dCB3aXRoIHR3byBlbXB0eSAodW5kcmF3bikgc2hhZG93cy48L2Rpdj4KKzwvZGl2
PgorCis8ZGl2IHN0eWxlPSJjb2xvcjogdHJhbnNwYXJlbnQ7Ij4KKzxkaXYgc3R5bGU9InRleHQt
c2hhZG93OiA1cHggNXB4IGJsdWU7Ij5UcmFuc3BhcmVudCB0ZXh0IHdpdGggYSBzaW5nbGUgc2hh
ZG93LjwvZGl2PgorPGRpdiBzdHlsZT0iY29sb3I6IGJsdWU7Ij5UcmFuc3BhcmVudCB0ZXh0IHdp
dGggb25lIGVtcHR5IHNoYWRvdy48L2Rpdj4KKzxkaXYgc3R5bGU9InRleHQtc2hhZG93OiA1cHgg
NXB4IGJsdWUsIDEwcHggMTBweCBibHVlOyI+VHJhbnNwYXJlbnQgdGV4dCB3aXRoIHR3byBzaGFk
b3dzPC9kaXY+Cis8ZGl2IHN0eWxlPSJjb2xvcjogYmx1ZTsgdGV4dC1zaGFkb3c6IDdweCA3cHgg
Ymx1ZTsiPlRyYW5zcGFyZW50IHRleHQgd2l0aCB0d28gc2hhZG93czogZmlyc3QgZHJhd24gYW5k
IHNlY29uZCBlbXB0eS48L2Rpdj4KKzxkaXYgc3R5bGU9ImNvbG9yOiBibHVlOyB0ZXh0LXNoYWRv
dzogMTBweCAxMHB4IGJsdWU7Ij5UcmFuc3BhcmVudCB0ZXh0IHdpdGggdHdvIHNoYWRvd3M6IGZp
cnN0IGRyYXduIGFuZCBzZWNvbmQgZW1wdHkuPC9kaXY+Cis8ZGl2IHN0eWxlPSJjb2xvcjogYmx1
ZTsgcG9zaXRpb246IHJlbGF0aXZlOyI+PGRpdiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBs
ZWZ0OiAwcHg7IHRvcDogMHB4OyI+VHJhbnNwYXJlbnQgdGV4dCB3aXRoIHR3byBlbXB0eSBzaGFk
b3dzLjwvZGl2PjxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMHB4OyB0b3A6
IDBweDsiPlRyYW5zcGFyZW50IHRleHQgd2l0aCB0d28gZW1wdHkgc2hhZG93cy48L2Rpdj48L2Rp
dj4KKzwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2VtcHR5LXNoYWRv
dy13aXRoLWNvbG9yLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvZW1wdHkt
c2hhZG93LXdpdGgtY29sb3ItZXhwZWN0ZWQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNDVhNGQ5MjBmNzM1Y2NjOGY4NmYyZDc3MDYwNTdiZmRlNDYyZjAzYi4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Rl
eHQvZW1wdHktc2hhZG93LXdpdGgtY29sb3ItZXhwZWN0ZWQuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDE1ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzdHlsZT4K
LSN0ZXN0IHsKLSAgICBjb2xvcjogZ3JlZW47Ci0gICAgZm9udC1zaXplOiAxNnB4OwotfQotPC9z
dHlsZT4KLTwvaGVhZD4KLTxib2R5PgotVGhpcyB0ZXN0IG1ha2VzIHN1cmUgdGhhdCB0ZXh0IGRy
YXduIHdpdGggYW4gZW1wdHkgc2hhZG93IGlzIGNvbG9yZWQgY29ycmVjdGx5LiBJdCBwYXNzZXMg
aWYgdGhlIGZvbGxvd2luZyB0ZXh0IGlzIGdyZWVuLgotPGRpdiBpZD0idGVzdCI+VGhpcyBzaG91
bGQgYmUgZ3JlZW4uPC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3RleHQvZW1wdHktc2hhZG93LXdpdGgtY29sb3IuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvdGV4dC9lbXB0eS1zaGFkb3ctd2l0aC1jb2xvci5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAzZmRmOTVjM2ZiNzdkOTIxMmRlY2I1ZDIzZmY4MWQ1OTQ5MzhiNzhhLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvdGV4dC9lbXB0eS1zaGFkb3ctd2l0aC1jb2xvci5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsMTcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHN0eWxlPgot
I3Rlc3QgewotICAgIGNvbG9yOiBncmVlbjsKLSAgICBmb250LXNpemU6IDE2cHg7Ci0gICAgdGV4
dC1zaGFkb3c6IHJlZCAyMHB4IDIwcHgsIHJlZCAwcHggMHB4OwotICAgIG92ZXJmbG93OiBoaWRk
ZW47Ci19Ci08L3N0eWxlPgotPC9oZWFkPgotPGJvZHk+Ci1UaGlzIHRlc3QgbWFrZXMgc3VyZSB0
aGF0IHRleHQgZHJhd24gd2l0aCBhbiBlbXB0eSBzaGFkb3cgaXMgY29sb3JlZCBjb3JyZWN0bHku
IEl0IHBhc3NlcyBpZiB0aGUgZm9sbG93aW5nIHRleHQgaXMgZ3JlZW4uCi08ZGl2IGlkPSJ0ZXN0
Ij5UaGlzIHNob3VsZCBiZSBncmVlbi48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9lbXB0eS1zaGFkb3cuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvdGV4dC9lbXB0eS1zaGFkb3cuaHRtbAppbmRleCA0MjdjZGQ4YzYzYzlhMTgyYTVjMGRm
MWFkMjhkMzFkNDRiMjRhM2NmLi4yYjNlNzc4MzRjYWVkMjI5OTllZDgwOGUzNTUwNDY2ZWZhMGI4
NDkxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvZW1wdHktc2hhZG93Lmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2VtcHR5LXNoYWRvdy5odG1sCkBAIC0xLDQgKzEs
MjAgQEAKLVRoaXMgdGVzdHMgdGhhdCB0ZXh0IGRyYXduIHdpdGggdGV4dC1zaGFkb3dzIG9mIHJh
ZGl1cyAwIGFuZCAoMCwgMCkgb2Zmc2V0IGFyZSBub3QgZHJhd24uCi1UaGlzIGlzIGEgYmV0dGVy
IG91dGNvbWUgdGhhbiB0aGVtIGJlaW5nIGRyYXduIGluIGFuIHVnbHkgd2F5LgotVGhpcyB0ZXN0
IGlzIHN1Y2Nlc3NmdWwgaWYgdGhlIHRleHQgYmVsb3cgaXMgY29tcGxldGVseSBpbnZpc2libGUu
Ci08ZGl2IHN0eWxlPSJjb2xvcjojZmZmO3RleHQtc2hhZG93OjAgMCAjMDAwIj5UaGlzIGlzIHNv
bWUgdGV4dDwvZGl2PgorPHA+VGhpcyB0ZXN0cyB0aGF0IHRleHQgZHJhd24gd2l0aCB0ZXh0LXNo
YWRvd3Mgb2YgcmFkaXVzIDAgYW5kICgwLCAwKSBvZmZzZXQgYXJlIG5vdCBkcmF3bi48L3A+Cis8
cD5JbiB0aGUgZm9sbG93aW5nIHRlc3RzLCB0aGUgYWN0dWFsIHRleHQgaXMgZ3JlZW4gd2hpbGUg
dGhlIHNoYWRvd3MgYXJlIGJsdWUuPC9wPgorCis8ZGl2IHN0eWxlPSJjb2xvcjogZ3JlZW47Ij4K
KzxkaXYgc3R5bGU9InRleHQtc2hhZG93OiA1cHggNXB4IGJsdWU7Ij5UZXh0IHdpdGggYSBzaW5n
bGUgc2hhZG93LjwvZGl2PgorPGRpdiBzdHlsZT0idGV4dC1zaGFkb3c6IDBweCAwcHggYmx1ZTsi
PlRleHQgd2l0aCBvbmUgZW1wdHkgKHVuZHJhd24pIHNoYWRvdy48L2Rpdj4KKzxkaXYgc3R5bGU9
InRleHQtc2hhZG93OiA1cHggNXB4IGJsdWUsIDEwcHggMTBweCBibHVlOyI+VGV4dCB3aXRoIHR3
byBzaGFkb3dzPC9kaXY+Cis8ZGl2IHN0eWxlPSJ0ZXh0LXNoYWRvdzogNXB4IDVweCBibHVlLCAw
cHggMHB4IGJsdWU7Ij5UZXh0IHdpdGggdHdvIHNoYWRvd3M6IGZpcnN0IGRyYXduIGFuZCBzZWNv
bmQgZW1wdHkgKHVuZHJhd24pLjwvZGl2PgorPGRpdiBzdHlsZT0idGV4dC1zaGFkb3c6IDBweCAw
cHggYmx1ZSwgMTBweCAxMHB4IGJsdWU7Ij5UZXh0IHdpdGggdHdvIHNoYWRvd3M6IGZpcnN0IGVt
cHR5ICh1bmRyYXduKSBhbmQgc2Vjb25kIGRyYXduLjwvZGl2PgorPGRpdiBzdHlsZT0idGV4dC1z
aGFkb3c6IDBweCAwcHggYmx1ZSwgMHB4IDBweCBibHVlOyI+VGV4dCB3aXRoIHR3byBlbXB0eSAo
dW5kcmF3bikgc2hhZG93cy48L2Rpdj4KKzwvZGl2PgorCis8ZGl2IHN0eWxlPSJjb2xvcjogdHJh
bnNwYXJlbnQ7Ij4KKzxkaXYgc3R5bGU9InRleHQtc2hhZG93OiA1cHggNXB4IGJsdWU7Ij5UcmFu
c3BhcmVudCB0ZXh0IHdpdGggYSBzaW5nbGUgc2hhZG93LjwvZGl2PgorPGRpdiBzdHlsZT0idGV4
dC1zaGFkb3c6IDBweCAwcHggYmx1ZTsiPlRyYW5zcGFyZW50IHRleHQgd2l0aCBvbmUgZW1wdHkg
c2hhZG93LjwvZGl2PgorPGRpdiBzdHlsZT0idGV4dC1zaGFkb3c6IDVweCA1cHggYmx1ZSwgMTBw
eCAxMHB4IGJsdWU7Ij5UcmFuc3BhcmVudCB0ZXh0IHdpdGggdHdvIHNoYWRvd3M8L2Rpdj4KKzxk
aXYgc3R5bGU9InRleHQtc2hhZG93OiA3cHggN3B4IGJsdWUsIDBweCAwcHggYmx1ZTsiPlRyYW5z
cGFyZW50IHRleHQgd2l0aCB0d28gc2hhZG93czogZmlyc3QgZHJhd24gYW5kIHNlY29uZCBlbXB0
eS48L2Rpdj4KKzxkaXYgc3R5bGU9InRleHQtc2hhZG93OiAwcHggMHB4IGJsdWUsIDEwcHggMTBw
eCBibHVlOyI+VHJhbnNwYXJlbnQgdGV4dCB3aXRoIHR3byBzaGFkb3dzOiBmaXJzdCBkcmF3biBh
bmQgc2Vjb25kIGVtcHR5LjwvZGl2PgorPGRpdiBzdHlsZT0idGV4dC1zaGFkb3c6IDBweCAwcHgg
Ymx1ZSwgMHB4IDBweCBibHVlOyI+VHJhbnNwYXJlbnQgdGV4dCB3aXRoIHR3byBlbXB0eSBzaGFk
b3dzLjwvZGl2PgorPC9kaXY+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238571</attachid>
            <date>2014-09-23 14:16:39 -0700</date>
            <delta_ts>2014-09-24 12:19:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136801-20140923141638.patch</filename>
            <type>text/plain</type>
            <size>19395</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTczODg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODYxZmM0ZGJhYTcxOTYz
NDMzMTVhYmU4OWU2OTY5NzExMTZhYjYzOC4uZGYwNTc0MmVmNDZlMmQ1OWMwOTNmYTVlYmIxYWEy
OTcyZGNhOTVlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDE0LTA5LTIzICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lP
TjogVGV4dCB3aXRoIGEgemVybyBvZmZzZXQsIHplcm8gYmx1ciBzaGFkb3cgdmFuaXNoZXMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNjgwMQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
cGVyZm9ybXMgc29tZSBjbGVhbnVwIHJlZ2FyZGluZyBUZXh0UGFpbnRlcidzIHNoYWRvdyBsb2dp
YyBhbmQgaGFuZGxlcyBhbgorICAgICAgICBhZGRpdGlvbmFsIGNhc2Ugb2YgZW1wdHkgc2hhZG93
cy4gUHJldmlvdXNseSwgdGhlcmUgd2FzIHRpZ2h0IGNvdXBsaW5nIGJldHdlZW4KKyAgICAgICAg
YXBwbHlTaGFkb3dUb0dyYXBoaWNhbENvbnRleHQoKSBhbmQgcGFpbnRUZXh0V2l0aFNoYWRvd3Mo
KSwgYXMgdGhleSBib3RoIHVzZWQgYQorICAgICAgICBjb2xsZWN0aW9uIG9mIHZhcmlhYmxlcyB0
byBkZXRlcm1pbmUgaG93IHNoYWRvd3MgYXJlIHRvIGJlIGRyYXduLiBUaGlzIGNvbXBsZXhpdHkg
aGFzCisgICAgICAgIGJlZW4gbW92ZWQgaW50byBhIGhlbHBlciBjbGFzcywgU2hhZG93QXBwbGll
ciwgd2hpY2ggcGVyZm9ybXMgd2hhdAorICAgICAgICBhcHBseVNoYWRvd1RvR3JhcGhpY3NDb250
ZXh0KCkgdXNlZCB0byBkbywgYW5kIGNsZWFucyB1cCBjb3JyZWN0bHkgaW4gaXRzIGRlc3RydWN0
b3IuCisgICAgICAgIFRoaXMgcmVtb3ZlcyB0aGUgdGlnaHQgY291cGxpbmcgbWVudGlvbmVkIGVh
cmxpZXIuCisKKyAgICAgICAgVGVzdDogZmFzdC90ZXh0L2VtcHR5LXNoYWRvdy5odG1sCisKKyAg
ICAgICAgKiByZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bmxpbmVUZXh0Qm94OjphcHBseVNoYWRvd1RvR3JhcGhpY3NDb250ZXh0KTogTW92ZWQgdG8gU2hh
ZG93QXBwbGllci4KKyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5lVGV4dEJveC5oOiBEZWxldGVk
IGFwcGx5U2hhZG93VG9HcmFwaGljc0NvbnRleHQgc2lnbmF0dXJlLgorICAgICAgICAqIHJlbmRl
cmluZy9UZXh0UGFpbnRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dBcHBsaWVyOjpT
aGFkb3dBcHBsaWVyKTogUGVyZm9ybSB0aGUgY29udGVudHMgb2YgYXBwbHlTaGFkb3dUb0dyYXBo
aWNzQ29udGV4dCgpCisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dBcHBsaWVyOjp+U2hhZG93QXBw
bGllcik6IFVuZG8gdGhlIHdvcmsgZG9uZSBwcmV2aW91c2x5CisgICAgICAgIChXZWJDb3JlOjpw
YWludFRleHRXaXRoU2hhZG93cyk6IENyZWF0ZSBhIFNoYWRvd0FwcGxpZXIgdG8gZG8gdGhlIHJl
bGV2YW50IHNoYWRvdyB3b3JrLiBJbiBhZGRpdGlvbiwKKyAgICAgICAgcmVmYWN0b3Igc29tZSBi
b29sZWFuIGZsYWdzIHRvIG1vcmUgbWVhbmluZ2Z1bCBvbmVzIHdpdGggcmVsYXRpb24gdG8gdGhl
IGNvbXB1dGF0aW9uIGF0IGhhbmQuCisgICAgICAgIChXZWJDb3JlOjppc0VtcHR5U2hhZG93KTog
TW92ZWQgdG8gVGV4dFBhaW50ZXIuaCwgbmFtZWQgc2hhZG93SXNDb21wbGV0ZWx5Q292ZXJlZEJ5
VGV4dCgpCisgICAgICAgICogcmVuZGVyaW5nL1RleHRQYWludGVyLmg6CisgICAgICAgIChXZWJD
b3JlOjpTaGFkb3dBcHBsaWVyOjpTaGFkb3dBcHBsaWVyKTogTW92ZWQgZnJvbSBJbmxpbmVUZXh0
Qm94OjphcHBseVNoYWRvd1RvR3JhcGhpY3NDb250ZXh0KCkuCisgICAgICAgIChXZWJDb3JlOjpT
aGFkb3dBcHBsaWVyOjpleHRyYU9mZnNldCk6IEdldHRlci4KKyAgICAgICAgKFdlYkNvcmU6OlNo
YWRvd0FwcGxpZXI6On5TaGFkb3dBcHBsaWVyKTogTW92ZWQgZnJvbSBUZXh0UGFpbnRlcjo6cGFp
bnRUZXh0V2l0aFNoYWRvd3MoKS4KKyAgICAgICAgKFdlYkNvcmU6OmlzTGFzdFNoYWRvd0l0ZXJh
dGlvbik6IEhlbHBlciBmdW5jdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OnNoYWRvd0lzQ29tcGxl
dGVseUNvdmVyZWRCeVRleHQpOiBEZXRlcm1pbmVzIHdoZXRoZXIgb3Igbm90IHdlIHNob3VsZCBu
b3QgZHJhdyB0aGUgc2hhZG93LgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvU1ZHSW5saW5lVGV4
dEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdJbmxpbmVUZXh0Qm94OjpwYWludFRleHRX
aXRoU2hhZG93cyk6IFVwZGF0ZSB0byB1c2UgU2hhZG93QXBwbGllci4KKwogMjAxNC0wOS0yMyAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEhhdmUgRE9NSW1wbGVt
ZW50YXRpb246OmRvY3VtZW50KCkgYW5kIEVsZW1lbnQ6OmF0dHJpYnV0ZXMoKSByZXR1cm4gcmVm
ZXJlbmNlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRC
b3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCmluZGV4
IDI2MDBjYWE3ZTlkZjc5MGI2NDM4Y2I1MjY5NGFkYWI4YzJjYTVhZDUuLmIyZGE1OGJiNTVjZjkw
YTYxZWViODgwNGQ5YzIwYWExZGNhNDlmZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
SW5saW5lVGV4dEJveC5jcHAKQEAgLTQyNCwzNCArNDI0LDYgQEAgYm9vbCBJbmxpbmVUZXh0Qm94
Ojpub2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYgcmVxdWVzdCwgSGl0VGVzdFJlc3Vs
dCYgcmUKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLUZsb2F0U2l6ZSBJbmxpbmVUZXh0Qm94Ojph
cHBseVNoYWRvd1RvR3JhcGhpY3NDb250ZXh0KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29u
c3QgU2hhZG93RGF0YSogc2hhZG93LCBjb25zdCBGbG9hdFJlY3QmIHRleHRSZWN0LCBib29sIHN0
cm9rZWQsIGJvb2wgb3BhcXVlLCBib29sIGhvcml6b250YWwsIGJvb2wmIGRpZFNhdmVDb250ZXh0
KQotewotICAgIGlmICghc2hhZG93KQotICAgICAgICByZXR1cm4gRmxvYXRTaXplKCk7Ci0KLSAg
ICBGbG9hdFNpemUgZXh0cmFPZmZzZXQ7Ci0gICAgaW50IHNoYWRvd1ggPSBob3Jpem9udGFsID8g
c2hhZG93LT54KCkgOiBzaGFkb3ctPnkoKTsKLSAgICBpbnQgc2hhZG93WSA9IGhvcml6b250YWwg
PyBzaGFkb3ctPnkoKSA6IC1zaGFkb3ctPngoKTsKLSAgICBGbG9hdFNpemUgc2hhZG93T2Zmc2V0
KHNoYWRvd1gsIHNoYWRvd1kpOwotICAgIGludCBzaGFkb3dSYWRpdXMgPSBzaGFkb3ctPnJhZGl1
cygpOwotICAgIGNvbnN0IENvbG9yJiBzaGFkb3dDb2xvciA9IHNoYWRvdy0+Y29sb3IoKTsKLQot
ICAgIGlmIChzaGFkb3ctPm5leHQoKSB8fCBzdHJva2VkIHx8ICFvcGFxdWUpIHsKLSAgICAgICAg
RmxvYXRSZWN0IHNoYWRvd1JlY3QodGV4dFJlY3QpOwotICAgICAgICBzaGFkb3dSZWN0LmluZmxh
dGUoc2hhZG93LT5wYWludGluZ0V4dGVudCgpKTsKLSAgICAgICAgc2hhZG93UmVjdC5tb3ZlKHNo
YWRvd09mZnNldCk7Ci0gICAgICAgIGNvbnRleHQuc2F2ZSgpOwotICAgICAgICBjb250ZXh0LmNs
aXAoc2hhZG93UmVjdCk7Ci0KLSAgICAgICAgZXh0cmFPZmZzZXQgPSBGbG9hdFNpemUoMCwgMiAq
IHRleHRSZWN0LmhlaWdodCgpICsgc3RkOjptYXgoMC4wZiwgc2hhZG93T2Zmc2V0LmhlaWdodCgp
KSArIHNoYWRvd1JhZGl1cyk7Ci0gICAgICAgIHNoYWRvd09mZnNldCAtPSBleHRyYU9mZnNldDsK
LSAgICAgICAgZGlkU2F2ZUNvbnRleHQgPSB0cnVlOwotICAgIH0KLQotICAgIGNvbnRleHQuc2V0
U2hhZG93KHNoYWRvd09mZnNldCwgc2hhZG93UmFkaXVzLCBzaGFkb3dDb2xvciwgY29udGV4dC5m
aWxsQ29sb3JTcGFjZSgpKTsKLSAgICByZXR1cm4gZXh0cmFPZmZzZXQ7Ci19Ci0KIHN0YXRpYyBp
bmxpbmUgYm9vbCBlbXBoYXNpc1Bvc2l0aW9uSGFzTmVpdGhlckxlZnROb3JSaWdodChUZXh0RW1w
aGFzaXNQb3NpdGlvbiBlbXBoYXNpc1Bvc2l0aW9uKQogewogICAgIHJldHVybiAhKGVtcGhhc2lz
UG9zaXRpb24gJiBUZXh0RW1waGFzaXNQb3NpdGlvbkxlZnQpICYmICEoZW1waGFzaXNQb3NpdGlv
biAmIFRleHRFbXBoYXNpc1Bvc2l0aW9uUmlnaHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9J
bmxpbmVUZXh0Qm94LmgKaW5kZXggZTg5YTJjZDljN2Y5ODg5OWFiNDczZWZiNzQyN2UzODQ2NGE3
OWM5Yi4uNmY4MThjNDViMTdiYmZhODc3MjI3ZjIzN2E0NjcxOTM1NzFhYjQ0MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5oCkBAIC0xNTQsOSArMTU0LDYgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgaW50IG9mZnNldEZvclBvc2l0aW9uKGZsb2F0IHgsIGJvb2wgaW5j
bHVkZVBhcnRpYWxHbHlwaHMgPSB0cnVlKSBjb25zdDsKICAgICB2aXJ0dWFsIGZsb2F0IHBvc2l0
aW9uRm9yT2Zmc2V0KGludCBvZmZzZXQpIGNvbnN0OwogCi0gICAgLy8gTmVlZHMgdG8gYmUgcHVi
bGljLCBzbyB0aGUgc3RhdGljIHBhaW50VGV4dFdpdGhTaGFkb3dzKCkgZnVuY3Rpb24gY2FuIHVz
ZSBpdC4KLSAgICBzdGF0aWMgRmxvYXRTaXplIGFwcGx5U2hhZG93VG9HcmFwaGljc0NvbnRleHQo
R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgU2hhZG93RGF0YSosIGNvbnN0IEZsb2F0UmVjdCYgdGV4
dFJlY3QsIGJvb2wgc3Ryb2tlZCwgYm9vbCBvcGFxdWUsIGJvb2wgaG9yaXpvbnRhbCwgYm9vbCYg
ZGlkU2F2ZUNvbnRleHQpOwotCiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBwYWludENvbXBvc2l0aW9u
QmFja2dyb3VuZChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFBvaW50JiBib3hPcmlnaW4s
IGNvbnN0IFJlbmRlclN0eWxlJiwgY29uc3QgRm9udCYsIGludCBzdGFydFBvcywgaW50IGVuZFBv
cyk7CiAgICAgdm9pZCBwYWludERvY3VtZW50TWFya2VycyhHcmFwaGljc0NvbnRleHQqLCBjb25z
dCBGbG9hdFBvaW50JiBib3hPcmlnaW4sIGNvbnN0IFJlbmRlclN0eWxlJiwgY29uc3QgRm9udCYs
IGJvb2wgYmFja2dyb3VuZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
VGV4dFBhaW50ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRQYWludGVyLmNw
cAppbmRleCBmYTFkNzlhMDBmOWYxOTJiOGM4YmYxYTI0Nzc0ZGY0NGU4ZjdmNWM0Li4wMmFkNGRm
NmUyM2M5YmMxZjcxNDMyZjliZWYyMTVlNDQxMzU5ZmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvVGV4dFBhaW50ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9UZXh0UGFpbnRlci5jcHAKQEAgLTY1LDExICs2NSw0NSBAQCBzdGF0aWMgdm9pZCBkcmF3
VGV4dE9yRW1waGFzaXNNYXJrcyhHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZvbnQm
IGZvbnQsCiAgICAgICAgIGNvbnRleHQuZHJhd0VtcGhhc2lzTWFya3MoZm9udCwgdGV4dFJ1biwg
ZW1waGFzaXNNYXJrLCBwb2ludCArIEludFNpemUoMCwgZW1waGFzaXNNYXJrT2Zmc2V0KSwgZnJv
bSwgdG8pOwogfQogCi1zdGF0aWMgYm9vbCBpc0VtcHR5U2hhZG93KGNvbnN0IFNoYWRvd0RhdGEq
IHNoYWRvdykKK1NoYWRvd0FwcGxpZXI6OlNoYWRvd0FwcGxpZXIoR3JhcGhpY3NDb250ZXh0JiBj
b250ZXh0LCBjb25zdCBTaGFkb3dEYXRhKiBzaGFkb3csIGNvbnN0IEZsb2F0UmVjdCYgdGV4dFJl
Y3QsIGJvb2wgb25seURyYXdzU2hhZG93LCBib29sIGF2b2lkRHJhd2luZ1NoYWRvdywgRm9udE9y
aWVudGF0aW9uIG9yaWVudGF0aW9uKQorICAgIDogbV9jb250ZXh0KGNvbnRleHQpCisgICAgLCBt
X3NoYWRvdyhzaGFkb3cpCisgICAgLCBtX29ubHlEcmF3c1NoYWRvdyhvbmx5RHJhd3NTaGFkb3cp
CiB7CiAgICAgaWYgKCFzaGFkb3cpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1cm4g
c2hhZG93LT5sb2NhdGlvbigpID09IEludFBvaW50KCkgJiYgIXNoYWRvdy0+cmFkaXVzKCk7Cisg
ICAgICAgIHJldHVybjsKKyAgICBpbnQgc2hhZG93WCA9IG9yaWVudGF0aW9uID09IEhvcml6b250
YWwgPyBzaGFkb3ctPngoKSA6IHNoYWRvdy0+eSgpOworICAgIGludCBzaGFkb3dZID0gb3JpZW50
YXRpb24gPT0gSG9yaXpvbnRhbCA/IHNoYWRvdy0+eSgpIDogLXNoYWRvdy0+eCgpOworICAgIEZs
b2F0U2l6ZSBzaGFkb3dPZmZzZXQoc2hhZG93WCwgc2hhZG93WSk7CisgICAgaW50IHNoYWRvd1Jh
ZGl1cyA9IHNoYWRvdy0+cmFkaXVzKCk7CisgICAgY29uc3QgQ29sb3ImIHNoYWRvd0NvbG9yID0g
c2hhZG93LT5jb2xvcigpOworCisgICAgLy8gV2hlbiBkcmF3aW5nIHNoYWRvd3MsIHdlIHVzdWFs
bHkgY2xpcCB0aGUgY29udGV4dCB0byB0aGUgYXJlYSB0aGUgc2hhZG93IHdpbGwgcmVzaWRlLCBh
bmQgdGhlbgorICAgIC8vIGRyYXcgdGhlIHRleHQgaXRzZWxmIG91dHNpZGUgdGhlIGNsaXBwZWQg
YXJlYSAoc28gb25seSB0aGUgc2hhZG93IHNob3dzIHVwKS4gSG93ZXZlciwgd2UgY2FuCisgICAg
Ly8gb2Z0ZW4gZHJhdyB0aGUgOjpsYXN0Ojogc2hhZG93IGFuZCB0aGUgdGV4dCBpdHNlbGYgaW4g
YSBzaW5nbGUgY2FsbC4KKyAgICBpZiAob25seURyYXdzU2hhZG93KSB7CisgICAgICAgIEZsb2F0
UmVjdCBzaGFkb3dSZWN0KHRleHRSZWN0KTsKKyAgICAgICAgc2hhZG93UmVjdC5pbmZsYXRlKHNo
YWRvdy0+cGFpbnRpbmdFeHRlbnQoKSk7CisgICAgICAgIHNoYWRvd1JlY3QubW92ZShzaGFkb3dP
ZmZzZXQpOworICAgICAgICBjb250ZXh0LnNhdmUoKTsKKyAgICAgICAgY29udGV4dC5jbGlwKHNo
YWRvd1JlY3QpOworCisgICAgICAgIG1fZXh0cmFPZmZzZXQgPSBGbG9hdFNpemUoMCwgMiAqIHRl
eHRSZWN0LmhlaWdodCgpICsgc3RkOjptYXgoMC4wZiwgc2hhZG93T2Zmc2V0LmhlaWdodCgpKSAr
IHNoYWRvd1JhZGl1cyk7CisgICAgICAgIHNoYWRvd09mZnNldCAtPSBtX2V4dHJhT2Zmc2V0Owor
ICAgIH0KKworICAgIGlmICghYXZvaWREcmF3aW5nU2hhZG93KQorICAgICAgICBjb250ZXh0LnNl
dFNoYWRvdyhzaGFkb3dPZmZzZXQsIHNoYWRvd1JhZGl1cywgc2hhZG93Q29sb3IsIGNvbnRleHQu
ZmlsbENvbG9yU3BhY2UoKSk7Cit9CisKK1NoYWRvd0FwcGxpZXI6On5TaGFkb3dBcHBsaWVyKCkK
K3sKKyAgICBpZiAoIW1fc2hhZG93KQorICAgICAgICByZXR1cm47CisgICAgaWYgKG1fb25seURy
YXdzU2hhZG93KQorICAgICAgICBtX2NvbnRleHQucmVzdG9yZSgpOworICAgIGVsc2UKKyAgICAg
ICAgbV9jb250ZXh0LmNsZWFyU2hhZG93KCk7CiB9CiAKIHN0YXRpYyB2b2lkIHBhaW50VGV4dFdp
dGhTaGFkb3dzKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRm9udCYgZm9udCwgY29u
c3QgVGV4dFJ1biYgdGV4dFJ1biwgY29uc3QgQXRvbWljU3RyaW5nJiBlbXBoYXNpc01hcmssCkBA
IC03OSwyMCArMTEzLDIxIEBAIHN0YXRpYyB2b2lkIHBhaW50VGV4dFdpdGhTaGFkb3dzKEdyYXBo
aWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRm9udCYgZm9udCwgY29uCiAgICAgQ29sb3IgZmls
bENvbG9yID0gY29udGV4dC5maWxsQ29sb3IoKTsKICAgICBDb2xvclNwYWNlIGZpbGxDb2xvclNw
YWNlID0gY29udGV4dC5maWxsQ29sb3JTcGFjZSgpOwogICAgIGJvb2wgb3BhcXVlID0gIWZpbGxD
b2xvci5oYXNBbHBoYSgpOworICAgIGJvb2wgbGFzdFNoYWRvd0l0ZXJhdGlvblNob3VsZERyYXdU
ZXh0ID0gIXN0cm9rZWQgJiYgb3BhcXVlOwogICAgIGlmICghb3BhcXVlKQogICAgICAgICBjb250
ZXh0LnNldEZpbGxDb2xvcihDb2xvcjo6YmxhY2ssIGZpbGxDb2xvclNwYWNlKTsKIAogICAgIGRv
IHsKLSAgICAgICAgaWYgKGlzRW1wdHlTaGFkb3coc2hhZG93KSkgeworICAgICAgICBib29sIGF2
b2lkRHJhd2luZ1NoYWRvdyA9IHNoYWRvd0lzQ29tcGxldGVseUNvdmVyZWRCeVRleHQoc2hhZG93
LCBvcGFxdWUpOworICAgICAgICBib29sIG9ubHlEcmF3c1NoYWRvdyA9ICFpc0xhc3RTaGFkb3dJ
dGVyYXRpb24oc2hhZG93KSB8fCAhbGFzdFNoYWRvd0l0ZXJhdGlvblNob3VsZERyYXdUZXh0Owor
ICAgICAgICBpZiAoYXZvaWREcmF3aW5nU2hhZG93ICYmIG9ubHlEcmF3c1NoYWRvdykgewogICAg
ICAgICAgICAgc2hhZG93ID0gc2hhZG93LT5uZXh0KCk7CiAgICAgICAgICAgICBjb250aW51ZTsK
ICAgICAgICAgfQogCi0gICAgICAgIEludFNpemUgZXh0cmFPZmZzZXQ7Ci0gICAgICAgIGJvb2wg
ZGlkU2F2ZUNvbnRleHQgPSBmYWxzZTsKLSAgICAgICAgaWYgKHNoYWRvdykKLSAgICAgICAgICAg
IGV4dHJhT2Zmc2V0ID0gcm91bmRlZEludFNpemUoSW5saW5lVGV4dEJveDo6YXBwbHlTaGFkb3dU
b0dyYXBoaWNzQ29udGV4dChjb250ZXh0LCBzaGFkb3csIGJveFJlY3QsIHN0cm9rZWQsIG9wYXF1
ZSwgaG9yaXpvbnRhbCwgZGlkU2F2ZUNvbnRleHQpKTsKLSAgICAgICAgZWxzZSBpZiAoIW9wYXF1
ZSkKKyAgICAgICAgU2hhZG93QXBwbGllciBzaGFkb3dBcHBsaWVyKGNvbnRleHQsIHNoYWRvdywg
Ym94UmVjdCwgb25seURyYXdzU2hhZG93LCBhdm9pZERyYXdpbmdTaGFkb3csIGhvcml6b250YWwg
PyBIb3Jpem9udGFsIDogVmVydGljYWwpOworICAgICAgICBJbnRTaXplIGV4dHJhT2Zmc2V0ID0g
cm91bmRlZEludFNpemUoc2hhZG93QXBwbGllci5leHRyYU9mZnNldCgpKTsKKyAgICAgICAgaWYg
KCFzaGFkb3cgJiYgIW9wYXF1ZSkKICAgICAgICAgICAgIGNvbnRleHQuc2V0RmlsbENvbG9yKGZp
bGxDb2xvciwgZmlsbENvbG9yU3BhY2UpOwogCiAgICAgICAgIGlmIChzdGFydE9mZnNldCA8PSBl
bmRPZmZzZXQpCkBAIC0xMDcsMTMgKzE0Miw4IEBAIHN0YXRpYyB2b2lkIHBhaW50VGV4dFdpdGhT
aGFkb3dzKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRm9udCYgZm9udCwgY29uCiAg
ICAgICAgIGlmICghc2hhZG93KQogICAgICAgICAgICAgYnJlYWs7CiAKLSAgICAgICAgaWYgKGRp
ZFNhdmVDb250ZXh0KQotICAgICAgICAgICAgY29udGV4dC5yZXN0b3JlKCk7Ci0gICAgICAgIGVs
c2UKLSAgICAgICAgICAgIGNvbnRleHQuY2xlYXJTaGFkb3coKTsKLQogICAgICAgICBzaGFkb3cg
PSBzaGFkb3ctPm5leHQoKTsKLSAgICB9IHdoaWxlIChzaGFkb3cgfHwgc3Ryb2tlZCB8fCAhb3Bh
cXVlKTsKKyAgICB9IHdoaWxlIChzaGFkb3cgfHwgIWxhc3RTaGFkb3dJdGVyYXRpb25TaG91bGRE
cmF3VGV4dCk7CiB9CiAKIHZvaWQgVGV4dFBhaW50ZXI6OnBhaW50VGV4dCgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dFBhaW50ZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9UZXh0UGFpbnRlci5oCmluZGV4IDk2ZjgzYWEyYjMxMzQxOTY2ZDM2ZjU5MzRi
OGE1NzZjM2QwNDA3ZDcuLmEwNzc0NDk0YTllZDZjZjU4NjAzY2U5ZTk4OGU5ZTFlZTU5MGU1MDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFpbnRlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0UGFpbnRlci5oCkBAIC0yNSw2ICsyNSw3IEBA
CiAKICNpbmNsdWRlICJBZmZpbmVUcmFuc2Zvcm0uaCIKICNpbmNsdWRlICJEYXNoQXJyYXkuaCIK
KyNpbmNsdWRlICJGb250T3JpZW50YXRpb24uaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0LmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTczLDYgKzc0LDI4IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBtX3RleHRCb3hJc0hvcml6b250YWw7CiB9OwogCitjbGFzcyBTaGFkb3dBcHBsaWVyIHsKK3B1
YmxpYzoKKyAgICBTaGFkb3dBcHBsaWVyKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IFNoYWRvd0Rh
dGEqLCBjb25zdCBGbG9hdFJlY3QmIHRleHRSZWN0LCBib29sIG9ubHlEcmF3c1NoYWRvdywgYm9v
bCBzaGFkb3dJc0VtcHR5LCBGb250T3JpZW50YXRpb24gPSBIb3Jpem9udGFsKTsKKyAgICBGbG9h
dFNpemUgZXh0cmFPZmZzZXQoKSBjb25zdCB7IHJldHVybiBtX2V4dHJhT2Zmc2V0OyB9CisgICAg
flNoYWRvd0FwcGxpZXIoKTsKK3ByaXZhdGU6CisgICAgRmxvYXRTaXplIG1fZXh0cmFPZmZzZXQ7
CisgICAgR3JhcGhpY3NDb250ZXh0JiBtX2NvbnRleHQ7CisgICAgY29uc3QgU2hhZG93RGF0YSog
bV9zaGFkb3c7CisgICAgYm9vbCBtX29ubHlEcmF3c1NoYWRvdzsKK307CisKK2lubGluZSBib29s
IGlzTGFzdFNoYWRvd0l0ZXJhdGlvbihjb25zdCBTaGFkb3dEYXRhKiBzaGFkb3cpCit7CisgICAg
cmV0dXJuIHNoYWRvdyAmJiAhc2hhZG93LT5uZXh0KCk7Cit9CisKK2lubGluZSBib29sIHNoYWRv
d0lzQ29tcGxldGVseUNvdmVyZWRCeVRleHQoY29uc3QgU2hhZG93RGF0YSogc2hhZG93LCBib29s
IHRleHRJc09wYXF1ZSA9IGZhbHNlKQoreworICAgIHJldHVybiB0ZXh0SXNPcGFxdWUgJiYgc2hh
ZG93ICYmIHNoYWRvdy0+bG9jYXRpb24oKSA9PSBJbnRQb2ludCgpICYmICFzaGFkb3ctPnJhZGl1
cygpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBUZXh0UGFpbnRl
cl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR0lubGluZVRl
eHRCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdJbmxpbmVUZXh0Qm94
LmNwcAppbmRleCBjZGVjZGE0NzFhOTA5MmI5ODg4ZGQyNDY1MzQ5ZGY2OTNjMzA2MDVmLi44NTEx
ZDZlMjUzOWQ5NDAzYWJiYjBlYWNjMjljOGJiNTI0ZGE0M2Y5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR0lubGluZVRleHRCb3guY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHSW5saW5lVGV4dEJveC5jcHAKQEAgLTM3LDYgKzM3LDcg
QEAKICNpbmNsdWRlICJTVkdSZXNvdXJjZXNDYWNoZS5oIgogI2luY2x1ZGUgIlNWR1Jvb3RJbmxp
bmVCb3guaCIKICNpbmNsdWRlICJTVkdUZXh0UnVuUmVuZGVyaW5nQ29udGV4dC5oIgorI2luY2x1
ZGUgIlRleHRQYWludGVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTk0LDIzICs1
OTUsMTcgQEAgdm9pZCBTVkdJbmxpbmVUZXh0Qm94OjpwYWludFRleHRXaXRoU2hhZG93cyhHcmFw
aGljc0NvbnRleHQqIGNvbnRleHQsIFJlbmRlclN0eWwKICAgICAgICAgaWYgKCFwcmVwYXJlR3Jh
cGhpY3NDb250ZXh0Rm9yVGV4dFBhaW50aW5nKGNvbnRleHQsIHNjYWxpbmdGYWN0b3IsIHRleHRS
dW4sIHN0eWxlKSkKICAgICAgICAgICAgIGJyZWFrOwogCi0gICAgICAgIEZsb2F0U2l6ZSBleHRy
YU9mZnNldDsKLSAgICAgICAgYm9vbCBkaWRTYXZlQ29udGV4dCA9IGZhbHNlOwotICAgICAgICBp
ZiAoc2hhZG93KQotICAgICAgICAgICAgZXh0cmFPZmZzZXQgPSBhcHBseVNoYWRvd1RvR3JhcGhp
Y3NDb250ZXh0KCpjb250ZXh0LCBzaGFkb3csIHNoYWRvd1JlY3QsIGZhbHNlIC8qIHN0cm9rZWQg
Ki8sIHRydWUgLyogb3BhcXVlICovLCB0cnVlIC8qIGhvcml6b250YWwgKi8sIGRpZFNhdmVDb250
ZXh0KTsKKyAgICAgICAgeworICAgICAgICAgICAgRmxvYXRTaXplIGV4dHJhT2Zmc2V0OworICAg
ICAgICAgICAgYm9vbCBvbmx5RHJhd3NTaGFkb3cgPSAhaXNMYXN0U2hhZG93SXRlcmF0aW9uKHNo
YWRvdyk7CisgICAgICAgICAgICBTaGFkb3dBcHBsaWVyIHNoYWRvd0FwcGxpZXIoKmNvbnRleHQs
IHNoYWRvdywgc2hhZG93UmVjdCwgb25seURyYXdzU2hhZG93LCBzaGFkb3dJc0NvbXBsZXRlbHlD
b3ZlcmVkQnlUZXh0KHNoYWRvdykpOwogCi0gICAgICAgIGNvbnRleHQtPnNhdmUoKTsKLSAgICAg
ICAgY29udGV4dC0+c2NhbGUoRmxvYXRTaXplKDEgLyBzY2FsaW5nRmFjdG9yLCAxIC8gc2NhbGlu
Z0ZhY3RvcikpOwotCi0gICAgICAgIHNjYWxlZEZvbnQuZHJhd1RleHQoY29udGV4dCwgdGV4dFJ1
biwgdGV4dE9yaWdpbiArIGV4dHJhT2Zmc2V0LCBzdGFydFBvc2l0aW9uLCBlbmRQb3NpdGlvbik7
CisgICAgICAgICAgICBjb250ZXh0LT5zYXZlKCk7CisgICAgICAgICAgICBjb250ZXh0LT5zY2Fs
ZShGbG9hdFNpemUoMSAvIHNjYWxpbmdGYWN0b3IsIDEgLyBzY2FsaW5nRmFjdG9yKSk7CiAKLSAg
ICAgICAgY29udGV4dC0+cmVzdG9yZSgpOworICAgICAgICAgICAgc2NhbGVkRm9udC5kcmF3VGV4
dChjb250ZXh0LCB0ZXh0UnVuLCB0ZXh0T3JpZ2luICsgc2hhZG93QXBwbGllci5leHRyYU9mZnNl
dCgpLCBzdGFydFBvc2l0aW9uLCBlbmRQb3NpdGlvbik7CiAKLSAgICAgICAgaWYgKHNoYWRvdykg
ewotICAgICAgICAgICAgaWYgKGRpZFNhdmVDb250ZXh0KQotICAgICAgICAgICAgICAgIGNvbnRl
eHQtPnJlc3RvcmUoKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBjb250ZXh0
LT5jbGVhclNoYWRvdygpOworICAgICAgICAgICAgY29udGV4dC0+cmVzdG9yZSgpOwogICAgICAg
ICB9CiAKICAgICAgICAgcmVzdG9yZUdyYXBoaWNzQ29udGV4dEFmdGVyVGV4dFBhaW50aW5nKGNv
bnRleHQsIHRleHRSdW4pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDlmOWQxZWY0MzEwYjMxZDJmNTgwZWM4ODI5YTUxYTk2
OGYwYzA2NzUuLmI0NmExZTIyNTAyMTAwNjI2ZGRkMjI5OTAyNjNlNDcyZWM2NDUzZTUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMiBAQAorMjAxNC0wOS0yMyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4Zmll
bGRAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT046IFRleHQgd2l0aCBhIHplcm8gb2Zm
c2V0LCB6ZXJvIGJsdXIgc2hhZG93IHZhbmlzaGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzY4MDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHRlc3Qgc2hvdWxkIGJlIGEgY29tcHJlaGVuc2l2
ZSB0ZXN0IG9mIGVtcHR5IHNoYWRvd3MuIEl0IHRlc3RzIGV2ZXJ5CisgICAgICAgIGNvbWJpbmF0
aW9uIG9mIG9uZSBhbmQgdHdvIHNoYWRvd3MgYmVpbmcgZW1wdHksIGFzIHdlbGwgYXMgdHJhbnNw
YXJlbnQgYW5kCisgICAgICAgIG9wYXF1ZSB0ZXh0LgorCisgICAgICAgIEFmdGVyIHVwZGF0aW5n
IGZhc3QvdGV4dC9lbXB0eS1zaGFkb3cuaHRtbCwgZmFzdC90ZXh0L2VtcHR5LXNoYWRvdy13aXRo
LWNvbG9yLmh0bWwKKyAgICAgICAgaXMgbm8gbG9uZ2VyIG5lY2Vzc2FyeS4KKworICAgICAgICAq
IGZhc3QvdGV4dC9lbXB0eS1zaGFkb3ctZXhwZWN0ZWQuaHRtbDoKKyAgICAgICAgKiBmYXN0L3Rl
eHQvZW1wdHktc2hhZG93LXdpdGgtY29sb3ItZXhwZWN0ZWQuaHRtbDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBmYXN0L3RleHQvZW1wdHktc2hhZG93LXdpdGgtY29sb3IuaHRtbDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBmYXN0L3RleHQvZW1wdHktc2hhZG93Lmh0bWw6CisKIDIwMTQtMDktMjMgIEVkdWFy
ZG8gTGltYSBNaXRldiAgPGVsaW1hQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gQWRkcyBp
bXBsZW1lbnRhdGlvbiBvZiBzdWJ0bGUgY3J5cHRvIEhNQUMgYWxnb3JpdGhtCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvZW1wdHktc2hhZG93LWV4cGVjdGVkLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L3RleHQvZW1wdHktc2hhZG93LWV4cGVjdGVkLmh0bWwKaW5kZXggY2UyYjk2
YjBiZDAyZjljZmM4ZGZjNjk5NzcxNjNjOTUyZjY2MzZhOC4uMmIzZmFlYTVjNDBmYjNkZDJlOTMx
NzgxYmFlMDA4ZWU0OTJkYWRkYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2Vt
cHR5LXNoYWRvdy1leHBlY3RlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9lbXB0
eS1zaGFkb3ctZXhwZWN0ZWQuaHRtbApAQCAtMSwzICsxLDIwIEBACi1UaGlzIHRlc3RzIHRoYXQg
dGV4dCBkcmF3biB3aXRoIHRleHQtc2hhZG93cyBvZiByYWRpdXMgMCBhbmQgKDAsIDApIG9mZnNl
dCBhcmUgbm90IGRyYXduLgotVGhpcyBpcyBhIGJldHRlciBvdXRjb21lIHRoYW4gdGhlbSBiZWlu
ZyBkcmF3biBpbiBhbiB1Z2x5IHdheS4KLVRoaXMgdGVzdCBpcyBzdWNjZXNzZnVsIGlmIHRoZSB0
ZXh0IGJlbG93IGlzIGNvbXBsZXRlbHkgaW52aXNpYmxlLgorPHA+VGhpcyB0ZXN0cyB0aGF0IHRl
eHQgZHJhd24gd2l0aCB0ZXh0LXNoYWRvd3Mgb2YgcmFkaXVzIDAgYW5kICgwLCAwKSBvZmZzZXQg
YXJlIG5vdCBkcmF3bi48L3A+Cis8cD5JbiB0aGUgZm9sbG93aW5nIHRlc3RzLCB0aGUgYWN0dWFs
IHRleHQgaXMgZ3JlZW4gd2hpbGUgdGhlIHNoYWRvd3MgYXJlIGJsdWUuPC9wPgorCis8ZGl2IHN0
eWxlPSJjb2xvcjogZ3JlZW47Ij4KKzxkaXYgc3R5bGU9InRleHQtc2hhZG93OiA1cHggNXB4IGJs
dWU7Ij5UZXh0IHdpdGggYSBzaW5nbGUgc2hhZG93LjwvZGl2PgorPGRpdj5UZXh0IHdpdGggb25l
IGVtcHR5ICh1bmRyYXduKSBzaGFkb3cuPC9kaXY+Cis8ZGl2IHN0eWxlPSJ0ZXh0LXNoYWRvdzog
NXB4IDVweCBibHVlLCAxMHB4IDEwcHggYmx1ZTsiPlRleHQgd2l0aCB0d28gc2hhZG93czwvZGl2
PgorPGRpdiBzdHlsZT0idGV4dC1zaGFkb3c6IDVweCA1cHggYmx1ZTsiPlRleHQgd2l0aCB0d28g
c2hhZG93czogZmlyc3QgZHJhd24gYW5kIHNlY29uZCBlbXB0eSAodW5kcmF3bikuPC9kaXY+Cis8
ZGl2IHN0eWxlPSJ0ZXh0LXNoYWRvdzogMTBweCAxMHB4IGJsdWU7Ij5UZXh0IHdpdGggdHdvIHNo
YWRvd3M6IGZpcnN0IGVtcHR5ICh1bmRyYXduKSBhbmQgc2Vjb25kIGRyYXduLjwvZGl2PgorPGRp
dj5UZXh0IHdpdGggdHdvIGVtcHR5ICh1bmRyYXduKSBzaGFkb3dzLjwvZGl2PgorPC9kaXY+CisK
KzxkaXYgc3R5bGU9ImNvbG9yOiB0cmFuc3BhcmVudDsiPgorPGRpdiBzdHlsZT0idGV4dC1zaGFk
b3c6IDVweCA1cHggYmx1ZTsiPlRyYW5zcGFyZW50IHRleHQgd2l0aCBhIHNpbmdsZSBzaGFkb3cu
PC9kaXY+Cis8ZGl2IHN0eWxlPSJjb2xvcjogYmx1ZTsiPlRyYW5zcGFyZW50IHRleHQgd2l0aCBv
bmUgZW1wdHkgc2hhZG93LjwvZGl2PgorPGRpdiBzdHlsZT0idGV4dC1zaGFkb3c6IDVweCA1cHgg
Ymx1ZSwgMTBweCAxMHB4IGJsdWU7Ij5UcmFuc3BhcmVudCB0ZXh0IHdpdGggdHdvIHNoYWRvd3M8
L2Rpdj4KKzxkaXYgc3R5bGU9ImNvbG9yOiBibHVlOyB0ZXh0LXNoYWRvdzogN3B4IDdweCBibHVl
OyI+VHJhbnNwYXJlbnQgdGV4dCB3aXRoIHR3byBzaGFkb3dzOiBmaXJzdCBkcmF3biBhbmQgc2Vj
b25kIGVtcHR5LjwvZGl2PgorPGRpdiBzdHlsZT0iY29sb3I6IGJsdWU7IHRleHQtc2hhZG93OiAx
MHB4IDEwcHggYmx1ZTsiPlRyYW5zcGFyZW50IHRleHQgd2l0aCB0d28gc2hhZG93czogZmlyc3Qg
ZHJhd24gYW5kIHNlY29uZCBlbXB0eS48L2Rpdj4KKzxkaXYgc3R5bGU9ImNvbG9yOiBibHVlOyBw
b3NpdGlvbjogcmVsYXRpdmU7Ij48ZGl2IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6
IDBweDsgdG9wOiAwcHg7Ij5UcmFuc3BhcmVudCB0ZXh0IHdpdGggdHdvIGVtcHR5IHNoYWRvd3Mu
PC9kaXY+PGRpdiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAwcHg7IHRvcDogMHB4
OyI+VHJhbnNwYXJlbnQgdGV4dCB3aXRoIHR3byBlbXB0eSBzaGFkb3dzLjwvZGl2PjwvZGl2Pgor
PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvZW1wdHktc2hhZG93LXdp
dGgtY29sb3ItZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9lbXB0eS1zaGFk
b3ctd2l0aC1jb2xvci1leHBlY3RlZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA0NWE0ZDkyMGY3MzVjY2M4Zjg2ZjJkNzcwNjA1N2JmZGU0NjJmMDNiLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9l
bXB0eS1zaGFkb3ctd2l0aC1jb2xvci1leHBlY3RlZC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
MTUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHN0eWxlPgotI3Rl
c3QgewotICAgIGNvbG9yOiBncmVlbjsKLSAgICBmb250LXNpemU6IDE2cHg7Ci19Ci08L3N0eWxl
PgotPC9oZWFkPgotPGJvZHk+Ci1UaGlzIHRlc3QgbWFrZXMgc3VyZSB0aGF0IHRleHQgZHJhd24g
d2l0aCBhbiBlbXB0eSBzaGFkb3cgaXMgY29sb3JlZCBjb3JyZWN0bHkuIEl0IHBhc3NlcyBpZiB0
aGUgZm9sbG93aW5nIHRleHQgaXMgZ3JlZW4uCi08ZGl2IGlkPSJ0ZXN0Ij5UaGlzIHNob3VsZCBi
ZSBncmVlbi48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvdGV4dC9lbXB0eS1zaGFkb3ctd2l0aC1jb2xvci5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC90ZXh0L2VtcHR5LXNoYWRvdy13aXRoLWNvbG9yLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDNmZGY5NWMzZmI3N2Q5MjEyZGVjYjVkMjNmZjgxZDU5NDkzOGI3OGEuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC90ZXh0L2VtcHR5LXNoYWRvdy13aXRoLWNvbG9yLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwx
NyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c3R5bGU+Ci0jdGVz
dCB7Ci0gICAgY29sb3I6IGdyZWVuOwotICAgIGZvbnQtc2l6ZTogMTZweDsKLSAgICB0ZXh0LXNo
YWRvdzogcmVkIDIwcHggMjBweCwgcmVkIDBweCAwcHg7Ci0gICAgb3ZlcmZsb3c6IGhpZGRlbjsK
LX0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLVRoaXMgdGVzdCBtYWtlcyBzdXJlIHRoYXQg
dGV4dCBkcmF3biB3aXRoIGFuIGVtcHR5IHNoYWRvdyBpcyBjb2xvcmVkIGNvcnJlY3RseS4gSXQg
cGFzc2VzIGlmIHRoZSBmb2xsb3dpbmcgdGV4dCBpcyBncmVlbi4KLTxkaXYgaWQ9InRlc3QiPlRo
aXMgc2hvdWxkIGJlIGdyZWVuLjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC90ZXh0L2VtcHR5LXNoYWRvdy5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC90ZXh0L2VtcHR5LXNoYWRvdy5odG1sCmluZGV4IDQyN2NkZDhjNjNjOWExODJhNWMwZGYxYWQy
OGQzMWQ0NGIyNGEzY2YuLjJiM2U3NzgzNGNhZWQyMjk5OWVkODA4ZTM1NTA0NjZlZmEwYjg0OTEg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9lbXB0eS1zaGFkb3cuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvZW1wdHktc2hhZG93Lmh0bWwKQEAgLTEsNCArMSwyMCBA
QAotVGhpcyB0ZXN0cyB0aGF0IHRleHQgZHJhd24gd2l0aCB0ZXh0LXNoYWRvd3Mgb2YgcmFkaXVz
IDAgYW5kICgwLCAwKSBvZmZzZXQgYXJlIG5vdCBkcmF3bi4KLVRoaXMgaXMgYSBiZXR0ZXIgb3V0
Y29tZSB0aGFuIHRoZW0gYmVpbmcgZHJhd24gaW4gYW4gdWdseSB3YXkuCi1UaGlzIHRlc3QgaXMg
c3VjY2Vzc2Z1bCBpZiB0aGUgdGV4dCBiZWxvdyBpcyBjb21wbGV0ZWx5IGludmlzaWJsZS4KLTxk
aXYgc3R5bGU9ImNvbG9yOiNmZmY7dGV4dC1zaGFkb3c6MCAwICMwMDAiPlRoaXMgaXMgc29tZSB0
ZXh0PC9kaXY+Cis8cD5UaGlzIHRlc3RzIHRoYXQgdGV4dCBkcmF3biB3aXRoIHRleHQtc2hhZG93
cyBvZiByYWRpdXMgMCBhbmQgKDAsIDApIG9mZnNldCBhcmUgbm90IGRyYXduLjwvcD4KKzxwPklu
IHRoZSBmb2xsb3dpbmcgdGVzdHMsIHRoZSBhY3R1YWwgdGV4dCBpcyBncmVlbiB3aGlsZSB0aGUg
c2hhZG93cyBhcmUgYmx1ZS48L3A+CisKKzxkaXYgc3R5bGU9ImNvbG9yOiBncmVlbjsiPgorPGRp
diBzdHlsZT0idGV4dC1zaGFkb3c6IDVweCA1cHggYmx1ZTsiPlRleHQgd2l0aCBhIHNpbmdsZSBz
aGFkb3cuPC9kaXY+Cis8ZGl2IHN0eWxlPSJ0ZXh0LXNoYWRvdzogMHB4IDBweCBibHVlOyI+VGV4
dCB3aXRoIG9uZSBlbXB0eSAodW5kcmF3bikgc2hhZG93LjwvZGl2PgorPGRpdiBzdHlsZT0idGV4
dC1zaGFkb3c6IDVweCA1cHggYmx1ZSwgMTBweCAxMHB4IGJsdWU7Ij5UZXh0IHdpdGggdHdvIHNo
YWRvd3M8L2Rpdj4KKzxkaXYgc3R5bGU9InRleHQtc2hhZG93OiA1cHggNXB4IGJsdWUsIDBweCAw
cHggYmx1ZTsiPlRleHQgd2l0aCB0d28gc2hhZG93czogZmlyc3QgZHJhd24gYW5kIHNlY29uZCBl
bXB0eSAodW5kcmF3bikuPC9kaXY+Cis8ZGl2IHN0eWxlPSJ0ZXh0LXNoYWRvdzogMHB4IDBweCBi
bHVlLCAxMHB4IDEwcHggYmx1ZTsiPlRleHQgd2l0aCB0d28gc2hhZG93czogZmlyc3QgZW1wdHkg
KHVuZHJhd24pIGFuZCBzZWNvbmQgZHJhd24uPC9kaXY+Cis8ZGl2IHN0eWxlPSJ0ZXh0LXNoYWRv
dzogMHB4IDBweCBibHVlLCAwcHggMHB4IGJsdWU7Ij5UZXh0IHdpdGggdHdvIGVtcHR5ICh1bmRy
YXduKSBzaGFkb3dzLjwvZGl2PgorPC9kaXY+CisKKzxkaXYgc3R5bGU9ImNvbG9yOiB0cmFuc3Bh
cmVudDsiPgorPGRpdiBzdHlsZT0idGV4dC1zaGFkb3c6IDVweCA1cHggYmx1ZTsiPlRyYW5zcGFy
ZW50IHRleHQgd2l0aCBhIHNpbmdsZSBzaGFkb3cuPC9kaXY+Cis8ZGl2IHN0eWxlPSJ0ZXh0LXNo
YWRvdzogMHB4IDBweCBibHVlOyI+VHJhbnNwYXJlbnQgdGV4dCB3aXRoIG9uZSBlbXB0eSBzaGFk
b3cuPC9kaXY+Cis8ZGl2IHN0eWxlPSJ0ZXh0LXNoYWRvdzogNXB4IDVweCBibHVlLCAxMHB4IDEw
cHggYmx1ZTsiPlRyYW5zcGFyZW50IHRleHQgd2l0aCB0d28gc2hhZG93czwvZGl2PgorPGRpdiBz
dHlsZT0idGV4dC1zaGFkb3c6IDdweCA3cHggYmx1ZSwgMHB4IDBweCBibHVlOyI+VHJhbnNwYXJl
bnQgdGV4dCB3aXRoIHR3byBzaGFkb3dzOiBmaXJzdCBkcmF3biBhbmQgc2Vjb25kIGVtcHR5Ljwv
ZGl2PgorPGRpdiBzdHlsZT0idGV4dC1zaGFkb3c6IDBweCAwcHggYmx1ZSwgMTBweCAxMHB4IGJs
dWU7Ij5UcmFuc3BhcmVudCB0ZXh0IHdpdGggdHdvIHNoYWRvd3M6IGZpcnN0IGRyYXduIGFuZCBz
ZWNvbmQgZW1wdHkuPC9kaXY+Cis8ZGl2IHN0eWxlPSJ0ZXh0LXNoYWRvdzogMHB4IDBweCBibHVl
LCAwcHggMHB4IGJsdWU7Ij5UcmFuc3BhcmVudCB0ZXh0IHdpdGggdHdvIGVtcHR5IHNoYWRvd3Mu
PC9kaXY+Cis8L2Rpdj4K
</data>
<flag name="review"
          id="263318"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>