<?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>12384</bug_id>
          
          <creation_ts>2007-01-23 11:41:15 -0800</creation_ts>
          <short_desc>getComputedStyle with td.style.display=&apos;none&apos; reports &apos;&apos; for all properties except display</short_desc>
          <delta_ts>2007-07-08 14:13:09 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>GoogleBug, InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Steven Saviano">ssaviano</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>darin</cc>
    
    <cc>mitz</cc>
    
    <cc>troyb</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>32995</commentid>
    <comment_count>0</comment_count>
    <who name="Steven Saviano">ssaviano</who>
    <bug_when>2007-01-23 11:41:15 -0800</bug_when>
    <thetext>Summary:
1) Make a table with td&apos;s
2) Set one of the td&apos;s display to &quot;none&quot;
3) getComputedStyle on that td will report that element&apos;s display as &quot;&quot; (empty string)

This was tested with TOT Webkit (r19043).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>32996</commentid>
    <comment_count>1</comment_count>
      <attachid>12631</attachid>
    <who name="Steven Saviano">ssaviano</who>
    <bug_when>2007-01-23 11:42:15 -0800</bug_when>
    <thetext>Created attachment 12631
Test Case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>33002</commentid>
    <comment_count>2</comment_count>
    <who name="">mitz</who>
    <bug_when>2007-01-23 11:51:56 -0800</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of 4125 ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>33006</commentid>
    <comment_count>3</comment_count>
    <who name="">mitz</who>
    <bug_when>2007-01-23 11:54:08 -0800</bug_when>
    <thetext>Sorry, this is not a duplicate of bug 4125.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>33007</commentid>
    <comment_count>4</comment_count>
    <who name="">mitz</who>
    <bug_when>2007-01-23 11:55:03 -0800</bug_when>
    <thetext>True for all properties of all objects that do not have a renderer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>32608</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-01-25 08:41:11 -0800</bug_when>
    <thetext>Hyatt and I discussed how to fix this a long time ago.

We need to change the CSS style selector so it can create a style for a DOM element that does not have a RenderObject, which should be relatively straightforward. Then we need to create a cache of these RenderStyle objects for elements they have been computed for -- presumably a HashMap. We need to invalidate the styles in the cache when changes are made to the element. And we need to make the computed style look up the RenderStyle in this cache.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>31327</commentid>
    <comment_count>6</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2007-01-28 15:43:49 -0800</bug_when>
    <thetext>&lt;rdar://problem/4960104&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>25388</commentid>
    <comment_count>7</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2007-02-07 01:19:05 -0800</bug_when>
    <thetext>Although an annoying bug, this has workarounds and is not a regression, thus not P1.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>16070</commentid>
    <comment_count>8</comment_count>
    <who name="">mitz</who>
    <bug_when>2007-03-31 09:05:59 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; True for all properties of all objects that do not have a renderer.
&gt; 

Starting with &lt;http://trac.webkit.org/projects/webkit/changeset/20570&gt;, this is true for all properties *except* display.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>5226</commentid>
    <comment_count>9</comment_count>
      <attachid>15441</attachid>
    <who name="">mitz</who>
    <bug_when>2007-07-07 17:27:34 -0700</bug_when>
    <thetext>Created attachment 15441
[WIP] return rich computed style declarations for elements without renderers

Still not thoroughly tested. I am also worried that I missed something:

&gt; We need to change the CSS style selector so it can create a style for a DOM
&gt; element that does not have a RenderObject.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>5235</commentid>
    <comment_count>10</comment_count>
      <attachid>15442</attachid>
    <who name="">mitz</who>
    <bug_when>2007-07-08 00:24:36 -0700</bug_when>
    <thetext>Created attachment 15442
Return rich computed style declarations for elements without renderers

Added a test and a change log.

Still wondering what needs changed in CSSStyleSelector.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>5198</commentid>
    <comment_count>11</comment_count>
      <attachid>15442</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-07-08 04:58:44 -0700</bug_when>
    <thetext>Comment on attachment 15442
Return rich computed style declarations for elements without renderers

+    virtual RenderStyle* computedStyle() { return parent() ? parent()-&gt;computedStyle() : 0; }

I don&apos;t think it&apos;s helpful to define a virtual function like this one as an inline in the header. It&apos;s easier to modify it if it&apos;s even needed if you keep it in the .cpp file instead, and it would only actually get inlined if it was a non-virtual call, which should never happen in this case.

But that&apos;s a nitpick. This looks great!

I guess I was wrong about CSSStyleSelector needing a change!

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>5179</commentid>
    <comment_count>12</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2007-07-08 10:53:37 -0700</bug_when>
    <thetext>Landed in r24099 with Darin&apos;s suggestion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>5168</commentid>
    <comment_count>13</comment_count>
    <who name="">mitz</who>
    <bug_when>2007-07-08 14:13:09 -0700</bug_when>
    <thetext>Leaks fixed in r24103, which introduced bug 14563.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>12631</attachid>
            <date>2007-01-23 11:42:15 -0800</date>
            <delta_ts>2007-01-23 11:42:15 -0800</delta_ts>
            <desc>Test Case</desc>
            <filename>safari_getcomputedstyle_test.html</filename>
            <type>text/html</type>
            <size>685</size>
            <attacher name="Steven Saviano">ssaviano</attacher>
            
              <data encoding="base64">PGh0bWw+Cgk8aGVhZD4KCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJICBmdW5j
dGlvbiB0ZXN0RGlzcGxheSgpIHsKCQkJdmFyIHRkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3Rlc3QnKTsKCQkJdGQuc3R5bGUuZGlzcGxheSA9ICJub25lIjsKCQkJdmFyIGRpc3BsYXlWYWx1
ZSA9IGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUodGQsICIiKS5nZXRQcm9w
ZXJ0eVZhbHVlKCdkaXNwbGF5Jyk7CgkJCWFsZXJ0KCJkaXNwbGF5IHN0eWxlIHByb3BlcnR5IGZy
b20gZ2V0Q29tcHV0ZWRTdHlsZTogJyIgKyBkaXNwbGF5VmFsdWUgKyAiJ1xuZGlzcGxheSBzdHls
ZSBwcm9wZXJ0eSBmcm9tIHRkLnN0eWxlLmRpc3BsYXk6ICciICsgdGQuc3R5bGUuZGlzcGxheSAr
ICInIik7CgkJICB9CgkJPC9zY3JpcHQ+Cgk8L2hlYWQ+Cgk8Ym9keT4KCQk8dGFibGU+CgkJCTx0
Ym9keT4KCQkJCTx0cj4KCQkJCQk8dGQ+CgkJCQkJCUkgd2lsbCBub3QgYmUgaGlkZGVuLgoJCQkJ
CTx0ZC8+CgkJCQkJPHRkIGlkPSd0ZXN0Jz4KCQkJCQkJSSB3aWxsIGJlIGhpZGRlbi4KCQkJCQk8
L3RkPgoJCQkJPC90cj4KCQkJPC90Ym9keT4KCQk8L3RhYmxlPgoJCTxidXR0b24gb25jbGljaz0n
dGVzdERpc3BsYXkoKSc+Q2xpY2sgbWUgdG8gVGVzdDwvYnV0dG9uPgoJPC9ib2R5Pgo8L2h0bWw+
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>15441</attachid>
            <date>2007-07-07 17:27:34 -0700</date>
            <delta_ts>2007-07-08 00:24:36 -0700</delta_ts>
            <desc>[WIP] return rich computed style declarations for elements without renderers</desc>
            <filename>12384_r0.patch</filename>
            <type>text/plain</type>
            <size>14390</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAkocmV2
aXNpb24gMjQwODkpCisrKyBXZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24u
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNjEsMTIgKzM2MSw4IEBAIHN0YXRpYyBQYXNzUmVmUHRy
PENTU1ZhbHVlPiB2YWx1ZUZvclNoYWQKICAgICByZXR1cm4gbGlzdC5yZWxlYXNlKCk7CiB9CiAK
LXN0YXRpYyBQYXNzUmVmUHRyPENTU1ZhbHVlPiBnZXRQb3NpdGlvbk9mZnNldFZhbHVlKFJlbmRl
ck9iamVjdCogcmVuZGVyZXIsIGludCBwcm9wZXJ0eUlEKQorc3RhdGljIFBhc3NSZWZQdHI8Q1NT
VmFsdWU+IGdldFBvc2l0aW9uT2Zmc2V0VmFsdWUoUmVuZGVyU3R5bGUqIHN0eWxlLCBpbnQgcHJv
cGVydHlJRCkKIHsKLSAgICBpZiAoIXJlbmRlcmVyKQotICAgICAgICByZXR1cm4gMDsKLQotICAg
IFJlbmRlclN0eWxlKiBzdHlsZSA9IHJlbmRlcmVyLT5zdHlsZSgpOwogICAgIGlmICghc3R5bGUp
CiAgICAgICAgIHJldHVybiAwOwogCkBAIC0zODgsMTAgKzM4NCwxMCBAQCBzdGF0aWMgUGFzc1Jl
ZlB0cjxDU1NWYWx1ZT4gZ2V0UG9zaXRpb25PCiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICB9
CiAKLSAgICBpZiAocmVuZGVyZXItPmlzUG9zaXRpb25lZCgpKQorICAgIGlmIChzdHlsZS0+cG9z
aXRpb24oKSA9PSBBYnNvbHV0ZVBvc2l0aW9uIHx8IHN0eWxlLT5wb3NpdGlvbigpID09IEZpeGVk
UG9zaXRpb24pCiAgICAgICAgIHJldHVybiB2YWx1ZUZvckxlbmd0aChsKTsKIAotICAgIGlmIChy
ZW5kZXJlci0+aXNSZWxQb3NpdGlvbmVkKCkpCisgICAgaWYgKHN0eWxlLT5wb3NpdGlvbigpID09
IFJlbGF0aXZlUG9zaXRpb24pCiAgICAgICAgIC8vIEZJWE1FOiBJdCdzIG5vdCBlbm91Z2ggdG8g
c2ltcGx5IHJldHVybiAiYXV0byIgdmFsdWVzIGZvciBvbmUgb2Zmc2V0IGlmIHRoZSBvdGhlciBz
aWRlIGlzIGRlZmluZWQuCiAgICAgICAgIC8vIEluIG90aGVyIHdvcmRzIGlmIGxlZnQgaXMgYXV0
byBhbmQgcmlnaHQgaXMgbm90IGF1dG8sIHRoZW4gbGVmdCdzIGNvbXB1dGVkIHZhbHVlIGlzIG5l
Z2F0aXZlIHJpZ2h0LgogICAgICAgICAvLyBTbyB3ZSBzaG91bGQgZ2V0IHRoZSBvcHBvc2l0ZSBs
ZW5ndGggdW5pdCBhbmQgc2VlIGlmIGl0IGlzIGF1dG8uCkBAIC00NzgsMTcgKzQ3NCw5IEBAIFBh
c3NSZWZQdHI8Q1NTVmFsdWU+IENTU0NvbXB1dGVkU3R5bGVEZWMKICAgICBpZiAodXBkYXRlTGF5
b3V0KQogICAgICAgICBub2RlLT5kb2N1bWVudCgpLT51cGRhdGVMYXlvdXQoKTsKIAotICAgIC8v
IEZJWE1FOiBUaGlzIHNob3VsZCB3b3JrIGV2ZW4gaWYgd2UgZG8gbm90IGhhdmUgYSByZW5kZXJl
ciBmb3IgYWxsIHByb3BlcnRpZXMuCiAgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IG5vZGUt
PnJlbmRlcmVyKCk7Ci0gICAgaWYgKCFyZW5kZXJlcikgewotICAgICAgICAvLyBIYW5kbGUgZGlz
cGxheTpub25lIGF0IHRoZSB2ZXJ5IGxlYXN0LiAgQnkgZGVmaW5pdGlvbiBpZiB3ZSBkb24ndCBo
YXZlIGEgcmVuZGVyZXIKLSAgICAgICAgLy8gd2UgYXJlIGNvbnNpZGVyZWQgdG8gaGF2ZSBubyBk
aXNwbGF5LgotICAgICAgICBpZiAocHJvcGVydHlJRCA9PSBDU1NfUFJPUF9ESVNQTEFZKQotICAg
ICAgICAgICAgcmV0dXJuIG5ldyBDU1NQcmltaXRpdmVWYWx1ZShDU1NfVkFMX05PTkUpOwotICAg
ICAgICByZXR1cm4gMDsKLSAgICB9CiAKLSAgICBSZW5kZXJTdHlsZSogc3R5bGUgPSByZW5kZXJl
ci0+c3R5bGUoKTsKKyAgICBSZW5kZXJTdHlsZSogc3R5bGUgPSBub2RlLT5jb21wdXRlZFN0eWxl
KCk7CiAgICAgaWYgKCFzdHlsZSkKICAgICAgICAgcmV0dXJuIDA7CiAKQEAgLTU3NCwxNCArNTYy
LDE4IEBAIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IENTU0NvbXB1dGVkU3R5bGVEZWMKICAgICAgICAg
ICAgIExlbmd0aCBsZW5ndGgoc3R5bGUtPmJhY2tncm91bmRYUG9zaXRpb24oKSk7CiAgICAgICAg
ICAgICBpZiAobGVuZ3RoLmlzUGVyY2VudCgpKQogICAgICAgICAgICAgICAgIHN0cmluZyA9IG51
bWJlckFzU3RyaW5nKGxlbmd0aC5wZXJjZW50KCkpICsgIiUiOwotICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgZWxzZSBpZiAocmVuZGVyZXIpCiAgICAgICAgICAgICAgICAgc3RyaW5nID0g
bnVtYmVyQXNTdHJpbmcobGVuZ3RoLmNhbGNNaW5WYWx1ZShyZW5kZXJlci0+Y29udGVudFdpZHRo
KCkpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBzdHJpbmcgPSBudW1iZXJB
c1N0cmluZyhsZW5ndGgudmFsdWUoKSk7CiAgICAgICAgICAgICBzdHJpbmcgKz0gIiAiOwogICAg
ICAgICAgICAgbGVuZ3RoID0gc3R5bGUtPmJhY2tncm91bmRZUG9zaXRpb24oKTsKICAgICAgICAg
ICAgIGlmIChsZW5ndGguaXNQZXJjZW50KCkpCiAgICAgICAgICAgICAgICAgc3RyaW5nICs9IG51
bWJlckFzU3RyaW5nKGxlbmd0aC5wZXJjZW50KCkpICsgIiUiOwotICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgZWxzZSBpZiAocmVuZGVyZXIpCiAgICAgICAgICAgICAgICAgc3RyaW5nICs9
IG51bWJlckFzU3RyaW5nKGxlbmd0aC5jYWxjTWluVmFsdWUocmVuZGVyZXItPmNvbnRlbnRXaWR0
aCgpKSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgc3RyaW5nICs9IG51bWJl
ckFzU3RyaW5nKGxlbmd0aC52YWx1ZSgpKTsKICAgICAgICAgICAgIHJldHVybiBuZXcgQ1NTUHJp
bWl0aXZlVmFsdWUoc3RyaW5nLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1NUUklORyk7CiAgICAg
ICAgIH0KICAgICAgICAgY2FzZSBDU1NfUFJPUF9CQUNLR1JPVU5EX1BPU0lUSU9OX1g6CkBAIC02
MjQsNyArNjE2LDcgQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTQ29tcHV0ZWRTdHlsZURlYwog
ICAgICAgICBjYXNlIENTU19QUk9QX0JPUkRFUl9MRUZUX1dJRFRIOgogICAgICAgICAgICAgcmV0
dXJuIG5ldyBDU1NQcmltaXRpdmVWYWx1ZShzdHlsZS0+Ym9yZGVyTGVmdFdpZHRoKCksIENTU1By
aW1pdGl2ZVZhbHVlOjpDU1NfUFgpOwogICAgICAgICBjYXNlIENTU19QUk9QX0JPVFRPTToKLSAg
ICAgICAgICAgIHJldHVybiBnZXRQb3NpdGlvbk9mZnNldFZhbHVlKHJlbmRlcmVyLCBDU1NfUFJP
UF9CT1RUT00pOworICAgICAgICAgICAgcmV0dXJuIGdldFBvc2l0aW9uT2Zmc2V0VmFsdWUoc3R5
bGUsIENTU19QUk9QX0JPVFRPTSk7CiAgICAgICAgIGNhc2UgQ1NTX1BST1BfX1dFQktJVF9CT1hf
QUxJR046CiAgICAgICAgICAgICBzd2l0Y2ggKHN0eWxlLT5ib3hBbGlnbigpKSB7CiAgICAgICAg
ICAgICAgICAgY2FzZSBCU1RSRVRDSDoKQEAgLTk4Niw3ICs5NzgsOSBAQCBQYXNzUmVmUHRyPENT
U1ZhbHVlPiBDU1NDb21wdXRlZFN0eWxlRGVjCiAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBD
U1NQcmltaXRpdmVWYWx1ZShDU1NfVkFMX0JPTEQpOwogICAgICAgICAgICAgcmV0dXJuIG5ldyBD
U1NQcmltaXRpdmVWYWx1ZShDU1NfVkFMX05PUk1BTCk7CiAgICAgICAgIGNhc2UgQ1NTX1BST1Bf
SEVJR0hUOgotICAgICAgICAgICAgcmV0dXJuIG5ldyBDU1NQcmltaXRpdmVWYWx1ZShyZW5kZXJl
ci0+Y29udGVudEhlaWdodCgpLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BYKTsKKyAgICAgICAg
ICAgIGlmIChyZW5kZXJlcikKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IENTU1ByaW1pdGl2
ZVZhbHVlKHJlbmRlcmVyLT5jb250ZW50SGVpZ2h0KCksIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1Nf
UFgpOworICAgICAgICAgICAgcmV0dXJuIHZhbHVlRm9yTGVuZ3RoKHN0eWxlLT5oZWlnaHQoKSk7
CiAgICAgICAgIGNhc2UgQ1NTX1BST1BfX1dFQktJVF9ISUdITElHSFQ6CiAgICAgICAgICAgICBp
ZiAoc3R5bGUtPmhpZ2hsaWdodCgpID09IG51bGxBdG9tKQogICAgICAgICAgICAgICAgIHJldHVy
biBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUoQ1NTX1ZBTF9OT05FKTsKQEAgLTk5Niw3ICs5OTAsNyBA
QCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBDU1NDb21wdXRlZFN0eWxlRGVjCiAgICAgICAgICAgICAg
ICAgcmV0dXJuIG5ldyBDU1NQcmltaXRpdmVWYWx1ZShDU1NfVkFMX0JPUkRFUik7CiAgICAgICAg
ICAgICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKENTU19WQUxfTElORVMpOwogICAgICAg
ICBjYXNlIENTU19QUk9QX0xFRlQ6Ci0gICAgICAgICAgICByZXR1cm4gZ2V0UG9zaXRpb25PZmZz
ZXRWYWx1ZShyZW5kZXJlciwgQ1NTX1BST1BfTEVGVCk7CisgICAgICAgICAgICByZXR1cm4gZ2V0
UG9zaXRpb25PZmZzZXRWYWx1ZShzdHlsZSwgQ1NTX1BST1BfTEVGVCk7CiAgICAgICAgIGNhc2Ug
Q1NTX1BST1BfTEVUVEVSX1NQQUNJTkc6CiAgICAgICAgICAgICBpZiAoIXN0eWxlLT5sZXR0ZXJT
cGFjaW5nKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBDU1NQcmltaXRpdmVWYWx1ZShD
U1NfVkFMX05PUk1BTCk7CkBAIC0xMDc4LDE3ICsxMDcyLDI1IEBAIFBhc3NSZWZQdHI8Q1NTVmFs
dWU+IENTU0NvbXB1dGVkU3R5bGVEZWMKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIGNhc2UgQ1NTX1BST1BfTUFSR0lOX1RP
UDoKLSAgICAgICAgICAgIC8vIEZJWE1FOiBTdXBwb3NlZCB0byByZXR1cm4gdGhlIHBlcmNlbnRh
Z2UgaWYgcGVyY2VudGFnZSB3YXMgc3BlY2lmaWVkLgotICAgICAgICAgICAgcmV0dXJuIG5ldyBD
U1NQcmltaXRpdmVWYWx1ZShyZW5kZXJlci0+bWFyZ2luVG9wKCksIENTU1ByaW1pdGl2ZVZhbHVl
OjpDU1NfUFgpOworICAgICAgICAgICAgaWYgKHJlbmRlcmVyKQorICAgICAgICAgICAgICAgIC8v
IEZJWE1FOiBTdXBwb3NlZCB0byByZXR1cm4gdGhlIHBlcmNlbnRhZ2UgaWYgcGVyY2VudGFnZSB3
YXMgc3BlY2lmaWVkLgorICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQ1NTUHJpbWl0aXZlVmFs
dWUocmVuZGVyZXItPm1hcmdpblRvcCgpLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BYKTsKKyAg
ICAgICAgICAgIHJldHVybiB2YWx1ZUZvckxlbmd0aChzdHlsZS0+bWFyZ2luVG9wKCkpOwogICAg
ICAgICBjYXNlIENTU19QUk9QX01BUkdJTl9SSUdIVDoKLSAgICAgICAgICAgIC8vIEZJWE1FOiBT
dXBwb3NlZCB0byByZXR1cm4gdGhlIHBlcmNlbnRhZ2UgaWYgcGVyY2VudGFnZSB3YXMgc3BlY2lm
aWVkLgotICAgICAgICAgICAgcmV0dXJuIG5ldyBDU1NQcmltaXRpdmVWYWx1ZShyZW5kZXJlci0+
bWFyZ2luUmlnaHQoKSwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QWCk7CisgICAgICAgICAgICBp
ZiAocmVuZGVyZXIpCisgICAgICAgICAgICAgICAgLy8gRklYTUU6IFN1cHBvc2VkIHRvIHJldHVy
biB0aGUgcGVyY2VudGFnZSBpZiBwZXJjZW50YWdlIHdhcyBzcGVjaWZpZWQuCisgICAgICAgICAg
ICAgICAgcmV0dXJuIG5ldyBDU1NQcmltaXRpdmVWYWx1ZShyZW5kZXJlci0+bWFyZ2luUmlnaHQo
KSwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QWCk7CisgICAgICAgICAgICByZXR1cm4gdmFsdWVG
b3JMZW5ndGgoc3R5bGUtPm1hcmdpblJpZ2h0KCkpOwogICAgICAgICBjYXNlIENTU19QUk9QX01B
UkdJTl9CT1RUT006Ci0gICAgICAgICAgICAvLyBGSVhNRTogU3VwcG9zZWQgdG8gcmV0dXJuIHRo
ZSBwZXJjZW50YWdlIGlmIHBlcmNlbnRhZ2Ugd2FzIHNwZWNpZmllZC4KLSAgICAgICAgICAgIHJl
dHVybiBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUocmVuZGVyZXItPm1hcmdpbkJvdHRvbSgpLCBDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTX1BYKTsKKyAgICAgICAgICAgIGlmIChyZW5kZXJlcikKKyAgICAg
ICAgICAgICAgICAvLyBGSVhNRTogU3VwcG9zZWQgdG8gcmV0dXJuIHRoZSBwZXJjZW50YWdlIGlm
IHBlcmNlbnRhZ2Ugd2FzIHNwZWNpZmllZC4KKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IENT
U1ByaW1pdGl2ZVZhbHVlKHJlbmRlcmVyLT5tYXJnaW5Cb3R0b20oKSwgQ1NTUHJpbWl0aXZlVmFs
dWU6OkNTU19QWCk7CisgICAgICAgICAgICByZXR1cm4gdmFsdWVGb3JMZW5ndGgoc3R5bGUtPm1h
cmdpbkJvdHRvbSgpKTsKICAgICAgICAgY2FzZSBDU1NfUFJPUF9NQVJHSU5fTEVGVDoKLSAgICAg
ICAgICAgIC8vIEZJWE1FOiBTdXBwb3NlZCB0byByZXR1cm4gdGhlIHBlcmNlbnRhZ2UgaWYgcGVy
Y2VudGFnZSB3YXMgc3BlY2lmaWVkLgotICAgICAgICAgICAgcmV0dXJuIG5ldyBDU1NQcmltaXRp
dmVWYWx1ZShyZW5kZXJlci0+bWFyZ2luTGVmdCgpLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BY
KTsKKyAgICAgICAgICAgIGlmIChyZW5kZXJlcikKKyAgICAgICAgICAgICAgICAvLyBGSVhNRTog
U3VwcG9zZWQgdG8gcmV0dXJuIHRoZSBwZXJjZW50YWdlIGlmIHBlcmNlbnRhZ2Ugd2FzIHNwZWNp
ZmllZC4KKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKHJlbmRl
cmVyLT5tYXJnaW5MZWZ0KCksIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUFgpOworICAgICAgICAg
ICAgcmV0dXJuIHZhbHVlRm9yTGVuZ3RoKHN0eWxlLT5tYXJnaW5MZWZ0KCkpOwogICAgICAgICBj
YXNlIENTU19QUk9QX19XRUJLSVRfTUFSUVVFRV9ESVJFQ1RJT046CiAgICAgICAgICAgICBzd2l0
Y2ggKHN0eWxlLT5tYXJxdWVlRGlyZWN0aW9uKCkpIHsKICAgICAgICAgICAgICAgICBjYXNlIE1G
T1JXQVJEOgpAQCAtMTE5MCwxMyArMTE5MiwyMSBAQCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBDU1ND
b21wdXRlZFN0eWxlRGVjCiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgfQogICAgICAg
ICBjYXNlIENTU19QUk9QX1BBRERJTkdfVE9QOgotICAgICAgICAgICAgcmV0dXJuIG5ldyBDU1NQ
cmltaXRpdmVWYWx1ZShyZW5kZXJlci0+cGFkZGluZ1RvcCgpLCBDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTX1BYKTsKKyAgICAgICAgICAgIGlmIChyZW5kZXJlcikKKyAgICAgICAgICAgICAgICByZXR1
cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKHJlbmRlcmVyLT5wYWRkaW5nVG9wKCksIENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NfUFgpOworICAgICAgICAgICAgcmV0dXJuIHZhbHVlRm9yTGVuZ3RoKHN0
eWxlLT5wYWRkaW5nVG9wKCkpOwogICAgICAgICBjYXNlIENTU19QUk9QX1BBRERJTkdfUklHSFQ6
Ci0gICAgICAgICAgICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKHJlbmRlcmVyLT5wYWRk
aW5nUmlnaHQoKSwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QWCk7CisgICAgICAgICAgICBpZiAo
cmVuZGVyZXIpCisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBDU1NQcmltaXRpdmVWYWx1ZShy
ZW5kZXJlci0+cGFkZGluZ1JpZ2h0KCksIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUFgpOworICAg
ICAgICAgICAgcmV0dXJuIHZhbHVlRm9yTGVuZ3RoKHN0eWxlLT5wYWRkaW5nUmlnaHQoKSk7CiAg
ICAgICAgIGNhc2UgQ1NTX1BST1BfUEFERElOR19CT1RUT006Ci0gICAgICAgICAgICByZXR1cm4g
bmV3IENTU1ByaW1pdGl2ZVZhbHVlKHJlbmRlcmVyLT5wYWRkaW5nQm90dG9tKCksIENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NfUFgpOworICAgICAgICAgICAgaWYgKHJlbmRlcmVyKQorICAgICAgICAg
ICAgICAgIHJldHVybiBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUocmVuZGVyZXItPnBhZGRpbmdCb3R0
b20oKSwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QWCk7CisgICAgICAgICAgICByZXR1cm4gdmFs
dWVGb3JMZW5ndGgoc3R5bGUtPnBhZGRpbmdCb3R0b20oKSk7CiAgICAgICAgIGNhc2UgQ1NTX1BS
T1BfUEFERElOR19MRUZUOgotICAgICAgICAgICAgcmV0dXJuIG5ldyBDU1NQcmltaXRpdmVWYWx1
ZShyZW5kZXJlci0+cGFkZGluZ0xlZnQoKSwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QWCk7Cisg
ICAgICAgICAgICBpZiAocmVuZGVyZXIpCisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBDU1NQ
cmltaXRpdmVWYWx1ZShyZW5kZXJlci0+cGFkZGluZ0xlZnQoKSwgQ1NTUHJpbWl0aXZlVmFsdWU6
OkNTU19QWCk7CisgICAgICAgICAgICByZXR1cm4gdmFsdWVGb3JMZW5ndGgoc3R5bGUtPnBhZGRp
bmdMZWZ0KCkpOwogICAgICAgICBjYXNlIENTU19QUk9QX1BBR0VfQlJFQUtfQUZURVI6CiAgICAg
ICAgICAgICBzd2l0Y2ggKHN0eWxlLT5wYWdlQnJlYWtBZnRlcigpKSB7CiAgICAgICAgICAgICAg
ICAgY2FzZSBQQkFVVE86CkBAIC0xMjQ0LDcgKzEyNTQsNyBAQCBQYXNzUmVmUHRyPENTU1ZhbHVl
PiBDU1NDb21wdXRlZFN0eWxlRGVjCiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
ICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICBjYXNlIENTU19QUk9QX1JJR0hUOgotICAg
ICAgICAgICAgcmV0dXJuIGdldFBvc2l0aW9uT2Zmc2V0VmFsdWUocmVuZGVyZXIsIENTU19QUk9Q
X1JJR0hUKTsKKyAgICAgICAgICAgIHJldHVybiBnZXRQb3NpdGlvbk9mZnNldFZhbHVlKHN0eWxl
LCBDU1NfUFJPUF9SSUdIVCk7CiAgICAgICAgIGNhc2UgQ1NTX1BST1BfVEFCTEVfTEFZT1VUOgog
ICAgICAgICAgICAgc3dpdGNoIChzdHlsZS0+dGFibGVMYXlvdXQoKSkgewogICAgICAgICAgICAg
ICAgIGNhc2UgVEFVVE86CkBAIC0xMzQzLDcgKzEzNTMsNyBAQCBQYXNzUmVmUHRyPENTU1ZhbHVl
PiBDU1NDb21wdXRlZFN0eWxlRGVjCiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
ICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICBjYXNlIENTU19QUk9QX1RPUDoKLSAgICAg
ICAgICAgIHJldHVybiBnZXRQb3NpdGlvbk9mZnNldFZhbHVlKHJlbmRlcmVyLCBDU1NfUFJPUF9U
T1ApOworICAgICAgICAgICAgcmV0dXJuIGdldFBvc2l0aW9uT2Zmc2V0VmFsdWUoc3R5bGUsIENT
U19QUk9QX1RPUCk7CiAgICAgICAgIGNhc2UgQ1NTX1BST1BfVU5JQ09ERV9CSURJOgogICAgICAg
ICAgICAgc3dpdGNoIChzdHlsZS0+dW5pY29kZUJpZGkoKSkgewogICAgICAgICAgICAgICAgIGNh
c2UgVUJOb3JtYWw6CkBAIC0xNDExLDcgKzE0MjEsOSBAQCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBD
U1NDb21wdXRlZFN0eWxlRGVjCiAgICAgICAgIGNhc2UgQ1NTX1BST1BfV0lET1dTOgogICAgICAg
ICAgICAgcmV0dXJuIG5ldyBDU1NQcmltaXRpdmVWYWx1ZShzdHlsZS0+d2lkb3dzKCksIENTU1By
aW1pdGl2ZVZhbHVlOjpDU1NfTlVNQkVSKTsKICAgICAgICAgY2FzZSBDU1NfUFJPUF9XSURUSDoK
LSAgICAgICAgICAgIHJldHVybiBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUocmVuZGVyZXItPmNvbnRl
bnRXaWR0aCgpLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BYKTsKKyAgICAgICAgICAgIGlmIChy
ZW5kZXJlcikKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKHJl
bmRlcmVyLT5jb250ZW50V2lkdGgoKSwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QWCk7CisgICAg
ICAgICAgICByZXR1cm4gdmFsdWVGb3JMZW5ndGgoc3R5bGUtPndpZHRoKCkpOwogICAgICAgICBj
YXNlIENTU19QUk9QX1dPUkRfQlJFQUs6CiAgICAgICAgICAgICBzd2l0Y2ggKHN0eWxlLT53b3Jk
QnJlYWsoKSkgewogICAgICAgICAgICAgICAgIGNhc2UgTm9ybWFsV29yZEJyZWFrOgpAQCAtMTY0
NCwxMSArMTY1Niw3IEBAIHVuc2lnbmVkIENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6bGUK
ICAgICBpZiAoIW5vZGUpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgUmVuZGVyT2JqZWN0KiBy
ZW5kZXJlciA9IG5vZGUtPnJlbmRlcmVyKCk7Ci0gICAgaWYgKCFyZW5kZXJlcikKLSAgICAgICAg
cmV0dXJuIDA7Ci0KLSAgICBSZW5kZXJTdHlsZSogc3R5bGUgPSByZW5kZXJlci0+c3R5bGUoKTsK
KyAgICBSZW5kZXJTdHlsZSogc3R5bGUgPSBub2RlLT5jb21wdXRlZFN0eWxlKCk7CiAgICAgaWYg
KCFzdHlsZSkKICAgICAgICAgcmV0dXJuIDA7CiAKQEAgLTE3MDIsMTQgKzE3MTAsMTQgQEAgdm9p
ZCBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OnJlbW92ZQogUGFzc1JlZlB0cjxDU1NNdXRh
YmxlU3R5bGVEZWNsYXJhdGlvbj4gQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpjb3B5SW5o
ZXJpdGFibGVQcm9wZXJ0aWVzKCkgY29uc3QKIHsKICAgICBSZWZQdHI8Q1NTTXV0YWJsZVN0eWxl
RGVjbGFyYXRpb24+IHN0eWxlID0gY29weVByb3BlcnRpZXNJblNldChpbmhlcml0YWJsZVByb3Bl
cnRpZXMsIG51bUluaGVyaXRhYmxlUHJvcGVydGllcyk7Ci0gICAgaWYgKHN0eWxlICYmIG1fbm9k
ZSAmJiBtX25vZGUtPnJlbmRlcmVyKCkpIHsKKyAgICBpZiAoc3R5bGUgJiYgbV9ub2RlICYmIG1f
bm9kZS0+Y29tcHV0ZWRTdHlsZSgpKSB7CiAgICAgICAgIC8vIElmIGEgbm9kZSdzIHRleHQgZmls
bCBjb2xvciBpcyBpbnZhbGlkLCB0aGVuIGl0cyBjaGlsZHJlbiB1c2UgCiAgICAgICAgIC8vIHRo
ZWlyIGZvbnQtY29sb3IgYXMgdGhlaXIgdGV4dCBmaWxsIGNvbG9yICh0aGV5IGRvbid0CiAgICAg
ICAgIC8vIGluaGVyaXQgaXQpLiAgTGlrZXdpc2UgZm9yIHN0cm9rZSBjb2xvci4KICAgICAgICAg
RXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgICAgIGlmICghbV9ub2RlLT5yZW5kZXJlcigpLT5z
dHlsZSgpLT50ZXh0RmlsbENvbG9yKCkuaXNWYWxpZCgpKQorICAgICAgICBpZiAoIW1fbm9kZS0+
Y29tcHV0ZWRTdHlsZSgpLT50ZXh0RmlsbENvbG9yKCkuaXNWYWxpZCgpKQogICAgICAgICAgICAg
c3R5bGUtPnJlbW92ZVByb3BlcnR5KENTU19QUk9QX19XRUJLSVRfVEVYVF9GSUxMX0NPTE9SLCBl
Yyk7Ci0gICAgICAgIGlmICghbV9ub2RlLT5yZW5kZXJlcigpLT5zdHlsZSgpLT50ZXh0U3Ryb2tl
Q29sb3IoKS5pc1ZhbGlkKCkpCisgICAgICAgIGlmICghbV9ub2RlLT5jb21wdXRlZFN0eWxlKCkt
PnRleHRTdHJva2VDb2xvcigpLmlzVmFsaWQoKSkKICAgICAgICAgICAgIHN0eWxlLT5yZW1vdmVQ
cm9wZXJ0eShDU1NfUFJPUF9fV0VCS0lUX1RFWFRfU1RST0tFX0NPTE9SLCBlYyk7CiAgICAgICAg
IEFTU0VSVChlYyA9PSAwKTsKICAgICB9CkluZGV4OiBXZWJDb3JlL2RvbS9FbGVtZW50LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9FbGVtZW50LmNwcAkocmV2aXNpb24gMjQwODkpCisr
KyBXZWJDb3JlL2RvbS9FbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTAsNyArNTAsMTAg
QEAgdXNpbmcgbmFtZXNwYWNlIFhNTE5hbWVzOwogY2xhc3MgRWxlbWVudFJhcmVEYXRhIHsKIHB1
YmxpYzoKICAgICBFbGVtZW50UmFyZURhdGEoRWxlbWVudCopOworICAgIHZvaWQgcmVzZXRDb21w
dXRlZFN0eWxlKEVsZW1lbnQqKTsKKwogICAgIEludFNpemUgbV9taW5pbXVtU2l6ZUZvclJlc2l6
aW5nOworICAgIFJlbmRlclN0eWxlKiBtX2NvbXB1dGVkU3R5bGU7CiB9OwogCiB0eXBlZGVmIEhh
c2hNYXA8Y29uc3QgRWxlbWVudCosIEVsZW1lbnRSYXJlRGF0YSo+IEVsZW1lbnRSYXJlRGF0YU1h
cDsKQEAgLTczLDcgKzc2LDE2IEBAIHN0YXRpYyBpbmxpbmUgSW50U2l6ZSBkZWZhdWx0TWluaW11
bVNpemUKIAogaW5saW5lIEVsZW1lbnRSYXJlRGF0YTo6RWxlbWVudFJhcmVEYXRhKEVsZW1lbnQq
IGVsZW1lbnQpCiAgICAgOiBtX21pbmltdW1TaXplRm9yUmVzaXppbmcoZGVmYXVsdE1pbmltdW1T
aXplRm9yUmVzaXppbmcoKSkKKyAgICAsIG1fY29tcHV0ZWRTdHlsZSgwKQoreworfQorCit2b2lk
IEVsZW1lbnRSYXJlRGF0YTo6cmVzZXRDb21wdXRlZFN0eWxlKEVsZW1lbnQqIGVsZW1lbnQpCiB7
CisgICAgaWYgKCFtX2NvbXB1dGVkU3R5bGUpCisgICAgICAgIHJldHVybjsKKyAgICBtX2NvbXB1
dGVkU3R5bGUtPmRlcmVmKGVsZW1lbnQtPmRvY3VtZW50KCktPnJlbmRlckFyZW5hKCkpOworICAg
IG1fY29tcHV0ZWRTdHlsZSA9IDA7CiB9CiAKIEVsZW1lbnQ6OkVsZW1lbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYgcU5hbWUsIERvY3VtZW50ICpkb2MpCkBAIC05NSw2ICsxMDcsNyBAQCBFbGVtZW50
Ojp+RWxlbWVudCgpCiAgICAgICAgIEVsZW1lbnRSYXJlRGF0YU1hcCYgZGF0YU1hcCA9IHJhcmVE
YXRhTWFwKCk7CiAgICAgICAgIEVsZW1lbnRSYXJlRGF0YU1hcDo6aXRlcmF0b3IgaXQgPSBkYXRh
TWFwLmZpbmQodGhpcyk7CiAgICAgICAgIEFTU0VSVChpdCAhPSBkYXRhTWFwLmVuZCgpKTsKKyAg
ICAgICAgaXQtPnNlY29uZC0+cmVzZXRDb21wdXRlZFN0eWxlKHRoaXMpOwogICAgICAgICBkZWxl
dGUgaXQtPnNlY29uZDsKICAgICAgICAgZGF0YU1hcC5yZW1vdmUoaXQpOwogICAgIH0KQEAgLTY3
MSw2ICs2ODQsMTAgQEAgdm9pZCBFbGVtZW50OjpyZWNhbGNTdHlsZShTdHlsZUNoYW5nZSBjaAog
ICAgICAgICBoYXNQYXJlbnRTdHlsZSA9IHRydWU7CiAjZW5kaWYKIAorICAgIGlmICgoY2hhbmdl
ID4gTm9DaGFuZ2UgfHwgY2hhbmdlZCgpKSkgeworICAgICAgICBpZiAoRWxlbWVudFJhcmVEYXRh
KiByZCA9IHJhcmVEYXRhKCkpCisgICAgICAgICAgICByZC0+cmVzZXRDb21wdXRlZFN0eWxlKHRo
aXMpOworICAgIH0KICAgICBpZiAoaGFzUGFyZW50U3R5bGUgJiYgKGNoYW5nZSA+PSBJbmhlcml0
IHx8IGNoYW5nZWQoKSkpIHsKICAgICAgICAgUmVuZGVyU3R5bGUgKm5ld1N0eWxlID0gZG9jdW1l
bnQoKS0+c3R5bGVTZWxlY3RvcigpLT5zdHlsZUZvckVsZW1lbnQodGhpcyk7CiAgICAgICAgIFN0
eWxlQ2hhbmdlIGNoID0gZGlmZihfc3R5bGUsIG5ld1N0eWxlKTsKQEAgLTEwNjcsNCArMTA4NCwx
NyBAQCB2b2lkIEVsZW1lbnQ6OnNldE1pbmltdW1TaXplRm9yUmVzaXppbmcoCiAgICAgY3JlYXRl
UmFyZURhdGEoKS0+bV9taW5pbXVtU2l6ZUZvclJlc2l6aW5nID0gc2l6ZTsKIH0KIAorUmVuZGVy
U3R5bGUqIEVsZW1lbnQ6OmNvbXB1dGVkU3R5bGUoKQoreworICAgIGlmIChSZW5kZXJTdHlsZSog
dXNlZFN0eWxlID0gcmVuZGVyU3R5bGUoKSkKKyAgICAgICAgcmV0dXJuIHVzZWRTdHlsZTsKKwor
ICAgIEVsZW1lbnRSYXJlRGF0YSogcmQgPSBjcmVhdGVSYXJlRGF0YSgpOworICAgIGlmICghcmQt
Pm1fY29tcHV0ZWRTdHlsZSkgeworICAgICAgICByZC0+bV9jb21wdXRlZFN0eWxlID0gZG9jdW1l
bnQoKS0+c3R5bGVTZWxlY3RvcigpLT5zdHlsZUZvckVsZW1lbnQodGhpcywgcGFyZW50KCkgPyBw
YXJlbnQoKS0+Y29tcHV0ZWRTdHlsZSgpIDogMCk7CisgICAgICAgIHJkLT5tX2NvbXB1dGVkU3R5
bGUtPnJlZigpOworICAgIH0KKyAgICByZXR1cm4gcmQtPm1fY29tcHV0ZWRTdHlsZTsKK30KKwog
fQpJbmRleDogV2ViQ29yZS9kb20vRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9t
L0VsZW1lbnQuaAkocmV2aXNpb24gMjQwODkpCisrKyBXZWJDb3JlL2RvbS9FbGVtZW50LmgJKHdv
cmtpbmcgY29weSkKQEAgLTE0Miw2ICsxNDIsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBSZW5k
ZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUqKTsKICAg
ICB2aXJ0dWFsIHZvaWQgcmVjYWxjU3R5bGUoU3R5bGVDaGFuZ2UgPSBOb0NoYW5nZSk7CiAKKyAg
ICB2aXJ0dWFsIFJlbmRlclN0eWxlKiBjb21wdXRlZFN0eWxlKCk7CisKICAgICB2aXJ0dWFsIGJv
b2wgY2hpbGRUeXBlQWxsb3dlZChOb2RlVHlwZSk7CiAKICAgICB2aXJ0dWFsIEF0dHJpYnV0ZSog
Y3JlYXRlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIFN0cmluZ0ltcGwqIHZh
bHVlKTsKSW5kZXg6IFdlYkNvcmUvZG9tL05vZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Rv
bS9Ob2RlLmgJKHJldmlzaW9uIDI0MDg5KQorKysgV2ViQ29yZS9kb20vTm9kZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zOTQsNiArMzk0LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgUmVuZGVyU3R5
bGUqIHJlbmRlclN0eWxlKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHNldFJlbmRlclN0eWxl
KFJlbmRlclN0eWxlKik7CiAKKyAgICB2aXJ0dWFsIFJlbmRlclN0eWxlKiBjb21wdXRlZFN0eWxl
KCkgeyByZXR1cm4gcGFyZW50KCkgPyBwYXJlbnQoKS0+Y29tcHV0ZWRTdHlsZSgpIDogMDsgfQor
CiAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAvLyBOb3RpZmljYXRpb24gb2YgZG9j
dW1lbnQgc3RydWN0dXJlIGNoYW5nZXMKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>15442</attachid>
            <date>2007-07-08 00:24:36 -0700</date>
            <delta_ts>2007-07-08 04:58:44 -0700</delta_ts>
            <desc>Return rich computed style declarations for elements without renderers</desc>
            <filename>12384_r1.patch</filename>
            <type>text/plain</type>
            <size>25174</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNDA5MykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDMgQEAKKzIwMDctMDctMDggIE1pdHogUGV0dGVsICA8bWl0ekB3ZWJraXQub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0gZml4
IGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMzg0CisgICAgICAgICAg
Z2V0Q29tcHV0ZWRTdHlsZSB3aXRoIHRkLnN0eWxlLmRpc3BsYXk9J25vbmUnIHJlcG9ydHMgJycg
Zm9yIGFsbCBwcm9wZXJ0aWVzIGV4Y2VwdCBkaXNwbGF5CisKKyAgICAgICAgVGVzdDogZmFzdC9j
c3MvY29tcHV0ZWQtc3R5bGUtd2l0aG91dC1yZW5kZXJlci5odG1sCisKKyAgICAgICAgSW1wbGVt
ZW50IHJpY2ggY29tcHV0ZWQgc3R5bGUgZm9yIGVsZW1lbnRzIHRoYXQgZG8gbm90IGhhdmUgYSBy
ZW5kZXJlci4KKworICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Z2V0UG9zaXRpb25PZmZzZXRWYWx1ZSk6IENoYW5nZWQgdG8g
dGFrZSBhIFJlbmRlclN0eWxlIGluc3RlYWQgb2YKKyAgICAgICAgYSBSZW5kZXJPYmplY3QuCisg
ICAgICAgIChXZWJDb3JlOjpDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmdldFByb3BlcnR5
Q1NTVmFsdWUpOiBDaGFuZ2VkIHRvCisgICAgICAgIHVzZSB0aGUgY29tcHV0ZWQgc3R5bGUgcmV0
dXJuZWQgYnkgdGhlIG5vZGUgaW5zdGVhZCBvZiBnb2luZyB0aHJvdWdoIHRoZQorICAgICAgICBy
ZW5kZXJlci4gQ2hhbmdlZCBwcm9wZXJ0aWVzIHRoYXQgY29tcHV0ZSBieSBtZWFzdXJpbmcgdGhl
IHJlbmRlcmVyIHRvCisgICAgICAgIGZhbGwgYmFjayBvbiByZXR1cm5pbmcgdGhlIGxlbmd0aCBm
cm9tIHRoZSBSZW5kZXJTdHlsZSBpZiBhIHJlbmRlcmVyIGRvZXMKKyAgICAgICAgbm90IGV4aXN0
LgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpsZW5ndGgp
OiBDaGFuZ2VkIHRvIHJldHVybiB0aGUgbnVtYmVyCisgICAgICAgIG9mIHByb3BlcnRpZXMgd2Ug
Y2FuIGNvbXB1dGUgZXZlbiBpZiB0aGUgZWxlbWVudCBoYXMgbm8gcmVuZGVyZXIuCisgICAgICAg
IChXZWJDb3JlOjpDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmNvcHlJbmhlcml0YWJsZVBy
b3BlcnRpZXMpOiBDaGFuZ2VkCisgICAgICAgIHRvIHVzZSB0aGUgY29tcHV0ZWQgc3R5bGUgcmV0
dXJuZWQgYnkgdGhlIG5vZGUgaW5zdGVhZCBvZiBnb2luZyB0aHJvdWdoIHRoZQorICAgICAgICBy
ZW5kZXJlci4KKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpF
bGVtZW50UmFyZURhdGE6OkVsZW1lbnRSYXJlRGF0YSk6IEFkZGVkIGEgY29tcHV0ZWQgc3R5bGUg
bWVtYmVyLAorICAgICAgICB1c2VkIHRvIGNhY2hlIGNvbXB1dGVkIHN0eWxlIGZvciBlbGVtZW50
cyB0aGF0IGRvIG5vdCBoYXZlIGEgcmVuZGVyZXIuCisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50
UmFyZURhdGE6OnJlc2V0Q29tcHV0ZWRTdHlsZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
RWxlbWVudDo6fkVsZW1lbnQpOiBEZWxldGUgdGhlIGNhY2hlZCBjb21wdXRlZCBzdHlsZS4KKyAg
ICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnJlY2FsY1N0eWxlKTogQWRkZWQgY29kZSB0byBkZWxl
dGUgdGhlIGNhY2hlZCBjb21wdXRlZAorICAgICAgICBzdHlsZSB3aGVuIG5lY2Vzc2FyeS4KKyAg
ICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmNvbXB1dGVkU3R5bGUpOiBBZGRlZC4gUmV0dXJucyB0
aGUgc3R5bGUgdXNlZCBpbiByZW5kZXJpbmcKKyAgICAgICAgdGhlIGVsZW1lbnQsIGlmIGF2YWls
YWJsZS4gT3RoZXJ3aXNlIHVzZXMgdGhlIHN0eWxlIHNlbGVjdG9yIHRvIGNvbXB1dGUgc3R5bGUK
KyAgICAgICAgZm9yIHRoZSBlbGVtZW50LgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6CisgICAg
ICAgICogZG9tL05vZGUuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OmNvbXB1dGVkU3R5bGUp
OiBBZGRlZC4gVGhpcyBtZXRob2QgcmV0dXJucyBlaXRoZXIgdGhlIHN0eWxlCisgICAgICAgIHVz
ZWQgaW4gcmVuZGVyaW5nIHRoZSBub2RlLCBvciB0aGUgc3R5bGUgdGhhdCB3b3VsZCBiZSB1c2Vk
IGlmIHRoZSBub2RlCisgICAgICAgIGhhZCBhIHJlbmRlcmVyLgorCiAyMDA3LTA3LTA3ICBTYW0g
V2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgT2xpdmVyIEh1
bnQuCkluZGV4OiBXZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAJ
KHJldmlzaW9uIDI0MDkzKQorKysgV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0
aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYxLDEyICszNjEsOCBAQCBzdGF0aWMgUGFzc1Jl
ZlB0cjxDU1NWYWx1ZT4gdmFsdWVGb3JTaGFkCiAgICAgcmV0dXJuIGxpc3QucmVsZWFzZSgpOwog
fQogCi1zdGF0aWMgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gZ2V0UG9zaXRpb25PZmZzZXRWYWx1ZShS
ZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBpbnQgcHJvcGVydHlJRCkKK3N0YXRpYyBQYXNzUmVmUHRy
PENTU1ZhbHVlPiBnZXRQb3NpdGlvbk9mZnNldFZhbHVlKFJlbmRlclN0eWxlKiBzdHlsZSwgaW50
IHByb3BlcnR5SUQpCiB7Ci0gICAgaWYgKCFyZW5kZXJlcikKLSAgICAgICAgcmV0dXJuIDA7Ci0K
LSAgICBSZW5kZXJTdHlsZSogc3R5bGUgPSByZW5kZXJlci0+c3R5bGUoKTsKICAgICBpZiAoIXN0
eWxlKQogICAgICAgICByZXR1cm4gMDsKIApAQCAtMzg4LDEwICszODQsMTAgQEAgc3RhdGljIFBh
c3NSZWZQdHI8Q1NTVmFsdWU+IGdldFBvc2l0aW9uTwogICAgICAgICAgICAgcmV0dXJuIDA7CiAg
ICAgfQogCi0gICAgaWYgKHJlbmRlcmVyLT5pc1Bvc2l0aW9uZWQoKSkKKyAgICBpZiAoc3R5bGUt
PnBvc2l0aW9uKCkgPT0gQWJzb2x1dGVQb3NpdGlvbiB8fCBzdHlsZS0+cG9zaXRpb24oKSA9PSBG
aXhlZFBvc2l0aW9uKQogICAgICAgICByZXR1cm4gdmFsdWVGb3JMZW5ndGgobCk7CiAKLSAgICBp
ZiAocmVuZGVyZXItPmlzUmVsUG9zaXRpb25lZCgpKQorICAgIGlmIChzdHlsZS0+cG9zaXRpb24o
KSA9PSBSZWxhdGl2ZVBvc2l0aW9uKQogICAgICAgICAvLyBGSVhNRTogSXQncyBub3QgZW5vdWdo
IHRvIHNpbXBseSByZXR1cm4gImF1dG8iIHZhbHVlcyBmb3Igb25lIG9mZnNldCBpZiB0aGUgb3Ro
ZXIgc2lkZSBpcyBkZWZpbmVkLgogICAgICAgICAvLyBJbiBvdGhlciB3b3JkcyBpZiBsZWZ0IGlz
IGF1dG8gYW5kIHJpZ2h0IGlzIG5vdCBhdXRvLCB0aGVuIGxlZnQncyBjb21wdXRlZCB2YWx1ZSBp
cyBuZWdhdGl2ZSByaWdodC4KICAgICAgICAgLy8gU28gd2Ugc2hvdWxkIGdldCB0aGUgb3Bwb3Np
dGUgbGVuZ3RoIHVuaXQgYW5kIHNlZSBpZiBpdCBpcyBhdXRvLgpAQCAtNDc4LDE3ICs0NzQsOSBA
QCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBDU1NDb21wdXRlZFN0eWxlRGVjCiAgICAgaWYgKHVwZGF0
ZUxheW91dCkKICAgICAgICAgbm9kZS0+ZG9jdW1lbnQoKS0+dXBkYXRlTGF5b3V0KCk7CiAKLSAg
ICAvLyBGSVhNRTogVGhpcyBzaG91bGQgd29yayBldmVuIGlmIHdlIGRvIG5vdCBoYXZlIGEgcmVu
ZGVyZXIgZm9yIGFsbCBwcm9wZXJ0aWVzLgogICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBu
b2RlLT5yZW5kZXJlcigpOwotICAgIGlmICghcmVuZGVyZXIpIHsKLSAgICAgICAgLy8gSGFuZGxl
IGRpc3BsYXk6bm9uZSBhdCB0aGUgdmVyeSBsZWFzdC4gIEJ5IGRlZmluaXRpb24gaWYgd2UgZG9u
J3QgaGF2ZSBhIHJlbmRlcmVyCi0gICAgICAgIC8vIHdlIGFyZSBjb25zaWRlcmVkIHRvIGhhdmUg
bm8gZGlzcGxheS4KLSAgICAgICAgaWYgKHByb3BlcnR5SUQgPT0gQ1NTX1BST1BfRElTUExBWSkK
LSAgICAgICAgICAgIHJldHVybiBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUoQ1NTX1ZBTF9OT05FKTsK
LSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQogCi0gICAgUmVuZGVyU3R5bGUqIHN0eWxlID0gcmVu
ZGVyZXItPnN0eWxlKCk7CisgICAgUmVuZGVyU3R5bGUqIHN0eWxlID0gbm9kZS0+Y29tcHV0ZWRT
dHlsZSgpOwogICAgIGlmICghc3R5bGUpCiAgICAgICAgIHJldHVybiAwOwogCkBAIC01NzQsMTQg
KzU2MiwxOCBAQCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBDU1NDb21wdXRlZFN0eWxlRGVjCiAgICAg
ICAgICAgICBMZW5ndGggbGVuZ3RoKHN0eWxlLT5iYWNrZ3JvdW5kWFBvc2l0aW9uKCkpOwogICAg
ICAgICAgICAgaWYgKGxlbmd0aC5pc1BlcmNlbnQoKSkKICAgICAgICAgICAgICAgICBzdHJpbmcg
PSBudW1iZXJBc1N0cmluZyhsZW5ndGgucGVyY2VudCgpKSArICIlIjsKLSAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIGVsc2UgaWYgKHJlbmRlcmVyKQogICAgICAgICAgICAgICAgIHN0cmlu
ZyA9IG51bWJlckFzU3RyaW5nKGxlbmd0aC5jYWxjTWluVmFsdWUocmVuZGVyZXItPmNvbnRlbnRX
aWR0aCgpKSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgc3RyaW5nID0gbnVt
YmVyQXNTdHJpbmcobGVuZ3RoLnZhbHVlKCkpOwogICAgICAgICAgICAgc3RyaW5nICs9ICIgIjsK
ICAgICAgICAgICAgIGxlbmd0aCA9IHN0eWxlLT5iYWNrZ3JvdW5kWVBvc2l0aW9uKCk7CiAgICAg
ICAgICAgICBpZiAobGVuZ3RoLmlzUGVyY2VudCgpKQogICAgICAgICAgICAgICAgIHN0cmluZyAr
PSBudW1iZXJBc1N0cmluZyhsZW5ndGgucGVyY2VudCgpKSArICIlIjsKLSAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIGVsc2UgaWYgKHJlbmRlcmVyKQogICAgICAgICAgICAgICAgIHN0cmlu
ZyArPSBudW1iZXJBc1N0cmluZyhsZW5ndGguY2FsY01pblZhbHVlKHJlbmRlcmVyLT5jb250ZW50
V2lkdGgoKSkpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHN0cmluZyArPSBu
dW1iZXJBc1N0cmluZyhsZW5ndGgudmFsdWUoKSk7CiAgICAgICAgICAgICByZXR1cm4gbmV3IENT
U1ByaW1pdGl2ZVZhbHVlKHN0cmluZywgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19TVFJJTkcpOwog
ICAgICAgICB9CiAgICAgICAgIGNhc2UgQ1NTX1BST1BfQkFDS0dST1VORF9QT1NJVElPTl9YOgpA
QCAtNjI0LDcgKzYxNiw3IEBAIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IENTU0NvbXB1dGVkU3R5bGVE
ZWMKICAgICAgICAgY2FzZSBDU1NfUFJPUF9CT1JERVJfTEVGVF9XSURUSDoKICAgICAgICAgICAg
IHJldHVybiBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUoc3R5bGUtPmJvcmRlckxlZnRXaWR0aCgpLCBD
U1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BYKTsKICAgICAgICAgY2FzZSBDU1NfUFJPUF9CT1RUT006
Ci0gICAgICAgICAgICByZXR1cm4gZ2V0UG9zaXRpb25PZmZzZXRWYWx1ZShyZW5kZXJlciwgQ1NT
X1BST1BfQk9UVE9NKTsKKyAgICAgICAgICAgIHJldHVybiBnZXRQb3NpdGlvbk9mZnNldFZhbHVl
KHN0eWxlLCBDU1NfUFJPUF9CT1RUT00pOwogICAgICAgICBjYXNlIENTU19QUk9QX19XRUJLSVRf
Qk9YX0FMSUdOOgogICAgICAgICAgICAgc3dpdGNoIChzdHlsZS0+Ym94QWxpZ24oKSkgewogICAg
ICAgICAgICAgICAgIGNhc2UgQlNUUkVUQ0g6CkBAIC05ODYsNyArOTc4LDkgQEAgUGFzc1JlZlB0
cjxDU1NWYWx1ZT4gQ1NTQ29tcHV0ZWRTdHlsZURlYwogICAgICAgICAgICAgICAgIHJldHVybiBu
ZXcgQ1NTUHJpbWl0aXZlVmFsdWUoQ1NTX1ZBTF9CT0xEKTsKICAgICAgICAgICAgIHJldHVybiBu
ZXcgQ1NTUHJpbWl0aXZlVmFsdWUoQ1NTX1ZBTF9OT1JNQUwpOwogICAgICAgICBjYXNlIENTU19Q
Uk9QX0hFSUdIVDoKLSAgICAgICAgICAgIHJldHVybiBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUocmVu
ZGVyZXItPmNvbnRlbnRIZWlnaHQoKSwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QWCk7CisgICAg
ICAgICAgICBpZiAocmVuZGVyZXIpCisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBDU1NQcmlt
aXRpdmVWYWx1ZShyZW5kZXJlci0+Y29udGVudEhlaWdodCgpLCBDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTX1BYKTsKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZUZvckxlbmd0aChzdHlsZS0+aGVpZ2h0
KCkpOwogICAgICAgICBjYXNlIENTU19QUk9QX19XRUJLSVRfSElHSExJR0hUOgogICAgICAgICAg
ICAgaWYgKHN0eWxlLT5oaWdobGlnaHQoKSA9PSBudWxsQXRvbSkKICAgICAgICAgICAgICAgICBy
ZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKENTU19WQUxfTk9ORSk7CkBAIC05OTYsNyArOTkw
LDcgQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTQ29tcHV0ZWRTdHlsZURlYwogICAgICAgICAg
ICAgICAgIHJldHVybiBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUoQ1NTX1ZBTF9CT1JERVIpOwogICAg
ICAgICAgICAgcmV0dXJuIG5ldyBDU1NQcmltaXRpdmVWYWx1ZShDU1NfVkFMX0xJTkVTKTsKICAg
ICAgICAgY2FzZSBDU1NfUFJPUF9MRUZUOgotICAgICAgICAgICAgcmV0dXJuIGdldFBvc2l0aW9u
T2Zmc2V0VmFsdWUocmVuZGVyZXIsIENTU19QUk9QX0xFRlQpOworICAgICAgICAgICAgcmV0dXJu
IGdldFBvc2l0aW9uT2Zmc2V0VmFsdWUoc3R5bGUsIENTU19QUk9QX0xFRlQpOwogICAgICAgICBj
YXNlIENTU19QUk9QX0xFVFRFUl9TUEFDSU5HOgogICAgICAgICAgICAgaWYgKCFzdHlsZS0+bGV0
dGVyU3BhY2luZygpKQogICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQ1NTUHJpbWl0aXZlVmFs
dWUoQ1NTX1ZBTF9OT1JNQUwpOwpAQCAtMTA3OCwxNyArMTA3MiwyNSBAQCBQYXNzUmVmUHRyPENT
U1ZhbHVlPiBDU1NDb21wdXRlZFN0eWxlRGVjCiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICBjYXNlIENTU19QUk9QX01BUkdJ
Tl9UT1A6Ci0gICAgICAgICAgICAvLyBGSVhNRTogU3VwcG9zZWQgdG8gcmV0dXJuIHRoZSBwZXJj
ZW50YWdlIGlmIHBlcmNlbnRhZ2Ugd2FzIHNwZWNpZmllZC4KLSAgICAgICAgICAgIHJldHVybiBu
ZXcgQ1NTUHJpbWl0aXZlVmFsdWUocmVuZGVyZXItPm1hcmdpblRvcCgpLCBDU1NQcmltaXRpdmVW
YWx1ZTo6Q1NTX1BYKTsKKyAgICAgICAgICAgIGlmIChyZW5kZXJlcikKKyAgICAgICAgICAgICAg
ICAvLyBGSVhNRTogU3VwcG9zZWQgdG8gcmV0dXJuIHRoZSBwZXJjZW50YWdlIGlmIHBlcmNlbnRh
Z2Ugd2FzIHNwZWNpZmllZC4KKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IENTU1ByaW1pdGl2
ZVZhbHVlKHJlbmRlcmVyLT5tYXJnaW5Ub3AoKSwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QWCk7
CisgICAgICAgICAgICByZXR1cm4gdmFsdWVGb3JMZW5ndGgoc3R5bGUtPm1hcmdpblRvcCgpKTsK
ICAgICAgICAgY2FzZSBDU1NfUFJPUF9NQVJHSU5fUklHSFQ6Ci0gICAgICAgICAgICAvLyBGSVhN
RTogU3VwcG9zZWQgdG8gcmV0dXJuIHRoZSBwZXJjZW50YWdlIGlmIHBlcmNlbnRhZ2Ugd2FzIHNw
ZWNpZmllZC4KLSAgICAgICAgICAgIHJldHVybiBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUocmVuZGVy
ZXItPm1hcmdpblJpZ2h0KCksIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUFgpOworICAgICAgICAg
ICAgaWYgKHJlbmRlcmVyKQorICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBTdXBwb3NlZCB0byBy
ZXR1cm4gdGhlIHBlcmNlbnRhZ2UgaWYgcGVyY2VudGFnZSB3YXMgc3BlY2lmaWVkLgorICAgICAg
ICAgICAgICAgIHJldHVybiBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUocmVuZGVyZXItPm1hcmdpblJp
Z2h0KCksIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUFgpOworICAgICAgICAgICAgcmV0dXJuIHZh
bHVlRm9yTGVuZ3RoKHN0eWxlLT5tYXJnaW5SaWdodCgpKTsKICAgICAgICAgY2FzZSBDU1NfUFJP
UF9NQVJHSU5fQk9UVE9NOgotICAgICAgICAgICAgLy8gRklYTUU6IFN1cHBvc2VkIHRvIHJldHVy
biB0aGUgcGVyY2VudGFnZSBpZiBwZXJjZW50YWdlIHdhcyBzcGVjaWZpZWQuCi0gICAgICAgICAg
ICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKHJlbmRlcmVyLT5tYXJnaW5Cb3R0b20oKSwg
Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QWCk7CisgICAgICAgICAgICBpZiAocmVuZGVyZXIpCisg
ICAgICAgICAgICAgICAgLy8gRklYTUU6IFN1cHBvc2VkIHRvIHJldHVybiB0aGUgcGVyY2VudGFn
ZSBpZiBwZXJjZW50YWdlIHdhcyBzcGVjaWZpZWQuCisgICAgICAgICAgICAgICAgcmV0dXJuIG5l
dyBDU1NQcmltaXRpdmVWYWx1ZShyZW5kZXJlci0+bWFyZ2luQm90dG9tKCksIENTU1ByaW1pdGl2
ZVZhbHVlOjpDU1NfUFgpOworICAgICAgICAgICAgcmV0dXJuIHZhbHVlRm9yTGVuZ3RoKHN0eWxl
LT5tYXJnaW5Cb3R0b20oKSk7CiAgICAgICAgIGNhc2UgQ1NTX1BST1BfTUFSR0lOX0xFRlQ6Ci0g
ICAgICAgICAgICAvLyBGSVhNRTogU3VwcG9zZWQgdG8gcmV0dXJuIHRoZSBwZXJjZW50YWdlIGlm
IHBlcmNlbnRhZ2Ugd2FzIHNwZWNpZmllZC4KLSAgICAgICAgICAgIHJldHVybiBuZXcgQ1NTUHJp
bWl0aXZlVmFsdWUocmVuZGVyZXItPm1hcmdpbkxlZnQoKSwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNT
U19QWCk7CisgICAgICAgICAgICBpZiAocmVuZGVyZXIpCisgICAgICAgICAgICAgICAgLy8gRklY
TUU6IFN1cHBvc2VkIHRvIHJldHVybiB0aGUgcGVyY2VudGFnZSBpZiBwZXJjZW50YWdlIHdhcyBz
cGVjaWZpZWQuCisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBDU1NQcmltaXRpdmVWYWx1ZShy
ZW5kZXJlci0+bWFyZ2luTGVmdCgpLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BYKTsKKyAgICAg
ICAgICAgIHJldHVybiB2YWx1ZUZvckxlbmd0aChzdHlsZS0+bWFyZ2luTGVmdCgpKTsKICAgICAg
ICAgY2FzZSBDU1NfUFJPUF9fV0VCS0lUX01BUlFVRUVfRElSRUNUSU9OOgogICAgICAgICAgICAg
c3dpdGNoIChzdHlsZS0+bWFycXVlZURpcmVjdGlvbigpKSB7CiAgICAgICAgICAgICAgICAgY2Fz
ZSBNRk9SV0FSRDoKQEAgLTExOTAsMTMgKzExOTIsMjEgQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4g
Q1NTQ29tcHV0ZWRTdHlsZURlYwogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIH0KICAg
ICAgICAgY2FzZSBDU1NfUFJPUF9QQURESU5HX1RPUDoKLSAgICAgICAgICAgIHJldHVybiBuZXcg
Q1NTUHJpbWl0aXZlVmFsdWUocmVuZGVyZXItPnBhZGRpbmdUb3AoKSwgQ1NTUHJpbWl0aXZlVmFs
dWU6OkNTU19QWCk7CisgICAgICAgICAgICBpZiAocmVuZGVyZXIpCisgICAgICAgICAgICAgICAg
cmV0dXJuIG5ldyBDU1NQcmltaXRpdmVWYWx1ZShyZW5kZXJlci0+cGFkZGluZ1RvcCgpLCBDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTX1BYKTsKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZUZvckxlbmd0
aChzdHlsZS0+cGFkZGluZ1RvcCgpKTsKICAgICAgICAgY2FzZSBDU1NfUFJPUF9QQURESU5HX1JJ
R0hUOgotICAgICAgICAgICAgcmV0dXJuIG5ldyBDU1NQcmltaXRpdmVWYWx1ZShyZW5kZXJlci0+
cGFkZGluZ1JpZ2h0KCksIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUFgpOworICAgICAgICAgICAg
aWYgKHJlbmRlcmVyKQorICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQ1NTUHJpbWl0aXZlVmFs
dWUocmVuZGVyZXItPnBhZGRpbmdSaWdodCgpLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BYKTsK
KyAgICAgICAgICAgIHJldHVybiB2YWx1ZUZvckxlbmd0aChzdHlsZS0+cGFkZGluZ1JpZ2h0KCkp
OwogICAgICAgICBjYXNlIENTU19QUk9QX1BBRERJTkdfQk9UVE9NOgotICAgICAgICAgICAgcmV0
dXJuIG5ldyBDU1NQcmltaXRpdmVWYWx1ZShyZW5kZXJlci0+cGFkZGluZ0JvdHRvbSgpLCBDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTX1BYKTsKKyAgICAgICAgICAgIGlmIChyZW5kZXJlcikKKyAgICAg
ICAgICAgICAgICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKHJlbmRlcmVyLT5wYWRkaW5n
Qm90dG9tKCksIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUFgpOworICAgICAgICAgICAgcmV0dXJu
IHZhbHVlRm9yTGVuZ3RoKHN0eWxlLT5wYWRkaW5nQm90dG9tKCkpOwogICAgICAgICBjYXNlIENT
U19QUk9QX1BBRERJTkdfTEVGVDoKLSAgICAgICAgICAgIHJldHVybiBuZXcgQ1NTUHJpbWl0aXZl
VmFsdWUocmVuZGVyZXItPnBhZGRpbmdMZWZ0KCksIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUFgp
OworICAgICAgICAgICAgaWYgKHJlbmRlcmVyKQorICAgICAgICAgICAgICAgIHJldHVybiBuZXcg
Q1NTUHJpbWl0aXZlVmFsdWUocmVuZGVyZXItPnBhZGRpbmdMZWZ0KCksIENTU1ByaW1pdGl2ZVZh
bHVlOjpDU1NfUFgpOworICAgICAgICAgICAgcmV0dXJuIHZhbHVlRm9yTGVuZ3RoKHN0eWxlLT5w
YWRkaW5nTGVmdCgpKTsKICAgICAgICAgY2FzZSBDU1NfUFJPUF9QQUdFX0JSRUFLX0FGVEVSOgog
ICAgICAgICAgICAgc3dpdGNoIChzdHlsZS0+cGFnZUJyZWFrQWZ0ZXIoKSkgewogICAgICAgICAg
ICAgICAgIGNhc2UgUEJBVVRPOgpAQCAtMTI0NCw3ICsxMjU0LDcgQEAgUGFzc1JlZlB0cjxDU1NW
YWx1ZT4gQ1NTQ29tcHV0ZWRTdHlsZURlYwogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgY2FzZSBDU1NfUFJPUF9SSUdIVDoK
LSAgICAgICAgICAgIHJldHVybiBnZXRQb3NpdGlvbk9mZnNldFZhbHVlKHJlbmRlcmVyLCBDU1Nf
UFJPUF9SSUdIVCk7CisgICAgICAgICAgICByZXR1cm4gZ2V0UG9zaXRpb25PZmZzZXRWYWx1ZShz
dHlsZSwgQ1NTX1BST1BfUklHSFQpOwogICAgICAgICBjYXNlIENTU19QUk9QX1RBQkxFX0xBWU9V
VDoKICAgICAgICAgICAgIHN3aXRjaCAoc3R5bGUtPnRhYmxlTGF5b3V0KCkpIHsKICAgICAgICAg
ICAgICAgICBjYXNlIFRBVVRPOgpAQCAtMTM0Myw3ICsxMzUzLDcgQEAgUGFzc1JlZlB0cjxDU1NW
YWx1ZT4gQ1NTQ29tcHV0ZWRTdHlsZURlYwogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgY2FzZSBDU1NfUFJPUF9UT1A6Ci0g
ICAgICAgICAgICByZXR1cm4gZ2V0UG9zaXRpb25PZmZzZXRWYWx1ZShyZW5kZXJlciwgQ1NTX1BS
T1BfVE9QKTsKKyAgICAgICAgICAgIHJldHVybiBnZXRQb3NpdGlvbk9mZnNldFZhbHVlKHN0eWxl
LCBDU1NfUFJPUF9UT1ApOwogICAgICAgICBjYXNlIENTU19QUk9QX1VOSUNPREVfQklESToKICAg
ICAgICAgICAgIHN3aXRjaCAoc3R5bGUtPnVuaWNvZGVCaWRpKCkpIHsKICAgICAgICAgICAgICAg
ICBjYXNlIFVCTm9ybWFsOgpAQCAtMTQxMSw3ICsxNDIxLDkgQEAgUGFzc1JlZlB0cjxDU1NWYWx1
ZT4gQ1NTQ29tcHV0ZWRTdHlsZURlYwogICAgICAgICBjYXNlIENTU19QUk9QX1dJRE9XUzoKICAg
ICAgICAgICAgIHJldHVybiBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUoc3R5bGUtPndpZG93cygpLCBD
U1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUik7CiAgICAgICAgIGNhc2UgQ1NTX1BST1BfV0lE
VEg6Ci0gICAgICAgICAgICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKHJlbmRlcmVyLT5j
b250ZW50V2lkdGgoKSwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QWCk7CisgICAgICAgICAgICBp
ZiAocmVuZGVyZXIpCisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBDU1NQcmltaXRpdmVWYWx1
ZShyZW5kZXJlci0+Y29udGVudFdpZHRoKCksIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUFgpOwor
ICAgICAgICAgICAgcmV0dXJuIHZhbHVlRm9yTGVuZ3RoKHN0eWxlLT53aWR0aCgpKTsKICAgICAg
ICAgY2FzZSBDU1NfUFJPUF9XT1JEX0JSRUFLOgogICAgICAgICAgICAgc3dpdGNoIChzdHlsZS0+
d29yZEJyZWFrKCkpIHsKICAgICAgICAgICAgICAgICBjYXNlIE5vcm1hbFdvcmRCcmVhazoKQEAg
LTE2NDQsMTEgKzE2NTYsNyBAQCB1bnNpZ25lZCBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246
OmxlCiAgICAgaWYgKCFub2RlKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIFJlbmRlck9iamVj
dCogcmVuZGVyZXIgPSBub2RlLT5yZW5kZXJlcigpOwotICAgIGlmICghcmVuZGVyZXIpCi0gICAg
ICAgIHJldHVybiAwOwotCi0gICAgUmVuZGVyU3R5bGUqIHN0eWxlID0gcmVuZGVyZXItPnN0eWxl
KCk7CisgICAgUmVuZGVyU3R5bGUqIHN0eWxlID0gbm9kZS0+Y29tcHV0ZWRTdHlsZSgpOwogICAg
IGlmICghc3R5bGUpCiAgICAgICAgIHJldHVybiAwOwogCkBAIC0xNzAyLDE0ICsxNzEwLDE0IEBA
IHZvaWQgQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpyZW1vdmUKIFBhc3NSZWZQdHI8Q1NT
TXV0YWJsZVN0eWxlRGVjbGFyYXRpb24+IENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6Y29w
eUluaGVyaXRhYmxlUHJvcGVydGllcygpIGNvbnN0CiB7CiAgICAgUmVmUHRyPENTU011dGFibGVT
dHlsZURlY2xhcmF0aW9uPiBzdHlsZSA9IGNvcHlQcm9wZXJ0aWVzSW5TZXQoaW5oZXJpdGFibGVQ
cm9wZXJ0aWVzLCBudW1Jbmhlcml0YWJsZVByb3BlcnRpZXMpOwotICAgIGlmIChzdHlsZSAmJiBt
X25vZGUgJiYgbV9ub2RlLT5yZW5kZXJlcigpKSB7CisgICAgaWYgKHN0eWxlICYmIG1fbm9kZSAm
JiBtX25vZGUtPmNvbXB1dGVkU3R5bGUoKSkgewogICAgICAgICAvLyBJZiBhIG5vZGUncyB0ZXh0
IGZpbGwgY29sb3IgaXMgaW52YWxpZCwgdGhlbiBpdHMgY2hpbGRyZW4gdXNlIAogICAgICAgICAv
LyB0aGVpciBmb250LWNvbG9yIGFzIHRoZWlyIHRleHQgZmlsbCBjb2xvciAodGhleSBkb24ndAog
ICAgICAgICAvLyBpbmhlcml0IGl0KS4gIExpa2V3aXNlIGZvciBzdHJva2UgY29sb3IuCiAgICAg
ICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgICAgICBpZiAoIW1fbm9kZS0+cmVuZGVyZXIo
KS0+c3R5bGUoKS0+dGV4dEZpbGxDb2xvcigpLmlzVmFsaWQoKSkKKyAgICAgICAgaWYgKCFtX25v
ZGUtPmNvbXB1dGVkU3R5bGUoKS0+dGV4dEZpbGxDb2xvcigpLmlzVmFsaWQoKSkKICAgICAgICAg
ICAgIHN0eWxlLT5yZW1vdmVQcm9wZXJ0eShDU1NfUFJPUF9fV0VCS0lUX1RFWFRfRklMTF9DT0xP
UiwgZWMpOwotICAgICAgICBpZiAoIW1fbm9kZS0+cmVuZGVyZXIoKS0+c3R5bGUoKS0+dGV4dFN0
cm9rZUNvbG9yKCkuaXNWYWxpZCgpKQorICAgICAgICBpZiAoIW1fbm9kZS0+Y29tcHV0ZWRTdHls
ZSgpLT50ZXh0U3Ryb2tlQ29sb3IoKS5pc1ZhbGlkKCkpCiAgICAgICAgICAgICBzdHlsZS0+cmVt
b3ZlUHJvcGVydHkoQ1NTX1BST1BfX1dFQktJVF9URVhUX1NUUk9LRV9DT0xPUiwgZWMpOwogICAg
ICAgICBBU1NFUlQoZWMgPT0gMCk7CiAgICAgfQpJbmRleDogV2ViQ29yZS9kb20vRWxlbWVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vRWxlbWVudC5jcHAJKHJldmlzaW9uIDI0MDkz
KQorKysgV2ViQ29yZS9kb20vRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUwLDcgKzUw
LDEwIEBAIHVzaW5nIG5hbWVzcGFjZSBYTUxOYW1lczsKIGNsYXNzIEVsZW1lbnRSYXJlRGF0YSB7
CiBwdWJsaWM6CiAgICAgRWxlbWVudFJhcmVEYXRhKEVsZW1lbnQqKTsKKyAgICB2b2lkIHJlc2V0
Q29tcHV0ZWRTdHlsZShFbGVtZW50Kik7CisKICAgICBJbnRTaXplIG1fbWluaW11bVNpemVGb3JS
ZXNpemluZzsKKyAgICBSZW5kZXJTdHlsZSogbV9jb21wdXRlZFN0eWxlOwogfTsKIAogdHlwZWRl
ZiBIYXNoTWFwPGNvbnN0IEVsZW1lbnQqLCBFbGVtZW50UmFyZURhdGEqPiBFbGVtZW50UmFyZURh
dGFNYXA7CkBAIC03Myw3ICs3NiwxNiBAQCBzdGF0aWMgaW5saW5lIEludFNpemUgZGVmYXVsdE1p
bmltdW1TaXplCiAKIGlubGluZSBFbGVtZW50UmFyZURhdGE6OkVsZW1lbnRSYXJlRGF0YShFbGVt
ZW50KiBlbGVtZW50KQogICAgIDogbV9taW5pbXVtU2l6ZUZvclJlc2l6aW5nKGRlZmF1bHRNaW5p
bXVtU2l6ZUZvclJlc2l6aW5nKCkpCisgICAgLCBtX2NvbXB1dGVkU3R5bGUoMCkKK3sKK30KKwor
dm9pZCBFbGVtZW50UmFyZURhdGE6OnJlc2V0Q29tcHV0ZWRTdHlsZShFbGVtZW50KiBlbGVtZW50
KQogeworICAgIGlmICghbV9jb21wdXRlZFN0eWxlKQorICAgICAgICByZXR1cm47CisgICAgbV9j
b21wdXRlZFN0eWxlLT5kZXJlZihlbGVtZW50LT5kb2N1bWVudCgpLT5yZW5kZXJBcmVuYSgpKTsK
KyAgICBtX2NvbXB1dGVkU3R5bGUgPSAwOwogfQogCiBFbGVtZW50OjpFbGVtZW50KGNvbnN0IFF1
YWxpZmllZE5hbWUmIHFOYW1lLCBEb2N1bWVudCAqZG9jKQpAQCAtOTUsNiArMTA3LDcgQEAgRWxl
bWVudDo6fkVsZW1lbnQoKQogICAgICAgICBFbGVtZW50UmFyZURhdGFNYXAmIGRhdGFNYXAgPSBy
YXJlRGF0YU1hcCgpOwogICAgICAgICBFbGVtZW50UmFyZURhdGFNYXA6Oml0ZXJhdG9yIGl0ID0g
ZGF0YU1hcC5maW5kKHRoaXMpOwogICAgICAgICBBU1NFUlQoaXQgIT0gZGF0YU1hcC5lbmQoKSk7
CisgICAgICAgIGl0LT5zZWNvbmQtPnJlc2V0Q29tcHV0ZWRTdHlsZSh0aGlzKTsKICAgICAgICAg
ZGVsZXRlIGl0LT5zZWNvbmQ7CiAgICAgICAgIGRhdGFNYXAucmVtb3ZlKGl0KTsKICAgICB9CkBA
IC02NzEsNiArNjg0LDEwIEBAIHZvaWQgRWxlbWVudDo6cmVjYWxjU3R5bGUoU3R5bGVDaGFuZ2Ug
Y2gKICAgICAgICAgaGFzUGFyZW50U3R5bGUgPSB0cnVlOwogI2VuZGlmCiAKKyAgICBpZiAoKGNo
YW5nZSA+IE5vQ2hhbmdlIHx8IGNoYW5nZWQoKSkpIHsKKyAgICAgICAgaWYgKEVsZW1lbnRSYXJl
RGF0YSogcmQgPSByYXJlRGF0YSgpKQorICAgICAgICAgICAgcmQtPnJlc2V0Q29tcHV0ZWRTdHls
ZSh0aGlzKTsKKyAgICB9CiAgICAgaWYgKGhhc1BhcmVudFN0eWxlICYmIChjaGFuZ2UgPj0gSW5o
ZXJpdCB8fCBjaGFuZ2VkKCkpKSB7CiAgICAgICAgIFJlbmRlclN0eWxlICpuZXdTdHlsZSA9IGRv
Y3VtZW50KCktPnN0eWxlU2VsZWN0b3IoKS0+c3R5bGVGb3JFbGVtZW50KHRoaXMpOwogICAgICAg
ICBTdHlsZUNoYW5nZSBjaCA9IGRpZmYoX3N0eWxlLCBuZXdTdHlsZSk7CkBAIC0xMDY3LDQgKzEw
ODQsMTcgQEAgdm9pZCBFbGVtZW50OjpzZXRNaW5pbXVtU2l6ZUZvclJlc2l6aW5nKAogICAgIGNy
ZWF0ZVJhcmVEYXRhKCktPm1fbWluaW11bVNpemVGb3JSZXNpemluZyA9IHNpemU7CiB9CiAKK1Jl
bmRlclN0eWxlKiBFbGVtZW50Ojpjb21wdXRlZFN0eWxlKCkKK3sKKyAgICBpZiAoUmVuZGVyU3R5
bGUqIHVzZWRTdHlsZSA9IHJlbmRlclN0eWxlKCkpCisgICAgICAgIHJldHVybiB1c2VkU3R5bGU7
CisKKyAgICBFbGVtZW50UmFyZURhdGEqIHJkID0gY3JlYXRlUmFyZURhdGEoKTsKKyAgICBpZiAo
IXJkLT5tX2NvbXB1dGVkU3R5bGUpIHsKKyAgICAgICAgcmQtPm1fY29tcHV0ZWRTdHlsZSA9IGRv
Y3VtZW50KCktPnN0eWxlU2VsZWN0b3IoKS0+c3R5bGVGb3JFbGVtZW50KHRoaXMsIHBhcmVudCgp
ID8gcGFyZW50KCktPmNvbXB1dGVkU3R5bGUoKSA6IDApOworICAgICAgICByZC0+bV9jb21wdXRl
ZFN0eWxlLT5yZWYoKTsKKyAgICB9CisgICAgcmV0dXJuIHJkLT5tX2NvbXB1dGVkU3R5bGU7Cit9
CisKIH0KSW5kZXg6IFdlYkNvcmUvZG9tL0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2RvbS9FbGVtZW50LmgJKHJldmlzaW9uIDI0MDkzKQorKysgV2ViQ29yZS9kb20vRWxlbWVudC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xNDIsNiArMTQyLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwg
UmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSosIFJlbmRlclN0eWxlKik7
CiAgICAgdmlydHVhbCB2b2lkIHJlY2FsY1N0eWxlKFN0eWxlQ2hhbmdlID0gTm9DaGFuZ2UpOwog
CisgICAgdmlydHVhbCBSZW5kZXJTdHlsZSogY29tcHV0ZWRTdHlsZSgpOworCiAgICAgdmlydHVh
bCBib29sIGNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUpOwogCiAgICAgdmlydHVhbCBBdHRyaWJ1
dGUqIGNyZWF0ZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBTdHJpbmdJbXBs
KiB2YWx1ZSk7CkluZGV4OiBXZWJDb3JlL2RvbS9Ob2RlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9kb20vTm9kZS5oCShyZXZpc2lvbiAyNDA5MykKKysrIFdlYkNvcmUvZG9tL05vZGUuaAkod29y
a2luZyBjb3B5KQpAQCAtMzk0LDYgKzM5NCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFJlbmRl
clN0eWxlKiByZW5kZXJTdHlsZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBzZXRSZW5kZXJT
dHlsZShSZW5kZXJTdHlsZSopOwogCisgICAgdmlydHVhbCBSZW5kZXJTdHlsZSogY29tcHV0ZWRT
dHlsZSgpIHsgcmV0dXJuIHBhcmVudCgpID8gcGFyZW50KCktPmNvbXB1dGVkU3R5bGUoKSA6IDA7
IH0KKwogICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgLy8gTm90aWZpY2F0aW9uIG9m
IGRvY3VtZW50IHN0cnVjdHVyZSBjaGFuZ2VzCiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0MDkzKQor
KysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMDctMDctMDggIE1pdHogUGV0dGVsICA8bWl0ekB3ZWJraXQub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0gdGVzdCBmb3IgaHR0cDovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzODQKKyAgICAgICAgICBnZXRDb21wdXRl
ZFN0eWxlIHdpdGggdGQuc3R5bGUuZGlzcGxheT0nbm9uZScgcmVwb3J0cyAnJyBmb3IgYWxsIHBy
b3BlcnRpZXMgZXhjZXB0IGRpc3BsYXkKKworICAgICAgICAqIGZhc3QvY3NzL2NvbXB1dGVkLXN0
eWxlLXdpdGhvdXQtcmVuZGVyZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2Nzcy9jb21wdXRlZC1zdHlsZS13aXRob3V0LXJlbmRlcmVyLmh0bWw6IEFkZGVkLgorCiAyMDA3
LTA3LTA3ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgT2xpdmVyIEh1bnQuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb21wdXRlZC1zdHls
ZS13aXRob3V0LXJlbmRlcmVyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2Nzcy9jb21wdXRlZC1zdHlsZS13aXRob3V0LXJlbmRlcmVyLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvY3NzL2NvbXB1dGVkLXN0eWxlLXdpdGhv
dXQtcmVuZGVyZXItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1MCBAQAor
Q29tcHV0ZWQgc3R5bGUgb2YgYW4gZWxlbWVudCB3aG9zZSBwYXJlbnQncyAnZGlzcGxheScgdmFs
dWUgaXMgJ25vbmUnOgorICAgIGJhY2tncm91bmQtYXR0YWNobWVudDogc2Nyb2xsCisgICAgYmFj
a2dyb3VuZC1jb2xvcjogcmdiKDAsIDEyOCwgMCkKKyAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25l
CisgICAgYmFja2dyb3VuZC1wb3NpdGlvbi14OiBhdXRvCisgICAgYmFja2dyb3VuZC1wb3NpdGlv
bi15OiBhdXRvCisgICAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdAorICAgIGJvcmRlci1ib3R0
b20tY29sb3I6IHJnYigwLCAwLCAwKQorICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IG5vbmUKKyAg
ICBib3JkZXItYm90dG9tLXdpZHRoOiAwcHgKKyAgICBib3JkZXItY29sbGFwc2U6IHNlcGFyYXRl
CisgICAgYm9yZGVyLWxlZnQtY29sb3I6IHJnYigwLCAwLCAwKQorICAgIGJvcmRlci1sZWZ0LXN0
eWxlOiBub25lCisgICAgYm9yZGVyLWxlZnQtd2lkdGg6IDBweAorICAgIGJvcmRlci1yaWdodC1j
b2xvcjogcmdiKDAsIDAsIDApCisgICAgYm9yZGVyLXJpZ2h0LXN0eWxlOiBub25lCisgICAgYm9y
ZGVyLXJpZ2h0LXdpZHRoOiAwcHgKKyAgICBib3JkZXItdG9wLWNvbG9yOiByZ2IoMCwgMCwgMCkK
KyAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZAorICAgIGJvcmRlci10b3Atd2lkdGg6IDE2cHgK
KyAgICBib3R0b206IGF1dG8KKyAgICBjYXB0aW9uLXNpZGU6IHRvcAorICAgIGNsZWFyOiBub25l
CisgICAgY29sb3I6IHJnYigwLCAwLCAwKQorICAgIGN1cnNvcjogYXV0bworICAgIGRpcmVjdGlv
bjogbHRyCisgICAgZGlzcGxheTogYmxvY2sKKyAgICBlbXB0eS1jZWxsczogc2hvdworICAgIGZs
b2F0OiBub25lCisgICAgZm9udC1mYW1pbHk6IFRpbWVzCisgICAgZm9udC1zaXplOiAxNnB4Cisg
ICAgZm9udC1zdHlsZTogbm9ybWFsCisgICAgZm9udC12YXJpYW50OiBub3JtYWwKKyAgICBmb250
LXdlaWdodDogbm9ybWFsCisgICAgaGVpZ2h0OiAxMDBweAorICAgIGxlZnQ6IGF1dG8KKyAgICBs
ZXR0ZXItc3BhY2luZzogbm9ybWFsCisgICAgbGluZS1oZWlnaHQ6IG5vcm1hbAorICAgIGxpc3Qt
c3R5bGUtaW1hZ2U6IG5vbmUKKyAgICBsaXN0LXN0eWxlLXBvc2l0aW9uOiBvdXRzaWRlCisgICAg
bGlzdC1zdHlsZS10eXBlOiBkaXNjCisgICAgbWFyZ2luLWJvdHRvbTogMHB4CisgICAgbWFyZ2lu
LWxlZnQ6IGF1dG8KKyAgICBtYXJnaW4tcmlnaHQ6IDBweAorICAgIG1hcmdpbi10b3A6IDBweAor
ICAgIG1heC1oZWlnaHQ6IG5vbmUKKyAgICBtYXgtd2lkdGg6IG5vbmUKKyAgICBtaW4taGVpZ2h0
OiAwcHgKKyAgICBtaW4td2lkdGg6IDBweAorICAgIG9wYWNpdHk6IDEKKyAgICBvcnBoYW5zOiAy
CisgICAgb3V0bGluZS1jb2xvcjogcmdiKDAsIDAsIDApCisgICAgb3V0bGluZS1zdHlsZTogbm9u
ZQorICAgIG91dGxpbmUtd2lkdGg6IDBweAorICAgIG92ZXJmbG93LXg6IHZpc2libGUKKyAgICBv
dmVyZmxvdy15OiB2aXNpYmxlCisgICAgcGFkZGluZy1ib3R0b206IGF1dG8KKyAgICBwYWRkaW5n
LWxlZnQ6IGF1dG8KKyAgICBwYWRkaW5nLXJpZ2h0OiBhdXRvCisgICAgcGFkZGluZy10b3A6IGF1
dG8KKyAgICBwYWdlLWJyZWFrLWFmdGVyOiBhdXRvCisgICAgcGFnZS1icmVhay1iZWZvcmU6IGF1
dG8KKyAgICBwYWdlLWJyZWFrLWluc2lkZTogYXV0bworICAgIHBvc2l0aW9uOiBzdGF0aWMKKyAg
ICByZXNpemU6IG5vbmUKKyAgICByaWdodDogYXV0bworICAgIHRhYmxlLWxheW91dDogYXV0bwor
ICAgIHRleHQtYWxpZ246IGF1dG8KKyAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUKKyAgICB0ZXh0
LWluZGVudDogMHB4CisgICAgdGV4dC1zaGFkb3c6IG5vbmUKKyAgICB0ZXh0LXRyYW5zZm9ybTog
bm9uZQorICAgIHRvcDogYXV0bworICAgIHVuaWNvZGUtYmlkaTogbm9ybWFsCisgICAgdmVydGlj
YWwtYWxpZ246IGJhc2VsaW5lCisgICAgdmlzaWJpbGl0eTogdmlzaWJsZQorICAgIHdoaXRlLXNw
YWNlOiBub3JtYWwKKyAgICB3aWRvd3M6IDIKKyAgICB3aWR0aDogNTAlCisgICAgd29yZC1zcGFj
aW5nOiAwcHgKKyAgICB3b3JkLXdyYXA6IG5vcm1hbAorICAgIHotaW5kZXg6IGF1dG8KKyAgICAt
d2Via2l0LWFwcGVhcmFuY2U6IG5vbmUKKyAgICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogYm9y
ZGVyCisgICAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNvbXBvc2l0ZTogc291cmNlLW92ZXIKKyAgICAt
d2Via2l0LWJhY2tncm91bmQtb3JpZ2luOiBwYWRkaW5nCisgICAgLXdlYmtpdC1iYWNrZ3JvdW5k
LXNpemU6IGF1dG8gYXV0bworICAgIC13ZWJraXQtYm9yZGVyLWZpdDogYm9yZGVyCisgICAgLXdl
YmtpdC1ib3JkZXItaG9yaXpvbnRhbC1zcGFjaW5nOiAwcHgKKyAgICAtd2Via2l0LWJvcmRlci12
ZXJ0aWNhbC1zcGFjaW5nOiAwcHgKKyAgICAtd2Via2l0LWJveC1hbGlnbjogc3RyZXRjaAorICAg
IC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsCisgICAgLXdlYmtpdC1ib3gtZmxleDogMAor
ICAgIC13ZWJraXQtYm94LWZsZXgtZ3JvdXA6IDEKKyAgICAtd2Via2l0LWJveC1saW5lczogc2lu
Z2xlCisgICAgLXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDogMQorICAgIC13ZWJraXQtYm94LW9y
aWVudDogaG9yaXpvbnRhbAorICAgIC13ZWJraXQtYm94LXBhY2s6IHN0YXJ0CisgICAgLXdlYmtp
dC1ib3gtc2hhZG93OiBub25lCisgICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBjb250ZW50LWJveAor
ICAgIC13ZWJraXQtY29sdW1uLWJyZWFrLWFmdGVyOiBhdXRvCisgICAgLXdlYmtpdC1jb2x1bW4t
YnJlYWstYmVmb3JlOiBhdXRvCisgICAgLXdlYmtpdC1jb2x1bW4tYnJlYWstaW5zaWRlOiBhdXRv
CisgICAgLXdlYmtpdC1jb2x1bW4tY291bnQ6IGF1dG8KKyAgICAtd2Via2l0LWNvbHVtbi1nYXA6
IG5vcm1hbAorICAgIC13ZWJraXQtY29sdW1uLXJ1bGUtY29sb3I6IHJnYigwLCAwLCAwKQorICAg
IC13ZWJraXQtY29sdW1uLXJ1bGUtc3R5bGU6IG5vbmUKKyAgICAtd2Via2l0LWNvbHVtbi1ydWxl
LXdpZHRoOiAwcHgKKyAgICAtd2Via2l0LWNvbHVtbi13aWR0aDogYXV0bworICAgIC13ZWJraXQt
aGlnaGxpZ2h0OiBub25lCisgICAgLXdlYmtpdC1saW5lLWJyZWFrOiBub3JtYWwKKyAgICAtd2Vi
a2l0LWxpbmUtY2xhbXA6IG5vbmUKKyAgICAtd2Via2l0LW1hcmdpbi1ib3R0b20tY29sbGFwc2U6
IGNvbGxhcHNlCisgICAgLXdlYmtpdC1tYXJnaW4tdG9wLWNvbGxhcHNlOiBjb2xsYXBzZQorICAg
IC13ZWJraXQtbWFycXVlZS1kaXJlY3Rpb246IGF1dG8KKyAgICAtd2Via2l0LW1hcnF1ZWUtaW5j
cmVtZW50OiA2cHgKKyAgICAtd2Via2l0LW1hcnF1ZWUtcmVwZXRpdGlvbjogaW5maW5pdGUKKyAg
ICAtd2Via2l0LW1hcnF1ZWUtc3R5bGU6IHNjcm9sbAorICAgIC13ZWJraXQtbmJzcC1tb2RlOiBu
b3JtYWwKKyAgICAtd2Via2l0LXJ0bC1vcmRlcmluZzogbG9naWNhbAorICAgIC13ZWJraXQtdGV4
dC1kZWNvcmF0aW9ucy1pbi1lZmZlY3Q6IG5vbmUKKyAgICAtd2Via2l0LXRleHQtZmlsbC1jb2xv
cjogcmdiKDAsIDAsIDApCisgICAgLXdlYmtpdC10ZXh0LXNlY3VyaXR5OiBub25lCisgICAgLXdl
YmtpdC10ZXh0LXN0cm9rZS1jb2xvcjogcmdiKDAsIDAsIDApCisgICAgLXdlYmtpdC10ZXh0LXN0
cm9rZS13aWR0aDogMAorICAgIC13ZWJraXQtdXNlci1kcmFnOiBhdXRvCisgICAgLXdlYmtpdC11
c2VyLW1vZGlmeTogcmVhZC1vbmx5CisgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogYXV0bworICAg
IC13ZWJraXQtZGFzaGJvYXJkLXJlZ2lvbjogbnVsbAorICAgIGJhY2tncm91bmQtcG9zaXRpb246
ICcwIDAnCisgICAgYm9yZGVyLXNwYWNpbmc6ICcwcHggMHB4JworICAgIG92ZXJmbG93OiB2aXNp
YmxlCisgICAgLXdlYmtpdC1tYXRjaC1uZWFyZXN0LW1haWwtYmxvY2txdW90ZS1jb2xvcjogbm9y
bWFsCisgICAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiBhdXRvCisKK0FmdGVyIGNoYW5naW5n
IGdyYW5kcGFyZW50J3MgJ2NvbG9yJyBhbmQgdGhlIHBhcmVudCdzICdmb250LXNpemUnIGluaGVy
aXRlZCBwcm9wZXJ0aWVzOgorICAgIGJvcmRlci10b3Atd2lkdGg6IDE4cHgKKyAgICBjb2xvcjog
cmdiKDAsIDAsIDI1NSkKKworQWZ0ZXIgY2hhbmdpbmcgdGhlIHBhcmVudCdzICdkaXNwbGF5JyBw
cm9wZXJ0eSB0byAnYmxvY2snLCBzbyB0aGF0IHRoZSBjaGlsZCBnZXRzIGEgcmVuZGVyZXI6Cisg
ICAgaGVpZ2h0OiAxMDBweAorICAgIG1hcmdpbi1sZWZ0OiAzODVweAorICAgIHdpZHRoOiAzODRw
eAorCitBZnRlciBjaGFuZ2luZyB0aGUgcGFyZW50J3MgJ2Rpc3BsYXknIHByb3BlcnR5IGJhY2sg
dG8gJ25vbmUnOgorICAgIGhlaWdodDogMTAwcHgKKyAgICBtYXJnaW4tbGVmdDogYXV0bworICAg
IHdpZHRoOiA1MCUKKworCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9jb21wdXRlZC1zdHls
ZS13aXRob3V0LXJlbmRlcmVyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9j
c3MvY29tcHV0ZWQtc3R5bGUtd2l0aG91dC1yZW5kZXJlci5odG1sCShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9jc3MvY29tcHV0ZWQtc3R5bGUtd2l0aG91dC1yZW5kZXJlci5odG1s
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDc3IEBACis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3Jp
cHQ+CisgICAgICAgIHZhciBvdGhlcnMgPSBbCisgICAgICAgICAgICAiYmFja2dyb3VuZC1wb3Np
dGlvbiIsCisgICAgICAgICAgICAiYm9yZGVyLXNwYWNpbmciLAorICAgICAgICAgICAgIm92ZXJm
bG93IiwKKyAgICAgICAgICAgICItd2Via2l0LW1hdGNoLW5lYXJlc3QtbWFpbC1ibG9ja3F1b3Rl
LWNvbG9yIiwKKyAgICAgICAgICAgICItd2Via2l0LXRleHQtc2l6ZS1hZGp1c3QiLAorICAgICAg
ICBdOworCisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKKyAgICAgICAgZnVuY3Rp
b24gbG9nKG1lc3NhZ2UpCisgICAgICAgIHsKKyAgICAgICAgICAgIHZhciBjb25zb2xlID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKTsKKyAgICAgICAgICAgIGNvbnNvbGUuYXBw
ZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobWVzc2FnZSArICJcbiIpKTsKKyAgICAg
ICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGR1bXBDb21wdXRlZFN0eWxlKGVsZW1lbnQsIHByb3Bl
cnRpZXMpCisgICAgICAgIHsKKyAgICAgICAgICAgIHZhciBzdHlsZSA9IGdldENvbXB1dGVkU3R5
bGUoZWxlbWVudCk7CisKKyAgICAgICAgICAgIGlmICghcHJvcGVydGllcykgeworICAgICAgICAg
ICAgICAgIGZvciAodmFyIGkgPSAwOyBpICE9IHN0eWxlLmxlbmd0aDsgKytpKSB7CisgICAgICAg
ICAgICAgICAgICAgIHZhciBuYW1lID0gc3R5bGUuaXRlbShpKTsKKyAgICAgICAgICAgICAgICAg
ICAgbG9nKCIgICAgIiArIG5hbWUgKyAiOiAiICsgc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShuYW1l
KSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHByb3BlcnRpZXMgPSBvdGhl
cnM7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpICE9IHBy
b3BlcnRpZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICB2YXIgbmFtZSA9IHByb3Bl
cnRpZXNbaV07CisgICAgICAgICAgICAgICAgbG9nKCIgICAgIiArIG5hbWUgKyAiOiAiICsgc3R5
bGUuZ2V0UHJvcGVydHlWYWx1ZShuYW1lKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBs
b2coIiIpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gdGVzdCgpCisgICAgICAgIHsK
KyAgICAgICAgICAgIHZhciBvdXRlckRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRl
ciIpOworICAgICAgICAgICAgdmFyIG1pZGRsZURpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJtaWRkbGUiKTsKKyAgICAgICAgICAgIHZhciBpbm5lckRpdiA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJpbm5lciIpOworCisgICAgICAgICAgICBsb2coIkNvbXB1dGVkIHN0eWxlIG9mIGFu
IGVsZW1lbnQgd2hvc2UgcGFyZW50J3MgJ2Rpc3BsYXknIHZhbHVlIGlzICdub25lJzoiKTsKKyAg
ICAgICAgICAgIGR1bXBDb21wdXRlZFN0eWxlKGlubmVyRGl2KTsKKworICAgICAgICAgICAgb3V0
ZXJEaXYuc3R5bGUuY29sb3IgPSAiYmx1ZSI7CisgICAgICAgICAgICBtaWRkbGVEaXYuc3R5bGUu
Zm9udFNpemUgPSAibGFyZ2UiOworICAgICAgICAgICAgbG9nKCJBZnRlciBjaGFuZ2luZyBncmFu
ZHBhcmVudCdzICdjb2xvcicgYW5kIHRoZSBwYXJlbnQncyAnZm9udC1zaXplJyBpbmhlcml0ZWQg
cHJvcGVydGllczoiKTsKKyAgICAgICAgICAgIGR1bXBDb21wdXRlZFN0eWxlKGlubmVyRGl2LCBb
ImJvcmRlci10b3Atd2lkdGgiLCAiY29sb3IiXSk7CisKKyAgICAgICAgICAgIG1pZGRsZURpdi5z
dHlsZS5kaXNwbGF5ID0gImJsb2NrIjsKKyAgICAgICAgICAgIGxvZygiQWZ0ZXIgY2hhbmdpbmcg
dGhlIHBhcmVudCdzICdkaXNwbGF5JyBwcm9wZXJ0eSB0byAnYmxvY2snLCBzbyB0aGF0IHRoZSBj
aGlsZCBnZXRzIGEgcmVuZGVyZXI6Iik7CisgICAgICAgICAgICBkdW1wQ29tcHV0ZWRTdHlsZShp
bm5lckRpdiwgWyJoZWlnaHQiLCAibWFyZ2luLWxlZnQiLCAid2lkdGgiXSk7CisKKyAgICAgICAg
ICAgIG1pZGRsZURpdi5zdHlsZS5kaXNwbGF5ID0gIiI7CisgICAgICAgICAgICBsb2coIkFmdGVy
IGNoYW5naW5nIHRoZSBwYXJlbnQncyAnZGlzcGxheScgcHJvcGVydHkgYmFjayB0byAnbm9uZSc6
Iik7CisgICAgICAgICAgICBkdW1wQ29tcHV0ZWRTdHlsZShpbm5lckRpdiwgWyJoZWlnaHQiLCAi
bWFyZ2luLWxlZnQiLCAid2lkdGgiXSk7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKyAgICA8
c3R5bGU+CisgICAgICAgIGRpdiNtaWRkbGUgeyBkaXNwbGF5OiBub25lOyB9CisgICAgICAgIGRp
diNpbm5lciB7IGJhY2tncm91bmQ6IGdyZWVuOyBib3JkZXItdG9wOiAxZW0gc29saWQ7IGhlaWdo
dDogMTAwcHg7IG1hcmdpbi1sZWZ0OiBhdXRvOyB3aWR0aDogNTAlOyB9CisgICAgPC9zdHlsZT4K
KzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdCgpIj4KKyAgICA8cHJlIGlkPSJjb25zb2xlIj48
L3ByZT4KKyAgICA8ZGl2IGlkPSJvdXRlciI+CisgICAgICAgIDxkaXYgaWQ9Im1pZGRsZSI+Cisg
ICAgICAgICAgICA8ZGl2IGlkPSJpbm5lciI+CisgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAg
PC9kaXY+CisgICAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="review"
          id="6412"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>