<?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>87382</bug_id>
          
          <creation_ts>2012-05-24 06:00:54 -0700</creation_ts>
          <short_desc>Web Inspector: convert HeapSnapshotGridNode._provider into getter.</short_desc>
          <delta_ts>2012-05-24 06:38:18 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Ilya Tikhonovsky">loislo</reporter>
          <assigned_to name="Ilya Tikhonovsky">loislo</assigned_to>
          <cc>abarth</cc>
    
    <cc>alph</cc>
    
    <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>632691</commentid>
    <comment_count>0</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-05-24 06:00:54 -0700</bug_when>
    <thetext>I found that we create a provider for child nodes for the each DataGrid node in advance.
It cost us one async call to the HeapSnapshot&apos;s worker per each such the node.
I converted the property into the getter which is initializing the provider lazily.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>632697</commentid>
    <comment_count>1</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-05-24 06:05:47 -0700</bug_when>
    <thetext>You should be careful not to break DataGridNodeNode.hasChildren functionality for the heap profiler nodes. Some nodes use their providers to learn if it has children or not so the provider should exist when the node is being displayed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>632701</commentid>
    <comment_count>2</comment_count>
      <attachid>143809</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-05-24 06:09:22 -0700</bug_when>
    <thetext>Created attachment 143809
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>632708</commentid>
    <comment_count>3</comment_count>
      <attachid>143809</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-05-24 06:16:54 -0700</bug_when>
    <thetext>Comment on attachment 143809
Patch

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

&gt; Source/WebCore/bindings/v8/ScriptHeapSnapshot.cpp:71
&gt; +    int GetChunkSize() { return 102400; }

Please revert this.

&gt; Source/WebCore/inspector/front-end/HeapSnapshotGridNodes.js:54
&gt; +     * @return {WebInspector.HeapSnapshotProviderProxy|WebInspector.HeapSnapshotDiffNodesProvider}

WebInspector.HeapSnapshotDiffNodesProvider now extends WebInspector.HeapSnapshotProviderProxy so the annotation can be simplified.

&gt; Source/WebCore/inspector/front-end/HeapSnapshotGridNodes.js:56
&gt; +    _createProvider: function()

This should be public as it is overridden in the descendants.

&gt; Source/WebCore/inspector/front-end/HeapSnapshotGridNodes.js:61
&gt; +    get _provider()

Can you used provider() function instead of a getter?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>632709</commentid>
    <comment_count>4</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-05-24 06:17:37 -0700</bug_when>
    <thetext>What is the performance impact of this change?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>632726</commentid>
    <comment_count>5</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-05-24 06:38:18 -0700</bug_when>
    <thetext>Committed r118361: &lt;http://trac.webkit.org/changeset/118361&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143809</attachid>
            <date>2012-05-24 06:09:22 -0700</date>
            <delta_ts>2012-05-24 06:16:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-87382-20120524170921.patch</filename>
            <type>text/plain</type>
            <size>13778</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE4MzU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWJmY2JkZjFkMzkxYzdk
N2I2NjA4MWU2ZGY2MzI0NzQ2NjFiOWZkNS4uMDQ5YTU2NjgzNjUxN2Q3YTQ5NTBjNmY0ODBlNTRl
NzkyNjM0MzkyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTA1LTI0ICBJbHlh
IFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBjb252ZXJ0IEhlYXBTbmFwc2hvdEdyaWROb2RlLl9wcm92aWRlciBpbnRvIGdldHRlci4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg3MzgyCisK
KyAgICAgICAgSSBmb3VuZCB0aGF0IHdlIGNyZWF0ZSBhIHByb3ZpZGVyIGZvciBjaGlsZCBub2Rl
cyBmb3IgdGhlIGVhY2ggRGF0YUdyaWQgbm9kZSBpbiBhZHZhbmNlLgorICAgICAgICBJdCBjb3N0
IHVzIG9uZSBhc3luYyBjYWxsIHRvIHRoZSBIZWFwU25hcHNob3QncyB3b3JrZXIgcGVyIGVhY2gg
c3VjaCB0aGUgbm9kZS4KKyAgICAgICAgSSBjb252ZXJ0ZWQgdGhlIHByb3BlcnR5IGludG8gdGhl
IGdldHRlciB3aGljaCBpcyBpbml0aWFsaXppbmcgdGhlIHByb3ZpZGVyIGxhemlseS4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGJpbmRpbmdzL3Y4
L1NjcmlwdEhlYXBTbmFwc2hvdC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBp
bnNwZWN0b3IvZnJvbnQtZW5kL0hlYXBTbmFwc2hvdC5qczoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZnJvbnQtZW5kL0hlYXBTbmFwc2hvdEdyaWROb2Rlcy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5IZWFwU25hcHNob3RHcmlkTm9kZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFNuYXBz
aG90R3JpZE5vZGUucHJvdG90eXBlLl9jcmVhdGVQcm92aWRlcik6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuSGVhcFNuYXBzaG90R3JpZE5vZGUucHJvdG90eXBlLmdldCBfcHJvdmlkZXIpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdEdlbmVyaWNPYmplY3ROb2RlKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RPYmplY3ROb2RlKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5IZWFwU25hcHNob3RJbnN0YW5jZU5vZGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkhlYXBTbmFwc2hvdENvbnN0cnVjdG9yTm9kZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVh
cFNuYXBzaG90Q29uc3RydWN0b3JOb2RlLnByb3RvdHlwZS5fY3JlYXRlUHJvdmlkZXIpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdERpZmZOb2RlKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5IZWFwU25hcHNob3REaWZmTm9kZS5wcm90b3R5cGUuX2NyZWF0ZVByb3ZpZGVyKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3REb21pbmF0b3JPYmplY3ROb2RlKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3REb21pbmF0b3JPYmplY3ROb2RlLnBy
b3RvdHlwZS5fY3JlYXRlUHJvdmlkZXIpOgorCiAyMDEyLTA1LTIzICBZdXJ5IFNlbWlraGF0c2t5
ICA8eXVyeXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGFkZCBhIGNv
bW1hbmQgdG8gSW5zcGVjdG9yTWVtb3J5QWdlbnQgZm9yIGdldHRpbmcgcHJvY2VzcyBtZW1vcnkg
YnJlYWsgZG93bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0
SGVhcFNuYXBzaG90LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdEhlYXBT
bmFwc2hvdC5jcHAKaW5kZXggNzY5NzY0ZTgyYzFhNjk5ODVlZTdmMGRjYWUwMDZhZDMyMWQwMTEy
My4uMzY1YzczZDhkNTE2ZWI3ZjI2NDYyZDJmZTk4MThjZWU2N2ZkZWRmZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0SGVhcFNuYXBzaG90LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRIZWFwU25hcHNob3QuY3BwCkBAIC02OCw3
ICs2OCw3IEBAIHB1YmxpYzoKICAgICBPdXRwdXRTdHJlYW1BZGFwdGVyKFNjcmlwdEhlYXBTbmFw
c2hvdDo6T3V0cHV0U3RyZWFtKiBvdXRwdXQpCiAgICAgICAgIDogbV9vdXRwdXQob3V0cHV0KSB7
IH0KICAgICB2b2lkIEVuZE9mU3RyZWFtKCkgeyBtX291dHB1dC0+Q2xvc2UoKTsgfQotICAgIGlu
dCBHZXRDaHVua1NpemUoKSB7IHJldHVybiAxMDI0MDsgfQorICAgIGludCBHZXRDaHVua1NpemUo
KSB7IHJldHVybiAxMDI0MDA7IH0KICAgICBXcml0ZVJlc3VsdCBXcml0ZUFzY2lpQ2h1bmsoY2hh
ciogZGF0YSwgaW50IHNpemUpCiAgICAgewogICAgICAgICBtX291dHB1dC0+V3JpdGUoU3RyaW5n
KGRhdGEsIHNpemUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvSGVhcFNuYXBzaG90LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9IZWFwU25hcHNob3QuanMKaW5kZXggZWViYzIyOTkwMjI0MWFkYzVhNmNlYjMxMTQ4ZmEzNTkz
MWViYTdmZC4uYjU5N2E1YTZmZmJiZGIxMzA5OTQxMzk5YzRiN2IyMDJjNjMyMTM4YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3QuanMK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3QuanMK
QEAgLTg0Niw3ICs4NDYsOSBAQCBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90LnByb3RvdHlwZSA9
IHsKICAgICB9LAogCiAgICAgLyoqCi0gICAgICogQHBhcmFtIHtTdHJpbmc9fSBmaWx0ZXJTdHJp
bmcKKyAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IHNvcnRlZEluZGV4ZXMKKyAgICAgKiBAcGFyYW0g
e3N0cmluZ30ga2V5CisgICAgICogQHBhcmFtIHtzdHJpbmc9fSBmaWx0ZXJTdHJpbmcKICAgICAg
Ki8KICAgICBhZ2dyZWdhdGVzOiBmdW5jdGlvbihzb3J0ZWRJbmRleGVzLCBrZXksIGZpbHRlclN0
cmluZykKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0hlYXBTbmFwc2hvdEdyaWROb2Rlcy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvSGVhcFNuYXBzaG90R3JpZE5vZGVzLmpzCmluZGV4IDQzOTJmMjVmN2UxNjFmMzY2
NDJkYzYxYjg3ZTBmNjQ5OGExN2VlNDUuLmIyNzllZjVlODQ1Y2RjMTc3ZmE3MmM1N2Y3MGJkOTRl
ZmZjMzZiN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
SGVhcFNuYXBzaG90R3JpZE5vZGVzLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvSGVhcFNuYXBzaG90R3JpZE5vZGVzLmpzCkBAIC0zMywxNSArMzMsMTAgQEAKICAq
IEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuRGF0YUdyaWROb2RlfQogICogQHBhcmFtIHtXZWJJbnNw
ZWN0b3IuSGVhcFNuYXBzaG90U29ydGFibGVEYXRhR3JpZH0gdHJlZQogICogQHBhcmFtIHtib29s
ZWFufSBoYXNDaGlsZHJlbgotICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90UHJv
dmlkZXJQcm94eXxXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90RGlmZk5vZGVzUHJvdmlkZXJ9IHBy
b3ZpZGVyCiAgKi8KLVdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RHcmlkTm9kZSA9IGZ1bmN0aW9u
KHRyZWUsIGhhc0NoaWxkcmVuLCBwcm92aWRlcikKK1dlYkluc3BlY3Rvci5IZWFwU25hcHNob3RH
cmlkTm9kZSA9IGZ1bmN0aW9uKHRyZWUsIGhhc0NoaWxkcmVuKQogewogICAgIFdlYkluc3BlY3Rv
ci5EYXRhR3JpZE5vZGUuY2FsbCh0aGlzLCBudWxsLCBoYXNDaGlsZHJlbik7Ci0gICAgLyoqCi0g
ICAgICogQHR5cGUge1dlYkluc3BlY3Rvci5IZWFwU25hcHNob3RQcm92aWRlclByb3h5fFdlYklu
c3BlY3Rvci5IZWFwU25hcHNob3REaWZmTm9kZXNQcm92aWRlcn0KLSAgICAgKi8KLSAgICB0aGlz
Ll9wcm92aWRlciA9IHByb3ZpZGVyOwogICAgIHRoaXMuX2RhdGFHcmlkID0gdHJlZTsKICAgICB0
aGlzLl9pbnN0YW5jZUNvdW50ID0gMDsKIApAQCAtNTUsNiArNTAsMjEgQEAgV2ViSW5zcGVjdG9y
LkhlYXBTbmFwc2hvdEdyaWROb2RlID0gZnVuY3Rpb24odHJlZSwgaGFzQ2hpbGRyZW4sIHByb3Zp
ZGVyKQogfQogCiBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90R3JpZE5vZGUucHJvdG90eXBlID0g
eworICAgIC8qKgorICAgICAqIEByZXR1cm4ge1dlYkluc3BlY3Rvci5IZWFwU25hcHNob3RQcm92
aWRlclByb3h5fFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3REaWZmTm9kZXNQcm92aWRlcn0KKyAg
ICAgKi8KKyAgICBfY3JlYXRlUHJvdmlkZXI6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHRo
cm93IG5ldyBFcnJvcigiTmVlZHMgaW1wbGVtZW50ZWQuIik7CisgICAgfSwKKworICAgIGdldCBf
cHJvdmlkZXIoKQorICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLl9wcm92aWRlck9iamVjdCkKKyAg
ICAgICAgICAgIHRoaXMuX3Byb3ZpZGVyT2JqZWN0ID0gdGhpcy5fY3JlYXRlUHJvdmlkZXIoKTsK
KyAgICAgICAgcmV0dXJuIHRoaXMuX3Byb3ZpZGVyT2JqZWN0OworICAgIH0sCisKICAgICBjcmVh
dGVDZWxsOiBmdW5jdGlvbihjb2x1bW5JZGVudGlmaWVyKQogICAgIHsKICAgICAgICAgdmFyIGNl
bGwgPSBXZWJJbnNwZWN0b3IuRGF0YUdyaWROb2RlLnByb3RvdHlwZS5jcmVhdGVDZWxsLmNhbGwo
dGhpcywgY29sdW1uSWRlbnRpZmllcik7CkBAIC0zMjYsMTEgKzMzNiwxMiBAQCBXZWJJbnNwZWN0
b3IuSGVhcFNuYXBzaG90R3JpZE5vZGUucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rv
ci5EYXRhR3JpZE5vZAogLyoqCiAgKiBAY29uc3RydWN0b3IKICAqIEBleHRlbmRzIHtXZWJJbnNw
ZWN0b3IuSGVhcFNuYXBzaG90R3JpZE5vZGV9Ci0gKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5IZWFw
U25hcHNob3RQcm92aWRlclByb3h5fSBwcm92aWRlcgorICogQHBhcmFtIHtXZWJJbnNwZWN0b3Iu
SGVhcFNuYXBzaG90U29ydGFibGVEYXRhR3JpZH0gdHJlZQogICovCi1XZWJJbnNwZWN0b3IuSGVh
cFNuYXBzaG90R2VuZXJpY09iamVjdE5vZGUgPSBmdW5jdGlvbih0cmVlLCBub2RlLCBwcm92aWRl
cikKK1dlYkluc3BlY3Rvci5IZWFwU25hcHNob3RHZW5lcmljT2JqZWN0Tm9kZSA9IGZ1bmN0aW9u
KHRyZWUsIG5vZGUpCiB7Ci0gICAgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdEdyaWROb2RlLmNh
bGwodGhpcywgdHJlZSwgZmFsc2UsIHByb3ZpZGVyKTsKKyAgICB0aGlzLnNuYXBzaG90Tm9kZUlu
ZGV4ID0gMDsKKyAgICBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90R3JpZE5vZGUuY2FsbCh0aGlz
LCB0cmVlLCBmYWxzZSk7CiAgICAgLy8gbm9kZSBpcyBudWxsIGZvciBEYXRhR3JpZCByb290IG5v
ZGVzLgogICAgIGlmICghbm9kZSkKICAgICAgICAgcmV0dXJuOwpAQCAtNTA0LDggKzUxNSw3IEBA
IFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RHZW5lcmljT2JqZWN0Tm9kZS5wcm90b3R5cGUuX19w
cm90b19fID0gV2ViSW5zcGVjdG9yLkhlCiAgKi8KIFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RP
YmplY3ROb2RlID0gZnVuY3Rpb24odHJlZSwgaXNGcm9tQmFzZVNuYXBzaG90LCBlZGdlLCBwYXJl
bnRHcmlkTm9kZSkKIHsKLSAgICBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90R2VuZXJpY09iamVj
dE5vZGUuY2FsbCh0aGlzLCB0cmVlLCBlZGdlLm5vZGUsCi0gICAgICAgIFdlYkluc3BlY3Rvci5I
ZWFwU25hcHNob3RPYmplY3ROb2RlLl9jcmVhdGVQcm92aWRlcihpc0Zyb21CYXNlU25hcHNob3Qs
IGVkZ2Uubm9kZUluZGV4LCB0cmVlKSk7CisgICAgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdEdl
bmVyaWNPYmplY3ROb2RlLmNhbGwodGhpcywgdHJlZSwgZWRnZS5ub2RlKTsKICAgICB0aGlzLl9y
ZWZlcmVuY2VOYW1lID0gZWRnZS5uYW1lOwogICAgIHRoaXMuX3JlZmVyZW5jZVR5cGUgPSBlZGdl
LnR5cGU7CiAgICAgdGhpcy5fcHJvcGVydHlBY2Nlc3NvciA9IGVkZ2UucHJvcGVydHlBY2Nlc3Nv
cjsKQEAgLTUxOSwyMiArNTI5LDI2IEBAIFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RPYmplY3RO
b2RlID0gZnVuY3Rpb24odHJlZSwgaXNGcm9tQmFzZVNuYXBzaG90LCBlZGdlLCBwCiAgICAgICAg
IHRoaXMudXBkYXRlSGFzQ2hpbGRyZW4oKTsKIH0KIAotV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hv
dE9iamVjdE5vZGUuX2NyZWF0ZVByb3ZpZGVyID0gZnVuY3Rpb24oaXNGcm9tQmFzZVNuYXBzaG90
LCBub2RlSW5kZXgsIHRyZWUpCi17Ci0gICAgdmFyIHNob3dIaWRkZW5EYXRhID0gV2ViSW5zcGVj
dG9yLnNldHRpbmdzLnNob3dIZWFwU25hcHNob3RPYmplY3RzSGlkZGVuUHJvcGVydGllcy5nZXQo
KTsKLSAgICB2YXIgZmlsdGVyID0gImZ1bmN0aW9uKGVkZ2UpIHtcbiIgKwotICAgICAgICAiICAg
IHJldHVybiAhZWRnZS5pc0ludmlzaWJsZSgpXG4iICsKLSAgICAgICAgIiAgICAgICAgJiYgKCIg
KyAhdHJlZS5zaG93UmV0YWluaW5nRWRnZXMgKyAiIHx8IChlZGdlLm5vZGUoKS5pZCgpICE9PSAx
ICYmICFlZGdlLm5vZGUoKS5pc1N5bnRoZXRpYygpKSlcbiIgKwotICAgICAgICAiICAgICAgICAm
JiAoIiArIHNob3dIaWRkZW5EYXRhICsgIiB8fCAoIWVkZ2UuaXNIaWRkZW4oKSAmJiAhZWRnZS5u
b2RlKCkuaXNIaWRkZW4oKSkpO1xuIiArCi0gICAgICAgICJ9XG4iOwotICAgIHZhciBzbmFwc2hv
dCA9IGlzRnJvbUJhc2VTbmFwc2hvdCA/IHRyZWUuYmFzZVNuYXBzaG90IDogdHJlZS5zbmFwc2hv
dDsKLSAgICBpZiAodHJlZS5zaG93UmV0YWluaW5nRWRnZXMpCi0gICAgICAgIHJldHVybiBzbmFw
c2hvdC5jcmVhdGVSZXRhaW5pbmdFZGdlc1Byb3ZpZGVyKG5vZGVJbmRleCwgZmlsdGVyKTsKLSAg
ICBlbHNlCi0gICAgICAgIHJldHVybiBzbmFwc2hvdC5jcmVhdGVFZGdlc1Byb3ZpZGVyKG5vZGVJ
bmRleCwgZmlsdGVyKTsKLX0KLQogV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdE9iamVjdE5vZGUu
cHJvdG90eXBlID0geworICAgIC8qKgorICAgICAqIEByZXR1cm4ge1dlYkluc3BlY3Rvci5IZWFw
U25hcHNob3RQcm92aWRlclByb3h5fQorICAgICAqLworICAgIF9jcmVhdGVQcm92aWRlcjogZnVu
Y3Rpb24oKQorICAgIHsKKyAgICAgICAgdmFyIHRyZWUgPSB0aGlzLl9kYXRhR3JpZDsKKyAgICAg
ICAgdmFyIHNob3dIaWRkZW5EYXRhID0gV2ViSW5zcGVjdG9yLnNldHRpbmdzLnNob3dIZWFwU25h
cHNob3RPYmplY3RzSGlkZGVuUHJvcGVydGllcy5nZXQoKTsKKyAgICAgICAgdmFyIGZpbHRlciA9
ICJmdW5jdGlvbihlZGdlKSB7XG4iICsKKyAgICAgICAgICAgICAgICAgICAgICIgICAgcmV0dXJu
ICFlZGdlLmlzSW52aXNpYmxlKClcbiIgKworICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAg
JiYgKCIgKyAhdHJlZS5zaG93UmV0YWluaW5nRWRnZXMgKyAiIHx8IChlZGdlLm5vZGUoKS5pZCgp
ICE9PSAxICYmICFlZGdlLm5vZGUoKS5pc1N5bnRoZXRpYygpKSlcbiIgKworICAgICAgICAgICAg
ICAgICAgICAgIiAgICAgICAgJiYgKCIgKyBzaG93SGlkZGVuRGF0YSArICIgfHwgKCFlZGdlLmlz
SGlkZGVuKCkgJiYgIWVkZ2Uubm9kZSgpLmlzSGlkZGVuKCkpKTtcbiIgKworICAgICAgICAgICAg
ICAgICAgICAgIn1cbiI7CisgICAgICAgIHZhciBzbmFwc2hvdCA9IHRoaXMuX2lzRnJvbUJhc2VT
bmFwc2hvdCA/IHRyZWUuYmFzZVNuYXBzaG90IDogdHJlZS5zbmFwc2hvdDsKKyAgICAgICAgaWYg
KHRoaXMuc2hvd1JldGFpbmluZ0VkZ2VzKQorICAgICAgICAgICAgcmV0dXJuIHNuYXBzaG90LmNy
ZWF0ZVJldGFpbmluZ0VkZ2VzUHJvdmlkZXIodGhpcy5zbmFwc2hvdE5vZGVJbmRleCwgZmlsdGVy
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuIHNuYXBzaG90LmNyZWF0ZUVkZ2Vz
UHJvdmlkZXIodGhpcy5zbmFwc2hvdE5vZGVJbmRleCwgZmlsdGVyKTsKKyAgICB9LAorCiAgICAg
X2ZpbmRBbmNlc3RvcldpdGhTYW1lU25hcHNob3ROb2RlSWQ6IGZ1bmN0aW9uKCkKICAgICB7CiAg
ICAgICAgIHZhciBhbmNlc3RvciA9IHRoaXMuX3BhcmVudEdyaWROb2RlOwpAQCAtNjMwLDI0ICs2
NDQsMjQgQEAgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdE9iamVjdE5vZGUucHJvdG90eXBlLl9f
cHJvdG9fXyA9IFdlYkluc3BlY3Rvci5IZWFwU25hcHMKICAqLwogV2ViSW5zcGVjdG9yLkhlYXBT
bmFwc2hvdEluc3RhbmNlTm9kZSA9IGZ1bmN0aW9uKHRyZWUsIGJhc2VTbmFwc2hvdCwgc25hcHNo
b3QsIG5vZGUpCiB7Ci0gICAgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdEdlbmVyaWNPYmplY3RO
b2RlLmNhbGwodGhpcywgdHJlZSwgbm9kZSwKLSAgICAgICAgV2ViSW5zcGVjdG9yLkhlYXBTbmFw
c2hvdEluc3RhbmNlTm9kZS5fY3JlYXRlUHJvdmlkZXIoYmFzZVNuYXBzaG90IHx8IHNuYXBzaG90
LCBub2RlLm5vZGVJbmRleCkpOworICAgIFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RHZW5lcmlj
T2JqZWN0Tm9kZS5jYWxsKHRoaXMsIHRyZWUsIG5vZGUpOworICAgIHRoaXMuX2Jhc2VTbmFwc2hv
dE9yU25hcHNob3QgPSBiYXNlU25hcHNob3QgfHwgc25hcHNob3Q7CiAgICAgdGhpcy5faXNEZWxl
dGVkTm9kZSA9ICEhYmFzZVNuYXBzaG90OwogICAgIHRoaXMudXBkYXRlSGFzQ2hpbGRyZW4oKTsK
IH07CiAKLVdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RJbnN0YW5jZU5vZGUuX2NyZWF0ZVByb3Zp
ZGVyID0gZnVuY3Rpb24oc25hcHNob3QsIG5vZGVJbmRleCkKLXsKLSAgICB2YXIgc2hvd0hpZGRl
bkRhdGEgPSBXZWJJbnNwZWN0b3Iuc2V0dGluZ3Muc2hvd0hlYXBTbmFwc2hvdE9iamVjdHNIaWRk
ZW5Qcm9wZXJ0aWVzLmdldCgpOwotICAgIHJldHVybiBzbmFwc2hvdC5jcmVhdGVFZGdlc1Byb3Zp
ZGVyKAotICAgICAgICBub2RlSW5kZXgsCi0gICAgICAgICJmdW5jdGlvbihlZGdlKSB7IiArCi0g
ICAgICAgICIgICAgcmV0dXJuICFlZGdlLmlzSW52aXNpYmxlKCkiICsKLSAgICAgICAgIiAgICAg
ICAgJiYgKCIgKyBzaG93SGlkZGVuRGF0YSArICIgfHwgKCFlZGdlLmlzSGlkZGVuKCkgJiYgIWVk
Z2Uubm9kZSgpLmlzSGlkZGVuKCkpKTsiICsKLSAgICAgICAgIn0iKTsKLX0KLQogV2ViSW5zcGVj
dG9yLkhlYXBTbmFwc2hvdEluc3RhbmNlTm9kZS5wcm90b3R5cGUgPSB7CisgICAgX2NyZWF0ZVBy
b3ZpZGVyOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB2YXIgc2hvd0hpZGRlbkRhdGEgPSBX
ZWJJbnNwZWN0b3Iuc2V0dGluZ3Muc2hvd0hlYXBTbmFwc2hvdE9iamVjdHNIaWRkZW5Qcm9wZXJ0
aWVzLmdldCgpOworICAgICAgICByZXR1cm4gdGhpcy5fYmFzZVNuYXBzaG90T3JTbmFwc2hvdC5j
cmVhdGVFZGdlc1Byb3ZpZGVyKAorICAgICAgICAgICAgdGhpcy5zbmFwc2hvdE5vZGVJbmRleCwK
KyAgICAgICAgICAgICJmdW5jdGlvbihlZGdlKSB7IiArCisgICAgICAgICAgICAiICAgIHJldHVy
biAhZWRnZS5pc0ludmlzaWJsZSgpIiArCisgICAgICAgICAgICAiICAgICAgICAmJiAoIiArIHNo
b3dIaWRkZW5EYXRhICsgIiB8fCAoIWVkZ2UuaXNIaWRkZW4oKSAmJiAhZWRnZS5ub2RlKCkuaXNI
aWRkZW4oKSkpOyIgKworICAgICAgICAgICAgIn0iKTsKKyAgICB9LAorCiAgICAgX2NyZWF0ZUNo
aWxkTm9kZTogZnVuY3Rpb24oaXRlbSkKICAgICB7CiAgICAgICAgIHJldHVybiBuZXcgV2ViSW5z
cGVjdG9yLkhlYXBTbmFwc2hvdE9iamVjdE5vZGUodGhpcy5fZGF0YUdyaWQsIHRoaXMuX2lzRGVs
ZXRlZE5vZGUsIGl0ZW0sIG51bGwpOwpAQCAtNzE0LDkgKzcyOCw5IEBAIFdlYkluc3BlY3Rvci5I
ZWFwU25hcHNob3RJbnN0YW5jZU5vZGUucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rv
ci5IZWFwU25hCiAgKi8KIFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RDb25zdHJ1Y3Rvck5vZGUg
PSBmdW5jdGlvbih0cmVlLCBjbGFzc05hbWUsIGFnZ3JlZ2F0ZSwgYWdncmVnYXRlc0tleSkKIHsK
LSAgICBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90R3JpZE5vZGUuY2FsbCh0aGlzLCB0cmVlLCBh
Z2dyZWdhdGUuY291bnQgPiAwLAotICAgICAgICB0cmVlLnNuYXBzaG90LmNyZWF0ZU5vZGVzUHJv
dmlkZXJGb3JDbGFzcyhjbGFzc05hbWUsIGFnZ3JlZ2F0ZXNLZXkpKTsKKyAgICBXZWJJbnNwZWN0
b3IuSGVhcFNuYXBzaG90R3JpZE5vZGUuY2FsbCh0aGlzLCB0cmVlLCBhZ2dyZWdhdGUuY291bnQg
PiAwKTsKICAgICB0aGlzLl9uYW1lID0gY2xhc3NOYW1lOworICAgIHRoaXMuX2FnZ3JlZ2F0ZXNL
ZXkgPSBhZ2dyZWdhdGVzS2V5OwogICAgIHRoaXMuX2Rpc3RhbmNlVG9XaW5kb3cgPSBhZ2dyZWdh
dGUuZGlzdGFuY2VUb1dpbmRvdzsKICAgICB0aGlzLl9jb3VudCA9IGFnZ3JlZ2F0ZS5jb3VudDsK
ICAgICB0aGlzLl9zaGFsbG93U2l6ZSA9IGFnZ3JlZ2F0ZS5zZWxmOwpAQCAtNzI1LDYgKzczOSwx
NSBAQCBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90Q29uc3RydWN0b3JOb2RlID0gZnVuY3Rpb24o
dHJlZSwgY2xhc3NOYW1lLCBhZ2dyZWdhdGUsCiAKIFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RD
b25zdHJ1Y3Rvck5vZGUucHJvdG90eXBlID0gewogICAgIC8qKgorICAgICAqIEBvdmVycmlkZQor
ICAgICAqIEByZXR1cm4ge1dlYkluc3BlY3Rvci5IZWFwU25hcHNob3RQcm92aWRlclByb3h5fQor
ICAgICAqLworICAgIF9jcmVhdGVQcm92aWRlcjogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIHRoaXMuX2RhdGFHcmlkLnNuYXBzaG90LmNyZWF0ZU5vZGVzUHJvdmlkZXJGb3JDbGFz
cyh0aGlzLl9uYW1lLCB0aGlzLl9hZ2dyZWdhdGVzS2V5KQorICAgIH0sCisKKyAgICAvKioKICAg
ICAgKiBAcGFyYW0ge251bWJlcn0gc25hcHNob3RPYmplY3RJZAogICAgICAqLwogICAgIHJldmVh
bE5vZGVCeVNuYXBzaG90T2JqZWN0SWQ6IGZ1bmN0aW9uKHNuYXBzaG90T2JqZWN0SWQpCkBAIC05
MDgsOCArOTMxLDcgQEAgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdERpZmZOb2Rlc1Byb3ZpZGVy
LnByb3RvdHlwZSA9IHsKICAqLwogV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdERpZmZOb2RlID0g
ZnVuY3Rpb24odHJlZSwgY2xhc3NOYW1lLCBkaWZmRm9yQ2xhc3MpCiB7Ci0gICAgV2ViSW5zcGVj
dG9yLkhlYXBTbmFwc2hvdEdyaWROb2RlLmNhbGwodGhpcywgdHJlZSwgdHJ1ZSwKLSAgICAgICAg
V2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdERpZmZOb2RlLl9jcmVhdGVQcm92aWRlcih0cmVlLCBj
bGFzc05hbWUsIGRpZmZGb3JDbGFzcy5kZWxldGVkSW5kZXhlcywgZGlmZkZvckNsYXNzLmFkZGVk
Q291bnQsIGRpZmZGb3JDbGFzcy5yZW1vdmVkQ291bnQpKTsKKyAgICBXZWJJbnNwZWN0b3IuSGVh
cFNuYXBzaG90R3JpZE5vZGUuY2FsbCh0aGlzLCB0cmVlLCB0cnVlKTsKICAgICB0aGlzLl9uYW1l
ID0gY2xhc3NOYW1lOwogCiAgICAgdGhpcy5fYWRkZWRDb3VudCA9IGRpZmZGb3JDbGFzcy5hZGRl
ZENvdW50OwpAQCAtOTE4LDE4ICs5NDAsMjQgQEAgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdERp
ZmZOb2RlID0gZnVuY3Rpb24odHJlZSwgY2xhc3NOYW1lLCBkaWZmRm9yQ2xhc3MpCiAgICAgdGhp
cy5fYWRkZWRTaXplID0gZGlmZkZvckNsYXNzLmFkZGVkU2l6ZTsKICAgICB0aGlzLl9yZW1vdmVk
U2l6ZSA9IGRpZmZGb3JDbGFzcy5yZW1vdmVkU2l6ZTsKICAgICB0aGlzLl9zaXplRGVsdGEgPSBk
aWZmRm9yQ2xhc3Muc2l6ZURlbHRhOwotfQotCi1XZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90RGlm
Zk5vZGUuX2NyZWF0ZVByb3ZpZGVyID0gZnVuY3Rpb24odHJlZSwgY2xhc3NOYW1lLCBkZWxldGVk
SW5kZXhlcywgYWRkZWRDb3VudCwgcmVtb3ZlZENvdW50KQotewotICAgIHZhciByZXN1bHQgPSAg
bmV3IFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3REaWZmTm9kZXNQcm92aWRlcigKLSAgICAgICAg
dHJlZS5zbmFwc2hvdC5jcmVhdGVBZGRlZE5vZGVzUHJvdmlkZXIodHJlZS5iYXNlU25hcHNob3Qu
dWlkLCBjbGFzc05hbWUpLAotICAgICAgICB0cmVlLmJhc2VTbmFwc2hvdC5jcmVhdGVEZWxldGVk
Tm9kZXNQcm92aWRlcihkZWxldGVkSW5kZXhlcyksCi0gICAgICAgIGFkZGVkQ291bnQsIHJlbW92
ZWRDb3VudCk7Ci0gICAgcmV0dXJuIHJlc3VsdDsKKyAgICB0aGlzLl9kZWxldGVkSW5kZXhlcyA9
IGRpZmZGb3JDbGFzcy5kZWxldGVkSW5kZXhlczsKIH0KIAogV2ViSW5zcGVjdG9yLkhlYXBTbmFw
c2hvdERpZmZOb2RlLnByb3RvdHlwZSA9IHsKKyAgICAvKioKKyAgICAgKiBAb3ZlcnJpZGUKKyAg
ICAgKiBAcmV0dXJuIHtXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90RGlmZk5vZGVzUHJvdmlkZXJ9
CisgICAgICovCisgICAgX2NyZWF0ZVByb3ZpZGVyOiBmdW5jdGlvbigpCisgICAgeworICAgICAg
ICB2YXIgdHJlZSA9IHRoaXMuX2RhdGFHcmlkOworICAgICAgICByZXR1cm4gIG5ldyBXZWJJbnNw
ZWN0b3IuSGVhcFNuYXBzaG90RGlmZk5vZGVzUHJvdmlkZXIoCisgICAgICAgICAgICB0cmVlLnNu
YXBzaG90LmNyZWF0ZUFkZGVkTm9kZXNQcm92aWRlcih0cmVlLmJhc2VTbmFwc2hvdC51aWQsIHRo
aXMuX25hbWUpLAorICAgICAgICAgICAgdHJlZS5iYXNlU25hcHNob3QuY3JlYXRlRGVsZXRlZE5v
ZGVzUHJvdmlkZXIodGhpcy5fZGVsZXRlZEluZGV4ZXMpLAorICAgICAgICAgICAgdGhpcy5fYWRk
ZWRDb3VudCwKKyAgICAgICAgICAgIHRoaXMuX3JlbW92ZWRDb3VudCk7CisgICAgfSwKKwogICAg
IF9jcmVhdGVDaGlsZE5vZGU6IGZ1bmN0aW9uKGl0ZW0pCiAgICAgewogICAgICAgICBpZiAoaXRl
bS5pc0FkZGVkTm90UmVtb3ZlZCkKQEAgLTk5NywxMyArMTAyNSwyMSBAQCBXZWJJbnNwZWN0b3Iu
SGVhcFNuYXBzaG90RGlmZk5vZGUucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5I
ZWFwU25hcHNobwogICovCiBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90RG9taW5hdG9yT2JqZWN0
Tm9kZSA9IGZ1bmN0aW9uKHRyZWUsIG5vZGUpCiB7Ci0gICAgV2ViSW5zcGVjdG9yLkhlYXBTbmFw
c2hvdEdlbmVyaWNPYmplY3ROb2RlLmNhbGwodGhpcywgdHJlZSwgbm9kZSwKLSAgICAgICAgdHJl
ZS5zbmFwc2hvdC5jcmVhdGVOb2Rlc1Byb3ZpZGVyRm9yRG9taW5hdG9yKG5vZGUubm9kZUluZGV4
KSk7CisgICAgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdEdlbmVyaWNPYmplY3ROb2RlLmNhbGwo
dGhpcywgdHJlZSwgbm9kZSk7CiAgICAgdGhpcy51cGRhdGVIYXNDaGlsZHJlbigpOwogfTsKIAog
V2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdERvbWluYXRvck9iamVjdE5vZGUucHJvdG90eXBlID0g
ewogICAgIC8qKgorICAgICAqIEBvdmVycmlkZQorICAgICAqIEByZXR1cm4ge1dlYkluc3BlY3Rv
ci5IZWFwU25hcHNob3RQcm92aWRlclByb3h5fQorICAgICAqLworICAgIF9jcmVhdGVQcm92aWRl
cjogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGFHcmlkLnNuYXBz
aG90LmNyZWF0ZU5vZGVzUHJvdmlkZXJGb3JEb21pbmF0b3IodGhpcy5zbmFwc2hvdE5vZGVJbmRl
eCk7CisgICAgfSwKKworICAgIC8qKgogICAgICAqIEBwYXJhbSB7bnVtYmVyfSBzbmFwc2hvdE9i
amVjdElkCiAgICAgICogQHBhcmFtIHtmdW5jdGlvbig/V2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hv
dERvbWluYXRvck9iamVjdE5vZGUpfSBjYWxsYmFjawogICAgICAqLwo=
</data>
<flag name="review"
          id="150465"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>