<?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>16258</bug_id>
          
          <creation_ts>2007-12-02 11:18:22 -0800</creation_ts>
          <short_desc>Web Inspector should highlight when clicking a node&apos;s closing tag</short_desc>
          <delta_ts>2010-03-29 10:13:53 -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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Matt Lilek">dev+webkit</reporter>
          <assigned_to name="Alexander Pavlov (apavlov)">apavlov</assigned_to>
          <cc>eric</cc>
    
    <cc>pfeldman</cc>
    
    <cc>timothy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>63011</commentid>
    <comment_count>0</comment_count>
    <who name="Matt Lilek">dev+webkit</who>
    <bug_when>2007-12-02 11:18:22 -0800</bug_when>
    <thetext>Right now, in the web inspector, if you click an element&apos;s closing tag in the tree list, nothing happens. We should at least select or point to the opening tag for it, but it would be awesome if we did some kind of spiffy highlighting or something - maybe like XCode 3 does? http://developer.apple.com/documentation/DeveloperTools/Conceptual/XcodeUserGuide/Contents/Resources/en.lproj/art/code_focus.jpg</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>63025</commentid>
    <comment_count>1</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2007-12-02 13:36:09 -0800</bug_when>
    <thetext>I think jumping to the open tag would be good. We would need to not do this when arrowing through the tree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>68644</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-01-29 11:06:20 -0800</bug_when>
    <thetext>&lt;rdar://problem/5712871&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119457</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Fields">eric</who>
    <bug_when>2009-04-30 08:05:56 -0700</bug_when>
    <thetext>Bump.

This specifically references Inspect &gt; Elements.

To reiterate, clicking on a closing tag should have the exact same behavior to clicking on the opening tag: highlight, get all applied CSS styles, DOM path…</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>203077</commentid>
    <comment_count>4</comment_count>
      <attachid>51430</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-03-23 09:42:09 -0700</bug_when>
    <thetext>Created attachment 51430
[PATCH] Proposed solution

The closing tag itself is selected when clicked/keyboard-traversed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>203491</commentid>
    <comment_count>5</comment_count>
      <attachid>51524</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-03-24 10:54:36 -0700</bug_when>
    <thetext>Created attachment 51524
[PATCH] Merged conflicting changes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>204002</commentid>
    <comment_count>6</comment_count>
      <attachid>51630</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-03-25 05:19:34 -0700</bug_when>
    <thetext>Created attachment 51630
[PATCH] Fixed test failure</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>204114</commentid>
    <comment_count>7</comment_count>
      <attachid>51630</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-03-25 10:08:37 -0700</bug_when>
    <thetext>Comment on attachment 51630
[PATCH] Fixed test failure

As we agreed verbally, let us remove the singleOrPairedTreeElements method. It would simplify code a lot, while the only thing we would lose is highlighting closing tag as a part of search results.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>204568</commentid>
    <comment_count>8</comment_count>
      <attachid>51740</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-03-26 07:46:25 -0700</bug_when>
    <thetext>Created attachment 51740
[PATCH] Removed an odd method</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205161</commentid>
    <comment_count>9</comment_count>
      <attachid>51740</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-03-28 05:26:24 -0700</bug_when>
    <thetext>Comment on attachment 51740
[PATCH] Removed an odd method

&gt; +WebInspector.ElementsTreeElement = function(node, elementCloseTag)

Please merge it carefully with Joe&apos;s changes.


&gt;  {
&gt; -    var hasChildrenOverride = node.hasChildNodes() &amp;&amp; !this._showInlineText(node);
&gt; +    this.elementCloseTag = elementCloseTag;

Private?

&gt; -        if (this._expandedChildrenLimit === x)
&gt; +        if (this._expandedChildrenLimit === x || this.elementCloseTag)

Why this change?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>205508</commentid>
    <comment_count>10</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-03-29 10:13:53 -0700</bug_when>
    <thetext>Code merged, comments addressed.

Committing to http://svn.webkit.org/repository/webkit/trunk ...
        M       LayoutTests/ChangeLog
        M       LayoutTests/inspector/elements-panel-limited-children.html
        M       WebCore/ChangeLog
        M       WebCore/inspector/front-end/ElementsTreeOutline.js
Committed r56727</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>51430</attachid>
            <date>2010-03-23 09:42:09 -0700</date>
            <delta_ts>2010-03-24 10:54:36 -0700</delta_ts>
            <desc>[PATCH] Proposed solution</desc>
            <filename>selectableclosetags.patch</filename>
            <type>text/plain</type>
            <size>12921</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NzA5YTdhOC4uZTZiYzc0ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxMC0wMy0yMyAgQWxleGFuZGVyIFBh
dmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3Igc2hvdWxkIGhpZ2hsaWdodCB3aGVu
IGNsaWNraW5nIGEgbm9kZSdzIGNsb3NpbmcgdGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjI1OAorCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250
LWVuZC9FbGVtZW50c1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFu
ZWwucHJvdG90eXBlLl9oaWdobGlnaHRDdXJyZW50U2VhcmNoUmVzdWx0KToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5FbGVtZW50c1BhbmVsLnByb3RvdHlwZS5faGlkZVNlYXJjaEhpZ2hsaWdodHMp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBlLnNpbmdsZU9y
UGFpcmVkVHJlZUVsZW1lbnRzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50c1BhbmVs
LnByb3RvdHlwZS51cGRhdGVNb2RpZmllZE5vZGVzKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJv
bnQtZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxl
bWVudHNUcmVlT3V0bGluZS5wcm90b3R5cGUuc2V0IHN1cHByZXNzUmV2ZWFsQW5kU2VsZWN0KToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVPdXRsaW5lLnByb3RvdHlwZS5yZXZl
YWxBbmRTZWxlY3ROb2RlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVPdXRs
aW5lLnByb3RvdHlwZS5fa2V5RG93bik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNU
cmVlT3V0bGluZS5wcm90b3R5cGUuX29ubW91c2Vtb3ZlKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5FbGVtZW50c1RyZWVFbGVtZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50c1Ry
ZWVFbGVtZW50LnByb3RvdHlwZS5zZXQgZXhwYW5kZWRDaGlsZHJlbkxpbWl0KToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZS5zaG93Q2hpbGQpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlLm9ucG9w
dWxhdGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90
eXBlLnVwZGF0ZUNoaWxkcmVuKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVF
bGVtZW50LnByb3RvdHlwZS5pbnNlcnRDaGlsZEVsZW1lbnQpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlLl91cGRhdGVDaGlsZHJlbik6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUub25leHBhbmQp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlLm9u
Y29sbGFwc2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJv
dG90eXBlLm9uc2VsZWN0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVt
ZW50LnByb3RvdHlwZS5vbmRibGNsaWNrKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50
c1RyZWVFbGVtZW50LnByb3RvdHlwZS5fbm9kZVRpdGxlSW5mbyk6CisKIDIwMTAtMDMtMjMgIEp1
bGllbiBDaGFmZnJhaXggIDxqY2hhZmZyYWl4QHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZp
ZXdlZCBidWlsZCBmaXguCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
RWxlbWVudHNQYW5lbC5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1Bh
bmVsLmpzCmluZGV4IDc1ZThkMDguLmVhZmU3NWEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9FbGVtZW50c1BhbmVsLmpzCkBAIC0zMjYsMTAgKzMyNiwxMiBAQCBXZWJJbnNwZWN0
b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgewogICAgICAgICB0aGlzLl9oaWRl
U2VhcmNoSGlnaGxpZ2h0cygpOwogICAgICAgICB2YXIgbm9kZSA9IHRoaXMuX3NlYXJjaFJlc3Vs
dHNbdGhpcy5fY3VycmVudFNlYXJjaFJlc3VsdEluZGV4XTsKLSAgICAgICAgdmFyIHRyZWVFbGVt
ZW50ID0gdGhpcy50cmVlT3V0bGluZS5maW5kVHJlZUVsZW1lbnQobm9kZSk7Ci0gICAgICAgIGlm
ICh0cmVlRWxlbWVudCkgewotICAgICAgICAgICAgdHJlZUVsZW1lbnQuaGlnaGxpZ2h0U2VhcmNo
UmVzdWx0cyh0aGlzLl9zZWFyY2hRdWVyeSk7Ci0gICAgICAgICAgICB0cmVlRWxlbWVudC5yZXZl
YWwoKTsKKyAgICAgICAgdmFyIHRyZWVFbGVtZW50cyA9IHRoaXMuc2luZ2xlT3JQYWlyZWRUcmVl
RWxlbWVudHMobm9kZSk7CisgICAgICAgIGlmICh0cmVlRWxlbWVudHNbMF0pIHsKKyAgICAgICAg
ICAgIHRyZWVFbGVtZW50c1swXS5oaWdobGlnaHRTZWFyY2hSZXN1bHRzKHRoaXMuX3NlYXJjaFF1
ZXJ5KTsKKyAgICAgICAgICAgIHRyZWVFbGVtZW50c1swXS5yZXZlYWwoKTsKKyAgICAgICAgICAg
IGlmICh0cmVlRWxlbWVudHNbMV0gJiYgdHJlZUVsZW1lbnRzWzFdLmVsZW1lbnRDbG9zZVRhZykK
KyAgICAgICAgICAgICAgICB0cmVlRWxlbWVudHNbMV0uaGlnaGxpZ2h0U2VhcmNoUmVzdWx0cyh0
aGlzLl9zZWFyY2hRdWVyeSk7CiAgICAgICAgIH0KICAgICB9LAogCkBAIC0zMzcsMTAgKzMzOSwy
OSBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgewogICAg
ICAgICBmb3IgKHZhciBpID0gMDsgdGhpcy5fc2VhcmNoUmVzdWx0cyAmJiBpIDwgdGhpcy5fc2Vh
cmNoUmVzdWx0cy5sZW5ndGg7ICsraSkgewogICAgICAgICAgICAgdmFyIG5vZGUgPSB0aGlzLl9z
ZWFyY2hSZXN1bHRzW2ldOwotICAgICAgICAgICAgdmFyIHRyZWVFbGVtZW50ID0gdGhpcy50cmVl
T3V0bGluZS5maW5kVHJlZUVsZW1lbnQobm9kZSk7Ci0gICAgICAgICAgICBpZiAodHJlZUVsZW1l
bnQpCi0gICAgICAgICAgICAgICAgdHJlZUVsZW1lbnQuaGlnaGxpZ2h0U2VhcmNoUmVzdWx0cyhu
dWxsKTsKKyAgICAgICAgICAgIHZhciB0cmVlRWxlbWVudHMgPSB0aGlzLnNpbmdsZU9yUGFpcmVk
VHJlZUVsZW1lbnRzKG5vZGUpOworICAgICAgICAgICAgaWYgKHRyZWVFbGVtZW50c1swXSkgewor
ICAgICAgICAgICAgICAgIHRyZWVFbGVtZW50c1swXS5oaWdobGlnaHRTZWFyY2hSZXN1bHRzKG51
bGwpOworICAgICAgICAgICAgICAgIGlmICh0cmVlRWxlbWVudHNbMV0pCisgICAgICAgICAgICAg
ICAgICAgIHRyZWVFbGVtZW50c1sxXS5oaWdobGlnaHRTZWFyY2hSZXN1bHRzKG51bGwpOworICAg
ICAgICAgICAgfQorICAgICAgICB9CisgICAgfSwKKworICAgIHNpbmdsZU9yUGFpcmVkVHJlZUVs
ZW1lbnRzOiBmdW5jdGlvbihub2RlKQorICAgIHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IFtdOwor
ICAgICAgICB2YXIgdHJlZUVsZW1lbnQgPSB0aGlzLnRyZWVPdXRsaW5lLmZpbmRUcmVlRWxlbWVu
dChub2RlKTsKKyAgICAgICAgaWYgKCF0cmVlRWxlbWVudCkKKyAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7CisKKyAgICAgICAgcmVzdWx0LnB1c2godHJlZUVsZW1lbnQpOworICAgICAgICBpZiAo
dHJlZUVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoKSB7CisgICAgICAgICAgICB0cmVlRWxlbWVudCA9
IHRyZWVFbGVtZW50LmNoaWxkcmVuW3RyZWVFbGVtZW50LmNoaWxkcmVuLmxlbmd0aCAtIDFdOwor
ICAgICAgICAgICAgaWYgKHRyZWVFbGVtZW50ICYmIHRyZWVFbGVtZW50LmVsZW1lbnRDbG9zZVRh
ZykKKyAgICAgICAgICAgICAgICByZXN1bHQucHVzaCh0cmVlRWxlbWVudCk7CiAgICAgICAgIH0K
KyAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9LAogCiAgICAgcmVuYW1lU2VsZWN0b3I6IGZ1
bmN0aW9uKG9sZElkZW50aWZpZXIsIG5ld0lkZW50aWZpZXIsIG9sZFNlbGVjdG9yLCBuZXdTZWxl
Y3RvcikKQEAgLTUyMSw5ICs1NDIsMTIgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJv
dG90eXBlID0gewogICAgICAgICAgICAgdmFyIG5vZGUgPSB0aGlzLnJlY2VudGx5TW9kaWZpZWRO
b2Rlc1tpXS5ub2RlOwogCiAgICAgICAgICAgICBpZiAodGhpcy5yZWNlbnRseU1vZGlmaWVkTm9k
ZXNbaV0udXBkYXRlZCkgewotICAgICAgICAgICAgICAgIHZhciBub2RlSXRlbSA9IHRoaXMudHJl
ZU91dGxpbmUuZmluZFRyZWVFbGVtZW50KG5vZGUpOwotICAgICAgICAgICAgICAgIGlmIChub2Rl
SXRlbSkKLSAgICAgICAgICAgICAgICAgICAgbm9kZUl0ZW0udXBkYXRlVGl0bGUoKTsKKyAgICAg
ICAgICAgICAgICB2YXIgbm9kZUl0ZW1zID0gdGhpcy5zaW5nbGVPclBhaXJlZFRyZWVFbGVtZW50
cyhub2RlKTsKKyAgICAgICAgICAgICAgICBpZiAobm9kZUl0ZW1zWzBdKSB7CisgICAgICAgICAg
ICAgICAgICAgIG5vZGVJdGVtc1swXS51cGRhdGVUaXRsZSgpOworICAgICAgICAgICAgICAgICAg
ICBpZiAobm9kZUl0ZW1zWzFdKQorICAgICAgICAgICAgICAgICAgICAgICAgbm9kZUl0ZW1zWzFd
LnVwZGF0ZVRpdGxlKCk7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGNvbnRp
bnVlOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgCmRpZmYgLS1naXQgYS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNUcmVlT3V0bGluZS5qcyBiL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpzCmluZGV4IDhjYTBiNTcuLmU2NzA4
MzAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1RyZWVP
dXRsaW5lLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1RyZWVP
dXRsaW5lLmpzCkBAIC0xNzcsOSArMTc3LDE2IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVP
dXRsaW5lLnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgfSwKIAorICAg
IHNldCBzdXBwcmVzc1JldmVhbEFuZFNlbGVjdCh4KQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMu
X3N1cHByZXNzUmV2ZWFsQW5kU2VsZWN0ID09PSB4KQorICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICB0aGlzLl9zdXBwcmVzc1JldmVhbEFuZFNlbGVjdCA9IHg7CisgICAgfSwKKwogICAgIHJl
dmVhbEFuZFNlbGVjdE5vZGU6IGZ1bmN0aW9uKG5vZGUpCiAgICAgewotICAgICAgICBpZiAoIW5v
ZGUpCisgICAgICAgIGlmICghbm9kZSB8fCB0aGlzLl9zdXBwcmVzc1JldmVhbEFuZFNlbGVjdCkK
ICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICB2YXIgdHJlZUVsZW1lbnQgPSB0aGlzLmNy
ZWF0ZVRyZWVFbGVtZW50Rm9yKG5vZGUpOwpAQCAtMjI1LDYgKzIzMiw5IEBAIFdlYkluc3BlY3Rv
ci5FbGVtZW50c1RyZWVPdXRsaW5lLnByb3RvdHlwZSA9IHsKIAogICAgICAgICBpZiAoZXZlbnQu
a2V5Q29kZSA9PT0gV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQuS2V5Q29kZXMuQmFja3Nw
YWNlIHx8CiAgICAgICAgICAgICAgICAgZXZlbnQua2V5Q29kZSA9PT0gV2ViSW5zcGVjdG9yLktl
eWJvYXJkU2hvcnRjdXQuS2V5Q29kZXMuRGVsZXRlKSB7CisgICAgICAgICAgICB2YXIgc3RhcnRU
YWdUcmVlRWxlbWVudCA9IHRoaXMuZmluZFRyZWVFbGVtZW50KHNlbGVjdGVkRWxlbWVudC5yZXBy
ZXNlbnRlZE9iamVjdCk7CisgICAgICAgICAgICBpZiAoc2VsZWN0ZWRFbGVtZW50ICE9PSBzdGFy
dFRhZ1RyZWVFbGVtZW50KQorICAgICAgICAgICAgICAgIHNlbGVjdGVkRWxlbWVudCA9IHN0YXJ0
VGFnVHJlZUVsZW1lbnQ7CiAgICAgICAgICAgICBzZWxlY3RlZEVsZW1lbnQucmVtb3ZlKCk7CiAg
ICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgICAgICAgZXZlbnQuc3Rv
cFByb3BhZ2F0aW9uKCk7CkBAIC0yNjcsMTIgKzI3NywxMiBAQCBXZWJJbnNwZWN0b3IuRWxlbWVu
dHNUcmVlT3V0bGluZS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBkZWxldGUgdGhpcy5fcHJl
dmlvdXNIb3ZlcmVkRWxlbWVudDsKICAgICAgICAgfQogCi0gICAgICAgIGlmIChlbGVtZW50ICYm
ICFlbGVtZW50LmVsZW1lbnRDbG9zZVRhZykgeworICAgICAgICBpZiAoZWxlbWVudCkgewogICAg
ICAgICAgICAgZWxlbWVudC5ob3ZlcmVkID0gdHJ1ZTsKICAgICAgICAgICAgIHRoaXMuX3ByZXZp
b3VzSG92ZXJlZEVsZW1lbnQgPSBlbGVtZW50OwogICAgICAgICB9CiAKLSAgICAgICAgV2ViSW5z
cGVjdG9yLmhvdmVyZWRET01Ob2RlID0gKGVsZW1lbnQgJiYgIWVsZW1lbnQuZWxlbWVudENsb3Nl
VGFnID8gZWxlbWVudC5yZXByZXNlbnRlZE9iamVjdCA6IG51bGwpOworICAgICAgICBXZWJJbnNw
ZWN0b3IuaG92ZXJlZERPTU5vZGUgPSAoZWxlbWVudCA/IGVsZW1lbnQucmVwcmVzZW50ZWRPYmpl
Y3QgOiBudWxsKTsKICAgICB9LAogCiAgICAgX29ubW91c2VvdXQ6IGZ1bmN0aW9uKGV2ZW50KQpA
QCAtMzA5LDE0ICszMTksMTUgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZU91dGxpbmUucHJv
dG90eXBlID0gewogCiBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlT3V0bGluZS5wcm90b3R5cGUu
X19wcm90b19fID0gVHJlZU91dGxpbmUucHJvdG90eXBlOwogCi1XZWJJbnNwZWN0b3IuRWxlbWVu
dHNUcmVlRWxlbWVudCA9IGZ1bmN0aW9uKG5vZGUpCitXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVl
RWxlbWVudCA9IGZ1bmN0aW9uKG5vZGUsIGVsZW1lbnRDbG9zZVRhZykKIHsKLSAgICB2YXIgaGFz
Q2hpbGRyZW5PdmVycmlkZSA9IG5vZGUuaGFzQ2hpbGROb2RlcygpICYmICF0aGlzLl9zaG93SW5s
aW5lVGV4dChub2RlKTsKKyAgICB0aGlzLmVsZW1lbnRDbG9zZVRhZyA9IGVsZW1lbnRDbG9zZVRh
ZzsKKyAgICB2YXIgaGFzQ2hpbGRyZW5PdmVycmlkZSA9ICFlbGVtZW50Q2xvc2VUYWcgJiYgbm9k
ZS5oYXNDaGlsZE5vZGVzKCkgJiYgIXRoaXMuX3Nob3dJbmxpbmVUZXh0KG5vZGUpOwogCiAgICAg
Ly8gVGhlIHRpdGxlIHdpbGwgYmUgdXBkYXRlZCBpbiBvbmF0dGFjaC4KICAgICBUcmVlRWxlbWVu
dC5jYWxsKHRoaXMsICIiLCBub2RlLCBoYXNDaGlsZHJlbk92ZXJyaWRlKTsKIAotICAgIGlmICh0
aGlzLnJlcHJlc2VudGVkT2JqZWN0Lm5vZGVUeXBlID09IE5vZGUuRUxFTUVOVF9OT0RFKQorICAg
IGlmICh0aGlzLnJlcHJlc2VudGVkT2JqZWN0Lm5vZGVUeXBlID09IE5vZGUuRUxFTUVOVF9OT0RF
ICYmICFlbGVtZW50Q2xvc2VUYWcpCiAgICAgICAgIHRoaXMuX2NhbkFkZEF0dHJpYnV0ZXMgPSB0
cnVlOwogICAgIHRoaXMuX3NlYXJjaFF1ZXJ5ID0gbnVsbDsKICAgICB0aGlzLl9leHBhbmRlZENo
aWxkcmVuTGltaXQgPSBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5Jbml0aWFsQ2hp
bGRyZW5MaW1pdDsKQEAgLTM3MSw3ICszODIsNyBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVl
RWxlbWVudC5wcm90b3R5cGUgPSB7CiAKICAgICBzZXQgZXhwYW5kZWRDaGlsZHJlbkxpbWl0KHgp
CiAgICAgewotICAgICAgICBpZiAodGhpcy5fZXhwYW5kZWRDaGlsZHJlbkxpbWl0ID09PSB4KQor
ICAgICAgICBpZiAodGhpcy5fZXhwYW5kZWRDaGlsZHJlbkxpbWl0ID09PSB4IHx8IHRoaXMuZWxl
bWVudENsb3NlVGFnKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIHRoaXMuX2V4cGFu
ZGVkQ2hpbGRyZW5MaW1pdCA9IHg7CkBAIC0zOTEsNiArNDAyLDkgQEAgV2ViSW5zcGVjdG9yLkVs
ZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogCiAgICAgc2hvd0NoaWxkOiBmdW5jdGlv
bihpbmRleCkKICAgICB7CisgICAgICAgIGlmICh0aGlzLmVsZW1lbnRDbG9zZVRhZykKKyAgICAg
ICAgICAgIHJldHVybjsKKwogICAgICAgICBpZiAoaW5kZXggPj0gdGhpcy5leHBhbmRlZENoaWxk
cmVuTGltaXQpIHsKICAgICAgICAgICAgIHRoaXMuX2V4cGFuZGVkQ2hpbGRyZW5MaW1pdCA9IGlu
ZGV4ICsgMTsKICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZUNoaWxkcmVuKHRydWUpOwpAQCAtNDAy
LDYgKzQxNiw5IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZSA9
IHsKIAogICAgIGNyZWF0ZVRvb2x0aXBGb3JJbWFnZU5vZGU6IGZ1bmN0aW9uKG5vZGUsIGNhbGxi
YWNrKQogICAgIHsKKyAgICAgICAgaWYgKHRoaXMuZWxlbWVudENsb3NlVGFnKQorICAgICAgICAg
ICAgcmV0dXJuOworCiAgICAgICAgIGZ1bmN0aW9uIGNyZWF0ZVRvb2x0aXBUaGVuQ2FsbGJhY2so
cHJvcGVydGllcykKICAgICAgICAgewogICAgICAgICAgICAgaWYgKCFwcm9wZXJ0aWVzKSB7CkBA
IC00NjcsNyArNDg0LDcgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90
eXBlID0gewogCiAgICAgb25wb3B1bGF0ZTogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgaWYg
KHRoaXMuY2hpbGRyZW4ubGVuZ3RoIHx8IHRoaXMuX3Nob3dJbmxpbmVUZXh0KHRoaXMucmVwcmVz
ZW50ZWRPYmplY3QpKQorICAgICAgICBpZiAodGhpcy5jaGlsZHJlbi5sZW5ndGggfHwgdGhpcy5f
c2hvd0lubGluZVRleHQodGhpcy5yZXByZXNlbnRlZE9iamVjdCkgfHwgdGhpcy5lbGVtZW50Q2xv
c2VUYWcpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgdGhpcy51cGRhdGVDaGlsZHJl
bigpOwpAQCAtNDc1LDEyICs0OTIsMTUgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1l
bnQucHJvdG90eXBlID0gewogICAgIAogICAgIHVwZGF0ZUNoaWxkcmVuOiBmdW5jdGlvbihmdWxs
UmVmcmVzaCkKICAgICB7CisgICAgICAgIGlmICh0aGlzLmVsZW1lbnRDbG9zZVRhZykKKyAgICAg
ICAgICAgIHJldHVybjsKKwogICAgICAgICBXZWJJbnNwZWN0b3IuZG9tQWdlbnQuZ2V0Q2hpbGRO
b2Rlc0FzeW5jKHRoaXMucmVwcmVzZW50ZWRPYmplY3QsIHRoaXMuX3VwZGF0ZUNoaWxkcmVuLmJp
bmQodGhpcywgZnVsbFJlZnJlc2gpKTsKICAgICB9LAogCi0gICAgaW5zZXJ0Q2hpbGRFbGVtZW50
OiBmdW5jdGlvbihjaGlsZCwgaW5kZXgpCisgICAgaW5zZXJ0Q2hpbGRFbGVtZW50OiBmdW5jdGlv
bihjaGlsZCwgaW5kZXgsIGNsb3NpbmdUYWcpCiAgICAgewotICAgICAgICB2YXIgbmV3RWxlbWVu
dCA9IG5ldyBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudChjaGlsZCk7CisgICAgICAg
IHZhciBuZXdFbGVtZW50ID0gbmV3IFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50KGNo
aWxkLCBjbG9zaW5nVGFnKTsKICAgICAgICAgbmV3RWxlbWVudC5zZWxlY3RhYmxlID0gdGhpcy50
cmVlT3V0bGluZS5zZWxlY3RFbmFibGVkOwogICAgICAgICB0aGlzLmluc2VydENoaWxkKG5ld0Vs
ZW1lbnQsIGluZGV4KTsKICAgICAgICAgcmV0dXJuIG5ld0VsZW1lbnQ7CkBAIC01NzUsMTMgKzU5
NSw4IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAg
ICAgICAgdGhpcy5hZGp1c3RDb2xsYXBzZWRSYW5nZShmYWxzZSk7CiAKICAgICAgICAgdmFyIGxh
c3RDaGlsZCA9IHRoaXMuY2hpbGRyZW5bdGhpcy5jaGlsZHJlbi5sZW5ndGggLSAxXTsKLSAgICAg
ICAgaWYgKHRoaXMucmVwcmVzZW50ZWRPYmplY3Qubm9kZVR5cGUgPT0gTm9kZS5FTEVNRU5UX05P
REUgJiYgKCFsYXN0Q2hpbGQgfHwgIWxhc3RDaGlsZC5lbGVtZW50Q2xvc2VUYWcpKSB7Ci0gICAg
ICAgICAgICB2YXIgdGl0bGUgPSAiPHNwYW4gY2xhc3M9XCJ3ZWJraXQtaHRtbC10YWcgY2xvc2Vc
Ij4mbHQ7LyIgKyB0aGlzLnJlcHJlc2VudGVkT2JqZWN0Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCku
ZXNjYXBlSFRNTCgpICsgIiZndDs8L3NwYW4+IjsKLSAgICAgICAgICAgIHZhciBpdGVtID0gbmV3
IFRyZWVFbGVtZW50KHRpdGxlLCBudWxsLCBmYWxzZSk7Ci0gICAgICAgICAgICBpdGVtLnNlbGVj
dGFibGUgPSBmYWxzZTsKLSAgICAgICAgICAgIGl0ZW0uZWxlbWVudENsb3NlVGFnID0gdHJ1ZTsK
LSAgICAgICAgICAgIHRoaXMuYXBwZW5kQ2hpbGQoaXRlbSk7Ci0gICAgICAgIH0KKyAgICAgICAg
aWYgKHRoaXMucmVwcmVzZW50ZWRPYmplY3Qubm9kZVR5cGUgPT0gTm9kZS5FTEVNRU5UX05PREUg
JiYgKCFsYXN0Q2hpbGQgfHwgIWxhc3RDaGlsZC5lbGVtZW50Q2xvc2VUYWcpKQorICAgICAgICAg
ICAgdGhpcy5pbnNlcnRDaGlsZEVsZW1lbnQodGhpcy5yZXByZXNlbnRlZE9iamVjdCwgdGhpcy5j
aGlsZHJlbi5sZW5ndGgsIHRydWUpOwogCiAgICAgICAgIC8vIFdlIHdhbnQgdG8gcmVzdG9yZSB0
aGUgb3JpZ2luYWwgc2VsZWN0aW9uIGFuZCB0cmVlIHNjcm9sbCBwb3NpdGlvbiBhZnRlciBhIGZ1
bGwgcmVmcmVzaCwgaWYgcG9zc2libGUuCiAgICAgICAgIGlmIChmdWxsUmVmcmVzaCAmJiBlbGVt
ZW50VG9TZWxlY3QpIHsKQEAgLTYzNSwxMiArNjUwLDE4IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50
c1RyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKIAogICAgIG9uZXhwYW5kOiBmdW5jdGlvbigpCiAg
ICAgeworICAgICAgICBpZiAodGhpcy5lbGVtZW50Q2xvc2VUYWcpCisgICAgICAgICAgICByZXR1
cm47CisKICAgICAgICAgdGhpcy51cGRhdGVUaXRsZSgpOwogICAgICAgICB0aGlzLnRyZWVPdXRs
aW5lLnVwZGF0ZVNlbGVjdGlvbigpOwogICAgIH0sCiAKICAgICBvbmNvbGxhcHNlOiBmdW5jdGlv
bigpCiAgICAgeworICAgICAgICBpZiAodGhpcy5lbGVtZW50Q2xvc2VUYWcpCisgICAgICAgICAg
ICByZXR1cm47CisKICAgICAgICAgdGhpcy51cGRhdGVUaXRsZSgpOwogICAgICAgICB0aGlzLnRy
ZWVPdXRsaW5lLnVwZGF0ZVNlbGVjdGlvbigpOwogICAgIH0sCkBAIC02NTMsOCArNjc0LDEwIEBA
IFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKIAogICAgIG9u
c2VsZWN0OiBmdW5jdGlvbigpCiAgICAgeworICAgICAgICB0aGlzLnRyZWVPdXRsaW5lLnN1cHBy
ZXNzUmV2ZWFsQW5kU2VsZWN0ID0gdHJ1ZTsKICAgICAgICAgdGhpcy50cmVlT3V0bGluZS5mb2N1
c2VkRE9NTm9kZSA9IHRoaXMucmVwcmVzZW50ZWRPYmplY3Q7CiAgICAgICAgIHRoaXMudXBkYXRl
U2VsZWN0aW9uKCk7CisgICAgICAgIHRoaXMudHJlZU91dGxpbmUuc3VwcHJlc3NSZXZlYWxBbmRT
ZWxlY3QgPSBmYWxzZTsKICAgICB9LAogCiAgICAgb25tb3VzZWRvd246IGZ1bmN0aW9uKGV2ZW50
KQpAQCAtNjc3LDcgKzcwMCw3IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnBy
b3RvdHlwZSA9IHsKIAogICAgIG9uZGJsY2xpY2s6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKLSAg
ICAgICAgaWYgKHRoaXMuX2VkaXRpbmcpCisgICAgICAgIGlmICh0aGlzLl9lZGl0aW5nIHx8IHRo
aXMuZWxlbWVudENsb3NlVGFnKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIGlmICh0
aGlzLl9zdGFydEVkaXRpbmdGcm9tRXZlbnQoZXZlbnQpKQpAQCAtMTA2Nyw4ICsxMDkwLDE0IEBA
IFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKIAogICAgICAg
ICAgICAgY2FzZSBOb2RlLkVMRU1FTlRfTk9ERToKICAgICAgICAgICAgICAgICB2YXIgdGFnTmFt
ZSA9IG5vZGUubm9kZU5hbWUudG9Mb3dlckNhc2UoKS5lc2NhcGVIVE1MKCk7CisgICAgICAgICAg
ICAgICAgY29uc3QgY2xvc2luZ1RhZ0hUTUwgPSAiPHNwYW4gY2xhc3M9XCJ3ZWJraXQtaHRtbC10
YWcgIiArICh0aGlzLmVsZW1lbnRDbG9zZVRhZyA/ICJjbG9zZSIgOiAiIikgKyAiXCI+Jmx0Oy8i
ICsgdGFnTmFtZSArICImZ3Q7PC9zcGFuPiYjODIwMzsiOworICAgICAgICAgICAgICAgIGlmICh0
aGlzLmVsZW1lbnRDbG9zZVRhZykgeworICAgICAgICAgICAgICAgICAgICBpbmZvLnRpdGxlID0g
Y2xvc2luZ1RhZ0hUTUw7CisgICAgICAgICAgICAgICAgICAgIGluZm8uaGFzQ2hpbGRyZW4gPSBm
YWxzZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgIGluZm8udGl0bGUgPSAiPHNwYW4gY2xhc3M9XCJ3ZWJraXQtaHRtbC10YWdc
Ij4mbHQ7IiArIHRhZ05hbWU7Ci0gICAgICAgICAgICAgICAgCisKICAgICAgICAgICAgICAgICBp
ZiAobm9kZS5oYXNBdHRyaWJ1dGVzKCkpIHsKICAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCBub2RlLmF0dHJpYnV0ZXMubGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgIHZhciBhdHRyID0gbm9kZS5hdHRyaWJ1dGVzW2ldOwpAQCAtMTA4OCw3ICsxMTE3
LDYgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBpbmZvLnRpdGxlICs9ICImZ3Q7PC9zcGFu
PiYjODIwMzsiOwogICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGNvbnN0IGNsb3Np
bmdUYWdIVE1MID0gIjxzcGFuIGNsYXNzPVwid2Via2l0LWh0bWwtdGFnXCI+Jmx0Oy8iICsgdGFn
TmFtZSArICImZ3Q7PC9zcGFuPiYjODIwMzsiOwogICAgICAgICAgICAgICAgIHZhciB0ZXh0Q2hp
bGQgPSBvbmx5VGV4dENoaWxkLmNhbGwobm9kZSk7CiAgICAgICAgICAgICAgICAgdmFyIHNob3dJ
bmxpbmVUZXh0ID0gdGV4dENoaWxkICYmIHRleHRDaGlsZC50ZXh0Q29udGVudC5sZW5ndGggPCBQ
cmVmZXJlbmNlcy5tYXhJbmxpbmVUZXh0Q2hpbGRMZW5ndGg7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>51524</attachid>
            <date>2010-03-24 10:54:36 -0700</date>
            <delta_ts>2010-03-24 10:58:53 -0700</delta_ts>
            <desc>[PATCH] Merged conflicting changes</desc>
            <filename>selectableclosetags.patch</filename>
            <type>text/plain</type>
            <size>14901</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MmQzMWE4YS4uMjk3MjkxOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwzNiBAQAogMjAxMC0wMy0yNCAgQWxleGFuZGVyIFBh
dmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgogCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3Igc2hvdWxkIGhpZ2hsaWdodCB3aGVu
IGNsaWNraW5nIGEgbm9kZSdzIGNsb3NpbmcgdGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjI1OAorCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250
LWVuZC9FbGVtZW50c1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFu
ZWwucHJvdG90eXBlLl9oaWdobGlnaHRDdXJyZW50U2VhcmNoUmVzdWx0KToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5FbGVtZW50c1BhbmVsLnByb3RvdHlwZS5faGlkZVNlYXJjaEhpZ2hsaWdodHMp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBlLnNpbmdsZU9y
UGFpcmVkVHJlZUVsZW1lbnRzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50c1BhbmVs
LnByb3RvdHlwZS51cGRhdGVNb2RpZmllZE5vZGVzKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJv
bnQtZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxl
bWVudHNUcmVlT3V0bGluZS5wcm90b3R5cGUuc2V0IHN1cHByZXNzUmV2ZWFsQW5kU2VsZWN0KToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVPdXRsaW5lLnByb3RvdHlwZS5yZXZl
YWxBbmRTZWxlY3ROb2RlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVPdXRs
aW5lLnByb3RvdHlwZS5fa2V5RG93bik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNU
cmVlT3V0bGluZS5wcm90b3R5cGUuX29ubW91c2Vtb3ZlKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5FbGVtZW50c1RyZWVFbGVtZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50c1Ry
ZWVFbGVtZW50LnByb3RvdHlwZS5zZXQgZXhwYW5kZWRDaGlsZHJlbkxpbWl0KToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZS5zaG93Q2hpbGQpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlLm9ucG9w
dWxhdGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90
eXBlLnVwZGF0ZUNoaWxkcmVuKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVF
bGVtZW50LnByb3RvdHlwZS5pbnNlcnRDaGlsZEVsZW1lbnQpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlLl91cGRhdGVDaGlsZHJlbik6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUub25leHBhbmQp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlLm9u
Y29sbGFwc2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJv
dG90eXBlLm9uc2VsZWN0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVt
ZW50LnByb3RvdHlwZS5vbmRibGNsaWNrKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50
c1RyZWVFbGVtZW50LnByb3RvdHlwZS5fY2xvc2luZ1RhZ0hUTUwpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlLl9ub2RlVGl0bGVJbmZvKToKKwor
MjAxMC0wMy0yNCAgQWxleGFuZGVyIFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgorCiAg
ICAgICAgIFJldmlld2VkIGJ5IFBhdmVsIEZlbGRtYW4uCiAKICAgICAgICAgSW5zcGVjdG9yOiBY
TUwgVGFncyBzaG91bGQgbm90IGJlIGNvbnZlcnRlZCB0byBsb3dlcmNhc2UKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzIGIvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanMKaW5kZXggZTJjYTgzOC4uODlhZGVh
NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwu
anMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanMKQEAg
LTMyNiwxMCArMzI2LDEyIEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1BhbmVsLnByb3RvdHlwZSA9
IHsKICAgICB7CiAgICAgICAgIHRoaXMuX2hpZGVTZWFyY2hIaWdobGlnaHRzKCk7CiAgICAgICAg
IHZhciBub2RlID0gdGhpcy5fc2VhcmNoUmVzdWx0c1t0aGlzLl9jdXJyZW50U2VhcmNoUmVzdWx0
SW5kZXhdOwotICAgICAgICB2YXIgdHJlZUVsZW1lbnQgPSB0aGlzLnRyZWVPdXRsaW5lLmZpbmRU
cmVlRWxlbWVudChub2RlKTsKLSAgICAgICAgaWYgKHRyZWVFbGVtZW50KSB7Ci0gICAgICAgICAg
ICB0cmVlRWxlbWVudC5oaWdobGlnaHRTZWFyY2hSZXN1bHRzKHRoaXMuX3NlYXJjaFF1ZXJ5KTsK
LSAgICAgICAgICAgIHRyZWVFbGVtZW50LnJldmVhbCgpOworICAgICAgICB2YXIgdHJlZUVsZW1l
bnRzID0gdGhpcy5zaW5nbGVPclBhaXJlZFRyZWVFbGVtZW50cyhub2RlKTsKKyAgICAgICAgaWYg
KHRyZWVFbGVtZW50c1swXSkgeworICAgICAgICAgICAgdHJlZUVsZW1lbnRzWzBdLmhpZ2hsaWdo
dFNlYXJjaFJlc3VsdHModGhpcy5fc2VhcmNoUXVlcnkpOworICAgICAgICAgICAgdHJlZUVsZW1l
bnRzWzBdLnJldmVhbCgpOworICAgICAgICAgICAgaWYgKHRyZWVFbGVtZW50c1sxXSAmJiB0cmVl
RWxlbWVudHNbMV0uZWxlbWVudENsb3NlVGFnKQorICAgICAgICAgICAgICAgIHRyZWVFbGVtZW50
c1sxXS5oaWdobGlnaHRTZWFyY2hSZXN1bHRzKHRoaXMuX3NlYXJjaFF1ZXJ5KTsKICAgICAgICAg
fQogICAgIH0sCiAKQEAgLTMzNywxMCArMzM5LDI5IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1Bh
bmVsLnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAgIGZvciAodmFyIGkgPSAwOyB0aGlzLl9z
ZWFyY2hSZXN1bHRzICYmIGkgPCB0aGlzLl9zZWFyY2hSZXN1bHRzLmxlbmd0aDsgKytpKSB7CiAg
ICAgICAgICAgICB2YXIgbm9kZSA9IHRoaXMuX3NlYXJjaFJlc3VsdHNbaV07Ci0gICAgICAgICAg
ICB2YXIgdHJlZUVsZW1lbnQgPSB0aGlzLnRyZWVPdXRsaW5lLmZpbmRUcmVlRWxlbWVudChub2Rl
KTsKLSAgICAgICAgICAgIGlmICh0cmVlRWxlbWVudCkKLSAgICAgICAgICAgICAgICB0cmVlRWxl
bWVudC5oaWdobGlnaHRTZWFyY2hSZXN1bHRzKG51bGwpOworICAgICAgICAgICAgdmFyIHRyZWVF
bGVtZW50cyA9IHRoaXMuc2luZ2xlT3JQYWlyZWRUcmVlRWxlbWVudHMobm9kZSk7CisgICAgICAg
ICAgICBpZiAodHJlZUVsZW1lbnRzWzBdKSB7CisgICAgICAgICAgICAgICAgdHJlZUVsZW1lbnRz
WzBdLmhpZ2hsaWdodFNlYXJjaFJlc3VsdHMobnVsbCk7CisgICAgICAgICAgICAgICAgaWYgKHRy
ZWVFbGVtZW50c1sxXSkKKyAgICAgICAgICAgICAgICAgICAgdHJlZUVsZW1lbnRzWzFdLmhpZ2hs
aWdodFNlYXJjaFJlc3VsdHMobnVsbCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9
LAorCisgICAgc2luZ2xlT3JQYWlyZWRUcmVlRWxlbWVudHM6IGZ1bmN0aW9uKG5vZGUpCisgICAg
eworICAgICAgICB2YXIgcmVzdWx0ID0gW107CisgICAgICAgIHZhciB0cmVlRWxlbWVudCA9IHRo
aXMudHJlZU91dGxpbmUuZmluZFRyZWVFbGVtZW50KG5vZGUpOworICAgICAgICBpZiAoIXRyZWVF
bGVtZW50KQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKworICAgICAgICByZXN1bHQucHVz
aCh0cmVlRWxlbWVudCk7CisgICAgICAgIGlmICh0cmVlRWxlbWVudC5jaGlsZHJlbi5sZW5ndGgp
IHsKKyAgICAgICAgICAgIHRyZWVFbGVtZW50ID0gdHJlZUVsZW1lbnQuY2hpbGRyZW5bdHJlZUVs
ZW1lbnQuY2hpbGRyZW4ubGVuZ3RoIC0gMV07CisgICAgICAgICAgICBpZiAodHJlZUVsZW1lbnQg
JiYgdHJlZUVsZW1lbnQuZWxlbWVudENsb3NlVGFnKQorICAgICAgICAgICAgICAgIHJlc3VsdC5w
dXNoKHRyZWVFbGVtZW50KTsKICAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OwogICAg
IH0sCiAKICAgICByZW5hbWVTZWxlY3RvcjogZnVuY3Rpb24ob2xkSWRlbnRpZmllciwgbmV3SWRl
bnRpZmllciwgb2xkU2VsZWN0b3IsIG5ld1NlbGVjdG9yKQpAQCAtNTIxLDkgKzU0MiwxMiBAQCBX
ZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB2YXIg
bm9kZSA9IHRoaXMucmVjZW50bHlNb2RpZmllZE5vZGVzW2ldLm5vZGU7CiAKICAgICAgICAgICAg
IGlmICh0aGlzLnJlY2VudGx5TW9kaWZpZWROb2Rlc1tpXS51cGRhdGVkKSB7Ci0gICAgICAgICAg
ICAgICAgdmFyIG5vZGVJdGVtID0gdGhpcy50cmVlT3V0bGluZS5maW5kVHJlZUVsZW1lbnQobm9k
ZSk7Ci0gICAgICAgICAgICAgICAgaWYgKG5vZGVJdGVtKQotICAgICAgICAgICAgICAgICAgICBu
b2RlSXRlbS51cGRhdGVUaXRsZSgpOworICAgICAgICAgICAgICAgIHZhciBub2RlSXRlbXMgPSB0
aGlzLnNpbmdsZU9yUGFpcmVkVHJlZUVsZW1lbnRzKG5vZGUpOworICAgICAgICAgICAgICAgIGlm
IChub2RlSXRlbXNbMF0pIHsKKyAgICAgICAgICAgICAgICAgICAgbm9kZUl0ZW1zWzBdLnVwZGF0
ZVRpdGxlKCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChub2RlSXRlbXNbMV0pCisgICAgICAg
ICAgICAgICAgICAgICAgICBub2RlSXRlbXNbMV0udXBkYXRlVGl0bGUoKTsKKyAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1Ry
ZWVPdXRsaW5lLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91
dGxpbmUuanMKaW5kZXggMjZhMTk0OS4uYmI5ZGUzZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUuanMKKysrIGIvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUuanMKQEAgLTE4Miw5ICsxODIsMTYg
QEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZU91dGxpbmUucHJvdG90eXBlID0gewogICAgICAg
ICByZXR1cm4gbnVsbDsKICAgICB9LAogCisgICAgc2V0IHN1cHByZXNzUmV2ZWFsQW5kU2VsZWN0
KHgpCisgICAgeworICAgICAgICBpZiAodGhpcy5fc3VwcHJlc3NSZXZlYWxBbmRTZWxlY3QgPT09
IHgpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIHRoaXMuX3N1cHByZXNzUmV2ZWFsQW5k
U2VsZWN0ID0geDsKKyAgICB9LAorCiAgICAgcmV2ZWFsQW5kU2VsZWN0Tm9kZTogZnVuY3Rpb24o
bm9kZSkKICAgICB7Ci0gICAgICAgIGlmICghbm9kZSkKKyAgICAgICAgaWYgKCFub2RlIHx8IHRo
aXMuX3N1cHByZXNzUmV2ZWFsQW5kU2VsZWN0KQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAg
ICAgIHZhciB0cmVlRWxlbWVudCA9IHRoaXMuY3JlYXRlVHJlZUVsZW1lbnRGb3Iobm9kZSk7CkBA
IC0yMzAsNiArMjM3LDkgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZU91dGxpbmUucHJvdG90
eXBlID0gewogCiAgICAgICAgIGlmIChldmVudC5rZXlDb2RlID09PSBXZWJJbnNwZWN0b3IuS2V5
Ym9hcmRTaG9ydGN1dC5LZXlDb2Rlcy5CYWNrc3BhY2UgfHwKICAgICAgICAgICAgICAgICBldmVu
dC5rZXlDb2RlID09PSBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5LZXlDb2Rlcy5EZWxl
dGUpIHsKKyAgICAgICAgICAgIHZhciBzdGFydFRhZ1RyZWVFbGVtZW50ID0gdGhpcy5maW5kVHJl
ZUVsZW1lbnQoc2VsZWN0ZWRFbGVtZW50LnJlcHJlc2VudGVkT2JqZWN0KTsKKyAgICAgICAgICAg
IGlmIChzZWxlY3RlZEVsZW1lbnQgIT09IHN0YXJ0VGFnVHJlZUVsZW1lbnQpCisgICAgICAgICAg
ICAgICAgc2VsZWN0ZWRFbGVtZW50ID0gc3RhcnRUYWdUcmVlRWxlbWVudDsKICAgICAgICAgICAg
IHNlbGVjdGVkRWxlbWVudC5yZW1vdmUoKTsKICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZh
dWx0KCk7CiAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTsKQEAgLTI3MiwxMiAr
MjgyLDEyIEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVPdXRsaW5lLnByb3RvdHlwZSA9IHsK
ICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9wcmV2aW91c0hvdmVyZWRFbGVtZW50OwogICAgICAg
ICB9CiAKLSAgICAgICAgaWYgKGVsZW1lbnQgJiYgIWVsZW1lbnQuZWxlbWVudENsb3NlVGFnKSB7
CisgICAgICAgIGlmIChlbGVtZW50KSB7CiAgICAgICAgICAgICBlbGVtZW50LmhvdmVyZWQgPSB0
cnVlOwogICAgICAgICAgICAgdGhpcy5fcHJldmlvdXNIb3ZlcmVkRWxlbWVudCA9IGVsZW1lbnQ7
CiAgICAgICAgIH0KIAotICAgICAgICBXZWJJbnNwZWN0b3IuaG92ZXJlZERPTU5vZGUgPSAoZWxl
bWVudCAmJiAhZWxlbWVudC5lbGVtZW50Q2xvc2VUYWcgPyBlbGVtZW50LnJlcHJlc2VudGVkT2Jq
ZWN0IDogbnVsbCk7CisgICAgICAgIFdlYkluc3BlY3Rvci5ob3ZlcmVkRE9NTm9kZSA9IChlbGVt
ZW50ID8gZWxlbWVudC5yZXByZXNlbnRlZE9iamVjdCA6IG51bGwpOwogICAgIH0sCiAKICAgICBf
b25tb3VzZW91dDogZnVuY3Rpb24oZXZlbnQpCkBAIC0zMTQsMTQgKzMyNCwxNSBAQCBXZWJJbnNw
ZWN0b3IuRWxlbWVudHNUcmVlT3V0bGluZS5wcm90b3R5cGUgPSB7CiAKIFdlYkluc3BlY3Rvci5F
bGVtZW50c1RyZWVPdXRsaW5lLnByb3RvdHlwZS5fX3Byb3RvX18gPSBUcmVlT3V0bGluZS5wcm90
b3R5cGU7CiAKLVdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50ID0gZnVuY3Rpb24obm9k
ZSkKK1dlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50ID0gZnVuY3Rpb24obm9kZSwgZWxl
bWVudENsb3NlVGFnKQogewotICAgIHZhciBoYXNDaGlsZHJlbk92ZXJyaWRlID0gbm9kZS5oYXND
aGlsZE5vZGVzKCkgJiYgIXRoaXMuX3Nob3dJbmxpbmVUZXh0KG5vZGUpOworICAgIHRoaXMuZWxl
bWVudENsb3NlVGFnID0gZWxlbWVudENsb3NlVGFnOworICAgIHZhciBoYXNDaGlsZHJlbk92ZXJy
aWRlID0gIWVsZW1lbnRDbG9zZVRhZyAmJiBub2RlLmhhc0NoaWxkTm9kZXMoKSAmJiAhdGhpcy5f
c2hvd0lubGluZVRleHQobm9kZSk7CiAKICAgICAvLyBUaGUgdGl0bGUgd2lsbCBiZSB1cGRhdGVk
IGluIG9uYXR0YWNoLgogICAgIFRyZWVFbGVtZW50LmNhbGwodGhpcywgIiIsIG5vZGUsIGhhc0No
aWxkcmVuT3ZlcnJpZGUpOwogCi0gICAgaWYgKHRoaXMucmVwcmVzZW50ZWRPYmplY3Qubm9kZVR5
cGUgPT0gTm9kZS5FTEVNRU5UX05PREUpCisgICAgaWYgKHRoaXMucmVwcmVzZW50ZWRPYmplY3Qu
bm9kZVR5cGUgPT0gTm9kZS5FTEVNRU5UX05PREUgJiYgIWVsZW1lbnRDbG9zZVRhZykKICAgICAg
ICAgdGhpcy5fY2FuQWRkQXR0cmlidXRlcyA9IHRydWU7CiAgICAgdGhpcy5fc2VhcmNoUXVlcnkg
PSBudWxsOwogICAgIHRoaXMuX2V4cGFuZGVkQ2hpbGRyZW5MaW1pdCA9IFdlYkluc3BlY3Rvci5F
bGVtZW50c1RyZWVFbGVtZW50LkluaXRpYWxDaGlsZHJlbkxpbWl0OwpAQCAtMzc2LDcgKzM4Nyw3
IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKIAogICAg
IHNldCBleHBhbmRlZENoaWxkcmVuTGltaXQoeCkKICAgICB7Ci0gICAgICAgIGlmICh0aGlzLl9l
eHBhbmRlZENoaWxkcmVuTGltaXQgPT09IHgpCisgICAgICAgIGlmICh0aGlzLl9leHBhbmRlZENo
aWxkcmVuTGltaXQgPT09IHggfHwgdGhpcy5lbGVtZW50Q2xvc2VUYWcpCiAgICAgICAgICAgICBy
ZXR1cm47CiAKICAgICAgICAgdGhpcy5fZXhwYW5kZWRDaGlsZHJlbkxpbWl0ID0geDsKQEAgLTM5
Niw2ICs0MDcsOSBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUg
PSB7CiAKICAgICBzaG93Q2hpbGQ6IGZ1bmN0aW9uKGluZGV4KQogICAgIHsKKyAgICAgICAgaWYg
KHRoaXMuZWxlbWVudENsb3NlVGFnKQorICAgICAgICAgICAgcmV0dXJuOworCiAgICAgICAgIGlm
IChpbmRleCA+PSB0aGlzLmV4cGFuZGVkQ2hpbGRyZW5MaW1pdCkgewogICAgICAgICAgICAgdGhp
cy5fZXhwYW5kZWRDaGlsZHJlbkxpbWl0ID0gaW5kZXggKyAxOwogICAgICAgICAgICAgdGhpcy5f
dXBkYXRlQ2hpbGRyZW4odHJ1ZSk7CkBAIC00MDcsNiArNDIxLDkgQEAgV2ViSW5zcGVjdG9yLkVs
ZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogCiAgICAgY3JlYXRlVG9vbHRpcEZvcklt
YWdlTm9kZTogZnVuY3Rpb24obm9kZSwgY2FsbGJhY2spCiAgICAgeworICAgICAgICBpZiAodGhp
cy5lbGVtZW50Q2xvc2VUYWcpCisgICAgICAgICAgICByZXR1cm47CisKICAgICAgICAgZnVuY3Rp
b24gY3JlYXRlVG9vbHRpcFRoZW5DYWxsYmFjayhwcm9wZXJ0aWVzKQogICAgICAgICB7CiAgICAg
ICAgICAgICBpZiAoIXByb3BlcnRpZXMpIHsKQEAgLTQ3Miw3ICs0ODksNyBAQCBXZWJJbnNwZWN0
b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAKICAgICBvbnBvcHVsYXRlOiBm
dW5jdGlvbigpCiAgICAgewotICAgICAgICBpZiAodGhpcy5jaGlsZHJlbi5sZW5ndGggfHwgdGhp
cy5fc2hvd0lubGluZVRleHQodGhpcy5yZXByZXNlbnRlZE9iamVjdCkpCisgICAgICAgIGlmICh0
aGlzLmNoaWxkcmVuLmxlbmd0aCB8fCB0aGlzLl9zaG93SW5saW5lVGV4dCh0aGlzLnJlcHJlc2Vu
dGVkT2JqZWN0KSB8fCB0aGlzLmVsZW1lbnRDbG9zZVRhZykKICAgICAgICAgICAgIHJldHVybjsK
IAogICAgICAgICB0aGlzLnVwZGF0ZUNoaWxkcmVuKCk7CkBAIC00ODAsMTIgKzQ5NywxNSBAQCBX
ZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgCiAgICAg
dXBkYXRlQ2hpbGRyZW46IGZ1bmN0aW9uKGZ1bGxSZWZyZXNoKQogICAgIHsKKyAgICAgICAgaWYg
KHRoaXMuZWxlbWVudENsb3NlVGFnKQorICAgICAgICAgICAgcmV0dXJuOworCiAgICAgICAgIFdl
Ykluc3BlY3Rvci5kb21BZ2VudC5nZXRDaGlsZE5vZGVzQXN5bmModGhpcy5yZXByZXNlbnRlZE9i
amVjdCwgdGhpcy5fdXBkYXRlQ2hpbGRyZW4uYmluZCh0aGlzLCBmdWxsUmVmcmVzaCkpOwogICAg
IH0sCiAKLSAgICBpbnNlcnRDaGlsZEVsZW1lbnQ6IGZ1bmN0aW9uKGNoaWxkLCBpbmRleCkKKyAg
ICBpbnNlcnRDaGlsZEVsZW1lbnQ6IGZ1bmN0aW9uKGNoaWxkLCBpbmRleCwgY2xvc2luZ1RhZykK
ICAgICB7Ci0gICAgICAgIHZhciBuZXdFbGVtZW50ID0gbmV3IFdlYkluc3BlY3Rvci5FbGVtZW50
c1RyZWVFbGVtZW50KGNoaWxkKTsKKyAgICAgICAgdmFyIG5ld0VsZW1lbnQgPSBuZXcgV2ViSW5z
cGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQoY2hpbGQsIGNsb3NpbmdUYWcpOwogICAgICAgICBu
ZXdFbGVtZW50LnNlbGVjdGFibGUgPSB0aGlzLnRyZWVPdXRsaW5lLnNlbGVjdEVuYWJsZWQ7CiAg
ICAgICAgIHRoaXMuaW5zZXJ0Q2hpbGQobmV3RWxlbWVudCwgaW5kZXgpOwogICAgICAgICByZXR1
cm4gbmV3RWxlbWVudDsKQEAgLTU4MCwxMyArNjAwLDggQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRz
VHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLmFkanVzdENvbGxhcHNlZFJh
bmdlKGZhbHNlKTsKIAogICAgICAgICB2YXIgbGFzdENoaWxkID0gdGhpcy5jaGlsZHJlblt0aGlz
LmNoaWxkcmVuLmxlbmd0aCAtIDFdOwotICAgICAgICBpZiAodGhpcy5yZXByZXNlbnRlZE9iamVj
dC5ub2RlVHlwZSA9PSBOb2RlLkVMRU1FTlRfTk9ERSAmJiAoIWxhc3RDaGlsZCB8fCAhbGFzdENo
aWxkLmVsZW1lbnRDbG9zZVRhZykpIHsKLSAgICAgICAgICAgIHZhciB0aXRsZSA9ICI8c3BhbiBj
bGFzcz1cIndlYmtpdC1odG1sLXRhZyBjbG9zZVwiPiZsdDsvIiArIHRoaXMudHJlZU91dGxpbmUu
bm9kZU5hbWVUb0NvcnJlY3RDYXNlKHRoaXMucmVwcmVzZW50ZWRPYmplY3Qubm9kZU5hbWUpLmVz
Y2FwZUhUTUwoKSArICImZ3Q7PC9zcGFuPiI7Ci0gICAgICAgICAgICB2YXIgaXRlbSA9IG5ldyBU
cmVlRWxlbWVudCh0aXRsZSwgbnVsbCwgZmFsc2UpOwotICAgICAgICAgICAgaXRlbS5zZWxlY3Rh
YmxlID0gZmFsc2U7Ci0gICAgICAgICAgICBpdGVtLmVsZW1lbnRDbG9zZVRhZyA9IHRydWU7Ci0g
ICAgICAgICAgICB0aGlzLmFwcGVuZENoaWxkKGl0ZW0pOwotICAgICAgICB9CisgICAgICAgIGlm
ICh0aGlzLnJlcHJlc2VudGVkT2JqZWN0Lm5vZGVUeXBlID09IE5vZGUuRUxFTUVOVF9OT0RFICYm
ICghbGFzdENoaWxkIHx8ICFsYXN0Q2hpbGQuZWxlbWVudENsb3NlVGFnKSkKKyAgICAgICAgICAg
IHRoaXMuaW5zZXJ0Q2hpbGRFbGVtZW50KHRoaXMucmVwcmVzZW50ZWRPYmplY3QsIHRoaXMuY2hp
bGRyZW4ubGVuZ3RoLCB0cnVlKTsKIAogICAgICAgICAvLyBXZSB3YW50IHRvIHJlc3RvcmUgdGhl
IG9yaWdpbmFsIHNlbGVjdGlvbiBhbmQgdHJlZSBzY3JvbGwgcG9zaXRpb24gYWZ0ZXIgYSBmdWxs
IHJlZnJlc2gsIGlmIHBvc3NpYmxlLgogICAgICAgICBpZiAoZnVsbFJlZnJlc2ggJiYgZWxlbWVu
dFRvU2VsZWN0KSB7CkBAIC02NDAsMTIgKzY1NSwxOCBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNU
cmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAKICAgICBvbmV4cGFuZDogZnVuY3Rpb24oKQogICAg
IHsKKyAgICAgICAgaWYgKHRoaXMuZWxlbWVudENsb3NlVGFnKQorICAgICAgICAgICAgcmV0dXJu
OworCiAgICAgICAgIHRoaXMudXBkYXRlVGl0bGUoKTsKICAgICAgICAgdGhpcy50cmVlT3V0bGlu
ZS51cGRhdGVTZWxlY3Rpb24oKTsKICAgICB9LAogCiAgICAgb25jb2xsYXBzZTogZnVuY3Rpb24o
KQogICAgIHsKKyAgICAgICAgaWYgKHRoaXMuZWxlbWVudENsb3NlVGFnKQorICAgICAgICAgICAg
cmV0dXJuOworCiAgICAgICAgIHRoaXMudXBkYXRlVGl0bGUoKTsKICAgICAgICAgdGhpcy50cmVl
T3V0bGluZS51cGRhdGVTZWxlY3Rpb24oKTsKICAgICB9LApAQCAtNjU4LDggKzY3OSwxMCBAQCBX
ZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAKICAgICBvbnNl
bGVjdDogZnVuY3Rpb24oKQogICAgIHsKKyAgICAgICAgdGhpcy50cmVlT3V0bGluZS5zdXBwcmVz
c1JldmVhbEFuZFNlbGVjdCA9IHRydWU7CiAgICAgICAgIHRoaXMudHJlZU91dGxpbmUuZm9jdXNl
ZERPTU5vZGUgPSB0aGlzLnJlcHJlc2VudGVkT2JqZWN0OwogICAgICAgICB0aGlzLnVwZGF0ZVNl
bGVjdGlvbigpOworICAgICAgICB0aGlzLnRyZWVPdXRsaW5lLnN1cHByZXNzUmV2ZWFsQW5kU2Vs
ZWN0ID0gZmFsc2U7CiAgICAgfSwKIAogICAgIG9ubW91c2Vkb3duOiBmdW5jdGlvbihldmVudCkK
QEAgLTY4Miw3ICs3MDUsNyBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90
b3R5cGUgPSB7CiAKICAgICBvbmRibGNsaWNrOiBmdW5jdGlvbihldmVudCkKICAgICB7Ci0gICAg
ICAgIGlmICh0aGlzLl9lZGl0aW5nKQorICAgICAgICBpZiAodGhpcy5fZWRpdGluZyB8fCB0aGlz
LmVsZW1lbnRDbG9zZVRhZykKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBpZiAodGhp
cy5fc3RhcnRFZGl0aW5nRnJvbUV2ZW50KGV2ZW50KSkKQEAgLTEwNTYsNiArMTA3OSwxMSBAQCBX
ZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJl
dHVybiBocmVmVmFsdWU7CiAgICAgfSwKIAorICAgIF9jbG9zaW5nVGFnSFRNTDogZnVuY3Rpb24o
dGFnTmFtZSkKKyAgICB7CisgICAgICAgIHJldHVybiAiPHNwYW4gY2xhc3M9XCJ3ZWJraXQtaHRt
bC10YWcgIiArICh0aGlzLmVsZW1lbnRDbG9zZVRhZyA/ICJjbG9zZSIgOiAiIikgKyAiXCI+Jmx0
Oy8iICsgdGFnTmFtZSArICImZ3Q7PC9zcGFuPiYjODIwMzsiOworICAgIH0sCisKICAgICBfbm9k
ZVRpdGxlSW5mbzogZnVuY3Rpb24obGlua2lmeSwgdG9vbHRpcFRleHQpCiAgICAgewogICAgICAg
ICB2YXIgbm9kZSA9IHRoaXMucmVwcmVzZW50ZWRPYmplY3Q7CkBAIC0xMDcyLDEzICsxMTAwLDE4
IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKIAogICAg
ICAgICAgICAgY2FzZSBOb2RlLkVMRU1FTlRfTk9ERToKICAgICAgICAgICAgICAgICB2YXIgdGFn
TmFtZSA9IHRoaXMudHJlZU91dGxpbmUubm9kZU5hbWVUb0NvcnJlY3RDYXNlKG5vZGUubm9kZU5h
bWUpLmVzY2FwZUhUTUwoKTsKKyAgICAgICAgICAgICAgICBpZiAodGhpcy5lbGVtZW50Q2xvc2VU
YWcpIHsKKyAgICAgICAgICAgICAgICAgICAgaW5mby50aXRsZSA9IHRoaXMuX2Nsb3NpbmdUYWdI
VE1MKHRhZ05hbWUpOworICAgICAgICAgICAgICAgICAgICBpbmZvLmhhc0NoaWxkcmVuID0gZmFs
c2U7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICBpbmZvLnRpdGxlID0gIjxzcGFuIGNsYXNzPVwid2Via2l0LWh0bWwtdGFnXCI+
Jmx0OyIgKyB0YWdOYW1lOwotICAgICAgICAgICAgICAgIAorCiAgICAgICAgICAgICAgICAgaWYg
KG5vZGUuaGFzQXR0cmlidXRlcygpKSB7CiAgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgbm9kZS5hdHRyaWJ1dGVzLmxlbmd0aDsgKytpKSB7CiAgICAgICAgICAgICAgICAg
ICAgICAgICB2YXIgYXR0ciA9IG5vZGUuYXR0cmlidXRlc1tpXTsKICAgICAgICAgICAgICAgICAg
ICAgICAgIGluZm8udGl0bGUgKz0gIiA8c3BhbiBjbGFzcz1cIndlYmtpdC1odG1sLWF0dHJpYnV0
ZVwiPjxzcGFuIGNsYXNzPVwid2Via2l0LWh0bWwtYXR0cmlidXRlLW5hbWVcIj4iICsgYXR0ci5u
YW1lLmVzY2FwZUhUTUwoKSArICI8L3NwYW4+PSYjODIwMztcIiI7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAKKwogICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gYXR0ci52YWx1
ZTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsaW5raWZ5ICYmIChhdHRyLm5hbWUgPT09
ICJzcmMiIHx8IGF0dHIubmFtZSA9PT0gImhyZWYiKSkgewogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHZhciB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoLyhbXC87OlwpXF1cfV0pL2csICIkMVx1
MjAwQiIpOwpAQCAtMTA5MywyMSArMTEyNiwyMCBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVl
RWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
IGluZm8udGl0bGUgKz0gIiZndDs8L3NwYW4+JiM4MjAzOyI7CiAgICAgICAgICAgICAgICAgCi0g
ICAgICAgICAgICAgICAgY29uc3QgY2xvc2luZ1RhZ0hUTUwgPSAiPHNwYW4gY2xhc3M9XCJ3ZWJr
aXQtaHRtbC10YWdcIj4mbHQ7LyIgKyB0YWdOYW1lICsgIiZndDs8L3NwYW4+JiM4MjAzOyI7CiAg
ICAgICAgICAgICAgICAgdmFyIHRleHRDaGlsZCA9IG9ubHlUZXh0Q2hpbGQuY2FsbChub2RlKTsK
ICAgICAgICAgICAgICAgICB2YXIgc2hvd0lubGluZVRleHQgPSB0ZXh0Q2hpbGQgJiYgdGV4dENo
aWxkLnRleHRDb250ZW50Lmxlbmd0aCA8IFByZWZlcmVuY2VzLm1heElubGluZVRleHRDaGlsZExl
bmd0aDsKIAogICAgICAgICAgICAgICAgIGlmICghdGhpcy5leHBhbmRlZCAmJiAoIXNob3dJbmxp
bmVUZXh0ICYmICh0aGlzLnRyZWVPdXRsaW5lLmlzWE1MTWltZVR5cGUgfHwgIVdlYkluc3BlY3Rv
ci5FbGVtZW50c1RyZWVFbGVtZW50LkZvcmJpZGRlbkNsb3NpbmdUYWdFbGVtZW50c1t0YWdOYW1l
XSkpKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmhhc0NoaWxkcmVuKQogICAgICAg
ICAgICAgICAgICAgICAgICAgaW5mby50aXRsZSArPSAiPHNwYW4gY2xhc3M9XCJ3ZWJraXQtaHRt
bC10ZXh0LW5vZGVcIj4mIzgyMzA7PC9zcGFuPiYjODIwMzsiOwotICAgICAgICAgICAgICAgICAg
ICBpbmZvLnRpdGxlICs9IGNsb3NpbmdUYWdIVE1MOworICAgICAgICAgICAgICAgICAgICBpbmZv
LnRpdGxlICs9IHRoaXMuX2Nsb3NpbmdUYWdIVE1MKHRhZ05hbWUpOwogICAgICAgICAgICAgICAg
IH0KIAogICAgICAgICAgICAgICAgIC8vIElmIHRoaXMgZWxlbWVudCBvbmx5IGhhcyBhIHNpbmds
ZSBjaGlsZCB0aGF0IGlzIGEgdGV4dCBub2RlLAogICAgICAgICAgICAgICAgIC8vIGp1c3Qgc2hv
dyB0aGF0IHRleHQgYW5kIHRoZSBjbG9zaW5nIHRhZyBpbmxpbmUgcmF0aGVyIHRoYW4KICAgICAg
ICAgICAgICAgICAvLyBjcmVhdGUgYSBzdWJ0cmVlIGZvciB0aGVtCiAgICAgICAgICAgICAgICAg
aWYgKHNob3dJbmxpbmVUZXh0KSB7Ci0gICAgICAgICAgICAgICAgICAgIGluZm8udGl0bGUgKz0g
IjxzcGFuIGNsYXNzPVwid2Via2l0LWh0bWwtdGV4dC1ub2RlXCI+IiArIHRleHRDaGlsZC5ub2Rl
VmFsdWUuZXNjYXBlSFRNTCgpICsgIjwvc3Bhbj4mIzgyMDM7IiArIGNsb3NpbmdUYWdIVE1MOwor
ICAgICAgICAgICAgICAgICAgICBpbmZvLnRpdGxlICs9ICI8c3BhbiBjbGFzcz1cIndlYmtpdC1o
dG1sLXRleHQtbm9kZVwiPiIgKyB0ZXh0Q2hpbGQubm9kZVZhbHVlLmVzY2FwZUhUTUwoKSArICI8
L3NwYW4+JiM4MjAzOyIgKyB0aGlzLl9jbG9zaW5nVGFnSFRNTCh0YWdOYW1lKTsKICAgICAgICAg
ICAgICAgICAgICAgaW5mby5oYXNDaGlsZHJlbiA9IGZhbHNlOwogICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICBicmVhazsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>51630</attachid>
            <date>2010-03-25 05:19:34 -0700</date>
            <delta_ts>2010-03-26 07:46:25 -0700</delta_ts>
            <desc>[PATCH] Fixed test failure</desc>
            <filename>selectableclosetags.patch</filename>
            <type>text/plain</type>
            <size>17380</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1NGQ0ZWExLi45Mjc5NjZlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTAtMDMt
MjUgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yIHNob3Vs
ZCBoaWdobGlnaHQgd2hlbiBjbGlja2luZyBhIG5vZGUncyBjbG9zaW5nIHRhZworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYyNTgKKworICAgICAgICAq
IGluc3BlY3Rvci9lbGVtZW50cy1wYW5lbC1saW1pdGVkLWNoaWxkcmVuLmh0bWw6CisKIDIwMTAt
MDMtMjUgIEZ1bWl0b3NoaSBVa2FpICA8dWthaUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZWxlbWVudHMtcGFuZWwtbGltaXRlZC1jaGlsZHJlbi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2VsZW1lbnRzLXBhbmVsLWxpbWl0ZWQtY2hpbGRyZW4uaHRtbAppbmRleCBjYjBmODk1Li45
ZjhlZTI0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtcGFuZWwt
bGltaXRlZC1jaGlsZHJlbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50
cy1wYW5lbC1saW1pdGVkLWNoaWxkcmVuLmh0bWwKQEAgLTQyLDcgKzQyLDEwIEBAIGZ1bmN0aW9u
IGRvaXQoKQogICAgICAgICB2YXIgZGF0YUVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiZGF0YSIpOwogICAgICAgICBkYXRhRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJhIikpOwogICAgICAgICBkYXRhRWxlbWVudC5yZW1vdmVDaGlsZChkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiaWQyIikpOwotICAgICAgICBkYXRhRWxlbWVudC5pbnNlcnRCZWZv
cmUoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
aWQxIikpOworICAgICAgICB2YXIgYUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJh
Iik7CisgICAgICAgIGRhdGFFbGVtZW50Lmluc2VydEJlZm9yZShhRWxlbWVudCwgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImlkMSIpKTsKKyAgICAgICAgZGF0YUVsZW1lbnQuYXBwZW5kQ2hpbGQo
YUVsZW1lbnQpOworICAgICAgICBkYXRhRWxlbWVudC5pbnNlcnRCZWZvcmUoYUVsZW1lbnQsIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJpZDEiKSk7CiAgICAgICAgIGV2YWx1YXRlSW5XZWJJbnNw
ZWN0b3IoImZyb250ZW5kX2R1bXBOb2RlIiwgbm9kZUR1bXBCZWZvcmVDYWxsYmFjayk7CiAgICAg
fQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IDhmMGZlZDguLjMxZjYyZjEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTAtMDMtMjUgIEFsZXhhbmRl
ciBQYXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yIHNob3VsZCBoaWdobGlnaHQg
d2hlbiBjbGlja2luZyBhIG5vZGUncyBjbG9zaW5nIHRhZworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYyNTgKKworICAgICAgICAqIGluc3BlY3Rvci9m
cm9udC1lbmQvRWxlbWVudHNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50
c1BhbmVsLnByb3RvdHlwZS5faGlnaGxpZ2h0Q3VycmVudFNlYXJjaFJlc3VsdCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5cGUuX2hpZGVTZWFyY2hIaWdobGln
aHRzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50c1BhbmVsLnByb3RvdHlwZS5zaW5n
bGVPclBhaXJlZFRyZWVFbGVtZW50cyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNQ
YW5lbC5wcm90b3R5cGUudXBkYXRlTW9kaWZpZWROb2Rlcyk6CisgICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkVsZW1lbnRzVHJlZU91dGxpbmUucHJvdG90eXBlLnNldCBzdXBwcmVzc1JldmVhbEFuZFNlbGVj
dCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlT3V0bGluZS5wcm90b3R5cGUu
cmV2ZWFsQW5kU2VsZWN0Tm9kZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVl
T3V0bGluZS5wcm90b3R5cGUuX2tleURvd24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1l
bnRzVHJlZU91dGxpbmUucHJvdG90eXBlLl9vbm1vdXNlbW92ZSk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVu
dHNUcmVlRWxlbWVudC5wcm90b3R5cGUuc2V0IGV4cGFuZGVkQ2hpbGRyZW5MaW1pdCk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUuc2hvd0NoaWxk
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZS5v
bnBvcHVsYXRlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnBy
b3RvdHlwZS51cGRhdGVDaGlsZHJlbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNU
cmVlRWxlbWVudC5wcm90b3R5cGUuaW5zZXJ0Q2hpbGRFbGVtZW50KToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZS5tb3ZlQ2hpbGQpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlLl91cGRhdGVDaGls
ZHJlbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5
cGUub25leHBhbmQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQu
cHJvdG90eXBlLm9uY29sbGFwc2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJl
ZUVsZW1lbnQucHJvdG90eXBlLm9uc2VsZWN0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVt
ZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZS5vbmRibGNsaWNrKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZS5fY2xvc2luZ1RhZ0hUTUwpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlLl9ub2RlVGl0
bGVJbmZvKToKKwogMjAxMC0wMy0yNCAgU3RldmUgQmxvY2sgIDxzdGV2ZWJsb2NrQGdvb2dsZS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQgTGV2aW4uCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNQYW5lbC5qcyBiL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzCmluZGV4IGUyY2E4MzguLjg5YWRlYTYgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzCisr
KyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzCkBAIC0zMjYs
MTAgKzMyNiwxMiBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5cGUgPSB7CiAg
ICAgewogICAgICAgICB0aGlzLl9oaWRlU2VhcmNoSGlnaGxpZ2h0cygpOwogICAgICAgICB2YXIg
bm9kZSA9IHRoaXMuX3NlYXJjaFJlc3VsdHNbdGhpcy5fY3VycmVudFNlYXJjaFJlc3VsdEluZGV4
XTsKLSAgICAgICAgdmFyIHRyZWVFbGVtZW50ID0gdGhpcy50cmVlT3V0bGluZS5maW5kVHJlZUVs
ZW1lbnQobm9kZSk7Ci0gICAgICAgIGlmICh0cmVlRWxlbWVudCkgewotICAgICAgICAgICAgdHJl
ZUVsZW1lbnQuaGlnaGxpZ2h0U2VhcmNoUmVzdWx0cyh0aGlzLl9zZWFyY2hRdWVyeSk7Ci0gICAg
ICAgICAgICB0cmVlRWxlbWVudC5yZXZlYWwoKTsKKyAgICAgICAgdmFyIHRyZWVFbGVtZW50cyA9
IHRoaXMuc2luZ2xlT3JQYWlyZWRUcmVlRWxlbWVudHMobm9kZSk7CisgICAgICAgIGlmICh0cmVl
RWxlbWVudHNbMF0pIHsKKyAgICAgICAgICAgIHRyZWVFbGVtZW50c1swXS5oaWdobGlnaHRTZWFy
Y2hSZXN1bHRzKHRoaXMuX3NlYXJjaFF1ZXJ5KTsKKyAgICAgICAgICAgIHRyZWVFbGVtZW50c1sw
XS5yZXZlYWwoKTsKKyAgICAgICAgICAgIGlmICh0cmVlRWxlbWVudHNbMV0gJiYgdHJlZUVsZW1l
bnRzWzFdLmVsZW1lbnRDbG9zZVRhZykKKyAgICAgICAgICAgICAgICB0cmVlRWxlbWVudHNbMV0u
aGlnaGxpZ2h0U2VhcmNoUmVzdWx0cyh0aGlzLl9zZWFyY2hRdWVyeSk7CiAgICAgICAgIH0KICAg
ICB9LAogCkBAIC0zMzcsMTAgKzMzOSwyOSBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5w
cm90b3R5cGUgPSB7CiAgICAgewogICAgICAgICBmb3IgKHZhciBpID0gMDsgdGhpcy5fc2VhcmNo
UmVzdWx0cyAmJiBpIDwgdGhpcy5fc2VhcmNoUmVzdWx0cy5sZW5ndGg7ICsraSkgewogICAgICAg
ICAgICAgdmFyIG5vZGUgPSB0aGlzLl9zZWFyY2hSZXN1bHRzW2ldOwotICAgICAgICAgICAgdmFy
IHRyZWVFbGVtZW50ID0gdGhpcy50cmVlT3V0bGluZS5maW5kVHJlZUVsZW1lbnQobm9kZSk7Ci0g
ICAgICAgICAgICBpZiAodHJlZUVsZW1lbnQpCi0gICAgICAgICAgICAgICAgdHJlZUVsZW1lbnQu
aGlnaGxpZ2h0U2VhcmNoUmVzdWx0cyhudWxsKTsKKyAgICAgICAgICAgIHZhciB0cmVlRWxlbWVu
dHMgPSB0aGlzLnNpbmdsZU9yUGFpcmVkVHJlZUVsZW1lbnRzKG5vZGUpOworICAgICAgICAgICAg
aWYgKHRyZWVFbGVtZW50c1swXSkgeworICAgICAgICAgICAgICAgIHRyZWVFbGVtZW50c1swXS5o
aWdobGlnaHRTZWFyY2hSZXN1bHRzKG51bGwpOworICAgICAgICAgICAgICAgIGlmICh0cmVlRWxl
bWVudHNbMV0pCisgICAgICAgICAgICAgICAgICAgIHRyZWVFbGVtZW50c1sxXS5oaWdobGlnaHRT
ZWFyY2hSZXN1bHRzKG51bGwpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfSwKKwor
ICAgIHNpbmdsZU9yUGFpcmVkVHJlZUVsZW1lbnRzOiBmdW5jdGlvbihub2RlKQorICAgIHsKKyAg
ICAgICAgdmFyIHJlc3VsdCA9IFtdOworICAgICAgICB2YXIgdHJlZUVsZW1lbnQgPSB0aGlzLnRy
ZWVPdXRsaW5lLmZpbmRUcmVlRWxlbWVudChub2RlKTsKKyAgICAgICAgaWYgKCF0cmVlRWxlbWVu
dCkKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisKKyAgICAgICAgcmVzdWx0LnB1c2godHJl
ZUVsZW1lbnQpOworICAgICAgICBpZiAodHJlZUVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoKSB7Cisg
ICAgICAgICAgICB0cmVlRWxlbWVudCA9IHRyZWVFbGVtZW50LmNoaWxkcmVuW3RyZWVFbGVtZW50
LmNoaWxkcmVuLmxlbmd0aCAtIDFdOworICAgICAgICAgICAgaWYgKHRyZWVFbGVtZW50ICYmIHRy
ZWVFbGVtZW50LmVsZW1lbnRDbG9zZVRhZykKKyAgICAgICAgICAgICAgICByZXN1bHQucHVzaCh0
cmVlRWxlbWVudCk7CiAgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9LAog
CiAgICAgcmVuYW1lU2VsZWN0b3I6IGZ1bmN0aW9uKG9sZElkZW50aWZpZXIsIG5ld0lkZW50aWZp
ZXIsIG9sZFNlbGVjdG9yLCBuZXdTZWxlY3RvcikKQEAgLTUyMSw5ICs1NDIsMTIgQEAgV2ViSW5z
cGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgdmFyIG5vZGUg
PSB0aGlzLnJlY2VudGx5TW9kaWZpZWROb2Rlc1tpXS5ub2RlOwogCiAgICAgICAgICAgICBpZiAo
dGhpcy5yZWNlbnRseU1vZGlmaWVkTm9kZXNbaV0udXBkYXRlZCkgewotICAgICAgICAgICAgICAg
IHZhciBub2RlSXRlbSA9IHRoaXMudHJlZU91dGxpbmUuZmluZFRyZWVFbGVtZW50KG5vZGUpOwot
ICAgICAgICAgICAgICAgIGlmIChub2RlSXRlbSkKLSAgICAgICAgICAgICAgICAgICAgbm9kZUl0
ZW0udXBkYXRlVGl0bGUoKTsKKyAgICAgICAgICAgICAgICB2YXIgbm9kZUl0ZW1zID0gdGhpcy5z
aW5nbGVPclBhaXJlZFRyZWVFbGVtZW50cyhub2RlKTsKKyAgICAgICAgICAgICAgICBpZiAobm9k
ZUl0ZW1zWzBdKSB7CisgICAgICAgICAgICAgICAgICAgIG5vZGVJdGVtc1swXS51cGRhdGVUaXRs
ZSgpOworICAgICAgICAgICAgICAgICAgICBpZiAobm9kZUl0ZW1zWzFdKQorICAgICAgICAgICAg
ICAgICAgICAgICAgbm9kZUl0ZW1zWzFdLnVwZGF0ZVRpdGxlKCk7CisgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgfQogICAgICAgICAgICAg
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNUcmVlT3V0
bGluZS5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5l
LmpzCmluZGV4IDI2YTE5NDkuLjE4Yzc0ZDkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpzCkBAIC0xODIsOSArMTgyLDE2IEBAIFdl
Ykluc3BlY3Rvci5FbGVtZW50c1RyZWVPdXRsaW5lLnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0
dXJuIG51bGw7CiAgICAgfSwKIAorICAgIHNldCBzdXBwcmVzc1JldmVhbEFuZFNlbGVjdCh4KQor
ICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX3N1cHByZXNzUmV2ZWFsQW5kU2VsZWN0ID09PSB4KQor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB0aGlzLl9zdXBwcmVzc1JldmVhbEFuZFNlbGVj
dCA9IHg7CisgICAgfSwKKwogICAgIHJldmVhbEFuZFNlbGVjdE5vZGU6IGZ1bmN0aW9uKG5vZGUp
CiAgICAgewotICAgICAgICBpZiAoIW5vZGUpCisgICAgICAgIGlmICghbm9kZSB8fCB0aGlzLl9z
dXBwcmVzc1JldmVhbEFuZFNlbGVjdCkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICB2
YXIgdHJlZUVsZW1lbnQgPSB0aGlzLmNyZWF0ZVRyZWVFbGVtZW50Rm9yKG5vZGUpOwpAQCAtMjMw
LDYgKzIzNyw5IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVPdXRsaW5lLnByb3RvdHlwZSA9
IHsKIAogICAgICAgICBpZiAoZXZlbnQua2V5Q29kZSA9PT0gV2ViSW5zcGVjdG9yLktleWJvYXJk
U2hvcnRjdXQuS2V5Q29kZXMuQmFja3NwYWNlIHx8CiAgICAgICAgICAgICAgICAgZXZlbnQua2V5
Q29kZSA9PT0gV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQuS2V5Q29kZXMuRGVsZXRlKSB7
CisgICAgICAgICAgICB2YXIgc3RhcnRUYWdUcmVlRWxlbWVudCA9IHRoaXMuZmluZFRyZWVFbGVt
ZW50KHNlbGVjdGVkRWxlbWVudC5yZXByZXNlbnRlZE9iamVjdCk7CisgICAgICAgICAgICBpZiAo
c2VsZWN0ZWRFbGVtZW50ICE9PSBzdGFydFRhZ1RyZWVFbGVtZW50KQorICAgICAgICAgICAgICAg
IHNlbGVjdGVkRWxlbWVudCA9IHN0YXJ0VGFnVHJlZUVsZW1lbnQ7CiAgICAgICAgICAgICBzZWxl
Y3RlZEVsZW1lbnQucmVtb3ZlKCk7CiAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgp
OwogICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7CkBAIC0yNzIsMTIgKzI4Miwx
MiBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlT3V0bGluZS5wcm90b3R5cGUgPSB7CiAgICAg
ICAgICAgICBkZWxldGUgdGhpcy5fcHJldmlvdXNIb3ZlcmVkRWxlbWVudDsKICAgICAgICAgfQog
Ci0gICAgICAgIGlmIChlbGVtZW50ICYmICFlbGVtZW50LmVsZW1lbnRDbG9zZVRhZykgeworICAg
ICAgICBpZiAoZWxlbWVudCkgewogICAgICAgICAgICAgZWxlbWVudC5ob3ZlcmVkID0gdHJ1ZTsK
ICAgICAgICAgICAgIHRoaXMuX3ByZXZpb3VzSG92ZXJlZEVsZW1lbnQgPSBlbGVtZW50OwogICAg
ICAgICB9CiAKLSAgICAgICAgV2ViSW5zcGVjdG9yLmhvdmVyZWRET01Ob2RlID0gKGVsZW1lbnQg
JiYgIWVsZW1lbnQuZWxlbWVudENsb3NlVGFnID8gZWxlbWVudC5yZXByZXNlbnRlZE9iamVjdCA6
IG51bGwpOworICAgICAgICBXZWJJbnNwZWN0b3IuaG92ZXJlZERPTU5vZGUgPSAoZWxlbWVudCA/
IGVsZW1lbnQucmVwcmVzZW50ZWRPYmplY3QgOiBudWxsKTsKICAgICB9LAogCiAgICAgX29ubW91
c2VvdXQ6IGZ1bmN0aW9uKGV2ZW50KQpAQCAtMzE0LDE0ICszMjQsMTUgQEAgV2ViSW5zcGVjdG9y
LkVsZW1lbnRzVHJlZU91dGxpbmUucHJvdG90eXBlID0gewogCiBXZWJJbnNwZWN0b3IuRWxlbWVu
dHNUcmVlT3V0bGluZS5wcm90b3R5cGUuX19wcm90b19fID0gVHJlZU91dGxpbmUucHJvdG90eXBl
OwogCi1XZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudCA9IGZ1bmN0aW9uKG5vZGUpCitX
ZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudCA9IGZ1bmN0aW9uKG5vZGUsIGVsZW1lbnRD
bG9zZVRhZykKIHsKLSAgICB2YXIgaGFzQ2hpbGRyZW5PdmVycmlkZSA9IG5vZGUuaGFzQ2hpbGRO
b2RlcygpICYmICF0aGlzLl9zaG93SW5saW5lVGV4dChub2RlKTsKKyAgICB0aGlzLmVsZW1lbnRD
bG9zZVRhZyA9IGVsZW1lbnRDbG9zZVRhZzsKKyAgICB2YXIgaGFzQ2hpbGRyZW5PdmVycmlkZSA9
ICFlbGVtZW50Q2xvc2VUYWcgJiYgbm9kZS5oYXNDaGlsZE5vZGVzKCkgJiYgIXRoaXMuX3Nob3dJ
bmxpbmVUZXh0KG5vZGUpOwogCiAgICAgLy8gVGhlIHRpdGxlIHdpbGwgYmUgdXBkYXRlZCBpbiBv
bmF0dGFjaC4KICAgICBUcmVlRWxlbWVudC5jYWxsKHRoaXMsICIiLCBub2RlLCBoYXNDaGlsZHJl
bk92ZXJyaWRlKTsKIAotICAgIGlmICh0aGlzLnJlcHJlc2VudGVkT2JqZWN0Lm5vZGVUeXBlID09
IE5vZGUuRUxFTUVOVF9OT0RFKQorICAgIGlmICh0aGlzLnJlcHJlc2VudGVkT2JqZWN0Lm5vZGVU
eXBlID09IE5vZGUuRUxFTUVOVF9OT0RFICYmICFlbGVtZW50Q2xvc2VUYWcpCiAgICAgICAgIHRo
aXMuX2NhbkFkZEF0dHJpYnV0ZXMgPSB0cnVlOwogICAgIHRoaXMuX3NlYXJjaFF1ZXJ5ID0gbnVs
bDsKICAgICB0aGlzLl9leHBhbmRlZENoaWxkcmVuTGltaXQgPSBXZWJJbnNwZWN0b3IuRWxlbWVu
dHNUcmVlRWxlbWVudC5Jbml0aWFsQ2hpbGRyZW5MaW1pdDsKQEAgLTM3Niw3ICszODcsNyBAQCBX
ZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAKICAgICBzZXQg
ZXhwYW5kZWRDaGlsZHJlbkxpbWl0KHgpCiAgICAgewotICAgICAgICBpZiAodGhpcy5fZXhwYW5k
ZWRDaGlsZHJlbkxpbWl0ID09PSB4KQorICAgICAgICBpZiAodGhpcy5fZXhwYW5kZWRDaGlsZHJl
bkxpbWl0ID09PSB4IHx8IHRoaXMuZWxlbWVudENsb3NlVGFnKQogICAgICAgICAgICAgcmV0dXJu
OwogCiAgICAgICAgIHRoaXMuX2V4cGFuZGVkQ2hpbGRyZW5MaW1pdCA9IHg7CkBAIC0zOTYsNiAr
NDA3LDkgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlID0gewog
CiAgICAgc2hvd0NoaWxkOiBmdW5jdGlvbihpbmRleCkKICAgICB7CisgICAgICAgIGlmICh0aGlz
LmVsZW1lbnRDbG9zZVRhZykKKyAgICAgICAgICAgIHJldHVybjsKKwogICAgICAgICBpZiAoaW5k
ZXggPj0gdGhpcy5leHBhbmRlZENoaWxkcmVuTGltaXQpIHsKICAgICAgICAgICAgIHRoaXMuX2V4
cGFuZGVkQ2hpbGRyZW5MaW1pdCA9IGluZGV4ICsgMTsKICAgICAgICAgICAgIHRoaXMuX3VwZGF0
ZUNoaWxkcmVuKHRydWUpOwpAQCAtNDA3LDYgKzQyMSw5IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50
c1RyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKIAogICAgIGNyZWF0ZVRvb2x0aXBGb3JJbWFnZU5v
ZGU6IGZ1bmN0aW9uKG5vZGUsIGNhbGxiYWNrKQogICAgIHsKKyAgICAgICAgaWYgKHRoaXMuZWxl
bWVudENsb3NlVGFnKQorICAgICAgICAgICAgcmV0dXJuOworCiAgICAgICAgIGZ1bmN0aW9uIGNy
ZWF0ZVRvb2x0aXBUaGVuQ2FsbGJhY2socHJvcGVydGllcykKICAgICAgICAgewogICAgICAgICAg
ICAgaWYgKCFwcm9wZXJ0aWVzKSB7CkBAIC00NzIsNyArNDg5LDcgQEAgV2ViSW5zcGVjdG9yLkVs
ZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogCiAgICAgb25wb3B1bGF0ZTogZnVuY3Rp
b24oKQogICAgIHsKLSAgICAgICAgaWYgKHRoaXMuY2hpbGRyZW4ubGVuZ3RoIHx8IHRoaXMuX3No
b3dJbmxpbmVUZXh0KHRoaXMucmVwcmVzZW50ZWRPYmplY3QpKQorICAgICAgICBpZiAodGhpcy5j
aGlsZHJlbi5sZW5ndGggfHwgdGhpcy5fc2hvd0lubGluZVRleHQodGhpcy5yZXByZXNlbnRlZE9i
amVjdCkgfHwgdGhpcy5lbGVtZW50Q2xvc2VUYWcpCiAgICAgICAgICAgICByZXR1cm47CiAKICAg
ICAgICAgdGhpcy51cGRhdGVDaGlsZHJlbigpOwpAQCAtNDgwLDEyICs0OTcsMTUgQEAgV2ViSW5z
cGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgIAogICAgIHVwZGF0
ZUNoaWxkcmVuOiBmdW5jdGlvbihmdWxsUmVmcmVzaCkKICAgICB7CisgICAgICAgIGlmICh0aGlz
LmVsZW1lbnRDbG9zZVRhZykKKyAgICAgICAgICAgIHJldHVybjsKKwogICAgICAgICBXZWJJbnNw
ZWN0b3IuZG9tQWdlbnQuZ2V0Q2hpbGROb2Rlc0FzeW5jKHRoaXMucmVwcmVzZW50ZWRPYmplY3Qs
IHRoaXMuX3VwZGF0ZUNoaWxkcmVuLmJpbmQodGhpcywgZnVsbFJlZnJlc2gpKTsKICAgICB9LAog
Ci0gICAgaW5zZXJ0Q2hpbGRFbGVtZW50OiBmdW5jdGlvbihjaGlsZCwgaW5kZXgpCisgICAgaW5z
ZXJ0Q2hpbGRFbGVtZW50OiBmdW5jdGlvbihjaGlsZCwgaW5kZXgsIGNsb3NpbmdUYWcpCiAgICAg
ewotICAgICAgICB2YXIgbmV3RWxlbWVudCA9IG5ldyBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVl
RWxlbWVudChjaGlsZCk7CisgICAgICAgIHZhciBuZXdFbGVtZW50ID0gbmV3IFdlYkluc3BlY3Rv
ci5FbGVtZW50c1RyZWVFbGVtZW50KGNoaWxkLCBjbG9zaW5nVGFnKTsKICAgICAgICAgbmV3RWxl
bWVudC5zZWxlY3RhYmxlID0gdGhpcy50cmVlT3V0bGluZS5zZWxlY3RFbmFibGVkOwogICAgICAg
ICB0aGlzLmluc2VydENoaWxkKG5ld0VsZW1lbnQsIGluZGV4KTsKICAgICAgICAgcmV0dXJuIG5l
d0VsZW1lbnQ7CkBAIC00OTQsMTAgKzUxNCwxMCBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVl
RWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgbW92ZUNoaWxkOiBmdW5jdGlvbihjaGlsZCwgdGFy
Z2V0SW5kZXgpCiAgICAgewogICAgICAgICB2YXIgd2FzU2VsZWN0ZWQgPSBjaGlsZC5zZWxlY3Rl
ZDsKLSAgICAgICAgdHJlZUVsZW1lbnQucmVtb3ZlQ2hpbGQoY2hpbGQpOwotICAgICAgICB0cmVl
RWxlbWVudC5pbnNlcnRDaGlsZChjaGlsZCwgdGFyZ2V0SW5kZXgpOworICAgICAgICB0aGlzLnJl
bW92ZUNoaWxkKGNoaWxkKTsKKyAgICAgICAgdGhpcy5pbnNlcnRDaGlsZChjaGlsZCwgdGFyZ2V0
SW5kZXgpOwogICAgICAgICBpZiAod2FzU2VsZWN0ZWQpCi0gICAgICAgICAgICBleGlzdGluZ1Ry
ZWVFbGVtZW50LnNlbGVjdCgpOworICAgICAgICAgICAgY2hpbGQuc2VsZWN0KCk7CiAgICAgfSwK
IAogICAgIF91cGRhdGVDaGlsZHJlbjogZnVuY3Rpb24oZnVsbFJlZnJlc2gpCkBAIC01NTksOSAr
NTc5LDYgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlID0gewog
CiAgICAgICAgIC8vIFJlbW92ZSBhbnkgdHJlZSBlbGVtZW50cyB0aGF0IG5vIGxvbmdlciBoYXZl
IHRoaXMgbm9kZSAob3IgdGhpcyBub2RlJ3MgY29udGVudERvY3VtZW50KSBhcyB0aGVpciBwYXJl
bnQuCiAgICAgICAgIGZvciAodmFyIGkgPSAodGhpcy5jaGlsZHJlbi5sZW5ndGggLSAxKTsgaSA+
PSAwOyAtLWkpIHsKLSAgICAgICAgICAgIGlmICgiZWxlbWVudENsb3NlVGFnIiBpbiB0aGlzLmNo
aWxkcmVuW2ldKQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotCiAgICAgICAgICAgICB2YXIg
Y3VycmVudENoaWxkID0gdGhpcy5jaGlsZHJlbltpXTsKICAgICAgICAgICAgIHZhciBjdXJyZW50
Tm9kZSA9IGN1cnJlbnRDaGlsZC5yZXByZXNlbnRlZE9iamVjdDsKICAgICAgICAgICAgIHZhciBj
dXJyZW50UGFyZW50Tm9kZSA9IGN1cnJlbnROb2RlLnBhcmVudE5vZGU7CkBAIC01ODAsMTMgKzU5
Nyw4IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAg
ICAgICAgdGhpcy5hZGp1c3RDb2xsYXBzZWRSYW5nZShmYWxzZSk7CiAKICAgICAgICAgdmFyIGxh
c3RDaGlsZCA9IHRoaXMuY2hpbGRyZW5bdGhpcy5jaGlsZHJlbi5sZW5ndGggLSAxXTsKLSAgICAg
ICAgaWYgKHRoaXMucmVwcmVzZW50ZWRPYmplY3Qubm9kZVR5cGUgPT0gTm9kZS5FTEVNRU5UX05P
REUgJiYgKCFsYXN0Q2hpbGQgfHwgIWxhc3RDaGlsZC5lbGVtZW50Q2xvc2VUYWcpKSB7Ci0gICAg
ICAgICAgICB2YXIgdGl0bGUgPSAiPHNwYW4gY2xhc3M9XCJ3ZWJraXQtaHRtbC10YWcgY2xvc2Vc
Ij4mbHQ7LyIgKyB0aGlzLnRyZWVPdXRsaW5lLm5vZGVOYW1lVG9Db3JyZWN0Q2FzZSh0aGlzLnJl
cHJlc2VudGVkT2JqZWN0Lm5vZGVOYW1lKS5lc2NhcGVIVE1MKCkgKyAiJmd0Ozwvc3Bhbj4iOwot
ICAgICAgICAgICAgdmFyIGl0ZW0gPSBuZXcgVHJlZUVsZW1lbnQodGl0bGUsIG51bGwsIGZhbHNl
KTsKLSAgICAgICAgICAgIGl0ZW0uc2VsZWN0YWJsZSA9IGZhbHNlOwotICAgICAgICAgICAgaXRl
bS5lbGVtZW50Q2xvc2VUYWcgPSB0cnVlOwotICAgICAgICAgICAgdGhpcy5hcHBlbmRDaGlsZChp
dGVtKTsKLSAgICAgICAgfQorICAgICAgICBpZiAodGhpcy5yZXByZXNlbnRlZE9iamVjdC5ub2Rl
VHlwZSA9PSBOb2RlLkVMRU1FTlRfTk9ERSAmJiAoIWxhc3RDaGlsZCB8fCAhbGFzdENoaWxkLmVs
ZW1lbnRDbG9zZVRhZykpCisgICAgICAgICAgICB0aGlzLmluc2VydENoaWxkRWxlbWVudCh0aGlz
LnJlcHJlc2VudGVkT2JqZWN0LCB0aGlzLmNoaWxkcmVuLmxlbmd0aCwgdHJ1ZSk7CiAKICAgICAg
ICAgLy8gV2Ugd2FudCB0byByZXN0b3JlIHRoZSBvcmlnaW5hbCBzZWxlY3Rpb24gYW5kIHRyZWUg
c2Nyb2xsIHBvc2l0aW9uIGFmdGVyIGEgZnVsbCByZWZyZXNoLCBpZiBwb3NzaWJsZS4KICAgICAg
ICAgaWYgKGZ1bGxSZWZyZXNoICYmIGVsZW1lbnRUb1NlbGVjdCkgewpAQCAtNjQwLDEyICs2NTIs
MTggQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogCiAg
ICAgb25leHBhbmQ6IGZ1bmN0aW9uKCkKICAgICB7CisgICAgICAgIGlmICh0aGlzLmVsZW1lbnRD
bG9zZVRhZykKKyAgICAgICAgICAgIHJldHVybjsKKwogICAgICAgICB0aGlzLnVwZGF0ZVRpdGxl
KCk7CiAgICAgICAgIHRoaXMudHJlZU91dGxpbmUudXBkYXRlU2VsZWN0aW9uKCk7CiAgICAgfSwK
IAogICAgIG9uY29sbGFwc2U6IGZ1bmN0aW9uKCkKICAgICB7CisgICAgICAgIGlmICh0aGlzLmVs
ZW1lbnRDbG9zZVRhZykKKyAgICAgICAgICAgIHJldHVybjsKKwogICAgICAgICB0aGlzLnVwZGF0
ZVRpdGxlKCk7CiAgICAgICAgIHRoaXMudHJlZU91dGxpbmUudXBkYXRlU2VsZWN0aW9uKCk7CiAg
ICAgfSwKQEAgLTY1OCw4ICs2NzYsMTAgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1l
bnQucHJvdG90eXBlID0gewogCiAgICAgb25zZWxlY3Q6IGZ1bmN0aW9uKCkKICAgICB7CisgICAg
ICAgIHRoaXMudHJlZU91dGxpbmUuc3VwcHJlc3NSZXZlYWxBbmRTZWxlY3QgPSB0cnVlOwogICAg
ICAgICB0aGlzLnRyZWVPdXRsaW5lLmZvY3VzZWRET01Ob2RlID0gdGhpcy5yZXByZXNlbnRlZE9i
amVjdDsKICAgICAgICAgdGhpcy51cGRhdGVTZWxlY3Rpb24oKTsKKyAgICAgICAgdGhpcy50cmVl
T3V0bGluZS5zdXBwcmVzc1JldmVhbEFuZFNlbGVjdCA9IGZhbHNlOwogICAgIH0sCiAKICAgICBv
bm1vdXNlZG93bjogZnVuY3Rpb24oZXZlbnQpCkBAIC02ODIsNyArNzAyLDcgQEAgV2ViSW5zcGVj
dG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogCiAgICAgb25kYmxjbGljazog
ZnVuY3Rpb24oZXZlbnQpCiAgICAgewotICAgICAgICBpZiAodGhpcy5fZWRpdGluZykKKyAgICAg
ICAgaWYgKHRoaXMuX2VkaXRpbmcgfHwgdGhpcy5lbGVtZW50Q2xvc2VUYWcpCiAgICAgICAgICAg
ICByZXR1cm47CiAKICAgICAgICAgaWYgKHRoaXMuX3N0YXJ0RWRpdGluZ0Zyb21FdmVudChldmVu
dCkpCkBAIC0xMDU2LDYgKzEwNzYsMTEgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1l
bnQucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gaHJlZlZhbHVlOwogICAgIH0sCiAKKyAg
ICBfY2xvc2luZ1RhZ0hUTUw6IGZ1bmN0aW9uKHRhZ05hbWUpCisgICAgeworICAgICAgICByZXR1
cm4gIjxzcGFuIGNsYXNzPVwid2Via2l0LWh0bWwtdGFnICIgKyAodGhpcy5lbGVtZW50Q2xvc2VU
YWcgPyAiY2xvc2UiIDogIiIpICsgIlwiPiZsdDsvIiArIHRhZ05hbWUgKyAiJmd0Ozwvc3Bhbj4m
IzgyMDM7IjsKKyAgICB9LAorCiAgICAgX25vZGVUaXRsZUluZm86IGZ1bmN0aW9uKGxpbmtpZnks
IHRvb2x0aXBUZXh0KQogICAgIHsKICAgICAgICAgdmFyIG5vZGUgPSB0aGlzLnJlcHJlc2VudGVk
T2JqZWN0OwpAQCAtMTA3MiwxMyArMTA5NywxOCBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVl
RWxlbWVudC5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgICAgIGNhc2UgTm9kZS5FTEVNRU5UX05P
REU6CiAgICAgICAgICAgICAgICAgdmFyIHRhZ05hbWUgPSB0aGlzLnRyZWVPdXRsaW5lLm5vZGVO
YW1lVG9Db3JyZWN0Q2FzZShub2RlLm5vZGVOYW1lKS5lc2NhcGVIVE1MKCk7CisgICAgICAgICAg
ICAgICAgaWYgKHRoaXMuZWxlbWVudENsb3NlVGFnKSB7CisgICAgICAgICAgICAgICAgICAgIGlu
Zm8udGl0bGUgPSB0aGlzLl9jbG9zaW5nVGFnSFRNTCh0YWdOYW1lKTsKKyAgICAgICAgICAgICAg
ICAgICAgaW5mby5oYXNDaGlsZHJlbiA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgaW5mby50aXRsZSA9ICI8c3Bh
biBjbGFzcz1cIndlYmtpdC1odG1sLXRhZ1wiPiZsdDsiICsgdGFnTmFtZTsKLSAgICAgICAgICAg
ICAgICAKKwogICAgICAgICAgICAgICAgIGlmIChub2RlLmhhc0F0dHJpYnV0ZXMoKSkgewogICAg
ICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5vZGUuYXR0cmlidXRlcy5sZW5n
dGg7ICsraSkgewogICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGF0dHIgPSBub2RlLmF0dHJp
YnV0ZXNbaV07CiAgICAgICAgICAgICAgICAgICAgICAgICBpbmZvLnRpdGxlICs9ICIgPHNwYW4g
Y2xhc3M9XCJ3ZWJraXQtaHRtbC1hdHRyaWJ1dGVcIj48c3BhbiBjbGFzcz1cIndlYmtpdC1odG1s
LWF0dHJpYnV0ZS1uYW1lXCI+IiArIGF0dHIubmFtZS5lc2NhcGVIVE1MKCkgKyAiPC9zcGFuPj0m
IzgyMDM7XCIiOwotICAgICAgICAgICAgICAgICAgICAgICAgCisKICAgICAgICAgICAgICAgICAg
ICAgICAgIHZhciB2YWx1ZSA9IGF0dHIudmFsdWU7CiAgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAobGlua2lmeSAmJiAoYXR0ci5uYW1lID09PSAic3JjIiB8fCBhdHRyLm5hbWUgPT09ICJocmVm
IikpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWUgPSB2YWx1ZS5yZXBs
YWNlKC8oW1wvOzpcKVxdXH1dKS9nLCAiJDFcdTIwMEIiKTsKQEAgLTEwOTMsMjEgKzExMjMsMjAg
QEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBpbmZvLnRpdGxlICs9ICImZ3Q7PC9zcGFuPiYj
ODIwMzsiOwogICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGNvbnN0IGNsb3NpbmdU
YWdIVE1MID0gIjxzcGFuIGNsYXNzPVwid2Via2l0LWh0bWwtdGFnXCI+Jmx0Oy8iICsgdGFnTmFt
ZSArICImZ3Q7PC9zcGFuPiYjODIwMzsiOwogICAgICAgICAgICAgICAgIHZhciB0ZXh0Q2hpbGQg
PSBvbmx5VGV4dENoaWxkLmNhbGwobm9kZSk7CiAgICAgICAgICAgICAgICAgdmFyIHNob3dJbmxp
bmVUZXh0ID0gdGV4dENoaWxkICYmIHRleHRDaGlsZC50ZXh0Q29udGVudC5sZW5ndGggPCBQcmVm
ZXJlbmNlcy5tYXhJbmxpbmVUZXh0Q2hpbGRMZW5ndGg7CiAKICAgICAgICAgICAgICAgICBpZiAo
IXRoaXMuZXhwYW5kZWQgJiYgKCFzaG93SW5saW5lVGV4dCAmJiAodGhpcy50cmVlT3V0bGluZS5p
c1hNTE1pbWVUeXBlIHx8ICFXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5Gb3JiaWRk
ZW5DbG9zaW5nVGFnRWxlbWVudHNbdGFnTmFtZV0pKSkgewogICAgICAgICAgICAgICAgICAgICBp
ZiAodGhpcy5oYXNDaGlsZHJlbikKICAgICAgICAgICAgICAgICAgICAgICAgIGluZm8udGl0bGUg
Kz0gIjxzcGFuIGNsYXNzPVwid2Via2l0LWh0bWwtdGV4dC1ub2RlXCI+JiM4MjMwOzwvc3Bhbj4m
IzgyMDM7IjsKLSAgICAgICAgICAgICAgICAgICAgaW5mby50aXRsZSArPSBjbG9zaW5nVGFnSFRN
TDsKKyAgICAgICAgICAgICAgICAgICAgaW5mby50aXRsZSArPSB0aGlzLl9jbG9zaW5nVGFnSFRN
TCh0YWdOYW1lKTsKICAgICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAgICAvLyBJZiB0
aGlzIGVsZW1lbnQgb25seSBoYXMgYSBzaW5nbGUgY2hpbGQgdGhhdCBpcyBhIHRleHQgbm9kZSwK
ICAgICAgICAgICAgICAgICAvLyBqdXN0IHNob3cgdGhhdCB0ZXh0IGFuZCB0aGUgY2xvc2luZyB0
YWcgaW5saW5lIHJhdGhlciB0aGFuCiAgICAgICAgICAgICAgICAgLy8gY3JlYXRlIGEgc3VidHJl
ZSBmb3IgdGhlbQogICAgICAgICAgICAgICAgIGlmIChzaG93SW5saW5lVGV4dCkgewotICAgICAg
ICAgICAgICAgICAgICBpbmZvLnRpdGxlICs9ICI8c3BhbiBjbGFzcz1cIndlYmtpdC1odG1sLXRl
eHQtbm9kZVwiPiIgKyB0ZXh0Q2hpbGQubm9kZVZhbHVlLmVzY2FwZUhUTUwoKSArICI8L3NwYW4+
JiM4MjAzOyIgKyBjbG9zaW5nVGFnSFRNTDsKKyAgICAgICAgICAgICAgICAgICAgaW5mby50aXRs
ZSArPSAiPHNwYW4gY2xhc3M9XCJ3ZWJraXQtaHRtbC10ZXh0LW5vZGVcIj4iICsgdGV4dENoaWxk
Lm5vZGVWYWx1ZS5lc2NhcGVIVE1MKCkgKyAiPC9zcGFuPiYjODIwMzsiICsgdGhpcy5fY2xvc2lu
Z1RhZ0hUTUwodGFnTmFtZSk7CiAgICAgICAgICAgICAgICAgICAgIGluZm8uaGFzQ2hpbGRyZW4g
PSBmYWxzZTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgYnJlYWs7Cg==
</data>
<flag name="review"
          id="34914"
          type_id="1"
          status="-"
          setter="pfeldman"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>51740</attachid>
            <date>2010-03-26 07:46:25 -0700</date>
            <delta_ts>2010-03-28 05:26:24 -0700</delta_ts>
            <desc>[PATCH] Removed an odd method</desc>
            <filename>selectableclosetags.patch</filename>
            <type>text/plain</type>
            <size>14254</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiMmFjZTA3Li4wNGJkMjdiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTAtMDMt
MjYgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yIHNob3Vs
ZCBoaWdobGlnaHQgd2hlbiBjbGlja2luZyBhIG5vZGUncyBjbG9zaW5nIHRhZworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYyNTgKKworICAgICAgICAq
IGluc3BlY3Rvci9lbGVtZW50cy1wYW5lbC1saW1pdGVkLWNoaWxkcmVuLmh0bWw6CisKIDIwMTAt
MDMtMjUgIERpZWdvIEdvbnphbGV6ICA8ZGllZ28uZ29uemFsZXpAb3BlbmJvc3NhLm9yZz4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9lbGVtZW50cy1wYW5lbC1saW1pdGVkLWNoaWxkcmVuLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtcGFuZWwtbGltaXRlZC1jaGlsZHJlbi5odG1sCmluZGV4
IGNiMGY4OTUuLjlmOGVlMjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVt
ZW50cy1wYW5lbC1saW1pdGVkLWNoaWxkcmVuLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2VsZW1lbnRzLXBhbmVsLWxpbWl0ZWQtY2hpbGRyZW4uaHRtbApAQCAtNDIsNyArNDIsMTAg
QEAgZnVuY3Rpb24gZG9pdCgpCiAgICAgICAgIHZhciBkYXRhRWxlbWVudCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJkYXRhIik7CiAgICAgICAgIGRhdGFFbGVtZW50LmFwcGVuZENoaWxkKGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKSk7CiAgICAgICAgIGRhdGFFbGVtZW50LnJlbW92ZUNo
aWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpZDIiKSk7Ci0gICAgICAgIGRhdGFFbGVtZW50
Lmluc2VydEJlZm9yZShkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIiksIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJpZDEiKSk7CisgICAgICAgIHZhciBhRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImEiKTsKKyAgICAgICAgZGF0YUVsZW1lbnQuaW5zZXJ0QmVmb3JlKGFFbGVtZW50
LCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaWQxIikpOworICAgICAgICBkYXRhRWxlbWVudC5h
cHBlbmRDaGlsZChhRWxlbWVudCk7CisgICAgICAgIGRhdGFFbGVtZW50Lmluc2VydEJlZm9yZShh
RWxlbWVudCwgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlkMSIpKTsKICAgICAgICAgZXZhbHVh
dGVJbldlYkluc3BlY3RvcigiZnJvbnRlbmRfZHVtcE5vZGUiLCBub2RlRHVtcEJlZm9yZUNhbGxi
YWNrKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggOWRkNDZlMy4uMzk4YjE0NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxMC0wMy0y
NiAgQWxleGFuZGVyIFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3Igc2hvdWxk
IGhpZ2hsaWdodCB3aGVuIGNsaWNraW5nIGEgbm9kZSdzIGNsb3NpbmcgdGFnCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjI1OAorCisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBlLl9oaWRlU2VhcmNoSGlnaGxpZ2h0cyk6CisgICAg
ICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpzOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZU91dGxpbmUucHJvdG90eXBlLnNldCBzdXBwcmVz
c1JldmVhbEFuZFNlbGVjdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlT3V0
bGluZS5wcm90b3R5cGUucmV2ZWFsQW5kU2VsZWN0Tm9kZSk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuRWxlbWVudHNUcmVlT3V0bGluZS5wcm90b3R5cGUuX2tleURvd24pOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkVsZW1lbnRzVHJlZU91dGxpbmUucHJvdG90eXBlLl9vbm1vdXNlbW92ZSk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUuc2V0IGV4cGFuZGVkQ2hpbGRy
ZW5MaW1pdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90
b3R5cGUuc2hvd0NoaWxkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVt
ZW50LnByb3RvdHlwZS5vbnBvcHVsYXRlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50
c1RyZWVFbGVtZW50LnByb3RvdHlwZS51cGRhdGVDaGlsZHJlbik6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUuaW5zZXJ0Q2hpbGRFbGVtZW50KToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZS5tb3Zl
Q2hpbGQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90
eXBlLl91cGRhdGVDaGlsZHJlbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVl
RWxlbWVudC5wcm90b3R5cGUub25leHBhbmQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1l
bnRzVHJlZUVsZW1lbnQucHJvdG90eXBlLm9uY29sbGFwc2UpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlLm9uc2VsZWN0KToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZS5vbmRibGNsaWNrKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZS5fY2xvc2lu
Z1RhZ0hUTUwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJv
dG90eXBlLl9ub2RlVGl0bGVJbmZvKToKKwogMjAxMC0wMy0yNSAgQW50dGkgS29pdmlzdG8gIDxr
b2l2aXN0b0Bpa2kuZmk+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJp
c3RpYW5zZW4uCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVu
dHNUcmVlT3V0bGluZS5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1Ry
ZWVPdXRsaW5lLmpzCmluZGV4IDI2YTE5NDkuLjE4Yzc0ZDkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpzCisrKyBiL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpzCkBAIC0xODIsOSArMTgy
LDE2IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVPdXRsaW5lLnByb3RvdHlwZSA9IHsKICAg
ICAgICAgcmV0dXJuIG51bGw7CiAgICAgfSwKIAorICAgIHNldCBzdXBwcmVzc1JldmVhbEFuZFNl
bGVjdCh4KQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX3N1cHByZXNzUmV2ZWFsQW5kU2VsZWN0
ID09PSB4KQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB0aGlzLl9zdXBwcmVzc1JldmVh
bEFuZFNlbGVjdCA9IHg7CisgICAgfSwKKwogICAgIHJldmVhbEFuZFNlbGVjdE5vZGU6IGZ1bmN0
aW9uKG5vZGUpCiAgICAgewotICAgICAgICBpZiAoIW5vZGUpCisgICAgICAgIGlmICghbm9kZSB8
fCB0aGlzLl9zdXBwcmVzc1JldmVhbEFuZFNlbGVjdCkKICAgICAgICAgICAgIHJldHVybjsKIAog
ICAgICAgICB2YXIgdHJlZUVsZW1lbnQgPSB0aGlzLmNyZWF0ZVRyZWVFbGVtZW50Rm9yKG5vZGUp
OwpAQCAtMjMwLDYgKzIzNyw5IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVPdXRsaW5lLnBy
b3RvdHlwZSA9IHsKIAogICAgICAgICBpZiAoZXZlbnQua2V5Q29kZSA9PT0gV2ViSW5zcGVjdG9y
LktleWJvYXJkU2hvcnRjdXQuS2V5Q29kZXMuQmFja3NwYWNlIHx8CiAgICAgICAgICAgICAgICAg
ZXZlbnQua2V5Q29kZSA9PT0gV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQuS2V5Q29kZXMu
RGVsZXRlKSB7CisgICAgICAgICAgICB2YXIgc3RhcnRUYWdUcmVlRWxlbWVudCA9IHRoaXMuZmlu
ZFRyZWVFbGVtZW50KHNlbGVjdGVkRWxlbWVudC5yZXByZXNlbnRlZE9iamVjdCk7CisgICAgICAg
ICAgICBpZiAoc2VsZWN0ZWRFbGVtZW50ICE9PSBzdGFydFRhZ1RyZWVFbGVtZW50KQorICAgICAg
ICAgICAgICAgIHNlbGVjdGVkRWxlbWVudCA9IHN0YXJ0VGFnVHJlZUVsZW1lbnQ7CiAgICAgICAg
ICAgICBzZWxlY3RlZEVsZW1lbnQucmVtb3ZlKCk7CiAgICAgICAgICAgICBldmVudC5wcmV2ZW50
RGVmYXVsdCgpOwogICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7CkBAIC0yNzIs
MTIgKzI4MiwxMiBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlT3V0bGluZS5wcm90b3R5cGUg
PSB7CiAgICAgICAgICAgICBkZWxldGUgdGhpcy5fcHJldmlvdXNIb3ZlcmVkRWxlbWVudDsKICAg
ICAgICAgfQogCi0gICAgICAgIGlmIChlbGVtZW50ICYmICFlbGVtZW50LmVsZW1lbnRDbG9zZVRh
ZykgeworICAgICAgICBpZiAoZWxlbWVudCkgewogICAgICAgICAgICAgZWxlbWVudC5ob3ZlcmVk
ID0gdHJ1ZTsKICAgICAgICAgICAgIHRoaXMuX3ByZXZpb3VzSG92ZXJlZEVsZW1lbnQgPSBlbGVt
ZW50OwogICAgICAgICB9CiAKLSAgICAgICAgV2ViSW5zcGVjdG9yLmhvdmVyZWRET01Ob2RlID0g
KGVsZW1lbnQgJiYgIWVsZW1lbnQuZWxlbWVudENsb3NlVGFnID8gZWxlbWVudC5yZXByZXNlbnRl
ZE9iamVjdCA6IG51bGwpOworICAgICAgICBXZWJJbnNwZWN0b3IuaG92ZXJlZERPTU5vZGUgPSAo
ZWxlbWVudCA/IGVsZW1lbnQucmVwcmVzZW50ZWRPYmplY3QgOiBudWxsKTsKICAgICB9LAogCiAg
ICAgX29ubW91c2VvdXQ6IGZ1bmN0aW9uKGV2ZW50KQpAQCAtMzE0LDE0ICszMjQsMTUgQEAgV2Vi
SW5zcGVjdG9yLkVsZW1lbnRzVHJlZU91dGxpbmUucHJvdG90eXBlID0gewogCiBXZWJJbnNwZWN0
b3IuRWxlbWVudHNUcmVlT3V0bGluZS5wcm90b3R5cGUuX19wcm90b19fID0gVHJlZU91dGxpbmUu
cHJvdG90eXBlOwogCi1XZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudCA9IGZ1bmN0aW9u
KG5vZGUpCitXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudCA9IGZ1bmN0aW9uKG5vZGUs
IGVsZW1lbnRDbG9zZVRhZykKIHsKLSAgICB2YXIgaGFzQ2hpbGRyZW5PdmVycmlkZSA9IG5vZGUu
aGFzQ2hpbGROb2RlcygpICYmICF0aGlzLl9zaG93SW5saW5lVGV4dChub2RlKTsKKyAgICB0aGlz
LmVsZW1lbnRDbG9zZVRhZyA9IGVsZW1lbnRDbG9zZVRhZzsKKyAgICB2YXIgaGFzQ2hpbGRyZW5P
dmVycmlkZSA9ICFlbGVtZW50Q2xvc2VUYWcgJiYgbm9kZS5oYXNDaGlsZE5vZGVzKCkgJiYgIXRo
aXMuX3Nob3dJbmxpbmVUZXh0KG5vZGUpOwogCiAgICAgLy8gVGhlIHRpdGxlIHdpbGwgYmUgdXBk
YXRlZCBpbiBvbmF0dGFjaC4KICAgICBUcmVlRWxlbWVudC5jYWxsKHRoaXMsICIiLCBub2RlLCBo
YXNDaGlsZHJlbk92ZXJyaWRlKTsKIAotICAgIGlmICh0aGlzLnJlcHJlc2VudGVkT2JqZWN0Lm5v
ZGVUeXBlID09IE5vZGUuRUxFTUVOVF9OT0RFKQorICAgIGlmICh0aGlzLnJlcHJlc2VudGVkT2Jq
ZWN0Lm5vZGVUeXBlID09IE5vZGUuRUxFTUVOVF9OT0RFICYmICFlbGVtZW50Q2xvc2VUYWcpCiAg
ICAgICAgIHRoaXMuX2NhbkFkZEF0dHJpYnV0ZXMgPSB0cnVlOwogICAgIHRoaXMuX3NlYXJjaFF1
ZXJ5ID0gbnVsbDsKICAgICB0aGlzLl9leHBhbmRlZENoaWxkcmVuTGltaXQgPSBXZWJJbnNwZWN0
b3IuRWxlbWVudHNUcmVlRWxlbWVudC5Jbml0aWFsQ2hpbGRyZW5MaW1pdDsKQEAgLTM3Niw3ICsz
ODcsNyBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAK
ICAgICBzZXQgZXhwYW5kZWRDaGlsZHJlbkxpbWl0KHgpCiAgICAgewotICAgICAgICBpZiAodGhp
cy5fZXhwYW5kZWRDaGlsZHJlbkxpbWl0ID09PSB4KQorICAgICAgICBpZiAodGhpcy5fZXhwYW5k
ZWRDaGlsZHJlbkxpbWl0ID09PSB4IHx8IHRoaXMuZWxlbWVudENsb3NlVGFnKQogICAgICAgICAg
ICAgcmV0dXJuOwogCiAgICAgICAgIHRoaXMuX2V4cGFuZGVkQ2hpbGRyZW5MaW1pdCA9IHg7CkBA
IC0zOTYsNiArNDA3LDkgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90
eXBlID0gewogCiAgICAgc2hvd0NoaWxkOiBmdW5jdGlvbihpbmRleCkKICAgICB7CisgICAgICAg
IGlmICh0aGlzLmVsZW1lbnRDbG9zZVRhZykKKyAgICAgICAgICAgIHJldHVybjsKKwogICAgICAg
ICBpZiAoaW5kZXggPj0gdGhpcy5leHBhbmRlZENoaWxkcmVuTGltaXQpIHsKICAgICAgICAgICAg
IHRoaXMuX2V4cGFuZGVkQ2hpbGRyZW5MaW1pdCA9IGluZGV4ICsgMTsKICAgICAgICAgICAgIHRo
aXMuX3VwZGF0ZUNoaWxkcmVuKHRydWUpOwpAQCAtNDA3LDYgKzQyMSw5IEBAIFdlYkluc3BlY3Rv
ci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKIAogICAgIGNyZWF0ZVRvb2x0aXBG
b3JJbWFnZU5vZGU6IGZ1bmN0aW9uKG5vZGUsIGNhbGxiYWNrKQogICAgIHsKKyAgICAgICAgaWYg
KHRoaXMuZWxlbWVudENsb3NlVGFnKQorICAgICAgICAgICAgcmV0dXJuOworCiAgICAgICAgIGZ1
bmN0aW9uIGNyZWF0ZVRvb2x0aXBUaGVuQ2FsbGJhY2socHJvcGVydGllcykKICAgICAgICAgewog
ICAgICAgICAgICAgaWYgKCFwcm9wZXJ0aWVzKSB7CkBAIC00NzIsNyArNDg5LDcgQEAgV2ViSW5z
cGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogCiAgICAgb25wb3B1bGF0
ZTogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgaWYgKHRoaXMuY2hpbGRyZW4ubGVuZ3RoIHx8
IHRoaXMuX3Nob3dJbmxpbmVUZXh0KHRoaXMucmVwcmVzZW50ZWRPYmplY3QpKQorICAgICAgICBp
ZiAodGhpcy5jaGlsZHJlbi5sZW5ndGggfHwgdGhpcy5fc2hvd0lubGluZVRleHQodGhpcy5yZXBy
ZXNlbnRlZE9iamVjdCkgfHwgdGhpcy5lbGVtZW50Q2xvc2VUYWcpCiAgICAgICAgICAgICByZXR1
cm47CiAKICAgICAgICAgdGhpcy51cGRhdGVDaGlsZHJlbigpOwpAQCAtNDgwLDEyICs0OTcsMTUg
QEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgIAog
ICAgIHVwZGF0ZUNoaWxkcmVuOiBmdW5jdGlvbihmdWxsUmVmcmVzaCkKICAgICB7CisgICAgICAg
IGlmICh0aGlzLmVsZW1lbnRDbG9zZVRhZykKKyAgICAgICAgICAgIHJldHVybjsKKwogICAgICAg
ICBXZWJJbnNwZWN0b3IuZG9tQWdlbnQuZ2V0Q2hpbGROb2Rlc0FzeW5jKHRoaXMucmVwcmVzZW50
ZWRPYmplY3QsIHRoaXMuX3VwZGF0ZUNoaWxkcmVuLmJpbmQodGhpcywgZnVsbFJlZnJlc2gpKTsK
ICAgICB9LAogCi0gICAgaW5zZXJ0Q2hpbGRFbGVtZW50OiBmdW5jdGlvbihjaGlsZCwgaW5kZXgp
CisgICAgaW5zZXJ0Q2hpbGRFbGVtZW50OiBmdW5jdGlvbihjaGlsZCwgaW5kZXgsIGNsb3NpbmdU
YWcpCiAgICAgewotICAgICAgICB2YXIgbmV3RWxlbWVudCA9IG5ldyBXZWJJbnNwZWN0b3IuRWxl
bWVudHNUcmVlRWxlbWVudChjaGlsZCk7CisgICAgICAgIHZhciBuZXdFbGVtZW50ID0gbmV3IFdl
Ykluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50KGNoaWxkLCBjbG9zaW5nVGFnKTsKICAgICAg
ICAgbmV3RWxlbWVudC5zZWxlY3RhYmxlID0gdGhpcy50cmVlT3V0bGluZS5zZWxlY3RFbmFibGVk
OwogICAgICAgICB0aGlzLmluc2VydENoaWxkKG5ld0VsZW1lbnQsIGluZGV4KTsKICAgICAgICAg
cmV0dXJuIG5ld0VsZW1lbnQ7CkBAIC00OTQsMTAgKzUxNCwxMCBAQCBXZWJJbnNwZWN0b3IuRWxl
bWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgbW92ZUNoaWxkOiBmdW5jdGlvbihj
aGlsZCwgdGFyZ2V0SW5kZXgpCiAgICAgewogICAgICAgICB2YXIgd2FzU2VsZWN0ZWQgPSBjaGls
ZC5zZWxlY3RlZDsKLSAgICAgICAgdHJlZUVsZW1lbnQucmVtb3ZlQ2hpbGQoY2hpbGQpOwotICAg
ICAgICB0cmVlRWxlbWVudC5pbnNlcnRDaGlsZChjaGlsZCwgdGFyZ2V0SW5kZXgpOworICAgICAg
ICB0aGlzLnJlbW92ZUNoaWxkKGNoaWxkKTsKKyAgICAgICAgdGhpcy5pbnNlcnRDaGlsZChjaGls
ZCwgdGFyZ2V0SW5kZXgpOwogICAgICAgICBpZiAod2FzU2VsZWN0ZWQpCi0gICAgICAgICAgICBl
eGlzdGluZ1RyZWVFbGVtZW50LnNlbGVjdCgpOworICAgICAgICAgICAgY2hpbGQuc2VsZWN0KCk7
CiAgICAgfSwKIAogICAgIF91cGRhdGVDaGlsZHJlbjogZnVuY3Rpb24oZnVsbFJlZnJlc2gpCkBA
IC01NTksOSArNTc5LDYgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90
eXBlID0gewogCiAgICAgICAgIC8vIFJlbW92ZSBhbnkgdHJlZSBlbGVtZW50cyB0aGF0IG5vIGxv
bmdlciBoYXZlIHRoaXMgbm9kZSAob3IgdGhpcyBub2RlJ3MgY29udGVudERvY3VtZW50KSBhcyB0
aGVpciBwYXJlbnQuCiAgICAgICAgIGZvciAodmFyIGkgPSAodGhpcy5jaGlsZHJlbi5sZW5ndGgg
LSAxKTsgaSA+PSAwOyAtLWkpIHsKLSAgICAgICAgICAgIGlmICgiZWxlbWVudENsb3NlVGFnIiBp
biB0aGlzLmNoaWxkcmVuW2ldKQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotCiAgICAgICAg
ICAgICB2YXIgY3VycmVudENoaWxkID0gdGhpcy5jaGlsZHJlbltpXTsKICAgICAgICAgICAgIHZh
ciBjdXJyZW50Tm9kZSA9IGN1cnJlbnRDaGlsZC5yZXByZXNlbnRlZE9iamVjdDsKICAgICAgICAg
ICAgIHZhciBjdXJyZW50UGFyZW50Tm9kZSA9IGN1cnJlbnROb2RlLnBhcmVudE5vZGU7CkBAIC01
ODAsMTMgKzU5Nyw4IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlw
ZSA9IHsKICAgICAgICAgdGhpcy5hZGp1c3RDb2xsYXBzZWRSYW5nZShmYWxzZSk7CiAKICAgICAg
ICAgdmFyIGxhc3RDaGlsZCA9IHRoaXMuY2hpbGRyZW5bdGhpcy5jaGlsZHJlbi5sZW5ndGggLSAx
XTsKLSAgICAgICAgaWYgKHRoaXMucmVwcmVzZW50ZWRPYmplY3Qubm9kZVR5cGUgPT0gTm9kZS5F
TEVNRU5UX05PREUgJiYgKCFsYXN0Q2hpbGQgfHwgIWxhc3RDaGlsZC5lbGVtZW50Q2xvc2VUYWcp
KSB7Ci0gICAgICAgICAgICB2YXIgdGl0bGUgPSAiPHNwYW4gY2xhc3M9XCJ3ZWJraXQtaHRtbC10
YWcgY2xvc2VcIj4mbHQ7LyIgKyB0aGlzLnRyZWVPdXRsaW5lLm5vZGVOYW1lVG9Db3JyZWN0Q2Fz
ZSh0aGlzLnJlcHJlc2VudGVkT2JqZWN0Lm5vZGVOYW1lKS5lc2NhcGVIVE1MKCkgKyAiJmd0Ozwv
c3Bhbj4iOwotICAgICAgICAgICAgdmFyIGl0ZW0gPSBuZXcgVHJlZUVsZW1lbnQodGl0bGUsIG51
bGwsIGZhbHNlKTsKLSAgICAgICAgICAgIGl0ZW0uc2VsZWN0YWJsZSA9IGZhbHNlOwotICAgICAg
ICAgICAgaXRlbS5lbGVtZW50Q2xvc2VUYWcgPSB0cnVlOwotICAgICAgICAgICAgdGhpcy5hcHBl
bmRDaGlsZChpdGVtKTsKLSAgICAgICAgfQorICAgICAgICBpZiAodGhpcy5yZXByZXNlbnRlZE9i
amVjdC5ub2RlVHlwZSA9PSBOb2RlLkVMRU1FTlRfTk9ERSAmJiAoIWxhc3RDaGlsZCB8fCAhbGFz
dENoaWxkLmVsZW1lbnRDbG9zZVRhZykpCisgICAgICAgICAgICB0aGlzLmluc2VydENoaWxkRWxl
bWVudCh0aGlzLnJlcHJlc2VudGVkT2JqZWN0LCB0aGlzLmNoaWxkcmVuLmxlbmd0aCwgdHJ1ZSk7
CiAKICAgICAgICAgLy8gV2Ugd2FudCB0byByZXN0b3JlIHRoZSBvcmlnaW5hbCBzZWxlY3Rpb24g
YW5kIHRyZWUgc2Nyb2xsIHBvc2l0aW9uIGFmdGVyIGEgZnVsbCByZWZyZXNoLCBpZiBwb3NzaWJs
ZS4KICAgICAgICAgaWYgKGZ1bGxSZWZyZXNoICYmIGVsZW1lbnRUb1NlbGVjdCkgewpAQCAtNjQw
LDEyICs2NTIsMTggQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBl
ID0gewogCiAgICAgb25leHBhbmQ6IGZ1bmN0aW9uKCkKICAgICB7CisgICAgICAgIGlmICh0aGlz
LmVsZW1lbnRDbG9zZVRhZykKKyAgICAgICAgICAgIHJldHVybjsKKwogICAgICAgICB0aGlzLnVw
ZGF0ZVRpdGxlKCk7CiAgICAgICAgIHRoaXMudHJlZU91dGxpbmUudXBkYXRlU2VsZWN0aW9uKCk7
CiAgICAgfSwKIAogICAgIG9uY29sbGFwc2U6IGZ1bmN0aW9uKCkKICAgICB7CisgICAgICAgIGlm
ICh0aGlzLmVsZW1lbnRDbG9zZVRhZykKKyAgICAgICAgICAgIHJldHVybjsKKwogICAgICAgICB0
aGlzLnVwZGF0ZVRpdGxlKCk7CiAgICAgICAgIHRoaXMudHJlZU91dGxpbmUudXBkYXRlU2VsZWN0
aW9uKCk7CiAgICAgfSwKQEAgLTY1OCw4ICs2NzYsMTAgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRz
VHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogCiAgICAgb25zZWxlY3Q6IGZ1bmN0aW9uKCkKICAg
ICB7CisgICAgICAgIHRoaXMudHJlZU91dGxpbmUuc3VwcHJlc3NSZXZlYWxBbmRTZWxlY3QgPSB0
cnVlOwogICAgICAgICB0aGlzLnRyZWVPdXRsaW5lLmZvY3VzZWRET01Ob2RlID0gdGhpcy5yZXBy
ZXNlbnRlZE9iamVjdDsKICAgICAgICAgdGhpcy51cGRhdGVTZWxlY3Rpb24oKTsKKyAgICAgICAg
dGhpcy50cmVlT3V0bGluZS5zdXBwcmVzc1JldmVhbEFuZFNlbGVjdCA9IGZhbHNlOwogICAgIH0s
CiAKICAgICBvbm1vdXNlZG93bjogZnVuY3Rpb24oZXZlbnQpCkBAIC02ODIsNyArNzAyLDcgQEAg
V2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogCiAgICAgb25k
YmxjbGljazogZnVuY3Rpb24oZXZlbnQpCiAgICAgewotICAgICAgICBpZiAodGhpcy5fZWRpdGlu
ZykKKyAgICAgICAgaWYgKHRoaXMuX2VkaXRpbmcgfHwgdGhpcy5lbGVtZW50Q2xvc2VUYWcpCiAg
ICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgaWYgKHRoaXMuX3N0YXJ0RWRpdGluZ0Zyb21F
dmVudChldmVudCkpCkBAIC0xMDU2LDYgKzEwNzYsMTEgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRz
VHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gaHJlZlZhbHVlOwogICAg
IH0sCiAKKyAgICBfY2xvc2luZ1RhZ0hUTUw6IGZ1bmN0aW9uKHRhZ05hbWUpCisgICAgeworICAg
ICAgICByZXR1cm4gIjxzcGFuIGNsYXNzPVwid2Via2l0LWh0bWwtdGFnICIgKyAodGhpcy5lbGVt
ZW50Q2xvc2VUYWcgPyAiY2xvc2UiIDogIiIpICsgIlwiPiZsdDsvIiArIHRhZ05hbWUgKyAiJmd0
Ozwvc3Bhbj4mIzgyMDM7IjsKKyAgICB9LAorCiAgICAgX25vZGVUaXRsZUluZm86IGZ1bmN0aW9u
KGxpbmtpZnksIHRvb2x0aXBUZXh0KQogICAgIHsKICAgICAgICAgdmFyIG5vZGUgPSB0aGlzLnJl
cHJlc2VudGVkT2JqZWN0OwpAQCAtMTA3MiwxMyArMTA5NywxOCBAQCBXZWJJbnNwZWN0b3IuRWxl
bWVudHNUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgICAgIGNhc2UgTm9kZS5F
TEVNRU5UX05PREU6CiAgICAgICAgICAgICAgICAgdmFyIHRhZ05hbWUgPSB0aGlzLnRyZWVPdXRs
aW5lLm5vZGVOYW1lVG9Db3JyZWN0Q2FzZShub2RlLm5vZGVOYW1lKS5lc2NhcGVIVE1MKCk7Cisg
ICAgICAgICAgICAgICAgaWYgKHRoaXMuZWxlbWVudENsb3NlVGFnKSB7CisgICAgICAgICAgICAg
ICAgICAgIGluZm8udGl0bGUgPSB0aGlzLl9jbG9zaW5nVGFnSFRNTCh0YWdOYW1lKTsKKyAgICAg
ICAgICAgICAgICAgICAgaW5mby5oYXNDaGlsZHJlbiA9IGZhbHNlOworICAgICAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgaW5mby50aXRs
ZSA9ICI8c3BhbiBjbGFzcz1cIndlYmtpdC1odG1sLXRhZ1wiPiZsdDsiICsgdGFnTmFtZTsKLSAg
ICAgICAgICAgICAgICAKKwogICAgICAgICAgICAgICAgIGlmIChub2RlLmhhc0F0dHJpYnV0ZXMo
KSkgewogICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5vZGUuYXR0cmli
dXRlcy5sZW5ndGg7ICsraSkgewogICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGF0dHIgPSBu
b2RlLmF0dHJpYnV0ZXNbaV07CiAgICAgICAgICAgICAgICAgICAgICAgICBpbmZvLnRpdGxlICs9
ICIgPHNwYW4gY2xhc3M9XCJ3ZWJraXQtaHRtbC1hdHRyaWJ1dGVcIj48c3BhbiBjbGFzcz1cIndl
YmtpdC1odG1sLWF0dHJpYnV0ZS1uYW1lXCI+IiArIGF0dHIubmFtZS5lc2NhcGVIVE1MKCkgKyAi
PC9zcGFuPj0mIzgyMDM7XCIiOwotICAgICAgICAgICAgICAgICAgICAgICAgCisKICAgICAgICAg
ICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IGF0dHIudmFsdWU7CiAgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAobGlua2lmeSAmJiAoYXR0ci5uYW1lID09PSAic3JjIiB8fCBhdHRyLm5hbWUg
PT09ICJocmVmIikpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWUgPSB2
YWx1ZS5yZXBsYWNlKC8oW1wvOzpcKVxdXH1dKS9nLCAiJDFcdTIwMEIiKTsKQEAgLTEwOTMsMjEg
KzExMjMsMjAgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlID0g
ewogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBpbmZvLnRpdGxlICs9ICImZ3Q7
PC9zcGFuPiYjODIwMzsiOwogICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGNvbnN0
IGNsb3NpbmdUYWdIVE1MID0gIjxzcGFuIGNsYXNzPVwid2Via2l0LWh0bWwtdGFnXCI+Jmx0Oy8i
ICsgdGFnTmFtZSArICImZ3Q7PC9zcGFuPiYjODIwMzsiOwogICAgICAgICAgICAgICAgIHZhciB0
ZXh0Q2hpbGQgPSBvbmx5VGV4dENoaWxkLmNhbGwobm9kZSk7CiAgICAgICAgICAgICAgICAgdmFy
IHNob3dJbmxpbmVUZXh0ID0gdGV4dENoaWxkICYmIHRleHRDaGlsZC50ZXh0Q29udGVudC5sZW5n
dGggPCBQcmVmZXJlbmNlcy5tYXhJbmxpbmVUZXh0Q2hpbGRMZW5ndGg7CiAKICAgICAgICAgICAg
ICAgICBpZiAoIXRoaXMuZXhwYW5kZWQgJiYgKCFzaG93SW5saW5lVGV4dCAmJiAodGhpcy50cmVl
T3V0bGluZS5pc1hNTE1pbWVUeXBlIHx8ICFXZWJJbnNwZWN0b3IuRWxlbWVudHNUcmVlRWxlbWVu
dC5Gb3JiaWRkZW5DbG9zaW5nVGFnRWxlbWVudHNbdGFnTmFtZV0pKSkgewogICAgICAgICAgICAg
ICAgICAgICBpZiAodGhpcy5oYXNDaGlsZHJlbikKICAgICAgICAgICAgICAgICAgICAgICAgIGlu
Zm8udGl0bGUgKz0gIjxzcGFuIGNsYXNzPVwid2Via2l0LWh0bWwtdGV4dC1ub2RlXCI+JiM4MjMw
Ozwvc3Bhbj4mIzgyMDM7IjsKLSAgICAgICAgICAgICAgICAgICAgaW5mby50aXRsZSArPSBjbG9z
aW5nVGFnSFRNTDsKKyAgICAgICAgICAgICAgICAgICAgaW5mby50aXRsZSArPSB0aGlzLl9jbG9z
aW5nVGFnSFRNTCh0YWdOYW1lKTsKICAgICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAg
ICAvLyBJZiB0aGlzIGVsZW1lbnQgb25seSBoYXMgYSBzaW5nbGUgY2hpbGQgdGhhdCBpcyBhIHRl
eHQgbm9kZSwKICAgICAgICAgICAgICAgICAvLyBqdXN0IHNob3cgdGhhdCB0ZXh0IGFuZCB0aGUg
Y2xvc2luZyB0YWcgaW5saW5lIHJhdGhlciB0aGFuCiAgICAgICAgICAgICAgICAgLy8gY3JlYXRl
IGEgc3VidHJlZSBmb3IgdGhlbQogICAgICAgICAgICAgICAgIGlmIChzaG93SW5saW5lVGV4dCkg
ewotICAgICAgICAgICAgICAgICAgICBpbmZvLnRpdGxlICs9ICI8c3BhbiBjbGFzcz1cIndlYmtp
dC1odG1sLXRleHQtbm9kZVwiPiIgKyB0ZXh0Q2hpbGQubm9kZVZhbHVlLmVzY2FwZUhUTUwoKSAr
ICI8L3NwYW4+JiM4MjAzOyIgKyBjbG9zaW5nVGFnSFRNTDsKKyAgICAgICAgICAgICAgICAgICAg
aW5mby50aXRsZSArPSAiPHNwYW4gY2xhc3M9XCJ3ZWJraXQtaHRtbC10ZXh0LW5vZGVcIj4iICsg
dGV4dENoaWxkLm5vZGVWYWx1ZS5lc2NhcGVIVE1MKCkgKyAiPC9zcGFuPiYjODIwMzsiICsgdGhp
cy5fY2xvc2luZ1RhZ0hUTUwodGFnTmFtZSk7CiAgICAgICAgICAgICAgICAgICAgIGluZm8uaGFz
Q2hpbGRyZW4gPSBmYWxzZTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgYnJl
YWs7Cg==
</data>
<flag name="review"
          id="35074"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
    <flag name="commit-queue"
          id="35075"
          type_id="3"
          status="-"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>