<?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>79461</bug_id>
          
          <creation_ts>2012-02-24 00:44:21 -0800</creation_ts>
          <short_desc>Web Inspector: get rid of RawSourceCode.sourceMapping getter.</short_desc>
          <delta_ts>2012-02-27 01:27:45 -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>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="Pavel Podivilov">podivilov</reporter>
          <assigned_to name="Pavel Podivilov">podivilov</assigned_to>
          <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>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>564056</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2012-02-24 00:44:21 -0800</bug_when>
    <thetext>See https://bugs.webkit.org/show_bug.cgi?id=79130 for rationale.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>564059</commentid>
    <comment_count>1</comment_count>
      <attachid>128680</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2012-02-24 00:47:55 -0800</bug_when>
    <thetext>Created attachment 128680
Patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565444</commentid>
    <comment_count>2</comment_count>
      <attachid>128680</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-02-27 01:05:09 -0800</bug_when>
    <thetext>Comment on attachment 128680
Patch.

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

&gt; Source/WebCore/inspector/front-end/DebuggerPresentationModel.js:254
&gt; +        if (!this._selectedCallFrame || this._selectedCallFrame.rawSourceCode != rawSourceCode)

!= -&gt; !==</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565457</commentid>
    <comment_count>3</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2012-02-27 01:27:45 -0800</bug_when>
    <thetext>Committed r108971: &lt;http://trac.webkit.org/changeset/108971&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128680</attachid>
            <date>2012-02-24 00:47:55 -0800</date>
            <delta_ts>2012-02-27 01:05:09 -0800</delta_ts>
            <desc>Patch.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>51508</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3N2RiZDg5Li5kNzRkNzdkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDIt
MjEgIFBhdmVsIFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
V2ViIEluc3BlY3RvcjogZ2V0IHJpZCBvZiBSYXdTb3VyY2VDb2RlLnNvdXJjZU1hcHBpbmcgZ2V0
dGVyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzkx
MzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGlu
c3BlY3Rvci9kZWJ1Z2dlci9icmVha3BvaW50LW1hbmFnZXIuaHRtbDoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZGVidWdnZXIvY2FsbHN0YWNrLXBsYWNhcmRzLWRpc2NhcmRlZC1leHBlY3RlZC50eHQ6
CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2NhbGxzdGFjay1wbGFjYXJkcy1kaXNjYXJk
ZWQuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvcmF3LXNvdXJjZS1jb2RlLmh0
bWw6CisKIDIwMTItMDItMTYgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4K
IAogICAgICAgICBbUXRdIFVucmV2aWV3ZWQgZ2FyZGVuaW5nLgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtbWFuYWdlci5odG1sIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtbWFuYWdlci5odG1sCmluZGV4IDhj
Yzg2NGUuLmMyZTNlNWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci9icmVha3BvaW50LW1hbmFnZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvYnJlYWtwb2ludC1tYW5hZ2VyLmh0bWwKQEAgLTYzLDcgKzYzLDcgQEAgZnVuY3Rpb24g
dGVzdCgpCiAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICBpZDogaWQsCiAgICAgICAgICAg
ICB1cmw6IHVybCwKLSAgICAgICAgICAgIHJhd1NvdXJjZUNvZGU6IHsgc291cmNlTWFwcGluZyA6
IHsgcmF3TG9jYXRpb25Ub1VJTG9jYXRpb246IHJhd0xvY2F0aW9uVG9VSUxvY2F0aW9uLCB1aUxv
Y2F0aW9uVG9SYXdMb2NhdGlvbjogdWlMb2NhdGlvblRvUmF3TG9jYXRpb24gfSB9CisgICAgICAg
ICAgICByYXdTb3VyY2VDb2RlOiB7IHJhd0xvY2F0aW9uVG9VSUxvY2F0aW9uOiByYXdMb2NhdGlv
blRvVUlMb2NhdGlvbiwgdWlMb2NhdGlvblRvUmF3TG9jYXRpb246IHVpTG9jYXRpb25Ub1Jhd0xv
Y2F0aW9uIH0KICAgICAgICAgfTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci9jYWxsc3RhY2stcGxhY2FyZHMtZGlzY2FyZGVkLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9jYWxsc3RhY2stcGxhY2FyZHMtZGlz
Y2FyZGVkLWV4cGVjdGVkLnR4dAppbmRleCBmNWJjNDVjLi5lMTY2NDAwIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvY2FsbHN0YWNrLXBsYWNhcmRzLWRpc2NhcmRl
ZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2NhbGxz
dGFjay1wbGFjYXJkcy1kaXNjYXJkZWQtZXhwZWN0ZWQudHh0CkBAIC03LDEzICs3LDEzIEBAIFNj
cmlwdCBzb3VyY2Ugd2FzIHNob3duLgogU2V0IHRpbWVyIGZvciB0ZXN0IGZ1bmN0aW9uLgogUmVj
ZWl2ZWQgRGVidWdnZXJQYXVzZWQgZXZlbnQuCiBGdW5jdGlvbiBuYW1lOiB0ZXN0RnVuY3Rpb24K
LUxpc3RlbmVycyBsZW5ndGg6IDMKK0xpc3RlbmVycyBsZW5ndGg6IDIKIFNjcmlwdCBleGVjdXRp
b24gcGF1c2VkLgogU2NyaXB0IGV4ZWN1dGlvbiByZXN1bWVkLgogU2V0IHRpbWVyIGZvciB0ZXN0
IGZ1bmN0aW9uLgogUmVjZWl2ZWQgRGVidWdnZXJQYXVzZWQgZXZlbnQuCiBGdW5jdGlvbiBuYW1l
OiB0ZXN0RnVuY3Rpb24KLUxpc3RlbmVycyBsZW5ndGg6IDMKK0xpc3RlbmVycyBsZW5ndGg6IDIK
IFNjcmlwdCBleGVjdXRpb24gcGF1c2VkLgogU2NyaXB0IGV4ZWN1dGlvbiByZXN1bWVkLgogRGVi
dWdnZXIgd2FzIGRpc2FibGVkLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rl
YnVnZ2VyL2NhbGxzdGFjay1wbGFjYXJkcy1kaXNjYXJkZWQuaHRtbCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci9jYWxsc3RhY2stcGxhY2FyZHMtZGlzY2FyZGVkLmh0bWwKaW5kZXgg
ZTYzN2I0NC4uNDU2NjliZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL2NhbGxzdGFjay1wbGFjYXJkcy1kaXNjYXJkZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvY2FsbHN0YWNrLXBsYWNhcmRzLWRpc2NhcmRlZC5odG1sCkBAIC0y
Miw3ICsyMiw3IEBAIHZhciB0ZXN0ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgICAgIHZhciBj
YWxsRnJhbWUgPSBldmVudC5kYXRhLmNhbGxGcmFtZXNbMF07CiAgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoIkZ1bmN0aW9uIG5hbWU6ICIgKyBjYWxsRnJhbWUuX2NhbGxG
cmFtZS5mdW5jdGlvbk5hbWUpOwogICAgICAgICAgICAgICAgIHZhciByYXdTb3VyY2VDb2RlID0g
Y2FsbEZyYW1lLl9yYXdTb3VyY2VDb2RlOwotICAgICAgICAgICAgICAgIHZhciBsaXN0ZW5lcnMg
PSByYXdTb3VyY2VDb2RlLl9saXN0ZW5lcnNbV2ViSW5zcGVjdG9yLlJhd1NvdXJjZUNvZGUuRXZl
bnRzLlNvdXJjZU1hcHBpbmdVcGRhdGVkXQorICAgICAgICAgICAgICAgIHZhciBsaXN0ZW5lcnMg
PSByYXdTb3VyY2VDb2RlLl9saXN0ZW5lcnNbV2ViSW5zcGVjdG9yLlJhd1NvdXJjZUNvZGUuRXZl
bnRzLlVJU291cmNlQ29kZUxpc3RDaGFuZ2VkXTsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdCgiTGlzdGVuZXJzIGxlbmd0aDogIiArIGxpc3RlbmVycy5sZW5ndGgpOwog
ICAgICAgICAgICAgICAgIGlmIChwcmV2aW91c0xpc3RlbmVyTGVuZ3RoICE9PSB1bmRlZmluZWQg
JiYgbGlzdGVuZXJzLmxlbmd0aCAhPT0gcHJldmlvdXNMaXN0ZW5lckxlbmd0aCkKICAgICAgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkZBSUxFRDogUmF3U291cmNlQ29k
ZSBsaXN0ZW5lcnMgY291bnQgaGFzIGNoYW5nZWQhIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvcmF3LXNvdXJjZS1jb2RlLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvcmF3LXNvdXJjZS1jb2RlLmh0bWwKaW5kZXggYmFlNTExMy4uMGY1
NDEyNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Jhdy1zb3Vy
Y2UtY29kZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9yYXctc291
cmNlLWNvZGUuaHRtbApAQCAtMzIsNyArMzIsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgIGZ1
bmN0aW9uIGNyZWF0ZVNjcmlwdEZvcm1hdHRlck1vY2soKQogICAgIHsKLSAgICAgICAgdmFyIHNv
dXJjZU1hcHBpbmcgPSB7CisgICAgICAgIHZhciByYXdTb3VyY2VDb2RlID0gewogICAgICAgICAg
ICAgb3JpZ2luYWxUb0Zvcm1hdHRlZDogZnVuY3Rpb24obG9jYXRpb24pCiAgICAgICAgICAgICB7
CiAgICAgICAgICAgICAgICAgdmFyIGZvcm1hdHRlZExvY2F0aW9uID0ge307CkBAIC01MCw3ICs1
MCw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAgICAgfQogICAgICAgICB9OwogICAgICAg
ICB2YXIgZm9ybWF0dGVyID0gewotICAgICAgICAgICAgZm9ybWF0Q29udGVudDogZnVuY3Rpb24o
bWltZVR5cGUsIGNvbnRlbnQsIGNhbGxiYWNrKSB7IGZvcm1hdHRlci5fY2FsbGJhY2sgPSBjYWxs
YmFjay5iaW5kKG51bGwsICI8Zm9ybWF0dGVkPiAiICsgY29udGVudCwgc291cmNlTWFwcGluZyk7
IH0sCisgICAgICAgICAgICBmb3JtYXRDb250ZW50OiBmdW5jdGlvbihtaW1lVHlwZSwgY29udGVu
dCwgY2FsbGJhY2spIHsgZm9ybWF0dGVyLl9jYWxsYmFjayA9IGNhbGxiYWNrLmJpbmQobnVsbCwg
Ijxmb3JtYXR0ZWQ+ICIgKyBjb250ZW50LCByYXdTb3VyY2VDb2RlKTsgfSwKICAgICAgICAgICAg
IGZpbmlzaDogZnVuY3Rpb24oKSB7IGZvcm1hdHRlci5fY2FsbGJhY2soKTsgfQogICAgICAgICB9
OwogICAgICAgICByZXR1cm4gZm9ybWF0dGVyOwpAQCAtNTksMjUgKzU5LDI1IEBAIGZ1bmN0aW9u
IHRlc3QoKQogICAgIGZ1bmN0aW9uIGNyZWF0ZVJhd1NvdXJjZUNvZGUoc2NyaXB0LCByZXNvdXJj
ZSwgZm9ybWF0dGVkLCBjb21waWxlclNvdXJjZU1hcHBpbmcpCiAgICAgewogICAgICAgICB2YXIg
cmF3U291cmNlQ29kZSA9IG5ldyBXZWJJbnNwZWN0b3IuUmF3U291cmNlQ29kZSgiaWQiLCBzY3Jp
cHQsIHJlc291cmNlLCBjcmVhdGVTY3JpcHRGb3JtYXR0ZXJNb2NrKCksICEhZm9ybWF0dGVkLCBj
b21waWxlclNvdXJjZU1hcHBpbmcpOwotICAgICAgICByYXdTb3VyY2VDb2RlLmFkZEV2ZW50TGlz
dGVuZXIoV2ViSW5zcGVjdG9yLlJhd1NvdXJjZUNvZGUuRXZlbnRzLlNvdXJjZU1hcHBpbmdVcGRh
dGVkLCBkZWZhdWx0U291cmNlTWFwcGluZ1VwZGF0ZWRIYW5kbGVyKTsKKyAgICAgICAgcmF3U291
cmNlQ29kZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlLkV2ZW50
cy5VSVNvdXJjZUNvZGVMaXN0Q2hhbmdlZCwgZGVmYXVsdFVJU291cmNlQ29kZUxpc3RDaGFuZ2Vk
SGFuZGxlcik7CiAgICAgICAgIHJldHVybiByYXdTb3VyY2VDb2RlOwogICAgIH0KIAotICAgIGZ1
bmN0aW9uIHdhaXRGb3JTb3VyY2VNYXBwaW5nRXZlbnQocmF3U291cmNlQ29kZSwgY2FsbGJhY2sp
CisgICAgZnVuY3Rpb24gd2FpdEZvclVJU291cmNlQ29kZUxpc3RDaGFuZ2VkRXZlbnQocmF3U291
cmNlQ29kZSwgY2FsbGJhY2spCiAgICAgewotICAgICAgICByYXdTb3VyY2VDb2RlLnJlbW92ZUV2
ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlJhd1NvdXJjZUNvZGUuRXZlbnRzLlNvdXJjZU1hcHBp
bmdVcGRhdGVkLCBkZWZhdWx0U291cmNlTWFwcGluZ1VwZGF0ZWRIYW5kbGVyKTsKLSAgICAgICAg
cmF3U291cmNlQ29kZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2Rl
LkV2ZW50cy5Tb3VyY2VNYXBwaW5nVXBkYXRlZCwgc291cmNlTWFwcGluZ1VwZGF0ZWQpOwotICAg
ICAgICBmdW5jdGlvbiBzb3VyY2VNYXBwaW5nVXBkYXRlZChldmVudCkKKyAgICAgICAgcmF3U291
cmNlQ29kZS5yZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlLkV2
ZW50cy5VSVNvdXJjZUNvZGVMaXN0Q2hhbmdlZCwgZGVmYXVsdFVJU291cmNlQ29kZUxpc3RDaGFu
Z2VkSGFuZGxlcik7CisgICAgICAgIHJhd1NvdXJjZUNvZGUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJ
bnNwZWN0b3IuUmF3U291cmNlQ29kZS5FdmVudHMuVUlTb3VyY2VDb2RlTGlzdENoYW5nZWQsIHVp
U291cmNlQ29kZUxpc3RDaGFuZ2VkKTsKKyAgICAgICAgZnVuY3Rpb24gdWlTb3VyY2VDb2RlTGlz
dENoYW5nZWQoZXZlbnQpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJhd1NvdXJjZUNvZGUucmVt
b3ZlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuUmF3U291cmNlQ29kZS5FdmVudHMuU291cmNl
TWFwcGluZ1VwZGF0ZWQsIHNvdXJjZU1hcHBpbmdVcGRhdGVkKTsKLSAgICAgICAgICAgIHJhd1Nv
dXJjZUNvZGUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuUmF3U291cmNlQ29kZS5FdmVu
dHMuU291cmNlTWFwcGluZ1VwZGF0ZWQsIGRlZmF1bHRTb3VyY2VNYXBwaW5nVXBkYXRlZEhhbmRs
ZXIpOworICAgICAgICAgICAgcmF3U291cmNlQ29kZS5yZW1vdmVFdmVudExpc3RlbmVyKFdlYklu
c3BlY3Rvci5SYXdTb3VyY2VDb2RlLkV2ZW50cy5VSVNvdXJjZUNvZGVMaXN0Q2hhbmdlZCwgdWlT
b3VyY2VDb2RlTGlzdENoYW5nZWQpOworICAgICAgICAgICAgcmF3U291cmNlQ29kZS5hZGRFdmVu
dExpc3RlbmVyKFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlLkV2ZW50cy5VSVNvdXJjZUNvZGVM
aXN0Q2hhbmdlZCwgZGVmYXVsdFVJU291cmNlQ29kZUxpc3RDaGFuZ2VkSGFuZGxlcik7CiAgICAg
ICAgICAgICBjYWxsYmFjayhldmVudCk7CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBmdW5jdGlv
biBkZWZhdWx0U291cmNlTWFwcGluZ1VwZGF0ZWRIYW5kbGVyKCkKKyAgICBmdW5jdGlvbiBkZWZh
dWx0VUlTb3VyY2VDb2RlTGlzdENoYW5nZWRIYW5kbGVyKCkKICAgICB7Ci0gICAgICAgIHRocm93
ICJVbmV4cGVjdGVkIFNvdXJjZU1hcHBpbmdVcGRhdGVkIGV2ZW50LiI7CisgICAgICAgIHRocm93
ICJVbmV4cGVjdGVkIFVJU291cmNlQ29kZUxpc3RDaGFuZ2VkIGV2ZW50LiI7CiAgICAgfQogCiAg
ICAgZnVuY3Rpb24gY3JlYXRlUmF3TG9jYXRpb24obGluZU51bWJlciwgY29sdW1uTnVtYmVyKQpA
QCAtMTA1LDE0ICsxMDUsMTMgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICAgICB2YXIgc2Ny
aXB0ID0gY3JlYXRlU2NyaXB0TW9jaygiZm9vLmpzIiwgMCwgMCwgdHJ1ZSwgIjxzY3JpcHQgc291
cmNlPiIpOwogICAgICAgICAgICAgdmFyIHJhd1NvdXJjZUNvZGUgPSBjcmVhdGVSYXdTb3VyY2VD
b2RlKHNjcmlwdCwgbnVsbCk7CiAKLSAgICAgICAgICAgIHZhciBzb3VyY2VNYXBwaW5nID0gcmF3
U291cmNlQ29kZS5zb3VyY2VNYXBwaW5nOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3Nl
cnRFcXVhbHMoMSwgc291cmNlTWFwcGluZy51aVNvdXJjZUNvZGVMaXN0KCkubGVuZ3RoKTsKLSAg
ICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSBzb3VyY2VNYXBwaW5nLnVpU291cmNlQ29kZUxp
c3QoKVswXTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKDEsIHJhd1Nv
dXJjZUNvZGUudWlTb3VyY2VDb2RlTGlzdCgpLmxlbmd0aCk7CisgICAgICAgICAgICB2YXIgdWlT
b3VyY2VDb2RlID0gcmF3U291cmNlQ29kZS51aVNvdXJjZUNvZGVMaXN0KClbMF07CiAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscygiZm9vLmpzIiwgdWlTb3VyY2VDb2RlLnVy
bCk7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyh0cnVlLCB1aVNvdXJj
ZUNvZGUuaXNDb250ZW50U2NyaXB0KTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0
RXF1YWxzKHJhd1NvdXJjZUNvZGUsIHVpU291cmNlQ29kZS5yYXdTb3VyY2VDb2RlKTsKLSAgICAg
ICAgICAgIGNoZWNrVUlMb2NhdGlvbih1aVNvdXJjZUNvZGUsIDAsIDUsIHNvdXJjZU1hcHBpbmcu
cmF3TG9jYXRpb25Ub1VJTG9jYXRpb24oY3JlYXRlUmF3TG9jYXRpb24oMCwgNSkpKTsKLSAgICAg
ICAgICAgIGNoZWNrUmF3TG9jYXRpb24oc2NyaXB0LCAxMCwgMCwgc291cmNlTWFwcGluZy51aUxv
Y2F0aW9uVG9SYXdMb2NhdGlvbih1aVNvdXJjZUNvZGUsIDEwLCAwKSk7CisgICAgICAgICAgICBj
aGVja1VJTG9jYXRpb24odWlTb3VyY2VDb2RlLCAwLCA1LCByYXdTb3VyY2VDb2RlLnJhd0xvY2F0
aW9uVG9VSUxvY2F0aW9uKGNyZWF0ZVJhd0xvY2F0aW9uKDAsIDUpKSk7CisgICAgICAgICAgICBj
aGVja1Jhd0xvY2F0aW9uKHNjcmlwdCwgMTAsIDAsIHJhd1NvdXJjZUNvZGUudWlMb2NhdGlvblRv
UmF3TG9jYXRpb24odWlTb3VyY2VDb2RlLCAxMCwgMCkpOwogICAgICAgICAgICAgdWlTb3VyY2VD
b2RlLnJlcXVlc3RDb250ZW50KGRpZFJlcXVlc3RDb250ZW50KTsKIAogICAgICAgICAgICAgZnVu
Y3Rpb24gZGlkUmVxdWVzdENvbnRlbnQobWltZVR5cGUsIGNvbnRlbnQpCkBAIC0xMzAsMTYgKzEy
OSwxNSBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgIHZhciByZXNvdXJjZSA9IGNyZWF0
ZVBlbmRpbmdSZXNvdXJjZU1vY2soImRvY3VtZW50IiwgIjxyZXNvdXJjZSBjb250ZW50PiIpOwog
ICAgICAgICAgICAgdmFyIHJhd1NvdXJjZUNvZGUgPSBjcmVhdGVSYXdTb3VyY2VDb2RlKHNjcmlw
dDEsIHJlc291cmNlKTsKIAotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRUcnVlKCFy
YXdTb3VyY2VDb2RlLnNvdXJjZU1hcHBpbmcpOwotICAgICAgICAgICAgd2FpdEZvclNvdXJjZU1h
cHBpbmdFdmVudChyYXdTb3VyY2VDb2RlLCBtYXBwaW5nUmVhZHkpOworICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoMCwgcmF3U291cmNlQ29kZS51aVNvdXJjZUNvZGVMaXN0
KCkubGVuZ3RoKTsKKyAgICAgICAgICAgIHdhaXRGb3JVSVNvdXJjZUNvZGVMaXN0Q2hhbmdlZEV2
ZW50KHJhd1NvdXJjZUNvZGUsIHVpU291cmNlQ29kZUxpc3RDaGFuZ2VkKTsKICAgICAgICAgICAg
IHJlc291cmNlLmZpbmlzaCgpOwogCi0gICAgICAgICAgICBmdW5jdGlvbiBtYXBwaW5nUmVhZHko
ZXZlbnQpCisgICAgICAgICAgICBmdW5jdGlvbiB1aVNvdXJjZUNvZGVMaXN0Q2hhbmdlZChldmVu
dCkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydFRy
dWUoIWV2ZW50LmRhdGEub2xkU291cmNlQ29kZSk7Ci0gICAgICAgICAgICAgICAgdmFyIHNvdXJj
ZU1hcHBpbmcgPSByYXdTb3VyY2VDb2RlLnNvdXJjZU1hcHBpbmc7Ci0gICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoMSwgc291cmNlTWFwcGluZy51aVNvdXJjZUNvZGVM
aXN0KCkubGVuZ3RoKTsKLSAgICAgICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gc291cmNl
TWFwcGluZy51aVNvdXJjZUNvZGVMaXN0KClbMF07CisgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hc3NlcnRFcXVhbHMoZXZlbnQuZGF0YS5vbGRVSVNvdXJjZUNvZGVMaXN0Lmxlbmd0aCwg
MCk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoMSwgcmF3U291
cmNlQ29kZS51aVNvdXJjZUNvZGVMaXN0KCkubGVuZ3RoKTsKKyAgICAgICAgICAgICAgICB2YXIg
dWlTb3VyY2VDb2RlID0gcmF3U291cmNlQ29kZS51aVNvdXJjZUNvZGVMaXN0KClbMF07CiAgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoImluZGV4Lmh0bWwiLCB1aVNv
dXJjZUNvZGUudXJsKTsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFs
cyhmYWxzZSwgdWlTb3VyY2VDb2RlLmlzQ29udGVudFNjcmlwdCk7CiAgICAgICAgICAgICAgICAg
dWlTb3VyY2VDb2RlLnJlcXVlc3RDb250ZW50KGRpZFJlcXVlc3RDb250ZW50KTsKQEAgLTE2Myw5
ICsxNjEsOCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgIHZhciByZXNvdXJjZSA9IGNy
ZWF0ZUZpbmlzaGVkUmVzb3VyY2VNb2NrKCJkb2N1bWVudCIsICI8cmVzb3VyY2UgY29udGVudD4i
KTsKICAgICAgICAgICAgIHZhciByYXdTb3VyY2VDb2RlID0gY3JlYXRlUmF3U291cmNlQ29kZShz
Y3JpcHQxLCByZXNvdXJjZSk7CiAKLSAgICAgICAgICAgIHZhciBzb3VyY2VNYXBwaW5nID0gcmF3
U291cmNlQ29kZS5zb3VyY2VNYXBwaW5nOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3Nl
cnRFcXVhbHMoMSwgc291cmNlTWFwcGluZy51aVNvdXJjZUNvZGVMaXN0KCkubGVuZ3RoKTsKLSAg
ICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSBzb3VyY2VNYXBwaW5nLnVpU291cmNlQ29kZUxp
c3QoKVswXTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKDEsIHJhd1Nv
dXJjZUNvZGUudWlTb3VyY2VDb2RlTGlzdCgpLmxlbmd0aCk7CisgICAgICAgICAgICB2YXIgdWlT
b3VyY2VDb2RlID0gcmF3U291cmNlQ29kZS51aVNvdXJjZUNvZGVMaXN0KClbMF07CiAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscygiaW5kZXguaHRtbCIsIHVpU291cmNlQ29k
ZS51cmwpOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoZmFsc2UsIHVp
U291cmNlQ29kZS5pc0NvbnRlbnRTY3JpcHQpOwogICAgICAgICAgICAgdWlTb3VyY2VDb2RlLnJl
cXVlc3RDb250ZW50KGRpZFJlcXVlc3RDb250ZW50KTsKQEAgLTE3Nyw5ICsxNzQsOSBAQCBmdW5j
dGlvbiB0ZXN0KCkKIAogICAgICAgICAgICAgICAgIHJhd1NvdXJjZUNvZGUuYWRkU2NyaXB0KHNj
cmlwdDIpOwogICAgICAgICAgICAgICAgIHJhd1NvdXJjZUNvZGUuZm9yY2VVcGRhdGVTb3VyY2VN
YXBwaW5nKCk7Ci0gICAgICAgICAgICAgICAgY2hlY2tVSUxvY2F0aW9uKHVpU291cmNlQ29kZSwg
MSwgMjAsIHNvdXJjZU1hcHBpbmcucmF3TG9jYXRpb25Ub1VJTG9jYXRpb24oY3JlYXRlUmF3TG9j
YXRpb24oMSwgMjApKSk7Ci0gICAgICAgICAgICAgICAgY2hlY2tSYXdMb2NhdGlvbihzY3JpcHQx
LCAxLCAwLCBzb3VyY2VNYXBwaW5nLnVpTG9jYXRpb25Ub1Jhd0xvY2F0aW9uKHVpU291cmNlQ29k
ZSwgMSwgMCkpOwotICAgICAgICAgICAgICAgIGNoZWNrUmF3TG9jYXRpb24oc2NyaXB0MiwgNiwg
MCwgc291cmNlTWFwcGluZy51aUxvY2F0aW9uVG9SYXdMb2NhdGlvbih1aVNvdXJjZUNvZGUsIDYs
IDApKTsKKyAgICAgICAgICAgICAgICBjaGVja1VJTG9jYXRpb24odWlTb3VyY2VDb2RlLCAxLCAy
MCwgcmF3U291cmNlQ29kZS5yYXdMb2NhdGlvblRvVUlMb2NhdGlvbihjcmVhdGVSYXdMb2NhdGlv
bigxLCAyMCkpKTsKKyAgICAgICAgICAgICAgICBjaGVja1Jhd0xvY2F0aW9uKHNjcmlwdDEsIDEs
IDAsIHJhd1NvdXJjZUNvZGUudWlMb2NhdGlvblRvUmF3TG9jYXRpb24odWlTb3VyY2VDb2RlLCAx
LCAwKSk7CisgICAgICAgICAgICAgICAgY2hlY2tSYXdMb2NhdGlvbihzY3JpcHQyLCA2LCAwLCBy
YXdTb3VyY2VDb2RlLnVpTG9jYXRpb25Ub1Jhd0xvY2F0aW9uKHVpU291cmNlQ29kZSwgNiwgMCkp
OwogCiAgICAgICAgICAgICAgICAgbmV4dCgpOwogICAgICAgICAgICAgfQpAQCAtMTkzLDE1ICsx
OTAsMTQgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICAgICB2YXIgcmVzb3VyY2UgPSBjcmVh
dGVQZW5kaW5nUmVzb3VyY2VNb2NrKCJkb2N1bWVudCIsICI8cmVzb3VyY2UgY29udGVudD4iKTsK
ICAgICAgICAgICAgIHZhciByYXdTb3VyY2VDb2RlID0gY3JlYXRlUmF3U291cmNlQ29kZShzY3Jp
cHQxLCByZXNvdXJjZSk7CiAKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0VHJ1ZSgh
cmF3U291cmNlQ29kZS5zb3VyY2VNYXBwaW5nKTsKLSAgICAgICAgICAgIHdhaXRGb3JTb3VyY2VN
YXBwaW5nRXZlbnQocmF3U291cmNlQ29kZSwgcmVxdWVzdENvbnRlbnQpOworICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoMCwgcmF3U291cmNlQ29kZS51aVNvdXJjZUNvZGVM
aXN0KCkubGVuZ3RoKTsKKyAgICAgICAgICAgIHdhaXRGb3JVSVNvdXJjZUNvZGVMaXN0Q2hhbmdl
ZEV2ZW50KHJhd1NvdXJjZUNvZGUsIHJlcXVlc3RDb250ZW50KTsKICAgICAgICAgICAgIHJhd1Nv
dXJjZUNvZGUuZm9yY2VVcGRhdGVTb3VyY2VNYXBwaW5nKCk7CiAKICAgICAgICAgICAgIGZ1bmN0
aW9uIHJlcXVlc3RDb250ZW50KCkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICB2YXIg
c291cmNlTWFwcGluZyA9IHJhd1NvdXJjZUNvZGUuc291cmNlTWFwcGluZzsKLSAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscygxLCBzb3VyY2VNYXBwaW5nLnVpU291cmNl
Q29kZUxpc3QoKS5sZW5ndGgpOwotICAgICAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSBz
b3VyY2VNYXBwaW5nLnVpU291cmNlQ29kZUxpc3QoKVswXTsKKyAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFzc2VydEVxdWFscygxLCByYXdTb3VyY2VDb2RlLnVpU291cmNlQ29kZUxpc3Qo
KS5sZW5ndGgpOworICAgICAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSByYXdTb3VyY2VD
b2RlLnVpU291cmNlQ29kZUxpc3QoKVswXTsKICAgICAgICAgICAgICAgICB1aVNvdXJjZUNvZGUu
cmVxdWVzdENvbnRlbnQoZGlkUmVxdWVzdENvbnRlbnRPbmVTY3JpcHQpOwogICAgICAgICAgICAg
fQogCkBAIC0yMTIsMTUgKzIwOCwxNCBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgICAgICAgICAg
ICAgIHJhd1NvdXJjZUNvZGUuZm9yY2VVcGRhdGVTb3VyY2VNYXBwaW5nKCk7CiAgICAgICAgICAg
ICAgICAgcmF3U291cmNlQ29kZS5hZGRTY3JpcHQoc2NyaXB0Mik7Ci0gICAgICAgICAgICAgICAg
d2FpdEZvclNvdXJjZU1hcHBpbmdFdmVudChyYXdTb3VyY2VDb2RlLCByZXF1ZXN0Q29udGVudFR3
b1NjcmlwdHMpOworICAgICAgICAgICAgICAgIHdhaXRGb3JVSVNvdXJjZUNvZGVMaXN0Q2hhbmdl
ZEV2ZW50KHJhd1NvdXJjZUNvZGUsIHJlcXVlc3RDb250ZW50VHdvU2NyaXB0cyk7CiAgICAgICAg
ICAgICAgICAgcmF3U291cmNlQ29kZS5mb3JjZVVwZGF0ZVNvdXJjZU1hcHBpbmcoKTsKICAgICAg
ICAgICAgIH0KIAogICAgICAgICAgICAgZnVuY3Rpb24gcmVxdWVzdENvbnRlbnRUd29TY3JpcHRz
KCkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICB2YXIgc291cmNlTWFwcGluZyA9IHJh
d1NvdXJjZUNvZGUuc291cmNlTWFwcGluZzsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFzc2VydEVxdWFscygxLCBzb3VyY2VNYXBwaW5nLnVpU291cmNlQ29kZUxpc3QoKS5sZW5ndGgp
OwotICAgICAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSBzb3VyY2VNYXBwaW5nLnVpU291
cmNlQ29kZUxpc3QoKVswXTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVx
dWFscygxLCByYXdTb3VyY2VDb2RlLnVpU291cmNlQ29kZUxpc3QoKS5sZW5ndGgpOworICAgICAg
ICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSByYXdTb3VyY2VDb2RlLnVpU291cmNlQ29kZUxp
c3QoKVswXTsKICAgICAgICAgICAgICAgICB1aVNvdXJjZUNvZGUucmVxdWVzdENvbnRlbnQoZGlk
UmVxdWVzdENvbnRlbnRUd29TY3JpcHRzKTsKICAgICAgICAgICAgIH0KIApAQCAtMjMwLDE1ICsy
MjUsMTQgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
c3NlcnRFcXVhbHMoIiAgPHNjcmlwdD48c2NyaXB0IHNvdXJjZSAxPjwvIiArICJzY3JpcHQ+IDxz
Y3JpcHQ+PHNjcmlwdCBzb3VyY2UgMj48LyIgKyAic2NyaXB0PiIsIGNvbnRlbnQpOwogCiAgICAg
ICAgICAgICAgICAgcmF3U291cmNlQ29kZS5mb3JjZVVwZGF0ZVNvdXJjZU1hcHBpbmcoKTsKLSAg
ICAgICAgICAgICAgICB3YWl0Rm9yU291cmNlTWFwcGluZ0V2ZW50KHJhd1NvdXJjZUNvZGUsIHJl
cXVlc3RDb250ZW50UmVzb3VyY2UpOworICAgICAgICAgICAgICAgIHdhaXRGb3JVSVNvdXJjZUNv
ZGVMaXN0Q2hhbmdlZEV2ZW50KHJhd1NvdXJjZUNvZGUsIHJlcXVlc3RDb250ZW50UmVzb3VyY2Up
OwogICAgICAgICAgICAgICAgIHJlc291cmNlLmZpbmlzaCgpOwogICAgICAgICAgICAgfQogCiAg
ICAgICAgICAgICBmdW5jdGlvbiByZXF1ZXN0Q29udGVudFJlc291cmNlKCkKICAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICB2YXIgc291cmNlTWFwcGluZyA9IHJhd1NvdXJjZUNvZGUuc291
cmNlTWFwcGluZzsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscygx
LCBzb3VyY2VNYXBwaW5nLnVpU291cmNlQ29kZUxpc3QoKS5sZW5ndGgpOwotICAgICAgICAgICAg
ICAgIHZhciB1aVNvdXJjZUNvZGUgPSBzb3VyY2VNYXBwaW5nLnVpU291cmNlQ29kZUxpc3QoKVsw
XTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscygxLCByYXdTb3Vy
Y2VDb2RlLnVpU291cmNlQ29kZUxpc3QoKS5sZW5ndGgpOworICAgICAgICAgICAgICAgIHZhciB1
aVNvdXJjZUNvZGUgPSByYXdTb3VyY2VDb2RlLnVpU291cmNlQ29kZUxpc3QoKVswXTsKICAgICAg
ICAgICAgICAgICB1aVNvdXJjZUNvZGUucmVxdWVzdENvbnRlbnQoZGlkUmVxdWVzdENvbnRlbnRS
ZXNvdXJjZSk7CiAgICAgICAgICAgICB9CiAKQEAgLTI2MCwxMSArMjU0LDEwIEBAIGZ1bmN0aW9u
IHRlc3QoKQogICAgICAgICAgICAgdmFyIHJlc291cmNlID0gY3JlYXRlRmluaXNoZWRSZXNvdXJj
ZU1vY2soInNjcmlwdCIsICI8cmVzb3VyY2UgY29udGVudD4iKTsKICAgICAgICAgICAgIHZhciBy
YXdTb3VyY2VDb2RlID0gY3JlYXRlUmF3U291cmNlQ29kZShzY3JpcHQsIHJlc291cmNlLCBmYWxz
ZSk7CiAKLSAgICAgICAgICAgIHZhciBzb3VyY2VNYXBwaW5nID0gcmF3U291cmNlQ29kZS5zb3Vy
Y2VNYXBwaW5nOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoMSwgc291
cmNlTWFwcGluZy51aVNvdXJjZUNvZGVMaXN0KCkubGVuZ3RoKTsKLSAgICAgICAgICAgIHZhciB1
aVNvdXJjZUNvZGUgPSBzb3VyY2VNYXBwaW5nLnVpU291cmNlQ29kZUxpc3QoKVswXTsKLSAgICAg
ICAgICAgIGNoZWNrVUlMb2NhdGlvbih1aVNvdXJjZUNvZGUsIDEsIDIsIHNvdXJjZU1hcHBpbmcu
cmF3TG9jYXRpb25Ub1VJTG9jYXRpb24oY3JlYXRlUmF3TG9jYXRpb24oMSwgMikpKTsKLSAgICAg
ICAgICAgIGNoZWNrUmF3TG9jYXRpb24oc2NyaXB0LCAyLCAwLCBzb3VyY2VNYXBwaW5nLnVpTG9j
YXRpb25Ub1Jhd0xvY2F0aW9uKHVpU291cmNlQ29kZSwgMiwgMCkpOworICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoMSwgcmF3U291cmNlQ29kZS51aVNvdXJjZUNvZGVMaXN0
KCkubGVuZ3RoKTsKKyAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSByYXdTb3VyY2VDb2Rl
LnVpU291cmNlQ29kZUxpc3QoKVswXTsKKyAgICAgICAgICAgIGNoZWNrVUlMb2NhdGlvbih1aVNv
dXJjZUNvZGUsIDEsIDIsIHJhd1NvdXJjZUNvZGUucmF3TG9jYXRpb25Ub1VJTG9jYXRpb24oY3Jl
YXRlUmF3TG9jYXRpb24oMSwgMikpKTsKKyAgICAgICAgICAgIGNoZWNrUmF3TG9jYXRpb24oc2Ny
aXB0LCAyLCAwLCByYXdTb3VyY2VDb2RlLnVpTG9jYXRpb25Ub1Jhd0xvY2F0aW9uKHVpU291cmNl
Q29kZSwgMiwgMCkpOwogICAgICAgICAgICAgdWlTb3VyY2VDb2RlLnJlcXVlc3RDb250ZW50KGRp
ZFJlcXVlc3RDb250ZW50KTsKIAogICAgICAgICAgICAgZnVuY3Rpb24gZGlkUmVxdWVzdENvbnRl
bnQobWltZVR5cGUsIGNvbnRlbnQpCkBAIC0yNzMsMTcgKzI2NiwxNiBAQCBmdW5jdGlvbiB0ZXN0
KCkKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscygiPHJlc291cmNl
IGNvbnRlbnQ+IiwgY29udGVudCk7CiAKICAgICAgICAgICAgICAgICByYXdTb3VyY2VDb2RlLnNl
dEZvcm1hdHRlZCh0cnVlKTsKLSAgICAgICAgICAgICAgICB3YWl0Rm9yU291cmNlTWFwcGluZ0V2
ZW50KHJhd1NvdXJjZUNvZGUsIHJlcXVlc3RGb3JtYXR0ZWRDb250ZW50KTsKKyAgICAgICAgICAg
ICAgICB3YWl0Rm9yVUlTb3VyY2VDb2RlTGlzdENoYW5nZWRFdmVudChyYXdTb3VyY2VDb2RlLCBy
ZXF1ZXN0Rm9ybWF0dGVkQ29udGVudCk7CiAgICAgICAgICAgICAgICAgcmF3U291cmNlQ29kZS5f
Zm9ybWF0dGVyLmZpbmlzaCgpOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBmdW5jdGlv
biByZXF1ZXN0Rm9ybWF0dGVkQ29udGVudCgpCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgdmFyIHNvdXJjZU1hcHBpbmcgPSByYXdTb3VyY2VDb2RlLnNvdXJjZU1hcHBpbmc7Ci0gICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoMSwgc291cmNlTWFwcGluZy51
aVNvdXJjZUNvZGVMaXN0KCkubGVuZ3RoKTsKLSAgICAgICAgICAgICAgICB2YXIgdWlTb3VyY2VD
b2RlID0gc291cmNlTWFwcGluZy51aVNvdXJjZUNvZGVMaXN0KClbMF07Ci0gICAgICAgICAgICAg
ICAgY2hlY2tVSUxvY2F0aW9uKHVpU291cmNlQ29kZSwgMiwgNCwgc291cmNlTWFwcGluZy5yYXdM
b2NhdGlvblRvVUlMb2NhdGlvbihjcmVhdGVSYXdMb2NhdGlvbigxLCAyKSkpOwotICAgICAgICAg
ICAgICAgIGNoZWNrUmF3TG9jYXRpb24oc2NyaXB0LCAxLCAwLCBzb3VyY2VNYXBwaW5nLnVpTG9j
YXRpb25Ub1Jhd0xvY2F0aW9uKHVpU291cmNlQ29kZSwgMiwgMCkpOworICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKDEsIHJhd1NvdXJjZUNvZGUudWlTb3VyY2VDb2Rl
TGlzdCgpLmxlbmd0aCk7CisgICAgICAgICAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IHJhd1Nv
dXJjZUNvZGUudWlTb3VyY2VDb2RlTGlzdCgpWzBdOworICAgICAgICAgICAgICAgIGNoZWNrVUlM
b2NhdGlvbih1aVNvdXJjZUNvZGUsIDIsIDQsIHJhd1NvdXJjZUNvZGUucmF3TG9jYXRpb25Ub1VJ
TG9jYXRpb24oY3JlYXRlUmF3TG9jYXRpb24oMSwgMikpKTsKKyAgICAgICAgICAgICAgICBjaGVj
a1Jhd0xvY2F0aW9uKHNjcmlwdCwgMSwgMCwgcmF3U291cmNlQ29kZS51aUxvY2F0aW9uVG9SYXdM
b2NhdGlvbih1aVNvdXJjZUNvZGUsIDIsIDApKTsKICAgICAgICAgICAgICAgICB1aVNvdXJjZUNv
ZGUucmVxdWVzdENvbnRlbnQoZGlkUmVxdWVzdEZvcm1hdHRlZENvbnRlbnQpOwogICAgICAgICAg
ICAgfQogCkBAIC0yOTIsMTcgKzI4NCwxNiBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyhtaW1lVHlwZSwgInRleHQvamF2YXNjcmlw
dCIpOwogICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKCI8Zm9ybWF0
dGVkPiA8cmVzb3VyY2UgY29udGVudD4iLCBjb250ZW50KTsKIAotICAgICAgICAgICAgICAgIHdh
aXRGb3JTb3VyY2VNYXBwaW5nRXZlbnQocmF3U291cmNlQ29kZSwgcmVxdWVzdE5vdEZvcm1hdHRl
ZENvbnRlbnQpOworICAgICAgICAgICAgICAgIHdhaXRGb3JVSVNvdXJjZUNvZGVMaXN0Q2hhbmdl
ZEV2ZW50KHJhd1NvdXJjZUNvZGUsIHJlcXVlc3ROb3RGb3JtYXR0ZWRDb250ZW50KTsKICAgICAg
ICAgICAgICAgICByYXdTb3VyY2VDb2RlLnNldEZvcm1hdHRlZChmYWxzZSk7CiAgICAgICAgICAg
ICB9CiAKICAgICAgICAgICAgIGZ1bmN0aW9uIHJlcXVlc3ROb3RGb3JtYXR0ZWRDb250ZW50KCkK
ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICB2YXIgc291cmNlTWFwcGluZyA9IHJhd1Nv
dXJjZUNvZGUuc291cmNlTWFwcGluZzsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFz
c2VydEVxdWFscygxLCBzb3VyY2VNYXBwaW5nLnVpU291cmNlQ29kZUxpc3QoKS5sZW5ndGgpOwot
ICAgICAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSBzb3VyY2VNYXBwaW5nLnVpU291cmNl
Q29kZUxpc3QoKVswXTsKLSAgICAgICAgICAgICAgICBjaGVja1VJTG9jYXRpb24odWlTb3VyY2VD
b2RlLCAxLCAyLCBzb3VyY2VNYXBwaW5nLnJhd0xvY2F0aW9uVG9VSUxvY2F0aW9uKGNyZWF0ZVJh
d0xvY2F0aW9uKDEsIDIpKSk7Ci0gICAgICAgICAgICAgICAgY2hlY2tSYXdMb2NhdGlvbihzY3Jp
cHQsIDIsIDAsIHNvdXJjZU1hcHBpbmcudWlMb2NhdGlvblRvUmF3TG9jYXRpb24odWlTb3VyY2VD
b2RlLCAyLCAwKSk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMo
MSwgcmF3U291cmNlQ29kZS51aVNvdXJjZUNvZGVMaXN0KCkubGVuZ3RoKTsKKyAgICAgICAgICAg
ICAgICB2YXIgdWlTb3VyY2VDb2RlID0gcmF3U291cmNlQ29kZS51aVNvdXJjZUNvZGVMaXN0KClb
MF07CisgICAgICAgICAgICAgICAgY2hlY2tVSUxvY2F0aW9uKHVpU291cmNlQ29kZSwgMSwgMiwg
cmF3U291cmNlQ29kZS5yYXdMb2NhdGlvblRvVUlMb2NhdGlvbihjcmVhdGVSYXdMb2NhdGlvbigx
LCAyKSkpOworICAgICAgICAgICAgICAgIGNoZWNrUmF3TG9jYXRpb24oc2NyaXB0LCAyLCAwLCBy
YXdTb3VyY2VDb2RlLnVpTG9jYXRpb25Ub1Jhd0xvY2F0aW9uKHVpU291cmNlQ29kZSwgMiwgMCkp
OwogICAgICAgICAgICAgICAgIHVpU291cmNlQ29kZS5yZXF1ZXN0Q29udGVudChkaWRSZXF1ZXN0
Tm90Rm9ybWF0dGVkQ29udGVudCk7CiAgICAgICAgICAgICB9CiAKQEAgLTMyMSwxOCArMzEyLDE3
IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAgICAgdmFyIHJlc291cmNlID0gY3JlYXRlUGVu
ZGluZ1Jlc291cmNlTW9jaygic2NyaXB0IiwgIjxyZXNvdXJjZSBjb250ZW50PiIpOwogICAgICAg
ICAgICAgdmFyIHJhd1NvdXJjZUNvZGUgPSBjcmVhdGVSYXdTb3VyY2VDb2RlKHNjcmlwdCwgcmVz
b3VyY2UsIHRydWUpOwogCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydFRydWUoIXJh
d1NvdXJjZUNvZGUuc291cmNlTWFwcGluZyk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFz
c2VydEVxdWFscygwLCByYXdTb3VyY2VDb2RlLnVpU291cmNlQ29kZUxpc3QoKS5sZW5ndGgpOwog
ICAgICAgICAgICAgcmVzb3VyY2UuZmluaXNoKCk7Ci0gICAgICAgICAgICB3YWl0Rm9yU291cmNl
TWFwcGluZ0V2ZW50KHJhd1NvdXJjZUNvZGUsIGNoZWNrTWFwcGluZyk7CisgICAgICAgICAgICB3
YWl0Rm9yVUlTb3VyY2VDb2RlTGlzdENoYW5nZWRFdmVudChyYXdTb3VyY2VDb2RlLCBjaGVja01h
cHBpbmcpOwogICAgICAgICAgICAgcmF3U291cmNlQ29kZS5fZm9ybWF0dGVyLmZpbmlzaCgpOwog
CiAgICAgICAgICAgICBmdW5jdGlvbiBjaGVja01hcHBpbmcoKQogICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgIHZhciBzb3VyY2VNYXBwaW5nID0gcmF3U291cmNlQ29kZS5zb3VyY2VNYXBw
aW5nOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKDEsIHNvdXJj
ZU1hcHBpbmcudWlTb3VyY2VDb2RlTGlzdCgpLmxlbmd0aCk7Ci0gICAgICAgICAgICAgICAgdmFy
IHVpU291cmNlQ29kZSA9IHNvdXJjZU1hcHBpbmcudWlTb3VyY2VDb2RlTGlzdCgpWzBdOwotICAg
ICAgICAgICAgICAgIGNoZWNrVUlMb2NhdGlvbih1aVNvdXJjZUNvZGUsIDIsIDQsIHNvdXJjZU1h
cHBpbmcucmF3TG9jYXRpb25Ub1VJTG9jYXRpb24oY3JlYXRlUmF3TG9jYXRpb24oMSwgMikpKTsK
LSAgICAgICAgICAgICAgICBjaGVja1Jhd0xvY2F0aW9uKHNjcmlwdCwgMSwgMCwgc291cmNlTWFw
cGluZy51aUxvY2F0aW9uVG9SYXdMb2NhdGlvbih1aVNvdXJjZUNvZGUsIDIsIDApKTsKKyAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscygxLCByYXdTb3VyY2VDb2RlLnVp
U291cmNlQ29kZUxpc3QoKS5sZW5ndGgpOworICAgICAgICAgICAgICAgIHZhciB1aVNvdXJjZUNv
ZGUgPSByYXdTb3VyY2VDb2RlLnVpU291cmNlQ29kZUxpc3QoKVswXTsKKyAgICAgICAgICAgICAg
ICBjaGVja1VJTG9jYXRpb24odWlTb3VyY2VDb2RlLCAyLCA0LCByYXdTb3VyY2VDb2RlLnJhd0xv
Y2F0aW9uVG9VSUxvY2F0aW9uKGNyZWF0ZVJhd0xvY2F0aW9uKDEsIDIpKSk7CisgICAgICAgICAg
ICAgICAgY2hlY2tSYXdMb2NhdGlvbihzY3JpcHQsIDEsIDAsIHJhd1NvdXJjZUNvZGUudWlMb2Nh
dGlvblRvUmF3TG9jYXRpb24odWlTb3VyY2VDb2RlLCAyLCAwKSk7CiAgICAgICAgICAgICAgICAg
bmV4dCgpOwogICAgICAgICAgICAgfQogICAgICAgICB9LApAQCAtMzYyLDE1ICszNTIsMTQgQEAg
ZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICAgICB2YXIgcmF3U291cmNlQ29kZSA9IGNyZWF0ZVJh
d1NvdXJjZUNvZGUoc2NyaXB0LCByZXNvdXJjZSwgZmFsc2UsIGNvbXBpbGVyU291cmNlTWFwcGlu
Z01vY2spOwogICAgICAgICAgICAgdmFyIHVpU291cmNlQ29kZUxpc3Q7CiAKLSAgICAgICAgICAg
IHZhciBzb3VyY2VNYXBwaW5nID0gcmF3U291cmNlQ29kZS5zb3VyY2VNYXBwaW5nOwotICAgICAg
ICAgICAgdWlTb3VyY2VDb2RlTGlzdCA9IHNvdXJjZU1hcHBpbmcudWlTb3VyY2VDb2RlTGlzdCgp
OworICAgICAgICAgICAgdWlTb3VyY2VDb2RlTGlzdCA9IHJhd1NvdXJjZUNvZGUudWlTb3VyY2VD
b2RlTGlzdCgpOwogICAgICAgICAgICAgdmFyIHVpU291cmNlQ29kZUJ5VVJMID0ge307CiAgICAg
ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHVpU291cmNlQ29kZUxpc3QubGVuZ3RoOyArK2kp
CiAgICAgICAgICAgICAgICAgdWlTb3VyY2VDb2RlQnlVUkxbdWlTb3VyY2VDb2RlTGlzdFtpXS51
cmxdID0gdWlTb3VyY2VDb2RlTGlzdFtpXTsKLSAgICAgICAgICAgIGNoZWNrVUlMb2NhdGlvbih1
aVNvdXJjZUNvZGVCeVVSTFsic291cmNlMS5qcyJdLCAyLCA0LCBzb3VyY2VNYXBwaW5nLnJhd0xv
Y2F0aW9uVG9VSUxvY2F0aW9uKGNyZWF0ZVJhd0xvY2F0aW9uKDEsIDIpKSk7Ci0gICAgICAgICAg
ICBjaGVja1VJTG9jYXRpb24odWlTb3VyY2VDb2RlQnlVUkxbInNvdXJjZTIuanMiXSwgMTAsIDQw
LCBzb3VyY2VNYXBwaW5nLnJhd0xvY2F0aW9uVG9VSUxvY2F0aW9uKGNyZWF0ZVJhd0xvY2F0aW9u
KDE1LCAyMCkpKTsKLSAgICAgICAgICAgIGNoZWNrUmF3TG9jYXRpb24oc2NyaXB0LCAxLCAwLCBz
b3VyY2VNYXBwaW5nLnVpTG9jYXRpb25Ub1Jhd0xvY2F0aW9uKHVpU291cmNlQ29kZUJ5VVJMWyJz
b3VyY2UxLmpzIl0sIDIsIDApKTsKLSAgICAgICAgICAgIGNoZWNrUmF3TG9jYXRpb24oc2NyaXB0
LCAxNSwgMCwgc291cmNlTWFwcGluZy51aUxvY2F0aW9uVG9SYXdMb2NhdGlvbih1aVNvdXJjZUNv
ZGVCeVVSTFsic291cmNlMi5qcyJdLCAxMCwgMCkpOworICAgICAgICAgICAgY2hlY2tVSUxvY2F0
aW9uKHVpU291cmNlQ29kZUJ5VVJMWyJzb3VyY2UxLmpzIl0sIDIsIDQsIHJhd1NvdXJjZUNvZGUu
cmF3TG9jYXRpb25Ub1VJTG9jYXRpb24oY3JlYXRlUmF3TG9jYXRpb24oMSwgMikpKTsKKyAgICAg
ICAgICAgIGNoZWNrVUlMb2NhdGlvbih1aVNvdXJjZUNvZGVCeVVSTFsic291cmNlMi5qcyJdLCAx
MCwgNDAsIHJhd1NvdXJjZUNvZGUucmF3TG9jYXRpb25Ub1VJTG9jYXRpb24oY3JlYXRlUmF3TG9j
YXRpb24oMTUsIDIwKSkpOworICAgICAgICAgICAgY2hlY2tSYXdMb2NhdGlvbihzY3JpcHQsIDEs
IDAsIHJhd1NvdXJjZUNvZGUudWlMb2NhdGlvblRvUmF3TG9jYXRpb24odWlTb3VyY2VDb2RlQnlV
UkxbInNvdXJjZTEuanMiXSwgMiwgMCkpOworICAgICAgICAgICAgY2hlY2tSYXdMb2NhdGlvbihz
Y3JpcHQsIDE1LCAwLCByYXdTb3VyY2VDb2RlLnVpTG9jYXRpb25Ub1Jhd0xvY2F0aW9uKHVpU291
cmNlQ29kZUJ5VVJMWyJzb3VyY2UyLmpzIl0sIDEwLCAwKSk7CiAKICAgICAgICAgICAgIHVpU291
cmNlQ29kZUxpc3RbMF0ucmVxdWVzdENvbnRlbnQoZGlkUmVxdWVzdENvbnRlbnQxKTsKIApAQCAt
Mzk2LDggKzM4NSw4IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAgICAgdmFyIHNjcmlwdCA9
IGNyZWF0ZVNjcmlwdE1vY2soImNvbXBpbGVkLmpzIiwgMCwgMCwgdHJ1ZSwgIjxzY3JpcHQgc291
cmNlPiIpOwogICAgICAgICAgICAgdmFyIHJhd1NvdXJjZUNvZGUgPSBjcmVhdGVSYXdTb3VyY2VD
b2RlKHNjcmlwdCwgbnVsbCwgZmFsc2UsIGNvbXBpbGVyU291cmNlTWFwcGluZ01vY2spOwogCi0g
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscygxLCByYXdTb3VyY2VDb2RlLnNv
dXJjZU1hcHBpbmcudWlTb3VyY2VDb2RlTGlzdCgpLmxlbmd0aCk7Ci0gICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFzc2VydEVxdWFscygiY29tcGlsZWQuanMiLCByYXdTb3VyY2VDb2RlLnNvdXJj
ZU1hcHBpbmcudWlTb3VyY2VDb2RlTGlzdCgpWzBdLnVybCk7CisgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFzc2VydEVxdWFscygxLCByYXdTb3VyY2VDb2RlLnVpU291cmNlQ29kZUxpc3QoKS5s
ZW5ndGgpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoImNvbXBpbGVk
LmpzIiwgcmF3U291cmNlQ29kZS51aVNvdXJjZUNvZGVMaXN0KClbMF0udXJsKTsKICAgICAgICAg
ICAgIG5leHQoKTsKICAgICAgICAgfQogICAgIF0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGQ5MzY4NzkuLmQz
M2M1YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OSBAQAorMjAxMi0wMi0yMSAgUGF2ZWwgUG9k
aXZpbG92ICA8cG9kaXZpbG92QGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9y
OiBnZXQgcmlkIG9mIFJhd1NvdXJjZUNvZGUuc291cmNlTWFwcGluZyBnZXR0ZXIuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTQ2MQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250
LWVuZC9CcmVha3BvaW50TWFuYWdlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5CcmVha3Bv
aW50TWFuYWdlci5wcm90b3R5cGUudWlTb3VyY2VDb2RlQWRkZWQpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkJyZWFrcG9pbnRNYW5hZ2VyLnByb3RvdHlwZS5zZXRCcmVha3BvaW50KToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5CcmVha3BvaW50TWFuYWdlci5wcm90b3R5cGUuX21hdGVyaWFsaXpl
QnJlYWtwb2ludCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQnJlYWtwb2ludE1hbmFnZXIucHJv
dG90eXBlLl9icmVha3BvaW50RGVidWdnZXJMb2NhdGlvbkNoYW5nZWQpOgorICAgICAgICAqIGlu
c3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZU1lc3NhZ2UuanM6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuQ29uc29sZU1lc3NhZ2VJbXBsLnByb3RvdHlwZS5nZXQgbG9jYXRpb24pOgorICAgICAgICAq
IGluc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5qczoKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5yYXdM
b2NhdGlvblRvVUlMb2NhdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVz
ZW50YXRpb25Nb2RlbC5wcm90b3R5cGUudWlTb3VyY2VDb2Rlcyk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUuX2hhbmRsZVVJU291cmNl
Q29kZUxpc3RDaGFuZ2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRh
dGlvbk1vZGVsLnByb3RvdHlwZS5fdWlTb3VyY2VDb2RlTGlzdENoYW5nZWQpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlLl9yZXN0b3Jl
QnJlYWtwb2ludHMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9u
TW9kZWwucHJvdG90eXBlLl9yZXN0b3JlQ29uc29sZU1lc3NhZ2VzKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5fcmVzdG9yZUV4ZWN1
dGlvbkxpbmUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9k
ZWwucHJvdG90eXBlLl9jb25zb2xlTWVzc2FnZUFkZGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5jb250aW51ZVRvTGluZSk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUu
c2V0IHNlbGVjdGVkQ2FsbEZyYW1lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclBy
ZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5fZGVidWdnZXJSZXNldCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuUHJlc2VudGF0aW9uQ2FsbEZyYW1lLnByb3RvdHlwZS51aUxvY2F0aW9uKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLkNhbGxGcmFtZVBs
YWNhcmQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwu
Q2FsbEZyYW1lUGxhY2FyZC5wcm90b3R5cGUuZGlzY2FyZCk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5DYWxsRnJhbWVQbGFjYXJkLnByb3RvdHlwZS5f
dXBkYXRlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVs
UmVzb3VyY2VCaW5kaW5nLnByb3RvdHlwZS5jYW5TZXRDb250ZW50KToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsUmVzb3VyY2VCaW5kaW5nLnByb3RvdHlw
ZS5zZXRDb250ZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlv
bk1vZGVsLkRlZmF1bHRMaW5raWZpZXJGb3JtYXR0ZXIucHJvdG90eXBlLmZvcm1hdFJhd1NvdXJj
ZUNvZGVBbmNob3IpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9u
TW9kZWwuTGlua2lmaWVyLnByb3RvdHlwZS5saW5raWZ5UmF3U291cmNlQ29kZSk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5MaW5raWZpZXIucHJvdG90
eXBlLnJlc2V0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1v
ZGVsLkxpbmtpZmllci5wcm90b3R5cGUuX3VwZGF0ZUFuY2hvcik6CisgICAgICAgICogaW5zcGVj
dG9yL2Zyb250LWVuZC9SYXdTb3VyY2VDb2RlLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJh
d1NvdXJjZUNvZGUucHJvdG90eXBlLnJhd0xvY2F0aW9uVG9VSUxvY2F0aW9uKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlLnByb3RvdHlwZS51aUxvY2F0aW9uVG9SYXdMb2Nh
dGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmF3U291cmNlQ29kZS5wcm90b3R5cGUudWlT
b3VyY2VDb2RlTGlzdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmF3U291cmNlQ29kZS5wcm90
b3R5cGUuX3NhdmVTb3VyY2VNYXBwaW5nKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L1NjcmlwdHNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJv
dG90eXBlLl91cGRhdGVDYWxsRnJhbWUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQv
U2NyaXB0c1NlYXJjaFNjb3BlLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNTZWFy
Y2hSZXN1bHRzUGFuZS5wcm90b3R5cGUuY3JlYXRlQW5jaG9yKToKKwogMjAxMi0wMi0xNiAgU2lt
b24gSGF1c21hbm4gIDxzaW1vbi5oYXVzbWFubkBub2tpYS5jb20+CiAKICAgICAgICAgW1F0XSBN
b3ZlIGV2ZW50IGNvbnZlcnNpb24gZnVuY3Rpb25zIGZyb20gV2ViQ29yZSB0byBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQnJlYWtwb2ludE1h
bmFnZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnRN
YW5hZ2VyLmpzCmluZGV4IGVlMTM5N2MuLjg3MTkxZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQnJlYWtwb2ludE1hbmFnZXIuanMKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9CcmVha3BvaW50TWFuYWdlci5qcwpAQCAtNzEs
NyArNzEsNyBAQCBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludE1hbmFnZXIucHJvdG90eXBlID0gewog
ICAgICAgICBmb3IgKHZhciBsaW5lTnVtYmVyIGluIGJyZWFrcG9pbnRzKSB7CiAgICAgICAgICAg
ICB2YXIgYnJlYWtwb2ludCA9IGJyZWFrcG9pbnRzW2xpbmVOdW1iZXJdOwogICAgICAgICAgICAg
YnJlYWtwb2ludC51aVNvdXJjZUNvZGUgPSB1aVNvdXJjZUNvZGU7Ci0gICAgICAgICAgICB0aGlz
Ll9tYXRlcmlhbGl6ZUJyZWFrcG9pbnQoYnJlYWtwb2ludCwgdWlTb3VyY2VDb2RlLnJhd1NvdXJj
ZUNvZGUuc291cmNlTWFwcGluZywgdWlTb3VyY2VDb2RlKTsKKyAgICAgICAgICAgIHRoaXMuX21h
dGVyaWFsaXplQnJlYWtwb2ludChicmVha3BvaW50LCB1aVNvdXJjZUNvZGUucmF3U291cmNlQ29k
ZSwgdWlTb3VyY2VDb2RlKTsKICAgICAgICAgICAgIGlmIChicmVha3BvaW50Ll9kZWJ1Z2dlckxv
Y2F0aW9uKQogICAgICAgICAgICAgICAgIHRoaXMuX2JyZWFrcG9pbnREZWJ1Z2dlckxvY2F0aW9u
Q2hhbmdlZChicmVha3BvaW50KTsKICAgICAgICAgfQpAQCAtMTAwLDcgKzEwMCw3IEBAIFdlYklu
c3BlY3Rvci5CcmVha3BvaW50TWFuYWdlci5wcm90b3R5cGUgPSB7CiAgICAgICAgIHZhciBicmVh
a3BvaW50ID0gbmV3IFdlYkluc3BlY3Rvci5CcmVha3BvaW50KHVpU291cmNlQ29kZS5pZCwgbGlu
ZU51bWJlciwgY29uZGl0aW9uLCBlbmFibGVkLCBwZXJzaXN0ZW50KTsKICAgICAgICAgYnJlYWtw
b2ludC51aVNvdXJjZUNvZGUgPSB1aVNvdXJjZUNvZGU7CiAgICAgICAgIHRoaXMuX2FkZEJyZWFr
cG9pbnRUb1VJKGJyZWFrcG9pbnQpOwotICAgICAgICB0aGlzLl9tYXRlcmlhbGl6ZUJyZWFrcG9p
bnQoYnJlYWtwb2ludCwgdWlTb3VyY2VDb2RlLnJhd1NvdXJjZUNvZGUuc291cmNlTWFwcGluZywg
dWlTb3VyY2VDb2RlKTsKKyAgICAgICAgdGhpcy5fbWF0ZXJpYWxpemVCcmVha3BvaW50KGJyZWFr
cG9pbnQsIHVpU291cmNlQ29kZS5yYXdTb3VyY2VDb2RlLCB1aVNvdXJjZUNvZGUpOwogICAgIH0s
CiAKICAgICAvKioKQEAgLTEzMSwxNiArMTMxLDE2IEBAIFdlYkluc3BlY3Rvci5CcmVha3BvaW50
TWFuYWdlci5wcm90b3R5cGUgPSB7CiAKICAgICAvKioKICAgICAgKiBAcGFyYW0ge1dlYkluc3Bl
Y3Rvci5CcmVha3BvaW50fSBicmVha3BvaW50Ci0gICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3Iu
UmF3U291cmNlQ29kZS5Tb3VyY2VNYXBwaW5nfSBzb3VyY2VNYXBwaW5nCisgICAgICogQHBhcmFt
IHtXZWJJbnNwZWN0b3IuUmF3U291cmNlQ29kZX0gcmF3U291cmNlQ29kZQogICAgICAqIEBwYXJh
bSB7V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZX0gdWlTb3VyY2VDb2RlCiAgICAgICovCi0gICAg
X21hdGVyaWFsaXplQnJlYWtwb2ludDogZnVuY3Rpb24oYnJlYWtwb2ludCwgc291cmNlTWFwcGlu
ZywgdWlTb3VyY2VDb2RlKQorICAgIF9tYXRlcmlhbGl6ZUJyZWFrcG9pbnQ6IGZ1bmN0aW9uKGJy
ZWFrcG9pbnQsIHJhd1NvdXJjZUNvZGUsIHVpU291cmNlQ29kZSkKICAgICB7CiAgICAgICAgIGlm
ICghYnJlYWtwb2ludC5lbmFibGVkIHx8IGJyZWFrcG9pbnQuX21hdGVyaWFsaXplZCkKICAgICAg
ICAgICAgIHJldHVybjsKIAogICAgICAgICBicmVha3BvaW50Ll9tYXRlcmlhbGl6ZWQgPSB0cnVl
OwotICAgICAgICB2YXIgcmF3TG9jYXRpb24gPSBzb3VyY2VNYXBwaW5nLnVpTG9jYXRpb25Ub1Jh
d0xvY2F0aW9uKHVpU291cmNlQ29kZSwgYnJlYWtwb2ludC5saW5lTnVtYmVyLCAwKTsKKyAgICAg
ICAgdmFyIHJhd0xvY2F0aW9uID0gcmF3U291cmNlQ29kZS51aUxvY2F0aW9uVG9SYXdMb2NhdGlv
bih1aVNvdXJjZUNvZGUsIGJyZWFrcG9pbnQubGluZU51bWJlciwgMCk7CiAgICAgICAgIHRoaXMu
X3NldEJyZWFrcG9pbnRJbkRlYnVnZ2VyKGJyZWFrcG9pbnQsIHJhd0xvY2F0aW9uKTsKICAgICB9
LAogCkBAIC0xNTEsNyArMTUxLDcgQEAgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRNYW5hZ2VyLnBy
b3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAgIGlmICghYnJlYWtwb2ludC51aVNvdXJjZUNvZGUp
CiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIHZhciB1aUxvY2F0aW9uID0gYnJlYWtwb2lu
dC51aVNvdXJjZUNvZGUucmF3U291cmNlQ29kZS5zb3VyY2VNYXBwaW5nLnJhd0xvY2F0aW9uVG9V
SUxvY2F0aW9uKGJyZWFrcG9pbnQuX2RlYnVnZ2VyTG9jYXRpb24pOworICAgICAgICB2YXIgdWlM
b2NhdGlvbiA9IGJyZWFrcG9pbnQudWlTb3VyY2VDb2RlLnJhd1NvdXJjZUNvZGUucmF3TG9jYXRp
b25Ub1VJTG9jYXRpb24oYnJlYWtwb2ludC5fZGVidWdnZXJMb2NhdGlvbik7CiAgICAgICAgIGlm
ICh1aUxvY2F0aW9uLmxpbmVOdW1iZXIgPT09IGJyZWFrcG9pbnQubGluZU51bWJlcikKICAgICAg
ICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9Db25zb2xlTWVzc2FnZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvQ29uc29sZU1lc3NhZ2UuanMKaW5kZXggODJlZmNkZS4uYzAwNWI1MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlTWVzc2FnZS5qcwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVNZXNzYWdlLmpz
CkBAIC01NzAsNiArNTcwLDE0IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZUltcGwucHJv
dG90eXBlID0gewogICAgICAgICByZXR1cm4gdGhpcy5fbWVzc2FnZVRleHQ7CiAgICAgfSwKIAor
ICAgIGdldCBsb2NhdGlvbigpCisgICAgeworICAgICAgICAvLyBGSVhNRSg2MjcyNSk6IHN0YWNr
IHRyYWNlIGxpbmUvY29sdW1uIG51bWJlcnMgYXJlIG9uZS1iYXNlZC4KKyAgICAgICAgdmFyIGxp
bmVOdW1iZXIgPSB0aGlzLnN0YWNrVHJhY2UgPyB0aGlzLnN0YWNrVHJhY2VbMF0ubGluZU51bWJl
ciAtIDEgOiB0aGlzLmxpbmUgLSAxOworICAgICAgICB2YXIgY29sdW1uTnVtYmVyID0gdGhpcy5z
dGFja1RyYWNlID8gdGhpcy5zdGFja1RyYWNlWzBdLmNvbHVtbk51bWJlciAtIDEgOiAwOworICAg
ICAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLkxvY2F0aW9uKGxpbmVO
dW1iZXIsIGNvbHVtbk51bWJlcik7CisgICAgfSwKKwogICAgIGlzRXF1YWw6IGZ1bmN0aW9uKG1z
ZykKICAgICB7CiAgICAgICAgIGlmICghbXNnKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLmpz
CmluZGV4IDI3YjA0NTcuLmI2NDFlMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5qcworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuanMK
QEAgLTk3LDkgKzk3LDcgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwu
cHJvdG90eXBlID0gewogICAgIHJhd0xvY2F0aW9uVG9VSUxvY2F0aW9uOiBmdW5jdGlvbihyYXdM
b2NhdGlvbikKICAgICB7CiAgICAgICAgIHZhciByYXdTb3VyY2VDb2RlID0gdGhpcy5fcmF3U291
cmNlQ29kZUZvclNjcmlwdElkW3Jhd0xvY2F0aW9uLnNjcmlwdElkXTsKLSAgICAgICAgaWYgKCFy
YXdTb3VyY2VDb2RlLnNvdXJjZU1hcHBpbmcpCi0gICAgICAgICAgICByZXR1cm4gbnVsbDsKLSAg
ICAgICAgcmV0dXJuIHJhd1NvdXJjZUNvZGUuc291cmNlTWFwcGluZy5yYXdMb2NhdGlvblRvVUlM
b2NhdGlvbihyYXdMb2NhdGlvbik7CisgICAgICAgIHJldHVybiByYXdTb3VyY2VDb2RlLnJhd0xv
Y2F0aW9uVG9VSUxvY2F0aW9uKHJhd0xvY2F0aW9uKTsKICAgICB9LAogCiAgICAgLyoqCkBAIC0x
NTEsOSArMTQ5LDkgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJv
dG90eXBlID0gewogICAgICAgICBpZiAoaXNJbmxpbmVTY3JpcHQpCiAgICAgICAgICAgICB0aGlz
Ll9yYXdTb3VyY2VDb2RlRm9yRG9jdW1lbnRVUkxbc2NyaXB0LnNvdXJjZVVSTF0gPSByYXdTb3Vy
Y2VDb2RlOwogCi0gICAgICAgIGlmIChyYXdTb3VyY2VDb2RlLnNvdXJjZU1hcHBpbmcpCi0gICAg
ICAgICAgICB0aGlzLl91cGRhdGVTb3VyY2VNYXBwaW5nKHJhd1NvdXJjZUNvZGUsIG51bGwpOwot
ICAgICAgICByYXdTb3VyY2VDb2RlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlJhd1Nv
dXJjZUNvZGUuRXZlbnRzLlNvdXJjZU1hcHBpbmdVcGRhdGVkLCB0aGlzLl9zb3VyY2VNYXBwaW5n
VXBkYXRlZCwgdGhpcyk7CisgICAgICAgIGlmIChyYXdTb3VyY2VDb2RlLnVpU291cmNlQ29kZUxp
c3QoKS5sZW5ndGgpCisgICAgICAgICAgICB0aGlzLl91aVNvdXJjZUNvZGVMaXN0Q2hhbmdlZChy
YXdTb3VyY2VDb2RlLCBbXSk7CisgICAgICAgIHJhd1NvdXJjZUNvZGUuYWRkRXZlbnRMaXN0ZW5l
cihXZWJJbnNwZWN0b3IuUmF3U291cmNlQ29kZS5FdmVudHMuVUlTb3VyY2VDb2RlTGlzdENoYW5n
ZWQsIHRoaXMuX2hhbmRsZVVJU291cmNlQ29kZUxpc3RDaGFuZ2VkLCB0aGlzKTsKICAgICB9LAog
CiAgICAgLyoqCkBAIC0xNjcsMjUgKzE2NSwxMyBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVz
ZW50YXRpb25Nb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgfSwKIAogICAgIC8qKgotICAgICAqIEBw
YXJhbSB7V2ViSW5zcGVjdG9yLkV2ZW50fSBldmVudAotICAgICAqLwotICAgIF9zb3VyY2VNYXBw
aW5nVXBkYXRlZDogZnVuY3Rpb24oZXZlbnQpCi0gICAgewotICAgICAgICB2YXIgcmF3U291cmNl
Q29kZSA9IC8qKiBAdHlwZSB7V2ViSW5zcGVjdG9yLlJhd1NvdXJjZUNvZGV9ICovIGV2ZW50LnRh
cmdldDsKLSAgICAgICAgdmFyIG9sZFNvdXJjZU1hcHBpbmcgPSAvKiogQHR5cGUge1dlYkluc3Bl
Y3Rvci5SYXdTb3VyY2VDb2RlLlNvdXJjZU1hcHBpbmd9ICovIGV2ZW50LmRhdGFbIm9sZFNvdXJj
ZU1hcHBpbmciXTsKLSAgICAgICAgdGhpcy5fdXBkYXRlU291cmNlTWFwcGluZyhyYXdTb3VyY2VD
b2RlLCBvbGRTb3VyY2VNYXBwaW5nKTsKLSAgICB9LAotCi0gICAgLyoqCiAgICAgICogQHJldHVy
biB7QXJyYXkuPFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGU+fQogICAgICAqLwogICAgIHVpU291
cmNlQ29kZXM6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIHZhciByZXN1bHQgPSBbXTsKICAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9yYXdTb3VyY2VDb2Rlcy5sZW5ndGg7ICsr
aSkgewotICAgICAgICAgICAgaWYgKCF0aGlzLl9yYXdTb3VyY2VDb2Rlc1tpXS5zb3VyY2VNYXBw
aW5nKQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgdmFyIHVpU291cmNl
Q29kZUxpc3QgPSB0aGlzLl9yYXdTb3VyY2VDb2Rlc1tpXS5zb3VyY2VNYXBwaW5nLnVpU291cmNl
Q29kZUxpc3QoKTsKKyAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGVMaXN0ID0gdGhpcy5fcmF3
U291cmNlQ29kZXNbaV0udWlTb3VyY2VDb2RlTGlzdCgpOwogICAgICAgICAgICAgZm9yICh2YXIg
aiA9IDA7IGogPCB1aVNvdXJjZUNvZGVMaXN0Lmxlbmd0aDsgKytqKQogICAgICAgICAgICAgICAg
IHJlc3VsdC5wdXNoKHVpU291cmNlQ29kZUxpc3Rbal0pOwogICAgICAgICB9CkBAIC0xOTMsMzIg
KzE3OSw0MCBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5
cGUgPSB7CiAgICAgfSwKIAogICAgIC8qKgorICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLkV2
ZW50fSBldmVudAorICAgICAqLworICAgIF9oYW5kbGVVSVNvdXJjZUNvZGVMaXN0Q2hhbmdlZDog
ZnVuY3Rpb24oZXZlbnQpCisgICAgeworICAgICAgICB2YXIgcmF3U291cmNlQ29kZSA9IC8qKiBA
dHlwZSB7V2ViSW5zcGVjdG9yLlJhd1NvdXJjZUNvZGV9ICovIGV2ZW50LnRhcmdldDsKKyAgICAg
ICAgdmFyIG9sZFVJU291cmNlQ29kZUxpc3QgPSAvKiogQHR5cGUge0FycmF5LjxXZWJJbnNwZWN0
b3IuVUlTb3VyY2VDb2RlPn0gKi8gZXZlbnQuZGF0YVsib2xkVUlTb3VyY2VDb2RlTGlzdCJdOwor
ICAgICAgICB0aGlzLl91aVNvdXJjZUNvZGVMaXN0Q2hhbmdlZChyYXdTb3VyY2VDb2RlLCBvbGRV
SVNvdXJjZUNvZGVMaXN0KTsKKyAgICB9LAorCisgICAgLyoqCiAgICAgICogQHBhcmFtIHtXZWJJ
bnNwZWN0b3IuUmF3U291cmNlQ29kZX0gcmF3U291cmNlQ29kZQotICAgICAqIEBwYXJhbSB7V2Vi
SW5zcGVjdG9yLlJhd1NvdXJjZUNvZGUuU291cmNlTWFwcGluZ30gb2xkU291cmNlTWFwcGluZwor
ICAgICAqIEBwYXJhbSB7QXJyYXkuPFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGU+fSBvbGRVSVNv
dXJjZUNvZGVMaXN0CiAgICAgICovCi0gICAgX3VwZGF0ZVNvdXJjZU1hcHBpbmc6IGZ1bmN0aW9u
KHJhd1NvdXJjZUNvZGUsIG9sZFNvdXJjZU1hcHBpbmcpCisgICAgX3VpU291cmNlQ29kZUxpc3RD
aGFuZ2VkOiBmdW5jdGlvbihyYXdTb3VyY2VDb2RlLCBvbGRVSVNvdXJjZUNvZGVMaXN0KQogICAg
IHsKLSAgICAgICAgaWYgKG9sZFNvdXJjZU1hcHBpbmcpIHsKLSAgICAgICAgICAgIHZhciBvbGRV
SVNvdXJjZUNvZGVMaXN0ID0gb2xkU291cmNlTWFwcGluZy51aVNvdXJjZUNvZGVMaXN0KCk7Ci0g
ICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG9sZFVJU291cmNlQ29kZUxpc3QubGVuZ3Ro
OyArK2kpIHsKLSAgICAgICAgICAgICAgICB2YXIgYnJlYWtwb2ludHMgPSB0aGlzLl9icmVha3Bv
aW50TWFuYWdlci5icmVha3BvaW50c0ZvclVJU291cmNlQ29kZShvbGRVSVNvdXJjZUNvZGVMaXN0
W2ldKTsKLSAgICAgICAgICAgICAgICBmb3IgKHZhciBsaW5lTnVtYmVyIGluIGJyZWFrcG9pbnRz
KSB7Ci0gICAgICAgICAgICAgICAgICAgIHZhciBicmVha3BvaW50ID0gYnJlYWtwb2ludHNbbGlu
ZU51bWJlcl07Ci0gICAgICAgICAgICAgICAgICAgIHRoaXMuX2JyZWFrcG9pbnRSZW1vdmVkKGJy
ZWFrcG9pbnQpOwotICAgICAgICAgICAgICAgICAgICBkZWxldGUgYnJlYWtwb2ludC51aVNvdXJj
ZUNvZGU7Ci0gICAgICAgICAgICAgICAgfQorICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG9s
ZFVJU291cmNlQ29kZUxpc3QubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHZhciBicmVha3Bv
aW50cyA9IHRoaXMuX2JyZWFrcG9pbnRNYW5hZ2VyLmJyZWFrcG9pbnRzRm9yVUlTb3VyY2VDb2Rl
KG9sZFVJU291cmNlQ29kZUxpc3RbaV0pOworICAgICAgICAgICAgZm9yICh2YXIgbGluZU51bWJl
ciBpbiBicmVha3BvaW50cykgeworICAgICAgICAgICAgICAgIHZhciBicmVha3BvaW50ID0gYnJl
YWtwb2ludHNbbGluZU51bWJlcl07CisgICAgICAgICAgICAgICAgdGhpcy5fYnJlYWtwb2ludFJl
bW92ZWQoYnJlYWtwb2ludCk7CisgICAgICAgICAgICAgICAgZGVsZXRlIGJyZWFrcG9pbnQudWlT
b3VyY2VDb2RlOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAKICAgICAgICAgdGhpcy5fcmVz
dG9yZUJyZWFrcG9pbnRzKHJhd1NvdXJjZUNvZGUpOwogICAgICAgICB0aGlzLl9yZXN0b3JlQ29u
c29sZU1lc3NhZ2VzKHJhd1NvdXJjZUNvZGUpOworICAgICAgICB0aGlzLl9yZXN0b3JlRXhlY3V0
aW9uTGluZShyYXdTb3VyY2VDb2RlKTsKIAotICAgICAgICBpZiAoIW9sZFNvdXJjZU1hcHBpbmcp
IHsKLSAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGVMaXN0ID0gcmF3U291cmNlQ29kZS5zb3Vy
Y2VNYXBwaW5nLnVpU291cmNlQ29kZUxpc3QoKTsKKyAgICAgICAgdmFyIHVpU291cmNlQ29kZUxp
c3QgPSByYXdTb3VyY2VDb2RlLnVpU291cmNlQ29kZUxpc3QoKTsKKyAgICAgICAgaWYgKCFvbGRV
SVNvdXJjZUNvZGVMaXN0Lmxlbmd0aCkgewogICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCB1aVNvdXJjZUNvZGVMaXN0Lmxlbmd0aDsgKytpKQogICAgICAgICAgICAgICAgIHRoaXMuZGlz
cGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1v
ZGVsLkV2ZW50cy5VSVNvdXJjZUNvZGVBZGRlZCwgdWlTb3VyY2VDb2RlTGlzdFtpXSk7CiAgICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICB2YXIgZXZlbnREYXRhID0geyB1aVNvdXJjZUNvZGVM
aXN0OiByYXdTb3VyY2VDb2RlLnNvdXJjZU1hcHBpbmcudWlTb3VyY2VDb2RlTGlzdCgpLCBvbGRV
SVNvdXJjZUNvZGVMaXN0OiBvbGRTb3VyY2VNYXBwaW5nLnVpU291cmNlQ29kZUxpc3QoKSB9Owor
ICAgICAgICAgICAgdmFyIGV2ZW50RGF0YSA9IHsgdWlTb3VyY2VDb2RlTGlzdDogdWlTb3VyY2VD
b2RlTGlzdCwgb2xkVUlTb3VyY2VDb2RlTGlzdDogb2xkVUlTb3VyY2VDb2RlTGlzdCB9OwogICAg
ICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkRlYnVn
Z2VyUHJlc2VudGF0aW9uTW9kZWwuRXZlbnRzLlVJU291cmNlQ29kZVJlcGxhY2VkLCBldmVudERh
dGEpOwogICAgICAgICB9CiAgICAgfSwKQEAgLTIyOCw3ICsyMjIsNyBAQCBXZWJJbnNwZWN0b3Iu
RGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgX3Jl
c3RvcmVCcmVha3BvaW50czogZnVuY3Rpb24ocmF3U291cmNlQ29kZSkKICAgICB7Ci0gICAgICAg
IHZhciB1aVNvdXJjZUNvZGVMaXN0ID0gcmF3U291cmNlQ29kZS5zb3VyY2VNYXBwaW5nLnVpU291
cmNlQ29kZUxpc3QoKTsKKyAgICAgICAgdmFyIHVpU291cmNlQ29kZUxpc3QgPSByYXdTb3VyY2VD
b2RlLnVpU291cmNlQ29kZUxpc3QoKTsKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB1aVNv
dXJjZUNvZGVMaXN0Lmxlbmd0aDsgKytpKSB7CiAgICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2Rl
ID0gdWlTb3VyY2VDb2RlTGlzdFtpXTsKICAgICAgICAgICAgIHRoaXMuX2JyZWFrcG9pbnRNYW5h
Z2VyLnVpU291cmNlQ29kZUFkZGVkKHVpU291cmNlQ29kZSk7CkBAIC0yMzYsNyArMjMwLDYgQEAg
V2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlID0gewogICAg
ICAgICAgICAgZm9yICh2YXIgbGluZU51bWJlciBpbiBicmVha3BvaW50cykKICAgICAgICAgICAg
ICAgICB0aGlzLl9icmVha3BvaW50QWRkZWQoYnJlYWtwb2ludHNbbGluZU51bWJlcl0pOwogICAg
ICAgICB9Ci0KICAgICB9LAogCiAgICAgLyoqCkBAIC0yNDUsOCArMjM4LDI0IEBAIFdlYkluc3Bl
Y3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9IHsKICAgICBfcmVzdG9y
ZUNvbnNvbGVNZXNzYWdlczogZnVuY3Rpb24ocmF3U291cmNlQ29kZSkKICAgICB7CiAgICAgICAg
IHZhciBtZXNzYWdlcyA9IHJhd1NvdXJjZUNvZGUubWVzc2FnZXM7Ci0gICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgbWVzc2FnZXMubGVuZ3RoOyArK2kpCi0gICAgICAgICAgICBtZXNzYWdlc1tp
XS5fcHJlc2VudGF0aW9uTWVzc2FnZSA9IHRoaXMuX2NyZWF0ZVByZXNlbnRhdGlvbk1lc3NhZ2Uo
bWVzc2FnZXNbaV0sIHJhd1NvdXJjZUNvZGUuc291cmNlTWFwcGluZyk7CisgICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgbWVzc2FnZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHZhciBt
ZXNzYWdlID0gbWVzc2FnZXNbaV07CisgICAgICAgICAgICB2YXIgdWlMb2NhdGlvbiA9IHJhd1Nv
dXJjZUNvZGUucmF3TG9jYXRpb25Ub1VJTG9jYXRpb24obWVzc2FnZS5sb2NhdGlvbik7CisgICAg
ICAgICAgICBpZiAodWlMb2NhdGlvbikKKyAgICAgICAgICAgICAgICBtZXNzYWdlLl9wcmVzZW50
YXRpb25NZXNzYWdlID0gbmV3IFdlYkluc3BlY3Rvci5QcmVzZW50YXRpb25Db25zb2xlTWVzc2Fn
ZSh1aUxvY2F0aW9uLnVpU291cmNlQ29kZSwgdWlMb2NhdGlvbi5saW5lTnVtYmVyLCBtZXNzYWdl
KTsKKyAgICAgICAgfQorICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge1dlYkluc3Bl
Y3Rvci5SYXdTb3VyY2VDb2RlfSByYXdTb3VyY2VDb2RlCisgICAgICovCisgICAgX3Jlc3RvcmVF
eGVjdXRpb25MaW5lOiBmdW5jdGlvbihyYXdTb3VyY2VDb2RlKQorICAgIHsKKyAgICAgICAgaWYg
KCF0aGlzLl9zZWxlY3RlZENhbGxGcmFtZSB8fCB0aGlzLl9zZWxlY3RlZENhbGxGcmFtZS5yYXdT
b3VyY2VDb2RlICE9IHJhd1NvdXJjZUNvZGUpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAg
ICAgdmFyIHVpTG9jYXRpb24gPSByYXdTb3VyY2VDb2RlLnJhd0xvY2F0aW9uVG9VSUxvY2F0aW9u
KHRoaXMuX3NlbGVjdGVkQ2FsbEZyYW1lLl9jYWxsRnJhbWUubG9jYXRpb24pOworICAgICAgICB0
aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50
YXRpb25Nb2RlbC5FdmVudHMuRXhlY3V0aW9uTGluZUNoYW5nZWQsIHVpTG9jYXRpb24pOwogICAg
IH0sCiAKICAgICAvKioKQEAgLTM1NywyNyArMzY2LDEzIEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dl
clByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHJldHVybjsKIAog
ICAgICAgICByYXdTb3VyY2VDb2RlLm1lc3NhZ2VzLnB1c2gobWVzc2FnZSk7Ci0gICAgICAgIGlm
IChyYXdTb3VyY2VDb2RlLnNvdXJjZU1hcHBpbmcpIHsKLSAgICAgICAgICAgIG1lc3NhZ2UuX3By
ZXNlbnRhdGlvbk1lc3NhZ2UgPSB0aGlzLl9jcmVhdGVQcmVzZW50YXRpb25NZXNzYWdlKG1lc3Nh
Z2UsIHJhd1NvdXJjZUNvZGUuc291cmNlTWFwcGluZyk7CisgICAgICAgIHZhciB1aUxvY2F0aW9u
ID0gcmF3U291cmNlQ29kZS5yYXdMb2NhdGlvblRvVUlMb2NhdGlvbihtZXNzYWdlLmxvY2F0aW9u
KTsKKyAgICAgICAgaWYgKHVpTG9jYXRpb24pIHsKKyAgICAgICAgICAgIG1lc3NhZ2UuX3ByZXNl
bnRhdGlvbk1lc3NhZ2UgPSBuZXcgV2ViSW5zcGVjdG9yLlByZXNlbnRhdGlvbkNvbnNvbGVNZXNz
YWdlKHVpTG9jYXRpb24udWlTb3VyY2VDb2RlLCB1aUxvY2F0aW9uLmxpbmVOdW1iZXIsIG1lc3Nh
Z2UpOwogICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVj
dG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuRXZlbnRzLkNvbnNvbGVNZXNzYWdlQWRkZWQs
IG1lc3NhZ2UuX3ByZXNlbnRhdGlvbk1lc3NhZ2UpOwogICAgICAgICB9CiAgICAgfSwKIAotICAg
IC8qKgotICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlfSBtZXNzYWdl
Ci0gICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuUmF3U291cmNlQ29kZS5Tb3VyY2VNYXBwaW5n
fSBzb3VyY2VNYXBwaW5nCi0gICAgICogQHJldHVybiB7V2ViSW5zcGVjdG9yLlByZXNlbnRhdGlv
bkNvbnNvbGVNZXNzYWdlfQotICAgICAqLwotICAgIF9jcmVhdGVQcmVzZW50YXRpb25NZXNzYWdl
OiBmdW5jdGlvbihtZXNzYWdlLCBzb3VyY2VNYXBwaW5nKQotICAgIHsKLSAgICAgICAgLy8gRklY
TUUoNjI3MjUpOiBzdGFjayB0cmFjZSBsaW5lL2NvbHVtbiBudW1iZXJzIGFyZSBvbmUtYmFzZWQu
Ci0gICAgICAgIHZhciBsaW5lTnVtYmVyID0gbWVzc2FnZS5zdGFja1RyYWNlID8gbWVzc2FnZS5z
dGFja1RyYWNlWzBdLmxpbmVOdW1iZXIgLSAxIDogbWVzc2FnZS5saW5lIC0gMTsKLSAgICAgICAg
dmFyIGNvbHVtbk51bWJlciA9IG1lc3NhZ2Uuc3RhY2tUcmFjZSA/IG1lc3NhZ2Uuc3RhY2tUcmFj
ZVswXS5jb2x1bW5OdW1iZXIgLSAxIDogMDsKLSAgICAgICAgdmFyIHVpTG9jYXRpb24gPSBzb3Vy
Y2VNYXBwaW5nLnJhd0xvY2F0aW9uVG9VSUxvY2F0aW9uKC8qKiBAdHlwZSB7RGVidWdnZXJBZ2Vu
dC5Mb2NhdGlvbn0gKi8geyBsaW5lTnVtYmVyOiBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXI6IGNv
bHVtbk51bWJlciB9KTsKLSAgICAgICAgdmFyIHByZXNlbnRhdGlvbk1lc3NhZ2UgPSBuZXcgV2Vi
SW5zcGVjdG9yLlByZXNlbnRhdGlvbkNvbnNvbGVNZXNzYWdlKHVpTG9jYXRpb24udWlTb3VyY2VD
b2RlLCB1aUxvY2F0aW9uLmxpbmVOdW1iZXIsIG1lc3NhZ2UpOwotICAgICAgICByZXR1cm4gcHJl
c2VudGF0aW9uTWVzc2FnZTsKLSAgICB9LAotCiAgICAgX2NvbnNvbGVDbGVhcmVkOiBmdW5jdGlv
bigpCiAgICAgewogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuX3Jhd1NvdXJjZUNv
ZGVzLmxlbmd0aDsgKytpKQpAQCAtMzkxLDggKzM4Niw3IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dl
clByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICBjb250aW51ZVRv
TGluZTogZnVuY3Rpb24odWlTb3VyY2VDb2RlLCBsaW5lTnVtYmVyKQogICAgIHsKLSAgICAgICAg
Ly8gRklYTUU6IHVzZSBSYXdTb3VyY2VDb2RlLnVpTG9jYXRpb25Ub1Jhd0xvY2F0aW9uLgotICAg
ICAgICB2YXIgcmF3TG9jYXRpb24gPSB1aVNvdXJjZUNvZGUucmF3U291cmNlQ29kZS5zb3VyY2VN
YXBwaW5nLnVpTG9jYXRpb25Ub1Jhd0xvY2F0aW9uKHVpU291cmNlQ29kZSwgbGluZU51bWJlciwg
MCk7CisgICAgICAgIHZhciByYXdMb2NhdGlvbiA9IHVpU291cmNlQ29kZS5yYXdTb3VyY2VDb2Rl
LnVpTG9jYXRpb25Ub1Jhd0xvY2F0aW9uKHVpU291cmNlQ29kZSwgbGluZU51bWJlciwgMCk7CiAg
ICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLmNvbnRpbnVlVG9Mb2NhdGlvbihyYXdM
b2NhdGlvbik7CiAgICAgfSwKIApAQCAtNTM0LDggKzUyOCw2IEBAIFdlYkluc3BlY3Rvci5EZWJ1
Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9IHsKIAogICAgIHNldCBzZWxlY3RlZENh
bGxGcmFtZShjYWxsRnJhbWUpCiAgICAgewotICAgICAgICBpZiAodGhpcy5fc2VsZWN0ZWRDYWxs
RnJhbWUpCi0gICAgICAgICAgICB0aGlzLl9zZWxlY3RlZENhbGxGcmFtZS5yYXdTb3VyY2VDb2Rl
LnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlJhd1NvdXJjZUNvZGUuRXZlbnRzLlNv
dXJjZU1hcHBpbmdVcGRhdGVkLCB0aGlzLl9kaXNwYXRjaEV4ZWN1dGlvbkxpbmVDaGFuZ2VkLCB0
aGlzKTsKICAgICAgICAgdGhpcy5fc2VsZWN0ZWRDYWxsRnJhbWUgPSBjYWxsRnJhbWU7CiAgICAg
ICAgIGlmICghdGhpcy5fc2VsZWN0ZWRDYWxsRnJhbWUpCiAgICAgICAgICAgICByZXR1cm47CkBA
IC01NDMsNyArNTM1LDkgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwu
cHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9zZWxlY3RlZENhbGxGcmFtZS5yYXdTb3VyY2VD
b2RlLmZvcmNlVXBkYXRlU291cmNlTWFwcGluZygpOwogICAgICAgICB0aGlzLmRpc3BhdGNoRXZl
bnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5FdmVu
dHMuQ2FsbEZyYW1lU2VsZWN0ZWQsIGNhbGxGcmFtZSk7CiAKLSAgICAgICAgdGhpcy5fc2VsZWN0
ZWRDYWxsRnJhbWUucmF3U291cmNlQ29kZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5S
YXdTb3VyY2VDb2RlLkV2ZW50cy5Tb3VyY2VNYXBwaW5nVXBkYXRlZCwgdGhpcy5fZGlzcGF0Y2hF
eGVjdXRpb25MaW5lQ2hhbmdlZCwgdGhpcyk7CisgICAgICAgIHZhciB1aUxvY2F0aW9uID0gY2Fs
bEZyYW1lLnJhd1NvdXJjZUNvZGUucmF3TG9jYXRpb25Ub1VJTG9jYXRpb24oY2FsbEZyYW1lLl9j
YWxsRnJhbWUubG9jYXRpb24pOworICAgICAgICBpZiAodWlMb2NhdGlvbikKKyAgICAgICAgICAg
IHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNl
bnRhdGlvbk1vZGVsLkV2ZW50cy5FeGVjdXRpb25MaW5lQ2hhbmdlZCwgdWlMb2NhdGlvbik7CiAg
ICAgfSwKIAogICAgIGdldCBzZWxlY3RlZENhbGxGcmFtZSgpCkBAIC02MDQsMjcgKzU5OCw2IEBA
IFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9IHsKICAg
ICB9LAogCiAgICAgLyoqCi0gICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuRXZlbnR9IGV2ZW50
Ci0gICAgICovCi0gICAgX2Rpc3BhdGNoRXhlY3V0aW9uTGluZUNoYW5nZWQ6IGZ1bmN0aW9uKGV2
ZW50KQotICAgIHsKLSAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5z
cGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuRXZlbnRzLkV4ZWN1dGlvbkxpbmVDaGFu
Z2VkLCB0aGlzLmV4ZWN1dGlvbkxpbmVMb2NhdGlvbik7Ci0gICAgfSwKLQotICAgIC8qKgotICAg
ICAqIEB0eXBlIHtXZWJJbnNwZWN0b3IuVUlMb2NhdGlvbn0KLSAgICAgKi8KLSAgICBnZXQgZXhl
Y3V0aW9uTGluZUxvY2F0aW9uKCkKLSAgICB7Ci0gICAgICAgIGlmICghdGhpcy5fc2VsZWN0ZWRD
YWxsRnJhbWUucmF3U291cmNlQ29kZS5zb3VyY2VNYXBwaW5nKQotICAgICAgICAgICAgcmV0dXJu
OwotCi0gICAgICAgIHZhciByYXdMb2NhdGlvbiA9IHRoaXMuX3NlbGVjdGVkQ2FsbEZyYW1lLl9j
YWxsRnJhbWUubG9jYXRpb247Ci0gICAgICAgIHZhciB1aUxvY2F0aW9uID0gdGhpcy5fc2VsZWN0
ZWRDYWxsRnJhbWUucmF3U291cmNlQ29kZS5zb3VyY2VNYXBwaW5nLnJhd0xvY2F0aW9uVG9VSUxv
Y2F0aW9uKHJhd0xvY2F0aW9uKTsKLSAgICAgICAgcmV0dXJuIHVpTG9jYXRpb247Ci0gICAgfSwK
LQotICAgIC8qKgogICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzb3VyY2VVUkwKICAgICAgKi8KICAg
ICBfcmF3U291cmNlQ29kZUZvclNjcmlwdFdpdGhVUkw6IGZ1bmN0aW9uKHNvdXJjZVVSTCkKQEAg
LTY2MSwxMSArNjM0LDkgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwu
cHJvdG90eXBlID0gewogICAgIHsKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9y
YXdTb3VyY2VDb2Rlcy5sZW5ndGg7ICsraSkgewogICAgICAgICAgICAgdmFyIHJhd1NvdXJjZUNv
ZGUgPSB0aGlzLl9yYXdTb3VyY2VDb2Rlc1tpXTsKLSAgICAgICAgICAgIGlmIChyYXdTb3VyY2VD
b2RlLnNvdXJjZU1hcHBpbmcpIHsKLSAgICAgICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2RlTGlz
dCA9IHJhd1NvdXJjZUNvZGUuc291cmNlTWFwcGluZy51aVNvdXJjZUNvZGVMaXN0KCk7Ci0gICAg
ICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCB1aVNvdXJjZUNvZGVMaXN0Lmxlbmd0aDsg
KytqKQotICAgICAgICAgICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhX
ZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5FdmVudHMuVUlTb3VyY2VDb2Rl
UmVtb3ZlZCwgdWlTb3VyY2VDb2RlTGlzdFtqXSk7Ci0gICAgICAgICAgICB9CisgICAgICAgICAg
ICB2YXIgdWlTb3VyY2VDb2RlTGlzdCA9IHJhd1NvdXJjZUNvZGUudWlTb3VyY2VDb2RlTGlzdCgp
OworICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCB1aVNvdXJjZUNvZGVMaXN0Lmxlbmd0
aDsgKytqKQorICAgICAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdl
Ykluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLkV2ZW50cy5VSVNvdXJjZUNvZGVS
ZW1vdmVkLCB1aVNvdXJjZUNvZGVMaXN0W2pdKTsKICAgICAgICAgICAgIHJhd1NvdXJjZUNvZGUu
cmVtb3ZlQWxsTGlzdGVuZXJzKCk7CiAgICAgICAgIH0KICAgICAgICAgdGhpcy5fcmF3U291cmNl
Q29kZXMgPSBbXTsKQEAgLTc4MiwxNSArNzUzLDE2IEBAIFdlYkluc3BlY3Rvci5QcmVzZW50YXRp
b25DYWxsRnJhbWUucHJvdG90eXBlID0gewogICAgICAqLwogICAgIHVpTG9jYXRpb246IGZ1bmN0
aW9uKGNhbGxiYWNrKQogICAgIHsKLSAgICAgICAgZnVuY3Rpb24gc291cmNlTWFwcGluZ1JlYWR5
KCkKKyAgICAgICAgZnVuY3Rpb24gdWlTb3VyY2VDb2RlTGlzdENoYW5nZWQoKQogICAgICAgICB7
Ci0gICAgICAgICAgICB0aGlzLl9yYXdTb3VyY2VDb2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoV2Vi
SW5zcGVjdG9yLlJhd1NvdXJjZUNvZGUuRXZlbnRzLlNvdXJjZU1hcHBpbmdVcGRhdGVkLCBzb3Vy
Y2VNYXBwaW5nUmVhZHksIHRoaXMpOwotICAgICAgICAgICAgY2FsbGJhY2sodGhpcy5fcmF3U291
cmNlQ29kZS5zb3VyY2VNYXBwaW5nLnJhd0xvY2F0aW9uVG9VSUxvY2F0aW9uKHRoaXMuX2NhbGxG
cmFtZS5sb2NhdGlvbikpOworICAgICAgICAgICAgY2FsbGJhY2sodGhpcy5fcmF3U291cmNlQ29k
ZS5yYXdMb2NhdGlvblRvVUlMb2NhdGlvbih0aGlzLl9jYWxsRnJhbWUubG9jYXRpb24pKTsKKyAg
ICAgICAgICAgIHRoaXMuX3Jhd1NvdXJjZUNvZGUucmVtb3ZlRXZlbnRMaXN0ZW5lcihXZWJJbnNw
ZWN0b3IuUmF3U291cmNlQ29kZS5FdmVudHMuVUlTb3VyY2VDb2RlTGlzdENoYW5nZWQsIHVpU291
cmNlQ29kZUxpc3RDaGFuZ2VkLCB0aGlzKTsKICAgICAgICAgfQotICAgICAgICBpZiAodGhpcy5f
cmF3U291cmNlQ29kZS5zb3VyY2VNYXBwaW5nKQotICAgICAgICAgICAgc291cmNlTWFwcGluZ1Jl
YWR5LmNhbGwodGhpcyk7CisgICAgICAgIHZhciB1aUxvY2F0aW9uID0gdGhpcy5fcmF3U291cmNl
Q29kZS5yYXdMb2NhdGlvblRvVUlMb2NhdGlvbih0aGlzLl9jYWxsRnJhbWUubG9jYXRpb24pOwor
ICAgICAgICBpZiAodWlMb2NhdGlvbikKKyAgICAgICAgICAgIGNhbGxiYWNrKHVpTG9jYXRpb24p
OwogICAgICAgICBlbHNlCi0gICAgICAgICAgICB0aGlzLl9yYXdTb3VyY2VDb2RlLmFkZEV2ZW50
TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlJhd1NvdXJjZUNvZGUuRXZlbnRzLlNvdXJjZU1hcHBpbmdV
cGRhdGVkLCBzb3VyY2VNYXBwaW5nUmVhZHksIHRoaXMpOworICAgICAgICAgICAgdGhpcy5fcmF3
U291cmNlQ29kZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlLkV2
ZW50cy5VSVNvdXJjZUNvZGVMaXN0Q2hhbmdlZCwgdWlTb3VyY2VDb2RlTGlzdENoYW5nZWQsIHRo
aXMpOwogICAgIH0KIH0KIApAQCAtODAzLDIzICs3NzUsMjIgQEAgV2ViSW5zcGVjdG9yLkRlYnVn
Z2VyUHJlc2VudGF0aW9uTW9kZWwuQ2FsbEZyYW1lUGxhY2FyZCA9IGZ1bmN0aW9uKGNhbGxGcmFt
ZSkKIHsKICAgICBXZWJJbnNwZWN0b3IuUGxhY2FyZC5jYWxsKHRoaXMsIGNhbGxGcmFtZS5fY2Fs
bEZyYW1lLmZ1bmN0aW9uTmFtZSB8fCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIihhbm9ueW1vdXMg
ZnVuY3Rpb24pIiksICIiKTsKICAgICB0aGlzLl9jYWxsRnJhbWUgPSBjYWxsRnJhbWU7Ci0gICAg
dmFyIHJhd1NvdXJjZUNvZGUgPSBjYWxsRnJhbWUuX3Jhd1NvdXJjZUNvZGU7Ci0gICAgaWYgKHJh
d1NvdXJjZUNvZGUuc291cmNlTWFwcGluZykKLSAgICAgICAgdGhpcy5fdXBkYXRlKCk7Ci0gICAg
cmF3U291cmNlQ29kZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2Rl
LkV2ZW50cy5Tb3VyY2VNYXBwaW5nVXBkYXRlZCwgdGhpcy5fdXBkYXRlLCB0aGlzKTsKKyAgICB0
aGlzLl91cGRhdGUoKTsKKyAgICB0aGlzLl9jYWxsRnJhbWUuX3Jhd1NvdXJjZUNvZGUuYWRkRXZl
bnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuUmF3U291cmNlQ29kZS5FdmVudHMuVUlTb3VyY2VDb2Rl
TGlzdENoYW5nZWQsIHRoaXMuX3VwZGF0ZSwgdGhpcyk7CiB9CiAKIFdlYkluc3BlY3Rvci5EZWJ1
Z2dlclByZXNlbnRhdGlvbk1vZGVsLkNhbGxGcmFtZVBsYWNhcmQucHJvdG90eXBlID0gewogICAg
IGRpc2NhcmQ6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIHRoaXMuX2NhbGxGcmFtZS5fcmF3
U291cmNlQ29kZS5yZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2Rl
LkV2ZW50cy5Tb3VyY2VNYXBwaW5nVXBkYXRlZCwgdGhpcy5fdXBkYXRlLCB0aGlzKTsKKyAgICAg
ICAgdGhpcy5fY2FsbEZyYW1lLl9yYXdTb3VyY2VDb2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoV2Vi
SW5zcGVjdG9yLlJhd1NvdXJjZUNvZGUuRXZlbnRzLlVJU291cmNlQ29kZUxpc3RDaGFuZ2VkLCB0
aGlzLl91cGRhdGUsIHRoaXMpOwogICAgIH0sCiAKICAgICBfdXBkYXRlOiBmdW5jdGlvbigpCiAg
ICAgewogICAgICAgICB2YXIgcmF3U291cmNlQ29kZSA9IHRoaXMuX2NhbGxGcmFtZS5fcmF3U291
cmNlQ29kZTsKLSAgICAgICAgdmFyIHVpTG9jYXRpb24gPSByYXdTb3VyY2VDb2RlLnNvdXJjZU1h
cHBpbmcucmF3TG9jYXRpb25Ub1VJTG9jYXRpb24odGhpcy5fY2FsbEZyYW1lLl9jYWxsRnJhbWUu
bG9jYXRpb24pOwotICAgICAgICB0aGlzLnN1YnRpdGxlID0gV2ViSW5zcGVjdG9yLmRpc3BsYXlO
YW1lRm9yVVJMKHVpTG9jYXRpb24udWlTb3VyY2VDb2RlLnVybCkgKyAiOiIgKyAodWlMb2NhdGlv
bi5saW5lTnVtYmVyICsgMSk7CisgICAgICAgIHZhciB1aUxvY2F0aW9uID0gcmF3U291cmNlQ29k
ZS5yYXdMb2NhdGlvblRvVUlMb2NhdGlvbih0aGlzLl9jYWxsRnJhbWUuX2NhbGxGcmFtZS5sb2Nh
dGlvbik7CisgICAgICAgIGlmICh1aUxvY2F0aW9uKQorICAgICAgICAgICAgdGhpcy5zdWJ0aXRs
ZSA9IFdlYkluc3BlY3Rvci5kaXNwbGF5TmFtZUZvclVSTCh1aUxvY2F0aW9uLnVpU291cmNlQ29k
ZS51cmwpICsgIjoiICsgKHVpTG9jYXRpb24ubGluZU51bWJlciArIDEpOwogICAgIH0KIH0KIApA
QCAtODQ1LDcgKzgxNiw3IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVs
UmVzb3VyY2VCaW5kaW5nLnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFyIHJhd1NvdXJjZUNvZGUg
PSB0aGlzLl9wcmVzZW50YXRpb25Nb2RlbC5fcmF3U291cmNlQ29kZUZvclNjcmlwdFdpdGhVUkwo
cmVzb3VyY2UudXJsKQogICAgICAgICBpZiAoIXJhd1NvdXJjZUNvZGUpCiAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgICAgIHJldHVybiB0aGlzLl9wcmVzZW50YXRpb25Nb2RlbC5jYW5F
ZGl0U2NyaXB0U291cmNlKHJhd1NvdXJjZUNvZGUuc291cmNlTWFwcGluZy51aVNvdXJjZUNvZGVM
aXN0KClbMF0pOworICAgICAgICByZXR1cm4gdGhpcy5fcHJlc2VudGF0aW9uTW9kZWwuY2FuRWRp
dFNjcmlwdFNvdXJjZShyYXdTb3VyY2VDb2RlLnVpU291cmNlQ29kZUxpc3QoKVswXSk7CiAgICAg
fSwKIAogICAgIC8qKgpAQCAtODY1LDcgKzgzNiw3IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclBy
ZXNlbnRhdGlvbk1vZGVsUmVzb3VyY2VCaW5kaW5nLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIHJlc291cmNlLnJlcXVlc3RDb250ZW50KHRo
aXMuX3NldENvbnRlbnRXaXRoSW5pdGlhbENvbnRlbnQuYmluZCh0aGlzLCByYXdTb3VyY2VDb2Rl
LnNvdXJjZU1hcHBpbmcudWlTb3VyY2VDb2RlTGlzdCgpWzBdLCBjb250ZW50LCB1c2VyQ2FsbGJh
Y2spKTsKKyAgICAgICAgcmVzb3VyY2UucmVxdWVzdENvbnRlbnQodGhpcy5fc2V0Q29udGVudFdp
dGhJbml0aWFsQ29udGVudC5iaW5kKHRoaXMsIHJhd1NvdXJjZUNvZGUudWlTb3VyY2VDb2RlTGlz
dCgpWzBdLCBjb250ZW50LCB1c2VyQ2FsbGJhY2spKTsKICAgICB9LAogCiAgICAgLyoqCkBAIC05
MjQsNyArODk1LDkgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuRGVm
YXVsdExpbmtpZmllckZvcm1hdHRlci5wcm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgZm9ybWF0
UmF3U291cmNlQ29kZUFuY2hvcjogZnVuY3Rpb24ocmF3U291cmNlQ29kZSwgYW5jaG9yKQogICAg
IHsKLSAgICAgICAgdmFyIHVpTG9jYXRpb24gPSByYXdTb3VyY2VDb2RlLnNvdXJjZU1hcHBpbmcu
cmF3TG9jYXRpb25Ub1VJTG9jYXRpb24oYW5jaG9yLnJhd0xvY2F0aW9uKTsKKyAgICAgICAgdmFy
IHVpTG9jYXRpb24gPSByYXdTb3VyY2VDb2RlLnJhd0xvY2F0aW9uVG9VSUxvY2F0aW9uKGFuY2hv
ci5yYXdMb2NhdGlvbik7CisgICAgICAgIGlmICghdWlMb2NhdGlvbikKKyAgICAgICAgICAgIHJl
dHVybjsKIAogICAgICAgICBhbmNob3IudGV4dENvbnRlbnQgPSBXZWJJbnNwZWN0b3IuZm9ybWF0
TGlua1RleHQodWlMb2NhdGlvbi51aVNvdXJjZUNvZGUudXJsLCB1aUxvY2F0aW9uLmxpbmVOdW1i
ZXIpOwogCkBAIC05ODAsMTEgKzk1MywxMCBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50
YXRpb25Nb2RlbC5MaW5raWZpZXIucHJvdG90eXBlID0gewogICAgICAgICBpZiAoIWFuY2hvcnMp
IHsKICAgICAgICAgICAgIGFuY2hvcnMgPSBbXTsKICAgICAgICAgICAgIHRoaXMuX2FuY2hvcnNG
b3JSYXdTb3VyY2VDb2RlW3Jhd1NvdXJjZUNvZGUuaWRdID0gYW5jaG9yczsKLSAgICAgICAgICAg
IHJhd1NvdXJjZUNvZGUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuUmF3U291cmNlQ29k
ZS5FdmVudHMuU291cmNlTWFwcGluZ1VwZGF0ZWQsIHRoaXMuX3VwZGF0ZVNvdXJjZUFuY2hvcnMs
IHRoaXMpOworICAgICAgICAgICAgcmF3U291cmNlQ29kZS5hZGRFdmVudExpc3RlbmVyKFdlYklu
c3BlY3Rvci5SYXdTb3VyY2VDb2RlLkV2ZW50cy5VSVNvdXJjZUNvZGVMaXN0Q2hhbmdlZCwgdGhp
cy5fdXBkYXRlU291cmNlQW5jaG9ycywgdGhpcyk7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAo
cmF3U291cmNlQ29kZS5zb3VyY2VNYXBwaW5nKQotICAgICAgICAgICAgdGhpcy5fdXBkYXRlQW5j
aG9yKHJhd1NvdXJjZUNvZGUsIGFuY2hvcik7CisgICAgICAgIHRoaXMuX3VwZGF0ZUFuY2hvcihy
YXdTb3VyY2VDb2RlLCBhbmNob3IpOwogICAgICAgICBhbmNob3JzLnB1c2goYW5jaG9yKTsKICAg
ICAgICAgcmV0dXJuIGFuY2hvcjsKICAgICB9LApAQCAtMTAwMSw3ICs5NzMsNyBAQCBXZWJJbnNw
ZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5MaW5raWZpZXIucHJvdG90eXBlID0gewog
ICAgIHsKICAgICAgICAgZm9yICh2YXIgaWQgaW4gdGhpcy5fYW5jaG9yc0ZvclJhd1NvdXJjZUNv
ZGUpIHsKICAgICAgICAgICAgIGlmICh0aGlzLl9tb2RlbC5fcmF3U291cmNlQ29kZUZvclNjcmlw
dElkW2lkXSkgLy8gSW4gY2FzZSBvZiBuYXZpZ2F0aW9uIHRoZSBsaXN0IG9mIHJhd1NvdXJjZUNv
ZGVzIGlzIGVtcHR5LgotICAgICAgICAgICAgICAgIHRoaXMuX21vZGVsLl9yYXdTb3VyY2VDb2Rl
Rm9yU2NyaXB0SWRbaWRdLnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlJhd1NvdXJj
ZUNvZGUuRXZlbnRzLlNvdXJjZU1hcHBpbmdVcGRhdGVkLCB0aGlzLl91cGRhdGVTb3VyY2VBbmNo
b3JzLCB0aGlzKTsKKyAgICAgICAgICAgICAgICB0aGlzLl9tb2RlbC5fcmF3U291cmNlQ29kZUZv
clNjcmlwdElkW2lkXS5yZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5SYXdTb3VyY2VD
b2RlLkV2ZW50cy5VSVNvdXJjZUNvZGVMaXN0Q2hhbmdlZCwgdGhpcy5fdXBkYXRlU291cmNlQW5j
aG9ycywgdGhpcyk7CiAgICAgICAgIH0KICAgICAgICAgdGhpcy5fYW5jaG9yc0ZvclJhd1NvdXJj
ZUNvZGUgPSB7fTsKICAgICB9LApAQCAtMTAyMyw3ICs5OTUsMTAgQEAgV2ViSW5zcGVjdG9yLkRl
YnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuTGlua2lmaWVyLnByb3RvdHlwZSA9IHsKICAgICAgKi8K
ICAgICBfdXBkYXRlQW5jaG9yOiBmdW5jdGlvbihyYXdTb3VyY2VDb2RlLCBhbmNob3IpCiAgICAg
ewotICAgICAgICB2YXIgdWlMb2NhdGlvbiA9IHJhd1NvdXJjZUNvZGUuc291cmNlTWFwcGluZy5y
YXdMb2NhdGlvblRvVUlMb2NhdGlvbihhbmNob3IucmF3TG9jYXRpb24pOworICAgICAgICB2YXIg
dWlMb2NhdGlvbiA9IHJhd1NvdXJjZUNvZGUucmF3TG9jYXRpb25Ub1VJTG9jYXRpb24oYW5jaG9y
LnJhd0xvY2F0aW9uKTsKKyAgICAgICAgaWYgKCF1aUxvY2F0aW9uKQorICAgICAgICAgICAgcmV0
dXJuOworCiAgICAgICAgIGFuY2hvci5wcmVmZXJyZWRQYW5lbCA9ICJzY3JpcHRzIjsKICAgICAg
ICAgYW5jaG9yLnVpU291cmNlQ29kZSA9IHVpTG9jYXRpb24udWlTb3VyY2VDb2RlOwogICAgICAg
ICBhbmNob3IubGluZU51bWJlciA9IHVpTG9jYXRpb24ubGluZU51bWJlcjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmF3U291cmNlQ29kZS5qcyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmF3U291cmNlQ29kZS5qcwppbmRleCBj
N2ZkOWFlLi5iNTkwOGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1Jhd1NvdXJjZUNvZGUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9SYXdTb3VyY2VDb2RlLmpzCkBAIC02Miw3ICs2Miw3IEBAIFdlYkluc3BlY3Rvci5S
YXdTb3VyY2VDb2RlID0gZnVuY3Rpb24oaWQsIHNjcmlwdCwgcmVzb3VyY2UsIGZvcm1hdHRlciwg
Zm9ybWF0dGVkCiB9CiAKIFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlLkV2ZW50cyA9IHsKLSAg
ICBTb3VyY2VNYXBwaW5nVXBkYXRlZDogInNvdXJjZS1tYXBwaW5nLXVwZGF0ZWQiCisgICAgVUlT
b3VyY2VDb2RlTGlzdENoYW5nZWQ6ICJ1cy1zb3VyY2UtY29kZS1saXN0LWNoYW5nZWQiCiB9CiAK
IFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlLnByb3RvdHlwZSA9IHsKQEAgLTc2LDExICs3Niwz
NyBAQCBXZWJJbnNwZWN0b3IuUmF3U291cmNlQ29kZS5wcm90b3R5cGUgPSB7CiAgICAgfSwKIAog
ICAgIC8qKgotICAgICAqIEByZXR1cm4ge1dlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlLlNvdXJj
ZU1hcHBpbmd9CisgICAgICogQHBhcmFtIHtEZWJ1Z2dlckFnZW50LkxvY2F0aW9ufSByYXdMb2Nh
dGlvbgorICAgICAqIEByZXR1cm4ge1dlYkluc3BlY3Rvci5VSUxvY2F0aW9ufQogICAgICAqLwot
ICAgIGdldCBzb3VyY2VNYXBwaW5nKCkKKyAgICByYXdMb2NhdGlvblRvVUlMb2NhdGlvbjogZnVu
Y3Rpb24ocmF3TG9jYXRpb24pCiAgICAgewotICAgICAgICByZXR1cm4gdGhpcy5fc291cmNlTWFw
cGluZzsKKyAgICAgICAgaWYgKHRoaXMuX3NvdXJjZU1hcHBpbmcpCisgICAgICAgICAgICByZXR1
cm4gdGhpcy5fc291cmNlTWFwcGluZy5yYXdMb2NhdGlvblRvVUlMb2NhdGlvbihyYXdMb2NhdGlv
bik7CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcGFy
YW0ge1dlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGV9IHVpU291cmNlQ29kZQorICAgICAqIEBwYXJh
bSB7bnVtYmVyfSBsaW5lTnVtYmVyCisgICAgICogQHBhcmFtIHtudW1iZXJ9IGNvbHVtbk51bWJl
cgorICAgICAqIEByZXR1cm4ge0RlYnVnZ2VyQWdlbnQuTG9jYXRpb259CisgICAgICovCisgICAg
dWlMb2NhdGlvblRvUmF3TG9jYXRpb246IGZ1bmN0aW9uKHVpU291cmNlQ29kZSwgbGluZU51bWJl
ciwgY29sdW1uTnVtYmVyKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX3NvdXJjZU1hcHBpbmcp
CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fc291cmNlTWFwcGluZy51aUxvY2F0aW9uVG9SYXdM
b2NhdGlvbih1aVNvdXJjZUNvZGUsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcik7CisgICAgICAg
IHJldHVybiBudWxsOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHtBcnJheS48
V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZT59CisgICAgICovCisgICAgdWlTb3VyY2VDb2RlTGlz
dDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX3NvdXJjZU1hcHBpbmcpCisg
ICAgICAgICAgICByZXR1cm4gdGhpcy5fc291cmNlTWFwcGluZy51aVNvdXJjZUNvZGVMaXN0KCk7
CisgICAgICAgIHJldHVybiBbXTsKICAgICB9LAogCiAgICAgLyoqCkBAIC0yNDEsMTEgKzI2Nywx
MSBAQCBXZWJJbnNwZWN0b3IuUmF3U291cmNlQ29kZS5wcm90b3R5cGUgPSB7CiAgICAgICovCiAg
ICAgX3NhdmVTb3VyY2VNYXBwaW5nOiBmdW5jdGlvbihzb3VyY2VNYXBwaW5nKQogICAgIHsKLSAg
ICAgICAgdmFyIG9sZFNvdXJjZU1hcHBpbmc7CisgICAgICAgIHZhciBvbGRVSVNvdXJjZUNvZGVM
aXN0ID0gW107CiAgICAgICAgIGlmICh0aGlzLl9zb3VyY2VNYXBwaW5nKQotICAgICAgICAgICAg
b2xkU291cmNlTWFwcGluZyA9IHRoaXMuX3NvdXJjZU1hcHBpbmc7CisgICAgICAgICAgICBvbGRV
SVNvdXJjZUNvZGVMaXN0ID0gdGhpcy5fc291cmNlTWFwcGluZy51aVNvdXJjZUNvZGVMaXN0KCk7
CiAgICAgICAgIHRoaXMuX3NvdXJjZU1hcHBpbmcgPSBzb3VyY2VNYXBwaW5nOwotICAgICAgICB0
aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuUmF3U291cmNlQ29kZS5F
dmVudHMuU291cmNlTWFwcGluZ1VwZGF0ZWQsIHsgb2xkU291cmNlTWFwcGluZzogb2xkU291cmNl
TWFwcGluZyB9KTsKKyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5z
cGVjdG9yLlJhd1NvdXJjZUNvZGUuRXZlbnRzLlVJU291cmNlQ29kZUxpc3RDaGFuZ2VkLCB7IG9s
ZFVJU291cmNlQ29kZUxpc3Q6IG9sZFVJU291cmNlQ29kZUxpc3QgfSk7CiAgICAgfQogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5l
bC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpz
CmluZGV4IGJjMzUyZWUuLjY2ZDVmOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCkBAIC02MzYsNyArNjM2LDYgQEAgV2ViSW5z
cGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuc2lkZWJhclBh
bmVzLnNjb3BlY2hhaW4udXBkYXRlKGNhbGxGcmFtZSk7CiAgICAgICAgIHRoaXMuc2lkZWJhclBh
bmVzLndhdGNoRXhwcmVzc2lvbnMucmVmcmVzaEV4cHJlc3Npb25zKCk7CiAgICAgICAgIHRoaXMu
c2lkZWJhclBhbmVzLmNhbGxzdGFjay5zZWxlY3RlZENhbGxGcmFtZSA9IGNhbGxGcmFtZTsKLSAg
ICAgICAgdGhpcy5fdXBkYXRlRXhlY3V0aW9uTGluZSh0aGlzLl9wcmVzZW50YXRpb25Nb2RlbC5l
eGVjdXRpb25MaW5lTG9jYXRpb24pOwogICAgIH0sCiAKICAgICBfZWRpdG9yQ2xvc2VkOiBmdW5j
dGlvbihldmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvU2NyaXB0c1NlYXJjaFNjb3BlLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9TY3JpcHRzU2VhcmNoU2NvcGUuanMKaW5kZXggMDk0YTg4OS4uZmI2NTk5MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzU2VhcmNoU2Nv
cGUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzU2Vh
cmNoU2NvcGUuanMKQEAgLTE0Nyw3ICsxNDcsNyBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1NlYXJj
aFJlc3VsdHNQYW5lLnByb3RvdHlwZSA9IHsKICAgICAgICAgCiAgICAgICAgIHZhciB1aVNvdXJj
ZUNvZGUgPSBmaWxlOwogICAgICAgICB2YXIgcmF3U291cmNlQ29kZSA9IHVpU291cmNlQ29kZS5y
YXdTb3VyY2VDb2RlOwotICAgICAgICB2YXIgcmF3TG9jYXRpb24gPSByYXdTb3VyY2VDb2RlLnNv
dXJjZU1hcHBpbmcudWlMb2NhdGlvblRvUmF3TG9jYXRpb24odWlTb3VyY2VDb2RlLCBsaW5lTnVt
YmVyLCBjb2x1bW5OdW1iZXIpOworICAgICAgICB2YXIgcmF3TG9jYXRpb24gPSByYXdTb3VyY2VD
b2RlLnVpTG9jYXRpb25Ub1Jhd0xvY2F0aW9uKHVpU291cmNlQ29kZSwgbGluZU51bWJlciwgY29s
dW1uTnVtYmVyKTsKICAgICAgICAgdmFyIGFuY2hvciA9IHRoaXMuX2xpbmtpZmllci5saW5raWZ5
UmF3U291cmNlQ29kZSh1aVNvdXJjZUNvZGUucmF3U291cmNlQ29kZSwgcmF3TG9jYXRpb24ubGlu
ZU51bWJlciwgcmF3TG9jYXRpb24uY29sdW1uTnVtYmVyKTsKICAgICAgICAgYW5jaG9yLnJlbW92
ZUNoaWxkcmVuKCk7CiAgICAgICAgIHJldHVybiBhbmNob3I7Cg==
</data>
<flag name="review"
          id="131133"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>