<?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>146866</bug_id>
          
          <creation_ts>2015-07-10 18:55:21 -0700</creation_ts>
          <short_desc>Web Inspector: Improve runtime of pseudo-element sidebar style ordering</short_desc>
          <delta_ts>2015-07-11 15:31:08 -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</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>jonowells</cc>
    
    <cc>mattbaker</cc>
    
    <cc>nvasilyev</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1108843</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2015-07-10 18:55:21 -0700</bug_when>
    <thetext>Currently, the algorithm determining where the pseudo-element styles appear in the sidebar has a runtime of O(n^2).  This can be improved to O(n) by getting the most specific selector for each rule when that rule is created.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108844</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-07-10 18:55:53 -0700</bug_when>
    <thetext>&lt;rdar://problem/21778637&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108845</commentid>
    <comment_count>2</comment_count>
      <attachid>256636</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2015-07-10 18:58:29 -0700</bug_when>
    <thetext>Created attachment 256636
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108859</commentid>
    <comment_count>3</comment_count>
      <attachid>256636</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2015-07-10 19:55:44 -0700</bug_when>
    <thetext>Comment on attachment 256636
Patch

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

&gt; Source/WebInspectorUI/UserInterface/Models/CSSRule.js:83
&gt; +        this._mostSpecificSelector = this._determineMostSpecificSelector();

This could be in the getter and called when !this._mostSpecificSelector. That way it is as lazy as possible.

&gt; Source/WebInspectorUI/UserInterface/Models/CSSRule.js:193
&gt; +        if (!this._mostSpecificSelector)

This would need to use the getter if you make it lazy.

&gt; Source/WebInspectorUI/UserInterface/Models/CSSRule.js:196
&gt; +        return this._mostSpecificSelector.isGreaterThan(otherSelector);

Ditto.

&gt; Source/WebInspectorUI/UserInterface/Models/CSSRule.js:211
&gt; +            return;

This should be: return null;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108908</commentid>
    <comment_count>4</comment_count>
      <attachid>256651</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2015-07-11 00:02:29 -0700</bug_when>
    <thetext>Created attachment 256651
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108913</commentid>
    <comment_count>5</comment_count>
      <attachid>256651</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2015-07-11 00:58:55 -0700</bug_when>
    <thetext>Comment on attachment 256651
Patch

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

&gt; Source/WebInspectorUI/UserInterface/Models/CSSRule.js:199
&gt; +            return;

return false; or return true;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108952</commentid>
    <comment_count>6</comment_count>
      <attachid>256651</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2015-07-11 12:18:00 -0700</bug_when>
    <thetext>Comment on attachment 256651
Patch

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Models/CSSRule.js:199
&gt;&gt; +            return;
&gt; 
&gt; return false; or return true;?

This is meant to be &quot;return false;&quot;.  Is it necessary to specify false (since undefined is falsy)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108953</commentid>
    <comment_count>7</comment_count>
      <attachid>256651</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2015-07-11 12:21:17 -0700</bug_when>
    <thetext>Comment on attachment 256651
Patch

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

&gt;&gt;&gt; Source/WebInspectorUI/UserInterface/Models/CSSRule.js:199
&gt;&gt;&gt; +            return;
&gt;&gt; 
&gt;&gt; return false; or return true;?
&gt; 
&gt; This is meant to be &quot;return false;&quot;.  Is it necessary to specify false (since undefined is falsy)?

The JIT is happier when types don&apos;t change in the flow. We also like to be explicit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108972</commentid>
    <comment_count>8</comment_count>
      <attachid>256667</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2015-07-11 14:33:50 -0700</bug_when>
    <thetext>Created attachment 256667
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108988</commentid>
    <comment_count>9</comment_count>
      <attachid>256667</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-07-11 15:31:04 -0700</bug_when>
    <thetext>Comment on attachment 256667
Patch

Clearing flags on attachment: 256667

Committed r186717: &lt;http://trac.webkit.org/changeset/186717&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108989</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-07-11 15:31:08 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256636</attachid>
            <date>2015-07-10 18:58:29 -0700</date>
            <delta_ts>2015-07-11 00:02:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146866-20150710185726.patch</filename>
            <type>text/plain</type>
            <size>4837</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDQ5MzZkOTJhZWM4YzViYzZjNTM5OWJhMTU2NTdh
N2Q5ZmJhODdjOGIuLmFhMjFhMTUwN2RiZjAzNGE3MTBiNDEwNWY3MjA3MTYwOTUzMmE2YWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE1LTA3LTEwICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBJ
bXByb3ZlIHJ1bnRpbWUgb2YgcHNldWRvLWVsZW1lbnQgc2lkZWJhciBzdHlsZSBvcmRlcmluZwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2ODY2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVc2VySW50
ZXJmYWNlL01vZGVscy9DU1NSdWxlLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1J1bGUu
cHJvdG90eXBlLnVwZGF0ZSk6IERldGVybWluZXMgdGhlIG1vc3Qgc3BlY2lmaWMgc2VsZWN0b3Ig
YW5kIHNhdmVzIGl0IHRvIGEgdmFyaWFibGUuCisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTUnVs
ZS5wcm90b3R5cGUuZ2V0IG1vc3RTcGVjaWZpY1NlbGVjdG9yKTogUmV0dXJucyB0aGUgbW9zdCBz
cGVjaWZpYyBzZWxlY3Rvci4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NSdWxlLnByb3RvdHlw
ZS5zZWxlY3RvcklzR3JlYXRlcik6IENvbXBhcmVzIHRoZSBtb3N0IHNwZWNpZmljIHNlbGVjdG9y
IHRvIGEgZ2l2ZW4gc2VsZWN0b3IuCisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTUnVsZS5wcm90
b3R5cGUuX2RldGVybWluZU1vc3RTcGVjaWZpY1NlbGVjdG9yKToKKyAgICAgICAgU2VhcmNoZXMg
dGhyb3VnaCB0aGUgc2VsZWN0b3IgbGlzdCB0byBmaW5kIGFuZCByZXR1cm4gdGhlIHNlbGVjdG9y
IHRoYXQgaXMgdGhlIG1vc3Qgc3BlY2lmaWMuCisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTUnVs
ZSk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9SdWxlc1N0eWxlRGV0YWlsc1BhbmVs
LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJ1bGVzU3R5bGVEZXRhaWxzUGFuZWwucHJvdG90
eXBlLnJlZnJlc2gpOgorCiAyMDE1LTA3LTEwICBUaW1vdGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFw
cGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBVc2UgLWFwcGxlLXN5c3RlbSBpbnN0
ZWFkIG9mIC13ZWJraXQtc3lzdGVtLWZvbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DU1NSdWxlLmpzIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU1J1bGUuanMKaW5kZXggNjExZDNiOWZlYWJmMDQ4
MzkwMGJiMTU5MGM1NjI1OGY3NTg4ZWU0YS4uMTU2ODQ1NTliZmMyN2RkOWExZWMzMWFlYmNlMWU5
YTBjYzFiYmZkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvTW9kZWxzL0NTU1J1bGUuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvTW9kZWxzL0NTU1J1bGUuanMKQEAgLTgwLDYgKzgwLDcgQEAgV2ViSW5zcGVjdG9yLkNT
U1J1bGUgPSBjbGFzcyBDU1NSdWxlIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAogICAgICAg
ICB0aGlzLl9zZWxlY3RvclRleHQgPSBzZWxlY3RvclRleHQ7CiAgICAgICAgIHRoaXMuX3NlbGVj
dG9ycyA9IHNlbGVjdG9yczsKICAgICAgICAgdGhpcy5fbWF0Y2hlZFNlbGVjdG9ySW5kaWNlcyA9
IG1hdGNoZWRTZWxlY3RvckluZGljZXM7CisgICAgICAgIHRoaXMuX21vc3RTcGVjaWZpY1NlbGVj
dG9yID0gdGhpcy5fZGV0ZXJtaW5lTW9zdFNwZWNpZmljU2VsZWN0b3IoKTsKICAgICAgICAgdGhp
cy5fc3R5bGUgPSBzdHlsZTsKICAgICAgICAgdGhpcy5fbWVkaWFMaXN0ID0gbWVkaWFMaXN0Owog
CkBAIC0xODIsMzAgKzE4MywxNyBAQCBXZWJJbnNwZWN0b3IuQ1NTUnVsZSA9IGNsYXNzIENTU1J1
bGUgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAgICAgICAgIHJldHVybiBPYmplY3Quc2hh
bGxvd0VxdWFsKHRoaXMuX2lkLCBydWxlLmlkKTsKICAgICB9CiAKLSAgICBzZWxlY3RvcklzR3Jl
YXRlcihvdGhlclNlbGVjdG9ycykKKyAgICBnZXQgbW9zdFNwZWNpZmljU2VsZWN0b3IoKQogICAg
IHsKLSAgICAgICAgaWYgKCFvdGhlclNlbGVjdG9ycyB8fCAhb3RoZXJTZWxlY3RvcnMubGVuZ3Ro
KQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICAgICAgdmFyIHNlbGVjdG9ySXNHcmVh
dGVyID0gdHJ1ZTsKLQotICAgICAgICB2YXIgc2VsZWN0b3JzID0gdGhpcy5tYXRjaGVkU2VsZWN0
b3JzOwotICAgICAgICBpZiAoIXNlbGVjdG9ycy5sZW5ndGgpCi0gICAgICAgICAgICBzZWxlY3Rv
cnMgPSB0aGlzLl9zZWxlY3RvcnM7Ci0KLSAgICAgICAgZm9yICh2YXIgc2VsZWN0b3Igb2Ygc2Vs
ZWN0b3JzKSB7Ci0gICAgICAgICAgICBmb3IgKHZhciBvdGhlclNlbGVjdG9yIG9mIG90aGVyU2Vs
ZWN0b3JzKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHNlbGVjdG9yLmlzR3JlYXRlclRoYW4ob3Ro
ZXJTZWxlY3RvcikpCi0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgICAg
ICAgICAgc2VsZWN0b3JJc0dyZWF0ZXIgPSBmYWxzZTsKLSAgICAgICAgICAgIH0KKyAgICAgICAg
cmV0dXJuIHRoaXMuX21vc3RTcGVjaWZpY1NlbGVjdG9yOworICAgIH0KIAotICAgICAgICAgICAg
aWYgKHNlbGVjdG9ySXNHcmVhdGVyKQotICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAg
ICAgICB9CisgICAgc2VsZWN0b3JJc0dyZWF0ZXIob3RoZXJTZWxlY3RvcikKKyAgICB7CisgICAg
ICAgIGlmICghdGhpcy5fbW9zdFNwZWNpZmljU2VsZWN0b3IpCisgICAgICAgICAgICByZXR1cm47
CiAKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gdGhpcy5fbW9zdFNwZWNp
ZmljU2VsZWN0b3IuaXNHcmVhdGVyVGhhbihvdGhlclNlbGVjdG9yKTsKICAgICB9CiAKICAgICAv
LyBQcm90ZWN0ZWQKQEAgLTIxNCw2ICsyMDIsMjggQEAgV2ViSW5zcGVjdG9yLkNTU1J1bGUgPSBj
bGFzcyBDU1NSdWxlIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAogICAgIHsKICAgICAgICAg
cmV0dXJuIHRoaXMuX25vZGVTdHlsZXM7CiAgICAgfQorCisgICAgLy8gUHJpdmF0ZQorCisgICAg
X2RldGVybWluZU1vc3RTcGVjaWZpY1NlbGVjdG9yKCkKKyAgICB7CisgICAgICAgIGlmICghdGhp
cy5fc2VsZWN0b3JzIHx8ICF0aGlzLl9zZWxlY3RvcnMubGVuZ3RoKQorICAgICAgICAgICAgcmV0
dXJuOworCisgICAgICAgIHZhciBzZWxlY3RvcnMgPSB0aGlzLm1hdGNoZWRTZWxlY3RvcnM7CisK
KyAgICAgICAgaWYgKCFzZWxlY3RvcnMubGVuZ3RoKQorICAgICAgICAgICAgc2VsZWN0b3JzID0g
dGhpcy5fc2VsZWN0b3JzOworCisgICAgICAgIHZhciBzcGVjaWZpY1NlbGVjdG9yID0gc2VsZWN0
b3JzWzBdOworCisgICAgICAgIGZvciAodmFyIHNlbGVjdG9yIG9mIHNlbGVjdG9ycykgeworICAg
ICAgICAgICAgaWYgKHNlbGVjdG9yLmlzR3JlYXRlclRoYW4oc3BlY2lmaWNTZWxlY3RvcikpCisg
ICAgICAgICAgICAgICAgc3BlY2lmaWNTZWxlY3RvciA9IHNlbGVjdG9yOworICAgICAgICB9CisK
KyAgICAgICAgcmV0dXJuIHNwZWNpZmljU2VsZWN0b3I7CisgICAgfQogfTsKIAogV2ViSW5zcGVj
dG9yLkNTU1J1bGUuRXZlbnQgPSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9SdWxlc1N0eWxlRGV0YWlsc1BhbmVsLmpzIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUnVsZXNTdHlsZURldGFpbHNQYW5lbC5q
cwppbmRleCA3YmI0YzU2ODc1MGI3ZTQyZDNjYjZkZWVmMmVmOGZiYmVlY2U5YzkzLi5hNjc2ZGQ0
ZmU1MzhhZGMzZmM5ZTU3OGJkZDliN2QyZDc2OTk4Y2Q3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SdWxlc1N0eWxlRGV0YWlsc1BhbmVsLmpz
CisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1J1bGVzU3R5
bGVEZXRhaWxzUGFuZWwuanMKQEAgLTI3OSw3ICsyNzksNyBAQCBXZWJJbnNwZWN0b3IuUnVsZXNT
dHlsZURldGFpbHNQYW5lbCA9IGNsYXNzIFJ1bGVzU3R5bGVEZXRhaWxzUGFuZWwgZXh0ZW5kcyBX
ZWJJbgogICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAg
ICAgIH0KIAotICAgICAgICAgICAgICAgICAgICBpZiAobWF0Y2hlZFNlbGVjdG9yVGV4dC5pbmNs
dWRlcyhwc2V1ZG9FbGVtZW50LnNlbGVjdG9yVGV4dCkgfHwgIW93bmVyUnVsZS5zZWxlY3Rvcklz
R3JlYXRlcihwc2V1ZG9FbGVtZW50LnN0eWxlLm93bmVyUnVsZS5zZWxlY3RvcnMpKQorICAgICAg
ICAgICAgICAgICAgICBpZiAobWF0Y2hlZFNlbGVjdG9yVGV4dC5pbmNsdWRlcyhwc2V1ZG9FbGVt
ZW50LnNlbGVjdG9yVGV4dCkgfHwgIW93bmVyUnVsZS5zZWxlY3RvcklzR3JlYXRlcihwc2V1ZG9F
bGVtZW50LnN0eWxlLm93bmVyUnVsZS5tb3N0U3BlY2lmaWNTZWxlY3RvcikpCiAgICAgICAgICAg
ICAgICAgICAgICAgICBwc2V1ZG9FbGVtZW50Lmxhc3RNYXRjaGluZ1NlbGVjdG9yID0gbWF0Y2hl
ZFNlbGVjdG9yVGV4dDsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256651</attachid>
            <date>2015-07-11 00:02:29 -0700</date>
            <delta_ts>2015-07-11 14:33:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146866-20150711000126.patch</filename>
            <type>text/plain</type>
            <size>4983</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDQ5MzZkOTJhZWM4YzViYzZjNTM5OWJhMTU2NTdh
N2Q5ZmJhODdjOGIuLmFhMjFhMTUwN2RiZjAzNGE3MTBiNDEwNWY3MjA3MTYwOTUzMmE2YWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE1LTA3LTEwICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBJ
bXByb3ZlIHJ1bnRpbWUgb2YgcHNldWRvLWVsZW1lbnQgc2lkZWJhciBzdHlsZSBvcmRlcmluZwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2ODY2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVc2VySW50
ZXJmYWNlL01vZGVscy9DU1NSdWxlLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1J1bGUu
cHJvdG90eXBlLnVwZGF0ZSk6IERldGVybWluZXMgdGhlIG1vc3Qgc3BlY2lmaWMgc2VsZWN0b3Ig
YW5kIHNhdmVzIGl0IHRvIGEgdmFyaWFibGUuCisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTUnVs
ZS5wcm90b3R5cGUuZ2V0IG1vc3RTcGVjaWZpY1NlbGVjdG9yKTogUmV0dXJucyB0aGUgbW9zdCBz
cGVjaWZpYyBzZWxlY3Rvci4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NSdWxlLnByb3RvdHlw
ZS5zZWxlY3RvcklzR3JlYXRlcik6IENvbXBhcmVzIHRoZSBtb3N0IHNwZWNpZmljIHNlbGVjdG9y
IHRvIGEgZ2l2ZW4gc2VsZWN0b3IuCisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTUnVsZS5wcm90
b3R5cGUuX2RldGVybWluZU1vc3RTcGVjaWZpY1NlbGVjdG9yKToKKyAgICAgICAgU2VhcmNoZXMg
dGhyb3VnaCB0aGUgc2VsZWN0b3IgbGlzdCB0byBmaW5kIGFuZCByZXR1cm4gdGhlIHNlbGVjdG9y
IHRoYXQgaXMgdGhlIG1vc3Qgc3BlY2lmaWMuCisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTUnVs
ZSk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9SdWxlc1N0eWxlRGV0YWlsc1BhbmVs
LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJ1bGVzU3R5bGVEZXRhaWxzUGFuZWwucHJvdG90
eXBlLnJlZnJlc2gpOgorCiAyMDE1LTA3LTEwICBUaW1vdGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFw
cGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBVc2UgLWFwcGxlLXN5c3RlbSBpbnN0
ZWFkIG9mIC13ZWJraXQtc3lzdGVtLWZvbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DU1NSdWxlLmpzIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU1J1bGUuanMKaW5kZXggNjExZDNiOWZlYWJmMDQ4
MzkwMGJiMTU5MGM1NjI1OGY3NTg4ZWU0YS4uYTUyYzM1NTljNDdmOWZkNjA3Y2VlNjJhMjRiNWJh
YTA1MWI1NzcyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvTW9kZWxzL0NTU1J1bGUuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvTW9kZWxzL0NTU1J1bGUuanMKQEAgLTgwLDYgKzgwLDcgQEAgV2ViSW5zcGVjdG9yLkNT
U1J1bGUgPSBjbGFzcyBDU1NSdWxlIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAogICAgICAg
ICB0aGlzLl9zZWxlY3RvclRleHQgPSBzZWxlY3RvclRleHQ7CiAgICAgICAgIHRoaXMuX3NlbGVj
dG9ycyA9IHNlbGVjdG9yczsKICAgICAgICAgdGhpcy5fbWF0Y2hlZFNlbGVjdG9ySW5kaWNlcyA9
IG1hdGNoZWRTZWxlY3RvckluZGljZXM7CisgICAgICAgIHRoaXMuX21vc3RTcGVjaWZpY1NlbGVj
dG9yID0gbnVsbDsKICAgICAgICAgdGhpcy5fc3R5bGUgPSBzdHlsZTsKICAgICAgICAgdGhpcy5f
bWVkaWFMaXN0ID0gbWVkaWFMaXN0OwogCkBAIC0xODIsMzAgKzE4MywyMiBAQCBXZWJJbnNwZWN0
b3IuQ1NTUnVsZSA9IGNsYXNzIENTU1J1bGUgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAg
ICAgICAgIHJldHVybiBPYmplY3Quc2hhbGxvd0VxdWFsKHRoaXMuX2lkLCBydWxlLmlkKTsKICAg
ICB9CiAKLSAgICBzZWxlY3RvcklzR3JlYXRlcihvdGhlclNlbGVjdG9ycykKKyAgICBnZXQgbW9z
dFNwZWNpZmljU2VsZWN0b3IoKQogICAgIHsKLSAgICAgICAgaWYgKCFvdGhlclNlbGVjdG9ycyB8
fCAhb3RoZXJTZWxlY3RvcnMubGVuZ3RoKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
ICAgIGlmICghdGhpcy5fbW9zdFNwZWNpZmljU2VsZWN0b3IpCisgICAgICAgICAgICB0aGlzLl9t
b3N0U3BlY2lmaWNTZWxlY3RvciA9IHRoaXMuX2RldGVybWluZU1vc3RTcGVjaWZpY1NlbGVjdG9y
KCk7CiAKLSAgICAgICAgdmFyIHNlbGVjdG9ySXNHcmVhdGVyID0gdHJ1ZTsKLQotICAgICAgICB2
YXIgc2VsZWN0b3JzID0gdGhpcy5tYXRjaGVkU2VsZWN0b3JzOwotICAgICAgICBpZiAoIXNlbGVj
dG9ycy5sZW5ndGgpCi0gICAgICAgICAgICBzZWxlY3RvcnMgPSB0aGlzLl9zZWxlY3RvcnM7Ci0K
LSAgICAgICAgZm9yICh2YXIgc2VsZWN0b3Igb2Ygc2VsZWN0b3JzKSB7Ci0gICAgICAgICAgICBm
b3IgKHZhciBvdGhlclNlbGVjdG9yIG9mIG90aGVyU2VsZWN0b3JzKSB7Ci0gICAgICAgICAgICAg
ICAgaWYgKHNlbGVjdG9yLmlzR3JlYXRlclRoYW4ob3RoZXJTZWxlY3RvcikpCi0gICAgICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICByZXR1cm4gdGhpcy5fbW9zdFNwZWNpZmljU2Vs
ZWN0b3I7CisgICAgfQogCi0gICAgICAgICAgICAgICAgc2VsZWN0b3JJc0dyZWF0ZXIgPSBmYWxz
ZTsKLSAgICAgICAgICAgIH0KKyAgICBzZWxlY3RvcklzR3JlYXRlcihvdGhlclNlbGVjdG9yKQor
ICAgIHsKKyAgICAgICAgdmFyIG1vc3RTcGVjaWZpY1NlbGVjdG9yID0gdGhpcy5tb3N0U3BlY2lm
aWNTZWxlY3RvcjsKIAotICAgICAgICAgICAgaWYgKHNlbGVjdG9ySXNHcmVhdGVyKQotICAgICAg
ICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9CisgICAgICAgIGlmICghbW9zdFNwZWNp
ZmljU2VsZWN0b3IpCisgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgICAgICByZXR1cm4gbW9zdFNwZWNpZmljU2VsZWN0b3IuaXNHcmVhdGVyVGhhbihvdGhl
clNlbGVjdG9yKTsKICAgICB9CiAKICAgICAvLyBQcm90ZWN0ZWQKQEAgLTIxNCw2ICsyMDcsMjgg
QEAgV2ViSW5zcGVjdG9yLkNTU1J1bGUgPSBjbGFzcyBDU1NSdWxlIGV4dGVuZHMgV2ViSW5zcGVj
dG9yLk9iamVjdAogICAgIHsKICAgICAgICAgcmV0dXJuIHRoaXMuX25vZGVTdHlsZXM7CiAgICAg
fQorCisgICAgLy8gUHJpdmF0ZQorCisgICAgX2RldGVybWluZU1vc3RTcGVjaWZpY1NlbGVjdG9y
KCkKKyAgICB7CisgICAgICAgIGlmICghdGhpcy5fc2VsZWN0b3JzIHx8ICF0aGlzLl9zZWxlY3Rv
cnMubGVuZ3RoKQorICAgICAgICAgICAgcmV0dXJuIG51bGw7CisKKyAgICAgICAgdmFyIHNlbGVj
dG9ycyA9IHRoaXMubWF0Y2hlZFNlbGVjdG9yczsKKworICAgICAgICBpZiAoIXNlbGVjdG9ycy5s
ZW5ndGgpCisgICAgICAgICAgICBzZWxlY3RvcnMgPSB0aGlzLl9zZWxlY3RvcnM7CisKKyAgICAg
ICAgdmFyIHNwZWNpZmljU2VsZWN0b3IgPSBzZWxlY3RvcnNbMF07CisKKyAgICAgICAgZm9yICh2
YXIgc2VsZWN0b3Igb2Ygc2VsZWN0b3JzKSB7CisgICAgICAgICAgICBpZiAoc2VsZWN0b3IuaXNH
cmVhdGVyVGhhbihzcGVjaWZpY1NlbGVjdG9yKSkKKyAgICAgICAgICAgICAgICBzcGVjaWZpY1Nl
bGVjdG9yID0gc2VsZWN0b3I7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gc3BlY2lmaWNT
ZWxlY3RvcjsKKyAgICB9CiB9OwogCiBXZWJJbnNwZWN0b3IuQ1NTUnVsZS5FdmVudCA9IHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1J1bGVz
U3R5bGVEZXRhaWxzUGFuZWwuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9SdWxlc1N0eWxlRGV0YWlsc1BhbmVsLmpzCmluZGV4IDdiYjRjNTY4NzUwYjdlNDJk
M2NiNmRlZWYyZWY4ZmJiZWVjZTljOTMuLmE2NzZkZDRmZTUzOGFkYzNmYzllNTc4YmRkOWI3ZDJk
NzY5OThjZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL1J1bGVzU3R5bGVEZXRhaWxzUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUnVsZXNTdHlsZURldGFpbHNQYW5lbC5qcwpAQCAtMjc5
LDcgKzI3OSw3IEBAIFdlYkluc3BlY3Rvci5SdWxlc1N0eWxlRGV0YWlsc1BhbmVsID0gY2xhc3Mg
UnVsZXNTdHlsZURldGFpbHNQYW5lbCBleHRlbmRzIFdlYkluCiAgICAgICAgICAgICAgICAgICAg
ICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAg
ICAgIGlmIChtYXRjaGVkU2VsZWN0b3JUZXh0LmluY2x1ZGVzKHBzZXVkb0VsZW1lbnQuc2VsZWN0
b3JUZXh0KSB8fCAhb3duZXJSdWxlLnNlbGVjdG9ySXNHcmVhdGVyKHBzZXVkb0VsZW1lbnQuc3R5
bGUub3duZXJSdWxlLnNlbGVjdG9ycykpCisgICAgICAgICAgICAgICAgICAgIGlmIChtYXRjaGVk
U2VsZWN0b3JUZXh0LmluY2x1ZGVzKHBzZXVkb0VsZW1lbnQuc2VsZWN0b3JUZXh0KSB8fCAhb3du
ZXJSdWxlLnNlbGVjdG9ySXNHcmVhdGVyKHBzZXVkb0VsZW1lbnQuc3R5bGUub3duZXJSdWxlLm1v
c3RTcGVjaWZpY1NlbGVjdG9yKSkKICAgICAgICAgICAgICAgICAgICAgICAgIHBzZXVkb0VsZW1l
bnQubGFzdE1hdGNoaW5nU2VsZWN0b3IgPSBtYXRjaGVkU2VsZWN0b3JUZXh0OwogICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256667</attachid>
            <date>2015-07-11 14:33:50 -0700</date>
            <delta_ts>2015-07-11 15:31:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146866-20150711143247.patch</filename>
            <type>text/plain</type>
            <size>4989</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDQ5MzZkOTJhZWM4YzViYzZjNTM5OWJhMTU2NTdh
N2Q5ZmJhODdjOGIuLjQ4NjA5ZDY2MmUyODZlNDE5YTFjMjYyMGQ4ZDJmMDczNTM1MDcyMGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE1LTA3LTExICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBJ
bXByb3ZlIHJ1bnRpbWUgb2YgcHNldWRvLWVsZW1lbnQgc2lkZWJhciBzdHlsZSBvcmRlcmluZwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2ODY2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVc2VySW50
ZXJmYWNlL01vZGVscy9DU1NSdWxlLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1J1bGUu
cHJvdG90eXBlLnVwZGF0ZSk6IERldGVybWluZXMgdGhlIG1vc3Qgc3BlY2lmaWMgc2VsZWN0b3Ig
YW5kIHNhdmVzIGl0IHRvIGEgdmFyaWFibGUuCisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTUnVs
ZS5wcm90b3R5cGUuZ2V0IG1vc3RTcGVjaWZpY1NlbGVjdG9yKTogUmV0dXJucyB0aGUgbW9zdCBz
cGVjaWZpYyBzZWxlY3Rvci4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NSdWxlLnByb3RvdHlw
ZS5zZWxlY3RvcklzR3JlYXRlcik6IENvbXBhcmVzIHRoZSBtb3N0IHNwZWNpZmljIHNlbGVjdG9y
IHRvIGEgZ2l2ZW4gc2VsZWN0b3IuCisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTUnVsZS5wcm90
b3R5cGUuX2RldGVybWluZU1vc3RTcGVjaWZpY1NlbGVjdG9yKToKKyAgICAgICAgU2VhcmNoZXMg
dGhyb3VnaCB0aGUgc2VsZWN0b3IgbGlzdCB0byBmaW5kIGFuZCByZXR1cm4gdGhlIHNlbGVjdG9y
IHRoYXQgaXMgdGhlIG1vc3Qgc3BlY2lmaWMuCisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTUnVs
ZSk6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9SdWxlc1N0eWxlRGV0YWlsc1BhbmVs
LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJ1bGVzU3R5bGVEZXRhaWxzUGFuZWwucHJvdG90
eXBlLnJlZnJlc2gpOgorCiAyMDE1LTA3LTEwICBUaW1vdGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFw
cGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBVc2UgLWFwcGxlLXN5c3RlbSBpbnN0
ZWFkIG9mIC13ZWJraXQtc3lzdGVtLWZvbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DU1NSdWxlLmpzIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU1J1bGUuanMKaW5kZXggNjExZDNiOWZlYWJmMDQ4
MzkwMGJiMTU5MGM1NjI1OGY3NTg4ZWU0YS4uYWQxMjE2ODc3MWJiNTc5MGQ2YWMyN2RkYjQxMDNl
Y2RhZDFiZGM2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvTW9kZWxzL0NTU1J1bGUuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvTW9kZWxzL0NTU1J1bGUuanMKQEAgLTgwLDYgKzgwLDcgQEAgV2ViSW5zcGVjdG9yLkNT
U1J1bGUgPSBjbGFzcyBDU1NSdWxlIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAogICAgICAg
ICB0aGlzLl9zZWxlY3RvclRleHQgPSBzZWxlY3RvclRleHQ7CiAgICAgICAgIHRoaXMuX3NlbGVj
dG9ycyA9IHNlbGVjdG9yczsKICAgICAgICAgdGhpcy5fbWF0Y2hlZFNlbGVjdG9ySW5kaWNlcyA9
IG1hdGNoZWRTZWxlY3RvckluZGljZXM7CisgICAgICAgIHRoaXMuX21vc3RTcGVjaWZpY1NlbGVj
dG9yID0gbnVsbDsKICAgICAgICAgdGhpcy5fc3R5bGUgPSBzdHlsZTsKICAgICAgICAgdGhpcy5f
bWVkaWFMaXN0ID0gbWVkaWFMaXN0OwogCkBAIC0xODIsMzAgKzE4MywyMiBAQCBXZWJJbnNwZWN0
b3IuQ1NTUnVsZSA9IGNsYXNzIENTU1J1bGUgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAg
ICAgICAgIHJldHVybiBPYmplY3Quc2hhbGxvd0VxdWFsKHRoaXMuX2lkLCBydWxlLmlkKTsKICAg
ICB9CiAKLSAgICBzZWxlY3RvcklzR3JlYXRlcihvdGhlclNlbGVjdG9ycykKKyAgICBnZXQgbW9z
dFNwZWNpZmljU2VsZWN0b3IoKQogICAgIHsKLSAgICAgICAgaWYgKCFvdGhlclNlbGVjdG9ycyB8
fCAhb3RoZXJTZWxlY3RvcnMubGVuZ3RoKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
ICAgIGlmICghdGhpcy5fbW9zdFNwZWNpZmljU2VsZWN0b3IpCisgICAgICAgICAgICB0aGlzLl9t
b3N0U3BlY2lmaWNTZWxlY3RvciA9IHRoaXMuX2RldGVybWluZU1vc3RTcGVjaWZpY1NlbGVjdG9y
KCk7CiAKLSAgICAgICAgdmFyIHNlbGVjdG9ySXNHcmVhdGVyID0gdHJ1ZTsKLQotICAgICAgICB2
YXIgc2VsZWN0b3JzID0gdGhpcy5tYXRjaGVkU2VsZWN0b3JzOwotICAgICAgICBpZiAoIXNlbGVj
dG9ycy5sZW5ndGgpCi0gICAgICAgICAgICBzZWxlY3RvcnMgPSB0aGlzLl9zZWxlY3RvcnM7Ci0K
LSAgICAgICAgZm9yICh2YXIgc2VsZWN0b3Igb2Ygc2VsZWN0b3JzKSB7Ci0gICAgICAgICAgICBm
b3IgKHZhciBvdGhlclNlbGVjdG9yIG9mIG90aGVyU2VsZWN0b3JzKSB7Ci0gICAgICAgICAgICAg
ICAgaWYgKHNlbGVjdG9yLmlzR3JlYXRlclRoYW4ob3RoZXJTZWxlY3RvcikpCi0gICAgICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICByZXR1cm4gdGhpcy5fbW9zdFNwZWNpZmljU2Vs
ZWN0b3I7CisgICAgfQogCi0gICAgICAgICAgICAgICAgc2VsZWN0b3JJc0dyZWF0ZXIgPSBmYWxz
ZTsKLSAgICAgICAgICAgIH0KKyAgICBzZWxlY3RvcklzR3JlYXRlcihvdGhlclNlbGVjdG9yKQor
ICAgIHsKKyAgICAgICAgdmFyIG1vc3RTcGVjaWZpY1NlbGVjdG9yID0gdGhpcy5tb3N0U3BlY2lm
aWNTZWxlY3RvcjsKIAotICAgICAgICAgICAgaWYgKHNlbGVjdG9ySXNHcmVhdGVyKQotICAgICAg
ICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9CisgICAgICAgIGlmICghbW9zdFNwZWNp
ZmljU2VsZWN0b3IpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICByZXR1cm4gbW9zdFNwZWNpZmljU2VsZWN0b3IuaXNHcmVhdGVyVGhh
bihvdGhlclNlbGVjdG9yKTsKICAgICB9CiAKICAgICAvLyBQcm90ZWN0ZWQKQEAgLTIxNCw2ICsy
MDcsMjggQEAgV2ViSW5zcGVjdG9yLkNTU1J1bGUgPSBjbGFzcyBDU1NSdWxlIGV4dGVuZHMgV2Vi
SW5zcGVjdG9yLk9iamVjdAogICAgIHsKICAgICAgICAgcmV0dXJuIHRoaXMuX25vZGVTdHlsZXM7
CiAgICAgfQorCisgICAgLy8gUHJpdmF0ZQorCisgICAgX2RldGVybWluZU1vc3RTcGVjaWZpY1Nl
bGVjdG9yKCkKKyAgICB7CisgICAgICAgIGlmICghdGhpcy5fc2VsZWN0b3JzIHx8ICF0aGlzLl9z
ZWxlY3RvcnMubGVuZ3RoKQorICAgICAgICAgICAgcmV0dXJuIG51bGw7CisKKyAgICAgICAgdmFy
IHNlbGVjdG9ycyA9IHRoaXMubWF0Y2hlZFNlbGVjdG9yczsKKworICAgICAgICBpZiAoIXNlbGVj
dG9ycy5sZW5ndGgpCisgICAgICAgICAgICBzZWxlY3RvcnMgPSB0aGlzLl9zZWxlY3RvcnM7CisK
KyAgICAgICAgdmFyIHNwZWNpZmljU2VsZWN0b3IgPSBzZWxlY3RvcnNbMF07CisKKyAgICAgICAg
Zm9yICh2YXIgc2VsZWN0b3Igb2Ygc2VsZWN0b3JzKSB7CisgICAgICAgICAgICBpZiAoc2VsZWN0
b3IuaXNHcmVhdGVyVGhhbihzcGVjaWZpY1NlbGVjdG9yKSkKKyAgICAgICAgICAgICAgICBzcGVj
aWZpY1NlbGVjdG9yID0gc2VsZWN0b3I7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gc3Bl
Y2lmaWNTZWxlY3RvcjsKKyAgICB9CiB9OwogCiBXZWJJbnNwZWN0b3IuQ1NTUnVsZS5FdmVudCA9
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L1J1bGVzU3R5bGVEZXRhaWxzUGFuZWwuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9SdWxlc1N0eWxlRGV0YWlsc1BhbmVsLmpzCmluZGV4IDdiYjRjNTY4NzUw
YjdlNDJkM2NiNmRlZWYyZWY4ZmJiZWVjZTljOTMuLmE2NzZkZDRmZTUzOGFkYzNmYzllNTc4YmRk
OWI3ZDJkNzY5OThjZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL1J1bGVzU3R5bGVEZXRhaWxzUGFuZWwuanMKKysrIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUnVsZXNTdHlsZURldGFpbHNQYW5lbC5qcwpA
QCAtMjc5LDcgKzI3OSw3IEBAIFdlYkluc3BlY3Rvci5SdWxlc1N0eWxlRGV0YWlsc1BhbmVsID0g
Y2xhc3MgUnVsZXNTdHlsZURldGFpbHNQYW5lbCBleHRlbmRzIFdlYkluCiAgICAgICAgICAgICAg
ICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAg
ICAgICAgICAgIGlmIChtYXRjaGVkU2VsZWN0b3JUZXh0LmluY2x1ZGVzKHBzZXVkb0VsZW1lbnQu
c2VsZWN0b3JUZXh0KSB8fCAhb3duZXJSdWxlLnNlbGVjdG9ySXNHcmVhdGVyKHBzZXVkb0VsZW1l
bnQuc3R5bGUub3duZXJSdWxlLnNlbGVjdG9ycykpCisgICAgICAgICAgICAgICAgICAgIGlmICht
YXRjaGVkU2VsZWN0b3JUZXh0LmluY2x1ZGVzKHBzZXVkb0VsZW1lbnQuc2VsZWN0b3JUZXh0KSB8
fCAhb3duZXJSdWxlLnNlbGVjdG9ySXNHcmVhdGVyKHBzZXVkb0VsZW1lbnQuc3R5bGUub3duZXJS
dWxlLm1vc3RTcGVjaWZpY1NlbGVjdG9yKSkKICAgICAgICAgICAgICAgICAgICAgICAgIHBzZXVk
b0VsZW1lbnQubGFzdE1hdGNoaW5nU2VsZWN0b3IgPSBtYXRjaGVkU2VsZWN0b3JUZXh0OwogICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>