<?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>67136</bug_id>
          
          <creation_ts>2011-08-29 10:23:08 -0700</creation_ts>
          <short_desc>Web Inspector: rename sourceFile to uiSourceCode.</short_desc>
          <delta_ts>2011-08-31 06:04:04 -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="Pavel Podivilov">podivilov</reporter>
          <assigned_to name="Pavel Podivilov">podivilov</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>kbalazs</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>458262</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-08-29 10:23:08 -0700</bug_when>
    <thetext>Web Inspector: rename sourceFile to uiSourceCode and get rid of sourceFileId where possible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>458264</commentid>
    <comment_count>1</comment_count>
      <attachid>105499</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-08-29 10:26:48 -0700</bug_when>
    <thetext>Created attachment 105499
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>458994</commentid>
    <comment_count>2</comment_count>
      <attachid>105647</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-08-30 10:26:04 -0700</bug_when>
    <thetext>Created attachment 105647
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459535</commentid>
    <comment_count>3</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-08-31 03:03:28 -0700</bug_when>
    <thetext>Committed r94167: &lt;http://trac.webkit.org/changeset/94167&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459568</commentid>
    <comment_count>4</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2011-08-31 05:24:11 -0700</bug_when>
    <thetext>inspector/debugger/script-formatter.html started to fail on Qt with timeout after this</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459585</commentid>
    <comment_count>5</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2011-08-31 06:04:04 -0700</bug_when>
    <thetext>Bug for the Qt failure: #67284</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105499</attachid>
            <date>2011-08-29 10:26:48 -0700</date>
            <delta_ts>2011-08-30 10:25:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67136-20110829212645.patch</filename>
            <type>text/plain</type>
            <size>64684</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTM5ODIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1MzA1NmM4ZTNkZTU3MmYxNzE4MzYz
NGQ4ZjhlNzY5ZTg0ZmM2ODMxLi5jNjI1MDI5YTdjNTBiZjllOGMzN2U2MjBjNTM5NTQwMDkyMDQ2
ZGQ3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDgtMjkgIFBhdmVsIFBvZGl2aWxvdiAg
PHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogcmVuYW1l
IHNvdXJjZUZpbGUgdG8gdWlTb3VyY2VDb2RlIGFuZCBnZXQgcmlkIG9mIHNvdXJjZUZpbGVJZCB3
aGVyZSBwb3NzaWJsZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTY3MTM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1tYW5hZ2VyLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1tYW5hZ2VyLmh0bWw6
CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMtcGFuZWwuaHRtbDoKKwogMjAx
MS0wOC0yOSAgVG9tIFpha3JhanNlayAgPHRvbXpAY29kZWF1cm9yYS5vcmc+CiAKICAgICAgICAg
Y2FudmFzIGFyYygpIG1pc3NpbmcgbGluZSB0byBzdGFydCBvZiBhcmMgaWYgc3dpbmcgaXMgemVy
bwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQt
bWFuYWdlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJl
YWtwb2ludC1tYW5hZ2VyLWV4cGVjdGVkLnR4dAppbmRleCAxNzVlNTBkZGViZWE0Y2Y5NDcyMTk2
NDQ3OWE2MDkxMzczZWI1NjU1Li4zODQ2NzIyMzQ5ZmU5MzJkMmJkZmE3MjYyNjIxZWU2NjllNzVh
Nzk0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2lu
dC1tYW5hZ2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvYnJlYWtwb2ludC1tYW5hZ2VyLWV4cGVjdGVkLnR4dApAQCAtMywxNSArMywxMyBAQCBUZXN0
cyBCcmVha3BvaW50TWFuYWdlciBjbGFzcy4KIAogUnVubmluZzogdWlTb3VyY2VDb2RlQWRkZWQK
IGJyZWFrcG9pbnRBZGRlZChhLmpzLCAxMCwgZm9vID09IGJhciwgdHJ1ZSkKLWJyZWFrcG9pbnRB
ZGRlZChhLmpzLCAyMCwgLCBmYWxzZSkKLWJyZWFrcG9pbnRBZGRlZChiLmpzLCAzLCAsIHRydWUp
CiBkZWJ1Z2dlck1vZGVsLnNldEJyZWFrcG9pbnQoYS5qczoxMDowKQorYnJlYWtwb2ludEFkZGVk
KGEuanMsIDIwLCAsIGZhbHNlKQogCiBSdW5uaW5nOiBzZXRBbmRSZW1vdmVCcmVha3BvaW50cwog
YnJlYWtwb2ludEFkZGVkKGEuanMsIDEwLCBmb28gPT0gYmFyLCB0cnVlKQotYnJlYWtwb2ludEFk
ZGVkKGEuanMsIDIwLCAsIGZhbHNlKQotYnJlYWtwb2ludEFkZGVkKGIuanMsIDMsICwgdHJ1ZSkK
IGRlYnVnZ2VyTW9kZWwuc2V0QnJlYWtwb2ludChhLmpzOjEwOjApCiticmVha3BvaW50QWRkZWQo
YS5qcywgMjAsICwgZmFsc2UpCiBicmVha3BvaW50QWRkZWQoYS5qcywgMzAsICwgdHJ1ZSkKIGRl
YnVnZ2VyTW9kZWwuc2V0QnJlYWtwb2ludChhLmpzOjMwOjApCiBicmVha3BvaW50UmVtb3ZlZChh
LmpzLCAzMCkKQEAgLTMyLDE2ICszMCwxOCBAQCBkZWJ1Z2dlck1vZGVsLnNldEJyZWFrcG9pbnQo
YS5qczoxNTowKQogCiBSdW5uaW5nOiB0ZXN0TmF2aWdhdGlvbgogYnJlYWtwb2ludEFkZGVkKGEu
anMsIDEwLCBmb28gPT0gYmFyLCB0cnVlKQotYnJlYWtwb2ludEFkZGVkKGEuanMsIDIwLCAsIGZh
bHNlKQotYnJlYWtwb2ludEFkZGVkKGIuanMsIDMsICwgdHJ1ZSkKIGRlYnVnZ2VyTW9kZWwuc2V0
QnJlYWtwb2ludChhLmpzOjEwOjApCiticmVha3BvaW50QWRkZWQoYS5qcywgMjAsICwgZmFsc2Up
CiAKIE5hdmlnYXRlIHRvIEIuCiticmVha3BvaW50QWRkZWQoYi5qcywgMywgLCB0cnVlKQogZGVi
dWdnZXJNb2RlbC5zZXRCcmVha3BvaW50KGIuanM6MzowKQogCiBOYXZpZ2F0ZSBiYWNrIHRvIEEu
CiticmVha3BvaW50QWRkZWQoYS5qcywgMTAsIGZvbyA9PSBiYXIsIHRydWUpCiBicmVha3BvaW50
UmVtb3ZlZChhLmpzLCAxMCkKIGJyZWFrcG9pbnRBZGRlZChhLmpzLCAxMSwgZm9vID09IGJhciwg
dHJ1ZSkKK2JyZWFrcG9pbnRBZGRlZChhLmpzLCAyMCwgLCBmYWxzZSkKIAogUnVubmluZzogdGVz
dEZvcm1hdHRpbmcKIGJyZWFrcG9pbnRBZGRlZChjLmpzLCA0LCAsIHRydWUpCkBAIC00OSwxNiAr
NDksMTggQEAgZGVidWdnZXJNb2RlbC5zZXRCcmVha3BvaW50KGMuanM6NDowKQogCiBGb3JtYXQg
c291cmNlLgogZGVidWdnZXJNb2RlbC5yZW1vdmVCcmVha3BvaW50KGMuanM6NDowKQotYnJlYWtw
b2ludEFkZGVkKGRlb2JmdXNjYXRlZDpjLmpzLCA0LCAsIHRydWUpCiticmVha3BvaW50QWRkZWQo
Yy5qcywgNCwgLCB0cnVlKQogZGVidWdnZXJNb2RlbC5zZXRCcmVha3BvaW50KGMuanM6MjowKQot
YnJlYWtwb2ludEFkZGVkKGRlb2JmdXNjYXRlZDpjLmpzLCA4LCAsIGZhbHNlKQorYnJlYWtwb2lu
dEFkZGVkKGMuanMsIDgsICwgZmFsc2UpCiAKIENoYW5nZSBicmVha3BvaW50cy4KLWJyZWFrcG9p
bnRSZW1vdmVkKGRlb2JmdXNjYXRlZDpjLmpzLCA4KQotYnJlYWtwb2ludEFkZGVkKGRlb2JmdXNj
YXRlZDpjLmpzLCAxMiwgLCB0cnVlKQorYnJlYWtwb2ludFJlbW92ZWQoYy5qcywgOCkKK2JyZWFr
cG9pbnRBZGRlZChjLmpzLCAxMiwgLCB0cnVlKQogZGVidWdnZXJNb2RlbC5zZXRCcmVha3BvaW50
KGMuanM6NjowKQogCiBSZWxvYWQuCi1icmVha3BvaW50UmVtb3ZlZChkZW9iZnVzY2F0ZWQ6Yy5q
cywgNCkKLWJyZWFrcG9pbnRBZGRlZChkZW9iZnVzY2F0ZWQ6Yy5qcywgNiwgLCB0cnVlKQorYnJl
YWtwb2ludEFkZGVkKGMuanMsIDQsICwgdHJ1ZSkKK2JyZWFrcG9pbnRBZGRlZChjLmpzLCAxMiwg
LCB0cnVlKQorYnJlYWtwb2ludFJlbW92ZWQoYy5qcywgNCkKK2JyZWFrcG9pbnRBZGRlZChjLmpz
LCA2LCAsIHRydWUpCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci9icmVha3BvaW50LW1hbmFnZXIuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci9icmVha3BvaW50LW1hbmFnZXIuaHRtbAppbmRleCBjNWFjNzhiNWVkNThlZWVhZWIwMzAyZDgx
NzQ2Njc1ZGU1MjMzZmY2Li5kZTIxOTBiMWY0MmQ5YTFhOTQwNjVjNjhlYWY0ZmMzYTQxNTEyOTJi
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1t
YW5hZ2VyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9p
bnQtbWFuYWdlci5odG1sCkBAIC0xMywxNyArMTMsMTcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAg
fTsKIAogICAgIHZhciB1aUJyZWFrcG9pbnRzID0ge307Ci0gICAgZnVuY3Rpb24gYnJlYWtwb2lu
dEFkZGVkKHVpU291cmNlQ29kZUlkLCBsaW5lTnVtYmVyLCBjb25kaXRpb24sIGVuYWJsZWQpCisg
ICAgZnVuY3Rpb24gYnJlYWtwb2ludEFkZGVkKHVpU291cmNlQ29kZSwgbGluZU51bWJlciwgY29u
ZGl0aW9uLCBlbmFibGVkKQogICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
ImJyZWFrcG9pbnRBZGRlZCgiICsgQXJyYXkucHJvdG90eXBlLmpvaW4uY2FsbChhcmd1bWVudHMs
ICIsICIpICsgIikiKTsKLSAgICAgICAgdmFyIGJyZWFrcG9pbnRJZCA9IHVpU291cmNlQ29kZUlk
ICsgIjoiICsgbGluZU51bWJlcjsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoImJy
ZWFrcG9pbnRBZGRlZCgiICsgW3VpU291cmNlQ29kZS51cmwsIGxpbmVOdW1iZXIsIGNvbmRpdGlv
biwgZW5hYmxlZF0uam9pbigiLCAiKSArICIpIik7CisgICAgICAgIHZhciBicmVha3BvaW50SWQg
PSB1aVNvdXJjZUNvZGUuaWQgKyAiOiIgKyBsaW5lTnVtYmVyOwogICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFzc2VydFRydWUoIShicmVha3BvaW50SWQgaW4gdWlCcmVha3BvaW50cykpOwogICAgICAg
ICB1aUJyZWFrcG9pbnRzW2JyZWFrcG9pbnRJZF0gPSBjb25kaXRpb24gKyAifCIgKyBlbmFibGVk
OwogICAgIH0KLSAgICBmdW5jdGlvbiBicmVha3BvaW50UmVtb3ZlZCh1aVNvdXJjZUNvZGVJZCwg
bGluZU51bWJlcikKKyAgICBmdW5jdGlvbiBicmVha3BvaW50UmVtb3ZlZCh1aVNvdXJjZUNvZGUs
IGxpbmVOdW1iZXIpCiAgICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiYnJl
YWtwb2ludFJlbW92ZWQoIiArIEFycmF5LnByb3RvdHlwZS5qb2luLmNhbGwoYXJndW1lbnRzLCAi
LCAiKSArICIpIik7Ci0gICAgICAgIHZhciBicmVha3BvaW50SWQgPSB1aVNvdXJjZUNvZGVJZCAr
ICI6IiArIGxpbmVOdW1iZXI7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJicmVh
a3BvaW50UmVtb3ZlZCgiICsgW3VpU291cmNlQ29kZS51cmwsIGxpbmVOdW1iZXJdLmpvaW4oIiwg
IikgKyAiKSIpOworICAgICAgICB2YXIgYnJlYWtwb2ludElkID0gdWlTb3VyY2VDb2RlLmlkICsg
IjoiICsgbGluZU51bWJlcjsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRUcnVlKGJyZWFr
cG9pbnRJZCBpbiB1aUJyZWFrcG9pbnRzKTsKICAgICAgICAgZGVsZXRlIHVpQnJlYWtwb2ludHNb
YnJlYWtwb2ludElkXTsKICAgICB9CkBAIC00OSw5ICs0OSw5IEBAIGZ1bmN0aW9uIHRlc3QoKQog
ICAgIH07CiAgICAgZGVidWdnZXJNb2RlbC5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuT2JqZWN0
LnByb3RvdHlwZTsKIAotICAgIGZ1bmN0aW9uIGNyZWF0ZUJyZWFrcG9pbnQodWlTb3VyY2VDb2Rl
SWQsIGxpbmVOdW1iZXIsIGNvbmRpdGlvbiwgZW5hYmxlZCkKKyAgICBmdW5jdGlvbiBjcmVhdGVC
cmVha3BvaW50KHNvdXJjZUZpbGVJZCwgbGluZU51bWJlciwgY29uZGl0aW9uLCBlbmFibGVkKQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIHsgc291cmNlRmlsZUlkOiB1aVNvdXJjZUNvZGVJZCwgbGlu
ZU51bWJlcjogbGluZU51bWJlciwgY29uZGl0aW9uOiBjb25kaXRpb24sIGVuYWJsZWQ6IGVuYWJs
ZWQgfTsKKyAgICAgICAgcmV0dXJuIHsgc291cmNlRmlsZUlkOiBzb3VyY2VGaWxlSWQsIGxpbmVO
dW1iZXI6IGxpbmVOdW1iZXIsIGNvbmRpdGlvbjogY29uZGl0aW9uLCBlbmFibGVkOiBlbmFibGVk
IH07CiAgICAgfQogICAgIHZhciBzZXJpYWxpemVkQnJlYWtwb2ludHMgPSBbXTsKICAgICBzZXJp
YWxpemVkQnJlYWtwb2ludHMucHVzaChjcmVhdGVCcmVha3BvaW50KCJhLmpzIiwgMTAsICJmb28g
PT0gYmFyIiwgdHJ1ZSkpOwpAQCAtOTQsNyArOTQsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAg
ICAgICAgICAgZnVuY3Rpb24gY2hlY2tSZXN1bHRzKCkKICAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICBhc3NlcnRFcXVhbHMoeyJhLmpzOjEwIjoiZm9vID09IGJhcnx0cnVlIiwiYS5qczoy
MCI6InxmYWxzZSIsImIuanM6MyI6Inx0cnVlIn0sIHVpQnJlYWtwb2ludHMpOworICAgICAgICAg
ICAgICAgIGFzc2VydEVxdWFscyh7ImEuanM6MTAiOiJmb28gPT0gYmFyfHRydWUiLCJhLmpzOjIw
IjoifGZhbHNlIn0sIHVpQnJlYWtwb2ludHMpOwogICAgICAgICAgICAgICAgIGFzc2VydEVxdWFs
cyh7ImEuanM6MTA6MCI6ICJmb28gPT0gYmFyIn0sIGRlYnVnZ2VyQnJlYWtwb2ludHMpOwogICAg
ICAgICAgICAgICAgIG5leHQoKTsKICAgICAgICAgICAgIH0KQEAgLTExMSwxMCArMTExLDEwIEBA
IGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIGJyZWFrcG9p
bnRNYW5hZ2VyLnNldEJyZWFrcG9pbnQodWlTb3VyY2VDb2RlQSwgMzAsICIiLCB0cnVlKTsKICAg
ICAgICAgICAgICAgICAvLyBSZW1vdmUgYnJlYWtwb2ludCBpbW1lZGlhdGVseSwgYnJlYWtwb2lu
dCBzaG91bGQgYmUgcmVtb3ZlZCBjb3JyZWN0bHkgZnJvbSBib3RoIGRlYnVnZ2VyIG1vZGVsIGFu
ZCBVSS4KLSAgICAgICAgICAgICAgICBicmVha3BvaW50TWFuYWdlci5yZW1vdmVCcmVha3BvaW50
KHVpU291cmNlQ29kZUEuaWQsIDMwKTsKKyAgICAgICAgICAgICAgICBicmVha3BvaW50TWFuYWdl
ci5yZW1vdmVCcmVha3BvaW50KHVpU291cmNlQ29kZUEsIDMwKTsKIAotICAgICAgICAgICAgICAg
IGJyZWFrcG9pbnRNYW5hZ2VyLnJlbW92ZUJyZWFrcG9pbnQodWlTb3VyY2VDb2RlQS5pZCwgMTAp
OwotICAgICAgICAgICAgICAgIGJyZWFrcG9pbnRNYW5hZ2VyLnJlbW92ZUJyZWFrcG9pbnQodWlT
b3VyY2VDb2RlQS5pZCwgMjApOworICAgICAgICAgICAgICAgIGJyZWFrcG9pbnRNYW5hZ2VyLnJl
bW92ZUJyZWFrcG9pbnQodWlTb3VyY2VDb2RlQSwgMTApOworICAgICAgICAgICAgICAgIGJyZWFr
cG9pbnRNYW5hZ2VyLnJlbW92ZUJyZWFrcG9pbnQodWlTb3VyY2VDb2RlQSwgMjApOwogICAgICAg
ICAgICAgICAgIHNldFRpbWVvdXQoY2hlY2tSZXN1bHRzLCAwKTsKICAgICAgICAgICAgIH0KIApA
QCAtMTcxLDYgKzE3MSw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogCiAgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoIlxuTmF2aWdhdGUgdG8gQi4iKTsKICAgICAgICAgICAgICAg
ICBicmVha3BvaW50TWFuYWdlci5kZWJ1Z2dlclJlc2V0KCk7CisgICAgICAgICAgICAgICAgdWlC
cmVha3BvaW50cyA9IHt9OwogCiAgICAgICAgICAgICAgICAgYnJlYWtwb2ludE1hbmFnZXIudWlT
b3VyY2VDb2RlQWRkZWQodWlTb3VyY2VDb2RlQik7CiAgICAgICAgICAgICAgICAgc2V0VGltZW91
dChuYXZpZ2F0ZVRvQSwgMCk7CkBAIC0xNzgsMTEgKzE3OSwxMiBAQCBmdW5jdGlvbiB0ZXN0KCkK
IAogICAgICAgICAgICAgZnVuY3Rpb24gbmF2aWdhdGVUb0EoKQogICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgIGFzc2VydEVxdWFscyh7ImEuanM6MTAiOiJmb28gPT0gYmFyfHRydWUiLCJh
LmpzOjIwIjoifGZhbHNlIiwiYi5qczozIjoifHRydWUifSwgdWlCcmVha3BvaW50cyk7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKHsiYi5qczozIjoifHRydWUifSwgdWlCcmVha3BvaW50
cyk7CiAgICAgICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKHsiYS5qczoxMDowIjoiZm9vID09IGJh
ciIsImIuanM6MzowIjoiIn0sIGRlYnVnZ2VyQnJlYWtwb2ludHMpOwogCiAgICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlxuTmF2aWdhdGUgYmFjayB0byBBLiIpOwogICAg
ICAgICAgICAgICAgIGJyZWFrcG9pbnRNYW5hZ2VyLmRlYnVnZ2VyUmVzZXQoKTsKKyAgICAgICAg
ICAgICAgICB1aUJyZWFrcG9pbnRzID0ge307CiAKICAgICAgICAgICAgICAgICB2YXIgZXZlbnRE
YXRhID0geyBicmVha3BvaW50SWQ6ICJhLmpzOjEwOjAiLCBsb2NhdGlvbjogeyBzY3JpcHRJZDog
ImEuanMiLCBsaW5lTnVtYmVyOiAxMSwgY29sdW1uTnVtYmVyOiA1IH19OwogICAgICAgICAgICAg
ICAgIGRlYnVnZ2VyTW9kZWwuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5E
ZWJ1Z2dlck1vZGVsLkV2ZW50cy5CcmVha3BvaW50UmVzb2x2ZWQsIGV2ZW50RGF0YSk7CkBAIC0x
OTIsNyArMTk0LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAKICAgICAgICAgICAgIGZ1bmN0aW9uIGNo
ZWNrUmVzdWx0cygpCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0RXF1YWxz
KHsiYS5qczoyMCI6InxmYWxzZSIsImIuanM6MyI6Inx0cnVlIiwiYS5qczoxMSI6ImZvbyA9PSBi
YXJ8dHJ1ZSJ9LCB1aUJyZWFrcG9pbnRzKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRFcXVhbHMo
eyJhLmpzOjIwIjoifGZhbHNlIiwiYS5qczoxMSI6ImZvbyA9PSBiYXJ8dHJ1ZSJ9LCB1aUJyZWFr
cG9pbnRzKTsKICAgICAgICAgICAgICAgICBhc3NlcnRFcXVhbHMoeyJhLmpzOjEwOjAiOiJmb28g
PT0gYmFyIiwiYi5qczozOjAiOiIifSwgZGVidWdnZXJCcmVha3BvaW50cyk7CiAgICAgICAgICAg
ICAgICAgY2hlY2tCcmVha3BvaW50U3RvcmFnZShbeyJzb3VyY2VGaWxlSWQiOiJhLmpzIiwibGlu
ZU51bWJlciI6MTEsImNvbmRpdGlvbiI6ImZvbyA9PSBiYXIiLCJlbmFibGVkIjp0cnVlfSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7InNvdXJjZUZpbGVJZCI6ImEu
anMiLCJsaW5lTnVtYmVyIjoyMCwiY29uZGl0aW9uIjoiIiwiZW5hYmxlZCI6ZmFsc2V9LApAQCAt
MjQ0LDcgKzI0Niw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAgICAgICAgIGFzc2VydEVx
dWFscyh7ImMuanM6MjowIjoiIn0sIGRlYnVnZ2VyQnJlYWtwb2ludHMpOwogCiAgICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlxuQ2hhbmdlIGJyZWFrcG9pbnRzLiIpOwot
ICAgICAgICAgICAgICAgIGJyZWFrcG9pbnRNYW5hZ2VyLnJlbW92ZUJyZWFrcG9pbnQodWlTb3Vy
Y2VDb2RlQ0Zvcm1hdHRlZC5pZCwgOCk7CisgICAgICAgICAgICAgICAgYnJlYWtwb2ludE1hbmFn
ZXIucmVtb3ZlQnJlYWtwb2ludCh1aVNvdXJjZUNvZGVDRm9ybWF0dGVkLCA4KTsKICAgICAgICAg
ICAgICAgICBicmVha3BvaW50TWFuYWdlci5zZXRCcmVha3BvaW50KHVpU291cmNlQ29kZUNGb3Jt
YXR0ZWQsIDEyLCAiIiwgdHJ1ZSk7CiAgICAgICAgICAgICAgICAgc2V0VGltZW91dChyZWxvYWQs
IDApOwogICAgICAgICAgICAgfQpAQCAtMjU1LDYgKzI1Nyw3IEBAIGZ1bmN0aW9uIHRlc3QoKQog
CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlxuUmVsb2FkLiIpOwog
ICAgICAgICAgICAgICAgIGJyZWFrcG9pbnRNYW5hZ2VyLmRlYnVnZ2VyUmVzZXQoKTsKKyAgICAg
ICAgICAgICAgICB1aUJyZWFrcG9pbnRzID0ge307CiAKICAgICAgICAgICAgICAgICBicmVha3Bv
aW50TWFuYWdlci51aVNvdXJjZUNvZGVBZGRlZCh1aVNvdXJjZUNvZGVDRm9ybWF0dGVkKTsKICAg
ICAgICAgICAgICAgICB2YXIgZXZlbnREYXRhID0geyBicmVha3BvaW50SWQ6ICJjLmpzOjI6MCIs
IGxvY2F0aW9uOiB7IHNjcmlwdElkOiAiYy5qcyIsIGxpbmVOdW1iZXI6IDMsIGNvbHVtbk51bWJl
cjogMCB9fTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3Jp
cHRzLXBhbmVsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1w
YW5lbC5odG1sCmluZGV4IDFjOGU0YzlmMjM4NWJkMWYwNDI2OWUzMGJkOGQyMjM0MWI0M2VjMGYu
LjkwMzZkZjNjMWVjYTA0OGJmYmMzMTFlN2E4YTAwODY2NWNjNGM1YzEgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXBhbmVsLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMtcGFuZWwuaHRtbApAQCAtMTU0LDcg
KzE1NCw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAgICAgbW9kZWwuX2FkZFNjcmlwdChj
cmVhdGVNb2NrU2NyaXB0KCJmb28uanMiLCAiMSIpKTsKICAgICAgICAgICAgIG1vZGVsLl9hZGRT
Y3JpcHQoY3JlYXRlTW9ja1NjcmlwdCgiYmFyLmpzIiwgIjIiKSk7CiAgICAgICAgICAgICB2YXIg
c291cmNlRmlsZSA9IG1vZGVsLl9yYXdTb3VyY2VDb2RlRm9yU2NyaXB0KCJiYXIuanMiKTsKLSAg
ICAgICAgICAgIHBhbmVsLl9zb3VyY2VGaWxlUmVwbGFjZWQoeyBkYXRhOiB7IG9sZFNvdXJjZUNv
ZGU6IHNvdXJjZUZpbGUsIHNvdXJjZUNvZGU6IHNvdXJjZUZpbGUgfX0pOworICAgICAgICAgICAg
cGFuZWwuX3VpU291cmNlQ29kZVJlcGxhY2VkKHsgZGF0YTogeyBvbGRTb3VyY2VDb2RlOiBzb3Vy
Y2VGaWxlLCBzb3VyY2VDb2RlOiBzb3VyY2VGaWxlIH19KTsKICAgICAgICAgICAgIHNob3dTb3Vy
Y2VGcmFtZShwYW5lbCwgImJhci5qcyIpOwogICAgICAgICAgICAgbmV4dCgpOwogICAgICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggNWM0MWRjOWI2NzA3YjQ0MGYzYzJhNGE0OGI0NTMwMDRlZGJlMjkyMi4u
MTdmNTUxOTY3ODI4ZjE2NjhjMDU3MmQ2NWMwMDY1MmQwOWEzNDM4OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDkyIEBACisyMDExLTA4LTI5ICBQYXZlbCBQb2Rpdmlsb3YgIDxwb2Rpdmlsb3ZAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IHJlbmFtZSBzb3VyY2VGaWxlIHRv
IHVpU291cmNlQ29kZSBhbmQgZ2V0IHJpZCBvZiBzb3VyY2VGaWxlSWQgd2hlcmUgcG9zc2libGUu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzEzNgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVj
dG9yL2Zyb250LWVuZC9CcmVha3BvaW50TWFuYWdlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5CcmVha3BvaW50TWFuYWdlci5wcm90b3R5cGUuYnJlYWtwb2ludHNGb3JVSVNvdXJjZUNvZGUp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRNYW5hZ2VyLnByb3RvdHlwZS5yZW1v
dmVCcmVha3BvaW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5CcmVha3BvaW50TWFuYWdlci5w
cm90b3R5cGUuX21hdGVyaWFsaXplQnJlYWtwb2ludCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
QnJlYWtwb2ludE1hbmFnZXIucHJvdG90eXBlLl9hZGRCcmVha3BvaW50VG9VSSk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuQnJlYWtwb2ludE1hbmFnZXIucHJvdG90eXBlLl9kZWxldGVCcmVha3Bv
aW50RnJvbVVJKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnRzU2lk
ZWJhclBhbmUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdEJyZWFrcG9pbnRz
U2lkZWJhclBhbmUucHJvdG90eXBlLmFkZEJyZWFrcG9pbnQpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkphdmFTY3JpcHRCcmVha3BvaW50c1NpZGViYXJQYW5lLnByb3RvdHlwZS5yZW1vdmVCcmVh
a3BvaW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0QnJlYWtwb2ludHNTaWRl
YmFyUGFuZS5wcm90b3R5cGUuaGlnaGxpZ2h0QnJlYWtwb2ludCk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuSmF2YVNjcmlwdEJyZWFrcG9pbnRzU2lkZWJhclBhbmUucHJvdG90eXBlLl9jcmVhdGVC
cmVha3BvaW50SXRlbUlkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0QnJlYWtw
b2ludHNTaWRlYmFyUGFuZS5wcm90b3R5cGUuX2JyZWFrcG9pbnRDbGlja2VkKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0QnJlYWtwb2ludHNTaWRlYmFyUGFuZS5wcm90b3R5cGUu
X2JyZWFrcG9pbnRDaGVja2JveENsaWNrZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkphdmFT
Y3JpcHRCcmVha3BvaW50c1NpZGViYXJQYW5lLnByb3RvdHlwZS5fY29udGV4dE1lbnUpOgorICAg
ICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ2FsbFN0YWNrU2lkZWJhclBhbmUuanM6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuQ2FsbFN0YWNrU2lkZWJhclBhbmUucHJvdG90eXBlLnVwZGF0ZS5k
aWRHZXRTb3VyY2VMaW5lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DYWxsU3RhY2tTaWRlYmFy
UGFuZS5wcm90b3R5cGUudXBkYXRlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0Rl
YnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdn
ZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUubGlua2lmeUxvY2F0aW9uLnVwZGF0ZUFuY2hv
ci5kaWRHZXRMb2NhdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50
YXRpb25Nb2RlbC5wcm90b3R5cGUubGlua2lmeUxvY2F0aW9uLnVwZGF0ZUFuY2hvcik6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUubGlu
a2lmeUxvY2F0aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlv
bk1vZGVsLnByb3RvdHlwZS5fYWRkU2NyaXB0LmRpZENyZWF0ZVNvdXJjZU1hcHBpbmcpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlLl9h
ZGRTY3JpcHQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9k
ZWwucHJvdG90eXBlLl91aVNvdXJjZUNvZGVSZXBsYWNlZCk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUuY2FuRWRpdFNjcmlwdFNvdXJj
ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90
b3R5cGUuX3VwZGF0ZUJyZWFrcG9pbnRzQWZ0ZXJMaXZlRWRpdCk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUuc2V0Rm9ybWF0U291cmNl
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3Rv
dHlwZS5fYWRkQ29uc29sZU1lc3NhZ2UuZGlkR2V0VUlMb2NhdGlvbik6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUuX2FkZENvbnNvbGVN
ZXNzYWdlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVs
LnByb3RvdHlwZS5jb250aW51ZVRvTGluZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdn
ZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUuYnJlYWtwb2ludHNGb3JVSVNvdXJjZUNvZGUp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90
eXBlLnNldEJyZWFrcG9pbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2Vu
dGF0aW9uTW9kZWwucHJvdG90eXBlLnNldEJyZWFrcG9pbnRFbmFibGVkKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS51cGRhdGVCcmVh
a3BvaW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVs
LnByb3RvdHlwZS5yZW1vdmVCcmVha3BvaW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1
Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5maW5kQnJlYWtwb2ludCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUuX2JyZWFr
cG9pbnRBZGRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25N
b2RlbC5wcm90b3R5cGUuX2JyZWFrcG9pbnRSZW1vdmVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5QcmVzZW50YXRpb25CcmVha3BvaW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5QcmVzZW50
YXRpb25CcmVha3BvaW50LnByb3RvdHlwZS5nZXQgdXJsKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5QcmVzZW50YXRpb25CcmVha3BvaW50LnByb3RvdHlwZS5sb2FkU25pcHBldCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuUHJlc2VuYXRpb25DYWxsRnJhbWUpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlByZXNlbmF0aW9uQ2FsbEZyYW1lLnByb3RvdHlwZS5nZXQgdXJsKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5QcmVzZW5hdGlvbkNhbGxGcmFtZS5wcm90b3R5cGUuc2VsZWN0KToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5QcmVzZW5hdGlvbkNhbGxGcmFtZS5wcm90b3R5cGUuc291cmNlTGlu
ZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanM6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5nZXQgc3RhdHVzQmFySXRl
bXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUuX3VpU291
cmNlQ29kZUFkZGVkLmdldCBpZik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVs
LnByb3RvdHlwZS5fc2hvd1NjcmlwdEZvbGRlcnNTZXR0aW5nQ2hhbmdlZCk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5fYWRkT3B0aW9uVG9GaWxlc1NlbGVj
dCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5zZXRTY3Jp
cHRTb3VyY2VJc0JlaW5nRWRpdGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFu
ZWwucHJvdG90eXBlLl9jb25zb2xlTWVzc2FnZXNDbGVhcmVkKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLl9jb25zb2xlTWVzc2FnZUFkZGVkKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLl9icmVha3BvaW50QWRkZWQp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUuX2JyZWFrcG9p
bnRSZW1vdmVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBl
Ll9kZWJ1Z2dlclBhdXNlZC5lbHNlLmRpZEdldFNvdXJjZUxvY2F0aW9uKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLl9kZWJ1Z2dlclBhdXNlZCk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5yZXNldCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5fcmVzZXRGaWxlc1NlbGVjdCk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5zaG93QW5jaG9y
TG9jYXRpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUu
X3Nob3dTb3VyY2VMaW5lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJv
dG90eXBlLl9zaG93U291cmNlRnJhbWVBbmRBZGRUb0hpc3RvcnkpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUuX2NyZWF0ZVNvdXJjZUZyYW1lKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLl9yZW1vdmVTb3VyY2VGcmFt
ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5fdWlTb3Vy
Y2VDb2RlUmVwbGFjZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90
b3R5cGUuX3NvdXJjZUZyYW1lTG9hZGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRz
UGFuZWwucHJvdG90eXBlLl9jYWxsRnJhbWVTZWxlY3RlZC5kaWRHZXRTb3VyY2VMb2NhdGlvbik6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5fY2FsbEZyYW1l
U2VsZWN0ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUu
X2ZpbGVzU2VsZWN0Q2hhbmdlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVs
LnByb3RvdHlwZS5fdG9nZ2xlRm9ybWF0U291cmNlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5T
b3VyY2VGcmFtZURlbGVnYXRlRm9yU2NyaXB0c1BhbmVsKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5Tb3VyY2VGcmFtZURlbGVnYXRlRm9yU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5yZXF1ZXN0Q29u
dGVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlRnJhbWVEZWxlZ2F0ZUZvclNjcmlw
dHNQYW5lbC5wcm90b3R5cGUuc2V0QnJlYWtwb2ludCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
U291cmNlRnJhbWVEZWxlZ2F0ZUZvclNjcmlwdHNQYW5lbC5wcm90b3R5cGUudXBkYXRlQnJlYWtw
b2ludCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlRnJhbWVEZWxlZ2F0ZUZvclNjcmlw
dHNQYW5lbC5wcm90b3R5cGUucmVtb3ZlQnJlYWtwb2ludCk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuU291cmNlRnJhbWVEZWxlZ2F0ZUZvclNjcmlwdHNQYW5lbC5wcm90b3R5cGUuZmluZEJyZWFr
cG9pbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lRGVsZWdhdGVGb3JTY3Jp
cHRzUGFuZWwucHJvdG90eXBlLmNvbnRpbnVlVG9MaW5lKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5Tb3VyY2VGcmFtZURlbGVnYXRlRm9yU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5jYW5FZGl0U2Ny
aXB0U291cmNlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZURlbGVnYXRlRm9y
U2NyaXB0c1BhbmVsLnByb3RvdHlwZS5zZXRTY3JpcHRTb3VyY2UpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlNvdXJjZUZyYW1lRGVsZWdhdGVGb3JTY3JpcHRzUGFuZWwucHJvdG90eXBlLnNldFNj
cmlwdFNvdXJjZUlzQmVpbmdFZGl0ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUZy
YW1lRGVsZWdhdGVGb3JTY3JpcHRzUGFuZWwucHJvdG90eXBlLnN1Z2dlc3RlZEZpbGVOYW1lKToK
KwogMjAxMS0wOC0yOSAgVG9tIFpha3JhanNlayAgPHRvbXpAY29kZWF1cm9yYS5vcmc+CiAKICAg
ICAgICAgY2FudmFzIGFyYygpIG1pc3NpbmcgbGluZSB0byBzdGFydCBvZiBhcmMgaWYgc3dpbmcg
aXMgemVybwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9C
cmVha3BvaW50TWFuYWdlci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
QnJlYWtwb2ludE1hbmFnZXIuanMKaW5kZXggYTgyZTlkYzI4MzZiNzAyYjY2YjJkYWUwNDg2MGY3
OWRmZDgyNjAwZC4uMmE2NGE4OGIwYTc3ZDdmYjQxZTJkNGFiZTA3OTU5YTQ0OGYzZTI2OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9CcmVha3BvaW50TWFu
YWdlci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9p
bnRNYW5hZ2VyLmpzCkBAIC02Miw5ICs2Miw5IEBAIFdlYkluc3BlY3Rvci5CcmVha3BvaW50TWFu
YWdlci5wcm90b3R5cGUgPSB7CiAgICAgICAgIH0KICAgICB9LAogCi0gICAgYnJlYWtwb2ludHNG
b3JVSVNvdXJjZUNvZGU6IGZ1bmN0aW9uKHVpU291cmNlQ29kZUlkKQorICAgIGJyZWFrcG9pbnRz
Rm9yVUlTb3VyY2VDb2RlOiBmdW5jdGlvbih1aVNvdXJjZUNvZGUpCiAgICAgewotICAgICAgICBy
ZXR1cm4gdGhpcy5fYnJlYWtwb2ludHModWlTb3VyY2VDb2RlSWQpOworICAgICAgICByZXR1cm4g
dGhpcy5fYnJlYWtwb2ludHModWlTb3VyY2VDb2RlLmlkKTsKICAgICB9LAogCiAgICAgc2V0QnJl
YWtwb2ludDogZnVuY3Rpb24odWlTb3VyY2VDb2RlLCBsaW5lTnVtYmVyLCBjb25kaXRpb24sIGVu
YWJsZWQpCkBAIC03OCw5ICs3OCw5IEBAIFdlYkluc3BlY3Rvci5CcmVha3BvaW50TWFuYWdlci5w
cm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX21hdGVyaWFsaXplQnJlYWtwb2ludChicmVha3Bv
aW50LCB1aVNvdXJjZUNvZGUpOwogICAgIH0sCiAKLSAgICByZW1vdmVCcmVha3BvaW50OiBmdW5j
dGlvbih1aVNvdXJjZUNvZGVJZCwgbGluZU51bWJlcikKKyAgICByZW1vdmVCcmVha3BvaW50OiBm
dW5jdGlvbih1aVNvdXJjZUNvZGUsIGxpbmVOdW1iZXIpCiAgICAgewotICAgICAgICB2YXIgYnJl
YWtwb2ludCA9IHRoaXMuX2JyZWFrcG9pbnQodWlTb3VyY2VDb2RlSWQsIGxpbmVOdW1iZXIpOwor
ICAgICAgICB2YXIgYnJlYWtwb2ludCA9IHRoaXMuX2JyZWFrcG9pbnQodWlTb3VyY2VDb2RlLmlk
LCBsaW5lTnVtYmVyKTsKICAgICAgICAgaWYgKCFicmVha3BvaW50KQogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB0aGlzLl9kZWxldGVCcmVha3BvaW50RnJvbVVJKGJyZWFrcG9pbnQpOwpA
QCAtOTAsNiArOTAsOCBAQCBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludE1hbmFnZXIucHJvdG90eXBl
ID0gewogICAgIF9tYXRlcmlhbGl6ZUJyZWFrcG9pbnQ6IGZ1bmN0aW9uKGJyZWFrcG9pbnQsIHVp
U291cmNlQ29kZSkKICAgICB7CiAgICAgICAgIGJyZWFrcG9pbnQuX3VpU291cmNlQ29kZSA9IHVp
U291cmNlQ29kZTsKKyAgICAgICAgdGhpcy5fYnJlYWtwb2ludEFkZGVkRGVsZWdhdGUoYnJlYWtw
b2ludC5fdWlTb3VyY2VDb2RlLCBicmVha3BvaW50LmxpbmVOdW1iZXIsIGJyZWFrcG9pbnQuY29u
ZGl0aW9uLCBicmVha3BvaW50LmVuYWJsZWQpOworCiAgICAgICAgIGlmICghYnJlYWtwb2ludC5l
bmFibGVkIHx8IGJyZWFrcG9pbnQuX2RlYnVnZ2VySWQpCiAgICAgICAgICAgICByZXR1cm47CiAK
QEAgLTExNCw3ICsxMTYsOCBAQCBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludE1hbmFnZXIucHJvdG90
eXBlID0gewogICAgICAgICBjb25zb2xlLmFzc2VydCghdGhpcy5fYnJlYWtwb2ludChicmVha3Bv
aW50LnVpU291cmNlQ29kZUlkLCBicmVha3BvaW50LmxpbmVOdW1iZXIpKTsKICAgICAgICAgdGhp
cy5fYnJlYWtwb2ludHMoYnJlYWtwb2ludC51aVNvdXJjZUNvZGVJZClbYnJlYWtwb2ludC5saW5l
TnVtYmVyXSA9IGJyZWFrcG9pbnQ7CiAgICAgICAgIHRoaXMuX3NhdmVCcmVha3BvaW50cygpOwot
ICAgICAgICB0aGlzLl9icmVha3BvaW50QWRkZWREZWxlZ2F0ZShicmVha3BvaW50LnVpU291cmNl
Q29kZUlkLCBicmVha3BvaW50LmxpbmVOdW1iZXIsIGJyZWFrcG9pbnQuY29uZGl0aW9uLCBicmVh
a3BvaW50LmVuYWJsZWQpOworICAgICAgICBpZiAoYnJlYWtwb2ludC5fdWlTb3VyY2VDb2RlKQor
ICAgICAgICAgICAgdGhpcy5fYnJlYWtwb2ludEFkZGVkRGVsZWdhdGUoYnJlYWtwb2ludC5fdWlT
b3VyY2VDb2RlLCBicmVha3BvaW50LmxpbmVOdW1iZXIsIGJyZWFrcG9pbnQuY29uZGl0aW9uLCBi
cmVha3BvaW50LmVuYWJsZWQpOwogICAgIH0sCiAKICAgICBfZGVsZXRlQnJlYWtwb2ludEZyb21V
STogZnVuY3Rpb24oYnJlYWtwb2ludCkKQEAgLTEyMiw3ICsxMjUsOCBAQCBXZWJJbnNwZWN0b3Iu
QnJlYWtwb2ludE1hbmFnZXIucHJvdG90eXBlID0gewogICAgICAgICBjb25zb2xlLmFzc2VydCh0
aGlzLl9icmVha3BvaW50KGJyZWFrcG9pbnQudWlTb3VyY2VDb2RlSWQsIGJyZWFrcG9pbnQubGlu
ZU51bWJlcikgPT09IGJyZWFrcG9pbnQpOwogICAgICAgICBkZWxldGUgdGhpcy5fYnJlYWtwb2lu
dHMoYnJlYWtwb2ludC51aVNvdXJjZUNvZGVJZClbYnJlYWtwb2ludC5saW5lTnVtYmVyXTsKICAg
ICAgICAgdGhpcy5fc2F2ZUJyZWFrcG9pbnRzKCk7Ci0gICAgICAgIHRoaXMuX2JyZWFrcG9pbnRS
ZW1vdmVkRGVsZWdhdGUoYnJlYWtwb2ludC51aVNvdXJjZUNvZGVJZCwgYnJlYWtwb2ludC5saW5l
TnVtYmVyKTsKKyAgICAgICAgaWYgKGJyZWFrcG9pbnQuX3VpU291cmNlQ29kZSkKKyAgICAgICAg
ICAgIHRoaXMuX2JyZWFrcG9pbnRSZW1vdmVkRGVsZWdhdGUoYnJlYWtwb2ludC5fdWlTb3VyY2VD
b2RlLCBicmVha3BvaW50LmxpbmVOdW1iZXIpOwogICAgIH0sCiAKICAgICBfbW92ZUJyZWFrcG9p
bnRJblVJOiBmdW5jdGlvbihicmVha3BvaW50LCBsaW5lTnVtYmVyKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9CcmVha3BvaW50c1NpZGViYXJQYW5lLmpz
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9CcmVha3BvaW50c1NpZGViYXJQ
YW5lLmpzCmluZGV4IDczMmM4ZmMzMTVjZmNmMDJiZTc5MTBkY2M5M2YzMzA3OTEwMzg0ZGUuLjNl
N2NmY2YzZmYxOWZhMmFkYjFhZDBmOTEzNjg3MmFjYTgwMjYwZTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQnJlYWtwb2ludHNTaWRlYmFyUGFuZS5qcwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnRzU2lkZWJh
clBhbmUuanMKQEAgLTg0LDE1ICs4NCwxNSBAQCBXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdEJyZWFr
cG9pbnRzU2lkZWJhclBhbmUucHJvdG90eXBlID0gewogICAgICAgICB2YXIgYnJlYWtwb2ludEl0
ZW0gPSB7fTsKICAgICAgICAgYnJlYWtwb2ludEl0ZW0uZWxlbWVudCA9IGVsZW1lbnQ7CiAgICAg
ICAgIGJyZWFrcG9pbnRJdGVtLmNoZWNrYm94ID0gY2hlY2tib3g7Ci0gICAgICAgIHRoaXMuX2l0
ZW1zW3RoaXMuX2NyZWF0ZUJyZWFrcG9pbnRJdGVtSWQoYnJlYWtwb2ludC5zb3VyY2VGaWxlSWQs
IGJyZWFrcG9pbnQubGluZU51bWJlcildID0gYnJlYWtwb2ludEl0ZW07CisgICAgICAgIHRoaXMu
X2l0ZW1zW3RoaXMuX2NyZWF0ZUJyZWFrcG9pbnRJdGVtSWQoYnJlYWtwb2ludC51aVNvdXJjZUNv
ZGUsIGJyZWFrcG9pbnQubGluZU51bWJlcildID0gYnJlYWtwb2ludEl0ZW07CiAKICAgICAgICAg
aWYgKCF0aGlzLmV4cGFuZGVkKQogICAgICAgICAgICAgdGhpcy5leHBhbmRlZCA9IHRydWU7CiAg
ICAgfSwKIAotICAgIHJlbW92ZUJyZWFrcG9pbnQ6IGZ1bmN0aW9uKHNvdXJjZUZpbGVJZCwgbGlu
ZU51bWJlcikKKyAgICByZW1vdmVCcmVha3BvaW50OiBmdW5jdGlvbih1aVNvdXJjZUNvZGUsIGxp
bmVOdW1iZXIpCiAgICAgewotICAgICAgICB2YXIgYnJlYWtwb2ludEl0ZW1JZCA9IHRoaXMuX2Ny
ZWF0ZUJyZWFrcG9pbnRJdGVtSWQoc291cmNlRmlsZUlkLCBsaW5lTnVtYmVyKTsKKyAgICAgICAg
dmFyIGJyZWFrcG9pbnRJdGVtSWQgPSB0aGlzLl9jcmVhdGVCcmVha3BvaW50SXRlbUlkKHVpU291
cmNlQ29kZSwgbGluZU51bWJlcik7CiAgICAgICAgIHZhciBicmVha3BvaW50SXRlbSA9IHRoaXMu
X2l0ZW1zW2JyZWFrcG9pbnRJdGVtSWRdOwogICAgICAgICBpZiAoIWJyZWFrcG9pbnRJdGVtKQog
ICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTAwLDkgKzEwMCw5IEBAIFdlYkluc3BlY3Rvci5KYXZh
U2NyaXB0QnJlYWtwb2ludHNTaWRlYmFyUGFuZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMu
X3JlbW92ZUxpc3RFbGVtZW50KGJyZWFrcG9pbnRJdGVtLmVsZW1lbnQpOwogICAgIH0sCiAKLSAg
ICBoaWdobGlnaHRCcmVha3BvaW50OiBmdW5jdGlvbihzb3VyY2VGaWxlSWQsIGxpbmVOdW1iZXIp
CisgICAgaGlnaGxpZ2h0QnJlYWtwb2ludDogZnVuY3Rpb24odWlTb3VyY2VDb2RlLCBsaW5lTnVt
YmVyKQogICAgIHsKLSAgICAgICAgdmFyIGJyZWFrcG9pbnRJdGVtID0gdGhpcy5faXRlbXNbdGhp
cy5fY3JlYXRlQnJlYWtwb2ludEl0ZW1JZChzb3VyY2VGaWxlSWQsIGxpbmVOdW1iZXIpXTsKKyAg
ICAgICAgdmFyIGJyZWFrcG9pbnRJdGVtID0gdGhpcy5faXRlbXNbdGhpcy5fY3JlYXRlQnJlYWtw
b2ludEl0ZW1JZCh1aVNvdXJjZUNvZGUsIGxpbmVOdW1iZXIpXTsKICAgICAgICAgaWYgKCFicmVh
a3BvaW50SXRlbSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgYnJlYWtwb2ludEl0ZW0u
ZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJicmVha3BvaW50LWhpdCIpOwpAQCAtMTE3LDE0ICsxMTcs
MTQgQEAgV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRCcmVha3BvaW50c1NpZGViYXJQYW5lLnByb3Rv
dHlwZSA9IHsKICAgICAgICAgfQogICAgIH0sCiAKLSAgICBfY3JlYXRlQnJlYWtwb2ludEl0ZW1J
ZDogZnVuY3Rpb24oc291cmNlRmlsZUlkLCBsaW5lTnVtYmVyKQorICAgIF9jcmVhdGVCcmVha3Bv
aW50SXRlbUlkOiBmdW5jdGlvbih1aVNvdXJjZUNvZGUsIGxpbmVOdW1iZXIpCiAgICAgewotICAg
ICAgICByZXR1cm4gc291cmNlRmlsZUlkICsgIjoiICsgbGluZU51bWJlcjsKKyAgICAgICAgcmV0
dXJuIHVpU291cmNlQ29kZS5pZCArICI6IiArIGxpbmVOdW1iZXI7CiAgICAgfSwKIAogICAgIF9i
cmVha3BvaW50Q2xpY2tlZDogZnVuY3Rpb24oYnJlYWtwb2ludCwgZXZlbnQpCiAgICAgewotICAg
ICAgICB0aGlzLl9zaG93U291cmNlTGluZURlbGVnYXRlKGJyZWFrcG9pbnQuc291cmNlRmlsZUlk
LCBicmVha3BvaW50LmxpbmVOdW1iZXIpOworICAgICAgICB0aGlzLl9zaG93U291cmNlTGluZURl
bGVnYXRlKGJyZWFrcG9pbnQudWlTb3VyY2VDb2RlLCBicmVha3BvaW50LmxpbmVOdW1iZXIpOwog
ICAgIH0sCiAKICAgICBfYnJlYWtwb2ludENoZWNrYm94Q2xpY2tlZDogZnVuY3Rpb24oYnJlYWtw
b2ludCwgZXZlbnQpCkBAIC0xMzIsMTQgKzEzMiwxNCBAQCBXZWJJbnNwZWN0b3IuSmF2YVNjcmlw
dEJyZWFrcG9pbnRzU2lkZWJhclBhbmUucHJvdG90eXBlID0gewogICAgICAgICAvLyBCcmVha3Bv
aW50IGVsZW1lbnQgaGFzIGl0J3Mgb3duIGNsaWNrIGhhbmRsZXIuCiAgICAgICAgIGV2ZW50LnN0
b3BQcm9wYWdhdGlvbigpOwogCi0gICAgICAgIHRoaXMuX21vZGVsLnNldEJyZWFrcG9pbnRFbmFi
bGVkKGJyZWFrcG9pbnQuc291cmNlRmlsZUlkLCBicmVha3BvaW50LmxpbmVOdW1iZXIsIGV2ZW50
LnRhcmdldC5jaGVja2VkKTsKKyAgICAgICAgdGhpcy5fbW9kZWwuc2V0QnJlYWtwb2ludEVuYWJs
ZWQoYnJlYWtwb2ludC51aVNvdXJjZUNvZGUsIGJyZWFrcG9pbnQubGluZU51bWJlciwgZXZlbnQu
dGFyZ2V0LmNoZWNrZWQpOwogICAgIH0sCiAKICAgICBfY29udGV4dE1lbnU6IGZ1bmN0aW9uKGJy
ZWFrcG9pbnQsIGV2ZW50KQogICAgIHsKICAgICAgICAgdmFyIGNvbnRleHRNZW51ID0gbmV3IFdl
Ykluc3BlY3Rvci5Db250ZXh0TWVudSgpOwogCi0gICAgICAgIHZhciByZW1vdmVIYW5kbGVyID0g
dGhpcy5fbW9kZWwucmVtb3ZlQnJlYWtwb2ludC5iaW5kKHRoaXMuX21vZGVsLCBicmVha3BvaW50
LnNvdXJjZUZpbGVJZCwgYnJlYWtwb2ludC5saW5lTnVtYmVyKTsKKyAgICAgICAgdmFyIHJlbW92
ZUhhbmRsZXIgPSB0aGlzLl9tb2RlbC5yZW1vdmVCcmVha3BvaW50LmJpbmQodGhpcy5fbW9kZWws
IGJyZWFrcG9pbnQudWlTb3VyY2VDb2RlLCBicmVha3BvaW50LmxpbmVOdW1iZXIpOwogICAgICAg
ICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdlYkluc3BlY3Rvci5VSVN0cmluZygiUmVtb3ZlIEJy
ZWFrcG9pbnQiKSwgcmVtb3ZlSGFuZGxlcik7CiAKICAgICAgICAgY29udGV4dE1lbnUuc2hvdyhl
dmVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Nh
bGxTdGFja1NpZGViYXJQYW5lLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9DYWxsU3RhY2tTaWRlYmFyUGFuZS5qcwppbmRleCBlNTk2MzE0MzcyMzg4MDlkY2I5NDM3ZDE5
MTg4ZjI5Y2JiODA3ZjNjLi4xYzIxNTIwZDlhMTIzYzNiOTNiZjg5YmI3MjQ4NjNhMGM3YTI1OWQ1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NhbGxTdGFj
a1NpZGViYXJQYW5lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
Q2FsbFN0YWNrU2lkZWJhclBhbmUuanMKQEAgLTYwLDcgKzYwLDcgQEAgV2ViSW5zcGVjdG9yLkNh
bGxTdGFja1NpZGViYXJQYW5lLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHBsYWNhcmQuY2Fs
bEZyYW1lID0gY2FsbEZyYW1lOwogICAgICAgICAgICAgcGxhY2FyZC5lbGVtZW50LmFkZEV2ZW50
TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5fcGxhY2FyZFNlbGVjdGVkLmJpbmQodGhpcywgcGxhY2Fy
ZCksIGZhbHNlKTsKIAotICAgICAgICAgICAgZnVuY3Rpb24gZGlkR2V0U291cmNlTGluZShwbGFj
YXJkLCBzb3VyY2VGaWxlSWQsIGxpbmVOdW1iZXIpCisgICAgICAgICAgICBmdW5jdGlvbiBkaWRH
ZXRTb3VyY2VMaW5lKHBsYWNhcmQsIHVpU291cmNlQ29kZSwgbGluZU51bWJlcikKICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICBpZiAocGxhY2FyZC5zdWJ0aXRsZSkKICAgICAgICAgICAg
ICAgICAgICAgcGxhY2FyZC5zdWJ0aXRsZSArPSAiOiIgKyAobGluZU51bWJlciArIDEpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlclByZXNl
bnRhdGlvbk1vZGVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1
Z2dlclByZXNlbnRhdGlvbk1vZGVsLmpzCmluZGV4IDMwNmE0MDllMzZkNDU0ZmE5ODNhMjgyYzc2
MGU1NjMzZTZlY2NkMWIuLjZiYmEyY2M3Mjc3ZjExZWU5MTllNDhjZjY0NDI1Yjc4ZmZlN2I2MWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJQ
cmVzZW50YXRpb25Nb2RlbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0RlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuanMKQEAgLTU4LDggKzU4LDggQEAgV2ViSW5z
cGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwgPSBmdW5jdGlvbigpCiB9CiAKIFdlYklu
c3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLkV2ZW50cyA9IHsKLSAgICBTb3VyY2VG
aWxlQWRkZWQ6ICJzb3VyY2UtZmlsZS1hZGRlZCIsCi0gICAgU291cmNlRmlsZVJlcGxhY2VkOiAi
c291cmNlLWZpbGUtcmVwbGFjZWQiLAorICAgIFVJU291cmNlQ29kZUFkZGVkOiAic291cmNlLWZp
bGUtYWRkZWQiLAorICAgIFVJU291cmNlQ29kZVJlcGxhY2VkOiAic291cmNlLWZpbGUtcmVwbGFj
ZWQiLAogICAgIENvbnNvbGVNZXNzYWdlQWRkZWQ6ICJjb25zb2xlLW1lc3NhZ2UtYWRkZWQiLAog
ICAgIENvbnNvbGVNZXNzYWdlc0NsZWFyZWQ6ICJjb25zb2xlLW1lc3NhZ2VzLWNsZWFyZWQiLAog
ICAgIEJyZWFrcG9pbnRBZGRlZDogImJyZWFrcG9pbnQtYWRkZWQiLApAQCAtNzAsMTMgKzcwLDYg
QEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuRXZlbnRzID0gewogfQog
CiBXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUgPSB7Ci0g
ICAgdWlTb3VyY2VDb2RlOiBmdW5jdGlvbih1aVNvdXJjZUNvZGVJZCkKLSAgICB7Ci0gICAgICAg
IC8vIEZJWE1FOiBnZXQgcmlkIG9mIHVpU291cmNlQ29kZUlkIChjdXJyZW50bHkgdWlTb3VyY2VD
b2RlSWQgPT0gcmF3U291cmNlQ29kZUlkKS4KLSAgICAgICAgdmFyIHJhd1NvdXJjZUNvZGUgPSB0
aGlzLl9yYXdTb3VyY2VDb2RlW3VpU291cmNlQ29kZUlkXTsKLSAgICAgICAgcmV0dXJuIHJhd1Nv
dXJjZUNvZGUgJiYgcmF3U291cmNlQ29kZS51aVNvdXJjZUNvZGU7Ci0gICAgfSwKLQogICAgIF9z
Y3JpcHRMb2NhdGlvblRvVUlMb2NhdGlvbjogZnVuY3Rpb24oc291cmNlVVJMLCBzY3JpcHRJZCwg
bGluZU51bWJlciwgY29sdW1uTnVtYmVyLCBjYWxsYmFjaykKICAgICB7CiAgICAgICAgIHZhciBy
YXdTb3VyY2VDb2RlID0gdGhpcy5fcmF3U291cmNlQ29kZUZvclNjcmlwdChzb3VyY2VVUkwsIHNj
cmlwdElkKTsKQEAgLTkxLDkgKzg0LDkgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0
aW9uTW9kZWwucHJvdG90eXBlID0gewogICAgICAgICByYXdTb3VyY2VDb2RlLmNyZWF0ZVNvdXJj
ZU1hcHBpbmdJZk5lZWRlZChkaWRDcmVhdGVTb3VyY2VNYXBwaW5nKTsKICAgICB9LAogCi0gICAg
X3VpTG9jYXRpb25Ub1NjcmlwdExvY2F0aW9uOiBmdW5jdGlvbih1aVNvdXJjZUNvZGVJZCwgbGlu
ZU51bWJlciwgY2FsbGJhY2spCisgICAgX3VpTG9jYXRpb25Ub1NjcmlwdExvY2F0aW9uOiBmdW5j
dGlvbih1aVNvdXJjZUNvZGUsIGxpbmVOdW1iZXIsIGNhbGxiYWNrKQogICAgIHsKLSAgICAgICAg
dmFyIHJhd1NvdXJjZUNvZGUgPSB0aGlzLnVpU291cmNlQ29kZSh1aVNvdXJjZUNvZGVJZCkucmF3
U291cmNlQ29kZTsKKyAgICAgICAgdmFyIHJhd1NvdXJjZUNvZGUgPSB1aVNvdXJjZUNvZGUucmF3
U291cmNlQ29kZTsKIAogICAgICAgICBmdW5jdGlvbiBkaWRDcmVhdGVTb3VyY2VNYXBwaW5nKCkK
ICAgICAgICAgewpAQCAtMTMzLDggKzEyNiw4IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNl
bnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICBhbmNob3IudGV4dENvbnRlbnQgPSBXZWJJbnNwZWN0b3IuZm9ybWF0TGlua1RleHQodWlTb3Vy
Y2VDb2RlLnVybCwgbGluZU51bWJlcik7CiAgICAgICAgICAgICAgICAgYW5jaG9yLnNldEF0dHJp
YnV0ZSgicHJlZmVycmVkX3BhbmVsIiwgInNjcmlwdHMiKTsKLSAgICAgICAgICAgICAgICBhbmNo
b3Iuc2V0QXR0cmlidXRlKCJzb3VyY2VfZmlsZV9pZCIsIHVpU291cmNlQ29kZS5pZCk7Ci0gICAg
ICAgICAgICAgICAgYW5jaG9yLnNldEF0dHJpYnV0ZSgibGluZV9udW1iZXIiLCBsaW5lTnVtYmVy
KTsKKyAgICAgICAgICAgICAgICBhbmNob3IudWlTb3VyY2VDb2RlID0gdWlTb3VyY2VDb2RlOwor
ICAgICAgICAgICAgICAgIGFuY2hvci5saW5lTnVtYmVyID0gbGluZU51bWJlcjsKICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIHRoaXMuX3NjcmlwdExvY2F0aW9uVG9VSUxvY2F0aW9uKHNvdXJj
ZVVSTCwgbnVsbCwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyLCBkaWRHZXRMb2NhdGlvbi5iaW5k
KHRoaXMpKTsKICAgICAgICAgfQpAQCAtMTY5LDM4ICsxNjIsMzMgQEAgV2ViSW5zcGVjdG9yLkRl
YnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlID0gewogICAgICAgICBmdW5jdGlvbiBk
aWRDcmVhdGVTb3VyY2VNYXBwaW5nKCkKICAgICAgICAgewogICAgICAgICAgICAgdGhpcy5fYnJl
YWtwb2ludE1hbmFnZXIudWlTb3VyY2VDb2RlQWRkZWQocmF3U291cmNlQ29kZS51aVNvdXJjZUNv
ZGUpOwotICAgICAgICAgICAgdmFyIGJyZWFrcG9pbnRzID0gdGhpcy5fYnJlYWtwb2ludE1hbmFn
ZXIuYnJlYWtwb2ludHNGb3JVSVNvdXJjZUNvZGUocmF3U291cmNlQ29kZS51aVNvdXJjZUNvZGUu
aWQpOwotICAgICAgICAgICAgZm9yICh2YXIgbGluZU51bWJlciBpbiBicmVha3BvaW50cykgewot
ICAgICAgICAgICAgICAgIHZhciBicmVha3BvaW50ID0gYnJlYWtwb2ludHNbbGluZU51bWJlcl07
Ci0gICAgICAgICAgICAgICAgdGhpcy5fYnJlYWtwb2ludEFkZGVkKGJyZWFrcG9pbnQudWlTb3Vy
Y2VDb2RlSWQsIGJyZWFrcG9pbnQubGluZU51bWJlciwgYnJlYWtwb2ludC5jb25kaXRpb24sIGJy
ZWFrcG9pbnQuZW5hYmxlZCk7Ci0gICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgLy8g
RklYTUU6IGZvcmNlIHNvdXJjZSBmb3JtYXR0aW5nIGlmIG5lZWRlZC4gVGhpcyB3aWxsIGdvIGF3
YXkgb25jZSBmb3JtYXR0aW5nCiAgICAgICAgIC8vIGlzIGZ1bGx5IGVuY2Fwc3VsYXRlZCBpbiBS
YXdTb3VyY2VDb2RlIGNsYXNzLgogICAgICAgICByYXdTb3VyY2VDb2RlLmNyZWF0ZVNvdXJjZU1h
cHBpbmdJZk5lZWRlZChkaWRDcmVhdGVTb3VyY2VNYXBwaW5nLmJpbmQodGhpcykpOwogCiAgICAg
ICAgIHZhciB1aVNvdXJjZUNvZGUgPSByYXdTb3VyY2VDb2RlLnVpU291cmNlQ29kZTsKLSAgICAg
ICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJl
c2VudGF0aW9uTW9kZWwuRXZlbnRzLlNvdXJjZUZpbGVBZGRlZCwgdWlTb3VyY2VDb2RlKTsKKyAg
ICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkRlYnVnZ2Vy
UHJlc2VudGF0aW9uTW9kZWwuRXZlbnRzLlVJU291cmNlQ29kZUFkZGVkLCB1aVNvdXJjZUNvZGUp
OwogICAgIH0sCiAKICAgICBfdWlTb3VyY2VDb2RlUmVwbGFjZWQ6IGZ1bmN0aW9uKGV2ZW50KQog
ICAgIHsKICAgICAgICAgLy8gRklYTUU6IHJlc3RvcmUgYnJlYWtwb2ludHMgaW4gbmV3IHNvdXJj
ZSBjb2RlIChjdXJyZW50bHkgd2UganVzdCByZWNyZWF0ZSBldmVyeXRoaW5nIHdoZW4gc3dpdGNo
aW5nIHRvIHByZXR0eS1wcmludCBtb2RlKS4KLSAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9M
aXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuRXZlbnRzLlNv
dXJjZUZpbGVSZXBsYWNlZCwgZXZlbnQuZGF0YSk7CisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVu
dFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLkV2ZW50
cy5VSVNvdXJjZUNvZGVSZXBsYWNlZCwgZXZlbnQuZGF0YSk7CiAgICAgfSwKIAotICAgIGNhbkVk
aXRTY3JpcHRTb3VyY2U6IGZ1bmN0aW9uKHVpU291cmNlQ29kZUlkKQorICAgIGNhbkVkaXRTY3Jp
cHRTb3VyY2U6IGZ1bmN0aW9uKHVpU291cmNlQ29kZSkKICAgICB7CiAgICAgICAgIGlmICghUHJl
ZmVyZW5jZXMuY2FuRWRpdFNjcmlwdFNvdXJjZSB8fCB0aGlzLl9mb3JtYXRTb3VyY2UpCiAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIHZhciByYXdTb3VyY2VDb2RlID0gdGhpcy51
aVNvdXJjZUNvZGUodWlTb3VyY2VDb2RlSWQpLnJhd1NvdXJjZUNvZGU7CisgICAgICAgIHZhciBy
YXdTb3VyY2VDb2RlID0gdWlTb3VyY2VDb2RlLnJhd1NvdXJjZUNvZGU7CiAgICAgICAgIHZhciBz
Y3JpcHQgPSB0aGlzLl9zY3JpcHRGb3JSYXdTb3VyY2VDb2RlKHJhd1NvdXJjZUNvZGUpOwogICAg
ICAgICByZXR1cm4gIXNjcmlwdC5saW5lT2Zmc2V0ICYmICFzY3JpcHQuY29sdW1uT2Zmc2V0Owog
ICAgIH0sCiAKLSAgICBzZXRTY3JpcHRTb3VyY2U6IGZ1bmN0aW9uKHVpU291cmNlQ29kZUlkLCBu
ZXdTb3VyY2UsIGNhbGxiYWNrKQorICAgIHNldFNjcmlwdFNvdXJjZTogZnVuY3Rpb24odWlTb3Vy
Y2VDb2RlLCBuZXdTb3VyY2UsIGNhbGxiYWNrKQogICAgIHsKLSAgICAgICAgdmFyIHJhd1NvdXJj
ZUNvZGUgPSB0aGlzLnVpU291cmNlQ29kZSh1aVNvdXJjZUNvZGVJZCkucmF3U291cmNlQ29kZTsK
KyAgICAgICAgdmFyIHJhd1NvdXJjZUNvZGUgPSB1aVNvdXJjZUNvZGUucmF3U291cmNlQ29kZTsK
ICAgICAgICAgdmFyIHNjcmlwdCA9IHRoaXMuX3NjcmlwdEZvclJhd1NvdXJjZUNvZGUocmF3U291
cmNlQ29kZSk7CiAKICAgICAgICAgZnVuY3Rpb24gZGlkRWRpdFNjcmlwdFNvdXJjZShlcnJvcikK
QEAgLTIyMSwxNiArMjA5LDE2IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1v
ZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuc2V0
U2NyaXB0U291cmNlKHNjcmlwdC5zY3JpcHRJZCwgbmV3U291cmNlLCBkaWRFZGl0U2NyaXB0U291
cmNlLmJpbmQodGhpcykpOwogICAgIH0sCiAKLSAgICBfdXBkYXRlQnJlYWtwb2ludHNBZnRlckxp
dmVFZGl0OiBmdW5jdGlvbih1aVNvdXJjZUNvZGVJZCwgb2xkU291cmNlLCBuZXdTb3VyY2UpCisg
ICAgX3VwZGF0ZUJyZWFrcG9pbnRzQWZ0ZXJMaXZlRWRpdDogZnVuY3Rpb24odWlTb3VyY2VDb2Rl
LCBvbGRTb3VyY2UsIG5ld1NvdXJjZSkKICAgICB7Ci0gICAgICAgIHZhciBicmVha3BvaW50cyA9
IHRoaXMuX2JyZWFrcG9pbnRNYW5hZ2VyLmJyZWFrcG9pbnRzRm9yVUlTb3VyY2VDb2RlKHVpU291
cmNlQ29kZUlkKTsKKyAgICAgICAgdmFyIGJyZWFrcG9pbnRzID0gdGhpcy5fYnJlYWtwb2ludE1h
bmFnZXIuYnJlYWtwb2ludHNGb3JVSVNvdXJjZUNvZGUodWlTb3VyY2VDb2RlKTsKIAogICAgICAg
ICAvLyBDbGVhciBhbmQgcmUtY3JlYXRlIGJyZWFrcG9pbnRzIGFjY29yZGluZyB0byB0ZXh0IGRp
ZmYuCiAgICAgICAgIHZhciBkaWZmID0gQXJyYXkuZGlmZihvbGRTb3VyY2Uuc3BsaXQoIlxuIiks
IG5ld1NvdXJjZS5zcGxpdCgiXG4iKSk7CiAgICAgICAgIGZvciAodmFyIGxpbmVOdW1iZXIgaW4g
YnJlYWtwb2ludHMpIHsKICAgICAgICAgICAgIHZhciBicmVha3BvaW50ID0gYnJlYWtwb2ludHNb
bGluZU51bWJlcl07CiAKLSAgICAgICAgICAgIHRoaXMucmVtb3ZlQnJlYWtwb2ludCh1aVNvdXJj
ZUNvZGVJZCwgbGluZU51bWJlcik7CisgICAgICAgICAgICB0aGlzLnJlbW92ZUJyZWFrcG9pbnQo
dWlTb3VyY2VDb2RlLCBsaW5lTnVtYmVyKTsKIAogICAgICAgICAgICAgdmFyIG5ld0xpbmVOdW1i
ZXIgPSBkaWZmLmxlZnRbbGluZU51bWJlcl0ucm93OwogICAgICAgICAgICAgaWYgKG5ld0xpbmVO
dW1iZXIgPT09IHVuZGVmaW5lZCkgewpAQCAtMjQ3LDExICsyMzUsMTEgQEAgV2ViSW5zcGVjdG9y
LkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlmIChuZXdMaW5lTnVtYmVyICE9PSB1bmRl
ZmluZWQpCi0gICAgICAgICAgICAgICAgdGhpcy5zZXRCcmVha3BvaW50KHVpU291cmNlQ29kZUlk
LCBuZXdMaW5lTnVtYmVyLCBicmVha3BvaW50LmNvbmRpdGlvbiwgYnJlYWtwb2ludC5lbmFibGVk
KTsKKyAgICAgICAgICAgICAgICB0aGlzLnNldEJyZWFrcG9pbnQodWlTb3VyY2VDb2RlLCBuZXdM
aW5lTnVtYmVyLCBicmVha3BvaW50LmNvbmRpdGlvbiwgYnJlYWtwb2ludC5lbmFibGVkKTsKICAg
ICAgICAgfQogICAgIH0sCiAKLSAgICBzZXRGb3JtYXRTb3VyY2VGaWxlczogZnVuY3Rpb24oZm9y
bWF0U291cmNlKQorICAgIHNldEZvcm1hdFNvdXJjZTogZnVuY3Rpb24oZm9ybWF0U291cmNlKQog
ICAgIHsKICAgICAgICAgaWYgKHRoaXMuX2Zvcm1hdFNvdXJjZSA9PT0gZm9ybWF0U291cmNlKQog
ICAgICAgICAgICAgcmV0dXJuOwpAQCAtMjk2LDcgKzI4NCw3IEBAIFdlYkluc3BlY3Rvci5EZWJ1
Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgZnVuY3Rpb24gZGlk
R2V0VUlMb2NhdGlvbih1aVNvdXJjZUNvZGUsIGxpbmVOdW1iZXIpCiAgICAgICAgIHsKICAgICAg
ICAgICAgIHZhciBwcmVzZW50YXRpb25NZXNzYWdlID0ge307Ci0gICAgICAgICAgICBwcmVzZW50
YXRpb25NZXNzYWdlLnNvdXJjZUZpbGVJZCA9IHVpU291cmNlQ29kZS5pZDsKKyAgICAgICAgICAg
IHByZXNlbnRhdGlvbk1lc3NhZ2UudWlTb3VyY2VDb2RlID0gdWlTb3VyY2VDb2RlOwogICAgICAg
ICAgICAgcHJlc2VudGF0aW9uTWVzc2FnZS5saW5lTnVtYmVyID0gbGluZU51bWJlcjsKICAgICAg
ICAgICAgIHByZXNlbnRhdGlvbk1lc3NhZ2Uub3JpZ2luYWxNZXNzYWdlID0gbWVzc2FnZTsKICAg
ICAgICAgICAgIHVpU291cmNlQ29kZS5tZXNzYWdlcy5wdXNoKHByZXNlbnRhdGlvbk1lc3NhZ2Up
OwpAQCAtMzE2LDY2ICszMDQsNjMgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9u
TW9kZWwucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVy
cyhXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5FdmVudHMuQ29uc29sZU1l
c3NhZ2VzQ2xlYXJlZCk7CiAgICAgfSwKIAotICAgIGNvbnRpbnVlVG9MaW5lOiBmdW5jdGlvbih1
aVNvdXJjZUNvZGVJZCwgbGluZU51bWJlcikKKyAgICBjb250aW51ZVRvTGluZTogZnVuY3Rpb24o
dWlTb3VyY2VDb2RlLCBsaW5lTnVtYmVyKQogICAgIHsKICAgICAgICAgZnVuY3Rpb24gZGlkR2V0
U2NyaXB0TG9jYXRpb24obG9jYXRpb24pCiAgICAgICAgIHsKICAgICAgICAgICAgIFdlYkluc3Bl
Y3Rvci5kZWJ1Z2dlck1vZGVsLmNvbnRpbnVlVG9Mb2NhdGlvbihsb2NhdGlvbik7CiAgICAgICAg
IH0KLSAgICAgICAgdGhpcy5fdWlMb2NhdGlvblRvU2NyaXB0TG9jYXRpb24odWlTb3VyY2VDb2Rl
SWQsIGxpbmVOdW1iZXIsIGRpZEdldFNjcmlwdExvY2F0aW9uKTsKKyAgICAgICAgdGhpcy5fdWlM
b2NhdGlvblRvU2NyaXB0TG9jYXRpb24odWlTb3VyY2VDb2RlLCBsaW5lTnVtYmVyLCBkaWRHZXRT
Y3JpcHRMb2NhdGlvbik7CiAgICAgfSwKIAotICAgIGJyZWFrcG9pbnRzRm9yU291cmNlRmlsZUlk
OiBmdW5jdGlvbih1aVNvdXJjZUNvZGVJZCkKKyAgICBicmVha3BvaW50c0ZvclVJU291cmNlQ29k
ZTogZnVuY3Rpb24odWlTb3VyY2VDb2RlKQogICAgIHsKLSAgICAgICAgdmFyIGJyZWFrcG9pbnRz
TWFwID0gdGhpcy5fYnJlYWtwb2ludE1hbmFnZXIuYnJlYWtwb2ludHNGb3JVSVNvdXJjZUNvZGUo
dWlTb3VyY2VDb2RlSWQpOworICAgICAgICB2YXIgYnJlYWtwb2ludHNNYXAgPSB0aGlzLl9icmVh
a3BvaW50TWFuYWdlci5icmVha3BvaW50c0ZvclVJU291cmNlQ29kZSh1aVNvdXJjZUNvZGUpOwog
ICAgICAgICB2YXIgYnJlYWtwb2ludHNMaXN0ID0gW107CiAgICAgICAgIGZvciAodmFyIGxpbmVO
dW1iZXIgaW4gYnJlYWtwb2ludHNNYXApCiAgICAgICAgICAgICBicmVha3BvaW50c0xpc3QucHVz
aChicmVha3BvaW50c01hcFtsaW5lTnVtYmVyXSk7CiAgICAgICAgIHJldHVybiBicmVha3BvaW50
c0xpc3Q7CiAgICAgfSwKIAotICAgIHNldEJyZWFrcG9pbnQ6IGZ1bmN0aW9uKHVpU291cmNlQ29k
ZUlkLCBsaW5lTnVtYmVyLCBjb25kaXRpb24sIGVuYWJsZWQpCisgICAgc2V0QnJlYWtwb2ludDog
ZnVuY3Rpb24odWlTb3VyY2VDb2RlLCBsaW5lTnVtYmVyLCBjb25kaXRpb24sIGVuYWJsZWQpCiAg
ICAgewotICAgICAgICB0aGlzLl9icmVha3BvaW50TWFuYWdlci5zZXRCcmVha3BvaW50KHRoaXMu
dWlTb3VyY2VDb2RlKHVpU291cmNlQ29kZUlkKSwgbGluZU51bWJlciwgY29uZGl0aW9uLCBlbmFi
bGVkKTsKKyAgICAgICAgdGhpcy5fYnJlYWtwb2ludE1hbmFnZXIuc2V0QnJlYWtwb2ludCh1aVNv
dXJjZUNvZGUsIGxpbmVOdW1iZXIsIGNvbmRpdGlvbiwgZW5hYmxlZCk7CiAgICAgfSwKIAotICAg
IHNldEJyZWFrcG9pbnRFbmFibGVkOiBmdW5jdGlvbih1aVNvdXJjZUNvZGVJZCwgbGluZU51bWJl
ciwgZW5hYmxlZCkKKyAgICBzZXRCcmVha3BvaW50RW5hYmxlZDogZnVuY3Rpb24odWlTb3VyY2VD
b2RlLCBsaW5lTnVtYmVyLCBlbmFibGVkKQogICAgIHsKLSAgICAgICAgdmFyIGJyZWFrcG9pbnQg
PSB0aGlzLmZpbmRCcmVha3BvaW50KHVpU291cmNlQ29kZUlkLCBsaW5lTnVtYmVyKTsKKyAgICAg
ICAgdmFyIGJyZWFrcG9pbnQgPSB0aGlzLmZpbmRCcmVha3BvaW50KHVpU291cmNlQ29kZSwgbGlu
ZU51bWJlcik7CiAgICAgICAgIGlmICghYnJlYWtwb2ludCkKICAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgdGhpcy5fYnJlYWtwb2ludE1hbmFnZXIucmVtb3ZlQnJlYWtwb2ludCh1aVNvdXJj
ZUNvZGVJZCwgbGluZU51bWJlcik7Ci0gICAgICAgIHRoaXMuX2JyZWFrcG9pbnRNYW5hZ2VyLnNl
dEJyZWFrcG9pbnQodGhpcy51aVNvdXJjZUNvZGUodWlTb3VyY2VDb2RlSWQpLCBsaW5lTnVtYmVy
LCBicmVha3BvaW50LmNvbmRpdGlvbiwgZW5hYmxlZCk7CisgICAgICAgIHRoaXMuX2JyZWFrcG9p
bnRNYW5hZ2VyLnJlbW92ZUJyZWFrcG9pbnQodWlTb3VyY2VDb2RlLCBsaW5lTnVtYmVyKTsKKyAg
ICAgICAgdGhpcy5fYnJlYWtwb2ludE1hbmFnZXIuc2V0QnJlYWtwb2ludCh1aVNvdXJjZUNvZGUs
IGxpbmVOdW1iZXIsIGJyZWFrcG9pbnQuY29uZGl0aW9uLCBlbmFibGVkKTsKICAgICB9LAogCi0g
ICAgdXBkYXRlQnJlYWtwb2ludDogZnVuY3Rpb24odWlTb3VyY2VDb2RlSWQsIGxpbmVOdW1iZXIs
IGNvbmRpdGlvbiwgZW5hYmxlZCkKKyAgICB1cGRhdGVCcmVha3BvaW50OiBmdW5jdGlvbih1aVNv
dXJjZUNvZGUsIGxpbmVOdW1iZXIsIGNvbmRpdGlvbiwgZW5hYmxlZCkKICAgICB7Ci0gICAgICAg
IHRoaXMuX2JyZWFrcG9pbnRNYW5hZ2VyLnJlbW92ZUJyZWFrcG9pbnQodWlTb3VyY2VDb2RlSWQs
IGxpbmVOdW1iZXIpOwotICAgICAgICB0aGlzLl9icmVha3BvaW50TWFuYWdlci5zZXRCcmVha3Bv
aW50KHRoaXMudWlTb3VyY2VDb2RlKHVpU291cmNlQ29kZUlkKSwgbGluZU51bWJlciwgY29uZGl0
aW9uLCBlbmFibGVkKTsKKyAgICAgICAgdGhpcy5fYnJlYWtwb2ludE1hbmFnZXIucmVtb3ZlQnJl
YWtwb2ludCh1aVNvdXJjZUNvZGUsIGxpbmVOdW1iZXIpOworICAgICAgICB0aGlzLl9icmVha3Bv
aW50TWFuYWdlci5zZXRCcmVha3BvaW50KHVpU291cmNlQ29kZSwgbGluZU51bWJlciwgY29uZGl0
aW9uLCBlbmFibGVkKTsKICAgICB9LAogCi0gICAgcmVtb3ZlQnJlYWtwb2ludDogZnVuY3Rpb24o
dWlTb3VyY2VDb2RlSWQsIGxpbmVOdW1iZXIpCisgICAgcmVtb3ZlQnJlYWtwb2ludDogZnVuY3Rp
b24odWlTb3VyY2VDb2RlLCBsaW5lTnVtYmVyKQogICAgIHsKLSAgICAgICAgdGhpcy5fYnJlYWtw
b2ludE1hbmFnZXIucmVtb3ZlQnJlYWtwb2ludCh1aVNvdXJjZUNvZGVJZCwgbGluZU51bWJlcik7
CisgICAgICAgIHRoaXMuX2JyZWFrcG9pbnRNYW5hZ2VyLnJlbW92ZUJyZWFrcG9pbnQodWlTb3Vy
Y2VDb2RlLCBsaW5lTnVtYmVyKTsKICAgICB9LAogCi0gICAgZmluZEJyZWFrcG9pbnQ6IGZ1bmN0
aW9uKHVpU291cmNlQ29kZUlkLCBsaW5lTnVtYmVyKQorICAgIGZpbmRCcmVha3BvaW50OiBmdW5j
dGlvbih1aVNvdXJjZUNvZGUsIGxpbmVOdW1iZXIpCiAgICAgewotICAgICAgICByZXR1cm4gdGhp
cy5fYnJlYWtwb2ludE1hbmFnZXIuYnJlYWtwb2ludHNGb3JVSVNvdXJjZUNvZGUodWlTb3VyY2VD
b2RlSWQpW2xpbmVOdW1iZXJdOworICAgICAgICByZXR1cm4gdGhpcy5fYnJlYWtwb2ludE1hbmFn
ZXIuYnJlYWtwb2ludHNGb3JVSVNvdXJjZUNvZGUodWlTb3VyY2VDb2RlKVtsaW5lTnVtYmVyXTsK
ICAgICB9LAogCi0gICAgX2JyZWFrcG9pbnRBZGRlZDogZnVuY3Rpb24odWlTb3VyY2VDb2RlSWQs
IGxpbmVOdW1iZXIsIGNvbmRpdGlvbiwgZW5hYmxlZCkKKyAgICBfYnJlYWtwb2ludEFkZGVkOiBm
dW5jdGlvbih1aVNvdXJjZUNvZGUsIGxpbmVOdW1iZXIsIGNvbmRpdGlvbiwgZW5hYmxlZCkKICAg
ICB7Ci0gICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSB0aGlzLnVpU291cmNlQ29kZSh1aVNvdXJj
ZUNvZGVJZCk7Ci0gICAgICAgIGlmICghdWlTb3VyY2VDb2RlKQotICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB2YXIgcHJlc2VudGF0aW9uQnJlYWtwb2ludCA9IG5ldyBXZWJJbnNwZWN0b3Iu
UHJlc2VudGF0aW9uQnJlYWtwb2ludCh1aVNvdXJjZUNvZGUsIGxpbmVOdW1iZXIsIGNvbmRpdGlv
biwgZW5hYmxlZCk7CiAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYklu
c3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLkV2ZW50cy5CcmVha3BvaW50QWRkZWQs
IHByZXNlbnRhdGlvbkJyZWFrcG9pbnQpOwogICAgIH0sCiAKLSAgICBfYnJlYWtwb2ludFJlbW92
ZWQ6IGZ1bmN0aW9uKHVpU291cmNlQ29kZUlkLCBsaW5lTnVtYmVyKQorICAgIF9icmVha3BvaW50
UmVtb3ZlZDogZnVuY3Rpb24odWlTb3VyY2VDb2RlLCBsaW5lTnVtYmVyKQogICAgIHsKLSAgICAg
ICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJl
c2VudGF0aW9uTW9kZWwuRXZlbnRzLkJyZWFrcG9pbnRSZW1vdmVkLCB7IHNvdXJjZUZpbGVJZDog
dWlTb3VyY2VDb2RlSWQsIGxpbmVOdW1iZXI6IGxpbmVOdW1iZXIgfSk7CisgICAgICAgIHRoaXMu
ZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlv
bk1vZGVsLkV2ZW50cy5CcmVha3BvaW50UmVtb3ZlZCwgeyB1aVNvdXJjZUNvZGU6IHVpU291cmNl
Q29kZSwgbGluZU51bWJlcjogbGluZU51bWJlciB9KTsKICAgICB9LAogCiAgICAgX2RlYnVnZ2Vy
UGF1c2VkOiBmdW5jdGlvbigpCkBAIC00NTksOCArNDQ0LDcgQEAgV2ViSW5zcGVjdG9yLkRlYnVn
Z2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5P
YmplY3QKICAqLwogV2ViSW5zcGVjdG9yLlByZXNlbnRhdGlvbkJyZWFrcG9pbnQgPSBmdW5jdGlv
bih1aVNvdXJjZUNvZGUsIGxpbmVOdW1iZXIsIGNvbmRpdGlvbiwgZW5hYmxlZCkKIHsKLSAgICB0
aGlzLnNvdXJjZUZpbGUgPSB1aVNvdXJjZUNvZGU7Ci0gICAgdGhpcy5zb3VyY2VGaWxlSWQgPSB1
aVNvdXJjZUNvZGUuaWQ7CisgICAgdGhpcy51aVNvdXJjZUNvZGUgPSB1aVNvdXJjZUNvZGU7CiAg
ICAgdGhpcy5saW5lTnVtYmVyID0gbGluZU51bWJlcjsKICAgICB0aGlzLmNvbmRpdGlvbiA9IGNv
bmRpdGlvbjsKICAgICB0aGlzLmVuYWJsZWQgPSBlbmFibGVkOwpAQCAtNDY5LDcgKzQ1Myw3IEBA
IFdlYkluc3BlY3Rvci5QcmVzZW50YXRpb25CcmVha3BvaW50ID0gZnVuY3Rpb24odWlTb3VyY2VD
b2RlLCBsaW5lTnVtYmVyLCBjb25kaXRpCiBXZWJJbnNwZWN0b3IuUHJlc2VudGF0aW9uQnJlYWtw
b2ludC5wcm90b3R5cGUgPSB7CiAgICAgZ2V0IHVybCgpCiAgICAgewotICAgICAgICByZXR1cm4g
dGhpcy5zb3VyY2VGaWxlLnVybDsKKyAgICAgICAgcmV0dXJuIHRoaXMudWlTb3VyY2VDb2RlLnVy
bDsKICAgICB9LAogCiAgICAgZ2V0IHJlc29sdmVkKCkKQEAgLTQ4NywyMyArNDcxLDE5IEBAIFdl
Ykluc3BlY3Rvci5QcmVzZW50YXRpb25CcmVha3BvaW50LnByb3RvdHlwZSA9IHsKICAgICAgICAg
ICAgICAgICBzbmlwcGV0ID0gY29udGVudC5zdWJzdHJpbmcobGluZUVuZGluZ3NbdGhpcy5saW5l
TnVtYmVyIC0gMV0sIGxpbmVFbmRpbmdzW3RoaXMubGluZU51bWJlcl0pOwogICAgICAgICAgICAg
Y2FsbGJhY2soc25pcHBldCk7CiAgICAgICAgIH0KLSAgICAgICAgaWYgKCF0aGlzLnNvdXJjZUZp
bGUpIHsKLSAgICAgICAgICAgIGNhbGxiYWNrKFdlYkluc3BlY3Rvci5VSVN0cmluZygiTi9BIikp
OwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIHRoaXMuc291cmNlRmls
ZS5yZXF1ZXN0Q29udGVudChkaWRSZXF1ZXN0Q29udGVudC5iaW5kKHRoaXMpKTsKKyAgICAgICAg
dGhpcy51aVNvdXJjZUNvZGUucmVxdWVzdENvbnRlbnQoZGlkUmVxdWVzdENvbnRlbnQuYmluZCh0
aGlzKSk7CiAgICAgfQogfQogCiAvKioKICAqIEBjb25zdHJ1Y3RvcgogICovCi1XZWJJbnNwZWN0
b3IuUHJlc2VuYXRpb25DYWxsRnJhbWUgPSBmdW5jdGlvbihjYWxsRnJhbWUsIGluZGV4LCBtb2Rl
bCwgc291cmNlRmlsZSkKK1dlYkluc3BlY3Rvci5QcmVzZW5hdGlvbkNhbGxGcmFtZSA9IGZ1bmN0
aW9uKGNhbGxGcmFtZSwgaW5kZXgsIG1vZGVsLCB1aVNvdXJjZUNvZGUpCiB7CiAgICAgdGhpcy5f
Y2FsbEZyYW1lID0gY2FsbEZyYW1lOwogICAgIHRoaXMuX2luZGV4ID0gaW5kZXg7CiAgICAgdGhp
cy5fbW9kZWwgPSBtb2RlbDsKLSAgICB0aGlzLl9zb3VyY2VGaWxlID0gc291cmNlRmlsZTsKKyAg
ICB0aGlzLl91aVNvdXJjZUNvZGUgPSB1aVNvdXJjZUNvZGU7CiAgICAgdGhpcy5fc2NyaXB0ID0g
V2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuc2NyaXB0Rm9yU291cmNlSUQoY2FsbEZyYW1lLmxv
Y2F0aW9uLnNjcmlwdElkKTsKIH0KIApAQCAtNTI1LDggKzUwNSw4IEBAIFdlYkluc3BlY3Rvci5Q
cmVzZW5hdGlvbkNhbGxGcmFtZS5wcm90b3R5cGUgPSB7CiAKICAgICBnZXQgdXJsKCkKICAgICB7
Ci0gICAgICAgIGlmICh0aGlzLl9zb3VyY2VGaWxlKQotICAgICAgICAgICAgcmV0dXJuIHRoaXMu
X3NvdXJjZUZpbGUudXJsOworICAgICAgICBpZiAodGhpcy5fdWlTb3VyY2VDb2RlKQorICAgICAg
ICAgICAgcmV0dXJuIHRoaXMuX3VpU291cmNlQ29kZS51cmw7CiAgICAgfSwKIAogICAgIGdldCBz
Y29wZUNoYWluKCkKQEAgLTU0Niw4ICs1MjYsOCBAQCBXZWJJbnNwZWN0b3IuUHJlc2VuYXRpb25D
YWxsRnJhbWUucHJvdG90eXBlID0gewogCiAgICAgc2VsZWN0OiBmdW5jdGlvbigpCiAgICAgewot
ICAgICAgICBpZiAodGhpcy5fc291cmNlRmlsZSkKLSAgICAgICAgICAgIHRoaXMuX3NvdXJjZUZp
bGUuZm9yY2VMb2FkQ29udGVudCh0aGlzLl9zY3JpcHQpOworICAgICAgICBpZiAodGhpcy5fdWlT
b3VyY2VDb2RlKQorICAgICAgICAgICAgdGhpcy5fdWlTb3VyY2VDb2RlLmZvcmNlTG9hZENvbnRl
bnQodGhpcy5fc2NyaXB0KTsKICAgICB9LAogCiAgICAgZXZhbHVhdGU6IGZ1bmN0aW9uKGNvZGUs
IG9iamVjdEdyb3VwLCBpbmNsdWRlQ29tbWFuZExpbmVBUEksIHJldHVybkJ5VmFsdWUsIGNhbGxi
YWNrKQpAQCAtNTcxLDEzICs1NTEsOSBAQCBXZWJJbnNwZWN0b3IuUHJlc2VuYXRpb25DYWxsRnJh
bWUucHJvdG90eXBlID0gewogICAgIHNvdXJjZUxpbmU6IGZ1bmN0aW9uKGNhbGxiYWNrKQogICAg
IHsKICAgICAgICAgdmFyIGxvY2F0aW9uID0gdGhpcy5fY2FsbEZyYW1lLmxvY2F0aW9uOwotICAg
ICAgICBpZiAoIXRoaXMuaXNJbnRlcm5hbFNjcmlwdCkgewotICAgICAgICAgICAgZnVuY3Rpb24g
ZGlkR2V0VUlMb2NhdGlvbih1aVNvdXJjZUNvZGUsIGxpbmVOdW1iZXIpCi0gICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgY2FsbGJhY2sodWlTb3VyY2VDb2RlLmlkLCBsaW5lTnVtYmVyKTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHRoaXMuX21vZGVsLl9zY3JpcHRMb2NhdGlvblRv
VUlMb2NhdGlvbihudWxsLCBsb2NhdGlvbi5zY3JpcHRJZCwgbG9jYXRpb24ubGluZU51bWJlciwg
bG9jYXRpb24uY29sdW1uTnVtYmVyLCBkaWRHZXRVSUxvY2F0aW9uKTsKLSAgICAgICAgfSBlbHNl
CisgICAgICAgIGlmICghdGhpcy5pc0ludGVybmFsU2NyaXB0KQorICAgICAgICAgICAgdGhpcy5f
bW9kZWwuX3NjcmlwdExvY2F0aW9uVG9VSUxvY2F0aW9uKG51bGwsIGxvY2F0aW9uLnNjcmlwdElk
LCBsb2NhdGlvbi5saW5lTnVtYmVyLCBsb2NhdGlvbi5jb2x1bW5OdW1iZXIsIGNhbGxiYWNrKTsK
KyAgICAgICAgZWxzZQogICAgICAgICAgICAgY2FsbGJhY2sodW5kZWZpbmVkLCBsb2NhdGlvbi5s
aW5lTnVtYmVyKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCmluZGV4IGQ0N2YwYTJlODk0NjJmMWQyNzU3NmE0ZTVk
NzRjZWExMTcxZDc1MDIuLjA5M2Q5MzIxMzNhOGUzZDNhZGJhNmVmYjNmMTRjYWZiODZlNTNiYTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1Bh
bmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1Bh
bmVsLmpzCkBAIC0xNDcsOSArMTQ3LDkgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbCA9IGZ1
bmN0aW9uKHByZXNlbnRhdGlvbk1vZGVsKQogICAgIHRoaXMuX3BhdXNlT25FeGNlcHRpb25CdXR0
b24gPSBuZXcgV2ViSW5zcGVjdG9yLlN0YXR1c0JhckJ1dHRvbigiIiwgInNjcmlwdHMtcGF1c2Ut
b24tZXhjZXB0aW9ucy1zdGF0dXMtYmFyLWl0ZW0iLCAzKTsKICAgICB0aGlzLl9wYXVzZU9uRXhj
ZXB0aW9uQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5fdG9nZ2xlUGF1c2VP
bkV4Y2VwdGlvbnMuYmluZCh0aGlzKSwgZmFsc2UpOwogCi0gICAgdGhpcy5fdG9nZ2xlRm9ybWF0
U291cmNlRmlsZXNCdXR0b24gPSBuZXcgV2ViSW5zcGVjdG9yLlN0YXR1c0JhckJ1dHRvbihXZWJJ
bnNwZWN0b3IuVUlTdHJpbmcoIlByZXR0eSBwcmludCIpLCAic2NyaXB0cy10b2dnbGUtcHJldHR5
LXByaW50LXN0YXR1cy1iYXItaXRlbSIpOwotICAgIHRoaXMuX3RvZ2dsZUZvcm1hdFNvdXJjZUZp
bGVzQnV0dG9uLnRvZ2dsZWQgPSBmYWxzZTsKLSAgICB0aGlzLl90b2dnbGVGb3JtYXRTb3VyY2VG
aWxlc0J1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX3RvZ2dsZUZvcm1hdFNv
dXJjZUZpbGVzLmJpbmQodGhpcyksIGZhbHNlKTsKKyAgICB0aGlzLl90b2dnbGVGb3JtYXRTb3Vy
Y2VCdXR0b24gPSBuZXcgV2ViSW5zcGVjdG9yLlN0YXR1c0JhckJ1dHRvbihXZWJJbnNwZWN0b3Iu
VUlTdHJpbmcoIlByZXR0eSBwcmludCIpLCAic2NyaXB0cy10b2dnbGUtcHJldHR5LXByaW50LXN0
YXR1cy1iYXItaXRlbSIpOworICAgIHRoaXMuX3RvZ2dsZUZvcm1hdFNvdXJjZUJ1dHRvbi50b2dn
bGVkID0gZmFsc2U7CisgICAgdGhpcy5fdG9nZ2xlRm9ybWF0U291cmNlQnV0dG9uLmFkZEV2ZW50
TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5fdG9nZ2xlRm9ybWF0U291cmNlLmJpbmQodGhpcyksIGZh
bHNlKTsKIAogICAgIHRoaXMuX2RlYnVnZ2VyRW5hYmxlZCA9IFByZWZlcmVuY2VzLmRlYnVnZ2Vy
QWx3YXlzRW5hYmxlZDsKIApAQCAtMTU4LDggKzE1OCw4IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRz
UGFuZWwgPSBmdW5jdGlvbihwcmVzZW50YXRpb25Nb2RlbCkKICAgICBXZWJJbnNwZWN0b3IuZGVi
dWdnZXJNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLkV2
ZW50cy5EZWJ1Z2dlcldhc0VuYWJsZWQsIHRoaXMuX2RlYnVnZ2VyV2FzRW5hYmxlZCwgdGhpcyk7
CiAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNw
ZWN0b3IuRGVidWdnZXJNb2RlbC5FdmVudHMuRGVidWdnZXJXYXNEaXNhYmxlZCwgdGhpcy5fZGVi
dWdnZXJXYXNEaXNhYmxlZCwgdGhpcyk7CiAKLSAgICB0aGlzLl9wcmVzZW50YXRpb25Nb2RlbC5h
ZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLkV2
ZW50cy5Tb3VyY2VGaWxlQWRkZWQsIHRoaXMuX3NvdXJjZUZpbGVBZGRlZCwgdGhpcykKLSAgICB0
aGlzLl9wcmVzZW50YXRpb25Nb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1
Z2dlclByZXNlbnRhdGlvbk1vZGVsLkV2ZW50cy5Tb3VyY2VGaWxlUmVwbGFjZWQsIHRoaXMuX3Nv
dXJjZUZpbGVSZXBsYWNlZCwgdGhpcyk7CisgICAgdGhpcy5fcHJlc2VudGF0aW9uTW9kZWwuYWRk
RXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5FdmVu
dHMuVUlTb3VyY2VDb2RlQWRkZWQsIHRoaXMuX3VpU291cmNlQ29kZUFkZGVkLCB0aGlzKQorICAg
IHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRl
YnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuRXZlbnRzLlVJU291cmNlQ29kZVJlcGxhY2VkLCB0aGlz
Ll91aVNvdXJjZUNvZGVSZXBsYWNlZCwgdGhpcyk7CiAgICAgdGhpcy5fcHJlc2VudGF0aW9uTW9k
ZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2Rl
bC5FdmVudHMuQ29uc29sZU1lc3NhZ2VBZGRlZCwgdGhpcy5fY29uc29sZU1lc3NhZ2VBZGRlZCwg
dGhpcyk7CiAgICAgdGhpcy5fcHJlc2VudGF0aW9uTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJ
bnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5FdmVudHMuQ29uc29sZU1lc3NhZ2Vz
Q2xlYXJlZCwgdGhpcy5fY29uc29sZU1lc3NhZ2VzQ2xlYXJlZCwgdGhpcyk7CiAgICAgdGhpcy5f
cHJlc2VudGF0aW9uTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJQ
cmVzZW50YXRpb25Nb2RlbC5FdmVudHMuQnJlYWtwb2ludEFkZGVkLCB0aGlzLl9icmVha3BvaW50
QWRkZWQsIHRoaXMpOwpAQCAtMTk2LDcgKzE5Niw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFu
ZWwucHJvdG90eXBlID0gewogCiAgICAgZ2V0IHN0YXR1c0Jhckl0ZW1zKCkKICAgICB7Ci0gICAg
ICAgIHJldHVybiBbdGhpcy5lbmFibGVUb2dnbGVCdXR0b24uZWxlbWVudCwgdGhpcy5fcGF1c2VP
bkV4Y2VwdGlvbkJ1dHRvbi5lbGVtZW50LCB0aGlzLl90b2dnbGVGb3JtYXRTb3VyY2VGaWxlc0J1
dHRvbi5lbGVtZW50XTsKKyAgICAgICAgcmV0dXJuIFt0aGlzLmVuYWJsZVRvZ2dsZUJ1dHRvbi5l
bGVtZW50LCB0aGlzLl9wYXVzZU9uRXhjZXB0aW9uQnV0dG9uLmVsZW1lbnQsIHRoaXMuX3RvZ2ds
ZUZvcm1hdFNvdXJjZUJ1dHRvbi5lbGVtZW50XTsKICAgICB9LAogCiAgICAgZ2V0IGRlZmF1bHRG
b2N1c2VkRWxlbWVudCgpCkBAIC0yMjMsNTAgKzIyMyw1MCBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0
c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIHRoaXMudG9nZ2xlQnJlYWtwb2lu
dHNCdXR0b24udG9nZ2xlZDsKICAgICB9LAogCi0gICAgX3NvdXJjZUZpbGVBZGRlZDogZnVuY3Rp
b24oZXZlbnQpCisgICAgX3VpU291cmNlQ29kZUFkZGVkOiBmdW5jdGlvbihldmVudCkKICAgICB7
Ci0gICAgICAgIHZhciBzb3VyY2VGaWxlID0gZXZlbnQuZGF0YTsKKyAgICAgICAgdmFyIHVpU291
cmNlQ29kZSA9IGV2ZW50LmRhdGE7CiAKLSAgICAgICAgaWYgKCFzb3VyY2VGaWxlLnVybCkgewor
ICAgICAgICBpZiAoIXVpU291cmNlQ29kZS51cmwpIHsKICAgICAgICAgICAgIC8vIEFub255bW91
cyBzb3VyY2VzIGFyZSBzaG93biBvbmx5IHdoZW4gc3RlcHBpbmcuCiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KIAotICAgICAgICB0aGlzLl9hZGRPcHRpb25Ub0ZpbGVzU2VsZWN0KHNv
dXJjZUZpbGUpOworICAgICAgICB0aGlzLl9hZGRPcHRpb25Ub0ZpbGVzU2VsZWN0KHVpU291cmNl
Q29kZSk7CiAKICAgICAgICAgdmFyIGxhc3RWaWV3ZWRVUkwgPSBXZWJJbnNwZWN0b3Iuc2V0dGlu
Z3MubGFzdFZpZXdlZFNjcmlwdEZpbGUuZ2V0KCk7CiAgICAgICAgIGlmICghdGhpcy5fZmlsZXNT
ZWxlY3RFbGVtZW50LmluaXRpYWxTZWxlY3Rpb25Qcm9jZXNzZWQpIHsKICAgICAgICAgICAgIHRo
aXMuX2ZpbGVzU2VsZWN0RWxlbWVudC5pbml0aWFsU2VsZWN0aW9uUHJvY2Vzc2VkID0gdHJ1ZTsK
ICAgICAgICAgICAgIC8vIE9wdGlvbiB3ZSBqdXN0IGFkZGVkIGlzIHRoZSBvbmx5IG9wdGlvbiBp
biBmaWxlcyBzZWxlY3QuCiAgICAgICAgICAgICAvLyBXZSBoYXZlIHRvIHNob3cgY29ycmVzcG9u
ZGluZyBzb3VyY2UgZnJhbWUgaW1tZWRpYXRlbHkuCi0gICAgICAgICAgICB0aGlzLl9zaG93U291
cmNlRnJhbWVBbmRBZGRUb0hpc3Rvcnkoc291cmNlRmlsZS5pZCk7CisgICAgICAgICAgICB0aGlz
Ll9zaG93U291cmNlRnJhbWVBbmRBZGRUb0hpc3RvcnkodWlTb3VyY2VDb2RlKTsKICAgICAgICAg
ICAgIC8vIFJlc3RvcmUgb3JpZ2luYWwgdmFsdWUgb2YgbGFzdFZpZXdlZFNjcmlwdEZpbGUgYmVj
YXVzZQogICAgICAgICAgICAgLy8gc291cmNlIGZyYW1lIHdhcyBzaG93biBhcyBhIHJlc3VsdCBv
ZiBpbml0aWFsIGxvYWQuCiAgICAgICAgICAgICBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MubGFzdFZp
ZXdlZFNjcmlwdEZpbGUuc2V0KGxhc3RWaWV3ZWRVUkwpOwotICAgICAgICB9IGVsc2UgaWYgKHNv
dXJjZUZpbGUudXJsID09PSBsYXN0Vmlld2VkVVJMKQotICAgICAgICAgICAgdGhpcy5fc2hvd1Nv
dXJjZUZyYW1lQW5kQWRkVG9IaXN0b3J5KHNvdXJjZUZpbGUuaWQpOworICAgICAgICB9IGVsc2Ug
aWYgKHVpU291cmNlQ29kZS51cmwgPT09IGxhc3RWaWV3ZWRVUkwpCisgICAgICAgICAgICB0aGlz
Ll9zaG93U291cmNlRnJhbWVBbmRBZGRUb0hpc3RvcnkodWlTb3VyY2VDb2RlKTsKICAgICB9LAog
CiAgICAgX3Nob3dTY3JpcHRGb2xkZXJzU2V0dGluZ0NoYW5nZWQ6IGZ1bmN0aW9uKCkKICAgICB7
CiAgICAgICAgIHZhciBzZWxlY3RlZE9wdGlvbiA9IHRoaXMuX2ZpbGVzU2VsZWN0RWxlbWVudFt0
aGlzLl9maWxlc1NlbGVjdEVsZW1lbnQuc2VsZWN0ZWRJbmRleF07Ci0gICAgICAgIHZhciBzb3Vy
Y2VGaWxlSWQgPSBzZWxlY3RlZE9wdGlvbiA/IHNlbGVjdGVkT3B0aW9uLl9zb3VyY2VGaWxlSWQg
OiBudWxsOworICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gc2VsZWN0ZWRPcHRpb24gPyBzZWxl
Y3RlZE9wdGlvbi5fdWlTb3VyY2VDb2RlIDogbnVsbDsKIAogICAgICAgICB2YXIgb3B0aW9ucyA9
IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHRoaXMuX2ZpbGVzU2VsZWN0RWxlbWVudCk7CiAg
ICAgICAgIHRoaXMuX3Jlc2V0RmlsZXNTZWxlY3QoKTsKICAgICAgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCBvcHRpb25zLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICBpZiAob3B0aW9uc1tpXS5f
c291cmNlRmlsZSkKLSAgICAgICAgICAgICAgICB0aGlzLl9hZGRPcHRpb25Ub0ZpbGVzU2VsZWN0
KG9wdGlvbnNbaV0uX3NvdXJjZUZpbGUpOworICAgICAgICAgICAgaWYgKG9wdGlvbnNbaV0uX3Vp
U291cmNlQ29kZSkKKyAgICAgICAgICAgICAgICB0aGlzLl9hZGRPcHRpb25Ub0ZpbGVzU2VsZWN0
KG9wdGlvbnNbaV0uX3VpU291cmNlQ29kZSk7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoc291
cmNlRmlsZUlkKSB7Ci0gICAgICAgICAgICB2YXIgaW5kZXggPSB0aGlzLl9zb3VyY2VGaWxlSWRU
b0ZpbGVzU2VsZWN0T3B0aW9uW3NvdXJjZUZpbGVJZF0uaW5kZXg7CisgICAgICAgIGlmICh1aVNv
dXJjZUNvZGUpIHsKKyAgICAgICAgICAgIHZhciBpbmRleCA9IHVpU291cmNlQ29kZS5fb3B0aW9u
LmluZGV4OwogICAgICAgICAgICAgaWYgKHR5cGVvZiBpbmRleCA9PT0gIm51bWJlciIpCiAgICAg
ICAgICAgICAgICAgdGhpcy5fZmlsZXNTZWxlY3RFbGVtZW50LnNlbGVjdGVkSW5kZXggPSBpbmRl
eDsKICAgICAgICAgfQogICAgIH0sCiAKLSAgICBfYWRkT3B0aW9uVG9GaWxlc1NlbGVjdDogZnVu
Y3Rpb24oc291cmNlRmlsZSkKKyAgICBfYWRkT3B0aW9uVG9GaWxlc1NlbGVjdDogZnVuY3Rpb24o
dWlTb3VyY2VDb2RlKQogICAgIHsKICAgICAgICAgdmFyIHNob3dTY3JpcHRGb2xkZXJzID0gV2Vi
SW5zcGVjdG9yLnNldHRpbmdzLnNob3dTY3JpcHRGb2xkZXJzLmdldCgpOwogCkBAIC0yNzcsMjMg
KzI3NywyMyBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgICAgIHNlbGVjdC5mb2xkZXJPcHRpb25zID0ge307CiAKICAgICAgICAgdmFyIG9wdGlvbiA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIpOwotICAgICAgICBvcHRpb24uX3NvdXJj
ZUZpbGUgPSBzb3VyY2VGaWxlOwotICAgICAgICB2YXIgcGFyc2VkVVJMID0gc291cmNlRmlsZS51
cmwuYXNQYXJzZWRVUkwoKTsKKyAgICAgICAgb3B0aW9uLl91aVNvdXJjZUNvZGUgPSB1aVNvdXJj
ZUNvZGU7CisgICAgICAgIHZhciBwYXJzZWRVUkwgPSB1aVNvdXJjZUNvZGUudXJsLmFzUGFyc2Vk
VVJMKCk7CiAKLSAgICAgICAgdmFyIG5hbWVzID0gdGhpcy5fZm9sZGVyQW5kRGlzcGxheU5hbWVG
b3JTY3JpcHRVUkwoc291cmNlRmlsZS51cmwpOworICAgICAgICB2YXIgbmFtZXMgPSB0aGlzLl9m
b2xkZXJBbmREaXNwbGF5TmFtZUZvclNjcmlwdFVSTCh1aVNvdXJjZUNvZGUudXJsKTsKICAgICAg
ICAgY29uc3QgaW5kZW50ID0gKCFzaG93U2NyaXB0Rm9sZGVycyB8fCBXZWJJbnNwZWN0b3IuaXNN
YWMoKSkgPyAiIiA6ICJcdTAwYTBcdTAwYTBcdTAwYTBcdTAwYTAiOwogICAgICAgICBvcHRpb24u
dGV4dCA9IGluZGVudCArIChuYW1lcy5kaXNwbGF5TmFtZSA/IG5hbWVzLmRpc3BsYXlOYW1lIDog
V2ViSW5zcGVjdG9yLlVJU3RyaW5nKCIocHJvZ3JhbSkiKSk7CiAgICAgICAgIG9wdGlvbi5kaXNw
bGF5TmFtZSA9IG5hbWVzLmRpc3BsYXlOYW1lOwogCiAgICAgICAgIHZhciBmb2xkZXJOYW1lRm9y
U29ydGluZzsKLSAgICAgICAgaWYgKHNvdXJjZUZpbGUuaXNDb250ZW50U2NyaXB0KQorICAgICAg
ICBpZiAodWlTb3VyY2VDb2RlLmlzQ29udGVudFNjcmlwdCkKICAgICAgICAgICAgIGZvbGRlck5h
bWVGb3JTb3J0aW5nID0gIjI6IiArIG5hbWVzLmZvbGRlck5hbWU7CiAgICAgICAgIGVsc2UKICAg
ICAgICAgICAgIGZvbGRlck5hbWVGb3JTb3J0aW5nID0gIjA6IiArIChuYW1lcy5kb21haW4gPyBu
YW1lcy5kb21haW4gKyAiXHRcdCIgOiAiIikgKyBuYW1lcy5mb2xkZXJOYW1lOwogCiAgICAgICAg
IG9wdGlvbi5uYW1lRm9yU29ydGluZyA9IGZvbGRlck5hbWVGb3JTb3J0aW5nICsgIlx0L1x0IiAr
IG5hbWVzLmRpc3BsYXlOYW1lOyAvLyBVc2UgJ1x0JyB0byBtYWtlIGZpbGVzIHN0aWNrIHRvIHRo
ZWlyIGZvbGRlci4KLSAgICAgICAgb3B0aW9uLnRpdGxlID0gc291cmNlRmlsZS51cmw7Ci0gICAg
ICAgIGlmIChzb3VyY2VGaWxlLmlzQ29udGVudFNjcmlwdCkKKyAgICAgICAgb3B0aW9uLnRpdGxl
ID0gdWlTb3VyY2VDb2RlLnVybDsKKyAgICAgICAgaWYgKHVpU291cmNlQ29kZS5pc0NvbnRlbnRT
Y3JpcHQpCiAgICAgICAgICAgICBvcHRpb24uYWRkU3R5bGVDbGFzcygiZXh0ZW5zaW9uLXNjcmlw
dCIpOwogCiAgICAgICAgIGZ1bmN0aW9uIGluc2VydE9yZGVyZWQob3B0aW9uKQpAQCAtMzExLDcg
KzMxMSw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogCiAgICAg
ICAgIGluc2VydE9yZGVyZWQob3B0aW9uKTsKIAotICAgICAgICBpZiAoc291cmNlRmlsZS5pc0Nv
bnRlbnRTY3JpcHQgJiYgIXNlbGVjdC5jb250ZW50U2NyaXB0U2VjdGlvbikgeworICAgICAgICBp
ZiAodWlTb3VyY2VDb2RlLmlzQ29udGVudFNjcmlwdCAmJiAhc2VsZWN0LmNvbnRlbnRTY3JpcHRT
ZWN0aW9uKSB7CiAgICAgICAgICAgICB2YXIgY29udGVudFNjcmlwdFNlY3Rpb24gPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJvcHRpb24iKTsKICAgICAgICAgICAgIGNvbnRlbnRTY3JpcHRTZWN0
aW9uLnRleHQgPSAiXHUyMDE0ICIgKyBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNvbnRlbnQgc2Ny
aXB0cyIpICsgIiBcdTIwMTQiOwogICAgICAgICAgICAgY29udGVudFNjcmlwdFNlY3Rpb24uZGlz
YWJsZWQgPSB0cnVlOwpAQCAtMzIwLDcgKzMyMCw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFu
ZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgaW5zZXJ0T3JkZXJlZChjb250ZW50U2NyaXB0
U2VjdGlvbik7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoc2hvd1NjcmlwdEZvbGRlcnMgJiYg
IXNvdXJjZUZpbGUuaXNDb250ZW50U2NyaXB0ICYmIG5hbWVzLmRvbWFpbiAmJiAhc2VsZWN0LmRv
bWFpbk9wdGlvbnNbbmFtZXMuZG9tYWluXSkgeworICAgICAgICBpZiAoc2hvd1NjcmlwdEZvbGRl
cnMgJiYgIXVpU291cmNlQ29kZS5pc0NvbnRlbnRTY3JpcHQgJiYgbmFtZXMuZG9tYWluICYmICFz
ZWxlY3QuZG9tYWluT3B0aW9uc1tuYW1lcy5kb21haW5dKSB7CiAgICAgICAgICAgICB2YXIgZG9t
YWluT3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgib3B0aW9uIik7CiAgICAgICAgICAg
ICBkb21haW5PcHRpb24udGV4dCA9ICJcdTIwMTQgIiArIG5hbWVzLmRvbWFpbiArICIgXHUyMDE0
IjsKICAgICAgICAgICAgIGRvbWFpbk9wdGlvbi5uYW1lRm9yU29ydGluZyA9ICIwOiIgKyBuYW1l
cy5kb21haW47CkBAIC0zMzgsOCArMzM4LDggQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5w
cm90b3R5cGUgPSB7CiAgICAgICAgICAgICBpbnNlcnRPcmRlcmVkKGZvbGRlck9wdGlvbik7CiAg
ICAgICAgIH0KIAotICAgICAgICBvcHRpb24uX3NvdXJjZUZpbGVJZCA9IHNvdXJjZUZpbGUuaWQ7
Ci0gICAgICAgIHRoaXMuX3NvdXJjZUZpbGVJZFRvRmlsZXNTZWxlY3RPcHRpb25bc291cmNlRmls
ZS5pZF0gPSBvcHRpb247CisgICAgICAgIG9wdGlvbi5fdWlTb3VyY2VDb2RlID0gdWlTb3VyY2VD
b2RlOworICAgICAgICB1aVNvdXJjZUNvZGUuX29wdGlvbiA9IG9wdGlvbjsKICAgICB9LAogCiAg
ICAgX2ZvbGRlckFuZERpc3BsYXlOYW1lRm9yU2NyaXB0VVJMOiBmdW5jdGlvbih1cmwpCkBAIC0z
NjYsOSArMzY2LDkgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAg
ICAgICAgIHJldHVybiB7IGRvbWFpbjogKHBhcnNlZFVSTCA/IHBhcnNlZFVSTC5ob3N0IDogIiIp
LCBmb2xkZXJOYW1lOiBmb2xkZXJOYW1lLCBkaXNwbGF5TmFtZTogZGlzcGxheU5hbWUgfTsKICAg
ICB9LAogCi0gICAgc2V0U2NyaXB0U291cmNlSXNCZWluZ0VkaXRlZDogZnVuY3Rpb24oc291cmNl
RmlsZUlkLCBpbkVkaXRNb2RlKQorICAgIHNldFNjcmlwdFNvdXJjZUlzQmVpbmdFZGl0ZWQ6IGZ1
bmN0aW9uKHVpU291cmNlQ29kZSwgaW5FZGl0TW9kZSkKICAgICB7Ci0gICAgICAgIHZhciBvcHRp
b24gPSB0aGlzLl9zb3VyY2VGaWxlSWRUb0ZpbGVzU2VsZWN0T3B0aW9uW3NvdXJjZUZpbGVJZF07
CisgICAgICAgIHZhciBvcHRpb24gPSB1aVNvdXJjZUNvZGUuX29wdGlvbjsKICAgICAgICAgaWYg
KCFvcHRpb24pCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGlmIChpbkVkaXRNb2RlKQpA
QCAtMzc5LDE1ICszNzksMTggQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUg
PSB7CiAKICAgICBfY29uc29sZU1lc3NhZ2VzQ2xlYXJlZDogZnVuY3Rpb24oKQogICAgIHsKLSAg
ICAgICAgZm9yICh2YXIgc291cmNlRmlsZUlkIGluIHRoaXMuX3NvdXJjZUZpbGVJZFRvU291cmNl
RnJhbWUpCi0gICAgICAgICAgICB0aGlzLl9zb3VyY2VGaWxlSWRUb1NvdXJjZUZyYW1lW3NvdXJj
ZUZpbGVJZF0uY2xlYXJNZXNzYWdlcygpOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRo
aXMuX2ZpbGVzU2VsZWN0RWxlbWVudC5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgdmFyIG9w
dGlvbiA9IHRoaXMuX2ZpbGVzU2VsZWN0RWxlbWVudFtpXTsKKyAgICAgICAgICAgIGlmIChvcHRp
b24uX3VpU291cmNlQ29kZSAmJiBvcHRpb24uX3VpU291cmNlQ29kZS5fc291cmNlRnJhbWUpCisg
ICAgICAgICAgICAgICAgb3B0aW9uLl91aVNvdXJjZUNvZGUuX3NvdXJjZUZyYW1lLmNsZWFyTWVz
c2FnZXMoKTsKKyAgICAgICAgfQogICAgIH0sCiAKICAgICBfY29uc29sZU1lc3NhZ2VBZGRlZDog
ZnVuY3Rpb24oZXZlbnQpCiAgICAgewogICAgICAgICB2YXIgbWVzc2FnZSA9IGV2ZW50LmRhdGE7
CiAKLSAgICAgICAgdmFyIHNvdXJjZUZyYW1lID0gdGhpcy5fc291cmNlRmlsZUlkVG9Tb3VyY2VG
cmFtZVttZXNzYWdlLnNvdXJjZUZpbGVJZF07CisgICAgICAgIHZhciBzb3VyY2VGcmFtZSA9IG1l
c3NhZ2UudWlTb3VyY2VDb2RlLl9zb3VyY2VGcmFtZTsKICAgICAgICAgaWYgKHNvdXJjZUZyYW1l
ICYmIHNvdXJjZUZyYW1lLmxvYWRlZCkKICAgICAgICAgICAgIHNvdXJjZUZyYW1lLmFkZE1lc3Nh
Z2VUb1NvdXJjZShtZXNzYWdlLmxpbmVOdW1iZXIsIG1lc3NhZ2Uub3JpZ2luYWxNZXNzYWdlKTsK
ICAgICB9LApAQCAtMzk2LDcgKzM5OSw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJv
dG90eXBlID0gewogICAgIHsKICAgICAgICAgdmFyIGJyZWFrcG9pbnQgPSBldmVudC5kYXRhOwog
Ci0gICAgICAgIHZhciBzb3VyY2VGcmFtZSA9IHRoaXMuX3NvdXJjZUZpbGVJZFRvU291cmNlRnJh
bWVbYnJlYWtwb2ludC5zb3VyY2VGaWxlSWRdOworICAgICAgICB2YXIgc291cmNlRnJhbWUgPSBi
cmVha3BvaW50LnVpU291cmNlQ29kZS5fc291cmNlRnJhbWU7CiAgICAgICAgIGlmIChzb3VyY2VG
cmFtZSAmJiBzb3VyY2VGcmFtZS5sb2FkZWQpCiAgICAgICAgICAgICBzb3VyY2VGcmFtZS5hZGRC
cmVha3BvaW50KGJyZWFrcG9pbnQubGluZU51bWJlciwgYnJlYWtwb2ludC5yZXNvbHZlZCwgYnJl
YWtwb2ludC5jb25kaXRpb24sIGJyZWFrcG9pbnQuZW5hYmxlZCk7CiAKQEAgLTQwNywxMSArNDEw
LDExIEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAgIHsKICAg
ICAgICAgdmFyIGJyZWFrcG9pbnQgPSBldmVudC5kYXRhOwogCi0gICAgICAgIHZhciBzb3VyY2VG
cmFtZSA9IHRoaXMuX3NvdXJjZUZpbGVJZFRvU291cmNlRnJhbWVbYnJlYWtwb2ludC5zb3VyY2VG
aWxlSWRdOworICAgICAgICB2YXIgc291cmNlRnJhbWUgPSBicmVha3BvaW50LnVpU291cmNlQ29k
ZS5fc291cmNlRnJhbWU7CiAgICAgICAgIGlmIChzb3VyY2VGcmFtZSAmJiBzb3VyY2VGcmFtZS5s
b2FkZWQpCiAgICAgICAgICAgICBzb3VyY2VGcmFtZS5yZW1vdmVCcmVha3BvaW50KGJyZWFrcG9p
bnQubGluZU51bWJlcik7CiAKLSAgICAgICAgdGhpcy5zaWRlYmFyUGFuZXMuanNCcmVha3BvaW50
cy5yZW1vdmVCcmVha3BvaW50KGJyZWFrcG9pbnQuc291cmNlRmlsZUlkLCBicmVha3BvaW50Lmxp
bmVOdW1iZXIpOworICAgICAgICB0aGlzLnNpZGViYXJQYW5lcy5qc0JyZWFrcG9pbnRzLnJlbW92
ZUJyZWFrcG9pbnQoYnJlYWtwb2ludC51aVNvdXJjZUNvZGUsIGJyZWFrcG9pbnQubGluZU51bWJl
cik7CiAgICAgfSwKIAogICAgIGV2YWx1YXRlSW5TZWxlY3RlZENhbGxGcmFtZTogZnVuY3Rpb24o
Y29kZSwgb2JqZWN0R3JvdXAsIGluY2x1ZGVDb21tYW5kTGluZUFQSSwgcmV0dXJuQnlWYWx1ZSwg
Y2FsbGJhY2spCkBAIC00ODYsNyArNDg5LDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5w
cm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgdGhpcy5zaWRlYmFyUGFuZXMuY2FsbHN0YWNr
LnNldFN0YXR1cyhXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlBhdXNlZCBvbiBhIFhNTEh0dHBSZXF1
ZXN0LiIpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGZ1
bmN0aW9uIGRpZEdldFNvdXJjZUxvY2F0aW9uKHNvdXJjZUZpbGVJZCwgbGluZU51bWJlcikKKyAg
ICAgICAgICAgIGZ1bmN0aW9uIGRpZEdldFNvdXJjZUxvY2F0aW9uKHVpU291cmNlQ29kZSwgbGlu
ZU51bWJlcikKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICB2YXIgZXhjZXB0aW9uID0g
V2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuZGVidWdnZXJQYXVzZWREZXRhaWxzLmV4Y2VwdGlv
bjsKICAgICAgICAgICAgICAgICBpZiAoZXhjZXB0aW9uKSB7CkBAIC00OTQsOSArNDk3LDkgQEAg
V2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICBpZiAoIXNv
dXJjZUZpbGVJZCB8fCAhdGhpcy5fcHJlc2VudGF0aW9uTW9kZWwuZmluZEJyZWFrcG9pbnQoc291
cmNlRmlsZUlkLCBsaW5lTnVtYmVyKSkKKyAgICAgICAgICAgICAgICBpZiAoIXVpU291cmNlQ29k
ZSB8fCAhdGhpcy5fcHJlc2VudGF0aW9uTW9kZWwuZmluZEJyZWFrcG9pbnQodWlTb3VyY2VDb2Rl
LCBsaW5lTnVtYmVyKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAg
ICAgIHRoaXMuc2lkZWJhclBhbmVzLmpzQnJlYWtwb2ludHMuaGlnaGxpZ2h0QnJlYWtwb2ludChz
b3VyY2VGaWxlSWQsIGxpbmVOdW1iZXIpOworICAgICAgICAgICAgICAgIHRoaXMuc2lkZWJhclBh
bmVzLmpzQnJlYWtwb2ludHMuaGlnaGxpZ2h0QnJlYWtwb2ludCh1aVNvdXJjZUNvZGUsIGxpbmVO
dW1iZXIpOwogICAgICAgICAgICAgICAgIHRoaXMuc2lkZWJhclBhbmVzLmNhbGxzdGFjay5zZXRT
dGF0dXMoV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJQYXVzZWQgb24gYSBKYXZhU2NyaXB0IGJyZWFr
cG9pbnQuIikpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgY2FsbEZyYW1lc1swXS5zb3Vy
Y2VMaW5lKGRpZEdldFNvdXJjZUxvY2F0aW9uLmJpbmQodGhpcykpOwpAQCAtNTQ4LDEzICs1NTEs
NiBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhp
cy5fY3VycmVudEJhY2tGb3J3YXJkSW5kZXggPSAtMTsKICAgICAgICAgdGhpcy5fdXBkYXRlQmFj
a0FuZEZvcndhcmRCdXR0b25zKCk7CiAKLSAgICAgICAgZm9yICh2YXIgaWQgaW4gdGhpcy5fc291
cmNlRmlsZUlkVG9Tb3VyY2VGcmFtZSkgewotICAgICAgICAgICAgdmFyIHNvdXJjZUZyYW1lID0g
dGhpcy5fc291cmNlRmlsZUlkVG9Tb3VyY2VGcmFtZVtpZF07Ci0gICAgICAgICAgICBzb3VyY2VG
cmFtZS5yZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5FdmVudHMu
TG9hZGVkLCB0aGlzLl9zb3VyY2VGcmFtZUxvYWRlZCwgdGhpcyk7Ci0gICAgICAgIH0KLQotICAg
ICAgICB0aGlzLl9zb3VyY2VGaWxlSWRUb1NvdXJjZUZyYW1lID0ge307Ci0KICAgICAgICAgdGhp
cy5fcmVzZXRGaWxlc1NlbGVjdCgpOwogICAgICAgICBkZWxldGUgdGhpcy5fZmlsZXNTZWxlY3RF
bGVtZW50LmluaXRpYWxTZWxlY3Rpb25Qcm9jZXNzZWQ7CiAKQEAgLTU2OSw3ICs1NjUsNiBAQCBX
ZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKIAogICAgIF9yZXNldEZpbGVz
U2VsZWN0OiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICB0aGlzLl9zb3VyY2VGaWxlSWRUb0Zp
bGVzU2VsZWN0T3B0aW9uID0ge307CiAgICAgICAgIHRoaXMuX2ZpbGVzU2VsZWN0RWxlbWVudC5y
ZW1vdmVDaGlsZHJlbigpOwogICAgICAgICB0aGlzLl9maWxlc1NlbGVjdEVsZW1lbnQuZG9tYWlu
T3B0aW9ucyA9IHt9OwogICAgICAgICB0aGlzLl9maWxlc1NlbGVjdEVsZW1lbnQuZm9sZGVyT3B0
aW9ucyA9IHt9OwpAQCAtNjAyLDIxICs1OTcsMjEgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5l
bC5wcm90b3R5cGUgPSB7CiAKICAgICBzaG93QW5jaG9yTG9jYXRpb246IGZ1bmN0aW9uKGFuY2hv
cikKICAgICB7Ci0gICAgICAgIHRoaXMuX3Nob3dTb3VyY2VMaW5lKGFuY2hvci5nZXRBdHRyaWJ1
dGUoInNvdXJjZV9maWxlX2lkIiksIHBhcnNlSW50KGFuY2hvci5nZXRBdHRyaWJ1dGUoImxpbmVf
bnVtYmVyIikpKTsKKyAgICAgICAgdGhpcy5fc2hvd1NvdXJjZUxpbmUoYW5jaG9yLnVpU291cmNl
Q29kZSwgYW5jaG9yLmxpbmVOdW1iZXIpOwogICAgIH0sCiAKLSAgICBfc2hvd1NvdXJjZUxpbmU6
IGZ1bmN0aW9uKHNvdXJjZUZpbGVJZCwgbGluZU51bWJlcikKKyAgICBfc2hvd1NvdXJjZUxpbmU6
IGZ1bmN0aW9uKHVpU291cmNlQ29kZSwgbGluZU51bWJlcikKICAgICB7Ci0gICAgICAgIHZhciBz
b3VyY2VGcmFtZSA9IHRoaXMuX3Nob3dTb3VyY2VGcmFtZUFuZEFkZFRvSGlzdG9yeShzb3VyY2VG
aWxlSWQpOworICAgICAgICB2YXIgc291cmNlRnJhbWUgPSB0aGlzLl9zaG93U291cmNlRnJhbWVB
bmRBZGRUb0hpc3RvcnkodWlTb3VyY2VDb2RlKTsKICAgICAgICAgc291cmNlRnJhbWUuaGlnaGxp
Z2h0TGluZShsaW5lTnVtYmVyKTsKICAgICB9LAogCi0gICAgX3Nob3dTb3VyY2VGcmFtZUFuZEFk
ZFRvSGlzdG9yeTogZnVuY3Rpb24oc291cmNlRmlsZUlkKQorICAgIF9zaG93U291cmNlRnJhbWVB
bmRBZGRUb0hpc3Rvcnk6IGZ1bmN0aW9uKHVpU291cmNlQ29kZSkKICAgICB7Ci0gICAgICAgIGlm
ICghKHNvdXJjZUZpbGVJZCBpbiB0aGlzLl9zb3VyY2VGaWxlSWRUb0ZpbGVzU2VsZWN0T3B0aW9u
KSkKKyAgICAgICAgaWYgKCF1aVNvdXJjZUNvZGUuX29wdGlvbikKICAgICAgICAgICAgIHJldHVy
bjsKIAotICAgICAgICB2YXIgc291cmNlRnJhbWUgPSB0aGlzLl9zaG93U291cmNlRnJhbWUoc291
cmNlRmlsZUlkKTsKKyAgICAgICAgdmFyIHNvdXJjZUZyYW1lID0gdGhpcy5fc2hvd1NvdXJjZUZy
YW1lKHVpU291cmNlQ29kZSk7CiAKICAgICAgICAgdmFyIG9sZEluZGV4ID0gdGhpcy5fY3VycmVu
dEJhY2tGb3J3YXJkSW5kZXg7CiAgICAgICAgIGlmIChvbGRJbmRleCA+PSAwKQpAQCAtNjI0LDEx
ICs2MTksMTEgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAKICAg
ICAgICAgLy8gQ2hlY2sgZm9yIGEgcHJldmlvdXMgZW50cnkgb2YgdGhlIHNhbWUgb2JqZWN0IGlu
IF9iYWNrRm9yd2FyZExpc3QuCiAgICAgICAgIC8vIElmIG9uZSBpcyBmb3VuZCwgcmVtb3ZlIGl0
LgotICAgICAgICB2YXIgcHJldmlvdXNFbnRyeUluZGV4ID0gdGhpcy5fYmFja0ZvcndhcmRMaXN0
LmluZGV4T2Yoc291cmNlRmlsZUlkKTsKKyAgICAgICAgdmFyIHByZXZpb3VzRW50cnlJbmRleCA9
IHRoaXMuX2JhY2tGb3J3YXJkTGlzdC5pbmRleE9mKHVpU291cmNlQ29kZSk7CiAgICAgICAgIGlm
IChwcmV2aW91c0VudHJ5SW5kZXggIT09IC0xKQogICAgICAgICAgICAgdGhpcy5fYmFja0Zvcndh
cmRMaXN0LnNwbGljZShwcmV2aW91c0VudHJ5SW5kZXgsIDEpOwogCi0gICAgICAgIHRoaXMuX2Jh
Y2tGb3J3YXJkTGlzdC5wdXNoKHNvdXJjZUZpbGVJZCk7CisgICAgICAgIHRoaXMuX2JhY2tGb3J3
YXJkTGlzdC5wdXNoKHVpU291cmNlQ29kZSk7CiAgICAgICAgIHRoaXMuX2N1cnJlbnRCYWNrRm9y
d2FyZEluZGV4ID0gdGhpcy5fYmFja0ZvcndhcmRMaXN0Lmxlbmd0aCAtIDE7CiAKICAgICAgICAg
dGhpcy5fdXBkYXRlQmFja0FuZEZvcndhcmRCdXR0b25zKCk7CkBAIC02MzYsNzkgKzYzMSw2OSBA
QCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJu
IHNvdXJjZUZyYW1lOwogICAgIH0sCiAKLSAgICBfc2hvd1NvdXJjZUZyYW1lOiBmdW5jdGlvbihz
b3VyY2VGaWxlSWQpCisgICAgX3Nob3dTb3VyY2VGcmFtZTogZnVuY3Rpb24odWlTb3VyY2VDb2Rl
KQogICAgIHsKLSAgICAgICAgdmFyIGluZGV4ID0gdGhpcy5fc291cmNlRmlsZUlkVG9GaWxlc1Nl
bGVjdE9wdGlvbltzb3VyY2VGaWxlSWRdLmluZGV4OwotICAgICAgICB0aGlzLl9maWxlc1NlbGVj
dEVsZW1lbnQuc2VsZWN0ZWRJbmRleCA9IGluZGV4OworICAgICAgICB0aGlzLl9maWxlc1NlbGVj
dEVsZW1lbnQuc2VsZWN0ZWRJbmRleCA9IHVpU291cmNlQ29kZS5fb3B0aW9uLmluZGV4OwogCi0g
ICAgICAgIHZhciBzb3VyY2VGcmFtZSA9IHRoaXMuX3NvdXJjZUZyYW1lRm9yU291cmNlRmlsZUlk
KHNvdXJjZUZpbGVJZCk7CisgICAgICAgIHZhciBzb3VyY2VGcmFtZSA9IHVpU291cmNlQ29kZS5f
c291cmNlRnJhbWUgfHwgdGhpcy5fY3JlYXRlU291cmNlRnJhbWUodWlTb3VyY2VDb2RlKTsKICAg
ICAgICAgdGhpcy52aXNpYmxlVmlldyA9IHNvdXJjZUZyYW1lOwogCi0gICAgICAgIHZhciBzb3Vy
Y2VGaWxlID0gdGhpcy5fcHJlc2VudGF0aW9uTW9kZWwudWlTb3VyY2VDb2RlKHNvdXJjZUZpbGVJ
ZCk7Ci0gICAgICAgIGlmIChzb3VyY2VGaWxlLnVybCkKLSAgICAgICAgICAgIFdlYkluc3BlY3Rv
ci5zZXR0aW5ncy5sYXN0Vmlld2VkU2NyaXB0RmlsZS5zZXQoc291cmNlRmlsZS51cmwpOworICAg
ICAgICBpZiAodWlTb3VyY2VDb2RlLnVybCkKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5zZXR0
aW5ncy5sYXN0Vmlld2VkU2NyaXB0RmlsZS5zZXQodWlTb3VyY2VDb2RlLnVybCk7CiAKICAgICAg
ICAgcmV0dXJuIHNvdXJjZUZyYW1lOwogICAgIH0sCiAKLSAgICBfc291cmNlRnJhbWVGb3JTb3Vy
Y2VGaWxlSWQ6IGZ1bmN0aW9uKHNvdXJjZUZpbGVJZCkKLSAgICB7Ci0gICAgICAgIHZhciBzb3Vy
Y2VGcmFtZSA9IHRoaXMuX3NvdXJjZUZpbGVJZFRvU291cmNlRnJhbWVbc291cmNlRmlsZUlkXTsK
LSAgICAgICAgcmV0dXJuIHNvdXJjZUZyYW1lIHx8IHRoaXMuX2NyZWF0ZVNvdXJjZUZyYW1lKHNv
dXJjZUZpbGVJZCk7Ci0gICAgfSwKLQotICAgIF9jcmVhdGVTb3VyY2VGcmFtZTogZnVuY3Rpb24o
c291cmNlRmlsZUlkKQorICAgIF9jcmVhdGVTb3VyY2VGcmFtZTogZnVuY3Rpb24odWlTb3VyY2VD
b2RlKQogICAgIHsKLSAgICAgICAgdmFyIHNvdXJjZUZpbGUgPSB0aGlzLl9wcmVzZW50YXRpb25N
b2RlbC51aVNvdXJjZUNvZGUoc291cmNlRmlsZUlkKTsKLSAgICAgICAgdmFyIGRlbGVnYXRlID0g
bmV3IFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZURlbGVnYXRlRm9yU2NyaXB0c1BhbmVsKHRoaXMu
X3ByZXNlbnRhdGlvbk1vZGVsLCBzb3VyY2VGaWxlSWQpOwotICAgICAgICB2YXIgc291cmNlRnJh
bWUgPSBuZXcgV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lKGRlbGVnYXRlLCBzb3VyY2VGaWxlLnVy
bCk7CisgICAgICAgIHZhciBkZWxlZ2F0ZSA9IG5ldyBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWVE
ZWxlZ2F0ZUZvclNjcmlwdHNQYW5lbCh0aGlzLl9wcmVzZW50YXRpb25Nb2RlbCwgdWlTb3VyY2VD
b2RlKTsKKyAgICAgICAgdmFyIHNvdXJjZUZyYW1lID0gbmV3IFdlYkluc3BlY3Rvci5Tb3VyY2VG
cmFtZShkZWxlZ2F0ZSwgdWlTb3VyY2VDb2RlLnVybCk7CiAgICAgICAgIHRoaXMuYWRkQ2hpbGRW
aWV3KHNvdXJjZUZyYW1lKTsKLSAgICAgICAgc291cmNlRnJhbWUuX3NvdXJjZUZpbGVJZCA9IHNv
dXJjZUZpbGVJZDsKKyAgICAgICAgc291cmNlRnJhbWUuX3VpU291cmNlQ29kZSA9IHVpU291cmNl
Q29kZTsKICAgICAgICAgc291cmNlRnJhbWUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3Iu
U291cmNlRnJhbWUuRXZlbnRzLkxvYWRlZCwgdGhpcy5fc291cmNlRnJhbWVMb2FkZWQsIHRoaXMp
OwotICAgICAgICB0aGlzLl9zb3VyY2VGaWxlSWRUb1NvdXJjZUZyYW1lW3NvdXJjZUZpbGVJZF0g
PSBzb3VyY2VGcmFtZTsKKyAgICAgICAgdWlTb3VyY2VDb2RlLl9zb3VyY2VGcmFtZSA9IHNvdXJj
ZUZyYW1lOwogICAgICAgICByZXR1cm4gc291cmNlRnJhbWU7CiAgICAgfSwKIAotICAgIF9yZW1v
dmVTb3VyY2VGcmFtZTogZnVuY3Rpb24oc291cmNlRmlsZUlkKQorICAgIF9yZW1vdmVTb3VyY2VG
cmFtZTogZnVuY3Rpb24odWlTb3VyY2VDb2RlKQogICAgIHsKLSAgICAgICAgdmFyIHNvdXJjZUZy
YW1lID0gdGhpcy5fc291cmNlRmlsZUlkVG9Tb3VyY2VGcmFtZVtzb3VyY2VGaWxlSWRdOworICAg
ICAgICB2YXIgc291cmNlRnJhbWUgPSB1aVNvdXJjZUNvZGUuX3NvdXJjZUZyYW1lOwogICAgICAg
ICBpZiAoIXNvdXJjZUZyYW1lKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBkZWxldGUg
dGhpcy5fc291cmNlRmlsZUlkVG9Tb3VyY2VGcmFtZVtzb3VyY2VGaWxlSWRdOworICAgICAgICBk
ZWxldGUgdWlTb3VyY2VDb2RlLl9zb3VyY2VGcmFtZTsKICAgICAgICAgdGhpcy5yZW1vdmVDaGls
ZFZpZXcoc291cmNlRnJhbWUpOwogICAgICAgICBzb3VyY2VGcmFtZS5yZW1vdmVFdmVudExpc3Rl
bmVyKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5FdmVudHMuTG9hZGVkLCB0aGlzLl9zb3VyY2VG
cmFtZUxvYWRlZCwgdGhpcyk7CiAgICAgfSwKIAotICAgIF9zb3VyY2VGaWxlUmVwbGFjZWQ6IGZ1
bmN0aW9uKGV2ZW50KQorICAgIF91aVNvdXJjZUNvZGVSZXBsYWNlZDogZnVuY3Rpb24oZXZlbnQp
CiAgICAgewotICAgICAgICB2YXIgb2xkU291cmNlRmlsZSA9IGV2ZW50LmRhdGEub2xkU291cmNl
Q29kZTsKLSAgICAgICAgdmFyIG5ld1NvdXJjZUZpbGUgPSBldmVudC5kYXRhLnNvdXJjZUNvZGU7
CisgICAgICAgIHZhciBvbGRVSVNvdXJjZUNvZGUgPSBldmVudC5kYXRhLm9sZFNvdXJjZUNvZGU7
CisgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSBldmVudC5kYXRhLnNvdXJjZUNvZGU7CiAKICAg
ICAgICAgLy8gUmUtYmluZCBmaWxlIHNlbGVjdCBvcHRpb24gZnJvbSBvbGQgc291cmNlIGZpbGUg
dG8gbmV3IG9uZS4KLSAgICAgICAgdmFyIG9wdGlvbiA9IHRoaXMuX3NvdXJjZUZpbGVJZFRvRmls
ZXNTZWxlY3RPcHRpb25bb2xkU291cmNlRmlsZS5pZF07Ci0gICAgICAgIGRlbGV0ZSB0aGlzLl9z
b3VyY2VGaWxlSWRUb0ZpbGVzU2VsZWN0T3B0aW9uW29sZFNvdXJjZUZpbGUuaWRdOwotICAgICAg
ICBvcHRpb24uc291cmNlRmlsZUlkID0gbmV3U291cmNlRmlsZS5pZDsKLSAgICAgICAgdGhpcy5f
c291cmNlRmlsZUlkVG9GaWxlc1NlbGVjdE9wdGlvbltuZXdTb3VyY2VGaWxlLmlkXSA9IG9wdGlv
bjsKKyAgICAgICAgdmFyIG9wdGlvbiA9IG9sZFVJU291cmNlQ29kZS5fb3B0aW9uOworICAgICAg
ICBkZWxldGUgb2xkVUlTb3VyY2VDb2RlLl9vcHRpb247CisgICAgICAgIG9wdGlvbi5fdWlTb3Vy
Y2VDb2RlID0gdWlTb3VyY2VDb2RlOworICAgICAgICB1aVNvdXJjZUNvZGUuX29wdGlvbiA9IG9w
dGlvbjsKIAogICAgICAgICAvLyBSZW1vdmUgb2xkIHNvdXJjZSBmcmFtZSBhbmQgY3JlYXRlIG5l
dyBvbmUgaWYgbmVlZGVkLgotICAgICAgICB0aGlzLl9yZW1vdmVTb3VyY2VGcmFtZShvbGRTb3Vy
Y2VGaWxlLmlkKTsKKyAgICAgICAgdGhpcy5fcmVtb3ZlU291cmNlRnJhbWUob2xkVUlTb3VyY2VD
b2RlKTsKICAgICAgICAgaWYgKG9wdGlvbiA9PT0gdGhpcy5fZmlsZXNTZWxlY3RFbGVtZW50W3Ro
aXMuX2ZpbGVzU2VsZWN0RWxlbWVudC5zZWxlY3RlZEluZGV4XSkKLSAgICAgICAgICAgIHRoaXMu
X3Nob3dTb3VyY2VGcmFtZShuZXdTb3VyY2VGaWxlLmlkKTsKKyAgICAgICAgICAgIHRoaXMuX3No
b3dTb3VyY2VGcmFtZSh1aVNvdXJjZUNvZGUpOwogICAgIH0sCiAKICAgICBfc291cmNlRnJhbWVM
b2FkZWQ6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKICAgICAgICAgdmFyIHNvdXJjZUZyYW1lID0g
ZXZlbnQudGFyZ2V0OwotICAgICAgICB2YXIgc291cmNlRmlsZUlkID0gc291cmNlRnJhbWUuX3Nv
dXJjZUZpbGVJZDsKLSAgICAgICAgdmFyIHNvdXJjZUZpbGUgPSB0aGlzLl9wcmVzZW50YXRpb25N
b2RlbC51aVNvdXJjZUNvZGUoc291cmNlRmlsZUlkKTsKKyAgICAgICAgdmFyIHVpU291cmNlQ29k
ZSA9IHNvdXJjZUZyYW1lLl91aVNvdXJjZUNvZGU7CiAKLSAgICAgICAgdmFyIG1lc3NhZ2VzID0g
c291cmNlRmlsZS5tZXNzYWdlczsKKyAgICAgICAgdmFyIG1lc3NhZ2VzID0gdWlTb3VyY2VDb2Rl
Lm1lc3NhZ2VzOwogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG1lc3NhZ2VzLmxlbmd0aDsg
KytpKSB7CiAgICAgICAgICAgICB2YXIgbWVzc2FnZSA9IG1lc3NhZ2VzW2ldOwogICAgICAgICAg
ICAgc291cmNlRnJhbWUuYWRkTWVzc2FnZVRvU291cmNlKG1lc3NhZ2UubGluZU51bWJlciwgbWVz
c2FnZS5vcmlnaW5hbE1lc3NhZ2UpOwogICAgICAgICB9CiAKLSAgICAgICAgdmFyIGJyZWFrcG9p
bnRzID0gdGhpcy5fcHJlc2VudGF0aW9uTW9kZWwuYnJlYWtwb2ludHNGb3JTb3VyY2VGaWxlSWQo
c291cmNlRmlsZUlkKTsKKyAgICAgICAgdmFyIGJyZWFrcG9pbnRzID0gdGhpcy5fcHJlc2VudGF0
aW9uTW9kZWwuYnJlYWtwb2ludHNGb3JVSVNvdXJjZUNvZGUodWlTb3VyY2VDb2RlKTsKICAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCBicmVha3BvaW50cy5sZW5ndGg7ICsraSkgewogICAgICAg
ICAgICAgdmFyIGJyZWFrcG9pbnQgPSBicmVha3BvaW50c1tpXTsKICAgICAgICAgICAgIHNvdXJj
ZUZyYW1lLmFkZEJyZWFrcG9pbnQoYnJlYWtwb2ludC5saW5lTnVtYmVyLCBicmVha3BvaW50LnJl
c29sdmVkLCBicmVha3BvaW50LmNvbmRpdGlvbiwgYnJlYWtwb2ludC5lbmFibGVkKTsKQEAgLTcz
NSwxNyArNzIwLDE2IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewog
ICAgICAgICB0aGlzLnNpZGViYXJQYW5lcy53YXRjaEV4cHJlc3Npb25zLnJlZnJlc2hFeHByZXNz
aW9ucygpOwogICAgICAgICB0aGlzLnNpZGViYXJQYW5lcy5jYWxsc3RhY2suc2VsZWN0ZWRDYWxs
RnJhbWUgPSB0aGlzLl9wcmVzZW50YXRpb25Nb2RlbC5zZWxlY3RlZENhbGxGcmFtZTsKIAotICAg
ICAgICBmdW5jdGlvbiBkaWRHZXRTb3VyY2VMb2NhdGlvbihzb3VyY2VGaWxlSWQsIGxpbmVOdW1i
ZXIpCisgICAgICAgIGZ1bmN0aW9uIGRpZEdldFNvdXJjZUxvY2F0aW9uKHVpU291cmNlQ29kZSwg
bGluZU51bWJlcikKICAgICAgICAgewotICAgICAgICAgICAgaWYgKCFzb3VyY2VGaWxlSWQpCisg
ICAgICAgICAgICBpZiAoIXVpU291cmNlQ29kZSkKICAgICAgICAgICAgICAgICByZXR1cm47CiAK
LSAgICAgICAgICAgIGlmICghKHNvdXJjZUZpbGVJZCBpbiB0aGlzLl9zb3VyY2VGaWxlSWRUb0Zp
bGVzU2VsZWN0T3B0aW9uKSkgeworICAgICAgICAgICAgaWYgKCF1aVNvdXJjZUNvZGUuX29wdGlv
bikgewogICAgICAgICAgICAgICAgIC8vIEFub255bW91cyBzY3JpcHRzIGFyZSBub3QgYWRkZWQg
dG8gZmlsZXMgc2VsZWN0IGJ5IGRlZmF1bHQuCi0gICAgICAgICAgICAgICAgdmFyIHNvdXJjZUZp
bGUgPSB0aGlzLl9wcmVzZW50YXRpb25Nb2RlbC51aVNvdXJjZUNvZGUoc291cmNlRmlsZUlkKTsK
LSAgICAgICAgICAgICAgICB0aGlzLl9hZGRPcHRpb25Ub0ZpbGVzU2VsZWN0KHNvdXJjZUZpbGUp
OworICAgICAgICAgICAgICAgIHRoaXMuX2FkZE9wdGlvblRvRmlsZXNTZWxlY3QodWlTb3VyY2VD
b2RlKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHZhciBzb3VyY2VGcmFtZSA9IHRoaXMu
X3Nob3dTb3VyY2VGcmFtZUFuZEFkZFRvSGlzdG9yeShzb3VyY2VGaWxlSWQpOworICAgICAgICAg
ICAgdmFyIHNvdXJjZUZyYW1lID0gdGhpcy5fc2hvd1NvdXJjZUZyYW1lQW5kQWRkVG9IaXN0b3J5
KHVpU291cmNlQ29kZSk7CiAgICAgICAgICAgICBzb3VyY2VGcmFtZS5zZXRFeGVjdXRpb25MaW5l
KGxpbmVOdW1iZXIpOwogICAgICAgICAgICAgdGhpcy5fZXhlY3V0aW9uU291cmNlRnJhbWUgPSBz
b3VyY2VGcmFtZTsKICAgICAgICAgfQpAQCAtNzU3LDggKzc0MSw4IEBAIFdlYkluc3BlY3Rvci5T
Y3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICBpZiAodGhpcy5fZmlsZXNTZWxlY3RF
bGVtZW50LnNlbGVjdGVkSW5kZXggPT09IC0xKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAg
ICAgIHZhciBzb3VyY2VGaWxlSWQgPSB0aGlzLl9maWxlc1NlbGVjdEVsZW1lbnRbdGhpcy5fZmls
ZXNTZWxlY3RFbGVtZW50LnNlbGVjdGVkSW5kZXhdLl9zb3VyY2VGaWxlSWQ7Ci0gICAgICAgIHRo
aXMuX3Nob3dTb3VyY2VGcmFtZUFuZEFkZFRvSGlzdG9yeShzb3VyY2VGaWxlSWQpOworICAgICAg
ICB2YXIgdWlTb3VyY2VDb2RlID0gdGhpcy5fZmlsZXNTZWxlY3RFbGVtZW50W3RoaXMuX2ZpbGVz
U2VsZWN0RWxlbWVudC5zZWxlY3RlZEluZGV4XS5fdWlTb3VyY2VDb2RlOworICAgICAgICB0aGlz
Ll9zaG93U291cmNlRnJhbWVBbmRBZGRUb0hpc3RvcnkodWlTb3VyY2VDb2RlKTsKICAgICB9LAog
CiAgICAgX3N0YXJ0U2lkZWJhclJlc2l6ZURyYWc6IGZ1bmN0aW9uKGV2ZW50KQpAQCAtMTE0MCwx
MSArMTEyNCwxMSBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKICAg
ICAgICAgV2ViSW5zcGVjdG9yLnNlYXJjaENvbnRyb2xsZXIudXBkYXRlQ3VycmVudE1hdGNoSW5k
ZXgodGhpcy5fc2VhcmNoVmlldy5jdXJyZW50U2VhcmNoUmVzdWx0SW5kZXggKyAxLCB0aGlzKTsK
ICAgICB9LAogCi0gICAgX3RvZ2dsZUZvcm1hdFNvdXJjZUZpbGVzOiBmdW5jdGlvbigpCisgICAg
X3RvZ2dsZUZvcm1hdFNvdXJjZTogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgV2ViSW5zcGVj
dG9yLnBhbmVscy5zY3JpcHRzLnJlc2V0KCk7Ci0gICAgICAgIHRoaXMuX3RvZ2dsZUZvcm1hdFNv
dXJjZUZpbGVzQnV0dG9uLnRvZ2dsZWQgPSAhdGhpcy5fdG9nZ2xlRm9ybWF0U291cmNlRmlsZXNC
dXR0b24udG9nZ2xlZDsKLSAgICAgICAgdGhpcy5fcHJlc2VudGF0aW9uTW9kZWwuc2V0Rm9ybWF0
U291cmNlRmlsZXModGhpcy5fdG9nZ2xlRm9ybWF0U291cmNlRmlsZXNCdXR0b24udG9nZ2xlZCk7
CisgICAgICAgIHRoaXMuX3RvZ2dsZUZvcm1hdFNvdXJjZUJ1dHRvbi50b2dnbGVkID0gIXRoaXMu
X3RvZ2dsZUZvcm1hdFNvdXJjZUJ1dHRvbi50b2dnbGVkOworICAgICAgICB0aGlzLl9wcmVzZW50
YXRpb25Nb2RlbC5zZXRGb3JtYXRTb3VyY2UodGhpcy5fdG9nZ2xlRm9ybWF0U291cmNlQnV0dG9u
LnRvZ2dsZWQpOwogICAgIH0sCiAKICAgICBfY29udGV4dE1lbnU6IGZ1bmN0aW9uKGV2ZW50KQpA
QCAtMTE3NywxOCArMTE2MSwxOCBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlw
ZSA9IHsKIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdl
Ykluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGU7CiAKIAotV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1l
RGVsZWdhdGVGb3JTY3JpcHRzUGFuZWwgPSBmdW5jdGlvbihtb2RlbCwgc291cmNlRmlsZUlkKQor
V2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lRGVsZWdhdGVGb3JTY3JpcHRzUGFuZWwgPSBmdW5jdGlv
bihtb2RlbCwgdWlTb3VyY2VDb2RlKQogewogICAgIFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZURl
bGVnYXRlLmNhbGwodGhpcyk7CiAgICAgdGhpcy5fbW9kZWwgPSBtb2RlbDsKLSAgICB0aGlzLl9z
b3VyY2VGaWxlSWQgPSBzb3VyY2VGaWxlSWQ7CisgICAgdGhpcy5fdWlTb3VyY2VDb2RlID0gdWlT
b3VyY2VDb2RlOwogICAgIHRoaXMuX3BvcG92ZXJPYmplY3RHcm91cCA9ICJwb3BvdmVyIjsKIH0K
IAogV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lRGVsZWdhdGVGb3JTY3JpcHRzUGFuZWwucHJvdG90
eXBlID0gewogICAgIHJlcXVlc3RDb250ZW50OiBmdW5jdGlvbihjYWxsYmFjaykKICAgICB7Ci0g
ICAgICAgIHRoaXMuX21vZGVsLnVpU291cmNlQ29kZSh0aGlzLl9zb3VyY2VGaWxlSWQpLnJlcXVl
c3RDb250ZW50KGNhbGxiYWNrKTsKKyAgICAgICAgdGhpcy5fdWlTb3VyY2VDb2RlLnJlcXVlc3RD
b250ZW50KGNhbGxiYWNrKTsKICAgICB9LAogCiAgICAgZGVidWdnaW5nU3VwcG9ydGVkOiBmdW5j
dGlvbigpCkBAIC0xMTk4LDcgKzExODIsNyBAQCBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWVEZWxl
Z2F0ZUZvclNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAKICAgICBzZXRCcmVha3BvaW50OiBm
dW5jdGlvbihsaW5lTnVtYmVyLCBjb25kaXRpb24sIGVuYWJsZWQpCiAgICAgewotICAgICAgICB0
aGlzLl9tb2RlbC5zZXRCcmVha3BvaW50KHRoaXMuX3NvdXJjZUZpbGVJZCwgbGluZU51bWJlciwg
Y29uZGl0aW9uLCBlbmFibGVkKTsKKyAgICAgICAgdGhpcy5fbW9kZWwuc2V0QnJlYWtwb2ludCh0
aGlzLl91aVNvdXJjZUNvZGUsIGxpbmVOdW1iZXIsIGNvbmRpdGlvbiwgZW5hYmxlZCk7CiAKICAg
ICAgICAgaWYgKCFXZWJJbnNwZWN0b3IucGFuZWxzLnNjcmlwdHMuYnJlYWtwb2ludHNBY3RpdmF0
ZWQpCiAgICAgICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLnNjcmlwdHMudG9nZ2xlQnJlYWtw
b2ludHNDbGlja2VkKCk7CkBAIC0xMjA2LDM3ICsxMTkwLDM3IEBAIFdlYkluc3BlY3Rvci5Tb3Vy
Y2VGcmFtZURlbGVnYXRlRm9yU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKIAogICAgIHVwZGF0
ZUJyZWFrcG9pbnQ6IGZ1bmN0aW9uKGxpbmVOdW1iZXIsIGNvbmRpdGlvbiwgZW5hYmxlZCkKICAg
ICB7Ci0gICAgICAgIHRoaXMuX21vZGVsLnVwZGF0ZUJyZWFrcG9pbnQodGhpcy5fc291cmNlRmls
ZUlkLCBsaW5lTnVtYmVyLCBjb25kaXRpb24sIGVuYWJsZWQpOworICAgICAgICB0aGlzLl9tb2Rl
bC51cGRhdGVCcmVha3BvaW50KHRoaXMuX3VpU291cmNlQ29kZSwgbGluZU51bWJlciwgY29uZGl0
aW9uLCBlbmFibGVkKTsKICAgICB9LAogCiAgICAgcmVtb3ZlQnJlYWtwb2ludDogZnVuY3Rpb24o
bGluZU51bWJlcikKICAgICB7Ci0gICAgICAgIHRoaXMuX21vZGVsLnJlbW92ZUJyZWFrcG9pbnQo
dGhpcy5fc291cmNlRmlsZUlkLCBsaW5lTnVtYmVyKTsKKyAgICAgICAgdGhpcy5fbW9kZWwucmVt
b3ZlQnJlYWtwb2ludCh0aGlzLl91aVNvdXJjZUNvZGUsIGxpbmVOdW1iZXIpOwogICAgIH0sCiAK
ICAgICBmaW5kQnJlYWtwb2ludDogZnVuY3Rpb24obGluZU51bWJlcikKICAgICB7Ci0gICAgICAg
IHJldHVybiB0aGlzLl9tb2RlbC5maW5kQnJlYWtwb2ludCh0aGlzLl9zb3VyY2VGaWxlSWQsIGxp
bmVOdW1iZXIpOworICAgICAgICByZXR1cm4gdGhpcy5fbW9kZWwuZmluZEJyZWFrcG9pbnQodGhp
cy5fdWlTb3VyY2VDb2RlLCBsaW5lTnVtYmVyKTsKICAgICB9LAogCiAgICAgY29udGludWVUb0xp
bmU6IGZ1bmN0aW9uKGxpbmVOdW1iZXIpCiAgICAgewotICAgICAgICB0aGlzLl9tb2RlbC5jb250
aW51ZVRvTGluZSh0aGlzLl9zb3VyY2VGaWxlSWQsIGxpbmVOdW1iZXIpOworICAgICAgICB0aGlz
Ll9tb2RlbC5jb250aW51ZVRvTGluZSh0aGlzLl91aVNvdXJjZUNvZGUsIGxpbmVOdW1iZXIpOwog
ICAgIH0sCiAKICAgICBjYW5FZGl0U2NyaXB0U291cmNlOiBmdW5jdGlvbigpCiAgICAgewotICAg
ICAgICByZXR1cm4gdGhpcy5fbW9kZWwuY2FuRWRpdFNjcmlwdFNvdXJjZSh0aGlzLl9zb3VyY2VG
aWxlSWQpOworICAgICAgICByZXR1cm4gdGhpcy5fbW9kZWwuY2FuRWRpdFNjcmlwdFNvdXJjZSh0
aGlzLl91aVNvdXJjZUNvZGUpOwogICAgIH0sCiAKICAgICBzZXRTY3JpcHRTb3VyY2U6IGZ1bmN0
aW9uKHRleHQsIGNhbGxiYWNrKQogICAgIHsKLSAgICAgICAgdGhpcy5fbW9kZWwuc2V0U2NyaXB0
U291cmNlKHRoaXMuX3NvdXJjZUZpbGVJZCwgdGV4dCwgY2FsbGJhY2spOworICAgICAgICB0aGlz
Ll9tb2RlbC5zZXRTY3JpcHRTb3VyY2UodGhpcy5fdWlTb3VyY2VDb2RlLCB0ZXh0LCBjYWxsYmFj
ayk7CiAgICAgfSwKIAogICAgIHNldFNjcmlwdFNvdXJjZUlzQmVpbmdFZGl0ZWQ6IGZ1bmN0aW9u
KGluRWRpdE1vZGUpCiAgICAgewotICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLnNjcmlwdHMu
c2V0U2NyaXB0U291cmNlSXNCZWluZ0VkaXRlZCh0aGlzLl9zb3VyY2VGaWxlSWQsIGluRWRpdE1v
ZGUpOworICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLnNjcmlwdHMuc2V0U2NyaXB0U291cmNl
SXNCZWluZ0VkaXRlZCh0aGlzLl91aVNvdXJjZUNvZGUsIGluRWRpdE1vZGUpOwogICAgIH0sCiAK
ICAgICBkZWJ1Z2dlclBhdXNlZDogZnVuY3Rpb24oKQpAQCAtMTI1Niw4ICsxMjQwLDcgQEAgV2Vi
SW5zcGVjdG9yLlNvdXJjZUZyYW1lRGVsZWdhdGVGb3JTY3JpcHRzUGFuZWwucHJvdG90eXBlID0g
ewogCiAgICAgc3VnZ2VzdGVkRmlsZU5hbWU6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIHZh
ciBzb3VyY2VGaWxlID0gdGhpcy5fbW9kZWwudWlTb3VyY2VDb2RlKHRoaXMuX3NvdXJjZUZpbGVJ
ZCk7Ci0gICAgICAgIHZhciBuYW1lcyA9IFdlYkluc3BlY3Rvci5wYW5lbHMuc2NyaXB0cy5fZm9s
ZGVyQW5kRGlzcGxheU5hbWVGb3JTY3JpcHRVUkwoc291cmNlRmlsZS51cmwpOworICAgICAgICB2
YXIgbmFtZXMgPSBXZWJJbnNwZWN0b3IucGFuZWxzLnNjcmlwdHMuX2ZvbGRlckFuZERpc3BsYXlO
YW1lRm9yU2NyaXB0VVJMKHRoaXMuX3VpU291cmNlQ29kZS51cmwpOwogICAgICAgICByZXR1cm4g
bmFtZXMuZGlzcGxheU5hbWUgfHwgInVudGl0bGVkLmpzIjsKICAgICB9CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105647</attachid>
            <date>2011-08-30 10:26:04 -0700</date>
            <delta_ts>2011-08-30 23:56:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67136-20110830212601.patch</filename>
            <type>text/plain</type>
            <size>60615</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTM5ODIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1MzA1NmM4ZTNkZTU3MmYxNzE4MzYz
NGQ4ZjhlNzY5ZTg0ZmM2ODMxLi42MWUwZTVlY2RlMjlkYmU2NmMzY2JkMDhiMTllZmMzMTIyYTAz
ODYxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDgtMzAgIFBhdmVsIFBvZGl2aWxvdiAg
PHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogcmVuYW1l
IHNvdXJjZUZpbGUgdG8gdWlTb3VyY2VDb2RlIGFuZCBnZXQgcmlkIG9mIHNvdXJjZUZpbGVJZCB3
aGVyZSBwb3NzaWJsZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTY3MTM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1tYW5hZ2VyLmh0bWw6CisgICAg
ICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMtcGFuZWwuaHRtbDoKKwogMjAxMS0wOC0y
OSAgVG9tIFpha3JhanNlayAgPHRvbXpAY29kZWF1cm9yYS5vcmc+CiAKICAgICAgICAgY2FudmFz
IGFyYygpIG1pc3NpbmcgbGluZSB0byBzdGFydCBvZiBhcmMgaWYgc3dpbmcgaXMgemVybwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtbWFuYWdl
ci5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtbWFuYWdl
ci5odG1sCmluZGV4IGM1YWM3OGI1ZWQ1OGVlZWFlYjAzMDJkODE3NDY2NzVkZTUyMzNmZjYuLjE4
ZTAwZTM2MDY3MjAzOGFlOGQxMmRhNWQ4Mjk2YWNlMThkMjMxZTkgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVha3BvaW50LW1hbmFnZXIuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1tYW5hZ2VyLmh0bWwKQEAg
LTEzLDE3ICsxMywxNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICB9OwogCiAgICAgdmFyIHVpQnJl
YWtwb2ludHMgPSB7fTsKLSAgICBmdW5jdGlvbiBicmVha3BvaW50QWRkZWQodWlTb3VyY2VDb2Rl
SWQsIGxpbmVOdW1iZXIsIGNvbmRpdGlvbiwgZW5hYmxlZCkKKyAgICBmdW5jdGlvbiBicmVha3Bv
aW50QWRkZWQoYnJlYWtwb2ludCkKICAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KCJicmVha3BvaW50QWRkZWQoIiArIEFycmF5LnByb3RvdHlwZS5qb2luLmNhbGwoYXJndW1l
bnRzLCAiLCAiKSArICIpIik7Ci0gICAgICAgIHZhciBicmVha3BvaW50SWQgPSB1aVNvdXJjZUNv
ZGVJZCArICI6IiArIGxpbmVOdW1iZXI7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KCJicmVha3BvaW50QWRkZWQoIiArIFticmVha3BvaW50LnVpU291cmNlQ29kZUlkLCBicmVha3Bv
aW50LmxpbmVOdW1iZXIsIGJyZWFrcG9pbnQuY29uZGl0aW9uLCBicmVha3BvaW50LmVuYWJsZWRd
LmpvaW4oIiwgIikgKyAiKSIpOworICAgICAgICB2YXIgYnJlYWtwb2ludElkID0gYnJlYWtwb2lu
dC51aVNvdXJjZUNvZGVJZCArICI6IiArIGJyZWFrcG9pbnQubGluZU51bWJlcjsKICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hc3NlcnRUcnVlKCEoYnJlYWtwb2ludElkIGluIHVpQnJlYWtwb2ludHMp
KTsKLSAgICAgICAgdWlCcmVha3BvaW50c1ticmVha3BvaW50SWRdID0gY29uZGl0aW9uICsgInwi
ICsgZW5hYmxlZDsKKyAgICAgICAgdWlCcmVha3BvaW50c1ticmVha3BvaW50SWRdID0gYnJlYWtw
b2ludC5jb25kaXRpb24gKyAifCIgKyBicmVha3BvaW50LmVuYWJsZWQ7CiAgICAgfQotICAgIGZ1
bmN0aW9uIGJyZWFrcG9pbnRSZW1vdmVkKHVpU291cmNlQ29kZUlkLCBsaW5lTnVtYmVyKQorICAg
IGZ1bmN0aW9uIGJyZWFrcG9pbnRSZW1vdmVkKGJyZWFrcG9pbnQpCiAgICAgewotICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiYnJlYWtwb2ludFJlbW92ZWQoIiArIEFycmF5LnByb3Rv
dHlwZS5qb2luLmNhbGwoYXJndW1lbnRzLCAiLCAiKSArICIpIik7Ci0gICAgICAgIHZhciBicmVh
a3BvaW50SWQgPSB1aVNvdXJjZUNvZGVJZCArICI6IiArIGxpbmVOdW1iZXI7CisgICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCJicmVha3BvaW50UmVtb3ZlZCgiICsgW2JyZWFrcG9pbnQu
dWlTb3VyY2VDb2RlSWQsIGJyZWFrcG9pbnQubGluZU51bWJlcl0uam9pbigiLCAiKSArICIpIik7
CisgICAgICAgIHZhciBicmVha3BvaW50SWQgPSBicmVha3BvaW50LnVpU291cmNlQ29kZUlkICsg
IjoiICsgYnJlYWtwb2ludC5saW5lTnVtYmVyOwogICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2Vy
dFRydWUoYnJlYWtwb2ludElkIGluIHVpQnJlYWtwb2ludHMpOwogICAgICAgICBkZWxldGUgdWlC
cmVha3BvaW50c1ticmVha3BvaW50SWRdOwogICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXBhbmVsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1wYW5lbC5odG1sCmluZGV4IDFjOGU0YzlmMjM4NWJkMWYw
NDI2OWUzMGJkOGQyMjM0MWI0M2VjMGYuLjkwMzZkZjNjMWVjYTA0OGJmYmMzMTFlN2E4YTAwODY2
NWNjNGM1YzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3Jp
cHRzLXBhbmVsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Njcmlw
dHMtcGFuZWwuaHRtbApAQCAtMTU0LDcgKzE1NCw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAg
ICAgICAgbW9kZWwuX2FkZFNjcmlwdChjcmVhdGVNb2NrU2NyaXB0KCJmb28uanMiLCAiMSIpKTsK
ICAgICAgICAgICAgIG1vZGVsLl9hZGRTY3JpcHQoY3JlYXRlTW9ja1NjcmlwdCgiYmFyLmpzIiwg
IjIiKSk7CiAgICAgICAgICAgICB2YXIgc291cmNlRmlsZSA9IG1vZGVsLl9yYXdTb3VyY2VDb2Rl
Rm9yU2NyaXB0KCJiYXIuanMiKTsKLSAgICAgICAgICAgIHBhbmVsLl9zb3VyY2VGaWxlUmVwbGFj
ZWQoeyBkYXRhOiB7IG9sZFNvdXJjZUNvZGU6IHNvdXJjZUZpbGUsIHNvdXJjZUNvZGU6IHNvdXJj
ZUZpbGUgfX0pOworICAgICAgICAgICAgcGFuZWwuX3VpU291cmNlQ29kZVJlcGxhY2VkKHsgZGF0
YTogeyBvbGRTb3VyY2VDb2RlOiBzb3VyY2VGaWxlLCBzb3VyY2VDb2RlOiBzb3VyY2VGaWxlIH19
KTsKICAgICAgICAgICAgIHNob3dTb3VyY2VGcmFtZShwYW5lbCwgImJhci5qcyIpOwogICAgICAg
ICAgICAgbmV4dCgpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWM0MWRjOWI2NzA3YjQ0MGYz
YzJhNGE0OGI0NTMwMDRlZGJlMjkyMi4uY2NmZGYwNmI1ODNlZTM2ZmU0YTI3YjM0MTc0NTliMmMx
M2QwNzY5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk2IEBACisyMDExLTA4LTMwICBQYXZlbCBQ
b2Rpdmlsb3YgIDxwb2Rpdmlsb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IHJlbmFtZSBzb3VyY2VGaWxlIHRvIHVpU291cmNlQ29kZSBhbmQgZ2V0IHJpZCBvZiBzb3Vy
Y2VGaWxlSWQgd2hlcmUgcG9zc2libGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD02NzEzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9CcmVha3BvaW50TWFuYWdlci5q
czoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5CcmVha3BvaW50TWFuYWdlci5wcm90b3R5cGUudWlT
b3VyY2VDb2RlQWRkZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRNYW5hZ2Vy
LnByb3RvdHlwZS5icmVha3BvaW50c0ZvclVJU291cmNlQ29kZSk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuQnJlYWtwb2ludE1hbmFnZXIucHJvdG90eXBlLnNldEJyZWFrcG9pbnQpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRNYW5hZ2VyLnByb3RvdHlwZS5fbWF0ZXJpYWxpemVC
cmVha3BvaW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5CcmVha3BvaW50TWFuYWdlci5wcm90
b3R5cGUuX2JyZWFrcG9pbnREZWJ1Z2dlckxvY2F0aW9uQ2hhbmdlZCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuQnJlYWtwb2ludE1hbmFnZXIucHJvdG90eXBlLl9hZGRCcmVha3BvaW50VG9VSSk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuQnJlYWtwb2ludE1hbmFnZXIucHJvdG90eXBlLl9kZWxl
dGVCcmVha3BvaW50RnJvbVVJKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5CcmVha3BvaW50TWFu
YWdlci5wcm90b3R5cGUuc2V0IHJlc2V0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5CcmVha3Bv
aW50TWFuYWdlci5wcm90b3R5cGUuZGVidWdnZXJSZXNldCk6CisgICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9CcmVha3BvaW50c1NpZGViYXJQYW5lLmpzOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkphdmFTY3JpcHRCcmVha3BvaW50c1NpZGViYXJQYW5lLnByb3RvdHlwZS5hZGRCcmVha3Bv
aW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0QnJlYWtwb2ludHNTaWRlYmFy
UGFuZS5wcm90b3R5cGUucmVtb3ZlQnJlYWtwb2ludCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
SmF2YVNjcmlwdEJyZWFrcG9pbnRzU2lkZWJhclBhbmUucHJvdG90eXBlLmhpZ2hsaWdodEJyZWFr
cG9pbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRCcmVha3BvaW50c1NpZGVi
YXJQYW5lLnByb3RvdHlwZS5fY3JlYXRlQnJlYWtwb2ludEl0ZW1JZCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuSmF2YVNjcmlwdEJyZWFrcG9pbnRzU2lkZWJhclBhbmUucHJvdG90eXBlLl9icmVh
a3BvaW50Q2xpY2tlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdEJyZWFrcG9p
bnRzU2lkZWJhclBhbmUucHJvdG90eXBlLl9icmVha3BvaW50Q2hlY2tib3hDbGlja2VkKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0QnJlYWtwb2ludHNTaWRlYmFyUGFuZS5wcm90
b3R5cGUuX2NvbnRleHRNZW51KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0NhbGxT
dGFja1NpZGViYXJQYW5lLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNhbGxTdGFja1NpZGVi
YXJQYW5lLnByb3RvdHlwZS51cGRhdGUuZGlkR2V0U291cmNlTGluZSk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuQ2FsbFN0YWNrU2lkZWJhclBhbmUucHJvdG90eXBlLnVwZGF0ZSk6CisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLmpzOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlLmxp
bmtpZnlMb2NhdGlvbi51cGRhdGVBbmNob3IuZGlkR2V0TG9jYXRpb24pOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlLmxpbmtpZnlMb2Nh
dGlvbi51cGRhdGVBbmNob3IpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2Vu
dGF0aW9uTW9kZWwucHJvdG90eXBlLmxpbmtpZnlMb2NhdGlvbik6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUuX2FkZFNjcmlwdC5kaWRD
cmVhdGVTb3VyY2VNYXBwaW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNl
bnRhdGlvbk1vZGVsLnByb3RvdHlwZS5fYWRkU2NyaXB0KToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5fdWlTb3VyY2VDb2RlUmVwbGFj
ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJv
dG90eXBlLmNhbkVkaXRTY3JpcHRTb3VyY2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVn
Z2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlLl91cGRhdGVCcmVha3BvaW50c0FmdGVyTGl2
ZUVkaXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwu
cHJvdG90eXBlLnNldEZvcm1hdFNvdXJjZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdn
ZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUuX2FkZENvbnNvbGVNZXNzYWdlLmRpZEdldFVJ
TG9jYXRpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9k
ZWwucHJvdG90eXBlLl9hZGRDb25zb2xlTWVzc2FnZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
RGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUuY29udGludWVUb0xpbmUpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlLmJy
ZWFrcG9pbnRzRm9yVUlTb3VyY2VDb2RlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dl
clByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5zZXRCcmVha3BvaW50KToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5zZXRCcmVha3Bv
aW50RW5hYmxlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25N
b2RlbC5wcm90b3R5cGUudXBkYXRlQnJlYWtwb2ludCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
RGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUucmVtb3ZlQnJlYWtwb2ludCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUu
ZmluZEJyZWFrcG9pbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0
aW9uTW9kZWwucHJvdG90eXBlLl9icmVha3BvaW50QWRkZWQpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlLl9icmVha3BvaW50UmVtb3Zl
ZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJlc2VudGF0aW9uQnJlYWtwb2ludCk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuUHJlc2VudGF0aW9uQnJlYWtwb2ludC5wcm90b3R5cGUuZ2V0IHVy
bCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJlc2VudGF0aW9uQnJlYWtwb2ludC5wcm90b3R5
cGUubG9hZFNuaXBwZXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByZXNlbmF0aW9uQ2FsbEZy
YW1lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5QcmVzZW5hdGlvbkNhbGxGcmFtZS5wcm90b3R5
cGUuZ2V0IHVybCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJlc2VuYXRpb25DYWxsRnJhbWUu
cHJvdG90eXBlLnNlbGVjdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJlc2VuYXRpb25DYWxs
RnJhbWUucHJvdG90eXBlLnNvdXJjZUxpbmUpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvU2NyaXB0c1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5w
cm90b3R5cGUuZ2V0IHN0YXR1c0Jhckl0ZW1zKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3Jp
cHRzUGFuZWwucHJvdG90eXBlLl91aVNvdXJjZUNvZGVBZGRlZC5nZXQgaWYpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUuX3Nob3dTY3JpcHRGb2xkZXJzU2V0
dGluZ0NoYW5nZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5
cGUuX2FkZE9wdGlvblRvRmlsZXNTZWxlY3QpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlw
dHNQYW5lbC5wcm90b3R5cGUuc2V0U2NyaXB0U291cmNlSXNCZWluZ0VkaXRlZCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5fY29uc29sZU1lc3NhZ2VzQ2xl
YXJlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5fY29u
c29sZU1lc3NhZ2VBZGRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnBy
b3RvdHlwZS5fYnJlYWtwb2ludEFkZGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRz
UGFuZWwucHJvdG90eXBlLl9icmVha3BvaW50UmVtb3ZlZCk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5fZGVidWdnZXJQYXVzZWQuZWxzZS5kaWRHZXRTb3Vy
Y2VMb2NhdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlw
ZS5fZGVidWdnZXJQYXVzZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5w
cm90b3R5cGUucmVzZXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90
b3R5cGUuX3Jlc2V0RmlsZXNTZWxlY3QpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQ
YW5lbC5wcm90b3R5cGUuc2hvd0FuY2hvckxvY2F0aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLl9zaG93U291cmNlTGluZSk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5fc2hvd1NvdXJjZUZyYW1lQW5kQWRkVG9I
aXN0b3J5KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLl9j
cmVhdGVTb3VyY2VGcmFtZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnBy
b3RvdHlwZS5fcmVtb3ZlU291cmNlRnJhbWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlw
dHNQYW5lbC5wcm90b3R5cGUuX3VpU291cmNlQ29kZVJlcGxhY2VkKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLl9zb3VyY2VGcmFtZUxvYWRlZCk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5fY2FsbEZyYW1lU2VsZWN0
ZWQuZGlkR2V0U291cmNlTG9jYXRpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQ
YW5lbC5wcm90b3R5cGUuX2NhbGxGcmFtZVNlbGVjdGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLl9maWxlc1NlbGVjdENoYW5nZWQpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUuX3RvZ2dsZUZvcm1hdFNvdXJjZSk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlRnJhbWVEZWxlZ2F0ZUZvclNjcmlwdHNQYW5l
bCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlRnJhbWVEZWxlZ2F0ZUZvclNjcmlwdHNQ
YW5lbC5wcm90b3R5cGUucmVxdWVzdENvbnRlbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNv
dXJjZUZyYW1lRGVsZWdhdGVGb3JTY3JpcHRzUGFuZWwucHJvdG90eXBlLnNldEJyZWFrcG9pbnQp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lRGVsZWdhdGVGb3JTY3JpcHRzUGFu
ZWwucHJvdG90eXBlLnVwZGF0ZUJyZWFrcG9pbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNv
dXJjZUZyYW1lRGVsZWdhdGVGb3JTY3JpcHRzUGFuZWwucHJvdG90eXBlLnJlbW92ZUJyZWFrcG9p
bnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lRGVsZWdhdGVGb3JTY3JpcHRz
UGFuZWwucHJvdG90eXBlLmZpbmRCcmVha3BvaW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5T
b3VyY2VGcmFtZURlbGVnYXRlRm9yU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5jb250aW51ZVRvTGlu
ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlRnJhbWVEZWxlZ2F0ZUZvclNjcmlwdHNQ
YW5lbC5wcm90b3R5cGUuY2FuRWRpdFNjcmlwdFNvdXJjZSk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuU291cmNlRnJhbWVEZWxlZ2F0ZUZvclNjcmlwdHNQYW5lbC5wcm90b3R5cGUuc2V0U2NyaXB0
U291cmNlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZURlbGVnYXRlRm9yU2Ny
aXB0c1BhbmVsLnByb3RvdHlwZS5zZXRTY3JpcHRTb3VyY2VJc0JlaW5nRWRpdGVkKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZURlbGVnYXRlRm9yU2NyaXB0c1BhbmVsLnByb3Rv
dHlwZS5zdWdnZXN0ZWRGaWxlTmFtZSk6CisKIDIwMTEtMDgtMjkgIFRvbSBaYWtyYWpzZWsgIDx0
b216QGNvZGVhdXJvcmEub3JnPgogCiAgICAgICAgIGNhbnZhcyBhcmMoKSBtaXNzaW5nIGxpbmUg
dG8gc3RhcnQgb2YgYXJjIGlmIHN3aW5nIGlzIHplcm8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQnJlYWtwb2ludE1hbmFnZXIuanMgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnRNYW5hZ2VyLmpzCmluZGV4IGE4MmU5
ZGMyODM2YjcwMmI2NmIyZGFlMDQ4NjBmNzlkZmQ4MjYwMGQuLmE0N2U0NjUyNGE5OTIyYzE1ZTNj
ZTUwNzdlN2M4YmI0MmUxMjY1Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvQnJlYWtwb2ludE1hbmFnZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9CcmVha3BvaW50TWFuYWdlci5qcwpAQCAtNTYsMTUgKzU2LDE2IEBA
IFdlYkluc3BlY3Rvci5CcmVha3BvaW50TWFuYWdlci5wcm90b3R5cGUgPSB7CiAgICAgICAgIHZh
ciBicmVha3BvaW50cyA9IHRoaXMuX2JyZWFrcG9pbnRzKHVpU291cmNlQ29kZS5pZCk7CiAgICAg
ICAgIGZvciAodmFyIGxpbmVOdW1iZXIgaW4gYnJlYWtwb2ludHMpIHsKICAgICAgICAgICAgIHZh
ciBicmVha3BvaW50ID0gYnJlYWtwb2ludHNbbGluZU51bWJlcl07Ci0gICAgICAgICAgICB0aGlz
Ll9tYXRlcmlhbGl6ZUJyZWFrcG9pbnQoYnJlYWtwb2ludCwgdWlTb3VyY2VDb2RlKTsKKyAgICAg
ICAgICAgIGJyZWFrcG9pbnQudWlTb3VyY2VDb2RlID0gdWlTb3VyY2VDb2RlOworICAgICAgICAg
ICAgdGhpcy5fbWF0ZXJpYWxpemVCcmVha3BvaW50KGJyZWFrcG9pbnQpOwogICAgICAgICAgICAg
aWYgKGJyZWFrcG9pbnQuX2RlYnVnZ2VyTG9jYXRpb24pCiAgICAgICAgICAgICAgICAgdGhpcy5f
YnJlYWtwb2ludERlYnVnZ2VyTG9jYXRpb25DaGFuZ2VkKGJyZWFrcG9pbnQsIGJyZWFrcG9pbnQu
X2RlYnVnZ2VyTG9jYXRpb24pOwogICAgICAgICB9CiAgICAgfSwKIAotICAgIGJyZWFrcG9pbnRz
Rm9yVUlTb3VyY2VDb2RlOiBmdW5jdGlvbih1aVNvdXJjZUNvZGVJZCkKKyAgICBicmVha3BvaW50
c0ZvclVJU291cmNlQ29kZTogZnVuY3Rpb24odWlTb3VyY2VDb2RlKQogICAgIHsKLSAgICAgICAg
cmV0dXJuIHRoaXMuX2JyZWFrcG9pbnRzKHVpU291cmNlQ29kZUlkKTsKKyAgICAgICAgcmV0dXJu
IHRoaXMuX2JyZWFrcG9pbnRzKHVpU291cmNlQ29kZS5pZCk7CiAgICAgfSwKIAogICAgIHNldEJy
ZWFrcG9pbnQ6IGZ1bmN0aW9uKHVpU291cmNlQ29kZSwgbGluZU51bWJlciwgY29uZGl0aW9uLCBl
bmFibGVkKQpAQCAtNzQsOCArNzUsOSBAQCBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludE1hbmFnZXIu
cHJvdG90eXBlID0gewogCiAgICAgICAgIHZhciBwZXJzaXN0ZW50ID0gISF1aVNvdXJjZUNvZGUu
dXJsOwogICAgICAgICB2YXIgYnJlYWtwb2ludCA9IG5ldyBXZWJJbnNwZWN0b3IuQnJlYWtwb2lu
dCh1aVNvdXJjZUNvZGUuaWQsIGxpbmVOdW1iZXIsIGNvbmRpdGlvbiwgZW5hYmxlZCwgcGVyc2lz
dGVudCk7CisgICAgICAgIGJyZWFrcG9pbnQudWlTb3VyY2VDb2RlID0gdWlTb3VyY2VDb2RlOwog
ICAgICAgICB0aGlzLl9hZGRCcmVha3BvaW50VG9VSShicmVha3BvaW50KTsKLSAgICAgICAgdGhp
cy5fbWF0ZXJpYWxpemVCcmVha3BvaW50KGJyZWFrcG9pbnQsIHVpU291cmNlQ29kZSk7CisgICAg
ICAgIHRoaXMuX21hdGVyaWFsaXplQnJlYWtwb2ludChicmVha3BvaW50KTsKICAgICB9LAogCiAg
ICAgcmVtb3ZlQnJlYWtwb2ludDogZnVuY3Rpb24odWlTb3VyY2VDb2RlSWQsIGxpbmVOdW1iZXIp
CkBAIC04NywyMSArODksMjAgQEAgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRNYW5hZ2VyLnByb3Rv
dHlwZSA9IHsKICAgICAgICAgdGhpcy5fcmVtb3ZlQnJlYWtwb2ludEZyb21EZWJ1Z2dlcihicmVh
a3BvaW50KTsKICAgICB9LAogCi0gICAgX21hdGVyaWFsaXplQnJlYWtwb2ludDogZnVuY3Rpb24o
YnJlYWtwb2ludCwgdWlTb3VyY2VDb2RlKQorICAgIF9tYXRlcmlhbGl6ZUJyZWFrcG9pbnQ6IGZ1
bmN0aW9uKGJyZWFrcG9pbnQpCiAgICAgewotICAgICAgICBicmVha3BvaW50Ll91aVNvdXJjZUNv
ZGUgPSB1aVNvdXJjZUNvZGU7CiAgICAgICAgIGlmICghYnJlYWtwb2ludC5lbmFibGVkIHx8IGJy
ZWFrcG9pbnQuX2RlYnVnZ2VySWQpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgdmFy
IHJhd0xvY2F0aW9uID0gdWlTb3VyY2VDb2RlLnJhd1NvdXJjZUNvZGUudWlMb2NhdGlvblRvUmF3
TG9jYXRpb24oYnJlYWtwb2ludC5saW5lTnVtYmVyLCAwKTsKKyAgICAgICAgdmFyIHJhd0xvY2F0
aW9uID0gYnJlYWtwb2ludC51aVNvdXJjZUNvZGUucmF3U291cmNlQ29kZS51aUxvY2F0aW9uVG9S
YXdMb2NhdGlvbihicmVha3BvaW50LmxpbmVOdW1iZXIsIDApOwogICAgICAgICB0aGlzLl9zZXRC
cmVha3BvaW50SW5EZWJ1Z2dlcihicmVha3BvaW50LCByYXdMb2NhdGlvbik7CiAgICAgfSwKIAog
ICAgIF9icmVha3BvaW50RGVidWdnZXJMb2NhdGlvbkNoYW5nZWQ6IGZ1bmN0aW9uKGJyZWFrcG9p
bnQpCiAgICAgewotICAgICAgICBpZiAoIWJyZWFrcG9pbnQuX3VpU291cmNlQ29kZSkKKyAgICAg
ICAgaWYgKCFicmVha3BvaW50LnVpU291cmNlQ29kZSkKICAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgdmFyIHVpTG9jYXRpb24gPSBicmVha3BvaW50Ll91aVNvdXJjZUNvZGUucmF3U291cmNl
Q29kZS5yYXdMb2NhdGlvblRvVUlMb2NhdGlvbihicmVha3BvaW50Ll9kZWJ1Z2dlckxvY2F0aW9u
KTsKKyAgICAgICAgdmFyIHVpTG9jYXRpb24gPSBicmVha3BvaW50LnVpU291cmNlQ29kZS5yYXdT
b3VyY2VDb2RlLnJhd0xvY2F0aW9uVG9VSUxvY2F0aW9uKGJyZWFrcG9pbnQuX2RlYnVnZ2VyTG9j
YXRpb24pOwogICAgICAgICBpZiAodWlMb2NhdGlvbi5saW5lTnVtYmVyID09PSBicmVha3BvaW50
LmxpbmVOdW1iZXIpCiAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTExNCw3ICsxMTUsNyBAQCBX
ZWJJbnNwZWN0b3IuQnJlYWtwb2ludE1hbmFnZXIucHJvdG90eXBlID0gewogICAgICAgICBjb25z
b2xlLmFzc2VydCghdGhpcy5fYnJlYWtwb2ludChicmVha3BvaW50LnVpU291cmNlQ29kZUlkLCBi
cmVha3BvaW50LmxpbmVOdW1iZXIpKTsKICAgICAgICAgdGhpcy5fYnJlYWtwb2ludHMoYnJlYWtw
b2ludC51aVNvdXJjZUNvZGVJZClbYnJlYWtwb2ludC5saW5lTnVtYmVyXSA9IGJyZWFrcG9pbnQ7
CiAgICAgICAgIHRoaXMuX3NhdmVCcmVha3BvaW50cygpOwotICAgICAgICB0aGlzLl9icmVha3Bv
aW50QWRkZWREZWxlZ2F0ZShicmVha3BvaW50LnVpU291cmNlQ29kZUlkLCBicmVha3BvaW50Lmxp
bmVOdW1iZXIsIGJyZWFrcG9pbnQuY29uZGl0aW9uLCBicmVha3BvaW50LmVuYWJsZWQpOworICAg
ICAgICB0aGlzLl9icmVha3BvaW50QWRkZWREZWxlZ2F0ZShicmVha3BvaW50KTsKICAgICB9LAog
CiAgICAgX2RlbGV0ZUJyZWFrcG9pbnRGcm9tVUk6IGZ1bmN0aW9uKGJyZWFrcG9pbnQpCkBAIC0x
MjIsNyArMTIzLDcgQEAgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRNYW5hZ2VyLnByb3RvdHlwZSA9
IHsKICAgICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5fYnJlYWtwb2ludChicmVha3BvaW50LnVp
U291cmNlQ29kZUlkLCBicmVha3BvaW50LmxpbmVOdW1iZXIpID09PSBicmVha3BvaW50KTsKICAg
ICAgICAgZGVsZXRlIHRoaXMuX2JyZWFrcG9pbnRzKGJyZWFrcG9pbnQudWlTb3VyY2VDb2RlSWQp
W2JyZWFrcG9pbnQubGluZU51bWJlcl07CiAgICAgICAgIHRoaXMuX3NhdmVCcmVha3BvaW50cygp
OwotICAgICAgICB0aGlzLl9icmVha3BvaW50UmVtb3ZlZERlbGVnYXRlKGJyZWFrcG9pbnQudWlT
b3VyY2VDb2RlSWQsIGJyZWFrcG9pbnQubGluZU51bWJlcik7CisgICAgICAgIHRoaXMuX2JyZWFr
cG9pbnRSZW1vdmVkRGVsZWdhdGUoYnJlYWtwb2ludCk7CiAgICAgfSwKIAogICAgIF9tb3ZlQnJl
YWtwb2ludEluVUk6IGZ1bmN0aW9uKGJyZWFrcG9pbnQsIGxpbmVOdW1iZXIpCkBAIC0yMTMsNyAr
MjE0LDcgQEAgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRNYW5hZ2VyLnByb3RvdHlwZSA9IHsKICAg
ICB7CiAgICAgICAgIGZ1bmN0aW9uIHJlc2V0QnJlYWtwb2ludChicmVha3BvaW50KQogICAgICAg
ICB7Ci0gICAgICAgICAgICBkZWxldGUgYnJlYWtwb2ludC5fdWlTb3VyY2VDb2RlOworICAgICAg
ICAgICAgZGVsZXRlIGJyZWFrcG9pbnQudWlTb3VyY2VDb2RlOwogICAgICAgICAgICAgdGhpcy5f
cmVtb3ZlQnJlYWtwb2ludEZyb21EZWJ1Z2dlcihicmVha3BvaW50KTsKICAgICAgICAgfQogICAg
ICAgICB0aGlzLl9mb3JFYWNoQnJlYWtwb2ludChyZXNldEJyZWFrcG9pbnQuYmluZCh0aGlzKSk7
CkBAIC0yMjQsNyArMjI1LDcgQEAgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRNYW5hZ2VyLnByb3Rv
dHlwZSA9IHsKICAgICAgICAgZnVuY3Rpb24gcmVzZXRPckRlbGV0ZUJyZWFrcG9pbnQoYnJlYWtw
b2ludCkKICAgICAgICAgewogICAgICAgICAgICAgaWYgKGJyZWFrcG9pbnQucGVyc2lzdGVudCkg
ewotICAgICAgICAgICAgICAgIGRlbGV0ZSBicmVha3BvaW50Ll91aVNvdXJjZUNvZGU7CisgICAg
ICAgICAgICAgICAgZGVsZXRlIGJyZWFrcG9pbnQudWlTb3VyY2VDb2RlOwogICAgICAgICAgICAg
ICAgIGRlbGV0ZSBicmVha3BvaW50Ll9kZWJ1Z2dlckxvY2F0aW9uOwogICAgICAgICAgICAgfSBl
bHNlIHsKICAgICAgICAgICAgICAgICB0aGlzLl9kZWxldGVCcmVha3BvaW50RnJvbVVJKGJyZWFr
cG9pbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9C
cmVha3BvaW50c1NpZGViYXJQYW5lLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9CcmVha3BvaW50c1NpZGViYXJQYW5lLmpzCmluZGV4IDczMmM4ZmMzMTVjZmNmMDJiZTc5
MTBkY2M5M2YzMzA3OTEwMzg0ZGUuLjNlN2NmY2YzZmYxOWZhMmFkYjFhZDBmOTEzNjg3MmFjYTgw
MjYwZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQnJl
YWtwb2ludHNTaWRlYmFyUGFuZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0JyZWFrcG9pbnRzU2lkZWJhclBhbmUuanMKQEAgLTg0LDE1ICs4NCwxNSBAQCBXZWJJ
bnNwZWN0b3IuSmF2YVNjcmlwdEJyZWFrcG9pbnRzU2lkZWJhclBhbmUucHJvdG90eXBlID0gewog
ICAgICAgICB2YXIgYnJlYWtwb2ludEl0ZW0gPSB7fTsKICAgICAgICAgYnJlYWtwb2ludEl0ZW0u
ZWxlbWVudCA9IGVsZW1lbnQ7CiAgICAgICAgIGJyZWFrcG9pbnRJdGVtLmNoZWNrYm94ID0gY2hl
Y2tib3g7Ci0gICAgICAgIHRoaXMuX2l0ZW1zW3RoaXMuX2NyZWF0ZUJyZWFrcG9pbnRJdGVtSWQo
YnJlYWtwb2ludC5zb3VyY2VGaWxlSWQsIGJyZWFrcG9pbnQubGluZU51bWJlcildID0gYnJlYWtw
b2ludEl0ZW07CisgICAgICAgIHRoaXMuX2l0ZW1zW3RoaXMuX2NyZWF0ZUJyZWFrcG9pbnRJdGVt
SWQoYnJlYWtwb2ludC51aVNvdXJjZUNvZGUsIGJyZWFrcG9pbnQubGluZU51bWJlcildID0gYnJl
YWtwb2ludEl0ZW07CiAKICAgICAgICAgaWYgKCF0aGlzLmV4cGFuZGVkKQogICAgICAgICAgICAg
dGhpcy5leHBhbmRlZCA9IHRydWU7CiAgICAgfSwKIAotICAgIHJlbW92ZUJyZWFrcG9pbnQ6IGZ1
bmN0aW9uKHNvdXJjZUZpbGVJZCwgbGluZU51bWJlcikKKyAgICByZW1vdmVCcmVha3BvaW50OiBm
dW5jdGlvbih1aVNvdXJjZUNvZGUsIGxpbmVOdW1iZXIpCiAgICAgewotICAgICAgICB2YXIgYnJl
YWtwb2ludEl0ZW1JZCA9IHRoaXMuX2NyZWF0ZUJyZWFrcG9pbnRJdGVtSWQoc291cmNlRmlsZUlk
LCBsaW5lTnVtYmVyKTsKKyAgICAgICAgdmFyIGJyZWFrcG9pbnRJdGVtSWQgPSB0aGlzLl9jcmVh
dGVCcmVha3BvaW50SXRlbUlkKHVpU291cmNlQ29kZSwgbGluZU51bWJlcik7CiAgICAgICAgIHZh
ciBicmVha3BvaW50SXRlbSA9IHRoaXMuX2l0ZW1zW2JyZWFrcG9pbnRJdGVtSWRdOwogICAgICAg
ICBpZiAoIWJyZWFrcG9pbnRJdGVtKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTAwLDkgKzEw
MCw5IEBAIFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0QnJlYWtwb2ludHNTaWRlYmFyUGFuZS5wcm90
b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX3JlbW92ZUxpc3RFbGVtZW50KGJyZWFrcG9pbnRJdGVt
LmVsZW1lbnQpOwogICAgIH0sCiAKLSAgICBoaWdobGlnaHRCcmVha3BvaW50OiBmdW5jdGlvbihz
b3VyY2VGaWxlSWQsIGxpbmVOdW1iZXIpCisgICAgaGlnaGxpZ2h0QnJlYWtwb2ludDogZnVuY3Rp
b24odWlTb3VyY2VDb2RlLCBsaW5lTnVtYmVyKQogICAgIHsKLSAgICAgICAgdmFyIGJyZWFrcG9p
bnRJdGVtID0gdGhpcy5faXRlbXNbdGhpcy5fY3JlYXRlQnJlYWtwb2ludEl0ZW1JZChzb3VyY2VG
aWxlSWQsIGxpbmVOdW1iZXIpXTsKKyAgICAgICAgdmFyIGJyZWFrcG9pbnRJdGVtID0gdGhpcy5f
aXRlbXNbdGhpcy5fY3JlYXRlQnJlYWtwb2ludEl0ZW1JZCh1aVNvdXJjZUNvZGUsIGxpbmVOdW1i
ZXIpXTsKICAgICAgICAgaWYgKCFicmVha3BvaW50SXRlbSkKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgYnJlYWtwb2ludEl0ZW0uZWxlbWVudC5hZGRTdHlsZUNsYXNzKCJicmVha3BvaW50
LWhpdCIpOwpAQCAtMTE3LDE0ICsxMTcsMTQgQEAgV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRCcmVh
a3BvaW50c1NpZGViYXJQYW5lLnByb3RvdHlwZSA9IHsKICAgICAgICAgfQogICAgIH0sCiAKLSAg
ICBfY3JlYXRlQnJlYWtwb2ludEl0ZW1JZDogZnVuY3Rpb24oc291cmNlRmlsZUlkLCBsaW5lTnVt
YmVyKQorICAgIF9jcmVhdGVCcmVha3BvaW50SXRlbUlkOiBmdW5jdGlvbih1aVNvdXJjZUNvZGUs
IGxpbmVOdW1iZXIpCiAgICAgewotICAgICAgICByZXR1cm4gc291cmNlRmlsZUlkICsgIjoiICsg
bGluZU51bWJlcjsKKyAgICAgICAgcmV0dXJuIHVpU291cmNlQ29kZS5pZCArICI6IiArIGxpbmVO
dW1iZXI7CiAgICAgfSwKIAogICAgIF9icmVha3BvaW50Q2xpY2tlZDogZnVuY3Rpb24oYnJlYWtw
b2ludCwgZXZlbnQpCiAgICAgewotICAgICAgICB0aGlzLl9zaG93U291cmNlTGluZURlbGVnYXRl
KGJyZWFrcG9pbnQuc291cmNlRmlsZUlkLCBicmVha3BvaW50LmxpbmVOdW1iZXIpOworICAgICAg
ICB0aGlzLl9zaG93U291cmNlTGluZURlbGVnYXRlKGJyZWFrcG9pbnQudWlTb3VyY2VDb2RlLCBi
cmVha3BvaW50LmxpbmVOdW1iZXIpOwogICAgIH0sCiAKICAgICBfYnJlYWtwb2ludENoZWNrYm94
Q2xpY2tlZDogZnVuY3Rpb24oYnJlYWtwb2ludCwgZXZlbnQpCkBAIC0xMzIsMTQgKzEzMiwxNCBA
QCBXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdEJyZWFrcG9pbnRzU2lkZWJhclBhbmUucHJvdG90eXBl
ID0gewogICAgICAgICAvLyBCcmVha3BvaW50IGVsZW1lbnQgaGFzIGl0J3Mgb3duIGNsaWNrIGhh
bmRsZXIuCiAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOwogCi0gICAgICAgIHRoaXMu
X21vZGVsLnNldEJyZWFrcG9pbnRFbmFibGVkKGJyZWFrcG9pbnQuc291cmNlRmlsZUlkLCBicmVh
a3BvaW50LmxpbmVOdW1iZXIsIGV2ZW50LnRhcmdldC5jaGVja2VkKTsKKyAgICAgICAgdGhpcy5f
bW9kZWwuc2V0QnJlYWtwb2ludEVuYWJsZWQoYnJlYWtwb2ludC51aVNvdXJjZUNvZGUsIGJyZWFr
cG9pbnQubGluZU51bWJlciwgZXZlbnQudGFyZ2V0LmNoZWNrZWQpOwogICAgIH0sCiAKICAgICBf
Y29udGV4dE1lbnU6IGZ1bmN0aW9uKGJyZWFrcG9pbnQsIGV2ZW50KQogICAgIHsKICAgICAgICAg
dmFyIGNvbnRleHRNZW51ID0gbmV3IFdlYkluc3BlY3Rvci5Db250ZXh0TWVudSgpOwogCi0gICAg
ICAgIHZhciByZW1vdmVIYW5kbGVyID0gdGhpcy5fbW9kZWwucmVtb3ZlQnJlYWtwb2ludC5iaW5k
KHRoaXMuX21vZGVsLCBicmVha3BvaW50LnNvdXJjZUZpbGVJZCwgYnJlYWtwb2ludC5saW5lTnVt
YmVyKTsKKyAgICAgICAgdmFyIHJlbW92ZUhhbmRsZXIgPSB0aGlzLl9tb2RlbC5yZW1vdmVCcmVh
a3BvaW50LmJpbmQodGhpcy5fbW9kZWwsIGJyZWFrcG9pbnQudWlTb3VyY2VDb2RlLCBicmVha3Bv
aW50LmxpbmVOdW1iZXIpOwogICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdlYkluc3Bl
Y3Rvci5VSVN0cmluZygiUmVtb3ZlIEJyZWFrcG9pbnQiKSwgcmVtb3ZlSGFuZGxlcik7CiAKICAg
ICAgICAgY29udGV4dE1lbnUuc2hvdyhldmVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NhbGxTdGFja1NpZGViYXJQYW5lLmpzIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DYWxsU3RhY2tTaWRlYmFyUGFuZS5qcwppbmRleCBl
NTk2MzE0MzcyMzg4MDlkY2I5NDM3ZDE5MTg4ZjI5Y2JiODA3ZjNjLi4xYzIxNTIwZDlhMTIzYzNi
OTNiZjg5YmI3MjQ4NjNhMGM3YTI1OWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0NhbGxTdGFja1NpZGViYXJQYW5lLmpzCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ2FsbFN0YWNrU2lkZWJhclBhbmUuanMKQEAgLTYwLDcg
KzYwLDcgQEAgV2ViSW5zcGVjdG9yLkNhbGxTdGFja1NpZGViYXJQYW5lLnByb3RvdHlwZSA9IHsK
ICAgICAgICAgICAgIHBsYWNhcmQuY2FsbEZyYW1lID0gY2FsbEZyYW1lOwogICAgICAgICAgICAg
cGxhY2FyZC5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5fcGxhY2FyZFNl
bGVjdGVkLmJpbmQodGhpcywgcGxhY2FyZCksIGZhbHNlKTsKIAotICAgICAgICAgICAgZnVuY3Rp
b24gZGlkR2V0U291cmNlTGluZShwbGFjYXJkLCBzb3VyY2VGaWxlSWQsIGxpbmVOdW1iZXIpCisg
ICAgICAgICAgICBmdW5jdGlvbiBkaWRHZXRTb3VyY2VMaW5lKHBsYWNhcmQsIHVpU291cmNlQ29k
ZSwgbGluZU51bWJlcikKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBpZiAocGxhY2Fy
ZC5zdWJ0aXRsZSkKICAgICAgICAgICAgICAgICAgICAgcGxhY2FyZC5zdWJ0aXRsZSArPSAiOiIg
KyAobGluZU51bWJlciArIDEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLmpzIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLmpzCmluZGV4IDMw
NmE0MDllMzZkNDU0ZmE5ODNhMjgyYzc2MGU1NjMzZTZlY2NkMWIuLjI4MjQ5NDBkYjY2YjUwNzhj
YjA3YzM1MmRlYmNiNGVmNjk4NmY4NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5qcworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuanMK
QEAgLTU4LDggKzU4LDggQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwg
PSBmdW5jdGlvbigpCiB9CiAKIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVs
LkV2ZW50cyA9IHsKLSAgICBTb3VyY2VGaWxlQWRkZWQ6ICJzb3VyY2UtZmlsZS1hZGRlZCIsCi0g
ICAgU291cmNlRmlsZVJlcGxhY2VkOiAic291cmNlLWZpbGUtcmVwbGFjZWQiLAorICAgIFVJU291
cmNlQ29kZUFkZGVkOiAic291cmNlLWZpbGUtYWRkZWQiLAorICAgIFVJU291cmNlQ29kZVJlcGxh
Y2VkOiAic291cmNlLWZpbGUtcmVwbGFjZWQiLAogICAgIENvbnNvbGVNZXNzYWdlQWRkZWQ6ICJj
b25zb2xlLW1lc3NhZ2UtYWRkZWQiLAogICAgIENvbnNvbGVNZXNzYWdlc0NsZWFyZWQ6ICJjb25z
b2xlLW1lc3NhZ2VzLWNsZWFyZWQiLAogICAgIEJyZWFrcG9pbnRBZGRlZDogImJyZWFrcG9pbnQt
YWRkZWQiLApAQCAtNzAsMTMgKzcwLDYgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0
aW9uTW9kZWwuRXZlbnRzID0gewogfQogCiBXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRp
b25Nb2RlbC5wcm90b3R5cGUgPSB7Ci0gICAgdWlTb3VyY2VDb2RlOiBmdW5jdGlvbih1aVNvdXJj
ZUNvZGVJZCkKLSAgICB7Ci0gICAgICAgIC8vIEZJWE1FOiBnZXQgcmlkIG9mIHVpU291cmNlQ29k
ZUlkIChjdXJyZW50bHkgdWlTb3VyY2VDb2RlSWQgPT0gcmF3U291cmNlQ29kZUlkKS4KLSAgICAg
ICAgdmFyIHJhd1NvdXJjZUNvZGUgPSB0aGlzLl9yYXdTb3VyY2VDb2RlW3VpU291cmNlQ29kZUlk
XTsKLSAgICAgICAgcmV0dXJuIHJhd1NvdXJjZUNvZGUgJiYgcmF3U291cmNlQ29kZS51aVNvdXJj
ZUNvZGU7Ci0gICAgfSwKLQogICAgIF9zY3JpcHRMb2NhdGlvblRvVUlMb2NhdGlvbjogZnVuY3Rp
b24oc291cmNlVVJMLCBzY3JpcHRJZCwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyLCBjYWxsYmFj
aykKICAgICB7CiAgICAgICAgIHZhciByYXdTb3VyY2VDb2RlID0gdGhpcy5fcmF3U291cmNlQ29k
ZUZvclNjcmlwdChzb3VyY2VVUkwsIHNjcmlwdElkKTsKQEAgLTkxLDkgKzg0LDkgQEAgV2ViSW5z
cGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlID0gewogICAgICAgICBy
YXdTb3VyY2VDb2RlLmNyZWF0ZVNvdXJjZU1hcHBpbmdJZk5lZWRlZChkaWRDcmVhdGVTb3VyY2VN
YXBwaW5nKTsKICAgICB9LAogCi0gICAgX3VpTG9jYXRpb25Ub1NjcmlwdExvY2F0aW9uOiBmdW5j
dGlvbih1aVNvdXJjZUNvZGVJZCwgbGluZU51bWJlciwgY2FsbGJhY2spCisgICAgX3VpTG9jYXRp
b25Ub1NjcmlwdExvY2F0aW9uOiBmdW5jdGlvbih1aVNvdXJjZUNvZGUsIGxpbmVOdW1iZXIsIGNh
bGxiYWNrKQogICAgIHsKLSAgICAgICAgdmFyIHJhd1NvdXJjZUNvZGUgPSB0aGlzLnVpU291cmNl
Q29kZSh1aVNvdXJjZUNvZGVJZCkucmF3U291cmNlQ29kZTsKKyAgICAgICAgdmFyIHJhd1NvdXJj
ZUNvZGUgPSB1aVNvdXJjZUNvZGUucmF3U291cmNlQ29kZTsKIAogICAgICAgICBmdW5jdGlvbiBk
aWRDcmVhdGVTb3VyY2VNYXBwaW5nKCkKICAgICAgICAgewpAQCAtMTMzLDggKzEyNiw4IEBAIFdl
Ykluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICBhbmNob3IudGV4dENvbnRlbnQgPSBXZWJJbnNwZWN0
b3IuZm9ybWF0TGlua1RleHQodWlTb3VyY2VDb2RlLnVybCwgbGluZU51bWJlcik7CiAgICAgICAg
ICAgICAgICAgYW5jaG9yLnNldEF0dHJpYnV0ZSgicHJlZmVycmVkX3BhbmVsIiwgInNjcmlwdHMi
KTsKLSAgICAgICAgICAgICAgICBhbmNob3Iuc2V0QXR0cmlidXRlKCJzb3VyY2VfZmlsZV9pZCIs
IHVpU291cmNlQ29kZS5pZCk7Ci0gICAgICAgICAgICAgICAgYW5jaG9yLnNldEF0dHJpYnV0ZSgi
bGluZV9udW1iZXIiLCBsaW5lTnVtYmVyKTsKKyAgICAgICAgICAgICAgICBhbmNob3IudWlTb3Vy
Y2VDb2RlID0gdWlTb3VyY2VDb2RlOworICAgICAgICAgICAgICAgIGFuY2hvci5saW5lTnVtYmVy
ID0gbGluZU51bWJlcjsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHRoaXMuX3NjcmlwdExv
Y2F0aW9uVG9VSUxvY2F0aW9uKHNvdXJjZVVSTCwgbnVsbCwgbGluZU51bWJlciwgY29sdW1uTnVt
YmVyLCBkaWRHZXRMb2NhdGlvbi5iaW5kKHRoaXMpKTsKICAgICAgICAgfQpAQCAtMTY5LDM4ICsx
NjIsMzYgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBl
ID0gewogICAgICAgICBmdW5jdGlvbiBkaWRDcmVhdGVTb3VyY2VNYXBwaW5nKCkKICAgICAgICAg
ewogICAgICAgICAgICAgdGhpcy5fYnJlYWtwb2ludE1hbmFnZXIudWlTb3VyY2VDb2RlQWRkZWQo
cmF3U291cmNlQ29kZS51aVNvdXJjZUNvZGUpOwotICAgICAgICAgICAgdmFyIGJyZWFrcG9pbnRz
ID0gdGhpcy5fYnJlYWtwb2ludE1hbmFnZXIuYnJlYWtwb2ludHNGb3JVSVNvdXJjZUNvZGUocmF3
U291cmNlQ29kZS51aVNvdXJjZUNvZGUuaWQpOwotICAgICAgICAgICAgZm9yICh2YXIgbGluZU51
bWJlciBpbiBicmVha3BvaW50cykgewotICAgICAgICAgICAgICAgIHZhciBicmVha3BvaW50ID0g
YnJlYWtwb2ludHNbbGluZU51bWJlcl07Ci0gICAgICAgICAgICAgICAgdGhpcy5fYnJlYWtwb2lu
dEFkZGVkKGJyZWFrcG9pbnQudWlTb3VyY2VDb2RlSWQsIGJyZWFrcG9pbnQubGluZU51bWJlciwg
YnJlYWtwb2ludC5jb25kaXRpb24sIGJyZWFrcG9pbnQuZW5hYmxlZCk7Ci0gICAgICAgICAgICB9
CisgICAgICAgICAgICB2YXIgYnJlYWtwb2ludHMgPSB0aGlzLl9icmVha3BvaW50TWFuYWdlci5i
cmVha3BvaW50c0ZvclVJU291cmNlQ29kZShyYXdTb3VyY2VDb2RlLnVpU291cmNlQ29kZSk7Cisg
ICAgICAgICAgICBmb3IgKHZhciBsaW5lTnVtYmVyIGluIGJyZWFrcG9pbnRzKQorICAgICAgICAg
ICAgICAgIHRoaXMuX2JyZWFrcG9pbnRBZGRlZChicmVha3BvaW50c1tsaW5lTnVtYmVyXSk7CiAg
ICAgICAgIH0KICAgICAgICAgLy8gRklYTUU6IGZvcmNlIHNvdXJjZSBmb3JtYXR0aW5nIGlmIG5l
ZWRlZC4gVGhpcyB3aWxsIGdvIGF3YXkgb25jZSBmb3JtYXR0aW5nCiAgICAgICAgIC8vIGlzIGZ1
bGx5IGVuY2Fwc3VsYXRlZCBpbiBSYXdTb3VyY2VDb2RlIGNsYXNzLgogICAgICAgICByYXdTb3Vy
Y2VDb2RlLmNyZWF0ZVNvdXJjZU1hcHBpbmdJZk5lZWRlZChkaWRDcmVhdGVTb3VyY2VNYXBwaW5n
LmJpbmQodGhpcykpOwogCiAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSByYXdTb3VyY2VDb2Rl
LnVpU291cmNlQ29kZTsKLSAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2Vi
SW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuRXZlbnRzLlNvdXJjZUZpbGVBZGRl
ZCwgdWlTb3VyY2VDb2RlKTsKKyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMo
V2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuRXZlbnRzLlVJU291cmNlQ29k
ZUFkZGVkLCB1aVNvdXJjZUNvZGUpOwogICAgIH0sCiAKICAgICBfdWlTb3VyY2VDb2RlUmVwbGFj
ZWQ6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKICAgICAgICAgLy8gRklYTUU6IHJlc3RvcmUgYnJl
YWtwb2ludHMgaW4gbmV3IHNvdXJjZSBjb2RlIChjdXJyZW50bHkgd2UganVzdCByZWNyZWF0ZSBl
dmVyeXRoaW5nIHdoZW4gc3dpdGNoaW5nIHRvIHByZXR0eS1wcmludCBtb2RlKS4KLSAgICAgICAg
dGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2Vu
dGF0aW9uTW9kZWwuRXZlbnRzLlNvdXJjZUZpbGVSZXBsYWNlZCwgZXZlbnQuZGF0YSk7CisgICAg
ICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclBy
ZXNlbnRhdGlvbk1vZGVsLkV2ZW50cy5VSVNvdXJjZUNvZGVSZXBsYWNlZCwgZXZlbnQuZGF0YSk7
CiAgICAgfSwKIAotICAgIGNhbkVkaXRTY3JpcHRTb3VyY2U6IGZ1bmN0aW9uKHVpU291cmNlQ29k
ZUlkKQorICAgIGNhbkVkaXRTY3JpcHRTb3VyY2U6IGZ1bmN0aW9uKHVpU291cmNlQ29kZSkKICAg
ICB7CiAgICAgICAgIGlmICghUHJlZmVyZW5jZXMuY2FuRWRpdFNjcmlwdFNvdXJjZSB8fCB0aGlz
Ll9mb3JtYXRTb3VyY2UpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIHZhciBy
YXdTb3VyY2VDb2RlID0gdGhpcy51aVNvdXJjZUNvZGUodWlTb3VyY2VDb2RlSWQpLnJhd1NvdXJj
ZUNvZGU7CisgICAgICAgIHZhciByYXdTb3VyY2VDb2RlID0gdWlTb3VyY2VDb2RlLnJhd1NvdXJj
ZUNvZGU7CiAgICAgICAgIHZhciBzY3JpcHQgPSB0aGlzLl9zY3JpcHRGb3JSYXdTb3VyY2VDb2Rl
KHJhd1NvdXJjZUNvZGUpOwogICAgICAgICByZXR1cm4gIXNjcmlwdC5saW5lT2Zmc2V0ICYmICFz
Y3JpcHQuY29sdW1uT2Zmc2V0OwogICAgIH0sCiAKLSAgICBzZXRTY3JpcHRTb3VyY2U6IGZ1bmN0
aW9uKHVpU291cmNlQ29kZUlkLCBuZXdTb3VyY2UsIGNhbGxiYWNrKQorICAgIHNldFNjcmlwdFNv
dXJjZTogZnVuY3Rpb24odWlTb3VyY2VDb2RlLCBuZXdTb3VyY2UsIGNhbGxiYWNrKQogICAgIHsK
LSAgICAgICAgdmFyIHJhd1NvdXJjZUNvZGUgPSB0aGlzLnVpU291cmNlQ29kZSh1aVNvdXJjZUNv
ZGVJZCkucmF3U291cmNlQ29kZTsKKyAgICAgICAgdmFyIHJhd1NvdXJjZUNvZGUgPSB1aVNvdXJj
ZUNvZGUucmF3U291cmNlQ29kZTsKICAgICAgICAgdmFyIHNjcmlwdCA9IHRoaXMuX3NjcmlwdEZv
clJhd1NvdXJjZUNvZGUocmF3U291cmNlQ29kZSk7CiAKICAgICAgICAgZnVuY3Rpb24gZGlkRWRp
dFNjcmlwdFNvdXJjZShlcnJvcikKQEAgLTIyMSwxNiArMjEyLDE2IEBAIFdlYkluc3BlY3Rvci5E
ZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgV2ViSW5zcGVj
dG9yLmRlYnVnZ2VyTW9kZWwuc2V0U2NyaXB0U291cmNlKHNjcmlwdC5zY3JpcHRJZCwgbmV3U291
cmNlLCBkaWRFZGl0U2NyaXB0U291cmNlLmJpbmQodGhpcykpOwogICAgIH0sCiAKLSAgICBfdXBk
YXRlQnJlYWtwb2ludHNBZnRlckxpdmVFZGl0OiBmdW5jdGlvbih1aVNvdXJjZUNvZGVJZCwgb2xk
U291cmNlLCBuZXdTb3VyY2UpCisgICAgX3VwZGF0ZUJyZWFrcG9pbnRzQWZ0ZXJMaXZlRWRpdDog
ZnVuY3Rpb24odWlTb3VyY2VDb2RlLCBvbGRTb3VyY2UsIG5ld1NvdXJjZSkKICAgICB7Ci0gICAg
ICAgIHZhciBicmVha3BvaW50cyA9IHRoaXMuX2JyZWFrcG9pbnRNYW5hZ2VyLmJyZWFrcG9pbnRz
Rm9yVUlTb3VyY2VDb2RlKHVpU291cmNlQ29kZUlkKTsKKyAgICAgICAgdmFyIGJyZWFrcG9pbnRz
ID0gdGhpcy5fYnJlYWtwb2ludE1hbmFnZXIuYnJlYWtwb2ludHNGb3JVSVNvdXJjZUNvZGUodWlT
b3VyY2VDb2RlKTsKIAogICAgICAgICAvLyBDbGVhciBhbmQgcmUtY3JlYXRlIGJyZWFrcG9pbnRz
IGFjY29yZGluZyB0byB0ZXh0IGRpZmYuCiAgICAgICAgIHZhciBkaWZmID0gQXJyYXkuZGlmZihv
bGRTb3VyY2Uuc3BsaXQoIlxuIiksIG5ld1NvdXJjZS5zcGxpdCgiXG4iKSk7CiAgICAgICAgIGZv
ciAodmFyIGxpbmVOdW1iZXIgaW4gYnJlYWtwb2ludHMpIHsKICAgICAgICAgICAgIHZhciBicmVh
a3BvaW50ID0gYnJlYWtwb2ludHNbbGluZU51bWJlcl07CiAKLSAgICAgICAgICAgIHRoaXMucmVt
b3ZlQnJlYWtwb2ludCh1aVNvdXJjZUNvZGVJZCwgbGluZU51bWJlcik7CisgICAgICAgICAgICB0
aGlzLnJlbW92ZUJyZWFrcG9pbnQodWlTb3VyY2VDb2RlLCBsaW5lTnVtYmVyKTsKIAogICAgICAg
ICAgICAgdmFyIG5ld0xpbmVOdW1iZXIgPSBkaWZmLmxlZnRbbGluZU51bWJlcl0ucm93OwogICAg
ICAgICAgICAgaWYgKG5ld0xpbmVOdW1iZXIgPT09IHVuZGVmaW5lZCkgewpAQCAtMjQ3LDExICsy
MzgsMTEgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBl
ID0gewogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlmIChu
ZXdMaW5lTnVtYmVyICE9PSB1bmRlZmluZWQpCi0gICAgICAgICAgICAgICAgdGhpcy5zZXRCcmVh
a3BvaW50KHVpU291cmNlQ29kZUlkLCBuZXdMaW5lTnVtYmVyLCBicmVha3BvaW50LmNvbmRpdGlv
biwgYnJlYWtwb2ludC5lbmFibGVkKTsKKyAgICAgICAgICAgICAgICB0aGlzLnNldEJyZWFrcG9p
bnQodWlTb3VyY2VDb2RlLCBuZXdMaW5lTnVtYmVyLCBicmVha3BvaW50LmNvbmRpdGlvbiwgYnJl
YWtwb2ludC5lbmFibGVkKTsKICAgICAgICAgfQogICAgIH0sCiAKLSAgICBzZXRGb3JtYXRTb3Vy
Y2VGaWxlczogZnVuY3Rpb24oZm9ybWF0U291cmNlKQorICAgIHNldEZvcm1hdFNvdXJjZTogZnVu
Y3Rpb24oZm9ybWF0U291cmNlKQogICAgIHsKICAgICAgICAgaWYgKHRoaXMuX2Zvcm1hdFNvdXJj
ZSA9PT0gZm9ybWF0U291cmNlKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMjk2LDcgKzI4Nyw3
IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9IHsK
ICAgICAgICAgZnVuY3Rpb24gZGlkR2V0VUlMb2NhdGlvbih1aVNvdXJjZUNvZGUsIGxpbmVOdW1i
ZXIpCiAgICAgICAgIHsKICAgICAgICAgICAgIHZhciBwcmVzZW50YXRpb25NZXNzYWdlID0ge307
Ci0gICAgICAgICAgICBwcmVzZW50YXRpb25NZXNzYWdlLnNvdXJjZUZpbGVJZCA9IHVpU291cmNl
Q29kZS5pZDsKKyAgICAgICAgICAgIHByZXNlbnRhdGlvbk1lc3NhZ2UudWlTb3VyY2VDb2RlID0g
dWlTb3VyY2VDb2RlOwogICAgICAgICAgICAgcHJlc2VudGF0aW9uTWVzc2FnZS5saW5lTnVtYmVy
ID0gbGluZU51bWJlcjsKICAgICAgICAgICAgIHByZXNlbnRhdGlvbk1lc3NhZ2Uub3JpZ2luYWxN
ZXNzYWdlID0gbWVzc2FnZTsKICAgICAgICAgICAgIHVpU291cmNlQ29kZS5tZXNzYWdlcy5wdXNo
KHByZXNlbnRhdGlvbk1lc3NhZ2UpOwpAQCAtMzE2LDY2ICszMDcsNjcgQEAgV2ViSW5zcGVjdG9y
LkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLmRp
c3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25N
b2RlbC5FdmVudHMuQ29uc29sZU1lc3NhZ2VzQ2xlYXJlZCk7CiAgICAgfSwKIAotICAgIGNvbnRp
bnVlVG9MaW5lOiBmdW5jdGlvbih1aVNvdXJjZUNvZGVJZCwgbGluZU51bWJlcikKKyAgICBjb250
aW51ZVRvTGluZTogZnVuY3Rpb24odWlTb3VyY2VDb2RlLCBsaW5lTnVtYmVyKQogICAgIHsKICAg
ICAgICAgZnVuY3Rpb24gZGlkR2V0U2NyaXB0TG9jYXRpb24obG9jYXRpb24pCiAgICAgICAgIHsK
ICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLmNvbnRpbnVlVG9Mb2NhdGlv
bihsb2NhdGlvbik7CiAgICAgICAgIH0KLSAgICAgICAgdGhpcy5fdWlMb2NhdGlvblRvU2NyaXB0
TG9jYXRpb24odWlTb3VyY2VDb2RlSWQsIGxpbmVOdW1iZXIsIGRpZEdldFNjcmlwdExvY2F0aW9u
KTsKKyAgICAgICAgdGhpcy5fdWlMb2NhdGlvblRvU2NyaXB0TG9jYXRpb24odWlTb3VyY2VDb2Rl
LCBsaW5lTnVtYmVyLCBkaWRHZXRTY3JpcHRMb2NhdGlvbik7CiAgICAgfSwKIAotICAgIGJyZWFr
cG9pbnRzRm9yU291cmNlRmlsZUlkOiBmdW5jdGlvbih1aVNvdXJjZUNvZGVJZCkKKyAgICBicmVh
a3BvaW50c0ZvclVJU291cmNlQ29kZTogZnVuY3Rpb24odWlTb3VyY2VDb2RlKQogICAgIHsKLSAg
ICAgICAgdmFyIGJyZWFrcG9pbnRzTWFwID0gdGhpcy5fYnJlYWtwb2ludE1hbmFnZXIuYnJlYWtw
b2ludHNGb3JVSVNvdXJjZUNvZGUodWlTb3VyY2VDb2RlSWQpOworICAgICAgICB2YXIgYnJlYWtw
b2ludHNNYXAgPSB0aGlzLl9icmVha3BvaW50TWFuYWdlci5icmVha3BvaW50c0ZvclVJU291cmNl
Q29kZSh1aVNvdXJjZUNvZGUpOwogICAgICAgICB2YXIgYnJlYWtwb2ludHNMaXN0ID0gW107CiAg
ICAgICAgIGZvciAodmFyIGxpbmVOdW1iZXIgaW4gYnJlYWtwb2ludHNNYXApCiAgICAgICAgICAg
ICBicmVha3BvaW50c0xpc3QucHVzaChicmVha3BvaW50c01hcFtsaW5lTnVtYmVyXSk7CiAgICAg
ICAgIHJldHVybiBicmVha3BvaW50c0xpc3Q7CiAgICAgfSwKIAotICAgIHNldEJyZWFrcG9pbnQ6
IGZ1bmN0aW9uKHVpU291cmNlQ29kZUlkLCBsaW5lTnVtYmVyLCBjb25kaXRpb24sIGVuYWJsZWQp
CisgICAgc2V0QnJlYWtwb2ludDogZnVuY3Rpb24odWlTb3VyY2VDb2RlLCBsaW5lTnVtYmVyLCBj
b25kaXRpb24sIGVuYWJsZWQpCiAgICAgewotICAgICAgICB0aGlzLl9icmVha3BvaW50TWFuYWdl
ci5zZXRCcmVha3BvaW50KHRoaXMudWlTb3VyY2VDb2RlKHVpU291cmNlQ29kZUlkKSwgbGluZU51
bWJlciwgY29uZGl0aW9uLCBlbmFibGVkKTsKKyAgICAgICAgdGhpcy5fYnJlYWtwb2ludE1hbmFn
ZXIuc2V0QnJlYWtwb2ludCh1aVNvdXJjZUNvZGUsIGxpbmVOdW1iZXIsIGNvbmRpdGlvbiwgZW5h
YmxlZCk7CiAgICAgfSwKIAotICAgIHNldEJyZWFrcG9pbnRFbmFibGVkOiBmdW5jdGlvbih1aVNv
dXJjZUNvZGVJZCwgbGluZU51bWJlciwgZW5hYmxlZCkKKyAgICBzZXRCcmVha3BvaW50RW5hYmxl
ZDogZnVuY3Rpb24odWlTb3VyY2VDb2RlLCBsaW5lTnVtYmVyLCBlbmFibGVkKQogICAgIHsKLSAg
ICAgICAgdmFyIGJyZWFrcG9pbnQgPSB0aGlzLmZpbmRCcmVha3BvaW50KHVpU291cmNlQ29kZUlk
LCBsaW5lTnVtYmVyKTsKKyAgICAgICAgdmFyIGJyZWFrcG9pbnQgPSB0aGlzLmZpbmRCcmVha3Bv
aW50KHVpU291cmNlQ29kZSwgbGluZU51bWJlcik7CiAgICAgICAgIGlmICghYnJlYWtwb2ludCkK
ICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgdGhpcy5fYnJlYWtwb2ludE1hbmFnZXIucmVt
b3ZlQnJlYWtwb2ludCh1aVNvdXJjZUNvZGVJZCwgbGluZU51bWJlcik7Ci0gICAgICAgIHRoaXMu
X2JyZWFrcG9pbnRNYW5hZ2VyLnNldEJyZWFrcG9pbnQodGhpcy51aVNvdXJjZUNvZGUodWlTb3Vy
Y2VDb2RlSWQpLCBsaW5lTnVtYmVyLCBicmVha3BvaW50LmNvbmRpdGlvbiwgZW5hYmxlZCk7Cisg
ICAgICAgIHRoaXMuX2JyZWFrcG9pbnRNYW5hZ2VyLnJlbW92ZUJyZWFrcG9pbnQodWlTb3VyY2VD
b2RlLCBsaW5lTnVtYmVyKTsKKyAgICAgICAgdGhpcy5fYnJlYWtwb2ludE1hbmFnZXIuc2V0QnJl
YWtwb2ludCh1aVNvdXJjZUNvZGUsIGxpbmVOdW1iZXIsIGJyZWFrcG9pbnQuY29uZGl0aW9uLCBl
bmFibGVkKTsKICAgICB9LAogCi0gICAgdXBkYXRlQnJlYWtwb2ludDogZnVuY3Rpb24odWlTb3Vy
Y2VDb2RlSWQsIGxpbmVOdW1iZXIsIGNvbmRpdGlvbiwgZW5hYmxlZCkKKyAgICB1cGRhdGVCcmVh
a3BvaW50OiBmdW5jdGlvbih1aVNvdXJjZUNvZGUsIGxpbmVOdW1iZXIsIGNvbmRpdGlvbiwgZW5h
YmxlZCkKICAgICB7Ci0gICAgICAgIHRoaXMuX2JyZWFrcG9pbnRNYW5hZ2VyLnJlbW92ZUJyZWFr
cG9pbnQodWlTb3VyY2VDb2RlSWQsIGxpbmVOdW1iZXIpOwotICAgICAgICB0aGlzLl9icmVha3Bv
aW50TWFuYWdlci5zZXRCcmVha3BvaW50KHRoaXMudWlTb3VyY2VDb2RlKHVpU291cmNlQ29kZUlk
KSwgbGluZU51bWJlciwgY29uZGl0aW9uLCBlbmFibGVkKTsKKyAgICAgICAgdGhpcy5fYnJlYWtw
b2ludE1hbmFnZXIucmVtb3ZlQnJlYWtwb2ludCh1aVNvdXJjZUNvZGUsIGxpbmVOdW1iZXIpOwor
ICAgICAgICB0aGlzLl9icmVha3BvaW50TWFuYWdlci5zZXRCcmVha3BvaW50KHVpU291cmNlQ29k
ZSwgbGluZU51bWJlciwgY29uZGl0aW9uLCBlbmFibGVkKTsKICAgICB9LAogCi0gICAgcmVtb3Zl
QnJlYWtwb2ludDogZnVuY3Rpb24odWlTb3VyY2VDb2RlSWQsIGxpbmVOdW1iZXIpCisgICAgcmVt
b3ZlQnJlYWtwb2ludDogZnVuY3Rpb24odWlTb3VyY2VDb2RlLCBsaW5lTnVtYmVyKQogICAgIHsK
LSAgICAgICAgdGhpcy5fYnJlYWtwb2ludE1hbmFnZXIucmVtb3ZlQnJlYWtwb2ludCh1aVNvdXJj
ZUNvZGVJZCwgbGluZU51bWJlcik7CisgICAgICAgIHRoaXMuX2JyZWFrcG9pbnRNYW5hZ2VyLnJl
bW92ZUJyZWFrcG9pbnQodWlTb3VyY2VDb2RlLCBsaW5lTnVtYmVyKTsKICAgICB9LAogCi0gICAg
ZmluZEJyZWFrcG9pbnQ6IGZ1bmN0aW9uKHVpU291cmNlQ29kZUlkLCBsaW5lTnVtYmVyKQorICAg
IGZpbmRCcmVha3BvaW50OiBmdW5jdGlvbih1aVNvdXJjZUNvZGUsIGxpbmVOdW1iZXIpCiAgICAg
ewotICAgICAgICByZXR1cm4gdGhpcy5fYnJlYWtwb2ludE1hbmFnZXIuYnJlYWtwb2ludHNGb3JV
SVNvdXJjZUNvZGUodWlTb3VyY2VDb2RlSWQpW2xpbmVOdW1iZXJdOworICAgICAgICByZXR1cm4g
dGhpcy5fYnJlYWtwb2ludE1hbmFnZXIuYnJlYWtwb2ludHNGb3JVSVNvdXJjZUNvZGUodWlTb3Vy
Y2VDb2RlKVtsaW5lTnVtYmVyXTsKICAgICB9LAogCi0gICAgX2JyZWFrcG9pbnRBZGRlZDogZnVu
Y3Rpb24odWlTb3VyY2VDb2RlSWQsIGxpbmVOdW1iZXIsIGNvbmRpdGlvbiwgZW5hYmxlZCkKKyAg
ICBfYnJlYWtwb2ludEFkZGVkOiBmdW5jdGlvbihicmVha3BvaW50KQogICAgIHsKLSAgICAgICAg
dmFyIHVpU291cmNlQ29kZSA9IHRoaXMudWlTb3VyY2VDb2RlKHVpU291cmNlQ29kZUlkKTsKLSAg
ICAgICAgaWYgKCF1aVNvdXJjZUNvZGUpCisgICAgICAgIGlmICghYnJlYWtwb2ludC51aVNvdXJj
ZUNvZGUpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIHZhciBwcmVzZW50YXRpb25CcmVh
a3BvaW50ID0gbmV3IFdlYkluc3BlY3Rvci5QcmVzZW50YXRpb25CcmVha3BvaW50KHVpU291cmNl
Q29kZSwgbGluZU51bWJlciwgY29uZGl0aW9uLCBlbmFibGVkKTsKKyAgICAgICAgdmFyIHByZXNl
bnRhdGlvbkJyZWFrcG9pbnQgPSBuZXcgV2ViSW5zcGVjdG9yLlByZXNlbnRhdGlvbkJyZWFrcG9p
bnQoYnJlYWtwb2ludC51aVNvdXJjZUNvZGUsIGJyZWFrcG9pbnQubGluZU51bWJlciwgYnJlYWtw
b2ludC5jb25kaXRpb24sIGJyZWFrcG9pbnQuZW5hYmxlZCk7CiAgICAgICAgIHRoaXMuZGlzcGF0
Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVs
LkV2ZW50cy5CcmVha3BvaW50QWRkZWQsIHByZXNlbnRhdGlvbkJyZWFrcG9pbnQpOwogICAgIH0s
CiAKLSAgICBfYnJlYWtwb2ludFJlbW92ZWQ6IGZ1bmN0aW9uKHVpU291cmNlQ29kZUlkLCBsaW5l
TnVtYmVyKQorICAgIF9icmVha3BvaW50UmVtb3ZlZDogZnVuY3Rpb24oYnJlYWtwb2ludCkKICAg
ICB7Ci0gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5E
ZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLkV2ZW50cy5CcmVha3BvaW50UmVtb3ZlZCwgeyBzb3Vy
Y2VGaWxlSWQ6IHVpU291cmNlQ29kZUlkLCBsaW5lTnVtYmVyOiBsaW5lTnVtYmVyIH0pOworICAg
ICAgICBpZiAoIWJyZWFrcG9pbnQudWlTb3VyY2VDb2RlKQorICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuRGVidWdn
ZXJQcmVzZW50YXRpb25Nb2RlbC5FdmVudHMuQnJlYWtwb2ludFJlbW92ZWQsIHsgdWlTb3VyY2VD
b2RlOiBicmVha3BvaW50LnVpU291cmNlQ29kZSwgbGluZU51bWJlcjogYnJlYWtwb2ludC5saW5l
TnVtYmVyIH0pOwogICAgIH0sCiAKICAgICBfZGVidWdnZXJQYXVzZWQ6IGZ1bmN0aW9uKCkKQEAg
LTQ1OSw4ICs0NTEsNyBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5w
cm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLk9iamVjdAogICovCiBXZWJJbnNwZWN0
b3IuUHJlc2VudGF0aW9uQnJlYWtwb2ludCA9IGZ1bmN0aW9uKHVpU291cmNlQ29kZSwgbGluZU51
bWJlciwgY29uZGl0aW9uLCBlbmFibGVkKQogewotICAgIHRoaXMuc291cmNlRmlsZSA9IHVpU291
cmNlQ29kZTsKLSAgICB0aGlzLnNvdXJjZUZpbGVJZCA9IHVpU291cmNlQ29kZS5pZDsKKyAgICB0
aGlzLnVpU291cmNlQ29kZSA9IHVpU291cmNlQ29kZTsKICAgICB0aGlzLmxpbmVOdW1iZXIgPSBs
aW5lTnVtYmVyOwogICAgIHRoaXMuY29uZGl0aW9uID0gY29uZGl0aW9uOwogICAgIHRoaXMuZW5h
YmxlZCA9IGVuYWJsZWQ7CkBAIC00NjksNyArNDYwLDcgQEAgV2ViSW5zcGVjdG9yLlByZXNlbnRh
dGlvbkJyZWFrcG9pbnQgPSBmdW5jdGlvbih1aVNvdXJjZUNvZGUsIGxpbmVOdW1iZXIsIGNvbmRp
dGkKIFdlYkluc3BlY3Rvci5QcmVzZW50YXRpb25CcmVha3BvaW50LnByb3RvdHlwZSA9IHsKICAg
ICBnZXQgdXJsKCkKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLnNvdXJjZUZpbGUudXJsOwor
ICAgICAgICByZXR1cm4gdGhpcy51aVNvdXJjZUNvZGUudXJsOwogICAgIH0sCiAKICAgICBnZXQg
cmVzb2x2ZWQoKQpAQCAtNDg3LDIzICs0NzgsMTkgQEAgV2ViSW5zcGVjdG9yLlByZXNlbnRhdGlv
bkJyZWFrcG9pbnQucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIHNuaXBwZXQgPSBjb250
ZW50LnN1YnN0cmluZyhsaW5lRW5kaW5nc1t0aGlzLmxpbmVOdW1iZXIgLSAxXSwgbGluZUVuZGlu
Z3NbdGhpcy5saW5lTnVtYmVyXSk7CiAgICAgICAgICAgICBjYWxsYmFjayhzbmlwcGV0KTsKICAg
ICAgICAgfQotICAgICAgICBpZiAoIXRoaXMuc291cmNlRmlsZSkgewotICAgICAgICAgICAgY2Fs
bGJhY2soV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJOL0EiKSk7Ci0gICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgIH0KLSAgICAgICAgdGhpcy5zb3VyY2VGaWxlLnJlcXVlc3RDb250ZW50KGRpZFJl
cXVlc3RDb250ZW50LmJpbmQodGhpcykpOworICAgICAgICB0aGlzLnVpU291cmNlQ29kZS5yZXF1
ZXN0Q29udGVudChkaWRSZXF1ZXN0Q29udGVudC5iaW5kKHRoaXMpKTsKICAgICB9CiB9CiAKIC8q
KgogICogQGNvbnN0cnVjdG9yCiAgKi8KLVdlYkluc3BlY3Rvci5QcmVzZW5hdGlvbkNhbGxGcmFt
ZSA9IGZ1bmN0aW9uKGNhbGxGcmFtZSwgaW5kZXgsIG1vZGVsLCBzb3VyY2VGaWxlKQorV2ViSW5z
cGVjdG9yLlByZXNlbmF0aW9uQ2FsbEZyYW1lID0gZnVuY3Rpb24oY2FsbEZyYW1lLCBpbmRleCwg
bW9kZWwsIHVpU291cmNlQ29kZSkKIHsKICAgICB0aGlzLl9jYWxsRnJhbWUgPSBjYWxsRnJhbWU7
CiAgICAgdGhpcy5faW5kZXggPSBpbmRleDsKICAgICB0aGlzLl9tb2RlbCA9IG1vZGVsOwotICAg
IHRoaXMuX3NvdXJjZUZpbGUgPSBzb3VyY2VGaWxlOworICAgIHRoaXMuX3VpU291cmNlQ29kZSA9
IHVpU291cmNlQ29kZTsKICAgICB0aGlzLl9zY3JpcHQgPSBXZWJJbnNwZWN0b3IuZGVidWdnZXJN
b2RlbC5zY3JpcHRGb3JTb3VyY2VJRChjYWxsRnJhbWUubG9jYXRpb24uc2NyaXB0SWQpOwogfQog
CkBAIC01MjUsOCArNTEyLDggQEAgV2ViSW5zcGVjdG9yLlByZXNlbmF0aW9uQ2FsbEZyYW1lLnBy
b3RvdHlwZSA9IHsKIAogICAgIGdldCB1cmwoKQogICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX3Nv
dXJjZUZpbGUpCi0gICAgICAgICAgICByZXR1cm4gdGhpcy5fc291cmNlRmlsZS51cmw7CisgICAg
ICAgIGlmICh0aGlzLl91aVNvdXJjZUNvZGUpCisgICAgICAgICAgICByZXR1cm4gdGhpcy5fdWlT
b3VyY2VDb2RlLnVybDsKICAgICB9LAogCiAgICAgZ2V0IHNjb3BlQ2hhaW4oKQpAQCAtNTQ2LDgg
KzUzMyw4IEBAIFdlYkluc3BlY3Rvci5QcmVzZW5hdGlvbkNhbGxGcmFtZS5wcm90b3R5cGUgPSB7
CiAKICAgICBzZWxlY3Q6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIGlmICh0aGlzLl9zb3Vy
Y2VGaWxlKQotICAgICAgICAgICAgdGhpcy5fc291cmNlRmlsZS5mb3JjZUxvYWRDb250ZW50KHRo
aXMuX3NjcmlwdCk7CisgICAgICAgIGlmICh0aGlzLl91aVNvdXJjZUNvZGUpCisgICAgICAgICAg
ICB0aGlzLl91aVNvdXJjZUNvZGUuZm9yY2VMb2FkQ29udGVudCh0aGlzLl9zY3JpcHQpOwogICAg
IH0sCiAKICAgICBldmFsdWF0ZTogZnVuY3Rpb24oY29kZSwgb2JqZWN0R3JvdXAsIGluY2x1ZGVD
b21tYW5kTGluZUFQSSwgcmV0dXJuQnlWYWx1ZSwgY2FsbGJhY2spCkBAIC01NzEsMTMgKzU1OCw5
IEBAIFdlYkluc3BlY3Rvci5QcmVzZW5hdGlvbkNhbGxGcmFtZS5wcm90b3R5cGUgPSB7CiAgICAg
c291cmNlTGluZTogZnVuY3Rpb24oY2FsbGJhY2spCiAgICAgewogICAgICAgICB2YXIgbG9jYXRp
b24gPSB0aGlzLl9jYWxsRnJhbWUubG9jYXRpb247Ci0gICAgICAgIGlmICghdGhpcy5pc0ludGVy
bmFsU2NyaXB0KSB7Ci0gICAgICAgICAgICBmdW5jdGlvbiBkaWRHZXRVSUxvY2F0aW9uKHVpU291
cmNlQ29kZSwgbGluZU51bWJlcikKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBjYWxs
YmFjayh1aVNvdXJjZUNvZGUuaWQsIGxpbmVOdW1iZXIpOwotICAgICAgICAgICAgfQotICAgICAg
ICAgICAgdGhpcy5fbW9kZWwuX3NjcmlwdExvY2F0aW9uVG9VSUxvY2F0aW9uKG51bGwsIGxvY2F0
aW9uLnNjcmlwdElkLCBsb2NhdGlvbi5saW5lTnVtYmVyLCBsb2NhdGlvbi5jb2x1bW5OdW1iZXIs
IGRpZEdldFVJTG9jYXRpb24pOwotICAgICAgICB9IGVsc2UKKyAgICAgICAgaWYgKCF0aGlzLmlz
SW50ZXJuYWxTY3JpcHQpCisgICAgICAgICAgICB0aGlzLl9tb2RlbC5fc2NyaXB0TG9jYXRpb25U
b1VJTG9jYXRpb24obnVsbCwgbG9jYXRpb24uc2NyaXB0SWQsIGxvY2F0aW9uLmxpbmVOdW1iZXIs
IGxvY2F0aW9uLmNvbHVtbk51bWJlciwgY2FsbGJhY2spOworICAgICAgICBlbHNlCiAgICAgICAg
ICAgICBjYWxsYmFjayh1bmRlZmluZWQsIGxvY2F0aW9uLmxpbmVOdW1iZXIpOwogICAgIH0KIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1Bh
bmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwu
anMKaW5kZXggZDQ3ZjBhMmU4OTQ2MmYxZDI3NTc2YTRlNWQ3NGNlYTExNzFkNzUwMi4uMDkzZDkz
MjEzM2E4ZTNkM2FkYmE2ZWZiM2YxNGNhZmI4NmU1M2JhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMKQEAgLTE0Nyw5ICsxNDcs
OSBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsID0gZnVuY3Rpb24ocHJlc2VudGF0aW9uTW9k
ZWwpCiAgICAgdGhpcy5fcGF1c2VPbkV4Y2VwdGlvbkJ1dHRvbiA9IG5ldyBXZWJJbnNwZWN0b3Iu
U3RhdHVzQmFyQnV0dG9uKCIiLCAic2NyaXB0cy1wYXVzZS1vbi1leGNlcHRpb25zLXN0YXR1cy1i
YXItaXRlbSIsIDMpOwogICAgIHRoaXMuX3BhdXNlT25FeGNlcHRpb25CdXR0b24uYWRkRXZlbnRM
aXN0ZW5lcigiY2xpY2siLCB0aGlzLl90b2dnbGVQYXVzZU9uRXhjZXB0aW9ucy5iaW5kKHRoaXMp
LCBmYWxzZSk7CiAKLSAgICB0aGlzLl90b2dnbGVGb3JtYXRTb3VyY2VGaWxlc0J1dHRvbiA9IG5l
dyBXZWJJbnNwZWN0b3IuU3RhdHVzQmFyQnV0dG9uKFdlYkluc3BlY3Rvci5VSVN0cmluZygiUHJl
dHR5IHByaW50IiksICJzY3JpcHRzLXRvZ2dsZS1wcmV0dHktcHJpbnQtc3RhdHVzLWJhci1pdGVt
Iik7Ci0gICAgdGhpcy5fdG9nZ2xlRm9ybWF0U291cmNlRmlsZXNCdXR0b24udG9nZ2xlZCA9IGZh
bHNlOwotICAgIHRoaXMuX3RvZ2dsZUZvcm1hdFNvdXJjZUZpbGVzQnV0dG9uLmFkZEV2ZW50TGlz
dGVuZXIoImNsaWNrIiwgdGhpcy5fdG9nZ2xlRm9ybWF0U291cmNlRmlsZXMuYmluZCh0aGlzKSwg
ZmFsc2UpOworICAgIHRoaXMuX3RvZ2dsZUZvcm1hdFNvdXJjZUJ1dHRvbiA9IG5ldyBXZWJJbnNw
ZWN0b3IuU3RhdHVzQmFyQnV0dG9uKFdlYkluc3BlY3Rvci5VSVN0cmluZygiUHJldHR5IHByaW50
IiksICJzY3JpcHRzLXRvZ2dsZS1wcmV0dHktcHJpbnQtc3RhdHVzLWJhci1pdGVtIik7CisgICAg
dGhpcy5fdG9nZ2xlRm9ybWF0U291cmNlQnV0dG9uLnRvZ2dsZWQgPSBmYWxzZTsKKyAgICB0aGlz
Ll90b2dnbGVGb3JtYXRTb3VyY2VCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlz
Ll90b2dnbGVGb3JtYXRTb3VyY2UuYmluZCh0aGlzKSwgZmFsc2UpOwogCiAgICAgdGhpcy5fZGVi
dWdnZXJFbmFibGVkID0gUHJlZmVyZW5jZXMuZGVidWdnZXJBbHdheXNFbmFibGVkOwogCkBAIC0x
NTgsOCArMTU4LDggQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbCA9IGZ1bmN0aW9uKHByZXNl
bnRhdGlvbk1vZGVsKQogICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLmFkZEV2ZW50TGlz
dGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuRXZlbnRzLkRlYnVnZ2VyV2FzRW5hYmxl
ZCwgdGhpcy5fZGVidWdnZXJXYXNFbmFibGVkLCB0aGlzKTsKICAgICBXZWJJbnNwZWN0b3IuZGVi
dWdnZXJNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLkV2
ZW50cy5EZWJ1Z2dlcldhc0Rpc2FibGVkLCB0aGlzLl9kZWJ1Z2dlcldhc0Rpc2FibGVkLCB0aGlz
KTsKIAotICAgIHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5z
cGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuRXZlbnRzLlNvdXJjZUZpbGVBZGRlZCwg
dGhpcy5fc291cmNlRmlsZUFkZGVkLCB0aGlzKQotICAgIHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVs
LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwu
RXZlbnRzLlNvdXJjZUZpbGVSZXBsYWNlZCwgdGhpcy5fc291cmNlRmlsZVJlcGxhY2VkLCB0aGlz
KTsKKyAgICB0aGlzLl9wcmVzZW50YXRpb25Nb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3Bl
Y3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLkV2ZW50cy5VSVNvdXJjZUNvZGVBZGRlZCwg
dGhpcy5fdWlTb3VyY2VDb2RlQWRkZWQsIHRoaXMpCisgICAgdGhpcy5fcHJlc2VudGF0aW9uTW9k
ZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2Rl
bC5FdmVudHMuVUlTb3VyY2VDb2RlUmVwbGFjZWQsIHRoaXMuX3VpU291cmNlQ29kZVJlcGxhY2Vk
LCB0aGlzKTsKICAgICB0aGlzLl9wcmVzZW50YXRpb25Nb2RlbC5hZGRFdmVudExpc3RlbmVyKFdl
Ykluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLkV2ZW50cy5Db25zb2xlTWVzc2Fn
ZUFkZGVkLCB0aGlzLl9jb25zb2xlTWVzc2FnZUFkZGVkLCB0aGlzKTsKICAgICB0aGlzLl9wcmVz
ZW50YXRpb25Nb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNl
bnRhdGlvbk1vZGVsLkV2ZW50cy5Db25zb2xlTWVzc2FnZXNDbGVhcmVkLCB0aGlzLl9jb25zb2xl
TWVzc2FnZXNDbGVhcmVkLCB0aGlzKTsKICAgICB0aGlzLl9wcmVzZW50YXRpb25Nb2RlbC5hZGRF
dmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLkV2ZW50
cy5CcmVha3BvaW50QWRkZWQsIHRoaXMuX2JyZWFrcG9pbnRBZGRlZCwgdGhpcyk7CkBAIC0xOTYs
NyArMTk2LDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAKICAg
ICBnZXQgc3RhdHVzQmFySXRlbXMoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIFt0aGlzLmVuYWJs
ZVRvZ2dsZUJ1dHRvbi5lbGVtZW50LCB0aGlzLl9wYXVzZU9uRXhjZXB0aW9uQnV0dG9uLmVsZW1l
bnQsIHRoaXMuX3RvZ2dsZUZvcm1hdFNvdXJjZUZpbGVzQnV0dG9uLmVsZW1lbnRdOworICAgICAg
ICByZXR1cm4gW3RoaXMuZW5hYmxlVG9nZ2xlQnV0dG9uLmVsZW1lbnQsIHRoaXMuX3BhdXNlT25F
eGNlcHRpb25CdXR0b24uZWxlbWVudCwgdGhpcy5fdG9nZ2xlRm9ybWF0U291cmNlQnV0dG9uLmVs
ZW1lbnRdOwogICAgIH0sCiAKICAgICBnZXQgZGVmYXVsdEZvY3VzZWRFbGVtZW50KCkKQEAgLTIy
Myw1MCArMjIzLDUwIEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewog
ICAgICAgICByZXR1cm4gdGhpcy50b2dnbGVCcmVha3BvaW50c0J1dHRvbi50b2dnbGVkOwogICAg
IH0sCiAKLSAgICBfc291cmNlRmlsZUFkZGVkOiBmdW5jdGlvbihldmVudCkKKyAgICBfdWlTb3Vy
Y2VDb2RlQWRkZWQ6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKLSAgICAgICAgdmFyIHNvdXJjZUZp
bGUgPSBldmVudC5kYXRhOworICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gZXZlbnQuZGF0YTsK
IAotICAgICAgICBpZiAoIXNvdXJjZUZpbGUudXJsKSB7CisgICAgICAgIGlmICghdWlTb3VyY2VD
b2RlLnVybCkgewogICAgICAgICAgICAgLy8gQW5vbnltb3VzIHNvdXJjZXMgYXJlIHNob3duIG9u
bHkgd2hlbiBzdGVwcGluZy4KICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAg
ICAgIHRoaXMuX2FkZE9wdGlvblRvRmlsZXNTZWxlY3Qoc291cmNlRmlsZSk7CisgICAgICAgIHRo
aXMuX2FkZE9wdGlvblRvRmlsZXNTZWxlY3QodWlTb3VyY2VDb2RlKTsKIAogICAgICAgICB2YXIg
bGFzdFZpZXdlZFVSTCA9IFdlYkluc3BlY3Rvci5zZXR0aW5ncy5sYXN0Vmlld2VkU2NyaXB0Rmls
ZS5nZXQoKTsKICAgICAgICAgaWYgKCF0aGlzLl9maWxlc1NlbGVjdEVsZW1lbnQuaW5pdGlhbFNl
bGVjdGlvblByb2Nlc3NlZCkgewogICAgICAgICAgICAgdGhpcy5fZmlsZXNTZWxlY3RFbGVtZW50
LmluaXRpYWxTZWxlY3Rpb25Qcm9jZXNzZWQgPSB0cnVlOwogICAgICAgICAgICAgLy8gT3B0aW9u
IHdlIGp1c3QgYWRkZWQgaXMgdGhlIG9ubHkgb3B0aW9uIGluIGZpbGVzIHNlbGVjdC4KICAgICAg
ICAgICAgIC8vIFdlIGhhdmUgdG8gc2hvdyBjb3JyZXNwb25kaW5nIHNvdXJjZSBmcmFtZSBpbW1l
ZGlhdGVseS4KLSAgICAgICAgICAgIHRoaXMuX3Nob3dTb3VyY2VGcmFtZUFuZEFkZFRvSGlzdG9y
eShzb3VyY2VGaWxlLmlkKTsKKyAgICAgICAgICAgIHRoaXMuX3Nob3dTb3VyY2VGcmFtZUFuZEFk
ZFRvSGlzdG9yeSh1aVNvdXJjZUNvZGUpOwogICAgICAgICAgICAgLy8gUmVzdG9yZSBvcmlnaW5h
bCB2YWx1ZSBvZiBsYXN0Vmlld2VkU2NyaXB0RmlsZSBiZWNhdXNlCiAgICAgICAgICAgICAvLyBz
b3VyY2UgZnJhbWUgd2FzIHNob3duIGFzIGEgcmVzdWx0IG9mIGluaXRpYWwgbG9hZC4KICAgICAg
ICAgICAgIFdlYkluc3BlY3Rvci5zZXR0aW5ncy5sYXN0Vmlld2VkU2NyaXB0RmlsZS5zZXQobGFz
dFZpZXdlZFVSTCk7Ci0gICAgICAgIH0gZWxzZSBpZiAoc291cmNlRmlsZS51cmwgPT09IGxhc3RW
aWV3ZWRVUkwpCi0gICAgICAgICAgICB0aGlzLl9zaG93U291cmNlRnJhbWVBbmRBZGRUb0hpc3Rv
cnkoc291cmNlRmlsZS5pZCk7CisgICAgICAgIH0gZWxzZSBpZiAodWlTb3VyY2VDb2RlLnVybCA9
PT0gbGFzdFZpZXdlZFVSTCkKKyAgICAgICAgICAgIHRoaXMuX3Nob3dTb3VyY2VGcmFtZUFuZEFk
ZFRvSGlzdG9yeSh1aVNvdXJjZUNvZGUpOwogICAgIH0sCiAKICAgICBfc2hvd1NjcmlwdEZvbGRl
cnNTZXR0aW5nQ2hhbmdlZDogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdmFyIHNlbGVjdGVk
T3B0aW9uID0gdGhpcy5fZmlsZXNTZWxlY3RFbGVtZW50W3RoaXMuX2ZpbGVzU2VsZWN0RWxlbWVu
dC5zZWxlY3RlZEluZGV4XTsKLSAgICAgICAgdmFyIHNvdXJjZUZpbGVJZCA9IHNlbGVjdGVkT3B0
aW9uID8gc2VsZWN0ZWRPcHRpb24uX3NvdXJjZUZpbGVJZCA6IG51bGw7CisgICAgICAgIHZhciB1
aVNvdXJjZUNvZGUgPSBzZWxlY3RlZE9wdGlvbiA/IHNlbGVjdGVkT3B0aW9uLl91aVNvdXJjZUNv
ZGUgOiBudWxsOwogCiAgICAgICAgIHZhciBvcHRpb25zID0gQXJyYXkucHJvdG90eXBlLnNsaWNl
LmNhbGwodGhpcy5fZmlsZXNTZWxlY3RFbGVtZW50KTsKICAgICAgICAgdGhpcy5fcmVzZXRGaWxl
c1NlbGVjdCgpOwogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG9wdGlvbnMubGVuZ3RoOyAr
K2kpIHsKLSAgICAgICAgICAgIGlmIChvcHRpb25zW2ldLl9zb3VyY2VGaWxlKQotICAgICAgICAg
ICAgICAgIHRoaXMuX2FkZE9wdGlvblRvRmlsZXNTZWxlY3Qob3B0aW9uc1tpXS5fc291cmNlRmls
ZSk7CisgICAgICAgICAgICBpZiAob3B0aW9uc1tpXS5fdWlTb3VyY2VDb2RlKQorICAgICAgICAg
ICAgICAgIHRoaXMuX2FkZE9wdGlvblRvRmlsZXNTZWxlY3Qob3B0aW9uc1tpXS5fdWlTb3VyY2VD
b2RlKTsKICAgICAgICAgfQogCi0gICAgICAgIGlmIChzb3VyY2VGaWxlSWQpIHsKLSAgICAgICAg
ICAgIHZhciBpbmRleCA9IHRoaXMuX3NvdXJjZUZpbGVJZFRvRmlsZXNTZWxlY3RPcHRpb25bc291
cmNlRmlsZUlkXS5pbmRleDsKKyAgICAgICAgaWYgKHVpU291cmNlQ29kZSkgeworICAgICAgICAg
ICAgdmFyIGluZGV4ID0gdWlTb3VyY2VDb2RlLl9vcHRpb24uaW5kZXg7CiAgICAgICAgICAgICBp
ZiAodHlwZW9mIGluZGV4ID09PSAibnVtYmVyIikKICAgICAgICAgICAgICAgICB0aGlzLl9maWxl
c1NlbGVjdEVsZW1lbnQuc2VsZWN0ZWRJbmRleCA9IGluZGV4OwogICAgICAgICB9CiAgICAgfSwK
IAotICAgIF9hZGRPcHRpb25Ub0ZpbGVzU2VsZWN0OiBmdW5jdGlvbihzb3VyY2VGaWxlKQorICAg
IF9hZGRPcHRpb25Ub0ZpbGVzU2VsZWN0OiBmdW5jdGlvbih1aVNvdXJjZUNvZGUpCiAgICAgewog
ICAgICAgICB2YXIgc2hvd1NjcmlwdEZvbGRlcnMgPSBXZWJJbnNwZWN0b3Iuc2V0dGluZ3Muc2hv
d1NjcmlwdEZvbGRlcnMuZ2V0KCk7CiAKQEAgLTI3NywyMyArMjc3LDIzIEBAIFdlYkluc3BlY3Rv
ci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgc2VsZWN0LmZvbGRlck9w
dGlvbnMgPSB7fTsKIAogICAgICAgICB2YXIgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgib3B0aW9uIik7Ci0gICAgICAgIG9wdGlvbi5fc291cmNlRmlsZSA9IHNvdXJjZUZpbGU7Ci0g
ICAgICAgIHZhciBwYXJzZWRVUkwgPSBzb3VyY2VGaWxlLnVybC5hc1BhcnNlZFVSTCgpOworICAg
ICAgICBvcHRpb24uX3VpU291cmNlQ29kZSA9IHVpU291cmNlQ29kZTsKKyAgICAgICAgdmFyIHBh
cnNlZFVSTCA9IHVpU291cmNlQ29kZS51cmwuYXNQYXJzZWRVUkwoKTsKIAotICAgICAgICB2YXIg
bmFtZXMgPSB0aGlzLl9mb2xkZXJBbmREaXNwbGF5TmFtZUZvclNjcmlwdFVSTChzb3VyY2VGaWxl
LnVybCk7CisgICAgICAgIHZhciBuYW1lcyA9IHRoaXMuX2ZvbGRlckFuZERpc3BsYXlOYW1lRm9y
U2NyaXB0VVJMKHVpU291cmNlQ29kZS51cmwpOwogICAgICAgICBjb25zdCBpbmRlbnQgPSAoIXNo
b3dTY3JpcHRGb2xkZXJzIHx8IFdlYkluc3BlY3Rvci5pc01hYygpKSA/ICIiIDogIlx1MDBhMFx1
MDBhMFx1MDBhMFx1MDBhMCI7CiAgICAgICAgIG9wdGlvbi50ZXh0ID0gaW5kZW50ICsgKG5hbWVz
LmRpc3BsYXlOYW1lID8gbmFtZXMuZGlzcGxheU5hbWUgOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmco
Iihwcm9ncmFtKSIpKTsKICAgICAgICAgb3B0aW9uLmRpc3BsYXlOYW1lID0gbmFtZXMuZGlzcGxh
eU5hbWU7CiAKICAgICAgICAgdmFyIGZvbGRlck5hbWVGb3JTb3J0aW5nOwotICAgICAgICBpZiAo
c291cmNlRmlsZS5pc0NvbnRlbnRTY3JpcHQpCisgICAgICAgIGlmICh1aVNvdXJjZUNvZGUuaXND
b250ZW50U2NyaXB0KQogICAgICAgICAgICAgZm9sZGVyTmFtZUZvclNvcnRpbmcgPSAiMjoiICsg
bmFtZXMuZm9sZGVyTmFtZTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgZm9sZGVyTmFtZUZv
clNvcnRpbmcgPSAiMDoiICsgKG5hbWVzLmRvbWFpbiA/IG5hbWVzLmRvbWFpbiArICJcdFx0IiA6
ICIiKSArIG5hbWVzLmZvbGRlck5hbWU7CiAKICAgICAgICAgb3B0aW9uLm5hbWVGb3JTb3J0aW5n
ID0gZm9sZGVyTmFtZUZvclNvcnRpbmcgKyAiXHQvXHQiICsgbmFtZXMuZGlzcGxheU5hbWU7IC8v
IFVzZSAnXHQnIHRvIG1ha2UgZmlsZXMgc3RpY2sgdG8gdGhlaXIgZm9sZGVyLgotICAgICAgICBv
cHRpb24udGl0bGUgPSBzb3VyY2VGaWxlLnVybDsKLSAgICAgICAgaWYgKHNvdXJjZUZpbGUuaXND
b250ZW50U2NyaXB0KQorICAgICAgICBvcHRpb24udGl0bGUgPSB1aVNvdXJjZUNvZGUudXJsOwor
ICAgICAgICBpZiAodWlTb3VyY2VDb2RlLmlzQ29udGVudFNjcmlwdCkKICAgICAgICAgICAgIG9w
dGlvbi5hZGRTdHlsZUNsYXNzKCJleHRlbnNpb24tc2NyaXB0Iik7CiAKICAgICAgICAgZnVuY3Rp
b24gaW5zZXJ0T3JkZXJlZChvcHRpb24pCkBAIC0zMTEsNyArMzExLDcgQEAgV2ViSW5zcGVjdG9y
LlNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgaW5zZXJ0T3JkZXJlZChvcHRp
b24pOwogCi0gICAgICAgIGlmIChzb3VyY2VGaWxlLmlzQ29udGVudFNjcmlwdCAmJiAhc2VsZWN0
LmNvbnRlbnRTY3JpcHRTZWN0aW9uKSB7CisgICAgICAgIGlmICh1aVNvdXJjZUNvZGUuaXNDb250
ZW50U2NyaXB0ICYmICFzZWxlY3QuY29udGVudFNjcmlwdFNlY3Rpb24pIHsKICAgICAgICAgICAg
IHZhciBjb250ZW50U2NyaXB0U2VjdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm9wdGlv
biIpOwogICAgICAgICAgICAgY29udGVudFNjcmlwdFNlY3Rpb24udGV4dCA9ICJcdTIwMTQgIiAr
IFdlYkluc3BlY3Rvci5VSVN0cmluZygiQ29udGVudCBzY3JpcHRzIikgKyAiIFx1MjAxNCI7CiAg
ICAgICAgICAgICBjb250ZW50U2NyaXB0U2VjdGlvbi5kaXNhYmxlZCA9IHRydWU7CkBAIC0zMjAs
NyArMzIwLDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAg
ICAgICAgICBpbnNlcnRPcmRlcmVkKGNvbnRlbnRTY3JpcHRTZWN0aW9uKTsKICAgICAgICAgfQog
Ci0gICAgICAgIGlmIChzaG93U2NyaXB0Rm9sZGVycyAmJiAhc291cmNlRmlsZS5pc0NvbnRlbnRT
Y3JpcHQgJiYgbmFtZXMuZG9tYWluICYmICFzZWxlY3QuZG9tYWluT3B0aW9uc1tuYW1lcy5kb21h
aW5dKSB7CisgICAgICAgIGlmIChzaG93U2NyaXB0Rm9sZGVycyAmJiAhdWlTb3VyY2VDb2RlLmlz
Q29udGVudFNjcmlwdCAmJiBuYW1lcy5kb21haW4gJiYgIXNlbGVjdC5kb21haW5PcHRpb25zW25h
bWVzLmRvbWFpbl0pIHsKICAgICAgICAgICAgIHZhciBkb21haW5PcHRpb24gPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJvcHRpb24iKTsKICAgICAgICAgICAgIGRvbWFpbk9wdGlvbi50ZXh0ID0g
Ilx1MjAxNCAiICsgbmFtZXMuZG9tYWluICsgIiBcdTIwMTQiOwogICAgICAgICAgICAgZG9tYWlu
T3B0aW9uLm5hbWVGb3JTb3J0aW5nID0gIjA6IiArIG5hbWVzLmRvbWFpbjsKQEAgLTMzOCw4ICsz
MzgsOCBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAg
ICAgIGluc2VydE9yZGVyZWQoZm9sZGVyT3B0aW9uKTsKICAgICAgICAgfQogCi0gICAgICAgIG9w
dGlvbi5fc291cmNlRmlsZUlkID0gc291cmNlRmlsZS5pZDsKLSAgICAgICAgdGhpcy5fc291cmNl
RmlsZUlkVG9GaWxlc1NlbGVjdE9wdGlvbltzb3VyY2VGaWxlLmlkXSA9IG9wdGlvbjsKKyAgICAg
ICAgb3B0aW9uLl91aVNvdXJjZUNvZGUgPSB1aVNvdXJjZUNvZGU7CisgICAgICAgIHVpU291cmNl
Q29kZS5fb3B0aW9uID0gb3B0aW9uOwogICAgIH0sCiAKICAgICBfZm9sZGVyQW5kRGlzcGxheU5h
bWVGb3JTY3JpcHRVUkw6IGZ1bmN0aW9uKHVybCkKQEAgLTM2Niw5ICszNjYsOSBAQCBXZWJJbnNw
ZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIHsgZG9tYWlu
OiAocGFyc2VkVVJMID8gcGFyc2VkVVJMLmhvc3QgOiAiIiksIGZvbGRlck5hbWU6IGZvbGRlck5h
bWUsIGRpc3BsYXlOYW1lOiBkaXNwbGF5TmFtZSB9OwogICAgIH0sCiAKLSAgICBzZXRTY3JpcHRT
b3VyY2VJc0JlaW5nRWRpdGVkOiBmdW5jdGlvbihzb3VyY2VGaWxlSWQsIGluRWRpdE1vZGUpCisg
ICAgc2V0U2NyaXB0U291cmNlSXNCZWluZ0VkaXRlZDogZnVuY3Rpb24odWlTb3VyY2VDb2RlLCBp
bkVkaXRNb2RlKQogICAgIHsKLSAgICAgICAgdmFyIG9wdGlvbiA9IHRoaXMuX3NvdXJjZUZpbGVJ
ZFRvRmlsZXNTZWxlY3RPcHRpb25bc291cmNlRmlsZUlkXTsKKyAgICAgICAgdmFyIG9wdGlvbiA9
IHVpU291cmNlQ29kZS5fb3B0aW9uOwogICAgICAgICBpZiAoIW9wdGlvbikKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgaWYgKGluRWRpdE1vZGUpCkBAIC0zNzksMTUgKzM3OSwxOCBAQCBX
ZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKIAogICAgIF9jb25zb2xlTWVz
c2FnZXNDbGVhcmVkOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBmb3IgKHZhciBzb3VyY2VG
aWxlSWQgaW4gdGhpcy5fc291cmNlRmlsZUlkVG9Tb3VyY2VGcmFtZSkKLSAgICAgICAgICAgIHRo
aXMuX3NvdXJjZUZpbGVJZFRvU291cmNlRnJhbWVbc291cmNlRmlsZUlkXS5jbGVhck1lc3NhZ2Vz
KCk7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5fZmlsZXNTZWxlY3RFbGVtZW50
Lmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICB2YXIgb3B0aW9uID0gdGhpcy5fZmlsZXNTZWxl
Y3RFbGVtZW50W2ldOworICAgICAgICAgICAgaWYgKG9wdGlvbi5fdWlTb3VyY2VDb2RlICYmIG9w
dGlvbi5fdWlTb3VyY2VDb2RlLl9zb3VyY2VGcmFtZSkKKyAgICAgICAgICAgICAgICBvcHRpb24u
X3VpU291cmNlQ29kZS5fc291cmNlRnJhbWUuY2xlYXJNZXNzYWdlcygpOworICAgICAgICB9CiAg
ICAgfSwKIAogICAgIF9jb25zb2xlTWVzc2FnZUFkZGVkOiBmdW5jdGlvbihldmVudCkKICAgICB7
CiAgICAgICAgIHZhciBtZXNzYWdlID0gZXZlbnQuZGF0YTsKIAotICAgICAgICB2YXIgc291cmNl
RnJhbWUgPSB0aGlzLl9zb3VyY2VGaWxlSWRUb1NvdXJjZUZyYW1lW21lc3NhZ2Uuc291cmNlRmls
ZUlkXTsKKyAgICAgICAgdmFyIHNvdXJjZUZyYW1lID0gbWVzc2FnZS51aVNvdXJjZUNvZGUuX3Nv
dXJjZUZyYW1lOwogICAgICAgICBpZiAoc291cmNlRnJhbWUgJiYgc291cmNlRnJhbWUubG9hZGVk
KQogICAgICAgICAgICAgc291cmNlRnJhbWUuYWRkTWVzc2FnZVRvU291cmNlKG1lc3NhZ2UubGlu
ZU51bWJlciwgbWVzc2FnZS5vcmlnaW5hbE1lc3NhZ2UpOwogICAgIH0sCkBAIC0zOTYsNyArMzk5
LDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgewogICAg
ICAgICB2YXIgYnJlYWtwb2ludCA9IGV2ZW50LmRhdGE7CiAKLSAgICAgICAgdmFyIHNvdXJjZUZy
YW1lID0gdGhpcy5fc291cmNlRmlsZUlkVG9Tb3VyY2VGcmFtZVticmVha3BvaW50LnNvdXJjZUZp
bGVJZF07CisgICAgICAgIHZhciBzb3VyY2VGcmFtZSA9IGJyZWFrcG9pbnQudWlTb3VyY2VDb2Rl
Ll9zb3VyY2VGcmFtZTsKICAgICAgICAgaWYgKHNvdXJjZUZyYW1lICYmIHNvdXJjZUZyYW1lLmxv
YWRlZCkKICAgICAgICAgICAgIHNvdXJjZUZyYW1lLmFkZEJyZWFrcG9pbnQoYnJlYWtwb2ludC5s
aW5lTnVtYmVyLCBicmVha3BvaW50LnJlc29sdmVkLCBicmVha3BvaW50LmNvbmRpdGlvbiwgYnJl
YWtwb2ludC5lbmFibGVkKTsKIApAQCAtNDA3LDExICs0MTAsMTEgQEAgV2ViSW5zcGVjdG9yLlNj
cmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgewogICAgICAgICB2YXIgYnJlYWtwb2ludCA9
IGV2ZW50LmRhdGE7CiAKLSAgICAgICAgdmFyIHNvdXJjZUZyYW1lID0gdGhpcy5fc291cmNlRmls
ZUlkVG9Tb3VyY2VGcmFtZVticmVha3BvaW50LnNvdXJjZUZpbGVJZF07CisgICAgICAgIHZhciBz
b3VyY2VGcmFtZSA9IGJyZWFrcG9pbnQudWlTb3VyY2VDb2RlLl9zb3VyY2VGcmFtZTsKICAgICAg
ICAgaWYgKHNvdXJjZUZyYW1lICYmIHNvdXJjZUZyYW1lLmxvYWRlZCkKICAgICAgICAgICAgIHNv
dXJjZUZyYW1lLnJlbW92ZUJyZWFrcG9pbnQoYnJlYWtwb2ludC5saW5lTnVtYmVyKTsKIAotICAg
ICAgICB0aGlzLnNpZGViYXJQYW5lcy5qc0JyZWFrcG9pbnRzLnJlbW92ZUJyZWFrcG9pbnQoYnJl
YWtwb2ludC5zb3VyY2VGaWxlSWQsIGJyZWFrcG9pbnQubGluZU51bWJlcik7CisgICAgICAgIHRo
aXMuc2lkZWJhclBhbmVzLmpzQnJlYWtwb2ludHMucmVtb3ZlQnJlYWtwb2ludChicmVha3BvaW50
LnVpU291cmNlQ29kZSwgYnJlYWtwb2ludC5saW5lTnVtYmVyKTsKICAgICB9LAogCiAgICAgZXZh
bHVhdGVJblNlbGVjdGVkQ2FsbEZyYW1lOiBmdW5jdGlvbihjb2RlLCBvYmplY3RHcm91cCwgaW5j
bHVkZUNvbW1hbmRMaW5lQVBJLCByZXR1cm5CeVZhbHVlLCBjYWxsYmFjaykKQEAgLTQ4Niw3ICs0
ODksNyBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAg
ICAgICAgICB0aGlzLnNpZGViYXJQYW5lcy5jYWxsc3RhY2suc2V0U3RhdHVzKFdlYkluc3BlY3Rv
ci5VSVN0cmluZygiUGF1c2VkIG9uIGEgWE1MSHR0cFJlcXVlc3QuIikpOwogICAgICAgICAgICAg
fQogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZnVuY3Rpb24gZGlkR2V0U291cmNlTG9j
YXRpb24oc291cmNlRmlsZUlkLCBsaW5lTnVtYmVyKQorICAgICAgICAgICAgZnVuY3Rpb24gZGlk
R2V0U291cmNlTG9jYXRpb24odWlTb3VyY2VDb2RlLCBsaW5lTnVtYmVyKQogICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgIHZhciBleGNlcHRpb24gPSBXZWJJbnNwZWN0b3IuZGVidWdnZXJN
b2RlbC5kZWJ1Z2dlclBhdXNlZERldGFpbHMuZXhjZXB0aW9uOwogICAgICAgICAgICAgICAgIGlm
IChleGNlcHRpb24pIHsKQEAgLTQ5NCw5ICs0OTcsOSBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1Bh
bmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAg
ICAgICAgIH0KIAotICAgICAgICAgICAgICAgIGlmICghc291cmNlRmlsZUlkIHx8ICF0aGlzLl9w
cmVzZW50YXRpb25Nb2RlbC5maW5kQnJlYWtwb2ludChzb3VyY2VGaWxlSWQsIGxpbmVOdW1iZXIp
KQorICAgICAgICAgICAgICAgIGlmICghdWlTb3VyY2VDb2RlIHx8ICF0aGlzLl9wcmVzZW50YXRp
b25Nb2RlbC5maW5kQnJlYWtwb2ludCh1aVNvdXJjZUNvZGUsIGxpbmVOdW1iZXIpKQogICAgICAg
ICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgdGhpcy5zaWRlYmFyUGFuZXMu
anNCcmVha3BvaW50cy5oaWdobGlnaHRCcmVha3BvaW50KHNvdXJjZUZpbGVJZCwgbGluZU51bWJl
cik7CisgICAgICAgICAgICAgICAgdGhpcy5zaWRlYmFyUGFuZXMuanNCcmVha3BvaW50cy5oaWdo
bGlnaHRCcmVha3BvaW50KHVpU291cmNlQ29kZSwgbGluZU51bWJlcik7CiAgICAgICAgICAgICAg
ICAgdGhpcy5zaWRlYmFyUGFuZXMuY2FsbHN0YWNrLnNldFN0YXR1cyhXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoIlBhdXNlZCBvbiBhIEphdmFTY3JpcHQgYnJlYWtwb2ludC4iKSk7CiAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICBjYWxsRnJhbWVzWzBdLnNvdXJjZUxpbmUoZGlkR2V0U291cmNlTG9j
YXRpb24uYmluZCh0aGlzKSk7CkBAIC01NDgsMTMgKzU1MSw2IEBAIFdlYkluc3BlY3Rvci5TY3Jp
cHRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9jdXJyZW50QmFja0ZvcndhcmRJ
bmRleCA9IC0xOwogICAgICAgICB0aGlzLl91cGRhdGVCYWNrQW5kRm9yd2FyZEJ1dHRvbnMoKTsK
IAotICAgICAgICBmb3IgKHZhciBpZCBpbiB0aGlzLl9zb3VyY2VGaWxlSWRUb1NvdXJjZUZyYW1l
KSB7Ci0gICAgICAgICAgICB2YXIgc291cmNlRnJhbWUgPSB0aGlzLl9zb3VyY2VGaWxlSWRUb1Nv
dXJjZUZyYW1lW2lkXTsKLSAgICAgICAgICAgIHNvdXJjZUZyYW1lLnJlbW92ZUV2ZW50TGlzdGVu
ZXIoV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLkV2ZW50cy5Mb2FkZWQsIHRoaXMuX3NvdXJjZUZy
YW1lTG9hZGVkLCB0aGlzKTsKLSAgICAgICAgfQotCi0gICAgICAgIHRoaXMuX3NvdXJjZUZpbGVJ
ZFRvU291cmNlRnJhbWUgPSB7fTsKLQogICAgICAgICB0aGlzLl9yZXNldEZpbGVzU2VsZWN0KCk7
CiAgICAgICAgIGRlbGV0ZSB0aGlzLl9maWxlc1NlbGVjdEVsZW1lbnQuaW5pdGlhbFNlbGVjdGlv
blByb2Nlc3NlZDsKIApAQCAtNTY5LDcgKzU2NSw2IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFu
ZWwucHJvdG90eXBlID0gewogCiAgICAgX3Jlc2V0RmlsZXNTZWxlY3Q6IGZ1bmN0aW9uKCkKICAg
ICB7Ci0gICAgICAgIHRoaXMuX3NvdXJjZUZpbGVJZFRvRmlsZXNTZWxlY3RPcHRpb24gPSB7fTsK
ICAgICAgICAgdGhpcy5fZmlsZXNTZWxlY3RFbGVtZW50LnJlbW92ZUNoaWxkcmVuKCk7CiAgICAg
ICAgIHRoaXMuX2ZpbGVzU2VsZWN0RWxlbWVudC5kb21haW5PcHRpb25zID0ge307CiAgICAgICAg
IHRoaXMuX2ZpbGVzU2VsZWN0RWxlbWVudC5mb2xkZXJPcHRpb25zID0ge307CkBAIC02MDIsMjEg
KzU5NywyMSBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKIAogICAg
IHNob3dBbmNob3JMb2NhdGlvbjogZnVuY3Rpb24oYW5jaG9yKQogICAgIHsKLSAgICAgICAgdGhp
cy5fc2hvd1NvdXJjZUxpbmUoYW5jaG9yLmdldEF0dHJpYnV0ZSgic291cmNlX2ZpbGVfaWQiKSwg
cGFyc2VJbnQoYW5jaG9yLmdldEF0dHJpYnV0ZSgibGluZV9udW1iZXIiKSkpOworICAgICAgICB0
aGlzLl9zaG93U291cmNlTGluZShhbmNob3IudWlTb3VyY2VDb2RlLCBhbmNob3IubGluZU51bWJl
cik7CiAgICAgfSwKIAotICAgIF9zaG93U291cmNlTGluZTogZnVuY3Rpb24oc291cmNlRmlsZUlk
LCBsaW5lTnVtYmVyKQorICAgIF9zaG93U291cmNlTGluZTogZnVuY3Rpb24odWlTb3VyY2VDb2Rl
LCBsaW5lTnVtYmVyKQogICAgIHsKLSAgICAgICAgdmFyIHNvdXJjZUZyYW1lID0gdGhpcy5fc2hv
d1NvdXJjZUZyYW1lQW5kQWRkVG9IaXN0b3J5KHNvdXJjZUZpbGVJZCk7CisgICAgICAgIHZhciBz
b3VyY2VGcmFtZSA9IHRoaXMuX3Nob3dTb3VyY2VGcmFtZUFuZEFkZFRvSGlzdG9yeSh1aVNvdXJj
ZUNvZGUpOwogICAgICAgICBzb3VyY2VGcmFtZS5oaWdobGlnaHRMaW5lKGxpbmVOdW1iZXIpOwog
ICAgIH0sCiAKLSAgICBfc2hvd1NvdXJjZUZyYW1lQW5kQWRkVG9IaXN0b3J5OiBmdW5jdGlvbihz
b3VyY2VGaWxlSWQpCisgICAgX3Nob3dTb3VyY2VGcmFtZUFuZEFkZFRvSGlzdG9yeTogZnVuY3Rp
b24odWlTb3VyY2VDb2RlKQogICAgIHsKLSAgICAgICAgaWYgKCEoc291cmNlRmlsZUlkIGluIHRo
aXMuX3NvdXJjZUZpbGVJZFRvRmlsZXNTZWxlY3RPcHRpb24pKQorICAgICAgICBpZiAoIXVpU291
cmNlQ29kZS5fb3B0aW9uKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIHZhciBzb3Vy
Y2VGcmFtZSA9IHRoaXMuX3Nob3dTb3VyY2VGcmFtZShzb3VyY2VGaWxlSWQpOworICAgICAgICB2
YXIgc291cmNlRnJhbWUgPSB0aGlzLl9zaG93U291cmNlRnJhbWUodWlTb3VyY2VDb2RlKTsKIAog
ICAgICAgICB2YXIgb2xkSW5kZXggPSB0aGlzLl9jdXJyZW50QmFja0ZvcndhcmRJbmRleDsKICAg
ICAgICAgaWYgKG9sZEluZGV4ID49IDApCkBAIC02MjQsMTEgKzYxOSwxMSBAQCBXZWJJbnNwZWN0
b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKIAogICAgICAgICAvLyBDaGVjayBmb3IgYSBw
cmV2aW91cyBlbnRyeSBvZiB0aGUgc2FtZSBvYmplY3QgaW4gX2JhY2tGb3J3YXJkTGlzdC4KICAg
ICAgICAgLy8gSWYgb25lIGlzIGZvdW5kLCByZW1vdmUgaXQuCi0gICAgICAgIHZhciBwcmV2aW91
c0VudHJ5SW5kZXggPSB0aGlzLl9iYWNrRm9yd2FyZExpc3QuaW5kZXhPZihzb3VyY2VGaWxlSWQp
OworICAgICAgICB2YXIgcHJldmlvdXNFbnRyeUluZGV4ID0gdGhpcy5fYmFja0ZvcndhcmRMaXN0
LmluZGV4T2YodWlTb3VyY2VDb2RlKTsKICAgICAgICAgaWYgKHByZXZpb3VzRW50cnlJbmRleCAh
PT0gLTEpCiAgICAgICAgICAgICB0aGlzLl9iYWNrRm9yd2FyZExpc3Quc3BsaWNlKHByZXZpb3Vz
RW50cnlJbmRleCwgMSk7CiAKLSAgICAgICAgdGhpcy5fYmFja0ZvcndhcmRMaXN0LnB1c2goc291
cmNlRmlsZUlkKTsKKyAgICAgICAgdGhpcy5fYmFja0ZvcndhcmRMaXN0LnB1c2godWlTb3VyY2VD
b2RlKTsKICAgICAgICAgdGhpcy5fY3VycmVudEJhY2tGb3J3YXJkSW5kZXggPSB0aGlzLl9iYWNr
Rm9yd2FyZExpc3QubGVuZ3RoIC0gMTsKIAogICAgICAgICB0aGlzLl91cGRhdGVCYWNrQW5kRm9y
d2FyZEJ1dHRvbnMoKTsKQEAgLTYzNiw3OSArNjMxLDY5IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRz
UGFuZWwucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gc291cmNlRnJhbWU7CiAgICAgfSwK
IAotICAgIF9zaG93U291cmNlRnJhbWU6IGZ1bmN0aW9uKHNvdXJjZUZpbGVJZCkKKyAgICBfc2hv
d1NvdXJjZUZyYW1lOiBmdW5jdGlvbih1aVNvdXJjZUNvZGUpCiAgICAgewotICAgICAgICB2YXIg
aW5kZXggPSB0aGlzLl9zb3VyY2VGaWxlSWRUb0ZpbGVzU2VsZWN0T3B0aW9uW3NvdXJjZUZpbGVJ
ZF0uaW5kZXg7Ci0gICAgICAgIHRoaXMuX2ZpbGVzU2VsZWN0RWxlbWVudC5zZWxlY3RlZEluZGV4
ID0gaW5kZXg7CisgICAgICAgIHRoaXMuX2ZpbGVzU2VsZWN0RWxlbWVudC5zZWxlY3RlZEluZGV4
ID0gdWlTb3VyY2VDb2RlLl9vcHRpb24uaW5kZXg7CiAKLSAgICAgICAgdmFyIHNvdXJjZUZyYW1l
ID0gdGhpcy5fc291cmNlRnJhbWVGb3JTb3VyY2VGaWxlSWQoc291cmNlRmlsZUlkKTsKKyAgICAg
ICAgdmFyIHNvdXJjZUZyYW1lID0gdWlTb3VyY2VDb2RlLl9zb3VyY2VGcmFtZSB8fCB0aGlzLl9j
cmVhdGVTb3VyY2VGcmFtZSh1aVNvdXJjZUNvZGUpOwogICAgICAgICB0aGlzLnZpc2libGVWaWV3
ID0gc291cmNlRnJhbWU7CiAKLSAgICAgICAgdmFyIHNvdXJjZUZpbGUgPSB0aGlzLl9wcmVzZW50
YXRpb25Nb2RlbC51aVNvdXJjZUNvZGUoc291cmNlRmlsZUlkKTsKLSAgICAgICAgaWYgKHNvdXJj
ZUZpbGUudXJsKQotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnNldHRpbmdzLmxhc3RWaWV3ZWRT
Y3JpcHRGaWxlLnNldChzb3VyY2VGaWxlLnVybCk7CisgICAgICAgIGlmICh1aVNvdXJjZUNvZGUu
dXJsKQorICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnNldHRpbmdzLmxhc3RWaWV3ZWRTY3JpcHRG
aWxlLnNldCh1aVNvdXJjZUNvZGUudXJsKTsKIAogICAgICAgICByZXR1cm4gc291cmNlRnJhbWU7
CiAgICAgfSwKIAotICAgIF9zb3VyY2VGcmFtZUZvclNvdXJjZUZpbGVJZDogZnVuY3Rpb24oc291
cmNlRmlsZUlkKQotICAgIHsKLSAgICAgICAgdmFyIHNvdXJjZUZyYW1lID0gdGhpcy5fc291cmNl
RmlsZUlkVG9Tb3VyY2VGcmFtZVtzb3VyY2VGaWxlSWRdOwotICAgICAgICByZXR1cm4gc291cmNl
RnJhbWUgfHwgdGhpcy5fY3JlYXRlU291cmNlRnJhbWUoc291cmNlRmlsZUlkKTsKLSAgICB9LAot
Ci0gICAgX2NyZWF0ZVNvdXJjZUZyYW1lOiBmdW5jdGlvbihzb3VyY2VGaWxlSWQpCisgICAgX2Ny
ZWF0ZVNvdXJjZUZyYW1lOiBmdW5jdGlvbih1aVNvdXJjZUNvZGUpCiAgICAgewotICAgICAgICB2
YXIgc291cmNlRmlsZSA9IHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVsLnVpU291cmNlQ29kZShzb3Vy
Y2VGaWxlSWQpOwotICAgICAgICB2YXIgZGVsZWdhdGUgPSBuZXcgV2ViSW5zcGVjdG9yLlNvdXJj
ZUZyYW1lRGVsZWdhdGVGb3JTY3JpcHRzUGFuZWwodGhpcy5fcHJlc2VudGF0aW9uTW9kZWwsIHNv
dXJjZUZpbGVJZCk7Ci0gICAgICAgIHZhciBzb3VyY2VGcmFtZSA9IG5ldyBXZWJJbnNwZWN0b3Iu
U291cmNlRnJhbWUoZGVsZWdhdGUsIHNvdXJjZUZpbGUudXJsKTsKKyAgICAgICAgdmFyIGRlbGVn
YXRlID0gbmV3IFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZURlbGVnYXRlRm9yU2NyaXB0c1BhbmVs
KHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVsLCB1aVNvdXJjZUNvZGUpOworICAgICAgICB2YXIgc291
cmNlRnJhbWUgPSBuZXcgV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lKGRlbGVnYXRlLCB1aVNvdXJj
ZUNvZGUudXJsKTsKICAgICAgICAgdGhpcy5hZGRDaGlsZFZpZXcoc291cmNlRnJhbWUpOwotICAg
ICAgICBzb3VyY2VGcmFtZS5fc291cmNlRmlsZUlkID0gc291cmNlRmlsZUlkOworICAgICAgICBz
b3VyY2VGcmFtZS5fdWlTb3VyY2VDb2RlID0gdWlTb3VyY2VDb2RlOwogICAgICAgICBzb3VyY2VG
cmFtZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5FdmVudHMuTG9h
ZGVkLCB0aGlzLl9zb3VyY2VGcmFtZUxvYWRlZCwgdGhpcyk7Ci0gICAgICAgIHRoaXMuX3NvdXJj
ZUZpbGVJZFRvU291cmNlRnJhbWVbc291cmNlRmlsZUlkXSA9IHNvdXJjZUZyYW1lOworICAgICAg
ICB1aVNvdXJjZUNvZGUuX3NvdXJjZUZyYW1lID0gc291cmNlRnJhbWU7CiAgICAgICAgIHJldHVy
biBzb3VyY2VGcmFtZTsKICAgICB9LAogCi0gICAgX3JlbW92ZVNvdXJjZUZyYW1lOiBmdW5jdGlv
bihzb3VyY2VGaWxlSWQpCisgICAgX3JlbW92ZVNvdXJjZUZyYW1lOiBmdW5jdGlvbih1aVNvdXJj
ZUNvZGUpCiAgICAgewotICAgICAgICB2YXIgc291cmNlRnJhbWUgPSB0aGlzLl9zb3VyY2VGaWxl
SWRUb1NvdXJjZUZyYW1lW3NvdXJjZUZpbGVJZF07CisgICAgICAgIHZhciBzb3VyY2VGcmFtZSA9
IHVpU291cmNlQ29kZS5fc291cmNlRnJhbWU7CiAgICAgICAgIGlmICghc291cmNlRnJhbWUpCiAg
ICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGRlbGV0ZSB0aGlzLl9zb3VyY2VGaWxlSWRUb1Nv
dXJjZUZyYW1lW3NvdXJjZUZpbGVJZF07CisgICAgICAgIGRlbGV0ZSB1aVNvdXJjZUNvZGUuX3Nv
dXJjZUZyYW1lOwogICAgICAgICB0aGlzLnJlbW92ZUNoaWxkVmlldyhzb3VyY2VGcmFtZSk7CiAg
ICAgICAgIHNvdXJjZUZyYW1lLnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlNvdXJj
ZUZyYW1lLkV2ZW50cy5Mb2FkZWQsIHRoaXMuX3NvdXJjZUZyYW1lTG9hZGVkLCB0aGlzKTsKICAg
ICB9LAogCi0gICAgX3NvdXJjZUZpbGVSZXBsYWNlZDogZnVuY3Rpb24oZXZlbnQpCisgICAgX3Vp
U291cmNlQ29kZVJlcGxhY2VkOiBmdW5jdGlvbihldmVudCkKICAgICB7Ci0gICAgICAgIHZhciBv
bGRTb3VyY2VGaWxlID0gZXZlbnQuZGF0YS5vbGRTb3VyY2VDb2RlOwotICAgICAgICB2YXIgbmV3
U291cmNlRmlsZSA9IGV2ZW50LmRhdGEuc291cmNlQ29kZTsKKyAgICAgICAgdmFyIG9sZFVJU291
cmNlQ29kZSA9IGV2ZW50LmRhdGEub2xkU291cmNlQ29kZTsKKyAgICAgICAgdmFyIHVpU291cmNl
Q29kZSA9IGV2ZW50LmRhdGEuc291cmNlQ29kZTsKIAogICAgICAgICAvLyBSZS1iaW5kIGZpbGUg
c2VsZWN0IG9wdGlvbiBmcm9tIG9sZCBzb3VyY2UgZmlsZSB0byBuZXcgb25lLgotICAgICAgICB2
YXIgb3B0aW9uID0gdGhpcy5fc291cmNlRmlsZUlkVG9GaWxlc1NlbGVjdE9wdGlvbltvbGRTb3Vy
Y2VGaWxlLmlkXTsKLSAgICAgICAgZGVsZXRlIHRoaXMuX3NvdXJjZUZpbGVJZFRvRmlsZXNTZWxl
Y3RPcHRpb25bb2xkU291cmNlRmlsZS5pZF07Ci0gICAgICAgIG9wdGlvbi5zb3VyY2VGaWxlSWQg
PSBuZXdTb3VyY2VGaWxlLmlkOwotICAgICAgICB0aGlzLl9zb3VyY2VGaWxlSWRUb0ZpbGVzU2Vs
ZWN0T3B0aW9uW25ld1NvdXJjZUZpbGUuaWRdID0gb3B0aW9uOworICAgICAgICB2YXIgb3B0aW9u
ID0gb2xkVUlTb3VyY2VDb2RlLl9vcHRpb247CisgICAgICAgIGRlbGV0ZSBvbGRVSVNvdXJjZUNv
ZGUuX29wdGlvbjsKKyAgICAgICAgb3B0aW9uLl91aVNvdXJjZUNvZGUgPSB1aVNvdXJjZUNvZGU7
CisgICAgICAgIHVpU291cmNlQ29kZS5fb3B0aW9uID0gb3B0aW9uOwogCiAgICAgICAgIC8vIFJl
bW92ZSBvbGQgc291cmNlIGZyYW1lIGFuZCBjcmVhdGUgbmV3IG9uZSBpZiBuZWVkZWQuCi0gICAg
ICAgIHRoaXMuX3JlbW92ZVNvdXJjZUZyYW1lKG9sZFNvdXJjZUZpbGUuaWQpOworICAgICAgICB0
aGlzLl9yZW1vdmVTb3VyY2VGcmFtZShvbGRVSVNvdXJjZUNvZGUpOwogICAgICAgICBpZiAob3B0
aW9uID09PSB0aGlzLl9maWxlc1NlbGVjdEVsZW1lbnRbdGhpcy5fZmlsZXNTZWxlY3RFbGVtZW50
LnNlbGVjdGVkSW5kZXhdKQotICAgICAgICAgICAgdGhpcy5fc2hvd1NvdXJjZUZyYW1lKG5ld1Nv
dXJjZUZpbGUuaWQpOworICAgICAgICAgICAgdGhpcy5fc2hvd1NvdXJjZUZyYW1lKHVpU291cmNl
Q29kZSk7CiAgICAgfSwKIAogICAgIF9zb3VyY2VGcmFtZUxvYWRlZDogZnVuY3Rpb24oZXZlbnQp
CiAgICAgewogICAgICAgICB2YXIgc291cmNlRnJhbWUgPSBldmVudC50YXJnZXQ7Ci0gICAgICAg
IHZhciBzb3VyY2VGaWxlSWQgPSBzb3VyY2VGcmFtZS5fc291cmNlRmlsZUlkOwotICAgICAgICB2
YXIgc291cmNlRmlsZSA9IHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVsLnVpU291cmNlQ29kZShzb3Vy
Y2VGaWxlSWQpOworICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gc291cmNlRnJhbWUuX3VpU291
cmNlQ29kZTsKIAotICAgICAgICB2YXIgbWVzc2FnZXMgPSBzb3VyY2VGaWxlLm1lc3NhZ2VzOwor
ICAgICAgICB2YXIgbWVzc2FnZXMgPSB1aVNvdXJjZUNvZGUubWVzc2FnZXM7CiAgICAgICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgbWVzc2FnZXMubGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAgIHZh
ciBtZXNzYWdlID0gbWVzc2FnZXNbaV07CiAgICAgICAgICAgICBzb3VyY2VGcmFtZS5hZGRNZXNz
YWdlVG9Tb3VyY2UobWVzc2FnZS5saW5lTnVtYmVyLCBtZXNzYWdlLm9yaWdpbmFsTWVzc2FnZSk7
CiAgICAgICAgIH0KIAotICAgICAgICB2YXIgYnJlYWtwb2ludHMgPSB0aGlzLl9wcmVzZW50YXRp
b25Nb2RlbC5icmVha3BvaW50c0ZvclNvdXJjZUZpbGVJZChzb3VyY2VGaWxlSWQpOworICAgICAg
ICB2YXIgYnJlYWtwb2ludHMgPSB0aGlzLl9wcmVzZW50YXRpb25Nb2RlbC5icmVha3BvaW50c0Zv
clVJU291cmNlQ29kZSh1aVNvdXJjZUNvZGUpOwogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8
IGJyZWFrcG9pbnRzLmxlbmd0aDsgKytpKSB7CiAgICAgICAgICAgICB2YXIgYnJlYWtwb2ludCA9
IGJyZWFrcG9pbnRzW2ldOwogICAgICAgICAgICAgc291cmNlRnJhbWUuYWRkQnJlYWtwb2ludChi
cmVha3BvaW50LmxpbmVOdW1iZXIsIGJyZWFrcG9pbnQucmVzb2x2ZWQsIGJyZWFrcG9pbnQuY29u
ZGl0aW9uLCBicmVha3BvaW50LmVuYWJsZWQpOwpAQCAtNzM1LDE3ICs3MjAsMTYgQEAgV2ViSW5z
cGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuc2lkZWJhclBh
bmVzLndhdGNoRXhwcmVzc2lvbnMucmVmcmVzaEV4cHJlc3Npb25zKCk7CiAgICAgICAgIHRoaXMu
c2lkZWJhclBhbmVzLmNhbGxzdGFjay5zZWxlY3RlZENhbGxGcmFtZSA9IHRoaXMuX3ByZXNlbnRh
dGlvbk1vZGVsLnNlbGVjdGVkQ2FsbEZyYW1lOwogCi0gICAgICAgIGZ1bmN0aW9uIGRpZEdldFNv
dXJjZUxvY2F0aW9uKHNvdXJjZUZpbGVJZCwgbGluZU51bWJlcikKKyAgICAgICAgZnVuY3Rpb24g
ZGlkR2V0U291cmNlTG9jYXRpb24odWlTb3VyY2VDb2RlLCBsaW5lTnVtYmVyKQogICAgICAgICB7
Ci0gICAgICAgICAgICBpZiAoIXNvdXJjZUZpbGVJZCkKKyAgICAgICAgICAgIGlmICghdWlTb3Vy
Y2VDb2RlKQogICAgICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICAgICAgaWYgKCEoc291
cmNlRmlsZUlkIGluIHRoaXMuX3NvdXJjZUZpbGVJZFRvRmlsZXNTZWxlY3RPcHRpb24pKSB7Cisg
ICAgICAgICAgICBpZiAoIXVpU291cmNlQ29kZS5fb3B0aW9uKSB7CiAgICAgICAgICAgICAgICAg
Ly8gQW5vbnltb3VzIHNjcmlwdHMgYXJlIG5vdCBhZGRlZCB0byBmaWxlcyBzZWxlY3QgYnkgZGVm
YXVsdC4KLSAgICAgICAgICAgICAgICB2YXIgc291cmNlRmlsZSA9IHRoaXMuX3ByZXNlbnRhdGlv
bk1vZGVsLnVpU291cmNlQ29kZShzb3VyY2VGaWxlSWQpOwotICAgICAgICAgICAgICAgIHRoaXMu
X2FkZE9wdGlvblRvRmlsZXNTZWxlY3Qoc291cmNlRmlsZSk7CisgICAgICAgICAgICAgICAgdGhp
cy5fYWRkT3B0aW9uVG9GaWxlc1NlbGVjdCh1aVNvdXJjZUNvZGUpOwogICAgICAgICAgICAgfQot
ICAgICAgICAgICAgdmFyIHNvdXJjZUZyYW1lID0gdGhpcy5fc2hvd1NvdXJjZUZyYW1lQW5kQWRk
VG9IaXN0b3J5KHNvdXJjZUZpbGVJZCk7CisgICAgICAgICAgICB2YXIgc291cmNlRnJhbWUgPSB0
aGlzLl9zaG93U291cmNlRnJhbWVBbmRBZGRUb0hpc3RvcnkodWlTb3VyY2VDb2RlKTsKICAgICAg
ICAgICAgIHNvdXJjZUZyYW1lLnNldEV4ZWN1dGlvbkxpbmUobGluZU51bWJlcik7CiAgICAgICAg
ICAgICB0aGlzLl9leGVjdXRpb25Tb3VyY2VGcmFtZSA9IHNvdXJjZUZyYW1lOwogICAgICAgICB9
CkBAIC03NTcsOCArNzQxLDggQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUg
PSB7CiAgICAgICAgIGlmICh0aGlzLl9maWxlc1NlbGVjdEVsZW1lbnQuc2VsZWN0ZWRJbmRleCA9
PT0gLTEpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgdmFyIHNvdXJjZUZpbGVJZCA9
IHRoaXMuX2ZpbGVzU2VsZWN0RWxlbWVudFt0aGlzLl9maWxlc1NlbGVjdEVsZW1lbnQuc2VsZWN0
ZWRJbmRleF0uX3NvdXJjZUZpbGVJZDsKLSAgICAgICAgdGhpcy5fc2hvd1NvdXJjZUZyYW1lQW5k
QWRkVG9IaXN0b3J5KHNvdXJjZUZpbGVJZCk7CisgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSB0
aGlzLl9maWxlc1NlbGVjdEVsZW1lbnRbdGhpcy5fZmlsZXNTZWxlY3RFbGVtZW50LnNlbGVjdGVk
SW5kZXhdLl91aVNvdXJjZUNvZGU7CisgICAgICAgIHRoaXMuX3Nob3dTb3VyY2VGcmFtZUFuZEFk
ZFRvSGlzdG9yeSh1aVNvdXJjZUNvZGUpOwogICAgIH0sCiAKICAgICBfc3RhcnRTaWRlYmFyUmVz
aXplRHJhZzogZnVuY3Rpb24oZXZlbnQpCkBAIC0xMTQwLDExICsxMTI0LDExIEBAIFdlYkluc3Bl
Y3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICBXZWJJbnNwZWN0b3Iuc2Vh
cmNoQ29udHJvbGxlci51cGRhdGVDdXJyZW50TWF0Y2hJbmRleCh0aGlzLl9zZWFyY2hWaWV3LmN1
cnJlbnRTZWFyY2hSZXN1bHRJbmRleCArIDEsIHRoaXMpOwogICAgIH0sCiAKLSAgICBfdG9nZ2xl
Rm9ybWF0U291cmNlRmlsZXM6IGZ1bmN0aW9uKCkKKyAgICBfdG9nZ2xlRm9ybWF0U291cmNlOiBm
dW5jdGlvbigpCiAgICAgewogICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLnNjcmlwdHMucmVz
ZXQoKTsKLSAgICAgICAgdGhpcy5fdG9nZ2xlRm9ybWF0U291cmNlRmlsZXNCdXR0b24udG9nZ2xl
ZCA9ICF0aGlzLl90b2dnbGVGb3JtYXRTb3VyY2VGaWxlc0J1dHRvbi50b2dnbGVkOwotICAgICAg
ICB0aGlzLl9wcmVzZW50YXRpb25Nb2RlbC5zZXRGb3JtYXRTb3VyY2VGaWxlcyh0aGlzLl90b2dn
bGVGb3JtYXRTb3VyY2VGaWxlc0J1dHRvbi50b2dnbGVkKTsKKyAgICAgICAgdGhpcy5fdG9nZ2xl
Rm9ybWF0U291cmNlQnV0dG9uLnRvZ2dsZWQgPSAhdGhpcy5fdG9nZ2xlRm9ybWF0U291cmNlQnV0
dG9uLnRvZ2dsZWQ7CisgICAgICAgIHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVsLnNldEZvcm1hdFNv
dXJjZSh0aGlzLl90b2dnbGVGb3JtYXRTb3VyY2VCdXR0b24udG9nZ2xlZCk7CiAgICAgfSwKIAog
ICAgIF9jb250ZXh0TWVudTogZnVuY3Rpb24oZXZlbnQpCkBAIC0xMTc3LDE4ICsxMTYxLDE4IEBA
IFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogV2ViSW5zcGVjdG9yLlNj
cmlwdHNQYW5lbC5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLlBhbmVsLnByb3Rv
dHlwZTsKIAogCi1XZWJJbnNwZWN0b3IuU291cmNlRnJhbWVEZWxlZ2F0ZUZvclNjcmlwdHNQYW5l
bCA9IGZ1bmN0aW9uKG1vZGVsLCBzb3VyY2VGaWxlSWQpCitXZWJJbnNwZWN0b3IuU291cmNlRnJh
bWVEZWxlZ2F0ZUZvclNjcmlwdHNQYW5lbCA9IGZ1bmN0aW9uKG1vZGVsLCB1aVNvdXJjZUNvZGUp
CiB7CiAgICAgV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lRGVsZWdhdGUuY2FsbCh0aGlzKTsKICAg
ICB0aGlzLl9tb2RlbCA9IG1vZGVsOwotICAgIHRoaXMuX3NvdXJjZUZpbGVJZCA9IHNvdXJjZUZp
bGVJZDsKKyAgICB0aGlzLl91aVNvdXJjZUNvZGUgPSB1aVNvdXJjZUNvZGU7CiAgICAgdGhpcy5f
cG9wb3Zlck9iamVjdEdyb3VwID0gInBvcG92ZXIiOwogfQogCiBXZWJJbnNwZWN0b3IuU291cmNl
RnJhbWVEZWxlZ2F0ZUZvclNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgcmVxdWVzdENv
bnRlbnQ6IGZ1bmN0aW9uKGNhbGxiYWNrKQogICAgIHsKLSAgICAgICAgdGhpcy5fbW9kZWwudWlT
b3VyY2VDb2RlKHRoaXMuX3NvdXJjZUZpbGVJZCkucmVxdWVzdENvbnRlbnQoY2FsbGJhY2spOwor
ICAgICAgICB0aGlzLl91aVNvdXJjZUNvZGUucmVxdWVzdENvbnRlbnQoY2FsbGJhY2spOwogICAg
IH0sCiAKICAgICBkZWJ1Z2dpbmdTdXBwb3J0ZWQ6IGZ1bmN0aW9uKCkKQEAgLTExOTgsNyArMTE4
Miw3IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZURlbGVnYXRlRm9yU2NyaXB0c1BhbmVsLnBy
b3RvdHlwZSA9IHsKIAogICAgIHNldEJyZWFrcG9pbnQ6IGZ1bmN0aW9uKGxpbmVOdW1iZXIsIGNv
bmRpdGlvbiwgZW5hYmxlZCkKICAgICB7Ci0gICAgICAgIHRoaXMuX21vZGVsLnNldEJyZWFrcG9p
bnQodGhpcy5fc291cmNlRmlsZUlkLCBsaW5lTnVtYmVyLCBjb25kaXRpb24sIGVuYWJsZWQpOwor
ICAgICAgICB0aGlzLl9tb2RlbC5zZXRCcmVha3BvaW50KHRoaXMuX3VpU291cmNlQ29kZSwgbGlu
ZU51bWJlciwgY29uZGl0aW9uLCBlbmFibGVkKTsKIAogICAgICAgICBpZiAoIVdlYkluc3BlY3Rv
ci5wYW5lbHMuc2NyaXB0cy5icmVha3BvaW50c0FjdGl2YXRlZCkKICAgICAgICAgICAgIFdlYklu
c3BlY3Rvci5wYW5lbHMuc2NyaXB0cy50b2dnbGVCcmVha3BvaW50c0NsaWNrZWQoKTsKQEAgLTEy
MDYsMzcgKzExOTAsMzcgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lRGVsZWdhdGVGb3JTY3Jp
cHRzUGFuZWwucHJvdG90eXBlID0gewogCiAgICAgdXBkYXRlQnJlYWtwb2ludDogZnVuY3Rpb24o
bGluZU51bWJlciwgY29uZGl0aW9uLCBlbmFibGVkKQogICAgIHsKLSAgICAgICAgdGhpcy5fbW9k
ZWwudXBkYXRlQnJlYWtwb2ludCh0aGlzLl9zb3VyY2VGaWxlSWQsIGxpbmVOdW1iZXIsIGNvbmRp
dGlvbiwgZW5hYmxlZCk7CisgICAgICAgIHRoaXMuX21vZGVsLnVwZGF0ZUJyZWFrcG9pbnQodGhp
cy5fdWlTb3VyY2VDb2RlLCBsaW5lTnVtYmVyLCBjb25kaXRpb24sIGVuYWJsZWQpOwogICAgIH0s
CiAKICAgICByZW1vdmVCcmVha3BvaW50OiBmdW5jdGlvbihsaW5lTnVtYmVyKQogICAgIHsKLSAg
ICAgICAgdGhpcy5fbW9kZWwucmVtb3ZlQnJlYWtwb2ludCh0aGlzLl9zb3VyY2VGaWxlSWQsIGxp
bmVOdW1iZXIpOworICAgICAgICB0aGlzLl9tb2RlbC5yZW1vdmVCcmVha3BvaW50KHRoaXMuX3Vp
U291cmNlQ29kZSwgbGluZU51bWJlcik7CiAgICAgfSwKIAogICAgIGZpbmRCcmVha3BvaW50OiBm
dW5jdGlvbihsaW5lTnVtYmVyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX21vZGVsLmZp
bmRCcmVha3BvaW50KHRoaXMuX3NvdXJjZUZpbGVJZCwgbGluZU51bWJlcik7CisgICAgICAgIHJl
dHVybiB0aGlzLl9tb2RlbC5maW5kQnJlYWtwb2ludCh0aGlzLl91aVNvdXJjZUNvZGUsIGxpbmVO
dW1iZXIpOwogICAgIH0sCiAKICAgICBjb250aW51ZVRvTGluZTogZnVuY3Rpb24obGluZU51bWJl
cikKICAgICB7Ci0gICAgICAgIHRoaXMuX21vZGVsLmNvbnRpbnVlVG9MaW5lKHRoaXMuX3NvdXJj
ZUZpbGVJZCwgbGluZU51bWJlcik7CisgICAgICAgIHRoaXMuX21vZGVsLmNvbnRpbnVlVG9MaW5l
KHRoaXMuX3VpU291cmNlQ29kZSwgbGluZU51bWJlcik7CiAgICAgfSwKIAogICAgIGNhbkVkaXRT
Y3JpcHRTb3VyY2U6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9tb2Rl
bC5jYW5FZGl0U2NyaXB0U291cmNlKHRoaXMuX3NvdXJjZUZpbGVJZCk7CisgICAgICAgIHJldHVy
biB0aGlzLl9tb2RlbC5jYW5FZGl0U2NyaXB0U291cmNlKHRoaXMuX3VpU291cmNlQ29kZSk7CiAg
ICAgfSwKIAogICAgIHNldFNjcmlwdFNvdXJjZTogZnVuY3Rpb24odGV4dCwgY2FsbGJhY2spCiAg
ICAgewotICAgICAgICB0aGlzLl9tb2RlbC5zZXRTY3JpcHRTb3VyY2UodGhpcy5fc291cmNlRmls
ZUlkLCB0ZXh0LCBjYWxsYmFjayk7CisgICAgICAgIHRoaXMuX21vZGVsLnNldFNjcmlwdFNvdXJj
ZSh0aGlzLl91aVNvdXJjZUNvZGUsIHRleHQsIGNhbGxiYWNrKTsKICAgICB9LAogCiAgICAgc2V0
U2NyaXB0U291cmNlSXNCZWluZ0VkaXRlZDogZnVuY3Rpb24oaW5FZGl0TW9kZSkKICAgICB7Ci0g
ICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbHMuc2NyaXB0cy5zZXRTY3JpcHRTb3VyY2VJc0JlaW5n
RWRpdGVkKHRoaXMuX3NvdXJjZUZpbGVJZCwgaW5FZGl0TW9kZSk7CisgICAgICAgIFdlYkluc3Bl
Y3Rvci5wYW5lbHMuc2NyaXB0cy5zZXRTY3JpcHRTb3VyY2VJc0JlaW5nRWRpdGVkKHRoaXMuX3Vp
U291cmNlQ29kZSwgaW5FZGl0TW9kZSk7CiAgICAgfSwKIAogICAgIGRlYnVnZ2VyUGF1c2VkOiBm
dW5jdGlvbigpCkBAIC0xMjU2LDggKzEyNDAsNyBAQCBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWVE
ZWxlZ2F0ZUZvclNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAKICAgICBzdWdnZXN0ZWRGaWxl
TmFtZTogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgdmFyIHNvdXJjZUZpbGUgPSB0aGlzLl9t
b2RlbC51aVNvdXJjZUNvZGUodGhpcy5fc291cmNlRmlsZUlkKTsKLSAgICAgICAgdmFyIG5hbWVz
ID0gV2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzLl9mb2xkZXJBbmREaXNwbGF5TmFtZUZvclNj
cmlwdFVSTChzb3VyY2VGaWxlLnVybCk7CisgICAgICAgIHZhciBuYW1lcyA9IFdlYkluc3BlY3Rv
ci5wYW5lbHMuc2NyaXB0cy5fZm9sZGVyQW5kRGlzcGxheU5hbWVGb3JTY3JpcHRVUkwodGhpcy5f
dWlTb3VyY2VDb2RlLnVybCk7CiAgICAgICAgIHJldHVybiBuYW1lcy5kaXNwbGF5TmFtZSB8fCAi
dW50aXRsZWQuanMiOwogICAgIH0KIH0K
</data>
<flag name="review"
          id="101870"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>