<?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>181516</bug_id>
          
          <creation_ts>2018-01-10 20:20:44 -0800</creation_ts>
          <short_desc>Elements of zero width or height is not focusable</short_desc>
          <delta_ts>2018-02-19 21:37:21 -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>UI Events</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>cdumez</cc>
    
    <cc>dbates</cc>
    
    <cc>hi</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1388053</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-01-10 20:20:44 -0800</bug_when>
    <thetext>Right now, input elements, SVG anchor elements, and MathML elements are not focusable while their width or height is zero.

This is an ancient behavior introduced in https://trac.webkit.org/changeset/5327 and https://trac.webkit.org/changeset/5598 but does not match other browsers&apos; behaviors.

Remove this restriction so that any element can be focused regardless of its CSS box size.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1388398</commentid>
    <comment_count>1</comment_count>
      <attachid>331102</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-01-11 13:12:26 -0800</bug_when>
    <thetext>Created attachment 331102
Fixes the bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1388477</commentid>
    <comment_count>2</comment_count>
      <attachid>331102</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-01-11 14:30:44 -0800</bug_when>
    <thetext>Comment on attachment 331102
Fixes the bug

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1388566</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-01-11 16:57:01 -0800</bug_when>
    <thetext>Committed r226823: &lt;https://trac.webkit.org/changeset/226823&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1388568</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-01-11 16:58:44 -0800</bug_when>
    <thetext>&lt;rdar://problem/36454514&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1388838</commentid>
    <comment_count>5</comment_count>
      <attachid>331102</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-01-12 10:29:13 -0800</bug_when>
    <thetext>Comment on attachment 331102
Fixes the bug

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

&gt; LayoutTests/fast/events/focus-zero-size-element.html:6
&gt; +&lt;body&gt;
&gt; +&lt;style&gt;
&gt; +input { padding: 0; margin: 0; border: none; }
&gt; +&lt;/style&gt;

This document is not well-formed per the HTML living standard. In particular, this section of the document is not well-formed. Although WebKit is lenient with regards to &lt;style&gt; as a child of &lt;body&gt;, for the purposes of this test &lt;style&gt; should only appear as a child of &lt;head&gt;.

See &quot;Contexts in which this element can be used&quot; of section style element of the HTML living standard: &lt;https://html.spec.whatwg.org/multipage/semantics.html#the-style-element&gt; (12 January 2018).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1388852</commentid>
    <comment_count>6</comment_count>
      <attachid>331102</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-01-12 10:52:02 -0800</bug_when>
    <thetext>Comment on attachment 331102
Fixes the bug

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

&gt; LayoutTests/fast/events/focus-zero-size-element.html:22
&gt; +shouldBe(&apos;div = insertElement(&quot;div&quot;, {tabindex: 0}); div.focus(); document.activeElement&apos;, &apos;div&apos;);

I find this hard to read because we are abusing the evaluation mechanics of shouldBe() to perform more than once thing: create the test element, focus it, and check a result. Although each one of this actions is simple and it is unlikely that we will regress this functionality, the abuse of shouldBe() makes debugging a failure of this subtest more difficult because a person cannot use the Web Inspector to easily step through each expression when the first argument to shouldBe() is evaluated and will need to manually perform the steps. I suggest that we separate the test setup logic (creating the element and focusing it) from the logic to test correction (the call to shouldBe()). This has the benefit that is makes the test code straightforward to read and straightforward to debug.

On another note, is it necessary to programmatically create the HTML div element? It may also help readability to declaratively create this element.

&gt; LayoutTests/fast/events/focus-zero-size-element.html:23
&gt; +shouldBe(&apos;zeroWidthInput = insertElement(&quot;input&quot;, {style: &quot;width: 0px&quot;}); zeroWidthInput.focus(); document.activeElement&apos;, &apos;zeroWidthInput&apos;);

Ditto.

&gt; LayoutTests/fast/events/focus-zero-size-element.html:24
&gt; +evalAndLog(&apos;div.innerHTML = &quot;&amp;lt;svg&gt;&amp;lt;a tabindex=0 x=10 y=20&gt;&amp;lt;text x=10 y=20&gt;&amp;lt;/text&gt;&amp;lt;/a&gt;&amp;lt;/svg&gt;&quot;.replace(/&amp;lt;/g, &quot;&lt;&quot;); svgA = div.querySelector(&quot;a&quot;);&apos;);

Is it necessary to programmatically create this element? Is it necessary to programmatically create the SVG hierarchy using innerHTML? Programmatic creation, especially via an innerHTML for non-trivial markup, makes the test hard to read because we need to HTML entity encode characters among other things. Moreover since the test creates these elements in the same  Using declarative markup, putting as much style information in &lt;style&gt;, and then focus()ing the elements defined by this markup would likely improve the readability of this test. Improving the readability of this test can help make it more straightforward to understand and debug this test should the functionality exercised by the test regress.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1388862</commentid>
    <comment_count>7</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-01-12 11:03:54 -0800</bug_when>
    <thetext>(In reply to Daniel Bates from comment #6)
&gt; Comment on attachment 331102 [details]
&gt; Fixes the bug
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=331102&amp;action=review
&gt; 
&gt; &gt; LayoutTests/fast/events/focus-zero-size-element.html:22
&gt; &gt; +shouldBe(&apos;div = insertElement(&quot;div&quot;, {tabindex: 0}); div.focus(); document.activeElement&apos;, &apos;div&apos;);
&gt; 
&gt; I find this hard to read because we are abusing the evaluation mechanics of
&gt; shouldBe() to perform more than once thing: create the test element, focus
&gt; it, and check a result. Although each one of this actions is simple and it
&gt; is unlikely that we will regress this functionality, the abuse of shouldBe()
&gt; makes debugging a failure of this subtest more difficult because a person
&gt; cannot use the Web Inspector to easily step through each expression when the
&gt; first argument to shouldBe() is evaluated and will need to manually perform
&gt; the steps. I suggest that we separate the test setup logic (creating the
&gt; element and focusing it) from the logic to test correction (the call to
&gt; shouldBe()). This has the benefit that is makes the test code
&gt; straightforward to read and straightforward to debug.
&gt; 

This should read:

I find this hard to read because we are abusing the evaluation mechanics of shouldBe() to perform more than one thing: create the test element, focus it, and check a result. Although each one of these actions is simple and is unlikely to regress (or will be noticeable from the failure of many other tests), the abuse of shouldBe() makes debugging a failure of this subtest more difficult because a person cannot use Web Inspector to easily step through each subexpression when the first argument to shouldBe() is evaluated (since shouldBe() calls eval() on its arguments). A person will need to extract the string-encoded subexpressions inside the first argument passed to shouldBe() into actual JavaScript code to debug a regression. I suggest that we do this separation in the test itself. That is, separate the test setup logic (creating the element and focusing it) from the logic to test correction (the call to shouldBe()). This has the benefit that is makes the test code straightforward to read and straightforward to debug

&gt; &gt; LayoutTests/fast/events/focus-zero-size-element.html:24
&gt; &gt; +evalAndLog(&apos;div.innerHTML = &quot;&amp;lt;svg&gt;&amp;lt;a tabindex=0 x=10 y=20&gt;&amp;lt;text x=10 y=20&gt;&amp;lt;/text&gt;&amp;lt;/a&gt;&amp;lt;/svg&gt;&quot;.replace(/&amp;lt;/g, &quot;&lt;&quot;); svgA = div.querySelector(&quot;a&quot;);&apos;);
&gt; 
&gt; Is it necessary to programmatically create this element? Is it necessary to
&gt; programmatically create the SVG hierarchy using innerHTML? ...
&gt; Moreover since the test creates these elements in the same 

This should read:

Moreover, we need to perform a dance with quoting since we need to string-encode all this logic so that it can be eval()ed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1388970</commentid>
    <comment_count>8</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-01-12 15:03:16 -0800</bug_when>
    <thetext>I always prefer creating elements inside shouldBe because it would document everything in the expected result. If shouldBe only contained reference to an element, I&apos;d have to open the test file to understand what kind of element it is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1400664</commentid>
    <comment_count>9</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-02-19 21:37:21 -0800</bug_when>
    <thetext>*** Bug 173026 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>331102</attachid>
            <date>2018-01-11 13:12:26 -0800</date>
            <delta_ts>2018-01-11 14:30:44 -0800</delta_ts>
            <desc>Fixes the bug</desc>
            <filename>bug-181516-20180111131226.patch</filename>
            <type>text/plain</type>
            <size>9113</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyNjc1NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDE4LTAxLTEwICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIE1ha2UgZWxlbWVudHMgb2YgemVy
byB3aWR0aCBvciBoZWlnaHQgZm9jdXNhYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xODE1MTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBEb24ndCBjaGVjayByZW5kZXIgYm94J3Mgc2l6ZSBvciBib3Vu
ZGluZyByZWN0IHdoZW4gZGVjaWRpbmcgd2hldGhlciBhbiBlbGVtZW50IGlzIGZvY3VzYWJsZS4K
KyAgICAgICAgTmV3IGJlaGF2aW9yIG1hdGNoZXMgdGhhdCBvZiBGaXJlZm94IGFuZCBDaHJvbWUu
CisKKyAgICAgICAgVGVzdDogZmFzdC9ldmVudHMvZm9jdXMtemVyby1zaXplLWVsZW1lbnQuaHRt
bAorCisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVu
dDo6aXNGb2N1c2FibGUpOiBPbmx5IHVwZGF0ZSB0aGUgc3R5bGUuCisgICAgICAgICogaHRtbC9I
VE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtQ29u
dHJvbEVsZW1lbnQ6OmlzRm9jdXNhYmxlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1s
L0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaDoKKyAgICAgICAgKiBtYXRobWwvTWF0aE1MRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNYXRoTUxFbGVtZW50Ojppc0ZvY3VzYWJsZSBjb25z
dCk6IERlbGV0ZWQuIEFzIGZhciBhcyBJIGNhbiB0ZWxsLCBubyBtYXRoIG1sIGVsZW1lbnQgaXMg
Zm9jdXNhYmxlLgorICAgICAgICAqIG1hdGhtbC9NYXRoTUxFbGVtZW50Lmg6CisgICAgICAgICog
c3ZnL1NWR0FFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FFbGVtZW50Ojppc0Zv
Y3VzYWJsZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogc3ZnL1NWR0FFbGVtZW50Lmg6CisK
IDIwMTgtMDEtMTAgIEJhc3VrZSBTdXp1a2kgIDxCYXN1a2UuU3V6dWtpQHNvbnkuY29tPgogCiAg
ICAgICAgIFtDdXJsXSBDcm9zcy1wcm90b2NvbCwgY3Jvc3Mtc2l0ZSBzY3JpcHRpbmcgKFhQWFNT
KSB1c2luZyBIVE1MIGZvcm1zCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCShyZXZpc2lvbiAy
MjY3NDUpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI0MDIsNyArMjQwMiw3IEBAIHZvaWQgRWxlbWVudDo6Zm9jdXMoYm9vbCByZXN0b3JlUHJl
dmlvdXMKICAgICAvLyBJZiBub3QsIHdlIGNvbnRpbnVlIGFuZCBzZXQgdGhlIGZvY3VzZWQgbm9k
ZSBvbiB0aGUgZm9jdXMgY29udHJvbGxlciBiZWxvdyBzbwogICAgIC8vIHRoYXQgaXQgY2FuIGJl
IHVwZGF0ZWQgc29vbiBhZnRlciBhdHRhY2guIAogICAgIGlmIChkb2N1bWVudCgpLmhhdmVTdHls
ZXNoZWV0c0xvYWRlZCgpKSB7Ci0gICAgICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3Jl
UGVuZGluZ1N0eWxlc2hlZXRzKCk7CisgICAgICAgIGRvY3VtZW50KCkudXBkYXRlU3R5bGVJZk5l
ZWRlZCgpOwogICAgICAgICBpZiAoIWlzRm9jdXNhYmxlKCkpCiAgICAgICAgICAgICByZXR1cm47
CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVs
ZW1lbnQuY3BwCShyZXZpc2lvbiAyMjY3NDUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxG
b3JtQ29udHJvbEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNTcsMTcgKzM1Nyw2IEBA
IGJvb2wgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6c3VwcG9ydHNGb2MKICAgICByZXR1cm4gIWlz
RGlzYWJsZWRGb3JtQ29udHJvbCgpOwogfQogCi1ib29sIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6
OmlzRm9jdXNhYmxlKCkgY29uc3QKLXsKLSAgICAvLyBJZiB0aGVyZSdzIGEgcmVuZGVyZXIsIG1h
a2Ugc3VyZSB0aGUgc2l6ZSBpc24ndCBlbXB0eSwgYnV0IGlmIHRoZXJlJ3Mgbm8gcmVuZGVyZXIs
Ci0gICAgLy8gaXQgbWlnaHQgc3RpbGwgYmUgZm9jdXNhYmxlIGlmIGl0J3MgaW4gYSBjYW52YXMg
c3VidHJlZSAoaGFuZGxlZCBpbiBOb2RlOjppc0ZvY3VzYWJsZSkuCi0gICAgaWYgKHJlbmRlcmVy
KCkgJiYgKCFpczxSZW5kZXJCb3g+KCpyZW5kZXJlcigpKSB8fCBkb3duY2FzdDxSZW5kZXJCb3g+
KCpyZW5kZXJlcigpKS5zaXplKCkuaXNFbXB0eSgpKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIC8vIEhUTUxFbGVtZW50Ojppc0ZvY3VzYWJsZSBoYW5kbGVzIHZpc2liaWxpdHkgYW5kIGNh
bGxzIHN1cG9ydHNGb2N1cyB3aGljaAotICAgIC8vIHdpbGwgY292ZXIgdGhlIGRpc2FibGVkIGNh
c2UuCi0gICAgcmV0dXJuIEhUTUxFbGVtZW50Ojppc0ZvY3VzYWJsZSgpOwotfQotCiBib29sIEhU
TUxGb3JtQ29udHJvbEVsZW1lbnQ6OmlzS2V5Ym9hcmRGb2N1c2FibGUoS2V5Ym9hcmRFdmVudCYg
ZXZlbnQpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGlzRm9jdXNhYmxlKCkKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oCShyZXZpc2lvbiAyMjY3NDUp
CisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNzIsNyArNzIsNiBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzRGlzYWJsZWRG
b3JtQ29udHJvbCgpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgYm9vbCBpc0ZvY3VzYWJsZSgpIGNv
bnN0IG92ZXJyaWRlOwogICAgIGJvb2wgaXNFbnVtZXJhdGFibGUoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiBmYWxzZTsgfQogCiAgICAgYm9vbCBpc1JlcXVpcmVkKCkgY29uc3Q7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTEVsZW1lbnQuY3BwCShyZXZpc2lvbiAyMjY3NDUpCisr
KyBTb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTE2NywxNCArMTY3LDYgQEAgYm9vbCBNYXRoTUxFbGVtZW50OjpjYW5TdGFydFNlbGVjdGlv
bigpIAogICAgIHJldHVybiBoYXNFZGl0YWJsZVN0eWxlKCk7CiB9CiAKLWJvb2wgTWF0aE1MRWxl
bWVudDo6aXNGb2N1c2FibGUoKSBjb25zdAotewotICAgIGlmIChyZW5kZXJlcigpICYmIHJlbmRl
cmVyKCktPmFic29sdXRlQ2xpcHBlZE92ZXJmbG93UmVjdCgpLmlzRW1wdHkoKSkKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotCi0gICAgcmV0dXJuIFN0eWxlZEVsZW1lbnQ6OmlzRm9jdXNhYmxlKCk7
Ci19Ci0KIGJvb2wgTWF0aE1MRWxlbWVudDo6aXNLZXlib2FyZEZvY3VzYWJsZShLZXlib2FyZEV2
ZW50JiBldmVudCkgY29uc3QKIHsKICAgICBpZiAoaXNGb2N1c2FibGUoKSAmJiBTdHlsZWRFbGVt
ZW50OjpzdXBwb3J0c0ZvY3VzKCkpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1M
RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxFbGVt
ZW50LmgJKHJldmlzaW9uIDIyNjc0NSkKKysrIFNvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxF
bGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTEwNSw3ICsxMDUsNiBAQCBwcm90ZWN0ZWQ6CiAK
IHByaXZhdGU6CiAgICAgYm9vbCBjYW5TdGFydFNlbGVjdGlvbigpIGNvbnN0IGZpbmFsOwotICAg
IGJvb2wgaXNGb2N1c2FibGUoKSBjb25zdCBmaW5hbDsKICAgICBib29sIGlzS2V5Ym9hcmRGb2N1
c2FibGUoS2V5Ym9hcmRFdmVudCYpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgaXNNb3VzZUZvY3Vz
YWJsZSgpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgaXNVUkxBdHRyaWJ1dGUoY29uc3QgQXR0cmli
dXRlJikgY29uc3QgZmluYWw7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5jcHAJKHJl
dmlzaW9uIDIyNjc0NSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTE2NiwxNCArMTY2LDYgQEAgYm9vbCBTVkdBRWxlbWVudDo6c3VwcG9y
dHNGb2N1cygpIGNvbnN0CiAgICAgcmV0dXJuIGlzTGluaygpIHx8IEVsZW1lbnQ6OnN1cHBvcnRz
Rm9jdXMoKTsKIH0KIAotYm9vbCBTVkdBRWxlbWVudDo6aXNGb2N1c2FibGUoKSBjb25zdAotewot
ICAgIGlmIChyZW5kZXJlcigpICYmIHJlbmRlcmVyKCktPmFic29sdXRlQ2xpcHBlZE92ZXJmbG93
UmVjdCgpLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAotICAgIHJldHVy
biBTVkdFbGVtZW50Ojppc0ZvY3VzYWJsZSgpOwotfQotCiBib29sIFNWR0FFbGVtZW50Ojppc1VS
TEF0dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUmIGF0dHJpYnV0ZSkgY29uc3QKIHsKICAgICByZXR1
cm4gYXR0cmlidXRlLm5hbWUoKS5sb2NhbE5hbWUoKSA9PSBYTGlua05hbWVzOjpocmVmQXR0ciB8
fCBTVkdHcmFwaGljc0VsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKGF0dHJpYnV0ZSk7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQUVsZW1lbnQuaAkocmV2aXNpb24gMjI2NzQ1KQorKysgU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0FFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTUzLDcgKzUzLDYgQEAgcHJp
dmF0ZToKICAgICBib29sIHN1cHBvcnRzRm9jdXMoKSBjb25zdCBmaW5hbDsKICAgICBib29sIGlz
TW91c2VGb2N1c2FibGUoKSBjb25zdCBmaW5hbDsKICAgICBib29sIGlzS2V5Ym9hcmRGb2N1c2Fi
bGUoS2V5Ym9hcmRFdmVudCYpIGNvbnN0IGZpbmFsOwotICAgIGJvb2wgaXNGb2N1c2FibGUoKSBj
b25zdCBmaW5hbDsKICAgICBib29sIGlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYpIGNv
bnN0IGZpbmFsOwogICAgIGJvb2wgY2FuU3RhcnRTZWxlY3Rpb24oKSBjb25zdCBmaW5hbDsKICAg
ICBpbnQgdGFiSW5kZXgoKSBjb25zdCBmaW5hbDsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyNjc0NSkK
KysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBA
CisyMDE4LTAxLTEwICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAg
IE1ha2UgZWxlbWVudHMgb2YgemVybyB3aWR0aCBvciBoZWlnaHQgZm9jdXNhYmxlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODE1MTYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBhIHJlZ3Jlc3Np
b24gdGVzdC4KKworICAgICAgICAqIGZhc3QvZXZlbnRzL2ZvY3VzLXplcm8tc2l6ZS1lbGVtZW50
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvZm9jdXMtemVyby1z
aXplLWVsZW1lbnQuaHRtbDogQWRkZWQuCisKIDIwMTgtMDEtMTAgIFlvdWVubiBGYWJsZXQgIDx5
b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBuby1jYWNoZSBmZXRjaCBtb2RlIHdoZW4g
bG9hZGluZyBtYWluIGRvY3VtZW50cyB3aXRoIGxvY2F0aW9uLnJlbG9hZCgpCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9mb2N1cy16ZXJvLXNpemUtZWxlbWVudC1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZm9jdXMtemVyby1zaXplLWVs
ZW1lbnQtZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL2ZvY3VzLXplcm8tc2l6ZS1lbGVtZW50LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDE1IEBACitUaGlzIHRlc3RzIGZvY3VzaW5nIGFuIGVsZW1lbnQgb2YgemVybyB3
aWR0aCBvciBoZWlnaHQuIFdlYktpdCBzaG91bGQgYWxsb3cgZm9jdXNpbmcgc3VjaCBhbiBlbGVt
ZW50CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGlucHV0ID0gaW5zZXJ0
RWxlbWVudCgiaW5wdXQiKTsgaW5wdXQuZm9jdXMoKTsgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBp
cyBpbnB1dAorUEFTUyBkaXYgPSBpbnNlcnRFbGVtZW50KCJkaXYiLCB7dGFiaW5kZXg6IDB9KTsg
ZGl2LmZvY3VzKCk7IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgaXMgZGl2CitQQVNTIHplcm9XaWR0
aElucHV0ID0gaW5zZXJ0RWxlbWVudCgiaW5wdXQiLCB7c3R5bGU6ICJ3aWR0aDogMHB4In0pOyB6
ZXJvV2lkdGhJbnB1dC5mb2N1cygpOyBkb2N1bWVudC5hY3RpdmVFbGVtZW50IGlzIHplcm9XaWR0
aElucHV0CitkaXYuaW5uZXJIVE1MID0gIjxzdmc+PGEgdGFiaW5kZXg9MCB4PTEwIHk9MjA+PHRl
eHQgeD0xMCB5PTIwPjwvdGV4dD48L2E+PC9zdmc+Ii5yZXBsYWNlKC88L2csICI8Iik7IHN2Z0Eg
PSBkaXYucXVlcnlTZWxlY3RvcigiYSIpOworUEFTUyBzdmdBLmZvY3VzKCk7IGRvY3VtZW50LmFj
dGl2ZUVsZW1lbnQgaXMgc3ZnQQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZm9jdXMtemVy
by1zaXplLWVsZW1lbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy9mb2N1cy16ZXJvLXNpemUtZWxlbWVudC5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL2ZvY3VzLXplcm8tc2l6ZS1lbGVtZW50Lmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSwzMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHN0
eWxlPgoraW5wdXQgeyBwYWRkaW5nOiAwOyBtYXJnaW46IDA7IGJvcmRlcjogbm9uZTsgfQorPC9z
dHlsZT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdD4KKworZGVzY3JpcHRpb24oJ1RoaXMgdGVzdHMgZm9jdXNpbmcgYW4gZWxl
bWVudCBvZiB6ZXJvIHdpZHRoIG9yIGhlaWdodC4gV2ViS2l0IHNob3VsZCBhbGxvdyBmb2N1c2lu
ZyBzdWNoIGFuIGVsZW1lbnQnKTsKKworZnVuY3Rpb24gaW5zZXJ0RWxlbWVudChuYW1lLCBhdHRy
aWJ1dGVzID0ge30pCit7CisgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQobmFtZSk7CisgICAgZm9yIChjb25zdCBuYW1lIGluIGF0dHJpYnV0ZXMpCisgICAgICAgIGVs
ZW1lbnQuc2V0QXR0cmlidXRlKG5hbWUsIGF0dHJpYnV0ZXNbbmFtZV0pOworICAgIGRvY3VtZW50
LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CisgICAgcmV0dXJuIGVsZW1lbnQ7Cit9CisKK3No
b3VsZEJlKCdpbnB1dCA9IGluc2VydEVsZW1lbnQoImlucHV0Iik7IGlucHV0LmZvY3VzKCk7IGRv
Y3VtZW50LmFjdGl2ZUVsZW1lbnQnLCAnaW5wdXQnKTsKK3Nob3VsZEJlKCdkaXYgPSBpbnNlcnRF
bGVtZW50KCJkaXYiLCB7dGFiaW5kZXg6IDB9KTsgZGl2LmZvY3VzKCk7IGRvY3VtZW50LmFjdGl2
ZUVsZW1lbnQnLCAnZGl2Jyk7CitzaG91bGRCZSgnemVyb1dpZHRoSW5wdXQgPSBpbnNlcnRFbGVt
ZW50KCJpbnB1dCIsIHtzdHlsZTogIndpZHRoOiAwcHgifSk7IHplcm9XaWR0aElucHV0LmZvY3Vz
KCk7IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQnLCAnemVyb1dpZHRoSW5wdXQnKTsKK2V2YWxBbmRM
b2coJ2Rpdi5pbm5lckhUTUwgPSAiJmx0O3N2Zz4mbHQ7YSB0YWJpbmRleD0wIHg9MTAgeT0yMD4m
bHQ7dGV4dCB4PTEwIHk9MjA+Jmx0Oy90ZXh0PiZsdDsvYT4mbHQ7L3N2Zz4iLnJlcGxhY2UoLyZs
dDsvZywgIjwiKTsgc3ZnQSA9IGRpdi5xdWVyeVNlbGVjdG9yKCJhIik7Jyk7CitzaG91bGRCZSgn
c3ZnQS5mb2N1cygpOyBkb2N1bWVudC5hY3RpdmVFbGVtZW50JywgJ3N2Z0EnKTsKKworc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>
<flag name="review"
          id="350093"
          type_id="1"
          status="+"
          setter="cdumez"
    />
          </attachment>
      

    </bug>

</bugzilla>