<?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>59604</bug_id>
          
          <creation_ts>2011-04-27 06:57:44 -0700</creation_ts>
          <short_desc>REGRESSION: r83938 abandons GC memory</short_desc>
          <delta_ts>2011-05-28 09:58:00 -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>WebCore JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P1</priority>
          <bug_severity>Major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Saboff">msaboff</reporter>
          <assigned_to name="Geoffrey Garen">ggaren</assigned_to>
          <cc>alex</cc>
    
    <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>mrowe</cc>
    
    <cc>msaboff</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>393527</commentid>
    <comment_count>0</comment_count>
      <attachid>91278</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2011-04-27 06:57:44 -0700</bug_when>
    <thetext>Created attachment 91278
Memory Test webpage

While running a memory test, the amount of dirty pages attributed to the garbage collector grows unbounded.  This is evident by the output of &quot;vmmap -resident &lt;pid&gt;&quot;:

REGION TYPE             [ VIRTUAL/RESIDENT]
===========             [ =======/========]
ATS (font support)      [   31.8M/    424K]
CG backing stores       [   5140K/   5140K]
CG image                [     32K/     32K]
CG raster data          [   1176K/   1168K]
CG shared images        [   1972K/   1276K]
Carbon                  [   1728K/   1728K]
CoreGraphics            [    832K/    820K]
IOKit                   [  258.7M/   2652K]
JS JIT generated code   [    1.0G/   30.9M]
JS VM register file     [   4160K/     12K]
JS garbage collector    [   22.2M/   22.2M]
LayerKit                [   2380K/   1332K]
MALLOC                  [  206.1M/  193.4M]
Memory tag=242          [     12K/     12K]
Memory tag=251          [     28K/     28K]
Memory tag=69           [    160K/    160K]
OpenGL GLSL             [   2048K/   1144K]
STACK GUARD             [   56.1M/      0K]
Stack                   [   13.7M/    596K]
VM_ALLOCATE             [   16.5M/   16.5M]
__DATA                  [   17.0M/   12.1M]
__IMAGE                 [   1240K/    932K]
__LINKEDIT              [  116.0M/  103.2M]
__NV_CUDA               [      4K/      4K]
__TEXT                  [  169.4M/  129.9M]
__UNICODE               [    536K/    368K]
mapped file             [   37.2M/   15.7M]
shared memory           [    832K/    732K]

The memory test webpage is attached.

This revision was identified by building &amp; testing Safari with r83938 and r83937.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>393528</commentid>
    <comment_count>1</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2011-04-27 06:58:57 -0700</bug_when>
    <thetext>&lt;rdar://problem/9344346&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>395157</commentid>
    <comment_count>2</comment_count>
      <attachid>91648</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-04-29 00:18:50 -0700</bug_when>
    <thetext>Created attachment 91648
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>395211</commentid>
    <comment_count>3</comment_count>
    <who name="Alexander Romanovich">alex</who>
    <bug_when>2011-04-29 04:44:33 -0700</bug_when>
    <thetext>Does this fix address anything from bug 40926 in any way?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>395422</commentid>
    <comment_count>4</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-04-29 12:10:37 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Does this fix address anything from bug 40926 in any way?

Yes, it seems to fix the test case attached there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>395529</commentid>
    <comment_count>5</comment_count>
      <attachid>91648</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-04-29 14:41:54 -0700</bug_when>
    <thetext>Comment on attachment 91648
Patch

Loks good to me. As discussed in person, the wrapper need to be protected if the load is over, but an event is still pending. As you are going to work on a regression test for that, I can as well mark this patch r-.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>395539</commentid>
    <comment_count>6</comment_count>
      <attachid>91745</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-04-29 15:01:56 -0700</bug_when>
    <thetext>Created attachment 91745
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>395547</commentid>
    <comment_count>7</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-04-29 15:09:40 -0700</bug_when>
    <thetext>*** Bug 40926 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>395550</commentid>
    <comment_count>8</comment_count>
      <attachid>91745</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-04-29 15:18:27 -0700</bug_when>
    <thetext>Comment on attachment 91745
Patch

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

&gt; Source/WebCore/bindings/js/JSNodeCustom.cpp:108
&gt;          // If a wrapper is the last reference to an image or script element

Please fix the comment, too.

&gt; Source/WebCore/loader/ImageLoader.cpp:70
&gt; +    bool hasPendingEvents(const ImageLoader* loader) { return m_dispatchSoonList.find(loader) != notFound; }

We don&apos;t normally use const with complex classes. In particular, &quot;const ImageLoader&quot; never appears in WebCore code now.

So, I would slightly prefer removing &quot;const&quot; from ImageLoader::hasPendingLoadEvent() instead.

&gt; LayoutTests/fast/dom/gc-image-element.html:17
&gt; +function gc()

You could also use js-test machinery for logging and gc().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>395666</commentid>
    <comment_count>9</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-04-29 17:57:44 -0700</bug_when>
    <thetext>Committed r85375: &lt;http://trac.webkit.org/changeset/85375&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>411859</commentid>
    <comment_count>10</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-05-28 09:58:00 -0700</bug_when>
    <thetext>Lack of constness on new methods in this patch makes me sad.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>91278</attachid>
            <date>2011-04-27 06:57:44 -0700</date>
            <delta_ts>2011-04-27 06:57:44 -0700</delta_ts>
            <desc>Memory Test webpage</desc>
            <filename>MemoryTest4Pages1Sec.html</filename>
            <type>text/html</type>
            <size>421</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">PEhUTUw+CgoJPEhFQUQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50
PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9aXNvLTg4NTktMSI+CgkJPHRpdGxlPk1lbW9yeSBUZXN0IFBh
Z2U8L3RpdGxlPgoJCTxtZXRhIGh0dHAtZXF1aXY9InJlZnJlc2giIGNvbnRlbnQ9IjE7Ij4KCTwv
SEVBRD4KCgoJPEZSQU1FU0VUIFJPV1M9IiosKiIgQ09MUz0iKiwqIj4KICAgICA8RlJBTUUgU1JD
PSJodHRwOi8vd3d3LnNlYXR0bGV0aW1lcy5jb20iPgogICAgIDxGUkFNRSBTUkM9Imh0dHA6Ly93
d3cubGF0aW1lcy5jb20iPgogICAgIDxGUkFNRSBTUkM9Imh0dHA6Ly93d3cuY2hpY2Fnb3RyaWJ1
bmUuY29tIj4KICAgICA8RlJBTUUgU1JDPSJodHRwOi8vd3d3LnJlcHViYmxpY2EuaXQiPgogICAg
PC9GUkFNRVNFVD4KCQo8L0hUTUw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>91648</attachid>
            <date>2011-04-29 00:18:50 -0700</date>
            <delta_ts>2011-04-29 15:01:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-59604-20110429001849.patch</filename>
            <type>text/plain</type>
            <size>4154</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg1MzA4KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTEtMDQtMjkgIEdlb2ZmcmV5
IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBSRUdSRVNTSU9OOiByODM5MzggYWJhbmRvbnMgR0MgbWVtb3J5
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01OTYwNAor
CisgICAgICAgIFRoaXMgYnVnIHdhcyBjYXVzZWQgYnkgc2NyaXB0IGFuZCBpbWFnZSBlbGVtZW50
cyB3YWl0aW5nIGluZGVmaW5pdGVseQorICAgICAgICBmb3IgdGhlaXIgbG9hZHMgdG8gZmluaXNo
LgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmlzUmVhY2hhYmxlRnJvbURPTSk6IERvbid0IHRlc3QgZm9yIHRoZSBsb2FkIGV2ZW50
IGZpcmluZywKKyAgICAgICAgc2luY2UgdGhlIGxvYWQgZXZlbnQgZG9lc24ndCBmaXJlIGluIGNh
c2VzIG9mIGNhbmNlbGVkIG9yIGVycm9yZWQgbG9hZHMuCisgICAgICAgIEluc3RlYWQsIHRlc3Qg
aXNMb2FkaW5nKCksIHRvIGRldGVybWluZSB3aGV0aGVyIGFuIGVsZW1lbnQgaXMgc3RpbGwgbG9h
ZGluZy4KKworICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6c2V0UmVxdWVzdCk6IEFsbCBsb2FkcyBhcmUg
c3VwcG9zZWQgdG8gZW5kIGluCisgICAgICAgIGRhdGEoYWxsRGF0YVJlY2VpdmVkID0gdHJ1ZSkg
b3IgZXJyb3IoKSwgYnV0IGluIHRoZSBlZGdlIGNhc2Ugb2YgYQorICAgICAgICBjYW5jZWxlZCBs
b2FkLCBhbGwgd2UgZ2V0IGlzIGEgY2FsbCB0byBzZXRSZXF1ZXN0KDApLiBCZSBzdXJlIHRvCisg
ICAgICAgIHJlY29yZCB0aGF0IHdlJ3JlIG5vIGxvbmdlciBsb2FkaW5nIGluIHRoYXQgY2FzZSwg
b3RoZXJ3aXNlIG91ciBlbGVtZW50CisgICAgICAgIHdpbGwgbGVhayBmb3JldmVyLCB3YWl0aW5n
IGZvciBpdHMgbG9hZCB0byBjb21wbGV0ZS4KKwogMjAxMS0wNC0yOCAgU2ltb24gRnJhc2VyICA8
c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVybnN0
ZWluLgpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3Bw
CShyZXZpc2lvbiA4NTMwNykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1
c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDggQEAKICNpbmNsdWRlICJKU05v
ZGUuaCIKIAogI2luY2x1ZGUgIkF0dHIuaCIKKyNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgorI2lu
Y2x1ZGUgIkNhY2hlZFNjcmlwdC5oIgogI2luY2x1ZGUgIkNEQVRBU2VjdGlvbi5oIgogI2luY2x1
ZGUgIkNvbW1lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgpAQCAtMTA2LDE1ICsxMDgsMjQg
QEAgc3RhdGljIGlubGluZSBib29sIGlzUmVhY2hhYmxlRnJvbURPTShKUwogICAgICAgICAvLyBJ
ZiBhIHdyYXBwZXIgaXMgdGhlIGxhc3QgcmVmZXJlbmNlIHRvIGFuIGltYWdlIG9yIHNjcmlwdCBl
bGVtZW50CiAgICAgICAgIC8vIHRoYXQgaXMgbG9hZGluZyBidXQgbm90IGluIHRoZSBkb2N1bWVu
dCwgdGhlIHdyYXBwZXIgaXMgb2JzZXJ2YWJsZQogICAgICAgICAvLyBiZWNhdXNlIGl0IGlzIHRo
ZSBvbmx5IHRoaW5nIGtlZXBpbmcgdGhlIGltYWdlIGVsZW1lbnQgYWxpdmUsIGFuZCBpZgotICAg
ICAgICAvLyB0aGUgaW1hZ2UgZWxlbWVudCBpcyBkZXN0cm95ZWQsIGl0cyBsb2FkIGV2ZW50IHdp
bGwgbm90IGZpcmUuCisgICAgICAgIC8vIHRoZSBlbGVtZW50IGlzIGRlc3Ryb3llZCwgaXRzIGxv
YWQgZXZlbnQgd2lsbCBub3QgZmlyZS4KICAgICAgICAgLy8gRklYTUU6IFRoZSBET00gc2hvdWxk
IG1hbmFnZSB0aGlzIGlzc3VlIHdpdGhvdXQgdGhlIGhlbHAgb2YgSmF2YVNjcmlwdCB3cmFwcGVy
cy4KLSAgICAgICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUoaW1nVGFnKSAmJiAhc3RhdGljX2Nhc3Q8
SFRNTEltYWdlRWxlbWVudCo+KG5vZGUpLT5oYXZlRmlyZWRMb2FkRXZlbnQoKSkKLSAgICAgICAg
ICAgIHJldHVybiB0cnVlOwotICAgICAgICBpZiAobm9kZS0+aGFzVGFnTmFtZShzY3JpcHRUYWcp
ICYmICFzdGF0aWNfY2FzdDxIVE1MU2NyaXB0RWxlbWVudCo+KG5vZGUpLT5oYXZlRmlyZWRMb2Fk
RXZlbnQoKSkKLSAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBpZiAobm9kZS0+aGFz
VGFnTmFtZShpbWdUYWcpKSB7CisgICAgICAgICAgICBpZiAoQ2FjaGVkSW1hZ2UqIGNhY2hlZElt
YWdlID0gc3RhdGljX2Nhc3Q8SFRNTEltYWdlRWxlbWVudCo+KG5vZGUpLT5jYWNoZWRJbWFnZSgp
KSB7CisgICAgICAgICAgICAgICAgaWYgKGNhY2hlZEltYWdlLT5pc0xvYWRpbmcoKSkKKyAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxz
ZSBpZiAobm9kZS0+aGFzVGFnTmFtZShzY3JpcHRUYWcpKSB7CisgICAgICAgICAgICBpZiAoQ2Fj
aGVkU2NyaXB0KiBjYWNoZWRTY3JpcHQgPSBzdGF0aWNfY2FzdDxIVE1MU2NyaXB0RWxlbWVudCo+
KG5vZGUpLT5jYWNoZWRTY3JpcHQoKS5nZXQoKSkgeworICAgICAgICAgICAgICAgIGlmIChjYWNo
ZWRTY3JpcHQtPmlzTG9hZGluZygpKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgICNpZiBFTkFCTEUoVklERU8pCi0gICAgICAg
IGlmIChub2RlLT5oYXNUYWdOYW1lKGF1ZGlvVGFnKSAmJiAhc3RhdGljX2Nhc3Q8SFRNTEF1ZGlv
RWxlbWVudCo+KG5vZGUpLT5wYXVzZWQoKSkKLSAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg
ICAgICBlbHNlIGlmIChub2RlLT5oYXNUYWdOYW1lKGF1ZGlvVGFnKSkgeworICAgICAgICAgICAg
aWYgKCFzdGF0aWNfY2FzdDxIVE1MQXVkaW9FbGVtZW50Kj4obm9kZSktPnBhdXNlZCgpKQorICAg
ICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CiAgICAgI2VuZGlmCiAKICAgICAg
ICAgLy8gSWYgYSBub2RlIGlzIGZpcmluZyBldmVudCBsaXN0ZW5lcnMsIGl0cyB3cmFwcGVyIGlz
IG9ic2VydmFibGUgYmVjYXVzZQpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkUmVzb3VyY2UuY3BwCShyZXZpc2lvbiA4NTMwNykKKysrIFNvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0Niw5
ICsyNDYsMTUgQEAgQ2FjaGVkTWV0YWRhdGEqIENhY2hlZFJlc291cmNlOjpjYWNoZWRNZQogCiB2
b2lkIENhY2hlZFJlc291cmNlOjpzZXRSZXF1ZXN0KENhY2hlZFJlc291cmNlUmVxdWVzdCogcmVx
dWVzdCkKIHsKLSAgICBpZiAocmVxdWVzdCAmJiAhbV9yZXF1ZXN0KQotICAgICAgICBtX3N0YXR1
cyA9IFBlbmRpbmc7Ci0gICAgbV9yZXF1ZXN0ID0gcmVxdWVzdDsKKyAgICBpZiAocmVxdWVzdCkg
eworICAgICAgICBpZiAoIW1fcmVxdWVzdCkKKyAgICAgICAgICAgIG1fc3RhdHVzID0gUGVuZGlu
ZzsKKyAgICAgICAgbV9yZXF1ZXN0ID0gcmVxdWVzdDsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIG1fcmVxdWVzdCA9IDA7CisgICAgc2V0TG9hZGluZyhmYWxzZSk7CiAgICAgaWYgKGNh
bkRlbGV0ZSgpICYmICFpbkNhY2hlKCkpCiAgICAgICAgIGRlbGV0ZSB0aGlzOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>91745</attachid>
            <date>2011-04-29 15:01:56 -0700</date>
            <delta_ts>2011-04-29 15:18:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-59604-20110429150155.patch</filename>
            <type>text/plain</type>
            <size>9846</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg1MzU3KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzggQEAKKzIwMTEtMDQtMjkgIEdlb2ZmcmV5
IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBSRUdSRVNTSU9OOiByODM5MzggYWJhbmRvbnMgR0MgbWVtb3J5
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01OTYwNAor
CisgICAgICAgIFRoaXMgYnVnIHdhcyBjYXVzZWQgYnkgc2NyaXB0IGFuZCBpbWFnZSBlbGVtZW50
cyB3YWl0aW5nIGluZGVmaW5pdGVseQorICAgICAgICBmb3IgdGhlaXIgbG9hZHMgdG8gZmluaXNo
LgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmlzUmVhY2hhYmxlRnJvbURPTSk6IERvbid0IHRlc3QgZm9yIHRoZSBsb2FkIGV2ZW50
IGZpcmluZywKKyAgICAgICAgc2luY2UgdGhlIGxvYWQgZXZlbnQgZG9lc24ndCBmaXJlIGluIGNh
c2VzIG9mIGNhbmNlbGVkIG9yIGVycm9yZWQgbG9hZHMuCisgICAgICAgIEluc3RlYWQsIHRlc3Qg
aGFzUGVuZGluZ0FjdGl2aXR5KCkuCisgICAgICAgIAorICAgICAgICBEb24ndCBkbyB0aGlzIHRl
c3QgYXQgYWxsIGZvciBzY3JpcHQgZWxlbWVudHMgYmVjYXVzZSBzY3JpcHQgZWxlbWVudHMKKyAg
ICAgICAgY2FuJ3QgbG9hZCB3aGlsZSBvdXRzaWRlIHRoZSBkb2N1bWVudC4gKGZhc3QvZG9tL3Nj
cmlwdC1lbGVtZW50LWdjLmh0bWwKKyAgICAgICAgdmVyaWZpZXMgdGhhdCB0aGlzIGlzIGNvcnJl
Y3QuKQorCisgICAgICAgICogaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxJbWFnZUVsZW1lbnQ6Omhhc1BlbmRpbmdBY3Rpdml0eSk6CisgICAgICAgICog
aHRtbC9IVE1MSW1hZ2VFbGVtZW50Lmg6CisgICAgICAgICogbG9hZGVyL0ltYWdlTG9hZGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlRXZlbnRTZW5kZXI6Omhhc1BlbmRpbmdFdmVudHMp
OgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VMb2FkZXI6Omhhc1BlbmRpbmdMb2FkRXZlbnQpOgor
ICAgICAgICAqIGxvYWRlci9JbWFnZUxvYWRlci5oOiBBZGRlZCBBUEkgZm9yIGZpbmRpbmcgb3V0
IGlmIGFuIGltYWdlIGVsZW1lbnQKKyAgICAgICAgaGFzIHBlbmRpbmcgYWN0aXZpdHkuCisKKyAg
ICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q2FjaGVkUmVzb3VyY2U6OnNldFJlcXVlc3QpOiBBbGwgbG9hZHMgYXJlIHN1cHBvc2VkIHRv
IGVuZCBpbgorICAgICAgICBkYXRhKGFsbERhdGFSZWNlaXZlZCA9IHRydWUpIG9yIGVycm9yKCks
IGJ1dCBpbiB0aGUgZWRnZSBjYXNlIG9mIGEKKyAgICAgICAgY2FuY2VsZWQgbG9hZCwgYWxsIHdl
IGdldCBpcyBhIGNhbGwgdG8gc2V0UmVxdWVzdCgwKS4gQmUgc3VyZSB0bworICAgICAgICByZWNv
cmQgdGhhdCB3ZSdyZSBubyBsb25nZXIgbG9hZGluZyBpbiB0aGF0IGNhc2UsIG90aGVyd2lzZSBv
dXIgZWxlbWVudAorICAgICAgICB3aWxsIGxlYWsgZm9yZXZlciwgd2FpdGluZyBmb3IgaXRzIGxv
YWQgdG8gY29tcGxldGUuCisKIDIwMTEtMDQtMjkgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lA
d2Via2l0Lm9yZz4KIAogICAgICAgICBbUXRdIFVucmV2aWV3ZWQgYnVpbGRmaXggYWZ0ZXIgcjg1
MzQzLgpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3Bw
CShyZXZpc2lvbiA4NTMwNykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1
c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDggQEAKICNpbmNsdWRlICJKU05v
ZGUuaCIKIAogI2luY2x1ZGUgIkF0dHIuaCIKKyNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgorI2lu
Y2x1ZGUgIkNhY2hlZFNjcmlwdC5oIgogI2luY2x1ZGUgIkNEQVRBU2VjdGlvbi5oIgogI2luY2x1
ZGUgIkNvbW1lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgpAQCAtMTA2LDE1ICsxMDgsMTcg
QEAgc3RhdGljIGlubGluZSBib29sIGlzUmVhY2hhYmxlRnJvbURPTShKUwogICAgICAgICAvLyBJ
ZiBhIHdyYXBwZXIgaXMgdGhlIGxhc3QgcmVmZXJlbmNlIHRvIGFuIGltYWdlIG9yIHNjcmlwdCBl
bGVtZW50CiAgICAgICAgIC8vIHRoYXQgaXMgbG9hZGluZyBidXQgbm90IGluIHRoZSBkb2N1bWVu
dCwgdGhlIHdyYXBwZXIgaXMgb2JzZXJ2YWJsZQogICAgICAgICAvLyBiZWNhdXNlIGl0IGlzIHRo
ZSBvbmx5IHRoaW5nIGtlZXBpbmcgdGhlIGltYWdlIGVsZW1lbnQgYWxpdmUsIGFuZCBpZgotICAg
ICAgICAvLyB0aGUgaW1hZ2UgZWxlbWVudCBpcyBkZXN0cm95ZWQsIGl0cyBsb2FkIGV2ZW50IHdp
bGwgbm90IGZpcmUuCisgICAgICAgIC8vIHRoZSBlbGVtZW50IGlzIGRlc3Ryb3llZCwgaXRzIGxv
YWQgZXZlbnQgd2lsbCBub3QgZmlyZS4KICAgICAgICAgLy8gRklYTUU6IFRoZSBET00gc2hvdWxk
IG1hbmFnZSB0aGlzIGlzc3VlIHdpdGhvdXQgdGhlIGhlbHAgb2YgSmF2YVNjcmlwdCB3cmFwcGVy
cy4KLSAgICAgICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUoaW1nVGFnKSAmJiAhc3RhdGljX2Nhc3Q8
SFRNTEltYWdlRWxlbWVudCo+KG5vZGUpLT5oYXZlRmlyZWRMb2FkRXZlbnQoKSkKLSAgICAgICAg
ICAgIHJldHVybiB0cnVlOwotICAgICAgICBpZiAobm9kZS0+aGFzVGFnTmFtZShzY3JpcHRUYWcp
ICYmICFzdGF0aWNfY2FzdDxIVE1MU2NyaXB0RWxlbWVudCo+KG5vZGUpLT5oYXZlRmlyZWRMb2Fk
RXZlbnQoKSkKLSAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBpZiAobm9kZS0+aGFz
VGFnTmFtZShpbWdUYWcpKSB7CisgICAgICAgICAgICBpZiAoc3RhdGljX2Nhc3Q8SFRNTEltYWdl
RWxlbWVudCo+KG5vZGUpLT5oYXNQZW5kaW5nQWN0aXZpdHkoKSkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQogICAgICNpZiBFTkFCTEUoVklERU8pCi0gICAgICAgIGlm
IChub2RlLT5oYXNUYWdOYW1lKGF1ZGlvVGFnKSAmJiAhc3RhdGljX2Nhc3Q8SFRNTEF1ZGlvRWxl
bWVudCo+KG5vZGUpLT5wYXVzZWQoKSkKLSAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAg
ICBlbHNlIGlmIChub2RlLT5oYXNUYWdOYW1lKGF1ZGlvVGFnKSkgeworICAgICAgICAgICAgaWYg
KCFzdGF0aWNfY2FzdDxIVE1MQXVkaW9FbGVtZW50Kj4obm9kZSktPnBhdXNlZCgpKQorICAgICAg
ICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CiAgICAgI2VuZGlmCiAKICAgICAgICAg
Ly8gSWYgYSBub2RlIGlzIGZpcmluZyBldmVudCBsaXN0ZW5lcnMsIGl0cyB3cmFwcGVyIGlzIG9i
c2VydmFibGUgYmVjYXVzZQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVt
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1l
bnQuY3BwCShyZXZpc2lvbiA4NTMwNykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdl
RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4NSw2ICszODUsMTEgQEAgYm9vbCBIVE1M
SW1hZ2VFbGVtZW50Ojpjb21wbGV0ZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1faW1hZ2VMb2FkZXIu
aW1hZ2VDb21wbGV0ZSgpOwogfQogCitib29sIEhUTUxJbWFnZUVsZW1lbnQ6Omhhc1BlbmRpbmdB
Y3Rpdml0eSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIChjYWNoZWRJbWFnZSgpICYmIGNhY2hlZElt
YWdlKCktPmlzTG9hZGluZygpKSB8fCBtX2ltYWdlTG9hZGVyLmhhc1BlbmRpbmdMb2FkRXZlbnQo
KTsKK30KKwogdm9pZCBIVE1MSW1hZ2VFbGVtZW50OjphZGRTdWJyZXNvdXJjZUF0dHJpYnV0ZVVS
THMoTGlzdEhhc2hTZXQ8S1VSTD4mIHVybHMpIGNvbnN0CiB7CiAgICAgSFRNTEVsZW1lbnQ6OmFk
ZFN1YnJlc291cmNlQXR0cmlidXRlVVJMcyh1cmxzKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEltYWdlRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEltYWdlRWxlbWVudC5oCShyZXZpc2lvbiA4NTMwNykKKysrIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEltYWdlRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC03Myw2ICs3Myw3IEBAIHB1
YmxpYzoKICAgICBib29sIGNvbXBsZXRlKCkgY29uc3Q7CiAKICAgICBib29sIGhhdmVGaXJlZExv
YWRFdmVudCgpIGNvbnN0IHsgcmV0dXJuIG1faW1hZ2VMb2FkZXIuaGF2ZUZpcmVkTG9hZEV2ZW50
KCk7IH0KKyAgICBib29sIGhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0OwogCiBwcm90ZWN0ZWQ6
CiAgICAgSFRNTEltYWdlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqLCBI
VE1MRm9ybUVsZW1lbnQqID0gMCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VM
b2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRl
ci5jcHAJKHJldmlzaW9uIDg1MzA3KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9h
ZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjcsOSArNjcsNyBAQCBwdWJsaWM6CiAKICAgICB2
b2lkIGRpc3BhdGNoUGVuZGluZ0V2ZW50cygpOwogCi0jaWYgIUFTU0VSVF9ESVNBQkxFRAotICAg
IGJvb2wgaGFzUGVuZGluZ0V2ZW50cyhJbWFnZUxvYWRlciogbG9hZGVyKSB7IHJldHVybiBtX2Rp
c3BhdGNoU29vbkxpc3QuZmluZChsb2FkZXIpICE9IG5vdEZvdW5kOyB9Ci0jZW5kaWYKKyAgICBi
b29sIGhhc1BlbmRpbmdFdmVudHMoY29uc3QgSW1hZ2VMb2FkZXIqIGxvYWRlcikgeyByZXR1cm4g
bV9kaXNwYXRjaFNvb25MaXN0LmZpbmQobG9hZGVyKSAhPSBub3RGb3VuZDsgfQogCiBwcml2YXRl
OgogICAgIHZvaWQgdGltZXJGaXJlZChUaW1lcjxJbWFnZUV2ZW50U2VuZGVyPiopOwpAQCAtMzEy
LDYgKzMxMCwxMSBAQCB2b2lkIEltYWdlTG9hZGVyOjplbGVtZW50V2lsbE1vdmVUb05ld093CiAg
ICAgc2V0SW1hZ2UoMCk7CiB9CiAKK2Jvb2wgSW1hZ2VMb2FkZXI6Omhhc1BlbmRpbmdMb2FkRXZl
bnQoKSBjb25zdAoreworICAgIHJldHVybiBsb2FkRXZlbnRTZW5kZXIoKS5oYXNQZW5kaW5nRXZl
bnRzKHRoaXMpOworfQorCiBJbWFnZUV2ZW50U2VuZGVyOjpJbWFnZUV2ZW50U2VuZGVyKGNvbnN0
IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlKQogICAgIDogbV9ldmVudFR5cGUoZXZlbnRUeXBlKQog
ICAgICwgbV90aW1lcih0aGlzLCAmSW1hZ2VFdmVudFNlbmRlcjo6dGltZXJGaXJlZCkKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5oCShyZXZpc2lvbiA4NTMwNykKKysrIFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC01OCw2ICs1
OCw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaGF2ZUZpcmVkQmVmb3JlTG9hZEV2ZW50KCkgY29u
c3QgeyByZXR1cm4gbV9maXJlZEJlZm9yZUxvYWQ7IH0KICAgICBib29sIGhhdmVGaXJlZExvYWRF
dmVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZmlyZWRMb2FkOyB9CisgICAgYm9vbCBoYXNQZW5kaW5n
TG9hZEV2ZW50KCkgY29uc3Q7CiAKICAgICBzdGF0aWMgdm9pZCBkaXNwYXRjaFBlbmRpbmdCZWZv
cmVMb2FkRXZlbnRzKCk7CiAgICAgc3RhdGljIHZvaWQgZGlzcGF0Y2hQZW5kaW5nTG9hZEV2ZW50
cygpOwpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3Vy
Y2UuY3BwCShyZXZpc2lvbiA4NTMwNykKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0OSw2ICsyNDksMTQgQEAgdm9p
ZCBDYWNoZWRSZXNvdXJjZTo6c2V0UmVxdWVzdChDYWNoZWRSZQogICAgIGlmIChyZXF1ZXN0ICYm
ICFtX3JlcXVlc3QpCiAgICAgICAgIG1fc3RhdHVzID0gUGVuZGluZzsKICAgICBtX3JlcXVlc3Qg
PSByZXF1ZXN0OworCisgICAgLy8gQWxsIGxvYWRzIGZpbmlzaCB3aXRoIGRhdGEoYWxsRGF0YVJl
Y2VpdmVkID0gdHJ1ZSkgb3IgZXJyb3IoKSwgZXhjZXB0IGZvcgorICAgIC8vIGNhbmNlbGVkIGxv
YWRzLCB3aGljaCBzaWxlbnRseSBzZXQgb3VyIHJlcXVlc3QgdG8gMC4gQmUgc3VyZSB0byBzZXQg
b3VyCisgICAgLy8gbG9hZGluZyBmbGFnIHRvIGZhbHNlIGluIHRoYXQgY2FzZSwgc28gd2UgZG9u
J3Qgc2VlbSB0byBjb250aW51ZSBsb2FkaW5nCisgICAgLy8gZm9yZXZlci4KKyAgICBpZiAoIW1f
cmVxdWVzdCkKKyAgICAgICAgc2V0TG9hZGluZyhmYWxzZSk7CisKICAgICBpZiAoY2FuRGVsZXRl
KCkgJiYgIWluQ2FjaGUoKSkKICAgICAgICAgZGVsZXRlIHRoaXM7CiB9CkluZGV4OiBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZp
c2lvbiA4NTM2MSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDE2IEBACisyMDExLTA0LTI5ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUkVH
UkVTU0lPTjogcjgzOTM4IGFiYW5kb25zIEdDIG1lbW9yeQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTk2MDQKKyAgICAgICAgCisgICAgICAgIFRlc3Qg
YW4gZWRnZSBjYXNlIG9mIGFuIGltYWdlIHRoYXQgaGFzIGZpbmlzaGVkIGxvYWRpbmcgYnV0IGhh
cyBub3QgeWV0CisgICAgICAgIGZpcmVkIGl0cyBsb2FkIGV2ZW50LgorCisgICAgICAgICogZmFz
dC9kb20vZ2MtaW1hZ2UtZWxlbWVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZG9tL2djLWltYWdlLWVsZW1lbnQuaHRtbDogQWRkZWQuCisKIDIwMTEtMDQtMjkgIEdhdmlu
IEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IE9saXZlciBIdW50ICYgR2VvZmYgR2FyZW4uCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9nYy1pbWFnZS1lbGVtZW50LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9nYy1pbWFnZS1lbGVtZW50LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL2Zhc3QvZG9tL2djLWltYWdlLWVsZW1lbnQtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDEzIEBACitUZXN0cyBmb3IgaW1hZ2UgZWxlbWVudHMgZmlyaW5n
IHRoZWlyIGxvYWQgZXZlbnRzIGV2ZW4gd2hlbiB0aGV5J3JlIG5vdCBpbiB0aGUgZG9jdW1lbnQu
CisKK1BBU1M6IGxvYWRlZAorUEFTUzogbG9hZGVkCitQQVNTOiBsb2FkZWQKK1BBU1M6IGxvYWRl
ZAorUEFTUzogbG9hZGVkCitQQVNTOiBsb2FkZWQKK1BBU1M6IGxvYWRlZAorUEFTUzogbG9hZGVk
CitQQVNTOiBsb2FkZWQKK1BBU1M6IGxvYWRlZAorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9nYy1pbWFnZS1lbGVtZW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9k
b20vZ2MtaW1hZ2UtZWxlbWVudC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFz
dC9kb20vZ2MtaW1hZ2UtZWxlbWVudC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYwIEBA
Cis8cD5UZXN0cyBmb3IgaW1hZ2UgZWxlbWVudHMgZmlyaW5nIHRoZWlyIGxvYWQgZXZlbnRzIGV2
ZW4gd2hlbiB0aGV5J3JlIG5vdCBpbiB0aGUgZG9jdW1lbnQuPC9wPgorPHByZSBpZD0iY29uc29s
ZSI+PC9wcmU+CisKKzxwIGlkPSJwIj48L3A+CisKKzxzY3JpcHQ+CitmdW5jdGlvbiAkKGlkKQor
eworICAgIHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7Cit9CisKK2Z1bmN0aW9u
IGxvZyhzKQoreworICAgICQoImNvbnNvbGUiKS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVU
ZXh0Tm9kZShzICsgIlxuIikpOworfQorCitmdW5jdGlvbiBnYygpCit7CisgICAgaWYgKHdpbmRv
dy5HQ0NvbnRyb2xsZXIpIHsKKyAgICAgICAgR0NDb250cm9sbGVyLmNvbGxlY3QoKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKyAgICAKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyAr
K2kpCisgICAgICAgIG5ldyBPYmplY3Q7Cit9CisKK3ZhciBpbWFnZUNvdW50ID0gMDsKKworZnVu
Y3Rpb24gY3JlYXRlSW1hZ2UoKQoreworICAgICsraW1hZ2VDb3VudDsKKyAgICB2YXIgaW1hZ2Ug
PSBuZXcgSW1hZ2U7CisgICAgaW1hZ2Uuc3JjID0gInJlc291cmNlcy9hcHBsZS5naWYiOworICAg
IGltYWdlLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgbG9nKCJQQVNTOiBsb2FkZWQi
KTsKKyAgICAgICAgLS1pbWFnZUNvdW50OworICAgICAgICBpZiAoaW1hZ2VDb3VudCkKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
KyAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICB9Owor
fQorCisoZnVuY3Rpb24gKCkgeworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
IHsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgfQorCisgICAgdmFyIGlt
YWdlID0gbmV3IEltYWdlOworICAgIGltYWdlLnNyYyA9ICJyZXNvdXJjZXMvYXBwbGUuZ2lmIjsK
KyAgICBpbWFnZS5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7IC8vIFdhaXQgZm9yIHRoZSBpbWFnZSB0
byBsb2FkIHNvIHN1YnNlcXVlbnQgbG9hZHMgd2lsbCBiZSBzeW5jaHJvbm91cy4KKyAgICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCAxMDsgKytpKQorICAgICAgICAgICAgY3JlYXRlSW1hZ2UoKTsK
KworICAgICAgICBnYygpOworICAgIH0KK30pKCk7Cis8L3NjcmlwdD4K
</data>
<flag name="review"
          id="84624"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>