<?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>78827</bug_id>
          
          <creation_ts>2012-02-16 09:56:45 -0800</creation_ts>
          <short_desc>Web Inspector: split innerUpdate into rebuildUpdate and refreshUpdate, make computed styles load lazily.</short_desc>
          <delta_ts>2012-02-17 03:41:04 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>558287</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-02-16 09:56:45 -0800</bug_when>
    <thetext>Patch to follow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558288</commentid>
    <comment_count>1</comment_count>
      <attachid>127399</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-02-16 09:58:28 -0800</bug_when>
    <thetext>Created attachment 127399
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559043</commentid>
    <comment_count>2</comment_count>
      <attachid>127399</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-02-17 01:54:23 -0800</bug_when>
    <thetext>Comment on attachment 127399
Patch

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

&gt; Source/WebCore/inspector/front-end/StylesSidebarPane.js:333
&gt; +    _validateNode: function(userCallback)

I&apos;m not sure this is a good method: it looks like &quot;return current node but do something and invoke userCallback ONLY if the node is null&quot;. This conditional callback invocation is not consistent with other code using callbacks: all paths invoke at least one of the provided callbacks.

On a similar note, returning this.node here is not necessary, since you can assign this.node at the call site instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559055</commentid>
    <comment_count>3</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-02-17 02:10:50 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 127399 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=127399&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/inspector/front-end/StylesSidebarPane.js:333
&gt; &gt; +    _validateNode: function(userCallback)
&gt; 
&gt; I&apos;m not sure this is a good method: it looks like &quot;return current node but do something and invoke userCallback ONLY if the node is null&quot;. This conditional callback invocation is not consistent with other code using callbacks: all paths invoke at least one of the provided callbacks.

We are using this exact pattern as asserNode and assertStyleSheet on the backend. validateNode is used to guard methods that require valid node and take care of calling the userCallback.

&gt; 
&gt; On a similar note, returning this.node here is not necessary, since you can assign this.node at the call site instead.

See above, I need to return validated node or null for the guard to work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559109</commentid>
    <comment_count>4</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-02-17 03:41:04 -0800</bug_when>
    <thetext>Committed r108058: &lt;http://trac.webkit.org/changeset/108058&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127399</attachid>
            <date>2012-02-16 09:58:28 -0800</date>
            <delta_ts>2012-02-17 03:24:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78827-20120216215826.patch</filename>
            <type>text/plain</type>
            <size>18239</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3OTQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmZiZTY4ZDU4OGMyZTU4
MWVmZDJiMzlmOWJmOWNlZWRkYmY0MmU3OC4uMjBjYzFiZmU1ZjQ3OWRlZWEzYzk1YmVjMDdhNjll
ZjY2NDkyMzg0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMxIEBACiAyMDEyLTAyLTE2ICBQYXZl
bCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4KIAorICAgICAgICBXZWIgSW5zcGVjdG9y
OiBzcGxpdCBpbm5lclVwZGF0ZSBpbnRvIHJlYnVpbGRVcGRhdGUgYW5kIHJlZnJlc2hVcGRhdGUs
IG1ha2UgY29tcHV0ZWQgc3R5bGVzIGxvYWQgbGF6aWx5LgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg4MjcKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU2lk
ZWJhclBhbmUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3R5bGVzU2lkZWJhclBhbmUucHJv
dG90eXBlLnVwZGF0ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3R5bGVzU2lkZWJhclBhbmUu
cHJvdG90eXBlLl9yZWZyZXNoVXBkYXRlLmNvbXB1dGVkU3R5bGVDYWxsYmFjayk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuU3R5bGVzU2lkZWJhclBhbmUucHJvdG90eXBlLl9yZWZyZXNoVXBkYXRl
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TdHlsZXNTaWRlYmFyUGFuZS5wcm90b3R5cGUuX3Jl
YnVpbGRVcGRhdGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlN0eWxlc1NpZGViYXJQYW5lLnBy
b3RvdHlwZS5fdmFsaWRhdGVOb2RlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TdHlsZXNTaWRl
YmFyUGFuZS5wcm90b3R5cGUuX3N0eWxlU2hlZXRPck1lZGlhUXVlcnlSZXN1bHRDaGFuZ2VkKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5TdHlsZXNTaWRlYmFyUGFuZS5wcm90b3R5cGUuX2F0dHJp
YnV0ZXNNb2RpZmllZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3R5bGVzU2lkZWJhclBhbmUu
cHJvdG90eXBlLl9hdHRyaWJ1dGVzUmVtb3ZlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3R5
bGVzU2lkZWJhclBhbmUucHJvdG90eXBlLl9zdHlsZUludmFsaWRhdGVkKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5TdHlsZXNTaWRlYmFyUGFuZS5wcm90b3R5cGUuX2lubmVyUmVmcmVzaFVwZGF0
ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3R5bGVzU2lkZWJhclBhbmUucHJvdG90eXBlLl9p
bm5lclJlYnVpbGRVcGRhdGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlN0eWxlc1NpZGViYXJQ
YW5lLnByb3RvdHlwZS5fbm9kZVN0eWxlc1VwZGF0ZWRGb3JUZXN0KToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5TdHlsZXNTaWRlYmFyUGFuZS5wcm90b3R5cGUuX3RvZ2dsZUVsZW1lbnRTdGF0ZVBh
bmUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlN0eWxlc1NpZGViYXJQYW5lLnByb3RvdHlwZS5f
Y3JlYXRlRWxlbWVudFN0YXRlUGFuZS5jbGlja0xpc3RlbmVyKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5TdHlsZXNTaWRlYmFyUGFuZS5wcm90b3R5cGUuX3Nob3dVc2VyQWdlbnRTdHlsZXNTZXR0
aW5nQ2hhbmdlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29tcHV0ZWRTdHlsZVNpZGViYXJQ
YW5lLnByb3RvdHlwZS5leHBhbmQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlN0eWxlUHJvcGVy
dHlUcmVlRWxlbWVudC5wcm90b3R5cGUpOgorCisyMDEyLTAyLTE2ICBQYXZlbCBGZWxkbWFuICA8
cGZlbGRtYW5AZ29vZ2xlLmNvbT4KKwogICAgICAgICBXZWIgSW5zcGVjdG9yOiByZW1vdmUgZnJl
ZSBmbG93IERPTSBlZGl0aW5nIGV4cGVyaW1lbnQuCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODgxMwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1NpZGViYXJQYW5lLmpzIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZXNTaWRlYmFyUGFuZS5qcwppbmRleCA1NWRmMzAw
M2MzZTFkMTQ1OGY3MDkzNjM3ZTJkMjZiNWNhM2Y1MTgwLi5iMjJhZmE2M2Y0YTFlMDdlZWM0MDM3
ZDRjZGI3Zjg0NTVmMDRmNjEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1N0eWxlc1NpZGViYXJQYW5lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvU3R5bGVzU2lkZWJhclBhbmUuanMKQEAgLTIyNiwyMCArMjI2LDgwIEBA
IFdlYkluc3BlY3Rvci5TdHlsZXNTaWRlYmFyUGFuZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIGVs
c2UKICAgICAgICAgICAgIG5vZGUgPSB0aGlzLm5vZGU7CiAKLSAgICAgICAgdGhpcy5faW5uZXJV
cGRhdGUocmVmcmVzaCk7CisgICAgICAgIGlmIChyZWZyZXNoKQorICAgICAgICAgICAgdGhpcy5f
cmVmcmVzaFVwZGF0ZSgpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0aGlzLl9yZWJ1aWxk
VXBkYXRlKCk7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9y
LlN0eWxlUHJvcGVydGllc1NlY3Rpb249fSBlZGl0ZWRTZWN0aW9uCisgICAgICogQHBhcmFtIHti
b29sZWFuPX0gZm9yY2VGZXRjaENvbXB1dGVkU3R5bGUKKyAgICAgKiBAcGFyYW0ge2Z1bmN0aW9u
KCk9fSB1c2VyQ2FsbGJhY2sKKyAgICAgKi8KKyAgICBfcmVmcmVzaFVwZGF0ZTogZnVuY3Rpb24o
ZWRpdGVkU2VjdGlvbiwgZm9yY2VGZXRjaENvbXB1dGVkU3R5bGUsIHVzZXJDYWxsYmFjaykKKyAg
ICB7CisgICAgICAgIGlmICh0aGlzLl9yZWZyZXNoVXBkYXRlSW5Qcm9ncmVzcykgeworICAgICAg
ICAgICAgdGhpcy5fbGFzdE5vZGVGb3JJbm5lclJlZnJlc2ggPSB0aGlzLm5vZGU7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICB2YXIgbm9kZSA9IHRoaXMuX3ZhbGlk
YXRlTm9kZSh1c2VyQ2FsbGJhY2spOworICAgICAgICBpZiAoIW5vZGUpCisgICAgICAgICAgICBy
ZXR1cm47CisKKyAgICAgICAgZnVuY3Rpb24gY29tcHV0ZWRTdHlsZUNhbGxiYWNrKGNvbXB1dGVk
U3R5bGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9yZWZyZXNoVXBkYXRl
SW5Qcm9ncmVzczsKKworICAgICAgICAgICAgaWYgKHRoaXMuX2xhc3ROb2RlRm9ySW5uZXJSZWZy
ZXNoKSB7CisgICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuX2xhc3ROb2RlRm9ySW5uZXJSZWZy
ZXNoOworICAgICAgICAgICAgICAgIHRoaXMuX3JlZnJlc2hVcGRhdGUoZWRpdGVkU2VjdGlvbiwg
Zm9yY2VGZXRjaENvbXB1dGVkU3R5bGUsIHVzZXJDYWxsYmFjayk7CisgICAgICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAodGhpcy5ub2RlID09PSBu
b2RlICYmIGNvbXB1dGVkU3R5bGUpCisgICAgICAgICAgICAgICAgdGhpcy5faW5uZXJSZWZyZXNo
VXBkYXRlKG5vZGUsIGNvbXB1dGVkU3R5bGUsIGVkaXRlZFNlY3Rpb24pOworCisgICAgICAgICAg
ICBpZiAodXNlckNhbGxiYWNrKQorICAgICAgICAgICAgICAgIHVzZXJDYWxsYmFjaygpOworICAg
ICAgICB9CisKKyAgICAgICAgaWYgKHRoaXMuX2NvbXB1dGVkU3R5bGVQYW5lLmV4cGFuZGVkIHx8
IGZvcmNlRmV0Y2hDb21wdXRlZFN0eWxlKSB7CisgICAgICAgICAgICB0aGlzLl9yZWZyZXNoVXBk
YXRlSW5Qcm9ncmVzcyA9IHRydWU7CisgICAgICAgICAgICBXZWJJbnNwZWN0b3IuY3NzTW9kZWwu
Z2V0Q29tcHV0ZWRTdHlsZUFzeW5jKG5vZGUuaWQsIHRoaXMuX2ZvcmNlZFBzZXVkb0NsYXNzZXMs
IGNvbXB1dGVkU3R5bGVDYWxsYmFjay5iaW5kKHRoaXMpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgIHRoaXMuX2lubmVyUmVmcmVzaFVwZGF0ZShub2RlLCBudWxsLCBlZGl0ZWRTZWN0
aW9uKTsKKyAgICAgICAgICAgIGlmICh1c2VyQ2FsbGJhY2spCisgICAgICAgICAgICAgICAgdXNl
ckNhbGxiYWNrKCk7CisgICAgICAgIH0KICAgICB9LAogCi0gICAgX2V4ZWN1dGVSZWJ1aWxkVXBk
YXRlOiBmdW5jdGlvbihub2RlLCBjYWxsYmFjaykKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge2Z1
bmN0aW9uKCk9fSB1c2VyQ2FsbGJhY2sKKyAgICAgKi8KKyAgICBfcmVidWlsZFVwZGF0ZTogZnVu
Y3Rpb24odXNlckNhbGxiYWNrKQogICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX3JlYnVpbGRVcGRh
dGVJblByb2dyZXNzKSB7CisgICAgICAgICAgICB0aGlzLl9sYXN0Tm9kZUZvcklubmVyUmVidWls
ZCA9IHRoaXMubm9kZTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAg
IHZhciBub2RlID0gdGhpcy5fdmFsaWRhdGVOb2RlKHVzZXJDYWxsYmFjayk7CisgICAgICAgIGlm
ICghbm9kZSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICB0aGlzLl9yZWJ1aWxkVXBk
YXRlSW5Qcm9ncmVzcyA9IHRydWU7CisKICAgICAgICAgdmFyIHJlc3VsdFN0eWxlcyA9IHt9Owog
CiAgICAgICAgIGZ1bmN0aW9uIHN0eWxlc0NhbGxiYWNrKG1hdGNoZWRSZXN1bHQpCiAgICAgICAg
IHsKLSAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9pbm5lclVwZGF0ZUluUHJvZ3Jlc3M7CisgICAg
ICAgICAgICBkZWxldGUgdGhpcy5fcmVidWlsZFVwZGF0ZUluUHJvZ3Jlc3M7CiAKLSAgICAgICAg
ICAgIGlmICh0aGlzLl9sYXN0Tm9kZUZvcklubmVyVXBkYXRlKSB7Ci0gICAgICAgICAgICAgICAg
ZGVsZXRlIHRoaXMuX2xhc3ROb2RlRm9ySW5uZXJVcGRhdGU7Ci0gICAgICAgICAgICAgICAgdGhp
cy5faW5uZXJVcGRhdGUoZmFsc2UsIG51bGwsIGNhbGxiYWNrKTsKKyAgICAgICAgICAgIGlmICh0
aGlzLl9sYXN0Tm9kZUZvcklubmVyUmVidWlsZCkgeworICAgICAgICAgICAgICAgIGRlbGV0ZSB0
aGlzLl9sYXN0Tm9kZUZvcklubmVyUmVidWlsZDsKKyAgICAgICAgICAgICAgICB0aGlzLl9yZWJ1
aWxkVXBkYXRlKHVzZXJDYWxsYmFjayk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICAgICAgfQogCkBAIC0yNDcsMTAgKzMwNywxMCBAQCBXZWJJbnNwZWN0b3IuU3R5bGVzU2lkZWJh
clBhbmUucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIHJlc3VsdFN0eWxlcy5tYXRjaGVk
Q1NTUnVsZXMgPSBtYXRjaGVkUmVzdWx0Lm1hdGNoZWRDU1NSdWxlczsKICAgICAgICAgICAgICAg
ICByZXN1bHRTdHlsZXMucHNldWRvRWxlbWVudHMgPSBtYXRjaGVkUmVzdWx0LnBzZXVkb0VsZW1l
bnRzOwogICAgICAgICAgICAgICAgIHJlc3VsdFN0eWxlcy5pbmhlcml0ZWQgPSBtYXRjaGVkUmVz
dWx0LmluaGVyaXRlZDsKLSAgICAgICAgICAgICAgICB0aGlzLl9yZWJ1aWxkVXBkYXRlKG5vZGUs
IHJlc3VsdFN0eWxlcyk7CisgICAgICAgICAgICAgICAgdGhpcy5faW5uZXJSZWJ1aWxkVXBkYXRl
KG5vZGUsIHJlc3VsdFN0eWxlcyk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoY2Fs
bGJhY2spCi0gICAgICAgICAgICAgICAgY2FsbGJhY2soKTsKKyAgICAgICAgICAgIGlmICh1c2Vy
Q2FsbGJhY2spCisgICAgICAgICAgICAgICAgdXNlckNhbGxiYWNrKCk7CiAgICAgICAgIH0KIAog
ICAgICAgICBmdW5jdGlvbiBpbmxpbmVDYWxsYmFjayhpbmxpbmVTdHlsZSwgYXR0cmlidXRlc1N0
eWxlKQpAQCAtMjcwLDU1ICszMzAsMTcgQEAgV2ViSW5zcGVjdG9yLlN0eWxlc1NpZGViYXJQYW5l
LnByb3RvdHlwZSA9IHsKICAgICAgICAgV2ViSW5zcGVjdG9yLmNzc01vZGVsLmdldE1hdGNoZWRT
dHlsZXNBc3luYyhub2RlLmlkLCB0aGlzLl9mb3JjZWRQc2V1ZG9DbGFzc2VzLCB0cnVlLCB0cnVl
LCBzdHlsZXNDYWxsYmFjay5iaW5kKHRoaXMpKTsKICAgICB9LAogCi0gICAgX3JlZnJlc2hDb21w
dXRlZFN0eWxlU2VjdGlvbjogZnVuY3Rpb24oY2FsbGJhY2spCisgICAgX3ZhbGlkYXRlTm9kZTog
ZnVuY3Rpb24odXNlckNhbGxiYWNrKQogICAgIHsKLSAgICAgICAgdGhpcy5faW5uZXJVcGRhdGUo
dHJ1ZSwgbnVsbCwgY2FsbGJhY2spOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBAcGFyYW0g
e1dlYkluc3BlY3Rvci5TdHlsZVByb3BlcnRpZXNTZWN0aW9uPX0gZWRpdGVkU2VjdGlvbgotICAg
ICAqIEBwYXJhbSB7ZnVuY3Rpb24oKT19IHVzZXJDYWxsYmFjawotICAgICAqLwotICAgIF9pbm5l
clVwZGF0ZTogZnVuY3Rpb24ocmVmcmVzaCwgZWRpdGVkU2VjdGlvbiwgdXNlckNhbGxiYWNrKQot
ICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX2lubmVyVXBkYXRlSW5Qcm9ncmVzcykgewotICAgICAg
ICAgICAgdGhpcy5fbGFzdE5vZGVGb3JJbm5lclVwZGF0ZSA9IHRoaXMubm9kZTsKLSAgICAgICAg
ICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIHZhciBub2RlID0gdGhpcy5ub2RlOwot
ICAgICAgICBpZiAoIW5vZGUpIHsKKyAgICAgICAgaWYgKCF0aGlzLm5vZGUpIHsKICAgICAgICAg
ICAgIHRoaXMuX3NlY3Rpb25zQ29udGFpbmVyLnJlbW92ZUNoaWxkcmVuKCk7CiAgICAgICAgICAg
ICB0aGlzLl9jb21wdXRlZFN0eWxlUGFuZS5ib2R5RWxlbWVudC5yZW1vdmVDaGlsZHJlbigpOwog
ICAgICAgICAgICAgdGhpcy5zZWN0aW9ucyA9IHt9OwogICAgICAgICAgICAgaWYgKHVzZXJDYWxs
YmFjaykKICAgICAgICAgICAgICAgICB1c2VyQ2FsbGJhY2soKTsKLSAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgICB9Ci0KLSAgICAgICAgZnVuY3Rp
b24gY29tcHV0ZWRTdHlsZUNhbGxiYWNrKGNvbXB1dGVkU3R5bGUpCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIGRlbGV0ZSB0aGlzLl9pbm5lclVwZGF0ZUluUHJvZ3Jlc3M7Ci0KLSAgICAgICAgICAg
IGlmICh0aGlzLl9sYXN0Tm9kZUZvcklubmVyVXBkYXRlKSB7Ci0gICAgICAgICAgICAgICAgZGVs
ZXRlIHRoaXMuX2xhc3ROb2RlRm9ySW5uZXJVcGRhdGU7Ci0gICAgICAgICAgICAgICAgdGhpcy5f
aW5uZXJVcGRhdGUocmVmcmVzaCwgZWRpdGVkU2VjdGlvbiwgdXNlckNhbGxiYWNrKTsKLSAgICAg
ICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmICh0aGlz
Lm5vZGUgPT09IG5vZGUgJiYgY29tcHV0ZWRTdHlsZSkKLSAgICAgICAgICAgICAgICB0aGlzLl9y
ZWZyZXNoVXBkYXRlKG5vZGUsIGNvbXB1dGVkU3R5bGUsIGVkaXRlZFNlY3Rpb24pOwotCi0gICAg
ICAgICAgICBpZiAodXNlckNhbGxiYWNrKQotICAgICAgICAgICAgICAgIHVzZXJDYWxsYmFjaygp
OwotICAgICAgICB9Ci0KLSAgICAgICAgdGhpcy5faW5uZXJVcGRhdGVJblByb2dyZXNzID0gdHJ1
ZTsKLQotICAgICAgICBpZiAocmVmcmVzaCkKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5jc3NN
b2RlbC5nZXRDb21wdXRlZFN0eWxlQXN5bmMobm9kZS5pZCwgdGhpcy5fZm9yY2VkUHNldWRvQ2xh
c3NlcywgY29tcHV0ZWRTdHlsZUNhbGxiYWNrLmJpbmQodGhpcykpOwotICAgICAgICBlbHNlCi0g
ICAgICAgICAgICB0aGlzLl9leGVjdXRlUmVidWlsZFVwZGF0ZShub2RlLCB1c2VyQ2FsbGJhY2sp
OworICAgICAgICByZXR1cm4gdGhpcy5ub2RlOwogICAgIH0sCiAKICAgICBfc3R5bGVTaGVldE9y
TWVkaWFRdWVyeVJlc3VsdENoYW5nZWQ6IGZ1bmN0aW9uKCkKQEAgLTMyNiw3ICszNDgsNyBAQCBX
ZWJJbnNwZWN0b3IuU3R5bGVzU2lkZWJhclBhbmUucHJvdG90eXBlID0gewogICAgICAgICBpZiAo
dGhpcy5fdXNlck9wZXJhdGlvbiB8fCB0aGlzLl9pc0VkaXRpbmdTdHlsZSkKICAgICAgICAgICAg
IHJldHVybjsKIAotICAgICAgICB0aGlzLl9pbm5lclVwZGF0ZShmYWxzZSk7CisgICAgICAgIHRo
aXMuX3JlYnVpbGRVcGRhdGUoKTsKICAgICB9LAogCiAgICAgX2F0dHJpYnV0ZXNNb2RpZmllZDog
ZnVuY3Rpb24oZXZlbnQpCkBAIC0zNDAsNyArMzYyLDcgQEAgV2ViSW5zcGVjdG9yLlN0eWxlc1Np
ZGViYXJQYW5lLnByb3RvdHlwZSA9IHsKIAogICAgICAgICAvLyAiY2xhc3MiIChvciBhbnkgb3Ro
ZXIpIGF0dHJpYnV0ZSBtaWdodCBoYXZlIGNoYW5nZWQuIFVwZGF0ZSBzdHlsZXMgdW5sZXNzIHRo
ZXkgYXJlIGJlaW5nIGVkaXRlZC4KICAgICAgICAgaWYgKCF0aGlzLl9pc0VkaXRpbmdTdHlsZSAm
JiAhdGhpcy5fdXNlck9wZXJhdGlvbikKLSAgICAgICAgICAgIHRoaXMuX2lubmVyVXBkYXRlKGZh
bHNlKTsKKyAgICAgICAgICAgIHRoaXMuX3JlYnVpbGRVcGRhdGUoKTsKICAgICB9LAogCiAgICAg
X2F0dHJpYnV0ZXNSZW1vdmVkOiBmdW5jdGlvbihldmVudCkKQEAgLTM1MCw3ICszNzIsNyBAQCBX
ZWJJbnNwZWN0b3IuU3R5bGVzU2lkZWJhclBhbmUucHJvdG90eXBlID0gewogCiAgICAgICAgIC8v
ICJzdHlsZSIgYXR0cmlidXRlIG1pZ2h0IGhhdmUgYmVlbiByZW1vdmVkLgogICAgICAgICBpZiAo
IXRoaXMuX2lzRWRpdGluZ1N0eWxlICYmICF0aGlzLl91c2VyT3BlcmF0aW9uKQotICAgICAgICAg
ICAgdGhpcy5faW5uZXJVcGRhdGUoZmFsc2UpOworICAgICAgICAgICAgdGhpcy5fcmVidWlsZFVw
ZGF0ZSgpOwogICAgIH0sCiAKICAgICBfc3R5bGVJbnZhbGlkYXRlZDogZnVuY3Rpb24oZXZlbnQp
CkBAIC0zNTksMTAgKzM4MSwxMCBAQCBXZWJJbnNwZWN0b3IuU3R5bGVzU2lkZWJhclBhbmUucHJv
dG90eXBlID0gewogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIGlmICghdGhpcy5faXNF
ZGl0aW5nU3R5bGUgJiYgIXRoaXMuX3VzZXJPcGVyYXRpb24pCi0gICAgICAgICAgICB0aGlzLl9p
bm5lclVwZGF0ZShmYWxzZSk7CisgICAgICAgICAgICB0aGlzLl9yZWJ1aWxkVXBkYXRlKCk7CiAg
ICAgfSwKIAotICAgIF9yZWZyZXNoVXBkYXRlOiBmdW5jdGlvbihub2RlLCBjb21wdXRlZFN0eWxl
LCBlZGl0ZWRTZWN0aW9uKQorICAgIF9pbm5lclJlZnJlc2hVcGRhdGU6IGZ1bmN0aW9uKG5vZGUs
IGNvbXB1dGVkU3R5bGUsIGVkaXRlZFNlY3Rpb24pCiAgICAgewogICAgICAgICBmb3IgKHZhciBw
c2V1ZG9JZCBpbiB0aGlzLnNlY3Rpb25zKSB7CiAgICAgICAgICAgICB2YXIgc3R5bGVSdWxlcyA9
IHRoaXMuX3JlZnJlc2hTdHlsZVJ1bGVzKHRoaXMuc2VjdGlvbnNbcHNldWRvSWRdLCBjb21wdXRl
ZFN0eWxlKTsKQEAgLTM3MCwxMyArMzkyLDEzIEBAIFdlYkluc3BlY3Rvci5TdHlsZXNTaWRlYmFy
UGFuZS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB0aGlzLl9tYXJrVXNlZFByb3BlcnRpZXMo
c3R5bGVSdWxlcywgdXNlZFByb3BlcnRpZXMpOwogICAgICAgICAgICAgdGhpcy5fcmVmcmVzaFNl
Y3Rpb25zRm9yU3R5bGVSdWxlcyhzdHlsZVJ1bGVzLCB1c2VkUHJvcGVydGllcywgZWRpdGVkU2Vj
dGlvbik7CiAgICAgICAgIH0KLSAgICAgICAgLy8gVHJhY2UgdGhlIGNvbXB1dGVkIHN0eWxlLgot
ICAgICAgICB0aGlzLnNlY3Rpb25zWzBdWzBdLnJlYnVpbGRDb21wdXRlZFRyYWNlKHRoaXMuc2Vj
dGlvbnNbMF0pOworICAgICAgICBpZiAoY29tcHV0ZWRTdHlsZSkKKyAgICAgICAgICAgIHRoaXMu
c2VjdGlvbnNbMF1bMF0ucmVidWlsZENvbXB1dGVkVHJhY2UodGhpcy5zZWN0aW9uc1swXSk7CiAK
LSAgICAgICAgdGhpcy5fbm9kZVN0eWxlc1VwZGF0ZWRGb3JUZXN0KG5vZGUsIHRydWUpOworICAg
ICAgICB0aGlzLl9ub2RlU3R5bGVzVXBkYXRlZEZvclRlc3Qobm9kZSwgZmFsc2UpOwogICAgIH0s
CiAKLSAgICBfcmVidWlsZFVwZGF0ZTogZnVuY3Rpb24obm9kZSwgc3R5bGVzKQorICAgIF9pbm5l
clJlYnVpbGRVcGRhdGU6IGZ1bmN0aW9uKG5vZGUsIHN0eWxlcykKICAgICB7CiAgICAgICAgIHRo
aXMuX3NlY3Rpb25zQ29udGFpbmVyLnJlbW92ZUNoaWxkcmVuKCk7CiAgICAgICAgIHRoaXMuX2Nv
bXB1dGVkU3R5bGVQYW5lLmJvZHlFbGVtZW50LnJlbW92ZUNoaWxkcmVuKCk7CkBAIC0zODYsOCAr
NDA4LDkgQEAgV2ViSW5zcGVjdG9yLlN0eWxlc1NpZGViYXJQYW5lLnByb3RvdHlwZSA9IHsKICAg
ICAgICAgdGhpcy5fbWFya1VzZWRQcm9wZXJ0aWVzKHN0eWxlUnVsZXMsIHVzZWRQcm9wZXJ0aWVz
KTsKICAgICAgICAgdGhpcy5zZWN0aW9uc1swXSA9IHRoaXMuX3JlYnVpbGRTZWN0aW9uc0ZvclN0
eWxlUnVsZXMoc3R5bGVSdWxlcywgdXNlZFByb3BlcnRpZXMsIDAsIG51bGwpOwogICAgICAgICB2
YXIgYW5jaG9yRWxlbWVudCA9IHRoaXMuc2VjdGlvbnNbMF0uaW5oZXJpdGVkUHJvcGVydGllc1Nl
cGFyYXRvckVsZW1lbnQ7Ci0gICAgICAgIC8vIFRyYWNlIHRoZSBjb21wdXRlZCBzdHlsZS4KLSAg
ICAgICAgdGhpcy5zZWN0aW9uc1swXVswXS5yZWJ1aWxkQ29tcHV0ZWRUcmFjZSh0aGlzLnNlY3Rp
b25zWzBdKTsKKworICAgICAgICBpZiAoc3R5bGVzLmNvbXB1dGVkU3R5bGUpICAgICAgICAKKyAg
ICAgICAgICAgIHRoaXMuc2VjdGlvbnNbMF1bMF0ucmVidWlsZENvbXB1dGVkVHJhY2UodGhpcy5z
ZWN0aW9uc1swXSk7CiAKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHlsZXMucHNldWRv
RWxlbWVudHMubGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAgIHZhciBwc2V1ZG9FbGVtZW50Q1NT
UnVsZXMgPSBzdHlsZXMucHNldWRvRWxlbWVudHNbaV07CkBAIC00MDgsMTAgKzQzMSwxMCBAQCBX
ZWJJbnNwZWN0b3IuU3R5bGVzU2lkZWJhclBhbmUucHJvdG90eXBlID0gewogICAgICAgICAgICAg
dGhpcy5zZWN0aW9uc1twc2V1ZG9JZF0gPSB0aGlzLl9yZWJ1aWxkU2VjdGlvbnNGb3JTdHlsZVJ1
bGVzKHN0eWxlUnVsZXMsIHVzZWRQcm9wZXJ0aWVzLCBwc2V1ZG9JZCwgYW5jaG9yRWxlbWVudCk7
CiAgICAgICAgIH0KIAotICAgICAgICB0aGlzLl9ub2RlU3R5bGVzVXBkYXRlZEZvclRlc3Qobm9k
ZSwgZmFsc2UpOworICAgICAgICB0aGlzLl9ub2RlU3R5bGVzVXBkYXRlZEZvclRlc3Qobm9kZSwg
dHJ1ZSk7CiAgICAgfSwKIAotICAgIF9ub2RlU3R5bGVzVXBkYXRlZEZvclRlc3Q6IGZ1bmN0aW9u
KG5vZGUsIHJlZnJlc2gpCisgICAgX25vZGVTdHlsZXNVcGRhdGVkRm9yVGVzdDogZnVuY3Rpb24o
bm9kZSwgcmVidWlsZCkKICAgICB7CiAgICAgICAgIC8vIFRlc3RzIG92ZXJyaWRlIHRoaXMgbWV0
aG9kLgogICAgIH0sCkBAIC03ODMsNyArODA2LDcgQEAgV2ViSW5zcGVjdG9yLlN0eWxlc1NpZGVi
YXJQYW5lLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8
IHRoaXMuX2VsZW1lbnRTdGF0ZVBhbmUuaW5wdXRzLmxlbmd0aDsgKytpKQogICAgICAgICAgICAg
ICAgICAgICB0aGlzLl9lbGVtZW50U3RhdGVQYW5lLmlucHV0c1tpXS5jaGVja2VkID0gZmFsc2U7
CiAgICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuX2ZvcmNlZFBzZXVkb0NsYXNzZXM7Ci0gICAg
ICAgICAgICAgICAgdGhpcy5faW5uZXJVcGRhdGUoZmFsc2UpOworICAgICAgICAgICAgICAgIHRo
aXMuX3JlYnVpbGRVcGRhdGUoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0sCkBA
IC04MDUsNyArODI4LDcgQEAgV2ViSW5zcGVjdG9yLlN0eWxlc1NpZGViYXJQYW5lLnByb3RvdHlw
ZSA9IHsKICAgICAgICAgICAgICAgICAgICAgcHNldWRvQ2xhc3Nlcy5wdXNoKGlucHV0c1tpXS5z
dGF0ZSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICB0aGlzLl9mb3JjZWRQc2V1ZG9DbGFz
c2VzID0gcHNldWRvQ2xhc3Nlcy5sZW5ndGggPyBwc2V1ZG9DbGFzc2VzIDogdW5kZWZpbmVkOwot
ICAgICAgICAgICAgdGhpcy5faW5uZXJVcGRhdGUoZmFsc2UpOworICAgICAgICAgICAgdGhpcy5f
cmVidWlsZFVwZGF0ZSgpOwogICAgICAgICB9CiAKICAgICAgICAgZnVuY3Rpb24gY3JlYXRlQ2hl
Y2tib3goc3RhdGUpCkBAIC04MzgsNyArODYxLDcgQEAgV2ViSW5zcGVjdG9yLlN0eWxlc1NpZGVi
YXJQYW5lLnByb3RvdHlwZSA9IHsKIAogICAgIF9zaG93VXNlckFnZW50U3R5bGVzU2V0dGluZ0No
YW5nZWQ6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIHRoaXMuX2lubmVyVXBkYXRlKGZhbHNl
KTsKKyAgICAgICAgdGhpcy5fcmVidWlsZFVwZGF0ZSgpOwogICAgIH0KIH0KIApAQCAtODgxLDcg
KzkwNCw3IEBAIFdlYkluc3BlY3Rvci5Db21wdXRlZFN0eWxlU2lkZWJhclBhbmUucHJvdG90eXBl
ID0gewogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLlNpZGViYXJQYW5lLnByb3RvdHlwZS5leHBh
bmQuY2FsbCh0aGlzKTsKICAgICAgICAgfQogCi0gICAgICAgIHRoaXMuX3N0eWxlc1NpZGViYXJQ
YW5lLl9yZWZyZXNoQ29tcHV0ZWRTdHlsZVNlY3Rpb24oY2FsbGJhY2suYmluZCh0aGlzKSk7Cisg
ICAgICAgIHRoaXMuX3N0eWxlc1NpZGViYXJQYW5lLl9yZWZyZXNoVXBkYXRlKG51bGwsIHRydWUs
IGNhbGxiYWNrLmJpbmQodGhpcykpOwogICAgIH0KIH0KIApAQCAtMTg2Niw3ICsxODg5LDcgQEAg
V2ViSW5zcGVjdG9yLlN0eWxlUHJvcGVydHlUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAg
X3VwZGF0ZVBhbmU6IGZ1bmN0aW9uKHVzZXJDYWxsYmFjaykKICAgICB7CiAgICAgICAgIGlmICh0
aGlzLnRyZWVPdXRsaW5lICYmIHRoaXMudHJlZU91dGxpbmUuc2VjdGlvbiAmJiB0aGlzLnRyZWVP
dXRsaW5lLnNlY3Rpb24ucGFuZSkKLSAgICAgICAgICAgIHRoaXMudHJlZU91dGxpbmUuc2VjdGlv
bi5wYW5lLl9pbm5lclVwZGF0ZSh0cnVlLCB0aGlzLnRyZWVPdXRsaW5lLnNlY3Rpb24sIHVzZXJD
YWxsYmFjayk7CisgICAgICAgICAgICB0aGlzLnRyZWVPdXRsaW5lLnNlY3Rpb24ucGFuZS5fcmVm
cmVzaFVwZGF0ZSh0aGlzLnRyZWVPdXRsaW5lLnNlY3Rpb24sIGZhbHNlLCB1c2VyQ2FsbGJhY2sp
OwogICAgICAgICBlbHNlICB7CiAgICAgICAgICAgICBpZiAodXNlckNhbGxiYWNrKQogICAgICAg
ICAgICAgICAgIHVzZXJDYWxsYmFjaygpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDJlODJiMjA3MGVjZTI0M2M5Zjc5NDRm
ZjMxNDRlZGYzNjc2NmExOWIuLjMwYzE5NjExMDMzY2IzNTljZmY0NDY2YWYyYTZiN2I2NDcyYjRk
MjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0wMi0xNiAgUGF2ZWwgRmVsZG1hbiAgPHBm
ZWxkbWFuQGdvb2dsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjogc3BsaXQgaW5uZXJV
cGRhdGUgaW50byByZWJ1aWxkVXBkYXRlIGFuZCByZWZyZXNoVXBkYXRlLCBtYWtlIGNvbXB1dGVk
IHN0eWxlcyBsb2FkIGxhemlseS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTc4ODI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzOgorICAg
ICAgICAoaW5pdGlhbGl6ZV9FbGVtZW50VGVzdC5JbnNwZWN0b3JUZXN0LndhaXRGb3JTdHlsZXMp
OgorICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvdW5kby1hZGQtcHJvcGVydHkuaHRtbDoKKyAg
ICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzL3VuZG8tY2hhbmdlLXByb3BlcnR5Lmh0bWw6CisgICAg
ICAgICogaW5zcGVjdG9yL3N0eWxlcy91cGRhdGVzLWR1cmluZy1kb20tdHJhdmVyc2FsLmh0bWw6
CisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy91cGRhdGVzLXRocm90dGxlZC5odG1sOgorCiAy
MDEyLTAyLTE2ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAg
ICAgICBbR1RLXSBmYXN0L2V2ZW50cy9kcmFnLWRhdGFUcmFuc2Zlci1saXZlLWF0dHJpYnV0ZXMu
aHRtbCBmYWlscwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
ZWxlbWVudHMtdGVzdC5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2VsZW1l
bnRzLXRlc3QuanMKaW5kZXggMDgwYmU4OGIyMjNiNmZhODI2M2ViMjlmNGYwMGExY2NiYjE3MzAz
Mi4uYzQ0ODIyZTA4ZTNhMjNiYTliZWE4OWE3ZWE4ZTA5NjAwMWRkOWRlMyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtdGVzdC5qcworKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9lbGVtZW50cy10ZXN0LmpzCkBAIC02OSwx
MyArNjksMTMgQEAgSW5zcGVjdG9yVGVzdC5zZWxlY3ROb2RlV2l0aElkID0gZnVuY3Rpb24oaWRW
YWx1ZSwgY2FsbGJhY2spCiAgICAgSW5zcGVjdG9yVGVzdC5ub2RlV2l0aElkKGlkVmFsdWUsIG9u
Tm9kZUZvdW5kKTsKIH0KIAotSW5zcGVjdG9yVGVzdC53YWl0Rm9yU3R5bGVzID0gZnVuY3Rpb24o
aWRWYWx1ZSwgY2FsbGJhY2spCitJbnNwZWN0b3JUZXN0LndhaXRGb3JTdHlsZXMgPSBmdW5jdGlv
bihpZFZhbHVlLCBjYWxsYmFjaywgcmVxdWlyZVJlYnVpbGQpCiB7CiAgICAgY2FsbGJhY2sgPSBJ
bnNwZWN0b3JUZXN0LnNhZmVXcmFwKGNhbGxiYWNrKTsKIAotICAgIChmdW5jdGlvbiBzbmlmZihu
b2RlKQorICAgIChmdW5jdGlvbiBzbmlmZihub2RlLCByZWJ1aWxkKQogICAgIHsKLSAgICAgICAg
aWYgKG5vZGUgJiYgbm9kZS5nZXRBdHRyaWJ1dGUoImlkIikgPT09IGlkVmFsdWUpIHsKKyAgICAg
ICAgaWYgKChyZWJ1aWxkIHx8ICFyZXF1aXJlUmVidWlsZCkgJiYgbm9kZSAmJiBub2RlLmdldEF0
dHJpYnV0ZSgiaWQiKSA9PT0gaWRWYWx1ZSkgewogICAgICAgICAgICAgY2FsbGJhY2soKTsKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtOTEsNyArOTEsNyBAQCBJbnNwZWN0b3JU
ZXN0LnNlbGVjdE5vZGVBbmRXYWl0Rm9yU3R5bGVzID0gZnVuY3Rpb24oaWRWYWx1ZSwgY2FsbGJh
Y2spCiAKICAgICB2YXIgdGFyZ2V0Tm9kZTsKIAotICAgIEluc3BlY3RvclRlc3Qud2FpdEZvclN0
eWxlcyhpZFZhbHVlLCBzdHlsZXNVcGRhdGVkKTsKKyAgICBJbnNwZWN0b3JUZXN0LndhaXRGb3JT
dHlsZXMoaWRWYWx1ZSwgc3R5bGVzVXBkYXRlZCwgdHJ1ZSk7CiAgICAgSW5zcGVjdG9yVGVzdC5z
ZWxlY3ROb2RlV2l0aElkKGlkVmFsdWUsIG5vZGVTZWxlY3RlZCk7CiAKICAgICBmdW5jdGlvbiBu
b2RlU2VsZWN0ZWQobm9kZSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHls
ZXMvdW5kby1hZGQtcHJvcGVydHkuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMv
dW5kby1hZGQtcHJvcGVydHkuaHRtbAppbmRleCAxOGE3MGIxYTlmMDU4NGEyZjBmYjZmYjkwZGFj
MmEwYzA3ZTEyYmZmLi5jNWVkYzQ5MTU1NDAxOTBjYzliNzc4Y2EzMWFkNjRiODJkY2QwZGM2IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3VuZG8tYWRkLXByb3BlcnR5
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy91bmRvLWFkZC1wcm9wZXJ0
eS5odG1sCkBAIC00MSw3ICs0MSw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICBJbnNwZWN0
b3JUZXN0LmR1bXBTZWxlY3RlZEVsZW1lbnRTdHlsZXModHJ1ZSk7CiAKICAgICAgICAgV2ViSW5z
cGVjdG9yLmRvbUFnZW50LnJlZG8oKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5zZWxlY3ROb2Rl
QW5kV2FpdEZvclN0eWxlcygib3RoZXIiLCBzdGVwNCk7CisgICAgICAgIEluc3BlY3RvclRlc3Qu
c2VsZWN0Tm9kZUFuZFdhaXRGb3JTdHlsZXMoImNvbnRhaW5lciIsIHN0ZXA0KTsKICAgICB9CiAK
ICAgICBmdW5jdGlvbiBzdGVwNCgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
c3R5bGVzL3VuZG8tY2hhbmdlLXByb3BlcnR5Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
c3R5bGVzL3VuZG8tY2hhbmdlLXByb3BlcnR5Lmh0bWwKaW5kZXggZWE5Y2Q0YjQ3NjM5ZjU4MTg2
YmQwMDI4NmRiNDg0MzE5YjA0YTg1ZC4uNTM0MTAyZmJkN2QyMDlmNmZmY2VlNTdhZGMwYzIzZTk4
NDUyNzRhNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy91bmRvLWNo
YW5nZS1wcm9wZXJ0eS5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvdW5k
by1jaGFuZ2UtcHJvcGVydHkuaHRtbApAQCAtNDAsNyArNDAsNyBAQCBmdW5jdGlvbiB0ZXN0KCkK
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2VsZWN0ZWRFbGVtZW50U3R5bGVzKHRydWUpOwog
CiAgICAgICAgIFdlYkluc3BlY3Rvci5kb21BZ2VudC5yZWRvKCk7Ci0gICAgICAgIEluc3BlY3Rv
clRlc3Quc2VsZWN0Tm9kZUFuZFdhaXRGb3JTdHlsZXMoIm90aGVyIiwgc3RlcDQpOworICAgICAg
ICBJbnNwZWN0b3JUZXN0LnNlbGVjdE5vZGVBbmRXYWl0Rm9yU3R5bGVzKCJjb250YWluZXIiLCBz
dGVwNCk7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gc3RlcDQoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy91cGRhdGVzLWR1cmluZy1kb20tdHJhdmVyc2FsLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3VwZGF0ZXMtZHVyaW5nLWRvbS10cmF2ZXJz
YWwuaHRtbAppbmRleCBiNjAxYWZkNDQ5OWQ4YTZkNWM0YTkxMmIyMTcyNzBhZGMxMTcyOGE5Li4z
YzZmYzBmYTY1ZmM2ZGYwNDQwOTc3ZTE2NDgzNzBjOTZkNjNiYzMxIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3VwZGF0ZXMtZHVyaW5nLWRvbS10cmF2ZXJzYWwuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3VwZGF0ZXMtZHVyaW5nLWRvbS10
cmF2ZXJzYWwuaHRtbApAQCAtMTMsNyArMTMsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICBJbnNw
ZWN0b3JUZXN0LnNlbGVjdE5vZGVBbmRXYWl0Rm9yU3R5bGVzKCJpbnNwZWN0ZWQiLCBzZWxlY3RD
YWxsYmFjayk7CiAgICAgZnVuY3Rpb24gc2VsZWN0Q2FsbGJhY2soKQogICAgIHsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5TdHlsZXNTaWRlYmFyUGFuZS5w
cm90b3R5cGUsICJfcmVidWlsZFVwZGF0ZSIsIHNuaWZmVXBkYXRlLCB0cnVlKTsKKyAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5TdHlsZXNTaWRlYmFyUGFuZS5w
cm90b3R5cGUsICJfaW5uZXJSZWJ1aWxkVXBkYXRlIiwgc25pZmZVcGRhdGUsIHRydWUpOwogICAg
ICAgICB2YXIgZWxlbWVudCA9IFdlYkluc3BlY3Rvci5wYW5lbHMuZWxlbWVudHMudHJlZU91dGxp
bmUuZWxlbWVudDsKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlkb3duQ291bnQ7ICsr
aSkKICAgICAgICAgICAgIGVsZW1lbnQuZGlzcGF0Y2hFdmVudChJbnNwZWN0b3JUZXN0LmNyZWF0
ZUtleUV2ZW50KCJVcCIpKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHls
ZXMvdXBkYXRlcy10aHJvdHRsZWQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMv
dXBkYXRlcy10aHJvdHRsZWQuaHRtbAppbmRleCBhOWQ1NGRmNWQ2NjdhYTZjNDQ0ZDU5NmFkZjE4
YjFlNjAzNDk3ZGEzLi4wY2E0YmYyOWYyNGJmMTEzZTg3YjRmOTQ0NDU3YTVmM2QxYzc4ZGViIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3VwZGF0ZXMtdGhyb3R0bGVk
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy91cGRhdGVzLXRocm90dGxl
ZC5odG1sCkBAIC0xMyw3ICsxMyw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIEluc3BlY3RvclRl
c3Quc2VsZWN0Tm9kZUFuZFdhaXRGb3JTdHlsZXMoImluc3BlY3RlZCIsIHNlbGVjdENhbGxiYWNr
KTsKICAgICBmdW5jdGlvbiBzZWxlY3RDYWxsYmFjaygpCiAgICAgewotICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLlN0eWxlc1NpZGViYXJQYW5lLnByb3RvdHlw
ZSwgIl9yZWJ1aWxkVXBkYXRlIiwgc25pZmZSZWJ1aWxkLCB0cnVlKTsKKyAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRTbmlmZmVyKFdlYkluc3BlY3Rvci5TdHlsZXNTaWRlYmFyUGFuZS5wcm90b3R5
cGUsICJfaW5uZXJSZWJ1aWxkVXBkYXRlIiwgc25pZmZSZWJ1aWxkLCB0cnVlKTsKICAgICAgICAg
dmFyIHN0eWxlc1BhbmUgPSBXZWJJbnNwZWN0b3IucGFuZWxzLmVsZW1lbnRzLnNpZGViYXJQYW5l
cy5zdHlsZXM7CiAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgVVBEQVRFX0NPVU5UOyArK2kp
CiAgICAgICAgICAgICBzdHlsZXNQYW5lLnVwZGF0ZShzdHlsZXNQYW5lLm5vZGUsIHRydWUpOwo=
</data>
<flag name="review"
          id="129516"
          type_id="1"
          status="+"
          setter="vsevik"
    />
          </attachment>
      

    </bug>

</bugzilla>