<?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>120059</bug_id>
          
          <creation_ts>2013-08-20 02:31:21 -0700</creation_ts>
          <short_desc>Add support for maction@toggle</short_desc>
          <delta_ts>2014-03-10 12:26:09 -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>MathML</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://www.w3.org/Math/draft-spec/chapter3.html#presm.maction</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>WebExposed</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>120058</dependson>
          <blocked>85734</blocked>
    
    <blocked>100626</blocked>
    
    <blocked>125785</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Frédéric Wang Nélar">fred.wang</reporter>
          <assigned_to name="Frédéric Wang Nélar">fred.wang</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>cfleizach</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dbarton</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>kangil.han</cc>
    
    <cc>mrobinson</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>918981</commentid>
    <comment_count>0</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2013-08-20 02:31:21 -0700</bug_when>
    <thetext>Some tests are available here:
https://developer.mozilla.org/fr/docs/Mozilla/MathML_Project/Various</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>918986</commentid>
    <comment_count>1</comment_count>
      <attachid>209175</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2013-08-20 02:38:00 -0700</bug_when>
    <thetext>Created attachment 209175
Patch V1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>919666</commentid>
    <comment_count>2</comment_count>
      <attachid>209175</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-08-21 16:13:37 -0700</bug_when>
    <thetext>Comment on attachment 209175
Patch V1

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

&gt; LayoutTests/mathml/presentation/maction-toggle.html:5
&gt; +    &lt;meta charset=&quot;utf-8&quot;/&gt;

this looks like it could be removed

&gt; LayoutTests/mathml/presentation/maction-toggle.html:9
&gt; +      var event = new MouseEvent(&apos;click&apos;, {bubbles: bubble, cancelable: true});

need some more indentation here

&gt; LayoutTests/mathml/presentation/maction-toggle.html:17
&gt; +      click(&apos;m1&apos;); click(&apos;m1&apos;); click(&apos;m1&apos;);

indentation needed

you might add a comment here explaining the different clicking happening

&gt; Source/WebCore/mathml/MathMLSelectElement.cpp:42
&gt; +class MactionEventListener : public EventListener {

I think the name should be MActionEventListener,

sort of like GObjectEventListener

&gt; Source/WebCore/mathml/MathMLSelectElement.cpp:163
&gt; +    int selection = (hasAttribute(MathMLNames::selectionAttr) ? getAttribute(MathMLNames::selectionAttr).toInt(&amp;ok) : 1);

looks like this int could be unsigned</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>919746</commentid>
    <comment_count>3</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2013-08-22 00:20:04 -0700</bug_when>
    <thetext>(I forgot to mention that, but of course the patch applies on top of the one from bug 120058)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>929545</commentid>
    <comment_count>4</comment_count>
      <attachid>211738</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2013-09-15 22:15:42 -0700</bug_when>
    <thetext>Created attachment 211738
Patch V2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>929670</commentid>
    <comment_count>5</comment_count>
      <attachid>211773</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2013-09-16 06:26:15 -0700</bug_when>
    <thetext>Created attachment 211773
Patch V3

Refresh again after the raw pointer =&gt; ref pointer changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>954389</commentid>
    <comment_count>6</comment_count>
      <attachid>211773</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-11-26 17:13:24 -0800</bug_when>
    <thetext>Comment on attachment 211773
Patch V3

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

A few minor changes, based in part of comments Darin made for Bug 120058.

&gt; Source/WebCore/mathml/MathMLSelectElement.cpp:162
&gt; +    unsigned int selection = (hasAttribute(MathMLNames::selectionAttr) ? getAttribute(MathMLNames::selectionAttr).toInt(&amp;ok) : 1);

This should be &quot;fastGetAttribute(MathMLNames::selectionAttr) (see Darin&apos;s comments in 120058).

&gt; Source/WebCore/mathml/MathMLSelectElement.cpp:172
&gt; +    }

Please revise this logic as Darin asked in Bug 120058:

int i = 1;
for (; i &lt;= selection; i++) {
    Element* nextChild = child-&gt;nextElementSibling();
    if (!nextChild)
        break;
    child = nextChild;
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>954511</commentid>
    <comment_count>7</comment_count>
      <attachid>217943</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2013-11-27 05:24:23 -0800</bug_when>
    <thetext>Created attachment 217943
Patch V4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>956036</commentid>
    <comment_count>8</comment_count>
      <attachid>218321</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2013-12-03 12:07:11 -0800</bug_when>
    <thetext>Created attachment 218321
Patch V5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>956141</commentid>
    <comment_count>9</comment_count>
      <attachid>218321</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-12-03 14:57:22 -0800</bug_when>
    <thetext>Comment on attachment 218321
Patch V5

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

&gt; Source/WebCore/mathml/MathMLSelectElement.cpp:40
&gt; +class MActionEventListener : public EventListener {

I don’t think we need an event listener for this. This should just be done in the default event handler for the MathMLSelectElement.

&gt; Source/WebCore/mathml/MathMLSelectElement.cpp:42
&gt; +    static PassRefPtr&lt;MActionEventListener&gt; create(MathMLSelectElement* maction) { return adoptRef(new MActionEventListener(maction)); }

Should return a PassRef rather than PassRefPtr. Should take MathMLSelectElement&amp; instead of MathMLSelectElement*.

&gt; Source/WebCore/mathml/MathMLSelectElement.cpp:43
&gt; +    static const MActionEventListener* cast(const EventListener* listener)

Do we really need this function? The one call site below would be clearer without it.

&gt; Source/WebCore/mathml/MathMLSelectElement.cpp:47
&gt; +            : 0;

nullptr

&gt; Source/WebCore/mathml/MathMLSelectElement.cpp:49
&gt; +    virtual bool operator==(const EventListener&amp; other);

Should be marked OVERRIDE.

&gt; Source/WebCore/mathml/MathMLSelectElement.cpp:52
&gt; +    MActionEventListener(MathMLSelectElement* maction)

Should mark this explicit. Should take a reference instead of a pointer.

&gt; Source/WebCore/mathml/MathMLSelectElement.cpp:58
&gt; +    virtual void handleEvent(ScriptExecutionContext*, Event*);

Needs OVERRIDE.

&gt; Source/WebCore/mathml/MathMLSelectElement.cpp:59
&gt; +    MathMLSelectElement* m_maction;

Should be a reference instead of pointer.

&gt; Source/WebCore/mathml/MathMLSelectElement.cpp:68
&gt; +        RefPtr&lt;EventListener&gt; listener = MActionEventListener::create(this);
&gt; +        addEventListener(&quot;click&quot;, listener.release(), false);

Would read better as a one-liner. Also should use the clickEvent event name rather than “click”. Also not clear this should be done with addEventListener. Why can’t this just be in the default event handler for MathMLSelectElement?

&gt; Source/WebCore/mathml/MathMLSelectElement.cpp:75
&gt; +    if (event-&gt;defaultPrevented())
&gt; +        return;

Surprised this is needed and not handled by the caller.

&gt; Source/WebCore/mathml/MathMLSelectElement.cpp:190
&gt; +    // We get the current value of the selection attribute.
&gt; +    int selection = fastGetAttribute(MathMLNames::selectionAttr).toInt();
&gt; +    if (selection &lt; 1)
&gt; +        selection = 1;
&gt; +
&gt; +    // We find the successor of the current selection.
&gt; +    selection++;
&gt; +    Element* child = firstElementChild();
&gt; +    if (child) {
&gt; +        for (int i = 1; i &lt; selection; i++) {
&gt; +            child = child-&gt;nextElementSibling();
&gt; +            if (!child)
&gt; +                break;
&gt; +        }
&gt; +    }
&gt; +
&gt; +    // If we reach the end of the child list, we go back to the first child.
&gt; +    if (!child)
&gt; +        selection = 1;
&gt; +
&gt; +    // We update the attribute value of the selection attribute.
&gt; +    // This will also call MathMLSelectElement::attributeChanged to update the selected child.
&gt; +    setAttribute(MathMLNames::selectionAttr, String::number(selection));

Can write this much more concisely:

    int selection = std::max(1, fastGetAttribute(MathMLNames::selectionAttr).toInt()) + 1;
    if (selection &gt; childElementCount())
        selection = 1;
    setAttribute(MathMLNames::selectionAttr, String::number(selection));

The extra cost of counting all the children seems quite affordable; does not make the worst case any worse.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>956477</commentid>
    <comment_count>10</comment_count>
      <attachid>218321</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-12-04 11:23:23 -0800</bug_when>
    <thetext>Comment on attachment 218321
Patch V5

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

&gt;&gt; Source/WebCore/mathml/MathMLSelectElement.cpp:190
&gt;&gt; +    setAttribute(MathMLNames::selectionAttr, String::number(selection));
&gt; 
&gt; Can write this much more concisely:
&gt; 
&gt;     int selection = std::max(1, fastGetAttribute(MathMLNames::selectionAttr).toInt()) + 1;
&gt;     if (selection &gt; childElementCount())
&gt;         selection = 1;
&gt;     setAttribute(MathMLNames::selectionAttr, String::number(selection));
&gt; 
&gt; The extra cost of counting all the children seems quite affordable; does not make the worst case any worse.

Hmm, I just noticed that my code won’t do the right thing if passed super-huge numbers. I’d love to have test cases covering that. We should probably use unsigned instead of int here. Need test coverage for edge cases, non-numbers, maximum numbers, higher than maximum numbers, negative numbers, zero, numbers with leading spaces.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>957963</commentid>
    <comment_count>11</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2013-12-09 10:31:25 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; I don’t think we need an event listener for this. This should just be done in the default event handler for the MathMLSelectElement.
&gt; 
&gt; Do we really need this function? The one call site below would be clearer without it.
&gt; 
&gt; Also not clear this should be done with addEventListener. Why can’t this just be in the default event handler for MathMLSelectElement?

I don&apos;t know well the WebKit code. I saw that other elements register events that way, but I&apos;m happy to use the &quot;standard&quot; way if you tell me what it is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>958027</commentid>
    <comment_count>12</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-12-09 11:46:24 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; I saw that other elements register events that way

Could you give me a list the examples you found? If they are trying to implement default event handling by using event listeners I believe they are wrong so I would like to fix them.

(In reply to comment #11)
&gt; I&apos;m happy to use the &quot;standard&quot; way if you tell me what it is.

Some examples that might help you write a good default event handler are:

    HTMLButtonElement::defaultEventHandler
    HTMLSummaryElement::defaultEventHandler

The general pattern is that the defaultEventHandler function checks the type of the event. If it knows how to handle the event, it does so, then calls setDefaultHandled on the event and returns. After that, in the case where the event was not handled it calls the base class’s defaultEventHandler function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>958239</commentid>
    <comment_count>13</comment_count>
      <attachid>218844</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2013-12-10 01:31:41 -0800</bug_when>
    <thetext>Created attachment 218844
Patch V6</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>958241</commentid>
    <comment_count>14</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2013-12-10 01:35:02 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; Could you give me a list the examples you found? If they are trying to implement default event handling by using event listeners I believe they are wrong so I would like to fix them.

Not sure I remember exactly. I probably just searched of EventListener or similar in the source code and found these elements using EventListener.h. So I thought that was how it is supposed to be handled...

&gt; The general pattern is that the defaultEventHandler function checks the type of the event. If it knows how to handle the event, it does so, then calls setDefaultHandled on the event and returns. After that, in the case where the event was not handled it calls the base class’s defaultEventHandler function.

Thanks. I didn&apos;t do setDefaultHandled, since in that case the event is not bubble to the parent when bubble = true (see the tests). Not sure if that is the right thing...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>958754</commentid>
    <comment_count>15</comment_count>
      <attachid>218844</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-12-11 09:16:18 -0800</bug_when>
    <thetext>Comment on attachment 218844
Patch V6

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

&gt; Source/WebCore/mathml/MathMLSelectElement.cpp:123
&gt; +        if (getAttribute(MathMLNames::actiontypeAttr) == &quot;toggle&quot;) {

can this be fastGetAttribute()

&gt; Source/WebCore/mathml/MathMLSelectElement.cpp:124
&gt; +            toggle();

I think you also want to set
event-&gt;setDefaultHandled();
here

&gt; Source/WebCore/mathml/MathMLSelectElement.h:38
&gt; +    void toggle();

doesn&apos;t look like toggle() needs to be public</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>958763</commentid>
    <comment_count>16</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2013-12-11 09:25:55 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; &gt; Source/WebCore/mathml/MathMLSelectElement.cpp:124
&gt; &gt; +            toggle();
&gt; 
&gt; I think you also want to set
&gt; event-&gt;setDefaultHandled();
&gt; here

I tried that but then the test for bubble = true no longer works. Not sure why...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>958927</commentid>
    <comment_count>17</comment_count>
      <attachid>218844</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-12-11 14:51:48 -0800</bug_when>
    <thetext>Comment on attachment 218844
Patch V6

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

r=me; OK to land as is, but please fix as many of the comments as possible before landing. Other improvements can be done later.

&gt; Source/WebCore/mathml/MathMLSelectElement.cpp:122
&gt; +    if (event-&gt;type() == eventNames().clickEvent &amp;&amp; event-&gt;isMouseEvent()) {

There’s no reason to check isMouseEvent here. Please remove that check.

&gt;&gt; Source/WebCore/mathml/MathMLSelectElement.cpp:123
&gt;&gt; +        if (getAttribute(MathMLNames::actiontypeAttr) == &quot;toggle&quot;) {
&gt; 
&gt; can this be fastGetAttribute()

Yes, this should be fastGetAttribute.

&gt;&gt; Source/WebCore/mathml/MathMLSelectElement.cpp:124
&gt;&gt; +            toggle();
&gt; 
&gt; I think you also want to set
&gt; event-&gt;setDefaultHandled();
&gt; here

Calling setDefaultHandled should *not* break bubbling. I am quite surprised that it does. We should look into it more.

&gt; Source/WebCore/mathml/MathMLSelectElement.cpp:150
&gt; +    int selection = 1;
&gt; +    if (m_selectedChild) {
&gt; +        Element* child = firstElementChild();
&gt; +        while (child &amp;&amp; child != m_selectedChild-&gt;nextElementSibling()) {
&gt; +            child = child-&gt;nextElementSibling();
&gt; +            selection++;
&gt; +        }
&gt; +        // If we reach the end of the child list, we go back to the first child.
&gt; +        if (!child)
&gt; +            selection = 1;
&gt; +    }

This way of writing the code makes a simple operation look too confusing. We need to write this in terms of helper functions so we don’t need to write out the while loop. I suggest adding a childElementIndex helper function and using that.

&gt; Source/WebCore/mathml/MathMLSelectElement.cpp:154
&gt; +    setAttribute(MathMLNames::selectionAttr, String::number(selection));

Should be AtomicString::number rather than String::number. Same for any other function using String::number but then passing it to setAttribute.

&gt; Source/WebCore/mathml/MathMLSelectElement.h:30
&gt; +#include &quot;Event.h&quot;

Not correct to include a header just so we can compile an Event*. And also unneeded. Base class header was already able to compile an Event* so no include is needed.

&gt;&gt; Source/WebCore/mathml/MathMLSelectElement.h:38
&gt;&gt; +    void toggle();
&gt; 
&gt; doesn&apos;t look like toggle() needs to be public

I agree. It should be private.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>959178</commentid>
    <comment_count>18</comment_count>
      <attachid>219077</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2013-12-12 05:41:14 -0800</bug_when>
    <thetext>Created attachment 219077
Patch Final Version</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>959179</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-12-12 05:43:26 -0800</bug_when>
    <thetext>Attachment 219077 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/mathml/presentation/maction-toggle-expected.html&apos;, u&apos;LayoutTests/mathml/presentation/maction-toggle.html&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/mathml/MathMLSelectElement.cpp&apos;, u&apos;Source/WebCore/mathml/MathMLSelectElement.h&apos;, &apos;--commit-queue&apos;]&quot; exit_code: 1
ERROR: Source/WebCore/mathml/MathMLSelectElement.cpp:32:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>959182</commentid>
    <comment_count>20</comment_count>
      <attachid>219078</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2013-12-12 05:53:32 -0800</bug_when>
    <thetext>Created attachment 219078
Patch (Final Version)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>959194</commentid>
    <comment_count>21</comment_count>
      <attachid>219078</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-12-12 07:44:23 -0800</bug_when>
    <thetext>Comment on attachment 219078
Patch (Final Version)

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

&gt; Source/WebCore/mathml/MathMLSelectElement.cpp:81
&gt; +int
&gt; +MathMLSelectElement::getSelectedChildAndIndex(Element*&amp; selectedChild)

Formatting here is wrong. We don’t put the return value on a different line from the rest of the function declaration.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>959195</commentid>
    <comment_count>22</comment_count>
      <attachid>219085</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2013-12-12 07:57:21 -0800</bug_when>
    <thetext>Created attachment 219085
Patch (Final Version)

oops, mixing up with Gecko&apos;s convention... sorry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>959989</commentid>
    <comment_count>23</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2013-12-15 21:32:06 -0800</bug_when>
    <thetext>Can someone please commit the latest version?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>959993</commentid>
    <comment_count>24</comment_count>
      <attachid>219085</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2013-12-15 21:50:32 -0800</bug_when>
    <thetext>Comment on attachment 219085
Patch (Final Version)

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

&gt; Source/WebCore/mathml/MathMLSelectElement.cpp:154
&gt; +    Element* child;

I think child needs to be initialized to nullptr here</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>959996</commentid>
    <comment_count>25</comment_count>
      <attachid>219296</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2013-12-15 22:03:00 -0800</bug_when>
    <thetext>Created attachment 219296
Patch (Final Version)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>960005</commentid>
    <comment_count>26</comment_count>
      <attachid>219296</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-12-15 22:50:26 -0800</bug_when>
    <thetext>Comment on attachment 219296
Patch (Final Version)

Clearing flags on attachment: 219296

Committed r160631: &lt;http://trac.webkit.org/changeset/160631&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>960006</commentid>
    <comment_count>27</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-12-15 22:50:31 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>960111</commentid>
    <comment_count>28</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-12-16 10:15:25 -0800</bug_when>
    <thetext>The bubbling test case in this patch is wrong. Telling an event to bubble does mean that event handlers will see it, but it does not mean that the same event can trigger default event handling on two different elements.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>960115</commentid>
    <comment_count>29</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-12-16 10:19:40 -0800</bug_when>
    <thetext>Some follow-up changes in https://bugs.webkit.org/show_bug.cgi?id=125785</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>989017</commentid>
    <comment_count>30</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2014-03-10 12:26:09 -0700</bug_when>
    <thetext>Mass change: add WebExposed keyword to help MDN documentation.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>209175</attachid>
            <date>2013-08-20 02:38:00 -0700</date>
            <delta_ts>2013-09-15 22:15:42 -0700</delta_ts>
            <desc>Patch V1</desc>
            <filename>maction-toggle.diff</filename>
            <type>text/plain</type>
            <size>9516</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjMjZlZDJlLi4yMTYxMjRlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTMtMDgt
MTggIEZyw6lkw6lyaWMgV2FuZyAgPGZyZWQud2FuZ0BmcmVlLmZyPgorCisgICAgICAgIEFkZCBz
dXBwb3J0IGZvciBtYWN0aW9uQHRvZ2dsZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEyMDA1OS4KKworICAgICAgICBOZXcgdGVzdHMgZm9yIG1hY3Rp
b25AdG9nZ2xlLgorCisgICAgICAgICogbWF0aG1sL3ByZXNlbnRhdGlvbi9tYWN0aW9uLXRvZ2ds
ZS1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBtYXRobWwvcHJlc2VudGF0aW9uL21h
Y3Rpb24tdG9nZ2xlLmh0bWw6IEFkZGVkLgorCiAyMDEzLTA4LTE2ICBGcsOpZMOpcmljIFdhbmcg
IDxmcmVkLndhbmdAZnJlZS5mcj4KIAogICAgICAgICBBZGQgYW4gTWF0aE1MU2VsZWN0RWxlbWVu
dCBjbGFzcyB0byBpbXBsZW1lbnQgPG1hY3Rpb24+IGFuZCA8c2VtYW50aWNzPi4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL21hdGhtbC9wcmVzZW50YXRpb24vbWFjdGlvbi10b2dnbGUtZXhwZWN0
ZWQuaHRtbCBiL0xheW91dFRlc3RzL21hdGhtbC9wcmVzZW50YXRpb24vbWFjdGlvbi10b2dnbGUt
ZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMmQ0NzFi
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWF0aG1sL3ByZXNlbnRhdGlvbi9tYWN0
aW9uLXRvZ2dsZS1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsNTQgQEAKKzwhZG9jdHlwZSBodG1s
PgorPGh0bWw+CisgIDxoZWFkPgorICAgIDx0aXRsZT5tYWN0aW9uIHRvZ2dsZTwvdGl0bGU+Cisg
ICAgPG1ldGEgY2hhcnNldD0idXRmLTgiLz4KKyAgPC9oZWFkPgorICA8Ym9keSBvbmxvYWQ9InRl
c3QoKSI+CisKKyAgICA8IS0tIHNlbGVjdGlvbj0iMSIgKGRlZmF1bHQpIDsgdGhyZWUgY2xpY2tz
IC0tPgorICAgIDxtYXRoPgorICAgICAgPG1yb3c+CisgICAgICAgIDxtbj40PC9tbj4KKyAgICAg
IDwvbXJvdz4KKyAgICA8L21hdGg+CisKKyAgICA8IS0tIHNlbGVjdGlvbj0iMiIgOyBvbmUgY2xp
Y2sgLS0+CisgICAgPG1hdGg+CisgICAgICA8bXJvdz4KKyAgICAgICAgPG1uPjM8L21uPgorICAg
ICAgPC9tcm93PgorICAgIDwvbWF0aD4KKworICAgIDwhLS0gc2VsZWN0aW9uPSI0IiAobGFzdCBj
aGlsZCkgOyBvbmUgY2xpY2sgLS0+CisgICAgPG1hdGg+CisgICAgICA8bXJvdz4KKyAgICAgICAg
PG1uPjE8L21uPgorICAgICAgPC9tcm93PgorICAgIDwvbWF0aD4KKworICAgIDwhLS0gTmVzdGVk
IDxtYWN0aW9uPiBlbGVtZW50cyA7IGJ1YmJsZSA9IGZhbHNlIC0tPgorICAgIDxtYXRoPgorICAg
ICAgPG1yb3c+CisgICAgICAgIDxtcm93PgorICAgICAgICAgIDxtbj4yPC9tbj4KKyAgICAgICAg
PC9tcm93PgorICAgICAgPC9tcm93PgorICAgIDwvbWF0aD4KKworICAgIDwhLS0gTmVzdGVkIDxt
YWN0aW9uPiBlbGVtZW50cyA7IGJ1YmJsZSA9IHRydWUgLS0+CisgICAgPG1hdGg+CisgICAgICA8
bXJvdz4KKyAgICAgICAgPG1uPjQ8L21uPgorICAgICAgPC9tcm93PgorICAgIDwvbWF0aD4KKwor
ICAgIDwhLS0gUHJldmVudCBkZWZhdWx0IC0tPgorICAgIDxtYXRoPgorICAgICAgPG1yb3c+Cisg
ICAgICAgIDxtbj4xPC9tbj4KKyAgICAgIDwvbXJvdz4KKyAgICA8L21hdGg+CisKKyAgPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWF0aG1sL3ByZXNlbnRhdGlvbi9t
YWN0aW9uLXRvZ2dsZS5odG1sIGIvTGF5b3V0VGVzdHMvbWF0aG1sL3ByZXNlbnRhdGlvbi9tYWN0
aW9uLXRvZ2dsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQwZThi
MzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tYXRobWwvcHJlc2VudGF0aW9uL21h
Y3Rpb24tdG9nZ2xlLmh0bWwKQEAgLTAsMCArMSw5NiBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRt
bD4KKyAgPGhlYWQ+CisgICAgPHRpdGxlPm1hY3Rpb24gdG9nZ2xlPC90aXRsZT4KKyAgICA8bWV0
YSBjaGFyc2V0PSJ1dGYtOCIvPgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4K
KyAgICAgIGZ1bmN0aW9uIGNsaWNrKGlkLCBidWJibGUsIHByZXZlbnREZWZhdWx0KQorICAgICAg
eworICAgICAgdmFyIGV2ZW50ID0gbmV3IE1vdXNlRXZlbnQoJ2NsaWNrJywge2J1YmJsZXM6IGJ1
YmJsZSwgY2FuY2VsYWJsZTogdHJ1ZX0pOworICAgICAgaWYgKHByZXZlbnREZWZhdWx0KQorICAg
ICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOworICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoaWQpLmRpc3BhdGNoRXZlbnQoZXZlbnQpOworICAgICAgfQorCisgICAgICBmdW5jdGlvbiB0
ZXN0KCkKKyAgICAgIHsKKyAgICAgIGNsaWNrKCdtMScpOyBjbGljaygnbTEnKTsgY2xpY2soJ20x
Jyk7CisgICAgICBjbGljaygnbTInKTsKKyAgICAgIGNsaWNrKCdtMycpOworICAgICAgY2xpY2so
J200JywgZmFsc2UpOworICAgICAgY2xpY2soJ201JywgdHJ1ZSk7CisgICAgICBjbGljaygnbTYn
LCBmYWxzZSwgdHJ1ZSk7CisgICAgICB9CisgICAgPC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJv
ZHkgb25sb2FkPSJ0ZXN0KCkiPgorCisgICAgPCEtLSBUaGlzIHRlc3QgdmVyaWZpZXMgdGhlIGVm
ZmVjdCBvZiBtb3VzZSBjbGlja3Mgb24gPG1hY3Rpb24gYWN0aW9udHlwZT0idG9nZ2xlIj4gZWxl
bWVudHMuIC0tPgorICAgIAorICAgIDwhLS0gc2VsZWN0aW9uPSIxIiAoZGVmYXVsdCkgOyB0aHJl
ZSBjbGlja3MgLS0+CisgICAgPG1hdGg+CisgICAgICA8bWFjdGlvbiBhY3Rpb250eXBlPSJ0b2dn
bGUiIGlkPSJtMSI+CisgICAgICAgIDxtbj4xPC9tbj4KKyAgICAgICAgPG1uPjI8L21uPgorICAg
ICAgICA8bW4+MzwvbW4+CisgICAgICAgIDxtbj40PC9tbj4KKyAgICAgIDwvbWFjdGlvbj4KKyAg
ICA8L21hdGg+CisKKyAgICA8IS0tIHNlbGVjdGlvbj0iMiIgOyBvbmUgY2xpY2sgLS0+CisgICAg
PG1hdGg+CisgICAgICA8bWFjdGlvbiBhY3Rpb250eXBlPSJ0b2dnbGUiIHNlbGVjdGlvbj0iMiIg
aWQ9Im0yIj4KKyAgICAgICAgPG1uPjE8L21uPgorICAgICAgICA8bW4+MjwvbW4+CisgICAgICAg
IDxtbj4zPC9tbj4KKyAgICAgICAgPG1uPjQ8L21uPgorICAgICAgPC9tYWN0aW9uPgorICAgIDwv
bWF0aD4KKworICAgIDwhLS0gc2VsZWN0aW9uPSI0IiAobGFzdCBjaGlsZCkgOyBvbmUgY2xpY2sg
LS0+CisgICAgPG1hdGg+CisgICAgICA8bWFjdGlvbiBhY3Rpb250eXBlPSJ0b2dnbGUiIHNlbGVj
dGlvbj0iNCIgaWQ9Im0zIj4KKyAgICAgICAgPG1uPjE8L21uPgorICAgICAgICA8bW4+MjwvbW4+
CisgICAgICAgIDxtbj4zPC9tbj4KKyAgICAgICAgPG1uPjQ8L21uPgorICAgICAgPC9tYWN0aW9u
PgorICAgIDwvbWF0aD4KKworICAgIDwhLS0gTmVzdGVkIDxtYWN0aW9uPiBlbGVtZW50cyA7IGJ1
YmJsZSA9IGZhbHNlIC0tPgorICAgIDxtYXRoPgorICAgICAgPG1hY3Rpb24gYWN0aW9udHlwZT0i
dG9nZ2xlIj4KKyAgICAgICAgPG1hY3Rpb24gYWN0aW9udHlwZT0idG9nZ2xlIiBpZD0ibTQiPgor
ICAgICAgICAgIDxtbj4xPC9tbj4KKyAgICAgICAgICA8bW4+MjwvbW4+CisgICAgICAgICAgPG1u
PjM8L21uPgorICAgICAgICA8L21hY3Rpb24+CisgICAgICAgIDxtbj40PC9tbj4KKyAgICAgICAg
PG1uPjU8L21uPgorICAgICAgPC9tYWN0aW9uPgorICAgIDwvbWF0aD4KKworICAgIDwhLS0gTmVz
dGVkIDxtYWN0aW9uPiBlbGVtZW50cyA7IGJ1YmJsZSA9IHRydWUgLS0+CisgICAgPG1hdGg+Cisg
ICAgICA8bWFjdGlvbiBhY3Rpb250eXBlPSJ0b2dnbGUiPgorICAgICAgICA8bWFjdGlvbiBhY3Rp
b250eXBlPSJ0b2dnbGUiIGlkPSJtNSI+CisgICAgICAgICAgPG1uPjE8L21uPgorICAgICAgICAg
IDxtbj4yPC9tbj4KKyAgICAgICAgICA8bW4+MzwvbW4+CisgICAgICAgIDwvbWFjdGlvbj4KKyAg
ICAgICAgPG1uPjQ8L21uPgorICAgICAgICA8bW4+NTwvbW4+CisgICAgICA8L21hY3Rpb24+Cisg
ICAgPC9tYXRoPgorCisgICAgPCEtLSBQcmV2ZW50IGRlZmF1bHQgLS0+CisgICAgPG1hdGg+Cisg
ICAgICA8bWFjdGlvbiBhY3Rpb250eXBlPSJ0b2dnbGUiIGlkPSJtNiI+CisgICAgICAgIDxtbj4x
PC9tbj4KKyAgICAgICAgPG1uPjI8L21uPgorICAgICAgICA8bW4+MzwvbW4+CisgICAgICA8L21h
Y3Rpb24+CisgICAgPC9tYXRoPgorCisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAy
ODQ2NDQzLi41YzliMWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTMtMDgtMTgg
IEZyw6lkw6lyaWMgV2FuZyAgPGZyZWQud2FuZ0BmcmVlLmZyPgorCisgICAgICAgIEFkZCBzdXBw
b3J0IGZvciBtYWN0aW9uQHRvZ2dsZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEyMDA1OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRlc3Q6IG1hdGhtbC9wcmVzZW50YXRpb24vbWFjdGlvbi10b2dnbGUu
aHRtbAorCisgICAgICAgICogZG9tL0V2ZW50TGlzdGVuZXIuaDoKKyAgICAgICAgKiBtYXRobWwv
TWF0aE1MU2VsZWN0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNYWN0aW9uRXZlbnRM
aXN0ZW5lcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1hY3Rpb25FdmVudExpc3RlbmVy
OjpjYXN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1hY3Rpb25FdmVudExpc3RlbmVyOjpNYWN0aW9u
RXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpNYXRoTUxTZWxlY3RFbGVtZW50OjpN
YXRoTUxTZWxlY3RFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok1hY3Rpb25FdmVudExpc3Rl
bmVyOjpoYW5kbGVFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpNYWN0aW9uRXZlbnRMaXN0ZW5l
cjo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXZWJDb3JlOjpNYXRoTUxTZWxlY3RFbGVtZW50Ojp0
b2dnbGUpOgorICAgICAgICAqIG1hdGhtbC9NYXRoTUxTZWxlY3RFbGVtZW50Lmg6CisKIDIwMTMt
MDgtMTYgIEZyw6lkw6lyaWMgV2FuZyAgPGZyZWQud2FuZ0BmcmVlLmZyPgogCiAgICAgICAgIEFk
ZCBhbiBNYXRoTUxTZWxlY3RFbGVtZW50IGNsYXNzIHRvIGltcGxlbWVudCA8bWFjdGlvbj4gYW5k
IDxzZW1hbnRpY3M+LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TGlzdGVu
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudExpc3RlbmVyLmgKaW5kZXggMjIyMDYwOS4u
NmE4Yjk1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TGlzdGVuZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRMaXN0ZW5lci5oCkBAIC00NCw3ICs0NCw4IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgIEdPYmplY3RFdmVudExpc3RlbmVyVHlw
ZSwKICAgICAgICAgICAgIE5hdGl2ZUV2ZW50TGlzdGVuZXJUeXBlLAogICAgICAgICAgICAgU1ZH
VFJlZlRhcmdldEV2ZW50TGlzdGVuZXJUeXBlLAotICAgICAgICAgICAgTWVkaWFDb250cm9sc0Fw
cGxlRXZlbnRMaXN0ZW5lclR5cGUgCisgICAgICAgICAgICBNZWRpYUNvbnRyb2xzQXBwbGVFdmVu
dExpc3RlbmVyVHlwZSwKKyAgICAgICAgICAgIE1hY3Rpb25FdmVudExpc3RlbmVyVHlwZQogICAg
ICAgICB9OwogCiAgICAgICAgIHZpcnR1YWwgfkV2ZW50TGlzdGVuZXIoKSB7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxTZWxlY3RFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxTZWxlY3RFbGVtZW50LmNwcAppbmRleCA3OWY5ODVhLi45
NmI4NDE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MU2VsZWN0RWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFNlbGVjdEVsZW1lbnQu
Y3BwCkBAIC0yOSw2ICsyOSw4IEBACiAKICNpbmNsdWRlICJNYXRoTUxTZWxlY3RFbGVtZW50Lmgi
CiAKKyNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXIuaCIKICNpbmNs
dWRlICJNYXRoTUxOYW1lcy5oIgogI2luY2x1ZGUgIk5vZGVSZW5kZXJpbmdDb250ZXh0LmgiCiAj
aW5jbHVkZSAiUmVuZGVyTWF0aE1MUm93LmgiCkBAIC0zNyw5ICszOSw1MyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgCiB1c2luZyBuYW1lc3BhY2UgTWF0aE1MTmFtZXM7CiAKK2NsYXNzIE1h
Y3Rpb25FdmVudExpc3RlbmVyIDogcHVibGljIEV2ZW50TGlzdGVuZXIgeworcHVibGljOgorICAg
IHN0YXRpYyBQYXNzUmVmUHRyPE1hY3Rpb25FdmVudExpc3RlbmVyPiBjcmVhdGUoTWF0aE1MU2Vs
ZWN0RWxlbWVudCogbWFjdGlvbikgeyByZXR1cm4gYWRvcHRSZWYobmV3IE1hY3Rpb25FdmVudExp
c3RlbmVyKG1hY3Rpb24pKTsgfQorICAgIHN0YXRpYyBjb25zdCBNYWN0aW9uRXZlbnRMaXN0ZW5l
ciogY2FzdChjb25zdCBFdmVudExpc3RlbmVyKiBsaXN0ZW5lcikKKyAgICB7CisgICAgICAgIHJl
dHVybiBsaXN0ZW5lci0+dHlwZSgpID09IE1hY3Rpb25FdmVudExpc3RlbmVyVHlwZQorICAgICAg
ICAgICAgPyBzdGF0aWNfY2FzdDxjb25zdCBNYWN0aW9uRXZlbnRMaXN0ZW5lcio+KGxpc3RlbmVy
KQorICAgICAgICAgICAgOiAwOworICAgIH0KKyAgICB2aXJ0dWFsIGJvb2wgb3BlcmF0b3I9PShj
b25zdCBFdmVudExpc3RlbmVyJiBvdGhlcik7CisKK3ByaXZhdGU6CisgICAgTWFjdGlvbkV2ZW50
TGlzdGVuZXIoTWF0aE1MU2VsZWN0RWxlbWVudCogbWFjdGlvbikKKyAgICAgICAgOiBFdmVudExp
c3RlbmVyKE1hY3Rpb25FdmVudExpc3RlbmVyVHlwZSkKKyAgICAgICAgLCBtX21hY3Rpb24obWFj
dGlvbikKKyAgICB7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIGhhbmRsZUV2ZW50KFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqLCBFdmVudCopOworICAgIE1hdGhNTFNlbGVjdEVsZW1lbnQqIG1f
bWFjdGlvbjsKK307CisKIE1hdGhNTFNlbGVjdEVsZW1lbnQ6Ok1hdGhNTFNlbGVjdEVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQogICAgIDog
TWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCksIG1fU2VsZWN0
ZWRDaGlsZCgwKQogeworICAgIGlmIChoYXNMb2NhbE5hbWUobWFjdGlvblRhZykpIHsKKyAgICAg
ICAgUmVmUHRyPEV2ZW50TGlzdGVuZXI+IGxpc3RlbmVyID0gTWFjdGlvbkV2ZW50TGlzdGVuZXI6
OmNyZWF0ZSh0aGlzKTsKKyAgICAgICAgYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBsaXN0ZW5l
ci5yZWxlYXNlKCksIGZhbHNlKTsKKyAgICB9Cit9CisKK3ZvaWQgTWFjdGlvbkV2ZW50TGlzdGVu
ZXI6OmhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBFdmVudCogZXZlbnQpCit7
CisgICAgaWYgKGV2ZW50LT5kZWZhdWx0UHJldmVudGVkKCkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5jbGlja0V2ZW50ICYmIGV2ZW50
LT5pc01vdXNlRXZlbnQoKSkgeworICAgICAgICBpZiAobV9tYWN0aW9uLT5nZXRBdHRyaWJ1dGUo
TWF0aE1MTmFtZXM6OmFjdGlvbnR5cGVBdHRyKSA9PSAidG9nZ2xlIikKKyAgICAgICAgICAgIG1f
bWFjdGlvbi0+dG9nZ2xlKCk7CisgICAgfQorfQorCitib29sIE1hY3Rpb25FdmVudExpc3RlbmVy
OjpvcGVyYXRvcj09KGNvbnN0IEV2ZW50TGlzdGVuZXImIGxpc3RlbmVyKQoreworICAgIGlmIChj
b25zdCBNYWN0aW9uRXZlbnRMaXN0ZW5lciogbWFjdGlvbkV2ZW50TGlzdGVuZXIgPSBNYWN0aW9u
RXZlbnRMaXN0ZW5lcjo6Y2FzdCgmbGlzdGVuZXIpKQorICAgICAgICByZXR1cm4gbV9tYWN0aW9u
ID09IG1hY3Rpb25FdmVudExpc3RlbmVyLT5tX21hY3Rpb247CisgICAgcmV0dXJuIGZhbHNlOwog
fQogCiBQYXNzUmVmUHRyPE1hdGhNTFNlbGVjdEVsZW1lbnQ+IE1hdGhNTFNlbGVjdEVsZW1lbnQ6
OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQp
CkBAIC0xMTEsNiArMTU3LDI1IEBAIHZvaWQgTWF0aE1MU2VsZWN0RWxlbWVudDo6dXBkYXRlU2Vs
ZWN0ZWRDaGlsZCgpCiAgICAgfQogfQogCit2b2lkIE1hdGhNTFNlbGVjdEVsZW1lbnQ6OnRvZ2ds
ZSgpCit7CisgICAgYm9vbCBvayA9IHRydWU7CisgICAgaW50IHNlbGVjdGlvbiA9IChoYXNBdHRy
aWJ1dGUoTWF0aE1MTmFtZXM6OnNlbGVjdGlvbkF0dHIpID8gZ2V0QXR0cmlidXRlKE1hdGhNTE5h
bWVzOjpzZWxlY3Rpb25BdHRyKS50b0ludCgmb2spIDogMSk7CisgICAgaWYgKCFvayB8fCBzZWxl
Y3Rpb24gPCAxKQorICAgICAgICBzZWxlY3Rpb24gPSAxOworCisgICAgRWxlbWVudCogY2hpbGQg
PSBmaXJzdEVsZW1lbnRDaGlsZCgpOworICAgIGludCBpOworICAgIGZvciAoaSA9IDE7IGNoaWxk
OyBjaGlsZCA9IGNoaWxkLT5uZXh0RWxlbWVudFNpYmxpbmcoKSkgeworICAgICAgICBpZiAoaSA9
PSBzZWxlY3Rpb24gKyAxKQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGkrKzsKKyAgICB9
CisgICAgaWYgKCFjaGlsZCkKKyAgICAgICAgaSA9IDE7CisgICAgc2V0QXR0cmlidXRlKE1hdGhN
TE5hbWVzOjpzZWxlY3Rpb25BdHRyLCBTdHJpbmc6Om51bWJlcihpKSk7Cit9CisKIH0KIAogI2Vu
ZGlmIC8vIEVOQUJMRShNQVRITUwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwv
TWF0aE1MU2VsZWN0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFNlbGVj
dEVsZW1lbnQuaAppbmRleCA2OWQ3NGJmLi41ZmI2NDQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9tYXRobWwvTWF0aE1MU2VsZWN0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL21h
dGhtbC9NYXRoTUxTZWxlY3RFbGVtZW50LmgKQEAgLTM0LDYgKzM0LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogY2xhc3MgTWF0aE1MU2VsZWN0RWxlbWVudCA6IHB1YmxpYyBNYXRoTUxJbmxpbmVD
b250YWluZXJFbGVtZW50IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxNYXRoTUxT
ZWxlY3RFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1l
bnQqKTsKKyAgICB2b2lkIHRvZ2dsZSgpOwogICAgIAogcHJvdGVjdGVkOgogICAgIE1hdGhNTFNl
bGVjdEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>211738</attachid>
            <date>2013-09-15 22:15:42 -0700</date>
            <delta_ts>2013-09-16 06:26:15 -0700</delta_ts>
            <desc>Patch V2</desc>
            <filename>maction-toggle.diff</filename>
            <type>text/plain</type>
            <size>10122</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyNWNjODI5Li5hMDA2YjFmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTMtMDkt
MTYgIEZyw6lkw6lyaWMgV2FuZyAgPGZyZWQud2FuZ0BmcmVlLmZyPgorCisgICAgICAgIEFkZCBz
dXBwb3J0IGZvciBtYWN0aW9uQHRvZ2dsZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEyMDA1OS4KKworICAgICAgICBOZXcgdGVzdHMgZm9yIG1hY3Rp
b25AdG9nZ2xlLgorCisgICAgICAgICogbWF0aG1sL3ByZXNlbnRhdGlvbi9tYWN0aW9uLXRvZ2ds
ZS1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBtYXRobWwvcHJlc2VudGF0aW9uL21h
Y3Rpb24tdG9nZ2xlLmh0bWw6IEFkZGVkLgorCiAyMDEzLTA5LTE2ICBGcsOpZMOpcmljIFdhbmcg
IDxmcmVkLndhbmdAZnJlZS5mcj4KIAogICAgICAgICBBZGQgYW4gTWF0aE1MU2VsZWN0RWxlbWVu
dCBjbGFzcyB0byBpbXBsZW1lbnQgPG1hY3Rpb24+IGFuZCA8c2VtYW50aWNzPi4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL21hdGhtbC9wcmVzZW50YXRpb24vbWFjdGlvbi10b2dnbGUtZXhwZWN0
ZWQuaHRtbCBiL0xheW91dFRlc3RzL21hdGhtbC9wcmVzZW50YXRpb24vbWFjdGlvbi10b2dnbGUt
ZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOGE1NGRi
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWF0aG1sL3ByZXNlbnRhdGlvbi9tYWN0
aW9uLXRvZ2dsZS1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsNTMgQEAKKzwhZG9jdHlwZSBodG1s
PgorPGh0bWw+CisgIDxoZWFkPgorICAgIDx0aXRsZT5tYWN0aW9uIHRvZ2dsZTwvdGl0bGU+Cisg
IDwvaGVhZD4KKyAgPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgorCisgICAgPCEtLSBzZWxlY3Rpb249
IjEiIChkZWZhdWx0KSA7IHRocmVlIGNsaWNrcyAtLT4KKyAgICA8bWF0aD4KKyAgICAgIDxtcm93
PgorICAgICAgICA8bW4+NDwvbW4+CisgICAgICA8L21yb3c+CisgICAgPC9tYXRoPgorCisgICAg
PCEtLSBzZWxlY3Rpb249IjIiIDsgb25lIGNsaWNrIC0tPgorICAgIDxtYXRoPgorICAgICAgPG1y
b3c+CisgICAgICAgIDxtbj4zPC9tbj4KKyAgICAgIDwvbXJvdz4KKyAgICA8L21hdGg+CisKKyAg
ICA8IS0tIHNlbGVjdGlvbj0iNCIgKGxhc3QgY2hpbGQpIDsgb25lIGNsaWNrIC0tPgorICAgIDxt
YXRoPgorICAgICAgPG1yb3c+CisgICAgICAgIDxtbj4xPC9tbj4KKyAgICAgIDwvbXJvdz4KKyAg
ICA8L21hdGg+CisKKyAgICA8IS0tIE5lc3RlZCA8bWFjdGlvbj4gZWxlbWVudHMgOyBidWJibGUg
PSBmYWxzZSAtLT4KKyAgICA8bWF0aD4KKyAgICAgIDxtcm93PgorICAgICAgICA8bXJvdz4KKyAg
ICAgICAgICA8bW4+MjwvbW4+CisgICAgICAgIDwvbXJvdz4KKyAgICAgIDwvbXJvdz4KKyAgICA8
L21hdGg+CisKKyAgICA8IS0tIE5lc3RlZCA8bWFjdGlvbj4gZWxlbWVudHMgOyBidWJibGUgPSB0
cnVlIC0tPgorICAgIDxtYXRoPgorICAgICAgPG1yb3c+CisgICAgICAgIDxtbj40PC9tbj4KKyAg
ICAgIDwvbXJvdz4KKyAgICA8L21hdGg+CisKKyAgICA8IS0tIFByZXZlbnQgZGVmYXVsdCAtLT4K
KyAgICA8bWF0aD4KKyAgICAgIDxtcm93PgorICAgICAgICA8bW4+MTwvbW4+CisgICAgICA8L21y
b3c+CisgICAgPC9tYXRoPgorCisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL21hdGhtbC9wcmVzZW50YXRpb24vbWFjdGlvbi10b2dnbGUuaHRtbCBiL0xheW91dFRl
c3RzL21hdGhtbC9wcmVzZW50YXRpb24vbWFjdGlvbi10b2dnbGUuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNTQ1Yjc3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvbWF0aG1sL3ByZXNlbnRhdGlvbi9tYWN0aW9uLXRvZ2dsZS5odG1sCkBAIC0wLDAgKzEs
MTExIEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8dGl0bGU+bWFj
dGlvbiB0b2dnbGU8L3RpdGxlPgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4K
KyAgICAgIGZ1bmN0aW9uIGNsaWNrKGlkLCBidWJibGUsIHByZXZlbnREZWZhdWx0KQorICAgICAg
eworICAgICAgICB2YXIgZXZlbnQgPSBuZXcgTW91c2VFdmVudCgnY2xpY2snLCB7YnViYmxlczog
YnViYmxlLCBjYW5jZWxhYmxlOiB0cnVlfSk7CisgICAgICAgIGlmIChwcmV2ZW50RGVmYXVsdCkK
KyAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOworICAgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZChpZCkuZGlzcGF0Y2hFdmVudChldmVudCk7CisgICAgICB9CisgICAgICBmdW5j
dGlvbiB0ZXN0KCkKKyAgICAgIHsKKyAgICAgICAgLy8gc2VsZWN0aW9uPTEgOyAoWzFdIDIgMyA0
KQorICAgICAgICAvLyBBZnRlciB0aHJlZSBjbGlja3MsIHNlbGVjdGlvbj00OiAoMSAyIDMgWzRd
KQorICAgICAgICBjbGljaygnbTEnKTsgY2xpY2soJ20xJyk7IGNsaWNrKCdtMScpOworCisgICAg
ICAgIC8vIHNlbGVjdGlvbj0yIDsgKDEgWzJdIDMgNCkKKyAgICAgICAgLy8gQWZ0ZXIgb25lIGNs
aWNrLCBzZWxlY3Rpb249MzogKDEgMiBbM10gNCkKKyAgICAgICAgY2xpY2soJ20yJyk7CisKKyAg
ICAgICAgLy8gc2VsZWN0aW9uPTQgOyAoMSAyIDMgWzRdKQorICAgICAgICAvLyBBZnRlciBvbmUg
Y2xpY2ssIHNlbGVjdGlvbj0xOiAoWzFdIDIgMyA0KQorICAgICAgICBjbGljaygnbTMnKTsKKwor
ICAgICAgICAvLyBOZXN0ZWQgbWFjdGlvbiBlbGVtZW50cywgYnViYmxlID0gZmFsc2UgOyAoWyhb
MV0gMiAzKV0gNCA1KQorICAgICAgICAvLyBBZnRlciBvbmUgY2xpY2sgb24gdGhlIGlubmVyIG1h
Y3Rpb246IChbKDEgWzJdIDMpXSA0IDUpCisgICAgICAgIGNsaWNrKCdtNCcsIGZhbHNlKTsKKwor
ICAgICAgICAvLyBOZXN0ZWQgbWFjdGlvbiBlbGVtZW50cywgYnViYmxlID0gdHJ1ZSA7IChbKFsx
XSAyIDMpXSA0IDUpCisgICAgICAgIC8vIEFmdGVyIG9uZSBjbGljayBvbiB0aGUgaW5uZXIgbWFj
dGlvbjogKCgxIFsyXSAzKSBbNF0gNSkKKyAgICAgICAgY2xpY2soJ201JywgdHJ1ZSk7CisKKyAg
ICAgICAgLy8gUHJldmVudCBkZWZhdWx0IDsgKFsxXSAyIDMpCisgICAgICAgIC8vIEFmdGVyIG9u
ZSBjbGljayBvbiB0aGUgaW5uZXIgbWFjdGlvbjogKFsxXSAyIDMpCisgICAgICAgIGNsaWNrKCdt
NicsIGZhbHNlLCB0cnVlKTsKKyAgICAgIH0KKyAgICA8L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8
Ym9keSBvbmxvYWQ9InRlc3QoKSI+CisKKyAgICA8IS0tIFRoaXMgdGVzdCB2ZXJpZmllcyB0aGUg
ZWZmZWN0IG9mIG1vdXNlIGNsaWNrcyBvbiA8bWFjdGlvbiBhY3Rpb250eXBlPSJ0b2dnbGUiPiBl
bGVtZW50cy4gLS0+CisgICAgCisgICAgPCEtLSBzZWxlY3Rpb249IjEiIChkZWZhdWx0KSA7IHRo
cmVlIGNsaWNrcyAtLT4KKyAgICA8bWF0aD4KKyAgICAgIDxtYWN0aW9uIGFjdGlvbnR5cGU9InRv
Z2dsZSIgaWQ9Im0xIj4KKyAgICAgICAgPG1uPjE8L21uPgorICAgICAgICA8bW4+MjwvbW4+Cisg
ICAgICAgIDxtbj4zPC9tbj4KKyAgICAgICAgPG1uPjQ8L21uPgorICAgICAgPC9tYWN0aW9uPgor
ICAgIDwvbWF0aD4KKworICAgIDwhLS0gc2VsZWN0aW9uPSIyIiA7IG9uZSBjbGljayAtLT4KKyAg
ICA8bWF0aD4KKyAgICAgIDxtYWN0aW9uIGFjdGlvbnR5cGU9InRvZ2dsZSIgc2VsZWN0aW9uPSIy
IiBpZD0ibTIiPgorICAgICAgICA8bW4+MTwvbW4+CisgICAgICAgIDxtbj4yPC9tbj4KKyAgICAg
ICAgPG1uPjM8L21uPgorICAgICAgICA8bW4+NDwvbW4+CisgICAgICA8L21hY3Rpb24+CisgICAg
PC9tYXRoPgorCisgICAgPCEtLSBzZWxlY3Rpb249IjQiIChsYXN0IGNoaWxkKSA7IG9uZSBjbGlj
ayAtLT4KKyAgICA8bWF0aD4KKyAgICAgIDxtYWN0aW9uIGFjdGlvbnR5cGU9InRvZ2dsZSIgc2Vs
ZWN0aW9uPSI0IiBpZD0ibTMiPgorICAgICAgICA8bW4+MTwvbW4+CisgICAgICAgIDxtbj4yPC9t
bj4KKyAgICAgICAgPG1uPjM8L21uPgorICAgICAgICA8bW4+NDwvbW4+CisgICAgICA8L21hY3Rp
b24+CisgICAgPC9tYXRoPgorCisgICAgPCEtLSBOZXN0ZWQgPG1hY3Rpb24+IGVsZW1lbnRzIDsg
YnViYmxlID0gZmFsc2UgLS0+CisgICAgPG1hdGg+CisgICAgICA8bWFjdGlvbiBhY3Rpb250eXBl
PSJ0b2dnbGUiPgorICAgICAgICA8bWFjdGlvbiBhY3Rpb250eXBlPSJ0b2dnbGUiIGlkPSJtNCI+
CisgICAgICAgICAgPG1uPjE8L21uPgorICAgICAgICAgIDxtbj4yPC9tbj4KKyAgICAgICAgICA8
bW4+MzwvbW4+CisgICAgICAgIDwvbWFjdGlvbj4KKyAgICAgICAgPG1uPjQ8L21uPgorICAgICAg
ICA8bW4+NTwvbW4+CisgICAgICA8L21hY3Rpb24+CisgICAgPC9tYXRoPgorCisgICAgPCEtLSBO
ZXN0ZWQgPG1hY3Rpb24+IGVsZW1lbnRzIDsgYnViYmxlID0gdHJ1ZSAtLT4KKyAgICA8bWF0aD4K
KyAgICAgIDxtYWN0aW9uIGFjdGlvbnR5cGU9InRvZ2dsZSI+CisgICAgICAgIDxtYWN0aW9uIGFj
dGlvbnR5cGU9InRvZ2dsZSIgaWQ9Im01Ij4KKyAgICAgICAgICA8bW4+MTwvbW4+CisgICAgICAg
ICAgPG1uPjI8L21uPgorICAgICAgICAgIDxtbj4zPC9tbj4KKyAgICAgICAgPC9tYWN0aW9uPgor
ICAgICAgICA8bW4+NDwvbW4+CisgICAgICAgIDxtbj41PC9tbj4KKyAgICAgIDwvbWFjdGlvbj4K
KyAgICA8L21hdGg+CisKKyAgICA8IS0tIFByZXZlbnQgZGVmYXVsdCAtLT4KKyAgICA8bWF0aD4K
KyAgICAgIDxtYWN0aW9uIGFjdGlvbnR5cGU9InRvZ2dsZSIgaWQ9Im02Ij4KKyAgICAgICAgPG1u
PjE8L21uPgorICAgICAgICA8bW4+MjwvbW4+CisgICAgICAgIDxtbj4zPC9tbj4KKyAgICAgIDwv
bWFjdGlvbj4KKyAgICA8L21hdGg+CisKKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IGE0NWJhMTcwLi4xODgxN2E5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTMtMDkt
MTYgIEZyw6lkw6lyaWMgV2FuZyAgPGZyZWQud2FuZ0BmcmVlLmZyPgorCisgICAgICAgIEFkZCBz
dXBwb3J0IGZvciBtYWN0aW9uQHRvZ2dsZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEyMDA1OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRlc3Q6IG1hdGhtbC9wcmVzZW50YXRpb24vbWFjdGlvbi10b2dn
bGUuaHRtbAorCisgICAgICAgICogZG9tL0V2ZW50TGlzdGVuZXIuaDoKKyAgICAgICAgKiBtYXRo
bWwvTWF0aE1MU2VsZWN0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNYWN0aW9uRXZl
bnRMaXN0ZW5lcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1hY3Rpb25FdmVudExpc3Rl
bmVyOjpjYXN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1hY3Rpb25FdmVudExpc3RlbmVyOjpNYWN0
aW9uRXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpNYXRoTUxTZWxlY3RFbGVtZW50
OjpNYXRoTUxTZWxlY3RFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok1hY3Rpb25FdmVudExp
c3RlbmVyOjpoYW5kbGVFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpNYWN0aW9uRXZlbnRMaXN0
ZW5lcjo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXZWJDb3JlOjpNYXRoTUxTZWxlY3RFbGVtZW50
Ojp0b2dnbGUpOgorICAgICAgICAqIG1hdGhtbC9NYXRoTUxTZWxlY3RFbGVtZW50Lmg6CisKIDIw
MTMtMDktMTUgIEZyw6lkw6lyaWMgV2FuZyAgPGZyZWQud2FuZ0BmcmVlLmZyPgogCiAgICAgICAg
IEFkZCBhbiBNYXRoTUxTZWxlY3RFbGVtZW50IGNsYXNzIHRvIGltcGxlbWVudCA8bWFjdGlvbj4g
YW5kIDxzZW1hbnRpY3M+LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TGlz
dGVuZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudExpc3RlbmVyLmgKaW5kZXggMjIyMDYw
OS4uODIwYjUwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TGlzdGVuZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRMaXN0ZW5lci5oCkBAIC00NCw3ICs0NCw4
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgIEdPYmplY3RFdmVudExpc3RlbmVy
VHlwZSwKICAgICAgICAgICAgIE5hdGl2ZUV2ZW50TGlzdGVuZXJUeXBlLAogICAgICAgICAgICAg
U1ZHVFJlZlRhcmdldEV2ZW50TGlzdGVuZXJUeXBlLAotICAgICAgICAgICAgTWVkaWFDb250cm9s
c0FwcGxlRXZlbnRMaXN0ZW5lclR5cGUgCisgICAgICAgICAgICBNZWRpYUNvbnRyb2xzQXBwbGVF
dmVudExpc3RlbmVyVHlwZSwKKyAgICAgICAgICAgIE1BY3Rpb25FdmVudExpc3RlbmVyVHlwZQog
ICAgICAgICB9OwogCiAgICAgICAgIHZpcnR1YWwgfkV2ZW50TGlzdGVuZXIoKSB7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxTZWxlY3RFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxTZWxlY3RFbGVtZW50LmNwcAppbmRleCA3NTI2Njk2
Li5jNmRiMzE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MU2VsZWN0
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFNlbGVjdEVsZW1l
bnQuY3BwCkBAIC0yOSw2ICsyOSw4IEBACiAKICNpbmNsdWRlICJNYXRoTUxTZWxlY3RFbGVtZW50
LmgiCiAKKyNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXIuaCIKICNp
bmNsdWRlICJNYXRoTUxOYW1lcy5oIgogI2luY2x1ZGUgIlJlbmRlck1hdGhNTFJvdy5oIgogCkBA
IC0zNiw5ICszOCw1MyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCiB1c2luZyBuYW1lc3Bh
Y2UgTWF0aE1MTmFtZXM7CiAKK2NsYXNzIE1BY3Rpb25FdmVudExpc3RlbmVyIDogcHVibGljIEV2
ZW50TGlzdGVuZXIgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1BY3Rpb25FdmVu
dExpc3RlbmVyPiBjcmVhdGUoTWF0aE1MU2VsZWN0RWxlbWVudCogbWFjdGlvbikgeyByZXR1cm4g
YWRvcHRSZWYobmV3IE1BY3Rpb25FdmVudExpc3RlbmVyKG1hY3Rpb24pKTsgfQorICAgIHN0YXRp
YyBjb25zdCBNQWN0aW9uRXZlbnRMaXN0ZW5lciogY2FzdChjb25zdCBFdmVudExpc3RlbmVyKiBs
aXN0ZW5lcikKKyAgICB7CisgICAgICAgIHJldHVybiBsaXN0ZW5lci0+dHlwZSgpID09IE1BY3Rp
b25FdmVudExpc3RlbmVyVHlwZQorICAgICAgICAgICAgPyBzdGF0aWNfY2FzdDxjb25zdCBNQWN0
aW9uRXZlbnRMaXN0ZW5lcio+KGxpc3RlbmVyKQorICAgICAgICAgICAgOiAwOworICAgIH0KKyAg
ICB2aXJ0dWFsIGJvb2wgb3BlcmF0b3I9PShjb25zdCBFdmVudExpc3RlbmVyJiBvdGhlcik7CisK
K3ByaXZhdGU6CisgICAgTUFjdGlvbkV2ZW50TGlzdGVuZXIoTWF0aE1MU2VsZWN0RWxlbWVudCog
bWFjdGlvbikKKyAgICAgICAgOiBFdmVudExpc3RlbmVyKE1BY3Rpb25FdmVudExpc3RlbmVyVHlw
ZSkKKyAgICAgICAgLCBtX21hY3Rpb24obWFjdGlvbikKKyAgICB7CisgICAgfQorCisgICAgdmly
dHVhbCB2b2lkIGhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBFdmVudCopOwor
ICAgIE1hdGhNTFNlbGVjdEVsZW1lbnQqIG1fbWFjdGlvbjsKK307CisKIE1hdGhNTFNlbGVjdEVs
ZW1lbnQ6Ok1hdGhNTFNlbGVjdEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwg
RG9jdW1lbnQqIGRvY3VtZW50KQogICAgIDogTWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudCh0
YWdOYW1lLCBkb2N1bWVudCksIG1fU2VsZWN0ZWRDaGlsZCgwKQogeworICAgIGlmIChoYXNMb2Nh
bE5hbWUobWFjdGlvblRhZykpIHsKKyAgICAgICAgUmVmUHRyPEV2ZW50TGlzdGVuZXI+IGxpc3Rl
bmVyID0gTUFjdGlvbkV2ZW50TGlzdGVuZXI6OmNyZWF0ZSh0aGlzKTsKKyAgICAgICAgYWRkRXZl
bnRMaXN0ZW5lcigiY2xpY2siLCBsaXN0ZW5lci5yZWxlYXNlKCksIGZhbHNlKTsKKyAgICB9Cit9
CisKK3ZvaWQgTUFjdGlvbkV2ZW50TGlzdGVuZXI6OmhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqLCBFdmVudCogZXZlbnQpCit7CisgICAgaWYgKGV2ZW50LT5kZWZhdWx0UHJldmVu
dGVkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50
TmFtZXMoKS5jbGlja0V2ZW50ICYmIGV2ZW50LT5pc01vdXNlRXZlbnQoKSkgeworICAgICAgICBp
ZiAobV9tYWN0aW9uLT5nZXRBdHRyaWJ1dGUoTWF0aE1MTmFtZXM6OmFjdGlvbnR5cGVBdHRyKSA9
PSAidG9nZ2xlIikKKyAgICAgICAgICAgIG1fbWFjdGlvbi0+dG9nZ2xlKCk7CisgICAgfQorfQor
Citib29sIE1BY3Rpb25FdmVudExpc3RlbmVyOjpvcGVyYXRvcj09KGNvbnN0IEV2ZW50TGlzdGVu
ZXImIGxpc3RlbmVyKQoreworICAgIGlmIChjb25zdCBNQWN0aW9uRXZlbnRMaXN0ZW5lciogbWFj
dGlvbkV2ZW50TGlzdGVuZXIgPSBNQWN0aW9uRXZlbnRMaXN0ZW5lcjo6Y2FzdCgmbGlzdGVuZXIp
KQorICAgICAgICByZXR1cm4gbV9tYWN0aW9uID09IG1hY3Rpb25FdmVudExpc3RlbmVyLT5tX21h
Y3Rpb247CisgICAgcmV0dXJuIGZhbHNlOwogfQogCiBQYXNzUmVmUHRyPE1hdGhNTFNlbGVjdEVs
ZW1lbnQ+IE1hdGhNTFNlbGVjdEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCkBAIC0xMTAsNiArMTU2LDI1IEBAIHZvaWQgTWF0
aE1MU2VsZWN0RWxlbWVudDo6dXBkYXRlU2VsZWN0ZWRDaGlsZCgpCiAgICAgfQogfQogCit2b2lk
IE1hdGhNTFNlbGVjdEVsZW1lbnQ6OnRvZ2dsZSgpCit7CisgICAgYm9vbCBvayA9IHRydWU7Cisg
ICAgdW5zaWduZWQgaW50IHNlbGVjdGlvbiA9IChoYXNBdHRyaWJ1dGUoTWF0aE1MTmFtZXM6OnNl
bGVjdGlvbkF0dHIpID8gZ2V0QXR0cmlidXRlKE1hdGhNTE5hbWVzOjpzZWxlY3Rpb25BdHRyKS50
b0ludCgmb2spIDogMSk7CisgICAgaWYgKCFvayB8fCBzZWxlY3Rpb24gPCAxKQorICAgICAgICBz
ZWxlY3Rpb24gPSAxOworCisgICAgRWxlbWVudCogY2hpbGQgPSBmaXJzdEVsZW1lbnRDaGlsZCgp
OworICAgIGludCBpOworICAgIGZvciAoaSA9IDE7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0
RWxlbWVudFNpYmxpbmcoKSkgeworICAgICAgICBpZiAoaSA9PSBzZWxlY3Rpb24gKyAxKQorICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGkrKzsKKyAgICB9CisgICAgaWYgKCFjaGlsZCkKKyAg
ICAgICAgaSA9IDE7CisgICAgc2V0QXR0cmlidXRlKE1hdGhNTE5hbWVzOjpzZWxlY3Rpb25BdHRy
LCBTdHJpbmc6Om51bWJlcihpKSk7Cit9CisKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShNQVRITUwp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MU2VsZWN0RWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFNlbGVjdEVsZW1lbnQuaAppbmRleCA3ZmY5
N2U1Li5lYzU5NGZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MU2Vs
ZWN0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxTZWxlY3RFbGVt
ZW50LmgKQEAgLTM0LDYgKzM0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgTWF0aE1M
U2VsZWN0RWxlbWVudCA6IHB1YmxpYyBNYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50IHsKIHB1
YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxNYXRoTUxTZWxlY3RFbGVtZW50PiBjcmVhdGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqKTsKKyAgICB2b2lkIHRvZ2ds
ZSgpOwogICAgIAogcHJvdGVjdGVkOgogICAgIE1hdGhNTFNlbGVjdEVsZW1lbnQoY29uc3QgUXVh
bGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>211773</attachid>
            <date>2013-09-16 06:26:15 -0700</date>
            <delta_ts>2013-11-27 05:24:23 -0800</delta_ts>
            <desc>Patch V3</desc>
            <filename>maction-toggle.diff</filename>
            <type>text/plain</type>
            <size>10224</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiNjVjOTM5Li5kMzAzNDUwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTUgQEAKIDIwMTMtMDkt
MTYgIEZyw6lkw6lyaWMgV2FuZyAgPGZyZWQud2FuZ0BmcmVlLmZyPgogCisgICAgICAgIEFkZCBz
dXBwb3J0IGZvciBtYWN0aW9uQHRvZ2dsZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEyMDA1OQorCisgICAgICAgIE5ldyB0ZXN0cyBmb3IgbWFjdGlv
bkB0b2dnbGUuCisKKyAgICAgICAgKiBtYXRobWwvcHJlc2VudGF0aW9uL21hY3Rpb24tdG9nZ2xl
LWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIG1hdGhtbC9wcmVzZW50YXRpb24vbWFj
dGlvbi10b2dnbGUuaHRtbDogQWRkZWQuCisKKzIwMTMtMDktMTYgIEZyw6lkw6lyaWMgV2FuZyAg
PGZyZWQud2FuZ0BmcmVlLmZyPgorCiAgICAgICAgIEFkZCBhbiBNYXRoTUxTZWxlY3RFbGVtZW50
IGNsYXNzIHRvIGltcGxlbWVudCA8bWFjdGlvbj4gYW5kIDxzZW1hbnRpY3M+LgogICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIwMDU4CiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL21hdGhtbC9wcmVzZW50YXRpb24vbWFjdGlvbi10b2dnbGUtZXhwZWN0
ZWQuaHRtbCBiL0xheW91dFRlc3RzL21hdGhtbC9wcmVzZW50YXRpb24vbWFjdGlvbi10b2dnbGUt
ZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOGE1NGRi
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWF0aG1sL3ByZXNlbnRhdGlvbi9tYWN0
aW9uLXRvZ2dsZS1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsNTMgQEAKKzwhZG9jdHlwZSBodG1s
PgorPGh0bWw+CisgIDxoZWFkPgorICAgIDx0aXRsZT5tYWN0aW9uIHRvZ2dsZTwvdGl0bGU+Cisg
IDwvaGVhZD4KKyAgPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgorCisgICAgPCEtLSBzZWxlY3Rpb249
IjEiIChkZWZhdWx0KSA7IHRocmVlIGNsaWNrcyAtLT4KKyAgICA8bWF0aD4KKyAgICAgIDxtcm93
PgorICAgICAgICA8bW4+NDwvbW4+CisgICAgICA8L21yb3c+CisgICAgPC9tYXRoPgorCisgICAg
PCEtLSBzZWxlY3Rpb249IjIiIDsgb25lIGNsaWNrIC0tPgorICAgIDxtYXRoPgorICAgICAgPG1y
b3c+CisgICAgICAgIDxtbj4zPC9tbj4KKyAgICAgIDwvbXJvdz4KKyAgICA8L21hdGg+CisKKyAg
ICA8IS0tIHNlbGVjdGlvbj0iNCIgKGxhc3QgY2hpbGQpIDsgb25lIGNsaWNrIC0tPgorICAgIDxt
YXRoPgorICAgICAgPG1yb3c+CisgICAgICAgIDxtbj4xPC9tbj4KKyAgICAgIDwvbXJvdz4KKyAg
ICA8L21hdGg+CisKKyAgICA8IS0tIE5lc3RlZCA8bWFjdGlvbj4gZWxlbWVudHMgOyBidWJibGUg
PSBmYWxzZSAtLT4KKyAgICA8bWF0aD4KKyAgICAgIDxtcm93PgorICAgICAgICA8bXJvdz4KKyAg
ICAgICAgICA8bW4+MjwvbW4+CisgICAgICAgIDwvbXJvdz4KKyAgICAgIDwvbXJvdz4KKyAgICA8
L21hdGg+CisKKyAgICA8IS0tIE5lc3RlZCA8bWFjdGlvbj4gZWxlbWVudHMgOyBidWJibGUgPSB0
cnVlIC0tPgorICAgIDxtYXRoPgorICAgICAgPG1yb3c+CisgICAgICAgIDxtbj40PC9tbj4KKyAg
ICAgIDwvbXJvdz4KKyAgICA8L21hdGg+CisKKyAgICA8IS0tIFByZXZlbnQgZGVmYXVsdCAtLT4K
KyAgICA8bWF0aD4KKyAgICAgIDxtcm93PgorICAgICAgICA8bW4+MTwvbW4+CisgICAgICA8L21y
b3c+CisgICAgPC9tYXRoPgorCisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL21hdGhtbC9wcmVzZW50YXRpb24vbWFjdGlvbi10b2dnbGUuaHRtbCBiL0xheW91dFRl
c3RzL21hdGhtbC9wcmVzZW50YXRpb24vbWFjdGlvbi10b2dnbGUuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi41NDAwNmIzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvbWF0aG1sL3ByZXNlbnRhdGlvbi9tYWN0aW9uLXRvZ2dsZS5odG1sCkBAIC0wLDAgKzEs
MTExIEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8dGl0bGU+bWFj
dGlvbiB0b2dnbGU8L3RpdGxlPgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4K
KyAgICAgIGZ1bmN0aW9uIGNsaWNrKGlkLCBidWJibGUsIHByZXZlbnREZWZhdWx0KQorICAgICAg
eworICAgICAgICB2YXIgZXZlbnQgPSBuZXcgTW91c2VFdmVudCgnY2xpY2snLCB7YnViYmxlczog
YnViYmxlLCBjYW5jZWxhYmxlOiB0cnVlfSk7CisgICAgICAgIGlmIChwcmV2ZW50RGVmYXVsdCkK
KyAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOworICAgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZChpZCkuZGlzcGF0Y2hFdmVudChldmVudCk7CisgICAgICB9CisgICAgICBmdW5j
dGlvbiB0ZXN0KCkKKyAgICAgIHsKKyAgICAgICAgLy8gc2VsZWN0aW9uPTEgOyAoWzFdIDIgMyA0
KQorICAgICAgICAvLyBBZnRlciB0aHJlZSBjbGlja3MsIHNlbGVjdGlvbj00OiAoMSAyIDMgWzRd
KQorICAgICAgICBjbGljaygnbTEnKTsgY2xpY2soJ20xJyk7IGNsaWNrKCdtMScpOworCisgICAg
ICAgIC8vIHNlbGVjdGlvbj0yIDsgKDEgWzJdIDMgNCkKKyAgICAgICAgLy8gQWZ0ZXIgb25lIGNs
aWNrLCBzZWxlY3Rpb249MzogKDEgMiBbM10gNCkKKyAgICAgICAgY2xpY2soJ20yJyk7CisKKyAg
ICAgICAgLy8gc2VsZWN0aW9uPTQgOyAoMSAyIDMgWzRdKQorICAgICAgICAvLyBBZnRlciBvbmUg
Y2xpY2ssIHNlbGVjdGlvbj0xOiAoWzFdIDIgMyA0KQorICAgICAgICBjbGljaygnbTMnKTsKKwor
ICAgICAgICAvLyBOZXN0ZWQgbWFjdGlvbiBlbGVtZW50cywgYnViYmxlID0gZmFsc2UgOyAoWyhb
MV0gMiAzKV0gNCA1KQorICAgICAgICAvLyBBZnRlciBvbmUgY2xpY2sgb24gdGhlIGlubmVyIG1h
Y3Rpb246IChbKDEgWzJdIDMpXSA0IDUpCisgICAgICAgIGNsaWNrKCdtNCcsIGZhbHNlKTsKKwor
ICAgICAgICAvLyBOZXN0ZWQgbWFjdGlvbiBlbGVtZW50cywgYnViYmxlID0gdHJ1ZSA7IChbKFsx
XSAyIDMpXSA0IDUpCisgICAgICAgIC8vIEFmdGVyIG9uZSBjbGljayBvbiB0aGUgaW5uZXIgbWFj
dGlvbjogKCgxIFsyXSAzKSBbNF0gNSkKKyAgICAgICAgY2xpY2soJ201JywgdHJ1ZSk7CisKKyAg
ICAgICAgLy8gUHJldmVudCBkZWZhdWx0IDsgKFsxXSAyIDMpCisgICAgICAgIC8vIEFmdGVyIG9u
ZSBjbGljayBvbiB0aGUgaW5uZXIgbWFjdGlvbjogKFsxXSAyIDMpCisgICAgICAgIGNsaWNrKCdt
NicsIGZhbHNlLCB0cnVlKTsKKyAgICAgIH0KKyAgICA8L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8
Ym9keSBvbmxvYWQ9InRlc3QoKSI+CisKKyAgICA8IS0tIFRoaXMgdGVzdCB2ZXJpZmllcyB0aGUg
ZWZmZWN0IG9mIG1vdXNlIGNsaWNrcyBvbiA8bWFjdGlvbiBhY3Rpb250eXBlPSJ0b2dnbGUiPiBl
bGVtZW50cy4gLS0+CisKKyAgICA8IS0tIHNlbGVjdGlvbj0iMSIgKGRlZmF1bHQpIDsgdGhyZWUg
Y2xpY2tzIC0tPgorICAgIDxtYXRoPgorICAgICAgPG1hY3Rpb24gYWN0aW9udHlwZT0idG9nZ2xl
IiBpZD0ibTEiPgorICAgICAgICA8bW4+MTwvbW4+CisgICAgICAgIDxtbj4yPC9tbj4KKyAgICAg
ICAgPG1uPjM8L21uPgorICAgICAgICA8bW4+NDwvbW4+CisgICAgICA8L21hY3Rpb24+CisgICAg
PC9tYXRoPgorCisgICAgPCEtLSBzZWxlY3Rpb249IjIiIDsgb25lIGNsaWNrIC0tPgorICAgIDxt
YXRoPgorICAgICAgPG1hY3Rpb24gYWN0aW9udHlwZT0idG9nZ2xlIiBzZWxlY3Rpb249IjIiIGlk
PSJtMiI+CisgICAgICAgIDxtbj4xPC9tbj4KKyAgICAgICAgPG1uPjI8L21uPgorICAgICAgICA8
bW4+MzwvbW4+CisgICAgICAgIDxtbj40PC9tbj4KKyAgICAgIDwvbWFjdGlvbj4KKyAgICA8L21h
dGg+CisKKyAgICA8IS0tIHNlbGVjdGlvbj0iNCIgKGxhc3QgY2hpbGQpIDsgb25lIGNsaWNrIC0t
PgorICAgIDxtYXRoPgorICAgICAgPG1hY3Rpb24gYWN0aW9udHlwZT0idG9nZ2xlIiBzZWxlY3Rp
b249IjQiIGlkPSJtMyI+CisgICAgICAgIDxtbj4xPC9tbj4KKyAgICAgICAgPG1uPjI8L21uPgor
ICAgICAgICA8bW4+MzwvbW4+CisgICAgICAgIDxtbj40PC9tbj4KKyAgICAgIDwvbWFjdGlvbj4K
KyAgICA8L21hdGg+CisKKyAgICA8IS0tIE5lc3RlZCA8bWFjdGlvbj4gZWxlbWVudHMgOyBidWJi
bGUgPSBmYWxzZSAtLT4KKyAgICA8bWF0aD4KKyAgICAgIDxtYWN0aW9uIGFjdGlvbnR5cGU9InRv
Z2dsZSI+CisgICAgICAgIDxtYWN0aW9uIGFjdGlvbnR5cGU9InRvZ2dsZSIgaWQ9Im00Ij4KKyAg
ICAgICAgICA8bW4+MTwvbW4+CisgICAgICAgICAgPG1uPjI8L21uPgorICAgICAgICAgIDxtbj4z
PC9tbj4KKyAgICAgICAgPC9tYWN0aW9uPgorICAgICAgICA8bW4+NDwvbW4+CisgICAgICAgIDxt
bj41PC9tbj4KKyAgICAgIDwvbWFjdGlvbj4KKyAgICA8L21hdGg+CisKKyAgICA8IS0tIE5lc3Rl
ZCA8bWFjdGlvbj4gZWxlbWVudHMgOyBidWJibGUgPSB0cnVlIC0tPgorICAgIDxtYXRoPgorICAg
ICAgPG1hY3Rpb24gYWN0aW9udHlwZT0idG9nZ2xlIj4KKyAgICAgICAgPG1hY3Rpb24gYWN0aW9u
dHlwZT0idG9nZ2xlIiBpZD0ibTUiPgorICAgICAgICAgIDxtbj4xPC9tbj4KKyAgICAgICAgICA8
bW4+MjwvbW4+CisgICAgICAgICAgPG1uPjM8L21uPgorICAgICAgICA8L21hY3Rpb24+CisgICAg
ICAgIDxtbj40PC9tbj4KKyAgICAgICAgPG1uPjU8L21uPgorICAgICAgPC9tYWN0aW9uPgorICAg
IDwvbWF0aD4KKworICAgIDwhLS0gUHJldmVudCBkZWZhdWx0IC0tPgorICAgIDxtYXRoPgorICAg
ICAgPG1hY3Rpb24gYWN0aW9udHlwZT0idG9nZ2xlIiBpZD0ibTYiPgorICAgICAgICA8bW4+MTwv
bW4+CisgICAgICAgIDxtbj4yPC9tbj4KKyAgICAgICAgPG1uPjM8L21uPgorICAgICAgPC9tYWN0
aW9uPgorICAgIDwvbWF0aD4KKworICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWVm
MmU5ZS4uOTIyZWRjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI1IEBACiAyMDEzLTA5LTE2ICBG
csOpZMOpcmljIFdhbmcgIDxmcmVkLndhbmdAZnJlZS5mcj4KIAorICAgICAgICBBZGQgc3VwcG9y
dCBmb3IgbWFjdGlvbkB0b2dnbGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMjAwNTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUZXN0OiBtYXRobWwvcHJlc2VudGF0aW9uL21hY3Rpb24tdG9nZ2xlLmh0
bWwKKworICAgICAgICAqIGRvbS9FdmVudExpc3RlbmVyLmg6CisgICAgICAgICogbWF0aG1sL01h
dGhNTFNlbGVjdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWFjdGlvbkV2ZW50TGlz
dGVuZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNYWN0aW9uRXZlbnRMaXN0ZW5lcjo6
Y2FzdCk6CisgICAgICAgIChXZWJDb3JlOjpNYWN0aW9uRXZlbnRMaXN0ZW5lcjo6TWFjdGlvbkV2
ZW50TGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWF0aE1MU2VsZWN0RWxlbWVudDo6TWF0
aE1MU2VsZWN0RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpNYWN0aW9uRXZlbnRMaXN0ZW5l
cjo6aGFuZGxlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6TWFjdGlvbkV2ZW50TGlzdGVuZXI6
Om9wZXJhdG9yPT0pOgorICAgICAgICAoV2ViQ29yZTo6TWF0aE1MU2VsZWN0RWxlbWVudDo6dG9n
Z2xlKToKKyAgICAgICAgKiBtYXRobWwvTWF0aE1MU2VsZWN0RWxlbWVudC5oOgorCisyMDEzLTA5
LTE2ICBGcsOpZMOpcmljIFdhbmcgIDxmcmVkLndhbmdAZnJlZS5mcj4KKwogICAgICAgICBBZGQg
YW4gTWF0aE1MU2VsZWN0RWxlbWVudCBjbGFzcyB0byBpbXBsZW1lbnQgPG1hY3Rpb24+IGFuZCA8
c2VtYW50aWNzPi4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEyMDA1OAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRMaXN0ZW5l
ci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TGlzdGVuZXIuaAppbmRleCAyMjIwNjA5Li44
MjBiNTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRMaXN0ZW5lci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudExpc3RlbmVyLmgKQEAgLTQ0LDcgKzQ0LDggQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgR09iamVjdEV2ZW50TGlzdGVuZXJUeXBl
LAogICAgICAgICAgICAgTmF0aXZlRXZlbnRMaXN0ZW5lclR5cGUsCiAgICAgICAgICAgICBTVkdU
UmVmVGFyZ2V0RXZlbnRMaXN0ZW5lclR5cGUsCi0gICAgICAgICAgICBNZWRpYUNvbnRyb2xzQXBw
bGVFdmVudExpc3RlbmVyVHlwZSAKKyAgICAgICAgICAgIE1lZGlhQ29udHJvbHNBcHBsZUV2ZW50
TGlzdGVuZXJUeXBlLAorICAgICAgICAgICAgTUFjdGlvbkV2ZW50TGlzdGVuZXJUeXBlCiAgICAg
ICAgIH07CiAKICAgICAgICAgdmlydHVhbCB+RXZlbnRMaXN0ZW5lcigpIHsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFNlbGVjdEVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvbWF0aG1sL01hdGhNTFNlbGVjdEVsZW1lbnQuY3BwCmluZGV4IDJiMTJlNDUuLjIy
MmM1ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxTZWxlY3RFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MU2VsZWN0RWxlbWVudC5j
cHAKQEAgLTI5LDYgKzI5LDggQEAKIAogI2luY2x1ZGUgIk1hdGhNTFNlbGVjdEVsZW1lbnQuaCIK
IAorI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiRXZlbnRMaXN0ZW5lci5oIgogI2luY2x1
ZGUgIk1hdGhNTE5hbWVzLmgiCiAjaW5jbHVkZSAiUmVuZGVyTWF0aE1MUm93LmgiCiAKQEAgLTM2
LDkgKzM4LDUzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIE1hdGhN
TE5hbWVzOwogCitjbGFzcyBNQWN0aW9uRXZlbnRMaXN0ZW5lciA6IHB1YmxpYyBFdmVudExpc3Rl
bmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxNQWN0aW9uRXZlbnRMaXN0ZW5l
cj4gY3JlYXRlKE1hdGhNTFNlbGVjdEVsZW1lbnQqIG1hY3Rpb24pIHsgcmV0dXJuIGFkb3B0UmVm
KG5ldyBNQWN0aW9uRXZlbnRMaXN0ZW5lcihtYWN0aW9uKSk7IH0KKyAgICBzdGF0aWMgY29uc3Qg
TUFjdGlvbkV2ZW50TGlzdGVuZXIqIGNhc3QoY29uc3QgRXZlbnRMaXN0ZW5lciogbGlzdGVuZXIp
CisgICAgeworICAgICAgICByZXR1cm4gbGlzdGVuZXItPnR5cGUoKSA9PSBNQWN0aW9uRXZlbnRM
aXN0ZW5lclR5cGUKKyAgICAgICAgICAgID8gc3RhdGljX2Nhc3Q8Y29uc3QgTUFjdGlvbkV2ZW50
TGlzdGVuZXIqPihsaXN0ZW5lcikKKyAgICAgICAgICAgIDogMDsKKyAgICB9CisgICAgdmlydHVh
bCBib29sIG9wZXJhdG9yPT0oY29uc3QgRXZlbnRMaXN0ZW5lciYgb3RoZXIpOworCitwcml2YXRl
OgorICAgIE1BY3Rpb25FdmVudExpc3RlbmVyKE1hdGhNTFNlbGVjdEVsZW1lbnQqIG1hY3Rpb24p
CisgICAgICAgIDogRXZlbnRMaXN0ZW5lcihNQWN0aW9uRXZlbnRMaXN0ZW5lclR5cGUpCisgICAg
ICAgICwgbV9tYWN0aW9uKG1hY3Rpb24pCisgICAgeworICAgIH0KKworICAgIHZpcnR1YWwgdm9p
ZCBoYW5kbGVFdmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgRXZlbnQqKTsKKyAgICBNYXRo
TUxTZWxlY3RFbGVtZW50KiBtX21hY3Rpb247Cit9OworCiBNYXRoTUxTZWxlY3RFbGVtZW50OjpN
YXRoTUxTZWxlY3RFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50
JiBkb2N1bWVudCkKICAgICA6IE1hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQodGFnTmFtZSwg
ZG9jdW1lbnQpLCBtX1NlbGVjdGVkQ2hpbGQoMCkKIHsKKyAgICBpZiAoaGFzTG9jYWxOYW1lKG1h
Y3Rpb25UYWcpKSB7CisgICAgICAgIFJlZlB0cjxFdmVudExpc3RlbmVyPiBsaXN0ZW5lciA9IE1B
Y3Rpb25FdmVudExpc3RlbmVyOjpjcmVhdGUodGhpcyk7CisgICAgICAgIGFkZEV2ZW50TGlzdGVu
ZXIoImNsaWNrIiwgbGlzdGVuZXIucmVsZWFzZSgpLCBmYWxzZSk7CisgICAgfQorfQorCit2b2lk
IE1BY3Rpb25FdmVudExpc3RlbmVyOjpoYW5kbGVFdmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiwgRXZlbnQqIGV2ZW50KQoreworICAgIGlmIChldmVudC0+ZGVmYXVsdFByZXZlbnRlZCgpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCku
Y2xpY2tFdmVudCAmJiBldmVudC0+aXNNb3VzZUV2ZW50KCkpIHsKKyAgICAgICAgaWYgKG1fbWFj
dGlvbi0+Z2V0QXR0cmlidXRlKE1hdGhNTE5hbWVzOjphY3Rpb250eXBlQXR0cikgPT0gInRvZ2ds
ZSIpCisgICAgICAgICAgICBtX21hY3Rpb24tPnRvZ2dsZSgpOworICAgIH0KK30KKworYm9vbCBN
QWN0aW9uRXZlbnRMaXN0ZW5lcjo6b3BlcmF0b3I9PShjb25zdCBFdmVudExpc3RlbmVyJiBsaXN0
ZW5lcikKK3sKKyAgICBpZiAoY29uc3QgTUFjdGlvbkV2ZW50TGlzdGVuZXIqIG1hY3Rpb25FdmVu
dExpc3RlbmVyID0gTUFjdGlvbkV2ZW50TGlzdGVuZXI6OmNhc3QoJmxpc3RlbmVyKSkKKyAgICAg
ICAgcmV0dXJuIG1fbWFjdGlvbiA9PSBtYWN0aW9uRXZlbnRMaXN0ZW5lci0+bV9tYWN0aW9uOwor
ICAgIHJldHVybiBmYWxzZTsKIH0KIAogUGFzc1JlZlB0cjxNYXRoTUxTZWxlY3RFbGVtZW50PiBN
YXRoTUxTZWxlY3RFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwg
RG9jdW1lbnQmIGRvY3VtZW50KQpAQCAtMTEwLDYgKzE1NiwyNSBAQCB2b2lkIE1hdGhNTFNlbGVj
dEVsZW1lbnQ6OnVwZGF0ZVNlbGVjdGVkQ2hpbGQoKQogICAgIH0KIH0KIAordm9pZCBNYXRoTUxT
ZWxlY3RFbGVtZW50Ojp0b2dnbGUoKQoreworICAgIGJvb2wgb2sgPSB0cnVlOworICAgIHVuc2ln
bmVkIGludCBzZWxlY3Rpb24gPSAoaGFzQXR0cmlidXRlKE1hdGhNTE5hbWVzOjpzZWxlY3Rpb25B
dHRyKSA/IGdldEF0dHJpYnV0ZShNYXRoTUxOYW1lczo6c2VsZWN0aW9uQXR0cikudG9JbnQoJm9r
KSA6IDEpOworICAgIGlmICghb2sgfHwgc2VsZWN0aW9uIDwgMSkKKyAgICAgICAgc2VsZWN0aW9u
ID0gMTsKKworICAgIEVsZW1lbnQqIGNoaWxkID0gZmlyc3RFbGVtZW50Q2hpbGQoKTsKKyAgICBp
bnQgaTsKKyAgICBmb3IgKGkgPSAxOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dEVsZW1lbnRT
aWJsaW5nKCkpIHsKKyAgICAgICAgaWYgKGkgPT0gc2VsZWN0aW9uICsgMSkKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBpKys7CisgICAgfQorICAgIGlmICghY2hpbGQpCisgICAgICAgIGkg
PSAxOworICAgIHNldEF0dHJpYnV0ZShNYXRoTUxOYW1lczo6c2VsZWN0aW9uQXR0ciwgU3RyaW5n
OjpudW1iZXIoaSkpOworfQorCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoTUFUSE1MKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFNlbGVjdEVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxTZWxlY3RFbGVtZW50LmgKaW5kZXggYjI4ZGU4Yi4uYzlk
OGI0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFNlbGVjdEVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MU2VsZWN0RWxlbWVudC5oCkBA
IC0zNCw2ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIE1hdGhNTFNlbGVjdEVs
ZW1lbnQgOiBwdWJsaWMgTWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudCB7CiBwdWJsaWM6CiAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8TWF0aE1MU2VsZWN0RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50Jik7CisgICAgdm9pZCB0b2dnbGUoKTsKIAog
cHJvdGVjdGVkOgogICAgIE1hdGhNTFNlbGVjdEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSwgRG9jdW1lbnQmKTsK
</data>
<flag name="review"
          id="241143"
          type_id="1"
          status="-"
          setter="bfulgham"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217943</attachid>
            <date>2013-11-27 05:24:23 -0800</date>
            <delta_ts>2013-12-03 12:07:11 -0800</delta_ts>
            <desc>Patch V4</desc>
            <filename>maction-toggle.diff</filename>
            <type>text/plain</type>
            <size>10550</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3MTE0YTU5Li45YTBiYzVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTUgQEAKIDIwMTMtMTEt
MjcgIEZyw6lkw6lyaWMgV2FuZyAgPGZyZWQud2FuZ0BmcmVlLmZyPgogCisgICAgICAgIEFkZCBz
dXBwb3J0IGZvciBtYWN0aW9uQHRvZ2dsZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEyMDA1OQorCisgICAgICAgIE5ldyB0ZXN0cyBmb3IgbWFjdGlv
bkB0b2dnbGUuCisKKyAgICAgICAgKiBtYXRobWwvcHJlc2VudGF0aW9uL21hY3Rpb24tdG9nZ2xl
LWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIG1hdGhtbC9wcmVzZW50YXRpb24vbWFj
dGlvbi10b2dnbGUuaHRtbDogQWRkZWQuCisKKzIwMTMtMTEtMjcgIEZyw6lkw6lyaWMgV2FuZyAg
PGZyZWQud2FuZ0BmcmVlLmZyPgorCiAgICAgICAgIEFkZCBhbiBNYXRoTUxTZWxlY3RFbGVtZW50
IGNsYXNzIHRvIGltcGxlbWVudCA8bWFjdGlvbj4gYW5kIDxzZW1hbnRpY3M+LgogICAgICAgICA8
aHR0cHM6Ly93ZWJraXQub3JnL2IvMTIwMDU4PgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9t
YXRobWwvcHJlc2VudGF0aW9uL21hY3Rpb24tdG9nZ2xlLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRU
ZXN0cy9tYXRobWwvcHJlc2VudGF0aW9uL21hY3Rpb24tdG9nZ2xlLWV4cGVjdGVkLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDhhNTRkYgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL21hdGhtbC9wcmVzZW50YXRpb24vbWFjdGlvbi10b2dnbGUtZXhwZWN0
ZWQuaHRtbApAQCAtMCwwICsxLDUzIEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICA8aGVh
ZD4KKyAgICA8dGl0bGU+bWFjdGlvbiB0b2dnbGU8L3RpdGxlPgorICA8L2hlYWQ+CisgIDxib2R5
IG9ubG9hZD0idGVzdCgpIj4KKworICAgIDwhLS0gc2VsZWN0aW9uPSIxIiAoZGVmYXVsdCkgOyB0
aHJlZSBjbGlja3MgLS0+CisgICAgPG1hdGg+CisgICAgICA8bXJvdz4KKyAgICAgICAgPG1uPjQ8
L21uPgorICAgICAgPC9tcm93PgorICAgIDwvbWF0aD4KKworICAgIDwhLS0gc2VsZWN0aW9uPSIy
IiA7IG9uZSBjbGljayAtLT4KKyAgICA8bWF0aD4KKyAgICAgIDxtcm93PgorICAgICAgICA8bW4+
MzwvbW4+CisgICAgICA8L21yb3c+CisgICAgPC9tYXRoPgorCisgICAgPCEtLSBzZWxlY3Rpb249
IjQiIChsYXN0IGNoaWxkKSA7IG9uZSBjbGljayAtLT4KKyAgICA8bWF0aD4KKyAgICAgIDxtcm93
PgorICAgICAgICA8bW4+MTwvbW4+CisgICAgICA8L21yb3c+CisgICAgPC9tYXRoPgorCisgICAg
PCEtLSBOZXN0ZWQgPG1hY3Rpb24+IGVsZW1lbnRzIDsgYnViYmxlID0gZmFsc2UgLS0+CisgICAg
PG1hdGg+CisgICAgICA8bXJvdz4KKyAgICAgICAgPG1yb3c+CisgICAgICAgICAgPG1uPjI8L21u
PgorICAgICAgICA8L21yb3c+CisgICAgICA8L21yb3c+CisgICAgPC9tYXRoPgorCisgICAgPCEt
LSBOZXN0ZWQgPG1hY3Rpb24+IGVsZW1lbnRzIDsgYnViYmxlID0gdHJ1ZSAtLT4KKyAgICA8bWF0
aD4KKyAgICAgIDxtcm93PgorICAgICAgICA8bW4+NDwvbW4+CisgICAgICA8L21yb3c+CisgICAg
PC9tYXRoPgorCisgICAgPCEtLSBQcmV2ZW50IGRlZmF1bHQgLS0+CisgICAgPG1hdGg+CisgICAg
ICA8bXJvdz4KKyAgICAgICAgPG1uPjE8L21uPgorICAgICAgPC9tcm93PgorICAgIDwvbWF0aD4K
KworICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tYXRobWwvcHJl
c2VudGF0aW9uL21hY3Rpb24tdG9nZ2xlLmh0bWwgYi9MYXlvdXRUZXN0cy9tYXRobWwvcHJlc2Vu
dGF0aW9uL21hY3Rpb24tdG9nZ2xlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uNTQwMDZiMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21hdGhtbC9wcmVz
ZW50YXRpb24vbWFjdGlvbi10b2dnbGUuaHRtbApAQCAtMCwwICsxLDExMSBAQAorPCFkb2N0eXBl
IGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPHRpdGxlPm1hY3Rpb24gdG9nZ2xlPC90aXRs
ZT4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgICBmdW5jdGlvbiBj
bGljayhpZCwgYnViYmxlLCBwcmV2ZW50RGVmYXVsdCkKKyAgICAgIHsKKyAgICAgICAgdmFyIGV2
ZW50ID0gbmV3IE1vdXNlRXZlbnQoJ2NsaWNrJywge2J1YmJsZXM6IGJ1YmJsZSwgY2FuY2VsYWJs
ZTogdHJ1ZX0pOworICAgICAgICBpZiAocHJldmVudERlZmF1bHQpCisgICAgICAgICAgZXZlbnQu
cHJldmVudERlZmF1bHQoKTsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLmRp
c3BhdGNoRXZlbnQoZXZlbnQpOworICAgICAgfQorICAgICAgZnVuY3Rpb24gdGVzdCgpCisgICAg
ICB7CisgICAgICAgIC8vIHNlbGVjdGlvbj0xIDsgKFsxXSAyIDMgNCkKKyAgICAgICAgLy8gQWZ0
ZXIgdGhyZWUgY2xpY2tzLCBzZWxlY3Rpb249NDogKDEgMiAzIFs0XSkKKyAgICAgICAgY2xpY2so
J20xJyk7IGNsaWNrKCdtMScpOyBjbGljaygnbTEnKTsKKworICAgICAgICAvLyBzZWxlY3Rpb249
MiA7ICgxIFsyXSAzIDQpCisgICAgICAgIC8vIEFmdGVyIG9uZSBjbGljaywgc2VsZWN0aW9uPTM6
ICgxIDIgWzNdIDQpCisgICAgICAgIGNsaWNrKCdtMicpOworCisgICAgICAgIC8vIHNlbGVjdGlv
bj00IDsgKDEgMiAzIFs0XSkKKyAgICAgICAgLy8gQWZ0ZXIgb25lIGNsaWNrLCBzZWxlY3Rpb249
MTogKFsxXSAyIDMgNCkKKyAgICAgICAgY2xpY2soJ20zJyk7CisKKyAgICAgICAgLy8gTmVzdGVk
IG1hY3Rpb24gZWxlbWVudHMsIGJ1YmJsZSA9IGZhbHNlIDsgKFsoWzFdIDIgMyldIDQgNSkKKyAg
ICAgICAgLy8gQWZ0ZXIgb25lIGNsaWNrIG9uIHRoZSBpbm5lciBtYWN0aW9uOiAoWygxIFsyXSAz
KV0gNCA1KQorICAgICAgICBjbGljaygnbTQnLCBmYWxzZSk7CisKKyAgICAgICAgLy8gTmVzdGVk
IG1hY3Rpb24gZWxlbWVudHMsIGJ1YmJsZSA9IHRydWUgOyAoWyhbMV0gMiAzKV0gNCA1KQorICAg
ICAgICAvLyBBZnRlciBvbmUgY2xpY2sgb24gdGhlIGlubmVyIG1hY3Rpb246ICgoMSBbMl0gMykg
WzRdIDUpCisgICAgICAgIGNsaWNrKCdtNScsIHRydWUpOworCisgICAgICAgIC8vIFByZXZlbnQg
ZGVmYXVsdCA7IChbMV0gMiAzKQorICAgICAgICAvLyBBZnRlciBvbmUgY2xpY2sgb24gdGhlIGlu
bmVyIG1hY3Rpb246IChbMV0gMiAzKQorICAgICAgICBjbGljaygnbTYnLCBmYWxzZSwgdHJ1ZSk7
CisgICAgICB9CisgICAgPC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHkgb25sb2FkPSJ0ZXN0
KCkiPgorCisgICAgPCEtLSBUaGlzIHRlc3QgdmVyaWZpZXMgdGhlIGVmZmVjdCBvZiBtb3VzZSBj
bGlja3Mgb24gPG1hY3Rpb24gYWN0aW9udHlwZT0idG9nZ2xlIj4gZWxlbWVudHMuIC0tPgorCisg
ICAgPCEtLSBzZWxlY3Rpb249IjEiIChkZWZhdWx0KSA7IHRocmVlIGNsaWNrcyAtLT4KKyAgICA8
bWF0aD4KKyAgICAgIDxtYWN0aW9uIGFjdGlvbnR5cGU9InRvZ2dsZSIgaWQ9Im0xIj4KKyAgICAg
ICAgPG1uPjE8L21uPgorICAgICAgICA8bW4+MjwvbW4+CisgICAgICAgIDxtbj4zPC9tbj4KKyAg
ICAgICAgPG1uPjQ8L21uPgorICAgICAgPC9tYWN0aW9uPgorICAgIDwvbWF0aD4KKworICAgIDwh
LS0gc2VsZWN0aW9uPSIyIiA7IG9uZSBjbGljayAtLT4KKyAgICA8bWF0aD4KKyAgICAgIDxtYWN0
aW9uIGFjdGlvbnR5cGU9InRvZ2dsZSIgc2VsZWN0aW9uPSIyIiBpZD0ibTIiPgorICAgICAgICA8
bW4+MTwvbW4+CisgICAgICAgIDxtbj4yPC9tbj4KKyAgICAgICAgPG1uPjM8L21uPgorICAgICAg
ICA8bW4+NDwvbW4+CisgICAgICA8L21hY3Rpb24+CisgICAgPC9tYXRoPgorCisgICAgPCEtLSBz
ZWxlY3Rpb249IjQiIChsYXN0IGNoaWxkKSA7IG9uZSBjbGljayAtLT4KKyAgICA8bWF0aD4KKyAg
ICAgIDxtYWN0aW9uIGFjdGlvbnR5cGU9InRvZ2dsZSIgc2VsZWN0aW9uPSI0IiBpZD0ibTMiPgor
ICAgICAgICA8bW4+MTwvbW4+CisgICAgICAgIDxtbj4yPC9tbj4KKyAgICAgICAgPG1uPjM8L21u
PgorICAgICAgICA8bW4+NDwvbW4+CisgICAgICA8L21hY3Rpb24+CisgICAgPC9tYXRoPgorCisg
ICAgPCEtLSBOZXN0ZWQgPG1hY3Rpb24+IGVsZW1lbnRzIDsgYnViYmxlID0gZmFsc2UgLS0+Cisg
ICAgPG1hdGg+CisgICAgICA8bWFjdGlvbiBhY3Rpb250eXBlPSJ0b2dnbGUiPgorICAgICAgICA8
bWFjdGlvbiBhY3Rpb250eXBlPSJ0b2dnbGUiIGlkPSJtNCI+CisgICAgICAgICAgPG1uPjE8L21u
PgorICAgICAgICAgIDxtbj4yPC9tbj4KKyAgICAgICAgICA8bW4+MzwvbW4+CisgICAgICAgIDwv
bWFjdGlvbj4KKyAgICAgICAgPG1uPjQ8L21uPgorICAgICAgICA8bW4+NTwvbW4+CisgICAgICA8
L21hY3Rpb24+CisgICAgPC9tYXRoPgorCisgICAgPCEtLSBOZXN0ZWQgPG1hY3Rpb24+IGVsZW1l
bnRzIDsgYnViYmxlID0gdHJ1ZSAtLT4KKyAgICA8bWF0aD4KKyAgICAgIDxtYWN0aW9uIGFjdGlv
bnR5cGU9InRvZ2dsZSI+CisgICAgICAgIDxtYWN0aW9uIGFjdGlvbnR5cGU9InRvZ2dsZSIgaWQ9
Im01Ij4KKyAgICAgICAgICA8bW4+MTwvbW4+CisgICAgICAgICAgPG1uPjI8L21uPgorICAgICAg
ICAgIDxtbj4zPC9tbj4KKyAgICAgICAgPC9tYWN0aW9uPgorICAgICAgICA8bW4+NDwvbW4+Cisg
ICAgICAgIDxtbj41PC9tbj4KKyAgICAgIDwvbWFjdGlvbj4KKyAgICA8L21hdGg+CisKKyAgICA8
IS0tIFByZXZlbnQgZGVmYXVsdCAtLT4KKyAgICA8bWF0aD4KKyAgICAgIDxtYWN0aW9uIGFjdGlv
bnR5cGU9InRvZ2dsZSIgaWQ9Im02Ij4KKyAgICAgICAgPG1uPjE8L21uPgorICAgICAgICA8bW4+
MjwvbW4+CisgICAgICAgIDxtbj4zPC9tbj4KKyAgICAgIDwvbWFjdGlvbj4KKyAgICA8L21hdGg+
CisKKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGJjZjVhOGEuLjgyZTI4OWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsNSArMSwyNSBAQAogMjAxMy0xMS0yNyAgRnLDqWTDqXJpYyBXYW5nICA8
ZnJlZC53YW5nQGZyZWUuZnI+CiAKKyAgICAgICBBZGQgc3VwcG9ydCBmb3IgbWFjdGlvbkB0b2dn
bGUuCisgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMDA1
OQorCisgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICBUZXN0OiBt
YXRobWwvcHJlc2VudGF0aW9uL21hY3Rpb24tdG9nZ2xlLmh0bWwKKworICAgICAgICogZG9tL0V2
ZW50TGlzdGVuZXIuaDoKKyAgICAgICAqIG1hdGhtbC9NYXRoTUxTZWxlY3RFbGVtZW50LmNwcDoK
KyAgICAgICAoV2ViQ29yZTo6TWFjdGlvbkV2ZW50TGlzdGVuZXI6OmNyZWF0ZSk6CisgICAgICAg
KFdlYkNvcmU6Ok1hY3Rpb25FdmVudExpc3RlbmVyOjpjYXN0KToKKyAgICAgICAoV2ViQ29yZTo6
TWFjdGlvbkV2ZW50TGlzdGVuZXI6Ok1hY3Rpb25FdmVudExpc3RlbmVyKToKKyAgICAgICAoV2Vi
Q29yZTo6TWF0aE1MU2VsZWN0RWxlbWVudDo6TWF0aE1MU2VsZWN0RWxlbWVudCk6CisgICAgICAg
KFdlYkNvcmU6Ok1hY3Rpb25FdmVudExpc3RlbmVyOjpoYW5kbGVFdmVudCk6CisgICAgICAgKFdl
YkNvcmU6Ok1hY3Rpb25FdmVudExpc3RlbmVyOjpvcGVyYXRvcj09KToKKyAgICAgICAoV2ViQ29y
ZTo6TWF0aE1MU2VsZWN0RWxlbWVudDo6dG9nZ2xlKToKKyAgICAgICAqIG1hdGhtbC9NYXRoTUxT
ZWxlY3RFbGVtZW50Lmg6CisKKzIwMTMtMTEtMjcgIEZyw6lkw6lyaWMgV2FuZyAgPGZyZWQud2Fu
Z0BmcmVlLmZyPgorCiAgICAgICAgIEFkZCBhbiBNYXRoTUxTZWxlY3RFbGVtZW50IGNsYXNzIHRv
IGltcGxlbWVudCA8bWFjdGlvbj4gYW5kIDxzZW1hbnRpY3M+LgogICAgICAgICA8aHR0cHM6Ly93
ZWJraXQub3JnL2IvMTIwMDU4PgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnRMaXN0ZW5lci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TGlzdGVuZXIuaAppbmRleCAy
MjIwNjA5Li44MjBiNTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRMaXN0
ZW5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudExpc3RlbmVyLmgKQEAgLTQ0LDcg
KzQ0LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgR09iamVjdEV2ZW50TGlz
dGVuZXJUeXBlLAogICAgICAgICAgICAgTmF0aXZlRXZlbnRMaXN0ZW5lclR5cGUsCiAgICAgICAg
ICAgICBTVkdUUmVmVGFyZ2V0RXZlbnRMaXN0ZW5lclR5cGUsCi0gICAgICAgICAgICBNZWRpYUNv
bnRyb2xzQXBwbGVFdmVudExpc3RlbmVyVHlwZSAKKyAgICAgICAgICAgIE1lZGlhQ29udHJvbHNB
cHBsZUV2ZW50TGlzdGVuZXJUeXBlLAorICAgICAgICAgICAgTUFjdGlvbkV2ZW50TGlzdGVuZXJU
eXBlCiAgICAgICAgIH07CiAKICAgICAgICAgdmlydHVhbCB+RXZlbnRMaXN0ZW5lcigpIHsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFNlbGVjdEVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFNlbGVjdEVsZW1lbnQuY3BwCmluZGV4IGUz
ZjZkYmIuLjJmNGY4ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxT
ZWxlY3RFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MU2VsZWN0
RWxlbWVudC5jcHAKQEAgLTI5LDYgKzI5LDggQEAKIAogI2luY2x1ZGUgIk1hdGhNTFNlbGVjdEVs
ZW1lbnQuaCIKIAorI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiRXZlbnRMaXN0ZW5lci5o
IgogI2luY2x1ZGUgIk1hdGhNTE5hbWVzLmgiCiAjaW5jbHVkZSAiUmVuZGVyTWF0aE1MUm93Lmgi
CiAKQEAgLTM2LDkgKzM4LDUzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNw
YWNlIE1hdGhNTE5hbWVzOwogCitjbGFzcyBNQWN0aW9uRXZlbnRMaXN0ZW5lciA6IHB1YmxpYyBF
dmVudExpc3RlbmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxNQWN0aW9uRXZl
bnRMaXN0ZW5lcj4gY3JlYXRlKE1hdGhNTFNlbGVjdEVsZW1lbnQqIG1hY3Rpb24pIHsgcmV0dXJu
IGFkb3B0UmVmKG5ldyBNQWN0aW9uRXZlbnRMaXN0ZW5lcihtYWN0aW9uKSk7IH0KKyAgICBzdGF0
aWMgY29uc3QgTUFjdGlvbkV2ZW50TGlzdGVuZXIqIGNhc3QoY29uc3QgRXZlbnRMaXN0ZW5lciog
bGlzdGVuZXIpCisgICAgeworICAgICAgICByZXR1cm4gbGlzdGVuZXItPnR5cGUoKSA9PSBNQWN0
aW9uRXZlbnRMaXN0ZW5lclR5cGUKKyAgICAgICAgICAgID8gc3RhdGljX2Nhc3Q8Y29uc3QgTUFj
dGlvbkV2ZW50TGlzdGVuZXIqPihsaXN0ZW5lcikKKyAgICAgICAgICAgIDogMDsKKyAgICB9Cisg
ICAgdmlydHVhbCBib29sIG9wZXJhdG9yPT0oY29uc3QgRXZlbnRMaXN0ZW5lciYgb3RoZXIpOwor
Citwcml2YXRlOgorICAgIE1BY3Rpb25FdmVudExpc3RlbmVyKE1hdGhNTFNlbGVjdEVsZW1lbnQq
IG1hY3Rpb24pCisgICAgICAgIDogRXZlbnRMaXN0ZW5lcihNQWN0aW9uRXZlbnRMaXN0ZW5lclR5
cGUpCisgICAgICAgICwgbV9tYWN0aW9uKG1hY3Rpb24pCisgICAgeworICAgIH0KKworICAgIHZp
cnR1YWwgdm9pZCBoYW5kbGVFdmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgRXZlbnQqKTsK
KyAgICBNYXRoTUxTZWxlY3RFbGVtZW50KiBtX21hY3Rpb247Cit9OworCiBNYXRoTUxTZWxlY3RF
bGVtZW50OjpNYXRoTUxTZWxlY3RFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IE1hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQo
dGFnTmFtZSwgZG9jdW1lbnQpLCBtX3NlbGVjdGVkQ2hpbGQobnVsbHB0cikKIHsKKyAgICBpZiAo
aGFzTG9jYWxOYW1lKG1hY3Rpb25UYWcpKSB7CisgICAgICAgIFJlZlB0cjxFdmVudExpc3RlbmVy
PiBsaXN0ZW5lciA9IE1BY3Rpb25FdmVudExpc3RlbmVyOjpjcmVhdGUodGhpcyk7CisgICAgICAg
IGFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgbGlzdGVuZXIucmVsZWFzZSgpLCBmYWxzZSk7Cisg
ICAgfQorfQorCit2b2lkIE1BY3Rpb25FdmVudExpc3RlbmVyOjpoYW5kbGVFdmVudChTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiwgRXZlbnQqIGV2ZW50KQoreworICAgIGlmIChldmVudC0+ZGVmYXVs
dFByZXZlbnRlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoZXZlbnQtPnR5cGUoKSA9
PSBldmVudE5hbWVzKCkuY2xpY2tFdmVudCAmJiBldmVudC0+aXNNb3VzZUV2ZW50KCkpIHsKKyAg
ICAgICAgaWYgKG1fbWFjdGlvbi0+Z2V0QXR0cmlidXRlKE1hdGhNTE5hbWVzOjphY3Rpb250eXBl
QXR0cikgPT0gInRvZ2dsZSIpCisgICAgICAgICAgICBtX21hY3Rpb24tPnRvZ2dsZSgpOworICAg
IH0KK30KKworYm9vbCBNQWN0aW9uRXZlbnRMaXN0ZW5lcjo6b3BlcmF0b3I9PShjb25zdCBFdmVu
dExpc3RlbmVyJiBsaXN0ZW5lcikKK3sKKyAgICBpZiAoY29uc3QgTUFjdGlvbkV2ZW50TGlzdGVu
ZXIqIG1hY3Rpb25FdmVudExpc3RlbmVyID0gTUFjdGlvbkV2ZW50TGlzdGVuZXI6OmNhc3QoJmxp
c3RlbmVyKSkKKyAgICAgICAgcmV0dXJuIG1fbWFjdGlvbiA9PSBtYWN0aW9uRXZlbnRMaXN0ZW5l
ci0+bV9tYWN0aW9uOworICAgIHJldHVybiBmYWxzZTsKIH0KIAogUGFzc1JlZlB0cjxNYXRoTUxT
ZWxlY3RFbGVtZW50PiBNYXRoTUxTZWxlY3RFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQpAQCAtMTEwLDYgKzE1NiwzMyBAQCB2
b2lkIE1hdGhNTFNlbGVjdEVsZW1lbnQ6OnVwZGF0ZVNlbGVjdGVkQ2hpbGQoKQogICAgIHNldE5l
ZWRzU3R5bGVSZWNhbGMoKTsKIH0KIAordm9pZCBNYXRoTUxTZWxlY3RFbGVtZW50Ojp0b2dnbGUo
KQoreworICAgIC8vIFdlIGdldCB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgc2VsZWN0aW9uIGF0
dHJpYnV0ZS4KKyAgICBpbnQgc2VsZWN0aW9uID0gZmFzdEdldEF0dHJpYnV0ZShNYXRoTUxOYW1l
czo6c2VsZWN0aW9uQXR0cikudG9JbnQoKTsKKyAgICBpZiAoc2VsZWN0aW9uIDwgMSkKKyAgICAg
ICAgc2VsZWN0aW9uID0gMTsKKworICAgIC8vIFdlIGZpbmQgdGhlIHN1Y2Nlc3NvciBvZiB0aGUg
Y3VycmVudCBzZWxlY3Rpb24uCisgICAgc2VsZWN0aW9uKys7CisgICAgRWxlbWVudCogY2hpbGQg
PSBmaXJzdEVsZW1lbnRDaGlsZCgpOworICAgIGlmIChjaGlsZCkgeworICAgICAgICBmb3IgKGlu
dCBpID0gMTsgaSA8IHNlbGVjdGlvbjsgaSsrKSB7CisgICAgICAgICAgICBjaGlsZCA9IGNoaWxk
LT5uZXh0RWxlbWVudFNpYmxpbmcoKTsKKyAgICAgICAgICAgIGlmICghY2hpbGQpCisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBJZiB3ZSByZWFjaCB0
aGUgZW5kIG9mIHRoZSBjaGlsZCBsaXN0LCB3ZSBnbyBiYWNrIHRvIHRoZSBmaXJzdCBjaGlsZC4K
KyAgICBpZiAoIWNoaWxkKQorICAgICAgICBzZWxlY3Rpb24gPSAxOworCisgICAgLy8gV2UgdXBk
YXRlIHRoZSBhdHRyaWJ1dGUgdmFsdWUgb2YgdGhlIHNlbGVjdGlvbiBhdHRyaWJ1dGUuCisgICAg
Ly8gVGhpcyB3aWxsIGFsc28gY2FsbCBNYXRoTUxTZWxlY3RFbGVtZW50OjphdHRyaWJ1dGVDaGFu
Z2VkIHRvIHVwZGF0ZSB0aGUgc2VsZWN0ZWQgY2hpbGQuCisgICAgc2V0QXR0cmlidXRlKE1hdGhN
TE5hbWVzOjpzZWxlY3Rpb25BdHRyLCBTdHJpbmc6Om51bWJlcihzZWxlY3Rpb24pKTsKK30KKwog
fQogCiAjZW5kaWYgLy8gRU5BQkxFKE1BVEhNTCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L21hdGhtbC9NYXRoTUxTZWxlY3RFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0
aE1MU2VsZWN0RWxlbWVudC5oCmluZGV4IDZlMDRmYTYuLjlhNTYzOTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxTZWxlY3RFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvbWF0aG1sL01hdGhNTFNlbGVjdEVsZW1lbnQuaApAQCAtMzQsNiArMzQsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBNYXRoTUxTZWxlY3RFbGVtZW50IEZJTkFMIDogcHVibGlj
IE1hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNz
UmVmUHRyPE1hdGhNTFNlbGVjdEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBEb2N1bWVudCYpOworICAgIHZvaWQgdG9nZ2xlKCk7CiAKIHByaXZhdGU6CiAgICAg
TWF0aE1MU2VsZWN0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVu
dCYpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>218321</attachid>
            <date>2013-12-03 12:07:11 -0800</date>
            <delta_ts>2013-12-10 01:31:41 -0800</delta_ts>
            <desc>Patch V5</desc>
            <filename>maction-toggle.diff</filename>
            <type>text/plain</type>
            <size>10534</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0ZGY2NTlmLi45NzkxYTYxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTMtMTIt
MDMgIEZyw6lkw6lyaWMgV2FuZyAgPGZyZWQud2FuZ0BmcmVlLmZyPgorCisgICAgICAgIEFkZCBz
dXBwb3J0IGZvciBtYWN0aW9uQHRvZ2dsZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEyMDA1OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE5ldyB0ZXN0cyBmb3IgbWFjdGlvbkB0b2dnbGUuCisKKyAgICAg
ICAgKiBtYXRobWwvcHJlc2VudGF0aW9uL21hY3Rpb24tdG9nZ2xlLWV4cGVjdGVkLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIG1hdGhtbC9wcmVzZW50YXRpb24vbWFjdGlvbi10b2dnbGUuaHRtbDog
QWRkZWQuCisKIDIwMTMtMTItMDMgIFJhZHUgU3RhdmlsYSAgPHN0YXZpbGFAYWRvYmUuY29tPgog
CiAgICAgICAgIFRoZSBvdmVyZmxvdyBib3JkZXIgb2YgYSByZWxhdGl2ZWx5IHBvc2l0aW9uZWQg
ZWxlbWVudCBpbnNpZGUgYSByZWdpb24gaXMgbm90IHBhaW50ZWQKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL21hdGhtbC9wcmVzZW50YXRpb24vbWFjdGlvbi10b2dnbGUtZXhwZWN0ZWQuaHRtbCBi
L0xheW91dFRlc3RzL21hdGhtbC9wcmVzZW50YXRpb24vbWFjdGlvbi10b2dnbGUtZXhwZWN0ZWQu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOGE1NGRiCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWF0aG1sL3ByZXNlbnRhdGlvbi9tYWN0aW9uLXRvZ2ds
ZS1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsNTMgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+
CisgIDxoZWFkPgorICAgIDx0aXRsZT5tYWN0aW9uIHRvZ2dsZTwvdGl0bGU+CisgIDwvaGVhZD4K
KyAgPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgorCisgICAgPCEtLSBzZWxlY3Rpb249IjEiIChkZWZh
dWx0KSA7IHRocmVlIGNsaWNrcyAtLT4KKyAgICA8bWF0aD4KKyAgICAgIDxtcm93PgorICAgICAg
ICA8bW4+NDwvbW4+CisgICAgICA8L21yb3c+CisgICAgPC9tYXRoPgorCisgICAgPCEtLSBzZWxl
Y3Rpb249IjIiIDsgb25lIGNsaWNrIC0tPgorICAgIDxtYXRoPgorICAgICAgPG1yb3c+CisgICAg
ICAgIDxtbj4zPC9tbj4KKyAgICAgIDwvbXJvdz4KKyAgICA8L21hdGg+CisKKyAgICA8IS0tIHNl
bGVjdGlvbj0iNCIgKGxhc3QgY2hpbGQpIDsgb25lIGNsaWNrIC0tPgorICAgIDxtYXRoPgorICAg
ICAgPG1yb3c+CisgICAgICAgIDxtbj4xPC9tbj4KKyAgICAgIDwvbXJvdz4KKyAgICA8L21hdGg+
CisKKyAgICA8IS0tIE5lc3RlZCA8bWFjdGlvbj4gZWxlbWVudHMgOyBidWJibGUgPSBmYWxzZSAt
LT4KKyAgICA8bWF0aD4KKyAgICAgIDxtcm93PgorICAgICAgICA8bXJvdz4KKyAgICAgICAgICA8
bW4+MjwvbW4+CisgICAgICAgIDwvbXJvdz4KKyAgICAgIDwvbXJvdz4KKyAgICA8L21hdGg+CisK
KyAgICA8IS0tIE5lc3RlZCA8bWFjdGlvbj4gZWxlbWVudHMgOyBidWJibGUgPSB0cnVlIC0tPgor
ICAgIDxtYXRoPgorICAgICAgPG1yb3c+CisgICAgICAgIDxtbj40PC9tbj4KKyAgICAgIDwvbXJv
dz4KKyAgICA8L21hdGg+CisKKyAgICA8IS0tIFByZXZlbnQgZGVmYXVsdCAtLT4KKyAgICA8bWF0
aD4KKyAgICAgIDxtcm93PgorICAgICAgICA8bW4+MTwvbW4+CisgICAgICA8L21yb3c+CisgICAg
PC9tYXRoPgorCisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21h
dGhtbC9wcmVzZW50YXRpb24vbWFjdGlvbi10b2dnbGUuaHRtbCBiL0xheW91dFRlc3RzL21hdGht
bC9wcmVzZW50YXRpb24vbWFjdGlvbi10b2dnbGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi41NDAwNmIzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWF0
aG1sL3ByZXNlbnRhdGlvbi9tYWN0aW9uLXRvZ2dsZS5odG1sCkBAIC0wLDAgKzEsMTExIEBACis8
IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8dGl0bGU+bWFjdGlvbiB0b2dn
bGU8L3RpdGxlPgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICAgIGZ1
bmN0aW9uIGNsaWNrKGlkLCBidWJibGUsIHByZXZlbnREZWZhdWx0KQorICAgICAgeworICAgICAg
ICB2YXIgZXZlbnQgPSBuZXcgTW91c2VFdmVudCgnY2xpY2snLCB7YnViYmxlczogYnViYmxlLCBj
YW5jZWxhYmxlOiB0cnVlfSk7CisgICAgICAgIGlmIChwcmV2ZW50RGVmYXVsdCkKKyAgICAgICAg
ICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZChpZCkuZGlzcGF0Y2hFdmVudChldmVudCk7CisgICAgICB9CisgICAgICBmdW5jdGlvbiB0ZXN0
KCkKKyAgICAgIHsKKyAgICAgICAgLy8gc2VsZWN0aW9uPTEgOyAoWzFdIDIgMyA0KQorICAgICAg
ICAvLyBBZnRlciB0aHJlZSBjbGlja3MsIHNlbGVjdGlvbj00OiAoMSAyIDMgWzRdKQorICAgICAg
ICBjbGljaygnbTEnKTsgY2xpY2soJ20xJyk7IGNsaWNrKCdtMScpOworCisgICAgICAgIC8vIHNl
bGVjdGlvbj0yIDsgKDEgWzJdIDMgNCkKKyAgICAgICAgLy8gQWZ0ZXIgb25lIGNsaWNrLCBzZWxl
Y3Rpb249MzogKDEgMiBbM10gNCkKKyAgICAgICAgY2xpY2soJ20yJyk7CisKKyAgICAgICAgLy8g
c2VsZWN0aW9uPTQgOyAoMSAyIDMgWzRdKQorICAgICAgICAvLyBBZnRlciBvbmUgY2xpY2ssIHNl
bGVjdGlvbj0xOiAoWzFdIDIgMyA0KQorICAgICAgICBjbGljaygnbTMnKTsKKworICAgICAgICAv
LyBOZXN0ZWQgbWFjdGlvbiBlbGVtZW50cywgYnViYmxlID0gZmFsc2UgOyAoWyhbMV0gMiAzKV0g
NCA1KQorICAgICAgICAvLyBBZnRlciBvbmUgY2xpY2sgb24gdGhlIGlubmVyIG1hY3Rpb246IChb
KDEgWzJdIDMpXSA0IDUpCisgICAgICAgIGNsaWNrKCdtNCcsIGZhbHNlKTsKKworICAgICAgICAv
LyBOZXN0ZWQgbWFjdGlvbiBlbGVtZW50cywgYnViYmxlID0gdHJ1ZSA7IChbKFsxXSAyIDMpXSA0
IDUpCisgICAgICAgIC8vIEFmdGVyIG9uZSBjbGljayBvbiB0aGUgaW5uZXIgbWFjdGlvbjogKCgx
IFsyXSAzKSBbNF0gNSkKKyAgICAgICAgY2xpY2soJ201JywgdHJ1ZSk7CisKKyAgICAgICAgLy8g
UHJldmVudCBkZWZhdWx0IDsgKFsxXSAyIDMpCisgICAgICAgIC8vIEFmdGVyIG9uZSBjbGljayBv
biB0aGUgaW5uZXIgbWFjdGlvbjogKFsxXSAyIDMpCisgICAgICAgIGNsaWNrKCdtNicsIGZhbHNl
LCB0cnVlKTsKKyAgICAgIH0KKyAgICA8L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keSBvbmxv
YWQ9InRlc3QoKSI+CisKKyAgICA8IS0tIFRoaXMgdGVzdCB2ZXJpZmllcyB0aGUgZWZmZWN0IG9m
IG1vdXNlIGNsaWNrcyBvbiA8bWFjdGlvbiBhY3Rpb250eXBlPSJ0b2dnbGUiPiBlbGVtZW50cy4g
LS0+CisKKyAgICA8IS0tIHNlbGVjdGlvbj0iMSIgKGRlZmF1bHQpIDsgdGhyZWUgY2xpY2tzIC0t
PgorICAgIDxtYXRoPgorICAgICAgPG1hY3Rpb24gYWN0aW9udHlwZT0idG9nZ2xlIiBpZD0ibTEi
PgorICAgICAgICA8bW4+MTwvbW4+CisgICAgICAgIDxtbj4yPC9tbj4KKyAgICAgICAgPG1uPjM8
L21uPgorICAgICAgICA8bW4+NDwvbW4+CisgICAgICA8L21hY3Rpb24+CisgICAgPC9tYXRoPgor
CisgICAgPCEtLSBzZWxlY3Rpb249IjIiIDsgb25lIGNsaWNrIC0tPgorICAgIDxtYXRoPgorICAg
ICAgPG1hY3Rpb24gYWN0aW9udHlwZT0idG9nZ2xlIiBzZWxlY3Rpb249IjIiIGlkPSJtMiI+Cisg
ICAgICAgIDxtbj4xPC9tbj4KKyAgICAgICAgPG1uPjI8L21uPgorICAgICAgICA8bW4+MzwvbW4+
CisgICAgICAgIDxtbj40PC9tbj4KKyAgICAgIDwvbWFjdGlvbj4KKyAgICA8L21hdGg+CisKKyAg
ICA8IS0tIHNlbGVjdGlvbj0iNCIgKGxhc3QgY2hpbGQpIDsgb25lIGNsaWNrIC0tPgorICAgIDxt
YXRoPgorICAgICAgPG1hY3Rpb24gYWN0aW9udHlwZT0idG9nZ2xlIiBzZWxlY3Rpb249IjQiIGlk
PSJtMyI+CisgICAgICAgIDxtbj4xPC9tbj4KKyAgICAgICAgPG1uPjI8L21uPgorICAgICAgICA8
bW4+MzwvbW4+CisgICAgICAgIDxtbj40PC9tbj4KKyAgICAgIDwvbWFjdGlvbj4KKyAgICA8L21h
dGg+CisKKyAgICA8IS0tIE5lc3RlZCA8bWFjdGlvbj4gZWxlbWVudHMgOyBidWJibGUgPSBmYWxz
ZSAtLT4KKyAgICA8bWF0aD4KKyAgICAgIDxtYWN0aW9uIGFjdGlvbnR5cGU9InRvZ2dsZSI+Cisg
ICAgICAgIDxtYWN0aW9uIGFjdGlvbnR5cGU9InRvZ2dsZSIgaWQ9Im00Ij4KKyAgICAgICAgICA8
bW4+MTwvbW4+CisgICAgICAgICAgPG1uPjI8L21uPgorICAgICAgICAgIDxtbj4zPC9tbj4KKyAg
ICAgICAgPC9tYWN0aW9uPgorICAgICAgICA8bW4+NDwvbW4+CisgICAgICAgIDxtbj41PC9tbj4K
KyAgICAgIDwvbWFjdGlvbj4KKyAgICA8L21hdGg+CisKKyAgICA8IS0tIE5lc3RlZCA8bWFjdGlv
bj4gZWxlbWVudHMgOyBidWJibGUgPSB0cnVlIC0tPgorICAgIDxtYXRoPgorICAgICAgPG1hY3Rp
b24gYWN0aW9udHlwZT0idG9nZ2xlIj4KKyAgICAgICAgPG1hY3Rpb24gYWN0aW9udHlwZT0idG9n
Z2xlIiBpZD0ibTUiPgorICAgICAgICAgIDxtbj4xPC9tbj4KKyAgICAgICAgICA8bW4+MjwvbW4+
CisgICAgICAgICAgPG1uPjM8L21uPgorICAgICAgICA8L21hY3Rpb24+CisgICAgICAgIDxtbj40
PC9tbj4KKyAgICAgICAgPG1uPjU8L21uPgorICAgICAgPC9tYWN0aW9uPgorICAgIDwvbWF0aD4K
KworICAgIDwhLS0gUHJldmVudCBkZWZhdWx0IC0tPgorICAgIDxtYXRoPgorICAgICAgPG1hY3Rp
b24gYWN0aW9udHlwZT0idG9nZ2xlIiBpZD0ibTYiPgorICAgICAgICA8bW4+MTwvbW4+CisgICAg
ICAgIDxtbj4yPC9tbj4KKyAgICAgICAgPG1uPjM8L21uPgorICAgICAgPC9tYWN0aW9uPgorICAg
IDwvbWF0aD4KKworICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTdkODRhYy4uMWU1
MWU3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEzLTEyLTAzICBGcsOpZMOpcmlj
IFdhbmcgIDxmcmVkLndhbmdAZnJlZS5mcj4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgbWFj
dGlvbkB0b2dnbGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMjAwNTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUZXN0OiBtYXRobWwvcHJlc2VudGF0aW9uL21hY3Rpb24tdG9nZ2xlLmh0bWwKKworICAg
ICAgICAqIGRvbS9FdmVudExpc3RlbmVyLmg6CisgICAgICAgICogbWF0aG1sL01hdGhNTFNlbGVj
dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWFjdGlvbkV2ZW50TGlzdGVuZXI6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNYWN0aW9uRXZlbnRMaXN0ZW5lcjo6Y2FzdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNYWN0aW9uRXZlbnRMaXN0ZW5lcjo6TWFjdGlvbkV2ZW50TGlzdGVu
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWF0aE1MU2VsZWN0RWxlbWVudDo6TWF0aE1MU2VsZWN0
RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpNYWN0aW9uRXZlbnRMaXN0ZW5lcjo6aGFuZGxl
RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6TWFjdGlvbkV2ZW50TGlzdGVuZXI6Om9wZXJhdG9y
PT0pOgorICAgICAgICAoV2ViQ29yZTo6TWF0aE1MU2VsZWN0RWxlbWVudDo6dG9nZ2xlKToKKyAg
ICAgICAgKiBtYXRobWwvTWF0aE1MU2VsZWN0RWxlbWVudC5oOgorCiAyMDEzLTEyLTAzICBSYWR1
IFN0YXZpbGEgIDxzdGF2aWxhQGFkb2JlLmNvbT4KIAogICAgICAgICBUaGUgb3ZlcmZsb3cgYm9y
ZGVyIG9mIGEgcmVsYXRpdmVseSBwb3NpdGlvbmVkIGVsZW1lbnQgaW5zaWRlIGEgcmVnaW9uIGlz
IG5vdCBwYWludGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRMaXN0ZW5l
ci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TGlzdGVuZXIuaAppbmRleCAyMjIwNjA5Li44
MjBiNTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRMaXN0ZW5lci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudExpc3RlbmVyLmgKQEAgLTQ0LDcgKzQ0LDggQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgR09iamVjdEV2ZW50TGlzdGVuZXJUeXBl
LAogICAgICAgICAgICAgTmF0aXZlRXZlbnRMaXN0ZW5lclR5cGUsCiAgICAgICAgICAgICBTVkdU
UmVmVGFyZ2V0RXZlbnRMaXN0ZW5lclR5cGUsCi0gICAgICAgICAgICBNZWRpYUNvbnRyb2xzQXBw
bGVFdmVudExpc3RlbmVyVHlwZSAKKyAgICAgICAgICAgIE1lZGlhQ29udHJvbHNBcHBsZUV2ZW50
TGlzdGVuZXJUeXBlLAorICAgICAgICAgICAgTUFjdGlvbkV2ZW50TGlzdGVuZXJUeXBlCiAgICAg
ICAgIH07CiAKICAgICAgICAgdmlydHVhbCB+RXZlbnRMaXN0ZW5lcigpIHsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFNlbGVjdEVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvbWF0aG1sL01hdGhNTFNlbGVjdEVsZW1lbnQuY3BwCmluZGV4IDEwNTk4ZjQuLmRh
YjJkMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxTZWxlY3RFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MU2VsZWN0RWxlbWVudC5j
cHAKQEAgLTI4LDYgKzI4LDggQEAKIAogI2lmIEVOQUJMRShNQVRITUwpCiAKKyNpbmNsdWRlICJF
dmVudC5oIgorI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXIuaCIKICNpbmNsdWRlICJNYXRoTUxOYW1l
cy5oIgogI2luY2x1ZGUgIlJlbmRlck1hdGhNTFJvdy5oIgogCkBAIC0zNSwxMCArMzcsNTQgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgTWF0aE1MTmFtZXM7CiAKK2Ns
YXNzIE1BY3Rpb25FdmVudExpc3RlbmVyIDogcHVibGljIEV2ZW50TGlzdGVuZXIgeworcHVibGlj
OgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1BY3Rpb25FdmVudExpc3RlbmVyPiBjcmVhdGUoTWF0
aE1MU2VsZWN0RWxlbWVudCogbWFjdGlvbikgeyByZXR1cm4gYWRvcHRSZWYobmV3IE1BY3Rpb25F
dmVudExpc3RlbmVyKG1hY3Rpb24pKTsgfQorICAgIHN0YXRpYyBjb25zdCBNQWN0aW9uRXZlbnRM
aXN0ZW5lciogY2FzdChjb25zdCBFdmVudExpc3RlbmVyKiBsaXN0ZW5lcikKKyAgICB7CisgICAg
ICAgIHJldHVybiBsaXN0ZW5lci0+dHlwZSgpID09IE1BY3Rpb25FdmVudExpc3RlbmVyVHlwZQor
ICAgICAgICAgICAgPyBzdGF0aWNfY2FzdDxjb25zdCBNQWN0aW9uRXZlbnRMaXN0ZW5lcio+KGxp
c3RlbmVyKQorICAgICAgICAgICAgOiAwOworICAgIH0KKyAgICB2aXJ0dWFsIGJvb2wgb3BlcmF0
b3I9PShjb25zdCBFdmVudExpc3RlbmVyJiBvdGhlcik7CisKK3ByaXZhdGU6CisgICAgTUFjdGlv
bkV2ZW50TGlzdGVuZXIoTWF0aE1MU2VsZWN0RWxlbWVudCogbWFjdGlvbikKKyAgICAgICAgOiBF
dmVudExpc3RlbmVyKE1BY3Rpb25FdmVudExpc3RlbmVyVHlwZSkKKyAgICAgICAgLCBtX21hY3Rp
b24obWFjdGlvbikKKyAgICB7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIGhhbmRsZUV2ZW50
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBFdmVudCopOworICAgIE1hdGhNTFNlbGVjdEVsZW1l
bnQqIG1fbWFjdGlvbjsKK307CisKIE1hdGhNTFNlbGVjdEVsZW1lbnQ6Ok1hdGhNTFNlbGVjdEVs
ZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQog
ICAgIDogTWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKICAg
ICAsIG1fc2VsZWN0ZWRDaGlsZChudWxscHRyKQogeworICAgIGlmIChoYXNMb2NhbE5hbWUobWFj
dGlvblRhZykpIHsKKyAgICAgICAgUmVmUHRyPEV2ZW50TGlzdGVuZXI+IGxpc3RlbmVyID0gTUFj
dGlvbkV2ZW50TGlzdGVuZXI6OmNyZWF0ZSh0aGlzKTsKKyAgICAgICAgYWRkRXZlbnRMaXN0ZW5l
cigiY2xpY2siLCBsaXN0ZW5lci5yZWxlYXNlKCksIGZhbHNlKTsKKyAgICB9Cit9CisKK3ZvaWQg
TUFjdGlvbkV2ZW50TGlzdGVuZXI6OmhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
LCBFdmVudCogZXZlbnQpCit7CisgICAgaWYgKGV2ZW50LT5kZWZhdWx0UHJldmVudGVkKCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5j
bGlja0V2ZW50ICYmIGV2ZW50LT5pc01vdXNlRXZlbnQoKSkgeworICAgICAgICBpZiAobV9tYWN0
aW9uLT5nZXRBdHRyaWJ1dGUoTWF0aE1MTmFtZXM6OmFjdGlvbnR5cGVBdHRyKSA9PSAidG9nZ2xl
IikKKyAgICAgICAgICAgIG1fbWFjdGlvbi0+dG9nZ2xlKCk7CisgICAgfQorfQorCitib29sIE1B
Y3Rpb25FdmVudExpc3RlbmVyOjpvcGVyYXRvcj09KGNvbnN0IEV2ZW50TGlzdGVuZXImIGxpc3Rl
bmVyKQoreworICAgIGlmIChjb25zdCBNQWN0aW9uRXZlbnRMaXN0ZW5lciogbWFjdGlvbkV2ZW50
TGlzdGVuZXIgPSBNQWN0aW9uRXZlbnRMaXN0ZW5lcjo6Y2FzdCgmbGlzdGVuZXIpKQorICAgICAg
ICByZXR1cm4gbV9tYWN0aW9uID09IG1hY3Rpb25FdmVudExpc3RlbmVyLT5tX21hY3Rpb247Cisg
ICAgcmV0dXJuIGZhbHNlOwogfQogCiBQYXNzUmVmUHRyPE1hdGhNTFNlbGVjdEVsZW1lbnQ+IE1h
dGhNTFNlbGVjdEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBE
b2N1bWVudCYgZG9jdW1lbnQpCkBAIC0xMTcsNiArMTYzLDMzIEBAIHZvaWQgTWF0aE1MU2VsZWN0
RWxlbWVudDo6dXBkYXRlU2VsZWN0ZWRDaGlsZCgpCiAgICAgc2V0TmVlZHNTdHlsZVJlY2FsYygp
OwogfQogCit2b2lkIE1hdGhNTFNlbGVjdEVsZW1lbnQ6OnRvZ2dsZSgpCit7CisgICAgLy8gV2Ug
Z2V0IHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBzZWxlY3Rpb24gYXR0cmlidXRlLgorICAgIGlu
dCBzZWxlY3Rpb24gPSBmYXN0R2V0QXR0cmlidXRlKE1hdGhNTE5hbWVzOjpzZWxlY3Rpb25BdHRy
KS50b0ludCgpOworICAgIGlmIChzZWxlY3Rpb24gPCAxKQorICAgICAgICBzZWxlY3Rpb24gPSAx
OworCisgICAgLy8gV2UgZmluZCB0aGUgc3VjY2Vzc29yIG9mIHRoZSBjdXJyZW50IHNlbGVjdGlv
bi4KKyAgICBzZWxlY3Rpb24rKzsKKyAgICBFbGVtZW50KiBjaGlsZCA9IGZpcnN0RWxlbWVudENo
aWxkKCk7CisgICAgaWYgKGNoaWxkKSB7CisgICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDwgc2Vs
ZWN0aW9uOyBpKyspIHsKKyAgICAgICAgICAgIGNoaWxkID0gY2hpbGQtPm5leHRFbGVtZW50U2li
bGluZygpOworICAgICAgICAgICAgaWYgKCFjaGlsZCkKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgfQorICAgIH0KKworICAgIC8vIElmIHdlIHJlYWNoIHRoZSBlbmQgb2YgdGhlIGNo
aWxkIGxpc3QsIHdlIGdvIGJhY2sgdG8gdGhlIGZpcnN0IGNoaWxkLgorICAgIGlmICghY2hpbGQp
CisgICAgICAgIHNlbGVjdGlvbiA9IDE7CisKKyAgICAvLyBXZSB1cGRhdGUgdGhlIGF0dHJpYnV0
ZSB2YWx1ZSBvZiB0aGUgc2VsZWN0aW9uIGF0dHJpYnV0ZS4KKyAgICAvLyBUaGlzIHdpbGwgYWxz
byBjYWxsIE1hdGhNTFNlbGVjdEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQgdG8gdXBkYXRlIHRo
ZSBzZWxlY3RlZCBjaGlsZC4KKyAgICBzZXRBdHRyaWJ1dGUoTWF0aE1MTmFtZXM6OnNlbGVjdGlv
bkF0dHIsIFN0cmluZzo6bnVtYmVyKHNlbGVjdGlvbikpOworfQorCiB9CiAKICNlbmRpZiAvLyBF
TkFCTEUoTUFUSE1MKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFNl
bGVjdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxTZWxlY3RFbGVtZW50
LmgKaW5kZXggNmUwNGZhNi4uOWE1NjM5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0
aG1sL01hdGhNTFNlbGVjdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0
aE1MU2VsZWN0RWxlbWVudC5oCkBAIC0zNCw2ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IGNsYXNzIE1hdGhNTFNlbGVjdEVsZW1lbnQgRklOQUwgOiBwdWJsaWMgTWF0aE1MSW5saW5lQ29u
dGFpbmVyRWxlbWVudCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8TWF0aE1MU2Vs
ZWN0RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50
Jik7CisgICAgdm9pZCB0b2dnbGUoKTsKIAogcHJpdmF0ZToKICAgICBNYXRoTUxTZWxlY3RFbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50Jik7Cg==
</data>
<flag name="review"
          id="241701"
          type_id="1"
          status="-"
          setter="darin"
    />
    <flag name="commit-queue"
          id="241702"
          type_id="3"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>218844</attachid>
            <date>2013-12-10 01:31:41 -0800</date>
            <delta_ts>2013-12-12 05:41:14 -0800</delta_ts>
            <desc>Patch V6</desc>
            <filename>maction-toggle.diff</filename>
            <type>text/plain</type>
            <size>11806</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjNDMwMmU0Li4wY2U5MjA3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTMtMTIt
MTAgIEZyw6lkw6lyaWMgV2FuZyAgPGZyZWQud2FuZ0BmcmVlLmZyPgorCisgICAgICAgIEFkZCBz
dXBwb3J0IGZvciBtYWN0aW9uQHRvZ2dsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTIwMDU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBtYXRobWwvcHJlc2VudGF0aW9uL21hY3Rpb24tdG9nZ2xlLWV4
cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIG1hdGhtbC9wcmVzZW50YXRpb24vbWFjdGlv
bi10b2dnbGUuaHRtbDogQWRkZWQuCisKIDIwMTMtMTItMDkgIFJ5b3N1a2UgTml3YSAgPHJuaXdh
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMTM2MjgwKTogaW5wdXRbdHlwZT1p
bWFnZV0gc2hvdWxkIGFzc3VtZSBjb29yZHMgb2YgMCwwIHdoZW4gYWN0aXZhdGVkIHdpdGhvdXQg
cGh5c2ljYWxseSBjbGlja2luZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWF0aG1sL3ByZXNl
bnRhdGlvbi9tYWN0aW9uLXRvZ2dsZS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvbWF0aG1s
L3ByZXNlbnRhdGlvbi9tYWN0aW9uLXRvZ2dsZS1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ3MWNmMmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9tYXRobWwvcHJlc2VudGF0aW9uL21hY3Rpb24tdG9nZ2xlLWV4cGVjdGVkLmh0bWwKQEAg
LTAsMCArMSwxMTEgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+CisgIDxoZWFkPgorICAgIDx0
aXRsZT5tYWN0aW9uIHRvZ2dsZTwvdGl0bGU+CisgIDwvaGVhZD4KKyAgPGJvZHk+CisKKyAgICA8
IS0tIHNlbGVjdGlvbj0iMSIgKGRlZmF1bHQpIDsgdGhyZWUgY2xpY2tzIC0tPgorICAgIDxtYXRo
PgorICAgICAgPG1yb3c+CisgICAgICAgIDxtbj40PC9tbj4KKyAgICAgIDwvbXJvdz4KKyAgICA8
L21hdGg+CisKKyAgICA8IS0tIHNlbGVjdGlvbj0iMiIgOyBvbmUgY2xpY2sgLS0+CisgICAgPG1h
dGg+CisgICAgICA8bXJvdz4KKyAgICAgICAgPG1uPjM8L21uPgorICAgICAgPC9tcm93PgorICAg
IDwvbWF0aD4KKworICAgIDwhLS0gc2VsZWN0aW9uPSI0IiAobGFzdCBjaGlsZCkgOyBvbmUgY2xp
Y2sgLS0+CisgICAgPG1hdGg+CisgICAgICA8bXJvdz4KKyAgICAgICAgPG1uPjE8L21uPgorICAg
ICAgPC9tcm93PgorICAgIDwvbWF0aD4KKworICAgIDwhLS0gT3RoZXIgZWRnZSBjYXNlcyAtLT4K
KyAgICA8bWF0aD4KKyAgICAgIDxtcm93PgorICAgICAgPC9tcm93PgorICAgIDwvbWF0aD4KKyAg
ICA8bWF0aD4KKyAgICAgIDxtcm93PgorICAgICAgICA8bW4+MTwvbW4+CisgICAgICA8L21yb3c+
CisgICAgPC9tYXRoPgorICAgIDxtYXRoPgorICAgICAgPG1yb3c+CisgICAgICAgIDxtbj4yPC9t
bj4KKyAgICAgIDwvbXJvdz4KKyAgICA8L21hdGg+CisgICAgPG1hdGg+CisgICAgICA8bXJvdz4K
KyAgICAgICAgPG1uPjI8L21uPgorICAgICAgPC9tcm93PgorICAgIDwvbWF0aD4KKyAgICA8bWF0
aD4KKyAgICAgIDxtcm93PgorICAgICAgICA8bW4+MjwvbW4+CisgICAgICA8L21yb3c+CisgICAg
PC9tYXRoPgorICAgIDxtYXRoPgorICAgICAgPG1yb3c+CisgICAgICAgIDxtbj4xPC9tbj4KKyAg
ICAgIDwvbXJvdz4KKyAgICA8L21hdGg+CisgICAgPG1hdGg+CisgICAgICA8bXJvdz4KKyAgICAg
ICAgPG1uPjE8L21uPgorICAgICAgPC9tcm93PgorICAgIDwvbWF0aD4KKyAgICA8bWF0aD4KKyAg
ICAgIDxtcm93PgorICAgICAgICA8bW4+MzwvbW4+CisgICAgICA8L21yb3c+CisgICAgPC9tYXRo
PgorICAgIDxtYXRoPgorICAgICAgPG1yb3c+CisgICAgICAgIDxtbj4yPC9tbj4KKyAgICAgIDwv
bXJvdz4KKyAgICA8L21hdGg+CisgICAgPG1hdGg+CisgICAgICA8bXJvdz4KKyAgICAgICAgPG1u
PjI8L21uPgorICAgICAgPC9tcm93PgorICAgICAgPG1yb3c+CisgICAgICAgIDxtbj4xPC9tbj4K
KyAgICAgIDwvbXJvdz4KKyAgICAgIDxtcm93PgorICAgICAgICA8bW4+MjwvbW4+CisgICAgICA8
L21yb3c+CisgICAgICA8bXJvdz4KKyAgICAgICAgPG1uPjI8L21uPgorICAgICAgPC9tcm93Pgor
ICAgIDwvbWF0aD4KKworICAgIDwhLS0gTmVzdGVkIDxtYWN0aW9uPiBlbGVtZW50cyA7IGJ1YmJs
ZSA9IGZhbHNlIC0tPgorICAgIDxtYXRoPgorICAgICAgPG1yb3c+CisgICAgICAgIDxtbj4yPC9t
bj4KKyAgICAgIDwvbXJvdz4KKyAgICA8L21hdGg+CisKKyAgICA8IS0tIE5lc3RlZCA8bWFjdGlv
bj4gZWxlbWVudHMgOyBidWJibGUgPSB0cnVlIC0tPgorICAgIDxtYXRoPgorICAgICAgPG1yb3c+
CisgICAgICAgIDxtbj40PC9tbj4KKyAgICAgIDwvbXJvdz4KKyAgICA8L21hdGg+CisKKyAgICA8
IS0tIFByZXZlbnQgZGVmYXVsdCAtLT4KKyAgICA8bWF0aD4KKyAgICAgIDxtcm93PgorICAgICAg
ICA8bW4+MTwvbW4+CisgICAgICA8L21yb3c+CisgICAgPC9tYXRoPgorCisgIDwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21hdGhtbC9wcmVzZW50YXRpb24vbWFjdGlv
bi10b2dnbGUuaHRtbCBiL0xheW91dFRlc3RzL21hdGhtbC9wcmVzZW50YXRpb24vbWFjdGlvbi10
b2dnbGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xODM5ZTc3Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWF0aG1sL3ByZXNlbnRhdGlvbi9tYWN0aW9u
LXRvZ2dsZS5odG1sCkBAIC0wLDAgKzEsMjAyIEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgor
ICA8aGVhZD4KKyAgICA8dGl0bGU+bWFjdGlvbiB0b2dnbGU8L3RpdGxlPgorICAgIDxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICAgIGZ1bmN0aW9uIGNsaWNrKGlkLCBidWJibGUs
IHByZXZlbnREZWZhdWx0KQorICAgICAgeworICAgICAgICB2YXIgZXZlbnQgPSBuZXcgTW91c2VF
dmVudCgnY2xpY2snLCB7YnViYmxlczogYnViYmxlLCBjYW5jZWxhYmxlOiB0cnVlfSk7CisgICAg
ICAgIGlmIChwcmV2ZW50RGVmYXVsdCkKKyAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgp
OworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuZGlzcGF0Y2hFdmVudChldmVu
dCk7CisgICAgICB9CisgICAgICBmdW5jdGlvbiB0ZXN0KCkKKyAgICAgIHsKKyAgICAgICAgLy8g
c2VsZWN0aW9uPTEgOyAoWzFdIDIgMyA0KQorICAgICAgICAvLyBBZnRlciB0aHJlZSBjbGlja3Ms
IHNlbGVjdGlvbj00OiAoMSAyIDMgWzRdKQorICAgICAgICBjbGljaygnbTEnKTsgY2xpY2soJ20x
Jyk7IGNsaWNrKCdtMScpOworCisgICAgICAgIC8vIHNlbGVjdGlvbj0yIDsgKDEgWzJdIDMgNCkK
KyAgICAgICAgLy8gQWZ0ZXIgb25lIGNsaWNrLCBzZWxlY3Rpb249MzogKDEgMiBbM10gNCkKKyAg
ICAgICAgY2xpY2soJ20yJyk7CisKKyAgICAgICAgLy8gc2VsZWN0aW9uPTQgOyAoMSAyIDMgWzRd
KQorICAgICAgICAvLyBBZnRlciBvbmUgY2xpY2ssIHNlbGVjdGlvbj0xOiAoWzFdIDIgMyA0KQor
ICAgICAgICBjbGljaygnbTMnKTsKKworICAgICAgICAvLyBPdGhlciBlZGdlIGNhc2VzCisgICAg
ICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IDEzOyBpKyspCisgICAgICAgICAgY2xpY2soJ2UnK2kp
OworCisgICAgICAgIC8vIE5lc3RlZCBtYWN0aW9uIGVsZW1lbnRzLCBidWJibGUgPSBmYWxzZSA7
IChbKFsxXSAyIDMpXSA0IDUpCisgICAgICAgIC8vIEFmdGVyIG9uZSBjbGljayBvbiB0aGUgaW5u
ZXIgbWFjdGlvbjogKFsoMSBbMl0gMyldIDQgNSkKKyAgICAgICAgY2xpY2soJ200JywgZmFsc2Up
OworCisgICAgICAgIC8vIE5lc3RlZCBtYWN0aW9uIGVsZW1lbnRzLCBidWJibGUgPSB0cnVlIDsg
KFsoWzFdIDIgMyldIDQgNSkKKyAgICAgICAgLy8gQWZ0ZXIgb25lIGNsaWNrIG9uIHRoZSBpbm5l
ciBtYWN0aW9uOiAoKDEgWzJdIDMpIFs0XSA1KQorICAgICAgICBjbGljaygnbTUnLCB0cnVlKTsK
KworICAgICAgICAvLyBQcmV2ZW50IGRlZmF1bHQgOyAoWzFdIDIgMykKKyAgICAgICAgLy8gQWZ0
ZXIgb25lIGNsaWNrIG9uIHRoZSBpbm5lciBtYWN0aW9uOiAoWzFdIDIgMykKKyAgICAgICAgY2xp
Y2soJ202JywgZmFsc2UsIHRydWUpOworICAgICAgfQorICAgIDwvc2NyaXB0PgorICA8L2hlYWQ+
CisgIDxib2R5IG9ubG9hZD0idGVzdCgpIj4KKworICAgIDwhLS0gVGhpcyB0ZXN0IHZlcmlmaWVz
IHRoZSBlZmZlY3Qgb2YgbW91c2UgY2xpY2tzIG9uIDxtYWN0aW9uIGFjdGlvbnR5cGU9InRvZ2ds
ZSI+IGVsZW1lbnRzLiAtLT4KKworICAgIDwhLS0gc2VsZWN0aW9uPSIxIiAoZGVmYXVsdCkgOyB0
aHJlZSBjbGlja3MgLS0+CisgICAgPG1hdGg+CisgICAgICA8bWFjdGlvbiBhY3Rpb250eXBlPSJ0
b2dnbGUiIGlkPSJtMSI+CisgICAgICAgIDxtbj4xPC9tbj4KKyAgICAgICAgPG1uPjI8L21uPgor
ICAgICAgICA8bW4+MzwvbW4+CisgICAgICAgIDxtbj40PC9tbj4KKyAgICAgIDwvbWFjdGlvbj4K
KyAgICA8L21hdGg+CisKKyAgICA8IS0tIHNlbGVjdGlvbj0iMiIgOyBvbmUgY2xpY2sgLS0+Cisg
ICAgPG1hdGg+CisgICAgICA8bWFjdGlvbiBhY3Rpb250eXBlPSJ0b2dnbGUiIHNlbGVjdGlvbj0i
MiIgaWQ9Im0yIj4KKyAgICAgICAgPG1uPjE8L21uPgorICAgICAgICA8bW4+MjwvbW4+CisgICAg
ICAgIDxtbj4zPC9tbj4KKyAgICAgICAgPG1uPjQ8L21uPgorICAgICAgPC9tYWN0aW9uPgorICAg
IDwvbWF0aD4KKworICAgIDwhLS0gc2VsZWN0aW9uPSI0IiAobGFzdCBjaGlsZCkgOyBvbmUgY2xp
Y2sgLS0+CisgICAgPG1hdGg+CisgICAgICA8bWFjdGlvbiBhY3Rpb250eXBlPSJ0b2dnbGUiIHNl
bGVjdGlvbj0iNCIgaWQ9Im0zIj4KKyAgICAgICAgPG1uPjE8L21uPgorICAgICAgICA8bW4+Mjwv
bW4+CisgICAgICAgIDxtbj4zPC9tbj4KKyAgICAgICAgPG1uPjQ8L21uPgorICAgICAgPC9tYWN0
aW9uPgorICAgIDwvbWF0aD4KKworICAgIDwhLS0gT3RoZXIgZWRnZSBjYXNlcyAtLT4KKyAgICA8
bWF0aD4KKyAgICAgIDxtYWN0aW9uIGFjdGlvbnR5cGU9InRvZ2dsZSIgaWQ9ImUxIj4KKyAgICAg
IDwvbWFjdGlvbj4KKyAgICA8L21hdGg+CisgICAgPG1hdGg+CisgICAgICA8bWFjdGlvbiBhY3Rp
b250eXBlPSJ0b2dnbGUiIGlkPSJlMiI+CisgICAgICAgIDxtbj4xPC9tbj4KKyAgICAgIDwvbWFj
dGlvbj4KKyAgICA8L21hdGg+CisgICAgPG1hdGg+CisgICAgICA8bWFjdGlvbiBhY3Rpb250eXBl
PSJ0b2dnbGUiIHNlbGVjdGlvbj0iLTEwIiBpZD0iZTMiPgorICAgICAgICA8bW4+MTwvbW4+Cisg
ICAgICAgIDxtbj4yPC9tbj4KKyAgICAgICAgPG1uPjM8L21uPgorICAgICAgPC9tYWN0aW9uPgor
ICAgIDwvbWF0aD4KKyAgICA8bWF0aD4KKyAgICAgIDxtYWN0aW9uIGFjdGlvbnR5cGU9InRvZ2ds
ZSIgc2VsZWN0aW9uPSItMSIgaWQ9ImU0Ij4KKyAgICAgICAgPG1uPjE8L21uPgorICAgICAgICA8
bW4+MjwvbW4+CisgICAgICAgIDxtbj4zPC9tbj4KKyAgICAgIDwvbWFjdGlvbj4KKyAgICA8L21h
dGg+CisgICAgPG1hdGg+CisgICAgICA8bWFjdGlvbiBhY3Rpb250eXBlPSJ0b2dnbGUiIHNlbGVj
dGlvbj0iMCIgaWQ9ImU1Ij4KKyAgICAgICAgPG1uPjE8L21uPgorICAgICAgICA8bW4+MjwvbW4+
CisgICAgICAgIDxtbj4zPC9tbj4KKyAgICAgIDwvbWFjdGlvbj4KKyAgICA8L21hdGg+CisgICAg
PG1hdGg+CisgICAgICA8bWFjdGlvbiBhY3Rpb250eXBlPSJ0b2dnbGUiIHNlbGVjdGlvbj0iNCIg
aWQ9ImU2Ij4KKyAgICAgICAgPG1uPjE8L21uPgorICAgICAgICA8bW4+MjwvbW4+CisgICAgICAg
IDxtbj4zPC9tbj4KKyAgICAgIDwvbWFjdGlvbj4KKyAgICA8L21hdGg+CisgICAgPG1hdGg+Cisg
ICAgICA8bWFjdGlvbiBhY3Rpb250eXBlPSJ0b2dnbGUiIHNlbGVjdGlvbj0iMTAiIGlkPSJlNyI+
CisgICAgICAgIDxtbj4xPC9tbj4KKyAgICAgICAgPG1uPjI8L21uPgorICAgICAgICA8bW4+Mzwv
bW4+CisgICAgICA8L21hY3Rpb24+CisgICAgPC9tYXRoPgorICAgIDxtYXRoPgorICAgICAgPG1h
Y3Rpb24gYWN0aW9udHlwZT0idG9nZ2xlIiBzZWxlY3Rpb249IiYjeDIwOyYjeDk7JiN4RDsmI3hB
OzImI3gyMDsmI3g5OyYjeEQ7JiN4QTsiIGlkPSJlOCI+CisgICAgICAgIDxtbj4xPC9tbj4KKyAg
ICAgICAgPG1uPjI8L21uPgorICAgICAgICA8bW4+MzwvbW4+CisgICAgICA8L21hY3Rpb24+Cisg
ICAgPC9tYXRoPgorICAgIDxtYXRoPgorICAgICAgPG1hY3Rpb24gYWN0aW9udHlwZT0idG9nZ2xl
IiBzZWxlY3Rpb249IlRXTyIgaWQ9ImU5Ij4KKyAgICAgICAgPG1uPjE8L21uPgorICAgICAgICA8
bW4+MjwvbW4+CisgICAgICAgIDxtbj4zPC9tbj4KKyAgICAgIDwvbWFjdGlvbj4KKyAgICA8L21h
dGg+CisgICAgPG1hdGg+CisgICAgICA8IS0tIFRoZXNlIHZhbHVlcyBhcmUgbGltaXRzIGZvciAz
MiBiaXRzIHNpZ25lZCBpbnRlZ2Vycy4KKyAgICAgICAgICAgVGhlIG1hY3Rpb24gZWxlbWVudCB3
aWxsIGNvbnZlcnQgdGhlbSB0byAxIGFuZCAzIHJlc3BlY3RpdmVseS4gLS0+CisgICAgICA8bWFj
dGlvbiBhY3Rpb250eXBlPSJ0b2dnbGUiIHNlbGVjdGlvbj0iLTY1NTM2IiBpZD0iZTEwIj4KKyAg
ICAgICAgPG1uPjE8L21uPgorICAgICAgICA8bW4+MjwvbW4+CisgICAgICAgIDxtbj4zPC9tbj4K
KyAgICAgIDwvbWFjdGlvbj4KKyAgICAgIDxtYWN0aW9uIGFjdGlvbnR5cGU9InRvZ2dsZSIgc2Vs
ZWN0aW9uPSI2NTUzNSIgaWQ9ImUxMSI+CisgICAgICAgIDxtbj4xPC9tbj4KKyAgICAgICAgPG1u
PjI8L21uPgorICAgICAgICA8bW4+MzwvbW4+CisgICAgICA8L21hY3Rpb24+CisgICAgICA8IS0t
IFRoZXNlIHZhbHVlcyBhcmUgLTEgYW5kICsxIGZvciAzMiBvciA2NCBiaXRzIHNpZ25lZCBpbnRl
Z2Vycy4KKyAgICAgICAgICAgVGhlIG1hY3Rpb24gZWxlbWVudCB3aWxsIGNvbnZlcnQgYm90aCBv
ZiB0aGVtIHRvIDEuIC0tPgorICAgICAgPG1hY3Rpb24gYWN0aW9udHlwZT0idG9nZ2xlIiBzZWxl
Y3Rpb249Ii0xODQ0Njc0NDA3MzcwOTU1MTYxNyIgaWQ9ImUxMiI+CisgICAgICAgIDxtbj4xPC9t
bj4KKyAgICAgICAgPG1uPjI8L21uPgorICAgICAgICA8bW4+MzwvbW4+CisgICAgICA8L21hY3Rp
b24+CisgICAgICA8bWFjdGlvbiBhY3Rpb250eXBlPSJ0b2dnbGUiIHNlbGVjdGlvbj0iMTg0NDY3
NDQwNzM3MDk1NTE2MTciIGlkPSJlMTMiPgorICAgICAgICA8bW4+MTwvbW4+CisgICAgICAgIDxt
bj4yPC9tbj4KKyAgICAgICAgPG1uPjM8L21uPgorICAgICAgPC9tYWN0aW9uPgorICAgIDwvbWF0
aD4KKworICAgIDwhLS0gTmVzdGVkIDxtYWN0aW9uPiBlbGVtZW50cyA7IGJ1YmJsZSA9IGZhbHNl
IC0tPgorICAgIDxtYXRoPgorICAgICAgPG1hY3Rpb24gYWN0aW9udHlwZT0idG9nZ2xlIj4KKyAg
ICAgICAgPG1hY3Rpb24gYWN0aW9udHlwZT0idG9nZ2xlIiBpZD0ibTQiPgorICAgICAgICAgIDxt
bj4xPC9tbj4KKyAgICAgICAgICA8bW4+MjwvbW4+CisgICAgICAgICAgPG1uPjM8L21uPgorICAg
ICAgICA8L21hY3Rpb24+CisgICAgICAgIDxtbj40PC9tbj4KKyAgICAgICAgPG1uPjU8L21uPgor
ICAgICAgPC9tYWN0aW9uPgorICAgIDwvbWF0aD4KKworICAgIDwhLS0gTmVzdGVkIDxtYWN0aW9u
PiBlbGVtZW50cyA7IGJ1YmJsZSA9IHRydWUgLS0+CisgICAgPG1hdGg+CisgICAgICA8bWFjdGlv
biBhY3Rpb250eXBlPSJ0b2dnbGUiPgorICAgICAgICA8bWFjdGlvbiBhY3Rpb250eXBlPSJ0b2dn
bGUiIGlkPSJtNSI+CisgICAgICAgICAgPG1uPjE8L21uPgorICAgICAgICAgIDxtbj4yPC9tbj4K
KyAgICAgICAgICA8bW4+MzwvbW4+CisgICAgICAgIDwvbWFjdGlvbj4KKyAgICAgICAgPG1uPjQ8
L21uPgorICAgICAgICA8bW4+NTwvbW4+CisgICAgICA8L21hY3Rpb24+CisgICAgPC9tYXRoPgor
CisgICAgPCEtLSBQcmV2ZW50IGRlZmF1bHQgLS0+CisgICAgPG1hdGg+CisgICAgICA8bWFjdGlv
biBhY3Rpb250eXBlPSJ0b2dnbGUiIGlkPSJtNiI+CisgICAgICAgIDxtbj4xPC9tbj4KKyAgICAg
ICAgPG1uPjI8L21uPgorICAgICAgICA8bW4+MzwvbW4+CisgICAgICA8L21hY3Rpb24+CisgICAg
PC9tYXRoPgorCisKKyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDliMDcwNjkuLmYx
MDIxN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMy0xMi0xMCAgRnLDqWTDqXJp
YyBXYW5nICA8ZnJlZC53YW5nQGZyZWUuZnI+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIG1h
Y3Rpb25AdG9nZ2xlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMjAwNTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUZXN0OiBtYXRobWwvcHJlc2VudGF0aW9uL21hY3Rpb24tdG9nZ2xlLmh0bWwKKworICAg
ICAgICAqIG1hdGhtbC9NYXRoTUxTZWxlY3RFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok1hdGhNTFNlbGVjdEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6TWF0aE1MU2VsZWN0RWxlbWVudDo6d2lsbFJlc3BvbmRUb01vdXNlQ2xpY2tFdmVudHMp
OgorICAgICAgICAoV2ViQ29yZTo6TWF0aE1MU2VsZWN0RWxlbWVudDo6dG9nZ2xlKToKKyAgICAg
ICAgKiBtYXRobWwvTWF0aE1MU2VsZWN0RWxlbWVudC5oOgorCiAyMDEzLTEyLTA5ICBBbmRyZWFz
IEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KIAogICAgICAgICBDbGVhciBvdXQgZm9udCB3aWR0
aCBtZWFzdXJlbWVudCBjYWNoZXMgb24gbWVtb3J5IHByZXNzdXJlLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFNlbGVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvbWF0aG1sL01hdGhNTFNlbGVjdEVsZW1lbnQuY3BwCmluZGV4IDEwNTk4ZjQuLmNiNDJmNmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxTZWxlY3RFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MU2VsZWN0RWxlbWVudC5jcHAKQEAg
LTExNyw2ICsxMTcsNDMgQEAgdm9pZCBNYXRoTUxTZWxlY3RFbGVtZW50Ojp1cGRhdGVTZWxlY3Rl
ZENoaWxkKCkKICAgICBzZXROZWVkc1N0eWxlUmVjYWxjKCk7CiB9CiAKK3ZvaWQgTWF0aE1MU2Vs
ZWN0RWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCit7CisgICAgaWYg
KGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmNsaWNrRXZlbnQgJiYgZXZlbnQtPmlzTW91
c2VFdmVudCgpKSB7CisgICAgICAgIGlmIChnZXRBdHRyaWJ1dGUoTWF0aE1MTmFtZXM6OmFjdGlv
bnR5cGVBdHRyKSA9PSAidG9nZ2xlIikgeworICAgICAgICAgICAgdG9nZ2xlKCk7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisKKyAgICBNYXRoTUxJbmxpbmVDb250YWlu
ZXJFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKGV2ZW50KTsKK30KKworYm9vbCBNYXRoTUxT
ZWxlY3RFbGVtZW50Ojp3aWxsUmVzcG9uZFRvTW91c2VDbGlja0V2ZW50cygpCit7CisgICAgcmV0
dXJuIHRydWU7Cit9CisKK3ZvaWQgTWF0aE1MU2VsZWN0RWxlbWVudDo6dG9nZ2xlKCkKK3sKKyAg
ICAvLyBEZXRlcm1pbmUgdGhlIHN1Y2Nlc3NvciBvZiB0aGUgc2VsZWN0ZWQgY2hpbGQuCisgICAg
aW50IHNlbGVjdGlvbiA9IDE7CisgICAgaWYgKG1fc2VsZWN0ZWRDaGlsZCkgeworICAgICAgICBF
bGVtZW50KiBjaGlsZCA9IGZpcnN0RWxlbWVudENoaWxkKCk7CisgICAgICAgIHdoaWxlIChjaGls
ZCAmJiBjaGlsZCAhPSBtX3NlbGVjdGVkQ2hpbGQtPm5leHRFbGVtZW50U2libGluZygpKSB7Cisg
ICAgICAgICAgICBjaGlsZCA9IGNoaWxkLT5uZXh0RWxlbWVudFNpYmxpbmcoKTsKKyAgICAgICAg
ICAgIHNlbGVjdGlvbisrOworICAgICAgICB9CisgICAgICAgIC8vIElmIHdlIHJlYWNoIHRoZSBl
bmQgb2YgdGhlIGNoaWxkIGxpc3QsIHdlIGdvIGJhY2sgdG8gdGhlIGZpcnN0IGNoaWxkLgorICAg
ICAgICBpZiAoIWNoaWxkKQorICAgICAgICAgICAgc2VsZWN0aW9uID0gMTsKKyAgICB9CisKKyAg
ICAvLyBXZSB1cGRhdGUgdGhlIGF0dHJpYnV0ZSB2YWx1ZSBvZiB0aGUgc2VsZWN0aW9uIGF0dHJp
YnV0ZS4KKyAgICAvLyBUaGlzIHdpbGwgYWxzbyBjYWxsIE1hdGhNTFNlbGVjdEVsZW1lbnQ6OmF0
dHJpYnV0ZUNoYW5nZWQgdG8gdXBkYXRlIHRoZSBzZWxlY3RlZCBjaGlsZC4KKyAgICBzZXRBdHRy
aWJ1dGUoTWF0aE1MTmFtZXM6OnNlbGVjdGlvbkF0dHIsIFN0cmluZzo6bnVtYmVyKHNlbGVjdGlv
bikpOworfQorCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoTUFUSE1MKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFNlbGVjdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L21hdGhtbC9NYXRoTUxTZWxlY3RFbGVtZW50LmgKaW5kZXggNmUwNGZhNi4uZjBmMzNlZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFNlbGVjdEVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MU2VsZWN0RWxlbWVudC5oCkBAIC0yNyw2ICsy
Nyw3IEBACiAjZGVmaW5lIE1hdGhNTFNlbGVjdEVsZW1lbnRfaAogCiAjaWYgRU5BQkxFKE1BVEhN
TCkKKyNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIk1hdGhNTElubGluZUNvbnRhaW5lckVs
ZW1lbnQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzQsNiArMzUsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBjbGFzcyBNYXRoTUxTZWxlY3RFbGVtZW50IEZJTkFMIDogcHVibGljIE1h
dGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVm
UHRyPE1hdGhNTFNlbGVjdEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdO
YW1lLCBEb2N1bWVudCYpOworICAgIHZvaWQgdG9nZ2xlKCk7CiAKIHByaXZhdGU6CiAgICAgTWF0
aE1MU2VsZWN0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYp
OwpAQCAtNDQsNiArNDYsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBmaW5pc2hQYXJz
aW5nQ2hpbGRyZW4oKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFuZ2Vk
KGNvbnN0IENoaWxkQ2hhbmdlJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGF0dHJpYnV0
ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYsIEF0dHJp
YnV0ZU1vZGlmaWNhdGlvblJlYXNvbiA9IE1vZGlmaWVkRGlyZWN0bHkpIE9WRVJSSURFOworICAg
IHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KikgT1ZFUlJJREU7CisgICAg
dmlydHVhbCBib29sIHdpbGxSZXNwb25kVG9Nb3VzZUNsaWNrRXZlbnRzKCkgT1ZFUlJJREU7CiAK
ICAgICB2b2lkIHVwZGF0ZVNlbGVjdGVkQ2hpbGQoKTsKICAgICBFbGVtZW50KiBtX3NlbGVjdGVk
Q2hpbGQ7Cg==
</data>
<flag name="review"
          id="242379"
          type_id="1"
          status="+"
          setter="darin"
    />
    <flag name="commit-queue"
          id="242380"
          type_id="3"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>219077</attachid>
            <date>2013-12-12 05:41:14 -0800</date>
            <delta_ts>2013-12-12 05:53:32 -0800</delta_ts>
            <desc>Patch Final Version</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>13383</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmNzAyMTBkLi5mZjkxMjNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTMtMTIt
MTIgIEZyw6lkw6lyaWMgV2FuZyAgPGZyZWQud2FuZ0BmcmVlLmZyPgorCisgICAgICAgIEFkZCBz
dXBwb3J0IGZvciBtYWN0aW9uQHRvZ2dsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTIwMDU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBtYXRobWwvcHJlc2VudGF0aW9uL21hY3Rpb24tdG9nZ2xlLWV4
cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIG1hdGhtbC9wcmVzZW50YXRpb24vbWFjdGlv
bi10b2dnbGUuaHRtbDogQWRkZWQuCisKIDIwMTMtMTItMTEgIERhcmluIEFkbGVyICA8ZGFyaW5A
YXBwbGUuY29tPgogCiAgICAgICAgIFN0eWxlUGVuZGluZ0ltYWdlIG5lZWRzIHRvIGNvcnJlY3Rs
eSBtYW5hZ2UgdGhlIENTU1ZhbHVlIHBvaW50ZXIgbGlmZXRpbWUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL21hdGhtbC9wcmVzZW50YXRpb24vbWFjdGlvbi10b2dnbGUtZXhwZWN0ZWQuaHRtbCBi
L0xheW91dFRlc3RzL21hdGhtbC9wcmVzZW50YXRpb24vbWFjdGlvbi10b2dnbGUtZXhwZWN0ZWQu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NzFjZjJlCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWF0aG1sL3ByZXNlbnRhdGlvbi9tYWN0aW9uLXRvZ2ds
ZS1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMTExIEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1s
PgorICA8aGVhZD4KKyAgICA8dGl0bGU+bWFjdGlvbiB0b2dnbGU8L3RpdGxlPgorICA8L2hlYWQ+
CisgIDxib2R5PgorCisgICAgPCEtLSBzZWxlY3Rpb249IjEiIChkZWZhdWx0KSA7IHRocmVlIGNs
aWNrcyAtLT4KKyAgICA8bWF0aD4KKyAgICAgIDxtcm93PgorICAgICAgICA8bW4+NDwvbW4+Cisg
ICAgICA8L21yb3c+CisgICAgPC9tYXRoPgorCisgICAgPCEtLSBzZWxlY3Rpb249IjIiIDsgb25l
IGNsaWNrIC0tPgorICAgIDxtYXRoPgorICAgICAgPG1yb3c+CisgICAgICAgIDxtbj4zPC9tbj4K
KyAgICAgIDwvbXJvdz4KKyAgICA8L21hdGg+CisKKyAgICA8IS0tIHNlbGVjdGlvbj0iNCIgKGxh
c3QgY2hpbGQpIDsgb25lIGNsaWNrIC0tPgorICAgIDxtYXRoPgorICAgICAgPG1yb3c+CisgICAg
ICAgIDxtbj4xPC9tbj4KKyAgICAgIDwvbXJvdz4KKyAgICA8L21hdGg+CisKKyAgICA8IS0tIE90
aGVyIGVkZ2UgY2FzZXMgLS0+CisgICAgPG1hdGg+CisgICAgICA8bXJvdz4KKyAgICAgIDwvbXJv
dz4KKyAgICA8L21hdGg+CisgICAgPG1hdGg+CisgICAgICA8bXJvdz4KKyAgICAgICAgPG1uPjE8
L21uPgorICAgICAgPC9tcm93PgorICAgIDwvbWF0aD4KKyAgICA8bWF0aD4KKyAgICAgIDxtcm93
PgorICAgICAgICA8bW4+MjwvbW4+CisgICAgICA8L21yb3c+CisgICAgPC9tYXRoPgorICAgIDxt
YXRoPgorICAgICAgPG1yb3c+CisgICAgICAgIDxtbj4yPC9tbj4KKyAgICAgIDwvbXJvdz4KKyAg
ICA8L21hdGg+CisgICAgPG1hdGg+CisgICAgICA8bXJvdz4KKyAgICAgICAgPG1uPjI8L21uPgor
ICAgICAgPC9tcm93PgorICAgIDwvbWF0aD4KKyAgICA8bWF0aD4KKyAgICAgIDxtcm93PgorICAg
ICAgICA8bW4+MTwvbW4+CisgICAgICA8L21yb3c+CisgICAgPC9tYXRoPgorICAgIDxtYXRoPgor
ICAgICAgPG1yb3c+CisgICAgICAgIDxtbj4xPC9tbj4KKyAgICAgIDwvbXJvdz4KKyAgICA8L21h
dGg+CisgICAgPG1hdGg+CisgICAgICA8bXJvdz4KKyAgICAgICAgPG1uPjM8L21uPgorICAgICAg
PC9tcm93PgorICAgIDwvbWF0aD4KKyAgICA8bWF0aD4KKyAgICAgIDxtcm93PgorICAgICAgICA8
bW4+MjwvbW4+CisgICAgICA8L21yb3c+CisgICAgPC9tYXRoPgorICAgIDxtYXRoPgorICAgICAg
PG1yb3c+CisgICAgICAgIDxtbj4yPC9tbj4KKyAgICAgIDwvbXJvdz4KKyAgICAgIDxtcm93Pgor
ICAgICAgICA8bW4+MTwvbW4+CisgICAgICA8L21yb3c+CisgICAgICA8bXJvdz4KKyAgICAgICAg
PG1uPjI8L21uPgorICAgICAgPC9tcm93PgorICAgICAgPG1yb3c+CisgICAgICAgIDxtbj4yPC9t
bj4KKyAgICAgIDwvbXJvdz4KKyAgICA8L21hdGg+CisKKyAgICA8IS0tIE5lc3RlZCA8bWFjdGlv
bj4gZWxlbWVudHMgOyBidWJibGUgPSBmYWxzZSAtLT4KKyAgICA8bWF0aD4KKyAgICAgIDxtcm93
PgorICAgICAgICA8bW4+MjwvbW4+CisgICAgICA8L21yb3c+CisgICAgPC9tYXRoPgorCisgICAg
PCEtLSBOZXN0ZWQgPG1hY3Rpb24+IGVsZW1lbnRzIDsgYnViYmxlID0gdHJ1ZSAtLT4KKyAgICA8
bWF0aD4KKyAgICAgIDxtcm93PgorICAgICAgICA8bW4+NDwvbW4+CisgICAgICA8L21yb3c+Cisg
ICAgPC9tYXRoPgorCisgICAgPCEtLSBQcmV2ZW50IGRlZmF1bHQgLS0+CisgICAgPG1hdGg+Cisg
ICAgICA8bXJvdz4KKyAgICAgICAgPG1uPjE8L21uPgorICAgICAgPC9tcm93PgorICAgIDwvbWF0
aD4KKworICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tYXRobWwv
cHJlc2VudGF0aW9uL21hY3Rpb24tdG9nZ2xlLmh0bWwgYi9MYXlvdXRUZXN0cy9tYXRobWwvcHJl
c2VudGF0aW9uL21hY3Rpb24tdG9nZ2xlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uMTgzOWU3NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21hdGhtbC9w
cmVzZW50YXRpb24vbWFjdGlvbi10b2dnbGUuaHRtbApAQCAtMCwwICsxLDIwMiBAQAorPCFkb2N0
eXBlIGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPHRpdGxlPm1hY3Rpb24gdG9nZ2xlPC90
aXRsZT4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgICBmdW5jdGlv
biBjbGljayhpZCwgYnViYmxlLCBwcmV2ZW50RGVmYXVsdCkKKyAgICAgIHsKKyAgICAgICAgdmFy
IGV2ZW50ID0gbmV3IE1vdXNlRXZlbnQoJ2NsaWNrJywge2J1YmJsZXM6IGJ1YmJsZSwgY2FuY2Vs
YWJsZTogdHJ1ZX0pOworICAgICAgICBpZiAocHJldmVudERlZmF1bHQpCisgICAgICAgICAgZXZl
bnQucHJldmVudERlZmF1bHQoKTsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQp
LmRpc3BhdGNoRXZlbnQoZXZlbnQpOworICAgICAgfQorICAgICAgZnVuY3Rpb24gdGVzdCgpCisg
ICAgICB7CisgICAgICAgIC8vIHNlbGVjdGlvbj0xIDsgKFsxXSAyIDMgNCkKKyAgICAgICAgLy8g
QWZ0ZXIgdGhyZWUgY2xpY2tzLCBzZWxlY3Rpb249NDogKDEgMiAzIFs0XSkKKyAgICAgICAgY2xp
Y2soJ20xJyk7IGNsaWNrKCdtMScpOyBjbGljaygnbTEnKTsKKworICAgICAgICAvLyBzZWxlY3Rp
b249MiA7ICgxIFsyXSAzIDQpCisgICAgICAgIC8vIEFmdGVyIG9uZSBjbGljaywgc2VsZWN0aW9u
PTM6ICgxIDIgWzNdIDQpCisgICAgICAgIGNsaWNrKCdtMicpOworCisgICAgICAgIC8vIHNlbGVj
dGlvbj00IDsgKDEgMiAzIFs0XSkKKyAgICAgICAgLy8gQWZ0ZXIgb25lIGNsaWNrLCBzZWxlY3Rp
b249MTogKFsxXSAyIDMgNCkKKyAgICAgICAgY2xpY2soJ20zJyk7CisKKyAgICAgICAgLy8gT3Ro
ZXIgZWRnZSBjYXNlcworICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMzsgaSsrKQorICAg
ICAgICAgIGNsaWNrKCdlJytpKTsKKworICAgICAgICAvLyBOZXN0ZWQgbWFjdGlvbiBlbGVtZW50
cywgYnViYmxlID0gZmFsc2UgOyAoWyhbMV0gMiAzKV0gNCA1KQorICAgICAgICAvLyBBZnRlciBv
bmUgY2xpY2sgb24gdGhlIGlubmVyIG1hY3Rpb246IChbKDEgWzJdIDMpXSA0IDUpCisgICAgICAg
IGNsaWNrKCdtNCcsIGZhbHNlKTsKKworICAgICAgICAvLyBOZXN0ZWQgbWFjdGlvbiBlbGVtZW50
cywgYnViYmxlID0gdHJ1ZSA7IChbKFsxXSAyIDMpXSA0IDUpCisgICAgICAgIC8vIEFmdGVyIG9u
ZSBjbGljayBvbiB0aGUgaW5uZXIgbWFjdGlvbjogKCgxIFsyXSAzKSBbNF0gNSkKKyAgICAgICAg
Y2xpY2soJ201JywgdHJ1ZSk7CisKKyAgICAgICAgLy8gUHJldmVudCBkZWZhdWx0IDsgKFsxXSAy
IDMpCisgICAgICAgIC8vIEFmdGVyIG9uZSBjbGljayBvbiB0aGUgaW5uZXIgbWFjdGlvbjogKFsx
XSAyIDMpCisgICAgICAgIGNsaWNrKCdtNicsIGZhbHNlLCB0cnVlKTsKKyAgICAgIH0KKyAgICA8
L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keSBvbmxvYWQ9InRlc3QoKSI+CisKKyAgICA8IS0t
IFRoaXMgdGVzdCB2ZXJpZmllcyB0aGUgZWZmZWN0IG9mIG1vdXNlIGNsaWNrcyBvbiA8bWFjdGlv
biBhY3Rpb250eXBlPSJ0b2dnbGUiPiBlbGVtZW50cy4gLS0+CisKKyAgICA8IS0tIHNlbGVjdGlv
bj0iMSIgKGRlZmF1bHQpIDsgdGhyZWUgY2xpY2tzIC0tPgorICAgIDxtYXRoPgorICAgICAgPG1h
Y3Rpb24gYWN0aW9udHlwZT0idG9nZ2xlIiBpZD0ibTEiPgorICAgICAgICA8bW4+MTwvbW4+Cisg
ICAgICAgIDxtbj4yPC9tbj4KKyAgICAgICAgPG1uPjM8L21uPgorICAgICAgICA8bW4+NDwvbW4+
CisgICAgICA8L21hY3Rpb24+CisgICAgPC9tYXRoPgorCisgICAgPCEtLSBzZWxlY3Rpb249IjIi
IDsgb25lIGNsaWNrIC0tPgorICAgIDxtYXRoPgorICAgICAgPG1hY3Rpb24gYWN0aW9udHlwZT0i
dG9nZ2xlIiBzZWxlY3Rpb249IjIiIGlkPSJtMiI+CisgICAgICAgIDxtbj4xPC9tbj4KKyAgICAg
ICAgPG1uPjI8L21uPgorICAgICAgICA8bW4+MzwvbW4+CisgICAgICAgIDxtbj40PC9tbj4KKyAg
ICAgIDwvbWFjdGlvbj4KKyAgICA8L21hdGg+CisKKyAgICA8IS0tIHNlbGVjdGlvbj0iNCIgKGxh
c3QgY2hpbGQpIDsgb25lIGNsaWNrIC0tPgorICAgIDxtYXRoPgorICAgICAgPG1hY3Rpb24gYWN0
aW9udHlwZT0idG9nZ2xlIiBzZWxlY3Rpb249IjQiIGlkPSJtMyI+CisgICAgICAgIDxtbj4xPC9t
bj4KKyAgICAgICAgPG1uPjI8L21uPgorICAgICAgICA8bW4+MzwvbW4+CisgICAgICAgIDxtbj40
PC9tbj4KKyAgICAgIDwvbWFjdGlvbj4KKyAgICA8L21hdGg+CisKKyAgICA8IS0tIE90aGVyIGVk
Z2UgY2FzZXMgLS0+CisgICAgPG1hdGg+CisgICAgICA8bWFjdGlvbiBhY3Rpb250eXBlPSJ0b2dn
bGUiIGlkPSJlMSI+CisgICAgICA8L21hY3Rpb24+CisgICAgPC9tYXRoPgorICAgIDxtYXRoPgor
ICAgICAgPG1hY3Rpb24gYWN0aW9udHlwZT0idG9nZ2xlIiBpZD0iZTIiPgorICAgICAgICA8bW4+
MTwvbW4+CisgICAgICA8L21hY3Rpb24+CisgICAgPC9tYXRoPgorICAgIDxtYXRoPgorICAgICAg
PG1hY3Rpb24gYWN0aW9udHlwZT0idG9nZ2xlIiBzZWxlY3Rpb249Ii0xMCIgaWQ9ImUzIj4KKyAg
ICAgICAgPG1uPjE8L21uPgorICAgICAgICA8bW4+MjwvbW4+CisgICAgICAgIDxtbj4zPC9tbj4K
KyAgICAgIDwvbWFjdGlvbj4KKyAgICA8L21hdGg+CisgICAgPG1hdGg+CisgICAgICA8bWFjdGlv
biBhY3Rpb250eXBlPSJ0b2dnbGUiIHNlbGVjdGlvbj0iLTEiIGlkPSJlNCI+CisgICAgICAgIDxt
bj4xPC9tbj4KKyAgICAgICAgPG1uPjI8L21uPgorICAgICAgICA8bW4+MzwvbW4+CisgICAgICA8
L21hY3Rpb24+CisgICAgPC9tYXRoPgorICAgIDxtYXRoPgorICAgICAgPG1hY3Rpb24gYWN0aW9u
dHlwZT0idG9nZ2xlIiBzZWxlY3Rpb249IjAiIGlkPSJlNSI+CisgICAgICAgIDxtbj4xPC9tbj4K
KyAgICAgICAgPG1uPjI8L21uPgorICAgICAgICA8bW4+MzwvbW4+CisgICAgICA8L21hY3Rpb24+
CisgICAgPC9tYXRoPgorICAgIDxtYXRoPgorICAgICAgPG1hY3Rpb24gYWN0aW9udHlwZT0idG9n
Z2xlIiBzZWxlY3Rpb249IjQiIGlkPSJlNiI+CisgICAgICAgIDxtbj4xPC9tbj4KKyAgICAgICAg
PG1uPjI8L21uPgorICAgICAgICA8bW4+MzwvbW4+CisgICAgICA8L21hY3Rpb24+CisgICAgPC9t
YXRoPgorICAgIDxtYXRoPgorICAgICAgPG1hY3Rpb24gYWN0aW9udHlwZT0idG9nZ2xlIiBzZWxl
Y3Rpb249IjEwIiBpZD0iZTciPgorICAgICAgICA8bW4+MTwvbW4+CisgICAgICAgIDxtbj4yPC9t
bj4KKyAgICAgICAgPG1uPjM8L21uPgorICAgICAgPC9tYWN0aW9uPgorICAgIDwvbWF0aD4KKyAg
ICA8bWF0aD4KKyAgICAgIDxtYWN0aW9uIGFjdGlvbnR5cGU9InRvZ2dsZSIgc2VsZWN0aW9uPSIm
I3gyMDsmI3g5OyYjeEQ7JiN4QTsyJiN4MjA7JiN4OTsmI3hEOyYjeEE7IiBpZD0iZTgiPgorICAg
ICAgICA8bW4+MTwvbW4+CisgICAgICAgIDxtbj4yPC9tbj4KKyAgICAgICAgPG1uPjM8L21uPgor
ICAgICAgPC9tYWN0aW9uPgorICAgIDwvbWF0aD4KKyAgICA8bWF0aD4KKyAgICAgIDxtYWN0aW9u
IGFjdGlvbnR5cGU9InRvZ2dsZSIgc2VsZWN0aW9uPSJUV08iIGlkPSJlOSI+CisgICAgICAgIDxt
bj4xPC9tbj4KKyAgICAgICAgPG1uPjI8L21uPgorICAgICAgICA8bW4+MzwvbW4+CisgICAgICA8
L21hY3Rpb24+CisgICAgPC9tYXRoPgorICAgIDxtYXRoPgorICAgICAgPCEtLSBUaGVzZSB2YWx1
ZXMgYXJlIGxpbWl0cyBmb3IgMzIgYml0cyBzaWduZWQgaW50ZWdlcnMuCisgICAgICAgICAgIFRo
ZSBtYWN0aW9uIGVsZW1lbnQgd2lsbCBjb252ZXJ0IHRoZW0gdG8gMSBhbmQgMyByZXNwZWN0aXZl
bHkuIC0tPgorICAgICAgPG1hY3Rpb24gYWN0aW9udHlwZT0idG9nZ2xlIiBzZWxlY3Rpb249Ii02
NTUzNiIgaWQ9ImUxMCI+CisgICAgICAgIDxtbj4xPC9tbj4KKyAgICAgICAgPG1uPjI8L21uPgor
ICAgICAgICA8bW4+MzwvbW4+CisgICAgICA8L21hY3Rpb24+CisgICAgICA8bWFjdGlvbiBhY3Rp
b250eXBlPSJ0b2dnbGUiIHNlbGVjdGlvbj0iNjU1MzUiIGlkPSJlMTEiPgorICAgICAgICA8bW4+
MTwvbW4+CisgICAgICAgIDxtbj4yPC9tbj4KKyAgICAgICAgPG1uPjM8L21uPgorICAgICAgPC9t
YWN0aW9uPgorICAgICAgPCEtLSBUaGVzZSB2YWx1ZXMgYXJlIC0xIGFuZCArMSBmb3IgMzIgb3Ig
NjQgYml0cyBzaWduZWQgaW50ZWdlcnMuCisgICAgICAgICAgIFRoZSBtYWN0aW9uIGVsZW1lbnQg
d2lsbCBjb252ZXJ0IGJvdGggb2YgdGhlbSB0byAxLiAtLT4KKyAgICAgIDxtYWN0aW9uIGFjdGlv
bnR5cGU9InRvZ2dsZSIgc2VsZWN0aW9uPSItMTg0NDY3NDQwNzM3MDk1NTE2MTciIGlkPSJlMTIi
PgorICAgICAgICA8bW4+MTwvbW4+CisgICAgICAgIDxtbj4yPC9tbj4KKyAgICAgICAgPG1uPjM8
L21uPgorICAgICAgPC9tYWN0aW9uPgorICAgICAgPG1hY3Rpb24gYWN0aW9udHlwZT0idG9nZ2xl
IiBzZWxlY3Rpb249IjE4NDQ2NzQ0MDczNzA5NTUxNjE3IiBpZD0iZTEzIj4KKyAgICAgICAgPG1u
PjE8L21uPgorICAgICAgICA8bW4+MjwvbW4+CisgICAgICAgIDxtbj4zPC9tbj4KKyAgICAgIDwv
bWFjdGlvbj4KKyAgICA8L21hdGg+CisKKyAgICA8IS0tIE5lc3RlZCA8bWFjdGlvbj4gZWxlbWVu
dHMgOyBidWJibGUgPSBmYWxzZSAtLT4KKyAgICA8bWF0aD4KKyAgICAgIDxtYWN0aW9uIGFjdGlv
bnR5cGU9InRvZ2dsZSI+CisgICAgICAgIDxtYWN0aW9uIGFjdGlvbnR5cGU9InRvZ2dsZSIgaWQ9
Im00Ij4KKyAgICAgICAgICA8bW4+MTwvbW4+CisgICAgICAgICAgPG1uPjI8L21uPgorICAgICAg
ICAgIDxtbj4zPC9tbj4KKyAgICAgICAgPC9tYWN0aW9uPgorICAgICAgICA8bW4+NDwvbW4+Cisg
ICAgICAgIDxtbj41PC9tbj4KKyAgICAgIDwvbWFjdGlvbj4KKyAgICA8L21hdGg+CisKKyAgICA8
IS0tIE5lc3RlZCA8bWFjdGlvbj4gZWxlbWVudHMgOyBidWJibGUgPSB0cnVlIC0tPgorICAgIDxt
YXRoPgorICAgICAgPG1hY3Rpb24gYWN0aW9udHlwZT0idG9nZ2xlIj4KKyAgICAgICAgPG1hY3Rp
b24gYWN0aW9udHlwZT0idG9nZ2xlIiBpZD0ibTUiPgorICAgICAgICAgIDxtbj4xPC9tbj4KKyAg
ICAgICAgICA8bW4+MjwvbW4+CisgICAgICAgICAgPG1uPjM8L21uPgorICAgICAgICA8L21hY3Rp
b24+CisgICAgICAgIDxtbj40PC9tbj4KKyAgICAgICAgPG1uPjU8L21uPgorICAgICAgPC9tYWN0
aW9uPgorICAgIDwvbWF0aD4KKworICAgIDwhLS0gUHJldmVudCBkZWZhdWx0IC0tPgorICAgIDxt
YXRoPgorICAgICAgPG1hY3Rpb24gYWN0aW9udHlwZT0idG9nZ2xlIiBpZD0ibTYiPgorICAgICAg
ICA8bW4+MTwvbW4+CisgICAgICAgIDxtbj4yPC9tbj4KKyAgICAgICAgPG1uPjM8L21uPgorICAg
ICAgPC9tYWN0aW9uPgorICAgIDwvbWF0aD4KKworCisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCA2YjJjMmVmLi45NGIwZmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIw
MTMtMTItMTIgIEZyw6lkw6lyaWMgV2FuZyAgPGZyZWQud2FuZ0BmcmVlLmZyPgorCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciBtYWN0aW9uQHRvZ2dsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIwMDU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogbWF0aG1sL3ByZXNlbnRhdGlvbi9tYWN0aW9u
LXRvZ2dsZS5odG1sCisKKyAgICAgICAgKiBtYXRobWwvTWF0aE1MU2VsZWN0RWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpNYXRoTUxTZWxlY3RFbGVtZW50OjpnZXRTZWxlY3RlZENoaWxk
QW5kSW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6TWF0aE1MU2VsZWN0RWxlbWVudDo6dXBkYXRl
U2VsZWN0ZWRDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpNYXRoTUxTZWxlY3RFbGVtZW50Ojpk
ZWZhdWx0RXZlbnRIYW5kbGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1hdGhNTFNlbGVjdEVsZW1l
bnQ6OndpbGxSZXNwb25kVG9Nb3VzZUNsaWNrRXZlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1h
dGhNTFNlbGVjdEVsZW1lbnQ6OnRvZ2dsZSk6CisgICAgICAgICogbWF0aG1sL01hdGhNTFNlbGVj
dEVsZW1lbnQuaDoKKwogMjAxMy0xMi0xMSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+
CiAKICAgICAgICAgU3R5bGVQZW5kaW5nSW1hZ2UgbmVlZHMgdG8gY29ycmVjdGx5IG1hbmFnZSB0
aGUgQ1NTVmFsdWUgcG9pbnRlciBsaWZldGltZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bWF0aG1sL01hdGhNTFNlbGVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01h
dGhNTFNlbGVjdEVsZW1lbnQuY3BwCmluZGV4IDEwNTk4ZjQuLjhmMjkzZDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxTZWxlY3RFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MU2VsZWN0RWxlbWVudC5jcHAKQEAgLTI5LDYgKzI5LDcg
QEAKICNpZiBFTkFCTEUoTUFUSE1MKQogCiAjaW5jbHVkZSAiTWF0aE1MTmFtZXMuaCIKKyNpbmNs
dWRlICJFdmVudC5oIgogI2luY2x1ZGUgIlJlbmRlck1hdGhNTFJvdy5oIgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CkBAIC03Niw2ICs3NywyNiBAQCB2b2lkIE1hdGhNTFNlbGVjdEVsZW1lbnQ6OmF0
dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbQogICAg
IE1hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgbmV3
VmFsdWUsIHJlYXNvbik7CiB9CiAKK2ludAorTWF0aE1MU2VsZWN0RWxlbWVudDo6Z2V0U2VsZWN0
ZWRDaGlsZEFuZEluZGV4KEVsZW1lbnQqJiBzZWxlY3RlZENoaWxkKQoreworICAgIC8vIFdlICJy
b3VuZCB1cCBvciBkb3duIHRvIHRoZSBjbG9zZXN0IGFsbG93YWJsZSB2YWx1ZSIgb2YgdGhlIHNl
bGVjdGlvbiBhdHRyaWJ1dGUsIGFzIHN1Z2dlc3RlZCBieSB0aGUgTWF0aE1MIHNwZWNpZmljYXRp
b24uCisgICAgc2VsZWN0ZWRDaGlsZCA9IGZpcnN0RWxlbWVudENoaWxkKCk7CisgICAgaWYgKCFz
ZWxlY3RlZENoaWxkKQorICAgICAgICByZXR1cm4gMTsKKworICAgIGludCBzZWxlY3Rpb24gPSBm
YXN0R2V0QXR0cmlidXRlKE1hdGhNTE5hbWVzOjpzZWxlY3Rpb25BdHRyKS50b0ludCgpOworICAg
IGludCBpOworICAgIGZvciAoaSA9IDE7IGkgPCBzZWxlY3Rpb247IGkrKykgeworICAgICAgICBF
bGVtZW50KiBuZXh0Q2hpbGQgPSBzZWxlY3RlZENoaWxkLT5uZXh0RWxlbWVudFNpYmxpbmcoKTsK
KyAgICAgICAgaWYgKCFuZXh0Q2hpbGQpCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgc2Vs
ZWN0ZWRDaGlsZCA9IG5leHRDaGlsZDsKKyAgICB9CisKKyAgICByZXR1cm4gaTsKK30KKwogdm9p
ZCBNYXRoTUxTZWxlY3RFbGVtZW50Ojp1cGRhdGVTZWxlY3RlZENoaWxkKCkKIHsKICAgICBFbGVt
ZW50KiBuZXdTZWxlY3RlZENoaWxkID0gZmlyc3RFbGVtZW50Q2hpbGQoKTsKQEAgLTkxLDE1ICsx
MTIsOCBAQCB2b2lkIE1hdGhNTFNlbGVjdEVsZW1lbnQ6OnVwZGF0ZVNlbGVjdGVkQ2hpbGQoKQog
ICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgdXNlciBpbnRlcmFjdGlvbiBmb3Ig
dGhlICJ0b29sdGlwIiBhY3Rpb24gdHlwZSAoaHR0cDovL3drYnVnLzEyNDkyMSkuCiAgICAgICAg
ICAgICAgICAgeyB9CiAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICAvLyBGSVhN
RTogaW1wbGVtZW50IHVzZXIgaW50ZXJhY3Rpb24gZm9yIHRoZSAidG9nZ2xlIiBhY3Rpb24gdHlw
ZSAoaHR0cDovL3drYnVnLzEyMDA1OSkuCiAgICAgICAgICAgICAgICAgLy8gRm9yIHRoZSAidG9n
Z2xlIiBhY3Rpb24gdHlwZSBvciBhbnkgdW5rbm93biBhY3Rpb24gdHlwZSwgd2UgcmVseSBvbiB0
aGUgdmFsdWUgb2YgdGhlIHNlbGVjdGlvbiBhdHRyaWJ1dGUgdG8gZGV0ZXJtaW5lIHRoZSB2aXNp
YmxlIGNoaWxkLgotICAgICAgICAgICAgICAgIGludCBzZWxlY3Rpb24gPSBmYXN0R2V0QXR0cmli
dXRlKE1hdGhNTE5hbWVzOjpzZWxlY3Rpb25BdHRyKS50b0ludCgpOwotICAgICAgICAgICAgICAg
IGZvciAoaW50IGkgPSAxOyBpIDwgc2VsZWN0aW9uOyBpKyspIHsKLSAgICAgICAgICAgICAgICAg
ICAgRWxlbWVudCogbmV4dENoaWxkID0gbmV3U2VsZWN0ZWRDaGlsZC0+bmV4dEVsZW1lbnRTaWJs
aW5nKCk7Ci0gICAgICAgICAgICAgICAgICAgIGlmICghbmV4dENoaWxkKQotICAgICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIG5ld1NlbGVjdGVkQ2hpbGQg
PSBuZXh0Q2hpbGQ7Ci0gICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGdldFNlbGVj
dGVkQ2hpbGRBbmRJbmRleChuZXdTZWxlY3RlZENoaWxkKTsKICAgICAgICAgICAgIH0KICAgICAg
ICAgfSBlbHNlIHsKICAgICAgICAgICAgIEFTU0VSVChoYXNMb2NhbE5hbWUoc2VtYW50aWNzVGFn
KSk7CkBAIC0xMTcsNiArMTMxLDM5IEBAIHZvaWQgTWF0aE1MU2VsZWN0RWxlbWVudDo6dXBkYXRl
U2VsZWN0ZWRDaGlsZCgpCiAgICAgc2V0TmVlZHNTdHlsZVJlY2FsYygpOwogfQogCit2b2lkIE1h
dGhNTFNlbGVjdEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQorewor
ICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5jbGlja0V2ZW50KSB7CisgICAg
ICAgIGlmIChmYXN0R2V0QXR0cmlidXRlKE1hdGhNTE5hbWVzOjphY3Rpb250eXBlQXR0cikgPT0g
InRvZ2dsZSIpIHsKKyAgICAgICAgICAgIHRvZ2dsZSgpOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CisgICAgfQorCisgICAgTWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudDo6ZGVm
YXVsdEV2ZW50SGFuZGxlcihldmVudCk7Cit9CisKK2Jvb2wgTWF0aE1MU2VsZWN0RWxlbWVudDo6
d2lsbFJlc3BvbmRUb01vdXNlQ2xpY2tFdmVudHMoKQoreworICAgIHJldHVybiB0cnVlOworfQor
Cit2b2lkIE1hdGhNTFNlbGVjdEVsZW1lbnQ6OnRvZ2dsZSgpCit7CisgICAgLy8gV2UgZGV0ZXJt
aW5lIHRoZSBzdWNjZXNzb3Igb2YgdGhlIHNlbGVjdGVkIGNoaWxkLgorICAgIC8vIElmIHdlIHJl
YWNoIHRoZSBlbmQgb2YgdGhlIGNoaWxkIGxpc3QsIHdlIGdvIGJhY2sgdG8gdGhlIGZpcnN0IGNo
aWxkLgorICAgIEVsZW1lbnQqIGNoaWxkOworICAgIGludCBzZWxlY3Rpb24gPSBnZXRTZWxlY3Rl
ZENoaWxkQW5kSW5kZXgoY2hpbGQpOworICAgIGlmICghY2hpbGQgfHwgIWNoaWxkLT5uZXh0RWxl
bWVudFNpYmxpbmcoKSkKKyAgICAgICAgc2VsZWN0aW9uID0gMTsKKyAgICBlbHNlCisgICAgICAg
IHNlbGVjdGlvbisrOworCisgICAgLy8gV2UgdXBkYXRlIHRoZSBhdHRyaWJ1dGUgdmFsdWUgb2Yg
dGhlIHNlbGVjdGlvbiBhdHRyaWJ1dGUuCisgICAgLy8gVGhpcyB3aWxsIGFsc28gY2FsbCBNYXRo
TUxTZWxlY3RFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkIHRvIHVwZGF0ZSB0aGUgc2VsZWN0ZWQg
Y2hpbGQuCisgICAgc2V0QXR0cmlidXRlKE1hdGhNTE5hbWVzOjpzZWxlY3Rpb25BdHRyLCBBdG9t
aWNTdHJpbmc6Om51bWJlcihzZWxlY3Rpb24pKTsKK30KKwogfQogCiAjZW5kaWYgLy8gRU5BQkxF
KE1BVEhNTCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxTZWxlY3RF
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MU2VsZWN0RWxlbWVudC5oCmlu
ZGV4IDZlMDRmYTYuLjg4Y2I3NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9N
YXRoTUxTZWxlY3RFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFNl
bGVjdEVsZW1lbnQuaApAQCAtNDQsNiArNDQsMTEgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZv
aWQgZmluaXNoUGFyc2luZ0NoaWxkcmVuKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGNo
aWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwg
dm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9taWNT
dHJpbmcmLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gPSBNb2RpZmllZERpcmVjdGx5KSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopIE9W
RVJSSURFOworICAgIHZpcnR1YWwgYm9vbCB3aWxsUmVzcG9uZFRvTW91c2VDbGlja0V2ZW50cygp
IE9WRVJSSURFOworCisgICAgdm9pZCB0b2dnbGUoKTsKKyAgICBpbnQgZ2V0U2VsZWN0ZWRDaGls
ZEFuZEluZGV4KEVsZW1lbnQqJiBzZWxlY3RlZENoaWxkKTsKIAogICAgIHZvaWQgdXBkYXRlU2Vs
ZWN0ZWRDaGlsZCgpOwogICAgIEVsZW1lbnQqIG1fc2VsZWN0ZWRDaGlsZDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>219078</attachid>
            <date>2013-12-12 05:53:32 -0800</date>
            <delta_ts>2013-12-12 07:57:21 -0800</delta_ts>
            <desc>Patch (Final Version)</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>13364</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmNzAyMTBkLi5mZjkxMjNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTMtMTIt
MTIgIEZyw6lkw6lyaWMgV2FuZyAgPGZyZWQud2FuZ0BmcmVlLmZyPgorCisgICAgICAgIEFkZCBz
dXBwb3J0IGZvciBtYWN0aW9uQHRvZ2dsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTIwMDU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBtYXRobWwvcHJlc2VudGF0aW9uL21hY3Rpb24tdG9nZ2xlLWV4
cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIG1hdGhtbC9wcmVzZW50YXRpb24vbWFjdGlv
bi10b2dnbGUuaHRtbDogQWRkZWQuCisKIDIwMTMtMTItMTEgIERhcmluIEFkbGVyICA8ZGFyaW5A
YXBwbGUuY29tPgogCiAgICAgICAgIFN0eWxlUGVuZGluZ0ltYWdlIG5lZWRzIHRvIGNvcnJlY3Rs
eSBtYW5hZ2UgdGhlIENTU1ZhbHVlIHBvaW50ZXIgbGlmZXRpbWUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL21hdGhtbC9wcmVzZW50YXRpb24vbWFjdGlvbi10b2dnbGUtZXhwZWN0ZWQuaHRtbCBi
L0xheW91dFRlc3RzL21hdGhtbC9wcmVzZW50YXRpb24vbWFjdGlvbi10b2dnbGUtZXhwZWN0ZWQu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NzFjZjJlCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWF0aG1sL3ByZXNlbnRhdGlvbi9tYWN0aW9uLXRvZ2ds
ZS1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMTExIEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1s
PgorICA8aGVhZD4KKyAgICA8dGl0bGU+bWFjdGlvbiB0b2dnbGU8L3RpdGxlPgorICA8L2hlYWQ+
CisgIDxib2R5PgorCisgICAgPCEtLSBzZWxlY3Rpb249IjEiIChkZWZhdWx0KSA7IHRocmVlIGNs
aWNrcyAtLT4KKyAgICA8bWF0aD4KKyAgICAgIDxtcm93PgorICAgICAgICA8bW4+NDwvbW4+Cisg
ICAgICA8L21yb3c+CisgICAgPC9tYXRoPgorCisgICAgPCEtLSBzZWxlY3Rpb249IjIiIDsgb25l
IGNsaWNrIC0tPgorICAgIDxtYXRoPgorICAgICAgPG1yb3c+CisgICAgICAgIDxtbj4zPC9tbj4K
KyAgICAgIDwvbXJvdz4KKyAgICA8L21hdGg+CisKKyAgICA8IS0tIHNlbGVjdGlvbj0iNCIgKGxh
c3QgY2hpbGQpIDsgb25lIGNsaWNrIC0tPgorICAgIDxtYXRoPgorICAgICAgPG1yb3c+CisgICAg
ICAgIDxtbj4xPC9tbj4KKyAgICAgIDwvbXJvdz4KKyAgICA8L21hdGg+CisKKyAgICA8IS0tIE90
aGVyIGVkZ2UgY2FzZXMgLS0+CisgICAgPG1hdGg+CisgICAgICA8bXJvdz4KKyAgICAgIDwvbXJv
dz4KKyAgICA8L21hdGg+CisgICAgPG1hdGg+CisgICAgICA8bXJvdz4KKyAgICAgICAgPG1uPjE8
L21uPgorICAgICAgPC9tcm93PgorICAgIDwvbWF0aD4KKyAgICA8bWF0aD4KKyAgICAgIDxtcm93
PgorICAgICAgICA8bW4+MjwvbW4+CisgICAgICA8L21yb3c+CisgICAgPC9tYXRoPgorICAgIDxt
YXRoPgorICAgICAgPG1yb3c+CisgICAgICAgIDxtbj4yPC9tbj4KKyAgICAgIDwvbXJvdz4KKyAg
ICA8L21hdGg+CisgICAgPG1hdGg+CisgICAgICA8bXJvdz4KKyAgICAgICAgPG1uPjI8L21uPgor
ICAgICAgPC9tcm93PgorICAgIDwvbWF0aD4KKyAgICA8bWF0aD4KKyAgICAgIDxtcm93PgorICAg
ICAgICA8bW4+MTwvbW4+CisgICAgICA8L21yb3c+CisgICAgPC9tYXRoPgorICAgIDxtYXRoPgor
ICAgICAgPG1yb3c+CisgICAgICAgIDxtbj4xPC9tbj4KKyAgICAgIDwvbXJvdz4KKyAgICA8L21h
dGg+CisgICAgPG1hdGg+CisgICAgICA8bXJvdz4KKyAgICAgICAgPG1uPjM8L21uPgorICAgICAg
PC9tcm93PgorICAgIDwvbWF0aD4KKyAgICA8bWF0aD4KKyAgICAgIDxtcm93PgorICAgICAgICA8
bW4+MjwvbW4+CisgICAgICA8L21yb3c+CisgICAgPC9tYXRoPgorICAgIDxtYXRoPgorICAgICAg
PG1yb3c+CisgICAgICAgIDxtbj4yPC9tbj4KKyAgICAgIDwvbXJvdz4KKyAgICAgIDxtcm93Pgor
ICAgICAgICA8bW4+MTwvbW4+CisgICAgICA8L21yb3c+CisgICAgICA8bXJvdz4KKyAgICAgICAg
PG1uPjI8L21uPgorICAgICAgPC9tcm93PgorICAgICAgPG1yb3c+CisgICAgICAgIDxtbj4yPC9t
bj4KKyAgICAgIDwvbXJvdz4KKyAgICA8L21hdGg+CisKKyAgICA8IS0tIE5lc3RlZCA8bWFjdGlv
bj4gZWxlbWVudHMgOyBidWJibGUgPSBmYWxzZSAtLT4KKyAgICA8bWF0aD4KKyAgICAgIDxtcm93
PgorICAgICAgICA8bW4+MjwvbW4+CisgICAgICA8L21yb3c+CisgICAgPC9tYXRoPgorCisgICAg
PCEtLSBOZXN0ZWQgPG1hY3Rpb24+IGVsZW1lbnRzIDsgYnViYmxlID0gdHJ1ZSAtLT4KKyAgICA8
bWF0aD4KKyAgICAgIDxtcm93PgorICAgICAgICA8bW4+NDwvbW4+CisgICAgICA8L21yb3c+Cisg
ICAgPC9tYXRoPgorCisgICAgPCEtLSBQcmV2ZW50IGRlZmF1bHQgLS0+CisgICAgPG1hdGg+Cisg
ICAgICA8bXJvdz4KKyAgICAgICAgPG1uPjE8L21uPgorICAgICAgPC9tcm93PgorICAgIDwvbWF0
aD4KKworICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tYXRobWwv
cHJlc2VudGF0aW9uL21hY3Rpb24tdG9nZ2xlLmh0bWwgYi9MYXlvdXRUZXN0cy9tYXRobWwvcHJl
c2VudGF0aW9uL21hY3Rpb24tdG9nZ2xlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uMTgzOWU3NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21hdGhtbC9w
cmVzZW50YXRpb24vbWFjdGlvbi10b2dnbGUuaHRtbApAQCAtMCwwICsxLDIwMiBAQAorPCFkb2N0
eXBlIGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPHRpdGxlPm1hY3Rpb24gdG9nZ2xlPC90
aXRsZT4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgICBmdW5jdGlv
biBjbGljayhpZCwgYnViYmxlLCBwcmV2ZW50RGVmYXVsdCkKKyAgICAgIHsKKyAgICAgICAgdmFy
IGV2ZW50ID0gbmV3IE1vdXNlRXZlbnQoJ2NsaWNrJywge2J1YmJsZXM6IGJ1YmJsZSwgY2FuY2Vs
YWJsZTogdHJ1ZX0pOworICAgICAgICBpZiAocHJldmVudERlZmF1bHQpCisgICAgICAgICAgZXZl
bnQucHJldmVudERlZmF1bHQoKTsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQp
LmRpc3BhdGNoRXZlbnQoZXZlbnQpOworICAgICAgfQorICAgICAgZnVuY3Rpb24gdGVzdCgpCisg
ICAgICB7CisgICAgICAgIC8vIHNlbGVjdGlvbj0xIDsgKFsxXSAyIDMgNCkKKyAgICAgICAgLy8g
QWZ0ZXIgdGhyZWUgY2xpY2tzLCBzZWxlY3Rpb249NDogKDEgMiAzIFs0XSkKKyAgICAgICAgY2xp
Y2soJ20xJyk7IGNsaWNrKCdtMScpOyBjbGljaygnbTEnKTsKKworICAgICAgICAvLyBzZWxlY3Rp
b249MiA7ICgxIFsyXSAzIDQpCisgICAgICAgIC8vIEFmdGVyIG9uZSBjbGljaywgc2VsZWN0aW9u
PTM6ICgxIDIgWzNdIDQpCisgICAgICAgIGNsaWNrKCdtMicpOworCisgICAgICAgIC8vIHNlbGVj
dGlvbj00IDsgKDEgMiAzIFs0XSkKKyAgICAgICAgLy8gQWZ0ZXIgb25lIGNsaWNrLCBzZWxlY3Rp
b249MTogKFsxXSAyIDMgNCkKKyAgICAgICAgY2xpY2soJ20zJyk7CisKKyAgICAgICAgLy8gT3Ro
ZXIgZWRnZSBjYXNlcworICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMzsgaSsrKQorICAg
ICAgICAgIGNsaWNrKCdlJytpKTsKKworICAgICAgICAvLyBOZXN0ZWQgbWFjdGlvbiBlbGVtZW50
cywgYnViYmxlID0gZmFsc2UgOyAoWyhbMV0gMiAzKV0gNCA1KQorICAgICAgICAvLyBBZnRlciBv
bmUgY2xpY2sgb24gdGhlIGlubmVyIG1hY3Rpb246IChbKDEgWzJdIDMpXSA0IDUpCisgICAgICAg
IGNsaWNrKCdtNCcsIGZhbHNlKTsKKworICAgICAgICAvLyBOZXN0ZWQgbWFjdGlvbiBlbGVtZW50
cywgYnViYmxlID0gdHJ1ZSA7IChbKFsxXSAyIDMpXSA0IDUpCisgICAgICAgIC8vIEFmdGVyIG9u
ZSBjbGljayBvbiB0aGUgaW5uZXIgbWFjdGlvbjogKCgxIFsyXSAzKSBbNF0gNSkKKyAgICAgICAg
Y2xpY2soJ201JywgdHJ1ZSk7CisKKyAgICAgICAgLy8gUHJldmVudCBkZWZhdWx0IDsgKFsxXSAy
IDMpCisgICAgICAgIC8vIEFmdGVyIG9uZSBjbGljayBvbiB0aGUgaW5uZXIgbWFjdGlvbjogKFsx
XSAyIDMpCisgICAgICAgIGNsaWNrKCdtNicsIGZhbHNlLCB0cnVlKTsKKyAgICAgIH0KKyAgICA8
L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keSBvbmxvYWQ9InRlc3QoKSI+CisKKyAgICA8IS0t
IFRoaXMgdGVzdCB2ZXJpZmllcyB0aGUgZWZmZWN0IG9mIG1vdXNlIGNsaWNrcyBvbiA8bWFjdGlv
biBhY3Rpb250eXBlPSJ0b2dnbGUiPiBlbGVtZW50cy4gLS0+CisKKyAgICA8IS0tIHNlbGVjdGlv
bj0iMSIgKGRlZmF1bHQpIDsgdGhyZWUgY2xpY2tzIC0tPgorICAgIDxtYXRoPgorICAgICAgPG1h
Y3Rpb24gYWN0aW9udHlwZT0idG9nZ2xlIiBpZD0ibTEiPgorICAgICAgICA8bW4+MTwvbW4+Cisg
ICAgICAgIDxtbj4yPC9tbj4KKyAgICAgICAgPG1uPjM8L21uPgorICAgICAgICA8bW4+NDwvbW4+
CisgICAgICA8L21hY3Rpb24+CisgICAgPC9tYXRoPgorCisgICAgPCEtLSBzZWxlY3Rpb249IjIi
IDsgb25lIGNsaWNrIC0tPgorICAgIDxtYXRoPgorICAgICAgPG1hY3Rpb24gYWN0aW9udHlwZT0i
dG9nZ2xlIiBzZWxlY3Rpb249IjIiIGlkPSJtMiI+CisgICAgICAgIDxtbj4xPC9tbj4KKyAgICAg
ICAgPG1uPjI8L21uPgorICAgICAgICA8bW4+MzwvbW4+CisgICAgICAgIDxtbj40PC9tbj4KKyAg
ICAgIDwvbWFjdGlvbj4KKyAgICA8L21hdGg+CisKKyAgICA8IS0tIHNlbGVjdGlvbj0iNCIgKGxh
c3QgY2hpbGQpIDsgb25lIGNsaWNrIC0tPgorICAgIDxtYXRoPgorICAgICAgPG1hY3Rpb24gYWN0
aW9udHlwZT0idG9nZ2xlIiBzZWxlY3Rpb249IjQiIGlkPSJtMyI+CisgICAgICAgIDxtbj4xPC9t
bj4KKyAgICAgICAgPG1uPjI8L21uPgorICAgICAgICA8bW4+MzwvbW4+CisgICAgICAgIDxtbj40
PC9tbj4KKyAgICAgIDwvbWFjdGlvbj4KKyAgICA8L21hdGg+CisKKyAgICA8IS0tIE90aGVyIGVk
Z2UgY2FzZXMgLS0+CisgICAgPG1hdGg+CisgICAgICA8bWFjdGlvbiBhY3Rpb250eXBlPSJ0b2dn
bGUiIGlkPSJlMSI+CisgICAgICA8L21hY3Rpb24+CisgICAgPC9tYXRoPgorICAgIDxtYXRoPgor
ICAgICAgPG1hY3Rpb24gYWN0aW9udHlwZT0idG9nZ2xlIiBpZD0iZTIiPgorICAgICAgICA8bW4+
MTwvbW4+CisgICAgICA8L21hY3Rpb24+CisgICAgPC9tYXRoPgorICAgIDxtYXRoPgorICAgICAg
PG1hY3Rpb24gYWN0aW9udHlwZT0idG9nZ2xlIiBzZWxlY3Rpb249Ii0xMCIgaWQ9ImUzIj4KKyAg
ICAgICAgPG1uPjE8L21uPgorICAgICAgICA8bW4+MjwvbW4+CisgICAgICAgIDxtbj4zPC9tbj4K
KyAgICAgIDwvbWFjdGlvbj4KKyAgICA8L21hdGg+CisgICAgPG1hdGg+CisgICAgICA8bWFjdGlv
biBhY3Rpb250eXBlPSJ0b2dnbGUiIHNlbGVjdGlvbj0iLTEiIGlkPSJlNCI+CisgICAgICAgIDxt
bj4xPC9tbj4KKyAgICAgICAgPG1uPjI8L21uPgorICAgICAgICA8bW4+MzwvbW4+CisgICAgICA8
L21hY3Rpb24+CisgICAgPC9tYXRoPgorICAgIDxtYXRoPgorICAgICAgPG1hY3Rpb24gYWN0aW9u
dHlwZT0idG9nZ2xlIiBzZWxlY3Rpb249IjAiIGlkPSJlNSI+CisgICAgICAgIDxtbj4xPC9tbj4K
KyAgICAgICAgPG1uPjI8L21uPgorICAgICAgICA8bW4+MzwvbW4+CisgICAgICA8L21hY3Rpb24+
CisgICAgPC9tYXRoPgorICAgIDxtYXRoPgorICAgICAgPG1hY3Rpb24gYWN0aW9udHlwZT0idG9n
Z2xlIiBzZWxlY3Rpb249IjQiIGlkPSJlNiI+CisgICAgICAgIDxtbj4xPC9tbj4KKyAgICAgICAg
PG1uPjI8L21uPgorICAgICAgICA8bW4+MzwvbW4+CisgICAgICA8L21hY3Rpb24+CisgICAgPC9t
YXRoPgorICAgIDxtYXRoPgorICAgICAgPG1hY3Rpb24gYWN0aW9udHlwZT0idG9nZ2xlIiBzZWxl
Y3Rpb249IjEwIiBpZD0iZTciPgorICAgICAgICA8bW4+MTwvbW4+CisgICAgICAgIDxtbj4yPC9t
bj4KKyAgICAgICAgPG1uPjM8L21uPgorICAgICAgPC9tYWN0aW9uPgorICAgIDwvbWF0aD4KKyAg
ICA8bWF0aD4KKyAgICAgIDxtYWN0aW9uIGFjdGlvbnR5cGU9InRvZ2dsZSIgc2VsZWN0aW9uPSIm
I3gyMDsmI3g5OyYjeEQ7JiN4QTsyJiN4MjA7JiN4OTsmI3hEOyYjeEE7IiBpZD0iZTgiPgorICAg
ICAgICA8bW4+MTwvbW4+CisgICAgICAgIDxtbj4yPC9tbj4KKyAgICAgICAgPG1uPjM8L21uPgor
ICAgICAgPC9tYWN0aW9uPgorICAgIDwvbWF0aD4KKyAgICA8bWF0aD4KKyAgICAgIDxtYWN0aW9u
IGFjdGlvbnR5cGU9InRvZ2dsZSIgc2VsZWN0aW9uPSJUV08iIGlkPSJlOSI+CisgICAgICAgIDxt
bj4xPC9tbj4KKyAgICAgICAgPG1uPjI8L21uPgorICAgICAgICA8bW4+MzwvbW4+CisgICAgICA8
L21hY3Rpb24+CisgICAgPC9tYXRoPgorICAgIDxtYXRoPgorICAgICAgPCEtLSBUaGVzZSB2YWx1
ZXMgYXJlIGxpbWl0cyBmb3IgMzIgYml0cyBzaWduZWQgaW50ZWdlcnMuCisgICAgICAgICAgIFRo
ZSBtYWN0aW9uIGVsZW1lbnQgd2lsbCBjb252ZXJ0IHRoZW0gdG8gMSBhbmQgMyByZXNwZWN0aXZl
bHkuIC0tPgorICAgICAgPG1hY3Rpb24gYWN0aW9udHlwZT0idG9nZ2xlIiBzZWxlY3Rpb249Ii02
NTUzNiIgaWQ9ImUxMCI+CisgICAgICAgIDxtbj4xPC9tbj4KKyAgICAgICAgPG1uPjI8L21uPgor
ICAgICAgICA8bW4+MzwvbW4+CisgICAgICA8L21hY3Rpb24+CisgICAgICA8bWFjdGlvbiBhY3Rp
b250eXBlPSJ0b2dnbGUiIHNlbGVjdGlvbj0iNjU1MzUiIGlkPSJlMTEiPgorICAgICAgICA8bW4+
MTwvbW4+CisgICAgICAgIDxtbj4yPC9tbj4KKyAgICAgICAgPG1uPjM8L21uPgorICAgICAgPC9t
YWN0aW9uPgorICAgICAgPCEtLSBUaGVzZSB2YWx1ZXMgYXJlIC0xIGFuZCArMSBmb3IgMzIgb3Ig
NjQgYml0cyBzaWduZWQgaW50ZWdlcnMuCisgICAgICAgICAgIFRoZSBtYWN0aW9uIGVsZW1lbnQg
d2lsbCBjb252ZXJ0IGJvdGggb2YgdGhlbSB0byAxLiAtLT4KKyAgICAgIDxtYWN0aW9uIGFjdGlv
bnR5cGU9InRvZ2dsZSIgc2VsZWN0aW9uPSItMTg0NDY3NDQwNzM3MDk1NTE2MTciIGlkPSJlMTIi
PgorICAgICAgICA8bW4+MTwvbW4+CisgICAgICAgIDxtbj4yPC9tbj4KKyAgICAgICAgPG1uPjM8
L21uPgorICAgICAgPC9tYWN0aW9uPgorICAgICAgPG1hY3Rpb24gYWN0aW9udHlwZT0idG9nZ2xl
IiBzZWxlY3Rpb249IjE4NDQ2NzQ0MDczNzA5NTUxNjE3IiBpZD0iZTEzIj4KKyAgICAgICAgPG1u
PjE8L21uPgorICAgICAgICA8bW4+MjwvbW4+CisgICAgICAgIDxtbj4zPC9tbj4KKyAgICAgIDwv
bWFjdGlvbj4KKyAgICA8L21hdGg+CisKKyAgICA8IS0tIE5lc3RlZCA8bWFjdGlvbj4gZWxlbWVu
dHMgOyBidWJibGUgPSBmYWxzZSAtLT4KKyAgICA8bWF0aD4KKyAgICAgIDxtYWN0aW9uIGFjdGlv
bnR5cGU9InRvZ2dsZSI+CisgICAgICAgIDxtYWN0aW9uIGFjdGlvbnR5cGU9InRvZ2dsZSIgaWQ9
Im00Ij4KKyAgICAgICAgICA8bW4+MTwvbW4+CisgICAgICAgICAgPG1uPjI8L21uPgorICAgICAg
ICAgIDxtbj4zPC9tbj4KKyAgICAgICAgPC9tYWN0aW9uPgorICAgICAgICA8bW4+NDwvbW4+Cisg
ICAgICAgIDxtbj41PC9tbj4KKyAgICAgIDwvbWFjdGlvbj4KKyAgICA8L21hdGg+CisKKyAgICA8
IS0tIE5lc3RlZCA8bWFjdGlvbj4gZWxlbWVudHMgOyBidWJibGUgPSB0cnVlIC0tPgorICAgIDxt
YXRoPgorICAgICAgPG1hY3Rpb24gYWN0aW9udHlwZT0idG9nZ2xlIj4KKyAgICAgICAgPG1hY3Rp
b24gYWN0aW9udHlwZT0idG9nZ2xlIiBpZD0ibTUiPgorICAgICAgICAgIDxtbj4xPC9tbj4KKyAg
ICAgICAgICA8bW4+MjwvbW4+CisgICAgICAgICAgPG1uPjM8L21uPgorICAgICAgICA8L21hY3Rp
b24+CisgICAgICAgIDxtbj40PC9tbj4KKyAgICAgICAgPG1uPjU8L21uPgorICAgICAgPC9tYWN0
aW9uPgorICAgIDwvbWF0aD4KKworICAgIDwhLS0gUHJldmVudCBkZWZhdWx0IC0tPgorICAgIDxt
YXRoPgorICAgICAgPG1hY3Rpb24gYWN0aW9udHlwZT0idG9nZ2xlIiBpZD0ibTYiPgorICAgICAg
ICA8bW4+MTwvbW4+CisgICAgICAgIDxtbj4yPC9tbj4KKyAgICAgICAgPG1uPjM8L21uPgorICAg
ICAgPC9tYWN0aW9uPgorICAgIDwvbWF0aD4KKworCisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCA2YjJjMmVmLi45NGIwZmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIw
MTMtMTItMTIgIEZyw6lkw6lyaWMgV2FuZyAgPGZyZWQud2FuZ0BmcmVlLmZyPgorCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciBtYWN0aW9uQHRvZ2dsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIwMDU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogbWF0aG1sL3ByZXNlbnRhdGlvbi9tYWN0aW9u
LXRvZ2dsZS5odG1sCisKKyAgICAgICAgKiBtYXRobWwvTWF0aE1MU2VsZWN0RWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpNYXRoTUxTZWxlY3RFbGVtZW50OjpnZXRTZWxlY3RlZENoaWxk
QW5kSW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6TWF0aE1MU2VsZWN0RWxlbWVudDo6dXBkYXRl
U2VsZWN0ZWRDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpNYXRoTUxTZWxlY3RFbGVtZW50Ojpk
ZWZhdWx0RXZlbnRIYW5kbGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1hdGhNTFNlbGVjdEVsZW1l
bnQ6OndpbGxSZXNwb25kVG9Nb3VzZUNsaWNrRXZlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1h
dGhNTFNlbGVjdEVsZW1lbnQ6OnRvZ2dsZSk6CisgICAgICAgICogbWF0aG1sL01hdGhNTFNlbGVj
dEVsZW1lbnQuaDoKKwogMjAxMy0xMi0xMSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+
CiAKICAgICAgICAgU3R5bGVQZW5kaW5nSW1hZ2UgbmVlZHMgdG8gY29ycmVjdGx5IG1hbmFnZSB0
aGUgQ1NTVmFsdWUgcG9pbnRlciBsaWZldGltZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bWF0aG1sL01hdGhNTFNlbGVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01h
dGhNTFNlbGVjdEVsZW1lbnQuY3BwCmluZGV4IDEwNTk4ZjQuLmZiYWNkZDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxTZWxlY3RFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MU2VsZWN0RWxlbWVudC5jcHAKQEAgLTI4LDYgKzI4LDcg
QEAKIAogI2lmIEVOQUJMRShNQVRITUwpCiAKKyNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUg
Ik1hdGhNTE5hbWVzLmgiCiAjaW5jbHVkZSAiUmVuZGVyTWF0aE1MUm93LmgiCiAKQEAgLTc2LDYg
Kzc3LDI2IEBAIHZvaWQgTWF0aE1MU2VsZWN0RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25z
dCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tCiAgICAgTWF0aE1MSW5saW5lQ29udGFp
bmVyRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBuZXdWYWx1ZSwgcmVhc29uKTsKIH0K
IAoraW50CitNYXRoTUxTZWxlY3RFbGVtZW50OjpnZXRTZWxlY3RlZENoaWxkQW5kSW5kZXgoRWxl
bWVudComIHNlbGVjdGVkQ2hpbGQpCit7CisgICAgLy8gV2UgInJvdW5kIHVwIG9yIGRvd24gdG8g
dGhlIGNsb3Nlc3QgYWxsb3dhYmxlIHZhbHVlIiBvZiB0aGUgc2VsZWN0aW9uIGF0dHJpYnV0ZSwg
YXMgc3VnZ2VzdGVkIGJ5IHRoZSBNYXRoTUwgc3BlY2lmaWNhdGlvbi4KKyAgICBzZWxlY3RlZENo
aWxkID0gZmlyc3RFbGVtZW50Q2hpbGQoKTsKKyAgICBpZiAoIXNlbGVjdGVkQ2hpbGQpCisgICAg
ICAgIHJldHVybiAxOworCisgICAgaW50IHNlbGVjdGlvbiA9IGZhc3RHZXRBdHRyaWJ1dGUoTWF0
aE1MTmFtZXM6OnNlbGVjdGlvbkF0dHIpLnRvSW50KCk7CisgICAgaW50IGk7CisgICAgZm9yIChp
ID0gMTsgaSA8IHNlbGVjdGlvbjsgaSsrKSB7CisgICAgICAgIEVsZW1lbnQqIG5leHRDaGlsZCA9
IHNlbGVjdGVkQ2hpbGQtPm5leHRFbGVtZW50U2libGluZygpOworICAgICAgICBpZiAoIW5leHRD
aGlsZCkKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBzZWxlY3RlZENoaWxkID0gbmV4dENo
aWxkOworICAgIH0KKworICAgIHJldHVybiBpOworfQorCiB2b2lkIE1hdGhNTFNlbGVjdEVsZW1l
bnQ6OnVwZGF0ZVNlbGVjdGVkQ2hpbGQoKQogewogICAgIEVsZW1lbnQqIG5ld1NlbGVjdGVkQ2hp
bGQgPSBmaXJzdEVsZW1lbnRDaGlsZCgpOwpAQCAtOTEsMTUgKzExMiw4IEBAIHZvaWQgTWF0aE1M
U2VsZWN0RWxlbWVudDo6dXBkYXRlU2VsZWN0ZWRDaGlsZCgpCiAgICAgICAgICAgICAgICAgLy8g
RklYTUU6IGltcGxlbWVudCB1c2VyIGludGVyYWN0aW9uIGZvciB0aGUgInRvb2x0aXAiIGFjdGlv
biB0eXBlIChodHRwOi8vd2tidWcvMTI0OTIxKS4KICAgICAgICAgICAgICAgICB7IH0KICAgICAg
ICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgdXNlciBp
bnRlcmFjdGlvbiBmb3IgdGhlICJ0b2dnbGUiIGFjdGlvbiB0eXBlIChodHRwOi8vd2tidWcvMTIw
MDU5KS4KICAgICAgICAgICAgICAgICAvLyBGb3IgdGhlICJ0b2dnbGUiIGFjdGlvbiB0eXBlIG9y
IGFueSB1bmtub3duIGFjdGlvbiB0eXBlLCB3ZSByZWx5IG9uIHRoZSB2YWx1ZSBvZiB0aGUgc2Vs
ZWN0aW9uIGF0dHJpYnV0ZSB0byBkZXRlcm1pbmUgdGhlIHZpc2libGUgY2hpbGQuCi0gICAgICAg
ICAgICAgICAgaW50IHNlbGVjdGlvbiA9IGZhc3RHZXRBdHRyaWJ1dGUoTWF0aE1MTmFtZXM6OnNl
bGVjdGlvbkF0dHIpLnRvSW50KCk7Ci0gICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkg
PCBzZWxlY3Rpb247IGkrKykgewotICAgICAgICAgICAgICAgICAgICBFbGVtZW50KiBuZXh0Q2hp
bGQgPSBuZXdTZWxlY3RlZENoaWxkLT5uZXh0RWxlbWVudFNpYmxpbmcoKTsKLSAgICAgICAgICAg
ICAgICAgICAgaWYgKCFuZXh0Q2hpbGQpCi0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsK
LSAgICAgICAgICAgICAgICAgICAgbmV3U2VsZWN0ZWRDaGlsZCA9IG5leHRDaGlsZDsKLSAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZ2V0U2VsZWN0ZWRDaGlsZEFuZEluZGV4KG5l
d1NlbGVjdGVkQ2hpbGQpOwogICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2UgewogICAgICAg
ICAgICAgQVNTRVJUKGhhc0xvY2FsTmFtZShzZW1hbnRpY3NUYWcpKTsKQEAgLTExNyw2ICsxMzEs
MzkgQEAgdm9pZCBNYXRoTUxTZWxlY3RFbGVtZW50Ojp1cGRhdGVTZWxlY3RlZENoaWxkKCkKICAg
ICBzZXROZWVkc1N0eWxlUmVjYWxjKCk7CiB9CiAKK3ZvaWQgTWF0aE1MU2VsZWN0RWxlbWVudDo6
ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCit7CisgICAgaWYgKGV2ZW50LT50eXBl
KCkgPT0gZXZlbnROYW1lcygpLmNsaWNrRXZlbnQpIHsKKyAgICAgICAgaWYgKGZhc3RHZXRBdHRy
aWJ1dGUoTWF0aE1MTmFtZXM6OmFjdGlvbnR5cGVBdHRyKSA9PSAidG9nZ2xlIikgeworICAgICAg
ICAgICAgdG9nZ2xlKCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisK
KyAgICBNYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKGV2
ZW50KTsKK30KKworYm9vbCBNYXRoTUxTZWxlY3RFbGVtZW50Ojp3aWxsUmVzcG9uZFRvTW91c2VD
bGlja0V2ZW50cygpCit7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgTWF0aE1MU2VsZWN0
RWxlbWVudDo6dG9nZ2xlKCkKK3sKKyAgICAvLyBXZSBkZXRlcm1pbmUgdGhlIHN1Y2Nlc3NvciBv
ZiB0aGUgc2VsZWN0ZWQgY2hpbGQuCisgICAgLy8gSWYgd2UgcmVhY2ggdGhlIGVuZCBvZiB0aGUg
Y2hpbGQgbGlzdCwgd2UgZ28gYmFjayB0byB0aGUgZmlyc3QgY2hpbGQuCisgICAgRWxlbWVudCog
Y2hpbGQ7CisgICAgaW50IHNlbGVjdGlvbiA9IGdldFNlbGVjdGVkQ2hpbGRBbmRJbmRleChjaGls
ZCk7CisgICAgaWYgKCFjaGlsZCB8fCAhY2hpbGQtPm5leHRFbGVtZW50U2libGluZygpKQorICAg
ICAgICBzZWxlY3Rpb24gPSAxOworICAgIGVsc2UKKyAgICAgICAgc2VsZWN0aW9uKys7CisKKyAg
ICAvLyBXZSB1cGRhdGUgdGhlIGF0dHJpYnV0ZSB2YWx1ZSBvZiB0aGUgc2VsZWN0aW9uIGF0dHJp
YnV0ZS4KKyAgICAvLyBUaGlzIHdpbGwgYWxzbyBjYWxsIE1hdGhNTFNlbGVjdEVsZW1lbnQ6OmF0
dHJpYnV0ZUNoYW5nZWQgdG8gdXBkYXRlIHRoZSBzZWxlY3RlZCBjaGlsZC4KKyAgICBzZXRBdHRy
aWJ1dGUoTWF0aE1MTmFtZXM6OnNlbGVjdGlvbkF0dHIsIEF0b21pY1N0cmluZzo6bnVtYmVyKHNl
bGVjdGlvbikpOworfQorCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoTUFUSE1MKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFNlbGVjdEVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL21hdGhtbC9NYXRoTUxTZWxlY3RFbGVtZW50LmgKaW5kZXggNmUwNGZhNi4uODhjYjc1
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFNlbGVjdEVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MU2VsZWN0RWxlbWVudC5oCkBAIC00
NCw2ICs0NCwxMSBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBmaW5pc2hQYXJzaW5nQ2hp
bGRyZW4oKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGNvbnN0
IENoaWxkQ2hhbmdlJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGF0dHJpYnV0ZUNoYW5n
ZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYsIEF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbiA9IE1vZGlmaWVkRGlyZWN0bHkpIE9WRVJSSURFOworICAgIHZpcnR1
YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KikgT1ZFUlJJREU7CisgICAgdmlydHVh
bCBib29sIHdpbGxSZXNwb25kVG9Nb3VzZUNsaWNrRXZlbnRzKCkgT1ZFUlJJREU7CisKKyAgICB2
b2lkIHRvZ2dsZSgpOworICAgIGludCBnZXRTZWxlY3RlZENoaWxkQW5kSW5kZXgoRWxlbWVudCom
IHNlbGVjdGVkQ2hpbGQpOwogCiAgICAgdm9pZCB1cGRhdGVTZWxlY3RlZENoaWxkKCk7CiAgICAg
RWxlbWVudCogbV9zZWxlY3RlZENoaWxkOwo=
</data>
<flag name="review"
          id="242669"
          type_id="1"
          status="+"
          setter="darin"
    />
    <flag name="commit-queue"
          id="242670"
          type_id="3"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>219085</attachid>
            <date>2013-12-12 07:57:21 -0800</date>
            <delta_ts>2013-12-15 22:03:00 -0800</delta_ts>
            <desc>Patch (Final Version)</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>13363</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmNzAyMTBkLi5mZjkxMjNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTMtMTIt
MTIgIEZyw6lkw6lyaWMgV2FuZyAgPGZyZWQud2FuZ0BmcmVlLmZyPgorCisgICAgICAgIEFkZCBz
dXBwb3J0IGZvciBtYWN0aW9uQHRvZ2dsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTIwMDU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBtYXRobWwvcHJlc2VudGF0aW9uL21hY3Rpb24tdG9nZ2xlLWV4
cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIG1hdGhtbC9wcmVzZW50YXRpb24vbWFjdGlv
bi10b2dnbGUuaHRtbDogQWRkZWQuCisKIDIwMTMtMTItMTEgIERhcmluIEFkbGVyICA8ZGFyaW5A
YXBwbGUuY29tPgogCiAgICAgICAgIFN0eWxlUGVuZGluZ0ltYWdlIG5lZWRzIHRvIGNvcnJlY3Rs
eSBtYW5hZ2UgdGhlIENTU1ZhbHVlIHBvaW50ZXIgbGlmZXRpbWUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL21hdGhtbC9wcmVzZW50YXRpb24vbWFjdGlvbi10b2dnbGUtZXhwZWN0ZWQuaHRtbCBi
L0xheW91dFRlc3RzL21hdGhtbC9wcmVzZW50YXRpb24vbWFjdGlvbi10b2dnbGUtZXhwZWN0ZWQu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NzFjZjJlCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWF0aG1sL3ByZXNlbnRhdGlvbi9tYWN0aW9uLXRvZ2ds
ZS1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMTExIEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1s
PgorICA8aGVhZD4KKyAgICA8dGl0bGU+bWFjdGlvbiB0b2dnbGU8L3RpdGxlPgorICA8L2hlYWQ+
CisgIDxib2R5PgorCisgICAgPCEtLSBzZWxlY3Rpb249IjEiIChkZWZhdWx0KSA7IHRocmVlIGNs
aWNrcyAtLT4KKyAgICA8bWF0aD4KKyAgICAgIDxtcm93PgorICAgICAgICA8bW4+NDwvbW4+Cisg
ICAgICA8L21yb3c+CisgICAgPC9tYXRoPgorCisgICAgPCEtLSBzZWxlY3Rpb249IjIiIDsgb25l
IGNsaWNrIC0tPgorICAgIDxtYXRoPgorICAgICAgPG1yb3c+CisgICAgICAgIDxtbj4zPC9tbj4K
KyAgICAgIDwvbXJvdz4KKyAgICA8L21hdGg+CisKKyAgICA8IS0tIHNlbGVjdGlvbj0iNCIgKGxh
c3QgY2hpbGQpIDsgb25lIGNsaWNrIC0tPgorICAgIDxtYXRoPgorICAgICAgPG1yb3c+CisgICAg
ICAgIDxtbj4xPC9tbj4KKyAgICAgIDwvbXJvdz4KKyAgICA8L21hdGg+CisKKyAgICA8IS0tIE90
aGVyIGVkZ2UgY2FzZXMgLS0+CisgICAgPG1hdGg+CisgICAgICA8bXJvdz4KKyAgICAgIDwvbXJv
dz4KKyAgICA8L21hdGg+CisgICAgPG1hdGg+CisgICAgICA8bXJvdz4KKyAgICAgICAgPG1uPjE8
L21uPgorICAgICAgPC9tcm93PgorICAgIDwvbWF0aD4KKyAgICA8bWF0aD4KKyAgICAgIDxtcm93
PgorICAgICAgICA8bW4+MjwvbW4+CisgICAgICA8L21yb3c+CisgICAgPC9tYXRoPgorICAgIDxt
YXRoPgorICAgICAgPG1yb3c+CisgICAgICAgIDxtbj4yPC9tbj4KKyAgICAgIDwvbXJvdz4KKyAg
ICA8L21hdGg+CisgICAgPG1hdGg+CisgICAgICA8bXJvdz4KKyAgICAgICAgPG1uPjI8L21uPgor
ICAgICAgPC9tcm93PgorICAgIDwvbWF0aD4KKyAgICA8bWF0aD4KKyAgICAgIDxtcm93PgorICAg
ICAgICA8bW4+MTwvbW4+CisgICAgICA8L21yb3c+CisgICAgPC9tYXRoPgorICAgIDxtYXRoPgor
ICAgICAgPG1yb3c+CisgICAgICAgIDxtbj4xPC9tbj4KKyAgICAgIDwvbXJvdz4KKyAgICA8L21h
dGg+CisgICAgPG1hdGg+CisgICAgICA8bXJvdz4KKyAgICAgICAgPG1uPjM8L21uPgorICAgICAg
PC9tcm93PgorICAgIDwvbWF0aD4KKyAgICA8bWF0aD4KKyAgICAgIDxtcm93PgorICAgICAgICA8
bW4+MjwvbW4+CisgICAgICA8L21yb3c+CisgICAgPC9tYXRoPgorICAgIDxtYXRoPgorICAgICAg
PG1yb3c+CisgICAgICAgIDxtbj4yPC9tbj4KKyAgICAgIDwvbXJvdz4KKyAgICAgIDxtcm93Pgor
ICAgICAgICA8bW4+MTwvbW4+CisgICAgICA8L21yb3c+CisgICAgICA8bXJvdz4KKyAgICAgICAg
PG1uPjI8L21uPgorICAgICAgPC9tcm93PgorICAgICAgPG1yb3c+CisgICAgICAgIDxtbj4yPC9t
bj4KKyAgICAgIDwvbXJvdz4KKyAgICA8L21hdGg+CisKKyAgICA8IS0tIE5lc3RlZCA8bWFjdGlv
bj4gZWxlbWVudHMgOyBidWJibGUgPSBmYWxzZSAtLT4KKyAgICA8bWF0aD4KKyAgICAgIDxtcm93
PgorICAgICAgICA8bW4+MjwvbW4+CisgICAgICA8L21yb3c+CisgICAgPC9tYXRoPgorCisgICAg
PCEtLSBOZXN0ZWQgPG1hY3Rpb24+IGVsZW1lbnRzIDsgYnViYmxlID0gdHJ1ZSAtLT4KKyAgICA8
bWF0aD4KKyAgICAgIDxtcm93PgorICAgICAgICA8bW4+NDwvbW4+CisgICAgICA8L21yb3c+Cisg
ICAgPC9tYXRoPgorCisgICAgPCEtLSBQcmV2ZW50IGRlZmF1bHQgLS0+CisgICAgPG1hdGg+Cisg
ICAgICA8bXJvdz4KKyAgICAgICAgPG1uPjE8L21uPgorICAgICAgPC9tcm93PgorICAgIDwvbWF0
aD4KKworICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tYXRobWwv
cHJlc2VudGF0aW9uL21hY3Rpb24tdG9nZ2xlLmh0bWwgYi9MYXlvdXRUZXN0cy9tYXRobWwvcHJl
c2VudGF0aW9uL21hY3Rpb24tdG9nZ2xlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uMTgzOWU3NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21hdGhtbC9w
cmVzZW50YXRpb24vbWFjdGlvbi10b2dnbGUuaHRtbApAQCAtMCwwICsxLDIwMiBAQAorPCFkb2N0
eXBlIGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPHRpdGxlPm1hY3Rpb24gdG9nZ2xlPC90
aXRsZT4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgICBmdW5jdGlv
biBjbGljayhpZCwgYnViYmxlLCBwcmV2ZW50RGVmYXVsdCkKKyAgICAgIHsKKyAgICAgICAgdmFy
IGV2ZW50ID0gbmV3IE1vdXNlRXZlbnQoJ2NsaWNrJywge2J1YmJsZXM6IGJ1YmJsZSwgY2FuY2Vs
YWJsZTogdHJ1ZX0pOworICAgICAgICBpZiAocHJldmVudERlZmF1bHQpCisgICAgICAgICAgZXZl
bnQucHJldmVudERlZmF1bHQoKTsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQp
LmRpc3BhdGNoRXZlbnQoZXZlbnQpOworICAgICAgfQorICAgICAgZnVuY3Rpb24gdGVzdCgpCisg
ICAgICB7CisgICAgICAgIC8vIHNlbGVjdGlvbj0xIDsgKFsxXSAyIDMgNCkKKyAgICAgICAgLy8g
QWZ0ZXIgdGhyZWUgY2xpY2tzLCBzZWxlY3Rpb249NDogKDEgMiAzIFs0XSkKKyAgICAgICAgY2xp
Y2soJ20xJyk7IGNsaWNrKCdtMScpOyBjbGljaygnbTEnKTsKKworICAgICAgICAvLyBzZWxlY3Rp
b249MiA7ICgxIFsyXSAzIDQpCisgICAgICAgIC8vIEFmdGVyIG9uZSBjbGljaywgc2VsZWN0aW9u
PTM6ICgxIDIgWzNdIDQpCisgICAgICAgIGNsaWNrKCdtMicpOworCisgICAgICAgIC8vIHNlbGVj
dGlvbj00IDsgKDEgMiAzIFs0XSkKKyAgICAgICAgLy8gQWZ0ZXIgb25lIGNsaWNrLCBzZWxlY3Rp
b249MTogKFsxXSAyIDMgNCkKKyAgICAgICAgY2xpY2soJ20zJyk7CisKKyAgICAgICAgLy8gT3Ro
ZXIgZWRnZSBjYXNlcworICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMzsgaSsrKQorICAg
ICAgICAgIGNsaWNrKCdlJytpKTsKKworICAgICAgICAvLyBOZXN0ZWQgbWFjdGlvbiBlbGVtZW50
cywgYnViYmxlID0gZmFsc2UgOyAoWyhbMV0gMiAzKV0gNCA1KQorICAgICAgICAvLyBBZnRlciBv
bmUgY2xpY2sgb24gdGhlIGlubmVyIG1hY3Rpb246IChbKDEgWzJdIDMpXSA0IDUpCisgICAgICAg
IGNsaWNrKCdtNCcsIGZhbHNlKTsKKworICAgICAgICAvLyBOZXN0ZWQgbWFjdGlvbiBlbGVtZW50
cywgYnViYmxlID0gdHJ1ZSA7IChbKFsxXSAyIDMpXSA0IDUpCisgICAgICAgIC8vIEFmdGVyIG9u
ZSBjbGljayBvbiB0aGUgaW5uZXIgbWFjdGlvbjogKCgxIFsyXSAzKSBbNF0gNSkKKyAgICAgICAg
Y2xpY2soJ201JywgdHJ1ZSk7CisKKyAgICAgICAgLy8gUHJldmVudCBkZWZhdWx0IDsgKFsxXSAy
IDMpCisgICAgICAgIC8vIEFmdGVyIG9uZSBjbGljayBvbiB0aGUgaW5uZXIgbWFjdGlvbjogKFsx
XSAyIDMpCisgICAgICAgIGNsaWNrKCdtNicsIGZhbHNlLCB0cnVlKTsKKyAgICAgIH0KKyAgICA8
L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keSBvbmxvYWQ9InRlc3QoKSI+CisKKyAgICA8IS0t
IFRoaXMgdGVzdCB2ZXJpZmllcyB0aGUgZWZmZWN0IG9mIG1vdXNlIGNsaWNrcyBvbiA8bWFjdGlv
biBhY3Rpb250eXBlPSJ0b2dnbGUiPiBlbGVtZW50cy4gLS0+CisKKyAgICA8IS0tIHNlbGVjdGlv
bj0iMSIgKGRlZmF1bHQpIDsgdGhyZWUgY2xpY2tzIC0tPgorICAgIDxtYXRoPgorICAgICAgPG1h
Y3Rpb24gYWN0aW9udHlwZT0idG9nZ2xlIiBpZD0ibTEiPgorICAgICAgICA8bW4+MTwvbW4+Cisg
ICAgICAgIDxtbj4yPC9tbj4KKyAgICAgICAgPG1uPjM8L21uPgorICAgICAgICA8bW4+NDwvbW4+
CisgICAgICA8L21hY3Rpb24+CisgICAgPC9tYXRoPgorCisgICAgPCEtLSBzZWxlY3Rpb249IjIi
IDsgb25lIGNsaWNrIC0tPgorICAgIDxtYXRoPgorICAgICAgPG1hY3Rpb24gYWN0aW9udHlwZT0i
dG9nZ2xlIiBzZWxlY3Rpb249IjIiIGlkPSJtMiI+CisgICAgICAgIDxtbj4xPC9tbj4KKyAgICAg
ICAgPG1uPjI8L21uPgorICAgICAgICA8bW4+MzwvbW4+CisgICAgICAgIDxtbj40PC9tbj4KKyAg
ICAgIDwvbWFjdGlvbj4KKyAgICA8L21hdGg+CisKKyAgICA8IS0tIHNlbGVjdGlvbj0iNCIgKGxh
c3QgY2hpbGQpIDsgb25lIGNsaWNrIC0tPgorICAgIDxtYXRoPgorICAgICAgPG1hY3Rpb24gYWN0
aW9udHlwZT0idG9nZ2xlIiBzZWxlY3Rpb249IjQiIGlkPSJtMyI+CisgICAgICAgIDxtbj4xPC9t
bj4KKyAgICAgICAgPG1uPjI8L21uPgorICAgICAgICA8bW4+MzwvbW4+CisgICAgICAgIDxtbj40
PC9tbj4KKyAgICAgIDwvbWFjdGlvbj4KKyAgICA8L21hdGg+CisKKyAgICA8IS0tIE90aGVyIGVk
Z2UgY2FzZXMgLS0+CisgICAgPG1hdGg+CisgICAgICA8bWFjdGlvbiBhY3Rpb250eXBlPSJ0b2dn
bGUiIGlkPSJlMSI+CisgICAgICA8L21hY3Rpb24+CisgICAgPC9tYXRoPgorICAgIDxtYXRoPgor
ICAgICAgPG1hY3Rpb24gYWN0aW9udHlwZT0idG9nZ2xlIiBpZD0iZTIiPgorICAgICAgICA8bW4+
MTwvbW4+CisgICAgICA8L21hY3Rpb24+CisgICAgPC9tYXRoPgorICAgIDxtYXRoPgorICAgICAg
PG1hY3Rpb24gYWN0aW9udHlwZT0idG9nZ2xlIiBzZWxlY3Rpb249Ii0xMCIgaWQ9ImUzIj4KKyAg
ICAgICAgPG1uPjE8L21uPgorICAgICAgICA8bW4+MjwvbW4+CisgICAgICAgIDxtbj4zPC9tbj4K
KyAgICAgIDwvbWFjdGlvbj4KKyAgICA8L21hdGg+CisgICAgPG1hdGg+CisgICAgICA8bWFjdGlv
biBhY3Rpb250eXBlPSJ0b2dnbGUiIHNlbGVjdGlvbj0iLTEiIGlkPSJlNCI+CisgICAgICAgIDxt
bj4xPC9tbj4KKyAgICAgICAgPG1uPjI8L21uPgorICAgICAgICA8bW4+MzwvbW4+CisgICAgICA8
L21hY3Rpb24+CisgICAgPC9tYXRoPgorICAgIDxtYXRoPgorICAgICAgPG1hY3Rpb24gYWN0aW9u
dHlwZT0idG9nZ2xlIiBzZWxlY3Rpb249IjAiIGlkPSJlNSI+CisgICAgICAgIDxtbj4xPC9tbj4K
KyAgICAgICAgPG1uPjI8L21uPgorICAgICAgICA8bW4+MzwvbW4+CisgICAgICA8L21hY3Rpb24+
CisgICAgPC9tYXRoPgorICAgIDxtYXRoPgorICAgICAgPG1hY3Rpb24gYWN0aW9udHlwZT0idG9n
Z2xlIiBzZWxlY3Rpb249IjQiIGlkPSJlNiI+CisgICAgICAgIDxtbj4xPC9tbj4KKyAgICAgICAg
PG1uPjI8L21uPgorICAgICAgICA8bW4+MzwvbW4+CisgICAgICA8L21hY3Rpb24+CisgICAgPC9t
YXRoPgorICAgIDxtYXRoPgorICAgICAgPG1hY3Rpb24gYWN0aW9udHlwZT0idG9nZ2xlIiBzZWxl
Y3Rpb249IjEwIiBpZD0iZTciPgorICAgICAgICA8bW4+MTwvbW4+CisgICAgICAgIDxtbj4yPC9t
bj4KKyAgICAgICAgPG1uPjM8L21uPgorICAgICAgPC9tYWN0aW9uPgorICAgIDwvbWF0aD4KKyAg
ICA8bWF0aD4KKyAgICAgIDxtYWN0aW9uIGFjdGlvbnR5cGU9InRvZ2dsZSIgc2VsZWN0aW9uPSIm
I3gyMDsmI3g5OyYjeEQ7JiN4QTsyJiN4MjA7JiN4OTsmI3hEOyYjeEE7IiBpZD0iZTgiPgorICAg
ICAgICA8bW4+MTwvbW4+CisgICAgICAgIDxtbj4yPC9tbj4KKyAgICAgICAgPG1uPjM8L21uPgor
ICAgICAgPC9tYWN0aW9uPgorICAgIDwvbWF0aD4KKyAgICA8bWF0aD4KKyAgICAgIDxtYWN0aW9u
IGFjdGlvbnR5cGU9InRvZ2dsZSIgc2VsZWN0aW9uPSJUV08iIGlkPSJlOSI+CisgICAgICAgIDxt
bj4xPC9tbj4KKyAgICAgICAgPG1uPjI8L21uPgorICAgICAgICA8bW4+MzwvbW4+CisgICAgICA8
L21hY3Rpb24+CisgICAgPC9tYXRoPgorICAgIDxtYXRoPgorICAgICAgPCEtLSBUaGVzZSB2YWx1
ZXMgYXJlIGxpbWl0cyBmb3IgMzIgYml0cyBzaWduZWQgaW50ZWdlcnMuCisgICAgICAgICAgIFRo
ZSBtYWN0aW9uIGVsZW1lbnQgd2lsbCBjb252ZXJ0IHRoZW0gdG8gMSBhbmQgMyByZXNwZWN0aXZl
bHkuIC0tPgorICAgICAgPG1hY3Rpb24gYWN0aW9udHlwZT0idG9nZ2xlIiBzZWxlY3Rpb249Ii02
NTUzNiIgaWQ9ImUxMCI+CisgICAgICAgIDxtbj4xPC9tbj4KKyAgICAgICAgPG1uPjI8L21uPgor
ICAgICAgICA8bW4+MzwvbW4+CisgICAgICA8L21hY3Rpb24+CisgICAgICA8bWFjdGlvbiBhY3Rp
b250eXBlPSJ0b2dnbGUiIHNlbGVjdGlvbj0iNjU1MzUiIGlkPSJlMTEiPgorICAgICAgICA8bW4+
MTwvbW4+CisgICAgICAgIDxtbj4yPC9tbj4KKyAgICAgICAgPG1uPjM8L21uPgorICAgICAgPC9t
YWN0aW9uPgorICAgICAgPCEtLSBUaGVzZSB2YWx1ZXMgYXJlIC0xIGFuZCArMSBmb3IgMzIgb3Ig
NjQgYml0cyBzaWduZWQgaW50ZWdlcnMuCisgICAgICAgICAgIFRoZSBtYWN0aW9uIGVsZW1lbnQg
d2lsbCBjb252ZXJ0IGJvdGggb2YgdGhlbSB0byAxLiAtLT4KKyAgICAgIDxtYWN0aW9uIGFjdGlv
bnR5cGU9InRvZ2dsZSIgc2VsZWN0aW9uPSItMTg0NDY3NDQwNzM3MDk1NTE2MTciIGlkPSJlMTIi
PgorICAgICAgICA8bW4+MTwvbW4+CisgICAgICAgIDxtbj4yPC9tbj4KKyAgICAgICAgPG1uPjM8
L21uPgorICAgICAgPC9tYWN0aW9uPgorICAgICAgPG1hY3Rpb24gYWN0aW9udHlwZT0idG9nZ2xl
IiBzZWxlY3Rpb249IjE4NDQ2NzQ0MDczNzA5NTUxNjE3IiBpZD0iZTEzIj4KKyAgICAgICAgPG1u
PjE8L21uPgorICAgICAgICA8bW4+MjwvbW4+CisgICAgICAgIDxtbj4zPC9tbj4KKyAgICAgIDwv
bWFjdGlvbj4KKyAgICA8L21hdGg+CisKKyAgICA8IS0tIE5lc3RlZCA8bWFjdGlvbj4gZWxlbWVu
dHMgOyBidWJibGUgPSBmYWxzZSAtLT4KKyAgICA8bWF0aD4KKyAgICAgIDxtYWN0aW9uIGFjdGlv
bnR5cGU9InRvZ2dsZSI+CisgICAgICAgIDxtYWN0aW9uIGFjdGlvbnR5cGU9InRvZ2dsZSIgaWQ9
Im00Ij4KKyAgICAgICAgICA8bW4+MTwvbW4+CisgICAgICAgICAgPG1uPjI8L21uPgorICAgICAg
ICAgIDxtbj4zPC9tbj4KKyAgICAgICAgPC9tYWN0aW9uPgorICAgICAgICA8bW4+NDwvbW4+Cisg
ICAgICAgIDxtbj41PC9tbj4KKyAgICAgIDwvbWFjdGlvbj4KKyAgICA8L21hdGg+CisKKyAgICA8
IS0tIE5lc3RlZCA8bWFjdGlvbj4gZWxlbWVudHMgOyBidWJibGUgPSB0cnVlIC0tPgorICAgIDxt
YXRoPgorICAgICAgPG1hY3Rpb24gYWN0aW9udHlwZT0idG9nZ2xlIj4KKyAgICAgICAgPG1hY3Rp
b24gYWN0aW9udHlwZT0idG9nZ2xlIiBpZD0ibTUiPgorICAgICAgICAgIDxtbj4xPC9tbj4KKyAg
ICAgICAgICA8bW4+MjwvbW4+CisgICAgICAgICAgPG1uPjM8L21uPgorICAgICAgICA8L21hY3Rp
b24+CisgICAgICAgIDxtbj40PC9tbj4KKyAgICAgICAgPG1uPjU8L21uPgorICAgICAgPC9tYWN0
aW9uPgorICAgIDwvbWF0aD4KKworICAgIDwhLS0gUHJldmVudCBkZWZhdWx0IC0tPgorICAgIDxt
YXRoPgorICAgICAgPG1hY3Rpb24gYWN0aW9udHlwZT0idG9nZ2xlIiBpZD0ibTYiPgorICAgICAg
ICA8bW4+MTwvbW4+CisgICAgICAgIDxtbj4yPC9tbj4KKyAgICAgICAgPG1uPjM8L21uPgorICAg
ICAgPC9tYWN0aW9uPgorICAgIDwvbWF0aD4KKworCisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCA2YjJjMmVmLi45NGIwZmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIw
MTMtMTItMTIgIEZyw6lkw6lyaWMgV2FuZyAgPGZyZWQud2FuZ0BmcmVlLmZyPgorCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciBtYWN0aW9uQHRvZ2dsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIwMDU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogbWF0aG1sL3ByZXNlbnRhdGlvbi9tYWN0aW9u
LXRvZ2dsZS5odG1sCisKKyAgICAgICAgKiBtYXRobWwvTWF0aE1MU2VsZWN0RWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpNYXRoTUxTZWxlY3RFbGVtZW50OjpnZXRTZWxlY3RlZENoaWxk
QW5kSW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6TWF0aE1MU2VsZWN0RWxlbWVudDo6dXBkYXRl
U2VsZWN0ZWRDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpNYXRoTUxTZWxlY3RFbGVtZW50Ojpk
ZWZhdWx0RXZlbnRIYW5kbGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1hdGhNTFNlbGVjdEVsZW1l
bnQ6OndpbGxSZXNwb25kVG9Nb3VzZUNsaWNrRXZlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1h
dGhNTFNlbGVjdEVsZW1lbnQ6OnRvZ2dsZSk6CisgICAgICAgICogbWF0aG1sL01hdGhNTFNlbGVj
dEVsZW1lbnQuaDoKKwogMjAxMy0xMi0xMSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+
CiAKICAgICAgICAgU3R5bGVQZW5kaW5nSW1hZ2UgbmVlZHMgdG8gY29ycmVjdGx5IG1hbmFnZSB0
aGUgQ1NTVmFsdWUgcG9pbnRlciBsaWZldGltZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bWF0aG1sL01hdGhNTFNlbGVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01h
dGhNTFNlbGVjdEVsZW1lbnQuY3BwCmluZGV4IDEwNTk4ZjQuLjRjMTI1YzQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxTZWxlY3RFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MU2VsZWN0RWxlbWVudC5jcHAKQEAgLTI4LDYgKzI4LDcg
QEAKIAogI2lmIEVOQUJMRShNQVRITUwpCiAKKyNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUg
Ik1hdGhNTE5hbWVzLmgiCiAjaW5jbHVkZSAiUmVuZGVyTWF0aE1MUm93LmgiCiAKQEAgLTc2LDYg
Kzc3LDI1IEBAIHZvaWQgTWF0aE1MU2VsZWN0RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25z
dCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tCiAgICAgTWF0aE1MSW5saW5lQ29udGFp
bmVyRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBuZXdWYWx1ZSwgcmVhc29uKTsKIH0K
IAoraW50IE1hdGhNTFNlbGVjdEVsZW1lbnQ6OmdldFNlbGVjdGVkQ2hpbGRBbmRJbmRleChFbGVt
ZW50KiYgc2VsZWN0ZWRDaGlsZCkKK3sKKyAgICAvLyBXZSAicm91bmQgdXAgb3IgZG93biB0byB0
aGUgY2xvc2VzdCBhbGxvd2FibGUgdmFsdWUiIG9mIHRoZSBzZWxlY3Rpb24gYXR0cmlidXRlLCBh
cyBzdWdnZXN0ZWQgYnkgdGhlIE1hdGhNTCBzcGVjaWZpY2F0aW9uLgorICAgIHNlbGVjdGVkQ2hp
bGQgPSBmaXJzdEVsZW1lbnRDaGlsZCgpOworICAgIGlmICghc2VsZWN0ZWRDaGlsZCkKKyAgICAg
ICAgcmV0dXJuIDE7CisKKyAgICBpbnQgc2VsZWN0aW9uID0gZmFzdEdldEF0dHJpYnV0ZShNYXRo
TUxOYW1lczo6c2VsZWN0aW9uQXR0cikudG9JbnQoKTsKKyAgICBpbnQgaTsKKyAgICBmb3IgKGkg
PSAxOyBpIDwgc2VsZWN0aW9uOyBpKyspIHsKKyAgICAgICAgRWxlbWVudCogbmV4dENoaWxkID0g
c2VsZWN0ZWRDaGlsZC0+bmV4dEVsZW1lbnRTaWJsaW5nKCk7CisgICAgICAgIGlmICghbmV4dENo
aWxkKQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIHNlbGVjdGVkQ2hpbGQgPSBuZXh0Q2hp
bGQ7CisgICAgfQorCisgICAgcmV0dXJuIGk7Cit9CisKIHZvaWQgTWF0aE1MU2VsZWN0RWxlbWVu
dDo6dXBkYXRlU2VsZWN0ZWRDaGlsZCgpCiB7CiAgICAgRWxlbWVudCogbmV3U2VsZWN0ZWRDaGls
ZCA9IGZpcnN0RWxlbWVudENoaWxkKCk7CkBAIC05MSwxNSArMTExLDggQEAgdm9pZCBNYXRoTUxT
ZWxlY3RFbGVtZW50Ojp1cGRhdGVTZWxlY3RlZENoaWxkKCkKICAgICAgICAgICAgICAgICAvLyBG
SVhNRTogaW1wbGVtZW50IHVzZXIgaW50ZXJhY3Rpb24gZm9yIHRoZSAidG9vbHRpcCIgYWN0aW9u
IHR5cGUgKGh0dHA6Ly93a2J1Zy8xMjQ5MjEpLgogICAgICAgICAgICAgICAgIHsgfQogICAgICAg
ICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgLy8gRklYTUU6IGltcGxlbWVudCB1c2VyIGlu
dGVyYWN0aW9uIGZvciB0aGUgInRvZ2dsZSIgYWN0aW9uIHR5cGUgKGh0dHA6Ly93a2J1Zy8xMjAw
NTkpLgogICAgICAgICAgICAgICAgIC8vIEZvciB0aGUgInRvZ2dsZSIgYWN0aW9uIHR5cGUgb3Ig
YW55IHVua25vd24gYWN0aW9uIHR5cGUsIHdlIHJlbHkgb24gdGhlIHZhbHVlIG9mIHRoZSBzZWxl
Y3Rpb24gYXR0cmlidXRlIHRvIGRldGVybWluZSB0aGUgdmlzaWJsZSBjaGlsZC4KLSAgICAgICAg
ICAgICAgICBpbnQgc2VsZWN0aW9uID0gZmFzdEdldEF0dHJpYnV0ZShNYXRoTUxOYW1lczo6c2Vs
ZWN0aW9uQXR0cikudG9JbnQoKTsKLSAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8
IHNlbGVjdGlvbjsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgICAgIEVsZW1lbnQqIG5leHRDaGls
ZCA9IG5ld1NlbGVjdGVkQ2hpbGQtPm5leHRFbGVtZW50U2libGluZygpOwotICAgICAgICAgICAg
ICAgICAgICBpZiAoIW5leHRDaGlsZCkKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICAgICAgICAgICAgICBuZXdTZWxlY3RlZENoaWxkID0gbmV4dENoaWxkOwotICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBnZXRTZWxlY3RlZENoaWxkQW5kSW5kZXgobmV3
U2VsZWN0ZWRDaGlsZCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAg
ICAgICBBU1NFUlQoaGFzTG9jYWxOYW1lKHNlbWFudGljc1RhZykpOwpAQCAtMTE3LDYgKzEzMCwz
OSBAQCB2b2lkIE1hdGhNTFNlbGVjdEVsZW1lbnQ6OnVwZGF0ZVNlbGVjdGVkQ2hpbGQoKQogICAg
IHNldE5lZWRzU3R5bGVSZWNhbGMoKTsKIH0KIAordm9pZCBNYXRoTUxTZWxlY3RFbGVtZW50Ojpk
ZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKK3sKKyAgICBpZiAoZXZlbnQtPnR5cGUo
KSA9PSBldmVudE5hbWVzKCkuY2xpY2tFdmVudCkgeworICAgICAgICBpZiAoZmFzdEdldEF0dHJp
YnV0ZShNYXRoTUxOYW1lczo6YWN0aW9udHlwZUF0dHIpID09ICJ0b2dnbGUiKSB7CisgICAgICAg
ICAgICB0b2dnbGUoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKwor
ICAgIE1hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoZXZl
bnQpOworfQorCitib29sIE1hdGhNTFNlbGVjdEVsZW1lbnQ6OndpbGxSZXNwb25kVG9Nb3VzZUNs
aWNrRXZlbnRzKCkKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBNYXRoTUxTZWxlY3RF
bGVtZW50Ojp0b2dnbGUoKQoreworICAgIC8vIFdlIGRldGVybWluZSB0aGUgc3VjY2Vzc29yIG9m
IHRoZSBzZWxlY3RlZCBjaGlsZC4KKyAgICAvLyBJZiB3ZSByZWFjaCB0aGUgZW5kIG9mIHRoZSBj
aGlsZCBsaXN0LCB3ZSBnbyBiYWNrIHRvIHRoZSBmaXJzdCBjaGlsZC4KKyAgICBFbGVtZW50KiBj
aGlsZDsKKyAgICBpbnQgc2VsZWN0aW9uID0gZ2V0U2VsZWN0ZWRDaGlsZEFuZEluZGV4KGNoaWxk
KTsKKyAgICBpZiAoIWNoaWxkIHx8ICFjaGlsZC0+bmV4dEVsZW1lbnRTaWJsaW5nKCkpCisgICAg
ICAgIHNlbGVjdGlvbiA9IDE7CisgICAgZWxzZQorICAgICAgICBzZWxlY3Rpb24rKzsKKworICAg
IC8vIFdlIHVwZGF0ZSB0aGUgYXR0cmlidXRlIHZhbHVlIG9mIHRoZSBzZWxlY3Rpb24gYXR0cmli
dXRlLgorICAgIC8vIFRoaXMgd2lsbCBhbHNvIGNhbGwgTWF0aE1MU2VsZWN0RWxlbWVudDo6YXR0
cmlidXRlQ2hhbmdlZCB0byB1cGRhdGUgdGhlIHNlbGVjdGVkIGNoaWxkLgorICAgIHNldEF0dHJp
YnV0ZShNYXRoTUxOYW1lczo6c2VsZWN0aW9uQXR0ciwgQXRvbWljU3RyaW5nOjpudW1iZXIoc2Vs
ZWN0aW9uKSk7Cit9CisKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShNQVRITUwpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MU2VsZWN0RWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvbWF0aG1sL01hdGhNTFNlbGVjdEVsZW1lbnQuaAppbmRleCA2ZTA0ZmE2Li44OGNiNzU1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MU2VsZWN0RWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxTZWxlY3RFbGVtZW50LmgKQEAgLTQ0
LDYgKzQ0LDExIEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGZpbmlzaFBhcnNpbmdDaGls
ZHJlbigpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQoY29uc3Qg
Q2hpbGRDaGFuZ2UmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgYXR0cmlidXRlQ2hhbmdl
ZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbWljU3RyaW5nJiwgQXR0cmlidXRlTW9k
aWZpY2F0aW9uUmVhc29uID0gTW9kaWZpZWREaXJlY3RseSkgT1ZFUlJJREU7CisgICAgdmlydHVh
bCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IGJvb2wgd2lsbFJlc3BvbmRUb01vdXNlQ2xpY2tFdmVudHMoKSBPVkVSUklERTsKKworICAgIHZv
aWQgdG9nZ2xlKCk7CisgICAgaW50IGdldFNlbGVjdGVkQ2hpbGRBbmRJbmRleChFbGVtZW50KiYg
c2VsZWN0ZWRDaGlsZCk7CiAKICAgICB2b2lkIHVwZGF0ZVNlbGVjdGVkQ2hpbGQoKTsKICAgICBF
bGVtZW50KiBtX3NlbGVjdGVkQ2hpbGQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>219296</attachid>
            <date>2013-12-15 22:03:00 -0800</date>
            <delta_ts>2013-12-15 22:50:26 -0800</delta_ts>
            <desc>Patch (Final Version)</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>13373</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmNzAyMTBkLi5mZjkxMjNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTMtMTIt
MTIgIEZyw6lkw6lyaWMgV2FuZyAgPGZyZWQud2FuZ0BmcmVlLmZyPgorCisgICAgICAgIEFkZCBz
dXBwb3J0IGZvciBtYWN0aW9uQHRvZ2dsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTIwMDU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBtYXRobWwvcHJlc2VudGF0aW9uL21hY3Rpb24tdG9nZ2xlLWV4
cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIG1hdGhtbC9wcmVzZW50YXRpb24vbWFjdGlv
bi10b2dnbGUuaHRtbDogQWRkZWQuCisKIDIwMTMtMTItMTEgIERhcmluIEFkbGVyICA8ZGFyaW5A
YXBwbGUuY29tPgogCiAgICAgICAgIFN0eWxlUGVuZGluZ0ltYWdlIG5lZWRzIHRvIGNvcnJlY3Rs
eSBtYW5hZ2UgdGhlIENTU1ZhbHVlIHBvaW50ZXIgbGlmZXRpbWUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL21hdGhtbC9wcmVzZW50YXRpb24vbWFjdGlvbi10b2dnbGUtZXhwZWN0ZWQuaHRtbCBi
L0xheW91dFRlc3RzL21hdGhtbC9wcmVzZW50YXRpb24vbWFjdGlvbi10b2dnbGUtZXhwZWN0ZWQu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NzFjZjJlCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWF0aG1sL3ByZXNlbnRhdGlvbi9tYWN0aW9uLXRvZ2ds
ZS1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMTExIEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1s
PgorICA8aGVhZD4KKyAgICA8dGl0bGU+bWFjdGlvbiB0b2dnbGU8L3RpdGxlPgorICA8L2hlYWQ+
CisgIDxib2R5PgorCisgICAgPCEtLSBzZWxlY3Rpb249IjEiIChkZWZhdWx0KSA7IHRocmVlIGNs
aWNrcyAtLT4KKyAgICA8bWF0aD4KKyAgICAgIDxtcm93PgorICAgICAgICA8bW4+NDwvbW4+Cisg
ICAgICA8L21yb3c+CisgICAgPC9tYXRoPgorCisgICAgPCEtLSBzZWxlY3Rpb249IjIiIDsgb25l
IGNsaWNrIC0tPgorICAgIDxtYXRoPgorICAgICAgPG1yb3c+CisgICAgICAgIDxtbj4zPC9tbj4K
KyAgICAgIDwvbXJvdz4KKyAgICA8L21hdGg+CisKKyAgICA8IS0tIHNlbGVjdGlvbj0iNCIgKGxh
c3QgY2hpbGQpIDsgb25lIGNsaWNrIC0tPgorICAgIDxtYXRoPgorICAgICAgPG1yb3c+CisgICAg
ICAgIDxtbj4xPC9tbj4KKyAgICAgIDwvbXJvdz4KKyAgICA8L21hdGg+CisKKyAgICA8IS0tIE90
aGVyIGVkZ2UgY2FzZXMgLS0+CisgICAgPG1hdGg+CisgICAgICA8bXJvdz4KKyAgICAgIDwvbXJv
dz4KKyAgICA8L21hdGg+CisgICAgPG1hdGg+CisgICAgICA8bXJvdz4KKyAgICAgICAgPG1uPjE8
L21uPgorICAgICAgPC9tcm93PgorICAgIDwvbWF0aD4KKyAgICA8bWF0aD4KKyAgICAgIDxtcm93
PgorICAgICAgICA8bW4+MjwvbW4+CisgICAgICA8L21yb3c+CisgICAgPC9tYXRoPgorICAgIDxt
YXRoPgorICAgICAgPG1yb3c+CisgICAgICAgIDxtbj4yPC9tbj4KKyAgICAgIDwvbXJvdz4KKyAg
ICA8L21hdGg+CisgICAgPG1hdGg+CisgICAgICA8bXJvdz4KKyAgICAgICAgPG1uPjI8L21uPgor
ICAgICAgPC9tcm93PgorICAgIDwvbWF0aD4KKyAgICA8bWF0aD4KKyAgICAgIDxtcm93PgorICAg
ICAgICA8bW4+MTwvbW4+CisgICAgICA8L21yb3c+CisgICAgPC9tYXRoPgorICAgIDxtYXRoPgor
ICAgICAgPG1yb3c+CisgICAgICAgIDxtbj4xPC9tbj4KKyAgICAgIDwvbXJvdz4KKyAgICA8L21h
dGg+CisgICAgPG1hdGg+CisgICAgICA8bXJvdz4KKyAgICAgICAgPG1uPjM8L21uPgorICAgICAg
PC9tcm93PgorICAgIDwvbWF0aD4KKyAgICA8bWF0aD4KKyAgICAgIDxtcm93PgorICAgICAgICA8
bW4+MjwvbW4+CisgICAgICA8L21yb3c+CisgICAgPC9tYXRoPgorICAgIDxtYXRoPgorICAgICAg
PG1yb3c+CisgICAgICAgIDxtbj4yPC9tbj4KKyAgICAgIDwvbXJvdz4KKyAgICAgIDxtcm93Pgor
ICAgICAgICA8bW4+MTwvbW4+CisgICAgICA8L21yb3c+CisgICAgICA8bXJvdz4KKyAgICAgICAg
PG1uPjI8L21uPgorICAgICAgPC9tcm93PgorICAgICAgPG1yb3c+CisgICAgICAgIDxtbj4yPC9t
bj4KKyAgICAgIDwvbXJvdz4KKyAgICA8L21hdGg+CisKKyAgICA8IS0tIE5lc3RlZCA8bWFjdGlv
bj4gZWxlbWVudHMgOyBidWJibGUgPSBmYWxzZSAtLT4KKyAgICA8bWF0aD4KKyAgICAgIDxtcm93
PgorICAgICAgICA8bW4+MjwvbW4+CisgICAgICA8L21yb3c+CisgICAgPC9tYXRoPgorCisgICAg
PCEtLSBOZXN0ZWQgPG1hY3Rpb24+IGVsZW1lbnRzIDsgYnViYmxlID0gdHJ1ZSAtLT4KKyAgICA8
bWF0aD4KKyAgICAgIDxtcm93PgorICAgICAgICA8bW4+NDwvbW4+CisgICAgICA8L21yb3c+Cisg
ICAgPC9tYXRoPgorCisgICAgPCEtLSBQcmV2ZW50IGRlZmF1bHQgLS0+CisgICAgPG1hdGg+Cisg
ICAgICA8bXJvdz4KKyAgICAgICAgPG1uPjE8L21uPgorICAgICAgPC9tcm93PgorICAgIDwvbWF0
aD4KKworICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tYXRobWwv
cHJlc2VudGF0aW9uL21hY3Rpb24tdG9nZ2xlLmh0bWwgYi9MYXlvdXRUZXN0cy9tYXRobWwvcHJl
c2VudGF0aW9uL21hY3Rpb24tdG9nZ2xlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uMTgzOWU3NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21hdGhtbC9w
cmVzZW50YXRpb24vbWFjdGlvbi10b2dnbGUuaHRtbApAQCAtMCwwICsxLDIwMiBAQAorPCFkb2N0
eXBlIGh0bWw+Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPHRpdGxlPm1hY3Rpb24gdG9nZ2xlPC90
aXRsZT4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgICBmdW5jdGlv
biBjbGljayhpZCwgYnViYmxlLCBwcmV2ZW50RGVmYXVsdCkKKyAgICAgIHsKKyAgICAgICAgdmFy
IGV2ZW50ID0gbmV3IE1vdXNlRXZlbnQoJ2NsaWNrJywge2J1YmJsZXM6IGJ1YmJsZSwgY2FuY2Vs
YWJsZTogdHJ1ZX0pOworICAgICAgICBpZiAocHJldmVudERlZmF1bHQpCisgICAgICAgICAgZXZl
bnQucHJldmVudERlZmF1bHQoKTsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQp
LmRpc3BhdGNoRXZlbnQoZXZlbnQpOworICAgICAgfQorICAgICAgZnVuY3Rpb24gdGVzdCgpCisg
ICAgICB7CisgICAgICAgIC8vIHNlbGVjdGlvbj0xIDsgKFsxXSAyIDMgNCkKKyAgICAgICAgLy8g
QWZ0ZXIgdGhyZWUgY2xpY2tzLCBzZWxlY3Rpb249NDogKDEgMiAzIFs0XSkKKyAgICAgICAgY2xp
Y2soJ20xJyk7IGNsaWNrKCdtMScpOyBjbGljaygnbTEnKTsKKworICAgICAgICAvLyBzZWxlY3Rp
b249MiA7ICgxIFsyXSAzIDQpCisgICAgICAgIC8vIEFmdGVyIG9uZSBjbGljaywgc2VsZWN0aW9u
PTM6ICgxIDIgWzNdIDQpCisgICAgICAgIGNsaWNrKCdtMicpOworCisgICAgICAgIC8vIHNlbGVj
dGlvbj00IDsgKDEgMiAzIFs0XSkKKyAgICAgICAgLy8gQWZ0ZXIgb25lIGNsaWNrLCBzZWxlY3Rp
b249MTogKFsxXSAyIDMgNCkKKyAgICAgICAgY2xpY2soJ20zJyk7CisKKyAgICAgICAgLy8gT3Ro
ZXIgZWRnZSBjYXNlcworICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSAxMzsgaSsrKQorICAg
ICAgICAgIGNsaWNrKCdlJytpKTsKKworICAgICAgICAvLyBOZXN0ZWQgbWFjdGlvbiBlbGVtZW50
cywgYnViYmxlID0gZmFsc2UgOyAoWyhbMV0gMiAzKV0gNCA1KQorICAgICAgICAvLyBBZnRlciBv
bmUgY2xpY2sgb24gdGhlIGlubmVyIG1hY3Rpb246IChbKDEgWzJdIDMpXSA0IDUpCisgICAgICAg
IGNsaWNrKCdtNCcsIGZhbHNlKTsKKworICAgICAgICAvLyBOZXN0ZWQgbWFjdGlvbiBlbGVtZW50
cywgYnViYmxlID0gdHJ1ZSA7IChbKFsxXSAyIDMpXSA0IDUpCisgICAgICAgIC8vIEFmdGVyIG9u
ZSBjbGljayBvbiB0aGUgaW5uZXIgbWFjdGlvbjogKCgxIFsyXSAzKSBbNF0gNSkKKyAgICAgICAg
Y2xpY2soJ201JywgdHJ1ZSk7CisKKyAgICAgICAgLy8gUHJldmVudCBkZWZhdWx0IDsgKFsxXSAy
IDMpCisgICAgICAgIC8vIEFmdGVyIG9uZSBjbGljayBvbiB0aGUgaW5uZXIgbWFjdGlvbjogKFsx
XSAyIDMpCisgICAgICAgIGNsaWNrKCdtNicsIGZhbHNlLCB0cnVlKTsKKyAgICAgIH0KKyAgICA8
L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keSBvbmxvYWQ9InRlc3QoKSI+CisKKyAgICA8IS0t
IFRoaXMgdGVzdCB2ZXJpZmllcyB0aGUgZWZmZWN0IG9mIG1vdXNlIGNsaWNrcyBvbiA8bWFjdGlv
biBhY3Rpb250eXBlPSJ0b2dnbGUiPiBlbGVtZW50cy4gLS0+CisKKyAgICA8IS0tIHNlbGVjdGlv
bj0iMSIgKGRlZmF1bHQpIDsgdGhyZWUgY2xpY2tzIC0tPgorICAgIDxtYXRoPgorICAgICAgPG1h
Y3Rpb24gYWN0aW9udHlwZT0idG9nZ2xlIiBpZD0ibTEiPgorICAgICAgICA8bW4+MTwvbW4+Cisg
ICAgICAgIDxtbj4yPC9tbj4KKyAgICAgICAgPG1uPjM8L21uPgorICAgICAgICA8bW4+NDwvbW4+
CisgICAgICA8L21hY3Rpb24+CisgICAgPC9tYXRoPgorCisgICAgPCEtLSBzZWxlY3Rpb249IjIi
IDsgb25lIGNsaWNrIC0tPgorICAgIDxtYXRoPgorICAgICAgPG1hY3Rpb24gYWN0aW9udHlwZT0i
dG9nZ2xlIiBzZWxlY3Rpb249IjIiIGlkPSJtMiI+CisgICAgICAgIDxtbj4xPC9tbj4KKyAgICAg
ICAgPG1uPjI8L21uPgorICAgICAgICA8bW4+MzwvbW4+CisgICAgICAgIDxtbj40PC9tbj4KKyAg
ICAgIDwvbWFjdGlvbj4KKyAgICA8L21hdGg+CisKKyAgICA8IS0tIHNlbGVjdGlvbj0iNCIgKGxh
c3QgY2hpbGQpIDsgb25lIGNsaWNrIC0tPgorICAgIDxtYXRoPgorICAgICAgPG1hY3Rpb24gYWN0
aW9udHlwZT0idG9nZ2xlIiBzZWxlY3Rpb249IjQiIGlkPSJtMyI+CisgICAgICAgIDxtbj4xPC9t
bj4KKyAgICAgICAgPG1uPjI8L21uPgorICAgICAgICA8bW4+MzwvbW4+CisgICAgICAgIDxtbj40
PC9tbj4KKyAgICAgIDwvbWFjdGlvbj4KKyAgICA8L21hdGg+CisKKyAgICA8IS0tIE90aGVyIGVk
Z2UgY2FzZXMgLS0+CisgICAgPG1hdGg+CisgICAgICA8bWFjdGlvbiBhY3Rpb250eXBlPSJ0b2dn
bGUiIGlkPSJlMSI+CisgICAgICA8L21hY3Rpb24+CisgICAgPC9tYXRoPgorICAgIDxtYXRoPgor
ICAgICAgPG1hY3Rpb24gYWN0aW9udHlwZT0idG9nZ2xlIiBpZD0iZTIiPgorICAgICAgICA8bW4+
MTwvbW4+CisgICAgICA8L21hY3Rpb24+CisgICAgPC9tYXRoPgorICAgIDxtYXRoPgorICAgICAg
PG1hY3Rpb24gYWN0aW9udHlwZT0idG9nZ2xlIiBzZWxlY3Rpb249Ii0xMCIgaWQ9ImUzIj4KKyAg
ICAgICAgPG1uPjE8L21uPgorICAgICAgICA8bW4+MjwvbW4+CisgICAgICAgIDxtbj4zPC9tbj4K
KyAgICAgIDwvbWFjdGlvbj4KKyAgICA8L21hdGg+CisgICAgPG1hdGg+CisgICAgICA8bWFjdGlv
biBhY3Rpb250eXBlPSJ0b2dnbGUiIHNlbGVjdGlvbj0iLTEiIGlkPSJlNCI+CisgICAgICAgIDxt
bj4xPC9tbj4KKyAgICAgICAgPG1uPjI8L21uPgorICAgICAgICA8bW4+MzwvbW4+CisgICAgICA8
L21hY3Rpb24+CisgICAgPC9tYXRoPgorICAgIDxtYXRoPgorICAgICAgPG1hY3Rpb24gYWN0aW9u
dHlwZT0idG9nZ2xlIiBzZWxlY3Rpb249IjAiIGlkPSJlNSI+CisgICAgICAgIDxtbj4xPC9tbj4K
KyAgICAgICAgPG1uPjI8L21uPgorICAgICAgICA8bW4+MzwvbW4+CisgICAgICA8L21hY3Rpb24+
CisgICAgPC9tYXRoPgorICAgIDxtYXRoPgorICAgICAgPG1hY3Rpb24gYWN0aW9udHlwZT0idG9n
Z2xlIiBzZWxlY3Rpb249IjQiIGlkPSJlNiI+CisgICAgICAgIDxtbj4xPC9tbj4KKyAgICAgICAg
PG1uPjI8L21uPgorICAgICAgICA8bW4+MzwvbW4+CisgICAgICA8L21hY3Rpb24+CisgICAgPC9t
YXRoPgorICAgIDxtYXRoPgorICAgICAgPG1hY3Rpb24gYWN0aW9udHlwZT0idG9nZ2xlIiBzZWxl
Y3Rpb249IjEwIiBpZD0iZTciPgorICAgICAgICA8bW4+MTwvbW4+CisgICAgICAgIDxtbj4yPC9t
bj4KKyAgICAgICAgPG1uPjM8L21uPgorICAgICAgPC9tYWN0aW9uPgorICAgIDwvbWF0aD4KKyAg
ICA8bWF0aD4KKyAgICAgIDxtYWN0aW9uIGFjdGlvbnR5cGU9InRvZ2dsZSIgc2VsZWN0aW9uPSIm
I3gyMDsmI3g5OyYjeEQ7JiN4QTsyJiN4MjA7JiN4OTsmI3hEOyYjeEE7IiBpZD0iZTgiPgorICAg
ICAgICA8bW4+MTwvbW4+CisgICAgICAgIDxtbj4yPC9tbj4KKyAgICAgICAgPG1uPjM8L21uPgor
ICAgICAgPC9tYWN0aW9uPgorICAgIDwvbWF0aD4KKyAgICA8bWF0aD4KKyAgICAgIDxtYWN0aW9u
IGFjdGlvbnR5cGU9InRvZ2dsZSIgc2VsZWN0aW9uPSJUV08iIGlkPSJlOSI+CisgICAgICAgIDxt
bj4xPC9tbj4KKyAgICAgICAgPG1uPjI8L21uPgorICAgICAgICA8bW4+MzwvbW4+CisgICAgICA8
L21hY3Rpb24+CisgICAgPC9tYXRoPgorICAgIDxtYXRoPgorICAgICAgPCEtLSBUaGVzZSB2YWx1
ZXMgYXJlIGxpbWl0cyBmb3IgMzIgYml0cyBzaWduZWQgaW50ZWdlcnMuCisgICAgICAgICAgIFRo
ZSBtYWN0aW9uIGVsZW1lbnQgd2lsbCBjb252ZXJ0IHRoZW0gdG8gMSBhbmQgMyByZXNwZWN0aXZl
bHkuIC0tPgorICAgICAgPG1hY3Rpb24gYWN0aW9udHlwZT0idG9nZ2xlIiBzZWxlY3Rpb249Ii02
NTUzNiIgaWQ9ImUxMCI+CisgICAgICAgIDxtbj4xPC9tbj4KKyAgICAgICAgPG1uPjI8L21uPgor
ICAgICAgICA8bW4+MzwvbW4+CisgICAgICA8L21hY3Rpb24+CisgICAgICA8bWFjdGlvbiBhY3Rp
b250eXBlPSJ0b2dnbGUiIHNlbGVjdGlvbj0iNjU1MzUiIGlkPSJlMTEiPgorICAgICAgICA8bW4+
MTwvbW4+CisgICAgICAgIDxtbj4yPC9tbj4KKyAgICAgICAgPG1uPjM8L21uPgorICAgICAgPC9t
YWN0aW9uPgorICAgICAgPCEtLSBUaGVzZSB2YWx1ZXMgYXJlIC0xIGFuZCArMSBmb3IgMzIgb3Ig
NjQgYml0cyBzaWduZWQgaW50ZWdlcnMuCisgICAgICAgICAgIFRoZSBtYWN0aW9uIGVsZW1lbnQg
d2lsbCBjb252ZXJ0IGJvdGggb2YgdGhlbSB0byAxLiAtLT4KKyAgICAgIDxtYWN0aW9uIGFjdGlv
bnR5cGU9InRvZ2dsZSIgc2VsZWN0aW9uPSItMTg0NDY3NDQwNzM3MDk1NTE2MTciIGlkPSJlMTIi
PgorICAgICAgICA8bW4+MTwvbW4+CisgICAgICAgIDxtbj4yPC9tbj4KKyAgICAgICAgPG1uPjM8
L21uPgorICAgICAgPC9tYWN0aW9uPgorICAgICAgPG1hY3Rpb24gYWN0aW9udHlwZT0idG9nZ2xl
IiBzZWxlY3Rpb249IjE4NDQ2NzQ0MDczNzA5NTUxNjE3IiBpZD0iZTEzIj4KKyAgICAgICAgPG1u
PjE8L21uPgorICAgICAgICA8bW4+MjwvbW4+CisgICAgICAgIDxtbj4zPC9tbj4KKyAgICAgIDwv
bWFjdGlvbj4KKyAgICA8L21hdGg+CisKKyAgICA8IS0tIE5lc3RlZCA8bWFjdGlvbj4gZWxlbWVu
dHMgOyBidWJibGUgPSBmYWxzZSAtLT4KKyAgICA8bWF0aD4KKyAgICAgIDxtYWN0aW9uIGFjdGlv
bnR5cGU9InRvZ2dsZSI+CisgICAgICAgIDxtYWN0aW9uIGFjdGlvbnR5cGU9InRvZ2dsZSIgaWQ9
Im00Ij4KKyAgICAgICAgICA8bW4+MTwvbW4+CisgICAgICAgICAgPG1uPjI8L21uPgorICAgICAg
ICAgIDxtbj4zPC9tbj4KKyAgICAgICAgPC9tYWN0aW9uPgorICAgICAgICA8bW4+NDwvbW4+Cisg
ICAgICAgIDxtbj41PC9tbj4KKyAgICAgIDwvbWFjdGlvbj4KKyAgICA8L21hdGg+CisKKyAgICA8
IS0tIE5lc3RlZCA8bWFjdGlvbj4gZWxlbWVudHMgOyBidWJibGUgPSB0cnVlIC0tPgorICAgIDxt
YXRoPgorICAgICAgPG1hY3Rpb24gYWN0aW9udHlwZT0idG9nZ2xlIj4KKyAgICAgICAgPG1hY3Rp
b24gYWN0aW9udHlwZT0idG9nZ2xlIiBpZD0ibTUiPgorICAgICAgICAgIDxtbj4xPC9tbj4KKyAg
ICAgICAgICA8bW4+MjwvbW4+CisgICAgICAgICAgPG1uPjM8L21uPgorICAgICAgICA8L21hY3Rp
b24+CisgICAgICAgIDxtbj40PC9tbj4KKyAgICAgICAgPG1uPjU8L21uPgorICAgICAgPC9tYWN0
aW9uPgorICAgIDwvbWF0aD4KKworICAgIDwhLS0gUHJldmVudCBkZWZhdWx0IC0tPgorICAgIDxt
YXRoPgorICAgICAgPG1hY3Rpb24gYWN0aW9udHlwZT0idG9nZ2xlIiBpZD0ibTYiPgorICAgICAg
ICA8bW4+MTwvbW4+CisgICAgICAgIDxtbj4yPC9tbj4KKyAgICAgICAgPG1uPjM8L21uPgorICAg
ICAgPC9tYWN0aW9uPgorICAgIDwvbWF0aD4KKworCisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCA2YjJjMmVmLi45NGIwZmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIw
MTMtMTItMTIgIEZyw6lkw6lyaWMgV2FuZyAgPGZyZWQud2FuZ0BmcmVlLmZyPgorCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciBtYWN0aW9uQHRvZ2dsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIwMDU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogbWF0aG1sL3ByZXNlbnRhdGlvbi9tYWN0aW9u
LXRvZ2dsZS5odG1sCisKKyAgICAgICAgKiBtYXRobWwvTWF0aE1MU2VsZWN0RWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpNYXRoTUxTZWxlY3RFbGVtZW50OjpnZXRTZWxlY3RlZENoaWxk
QW5kSW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6TWF0aE1MU2VsZWN0RWxlbWVudDo6dXBkYXRl
U2VsZWN0ZWRDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpNYXRoTUxTZWxlY3RFbGVtZW50Ojpk
ZWZhdWx0RXZlbnRIYW5kbGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1hdGhNTFNlbGVjdEVsZW1l
bnQ6OndpbGxSZXNwb25kVG9Nb3VzZUNsaWNrRXZlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1h
dGhNTFNlbGVjdEVsZW1lbnQ6OnRvZ2dsZSk6CisgICAgICAgICogbWF0aG1sL01hdGhNTFNlbGVj
dEVsZW1lbnQuaDoKKwogMjAxMy0xMi0xMSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+
CiAKICAgICAgICAgU3R5bGVQZW5kaW5nSW1hZ2UgbmVlZHMgdG8gY29ycmVjdGx5IG1hbmFnZSB0
aGUgQ1NTVmFsdWUgcG9pbnRlciBsaWZldGltZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bWF0aG1sL01hdGhNTFNlbGVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01h
dGhNTFNlbGVjdEVsZW1lbnQuY3BwCmluZGV4IDEwNTk4ZjQuLjRjMTI1YzQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxTZWxlY3RFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MU2VsZWN0RWxlbWVudC5jcHAKQEAgLTI4LDYgKzI4LDcg
QEAKIAogI2lmIEVOQUJMRShNQVRITUwpCiAKKyNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUg
Ik1hdGhNTE5hbWVzLmgiCiAjaW5jbHVkZSAiUmVuZGVyTWF0aE1MUm93LmgiCiAKQEAgLTc2LDYg
Kzc3LDI1IEBAIHZvaWQgTWF0aE1MU2VsZWN0RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25z
dCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tCiAgICAgTWF0aE1MSW5saW5lQ29udGFp
bmVyRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBuZXdWYWx1ZSwgcmVhc29uKTsKIH0K
IAoraW50IE1hdGhNTFNlbGVjdEVsZW1lbnQ6OmdldFNlbGVjdGVkQ2hpbGRBbmRJbmRleChFbGVt
ZW50KiYgc2VsZWN0ZWRDaGlsZCkKK3sKKyAgICAvLyBXZSAicm91bmQgdXAgb3IgZG93biB0byB0
aGUgY2xvc2VzdCBhbGxvd2FibGUgdmFsdWUiIG9mIHRoZSBzZWxlY3Rpb24gYXR0cmlidXRlLCBh
cyBzdWdnZXN0ZWQgYnkgdGhlIE1hdGhNTCBzcGVjaWZpY2F0aW9uLgorICAgIHNlbGVjdGVkQ2hp
bGQgPSBmaXJzdEVsZW1lbnRDaGlsZCgpOworICAgIGlmICghc2VsZWN0ZWRDaGlsZCkKKyAgICAg
ICAgcmV0dXJuIDE7CisKKyAgICBpbnQgc2VsZWN0aW9uID0gZmFzdEdldEF0dHJpYnV0ZShNYXRo
TUxOYW1lczo6c2VsZWN0aW9uQXR0cikudG9JbnQoKTsKKyAgICBpbnQgaTsKKyAgICBmb3IgKGkg
PSAxOyBpIDwgc2VsZWN0aW9uOyBpKyspIHsKKyAgICAgICAgRWxlbWVudCogbmV4dENoaWxkID0g
c2VsZWN0ZWRDaGlsZC0+bmV4dEVsZW1lbnRTaWJsaW5nKCk7CisgICAgICAgIGlmICghbmV4dENo
aWxkKQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIHNlbGVjdGVkQ2hpbGQgPSBuZXh0Q2hp
bGQ7CisgICAgfQorCisgICAgcmV0dXJuIGk7Cit9CisKIHZvaWQgTWF0aE1MU2VsZWN0RWxlbWVu
dDo6dXBkYXRlU2VsZWN0ZWRDaGlsZCgpCiB7CiAgICAgRWxlbWVudCogbmV3U2VsZWN0ZWRDaGls
ZCA9IGZpcnN0RWxlbWVudENoaWxkKCk7CkBAIC05MSwxNSArMTExLDggQEAgdm9pZCBNYXRoTUxT
ZWxlY3RFbGVtZW50Ojp1cGRhdGVTZWxlY3RlZENoaWxkKCkKICAgICAgICAgICAgICAgICAvLyBG
SVhNRTogaW1wbGVtZW50IHVzZXIgaW50ZXJhY3Rpb24gZm9yIHRoZSAidG9vbHRpcCIgYWN0aW9u
IHR5cGUgKGh0dHA6Ly93a2J1Zy8xMjQ5MjEpLgogICAgICAgICAgICAgICAgIHsgfQogICAgICAg
ICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgLy8gRklYTUU6IGltcGxlbWVudCB1c2VyIGlu
dGVyYWN0aW9uIGZvciB0aGUgInRvZ2dsZSIgYWN0aW9uIHR5cGUgKGh0dHA6Ly93a2J1Zy8xMjAw
NTkpLgogICAgICAgICAgICAgICAgIC8vIEZvciB0aGUgInRvZ2dsZSIgYWN0aW9uIHR5cGUgb3Ig
YW55IHVua25vd24gYWN0aW9uIHR5cGUsIHdlIHJlbHkgb24gdGhlIHZhbHVlIG9mIHRoZSBzZWxl
Y3Rpb24gYXR0cmlidXRlIHRvIGRldGVybWluZSB0aGUgdmlzaWJsZSBjaGlsZC4KLSAgICAgICAg
ICAgICAgICBpbnQgc2VsZWN0aW9uID0gZmFzdEdldEF0dHJpYnV0ZShNYXRoTUxOYW1lczo6c2Vs
ZWN0aW9uQXR0cikudG9JbnQoKTsKLSAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8
IHNlbGVjdGlvbjsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgICAgIEVsZW1lbnQqIG5leHRDaGls
ZCA9IG5ld1NlbGVjdGVkQ2hpbGQtPm5leHRFbGVtZW50U2libGluZygpOwotICAgICAgICAgICAg
ICAgICAgICBpZiAoIW5leHRDaGlsZCkKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICAgICAgICAgICAgICBuZXdTZWxlY3RlZENoaWxkID0gbmV4dENoaWxkOwotICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBnZXRTZWxlY3RlZENoaWxkQW5kSW5kZXgobmV3
U2VsZWN0ZWRDaGlsZCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAg
ICAgICBBU1NFUlQoaGFzTG9jYWxOYW1lKHNlbWFudGljc1RhZykpOwpAQCAtMTE3LDYgKzEzMCwz
OSBAQCB2b2lkIE1hdGhNTFNlbGVjdEVsZW1lbnQ6OnVwZGF0ZVNlbGVjdGVkQ2hpbGQoKQogICAg
IHNldE5lZWRzU3R5bGVSZWNhbGMoKTsKIH0KIAordm9pZCBNYXRoTUxTZWxlY3RFbGVtZW50Ojpk
ZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKK3sKKyAgICBpZiAoZXZlbnQtPnR5cGUo
KSA9PSBldmVudE5hbWVzKCkuY2xpY2tFdmVudCkgeworICAgICAgICBpZiAoZmFzdEdldEF0dHJp
YnV0ZShNYXRoTUxOYW1lczo6YWN0aW9udHlwZUF0dHIpID09ICJ0b2dnbGUiKSB7CisgICAgICAg
ICAgICB0b2dnbGUoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKwor
ICAgIE1hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoZXZl
bnQpOworfQorCitib29sIE1hdGhNTFNlbGVjdEVsZW1lbnQ6OndpbGxSZXNwb25kVG9Nb3VzZUNs
aWNrRXZlbnRzKCkKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBNYXRoTUxTZWxlY3RF
bGVtZW50Ojp0b2dnbGUoKQoreworICAgIC8vIFdlIGRldGVybWluZSB0aGUgc3VjY2Vzc29yIG9m
IHRoZSBzZWxlY3RlZCBjaGlsZC4KKyAgICAvLyBJZiB3ZSByZWFjaCB0aGUgZW5kIG9mIHRoZSBj
aGlsZCBsaXN0LCB3ZSBnbyBiYWNrIHRvIHRoZSBmaXJzdCBjaGlsZC4KKyAgICBFbGVtZW50KiBj
aGlsZCA9IG51bGxwdHI7CisgICAgaW50IHNlbGVjdGlvbiA9IGdldFNlbGVjdGVkQ2hpbGRBbmRJ
bmRleChjaGlsZCk7CisgICAgaWYgKCFjaGlsZCB8fCAhY2hpbGQtPm5leHRFbGVtZW50U2libGlu
ZygpKQorICAgICAgICBzZWxlY3Rpb24gPSAxOworICAgIGVsc2UKKyAgICAgICAgc2VsZWN0aW9u
Kys7CisKKyAgICAvLyBXZSB1cGRhdGUgdGhlIGF0dHJpYnV0ZSB2YWx1ZSBvZiB0aGUgc2VsZWN0
aW9uIGF0dHJpYnV0ZS4KKyAgICAvLyBUaGlzIHdpbGwgYWxzbyBjYWxsIE1hdGhNTFNlbGVjdEVs
ZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQgdG8gdXBkYXRlIHRoZSBzZWxlY3RlZCBjaGlsZC4KKyAg
ICBzZXRBdHRyaWJ1dGUoTWF0aE1MTmFtZXM6OnNlbGVjdGlvbkF0dHIsIEF0b21pY1N0cmluZzo6
bnVtYmVyKHNlbGVjdGlvbikpOworfQorCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoTUFUSE1MKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFNlbGVjdEVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxTZWxlY3RFbGVtZW50LmgKaW5kZXggNmUwNGZh
Ni4uODhjYjc1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFNlbGVj
dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MU2VsZWN0RWxlbWVu
dC5oCkBAIC00NCw2ICs0NCwxMSBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBmaW5pc2hQ
YXJzaW5nQ2hpbGRyZW4oKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFu
Z2VkKGNvbnN0IENoaWxkQ2hhbmdlJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGF0dHJp
YnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21pY1N0cmluZyYsIEF0
dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiA9IE1vZGlmaWVkRGlyZWN0bHkpIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KikgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCBib29sIHdpbGxSZXNwb25kVG9Nb3VzZUNsaWNrRXZlbnRzKCkgT1ZFUlJJREU7
CisKKyAgICB2b2lkIHRvZ2dsZSgpOworICAgIGludCBnZXRTZWxlY3RlZENoaWxkQW5kSW5kZXgo
RWxlbWVudComIHNlbGVjdGVkQ2hpbGQpOwogCiAgICAgdm9pZCB1cGRhdGVTZWxlY3RlZENoaWxk
KCk7CiAgICAgRWxlbWVudCogbV9zZWxlY3RlZENoaWxkOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>