<?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>90293</bug_id>
          
          <creation_ts>2012-06-29 10:10:37 -0700</creation_ts>
          <short_desc>Web Inspector: TextViewer&apos;s interaction with its panels should be event based</short_desc>
          <delta_ts>2014-12-12 14:37:32 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</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>
          
          <blocked>90294</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Vsevolod Vlasov">vsevik</reporter>
          <assigned_to name="Vsevolod Vlasov">vsevik</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>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>660592</commentid>
    <comment_count>0</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-06-29 10:10:37 -0700</bug_when>
    <thetext>I&apos;d like to add some interaction between TextViewer and TextEditorMainPanel and it feels like current implementation of such interaction is not very scalable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>660597</commentid>
    <comment_count>1</comment_count>
      <attachid>150210</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-06-29 10:14:32 -0700</bug_when>
    <thetext>Created attachment 150210
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>660610</commentid>
    <comment_count>2</comment_count>
      <attachid>150210</attachid>
    <who name="Andrey Adaikin">aandrey</who>
    <bug_when>2012-06-29 10:27:31 -0700</bug_when>
    <thetext>Comment on attachment 150210
Patch

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

&gt; Source/WebCore/inspector/front-end/TextViewer.js:240
&gt; +    _exitedInternalTextChangeMode: function(event)

update javadoc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>661342</commentid>
    <comment_count>3</comment_count>
      <attachid>150210</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-07-02 02:26:49 -0700</bug_when>
    <thetext>Comment on attachment 150210
Patch

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

&gt; Source/WebCore/inspector/front-end/TextViewer.js:975
&gt; +            this._gutterPanel.dispatchEventToListeners(WebInspector.TextEditorChunkedPanel.Events.DecorationsForLineSyncNeeded, this.startLine);

I would instead pass the delegate into the main panel.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1055264</commentid>
    <comment_count>4</comment_count>
    <who name="Brian Burg">burg</who>
    <bug_when>2014-12-12 14:37:32 -0800</bug_when>
    <thetext>Closing as invalid, as this bug pertains to the old inspector UI and/or its tests.
Please file a new bug (https://www.webkit.org/new-inspector-bug) if the bug/feature/issue is still relevant to WebKit trunk.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150210</attachid>
            <date>2012-06-29 10:14:32 -0700</date>
            <delta_ts>2012-07-02 02:26:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90293-20120629211431.patch</filename>
            <type>text/plain</type>
            <size>24848</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxNTY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2UyZjljYjExNTQ5ZDEx
MTg4ODIxZjE5ZWM3MzFlMTM5NmE1N2ZjYy4uZGZkYjFkNDhkZmRiODYzZTVhMmZjZGM4OGFhMzk0
ZWZkYTFkNTM0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEyLTA2LTI5ICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFRleHRWaWV3ZXIncyBpbnRlcmFjdGlvbiB3aXRoIGl0cyBwYW5lbHMgc2hvdWxkIGJlIGV2
ZW50IGJhc2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD05MDI5MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRleHRWaWV3ZXIgbm93IGxpc3RlbnMgZm9yIGV2ZW50cyBmcm9tIG1haW4gYW5kIGd1dHRlciBw
YW5lbC4KKyAgICAgICAgRHJpdmUtYnk6IFJlbmFtZWQgVGV4dEVkaXRvckd1dHRlckNodW5rLl90
ZXh0Vmlld2VyIHRvIGd1dHRlclBhbmVsLgorCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9UZXh0Vmlld2VyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRWaWV3ZXIucHJvdG90
eXBlLl9lbnRlcmVkSW50ZXJuYWxUZXh0Q2hhbmdlTW9kZSk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuVGV4dFZpZXdlci5wcm90b3R5cGUuX2V4aXRlZEludGVybmFsVGV4dENoYW5nZU1vZGUpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRWaWV3ZXIucHJvdG90eXBlLl9zY3JvbGxTeW5jTmVl
ZGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0Vmlld2VyLnByb3RvdHlwZS5fZGVjb3Jh
dGlvbnNGb3JMaW5lU3luY05lZWRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dFZpZXdl
ci5wcm90b3R5cGUuX2xpbmVIZWlnaHRTeW5jTmVlZGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5UZXh0RWRpdG9yQ2h1bmtlZFBhbmVsLnByb3RvdHlwZS5fc2Nyb2xsKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5UZXh0RWRpdG9yR3V0dGVyUGFuZWwpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlRleHRFZGl0b3JHdXR0ZXJQYW5lbC5wcm90b3R5cGUudGV4dENoYW5nZWQpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlRleHRFZGl0b3JHdXR0ZXJDaHVuayk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuVGV4dEVkaXRvckd1dHRlckNodW5rLnByb3RvdHlwZS5hZGREZWNvcmF0aW9uKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yR3V0dGVyQ2h1bmsucHJvdG90eXBlLnJlbW92ZURl
Y29yYXRpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JHdXR0ZXJDaHVuay5w
cm90b3R5cGUuc2V0IGV4cGFuZGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9y
R3V0dGVyQ2h1bmsucHJvdG90eXBlLmdldCBoZWlnaHQpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlRleHRFZGl0b3JHdXR0ZXJDaHVuay5wcm90b3R5cGUuX2NyZWF0ZVJvdyk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
VGV4dEVkaXRvck1haW5QYW5lbC5wcm90b3R5cGUuaGFuZGxlVW5kb1JlZG8uYmVmb3JlKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLnByb3RvdHlwZS5oYW5kbGVV
bmRvUmVkby5hZnRlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5l
bC5wcm90b3R5cGUuaGFuZGxlVW5kb1JlZG8pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRF
ZGl0b3JNYWluUGFuZWwucHJvdG90eXBlLmhhbmRsZUVudGVyS2V5LmdldCB2YXIpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwucHJvdG90eXBlLmhhbmRsZUVudGVy
S2V5KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLnByb3RvdHlw
ZS5faGFuZGxlRE9NVXBkYXRlcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1h
aW5QYW5lbC5wcm90b3R5cGUuX2FwcGx5RG9tVXBkYXRlcyk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuVGV4dEVkaXRvck1haW5DaHVuayk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dEVkaXRv
ck1haW5DaHVuay5wcm90b3R5cGUuYWRkRGVjb3JhdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuVGV4dEVkaXRvck1haW5DaHVuay5wcm90b3R5cGUucmVtb3ZlRGVjb3JhdGlvbik6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5DaHVuay5wcm90b3R5cGUucmVtb3ZlQWxs
RGVjb3JhdGlvbnMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluQ2h1bmsu
cHJvdG90eXBlLnNldCBleHBhbmRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dEVkaXRv
ck1haW5DaHVuay5wcm90b3R5cGUuZ2V0IGhlaWdodCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
VGV4dEVkaXRvck1haW5DaHVuay5wcm90b3R5cGUuX2NyZWF0ZVJvdyk6CisKIDIwMTItMDYtMjkg
IEt3YW5nIFl1bCBTZW8gIDxza3l1bEBjb21wYW55MTAwLm5ldD4KIAogICAgICAgICBVcGRhdGUg
RklYTUUgY29tbWVudCBpbiBYTUxEb2N1bWVudFBhcnNlcjo6d2VsbEZvcm1lZApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UZXh0Vmlld2VyLmpzIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UZXh0Vmlld2VyLmpzCmluZGV4IDczNTI2
MTc1ZmIxMWMwMjBmNDM3YzliMTg4YTNlOGViMmViM2Q1MDUuLmNhZjc3MmRjMjc5N2RlOTU3Mzkx
YmFhYjA0MDViZDIyYjRhNGEyOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvVGV4dFZpZXdlci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1RleHRWaWV3ZXIuanMKQEAgLTQ4LDEzICs0OCwxNCBAQCBXZWJJbnNwZWN0b3Iu
VGV4dFZpZXdlciA9IGZ1bmN0aW9uKHRleHRNb2RlbCwgdXJsLCBkZWxlZ2F0ZSkKICAgICB0aGlz
Ll91cmwgPSB1cmw7CiAgICAgdGhpcy5lbGVtZW50LmNsYXNzTmFtZSA9ICJ0ZXh0LWVkaXRvciBt
b25vc3BhY2UiOwogCi0gICAgdmFyIGVudGVyVGV4dENoYW5nZU1vZGUgPSB0aGlzLl9lbnRlcklu
dGVybmFsVGV4dENoYW5nZU1vZGUuYmluZCh0aGlzKTsKLSAgICB2YXIgZXhpdFRleHRDaGFuZ2VN
b2RlID0gdGhpcy5fZXhpdEludGVybmFsVGV4dENoYW5nZU1vZGUuYmluZCh0aGlzKTsKLSAgICB2
YXIgc3luY1Njcm9sbExpc3RlbmVyID0gdGhpcy5fc3luY1Njcm9sbC5iaW5kKHRoaXMpOwotICAg
IHZhciBzeW5jRGVjb3JhdGlvbnNGb3JMaW5lTGlzdGVuZXIgPSB0aGlzLl9zeW5jRGVjb3JhdGlv
bnNGb3JMaW5lLmJpbmQodGhpcyk7Ci0gICAgdmFyIHN5bmNMaW5lSGVpZ2h0TGlzdGVuZXIgPSB0
aGlzLl9zeW5jTGluZUhlaWdodC5iaW5kKHRoaXMpOwotICAgIHRoaXMuX21haW5QYW5lbCA9IG5l
dyBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbCh0aGlzLl90ZXh0TW9kZWwsIHVybCwg
c3luY1Njcm9sbExpc3RlbmVyLCBzeW5jRGVjb3JhdGlvbnNGb3JMaW5lTGlzdGVuZXIsIGVudGVy
VGV4dENoYW5nZU1vZGUsIGV4aXRUZXh0Q2hhbmdlTW9kZSk7Ci0gICAgdGhpcy5fZ3V0dGVyUGFu
ZWwgPSBuZXcgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JHdXR0ZXJQYW5lbCh0aGlzLl90ZXh0TW9k
ZWwsIHN5bmNEZWNvcmF0aW9uc0ZvckxpbmVMaXN0ZW5lciwgc3luY0xpbmVIZWlnaHRMaXN0ZW5l
cik7CisgICAgdGhpcy5fbWFpblBhbmVsID0gbmV3IFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFp
blBhbmVsKHRoaXMuX3RleHRNb2RlbCwgdXJsKTsKKyAgICB0aGlzLl9tYWluUGFuZWwuYWRkRXZl
bnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVGV4dEVkaXRvckNodW5rZWRQYW5lbC5FdmVudHMuRGVj
b3JhdGlvbnNGb3JMaW5lU3luY05lZWRlZCwgdGhpcy5fZGVjb3JhdGlvbnNGb3JMaW5lU3luY05l
ZWRlZCwgdGhpcyk7CisgICAgdGhpcy5fbWFpblBhbmVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5z
cGVjdG9yLlRleHRFZGl0b3JDaHVua2VkUGFuZWwuRXZlbnRzLlNjcm9sbFN5bmNOZWVkZWQsIHRo
aXMuX3Njcm9sbFN5bmNOZWVkZWQsIHRoaXMpOworICAgIHRoaXMuX21haW5QYW5lbC5hZGRFdmVu
dExpc3RlbmVyKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLkV2ZW50cy5FbnRlcmVk
VGV4dENoYW5nZU1vZGUsIHRoaXMuX2VudGVyZWRJbnRlcm5hbFRleHRDaGFuZ2VNb2RlLCB0aGlz
KTsKKyAgICB0aGlzLl9tYWluUGFuZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVGV4
dEVkaXRvck1haW5QYW5lbC5FdmVudHMuRXhpdGVkVGV4dENoYW5nZU1vZGUsIHRoaXMuX2V4aXRl
ZEludGVybmFsVGV4dENoYW5nZU1vZGUsIHRoaXMpOworICAgIHRoaXMuX2d1dHRlclBhbmVsID0g
bmV3IFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yR3V0dGVyUGFuZWwodGhpcy5fdGV4dE1vZGVsKTsK
KyAgICB0aGlzLl9ndXR0ZXJQYW5lbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5UZXh0
RWRpdG9yQ2h1bmtlZFBhbmVsLkV2ZW50cy5EZWNvcmF0aW9uc0ZvckxpbmVTeW5jTmVlZGVkLCB0
aGlzLl9kZWNvcmF0aW9uc0ZvckxpbmVTeW5jTmVlZGVkLCB0aGlzKTsKKyAgICB0aGlzLl9ndXR0
ZXJQYW5lbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yQ2h1bmtlZFBh
bmVsLkV2ZW50cy5MaW5lSGVpZ2h0U3luY05lZWRlZCwgdGhpcy5fbGluZUhlaWdodFN5bmNOZWVk
ZWQsIHRoaXMpOwogICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9tYWluUGFuZWwu
ZWxlbWVudCk7CiAgICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX2d1dHRlclBhbmVs
LmVsZW1lbnQpOwogCkBAIC0yMjYsNyArMjI3LDcgQEAgV2ViSW5zcGVjdG9yLlRleHRWaWV3ZXIu
cHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl91cGRhdGVQYW5lbE9mZnNldHMoKTsKICAgICB9
LAogCi0gICAgX2VudGVySW50ZXJuYWxUZXh0Q2hhbmdlTW9kZTogZnVuY3Rpb24oKQorICAgIF9l
bnRlcmVkSW50ZXJuYWxUZXh0Q2hhbmdlTW9kZTogZnVuY3Rpb24oZXZlbnQpCiAgICAgewogICAg
ICAgICB0aGlzLl9pbnRlcm5hbFRleHRDaGFuZ2VNb2RlID0gdHJ1ZTsKICAgICAgICAgdGhpcy5f
ZGVsZWdhdGUuYmVmb3JlVGV4dENoYW5nZWQoKTsKQEAgLTIzNiw4ICsyMzcsMTAgQEAgV2ViSW5z
cGVjdG9yLlRleHRWaWV3ZXIucHJvdG90eXBlID0gewogICAgICAqIEBwYXJhbSB7V2ViSW5zcGVj
dG9yLlRleHRSYW5nZX0gb2xkUmFuZ2UKICAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5UZXh0
UmFuZ2V9IG5ld1JhbmdlCiAgICAgICovCi0gICAgX2V4aXRJbnRlcm5hbFRleHRDaGFuZ2VNb2Rl
OiBmdW5jdGlvbihvbGRSYW5nZSwgbmV3UmFuZ2UpCisgICAgX2V4aXRlZEludGVybmFsVGV4dENo
YW5nZU1vZGU6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKKyAgICAgICAgdmFyIG9sZFJhbmdlID0g
LyoqIEB0eXBlIHtXZWJJbnNwZWN0b3IuVGV4dFJhbmdlfSAqLyBldmVudC5kYXRhLm9sZFJhbmdl
OworICAgICAgICB2YXIgbmV3UmFuZ2UgPSAvKiogQHR5cGUge1dlYkluc3BlY3Rvci5UZXh0UmFu
Z2V9ICovIGV2ZW50LmRhdGEubmV3UmFuZ2U7CiAgICAgICAgIHRoaXMuX2ludGVybmFsVGV4dENo
YW5nZU1vZGUgPSBmYWxzZTsKICAgICAgICAgdGhpcy5fZGVsZWdhdGUuYWZ0ZXJUZXh0Q2hhbmdl
ZChvbGRSYW5nZSwgbmV3UmFuZ2UpOwogICAgIH0sCkBAIC0yNTEsNyArMjU0LDcgQEAgV2ViSW5z
cGVjdG9yLlRleHRWaWV3ZXIucHJvdG90eXBlID0gewogICAgICAgICAgICAgdGhpcy5fbWFpblBh
bmVsLmVsZW1lbnQuc3R5bGUucmVtb3ZlUHJvcGVydHkoImxlZnQiKTsgLy8gVXNlIGRlZmF1bHQg
dmFsdWUgc2V0IGluIENTUy4KICAgICB9LAogCi0gICAgX3N5bmNTY3JvbGw6IGZ1bmN0aW9uKCkK
KyAgICBfc2Nyb2xsU3luY05lZWRlZDogZnVuY3Rpb24oZXZlbnQpCiAgICAgewogICAgICAgICB2
YXIgbWFpbkVsZW1lbnQgPSB0aGlzLl9tYWluUGFuZWwuZWxlbWVudDsKICAgICAgICAgdmFyIGd1
dHRlckVsZW1lbnQgPSB0aGlzLl9ndXR0ZXJQYW5lbC5lbGVtZW50OwpAQCAtMjYwLDExICsyNjMs
OSBAQCBXZWJJbnNwZWN0b3IuVGV4dFZpZXdlci5wcm90b3R5cGUgPSB7CiAgICAgICAgIGd1dHRl
ckVsZW1lbnQuc2Nyb2xsVG9wID0gbWFpbkVsZW1lbnQuc2Nyb2xsVG9wOwogICAgIH0sCiAKLSAg
ICAvKioKLSAgICAgKiBAcGFyYW0ge251bWJlcn0gbGluZU51bWJlcgotICAgICAqLwotICAgIF9z
eW5jRGVjb3JhdGlvbnNGb3JMaW5lOiBmdW5jdGlvbihsaW5lTnVtYmVyKQorICAgIF9kZWNvcmF0
aW9uc0ZvckxpbmVTeW5jTmVlZGVkOiBmdW5jdGlvbihldmVudCkKICAgICB7CisgICAgICAgIHZh
ciBsaW5lTnVtYmVyID0gLyoqIEB0eXBlIHtudW1iZXJ9ICovIGV2ZW50LmRhdGE7CiAgICAgICAg
IGlmIChsaW5lTnVtYmVyID49IHRoaXMuX3RleHRNb2RlbC5saW5lc0NvdW50KQogICAgICAgICAg
ICAgcmV0dXJuOwogCkBAIC0yODMsMTEgKzI4NCw5IEBAIFdlYkluc3BlY3Rvci5UZXh0Vmlld2Vy
LnByb3RvdHlwZSA9IHsKICAgICAgICAgfQogICAgIH0sCiAKLSAgICAvKioKLSAgICAgKiBAcGFy
YW0ge0VsZW1lbnR9IGd1dHRlclJvdwotICAgICAqLwotICAgIF9zeW5jTGluZUhlaWdodDogZnVu
Y3Rpb24oZ3V0dGVyUm93KQorICAgIF9saW5lSGVpZ2h0U3luY05lZWRlZDogZnVuY3Rpb24oZXZl
bnQpCiAgICAgeworICAgICAgICB2YXIgZ3V0dGVyUm93ID0gLyoqIEB0eXBlIHtFbGVtZW50fSAq
LyBldmVudC5kYXRhOwogICAgICAgICBpZiAodGhpcy5fbGluZUhlaWdodFN5bmNlZCkKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgaWYgKGd1dHRlclJvdyAmJiBndXR0ZXJSb3cub2Zmc2V0
SGVpZ2h0KSB7CkBAIC00MzAsNiArNDI5LDEyIEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yQ2h1
bmtlZFBhbmVsID0gZnVuY3Rpb24odGV4dE1vZGVsKQogICAgIHRoaXMuX2RvbVVwZGF0ZUNvYWxl
c2NpbmdMZXZlbCA9IDA7CiB9CiAKK1dlYkluc3BlY3Rvci5UZXh0RWRpdG9yQ2h1bmtlZFBhbmVs
LkV2ZW50cyA9IHsKKyAgICBTY3JvbGxTeW5jTmVlZGVkOiAiU2Nyb2xsU3luY05lZWRlZCIsCisg
ICAgRGVjb3JhdGlvbnNGb3JMaW5lU3luY05lZWRlZDogIkRlY29yYXRpb25zRm9yTGluZVN5bmNO
ZWVkZWQiLAorICAgIExpbmVIZWlnaHRTeW5jTmVlZGVkOiAiTGluZUhlaWdodFN5bmNOZWVkZWQi
Cit9CisKIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yQ2h1bmtlZFBhbmVsLnByb3RvdHlwZSA9IHsK
ICAgICAvKioKICAgICAgKiBAcmV0dXJuIHtXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1vZGVsfQpA
QCAtNTc2LDggKzU4MSw3IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yQ2h1bmtlZFBhbmVsLnBy
b3RvdHlwZSA9IHsKICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5zY3JvbGxMZWZ0ID0gMDsKIAog
ICAgICAgICB0aGlzLl9zY2hlZHVsZVJlcGFpbnRBbGwoKTsKLSAgICAgICAgaWYgKHRoaXMuX3N5
bmNTY3JvbGxMaXN0ZW5lcikKLSAgICAgICAgICAgIHRoaXMuX3N5bmNTY3JvbGxMaXN0ZW5lcigp
OworICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuVGV4
dEVkaXRvckNodW5rZWRQYW5lbC5FdmVudHMuU2Nyb2xsU3luY05lZWRlZCwgbnVsbCk7CiAgICAg
fSwKIAogICAgIF9zY2hlZHVsZVJlcGFpbnRBbGw6IGZ1bmN0aW9uKCkKQEAgLTczOSwxOCArNzQz
LDE3IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yQ2h1bmtlZFBhbmVsLnByb3RvdHlwZSA9IHsK
ICAgICB9CiB9CiAKK1dlYkluc3BlY3Rvci5UZXh0RWRpdG9yQ2h1bmtlZFBhbmVsLnByb3RvdHlw
ZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuT2JqZWN0LnByb3RvdHlwZTsKKwogLyoqCiAgKiBA
Y29uc3RydWN0b3IKICAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuVGV4dEVkaXRvckNodW5rZWRQ
YW5lbH0KICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNb2RlbH0gdGV4dE1vZGVs
CiAgKi8KLVdlYkluc3BlY3Rvci5UZXh0RWRpdG9yR3V0dGVyUGFuZWwgPSBmdW5jdGlvbih0ZXh0
TW9kZWwsIHN5bmNEZWNvcmF0aW9uc0ZvckxpbmVMaXN0ZW5lciwgc3luY0xpbmVIZWlnaHRMaXN0
ZW5lcikKK1dlYkluc3BlY3Rvci5UZXh0RWRpdG9yR3V0dGVyUGFuZWwgPSBmdW5jdGlvbih0ZXh0
TW9kZWwpCiB7CiAgICAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JDaHVua2VkUGFuZWwuY2FsbCh0
aGlzLCB0ZXh0TW9kZWwpOwogCi0gICAgdGhpcy5fc3luY0RlY29yYXRpb25zRm9yTGluZUxpc3Rl
bmVyID0gc3luY0RlY29yYXRpb25zRm9yTGluZUxpc3RlbmVyOwotICAgIHRoaXMuX3N5bmNMaW5l
SGVpZ2h0TGlzdGVuZXIgPSBzeW5jTGluZUhlaWdodExpc3RlbmVyOwotCiAgICAgdGhpcy5lbGVt
ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICAgdGhpcy5lbGVtZW50LmNs
YXNzTmFtZSA9ICJ0ZXh0LWVkaXRvci1saW5lcyI7CiAKQEAgLTg0NCw3ICs4NDcsNyBAQCBXZWJJ
bnNwZWN0b3IuVGV4dEVkaXRvckd1dHRlclBhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAg
IHZhciBjaHVuayA9IHRoaXMuX3RleHRDaHVua3NbY2h1bmtOdW1iZXJdOwogICAgICAgICAgICAg
d2hpbGUgKGNodW5rICYmIGNodW5rLnN0YXJ0TGluZSA8PSBuZXdSYW5nZS5lbmRMaW5lKSB7CiAg
ICAgICAgICAgICAgICAgaWYgKGNodW5rLmxpbmVzQ291bnQgPT09IDEpCi0gICAgICAgICAgICAg
ICAgICAgIHRoaXMuX3N5bmNEZWNvcmF0aW9uc0ZvckxpbmVMaXN0ZW5lcihjaHVuay5zdGFydExp
bmUpOworICAgICAgICAgICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhX
ZWJJbnNwZWN0b3IuVGV4dEVkaXRvckNodW5rZWRQYW5lbC5FdmVudHMuRGVjb3JhdGlvbnNGb3JM
aW5lU3luY05lZWRlZCwgY2h1bmsuc3RhcnRMaW5lKTsKICAgICAgICAgICAgICAgICBjaHVuayA9
IHRoaXMuX3RleHRDaHVua3NbKytjaHVua051bWJlcl07CiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KQEAgLTg5OCwxMSArOTAxLDE0IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yR3V0dGVyUGFu
ZWwucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yCiAKIC8qKgog
ICogQGNvbnN0cnVjdG9yCisgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5UZXh0RWRpdG9yR3V0dGVy
UGFuZWx9IGd1dHRlclBhbmVsCisgKiBAcGFyYW0ge251bWJlcn0gc3RhcnRMaW5lCisgKiBAcGFy
YW0ge251bWJlcn0gZW5kTGluZQogICovCi1XZWJJbnNwZWN0b3IuVGV4dEVkaXRvckd1dHRlckNo
dW5rID0gZnVuY3Rpb24odGV4dFZpZXdlciwgc3RhcnRMaW5lLCBlbmRMaW5lKQorV2ViSW5zcGVj
dG9yLlRleHRFZGl0b3JHdXR0ZXJDaHVuayA9IGZ1bmN0aW9uKGd1dHRlclBhbmVsLCBzdGFydExp
bmUsIGVuZExpbmUpCiB7Ci0gICAgdGhpcy5fdGV4dFZpZXdlciA9IHRleHRWaWV3ZXI7Ci0gICAg
dGhpcy5fdGV4dE1vZGVsID0gdGV4dFZpZXdlci5fdGV4dE1vZGVsOworICAgIHRoaXMuX2d1dHRl
clBhbmVsID0gZ3V0dGVyUGFuZWw7CisgICAgdGhpcy5fdGV4dE1vZGVsID0gZ3V0dGVyUGFuZWwu
X3RleHRNb2RlbDsKIAogICAgIHRoaXMuc3RhcnRMaW5lID0gc3RhcnRMaW5lOwogICAgIGVuZExp
bmUgPSBNYXRoLm1pbih0aGlzLl90ZXh0TW9kZWwubGluZXNDb3VudCwgZW5kTGluZSk7CkBAIC05
MzgsMTAgKzk0NCwxMCBAQCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvckd1dHRlckNodW5rLnByb3Rv
dHlwZSA9IHsKICAgICAgKi8KICAgICBhZGREZWNvcmF0aW9uOiBmdW5jdGlvbihkZWNvcmF0aW9u
KQogICAgIHsKLSAgICAgICAgdGhpcy5fdGV4dFZpZXdlci5iZWdpbkRvbVVwZGF0ZXMoKTsKKyAg
ICAgICAgdGhpcy5fZ3V0dGVyUGFuZWwuYmVnaW5Eb21VcGRhdGVzKCk7CiAgICAgICAgIGlmICh0
eXBlb2YgZGVjb3JhdGlvbiA9PT0gInN0cmluZyIpCiAgICAgICAgICAgICB0aGlzLmVsZW1lbnQu
YWRkU3R5bGVDbGFzcyhkZWNvcmF0aW9uKTsKLSAgICAgICAgdGhpcy5fdGV4dFZpZXdlci5lbmRE
b21VcGRhdGVzKCk7CisgICAgICAgIHRoaXMuX2d1dHRlclBhbmVsLmVuZERvbVVwZGF0ZXMoKTsK
ICAgICB9LAogCiAgICAgLyoqCkBAIC05NDksMTAgKzk1NSwxMCBAQCBXZWJJbnNwZWN0b3IuVGV4
dEVkaXRvckd1dHRlckNodW5rLnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICByZW1vdmVEZWNv
cmF0aW9uOiBmdW5jdGlvbihkZWNvcmF0aW9uKQogICAgIHsKLSAgICAgICAgdGhpcy5fdGV4dFZp
ZXdlci5iZWdpbkRvbVVwZGF0ZXMoKTsKKyAgICAgICAgdGhpcy5fZ3V0dGVyUGFuZWwuYmVnaW5E
b21VcGRhdGVzKCk7CiAgICAgICAgIGlmICh0eXBlb2YgZGVjb3JhdGlvbiA9PT0gInN0cmluZyIp
CiAgICAgICAgICAgICB0aGlzLmVsZW1lbnQucmVtb3ZlU3R5bGVDbGFzcyhkZWNvcmF0aW9uKTsK
LSAgICAgICAgdGhpcy5fdGV4dFZpZXdlci5lbmREb21VcGRhdGVzKCk7CisgICAgICAgIHRoaXMu
X2d1dHRlclBhbmVsLmVuZERvbVVwZGF0ZXMoKTsKICAgICB9LAogCiAgICAgLyoqCkBAIC05NjYs
NyArOTcyLDcgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JHdXR0ZXJDaHVuay5wcm90b3R5cGUg
PSB7CiAgICAgc2V0IGV4cGFuZGVkKGV4cGFuZGVkKQogICAgIHsKICAgICAgICAgaWYgKHRoaXMu
bGluZXNDb3VudCA9PT0gMSkKLSAgICAgICAgICAgIHRoaXMuX3RleHRWaWV3ZXIuX3N5bmNEZWNv
cmF0aW9uc0ZvckxpbmVMaXN0ZW5lcih0aGlzLnN0YXJ0TGluZSk7CisgICAgICAgICAgICB0aGlz
Ll9ndXR0ZXJQYW5lbC5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlRleHRF
ZGl0b3JDaHVua2VkUGFuZWwuRXZlbnRzLkRlY29yYXRpb25zRm9yTGluZVN5bmNOZWVkZWQsIHRo
aXMuc3RhcnRMaW5lKTsKIAogICAgICAgICBpZiAodGhpcy5fZXhwYW5kZWQgPT09IGV4cGFuZGVk
KQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtOTc2LDcgKzk4Miw3IEBAIFdlYkluc3BlY3Rvci5U
ZXh0RWRpdG9yR3V0dGVyQ2h1bmsucHJvdG90eXBlID0gewogICAgICAgICBpZiAodGhpcy5saW5l
c0NvdW50ID09PSAxKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIHRoaXMuX3RleHRW
aWV3ZXIuYmVnaW5Eb21VcGRhdGVzKCk7CisgICAgICAgIHRoaXMuX2d1dHRlclBhbmVsLmJlZ2lu
RG9tVXBkYXRlcygpOwogCiAgICAgICAgIGlmIChleHBhbmRlZCkgewogICAgICAgICAgICAgdGhp
cy5fZXhwYW5kZWRMaW5lUm93cyA9IFtdOwpAQCAtOTg3LDcgKzk5Myw3IEBAIFdlYkluc3BlY3Rv
ci5UZXh0RWRpdG9yR3V0dGVyQ2h1bmsucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIHRo
aXMuX2V4cGFuZGVkTGluZVJvd3MucHVzaChsaW5lUm93KTsKICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIHBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcy5lbGVtZW50KTsKLSAgICAgICAg
ICAgIHRoaXMuX3RleHRWaWV3ZXIuX3N5bmNMaW5lSGVpZ2h0TGlzdGVuZXIodGhpcy5fZXhwYW5k
ZWRMaW5lUm93c1swXSk7CisgICAgICAgICAgICB0aGlzLl9ndXR0ZXJQYW5lbC5kaXNwYXRjaEV2
ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JDaHVua2VkUGFuZWwuRXZlbnRz
LkxpbmVIZWlnaHRTeW5jTmVlZGVkLCB0aGlzLl9leHBhbmRlZExpbmVSb3dzWzBdKTsKICAgICAg
ICAgfSBlbHNlIHsKICAgICAgICAgICAgIHZhciBlbGVtZW50SW5zZXJ0ZWQgPSBmYWxzZTsKICAg
ICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5fZXhwYW5kZWRMaW5lUm93cy5sZW5n
dGg7ICsraSkgewpAQCAtMTAwMCwxMiArMTAwNiwxMiBAQCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRv
ckd1dHRlckNodW5rLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgICAgICBwYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKGxpbmVSb3cpOwogICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB0aGlzLl90ZXh0Vmlld2VyLl9jYWNoZWRSb3dz
LnB1c2gobGluZVJvdyk7CisgICAgICAgICAgICAgICAgdGhpcy5fZ3V0dGVyUGFuZWwuX2NhY2hl
ZFJvd3MucHVzaChsaW5lUm93KTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGRlbGV0ZSB0
aGlzLl9leHBhbmRlZExpbmVSb3dzOwogICAgICAgICB9CiAKLSAgICAgICAgdGhpcy5fdGV4dFZp
ZXdlci5lbmREb21VcGRhdGVzKCk7CisgICAgICAgIHRoaXMuX2d1dHRlclBhbmVsLmVuZERvbVVw
ZGF0ZXMoKTsKICAgICB9LAogCiAgICAgLyoqCkBAIC0xMDE0LDggKzEwMjAsOCBAQCBXZWJJbnNw
ZWN0b3IuVGV4dEVkaXRvckd1dHRlckNodW5rLnByb3RvdHlwZSA9IHsKICAgICBnZXQgaGVpZ2h0
KCkKICAgICB7CiAgICAgICAgIGlmICghdGhpcy5fZXhwYW5kZWRMaW5lUm93cykKLSAgICAgICAg
ICAgIHJldHVybiB0aGlzLl90ZXh0Vmlld2VyLl90b3RhbEhlaWdodCh0aGlzLmVsZW1lbnQpOwot
ICAgICAgICByZXR1cm4gdGhpcy5fdGV4dFZpZXdlci5fdG90YWxIZWlnaHQodGhpcy5fZXhwYW5k
ZWRMaW5lUm93c1swXSwgdGhpcy5fZXhwYW5kZWRMaW5lUm93c1t0aGlzLl9leHBhbmRlZExpbmVS
b3dzLmxlbmd0aCAtIDFdKTsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9ndXR0ZXJQYW5lbC5f
dG90YWxIZWlnaHQodGhpcy5lbGVtZW50KTsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2d1dHRlclBh
bmVsLl90b3RhbEhlaWdodCh0aGlzLl9leHBhbmRlZExpbmVSb3dzWzBdLCB0aGlzLl9leHBhbmRl
ZExpbmVSb3dzW3RoaXMuX2V4cGFuZGVkTGluZVJvd3MubGVuZ3RoIC0gMV0pOwogICAgIH0sCiAK
ICAgICAvKioKQEAgLTEwMzIsNyArMTAzOCw3IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yR3V0
dGVyQ2h1bmsucHJvdG90eXBlID0gewogICAgICAqLwogICAgIF9jcmVhdGVSb3c6IGZ1bmN0aW9u
KGxpbmVOdW1iZXIpCiAgICAgewotICAgICAgICB2YXIgbGluZVJvdyA9IHRoaXMuX3RleHRWaWV3
ZXIuX2NhY2hlZFJvd3MucG9wKCkgfHwgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Cisg
ICAgICAgIHZhciBsaW5lUm93ID0gdGhpcy5fZ3V0dGVyUGFuZWwuX2NhY2hlZFJvd3MucG9wKCkg
fHwgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICAgICAgIGxpbmVSb3cubGluZU51
bWJlciA9IGxpbmVOdW1iZXI7CiAgICAgICAgIGxpbmVSb3cuY2xhc3NOYW1lID0gIndlYmtpdC1s
aW5lLW51bWJlciI7CiAgICAgICAgIGxpbmVSb3cudGV4dENvbnRlbnQgPSBsaW5lTnVtYmVyICsg
MTsKQEAgLTEwNDYsMTUgKzEwNTIsMTAgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JHdXR0ZXJD
aHVuay5wcm90b3R5cGUgPSB7CiAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5UZXh0RWRpdG9yTW9k
ZWx9IHRleHRNb2RlbAogICogQHBhcmFtIHs/c3RyaW5nfSB1cmwKICAqLwotV2ViSW5zcGVjdG9y
LlRleHRFZGl0b3JNYWluUGFuZWwgPSBmdW5jdGlvbih0ZXh0TW9kZWwsIHVybCwgc3luY1Njcm9s
bExpc3RlbmVyLCBzeW5jRGVjb3JhdGlvbnNGb3JMaW5lTGlzdGVuZXIsIGVudGVyVGV4dENoYW5n
ZU1vZGUsIGV4aXRUZXh0Q2hhbmdlTW9kZSkKK1dlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBh
bmVsID0gZnVuY3Rpb24odGV4dE1vZGVsLCB1cmwpCiB7CiAgICAgV2ViSW5zcGVjdG9yLlRleHRF
ZGl0b3JDaHVua2VkUGFuZWwuY2FsbCh0aGlzLCB0ZXh0TW9kZWwpOwogCi0gICAgdGhpcy5fc3lu
Y1Njcm9sbExpc3RlbmVyID0gc3luY1Njcm9sbExpc3RlbmVyOwotICAgIHRoaXMuX3N5bmNEZWNv
cmF0aW9uc0ZvckxpbmVMaXN0ZW5lciA9IHN5bmNEZWNvcmF0aW9uc0ZvckxpbmVMaXN0ZW5lcjsK
LSAgICB0aGlzLl9lbnRlclRleHRDaGFuZ2VNb2RlID0gZW50ZXJUZXh0Q2hhbmdlTW9kZTsKLSAg
ICB0aGlzLl9leGl0VGV4dENoYW5nZU1vZGUgPSBleGl0VGV4dENoYW5nZU1vZGU7Ci0KICAgICB0
aGlzLl91cmwgPSB1cmw7CiAgICAgdGhpcy5faGlnaGxpZ2h0ZXIgPSBuZXcgV2ViSW5zcGVjdG9y
LlRleHRFZGl0b3JIaWdobGlnaHRlcih0ZXh0TW9kZWwsIHRoaXMuX2hpZ2hsaWdodERhdGFSZWFk
eS5iaW5kKHRoaXMpKTsKICAgICB0aGlzLl9yZWFkT25seSA9IHRydWU7CkBAIC0xMDg4LDYgKzEw
ODksMTEgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwgPSBmdW5jdGlvbih0ZXh0
TW9kZWwsIHVybCwgc3luY1Njcm9sbExpc3RlbmVyLAogICAgIHRoaXMuX2J1aWxkQ2h1bmtzKCk7
CiB9CiAKK1dlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLkV2ZW50cyA9IHsKKyAgICBF
bnRlcmVkVGV4dENoYW5nZU1vZGU6ICJFbnRlcmVkVGV4dENoYW5nZU1vZGUiLAorICAgIEV4aXRl
ZFRleHRDaGFuZ2VNb2RlOiAiRXhpdGVkVGV4dENoYW5nZU1vZGUiLAorfQorCiBXZWJJbnNwZWN0
b3IuVGV4dEVkaXRvck1haW5QYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgLyoqCiAgICAgICogQHBh
cmFtIHtzdHJpbmd9IG1pbWVUeXBlCkBAIC0xMjc4LDEyICsxMjg0LDEyIEBAIFdlYkluc3BlY3Rv
ci5UZXh0RWRpdG9yTWFpblBhbmVsLnByb3RvdHlwZSA9IHsKIAogICAgICAgICBmdW5jdGlvbiBi
ZWZvcmUoKQogICAgICAgICB7Ci0gICAgICAgICAgICB0aGlzLl9lbnRlclRleHRDaGFuZ2VNb2Rl
KCk7CisgICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0
b3IuVGV4dEVkaXRvck1haW5QYW5lbC5FdmVudHMuRW50ZXJlZFRleHRDaGFuZ2VNb2RlLCBudWxs
KTsKICAgICAgICAgfQogCiAgICAgICAgIGZ1bmN0aW9uIGFmdGVyKG9sZFJhbmdlLCBuZXdSYW5n
ZSkKICAgICAgICAgewotICAgICAgICAgICAgdGhpcy5fZXhpdFRleHRDaGFuZ2VNb2RlKG9sZFJh
bmdlLCBuZXdSYW5nZSk7CisgICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVy
cyhXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5FdmVudHMuRXhpdGVkVGV4dENoYW5n
ZU1vZGUsIHtvbGRSYW5nZTogb2xkUmFuZ2UsIG5ld1JhbmdlOiBuZXdSYW5nZX0pOwogICAgICAg
ICB9CiAKICAgICAgICAgdmFyIHJhbmdlID0gcmVkbyA/IHRoaXMuX3RleHRNb2RlbC5yZWRvKGJl
Zm9yZS5iaW5kKHRoaXMpLCBhZnRlci5iaW5kKHRoaXMpKSA6IHRoaXMuX3RleHRNb2RlbC51bmRv
KGJlZm9yZS5iaW5kKHRoaXMpLCBhZnRlci5iaW5kKHRoaXMpKTsKQEAgLTEzMTIsNyArMTMxOCw3
IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgdmFyIHJhbmdlID0gc2VsZWN0aW9uLm5vcm1hbGl6ZSgpOwogCiAgICAgICAgIHRoaXMuYmVn
aW5VcGRhdGVzKCk7Ci0gICAgICAgIHRoaXMuX2VudGVyVGV4dENoYW5nZU1vZGUoKTsKKyAgICAg
ICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JN
YWluUGFuZWwuRXZlbnRzLkVudGVyZWRUZXh0Q2hhbmdlTW9kZSwgbnVsbCk7CiAKICAgICAgICAg
dmFyIG5ld1JhbmdlOwogICAgICAgICB2YXIgcmFuZ2VXYXNFbXB0eSA9IHJhbmdlLmlzRW1wdHko
KTsKQEAgLTEzMjUsNyArMTMzMSw3IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVs
LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICBuZXdSYW5nZSA9IHRoaXMuX2luZGVudExp
bmVzKHJhbmdlKTsKICAgICAgICAgfQogCi0gICAgICAgIHRoaXMuX2V4aXRUZXh0Q2hhbmdlTW9k
ZShyYW5nZSwgbmV3UmFuZ2UpOworICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVy
cyhXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5FdmVudHMuRXhpdGVkVGV4dENoYW5n
ZU1vZGUsIHtvbGRSYW5nZTogcmFuZ2UsIG5ld1JhbmdlOiBuZXdSYW5nZX0pOwogICAgICAgICB0
aGlzLmVuZFVwZGF0ZXMoKTsKICAgICAgICAgaWYgKHJhbmdlV2FzRW1wdHkpCiAgICAgICAgICAg
ICBuZXdSYW5nZS5zdGFydENvbHVtbiA9IG5ld1JhbmdlLmVuZENvbHVtbjsKQEAgLTE0MzIsNyAr
MTQzOCw3IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLnByb3RvdHlwZSA9IHsK
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICB0aGlzLmJlZ2luVXBkYXRlcygp
OwotICAgICAgICB0aGlzLl9lbnRlclRleHRDaGFuZ2VNb2RlKCk7CisgICAgICAgIHRoaXMuZGlz
cGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLkV2
ZW50cy5FbnRlcmVkVGV4dENoYW5nZU1vZGUsIG51bGwpOwogCiAgICAgICAgIHZhciBsaW5lQnJl
YWsgPSB0aGlzLl90ZXh0TW9kZWwubGluZUJyZWFrOwogICAgICAgICB2YXIgbmV3UmFuZ2U7CkBA
IC0xNDQ4LDcgKzE0NTQsNyBAQCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5wcm90
b3R5cGUgPSB7CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgbmV3UmFuZ2UgPSB0aGlzLl9l
ZGl0UmFuZ2UocmFuZ2UsIGxpbmVCcmVhayArIGluZGVudCk7CiAKLSAgICAgICAgdGhpcy5fZXhp
dFRleHRDaGFuZ2VNb2RlKHJhbmdlLCBuZXdSYW5nZSk7CisgICAgICAgIHRoaXMuZGlzcGF0Y2hF
dmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLkV2ZW50cy5F
eGl0ZWRUZXh0Q2hhbmdlTW9kZSwge29sZFJhbmdlOiByYW5nZSwgbmV3UmFuZ2U6IG5ld1Jhbmdl
fSk7CiAgICAgICAgIHRoaXMuZW5kVXBkYXRlcygpOwogICAgICAgICB0aGlzLl9yZXN0b3JlU2Vs
ZWN0aW9uKG5ld1JhbmdlLmNvbGxhcHNlVG9FbmQoKSwgdHJ1ZSk7CiAKQEAgLTE5NzksOCArMTk4
NSw3IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLnByb3RvdHlwZSA9IHsKICAg
ICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBpZiAobGluZVJvdy5kZWNvcmF0aW9uc0VsZW1l
bnQgJiYgbGluZVJvdy5kZWNvcmF0aW9uc0VsZW1lbnQuaXNTZWxmT3JBbmNlc3Rvcih0YXJnZXQp
KSB7Ci0gICAgICAgICAgICBpZiAodGhpcy5fc3luY0RlY29yYXRpb25zRm9yTGluZUxpc3RlbmVy
KQotICAgICAgICAgICAgICAgIHRoaXMuX3N5bmNEZWNvcmF0aW9uc0ZvckxpbmVMaXN0ZW5lcihs
aW5lUm93LmxpbmVOdW1iZXIpOworICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0
ZW5lcnMoV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JDaHVua2VkUGFuZWwuRXZlbnRzLkRlY29yYXRp
b25zRm9yTGluZVN5bmNOZWVkZWQsIGxpbmVSb3cubGluZU51bWJlcik7CiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KIApAQCAtMjExOSw4ICsyMTI0LDggQEAgV2ViSW5zcGVjdG9yLlRl
eHRFZGl0b3JNYWluUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgcmV0dXJuOyAvLyBO
b29wCiAgICAgICAgIH0KIAotICAgICAgICAvLyBUaGlzIGlzIGEgImZvcmVpZ24iIGNhbGwgb3V0
c2lkZSBvZiB0aGlzIGNsYXNzLiBTaG91bGQgYmUgYmVmb3JlIHdlIGRlbGV0ZSB0aGUgZGlydHkg
bGluZXMgZmxhZy4KLSAgICAgICAgdGhpcy5fZW50ZXJUZXh0Q2hhbmdlTW9kZSgpOworICAgICAg
ICAvLyBXZSBzaG91bGQgZGlzcGF0Y2ggZXZlbnQgdG8gZXh0ZXJuYWwgbGlzdGVuZXJzIGJlZm9y
ZSB3ZSBkZWxldGUgdGhlIGRpcnR5IGxpbmVzIGZsYWcuCisgICAgICAgIHRoaXMuZGlzcGF0Y2hF
dmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLkV2ZW50cy5F
bnRlcmVkVGV4dENoYW5nZU1vZGUsIG51bGwpOwogCiAgICAgICAgIGRlbGV0ZSB0aGlzLl9kaXJ0
eUxpbmVzOwogCkBAIC0yMTI5LDcgKzIxMzQsNyBAQCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1h
aW5QYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX3BhaW50U2NoZWR1bGVkTGluZXMo
dHJ1ZSk7CiAgICAgICAgIHRoaXMuX3Jlc3RvcmVTZWxlY3Rpb24oc2VsZWN0aW9uKTsKIAotICAg
ICAgICB0aGlzLl9leGl0VGV4dENoYW5nZU1vZGUob2xkUmFuZ2UsIG5ld1JhbmdlKTsKKyAgICAg
ICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JN
YWluUGFuZWwuRXZlbnRzLkV4aXRlZFRleHRDaGFuZ2VNb2RlLCB7b2xkUmFuZ2U6IG9sZFJhbmdl
LCBuZXdSYW5nZTogbmV3UmFuZ2V9KTsKICAgICB9LAogCiAgICAgLyoqCkBAIC0yMzMyLDE5ICsy
MzM3LDE5IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLnByb3RvdHlwZS5fX3By
b3RvX18gPSBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvckNoCiAKIC8qKgogICogQGNvbnN0cnVjdG9y
Ci0gKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5UZXh0RWRpdG9yQ2h1bmtlZFBhbmVsfSBjaHVua2Vk
UGFuZWwKKyAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWx9IG1haW5Q
YW5lbAogICogQHBhcmFtIHtudW1iZXJ9IHN0YXJ0TGluZQogICogQHBhcmFtIHtudW1iZXJ9IGVu
ZExpbmUKICovCi1XZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5DaHVuayA9IGZ1bmN0aW9uKGNo
dW5rZWRQYW5lbCwgc3RhcnRMaW5lLCBlbmRMaW5lKQorV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JN
YWluQ2h1bmsgPSBmdW5jdGlvbihtYWluUGFuZWwsIHN0YXJ0TGluZSwgZW5kTGluZSkKIHsKLSAg
ICB0aGlzLl9jaHVua2VkUGFuZWwgPSBjaHVua2VkUGFuZWw7Ci0gICAgdGhpcy5fdGV4dE1vZGVs
ID0gY2h1bmtlZFBhbmVsLl90ZXh0TW9kZWw7CisgICAgdGhpcy5fbWFpblBhbmVsID0gbWFpblBh
bmVsOworICAgIHRoaXMuX3RleHRNb2RlbCA9IG1haW5QYW5lbC5fdGV4dE1vZGVsOwogCiAgICAg
dGhpcy5lbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICAgdGhpcy5l
bGVtZW50LmxpbmVOdW1iZXIgPSBzdGFydExpbmU7CiAgICAgdGhpcy5lbGVtZW50LmNsYXNzTmFt
ZSA9ICJ3ZWJraXQtbGluZS1jb250ZW50IjsKLSAgICB0aGlzLl9jaHVua2VkUGFuZWwuX2VuYWJs
ZURPTU5vZGVSZW1vdmVkTGlzdGVuZXIodGhpcy5lbGVtZW50LCB0cnVlKTsKKyAgICB0aGlzLl9t
YWluUGFuZWwuX2VuYWJsZURPTU5vZGVSZW1vdmVkTGlzdGVuZXIodGhpcy5lbGVtZW50LCB0cnVl
KTsKIAogICAgIHRoaXMuX3N0YXJ0TGluZSA9IHN0YXJ0TGluZTsKICAgICBlbmRMaW5lID0gTWF0
aC5taW4odGhpcy5fdGV4dE1vZGVsLmxpbmVzQ291bnQsIGVuZExpbmUpOwpAQCAtMjM1OSw3ICsy
MzY0LDcgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluQ2h1bmsgPSBmdW5jdGlvbihjaHVu
a2VkUGFuZWwsIHN0YXJ0TGluZSwgZW5kTGluZSkKIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFp
bkNodW5rLnByb3RvdHlwZSA9IHsKICAgICBhZGREZWNvcmF0aW9uOiBmdW5jdGlvbihkZWNvcmF0
aW9uKQogICAgIHsKLSAgICAgICAgdGhpcy5fY2h1bmtlZFBhbmVsLmJlZ2luRG9tVXBkYXRlcygp
OworICAgICAgICB0aGlzLl9tYWluUGFuZWwuYmVnaW5Eb21VcGRhdGVzKCk7CiAgICAgICAgIGlm
ICh0eXBlb2YgZGVjb3JhdGlvbiA9PT0gInN0cmluZyIpCiAgICAgICAgICAgICB0aGlzLmVsZW1l
bnQuYWRkU3R5bGVDbGFzcyhkZWNvcmF0aW9uKTsKICAgICAgICAgZWxzZSB7CkBAIC0yMzcwLDcg
KzIzNzUsNyBAQCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5DaHVuay5wcm90b3R5cGUgPSB7
CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuZGVjb3JhdGlvbnNFbGVt
ZW50LmFwcGVuZENoaWxkKGRlY29yYXRpb24pOwogICAgICAgICB9Ci0gICAgICAgIHRoaXMuX2No
dW5rZWRQYW5lbC5lbmREb21VcGRhdGVzKCk7CisgICAgICAgIHRoaXMuX21haW5QYW5lbC5lbmRE
b21VcGRhdGVzKCk7CiAgICAgfSwKIAogICAgIC8qKgpAQCAtMjM3OCwyMyArMjM4MywyMyBAQCBX
ZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5DaHVuay5wcm90b3R5cGUgPSB7CiAgICAgICovCiAg
ICAgcmVtb3ZlRGVjb3JhdGlvbjogZnVuY3Rpb24oZGVjb3JhdGlvbikKICAgICB7Ci0gICAgICAg
IHRoaXMuX2NodW5rZWRQYW5lbC5iZWdpbkRvbVVwZGF0ZXMoKTsKKyAgICAgICAgdGhpcy5fbWFp
blBhbmVsLmJlZ2luRG9tVXBkYXRlcygpOwogICAgICAgICBpZiAodHlwZW9mIGRlY29yYXRpb24g
PT09ICJzdHJpbmciKQogICAgICAgICAgICAgdGhpcy5lbGVtZW50LnJlbW92ZVN0eWxlQ2xhc3Mo
ZGVjb3JhdGlvbik7CiAgICAgICAgIGVsc2UgaWYgKHRoaXMuZWxlbWVudC5kZWNvcmF0aW9uc0Vs
ZW1lbnQpCiAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuZGVjb3JhdGlvbnNFbGVtZW50LnJlbW92
ZUNoaWxkKGRlY29yYXRpb24pOwotICAgICAgICB0aGlzLl9jaHVua2VkUGFuZWwuZW5kRG9tVXBk
YXRlcygpOworICAgICAgICB0aGlzLl9tYWluUGFuZWwuZW5kRG9tVXBkYXRlcygpOwogICAgIH0s
CiAKICAgICByZW1vdmVBbGxEZWNvcmF0aW9uczogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAg
dGhpcy5fY2h1bmtlZFBhbmVsLmJlZ2luRG9tVXBkYXRlcygpOworICAgICAgICB0aGlzLl9tYWlu
UGFuZWwuYmVnaW5Eb21VcGRhdGVzKCk7CiAgICAgICAgIHRoaXMuZWxlbWVudC5jbGFzc05hbWUg
PSAid2Via2l0LWxpbmUtY29udGVudCI7CiAgICAgICAgIGlmICh0aGlzLmVsZW1lbnQuZGVjb3Jh
dGlvbnNFbGVtZW50KSB7CiAgICAgICAgICAgICB0aGlzLmVsZW1lbnQucmVtb3ZlQ2hpbGQodGhp
cy5lbGVtZW50LmRlY29yYXRpb25zRWxlbWVudCk7CiAgICAgICAgICAgICBkZWxldGUgdGhpcy5l
bGVtZW50LmRlY29yYXRpb25zRWxlbWVudDsKICAgICAgICAgfQotICAgICAgICB0aGlzLl9jaHVu
a2VkUGFuZWwuZW5kRG9tVXBkYXRlcygpOworICAgICAgICB0aGlzLl9tYWluUGFuZWwuZW5kRG9t
VXBkYXRlcygpOwogICAgIH0sCiAKICAgICAvKioKQEAgLTI0NDAsNDUgKzI0NDUsNDUgQEAgV2Vi
SW5zcGVjdG9yLlRleHRFZGl0b3JNYWluQ2h1bmsucHJvdG90eXBlID0gewogCiAgICAgICAgIGlm
ICh0aGlzLmxpbmVzQ291bnQgPT09IDEpIHsKICAgICAgICAgICAgIGlmIChleHBhbmRlZCkKLSAg
ICAgICAgICAgICAgICB0aGlzLl9jaHVua2VkUGFuZWwuX3BhaW50TGluZSh0aGlzLmVsZW1lbnQp
OworICAgICAgICAgICAgICAgIHRoaXMuX21haW5QYW5lbC5fcGFpbnRMaW5lKHRoaXMuZWxlbWVu
dCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICB0aGlzLl9jaHVu
a2VkUGFuZWwuYmVnaW5Eb21VcGRhdGVzKCk7CisgICAgICAgIHRoaXMuX21haW5QYW5lbC5iZWdp
bkRvbVVwZGF0ZXMoKTsKIAogICAgICAgICBpZiAoZXhwYW5kZWQpIHsKICAgICAgICAgICAgIHRo
aXMuX2V4cGFuZGVkTGluZVJvd3MgPSBbXTsKICAgICAgICAgICAgIHZhciBwYXJlbnRFbGVtZW50
ID0gdGhpcy5lbGVtZW50LnBhcmVudEVsZW1lbnQ7CiAgICAgICAgICAgICBmb3IgKHZhciBpID0g
dGhpcy5zdGFydExpbmU7IGkgPCB0aGlzLnN0YXJ0TGluZSArIHRoaXMubGluZXNDb3VudDsgKytp
KSB7CiAgICAgICAgICAgICAgICAgdmFyIGxpbmVSb3cgPSB0aGlzLl9jcmVhdGVSb3coaSk7Ci0g
ICAgICAgICAgICAgICAgdGhpcy5fY2h1bmtlZFBhbmVsLl9lbmFibGVET01Ob2RlUmVtb3ZlZExp
c3RlbmVyKGxpbmVSb3csIHRydWUpOworICAgICAgICAgICAgICAgIHRoaXMuX21haW5QYW5lbC5f
ZW5hYmxlRE9NTm9kZVJlbW92ZWRMaXN0ZW5lcihsaW5lUm93LCB0cnVlKTsKICAgICAgICAgICAg
ICAgICB0aGlzLl91cGRhdGVFbGVtZW50UmVhZE9ubHlTdGF0ZShsaW5lUm93KTsKICAgICAgICAg
ICAgICAgICBwYXJlbnRFbGVtZW50Lmluc2VydEJlZm9yZShsaW5lUm93LCB0aGlzLmVsZW1lbnQp
OwogICAgICAgICAgICAgICAgIHRoaXMuX2V4cGFuZGVkTGluZVJvd3MucHVzaChsaW5lUm93KTsK
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHRoaXMuX2NodW5rZWRQYW5lbC5fZW5hYmxlRE9N
Tm9kZVJlbW92ZWRMaXN0ZW5lcih0aGlzLmVsZW1lbnQsIGZhbHNlKTsKKyAgICAgICAgICAgIHRo
aXMuX21haW5QYW5lbC5fZW5hYmxlRE9NTm9kZVJlbW92ZWRMaXN0ZW5lcih0aGlzLmVsZW1lbnQs
IGZhbHNlKTsKICAgICAgICAgICAgIHBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcy5lbGVt
ZW50KTsKLSAgICAgICAgICAgIHRoaXMuX2NodW5rZWRQYW5lbC5fcGFpbnRMaW5lcyh0aGlzLnN0
YXJ0TGluZSwgdGhpcy5zdGFydExpbmUgKyB0aGlzLmxpbmVzQ291bnQpOworICAgICAgICAgICAg
dGhpcy5fbWFpblBhbmVsLl9wYWludExpbmVzKHRoaXMuc3RhcnRMaW5lLCB0aGlzLnN0YXJ0TGlu
ZSArIHRoaXMubGluZXNDb3VudCk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICB2YXIg
ZWxlbWVudEluc2VydGVkID0gZmFsc2U7CiAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8
IHRoaXMuX2V4cGFuZGVkTGluZVJvd3MubGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAgICAgICB2
YXIgbGluZVJvdyA9IHRoaXMuX2V4cGFuZGVkTGluZVJvd3NbaV07Ci0gICAgICAgICAgICAgICAg
dGhpcy5fY2h1bmtlZFBhbmVsLl9lbmFibGVET01Ob2RlUmVtb3ZlZExpc3RlbmVyKGxpbmVSb3cs
IGZhbHNlKTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYWluUGFuZWwuX2VuYWJsZURPTU5vZGVS
ZW1vdmVkTGlzdGVuZXIobGluZVJvdywgZmFsc2UpOwogICAgICAgICAgICAgICAgIHZhciBwYXJl
bnRFbGVtZW50ID0gbGluZVJvdy5wYXJlbnRFbGVtZW50OwogICAgICAgICAgICAgICAgIGlmIChw
YXJlbnRFbGVtZW50KSB7CiAgICAgICAgICAgICAgICAgICAgIGlmICghZWxlbWVudEluc2VydGVk
KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50SW5zZXJ0ZWQgPSB0cnVlOwotICAg
ICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2h1bmtlZFBhbmVsLl9lbmFibGVET01Ob2RlUmVt
b3ZlZExpc3RlbmVyKHRoaXMuZWxlbWVudCwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICB0aGlzLl9tYWluUGFuZWwuX2VuYWJsZURPTU5vZGVSZW1vdmVkTGlzdGVuZXIodGhpcy5lbGVt
ZW50LCB0cnVlKTsKICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudEVsZW1lbnQuaW5zZXJ0
QmVmb3JlKHRoaXMuZWxlbWVudCwgbGluZVJvdyk7CiAgICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICAgICAgcGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZChsaW5lUm93KTsKICAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgdGhpcy5fY2h1bmtlZFBhbmVsLl9yZWxl
YXNlTGluZXNIaWdobGlnaHQobGluZVJvdyk7CisgICAgICAgICAgICAgICAgdGhpcy5fbWFpblBh
bmVsLl9yZWxlYXNlTGluZXNIaWdobGlnaHQobGluZVJvdyk7CiAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICBkZWxldGUgdGhpcy5fZXhwYW5kZWRMaW5lUm93czsKICAgICAgICAgfQogCi0gICAg
ICAgIHRoaXMuX2NodW5rZWRQYW5lbC5lbmREb21VcGRhdGVzKCk7CisgICAgICAgIHRoaXMuX21h
aW5QYW5lbC5lbmREb21VcGRhdGVzKCk7CiAgICAgfSwKIAogICAgIHNldCByZWFkT25seShyZWFk
T25seSkKQEAgLTI1MTYsOCArMjUyMSw4IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpbkNo
dW5rLnByb3RvdHlwZSA9IHsKICAgICBnZXQgaGVpZ2h0KCkKICAgICB7CiAgICAgICAgIGlmICgh
dGhpcy5fZXhwYW5kZWRMaW5lUm93cykKLSAgICAgICAgICAgIHJldHVybiB0aGlzLl9jaHVua2Vk
UGFuZWwuX3RvdGFsSGVpZ2h0KHRoaXMuZWxlbWVudCk7Ci0gICAgICAgIHJldHVybiB0aGlzLl9j
aHVua2VkUGFuZWwuX3RvdGFsSGVpZ2h0KHRoaXMuX2V4cGFuZGVkTGluZVJvd3NbMF0sIHRoaXMu
X2V4cGFuZGVkTGluZVJvd3NbdGhpcy5fZXhwYW5kZWRMaW5lUm93cy5sZW5ndGggLSAxXSk7Cisg
ICAgICAgICAgICByZXR1cm4gdGhpcy5fbWFpblBhbmVsLl90b3RhbEhlaWdodCh0aGlzLmVsZW1l
bnQpOworICAgICAgICByZXR1cm4gdGhpcy5fbWFpblBhbmVsLl90b3RhbEhlaWdodCh0aGlzLl9l
eHBhbmRlZExpbmVSb3dzWzBdLCB0aGlzLl9leHBhbmRlZExpbmVSb3dzW3RoaXMuX2V4cGFuZGVk
TGluZVJvd3MubGVuZ3RoIC0gMV0pOwogICAgIH0sCiAKICAgICAvKioKQEAgLTI1MzQsNyArMjUz
OSw3IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpbkNodW5rLnByb3RvdHlwZSA9IHsKICAg
ICAgKi8KICAgICBfY3JlYXRlUm93OiBmdW5jdGlvbihsaW5lTnVtYmVyKQogICAgIHsKLSAgICAg
ICAgdmFyIGxpbmVSb3cgPSB0aGlzLl9jaHVua2VkUGFuZWwuX2NhY2hlZFJvd3MucG9wKCkgfHwg
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgICAgIHZhciBsaW5lUm93ID0gdGhp
cy5fbWFpblBhbmVsLl9jYWNoZWRSb3dzLnBvcCgpIHx8IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImRpdiIpOwogICAgICAgICBsaW5lUm93LmxpbmVOdW1iZXIgPSBsaW5lTnVtYmVyOwogICAgICAg
ICBsaW5lUm93LmNsYXNzTmFtZSA9ICJ3ZWJraXQtbGluZS1jb250ZW50IjsKICAgICAgICAgbGlu
ZVJvdy50ZXh0Q29udGVudCA9IHRoaXMuX3RleHRNb2RlbC5saW5lKGxpbmVOdW1iZXIpOwo=
</data>
<flag name="review"
          id="158417"
          type_id="1"
          status="-"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>