<?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>53146</bug_id>
          
          <creation_ts>2011-01-25 16:50:30 -0800</creation_ts>
          <short_desc>[GTK] Combo boxes should emit object:selection-changed even when collapsed</short_desc>
          <delta_ts>2011-03-03 02:10:32 -0800</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>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>54116</dependson>
    
    <dependson>54185</dependson>
    
    <dependson>54198</dependson>
          <blocked>25531</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Joanmarie Diggs">jdiggs</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>apinheiro</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>mario</cc>
    
    <cc>pnormand</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>340023</commentid>
    <comment_count>0</comment_count>
    <who name="Joanmarie Diggs">jdiggs</who>
    <bug_when>2011-01-25 16:50:30 -0800</bug_when>
    <thetext>Currently when you arrow around in a combo box without first expanding it, the combo box emits object:state-changed:focused; but it does not emit object:selection-changed.

This suggests to an AT that focus used to be elsewhere (i.e. not on the combo box) and that the currently-selected item has not changed.

Yes, an AT *could* figure out this quirk and present the newly-selected item, because WebKitGtk&apos;s AtkSelection implementation seems to be doing the right thing regardless of whether or not the combo box is expanded. (Thanks!) BUT it would be much nicer if the combo box also announced the selection change. :-)

(Mario: If this is a hassle for some reason, lemme know so that I can handle it in Orca.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>349048</commentid>
    <comment_count>1</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-02-10 07:08:11 -0800</bug_when>
    <thetext>Joanie, just to keep you posted on this: I&apos;m currently working on this stuff and I even have a patch for it, but couldn&apos;t propose it yet since I found some things missing in DRT that would be required to implement a proper test (see bug 54116 and bug 54185).

I&apos;ll upload the patch + layout test here as soon as those get fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>349052</commentid>
    <comment_count>2</comment_count>
      <attachid>81978</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-02-10 07:30:34 -0800</bug_when>
    <thetext>Created attachment 81978
Patch proposal + Layout test

Attaching patch proposal + Layout test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>349054</commentid>
    <comment_count>3</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-02-10 07:31:45 -0800</bug_when>
    <thetext>In the attached patch, I assumed that bug 54198 was fixed, as that would impact the expected file.

Hence this patch shouldn&apos;t be applied prior to patch for bug 54198, so that&apos;s why I&apos;m setting a dependency here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>349189</commentid>
    <comment_count>4</comment_count>
      <attachid>82005</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-02-10 10:55:50 -0800</bug_when>
    <thetext>Created attachment 82005
Patch proposal + Layout test

This is the right one... need to take some fresh air</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353484</commentid>
    <comment_count>5</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-02-18 01:46:33 -0800</bug_when>
    <thetext>Committed r78979: &lt;http://trac.webkit.org/changeset/78979&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353503</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-18 02:38:32 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/78979 might have broken GTK Linux 32-bit Release
The following tests are not passing:
fast/events/popup-when-select-change.html
fast/forms/listbox-hit-test-zoomed.html
fast/forms/listbox-typeahead-greek.html
fast/forms/select-type-ahead-non-latin.html
fast/spatial-navigation/snav-single-select.html
inspector/debugger/debug-inlined-scripts.html
inspector/debugger/debugger-no-nested-pause.html
inspector/debugger/debugger-step-in.html
platform/gtk/accessibility/combo-box-collapsed-selection-changed.html
platform/gtk/fast/forms/menulist-typeahead-find.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353508</commentid>
    <comment_count>7</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-02-18 02:53:32 -0800</bug_when>
    <thetext>Reverted r78979 for reason:

causes multiple crashes on GTK

Committed r78987: &lt;http://trac.webkit.org/changeset/78987&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353532</commentid>
    <comment_count>8</comment_count>
      <attachid>82943</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-02-18 04:53:27 -0800</bug_when>
    <thetext>Created attachment 82943
Patch proposal + Layout test

(In reply to comment #7)
&gt; Reverted r78979 for reason:
&gt; 
&gt; causes multiple crashes on GTK
&gt; 
&gt; Committed r78987: &lt;http://trac.webkit.org/changeset/78987&gt;

Attaching a new version of the patch fixing that issue. The diff between the new patch and the previous one is as follows:

--- a/Source/WebCore/accessibility/gtk/AXObjectCacheAtk.cpp
+++ b/Source/WebCore/accessibility/gtk/AXObjectCacheAtk.cpp
@@ -95,10 +95,10 @@ static void notifyChildrenSelectionChange(AccessibilityObject* object)
         return;
     AccessibilityObject* item = items.at(changedItemIndex).get();
 
-    // Ensure the oldFocusedObject belongs to the same document that
+    // Ensure oldFocusedObject belongs to the same list object that
     // the current item so further comparisons make sense. Otherwise,
     // just reset oldFocusedObject so it won&apos;t be taken into account.
-    if (item &amp;&amp; oldFocusedObject &amp;&amp; item-&gt;document() != oldFocusedObject-&gt;document())
+    if (item &amp;&amp; oldFocusedObject &amp;&amp; item-&gt;parentObject() != oldFocusedObject-&gt;parentObject())
         oldFocusedObject = 0;


The problem was that at some point AccessibleObject:documentFrameView() (called internally from AccessibilityObject::document()) was crashing because of reaching and invalid object when called oldFocusedObject-&gt;document(). And this was easily avoidable by just checking that the parent object (instead of the document) for the currently selected item (&apos;item&apos;) and the old focused object are the same, which is more than enough.

Tested locally and this doesn&apos;t make other tests crash anymore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354865</commentid>
    <comment_count>9</comment_count>
      <attachid>82943</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-02-21 15:54:17 -0800</bug_when>
    <thetext>Comment on attachment 82943
Patch proposal + Layout test

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

&gt; LayoutTests/platform/gtk/accessibility/combo-box-collapsed-selection-changed.html:12
&gt; +  description(&quot;This tests that the &apos;state-changed:selected&apos; signal is emitted when arrowing through the options of a combobox while collapsed.&quot;);
&gt; +
&gt; +  if (window.layoutTestController) {

Please use 4 space indents.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355249</commentid>
    <comment_count>10</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-02-22 07:26:43 -0800</bug_when>
    <thetext>Committed r79321: &lt;http://trac.webkit.org/changeset/79321&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355371</commentid>
    <comment_count>11</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-02-22 10:25:13 -0800</bug_when>
    <thetext>Reverted r79321 for reason:

Regresses  fast/forms/listbox-typeahead-cyrillic.html and fast/spatial-navigation/snav-single-select.html on GTK

Committed r79332: &lt;http://trac.webkit.org/changeset/79332&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355382</commentid>
    <comment_count>12</comment_count>
      <attachid>82943</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-02-22 10:38:41 -0800</bug_when>
    <thetext>Comment on attachment 82943
Patch proposal + Layout test

Looks like I&apos;m doomed with this one.

Clearing flags</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>357785</commentid>
    <comment_count>13</comment_count>
      <attachid>83786</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2011-02-25 02:01:20 -0800</bug_when>
    <thetext>Created attachment 83786
Patch proposal + Layout test

Ok, here we go again... strike 3!

I&apos;ve changed the code, once again, this time to directly compare the list object currently used with the list object used before, so if they&apos;re not the same we assume further comparisons make no sense. Semantically it&apos;s the same than asking for the parentObject() of a listBox option object, but without having to call oldFocusedObject-&gt;parentObject(), which was what was causing the failure before.

I&apos;ve tested locally and couldn&apos;t reproduce crashes anymore. Also Philippe (who was able to reproduce the crashes always in a more reliable way) tested this new patch and confirms he doesn&apos;t get crashes anymore, so I hope this time will be &quot;the good one (tm)&quot;

Sorry for the hassle.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359794</commentid>
    <comment_count>14</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-03-01 04:10:05 -0800</bug_when>
    <thetext>2 tests skipped in http://trac.webkit.org/changeset/79989
are fixed by this patch. Please unskip when landing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359824</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-01 05:15:55 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/79989 might have broken Leopard Intel Release (Build)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359826</commentid>
    <comment_count>16</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-03-01 05:18:20 -0800</bug_when>
    <thetext>fast/spatial-navigation/snav-single-select-list.html is also affected, skipped in r79990

And sheriff warning above is false positive I think.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359903</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-01 08:39:02 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/79990 might have broken GTK Linux 32-bit Debug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359930</commentid>
    <comment_count>18</comment_count>
      <attachid>83786</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-03-01 09:12:20 -0800</bug_when>
    <thetext>Comment on attachment 83786
Patch proposal + Layout test

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

Please unskip tests that were previously crashing with this commit.

&gt; LayoutTests/platform/gtk/accessibility/combo-box-collapsed-selection-changed.html:26
&gt; +  description(&quot;This tests that the &apos;state-changed:selected&apos; signal is emitted when arrowing through the options of a combobox while collapsed.&quot;);
&gt; +
&gt; +  if (window.layoutTestController) {
&gt; +    layoutTestController.dumpAsText();
&gt; +  }
&gt; +
&gt; +  if (window.accessibilityController) {
&gt; +    accessibilityController.logAccessibilityEvents();
&gt; +  }
&gt; +
&gt; +  // Focus in the combobox and move around the options. The signal
&gt; +  // &apos;state-change:selected&apos; should be emitted with every change.
&gt; +  document.getElementById(&quot;combo&quot;).focus();
&gt; +  eventSender.keyDown(&quot;downArrow&quot;);
&gt; +  eventSender.keyDown(&quot;downArrow&quot;);
&gt; +  eventSender.keyDown(&quot;upArrow&quot;);
&gt; +  eventSender.keyDown(&quot;upArrow&quot;);

Please switch this to four space indent.

&gt; Source/WebCore/accessibility/gtk/AXObjectCacheAtk.cpp:106
&gt; +    // Ensure the current list object is the same than the old one so
&gt; +    // further comparisons make sense. Otherwise, just reset
&gt; +    // oldFocusedObject so it won&apos;t be taken into account.
&gt; +    if (oldListObject != listObject)
&gt;          oldFocusedObject = 0;

This approach is incorrect for dealing with multiple views, I think, but that&apos;s a bigger problem that should be addressed in some other patch. There&apos;s probably a better way to handle focus changes than caching only one oldFocusedObject statically.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>361429</commentid>
    <comment_count>19</comment_count>
      <attachid>83786</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-03-03 01:00:33 -0800</bug_when>
    <thetext>Comment on attachment 83786
Patch proposal + Layout test

Clearing flags on attachment: 83786

Committed r80214: &lt;http://trac.webkit.org/changeset/80214&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>361430</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-03-03 01:00:39 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>361455</commentid>
    <comment_count>21</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-03-03 02:10:32 -0800</bug_when>
    <thetext>Tests unskipped in http://trac.webkit.org/changeset/80216</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81978</attachid>
            <date>2011-02-10 07:30:34 -0800</date>
            <delta_ts>2011-02-10 10:55:50 -0800</delta_ts>
            <desc>Patch proposal + Layout test</desc>
            <filename>0001-2011-02-10-Mario-Sanchez-Prada-msanchez-igalia.com.patch</filename>
            <type>text/plain</type>
            <size>12460</size>
            <attacher name="Mario Sanchez Prada">mario</attacher>
            
              <data encoding="base64">RnJvbSAwNTY2YTNiYjAxYTk2ODhmNzU0YWMzN2RkNmJhNGQ2NzY5MzhjNjk4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJpbyBTYW5jaGV6IFByYWRhIDxtc2FuY2hlekBpZ2FsaWEu
Y29tPgpEYXRlOiBXZWQsIDkgRmViIDIwMTEgMTU6MTY6MzUgKzAxMDAKU3ViamVjdDogW1BBVENI
XSAyMDExLTAyLTEwICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4K
CiAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgogICAgICAgIFtHVEtdIENvbWJv
IGJveGVzIHNob3VsZCBlbWl0IG9iamVjdDpzZWxlY3Rpb24tY2hhbmdlZCBldmVuIHdoZW4gY29s
bGFwc2VkCiAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUz
MTQ2CgogICAgICAgIEVtaXQgdGhlIHNlbGVjdGlvbi1jaGFuZ2VkIHNpZ25hbHMgd2hlbiB0aGUg
bWVudSBsaXN0IHZhbHVlIGhhcyBjaGFuZ2VkCgogICAgICAgIFRlc3Q6IHBsYXRmb3JtL2d0ay9h
Y2Nlc3NpYmlsaXR5L2NvbWJvLWJveC1jb2xsYXBzZWQtc2VsZWN0aW9uLWNoYW5nZWQuaHRtbAoK
ICAgICAgICAqIGFjY2Vzc2liaWxpdHkvZ3RrL0FYT2JqZWN0Q2FjaGVBdGsuY3BwOgogICAgICAg
IChXZWJDb3JlOjpnZXRMaXN0T2JqZWN0KTogTmV3LCByZXR1cm4gdGhlIHJpZ2h0IGxpc3Qgb2Jq
ZWN0IGZvcgogICAgICAgIG1lbnUgbGlzdHMgYW5kIGxpc3QgYm94ZXMuCiAgICAgICAgKFdlYkNv
cmU6Om5vdGlmeUNoaWxkcmVuU2VsZWN0aW9uQ2hhbmdlKTogU3VwcG9ydCBtZW51IGxpc3RzLgog
ICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24p
OiBDYWxsIGZ1bmN0aW9uCiAgICAgICAgbm90aWZ5Q2hpbGRyZW5TZWxlY3Rpb25DaGFuZ2UgZm9y
IEFYTWVudUxpc3RWYWx1ZUNoYW5nZWQuCgoyMDExLTAyLTEwICBNYXJpbyBTYW5jaGV6IFByYWRh
ICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4KCiAgICAgICAgW0dUS10gQ29tYm8gYm94ZXMgc2hvdWxk
IGVtaXQgb2JqZWN0OnNlbGVjdGlvbi1jaGFuZ2VkIGV2ZW4gd2hlbiBjb2xsYXBzZWQKICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTMxNDYKCiAgICAgICAg
TmV3IEdUSy1zcGVjaWZpYyBsYXlvdXQgdGVzdCB0byBjaGVjayB0aGUgcmlnaHQgc2lnbmFscyBh
cmUgZW1pdHRlZC4KCiAgICAgICAgKiBwbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9jb21iby1i
b3gtY29sbGFwc2VkLXNlbGVjdGlvbi1jaGFuZ2VkLWV4cGVjdGVkLnR4dDogQWRkZWQuCiAgICAg
ICAgKiBwbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9jb21iby1ib3gtY29sbGFwc2VkLXNlbGVj
dGlvbi1jaGFuZ2VkLmh0bWw6IEFkZGVkLgotLS0KIExheW91dFRlc3RzL0NoYW5nZUxvZyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMCArKysrCiAuLi5iby1ib3gtY29sbGFwc2Vk
LXNlbGVjdGlvbi1jaGFuZ2VkLWV4cGVjdGVkLnR4dCB8ICAgNDIgKysrKysrKysrKysrKysrKysK
IC4uLi9jb21iby1ib3gtY29sbGFwc2VkLXNlbGVjdGlvbi1jaGFuZ2VkLmh0bWwgICAgIHwgICA0
NSArKysrKysrKysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8ICAgMTggKysrKysrKysKIC4uLi9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvZ3RrL0FYT2JqZWN0Q2FjaGVBdGsuY3BwIHwgICA0NyArKysrKysrKysrKysrKysrLS0tLQog
NSBmaWxlcyBjaGFuZ2VkLCAxNTMgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKIGNyZWF0
ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9jb21i
by1ib3gtY29sbGFwc2VkLXNlbGVjdGlvbi1jaGFuZ2VkLWV4cGVjdGVkLnR4dAogY3JlYXRlIG1v
ZGUgMTAwNjQ0IExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2NvbWJvLWJv
eC1jb2xsYXBzZWQtc2VsZWN0aW9uLWNoYW5nZWQuaHRtbAoKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzNzIzMmIzLi5lMTJm
ZDE1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDItMTAgIE1hcmlvIFNhbmNoZXogUHJh
ZGEgIDxtc2FuY2hlekBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdIENvbWJvIGJveGVzIHNo
b3VsZCBlbWl0IG9iamVjdDpzZWxlY3Rpb24tY2hhbmdlZCBldmVuIHdoZW4gY29sbGFwc2VkCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MzE0NgorCisg
ICAgICAgIE5ldyBHVEstc3BlY2lmaWMgbGF5b3V0IHRlc3QgdG8gY2hlY2sgdGhlIHJpZ2h0IHNp
Z25hbHMgYXJlIGVtaXR0ZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0
eS9jb21iby1ib3gtY29sbGFwc2VkLXNlbGVjdGlvbi1jaGFuZ2VkLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvY29tYm8tYm94LWNvbGxh
cHNlZC1zZWxlY3Rpb24tY2hhbmdlZC5odG1sOiBBZGRlZC4KKwogMjAxMS0wMi0xMCAgUGhpbGlw
cGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwg
c2tpcCBmYWlsaW5nIGZhc3QvdGV4dC9jYXBpdGFsaXplLWJvdW5kYXJpZXMuaHRtbCBvbgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvY29tYm8tYm94
LWNvbGxhcHNlZC1zZWxlY3Rpb24tY2hhbmdlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9jb21iby1ib3gtY29sbGFwc2VkLXNlbGVjdGlvbi1j
aGFuZ2VkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4w
ZWQxNDMwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vz
c2liaWxpdHkvY29tYm8tYm94LWNvbGxhcHNlZC1zZWxlY3Rpb24tY2hhbmdlZC1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw0MiBAQAorQWNjZXNzaWJpbGl0eSBvYmplY3QgZW1pdHRlZCAicHJvcGVy
dHktY2hhbmdlIiAvIE5hbWU6ICIoTm8gbmFtZSkiIC8gUm9sZTogODAKK0FjY2Vzc2liaWxpdHkg
b2JqZWN0IGVtaXR0ZWQgImZvY3VzLWV2ZW50ID0gMSIgLyBOYW1lOiAiZm9vIiAvIFJvbGU6IDEx
CitBY2Nlc3NpYmlsaXR5IG9iamVjdCBlbWl0dGVkICJzdGF0ZS1jaGFuZ2U6Zm9jdXNlZCA9IDEi
IC8gTmFtZTogImZvbyIgLyBSb2xlOiAxMQorQWNjZXNzaWJpbGl0eSBvYmplY3QgZW1pdHRlZCAi
Zm9jdXMtZXZlbnQgPSAxIiAvIE5hbWU6ICJiYXIiIC8gUm9sZTogMTEKK0FjY2Vzc2liaWxpdHkg
b2JqZWN0IGVtaXR0ZWQgInN0YXRlLWNoYW5nZTpmb2N1c2VkID0gMSIgLyBOYW1lOiAiYmFyIiAv
IFJvbGU6IDExCitBY2Nlc3NpYmlsaXR5IG9iamVjdCBlbWl0dGVkICJzdGF0ZS1jaGFuZ2U6c2Vs
ZWN0ZWQgPSAxIiAvIE5hbWU6ICJiYXIiIC8gUm9sZTogMzQKK0FjY2Vzc2liaWxpdHkgb2JqZWN0
IGVtaXR0ZWQgImZvY3VzLWV2ZW50ID0gMSIgLyBOYW1lOiAiYmFyIiAvIFJvbGU6IDM0CitBY2Nl
c3NpYmlsaXR5IG9iamVjdCBlbWl0dGVkICJzdGF0ZS1jaGFuZ2U6Zm9jdXNlZCA9IDEiIC8gTmFt
ZTogImJhciIgLyBSb2xlOiAzNAorQWNjZXNzaWJpbGl0eSBvYmplY3QgZW1pdHRlZCAiZm9jdXMt
ZXZlbnQgPSAxIiAvIE5hbWU6ICJiYXoiIC8gUm9sZTogMTEKK0FjY2Vzc2liaWxpdHkgb2JqZWN0
IGVtaXR0ZWQgInN0YXRlLWNoYW5nZTpmb2N1c2VkID0gMSIgLyBOYW1lOiAiYmF6IiAvIFJvbGU6
IDExCitBY2Nlc3NpYmlsaXR5IG9iamVjdCBlbWl0dGVkICJmb2N1cy1ldmVudCA9IDAiIC8gTmFt
ZTogImJhciIgLyBSb2xlOiAzNAorQWNjZXNzaWJpbGl0eSBvYmplY3QgZW1pdHRlZCAic3RhdGUt
Y2hhbmdlOmZvY3VzZWQgPSAwIiAvIE5hbWU6ICJiYXIiIC8gUm9sZTogMzQKK0FjY2Vzc2liaWxp
dHkgb2JqZWN0IGVtaXR0ZWQgInN0YXRlLWNoYW5nZTpzZWxlY3RlZCA9IDEiIC8gTmFtZTogImJh
eiIgLyBSb2xlOiAzNAorQWNjZXNzaWJpbGl0eSBvYmplY3QgZW1pdHRlZCAiZm9jdXMtZXZlbnQg
PSAxIiAvIE5hbWU6ICJiYXoiIC8gUm9sZTogMzQKK0FjY2Vzc2liaWxpdHkgb2JqZWN0IGVtaXR0
ZWQgInN0YXRlLWNoYW5nZTpmb2N1c2VkID0gMSIgLyBOYW1lOiAiYmF6IiAvIFJvbGU6IDM0CitB
Y2Nlc3NpYmlsaXR5IG9iamVjdCBlbWl0dGVkICJmb2N1cy1ldmVudCA9IDEiIC8gTmFtZTogImJh
ciIgLyBSb2xlOiAxMQorQWNjZXNzaWJpbGl0eSBvYmplY3QgZW1pdHRlZCAic3RhdGUtY2hhbmdl
OmZvY3VzZWQgPSAxIiAvIE5hbWU6ICJiYXIiIC8gUm9sZTogMTEKK0FjY2Vzc2liaWxpdHkgb2Jq
ZWN0IGVtaXR0ZWQgImZvY3VzLWV2ZW50ID0gMCIgLyBOYW1lOiAiYmF6IiAvIFJvbGU6IDM0CitB
Y2Nlc3NpYmlsaXR5IG9iamVjdCBlbWl0dGVkICJzdGF0ZS1jaGFuZ2U6Zm9jdXNlZCA9IDAiIC8g
TmFtZTogImJheiIgLyBSb2xlOiAzNAorQWNjZXNzaWJpbGl0eSBvYmplY3QgZW1pdHRlZCAic3Rh
dGUtY2hhbmdlOnNlbGVjdGVkID0gMSIgLyBOYW1lOiAiYmFyIiAvIFJvbGU6IDM0CitBY2Nlc3Np
YmlsaXR5IG9iamVjdCBlbWl0dGVkICJmb2N1cy1ldmVudCA9IDEiIC8gTmFtZTogImJhciIgLyBS
b2xlOiAzNAorQWNjZXNzaWJpbGl0eSBvYmplY3QgZW1pdHRlZCAic3RhdGUtY2hhbmdlOmZvY3Vz
ZWQgPSAxIiAvIE5hbWU6ICJiYXIiIC8gUm9sZTogMzQKK0FjY2Vzc2liaWxpdHkgb2JqZWN0IGVt
aXR0ZWQgImZvY3VzLWV2ZW50ID0gMSIgLyBOYW1lOiAiZm9vIiAvIFJvbGU6IDExCitBY2Nlc3Np
YmlsaXR5IG9iamVjdCBlbWl0dGVkICJzdGF0ZS1jaGFuZ2U6Zm9jdXNlZCA9IDEiIC8gTmFtZTog
ImZvbyIgLyBSb2xlOiAxMQorQWNjZXNzaWJpbGl0eSBvYmplY3QgZW1pdHRlZCAiZm9jdXMtZXZl
bnQgPSAwIiAvIE5hbWU6ICJiYXIiIC8gUm9sZTogMzQKK0FjY2Vzc2liaWxpdHkgb2JqZWN0IGVt
aXR0ZWQgInN0YXRlLWNoYW5nZTpmb2N1c2VkID0gMCIgLyBOYW1lOiAiYmFyIiAvIFJvbGU6IDM0
CitBY2Nlc3NpYmlsaXR5IG9iamVjdCBlbWl0dGVkICJzdGF0ZS1jaGFuZ2U6c2VsZWN0ZWQgPSAx
IiAvIE5hbWU6ICJmb28iIC8gUm9sZTogMzQKK0FjY2Vzc2liaWxpdHkgb2JqZWN0IGVtaXR0ZWQg
ImZvY3VzLWV2ZW50ID0gMSIgLyBOYW1lOiAiZm9vIiAvIFJvbGU6IDM0CitBY2Nlc3NpYmlsaXR5
IG9iamVjdCBlbWl0dGVkICJzdGF0ZS1jaGFuZ2U6Zm9jdXNlZCA9IDEiIC8gTmFtZTogImZvbyIg
LyBSb2xlOiAzNAorQWNjZXNzaWJpbGl0eSBvYmplY3QgZW1pdHRlZCAicHJvcGVydHktY2hhbmdl
IiAvIE5hbWU6ICIoTm8gbmFtZSkiIC8gUm9sZTogODAKK0FjY2Vzc2liaWxpdHkgb2JqZWN0IGVt
aXR0ZWQgImxvYWQtY29tcGxldGUiIC8gTmFtZTogIihObyBuYW1lKSIgLyBSb2xlOiA4MAorQWNj
ZXNzaWJpbGl0eSBvYmplY3QgZW1pdHRlZCAic3RhdGUtY2hhbmdlOmJ1c3kgPSAwIiAvIE5hbWU6
ICIoTm8gbmFtZSkiIC8gUm9sZTogODAKKworVGhpcyB0ZXN0cyB0aGF0IHRoZSAnc3RhdGUtY2hh
bmdlZDpzZWxlY3RlZCcgc2lnbmFsIGlzIGVtaXR0ZWQgd2hlbiBhcnJvd2luZyB0aHJvdWdoIHRo
ZSBvcHRpb25zIG9mIGEgY29tYm9ib3ggd2hpbGUgY29sbGFwc2VkLgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3Np
YmlsaXR5L2NvbWJvLWJveC1jb2xsYXBzZWQtc2VsZWN0aW9uLWNoYW5nZWQuaHRtbCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2NvbWJvLWJveC1jb2xsYXBzZWQtc2Vs
ZWN0aW9uLWNoYW5nZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4x
OWI0NjUwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vz
c2liaWxpdHkvY29tYm8tYm94LWNvbGxhcHNlZC1zZWxlY3Rpb24tY2hhbmdlZC5odG1sCkBAIC0w
LDAgKzEsNDUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VO
Ij4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9m
YXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgordmFy
IHN1Y2Nlc3NmdWxseVBhcnNlZCA9IGZhbHNlOworCitmdW5jdGlvbiBydW5UZXN0KCkgeworICBk
ZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB0aGF0IHRoZSAnc3RhdGUtY2hhbmdlZDpzZWxlY3RlZCcg
c2lnbmFsIGlzIGVtaXR0ZWQgd2hlbiBhcnJvd2luZyB0aHJvdWdoIHRoZSBvcHRpb25zIG9mIGEg
Y29tYm9ib3ggd2hpbGUgY29sbGFwc2VkLiIpOworCisgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgIH0K
KworICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CisgICAgYWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXIubG9nQWNjZXNzaWJpbGl0eUV2ZW50cygpOworICB9CisKKyAgLy8gRm9j
dXMgaW4gdGhlIGNvbWJvYm94IGFuZCBtb3ZlIGFyb3VuZCB0aGUgb3B0aW9ucy4gVGhlIHNpZ25h
bAorICAvLyAnc3RhdGUtY2hhbmdlOnNlbGVjdGVkJyBzaG91bGQgYmUgZW1pdHRlZCB3aXRoIGV2
ZXJ5IGNoYW5nZS4KKyAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbWJvIikuZm9jdXMoKTsK
KyAgZXZlbnRTZW5kZXIua2V5RG93bigiZG93bkFycm93Iik7CisgIGV2ZW50U2VuZGVyLmtleURv
d24oImRvd25BcnJvdyIpOworICBldmVudFNlbmRlci5rZXlEb3duKCJ1cEFycm93Iik7CisgIGV2
ZW50U2VuZGVyLmtleURvd24oInVwQXJyb3ciKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHkgb25sb2FkPSJydW5UZXN0KCk7Ij4KKzxmb3JtPgorPHNlbGVjdCBpZD0iY29tYm8iPgorPG9w
dGlvbiBzZWxlY3RlZCB2YWx1ZT0nZm9vJz5mb288L29wdGlvbj4KKzxvcHRpb24gdmFsdWU9J2Jh
cic+YmFyPC9vcHRpb24+Cis8b3B0aW9uIHZhbHVlPSdiYXonPmJhejwvb3B0aW9uPgorPC9zZWxl
Y3Q+Cis8L2Zvcm0+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUi
PjwvZGl2PgorPHNjcmlwdD4KK3N1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGFmZjkyNDUuLjIwOTRh
ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyMyBAQAogMjAxMS0wMi0xMCAgTWFyaW8gU2FuY2hl
eiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gQ29tYm8gYm94ZXMgc2hvdWxkIGVtaXQgb2Jq
ZWN0OnNlbGVjdGlvbi1jaGFuZ2VkIGV2ZW4gd2hlbiBjb2xsYXBzZWQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUzMTQ2CisKKyAgICAgICAgRW1pdCB0
aGUgc2VsZWN0aW9uLWNoYW5nZWQgc2lnbmFscyB3aGVuIHRoZSBtZW51IGxpc3QgdmFsdWUgaGFz
IGNoYW5nZWQKKworICAgICAgICBUZXN0OiBwbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9jb21i
by1ib3gtY29sbGFwc2VkLXNlbGVjdGlvbi1jaGFuZ2VkLmh0bWwKKworICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvZ3RrL0FYT2JqZWN0Q2FjaGVBdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2V0
TGlzdE9iamVjdCk6IE5ldywgcmV0dXJuIHRoZSByaWdodCBsaXN0IG9iamVjdCBmb3IKKyAgICAg
ICAgbWVudSBsaXN0cyBhbmQgbGlzdCBib3hlcy4KKyAgICAgICAgKFdlYkNvcmU6Om5vdGlmeUNo
aWxkcmVuU2VsZWN0aW9uQ2hhbmdlKTogU3VwcG9ydCBtZW51IGxpc3RzLgorICAgICAgICAoV2Vi
Q29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKTogQ2FsbCBmdW5j
dGlvbgorICAgICAgICBub3RpZnlDaGlsZHJlblNlbGVjdGlvbkNoYW5nZSBmb3IgQVhNZW51TGlz
dFZhbHVlQ2hhbmdlZC4KKworMjAxMS0wMi0xMCAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5j
aGV6QGlnYWxpYS5jb20+CisKICAgICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6LgogCiAgICAg
ICAgIFtHVEtdIGV2ZW50cyBtaXNzaW5nIHdoZW4gYSBkb2N1bWVudCBpcyAocmUpbG9hZGVkCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9BWE9iamVjdENhY2hl
QXRrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0FYT2JqZWN0Q2FjaGVB
dGsuY3BwCmluZGV4IGMzNDFhMmQuLmU4MzUzYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvZ3RrL0FYT2JqZWN0Q2FjaGVBdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0FYT2JqZWN0Q2FjaGVBdGsuY3BwCkBAIC00Miw2ICs0Miwz
MCBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OmF0dGFjaFdyYXBwZXIoQWNjZXNzaWJpbGl0eU9iamVj
dCogb2JqKQogICAgIGdfb2JqZWN0X3VucmVmKGF0a09iaik7CiB9CiAKK3N0YXRpYyBBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBnZXRMaXN0T2JqZWN0KEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCkK
K3sKKyAgICAvLyBPbmx5IGxpc3QgYm94ZXMgYW5kIG1lbnUgbGlzdHMgc3VwcG9ydGVkIHNvIGZh
ci4KKyAgICBpZiAoIW9iamVjdC0+aXNMaXN0Qm94KCkgJiYgIW9iamVjdC0+aXNNZW51TGlzdCgp
KQorICAgICAgICByZXR1cm4gMDsKKworICAgIC8vIEZvciBsaXN0IGJveGVzIHRoZSBsaXN0IG9i
amVjdCBpcyBqdXN0IGl0c2VsZi4KKyAgICBpZiAob2JqZWN0LT5pc0xpc3RCb3goKSkKKyAgICAg
ICAgcmV0dXJuIG9iamVjdDsKKworICAgIC8vIEZvciBtZW51IGxpc3RzIHdlIG5lZWQgdG8gcmV0
dXJuIHRoZSBmaXJzdCBhY2Nlc3NpYmxlIGNoaWxkLAorICAgIC8vIHdpdGggcm9sZSBNZW51TGlz
dFBvcHVwUm9sZSwgc2luY2UgdGhhdCdzIHRoZSBvbmUgaG9sZGluZyB0aGUgbGlzdAorICAgIC8v
IG9mIGl0ZW1zIHdpdGggcm9sZSBNZW51TGlzdE9wdGlvblJvbGUuCisgICAgQWNjZXNzaWJpbGl0
eU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIGNoaWxkcmVuID0gb2JqZWN0LT5j
aGlsZHJlbigpOworICAgIGlmICghY2hpbGRyZW4uc2l6ZSgpKQorICAgICAgICByZXR1cm4gMDsK
KworICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIGxpc3RPYmplY3QgPSBjaGlsZHJlbi5hdCgwKS5n
ZXQoKTsKKyAgICBpZiAoIWxpc3RPYmplY3QtPmlzTWVudUxpc3RQb3B1cCgpKQorICAgICAgICBy
ZXR1cm4gMDsKKworICAgIHJldHVybiBsaXN0T2JqZWN0OworfQorCiBzdGF0aWMgdm9pZCBub3Rp
ZnlDaGlsZHJlblNlbGVjdGlvbkNoYW5nZShBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QpCiB7
CiAgICAgLy8gVGhpcyBzdGF0aWMgdmFyaWFibGUgaXMgbmVlZGVkIHRvIGtlZXAgdHJhY2sgb2Yg
dGhlIG9sZCBmb2N1c2VkCkBAIC00OSwxOSArNzMsMjQgQEAgc3RhdGljIHZvaWQgbm90aWZ5Q2hp
bGRyZW5TZWxlY3Rpb25DaGFuZ2UoQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0KQogICAgIC8v
IHByb3Blcmx5IGRlY2lkZSB3aGV0aGVyIHRvIGVtaXQgc29tZSBzaWduYWxzIG9yIG5vdC4KICAg
ICBzdGF0aWMgUmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+IG9sZEZvY3VzZWRPYmplY3QgPSAw
OwogCi0gICAgLy8gT25seSBsaXN0IGJveGVzIHN1cHBvcnRlZCBzbyBmYXIuCi0gICAgaWYgKCFv
YmplY3QgfHwgIW9iamVjdC0+aXNMaXN0Qm94KCkpCisgICAgLy8gT25seSBsaXN0IGJveGVzIGFu
ZCBtZW51IGxpc3RzIHN1cHBvcnRlZCBzbyBmYXIuCisgICAgaWYgKCFvYmplY3QgfHwgIShvYmpl
Y3QtPmlzTGlzdEJveCgpIHx8IG9iamVjdC0+aXNNZW51TGlzdCgpKSkKICAgICAgICAgcmV0dXJu
OwogCiAgICAgLy8gRW1pdCBzaWduYWwgZnJvbSB0aGUgbGlzdGJveCdzIHBvaW50IG9mIHZpZXcg
Zmlyc3QuCiAgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKG9iamVjdC0+d3JhcHBlcigpLCAic2Vs
ZWN0aW9uLWNoYW5nZWQiKTsKIAogICAgIC8vIEZpbmQgdGhlIGl0ZW0gd2hlcmUgdGhlIHNlbGVj
dGlvbiBjaGFuZ2Ugd2FzIHRyaWdnZXJlZCBmcm9tLgotICAgIEFjY2Vzc2liaWxpdHlPYmplY3Q6
OkFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBpdGVtcyA9IG9iamVjdC0+Y2hpbGRyZW4oKTsK
ICAgICBTZWxlY3RFbGVtZW50KiBzZWxlY3QgPSB0b1NlbGVjdEVsZW1lbnQoc3RhdGljX2Nhc3Q8
RWxlbWVudCo+KG9iamVjdC0+bm9kZSgpKSk7CiAgICAgaWYgKCFzZWxlY3QpCiAgICAgICAgIHJl
dHVybjsKICAgICBpbnQgY2hhbmdlZEl0ZW1JbmRleCA9IHNlbGVjdC0+YWN0aXZlU2VsZWN0aW9u
U3RhcnRMaXN0SW5kZXgoKTsKKworICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIGxpc3RPYmplY3Qg
PSBnZXRMaXN0T2JqZWN0KG9iamVjdCk7CisgICAgaWYgKCFsaXN0T2JqZWN0KQorICAgICAgICBy
ZXR1cm47CisKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5W
ZWN0b3IgaXRlbXMgPSBsaXN0T2JqZWN0LT5jaGlsZHJlbigpOwogICAgIGlmIChjaGFuZ2VkSXRl
bUluZGV4IDwgMCB8fCBjaGFuZ2VkSXRlbUluZGV4ID49IHN0YXRpY19jYXN0PGludD4oaXRlbXMu
c2l6ZSgpKSkKICAgICAgICAgcmV0dXJuOwogICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIGl0ZW0g
PSBpdGVtcy5hdChjaGFuZ2VkSXRlbUluZGV4KS5nZXQoKTsKQEAgLTEwMywxMyArMTMyLDEzIEBA
IHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxp
dHlPYmplY3QqIGNvcmVPYmplY3QsIEFYCiAgICAgICAgIGlmICghY29yZU9iamVjdC0+aXNDaGVj
a2JveE9yUmFkaW8oKSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgZ19zaWduYWxfZW1p
dF9ieV9uYW1lKGF4T2JqZWN0LCAic3RhdGUtY2hhbmdlIiwgImNoZWNrZWQiLCBjb3JlT2JqZWN0
LT5pc0NoZWNrZWQoKSk7Ci0gICAgfSBlbHNlIGlmIChub3RpZmljYXRpb24gPT0gQVhNZW51TGlz
dFZhbHVlQ2hhbmdlZCkgewotICAgICAgICBpZiAoIWNvcmVPYmplY3QtPmlzTWVudUxpc3QoKSkK
LSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKGF4T2Jq
ZWN0LCAiZm9jdXMtZXZlbnQiLCB0cnVlKTsKLSAgICAgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1l
KGF4T2JqZWN0LCAic3RhdGUtY2hhbmdlIiwgImZvY3VzZWQiLCB0cnVlKTsKLSAgICB9IGVsc2Ug
aWYgKG5vdGlmaWNhdGlvbiA9PSBBWFNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkKQorICAgIH0gZWxz
ZSBpZiAobm90aWZpY2F0aW9uID09IEFYU2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQgfHwgbm90aWZp
Y2F0aW9uID09IEFYTWVudUxpc3RWYWx1ZUNoYW5nZWQpIHsKKyAgICAgICAgaWYgKG5vdGlmaWNh
dGlvbiA9PSBBWE1lbnVMaXN0VmFsdWVDaGFuZ2VkICYmIGNvcmVPYmplY3QtPmlzTWVudUxpc3Qo
KSkgeworICAgICAgICAgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKGF4T2JqZWN0LCAiZm9jdXMt
ZXZlbnQiLCB0cnVlKTsKKyAgICAgICAgICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShheE9iamVj
dCwgInN0YXRlLWNoYW5nZSIsICJmb2N1c2VkIiwgdHJ1ZSk7CisgICAgICAgIH0KICAgICAgICAg
bm90aWZ5Q2hpbGRyZW5TZWxlY3Rpb25DaGFuZ2UoY29yZU9iamVjdCk7CisgICAgfQogfQogCiBz
dGF0aWMgdm9pZCBlbWl0VGV4dENoYW5nZWQoQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCogb2Jq
ZWN0LCBBWE9iamVjdENhY2hlOjpBWFRleHRDaGFuZ2UgdGV4dENoYW5nZSwgdW5zaWduZWQgb2Zm
c2V0LCB1bnNpZ25lZCBjb3VudCkKLS0gCjEuNy4zLjUKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82005</attachid>
            <date>2011-02-10 10:55:50 -0800</date>
            <delta_ts>2011-02-18 04:53:27 -0800</delta_ts>
            <desc>Patch proposal + Layout test</desc>
            <filename>0001-2011-02-10-Mario-Sanchez-Prada-msanchez-igalia.com.patch</filename>
            <type>text/plain</type>
            <size>12072</size>
            <attacher name="Mario Sanchez Prada">mario</attacher>
            
              <data encoding="base64">RnJvbSBjZWEzYzEzNzBjZTUyNTJlZjZlYzFkNzAzN2MwMzE2NWVjYTAwODJkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJpbyBTYW5jaGV6IFByYWRhIDxtc2FuY2hlekBpZ2FsaWEu
Y29tPgpEYXRlOiBXZWQsIDkgRmViIDIwMTEgMTU6MTY6MzUgKzAxMDAKU3ViamVjdDogW1BBVENI
XSAyMDExLTAyLTEwICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4K
CiAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgogICAgICAgIFtHVEtdIENvbWJv
IGJveGVzIHNob3VsZCBlbWl0IG9iamVjdDpzZWxlY3Rpb24tY2hhbmdlZCBldmVuIHdoZW4gY29s
bGFwc2VkCiAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUz
MTQ2CgogICAgICAgIEVtaXQgdGhlIHNlbGVjdGlvbi1jaGFuZ2VkIHNpZ25hbHMgd2hlbiB0aGUg
bWVudSBsaXN0IHZhbHVlIGhhcyBjaGFuZ2VkCgogICAgICAgIFRlc3Q6IHBsYXRmb3JtL2d0ay9h
Y2Nlc3NpYmlsaXR5L2NvbWJvLWJveC1jb2xsYXBzZWQtc2VsZWN0aW9uLWNoYW5nZWQuaHRtbAoK
ICAgICAgICAqIGFjY2Vzc2liaWxpdHkvZ3RrL0FYT2JqZWN0Q2FjaGVBdGsuY3BwOgogICAgICAg
IChXZWJDb3JlOjpnZXRMaXN0T2JqZWN0KTogTmV3LCByZXR1cm4gdGhlIHJpZ2h0IGxpc3Qgb2Jq
ZWN0IGZvcgogICAgICAgIG1lbnUgbGlzdHMgYW5kIGxpc3QgYm94ZXMuCiAgICAgICAgKFdlYkNv
cmU6Om5vdGlmeUNoaWxkcmVuU2VsZWN0aW9uQ2hhbmdlKTogU3VwcG9ydCBtZW51IGxpc3RzLgog
ICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24p
OiBDYWxsIGZ1bmN0aW9uCiAgICAgICAgbm90aWZ5Q2hpbGRyZW5TZWxlY3Rpb25DaGFuZ2UgZm9y
IEFYTWVudUxpc3RWYWx1ZUNoYW5nZWQuCgoyMDExLTAyLTEwICBNYXJpbyBTYW5jaGV6IFByYWRh
ICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4KCiAgICAgICAgW0dUS10gQ29tYm8gYm94ZXMgc2hvdWxk
IGVtaXQgb2JqZWN0OnNlbGVjdGlvbi1jaGFuZ2VkIGV2ZW4gd2hlbiBjb2xsYXBzZWQKICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTMxNDYKCiAgICAgICAg
TmV3IEdUSy1zcGVjaWZpYyBsYXlvdXQgdGVzdCB0byBjaGVjayB0aGUgcmlnaHQgc2lnbmFscyBh
cmUgZW1pdHRlZC4KCiAgICAgICAgKiBwbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9jb21iby1i
b3gtY29sbGFwc2VkLXNlbGVjdGlvbi1jaGFuZ2VkLWV4cGVjdGVkLnR4dDogQWRkZWQuCiAgICAg
ICAgKiBwbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9jb21iby1ib3gtY29sbGFwc2VkLXNlbGVj
dGlvbi1jaGFuZ2VkLmh0bWw6IEFkZGVkLgotLS0KIExheW91dFRlc3RzL0NoYW5nZUxvZyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMCArKysrCiAuLi5iby1ib3gtY29sbGFwc2Vk
LXNlbGVjdGlvbi1jaGFuZ2VkLWV4cGVjdGVkLnR4dCB8ICAgMzggKysrKysrKysrKysrKysrKwog
Li4uL2NvbWJvLWJveC1jb2xsYXBzZWQtc2VsZWN0aW9uLWNoYW5nZWQuaHRtbCAgICAgfCAgIDQ1
ICsrKysrKysrKysrKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgICAxOCArKysrKysrKwogLi4uL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9ndGsvQVhPYmplY3RDYWNoZUF0ay5jcHAgfCAgIDQ3ICsrKysrKysrKysrKysrKystLS0tCiA1
IGZpbGVzIGNoYW5nZWQsIDE0OSBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQogY3JlYXRl
IG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2NvbWJv
LWJveC1jb2xsYXBzZWQtc2VsZWN0aW9uLWNoYW5nZWQtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9k
ZSAxMDA2NDQgTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvY29tYm8tYm94
LWNvbGxhcHNlZC1zZWxlY3Rpb24tY2hhbmdlZC5odG1sCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDM3MjMyYjMuLmUxMmZk
MTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMS0wMi0xMCAgTWFyaW8gU2FuY2hleiBQcmFk
YSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS10gQ29tYm8gYm94ZXMgc2hv
dWxkIGVtaXQgb2JqZWN0OnNlbGVjdGlvbi1jaGFuZ2VkIGV2ZW4gd2hlbiBjb2xsYXBzZWQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUzMTQ2CisKKyAg
ICAgICAgTmV3IEdUSy1zcGVjaWZpYyBsYXlvdXQgdGVzdCB0byBjaGVjayB0aGUgcmlnaHQgc2ln
bmFscyBhcmUgZW1pdHRlZC4KKworICAgICAgICAqIHBsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5
L2NvbWJvLWJveC1jb2xsYXBzZWQtc2VsZWN0aW9uLWNoYW5nZWQtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9jb21iby1ib3gtY29sbGFw
c2VkLXNlbGVjdGlvbi1jaGFuZ2VkLmh0bWw6IEFkZGVkLgorCiAyMDExLTAyLTEwICBQaGlsaXBw
ZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBz
a2lwIGZhaWxpbmcgZmFzdC90ZXh0L2NhcGl0YWxpemUtYm91bmRhcmllcy5odG1sIG9uCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9jb21iby1ib3gt
Y29sbGFwc2VkLXNlbGVjdGlvbi1jaGFuZ2VkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2NvbWJvLWJveC1jb2xsYXBzZWQtc2VsZWN0aW9uLWNo
YW5nZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRj
MzYzNmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNz
aWJpbGl0eS9jb21iby1ib3gtY29sbGFwc2VkLXNlbGVjdGlvbi1jaGFuZ2VkLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDM4IEBACitBY2Nlc3NpYmlsaXR5IG9iamVjdCBlbWl0dGVkICJmb2N1cy1l
dmVudCA9IDEiIC8gTmFtZTogImZvbyIgLyBSb2xlOiAxMQorQWNjZXNzaWJpbGl0eSBvYmplY3Qg
ZW1pdHRlZCAic3RhdGUtY2hhbmdlOmZvY3VzZWQgPSAxIiAvIE5hbWU6ICJmb28iIC8gUm9sZTog
MTEKK0FjY2Vzc2liaWxpdHkgb2JqZWN0IGVtaXR0ZWQgImZvY3VzLWV2ZW50ID0gMSIgLyBOYW1l
OiAiYmFyIiAvIFJvbGU6IDExCitBY2Nlc3NpYmlsaXR5IG9iamVjdCBlbWl0dGVkICJzdGF0ZS1j
aGFuZ2U6Zm9jdXNlZCA9IDEiIC8gTmFtZTogImJhciIgLyBSb2xlOiAxMQorQWNjZXNzaWJpbGl0
eSBvYmplY3QgZW1pdHRlZCAic3RhdGUtY2hhbmdlOnNlbGVjdGVkID0gMSIgLyBOYW1lOiAiYmFy
IiAvIFJvbGU6IDM0CitBY2Nlc3NpYmlsaXR5IG9iamVjdCBlbWl0dGVkICJmb2N1cy1ldmVudCA9
IDEiIC8gTmFtZTogImJhciIgLyBSb2xlOiAzNAorQWNjZXNzaWJpbGl0eSBvYmplY3QgZW1pdHRl
ZCAic3RhdGUtY2hhbmdlOmZvY3VzZWQgPSAxIiAvIE5hbWU6ICJiYXIiIC8gUm9sZTogMzQKK0Fj
Y2Vzc2liaWxpdHkgb2JqZWN0IGVtaXR0ZWQgImZvY3VzLWV2ZW50ID0gMSIgLyBOYW1lOiAiYmF6
IiAvIFJvbGU6IDExCitBY2Nlc3NpYmlsaXR5IG9iamVjdCBlbWl0dGVkICJzdGF0ZS1jaGFuZ2U6
Zm9jdXNlZCA9IDEiIC8gTmFtZTogImJheiIgLyBSb2xlOiAxMQorQWNjZXNzaWJpbGl0eSBvYmpl
Y3QgZW1pdHRlZCAiZm9jdXMtZXZlbnQgPSAwIiAvIE5hbWU6ICJiYXIiIC8gUm9sZTogMzQKK0Fj
Y2Vzc2liaWxpdHkgb2JqZWN0IGVtaXR0ZWQgInN0YXRlLWNoYW5nZTpmb2N1c2VkID0gMCIgLyBO
YW1lOiAiYmFyIiAvIFJvbGU6IDM0CitBY2Nlc3NpYmlsaXR5IG9iamVjdCBlbWl0dGVkICJzdGF0
ZS1jaGFuZ2U6c2VsZWN0ZWQgPSAxIiAvIE5hbWU6ICJiYXoiIC8gUm9sZTogMzQKK0FjY2Vzc2li
aWxpdHkgb2JqZWN0IGVtaXR0ZWQgImZvY3VzLWV2ZW50ID0gMSIgLyBOYW1lOiAiYmF6IiAvIFJv
bGU6IDM0CitBY2Nlc3NpYmlsaXR5IG9iamVjdCBlbWl0dGVkICJzdGF0ZS1jaGFuZ2U6Zm9jdXNl
ZCA9IDEiIC8gTmFtZTogImJheiIgLyBSb2xlOiAzNAorQWNjZXNzaWJpbGl0eSBvYmplY3QgZW1p
dHRlZCAiZm9jdXMtZXZlbnQgPSAxIiAvIE5hbWU6ICJiYXIiIC8gUm9sZTogMTEKK0FjY2Vzc2li
aWxpdHkgb2JqZWN0IGVtaXR0ZWQgInN0YXRlLWNoYW5nZTpmb2N1c2VkID0gMSIgLyBOYW1lOiAi
YmFyIiAvIFJvbGU6IDExCitBY2Nlc3NpYmlsaXR5IG9iamVjdCBlbWl0dGVkICJmb2N1cy1ldmVu
dCA9IDAiIC8gTmFtZTogImJheiIgLyBSb2xlOiAzNAorQWNjZXNzaWJpbGl0eSBvYmplY3QgZW1p
dHRlZCAic3RhdGUtY2hhbmdlOmZvY3VzZWQgPSAwIiAvIE5hbWU6ICJiYXoiIC8gUm9sZTogMzQK
K0FjY2Vzc2liaWxpdHkgb2JqZWN0IGVtaXR0ZWQgInN0YXRlLWNoYW5nZTpzZWxlY3RlZCA9IDEi
IC8gTmFtZTogImJhciIgLyBSb2xlOiAzNAorQWNjZXNzaWJpbGl0eSBvYmplY3QgZW1pdHRlZCAi
Zm9jdXMtZXZlbnQgPSAxIiAvIE5hbWU6ICJiYXIiIC8gUm9sZTogMzQKK0FjY2Vzc2liaWxpdHkg
b2JqZWN0IGVtaXR0ZWQgInN0YXRlLWNoYW5nZTpmb2N1c2VkID0gMSIgLyBOYW1lOiAiYmFyIiAv
IFJvbGU6IDM0CitBY2Nlc3NpYmlsaXR5IG9iamVjdCBlbWl0dGVkICJmb2N1cy1ldmVudCA9IDEi
IC8gTmFtZTogImZvbyIgLyBSb2xlOiAxMQorQWNjZXNzaWJpbGl0eSBvYmplY3QgZW1pdHRlZCAi
c3RhdGUtY2hhbmdlOmZvY3VzZWQgPSAxIiAvIE5hbWU6ICJmb28iIC8gUm9sZTogMTEKK0FjY2Vz
c2liaWxpdHkgb2JqZWN0IGVtaXR0ZWQgImZvY3VzLWV2ZW50ID0gMCIgLyBOYW1lOiAiYmFyIiAv
IFJvbGU6IDM0CitBY2Nlc3NpYmlsaXR5IG9iamVjdCBlbWl0dGVkICJzdGF0ZS1jaGFuZ2U6Zm9j
dXNlZCA9IDAiIC8gTmFtZTogImJhciIgLyBSb2xlOiAzNAorQWNjZXNzaWJpbGl0eSBvYmplY3Qg
ZW1pdHRlZCAic3RhdGUtY2hhbmdlOnNlbGVjdGVkID0gMSIgLyBOYW1lOiAiZm9vIiAvIFJvbGU6
IDM0CitBY2Nlc3NpYmlsaXR5IG9iamVjdCBlbWl0dGVkICJmb2N1cy1ldmVudCA9IDEiIC8gTmFt
ZTogImZvbyIgLyBSb2xlOiAzNAorQWNjZXNzaWJpbGl0eSBvYmplY3QgZW1pdHRlZCAic3RhdGUt
Y2hhbmdlOmZvY3VzZWQgPSAxIiAvIE5hbWU6ICJmb28iIC8gUm9sZTogMzQKKworVGhpcyB0ZXN0
cyB0aGF0IHRoZSAnc3RhdGUtY2hhbmdlZDpzZWxlY3RlZCcgc2lnbmFsIGlzIGVtaXR0ZWQgd2hl
biBhcnJvd2luZyB0aHJvdWdoIHRoZSBvcHRpb25zIG9mIGEgY29tYm9ib3ggd2hpbGUgY29sbGFw
c2VkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2NvbWJvLWJveC1jb2xsYXBzZWQtc2VsZWN0aW9u
LWNoYW5nZWQuaHRtbCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2Nv
bWJvLWJveC1jb2xsYXBzZWQtc2VsZWN0aW9uLWNoYW5nZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi4xOWI0NjUwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvY29tYm8tYm94LWNvbGxhcHNlZC1zZWxlY3Rp
b24tY2hhbmdlZC5odG1sCkBAIC0wLDAgKzEsNDUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAi
LS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9Ii4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0PgordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IGZhbHNlOworCitmdW5j
dGlvbiBydW5UZXN0KCkgeworICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB0aGF0IHRoZSAnc3Rh
dGUtY2hhbmdlZDpzZWxlY3RlZCcgc2lnbmFsIGlzIGVtaXR0ZWQgd2hlbiBhcnJvd2luZyB0aHJv
dWdoIHRoZSBvcHRpb25zIG9mIGEgY29tYm9ib3ggd2hpbGUgY29sbGFwc2VkLiIpOworCisgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7CisgIH0KKworICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9s
bGVyKSB7CisgICAgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIubG9nQWNjZXNzaWJpbGl0eUV2ZW50
cygpOworICB9CisKKyAgLy8gRm9jdXMgaW4gdGhlIGNvbWJvYm94IGFuZCBtb3ZlIGFyb3VuZCB0
aGUgb3B0aW9ucy4gVGhlIHNpZ25hbAorICAvLyAnc3RhdGUtY2hhbmdlOnNlbGVjdGVkJyBzaG91
bGQgYmUgZW1pdHRlZCB3aXRoIGV2ZXJ5IGNoYW5nZS4KKyAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImNvbWJvIikuZm9jdXMoKTsKKyAgZXZlbnRTZW5kZXIua2V5RG93bigiZG93bkFycm93Iik7
CisgIGV2ZW50U2VuZGVyLmtleURvd24oImRvd25BcnJvdyIpOworICBldmVudFNlbmRlci5rZXlE
b3duKCJ1cEFycm93Iik7CisgIGV2ZW50U2VuZGVyLmtleURvd24oInVwQXJyb3ciKTsKK30KKzwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCk7Ij4KKzxmb3JtPgorPHNl
bGVjdCBpZD0iY29tYm8iPgorPG9wdGlvbiBzZWxlY3RlZCB2YWx1ZT0nZm9vJz5mb288L29wdGlv
bj4KKzxvcHRpb24gdmFsdWU9J2Jhcic+YmFyPC9vcHRpb24+Cis8b3B0aW9uIHZhbHVlPSdiYXon
PmJhejwvb3B0aW9uPgorPC9zZWxlY3Q+Cis8L2Zvcm0+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwv
cD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK3N1Y2Nlc3NmdWxseVBhcnNl
ZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IDE3YzhjMjcuLjQ2NzQ5NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAx
MS0wMi0xMCAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gQ29tYm8g
Ym94ZXMgc2hvdWxkIGVtaXQgb2JqZWN0OnNlbGVjdGlvbi1jaGFuZ2VkIGV2ZW4gd2hlbiBjb2xs
YXBzZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUz
MTQ2CisKKyAgICAgICAgRW1pdCB0aGUgc2VsZWN0aW9uLWNoYW5nZWQgc2lnbmFscyB3aGVuIHRo
ZSBtZW51IGxpc3QgdmFsdWUgaGFzIGNoYW5nZWQKKworICAgICAgICBUZXN0OiBwbGF0Zm9ybS9n
dGsvYWNjZXNzaWJpbGl0eS9jb21iby1ib3gtY29sbGFwc2VkLXNlbGVjdGlvbi1jaGFuZ2VkLmh0
bWwKKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvZ3RrL0FYT2JqZWN0Q2FjaGVBdGsuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Z2V0TGlzdE9iamVjdCk6IE5ldywgcmV0dXJuIHRoZSByaWdodCBs
aXN0IG9iamVjdCBmb3IKKyAgICAgICAgbWVudSBsaXN0cyBhbmQgbGlzdCBib3hlcy4KKyAgICAg
ICAgKFdlYkNvcmU6Om5vdGlmeUNoaWxkcmVuU2VsZWN0aW9uQ2hhbmdlKTogU3VwcG9ydCBtZW51
IGxpc3RzLgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90
aWZpY2F0aW9uKTogQ2FsbCBmdW5jdGlvbgorICAgICAgICBub3RpZnlDaGlsZHJlblNlbGVjdGlv
bkNoYW5nZSBmb3IgQVhNZW51TGlzdFZhbHVlQ2hhbmdlZC4KKwogMjAxMS0wMi0xMCAgdGFrYW5v
IHRha3VtaSAgPHRha2Fub0BhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFuIEJl
cm5zdGVpbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0FY
T2JqZWN0Q2FjaGVBdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvQVhP
YmplY3RDYWNoZUF0ay5jcHAKaW5kZXggYzM0MWEyZC4uZTgzNTNiMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvQVhPYmplY3RDYWNoZUF0ay5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvQVhPYmplY3RDYWNoZUF0ay5jcHAKQEAg
LTQyLDYgKzQyLDMwIEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6YXR0YWNoV3JhcHBlcihBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBvYmopCiAgICAgZ19vYmplY3RfdW5yZWYoYXRrT2JqKTsKIH0KIAorc3Rh
dGljIEFjY2Vzc2liaWxpdHlPYmplY3QqIGdldExpc3RPYmplY3QoQWNjZXNzaWJpbGl0eU9iamVj
dCogb2JqZWN0KQoreworICAgIC8vIE9ubHkgbGlzdCBib3hlcyBhbmQgbWVudSBsaXN0cyBzdXBw
b3J0ZWQgc28gZmFyLgorICAgIGlmICghb2JqZWN0LT5pc0xpc3RCb3goKSAmJiAhb2JqZWN0LT5p
c01lbnVMaXN0KCkpCisgICAgICAgIHJldHVybiAwOworCisgICAgLy8gRm9yIGxpc3QgYm94ZXMg
dGhlIGxpc3Qgb2JqZWN0IGlzIGp1c3QgaXRzZWxmLgorICAgIGlmIChvYmplY3QtPmlzTGlzdEJv
eCgpKQorICAgICAgICByZXR1cm4gb2JqZWN0OworCisgICAgLy8gRm9yIG1lbnUgbGlzdHMgd2Ug
bmVlZCB0byByZXR1cm4gdGhlIGZpcnN0IGFjY2Vzc2libGUgY2hpbGQsCisgICAgLy8gd2l0aCBy
b2xlIE1lbnVMaXN0UG9wdXBSb2xlLCBzaW5jZSB0aGF0J3MgdGhlIG9uZSBob2xkaW5nIHRoZSBs
aXN0CisgICAgLy8gb2YgaXRlbXMgd2l0aCByb2xlIE1lbnVMaXN0T3B0aW9uUm9sZS4KKyAgICBB
Y2Nlc3NpYmlsaXR5T2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgY2hpbGRyZW4g
PSBvYmplY3QtPmNoaWxkcmVuKCk7CisgICAgaWYgKCFjaGlsZHJlbi5zaXplKCkpCisgICAgICAg
IHJldHVybiAwOworCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogbGlzdE9iamVjdCA9IGNoaWxk
cmVuLmF0KDApLmdldCgpOworICAgIGlmICghbGlzdE9iamVjdC0+aXNNZW51TGlzdFBvcHVwKCkp
CisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIGxpc3RPYmplY3Q7Cit9CisKIHN0YXRp
YyB2b2lkIG5vdGlmeUNoaWxkcmVuU2VsZWN0aW9uQ2hhbmdlKEFjY2Vzc2liaWxpdHlPYmplY3Qq
IG9iamVjdCkKIHsKICAgICAvLyBUaGlzIHN0YXRpYyB2YXJpYWJsZSBpcyBuZWVkZWQgdG8ga2Vl
cCB0cmFjayBvZiB0aGUgb2xkIGZvY3VzZWQKQEAgLTQ5LDE5ICs3MywyNCBAQCBzdGF0aWMgdm9p
ZCBub3RpZnlDaGlsZHJlblNlbGVjdGlvbkNoYW5nZShBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmpl
Y3QpCiAgICAgLy8gcHJvcGVybHkgZGVjaWRlIHdoZXRoZXIgdG8gZW1pdCBzb21lIHNpZ25hbHMg
b3Igbm90LgogICAgIHN0YXRpYyBSZWZQdHI8QWNjZXNzaWJpbGl0eU9iamVjdD4gb2xkRm9jdXNl
ZE9iamVjdCA9IDA7CiAKLSAgICAvLyBPbmx5IGxpc3QgYm94ZXMgc3VwcG9ydGVkIHNvIGZhci4K
LSAgICBpZiAoIW9iamVjdCB8fCAhb2JqZWN0LT5pc0xpc3RCb3goKSkKKyAgICAvLyBPbmx5IGxp
c3QgYm94ZXMgYW5kIG1lbnUgbGlzdHMgc3VwcG9ydGVkIHNvIGZhci4KKyAgICBpZiAoIW9iamVj
dCB8fCAhKG9iamVjdC0+aXNMaXN0Qm94KCkgfHwgb2JqZWN0LT5pc01lbnVMaXN0KCkpKQogICAg
ICAgICByZXR1cm47CiAKICAgICAvLyBFbWl0IHNpZ25hbCBmcm9tIHRoZSBsaXN0Ym94J3MgcG9p
bnQgb2YgdmlldyBmaXJzdC4KICAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUob2JqZWN0LT53cmFw
cGVyKCksICJzZWxlY3Rpb24tY2hhbmdlZCIpOwogCiAgICAgLy8gRmluZCB0aGUgaXRlbSB3aGVy
ZSB0aGUgc2VsZWN0aW9uIGNoYW5nZSB3YXMgdHJpZ2dlcmVkIGZyb20uCi0gICAgQWNjZXNzaWJp
bGl0eU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIGl0ZW1zID0gb2JqZWN0LT5j
aGlsZHJlbigpOwogICAgIFNlbGVjdEVsZW1lbnQqIHNlbGVjdCA9IHRvU2VsZWN0RWxlbWVudChz
dGF0aWNfY2FzdDxFbGVtZW50Kj4ob2JqZWN0LT5ub2RlKCkpKTsKICAgICBpZiAoIXNlbGVjdCkK
ICAgICAgICAgcmV0dXJuOwogICAgIGludCBjaGFuZ2VkSXRlbUluZGV4ID0gc2VsZWN0LT5hY3Rp
dmVTZWxlY3Rpb25TdGFydExpc3RJbmRleCgpOworCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCog
bGlzdE9iamVjdCA9IGdldExpc3RPYmplY3Qob2JqZWN0KTsKKyAgICBpZiAoIWxpc3RPYmplY3Qp
CisgICAgICAgIHJldHVybjsKKworICAgIEFjY2Vzc2liaWxpdHlPYmplY3Q6OkFjY2Vzc2liaWxp
dHlDaGlsZHJlblZlY3RvciBpdGVtcyA9IGxpc3RPYmplY3QtPmNoaWxkcmVuKCk7CiAgICAgaWYg
KGNoYW5nZWRJdGVtSW5kZXggPCAwIHx8IGNoYW5nZWRJdGVtSW5kZXggPj0gc3RhdGljX2Nhc3Q8
aW50PihpdGVtcy5zaXplKCkpKQogICAgICAgICByZXR1cm47CiAgICAgQWNjZXNzaWJpbGl0eU9i
amVjdCogaXRlbSA9IGl0ZW1zLmF0KGNoYW5nZWRJdGVtSW5kZXgpLmdldCgpOwpAQCAtMTAzLDEz
ICsxMzIsMTMgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24o
QWNjZXNzaWJpbGl0eU9iamVjdCogY29yZU9iamVjdCwgQVgKICAgICAgICAgaWYgKCFjb3JlT2Jq
ZWN0LT5pc0NoZWNrYm94T3JSYWRpbygpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBn
X3NpZ25hbF9lbWl0X2J5X25hbWUoYXhPYmplY3QsICJzdGF0ZS1jaGFuZ2UiLCAiY2hlY2tlZCIs
IGNvcmVPYmplY3QtPmlzQ2hlY2tlZCgpKTsKLSAgICB9IGVsc2UgaWYgKG5vdGlmaWNhdGlvbiA9
PSBBWE1lbnVMaXN0VmFsdWVDaGFuZ2VkKSB7Ci0gICAgICAgIGlmICghY29yZU9iamVjdC0+aXNN
ZW51TGlzdCgpKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBnX3NpZ25hbF9lbWl0X2J5
X25hbWUoYXhPYmplY3QsICJmb2N1cy1ldmVudCIsIHRydWUpOwotICAgICAgICBnX3NpZ25hbF9l
bWl0X2J5X25hbWUoYXhPYmplY3QsICJzdGF0ZS1jaGFuZ2UiLCAiZm9jdXNlZCIsIHRydWUpOwot
ICAgIH0gZWxzZSBpZiAobm90aWZpY2F0aW9uID09IEFYU2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQp
CisgICAgfSBlbHNlIGlmIChub3RpZmljYXRpb24gPT0gQVhTZWxlY3RlZENoaWxkcmVuQ2hhbmdl
ZCB8fCBub3RpZmljYXRpb24gPT0gQVhNZW51TGlzdFZhbHVlQ2hhbmdlZCkgeworICAgICAgICBp
ZiAobm90aWZpY2F0aW9uID09IEFYTWVudUxpc3RWYWx1ZUNoYW5nZWQgJiYgY29yZU9iamVjdC0+
aXNNZW51TGlzdCgpKSB7CisgICAgICAgICAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUoYXhPYmpl
Y3QsICJmb2N1cy1ldmVudCIsIHRydWUpOworICAgICAgICAgICAgZ19zaWduYWxfZW1pdF9ieV9u
YW1lKGF4T2JqZWN0LCAic3RhdGUtY2hhbmdlIiwgImZvY3VzZWQiLCB0cnVlKTsKKyAgICAgICAg
fQogICAgICAgICBub3RpZnlDaGlsZHJlblNlbGVjdGlvbkNoYW5nZShjb3JlT2JqZWN0KTsKKyAg
ICB9CiB9CiAKIHN0YXRpYyB2b2lkIGVtaXRUZXh0Q2hhbmdlZChBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0KiBvYmplY3QsIEFYT2JqZWN0Q2FjaGU6OkFYVGV4dENoYW5nZSB0ZXh0Q2hhbmdlLCB1
bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGNvdW50KQotLSAKMS43LjMuNQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82943</attachid>
            <date>2011-02-18 04:53:27 -0800</date>
            <delta_ts>2011-02-25 02:01:20 -0800</delta_ts>
            <desc>Patch proposal + Layout test</desc>
            <filename>0001-2011-02-18-Mario-Sanchez-Prada-msanchez-igalia.com.patch</filename>
            <type>text/plain</type>
            <size>12955</size>
            <attacher name="Mario Sanchez Prada">mario</attacher>
            
              <data encoding="base64">RnJvbSBjZThkYTEzZTMzYWJkOTk3ZDY1MTIyYzRmMTY4NGQ4NWNhMGE2NDMzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJpbyBTYW5jaGV6IFByYWRhIDxtc2FuY2hlekBpZ2FsaWEu
Y29tPgpEYXRlOiBGcmksIDE4IEZlYiAyMDExIDEwOjQ1OjExICswMTAwClN1YmplY3Q6IFtQQVRD
SF0gMjAxMS0wMi0xOCAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+
CgogICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKICAgICAgICBbR1RLXSBDb21i
byBib3hlcyBzaG91bGQgZW1pdCBvYmplY3Q6c2VsZWN0aW9uLWNoYW5nZWQgZXZlbiB3aGVuIGNv
bGxhcHNlZAogICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01
MzE0NgoKICAgICAgICBFbWl0IHRoZSBzZWxlY3Rpb24tY2hhbmdlZCBzaWduYWxzIHdoZW4gdGhl
IG1lbnUgbGlzdCB2YWx1ZSBoYXMgY2hhbmdlZAoKICAgICAgICBUZXN0OiBwbGF0Zm9ybS9ndGsv
YWNjZXNzaWJpbGl0eS9jb21iby1ib3gtY29sbGFwc2VkLXNlbGVjdGlvbi1jaGFuZ2VkLmh0bWwK
CiAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2d0ay9BWE9iamVjdENhY2hlQXRrLmNwcDoKICAgICAg
ICAoV2ViQ29yZTo6Z2V0TGlzdE9iamVjdCk6IE5ldywgcmV0dXJuIHRoZSByaWdodCBsaXN0IG9i
amVjdCBmb3IKICAgICAgICBtZW51IGxpc3RzIGFuZCBsaXN0IGJveGVzLgogICAgICAgIChXZWJD
b3JlOjpub3RpZnlDaGlsZHJlblNlbGVjdGlvbkNoYW5nZSk6IFN1cHBvcnQgbWVudSBsaXN0cy4K
ICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9u
KTogQ2FsbCBmdW5jdGlvbgogICAgICAgIG5vdGlmeUNoaWxkcmVuU2VsZWN0aW9uQ2hhbmdlIGZv
ciBBWE1lbnVMaXN0VmFsdWVDaGFuZ2VkLgoKMjAxMS0wMi0xOCAgTWFyaW8gU2FuY2hleiBQcmFk
YSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+CgogICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgoKICAgICAgICBbR1RLXSBDb21ibyBib3hlcyBzaG91bGQgZW1pdCBvYmplY3Q6c2VsZWN0
aW9uLWNoYW5nZWQgZXZlbiB3aGVuIGNvbGxhcHNlZAogICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MzE0NgoKICAgICAgICBOZXcgR1RLLXNwZWNpZmljIGxh
eW91dCB0ZXN0IHRvIGNoZWNrIHRoZSByaWdodCBzaWduYWxzIGFyZSBlbWl0dGVkLgoKICAgICAg
ICAqIHBsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2NvbWJvLWJveC1jb2xsYXBzZWQtc2VsZWN0
aW9uLWNoYW5nZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KICAgICAgICAqIHBsYXRmb3JtL2d0ay9h
Y2Nlc3NpYmlsaXR5L2NvbWJvLWJveC1jb2xsYXBzZWQtc2VsZWN0aW9uLWNoYW5nZWQuaHRtbDog
QWRkZWQuCi0tLQogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgIDEyICsrKysrCiAuLi5iby1ib3gtY29sbGFwc2VkLXNlbGVjdGlvbi1jaGFuZ2Vk
LWV4cGVjdGVkLnR4dCB8ICAgNDAgKysrKysrKysrKysrKysrCiAuLi4vY29tYm8tYm94LWNvbGxh
cHNlZC1zZWxlY3Rpb24tY2hhbmdlZC5odG1sICAgICB8ICAgNDUgKysrKysrKysrKysrKysrKysK
IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAx
OCArKysrKysrCiAuLi4vV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9BWE9iamVjdENhY2hlQXRr
LmNwcCB8ICAgNTEgKysrKysrKysrKysrKysrLS0tLQogNSBmaWxlcyBjaGFuZ2VkLCAxNTUgaW5z
ZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvY29tYm8tYm94LWNvbGxhcHNlZC1zZWxlY3Rp
b24tY2hhbmdlZC1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9jb21iby1ib3gtY29sbGFwc2VkLXNlbGVjdGlvbi1j
aGFuZ2VkLmh0bWwKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggNzQxMDk0My4uNzRhZGVlNSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
IEBACisyMDExLTAyLTE4ICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbR1RL
XSBDb21ibyBib3hlcyBzaG91bGQgZW1pdCBvYmplY3Q6c2VsZWN0aW9uLWNoYW5nZWQgZXZlbiB3
aGVuIGNvbGxhcHNlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NTMxNDYKKworICAgICAgICBOZXcgR1RLLXNwZWNpZmljIGxheW91dCB0ZXN0IHRvIGNo
ZWNrIHRoZSByaWdodCBzaWduYWxzIGFyZSBlbWl0dGVkLgorCisgICAgICAgICogcGxhdGZvcm0v
Z3RrL2FjY2Vzc2liaWxpdHkvY29tYm8tYm94LWNvbGxhcHNlZC1zZWxlY3Rpb24tY2hhbmdlZC1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5
L2NvbWJvLWJveC1jb2xsYXBzZWQtc2VsZWN0aW9uLWNoYW5nZWQuaHRtbDogQWRkZWQuCisKIDIw
MTEtMDItMTggIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQsIHVwZGF0ZSBHVEsgdGFibGVzL21vemlsbGFfZXhwZWN0ZWRfZmFpbHVy
ZXMgYmFzZWxpbmVzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNz
aWJpbGl0eS9jb21iby1ib3gtY29sbGFwc2VkLXNlbGVjdGlvbi1jaGFuZ2VkLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2NvbWJvLWJveC1jb2xs
YXBzZWQtc2VsZWN0aW9uLWNoYW5nZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjM1NzU2ZDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9jb21iby1ib3gtY29sbGFwc2VkLXNlbGVjdGlvbi1j
aGFuZ2VkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQwIEBACitBY2Nlc3NpYmlsaXR5IG9iamVj
dCBlbWl0dGVkICJmb2N1cy1ldmVudCA9IDEiIC8gTmFtZTogImZvbyIgLyBSb2xlOiAxMQorQWNj
ZXNzaWJpbGl0eSBvYmplY3QgZW1pdHRlZCAic3RhdGUtY2hhbmdlOmZvY3VzZWQgPSAxIiAvIE5h
bWU6ICJmb28iIC8gUm9sZTogMTEKK0FjY2Vzc2liaWxpdHkgb2JqZWN0IGVtaXR0ZWQgImZvY3Vz
LWV2ZW50ID0gMSIgLyBOYW1lOiAiYmFyIiAvIFJvbGU6IDExCitBY2Nlc3NpYmlsaXR5IG9iamVj
dCBlbWl0dGVkICJzdGF0ZS1jaGFuZ2U6Zm9jdXNlZCA9IDEiIC8gTmFtZTogImJhciIgLyBSb2xl
OiAxMQorQWNjZXNzaWJpbGl0eSBvYmplY3QgZW1pdHRlZCAic3RhdGUtY2hhbmdlOnNlbGVjdGVk
ID0gMSIgLyBOYW1lOiAiYmFyIiAvIFJvbGU6IDM0CitBY2Nlc3NpYmlsaXR5IG9iamVjdCBlbWl0
dGVkICJmb2N1cy1ldmVudCA9IDEiIC8gTmFtZTogImJhciIgLyBSb2xlOiAzNAorQWNjZXNzaWJp
bGl0eSBvYmplY3QgZW1pdHRlZCAic3RhdGUtY2hhbmdlOmZvY3VzZWQgPSAxIiAvIE5hbWU6ICJi
YXIiIC8gUm9sZTogMzQKK0FjY2Vzc2liaWxpdHkgb2JqZWN0IGVtaXR0ZWQgImZvY3VzLWV2ZW50
ID0gMSIgLyBOYW1lOiAiYmF6IiAvIFJvbGU6IDExCitBY2Nlc3NpYmlsaXR5IG9iamVjdCBlbWl0
dGVkICJzdGF0ZS1jaGFuZ2U6Zm9jdXNlZCA9IDEiIC8gTmFtZTogImJheiIgLyBSb2xlOiAxMQor
QWNjZXNzaWJpbGl0eSBvYmplY3QgZW1pdHRlZCAiZm9jdXMtZXZlbnQgPSAwIiAvIE5hbWU6ICJi
YXIiIC8gUm9sZTogMzQKK0FjY2Vzc2liaWxpdHkgb2JqZWN0IGVtaXR0ZWQgInN0YXRlLWNoYW5n
ZTpmb2N1c2VkID0gMCIgLyBOYW1lOiAiYmFyIiAvIFJvbGU6IDM0CitBY2Nlc3NpYmlsaXR5IG9i
amVjdCBlbWl0dGVkICJzdGF0ZS1jaGFuZ2U6c2VsZWN0ZWQgPSAxIiAvIE5hbWU6ICJiYXoiIC8g
Um9sZTogMzQKK0FjY2Vzc2liaWxpdHkgb2JqZWN0IGVtaXR0ZWQgImZvY3VzLWV2ZW50ID0gMSIg
LyBOYW1lOiAiYmF6IiAvIFJvbGU6IDM0CitBY2Nlc3NpYmlsaXR5IG9iamVjdCBlbWl0dGVkICJz
dGF0ZS1jaGFuZ2U6Zm9jdXNlZCA9IDEiIC8gTmFtZTogImJheiIgLyBSb2xlOiAzNAorQWNjZXNz
aWJpbGl0eSBvYmplY3QgZW1pdHRlZCAiZm9jdXMtZXZlbnQgPSAxIiAvIE5hbWU6ICJiYXIiIC8g
Um9sZTogMTEKK0FjY2Vzc2liaWxpdHkgb2JqZWN0IGVtaXR0ZWQgInN0YXRlLWNoYW5nZTpmb2N1
c2VkID0gMSIgLyBOYW1lOiAiYmFyIiAvIFJvbGU6IDExCitBY2Nlc3NpYmlsaXR5IG9iamVjdCBl
bWl0dGVkICJmb2N1cy1ldmVudCA9IDAiIC8gTmFtZTogImJheiIgLyBSb2xlOiAzNAorQWNjZXNz
aWJpbGl0eSBvYmplY3QgZW1pdHRlZCAic3RhdGUtY2hhbmdlOmZvY3VzZWQgPSAwIiAvIE5hbWU6
ICJiYXoiIC8gUm9sZTogMzQKK0FjY2Vzc2liaWxpdHkgb2JqZWN0IGVtaXR0ZWQgInN0YXRlLWNo
YW5nZTpzZWxlY3RlZCA9IDEiIC8gTmFtZTogImJhciIgLyBSb2xlOiAzNAorQWNjZXNzaWJpbGl0
eSBvYmplY3QgZW1pdHRlZCAiZm9jdXMtZXZlbnQgPSAxIiAvIE5hbWU6ICJiYXIiIC8gUm9sZTog
MzQKK0FjY2Vzc2liaWxpdHkgb2JqZWN0IGVtaXR0ZWQgInN0YXRlLWNoYW5nZTpmb2N1c2VkID0g
MSIgLyBOYW1lOiAiYmFyIiAvIFJvbGU6IDM0CitBY2Nlc3NpYmlsaXR5IG9iamVjdCBlbWl0dGVk
ICJmb2N1cy1ldmVudCA9IDEiIC8gTmFtZTogImZvbyIgLyBSb2xlOiAxMQorQWNjZXNzaWJpbGl0
eSBvYmplY3QgZW1pdHRlZCAic3RhdGUtY2hhbmdlOmZvY3VzZWQgPSAxIiAvIE5hbWU6ICJmb28i
IC8gUm9sZTogMTEKK0FjY2Vzc2liaWxpdHkgb2JqZWN0IGVtaXR0ZWQgImZvY3VzLWV2ZW50ID0g
MCIgLyBOYW1lOiAiYmFyIiAvIFJvbGU6IDM0CitBY2Nlc3NpYmlsaXR5IG9iamVjdCBlbWl0dGVk
ICJzdGF0ZS1jaGFuZ2U6Zm9jdXNlZCA9IDAiIC8gTmFtZTogImJhciIgLyBSb2xlOiAzNAorQWNj
ZXNzaWJpbGl0eSBvYmplY3QgZW1pdHRlZCAic3RhdGUtY2hhbmdlOnNlbGVjdGVkID0gMSIgLyBO
YW1lOiAiZm9vIiAvIFJvbGU6IDM0CitBY2Nlc3NpYmlsaXR5IG9iamVjdCBlbWl0dGVkICJmb2N1
cy1ldmVudCA9IDEiIC8gTmFtZTogImZvbyIgLyBSb2xlOiAzNAorQWNjZXNzaWJpbGl0eSBvYmpl
Y3QgZW1pdHRlZCAic3RhdGUtY2hhbmdlOmZvY3VzZWQgPSAxIiAvIE5hbWU6ICJmb28iIC8gUm9s
ZTogMzQKK0FjY2Vzc2liaWxpdHkgb2JqZWN0IGVtaXR0ZWQgImxvYWQtY29tcGxldGUiIC8gTmFt
ZTogIihObyBuYW1lKSIgLyBSb2xlOiA4MAorQWNjZXNzaWJpbGl0eSBvYmplY3QgZW1pdHRlZCAi
c3RhdGUtY2hhbmdlOmJ1c3kgPSAwIiAvIE5hbWU6ICIoTm8gbmFtZSkiIC8gUm9sZTogODAKKwor
VGhpcyB0ZXN0cyB0aGF0IHRoZSAnc3RhdGUtY2hhbmdlZDpzZWxlY3RlZCcgc2lnbmFsIGlzIGVt
aXR0ZWQgd2hlbiBhcnJvd2luZyB0aHJvdWdoIHRoZSBvcHRpb25zIG9mIGEgY29tYm9ib3ggd2hp
bGUgY29sbGFwc2VkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2NvbWJvLWJveC1jb2xsYXBzZWQt
c2VsZWN0aW9uLWNoYW5nZWQuaHRtbCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3Np
YmlsaXR5L2NvbWJvLWJveC1jb2xsYXBzZWQtc2VsZWN0aW9uLWNoYW5nZWQuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xOWI0NjUwCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvY29tYm8tYm94LWNvbGxhcHNl
ZC1zZWxlY3Rpb24tY2hhbmdlZC5odG1sCkBAIC0wLDAgKzEsNDUgQEAKKzwhRE9DVFlQRSBIVE1M
IFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUu
Y3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IGZhbHNl
OworCitmdW5jdGlvbiBydW5UZXN0KCkgeworICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB0aGF0
IHRoZSAnc3RhdGUtY2hhbmdlZDpzZWxlY3RlZCcgc2lnbmFsIGlzIGVtaXR0ZWQgd2hlbiBhcnJv
d2luZyB0aHJvdWdoIHRoZSBvcHRpb25zIG9mIGEgY29tYm9ib3ggd2hpbGUgY29sbGFwc2VkLiIp
OworCisgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgIH0KKworICBpZiAod2luZG93LmFjY2Vzc2liaWxp
dHlDb250cm9sbGVyKSB7CisgICAgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIubG9nQWNjZXNzaWJp
bGl0eUV2ZW50cygpOworICB9CisKKyAgLy8gRm9jdXMgaW4gdGhlIGNvbWJvYm94IGFuZCBtb3Zl
IGFyb3VuZCB0aGUgb3B0aW9ucy4gVGhlIHNpZ25hbAorICAvLyAnc3RhdGUtY2hhbmdlOnNlbGVj
dGVkJyBzaG91bGQgYmUgZW1pdHRlZCB3aXRoIGV2ZXJ5IGNoYW5nZS4KKyAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImNvbWJvIikuZm9jdXMoKTsKKyAgZXZlbnRTZW5kZXIua2V5RG93bigiZG93
bkFycm93Iik7CisgIGV2ZW50U2VuZGVyLmtleURvd24oImRvd25BcnJvdyIpOworICBldmVudFNl
bmRlci5rZXlEb3duKCJ1cEFycm93Iik7CisgIGV2ZW50U2VuZGVyLmtleURvd24oInVwQXJyb3ci
KTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCk7Ij4KKzxm
b3JtPgorPHNlbGVjdCBpZD0iY29tYm8iPgorPG9wdGlvbiBzZWxlY3RlZCB2YWx1ZT0nZm9vJz5m
b288L29wdGlvbj4KKzxvcHRpb24gdmFsdWU9J2Jhcic+YmFyPC9vcHRpb24+Cis8b3B0aW9uIHZh
bHVlPSdiYXonPmJhejwvb3B0aW9uPgorPC9zZWxlY3Q+Cis8L2Zvcm0+Cis8cCBpZD0iZGVzY3Jp
cHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK3N1Y2Nlc3Nm
dWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IGNlZjRiNTguLmUzOTM0OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwy
MyBAQAogMjAxMS0wMi0xOCAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5j
b20+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0dU
S10gQ29tYm8gYm94ZXMgc2hvdWxkIGVtaXQgb2JqZWN0OnNlbGVjdGlvbi1jaGFuZ2VkIGV2ZW4g
d2hlbiBjb2xsYXBzZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTUzMTQ2CisKKyAgICAgICAgRW1pdCB0aGUgc2VsZWN0aW9uLWNoYW5nZWQgc2lnbmFs
cyB3aGVuIHRoZSBtZW51IGxpc3QgdmFsdWUgaGFzIGNoYW5nZWQKKworICAgICAgICBUZXN0OiBw
bGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9jb21iby1ib3gtY29sbGFwc2VkLXNlbGVjdGlvbi1j
aGFuZ2VkLmh0bWwKKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvZ3RrL0FYT2JqZWN0Q2FjaGVB
dGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2V0TGlzdE9iamVjdCk6IE5ldywgcmV0dXJuIHRo
ZSByaWdodCBsaXN0IG9iamVjdCBmb3IKKyAgICAgICAgbWVudSBsaXN0cyBhbmQgbGlzdCBib3hl
cy4KKyAgICAgICAgKFdlYkNvcmU6Om5vdGlmeUNoaWxkcmVuU2VsZWN0aW9uQ2hhbmdlKTogU3Vw
cG9ydCBtZW51IGxpc3RzLgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFBs
YXRmb3JtTm90aWZpY2F0aW9uKTogQ2FsbCBmdW5jdGlvbgorICAgICAgICBub3RpZnlDaGlsZHJl
blNlbGVjdGlvbkNoYW5nZSBmb3IgQVhNZW51TGlzdFZhbHVlQ2hhbmdlZC4KKworMjAxMS0wMi0x
OCAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+CisKICAgICAgICAg
UmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgogCiAgICAgICAgIFtHdGtdIGF0a190ZXh0X2dl
dF9zZWxlY3Rpb24vYXRrX3RleHRfc2V0X3NlbGVjdGlvbiBmYWlscyBmb3IgbGlzdCBpdGVtcwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvQVhPYmplY3RDYWNo
ZUF0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9BWE9iamVjdENhY2hl
QXRrLmNwcAppbmRleCBjMzQxYTJkLi4yNGUzMzZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2d0ay9BWE9iamVjdENhY2hlQXRrLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2d0ay9BWE9iamVjdENhY2hlQXRrLmNwcApAQCAtNDIsNiArNDIs
MzAgQEAgdm9pZCBBWE9iamVjdENhY2hlOjphdHRhY2hXcmFwcGVyKEFjY2Vzc2liaWxpdHlPYmpl
Y3QqIG9iaikKICAgICBnX29iamVjdF91bnJlZihhdGtPYmopOwogfQogCitzdGF0aWMgQWNjZXNz
aWJpbGl0eU9iamVjdCogZ2V0TGlzdE9iamVjdChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3Qp
Cit7CisgICAgLy8gT25seSBsaXN0IGJveGVzIGFuZCBtZW51IGxpc3RzIHN1cHBvcnRlZCBzbyBm
YXIuCisgICAgaWYgKCFvYmplY3QtPmlzTGlzdEJveCgpICYmICFvYmplY3QtPmlzTWVudUxpc3Qo
KSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICAvLyBGb3IgbGlzdCBib3hlcyB0aGUgbGlzdCBv
YmplY3QgaXMganVzdCBpdHNlbGYuCisgICAgaWYgKG9iamVjdC0+aXNMaXN0Qm94KCkpCisgICAg
ICAgIHJldHVybiBvYmplY3Q7CisKKyAgICAvLyBGb3IgbWVudSBsaXN0cyB3ZSBuZWVkIHRvIHJl
dHVybiB0aGUgZmlyc3QgYWNjZXNzaWJsZSBjaGlsZCwKKyAgICAvLyB3aXRoIHJvbGUgTWVudUxp
c3RQb3B1cFJvbGUsIHNpbmNlIHRoYXQncyB0aGUgb25lIGhvbGRpbmcgdGhlIGxpc3QKKyAgICAv
LyBvZiBpdGVtcyB3aXRoIHJvbGUgTWVudUxpc3RPcHRpb25Sb2xlLgorICAgIEFjY2Vzc2liaWxp
dHlPYmplY3Q6OkFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBjaGlsZHJlbiA9IG9iamVjdC0+
Y2hpbGRyZW4oKTsKKyAgICBpZiAoIWNoaWxkcmVuLnNpemUoKSkKKyAgICAgICAgcmV0dXJuIDA7
CisKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBsaXN0T2JqZWN0ID0gY2hpbGRyZW4uYXQoMCku
Z2V0KCk7CisgICAgaWYgKCFsaXN0T2JqZWN0LT5pc01lbnVMaXN0UG9wdXAoKSkKKyAgICAgICAg
cmV0dXJuIDA7CisKKyAgICByZXR1cm4gbGlzdE9iamVjdDsKK30KKwogc3RhdGljIHZvaWQgbm90
aWZ5Q2hpbGRyZW5TZWxlY3Rpb25DaGFuZ2UoQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0KQog
ewogICAgIC8vIFRoaXMgc3RhdGljIHZhcmlhYmxlIGlzIG5lZWRlZCB0byBrZWVwIHRyYWNrIG9m
IHRoZSBvbGQgZm9jdXNlZApAQCAtNDksMjcgKzczLDMyIEBAIHN0YXRpYyB2b2lkIG5vdGlmeUNo
aWxkcmVuU2VsZWN0aW9uQ2hhbmdlKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCkKICAgICAv
LyBwcm9wZXJseSBkZWNpZGUgd2hldGhlciB0byBlbWl0IHNvbWUgc2lnbmFscyBvciBub3QuCiAg
ICAgc3RhdGljIFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBvbGRGb2N1c2VkT2JqZWN0ID0g
MDsKIAotICAgIC8vIE9ubHkgbGlzdCBib3hlcyBzdXBwb3J0ZWQgc28gZmFyLgotICAgIGlmICgh
b2JqZWN0IHx8ICFvYmplY3QtPmlzTGlzdEJveCgpKQorICAgIC8vIE9ubHkgbGlzdCBib3hlcyBh
bmQgbWVudSBsaXN0cyBzdXBwb3J0ZWQgc28gZmFyLgorICAgIGlmICghb2JqZWN0IHx8ICEob2Jq
ZWN0LT5pc0xpc3RCb3goKSB8fCBvYmplY3QtPmlzTWVudUxpc3QoKSkpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIC8vIEVtaXQgc2lnbmFsIGZyb20gdGhlIGxpc3Rib3gncyBwb2ludCBvZiB2aWV3
IGZpcnN0LgogICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShvYmplY3QtPndyYXBwZXIoKSwgInNl
bGVjdGlvbi1jaGFuZ2VkIik7CiAKICAgICAvLyBGaW5kIHRoZSBpdGVtIHdoZXJlIHRoZSBzZWxl
Y3Rpb24gY2hhbmdlIHdhcyB0cmlnZ2VyZWQgZnJvbS4KLSAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0
OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgaXRlbXMgPSBvYmplY3QtPmNoaWxkcmVuKCk7
CiAgICAgU2VsZWN0RWxlbWVudCogc2VsZWN0ID0gdG9TZWxlY3RFbGVtZW50KHN0YXRpY19jYXN0
PEVsZW1lbnQqPihvYmplY3QtPm5vZGUoKSkpOwogICAgIGlmICghc2VsZWN0KQogICAgICAgICBy
ZXR1cm47CiAgICAgaW50IGNoYW5nZWRJdGVtSW5kZXggPSBzZWxlY3QtPmFjdGl2ZVNlbGVjdGlv
blN0YXJ0TGlzdEluZGV4KCk7CisKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBsaXN0T2JqZWN0
ID0gZ2V0TGlzdE9iamVjdChvYmplY3QpOworICAgIGlmICghbGlzdE9iamVjdCkKKyAgICAgICAg
cmV0dXJuOworCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVu
VmVjdG9yIGl0ZW1zID0gbGlzdE9iamVjdC0+Y2hpbGRyZW4oKTsKICAgICBpZiAoY2hhbmdlZEl0
ZW1JbmRleCA8IDAgfHwgY2hhbmdlZEl0ZW1JbmRleCA+PSBzdGF0aWNfY2FzdDxpbnQ+KGl0ZW1z
LnNpemUoKSkpCiAgICAgICAgIHJldHVybjsKICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBpdGVt
ID0gaXRlbXMuYXQoY2hhbmdlZEl0ZW1JbmRleCkuZ2V0KCk7CiAKLSAgICAvLyBFbnN1cmUgdGhl
IG9sZEZvY3VzZWRPYmplY3QgYmVsb25ncyB0byB0aGUgc2FtZSBkb2N1bWVudCB0aGF0CisgICAg
Ly8gRW5zdXJlIG9sZEZvY3VzZWRPYmplY3QgYmVsb25ncyB0byB0aGUgc2FtZSBsaXN0IG9iamVj
dCB0aGF0CiAgICAgLy8gdGhlIGN1cnJlbnQgaXRlbSBzbyBmdXJ0aGVyIGNvbXBhcmlzb25zIG1h
a2Ugc2Vuc2UuIE90aGVyd2lzZSwKICAgICAvLyBqdXN0IHJlc2V0IG9sZEZvY3VzZWRPYmplY3Qg
c28gaXQgd29uJ3QgYmUgdGFrZW4gaW50byBhY2NvdW50LgotICAgIGlmIChpdGVtICYmIG9sZEZv
Y3VzZWRPYmplY3QgJiYgaXRlbS0+ZG9jdW1lbnQoKSAhPSBvbGRGb2N1c2VkT2JqZWN0LT5kb2N1
bWVudCgpKQorICAgIGlmIChpdGVtICYmIG9sZEZvY3VzZWRPYmplY3QgJiYgaXRlbS0+cGFyZW50
T2JqZWN0KCkgIT0gb2xkRm9jdXNlZE9iamVjdC0+cGFyZW50T2JqZWN0KCkpCiAgICAgICAgIG9s
ZEZvY3VzZWRPYmplY3QgPSAwOwogCiAgICAgQXRrT2JqZWN0KiBheEl0ZW0gPSBpdGVtID8gaXRl
bS0+d3JhcHBlcigpIDogMDsKQEAgLTEwMywxMyArMTMyLDEzIEBAIHZvaWQgQVhPYmplY3RDYWNo
ZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIGNvcmVPYmpl
Y3QsIEFYCiAgICAgICAgIGlmICghY29yZU9iamVjdC0+aXNDaGVja2JveE9yUmFkaW8oKSkKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKGF4T2JqZWN0
LCAic3RhdGUtY2hhbmdlIiwgImNoZWNrZWQiLCBjb3JlT2JqZWN0LT5pc0NoZWNrZWQoKSk7Ci0g
ICAgfSBlbHNlIGlmIChub3RpZmljYXRpb24gPT0gQVhNZW51TGlzdFZhbHVlQ2hhbmdlZCkgewot
ICAgICAgICBpZiAoIWNvcmVPYmplY3QtPmlzTWVudUxpc3QoKSkKLSAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKGF4T2JqZWN0LCAiZm9jdXMtZXZlbnQi
LCB0cnVlKTsKLSAgICAgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKGF4T2JqZWN0LCAic3RhdGUt
Y2hhbmdlIiwgImZvY3VzZWQiLCB0cnVlKTsKLSAgICB9IGVsc2UgaWYgKG5vdGlmaWNhdGlvbiA9
PSBBWFNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkKQorICAgIH0gZWxzZSBpZiAobm90aWZpY2F0aW9u
ID09IEFYU2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQgfHwgbm90aWZpY2F0aW9uID09IEFYTWVudUxp
c3RWYWx1ZUNoYW5nZWQpIHsKKyAgICAgICAgaWYgKG5vdGlmaWNhdGlvbiA9PSBBWE1lbnVMaXN0
VmFsdWVDaGFuZ2VkICYmIGNvcmVPYmplY3QtPmlzTWVudUxpc3QoKSkgeworICAgICAgICAgICAg
Z19zaWduYWxfZW1pdF9ieV9uYW1lKGF4T2JqZWN0LCAiZm9jdXMtZXZlbnQiLCB0cnVlKTsKKyAg
ICAgICAgICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShheE9iamVjdCwgInN0YXRlLWNoYW5nZSIs
ICJmb2N1c2VkIiwgdHJ1ZSk7CisgICAgICAgIH0KICAgICAgICAgbm90aWZ5Q2hpbGRyZW5TZWxl
Y3Rpb25DaGFuZ2UoY29yZU9iamVjdCk7CisgICAgfQogfQogCiBzdGF0aWMgdm9pZCBlbWl0VGV4
dENoYW5nZWQoQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCogb2JqZWN0LCBBWE9iamVjdENhY2hl
OjpBWFRleHRDaGFuZ2UgdGV4dENoYW5nZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBjb3Vu
dCkKLS0gCjEuNy4zLjUKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83786</attachid>
            <date>2011-02-25 02:01:20 -0800</date>
            <delta_ts>2011-03-03 01:00:33 -0800</delta_ts>
            <desc>Patch proposal + Layout test</desc>
            <filename>0001-2011-02-25-Mario-Sanchez-Prada-msanchez-igalia.com.patch</filename>
            <type>text/plain</type>
            <size>13707</size>
            <attacher name="Mario Sanchez Prada">mario</attacher>
            
              <data encoding="base64">RnJvbSAzZmNkMDBjYjc3OWM2MGI0YTg5NGNjZjZhZTQ1YmFlMjhhMWJlODNhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJpbyBTYW5jaGV6IFByYWRhIDxtc2FuY2hlekBpZ2FsaWEu
Y29tPgpEYXRlOiBUdWUsIDIyIEZlYiAyMDExIDEwOjIwOjExICswMTAwClN1YmplY3Q6IFtQQVRD
SF0gMjAxMS0wMi0yNSAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+
CgogICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKICAgICAgICBbR1RLXSBDb21i
byBib3hlcyBzaG91bGQgZW1pdCBvYmplY3Q6c2VsZWN0aW9uLWNoYW5nZWQgZXZlbiB3aGVuIGNv
bGxhcHNlZAogICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01
MzE0NgoKICAgICAgICBOZXcgR1RLLXNwZWNpZmljIGxheW91dCB0ZXN0IHRvIGNoZWNrIHRoZSBy
aWdodCBzaWduYWxzIGFyZSBlbWl0dGVkLgoKICAgICAgICAqIHBsYXRmb3JtL2d0ay9hY2Nlc3Np
YmlsaXR5L2NvbWJvLWJveC1jb2xsYXBzZWQtc2VsZWN0aW9uLWNoYW5nZWQtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KICAgICAgICAqIHBsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2NvbWJvLWJveC1j
b2xsYXBzZWQtc2VsZWN0aW9uLWNoYW5nZWQuaHRtbDogQWRkZWQuCjIwMTEtMDItMjUgIE1hcmlv
IFNhbmNoZXogUHJhZGEgIDxtc2FuY2hlekBpZ2FsaWEuY29tPgoKICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KCiAgICAgICAgW0dUS10gQ29tYm8gYm94ZXMgc2hvdWxkIGVtaXQg
b2JqZWN0OnNlbGVjdGlvbi1jaGFuZ2VkIGV2ZW4gd2hlbiBjb2xsYXBzZWQKICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTMxNDYKCiAgICAgICAgRW1pdCB0
aGUgc2VsZWN0aW9uLWNoYW5nZWQgc2lnbmFscyB3aGVuIHRoZSBtZW51IGxpc3QgdmFsdWUgaGFz
IGNoYW5nZWQKCiAgICAgICAgVGVzdDogcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkvY29tYm8t
Ym94LWNvbGxhcHNlZC1zZWxlY3Rpb24tY2hhbmdlZC5odG1sCgogICAgICAgICogYWNjZXNzaWJp
bGl0eS9ndGsvQVhPYmplY3RDYWNoZUF0ay5jcHA6CiAgICAgICAgKFdlYkNvcmU6OmdldExpc3RP
YmplY3QpOiBOZXcsIHJldHVybiB0aGUgcmlnaHQgbGlzdCBvYmplY3QgZm9yCiAgICAgICAgbWVu
dSBsaXN0cyBhbmQgbGlzdCBib3hlcy4KICAgICAgICAoV2ViQ29yZTo6bm90aWZ5Q2hpbGRyZW5T
ZWxlY3Rpb25DaGFuZ2UpOiBTdXBwb3J0IG1lbnUgbGlzdHMuCiAgICAgICAgKFdlYkNvcmU6OkFY
T2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbik6IENhbGwgZnVuY3Rpb24KICAg
ICAgICBub3RpZnlDaGlsZHJlblNlbGVjdGlvbkNoYW5nZSBmb3IgQVhNZW51TGlzdFZhbHVlQ2hh
bmdlZC4KLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICAgMTIgKysrCiAuLi5iby1ib3gtY29sbGFwc2VkLXNlbGVjdGlvbi1jaGFuZ2VkLWV4
cGVjdGVkLnR4dCB8ICAgNDAgKysrKysrKysrKysKIC4uLi9jb21iby1ib3gtY29sbGFwc2VkLXNl
bGVjdGlvbi1jaGFuZ2VkLmh0bWwgICAgIHwgICA0NSArKysrKysrKysrKysKIFNvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxOCArKysrKwogLi4u
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9ndGsvQVhPYmplY3RDYWNoZUF0ay5jcHAgfCAgIDcyICsr
KysrKysrKysrKysrLS0tLS0KIDUgZmlsZXMgY2hhbmdlZCwgMTY4IGluc2VydGlvbnMoKyksIDE5
IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9hY2Nlc3NpYmlsaXR5L2NvbWJvLWJveC1jb2xsYXBzZWQtc2VsZWN0aW9uLWNoYW5nZWQtZXhw
ZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Fj
Y2Vzc2liaWxpdHkvY29tYm8tYm94LWNvbGxhcHNlZC1zZWxlY3Rpb24tY2hhbmdlZC5odG1sCgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IGQzYTRkN2MuLjliZWQ0Y2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMS0wMi0y
NSAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gQ29tYm8gYm94ZXMg
c2hvdWxkIGVtaXQgb2JqZWN0OnNlbGVjdGlvbi1jaGFuZ2VkIGV2ZW4gd2hlbiBjb2xsYXBzZWQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUzMTQ2CisK
KyAgICAgICAgTmV3IEdUSy1zcGVjaWZpYyBsYXlvdXQgdGVzdCB0byBjaGVjayB0aGUgcmlnaHQg
c2lnbmFscyBhcmUgZW1pdHRlZC4KKworICAgICAgICAqIHBsYXRmb3JtL2d0ay9hY2Nlc3NpYmls
aXR5L2NvbWJvLWJveC1jb2xsYXBzZWQtc2VsZWN0aW9uLWNoYW5nZWQtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9jb21iby1ib3gtY29s
bGFwc2VkLXNlbGVjdGlvbi1jaGFuZ2VkLmh0bWw6IEFkZGVkLgorCiAyMDExLTAyLTE1ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmlu
IEFkbGVyLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxp
dHkvY29tYm8tYm94LWNvbGxhcHNlZC1zZWxlY3Rpb24tY2hhbmdlZC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9jb21iby1ib3gtY29sbGFwc2Vk
LXNlbGVjdGlvbi1jaGFuZ2VkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi4zNTc1NmQ0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ3RrL2FjY2Vzc2liaWxpdHkvY29tYm8tYm94LWNvbGxhcHNlZC1zZWxlY3Rpb24tY2hhbmdl
ZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0MCBAQAorQWNjZXNzaWJpbGl0eSBvYmplY3QgZW1p
dHRlZCAiZm9jdXMtZXZlbnQgPSAxIiAvIE5hbWU6ICJmb28iIC8gUm9sZTogMTEKK0FjY2Vzc2li
aWxpdHkgb2JqZWN0IGVtaXR0ZWQgInN0YXRlLWNoYW5nZTpmb2N1c2VkID0gMSIgLyBOYW1lOiAi
Zm9vIiAvIFJvbGU6IDExCitBY2Nlc3NpYmlsaXR5IG9iamVjdCBlbWl0dGVkICJmb2N1cy1ldmVu
dCA9IDEiIC8gTmFtZTogImJhciIgLyBSb2xlOiAxMQorQWNjZXNzaWJpbGl0eSBvYmplY3QgZW1p
dHRlZCAic3RhdGUtY2hhbmdlOmZvY3VzZWQgPSAxIiAvIE5hbWU6ICJiYXIiIC8gUm9sZTogMTEK
K0FjY2Vzc2liaWxpdHkgb2JqZWN0IGVtaXR0ZWQgInN0YXRlLWNoYW5nZTpzZWxlY3RlZCA9IDEi
IC8gTmFtZTogImJhciIgLyBSb2xlOiAzNAorQWNjZXNzaWJpbGl0eSBvYmplY3QgZW1pdHRlZCAi
Zm9jdXMtZXZlbnQgPSAxIiAvIE5hbWU6ICJiYXIiIC8gUm9sZTogMzQKK0FjY2Vzc2liaWxpdHkg
b2JqZWN0IGVtaXR0ZWQgInN0YXRlLWNoYW5nZTpmb2N1c2VkID0gMSIgLyBOYW1lOiAiYmFyIiAv
IFJvbGU6IDM0CitBY2Nlc3NpYmlsaXR5IG9iamVjdCBlbWl0dGVkICJmb2N1cy1ldmVudCA9IDEi
IC8gTmFtZTogImJheiIgLyBSb2xlOiAxMQorQWNjZXNzaWJpbGl0eSBvYmplY3QgZW1pdHRlZCAi
c3RhdGUtY2hhbmdlOmZvY3VzZWQgPSAxIiAvIE5hbWU6ICJiYXoiIC8gUm9sZTogMTEKK0FjY2Vz
c2liaWxpdHkgb2JqZWN0IGVtaXR0ZWQgImZvY3VzLWV2ZW50ID0gMCIgLyBOYW1lOiAiYmFyIiAv
IFJvbGU6IDM0CitBY2Nlc3NpYmlsaXR5IG9iamVjdCBlbWl0dGVkICJzdGF0ZS1jaGFuZ2U6Zm9j
dXNlZCA9IDAiIC8gTmFtZTogImJhciIgLyBSb2xlOiAzNAorQWNjZXNzaWJpbGl0eSBvYmplY3Qg
ZW1pdHRlZCAic3RhdGUtY2hhbmdlOnNlbGVjdGVkID0gMSIgLyBOYW1lOiAiYmF6IiAvIFJvbGU6
IDM0CitBY2Nlc3NpYmlsaXR5IG9iamVjdCBlbWl0dGVkICJmb2N1cy1ldmVudCA9IDEiIC8gTmFt
ZTogImJheiIgLyBSb2xlOiAzNAorQWNjZXNzaWJpbGl0eSBvYmplY3QgZW1pdHRlZCAic3RhdGUt
Y2hhbmdlOmZvY3VzZWQgPSAxIiAvIE5hbWU6ICJiYXoiIC8gUm9sZTogMzQKK0FjY2Vzc2liaWxp
dHkgb2JqZWN0IGVtaXR0ZWQgImZvY3VzLWV2ZW50ID0gMSIgLyBOYW1lOiAiYmFyIiAvIFJvbGU6
IDExCitBY2Nlc3NpYmlsaXR5IG9iamVjdCBlbWl0dGVkICJzdGF0ZS1jaGFuZ2U6Zm9jdXNlZCA9
IDEiIC8gTmFtZTogImJhciIgLyBSb2xlOiAxMQorQWNjZXNzaWJpbGl0eSBvYmplY3QgZW1pdHRl
ZCAiZm9jdXMtZXZlbnQgPSAwIiAvIE5hbWU6ICJiYXoiIC8gUm9sZTogMzQKK0FjY2Vzc2liaWxp
dHkgb2JqZWN0IGVtaXR0ZWQgInN0YXRlLWNoYW5nZTpmb2N1c2VkID0gMCIgLyBOYW1lOiAiYmF6
IiAvIFJvbGU6IDM0CitBY2Nlc3NpYmlsaXR5IG9iamVjdCBlbWl0dGVkICJzdGF0ZS1jaGFuZ2U6
c2VsZWN0ZWQgPSAxIiAvIE5hbWU6ICJiYXIiIC8gUm9sZTogMzQKK0FjY2Vzc2liaWxpdHkgb2Jq
ZWN0IGVtaXR0ZWQgImZvY3VzLWV2ZW50ID0gMSIgLyBOYW1lOiAiYmFyIiAvIFJvbGU6IDM0CitB
Y2Nlc3NpYmlsaXR5IG9iamVjdCBlbWl0dGVkICJzdGF0ZS1jaGFuZ2U6Zm9jdXNlZCA9IDEiIC8g
TmFtZTogImJhciIgLyBSb2xlOiAzNAorQWNjZXNzaWJpbGl0eSBvYmplY3QgZW1pdHRlZCAiZm9j
dXMtZXZlbnQgPSAxIiAvIE5hbWU6ICJmb28iIC8gUm9sZTogMTEKK0FjY2Vzc2liaWxpdHkgb2Jq
ZWN0IGVtaXR0ZWQgInN0YXRlLWNoYW5nZTpmb2N1c2VkID0gMSIgLyBOYW1lOiAiZm9vIiAvIFJv
bGU6IDExCitBY2Nlc3NpYmlsaXR5IG9iamVjdCBlbWl0dGVkICJmb2N1cy1ldmVudCA9IDAiIC8g
TmFtZTogImJhciIgLyBSb2xlOiAzNAorQWNjZXNzaWJpbGl0eSBvYmplY3QgZW1pdHRlZCAic3Rh
dGUtY2hhbmdlOmZvY3VzZWQgPSAwIiAvIE5hbWU6ICJiYXIiIC8gUm9sZTogMzQKK0FjY2Vzc2li
aWxpdHkgb2JqZWN0IGVtaXR0ZWQgInN0YXRlLWNoYW5nZTpzZWxlY3RlZCA9IDEiIC8gTmFtZTog
ImZvbyIgLyBSb2xlOiAzNAorQWNjZXNzaWJpbGl0eSBvYmplY3QgZW1pdHRlZCAiZm9jdXMtZXZl
bnQgPSAxIiAvIE5hbWU6ICJmb28iIC8gUm9sZTogMzQKK0FjY2Vzc2liaWxpdHkgb2JqZWN0IGVt
aXR0ZWQgInN0YXRlLWNoYW5nZTpmb2N1c2VkID0gMSIgLyBOYW1lOiAiZm9vIiAvIFJvbGU6IDM0
CitBY2Nlc3NpYmlsaXR5IG9iamVjdCBlbWl0dGVkICJsb2FkLWNvbXBsZXRlIiAvIE5hbWU6ICIo
Tm8gbmFtZSkiIC8gUm9sZTogODAKK0FjY2Vzc2liaWxpdHkgb2JqZWN0IGVtaXR0ZWQgInN0YXRl
LWNoYW5nZTpidXN5ID0gMCIgLyBOYW1lOiAiKE5vIG5hbWUpIiAvIFJvbGU6IDgwCisKK1RoaXMg
dGVzdHMgdGhhdCB0aGUgJ3N0YXRlLWNoYW5nZWQ6c2VsZWN0ZWQnIHNpZ25hbCBpcyBlbWl0dGVk
IHdoZW4gYXJyb3dpbmcgdGhyb3VnaCB0aGUgb3B0aW9ucyBvZiBhIGNvbWJvYm94IHdoaWxlIGNv
bGxhcHNlZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0eS9jb21iby1ib3gtY29sbGFwc2VkLXNlbGVj
dGlvbi1jaGFuZ2VkLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0
eS9jb21iby1ib3gtY29sbGFwc2VkLXNlbGVjdGlvbi1jaGFuZ2VkLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTliNDY1MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9hY2Nlc3NpYmlsaXR5L2NvbWJvLWJveC1jb2xsYXBzZWQtc2Vs
ZWN0aW9uLWNoYW5nZWQuaHRtbApAQCAtMCwwICsxLDQ1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJM
SUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJz
dHlsZXNoZWV0IiBocmVmPSIuLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdD4KK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSBmYWxzZTsKKwor
ZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdGhhdCB0aGUg
J3N0YXRlLWNoYW5nZWQ6c2VsZWN0ZWQnIHNpZ25hbCBpcyBlbWl0dGVkIHdoZW4gYXJyb3dpbmcg
dGhyb3VnaCB0aGUgb3B0aW9ucyBvZiBhIGNvbWJvYm94IHdoaWxlIGNvbGxhcHNlZC4iKTsKKwor
ICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcEFzVGV4dCgpOworICB9CisKKyAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlcikgeworICAgIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmxvZ0FjY2Vzc2liaWxpdHlF
dmVudHMoKTsKKyAgfQorCisgIC8vIEZvY3VzIGluIHRoZSBjb21ib2JveCBhbmQgbW92ZSBhcm91
bmQgdGhlIG9wdGlvbnMuIFRoZSBzaWduYWwKKyAgLy8gJ3N0YXRlLWNoYW5nZTpzZWxlY3RlZCcg
c2hvdWxkIGJlIGVtaXR0ZWQgd2l0aCBldmVyeSBjaGFuZ2UuCisgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJjb21ibyIpLmZvY3VzKCk7CisgIGV2ZW50U2VuZGVyLmtleURvd24oImRvd25BcnJv
dyIpOworICBldmVudFNlbmRlci5rZXlEb3duKCJkb3duQXJyb3ciKTsKKyAgZXZlbnRTZW5kZXIu
a2V5RG93bigidXBBcnJvdyIpOworICBldmVudFNlbmRlci5rZXlEb3duKCJ1cEFycm93Iik7Cit9
Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpOyI+Cis8Zm9ybT4K
KzxzZWxlY3QgaWQ9ImNvbWJvIj4KKzxvcHRpb24gc2VsZWN0ZWQgdmFsdWU9J2Zvbyc+Zm9vPC9v
cHRpb24+Cis8b3B0aW9uIHZhbHVlPSdiYXInPmJhcjwvb3B0aW9uPgorPG9wdGlvbiB2YWx1ZT0n
YmF6Jz5iYXo8L29wdGlvbj4KKzwvc2VsZWN0PgorPC9mb3JtPgorPHAgaWQ9ImRlc2NyaXB0aW9u
Ij48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitzdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCA4MTNjNDEyLi43YzdmZjFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAK
KzIwMTEtMDItMjUgIE1hcmlvIFNhbmNoZXogUHJhZGEgIDxtc2FuY2hlekBpZ2FsaWEuY29tPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHVEtdIENv
bWJvIGJveGVzIHNob3VsZCBlbWl0IG9iamVjdDpzZWxlY3Rpb24tY2hhbmdlZCBldmVuIHdoZW4g
Y29sbGFwc2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD01MzE0NgorCisgICAgICAgIEVtaXQgdGhlIHNlbGVjdGlvbi1jaGFuZ2VkIHNpZ25hbHMgd2hl
biB0aGUgbWVudSBsaXN0IHZhbHVlIGhhcyBjaGFuZ2VkCisKKyAgICAgICAgVGVzdDogcGxhdGZv
cm0vZ3RrL2FjY2Vzc2liaWxpdHkvY29tYm8tYm94LWNvbGxhcHNlZC1zZWxlY3Rpb24tY2hhbmdl
ZC5odG1sCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2d0ay9BWE9iamVjdENhY2hlQXRrLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmdldExpc3RPYmplY3QpOiBOZXcsIHJldHVybiB0aGUgcmln
aHQgbGlzdCBvYmplY3QgZm9yCisgICAgICAgIG1lbnUgbGlzdHMgYW5kIGxpc3QgYm94ZXMuCisg
ICAgICAgIChXZWJDb3JlOjpub3RpZnlDaGlsZHJlblNlbGVjdGlvbkNoYW5nZSk6IFN1cHBvcnQg
bWVudSBsaXN0cy4KKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9y
bU5vdGlmaWNhdGlvbik6IENhbGwgZnVuY3Rpb24KKyAgICAgICAgbm90aWZ5Q2hpbGRyZW5TZWxl
Y3Rpb25DaGFuZ2UgZm9yIEFYTWVudUxpc3RWYWx1ZUNoYW5nZWQuCisKIDIwMTEtMDItMjIgIEFu
ZHJhcyBCZWNzaSAgPGFiZWNzaUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IExh
c3psbyBHb21ib3MuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2d0
ay9BWE9iamVjdENhY2hlQXRrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3Rr
L0FYT2JqZWN0Q2FjaGVBdGsuY3BwCmluZGV4IGMzNDFhMmQuLjA3MDFlY2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0FYT2JqZWN0Q2FjaGVBdGsuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvZ3RrL0FYT2JqZWN0Q2FjaGVBdGsuY3Bw
CkBAIC00MiwzNCArNDIsNjcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjphdHRhY2hXcmFwcGVyKEFj
Y2Vzc2liaWxpdHlPYmplY3QqIG9iaikKICAgICBnX29iamVjdF91bnJlZihhdGtPYmopOwogfQog
Ci1zdGF0aWMgdm9pZCBub3RpZnlDaGlsZHJlblNlbGVjdGlvbkNoYW5nZShBY2Nlc3NpYmlsaXR5
T2JqZWN0KiBvYmplY3QpCitzdGF0aWMgQWNjZXNzaWJpbGl0eU9iamVjdCogZ2V0TGlzdE9iamVj
dChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QpCiB7Ci0gICAgLy8gVGhpcyBzdGF0aWMgdmFy
aWFibGUgaXMgbmVlZGVkIHRvIGtlZXAgdHJhY2sgb2YgdGhlIG9sZCBmb2N1c2VkCi0gICAgLy8g
b2JqZWN0IGFzIHBlciBwcmV2aW91cyBjYWxscyB0byB0aGlzIGZ1bmN0aW9uLCBpbiBvcmRlciB0
bwotICAgIC8vIHByb3Blcmx5IGRlY2lkZSB3aGV0aGVyIHRvIGVtaXQgc29tZSBzaWduYWxzIG9y
IG5vdC4KLSAgICBzdGF0aWMgUmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+IG9sZEZvY3VzZWRP
YmplY3QgPSAwOworICAgIC8vIE9ubHkgbGlzdCBib3hlcyBhbmQgbWVudSBsaXN0cyBzdXBwb3J0
ZWQgc28gZmFyLgorICAgIGlmICghb2JqZWN0LT5pc0xpc3RCb3goKSAmJiAhb2JqZWN0LT5pc01l
bnVMaXN0KCkpCisgICAgICAgIHJldHVybiAwOworCisgICAgLy8gRm9yIGxpc3QgYm94ZXMgdGhl
IGxpc3Qgb2JqZWN0IGlzIGp1c3QgaXRzZWxmLgorICAgIGlmIChvYmplY3QtPmlzTGlzdEJveCgp
KQorICAgICAgICByZXR1cm4gb2JqZWN0OworCisgICAgLy8gRm9yIG1lbnUgbGlzdHMgd2UgbmVl
ZCB0byByZXR1cm4gdGhlIGZpcnN0IGFjY2Vzc2libGUgY2hpbGQsCisgICAgLy8gd2l0aCByb2xl
IE1lbnVMaXN0UG9wdXBSb2xlLCBzaW5jZSB0aGF0J3MgdGhlIG9uZSBob2xkaW5nIHRoZSBsaXN0
CisgICAgLy8gb2YgaXRlbXMgd2l0aCByb2xlIE1lbnVMaXN0T3B0aW9uUm9sZS4KKyAgICBBY2Nl
c3NpYmlsaXR5T2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgY2hpbGRyZW4gPSBv
YmplY3QtPmNoaWxkcmVuKCk7CisgICAgaWYgKCFjaGlsZHJlbi5zaXplKCkpCisgICAgICAgIHJl
dHVybiAwOworCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogbGlzdE9iamVjdCA9IGNoaWxkcmVu
LmF0KDApLmdldCgpOworICAgIGlmICghbGlzdE9iamVjdC0+aXNNZW51TGlzdFBvcHVwKCkpCisg
ICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIGxpc3RPYmplY3Q7Cit9CiAKLSAgICAvLyBP
bmx5IGxpc3QgYm94ZXMgc3VwcG9ydGVkIHNvIGZhci4KLSAgICBpZiAoIW9iamVjdCB8fCAhb2Jq
ZWN0LT5pc0xpc3RCb3goKSkKK3N0YXRpYyB2b2lkIG5vdGlmeUNoaWxkcmVuU2VsZWN0aW9uQ2hh
bmdlKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCkKK3sKKyAgICAvLyBUaGlzIHN0YXRpYyB2
YXJpYWJsZXMgYXJlIG5lZWRlZCB0byBrZWVwIHRyYWNrIG9mIHRoZSBvbGQKKyAgICAvLyBmb2N1
c2VkIG9iamVjdCBhbmQgaXRzIGFzc29jaWF0ZWQgbGlzdCBvYmplY3QsIGFzIHBlciBwcmV2aW91
cworICAgIC8vIGNhbGxzIHRvIHRoaXMgZnVuY3Rpb24sIGluIG9yZGVyIHRvIHByb3Blcmx5IGRl
Y2lkZSB3aGV0aGVyIHRvCisgICAgLy8gZW1pdCBzb21lIHNpZ25hbHMgb3Igbm90LgorICAgIERF
RklORV9TVEFUSUNfTE9DQUwoUmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+LCBvbGRMaXN0T2Jq
ZWN0LCAoKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChSZWZQdHI8QWNjZXNzaWJpbGl0eU9i
amVjdD4sIG9sZEZvY3VzZWRPYmplY3QsICgpKTsKKworICAgIC8vIE9ubHkgbGlzdCBib3hlcyBh
bmQgbWVudSBsaXN0cyBzdXBwb3J0ZWQgc28gZmFyLgorICAgIGlmICghb2JqZWN0IHx8ICEob2Jq
ZWN0LT5pc0xpc3RCb3goKSB8fCBvYmplY3QtPmlzTWVudUxpc3QoKSkpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIC8vIEVtaXQgc2lnbmFsIGZyb20gdGhlIGxpc3Rib3gncyBwb2ludCBvZiB2aWV3
IGZpcnN0LgogICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShvYmplY3QtPndyYXBwZXIoKSwgInNl
bGVjdGlvbi1jaGFuZ2VkIik7CiAKICAgICAvLyBGaW5kIHRoZSBpdGVtIHdoZXJlIHRoZSBzZWxl
Y3Rpb24gY2hhbmdlIHdhcyB0cmlnZ2VyZWQgZnJvbS4KLSAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0
OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgaXRlbXMgPSBvYmplY3QtPmNoaWxkcmVuKCk7
CiAgICAgU2VsZWN0RWxlbWVudCogc2VsZWN0ID0gdG9TZWxlY3RFbGVtZW50KHN0YXRpY19jYXN0
PEVsZW1lbnQqPihvYmplY3QtPm5vZGUoKSkpOwogICAgIGlmICghc2VsZWN0KQogICAgICAgICBy
ZXR1cm47CiAgICAgaW50IGNoYW5nZWRJdGVtSW5kZXggPSBzZWxlY3QtPmFjdGl2ZVNlbGVjdGlv
blN0YXJ0TGlzdEluZGV4KCk7CisKKyAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBsaXN0T2JqZWN0
ID0gZ2V0TGlzdE9iamVjdChvYmplY3QpOworICAgIGlmICghbGlzdE9iamVjdCkgeworICAgICAg
ICBvbGRMaXN0T2JqZWN0ID0gMDsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEFjY2Vz
c2liaWxpdHlPYmplY3Q6OkFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBpdGVtcyA9IGxpc3RP
YmplY3QtPmNoaWxkcmVuKCk7CiAgICAgaWYgKGNoYW5nZWRJdGVtSW5kZXggPCAwIHx8IGNoYW5n
ZWRJdGVtSW5kZXggPj0gc3RhdGljX2Nhc3Q8aW50PihpdGVtcy5zaXplKCkpKQogICAgICAgICBy
ZXR1cm47CiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogaXRlbSA9IGl0ZW1zLmF0KGNoYW5nZWRJ
dGVtSW5kZXgpLmdldCgpOwogCi0gICAgLy8gRW5zdXJlIHRoZSBvbGRGb2N1c2VkT2JqZWN0IGJl
bG9uZ3MgdG8gdGhlIHNhbWUgZG9jdW1lbnQgdGhhdAotICAgIC8vIHRoZSBjdXJyZW50IGl0ZW0g
c28gZnVydGhlciBjb21wYXJpc29ucyBtYWtlIHNlbnNlLiBPdGhlcndpc2UsCi0gICAgLy8ganVz
dCByZXNldCBvbGRGb2N1c2VkT2JqZWN0IHNvIGl0IHdvbid0IGJlIHRha2VuIGludG8gYWNjb3Vu
dC4KLSAgICBpZiAoaXRlbSAmJiBvbGRGb2N1c2VkT2JqZWN0ICYmIGl0ZW0tPmRvY3VtZW50KCkg
IT0gb2xkRm9jdXNlZE9iamVjdC0+ZG9jdW1lbnQoKSkKKyAgICAvLyBFbnN1cmUgdGhlIGN1cnJl
bnQgbGlzdCBvYmplY3QgaXMgdGhlIHNhbWUgdGhhbiB0aGUgb2xkIG9uZSBzbworICAgIC8vIGZ1
cnRoZXIgY29tcGFyaXNvbnMgbWFrZSBzZW5zZS4gT3RoZXJ3aXNlLCBqdXN0IHJlc2V0CisgICAg
Ly8gb2xkRm9jdXNlZE9iamVjdCBzbyBpdCB3b24ndCBiZSB0YWtlbiBpbnRvIGFjY291bnQuCisg
ICAgaWYgKG9sZExpc3RPYmplY3QgIT0gbGlzdE9iamVjdCkKICAgICAgICAgb2xkRm9jdXNlZE9i
amVjdCA9IDA7CiAKICAgICBBdGtPYmplY3QqIGF4SXRlbSA9IGl0ZW0gPyBpdGVtLT53cmFwcGVy
KCkgOiAwOwpAQCAtODksNyArMTIyLDggQEAgc3RhdGljIHZvaWQgbm90aWZ5Q2hpbGRyZW5TZWxl
Y3Rpb25DaGFuZ2UoQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0KQogICAgICAgICBnX3NpZ25h
bF9lbWl0X2J5X25hbWUoYXhJdGVtLCAic3RhdGUtY2hhbmdlIiwgImZvY3VzZWQiLCBpc1NlbGVj
dGVkKTsKICAgICB9CiAKLSAgICAvLyBVcGRhdGUgcG9pbnRlciB0byB0aGUgcHJldmlvdXNseSBm
b2N1c2VkIG9iamVjdC4KKyAgICAvLyBVcGRhdGUgcG9pbnRlcnMgdG8gdGhlIHByZXZpb3VzbHkg
aW52b2x2ZWQgb2JqZWN0cy4KKyAgICBvbGRMaXN0T2JqZWN0ID0gbGlzdE9iamVjdDsKICAgICBv
bGRGb2N1c2VkT2JqZWN0ID0gaXRlbTsKIH0KIApAQCAtMTAzLDEzICsxMzcsMTMgQEAgdm9pZCBB
WE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVj
dCogY29yZU9iamVjdCwgQVgKICAgICAgICAgaWYgKCFjb3JlT2JqZWN0LT5pc0NoZWNrYm94T3JS
YWRpbygpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBnX3NpZ25hbF9lbWl0X2J5X25h
bWUoYXhPYmplY3QsICJzdGF0ZS1jaGFuZ2UiLCAiY2hlY2tlZCIsIGNvcmVPYmplY3QtPmlzQ2hl
Y2tlZCgpKTsKLSAgICB9IGVsc2UgaWYgKG5vdGlmaWNhdGlvbiA9PSBBWE1lbnVMaXN0VmFsdWVD
aGFuZ2VkKSB7Ci0gICAgICAgIGlmICghY29yZU9iamVjdC0+aXNNZW51TGlzdCgpKQotICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUoYXhPYmplY3QsICJm
b2N1cy1ldmVudCIsIHRydWUpOwotICAgICAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUoYXhPYmpl
Y3QsICJzdGF0ZS1jaGFuZ2UiLCAiZm9jdXNlZCIsIHRydWUpOwotICAgIH0gZWxzZSBpZiAobm90
aWZpY2F0aW9uID09IEFYU2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQpCisgICAgfSBlbHNlIGlmIChu
b3RpZmljYXRpb24gPT0gQVhTZWxlY3RlZENoaWxkcmVuQ2hhbmdlZCB8fCBub3RpZmljYXRpb24g
PT0gQVhNZW51TGlzdFZhbHVlQ2hhbmdlZCkgeworICAgICAgICBpZiAobm90aWZpY2F0aW9uID09
IEFYTWVudUxpc3RWYWx1ZUNoYW5nZWQgJiYgY29yZU9iamVjdC0+aXNNZW51TGlzdCgpKSB7Cisg
ICAgICAgICAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUoYXhPYmplY3QsICJmb2N1cy1ldmVudCIs
IHRydWUpOworICAgICAgICAgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKGF4T2JqZWN0LCAic3Rh
dGUtY2hhbmdlIiwgImZvY3VzZWQiLCB0cnVlKTsKKyAgICAgICAgfQogICAgICAgICBub3RpZnlD
aGlsZHJlblNlbGVjdGlvbkNoYW5nZShjb3JlT2JqZWN0KTsKKyAgICB9CiB9CiAKIHN0YXRpYyB2
b2lkIGVtaXRUZXh0Q2hhbmdlZChBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0KiBvYmplY3QsIEFY
T2JqZWN0Q2FjaGU6OkFYVGV4dENoYW5nZSB0ZXh0Q2hhbmdlLCB1bnNpZ25lZCBvZmZzZXQsIHVu
c2lnbmVkIGNvdW50KQotLSAKMS43LjMuNQoK
</data>

          </attachment>
      

    </bug>

</bugzilla>