<?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>89678</bug_id>
          
          <creation_ts>2012-06-21 10:57:48 -0700</creation_ts>
          <short_desc>Web Inspector: Support &apos;Restart frame&apos; in inspector frontend</short_desc>
          <delta_ts>2012-06-22 06:56:38 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Peter Rybin">prybin</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aandrey</cc>
    
    <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>654696</commentid>
    <comment_count>0</comment_count>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2012-06-21 10:57:48 -0700</bug_when>
    <thetext>&apos;Restart frame&apos; action is supported in protocol. Add a UI for this feature to WebInspector.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>654704</commentid>
    <comment_count>1</comment_count>
      <attachid>148840</attachid>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2012-06-21 11:02:51 -0700</bug_when>
    <thetext>Created attachment 148840
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>654714</commentid>
    <comment_count>2</comment_count>
      <attachid>148840</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-06-21 11:11:46 -0700</bug_when>
    <thetext>Comment on attachment 148840
Patch

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

&gt; Source/WebCore/inspector/front-end/CallStackSidebarPane.js:110
&gt; +    contributeToContextMenu: function(contextMenu) {

{ should go to the next line

&gt; Source/WebCore/inspector/front-end/CallStackSidebarPane.js:111
&gt;          contextMenu.appendItem(WebInspector.UIString(&quot;Copy Stack Trace&quot;), this._copyStackTrace.bind(this));

I&apos;d rather move this into placard. You can call _copyStackTrace from there (it is private to this file).

&gt; Source/WebCore/inspector/front-end/CallStackSidebarPane.js:188
&gt; +    _placardContextMenu: function(event) {

{ on the next line

&gt; Source/WebCore/inspector/front-end/CallStackSidebarPane.js:190
&gt; +        contextMenu.appendItem(WebInspector.UIString(&quot;Restart Frame&quot;), this._restartFrame.bind(this), !WebInspector.debuggerModel.canSetScriptSource());

canSetScriptSource is constant for the port. You should not disable it on that basis, you should just add the item depending on the value.

&gt; Source/WebCore/inspector/front-end/CallStackSidebarPane.js:196
&gt; +    _restartFrame: function() {

{ on the next line

&gt; Source/WebCore/inspector/front-end/DebuggerModel.js:552
&gt; +    callStackModified: function(newCallFrames, details) {

{ on the next line

&gt; Source/WebCore/inspector/front-end/DebuggerModel.js:554
&gt; +        if (details &amp;&amp; details[&quot;stack_update_needs_step_in&quot;]) {

No need for { } for the upper branch

&gt; Source/WebCore/inspector/front-end/DebuggerModel.js:555
&gt; +            DebuggerAgent.stepInto();

You should do this in the backend.

&gt; Source/WebCore/inspector/front-end/DebuggerModel.js:740
&gt; +            if (!error) {

no need for { }

&gt; Source/WebCore/inspector/front-end/DebuggerModel.js:743
&gt; +            if (callback) {

ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>654729</commentid>
    <comment_count>3</comment_count>
      <attachid>148840</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-06-21 11:24:03 -0700</bug_when>
    <thetext>Comment on attachment 148840
Patch

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

&gt; Source/WebCore/inspector/front-end/CallStackSidebarPane.js:192
&gt; +        this._pane.contributeToContextMenu(contextMenu);

I would keep context menu population in one method of CallStackSidebarPane.
E.g. in eclipse &quot;restart frame&quot; is in the middle of context menu which would be hard to implement with current approach.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>654793</commentid>
    <comment_count>4</comment_count>
      <attachid>148863</attachid>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2012-06-21 12:23:29 -0700</bug_when>
    <thetext>Created attachment 148863
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>654797</commentid>
    <comment_count>5</comment_count>
      <attachid>148840</attachid>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2012-06-21 12:34:25 -0700</bug_when>
    <thetext>Comment on attachment 148840
Patch

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

&gt;&gt; Source/WebCore/inspector/front-end/DebuggerModel.js:552
&gt;&gt; +    callStackModified: function(newCallFrames, details) {
&gt; 
&gt; { on the next line

Done

&gt;&gt; Source/WebCore/inspector/front-end/DebuggerModel.js:554
&gt;&gt; +        if (details &amp;&amp; details[&quot;stack_update_needs_step_in&quot;]) {
&gt; 
&gt; No need for { } for the upper branch

Done. Could have done for the lower branch as well.

&gt;&gt; Source/WebCore/inspector/front-end/DebuggerModel.js:555
&gt;&gt; +            DebuggerAgent.stepInto();
&gt; 
&gt; You should do this in the backend.

It&apos;s a tricky thing. This would make command optionally changing backend state from paused to resumed. Let&apos;s not do it right now.

&gt;&gt; Source/WebCore/inspector/front-end/DebuggerModel.js:740
&gt;&gt; +            if (!error) {
&gt; 
&gt; no need for { }

Done

&gt;&gt; Source/WebCore/inspector/front-end/DebuggerModel.js:743
&gt;&gt; +            if (callback) {
&gt; 
&gt; ditto

Done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>654798</commentid>
    <comment_count>6</comment_count>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2012-06-21 12:34:44 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 148840 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=148840&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/inspector/front-end/CallStackSidebarPane.js:192
&gt; &gt; +        this._pane.contributeToContextMenu(contextMenu);
&gt; 
&gt; I would keep context menu population in one method of CallStackSidebarPane.
&gt; E.g. in eclipse &quot;restart frame&quot; is in the middle of context menu which would be hard to implement with current approach.

Done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655117</commentid>
    <comment_count>7</comment_count>
      <attachid>148863</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-06-21 18:27:23 -0700</bug_when>
    <thetext>Comment on attachment 148863
Patch

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

&gt; Source/WebCore/inspector/front-end/DebuggerModel.js:733
&gt; +    restart: function(callback) {

Please put { on the next line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655172</commentid>
    <comment_count>8</comment_count>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2012-06-21 19:48:28 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 148863 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=148863&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/inspector/front-end/DebuggerModel.js:733
&gt; &gt; +    restart: function(callback) {
&gt; 
&gt; Please put { on the next line.

Damn
Done
Thank you</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655173</commentid>
    <comment_count>9</comment_count>
      <attachid>148946</attachid>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2012-06-21 19:49:56 -0700</bug_when>
    <thetext>Created attachment 148946
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655207</commentid>
    <comment_count>10</comment_count>
    <who name="Andrey Adaikin">aandrey</who>
    <bug_when>2012-06-21 20:42:12 -0700</bug_when>
    <thetext>BTW, I find &quot;Restart Frame&quot; a bit confusing. If what you&apos;re doing is similar to invoking frame.contentWindow.location.reload(), then IMO &quot;Reload Frame&quot; would be more appropriate, no?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655210</commentid>
    <comment_count>11</comment_count>
    <who name="Andrey Adaikin">aandrey</who>
    <bug_when>2012-06-21 20:47:17 -0700</bug_when>
    <thetext>ah, call frame, not an iframe :) nevermind.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655422</commentid>
    <comment_count>12</comment_count>
      <attachid>148946</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-22 06:56:33 -0700</bug_when>
    <thetext>Comment on attachment 148946
Patch

Clearing flags on attachment: 148946

Committed r121021: &lt;http://trac.webkit.org/changeset/121021&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>655424</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-22 06:56:38 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148840</attachid>
            <date>2012-06-21 11:02:51 -0700</date>
            <delta_ts>2012-06-21 19:49:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89678-20120621220250.patch</filename>
            <type>text/plain</type>
            <size>8637</size>
            <attacher name="Peter Rybin">prybin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwOTQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTNiMzlkOTczMTk2MDgy
YmMzNTAzNWI4MTI1MGVhYWRjZmMwZTk5Zi4uMDAzY2FmYThlM2Q5NWZjNTlhNjc5YzMxMDk3NjU0
ZWEzNGE3ZDNiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTA2LTIxICBQZXRl
ciBSeWJpbiAgPHBldGVyLnJ5YmluQGdtYWlsLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9y
OiBTdXBwb3J0ICdSZXN0YXJ0IGZyYW1lJyBpbiBpbnNwZWN0b3IgZnJvbnRlbmQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5Njc4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWN0aW9uIGlzIGFkZGVkIHRv
IGNhbGwgZnJhbWUgcGxhY2FyZCdzIGNvbnRleHQgbWVudS4gQ29udGV4dCBtZW51IGlzIG5vdyBi
dWlsdAorICAgICAgICBvbiBhIGNhbGwgZnJhbWUgbGV2ZWwgcmF0aGVyIHRoYW4gb24gY2FsbGJh
Y2sgc2lkZWJhciBsZXZlbC4KKworICAgICAgICAqIEVuZ2xpc2gubHByb2ovbG9jYWxpemVkU3Ry
aW5ncy5qczoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0NhbGxTdGFja1NpZGViYXJQ
YW5lLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNhbGxTdGFja1NpZGViYXJQYW5lKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5DYWxsU3RhY2tTaWRlYmFyUGFuZS5wcm90b3R5cGUudXBkYXRl
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DYWxsU3RhY2tTaWRlYmFyUGFuZS5wcm90b3R5cGUu
Y29udHJpYnV0ZVRvQ29udGV4dE1lbnUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNhbGxTdGFj
a1NpZGViYXJQYW5lLlBsYWNhcmQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNhbGxTdGFja1Np
ZGViYXJQYW5lLlBsYWNhcmQucHJvdG90eXBlLl91cGRhdGUpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkNhbGxTdGFja1NpZGViYXJQYW5lLlBsYWNhcmQucHJvdG90eXBlLl9wbGFjYXJkQ29udGV4
dE1lbnUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNhbGxTdGFja1NpZGViYXJQYW5lLlBsYWNh
cmQucHJvdG90eXBlLl9yZXN0YXJ0RnJhbWUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvRGVidWdnZXJNb2RlbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVs
LnByb3RvdHlwZS5yYXdMb2NhdGlvblRvVUlMb2NhdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuRGVidWdnZXJNb2RlbC5wcm90b3R5cGUuY2FsbFN0YWNrTW9kaWZpZWQpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuQ2FsbEZyYW1lLnByb3RvdHlwZS5yZXN0YXJ0KToK
KyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdC5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5TY3JpcHQucHJvdG90eXBlLmVkaXRTb3VyY2UpOgorCiAyMDEyLTA2LTIxICBBbmRy
ZWkgT25lYSAgPG9uZWFAYWRvYmUuY29tPgogCiAgICAgICAgIFtDU1NSZWdpb25zXUNoYW5nZSBX
RUJLSVRfUkVHSU9OX1JVTEUgdmFsdWUgdG8gMTYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0VuZ2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcyBiL1NvdXJjZS9XZWJDb3JlL0VuZ2xp
c2gubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcwppbmRleCBmNGQyZTNhYzllM2QzOGRkNDczNDE4
ODBiY2U3Y2NlNmE5M2VlYTFmLi4yMzZkNDRiNTkyMmM0NDQ5YWFjMmJiMWEzMWZmNGE5OWUyNGJk
ZDY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0
cmluZ3MuanMKKysrIGIvU291cmNlL1dlYkNvcmUvRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJp
bmdzLmpzCkBAIC01NDMsNiArNTQzLDcgQEAgbG9jYWxpemVkU3RyaW5nc1sicHJvcGVydHkiXSA9
ICJwcm9wZXJ0eSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJPYmplY3QgdHlwZXM6Il0gPSAiT2JqZWN0
IHR5cGVzOiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyIlcygpIGF0ICVzIl0gPSAiJXMoKSBhdCAlcyI7
CiBsb2NhbGl6ZWRTdHJpbmdzWyJDb3B5IFN0YWNrIFRyYWNlIl0gPSAiQ29weSBTdGFjayBUcmFj
ZSI7Citsb2NhbGl6ZWRTdHJpbmdzWyJSZXN0YXJ0IEZyYW1lIl0gPSAiUmVzdGFydCBGcmFtZSI7
CiBsb2NhbGl6ZWRTdHJpbmdzWyJDb2xsZWN0IEdhcmJhZ2UiXSA9ICJDb2xsZWN0IEdhcmJhZ2Ui
OwogbG9jYWxpemVkU3RyaW5nc1siSlNPTiJdID0gIkpTT04iOwogbG9jYWxpemVkU3RyaW5nc1si
Q2F0Y2giXSA9ICJDYXRjaCI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0NhbGxTdGFja1NpZGViYXJQYW5lLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9DYWxsU3RhY2tTaWRlYmFyUGFuZS5qcwppbmRleCA5YmRkZjVhZjY0NWI0
M2FlYjk3ZjExZWE1NjYyOTRlMDM5MTdiZGYyLi5iZGVhYTdiYmY3YWM1ZWMwMWI4ZmJjNTFjYjIz
YWJhMzk2NGRhMTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0NhbGxTdGFja1NpZGViYXJQYW5lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvQ2FsbFN0YWNrU2lkZWJhclBhbmUuanMKQEAgLTMyLDcgKzMyLDYgQEAgV2Vi
SW5zcGVjdG9yLkNhbGxTdGFja1NpZGViYXJQYW5lID0gZnVuY3Rpb24oKQogICAgIFdlYkluc3Bl
Y3Rvci5TaWRlYmFyUGFuZS5jYWxsKHRoaXMsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiQ2FsbCBT
dGFjayIpKTsKICAgICB0aGlzLl9tb2RlbCA9IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsOwog
Ci0gICAgdGhpcy5ib2R5RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsIHRo
aXMuX2NvbnRleHRNZW51LmJpbmQodGhpcyksIHRydWUpOwogICAgIHRoaXMuYm9keUVsZW1lbnQu
YWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsIHRoaXMuX2tleURvd24uYmluZCh0aGlzKSwgdHJ1
ZSk7CiAgICAgdGhpcy5ib2R5RWxlbWVudC50YWJJbmRleCA9IDA7CiB9CkBAIC01Myw3ICs1Miw3
IEBAIFdlYkluc3BlY3Rvci5DYWxsU3RhY2tTaWRlYmFyUGFuZS5wcm90b3R5cGUgPSB7CiAKICAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjYWxsRnJhbWVzLmxlbmd0aDsgKytpKSB7CiAgICAg
ICAgICAgICB2YXIgY2FsbEZyYW1lID0gY2FsbEZyYW1lc1tpXTsKLSAgICAgICAgICAgIHZhciBw
bGFjYXJkID0gbmV3IFdlYkluc3BlY3Rvci5DYWxsU3RhY2tTaWRlYmFyUGFuZS5QbGFjYXJkKGNh
bGxGcmFtZSk7CisgICAgICAgICAgICB2YXIgcGxhY2FyZCA9IG5ldyBXZWJJbnNwZWN0b3IuQ2Fs
bFN0YWNrU2lkZWJhclBhbmUuUGxhY2FyZChjYWxsRnJhbWUsIHRoaXMpOwogICAgICAgICAgICAg
cGxhY2FyZC5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5fcGxhY2FyZFNl
bGVjdGVkLmJpbmQodGhpcywgcGxhY2FyZCksIGZhbHNlKTsKICAgICAgICAgICAgIHRoaXMucGxh
Y2FyZHMucHVzaChwbGFjYXJkKTsKICAgICAgICAgICAgIHRoaXMuYm9keUVsZW1lbnQuYXBwZW5k
Q2hpbGQocGxhY2FyZC5lbGVtZW50KTsKQEAgLTEwOCwxNCArMTA3LDggQEAgV2ViSW5zcGVjdG9y
LkNhbGxTdGFja1NpZGViYXJQYW5lLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fbW9kZWwu
c2V0U2VsZWN0ZWRDYWxsRnJhbWUocGxhY2FyZC5fY2FsbEZyYW1lKTsKICAgICB9LAogCi0gICAg
X2NvbnRleHRNZW51OiBmdW5jdGlvbihldmVudCkKLSAgICB7Ci0gICAgICAgIGlmICghdGhpcy5w
bGFjYXJkcy5sZW5ndGgpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgdmFyIGNvbnRl
eHRNZW51ID0gbmV3IFdlYkluc3BlY3Rvci5Db250ZXh0TWVudSgpOworICAgIGNvbnRyaWJ1dGVU
b0NvbnRleHRNZW51OiBmdW5jdGlvbihjb250ZXh0TWVudSkgewogICAgICAgICBjb250ZXh0TWVu
dS5hcHBlbmRJdGVtKFdlYkluc3BlY3Rvci5VSVN0cmluZygiQ29weSBTdGFjayBUcmFjZSIpLCB0
aGlzLl9jb3B5U3RhY2tUcmFjZS5iaW5kKHRoaXMpKTsKLSAgICAgICAgY29udGV4dE1lbnUuc2hv
dyhldmVudCk7CiAgICAgfSwKIAogICAgIF9jb3B5U3RhY2tUcmFjZTogZnVuY3Rpb24oKQpAQCAt
MTc1LDE4ICsxNjgsMzMgQEAgV2ViSW5zcGVjdG9yLkNhbGxTdGFja1NpZGViYXJQYW5lLnByb3Rv
dHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuU2lkZWJhclBhbmUKICAqIEBjb25zdHJ1Y3Rv
cgogICogQGV4dGVuZHMge1dlYkluc3BlY3Rvci5QbGFjYXJkfQogICogQHBhcmFtIHtXZWJJbnNw
ZWN0b3IuRGVidWdnZXJNb2RlbC5DYWxsRnJhbWV9IGNhbGxGcmFtZQorICogQHBhcmFtIHtXZWJJ
bnNwZWN0b3IuQ2FsbFN0YWNrU2lkZWJhclBhbmV9IHBhbmUKICAqLwotV2ViSW5zcGVjdG9yLkNh
bGxTdGFja1NpZGViYXJQYW5lLlBsYWNhcmQgPSBmdW5jdGlvbihjYWxsRnJhbWUpCitXZWJJbnNw
ZWN0b3IuQ2FsbFN0YWNrU2lkZWJhclBhbmUuUGxhY2FyZCA9IGZ1bmN0aW9uKGNhbGxGcmFtZSwg
cGFuZSkKIHsKICAgICBXZWJJbnNwZWN0b3IuUGxhY2FyZC5jYWxsKHRoaXMsIGNhbGxGcmFtZS5m
dW5jdGlvbk5hbWUgfHwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCIoYW5vbnltb3VzIGZ1bmN0aW9u
KSIpLCAiIik7CiAgICAgY2FsbEZyYW1lLmNyZWF0ZUxpdmVMb2NhdGlvbih0aGlzLl91cGRhdGUu
YmluZCh0aGlzKSk7CisgICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHRt
ZW51IiwgdGhpcy5fcGxhY2FyZENvbnRleHRNZW51LmJpbmQodGhpcyksIHRydWUpOwogICAgIHRo
aXMuX2NhbGxGcmFtZSA9IGNhbGxGcmFtZTsKKyAgICB0aGlzLl9wYW5lID0gcGFuZTsKIH0KIAog
V2ViSW5zcGVjdG9yLkNhbGxTdGFja1NpZGViYXJQYW5lLlBsYWNhcmQucHJvdG90eXBlID0gewog
ICAgIF91cGRhdGU6IGZ1bmN0aW9uKHVpTG9jYXRpb24pCiAgICAgewogICAgICAgICB0aGlzLnN1
YnRpdGxlID0gV2ViSW5zcGVjdG9yLmRpc3BsYXlOYW1lRm9yVVJMKHVpTG9jYXRpb24udWlTb3Vy
Y2VDb2RlLnVybCkgKyAiOiIgKyAodWlMb2NhdGlvbi5saW5lTnVtYmVyICsgMSk7CisgICAgfSwK
KworICAgIF9wbGFjYXJkQ29udGV4dE1lbnU6IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIHZh
ciBjb250ZXh0TWVudSA9IG5ldyBXZWJJbnNwZWN0b3IuQ29udGV4dE1lbnUoKTsKKyAgICAgICAg
Y29udGV4dE1lbnUuYXBwZW5kSXRlbShXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlJlc3RhcnQgRnJh
bWUiKSwgdGhpcy5fcmVzdGFydEZyYW1lLmJpbmQodGhpcyksICFXZWJJbnNwZWN0b3IuZGVidWdn
ZXJNb2RlbC5jYW5TZXRTY3JpcHRTb3VyY2UoKSk7CisgICAgICAgIGNvbnRleHRNZW51LmFwcGVu
ZFNlcGFyYXRvcigpOworICAgICAgICB0aGlzLl9wYW5lLmNvbnRyaWJ1dGVUb0NvbnRleHRNZW51
KGNvbnRleHRNZW51KTsKKyAgICAgICAgY29udGV4dE1lbnUuc2hvdyhldmVudCk7CisgICAgfSwK
KworICAgIF9yZXN0YXJ0RnJhbWU6IGZ1bmN0aW9uKCkgeworICAgICAgICB0aGlzLl9jYWxsRnJh
bWUucmVzdGFydCh1bmRlZmluZWQpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlck1vZGVsLmpzIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlck1vZGVsLmpzCmluZGV4IDJmMGY3YmMyZGM4
ZTQzNGNlYTczMmU4ZDMwZTVmNWQwNDk4NGU3NmUuLjJlOWQzZWZmOWRlYWY3NjE1YmM2ZTE1MDBl
ZjgyMjhjNjM2ZDdiY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvRGVidWdnZXJNb2RlbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0RlYnVnZ2VyTW9kZWwuanMKQEAgLTU0MSw2ICs1NDEsMjMgQEAgV2ViSW5zcGVjdG9y
LkRlYnVnZ2VyTW9kZWwucHJvdG90eXBlID0gewogICAgICAgICBpZiAoIXNjcmlwdCkKICAgICAg
ICAgICAgIHJldHVybiBudWxsOwogICAgICAgICByZXR1cm4gc2NyaXB0LnJhd0xvY2F0aW9uVG9V
SUxvY2F0aW9uKHJhd0xvY2F0aW9uLmxpbmVOdW1iZXIsIHJhd0xvY2F0aW9uLmNvbHVtbk51bWJl
cik7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEhhbmRsZXMgbm90aWZpY2F0aW9uIGZyb20g
SmF2YVNjcmlwdCBWTSBhYm91dCB1cGRhdGVkIHN0YWNrIChsaXZlZWRpdCBvciBmcmFtZSByZXN0
YXJ0IGFjdGlvbikuCisgICAgICogQHRoaXMge1dlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsfQor
ICAgICAqIEBwYXJhbSB7QXJyYXkuPERlYnVnZ2VyQWdlbnQuQ2FsbEZyYW1lPj19IG5ld0NhbGxG
cmFtZXMKKyAgICAgKiBAcGFyYW0ge09iamVjdD19IGRldGFpbHMKKyAgICAgKi8KKyAgICBjYWxs
U3RhY2tNb2RpZmllZDogZnVuY3Rpb24obmV3Q2FsbEZyYW1lcywgZGV0YWlscykgeworICAgICAg
ICAvLyBGSVhNRTogZGVjbGFyZSB0aGlzIHByb3BlcnR5IGluIHByb3RvY29sIGFuZCBpbiBKYXZh
U2NyaXB0LgorICAgICAgICBpZiAoZGV0YWlscyAmJiBkZXRhaWxzWyJzdGFja191cGRhdGVfbmVl
ZHNfc3RlcF9pbiJdKSB7CisgICAgICAgICAgICBEZWJ1Z2dlckFnZW50LnN0ZXBJbnRvKCk7Cisg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAobmV3Q2FsbEZyYW1lcyAmJiBuZXdDYWxs
RnJhbWVzLmxlbmd0aCkKKyAgICAgICAgICAgICAgICB0aGlzLl9wYXVzZWRTY3JpcHQobmV3Q2Fs
bEZyYW1lcywgdGhpcy5fZGVidWdnZXJQYXVzZWREZXRhaWxzLnJlYXNvbiwgdGhpcy5fZGVidWdn
ZXJQYXVzZWREZXRhaWxzLmF1eERhdGEpOworCisgICAgICAgIH0KICAgICB9CiB9CiAKQEAgLTcx
MCw2ICs3MjcsMjcgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuQ2FsbEZyYW1lLnByb3Rv
dHlwZSA9IHsKICAgICB9LAogCiAgICAgLyoqCisgICAgICogQHBhcmFtIHtmdW5jdGlvbig/UHJv
dG9jb2wuRXJyb3I9KT19IGNhbGxiYWNrCisgICAgICovCisgICAgcmVzdGFydDogZnVuY3Rpb24o
Y2FsbGJhY2spIHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEB0aGlzIHtXZWJJbnNwZWN0b3Iu
RGVidWdnZXJNb2RlbC5DYWxsRnJhbWV9CisgICAgICAgICAqIEBwYXJhbSB7P1Byb3RvY29sLkVy
cm9yfSBlcnJvcgorICAgICAgICAgKiBAcGFyYW0ge0FycmF5LjxEZWJ1Z2dlckFnZW50LkNhbGxG
cmFtZT49fSBjYWxsRnJhbWVzCisgICAgICAgICAqIEBwYXJhbSB7T2JqZWN0PX0gZGV0YWlscwor
ICAgICAgICAgKi8KKyAgICAgICAgZnVuY3Rpb24gcHJvdG9jb2xDYWxsYmFjayhlcnJvciwgY2Fs
bEZyYW1lcywgZGV0YWlscykgeworICAgICAgICAgICAgaWYgKCFlcnJvcikgeworICAgICAgICAg
ICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLmNhbGxTdGFja01vZGlmaWVkKGNhbGxG
cmFtZXMsIGRldGFpbHMpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGNhbGxiYWNr
KSB7CisgICAgICAgICAgICAgICAgY2FsbGJhY2soZXJyb3IpOworICAgICAgICAgICAgfQorICAg
ICAgICB9CisgICAgICAgIERlYnVnZ2VyQWdlbnQucmVzdGFydEZyYW1lKHRoaXMuX3BheWxvYWQu
Y2FsbEZyYW1lSWQsIHByb3RvY29sQ2FsbGJhY2spOworICAgIH0sCisKKyAgICAvKioKICAgICAg
KiBAcGFyYW0ge2Z1bmN0aW9uKFdlYkluc3BlY3Rvci5VSUxvY2F0aW9uKTooYm9vbGVhbnx1bmRl
ZmluZWQpfSB1cGRhdGVEZWxlZ2F0ZQogICAgICAqLwogICAgIGNyZWF0ZUxpdmVMb2NhdGlvbjog
ZnVuY3Rpb24odXBkYXRlRGVsZWdhdGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1NjcmlwdC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvU2NyaXB0LmpzCmluZGV4IGM5ZmNkM2EyM2VmYmEyNzBkMjkzMzU2MTUwZjM2ODFlZDQw
ZGQwNDQuLmU5NzNmYzUzMzlkZjFiMGM4OWU1OTk3N2ZlOWZkMTM4OTIyNmYwOGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0LmpzCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0LmpzCkBAIC0xMzgsNiArMTM4
LDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAqLwogICAg
ICAgICBmdW5jdGlvbiBkaWRFZGl0U2NyaXB0U291cmNlKGVycm9yLCBjYWxsRnJhbWVzLCBkZWJ1
Z0RhdGEpCiAgICAgICAgIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBzdXBwb3J0IGRlYnVnRGF0
YS5zdGFja191cGRhdGVfbmVlZHNfc3RlcF9pbiBmbGFnIGJ5IGNhbGxpbmcgV2ViSW5zcGVjdG9y
LmRlYnVnZ2VyX21vZGVsLmNhbGxTdGFja01vZGlmaWVkCiAgICAgICAgICAgICBpZiAoIWVycm9y
KQogICAgICAgICAgICAgICAgIHRoaXMuX3NvdXJjZSA9IG5ld1NvdXJjZTsKICAgICAgICAgICAg
IGNhbGxiYWNrKGVycm9yLCBjYWxsRnJhbWVzKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148863</attachid>
            <date>2012-06-21 12:23:29 -0700</date>
            <delta_ts>2012-06-21 19:49:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89678-20120621232328.patch</filename>
            <type>text/plain</type>
            <size>8568</size>
            <attacher name="Peter Rybin">prybin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwOTQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTNiMzlkOTczMTk2MDgy
YmMzNTAzNWI4MTI1MGVhYWRjZmMwZTk5Zi4uNzZhODlmNTBlMTk5ZTBkMTkxZGEyY2M3Y2Y1OGRl
MDgxODAyZDRiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTA2LTIxICBQZXRl
ciBSeWJpbiAgPHBldGVyLnJ5YmluQGdtYWlsLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9y
OiBTdXBwb3J0ICdSZXN0YXJ0IGZyYW1lJyBpbiBpbnNwZWN0b3IgZnJvbnRlbmQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5Njc4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWN0aW9uIGlzIGFkZGVkIHRv
IGNhbGwgZnJhbWUgcGxhY2FyZCdzIGNvbnRleHQgbWVudS4gQ29udGV4dCBtZW51IGlzIG5vdyBi
dWlsdAorICAgICAgICBvbiBhIGNhbGwgZnJhbWUgbGV2ZWwgcmF0aGVyIHRoYW4gb24gY2FsbGJh
Y2sgc2lkZWJhciBsZXZlbC4KKworICAgICAgICAqIEVuZ2xpc2gubHByb2ovbG9jYWxpemVkU3Ry
aW5ncy5qczoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0NhbGxTdGFja1NpZGViYXJQ
YW5lLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNhbGxTdGFja1NpZGViYXJQYW5lKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5DYWxsU3RhY2tTaWRlYmFyUGFuZS5wcm90b3R5cGUudXBkYXRl
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DYWxsU3RhY2tTaWRlYmFyUGFuZS5QbGFjYXJkKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5DYWxsU3RhY2tTaWRlYmFyUGFuZS5QbGFjYXJkLnByb3Rv
dHlwZS5fdXBkYXRlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DYWxsU3RhY2tTaWRlYmFyUGFu
ZS5QbGFjYXJkLnByb3RvdHlwZS5fcGxhY2FyZENvbnRleHRNZW51KToKKyAgICAgICAgKF9yZXN0
YXJ0RnJhbWUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJNb2RlbC5q
czoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlwZS5yYXdMb2Nh
dGlvblRvVUlMb2NhdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5w
cm90b3R5cGUuY2FsbFN0YWNrTW9kaWZpZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVn
Z2VyTW9kZWwuQ2FsbEZyYW1lLnByb3RvdHlwZS5yZXN0YXJ0KToKKyAgICAgICAgKiBpbnNwZWN0
b3IvZnJvbnQtZW5kL1NjcmlwdC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHQucHJv
dG90eXBlLmVkaXRTb3VyY2UpOgorCiAyMDEyLTA2LTIxICBBbmRyZWkgT25lYSAgPG9uZWFAYWRv
YmUuY29tPgogCiAgICAgICAgIFtDU1NSZWdpb25zXUNoYW5nZSBXRUJLSVRfUkVHSU9OX1JVTEUg
dmFsdWUgdG8gMTYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovbG9j
YWxpemVkU3RyaW5ncy5qcyBiL1NvdXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovbG9jYWxpemVk
U3RyaW5ncy5qcwppbmRleCBmNGQyZTNhYzllM2QzOGRkNDczNDE4ODBiY2U3Y2NlNmE5M2VlYTFm
Li4yMzZkNDRiNTkyMmM0NDQ5YWFjMmJiMWEzMWZmNGE5OWUyNGJkZDY4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKKysrIGIvU291
cmNlL1dlYkNvcmUvRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCkBAIC01NDMsNiAr
NTQzLDcgQEAgbG9jYWxpemVkU3RyaW5nc1sicHJvcGVydHkiXSA9ICJwcm9wZXJ0eSI7CiBsb2Nh
bGl6ZWRTdHJpbmdzWyJPYmplY3QgdHlwZXM6Il0gPSAiT2JqZWN0IHR5cGVzOiI7CiBsb2NhbGl6
ZWRTdHJpbmdzWyIlcygpIGF0ICVzIl0gPSAiJXMoKSBhdCAlcyI7CiBsb2NhbGl6ZWRTdHJpbmdz
WyJDb3B5IFN0YWNrIFRyYWNlIl0gPSAiQ29weSBTdGFjayBUcmFjZSI7Citsb2NhbGl6ZWRTdHJp
bmdzWyJSZXN0YXJ0IEZyYW1lIl0gPSAiUmVzdGFydCBGcmFtZSI7CiBsb2NhbGl6ZWRTdHJpbmdz
WyJDb2xsZWN0IEdhcmJhZ2UiXSA9ICJDb2xsZWN0IEdhcmJhZ2UiOwogbG9jYWxpemVkU3RyaW5n
c1siSlNPTiJdID0gIkpTT04iOwogbG9jYWxpemVkU3RyaW5nc1siQ2F0Y2giXSA9ICJDYXRjaCI7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NhbGxTdGFj
a1NpZGViYXJQYW5lLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DYWxs
U3RhY2tTaWRlYmFyUGFuZS5qcwppbmRleCA5YmRkZjVhZjY0NWI0M2FlYjk3ZjExZWE1NjYyOTRl
MDM5MTdiZGYyLi42YWIzZWM4NjI3NTJjNjM0NmQ3OTU4MTg1N2EwODAxNzUyNmFlYjllIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NhbGxTdGFja1NpZGVi
YXJQYW5lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ2FsbFN0
YWNrU2lkZWJhclBhbmUuanMKQEAgLTMyLDcgKzMyLDYgQEAgV2ViSW5zcGVjdG9yLkNhbGxTdGFj
a1NpZGViYXJQYW5lID0gZnVuY3Rpb24oKQogICAgIFdlYkluc3BlY3Rvci5TaWRlYmFyUGFuZS5j
YWxsKHRoaXMsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiQ2FsbCBTdGFjayIpKTsKICAgICB0aGlz
Ll9tb2RlbCA9IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsOwogCi0gICAgdGhpcy5ib2R5RWxl
bWVudC5hZGRFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsIHRoaXMuX2NvbnRleHRNZW51LmJp
bmQodGhpcyksIHRydWUpOwogICAgIHRoaXMuYm9keUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigi
a2V5ZG93biIsIHRoaXMuX2tleURvd24uYmluZCh0aGlzKSwgdHJ1ZSk7CiAgICAgdGhpcy5ib2R5
RWxlbWVudC50YWJJbmRleCA9IDA7CiB9CkBAIC01Myw3ICs1Miw3IEBAIFdlYkluc3BlY3Rvci5D
YWxsU3RhY2tTaWRlYmFyUGFuZS5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCBjYWxsRnJhbWVzLmxlbmd0aDsgKytpKSB7CiAgICAgICAgICAgICB2YXIgY2FsbEZy
YW1lID0gY2FsbEZyYW1lc1tpXTsKLSAgICAgICAgICAgIHZhciBwbGFjYXJkID0gbmV3IFdlYklu
c3BlY3Rvci5DYWxsU3RhY2tTaWRlYmFyUGFuZS5QbGFjYXJkKGNhbGxGcmFtZSk7CisgICAgICAg
ICAgICB2YXIgcGxhY2FyZCA9IG5ldyBXZWJJbnNwZWN0b3IuQ2FsbFN0YWNrU2lkZWJhclBhbmUu
UGxhY2FyZChjYWxsRnJhbWUsIHRoaXMpOwogICAgICAgICAgICAgcGxhY2FyZC5lbGVtZW50LmFk
ZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5fcGxhY2FyZFNlbGVjdGVkLmJpbmQodGhpcywg
cGxhY2FyZCksIGZhbHNlKTsKICAgICAgICAgICAgIHRoaXMucGxhY2FyZHMucHVzaChwbGFjYXJk
KTsKICAgICAgICAgICAgIHRoaXMuYm9keUVsZW1lbnQuYXBwZW5kQ2hpbGQocGxhY2FyZC5lbGVt
ZW50KTsKQEAgLTEwOCwxNiArMTA3LDYgQEAgV2ViSW5zcGVjdG9yLkNhbGxTdGFja1NpZGViYXJQ
YW5lLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fbW9kZWwuc2V0U2VsZWN0ZWRDYWxsRnJh
bWUocGxhY2FyZC5fY2FsbEZyYW1lKTsKICAgICB9LAogCi0gICAgX2NvbnRleHRNZW51OiBmdW5j
dGlvbihldmVudCkKLSAgICB7Ci0gICAgICAgIGlmICghdGhpcy5wbGFjYXJkcy5sZW5ndGgpCi0g
ICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgdmFyIGNvbnRleHRNZW51ID0gbmV3IFdlYklu
c3BlY3Rvci5Db250ZXh0TWVudSgpOwotICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdl
Ykluc3BlY3Rvci5VSVN0cmluZygiQ29weSBTdGFjayBUcmFjZSIpLCB0aGlzLl9jb3B5U3RhY2tU
cmFjZS5iaW5kKHRoaXMpKTsKLSAgICAgICAgY29udGV4dE1lbnUuc2hvdyhldmVudCk7Ci0gICAg
fSwKLQogICAgIF9jb3B5U3RhY2tUcmFjZTogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdmFy
IHRleHQgPSAiIjsKQEAgLTE3NSwxOCArMTY0LDM5IEBAIFdlYkluc3BlY3Rvci5DYWxsU3RhY2tT
aWRlYmFyUGFuZS5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLlNpZGViYXJQYW5l
CiAgKiBAY29uc3RydWN0b3IKICAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuUGxhY2FyZH0KICAq
IEBwYXJhbSB7V2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuQ2FsbEZyYW1lfSBjYWxsRnJhbWUK
KyAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLkNhbGxTdGFja1NpZGViYXJQYW5lfSBwYW5lCiAgKi8K
LVdlYkluc3BlY3Rvci5DYWxsU3RhY2tTaWRlYmFyUGFuZS5QbGFjYXJkID0gZnVuY3Rpb24oY2Fs
bEZyYW1lKQorV2ViSW5zcGVjdG9yLkNhbGxTdGFja1NpZGViYXJQYW5lLlBsYWNhcmQgPSBmdW5j
dGlvbihjYWxsRnJhbWUsIHBhbmUpCiB7CiAgICAgV2ViSW5zcGVjdG9yLlBsYWNhcmQuY2FsbCh0
aGlzLCBjYWxsRnJhbWUuZnVuY3Rpb25OYW1lIHx8IFdlYkluc3BlY3Rvci5VSVN0cmluZygiKGFu
b255bW91cyBmdW5jdGlvbikiKSwgIiIpOwogICAgIGNhbGxGcmFtZS5jcmVhdGVMaXZlTG9jYXRp
b24odGhpcy5fdXBkYXRlLmJpbmQodGhpcykpOworICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExp
c3RlbmVyKCJjb250ZXh0bWVudSIsIHRoaXMuX3BsYWNhcmRDb250ZXh0TWVudS5iaW5kKHRoaXMp
LCB0cnVlKTsKICAgICB0aGlzLl9jYWxsRnJhbWUgPSBjYWxsRnJhbWU7CisgICAgdGhpcy5fcGFu
ZSA9IHBhbmU7CiB9CiAKIFdlYkluc3BlY3Rvci5DYWxsU3RhY2tTaWRlYmFyUGFuZS5QbGFjYXJk
LnByb3RvdHlwZSA9IHsKICAgICBfdXBkYXRlOiBmdW5jdGlvbih1aUxvY2F0aW9uKQogICAgIHsK
ICAgICAgICAgdGhpcy5zdWJ0aXRsZSA9IFdlYkluc3BlY3Rvci5kaXNwbGF5TmFtZUZvclVSTCh1
aUxvY2F0aW9uLnVpU291cmNlQ29kZS51cmwpICsgIjoiICsgKHVpTG9jYXRpb24ubGluZU51bWJl
ciArIDEpOworICAgIH0sCisKKyAgICBfcGxhY2FyZENvbnRleHRNZW51OiBmdW5jdGlvbihldmVu
dCkKKyAgICB7CisgICAgICAgIHZhciBjb250ZXh0TWVudSA9IG5ldyBXZWJJbnNwZWN0b3IuQ29u
dGV4dE1lbnUoKTsKKworICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuY2Fu
U2V0U2NyaXB0U291cmNlKCkpIHsKKyAgICAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0o
V2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJSZXN0YXJ0IEZyYW1lIiksIHRoaXMuX3Jlc3RhcnRGcmFt
ZS5iaW5kKHRoaXMpKTsKKyAgICAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZFNlcGFyYXRvcigp
OworICAgICAgICB9CisgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV2ViSW5zcGVjdG9y
LlVJU3RyaW5nKCJDb3B5IFN0YWNrIFRyYWNlIiksIHRoaXMuX3BhbmUuX2NvcHlTdGFja1RyYWNl
LmJpbmQodGhpcy5fcGFuZSkpOworCisgICAgICAgIGNvbnRleHRNZW51LnNob3coZXZlbnQpOwor
ICAgIH0sCisKKyAgICBfcmVzdGFydEZyYW1lOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB0
aGlzLl9jYWxsRnJhbWUucmVzdGFydCh1bmRlZmluZWQpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlck1vZGVsLmpzIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlck1vZGVsLmpzCmluZGV4
IDJmMGY3YmMyZGM4ZTQzNGNlYTczMmU4ZDMwZTVmNWQwNDk4NGU3NmUuLjIzMWE0NjJkZjQ0OTA5
NGUyZDI4Y2JiYmNhNzEwN2RkNDAxNjMzMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJNb2RlbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyTW9kZWwuanMKQEAgLTU0MSw2ICs1NDEsMjQgQEAg
V2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwucHJvdG90eXBlID0gewogICAgICAgICBpZiAoIXNj
cmlwdCkKICAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgICByZXR1cm4gc2NyaXB0LnJh
d0xvY2F0aW9uVG9VSUxvY2F0aW9uKHJhd0xvY2F0aW9uLmxpbmVOdW1iZXIsIHJhd0xvY2F0aW9u
LmNvbHVtbk51bWJlcik7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEhhbmRsZXMgbm90aWZp
Y2F0aW9uIGZyb20gSmF2YVNjcmlwdCBWTSBhYm91dCB1cGRhdGVkIHN0YWNrIChsaXZlZWRpdCBv
ciBmcmFtZSByZXN0YXJ0IGFjdGlvbikuCisgICAgICogQHRoaXMge1dlYkluc3BlY3Rvci5EZWJ1
Z2dlck1vZGVsfQorICAgICAqIEBwYXJhbSB7QXJyYXkuPERlYnVnZ2VyQWdlbnQuQ2FsbEZyYW1l
Pj19IG5ld0NhbGxGcmFtZXMKKyAgICAgKiBAcGFyYW0ge09iamVjdD19IGRldGFpbHMKKyAgICAg
Ki8KKyAgICBjYWxsU3RhY2tNb2RpZmllZDogZnVuY3Rpb24obmV3Q2FsbEZyYW1lcywgZGV0YWls
cykKKyAgICB7CisgICAgICAgIC8vIEZJWE1FOiBkZWNsYXJlIHRoaXMgcHJvcGVydHkgaW4gcHJv
dG9jb2wgYW5kIGluIEphdmFTY3JpcHQuCisgICAgICAgIGlmIChkZXRhaWxzICYmIGRldGFpbHNb
InN0YWNrX3VwZGF0ZV9uZWVkc19zdGVwX2luIl0pCisgICAgICAgICAgICBEZWJ1Z2dlckFnZW50
LnN0ZXBJbnRvKCk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaWYgKG5ld0NhbGxGcmFt
ZXMgJiYgbmV3Q2FsbEZyYW1lcy5sZW5ndGgpCisgICAgICAgICAgICAgICAgdGhpcy5fcGF1c2Vk
U2NyaXB0KG5ld0NhbGxGcmFtZXMsIHRoaXMuX2RlYnVnZ2VyUGF1c2VkRGV0YWlscy5yZWFzb24s
IHRoaXMuX2RlYnVnZ2VyUGF1c2VkRGV0YWlscy5hdXhEYXRhKTsKKworICAgICAgICB9CiAgICAg
fQogfQogCkBAIC03MTAsNiArNzI4LDI2IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLkNh
bGxGcmFtZS5wcm90b3R5cGUgPSB7CiAgICAgfSwKIAogICAgIC8qKgorICAgICAqIEBwYXJhbSB7
ZnVuY3Rpb24oP1Byb3RvY29sLkVycm9yPSk9fSBjYWxsYmFjaworICAgICAqLworICAgIHJlc3Rh
cnQ6IGZ1bmN0aW9uKGNhbGxiYWNrKSB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAdGhpcyB7
V2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuQ2FsbEZyYW1lfQorICAgICAgICAgKiBAcGFyYW0g
ez9Qcm90b2NvbC5FcnJvcn0gZXJyb3IKKyAgICAgICAgICogQHBhcmFtIHtBcnJheS48RGVidWdn
ZXJBZ2VudC5DYWxsRnJhbWU+PX0gY2FsbEZyYW1lcworICAgICAgICAgKiBAcGFyYW0ge09iamVj
dD19IGRldGFpbHMKKyAgICAgICAgICovCisgICAgICAgIGZ1bmN0aW9uIHByb3RvY29sQ2FsbGJh
Y2soZXJyb3IsIGNhbGxGcmFtZXMsIGRldGFpbHMpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlm
ICghZXJyb3IpCisgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuY2Fs
bFN0YWNrTW9kaWZpZWQoY2FsbEZyYW1lcywgZGV0YWlscyk7CisgICAgICAgICAgICBpZiAoY2Fs
bGJhY2spCisgICAgICAgICAgICAgICAgY2FsbGJhY2soZXJyb3IpOworICAgICAgICB9CisgICAg
ICAgIERlYnVnZ2VyQWdlbnQucmVzdGFydEZyYW1lKHRoaXMuX3BheWxvYWQuY2FsbEZyYW1lSWQs
IHByb3RvY29sQ2FsbGJhY2spOworICAgIH0sCisKKyAgICAvKioKICAgICAgKiBAcGFyYW0ge2Z1
bmN0aW9uKFdlYkluc3BlY3Rvci5VSUxvY2F0aW9uKTooYm9vbGVhbnx1bmRlZmluZWQpfSB1cGRh
dGVEZWxlZ2F0ZQogICAgICAqLwogICAgIGNyZWF0ZUxpdmVMb2NhdGlvbjogZnVuY3Rpb24odXBk
YXRlRGVsZWdhdGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1NjcmlwdC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0
LmpzCmluZGV4IGM5ZmNkM2EyM2VmYmEyNzBkMjkzMzU2MTUwZjM2ODFlZDQwZGQwNDQuLmU5NzNm
YzUzMzlkZjFiMGM4OWU1OTk3N2ZlOWZkMTM4OTIyNmYwOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0LmpzCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0LmpzCkBAIC0xMzgsNiArMTM4LDcgQEAgV2ViSW5z
cGVjdG9yLlNjcmlwdC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAqLwogICAgICAgICBmdW5jdGlv
biBkaWRFZGl0U2NyaXB0U291cmNlKGVycm9yLCBjYWxsRnJhbWVzLCBkZWJ1Z0RhdGEpCiAgICAg
ICAgIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBzdXBwb3J0IGRlYnVnRGF0YS5zdGFja191cGRh
dGVfbmVlZHNfc3RlcF9pbiBmbGFnIGJ5IGNhbGxpbmcgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyX21v
ZGVsLmNhbGxTdGFja01vZGlmaWVkCiAgICAgICAgICAgICBpZiAoIWVycm9yKQogICAgICAgICAg
ICAgICAgIHRoaXMuX3NvdXJjZSA9IG5ld1NvdXJjZTsKICAgICAgICAgICAgIGNhbGxiYWNrKGVy
cm9yLCBjYWxsRnJhbWVzKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148946</attachid>
            <date>2012-06-21 19:49:56 -0700</date>
            <delta_ts>2012-06-22 06:56:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89678-20120622064955.patch</filename>
            <type>text/plain</type>
            <size>8573</size>
            <attacher name="Peter Rybin">prybin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwOTQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTNiMzlkOTczMTk2MDgy
YmMzNTAzNWI4MTI1MGVhYWRjZmMwZTk5Zi4uNzZhODlmNTBlMTk5ZTBkMTkxZGEyY2M3Y2Y1OGRl
MDgxODAyZDRiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTA2LTIxICBQZXRl
ciBSeWJpbiAgPHBldGVyLnJ5YmluQGdtYWlsLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9y
OiBTdXBwb3J0ICdSZXN0YXJ0IGZyYW1lJyBpbiBpbnNwZWN0b3IgZnJvbnRlbmQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5Njc4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWN0aW9uIGlzIGFkZGVkIHRv
IGNhbGwgZnJhbWUgcGxhY2FyZCdzIGNvbnRleHQgbWVudS4gQ29udGV4dCBtZW51IGlzIG5vdyBi
dWlsdAorICAgICAgICBvbiBhIGNhbGwgZnJhbWUgbGV2ZWwgcmF0aGVyIHRoYW4gb24gY2FsbGJh
Y2sgc2lkZWJhciBsZXZlbC4KKworICAgICAgICAqIEVuZ2xpc2gubHByb2ovbG9jYWxpemVkU3Ry
aW5ncy5qczoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0NhbGxTdGFja1NpZGViYXJQ
YW5lLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNhbGxTdGFja1NpZGViYXJQYW5lKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5DYWxsU3RhY2tTaWRlYmFyUGFuZS5wcm90b3R5cGUudXBkYXRl
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DYWxsU3RhY2tTaWRlYmFyUGFuZS5QbGFjYXJkKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5DYWxsU3RhY2tTaWRlYmFyUGFuZS5QbGFjYXJkLnByb3Rv
dHlwZS5fdXBkYXRlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DYWxsU3RhY2tTaWRlYmFyUGFu
ZS5QbGFjYXJkLnByb3RvdHlwZS5fcGxhY2FyZENvbnRleHRNZW51KToKKyAgICAgICAgKF9yZXN0
YXJ0RnJhbWUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJNb2RlbC5q
czoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlwZS5yYXdMb2Nh
dGlvblRvVUlMb2NhdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5w
cm90b3R5cGUuY2FsbFN0YWNrTW9kaWZpZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVn
Z2VyTW9kZWwuQ2FsbEZyYW1lLnByb3RvdHlwZS5yZXN0YXJ0KToKKyAgICAgICAgKiBpbnNwZWN0
b3IvZnJvbnQtZW5kL1NjcmlwdC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHQucHJv
dG90eXBlLmVkaXRTb3VyY2UpOgorCiAyMDEyLTA2LTIxICBBbmRyZWkgT25lYSAgPG9uZWFAYWRv
YmUuY29tPgogCiAgICAgICAgIFtDU1NSZWdpb25zXUNoYW5nZSBXRUJLSVRfUkVHSU9OX1JVTEUg
dmFsdWUgdG8gMTYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovbG9j
YWxpemVkU3RyaW5ncy5qcyBiL1NvdXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovbG9jYWxpemVk
U3RyaW5ncy5qcwppbmRleCBmNGQyZTNhYzllM2QzOGRkNDczNDE4ODBiY2U3Y2NlNmE5M2VlYTFm
Li4yMzZkNDRiNTkyMmM0NDQ5YWFjMmJiMWEzMWZmNGE5OWUyNGJkZDY4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKKysrIGIvU291
cmNlL1dlYkNvcmUvRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCkBAIC01NDMsNiAr
NTQzLDcgQEAgbG9jYWxpemVkU3RyaW5nc1sicHJvcGVydHkiXSA9ICJwcm9wZXJ0eSI7CiBsb2Nh
bGl6ZWRTdHJpbmdzWyJPYmplY3QgdHlwZXM6Il0gPSAiT2JqZWN0IHR5cGVzOiI7CiBsb2NhbGl6
ZWRTdHJpbmdzWyIlcygpIGF0ICVzIl0gPSAiJXMoKSBhdCAlcyI7CiBsb2NhbGl6ZWRTdHJpbmdz
WyJDb3B5IFN0YWNrIFRyYWNlIl0gPSAiQ29weSBTdGFjayBUcmFjZSI7Citsb2NhbGl6ZWRTdHJp
bmdzWyJSZXN0YXJ0IEZyYW1lIl0gPSAiUmVzdGFydCBGcmFtZSI7CiBsb2NhbGl6ZWRTdHJpbmdz
WyJDb2xsZWN0IEdhcmJhZ2UiXSA9ICJDb2xsZWN0IEdhcmJhZ2UiOwogbG9jYWxpemVkU3RyaW5n
c1siSlNPTiJdID0gIkpTT04iOwogbG9jYWxpemVkU3RyaW5nc1siQ2F0Y2giXSA9ICJDYXRjaCI7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NhbGxTdGFj
a1NpZGViYXJQYW5lLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DYWxs
U3RhY2tTaWRlYmFyUGFuZS5qcwppbmRleCA5YmRkZjVhZjY0NWI0M2FlYjk3ZjExZWE1NjYyOTRl
MDM5MTdiZGYyLi42YWIzZWM4NjI3NTJjNjM0NmQ3OTU4MTg1N2EwODAxNzUyNmFlYjllIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NhbGxTdGFja1NpZGVi
YXJQYW5lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ2FsbFN0
YWNrU2lkZWJhclBhbmUuanMKQEAgLTMyLDcgKzMyLDYgQEAgV2ViSW5zcGVjdG9yLkNhbGxTdGFj
a1NpZGViYXJQYW5lID0gZnVuY3Rpb24oKQogICAgIFdlYkluc3BlY3Rvci5TaWRlYmFyUGFuZS5j
YWxsKHRoaXMsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiQ2FsbCBTdGFjayIpKTsKICAgICB0aGlz
Ll9tb2RlbCA9IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsOwogCi0gICAgdGhpcy5ib2R5RWxl
bWVudC5hZGRFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsIHRoaXMuX2NvbnRleHRNZW51LmJp
bmQodGhpcyksIHRydWUpOwogICAgIHRoaXMuYm9keUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigi
a2V5ZG93biIsIHRoaXMuX2tleURvd24uYmluZCh0aGlzKSwgdHJ1ZSk7CiAgICAgdGhpcy5ib2R5
RWxlbWVudC50YWJJbmRleCA9IDA7CiB9CkBAIC01Myw3ICs1Miw3IEBAIFdlYkluc3BlY3Rvci5D
YWxsU3RhY2tTaWRlYmFyUGFuZS5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCBjYWxsRnJhbWVzLmxlbmd0aDsgKytpKSB7CiAgICAgICAgICAgICB2YXIgY2FsbEZy
YW1lID0gY2FsbEZyYW1lc1tpXTsKLSAgICAgICAgICAgIHZhciBwbGFjYXJkID0gbmV3IFdlYklu
c3BlY3Rvci5DYWxsU3RhY2tTaWRlYmFyUGFuZS5QbGFjYXJkKGNhbGxGcmFtZSk7CisgICAgICAg
ICAgICB2YXIgcGxhY2FyZCA9IG5ldyBXZWJJbnNwZWN0b3IuQ2FsbFN0YWNrU2lkZWJhclBhbmUu
UGxhY2FyZChjYWxsRnJhbWUsIHRoaXMpOwogICAgICAgICAgICAgcGxhY2FyZC5lbGVtZW50LmFk
ZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5fcGxhY2FyZFNlbGVjdGVkLmJpbmQodGhpcywg
cGxhY2FyZCksIGZhbHNlKTsKICAgICAgICAgICAgIHRoaXMucGxhY2FyZHMucHVzaChwbGFjYXJk
KTsKICAgICAgICAgICAgIHRoaXMuYm9keUVsZW1lbnQuYXBwZW5kQ2hpbGQocGxhY2FyZC5lbGVt
ZW50KTsKQEAgLTEwOCwxNiArMTA3LDYgQEAgV2ViSW5zcGVjdG9yLkNhbGxTdGFja1NpZGViYXJQ
YW5lLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fbW9kZWwuc2V0U2VsZWN0ZWRDYWxsRnJh
bWUocGxhY2FyZC5fY2FsbEZyYW1lKTsKICAgICB9LAogCi0gICAgX2NvbnRleHRNZW51OiBmdW5j
dGlvbihldmVudCkKLSAgICB7Ci0gICAgICAgIGlmICghdGhpcy5wbGFjYXJkcy5sZW5ndGgpCi0g
ICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgdmFyIGNvbnRleHRNZW51ID0gbmV3IFdlYklu
c3BlY3Rvci5Db250ZXh0TWVudSgpOwotICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdl
Ykluc3BlY3Rvci5VSVN0cmluZygiQ29weSBTdGFjayBUcmFjZSIpLCB0aGlzLl9jb3B5U3RhY2tU
cmFjZS5iaW5kKHRoaXMpKTsKLSAgICAgICAgY29udGV4dE1lbnUuc2hvdyhldmVudCk7Ci0gICAg
fSwKLQogICAgIF9jb3B5U3RhY2tUcmFjZTogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdmFy
IHRleHQgPSAiIjsKQEAgLTE3NSwxOCArMTY0LDM5IEBAIFdlYkluc3BlY3Rvci5DYWxsU3RhY2tT
aWRlYmFyUGFuZS5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLlNpZGViYXJQYW5l
CiAgKiBAY29uc3RydWN0b3IKICAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuUGxhY2FyZH0KICAq
IEBwYXJhbSB7V2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuQ2FsbEZyYW1lfSBjYWxsRnJhbWUK
KyAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLkNhbGxTdGFja1NpZGViYXJQYW5lfSBwYW5lCiAgKi8K
LVdlYkluc3BlY3Rvci5DYWxsU3RhY2tTaWRlYmFyUGFuZS5QbGFjYXJkID0gZnVuY3Rpb24oY2Fs
bEZyYW1lKQorV2ViSW5zcGVjdG9yLkNhbGxTdGFja1NpZGViYXJQYW5lLlBsYWNhcmQgPSBmdW5j
dGlvbihjYWxsRnJhbWUsIHBhbmUpCiB7CiAgICAgV2ViSW5zcGVjdG9yLlBsYWNhcmQuY2FsbCh0
aGlzLCBjYWxsRnJhbWUuZnVuY3Rpb25OYW1lIHx8IFdlYkluc3BlY3Rvci5VSVN0cmluZygiKGFu
b255bW91cyBmdW5jdGlvbikiKSwgIiIpOwogICAgIGNhbGxGcmFtZS5jcmVhdGVMaXZlTG9jYXRp
b24odGhpcy5fdXBkYXRlLmJpbmQodGhpcykpOworICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExp
c3RlbmVyKCJjb250ZXh0bWVudSIsIHRoaXMuX3BsYWNhcmRDb250ZXh0TWVudS5iaW5kKHRoaXMp
LCB0cnVlKTsKICAgICB0aGlzLl9jYWxsRnJhbWUgPSBjYWxsRnJhbWU7CisgICAgdGhpcy5fcGFu
ZSA9IHBhbmU7CiB9CiAKIFdlYkluc3BlY3Rvci5DYWxsU3RhY2tTaWRlYmFyUGFuZS5QbGFjYXJk
LnByb3RvdHlwZSA9IHsKICAgICBfdXBkYXRlOiBmdW5jdGlvbih1aUxvY2F0aW9uKQogICAgIHsK
ICAgICAgICAgdGhpcy5zdWJ0aXRsZSA9IFdlYkluc3BlY3Rvci5kaXNwbGF5TmFtZUZvclVSTCh1
aUxvY2F0aW9uLnVpU291cmNlQ29kZS51cmwpICsgIjoiICsgKHVpTG9jYXRpb24ubGluZU51bWJl
ciArIDEpOworICAgIH0sCisKKyAgICBfcGxhY2FyZENvbnRleHRNZW51OiBmdW5jdGlvbihldmVu
dCkKKyAgICB7CisgICAgICAgIHZhciBjb250ZXh0TWVudSA9IG5ldyBXZWJJbnNwZWN0b3IuQ29u
dGV4dE1lbnUoKTsKKworICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuY2Fu
U2V0U2NyaXB0U291cmNlKCkpIHsKKyAgICAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0o
V2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJSZXN0YXJ0IEZyYW1lIiksIHRoaXMuX3Jlc3RhcnRGcmFt
ZS5iaW5kKHRoaXMpKTsKKyAgICAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZFNlcGFyYXRvcigp
OworICAgICAgICB9CisgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV2ViSW5zcGVjdG9y
LlVJU3RyaW5nKCJDb3B5IFN0YWNrIFRyYWNlIiksIHRoaXMuX3BhbmUuX2NvcHlTdGFja1RyYWNl
LmJpbmQodGhpcy5fcGFuZSkpOworCisgICAgICAgIGNvbnRleHRNZW51LnNob3coZXZlbnQpOwor
ICAgIH0sCisKKyAgICBfcmVzdGFydEZyYW1lOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB0
aGlzLl9jYWxsRnJhbWUucmVzdGFydCh1bmRlZmluZWQpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlck1vZGVsLmpzIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlck1vZGVsLmpzCmluZGV4
IDJmMGY3YmMyZGM4ZTQzNGNlYTczMmU4ZDMwZTVmNWQwNDk4NGU3NmUuLjIzNDcwYTQ0M2QwY2Jj
YjVjNjk3NDE2M2UwYTlmZDQ3ZWM2NmQ4MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJNb2RlbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyTW9kZWwuanMKQEAgLTU0MSw2ICs1NDEsMjQgQEAg
V2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwucHJvdG90eXBlID0gewogICAgICAgICBpZiAoIXNj
cmlwdCkKICAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgICByZXR1cm4gc2NyaXB0LnJh
d0xvY2F0aW9uVG9VSUxvY2F0aW9uKHJhd0xvY2F0aW9uLmxpbmVOdW1iZXIsIHJhd0xvY2F0aW9u
LmNvbHVtbk51bWJlcik7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEhhbmRsZXMgbm90aWZp
Y2F0aW9uIGZyb20gSmF2YVNjcmlwdCBWTSBhYm91dCB1cGRhdGVkIHN0YWNrIChsaXZlZWRpdCBv
ciBmcmFtZSByZXN0YXJ0IGFjdGlvbikuCisgICAgICogQHRoaXMge1dlYkluc3BlY3Rvci5EZWJ1
Z2dlck1vZGVsfQorICAgICAqIEBwYXJhbSB7QXJyYXkuPERlYnVnZ2VyQWdlbnQuQ2FsbEZyYW1l
Pj19IG5ld0NhbGxGcmFtZXMKKyAgICAgKiBAcGFyYW0ge09iamVjdD19IGRldGFpbHMKKyAgICAg
Ki8KKyAgICBjYWxsU3RhY2tNb2RpZmllZDogZnVuY3Rpb24obmV3Q2FsbEZyYW1lcywgZGV0YWls
cykKKyAgICB7CisgICAgICAgIC8vIEZJWE1FOiBkZWNsYXJlIHRoaXMgcHJvcGVydHkgaW4gcHJv
dG9jb2wgYW5kIGluIEphdmFTY3JpcHQuCisgICAgICAgIGlmIChkZXRhaWxzICYmIGRldGFpbHNb
InN0YWNrX3VwZGF0ZV9uZWVkc19zdGVwX2luIl0pCisgICAgICAgICAgICBEZWJ1Z2dlckFnZW50
LnN0ZXBJbnRvKCk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgaWYgKG5ld0NhbGxGcmFt
ZXMgJiYgbmV3Q2FsbEZyYW1lcy5sZW5ndGgpCisgICAgICAgICAgICAgICAgdGhpcy5fcGF1c2Vk
U2NyaXB0KG5ld0NhbGxGcmFtZXMsIHRoaXMuX2RlYnVnZ2VyUGF1c2VkRGV0YWlscy5yZWFzb24s
IHRoaXMuX2RlYnVnZ2VyUGF1c2VkRGV0YWlscy5hdXhEYXRhKTsKKworICAgICAgICB9CiAgICAg
fQogfQogCkBAIC03MTAsNiArNzI4LDI3IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLkNh
bGxGcmFtZS5wcm90b3R5cGUgPSB7CiAgICAgfSwKIAogICAgIC8qKgorICAgICAqIEBwYXJhbSB7
ZnVuY3Rpb24oP1Byb3RvY29sLkVycm9yPSk9fSBjYWxsYmFjaworICAgICAqLworICAgIHJlc3Rh
cnQ6IGZ1bmN0aW9uKGNhbGxiYWNrKQorICAgIHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEB0
aGlzIHtXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5DYWxsRnJhbWV9CisgICAgICAgICAqIEBw
YXJhbSB7P1Byb3RvY29sLkVycm9yfSBlcnJvcgorICAgICAgICAgKiBAcGFyYW0ge0FycmF5LjxE
ZWJ1Z2dlckFnZW50LkNhbGxGcmFtZT49fSBjYWxsRnJhbWVzCisgICAgICAgICAqIEBwYXJhbSB7
T2JqZWN0PX0gZGV0YWlscworICAgICAgICAgKi8KKyAgICAgICAgZnVuY3Rpb24gcHJvdG9jb2xD
YWxsYmFjayhlcnJvciwgY2FsbEZyYW1lcywgZGV0YWlscykKKyAgICAgICAgeworICAgICAgICAg
ICAgaWYgKCFlcnJvcikKKyAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2Rl
bC5jYWxsU3RhY2tNb2RpZmllZChjYWxsRnJhbWVzLCBkZXRhaWxzKTsKKyAgICAgICAgICAgIGlm
IChjYWxsYmFjaykKKyAgICAgICAgICAgICAgICBjYWxsYmFjayhlcnJvcik7CisgICAgICAgIH0K
KyAgICAgICAgRGVidWdnZXJBZ2VudC5yZXN0YXJ0RnJhbWUodGhpcy5fcGF5bG9hZC5jYWxsRnJh
bWVJZCwgcHJvdG9jb2xDYWxsYmFjayk7CisgICAgfSwKKworICAgIC8qKgogICAgICAqIEBwYXJh
bSB7ZnVuY3Rpb24oV2ViSW5zcGVjdG9yLlVJTG9jYXRpb24pOihib29sZWFufHVuZGVmaW5lZCl9
IHVwZGF0ZURlbGVnYXRlCiAgICAgICovCiAgICAgY3JlYXRlTGl2ZUxvY2F0aW9uOiBmdW5jdGlv
bih1cGRhdGVEZWxlZ2F0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvU2NyaXB0LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9T
Y3JpcHQuanMKaW5kZXggYzlmY2QzYTIzZWZiYTI3MGQyOTMzNTYxNTBmMzY4MWVkNDBkZDA0NC4u
ZTk3M2ZjNTMzOWRmMWIwYzg5ZTU5OTc3ZmU5ZmQxMzg5MjI2ZjA4ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHQuanMKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHQuanMKQEAgLTEzOCw2ICsxMzgsNyBAQCBX
ZWJJbnNwZWN0b3IuU2NyaXB0LnByb3RvdHlwZSA9IHsKICAgICAgICAgICovCiAgICAgICAgIGZ1
bmN0aW9uIGRpZEVkaXRTY3JpcHRTb3VyY2UoZXJyb3IsIGNhbGxGcmFtZXMsIGRlYnVnRGF0YSkK
ICAgICAgICAgeworICAgICAgICAgICAgLy8gRklYTUU6IHN1cHBvcnQgZGVidWdEYXRhLnN0YWNr
X3VwZGF0ZV9uZWVkc19zdGVwX2luIGZsYWcgYnkgY2FsbGluZyBXZWJJbnNwZWN0b3IuZGVidWdn
ZXJfbW9kZWwuY2FsbFN0YWNrTW9kaWZpZWQKICAgICAgICAgICAgIGlmICghZXJyb3IpCiAgICAg
ICAgICAgICAgICAgdGhpcy5fc291cmNlID0gbmV3U291cmNlOwogICAgICAgICAgICAgY2FsbGJh
Y2soZXJyb3IsIGNhbGxGcmFtZXMpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>