<?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>73819</bug_id>
          
          <creation_ts>2011-12-05 04:01:46 -0800</creation_ts>
          <short_desc>Dojo toggle buttons should expose ROLE_TOGGLE_BUTTON not ROLE_PUSH_BUTTON</short_desc>
          <delta_ts>2012-08-23 06:59:50 -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>Accessibility</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://archive.dojotoolkit.org/nightly/dojotoolkit/dijit/tests/form/test_Button.html</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>30796</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Joanmarie Diggs">jdiggs</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>mario</cc>
    
    <cc>peter</cc>
    
    <cc>peter+ews</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>515023</commentid>
    <comment_count>0</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2011-12-05 04:01:46 -0800</bug_when>
    <thetext>The Dojo toggle buttons on the buttons test page [1] currently expose ROLE_PUSH_BUTTON. They should instead expose ROLE_TOGGLE_BUTTON.

[1] http://archive.dojotoolkit.org/nightly/dojotoolkit/dijit/tests/form/test_Button.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>693776</commentid>
    <comment_count>1</comment_count>
      <attachid>158032</attachid>
    <who name="Alejandro Piñeiro">apinheiro</who>
    <bug_when>2012-08-13 10:14:43 -0700</bug_when>
    <thetext>Created attachment 158032
Fixes the bug

I added an extra rule on the mapping between WebCore role and ATK roles in order to know if a button is a toggle button. In order to do that I use the attribute aria-pressed:

http://www.w3.org/TR/wai-aria/states_and_properties#aria-pressed

Submitting the patch first. I will start the test, but I wanted to give first the patch so it could be reviewed.

PS: the example page has an error. After this patch, the example toggle button that it is initially un-pressed still exposes push-button. This is because initially it doesn&apos;t have that attribute set to false. But from the w3c documentation, I understand that that attribute should be there. In the same way, if you press that toggle button, and unpress it again, it properly expose the toggle button role, so the attribute (set to false) is there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>693811</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-13 10:48:01 -0700</bug_when>
    <thetext>Attachment 158032 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/accessibility/Accessibility...&quot; exit_code: 1
Source/WebCore/accessibility/gtk/WebKitAccessibleWrapperAtk.cpp:434:  An else statement can be removed when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
Total errors found: 1 in 4 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>693839</commentid>
    <comment_count>3</comment_count>
      <attachid>158032</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2012-08-13 11:09:43 -0700</bug_when>
    <thetext>Comment on attachment 158032
Fixes the bug

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

Thanks for the patch. Overall it looks good, although there are some obvious bits missing for being considered a complete patch:

  - You need to make sure you don&apos;t break the coding style. Runnint Tools/Scripts/check-webkit-style is very helpful for this
  - You need to write a Layout test for it (as we spoke about it via IRC)
  - You need to create proper changelog entries (run Tools/Scripts/prepare-ChangeLog from)

You can check http://www.webkit.org/coding/contributing.html for some guidelines on that.

I&apos;ll review it informally anyway, just pointing those things out to help you for future iterations of the patch. See my comments below...

&gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:493
&gt; +    return (!getAttribute(aria_pressedAttr).isEmpty());

This seems to be a little bit too relaxed way to determine that something is a toggle button. I agree with you that probably checking the pressed attribute (and assuming it must be present even if the button is unchecked) is a good idea but I think I&apos;d also add some extra checks to the equation to at least know that we are not doing this over something completely unrelated to a button.

What about something like this?

return (isButton() || ariaRoleAttribute() == ButtonRole)
    &amp;&amp; !getAttribute(aria_pressedAttr).isEmpty();

(no extra parenthesis needed, btw)

Still, I&apos;m  a bit concerned of the scenario you mentioned where the &apos;pressed&apos; attribute would not be there initially. Maybe there&apos;s something else we could do that we are missing?

&gt; Source/WebCore/accessibility/gtk/WebKitAccessibleWrapperAtk.cpp:436
&gt; +        else

You don&apos;t need this &apos;else&apos; here, as the coding style also tells about it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>693895</commentid>
    <comment_count>4</comment_count>
    <who name="Alejandro Piñeiro">apinheiro</who>
    <bug_when>2012-08-13 11:45:33 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 158032 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=158032&amp;action=review
&gt; 
&gt; Thanks for the patch. 

Thanks for the review.

&gt;Overall it looks good, although there are some obvious bits missing for being considered a complete patch:
&gt; 
&gt;   - You need to make sure you don&apos;t break the coding style. Runnint Tools/Scripts/check-webkit-style is very helpful for this
&gt;   - You need to write a Layout test for it (as we spoke about it via IRC)
&gt;   - You need to create proper changelog entries (run Tools/Scripts/prepare-ChangeLog from)
&gt; 
&gt; You can check http://www.webkit.org/coding/contributing.html for some guidelines on that.

Ok, thanks.

&gt; 
&gt; I&apos;ll review it informally anyway, just pointing those things out to help you for future iterations of the patch. See my comments below...
&gt; 
&gt; &gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:493
&gt; &gt; +    return (!getAttribute(aria_pressedAttr).isEmpty());
&gt; 
&gt; This seems to be a little bit too relaxed way to determine that something is a toggle button. I agree with you that probably checking the pressed attribute (and assuming it must be present even if the button is unchecked) is a good idea but I think I&apos;d also add some extra checks to the equation to at least know that we are not doing this over something completely unrelated to a button.


Well as we are on the &quot;case ButtonRole:&quot; path, we are doing this to something totally related to a button. 

&gt; What about something like this?
&gt; 
&gt; return (isButton() || ariaRoleAttribute() == ButtonRole)
&gt;     &amp;&amp; !getAttribute(aria_pressedAttr).isEmpty();

isButton just checks that roleValue==ButtonRole. So this is equivalent to the case. This seems like check the same twice.

About the aria check, is there any real possibility of a button not being an aria button? There are some extra types of button, but looking at the code, if the aria button role is not a &quot;plain&quot; ButtonRole, it is also the case for the button role. In fact determineAccessibilityRole already checks aria stuff to determine the role. IMHO, having coreObject-&gt;roleValue as ButtonRole but the aria role as something different should not happen. Taking that into account, is it still required to add that check there?

&gt; (no extra parenthesis needed, btw)
&gt; 
&gt; Still, I&apos;m  a bit concerned of the scenario you mentioned where the &apos;pressed&apos; attribute would not be there initially. Maybe there&apos;s something else we could do that we are missing?

Well, as I said on my comment, this seems to be an error on Dojo itself. After all, if you press again to unpress the toggle the information is there. The initial state should be the same that the state after press and unpress the toggle button. And as the w3c documentation says:
http://www.w3.org/TR/wai-aria/states_and_properties#aria-pressed

&quot;...If the attribute is not present, the button is not a toggle button.&quot;

&gt; &gt; Source/WebCore/accessibility/gtk/WebKitAccessibleWrapperAtk.cpp:436
&gt; &gt; +        else
&gt; 
&gt; You don&apos;t need this &apos;else&apos; here, as the coding style also tells about it.

Removed, I will upload a new patch soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>693902</commentid>
    <comment_count>5</comment_count>
    <who name="Alejandro Piñeiro">apinheiro</who>
    <bug_when>2012-08-13 11:53:19 -0700</bug_when>
    <thetext>(In reply to comment #4)

&gt; 
&gt; &gt; What about something like this?
&gt; &gt; 
&gt; &gt; return (isButton() || ariaRoleAttribute() == ButtonRole)
&gt; &gt;     &amp;&amp; !getAttribute(aria_pressedAttr).isEmpty();
&gt; 
&gt; isButton just checks that roleValue==ButtonRole. So this is equivalent to the case. This seems like check the same twice.
&gt; 
&gt; About the aria check, is there any real possibility of a button not being an aria button? There are some extra types of button, but looking at the code, if the aria button role is not a &quot;plain&quot; ButtonRole, it is also the case for the button role. In fact determineAccessibilityRole already checks aria stuff to determine the role. IMHO, having coreObject-&gt;roleValue as ButtonRole but the aria role as something different should not happen. Taking that into account, is it still required to add that check there?

Sorry I have just realized that you are talking about the new method created at AccessibilityRenderObject. It is true that in this case it was already checked that the role is button, but if in the future someone wants to add that method, that method should be safe by his own. I will also add those checks.

Sorry for the noise.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>694094</commentid>
    <comment_count>6</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2012-08-13 14:32:21 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; &gt; [...]
&gt; &gt; About the aria check, is there any real possibility of a button not being an aria button? There are some extra 
&gt; &gt; types of button, but looking at the code, if the aria button role is not a &quot;plain&quot; ButtonRole, it is also the 
&gt; &gt; case for the button role. In fact determineAccessibilityRole already checks aria stuff to determine the role. 
&gt; &gt; IMHO, having coreObject-&gt;roleValue as ButtonRole but the aria role as something different should not 
&gt; &gt; happen. Taking that into account, is it still required to add that check there?
&gt; 
&gt; Sorry I have just realized that you are talking about the new method created at AccessibilityRenderObject. 
&gt; It is true that in this case it was already checked that the role is button, but if in the future someone wants 
&gt; to add that method, that method should be safe by his own. I will also add those checks.

Yes, exactly: as you&apos;re implementing a new method isToggleButton() in AccessibilityObject / AccessibilityRenderObject, that should be agnostic to any other check you might do in the callee, and therefore able to determine whether it&apos;s a toggle button by itself.

Maybe you could do, to avoid checking things twice, change the code in the wrapper to somthing like this:

@@ -538,7 +543,7 @@ static AtkRole webkitAccessibleGetRole(AtkObject* object)
     if (coreObject-&gt;isPasswordField())
         return ATK_ROLE_PASSWORD_TEXT;
+ 
+   if (coreObject-&gt;isToggleButton())
+        return ATK_ROLE_PUSH_BUTTON;

     return atkRole(coreObject);
 }

... and you leave atkRole(AccessibilityRole role) untouched (thus, receiving an AccessibilityRole as it used to do). Perhaps it would make sense to rename atkRole() to atkRoleForCoreRole(), or something like that, to make clear the purpose of the method.

I personally think this way is cleaner. What do you think?

&gt; Sorry for the noise.

No problem. Happy to help</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>694096</commentid>
    <comment_count>7</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2012-08-13 14:33:45 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; [...]
&gt;      return atkRole(coreObject);
                 ^^^^^^^^^^^^^
I obviously meant atkRole(coreObject-&gt;roleValue()) :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>695084</commentid>
    <comment_count>8</comment_count>
      <attachid>158354</attachid>
    <who name="Alejandro Piñeiro">apinheiro</who>
    <bug_when>2012-08-14 10:02:18 -0700</bug_when>
    <thetext>Created attachment 158354
Fixes the  bug

Updated patch, with all the suggestion made by Mario Sánchez and adding a layout test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>695154</commentid>
    <comment_count>9</comment_count>
      <attachid>158354</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2012-08-14 10:58:23 -0700</bug_when>
    <thetext>Comment on attachment 158354
Fixes the  bug

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

Thanks for the patch, Alejandro Piñeiro. The patch looks good to me with the exception of some nits and a small mistake.

See my comments below...

&gt; LayoutTests/ChangeLog:10
&gt; +        ATK_ROLE_TOGGLE_BUTTON when required

Nit. Missing period at the end of the line.

&gt; Source/WebCore/ChangeLog:10
&gt; +        ATK_ROLE_TOGGLE_BUTTON when required

Same nit here :)

&gt; Source/WebCore/ChangeLog:22
&gt; +        (webkitAccessibleGetRole):

There has been a recent discussion lately in the mailing list on the convenience of documenting changes for every function in the ChangeLog, and the general agreement seems to be that at least a brief description should be included.

So, it would be nice if you could add a brief description of the changes done in each function.

&gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:493
&gt; +    return (isButton() || ariaRoleAttribute()  == ButtonRole) &amp;

There&apos;s an extra space here (before the &apos;==&apos;). Also, you&apos;re using a bit-wise operation with &apos;&amp;&apos;, when I think you meant the boolean operator &apos;&amp;&amp;&apos; :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>695169</commentid>
    <comment_count>10</comment_count>
      <attachid>158374</attachid>
    <who name="Alejandro Piñeiro">apinheiro</who>
    <bug_when>2012-08-14 11:14:38 -0700</bug_when>
    <thetext>Created attachment 158374
Fixes the bug

Update after review on comment 9</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>695171</commentid>
    <comment_count>11</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2012-08-14 11:16:10 -0700</bug_when>
    <thetext>The patch looks perfect to me now. Putting Chris on CC as he&apos;s a True Reviewer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>695173</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-14 11:16:59 -0700</bug_when>
    <thetext>Attachment 158374 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/plat...&quot; exit_code: 1
Source/WebCore/accessibility/AccessibilityRenderObject.cpp:493:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
Total errors found: 1 in 8 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>695209</commentid>
    <comment_count>13</comment_count>
      <attachid>158374</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2012-08-14 11:49:03 -0700</bug_when>
    <thetext>Comment on attachment 158374
Fixes the bug

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

&gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:494
&gt; +        !getAttribute(aria_pressedAttr).isEmpty();

need to fix style warning

&gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:495
&gt; +}

I think isButton() already returns true if ariaRoleAttribute is button.

You should probably have a comment explaining why having a non-empty aria-pressed attribute means its a toggle button

&gt; Source/WebCore/accessibility/AccessibilityRenderObject.h:74
&gt; +    virtual bool isToggleButton() const;

this should probably be private</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>695887</commentid>
    <comment_count>14</comment_count>
      <attachid>158537</attachid>
    <who name="Alejandro Piñeiro">apinheiro</who>
    <bug_when>2012-08-15 03:28:12 -0700</bug_when>
    <thetext>Created attachment 158537
Fixes the bug

(In reply to comment #13)
&gt; (From update of attachment 158374 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=158374&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:494
&gt; &gt; +        !getAttribute(aria_pressedAttr).isEmpty();
&gt; 
&gt; need to fix style warning

Fixed


&gt; &gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:495
&gt; &gt; +}
&gt; 
&gt; I think isButton() already returns true if ariaRoleAttribute is button.
&gt; 
&gt; You should probably have a comment explaining why having a non-empty aria-pressed attribute means its a toggle button

Added

&gt; &gt; Source/WebCore/accessibility/AccessibilityRenderObject.h:74
&gt; &gt; +    virtual bool isToggleButton() const;
&gt; 
&gt; this should probably be private

Initially I added that method as an utility method on WebKitAccessibleWrapperAtk. Then I decided that could be useful in general, so I moved it to AccessibilityObject. But if I set it as private, I can&apos;t use it at WebKitAccessibleWrapperAtk. So in this patch it is still public. If this is a problem, I could remove it from AccessibilityObject and AccessibilityRenderObject and implement it at WebkitAccessibleWrapperAtk.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>696009</commentid>
    <comment_count>15</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2012-08-15 08:06:56 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; 
&gt; &gt; &gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:495
&gt; &gt; &gt; +}
&gt; &gt; 
&gt; &gt; I think isButton() already returns true if ariaRoleAttribute is button.

What about this comment?

&gt; 
&gt; &gt; &gt; Source/WebCore/accessibility/AccessibilityRenderObject.h:74
&gt; &gt; &gt; +    virtual bool isToggleButton() const;
&gt; &gt; 
&gt; &gt; this should probably be private
&gt; 

I think you wan to leave it public on AccessibilityObject, but make it private on AccessibilityRenderObject.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>696986</commentid>
    <comment_count>16</comment_count>
      <attachid>158769</attachid>
    <who name="Alejandro Piñeiro">apinheiro</who>
    <bug_when>2012-08-16 03:58:23 -0700</bug_when>
    <thetext>Created attachment 158769
Fixes the bug

(In reply to comment #15)
&gt; (In reply to comment #14)
&gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:495
&gt; &gt; &gt; &gt; +}
&gt; &gt; &gt; 
&gt; &gt; &gt; I think isButton() already returns true if ariaRoleAttribute is button.
&gt; 
&gt; What about this comment?

True, I have simplified the check on the fuction.

&gt; &gt; &gt; &gt; Source/WebCore/accessibility/AccessibilityRenderObject.h:74
&gt; &gt; &gt; &gt; +    virtual bool isToggleButton() const;
&gt; &gt; &gt; 
&gt; &gt; &gt; this should probably be private
&gt; &gt; 
&gt; 
&gt; I think you wan to leave it public on AccessibilityObject, but make it private on AccessibilityRenderObject.

Ok. Now isToggleButton is public on AccessibilityObject but private on AccessibilityRenderObject.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>697202</commentid>
    <comment_count>17</comment_count>
      <attachid>158769</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2012-08-16 09:17:25 -0700</bug_when>
    <thetext>Comment on attachment 158769
Fixes the bug

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

after thinking about this patch more, I think we want to add a new WebCore accessibility role, and then just change the GTK mapping so the ToggleButtonRole (WebCore) maps to ATK_ROLE_TOGGLE_BUTTON
On the other platforms, it should still map to native button role. 

This will allow other platforms to identify toggle buttons in the same manner if they need to, without realizing they need to check if something is a toggleButton() after the fact

Similarly, I feel like these likes that I see in the AXWrapperAtk.cpp class can be removed and you can rely on atkRole to return the right thing, because PasswordField should be a WebCore role

if (coreObject-&gt;isPasswordField())
539539        return ATK_ROLE_PASSWORD_TEXT;

&gt; LayoutTests/ChangeLog:8
&gt; +        Added a extra rule on the mapping of WebCore accessibility roles

Comment should say

&quot;Added a test to verify that when aria-pressed is present, buttons will have the appropriate role&quot;

&gt; LayoutTests/platform/gtk/accessibility/aria-toggle-button-role.html:17
&gt; +    obj2 = accessibilityController.focusedElement;

You should also test the case when aria-pressed is empty here.

and you should test the case when aria-pressed is on an non-button role

&gt; Source/WebCore/ChangeLog:10
&gt; +        ATK_ROLE_TOGGLE_BUTTON when required.

Comment should say:
&quot;Added an extra rule to the ATK accessibility role mappings based on whether aria-pressed is present.
http://www.w3.org/TR/wai-aria/states_and_properties#aria-pressed&quot;

&gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:493
&gt; +    // From http://www.w3.org/TR/wai-aria/states_and_properties#aria-pressed

Comment should say

&quot;If aria-pressed is present, then it should be exposed as a toggle button.
http://www.w3.org/TR/wai-aria/states_and_properties#aria-pressed&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>697257</commentid>
    <comment_count>18</comment_count>
    <who name="Alejandro Piñeiro">apinheiro</who>
    <bug_when>2012-08-16 10:30:51 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; (From update of attachment 158769 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=158769&amp;action=review
&gt; 
&gt; after thinking about this patch more, I think we want to add a new WebCore accessibility role, and then just change the GTK mapping so the ToggleButtonRole (WebCore) maps to ATK_ROLE_TOGGLE_BUTTON
&gt; On the other platforms, it should still map to native button role. 

I&apos;m not sure if I follow this &quot;On the other platforms&quot; sentence. What AccessibilityObject::roleValue should return in the case of being a toggle button (so the value of m_role computed at determineAccessibilityNode)?  If it always returns the new ToggleButtonRole, it will affect the other platforms.

One option would be use some #if PLATFORM(GTK) on determineAccessibilityRole, in order to return ToggleButtonRole only on gtk platform. But in that case I don&apos;t see the need to add a new role.

&gt; This will allow other platforms to identify toggle buttons in the same manner if they need to, without realizing they need to check if something is a toggleButton() after the fact

See my previous questions. I fear that suddenly returning ToggleButtonRole for all platforms will somehow break those platforms, as they would be expecting a ButtonRole and suddenly they will receive a ToggleButtonRole

&gt; 
&gt; Similarly, I feel like these likes that I see in the AXWrapperAtk.cpp class can be removed and you can rely on atkRole to return the right thing, because PasswordField should be a WebCore role
&gt; 
&gt; if (coreObject-&gt;isPasswordField())
&gt; 539539        return ATK_ROLE_PASSWORD_TEXT;

Well, IMHO, it shouldn&apos;t. On ATK we plan to stop to represent password fields with roles, and use instead states. The summary is that we found that text entries are not the only case that would require a &quot;password mode&quot;. And after all being a password entry is just a custom state, where the entry are not showing their content (custom type of visibility). More info on this bug:
https://bugzilla.gnome.org/show_bug.cgi?id=668025#c1

&gt; &gt; LayoutTests/ChangeLog:8
&gt; &gt; +        Added a extra rule on the mapping of WebCore accessibility roles
&gt; 
&gt; Comment should say
&gt; 
&gt; &quot;Added a test to verify that when aria-pressed is present, buttons will have the appropriate role&quot;

Ok

&gt; &gt; LayoutTests/platform/gtk/accessibility/aria-toggle-button-role.html:17
&gt; &gt; +    obj2 = accessibilityController.focusedElement;
&gt; 
&gt; You should also test the case when aria-pressed is empty here.
&gt; 
&gt; and you should test the case when aria-pressed is on an non-button role

Ok

&gt; &gt; Source/WebCore/ChangeLog:10
&gt; &gt; +        ATK_ROLE_TOGGLE_BUTTON when required.
&gt; 
&gt; Comment should say:
&gt; &quot;Added an extra rule to the ATK accessibility role mappings based on whether aria-pressed is present.
&gt; http://www.w3.org/TR/wai-aria/states_and_properties#aria-pressed&quot;

Ok

&gt; &gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:493
&gt; &gt; +    // From http://www.w3.org/TR/wai-aria/states_and_properties#aria-pressed
&gt; 
&gt; Comment should say
&gt; 
&gt; &quot;If aria-pressed is present, then it should be exposed as a toggle button.
&gt; http://www.w3.org/TR/wai-aria/states_and_properties#aria-pressed&quot;

Ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>697708</commentid>
    <comment_count>19</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2012-08-16 17:11:37 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; (In reply to comment #17)
&gt; &gt; (From update of attachment 158769 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=158769&amp;action=review
&gt; &gt; 
&gt; &gt; after thinking about this patch more, I think we want to add a new WebCore accessibility role, and then just change the GTK mapping so the ToggleButtonRole (WebCore) maps to ATK_ROLE_TOGGLE_BUTTON
&gt; &gt; On the other platforms, it should still map to native button role. 
&gt; 
&gt; I&apos;m not sure if I follow this &quot;On the other platforms&quot; sentence. What AccessibilityObject::roleValue should return in the case of being a toggle button (so the value of m_role computed at determineAccessibilityNode)?  If it always returns the new ToggleButtonRole, it will affect the other platforms.

You will need to add mappings on the other platforms so they map ToggleButton to whatever ButtonRole points to


&gt; 
&gt; One option would be use some #if PLATFORM(GTK) on determineAccessibilityRole, in order to return ToggleButtonRole only on gtk platform. But in that case I don&apos;t see the need to add a new role.
&gt; 
&gt; &gt; This will allow other platforms to identify toggle buttons in the same manner if they need to, without realizing they need to check if something is a toggleButton() after the fact
&gt; 
&gt; See my previous questions. I fear that suddenly returning ToggleButtonRole for all platforms will somehow break those platforms, as they would be expecting a ButtonRole and suddenly they will receive a ToggleButtonRole
&gt; 
&gt; &gt; 
&gt; &gt; Similarly, I feel like these likes that I see in the AXWrapperAtk.cpp class can be removed and you can rely on atkRole to return the right thing, because PasswordField should be a WebCore role
&gt; &gt; 
&gt; &gt; if (coreObject-&gt;isPasswordField())
&gt; &gt; 539539        return ATK_ROLE_PASSWORD_TEXT;
&gt; 
&gt; Well, IMHO, it shouldn&apos;t. On ATK we plan to stop to represent password fields with roles, and use instead states. The summary is that we found that text entries are not the only case that would require a &quot;password mode&quot;. And after all being a password entry is just a custom state, where the entry are not showing their content (custom type of visibility). More info on this bug:
&gt; https://bugzilla.gnome.org/show_bug.cgi?id=668025#c1
&gt; 
&gt; &gt; &gt; LayoutTests/ChangeLog:8
&gt; &gt; &gt; +        Added a extra rule on the mapping of WebCore accessibility roles
&gt; &gt; 
&gt; &gt; Comment should say
&gt; &gt; 
&gt; &gt; &quot;Added a test to verify that when aria-pressed is present, buttons will have the appropriate role&quot;
&gt; 
&gt; Ok
&gt; 
&gt; &gt; &gt; LayoutTests/platform/gtk/accessibility/aria-toggle-button-role.html:17
&gt; &gt; &gt; +    obj2 = accessibilityController.focusedElement;
&gt; &gt; 
&gt; &gt; You should also test the case when aria-pressed is empty here.
&gt; &gt; 
&gt; &gt; and you should test the case when aria-pressed is on an non-button role
&gt; 
&gt; Ok
&gt; 
&gt; &gt; &gt; Source/WebCore/ChangeLog:10
&gt; &gt; &gt; +        ATK_ROLE_TOGGLE_BUTTON when required.
&gt; &gt; 
&gt; &gt; Comment should say:
&gt; &gt; &quot;Added an extra rule to the ATK accessibility role mappings based on whether aria-pressed is present.
&gt; &gt; http://www.w3.org/TR/wai-aria/states_and_properties#aria-pressed&quot;
&gt; 
&gt; Ok
&gt; 
&gt; &gt; &gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:493
&gt; &gt; &gt; +    // From http://www.w3.org/TR/wai-aria/states_and_properties#aria-pressed
&gt; &gt; 
&gt; &gt; Comment should say
&gt; &gt; 
&gt; &gt; &quot;If aria-pressed is present, then it should be exposed as a toggle button.
&gt; &gt; http://www.w3.org/TR/wai-aria/states_and_properties#aria-pressed&quot;
&gt; 
&gt; Ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698347</commentid>
    <comment_count>20</comment_count>
      <attachid>159127</attachid>
    <who name="Alejandro Piñeiro">apinheiro</who>
    <bug_when>2012-08-17 08:16:23 -0700</bug_when>
    <thetext>Created attachment 159127
Fixes the bug

Updated patch based on the last comments. It adds a new role to WebCore: ToggleButtonRole. On gtk platform the mapping is ToggleButtonRole-&gt;ATK_ROLE_TOGGLE_BUTTON. On mac platform the mapping is ToggleButtonRole-&gt;NSAccessibilityButtonRole. The rest of the platforms doesn&apos;t have any role mapping.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698379</commentid>
    <comment_count>21</comment_count>
      <attachid>159127</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2012-08-17 08:58:12 -0700</bug_when>
    <thetext>Comment on attachment 159127
Fixes the bug

Attachment 159127 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/13530061</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698382</commentid>
    <comment_count>22</comment_count>
      <attachid>159127</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-17 08:59:47 -0700</bug_when>
    <thetext>Comment on attachment 159127
Fixes the bug

Attachment 159127 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/13529084</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>699399</commentid>
    <comment_count>23</comment_count>
      <attachid>159393</attachid>
    <who name="Alejandro Piñeiro">apinheiro</who>
    <bug_when>2012-08-20 04:44:56 -0700</bug_when>
    <thetext>Created attachment 159393
Fixes the bug

This last update adds chromium platform specifics. I didn&apos;t add it on the previous one because I only searched platform specific code on WebCore, as with gtk and mac, but it seems that most specific accessibility related code for chromium resides at WebKit level.

As with mac, I tried to make a ToggleButton-&gt;Button role matching, but I was not able to do that. This is because chromium WebAccessibilityRole needs to be a perfect 1-to-1 match with WebCore AccessibilityRole. In fact, at WebAccessibilityObject::roleValue, the matching rule is a static_cast of the AccessibilityObject wrapped.

So in the end I needed to add a new WebAccessibilityRole, WebAccessibilityRoleToggleButton. I also needed to update AccessibilityUIElementChromium in order to print the proper role name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>699403</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-20 04:47:16 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>699510</commentid>
    <comment_count>25</comment_count>
    <who name="Dominic Mazzoni">dmazzoni</who>
    <bug_when>2012-08-20 07:53:16 -0700</bug_when>
    <thetext>As you discovered, the platform-specific role mappings in Chromium aren&apos;t done inside WebKit - we pass the cross-platform data structure to the browser process and do the platform-native mapping there.

Thanks for the heads-up. I&apos;ll add a mapping for WebAccessibilityRoleToggleButton in the Chromium codebase after this lands.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>699557</commentid>
    <comment_count>26</comment_count>
      <attachid>159393</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2012-08-20 08:54:09 -0700</bug_when>
    <thetext>Comment on attachment 159393
Fixes the bug

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

&gt; Source/WebCore/accessibility/AccessibilityNodeObject.cpp:356
&gt;          role = PopUpButtonRole;

It looks like this logic is duplicated 3 times (and seems likely to grow)
we should probably add a method (something like)

AccessibilityRole buttonRoleType() const;  

that will check ariaPressed() and ariaHasPopup()

&gt; Source/WebCore/accessibility/AccessibilityObject.h:455
&gt; +    virtual bool hasARIAPressed() const { return false; }

I don&apos;t know which naming is better (ariaHas or hasARIA), but we should probably stick with the precedent here (so maybe use ariaHasPressedState())

&gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:1689
&gt; +bool AccessibilityRenderObject::hasARIAPressed() const

this method should be in AccessibilityObject.cpp

&gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:3148
&gt; +        return ButtonRole;

another place to use that new method</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>699582</commentid>
    <comment_count>27</comment_count>
    <who name="Alejandro Piñeiro">apinheiro</who>
    <bug_when>2012-08-20 09:12:14 -0700</bug_when>
    <thetext>(In reply to comment #26)
&gt; (From update of attachment 159393 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=159393&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/accessibility/AccessibilityNodeObject.cpp:356
&gt; &gt;          role = PopUpButtonRole;
&gt; 
&gt; It looks like this logic is duplicated 3 times (and seems likely to grow)
&gt; we should probably add a method (something like)
&gt; 
&gt; AccessibilityRole buttonRoleType() const;  
&gt; 
&gt; that will check ariaPressed() and ariaHasPopup()

Ok.


&gt; &gt; Source/WebCore/accessibility/AccessibilityObject.h:455
&gt; &gt; +    virtual bool hasARIAPressed() const { return false; }
&gt; 
&gt; I don&apos;t know which naming is better (ariaHas or hasARIA), but we should probably stick with the precedent here (so maybe use ariaHasPressedState())

I guess that that precedent is ariaHasPopup. I was tempted to use this nomemclature, but looking at the code the meaning of both methods are different:

bool AccessibilityRenderObject::ariaHasPopup() const
{
    return elementAttributeValue(aria_haspopupAttr);
}

ariasHasPopup is looking for the attribute has-popup [1], and returns its value. The method that I has just added checks if the object has or not (the value is irrelevant) the pressed state. So in one case this &quot;has&quot; is part of the name of the attribute and in the other case is not. 

But it is true that this &quot;has&quot; thing can be confusing. What about something like &quot;ariaPressedAttrIsPresent&quot; or just &quot;ariaPressedIsPressent&quot;?


&gt; &gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:1689
&gt; &gt; +bool AccessibilityRenderObject::hasARIAPressed() const
&gt; 
&gt; this method should be in AccessibilityObject.cpp
&gt; 
&gt; &gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:3148
&gt; &gt; +        return ButtonRole;
&gt; 
&gt; another place to use that new method

Ok

[1] http://www.w3.org/TR/wai-aria/states_and_properties#aria-haspopup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>699766</commentid>
    <comment_count>28</comment_count>
      <attachid>159484</attachid>
    <who name="Alejandro Piñeiro">apinheiro</who>
    <bug_when>2012-08-20 12:03:43 -0700</bug_when>
    <thetext>Created attachment 159484
Fixes the bug

Updated patch based on comment 26 review.

I didn&apos;t add a ariaHasPressedState as suggested, because as I explain in comment 27, this is confusing with ariaHasPopup(). The method I&apos;m adding checks if an attribute is present, ariaHasPopup checks if has-popup attribute is true.

So I added a method called ariaPressedIsPresent (I felt that ariaPressedAttributeIsPresent was too long).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>700323</commentid>
    <comment_count>29</comment_count>
      <attachid>159484</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2012-08-20 18:48:02 -0700</bug_when>
    <thetext>Comment on attachment 159484
Fixes the bug

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

looking good, besides minor nits. i think you might want to wait for someone on the google CC list to review the chromium change, although I&apos;m sure it will be fine

&gt; Source/WebCore/accessibility/AccessibilityObject.cpp:1743
&gt; +// This method assumes that the object is already a button-related

I think this comment is probably not needed. it just explains what the code does, which is pretty easy to read.

&gt; Source/WebCore/accessibility/AccessibilityObject.cpp:1750
&gt; +    // If aria-pressed is present, then it should be exposed as a toggle button.

you could ASSERT(isButton()) and return UnknownRole if not a button</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>700586</commentid>
    <comment_count>30</comment_count>
      <attachid>159646</attachid>
    <who name="Alejandro Piñeiro">apinheiro</who>
    <bug_when>2012-08-21 03:42:46 -0700</bug_when>
    <thetext>Created attachment 159646
Fixes the bug

(In reply to comment #29)
&gt; (From update of attachment 159484 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=159484&amp;action=review
&gt; 
&gt; looking good, besides minor nits. i think you might want to wait for someone on the google CC list to review the chromium change, although I&apos;m sure it will be fine

They were automatically added on comment 24, and I added Dominic Mazzoni to the CC list

Dominic could you review the patch to check if it is ok with you?

&gt; 
&gt; &gt; Source/WebCore/accessibility/AccessibilityObject.cpp:1743
&gt; &gt; +// This method assumes that the object is already a button-related
&gt; 
&gt; I think this comment is probably not needed. it just explains what the code does, which is pretty easy to read.

Done.

&gt; 
&gt; &gt; Source/WebCore/accessibility/AccessibilityObject.cpp:1750
&gt; &gt; +    // If aria-pressed is present, then it should be exposed as a toggle button.
&gt; 
&gt; you could ASSERT(isButton()) and return UnknownRole if not a button

I think that I can&apos;t. We have a chicken-egg problem here. isButton() just checks if roleValue() == ButtonRole. roleValue just returns m_role. m_role is computed at determineAccessibilityRole. And this new function (buttonRoleType) is used as an auxiliar function at determineAccessibilityRole. So, when buttonRoleType is called you are still computing m_role, so isButton() return value could be wrong.

This is the reason I added that comment &quot;This method assumes that the object is already a button-related role object&quot;. You should already know that it is a button role, for example that the object has the tag name buttonTag.

Taking into account that this is an auxiliary method, and that you need to take that into account, I don&apos;t see this method really suitable for a public method. I have moved it to the protected section.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>700813</commentid>
    <comment_count>31</comment_count>
    <who name="Dominic Mazzoni">dmazzoni</who>
    <bug_when>2012-08-21 09:07:10 -0700</bug_when>
    <thetext>Looks good for google/chromium - no need to wait for an additional review. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>701652</commentid>
    <comment_count>32</comment_count>
      <attachid>159646</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2012-08-22 00:59:36 -0700</bug_when>
    <thetext>Comment on attachment 159646
Fixes the bug

Setting the cq+ flag then</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>701653</commentid>
    <comment_count>33</comment_count>
      <attachid>159646</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-22 01:02:05 -0700</bug_when>
    <thetext>Comment on attachment 159646
Fixes the bug

Rejecting attachment 159646 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 1

Last 500 characters of output:
/webkit-commit-queue/Tools/Scripts/webkitpy/common/checkout/scm/scm.py&quot;, line 76, in run
    decode_output=decode_output)
  File &quot;/mnt/git/webkit-commit-queue/Tools/Scripts/webkitpy/common/system/executive.py&quot;, line 407, in run_command
    output = output.decode(self._child_process_encoding())
  File &quot;/usr/lib/python2.6/encodings/utf_8.py&quot;, line 16, in decode
    return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError: &apos;utf8&apos; codec can&apos;t decode bytes in position 231-234: invalid data

Full output: http://queues.webkit.org/results/13567160</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>701679</commentid>
    <comment_count>34</comment_count>
      <attachid>159882</attachid>
    <who name="Alejandro Piñeiro">apinheiro</who>
    <bug_when>2012-08-22 01:45:26 -0700</bug_when>
    <thetext>Created attachment 159882
Fixes the bug

For any reason, I correctly saved three of the ChangeLog in a utf-8 format (see my surname), but one was saved in a different encoding (when I didn&apos;t use any different program or command to save it).

This patch is the same that the previous one, but utf-8 compliant.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>702554</commentid>
    <comment_count>35</comment_count>
      <attachid>159882</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-22 17:35:43 -0700</bug_when>
    <thetext>Comment on attachment 159882
Fixes the bug

Clearing flags on attachment: 159882

Committed r126369: &lt;http://trac.webkit.org/changeset/126369&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>702556</commentid>
    <comment_count>36</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-22 17:35:49 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>702859</commentid>
    <comment_count>37</comment_count>
    <who name="Peter Beverloo">peter</who>
    <bug_when>2012-08-23 04:19:57 -0700</bug_when>
    <thetext>Since this change isn&apos;t limited to GTK code, please don&apos;t add the [Gtk] prefix to the bug title. In general, platform prefixes should only be used if the change is isolated the that platform&apos;s codebase, and doesn&apos;t touch any other code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>702884</commentid>
    <comment_count>38</comment_count>
    <who name="Alejandro Piñeiro">apinheiro</who>
    <bug_when>2012-08-23 05:01:42 -0700</bug_when>
    <thetext>(In reply to comment #37)
&gt; Since this change isn&apos;t limited to GTK code, please don&apos;t add the [Gtk] prefix to the bug title. In general, platform prefixes should only be used if the change is isolated the that platform&apos;s codebase, and doesn&apos;t touch any other code.

Initially this bug was a platform specific bug. First 5 patches were only affecting GTK platform. The rationale was that the GTK platform already has the toggle button role (ATK_ROLE_TOGGLE_BUTTON), and as the other platforms didn&apos;t have it durin, it was just about adding a mapping on gtk platform.

But on comment 17 Chris Fleizach suggested that it would be good to add that role to WebCore. It is supposed that at that moment I should have changed the title of the bug?

BTW: I don&apos;t have the permissions to change the title of the bug right now.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>158032</attachid>
            <date>2012-08-13 10:14:43 -0700</date>
            <delta_ts>2012-08-14 10:02:18 -0700</delta_ts>
            <desc>Fixes the bug</desc>
            <filename>0001-Gtk-Dojo-toggle-buttons-should-expose-ROLE_TOGGLE_BU.patch</filename>
            <type>text/plain</type>
            <size>4091</size>
            <attacher name="Alejandro Piñeiro">apinheiro</attacher>
            
              <data encoding="base64">RnJvbSAyODc5N2Y5OTg2ZTI1ZDNjMzgxN2FjZjdhYzVkNzVjNTNhZDc1NzM5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/QWxlamFuZHJvPTIwUGk9QzM9QjFlaXJvPz0g
PGFwaW5oZWlyb0BpZ2FsaWEuY29tPgpEYXRlOiBNb24sIDEzIEF1ZyAyMDEyIDE4OjU2OjMxICsw
MjAwClN1YmplY3Q6IFtQQVRDSF0gW0d0a10gRG9qbyB0b2dnbGUgYnV0dG9ucyBzaG91bGQgZXhw
b3NlIFJPTEVfVE9HR0xFX0JVVFRPTgogbm90IFJPTEVfUFVTSF9CVVRUT04KIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzgxOQoKQWRkZWQgYSBleHRyYSBydWxlIG9u
IHRoZSBtYXBwaW5nIG9mIFdlYkNvcmUgYWNjZXNzaWJpbGl0eQpyb2xlcyBhbmQgQVRLIHJvbGVz
IGJhc2VkIG9uIGFyaWEtcHJlc3NlZCBhdHRyaWJ1dGUKaHR0cDovL3d3dy53My5vcmcvVFIvd2Fp
LWFyaWEvc3RhdGVzX2FuZF9wcm9wZXJ0aWVzI2FyaWEtcHJlc3NlZAotLS0KIFNvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oIHwgICAgMSArCiAuLi4vYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCAgICB8ICAgIDUgKysrKysK
IC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaCAgICAgIHwgICAg
MSArCiAuLi4vZ3RrL1dlYktpdEFjY2Vzc2libGVXcmFwcGVyQXRrLmNwcCAgICAgICAgICAgICB8
ICAgMTEgKysrKysrKystLS0KIDQgZmlsZXMgY2hhbmdlZCwgMTUgaW5zZXJ0aW9ucygrKSwgMyBk
ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU9iamVjdC5oCmluZGV4IDg4YjFmMzkuLjU1NjJjMDYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCkBAIC0zMzcsNiAr
MzM3LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc1dlYkFyZWEoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0NoZWNrYm94KCkgY29uc3QgeyByZXR1
cm4gcm9sZVZhbHVlKCkgPT0gQ2hlY2tCb3hSb2xlOyB9CiAgICAgdmlydHVhbCBib29sIGlzUmFk
aW9CdXR0b24oKSBjb25zdCB7IHJldHVybiByb2xlVmFsdWUoKSA9PSBSYWRpb0J1dHRvblJvbGU7
IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNUb2dnbGVCdXR0b24oKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0xpc3RCb3goKSBjb25zdCB7IHJldHVybiByb2xlVmFs
dWUoKSA9PSBMaXN0Qm94Um9sZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc01lZGlhVGltZWxpbmUo
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc01lbnVSZWxhdGVk
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCmluZGV4IGYwNmUx
ZTUuLjMxOGEyZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcApAQCAtNDg4LDYgKzQ4OCwxMSBAQCBi
b29sIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmlzSW1hZ2VCdXR0b24oKSBjb25zdAogICAg
IHJldHVybiBpc05hdGl2ZUltYWdlKCkgJiYgcm9sZVZhbHVlKCkgPT0gQnV0dG9uUm9sZTsKIH0K
IAorYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojppc1RvZ2dsZUJ1dHRvbigpIGNvbnN0
Cit7CisgICAgcmV0dXJuICghZ2V0QXR0cmlidXRlKGFyaWFfcHJlc3NlZEF0dHIpLmlzRW1wdHko
KSk7Cit9CisKIGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aXNBbmNob3IoKSBjb25z
dAogewogICAgIHJldHVybiAhaXNOYXRpdmVJbWFnZSgpICYmIGlzTGluaygpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3QuaAppbmRleCA4ZmUwYWZlLi45N2FhMzgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaApAQCAtNzEsNiAr
NzEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzSGVhZGluZygpIGNvbnN0OwogICAg
IHZpcnR1YWwgYm9vbCBpc0xpbmsoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNJbWFnZUJ1
dHRvbigpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBpc1RvZ2dsZUJ1dHRvbigpIGNvbnN0Owog
ICAgIHZpcnR1YWwgYm9vbCBpc0ltYWdlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzTmF0
aXZlSW1hZ2UoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNQYXNzd29yZEZpZWxkKCkgY29u
c3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9XZWJLaXRB
Y2Nlc3NpYmxlV3JhcHBlckF0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0
ay9XZWJLaXRBY2Nlc3NpYmxlV3JhcHBlckF0ay5jcHAKaW5kZXggN2Y2Yjg5NC4uYzRjNmJjMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvV2ViS2l0QWNjZXNz
aWJsZVdyYXBwZXJBdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3Rr
L1dlYktpdEFjY2Vzc2libGVXcmFwcGVyQXRrLmNwcApAQCAtNDIzLDEzICs0MjMsMTggQEAgc3Rh
dGljIEF0a0F0dHJpYnV0ZVNldCogd2Via2l0QWNjZXNzaWJsZUdldEF0dHJpYnV0ZXMoQXRrT2Jq
ZWN0KiBvYmplY3QpCiAgICAgcmV0dXJuIGF0dHJpYnV0ZVNldDsKIH0KIAotc3RhdGljIEF0a1Jv
bGUgYXRrUm9sZShBY2Nlc3NpYmlsaXR5Um9sZSByb2xlKQorc3RhdGljIEF0a1JvbGUgYXRrUm9s
ZShBY2Nlc3NpYmlsaXR5T2JqZWN0KiBjb3JlT2JqZWN0KQogeworICAgIEFjY2Vzc2liaWxpdHlS
b2xlIHJvbGUgPSBjb3JlT2JqZWN0LT5yb2xlVmFsdWUoKTsKKwogICAgIHN3aXRjaCAocm9sZSkg
ewogICAgIGNhc2UgVW5rbm93blJvbGU6CiAgICAgICAgIHJldHVybiBBVEtfUk9MRV9VTktOT1dO
OwogICAgIGNhc2UgQnV0dG9uUm9sZToKLSAgICAgICAgcmV0dXJuIEFUS19ST0xFX1BVU0hfQlVU
VE9OOworICAgICAgICBpZiAoY29yZU9iamVjdC0+aXNUb2dnbGVCdXR0b24oKSkKKyAgICAgICAg
ICAgIHJldHVybiBBVEtfUk9MRV9UT0dHTEVfQlVUVE9OOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICByZXR1cm4gQVRLX1JPTEVfUFVTSF9CVVRUT047CiAgICAgY2FzZSBSYWRpb0J1dHRvblJv
bGU6CiAgICAgICAgIHJldHVybiBBVEtfUk9MRV9SQURJT19CVVRUT047CiAgICAgY2FzZSBDaGVj
a0JveFJvbGU6CkBAIC01MzgsNyArNTQzLDcgQEAgc3RhdGljIEF0a1JvbGUgd2Via2l0QWNjZXNz
aWJsZUdldFJvbGUoQXRrT2JqZWN0KiBvYmplY3QpCiAgICAgaWYgKGNvcmVPYmplY3QtPmlzUGFz
c3dvcmRGaWVsZCgpKQogICAgICAgICByZXR1cm4gQVRLX1JPTEVfUEFTU1dPUkRfVEVYVDsKIAot
ICAgIHJldHVybiBhdGtSb2xlKGNvcmVPYmplY3QtPnJvbGVWYWx1ZSgpKTsKKyAgICByZXR1cm4g
YXRrUm9sZShjb3JlT2JqZWN0KTsKIH0KIAogc3RhdGljIGJvb2wgaXNUZXh0V2l0aENhcmV0KEFj
Y2Vzc2liaWxpdHlPYmplY3QqIGNvcmVPYmplY3QpCi0tIAoxLjcuOS41Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>158354</attachid>
            <date>2012-08-14 10:02:18 -0700</date>
            <delta_ts>2012-08-14 11:14:38 -0700</delta_ts>
            <desc>Fixes the  bug</desc>
            <filename>0001-Gtk-Dojo-toggle-buttons-should-expose-ROLE_TOGGLE_BU.patch</filename>
            <type>text/plain</type>
            <size>8092</size>
            <attacher name="Alejandro Piñeiro">apinheiro</attacher>
            
              <data encoding="base64">RnJvbSA1OTViNWY5YmFmYzcyM2JjZTY3ZGE3NmRiMjlmNDFjN2U5ZWY5YmIyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/QWxlamFuZHJvPTIwUGk9QzM9QjFlaXJvPz0g
PGFwaW5oZWlyb0BpZ2FsaWEuY29tPgpEYXRlOiBNb24sIDEzIEF1ZyAyMDEyIDE4OjU2OjMxICsw
MjAwClN1YmplY3Q6IFtQQVRDSF0gW0d0a10gRG9qbyB0b2dnbGUgYnV0dG9ucyBzaG91bGQgZXhw
b3NlIFJPTEVfVE9HR0xFX0JVVFRPTgogbm90IFJPTEVfUFVTSF9CVVRUT04KIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzgxOQoKQWRkZWQgYSBleHRyYSBydWxlIG9u
IHRoZSBtYXBwaW5nIG9mIFdlYkNvcmUgYWNjZXNzaWJpbGl0eSByb2xlcwphbmQgQVRLIHJvbGVz
IGJhc2VkIG9uIGFyaWEtcHJlc3NlZCBhdHRyaWJ1dGUgdG8gZXhwb3NlCkFUS19ST0xFX1RPR0dM
RV9CVVRUT04gd2hlbiByZXF1aXJlZApodHRwOi8vd3d3LnczLm9yZy9UUi93YWktYXJpYS9zdGF0
ZXNfYW5kX3Byb3BlcnRpZXMjYXJpYS1wcmVzc2VkCi0tLQogTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE1ICsrKysrKysrCiAuLi4vYXJpYS10
b2dnbGUtYnV0dG9uLXJvbGUtZXhwZWN0ZWQudHh0ICAgICAgICAgICB8ICAgMTIgKysrKysrKwog
Li4uL2d0ay9hY2Nlc3NpYmlsaXR5L2FyaWEtdG9nZ2xlLWJ1dHRvbi1yb2xlLmh0bWwgfCAgIDM3
ICsrKysrKysrKysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8ICAgMjMgKysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCB8ICAgIDEgKwogLi4uL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgICAgfCAgICA2ICsrKysKIC4uLi9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaCAgICAgIHwgICAgMSArCiAuLi4v
Z3RrL1dlYktpdEFjY2Vzc2libGVXcmFwcGVyQXRrLmNwcCAgICAgICAgICAgICB8ICAgIDMgKysK
IDggZmlsZXMgY2hhbmdlZCwgOTggaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IExh
eW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2FyaWEtdG9nZ2xlLWJ1dHRvbi1y
b2xlLWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL3BsYXRmb3Jt
L2d0ay9hY2Nlc3NpYmlsaXR5L2FyaWEtdG9nZ2xlLWJ1dHRvbi1yb2xlLmh0bWwKCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
NTIyNDZjNy4uNjkwNzVmYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTA4LTE0ICBBbGVq
YW5kcm8gUGnDsWVpcm8gIDxhcGluaGVpcm9AaWdhbGlhLmNvbT4KKworICAgICAgICBbR3RrXSBE
b2pvIHRvZ2dsZSBidXR0b25zIHNob3VsZCBleHBvc2UgUk9MRV9UT0dHTEVfQlVUVE9OIG5vdCBS
T0xFX1BVU0hfQlVUVE9OCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03MzgxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZGVkIGEgZXh0cmEgcnVsZSBvbiB0aGUgbWFwcGluZyBvZiBXZWJDb3JlIGFjY2Vz
c2liaWxpdHkgcm9sZXMKKyAgICAgICAgYW5kIEFUSyByb2xlcyBiYXNlZCBvbiBhcmlhLXByZXNz
ZWQgYXR0cmlidXRlIHRvIGV4cG9zZQorICAgICAgICBBVEtfUk9MRV9UT0dHTEVfQlVUVE9OIHdo
ZW4gcmVxdWlyZWQKKyAgICAgICAgaHR0cDovL3d3dy53My5vcmcvVFIvd2FpLWFyaWEvc3RhdGVz
X2FuZF9wcm9wZXJ0aWVzI2FyaWEtcHJlc3NlZAorCisgICAgICAgICogcGxhdGZvcm0vZ3RrL2Fj
Y2Vzc2liaWxpdHkvYXJpYS10b2dnbGUtYnV0dG9uLXJvbGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9hcmlhLXRvZ2dsZS1idXR0b24t
cm9sZS5odG1sOiBBZGRlZC4KKwogMjAxMi0wOC0wNyAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3Nz
eUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtRdF0gVW5yZXZpZXdlZCBnYXJkZW5pbmcuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9hcmlhLXRvZ2ds
ZS1idXR0b24tcm9sZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNj
ZXNzaWJpbGl0eS9hcmlhLXRvZ2dsZS1idXR0b24tcm9sZS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTU5M2RiMgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2FyaWEtdG9nZ2xlLWJ1dHRvbi1y
b2xlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACisgCitUaGlzIHRlc3RzIHRoYXQgdGhl
IHJvbGUgZXhwb3NlZCB3aGVuIGEgYnV0dG9uIGhhcyB0aGUgYXR0cmlidXRlIGFyaWEtcHJlc3Nl
ZCBpcyB0b2dnbGUgYnV0dG9ucyBpbiBHVEsuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1BB
U1Mgb2JqMS5yb2xlIGlzICdBWFJvbGU6IHRvZ2dsZSBidXR0b24nCitQQVNTIG9iajIucm9sZSBp
cyAnQVhSb2xlOiB0b2dnbGUgYnV0dG9uJworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9hcmlhLXRvZ2dsZS1idXR0b24tcm9sZS5odG1sIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJpYS10b2dnbGUtYnV0dG9uLXJv
bGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNzExNmYxCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJp
YS10b2dnbGUtYnV0dG9uLXJvbGUuaHRtbApAQCAtMCwwICsxLDM3IEBACis8IURPQ1RZUEUgSFRN
TCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQ+CisKK2Z1bmN0aW9uIHJ1blRlc3QoKQoreworICBpZiAod2luZG93LmFjY2Vz
c2liaWxpdHlDb250cm9sbGVyKSB7CisKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib2Jq
MSIpLmZvY3VzKCk7CisgICAgb2JqMSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZvY3VzZWRF
bGVtZW50OworCisgICAgc2hvdWxkQmUoIm9iajEucm9sZSIsICInQVhSb2xlOiB0b2dnbGUgYnV0
dG9uJyIpOworCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm9iajIiKS5mb2N1cygpOwor
ICAgIG9iajIgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5mb2N1c2VkRWxlbWVudDsKKworICAg
IHNob3VsZEJlKCJvYmoyLnJvbGUiLCAiJ0FYUm9sZTogdG9nZ2xlIGJ1dHRvbiciKTsKKyAgfQor
fQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBpZD0iYm9keSIgb25sb2FkPSJydW5UZXN0KCki
PgorPGlucHV0IHR5cGU9ImJ1dHRvbiIgaWQ9Im9iajEiIHJvbGU9ImJ1dHRvbiIgYXJpYS1wcmVz
c2VkPSJ0cnVlIj4KKzxpbnB1dCB0eXBlPSJidXR0b24iIGlkPSJvYmoyIiByb2xlPSJidXR0b24i
IGFyaWEtcHJlc3NlZD0iZmFsc2UiPgorCis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMg
dGhhdCB0aGUgcm9sZSBleHBvc2VkIHdoZW4gYSBidXR0b24gaGFzIHRoZSBhdHRyaWJ1dGUgYXJp
YS1wcmVzc2VkIGlzIHRvZ2dsZSBidXR0b25zIGluIEdUSy4iKTsKKworPC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkOGNmM2UxLi4yYzZhOTRkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTItMDgtMTQgIEFsZWphbmRybyBQacOxZWly
byAgPGFwaW5oZWlyb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtHdGtdIERvam8gdG9nZ2xlIGJ1
dHRvbnMgc2hvdWxkIGV4cG9zZSBST0xFX1RPR0dMRV9CVVRUT04gbm90IFJPTEVfUFVTSF9CVVRU
T04KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczODE5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQg
YSBleHRyYSBydWxlIG9uIHRoZSBtYXBwaW5nIG9mIFdlYkNvcmUgYWNjZXNzaWJpbGl0eSByb2xl
cworICAgICAgICBhbmQgQVRLIHJvbGVzIGJhc2VkIG9uIGFyaWEtcHJlc3NlZCBhdHRyaWJ1dGUg
dG8gZXhwb3NlCisgICAgICAgIEFUS19ST0xFX1RPR0dMRV9CVVRUT04gd2hlbiByZXF1aXJlZAor
CisgICAgICAgIFRlc3Q6IHBsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2FyaWEtdG9nZ2xlLWJ1
dHRvbi1yb2xlLmh0bWwKKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9i
amVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6aXNUb2dnbGVC
dXR0b24pOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojppc1Rv
Z2dsZUJ1dHRvbik6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaDoKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3QpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvZ3RrL1dlYktpdEFjY2Vzc2libGVX
cmFwcGVyQXRrLmNwcDoKKyAgICAgICAgKHdlYmtpdEFjY2Vzc2libGVHZXRSb2xlKToKKwogMjAx
Mi0wOC0wNyAgVnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBXZWIgSW5zcGVjdG9yOiBEbyBub3QgZGlzYWJsZSBuZXR3b3JrIHRyYWNraW5nIHdoaWxlIHBy
b2ZpbGluZyBjcHUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU9iamVjdC5oCmluZGV4IDg4YjFmMzkuLjU1NjJjMDYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCkBAIC0zMzcsNiAr
MzM3LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc1dlYkFyZWEoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0NoZWNrYm94KCkgY29uc3QgeyByZXR1
cm4gcm9sZVZhbHVlKCkgPT0gQ2hlY2tCb3hSb2xlOyB9CiAgICAgdmlydHVhbCBib29sIGlzUmFk
aW9CdXR0b24oKSBjb25zdCB7IHJldHVybiByb2xlVmFsdWUoKSA9PSBSYWRpb0J1dHRvblJvbGU7
IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNUb2dnbGVCdXR0b24oKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0xpc3RCb3goKSBjb25zdCB7IHJldHVybiByb2xlVmFs
dWUoKSA9PSBMaXN0Qm94Um9sZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc01lZGlhVGltZWxpbmUo
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc01lbnVSZWxhdGVk
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCmluZGV4IGYwNmUx
ZTUuLjMxNmY1MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcApAQCAtNDg4LDYgKzQ4OCwxMiBAQCBi
b29sIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmlzSW1hZ2VCdXR0b24oKSBjb25zdAogICAg
IHJldHVybiBpc05hdGl2ZUltYWdlKCkgJiYgcm9sZVZhbHVlKCkgPT0gQnV0dG9uUm9sZTsKIH0K
IAorYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojppc1RvZ2dsZUJ1dHRvbigpIGNvbnN0
Cit7CisgICAgcmV0dXJuIChpc0J1dHRvbigpIHx8IGFyaWFSb2xlQXR0cmlidXRlKCkgID09IEJ1
dHRvblJvbGUpICYKKyAgICAgICAgIWdldEF0dHJpYnV0ZShhcmlhX3ByZXNzZWRBdHRyKS5pc0Vt
cHR5KCk7Cit9CisKIGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aXNBbmNob3IoKSBj
b25zdAogewogICAgIHJldHVybiAhaXNOYXRpdmVJbWFnZSgpICYmIGlzTGluaygpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3QuaAppbmRleCA4ZmUwYWZlLi45N2FhMzgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaApAQCAtNzEs
NiArNzEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzSGVhZGluZygpIGNvbnN0Owog
ICAgIHZpcnR1YWwgYm9vbCBpc0xpbmsoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNJbWFn
ZUJ1dHRvbigpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBpc1RvZ2dsZUJ1dHRvbigpIGNvbnN0
OwogICAgIHZpcnR1YWwgYm9vbCBpc0ltYWdlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlz
TmF0aXZlSW1hZ2UoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNQYXNzd29yZEZpZWxkKCkg
Y29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9XZWJL
aXRBY2Nlc3NpYmxlV3JhcHBlckF0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L2d0ay9XZWJLaXRBY2Nlc3NpYmxlV3JhcHBlckF0ay5jcHAKaW5kZXggN2Y2Yjg5NC4uNjFlNmJl
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvV2ViS2l0QWNj
ZXNzaWJsZVdyYXBwZXJBdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
Z3RrL1dlYktpdEFjY2Vzc2libGVXcmFwcGVyQXRrLmNwcApAQCAtNTM4LDYgKzUzOCw5IEBAIHN0
YXRpYyBBdGtSb2xlIHdlYmtpdEFjY2Vzc2libGVHZXRSb2xlKEF0a09iamVjdCogb2JqZWN0KQog
ICAgIGlmIChjb3JlT2JqZWN0LT5pc1Bhc3N3b3JkRmllbGQoKSkKICAgICAgICAgcmV0dXJuIEFU
S19ST0xFX1BBU1NXT1JEX1RFWFQ7CiAKKyAgICBpZiAoY29yZU9iamVjdC0+aXNUb2dnbGVCdXR0
b24oKSkKKyAgICAgICAgcmV0dXJuIEFUS19ST0xFX1RPR0dMRV9CVVRUT047CisKICAgICByZXR1
cm4gYXRrUm9sZShjb3JlT2JqZWN0LT5yb2xlVmFsdWUoKSk7CiB9CiAKLS0gCjEuNy45LjUKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>158374</attachid>
            <date>2012-08-14 11:14:38 -0700</date>
            <delta_ts>2012-08-15 03:28:12 -0700</delta_ts>
            <desc>Fixes the bug</desc>
            <filename>0001-Dojo-toggle-buttons-should-expose-ROLE_TOGGLE_BUTTON.patch</filename>
            <type>text/plain</type>
            <size>8417</size>
            <attacher name="Alejandro Piñeiro">apinheiro</attacher>
            
              <data encoding="base64">RnJvbSBhZDgxNzE2NzVmNDk5ZGU2NmMyOTIzYTc1YTVmZTU3MzFjMGI1MWMwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/QWxlamFuZHJvPTIwUGk9QzM9QjFlaXJvPz0g
PGFwaW5oZWlyb0BpZ2FsaWEuY29tPgpEYXRlOiBNb24sIDEzIEF1ZyAyMDEyIDE4OjU2OjMxICsw
MjAwClN1YmplY3Q6IFtQQVRDSF0gRG9qbyB0b2dnbGUgYnV0dG9ucyBzaG91bGQgZXhwb3NlIFJP
TEVfVE9HR0xFX0JVVFRPTiBub3QKIFJPTEVfUFVTSF9CVVRUT04KIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzgxOQoKQWRkZWQgYSBleHRyYSBydWxlIG9uIHRoZSBt
YXBwaW5nIG9mIFdlYkNvcmUgYWNjZXNzaWJpbGl0eSByb2xlcwphbmQgQVRLIHJvbGVzIGJhc2Vk
IG9uIGFyaWEtcHJlc3NlZCBhdHRyaWJ1dGUgdG8gZXhwb3NlCkFUS19ST0xFX1RPR0dMRV9CVVRU
T04gd2hlbiByZXF1aXJlZApodHRwOi8vd3d3LnczLm9yZy9UUi93YWktYXJpYS9zdGF0ZXNfYW5k
X3Byb3BlcnRpZXMjYXJpYS1wcmVzc2VkCi0tLQogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE1ICsrKysrKysrCiAuLi4vYXJpYS10b2dnbGUt
YnV0dG9uLXJvbGUtZXhwZWN0ZWQudHh0ICAgICAgICAgICB8ICAgMTIgKysrKysrKwogLi4uL2d0
ay9hY2Nlc3NpYmlsaXR5L2FyaWEtdG9nZ2xlLWJ1dHRvbi1yb2xlLmh0bWwgfCAgIDM3ICsrKysr
KysrKysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgMjcgKysrKysrKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oIHwgICAgMSArCiAuLi4vYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCAgICB8ICAgIDYgKysrKwogLi4uL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oICAgICAgfCAgICAxICsKIC4uLi9ndGsv
V2ViS2l0QWNjZXNzaWJsZVdyYXBwZXJBdGsuY3BwICAgICAgICAgICAgIHwgICAgMyArKwogOCBm
aWxlcyBjaGFuZ2VkLCAxMDIgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2FyaWEtdG9nZ2xlLWJ1dHRvbi1yb2xl
LWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9hY2Nlc3NpYmlsaXR5L2FyaWEtdG9nZ2xlLWJ1dHRvbi1yb2xlLmh0bWwKCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNTIy
NDZjNy4uNDYwMWU4ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTA4LTE0ICBBbGVqYW5k
cm8gUGnDsWVpcm8gIDxhcGluaGVpcm9AaWdhbGlhLmNvbT4KKworICAgICAgICBbR3RrXSBEb2pv
IHRvZ2dsZSBidXR0b25zIHNob3VsZCBleHBvc2UgUk9MRV9UT0dHTEVfQlVUVE9OIG5vdCBST0xF
X1BVU0hfQlVUVE9OCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD03MzgxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZGVkIGEgZXh0cmEgcnVsZSBvbiB0aGUgbWFwcGluZyBvZiBXZWJDb3JlIGFjY2Vzc2li
aWxpdHkgcm9sZXMKKyAgICAgICAgYW5kIEFUSyByb2xlcyBiYXNlZCBvbiBhcmlhLXByZXNzZWQg
YXR0cmlidXRlIHRvIGV4cG9zZQorICAgICAgICBBVEtfUk9MRV9UT0dHTEVfQlVUVE9OIHdoZW4g
cmVxdWlyZWQuCisgICAgICAgIGh0dHA6Ly93d3cudzMub3JnL1RSL3dhaS1hcmlhL3N0YXRlc19h
bmRfcHJvcGVydGllcyNhcmlhLXByZXNzZWQKKworICAgICAgICAqIHBsYXRmb3JtL2d0ay9hY2Nl
c3NpYmlsaXR5L2FyaWEtdG9nZ2xlLWJ1dHRvbi1yb2xlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJpYS10b2dnbGUtYnV0dG9uLXJv
bGUuaHRtbDogQWRkZWQuCisKIDIwMTItMDgtMDcgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lA
d2Via2l0Lm9yZz4KIAogICAgICAgICBbUXRdIFVucmV2aWV3ZWQgZ2FyZGVuaW5nLgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJpYS10b2dnbGUt
YnV0dG9uLXJvbGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vz
c2liaWxpdHkvYXJpYS10b2dnbGUtYnV0dG9uLXJvbGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE1OTNkYjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9hcmlhLXRvZ2dsZS1idXR0b24tcm9s
ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorIAorVGhpcyB0ZXN0cyB0aGF0IHRoZSBy
b2xlIGV4cG9zZWQgd2hlbiBhIGJ1dHRvbiBoYXMgdGhlIGF0dHJpYnV0ZSBhcmlhLXByZXNzZWQg
aXMgdG9nZ2xlIGJ1dHRvbnMgaW4gR1RLLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitQQVNT
IG9iajEucm9sZSBpcyAnQVhSb2xlOiB0b2dnbGUgYnV0dG9uJworUEFTUyBvYmoyLnJvbGUgaXMg
J0FYUm9sZTogdG9nZ2xlIGJ1dHRvbicKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJpYS10b2dnbGUtYnV0dG9uLXJvbGUuaHRtbCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2FyaWEtdG9nZ2xlLWJ1dHRvbi1yb2xl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzcxMTZmMQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2FyaWEt
dG9nZ2xlLWJ1dHRvbi1yb2xlLmh0bWwKQEAgLTAsMCArMSwzNyBAQAorPCFET0NUWVBFIEhUTUwg
UFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0PgorCitmdW5jdGlvbiBydW5UZXN0KCkKK3sKKyAgaWYgKHdpbmRvdy5hY2Nlc3Np
YmlsaXR5Q29udHJvbGxlcikgeworCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm9iajEi
KS5mb2N1cygpOworICAgIG9iajEgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5mb2N1c2VkRWxl
bWVudDsKKworICAgIHNob3VsZEJlKCJvYmoxLnJvbGUiLCAiJ0FYUm9sZTogdG9nZ2xlIGJ1dHRv
biciKTsKKworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvYmoyIikuZm9jdXMoKTsKKyAg
ICBvYmoyID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQ7CisKKyAgICBz
aG91bGRCZSgib2JqMi5yb2xlIiwgIidBWFJvbGU6IHRvZ2dsZSBidXR0b24nIik7CisgIH0KK30K
Kzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgaWQ9ImJvZHkiIG9ubG9hZD0icnVuVGVzdCgpIj4K
KzxpbnB1dCB0eXBlPSJidXR0b24iIGlkPSJvYmoxIiByb2xlPSJidXR0b24iIGFyaWEtcHJlc3Nl
ZD0idHJ1ZSI+Cis8aW5wdXQgdHlwZT0iYnV0dG9uIiBpZD0ib2JqMiIgcm9sZT0iYnV0dG9uIiBh
cmlhLXByZXNzZWQ9ImZhbHNlIj4KKworPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlk
PSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRo
YXQgdGhlIHJvbGUgZXhwb3NlZCB3aGVuIGEgYnV0dG9uIGhhcyB0aGUgYXR0cmlidXRlIGFyaWEt
cHJlc3NlZCBpcyB0b2dnbGUgYnV0dG9ucyBpbiBHVEsuIik7CisKKzwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDhjZjNlMS4uOGExYzI0YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTA4LTE0ICBBbGVqYW5kcm8gUGnDsWVpcm8g
IDxhcGluaGVpcm9AaWdhbGlhLmNvbT4KKworICAgICAgICBbR3RrXSBEb2pvIHRvZ2dsZSBidXR0
b25zIHNob3VsZCBleHBvc2UgUk9MRV9UT0dHTEVfQlVUVE9OIG5vdCBST0xFX1BVU0hfQlVUVE9O
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzgxOQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIGEg
ZXh0cmEgcnVsZSBvbiB0aGUgbWFwcGluZyBvZiBXZWJDb3JlIGFjY2Vzc2liaWxpdHkgcm9sZXMK
KyAgICAgICAgYW5kIEFUSyByb2xlcyBiYXNlZCBvbiBhcmlhLXByZXNzZWQgYXR0cmlidXRlIHRv
IGV4cG9zZQorICAgICAgICBBVEtfUk9MRV9UT0dHTEVfQlVUVE9OIHdoZW4gcmVxdWlyZWQuCisg
ICAgICAgIGh0dHA6Ly93d3cudzMub3JnL1RSL3dhaS1hcmlhL3N0YXRlc19hbmRfcHJvcGVydGll
cyNhcmlhLXByZXNzZWQKKworICAgICAgICBUZXN0OiBwbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0
eS9hcmlhLXRvZ2dsZS1idXR0b24tcm9sZS5odG1sCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlP
YmplY3Q6OmlzVG9nZ2xlQnV0dG9uKTogTmV3IG1ldGhvZCB0aGF0CisgICAgICAgIGNoZWNrcyBp
ZiBhIGJ1dHRvbiBpcyBhIHRvZ2dsZSBidXR0b24uIERlZmF1bHQgaW1wbGVtZW50YXRpb24KKyAg
ICAgICAgaXMgZmFsc2UuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3Q6OmlzVG9nZ2xlQnV0dG9uKTogSW1wbGVtZW50YXRpb24KKyAgICAgICAgb2YgaXNUb2dnbGVC
dXR0b24gZm9yIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuCisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Lmg6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2d0ay9XZWJLaXRBY2Nlc3Np
YmxlV3JhcHBlckF0ay5jcHA6CisgICAgICAgICh3ZWJraXRBY2Nlc3NpYmxlR2V0Um9sZSk6IFVz
ZSBpc1RvZ2dsZUJ1dHRvbiBpbiBvcmRlciB0bworICAgICAgICBkZWNpZGUgaWYgQVRLX1JPTEVf
VE9HR0xFX0JVVFRPTiBzaG91bGQgYmUgcmV0dXJuZWQuCisKIDIwMTItMDgtMDcgIFZzZXZvbG9k
IFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3Rvcjog
RG8gbm90IGRpc2FibGUgbmV0d29yayB0cmFja2luZyB3aGlsZSBwcm9maWxpbmcgY3B1LgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0
LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaApp
bmRleCA4OGIxZjM5Li41NTYyYzA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaApAQCAtMzM3LDYgKzMzNyw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIGJvb2wgaXNXZWJBcmVhKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICB2aXJ0dWFsIGJvb2wgaXNDaGVja2JveCgpIGNvbnN0IHsgcmV0dXJuIHJvbGVWYWx1ZSgpID09
IENoZWNrQm94Um9sZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1JhZGlvQnV0dG9uKCkgY29uc3Qg
eyByZXR1cm4gcm9sZVZhbHVlKCkgPT0gUmFkaW9CdXR0b25Sb2xlOyB9CisgICAgdmlydHVhbCBi
b29sIGlzVG9nZ2xlQnV0dG9uKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFs
IGJvb2wgaXNMaXN0Qm94KCkgY29uc3QgeyByZXR1cm4gcm9sZVZhbHVlKCkgPT0gTGlzdEJveFJv
bGU7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNNZWRpYVRpbWVsaW5lKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNNZW51UmVsYXRlZCgpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAppbmRleCBmMDZlMWU1Li5jNTZkYzg2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdC5jcHAKQEAgLTQ4OCw2ICs0ODgsMTIgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0Ojppc0ltYWdlQnV0dG9uKCkgY29uc3QKICAgICByZXR1cm4gaXNOYXRpdmVJ
bWFnZSgpICYmIHJvbGVWYWx1ZSgpID09IEJ1dHRvblJvbGU7CiB9CiAKK2Jvb2wgQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdDo6aXNUb2dnbGVCdXR0b24oKSBjb25zdAoreworICAgIHJldHVybiAo
aXNCdXR0b24oKSB8fCBhcmlhUm9sZUF0dHJpYnV0ZSgpID09IEJ1dHRvblJvbGUpICYmCisgICAg
ICAgICFnZXRBdHRyaWJ1dGUoYXJpYV9wcmVzc2VkQXR0cikuaXNFbXB0eSgpOworfQorCiBib29s
IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmlzQW5jaG9yKCkgY29uc3QKIHsKICAgICByZXR1
cm4gIWlzTmF0aXZlSW1hZ2UoKSAmJiBpc0xpbmsoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgKaW5kZXggOGZl
MGFmZS4uOTdhYTM4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgKQEAgLTcxLDYgKzcxLDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgYm9vbCBpc0hlYWRpbmcoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wg
aXNMaW5rKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzSW1hZ2VCdXR0b24oKSBjb25zdDsK
KyAgICB2aXJ0dWFsIGJvb2wgaXNUb2dnbGVCdXR0b24oKSBjb25zdDsKICAgICB2aXJ0dWFsIGJv
b2wgaXNJbWFnZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc05hdGl2ZUltYWdlKCkgY29u
c3Q7CiAgICAgdmlydHVhbCBib29sIGlzUGFzc3dvcmRGaWVsZCgpIGNvbnN0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvV2ViS2l0QWNjZXNzaWJsZVdyYXBw
ZXJBdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvV2ViS2l0QWNjZXNz
aWJsZVdyYXBwZXJBdGsuY3BwCmluZGV4IDdmNmI4OTQuLjYxZTZiZTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL1dlYktpdEFjY2Vzc2libGVXcmFwcGVyQXRr
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9XZWJLaXRBY2Nlc3Np
YmxlV3JhcHBlckF0ay5jcHAKQEAgLTUzOCw2ICs1MzgsOSBAQCBzdGF0aWMgQXRrUm9sZSB3ZWJr
aXRBY2Nlc3NpYmxlR2V0Um9sZShBdGtPYmplY3QqIG9iamVjdCkKICAgICBpZiAoY29yZU9iamVj
dC0+aXNQYXNzd29yZEZpZWxkKCkpCiAgICAgICAgIHJldHVybiBBVEtfUk9MRV9QQVNTV09SRF9U
RVhUOwogCisgICAgaWYgKGNvcmVPYmplY3QtPmlzVG9nZ2xlQnV0dG9uKCkpCisgICAgICAgIHJl
dHVybiBBVEtfUk9MRV9UT0dHTEVfQlVUVE9OOworCiAgICAgcmV0dXJuIGF0a1JvbGUoY29yZU9i
amVjdC0+cm9sZVZhbHVlKCkpOwogfQogCi0tIAoxLjcuOS41Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>158537</attachid>
            <date>2012-08-15 03:28:12 -0700</date>
            <delta_ts>2012-08-16 03:58:41 -0700</delta_ts>
            <desc>Fixes the bug</desc>
            <filename>0001-Dojo-toggle-buttons-should-expose-ROLE_TOGGLE_BUTTON.patch</filename>
            <type>text/plain</type>
            <size>8752</size>
            <attacher name="Alejandro Piñeiro">apinheiro</attacher>
            
              <data encoding="base64">RnJvbSA1MDY4ZThhYmExMzgwZWY1MjY0MWViYWZmYmY4ZjdkNjcxZDUzYmEyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/QWxlamFuZHJvPTIwUGk9QzM9QjFlaXJvPz0g
PGFwaW5oZWlyb0BpZ2FsaWEuY29tPgpEYXRlOiBNb24sIDEzIEF1ZyAyMDEyIDE4OjU2OjMxICsw
MjAwClN1YmplY3Q6IFtQQVRDSF0gRG9qbyB0b2dnbGUgYnV0dG9ucyBzaG91bGQgZXhwb3NlIFJP
TEVfVE9HR0xFX0JVVFRPTiBub3QKIFJPTEVfUFVTSF9CVVRUT04KIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzgxOQoKQWRkZWQgYSBleHRyYSBydWxlIG9uIHRoZSBt
YXBwaW5nIG9mIFdlYkNvcmUgYWNjZXNzaWJpbGl0eSByb2xlcwphbmQgQVRLIHJvbGVzIGJhc2Vk
IG9uIGFyaWEtcHJlc3NlZCBhdHRyaWJ1dGUgdG8gZXhwb3NlCkFUS19ST0xFX1RPR0dMRV9CVVRU
T04gd2hlbiByZXF1aXJlZApodHRwOi8vd3d3LnczLm9yZy9UUi93YWktYXJpYS9zdGF0ZXNfYW5k
X3Byb3BlcnRpZXMjYXJpYS1wcmVzc2VkCi0tLQogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE1ICsrKysrKysrCiAuLi4vYXJpYS10b2dnbGUt
YnV0dG9uLXJvbGUtZXhwZWN0ZWQudHh0ICAgICAgICAgICB8ICAgMTIgKysrKysrKwogLi4uL2d0
ay9hY2Nlc3NpYmlsaXR5L2FyaWEtdG9nZ2xlLWJ1dHRvbi1yb2xlLmh0bWwgfCAgIDM3ICsrKysr
KysrKysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgMjcgKysrKysrKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oIHwgICAgMSArCiAuLi4vYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCAgICB8ICAgMTEgKysrKysrCiAuLi4vYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmggICAgICB8ICAgIDEgKwogLi4uL2d0
ay9XZWJLaXRBY2Nlc3NpYmxlV3JhcHBlckF0ay5jcHAgICAgICAgICAgICAgfCAgICAzICsrCiA4
IGZpbGVzIGNoYW5nZWQsIDEwNyBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJpYS10b2dnbGUtYnV0dG9uLXJv
bGUtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL2FjY2Vzc2liaWxpdHkvYXJpYS10b2dnbGUtYnV0dG9uLXJvbGUuaHRtbAoKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1
MjI0NmM3Li40NjAxZThlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMDgtMTQgIEFsZWph
bmRybyBQacOxZWlybyAgPGFwaW5oZWlyb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtHdGtdIERv
am8gdG9nZ2xlIGJ1dHRvbnMgc2hvdWxkIGV4cG9zZSBST0xFX1RPR0dMRV9CVVRUT04gbm90IFJP
TEVfUFVTSF9CVVRUT04KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTczODE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkZWQgYSBleHRyYSBydWxlIG9uIHRoZSBtYXBwaW5nIG9mIFdlYkNvcmUgYWNjZXNz
aWJpbGl0eSByb2xlcworICAgICAgICBhbmQgQVRLIHJvbGVzIGJhc2VkIG9uIGFyaWEtcHJlc3Nl
ZCBhdHRyaWJ1dGUgdG8gZXhwb3NlCisgICAgICAgIEFUS19ST0xFX1RPR0dMRV9CVVRUT04gd2hl
biByZXF1aXJlZC4KKyAgICAgICAgaHR0cDovL3d3dy53My5vcmcvVFIvd2FpLWFyaWEvc3RhdGVz
X2FuZF9wcm9wZXJ0aWVzI2FyaWEtcHJlc3NlZAorCisgICAgICAgICogcGxhdGZvcm0vZ3RrL2Fj
Y2Vzc2liaWxpdHkvYXJpYS10b2dnbGUtYnV0dG9uLXJvbGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9hcmlhLXRvZ2dsZS1idXR0b24t
cm9sZS5odG1sOiBBZGRlZC4KKwogMjAxMi0wOC0wNyAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3Nz
eUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtRdF0gVW5yZXZpZXdlZCBnYXJkZW5pbmcuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9hcmlhLXRvZ2ds
ZS1idXR0b24tcm9sZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNj
ZXNzaWJpbGl0eS9hcmlhLXRvZ2dsZS1idXR0b24tcm9sZS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTU5M2RiMgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2FyaWEtdG9nZ2xlLWJ1dHRvbi1y
b2xlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACisgCitUaGlzIHRlc3RzIHRoYXQgdGhl
IHJvbGUgZXhwb3NlZCB3aGVuIGEgYnV0dG9uIGhhcyB0aGUgYXR0cmlidXRlIGFyaWEtcHJlc3Nl
ZCBpcyB0b2dnbGUgYnV0dG9ucyBpbiBHVEsuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1BB
U1Mgb2JqMS5yb2xlIGlzICdBWFJvbGU6IHRvZ2dsZSBidXR0b24nCitQQVNTIG9iajIucm9sZSBp
cyAnQVhSb2xlOiB0b2dnbGUgYnV0dG9uJworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9hcmlhLXRvZ2dsZS1idXR0b24tcm9sZS5odG1sIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJpYS10b2dnbGUtYnV0dG9uLXJv
bGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNzExNmYxCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJp
YS10b2dnbGUtYnV0dG9uLXJvbGUuaHRtbApAQCAtMCwwICsxLDM3IEBACis8IURPQ1RZUEUgSFRN
TCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQ+CisKK2Z1bmN0aW9uIHJ1blRlc3QoKQoreworICBpZiAod2luZG93LmFjY2Vz
c2liaWxpdHlDb250cm9sbGVyKSB7CisKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib2Jq
MSIpLmZvY3VzKCk7CisgICAgb2JqMSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZvY3VzZWRF
bGVtZW50OworCisgICAgc2hvdWxkQmUoIm9iajEucm9sZSIsICInQVhSb2xlOiB0b2dnbGUgYnV0
dG9uJyIpOworCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm9iajIiKS5mb2N1cygpOwor
ICAgIG9iajIgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5mb2N1c2VkRWxlbWVudDsKKworICAg
IHNob3VsZEJlKCJvYmoyLnJvbGUiLCAiJ0FYUm9sZTogdG9nZ2xlIGJ1dHRvbiciKTsKKyAgfQor
fQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBpZD0iYm9keSIgb25sb2FkPSJydW5UZXN0KCki
PgorPGlucHV0IHR5cGU9ImJ1dHRvbiIgaWQ9Im9iajEiIHJvbGU9ImJ1dHRvbiIgYXJpYS1wcmVz
c2VkPSJ0cnVlIj4KKzxpbnB1dCB0eXBlPSJidXR0b24iIGlkPSJvYmoyIiByb2xlPSJidXR0b24i
IGFyaWEtcHJlc3NlZD0iZmFsc2UiPgorCis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMg
dGhhdCB0aGUgcm9sZSBleHBvc2VkIHdoZW4gYSBidXR0b24gaGFzIHRoZSBhdHRyaWJ1dGUgYXJp
YS1wcmVzc2VkIGlzIHRvZ2dsZSBidXR0b25zIGluIEdUSy4iKTsKKworPC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkOGNmM2UxLi44YTFjMjRjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTItMDgtMTQgIEFsZWphbmRybyBQacOxZWly
byAgPGFwaW5oZWlyb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtHdGtdIERvam8gdG9nZ2xlIGJ1
dHRvbnMgc2hvdWxkIGV4cG9zZSBST0xFX1RPR0dMRV9CVVRUT04gbm90IFJPTEVfUFVTSF9CVVRU
T04KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczODE5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQg
YSBleHRyYSBydWxlIG9uIHRoZSBtYXBwaW5nIG9mIFdlYkNvcmUgYWNjZXNzaWJpbGl0eSByb2xl
cworICAgICAgICBhbmQgQVRLIHJvbGVzIGJhc2VkIG9uIGFyaWEtcHJlc3NlZCBhdHRyaWJ1dGUg
dG8gZXhwb3NlCisgICAgICAgIEFUS19ST0xFX1RPR0dMRV9CVVRUT04gd2hlbiByZXF1aXJlZC4K
KyAgICAgICAgaHR0cDovL3d3dy53My5vcmcvVFIvd2FpLWFyaWEvc3RhdGVzX2FuZF9wcm9wZXJ0
aWVzI2FyaWEtcHJlc3NlZAorCisgICAgICAgIFRlc3Q6IHBsYXRmb3JtL2d0ay9hY2Nlc3NpYmls
aXR5L2FyaWEtdG9nZ2xlLWJ1dHRvbi1yb2xlLmh0bWwKKworICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0
eU9iamVjdDo6aXNUb2dnbGVCdXR0b24pOiBOZXcgbWV0aG9kIHRoYXQKKyAgICAgICAgY2hlY2tz
IGlmIGEgYnV0dG9uIGlzIGEgdG9nZ2xlIGJ1dHRvbi4gRGVmYXVsdCBpbXBsZW1lbnRhdGlvbgor
ICAgICAgICBpcyBmYWxzZS4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdDo6aXNUb2dnbGVCdXR0b24pOiBJbXBsZW1lbnRhdGlvbgorICAgICAgICBvZiBpc1RvZ2ds
ZUJ1dHRvbiBmb3IgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC4KKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaDoKKyAgICAgICAgKEFjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3QpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvZ3RrL1dlYktpdEFjY2Vz
c2libGVXcmFwcGVyQXRrLmNwcDoKKyAgICAgICAgKHdlYmtpdEFjY2Vzc2libGVHZXRSb2xlKTog
VXNlIGlzVG9nZ2xlQnV0dG9uIGluIG9yZGVyIHRvCisgICAgICAgIGRlY2lkZSBpZiBBVEtfUk9M
RV9UT0dHTEVfQlVUVE9OIHNob3VsZCBiZSByZXR1cm5lZC4KKwogMjAxMi0wOC0wNyAgVnNldm9s
b2QgVmxhc292ICA8dnNldmlrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9y
OiBEbyBub3QgZGlzYWJsZSBuZXR3b3JrIHRyYWNraW5nIHdoaWxlIHByb2ZpbGluZyBjcHUuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmpl
Y3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5o
CmluZGV4IDg4YjFmMzkuLjU1NjJjMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCkBAIC0zMzcsNiArMzM3LDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgYm9vbCBpc1dlYkFyZWEoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQog
ICAgIHZpcnR1YWwgYm9vbCBpc0NoZWNrYm94KCkgY29uc3QgeyByZXR1cm4gcm9sZVZhbHVlKCkg
PT0gQ2hlY2tCb3hSb2xlOyB9CiAgICAgdmlydHVhbCBib29sIGlzUmFkaW9CdXR0b24oKSBjb25z
dCB7IHJldHVybiByb2xlVmFsdWUoKSA9PSBSYWRpb0J1dHRvblJvbGU7IH0KKyAgICB2aXJ0dWFs
IGJvb2wgaXNUb2dnbGVCdXR0b24oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1
YWwgYm9vbCBpc0xpc3RCb3goKSBjb25zdCB7IHJldHVybiByb2xlVmFsdWUoKSA9PSBMaXN0Qm94
Um9sZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc01lZGlhVGltZWxpbmUoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc01lbnVSZWxhdGVkKCkgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCmluZGV4IGYwNmUxZTUuLjZjOGMwNjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0LmNwcApAQCAtNDg4LDYgKzQ4OCwxNyBAQCBib29sIEFjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3Q6OmlzSW1hZ2VCdXR0b24oKSBjb25zdAogICAgIHJldHVybiBpc05hdGl2
ZUltYWdlKCkgJiYgcm9sZVZhbHVlKCkgPT0gQnV0dG9uUm9sZTsKIH0KIAorYm9vbCBBY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0Ojppc1RvZ2dsZUJ1dHRvbigpIGNvbnN0Cit7CisgICAgLy8gRnJv
bSBodHRwOi8vd3d3LnczLm9yZy9UUi93YWktYXJpYS9zdGF0ZXNfYW5kX3Byb3BlcnRpZXMjYXJp
YS1wcmVzc2VkCisgICAgLy8gIkluZGljYXRlcyB0aGUgY3VycmVudCAicHJlc3NlZCIgc3RhdGUg
b2YgdG9nZ2xlIGJ1dHRvbnMiCisgICAgLy8gIklmIHRoZSBhdHRyaWJ1dGUgaXMgbm90IHByZXNl
bnQsIHRoZSBidXR0b24gaXMgbm90IGEgdG9nZ2xlIGJ1dHRvbi4iCisgICAgLy8gU28gaWYgdGhl
IGFjY2Vzc2liaWxpdHkgb2JqZWN0IGlzIGEgYnV0dG9uIGFuZCBoYXZlIHRoYXQgYXR0cmlidXRl
LAorICAgIC8vIHRoZW4gaXQgaXMgYSB0b2dnbGUgYnV0dG9uCisgICAgcmV0dXJuIChpc0J1dHRv
bigpIHx8IGFyaWFSb2xlQXR0cmlidXRlKCkgPT0gQnV0dG9uUm9sZSkKKyAgICAgICAgJiYgIWdl
dEF0dHJpYnV0ZShhcmlhX3ByZXNzZWRBdHRyKS5pc0VtcHR5KCk7Cit9CisKIGJvb2wgQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdDo6aXNBbmNob3IoKSBjb25zdAogewogICAgIHJldHVybiAhaXNO
YXRpdmVJbWFnZSgpICYmIGlzTGluaygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaAppbmRleCA4ZmUwYWZlLi45
N2FhMzgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaApAQCAtNzEsNiArNzEsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBib29sIGlzSGVhZGluZygpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc0xpbmso
KSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNJbWFnZUJ1dHRvbigpIGNvbnN0OworICAgIHZp
cnR1YWwgYm9vbCBpc1RvZ2dsZUJ1dHRvbigpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc0lt
YWdlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlSW1hZ2UoKSBjb25zdDsKICAg
ICB2aXJ0dWFsIGJvb2wgaXNQYXNzd29yZEZpZWxkKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9XZWJLaXRBY2Nlc3NpYmxlV3JhcHBlckF0ay5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9XZWJLaXRBY2Nlc3NpYmxlV3Jh
cHBlckF0ay5jcHAKaW5kZXggN2Y2Yjg5NC4uNjFlNmJlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvV2ViS2l0QWNjZXNzaWJsZVdyYXBwZXJBdGsuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL1dlYktpdEFjY2Vzc2libGVXcmFw
cGVyQXRrLmNwcApAQCAtNTM4LDYgKzUzOCw5IEBAIHN0YXRpYyBBdGtSb2xlIHdlYmtpdEFjY2Vz
c2libGVHZXRSb2xlKEF0a09iamVjdCogb2JqZWN0KQogICAgIGlmIChjb3JlT2JqZWN0LT5pc1Bh
c3N3b3JkRmllbGQoKSkKICAgICAgICAgcmV0dXJuIEFUS19ST0xFX1BBU1NXT1JEX1RFWFQ7CiAK
KyAgICBpZiAoY29yZU9iamVjdC0+aXNUb2dnbGVCdXR0b24oKSkKKyAgICAgICAgcmV0dXJuIEFU
S19ST0xFX1RPR0dMRV9CVVRUT047CisKICAgICByZXR1cm4gYXRrUm9sZShjb3JlT2JqZWN0LT5y
b2xlVmFsdWUoKSk7CiB9CiAKLS0gCjEuNy45LjUKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>158769</attachid>
            <date>2012-08-16 03:58:23 -0700</date>
            <delta_ts>2012-08-20 04:44:56 -0700</delta_ts>
            <desc>Fixes the bug</desc>
            <filename>0001-Dojo-toggle-buttons-should-expose-ROLE_TOGGLE_BUTTON.patch</filename>
            <type>text/plain</type>
            <size>8762</size>
            <attacher name="Alejandro Piñeiro">apinheiro</attacher>
            
              <data encoding="base64">RnJvbSAxZWJhNmQxZmExMDJjODExNzNkYzM2ZmE3ZDQ5ZWQ5OTdhYmZmNDI0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/QWxlamFuZHJvPTIwUGk9QzM9QjFlaXJvPz0g
PGFwaW5oZWlyb0BpZ2FsaWEuY29tPgpEYXRlOiBNb24sIDEzIEF1ZyAyMDEyIDE4OjU2OjMxICsw
MjAwClN1YmplY3Q6IFtQQVRDSF0gRG9qbyB0b2dnbGUgYnV0dG9ucyBzaG91bGQgZXhwb3NlIFJP
TEVfVE9HR0xFX0JVVFRPTiBub3QKIFJPTEVfUFVTSF9CVVRUT04KIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzgxOQoKQWRkZWQgYSBleHRyYSBydWxlIG9uIHRoZSBt
YXBwaW5nIG9mIFdlYkNvcmUgYWNjZXNzaWJpbGl0eSByb2xlcwphbmQgQVRLIHJvbGVzIGJhc2Vk
IG9uIGFyaWEtcHJlc3NlZCBhdHRyaWJ1dGUgdG8gZXhwb3NlCkFUS19ST0xFX1RPR0dMRV9CVVRU
T04gd2hlbiByZXF1aXJlZApodHRwOi8vd3d3LnczLm9yZy9UUi93YWktYXJpYS9zdGF0ZXNfYW5k
X3Byb3BlcnRpZXMjYXJpYS1wcmVzc2VkCi0tLQogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE1ICsrKysrKysrCiAuLi4vYXJpYS10b2dnbGUt
YnV0dG9uLXJvbGUtZXhwZWN0ZWQudHh0ICAgICAgICAgICB8ICAgMTIgKysrKysrKwogLi4uL2d0
ay9hY2Nlc3NpYmlsaXR5L2FyaWEtdG9nZ2xlLWJ1dHRvbi1yb2xlLmh0bWwgfCAgIDM3ICsrKysr
KysrKysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgMjcgKysrKysrKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oIHwgICAgMSArCiAuLi4vYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCAgICB8ICAgMTAgKysrKysrCiAuLi4vYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmggICAgICB8ICAgIDEgKwogLi4uL2d0
ay9XZWJLaXRBY2Nlc3NpYmxlV3JhcHBlckF0ay5jcHAgICAgICAgICAgICAgfCAgICAzICsrCiA4
IGZpbGVzIGNoYW5nZWQsIDEwNiBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJpYS10b2dnbGUtYnV0dG9uLXJv
bGUtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL2FjY2Vzc2liaWxpdHkvYXJpYS10b2dnbGUtYnV0dG9uLXJvbGUuaHRtbAoKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1
MjI0NmM3Li40NjAxZThlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMDgtMTQgIEFsZWph
bmRybyBQacOxZWlybyAgPGFwaW5oZWlyb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtHdGtdIERv
am8gdG9nZ2xlIGJ1dHRvbnMgc2hvdWxkIGV4cG9zZSBST0xFX1RPR0dMRV9CVVRUT04gbm90IFJP
TEVfUFVTSF9CVVRUT04KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTczODE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkZWQgYSBleHRyYSBydWxlIG9uIHRoZSBtYXBwaW5nIG9mIFdlYkNvcmUgYWNjZXNz
aWJpbGl0eSByb2xlcworICAgICAgICBhbmQgQVRLIHJvbGVzIGJhc2VkIG9uIGFyaWEtcHJlc3Nl
ZCBhdHRyaWJ1dGUgdG8gZXhwb3NlCisgICAgICAgIEFUS19ST0xFX1RPR0dMRV9CVVRUT04gd2hl
biByZXF1aXJlZC4KKyAgICAgICAgaHR0cDovL3d3dy53My5vcmcvVFIvd2FpLWFyaWEvc3RhdGVz
X2FuZF9wcm9wZXJ0aWVzI2FyaWEtcHJlc3NlZAorCisgICAgICAgICogcGxhdGZvcm0vZ3RrL2Fj
Y2Vzc2liaWxpdHkvYXJpYS10b2dnbGUtYnV0dG9uLXJvbGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9hcmlhLXRvZ2dsZS1idXR0b24t
cm9sZS5odG1sOiBBZGRlZC4KKwogMjAxMi0wOC0wNyAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3Nz
eUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtRdF0gVW5yZXZpZXdlZCBnYXJkZW5pbmcuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9hcmlhLXRvZ2ds
ZS1idXR0b24tcm9sZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNj
ZXNzaWJpbGl0eS9hcmlhLXRvZ2dsZS1idXR0b24tcm9sZS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTU5M2RiMgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2FyaWEtdG9nZ2xlLWJ1dHRvbi1y
b2xlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACisgCitUaGlzIHRlc3RzIHRoYXQgdGhl
IHJvbGUgZXhwb3NlZCB3aGVuIGEgYnV0dG9uIGhhcyB0aGUgYXR0cmlidXRlIGFyaWEtcHJlc3Nl
ZCBpcyB0b2dnbGUgYnV0dG9ucyBpbiBHVEsuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1BB
U1Mgb2JqMS5yb2xlIGlzICdBWFJvbGU6IHRvZ2dsZSBidXR0b24nCitQQVNTIG9iajIucm9sZSBp
cyAnQVhSb2xlOiB0b2dnbGUgYnV0dG9uJworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9hcmlhLXRvZ2dsZS1idXR0b24tcm9sZS5odG1sIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJpYS10b2dnbGUtYnV0dG9uLXJv
bGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNzExNmYxCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJp
YS10b2dnbGUtYnV0dG9uLXJvbGUuaHRtbApAQCAtMCwwICsxLDM3IEBACis8IURPQ1RZUEUgSFRN
TCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQ+CisKK2Z1bmN0aW9uIHJ1blRlc3QoKQoreworICBpZiAod2luZG93LmFjY2Vz
c2liaWxpdHlDb250cm9sbGVyKSB7CisKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib2Jq
MSIpLmZvY3VzKCk7CisgICAgb2JqMSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZvY3VzZWRF
bGVtZW50OworCisgICAgc2hvdWxkQmUoIm9iajEucm9sZSIsICInQVhSb2xlOiB0b2dnbGUgYnV0
dG9uJyIpOworCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm9iajIiKS5mb2N1cygpOwor
ICAgIG9iajIgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5mb2N1c2VkRWxlbWVudDsKKworICAg
IHNob3VsZEJlKCJvYmoyLnJvbGUiLCAiJ0FYUm9sZTogdG9nZ2xlIGJ1dHRvbiciKTsKKyAgfQor
fQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBpZD0iYm9keSIgb25sb2FkPSJydW5UZXN0KCki
PgorPGlucHV0IHR5cGU9ImJ1dHRvbiIgaWQ9Im9iajEiIHJvbGU9ImJ1dHRvbiIgYXJpYS1wcmVz
c2VkPSJ0cnVlIj4KKzxpbnB1dCB0eXBlPSJidXR0b24iIGlkPSJvYmoyIiByb2xlPSJidXR0b24i
IGFyaWEtcHJlc3NlZD0iZmFsc2UiPgorCis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMg
dGhhdCB0aGUgcm9sZSBleHBvc2VkIHdoZW4gYSBidXR0b24gaGFzIHRoZSBhdHRyaWJ1dGUgYXJp
YS1wcmVzc2VkIGlzIHRvZ2dsZSBidXR0b25zIGluIEdUSy4iKTsKKworPC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkOGNmM2UxLi44YTFjMjRjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTItMDgtMTQgIEFsZWphbmRybyBQacOxZWly
byAgPGFwaW5oZWlyb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtHdGtdIERvam8gdG9nZ2xlIGJ1
dHRvbnMgc2hvdWxkIGV4cG9zZSBST0xFX1RPR0dMRV9CVVRUT04gbm90IFJPTEVfUFVTSF9CVVRU
T04KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczODE5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQg
YSBleHRyYSBydWxlIG9uIHRoZSBtYXBwaW5nIG9mIFdlYkNvcmUgYWNjZXNzaWJpbGl0eSByb2xl
cworICAgICAgICBhbmQgQVRLIHJvbGVzIGJhc2VkIG9uIGFyaWEtcHJlc3NlZCBhdHRyaWJ1dGUg
dG8gZXhwb3NlCisgICAgICAgIEFUS19ST0xFX1RPR0dMRV9CVVRUT04gd2hlbiByZXF1aXJlZC4K
KyAgICAgICAgaHR0cDovL3d3dy53My5vcmcvVFIvd2FpLWFyaWEvc3RhdGVzX2FuZF9wcm9wZXJ0
aWVzI2FyaWEtcHJlc3NlZAorCisgICAgICAgIFRlc3Q6IHBsYXRmb3JtL2d0ay9hY2Nlc3NpYmls
aXR5L2FyaWEtdG9nZ2xlLWJ1dHRvbi1yb2xlLmh0bWwKKworICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0
eU9iamVjdDo6aXNUb2dnbGVCdXR0b24pOiBOZXcgbWV0aG9kIHRoYXQKKyAgICAgICAgY2hlY2tz
IGlmIGEgYnV0dG9uIGlzIGEgdG9nZ2xlIGJ1dHRvbi4gRGVmYXVsdCBpbXBsZW1lbnRhdGlvbgor
ICAgICAgICBpcyBmYWxzZS4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdDo6aXNUb2dnbGVCdXR0b24pOiBJbXBsZW1lbnRhdGlvbgorICAgICAgICBvZiBpc1RvZ2ds
ZUJ1dHRvbiBmb3IgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC4KKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaDoKKyAgICAgICAgKEFjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3QpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvZ3RrL1dlYktpdEFjY2Vz
c2libGVXcmFwcGVyQXRrLmNwcDoKKyAgICAgICAgKHdlYmtpdEFjY2Vzc2libGVHZXRSb2xlKTog
VXNlIGlzVG9nZ2xlQnV0dG9uIGluIG9yZGVyIHRvCisgICAgICAgIGRlY2lkZSBpZiBBVEtfUk9M
RV9UT0dHTEVfQlVUVE9OIHNob3VsZCBiZSByZXR1cm5lZC4KKwogMjAxMi0wOC0wNyAgVnNldm9s
b2QgVmxhc292ICA8dnNldmlrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9y
OiBEbyBub3QgZGlzYWJsZSBuZXR3b3JrIHRyYWNraW5nIHdoaWxlIHByb2ZpbGluZyBjcHUuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmpl
Y3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5o
CmluZGV4IDg4YjFmMzkuLjU1NjJjMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCkBAIC0zMzcsNiArMzM3LDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgYm9vbCBpc1dlYkFyZWEoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQog
ICAgIHZpcnR1YWwgYm9vbCBpc0NoZWNrYm94KCkgY29uc3QgeyByZXR1cm4gcm9sZVZhbHVlKCkg
PT0gQ2hlY2tCb3hSb2xlOyB9CiAgICAgdmlydHVhbCBib29sIGlzUmFkaW9CdXR0b24oKSBjb25z
dCB7IHJldHVybiByb2xlVmFsdWUoKSA9PSBSYWRpb0J1dHRvblJvbGU7IH0KKyAgICB2aXJ0dWFs
IGJvb2wgaXNUb2dnbGVCdXR0b24oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1
YWwgYm9vbCBpc0xpc3RCb3goKSBjb25zdCB7IHJldHVybiByb2xlVmFsdWUoKSA9PSBMaXN0Qm94
Um9sZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc01lZGlhVGltZWxpbmUoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc01lbnVSZWxhdGVkKCkgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCmluZGV4IGYwNmUxZTUuLjc1ZDgyODcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0LmNwcApAQCAtNDg4LDYgKzQ4OCwxNiBAQCBib29sIEFjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3Q6OmlzSW1hZ2VCdXR0b24oKSBjb25zdAogICAgIHJldHVybiBpc05hdGl2
ZUltYWdlKCkgJiYgcm9sZVZhbHVlKCkgPT0gQnV0dG9uUm9sZTsKIH0KIAorYm9vbCBBY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0Ojppc1RvZ2dsZUJ1dHRvbigpIGNvbnN0Cit7CisgICAgLy8gRnJv
bSBodHRwOi8vd3d3LnczLm9yZy9UUi93YWktYXJpYS9zdGF0ZXNfYW5kX3Byb3BlcnRpZXMjYXJp
YS1wcmVzc2VkCisgICAgLy8gIkluZGljYXRlcyB0aGUgY3VycmVudCAicHJlc3NlZCIgc3RhdGUg
b2YgdG9nZ2xlIGJ1dHRvbnMiCisgICAgLy8gIklmIHRoZSBhdHRyaWJ1dGUgaXMgbm90IHByZXNl
bnQsIHRoZSBidXR0b24gaXMgbm90IGEgdG9nZ2xlIGJ1dHRvbi4iCisgICAgLy8gU28gaWYgdGhl
IGFjY2Vzc2liaWxpdHkgb2JqZWN0IGlzIGEgYnV0dG9uIGFuZCBoYXZlIHRoYXQgYXR0cmlidXRl
LAorICAgIC8vIHRoZW4gaXQgaXMgYSB0b2dnbGUgYnV0dG9uCisgICAgcmV0dXJuIGlzQnV0dG9u
KCkgJiYgIWdldEF0dHJpYnV0ZShhcmlhX3ByZXNzZWRBdHRyKS5pc0VtcHR5KCk7Cit9CisKIGJv
b2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aXNBbmNob3IoKSBjb25zdAogewogICAgIHJl
dHVybiAhaXNOYXRpdmVJbWFnZSgpICYmIGlzTGluaygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaAppbmRleCA4
ZmUwYWZlLi5kZjhlMTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaApAQCAtMjgyLDYgKzI4Miw3IEBAIHBy
aXZhdGU6CiAgICAgRWxlbWVudCogcm9vdEVkaXRhYmxlRWxlbWVudEZvclBvc2l0aW9uKGNvbnN0
IFBvc2l0aW9uJikgY29uc3Q7CiAgICAgYm9vbCBub2RlSXNUZXh0Q29udHJvbChjb25zdCBOb2Rl
KikgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHNldE5lZWRzVG9VcGRhdGVDaGlsZHJlbigpIHsg
bV9jaGlsZHJlbkRpcnR5ID0gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1RvZ2dsZUJ1dHRv
bigpIGNvbnN0OwogCiAgICAgRWxlbWVudCogbWVudUVsZW1lbnRGb3JNZW51QnV0dG9uKCkgY29u
c3Q7CiAgICAgRWxlbWVudCogbWVudUl0ZW1FbGVtZW50Rm9yTWVudSgpIGNvbnN0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvV2ViS2l0QWNjZXNzaWJsZVdy
YXBwZXJBdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvV2ViS2l0QWNj
ZXNzaWJsZVdyYXBwZXJBdGsuY3BwCmluZGV4IDdmNmI4OTQuLjYxZTZiZTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL1dlYktpdEFjY2Vzc2libGVXcmFwcGVy
QXRrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9XZWJLaXRBY2Nl
c3NpYmxlV3JhcHBlckF0ay5jcHAKQEAgLTUzOCw2ICs1MzgsOSBAQCBzdGF0aWMgQXRrUm9sZSB3
ZWJraXRBY2Nlc3NpYmxlR2V0Um9sZShBdGtPYmplY3QqIG9iamVjdCkKICAgICBpZiAoY29yZU9i
amVjdC0+aXNQYXNzd29yZEZpZWxkKCkpCiAgICAgICAgIHJldHVybiBBVEtfUk9MRV9QQVNTV09S
RF9URVhUOwogCisgICAgaWYgKGNvcmVPYmplY3QtPmlzVG9nZ2xlQnV0dG9uKCkpCisgICAgICAg
IHJldHVybiBBVEtfUk9MRV9UT0dHTEVfQlVUVE9OOworCiAgICAgcmV0dXJuIGF0a1JvbGUoY29y
ZU9iamVjdC0+cm9sZVZhbHVlKCkpOwogfQogCi0tIAoxLjcuOS41Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>159127</attachid>
            <date>2012-08-17 08:16:23 -0700</date>
            <delta_ts>2012-08-20 04:44:56 -0700</delta_ts>
            <desc>Fixes the bug</desc>
            <filename>0001-Dojo-toggle-buttons-should-expose-ROLE_TOGGLE_BUTTON.patch</filename>
            <type>text/plain</type>
            <size>13291</size>
            <attacher name="Alejandro Piñeiro">apinheiro</attacher>
            
              <data encoding="base64">RnJvbSA0ZjcwM2UwMDYzNzlhODJkN2ExODUyNzUxNzY5OWZmMGZhZjhkOTc3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/QWxlamFuZHJvPTIwUGk9QzM9QjFlaXJvPz0g
PGFwaW5oZWlyb0BpZ2FsaWEuY29tPgpEYXRlOiBNb24sIDEzIEF1ZyAyMDEyIDE4OjU2OjMxICsw
MjAwClN1YmplY3Q6IFtQQVRDSF0gRG9qbyB0b2dnbGUgYnV0dG9ucyBzaG91bGQgZXhwb3NlIFJP
TEVfVE9HR0xFX0JVVFRPTiBub3QKIFJPTEVfUFVTSF9CVVRUT04KIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzgxOQoKQWRkZWQgYSBleHRyYSBydWxlIG9uIHRoZSBt
YXBwaW5nIG9mIFdlYkNvcmUgYWNjZXNzaWJpbGl0eSByb2xlcwphbmQgQVRLIHJvbGVzIGJhc2Vk
IG9uIGFyaWEtcHJlc3NlZCBhdHRyaWJ1dGUgdG8gZXhwb3NlCkFUS19ST0xFX1RPR0dMRV9CVVRU
T04gd2hlbiByZXF1aXJlZApodHRwOi8vd3d3LnczLm9yZy9UUi93YWktYXJpYS9zdGF0ZXNfYW5k
X3Byb3BlcnRpZXMjYXJpYS1wcmVzc2VkCi0tLQogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEzICsrKysrKwogLi4uL2FyaWEtdG9nZ2xlLWJ1
dHRvbi1yb2xlLWV4cGVjdGVkLnR4dCAgICAgICAgICAgfCAgIDE0ICsrKysrKwogLi4uL2d0ay9h
Y2Nlc3NpYmlsaXR5L2FyaWEtdG9nZ2xlLWJ1dHRvbi1yb2xlLmh0bWwgfCAgIDQ5ICsrKysrKysr
KysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8ICAgMjYgKysrKysrKysrKysKIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0LmNwcCAgICAgIHwgICAyNSArKysrKysrKy0tCiBTb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCB8ICAgIDIgKwogLi4uL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgICAgfCAgIDI2ICsrKysrKysrKy0t
CiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmggICAgICB8ICAg
IDEgKwogLi4uL2d0ay9XZWJLaXRBY2Nlc3NpYmxlV3JhcHBlckF0ay5jcHAgICAgICAgICAgICAg
fCAgICAyICsKIC4uLi9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIubW0gICAgICAg
ICAgIHwgICAgMyArLQogMTAgZmlsZXMgY2hhbmdlZCwgMTUwIGluc2VydGlvbnMoKyksIDExIGRl
bGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9h
Y2Nlc3NpYmlsaXR5L2FyaWEtdG9nZ2xlLWJ1dHRvbi1yb2xlLWV4cGVjdGVkLnR4dAogY3JlYXRl
IG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2FyaWEt
dG9nZ2xlLWJ1dHRvbi1yb2xlLmh0bWwKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNTIyNDZjNy4uNWZmYzYzYiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE2IEBACisyMDEyLTA4LTE0ICBBbGVqYW5kcm8gUGnDsWVpcm8gIDxhcGluaGVp
cm9AaWdhbGlhLmNvbT4KKworICAgICAgICBbR3RrXSBEb2pvIHRvZ2dsZSBidXR0b25zIHNob3Vs
ZCBleHBvc2UgUk9MRV9UT0dHTEVfQlVUVE9OIG5vdCBST0xFX1BVU0hfQlVUVE9OCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzgxOQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIGEgdGVzdCB0byB2
ZXJpZnkgdGhhdCB3aGVuIGFyaWEtcHJlc3NlZCBpcyBwcmVzZW50LCBidXR0b25zCisgICAgICAg
IHdpbGwgaGF2ZSB0aGUgYXBwcm9waWF0ZSByb2xlLgorCisgICAgICAgICogcGxhdGZvcm0vZ3Rr
L2FjY2Vzc2liaWxpdHkvYXJpYS10b2dnbGUtYnV0dG9uLXJvbGUtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9hcmlhLXRvZ2dsZS1idXR0
b24tcm9sZS5odG1sOiBBZGRlZC4KKwogMjAxMi0wOC0wNyAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8
b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtRdF0gVW5yZXZpZXdlZCBnYXJkZW5pbmcuCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9hcmlhLXRv
Z2dsZS1idXR0b24tcm9sZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
YWNjZXNzaWJpbGl0eS9hcmlhLXRvZ2dsZS1idXR0b24tcm9sZS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2MwZTJiZgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2FyaWEtdG9nZ2xlLWJ1dHRv
bi1yb2xlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACisgIAorVGhpcyB0ZXN0cyB0aGF0
IHRoZSByb2xlIGV4cG9zZWQgd2hlbiBhIGJ1dHRvbiBoYXMgdGhlIGF0dHJpYnV0ZSBhcmlhLXBy
ZXNzZWQgaXMgdG9nZ2xlIGJ1dHRvbnMgaW4gR1RLLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CitQQVNTIG9iai5jaGlsZEF0SW5kZXgoMCkuY2hpbGRBdEluZGV4KDApLnJvbGUgaXMgJ0FYUm9s
ZTogbGlzdCBpdGVtJworUEFTUyBvYmoxLnJvbGUgaXMgJ0FYUm9sZTogdG9nZ2xlIGJ1dHRvbicK
K1BBU1Mgb2JqMi5yb2xlIGlzICdBWFJvbGU6IHRvZ2dsZSBidXR0b24nCitQQVNTIG9iajMucm9s
ZSBpcyAnQVhSb2xlOiBwdXNoIGJ1dHRvbicKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJpYS10b2dnbGUtYnV0dG9uLXJvbGUuaHRtbCBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2FyaWEtdG9nZ2xlLWJ1dHRvbi1y
b2xlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGI2MDBjMQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2Fy
aWEtdG9nZ2xlLWJ1dHRvbi1yb2xlLmh0bWwKQEAgLTAsMCArMSw0OSBAQAorPCFET0NUWVBFIEhU
TUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0PgorCitmdW5jdGlvbiBydW5UZXN0KCkKK3sKKyAgaWYgKHdpbmRvdy5hY2Nl
c3NpYmlsaXR5Q29udHJvbGxlcikgeworCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJv
ZHkiKS5mb2N1cygpOworICAgIG9iaiA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZvY3VzZWRF
bGVtZW50OworICAgIHNob3VsZEJlKCJvYmouY2hpbGRBdEluZGV4KDApLmNoaWxkQXRJbmRleCgw
KS5yb2xlIiwgIidBWFJvbGU6IGxpc3QgaXRlbSciKTsKKworICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJvYmoxIikuZm9jdXMoKTsKKyAgICBvYmoxID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIuZm9jdXNlZEVsZW1lbnQ7CisgICAgc2hvdWxkQmUoIm9iajEucm9sZSIsICInQVhSb2xlOiB0
b2dnbGUgYnV0dG9uJyIpOworCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm9iajIiKS5m
b2N1cygpOworICAgIG9iajIgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5mb2N1c2VkRWxlbWVu
dDsKKyAgICBzaG91bGRCZSgib2JqMi5yb2xlIiwgIidBWFJvbGU6IHRvZ2dsZSBidXR0b24nIik7
CisKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib2JqMyIpLmZvY3VzKCk7CisgICAgb2Jq
MyA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZvY3VzZWRFbGVtZW50OworICAgIHNob3VsZEJl
KCJvYmozLnJvbGUiLCAiJ0FYUm9sZTogcHVzaCBidXR0b24nIik7CisgIH0KK30KKzwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHkgaWQ9ImJvZHkiIG9ubG9hZD0icnVuVGVzdCgpIj4KKworPGRpdiBy
b2xlPSJsaXN0Ij4KKzxkaXYgcm9sZT0ibGlzdGl0ZW0iIGFyaWEtbGFiZWw9Iml0ZW0gMSIgYXJp
YS1wcmVzc2VkPSJmYWxzZSI+PGltZyBzcmM9JyMnIHdpZHRoPTEwMCBoZWlnaHQ9MTAwPjwvZGl2
PgorPC9kaXY+CisKKzxpbnB1dCB0eXBlPSJidXR0b24iIGlkPSJvYmoxIiByb2xlPSJidXR0b24i
IGFyaWEtcHJlc3NlZD0idHJ1ZSI+Cis8aW5wdXQgdHlwZT0iYnV0dG9uIiBpZD0ib2JqMiIgcm9s
ZT0iYnV0dG9uIiBhcmlhLXByZXNzZWQ9ImZhbHNlIj4KKzxpbnB1dCB0eXBlPSJidXR0b24iIGlk
PSJvYmozIiByb2xlPSJidXR0b24iPgorCis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMg
dGhhdCB0aGUgcm9sZSBleHBvc2VkIHdoZW4gYSBidXR0b24gaGFzIHRoZSBhdHRyaWJ1dGUgYXJp
YS1wcmVzc2VkIGlzIHRvZ2dsZSBidXR0b25zIGluIEdUSy4iKTsKKworPC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkOGNmM2UxLi43Y2IxOTBlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTItMDgtMTQgIEFsZWphbmRybyBQacOxZWly
byAgPGFwaW5oZWlyb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtHdGtdIERvam8gdG9nZ2xlIGJ1
dHRvbnMgc2hvdWxkIGV4cG9zZSBST0xFX1RPR0dMRV9CVVRUT04gbm90IFJPTEVfUFVTSF9CVVRU
T04KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczODE5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQg
YW4gZXh0cmEgcnVsZSB0byB0aGUgQVRLIGFjY2Vzc2liaWxpdHkgcm9sZSBtYXBwaW5ncyBiYXNl
ZAorICAgICAgICBvbiB3aGV0aGVyIGFyaWEtcHJlc3NlZCBpcyBwcmVzZW50LgorICAgICAgICBo
dHRwOi8vd3d3LnczLm9yZy9UUi93YWktYXJpYS9zdGF0ZXNfYW5kX3Byb3BlcnRpZXMjYXJpYS1w
cmVzc2VkCisKKyAgICAgICAgVGVzdDogcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJpYS10
b2dnbGUtYnV0dG9uLXJvbGUuaHRtbAorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpp
c1RvZ2dsZUJ1dHRvbik6IE5ldyBtZXRob2QgdGhhdAorICAgICAgICBjaGVja3MgaWYgYSBidXR0
b24gaXMgYSB0b2dnbGUgYnV0dG9uLiBEZWZhdWx0IGltcGxlbWVudGF0aW9uCisgICAgICAgIGlz
IGZhbHNlLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojppc1Rv
Z2dsZUJ1dHRvbik6IEltcGxlbWVudGF0aW9uCisgICAgICAgIG9mIGlzVG9nZ2xlQnV0dG9uIGZv
ciBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9ndGsvV2ViS2l0QWNjZXNzaWJsZVdyYXBw
ZXJBdGsuY3BwOgorICAgICAgICAod2Via2l0QWNjZXNzaWJsZUdldFJvbGUpOiBVc2UgaXNUb2dn
bGVCdXR0b24gaW4gb3JkZXIgdG8KKyAgICAgICAgZGVjaWRlIGlmIEFUS19ST0xFX1RPR0dMRV9C
VVRUT04gc2hvdWxkIGJlIHJldHVybmVkLgorCiAyMDEyLTA4LTA3ICBWc2V2b2xvZCBWbGFzb3Yg
IDx2c2V2aWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IERvIG5vdCBk
aXNhYmxlIG5ldHdvcmsgdHJhY2tpbmcgd2hpbGUgcHJvZmlsaW5nIGNwdS4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5j
cHAKaW5kZXggZDM4YWY1MC4uMTAzY2UzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKQEAgLTI0OSwxNiAr
MjQ5LDI3IEBAIEFjY2Vzc2liaWxpdHlSb2xlIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpkZXRl
cm1pbmVBY2Nlc3NpYmlsaXR5Um9sZSgpCiAgICAgICAgIHJldHVybiBXZWJDb3JlTGlua1JvbGU7
CiAgICAgaWYgKG5vZGUoKS0+aXNUZXh0Tm9kZSgpKQogICAgICAgICByZXR1cm4gU3RhdGljVGV4
dFJvbGU7Ci0gICAgaWYgKG5vZGUoKS0+aGFzVGFnTmFtZShidXR0b25UYWcpKQotICAgICAgICBy
ZXR1cm4gYXJpYUhhc1BvcHVwKCkgPyBQb3BVcEJ1dHRvblJvbGUgOiBCdXR0b25Sb2xlOworICAg
IGlmIChub2RlKCktPmhhc1RhZ05hbWUoYnV0dG9uVGFnKSkgeworICAgICAgICAvLyBBUklBIHN0
YXRlcyB0aGF0IGEgYnV0dG9uIHdpdGggcHJlc3NlZCBhdHRyaWJ1dGUgaXMgYSB0b2dnbGUgYnV0
dG9uCisgICAgICAgIGlmIChoYXNBUklBUHJlc3NlZCgpKQorICAgICAgICAgICAgcmV0dXJuIFRv
Z2dsZUJ1dHRvblJvbGU7CisgICAgICAgIGlmIChhcmlhSGFzUG9wdXAoKSkKKyAgICAgICAgICAg
IHJldHVybiBQb3BVcEJ1dHRvblJvbGU7CisgICAgICAgIHJldHVybiBCdXR0b25Sb2xlOworICAg
IH0KICAgICBpZiAobm9kZSgpLT5oYXNUYWdOYW1lKGlucHV0VGFnKSkgewogICAgICAgICBIVE1M
SW5wdXRFbGVtZW50KiBpbnB1dCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihub2Rl
KCkpOwogICAgICAgICBpZiAoaW5wdXQtPmlzQ2hlY2tib3goKSkKICAgICAgICAgICAgIHJldHVy
biBDaGVja0JveFJvbGU7CiAgICAgICAgIGlmIChpbnB1dC0+aXNSYWRpb0J1dHRvbigpKQogICAg
ICAgICAgICAgcmV0dXJuIFJhZGlvQnV0dG9uUm9sZTsKLSAgICAgICAgaWYgKGlucHV0LT5pc1Rl
eHRCdXR0b24oKSkKLSAgICAgICAgICAgIHJldHVybiBhcmlhSGFzUG9wdXAoKSA/IFBvcFVwQnV0
dG9uUm9sZSA6IEJ1dHRvblJvbGU7CisgICAgICAgIGlmIChpbnB1dC0+aXNUZXh0QnV0dG9uKCkp
IHsKKyAgICAgICAgICAgIGlmIChoYXNBUklBUHJlc3NlZCgpKQorICAgICAgICAgICAgICAgIHJl
dHVybiBUb2dnbGVCdXR0b25Sb2xlOworICAgICAgICAgICAgaWYgKGFyaWFIYXNQb3B1cCgpKQor
ICAgICAgICAgICAgICAgIHJldHVybiBQb3BVcEJ1dHRvblJvbGU7CisgICAgICAgICAgICByZXR1
cm4gQnV0dG9uUm9sZTsKKyAgICAgICAgfQogICAgICAgICByZXR1cm4gVGV4dEZpZWxkUm9sZTsK
ICAgICB9CiAgICAgaWYgKG5vZGUoKS0+aGFzVGFnTmFtZShzZWxlY3RUYWcpKSB7CkBAIC0zMzYs
NyArMzQ3LDExIEBAIEFjY2Vzc2liaWxpdHlSb2xlIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojpk
ZXRlcm1pbmVBcmlhUm9sZUF0dHJpYnV0ZSgpIGNvbnN0CiAgICAgLy8gQVJJQSBzdGF0ZXMgaWYg
YW4gaXRlbSBjYW4gZ2V0IGZvY3VzLCBpdCBzaG91bGQgbm90IGJlIHByZXNlbnRhdGlvbmFsLgog
ICAgIGlmIChyb2xlID09IFByZXNlbnRhdGlvbmFsUm9sZSAmJiBjYW5TZXRGb2N1c0F0dHJpYnV0
ZSgpKQogICAgICAgICByZXR1cm4gVW5rbm93blJvbGU7Ci0gICAgCisKKyAgICAvLyBBUklBIHN0
YXRlcyB0aGF0IGEgYnV0dG9uIHdpdGggcHJlc3NlZCBhdHRyaWJ1dGUgaXMgYSB0b2dnbGUgYnV0
dG9uCisgICAgaWYgKHJvbGUgPT0gQnV0dG9uUm9sZSAmJiBoYXNBUklBUHJlc3NlZCgpKQorICAg
ICAgICByb2xlID0gVG9nZ2xlQnV0dG9uUm9sZTsKKwogICAgIGlmIChyb2xlID09IEJ1dHRvblJv
bGUgJiYgYXJpYUhhc1BvcHVwKCkpCiAgICAgICAgIHJvbGUgPSBQb3BVcEJ1dHRvblJvbGU7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9i
amVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0
LmgKaW5kZXggODhiMWYzOS4uMWUwMGRiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKQEAgLTE4Nyw2ICsxODcsNyBAQCBlbnVt
IEFjY2Vzc2liaWxpdHlSb2xlIHsKICAgICBUcmVlR3JpZFJvbGUsCiAgICAgVHJlZUl0ZW1Sb2xl
LAogICAgIFRleHRGaWVsZFJvbGUsCisgICAgVG9nZ2xlQnV0dG9uUm9sZSwKICAgICBUb29sYmFy
Um9sZSwKICAgICBVbmtub3duUm9sZSwKICAgICBVc2VySW50ZXJmYWNlVG9vbHRpcFJvbGUsCkBA
IC00NTEsNiArNDUyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0FSSUFG
bG93VG8oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCBhcmlhRmxv
d1RvRWxlbWVudHMoQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yJikgY29uc3QgeyB9CiAgICAg
dmlydHVhbCBib29sIGFyaWFIYXNQb3B1cCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAg
dmlydHVhbCBib29sIGhhc0FSSUFQcmVzc2VkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICBib29sIGFyaWFJc011bHRpbGluZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWlj
U3RyaW5nJiBpbnZhbGlkU3RhdHVzKCkgY29uc3Q7CiAgICAgYm9vbCBzdXBwb3J0c0FSSUFFeHBh
bmRlZCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKaW5kZXggZjA2ZTFlNS4uZTUxOWM4NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3QuY3BwCkBAIC0xNjg1LDcgKzE2ODUsMTEgQEAgYm9vbCBBY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0OjphcmlhSGFzUG9wdXAoKSBjb25zdAogewogICAgIHJldHVybiBl
bGVtZW50QXR0cmlidXRlVmFsdWUoYXJpYV9oYXNwb3B1cEF0dHIpOwogfQotICAgIAorCitib29s
IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6Omhhc0FSSUFQcmVzc2VkKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gIWdldEF0dHJpYnV0ZShhcmlhX3ByZXNzZWRBdHRyKS5pc0VtcHR5KCk7Cit9CiBi
b29sIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnN1cHBvcnRzQVJJQUZsb3dUbygpIGNvbnN0
CiB7CiAgICAgcmV0dXJuICFnZXRBdHRyaWJ1dGUoYXJpYV9mbG93dG9BdHRyKS5pc0VtcHR5KCk7
CkBAIC0zMTM1LDggKzMxMzksMTQgQEAgQWNjZXNzaWJpbGl0eVJvbGUgQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdDo6ZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUoKQogICAgICAgICByZXR1cm4g
TGlzdEl0ZW1Sb2xlOwogICAgIGlmIChtX3JlbmRlcmVyLT5pc0xpc3RNYXJrZXIoKSkKICAgICAg
ICAgcmV0dXJuIExpc3RNYXJrZXJSb2xlOwotICAgIGlmIChub2RlICYmIG5vZGUtPmhhc1RhZ05h
bWUoYnV0dG9uVGFnKSkKLSAgICAgICAgcmV0dXJuIGFyaWFIYXNQb3B1cCgpID8gUG9wVXBCdXR0
b25Sb2xlIDogQnV0dG9uUm9sZTsKKyAgICBpZiAobm9kZSAmJiBub2RlLT5oYXNUYWdOYW1lKGJ1
dHRvblRhZykpIHsKKyAgICAgICAgLy8gQVJJQSBzdGF0ZXMgdGhhdCBhIGJ1dHRvbiB3aXRoIHBy
ZXNzZWQgYXR0cmlidXRlIGlzIGEgdG9nZ2xlIGJ1dHRvbgorICAgICAgICBpZiAoaGFzQVJJQVBy
ZXNzZWQoKSkKKyAgICAgICAgICAgIHJldHVybiBUb2dnbGVCdXR0b25Sb2xlOworICAgICAgICBp
ZiAoYXJpYUhhc1BvcHVwKCkpCisgICAgICAgICAgICByZXR1cm4gUG9wVXBCdXR0b25Sb2xlOwor
ICAgICAgICByZXR1cm4gQnV0dG9uUm9sZTsKKyAgICB9CiAgICAgaWYgKG1fcmVuZGVyZXItPmlz
VGV4dCgpKQogICAgICAgICByZXR1cm4gU3RhdGljVGV4dFJvbGU7CiAgICAgaWYgKGNzc0JveCAm
JiBjc3NCb3gtPmlzSW1hZ2UoKSkgewpAQCAtMzE2Miw4ICszMTcyLDE0IEBAIEFjY2Vzc2liaWxp
dHlSb2xlIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRldGVybWluZUFjY2Vzc2liaWxpdHlS
b2xlKCkKICAgICAgICAgICAgIHJldHVybiBDaGVja0JveFJvbGU7CiAgICAgICAgIGlmIChpbnB1
dC0+aXNSYWRpb0J1dHRvbigpKQogICAgICAgICAgICAgcmV0dXJuIFJhZGlvQnV0dG9uUm9sZTsK
LSAgICAgICAgaWYgKGlucHV0LT5pc1RleHRCdXR0b24oKSkKLSAgICAgICAgICAgIHJldHVybiBh
cmlhSGFzUG9wdXAoKSA/IFBvcFVwQnV0dG9uUm9sZSA6IEJ1dHRvblJvbGU7CisgICAgICAgIGlm
IChpbnB1dC0+aXNUZXh0QnV0dG9uKCkpIHsKKyAgICAgICAgICAgIC8vIEFSSUEgc3RhdGVzIHRo
YXQgYSBidXR0b24gd2l0aCBwcmVzc2VkIGF0dHJpYnV0ZSBpcyBhIHRvZ2dsZSBidXR0b24KKyAg
ICAgICAgICAgIGlmIChoYXNBUklBUHJlc3NlZCgpKQorICAgICAgICAgICAgICAgIHJldHVybiBU
b2dnbGVCdXR0b25Sb2xlOworICAgICAgICAgICAgaWYgKGFyaWFIYXNQb3B1cCgpKQorICAgICAg
ICAgICAgICAgIHJldHVybiBQb3BVcEJ1dHRvblJvbGU7CisgICAgICAgICAgICByZXR1cm4gQnV0
dG9uUm9sZTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIGlmIChpc0ZpbGVVcGxvYWRCdXR0b24o
KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0LmgKaW5kZXggOGZlMGFmZS4uNzBmYTU4MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
LmgKQEAgLTMyNSw2ICszMjUsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBhcmlhTGl2
ZVJlZ2lvbkJ1c3koKSBjb25zdDsgICAgCiAgICAgCiAgICAgYm9vbCBpbmhlcml0c1ByZXNlbnRh
dGlvbmFsUm9sZSgpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBoYXNBUklBUHJlc3NlZCgpIGNv
bnN0OwogfTsKIAogaW5saW5lIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QqIHRvQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9XZWJLaXRBY2Nlc3NpYmxlV3JhcHBl
ckF0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9XZWJLaXRBY2Nlc3Np
YmxlV3JhcHBlckF0ay5jcHAKaW5kZXggN2Y2Yjg5NC4uYjllMjhjNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvV2ViS2l0QWNjZXNzaWJsZVdyYXBwZXJBdGsu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL1dlYktpdEFjY2Vzc2li
bGVXcmFwcGVyQXRrLmNwcApAQCAtNDMwLDYgKzQzMCw4IEBAIHN0YXRpYyBBdGtSb2xlIGF0a1Jv
bGUoQWNjZXNzaWJpbGl0eVJvbGUgcm9sZSkKICAgICAgICAgcmV0dXJuIEFUS19ST0xFX1VOS05P
V047CiAgICAgY2FzZSBCdXR0b25Sb2xlOgogICAgICAgICByZXR1cm4gQVRLX1JPTEVfUFVTSF9C
VVRUT047CisgICAgY2FzZSBUb2dnbGVCdXR0b25Sb2xlOgorICAgICAgICByZXR1cm4gQVRLX1JP
TEVfVE9HR0xFX0JVVFRPTjsKICAgICBjYXNlIFJhZGlvQnV0dG9uUm9sZToKICAgICAgICAgcmV0
dXJuIEFUS19ST0xFX1JBRElPX0JVVFRPTjsKICAgICBjYXNlIENoZWNrQm94Um9sZToKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlP
YmplY3RXcmFwcGVyLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNj
ZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIubW0KaW5kZXggN2E5ZDRiYi4uYjVlYTg2ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9i
amVjdFdyYXBwZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIubW0KQEAgLTE1NzYsNyArMTU3Niw4IEBAIHN0YXRp
YyBjb25zdCBBY2Nlc3NpYmlsaXR5Um9sZU1hcCYgY3JlYXRlQWNjZXNzaWJpbGl0eVJvbGVNYXAo
KQogICAgICAgICB7IERpdlJvbGUsIE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9LAogICAgICAg
ICB7IEZvcm1Sb2xlLCBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKICAgICAgICAgeyBTcGlu
QnV0dG9uUm9sZSwgTlNBY2Nlc3NpYmlsaXR5SW5jcmVtZW50b3JSb2xlIH0sCi0gICAgICAgIHsg
Rm9vdGVyUm9sZSwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0KKyAgICAgICAgeyBGb290ZXJS
b2xlLCBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKKyAgICAgICAgeyBUb2dnbGVCdXR0b25S
b2xlLCBOU0FjY2Vzc2liaWxpdHlCdXR0b25Sb2xlIH0KICAgICB9OwogICAgIEFjY2Vzc2liaWxp
dHlSb2xlTWFwJiByb2xlTWFwID0gKm5ldyBBY2Nlc3NpYmlsaXR5Um9sZU1hcDsKICAgICAKLS0g
CjEuNy45LjUKCg==
</data>
<flag name="commit-queue"
          id="169383"
          type_id="3"
          status="-"
          setter="peter+ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>159393</attachid>
            <date>2012-08-20 04:44:56 -0700</date>
            <delta_ts>2012-08-20 12:03:43 -0700</delta_ts>
            <desc>Fixes the bug</desc>
            <filename>0001-Dojo-toggle-buttons-should-expose-ROLE_TOGGLE_BUTTON.patch</filename>
            <type>text/plain</type>
            <size>17577</size>
            <attacher name="Alejandro Piñeiro">apinheiro</attacher>
            
              <data encoding="base64">RnJvbSAwZmQ4ZDI3MGM4NDc1ODhiYTg5MGU4N2ViZDFjZDI4YTUwOGQwNmY2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/QWxlamFuZHJvPTIwUGk9QzM9QjFlaXJvPz0g
PGFwaW5oZWlyb0BpZ2FsaWEuY29tPgpEYXRlOiBNb24sIDEzIEF1ZyAyMDEyIDE4OjU2OjMxICsw
MjAwClN1YmplY3Q6IFtQQVRDSF0gRG9qbyB0b2dnbGUgYnV0dG9ucyBzaG91bGQgZXhwb3NlIFJP
TEVfVE9HR0xFX0JVVFRPTiBub3QKIFJPTEVfUFVTSF9CVVRUT04KIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzgxOQoKQWRkZWQgYSBuZXcgcm9sZSwgVG9nZ2xlIEJ1
dHRvbiwgYmFzZWQgb24gd2hldGhlciBhcmlhLXByZXNzZWQgaXMgcHJlc2VudC4KaHR0cDovL3d3
dy53My5vcmcvVFIvd2FpLWFyaWEvc3RhdGVzX2FuZF9wcm9wZXJ0aWVzI2FyaWEtcHJlc3NlZAot
LS0KIExheW91dFRlc3RzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
ICAxMyArKysrKysKIC4uLi9hcmlhLXRvZ2dsZS1idXR0b24tcm9sZS1leHBlY3RlZC50eHQgICAg
ICAgICAgIHwgICAxNCArKysrKysKIC4uLi9ndGsvYWNjZXNzaWJpbGl0eS9hcmlhLXRvZ2dsZS1i
dXR0b24tcm9sZS5odG1sIHwgICA0OSArKysrKysrKysrKysrKysrKysrKwogU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDI1ICsrKysrKysrKysK
IC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcCAgICAgIHwgICAy
NSArKysrKysrKy0tCiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlP
YmplY3QuaCB8ICAgIDIgKwogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdC5jcHAgICAgfCAgIDI2ICsrKysrKysrKy0tCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0LmggICAgICB8ICAgIDEgKwogLi4uL2d0ay9XZWJLaXRBY2Nlc3Np
YmxlV3JhcHBlckF0ay5jcHAgICAgICAgICAgICAgfCAgICAyICsKIC4uLi9tYWMvV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXIubW0gICAgICAgICAgIHwgICAgMyArLQogU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgfCAgIDE1ICsrKysrKwogLi4u
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQWNjZXNzaWJpbGl0eVJvbGUuaCAgfCAgICAxICsK
IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwIHwgICAg
MSArCiBUb29scy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
ICAgMTMgKysrKysrCiAuLi4vVGVzdFJ1bm5lci9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50Q2hyb21p
dW0uY3BwICB8ICAgIDIgKwogMTUgZmlsZXMgY2hhbmdlZCwgMTgxIGluc2VydGlvbnMoKyksIDEx
IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9hY2Nlc3NpYmlsaXR5L2FyaWEtdG9nZ2xlLWJ1dHRvbi1yb2xlLWV4cGVjdGVkLnR4dAogY3Jl
YXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2Fy
aWEtdG9nZ2xlLWJ1dHRvbi1yb2xlLmh0bWwKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNTIyNDZjNy4uZjc5MjEzOCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTA4LTIwICBBbGVqYW5kcm8gUGnDsWVpcm8gIDxhcGlu
aGVpcm9AaWdhbGlhLmNvbT4KKworICAgICAgICBbR3RrXSBEb2pvIHRvZ2dsZSBidXR0b25zIHNo
b3VsZCBleHBvc2UgUk9MRV9UT0dHTEVfQlVUVE9OIG5vdCBST0xFX1BVU0hfQlVUVE9OCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzgxOQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIGEgdGVzdCB0
byB2ZXJpZnkgdGhhdCB3aGVuIGFyaWEtcHJlc3NlZCBpcyBwcmVzZW50LCBidXR0b25zCisgICAg
ICAgIHdpbGwgaGF2ZSB0aGUgYXBwcm9waWF0ZSByb2xlLgorCisgICAgICAgICogcGxhdGZvcm0v
Z3RrL2FjY2Vzc2liaWxpdHkvYXJpYS10b2dnbGUtYnV0dG9uLXJvbGUtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9hcmlhLXRvZ2dsZS1i
dXR0b24tcm9sZS5odG1sOiBBZGRlZC4KKwogMjAxMi0wOC0wNyAgQ3NhYmEgT3N6dHJvZ29uw6Fj
ICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtRdF0gVW5yZXZpZXdlZCBnYXJkZW5pbmcu
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9hcmlh
LXRvZ2dsZS1idXR0b24tcm9sZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvYWNjZXNzaWJpbGl0eS9hcmlhLXRvZ2dsZS1idXR0b24tcm9sZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2MwZTJiZgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2FyaWEtdG9nZ2xlLWJ1
dHRvbi1yb2xlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACisgIAorVGhpcyB0ZXN0cyB0
aGF0IHRoZSByb2xlIGV4cG9zZWQgd2hlbiBhIGJ1dHRvbiBoYXMgdGhlIGF0dHJpYnV0ZSBhcmlh
LXByZXNzZWQgaXMgdG9nZ2xlIGJ1dHRvbnMgaW4gR1RLLgorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCitQQVNTIG9iai5jaGlsZEF0SW5kZXgoMCkuY2hpbGRBdEluZGV4KDApLnJvbGUgaXMgJ0FY
Um9sZTogbGlzdCBpdGVtJworUEFTUyBvYmoxLnJvbGUgaXMgJ0FYUm9sZTogdG9nZ2xlIGJ1dHRv
bicKK1BBU1Mgb2JqMi5yb2xlIGlzICdBWFJvbGU6IHRvZ2dsZSBidXR0b24nCitQQVNTIG9iajMu
cm9sZSBpcyAnQVhSb2xlOiBwdXNoIGJ1dHRvbicKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJpYS10b2dnbGUtYnV0dG9uLXJvbGUuaHRtbCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2FyaWEtdG9nZ2xlLWJ1dHRv
bi1yb2xlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGI2MDBjMQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5
L2FyaWEtdG9nZ2xlLWJ1dHRvbi1yb2xlLmh0bWwKQEAgLTAsMCArMSw0OSBAQAorPCFET0NUWVBF
IEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0PgorCitmdW5jdGlvbiBydW5UZXN0KCkKK3sKKyAgaWYgKHdpbmRvdy5h
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImJvZHkiKS5mb2N1cygpOworICAgIG9iaiA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZvY3Vz
ZWRFbGVtZW50OworICAgIHNob3VsZEJlKCJvYmouY2hpbGRBdEluZGV4KDApLmNoaWxkQXRJbmRl
eCgwKS5yb2xlIiwgIidBWFJvbGU6IGxpc3QgaXRlbSciKTsKKworICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJvYmoxIikuZm9jdXMoKTsKKyAgICBvYmoxID0gYWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIuZm9jdXNlZEVsZW1lbnQ7CisgICAgc2hvdWxkQmUoIm9iajEucm9sZSIsICInQVhSb2xl
OiB0b2dnbGUgYnV0dG9uJyIpOworCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm9iajIi
KS5mb2N1cygpOworICAgIG9iajIgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5mb2N1c2VkRWxl
bWVudDsKKyAgICBzaG91bGRCZSgib2JqMi5yb2xlIiwgIidBWFJvbGU6IHRvZ2dsZSBidXR0b24n
Iik7CisKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib2JqMyIpLmZvY3VzKCk7CisgICAg
b2JqMyA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZvY3VzZWRFbGVtZW50OworICAgIHNob3Vs
ZEJlKCJvYmozLnJvbGUiLCAiJ0FYUm9sZTogcHVzaCBidXR0b24nIik7CisgIH0KK30KKzwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHkgaWQ9ImJvZHkiIG9ubG9hZD0icnVuVGVzdCgpIj4KKworPGRp
diByb2xlPSJsaXN0Ij4KKzxkaXYgcm9sZT0ibGlzdGl0ZW0iIGFyaWEtbGFiZWw9Iml0ZW0gMSIg
YXJpYS1wcmVzc2VkPSJmYWxzZSI+PGltZyBzcmM9JyMnIHdpZHRoPTEwMCBoZWlnaHQ9MTAwPjwv
ZGl2PgorPC9kaXY+CisKKzxpbnB1dCB0eXBlPSJidXR0b24iIGlkPSJvYmoxIiByb2xlPSJidXR0
b24iIGFyaWEtcHJlc3NlZD0idHJ1ZSI+Cis8aW5wdXQgdHlwZT0iYnV0dG9uIiBpZD0ib2JqMiIg
cm9sZT0iYnV0dG9uIiBhcmlhLXByZXNzZWQ9ImZhbHNlIj4KKzxpbnB1dCB0eXBlPSJidXR0b24i
IGlkPSJvYmozIiByb2xlPSJidXR0b24iPgorCis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxk
aXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRoaXMgdGVz
dHMgdGhhdCB0aGUgcm9sZSBleHBvc2VkIHdoZW4gYSBidXR0b24gaGFzIHRoZSBhdHRyaWJ1dGUg
YXJpYS1wcmVzc2VkIGlzIHRvZ2dsZSBidXR0b25zIGluIEdUSy4iKTsKKworPC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkOGNmM2UxLi45OTY2MDJl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTItMDgtMjAgIEFsZWphbmRybyBQacOx
ZWlybyAgPGFwaW5oZWlyb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtHdGtdIERvam8gdG9nZ2xl
IGJ1dHRvbnMgc2hvdWxkIGV4cG9zZSBST0xFX1RPR0dMRV9CVVRUT04gbm90IFJPTEVfUFVTSF9C
VVRUT04KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcz
ODE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
ZWQgYSBuZXcgcm9sZSwgVG9nZ2xlIEJ1dHRvbiwgYmFzZWQgb24gd2hldGhlciBhcmlhLXByZXNz
ZWQgaXMgcHJlc2VudC4KKyAgICAgICAgaHR0cDovL3d3dy53My5vcmcvVFIvd2FpLWFyaWEvc3Rh
dGVzX2FuZF9wcm9wZXJ0aWVzI2FyaWEtcHJlc3NlZAorCisgICAgICAgIFRlc3Q6IHBsYXRmb3Jt
L2d0ay9hY2Nlc3NpYmlsaXR5L2FyaWEtdG9nZ2xlLWJ1dHRvbi1yb2xlLmh0bWwKKworICAgICAg
ICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oOgorICAgICAgICAoV2ViQ29y
ZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6aXNUb2dnbGVCdXR0b24pOiBOZXcgbWV0aG9kIHRoYXQK
KyAgICAgICAgY2hlY2tzIGlmIGEgYnV0dG9uIGlzIGEgdG9nZ2xlIGJ1dHRvbi4gRGVmYXVsdCBp
bXBsZW1lbnRhdGlvbgorICAgICAgICBpcyBmYWxzZS4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdDo6aXNUb2dnbGVCdXR0b24pOiBJbXBsZW1lbnRhdGlvbgorICAg
ICAgICBvZiBpc1RvZ2dsZUJ1dHRvbiBmb3IgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC4KKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaDoKKyAgICAg
ICAgKEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
Z3RrL1dlYktpdEFjY2Vzc2libGVXcmFwcGVyQXRrLmNwcDoKKyAgICAgICAgKHdlYmtpdEFjY2Vz
c2libGVHZXRSb2xlKTogVXNlIGlzVG9nZ2xlQnV0dG9uIGluIG9yZGVyIHRvCisgICAgICAgIGRl
Y2lkZSBpZiBBVEtfUk9MRV9UT0dHTEVfQlVUVE9OIHNob3VsZCBiZSByZXR1cm5lZC4KKwogMjAx
Mi0wOC0wNyAgVnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBXZWIgSW5zcGVjdG9yOiBEbyBub3QgZGlzYWJsZSBuZXR3b3JrIHRyYWNraW5nIHdoaWxlIHBy
b2ZpbGluZyBjcHUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCmluZGV4IGQzOGFmNTAuLjEwM2NlMzQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3QuY3BwCkBAIC0yNDksMTYgKzI0OSwyNyBAQCBBY2Nlc3NpYmlsaXR5Um9sZSBBY2Nl
c3NpYmlsaXR5Tm9kZU9iamVjdDo6ZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUoKQogICAgICAg
ICByZXR1cm4gV2ViQ29yZUxpbmtSb2xlOwogICAgIGlmIChub2RlKCktPmlzVGV4dE5vZGUoKSkK
ICAgICAgICAgcmV0dXJuIFN0YXRpY1RleHRSb2xlOwotICAgIGlmIChub2RlKCktPmhhc1RhZ05h
bWUoYnV0dG9uVGFnKSkKLSAgICAgICAgcmV0dXJuIGFyaWFIYXNQb3B1cCgpID8gUG9wVXBCdXR0
b25Sb2xlIDogQnV0dG9uUm9sZTsKKyAgICBpZiAobm9kZSgpLT5oYXNUYWdOYW1lKGJ1dHRvblRh
ZykpIHsKKyAgICAgICAgLy8gQVJJQSBzdGF0ZXMgdGhhdCBhIGJ1dHRvbiB3aXRoIHByZXNzZWQg
YXR0cmlidXRlIGlzIGEgdG9nZ2xlIGJ1dHRvbgorICAgICAgICBpZiAoaGFzQVJJQVByZXNzZWQo
KSkKKyAgICAgICAgICAgIHJldHVybiBUb2dnbGVCdXR0b25Sb2xlOworICAgICAgICBpZiAoYXJp
YUhhc1BvcHVwKCkpCisgICAgICAgICAgICByZXR1cm4gUG9wVXBCdXR0b25Sb2xlOworICAgICAg
ICByZXR1cm4gQnV0dG9uUm9sZTsKKyAgICB9CiAgICAgaWYgKG5vZGUoKS0+aGFzVGFnTmFtZShp
bnB1dFRhZykpIHsKICAgICAgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQgPSBzdGF0aWNfY2Fz
dDxIVE1MSW5wdXRFbGVtZW50Kj4obm9kZSgpKTsKICAgICAgICAgaWYgKGlucHV0LT5pc0NoZWNr
Ym94KCkpCiAgICAgICAgICAgICByZXR1cm4gQ2hlY2tCb3hSb2xlOwogICAgICAgICBpZiAoaW5w
dXQtPmlzUmFkaW9CdXR0b24oKSkKICAgICAgICAgICAgIHJldHVybiBSYWRpb0J1dHRvblJvbGU7
Ci0gICAgICAgIGlmIChpbnB1dC0+aXNUZXh0QnV0dG9uKCkpCi0gICAgICAgICAgICByZXR1cm4g
YXJpYUhhc1BvcHVwKCkgPyBQb3BVcEJ1dHRvblJvbGUgOiBCdXR0b25Sb2xlOworICAgICAgICBp
ZiAoaW5wdXQtPmlzVGV4dEJ1dHRvbigpKSB7CisgICAgICAgICAgICBpZiAoaGFzQVJJQVByZXNz
ZWQoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gVG9nZ2xlQnV0dG9uUm9sZTsKKyAgICAgICAg
ICAgIGlmIChhcmlhSGFzUG9wdXAoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gUG9wVXBCdXR0
b25Sb2xlOworICAgICAgICAgICAgcmV0dXJuIEJ1dHRvblJvbGU7CisgICAgICAgIH0KICAgICAg
ICAgcmV0dXJuIFRleHRGaWVsZFJvbGU7CiAgICAgfQogICAgIGlmIChub2RlKCktPmhhc1RhZ05h
bWUoc2VsZWN0VGFnKSkgewpAQCAtMzM2LDcgKzM0NywxMSBAQCBBY2Nlc3NpYmlsaXR5Um9sZSBB
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6ZGV0ZXJtaW5lQXJpYVJvbGVBdHRyaWJ1dGUoKSBjb25z
dAogICAgIC8vIEFSSUEgc3RhdGVzIGlmIGFuIGl0ZW0gY2FuIGdldCBmb2N1cywgaXQgc2hvdWxk
IG5vdCBiZSBwcmVzZW50YXRpb25hbC4KICAgICBpZiAocm9sZSA9PSBQcmVzZW50YXRpb25hbFJv
bGUgJiYgY2FuU2V0Rm9jdXNBdHRyaWJ1dGUoKSkKICAgICAgICAgcmV0dXJuIFVua25vd25Sb2xl
OwotICAgIAorCisgICAgLy8gQVJJQSBzdGF0ZXMgdGhhdCBhIGJ1dHRvbiB3aXRoIHByZXNzZWQg
YXR0cmlidXRlIGlzIGEgdG9nZ2xlIGJ1dHRvbgorICAgIGlmIChyb2xlID09IEJ1dHRvblJvbGUg
JiYgaGFzQVJJQVByZXNzZWQoKSkKKyAgICAgICAgcm9sZSA9IFRvZ2dsZUJ1dHRvblJvbGU7CisK
ICAgICBpZiAocm9sZSA9PSBCdXR0b25Sb2xlICYmIGFyaWFIYXNQb3B1cCgpKQogICAgICAgICBy
b2xlID0gUG9wVXBCdXR0b25Sb2xlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4IDg4YjFmMzkuLjFlMDBkYmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5o
CkBAIC0xODcsNiArMTg3LDcgQEAgZW51bSBBY2Nlc3NpYmlsaXR5Um9sZSB7CiAgICAgVHJlZUdy
aWRSb2xlLAogICAgIFRyZWVJdGVtUm9sZSwKICAgICBUZXh0RmllbGRSb2xlLAorICAgIFRvZ2ds
ZUJ1dHRvblJvbGUsCiAgICAgVG9vbGJhclJvbGUsCiAgICAgVW5rbm93blJvbGUsCiAgICAgVXNl
ckludGVyZmFjZVRvb2x0aXBSb2xlLApAQCAtNDUxLDYgKzQ1Miw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIGJvb2wgc3VwcG9ydHNBUklBRmxvd1RvKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgYXJpYUZsb3dUb0VsZW1lbnRzKEFjY2Vzc2liaWxpdHlDaGlsZHJl
blZlY3RvciYpIGNvbnN0IHsgfQogICAgIHZpcnR1YWwgYm9vbCBhcmlhSGFzUG9wdXAoKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBoYXNBUklBUHJlc3NlZCgpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBhcmlhSXNNdWx0aWxpbmUoKSBjb25zdDsK
ICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgaW52YWxpZFN0YXR1cygpIGNvbnN0Owog
ICAgIGJvb2wgc3VwcG9ydHNBUklBRXhwYW5kZWQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3Bw
CmluZGV4IGYwNmUxZTUuLmU1MTljODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcApAQCAtMTY4NSw3
ICsxNjg1LDExIEBAIGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YXJpYUhhc1BvcHVw
KCkgY29uc3QKIHsKICAgICByZXR1cm4gZWxlbWVudEF0dHJpYnV0ZVZhbHVlKGFyaWFfaGFzcG9w
dXBBdHRyKTsKIH0KLSAgICAKKworYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpoYXNB
UklBUHJlc3NlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuICFnZXRBdHRyaWJ1dGUoYXJpYV9wcmVz
c2VkQXR0cikuaXNFbXB0eSgpOworfQogYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpz
dXBwb3J0c0FSSUFGbG93VG8oKSBjb25zdAogewogICAgIHJldHVybiAhZ2V0QXR0cmlidXRlKGFy
aWFfZmxvd3RvQXR0cikuaXNFbXB0eSgpOwpAQCAtMzEzNSw4ICszMTM5LDE0IEBAIEFjY2Vzc2li
aWxpdHlSb2xlIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRldGVybWluZUFjY2Vzc2liaWxp
dHlSb2xlKCkKICAgICAgICAgcmV0dXJuIExpc3RJdGVtUm9sZTsKICAgICBpZiAobV9yZW5kZXJl
ci0+aXNMaXN0TWFya2VyKCkpCiAgICAgICAgIHJldHVybiBMaXN0TWFya2VyUm9sZTsKLSAgICBp
ZiAobm9kZSAmJiBub2RlLT5oYXNUYWdOYW1lKGJ1dHRvblRhZykpCi0gICAgICAgIHJldHVybiBh
cmlhSGFzUG9wdXAoKSA/IFBvcFVwQnV0dG9uUm9sZSA6IEJ1dHRvblJvbGU7CisgICAgaWYgKG5v
ZGUgJiYgbm9kZS0+aGFzVGFnTmFtZShidXR0b25UYWcpKSB7CisgICAgICAgIC8vIEFSSUEgc3Rh
dGVzIHRoYXQgYSBidXR0b24gd2l0aCBwcmVzc2VkIGF0dHJpYnV0ZSBpcyBhIHRvZ2dsZSBidXR0
b24KKyAgICAgICAgaWYgKGhhc0FSSUFQcmVzc2VkKCkpCisgICAgICAgICAgICByZXR1cm4gVG9n
Z2xlQnV0dG9uUm9sZTsKKyAgICAgICAgaWYgKGFyaWFIYXNQb3B1cCgpKQorICAgICAgICAgICAg
cmV0dXJuIFBvcFVwQnV0dG9uUm9sZTsKKyAgICAgICAgcmV0dXJuIEJ1dHRvblJvbGU7CisgICAg
fQogICAgIGlmIChtX3JlbmRlcmVyLT5pc1RleHQoKSkKICAgICAgICAgcmV0dXJuIFN0YXRpY1Rl
eHRSb2xlOwogICAgIGlmIChjc3NCb3ggJiYgY3NzQm94LT5pc0ltYWdlKCkpIHsKQEAgLTMxNjIs
OCArMzE3MiwxNCBAQCBBY2Nlc3NpYmlsaXR5Um9sZSBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
OjpkZXRlcm1pbmVBY2Nlc3NpYmlsaXR5Um9sZSgpCiAgICAgICAgICAgICByZXR1cm4gQ2hlY2tC
b3hSb2xlOwogICAgICAgICBpZiAoaW5wdXQtPmlzUmFkaW9CdXR0b24oKSkKICAgICAgICAgICAg
IHJldHVybiBSYWRpb0J1dHRvblJvbGU7Ci0gICAgICAgIGlmIChpbnB1dC0+aXNUZXh0QnV0dG9u
KCkpCi0gICAgICAgICAgICByZXR1cm4gYXJpYUhhc1BvcHVwKCkgPyBQb3BVcEJ1dHRvblJvbGUg
OiBCdXR0b25Sb2xlOworICAgICAgICBpZiAoaW5wdXQtPmlzVGV4dEJ1dHRvbigpKSB7CisgICAg
ICAgICAgICAvLyBBUklBIHN0YXRlcyB0aGF0IGEgYnV0dG9uIHdpdGggcHJlc3NlZCBhdHRyaWJ1
dGUgaXMgYSB0b2dnbGUgYnV0dG9uCisgICAgICAgICAgICBpZiAoaGFzQVJJQVByZXNzZWQoKSkK
KyAgICAgICAgICAgICAgICByZXR1cm4gVG9nZ2xlQnV0dG9uUm9sZTsKKyAgICAgICAgICAgIGlm
IChhcmlhSGFzUG9wdXAoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gUG9wVXBCdXR0b25Sb2xl
OworICAgICAgICAgICAgcmV0dXJuIEJ1dHRvblJvbGU7CisgICAgICAgIH0KICAgICB9CiAKICAg
ICBpZiAoaXNGaWxlVXBsb2FkQnV0dG9uKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oCmluZGV4IDhmZTBhZmUu
LjcwZmE1ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oCkBAIC0zMjUsNiArMzI1LDcgQEAgcHJpdmF0ZToK
ICAgICB2aXJ0dWFsIGJvb2wgYXJpYUxpdmVSZWdpb25CdXN5KCkgY29uc3Q7ICAgIAogICAgIAog
ICAgIGJvb2wgaW5oZXJpdHNQcmVzZW50YXRpb25hbFJvbGUoKSBjb25zdDsKKyAgICB2aXJ0dWFs
IGJvb2wgaGFzQVJJQVByZXNzZWQoKSBjb25zdDsKIH07CiAKIGlubGluZSBBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0KiB0b0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QoQWNjZXNzaWJpbGl0eU9i
amVjdCogb2JqZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9n
dGsvV2ViS2l0QWNjZXNzaWJsZVdyYXBwZXJBdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9ndGsvV2ViS2l0QWNjZXNzaWJsZVdyYXBwZXJBdGsuY3BwCmluZGV4IDdmNmI4OTQu
LmI5ZTI4YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL1dl
YktpdEFjY2Vzc2libGVXcmFwcGVyQXRrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2d0ay9XZWJLaXRBY2Nlc3NpYmxlV3JhcHBlckF0ay5jcHAKQEAgLTQzMCw2ICs0MzAs
OCBAQCBzdGF0aWMgQXRrUm9sZSBhdGtSb2xlKEFjY2Vzc2liaWxpdHlSb2xlIHJvbGUpCiAgICAg
ICAgIHJldHVybiBBVEtfUk9MRV9VTktOT1dOOwogICAgIGNhc2UgQnV0dG9uUm9sZToKICAgICAg
ICAgcmV0dXJuIEFUS19ST0xFX1BVU0hfQlVUVE9OOworICAgIGNhc2UgVG9nZ2xlQnV0dG9uUm9s
ZToKKyAgICAgICAgcmV0dXJuIEFUS19ST0xFX1RPR0dMRV9CVVRUT047CiAgICAgY2FzZSBSYWRp
b0J1dHRvblJvbGU6CiAgICAgICAgIHJldHVybiBBVEtfUk9MRV9SQURJT19CVVRUT047CiAgICAg
Y2FzZSBDaGVja0JveFJvbGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlci5tbSBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyLm1tCmluZGV4
IDdhOWQ0YmIuLmI1ZWE4NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyLm1tCkBA
IC0xNTc2LDcgKzE1NzYsOCBAQCBzdGF0aWMgY29uc3QgQWNjZXNzaWJpbGl0eVJvbGVNYXAmIGNy
ZWF0ZUFjY2Vzc2liaWxpdHlSb2xlTWFwKCkKICAgICAgICAgeyBEaXZSb2xlLCBOU0FjY2Vzc2li
aWxpdHlHcm91cFJvbGUgfSwKICAgICAgICAgeyBGb3JtUm9sZSwgTlNBY2Nlc3NpYmlsaXR5R3Jv
dXBSb2xlIH0sCiAgICAgICAgIHsgU3BpbkJ1dHRvblJvbGUsIE5TQWNjZXNzaWJpbGl0eUluY3Jl
bWVudG9yUm9sZSB9LAotICAgICAgICB7IEZvb3RlclJvbGUsIE5TQWNjZXNzaWJpbGl0eUdyb3Vw
Um9sZSB9CisgICAgICAgIHsgRm9vdGVyUm9sZSwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0s
CisgICAgICAgIHsgVG9nZ2xlQnV0dG9uUm9sZSwgTlNBY2Nlc3NpYmlsaXR5QnV0dG9uUm9sZSB9
CiAgICAgfTsKICAgICBBY2Nlc3NpYmlsaXR5Um9sZU1hcCYgcm9sZU1hcCA9ICpuZXcgQWNjZXNz
aWJpbGl0eVJvbGVNYXA7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDc4ZGFh
NTkuLmRkODhiZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAK
KzIwMTItMDgtMjAgIEFsZWphbmRybyBQacOxZWlybyAgPGFwaW5oZWlyb0BpZ2FsaWEuY29tPgor
CisgICAgICAgIERvam8gdG9nZ2xlIGJ1dHRvbnMgc2hvdWxkIGV4cG9zZSBST0xFX1RPR0dMRV9C
VVRUT04gbm90IFJPTEVfUFVTSF9CVVRUT04KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTczODE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWRkZWQgYSBuZXcgcm9sZSwgVG9nZ2xlIEJ1dHRvbiwgYmFzZWQg
b24gd2hldGhlciBhcmlhLXByZXNzZWQgaXMgcHJlc2VudC4KKyAgICAgICAgaHR0cDovL3d3dy53
My5vcmcvVFIvd2FpLWFyaWEvc3RhdGVzX2FuZF9wcm9wZXJ0aWVzI2FyaWEtcHJlc3NlZAorCisg
ICAgICAgICogcHVibGljL1dlYkFjY2Vzc2liaWxpdHlSb2xlLmg6IGFkZGVkIFdlYkFjY2Vzc2li
aWxpdHlSb2xlVG9nZ2xlQnV0dG9uIHRoYXQKKyAgICAgICAgbWF0Y2hzIHdpdGggV2ViQ29yZSBU
b2dnbGVCdXR0b25Sb2xlCisgICAgICAgICogc3JjL0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwOiBh
ZGRlZCB0aGUgYXNzZXJ0IG1hdGNoaW5nIHJ1bGUgZm9yCisgICAgICAgIFdlYkFjY2Vzc2liaWxp
dHlSb2xlVG9nZ2xlQnV0dG9uIGFuZCBUb2dnbGVCdXR0b25Sb2xlCisKIDIwMTItMDgtMDcgIEFs
ZXhlaSBGaWxpcHBvdiAgPGFsZXhlaWZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IG1ha2UgdGhlIE1lbW9yeUNsYXNzSW5mbyBjbGFzcyBhIG5vdC10ZW1wbGF0ZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQWNjZXNzaWJpbGl0eVJv
bGUuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkFjY2Vzc2liaWxpdHlSb2xl
LmgKaW5kZXggNjA5NThmOS4uZjQwYzFkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViQWNjZXNzaWJpbGl0eVJvbGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJBY2Nlc3NpYmlsaXR5Um9sZS5oCkBAIC0xMzMsNiArMTMzLDcgQEAg
ZW51bSBXZWJBY2Nlc3NpYmlsaXR5Um9sZSB7CiAgICAgV2ViQWNjZXNzaWJpbGl0eVJvbGVUcmVl
R3JpZCwKICAgICBXZWJBY2Nlc3NpYmlsaXR5Um9sZVRyZWVJdGVtUm9sZSwKICAgICBXZWJBY2Nl
c3NpYmlsaXR5Um9sZVRleHRGaWVsZCwKKyAgICBXZWJBY2Nlc3NpYmlsaXR5Um9sZVRvZ2dsZUJ1
dHRvbiwKICAgICBXZWJBY2Nlc3NpYmlsaXR5Um9sZVRvb2xiYXIsCiAgICAgV2ViQWNjZXNzaWJp
bGl0eVJvbGVVbmtub3duLAogICAgIFdlYkFjY2Vzc2liaWxpdHlSb2xlVXNlckludGVyZmFjZVRv
b2x0aXAsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRj
aGluZ0VudW1zLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNoaW5n
RW51bXMuY3BwCmluZGV4IDljZjYwODkuLmJmNDBhYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwCkBAIC0yNTMsNiArMjUzLDcg
QEAgQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJBY2Nlc3NpYmlsaXR5Um9sZURvY3Vt
ZW50TWF0aCwgRG9jdW1lbnRNYXRoUm9sZSkKIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0o
V2ViQWNjZXNzaWJpbGl0eVJvbGVEb2N1bWVudE5vdGUsIERvY3VtZW50Tm90ZVJvbGUpOwogQ09N
UElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJBY2Nlc3NpYmlsaXR5Um9sZURvY3VtZW50UmVn
aW9uLCBEb2N1bWVudFJlZ2lvblJvbGUpOwogQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShX
ZWJBY2Nlc3NpYmlsaXR5Um9sZVVzZXJJbnRlcmZhY2VUb29sdGlwLCBVc2VySW50ZXJmYWNlVG9v
bHRpcFJvbGUpOworQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJBY2Nlc3NpYmlsaXR5
Um9sZVRvZ2dsZUJ1dHRvbiwgVG9nZ2xlQnV0dG9uUm9sZSk7CiAKIENPTVBJTEVfQVNTRVJUX01B
VENISU5HX0VOVU0oV2ViQXBwbGljYXRpb25DYWNoZUhvc3Q6OlVuY2FjaGVkLCBBcHBsaWNhdGlv
bkNhY2hlSG9zdDo6VU5DQUNIRUQpOwogQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJB
cHBsaWNhdGlvbkNhY2hlSG9zdDo6SWRsZSwgQXBwbGljYXRpb25DYWNoZUhvc3Q6OklETEUpOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDJjNzA1
ODcuLjY4YjUzMTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0wOC0yMCAgQWxlamFuZHJvIFBpw7FlaXJvICA8
YXBpbmhlaXJvQGlnYWxpYS5jb20+CisKKyAgICAgICAgRG9qbyB0b2dnbGUgYnV0dG9ucyBzaG91
bGQgZXhwb3NlIFJPTEVfVE9HR0xFX0JVVFRPTiBub3QgUk9MRV9QVVNIX0JVVFRPTgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM4MTkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBhIG5ldyByb2xl
LCBUb2dnbGUgQnV0dG9uLCBiYXNlZCBvbiB3aGV0aGVyIGFyaWEtcHJlc3NlZCBpcyBwcmVzZW50
LgorICAgICAgICBodHRwOi8vd3d3LnczLm9yZy9UUi93YWktYXJpYS9zdGF0ZXNfYW5kX3Byb3Bl
cnRpZXMjYXJpYS1wcmVzc2VkCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9U
ZXN0UnVubmVyL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRDaHJvbWl1bS5jcHA6CisgICAgICAgIChy
b2xlVG9TdHJpbmcpOiBhZGRlZCAiVG9nZ2xlQnV0dG9uIiBzdHJpbmcgZm9yIFdlYkFjY2Vzc2li
aWxpdHlSb2xlVG9nZ2xlQnV0dG9uCisKIDIwMTItMDgtMDIgIFNpbW9uIEhhdXNtYW5uICA8c2lt
b24uaGF1c21hbm5Abm9raWEuY29tPgogCiAgICAgICAgIFtRdF0gUmVtb3ZlIFF0IDQgc3BlY2lm
aWMgY29kZSBwYXRocwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
VGVzdFJ1bm5lci9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50Q2hyb21pdW0uY3BwIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50Q2hy
b21pdW0uY3BwCmluZGV4IGM1NmIxNTEuLmRmMGZiMGEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvQWNjZXNzaWJpbGl0eVVJRWxlbWVudENocm9t
aXVtLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL0Fj
Y2Vzc2liaWxpdHlVSUVsZW1lbnRDaHJvbWl1bS5jcHAKQEAgLTIwNCw2ICsyMDQsOCBAQCBzdGF0
aWMgc3RyaW5nIHJvbGVUb1N0cmluZyhXZWJBY2Nlc3NpYmlsaXR5Um9sZSByb2xlKQogICAgICAg
ICByZXR1cm4gcmVzdWx0LmFwcGVuZCgiRG9jdW1lbnRSZWdpb24iKTsKICAgICBjYXNlIFdlYkFj
Y2Vzc2liaWxpdHlSb2xlVXNlckludGVyZmFjZVRvb2x0aXA6CiAgICAgICAgIHJldHVybiByZXN1
bHQuYXBwZW5kKCJVc2VySW50ZXJmYWNlVG9vbHRpcCIpOworICAgIGNhc2UgV2ViQWNjZXNzaWJp
bGl0eVJvbGVUb2dnbGVCdXR0b246CisgICAgICAgIHJldHVybiByZXN1bHQuYXBwZW5kKCJUb2dn
bGVCdXR0b24iKTsKICAgICBkZWZhdWx0OgogICAgICAgICAvLyBBbHNvIG1hdGNoZXMgV2ViQWNj
ZXNzaWJpbGl0eVJvbGVVbmtub3duLgogICAgICAgICByZXR1cm4gcmVzdWx0LmFwcGVuZCgiVW5r
bm93biIpOwotLSAKMS43LjkuNQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>159484</attachid>
            <date>2012-08-20 12:03:43 -0700</date>
            <delta_ts>2012-08-21 03:42:46 -0700</delta_ts>
            <desc>Fixes the bug</desc>
            <filename>0001-Dojo-toggle-buttons-should-expose-ROLE_TOGGLE_BUTTON.patch</filename>
            <type>text/plain</type>
            <size>17713</size>
            <attacher name="Alejandro Piñeiro">apinheiro</attacher>
            
              <data encoding="base64">RnJvbSAwNmQwMDQwYzcyMDNkYTdlZTI0NDg0ZWEwN2Q4YjNjMjg2M2I5OTU3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/QWxlamFuZHJvPTIwUGk9QzM9QjFlaXJvPz0g
PGFwaW5oZWlyb0BpZ2FsaWEuY29tPgpEYXRlOiBNb24sIDEzIEF1ZyAyMDEyIDE4OjU2OjMxICsw
MjAwClN1YmplY3Q6IFtQQVRDSF0gRG9qbyB0b2dnbGUgYnV0dG9ucyBzaG91bGQgZXhwb3NlIFJP
TEVfVE9HR0xFX0JVVFRPTiBub3QKIFJPTEVfUFVTSF9CVVRUT04KIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzgxOQoKQWRkZWQgYSBuZXcgcm9sZSwgVG9nZ2xlIEJ1
dHRvbiwgYmFzZWQgb24gd2hldGhlciBhcmlhLXByZXNzZWQgaXMgcHJlc2VudC4KaHR0cDovL3d3
dy53My5vcmcvVFIvd2FpLWFyaWEvc3RhdGVzX2FuZF9wcm9wZXJ0aWVzI2FyaWEtcHJlc3NlZAot
LS0KIExheW91dFRlc3RzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
ICAxMyArKysrKysKIC4uLi9hcmlhLXRvZ2dsZS1idXR0b24tcm9sZS1leHBlY3RlZC50eHQgICAg
ICAgICAgIHwgICAxNCArKysrKysKIC4uLi9ndGsvYWNjZXNzaWJpbGl0eS9hcmlhLXRvZ2dsZS1i
dXR0b24tcm9sZS5odG1sIHwgICA0OSArKysrKysrKysrKysrKysrKysrKwogU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDM0ICsrKysrKysrKysr
KysrCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAgICAgICB8
ICAgMTAgKystLQogLi4uL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0
LmNwcCAgfCAgIDIzICsrKysrKysrLQogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5T2JqZWN0LmggfCAgICAzICsrCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0LmNwcCAgICB8ICAgIDYgKy0tCiAuLi4vZ3RrL1dlYktpdEFjY2Vzc2li
bGVXcmFwcGVyQXRrLmNwcCAgICAgICAgICAgICB8ICAgIDIgKwogLi4uL21hYy9XZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlci5tbSAgICAgICAgICAgfCAgICAzICstCiBTb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICB8ICAgMTUgKysrKysrCiAuLi4v
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJBY2Nlc3NpYmlsaXR5Um9sZS5oICB8ICAgIDEgKwog
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAgfCAgICAx
ICsKIFRvb2xzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
ICAxMyArKysrKysKIC4uLi9UZXN0UnVubmVyL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRDaHJvbWl1
bS5jcHAgIHwgICAgMiArCiAxNSBmaWxlcyBjaGFuZ2VkLCAxNzkgaW5zZXJ0aW9ucygrKSwgMTAg
ZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L2FjY2Vzc2liaWxpdHkvYXJpYS10b2dnbGUtYnV0dG9uLXJvbGUtZXhwZWN0ZWQudHh0CiBjcmVh
dGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJp
YS10b2dnbGUtYnV0dG9uLXJvbGUuaHRtbAoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1MjI0NmM3Li5mNzkyMTM4IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDgtMjAgIEFsZWphbmRybyBQacOxZWlybyAgPGFwaW5o
ZWlyb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtHdGtdIERvam8gdG9nZ2xlIGJ1dHRvbnMgc2hv
dWxkIGV4cG9zZSBST0xFX1RPR0dMRV9CVVRUT04gbm90IFJPTEVfUFVTSF9CVVRUT04KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczODE5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgYSB0ZXN0IHRv
IHZlcmlmeSB0aGF0IHdoZW4gYXJpYS1wcmVzc2VkIGlzIHByZXNlbnQsIGJ1dHRvbnMKKyAgICAg
ICAgd2lsbCBoYXZlIHRoZSBhcHByb3BpYXRlIHJvbGUuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9n
dGsvYWNjZXNzaWJpbGl0eS9hcmlhLXRvZ2dsZS1idXR0b24tcm9sZS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2FyaWEtdG9nZ2xlLWJ1
dHRvbi1yb2xlLmh0bWw6IEFkZGVkLgorCiAyMDEyLTA4LTA3ICBDc2FiYSBPc3p0cm9nb27DoWMg
IDxvc3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1F0XSBVbnJldmlld2VkIGdhcmRlbmluZy4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2FyaWEt
dG9nZ2xlLWJ1dHRvbi1yb2xlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9hY2Nlc3NpYmlsaXR5L2FyaWEtdG9nZ2xlLWJ1dHRvbi1yb2xlLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YzBlMmJmCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJpYS10b2dnbGUtYnV0
dG9uLXJvbGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKKyAgCitUaGlzIHRlc3RzIHRo
YXQgdGhlIHJvbGUgZXhwb3NlZCB3aGVuIGEgYnV0dG9uIGhhcyB0aGUgYXR0cmlidXRlIGFyaWEt
cHJlc3NlZCBpcyB0b2dnbGUgYnV0dG9ucyBpbiBHVEsuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKK1BBU1Mgb2JqLmNoaWxkQXRJbmRleCgwKS5jaGlsZEF0SW5kZXgoMCkucm9sZSBpcyAnQVhS
b2xlOiBsaXN0IGl0ZW0nCitQQVNTIG9iajEucm9sZSBpcyAnQVhSb2xlOiB0b2dnbGUgYnV0dG9u
JworUEFTUyBvYmoyLnJvbGUgaXMgJ0FYUm9sZTogdG9nZ2xlIGJ1dHRvbicKK1BBU1Mgb2JqMy5y
b2xlIGlzICdBWFJvbGU6IHB1c2ggYnV0dG9uJworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9hcmlhLXRvZ2dsZS1idXR0b24tcm9sZS5odG1sIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJpYS10b2dnbGUtYnV0dG9u
LXJvbGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYjYwMGMxCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkv
YXJpYS10b2dnbGUtYnV0dG9uLXJvbGUuaHRtbApAQCAtMCwwICsxLDQ5IEBACis8IURPQ1RZUEUg
SFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQ+CisKK2Z1bmN0aW9uIHJ1blRlc3QoKQoreworICBpZiAod2luZG93LmFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CisKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
Ym9keSIpLmZvY3VzKCk7CisgICAgb2JqID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9jdXNl
ZEVsZW1lbnQ7CisgICAgc2hvdWxkQmUoIm9iai5jaGlsZEF0SW5kZXgoMCkuY2hpbGRBdEluZGV4
KDApLnJvbGUiLCAiJ0FYUm9sZTogbGlzdCBpdGVtJyIpOworCisgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoIm9iajEiKS5mb2N1cygpOworICAgIG9iajEgPSBhY2Nlc3NpYmlsaXR5Q29udHJv
bGxlci5mb2N1c2VkRWxlbWVudDsKKyAgICBzaG91bGRCZSgib2JqMS5yb2xlIiwgIidBWFJvbGU6
IHRvZ2dsZSBidXR0b24nIik7CisKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib2JqMiIp
LmZvY3VzKCk7CisgICAgb2JqMiA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZvY3VzZWRFbGVt
ZW50OworICAgIHNob3VsZEJlKCJvYmoyLnJvbGUiLCAiJ0FYUm9sZTogdG9nZ2xlIGJ1dHRvbici
KTsKKworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvYmozIikuZm9jdXMoKTsKKyAgICBv
YmozID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQ7CisgICAgc2hvdWxk
QmUoIm9iajMucm9sZSIsICInQVhSb2xlOiBwdXNoIGJ1dHRvbiciKTsKKyAgfQorfQorPC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keSBpZD0iYm9keSIgb25sb2FkPSJydW5UZXN0KCkiPgorCis8ZGl2
IHJvbGU9Imxpc3QiPgorPGRpdiByb2xlPSJsaXN0aXRlbSIgYXJpYS1sYWJlbD0iaXRlbSAxIiBh
cmlhLXByZXNzZWQ9ImZhbHNlIj48aW1nIHNyYz0nIycgd2lkdGg9MTAwIGhlaWdodD0xMDA+PC9k
aXY+Cis8L2Rpdj4KKworPGlucHV0IHR5cGU9ImJ1dHRvbiIgaWQ9Im9iajEiIHJvbGU9ImJ1dHRv
biIgYXJpYS1wcmVzc2VkPSJ0cnVlIj4KKzxpbnB1dCB0eXBlPSJidXR0b24iIGlkPSJvYmoyIiBy
b2xlPSJidXR0b24iIGFyaWEtcHJlc3NlZD0iZmFsc2UiPgorPGlucHV0IHR5cGU9ImJ1dHRvbiIg
aWQ9Im9iajMiIHJvbGU9ImJ1dHRvbiI+CisKKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRp
diBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0
cyB0aGF0IHRoZSByb2xlIGV4cG9zZWQgd2hlbiBhIGJ1dHRvbiBoYXMgdGhlIGF0dHJpYnV0ZSBh
cmlhLXByZXNzZWQgaXMgdG9nZ2xlIGJ1dHRvbnMgaW4gR1RLLiIpOworCis8L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGQ4Y2YzZTEuLjZjNDRlNDAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNyBAQAorMjAxMi0wOC0yMCAgQWxlamFuZHJvIFBpw7Fl
aXJvICA8YXBpbmhlaXJvQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0d0a10gRG9qbyB0b2dnbGUg
YnV0dG9ucyBzaG91bGQgZXhwb3NlIFJPTEVfVE9HR0xFX0JVVFRPTiBub3QgUk9MRV9QVVNIX0JV
VFRPTgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM4
MTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRl
ZCBhIG5ldyByb2xlLCBUb2dnbGUgQnV0dG9uLCBiYXNlZCBvbiB3aGV0aGVyIGFyaWEtcHJlc3Nl
ZCBpcyBwcmVzZW50LgorICAgICAgICBodHRwOi8vd3d3LnczLm9yZy9UUi93YWktYXJpYS9zdGF0
ZXNfYW5kX3Byb3BlcnRpZXMjYXJpYS1wcmVzc2VkCisKKyAgICAgICAgVGVzdDogcGxhdGZvcm0v
Z3RrL2FjY2Vzc2liaWxpdHkvYXJpYS10b2dnbGUtYnV0dG9uLXJvbGUuaHRtbAorCisgICAgICAg
ICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6ZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJv
bGUpOiB1c2luZyBidXR0b25Sb2xlVHlwZQorICAgICAgICB0byBjbGFzc2lmeSBhIGJ1dHRvbi1y
ZWxhdGVkIHJvbGUuCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6
ZGV0ZXJtaW5lQXJpYVJvbGVBdHRyaWJ1dGUpOiB1c2luZyBidXR0b25Sb2xlVHlwZQorICAgICAg
ICB0byBjbGFzc2lmeSBhIGJ1dHRvbi1yZWxhdGVkIHJvbGUuCisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2li
aWxpdHlPYmplY3Q6OmFyaWFQcmVzc2VkSXNQcmVzZW50KTogY2hlY2tzIGlmIGFyaWEtcHJlc3Nl
ZAorICAgICAgICBhdHRyaWJ1dGUgaXMgcHJlc2VudC4KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vz
c2liaWxpdHlPYmplY3Q6OmJ1dHRvblJvbGVUeXBlKTogcmV0dXJucyBhIHNwZWNpZmljIGJ1dHRv
bi1yZWxhdGVkCisgICAgICAgIHJvbGUgaWYgdGhlIG9iamVjdCBpcyBhIGJ1dHRvbi1yZWxhdGVk
IHJvbGUuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0Lmg6Cisg
ICAgICAgIChBY2Nlc3NpYmlsaXR5T2JqZWN0KTogYWRkZWQgbmV3IHJvbGUgVG9nZ2xlQnV0dG9u
Um9sZS4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Qu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZGV0ZXJt
aW5lQWNjZXNzaWJpbGl0eVJvbGUpOiB1c2luZyBidXR0b25Sb2xlVHlwZQorICAgICAgICB0byBj
bGFzc2lmeSBhIGJ1dHRvbi1yZWxhdGVkIHJvbGUuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9n
dGsvV2ViS2l0QWNjZXNzaWJsZVdyYXBwZXJBdGsuY3BwOgorICAgICAgICAoYXRrUm9sZSk6IGFk
ZGVkIGEgbWFwcGluZyBiZXR3ZWVuIFRvZ2dsZUJ1dHRvblJvbGUgYW5kCisgICAgICAgIEFUS19S
T0xFX1RPR0dMRV9CVVRUT04uCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXIubW06CisgICAgICAgIChjcmVhdGVBY2Nlc3NpYmlsaXR5Um9s
ZU1hcCk6IGFkZGVkIGEgbWFwcGluZyBiZXR3ZWVuCisgICAgICAgIFRvZ2dsZUJ1dHRvblJvbGUg
YW5kIE5TQWNjZXNzaWJpbGl0eUJ1dHRvblJvbGUKKwogMjAxMi0wOC0wNyAgVnNldm9sb2QgVmxh
c292ICA8dnNldmlrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBEbyBu
b3QgZGlzYWJsZSBuZXR3b3JrIHRyYWNraW5nIHdoaWxlIHByb2ZpbGluZyBjcHUuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3QuY3BwCmluZGV4IGQzOGFmNTAuLmZhNzQxMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCkBAIC0yNTAs
NyArMjUwLDcgQEAgQWNjZXNzaWJpbGl0eVJvbGUgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmRl
dGVybWluZUFjY2Vzc2liaWxpdHlSb2xlKCkKICAgICBpZiAobm9kZSgpLT5pc1RleHROb2RlKCkp
CiAgICAgICAgIHJldHVybiBTdGF0aWNUZXh0Um9sZTsKICAgICBpZiAobm9kZSgpLT5oYXNUYWdO
YW1lKGJ1dHRvblRhZykpCi0gICAgICAgIHJldHVybiBhcmlhSGFzUG9wdXAoKSA/IFBvcFVwQnV0
dG9uUm9sZSA6IEJ1dHRvblJvbGU7CisgICAgICAgIHJldHVybiBidXR0b25Sb2xlVHlwZSgpOwog
ICAgIGlmIChub2RlKCktPmhhc1RhZ05hbWUoaW5wdXRUYWcpKSB7CiAgICAgICAgIEhUTUxJbnB1
dEVsZW1lbnQqIGlucHV0ID0gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KG5vZGUoKSk7
CiAgICAgICAgIGlmIChpbnB1dC0+aXNDaGVja2JveCgpKQpAQCAtMjU4LDcgKzI1OCw3IEBAIEFj
Y2Vzc2liaWxpdHlSb2xlIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpkZXRlcm1pbmVBY2Nlc3Np
YmlsaXR5Um9sZSgpCiAgICAgICAgIGlmIChpbnB1dC0+aXNSYWRpb0J1dHRvbigpKQogICAgICAg
ICAgICAgcmV0dXJuIFJhZGlvQnV0dG9uUm9sZTsKICAgICAgICAgaWYgKGlucHV0LT5pc1RleHRC
dXR0b24oKSkKLSAgICAgICAgICAgIHJldHVybiBhcmlhSGFzUG9wdXAoKSA/IFBvcFVwQnV0dG9u
Um9sZSA6IEJ1dHRvblJvbGU7CisgICAgICAgICAgICByZXR1cm4gYnV0dG9uUm9sZVR5cGUoKTsK
ICAgICAgICAgcmV0dXJuIFRleHRGaWVsZFJvbGU7CiAgICAgfQogICAgIGlmIChub2RlKCktPmhh
c1RhZ05hbWUoc2VsZWN0VGFnKSkgewpAQCAtMzM2LDkgKzMzNiw5IEBAIEFjY2Vzc2liaWxpdHlS
b2xlIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpkZXRlcm1pbmVBcmlhUm9sZUF0dHJpYnV0ZSgp
IGNvbnN0CiAgICAgLy8gQVJJQSBzdGF0ZXMgaWYgYW4gaXRlbSBjYW4gZ2V0IGZvY3VzLCBpdCBz
aG91bGQgbm90IGJlIHByZXNlbnRhdGlvbmFsLgogICAgIGlmIChyb2xlID09IFByZXNlbnRhdGlv
bmFsUm9sZSAmJiBjYW5TZXRGb2N1c0F0dHJpYnV0ZSgpKQogICAgICAgICByZXR1cm4gVW5rbm93
blJvbGU7Ci0gICAgCi0gICAgaWYgKHJvbGUgPT0gQnV0dG9uUm9sZSAmJiBhcmlhSGFzUG9wdXAo
KSkKLSAgICAgICAgcm9sZSA9IFBvcFVwQnV0dG9uUm9sZTsKKworICAgIGlmIChyb2xlID09IEJ1
dHRvblJvbGUpCisgICAgICAgIHJvbGUgPSBidXR0b25Sb2xlVHlwZSgpOwogCiAgICAgaWYgKHJv
bGUgPT0gVGV4dEFyZWFSb2xlICYmICFhcmlhSXNNdWx0aWxpbmUoKSkKICAgICAgICAgcm9sZSA9
IFRleHRGaWVsZFJvbGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAppbmRleCA3OTNiNTRhLi5mNmRkYWIyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAK
QEAgLTE3MzQsNSArMTczNCwyNiBAQCB2b2lkIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnNjcm9sbFRv
R2xvYmFsUG9pbnQoY29uc3QgSW50UG9pbnQmIGdsb2JhbFBvaW50KSBjb25zdAogICAgICAgICB9
CiAgICAgfQogfQotICAgIAorCitib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmFyaWFQcmVzc2Vk
SXNQcmVzZW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gIWdldEF0dHJpYnV0ZShhcmlhX3ByZXNz
ZWRBdHRyKS5pc0VtcHR5KCk7Cit9CisKKy8vIFRoaXMgbWV0aG9kIGFzc3VtZXMgdGhhdCB0aGUg
b2JqZWN0IGlzIGFscmVhZHkgYSBidXR0b24tcmVsYXRlZAorLy8gcm9sZSBvYmplY3QgKGZvciBl
eGFtcGxlOiBhIGJ1dHRvbiB0YWcgbmFtZSBvciBhbiBhcmlhIGJ1dHRvbgorLy8gcm9sZSksIGFu
ZCB0aGF0IG5lZWRzIHRvIGJlIGNsYXNzaWZpZWQgdG8gdGhlIHNwZWNpZmljCisvLyBidXR0b24t
cmVsYXRlZCByb2xlLiBXZSBkb24ndCBjb250ZW1wbGF0ZSBSYWRpb0J1dHRvblJvbGUsIGFzIGl0
CisvLyBkZXBlbmRzIG9uIHRoZSBpbnB1dCB0eXBlLgorQWNjZXNzaWJpbGl0eVJvbGUgQWNjZXNz
aWJpbGl0eU9iamVjdDo6YnV0dG9uUm9sZVR5cGUoKSBjb25zdAoreworICAgIC8vIElmIGFyaWEt
cHJlc3NlZCBpcyBwcmVzZW50LCB0aGVuIGl0IHNob3VsZCBiZSBleHBvc2VkIGFzIGEgdG9nZ2xl
IGJ1dHRvbi4KKyAgICAvLyBodHRwOi8vd3d3LnczLm9yZy9UUi93YWktYXJpYS9zdGF0ZXNfYW5k
X3Byb3BlcnRpZXMjYXJpYS1wcmVzc2VkCisgICAgaWYgKGFyaWFQcmVzc2VkSXNQcmVzZW50KCkp
CisgICAgICAgIHJldHVybiBUb2dnbGVCdXR0b25Sb2xlOworICAgIGlmIChhcmlhSGFzUG9wdXAo
KSkKKyAgICAgICAgcmV0dXJuIFBvcFVwQnV0dG9uUm9sZTsKKyAgICByZXR1cm4gQnV0dG9uUm9s
ZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAppbmRleCA4OGIxZjM5Li45MDA3MGUw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlP
YmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlP
YmplY3QuaApAQCAtMTg3LDYgKzE4Nyw3IEBAIGVudW0gQWNjZXNzaWJpbGl0eVJvbGUgewogICAg
IFRyZWVHcmlkUm9sZSwKICAgICBUcmVlSXRlbVJvbGUsCiAgICAgVGV4dEZpZWxkUm9sZSwKKyAg
ICBUb2dnbGVCdXR0b25Sb2xlLAogICAgIFRvb2xiYXJSb2xlLAogICAgIFVua25vd25Sb2xlLAog
ICAgIFVzZXJJbnRlcmZhY2VUb29sdGlwUm9sZSwKQEAgLTQ1MSw2ICs0NTIsOCBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzQVJJQUZsb3dUbygpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CiAgICAgdmlydHVhbCB2b2lkIGFyaWFGbG93VG9FbGVtZW50cyhBY2Nlc3NpYmlsaXR5
Q2hpbGRyZW5WZWN0b3ImKSBjb25zdCB7IH0KICAgICB2aXJ0dWFsIGJvb2wgYXJpYUhhc1BvcHVw
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgYXJpYVByZXNzZWRJ
c1ByZXNlbnQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlSb2xlIGJ1dHRvblJv
bGVUeXBlKCkgY29uc3Q7CiAgICAgYm9vbCBhcmlhSXNNdWx0aWxpbmUoKSBjb25zdDsKICAgICB2
aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgaW52YWxpZFN0YXR1cygpIGNvbnN0OwogICAgIGJv
b2wgc3VwcG9ydHNBUklBRXhwYW5kZWQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCmluZGV4
IGYwNmUxZTUuLjM4ZDAzNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcApAQCAtMTY4NSw3ICsxNjg1
LDcgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjphcmlhSGFzUG9wdXAoKSBjb25z
dAogewogICAgIHJldHVybiBlbGVtZW50QXR0cmlidXRlVmFsdWUoYXJpYV9oYXNwb3B1cEF0dHIp
OwogfQotICAgIAorCiBib29sIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnN1cHBvcnRzQVJJ
QUZsb3dUbygpIGNvbnN0CiB7CiAgICAgcmV0dXJuICFnZXRBdHRyaWJ1dGUoYXJpYV9mbG93dG9B
dHRyKS5pc0VtcHR5KCk7CkBAIC0zMTM2LDcgKzMxMzYsNyBAQCBBY2Nlc3NpYmlsaXR5Um9sZSBB
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpkZXRlcm1pbmVBY2Nlc3NpYmlsaXR5Um9sZSgpCiAg
ICAgaWYgKG1fcmVuZGVyZXItPmlzTGlzdE1hcmtlcigpKQogICAgICAgICByZXR1cm4gTGlzdE1h
cmtlclJvbGU7CiAgICAgaWYgKG5vZGUgJiYgbm9kZS0+aGFzVGFnTmFtZShidXR0b25UYWcpKQot
ICAgICAgICByZXR1cm4gYXJpYUhhc1BvcHVwKCkgPyBQb3BVcEJ1dHRvblJvbGUgOiBCdXR0b25S
b2xlOworICAgICAgICByZXR1cm4gYnV0dG9uUm9sZVR5cGUoKTsKICAgICBpZiAobV9yZW5kZXJl
ci0+aXNUZXh0KCkpCiAgICAgICAgIHJldHVybiBTdGF0aWNUZXh0Um9sZTsKICAgICBpZiAoY3Nz
Qm94ICYmIGNzc0JveC0+aXNJbWFnZSgpKSB7CkBAIC0zMTYzLDcgKzMxNjMsNyBAQCBBY2Nlc3Np
YmlsaXR5Um9sZSBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpkZXRlcm1pbmVBY2Nlc3NpYmls
aXR5Um9sZSgpCiAgICAgICAgIGlmIChpbnB1dC0+aXNSYWRpb0J1dHRvbigpKQogICAgICAgICAg
ICAgcmV0dXJuIFJhZGlvQnV0dG9uUm9sZTsKICAgICAgICAgaWYgKGlucHV0LT5pc1RleHRCdXR0
b24oKSkKLSAgICAgICAgICAgIHJldHVybiBhcmlhSGFzUG9wdXAoKSA/IFBvcFVwQnV0dG9uUm9s
ZSA6IEJ1dHRvblJvbGU7CisgICAgICAgICAgICByZXR1cm4gYnV0dG9uUm9sZVR5cGUoKTsKICAg
ICB9CiAKICAgICBpZiAoaXNGaWxlVXBsb2FkQnV0dG9uKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9XZWJLaXRBY2Nlc3NpYmxlV3JhcHBlckF0ay5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9XZWJLaXRBY2Nlc3NpYmxlV3JhcHBl
ckF0ay5jcHAKaW5kZXggN2Y2Yjg5NC4uYjllMjhjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9ndGsvV2ViS2l0QWNjZXNzaWJsZVdyYXBwZXJBdGsuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL1dlYktpdEFjY2Vzc2libGVXcmFwcGVy
QXRrLmNwcApAQCAtNDMwLDYgKzQzMCw4IEBAIHN0YXRpYyBBdGtSb2xlIGF0a1JvbGUoQWNjZXNz
aWJpbGl0eVJvbGUgcm9sZSkKICAgICAgICAgcmV0dXJuIEFUS19ST0xFX1VOS05PV047CiAgICAg
Y2FzZSBCdXR0b25Sb2xlOgogICAgICAgICByZXR1cm4gQVRLX1JPTEVfUFVTSF9CVVRUT047Cisg
ICAgY2FzZSBUb2dnbGVCdXR0b25Sb2xlOgorICAgICAgICByZXR1cm4gQVRLX1JPTEVfVE9HR0xF
X0JVVFRPTjsKICAgICBjYXNlIFJhZGlvQnV0dG9uUm9sZToKICAgICAgICAgcmV0dXJuIEFUS19S
T0xFX1JBRElPX0JVVFRPTjsKICAgICBjYXNlIENoZWNrQm94Um9sZToKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFw
cGVyLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0
eU9iamVjdFdyYXBwZXIubW0KaW5kZXggN2E5ZDRiYi4uYjVlYTg2ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBw
ZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJp
bGl0eU9iamVjdFdyYXBwZXIubW0KQEAgLTE1NzYsNyArMTU3Niw4IEBAIHN0YXRpYyBjb25zdCBB
Y2Nlc3NpYmlsaXR5Um9sZU1hcCYgY3JlYXRlQWNjZXNzaWJpbGl0eVJvbGVNYXAoKQogICAgICAg
ICB7IERpdlJvbGUsIE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9LAogICAgICAgICB7IEZvcm1S
b2xlLCBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKICAgICAgICAgeyBTcGluQnV0dG9uUm9s
ZSwgTlNBY2Nlc3NpYmlsaXR5SW5jcmVtZW50b3JSb2xlIH0sCi0gICAgICAgIHsgRm9vdGVyUm9s
ZSwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0KKyAgICAgICAgeyBGb290ZXJSb2xlLCBOU0Fj
Y2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKKyAgICAgICAgeyBUb2dnbGVCdXR0b25Sb2xlLCBOU0Fj
Y2Vzc2liaWxpdHlCdXR0b25Sb2xlIH0KICAgICB9OwogICAgIEFjY2Vzc2liaWxpdHlSb2xlTWFw
JiByb2xlTWFwID0gKm5ldyBBY2Nlc3NpYmlsaXR5Um9sZU1hcDsKICAgICAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKaW5kZXggNzhkYWE1OS4uZDEzMjdlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMi0wOC0yMCAgQWxlamFuZHJvIFBp8WVpcm8gIDxh
cGluaGVpcm9AaWdhbGlhLmNvbT4KKworICAgICAgICBEb2pvIHRvZ2dsZSBidXR0b25zIHNob3Vs
ZCBleHBvc2UgUk9MRV9UT0dHTEVfQlVUVE9OIG5vdCBST0xFX1BVU0hfQlVUVE9OCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzgxOQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIGEgbmV3IHJvbGUs
IFRvZ2dsZSBCdXR0b24sIGJhc2VkIG9uIHdoZXRoZXIgYXJpYS1wcmVzc2VkIGlzIHByZXNlbnQu
CisgICAgICAgIGh0dHA6Ly93d3cudzMub3JnL1RSL3dhaS1hcmlhL3N0YXRlc19hbmRfcHJvcGVy
dGllcyNhcmlhLXByZXNzZWQKKworICAgICAgICAqIHB1YmxpYy9XZWJBY2Nlc3NpYmlsaXR5Um9s
ZS5oOiBhZGRlZCBXZWJBY2Nlc3NpYmlsaXR5Um9sZVRvZ2dsZUJ1dHRvbiB0aGF0CisgICAgICAg
IG1hdGNocyB3aXRoIFdlYkNvcmUgVG9nZ2xlQnV0dG9uUm9sZQorICAgICAgICAqIHNyYy9Bc3Nl
cnRNYXRjaGluZ0VudW1zLmNwcDogYWRkZWQgdGhlIGFzc2VydCBtYXRjaGluZyBydWxlIGZvcgor
ICAgICAgICBXZWJBY2Nlc3NpYmlsaXR5Um9sZVRvZ2dsZUJ1dHRvbiBhbmQgVG9nZ2xlQnV0dG9u
Um9sZQorCiAyMDEyLTA4LTA3ICBBbGV4ZWkgRmlsaXBwb3YgIDxhbGV4ZWlmQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBtYWtlIHRoZSBNZW1vcnlDbGFzc0luZm8gY2xh
c3MgYSBub3QtdGVtcGxhdGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYkFjY2Vzc2liaWxpdHlSb2xlLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJBY2Nlc3NpYmlsaXR5Um9sZS5oCmluZGV4IDYwOTU4ZjkuLmY0MGMxZDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkFjY2Vzc2liaWxpdHlSb2xlLmgK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQWNjZXNzaWJpbGl0eVJvbGUu
aApAQCAtMTMzLDYgKzEzMyw3IEBAIGVudW0gV2ViQWNjZXNzaWJpbGl0eVJvbGUgewogICAgIFdl
YkFjY2Vzc2liaWxpdHlSb2xlVHJlZUdyaWQsCiAgICAgV2ViQWNjZXNzaWJpbGl0eVJvbGVUcmVl
SXRlbVJvbGUsCiAgICAgV2ViQWNjZXNzaWJpbGl0eVJvbGVUZXh0RmllbGQsCisgICAgV2ViQWNj
ZXNzaWJpbGl0eVJvbGVUb2dnbGVCdXR0b24sCiAgICAgV2ViQWNjZXNzaWJpbGl0eVJvbGVUb29s
YmFyLAogICAgIFdlYkFjY2Vzc2liaWxpdHlSb2xlVW5rbm93biwKICAgICBXZWJBY2Nlc3NpYmls
aXR5Um9sZVVzZXJJbnRlcmZhY2VUb29sdGlwLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcAppbmRleCA5Y2Y2MDg5Li5iZjQwYWI2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1z
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1z
LmNwcApAQCAtMjUzLDYgKzI1Myw3IEBAIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2Vi
QWNjZXNzaWJpbGl0eVJvbGVEb2N1bWVudE1hdGgsIERvY3VtZW50TWF0aFJvbGUpCiBDT01QSUxF
X0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYkFjY2Vzc2liaWxpdHlSb2xlRG9jdW1lbnROb3RlLCBE
b2N1bWVudE5vdGVSb2xlKTsKIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViQWNjZXNz
aWJpbGl0eVJvbGVEb2N1bWVudFJlZ2lvbiwgRG9jdW1lbnRSZWdpb25Sb2xlKTsKIENPTVBJTEVf
QVNTRVJUX01BVENISU5HX0VOVU0oV2ViQWNjZXNzaWJpbGl0eVJvbGVVc2VySW50ZXJmYWNlVG9v
bHRpcCwgVXNlckludGVyZmFjZVRvb2x0aXBSb2xlKTsKK0NPTVBJTEVfQVNTRVJUX01BVENISU5H
X0VOVU0oV2ViQWNjZXNzaWJpbGl0eVJvbGVUb2dnbGVCdXR0b24sIFRvZ2dsZUJ1dHRvblJvbGUp
OwogCiBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYkFwcGxpY2F0aW9uQ2FjaGVIb3N0
OjpVbmNhY2hlZCwgQXBwbGljYXRpb25DYWNoZUhvc3Q6OlVOQ0FDSEVEKTsKIENPTVBJTEVfQVNT
RVJUX01BVENISU5HX0VOVU0oV2ViQXBwbGljYXRpb25DYWNoZUhvc3Q6OklkbGUsIEFwcGxpY2F0
aW9uQ2FjaGVIb3N0OjpJRExFKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xz
L0NoYW5nZUxvZwppbmRleCAyYzcwNTg3Li42OGI1MzE0IDEwMDY0NAotLS0gYS9Ub29scy9DaGFu
Z2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDgtMjAg
IEFsZWphbmRybyBQacOxZWlybyAgPGFwaW5oZWlyb0BpZ2FsaWEuY29tPgorCisgICAgICAgIERv
am8gdG9nZ2xlIGJ1dHRvbnMgc2hvdWxkIGV4cG9zZSBST0xFX1RPR0dMRV9CVVRUT04gbm90IFJP
TEVfUFVTSF9CVVRUT04KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTczODE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkZWQgYSBuZXcgcm9sZSwgVG9nZ2xlIEJ1dHRvbiwgYmFzZWQgb24gd2hldGhlciBh
cmlhLXByZXNzZWQgaXMgcHJlc2VudC4KKyAgICAgICAgaHR0cDovL3d3dy53My5vcmcvVFIvd2Fp
LWFyaWEvc3RhdGVzX2FuZF9wcm9wZXJ0aWVzI2FyaWEtcHJlc3NlZAorCisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50Q2hy
b21pdW0uY3BwOgorICAgICAgICAocm9sZVRvU3RyaW5nKTogYWRkZWQgIlRvZ2dsZUJ1dHRvbiIg
c3RyaW5nIGZvciBXZWJBY2Nlc3NpYmlsaXR5Um9sZVRvZ2dsZUJ1dHRvbgorCiAyMDEyLTA4LTAy
ICBTaW1vbiBIYXVzbWFubiAgPHNpbW9uLmhhdXNtYW5uQG5va2lhLmNvbT4KIAogICAgICAgICBb
UXRdIFJlbW92ZSBRdCA0IHNwZWNpZmljIGNvZGUgcGF0aHMKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvQWNjZXNzaWJpbGl0eVVJRWxlbWVudENo
cm9taXVtLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudENocm9taXVtLmNwcAppbmRleCBjNTZiMTUxLi5kZjBmYjBhIDEw
MDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL0FjY2Vz
c2liaWxpdHlVSUVsZW1lbnRDaHJvbWl1bS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vVGVzdFJ1bm5lci9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50Q2hyb21pdW0uY3BwCkBA
IC0yMDQsNiArMjA0LDggQEAgc3RhdGljIHN0cmluZyByb2xlVG9TdHJpbmcoV2ViQWNjZXNzaWJp
bGl0eVJvbGUgcm9sZSkKICAgICAgICAgcmV0dXJuIHJlc3VsdC5hcHBlbmQoIkRvY3VtZW50UmVn
aW9uIik7CiAgICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5Um9sZVVzZXJJbnRlcmZhY2VUb29sdGlw
OgogICAgICAgICByZXR1cm4gcmVzdWx0LmFwcGVuZCgiVXNlckludGVyZmFjZVRvb2x0aXAiKTsK
KyAgICBjYXNlIFdlYkFjY2Vzc2liaWxpdHlSb2xlVG9nZ2xlQnV0dG9uOgorICAgICAgICByZXR1
cm4gcmVzdWx0LmFwcGVuZCgiVG9nZ2xlQnV0dG9uIik7CiAgICAgZGVmYXVsdDoKICAgICAgICAg
Ly8gQWxzbyBtYXRjaGVzIFdlYkFjY2Vzc2liaWxpdHlSb2xlVW5rbm93bi4KICAgICAgICAgcmV0
dXJuIHJlc3VsdC5hcHBlbmQoIlVua25vd24iKTsKLS0gCjEuNy45LjUKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>159646</attachid>
            <date>2012-08-21 03:42:46 -0700</date>
            <delta_ts>2012-08-22 01:45:26 -0700</delta_ts>
            <desc>Fixes the bug</desc>
            <filename>0001-Dojo-toggle-buttons-should-expose-ROLE_TOGGLE_BUTTON.patch</filename>
            <type>text/plain</type>
            <size>17948</size>
            <attacher name="Alejandro Piñeiro">apinheiro</attacher>
            
              <data encoding="base64">RnJvbSA2ZTRjN2U5YmIxM2JiOTFlMGZmYTM4MWUwNGI3MDUwNDc2NDcwNjc3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/QWxlamFuZHJvPTIwUGk9QzM9QjFlaXJvPz0g
PGFwaW5oZWlyb0BpZ2FsaWEuY29tPgpEYXRlOiBNb24sIDEzIEF1ZyAyMDEyIDE4OjU2OjMxICsw
MjAwClN1YmplY3Q6IFtQQVRDSF0gRG9qbyB0b2dnbGUgYnV0dG9ucyBzaG91bGQgZXhwb3NlIFJP
TEVfVE9HR0xFX0JVVFRPTiBub3QKIFJPTEVfUFVTSF9CVVRUT04KIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzgxOQoKQWRkZWQgYSBuZXcgcm9sZSwgVG9nZ2xlIEJ1
dHRvbiwgYmFzZWQgb24gd2hldGhlciBhcmlhLXByZXNzZWQgaXMgcHJlc2VudC4KaHR0cDovL3d3
dy53My5vcmcvVFIvd2FpLWFyaWEvc3RhdGVzX2FuZF9wcm9wZXJ0aWVzI2FyaWEtcHJlc3NlZAot
LS0KIExheW91dFRlc3RzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
ICAxMyArKysrKysKIC4uLi9hcmlhLXRvZ2dsZS1idXR0b24tcm9sZS1leHBlY3RlZC50eHQgICAg
ICAgICAgIHwgICAxNCArKysrKysKIC4uLi9ndGsvYWNjZXNzaWJpbGl0eS9hcmlhLXRvZ2dsZS1i
dXR0b24tcm9sZS5odG1sIHwgICA0OSArKysrKysrKysrKysrKysrKysrKwogU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDM0ICsrKysrKysrKysr
KysrCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAgICAgICB8
ICAgMTAgKystLQogLi4uL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0
LmNwcCAgfCAgIDIxICsrKysrKysrLQogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5T2JqZWN0LmggfCAgICAzICsrCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0LmNwcCAgICB8ICAgIDYgKy0tCiAuLi4vZ3RrL1dlYktpdEFjY2Vzc2li
bGVXcmFwcGVyQXRrLmNwcCAgICAgICAgICAgICB8ICAgIDIgKwogLi4uL21hYy9XZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlci5tbSAgICAgICAgICAgfCAgICAzICstCiBTb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICB8ICAgMTUgKysrKysrCiAuLi4v
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJBY2Nlc3NpYmlsaXR5Um9sZS5oICB8ICAgIDEgKwog
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAgfCAgICAx
ICsKIFRvb2xzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
ICAxMyArKysrKysKIC4uLi9UZXN0UnVubmVyL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRDaHJvbWl1
bS5jcHAgIHwgICAgMiArCiAxNSBmaWxlcyBjaGFuZ2VkLCAxNzcgaW5zZXJ0aW9ucygrKSwgMTAg
ZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L2FjY2Vzc2liaWxpdHkvYXJpYS10b2dnbGUtYnV0dG9uLXJvbGUtZXhwZWN0ZWQudHh0CiBjcmVh
dGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJp
YS10b2dnbGUtYnV0dG9uLXJvbGUuaHRtbAoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1MjI0NmM3Li5mNzkyMTM4IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDgtMjAgIEFsZWphbmRybyBQacOxZWlybyAgPGFwaW5o
ZWlyb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtHdGtdIERvam8gdG9nZ2xlIGJ1dHRvbnMgc2hv
dWxkIGV4cG9zZSBST0xFX1RPR0dMRV9CVVRUT04gbm90IFJPTEVfUFVTSF9CVVRUT04KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczODE5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgYSB0ZXN0IHRv
IHZlcmlmeSB0aGF0IHdoZW4gYXJpYS1wcmVzc2VkIGlzIHByZXNlbnQsIGJ1dHRvbnMKKyAgICAg
ICAgd2lsbCBoYXZlIHRoZSBhcHByb3BpYXRlIHJvbGUuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9n
dGsvYWNjZXNzaWJpbGl0eS9hcmlhLXRvZ2dsZS1idXR0b24tcm9sZS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2FyaWEtdG9nZ2xlLWJ1
dHRvbi1yb2xlLmh0bWw6IEFkZGVkLgorCiAyMDEyLTA4LTA3ICBDc2FiYSBPc3p0cm9nb27DoWMg
IDxvc3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1F0XSBVbnJldmlld2VkIGdhcmRlbmluZy4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2FyaWEt
dG9nZ2xlLWJ1dHRvbi1yb2xlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9hY2Nlc3NpYmlsaXR5L2FyaWEtdG9nZ2xlLWJ1dHRvbi1yb2xlLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YzBlMmJmCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJpYS10b2dnbGUtYnV0
dG9uLXJvbGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKKyAgCitUaGlzIHRlc3RzIHRo
YXQgdGhlIHJvbGUgZXhwb3NlZCB3aGVuIGEgYnV0dG9uIGhhcyB0aGUgYXR0cmlidXRlIGFyaWEt
cHJlc3NlZCBpcyB0b2dnbGUgYnV0dG9ucyBpbiBHVEsuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKK1BBU1Mgb2JqLmNoaWxkQXRJbmRleCgwKS5jaGlsZEF0SW5kZXgoMCkucm9sZSBpcyAnQVhS
b2xlOiBsaXN0IGl0ZW0nCitQQVNTIG9iajEucm9sZSBpcyAnQVhSb2xlOiB0b2dnbGUgYnV0dG9u
JworUEFTUyBvYmoyLnJvbGUgaXMgJ0FYUm9sZTogdG9nZ2xlIGJ1dHRvbicKK1BBU1Mgb2JqMy5y
b2xlIGlzICdBWFJvbGU6IHB1c2ggYnV0dG9uJworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9hcmlhLXRvZ2dsZS1idXR0b24tcm9sZS5odG1sIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJpYS10b2dnbGUtYnV0dG9u
LXJvbGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYjYwMGMxCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkv
YXJpYS10b2dnbGUtYnV0dG9uLXJvbGUuaHRtbApAQCAtMCwwICsxLDQ5IEBACis8IURPQ1RZUEUg
SFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQ+CisKK2Z1bmN0aW9uIHJ1blRlc3QoKQoreworICBpZiAod2luZG93LmFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CisKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
Ym9keSIpLmZvY3VzKCk7CisgICAgb2JqID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9jdXNl
ZEVsZW1lbnQ7CisgICAgc2hvdWxkQmUoIm9iai5jaGlsZEF0SW5kZXgoMCkuY2hpbGRBdEluZGV4
KDApLnJvbGUiLCAiJ0FYUm9sZTogbGlzdCBpdGVtJyIpOworCisgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoIm9iajEiKS5mb2N1cygpOworICAgIG9iajEgPSBhY2Nlc3NpYmlsaXR5Q29udHJv
bGxlci5mb2N1c2VkRWxlbWVudDsKKyAgICBzaG91bGRCZSgib2JqMS5yb2xlIiwgIidBWFJvbGU6
IHRvZ2dsZSBidXR0b24nIik7CisKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib2JqMiIp
LmZvY3VzKCk7CisgICAgb2JqMiA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZvY3VzZWRFbGVt
ZW50OworICAgIHNob3VsZEJlKCJvYmoyLnJvbGUiLCAiJ0FYUm9sZTogdG9nZ2xlIGJ1dHRvbici
KTsKKworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvYmozIikuZm9jdXMoKTsKKyAgICBv
YmozID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQ7CisgICAgc2hvdWxk
QmUoIm9iajMucm9sZSIsICInQVhSb2xlOiBwdXNoIGJ1dHRvbiciKTsKKyAgfQorfQorPC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keSBpZD0iYm9keSIgb25sb2FkPSJydW5UZXN0KCkiPgorCis8ZGl2
IHJvbGU9Imxpc3QiPgorPGRpdiByb2xlPSJsaXN0aXRlbSIgYXJpYS1sYWJlbD0iaXRlbSAxIiBh
cmlhLXByZXNzZWQ9ImZhbHNlIj48aW1nIHNyYz0nIycgd2lkdGg9MTAwIGhlaWdodD0xMDA+PC9k
aXY+Cis8L2Rpdj4KKworPGlucHV0IHR5cGU9ImJ1dHRvbiIgaWQ9Im9iajEiIHJvbGU9ImJ1dHRv
biIgYXJpYS1wcmVzc2VkPSJ0cnVlIj4KKzxpbnB1dCB0eXBlPSJidXR0b24iIGlkPSJvYmoyIiBy
b2xlPSJidXR0b24iIGFyaWEtcHJlc3NlZD0iZmFsc2UiPgorPGlucHV0IHR5cGU9ImJ1dHRvbiIg
aWQ9Im9iajMiIHJvbGU9ImJ1dHRvbiI+CisKKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRp
diBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0
cyB0aGF0IHRoZSByb2xlIGV4cG9zZWQgd2hlbiBhIGJ1dHRvbiBoYXMgdGhlIGF0dHJpYnV0ZSBh
cmlhLXByZXNzZWQgaXMgdG9nZ2xlIGJ1dHRvbnMgaW4gR1RLLiIpOworCis8L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGQ4Y2YzZTEuLjZjNDRlNDAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNyBAQAorMjAxMi0wOC0yMCAgQWxlamFuZHJvIFBpw7Fl
aXJvICA8YXBpbmhlaXJvQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0d0a10gRG9qbyB0b2dnbGUg
YnV0dG9ucyBzaG91bGQgZXhwb3NlIFJPTEVfVE9HR0xFX0JVVFRPTiBub3QgUk9MRV9QVVNIX0JV
VFRPTgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM4
MTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRl
ZCBhIG5ldyByb2xlLCBUb2dnbGUgQnV0dG9uLCBiYXNlZCBvbiB3aGV0aGVyIGFyaWEtcHJlc3Nl
ZCBpcyBwcmVzZW50LgorICAgICAgICBodHRwOi8vd3d3LnczLm9yZy9UUi93YWktYXJpYS9zdGF0
ZXNfYW5kX3Byb3BlcnRpZXMjYXJpYS1wcmVzc2VkCisKKyAgICAgICAgVGVzdDogcGxhdGZvcm0v
Z3RrL2FjY2Vzc2liaWxpdHkvYXJpYS10b2dnbGUtYnV0dG9uLXJvbGUuaHRtbAorCisgICAgICAg
ICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6ZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJv
bGUpOiB1c2luZyBidXR0b25Sb2xlVHlwZQorICAgICAgICB0byBjbGFzc2lmeSBhIGJ1dHRvbi1y
ZWxhdGVkIHJvbGUuCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6
ZGV0ZXJtaW5lQXJpYVJvbGVBdHRyaWJ1dGUpOiB1c2luZyBidXR0b25Sb2xlVHlwZQorICAgICAg
ICB0byBjbGFzc2lmeSBhIGJ1dHRvbi1yZWxhdGVkIHJvbGUuCisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2li
aWxpdHlPYmplY3Q6OmFyaWFQcmVzc2VkSXNQcmVzZW50KTogY2hlY2tzIGlmIGFyaWEtcHJlc3Nl
ZAorICAgICAgICBhdHRyaWJ1dGUgaXMgcHJlc2VudC4KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vz
c2liaWxpdHlPYmplY3Q6OmJ1dHRvblJvbGVUeXBlKTogcmV0dXJucyBhIHNwZWNpZmljIGJ1dHRv
bi1yZWxhdGVkCisgICAgICAgIHJvbGUgaWYgdGhlIG9iamVjdCBpcyBhIGJ1dHRvbi1yZWxhdGVk
IHJvbGUuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0Lmg6Cisg
ICAgICAgIChBY2Nlc3NpYmlsaXR5T2JqZWN0KTogYWRkZWQgbmV3IHJvbGUgVG9nZ2xlQnV0dG9u
Um9sZS4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Qu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZGV0ZXJt
aW5lQWNjZXNzaWJpbGl0eVJvbGUpOiB1c2luZyBidXR0b25Sb2xlVHlwZQorICAgICAgICB0byBj
bGFzc2lmeSBhIGJ1dHRvbi1yZWxhdGVkIHJvbGUuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9n
dGsvV2ViS2l0QWNjZXNzaWJsZVdyYXBwZXJBdGsuY3BwOgorICAgICAgICAoYXRrUm9sZSk6IGFk
ZGVkIGEgbWFwcGluZyBiZXR3ZWVuIFRvZ2dsZUJ1dHRvblJvbGUgYW5kCisgICAgICAgIEFUS19S
T0xFX1RPR0dMRV9CVVRUT04uCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXIubW06CisgICAgICAgIChjcmVhdGVBY2Nlc3NpYmlsaXR5Um9s
ZU1hcCk6IGFkZGVkIGEgbWFwcGluZyBiZXR3ZWVuCisgICAgICAgIFRvZ2dsZUJ1dHRvblJvbGUg
YW5kIE5TQWNjZXNzaWJpbGl0eUJ1dHRvblJvbGUKKwogMjAxMi0wOC0wNyAgVnNldm9sb2QgVmxh
c292ICA8dnNldmlrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBEbyBu
b3QgZGlzYWJsZSBuZXR3b3JrIHRyYWNraW5nIHdoaWxlIHByb2ZpbGluZyBjcHUuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3QuY3BwCmluZGV4IGQzOGFmNTAuLmZhNzQxMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCkBAIC0yNTAs
NyArMjUwLDcgQEAgQWNjZXNzaWJpbGl0eVJvbGUgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmRl
dGVybWluZUFjY2Vzc2liaWxpdHlSb2xlKCkKICAgICBpZiAobm9kZSgpLT5pc1RleHROb2RlKCkp
CiAgICAgICAgIHJldHVybiBTdGF0aWNUZXh0Um9sZTsKICAgICBpZiAobm9kZSgpLT5oYXNUYWdO
YW1lKGJ1dHRvblRhZykpCi0gICAgICAgIHJldHVybiBhcmlhSGFzUG9wdXAoKSA/IFBvcFVwQnV0
dG9uUm9sZSA6IEJ1dHRvblJvbGU7CisgICAgICAgIHJldHVybiBidXR0b25Sb2xlVHlwZSgpOwog
ICAgIGlmIChub2RlKCktPmhhc1RhZ05hbWUoaW5wdXRUYWcpKSB7CiAgICAgICAgIEhUTUxJbnB1
dEVsZW1lbnQqIGlucHV0ID0gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KG5vZGUoKSk7
CiAgICAgICAgIGlmIChpbnB1dC0+aXNDaGVja2JveCgpKQpAQCAtMjU4LDcgKzI1OCw3IEBAIEFj
Y2Vzc2liaWxpdHlSb2xlIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpkZXRlcm1pbmVBY2Nlc3Np
YmlsaXR5Um9sZSgpCiAgICAgICAgIGlmIChpbnB1dC0+aXNSYWRpb0J1dHRvbigpKQogICAgICAg
ICAgICAgcmV0dXJuIFJhZGlvQnV0dG9uUm9sZTsKICAgICAgICAgaWYgKGlucHV0LT5pc1RleHRC
dXR0b24oKSkKLSAgICAgICAgICAgIHJldHVybiBhcmlhSGFzUG9wdXAoKSA/IFBvcFVwQnV0dG9u
Um9sZSA6IEJ1dHRvblJvbGU7CisgICAgICAgICAgICByZXR1cm4gYnV0dG9uUm9sZVR5cGUoKTsK
ICAgICAgICAgcmV0dXJuIFRleHRGaWVsZFJvbGU7CiAgICAgfQogICAgIGlmIChub2RlKCktPmhh
c1RhZ05hbWUoc2VsZWN0VGFnKSkgewpAQCAtMzM2LDkgKzMzNiw5IEBAIEFjY2Vzc2liaWxpdHlS
b2xlIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpkZXRlcm1pbmVBcmlhUm9sZUF0dHJpYnV0ZSgp
IGNvbnN0CiAgICAgLy8gQVJJQSBzdGF0ZXMgaWYgYW4gaXRlbSBjYW4gZ2V0IGZvY3VzLCBpdCBz
aG91bGQgbm90IGJlIHByZXNlbnRhdGlvbmFsLgogICAgIGlmIChyb2xlID09IFByZXNlbnRhdGlv
bmFsUm9sZSAmJiBjYW5TZXRGb2N1c0F0dHJpYnV0ZSgpKQogICAgICAgICByZXR1cm4gVW5rbm93
blJvbGU7Ci0gICAgCi0gICAgaWYgKHJvbGUgPT0gQnV0dG9uUm9sZSAmJiBhcmlhSGFzUG9wdXAo
KSkKLSAgICAgICAgcm9sZSA9IFBvcFVwQnV0dG9uUm9sZTsKKworICAgIGlmIChyb2xlID09IEJ1
dHRvblJvbGUpCisgICAgICAgIHJvbGUgPSBidXR0b25Sb2xlVHlwZSgpOwogCiAgICAgaWYgKHJv
bGUgPT0gVGV4dEFyZWFSb2xlICYmICFhcmlhSXNNdWx0aWxpbmUoKSkKICAgICAgICAgcm9sZSA9
IFRleHRGaWVsZFJvbGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAppbmRleCA3OTNiNTRhLi4yZDc0NzRhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAK
QEAgLTE3MzQsNSArMTczNCwyNCBAQCB2b2lkIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnNjcm9sbFRv
R2xvYmFsUG9pbnQoY29uc3QgSW50UG9pbnQmIGdsb2JhbFBvaW50KSBjb25zdAogICAgICAgICB9
CiAgICAgfQogfQotICAgIAorCitib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmFyaWFQcmVzc2Vk
SXNQcmVzZW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gIWdldEF0dHJpYnV0ZShhcmlhX3ByZXNz
ZWRBdHRyKS5pc0VtcHR5KCk7Cit9CisKK0FjY2Vzc2liaWxpdHlSb2xlIEFjY2Vzc2liaWxpdHlP
YmplY3Q6OmJ1dHRvblJvbGVUeXBlKCkgY29uc3QKK3sKKyAgICAvLyBJZiBhcmlhLXByZXNzZWQg
aXMgcHJlc2VudCwgdGhlbiBpdCBzaG91bGQgYmUgZXhwb3NlZCBhcyBhIHRvZ2dsZSBidXR0b24u
CisgICAgLy8gaHR0cDovL3d3dy53My5vcmcvVFIvd2FpLWFyaWEvc3RhdGVzX2FuZF9wcm9wZXJ0
aWVzI2FyaWEtcHJlc3NlZAorICAgIGlmIChhcmlhUHJlc3NlZElzUHJlc2VudCgpKQorICAgICAg
ICByZXR1cm4gVG9nZ2xlQnV0dG9uUm9sZTsKKyAgICBpZiAoYXJpYUhhc1BvcHVwKCkpCisgICAg
ICAgIHJldHVybiBQb3BVcEJ1dHRvblJvbGU7CisgICAgLy8gV2UgZG9uJ3QgY29udGVtcGxhdGUg
UmFkaW9CdXR0b25Sb2xlLCBhcyBpdCBkZXBlbmRzIG9uIHRoZSBpbnB1dAorICAgIC8vIHR5cGUu
CisKKyAgICByZXR1cm4gQnV0dG9uUm9sZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3Qu
aAppbmRleCA4OGIxZjM5Li42Y2NhY2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaApAQCAtMTg3LDYgKzE4Nyw3IEBAIGVudW0g
QWNjZXNzaWJpbGl0eVJvbGUgewogICAgIFRyZWVHcmlkUm9sZSwKICAgICBUcmVlSXRlbVJvbGUs
CiAgICAgVGV4dEZpZWxkUm9sZSwKKyAgICBUb2dnbGVCdXR0b25Sb2xlLAogICAgIFRvb2xiYXJS
b2xlLAogICAgIFVua25vd25Sb2xlLAogICAgIFVzZXJJbnRlcmZhY2VUb29sdGlwUm9sZSwKQEAg
LTQ1MSw2ICs0NTIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzQVJJQUZs
b3dUbygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCB2b2lkIGFyaWFGbG93
VG9FbGVtZW50cyhBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImKSBjb25zdCB7IH0KICAgICB2
aXJ0dWFsIGJvb2wgYXJpYUhhc1BvcHVwKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2
aXJ0dWFsIGJvb2wgYXJpYVByZXNzZWRJc1ByZXNlbnQoKSBjb25zdDsKICAgICBib29sIGFyaWFJ
c011bHRpbGluZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBpbnZh
bGlkU3RhdHVzKCkgY29uc3Q7CiAgICAgYm9vbCBzdXBwb3J0c0FSSUFFeHBhbmRlZCgpIGNvbnN0
OwpAQCAtNzEyLDYgKzcxNCw3IEBAIHByb3RlY3RlZDoKICAgICBzdGF0aWMgYm9vbCBpc0FjY2Vz
c2liaWxpdHlPYmplY3RTZWFyY2hNYXRjaChBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQWNjZXNzaWJp
bGl0eVNlYXJjaENyaXRlcmlhKik7CiAgICAgc3RhdGljIGJvb2wgaXNBY2Nlc3NpYmlsaXR5VGV4
dFNlYXJjaE1hdGNoKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBY2Nlc3NpYmlsaXR5U2VhcmNoQ3Jp
dGVyaWEqKTsKICAgICBzdGF0aWMgYm9vbCBvYmplY3RNYXRjaGVzU2VhcmNoQ3JpdGVyaWFXaXRo
UmVzdWx0TGltaXQoQWNjZXNzaWJpbGl0eU9iamVjdCosIEFjY2Vzc2liaWxpdHlTZWFyY2hDcml0
ZXJpYSosIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciYpOworICAgIHZpcnR1YWwgQWNjZXNz
aWJpbGl0eVJvbGUgYnV0dG9uUm9sZVR5cGUoKSBjb25zdDsKICAgICAKICNpZiBQTEFURk9STShH
VEspCiAgICAgYm9vbCBhbGxvd3NUZXh0UmFuZ2VzKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNw
cAppbmRleCBmMDZlMWU1Li4zOGQwMzcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKQEAgLTE2ODUs
NyArMTY4NSw3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YXJpYUhhc1BvcHVw
KCkgY29uc3QKIHsKICAgICByZXR1cm4gZWxlbWVudEF0dHJpYnV0ZVZhbHVlKGFyaWFfaGFzcG9w
dXBBdHRyKTsKIH0KLSAgICAKKwogYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzdXBw
b3J0c0FSSUFGbG93VG8oKSBjb25zdAogewogICAgIHJldHVybiAhZ2V0QXR0cmlidXRlKGFyaWFf
Zmxvd3RvQXR0cikuaXNFbXB0eSgpOwpAQCAtMzEzNiw3ICszMTM2LDcgQEAgQWNjZXNzaWJpbGl0
eVJvbGUgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJv
bGUoKQogICAgIGlmIChtX3JlbmRlcmVyLT5pc0xpc3RNYXJrZXIoKSkKICAgICAgICAgcmV0dXJu
IExpc3RNYXJrZXJSb2xlOwogICAgIGlmIChub2RlICYmIG5vZGUtPmhhc1RhZ05hbWUoYnV0dG9u
VGFnKSkKLSAgICAgICAgcmV0dXJuIGFyaWFIYXNQb3B1cCgpID8gUG9wVXBCdXR0b25Sb2xlIDog
QnV0dG9uUm9sZTsKKyAgICAgICAgcmV0dXJuIGJ1dHRvblJvbGVUeXBlKCk7CiAgICAgaWYgKG1f
cmVuZGVyZXItPmlzVGV4dCgpKQogICAgICAgICByZXR1cm4gU3RhdGljVGV4dFJvbGU7CiAgICAg
aWYgKGNzc0JveCAmJiBjc3NCb3gtPmlzSW1hZ2UoKSkgewpAQCAtMzE2Myw3ICszMTYzLDcgQEAg
QWNjZXNzaWJpbGl0eVJvbGUgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZGV0ZXJtaW5lQWNj
ZXNzaWJpbGl0eVJvbGUoKQogICAgICAgICBpZiAoaW5wdXQtPmlzUmFkaW9CdXR0b24oKSkKICAg
ICAgICAgICAgIHJldHVybiBSYWRpb0J1dHRvblJvbGU7CiAgICAgICAgIGlmIChpbnB1dC0+aXNU
ZXh0QnV0dG9uKCkpCi0gICAgICAgICAgICByZXR1cm4gYXJpYUhhc1BvcHVwKCkgPyBQb3BVcEJ1
dHRvblJvbGUgOiBCdXR0b25Sb2xlOworICAgICAgICAgICAgcmV0dXJuIGJ1dHRvblJvbGVUeXBl
KCk7CiAgICAgfQogCiAgICAgaWYgKGlzRmlsZVVwbG9hZEJ1dHRvbigpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvV2ViS2l0QWNjZXNzaWJsZVdyYXBwZXJB
dGsuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvV2ViS2l0QWNjZXNzaWJs
ZVdyYXBwZXJBdGsuY3BwCmluZGV4IDdmNmI4OTQuLmI5ZTI4YzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL1dlYktpdEFjY2Vzc2libGVXcmFwcGVyQXRrLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9XZWJLaXRBY2Nlc3NpYmxl
V3JhcHBlckF0ay5jcHAKQEAgLTQzMCw2ICs0MzAsOCBAQCBzdGF0aWMgQXRrUm9sZSBhdGtSb2xl
KEFjY2Vzc2liaWxpdHlSb2xlIHJvbGUpCiAgICAgICAgIHJldHVybiBBVEtfUk9MRV9VTktOT1dO
OwogICAgIGNhc2UgQnV0dG9uUm9sZToKICAgICAgICAgcmV0dXJuIEFUS19ST0xFX1BVU0hfQlVU
VE9OOworICAgIGNhc2UgVG9nZ2xlQnV0dG9uUm9sZToKKyAgICAgICAgcmV0dXJuIEFUS19ST0xF
X1RPR0dMRV9CVVRUT047CiAgICAgY2FzZSBSYWRpb0J1dHRvblJvbGU6CiAgICAgICAgIHJldHVy
biBBVEtfUk9MRV9SQURJT19CVVRUT047CiAgICAgY2FzZSBDaGVja0JveFJvbGU6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlci5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyLm1tCmluZGV4IDdhOWQ0YmIuLmI1ZWE4NmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFj
Y2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyLm1tCkBAIC0xNTc2LDcgKzE1NzYsOCBAQCBzdGF0aWMg
Y29uc3QgQWNjZXNzaWJpbGl0eVJvbGVNYXAmIGNyZWF0ZUFjY2Vzc2liaWxpdHlSb2xlTWFwKCkK
ICAgICAgICAgeyBEaXZSb2xlLCBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKICAgICAgICAg
eyBGb3JtUm9sZSwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCiAgICAgICAgIHsgU3BpbkJ1
dHRvblJvbGUsIE5TQWNjZXNzaWJpbGl0eUluY3JlbWVudG9yUm9sZSB9LAotICAgICAgICB7IEZv
b3RlclJvbGUsIE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9CisgICAgICAgIHsgRm9vdGVyUm9s
ZSwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCisgICAgICAgIHsgVG9nZ2xlQnV0dG9uUm9s
ZSwgTlNBY2Nlc3NpYmlsaXR5QnV0dG9uUm9sZSB9CiAgICAgfTsKICAgICBBY2Nlc3NpYmlsaXR5
Um9sZU1hcCYgcm9sZU1hcCA9ICpuZXcgQWNjZXNzaWJpbGl0eVJvbGVNYXA7CiAgICAgCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDc4ZGFhNTkuLmQxMzI3ZTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMDgtMjAgIEFsZWphbmRybyBQafFl
aXJvICA8YXBpbmhlaXJvQGlnYWxpYS5jb20+CisKKyAgICAgICAgRG9qbyB0b2dnbGUgYnV0dG9u
cyBzaG91bGQgZXhwb3NlIFJPTEVfVE9HR0xFX0JVVFRPTiBub3QgUk9MRV9QVVNIX0JVVFRPTgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM4MTkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBhIG5l
dyByb2xlLCBUb2dnbGUgQnV0dG9uLCBiYXNlZCBvbiB3aGV0aGVyIGFyaWEtcHJlc3NlZCBpcyBw
cmVzZW50LgorICAgICAgICBodHRwOi8vd3d3LnczLm9yZy9UUi93YWktYXJpYS9zdGF0ZXNfYW5k
X3Byb3BlcnRpZXMjYXJpYS1wcmVzc2VkCisKKyAgICAgICAgKiBwdWJsaWMvV2ViQWNjZXNzaWJp
bGl0eVJvbGUuaDogYWRkZWQgV2ViQWNjZXNzaWJpbGl0eVJvbGVUb2dnbGVCdXR0b24gdGhhdAor
ICAgICAgICBtYXRjaHMgd2l0aCBXZWJDb3JlIFRvZ2dsZUJ1dHRvblJvbGUKKyAgICAgICAgKiBz
cmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHA6IGFkZGVkIHRoZSBhc3NlcnQgbWF0Y2hpbmcgcnVs
ZSBmb3IKKyAgICAgICAgV2ViQWNjZXNzaWJpbGl0eVJvbGVUb2dnbGVCdXR0b24gYW5kIFRvZ2ds
ZUJ1dHRvblJvbGUKKwogMjAxMi0wOC0wNyAgQWxleGVpIEZpbGlwcG92ICA8YWxleGVpZkBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogbWFrZSB0aGUgTWVtb3J5Q2xhc3NJ
bmZvIGNsYXNzIGEgbm90LXRlbXBsYXRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJBY2Nlc3NpYmlsaXR5Um9sZS5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViQWNjZXNzaWJpbGl0eVJvbGUuaAppbmRleCA2MDk1OGY5Li5mNDBjMWQ5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJBY2Nlc3NpYmlsaXR5
Um9sZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkFjY2Vzc2liaWxp
dHlSb2xlLmgKQEAgLTEzMyw2ICsxMzMsNyBAQCBlbnVtIFdlYkFjY2Vzc2liaWxpdHlSb2xlIHsK
ICAgICBXZWJBY2Nlc3NpYmlsaXR5Um9sZVRyZWVHcmlkLAogICAgIFdlYkFjY2Vzc2liaWxpdHlS
b2xlVHJlZUl0ZW1Sb2xlLAogICAgIFdlYkFjY2Vzc2liaWxpdHlSb2xlVGV4dEZpZWxkLAorICAg
IFdlYkFjY2Vzc2liaWxpdHlSb2xlVG9nZ2xlQnV0dG9uLAogICAgIFdlYkFjY2Vzc2liaWxpdHlS
b2xlVG9vbGJhciwKICAgICBXZWJBY2Nlc3NpYmlsaXR5Um9sZVVua25vd24sCiAgICAgV2ViQWNj
ZXNzaWJpbGl0eVJvbGVVc2VySW50ZXJmYWNlVG9vbHRpcCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAKaW5kZXggOWNmNjA4OS4uYmY0
MGFiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hp
bmdFbnVtcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hp
bmdFbnVtcy5jcHAKQEAgLTI1Myw2ICsyNTMsNyBAQCBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19F
TlVNKFdlYkFjY2Vzc2liaWxpdHlSb2xlRG9jdW1lbnRNYXRoLCBEb2N1bWVudE1hdGhSb2xlKQog
Q09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJBY2Nlc3NpYmlsaXR5Um9sZURvY3VtZW50
Tm90ZSwgRG9jdW1lbnROb3RlUm9sZSk7CiBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdl
YkFjY2Vzc2liaWxpdHlSb2xlRG9jdW1lbnRSZWdpb24sIERvY3VtZW50UmVnaW9uUm9sZSk7CiBD
T01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYkFjY2Vzc2liaWxpdHlSb2xlVXNlckludGVy
ZmFjZVRvb2x0aXAsIFVzZXJJbnRlcmZhY2VUb29sdGlwUm9sZSk7CitDT01QSUxFX0FTU0VSVF9N
QVRDSElOR19FTlVNKFdlYkFjY2Vzc2liaWxpdHlSb2xlVG9nZ2xlQnV0dG9uLCBUb2dnbGVCdXR0
b25Sb2xlKTsKIAogQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJBcHBsaWNhdGlvbkNh
Y2hlSG9zdDo6VW5jYWNoZWQsIEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpVTkNBQ0hFRCk7CiBDT01Q
SUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYkFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpJZGxlLCBB
cHBsaWNhdGlvbkNhY2hlSG9zdDo6SURMRSk7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMmM3MDU4Ny4uNjhiNTMxNCAxMDA2NDQKLS0tIGEvVG9v
bHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEy
LTA4LTIwICBBbGVqYW5kcm8gUGnDsWVpcm8gIDxhcGluaGVpcm9AaWdhbGlhLmNvbT4KKworICAg
ICAgICBEb2pvIHRvZ2dsZSBidXR0b25zIHNob3VsZCBleHBvc2UgUk9MRV9UT0dHTEVfQlVUVE9O
IG5vdCBST0xFX1BVU0hfQlVUVE9OCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03MzgxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZGVkIGEgbmV3IHJvbGUsIFRvZ2dsZSBCdXR0b24sIGJhc2VkIG9uIHdo
ZXRoZXIgYXJpYS1wcmVzc2VkIGlzIHByZXNlbnQuCisgICAgICAgIGh0dHA6Ly93d3cudzMub3Jn
L1RSL3dhaS1hcmlhL3N0YXRlc19hbmRfcHJvcGVydGllcyNhcmlhLXByZXNzZWQKKworICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvQWNjZXNzaWJpbGl0eVVJRWxl
bWVudENocm9taXVtLmNwcDoKKyAgICAgICAgKHJvbGVUb1N0cmluZyk6IGFkZGVkICJUb2dnbGVC
dXR0b24iIHN0cmluZyBmb3IgV2ViQWNjZXNzaWJpbGl0eVJvbGVUb2dnbGVCdXR0b24KKwogMjAx
Mi0wOC0wMiAgU2ltb24gSGF1c21hbm4gIDxzaW1vbi5oYXVzbWFubkBub2tpYS5jb20+CiAKICAg
ICAgICAgW1F0XSBSZW1vdmUgUXQgNCBzcGVjaWZpYyBjb2RlIHBhdGhzCmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnRDaHJvbWl1bS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVu
bmVyL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRDaHJvbWl1bS5jcHAKaW5kZXggYzU2YjE1MS4uZGYw
ZmIwYSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5l
ci9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50Q2hyb21pdW0uY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvQWNjZXNzaWJpbGl0eVVJRWxlbWVudENocm9taXVt
LmNwcApAQCAtMjA0LDYgKzIwNCw4IEBAIHN0YXRpYyBzdHJpbmcgcm9sZVRvU3RyaW5nKFdlYkFj
Y2Vzc2liaWxpdHlSb2xlIHJvbGUpCiAgICAgICAgIHJldHVybiByZXN1bHQuYXBwZW5kKCJEb2N1
bWVudFJlZ2lvbiIpOwogICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0eVJvbGVVc2VySW50ZXJmYWNl
VG9vbHRpcDoKICAgICAgICAgcmV0dXJuIHJlc3VsdC5hcHBlbmQoIlVzZXJJbnRlcmZhY2VUb29s
dGlwIik7CisgICAgY2FzZSBXZWJBY2Nlc3NpYmlsaXR5Um9sZVRvZ2dsZUJ1dHRvbjoKKyAgICAg
ICAgcmV0dXJuIHJlc3VsdC5hcHBlbmQoIlRvZ2dsZUJ1dHRvbiIpOwogICAgIGRlZmF1bHQ6CiAg
ICAgICAgIC8vIEFsc28gbWF0Y2hlcyBXZWJBY2Nlc3NpYmlsaXR5Um9sZVVua25vd24uCiAgICAg
ICAgIHJldHVybiByZXN1bHQuYXBwZW5kKCJVbmtub3duIik7Ci0tIAoxLjcuOS41Cgo=
</data>
<flag name="review"
          id="170021"
          type_id="1"
          status="+"
          setter="cfleizach"
    />
    <flag name="commit-queue"
          id="170289"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>159882</attachid>
            <date>2012-08-22 01:45:26 -0700</date>
            <delta_ts>2012-08-22 17:35:43 -0700</delta_ts>
            <desc>Fixes the bug</desc>
            <filename>0001-Dojo-toggle-buttons-should-expose-ROLE_TOGGLE_BUTTON.patch</filename>
            <type>text/plain</type>
            <size>17949</size>
            <attacher name="Alejandro Piñeiro">apinheiro</attacher>
            
              <data encoding="base64">RnJvbSBlN2NhNDU0ODhlZDU4NmMwYTlkNzhhOTQ0OTU5MjEyMmYxZjQyMjU5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/QWxlamFuZHJvPTIwUGk9QzM9QjFlaXJvPz0g
PGFwaW5oZWlyb0BpZ2FsaWEuY29tPgpEYXRlOiBNb24sIDEzIEF1ZyAyMDEyIDE4OjU2OjMxICsw
MjAwClN1YmplY3Q6IFtQQVRDSF0gRG9qbyB0b2dnbGUgYnV0dG9ucyBzaG91bGQgZXhwb3NlIFJP
TEVfVE9HR0xFX0JVVFRPTiBub3QKIFJPTEVfUFVTSF9CVVRUT04KIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzgxOQoKQWRkZWQgYSBuZXcgcm9sZSwgVG9nZ2xlIEJ1
dHRvbiwgYmFzZWQgb24gd2hldGhlciBhcmlhLXByZXNzZWQgaXMgcHJlc2VudC4KaHR0cDovL3d3
dy53My5vcmcvVFIvd2FpLWFyaWEvc3RhdGVzX2FuZF9wcm9wZXJ0aWVzI2FyaWEtcHJlc3NlZAot
LS0KIExheW91dFRlc3RzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
ICAxMyArKysrKysKIC4uLi9hcmlhLXRvZ2dsZS1idXR0b24tcm9sZS1leHBlY3RlZC50eHQgICAg
ICAgICAgIHwgICAxNCArKysrKysKIC4uLi9ndGsvYWNjZXNzaWJpbGl0eS9hcmlhLXRvZ2dsZS1i
dXR0b24tcm9sZS5odG1sIHwgICA0OSArKysrKysrKysrKysrKysrKysrKwogU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDM0ICsrKysrKysrKysr
KysrCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAgICAgICB8
ICAgMTAgKystLQogLi4uL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0
LmNwcCAgfCAgIDIxICsrKysrKysrLQogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5T2JqZWN0LmggfCAgICAzICsrCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0LmNwcCAgICB8ICAgIDYgKy0tCiAuLi4vZ3RrL1dlYktpdEFjY2Vzc2li
bGVXcmFwcGVyQXRrLmNwcCAgICAgICAgICAgICB8ICAgIDIgKwogLi4uL21hYy9XZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlci5tbSAgICAgICAgICAgfCAgICAzICstCiBTb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICB8ICAgMTUgKysrKysrCiAuLi4v
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJBY2Nlc3NpYmlsaXR5Um9sZS5oICB8ICAgIDEgKwog
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAgfCAgICAx
ICsKIFRvb2xzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
ICAxMyArKysrKysKIC4uLi9UZXN0UnVubmVyL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRDaHJvbWl1
bS5jcHAgIHwgICAgMiArCiAxNSBmaWxlcyBjaGFuZ2VkLCAxNzcgaW5zZXJ0aW9ucygrKSwgMTAg
ZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L2FjY2Vzc2liaWxpdHkvYXJpYS10b2dnbGUtYnV0dG9uLXJvbGUtZXhwZWN0ZWQudHh0CiBjcmVh
dGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJp
YS10b2dnbGUtYnV0dG9uLXJvbGUuaHRtbAoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1MjI0NmM3Li5mNzkyMTM4IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDgtMjAgIEFsZWphbmRybyBQacOxZWlybyAgPGFwaW5o
ZWlyb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtHdGtdIERvam8gdG9nZ2xlIGJ1dHRvbnMgc2hv
dWxkIGV4cG9zZSBST0xFX1RPR0dMRV9CVVRUT04gbm90IFJPTEVfUFVTSF9CVVRUT04KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczODE5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgYSB0ZXN0IHRv
IHZlcmlmeSB0aGF0IHdoZW4gYXJpYS1wcmVzc2VkIGlzIHByZXNlbnQsIGJ1dHRvbnMKKyAgICAg
ICAgd2lsbCBoYXZlIHRoZSBhcHByb3BpYXRlIHJvbGUuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9n
dGsvYWNjZXNzaWJpbGl0eS9hcmlhLXRvZ2dsZS1idXR0b24tcm9sZS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2FyaWEtdG9nZ2xlLWJ1
dHRvbi1yb2xlLmh0bWw6IEFkZGVkLgorCiAyMDEyLTA4LTA3ICBDc2FiYSBPc3p0cm9nb27DoWMg
IDxvc3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1F0XSBVbnJldmlld2VkIGdhcmRlbmluZy4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2FyaWEt
dG9nZ2xlLWJ1dHRvbi1yb2xlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9hY2Nlc3NpYmlsaXR5L2FyaWEtdG9nZ2xlLWJ1dHRvbi1yb2xlLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YzBlMmJmCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJpYS10b2dnbGUtYnV0
dG9uLXJvbGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKKyAgCitUaGlzIHRlc3RzIHRo
YXQgdGhlIHJvbGUgZXhwb3NlZCB3aGVuIGEgYnV0dG9uIGhhcyB0aGUgYXR0cmlidXRlIGFyaWEt
cHJlc3NlZCBpcyB0b2dnbGUgYnV0dG9ucyBpbiBHVEsuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKK1BBU1Mgb2JqLmNoaWxkQXRJbmRleCgwKS5jaGlsZEF0SW5kZXgoMCkucm9sZSBpcyAnQVhS
b2xlOiBsaXN0IGl0ZW0nCitQQVNTIG9iajEucm9sZSBpcyAnQVhSb2xlOiB0b2dnbGUgYnV0dG9u
JworUEFTUyBvYmoyLnJvbGUgaXMgJ0FYUm9sZTogdG9nZ2xlIGJ1dHRvbicKK1BBU1Mgb2JqMy5y
b2xlIGlzICdBWFJvbGU6IHB1c2ggYnV0dG9uJworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9hcmlhLXRvZ2dsZS1idXR0b24tcm9sZS5odG1sIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJpYS10b2dnbGUtYnV0dG9u
LXJvbGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYjYwMGMxCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkv
YXJpYS10b2dnbGUtYnV0dG9uLXJvbGUuaHRtbApAQCAtMCwwICsxLDQ5IEBACis8IURPQ1RZUEUg
SFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQ+CisKK2Z1bmN0aW9uIHJ1blRlc3QoKQoreworICBpZiAod2luZG93LmFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CisKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
Ym9keSIpLmZvY3VzKCk7CisgICAgb2JqID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9jdXNl
ZEVsZW1lbnQ7CisgICAgc2hvdWxkQmUoIm9iai5jaGlsZEF0SW5kZXgoMCkuY2hpbGRBdEluZGV4
KDApLnJvbGUiLCAiJ0FYUm9sZTogbGlzdCBpdGVtJyIpOworCisgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoIm9iajEiKS5mb2N1cygpOworICAgIG9iajEgPSBhY2Nlc3NpYmlsaXR5Q29udHJv
bGxlci5mb2N1c2VkRWxlbWVudDsKKyAgICBzaG91bGRCZSgib2JqMS5yb2xlIiwgIidBWFJvbGU6
IHRvZ2dsZSBidXR0b24nIik7CisKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib2JqMiIp
LmZvY3VzKCk7CisgICAgb2JqMiA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZvY3VzZWRFbGVt
ZW50OworICAgIHNob3VsZEJlKCJvYmoyLnJvbGUiLCAiJ0FYUm9sZTogdG9nZ2xlIGJ1dHRvbici
KTsKKworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvYmozIikuZm9jdXMoKTsKKyAgICBv
YmozID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQ7CisgICAgc2hvdWxk
QmUoIm9iajMucm9sZSIsICInQVhSb2xlOiBwdXNoIGJ1dHRvbiciKTsKKyAgfQorfQorPC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keSBpZD0iYm9keSIgb25sb2FkPSJydW5UZXN0KCkiPgorCis8ZGl2
IHJvbGU9Imxpc3QiPgorPGRpdiByb2xlPSJsaXN0aXRlbSIgYXJpYS1sYWJlbD0iaXRlbSAxIiBh
cmlhLXByZXNzZWQ9ImZhbHNlIj48aW1nIHNyYz0nIycgd2lkdGg9MTAwIGhlaWdodD0xMDA+PC9k
aXY+Cis8L2Rpdj4KKworPGlucHV0IHR5cGU9ImJ1dHRvbiIgaWQ9Im9iajEiIHJvbGU9ImJ1dHRv
biIgYXJpYS1wcmVzc2VkPSJ0cnVlIj4KKzxpbnB1dCB0eXBlPSJidXR0b24iIGlkPSJvYmoyIiBy
b2xlPSJidXR0b24iIGFyaWEtcHJlc3NlZD0iZmFsc2UiPgorPGlucHV0IHR5cGU9ImJ1dHRvbiIg
aWQ9Im9iajMiIHJvbGU9ImJ1dHRvbiI+CisKKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRp
diBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0
cyB0aGF0IHRoZSByb2xlIGV4cG9zZWQgd2hlbiBhIGJ1dHRvbiBoYXMgdGhlIGF0dHJpYnV0ZSBh
cmlhLXByZXNzZWQgaXMgdG9nZ2xlIGJ1dHRvbnMgaW4gR1RLLiIpOworCis8L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGQ4Y2YzZTEuLjZjNDRlNDAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNyBAQAorMjAxMi0wOC0yMCAgQWxlamFuZHJvIFBpw7Fl
aXJvICA8YXBpbmhlaXJvQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0d0a10gRG9qbyB0b2dnbGUg
YnV0dG9ucyBzaG91bGQgZXhwb3NlIFJPTEVfVE9HR0xFX0JVVFRPTiBub3QgUk9MRV9QVVNIX0JV
VFRPTgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM4
MTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRl
ZCBhIG5ldyByb2xlLCBUb2dnbGUgQnV0dG9uLCBiYXNlZCBvbiB3aGV0aGVyIGFyaWEtcHJlc3Nl
ZCBpcyBwcmVzZW50LgorICAgICAgICBodHRwOi8vd3d3LnczLm9yZy9UUi93YWktYXJpYS9zdGF0
ZXNfYW5kX3Byb3BlcnRpZXMjYXJpYS1wcmVzc2VkCisKKyAgICAgICAgVGVzdDogcGxhdGZvcm0v
Z3RrL2FjY2Vzc2liaWxpdHkvYXJpYS10b2dnbGUtYnV0dG9uLXJvbGUuaHRtbAorCisgICAgICAg
ICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6ZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJv
bGUpOiB1c2luZyBidXR0b25Sb2xlVHlwZQorICAgICAgICB0byBjbGFzc2lmeSBhIGJ1dHRvbi1y
ZWxhdGVkIHJvbGUuCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6
ZGV0ZXJtaW5lQXJpYVJvbGVBdHRyaWJ1dGUpOiB1c2luZyBidXR0b25Sb2xlVHlwZQorICAgICAg
ICB0byBjbGFzc2lmeSBhIGJ1dHRvbi1yZWxhdGVkIHJvbGUuCisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2li
aWxpdHlPYmplY3Q6OmFyaWFQcmVzc2VkSXNQcmVzZW50KTogY2hlY2tzIGlmIGFyaWEtcHJlc3Nl
ZAorICAgICAgICBhdHRyaWJ1dGUgaXMgcHJlc2VudC4KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vz
c2liaWxpdHlPYmplY3Q6OmJ1dHRvblJvbGVUeXBlKTogcmV0dXJucyBhIHNwZWNpZmljIGJ1dHRv
bi1yZWxhdGVkCisgICAgICAgIHJvbGUgaWYgdGhlIG9iamVjdCBpcyBhIGJ1dHRvbi1yZWxhdGVk
IHJvbGUuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0Lmg6Cisg
ICAgICAgIChBY2Nlc3NpYmlsaXR5T2JqZWN0KTogYWRkZWQgbmV3IHJvbGUgVG9nZ2xlQnV0dG9u
Um9sZS4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Qu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZGV0ZXJt
aW5lQWNjZXNzaWJpbGl0eVJvbGUpOiB1c2luZyBidXR0b25Sb2xlVHlwZQorICAgICAgICB0byBj
bGFzc2lmeSBhIGJ1dHRvbi1yZWxhdGVkIHJvbGUuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9n
dGsvV2ViS2l0QWNjZXNzaWJsZVdyYXBwZXJBdGsuY3BwOgorICAgICAgICAoYXRrUm9sZSk6IGFk
ZGVkIGEgbWFwcGluZyBiZXR3ZWVuIFRvZ2dsZUJ1dHRvblJvbGUgYW5kCisgICAgICAgIEFUS19S
T0xFX1RPR0dMRV9CVVRUT04uCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXIubW06CisgICAgICAgIChjcmVhdGVBY2Nlc3NpYmlsaXR5Um9s
ZU1hcCk6IGFkZGVkIGEgbWFwcGluZyBiZXR3ZWVuCisgICAgICAgIFRvZ2dsZUJ1dHRvblJvbGUg
YW5kIE5TQWNjZXNzaWJpbGl0eUJ1dHRvblJvbGUKKwogMjAxMi0wOC0wNyAgVnNldm9sb2QgVmxh
c292ICA8dnNldmlrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBEbyBu
b3QgZGlzYWJsZSBuZXR3b3JrIHRyYWNraW5nIHdoaWxlIHByb2ZpbGluZyBjcHUuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3QuY3BwCmluZGV4IGQzOGFmNTAuLmZhNzQxMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCkBAIC0yNTAs
NyArMjUwLDcgQEAgQWNjZXNzaWJpbGl0eVJvbGUgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmRl
dGVybWluZUFjY2Vzc2liaWxpdHlSb2xlKCkKICAgICBpZiAobm9kZSgpLT5pc1RleHROb2RlKCkp
CiAgICAgICAgIHJldHVybiBTdGF0aWNUZXh0Um9sZTsKICAgICBpZiAobm9kZSgpLT5oYXNUYWdO
YW1lKGJ1dHRvblRhZykpCi0gICAgICAgIHJldHVybiBhcmlhSGFzUG9wdXAoKSA/IFBvcFVwQnV0
dG9uUm9sZSA6IEJ1dHRvblJvbGU7CisgICAgICAgIHJldHVybiBidXR0b25Sb2xlVHlwZSgpOwog
ICAgIGlmIChub2RlKCktPmhhc1RhZ05hbWUoaW5wdXRUYWcpKSB7CiAgICAgICAgIEhUTUxJbnB1
dEVsZW1lbnQqIGlucHV0ID0gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KG5vZGUoKSk7
CiAgICAgICAgIGlmIChpbnB1dC0+aXNDaGVja2JveCgpKQpAQCAtMjU4LDcgKzI1OCw3IEBAIEFj
Y2Vzc2liaWxpdHlSb2xlIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpkZXRlcm1pbmVBY2Nlc3Np
YmlsaXR5Um9sZSgpCiAgICAgICAgIGlmIChpbnB1dC0+aXNSYWRpb0J1dHRvbigpKQogICAgICAg
ICAgICAgcmV0dXJuIFJhZGlvQnV0dG9uUm9sZTsKICAgICAgICAgaWYgKGlucHV0LT5pc1RleHRC
dXR0b24oKSkKLSAgICAgICAgICAgIHJldHVybiBhcmlhSGFzUG9wdXAoKSA/IFBvcFVwQnV0dG9u
Um9sZSA6IEJ1dHRvblJvbGU7CisgICAgICAgICAgICByZXR1cm4gYnV0dG9uUm9sZVR5cGUoKTsK
ICAgICAgICAgcmV0dXJuIFRleHRGaWVsZFJvbGU7CiAgICAgfQogICAgIGlmIChub2RlKCktPmhh
c1RhZ05hbWUoc2VsZWN0VGFnKSkgewpAQCAtMzM2LDkgKzMzNiw5IEBAIEFjY2Vzc2liaWxpdHlS
b2xlIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpkZXRlcm1pbmVBcmlhUm9sZUF0dHJpYnV0ZSgp
IGNvbnN0CiAgICAgLy8gQVJJQSBzdGF0ZXMgaWYgYW4gaXRlbSBjYW4gZ2V0IGZvY3VzLCBpdCBz
aG91bGQgbm90IGJlIHByZXNlbnRhdGlvbmFsLgogICAgIGlmIChyb2xlID09IFByZXNlbnRhdGlv
bmFsUm9sZSAmJiBjYW5TZXRGb2N1c0F0dHJpYnV0ZSgpKQogICAgICAgICByZXR1cm4gVW5rbm93
blJvbGU7Ci0gICAgCi0gICAgaWYgKHJvbGUgPT0gQnV0dG9uUm9sZSAmJiBhcmlhSGFzUG9wdXAo
KSkKLSAgICAgICAgcm9sZSA9IFBvcFVwQnV0dG9uUm9sZTsKKworICAgIGlmIChyb2xlID09IEJ1
dHRvblJvbGUpCisgICAgICAgIHJvbGUgPSBidXR0b25Sb2xlVHlwZSgpOwogCiAgICAgaWYgKHJv
bGUgPT0gVGV4dEFyZWFSb2xlICYmICFhcmlhSXNNdWx0aWxpbmUoKSkKICAgICAgICAgcm9sZSA9
IFRleHRGaWVsZFJvbGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAppbmRleCA3OTNiNTRhLi4yZDc0NzRhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAK
QEAgLTE3MzQsNSArMTczNCwyNCBAQCB2b2lkIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnNjcm9sbFRv
R2xvYmFsUG9pbnQoY29uc3QgSW50UG9pbnQmIGdsb2JhbFBvaW50KSBjb25zdAogICAgICAgICB9
CiAgICAgfQogfQotICAgIAorCitib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmFyaWFQcmVzc2Vk
SXNQcmVzZW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gIWdldEF0dHJpYnV0ZShhcmlhX3ByZXNz
ZWRBdHRyKS5pc0VtcHR5KCk7Cit9CisKK0FjY2Vzc2liaWxpdHlSb2xlIEFjY2Vzc2liaWxpdHlP
YmplY3Q6OmJ1dHRvblJvbGVUeXBlKCkgY29uc3QKK3sKKyAgICAvLyBJZiBhcmlhLXByZXNzZWQg
aXMgcHJlc2VudCwgdGhlbiBpdCBzaG91bGQgYmUgZXhwb3NlZCBhcyBhIHRvZ2dsZSBidXR0b24u
CisgICAgLy8gaHR0cDovL3d3dy53My5vcmcvVFIvd2FpLWFyaWEvc3RhdGVzX2FuZF9wcm9wZXJ0
aWVzI2FyaWEtcHJlc3NlZAorICAgIGlmIChhcmlhUHJlc3NlZElzUHJlc2VudCgpKQorICAgICAg
ICByZXR1cm4gVG9nZ2xlQnV0dG9uUm9sZTsKKyAgICBpZiAoYXJpYUhhc1BvcHVwKCkpCisgICAg
ICAgIHJldHVybiBQb3BVcEJ1dHRvblJvbGU7CisgICAgLy8gV2UgZG9uJ3QgY29udGVtcGxhdGUg
UmFkaW9CdXR0b25Sb2xlLCBhcyBpdCBkZXBlbmRzIG9uIHRoZSBpbnB1dAorICAgIC8vIHR5cGUu
CisKKyAgICByZXR1cm4gQnV0dG9uUm9sZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3Qu
aAppbmRleCA4OGIxZjM5Li42Y2NhY2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaApAQCAtMTg3LDYgKzE4Nyw3IEBAIGVudW0g
QWNjZXNzaWJpbGl0eVJvbGUgewogICAgIFRyZWVHcmlkUm9sZSwKICAgICBUcmVlSXRlbVJvbGUs
CiAgICAgVGV4dEZpZWxkUm9sZSwKKyAgICBUb2dnbGVCdXR0b25Sb2xlLAogICAgIFRvb2xiYXJS
b2xlLAogICAgIFVua25vd25Sb2xlLAogICAgIFVzZXJJbnRlcmZhY2VUb29sdGlwUm9sZSwKQEAg
LTQ1MSw2ICs0NTIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzQVJJQUZs
b3dUbygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCB2b2lkIGFyaWFGbG93
VG9FbGVtZW50cyhBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImKSBjb25zdCB7IH0KICAgICB2
aXJ0dWFsIGJvb2wgYXJpYUhhc1BvcHVwKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2
aXJ0dWFsIGJvb2wgYXJpYVByZXNzZWRJc1ByZXNlbnQoKSBjb25zdDsKICAgICBib29sIGFyaWFJ
c011bHRpbGluZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBpbnZh
bGlkU3RhdHVzKCkgY29uc3Q7CiAgICAgYm9vbCBzdXBwb3J0c0FSSUFFeHBhbmRlZCgpIGNvbnN0
OwpAQCAtNzEyLDYgKzcxNCw3IEBAIHByb3RlY3RlZDoKICAgICBzdGF0aWMgYm9vbCBpc0FjY2Vz
c2liaWxpdHlPYmplY3RTZWFyY2hNYXRjaChBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQWNjZXNzaWJp
bGl0eVNlYXJjaENyaXRlcmlhKik7CiAgICAgc3RhdGljIGJvb2wgaXNBY2Nlc3NpYmlsaXR5VGV4
dFNlYXJjaE1hdGNoKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBY2Nlc3NpYmlsaXR5U2VhcmNoQ3Jp
dGVyaWEqKTsKICAgICBzdGF0aWMgYm9vbCBvYmplY3RNYXRjaGVzU2VhcmNoQ3JpdGVyaWFXaXRo
UmVzdWx0TGltaXQoQWNjZXNzaWJpbGl0eU9iamVjdCosIEFjY2Vzc2liaWxpdHlTZWFyY2hDcml0
ZXJpYSosIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciYpOworICAgIHZpcnR1YWwgQWNjZXNz
aWJpbGl0eVJvbGUgYnV0dG9uUm9sZVR5cGUoKSBjb25zdDsKICAgICAKICNpZiBQTEFURk9STShH
VEspCiAgICAgYm9vbCBhbGxvd3NUZXh0UmFuZ2VzKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNw
cAppbmRleCBmMDZlMWU1Li4zOGQwMzcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKQEAgLTE2ODUs
NyArMTY4NSw3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YXJpYUhhc1BvcHVw
KCkgY29uc3QKIHsKICAgICByZXR1cm4gZWxlbWVudEF0dHJpYnV0ZVZhbHVlKGFyaWFfaGFzcG9w
dXBBdHRyKTsKIH0KLSAgICAKKwogYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzdXBw
b3J0c0FSSUFGbG93VG8oKSBjb25zdAogewogICAgIHJldHVybiAhZ2V0QXR0cmlidXRlKGFyaWFf
Zmxvd3RvQXR0cikuaXNFbXB0eSgpOwpAQCAtMzEzNiw3ICszMTM2LDcgQEAgQWNjZXNzaWJpbGl0
eVJvbGUgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJv
bGUoKQogICAgIGlmIChtX3JlbmRlcmVyLT5pc0xpc3RNYXJrZXIoKSkKICAgICAgICAgcmV0dXJu
IExpc3RNYXJrZXJSb2xlOwogICAgIGlmIChub2RlICYmIG5vZGUtPmhhc1RhZ05hbWUoYnV0dG9u
VGFnKSkKLSAgICAgICAgcmV0dXJuIGFyaWFIYXNQb3B1cCgpID8gUG9wVXBCdXR0b25Sb2xlIDog
QnV0dG9uUm9sZTsKKyAgICAgICAgcmV0dXJuIGJ1dHRvblJvbGVUeXBlKCk7CiAgICAgaWYgKG1f
cmVuZGVyZXItPmlzVGV4dCgpKQogICAgICAgICByZXR1cm4gU3RhdGljVGV4dFJvbGU7CiAgICAg
aWYgKGNzc0JveCAmJiBjc3NCb3gtPmlzSW1hZ2UoKSkgewpAQCAtMzE2Myw3ICszMTYzLDcgQEAg
QWNjZXNzaWJpbGl0eVJvbGUgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZGV0ZXJtaW5lQWNj
ZXNzaWJpbGl0eVJvbGUoKQogICAgICAgICBpZiAoaW5wdXQtPmlzUmFkaW9CdXR0b24oKSkKICAg
ICAgICAgICAgIHJldHVybiBSYWRpb0J1dHRvblJvbGU7CiAgICAgICAgIGlmIChpbnB1dC0+aXNU
ZXh0QnV0dG9uKCkpCi0gICAgICAgICAgICByZXR1cm4gYXJpYUhhc1BvcHVwKCkgPyBQb3BVcEJ1
dHRvblJvbGUgOiBCdXR0b25Sb2xlOworICAgICAgICAgICAgcmV0dXJuIGJ1dHRvblJvbGVUeXBl
KCk7CiAgICAgfQogCiAgICAgaWYgKGlzRmlsZVVwbG9hZEJ1dHRvbigpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvV2ViS2l0QWNjZXNzaWJsZVdyYXBwZXJB
dGsuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvV2ViS2l0QWNjZXNzaWJs
ZVdyYXBwZXJBdGsuY3BwCmluZGV4IDdmNmI4OTQuLmI5ZTI4YzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL1dlYktpdEFjY2Vzc2libGVXcmFwcGVyQXRrLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9XZWJLaXRBY2Nlc3NpYmxl
V3JhcHBlckF0ay5jcHAKQEAgLTQzMCw2ICs0MzAsOCBAQCBzdGF0aWMgQXRrUm9sZSBhdGtSb2xl
KEFjY2Vzc2liaWxpdHlSb2xlIHJvbGUpCiAgICAgICAgIHJldHVybiBBVEtfUk9MRV9VTktOT1dO
OwogICAgIGNhc2UgQnV0dG9uUm9sZToKICAgICAgICAgcmV0dXJuIEFUS19ST0xFX1BVU0hfQlVU
VE9OOworICAgIGNhc2UgVG9nZ2xlQnV0dG9uUm9sZToKKyAgICAgICAgcmV0dXJuIEFUS19ST0xF
X1RPR0dMRV9CVVRUT047CiAgICAgY2FzZSBSYWRpb0J1dHRvblJvbGU6CiAgICAgICAgIHJldHVy
biBBVEtfUk9MRV9SQURJT19CVVRUT047CiAgICAgY2FzZSBDaGVja0JveFJvbGU6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlci5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyLm1tCmluZGV4IDdhOWQ0YmIuLmI1ZWE4NmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFj
Y2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyLm1tCkBAIC0xNTc2LDcgKzE1NzYsOCBAQCBzdGF0aWMg
Y29uc3QgQWNjZXNzaWJpbGl0eVJvbGVNYXAmIGNyZWF0ZUFjY2Vzc2liaWxpdHlSb2xlTWFwKCkK
ICAgICAgICAgeyBEaXZSb2xlLCBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKICAgICAgICAg
eyBGb3JtUm9sZSwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCiAgICAgICAgIHsgU3BpbkJ1
dHRvblJvbGUsIE5TQWNjZXNzaWJpbGl0eUluY3JlbWVudG9yUm9sZSB9LAotICAgICAgICB7IEZv
b3RlclJvbGUsIE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9CisgICAgICAgIHsgRm9vdGVyUm9s
ZSwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCisgICAgICAgIHsgVG9nZ2xlQnV0dG9uUm9s
ZSwgTlNBY2Nlc3NpYmlsaXR5QnV0dG9uUm9sZSB9CiAgICAgfTsKICAgICBBY2Nlc3NpYmlsaXR5
Um9sZU1hcCYgcm9sZU1hcCA9ICpuZXcgQWNjZXNzaWJpbGl0eVJvbGVNYXA7CiAgICAgCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDc4ZGFhNTkuLmRkODhiZDYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMDgtMjAgIEFsZWphbmRybyBQacOx
ZWlybyAgPGFwaW5oZWlyb0BpZ2FsaWEuY29tPgorCisgICAgICAgIERvam8gdG9nZ2xlIGJ1dHRv
bnMgc2hvdWxkIGV4cG9zZSBST0xFX1RPR0dMRV9CVVRUT04gbm90IFJPTEVfUFVTSF9CVVRUT04K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczODE5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgYSBu
ZXcgcm9sZSwgVG9nZ2xlIEJ1dHRvbiwgYmFzZWQgb24gd2hldGhlciBhcmlhLXByZXNzZWQgaXMg
cHJlc2VudC4KKyAgICAgICAgaHR0cDovL3d3dy53My5vcmcvVFIvd2FpLWFyaWEvc3RhdGVzX2Fu
ZF9wcm9wZXJ0aWVzI2FyaWEtcHJlc3NlZAorCisgICAgICAgICogcHVibGljL1dlYkFjY2Vzc2li
aWxpdHlSb2xlLmg6IGFkZGVkIFdlYkFjY2Vzc2liaWxpdHlSb2xlVG9nZ2xlQnV0dG9uIHRoYXQK
KyAgICAgICAgbWF0Y2hzIHdpdGggV2ViQ29yZSBUb2dnbGVCdXR0b25Sb2xlCisgICAgICAgICog
c3JjL0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwOiBhZGRlZCB0aGUgYXNzZXJ0IG1hdGNoaW5nIHJ1
bGUgZm9yCisgICAgICAgIFdlYkFjY2Vzc2liaWxpdHlSb2xlVG9nZ2xlQnV0dG9uIGFuZCBUb2dn
bGVCdXR0b25Sb2xlCisKIDIwMTItMDgtMDcgIEFsZXhlaSBGaWxpcHBvdiAgPGFsZXhlaWZAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IG1ha2UgdGhlIE1lbW9yeUNsYXNz
SW5mbyBjbGFzcyBhIG5vdC10ZW1wbGF0ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViQWNjZXNzaWJpbGl0eVJvbGUuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYkFjY2Vzc2liaWxpdHlSb2xlLmgKaW5kZXggNjA5NThmOS4uZjQwYzFkOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQWNjZXNzaWJpbGl0
eVJvbGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJBY2Nlc3NpYmls
aXR5Um9sZS5oCkBAIC0xMzMsNiArMTMzLDcgQEAgZW51bSBXZWJBY2Nlc3NpYmlsaXR5Um9sZSB7
CiAgICAgV2ViQWNjZXNzaWJpbGl0eVJvbGVUcmVlR3JpZCwKICAgICBXZWJBY2Nlc3NpYmlsaXR5
Um9sZVRyZWVJdGVtUm9sZSwKICAgICBXZWJBY2Nlc3NpYmlsaXR5Um9sZVRleHRGaWVsZCwKKyAg
ICBXZWJBY2Nlc3NpYmlsaXR5Um9sZVRvZ2dsZUJ1dHRvbiwKICAgICBXZWJBY2Nlc3NpYmlsaXR5
Um9sZVRvb2xiYXIsCiAgICAgV2ViQWNjZXNzaWJpbGl0eVJvbGVVbmtub3duLAogICAgIFdlYkFj
Y2Vzc2liaWxpdHlSb2xlVXNlckludGVyZmFjZVRvb2x0aXAsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwCmluZGV4IDljZjYwODkuLmJm
NDBhYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNo
aW5nRW51bXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNo
aW5nRW51bXMuY3BwCkBAIC0yNTMsNiArMjUzLDcgQEAgQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdf
RU5VTShXZWJBY2Nlc3NpYmlsaXR5Um9sZURvY3VtZW50TWF0aCwgRG9jdW1lbnRNYXRoUm9sZSkK
IENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViQWNjZXNzaWJpbGl0eVJvbGVEb2N1bWVu
dE5vdGUsIERvY3VtZW50Tm90ZVJvbGUpOwogQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShX
ZWJBY2Nlc3NpYmlsaXR5Um9sZURvY3VtZW50UmVnaW9uLCBEb2N1bWVudFJlZ2lvblJvbGUpOwog
Q09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJBY2Nlc3NpYmlsaXR5Um9sZVVzZXJJbnRl
cmZhY2VUb29sdGlwLCBVc2VySW50ZXJmYWNlVG9vbHRpcFJvbGUpOworQ09NUElMRV9BU1NFUlRf
TUFUQ0hJTkdfRU5VTShXZWJBY2Nlc3NpYmlsaXR5Um9sZVRvZ2dsZUJ1dHRvbiwgVG9nZ2xlQnV0
dG9uUm9sZSk7CiAKIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViQXBwbGljYXRpb25D
YWNoZUhvc3Q6OlVuY2FjaGVkLCBBcHBsaWNhdGlvbkNhY2hlSG9zdDo6VU5DQUNIRUQpOwogQ09N
UElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJBcHBsaWNhdGlvbkNhY2hlSG9zdDo6SWRsZSwg
QXBwbGljYXRpb25DYWNoZUhvc3Q6OklETEUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9n
IGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDJjNzA1ODcuLjY4YjUzMTQgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAx
Mi0wOC0yMCAgQWxlamFuZHJvIFBpw7FlaXJvICA8YXBpbmhlaXJvQGlnYWxpYS5jb20+CisKKyAg
ICAgICAgRG9qbyB0b2dnbGUgYnV0dG9ucyBzaG91bGQgZXhwb3NlIFJPTEVfVE9HR0xFX0JVVFRP
TiBub3QgUk9MRV9QVVNIX0JVVFRPTgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NzM4MTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGRlZCBhIG5ldyByb2xlLCBUb2dnbGUgQnV0dG9uLCBiYXNlZCBvbiB3
aGV0aGVyIGFyaWEtcHJlc3NlZCBpcyBwcmVzZW50LgorICAgICAgICBodHRwOi8vd3d3LnczLm9y
Zy9UUi93YWktYXJpYS9zdGF0ZXNfYW5kX3Byb3BlcnRpZXMjYXJpYS1wcmVzc2VkCisKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL0FjY2Vzc2liaWxpdHlVSUVs
ZW1lbnRDaHJvbWl1bS5jcHA6CisgICAgICAgIChyb2xlVG9TdHJpbmcpOiBhZGRlZCAiVG9nZ2xl
QnV0dG9uIiBzdHJpbmcgZm9yIFdlYkFjY2Vzc2liaWxpdHlSb2xlVG9nZ2xlQnV0dG9uCisKIDIw
MTItMDgtMDIgIFNpbW9uIEhhdXNtYW5uICA8c2ltb24uaGF1c21hbm5Abm9raWEuY29tPgogCiAg
ICAgICAgIFtRdF0gUmVtb3ZlIFF0IDQgc3BlY2lmaWMgY29kZSBwYXRocwpkaWZmIC0tZ2l0IGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50Q2hyb21pdW0uY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1
bm5lci9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50Q2hyb21pdW0uY3BwCmluZGV4IGM1NmIxNTEuLmRm
MGZiMGEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5u
ZXIvQWNjZXNzaWJpbGl0eVVJRWxlbWVudENocm9taXVtLmNwcAorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRDaHJvbWl1
bS5jcHAKQEAgLTIwNCw2ICsyMDQsOCBAQCBzdGF0aWMgc3RyaW5nIHJvbGVUb1N0cmluZyhXZWJB
Y2Nlc3NpYmlsaXR5Um9sZSByb2xlKQogICAgICAgICByZXR1cm4gcmVzdWx0LmFwcGVuZCgiRG9j
dW1lbnRSZWdpb24iKTsKICAgICBjYXNlIFdlYkFjY2Vzc2liaWxpdHlSb2xlVXNlckludGVyZmFj
ZVRvb2x0aXA6CiAgICAgICAgIHJldHVybiByZXN1bHQuYXBwZW5kKCJVc2VySW50ZXJmYWNlVG9v
bHRpcCIpOworICAgIGNhc2UgV2ViQWNjZXNzaWJpbGl0eVJvbGVUb2dnbGVCdXR0b246CisgICAg
ICAgIHJldHVybiByZXN1bHQuYXBwZW5kKCJUb2dnbGVCdXR0b24iKTsKICAgICBkZWZhdWx0Ogog
ICAgICAgICAvLyBBbHNvIG1hdGNoZXMgV2ViQWNjZXNzaWJpbGl0eVJvbGVVbmtub3duLgogICAg
ICAgICByZXR1cm4gcmVzdWx0LmFwcGVuZCgiVW5rbm93biIpOwotLSAKMS43LjkuNQoK
</data>

          </attachment>
      

    </bug>

</bugzilla>