<?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>149760</bug_id>
          
          <creation_ts>2015-10-02 12:44:58 -0700</creation_ts>
          <short_desc>Web Inspector: Cleanup DebuggerManager, reduce `delete` and use Maps instead of objects</short_desc>
          <delta_ts>2015-10-02 19:28:54 -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>WebKit 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="Matt Baker">mattbaker</reporter>
          <assigned_to name="Matt Baker">mattbaker</assigned_to>
          <cc>bburg</cc>
    
    <cc>commit-queue</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</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>1130283</commentid>
    <comment_count>0</comment_count>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2015-10-02 12:44:58 -0700</bug_when>
    <thetext>* SUMMARY
Cleanup DebuggerManager, reduce `delete` and use Maps instead of objects.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1130284</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-10-02 12:46:04 -0700</bug_when>
    <thetext>&lt;rdar://problem/22954630&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1130391</commentid>
    <comment_count>2</comment_count>
      <attachid>262371</attachid>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2015-10-02 18:06:24 -0700</bug_when>
    <thetext>Created attachment 262371
[Patch] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1130396</commentid>
    <comment_count>3</comment_count>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2015-10-02 18:17:19 -0700</bug_when>
    <thetext>No instances of delete to remove (other than those used to remove hashmap object properties), just the switch to using Map.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1130398</commentid>
    <comment_count>4</comment_count>
      <attachid>262371</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-10-02 18:22:31 -0700</bug_when>
    <thetext>Comment on attachment 262371
[Patch] Proposed Fix

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

r=me

&gt; Source/WebInspectorUI/UserInterface/Controllers/DebuggerManager.js:280
&gt; +        if (this._breakpointURLMap.has(sourceCode.url)) {
&gt; +            let urlBreakpoints = this._breakpointURLMap.get(sourceCode.url);

I tend to think we should reduce &quot;has&quot; &amp;&amp; &quot;get&quot; to just a get.

    let urlBreakpoints = this._breakpointURLMap.get(sourceCode.url);
    if (urlBreakpoints) { ... }

&gt; Source/WebInspectorUI/UserInterface/Controllers/DebuggerManager.js:286
&gt; +        if (sourceCode instanceof WebInspector.Script &amp;&amp; this._breakpointScriptIdentifierMap.has(sourceCode.id)) {
&gt; +            let scriptIdentifierBreakpoints = this._breakpointScriptIdentifierMap.get(sourceCode.id);

Same here, but it would involve more rewriting.

&gt; Source/WebInspectorUI/UserInterface/Controllers/DebuggerManager.js:296
&gt; -        return this._breakpointIdMap[id];
&gt; +        return this._breakpointIdMap.get(id);

We probably should do `|| null` here too.

&gt; Source/WebInspectorUI/UserInterface/Controllers/DebuggerManager.js:301
&gt; +        return this._scriptIdMap.get(id);

This should still have `|| null` to return `null` for missing values instead of `undefined`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1130405</commentid>
    <comment_count>5</comment_count>
      <attachid>262374</attachid>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2015-10-02 18:40:15 -0700</bug_when>
    <thetext>Created attachment 262374
[Patch] For Landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1130413</commentid>
    <comment_count>6</comment_count>
      <attachid>262374</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-02 19:28:49 -0700</bug_when>
    <thetext>Comment on attachment 262374
[Patch] For Landing

Clearing flags on attachment: 262374

Committed r190540: &lt;http://trac.webkit.org/changeset/190540&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1130414</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-02 19:28:54 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>262371</attachid>
            <date>2015-10-02 18:06:24 -0700</date>
            <delta_ts>2015-10-02 18:40:09 -0700</delta_ts>
            <desc>[Patch] Proposed Fix</desc>
            <filename>bug-149760-20151002180556.patch</filename>
            <type>text/plain</type>
            <size>12297</size>
            <attacher name="Matt Baker">mattbaker</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwNTI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCBi
MzFmYzQzZWYzOWZhNmVhODc4MjBhYTg3M2JiYTA5NmU1MmQ3ODhkLi4zZTQ2MGJhZWM4MDNlOWI4
NWMyY2QxZWE5NzZjZDY4NjQ3MjM2N2E1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOCBAQAorMjAxNS0xMC0wMiAgTWF0dCBCYWtlciAgPG1hdHRiYWtlckBhcHBsZS5jb20+
CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogQ2xlYW51cCBEZWJ1Z2dlck1hbmFnZXIsIHJlZHVj
ZSBgZGVsZXRlYCBhbmQgdXNlIE1hcHMgaW5zdGVhZCBvZiBvYmplY3RzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDk3NjAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXBsYWNlZCBvYmplY3RzIHVzZWQg
YXMgaGFzaG1hcHMgd2l0aCBNYXAuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0NvbnRyb2xs
ZXJzL0RlYnVnZ2VyTWFuYWdlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1h
bmFnZXIucHJvdG90eXBlLmJyZWFrcG9pbnRzRm9yU291cmNlQ29kZSk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuRGVidWdnZXJNYW5hZ2VyLnByb3RvdHlwZS5icmVha3BvaW50Rm9ySWRlbnRpZmll
cik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJNYW5hZ2VyLnByb3RvdHlwZS5zY3Jp
cHRGb3JJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIu
cHJvdG90eXBlLnNjcmlwdHNGb3JVUkwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2Vy
TWFuYWdlci5wcm90b3R5cGUuZ2V0IGtub3duTm9uUmVzb3VyY2VTY3JpcHRzKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIucHJvdG90eXBlLnJlbW92ZUJyZWFrcG9pbnQp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlci5wcm90b3R5cGUuYnJlYWtw
b2ludFJlc29sdmVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIucHJv
dG90eXBlLnJlc2V0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIucHJv
dG90eXBlLnNjcmlwdERpZFBhcnNlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1h
bmFnZXIucHJvdG90eXBlLl9zb3VyY2VDb2RlTG9jYXRpb25Gcm9tUGF5bG9hZCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuRGVidWdnZXJNYW5hZ2VyLnByb3RvdHlwZS5fc2V0QnJlYWtwb2ludC5k
aWRTZXRCcmVha3BvaW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIu
cHJvdG90eXBlLl9zZXRCcmVha3BvaW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dl
ck1hbmFnZXIucHJvdG90eXBlLl9yZW1vdmVCcmVha3BvaW50LmRpZFJlbW92ZUJyZWFrcG9pbnQp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlci5wcm90b3R5cGUuX3JlbW92
ZUJyZWFrcG9pbnQpOgorCiAyMDE1LTEwLTAyICBEZXZpbiBSb3Vzc28gIDxkY3JvdXNzbyt3ZWJr
aXRAZ21haWwuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IE9wdGlvbi1DbGljayBvbiBh
IHByb3BlcnR5IG5hbWUgaW4gdGhlIENvbXB1dGVkIHZpZXcgc2hvdWxkIGp1bXAgdG8gcmVzb3Vy
Y2UgdmlldwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Q29udHJvbGxlcnMvRGVidWdnZXJNYW5hZ2VyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvRGVidWdnZXJNYW5hZ2VyLmpzCmluZGV4IDVmOTAwZjhl
YjEwMmNhNzU3ODE5ZGM2NjQwYjcyMzUyMTk5MDkwNWEuLmE1ZDkwZjgxM2ExMDA1YjRkNTdiMDQ4
NzEzZmI3ZWJhNGZlZDM5NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL0NvbnRyb2xsZXJzL0RlYnVnZ2VyTWFuYWdlci5qcworKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9EZWJ1Z2dlck1hbmFnZXIuanMK
QEAgLTUzLDkgKzUzLDkgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlciA9IGNsYXNzIERl
YnVnZ2VyTWFuYWdlciBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKICAgICAgICAgdGhpcy5f
YWxsVW5jYXVnaHRFeGNlcHRpb25zQnJlYWtwb2ludCA9IG5ldyBXZWJJbnNwZWN0b3IuQnJlYWtw
b2ludChzcGVjaWFsQnJlYWtwb2ludExvY2F0aW9uLCAhdGhpcy5fYWxsVW5jYXVnaHRFeGNlcHRp
b25zQnJlYWtwb2ludEVuYWJsZWRTZXR0aW5nLnZhbHVlKTsKIAogICAgICAgICB0aGlzLl9icmVh
a3BvaW50cyA9IFtdOwotICAgICAgICB0aGlzLl9icmVha3BvaW50VVJMTWFwID0ge307Ci0gICAg
ICAgIHRoaXMuX2JyZWFrcG9pbnRTY3JpcHRJZGVudGlmaWVyTWFwID0ge307Ci0gICAgICAgIHRo
aXMuX2JyZWFrcG9pbnRJZE1hcCA9IHt9OworICAgICAgICB0aGlzLl9icmVha3BvaW50VVJMTWFw
ID0gbmV3IE1hcDsKKyAgICAgICAgdGhpcy5fYnJlYWtwb2ludFNjcmlwdElkZW50aWZpZXJNYXAg
PSBuZXcgTWFwOworICAgICAgICB0aGlzLl9icmVha3BvaW50SWRNYXAgPSBuZXcgTWFwOwogCiAg
ICAgICAgIHRoaXMuX25leHRCcmVha3BvaW50QWN0aW9uSWRlbnRpZmllciA9IDE7CiAKQEAgLTYz
LDggKzYzLDggQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlciA9IGNsYXNzIERlYnVnZ2Vy
TWFuYWdlciBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKICAgICAgICAgdGhpcy5fcGF1c2VS
ZWFzb24gPSBudWxsOwogICAgICAgICB0aGlzLl9wYXVzZURhdGEgPSBudWxsOwogCi0gICAgICAg
IHRoaXMuX3NjcmlwdElkTWFwID0ge307Ci0gICAgICAgIHRoaXMuX3NjcmlwdFVSTE1hcCA9IHt9
OworICAgICAgICB0aGlzLl9zY3JpcHRJZE1hcCA9IG5ldyBNYXA7CisgICAgICAgIHRoaXMuX3Nj
cmlwdFVSTE1hcCA9IG5ldyBNYXA7CiAKICAgICAgICAgdGhpcy5fYnJlYWtwb2ludHNTZXR0aW5n
ID0gbmV3IFdlYkluc3BlY3Rvci5TZXR0aW5nKCJicmVha3BvaW50cyIsIFtdKTsKICAgICAgICAg
dGhpcy5fYnJlYWtwb2ludHNFbmFibGVkU2V0dGluZyA9IG5ldyBXZWJJbnNwZWN0b3IuU2V0dGlu
ZygiYnJlYWtwb2ludHMtZW5hYmxlZCIsIHRydWUpOwpAQCAtMjc2LDE0ICsyNzYsMTQgQEAgV2Vi
SW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlciA9IGNsYXNzIERlYnVnZ2VyTWFuYWdlciBleHRlbmRz
IFdlYkluc3BlY3Rvci5PYmplY3QKICAgICAgICAgICAgIH0pOwogICAgICAgICB9CiAKLSAgICAg
ICAgaWYgKHNvdXJjZUNvZGUudXJsIGluIHRoaXMuX2JyZWFrcG9pbnRVUkxNYXApIHsKLSAgICAg
ICAgICAgIHZhciB1cmxCcmVha3BvaW50ID0gdGhpcy5fYnJlYWtwb2ludFVSTE1hcFtzb3VyY2VD
b2RlLnVybF0gfHwgW107Ci0gICAgICAgICAgICB0aGlzLl9hc3NvY2lhdGVCcmVha3BvaW50c1dp
dGhTb3VyY2VDb2RlKHVybEJyZWFrcG9pbnQsIHNvdXJjZUNvZGUpOwotICAgICAgICAgICAgcmV0
dXJuIHVybEJyZWFrcG9pbnQ7CisgICAgICAgIGlmICh0aGlzLl9icmVha3BvaW50VVJMTWFwLmhh
cyhzb3VyY2VDb2RlLnVybCkpIHsKKyAgICAgICAgICAgIGxldCB1cmxCcmVha3BvaW50cyA9IHRo
aXMuX2JyZWFrcG9pbnRVUkxNYXAuZ2V0KHNvdXJjZUNvZGUudXJsKTsKKyAgICAgICAgICAgIHRo
aXMuX2Fzc29jaWF0ZUJyZWFrcG9pbnRzV2l0aFNvdXJjZUNvZGUodXJsQnJlYWtwb2ludHMsIHNv
dXJjZUNvZGUpOworICAgICAgICAgICAgcmV0dXJuIHVybEJyZWFrcG9pbnRzOwogICAgICAgICB9
CiAKLSAgICAgICAgaWYgKHNvdXJjZUNvZGUgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuU2NyaXB0
ICYmIHNvdXJjZUNvZGUuaWQgaW4gdGhpcy5fYnJlYWtwb2ludFNjcmlwdElkZW50aWZpZXJNYXAp
IHsKLSAgICAgICAgICAgIHZhciBzY3JpcHRJZGVudGlmaWVyQnJlYWtwb2ludHMgPSB0aGlzLl9i
cmVha3BvaW50U2NyaXB0SWRlbnRpZmllck1hcFtzb3VyY2VDb2RlLmlkXSB8fCBbXTsKKyAgICAg
ICAgaWYgKHNvdXJjZUNvZGUgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuU2NyaXB0ICYmIHRoaXMu
X2JyZWFrcG9pbnRTY3JpcHRJZGVudGlmaWVyTWFwLmhhcyhzb3VyY2VDb2RlLmlkKSkgeworICAg
ICAgICAgICAgbGV0IHNjcmlwdElkZW50aWZpZXJCcmVha3BvaW50cyA9IHRoaXMuX2JyZWFrcG9p
bnRTY3JpcHRJZGVudGlmaWVyTWFwLmdldChzb3VyY2VDb2RlLmlkKTsKICAgICAgICAgICAgIHRo
aXMuX2Fzc29jaWF0ZUJyZWFrcG9pbnRzV2l0aFNvdXJjZUNvZGUoc2NyaXB0SWRlbnRpZmllckJy
ZWFrcG9pbnRzLCBzb3VyY2VDb2RlKTsKICAgICAgICAgICAgIHJldHVybiBzY3JpcHRJZGVudGlm
aWVyQnJlYWtwb2ludHM7CiAgICAgICAgIH0KQEAgLTI5MywxOCArMjkzLDE4IEBAIFdlYkluc3Bl
Y3Rvci5EZWJ1Z2dlck1hbmFnZXIgPSBjbGFzcyBEZWJ1Z2dlck1hbmFnZXIgZXh0ZW5kcyBXZWJJ
bnNwZWN0b3IuT2JqZWN0CiAKICAgICBicmVha3BvaW50Rm9ySWRlbnRpZmllcihpZCkKICAgICB7
Ci0gICAgICAgIHJldHVybiB0aGlzLl9icmVha3BvaW50SWRNYXBbaWRdOworICAgICAgICByZXR1
cm4gdGhpcy5fYnJlYWtwb2ludElkTWFwLmdldChpZCk7CiAgICAgfQogCiAgICAgc2NyaXB0Rm9y
SWRlbnRpZmllcihpZCkKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9zY3JpcHRJZE1hcFtp
ZF0gfHwgbnVsbDsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3NjcmlwdElkTWFwLmdldChpZCk7CiAg
ICAgfQogCiAgICAgc2NyaXB0c0ZvclVSTCh1cmwpCiAgICAgewogICAgICAgICAvLyBGSVhNRTog
VGhpcyBtYXkgbm90IGJlIHNhZmUuIEEgUmVzb3VyY2UncyBVUkwgbWF5IGRpZmZlciBmcm9tIGEg
U2NyaXB0J3MgVVJMLgotICAgICAgICByZXR1cm4gdGhpcy5fc2NyaXB0VVJMTWFwW3VybF0gfHwg
W107CisgICAgICAgIHJldHVybiB0aGlzLl9zY3JpcHRVUkxNYXAuZ2V0KHVybCkgfHwgW107CiAg
ICAgfQogCiAgICAgY29udGludWVUb0xvY2F0aW9uKHNjcmlwdElkZW50aWZpZXIsIGxpbmVOdW1i
ZXIsIGNvbHVtbk51bWJlcikKQEAgLTMxNCw5ICszMTQsOCBAQCBXZWJJbnNwZWN0b3IuRGVidWdn
ZXJNYW5hZ2VyID0gY2xhc3MgRGVidWdnZXJNYW5hZ2VyIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9i
amVjdAogCiAgICAgZ2V0IGtub3duTm9uUmVzb3VyY2VTY3JpcHRzKCkKICAgICB7Ci0gICAgICAg
IHZhciBrbm93blNjcmlwdHMgPSBbXTsKLSAgICAgICAgZm9yICh2YXIgaWQgaW4gdGhpcy5fc2Ny
aXB0SWRNYXApIHsKLSAgICAgICAgICAgIHZhciBzY3JpcHQgPSB0aGlzLl9zY3JpcHRJZE1hcFtp
ZF07CisgICAgICAgIGxldCBrbm93blNjcmlwdHMgPSBbXTsKKyAgICAgICAgZm9yIChsZXQgc2Ny
aXB0IG9mIHRoaXMuX3NjcmlwdElkTWFwLnZhbHVlcygpKSB7CiAgICAgICAgICAgICBpZiAoc2Ny
aXB0LnJlc291cmNlKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgaWYg
KHNjcmlwdC51cmwgJiYgc2NyaXB0LnVybC5zdGFydHNXaXRoKCJfX1dlYkluc3BlY3RvciIpKQpA
QCAtMzM0LDE2ICszMzMsMjAgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlciA9IGNsYXNz
IERlYnVnZ2VyTWFuYWdlciBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKICAgICAgICAgICAg
IHJldHVybjsKIAogICAgICAgICBpZiAoYnJlYWtwb2ludC51cmwpIHsKLSAgICAgICAgICAgIHZh
ciB1cmxCcmVha3BvaW50cyA9IHRoaXMuX2JyZWFrcG9pbnRVUkxNYXBbYnJlYWtwb2ludC51cmxd
OwotICAgICAgICAgICAgaWYgKCF1cmxCcmVha3BvaW50cykKLSAgICAgICAgICAgICAgICB1cmxC
cmVha3BvaW50cyA9IHRoaXMuX2JyZWFrcG9pbnRVUkxNYXBbYnJlYWtwb2ludC51cmxdID0gW107
CisgICAgICAgICAgICBsZXQgdXJsQnJlYWtwb2ludHMgPSB0aGlzLl9icmVha3BvaW50VVJMTWFw
LmdldChicmVha3BvaW50LnVybCk7CisgICAgICAgICAgICBpZiAoIXVybEJyZWFrcG9pbnRzKSB7
CisgICAgICAgICAgICAgICAgdXJsQnJlYWtwb2ludHMgPSBbXTsKKyAgICAgICAgICAgICAgICB0
aGlzLl9icmVha3BvaW50VVJMTWFwLnNldChicmVha3BvaW50LnVybCwgdXJsQnJlYWtwb2ludHMp
OworICAgICAgICAgICAgfQogICAgICAgICAgICAgdXJsQnJlYWtwb2ludHMucHVzaChicmVha3Bv
aW50KTsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChicmVha3BvaW50LnNjcmlwdElkZW50aWZp
ZXIpIHsKLSAgICAgICAgICAgIHZhciBzY3JpcHRJZGVudGlmaWVyQnJlYWtwb2ludHMgPSB0aGlz
Ll9icmVha3BvaW50U2NyaXB0SWRlbnRpZmllck1hcFticmVha3BvaW50LnNjcmlwdElkZW50aWZp
ZXJdOwotICAgICAgICAgICAgaWYgKCFzY3JpcHRJZGVudGlmaWVyQnJlYWtwb2ludHMpCi0gICAg
ICAgICAgICAgICAgc2NyaXB0SWRlbnRpZmllckJyZWFrcG9pbnRzID0gdGhpcy5fYnJlYWtwb2lu
dFNjcmlwdElkZW50aWZpZXJNYXBbYnJlYWtwb2ludC5zY3JpcHRJZGVudGlmaWVyXSA9IFtdOwor
ICAgICAgICAgICAgbGV0IHNjcmlwdElkZW50aWZpZXJCcmVha3BvaW50cyA9IHRoaXMuX2JyZWFr
cG9pbnRTY3JpcHRJZGVudGlmaWVyTWFwLmdldChicmVha3BvaW50LnNjcmlwdElkZW50aWZpZXIp
OworICAgICAgICAgICAgaWYgKCFzY3JpcHRJZGVudGlmaWVyQnJlYWtwb2ludHMpIHsKKyAgICAg
ICAgICAgICAgICBzY3JpcHRJZGVudGlmaWVyQnJlYWtwb2ludHMgPSBbXTsKKyAgICAgICAgICAg
ICAgICB0aGlzLl9icmVha3BvaW50U2NyaXB0SWRlbnRpZmllck1hcC5zZXQoYnJlYWtwb2ludC5z
Y3JpcHRJZGVudGlmaWVyLCBzY3JpcHRJZGVudGlmaWVyQnJlYWtwb2ludHMpOworICAgICAgICAg
ICAgfQogICAgICAgICAgICAgc2NyaXB0SWRlbnRpZmllckJyZWFrcG9pbnRzLnB1c2goYnJlYWtw
b2ludCk7CiAgICAgICAgIH0KIApAQCAtMzc2LDIwICszNzksMjAgQEAgV2ViSW5zcGVjdG9yLkRl
YnVnZ2VyTWFuYWdlciA9IGNsYXNzIERlYnVnZ2VyTWFuYWdlciBleHRlbmRzIFdlYkluc3BlY3Rv
ci5PYmplY3QKICAgICAgICAgICAgIHRoaXMuX3JlbW92ZUJyZWFrcG9pbnQoYnJlYWtwb2ludCk7
CiAKICAgICAgICAgaWYgKGJyZWFrcG9pbnQudXJsKSB7Ci0gICAgICAgICAgICB2YXIgdXJsQnJl
YWtwb2ludHMgPSB0aGlzLl9icmVha3BvaW50VVJMTWFwW2JyZWFrcG9pbnQudXJsXTsKKyAgICAg
ICAgICAgIGxldCB1cmxCcmVha3BvaW50cyA9IHRoaXMuX2JyZWFrcG9pbnRVUkxNYXAuZ2V0KGJy
ZWFrcG9pbnQudXJsKTsKICAgICAgICAgICAgIGlmICh1cmxCcmVha3BvaW50cykgewogICAgICAg
ICAgICAgICAgIHVybEJyZWFrcG9pbnRzLnJlbW92ZShicmVha3BvaW50KTsKICAgICAgICAgICAg
ICAgICBpZiAoIXVybEJyZWFrcG9pbnRzLmxlbmd0aCkKLSAgICAgICAgICAgICAgICAgICAgZGVs
ZXRlIHRoaXMuX2JyZWFrcG9pbnRVUkxNYXBbYnJlYWtwb2ludC51cmxdOworICAgICAgICAgICAg
ICAgICAgICB0aGlzLl9icmVha3BvaW50VVJMTWFwLmRlbGV0ZShicmVha3BvaW50LnVybCk7CiAg
ICAgICAgICAgICB9CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoYnJlYWtwb2ludC5zY3JpcHRJ
ZGVudGlmaWVyKSB7Ci0gICAgICAgICAgICB2YXIgc2NyaXB0SWRlbnRpZmllckJyZWFrcG9pbnRz
ID0gdGhpcy5fYnJlYWtwb2ludFNjcmlwdElkZW50aWZpZXJNYXBbYnJlYWtwb2ludC5zY3JpcHRJ
ZGVudGlmaWVyXTsKKyAgICAgICAgICAgIGxldCBzY3JpcHRJZGVudGlmaWVyQnJlYWtwb2ludHMg
PSB0aGlzLl9icmVha3BvaW50U2NyaXB0SWRlbnRpZmllck1hcC5nZXQoYnJlYWtwb2ludC5zY3Jp
cHRJZGVudGlmaWVyKTsKICAgICAgICAgICAgIGlmIChzY3JpcHRJZGVudGlmaWVyQnJlYWtwb2lu
dHMpIHsKICAgICAgICAgICAgICAgICBzY3JpcHRJZGVudGlmaWVyQnJlYWtwb2ludHMucmVtb3Zl
KGJyZWFrcG9pbnQpOwogICAgICAgICAgICAgICAgIGlmICghc2NyaXB0SWRlbnRpZmllckJyZWFr
cG9pbnRzLmxlbmd0aCkKLSAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuX2JyZWFrcG9p
bnRTY3JpcHRJZGVudGlmaWVyTWFwW2JyZWFrcG9pbnQuc2NyaXB0SWRlbnRpZmllcl07CisgICAg
ICAgICAgICAgICAgICAgIHRoaXMuX2JyZWFrcG9pbnRTY3JpcHRJZGVudGlmaWVyTWFwLmRlbGV0
ZShicmVha3BvaW50LnNjcmlwdElkZW50aWZpZXIpOwogICAgICAgICAgICAgfQogICAgICAgICB9
CiAKQEAgLTQwNCw3ICs0MDcsNyBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJNYW5hZ2VyID0gY2xh
c3MgRGVidWdnZXJNYW5hZ2VyIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAogICAgIHsKICAg
ICAgICAgLy8gQ2FsbGVkIGZyb20gV2ViSW5zcGVjdG9yLkRlYnVnZ2VyT2JzZXJ2ZXIuCiAKLSAg
ICAgICAgdmFyIGJyZWFrcG9pbnQgPSB0aGlzLl9icmVha3BvaW50SWRNYXBbYnJlYWtwb2ludElk
ZW50aWZpZXJdOworICAgICAgICBsZXQgYnJlYWtwb2ludCA9IHRoaXMuX2JyZWFrcG9pbnRJZE1h
cC5nZXQoYnJlYWtwb2ludElkZW50aWZpZXIpOwogICAgICAgICBjb25zb2xlLmFzc2VydChicmVh
a3BvaW50KTsKICAgICAgICAgaWYgKCFicmVha3BvaW50KQogICAgICAgICAgICAgcmV0dXJuOwpA
QCAtNDMxLDggKzQzNCw4IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIgPSBjbGFzcyBE
ZWJ1Z2dlck1hbmFnZXIgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAgICAgICAgIHRoaXMu
X3BhdXNlUmVhc29uID0gbnVsbDsKICAgICAgICAgdGhpcy5fcGF1c2VEYXRhID0gbnVsbDsKIAot
ICAgICAgICB0aGlzLl9zY3JpcHRJZE1hcCA9IHt9OwotICAgICAgICB0aGlzLl9zY3JpcHRVUkxN
YXAgPSB7fTsKKyAgICAgICAgdGhpcy5fc2NyaXB0SWRNYXAuY2xlYXIoKTsKKyAgICAgICAgdGhp
cy5fc2NyaXB0VVJMTWFwLmNsZWFyKCk7CiAKICAgICAgICAgdGhpcy5faWdub3JlQnJlYWtwb2lu
dERpc3BsYXlMb2NhdGlvbkRpZENoYW5nZUV2ZW50ID0gdHJ1ZTsKIApAQCAtNTEyLDIzICs1MTUs
MjYgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlciA9IGNsYXNzIERlYnVnZ2VyTWFuYWdl
ciBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKICAgICBzY3JpcHREaWRQYXJzZShzY3JpcHRJ
ZGVudGlmaWVyLCB1cmwsIGlzQ29udGVudFNjcmlwdCwgc3RhcnRMaW5lLCBzdGFydENvbHVtbiwg
ZW5kTGluZSwgZW5kQ29sdW1uLCBzb3VyY2VNYXBVUkwpCiAgICAgewogICAgICAgICAvLyBEb24n
dCBhZGQgdGhlIHNjcmlwdCBhZ2FpbiBpZiBpdCBpcyBhbHJlYWR5IGtub3duLgotICAgICAgICBp
ZiAodGhpcy5fc2NyaXB0SWRNYXBbc2NyaXB0SWRlbnRpZmllcl0pIHsKLSAgICAgICAgICAgIGNv
bnNvbGUuYXNzZXJ0KHRoaXMuX3NjcmlwdElkTWFwW3NjcmlwdElkZW50aWZpZXJdLnVybCA9PT0g
KHVybCB8fCBudWxsKSk7Ci0gICAgICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl9zY3JpcHRJ
ZE1hcFtzY3JpcHRJZGVudGlmaWVyXS5yYW5nZS5zdGFydExpbmUgPT09IHN0YXJ0TGluZSk7Ci0g
ICAgICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl9zY3JpcHRJZE1hcFtzY3JpcHRJZGVudGlm
aWVyXS5yYW5nZS5zdGFydENvbHVtbiA9PT0gc3RhcnRDb2x1bW4pOwotICAgICAgICAgICAgY29u
c29sZS5hc3NlcnQodGhpcy5fc2NyaXB0SWRNYXBbc2NyaXB0SWRlbnRpZmllcl0ucmFuZ2UuZW5k
TGluZSA9PT0gZW5kTGluZSk7Ci0gICAgICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl9zY3Jp
cHRJZE1hcFtzY3JpcHRJZGVudGlmaWVyXS5yYW5nZS5lbmRDb2x1bW4gPT09IGVuZENvbHVtbik7
CisgICAgICAgIGlmICh0aGlzLl9zY3JpcHRJZE1hcC5oYXMoc2NyaXB0SWRlbnRpZmllcikpIHsK
KyAgICAgICAgICAgIGNvbnN0IHNjcmlwdCA9IHRoaXMuX3NjcmlwdElkTWFwLmdldChzY3JpcHRJ
ZGVudGlmaWVyKTsKKyAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHNjcmlwdC51cmwgPT09ICh1
cmwgfHwgbnVsbCkpOworICAgICAgICAgICAgY29uc29sZS5hc3NlcnQoc2NyaXB0LnJhbmdlLnN0
YXJ0TGluZSA9PT0gc3RhcnRMaW5lKTsKKyAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHNjcmlw
dC5yYW5nZS5zdGFydENvbHVtbiA9PT0gc3RhcnRDb2x1bW4pOworICAgICAgICAgICAgY29uc29s
ZS5hc3NlcnQoc2NyaXB0LnJhbmdlLmVuZExpbmUgPT09IGVuZExpbmUpOworICAgICAgICAgICAg
Y29uc29sZS5hc3NlcnQoc2NyaXB0LnJhbmdlLmVuZENvbHVtbiA9PT0gZW5kQ29sdW1uKTsKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCiAgICAgICAgIHZhciBzY3JpcHQgPSBuZXcg
V2ViSW5zcGVjdG9yLlNjcmlwdChzY3JpcHRJZGVudGlmaWVyLCBuZXcgV2ViSW5zcGVjdG9yLlRl
eHRSYW5nZShzdGFydExpbmUsIHN0YXJ0Q29sdW1uLCBlbmRMaW5lLCBlbmRDb2x1bW4pLCB1cmws
IGlzQ29udGVudFNjcmlwdCwgc291cmNlTWFwVVJMKTsKIAotICAgICAgICB0aGlzLl9zY3JpcHRJ
ZE1hcFtzY3JpcHRJZGVudGlmaWVyXSA9IHNjcmlwdDsKKyAgICAgICAgdGhpcy5fc2NyaXB0SWRN
YXAuc2V0KHNjcmlwdElkZW50aWZpZXIsIHNjcmlwdCk7CiAKICAgICAgICAgaWYgKHNjcmlwdC51
cmwpIHsKLSAgICAgICAgICAgIHZhciBzY3JpcHRzID0gdGhpcy5fc2NyaXB0VVJMTWFwW3Njcmlw
dC51cmxdOwotICAgICAgICAgICAgaWYgKCFzY3JpcHRzKQotICAgICAgICAgICAgICAgIHNjcmlw
dHMgPSB0aGlzLl9zY3JpcHRVUkxNYXBbc2NyaXB0LnVybF0gPSBbXTsKKyAgICAgICAgICAgIGxl
dCBzY3JpcHRzID0gdGhpcy5fc2NyaXB0VVJMTWFwLmdldChzY3JpcHQudXJsKTsKKyAgICAgICAg
ICAgIGlmICghc2NyaXB0cykgeworICAgICAgICAgICAgICAgIHNjcmlwdHMgPSBbXTsKKyAgICAg
ICAgICAgICAgICB0aGlzLl9zY3JpcHRVUkxNYXAuc2V0KHNjcmlwdC51cmwsIHNjcmlwdHMpOwor
ICAgICAgICAgICAgfQogICAgICAgICAgICAgc2NyaXB0cy5wdXNoKHNjcmlwdCk7CiAgICAgICAg
IH0KIApAQCAtNTU0LDcgKzU2MCw3IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIgPSBj
bGFzcyBEZWJ1Z2dlck1hbmFnZXIgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAKICAgICBf
c291cmNlQ29kZUxvY2F0aW9uRnJvbVBheWxvYWQocGF5bG9hZCkKICAgICB7Ci0gICAgICAgIHZh
ciBzY3JpcHQgPSB0aGlzLl9zY3JpcHRJZE1hcFtwYXlsb2FkLnNjcmlwdElkXTsKKyAgICAgICAg
bGV0IHNjcmlwdCA9IHRoaXMuX3NjcmlwdElkTWFwLmdldChwYXlsb2FkLnNjcmlwdElkKTsKICAg
ICAgICAgY29uc29sZS5hc3NlcnQoc2NyaXB0KTsKICAgICAgICAgaWYgKCFzY3JpcHQpCiAgICAg
ICAgICAgICByZXR1cm4gbnVsbDsKQEAgLTY1Nyw3ICs2NjMsNyBAQCBXZWJJbnNwZWN0b3IuRGVi
dWdnZXJNYW5hZ2VyID0gY2xhc3MgRGVidWdnZXJNYW5hZ2VyIGV4dGVuZHMgV2ViSW5zcGVjdG9y
Lk9iamVjdAogICAgICAgICAgICAgaWYgKGVycm9yKQogICAgICAgICAgICAgICAgIHJldHVybjsK
IAotICAgICAgICAgICAgdGhpcy5fYnJlYWtwb2ludElkTWFwW2JyZWFrcG9pbnRJZGVudGlmaWVy
XSA9IGJyZWFrcG9pbnQ7CisgICAgICAgICAgICB0aGlzLl9icmVha3BvaW50SWRNYXAuc2V0KGJy
ZWFrcG9pbnRJZGVudGlmaWVyLCBicmVha3BvaW50KTsKIAogICAgICAgICAgICAgYnJlYWtwb2lu
dC5pZGVudGlmaWVyID0gYnJlYWtwb2ludElkZW50aWZpZXI7CiAKQEAgLTcxOCw3ICs3MjQsNyBA
QCBXZWJJbnNwZWN0b3IuRGVidWdnZXJNYW5hZ2VyID0gY2xhc3MgRGVidWdnZXJNYW5hZ2VyIGV4
dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAogICAgICAgICAgICAgaWYgKGVycm9yKQogICAgICAg
ICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpOwogCi0gICAgICAgICAgICBkZWxldGUgdGhp
cy5fYnJlYWtwb2ludElkTWFwW2JyZWFrcG9pbnQuaWRlbnRpZmllcl07CisgICAgICAgICAgICB0
aGlzLl9icmVha3BvaW50SWRNYXAuZGVsZXRlKGJyZWFrcG9pbnQuaWRlbnRpZmllcik7CiAKICAg
ICAgICAgICAgIGJyZWFrcG9pbnQuaWRlbnRpZmllciA9IG51bGw7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>262374</attachid>
            <date>2015-10-02 18:40:15 -0700</date>
            <delta_ts>2015-10-02 19:28:49 -0700</delta_ts>
            <desc>[Patch] For Landing</desc>
            <filename>bug-149760-20151002183946.patch</filename>
            <type>text/plain</type>
            <size>12462</size>
            <attacher name="Matt Baker">mattbaker</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwNTI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCBi
MzFmYzQzZWYzOWZhNmVhODc4MjBhYTg3M2JiYTA5NmU1MmQ3ODhkLi40YzlmYjFkMWFhODM0ZWEy
OTA5NjIxMjc5MzdmMWYwMjY1Y2E5Y2U2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOCBAQAorMjAxNS0xMC0wMiAgTWF0dCBCYWtlciAgPG1hdHRiYWtlckBhcHBsZS5jb20+
CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogQ2xlYW51cCBEZWJ1Z2dlck1hbmFnZXIsIHJlZHVj
ZSBgZGVsZXRlYCBhbmQgdXNlIE1hcHMgaW5zdGVhZCBvZiBvYmplY3RzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDk3NjAKKworICAgICAgICBSZXZp
ZXdlZCBieSBKb3NlcGggUGVjb3Jhcm8uCisKKyAgICAgICAgUmVwbGFjZWQgb2JqZWN0cyB1c2Vk
IGFzIGhhc2htYXBzIHdpdGggTWFwLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Db250cm9s
bGVycy9EZWJ1Z2dlck1hbmFnZXIuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJN
YW5hZ2VyLnByb3RvdHlwZS5icmVha3BvaW50c0ZvclNvdXJjZUNvZGUpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlci5wcm90b3R5cGUuYnJlYWtwb2ludEZvcklkZW50aWZp
ZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlci5wcm90b3R5cGUuc2Ny
aXB0Rm9ySWRlbnRpZmllcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJNYW5hZ2Vy
LnByb3RvdHlwZS5zY3JpcHRzRm9yVVJMKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dl
ck1hbmFnZXIucHJvdG90eXBlLmdldCBrbm93bk5vblJlc291cmNlU2NyaXB0cyk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuRGVidWdnZXJNYW5hZ2VyLnByb3RvdHlwZS5yZW1vdmVCcmVha3BvaW50
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIucHJvdG90eXBlLmJyZWFr
cG9pbnRSZXNvbHZlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJNYW5hZ2VyLnBy
b3RvdHlwZS5yZXNldCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJNYW5hZ2VyLnBy
b3RvdHlwZS5zY3JpcHREaWRQYXJzZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJN
YW5hZ2VyLnByb3RvdHlwZS5fc291cmNlQ29kZUxvY2F0aW9uRnJvbVBheWxvYWQpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlci5wcm90b3R5cGUuX3NldEJyZWFrcG9pbnQu
ZGlkU2V0QnJlYWtwb2ludCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJNYW5hZ2Vy
LnByb3RvdHlwZS5fc2V0QnJlYWtwb2ludCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdn
ZXJNYW5hZ2VyLnByb3RvdHlwZS5fcmVtb3ZlQnJlYWtwb2ludC5kaWRSZW1vdmVCcmVha3BvaW50
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIucHJvdG90eXBlLl9yZW1v
dmVCcmVha3BvaW50KToKKwogMjAxNS0xMC0wMiAgRGV2aW4gUm91c3NvICA8ZGNyb3Vzc28rd2Vi
a2l0QGdtYWlsLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBPcHRpb24tQ2xpY2sgb24g
YSBwcm9wZXJ0eSBuYW1lIGluIHRoZSBDb21wdXRlZCB2aWV3IHNob3VsZCBqdW1wIHRvIHJlc291
cmNlIHZpZXcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L0NvbnRyb2xsZXJzL0RlYnVnZ2VyTWFuYWdlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0RlYnVnZ2VyTWFuYWdlci5qcwppbmRleCA1ZjkwMGY4
ZWIxMDJjYTc1NzgxOWRjNjY0MGI3MjM1MjE5OTA5MDVhLi4xYjZkZDFmNzc3ZDQ4Nzk4NGU4NDFi
MzY4YTgyMWE2Y2MxMTY3MWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Db250cm9sbGVycy9EZWJ1Z2dlck1hbmFnZXIuanMKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvRGVidWdnZXJNYW5hZ2VyLmpz
CkBAIC01Myw5ICs1Myw5IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIgPSBjbGFzcyBE
ZWJ1Z2dlck1hbmFnZXIgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAgICAgICAgIHRoaXMu
X2FsbFVuY2F1Z2h0RXhjZXB0aW9uc0JyZWFrcG9pbnQgPSBuZXcgV2ViSW5zcGVjdG9yLkJyZWFr
cG9pbnQoc3BlY2lhbEJyZWFrcG9pbnRMb2NhdGlvbiwgIXRoaXMuX2FsbFVuY2F1Z2h0RXhjZXB0
aW9uc0JyZWFrcG9pbnRFbmFibGVkU2V0dGluZy52YWx1ZSk7CiAKICAgICAgICAgdGhpcy5fYnJl
YWtwb2ludHMgPSBbXTsKLSAgICAgICAgdGhpcy5fYnJlYWtwb2ludFVSTE1hcCA9IHt9OwotICAg
ICAgICB0aGlzLl9icmVha3BvaW50U2NyaXB0SWRlbnRpZmllck1hcCA9IHt9OwotICAgICAgICB0
aGlzLl9icmVha3BvaW50SWRNYXAgPSB7fTsKKyAgICAgICAgdGhpcy5fYnJlYWtwb2ludFVSTE1h
cCA9IG5ldyBNYXA7CisgICAgICAgIHRoaXMuX2JyZWFrcG9pbnRTY3JpcHRJZGVudGlmaWVyTWFw
ID0gbmV3IE1hcDsKKyAgICAgICAgdGhpcy5fYnJlYWtwb2ludElkTWFwID0gbmV3IE1hcDsKIAog
ICAgICAgICB0aGlzLl9uZXh0QnJlYWtwb2ludEFjdGlvbklkZW50aWZpZXIgPSAxOwogCkBAIC02
Myw4ICs2Myw4IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIgPSBjbGFzcyBEZWJ1Z2dl
ck1hbmFnZXIgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAgICAgICAgIHRoaXMuX3BhdXNl
UmVhc29uID0gbnVsbDsKICAgICAgICAgdGhpcy5fcGF1c2VEYXRhID0gbnVsbDsKIAotICAgICAg
ICB0aGlzLl9zY3JpcHRJZE1hcCA9IHt9OwotICAgICAgICB0aGlzLl9zY3JpcHRVUkxNYXAgPSB7
fTsKKyAgICAgICAgdGhpcy5fc2NyaXB0SWRNYXAgPSBuZXcgTWFwOworICAgICAgICB0aGlzLl9z
Y3JpcHRVUkxNYXAgPSBuZXcgTWFwOwogCiAgICAgICAgIHRoaXMuX2JyZWFrcG9pbnRzU2V0dGlu
ZyA9IG5ldyBXZWJJbnNwZWN0b3IuU2V0dGluZygiYnJlYWtwb2ludHMiLCBbXSk7CiAgICAgICAg
IHRoaXMuX2JyZWFrcG9pbnRzRW5hYmxlZFNldHRpbmcgPSBuZXcgV2ViSW5zcGVjdG9yLlNldHRp
bmcoImJyZWFrcG9pbnRzLWVuYWJsZWQiLCB0cnVlKTsKQEAgLTI3NiwxNiArMjc2LDE4IEBAIFdl
Ykluc3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIgPSBjbGFzcyBEZWJ1Z2dlck1hbmFnZXIgZXh0ZW5k
cyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfQogCi0gICAg
ICAgIGlmIChzb3VyY2VDb2RlLnVybCBpbiB0aGlzLl9icmVha3BvaW50VVJMTWFwKSB7Ci0gICAg
ICAgICAgICB2YXIgdXJsQnJlYWtwb2ludCA9IHRoaXMuX2JyZWFrcG9pbnRVUkxNYXBbc291cmNl
Q29kZS51cmxdIHx8IFtdOwotICAgICAgICAgICAgdGhpcy5fYXNzb2NpYXRlQnJlYWtwb2ludHNX
aXRoU291cmNlQ29kZSh1cmxCcmVha3BvaW50LCBzb3VyY2VDb2RlKTsKLSAgICAgICAgICAgIHJl
dHVybiB1cmxCcmVha3BvaW50OworICAgICAgICBsZXQgdXJsQnJlYWtwb2ludHMgPSB0aGlzLl9i
cmVha3BvaW50VVJMTWFwLmdldChzb3VyY2VDb2RlLnVybCk7CisgICAgICAgIGlmICh1cmxCcmVh
a3BvaW50cykgeworICAgICAgICAgICAgdGhpcy5fYXNzb2NpYXRlQnJlYWtwb2ludHNXaXRoU291
cmNlQ29kZSh1cmxCcmVha3BvaW50cywgc291cmNlQ29kZSk7CisgICAgICAgICAgICByZXR1cm4g
dXJsQnJlYWtwb2ludHM7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoc291cmNlQ29kZSBpbnN0
YW5jZW9mIFdlYkluc3BlY3Rvci5TY3JpcHQgJiYgc291cmNlQ29kZS5pZCBpbiB0aGlzLl9icmVh
a3BvaW50U2NyaXB0SWRlbnRpZmllck1hcCkgewotICAgICAgICAgICAgdmFyIHNjcmlwdElkZW50
aWZpZXJCcmVha3BvaW50cyA9IHRoaXMuX2JyZWFrcG9pbnRTY3JpcHRJZGVudGlmaWVyTWFwW3Nv
dXJjZUNvZGUuaWRdIHx8IFtdOwotICAgICAgICAgICAgdGhpcy5fYXNzb2NpYXRlQnJlYWtwb2lu
dHNXaXRoU291cmNlQ29kZShzY3JpcHRJZGVudGlmaWVyQnJlYWtwb2ludHMsIHNvdXJjZUNvZGUp
OwotICAgICAgICAgICAgcmV0dXJuIHNjcmlwdElkZW50aWZpZXJCcmVha3BvaW50czsKKyAgICAg
ICAgaWYgKHNvdXJjZUNvZGUgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuU2NyaXB0KSB7CisgICAg
ICAgICAgICBsZXQgc2NyaXB0SWRlbnRpZmllckJyZWFrcG9pbnRzID0gdGhpcy5fYnJlYWtwb2lu
dFNjcmlwdElkZW50aWZpZXJNYXAuZ2V0KHNvdXJjZUNvZGUuaWQpOworICAgICAgICAgICAgaWYg
KHNjcmlwdElkZW50aWZpZXJCcmVha3BvaW50cykgeworICAgICAgICAgICAgICAgIHRoaXMuX2Fz
c29jaWF0ZUJyZWFrcG9pbnRzV2l0aFNvdXJjZUNvZGUoc2NyaXB0SWRlbnRpZmllckJyZWFrcG9p
bnRzLCBzb3VyY2VDb2RlKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gc2NyaXB0SWRlbnRpZmll
ckJyZWFrcG9pbnRzOworICAgICAgICAgICAgfQogICAgICAgICB9CiAKICAgICAgICAgcmV0dXJu
IFtdOwpAQCAtMjkzLDE4ICsyOTUsMTggQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlciA9
IGNsYXNzIERlYnVnZ2VyTWFuYWdlciBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKIAogICAg
IGJyZWFrcG9pbnRGb3JJZGVudGlmaWVyKGlkKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMu
X2JyZWFrcG9pbnRJZE1hcFtpZF07CisgICAgICAgIHJldHVybiB0aGlzLl9icmVha3BvaW50SWRN
YXAuZ2V0KGlkKSB8fCBudWxsOwogICAgIH0KIAogICAgIHNjcmlwdEZvcklkZW50aWZpZXIoaWQp
CiAgICAgewotICAgICAgICByZXR1cm4gdGhpcy5fc2NyaXB0SWRNYXBbaWRdIHx8IG51bGw7Cisg
ICAgICAgIHJldHVybiB0aGlzLl9zY3JpcHRJZE1hcC5nZXQoaWQpIHx8IG51bGw7CiAgICAgfQog
CiAgICAgc2NyaXB0c0ZvclVSTCh1cmwpCiAgICAgewogICAgICAgICAvLyBGSVhNRTogVGhpcyBt
YXkgbm90IGJlIHNhZmUuIEEgUmVzb3VyY2UncyBVUkwgbWF5IGRpZmZlciBmcm9tIGEgU2NyaXB0
J3MgVVJMLgotICAgICAgICByZXR1cm4gdGhpcy5fc2NyaXB0VVJMTWFwW3VybF0gfHwgW107Cisg
ICAgICAgIHJldHVybiB0aGlzLl9zY3JpcHRVUkxNYXAuZ2V0KHVybCkgfHwgW107CiAgICAgfQog
CiAgICAgY29udGludWVUb0xvY2F0aW9uKHNjcmlwdElkZW50aWZpZXIsIGxpbmVOdW1iZXIsIGNv
bHVtbk51bWJlcikKQEAgLTMxNCw5ICszMTYsOCBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJNYW5h
Z2VyID0gY2xhc3MgRGVidWdnZXJNYW5hZ2VyIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAog
CiAgICAgZ2V0IGtub3duTm9uUmVzb3VyY2VTY3JpcHRzKCkKICAgICB7Ci0gICAgICAgIHZhciBr
bm93blNjcmlwdHMgPSBbXTsKLSAgICAgICAgZm9yICh2YXIgaWQgaW4gdGhpcy5fc2NyaXB0SWRN
YXApIHsKLSAgICAgICAgICAgIHZhciBzY3JpcHQgPSB0aGlzLl9zY3JpcHRJZE1hcFtpZF07Cisg
ICAgICAgIGxldCBrbm93blNjcmlwdHMgPSBbXTsKKyAgICAgICAgZm9yIChsZXQgc2NyaXB0IG9m
IHRoaXMuX3NjcmlwdElkTWFwLnZhbHVlcygpKSB7CiAgICAgICAgICAgICBpZiAoc2NyaXB0LnJl
c291cmNlKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgaWYgKHNjcmlw
dC51cmwgJiYgc2NyaXB0LnVybC5zdGFydHNXaXRoKCJfX1dlYkluc3BlY3RvciIpKQpAQCAtMzM0
LDE2ICszMzUsMjAgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlciA9IGNsYXNzIERlYnVn
Z2VyTWFuYWdlciBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKICAgICAgICAgICAgIHJldHVy
bjsKIAogICAgICAgICBpZiAoYnJlYWtwb2ludC51cmwpIHsKLSAgICAgICAgICAgIHZhciB1cmxC
cmVha3BvaW50cyA9IHRoaXMuX2JyZWFrcG9pbnRVUkxNYXBbYnJlYWtwb2ludC51cmxdOwotICAg
ICAgICAgICAgaWYgKCF1cmxCcmVha3BvaW50cykKLSAgICAgICAgICAgICAgICB1cmxCcmVha3Bv
aW50cyA9IHRoaXMuX2JyZWFrcG9pbnRVUkxNYXBbYnJlYWtwb2ludC51cmxdID0gW107CisgICAg
ICAgICAgICBsZXQgdXJsQnJlYWtwb2ludHMgPSB0aGlzLl9icmVha3BvaW50VVJMTWFwLmdldChi
cmVha3BvaW50LnVybCk7CisgICAgICAgICAgICBpZiAoIXVybEJyZWFrcG9pbnRzKSB7CisgICAg
ICAgICAgICAgICAgdXJsQnJlYWtwb2ludHMgPSBbXTsKKyAgICAgICAgICAgICAgICB0aGlzLl9i
cmVha3BvaW50VVJMTWFwLnNldChicmVha3BvaW50LnVybCwgdXJsQnJlYWtwb2ludHMpOworICAg
ICAgICAgICAgfQogICAgICAgICAgICAgdXJsQnJlYWtwb2ludHMucHVzaChicmVha3BvaW50KTsK
ICAgICAgICAgfQogCiAgICAgICAgIGlmIChicmVha3BvaW50LnNjcmlwdElkZW50aWZpZXIpIHsK
LSAgICAgICAgICAgIHZhciBzY3JpcHRJZGVudGlmaWVyQnJlYWtwb2ludHMgPSB0aGlzLl9icmVh
a3BvaW50U2NyaXB0SWRlbnRpZmllck1hcFticmVha3BvaW50LnNjcmlwdElkZW50aWZpZXJdOwot
ICAgICAgICAgICAgaWYgKCFzY3JpcHRJZGVudGlmaWVyQnJlYWtwb2ludHMpCi0gICAgICAgICAg
ICAgICAgc2NyaXB0SWRlbnRpZmllckJyZWFrcG9pbnRzID0gdGhpcy5fYnJlYWtwb2ludFNjcmlw
dElkZW50aWZpZXJNYXBbYnJlYWtwb2ludC5zY3JpcHRJZGVudGlmaWVyXSA9IFtdOworICAgICAg
ICAgICAgbGV0IHNjcmlwdElkZW50aWZpZXJCcmVha3BvaW50cyA9IHRoaXMuX2JyZWFrcG9pbnRT
Y3JpcHRJZGVudGlmaWVyTWFwLmdldChicmVha3BvaW50LnNjcmlwdElkZW50aWZpZXIpOworICAg
ICAgICAgICAgaWYgKCFzY3JpcHRJZGVudGlmaWVyQnJlYWtwb2ludHMpIHsKKyAgICAgICAgICAg
ICAgICBzY3JpcHRJZGVudGlmaWVyQnJlYWtwb2ludHMgPSBbXTsKKyAgICAgICAgICAgICAgICB0
aGlzLl9icmVha3BvaW50U2NyaXB0SWRlbnRpZmllck1hcC5zZXQoYnJlYWtwb2ludC5zY3JpcHRJ
ZGVudGlmaWVyLCBzY3JpcHRJZGVudGlmaWVyQnJlYWtwb2ludHMpOworICAgICAgICAgICAgfQog
ICAgICAgICAgICAgc2NyaXB0SWRlbnRpZmllckJyZWFrcG9pbnRzLnB1c2goYnJlYWtwb2ludCk7
CiAgICAgICAgIH0KIApAQCAtMzc2LDIwICszODEsMjAgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2Vy
TWFuYWdlciA9IGNsYXNzIERlYnVnZ2VyTWFuYWdlciBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmpl
Y3QKICAgICAgICAgICAgIHRoaXMuX3JlbW92ZUJyZWFrcG9pbnQoYnJlYWtwb2ludCk7CiAKICAg
ICAgICAgaWYgKGJyZWFrcG9pbnQudXJsKSB7Ci0gICAgICAgICAgICB2YXIgdXJsQnJlYWtwb2lu
dHMgPSB0aGlzLl9icmVha3BvaW50VVJMTWFwW2JyZWFrcG9pbnQudXJsXTsKKyAgICAgICAgICAg
IGxldCB1cmxCcmVha3BvaW50cyA9IHRoaXMuX2JyZWFrcG9pbnRVUkxNYXAuZ2V0KGJyZWFrcG9p
bnQudXJsKTsKICAgICAgICAgICAgIGlmICh1cmxCcmVha3BvaW50cykgewogICAgICAgICAgICAg
ICAgIHVybEJyZWFrcG9pbnRzLnJlbW92ZShicmVha3BvaW50KTsKICAgICAgICAgICAgICAgICBp
ZiAoIXVybEJyZWFrcG9pbnRzLmxlbmd0aCkKLSAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHRo
aXMuX2JyZWFrcG9pbnRVUkxNYXBbYnJlYWtwb2ludC51cmxdOworICAgICAgICAgICAgICAgICAg
ICB0aGlzLl9icmVha3BvaW50VVJMTWFwLmRlbGV0ZShicmVha3BvaW50LnVybCk7CiAgICAgICAg
ICAgICB9CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoYnJlYWtwb2ludC5zY3JpcHRJZGVudGlm
aWVyKSB7Ci0gICAgICAgICAgICB2YXIgc2NyaXB0SWRlbnRpZmllckJyZWFrcG9pbnRzID0gdGhp
cy5fYnJlYWtwb2ludFNjcmlwdElkZW50aWZpZXJNYXBbYnJlYWtwb2ludC5zY3JpcHRJZGVudGlm
aWVyXTsKKyAgICAgICAgICAgIGxldCBzY3JpcHRJZGVudGlmaWVyQnJlYWtwb2ludHMgPSB0aGlz
Ll9icmVha3BvaW50U2NyaXB0SWRlbnRpZmllck1hcC5nZXQoYnJlYWtwb2ludC5zY3JpcHRJZGVu
dGlmaWVyKTsKICAgICAgICAgICAgIGlmIChzY3JpcHRJZGVudGlmaWVyQnJlYWtwb2ludHMpIHsK
ICAgICAgICAgICAgICAgICBzY3JpcHRJZGVudGlmaWVyQnJlYWtwb2ludHMucmVtb3ZlKGJyZWFr
cG9pbnQpOwogICAgICAgICAgICAgICAgIGlmICghc2NyaXB0SWRlbnRpZmllckJyZWFrcG9pbnRz
Lmxlbmd0aCkKLSAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuX2JyZWFrcG9pbnRTY3Jp
cHRJZGVudGlmaWVyTWFwW2JyZWFrcG9pbnQuc2NyaXB0SWRlbnRpZmllcl07CisgICAgICAgICAg
ICAgICAgICAgIHRoaXMuX2JyZWFrcG9pbnRTY3JpcHRJZGVudGlmaWVyTWFwLmRlbGV0ZShicmVh
a3BvaW50LnNjcmlwdElkZW50aWZpZXIpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAKQEAg
LTQwNCw3ICs0MDksNyBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJNYW5hZ2VyID0gY2xhc3MgRGVi
dWdnZXJNYW5hZ2VyIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAogICAgIHsKICAgICAgICAg
Ly8gQ2FsbGVkIGZyb20gV2ViSW5zcGVjdG9yLkRlYnVnZ2VyT2JzZXJ2ZXIuCiAKLSAgICAgICAg
dmFyIGJyZWFrcG9pbnQgPSB0aGlzLl9icmVha3BvaW50SWRNYXBbYnJlYWtwb2ludElkZW50aWZp
ZXJdOworICAgICAgICBsZXQgYnJlYWtwb2ludCA9IHRoaXMuX2JyZWFrcG9pbnRJZE1hcC5nZXQo
YnJlYWtwb2ludElkZW50aWZpZXIpOwogICAgICAgICBjb25zb2xlLmFzc2VydChicmVha3BvaW50
KTsKICAgICAgICAgaWYgKCFicmVha3BvaW50KQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtNDMx
LDggKzQzNiw4IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIgPSBjbGFzcyBEZWJ1Z2dl
ck1hbmFnZXIgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAgICAgICAgIHRoaXMuX3BhdXNl
UmVhc29uID0gbnVsbDsKICAgICAgICAgdGhpcy5fcGF1c2VEYXRhID0gbnVsbDsKIAotICAgICAg
ICB0aGlzLl9zY3JpcHRJZE1hcCA9IHt9OwotICAgICAgICB0aGlzLl9zY3JpcHRVUkxNYXAgPSB7
fTsKKyAgICAgICAgdGhpcy5fc2NyaXB0SWRNYXAuY2xlYXIoKTsKKyAgICAgICAgdGhpcy5fc2Ny
aXB0VVJMTWFwLmNsZWFyKCk7CiAKICAgICAgICAgdGhpcy5faWdub3JlQnJlYWtwb2ludERpc3Bs
YXlMb2NhdGlvbkRpZENoYW5nZUV2ZW50ID0gdHJ1ZTsKIApAQCAtNTEyLDIzICs1MTcsMjYgQEAg
V2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlciA9IGNsYXNzIERlYnVnZ2VyTWFuYWdlciBleHRl
bmRzIFdlYkluc3BlY3Rvci5PYmplY3QKICAgICBzY3JpcHREaWRQYXJzZShzY3JpcHRJZGVudGlm
aWVyLCB1cmwsIGlzQ29udGVudFNjcmlwdCwgc3RhcnRMaW5lLCBzdGFydENvbHVtbiwgZW5kTGlu
ZSwgZW5kQ29sdW1uLCBzb3VyY2VNYXBVUkwpCiAgICAgewogICAgICAgICAvLyBEb24ndCBhZGQg
dGhlIHNjcmlwdCBhZ2FpbiBpZiBpdCBpcyBhbHJlYWR5IGtub3duLgotICAgICAgICBpZiAodGhp
cy5fc2NyaXB0SWRNYXBbc2NyaXB0SWRlbnRpZmllcl0pIHsKLSAgICAgICAgICAgIGNvbnNvbGUu
YXNzZXJ0KHRoaXMuX3NjcmlwdElkTWFwW3NjcmlwdElkZW50aWZpZXJdLnVybCA9PT0gKHVybCB8
fCBudWxsKSk7Ci0gICAgICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl9zY3JpcHRJZE1hcFtz
Y3JpcHRJZGVudGlmaWVyXS5yYW5nZS5zdGFydExpbmUgPT09IHN0YXJ0TGluZSk7Ci0gICAgICAg
ICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl9zY3JpcHRJZE1hcFtzY3JpcHRJZGVudGlmaWVyXS5y
YW5nZS5zdGFydENvbHVtbiA9PT0gc3RhcnRDb2x1bW4pOwotICAgICAgICAgICAgY29uc29sZS5h
c3NlcnQodGhpcy5fc2NyaXB0SWRNYXBbc2NyaXB0SWRlbnRpZmllcl0ucmFuZ2UuZW5kTGluZSA9
PT0gZW5kTGluZSk7Ci0gICAgICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl9zY3JpcHRJZE1h
cFtzY3JpcHRJZGVudGlmaWVyXS5yYW5nZS5lbmRDb2x1bW4gPT09IGVuZENvbHVtbik7CisgICAg
ICAgIGlmICh0aGlzLl9zY3JpcHRJZE1hcC5oYXMoc2NyaXB0SWRlbnRpZmllcikpIHsKKyAgICAg
ICAgICAgIGNvbnN0IHNjcmlwdCA9IHRoaXMuX3NjcmlwdElkTWFwLmdldChzY3JpcHRJZGVudGlm
aWVyKTsKKyAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHNjcmlwdC51cmwgPT09ICh1cmwgfHwg
bnVsbCkpOworICAgICAgICAgICAgY29uc29sZS5hc3NlcnQoc2NyaXB0LnJhbmdlLnN0YXJ0TGlu
ZSA9PT0gc3RhcnRMaW5lKTsKKyAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHNjcmlwdC5yYW5n
ZS5zdGFydENvbHVtbiA9PT0gc3RhcnRDb2x1bW4pOworICAgICAgICAgICAgY29uc29sZS5hc3Nl
cnQoc2NyaXB0LnJhbmdlLmVuZExpbmUgPT09IGVuZExpbmUpOworICAgICAgICAgICAgY29uc29s
ZS5hc3NlcnQoc2NyaXB0LnJhbmdlLmVuZENvbHVtbiA9PT0gZW5kQ29sdW1uKTsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQogCiAgICAgICAgIHZhciBzY3JpcHQgPSBuZXcgV2ViSW5z
cGVjdG9yLlNjcmlwdChzY3JpcHRJZGVudGlmaWVyLCBuZXcgV2ViSW5zcGVjdG9yLlRleHRSYW5n
ZShzdGFydExpbmUsIHN0YXJ0Q29sdW1uLCBlbmRMaW5lLCBlbmRDb2x1bW4pLCB1cmwsIGlzQ29u
dGVudFNjcmlwdCwgc291cmNlTWFwVVJMKTsKIAotICAgICAgICB0aGlzLl9zY3JpcHRJZE1hcFtz
Y3JpcHRJZGVudGlmaWVyXSA9IHNjcmlwdDsKKyAgICAgICAgdGhpcy5fc2NyaXB0SWRNYXAuc2V0
KHNjcmlwdElkZW50aWZpZXIsIHNjcmlwdCk7CiAKICAgICAgICAgaWYgKHNjcmlwdC51cmwpIHsK
LSAgICAgICAgICAgIHZhciBzY3JpcHRzID0gdGhpcy5fc2NyaXB0VVJMTWFwW3NjcmlwdC51cmxd
OwotICAgICAgICAgICAgaWYgKCFzY3JpcHRzKQotICAgICAgICAgICAgICAgIHNjcmlwdHMgPSB0
aGlzLl9zY3JpcHRVUkxNYXBbc2NyaXB0LnVybF0gPSBbXTsKKyAgICAgICAgICAgIGxldCBzY3Jp
cHRzID0gdGhpcy5fc2NyaXB0VVJMTWFwLmdldChzY3JpcHQudXJsKTsKKyAgICAgICAgICAgIGlm
ICghc2NyaXB0cykgeworICAgICAgICAgICAgICAgIHNjcmlwdHMgPSBbXTsKKyAgICAgICAgICAg
ICAgICB0aGlzLl9zY3JpcHRVUkxNYXAuc2V0KHNjcmlwdC51cmwsIHNjcmlwdHMpOworICAgICAg
ICAgICAgfQogICAgICAgICAgICAgc2NyaXB0cy5wdXNoKHNjcmlwdCk7CiAgICAgICAgIH0KIApA
QCAtNTU0LDcgKzU2Miw3IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIgPSBjbGFzcyBE
ZWJ1Z2dlck1hbmFnZXIgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAKICAgICBfc291cmNl
Q29kZUxvY2F0aW9uRnJvbVBheWxvYWQocGF5bG9hZCkKICAgICB7Ci0gICAgICAgIHZhciBzY3Jp
cHQgPSB0aGlzLl9zY3JpcHRJZE1hcFtwYXlsb2FkLnNjcmlwdElkXTsKKyAgICAgICAgbGV0IHNj
cmlwdCA9IHRoaXMuX3NjcmlwdElkTWFwLmdldChwYXlsb2FkLnNjcmlwdElkKTsKICAgICAgICAg
Y29uc29sZS5hc3NlcnQoc2NyaXB0KTsKICAgICAgICAgaWYgKCFzY3JpcHQpCiAgICAgICAgICAg
ICByZXR1cm4gbnVsbDsKQEAgLTY1Nyw3ICs2NjUsNyBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJN
YW5hZ2VyID0gY2xhc3MgRGVidWdnZXJNYW5hZ2VyIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVj
dAogICAgICAgICAgICAgaWYgKGVycm9yKQogICAgICAgICAgICAgICAgIHJldHVybjsKIAotICAg
ICAgICAgICAgdGhpcy5fYnJlYWtwb2ludElkTWFwW2JyZWFrcG9pbnRJZGVudGlmaWVyXSA9IGJy
ZWFrcG9pbnQ7CisgICAgICAgICAgICB0aGlzLl9icmVha3BvaW50SWRNYXAuc2V0KGJyZWFrcG9p
bnRJZGVudGlmaWVyLCBicmVha3BvaW50KTsKIAogICAgICAgICAgICAgYnJlYWtwb2ludC5pZGVu
dGlmaWVyID0gYnJlYWtwb2ludElkZW50aWZpZXI7CiAKQEAgLTcxOCw3ICs3MjYsNyBAQCBXZWJJ
bnNwZWN0b3IuRGVidWdnZXJNYW5hZ2VyID0gY2xhc3MgRGVidWdnZXJNYW5hZ2VyIGV4dGVuZHMg
V2ViSW5zcGVjdG9yLk9iamVjdAogICAgICAgICAgICAgaWYgKGVycm9yKQogICAgICAgICAgICAg
ICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpOwogCi0gICAgICAgICAgICBkZWxldGUgdGhpcy5fYnJl
YWtwb2ludElkTWFwW2JyZWFrcG9pbnQuaWRlbnRpZmllcl07CisgICAgICAgICAgICB0aGlzLl9i
cmVha3BvaW50SWRNYXAuZGVsZXRlKGJyZWFrcG9pbnQuaWRlbnRpZmllcik7CiAKICAgICAgICAg
ICAgIGJyZWFrcG9pbnQuaWRlbnRpZmllciA9IG51bGw7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>