<?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>47636</bug_id>
          
          <creation_ts>2010-10-13 16:32:13 -0700</creation_ts>
          <short_desc>AX: GTK: ARIA role is not respected on &lt;p&gt; &lt;label&gt; &lt;div&gt; and &lt;form&gt;</short_desc>
          <delta_ts>2011-03-30 09:58:04 -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>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>57377</dependson>
    
    <dependson>57380</dependson>
          <blocked>30796</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="chris fleizach">cfleizach</reporter>
          <assigned_to name="Mario Sanchez Prada">mario</assigned_to>
          <cc>mario</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>293807</commentid>
    <comment_count>0</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2010-10-13 16:32:13 -0700</bug_when>
    <thetext>In webkit_accessible_get_role, if the node is a &lt;p&gt; &lt;label&gt; &lt;div&gt; and &lt;form&gt;, GTK is automatically returning some sort of role.

However, that completely ignores whether ARIA has set a role, which would be returned from 

axObject-&gt;roleValue()...

GTK needs to respect the roles it gets from WebCore and then make determinations afterwards whether it should change things.

This is causing the new test added in https://bugs.webkit.org/show_bug.cgi?id=47564 to generate a result that has failures</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293808</commentid>
    <comment_count>1</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2010-10-13 16:32:35 -0700</bug_when>
    <thetext>Please assign to whomever is working on AX these days. Thanks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299030</commentid>
    <comment_count>2</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2010-10-25 12:30:21 -0700</bug_when>
    <thetext>Adding myself to CC</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>370309</commentid>
    <comment_count>3</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-03-21 01:04:41 -0700</bug_when>
    <thetext>Blocking metabug blocking ORCA support in RIA</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375156</commentid>
    <comment_count>4</comment_count>
      <attachid>87292</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-03-29 03:20:08 -0700</bug_when>
    <thetext>Created attachment 87292
Patch proposal + Layout test

Attaching patch proposal + Layout test.

Note: the patch is basically about adding an extra condition to the &apos;if&apos; statement.

-    if (axObject-&gt;isAccessibilityRenderObject()) {
-        Node* node = static_cast&lt;AccessibilityRenderObject*&gt;(axObject)-&gt;renderer()-&gt;node();
-        if (node) {
+    if (coreObject-&gt;isAccessibilityRenderObject()) {
+        Node* node = static_cast&lt;AccessibilityRenderObject*&gt;(coreObject)-&gt;renderer()-&gt;node();
+        if (node &amp;&amp; coreObject-&gt;ariaRoleAttribute() == UnknownRole) {

Then I also made the most of this patch to rename the axObject variable (normally used to refer instances of AtkObject) to coreObject, which is the normal variable name used for instances of AccessibilityObject. I know it messes up a little bit the patch but in the long term it makes IMHO the code cleaner and, after all, the patch is not that big and complex to consider it unreviewable, I think :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375429</commentid>
    <comment_count>5</comment_count>
      <attachid>87292</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-03-29 09:32:55 -0700</bug_when>
    <thetext>Comment on attachment 87292
Patch proposal + Layout test

You should probably enable the other test that led to the creation of this bug (and verify that test passes now)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375433</commentid>
    <comment_count>6</comment_count>
      <attachid>87292</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-03-29 09:37:14 -0700</bug_when>
    <thetext>Comment on attachment 87292
Patch proposal + Layout test

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

&gt; Source/WebCore/accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:494
&gt; +        if (node &amp;&amp; coreObject-&gt;ariaRoleAttribute() == UnknownRole) {

I think you should add ParagraphRole, LabelRole and so on to WebCore. Then you could just use roleValue() and you won&apos;t have to query the node of the renderer or check that it&apos;s a render object (which we should be trying to avoid). 
Those roles would be mapped to NSAccessibilityGroupRole on mac</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375468</commentid>
    <comment_count>7</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-03-29 10:16:39 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 87292 [details])
&gt; You should probably enable the other test that led to the creation of this bug (and verify that test passes now)

Guess you mean platform/gtk/accessibility/aria-table-hierarchy.html, right?

If that&apos;s the case I&apos;m much afraid I can&apos;t skip it yest since, even when this patch improves the result (tables are seen as tables, not sections), there&apos;s still a bug in the GTK port which prevents it to see the rows and cols, and thus the cells, in those tables. And that should be IMHO addressed through a different bug I&apos;ll probably file later on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375543</commentid>
    <comment_count>8</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-03-29 11:02:00 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 87292 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=87292&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:494
&gt; &gt; +        if (node &amp;&amp; coreObject-&gt;ariaRoleAttribute() == UnknownRole) {
&gt; 
&gt; I think you should add ParagraphRole, LabelRole and so on to WebCore. Then you could just use roleValue() and you won&apos;t have to query the node of the renderer or check that it&apos;s a render object (which we should be trying to avoid). 
&gt; Those roles would be mapped to NSAccessibilityGroupRole on mac

I like this, implementing a new patch right now that way...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375559</commentid>
    <comment_count>9</comment_count>
      <attachid>87371</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-03-29 11:18:13 -0700</bug_when>
    <thetext>Created attachment 87371
Patch proposal + Layout test

(In reply to comment #8)
&gt; [...] 
&gt; I like this, implementing a new patch right now that way...

Here you have the new one.

About the bug preventing from unskipping the other layout test, if it&apos;s ok to you, I&apos;d prefer to file it after fixing this stuff, so I can be sure about what the root problem actually is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375568</commentid>
    <comment_count>10</comment_count>
      <attachid>87371</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-03-29 11:22:05 -0700</bug_when>
    <thetext>Comment on attachment 87371
Patch proposal + Layout test

can you also add in the mappings for the mac wrapper. it should be clear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375579</commentid>
    <comment_count>11</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-03-29 11:29:39 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 87371 [details])
&gt; can you also add in the mappings for the mac wrapper. it should be clear

Sure, I just thought it would already work that way without doing anything, like some kind of fallback.

But no problem in adding explicit lines in the mac wrapper of course (jsut hope to do it right)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375588</commentid>
    <comment_count>12</comment_count>
      <attachid>87375</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-03-29 11:35:30 -0700</bug_when>
    <thetext>Created attachment 87375
Patch proposal + Layout test

(In reply to comment #11)
&gt; (In reply to comment #10)
&gt; &gt; (From update of attachment 87371 [details] [details])
&gt; &gt; can you also add in the mappings for the mac wrapper. it should be clear
&gt; 
&gt; Sure, I just thought it would already work that way without doing anything, like some kind of fallback.
&gt; 
&gt; But no problem in adding explicit lines in the mac wrapper of course (jsut hope to do it right)

Done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375594</commentid>
    <comment_count>13</comment_count>
      <attachid>87375</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-03-29 11:38:29 -0700</bug_when>
    <thetext>Comment on attachment 87375
Patch proposal + Layout test

Looks good. Thanks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375605</commentid>
    <comment_count>14</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-03-29 11:47:19 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; (From update of attachment 87375 [details])
&gt; Looks good. Thanks

Thanks to you for the responsiveness and quick reviews!

Now I&apos;m in a hurry, but first thing I&apos;ll do tomorrow morning will be to check the problem around the aria-table-hierarchy.html test and file a bug accordingly.

Now closing this, as it seems webkit-patch failed to do it so...

Committed r82295: &lt;http://trac.webkit.org/changeset/82295&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375712</commentid>
    <comment_count>15</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-03-29 13:34:27 -0700</bug_when>
    <thetext>Reopening as it seems the current patch was twice wrong :-(:

 1. It made Chromium bots to fail compiling
 2. It made Leopard tests to fail

About (1), I tried to quickly write a patch to fix it when I thought that was the only problem, but it seems I messed up in one line and that I basically replaced one compilation problem with another one :/.

The patch I committed to fix that was committed in review 82300 [1], and the wrong line in there is obviously this one:

  COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleDiv, LabelRole);

Most likely, if I hadn&apos;t made that mistake Chromium bots would be compiling fine, so it&apos;s worth bearing this in mind when writing the next pach.

Anyway, that was not enough since later on we found out about the problem (2), so we finally decided to roll out both revisions 82295 and 82300 through bug 57380, as I have no more time today to sit down, think and write a patch that doesn&apos;t make those leopard tests to fail [2].

Thus, tomorrow will be a new day and I will get back to this stuff. In the meanwhile, let&apos;s reopen this...

[1]http://trac.webkit.org/changeset/82300
[2]http://build.webkit.org/results/Leopard%20Intel%20Release%20%28Tests%29/r82295%20%2830326%29/results.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375719</commentid>
    <comment_count>16</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-03-29 13:48:35 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; [...]
&gt; Anyway, that was not enough since later on we found out about the problem (2), 
&gt; so we finally decided to roll out both revisions 82295 and 82300 through bug 
&gt; 57380, as I have no more time today to sit down, think and write a patch that 
&gt; doesn&apos;t make those leopard tests to fail [2].
&gt; 
&gt; [...] 
&gt; [2]http://build.webkit.org/results/Leopard%20Intel%20Release%20%28Tests%29/r82295%20%2830326%29/results.html

Btw Chris, if you could take a look into those errors and provide some feedback on why Mac is failing that way, that would be awesome, as I&apos;m not sure whether I&apos;ll be able to cook a patch for that on my own easily, since I suspect the reason behind this problem could be that just doing that mapping is not enough in Mac... we could be messing up with the roles somehow, I&apos;m afraid.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375756</commentid>
    <comment_count>17</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-03-29 14:21:52 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; (In reply to comment #15)
&gt; &gt; [...]
&gt; &gt; Anyway, that was not enough since later on we found out about the problem (2), 
&gt; &gt; so we finally decided to roll out both revisions 82295 and 82300 through bug 
&gt; &gt; 57380, as I have no more time today to sit down, think and write a patch that 
&gt; &gt; doesn&apos;t make those leopard tests to fail [2].
&gt; &gt; 
&gt; &gt; [...] 
&gt; &gt; [2]http://build.webkit.org/results/Leopard%20Intel%20Release%20%28Tests%29/r82295%20%2830326%29/results.html
&gt; 
&gt; Btw Chris, if you could take a look into those errors and provide some feedback on why Mac is failing that way, that would be awesome, as I&apos;m not sure whether I&apos;ll be able to cook a patch for that on my own easily, since I suspect the reason behind this problem could be that just doing that mapping is not enough in Mac... we could be messing up with the roles somehow, I&apos;m afraid.

This is strange that it would only affect leopard. And it&apos;s strange that it happens. It indicates that some element&apos;s role changed away from NSAccessibilityGroup, which would remove the the title ui element attribute. we might have to check in skip lists and then file another bug to fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>376171</commentid>
    <comment_count>18</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-03-30 03:29:30 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; [...]
&gt; This is strange that it would only affect leopard. And it&apos;s strange that it 
&gt; happens. 

Well, actually I have double checked now and it seems it&apos;s also failing in Snow Leopard as well:

http://build.webkit.org/results/SnowLeopard%20Intel%20Release%20%28Tests%29/r82295%20%2827423%29/accessibility


&gt; It indicates that some element&apos;s role changed away from 
&gt; NSAccessibilityGroup, which would remove the the title ui element attribute. we 
&gt; might have to check in skip lists and then file another bug to fix

By just reading the code in AccessibilityObjectWrapper.mm (and please take the following with a grain of salt), I have the feeling the problem with those tests is that they use some of the four elements we defined new roles for (e.g. &lt;p&gt;) and, even if the following code gets executed...

  - (NSArray*)accessibilityAttributeNames
  {
    [...]
    if (groupAttrs == nil) {
        tempArray = [[NSMutableArray alloc] initWithArray:attributes];
        [tempArray addObject:NSAccessibilityTitleUIElementAttribute];
        groupAttrs = [[NSArray alloc] initWithArray:tempArray];
        [tempArray release];
    }
    [...]
  }

...the value of that groupAttrs is being ignored because the accessible objects associated to the conflictive element are  returning false when calling to isGroup() (as the do not have roleValue() == GroupRole), hence the following code is not executed:

    [...]
    else if (m_object-&gt;isGroup() || m_object-&gt;isListItem())
        objectAttributes = groupAttrs;

    [...]

...and thus at the end the objectAttributes variable will hold just the content of the original attributes variable, which contains everything in the expected output but the AXTitleUIElement.

I basically see two solutions from my ignorant perspective:

  1. Add more OR conditions to the &quot;if (m_object-&gt;isGroup() || m_object-&gt;isListItem())&quot; statement, so it gets executed as well for ParagraphRole, DivRole, FormRole and LabelRole.

  2. Make the new code in AccessibilityRenderObject::determineAccessibilityRole() GTK-only, leaving it as it was before for the rest of the platforms.

Among these two options, I think (2) is the best one since it just changes the behaviour for GTK and the other platforms would keep working as they do right now, so I&apos;ll work on a new patch that way, but feel free to suggest me to do it in another way if you think it makes sense.

Thanks and excuse my verbosity :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>376314</commentid>
    <comment_count>19</comment_count>
      <attachid>87535</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-03-30 07:50:27 -0700</bug_when>
    <thetext>Created attachment 87535
Patch proposal + Layout test

(In reply to comment #18)
&gt; [...]
&gt; I basically see two solutions from my ignorant perspective:
&gt; 
&gt;   1. Add more OR conditions to the &quot;if (m_object-&gt;isGroup() || 
&gt; m_object-&gt;isListItem())&quot; statement, so it gets executed as well for 
&gt; ParagraphRole, DivRole, FormRole and LabelRole.
&gt; 
&gt;   2. Make the new code in 
&gt; AccessibilityRenderObject::determineAccessibilityRole() GTK-only, leaving it as 
&gt; it was before for the rest of the platforms.
&gt; 
&gt; Among these two options, I think (2) is the best one since it just changes the 
&gt; behaviour for GTK and the other platforms would keep working as they do right 
&gt; now, so I&apos;ll work on a new patch that way, but feel free to suggest me to do it 
&gt; in another way if you think it makes sense.

Attaching new patch addressing the problem with Mac in the previously mentioned way: now only GTK is actually affected, and the rest of the ports should remain unaltered.

Still, as the new roles are not GTK-specific, I maintained the changes in Mac wrapper (explicit mapping to Group role) and Chromium (duplicating the web core roles in those assertions).

I hope this time it&apos;s the right one. Will wait anyway for the EWS to run, to gain peace of mind :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>376359</commentid>
    <comment_count>20</comment_count>
      <attachid>87535</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-03-30 08:51:05 -0700</bug_when>
    <thetext>Comment on attachment 87535
Patch proposal + Layout test

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

Your changelogs have duplicate entries in them.

Can you file a Mac bug that raises this issue and assign it to me. I think the correct behavior is for all these elements to be group elements.

r=me with minor nits.

&gt; LayoutTests/ChangeLog:11
&gt; +

this comment is duplicated in the this changelog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>376362</commentid>
    <comment_count>21</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-03-30 08:54:38 -0700</bug_when>
    <thetext>
&gt; I basically see two solutions from my ignorant perspective:
&gt; 
&gt;   1. Add more OR conditions to the &quot;if (m_object-&gt;isGroup() || m_object-&gt;isListItem())&quot; statement, so it gets executed as well for ParagraphRole, DivRole, FormRole and LabelRole.
&gt; 
&gt;   2. Make the new code in AccessibilityRenderObject::determineAccessibilityRole() GTK-only, leaving it as it was before for the rest of the platforms.
&gt; 

isGroup() appears to be a platform dependent method, that&apos;s living in WebCore. I think that should be amended to reflect the new reality so that isGroup()  perhaps calls into platform specific code to determine if something is a group.


&gt; Among these two options, I think (2) is the best one since it just changes the behaviour for GTK and the other platforms would keep working as they do right now, so I&apos;ll work on a new patch that way, but feel free to suggest me to do it in another way if you think it makes sense.
&gt; 
&gt; Thanks and excuse my verbosity :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>376384</commentid>
    <comment_count>22</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-03-30 09:22:06 -0700</bug_when>
    <thetext>Answering the two comments in a row...

(In reply to comment #20)
&gt; [...]
&gt; Can you file a Mac bug that raises this issue and assign it to me. I think 
&gt; the correct behavior is for all these elements to be group elements.

If I raise a bug for this I think it wouldn&apos;t be Mac only, since GTK code would also benefit of that change, at least because that way AccessibilityObject::allowsTextRanges() wouldn&apos;t need any change as it needs now, since the already present isGroup() call would work for all these 4 elements as well (as I thin it would be OK to consider those 4 elements as Group elements as well in GTK).

I&apos;ll file that new bug and will comment this specific thing in the description.

&gt; r=me with minor nits.

Ok.

&gt; &gt; LayoutTests/ChangeLog:11
&gt; &gt; +
&gt; 
&gt; this comment is duplicated in the this changelog

Oops, fixing it now.

(In reply to comment #21)
&gt; [...]
&gt; isGroup() appears to be a platform dependent method, that&apos;s living in WebCore.
&gt; I think that should be amended to reflect the &gt; new reality so that isGroup()
&gt; perhaps calls into platform specific code to determine if something is a group.

I like this. The default implementation could just still be return role == GroupRole, though, despite of Mac and GTK adding the new 4 roles that list in platform specific code.

But, as you said, that&apos;s better another bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>376391</commentid>
    <comment_count>23</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-03-30 09:30:24 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; [...]
&gt; Now I&apos;m in a hurry, but first thing I&apos;ll do tomorrow morning will be to check 
&gt; the problem around the aria-table-hierarchy.html test and file a bug 
&gt; accordingly.

Not the first thing I did at the end, nor the last one either:
https://bugs.webkit.org/show_bug.cgi?id=57463</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>376420</commentid>
    <comment_count>24</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-03-30 09:58:04 -0700</bug_when>
    <thetext>Committed r82459: &lt;http://trac.webkit.org/changeset/82459&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>87292</attachid>
            <date>2011-03-29 03:20:08 -0700</date>
            <delta_ts>2011-03-29 11:18:13 -0700</delta_ts>
            <desc>Patch proposal + Layout test</desc>
            <filename>0001-2011-03-29-Mario-Sanchez-Prada-msanchez-igalia.com.patch</filename>
            <type>text/plain</type>
            <size>8704</size>
            <attacher name="Mario Sanchez Prada">mario</attacher>
            
              <data encoding="base64">RnJvbSA1ZWQ3NDhkNjc4MjA5YTQ5N2M2NWNmNjcwMzc1NzQ5NDQ5ZmJkOTczIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJpbyBTYW5jaGV6IFByYWRhIDxtc2FuY2hlekBpZ2FsaWEu
Y29tPgpEYXRlOiBUdWUsIDI5IE1hciAyMDExIDExOjUzOjU2ICswMjAwClN1YmplY3Q6IFtQQVRD
SF0gMjAxMS0wMy0yOSAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+
CgogICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKICAgICAgICBBWDogR1RLOiBB
UklBIHJvbGUgaXMgbm90IHJlc3BlY3RlZCBvbiA8cD4gPGxhYmVsPiA8ZGl2PiBhbmQgPGZvcm0+
CiAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ3NjM2Cgog
ICAgICAgIERvIG5vdCBoYXJkY29kZSBBVEsgcm9sZXMgaWYgYW5kIEFSSUEgcm9sZSBoYXMgYmVl
biBhbHJlYWR5IHNldC4KCiAgICAgICAgVGVzdDogcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkv
YXJpYS1yb2xlcy11bmlnbm9yZWQuaHRtbAoKICAgICAgICAqIGFjY2Vzc2liaWxpdHkvZ3RrL0Fj
Y2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcDoKICAgICAgICAod2Via2l0X2FjY2Vzc2li
bGVfZ2V0X3JvbGUpOiBDaGVjayB3aGV0aGVyIGFuIEFSSUEgcm9sZSBoYXMgYmVlbgogICAgICAg
IHNldCBiZWZvcmUgcmV0dXJuaW5nIHNwZWNpZmljIEFUSyByb2xlcyBmb3IgdGhlc2UgZm91ciBl
bGVtZW50cy4KCjIwMTEtMDMtMjkgIE1hcmlvIFNhbmNoZXogUHJhZGEgIDxtc2FuY2hlekBpZ2Fs
aWEuY29tPgoKICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiAgICAgICAgQVg6
IEdUSzogQVJJQSByb2xlIGlzIG5vdCByZXNwZWN0ZWQgb24gPHA+IDxsYWJlbD4gPGRpdj4gYW5k
IDxmb3JtPgogICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00
NzYzNgoKICAgICAgICBBZGRlZCBuZXcgbGF5b3V0IHRlc3QgdG8gY2hlY2sgdGhhdCByb2xlcyBh
cmUgY29ycmVjdCBpbiBHVEsuCgogICAgICAgICogcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkv
YXJpYS1yb2xlcy11bmlnbm9yZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KICAgICAgICAqIHBsYXRm
b3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2FyaWEtcm9sZXMtdW5pZ25vcmVkLmh0bWw6IEFkZGVkLgot
LS0KIExheW91dFRlc3RzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
ICAxMiArKysrCiAuLi4vYXJpYS1yb2xlcy11bmlnbm9yZWQtZXhwZWN0ZWQudHh0ICAgICAgICAg
ICAgICB8ICAgMjYgKysrKysrKysKIC4uLi9ndGsvYWNjZXNzaWJpbGl0eS9hcmlhLXJvbGVzLXVu
aWdub3JlZC5odG1sICAgIHwgICA2NyArKysrKysrKysrKysrKysrKysrKwogU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE1ICsrKysrCiAuLi4v
Z3RrL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcCAgICAgICAgICB8ICAgMTQgKyst
LQogNSBmaWxlcyBjaGFuZ2VkLCAxMjcgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9h
cmlhLXJvbGVzLXVuaWdub3JlZC1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9hcmlhLXJvbGVzLXVuaWdub3JlZC5o
dG1sCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IDNhYjI3ZTkuLjQyZmI4NTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAx
MS0wMy0yOSAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQVg6IEdUSzogQVJJ
QSByb2xlIGlzIG5vdCByZXNwZWN0ZWQgb24gPHA+IDxsYWJlbD4gPGRpdj4gYW5kIDxmb3JtPgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDc2MzYKKwor
ICAgICAgICBBZGRlZCBuZXcgbGF5b3V0IHRlc3QgdG8gY2hlY2sgdGhhdCByb2xlcyBhcmUgY29y
cmVjdCBpbiBHVEsuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9hcmlh
LXJvbGVzLXVuaWdub3JlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2d0ay9hY2Nlc3NpYmlsaXR5L2FyaWEtcm9sZXMtdW5pZ25vcmVkLmh0bWw6IEFkZGVkLgorCiAy
MDExLTAzLTI4ICBZdXRhIEtpdGFtdXJhICA8eXV0YWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFVucmV2aWV3ZWQuIFlldCBhbm90aGVyIHRlc3QgcmVzdWx0IGZpeCBmb3IgZmFzdC9ibG9ja2Zs
b3cvZmFsbGJhY2stb3JpZW50YXRpb24tZXhwZWN0ZWQuaHRtbC4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2FyaWEtcm9sZXMtdW5pZ25vcmVkLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2FyaWEt
cm9sZXMtdW5pZ25vcmVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi4zMjU1MTY0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL2FjY2Vzc2liaWxpdHkvYXJpYS1yb2xlcy11bmlnbm9yZWQtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMjYgQEAKK1NpbXBsZSBwYXJhZ3JhcGgKKworQSBwYXJhZ3JhcGggcHJldGVuZGluZyB0
byBiZSBhIHRhYmxlCisKK0EgbGFiZWwgV2hvIHNhaWQgbGFiZWw/IEl0J3MgYSBoZWFkaW5nIQor
QSBmb3JtIHdpdGggYSBidXR0b24gQ2xpY2sgbWUhCitKdXN0IGEgYnV0dG9uIENsaWNrIG1lIQor
SnVzdCBzb21lIHRleHQgaW5zaWRlIGEgZGl2CitUaGlzIGRpdiBpcyBjb250YWlucyBhIHRleHRi
b3ggKGFuIGVudHJ5KQorVGhpcyB0ZXN0cyB0aGF0IEFSSUEgcm9sZXMgYXJlIG5vdCBpZ25vcmVk
IGZvciAncCcsJ2xhYmVsJywgJ2Zvcm0nIGFuZCAnZGl2JyBlbGVtZW50cworCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyBlbGVtZW50LnJvbGUgaXMgJ0FYUm9sZTogcGFyYWdy
YXBoJworUEFTUyBlbGVtZW50LnJvbGUgaXMgJ0FYUm9sZTogdGFibGUnCitQQVNTIGVsZW1lbnQu
cm9sZSBpcyAnQVhSb2xlOiBsYWJlbCcKK1BBU1MgZWxlbWVudC5yb2xlIGlzICdBWFJvbGU6IGhl
YWRpbmcnCitQQVNTIGVsZW1lbnQucm9sZSBpcyAnQVhSb2xlOiBmb3JtJworUEFTUyBlbGVtZW50
LnJvbGUgaXMgJ0FYUm9sZTogcHVzaCBidXR0b24nCitQQVNTIGVsZW1lbnQucm9sZSBpcyAnQVhS
b2xlOiBwYW5lbCcKK1BBU1MgZWxlbWVudC5yb2xlIGlzICdBWFJvbGU6IGVudHJ5JworUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2FyaWEtcm9sZXMtdW5pZ25v
cmVkLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9hcmlhLXJv
bGVzLXVuaWdub3JlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA0
MzczNGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNz
aWJpbGl0eS9hcmlhLXJvbGVzLXVuaWdub3JlZC5odG1sCkBAIC0wLDAgKzEsNjcgQEAKKzwhRE9D
VFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+
Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQ+Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gZmFsc2U7
Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBpZD0iYm9keSI+CisKKzxwPlNp
bXBsZSBwYXJhZ3JhcGg8L3A+Cis8cCByb2xlPSJncmlkIj5BIHBhcmFncmFwaCBwcmV0ZW5kaW5n
IHRvIGJlIGEgdGFibGU8L3A+CisKKzxsYWJlbD5BIGxhYmVsPC9sYWJlbD4KKzxsYWJlbCByb2xl
PSJoZWFkaW5nIj5XaG8gc2FpZCBsYWJlbD8gSXQncyBhIGhlYWRpbmchPC9sYWJlbD4KKworPGZv
cm0+QSBmb3JtIHdpdGggYSBidXR0b24gPGJ1dHRvbiBuYW1lPSJidXR0b24iIHZhbHVlPSJCdXR0
b24iPkNsaWNrIG1lITwvYnV0dG9uPjwvZm9ybT4KKzxmb3JtIHJvbGU9ImJ1dHRvbiI+SnVzdCBh
IGJ1dHRvbiA8YnV0dG9uIG5hbWU9ImJ1dHRvbiIgdmFsdWU9IkJ1dHRvbiI+Q2xpY2sgbWUhPC9i
dXR0b24+PC9mb3JtPgorCis8ZGl2Pkp1c3Qgc29tZSB0ZXh0IGluc2lkZSBhIGRpdjwvZm9ybT4K
KzxkaXYgcm9sZT0idGV4dGJveCI+VGhpcyBkaXYgaXMgY29udGFpbnMgYSB0ZXh0Ym94IChhbiBl
bnRyeSk8L2Rpdj4KKworPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB0aGF0IEFSSUEgcm9s
ZXMgYXJlIG5vdCBpZ25vcmVkIGZvciAncCcsJ2xhYmVsJywgJ2Zvcm0nIGFuZCAnZGl2JyBlbGVt
ZW50cyIpOworCitpZiAod2luZG93LmxheW91dENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Cit9CisKK2lmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXIpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm9keSIpLmZvY3VzKCk7
CisgICAgdmFyIHdlYkFyZWEgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5mb2N1c2VkRWxlbWVu
dDsKKworICAgIC8vIFBhcmFncmFwaHMKKyAgICB2YXIgZWxlbWVudCA9IHdlYkFyZWEuY2hpbGRB
dEluZGV4KDApOworICAgIHNob3VsZEJlKCJlbGVtZW50LnJvbGUiLCAiJ0FYUm9sZTogcGFyYWdy
YXBoJyIpOworICAgIGVsZW1lbnQgPSB3ZWJBcmVhLmNoaWxkQXRJbmRleCgxKTsKKyAgICBzaG91
bGRCZSgiZWxlbWVudC5yb2xlIiwgIidBWFJvbGU6IHRhYmxlJyIpOworCisgICAgLy8gTGFiZWxz
IGFyZSBleHBvc2VkIGFzIGluc2lkZSBhIHBhbmVsCisgICAgdmFyIGxhYmVsc1BhbmVsID0gd2Vi
QXJlYS5jaGlsZEF0SW5kZXgoMik7CisgICAgZWxlbWVudCA9IGxhYmVsc1BhbmVsLmNoaWxkQXRJ
bmRleCgwKTsKKyAgICBzaG91bGRCZSgiZWxlbWVudC5yb2xlIiwgIidBWFJvbGU6IGxhYmVsJyIp
OworICAgIGVsZW1lbnQgPSBsYWJlbHNQYW5lbC5jaGlsZEF0SW5kZXgoMSk7CisgICAgc2hvdWxk
QmUoImVsZW1lbnQucm9sZSIsICInQVhSb2xlOiBoZWFkaW5nJyIpOworCisgICAgLy8gRm9ybXMK
KyAgICBlbGVtZW50ID0gd2ViQXJlYS5jaGlsZEF0SW5kZXgoMyk7CisgICAgc2hvdWxkQmUoImVs
ZW1lbnQucm9sZSIsICInQVhSb2xlOiBmb3JtJyIpOworICAgIGVsZW1lbnQgPSB3ZWJBcmVhLmNo
aWxkQXRJbmRleCg0KTsKKyAgICBzaG91bGRCZSgiZWxlbWVudC5yb2xlIiwgIidBWFJvbGU6IHB1
c2ggYnV0dG9uJyIpOworCisgICAgLy8gRGl2cworICAgIGVsZW1lbnQgPSB3ZWJBcmVhLmNoaWxk
QXRJbmRleCg1KTsKKyAgICBzaG91bGRCZSgiZWxlbWVudC5yb2xlIiwgIidBWFJvbGU6IHBhbmVs
JyIpOworICAgIGVsZW1lbnQgPSB3ZWJBcmVhLmNoaWxkQXRJbmRleCg2KTsKKyAgICBzaG91bGRC
ZSgiZWxlbWVudC5yb2xlIiwgIidBWFJvbGU6IGVudHJ5JyIpOworfQorCitzdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCBkMGEwNzkxLi5jM2QzYzVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAK
KzIwMTEtMDMtMjkgIE1hcmlvIFNhbmNoZXogUHJhZGEgIDxtc2FuY2hlekBpZ2FsaWEuY29tPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFYOiBHVEs6
IEFSSUEgcm9sZSBpcyBub3QgcmVzcGVjdGVkIG9uIDxwPiA8bGFiZWw+IDxkaXY+IGFuZCA8Zm9y
bT4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ3NjM2
CisKKyAgICAgICAgRG8gbm90IGhhcmRjb2RlIEFUSyByb2xlcyBpZiBhbmQgQVJJQSByb2xlIGhh
cyBiZWVuIGFscmVhZHkgc2V0LgorCisgICAgICAgIFRlc3Q6IHBsYXRmb3JtL2d0ay9hY2Nlc3Np
YmlsaXR5L2FyaWEtcm9sZXMtdW5pZ25vcmVkLmh0bWwKKworICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcDoKKyAgICAgICAgKHdlYmtp
dF9hY2Nlc3NpYmxlX2dldF9yb2xlKTogQ2hlY2sgd2hldGhlciBhbiBBUklBIHJvbGUgaGFzIGJl
ZW4KKyAgICAgICAgc2V0IGJlZm9yZSByZXR1cm5pbmcgc3BlY2lmaWMgQVRLIHJvbGVzIGZvciB0
aGVzZSBmb3VyIGVsZW1lbnRzLgorCiAyMDExLTAzLTI4ICBQYXZlbCBQb2Rpdmlsb3YgIDxwb2Rp
dmlsb3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFl1cnkgU2VtaWtoYXRz
a3kuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHAKaW5kZXggZTZjMjdlNy4uN2U2
MjM5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcApAQCAtNDgzLDE1ICs0
ODMsMTUgQEAgc3RhdGljIEF0a1JvbGUgYXRrUm9sZShBY2Nlc3NpYmlsaXR5Um9sZSByb2xlKQog
CiBzdGF0aWMgQXRrUm9sZSB3ZWJraXRfYWNjZXNzaWJsZV9nZXRfcm9sZShBdGtPYmplY3QqIG9i
amVjdCkKIHsKLSAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBheE9iamVjdCA9IGNvcmUob2JqZWN0
KTsKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBjb3JlT2JqZWN0ID0gY29yZShvYmplY3QpOwog
Ci0gICAgaWYgKCFheE9iamVjdCkKKyAgICBpZiAoIWNvcmVPYmplY3QpCiAgICAgICAgIHJldHVy
biBBVEtfUk9MRV9VTktOT1dOOwogCiAgICAgLy8gV2ViQ29yZSBkb2VzIG5vdCBrbm93IGFib3V0
IHBhcmFncmFwaCByb2xlLCBsYWJlbCByb2xlLCBvciBzZWN0aW9uIHJvbGUKLSAgICBpZiAoYXhP
YmplY3QtPmlzQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCgpKSB7Ci0gICAgICAgIE5vZGUqIG5v
ZGUgPSBzdGF0aWNfY2FzdDxBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Kj4oYXhPYmplY3QpLT5y
ZW5kZXJlcigpLT5ub2RlKCk7Ci0gICAgICAgIGlmIChub2RlKSB7CisgICAgaWYgKGNvcmVPYmpl
Y3QtPmlzQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCgpKSB7CisgICAgICAgIE5vZGUqIG5vZGUg
PSBzdGF0aWNfY2FzdDxBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Kj4oY29yZU9iamVjdCktPnJl
bmRlcmVyKCktPm5vZGUoKTsKKyAgICAgICAgaWYgKG5vZGUgJiYgY29yZU9iamVjdC0+YXJpYVJv
bGVBdHRyaWJ1dGUoKSA9PSBVbmtub3duUm9sZSkgewogICAgICAgICAgICAgaWYgKG5vZGUtPmhh
c1RhZ05hbWUoSFRNTE5hbWVzOjpwVGFnKSkKICAgICAgICAgICAgICAgICByZXR1cm4gQVRLX1JP
TEVfUEFSQUdSQVBIOwogICAgICAgICAgICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVz
OjpsYWJlbFRhZykpCkBAIC01MDQsMTAgKzUwNCwxMCBAQCBzdGF0aWMgQXRrUm9sZSB3ZWJraXRf
YWNjZXNzaWJsZV9nZXRfcm9sZShBdGtPYmplY3QqIG9iamVjdCkKICAgICB9CiAKICAgICAvLyBO
b3RlOiBXaHkgZG9lc24ndCBXZWJDb3JlIGhhdmUgYSBwYXNzd29yZCBmaWVsZCBmb3IgdGhpcwot
ICAgIGlmIChheE9iamVjdC0+aXNQYXNzd29yZEZpZWxkKCkpCisgICAgaWYgKGNvcmVPYmplY3Qt
PmlzUGFzc3dvcmRGaWVsZCgpKQogICAgICAgICByZXR1cm4gQVRLX1JPTEVfUEFTU1dPUkRfVEVY
VDsKIAotICAgIHJldHVybiBhdGtSb2xlKGF4T2JqZWN0LT5yb2xlVmFsdWUoKSk7CisgICAgcmV0
dXJuIGF0a1JvbGUoY29yZU9iamVjdC0+cm9sZVZhbHVlKCkpOwogfQogCiBzdGF0aWMgYm9vbCBz
ZWxlY3Rpb25CZWxvbmdzVG9PYmplY3QoQWNjZXNzaWJpbGl0eU9iamVjdCogY29yZU9iamVjdCwg
VmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uKQotLSAKMS43LjQKCg==
</data>
<flag name="review"
          id="79708"
          type_id="1"
          status="-"
          setter="cfleizach"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>87371</attachid>
            <date>2011-03-29 11:18:13 -0700</date>
            <delta_ts>2011-03-29 11:35:30 -0700</delta_ts>
            <desc>Patch proposal + Layout test</desc>
            <filename>0001-2011-03-29-Mario-Sanchez-Prada-msanchez-igalia.com.patch</filename>
            <type>text/plain</type>
            <size>11455</size>
            <attacher name="Mario Sanchez Prada">mario</attacher>
            
              <data encoding="base64">RnJvbSA1NjE5ODAyMWIzNWM5YjljZDRiMTJkMGNjNjlmYThmNTZmZGQ0NDRiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJpbyBTYW5jaGV6IFByYWRhIDxtc2FuY2hlekBpZ2FsaWEu
Y29tPgpEYXRlOiBUdWUsIDI5IE1hciAyMDExIDExOjUzOjU2ICswMjAwClN1YmplY3Q6IFtQQVRD
SF0gMjAxMS0wMy0yOSAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+
CgogICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKICAgICAgICBBWDogR1RLOiBB
UklBIHJvbGUgaXMgbm90IHJlc3BlY3RlZCBvbiA8cD4gPGxhYmVsPiA8ZGl2PiBhbmQgPGZvcm0+
CiAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ3NjM2Cgog
ICAgICAgIERlZmluZSBuZXcgcm9sZXMgaW4gV2ViQ29yZSBhbmQgbWFwIHRoZW0gdG8gQVRLIGFj
Y29yZGluZ2x5LgoKICAgICAgICBUZXN0OiBwbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9hcmlh
LXJvbGVzLXVuaWdub3JlZC5odG1sCgogICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5T2JqZWN0Lmg6IEFkZGVkIG5ldyByb2xlcyB0bwogICAgICAgIHJlcHJlc2VudCBwYXJhZ3Jh
cGhzLCBsYWJlbHMsIGZvcm1zIGFuZCBkaXYgc2VjdGlvbnMuCiAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwOgogICAgICAgIChXZWJDb3JlOjpBY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpkZXRlcm1pbmVBY2Nlc3NpYmlsaXR5Um9sZSk6CiAgICAg
ICAgUmV0dXJuIFBhcmFncmFwaFJvbGUsIExhYmVsUm9sZSwgRm9ybVJvbGUgYW5kIERpdlJvbGUg
d2hlbiBuZWVkZWQuCiAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlckF0ay5jcHA6CiAgICAgICAgKGF0a1JvbGUpOiBNYXAgbmV3IFdlYkNvcmUgcm9s
ZXMgdG8gQVRLIFJvbGVzLgogICAgICAgICh3ZWJraXRfYWNjZXNzaWJsZV9nZXRfcm9sZSk6IFJl
bW92ZSBjb2RlIHRvIGRlZmluZSByb2xlcyBmb3IKICAgICAgICBwYXJhZ3JhcGhzLCBsYWJlbHMs
IGZvcm1zIGFuZCBkaXZzIGJhc2VkIG9uIG5vZGUncyB0YWcgbmFtZS4KCjIwMTEtMDMtMjkgIE1h
cmlvIFNhbmNoZXogUHJhZGEgIDxtc2FuY2hlekBpZ2FsaWEuY29tPgoKICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KCiAgICAgICAgQVg6IEdUSzogQVJJQSByb2xlIGlzIG5vdCBy
ZXNwZWN0ZWQgb24gPHA+IDxsYWJlbD4gPGRpdj4gYW5kIDxmb3JtPgogICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NzYzNgoKICAgICAgICBBZGRlZCBuZXcg
bGF5b3V0IHRlc3QgdG8gY2hlY2sgdGhhdCByb2xlcyBhcmUgY29ycmVjdCBpbiBHVEsuCgogICAg
ICAgICogcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJpYS1yb2xlcy11bmlnbm9yZWQtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KICAgICAgICAqIHBsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2Fy
aWEtcm9sZXMtdW5pZ25vcmVkLmh0bWw6IEFkZGVkLgotLS0KIExheW91dFRlc3RzL0NoYW5nZUxv
ZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMiArKysrCiAuLi4vYXJpYS1yb2xl
cy11bmlnbm9yZWQtZXhwZWN0ZWQudHh0ICAgICAgICAgICAgICB8ICAgMjYgKysrKysrKysKIC4u
Li9ndGsvYWNjZXNzaWJpbGl0eS9hcmlhLXJvbGVzLXVuaWdub3JlZC5odG1sICAgIHwgICA2NyAr
KysrKysrKysrKysrKysrKysrKwogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDIxICsrKysrKwogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggfCAgICA0ICsKIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3QuY3BwICAgIHwgICAxNCArKysrLQogLi4uL2d0ay9BY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHAgICAgICAgICAgfCAgIDMxICsrKystLS0tLS0KIDcg
ZmlsZXMgY2hhbmdlZCwgMTU1IGluc2VydGlvbnMoKyksIDIwIGRlbGV0aW9ucygtKQogY3JlYXRl
IG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2FyaWEt
cm9sZXMtdW5pZ25vcmVkLWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRl
c3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2FyaWEtcm9sZXMtdW5pZ25vcmVkLmh0bWwK
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggM2FiMjdlOS4uNDJmYjg1MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDExLTAz
LTI5ICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBWDogR1RLOiBBUklBIHJv
bGUgaXMgbm90IHJlc3BlY3RlZCBvbiA8cD4gPGxhYmVsPiA8ZGl2PiBhbmQgPGZvcm0+CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NzYzNgorCisgICAg
ICAgIEFkZGVkIG5ldyBsYXlvdXQgdGVzdCB0byBjaGVjayB0aGF0IHJvbGVzIGFyZSBjb3JyZWN0
IGluIEdUSy4KKworICAgICAgICAqIHBsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2FyaWEtcm9s
ZXMtdW5pZ25vcmVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3Rr
L2FjY2Vzc2liaWxpdHkvYXJpYS1yb2xlcy11bmlnbm9yZWQuaHRtbDogQWRkZWQuCisKIDIwMTEt
MDMtMjggIFl1dGEgS2l0YW11cmEgIDx5dXRha0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5y
ZXZpZXdlZC4gWWV0IGFub3RoZXIgdGVzdCByZXN1bHQgZml4IGZvciBmYXN0L2Jsb2NrZmxvdy9m
YWxsYmFjay1vcmllbnRhdGlvbi1leHBlY3RlZC5odG1sLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJpYS1yb2xlcy11bmlnbm9yZWQtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJpYS1yb2xl
cy11bmlnbm9yZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjMyNTUxNjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
YWNjZXNzaWJpbGl0eS9hcmlhLXJvbGVzLXVuaWdub3JlZC1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwyNiBAQAorU2ltcGxlIHBhcmFncmFwaAorCitBIHBhcmFncmFwaCBwcmV0ZW5kaW5nIHRvIGJl
IGEgdGFibGUKKworQSBsYWJlbCBXaG8gc2FpZCBsYWJlbD8gSXQncyBhIGhlYWRpbmchCitBIGZv
cm0gd2l0aCBhIGJ1dHRvbiBDbGljayBtZSEKK0p1c3QgYSBidXR0b24gQ2xpY2sgbWUhCitKdXN0
IHNvbWUgdGV4dCBpbnNpZGUgYSBkaXYKK1RoaXMgZGl2IGlzIGNvbnRhaW5zIGEgdGV4dGJveCAo
YW4gZW50cnkpCitUaGlzIHRlc3RzIHRoYXQgQVJJQSByb2xlcyBhcmUgbm90IGlnbm9yZWQgZm9y
ICdwJywnbGFiZWwnLCAnZm9ybScgYW5kICdkaXYnIGVsZW1lbnRzCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitQQVNTIGVsZW1lbnQucm9sZSBpcyAnQVhSb2xlOiBwYXJhZ3JhcGgn
CitQQVNTIGVsZW1lbnQucm9sZSBpcyAnQVhSb2xlOiB0YWJsZScKK1BBU1MgZWxlbWVudC5yb2xl
IGlzICdBWFJvbGU6IGxhYmVsJworUEFTUyBlbGVtZW50LnJvbGUgaXMgJ0FYUm9sZTogaGVhZGlu
ZycKK1BBU1MgZWxlbWVudC5yb2xlIGlzICdBWFJvbGU6IGZvcm0nCitQQVNTIGVsZW1lbnQucm9s
ZSBpcyAnQVhSb2xlOiBwdXNoIGJ1dHRvbicKK1BBU1MgZWxlbWVudC5yb2xlIGlzICdBWFJvbGU6
IHBhbmVsJworUEFTUyBlbGVtZW50LnJvbGUgaXMgJ0FYUm9sZTogZW50cnknCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJpYS1yb2xlcy11bmlnbm9yZWQu
aHRtbCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2FyaWEtcm9sZXMt
dW5pZ25vcmVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDQzNzM0
ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmls
aXR5L2FyaWEtcm9sZXMtdW5pZ25vcmVkLmh0bWwKQEAgLTAsMCArMSw2NyBAQAorPCFET0NUWVBF
IEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1z
dHlsZS5jc3MiPgorPHNjcmlwdD4KK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSBmYWxzZTsKKzwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IGlkPSJib2R5Ij4KKworPHA+U2ltcGxl
IHBhcmFncmFwaDwvcD4KKzxwIHJvbGU9ImdyaWQiPkEgcGFyYWdyYXBoIHByZXRlbmRpbmcgdG8g
YmUgYSB0YWJsZTwvcD4KKworPGxhYmVsPkEgbGFiZWw8L2xhYmVsPgorPGxhYmVsIHJvbGU9Imhl
YWRpbmciPldobyBzYWlkIGxhYmVsPyBJdCdzIGEgaGVhZGluZyE8L2xhYmVsPgorCis8Zm9ybT5B
IGZvcm0gd2l0aCBhIGJ1dHRvbiA8YnV0dG9uIG5hbWU9ImJ1dHRvbiIgdmFsdWU9IkJ1dHRvbiI+
Q2xpY2sgbWUhPC9idXR0b24+PC9mb3JtPgorPGZvcm0gcm9sZT0iYnV0dG9uIj5KdXN0IGEgYnV0
dG9uIDxidXR0b24gbmFtZT0iYnV0dG9uIiB2YWx1ZT0iQnV0dG9uIj5DbGljayBtZSE8L2J1dHRv
bj48L2Zvcm0+CisKKzxkaXY+SnVzdCBzb21lIHRleHQgaW5zaWRlIGEgZGl2PC9mb3JtPgorPGRp
diByb2xlPSJ0ZXh0Ym94Ij5UaGlzIGRpdiBpcyBjb250YWlucyBhIHRleHRib3ggKGFuIGVudHJ5
KTwvZGl2PgorCis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoYXQgQVJJQSByb2xlcyBh
cmUgbm90IGlnbm9yZWQgZm9yICdwJywnbGFiZWwnLCAnZm9ybScgYW5kICdkaXYnIGVsZW1lbnRz
Iik7CisKK2lmICh3aW5kb3cubGF5b3V0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKK30KKworaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJv
bGxlcikgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib2R5IikuZm9jdXMoKTsKKyAg
ICB2YXIgd2ViQXJlYSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZvY3VzZWRFbGVtZW50Owor
CisgICAgLy8gUGFyYWdyYXBocworICAgIHZhciBlbGVtZW50ID0gd2ViQXJlYS5jaGlsZEF0SW5k
ZXgoMCk7CisgICAgc2hvdWxkQmUoImVsZW1lbnQucm9sZSIsICInQVhSb2xlOiBwYXJhZ3JhcGgn
Iik7CisgICAgZWxlbWVudCA9IHdlYkFyZWEuY2hpbGRBdEluZGV4KDEpOworICAgIHNob3VsZEJl
KCJlbGVtZW50LnJvbGUiLCAiJ0FYUm9sZTogdGFibGUnIik7CisKKyAgICAvLyBMYWJlbHMgYXJl
IGV4cG9zZWQgYXMgaW5zaWRlIGEgcGFuZWwKKyAgICB2YXIgbGFiZWxzUGFuZWwgPSB3ZWJBcmVh
LmNoaWxkQXRJbmRleCgyKTsKKyAgICBlbGVtZW50ID0gbGFiZWxzUGFuZWwuY2hpbGRBdEluZGV4
KDApOworICAgIHNob3VsZEJlKCJlbGVtZW50LnJvbGUiLCAiJ0FYUm9sZTogbGFiZWwnIik7Cisg
ICAgZWxlbWVudCA9IGxhYmVsc1BhbmVsLmNoaWxkQXRJbmRleCgxKTsKKyAgICBzaG91bGRCZSgi
ZWxlbWVudC5yb2xlIiwgIidBWFJvbGU6IGhlYWRpbmcnIik7CisKKyAgICAvLyBGb3JtcworICAg
IGVsZW1lbnQgPSB3ZWJBcmVhLmNoaWxkQXRJbmRleCgzKTsKKyAgICBzaG91bGRCZSgiZWxlbWVu
dC5yb2xlIiwgIidBWFJvbGU6IGZvcm0nIik7CisgICAgZWxlbWVudCA9IHdlYkFyZWEuY2hpbGRB
dEluZGV4KDQpOworICAgIHNob3VsZEJlKCJlbGVtZW50LnJvbGUiLCAiJ0FYUm9sZTogcHVzaCBi
dXR0b24nIik7CisKKyAgICAvLyBEaXZzCisgICAgZWxlbWVudCA9IHdlYkFyZWEuY2hpbGRBdElu
ZGV4KDUpOworICAgIHNob3VsZEJlKCJlbGVtZW50LnJvbGUiLCAiJ0FYUm9sZTogcGFuZWwnIik7
CisgICAgZWxlbWVudCA9IHdlYkFyZWEuY2hpbGRBdEluZGV4KDYpOworICAgIHNob3VsZEJlKCJl
bGVtZW50LnJvbGUiLCAiJ0FYUm9sZTogZW50cnknIik7Cit9CisKK3N1Y2Nlc3NmdWxseVBhcnNl
ZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IGQwYTA3OTEuLjBmNjRlYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAx
MS0wMy0yOSAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQVg6IEdUSzogQVJJ
QSByb2xlIGlzIG5vdCByZXNwZWN0ZWQgb24gPHA+IDxsYWJlbD4gPGRpdj4gYW5kIDxmb3JtPgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDc2MzYKKwor
ICAgICAgICBEZWZpbmUgbmV3IHJvbGVzIGluIFdlYkNvcmUgYW5kIG1hcCB0aGVtIHRvIEFUSyBh
Y2NvcmRpbmdseS4KKworICAgICAgICBUZXN0OiBwbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9h
cmlhLXJvbGVzLXVuaWdub3JlZC5odG1sCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlPYmplY3QuaDogQWRkZWQgbmV3IHJvbGVzIHRvCisgICAgICAgIHJlcHJlc2VudCBw
YXJhZ3JhcGhzLCBsYWJlbHMsIGZvcm1zIGFuZCBkaXYgc2VjdGlvbnMuCisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRldGVybWluZUFjY2Vzc2liaWxpdHlSb2xl
KToKKyAgICAgICAgUmV0dXJuIFBhcmFncmFwaFJvbGUsIExhYmVsUm9sZSwgRm9ybVJvbGUgYW5k
IERpdlJvbGUgd2hlbiBuZWVkZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwOgorICAgICAgICAoYXRrUm9sZSk6IE1hcCBuZXcg
V2ViQ29yZSByb2xlcyB0byBBVEsgUm9sZXMuCisgICAgICAgICh3ZWJraXRfYWNjZXNzaWJsZV9n
ZXRfcm9sZSk6IFJlbW92ZSBjb2RlIHRvIGRlZmluZSByb2xlcyBmb3IKKyAgICAgICAgcGFyYWdy
YXBocywgbGFiZWxzLCBmb3JtcyBhbmQgZGl2cyBiYXNlZCBvbiBub2RlJ3MgdGFnIG5hbWUuCisK
IDIwMTEtMDMtMjggIFBhdmVsIFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgWXVyeSBTZW1pa2hhdHNreS4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKaW5kZXggNDY4N2NhZS4u
MmQyN2UzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0LmgKQEAgLTE3MSw2ICsxNzEsMTAgQEAgZW51bSBBY2Nlc3NpYmlsaXR5Um9s
ZSB7CiAgICAgTGlzdEl0ZW1Sb2xlLAogICAgIE1lbnVMaXN0UG9wdXBSb2xlLAogICAgIE1lbnVM
aXN0T3B0aW9uUm9sZSwKKyAgICBQYXJhZ3JhcGhSb2xlLAorICAgIExhYmVsUm9sZSwKKyAgICBE
aXZSb2xlLAorICAgIEZvcm1Sb2xlLAogCiAgICAgLy8gQVJJQSBHcm91cGluZyByb2xlcwogICAg
IExhbmRtYXJrQXBwbGljYXRpb25Sb2xlLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKaW5kZXggNmQyMDNh
OS4uMWQwZmU1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCkBAIC0zMDg5LDcgKzMwODksMTkgQEAg
QWNjZXNzaWJpbGl0eVJvbGUgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZGV0ZXJtaW5lQWNj
ZXNzaWJpbGl0eVJvbGUoKQogICAgICAgICByZXR1cm4gU3BsaXR0ZXJSb2xlOwogI2VuZGlmCiAK
LSAgICBpZiAobV9yZW5kZXJlci0+aXNCbG9ja0Zsb3coKSB8fCAobm9kZSAmJiBub2RlLT5oYXNU
YWdOYW1lKGxhYmVsVGFnKSkpCisgICAgaWYgKG5vZGUgJiYgbm9kZS0+aGFzVGFnTmFtZShwVGFn
KSkKKyAgICAgICAgcmV0dXJuIFBhcmFncmFwaFJvbGU7CisKKyAgICBpZiAobm9kZSAmJiBub2Rl
LT5oYXNUYWdOYW1lKGxhYmVsVGFnKSkKKyAgICAgICAgcmV0dXJuIExhYmVsUm9sZTsKKworICAg
IGlmIChub2RlICYmIG5vZGUtPmhhc1RhZ05hbWUoZGl2VGFnKSkKKyAgICAgICAgcmV0dXJuIERp
dlJvbGU7CisKKyAgICBpZiAobm9kZSAmJiBub2RlLT5oYXNUYWdOYW1lKGZvcm1UYWcpKQorICAg
ICAgICByZXR1cm4gRm9ybVJvbGU7CisKKyAgICBpZiAobV9yZW5kZXJlci0+aXNCbG9ja0Zsb3co
KSkKICAgICAgICAgcmV0dXJuIEdyb3VwUm9sZTsKICAgICAKICAgICAvLyBJZiB0aGUgZWxlbWVu
dCBkb2VzIG5vdCBoYXZlIHJvbGUsIGJ1dCBpdCBoYXMgQVJJQSBhdHRyaWJ1dGVzLCBhY2Nlc3Np
YmlsaXR5IHNob3VsZCBmYWxsYmFjayB0byBleHBvc2luZyBpdCBhcyBhIGdyb3VwLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJBdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwCmluZGV4IGU2YzI3ZTcuLjdkZmYyZTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVyQXRrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9B
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHAKQEAgLTQ3Niw2ICs0NzYsMTQgQEAgc3Rh
dGljIEF0a1JvbGUgYXRrUm9sZShBY2Nlc3NpYmlsaXR5Um9sZSByb2xlKQogICAgIGNhc2UgTGlz
dEl0ZW1Sb2xlOgogICAgIGNhc2UgTGlzdEJveE9wdGlvblJvbGU6CiAgICAgICAgIHJldHVybiBB
VEtfUk9MRV9MSVNUX0lURU07CisgICAgY2FzZSBQYXJhZ3JhcGhSb2xlOgorICAgICAgICByZXR1
cm4gQVRLX1JPTEVfUEFSQUdSQVBIOworICAgIGNhc2UgTGFiZWxSb2xlOgorICAgICAgICByZXR1
cm4gQVRLX1JPTEVfTEFCRUw7CisgICAgY2FzZSBEaXZSb2xlOgorICAgICAgICByZXR1cm4gQVRL
X1JPTEVfU0VDVElPTjsKKyAgICBjYXNlIEZvcm1Sb2xlOgorICAgICAgICByZXR1cm4gQVRLX1JP
TEVfRk9STTsKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gQVRLX1JPTEVfVU5LTk9XTjsK
ICAgICB9CkBAIC00ODMsMzEgKzQ5MSwxNiBAQCBzdGF0aWMgQXRrUm9sZSBhdGtSb2xlKEFjY2Vz
c2liaWxpdHlSb2xlIHJvbGUpCiAKIHN0YXRpYyBBdGtSb2xlIHdlYmtpdF9hY2Nlc3NpYmxlX2dl
dF9yb2xlKEF0a09iamVjdCogb2JqZWN0KQogewotICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIGF4
T2JqZWN0ID0gY29yZShvYmplY3QpOworICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIGNvcmVPYmpl
Y3QgPSBjb3JlKG9iamVjdCk7CiAKLSAgICBpZiAoIWF4T2JqZWN0KQorICAgIGlmICghY29yZU9i
amVjdCkKICAgICAgICAgcmV0dXJuIEFUS19ST0xFX1VOS05PV047CiAKLSAgICAvLyBXZWJDb3Jl
IGRvZXMgbm90IGtub3cgYWJvdXQgcGFyYWdyYXBoIHJvbGUsIGxhYmVsIHJvbGUsIG9yIHNlY3Rp
b24gcm9sZQotICAgIGlmIChheE9iamVjdC0+aXNBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0KCkp
IHsKLSAgICAgICAgTm9kZSogbm9kZSA9IHN0YXRpY19jYXN0PEFjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3QqPihheE9iamVjdCktPnJlbmRlcmVyKCktPm5vZGUoKTsKLSAgICAgICAgaWYgKG5vZGUp
IHsKLSAgICAgICAgICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6cFRhZykpCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIEFUS19ST0xFX1BBUkFHUkFQSDsKLSAgICAgICAgICAgIGlm
IChub2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6bGFiZWxUYWcpKQotICAgICAgICAgICAgICAg
IHJldHVybiBBVEtfUk9MRV9MQUJFTDsKLSAgICAgICAgICAgIGlmIChub2RlLT5oYXNUYWdOYW1l
KEhUTUxOYW1lczo6ZGl2VGFnKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gQVRLX1JPTEVfU0VD
VElPTjsKLSAgICAgICAgICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6Zm9ybVRh
ZykpCi0gICAgICAgICAgICAgICAgcmV0dXJuIEFUS19ST0xFX0ZPUk07Ci0gICAgICAgIH0KLSAg
ICB9Ci0KICAgICAvLyBOb3RlOiBXaHkgZG9lc24ndCBXZWJDb3JlIGhhdmUgYSBwYXNzd29yZCBm
aWVsZCBmb3IgdGhpcwotICAgIGlmIChheE9iamVjdC0+aXNQYXNzd29yZEZpZWxkKCkpCisgICAg
aWYgKGNvcmVPYmplY3QtPmlzUGFzc3dvcmRGaWVsZCgpKQogICAgICAgICByZXR1cm4gQVRLX1JP
TEVfUEFTU1dPUkRfVEVYVDsKIAotICAgIHJldHVybiBhdGtSb2xlKGF4T2JqZWN0LT5yb2xlVmFs
dWUoKSk7CisgICAgcmV0dXJuIGF0a1JvbGUoY29yZU9iamVjdC0+cm9sZVZhbHVlKCkpOwogfQog
CiBzdGF0aWMgYm9vbCBzZWxlY3Rpb25CZWxvbmdzVG9PYmplY3QoQWNjZXNzaWJpbGl0eU9iamVj
dCogY29yZU9iamVjdCwgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uKQotLSAKMS43LjQKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>87375</attachid>
            <date>2011-03-29 11:35:30 -0700</date>
            <delta_ts>2011-03-30 07:50:27 -0700</delta_ts>
            <desc>Patch proposal + Layout test</desc>
            <filename>0001-2011-03-29-Mario-Sanchez-Prada-msanchez-igalia.com.patch</filename>
            <type>text/plain</type>
            <size>12928</size>
            <attacher name="Mario Sanchez Prada">mario</attacher>
            
              <data encoding="base64">RnJvbSBiYmJhMWQwNDg3ZThlZjhkZjc2MWM5NTQ1ZGY2NDg2N2UxZThkNGExIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJpbyBTYW5jaGV6IFByYWRhIDxtc2FuY2hlekBpZ2FsaWEu
Y29tPgpEYXRlOiBUdWUsIDI5IE1hciAyMDExIDExOjUzOjU2ICswMjAwClN1YmplY3Q6IFtQQVRD
SF0gMjAxMS0wMy0yOSAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+
CgogICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKICAgICAgICBBWDogR1RLOiBB
UklBIHJvbGUgaXMgbm90IHJlc3BlY3RlZCBvbiA8cD4gPGxhYmVsPiA8ZGl2PiBhbmQgPGZvcm0+
CiAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ3NjM2Cgog
ICAgICAgIERlZmluZSBuZXcgcm9sZXMgaW4gV2ViQ29yZSBhbmQgbWFwIHRoZW0gdG8gQVRLIGFj
Y29yZGluZ2x5LgoKICAgICAgICBUZXN0OiBwbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9hcmlh
LXJvbGVzLXVuaWdub3JlZC5odG1sCgogICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5T2JqZWN0Lmg6IEFkZGVkIG5ldyByb2xlcyB0bwogICAgICAgIHJlcHJlc2VudCBwYXJhZ3Jh
cGhzLCBsYWJlbHMsIGZvcm1zIGFuZCBkaXYgc2VjdGlvbnMuCiAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwOgogICAgICAgIChXZWJDb3JlOjpBY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpkZXRlcm1pbmVBY2Nlc3NpYmlsaXR5Um9sZSk6CiAgICAg
ICAgUmV0dXJuIFBhcmFncmFwaFJvbGUsIExhYmVsUm9sZSwgRm9ybVJvbGUgYW5kIERpdlJvbGUg
d2hlbiBuZWVkZWQuCiAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlckF0ay5jcHA6CiAgICAgICAgKGF0a1JvbGUpOiBNYXAgbmV3IFdlYkNvcmUgcm9s
ZXMgdG8gQVRLIFJvbGVzLgogICAgICAgICh3ZWJraXRfYWNjZXNzaWJsZV9nZXRfcm9sZSk6IFJl
bW92ZSBjb2RlIHRvIGRlZmluZSByb2xlcyBmb3IKICAgICAgICBwYXJhZ3JhcGhzLCBsYWJlbHMs
IGZvcm1zIGFuZCBkaXZzIGJhc2VkIG9uIG5vZGUncyB0YWcgbmFtZS4KCiAgICAgICAgVXBkYXRl
IG1hcHBpbmdzIGZvciB0aGUgTWFjIHBsYXRmb3JtLgoKICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
bWFjL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyLm1tOgogICAgICAgIChjcmVhdGVBY2Nlc3Np
YmlsaXR5Um9sZU1hcCk6IEFkZCBleHBsaWNpdCBtYXBwaW5ncyBmcm9tIHRoZSBuZXcKICAgICAg
ICByb2xlcyBpbnRyb2R1Y2VkIHRvIE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZS4KCjIwMTEtMDMt
MjkgIE1hcmlvIFNhbmNoZXogUHJhZGEgIDxtc2FuY2hlekBpZ2FsaWEuY29tPgoKICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiAgICAgICAgQVg6IEdUSzogQVJJQSByb2xlIGlz
IG5vdCByZXNwZWN0ZWQgb24gPHA+IDxsYWJlbD4gPGRpdj4gYW5kIDxmb3JtPgogICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NzYzNgoKICAgICAgICBBZGRl
ZCBuZXcgbGF5b3V0IHRlc3QgdG8gY2hlY2sgdGhhdCByb2xlcyBhcmUgY29ycmVjdCBpbiBHVEsu
CgogICAgICAgICogcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJpYS1yb2xlcy11bmlnbm9y
ZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KICAgICAgICAqIHBsYXRmb3JtL2d0ay9hY2Nlc3NpYmls
aXR5L2FyaWEtcm9sZXMtdW5pZ25vcmVkLmh0bWw6IEFkZGVkLgotLS0KIExheW91dFRlc3RzL0No
YW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMiArKysrCiAuLi4vYXJp
YS1yb2xlcy11bmlnbm9yZWQtZXhwZWN0ZWQudHh0ICAgICAgICAgICAgICB8ICAgMjYgKysrKysr
KysKIC4uLi9ndGsvYWNjZXNzaWJpbGl0eS9hcmlhLXJvbGVzLXVuaWdub3JlZC5odG1sICAgIHwg
ICA2NyArKysrKysrKysrKysrKysrKysrKwogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCAgIDI3ICsrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCB8ICAgIDQgKwogLi4uL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgICAgfCAgIDE0ICsrKystCiAuLi4vZ3Rr
L0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcCAgICAgICAgICB8ICAgMzEgKysrKy0t
LS0tLQogLi4uL21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlci5tbSAgICAgICAgICAgICAg
fCAgICA2ICsrLQogOCBmaWxlcyBjaGFuZ2VkLCAxNjYgaW5zZXJ0aW9ucygrKSwgMjEgZGVsZXRp
b25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vz
c2liaWxpdHkvYXJpYS1yb2xlcy11bmlnbm9yZWQtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAx
MDA2NDQgTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJpYS1yb2xlcy11
bmlnbm9yZWQuaHRtbAoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzYWIyN2U5Li40MmZiODUxIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTUgQEAKKzIwMTEtMDMtMjkgIE1hcmlvIFNhbmNoZXogUHJhZGEgIDxtc2FuY2hlekBpZ2FsaWEu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFY
OiBHVEs6IEFSSUEgcm9sZSBpcyBub3QgcmVzcGVjdGVkIG9uIDxwPiA8bGFiZWw+IDxkaXY+IGFu
ZCA8Zm9ybT4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTQ3NjM2CisKKyAgICAgICAgQWRkZWQgbmV3IGxheW91dCB0ZXN0IHRvIGNoZWNrIHRoYXQgcm9s
ZXMgYXJlIGNvcnJlY3QgaW4gR1RLLgorCisgICAgICAgICogcGxhdGZvcm0vZ3RrL2FjY2Vzc2li
aWxpdHkvYXJpYS1yb2xlcy11bmlnbm9yZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9hcmlhLXJvbGVzLXVuaWdub3JlZC5odG1sOiBB
ZGRlZC4KKwogMjAxMS0wMy0yOCAgWXV0YSBLaXRhbXVyYSAgPHl1dGFrQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBVbnJldmlld2VkLiBZZXQgYW5vdGhlciB0ZXN0IHJlc3VsdCBmaXggZm9yIGZh
c3QvYmxvY2tmbG93L2ZhbGxiYWNrLW9yaWVudGF0aW9uLWV4cGVjdGVkLmh0bWwuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9hcmlhLXJvbGVzLXVu
aWdub3JlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJp
bGl0eS9hcmlhLXJvbGVzLXVuaWdub3JlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uMzI1NTE2NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2FyaWEtcm9sZXMtdW5pZ25vcmVkLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDI2IEBACitTaW1wbGUgcGFyYWdyYXBoCisKK0EgcGFyYWdyYXBoIHBy
ZXRlbmRpbmcgdG8gYmUgYSB0YWJsZQorCitBIGxhYmVsIFdobyBzYWlkIGxhYmVsPyBJdCdzIGEg
aGVhZGluZyEKK0EgZm9ybSB3aXRoIGEgYnV0dG9uIENsaWNrIG1lIQorSnVzdCBhIGJ1dHRvbiBD
bGljayBtZSEKK0p1c3Qgc29tZSB0ZXh0IGluc2lkZSBhIGRpdgorVGhpcyBkaXYgaXMgY29udGFp
bnMgYSB0ZXh0Ym94IChhbiBlbnRyeSkKK1RoaXMgdGVzdHMgdGhhdCBBUklBIHJvbGVzIGFyZSBu
b3QgaWdub3JlZCBmb3IgJ3AnLCdsYWJlbCcsICdmb3JtJyBhbmQgJ2RpdicgZWxlbWVudHMKKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZWxlbWVudC5yb2xlIGlzICdBWFJv
bGU6IHBhcmFncmFwaCcKK1BBU1MgZWxlbWVudC5yb2xlIGlzICdBWFJvbGU6IHRhYmxlJworUEFT
UyBlbGVtZW50LnJvbGUgaXMgJ0FYUm9sZTogbGFiZWwnCitQQVNTIGVsZW1lbnQucm9sZSBpcyAn
QVhSb2xlOiBoZWFkaW5nJworUEFTUyBlbGVtZW50LnJvbGUgaXMgJ0FYUm9sZTogZm9ybScKK1BB
U1MgZWxlbWVudC5yb2xlIGlzICdBWFJvbGU6IHB1c2ggYnV0dG9uJworUEFTUyBlbGVtZW50LnJv
bGUgaXMgJ0FYUm9sZTogcGFuZWwnCitQQVNTIGVsZW1lbnQucm9sZSBpcyAnQVhSb2xlOiBlbnRy
eScKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9hcmlhLXJv
bGVzLXVuaWdub3JlZC5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxp
dHkvYXJpYS1yb2xlcy11bmlnbm9yZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi4wNDM3MzRmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL2FjY2Vzc2liaWxpdHkvYXJpYS1yb2xlcy11bmlnbm9yZWQuaHRtbApAQCAtMCwwICsxLDY3
IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRt
bD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0PgordmFyIHN1Y2Nlc3NmdWxseVBhcnNl
ZCA9IGZhbHNlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgaWQ9ImJvZHki
PgorCis8cD5TaW1wbGUgcGFyYWdyYXBoPC9wPgorPHAgcm9sZT0iZ3JpZCI+QSBwYXJhZ3JhcGgg
cHJldGVuZGluZyB0byBiZSBhIHRhYmxlPC9wPgorCis8bGFiZWw+QSBsYWJlbDwvbGFiZWw+Cis8
bGFiZWwgcm9sZT0iaGVhZGluZyI+V2hvIHNhaWQgbGFiZWw/IEl0J3MgYSBoZWFkaW5nITwvbGFi
ZWw+CisKKzxmb3JtPkEgZm9ybSB3aXRoIGEgYnV0dG9uIDxidXR0b24gbmFtZT0iYnV0dG9uIiB2
YWx1ZT0iQnV0dG9uIj5DbGljayBtZSE8L2J1dHRvbj48L2Zvcm0+Cis8Zm9ybSByb2xlPSJidXR0
b24iPkp1c3QgYSBidXR0b24gPGJ1dHRvbiBuYW1lPSJidXR0b24iIHZhbHVlPSJCdXR0b24iPkNs
aWNrIG1lITwvYnV0dG9uPjwvZm9ybT4KKworPGRpdj5KdXN0IHNvbWUgdGV4dCBpbnNpZGUgYSBk
aXY8L2Zvcm0+Cis8ZGl2IHJvbGU9InRleHRib3giPlRoaXMgZGl2IGlzIGNvbnRhaW5zIGEgdGV4
dGJveCAoYW4gZW50cnkpPC9kaXY+CisKKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdGhh
dCBBUklBIHJvbGVzIGFyZSBub3QgaWdub3JlZCBmb3IgJ3AnLCdsYWJlbCcsICdmb3JtJyBhbmQg
J2RpdicgZWxlbWVudHMiKTsKKworaWYgKHdpbmRvdy5sYXlvdXRDb250cm9sbGVyKSB7CisgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworfQorCitpZiAod2luZG93LmFjY2Vz
c2liaWxpdHlDb250cm9sbGVyKSB7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJvZHki
KS5mb2N1cygpOworICAgIHZhciB3ZWJBcmVhID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9j
dXNlZEVsZW1lbnQ7CisKKyAgICAvLyBQYXJhZ3JhcGhzCisgICAgdmFyIGVsZW1lbnQgPSB3ZWJB
cmVhLmNoaWxkQXRJbmRleCgwKTsKKyAgICBzaG91bGRCZSgiZWxlbWVudC5yb2xlIiwgIidBWFJv
bGU6IHBhcmFncmFwaCciKTsKKyAgICBlbGVtZW50ID0gd2ViQXJlYS5jaGlsZEF0SW5kZXgoMSk7
CisgICAgc2hvdWxkQmUoImVsZW1lbnQucm9sZSIsICInQVhSb2xlOiB0YWJsZSciKTsKKworICAg
IC8vIExhYmVscyBhcmUgZXhwb3NlZCBhcyBpbnNpZGUgYSBwYW5lbAorICAgIHZhciBsYWJlbHNQ
YW5lbCA9IHdlYkFyZWEuY2hpbGRBdEluZGV4KDIpOworICAgIGVsZW1lbnQgPSBsYWJlbHNQYW5l
bC5jaGlsZEF0SW5kZXgoMCk7CisgICAgc2hvdWxkQmUoImVsZW1lbnQucm9sZSIsICInQVhSb2xl
OiBsYWJlbCciKTsKKyAgICBlbGVtZW50ID0gbGFiZWxzUGFuZWwuY2hpbGRBdEluZGV4KDEpOwor
ICAgIHNob3VsZEJlKCJlbGVtZW50LnJvbGUiLCAiJ0FYUm9sZTogaGVhZGluZyciKTsKKworICAg
IC8vIEZvcm1zCisgICAgZWxlbWVudCA9IHdlYkFyZWEuY2hpbGRBdEluZGV4KDMpOworICAgIHNo
b3VsZEJlKCJlbGVtZW50LnJvbGUiLCAiJ0FYUm9sZTogZm9ybSciKTsKKyAgICBlbGVtZW50ID0g
d2ViQXJlYS5jaGlsZEF0SW5kZXgoNCk7CisgICAgc2hvdWxkQmUoImVsZW1lbnQucm9sZSIsICIn
QVhSb2xlOiBwdXNoIGJ1dHRvbiciKTsKKworICAgIC8vIERpdnMKKyAgICBlbGVtZW50ID0gd2Vi
QXJlYS5jaGlsZEF0SW5kZXgoNSk7CisgICAgc2hvdWxkQmUoImVsZW1lbnQucm9sZSIsICInQVhS
b2xlOiBwYW5lbCciKTsKKyAgICBlbGVtZW50ID0gd2ViQXJlYS5jaGlsZEF0SW5kZXgoNik7Cisg
ICAgc2hvdWxkQmUoImVsZW1lbnQucm9sZSIsICInQVhSb2xlOiBlbnRyeSciKTsKK30KKworc3Vj
Y2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggZDBhMDc5MS4uNjA2ODZiYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDMwIEBACisyMDExLTAzLTI5ICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdh
bGlhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBWDogR1RLOiBBUklBIHJvbGUgaXMgbm90IHJlc3BlY3RlZCBvbiA8cD4gPGxhYmVsPiA8ZGl2
PiBhbmQgPGZvcm0+CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00NzYzNgorCisgICAgICAgIERlZmluZSBuZXcgcm9sZXMgaW4gV2ViQ29yZSBhbmQgbWFw
IHRoZW0gdG8gQVRLIGFjY29yZGluZ2x5LgorCisgICAgICAgIFRlc3Q6IHBsYXRmb3JtL2d0ay9h
Y2Nlc3NpYmlsaXR5L2FyaWEtcm9sZXMtdW5pZ25vcmVkLmh0bWwKKworICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oOiBBZGRlZCBuZXcgcm9sZXMgdG8KKyAgICAg
ICAgcmVwcmVzZW50IHBhcmFncmFwaHMsIGxhYmVscywgZm9ybXMgYW5kIGRpdiBzZWN0aW9ucy4K
KyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZGV0ZXJtaW5lQWNj
ZXNzaWJpbGl0eVJvbGUpOgorICAgICAgICBSZXR1cm4gUGFyYWdyYXBoUm9sZSwgTGFiZWxSb2xl
LCBGb3JtUm9sZSBhbmQgRGl2Um9sZSB3aGVuIG5lZWRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHA6CisgICAgICAgIChhdGtS
b2xlKTogTWFwIG5ldyBXZWJDb3JlIHJvbGVzIHRvIEFUSyBSb2xlcy4KKyAgICAgICAgKHdlYmtp
dF9hY2Nlc3NpYmxlX2dldF9yb2xlKTogUmVtb3ZlIGNvZGUgdG8gZGVmaW5lIHJvbGVzIGZvcgor
ICAgICAgICBwYXJhZ3JhcGhzLCBsYWJlbHMsIGZvcm1zIGFuZCBkaXZzIGJhc2VkIG9uIG5vZGUn
cyB0YWcgbmFtZS4KKworICAgICAgICBVcGRhdGUgbWFwcGluZ3MgZm9yIHRoZSBNYWMgcGxhdGZv
cm0uCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0V3Jh
cHBlci5tbToKKyAgICAgICAgKGNyZWF0ZUFjY2Vzc2liaWxpdHlSb2xlTWFwKTogQWRkIGV4cGxp
Y2l0IG1hcHBpbmdzIGZyb20gdGhlIG5ldworICAgICAgICByb2xlcyBpbnRyb2R1Y2VkIHRvIE5T
QWNjZXNzaWJpbGl0eUdyb3VwUm9sZS4KKwogMjAxMS0wMy0yOCAgUGF2ZWwgUG9kaXZpbG92ICA8
cG9kaXZpbG92QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBZdXJ5IFNlbWlr
aGF0c2t5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlPYmplY3QuaAppbmRleCA0Njg3Y2FlLi4yZDI3ZTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaApAQCAtMTcxLDYgKzE3MSwx
MCBAQCBlbnVtIEFjY2Vzc2liaWxpdHlSb2xlIHsKICAgICBMaXN0SXRlbVJvbGUsCiAgICAgTWVu
dUxpc3RQb3B1cFJvbGUsCiAgICAgTWVudUxpc3RPcHRpb25Sb2xlLAorICAgIFBhcmFncmFwaFJv
bGUsCisgICAgTGFiZWxSb2xlLAorICAgIERpdlJvbGUsCisgICAgRm9ybVJvbGUsCiAKICAgICAv
LyBBUklBIEdyb3VwaW5nIHJvbGVzCiAgICAgTGFuZG1hcmtBcHBsaWNhdGlvblJvbGUsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0LmNwcAppbmRleCA2ZDIwM2E5Li4xZDBmZTVjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5j
cHAKQEAgLTMwODksNyArMzA4OSwxOSBAQCBBY2Nlc3NpYmlsaXR5Um9sZSBBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0OjpkZXRlcm1pbmVBY2Nlc3NpYmlsaXR5Um9sZSgpCiAgICAgICAgIHJldHVy
biBTcGxpdHRlclJvbGU7CiAjZW5kaWYKIAotICAgIGlmIChtX3JlbmRlcmVyLT5pc0Jsb2NrRmxv
dygpIHx8IChub2RlICYmIG5vZGUtPmhhc1RhZ05hbWUobGFiZWxUYWcpKSkKKyAgICBpZiAobm9k
ZSAmJiBub2RlLT5oYXNUYWdOYW1lKHBUYWcpKQorICAgICAgICByZXR1cm4gUGFyYWdyYXBoUm9s
ZTsKKworICAgIGlmIChub2RlICYmIG5vZGUtPmhhc1RhZ05hbWUobGFiZWxUYWcpKQorICAgICAg
ICByZXR1cm4gTGFiZWxSb2xlOworCisgICAgaWYgKG5vZGUgJiYgbm9kZS0+aGFzVGFnTmFtZShk
aXZUYWcpKQorICAgICAgICByZXR1cm4gRGl2Um9sZTsKKworICAgIGlmIChub2RlICYmIG5vZGUt
Pmhhc1RhZ05hbWUoZm9ybVRhZykpCisgICAgICAgIHJldHVybiBGb3JtUm9sZTsKKworICAgIGlm
IChtX3JlbmRlcmVyLT5pc0Jsb2NrRmxvdygpKQogICAgICAgICByZXR1cm4gR3JvdXBSb2xlOwog
ICAgIAogICAgIC8vIElmIHRoZSBlbGVtZW50IGRvZXMgbm90IGhhdmUgcm9sZSwgYnV0IGl0IGhh
cyBBUklBIGF0dHJpYnV0ZXMsIGFjY2Vzc2liaWxpdHkgc2hvdWxkIGZhbGxiYWNrIHRvIGV4cG9z
aW5nIGl0IGFzIGEgZ3JvdXAuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHAKaW5k
ZXggZTZjMjdlNy4uN2RmZjJlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQXRrLmNw
cApAQCAtNDc2LDYgKzQ3NiwxNCBAQCBzdGF0aWMgQXRrUm9sZSBhdGtSb2xlKEFjY2Vzc2liaWxp
dHlSb2xlIHJvbGUpCiAgICAgY2FzZSBMaXN0SXRlbVJvbGU6CiAgICAgY2FzZSBMaXN0Qm94T3B0
aW9uUm9sZToKICAgICAgICAgcmV0dXJuIEFUS19ST0xFX0xJU1RfSVRFTTsKKyAgICBjYXNlIFBh
cmFncmFwaFJvbGU6CisgICAgICAgIHJldHVybiBBVEtfUk9MRV9QQVJBR1JBUEg7CisgICAgY2Fz
ZSBMYWJlbFJvbGU6CisgICAgICAgIHJldHVybiBBVEtfUk9MRV9MQUJFTDsKKyAgICBjYXNlIERp
dlJvbGU6CisgICAgICAgIHJldHVybiBBVEtfUk9MRV9TRUNUSU9OOworICAgIGNhc2UgRm9ybVJv
bGU6CisgICAgICAgIHJldHVybiBBVEtfUk9MRV9GT1JNOwogICAgIGRlZmF1bHQ6CiAgICAgICAg
IHJldHVybiBBVEtfUk9MRV9VTktOT1dOOwogICAgIH0KQEAgLTQ4MywzMSArNDkxLDE2IEBAIHN0
YXRpYyBBdGtSb2xlIGF0a1JvbGUoQWNjZXNzaWJpbGl0eVJvbGUgcm9sZSkKIAogc3RhdGljIEF0
a1JvbGUgd2Via2l0X2FjY2Vzc2libGVfZ2V0X3JvbGUoQXRrT2JqZWN0KiBvYmplY3QpCiB7Ci0g
ICAgQWNjZXNzaWJpbGl0eU9iamVjdCogYXhPYmplY3QgPSBjb3JlKG9iamVjdCk7CisgICAgQWNj
ZXNzaWJpbGl0eU9iamVjdCogY29yZU9iamVjdCA9IGNvcmUob2JqZWN0KTsKIAotICAgIGlmICgh
YXhPYmplY3QpCisgICAgaWYgKCFjb3JlT2JqZWN0KQogICAgICAgICByZXR1cm4gQVRLX1JPTEVf
VU5LTk9XTjsKIAotICAgIC8vIFdlYkNvcmUgZG9lcyBub3Qga25vdyBhYm91dCBwYXJhZ3JhcGgg
cm9sZSwgbGFiZWwgcm9sZSwgb3Igc2VjdGlvbiByb2xlCi0gICAgaWYgKGF4T2JqZWN0LT5pc0Fj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QoKSkgewotICAgICAgICBOb2RlKiBub2RlID0gc3RhdGlj
X2Nhc3Q8QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCo+KGF4T2JqZWN0KS0+cmVuZGVyZXIoKS0+
bm9kZSgpOwotICAgICAgICBpZiAobm9kZSkgewotICAgICAgICAgICAgaWYgKG5vZGUtPmhhc1Rh
Z05hbWUoSFRNTE5hbWVzOjpwVGFnKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gQVRLX1JPTEVf
UEFSQUdSQVBIOwotICAgICAgICAgICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjps
YWJlbFRhZykpCi0gICAgICAgICAgICAgICAgcmV0dXJuIEFUS19ST0xFX0xBQkVMOwotICAgICAg
ICAgICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjpkaXZUYWcpKQotICAgICAgICAg
ICAgICAgIHJldHVybiBBVEtfUk9MRV9TRUNUSU9OOwotICAgICAgICAgICAgaWYgKG5vZGUtPmhh
c1RhZ05hbWUoSFRNTE5hbWVzOjpmb3JtVGFnKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gQVRL
X1JPTEVfRk9STTsKLSAgICAgICAgfQotICAgIH0KLQogICAgIC8vIE5vdGU6IFdoeSBkb2Vzbid0
IFdlYkNvcmUgaGF2ZSBhIHBhc3N3b3JkIGZpZWxkIGZvciB0aGlzCi0gICAgaWYgKGF4T2JqZWN0
LT5pc1Bhc3N3b3JkRmllbGQoKSkKKyAgICBpZiAoY29yZU9iamVjdC0+aXNQYXNzd29yZEZpZWxk
KCkpCiAgICAgICAgIHJldHVybiBBVEtfUk9MRV9QQVNTV09SRF9URVhUOwogCi0gICAgcmV0dXJu
IGF0a1JvbGUoYXhPYmplY3QtPnJvbGVWYWx1ZSgpKTsKKyAgICByZXR1cm4gYXRrUm9sZShjb3Jl
T2JqZWN0LT5yb2xlVmFsdWUoKSk7CiB9CiAKIHN0YXRpYyBib29sIHNlbGVjdGlvbkJlbG9uZ3NU
b09iamVjdChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBjb3JlT2JqZWN0LCBWaXNpYmxlU2VsZWN0aW9u
JiBzZWxlY3Rpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21h
Yy9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlci5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvbWFjL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyLm1tCmluZGV4IGE0YzhkOGEuLmMw
ZGQ3OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvbWFjL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyLm1tCkBAIC0xMjg3LDcgKzEyODcsMTEg
QEAgc3RhdGljIGNvbnN0IEFjY2Vzc2liaWxpdHlSb2xlTWFwJiBjcmVhdGVBY2Nlc3NpYmlsaXR5
Um9sZU1hcCgpCiAgICAgICAgIHsgVGFiUGFuZWxSb2xlLCBOU0FjY2Vzc2liaWxpdHlHcm91cFJv
bGUgfSwKICAgICAgICAgeyBUcmVlUm9sZSwgTlNBY2Nlc3NpYmlsaXR5T3V0bGluZVJvbGUgfSwK
ICAgICAgICAgeyBUcmVlSXRlbVJvbGUsIE5TQWNjZXNzaWJpbGl0eVJvd1JvbGUgfSwKLSAgICAg
ICAgeyBMaXN0SXRlbVJvbGUsIE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9CisgICAgICAgIHsg
TGlzdEl0ZW1Sb2xlLCBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKKyAgICAgICAgeyBQYXJh
Z3JhcGhSb2xlLCBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUgfSwKKyAgICAgICAgeyBMYWJlbFJv
bGUsIE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9LAorICAgICAgICB7IERpdlJvbGUsIE5TQWNj
ZXNzaWJpbGl0eUdyb3VwUm9sZSB9LAorICAgICAgICB7IEZvcm1Sb2xlLCBOU0FjY2Vzc2liaWxp
dHlHcm91cFJvbGUgfQogICAgIH07CiAgICAgQWNjZXNzaWJpbGl0eVJvbGVNYXAmIHJvbGVNYXAg
PSAqbmV3IEFjY2Vzc2liaWxpdHlSb2xlTWFwOwogICAgIAotLSAKMS43LjQKCg==
</data>
<flag name="review"
          id="79799"
          type_id="1"
          status="+"
          setter="cfleizach"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>87535</attachid>
            <date>2011-03-30 07:50:27 -0700</date>
            <delta_ts>2011-03-30 08:51:05 -0700</delta_ts>
            <desc>Patch proposal + Layout test</desc>
            <filename>0001-2011-03-30-Mario-Sanchez-Prada-msanchez-igalia.com.patch</filename>
            <type>text/plain</type>
            <size>20102</size>
            <attacher name="Mario Sanchez Prada">mario</attacher>
            
              <data encoding="base64">RnJvbSA2YWQ4NTY1YmE4MDg1OTIzZjk5OGE0MTljZDkwYzAwZTU2ZDlhOGNmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBtYXJpb0B3ZWJraXQub3JnIDxtYXJpb0B3ZWJraXQub3JnQDI2
OGY0NWNjLWNkMDktMDQxMC1hYjNjLWQ1MjY5MWI0ZGJmYz4KRGF0ZTogVHVlLCAyOSBNYXIgMjAx
MSAxODo0Mzo0NCArMDAwMApTdWJqZWN0OiBbUEFUQ0hdIDIwMTEtMDMtMzAgIE1hcmlvIFNhbmNo
ZXogUHJhZGEgIDxtc2FuY2hlekBpZ2FsaWEuY29tPgoKICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KCiAgICAgICAgQVg6IEdUSzogQVJJQSByb2xlIGlzIG5vdCByZXNwZWN0ZWQg
b24gPHA+IDxsYWJlbD4gPGRpdj4gYW5kIDxmb3JtPgogICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NzYzNgoKICAgICAgICBEZWZpbmUgbmV3IHJvbGVzIGlu
IFdlYkNvcmUgYW5kIG1hcCB0aGVtIHRvIEFUSyBhY2NvcmRpbmdseS4KCiAgICAgICAgVGVzdDog
cGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJpYS1yb2xlcy11bmlnbm9yZWQuaHRtbAoKICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oOiBBZGRlZCBuZXcgcm9s
ZXMgdG8KICAgICAgICByZXByZXNlbnQgcGFyYWdyYXBocywgbGFiZWxzLCBmb3JtcyBhbmQgZGl2
IHNlY3Rpb25zLgogICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0LmNwcDoKICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZGV0
ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUpOgogICAgICAgIFJldHVybiBQYXJhZ3JhcGhSb2xlLCBM
YWJlbFJvbGUsIEZvcm1Sb2xlIGFuZCBEaXZSb2xlIHdoZW4gbmVlZGVkCiAgICAgICAgZm9yIHRo
ZSBHVEsgcGxhdGZvcm0gb25seS4KICAgICAgICAqIGFjY2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2li
aWxpdHlPYmplY3RBdGsuY3BwOgogICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0
OjphbGxvd3NUZXh0UmFuZ2VzKTogQ29uc2lkZXIgdGhlIG5ldwogICAgICAgIHJvbGVzIG5vdyB0
aGF0IHRob3NlIGtpbmQgb2Ygbm9kZXMgd29uJ3QgcmV0dXJuIHRydWUgdG8gaXNHcm91cCgpLgog
ICAgICAgICogYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsu
Y3BwOgogICAgICAgIChhdGtSb2xlKTogTWFwIG5ldyBXZWJDb3JlIHJvbGVzIHRvIEFUSyBSb2xl
cy4KICAgICAgICAod2Via2l0X2FjY2Vzc2libGVfZ2V0X3JvbGUpOiBSZW1vdmUgY29kZSB0byBk
ZWZpbmUgcm9sZXMgZm9yCiAgICAgICAgcGFyYWdyYXBocywgbGFiZWxzLCBmb3JtcyBhbmQgZGl2
cyBiYXNlZCBvbiBub2RlJ3MgdGFnIG5hbWUuCgogICAgICAgIFVwZGF0ZSBtYXBwaW5ncyBmb3Ig
dGhlIE1hYyBwbGF0Zm9ybS4KCiAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlci5tbToKICAgICAgICAoY3JlYXRlQWNjZXNzaWJpbGl0eVJvbGVNYXAp
OiBBZGQgZXhwbGljaXQgbWFwcGluZ3MgZnJvbSB0aGUgbmV3CiAgICAgICAgcm9sZXMgaW50cm9k
dWNlZCB0byBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUuCgoyMDExLTAzLTMwICBNYXJpbyBTYW5j
aGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4KCiAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCgogICAgICAgIEFYOiBHVEs6IEFSSUEgcm9sZSBpcyBub3QgcmVzcGVjdGVk
IG9uIDxwPiA8bGFiZWw+IDxkaXY+IGFuZCA8Zm9ybT4KICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDc2MzYKCiAgICAgICAgRHVwbGljYXRlIG5ldyBpbnRl
cm5hbCBXZWJDb3JlIHJvbGVzIGluIHRoZSBDaHJvbWl1bSBwb3J0LgoKICAgICAgICAqIHB1Ymxp
Yy9XZWJBY2Nlc3NpYmlsaXR5Um9sZS5oOiBVcGRhdGUgZW51bWVyYXRpb24KICAgICAgICBXZWJB
Y2Nlc3NpYmlsaXR5Um9sZSB0byByZWZsZWN0IG5ld2x5IGFkZGVkIHJvbGVzIGluIFdlYkNvcmUu
CiAgICAgICAgKiBzcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHA6IEFkZGVkIG5ldyBhc3NlcnRp
b25zLgoKMjAxMS0wMy0zMCAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5j
b20+CgogICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKICAgICAgICBBZGRlZCBu
ZXcgbGF5b3V0IHRlc3QgdG8gY2hlY2sgdGhhdCByb2xlcyBhcmUgY29ycmVjdCBpbiBHVEsuCgog
ICAgICAgIEFYOiBHVEs6IEFSSUEgcm9sZSBpcyBub3QgcmVzcGVjdGVkIG9uIDxwPiA8bGFiZWw+
IDxkaXY+IGFuZCA8Zm9ybT4KICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDc2MzYKCiAgICAgICAgQWRkZWQgbmV3IGxheW91dCB0ZXN0IHRvIGNoZWNrIHRo
YXQgcm9sZXMgYXJlIGNvcnJlY3QgaW4gR1RLLgoKICAgICAgICAqIHBsYXRmb3JtL2d0ay9hY2Nl
c3NpYmlsaXR5L2FyaWEtcm9sZXMtdW5pZ25vcmVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCiAgICAg
ICAgKiBwbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9hcmlhLXJvbGVzLXVuaWdub3JlZC5odG1s
OiBBZGRlZC4KLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8ICAgMjYgKysrKysrKysKIC4uLi9hcmlhLXJvbGVzLXVuaWdub3JlZC1leHBlY3Rl
ZC50eHQgICAgICAgICAgICAgIHwgICAyNiArKysrKysrKwogLi4uL2d0ay9hY2Nlc3NpYmlsaXR5
L2FyaWEtcm9sZXMtdW5pZ25vcmVkLmh0bWwgICAgfCAgIDY3ICsrKysrKysrKysrKysrKysrKysr
CiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg
NTggKysrKysrKysrKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU9iamVjdC5oIHwgICAgNCArCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0LmNwcCAgICB8ICAgMTcgKysrKystCiAuLi4vYWNjZXNzaWJpbGl0eS9ndGsv
QWNjZXNzaWJpbGl0eU9iamVjdEF0ay5jcHAgICB8ICAgIDggKystCiAuLi4vZ3RrL0FjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcCAgICAgICAgICB8ICAgMzEgKysrKy0tLS0tLQogLi4u
L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlci5tbSAgICAgICAgICAgICAgfCAgICA2ICsr
LQogU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgfCAg
IDI1ICsrKysrKysKIC4uLi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkFjY2Vzc2liaWxpdHlS
b2xlLmggIHwgICAgNSArKwogU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hp
bmdFbnVtcy5jcHAgfCAgICA0ICsKIDEyIGZpbGVzIGNoYW5nZWQsIDI1NSBpbnNlcnRpb25zKCsp
LCAyMiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9ndGsvYWNjZXNzaWJpbGl0eS9hcmlhLXJvbGVzLXVuaWdub3JlZC1leHBlY3RlZC50eHQKIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9h
cmlhLXJvbGVzLXVuaWdub3JlZC5odG1sCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDViYTM0MDguLjRlYTBmNDEgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyOSBAQAorMjAxMS0wMy0zMCAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5j
aGV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRkZWQgbmV3IGxheW91dCB0ZXN0IHRvIGNoZWNrIHRoYXQgcm9sZXMgYXJlIGNv
cnJlY3QgaW4gR1RLLgorCisgICAgICAgIEFYOiBHVEs6IEFSSUEgcm9sZSBpcyBub3QgcmVzcGVj
dGVkIG9uIDxwPiA8bGFiZWw+IDxkaXY+IGFuZCA8Zm9ybT4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ3NjM2CisKKyAgICAgICAgQWRkZWQgbmV3IGxh
eW91dCB0ZXN0IHRvIGNoZWNrIHRoYXQgcm9sZXMgYXJlIGNvcnJlY3QgaW4gR1RLLgorCisgICAg
ICAgICogcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJpYS1yb2xlcy11bmlnbm9yZWQtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9h
cmlhLXJvbGVzLXVuaWdub3JlZC5odG1sOiBBZGRlZC4KKworMjAxMS0wMy0yOSAgTWFyaW8gU2Fu
Y2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Q2hyaXMgRmxlaXphY2guCisKKyAgICAgICAgQVg6IEdUSzogQVJJQSByb2xlIGlzIG5vdCByZXNw
ZWN0ZWQgb24gPHA+IDxsYWJlbD4gPGRpdj4gYW5kIDxmb3JtPgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDc2MzYKKworICAgICAgICBBZGRlZCBuZXcg
bGF5b3V0IHRlc3QgdG8gY2hlY2sgdGhhdCByb2xlcyBhcmUgY29ycmVjdCBpbiBHVEsuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9hcmlhLXJvbGVzLXVuaWdub3JlZC1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5
L2FyaWEtcm9sZXMtdW5pZ25vcmVkLmh0bWw6IEFkZGVkLgorCiAyMDExLTAzLTMwICBMZXZpIFdl
aW50cmF1YiAgPGxldml3QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBSeW9z
dWtlIE5pd2EuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJp
bGl0eS9hcmlhLXJvbGVzLXVuaWdub3JlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9hcmlhLXJvbGVzLXVuaWdub3JlZC1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzI1NTE2NAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2FyaWEtcm9sZXMt
dW5pZ25vcmVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI2IEBACitTaW1wbGUgcGFyYWdyYXBo
CisKK0EgcGFyYWdyYXBoIHByZXRlbmRpbmcgdG8gYmUgYSB0YWJsZQorCitBIGxhYmVsIFdobyBz
YWlkIGxhYmVsPyBJdCdzIGEgaGVhZGluZyEKK0EgZm9ybSB3aXRoIGEgYnV0dG9uIENsaWNrIG1l
IQorSnVzdCBhIGJ1dHRvbiBDbGljayBtZSEKK0p1c3Qgc29tZSB0ZXh0IGluc2lkZSBhIGRpdgor
VGhpcyBkaXYgaXMgY29udGFpbnMgYSB0ZXh0Ym94IChhbiBlbnRyeSkKK1RoaXMgdGVzdHMgdGhh
dCBBUklBIHJvbGVzIGFyZSBub3QgaWdub3JlZCBmb3IgJ3AnLCdsYWJlbCcsICdmb3JtJyBhbmQg
J2RpdicgZWxlbWVudHMKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZWxl
bWVudC5yb2xlIGlzICdBWFJvbGU6IHBhcmFncmFwaCcKK1BBU1MgZWxlbWVudC5yb2xlIGlzICdB
WFJvbGU6IHRhYmxlJworUEFTUyBlbGVtZW50LnJvbGUgaXMgJ0FYUm9sZTogbGFiZWwnCitQQVNT
IGVsZW1lbnQucm9sZSBpcyAnQVhSb2xlOiBoZWFkaW5nJworUEFTUyBlbGVtZW50LnJvbGUgaXMg
J0FYUm9sZTogZm9ybScKK1BBU1MgZWxlbWVudC5yb2xlIGlzICdBWFJvbGU6IHB1c2ggYnV0dG9u
JworUEFTUyBlbGVtZW50LnJvbGUgaXMgJ0FYUm9sZTogcGFuZWwnCitQQVNTIGVsZW1lbnQucm9s
ZSBpcyAnQVhSb2xlOiBlbnRyeScKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNj
ZXNzaWJpbGl0eS9hcmlhLXJvbGVzLXVuaWdub3JlZC5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJpYS1yb2xlcy11bmlnbm9yZWQuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNDM3MzRmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvYXJpYS1yb2xlcy11bmlnbm9yZWQu
aHRtbApAQCAtMCwwICsxLDY3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RU
RCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVm
PSIuLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0PgordmFy
IHN1Y2Nlc3NmdWxseVBhcnNlZCA9IGZhbHNlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHkgaWQ9ImJvZHkiPgorCis8cD5TaW1wbGUgcGFyYWdyYXBoPC9wPgorPHAgcm9sZT0i
Z3JpZCI+QSBwYXJhZ3JhcGggcHJldGVuZGluZyB0byBiZSBhIHRhYmxlPC9wPgorCis8bGFiZWw+
QSBsYWJlbDwvbGFiZWw+Cis8bGFiZWwgcm9sZT0iaGVhZGluZyI+V2hvIHNhaWQgbGFiZWw/IEl0
J3MgYSBoZWFkaW5nITwvbGFiZWw+CisKKzxmb3JtPkEgZm9ybSB3aXRoIGEgYnV0dG9uIDxidXR0
b24gbmFtZT0iYnV0dG9uIiB2YWx1ZT0iQnV0dG9uIj5DbGljayBtZSE8L2J1dHRvbj48L2Zvcm0+
Cis8Zm9ybSByb2xlPSJidXR0b24iPkp1c3QgYSBidXR0b24gPGJ1dHRvbiBuYW1lPSJidXR0b24i
IHZhbHVlPSJCdXR0b24iPkNsaWNrIG1lITwvYnV0dG9uPjwvZm9ybT4KKworPGRpdj5KdXN0IHNv
bWUgdGV4dCBpbnNpZGUgYSBkaXY8L2Zvcm0+Cis8ZGl2IHJvbGU9InRleHRib3giPlRoaXMgZGl2
IGlzIGNvbnRhaW5zIGEgdGV4dGJveCAoYW4gZW50cnkpPC9kaXY+CisKKzxwIGlkPSJkZXNjcmlw
dGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgorZGVzY3JpcHRp
b24oIlRoaXMgdGVzdHMgdGhhdCBBUklBIHJvbGVzIGFyZSBub3QgaWdub3JlZCBmb3IgJ3AnLCds
YWJlbCcsICdmb3JtJyBhbmQgJ2RpdicgZWxlbWVudHMiKTsKKworaWYgKHdpbmRvdy5sYXlvdXRD
b250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworfQor
CitpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CisgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImJvZHkiKS5mb2N1cygpOworICAgIHZhciB3ZWJBcmVhID0gYWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQ7CisKKyAgICAvLyBQYXJhZ3JhcGhzCisgICAg
dmFyIGVsZW1lbnQgPSB3ZWJBcmVhLmNoaWxkQXRJbmRleCgwKTsKKyAgICBzaG91bGRCZSgiZWxl
bWVudC5yb2xlIiwgIidBWFJvbGU6IHBhcmFncmFwaCciKTsKKyAgICBlbGVtZW50ID0gd2ViQXJl
YS5jaGlsZEF0SW5kZXgoMSk7CisgICAgc2hvdWxkQmUoImVsZW1lbnQucm9sZSIsICInQVhSb2xl
OiB0YWJsZSciKTsKKworICAgIC8vIExhYmVscyBhcmUgZXhwb3NlZCBhcyBpbnNpZGUgYSBwYW5l
bAorICAgIHZhciBsYWJlbHNQYW5lbCA9IHdlYkFyZWEuY2hpbGRBdEluZGV4KDIpOworICAgIGVs
ZW1lbnQgPSBsYWJlbHNQYW5lbC5jaGlsZEF0SW5kZXgoMCk7CisgICAgc2hvdWxkQmUoImVsZW1l
bnQucm9sZSIsICInQVhSb2xlOiBsYWJlbCciKTsKKyAgICBlbGVtZW50ID0gbGFiZWxzUGFuZWwu
Y2hpbGRBdEluZGV4KDEpOworICAgIHNob3VsZEJlKCJlbGVtZW50LnJvbGUiLCAiJ0FYUm9sZTog
aGVhZGluZyciKTsKKworICAgIC8vIEZvcm1zCisgICAgZWxlbWVudCA9IHdlYkFyZWEuY2hpbGRB
dEluZGV4KDMpOworICAgIHNob3VsZEJlKCJlbGVtZW50LnJvbGUiLCAiJ0FYUm9sZTogZm9ybSci
KTsKKyAgICBlbGVtZW50ID0gd2ViQXJlYS5jaGlsZEF0SW5kZXgoNCk7CisgICAgc2hvdWxkQmUo
ImVsZW1lbnQucm9sZSIsICInQVhSb2xlOiBwdXNoIGJ1dHRvbiciKTsKKworICAgIC8vIERpdnMK
KyAgICBlbGVtZW50ID0gd2ViQXJlYS5jaGlsZEF0SW5kZXgoNSk7CisgICAgc2hvdWxkQmUoImVs
ZW1lbnQucm9sZSIsICInQVhSb2xlOiBwYW5lbCciKTsKKyAgICBlbGVtZW50ID0gd2ViQXJlYS5j
aGlsZEF0SW5kZXgoNik7CisgICAgc2hvdWxkQmUoImVsZW1lbnQucm9sZSIsICInQVhSb2xlOiBl
bnRyeSciKTsKK30KKworc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjAzZWEwZS4uZTBiYjJhZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDExLTAzLTMwICBNYXJpbyBTYW5jaGV6IFBy
YWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBWDogR1RLOiBBUklBIHJvbGUgaXMgbm90IHJlc3BlY3RlZCBv
biA8cD4gPGxhYmVsPiA8ZGl2PiBhbmQgPGZvcm0+CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NzYzNgorCisgICAgICAgIERlZmluZSBuZXcgcm9sZXMg
aW4gV2ViQ29yZSBhbmQgbWFwIHRoZW0gdG8gQVRLIGFjY29yZGluZ2x5LgorCisgICAgICAgIFRl
c3Q6IHBsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2FyaWEtcm9sZXMtdW5pZ25vcmVkLmh0bWwK
KworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oOiBBZGRlZCBu
ZXcgcm9sZXMgdG8KKyAgICAgICAgcmVwcmVzZW50IHBhcmFncmFwaHMsIGxhYmVscywgZm9ybXMg
YW5kIGRpdiBzZWN0aW9ucy4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdDo6ZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUpOgorICAgICAgICBSZXR1cm4gUGFyYWdy
YXBoUm9sZSwgTGFiZWxSb2xlLCBGb3JtUm9sZSBhbmQgRGl2Um9sZSB3aGVuIG5lZWRlZAorICAg
ICAgICBmb3IgdGhlIEdUSyBwbGF0Zm9ybSBvbmx5LgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
Z3RrL0FjY2Vzc2liaWxpdHlPYmplY3RBdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNz
aWJpbGl0eU9iamVjdDo6YWxsb3dzVGV4dFJhbmdlcyk6IENvbnNpZGVyIHRoZSBuZXcKKyAgICAg
ICAgcm9sZXMgbm93IHRoYXQgdGhvc2Uga2luZCBvZiBub2RlcyB3b24ndCByZXR1cm4gdHJ1ZSB0
byBpc0dyb3VwKCkuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNzaWJpbGl0eU9i
amVjdFdyYXBwZXJBdGsuY3BwOgorICAgICAgICAoYXRrUm9sZSk6IE1hcCBuZXcgV2ViQ29yZSBy
b2xlcyB0byBBVEsgUm9sZXMuCisgICAgICAgICh3ZWJraXRfYWNjZXNzaWJsZV9nZXRfcm9sZSk6
IFJlbW92ZSBjb2RlIHRvIGRlZmluZSByb2xlcyBmb3IKKyAgICAgICAgcGFyYWdyYXBocywgbGFi
ZWxzLCBmb3JtcyBhbmQgZGl2cyBiYXNlZCBvbiBub2RlJ3MgdGFnIG5hbWUuCisKKyAgICAgICAg
VXBkYXRlIG1hcHBpbmdzIGZvciB0aGUgTWFjIHBsYXRmb3JtLgorCisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIubW06CisgICAgICAgIChjcmVh
dGVBY2Nlc3NpYmlsaXR5Um9sZU1hcCk6IEFkZCBleHBsaWNpdCBtYXBwaW5ncyBmcm9tIHRoZSBu
ZXcKKyAgICAgICAgcm9sZXMgaW50cm9kdWNlZCB0byBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGUu
CisKKzIwMTEtMDMtMjkgIE1hcmlvIFNhbmNoZXogUHJhZGEgIDxtc2FuY2hlekBpZ2FsaWEuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IENocmlzIEZsZWl6YWNoLgorCisgICAgICAgIEFYOiBH
VEs6IEFSSUEgcm9sZSBpcyBub3QgcmVzcGVjdGVkIG9uIDxwPiA8bGFiZWw+IDxkaXY+IGFuZCA8
Zm9ybT4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ3
NjM2CisKKyAgICAgICAgRGVmaW5lIG5ldyByb2xlcyBpbiBXZWJDb3JlIGFuZCBtYXAgdGhlbSB0
byBBVEsgYWNjb3JkaW5nbHkuCisKKyAgICAgICAgVGVzdDogcGxhdGZvcm0vZ3RrL2FjY2Vzc2li
aWxpdHkvYXJpYS1yb2xlcy11bmlnbm9yZWQuaHRtbAorCisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0Lmg6IEFkZGVkIG5ldyByb2xlcyB0bworICAgICAgICByZXBy
ZXNlbnQgcGFyYWdyYXBocywgbGFiZWxzLCBmb3JtcyBhbmQgZGl2IHNlY3Rpb25zLgorICAgICAg
ICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpkZXRlcm1pbmVBY2Nlc3NpYmls
aXR5Um9sZSk6CisgICAgICAgIFJldHVybiBQYXJhZ3JhcGhSb2xlLCBMYWJlbFJvbGUsIEZvcm1S
b2xlIGFuZCBEaXZSb2xlIHdoZW4gbmVlZGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvZ3Rr
L0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcDoKKyAgICAgICAgKGF0a1JvbGUpOiBN
YXAgbmV3IFdlYkNvcmUgcm9sZXMgdG8gQVRLIFJvbGVzLgorICAgICAgICAod2Via2l0X2FjY2Vz
c2libGVfZ2V0X3JvbGUpOiBSZW1vdmUgY29kZSB0byBkZWZpbmUgcm9sZXMgZm9yCisgICAgICAg
IHBhcmFncmFwaHMsIGxhYmVscywgZm9ybXMgYW5kIGRpdnMgYmFzZWQgb24gbm9kZSdzIHRhZyBu
YW1lLgorCisgICAgICAgIFVwZGF0ZSBtYXBwaW5ncyBmb3IgdGhlIE1hYyBwbGF0Zm9ybS4KKwor
ICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyLm1t
OgorICAgICAgICAoY3JlYXRlQWNjZXNzaWJpbGl0eVJvbGVNYXApOiBBZGQgZXhwbGljaXQgbWFw
cGluZ3MgZnJvbSB0aGUgbmV3CisgICAgICAgIHJvbGVzIGludHJvZHVjZWQgdG8gTlNBY2Nlc3Np
YmlsaXR5R3JvdXBSb2xlLgorCiAyMDExLTAzLTMwICBFdmFuIE1hcnRpbiAgPGV2YW5AY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFJ5b3N1a2UgTml3YS4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKaW5kZXggNDY4
N2NhZS4uMmQyN2UzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0LmgKQEAgLTE3MSw2ICsxNzEsMTAgQEAgZW51bSBBY2Nlc3NpYmls
aXR5Um9sZSB7CiAgICAgTGlzdEl0ZW1Sb2xlLAogICAgIE1lbnVMaXN0UG9wdXBSb2xlLAogICAg
IE1lbnVMaXN0T3B0aW9uUm9sZSwKKyAgICBQYXJhZ3JhcGhSb2xlLAorICAgIExhYmVsUm9sZSwK
KyAgICBEaXZSb2xlLAorICAgIEZvcm1Sb2xlLAogCiAgICAgLy8gQVJJQSBHcm91cGluZyByb2xl
cwogICAgIExhbmRtYXJrQXBwbGljYXRpb25Sb2xlLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKaW5kZXgg
NmQyMDNhOS4uOWI1NGE2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCkBAIC0zMDg3LDkgKzMwODcs
MjQgQEAgQWNjZXNzaWJpbGl0eVJvbGUgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZGV0ZXJt
aW5lQWNjZXNzaWJpbGl0eVJvbGUoKQogI2lmIFBMQVRGT1JNKEdUSykKICAgICBpZiAobV9yZW5k
ZXJlci0+aXNIUigpKQogICAgICAgICByZXR1cm4gU3BsaXR0ZXJSb2xlOworCisgICAgaWYgKG5v
ZGUgJiYgbm9kZS0+aGFzVGFnTmFtZShwVGFnKSkKKyAgICAgICAgcmV0dXJuIFBhcmFncmFwaFJv
bGU7CisKKyAgICBpZiAobm9kZSAmJiBub2RlLT5oYXNUYWdOYW1lKGxhYmVsVGFnKSkKKyAgICAg
ICAgcmV0dXJuIExhYmVsUm9sZTsKKworICAgIGlmIChub2RlICYmIG5vZGUtPmhhc1RhZ05hbWUo
ZGl2VGFnKSkKKyAgICAgICAgcmV0dXJuIERpdlJvbGU7CisKKyAgICBpZiAobm9kZSAmJiBub2Rl
LT5oYXNUYWdOYW1lKGZvcm1UYWcpKQorICAgICAgICByZXR1cm4gRm9ybVJvbGU7CisjZWxzZQor
ICAgIGlmIChub2RlICYmIG5vZGUtPmhhc1RhZ05hbWUobGFiZWxUYWcpKQorICAgICAgICByZXR1
cm4gR3JvdXBSb2xlOwogI2VuZGlmCiAKLSAgICBpZiAobV9yZW5kZXJlci0+aXNCbG9ja0Zsb3co
KSB8fCAobm9kZSAmJiBub2RlLT5oYXNUYWdOYW1lKGxhYmVsVGFnKSkpCisgICAgaWYgKG1fcmVu
ZGVyZXItPmlzQmxvY2tGbG93KCkpCiAgICAgICAgIHJldHVybiBHcm91cFJvbGU7CiAgICAgCiAg
ICAgLy8gSWYgdGhlIGVsZW1lbnQgZG9lcyBub3QgaGF2ZSByb2xlLCBidXQgaXQgaGFzIEFSSUEg
YXR0cmlidXRlcywgYWNjZXNzaWJpbGl0eSBzaG91bGQgZmFsbGJhY2sgdG8gZXhwb3NpbmcgaXQg
YXMgYSBncm91cC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3Rr
L0FjY2Vzc2liaWxpdHlPYmplY3RBdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdEF0ay5jcHAKaW5kZXggYjNlZjViOC4uODUwYmNiZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNzaWJpbGl0
eU9iamVjdEF0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvQWNj
ZXNzaWJpbGl0eU9iamVjdEF0ay5jcHAKQEAgLTk4LDcgKzk4LDEzIEBAIHZvaWQgQWNjZXNzaWJp
bGl0eU9iamVjdDo6c2V0V3JhcHBlcihBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciogd3JhcHBl
cikKIAogYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjphbGxvd3NUZXh0UmFuZ2VzKCkgY29uc3QK
IHsKLSAgICByZXR1cm4gaXNUZXh0Q29udHJvbCgpIHx8IGlzV2ViQXJlYSgpIHx8IGlzR3JvdXAo
KSB8fCBpc0xpbmsoKSB8fCBpc0hlYWRpbmcoKSB8fCBpc0xpc3RJdGVtKCk7CisgICAgLy8gQ2hl
Y2sgdHlwZSBmb3IgdGhlIEFjY2Vzc2liaWxpdHlPYmplY3QuCisgICAgaWYgKGlzVGV4dENvbnRy
b2woKSB8fCBpc1dlYkFyZWEoKSB8fCBpc0dyb3VwKCkgfHwgaXNMaW5rKCkgfHwgaXNIZWFkaW5n
KCkgfHwgaXNMaXN0SXRlbSgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIC8vIENoZWNr
IHJvbGVzIGFzIHRoZSBsYXN0IGZhbGxiYWNrIG1lY2hhbmlzbS4KKyAgICBBY2Nlc3NpYmlsaXR5
Um9sZSByb2xlID0gcm9sZVZhbHVlKCk7CisgICAgcmV0dXJuIHJvbGUgPT0gUGFyYWdyYXBoUm9s
ZSB8fCByb2xlID09IExhYmVsUm9sZSB8fCByb2xlID09IERpdlJvbGUgfHwgcm9sZSA9PSBGb3Jt
Um9sZTsKIH0KIAogdW5zaWduZWQgQWNjZXNzaWJpbGl0eU9iamVjdDo6Z2V0TGVuZ3RoRm9yVGV4
dFJhbmdlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
Z3RrL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvZ3RrL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQXRrLmNwcAppbmRleCBl
NmMyN2U3Li43ZGZmMmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L2d0ay9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckF0ay5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9ndGsvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJBdGsuY3BwCkBA
IC00NzYsNiArNDc2LDE0IEBAIHN0YXRpYyBBdGtSb2xlIGF0a1JvbGUoQWNjZXNzaWJpbGl0eVJv
bGUgcm9sZSkKICAgICBjYXNlIExpc3RJdGVtUm9sZToKICAgICBjYXNlIExpc3RCb3hPcHRpb25S
b2xlOgogICAgICAgICByZXR1cm4gQVRLX1JPTEVfTElTVF9JVEVNOworICAgIGNhc2UgUGFyYWdy
YXBoUm9sZToKKyAgICAgICAgcmV0dXJuIEFUS19ST0xFX1BBUkFHUkFQSDsKKyAgICBjYXNlIExh
YmVsUm9sZToKKyAgICAgICAgcmV0dXJuIEFUS19ST0xFX0xBQkVMOworICAgIGNhc2UgRGl2Um9s
ZToKKyAgICAgICAgcmV0dXJuIEFUS19ST0xFX1NFQ1RJT047CisgICAgY2FzZSBGb3JtUm9sZToK
KyAgICAgICAgcmV0dXJuIEFUS19ST0xFX0ZPUk07CiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0
dXJuIEFUS19ST0xFX1VOS05PV047CiAgICAgfQpAQCAtNDgzLDMxICs0OTEsMTYgQEAgc3RhdGlj
IEF0a1JvbGUgYXRrUm9sZShBY2Nlc3NpYmlsaXR5Um9sZSByb2xlKQogCiBzdGF0aWMgQXRrUm9s
ZSB3ZWJraXRfYWNjZXNzaWJsZV9nZXRfcm9sZShBdGtPYmplY3QqIG9iamVjdCkKIHsKLSAgICBB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiBheE9iamVjdCA9IGNvcmUob2JqZWN0KTsKKyAgICBBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBjb3JlT2JqZWN0ID0gY29yZShvYmplY3QpOwogCi0gICAgaWYgKCFheE9i
amVjdCkKKyAgICBpZiAoIWNvcmVPYmplY3QpCiAgICAgICAgIHJldHVybiBBVEtfUk9MRV9VTktO
T1dOOwogCi0gICAgLy8gV2ViQ29yZSBkb2VzIG5vdCBrbm93IGFib3V0IHBhcmFncmFwaCByb2xl
LCBsYWJlbCByb2xlLCBvciBzZWN0aW9uIHJvbGUKLSAgICBpZiAoYXhPYmplY3QtPmlzQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdCgpKSB7Ci0gICAgICAgIE5vZGUqIG5vZGUgPSBzdGF0aWNfY2Fz
dDxBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Kj4oYXhPYmplY3QpLT5yZW5kZXJlcigpLT5ub2Rl
KCk7Ci0gICAgICAgIGlmIChub2RlKSB7Ci0gICAgICAgICAgICBpZiAobm9kZS0+aGFzVGFnTmFt
ZShIVE1MTmFtZXM6OnBUYWcpKQotICAgICAgICAgICAgICAgIHJldHVybiBBVEtfUk9MRV9QQVJB
R1JBUEg7Ci0gICAgICAgICAgICBpZiAobm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmxhYmVs
VGFnKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gQVRLX1JPTEVfTEFCRUw7Ci0gICAgICAgICAg
ICBpZiAobm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmRpdlRhZykpCi0gICAgICAgICAgICAg
ICAgcmV0dXJuIEFUS19ST0xFX1NFQ1RJT047Ci0gICAgICAgICAgICBpZiAobm9kZS0+aGFzVGFn
TmFtZShIVE1MTmFtZXM6OmZvcm1UYWcpKQotICAgICAgICAgICAgICAgIHJldHVybiBBVEtfUk9M
RV9GT1JNOwotICAgICAgICB9Ci0gICAgfQotCiAgICAgLy8gTm90ZTogV2h5IGRvZXNuJ3QgV2Vi
Q29yZSBoYXZlIGEgcGFzc3dvcmQgZmllbGQgZm9yIHRoaXMKLSAgICBpZiAoYXhPYmplY3QtPmlz
UGFzc3dvcmRGaWVsZCgpKQorICAgIGlmIChjb3JlT2JqZWN0LT5pc1Bhc3N3b3JkRmllbGQoKSkK
ICAgICAgICAgcmV0dXJuIEFUS19ST0xFX1BBU1NXT1JEX1RFWFQ7CiAKLSAgICByZXR1cm4gYXRr
Um9sZShheE9iamVjdC0+cm9sZVZhbHVlKCkpOworICAgIHJldHVybiBhdGtSb2xlKGNvcmVPYmpl
Y3QtPnJvbGVWYWx1ZSgpKTsKIH0KIAogc3RhdGljIGJvb2wgc2VsZWN0aW9uQmVsb25nc1RvT2Jq
ZWN0KEFjY2Vzc2liaWxpdHlPYmplY3QqIGNvcmVPYmplY3QsIFZpc2libGVTZWxlY3Rpb24mIHNl
bGVjdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0Fj
Y2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIubW0KaW5kZXggYTRjOGQ4YS4uYzBkZDc5
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJp
bGl0eU9iamVjdFdyYXBwZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9t
YWMvQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIubW0KQEAgLTEyODcsNyArMTI4NywxMSBAQCBz
dGF0aWMgY29uc3QgQWNjZXNzaWJpbGl0eVJvbGVNYXAmIGNyZWF0ZUFjY2Vzc2liaWxpdHlSb2xl
TWFwKCkKICAgICAgICAgeyBUYWJQYW5lbFJvbGUsIE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9
LAogICAgICAgICB7IFRyZWVSb2xlLCBOU0FjY2Vzc2liaWxpdHlPdXRsaW5lUm9sZSB9LAogICAg
ICAgICB7IFRyZWVJdGVtUm9sZSwgTlNBY2Nlc3NpYmlsaXR5Um93Um9sZSB9LAotICAgICAgICB7
IExpc3RJdGVtUm9sZSwgTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0KKyAgICAgICAgeyBMaXN0
SXRlbVJvbGUsIE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9LAorICAgICAgICB7IFBhcmFncmFw
aFJvbGUsIE5TQWNjZXNzaWJpbGl0eUdyb3VwUm9sZSB9LAorICAgICAgICB7IExhYmVsUm9sZSwg
TlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlIH0sCisgICAgICAgIHsgRGl2Um9sZSwgTlNBY2Nlc3Np
YmlsaXR5R3JvdXBSb2xlIH0sCisgICAgICAgIHsgRm9ybVJvbGUsIE5TQWNjZXNzaWJpbGl0eUdy
b3VwUm9sZSB9CiAgICAgfTsKICAgICBBY2Nlc3NpYmlsaXR5Um9sZU1hcCYgcm9sZU1hcCA9ICpu
ZXcgQWNjZXNzaWJpbGl0eVJvbGVNYXA7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmlu
ZGV4IGFmYTRkNjEuLjNlNDc2MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjggQEAKKzIwMTEtMDMtMzAgIE1hcmlvIFNhbmNoZXogUHJhZGEgIDxtc2FuY2hlekBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFYOiBHVEs6IEFSSUEgcm9sZSBpcyBub3QgcmVzcGVjdGVkIG9uIDxwPiA8bGFiZWw+IDxkaXY+
IGFuZCA8Zm9ybT4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTQ3NjM2CisKKyAgICAgICAgRHVwbGljYXRlIG5ldyBpbnRlcm5hbCBXZWJDb3JlIHJvbGVz
IGluIHRoZSBDaHJvbWl1bSBwb3J0LgorCisgICAgICAgICogcHVibGljL1dlYkFjY2Vzc2liaWxp
dHlSb2xlLmg6IFVwZGF0ZSBlbnVtZXJhdGlvbgorICAgICAgICBXZWJBY2Nlc3NpYmlsaXR5Um9s
ZSB0byByZWZsZWN0IG5ld2x5IGFkZGVkIHJvbGVzIGluIFdlYkNvcmUuCisgICAgICAgICogc3Jj
L0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwOiBBZGRlZCBuZXcgYXNzZXJ0aW9ucy4KKworMjAxMS0w
My0yOSAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KKworICAgICAgICBSRUdSRVNTSU9OKHI4MjI5NSk6
IFRoaXMgcGF0Y2ggZG9lcyBub3QgY29tcGlsZSBvbiBDaHJvbWl1bSAoUmVxdWVzdGVkIGJ5IGFi
YXJ0aHxnYXJkZW5lciBvbiAjd2Via2l0KS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTU3Mzc3CisKKyAgICAgICAgRml4IGJ1aWxkIGVycm9ycyBvbiBD
aHJvbWl1bSBib3RzLgorCisgICAgICAgICogcHVibGljL1dlYkFjY2Vzc2liaWxpdHlSb2xlLmg6
IFVwZGF0ZSB0byByZWZsZWN0IG5ld2x5IGFkZGVkIHJvbGVzIGluIFdlYkNvcmUuCisgICAgICAg
ICogc3JjL0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwOiBEaXR0by4KKwogMjAxMS0wMy0yOSAgU2hl
cmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZp
ZXdlZCwgcm9sbGluZyBvdXQgcjgyMjkzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViQWNjZXNzaWJpbGl0eVJvbGUuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYkFjY2Vzc2liaWxpdHlSb2xlLmgKaW5kZXggYjA3NDhhNy4uMzkxYjNlMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQWNjZXNzaWJpbGl0
eVJvbGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJBY2Nlc3NpYmls
aXR5Um9sZS5oCkBAIC0xMTYsNiArMTE2LDExIEBAIGVudW0gV2ViQWNjZXNzaWJpbGl0eVJvbGUg
ewogICAgIFdlYkFjY2Vzc2liaWxpdHlSb2xlTWVudUxpc3RQb3B1cCwKICAgICBXZWJBY2Nlc3Np
YmlsaXR5Um9sZU1lbnVMaXN0T3B0aW9uLAogCisgICAgV2ViQWNjZXNzaWJpbGl0eVJvbGVQYXJh
Z3JhcGgsCisgICAgV2ViQWNjZXNzaWJpbGl0eVJvbGVMYWJlbCwKKyAgICBXZWJBY2Nlc3NpYmls
aXR5Um9sZURpdiwKKyAgICBXZWJBY2Nlc3NpYmlsaXR5Um9sZUZvcm0sCisKICAgICBXZWJBY2Nl
c3NpYmlsaXR5Um9sZUxhbmRtYXJrQXBwbGljYXRpb24sCiAgICAgV2ViQWNjZXNzaWJpbGl0eVJv
bGVMYW5kbWFya0Jhbm5lciwKICAgICBXZWJBY2Nlc3NpYmlsaXR5Um9sZUxhbmRtYXJrQ29tcGxl
bWVudGFyeSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2VydE1h
dGNoaW5nRW51bXMuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hp
bmdFbnVtcy5jcHAKaW5kZXggMmFiNzgzZi4uN2JhYWY4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAKQEAgLTE3Myw2ICsxNzMs
MTAgQEAgQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJBY2Nlc3NpYmlsaXR5Um9sZVRy
ZWVJdGVtUm9sZSwgVHJlZUl0ZW1Sb2xlKTsKIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0o
V2ViQWNjZXNzaWJpbGl0eVJvbGVEaXJlY3RvcnksIERpcmVjdG9yeVJvbGUpOwogQ09NUElMRV9B
U1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJBY2Nlc3NpYmlsaXR5Um9sZUVkaXRhYmxlVGV4dCwgRWRp
dGFibGVUZXh0Um9sZSk7CiBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYkFjY2Vzc2li
aWxpdHlSb2xlTGlzdEl0ZW0sIExpc3RJdGVtUm9sZSk7CitDT01QSUxFX0FTU0VSVF9NQVRDSElO
R19FTlVNKFdlYkFjY2Vzc2liaWxpdHlSb2xlUGFyYWdyYXBoLCBQYXJhZ3JhcGhSb2xlKTsKK0NP
TVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViQWNjZXNzaWJpbGl0eVJvbGVMYWJlbCwgTGFi
ZWxSb2xlKTsKK0NPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViQWNjZXNzaWJpbGl0eVJv
bGVEaXYsIERpdlJvbGUpOworQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJBY2Nlc3Np
YmlsaXR5Um9sZUZvcm0sIEZvcm1Sb2xlKTsKIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0o
V2ViQWNjZXNzaWJpbGl0eVJvbGVMYW5kbWFya0FwcGxpY2F0aW9uLCBMYW5kbWFya0FwcGxpY2F0
aW9uUm9sZSk7CiBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYkFjY2Vzc2liaWxpdHlS
b2xlTGFuZG1hcmtCYW5uZXIsIExhbmRtYXJrQmFubmVyUm9sZSk7CiBDT01QSUxFX0FTU0VSVF9N
QVRDSElOR19FTlVNKFdlYkFjY2Vzc2liaWxpdHlSb2xlTGFuZG1hcmtDb21wbGVtZW50YXJ5LCBM
YW5kbWFya0NvbXBsZW1lbnRhcnlSb2xlKTsKLS0gCjEuNy40Cgo=
</data>
<flag name="review"
          id="79959"
          type_id="1"
          status="+"
          setter="cfleizach"
    />
          </attachment>
      

    </bug>

</bugzilla>