<?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>58426</bug_id>
          
          <creation_ts>2011-04-13 02:44:59 -0700</creation_ts>
          <short_desc>Web Inspector: Implement undo/redo in text editor</short_desc>
          <delta_ts>2011-04-13 06:39:42 -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="Andrey Adaikin">aandrey</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>commit-queue</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>384754</commentid>
    <comment_count>0</comment_count>
    <who name="Andrey Adaikin">aandrey</who>
    <bug_when>2011-04-13 02:44:59 -0700</bug_when>
    <thetext>Native undo/redo does not work because we modify DOM structure (highlights, chunks and etc.)
Implement it via keyboard shortcuts for now (Cmd/Ctrl+Z and Cmd/Ctrl+Shift+Z).

FIXME: Do something with the popup&apos;s Undo and Redo menu options - they invoke native&apos;s undo/redo.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>384756</commentid>
    <comment_count>1</comment_count>
      <attachid>89356</attachid>
    <who name="Andrey Adaikin">aandrey</who>
    <bug_when>2011-04-13 02:49:39 -0700</bug_when>
    <thetext>Created attachment 89356
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>384838</commentid>
    <comment_count>2</comment_count>
      <attachid>89356</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-04-13 06:39:32 -0700</bug_when>
    <thetext>Comment on attachment 89356
Patch

Clearing flags on attachment: 89356

Committed r83725: &lt;http://trac.webkit.org/changeset/83725&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>384839</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-04-13 06:39:42 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>89356</attachid>
            <date>2011-04-13 02:49:39 -0700</date>
            <delta_ts>2011-04-13 06:39:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-58426-20110413134937.patch</filename>
            <type>text/plain</type>
            <size>17353</size>
            <attacher name="Andrey Adaikin">aandrey</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODM1ODYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzYWEzMGYxNzk1MmJkMDQ2
Njc0Y2JkNTA0YmQ4N2Y5MGNkYTZmMjUxLi43NjlhMDY3OTc3NmZiMmVjMjRhNWFmYjY5OTgzYzA0
ODY0YzBmOWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMTEtMDQtMTMgIEFuZHJl
eSBBZGFpa2luICA8YWFuZHJleUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IEltcGxlbWVudCB1bmRvL3Jl
ZG8gaW4gdGV4dCBlZGl0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTU4NDI2CisKKyAgICAgICAgTmF0aXZlIHVuZG8vcmVkbyBkb2VzIG5vdCB3b3Jr
IGJlY2F1c2Ugd2UgbW9kaWZ5IERPTSBzdHJ1Y3R1cmUgKGhpZ2hsaWdodHMsIGNodW5rcyBhbmQg
ZXRjLikKKyAgICAgICAgSW1wbGVtZW50IGl0IHZpYSBrZXlib2FyZCBzaG9ydGN1dHMgZm9yIG5v
dyAoQ21kL0N0cmwrWiBhbmQgQ21kL0N0cmwrU2hpZnQrWikuCisgICAgICAgIEZJWE1FOiBEbyBz
b21ldGhpbmcgd2l0aCB0aGUgcG9wdXAncyBVbmRvIGFuZCBSZWRvIG1lbnUgb3B0aW9ucyAtIHRo
ZXkgaW52b2tlIG5hdGl2ZSdzIHVuZG8vcmVkby4KKworICAgICAgICAqIGluc3BlY3Rvci9mcm9u
dC1lbmQvU291cmNlRnJhbWUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUu
cHJvdG90eXBlLmVuZEVkaXRpbmcpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVGV4
dEVkaXRvck1vZGVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNb2RlbC5w
cm90b3R5cGUuc2V0VGV4dCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1vZGVs
LnByb3RvdHlwZS5faW5uZXJTZXRUZXh0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0RWRp
dG9yTW9kZWwucHJvdG90eXBlLl9wdXNoVW5kb2FibGVDb21tYW5kKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5UZXh0RWRpdG9yTW9kZWwucHJvdG90eXBlLnVuZG8pOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlRleHRFZGl0b3JNb2RlbC5wcm90b3R5cGUucmVkbyk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuVGV4dEVkaXRvck1vZGVsLnByb3RvdHlwZS5fZG9VbmRvKToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL1RleHRWaWV3ZXIuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4
dFZpZXdlci5wcm90b3R5cGUuX3RleHRDaGFuZ2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5U
ZXh0Vmlld2VyLnByb3RvdHlwZS5fZW50ZXJJbnRlcm5hbFRleHRDaGFuZ2VNb2RlKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5UZXh0Vmlld2VyLnByb3RvdHlwZS5fZXhpdEludGVybmFsVGV4dENo
YW5nZU1vZGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRWaWV3ZXIucHJvdG90eXBlLl9y
ZWdpc3RlclNob3J0Y3V0cyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dFZpZXdlci5wcm90
b3R5cGUuX2NhbmNlbEVkaXRpbmcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRWaWV3ZXIu
cHJvdG90eXBlLl9oYW5kbGVVbmRvUmVkbyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dEVk
aXRvckNodW5rZWRQYW5lbC5wcm90b3R5cGUubWFrZUxpbmVBQ2h1bmspOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlRleHRFZGl0b3JDaHVua2VkUGFuZWwucHJvdG90eXBlLl9yZXBhaW50QWxsKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yR3V0dGVyUGFuZWwucHJvdG90eXBlLnRl
eHRDaGFuZ2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLnBy
b3RvdHlwZS5oYW5kbGVVbmRvUmVkby5jYWxsYmFjayk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
VGV4dEVkaXRvck1haW5QYW5lbC5wcm90b3R5cGUuaGFuZGxlVW5kb1JlZG8pOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwucHJvdG90eXBlLl9yZXN0b3JlU2VsZWN0
aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLnByb3RvdHlw
ZS5fYXBwbHlEb21VcGRhdGVzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFp
blBhbmVsLnByb3RvdHlwZS50ZXh0Q2hhbmdlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4
dEVkaXRvck1haW5QYW5lbC5wcm90b3R5cGUuX3VwZGF0ZUNodW5rc0ZvclJhbmdlcyk6CisKIDIw
MTEtMDQtMTIgIEFuZHJleSBBZGFpa2luICA8YWFuZHJleUBnb29nbGUuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IFl1cnkgU2VtaWtoYXRza3kuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1lLmpzIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFtZS5qcwppbmRleCA0MjEyZGZlYWE4MjNhOTMwYjk2
OTc0MDUyMzRiOTM5MjZjMmE0ZWRiLi4xNjRmMTk2MDYwZTY2NTk0OTQ3NDVhNjI2NzcyN2UzOTY3
NDJmYzc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Nv
dXJjZUZyYW1lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291
cmNlRnJhbWUuanMKQEAgLTI1MCw2ICsyNTAsOSBAQCBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUu
cHJvdG90eXBlID0gewogCiAgICAgZW5kRWRpdGluZzogZnVuY3Rpb24ob2xkUmFuZ2UsIG5ld1Jh
bmdlKQogICAgIHsKKyAgICAgICAgaWYgKCFvbGRSYW5nZSB8fCAhbmV3UmFuZ2UpCisgICAgICAg
ICAgICByZXR1cm47CisKICAgICAgICAgLy8gQWRqdXN0IGV4ZWN1dGlvbiBsaW5lIG51bWJlci4K
ICAgICAgICAgaWYgKHR5cGVvZiB0aGlzLl9leGVjdXRpb25MaW5lTnVtYmVyID09PSAibnVtYmVy
IikgewogICAgICAgICAgICAgdmFyIG5ld0V4ZWN1dGlvbkxpbmVOdW1iZXIgPSB0aGlzLl9saW5l
TnVtYmVyQWZ0ZXJFZGl0aW5nKHRoaXMuX2V4ZWN1dGlvbkxpbmVOdW1iZXIsIG9sZFJhbmdlLCBu
ZXdSYW5nZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1RleHRFZGl0b3JNb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
VGV4dEVkaXRvck1vZGVsLmpzCmluZGV4IGIxNGEzYjdiNTZhYjU5NTkzYzVhYWFlYzljNDRhMmQ1
ZWUyNWZmNmIuLjJhMWUzNTNiYjkwNDZiZWMwYWJiNWFhNDVjMDE0ZTc1ZWMzNGY3MGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGV4dEVkaXRvck1vZGVs
LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGV4dEVkaXRvck1v
ZGVsLmpzCkBAIC05Myw3ICs5Myw3IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTW9kZWwucHJv
dG90eXBlID0gewogICAgIHsKICAgICAgICAgaWYgKCFyYW5nZSkKICAgICAgICAgICAgIHJhbmdl
ID0gbmV3IFdlYkluc3BlY3Rvci5UZXh0UmFuZ2UoMCwgMCwgdGhpcy5fbGluZXMubGVuZ3RoIC0g
MSwgdGhpcy5fbGluZXNbdGhpcy5fbGluZXMubGVuZ3RoIC0gMV0ubGVuZ3RoKTsKLSAgICAgICAg
dmFyIGNvbW1hbmQgPSB0aGlzLl9wdXNoVW5kb2FibGVDb21tYW5kKHJhbmdlLCB0ZXh0KTsKKyAg
ICAgICAgdmFyIGNvbW1hbmQgPSB0aGlzLl9wdXNoVW5kb2FibGVDb21tYW5kKHJhbmdlKTsKICAg
ICAgICAgdmFyIG5ld1JhbmdlID0gdGhpcy5faW5uZXJTZXRUZXh0KHJhbmdlLCB0ZXh0KTsKICAg
ICAgICAgY29tbWFuZC5yYW5nZSA9IG5ld1JhbmdlLmNsb25lKCk7CiAKQEAgLTExNyw3ICsxMTcs
NiBAQCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAg
dGhpcy5fcmVwbGFjZVRhYnNJZk5lZWRlZChuZXdMaW5lcyk7CiAKICAgICAgICAgdmFyIHByZWZp
eCA9IHRoaXMuX2xpbmVzW3JhbmdlLnN0YXJ0TGluZV0uc3Vic3RyaW5nKDAsIHJhbmdlLnN0YXJ0
Q29sdW1uKTsKLSAgICAgICAgdmFyIHByZWZpeEFyZ3VtZW50cyA9IHRoaXMuX2FyZ3VtZW50cwog
ICAgICAgICB2YXIgc3VmZml4ID0gdGhpcy5fbGluZXNbcmFuZ2Uuc3RhcnRMaW5lXS5zdWJzdHJp
bmcocmFuZ2Uuc3RhcnRDb2x1bW4pOwogCiAgICAgICAgIHZhciBwb3N0Q2FyZXQgPSBwcmVmaXgu
bGVuZ3RoOwpAQCAtMjQzLDcgKzI0Miw3IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTW9kZWwu
cHJvdG90eXBlID0gewogICAgICAgICAgICAgZGVsZXRlIGF0dHJzW25hbWVdOwogICAgIH0sCiAK
LSAgICBfcHVzaFVuZG9hYmxlQ29tbWFuZDogZnVuY3Rpb24ocmFuZ2UsIHRleHQpCisgICAgX3B1
c2hVbmRvYWJsZUNvbW1hbmQ6IGZ1bmN0aW9uKHJhbmdlKQogICAgIHsKICAgICAgICAgdmFyIGNv
bW1hbmQgPSB7CiAgICAgICAgICAgICB0ZXh0OiB0aGlzLmNvcHlSYW5nZShyYW5nZSksCkBAIC0y
NjIsMjkgKzI2MSwyOSBAQCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1vZGVsLnByb3RvdHlwZSA9
IHsKICAgICAgICAgcmV0dXJuIGNvbW1hbmQ7CiAgICAgfSwKIAotICAgIHVuZG86IGZ1bmN0aW9u
KCkKKyAgICB1bmRvOiBmdW5jdGlvbihjYWxsYmFjaykKICAgICB7CiAgICAgICAgIHRoaXMuX21h
cmtSZWRvYWJsZVN0YXRlKCk7CiAKICAgICAgICAgdGhpcy5faW5VbmRvID0gdHJ1ZTsKLSAgICAg
ICAgdmFyIHJhbmdlID0gdGhpcy5fZG9VbmRvKHRoaXMuX3VuZG9TdGFjayk7CisgICAgICAgIHZh
ciByYW5nZSA9IHRoaXMuX2RvVW5kbyh0aGlzLl91bmRvU3RhY2ssIGNhbGxiYWNrKTsKICAgICAg
ICAgZGVsZXRlIHRoaXMuX2luVW5kbzsKIAogICAgICAgICByZXR1cm4gcmFuZ2U7CiAgICAgfSwK
IAotICAgIHJlZG86IGZ1bmN0aW9uKCkKKyAgICByZWRvOiBmdW5jdGlvbihjYWxsYmFjaykKICAg
ICB7CiAgICAgICAgIHRoaXMubWFya1VuZG9hYmxlU3RhdGUoKTsKIAogICAgICAgICB0aGlzLl9p
blJlZG8gPSB0cnVlOwotICAgICAgICB2YXIgcmFuZ2UgPSB0aGlzLl9kb1VuZG8odGhpcy5fcmVk
b1N0YWNrKTsKKyAgICAgICAgdmFyIHJhbmdlID0gdGhpcy5fZG9VbmRvKHRoaXMuX3JlZG9TdGFj
aywgY2FsbGJhY2spOwogICAgICAgICBkZWxldGUgdGhpcy5faW5SZWRvOwogCiAgICAgICAgIHJl
dHVybiByYW5nZTsKICAgICB9LAogCi0gICAgX2RvVW5kbzogZnVuY3Rpb24oc3RhY2spCisgICAg
X2RvVW5kbzogZnVuY3Rpb24oc3RhY2ssIGNhbGxiYWNrKQogICAgIHsKICAgICAgICAgdmFyIHJh
bmdlID0gbnVsbDsKICAgICAgICAgZm9yICh2YXIgaSA9IHN0YWNrLmxlbmd0aCAtIDE7IGkgPj0g
MDsgLS1pKSB7CkBAIC0yOTIsNiArMjkxLDggQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNb2Rl
bC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBzdGFjay5sZW5ndGggPSBpOwogCiAgICAgICAg
ICAgICByYW5nZSA9IHRoaXMuc2V0VGV4dChjb21tYW5kLnJhbmdlLCBjb21tYW5kLnRleHQpOwor
ICAgICAgICAgICAgaWYgKGNhbGxiYWNrKQorICAgICAgICAgICAgICAgIGNhbGxiYWNrKGNvbW1h
bmQucmFuZ2UsIHJhbmdlKTsKICAgICAgICAgICAgIGlmIChpID4gMCAmJiBzdGFja1tpIC0gMV0u
ZXhwbGljaXQpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHJhbmdlOwogICAgICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRWaWV3ZXIuanMg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRWaWV3ZXIuanMKaW5kZXgg
OGY0ZmE0ZmM5YzZmMTQxZThkM2U0NzMxZWZkMWRlMWY5N2MwOTg5MS4uNDMyOTFmMmU5MWJmYTNk
ODE4ZjYyOGI5NGFiNDUyZjM5NzFlZDBhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9UZXh0Vmlld2VyLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvVGV4dFZpZXdlci5qcwpAQCAtMzUsNiArMzUsNyBAQCBXZWJJbnNwZWN0
b3IuVGV4dFZpZXdlciA9IGZ1bmN0aW9uKHRleHRNb2RlbCwgcGxhdGZvcm0sIHVybCwgZGVsZWdh
dGUpCiAKICAgICB0aGlzLl90ZXh0TW9kZWwgPSB0ZXh0TW9kZWw7CiAgICAgdGhpcy5fdGV4dE1v
ZGVsLmNoYW5nZUxpc3RlbmVyID0gdGhpcy5fdGV4dENoYW5nZWQuYmluZCh0aGlzKTsKKyAgICB0
aGlzLl90ZXh0TW9kZWwucmVzZXRVbmRvU3RhY2soKTsKICAgICB0aGlzLl9kZWxlZ2F0ZSA9IGRl
bGVnYXRlOwogCiAgICAgdGhpcy5lbGVtZW50LmNsYXNzTmFtZSA9ICJ0ZXh0LWVkaXRvciBtb25v
c3BhY2UiOwpAQCAtMTUxLDI4ICsxNTIsMjIgQEAgV2ViSW5zcGVjdG9yLlRleHRWaWV3ZXIucHJv
dG90eXBlID0gewogICAgIC8vIFdlYkluc3BlY3Rvci5UZXh0TW9kZWwgbGlzdGVuZXIKICAgICBf
dGV4dENoYW5nZWQ6IGZ1bmN0aW9uKG9sZFJhbmdlLCBuZXdSYW5nZSwgb2xkVGV4dCwgbmV3VGV4
dCkKICAgICB7Ci0gICAgICAgIGlmICghdGhpcy5faW50ZXJuYWxUZXh0Q2hhbmdlTW9kZSkgewot
ICAgICAgICAgICAgdGhpcy5fbWFpblBhbmVsLnRleHRDaGFuZ2VkKG9sZFJhbmdlLCBuZXdSYW5n
ZSk7Ci0gICAgICAgICAgICB0aGlzLl9ndXR0ZXJQYW5lbC50ZXh0Q2hhbmdlZChvbGRSYW5nZSwg
bmV3UmFuZ2UpOwotICAgICAgICAgICAgdGhpcy5fdXBkYXRlUGFuZWxPZmZzZXRzKCk7Ci0gICAg
ICAgIH0KKyAgICAgICAgaWYgKCF0aGlzLl9pbnRlcm5hbFRleHRDaGFuZ2VNb2RlKQorICAgICAg
ICAgICAgdGhpcy5fdGV4dE1vZGVsLnJlc2V0VW5kb1N0YWNrKCk7CisgICAgICAgIHRoaXMuX21h
aW5QYW5lbC50ZXh0Q2hhbmdlZChvbGRSYW5nZSwgbmV3UmFuZ2UpOworICAgICAgICB0aGlzLl9n
dXR0ZXJQYW5lbC50ZXh0Q2hhbmdlZChvbGRSYW5nZSwgbmV3UmFuZ2UpOworICAgICAgICB0aGlz
Ll91cGRhdGVQYW5lbE9mZnNldHMoKTsKICAgICB9LAogCiAgICAgX2VudGVySW50ZXJuYWxUZXh0
Q2hhbmdlTW9kZTogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdGhpcy5faW50ZXJuYWxUZXh0
Q2hhbmdlTW9kZSA9IHRydWU7Ci0KICAgICAgICAgdGhpcy5fZGVsZWdhdGUuc3RhcnRFZGl0aW5n
KCk7CiAgICAgfSwKIAogICAgIF9leGl0SW50ZXJuYWxUZXh0Q2hhbmdlTW9kZTogZnVuY3Rpb24o
b2xkUmFuZ2UsIG5ld1JhbmdlKQogICAgIHsKICAgICAgICAgdGhpcy5faW50ZXJuYWxUZXh0Q2hh
bmdlTW9kZSA9IGZhbHNlOwotCi0gICAgICAgIC8vIFVwZGF0ZSB0aGUgZ3V0dGVyIHBhbmVsLgot
ICAgICAgICB0aGlzLl9ndXR0ZXJQYW5lbC50ZXh0Q2hhbmdlZChvbGRSYW5nZSwgbmV3UmFuZ2Up
OwotICAgICAgICB0aGlzLl91cGRhdGVQYW5lbE9mZnNldHMoKTsKLQogICAgICAgICB0aGlzLl9k
ZWxlZ2F0ZS5lbmRFZGl0aW5nKG9sZFJhbmdlLCBuZXdSYW5nZSk7CiAgICAgfSwKIApAQCAtMjM1
LDEyICsyMzAsMjAgQEAgV2ViSW5zcGVjdG9yLlRleHRWaWV3ZXIucHJvdG90eXBlID0gewogCiAg
ICAgX3JlZ2lzdGVyU2hvcnRjdXRzOiBmdW5jdGlvbigpCiAgICAgeworICAgICAgICB2YXIga2V5
cyA9IFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0LktleXM7CisgICAgICAgIHZhciBtb2Rp
ZmllcnMgPSBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5Nb2RpZmllcnM7CisKICAgICAg
ICAgdGhpcy5fc2hvcnRjdXRzID0ge307CiAgICAgICAgIHZhciBjb21taXRFZGl0aW5nID0gdGhp
cy5fY29tbWl0RWRpdGluZy5iaW5kKHRoaXMpOwogICAgICAgICB2YXIgY2FuY2VsRWRpdGluZyA9
IHRoaXMuX2NhbmNlbEVkaXRpbmcuYmluZCh0aGlzKTsKLSAgICAgICAgdGhpcy5fc2hvcnRjdXRz
W1dlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0Lm1ha2VLZXkoInMiLCBXZWJJbnNwZWN0b3Iu
S2V5Ym9hcmRTaG9ydGN1dC5Nb2RpZmllcnMuQ3RybE9yTWV0YSldID0gY29tbWl0RWRpdGluZzsK
LSAgICAgICAgdGhpcy5fc2hvcnRjdXRzW1dlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0Lm1h
a2VLZXkoV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQuS2V5cy5FbnRlci5jb2RlLCBXZWJJ
bnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5Nb2RpZmllcnMuQ3RybE9yTWV0YSldID0gY29tbWl0
RWRpdGluZzsKLSAgICAgICAgdGhpcy5fc2hvcnRjdXRzW1dlYkluc3BlY3Rvci5LZXlib2FyZFNo
b3J0Y3V0Lm1ha2VLZXkoV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQuS2V5cy5Fc2MuY29k
ZSldID0gY2FuY2VsRWRpdGluZzsKKyAgICAgICAgdGhpcy5fc2hvcnRjdXRzW1dlYkluc3BlY3Rv
ci5LZXlib2FyZFNob3J0Y3V0Lm1ha2VLZXkoInMiLCBtb2RpZmllcnMuQ3RybE9yTWV0YSldID0g
Y29tbWl0RWRpdGluZzsKKyAgICAgICAgdGhpcy5fc2hvcnRjdXRzW1dlYkluc3BlY3Rvci5LZXli
b2FyZFNob3J0Y3V0Lm1ha2VLZXkoa2V5cy5FbnRlci5jb2RlLCBtb2RpZmllcnMuQ3RybE9yTWV0
YSldID0gY29tbWl0RWRpdGluZzsKKyAgICAgICAgdGhpcy5fc2hvcnRjdXRzW1dlYkluc3BlY3Rv
ci5LZXlib2FyZFNob3J0Y3V0Lm1ha2VLZXkoa2V5cy5Fc2MuY29kZSldID0gY2FuY2VsRWRpdGlu
ZzsKKworICAgICAgICB2YXIgaGFuZGxlVW5kbyA9IHRoaXMuX2hhbmRsZVVuZG9SZWRvLmJpbmQo
dGhpcywgMCk7CisgICAgICAgIHZhciBoYW5kbGVSZWRvID0gdGhpcy5faGFuZGxlVW5kb1JlZG8u
YmluZCh0aGlzLCAxKTsKKyAgICAgICAgdGhpcy5fc2hvcnRjdXRzW1dlYkluc3BlY3Rvci5LZXli
b2FyZFNob3J0Y3V0Lm1ha2VLZXkoInoiLCBtb2RpZmllcnMuQ3RybE9yTWV0YSldID0gaGFuZGxl
VW5kbzsKKyAgICAgICAgdGhpcy5fc2hvcnRjdXRzW1dlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0
Y3V0Lm1ha2VLZXkoInoiLCBtb2RpZmllcnMuU2hpZnQgfCBtb2RpZmllcnMuQ3RybE9yTWV0YSld
ID0gaGFuZGxlUmVkbzsKICAgICB9LAogCiAgICAgX2hhbmRsZUtleURvd246IGZ1bmN0aW9uKGUp
CkBAIC0yNzgsNiArMjgxLDExIEBAIFdlYkluc3BlY3Rvci5UZXh0Vmlld2VyLnByb3RvdHlwZSA9
IHsKICAgICAgICAgdGhpcy5fbWFpblBhbmVsLnJlYWRPbmx5ID0gdHJ1ZTsKICAgICAgICAgdGhp
cy5fZGVsZWdhdGUuY2FuY2VsRWRpdGluZygpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9
LAorCisgICAgX2hhbmRsZVVuZG9SZWRvOiBmdW5jdGlvbihyZWRvKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIHRoaXMuX21haW5QYW5lbC5oYW5kbGVVbmRvUmVkbyhyZWRvKTsKICAgICB9CiB9CiAK
QEAgLTM1OCwxMSArMzY2LDYgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JDaHVua2VkUGFuZWwu
cHJvdG90eXBlID0gewogICAgICAgICBjaHVuay5yZW1vdmVEZWNvcmF0aW9uKGRlY29yYXRpb24p
OwogICAgIH0sCiAKLSAgICB0ZXh0Q2hhbmdlZDogZnVuY3Rpb24ob2xkUmFuZ2UsIG5ld1Jhbmdl
KQotICAgIHsKLSAgICAgICAgdGhpcy5fYnVpbGRDaHVua3MoKTsKLSAgICB9LAotCiAgICAgX2J1
aWxkQ2h1bmtzOiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICB0aGlzLmJlZ2luRG9tVXBkYXRl
cygpOwpAQCAtMzgzLDkgKzM4Niw2IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yQ2h1bmtlZFBh
bmVsLnByb3RvdHlwZSA9IHsKIAogICAgIG1ha2VMaW5lQUNodW5rOiBmdW5jdGlvbihsaW5lTnVt
YmVyKQogICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLl90ZXh0Q2h1bmtzKQotICAgICAgICAgICAg
dGhpcy5fYnVpbGRDaHVua3MoKTsKLQogICAgICAgICB2YXIgY2h1bmtOdW1iZXIgPSB0aGlzLl9j
aHVua051bWJlckZvckxpbmUobGluZU51bWJlcik7CiAgICAgICAgIHZhciBvbGRDaHVuayA9IHRo
aXMuX3RleHRDaHVua3NbY2h1bmtOdW1iZXJdOwogICAgICAgICBpZiAob2xkQ2h1bmsubGluZXND
b3VudCA9PT0gMSkKQEAgLTU0Miw5ICs1NDIsNiBAQCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvckNo
dW5rZWRQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIGlmICh0aGlzLl9wYWludENvYWxlc2Np
bmdMZXZlbCB8fCB0aGlzLl9kaXJ0eUxpbmVzKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAg
ICAgIGlmICghdGhpcy5fdGV4dENodW5rcykKLSAgICAgICAgICAgIHRoaXMuX2J1aWxkQ2h1bmtz
KCk7Ci0KICAgICAgICAgdmFyIHZpc2libGVGcm9tID0gdGhpcy5lbGVtZW50LnNjcm9sbFRvcDsK
ICAgICAgICAgdmFyIHZpc2libGVUbyA9IHRoaXMuZWxlbWVudC5zY3JvbGxUb3AgKyB0aGlzLmVs
ZW1lbnQuY2xpZW50SGVpZ2h0OwogCkBAIC02MjEsMTAgKzYxOCw3IEBAIFdlYkluc3BlY3Rvci5U
ZXh0RWRpdG9yR3V0dGVyUGFuZWwucHJvdG90eXBlID0gewogCiAgICAgdGV4dENoYW5nZWQ6IGZ1
bmN0aW9uKG9sZFJhbmdlLCBuZXdSYW5nZSkKICAgICB7Ci0gICAgICAgIGlmICghdGhpcy5fdGV4
dENodW5rcykgewotICAgICAgICAgICAgdGhpcy5fYnVpbGRDaHVua3MoKTsKLSAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgfQorICAgICAgICB0aGlzLmJlZ2luRG9tVXBkYXRlcygpOwogCiAg
ICAgICAgIHZhciBsaW5lc0RpZmYgPSBuZXdSYW5nZS5saW5lc0NvdW50IC0gb2xkUmFuZ2UubGlu
ZXNDb3VudDsKICAgICAgICAgaWYgKGxpbmVzRGlmZikgewpAQCAtNjYwLDYgKzY1NCw4IEBAIFdl
Ykluc3BlY3Rvci5UZXh0RWRpdG9yR3V0dGVyUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICAg
ICAgICAgIGNodW5rID0gdGhpcy5fdGV4dENodW5rc1srK2NodW5rTnVtYmVyXTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgfQorCisgICAgICAgIHRoaXMuZW5kRG9tVXBkYXRlcygpOwogICAgIH0s
CiAKICAgICBzeW5jQ2xpZW50SGVpZ2h0OiBmdW5jdGlvbihjbGllbnRIZWlnaHQpCkBAIC05MDUs
NiArOTAxLDI5IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLnByb3RvdHlwZSA9
IHsKICAgICAgICAgdGhpcy5fY2FjaGVkUm93cyA9IFtdOwogICAgIH0sCiAKKyAgICBoYW5kbGVV
bmRvUmVkbzogZnVuY3Rpb24ocmVkbykKKyAgICB7CisgICAgICAgIGlmICh0aGlzLl9yZWFkT25s
eSB8fCB0aGlzLl9kaXJ0eUxpbmVzKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg
ICAgIHRoaXMuYmVnaW5VcGRhdGVzKCk7CisgICAgICAgIHRoaXMuX2VudGVyVGV4dENoYW5nZU1v
ZGUoKTsKKworICAgICAgICB2YXIgY2FsbGJhY2sgPSBmdW5jdGlvbihvbGRSYW5nZSwgbmV3UmFu
Z2UpIHsKKyAgICAgICAgICAgIHRoaXMuX2V4aXRUZXh0Q2hhbmdlTW9kZShvbGRSYW5nZSwgbmV3
UmFuZ2UpOworICAgICAgICAgICAgdGhpcy5fZW50ZXJUZXh0Q2hhbmdlTW9kZSgpOworICAgICAg
ICB9LmJpbmQodGhpcyk7CisKKyAgICAgICAgdmFyIHJhbmdlID0gcmVkbyA/IHRoaXMuX3RleHRN
b2RlbC5yZWRvKGNhbGxiYWNrKSA6IHRoaXMuX3RleHRNb2RlbC51bmRvKGNhbGxiYWNrKTsKKyAg
ICAgICAgaWYgKHJhbmdlKQorICAgICAgICAgICAgdGhpcy5fcmVzdG9yZVNlbGVjdGlvbihuZXcg
V2ViSW5zcGVjdG9yLlRleHRSYW5nZShyYW5nZS5lbmRMaW5lLCByYW5nZS5lbmRDb2x1bW4sIHJh
bmdlLmVuZExpbmUsIHJhbmdlLmVuZENvbHVtbiksIHRydWUpOworCisgICAgICAgIHRoaXMuX2V4
aXRUZXh0Q2hhbmdlTW9kZShudWxsLCBudWxsKTsKKyAgICAgICAgdGhpcy5lbmRVcGRhdGVzKCk7
CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfSwKKwogICAgIF9zcGxpdENodW5rT25BTGlu
ZTogZnVuY3Rpb24obGluZU51bWJlciwgY2h1bmtOdW1iZXIpCiAgICAgewogICAgICAgICB2YXIg
c2VsZWN0aW9uID0gdGhpcy5fZ2V0U2VsZWN0aW9uKCk7CkBAIC0xMTY5LDEzICsxMTg4LDIyIEBA
IFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAg
ICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLlRleHRSYW5nZShlbmQubGluZSwgZW5kLmNvbHVt
biwgc3RhcnQubGluZSwgc3RhcnQuY29sdW1uKTsKICAgICB9LAogCi0gICAgX3Jlc3RvcmVTZWxl
Y3Rpb246IGZ1bmN0aW9uKHJhbmdlKQorICAgIF9yZXN0b3JlU2VsZWN0aW9uOiBmdW5jdGlvbihy
YW5nZSwgc2Nyb2xsSW50b1ZpZXcpCiAgICAgewogICAgICAgICBpZiAoIXJhbmdlKQogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB2YXIgc3RhcnQgPSB0aGlzLl9wb3NpdGlvblRvU2VsZWN0
aW9uKHJhbmdlLnN0YXJ0TGluZSwgcmFuZ2Uuc3RhcnRDb2x1bW4pOwogICAgICAgICB2YXIgZW5k
ID0gcmFuZ2UuaXNFbXB0eSgpID8gc3RhcnQgOiB0aGlzLl9wb3NpdGlvblRvU2VsZWN0aW9uKHJh
bmdlLmVuZExpbmUsIHJhbmdlLmVuZENvbHVtbik7CiAgICAgICAgIHdpbmRvdy5nZXRTZWxlY3Rp
b24oKS5zZXRCYXNlQW5kRXh0ZW50KHN0YXJ0LmNvbnRhaW5lciwgc3RhcnQub2Zmc2V0LCBlbmQu
Y29udGFpbmVyLCBlbmQub2Zmc2V0KTsKKworICAgICAgICBpZiAoc2Nyb2xsSW50b1ZpZXcpIHsK
KyAgICAgICAgICAgIGZvciAodmFyIG5vZGUgPSBlbmQuY29udGFpbmVyOyBub2RlOyBub2RlID0g
bm9kZS5wYXJlbnRFbGVtZW50KSB7CisgICAgICAgICAgICAgICAgaWYgKG5vZGUuc2Nyb2xsSW50
b1ZpZXdJZk5lZWRlZCkgeworICAgICAgICAgICAgICAgICAgICBub2RlLnNjcm9sbEludG9WaWV3
SWZOZWVkZWQoKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgfQorICAgICAgICB9CiAgICAgfSwKIAogICAgIF9zZWxlY3Rpb25Ub1Bv
c2l0aW9uOiBmdW5jdGlvbihjb250YWluZXIsIG9mZnNldCkKQEAgLTE0MDUsNyArMTQzMyw3IEBA
IFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAg
ICAgIHRoaXMuX2NvbGxlY3RMaW5lc0Zyb21EaXYobGluZXMsIGxpbmVSb3cpOwogICAgICAgICB9
CiAKLSAgICAgICAgLy8gVHJ5IHRvIGRlY3JlYXNlIHRoZSByYW5nZSBiZWluZyByZXBsYWNlZCBp
ZiBwb3NzaWJsZS4KKyAgICAgICAgLy8gVHJ5IHRvIGRlY3JlYXNlIHRoZSByYW5nZSBiZWluZyBy
ZXBsYWNlZCwgaWYgcG9zc2libGUuCiAgICAgICAgIHZhciBzdGFydE9mZnNldCA9IDA7CiAgICAg
ICAgIHdoaWxlIChzdGFydExpbmUgPCBkaXJ0eUxpbmVzLnN0YXJ0ICYmIHN0YXJ0T2Zmc2V0IDwg
bGluZXMubGVuZ3RoKSB7CiAgICAgICAgICAgICBpZiAodGhpcy5fdGV4dE1vZGVsLmxpbmUoc3Rh
cnRMaW5lKSAhPT0gbGluZXNbc3RhcnRPZmZzZXRdKQpAQCAtMTQyNCwyOSArMTQ1Miw1OCBAQCBX
ZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5wcm90b3R5cGUgPSB7CiAKICAgICAgICAg
bGluZXMgPSBsaW5lcy5zbGljZShzdGFydE9mZnNldCwgZW5kT2Zmc2V0KTsKIAorICAgICAgICAv
LyBUcnkgdG8gZGVjcmVhc2UgdGhlIHJhbmdlIGJlaW5nIHJlcGxhY2VkIGJ5IGNvbHVtbiBvZmZz
ZXRzLCBpZiBwb3NzaWJsZS4KKyAgICAgICAgdmFyIHN0YXJ0Q29sdW1uID0gMDsKKyAgICAgICAg
dmFyIGVuZENvbHVtbiA9IHRoaXMuX3RleHRNb2RlbC5saW5lTGVuZ3RoKGVuZExpbmUgLSAxKTsK
KyAgICAgICAgaWYgKGxpbmVzLmxlbmd0aCA+IDApIHsKKyAgICAgICAgICAgIHZhciBsaW5lMSA9
IHRoaXMuX3RleHRNb2RlbC5saW5lKHN0YXJ0TGluZSk7CisgICAgICAgICAgICB2YXIgbGluZTIg
PSBsaW5lc1swXTsKKyAgICAgICAgICAgIHdoaWxlIChsaW5lMVtzdGFydENvbHVtbl0gJiYgbGlu
ZTFbc3RhcnRDb2x1bW5dID09PSBsaW5lMltzdGFydENvbHVtbl0pCisgICAgICAgICAgICAgICAg
KytzdGFydENvbHVtbjsKKyAgICAgICAgICAgIGxpbmVzWzBdID0gbGluZTIuc3Vic3RyaW5nKHN0
YXJ0Q29sdW1uKTsKKworICAgICAgICAgICAgdmFyIGxpbmUxID0gdGhpcy5fdGV4dE1vZGVsLmxp
bmUoZW5kTGluZSAtIDEpOworICAgICAgICAgICAgdmFyIGxpbmUyID0gbGluZXNbbGluZXMubGVu
Z3RoIC0gMV07CisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVuZENvbHVtbiAmJiBp
IDwgbGluZTIubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAoc3RhcnRMaW5lID09
PSBlbmRMaW5lIC0gMSAmJiBlbmRDb2x1bW4gLSBpIDw9IHN0YXJ0Q29sdW1uKQorICAgICAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBpZiAobGluZTFbZW5kQ29sdW1uIC0g
aSAtIDFdICE9PSBsaW5lMltsaW5lMi5sZW5ndGggLSBpIC0gMV0pCisgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGkpIHsKKyAgICAgICAg
ICAgICAgICBlbmRDb2x1bW4gLT0gaTsKKyAgICAgICAgICAgICAgICBsaW5lc1tsaW5lcy5sZW5n
dGggLSAxXSA9IGxpbmUyLnN1YnN0cmluZygwLCBsaW5lMi5sZW5ndGggLSBpKTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfQorCiAgICAgICAgIHZhciBzZWxlY3Rpb24gPSB0aGlzLl9nZXRTZWxl
Y3Rpb24oKTsKIAotICAgICAgICBpZiAobGluZXMubGVuZ3RoID09PSAwICYmIGVuZExpbmUgPCB0
aGlzLl90ZXh0TW9kZWwubGluZXNDb3VudCkgeworICAgICAgICBpZiAobGluZXMubGVuZ3RoID09
PSAwICYmIGVuZExpbmUgPCB0aGlzLl90ZXh0TW9kZWwubGluZXNDb3VudCkKICAgICAgICAgICAg
IHZhciBvbGRSYW5nZSA9IG5ldyBXZWJJbnNwZWN0b3IuVGV4dFJhbmdlKHN0YXJ0TGluZSwgMCwg
ZW5kTGluZSwgMCk7Ci0gICAgICAgICAgICB2YXIgbmV3UmFuZ2UgPSB0aGlzLl90ZXh0TW9kZWwu
c2V0VGV4dChvbGRSYW5nZSwgIiIpOwotICAgICAgICB9IGVsc2UgaWYgKGxpbmVzLmxlbmd0aCA9
PT0gMCAmJiBzdGFydExpbmUgPiAwKSB7CisgICAgICAgIGVsc2UgaWYgKGxpbmVzLmxlbmd0aCA9
PT0gMCAmJiBzdGFydExpbmUgPiAwKQogICAgICAgICAgICAgdmFyIG9sZFJhbmdlID0gbmV3IFdl
Ykluc3BlY3Rvci5UZXh0UmFuZ2Uoc3RhcnRMaW5lIC0gMSwgdGhpcy5fdGV4dE1vZGVsLmxpbmVM
ZW5ndGgoc3RhcnRMaW5lIC0gMSksIGVuZExpbmUgLSAxLCB0aGlzLl90ZXh0TW9kZWwubGluZUxl
bmd0aChlbmRMaW5lIC0gMSkpOwotICAgICAgICAgICAgdmFyIG5ld1JhbmdlID0gdGhpcy5fdGV4
dE1vZGVsLnNldFRleHQob2xkUmFuZ2UsICIiKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgIHZhciBvbGRSYW5nZSA9IG5ldyBXZWJJbnNwZWN0b3IuVGV4dFJhbmdlKHN0YXJ0TGluZSwg
MCwgZW5kTGluZSAtIDEsIHRoaXMuX3RleHRNb2RlbC5saW5lTGVuZ3RoKGVuZExpbmUgLSAxKSk7
Ci0gICAgICAgICAgICB2YXIgbmV3UmFuZ2UgPSB0aGlzLl90ZXh0TW9kZWwuc2V0VGV4dChvbGRS
YW5nZSwgbGluZXMuam9pbigiXG4iKSk7Ci0gICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgdmFyIG9sZFJhbmdlID0gbmV3IFdlYkluc3BlY3Rvci5UZXh0UmFuZ2Uoc3RhcnRMaW5l
LCBzdGFydENvbHVtbiwgZW5kTGluZSAtIDEsIGVuZENvbHVtbik7CiAKKyAgICAgICAgaWYgKHRo
aXMuX2xhc3RFZGl0ZWRSYW5nZSAmJiAobGluZXMubGVuZ3RoICE9PSAxIHx8IHRoaXMuX2xhc3RF
ZGl0ZWRSYW5nZS5lbmRMaW5lICE9PSBvbGRSYW5nZS5zdGFydExpbmUgfHwgdGhpcy5fbGFzdEVk
aXRlZFJhbmdlLmVuZENvbHVtbiAhPT0gb2xkUmFuZ2Uuc3RhcnRDb2x1bW4pKQorICAgICAgICAg
ICAgdGhpcy5fdGV4dE1vZGVsLm1hcmtVbmRvYWJsZVN0YXRlKCk7CisKKyAgICAgICAgdmFyIG5l
d1JhbmdlID0gdGhpcy5fdGV4dE1vZGVsLnNldFRleHQob2xkUmFuZ2UsIGxpbmVzLmpvaW4oIlxu
IikpOworICAgICAgICB0aGlzLl9sYXN0RWRpdGVkUmFuZ2UgPSBuZXdSYW5nZTsKKworICAgICAg
ICB0aGlzLl9wYWludFNjaGVkdWxlZExpbmVzKHRydWUpOworICAgICAgICB0aGlzLl9yZXN0b3Jl
U2VsZWN0aW9uKHNlbGVjdGlvbik7CisKKyAgICAgICAgdGhpcy5fZXhpdFRleHRDaGFuZ2VNb2Rl
KG9sZFJhbmdlLCBuZXdSYW5nZSk7CisgICAgfSwKKworICAgIHRleHRDaGFuZ2VkOiBmdW5jdGlv
bihvbGRSYW5nZSwgbmV3UmFuZ2UpCisgICAgewogICAgICAgICB0aGlzLmJlZ2luRG9tVXBkYXRl
cygpOwogICAgICAgICB0aGlzLl9yZW1vdmVEZWNvcmF0aW9uc0luUmFuZ2Uob2xkUmFuZ2UpOwog
ICAgICAgICB0aGlzLl91cGRhdGVDaHVua3NGb3JSYW5nZXMob2xkUmFuZ2UsIG5ld1JhbmdlKTsK
ICAgICAgICAgdGhpcy5fdXBkYXRlSGlnaGxpZ2h0c0ZvclJhbmdlKG5ld1JhbmdlKTsKLSAgICAg
ICAgdGhpcy5fcGFpbnRTY2hlZHVsZWRMaW5lcyh0cnVlKTsKICAgICAgICAgdGhpcy5lbmREb21V
cGRhdGVzKCk7Ci0KLSAgICAgICAgdGhpcy5fcmVzdG9yZVNlbGVjdGlvbihzZWxlY3Rpb24pOwot
Ci0gICAgICAgIHRoaXMuX2V4aXRUZXh0Q2hhbmdlTW9kZShvbGRSYW5nZSwgbmV3UmFuZ2UpOwog
ICAgIH0sCiAKICAgICBfcmVtb3ZlRGVjb3JhdGlvbnNJblJhbmdlOiBmdW5jdGlvbihyYW5nZSkK
QEAgLTE0OTIsNiArMTU0OSw4IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLnBy
b3RvdHlwZSA9IHsKICAgICAgICAgLy8gTW9zdCBmcmVxdWVudCBjYXNlOiBhIGNodW5rIHJlbWFp
bmVkIHRoZSBzYW1lLgogICAgICAgICBmb3IgKHZhciBjaHVua051bWJlciA9IGZpcnN0Q2h1bmtO
dW1iZXI7IGNodW5rTnVtYmVyIDw9IGxhc3RDaHVua051bWJlcjsgKytjaHVua051bWJlcikgewog
ICAgICAgICAgICAgdmFyIGNodW5rID0gdGhpcy5fdGV4dENodW5rc1tjaHVua051bWJlcl07Cisg
ICAgICAgICAgICBpZiAoY2h1bmsuc3RhcnRMaW5lICsgY2h1bmsubGluZXNDb3VudCA+IHRoaXMu
X3RleHRNb2RlbC5saW5lc0NvdW50KQorICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgdmFyIGxpbmVOdW1iZXIgPSBjaHVuay5zdGFydExpbmU7CiAgICAgICAgICAgICBmb3IgKHZh
ciBsaW5lUm93ID0gZmlyc3RMaW5lUm93OyBsaW5lUm93ICYmIGxpbmVOdW1iZXIgPCBjaHVuay5z
dGFydExpbmUgKyBjaHVuay5saW5lc0NvdW50OyBsaW5lUm93ID0gbGluZVJvdy5uZXh0U2libGlu
ZykgewogICAgICAgICAgICAgICAgIGlmIChsaW5lUm93LmxpbmVOdW1iZXIgIT09IGxpbmVOdW1i
ZXIgfHwgbGluZVJvdyAhPT0gY2h1bmsuZ2V0RXhwYW5kZWRMaW5lUm93KGxpbmVOdW1iZXIpIHx8
IGxpbmVSb3cudGV4dENvbnRlbnQgIT09IHRoaXMuX3RleHRNb2RlbC5saW5lKGxpbmVOdW1iZXIp
IHx8ICFsaW5lUm93LmZpcnN0Q2hpbGQpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>