<?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>99989</bug_id>
          
          <creation_ts>2012-10-22 06:16:02 -0700</creation_ts>
          <short_desc>Web Inspector: Treat dynamic anonymous scripts as other anonymous and fix anonymous script editing and breakpoints.</short_desc>
          <delta_ts>2012-10-22 09:26:38 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Vsevolod Vlasov">vsevik</reporter>
          <assigned_to name="Vsevolod Vlasov">vsevik</assigned_to>
          <cc>apavlov</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>vsevik</cc>
    
    <cc>web-inspector-bugs</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>747480</commentid>
    <comment_count>0</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-10-22 06:16:02 -0700</bug_when>
    <thetext>Patch to follow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747484</commentid>
    <comment_count>1</comment_count>
      <attachid>169893</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-10-22 06:28:07 -0700</bug_when>
    <thetext>Created attachment 169893
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747485</commentid>
    <comment_count>2</comment_count>
      <attachid>169894</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-10-22 06:31:33 -0700</bug_when>
    <thetext>Created attachment 169894
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747606</commentid>
    <comment_count>3</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-10-22 09:26:38 -0700</bug_when>
    <thetext>Committed r132078: &lt;http://trac.webkit.org/changeset/132078&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169893</attachid>
            <date>2012-10-22 06:28:07 -0700</date>
            <delta_ts>2012-10-22 06:31:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99989-20121022172645.patch</filename>
            <type>text/plain</type>
            <size>48081</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyMDMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmRkYmUxYTlkMDIzZDQy
MjA3NmQwNTJjZTIyNGIyMjcwOGM2NTEyMy4uOTE3ZmU2ZTg1MTI3MTRkNzFmMDc3YzQzOWZmZjBm
YTEyM2E2MDJlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTEwLTIyICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFRyZWF0IGR5bmFtaWMgYW5vbnltb3VzIHNjcmlwdHMgYXMgb3RoZXIgYW5vbnltb3VzIGFu
ZCBmaXggYW5vbnltb3VzIHNjcmlwdCBlZGl0aW5nIGFuZCBicmVha3BvaW50cy4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk5OTg5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRHluYW1pYyBhbm9ueW1vdXMg
c2NyaXB0cyBhcmUgbm93IG1hcHBlZCB0byBhbm9ueW1vdXMgdGVtcG9yYXJ5IHVpU291cmNlQ29k
ZXMuCisgICAgICAgIFJlc291cmNlU2NyaXB0TWFwcGluZyBub3cgc3VwcG9ydHMgdHdvIHR5cGVz
IG9mIHRlbXBvcmFyeSB1aVNvdXJjZUNvZGVzOgorICAgICAgICAgLSBvcmlnaW5hbCB1aVNvdXJj
ZUNvZGVzIHJlcHJlc2VudCBzY3JpcHRzIHdoaWxlIG1haW4gdWlTb3VyY2VDb2RlcyBhcmUgZGl2
ZXJnZWQ7CisgICAgICAgICAtIHRlbXBvcmFyeSB1aVNvdXJjZUNvZGVzIHJlcHJlc2VudCBzY3Jp
cHRzIGZvciB3aGljaCByZXNvdXJjZXMgYXJlIG5vdCB5ZXQgbG9hZGVkLgorCisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9CcmVha3BvaW50TWFuYWdlci5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5CcmVha3BvaW50TWFuYWdlci5icmVha3BvaW50U3RvcmFnZUlkKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5CcmVha3BvaW50TWFuYWdlci5TdG9yYWdlLnByb3RvdHlwZS5fdXBkYXRl
QnJlYWtwb2ludCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrVUlTb3Vy
Y2VDb2RlUHJvdmlkZXIuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmV0d29ya1VJU291cmNl
Q29kZVByb3ZpZGVyLnByb3RvdHlwZS5fcGFyc2VkU2NyaXB0U291cmNlKToKKyAgICAgICAgKiBp
bnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlU2NyaXB0TWFwcGluZy5qczoKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5SZXNvdXJjZVNjcmlwdE1hcHBpbmcpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlJlc291cmNlU2NyaXB0TWFwcGluZy5wcm90b3R5cGUucmF3TG9jYXRpb25Ub1VJTG9jYXRpb24p
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlU2NyaXB0TWFwcGluZy5wcm90b3R5cGUu
X2hhc01lcmdlZFRvVk0pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlU2NyaXB0TWFw
cGluZy5wcm90b3R5cGUuYWRkU2NyaXB0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJj
ZVNjcmlwdE1hcHBpbmcucHJvdG90eXBlLl9kZWxldGVPcmlnaW5hbFVJU291cmNlQ29kZUZvclNj
cmlwdHMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlU2NyaXB0TWFwcGluZy5wcm90
b3R5cGUuX2RlbGV0ZVRlbXBvcmFyeVVJU291cmNlQ29kZUZvclNjcmlwdHMpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlJlc291cmNlU2NyaXB0TWFwcGluZy5wcm90b3R5cGUuX2JpbmRVSVNvdXJj
ZUNvZGVUb1NjcmlwdHMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlU2NyaXB0TWFw
cGluZy5wcm90b3R5cGUuX2NyZWF0ZVVJU291cmNlQ29kZSk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuUmVzb3VyY2VTY3JpcHRNYXBwaW5nLnByb3RvdHlwZS5fZ2V0T3JDcmVhdGVUZW1wb3JhcnlV
SVNvdXJjZUNvZGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlU2NyaXB0TWFwcGlu
Zy5wcm90b3R5cGUuX2dldE9yQ3JlYXRlT3JpZ2luYWxVSVNvdXJjZUNvZGUpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlJlc291cmNlU2NyaXB0TWFwcGluZy5wcm90b3R5cGUuX3VpU291cmNlQ29k
ZUFkZGVkVG9Xb3Jrc3BhY2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlU2NyaXB0
TWFwcGluZy5wcm90b3R5cGUuX3NjcmlwdHNGb3JVSVNvdXJjZUNvZGUuZ2V0IGlmKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVNjcmlwdE1hcHBpbmcucHJvdG90eXBlLl9yZXNldCk6
CisKIDIwMTItMTAtMjEgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFBhZ2UgcG9wdXA6IEZpeCBjcmFzaCBieSBldmVudHMgYWZ0ZXIgY2xvc2luZwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9CcmVha3BvaW50TWFuYWdl
ci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQnJlYWtwb2ludE1hbmFn
ZXIuanMKaW5kZXggMWQ5ZDNlMjg2ZWI4YzAxZjBkMzc2ODZkNDczOTNkYWQzOWIwN2ZiNy4uNzA5
Y2YxMTkzZDM4OWNhMGViMWQ5YTNjMzdlOWIxMDE3OGUwOTkzYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9CcmVha3BvaW50TWFuYWdlci5qcworKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnRNYW5hZ2VyLmpzCkBA
IC02MCw2ICs2MCw4IEBAIFdlYkluc3BlY3Rvci5CcmVha3BvaW50TWFuYWdlci5FdmVudHMgPSB7
CiAKIFdlYkluc3BlY3Rvci5CcmVha3BvaW50TWFuYWdlci5icmVha3BvaW50U3RvcmFnZUlkID0g
ZnVuY3Rpb24odWlTb3VyY2VDb2RlKQogeworICAgIGlmICh1aVNvdXJjZUNvZGUuaXNUZW1wb3Jh
cnkpCisgICAgICAgIHJldHVybiAiIjsKICAgICByZXR1cm4gdWlTb3VyY2VDb2RlLmZvcm1hdHRl
ZCgpID8gImRlb2JmdXNjYXRlZDoiICsgdWlTb3VyY2VDb2RlLnVybCA6IHVpU291cmNlQ29kZS51
cmw7CiB9CiAKQEAgLTU3NSw3ICs1NzcsNyBAQCBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludE1hbmFn
ZXIuU3RvcmFnZS5wcm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgX3VwZGF0ZUJyZWFrcG9pbnQ6
IGZ1bmN0aW9uKGJyZWFrcG9pbnQpCiAgICAgewotICAgICAgICBpZiAodGhpcy5fbXV0ZWQpCisg
ICAgICAgIGlmICh0aGlzLl9tdXRlZCB8fCAhYnJlYWtwb2ludC5fYnJlYWtwb2ludFN0b3JhZ2VJ
ZCgpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB0aGlzLl9icmVha3BvaW50c1ticmVh
a3BvaW50Ll9icmVha3BvaW50U3RvcmFnZUlkKCldID0gbmV3IFdlYkluc3BlY3Rvci5CcmVha3Bv
aW50TWFuYWdlci5TdG9yYWdlLkl0ZW0oYnJlYWtwb2ludCk7CiAgICAgICAgIHRoaXMuX3NhdmUo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29y
a1VJU291cmNlQ29kZVByb3ZpZGVyLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9OZXR3b3JrVUlTb3VyY2VDb2RlUHJvdmlkZXIuanMKaW5kZXggYzMzMDBhYTBmNjU2YTM0
OTc3ZmVmNmI3NzVkN2FiNDBmMjRmZjA4OS4uZjZlODQzOGVlYzA4ZGU0YmRjNWYxYzNiN2Q0YjQ2
Nzg3N2ZiZGE3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9OZXR3b3JrVUlTb3VyY2VDb2RlUHJvdmlkZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrVUlTb3VyY2VDb2RlUHJvdmlkZXIuanMKQEAgLTcyLDEz
ICs3Miw5IEBAIFdlYkluc3BlY3Rvci5OZXR3b3JrVUlTb3VyY2VDb2RlUHJvdmlkZXIucHJvdG90
eXBlID0gewogICAgICAgICAvLyBPbmx5IGFkZCB1aVNvdXJjZUNvZGVzIGZvcgogICAgICAgICAv
LyAtIGNvbnRlbnQgc2NyaXB0czsKICAgICAgICAgLy8gLSBzY3JpcHRzIHdpdGggZXhwbGljaXQg
c291cmNlVVJMIGNvbW1lbnQ7Ci0gICAgICAgIC8vIC0gZHluYW1pYyBhbm9ueW1vdXMgc2NyaXB0
cyAoc2NyaXB0IGVsZW1lbnRzIHdpdGhvdXQgc3JjIGF0dHJpYnV0ZSk7CiAgICAgICAgIC8vIC0g
ZHluYW1pYyBzY3JpcHRzIChzY3JpcHQgZWxlbWVudHMgd2l0aCBzcmMgYXR0cmlidXRlKSB3aGVu
IGluc3BlY3RvciBpcyBvcGVuZWQgYWZ0ZXIgdGhlIHNjcmlwdCB3YXMgbG9hZGVkLgogICAgICAg
ICBpZiAoIXNjcmlwdC5oYXNTb3VyY2VVUkwgJiYgIXNjcmlwdC5pc0NvbnRlbnRTY3JpcHQpIHsK
LSAgICAgICAgICAgIHZhciByZXNvdXJjZSA9IFdlYkluc3BlY3Rvci5yZXNvdXJjZUZvclVSTChz
Y3JpcHQuc291cmNlVVJMKTsKLSAgICAgICAgICAgIGlmIChyZXNvdXJjZSAmJiByZXNvdXJjZS5j
b250ZW50VHlwZSgpID09PSBXZWJJbnNwZWN0b3IucmVzb3VyY2VUeXBlcy5Eb2N1bWVudCkKLSAg
ICAgICAgICAgICAgICBpc0R5bmFtaWNBbm9ueW1vdXNTY3JpcHQgPSB0cnVlOwotICAgICAgICAg
ICAgZWxzZSBpZiAocmVzb3VyY2UgfHwgV2ViSW5zcGVjdG9yLm5ldHdvcmtMb2cucmVxdWVzdEZv
clVSTChzY3JpcHQuc291cmNlVVJMKSkKKyAgICAgICAgICAgIGlmIChXZWJJbnNwZWN0b3IucmVz
b3VyY2VGb3JVUkwoc2NyaXB0LnNvdXJjZVVSTCkgfHwgV2ViSW5zcGVjdG9yLm5ldHdvcmtMb2cu
cmVxdWVzdEZvclVSTChzY3JpcHQuc291cmNlVVJMKSkKICAgICAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KICAgICAgICAgLy8gRmlsdGVyIG91dCBlbWJlZGRlciBpbmplY3RlZCBjb250
ZW50IHNjcmlwdHMuCkBAIC04NywxNSArODMsOSBAQCBXZWJJbnNwZWN0b3IuTmV0d29ya1VJU291
cmNlQ29kZVByb3ZpZGVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIGlmICghcGFyc2VkVVJM
Lmhvc3QpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIGlmICh0
aGlzLl91aVNvdXJjZUNvZGVGb3JSZXNvdXJjZVtzY3JpcHQuc291cmNlVVJMXSAmJiAhaXNEeW5h
bWljQW5vbnltb3VzU2NyaXB0KQorICAgICAgICBpZiAodGhpcy5fdWlTb3VyY2VDb2RlRm9yUmVz
b3VyY2Vbc2NyaXB0LnNvdXJjZVVSTF0pCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIHZh
ciB1cmwgPSBzY3JpcHQuc291cmNlVVJMOwotICAgICAgICBpZiAoaXNEeW5hbWljQW5vbnltb3Vz
U2NyaXB0KSB7Ci0gICAgICAgICAgICB2YXIgZHluYW1pY0Fub255bW91c1NjcmlwdEluZGV4ID0g
KHRoaXMuX2xhc3REeW5hbWljQW5vbnltb3VzU2NyaXB0SW5kZXhGb3JVUkxbdXJsXSB8fCAwKSAr
IDE7Ci0gICAgICAgICAgICB0aGlzLl9sYXN0RHluYW1pY0Fub255bW91c1NjcmlwdEluZGV4Rm9y
VVJMW3VybF0gPSBkeW5hbWljQW5vbnltb3VzU2NyaXB0SW5kZXg7Ci0gICAgICAgICAgICB1cmwg
Kz0gIiAoIiArIGR5bmFtaWNBbm9ueW1vdXNTY3JpcHRJbmRleCArICIpIjsKLSAgICAgICAgfQot
ICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gbmV3IFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUo
dXJsLCBzY3JpcHQsIHRydWUpOworICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gbmV3IFdlYklu
c3BlY3Rvci5VSVNvdXJjZUNvZGUoc2NyaXB0LnNvdXJjZVVSTCwgc2NyaXB0LCB0cnVlKTsKICAg
ICAgICAgdGhpcy5fdWlTb3VyY2VDb2RlRm9yUmVzb3VyY2Vbc2NyaXB0LnNvdXJjZVVSTF0gPSB1
aVNvdXJjZUNvZGU7CiAgICAgICAgIHRoaXMuX3dvcmtzcGFjZS5wcm9qZWN0KCkuYWRkVUlTb3Vy
Y2VDb2RlKHVpU291cmNlQ29kZSk7CiAgICAgfSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VTY3JpcHRNYXBwaW5nLmpzIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVNjcmlwdE1hcHBpbmcuanMKaW5kZXgg
ZGIzYzJhNzJmOTQ0NmNjYjNlNmYzNTRkY2NmOWVmYzk3Y2JmN2MwYi4uM2RiMjk0NjI3Y2E1NDIx
NmU0MDI4YTgyZTk1ZDgxNzcxMjUyNDRiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVNjcmlwdE1hcHBpbmcuanMKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVNjcmlwdE1hcHBpbmcuanMKQEAgLTQx
LDYgKzQxLDExIEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZVNjcmlwdE1hcHBpbmcgPSBmdW5jdGlv
bih3b3Jrc3BhY2UpCiAKICAgICAvKiogQHR5cGUge09iamVjdC48c3RyaW5nLCBXZWJJbnNwZWN0
b3IuVUlTb3VyY2VDb2RlPn0gKi8KICAgICB0aGlzLl90ZW1wb3JhcnlVSVNvdXJjZUNvZGVGb3JT
Y3JpcHRJZCA9IHt9OworICAgIHRoaXMuX3NjcmlwdElkc0ZvclRlbXBvcmFyeVVJU291cmNlQ29k
ZSA9IG5ldyBNYXAoKTsKKyAgICAvKiogQHR5cGUge09iamVjdC48c3RyaW5nLCBXZWJJbnNwZWN0
b3IuVUlTb3VyY2VDb2RlPn0gKi8KKyAgICB0aGlzLl9vcmlnaW5hbFVJU291cmNlQ29kZUZvclNj
cmlwdElkID0ge307CisgICAgdGhpcy5fc2NyaXB0SWRzRm9yT3JpZ2luYWxVSVNvdXJjZUNvZGUg
PSBuZXcgTWFwKCk7CisKICAgICB0aGlzLl9zY3JpcHRzID0gW107CiB9CiAKQEAgLTUzLDE0ICs1
OCw5IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZVNjcmlwdE1hcHBpbmcucHJvdG90eXBlID0gewog
ICAgIHsKICAgICAgICAgdmFyIGRlYnVnZ2VyTW9kZWxMb2NhdGlvbiA9IC8qKiBAdHlwZSB7V2Vi
SW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuTG9jYXRpb259ICovIHJhd0xvY2F0aW9uOwogICAgICAg
ICB2YXIgc2NyaXB0ID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuc2NyaXB0Rm9ySWQoZGVi
dWdnZXJNb2RlbExvY2F0aW9uLnNjcmlwdElkKTsKLSAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9
IHRoaXMuX3dvcmtzcGFjZVVJU291cmNlQ29kZUZvclNjcmlwdChzY3JpcHQpOwotICAgICAgICBp
ZiAoIXVpU291cmNlQ29kZSkKLSAgICAgICAgICAgIHVpU291cmNlQ29kZSA9IHRoaXMuX2dldE9y
Q3JlYXRlVGVtcG9yYXJ5VUlTb3VyY2VDb2RlKHNjcmlwdCk7Ci0gICAgICAgIGVsc2UgaWYgKHVp
U291cmNlQ29kZS5zY3JpcHRGaWxlKCkgJiYgdWlTb3VyY2VDb2RlLnNjcmlwdEZpbGUoKS5oYXNE
aXZlcmdlZEZyb21WTSgpKSB7Ci0gICAgICAgICAgICB2YXIgdGVtcG9yYXJ5VUlTb3VyY2VDb2Rl
ID0gdGhpcy5fZ2V0T3JDcmVhdGVUZW1wb3JhcnlVSVNvdXJjZUNvZGUoc2NyaXB0KTsKLSAgICAg
ICAgICAgIHRlbXBvcmFyeVVJU291cmNlQ29kZS5kaXZlcmdlZFZlcnNpb24gPSB1aVNvdXJjZUNv
ZGU7Ci0gICAgICAgICAgICB1aVNvdXJjZUNvZGUgPSB0ZW1wb3JhcnlVSVNvdXJjZUNvZGU7Ci0g
ICAgICAgIH0KKyAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IHRoaXMuX3dvcmtzcGFjZVVJU291
cmNlQ29kZUZvclNjcmlwdChzY3JpcHQpIHx8IHRoaXMuX2dldE9yQ3JlYXRlVGVtcG9yYXJ5VUlT
b3VyY2VDb2RlKHNjcmlwdCk7CisgICAgICAgIGlmICh1aVNvdXJjZUNvZGUuc2NyaXB0RmlsZSgp
ICYmIHVpU291cmNlQ29kZS5zY3JpcHRGaWxlKCkuaGFzRGl2ZXJnZWRGcm9tVk0oKSkKKyAgICAg
ICAgICAgIHVpU291cmNlQ29kZSA9IHRoaXMuX2dldE9yQ3JlYXRlT3JpZ2luYWxVSVNvdXJjZUNv
ZGUoc2NyaXB0LCB1aVNvdXJjZUNvZGUpOwogICAgICAgICBjb25zb2xlLmFzc2VydCghIXVpU291
cmNlQ29kZSk7CiAgICAgICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLlVJTG9jYXRpb24odWlT
b3VyY2VDb2RlLCBkZWJ1Z2dlck1vZGVsTG9jYXRpb24ubGluZU51bWJlciwgZGVidWdnZXJNb2Rl
bExvY2F0aW9uLmNvbHVtbk51bWJlciB8fCAwKTsKICAgICB9LApAQCAtNzMsOSArNzMsOSBAQCBX
ZWJJbnNwZWN0b3IuUmVzb3VyY2VTY3JpcHRNYXBwaW5nLnByb3RvdHlwZSA9IHsKICAgICAgICAg
dmFyIHNjcmlwdHMgPSB0aGlzLl9zY3JpcHRzRm9yVUlTb3VyY2VDb2RlKHVpU291cmNlQ29kZSk7
CiAgICAgICAgIGlmICghc2NyaXB0cy5sZW5ndGgpCiAgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIHRoaXMuX2RlbGV0ZU9yaWdpbmFsVUlTb3VyY2VDb2RlRm9yU2NyaXB0cyhzY3JpcHRzKTsK
ICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzY3JpcHRzLmxlbmd0aDsgKytpKQogICAgICAg
ICAgICAgc2NyaXB0c1tpXS5zZXRTb3VyY2VNYXBwaW5nKHRoaXMpOwotICAgICAgICB0aGlzLl9k
ZWxldGVUZW1wb3JhcnlVSVNvdXJjZUNvZGVGb3JTY3JpcHRzKHNjcmlwdHMpOwogICAgIH0sCiAK
ICAgICAvKioKQEAgLTEyOSw4ICsxMjksMjcgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlU2NyaXB0
TWFwcGluZy5wcm90b3R5cGUgPSB7CiAgICAgICAgIH0KIAogICAgICAgICB2YXIgc2NyaXB0cyA9
IHNjcmlwdC5pc0lubGluZVNjcmlwdCgpID8gdGhpcy5fc2NyaXB0c0ZvclNvdXJjZVVSTChzY3Jp
cHQuc291cmNlVVJMLCB0cnVlKSA6IFtzY3JpcHRdOwotICAgICAgICBpZiAodGhpcy5fZGVsZXRl
VGVtcG9yYXJ5VUlTb3VyY2VDb2RlRm9yU2NyaXB0cyhzY3JpcHRzKSkKKworICAgICAgICBpZiAo
dGhpcy5fZGVsZXRlVGVtcG9yYXJ5VUlTb3VyY2VDb2RlRm9yU2NyaXB0cyhzY3JpcHRzKSkgewor
ICAgICAgICAgICAgdGhpcy5fZGVsZXRlT3JpZ2luYWxVSVNvdXJjZUNvZGVGb3JTY3JpcHRzKHNj
cmlwdHMpOwogICAgICAgICAgICAgdWlTb3VyY2VDb2RlID0gdGhpcy5fZ2V0T3JDcmVhdGVUZW1w
b3JhcnlVSVNvdXJjZUNvZGUoc2NyaXB0KTsKKyAgICAgICAgfQorICAgIH0sCisKKyAgICAvKioK
KyAgICAgKiBAcGFyYW0ge0FycmF5LjxXZWJJbnNwZWN0b3IuU2NyaXB0Pn0gc2NyaXB0cworICAg
ICAqLworICAgIF9kZWxldGVPcmlnaW5hbFVJU291cmNlQ29kZUZvclNjcmlwdHM6IGZ1bmN0aW9u
KHNjcmlwdHMpCisgICAgeworICAgICAgICB2YXIgb3JpZ2luYWxVSVNvdXJjZUNvZGU7CisgICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2NyaXB0cy5sZW5ndGg7ICsraSkgeworICAgICAgICAg
ICAgb3JpZ2luYWxVSVNvdXJjZUNvZGUgPSBvcmlnaW5hbFVJU291cmNlQ29kZSB8fCB0aGlzLl9v
cmlnaW5hbFVJU291cmNlQ29kZUZvclNjcmlwdElkW3NjcmlwdHNbaV0uc2NyaXB0SWRdOworICAg
ICAgICAgICAgZGVsZXRlIHRoaXMuX29yaWdpbmFsVUlTb3VyY2VDb2RlRm9yU2NyaXB0SWRbc2Ny
aXB0c1tpXS5zY3JpcHRJZF07CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFvcmlnaW5hbFVJU291
cmNlQ29kZSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgdGhpcy5fd29ya3NwYWNlLnBy
b2plY3QoKS5yZW1vdmVUZW1wb3JhcnlVSVNvdXJjZUNvZGUob3JpZ2luYWxVSVNvdXJjZUNvZGUp
OworICAgICAgICB0aGlzLl9zY3JpcHRJZHNGb3JPcmlnaW5hbFVJU291cmNlQ29kZS5yZW1vdmUo
b3JpZ2luYWxVSVNvdXJjZUNvZGUpOwogICAgIH0sCiAKICAgICAvKioKQEAgLTE0MSwxMyArMTYw
LDE0IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZVNjcmlwdE1hcHBpbmcucHJvdG90eXBlID0gewog
ICAgIHsKICAgICAgICAgdmFyIHRlbXBvcmFyeVVJU291cmNlQ29kZTsKICAgICAgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCBzY3JpcHRzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICB2YXIgc2Ny
aXB0ID0gc2NyaXB0c1tpXTsKLSAgICAgICAgICAgIHRlbXBvcmFyeVVJU291cmNlQ29kZSA9IHRl
bXBvcmFyeVVJU291cmNlQ29kZSB8fCB0aGlzLl90ZW1wb3JhcnlVSVNvdXJjZUNvZGVGb3JTY3Jp
cHRJZFtzY3JpcHQuc2NyaXB0SWRdOwotICAgICAgICAgICAgZGVsZXRlIHRoaXMuX3RlbXBvcmFy
eVVJU291cmNlQ29kZUZvclNjcmlwdElkW3NjcmlwdC5zY3JpcHRJZF07CisgICAgICAgICAgICB0
ZW1wb3JhcnlVSVNvdXJjZUNvZGUgPSB0ZW1wb3JhcnlVSVNvdXJjZUNvZGUgfHwgdGhpcy5fdGVt
cG9yYXJ5VUlTb3VyY2VDb2RlRm9yU2NyaXB0SWRbc2NyaXB0c1tpXS5zY3JpcHRJZF07CisgICAg
ICAgICAgICBkZWxldGUgdGhpcy5fdGVtcG9yYXJ5VUlTb3VyY2VDb2RlRm9yU2NyaXB0SWRbc2Ny
aXB0c1tpXS5zY3JpcHRJZF07CiAgICAgICAgIH0KLSAgICAgICAgaWYgKHRlbXBvcmFyeVVJU291
cmNlQ29kZSkKLSAgICAgICAgICAgIHRoaXMuX3dvcmtzcGFjZS5wcm9qZWN0KCkucmVtb3ZlVGVt
cG9yYXJ5VUlTb3VyY2VDb2RlKHRlbXBvcmFyeVVJU291cmNlQ29kZSk7Ci0gICAgICAgIHJldHVy
biAhIXRlbXBvcmFyeVVJU291cmNlQ29kZTsKKyAgICAgICAgaWYgKCF0ZW1wb3JhcnlVSVNvdXJj
ZUNvZGUpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHRoaXMuX3dvcmtzcGFj
ZS5wcm9qZWN0KCkucmVtb3ZlVGVtcG9yYXJ5VUlTb3VyY2VDb2RlKHRlbXBvcmFyeVVJU291cmNl
Q29kZSk7CisgICAgICAgIHRoaXMuX3NjcmlwdElkc0ZvclRlbXBvcmFyeVVJU291cmNlQ29kZS5y
ZW1vdmUodGVtcG9yYXJ5VUlTb3VyY2VDb2RlKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
fSwKIAogICAgIC8qKgpAQCAtMTYxLDcgKzE4MSw3IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZVNj
cmlwdE1hcHBpbmcucHJvdG90eXBlID0gewogICAgICAgICAgICAgc2NyaXB0c1tpXS5zZXRTb3Vy
Y2VNYXBwaW5nKHRoaXMpOwogICAgICAgICB1aVNvdXJjZUNvZGUuaXNDb250ZW50U2NyaXB0ID0g
c2NyaXB0c1swXS5pc0NvbnRlbnRTY3JpcHQ7CiAgICAgICAgIHVpU291cmNlQ29kZS5zZXRTb3Vy
Y2VNYXBwaW5nKHRoaXMpOwotICAgICAgICBpZiAoIXVpU291cmNlQ29kZS5pc1RlbXBvcmFyeSkg
eworICAgICAgICBpZiAodWlTb3VyY2VDb2RlLmlzRWRpdGFibGUoKSkgewogICAgICAgICAgICAg
dmFyIHNjcmlwdEZpbGUgPSBuZXcgV2ViSW5zcGVjdG9yLlJlc291cmNlU2NyaXB0RmlsZSh0aGlz
LCB1aVNvdXJjZUNvZGUpOwogICAgICAgICAgICAgdWlTb3VyY2VDb2RlLnNldFNjcmlwdEZpbGUo
c2NyaXB0RmlsZSk7CiAgICAgICAgIH0KQEAgLTE5Niw2ICsyMTYsMjIgQEAgV2ViSW5zcGVjdG9y
LlJlc291cmNlU2NyaXB0TWFwcGluZy5wcm90b3R5cGUgPSB7CiAKICAgICAvKioKICAgICAgKiBA
cGFyYW0ge1dlYkluc3BlY3Rvci5TY3JpcHR9IHNjcmlwdAorICAgICAqIEBwYXJhbSB7V2ViSW5z
cGVjdG9yLlVJU291cmNlQ29kZT19IGRpdmVyZ2VkVmVyc2lvbgorICAgICAqIEByZXR1cm4ge1dl
Ykluc3BlY3Rvci5VSVNvdXJjZUNvZGV9CisgICAgICovCisgICAgX2NyZWF0ZVVJU291cmNlQ29k
ZTogZnVuY3Rpb24oc2NyaXB0cywgZGl2ZXJnZWRWZXJzaW9uKQorICAgIHsKKyAgICAgICAgdmFy
IHNjcmlwdCA9IHNjcmlwdHNbMF07CisgICAgICAgIHZhciBjb250ZW50UHJvdmlkZXIgPSBzY3Jp
cHQuaXNJbmxpbmVTY3JpcHQoKSA/IG5ldyBXZWJJbnNwZWN0b3IuQ29uY2F0ZW5hdGVkU2NyaXB0
c0NvbnRlbnRQcm92aWRlcihzY3JpcHRzKSA6IHNjcmlwdDsKKyAgICAgICAgdmFyIGlzRHluYW1p
Y1NjcmlwdCA9IHRoaXMuX2lzRHluYW1pY1NjcmlwdChzY3JpcHQpOworICAgICAgICB2YXIgdXJs
ID0gaXNEeW5hbWljU2NyaXB0ID8gIiIgOiBzY3JpcHQuc291cmNlVVJMOworICAgICAgICB2YXIg
dGVtcG9yYXJ5VUlTb3VyY2VDb2RlID0gbmV3IFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUodXJs
LCBjb250ZW50UHJvdmlkZXIsICFzY3JpcHQuaXNJbmxpbmVTY3JpcHQoKSAmJiAhZGl2ZXJnZWRW
ZXJzaW9uKTsKKyAgICAgICAgdGVtcG9yYXJ5VUlTb3VyY2VDb2RlLmRpdmVyZ2VkVmVyc2lvbiA9
IGRpdmVyZ2VkVmVyc2lvbjsKKyAgICAgICAgcmV0dXJuIHRlbXBvcmFyeVVJU291cmNlQ29kZTsK
KyAgICB9LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuU2NyaXB0fSBz
Y3JpcHQKICAgICAgKiBAcmV0dXJuIHtXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlfQogICAgICAq
LwogICAgIF9nZXRPckNyZWF0ZVRlbXBvcmFyeVVJU291cmNlQ29kZTogZnVuY3Rpb24oc2NyaXB0
KQpAQCAtMjA1LDE3ICsyNDEsNDIgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlU2NyaXB0TWFwcGlu
Zy5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICByZXR1cm4gdGVtcG9yYXJ5VUlTb3VyY2VDb2Rl
OwogCiAgICAgICAgIHZhciBzY3JpcHRzID0gc2NyaXB0LmlzSW5saW5lU2NyaXB0KCkgPyB0aGlz
Ll9zY3JpcHRzRm9yU291cmNlVVJMKHNjcmlwdC5zb3VyY2VVUkwsIHRydWUpIDogW3NjcmlwdF07
Ci0gICAgICAgIHZhciBjb250ZW50UHJvdmlkZXIgPSBzY3JpcHQuaXNJbmxpbmVTY3JpcHQoKSA/
IG5ldyBXZWJJbnNwZWN0b3IuQ29uY2F0ZW5hdGVkU2NyaXB0c0NvbnRlbnRQcm92aWRlcihzY3Jp
cHRzKSA6IHNjcmlwdDsKLSAgICAgICAgdmFyIGlzRHluYW1pY1NjcmlwdCA9IHRoaXMuX2lzRHlu
YW1pY1NjcmlwdChzY3JpcHQpOwotICAgICAgICB2YXIgdXJsID0gaXNEeW5hbWljU2NyaXB0ID8g
IiIgOiBzY3JpcHQuc291cmNlVVJMOwotICAgICAgICB0ZW1wb3JhcnlVSVNvdXJjZUNvZGUgPSBu
ZXcgV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZSh1cmwsIGNvbnRlbnRQcm92aWRlciwgZmFsc2Up
OwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNjcmlwdHMubGVuZ3RoOyArK2kpCisgICAg
ICAgIHRlbXBvcmFyeVVJU291cmNlQ29kZSA9IHRoaXMuX2NyZWF0ZVVJU291cmNlQ29kZShzY3Jp
cHRzKTsKKyAgICAgICAgdmFyIHNjcmlwdElkcyA9IFtdOworICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IHNjcmlwdHMubGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAgIHRoaXMuX3RlbXBvcmFy
eVVJU291cmNlQ29kZUZvclNjcmlwdElkW3NjcmlwdHNbaV0uc2NyaXB0SWRdID0gdGVtcG9yYXJ5
VUlTb3VyY2VDb2RlOwotICAgICAgICB0aGlzLl9iaW5kVUlTb3VyY2VDb2RlVG9TY3JpcHRzKHRl
bXBvcmFyeVVJU291cmNlQ29kZSwgc2NyaXB0cyk7CisgICAgICAgICAgICBzY3JpcHRJZHMucHVz
aChzY3JpcHRzW2ldLnNjcmlwdElkKTsKKyAgICAgICAgfQorICAgICAgICB0aGlzLl9zY3JpcHRJ
ZHNGb3JUZW1wb3JhcnlVSVNvdXJjZUNvZGUucHV0KHRlbXBvcmFyeVVJU291cmNlQ29kZSwgc2Ny
aXB0SWRzKTsKICAgICAgICAgdGhpcy5fd29ya3NwYWNlLnByb2plY3QoKS5hZGRUZW1wb3JhcnlV
SVNvdXJjZUNvZGUodGVtcG9yYXJ5VUlTb3VyY2VDb2RlKTsKKyAgICAgICAgdGhpcy5fYmluZFVJ
U291cmNlQ29kZVRvU2NyaXB0cyh0ZW1wb3JhcnlVSVNvdXJjZUNvZGUsIHNjcmlwdHMpOwogICAg
ICAgICByZXR1cm4gdGVtcG9yYXJ5VUlTb3VyY2VDb2RlOwogICAgIH0sCiAKKyAgICAvKioKKyAg
ICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5TY3JpcHR9IHNjcmlwdAorICAgICAqIEBwYXJhbSB7
V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZX0gZGl2ZXJnZWRWZXJzaW9uCisgICAgICogQHJldHVy
biB7V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZX0KKyAgICAgKi8KKyAgICBfZ2V0T3JDcmVhdGVP
cmlnaW5hbFVJU291cmNlQ29kZTogZnVuY3Rpb24oc2NyaXB0LCBkaXZlcmdlZFZlcnNpb24pCisg
ICAgeworICAgICAgICB2YXIgb3JpZ2luYWxVSVNvdXJjZUNvZGUgPSB0aGlzLl9vcmlnaW5hbFVJ
U291cmNlQ29kZUZvclNjcmlwdElkW3NjcmlwdC5zY3JpcHRJZF07CisgICAgICAgIGlmIChvcmln
aW5hbFVJU291cmNlQ29kZSkKKyAgICAgICAgICAgIHJldHVybiBvcmlnaW5hbFVJU291cmNlQ29k
ZTsKKworICAgICAgICB2YXIgc2NyaXB0cyA9IHNjcmlwdC5pc0lubGluZVNjcmlwdCgpID8gdGhp
cy5fc2NyaXB0c0ZvclNvdXJjZVVSTChzY3JpcHQuc291cmNlVVJMLCB0cnVlKSA6IFtzY3JpcHRd
OworICAgICAgICBvcmlnaW5hbFVJU291cmNlQ29kZSA9IHRoaXMuX2NyZWF0ZVVJU291cmNlQ29k
ZShzY3JpcHRzLCBkaXZlcmdlZFZlcnNpb24pOworICAgICAgICB2YXIgc2NyaXB0SWRzID0gW107
CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2NyaXB0cy5sZW5ndGg7ICsraSkgeworICAg
ICAgICAgICAgdGhpcy5fb3JpZ2luYWxVSVNvdXJjZUNvZGVGb3JTY3JpcHRJZFtzY3JpcHRzW2ld
LnNjcmlwdElkXSA9IG9yaWdpbmFsVUlTb3VyY2VDb2RlOworICAgICAgICAgICAgc2NyaXB0SWRz
LnB1c2goc2NyaXB0c1tpXS5zY3JpcHRJZCk7CisgICAgICAgIH0KKyAgICAgICAgdGhpcy5fc2Ny
aXB0SWRzRm9yT3JpZ2luYWxVSVNvdXJjZUNvZGUucHV0KG9yaWdpbmFsVUlTb3VyY2VDb2RlLCBz
Y3JpcHRJZHMpOworICAgICAgICB0aGlzLl93b3Jrc3BhY2UucHJvamVjdCgpLmFkZFRlbXBvcmFy
eVVJU291cmNlQ29kZShvcmlnaW5hbFVJU291cmNlQ29kZSk7CisgICAgICAgIHRoaXMuX2JpbmRV
SVNvdXJjZUNvZGVUb1NjcmlwdHMob3JpZ2luYWxVSVNvdXJjZUNvZGUsIHNjcmlwdHMpOworICAg
ICAgICByZXR1cm4gb3JpZ2luYWxVSVNvdXJjZUNvZGU7CisgICAgfSwKKwogICAgIF91aVNvdXJj
ZUNvZGVBZGRlZFRvV29ya3NwYWNlOiBmdW5jdGlvbihldmVudCkKICAgICB7CiAgICAgICAgIHZh
ciB1aVNvdXJjZUNvZGUgPSAvKiogQHR5cGUge1dlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGV9ICov
IGV2ZW50LmRhdGE7CkBAIC0yMjYsNiArMjg3LDcgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlU2Ny
aXB0TWFwcGluZy5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAg
dGhpcy5fZGVsZXRlVGVtcG9yYXJ5VUlTb3VyY2VDb2RlRm9yU2NyaXB0cyhzY3JpcHRzKTsKKyAg
ICAgICAgdGhpcy5fZGVsZXRlT3JpZ2luYWxVSVNvdXJjZUNvZGVGb3JTY3JpcHRzKHNjcmlwdHMp
OwogICAgICAgICB0aGlzLl9iaW5kVUlTb3VyY2VDb2RlVG9TY3JpcHRzKHVpU291cmNlQ29kZSwg
c2NyaXB0cyk7CiAgICAgfSwKIApAQCAtMjM1LDYgKzI5NywxMCBAQCBXZWJJbnNwZWN0b3IuUmVz
b3VyY2VTY3JpcHRNYXBwaW5nLnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICBfc2NyaXB0c0Zv
clVJU291cmNlQ29kZTogZnVuY3Rpb24odWlTb3VyY2VDb2RlKQogICAgIHsKKyAgICAgICAgdmFy
IHNjcmlwdElkcyA9IHRoaXMuX3NjcmlwdElkc0Zvck9yaWdpbmFsVUlTb3VyY2VDb2RlLmdldCh1
aVNvdXJjZUNvZGUpIHx8IHRoaXMuX3NjcmlwdElkc0ZvclRlbXBvcmFyeVVJU291cmNlQ29kZS5n
ZXQodWlTb3VyY2VDb2RlKTsKKyAgICAgICAgaWYgKHNjcmlwdElkcykKKyAgICAgICAgICAgIHJl
dHVybiBzY3JpcHRJZHMubWFwKFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLnNjcmlwdEZvcklk
LmJpbmQoV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwpKTsKKwogICAgICAgICB2YXIgaXNJbmxp
bmVTY3JpcHQ7CiAgICAgICAgIHN3aXRjaCAodWlTb3VyY2VDb2RlLmNvbnRlbnRUeXBlKCkpIHsK
ICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IucmVzb3VyY2VUeXBlcy5Eb2N1bWVudDoKQEAgLTI0
NiwxMyArMzEyLDE1IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZVNjcmlwdE1hcHBpbmcucHJvdG90
eXBlID0gewogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgcmV0dXJuIFtdOwogICAgICAg
ICB9Ci0KICAgICAgICAgcmV0dXJuIHRoaXMuX3NjcmlwdHNGb3JTb3VyY2VVUkwodWlTb3VyY2VD
b2RlLnVybCwgaXNJbmxpbmVTY3JpcHQpOwogICAgIH0sCiAKICAgICBfcmVzZXQ6IGZ1bmN0aW9u
KCkKICAgICB7CiAgICAgICAgIHRoaXMuX3RlbXBvcmFyeVVJU291cmNlQ29kZUZvclNjcmlwdElk
ID0ge307CisgICAgICAgIHRoaXMuX3NjcmlwdElkc0ZvclRlbXBvcmFyeVVJU291cmNlQ29kZSA9
IG5ldyBNYXAoKTsKKyAgICAgICAgdGhpcy5fb3JpZ2luYWxVSVNvdXJjZUNvZGVGb3JTY3JpcHRJ
ZCA9IHt9OworICAgICAgICB0aGlzLl9zY3JpcHRJZHNGb3JPcmlnaW5hbFVJU291cmNlQ29kZSA9
IG5ldyBNYXAoKTsKICAgICAgICAgdGhpcy5fc2NyaXB0cyA9IFtdOwogICAgIH0sCiB9CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggYWE0OGM4NzMzODJiMmY1ZTRmYTNkN2Q0ZmE0M2VmMzdkZDIyMWViZi4uYmRlM2NmNzBiYzhk
MjhkOTQ1Y2ZmYjViY2I5M2FiM2M0NjI0MDdhYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEy
LTEwLTIyICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFdlYiBJbnNwZWN0b3I6IFRyZWF0IGR5bmFtaWMgYW5vbnltb3VzIHNjcmlwdHMgYXMgb3RoZXIg
YW5vbnltb3VzIGFuZCBmaXggYW5vbnltb3VzIHNjcmlwdCBlZGl0aW5nIGFuZCBicmVha3BvaW50
cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk5OTg5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRw
L3Rlc3RzL2luc3BlY3Rvci1lbmFibGVkL2R5bmFtaWMtc2NyaXB0cy1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXItdGVzdC5qczoKKyAgICAgICAg
KGluaXRpYWxpemVfRGVidWdnZXJUZXN0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIv
ZHluYW1pYy1zY3JpcHQtdGFnLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVi
dWdnZXIvZHluYW1pYy1zY3JpcHRzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZGVidWdnZXIvbGl2ZS1lZGl0LWJyZWFrcG9pbnRzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvZGVidWdnZXIvbGl2ZS1lZGl0LWJyZWFrcG9pbnRzLmh0bWw6CisgICAgICAgICog
aW5zcGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNlLXNjcmlwdC1tYXBwaW5nLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvcmVzb3VyY2Utc2NyaXB0LW1hcHBpbmcuaHRt
bDoKKwogMjAxMi0xMC0yMSAgRGlyayBQcmFua2UgIDxkcHJhbmtlQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBVbnJldmlld2VkLCBzdXBwcmVzc2luZyBmYWlsdXJlIHVudGlsIEkgY2FuIGZpZ3Vy
ZSBvdXQgd2hhdCdzIGdvaW5nIG9uLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbnNwZWN0b3ItZW5hYmxlZC9keW5hbWljLXNjcmlwdHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3ItZW5hYmxlZC9keW5hbWljLXNjcmlwdHMtZXhwZWN0
ZWQudHh0CmluZGV4IGY4YTE2N2EyM2FlZGE5NjkyMmIyZTJkYzhhYzcxMTAwNWFlZjQ2NTUuLjZm
ZmE5Zjg3YTFmNWVjY2QwMWFlOGVkMjRkZGRmMGE3M2M5ZjJjYWEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yLWVuYWJsZWQvZHluYW1pYy1zY3JpcHRzLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci1lbmFibGVkL2R5
bmFtaWMtc2NyaXB0cy1leHBlY3RlZC50eHQKQEAgLTYsOCArNiw2IEBAIFVJU291cmNlQ29kZXM6
CiAgICAgZGVidWdnZXItdGVzdC5qcwogICAgIGR5bmFtaWMtc2NyaXB0LmpzCiAgICAgZHluYW1p
Yy1zY3JpcHRzLmh0bWwKLSAgICBkeW5hbWljLXNjcmlwdHMuaHRtbCAoMSkKLSAgICBkeW5hbWlj
LXNjcmlwdHMuaHRtbCAoMikKICAgICBldmFsU291cmNlVVJMLmpzCiAgICAgaW5zcGVjdG9yLXRl
c3QuanMKICAgICBzY3JpcHRFbGVtZW50Q29udGVudFNvdXJjZVVSTC5qcwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXItdGVzdC5qcyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3QuanMKaW5kZXggMmZjYmYx
NTcwMmI4ZmNlYTQ4M2E4YzNjZDkxMzc0MzM5NjQ3MTI4MC4uZTE1OGNmNWVhYzI1OGUxM2U3MjBh
ZGI0OGM4NTM5ZjFlOGNmM2UwMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXItdGVzdC5qcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci10ZXN0LmpzCkBAIC0xNTgsMTggKzE1OCwyNCBAQCBJbnNwZWN0b3JU
ZXN0Ll9yZXN1bWVkU2NyaXB0ID0gZnVuY3Rpb24oKQogICAgIH0KIH07CiAKK0luc3BlY3RvclRl
c3Quc2hvd1VJU291cmNlQ29kZSA9IGZ1bmN0aW9uKHVpU291cmNlQ29kZSwgY2FsbGJhY2spCit7
CisgICAgdmFyIHBhbmVsID0gV2ViSW5zcGVjdG9yLnNob3dQYW5lbCgic2NyaXB0cyIpOworICAg
IHBhbmVsLnNob3dVSVNvdXJjZUNvZGUodWlTb3VyY2VDb2RlKTsKKyAgICB2YXIgc291cmNlRnJh
bWUgPSBwYW5lbC52aXNpYmxlVmlldzsKKyAgICBpZiAoc291cmNlRnJhbWUubG9hZGVkKQorICAg
ICAgICBjYWxsYmFjayhzb3VyY2VGcmFtZSk7CisgICAgZWxzZQorICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFNuaWZmZXIoc291cmNlRnJhbWUsICJvblRleHRFZGl0b3JDb250ZW50TG9hZGVkIiwg
Y2FsbGJhY2suYmluZChudWxsLCBzb3VyY2VGcmFtZSkpOworfTsKKwogSW5zcGVjdG9yVGVzdC5z
aG93U2NyaXB0U291cmNlID0gZnVuY3Rpb24oc2NyaXB0TmFtZSwgY2FsbGJhY2spCiB7CiAgICAg
dmFyIHBhbmVsID0gV2ViSW5zcGVjdG9yLnNob3dQYW5lbCgic2NyaXB0cyIpOwogICAgIHZhciB1
aVNvdXJjZUNvZGVzID0gcGFuZWwuX3dvcmtzcGFjZS51aVNvdXJjZUNvZGVzKCk7CiAgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCB1aVNvdXJjZUNvZGVzLmxlbmd0aDsgKytpKSB7CiAgICAgICAgIGlm
ICh1aVNvdXJjZUNvZGVzW2ldLnBhcnNlZFVSTC5sYXN0UGF0aENvbXBvbmVudCA9PT0gc2NyaXB0
TmFtZSkgewotICAgICAgICAgICAgcGFuZWwuc2hvd1VJU291cmNlQ29kZSh1aVNvdXJjZUNvZGVz
W2ldKTsKLSAgICAgICAgICAgIHZhciBzb3VyY2VGcmFtZSA9IHBhbmVsLnZpc2libGVWaWV3Owot
ICAgICAgICAgICAgaWYgKHNvdXJjZUZyYW1lLmxvYWRlZCkKLSAgICAgICAgICAgICAgICBjYWxs
YmFjayhzb3VyY2VGcmFtZSk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRTbmlmZmVyKHNvdXJjZUZyYW1lLCAib25UZXh0RWRpdG9yQ29udGVudExv
YWRlZCIsIGNhbGxiYWNrLmJpbmQobnVsbCwgc291cmNlRnJhbWUpKTsKKyAgICAgICAgICAgIElu
c3BlY3RvclRlc3Quc2hvd1VJU291cmNlQ29kZSh1aVNvdXJjZUNvZGVzW2ldLCBjYWxsYmFjayk7
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZHluYW1pYy1zY3JpcHQtdGFnLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9keW5hbWljLXNjcmlwdC10YWctZXhw
ZWN0ZWQudHh0CmluZGV4IDdhZjJjMWFiZWEzZmY1MWQwYjU2MTMwMmM5YTRhMjY3NmM1ZjgyZTQu
LjVkNTk5MWMyMjZjZDNiZGYwOWVjOWUxYzI5MjQ3NmI2YTA0YzVjMGIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9keW5hbWljLXNjcmlwdC10YWctZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9keW5hbWljLXNjcmlwdC10
YWctZXhwZWN0ZWQudHh0CkBAIC0xMCwxMiArMTAsMTIgQEAgSXMgYW5vbnltb3VzOmZhbHNlCiBJ
cyBpbmxpbmUgc2NyaXB0OmZhbHNlCiBEdW1waW5nIHVpU291cmNlQ29kZXM6CiBVSVNvdXJjZUNv
ZGU6IAotVUlTb3VyY2VDb2RlIGlzIGVkaXRhYmxlOiBmYWxzZQorVUlTb3VyY2VDb2RlIGlzIGVk
aXRhYmxlOiB0cnVlCiBVSVNvdXJjZUNvZGUgaXMgY29udGVudCBzY3JpcHQ6IGZhbHNlCiBNaW1l
IHR5cGU6IHRleHQvamF2YXNjcmlwdAogVUlTb3VyY2VDb2RlIGNvbnRlbnQ6IGZ1bmN0aW9uIGZv
bygpIHsgfQogVUlTb3VyY2VDb2RlOiAKLVVJU291cmNlQ29kZSBpcyBlZGl0YWJsZTogZmFsc2UK
K1VJU291cmNlQ29kZSBpcyBlZGl0YWJsZTogdHJ1ZQogVUlTb3VyY2VDb2RlIGlzIGNvbnRlbnQg
c2NyaXB0OiBmYWxzZQogTWltZSB0eXBlOiB0ZXh0L2phdmFzY3JpcHQKIFVJU291cmNlQ29kZSBj
b250ZW50OiBmdW5jdGlvbiBiYXIoKSB7IH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci9keW5hbWljLXNjcmlwdHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RlYnVnZ2VyL2R5bmFtaWMtc2NyaXB0cy1leHBlY3RlZC50eHQKaW5kZXggNGQ2
MWZiZTZhMDJmNjEwMDcxMzZmMWE3MTVjZDYwNGJmYWQ5Y2M0ZC4uOGFiMmRkMmQ5NDExNjIzMWY1
MTlmZWE5Y2U4ZGVlYmMzOWQyYzc5YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL2R5bmFtaWMtc2NyaXB0cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RlYnVnZ2VyL2R5bmFtaWMtc2NyaXB0cy1leHBlY3RlZC50eHQKQEAgLTcsOCAr
Nyw2IEBAIFVJU291cmNlQ29kZXM6CiAgICAgZGVidWdnZXItdGVzdC5qcwogICAgIGR5bmFtaWMt
c2NyaXB0LmpzCiAgICAgZHluYW1pYy1zY3JpcHRzLmh0bWwKLSAgICBkeW5hbWljLXNjcmlwdHMu
aHRtbCAoMSkKLSAgICBkeW5hbWljLXNjcmlwdHMuaHRtbCAoMikKICAgICBldmFsU291cmNlVVJM
LmpzCiAgICAgaW5zcGVjdG9yLXRlc3QuanMKICAgICBzY3JpcHRFbGVtZW50Q29udGVudFNvdXJj
ZVVSTC5qcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2xpdmUt
ZWRpdC1icmVha3BvaW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvbGl2ZS1lZGl0LWJyZWFrcG9pbnRzLWV4cGVjdGVkLnR4dAppbmRleCBmMjU3YTEwZDlh
NzVkMjk1MzIyYjA0ZDI5YjUzZjNjODEwZjcwZDY1Li5hNTkyMjc3M2NhNjZlMTUwNDRiNDMzYjhm
NzY4OTIyMTMyMWM0NWZiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvbGl2ZS1lZGl0LWJyZWFrcG9pbnRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvbGl2ZS1lZGl0LWJyZWFrcG9pbnRzLWV4cGVjdGVkLnR4dApAQCAt
MTMsMTEgKzEzLDEzIEBAIFNldHRpbmcgYnJlYWtwb2ludDoKIEVkaXRpbmcgc291cmNlOgogICAg
IFRleHRFZGl0b3IucmVtb3ZlQnJlYWtwb2ludChsaW5lTnVtYmVyID0gMikKICAgICBUZXh0RWRp
dG9yLmFkZEJyZWFrcG9pbnQobGluZU51bWJlciA9IDIsIGRpc2FibGVkID0gdHJ1ZSkKKyAgICBP
cmlnaW5hbFRleHRFZGl0b3IuYWRkQnJlYWtwb2ludChsaW5lTnVtYmVyID0gMiwgZGlzYWJsZWQg
PSBmYWxzZSkKICAgICBEdW1waW5nIGJyZWFrcG9pbnQgc3RvcmFnZQogICAgICAgICBlZGl0LW1l
LmpzOjIsIGVuYWJsZWQ6dHJ1ZQogICAgIER1bXBpbmcgYnJlYWtwb2ludCBsb2NhdGlvbnMKICAg
ICAgICAgdXJsOiBlZGl0LW1lLmpzLCBsaW5lTnVtYmVyOiAyLCBpc1RlbXBvcmFyeTogdHJ1ZQog
VW5kb2luZyBzb3VyY2UgZWRpdGluZzoKKyAgICBPcmlnaW5hbFRleHRFZGl0b3IucmVtb3ZlQnJl
YWtwb2ludChsaW5lTnVtYmVyID0gMikKICAgICBUZXh0RWRpdG9yLnJlbW92ZUJyZWFrcG9pbnQo
bGluZU51bWJlciA9IDIpCiAgICAgVGV4dEVkaXRvci5yZW1vdmVCcmVha3BvaW50KGxpbmVOdW1i
ZXIgPSAyKQogICAgIFRleHRFZGl0b3IuYWRkQnJlYWtwb2ludChsaW5lTnVtYmVyID0gMiwgZGlz
YWJsZWQgPSBmYWxzZSkKQEAgLTQwLDExICs0MiwxMyBAQCBTZXR0aW5nIGJyZWFrcG9pbnQ6CiBF
ZGl0aW5nIHNvdXJjZToKICAgICBUZXh0RWRpdG9yLnJlbW92ZUJyZWFrcG9pbnQobGluZU51bWJl
ciA9IDIpCiAgICAgVGV4dEVkaXRvci5hZGRCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAyLCBkaXNh
YmxlZCA9IHRydWUpCisgICAgT3JpZ2luYWxUZXh0RWRpdG9yLmFkZEJyZWFrcG9pbnQobGluZU51
bWJlciA9IDIsIGRpc2FibGVkID0gZmFsc2UpCiAgICAgRHVtcGluZyBicmVha3BvaW50IHN0b3Jh
Z2UKICAgICAgICAgZWRpdC1tZS5qczoyLCBlbmFibGVkOnRydWUKICAgICBEdW1waW5nIGJyZWFr
cG9pbnQgbG9jYXRpb25zCiAgICAgICAgIHVybDogZWRpdC1tZS5qcywgbGluZU51bWJlcjogMiwg
aXNUZW1wb3Jhcnk6IHRydWUKIENvbW1pdHRpbmcgZWRpdGVkIHNvdXJjZToKKyAgICBPcmlnaW5h
bFRleHRFZGl0b3IucmVtb3ZlQnJlYWtwb2ludChsaW5lTnVtYmVyID0gMikKICAgICBUZXh0RWRp
dG9yLnJlbW92ZUJyZWFrcG9pbnQobGluZU51bWJlciA9IDIpCiAgICAgVGV4dEVkaXRvci5yZW1v
dmVCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAyKQogICAgIFRleHRFZGl0b3IuYWRkQnJlYWtwb2lu
dChsaW5lTnVtYmVyID0gMiwgZGlzYWJsZWQgPSBmYWxzZSkKQEAgLTY3LDYgKzcxLDcgQEAgU2V0
dGluZyBicmVha3BvaW50OgogRWRpdGluZyBzb3VyY2U6CiAgICAgVGV4dEVkaXRvci5yZW1vdmVC
cmVha3BvaW50KGxpbmVOdW1iZXIgPSAyKQogICAgIFRleHRFZGl0b3IuYWRkQnJlYWtwb2ludChs
aW5lTnVtYmVyID0gMiwgZGlzYWJsZWQgPSB0cnVlKQorICAgIE9yaWdpbmFsVGV4dEVkaXRvci5h
ZGRCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAyLCBkaXNhYmxlZCA9IGZhbHNlKQogICAgIER1bXBp
bmcgYnJlYWtwb2ludCBzdG9yYWdlCiAgICAgICAgIGVkaXQtbWUuanM6MiwgZW5hYmxlZDp0cnVl
CiAgICAgRHVtcGluZyBicmVha3BvaW50IGxvY2F0aW9ucwpAQCAtODIsNiArODcsNyBAQCBFZGl0
aW5nIHNvdXJjZSBhZ2FpbiBzbyB0aGF0IGxpdmUgZWRpdCBjb3VsZCBzdWNjZWVkOgogICAgIER1
bXBpbmcgYnJlYWtwb2ludCBsb2NhdGlvbnMKICAgICAgICAgdXJsOiBlZGl0LW1lLmpzLCBsaW5l
TnVtYmVyOiAyLCBpc1RlbXBvcmFyeTogdHJ1ZQogQ29tbWl0dGluZyBlZGl0ZWQgc291cmNlIGFn
YWluOgorICAgIE9yaWdpbmFsVGV4dEVkaXRvci5yZW1vdmVCcmVha3BvaW50KGxpbmVOdW1iZXIg
PSAyKQogICAgIFRleHRFZGl0b3IucmVtb3ZlQnJlYWtwb2ludChsaW5lTnVtYmVyID0gMikKICAg
ICBUZXh0RWRpdG9yLnJlbW92ZUJyZWFrcG9pbnQobGluZU51bWJlciA9IDIpCiAgICAgVGV4dEVk
aXRvci5hZGRCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAyLCBkaXNhYmxlZCA9IGZhbHNlKQpAQCAt
MTA0LDYgKzExMCw3IEBAIFNldHRpbmcgYnJlYWtwb2ludDoKIEVkaXRpbmcgc291cmNlOgogICAg
IFRleHRFZGl0b3IucmVtb3ZlQnJlYWtwb2ludChsaW5lTnVtYmVyID0gMikKICAgICBUZXh0RWRp
dG9yLmFkZEJyZWFrcG9pbnQobGluZU51bWJlciA9IDIsIGRpc2FibGVkID0gdHJ1ZSkKKyAgICBP
cmlnaW5hbFRleHRFZGl0b3IuYWRkQnJlYWtwb2ludChsaW5lTnVtYmVyID0gMiwgZGlzYWJsZWQg
PSBmYWxzZSkKICAgICBEdW1waW5nIGJyZWFrcG9pbnQgc3RvcmFnZQogICAgICAgICBlZGl0LW1l
LmpzOjIsIGVuYWJsZWQ6dHJ1ZQogICAgIER1bXBpbmcgYnJlYWtwb2ludCBsb2NhdGlvbnMKQEAg
LTExOSw2ICsxMjYsNyBAQCBVbmRvaW5nIHNvdXJjZSBlZGl0aW5nOgogICAgIER1bXBpbmcgYnJl
YWtwb2ludCBsb2NhdGlvbnMKICAgICAgICAgdXJsOiBlZGl0LW1lLmpzLCBsaW5lTnVtYmVyOiAy
LCBpc1RlbXBvcmFyeTogdHJ1ZQogQ29tbWl0dGluZyBlZGl0ZWQgc291cmNlIGFnYWluOgorICAg
IE9yaWdpbmFsVGV4dEVkaXRvci5yZW1vdmVCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAyKQogICAg
IFRleHRFZGl0b3IucmVtb3ZlQnJlYWtwb2ludChsaW5lTnVtYmVyID0gMikKICAgICBUZXh0RWRp
dG9yLnJlbW92ZUJyZWFrcG9pbnQobGluZU51bWJlciA9IDIpCiAgICAgVGV4dEVkaXRvci5hZGRC
cmVha3BvaW50KGxpbmVOdW1iZXIgPSAyLCBkaXNhYmxlZCA9IGZhbHNlKQpAQCAtMTMwLDUgKzEz
OCw3MSBAQCBGaW5hbGx5IHJlbW92aW5nIGJyZWFrcG9pbnQ6CiAgICAgVGV4dEVkaXRvci5yZW1v
dmVCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAyKQogICAgIER1bXBpbmcgYnJlYWtwb2ludCBzdG9y
YWdlCiAgICAgRHVtcGluZyBicmVha3BvaW50IGxvY2F0aW9ucworCitSdW5uaW5nOiB0ZXN0RWRp
dEFub255bW91c1VuZG8KK1NldCB0aW1lciBmb3IgdGVzdCBmdW5jdGlvbi4KK1NjcmlwdCBleGVj
dXRpb24gcGF1c2VkLgorU2NyaXB0IGV4ZWN1dGlvbiByZXN1bWVkLgorU2hvd2luZyBzY3JpcHQg
c291cmNlOgorU2V0dGluZyBicmVha3BvaW50OgorICAgIFRleHRFZGl0b3IuYWRkQnJlYWtwb2lu
dChsaW5lTnVtYmVyID0gMiwgZGlzYWJsZWQgPSBmYWxzZSkKKyAgICBEdW1waW5nIGJyZWFrcG9p
bnQgc3RvcmFnZQorICAgICAgICA6MiwgZW5hYmxlZDp0cnVlCisgICAgRHVtcGluZyBicmVha3Bv
aW50IGxvY2F0aW9ucworICAgICAgICB1cmw6ICwgbGluZU51bWJlcjogMiwgaXNUZW1wb3Jhcnk6
IHRydWUKK0VkaXRpbmcgc291cmNlOgorICAgIFRleHRFZGl0b3IucmVtb3ZlQnJlYWtwb2ludChs
aW5lTnVtYmVyID0gMikKKyAgICBUZXh0RWRpdG9yLmFkZEJyZWFrcG9pbnQobGluZU51bWJlciA9
IDIsIGRpc2FibGVkID0gdHJ1ZSkKKyAgICBPcmlnaW5hbFRleHRFZGl0b3IuYWRkQnJlYWtwb2lu
dChsaW5lTnVtYmVyID0gMiwgZGlzYWJsZWQgPSBmYWxzZSkKKyAgICBEdW1waW5nIGJyZWFrcG9p
bnQgc3RvcmFnZQorICAgICAgICA6MiwgZW5hYmxlZDp0cnVlCisgICAgRHVtcGluZyBicmVha3Bv
aW50IGxvY2F0aW9ucworICAgICAgICB1cmw6ICwgbGluZU51bWJlcjogMiwgaXNUZW1wb3Jhcnk6
IHRydWUKK1VuZG9pbmcgc291cmNlIGVkaXRpbmc6CisgICAgT3JpZ2luYWxUZXh0RWRpdG9yLnJl
bW92ZUJyZWFrcG9pbnQobGluZU51bWJlciA9IDIpCisgICAgVGV4dEVkaXRvci5yZW1vdmVCcmVh
a3BvaW50KGxpbmVOdW1iZXIgPSAyKQorICAgIFRleHRFZGl0b3IucmVtb3ZlQnJlYWtwb2ludChs
aW5lTnVtYmVyID0gMikKKyAgICBUZXh0RWRpdG9yLmFkZEJyZWFrcG9pbnQobGluZU51bWJlciA9
IDIsIGRpc2FibGVkID0gZmFsc2UpCisgICAgRHVtcGluZyBicmVha3BvaW50IHN0b3JhZ2UKKyAg
ICAgICAgOjIsIGVuYWJsZWQ6dHJ1ZQorICAgIER1bXBpbmcgYnJlYWtwb2ludCBsb2NhdGlvbnMK
KyAgICAgICAgdXJsOiAsIGxpbmVOdW1iZXI6IDIsIGlzVGVtcG9yYXJ5OiB0cnVlCitGaW5hbGx5
IHJlbW92aW5nIGJyZWFrcG9pbnQ6CisgICAgVGV4dEVkaXRvci5yZW1vdmVCcmVha3BvaW50KGxp
bmVOdW1iZXIgPSAyKQorICAgIER1bXBpbmcgYnJlYWtwb2ludCBzdG9yYWdlCisgICAgRHVtcGlu
ZyBicmVha3BvaW50IGxvY2F0aW9ucworCitSdW5uaW5nOiB0ZXN0RWRpdER5bmFtaWNBbm9ueW1v
dXNVbmRvCitTZXQgdGltZXIgZm9yIHRlc3QgZnVuY3Rpb24uCitTY3JpcHQgZXhlY3V0aW9uIHBh
dXNlZC4KK1NjcmlwdCBleGVjdXRpb24gcmVzdW1lZC4KK1Nob3dpbmcgc2NyaXB0IHNvdXJjZToK
K1NldHRpbmcgYnJlYWtwb2ludDoKKyAgICBUZXh0RWRpdG9yLmFkZEJyZWFrcG9pbnQobGluZU51
bWJlciA9IDIsIGRpc2FibGVkID0gZmFsc2UpCisgICAgRHVtcGluZyBicmVha3BvaW50IHN0b3Jh
Z2UKKyAgICAgICAgOjIsIGVuYWJsZWQ6dHJ1ZQorICAgIER1bXBpbmcgYnJlYWtwb2ludCBsb2Nh
dGlvbnMKKyAgICAgICAgdXJsOiAsIGxpbmVOdW1iZXI6IDIsIGlzVGVtcG9yYXJ5OiB0cnVlCitF
ZGl0aW5nIHNvdXJjZToKKyAgICBUZXh0RWRpdG9yLnJlbW92ZUJyZWFrcG9pbnQobGluZU51bWJl
ciA9IDIpCisgICAgVGV4dEVkaXRvci5hZGRCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAyLCBkaXNh
YmxlZCA9IHRydWUpCisgICAgT3JpZ2luYWxUZXh0RWRpdG9yLmFkZEJyZWFrcG9pbnQobGluZU51
bWJlciA9IDIsIGRpc2FibGVkID0gZmFsc2UpCisgICAgRHVtcGluZyBicmVha3BvaW50IHN0b3Jh
Z2UKKyAgICAgICAgOjIsIGVuYWJsZWQ6dHJ1ZQorICAgIER1bXBpbmcgYnJlYWtwb2ludCBsb2Nh
dGlvbnMKKyAgICAgICAgdXJsOiAsIGxpbmVOdW1iZXI6IDIsIGlzVGVtcG9yYXJ5OiB0cnVlCitV
bmRvaW5nIHNvdXJjZSBlZGl0aW5nOgorICAgIE9yaWdpbmFsVGV4dEVkaXRvci5yZW1vdmVCcmVh
a3BvaW50KGxpbmVOdW1iZXIgPSAyKQorICAgIFRleHRFZGl0b3IucmVtb3ZlQnJlYWtwb2ludChs
aW5lTnVtYmVyID0gMikKKyAgICBUZXh0RWRpdG9yLnJlbW92ZUJyZWFrcG9pbnQobGluZU51bWJl
ciA9IDIpCisgICAgVGV4dEVkaXRvci5hZGRCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAyLCBkaXNh
YmxlZCA9IGZhbHNlKQorICAgIER1bXBpbmcgYnJlYWtwb2ludCBzdG9yYWdlCisgICAgICAgIDoy
LCBlbmFibGVkOnRydWUKKyAgICBEdW1waW5nIGJyZWFrcG9pbnQgbG9jYXRpb25zCisgICAgICAg
IHVybDogLCBsaW5lTnVtYmVyOiAyLCBpc1RlbXBvcmFyeTogdHJ1ZQorRmluYWxseSByZW1vdmlu
ZyBicmVha3BvaW50OgorICAgIFRleHRFZGl0b3IucmVtb3ZlQnJlYWtwb2ludChsaW5lTnVtYmVy
ID0gMikKKyAgICBEdW1waW5nIGJyZWFrcG9pbnQgc3RvcmFnZQorICAgIER1bXBpbmcgYnJlYWtw
b2ludCBsb2NhdGlvbnMKIERlYnVnZ2VyIHdhcyBkaXNhYmxlZC4KIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2xpdmUtZWRpdC1icmVha3BvaW50cy5odG1sIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2xpdmUtZWRpdC1icmVha3BvaW50cy5odG1s
CmluZGV4IDM1ODVkN2FlNjdmNmE5ZmI3YmMzOTdjMDJiMjVmN2FjNzEyZDIxMzkuLmJlOGI0NTUx
MjRiNmRhZWJlNjI4NzZjNTRjMmI4MTEyMTYwMzllZDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9saXZlLWVkaXQtYnJlYWtwb2ludHMuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvbGl2ZS1lZGl0LWJyZWFrcG9pbnRzLmh0bWwKQEAg
LTUsNiArNSwxNyBAQAogPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2xp
dmUtZWRpdC10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZWRpdC1t
ZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgorZnVuY3Rpb24gbG9hZER5bmFtaWNBbm9ueW1vdXNT
Y3JpcHQoKQoreworICAgIGZ1bmN0aW9uIHRlc3RGdW5jdGlvbigpCisgICAgeworICAgICAgICBk
ZWJ1Z2dlcjsKKyAgICB9CisgICAgdmFyIHNjcmlwdEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJzY3JpcHQiKTsKKyAgICBzY3JpcHRFbGVtZW50LnRleHRDb250ZW50ID0gU3RyaW5n
KHRlc3RGdW5jdGlvbik7CisgICAgZG9jdWVtbnQuaGVhZC5hcHBlbmRDaGlsZChzY3JpcHRFbGVt
ZW50KTsKK30KKwogZnVuY3Rpb24gdGVzdCgpCiB7CiAgICAgdmFyIHBhbmVsID0gV2ViSW5zcGVj
dG9yLnNob3dQYW5lbCgic2NyaXB0cyIpOyAgCkBAIC0zNiwxMiArNDcsMTQgQEAgZnVuY3Rpb24g
dGVzdCgpCiAKICAgICBmdW5jdGlvbiBhZGRCcmVha3BvaW50U25pZmZlcihsaW5lTnVtYmVyLCBk
aXNhYmxlZCkKICAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIgICAgVGV4
dEVkaXRvci5hZGRCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAiICsgbGluZU51bWJlciArICIsIGRp
c2FibGVkID0gIiArIGRpc2FibGVkICsgIikiKTsKKyAgICAgICAgdmFyIHByZWZpeCA9IHRoaXMu
bWFpbiA/ICIiIDogIk9yaWdpbmFsIjsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
IiAgICAiICsgcHJlZml4ICsgIlRleHRFZGl0b3IuYWRkQnJlYWtwb2ludChsaW5lTnVtYmVyID0g
IiArIGxpbmVOdW1iZXIgKyAiLCBkaXNhYmxlZCA9ICIgKyBkaXNhYmxlZCArICIpIik7CiAgICAg
fQogCiAgICAgZnVuY3Rpb24gcmVtb3ZlQnJlYWtwb2ludFNuaWZmZXIobGluZU51bWJlcikKICAg
ICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIgICAgVGV4dEVkaXRvci5yZW1v
dmVCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAiICsgbGluZU51bWJlciArICIpIik7CisgICAgICAg
IHZhciBwcmVmaXggPSB0aGlzLm1haW4gPyAiIiA6ICJPcmlnaW5hbCI7CisgICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KCIgICAgIiArIHByZWZpeCArICJUZXh0RWRpdG9yLnJlbW92ZUJy
ZWFrcG9pbnQobGluZU51bWJlciA9ICIgKyBsaW5lTnVtYmVyICsgIikiKTsKICAgICB9CiAKICAg
ICBXZWJJbnNwZWN0b3IuYnJlYWtwb2ludE1hbmFnZXIuX3N0b3JhZ2UuX2JyZWFrcG9pbnRzID0g
e307CkBAIC01MSw3ICs2NCw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIEluc3BlY3RvclRlc3Qu
cnVuRGVidWdnZXJUZXN0U3VpdGUoWwogICAgICAgICBmdW5jdGlvbiB0ZXN0RWRpdFVuZG8obmV4
dCkKICAgICAgICAgewotICAgICAgICAgICAgdmFyIGphdmFTY3JpcHRTb3VyY2VGcmFtZSwgdWlT
b3VyY2VDb2RlLCBzY3JpcHRGaWxlOworICAgICAgICAgICAgdmFyIGphdmFTY3JpcHRTb3VyY2VG
cmFtZSwgdWlTb3VyY2VDb2RlLCBzY3JpcHQsIG9yaWdpbmFsSmF2YVNjcmlwdFNvdXJjZUZyYW1l
LCBvcmlnaW5hbFVJU291cmNlQ29kZTsKIAogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zaG93
U2NyaXB0U291cmNlKCJlZGl0LW1lLmpzIiwgZGlkU2hvd1NjcmlwdFNvdXJjZSk7CiAKQEAgLTU5
LDE5ICs3MiwzMSBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICBqYXZhU2NyaXB0U291cmNlRnJhbWUgPSBzb3VyY2VGcmFtZTsKICAgICAgICAgICAgICAg
ICB1aVNvdXJjZUNvZGUgPSBzb3VyY2VGcmFtZS5fdWlTb3VyY2VDb2RlOwotICAgICAgICAgICAg
ICAgIHNjcmlwdEZpbGUgPSBzb3VyY2VGcmFtZS5fdWlTb3VyY2VDb2RlLnNjcmlwdEZpbGUoKTsK
KyAgICAgICAgICAgICAgICBqYXZhU2NyaXB0U291cmNlRnJhbWUuX3RleHRFZGl0b3IubWFpbiA9
IHRydWU7CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
ZGRSZXN1bHQoIlNldHRpbmcgYnJlYWtwb2ludDoiKTsKICAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRNYW5hZ2VyLkJyZWFrcG9p
bnQucHJvdG90eXBlLCAiX2FkZFJlc29sdmVkTG9jYXRpb24iLCBicmVha3BvaW50UmVzb2x2ZWQp
OwogICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2V0QnJlYWtwb2ludChzb3VyY2VGcmFt
ZSwgMiwgIiIsIHRydWUpOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBmdW5jdGlvbiBi
cmVha3BvaW50UmVzb2x2ZWQoKQorICAgICAgICAgICAgZnVuY3Rpb24gYnJlYWtwb2ludFJlc29s
dmVkKGxvY2F0aW9uKQogICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHNjcmlwdCA9IFdl
Ykluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLnNjcmlwdEZvcklkKGxvY2F0aW9uLnNjcmlwdElkKTsK
KwogICAgICAgICAgICAgICAgIGR1bXBCcmVha3BvaW50U3RvcmFnZUFuZExvY2F0aW9ucygpOwog
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJFZGl0aW5nIHNvdXJjZToi
KTsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJlcGxhY2VJblNvdXJjZShqYXZhU2Ny
aXB0U291cmNlRnJhbWUsICJ9IiwgIn0vLyIpOwogCisgICAgICAgICAgICAgICAgb3JpZ2luYWxV
SVNvdXJjZUNvZGUgPSBzY3JpcHQucmF3TG9jYXRpb25Ub1VJTG9jYXRpb24obG9jYXRpb24ubGlu
ZU51bWJlcikudWlTb3VyY2VDb2RlOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2hv
d1VJU291cmNlQ29kZShvcmlnaW5hbFVJU291cmNlQ29kZSwgZGlkU2hvd09yaWdpbmFsVUlTb3Vy
Y2VDb2RlKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gZGlkU2hvd09y
aWdpbmFsVUlTb3VyY2VDb2RlKHNvdXJjZUZyYW1lKQorICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgIG9yaWdpbmFsSmF2YVNjcmlwdFNvdXJjZUZyYW1lID0gc291cmNlRnJhbWU7CisgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRUcnVlKG9yaWdpbmFsSmF2YVNjcmlwdFNv
dXJjZUZyYW1lICE9PSBqYXZhU2NyaXB0U291cmNlRnJhbWUsICJFZGl0ZWQgYW5kIG9yaWdpbmFs
IGphdmFTY3JpcHRTb3VyY2VGcmFtZXMgc2hvdWxkIGRpZmZlci4iKTsKKyAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFzc2VydFRydWUob3JpZ2luYWxVSVNvdXJjZUNvZGUgIT09IHVpU291
cmNlQ29kZSwgIkVkaXRlZCBhbmQgb3JpZ2luYWwgdWlTb3VyY2VDb2RlcyBzaG91bGQgZGlmZmVy
LiIpOworCiAgICAgICAgICAgICAgICAgZHVtcEJyZWFrcG9pbnRTdG9yYWdlQW5kTG9jYXRpb25z
KCk7CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlVuZG9pbmcgc291
cmNlIGVkaXRpbmc6Iik7CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVy
KFdlYkluc3BlY3Rvci5CcmVha3BvaW50TWFuYWdlci5CcmVha3BvaW50LnByb3RvdHlwZSwgIl9h
ZGRSZXNvbHZlZExvY2F0aW9uIiwgYnJlYWtwb2ludFJlc29sdmVkQWdhaW4pOwpAQCAtOTEsNyAr
MTE2LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAKICAgICAgICAgZnVuY3Rpb24gdGVzdEVkaXRDb21t
aXQobmV4dCkKICAgICAgICAgewotICAgICAgICAgICAgdmFyIGphdmFTY3JpcHRTb3VyY2VGcmFt
ZSwgdWlTb3VyY2VDb2RlLCBzY3JpcHRGaWxlOworICAgICAgICAgICAgdmFyIGphdmFTY3JpcHRT
b3VyY2VGcmFtZSwgdWlTb3VyY2VDb2RlLCBzY3JpcHQsIG9yaWdpbmFsSmF2YVNjcmlwdFNvdXJj
ZUZyYW1lLCBvcmlnaW5hbFVJU291cmNlQ29kZTsKIAogICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5zaG93U2NyaXB0U291cmNlKCJlZGl0LW1lLmpzIiwgZGlkU2hvd1NjcmlwdFNvdXJjZSk7CiAK
QEAgLTk5LDE5ICsxMjQsMzAgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgamF2YVNjcmlwdFNvdXJjZUZyYW1lID0gc291cmNlRnJhbWU7CiAgICAgICAg
ICAgICAgICAgdWlTb3VyY2VDb2RlID0gc291cmNlRnJhbWUuX3VpU291cmNlQ29kZTsKLSAgICAg
ICAgICAgICAgICBzY3JpcHRGaWxlID0gc291cmNlRnJhbWUuX3VpU291cmNlQ29kZS5zY3JpcHRG
aWxlKCk7CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
ZGRSZXN1bHQoIlNldHRpbmcgYnJlYWtwb2ludDoiKTsKICAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRNYW5hZ2VyLkJyZWFrcG9p
bnQucHJvdG90eXBlLCAiX2FkZFJlc29sdmVkTG9jYXRpb24iLCBicmVha3BvaW50UmVzb2x2ZWQp
OwogICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2V0QnJlYWtwb2ludChzb3VyY2VGcmFt
ZSwgMiwgIiIsIHRydWUpOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBmdW5jdGlvbiBi
cmVha3BvaW50UmVzb2x2ZWQoKQorICAgICAgICAgICAgZnVuY3Rpb24gYnJlYWtwb2ludFJlc29s
dmVkKGxvY2F0aW9uKQogICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHNjcmlwdCA9IFdl
Ykluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLnNjcmlwdEZvcklkKGxvY2F0aW9uLnNjcmlwdElkKTsK
KwogICAgICAgICAgICAgICAgIGR1bXBCcmVha3BvaW50U3RvcmFnZUFuZExvY2F0aW9ucygpOwog
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJFZGl0aW5nIHNvdXJjZToi
KTsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJlcGxhY2VJblNvdXJjZShqYXZhU2Ny
aXB0U291cmNlRnJhbWUsICJ9IiwgIn0vLyIpOwogCisgICAgICAgICAgICAgICAgb3JpZ2luYWxV
SVNvdXJjZUNvZGUgPSBzY3JpcHQucmF3TG9jYXRpb25Ub1VJTG9jYXRpb24obG9jYXRpb24ubGlu
ZU51bWJlcikudWlTb3VyY2VDb2RlOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2hv
d1VJU291cmNlQ29kZShvcmlnaW5hbFVJU291cmNlQ29kZSwgZGlkU2hvd09yaWdpbmFsVUlTb3Vy
Y2VDb2RlKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gZGlkU2hvd09y
aWdpbmFsVUlTb3VyY2VDb2RlKHNvdXJjZUZyYW1lKQorICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgIG9yaWdpbmFsSmF2YVNjcmlwdFNvdXJjZUZyYW1lID0gc291cmNlRnJhbWU7CisgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRUcnVlKG9yaWdpbmFsSmF2YVNjcmlwdFNv
dXJjZUZyYW1lICE9PSBqYXZhU2NyaXB0U291cmNlRnJhbWUsICJFZGl0ZWQgYW5kIG9yaWdpbmFs
IGphdmFTY3JpcHRTb3VyY2VGcmFtZXMgc2hvdWxkIGRpZmZlci4iKTsKKyAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFzc2VydFRydWUob3JpZ2luYWxVSVNvdXJjZUNvZGUgIT09IHVpU291
cmNlQ29kZSwgIkVkaXRlZCBhbmQgb3JpZ2luYWwgdWlTb3VyY2VDb2RlcyBzaG91bGQgZGlmZmVy
LiIpOworCiAgICAgICAgICAgICAgICAgZHVtcEJyZWFrcG9pbnRTdG9yYWdlQW5kTG9jYXRpb25z
KCk7CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkNvbW1pdHRpbmcg
ZWRpdGVkIHNvdXJjZToiKTsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZm
ZXIoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRNYW5hZ2VyLkJyZWFrcG9pbnQucHJvdG90eXBlLCAi
X2FkZFJlc29sdmVkTG9jYXRpb24iLCBicmVha3BvaW50UmVzb2x2ZWRBZ2Fpbik7CkBAIC0xMzEs
NyArMTY3LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAKICAgICAgICAgZnVuY3Rpb24gdGVzdEVkaXRD
b21taXRGYWlsRWRpdENvbW1pdChuZXh0KQogICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgamF2
YVNjcmlwdFNvdXJjZUZyYW1lLCB1aVNvdXJjZUNvZGUsIHNjcmlwdEZpbGU7CisgICAgICAgICAg
ICB2YXIgamF2YVNjcmlwdFNvdXJjZUZyYW1lLCB1aVNvdXJjZUNvZGUsIHNjcmlwdCwgb3JpZ2lu
YWxKYXZhU2NyaXB0U291cmNlRnJhbWUsIG9yaWdpbmFsVUlTb3VyY2VDb2RlOwogCiAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LnNob3dTY3JpcHRTb3VyY2UoImVkaXQtbWUuanMiLCBkaWRTaG93
U2NyaXB0U291cmNlKTsKIApAQCAtMTM5LDE5ICsxNzUsMzAgQEAgZnVuY3Rpb24gdGVzdCgpCiAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgamF2YVNjcmlwdFNvdXJjZUZyYW1lID0gc291
cmNlRnJhbWU7CiAgICAgICAgICAgICAgICAgdWlTb3VyY2VDb2RlID0gc291cmNlRnJhbWUuX3Vp
U291cmNlQ29kZTsKLSAgICAgICAgICAgICAgICBzY3JpcHRGaWxlID0gc291cmNlRnJhbWUuX3Vp
U291cmNlQ29kZS5zY3JpcHRGaWxlKCk7CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNldHRpbmcgYnJlYWtwb2ludDoiKTsKICAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkJyZWFrcG9p
bnRNYW5hZ2VyLkJyZWFrcG9pbnQucHJvdG90eXBlLCAiX2FkZFJlc29sdmVkTG9jYXRpb24iLCBi
cmVha3BvaW50UmVzb2x2ZWQpOwogICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2V0QnJl
YWtwb2ludChzb3VyY2VGcmFtZSwgMiwgIiIsIHRydWUpOwogICAgICAgICAgICAgfQogCi0gICAg
ICAgICAgICBmdW5jdGlvbiBicmVha3BvaW50UmVzb2x2ZWQoKQorICAgICAgICAgICAgZnVuY3Rp
b24gYnJlYWtwb2ludFJlc29sdmVkKGxvY2F0aW9uKQogICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgIHNjcmlwdCA9IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLnNjcmlwdEZvcklkKGxv
Y2F0aW9uLnNjcmlwdElkKTsKKwogICAgICAgICAgICAgICAgIGR1bXBCcmVha3BvaW50U3RvcmFn
ZUFuZExvY2F0aW9ucygpOwogICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KCJFZGl0aW5nIHNvdXJjZToiKTsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJlcGxh
Y2VJblNvdXJjZShqYXZhU2NyaXB0U291cmNlRnJhbWUsICJ9IiwgIi8vfSIpOwogCisgICAgICAg
ICAgICAgICAgb3JpZ2luYWxVSVNvdXJjZUNvZGUgPSBzY3JpcHQucmF3TG9jYXRpb25Ub1VJTG9j
YXRpb24obG9jYXRpb24ubGluZU51bWJlcikudWlTb3VyY2VDb2RlOworICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3Quc2hvd1VJU291cmNlQ29kZShvcmlnaW5hbFVJU291cmNlQ29kZSwgZGlk
U2hvd09yaWdpbmFsVUlTb3VyY2VDb2RlKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
ZnVuY3Rpb24gZGlkU2hvd09yaWdpbmFsVUlTb3VyY2VDb2RlKHNvdXJjZUZyYW1lKQorICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgIG9yaWdpbmFsSmF2YVNjcmlwdFNvdXJjZUZyYW1lID0g
c291cmNlRnJhbWU7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRUcnVlKG9y
aWdpbmFsSmF2YVNjcmlwdFNvdXJjZUZyYW1lICE9PSBqYXZhU2NyaXB0U291cmNlRnJhbWUsICJF
ZGl0ZWQgYW5kIG9yaWdpbmFsIGphdmFTY3JpcHRTb3VyY2VGcmFtZXMgc2hvdWxkIGRpZmZlci4i
KTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydFRydWUob3JpZ2luYWxVSVNv
dXJjZUNvZGUgIT09IHVpU291cmNlQ29kZSwgIkVkaXRlZCBhbmQgb3JpZ2luYWwgdWlTb3VyY2VD
b2RlcyBzaG91bGQgZGlmZmVyLiIpOworCiAgICAgICAgICAgICAgICAgZHVtcEJyZWFrcG9pbnRT
dG9yYWdlQW5kTG9jYXRpb25zKCk7CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQoIkNvbW1pdHRpbmcgZWRpdGVkIHNvdXJjZToiKTsKICAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwsICJfZGlkRWRp
dFNjcmlwdFNvdXJjZSIsIGNvbW1pdEZhaWxlZCk7CkBAIC0xODQsNyArMjMxLDcgQEAgZnVuY3Rp
b24gdGVzdCgpCiAKICAgICAgICAgZnVuY3Rpb24gdGVzdEVkaXRDb21taXRGYWlsVW5kb0NvbW1p
dChuZXh0KQogICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgamF2YVNjcmlwdFNvdXJjZUZyYW1l
LCB1aVNvdXJjZUNvZGUsIHNjcmlwdEZpbGU7CisgICAgICAgICAgICB2YXIgamF2YVNjcmlwdFNv
dXJjZUZyYW1lLCB1aVNvdXJjZUNvZGUsIHNjcmlwdCwgb3JpZ2luYWxKYXZhU2NyaXB0U291cmNl
RnJhbWUsIG9yaWdpbmFsVUlTb3VyY2VDb2RlOwogCiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LnNob3dTY3JpcHRTb3VyY2UoImVkaXQtbWUuanMiLCBkaWRTaG93U2NyaXB0U291cmNlKTsKIApA
QCAtMTkyLDE5ICsyMzksMzAgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgamF2YVNjcmlwdFNvdXJjZUZyYW1lID0gc291cmNlRnJhbWU7CiAgICAgICAg
ICAgICAgICAgdWlTb3VyY2VDb2RlID0gc291cmNlRnJhbWUuX3VpU291cmNlQ29kZTsKLSAgICAg
ICAgICAgICAgICBzY3JpcHRGaWxlID0gc291cmNlRnJhbWUuX3VpU291cmNlQ29kZS5zY3JpcHRG
aWxlKCk7CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
ZGRSZXN1bHQoIlNldHRpbmcgYnJlYWtwb2ludDoiKTsKICAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRNYW5hZ2VyLkJyZWFrcG9p
bnQucHJvdG90eXBlLCAiX2FkZFJlc29sdmVkTG9jYXRpb24iLCBicmVha3BvaW50UmVzb2x2ZWQp
OwogICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2V0QnJlYWtwb2ludChzb3VyY2VGcmFt
ZSwgMiwgIiIsIHRydWUpOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBmdW5jdGlvbiBi
cmVha3BvaW50UmVzb2x2ZWQoKQorICAgICAgICAgICAgZnVuY3Rpb24gYnJlYWtwb2ludFJlc29s
dmVkKGxvY2F0aW9uKQogICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHNjcmlwdCA9IFdl
Ykluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLnNjcmlwdEZvcklkKGxvY2F0aW9uLnNjcmlwdElkKTsK
KwogICAgICAgICAgICAgICAgIGR1bXBCcmVha3BvaW50U3RvcmFnZUFuZExvY2F0aW9ucygpOwog
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJFZGl0aW5nIHNvdXJjZToi
KTsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJlcGxhY2VJblNvdXJjZShqYXZhU2Ny
aXB0U291cmNlRnJhbWUsICJ9IiwgIi8vfSIpOwogCisgICAgICAgICAgICAgICAgb3JpZ2luYWxV
SVNvdXJjZUNvZGUgPSBzY3JpcHQucmF3TG9jYXRpb25Ub1VJTG9jYXRpb24obG9jYXRpb24ubGlu
ZU51bWJlcikudWlTb3VyY2VDb2RlOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2hv
d1VJU291cmNlQ29kZShvcmlnaW5hbFVJU291cmNlQ29kZSwgZGlkU2hvd09yaWdpbmFsVUlTb3Vy
Y2VDb2RlKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gZGlkU2hvd09y
aWdpbmFsVUlTb3VyY2VDb2RlKHNvdXJjZUZyYW1lKQorICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgIG9yaWdpbmFsSmF2YVNjcmlwdFNvdXJjZUZyYW1lID0gc291cmNlRnJhbWU7CisgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRUcnVlKG9yaWdpbmFsSmF2YVNjcmlwdFNv
dXJjZUZyYW1lICE9PSBqYXZhU2NyaXB0U291cmNlRnJhbWUsICJFZGl0ZWQgYW5kIG9yaWdpbmFs
IGphdmFTY3JpcHRTb3VyY2VGcmFtZXMgc2hvdWxkIGRpZmZlci4iKTsKKyAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFzc2VydFRydWUob3JpZ2luYWxVSVNvdXJjZUNvZGUgIT09IHVpU291
cmNlQ29kZSwgIkVkaXRlZCBhbmQgb3JpZ2luYWwgdWlTb3VyY2VDb2RlcyBzaG91bGQgZGlmZmVy
LiIpOworCiAgICAgICAgICAgICAgICAgZHVtcEJyZWFrcG9pbnRTdG9yYWdlQW5kTG9jYXRpb25z
KCk7CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkNvbW1pdHRpbmcg
ZWRpdGVkIHNvdXJjZToiKTsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZm
ZXIoV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwsICJfZGlkRWRpdFNjcmlwdFNvdXJjZSIsIGNv
bW1pdEZhaWxlZCk7CkBAIC0yMzQsNiArMjkyLDEzNCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAg
ICAgICAgICAgICBuZXh0KCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0sCisKKyAgICAgICAg
ZnVuY3Rpb24gdGVzdEVkaXRBbm9ueW1vdXNVbmRvKG5leHQpCisgICAgICAgIHsKKyAgICAgICAg
ICAgIHZhciBqYXZhU2NyaXB0U291cmNlRnJhbWUsIHVpU291cmNlQ29kZSwgc2NyaXB0LCBvcmln
aW5hbEphdmFTY3JpcHRTb3VyY2VGcmFtZSwgb3JpZ2luYWxVSVNvdXJjZUNvZGU7CisgICAgICAg
ICAgICAKKyAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3RGdW5jdGlvbigpCisgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgZGVidWdnZXI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKFN0cmluZyh0ZXN0RnVuY3Rpb24pLCBJbnNwZWN0
b3JUZXN0LnJ1blRlc3RGdW5jdGlvbkFuZFdhaXRVbnRpbFBhdXNlZC5iaW5kKEluc3BlY3RvclRl
c3QsIHBhdXNlZCkpOworICAgICAgICAgICAgZnVuY3Rpb24gcGF1c2VkKCkKKyAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJlc3VtZUV4ZWN1dGlvbihyZXN1bWVk
KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gcmVzdW1lZCgpCisgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNob3dp
bmcgc2NyaXB0IHNvdXJjZToiKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNob3dV
SVNvdXJjZUNvZGUocGFuZWwudmlzaWJsZVZpZXcuX3VpU291cmNlQ29kZSwgZGlkU2hvd1Njcmlw
dFNvdXJjZSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGRpZFNob3dT
Y3JpcHRTb3VyY2Uoc291cmNlRnJhbWUpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
amF2YVNjcmlwdFNvdXJjZUZyYW1lID0gc291cmNlRnJhbWU7CisgICAgICAgICAgICAgICAgdWlT
b3VyY2VDb2RlID0gc291cmNlRnJhbWUuX3VpU291cmNlQ29kZTsKKyAgICAgICAgICAgICAgICBq
YXZhU2NyaXB0U291cmNlRnJhbWUuX3RleHRFZGl0b3IubWFpbiA9IHRydWU7CisgICAgICAgICAg
ICAgICAgCisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNldHRpbmcg
YnJlYWtwb2ludDoiKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIo
V2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRNYW5hZ2VyLkJyZWFrcG9pbnQucHJvdG90eXBlLCAiX2Fk
ZFJlc29sdmVkTG9jYXRpb24iLCBicmVha3BvaW50UmVzb2x2ZWQpOworICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3Quc2V0QnJlYWtwb2ludChzb3VyY2VGcmFtZSwgMiwgIiIsIHRydWUpOwor
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBicmVha3BvaW50UmVzb2x2ZWQo
bG9jYXRpb24pCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgc2NyaXB0ID0gV2ViSW5z
cGVjdG9yLmRlYnVnZ2VyTW9kZWwuc2NyaXB0Rm9ySWQobG9jYXRpb24uc2NyaXB0SWQpOworCisg
ICAgICAgICAgICAgICAgZHVtcEJyZWFrcG9pbnRTdG9yYWdlQW5kTG9jYXRpb25zKCk7CisgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkVkaXRpbmcgc291cmNlOiIpOwor
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucmVwbGFjZUluU291cmNlKGphdmFTY3JpcHRT
b3VyY2VGcmFtZSwgIn0iLCAifS8vIik7CisKKyAgICAgICAgICAgICAgICBvcmlnaW5hbFVJU291
cmNlQ29kZSA9IHNjcmlwdC5yYXdMb2NhdGlvblRvVUlMb2NhdGlvbihsb2NhdGlvbi5saW5lTnVt
YmVyKS51aVNvdXJjZUNvZGU7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zaG93VUlT
b3VyY2VDb2RlKG9yaWdpbmFsVUlTb3VyY2VDb2RlLCBkaWRTaG93T3JpZ2luYWxVSVNvdXJjZUNv
ZGUpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBkaWRTaG93T3JpZ2lu
YWxVSVNvdXJjZUNvZGUoc291cmNlRnJhbWUpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICAgb3JpZ2luYWxKYXZhU2NyaXB0U291cmNlRnJhbWUgPSBzb3VyY2VGcmFtZTsKKyAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydFRydWUob3JpZ2luYWxKYXZhU2NyaXB0U291cmNl
RnJhbWUgIT09IGphdmFTY3JpcHRTb3VyY2VGcmFtZSwgIkVkaXRlZCBhbmQgb3JpZ2luYWwgamF2
YVNjcmlwdFNvdXJjZUZyYW1lcyBzaG91bGQgZGlmZmVyLiIpOworICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYXNzZXJ0VHJ1ZShvcmlnaW5hbFVJU291cmNlQ29kZSAhPT0gdWlTb3VyY2VD
b2RlLCAiRWRpdGVkIGFuZCBvcmlnaW5hbCB1aVNvdXJjZUNvZGVzIHNob3VsZCBkaWZmZXIuIik7
CisKKyAgICAgICAgICAgICAgICBkdW1wQnJlYWtwb2ludFN0b3JhZ2VBbmRMb2NhdGlvbnMoKTsK
KyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiVW5kb2luZyBzb3VyY2Ug
ZWRpdGluZzoiKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2Vi
SW5zcGVjdG9yLkJyZWFrcG9pbnRNYW5hZ2VyLkJyZWFrcG9pbnQucHJvdG90eXBlLCAiX2FkZFJl
c29sdmVkTG9jYXRpb24iLCBicmVha3BvaW50UmVzb2x2ZWRBZ2Fpbik7CisgICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC51bmRvU291cmNlRWRpdGluZyhqYXZhU2NyaXB0U291cmNlRnJhbWUp
OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBicmVha3BvaW50UmVzb2x2
ZWRBZ2FpbigpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZHVtcEJyZWFrcG9pbnRT
dG9yYWdlQW5kTG9jYXRpb25zKCk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQoIkZpbmFsbHkgcmVtb3ZpbmcgYnJlYWtwb2ludDoiKTsKKyAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LnJlbW92ZUJyZWFrcG9pbnQoamF2YVNjcmlwdFNvdXJjZUZyYW1lLCAyKTsK
KworICAgICAgICAgICAgICAgIGR1bXBCcmVha3BvaW50U3RvcmFnZUFuZExvY2F0aW9ucygpOwor
ICAgICAgICAgICAgICAgIG5leHQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKKworICAg
ICAgICBmdW5jdGlvbiB0ZXN0RWRpdER5bmFtaWNBbm9ueW1vdXNVbmRvKG5leHQpCisgICAgICAg
IHsKKyAgICAgICAgICAgIHZhciBqYXZhU2NyaXB0U291cmNlRnJhbWUsIHVpU291cmNlQ29kZSwg
c2NyaXB0LCBvcmlnaW5hbEphdmFTY3JpcHRTb3VyY2VGcmFtZSwgb3JpZ2luYWxVSVNvdXJjZUNv
ZGU7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBh
Z2UoImxvYWREeW5hbWljQW5vbnltb3VzU2NyaXB0KCkiLCBJbnNwZWN0b3JUZXN0LnJ1blRlc3RG
dW5jdGlvbkFuZFdhaXRVbnRpbFBhdXNlZC5iaW5kKEluc3BlY3RvclRlc3QsIHBhdXNlZCkpOwor
ICAgICAgICAgICAgZnVuY3Rpb24gcGF1c2VkKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LnJlc3VtZUV4ZWN1dGlvbihyZXN1bWVkKTsKKyAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgZnVuY3Rpb24gcmVzdW1lZCgpCisgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNob3dpbmcgc2NyaXB0IHNvdXJj
ZToiKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNob3dVSVNvdXJjZUNvZGUocGFu
ZWwudmlzaWJsZVZpZXcuX3VpU291cmNlQ29kZSwgZGlkU2hvd1NjcmlwdFNvdXJjZSk7CisgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGRpZFNob3dTY3JpcHRTb3VyY2Uoc291
cmNlRnJhbWUpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgamF2YVNjcmlwdFNvdXJj
ZUZyYW1lID0gc291cmNlRnJhbWU7CisgICAgICAgICAgICAgICAgdWlTb3VyY2VDb2RlID0gc291
cmNlRnJhbWUuX3VpU291cmNlQ29kZTsKKyAgICAgICAgICAgICAgICBqYXZhU2NyaXB0U291cmNl
RnJhbWUuX3RleHRFZGl0b3IubWFpbiA9IHRydWU7CisgICAgICAgICAgICAgICAgCisgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNldHRpbmcgYnJlYWtwb2ludDoiKTsK
KyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkJy
ZWFrcG9pbnRNYW5hZ2VyLkJyZWFrcG9pbnQucHJvdG90eXBlLCAiX2FkZFJlc29sdmVkTG9jYXRp
b24iLCBicmVha3BvaW50UmVzb2x2ZWQpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
c2V0QnJlYWtwb2ludChzb3VyY2VGcmFtZSwgMiwgIiIsIHRydWUpOworICAgICAgICAgICAgfQor
CisgICAgICAgICAgICBmdW5jdGlvbiBicmVha3BvaW50UmVzb2x2ZWQobG9jYXRpb24pCisgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgc2NyaXB0ID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2Vy
TW9kZWwuc2NyaXB0Rm9ySWQobG9jYXRpb24uc2NyaXB0SWQpOworCisgICAgICAgICAgICAgICAg
ZHVtcEJyZWFrcG9pbnRTdG9yYWdlQW5kTG9jYXRpb25zKCk7CisgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoIkVkaXRpbmcgc291cmNlOiIpOworICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QucmVwbGFjZUluU291cmNlKGphdmFTY3JpcHRTb3VyY2VGcmFtZSwgIn0i
LCAifS8vIik7CisKKyAgICAgICAgICAgICAgICBvcmlnaW5hbFVJU291cmNlQ29kZSA9IHNjcmlw
dC5yYXdMb2NhdGlvblRvVUlMb2NhdGlvbihsb2NhdGlvbi5saW5lTnVtYmVyKS51aVNvdXJjZUNv
ZGU7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zaG93VUlTb3VyY2VDb2RlKG9yaWdp
bmFsVUlTb3VyY2VDb2RlLCBkaWRTaG93T3JpZ2luYWxVSVNvdXJjZUNvZGUpOworICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBkaWRTaG93T3JpZ2luYWxVSVNvdXJjZUNvZGUo
c291cmNlRnJhbWUpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgb3JpZ2luYWxKYXZh
U2NyaXB0U291cmNlRnJhbWUgPSBzb3VyY2VGcmFtZTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFzc2VydFRydWUob3JpZ2luYWxKYXZhU2NyaXB0U291cmNlRnJhbWUgIT09IGphdmFT
Y3JpcHRTb3VyY2VGcmFtZSwgIkVkaXRlZCBhbmQgb3JpZ2luYWwgamF2YVNjcmlwdFNvdXJjZUZy
YW1lcyBzaG91bGQgZGlmZmVyLiIpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNz
ZXJ0VHJ1ZShvcmlnaW5hbFVJU291cmNlQ29kZSAhPT0gdWlTb3VyY2VDb2RlLCAiRWRpdGVkIGFu
ZCBvcmlnaW5hbCB1aVNvdXJjZUNvZGVzIHNob3VsZCBkaWZmZXIuIik7CisKKyAgICAgICAgICAg
ICAgICBkdW1wQnJlYWtwb2ludFN0b3JhZ2VBbmRMb2NhdGlvbnMoKTsKKyAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiVW5kb2luZyBzb3VyY2UgZWRpdGluZzoiKTsKKyAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkJyZWFr
cG9pbnRNYW5hZ2VyLkJyZWFrcG9pbnQucHJvdG90eXBlLCAiX2FkZFJlc29sdmVkTG9jYXRpb24i
LCBicmVha3BvaW50UmVzb2x2ZWRBZ2Fpbik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC51bmRvU291cmNlRWRpdGluZyhqYXZhU2NyaXB0U291cmNlRnJhbWUpOworICAgICAgICAgICAg
fQorCisgICAgICAgICAgICBmdW5jdGlvbiBicmVha3BvaW50UmVzb2x2ZWRBZ2FpbigpCisgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgZHVtcEJyZWFrcG9pbnRTdG9yYWdlQW5kTG9jYXRp
b25zKCk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkZpbmFsbHkg
cmVtb3ZpbmcgYnJlYWtwb2ludDoiKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJl
bW92ZUJyZWFrcG9pbnQoamF2YVNjcmlwdFNvdXJjZUZyYW1lLCAyKTsKKworICAgICAgICAgICAg
ICAgIGR1bXBCcmVha3BvaW50U3RvcmFnZUFuZExvY2F0aW9ucygpOworICAgICAgICAgICAgICAg
IG5leHQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKICAgICBdKTsKIH07CiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZS1zY3JpcHQtbWFw
cGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmVzb3Vy
Y2Utc2NyaXB0LW1hcHBpbmctZXhwZWN0ZWQudHh0CmluZGV4IDcxMDg5NmU3MDEyMTNlOWIxYTE0
MDZlNmUyYmEzMGZjZmI2YTg2NGYuLmFmYTljMjExNmY4YTM1YmY2ODcwOWE1NTE4ZDQ2NDQwYzVl
NjM2ODMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJj
ZS1zY3JpcHQtbWFwcGluZy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL3Jlc291cmNlLXNjcmlwdC1tYXBwaW5nLWV4cGVjdGVkLnR4dApAQCAtNCw3ICs0
LDcgQEAgVGVzdHMgUmVzb3VyY2VTY3JpcHRNYXBwaW5nIGNsYXNzLgogUnVubmluZzogdGVzdFNj
cmlwdFdpdGhQZW5kaW5nUmVzb3VyY2UKIEFkZGluZyBzY3JpcHQgZm9yIHBlbmRpbmcgcmVxdWVz
dC4KIFVJU291cmNlQ29kZTogZm9vLmpzCi1VSVNvdXJjZUNvZGUgaXMgZWRpdGFibGU6IGZhbHNl
CitVSVNvdXJjZUNvZGUgaXMgZWRpdGFibGU6IHRydWUKIFVJU291cmNlQ29kZSBpcyBjb250ZW50
IHNjcmlwdDogdHJ1ZQogTWltZSB0eXBlOiB0ZXh0L2phdmFzY3JpcHQKIFVJU291cmNlQ29kZSBj
b250ZW50OiA8Y29udGVudCBzY3JpcHQgc291cmNlPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNlLXNjcmlwdC1tYXBwaW5nLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmVzb3VyY2Utc2NyaXB0LW1hcHBpbmcuaHRtbAppbmRl
eCAwM2Y0YzJkZDM1MDhhMWRkNTE0OTMxMTE4NWQxODc0ZDBmODM5ZTllLi42NjJhYWMwNDIzOWZk
NzI4NzM1MjhiZGViNGJiM2ZmM2RkMTU4YjA4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvcmVzb3VyY2Utc2NyaXB0LW1hcHBpbmcuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmVzb3VyY2Utc2NyaXB0LW1hcHBpbmcuaHRtbApAQCAt
MzAsMTQgKzMwLDE3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAgICAgICAgIHJlc291cmNl
U2NyaXB0TWFwcGluZy5hZGRTY3JpcHQoc2NyaXB0KTsKICAgICAgICAgICAgICAgICAKICAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRGb3JXb3Jrc3BhY2VUZW1wb3JhcnlVSVNvdXJj
ZUNvZGVBZGRlZEV2ZW50KHRlbXBvcmFyeVVJU291cmNlQ29kZUFkZGVkKTsKKyAgICAgICAgICAg
ICAgICB2YXIgdGVtcG9yYXJ5VUlTb3VyY2VDb2RlOwogICAgICAgICAgICAgICAgIHNjcmlwdC5y
YXdMb2NhdGlvblRvVUlMb2NhdGlvbigwLCA1KTsKIAogICAgICAgICAgICAgICAgIGZ1bmN0aW9u
IHRlbXBvcmFyeVVJU291cmNlQ29kZUFkZGVkKHVpU291cmNlQ29kZSkKICAgICAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tVSUxvY2F0aW9uKHVp
U291cmNlQ29kZSwgMCwgNSwgc2NyaXB0LnJhd0xvY2F0aW9uVG9VSUxvY2F0aW9uKDAsIDUpKTsK
LSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja1Jhd0xvY2F0aW9uKHNjcmlw
dCwgMTAsIDAsIHVpU291cmNlQ29kZS51aUxvY2F0aW9uVG9SYXdMb2NhdGlvbigxMCwgMCkpOwot
ICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBVSVNvdXJjZUNvZGUodWlTb3Vy
Y2VDb2RlLCBzdGVwMik7CisgICAgICAgICAgICAgICAgICAgIHRlbXBvcmFyeVVJU291cmNlQ29k
ZSA9IHVpU291cmNlQ29kZTsKICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmNoZWNrVUlMb2NhdGlvbih0ZW1wb3JhcnlVSVNvdXJjZUNvZGUsIDAsIDUs
IHNjcmlwdC5yYXdMb2NhdGlvblRvVUlMb2NhdGlvbigwLCA1KSk7CisgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5jaGVja1Jhd0xvY2F0aW9uKHNjcmlwdCwgMTAsIDAsIHRlbXBvcmFyeVVJ
U291cmNlQ29kZS51aUxvY2F0aW9uVG9SYXdMb2NhdGlvbigxMCwgMCkpOworICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuZHVtcFVJU291cmNlQ29kZSh0ZW1wb3JhcnlVSVNvdXJjZUNvZGUs
IHN0ZXAyKTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDIoKQpA
QCAtMTA1LDE0ICsxMDgsMTcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICAgICAgICAgcmVz
b3VyY2VTY3JpcHRNYXBwaW5nLmFkZFNjcmlwdChzY3JpcHQxKTsKICAgICAgICAgICAgICAgICAK
ICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRGb3JXb3Jrc3BhY2VUZW1wb3JhcnlV
SVNvdXJjZUNvZGVBZGRlZEV2ZW50KHRlbXBvcmFyeVVJU291cmNlQ29kZUFkZGVkKTsKKyAgICAg
ICAgICAgICAgICB2YXIgdGVtcG9yYXJ5VUlTb3VyY2VDb2RlOwogICAgICAgICAgICAgICAgIHNj
cmlwdDEucmF3TG9jYXRpb25Ub1VJTG9jYXRpb24oMCwgNSk7CiAKICAgICAgICAgICAgICAgICBm
dW5jdGlvbiB0ZW1wb3JhcnlVSVNvdXJjZUNvZGVBZGRlZCh1aVNvdXJjZUNvZGUpCiAgICAgICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrVUlMb2Nh
dGlvbih1aVNvdXJjZUNvZGUsIDAsIDUsIHNjcmlwdDEucmF3TG9jYXRpb25Ub1VJTG9jYXRpb24o
MCwgNSkpOwotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrUmF3TG9jYXRp
b24oc2NyaXB0MSwgMTAsIDAsIHVpU291cmNlQ29kZS51aUxvY2F0aW9uVG9SYXdMb2NhdGlvbigx
MCwgMCkpOwotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBVSVNvdXJjZUNv
ZGUodWlTb3VyY2VDb2RlLCBzdGVwMik7CisgICAgICAgICAgICAgICAgICAgIHRlbXBvcmFyeVVJ
U291cmNlQ29kZSA9IHVpU291cmNlQ29kZTsKICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrVUlMb2NhdGlvbih0ZW1wb3JhcnlVSVNvdXJjZUNv
ZGUsIDAsIDUsIHNjcmlwdDEucmF3TG9jYXRpb25Ub1VJTG9jYXRpb24oMCwgNSkpOworICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tSYXdMb2NhdGlvbihzY3JpcHQxLCAxMCwgMCwg
dGVtcG9yYXJ5VUlTb3VyY2VDb2RlLnVpTG9jYXRpb25Ub1Jhd0xvY2F0aW9uKDEwLCAwKSk7Cisg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wVUlTb3VyY2VDb2RlKHRlbXBvcmFyeVVJ
U291cmNlQ29kZSwgc3RlcDIpOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBmdW5jdGlv
biBzdGVwMigpCkBAIC0xMjEsMTQgKzEyNywxNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAg
ICAgICAgICBzY3JpcHQyID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVTY3JpcHRNb2NrKHVybCwgMCwg
NDUsIGZhbHNlLCAiPHNjcmlwdCBzb3VyY2UgMj4iKTsKICAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LndhaXRGb3JXb3Jrc3BhY2VUZW1wb3JhcnlVSVNvdXJjZUNvZGVSZW1vdmVkRXZlbnQo
ZnVuY3Rpb24oKSB7IH0pOwogICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qud2FpdEZvcldv
cmtzcGFjZVRlbXBvcmFyeVVJU291cmNlQ29kZUFkZGVkRXZlbnQodGVtcG9yYXJ5VUlTb3VyY2VD
b2RlQWRkZWQpOworICAgICAgICAgICAgICAgIHZhciB0ZW1wb3JhcnlVSVNvdXJjZUNvZGU7CiAg
ICAgICAgICAgICAgICAgcmVzb3VyY2VTY3JpcHRNYXBwaW5nLmFkZFNjcmlwdChzY3JpcHQyKTsK
IAogICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHRlbXBvcmFyeVVJU291cmNlQ29kZUFkZGVkKHVp
U291cmNlQ29kZSkKICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuY2hlY2tVSUxvY2F0aW9uKHVpU291cmNlQ29kZSwgMCwgNSwgc2NyaXB0Mi5yYXdM
b2NhdGlvblRvVUlMb2NhdGlvbigwLCA1KSk7Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuY2hlY2tSYXdMb2NhdGlvbihzY3JpcHQxLCAxMCwgMCwgdWlTb3VyY2VDb2RlLnVpTG9j
YXRpb25Ub1Jhd0xvY2F0aW9uKDEwLCAwKSk7Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZHVtcFVJU291cmNlQ29kZSh1aVNvdXJjZUNvZGUsIHN0ZXAzKTsKKyAgICAgICAgICAg
ICAgICAgICAgdGVtcG9yYXJ5VUlTb3VyY2VDb2RlID0gdWlTb3VyY2VDb2RlOwogICAgICAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tVSUxvY2F0aW9u
KHRlbXBvcmFyeVVJU291cmNlQ29kZSwgMCwgNSwgc2NyaXB0Mi5yYXdMb2NhdGlvblRvVUlMb2Nh
dGlvbigwLCA1KSk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja1Jhd0xvY2F0
aW9uKHNjcmlwdDEsIDEwLCAwLCB0ZW1wb3JhcnlVSVNvdXJjZUNvZGUudWlMb2NhdGlvblRvUmF3
TG9jYXRpb24oMTAsIDApKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBVSVNv
dXJjZUNvZGUodGVtcG9yYXJ5VUlTb3VyY2VDb2RlLCBzdGVwMyk7CiAgICAgICAgICAgICB9CiAK
ICAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAzKCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169894</attachid>
            <date>2012-10-22 06:31:33 -0700</date>
            <delta_ts>2012-10-22 09:08:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99989-20121022173011.patch</filename>
            <type>text/plain</type>
            <size>48041</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyMDMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmRkYmUxYTlkMDIzZDQy
MjA3NmQwNTJjZTIyNGIyMjcwOGM2NTEyMy4uOTE3ZmU2ZTg1MTI3MTRkNzFmMDc3YzQzOWZmZjBm
YTEyM2E2MDJlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTEwLTIyICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFRyZWF0IGR5bmFtaWMgYW5vbnltb3VzIHNjcmlwdHMgYXMgb3RoZXIgYW5vbnltb3VzIGFu
ZCBmaXggYW5vbnltb3VzIHNjcmlwdCBlZGl0aW5nIGFuZCBicmVha3BvaW50cy4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk5OTg5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRHluYW1pYyBhbm9ueW1vdXMg
c2NyaXB0cyBhcmUgbm93IG1hcHBlZCB0byBhbm9ueW1vdXMgdGVtcG9yYXJ5IHVpU291cmNlQ29k
ZXMuCisgICAgICAgIFJlc291cmNlU2NyaXB0TWFwcGluZyBub3cgc3VwcG9ydHMgdHdvIHR5cGVz
IG9mIHRlbXBvcmFyeSB1aVNvdXJjZUNvZGVzOgorICAgICAgICAgLSBvcmlnaW5hbCB1aVNvdXJj
ZUNvZGVzIHJlcHJlc2VudCBzY3JpcHRzIHdoaWxlIG1haW4gdWlTb3VyY2VDb2RlcyBhcmUgZGl2
ZXJnZWQ7CisgICAgICAgICAtIHRlbXBvcmFyeSB1aVNvdXJjZUNvZGVzIHJlcHJlc2VudCBzY3Jp
cHRzIGZvciB3aGljaCByZXNvdXJjZXMgYXJlIG5vdCB5ZXQgbG9hZGVkLgorCisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9CcmVha3BvaW50TWFuYWdlci5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5CcmVha3BvaW50TWFuYWdlci5icmVha3BvaW50U3RvcmFnZUlkKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5CcmVha3BvaW50TWFuYWdlci5TdG9yYWdlLnByb3RvdHlwZS5fdXBkYXRl
QnJlYWtwb2ludCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrVUlTb3Vy
Y2VDb2RlUHJvdmlkZXIuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmV0d29ya1VJU291cmNl
Q29kZVByb3ZpZGVyLnByb3RvdHlwZS5fcGFyc2VkU2NyaXB0U291cmNlKToKKyAgICAgICAgKiBp
bnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlU2NyaXB0TWFwcGluZy5qczoKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5SZXNvdXJjZVNjcmlwdE1hcHBpbmcpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlJlc291cmNlU2NyaXB0TWFwcGluZy5wcm90b3R5cGUucmF3TG9jYXRpb25Ub1VJTG9jYXRpb24p
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlU2NyaXB0TWFwcGluZy5wcm90b3R5cGUu
X2hhc01lcmdlZFRvVk0pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlU2NyaXB0TWFw
cGluZy5wcm90b3R5cGUuYWRkU2NyaXB0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJj
ZVNjcmlwdE1hcHBpbmcucHJvdG90eXBlLl9kZWxldGVPcmlnaW5hbFVJU291cmNlQ29kZUZvclNj
cmlwdHMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlU2NyaXB0TWFwcGluZy5wcm90
b3R5cGUuX2RlbGV0ZVRlbXBvcmFyeVVJU291cmNlQ29kZUZvclNjcmlwdHMpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlJlc291cmNlU2NyaXB0TWFwcGluZy5wcm90b3R5cGUuX2JpbmRVSVNvdXJj
ZUNvZGVUb1NjcmlwdHMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlU2NyaXB0TWFw
cGluZy5wcm90b3R5cGUuX2NyZWF0ZVVJU291cmNlQ29kZSk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuUmVzb3VyY2VTY3JpcHRNYXBwaW5nLnByb3RvdHlwZS5fZ2V0T3JDcmVhdGVUZW1wb3JhcnlV
SVNvdXJjZUNvZGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlU2NyaXB0TWFwcGlu
Zy5wcm90b3R5cGUuX2dldE9yQ3JlYXRlT3JpZ2luYWxVSVNvdXJjZUNvZGUpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlJlc291cmNlU2NyaXB0TWFwcGluZy5wcm90b3R5cGUuX3VpU291cmNlQ29k
ZUFkZGVkVG9Xb3Jrc3BhY2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlU2NyaXB0
TWFwcGluZy5wcm90b3R5cGUuX3NjcmlwdHNGb3JVSVNvdXJjZUNvZGUuZ2V0IGlmKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVNjcmlwdE1hcHBpbmcucHJvdG90eXBlLl9yZXNldCk6
CisKIDIwMTItMTAtMjEgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFBhZ2UgcG9wdXA6IEZpeCBjcmFzaCBieSBldmVudHMgYWZ0ZXIgY2xvc2luZwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9CcmVha3BvaW50TWFuYWdl
ci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQnJlYWtwb2ludE1hbmFn
ZXIuanMKaW5kZXggMWQ5ZDNlMjg2ZWI4YzAxZjBkMzc2ODZkNDczOTNkYWQzOWIwN2ZiNy4uNzA5
Y2YxMTkzZDM4OWNhMGViMWQ5YTNjMzdlOWIxMDE3OGUwOTkzYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9CcmVha3BvaW50TWFuYWdlci5qcworKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnRNYW5hZ2VyLmpzCkBA
IC02MCw2ICs2MCw4IEBAIFdlYkluc3BlY3Rvci5CcmVha3BvaW50TWFuYWdlci5FdmVudHMgPSB7
CiAKIFdlYkluc3BlY3Rvci5CcmVha3BvaW50TWFuYWdlci5icmVha3BvaW50U3RvcmFnZUlkID0g
ZnVuY3Rpb24odWlTb3VyY2VDb2RlKQogeworICAgIGlmICh1aVNvdXJjZUNvZGUuaXNUZW1wb3Jh
cnkpCisgICAgICAgIHJldHVybiAiIjsKICAgICByZXR1cm4gdWlTb3VyY2VDb2RlLmZvcm1hdHRl
ZCgpID8gImRlb2JmdXNjYXRlZDoiICsgdWlTb3VyY2VDb2RlLnVybCA6IHVpU291cmNlQ29kZS51
cmw7CiB9CiAKQEAgLTU3NSw3ICs1NzcsNyBAQCBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludE1hbmFn
ZXIuU3RvcmFnZS5wcm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgX3VwZGF0ZUJyZWFrcG9pbnQ6
IGZ1bmN0aW9uKGJyZWFrcG9pbnQpCiAgICAgewotICAgICAgICBpZiAodGhpcy5fbXV0ZWQpCisg
ICAgICAgIGlmICh0aGlzLl9tdXRlZCB8fCAhYnJlYWtwb2ludC5fYnJlYWtwb2ludFN0b3JhZ2VJ
ZCgpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB0aGlzLl9icmVha3BvaW50c1ticmVh
a3BvaW50Ll9icmVha3BvaW50U3RvcmFnZUlkKCldID0gbmV3IFdlYkluc3BlY3Rvci5CcmVha3Bv
aW50TWFuYWdlci5TdG9yYWdlLkl0ZW0oYnJlYWtwb2ludCk7CiAgICAgICAgIHRoaXMuX3NhdmUo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29y
a1VJU291cmNlQ29kZVByb3ZpZGVyLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9OZXR3b3JrVUlTb3VyY2VDb2RlUHJvdmlkZXIuanMKaW5kZXggYzMzMDBhYTBmNjU2YTM0
OTc3ZmVmNmI3NzVkN2FiNDBmMjRmZjA4OS4uZjZlODQzOGVlYzA4ZGU0YmRjNWYxYzNiN2Q0YjQ2
Nzg3N2ZiZGE3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9OZXR3b3JrVUlTb3VyY2VDb2RlUHJvdmlkZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrVUlTb3VyY2VDb2RlUHJvdmlkZXIuanMKQEAgLTcyLDEz
ICs3Miw5IEBAIFdlYkluc3BlY3Rvci5OZXR3b3JrVUlTb3VyY2VDb2RlUHJvdmlkZXIucHJvdG90
eXBlID0gewogICAgICAgICAvLyBPbmx5IGFkZCB1aVNvdXJjZUNvZGVzIGZvcgogICAgICAgICAv
LyAtIGNvbnRlbnQgc2NyaXB0czsKICAgICAgICAgLy8gLSBzY3JpcHRzIHdpdGggZXhwbGljaXQg
c291cmNlVVJMIGNvbW1lbnQ7Ci0gICAgICAgIC8vIC0gZHluYW1pYyBhbm9ueW1vdXMgc2NyaXB0
cyAoc2NyaXB0IGVsZW1lbnRzIHdpdGhvdXQgc3JjIGF0dHJpYnV0ZSk7CiAgICAgICAgIC8vIC0g
ZHluYW1pYyBzY3JpcHRzIChzY3JpcHQgZWxlbWVudHMgd2l0aCBzcmMgYXR0cmlidXRlKSB3aGVu
IGluc3BlY3RvciBpcyBvcGVuZWQgYWZ0ZXIgdGhlIHNjcmlwdCB3YXMgbG9hZGVkLgogICAgICAg
ICBpZiAoIXNjcmlwdC5oYXNTb3VyY2VVUkwgJiYgIXNjcmlwdC5pc0NvbnRlbnRTY3JpcHQpIHsK
LSAgICAgICAgICAgIHZhciByZXNvdXJjZSA9IFdlYkluc3BlY3Rvci5yZXNvdXJjZUZvclVSTChz
Y3JpcHQuc291cmNlVVJMKTsKLSAgICAgICAgICAgIGlmIChyZXNvdXJjZSAmJiByZXNvdXJjZS5j
b250ZW50VHlwZSgpID09PSBXZWJJbnNwZWN0b3IucmVzb3VyY2VUeXBlcy5Eb2N1bWVudCkKLSAg
ICAgICAgICAgICAgICBpc0R5bmFtaWNBbm9ueW1vdXNTY3JpcHQgPSB0cnVlOwotICAgICAgICAg
ICAgZWxzZSBpZiAocmVzb3VyY2UgfHwgV2ViSW5zcGVjdG9yLm5ldHdvcmtMb2cucmVxdWVzdEZv
clVSTChzY3JpcHQuc291cmNlVVJMKSkKKyAgICAgICAgICAgIGlmIChXZWJJbnNwZWN0b3IucmVz
b3VyY2VGb3JVUkwoc2NyaXB0LnNvdXJjZVVSTCkgfHwgV2ViSW5zcGVjdG9yLm5ldHdvcmtMb2cu
cmVxdWVzdEZvclVSTChzY3JpcHQuc291cmNlVVJMKSkKICAgICAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KICAgICAgICAgLy8gRmlsdGVyIG91dCBlbWJlZGRlciBpbmplY3RlZCBjb250
ZW50IHNjcmlwdHMuCkBAIC04NywxNSArODMsOSBAQCBXZWJJbnNwZWN0b3IuTmV0d29ya1VJU291
cmNlQ29kZVByb3ZpZGVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIGlmICghcGFyc2VkVVJM
Lmhvc3QpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIGlmICh0
aGlzLl91aVNvdXJjZUNvZGVGb3JSZXNvdXJjZVtzY3JpcHQuc291cmNlVVJMXSAmJiAhaXNEeW5h
bWljQW5vbnltb3VzU2NyaXB0KQorICAgICAgICBpZiAodGhpcy5fdWlTb3VyY2VDb2RlRm9yUmVz
b3VyY2Vbc2NyaXB0LnNvdXJjZVVSTF0pCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIHZh
ciB1cmwgPSBzY3JpcHQuc291cmNlVVJMOwotICAgICAgICBpZiAoaXNEeW5hbWljQW5vbnltb3Vz
U2NyaXB0KSB7Ci0gICAgICAgICAgICB2YXIgZHluYW1pY0Fub255bW91c1NjcmlwdEluZGV4ID0g
KHRoaXMuX2xhc3REeW5hbWljQW5vbnltb3VzU2NyaXB0SW5kZXhGb3JVUkxbdXJsXSB8fCAwKSAr
IDE7Ci0gICAgICAgICAgICB0aGlzLl9sYXN0RHluYW1pY0Fub255bW91c1NjcmlwdEluZGV4Rm9y
VVJMW3VybF0gPSBkeW5hbWljQW5vbnltb3VzU2NyaXB0SW5kZXg7Ci0gICAgICAgICAgICB1cmwg
Kz0gIiAoIiArIGR5bmFtaWNBbm9ueW1vdXNTY3JpcHRJbmRleCArICIpIjsKLSAgICAgICAgfQot
ICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gbmV3IFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUo
dXJsLCBzY3JpcHQsIHRydWUpOworICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gbmV3IFdlYklu
c3BlY3Rvci5VSVNvdXJjZUNvZGUoc2NyaXB0LnNvdXJjZVVSTCwgc2NyaXB0LCB0cnVlKTsKICAg
ICAgICAgdGhpcy5fdWlTb3VyY2VDb2RlRm9yUmVzb3VyY2Vbc2NyaXB0LnNvdXJjZVVSTF0gPSB1
aVNvdXJjZUNvZGU7CiAgICAgICAgIHRoaXMuX3dvcmtzcGFjZS5wcm9qZWN0KCkuYWRkVUlTb3Vy
Y2VDb2RlKHVpU291cmNlQ29kZSk7CiAgICAgfSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VTY3JpcHRNYXBwaW5nLmpzIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVNjcmlwdE1hcHBpbmcuanMKaW5kZXgg
ZGIzYzJhNzJmOTQ0NmNjYjNlNmYzNTRkY2NmOWVmYzk3Y2JmN2MwYi4uYmQ2YjJmYTNlZDBlZWNi
OTc2Y2JiZWNlNzBkYTVlN2M3YmRmODkzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVNjcmlwdE1hcHBpbmcuanMKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVNjcmlwdE1hcHBpbmcuanMKQEAgLTQx
LDYgKzQxLDExIEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZVNjcmlwdE1hcHBpbmcgPSBmdW5jdGlv
bih3b3Jrc3BhY2UpCiAKICAgICAvKiogQHR5cGUge09iamVjdC48c3RyaW5nLCBXZWJJbnNwZWN0
b3IuVUlTb3VyY2VDb2RlPn0gKi8KICAgICB0aGlzLl90ZW1wb3JhcnlVSVNvdXJjZUNvZGVGb3JT
Y3JpcHRJZCA9IHt9OworICAgIHRoaXMuX3NjcmlwdElkc0ZvclRlbXBvcmFyeVVJU291cmNlQ29k
ZSA9IG5ldyBNYXAoKTsKKyAgICAvKiogQHR5cGUge09iamVjdC48c3RyaW5nLCBXZWJJbnNwZWN0
b3IuVUlTb3VyY2VDb2RlPn0gKi8KKyAgICB0aGlzLl9vcmlnaW5hbFVJU291cmNlQ29kZUZvclNj
cmlwdElkID0ge307CisgICAgdGhpcy5fc2NyaXB0SWRzRm9yT3JpZ2luYWxVSVNvdXJjZUNvZGUg
PSBuZXcgTWFwKCk7CisKICAgICB0aGlzLl9zY3JpcHRzID0gW107CiB9CiAKQEAgLTUzLDE0ICs1
OCw5IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZVNjcmlwdE1hcHBpbmcucHJvdG90eXBlID0gewog
ICAgIHsKICAgICAgICAgdmFyIGRlYnVnZ2VyTW9kZWxMb2NhdGlvbiA9IC8qKiBAdHlwZSB7V2Vi
SW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuTG9jYXRpb259ICovIHJhd0xvY2F0aW9uOwogICAgICAg
ICB2YXIgc2NyaXB0ID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuc2NyaXB0Rm9ySWQoZGVi
dWdnZXJNb2RlbExvY2F0aW9uLnNjcmlwdElkKTsKLSAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9
IHRoaXMuX3dvcmtzcGFjZVVJU291cmNlQ29kZUZvclNjcmlwdChzY3JpcHQpOwotICAgICAgICBp
ZiAoIXVpU291cmNlQ29kZSkKLSAgICAgICAgICAgIHVpU291cmNlQ29kZSA9IHRoaXMuX2dldE9y
Q3JlYXRlVGVtcG9yYXJ5VUlTb3VyY2VDb2RlKHNjcmlwdCk7Ci0gICAgICAgIGVsc2UgaWYgKHVp
U291cmNlQ29kZS5zY3JpcHRGaWxlKCkgJiYgdWlTb3VyY2VDb2RlLnNjcmlwdEZpbGUoKS5oYXNE
aXZlcmdlZEZyb21WTSgpKSB7Ci0gICAgICAgICAgICB2YXIgdGVtcG9yYXJ5VUlTb3VyY2VDb2Rl
ID0gdGhpcy5fZ2V0T3JDcmVhdGVUZW1wb3JhcnlVSVNvdXJjZUNvZGUoc2NyaXB0KTsKLSAgICAg
ICAgICAgIHRlbXBvcmFyeVVJU291cmNlQ29kZS5kaXZlcmdlZFZlcnNpb24gPSB1aVNvdXJjZUNv
ZGU7Ci0gICAgICAgICAgICB1aVNvdXJjZUNvZGUgPSB0ZW1wb3JhcnlVSVNvdXJjZUNvZGU7Ci0g
ICAgICAgIH0KKyAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IHRoaXMuX3dvcmtzcGFjZVVJU291
cmNlQ29kZUZvclNjcmlwdChzY3JpcHQpIHx8IHRoaXMuX2dldE9yQ3JlYXRlVGVtcG9yYXJ5VUlT
b3VyY2VDb2RlKHNjcmlwdCk7CisgICAgICAgIGlmICh1aVNvdXJjZUNvZGUuc2NyaXB0RmlsZSgp
ICYmIHVpU291cmNlQ29kZS5zY3JpcHRGaWxlKCkuaGFzRGl2ZXJnZWRGcm9tVk0oKSkKKyAgICAg
ICAgICAgIHVpU291cmNlQ29kZSA9IHRoaXMuX2dldE9yQ3JlYXRlT3JpZ2luYWxVSVNvdXJjZUNv
ZGUoc2NyaXB0LCB1aVNvdXJjZUNvZGUpOwogICAgICAgICBjb25zb2xlLmFzc2VydCghIXVpU291
cmNlQ29kZSk7CiAgICAgICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLlVJTG9jYXRpb24odWlT
b3VyY2VDb2RlLCBkZWJ1Z2dlck1vZGVsTG9jYXRpb24ubGluZU51bWJlciwgZGVidWdnZXJNb2Rl
bExvY2F0aW9uLmNvbHVtbk51bWJlciB8fCAwKTsKICAgICB9LApAQCAtNzMsOSArNzMsOSBAQCBX
ZWJJbnNwZWN0b3IuUmVzb3VyY2VTY3JpcHRNYXBwaW5nLnByb3RvdHlwZSA9IHsKICAgICAgICAg
dmFyIHNjcmlwdHMgPSB0aGlzLl9zY3JpcHRzRm9yVUlTb3VyY2VDb2RlKHVpU291cmNlQ29kZSk7
CiAgICAgICAgIGlmICghc2NyaXB0cy5sZW5ndGgpCiAgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIHRoaXMuX2RlbGV0ZU9yaWdpbmFsVUlTb3VyY2VDb2RlRm9yU2NyaXB0cyhzY3JpcHRzKTsK
ICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzY3JpcHRzLmxlbmd0aDsgKytpKQogICAgICAg
ICAgICAgc2NyaXB0c1tpXS5zZXRTb3VyY2VNYXBwaW5nKHRoaXMpOwotICAgICAgICB0aGlzLl9k
ZWxldGVUZW1wb3JhcnlVSVNvdXJjZUNvZGVGb3JTY3JpcHRzKHNjcmlwdHMpOwogICAgIH0sCiAK
ICAgICAvKioKQEAgLTEyOSw4ICsxMjksMjcgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlU2NyaXB0
TWFwcGluZy5wcm90b3R5cGUgPSB7CiAgICAgICAgIH0KIAogICAgICAgICB2YXIgc2NyaXB0cyA9
IHNjcmlwdC5pc0lubGluZVNjcmlwdCgpID8gdGhpcy5fc2NyaXB0c0ZvclNvdXJjZVVSTChzY3Jp
cHQuc291cmNlVVJMLCB0cnVlKSA6IFtzY3JpcHRdOwotICAgICAgICBpZiAodGhpcy5fZGVsZXRl
VGVtcG9yYXJ5VUlTb3VyY2VDb2RlRm9yU2NyaXB0cyhzY3JpcHRzKSkKKworICAgICAgICBpZiAo
dGhpcy5fZGVsZXRlVGVtcG9yYXJ5VUlTb3VyY2VDb2RlRm9yU2NyaXB0cyhzY3JpcHRzKSkgewor
ICAgICAgICAgICAgdGhpcy5fZGVsZXRlT3JpZ2luYWxVSVNvdXJjZUNvZGVGb3JTY3JpcHRzKHNj
cmlwdHMpOwogICAgICAgICAgICAgdWlTb3VyY2VDb2RlID0gdGhpcy5fZ2V0T3JDcmVhdGVUZW1w
b3JhcnlVSVNvdXJjZUNvZGUoc2NyaXB0KTsKKyAgICAgICAgfQorICAgIH0sCisKKyAgICAvKioK
KyAgICAgKiBAcGFyYW0ge0FycmF5LjxXZWJJbnNwZWN0b3IuU2NyaXB0Pn0gc2NyaXB0cworICAg
ICAqLworICAgIF9kZWxldGVPcmlnaW5hbFVJU291cmNlQ29kZUZvclNjcmlwdHM6IGZ1bmN0aW9u
KHNjcmlwdHMpCisgICAgeworICAgICAgICB2YXIgb3JpZ2luYWxVSVNvdXJjZUNvZGU7CisgICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2NyaXB0cy5sZW5ndGg7ICsraSkgeworICAgICAgICAg
ICAgb3JpZ2luYWxVSVNvdXJjZUNvZGUgPSBvcmlnaW5hbFVJU291cmNlQ29kZSB8fCB0aGlzLl9v
cmlnaW5hbFVJU291cmNlQ29kZUZvclNjcmlwdElkW3NjcmlwdHNbaV0uc2NyaXB0SWRdOworICAg
ICAgICAgICAgZGVsZXRlIHRoaXMuX29yaWdpbmFsVUlTb3VyY2VDb2RlRm9yU2NyaXB0SWRbc2Ny
aXB0c1tpXS5zY3JpcHRJZF07CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFvcmlnaW5hbFVJU291
cmNlQ29kZSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgdGhpcy5fd29ya3NwYWNlLnBy
b2plY3QoKS5yZW1vdmVUZW1wb3JhcnlVSVNvdXJjZUNvZGUob3JpZ2luYWxVSVNvdXJjZUNvZGUp
OworICAgICAgICB0aGlzLl9zY3JpcHRJZHNGb3JPcmlnaW5hbFVJU291cmNlQ29kZS5yZW1vdmUo
b3JpZ2luYWxVSVNvdXJjZUNvZGUpOwogICAgIH0sCiAKICAgICAvKioKQEAgLTE0MSwxMyArMTYw
LDE0IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZVNjcmlwdE1hcHBpbmcucHJvdG90eXBlID0gewog
ICAgIHsKICAgICAgICAgdmFyIHRlbXBvcmFyeVVJU291cmNlQ29kZTsKICAgICAgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCBzY3JpcHRzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICB2YXIgc2Ny
aXB0ID0gc2NyaXB0c1tpXTsKLSAgICAgICAgICAgIHRlbXBvcmFyeVVJU291cmNlQ29kZSA9IHRl
bXBvcmFyeVVJU291cmNlQ29kZSB8fCB0aGlzLl90ZW1wb3JhcnlVSVNvdXJjZUNvZGVGb3JTY3Jp
cHRJZFtzY3JpcHQuc2NyaXB0SWRdOwotICAgICAgICAgICAgZGVsZXRlIHRoaXMuX3RlbXBvcmFy
eVVJU291cmNlQ29kZUZvclNjcmlwdElkW3NjcmlwdC5zY3JpcHRJZF07CisgICAgICAgICAgICB0
ZW1wb3JhcnlVSVNvdXJjZUNvZGUgPSB0ZW1wb3JhcnlVSVNvdXJjZUNvZGUgfHwgdGhpcy5fdGVt
cG9yYXJ5VUlTb3VyY2VDb2RlRm9yU2NyaXB0SWRbc2NyaXB0c1tpXS5zY3JpcHRJZF07CisgICAg
ICAgICAgICBkZWxldGUgdGhpcy5fdGVtcG9yYXJ5VUlTb3VyY2VDb2RlRm9yU2NyaXB0SWRbc2Ny
aXB0c1tpXS5zY3JpcHRJZF07CiAgICAgICAgIH0KLSAgICAgICAgaWYgKHRlbXBvcmFyeVVJU291
cmNlQ29kZSkKLSAgICAgICAgICAgIHRoaXMuX3dvcmtzcGFjZS5wcm9qZWN0KCkucmVtb3ZlVGVt
cG9yYXJ5VUlTb3VyY2VDb2RlKHRlbXBvcmFyeVVJU291cmNlQ29kZSk7Ci0gICAgICAgIHJldHVy
biAhIXRlbXBvcmFyeVVJU291cmNlQ29kZTsKKyAgICAgICAgaWYgKCF0ZW1wb3JhcnlVSVNvdXJj
ZUNvZGUpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHRoaXMuX3dvcmtzcGFj
ZS5wcm9qZWN0KCkucmVtb3ZlVGVtcG9yYXJ5VUlTb3VyY2VDb2RlKHRlbXBvcmFyeVVJU291cmNl
Q29kZSk7CisgICAgICAgIHRoaXMuX3NjcmlwdElkc0ZvclRlbXBvcmFyeVVJU291cmNlQ29kZS5y
ZW1vdmUodGVtcG9yYXJ5VUlTb3VyY2VDb2RlKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
fSwKIAogICAgIC8qKgpAQCAtMTYxLDcgKzE4MSw3IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZVNj
cmlwdE1hcHBpbmcucHJvdG90eXBlID0gewogICAgICAgICAgICAgc2NyaXB0c1tpXS5zZXRTb3Vy
Y2VNYXBwaW5nKHRoaXMpOwogICAgICAgICB1aVNvdXJjZUNvZGUuaXNDb250ZW50U2NyaXB0ID0g
c2NyaXB0c1swXS5pc0NvbnRlbnRTY3JpcHQ7CiAgICAgICAgIHVpU291cmNlQ29kZS5zZXRTb3Vy
Y2VNYXBwaW5nKHRoaXMpOwotICAgICAgICBpZiAoIXVpU291cmNlQ29kZS5pc1RlbXBvcmFyeSkg
eworICAgICAgICBpZiAodWlTb3VyY2VDb2RlLmlzRWRpdGFibGUoKSkgewogICAgICAgICAgICAg
dmFyIHNjcmlwdEZpbGUgPSBuZXcgV2ViSW5zcGVjdG9yLlJlc291cmNlU2NyaXB0RmlsZSh0aGlz
LCB1aVNvdXJjZUNvZGUpOwogICAgICAgICAgICAgdWlTb3VyY2VDb2RlLnNldFNjcmlwdEZpbGUo
c2NyaXB0RmlsZSk7CiAgICAgICAgIH0KQEAgLTE5NSw2ICsyMTUsMjIgQEAgV2ViSW5zcGVjdG9y
LlJlc291cmNlU2NyaXB0TWFwcGluZy5wcm90b3R5cGUgPSB7CiAgICAgfSwKIAogICAgIC8qKgor
ICAgICAqIEBwYXJhbSB7QXJyYXkuPFdlYkluc3BlY3Rvci5TY3JpcHQ+fSBzY3JpcHRzCisgICAg
ICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlPX0gZGl2ZXJnZWRWZXJzaW9uCisg
ICAgICogQHJldHVybiB7V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZX0KKyAgICAgKi8KKyAgICBf
Y3JlYXRlVUlTb3VyY2VDb2RlOiBmdW5jdGlvbihzY3JpcHRzLCBkaXZlcmdlZFZlcnNpb24pCisg
ICAgeworICAgICAgICB2YXIgc2NyaXB0ID0gc2NyaXB0c1swXTsKKyAgICAgICAgdmFyIGNvbnRl
bnRQcm92aWRlciA9IHNjcmlwdC5pc0lubGluZVNjcmlwdCgpID8gbmV3IFdlYkluc3BlY3Rvci5D
b25jYXRlbmF0ZWRTY3JpcHRzQ29udGVudFByb3ZpZGVyKHNjcmlwdHMpIDogc2NyaXB0OworICAg
ICAgICB2YXIgaXNEeW5hbWljU2NyaXB0ID0gdGhpcy5faXNEeW5hbWljU2NyaXB0KHNjcmlwdCk7
CisgICAgICAgIHZhciB1cmwgPSBpc0R5bmFtaWNTY3JpcHQgPyAiIiA6IHNjcmlwdC5zb3VyY2VV
Ukw7CisgICAgICAgIHZhciB0ZW1wb3JhcnlVSVNvdXJjZUNvZGUgPSBuZXcgV2ViSW5zcGVjdG9y
LlVJU291cmNlQ29kZSh1cmwsIGNvbnRlbnRQcm92aWRlciwgIXNjcmlwdC5pc0lubGluZVNjcmlw
dCgpICYmICFkaXZlcmdlZFZlcnNpb24pOworICAgICAgICB0ZW1wb3JhcnlVSVNvdXJjZUNvZGUu
ZGl2ZXJnZWRWZXJzaW9uID0gZGl2ZXJnZWRWZXJzaW9uOworICAgICAgICByZXR1cm4gdGVtcG9y
YXJ5VUlTb3VyY2VDb2RlOworICAgIH0sCisKKyAgICAvKioKICAgICAgKiBAcGFyYW0ge1dlYklu
c3BlY3Rvci5TY3JpcHR9IHNjcmlwdAogICAgICAqIEByZXR1cm4ge1dlYkluc3BlY3Rvci5VSVNv
dXJjZUNvZGV9CiAgICAgICovCkBAIC0yMDUsMTcgKzI0MSw0MiBAQCBXZWJJbnNwZWN0b3IuUmVz
b3VyY2VTY3JpcHRNYXBwaW5nLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHJldHVybiB0ZW1w
b3JhcnlVSVNvdXJjZUNvZGU7CiAKICAgICAgICAgdmFyIHNjcmlwdHMgPSBzY3JpcHQuaXNJbmxp
bmVTY3JpcHQoKSA/IHRoaXMuX3NjcmlwdHNGb3JTb3VyY2VVUkwoc2NyaXB0LnNvdXJjZVVSTCwg
dHJ1ZSkgOiBbc2NyaXB0XTsKLSAgICAgICAgdmFyIGNvbnRlbnRQcm92aWRlciA9IHNjcmlwdC5p
c0lubGluZVNjcmlwdCgpID8gbmV3IFdlYkluc3BlY3Rvci5Db25jYXRlbmF0ZWRTY3JpcHRzQ29u
dGVudFByb3ZpZGVyKHNjcmlwdHMpIDogc2NyaXB0OwotICAgICAgICB2YXIgaXNEeW5hbWljU2Ny
aXB0ID0gdGhpcy5faXNEeW5hbWljU2NyaXB0KHNjcmlwdCk7Ci0gICAgICAgIHZhciB1cmwgPSBp
c0R5bmFtaWNTY3JpcHQgPyAiIiA6IHNjcmlwdC5zb3VyY2VVUkw7Ci0gICAgICAgIHRlbXBvcmFy
eVVJU291cmNlQ29kZSA9IG5ldyBXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlKHVybCwgY29udGVu
dFByb3ZpZGVyLCBmYWxzZSk7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2NyaXB0cy5s
ZW5ndGg7ICsraSkKKyAgICAgICAgdGVtcG9yYXJ5VUlTb3VyY2VDb2RlID0gdGhpcy5fY3JlYXRl
VUlTb3VyY2VDb2RlKHNjcmlwdHMpOworICAgICAgICB2YXIgc2NyaXB0SWRzID0gW107CisgICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2NyaXB0cy5sZW5ndGg7ICsraSkgewogICAgICAgICAg
ICAgdGhpcy5fdGVtcG9yYXJ5VUlTb3VyY2VDb2RlRm9yU2NyaXB0SWRbc2NyaXB0c1tpXS5zY3Jp
cHRJZF0gPSB0ZW1wb3JhcnlVSVNvdXJjZUNvZGU7Ci0gICAgICAgIHRoaXMuX2JpbmRVSVNvdXJj
ZUNvZGVUb1NjcmlwdHModGVtcG9yYXJ5VUlTb3VyY2VDb2RlLCBzY3JpcHRzKTsKKyAgICAgICAg
ICAgIHNjcmlwdElkcy5wdXNoKHNjcmlwdHNbaV0uc2NyaXB0SWQpOworICAgICAgICB9CisgICAg
ICAgIHRoaXMuX3NjcmlwdElkc0ZvclRlbXBvcmFyeVVJU291cmNlQ29kZS5wdXQodGVtcG9yYXJ5
VUlTb3VyY2VDb2RlLCBzY3JpcHRJZHMpOwogICAgICAgICB0aGlzLl93b3Jrc3BhY2UucHJvamVj
dCgpLmFkZFRlbXBvcmFyeVVJU291cmNlQ29kZSh0ZW1wb3JhcnlVSVNvdXJjZUNvZGUpOworICAg
ICAgICB0aGlzLl9iaW5kVUlTb3VyY2VDb2RlVG9TY3JpcHRzKHRlbXBvcmFyeVVJU291cmNlQ29k
ZSwgc2NyaXB0cyk7CiAgICAgICAgIHJldHVybiB0ZW1wb3JhcnlVSVNvdXJjZUNvZGU7CiAgICAg
fSwKIAorICAgIC8qKgorICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlNjcmlwdH0gc2NyaXB0
CisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlfSBkaXZlcmdlZFZlcnNp
b24KKyAgICAgKiBAcmV0dXJuIHtXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlfQorICAgICAqLwor
ICAgIF9nZXRPckNyZWF0ZU9yaWdpbmFsVUlTb3VyY2VDb2RlOiBmdW5jdGlvbihzY3JpcHQsIGRp
dmVyZ2VkVmVyc2lvbikKKyAgICB7CisgICAgICAgIHZhciBvcmlnaW5hbFVJU291cmNlQ29kZSA9
IHRoaXMuX29yaWdpbmFsVUlTb3VyY2VDb2RlRm9yU2NyaXB0SWRbc2NyaXB0LnNjcmlwdElkXTsK
KyAgICAgICAgaWYgKG9yaWdpbmFsVUlTb3VyY2VDb2RlKQorICAgICAgICAgICAgcmV0dXJuIG9y
aWdpbmFsVUlTb3VyY2VDb2RlOworCisgICAgICAgIHZhciBzY3JpcHRzID0gc2NyaXB0LmlzSW5s
aW5lU2NyaXB0KCkgPyB0aGlzLl9zY3JpcHRzRm9yU291cmNlVVJMKHNjcmlwdC5zb3VyY2VVUkws
IHRydWUpIDogW3NjcmlwdF07CisgICAgICAgIG9yaWdpbmFsVUlTb3VyY2VDb2RlID0gdGhpcy5f
Y3JlYXRlVUlTb3VyY2VDb2RlKHNjcmlwdHMsIGRpdmVyZ2VkVmVyc2lvbik7CisgICAgICAgIHZh
ciBzY3JpcHRJZHMgPSBbXTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzY3JpcHRzLmxl
bmd0aDsgKytpKSB7CisgICAgICAgICAgICB0aGlzLl9vcmlnaW5hbFVJU291cmNlQ29kZUZvclNj
cmlwdElkW3NjcmlwdHNbaV0uc2NyaXB0SWRdID0gb3JpZ2luYWxVSVNvdXJjZUNvZGU7CisgICAg
ICAgICAgICBzY3JpcHRJZHMucHVzaChzY3JpcHRzW2ldLnNjcmlwdElkKTsKKyAgICAgICAgfQor
ICAgICAgICB0aGlzLl9zY3JpcHRJZHNGb3JPcmlnaW5hbFVJU291cmNlQ29kZS5wdXQob3JpZ2lu
YWxVSVNvdXJjZUNvZGUsIHNjcmlwdElkcyk7CisgICAgICAgIHRoaXMuX3dvcmtzcGFjZS5wcm9q
ZWN0KCkuYWRkVGVtcG9yYXJ5VUlTb3VyY2VDb2RlKG9yaWdpbmFsVUlTb3VyY2VDb2RlKTsKKyAg
ICAgICAgdGhpcy5fYmluZFVJU291cmNlQ29kZVRvU2NyaXB0cyhvcmlnaW5hbFVJU291cmNlQ29k
ZSwgc2NyaXB0cyk7CisgICAgICAgIHJldHVybiBvcmlnaW5hbFVJU291cmNlQ29kZTsKKyAgICB9
LAorCiAgICAgX3VpU291cmNlQ29kZUFkZGVkVG9Xb3Jrc3BhY2U6IGZ1bmN0aW9uKGV2ZW50KQog
ICAgIHsKICAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IC8qKiBAdHlwZSB7V2ViSW5zcGVjdG9y
LlVJU291cmNlQ29kZX0gKi8gZXZlbnQuZGF0YTsKQEAgLTIyNiw2ICsyODcsNyBAQCBXZWJJbnNw
ZWN0b3IuUmVzb3VyY2VTY3JpcHRNYXBwaW5nLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHJl
dHVybjsKIAogICAgICAgICB0aGlzLl9kZWxldGVUZW1wb3JhcnlVSVNvdXJjZUNvZGVGb3JTY3Jp
cHRzKHNjcmlwdHMpOworICAgICAgICB0aGlzLl9kZWxldGVPcmlnaW5hbFVJU291cmNlQ29kZUZv
clNjcmlwdHMoc2NyaXB0cyk7CiAgICAgICAgIHRoaXMuX2JpbmRVSVNvdXJjZUNvZGVUb1Njcmlw
dHModWlTb3VyY2VDb2RlLCBzY3JpcHRzKTsKICAgICB9LAogCkBAIC0yMzUsNiArMjk3LDEwIEBA
IFdlYkluc3BlY3Rvci5SZXNvdXJjZVNjcmlwdE1hcHBpbmcucHJvdG90eXBlID0gewogICAgICAq
LwogICAgIF9zY3JpcHRzRm9yVUlTb3VyY2VDb2RlOiBmdW5jdGlvbih1aVNvdXJjZUNvZGUpCiAg
ICAgeworICAgICAgICB2YXIgc2NyaXB0SWRzID0gdGhpcy5fc2NyaXB0SWRzRm9yT3JpZ2luYWxV
SVNvdXJjZUNvZGUuZ2V0KHVpU291cmNlQ29kZSkgfHwgdGhpcy5fc2NyaXB0SWRzRm9yVGVtcG9y
YXJ5VUlTb3VyY2VDb2RlLmdldCh1aVNvdXJjZUNvZGUpOworICAgICAgICBpZiAoc2NyaXB0SWRz
KQorICAgICAgICAgICAgcmV0dXJuIHNjcmlwdElkcy5tYXAoV2ViSW5zcGVjdG9yLmRlYnVnZ2Vy
TW9kZWwuc2NyaXB0Rm9ySWQuYmluZChXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbCkpOworCiAg
ICAgICAgIHZhciBpc0lubGluZVNjcmlwdDsKICAgICAgICAgc3dpdGNoICh1aVNvdXJjZUNvZGUu
Y29udGVudFR5cGUoKSkgewogICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5yZXNvdXJjZVR5cGVz
LkRvY3VtZW50OgpAQCAtMjQ2LDEzICszMTIsMTUgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlU2Ny
aXB0TWFwcGluZy5wcm90b3R5cGUgPSB7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBy
ZXR1cm4gW107CiAgICAgICAgIH0KLQogICAgICAgICByZXR1cm4gdGhpcy5fc2NyaXB0c0ZvclNv
dXJjZVVSTCh1aVNvdXJjZUNvZGUudXJsLCBpc0lubGluZVNjcmlwdCk7CiAgICAgfSwKIAogICAg
IF9yZXNldDogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdGhpcy5fdGVtcG9yYXJ5VUlTb3Vy
Y2VDb2RlRm9yU2NyaXB0SWQgPSB7fTsKKyAgICAgICAgdGhpcy5fc2NyaXB0SWRzRm9yVGVtcG9y
YXJ5VUlTb3VyY2VDb2RlID0gbmV3IE1hcCgpOworICAgICAgICB0aGlzLl9vcmlnaW5hbFVJU291
cmNlQ29kZUZvclNjcmlwdElkID0ge307CisgICAgICAgIHRoaXMuX3NjcmlwdElkc0Zvck9yaWdp
bmFsVUlTb3VyY2VDb2RlID0gbmV3IE1hcCgpOwogICAgICAgICB0aGlzLl9zY3JpcHRzID0gW107
CiAgICAgfSwKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCBhYTQ4Yzg3MzM4MmIyZjVlNGZhM2Q3ZDRmYTQzZWYzN2RkMjIx
ZWJmLi5iZGUzY2Y3MGJjOGQyOGQ5NDVjZmZiNWJjYjkzYWIzYzQ2MjQwN2FjIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjAgQEAKKzIwMTItMTAtMjIgIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogVHJlYXQgZHluYW1pYyBhbm9ueW1vdXMg
c2NyaXB0cyBhcyBvdGhlciBhbm9ueW1vdXMgYW5kIGZpeCBhbm9ueW1vdXMgc2NyaXB0IGVkaXRp
bmcgYW5kIGJyZWFrcG9pbnRzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9OTk5ODkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yLWVuYWJsZWQvZHluYW1pYy1zY3JpcHRz
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10
ZXN0LmpzOgorICAgICAgICAoaW5pdGlhbGl6ZV9EZWJ1Z2dlclRlc3QpOgorICAgICAgICAqIGlu
c3BlY3Rvci9kZWJ1Z2dlci9keW5hbWljLXNjcmlwdC10YWctZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9keW5hbWljLXNjcmlwdHMtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9saXZlLWVkaXQtYnJlYWtwb2ludHMtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9saXZlLWVkaXQtYnJlYWtwb2ludHMu
aHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvcmVzb3VyY2Utc2NyaXB0LW1hcHBp
bmctZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZS1z
Y3JpcHQtbWFwcGluZy5odG1sOgorCiAyMDEyLTEwLTIxICBEaXJrIFByYW5rZSAgPGRwcmFua2VA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHN1cHByZXNzaW5nIGZhaWx1cmUg
dW50aWwgSSBjYW4gZmlndXJlIG91dCB3aGF0J3MgZ29pbmcgb24uCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci1lbmFibGVkL2R5bmFtaWMtc2NyaXB0cy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci1lbmFibGVkL2R5bmFt
aWMtc2NyaXB0cy1leHBlY3RlZC50eHQKaW5kZXggZjhhMTY3YTIzYWVkYTk2OTIyYjJlMmRjOGFj
NzExMDA1YWVmNDY1NS4uNmZmYTlmODdhMWY1ZWNjZDAxYWU4ZWQyNGRkZGYwYTczYzlmMmNhYSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3ItZW5hYmxlZC9keW5h
bWljLXNjcmlwdHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yLWVuYWJsZWQvZHluYW1pYy1zY3JpcHRzLWV4cGVjdGVkLnR4dApAQCAtNiw4ICs2LDYg
QEAgVUlTb3VyY2VDb2RlczoKICAgICBkZWJ1Z2dlci10ZXN0LmpzCiAgICAgZHluYW1pYy1zY3Jp
cHQuanMKICAgICBkeW5hbWljLXNjcmlwdHMuaHRtbAotICAgIGR5bmFtaWMtc2NyaXB0cy5odG1s
ICgxKQotICAgIGR5bmFtaWMtc2NyaXB0cy5odG1sICgyKQogICAgIGV2YWxTb3VyY2VVUkwuanMK
ICAgICBpbnNwZWN0b3ItdGVzdC5qcwogICAgIHNjcmlwdEVsZW1lbnRDb250ZW50U291cmNlVVJM
LmpzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci10ZXN0LmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXItdGVz
dC5qcwppbmRleCAyZmNiZjE1NzAyYjhmY2VhNDgzYThjM2NkOTEzNzQzMzk2NDcxMjgwLi5lMTU4
Y2Y1ZWFjMjU4ZTEzZTcyMGFkYjQ4Yzg1MzlmMWU4Y2YzZTAxIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0LmpzCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3QuanMKQEAgLTE1OCwxOCArMTU4
LDI0IEBAIEluc3BlY3RvclRlc3QuX3Jlc3VtZWRTY3JpcHQgPSBmdW5jdGlvbigpCiAgICAgfQog
fTsKIAorSW5zcGVjdG9yVGVzdC5zaG93VUlTb3VyY2VDb2RlID0gZnVuY3Rpb24odWlTb3VyY2VD
b2RlLCBjYWxsYmFjaykKK3sKKyAgICB2YXIgcGFuZWwgPSBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVs
KCJzY3JpcHRzIik7CisgICAgcGFuZWwuc2hvd1VJU291cmNlQ29kZSh1aVNvdXJjZUNvZGUpOwor
ICAgIHZhciBzb3VyY2VGcmFtZSA9IHBhbmVsLnZpc2libGVWaWV3OworICAgIGlmIChzb3VyY2VG
cmFtZS5sb2FkZWQpCisgICAgICAgIGNhbGxiYWNrKHNvdXJjZUZyYW1lKTsKKyAgICBlbHNlCisg
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihzb3VyY2VGcmFtZSwgIm9uVGV4dEVkaXRv
ckNvbnRlbnRMb2FkZWQiLCBjYWxsYmFjay5iaW5kKG51bGwsIHNvdXJjZUZyYW1lKSk7Cit9Owor
CiBJbnNwZWN0b3JUZXN0LnNob3dTY3JpcHRTb3VyY2UgPSBmdW5jdGlvbihzY3JpcHROYW1lLCBj
YWxsYmFjaykKIHsKICAgICB2YXIgcGFuZWwgPSBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJzY3Jp
cHRzIik7CiAgICAgdmFyIHVpU291cmNlQ29kZXMgPSBwYW5lbC5fd29ya3NwYWNlLnVpU291cmNl
Q29kZXMoKTsKICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHVpU291cmNlQ29kZXMubGVuZ3RoOyAr
K2kpIHsKICAgICAgICAgaWYgKHVpU291cmNlQ29kZXNbaV0ucGFyc2VkVVJMLmxhc3RQYXRoQ29t
cG9uZW50ID09PSBzY3JpcHROYW1lKSB7Ci0gICAgICAgICAgICBwYW5lbC5zaG93VUlTb3VyY2VD
b2RlKHVpU291cmNlQ29kZXNbaV0pOwotICAgICAgICAgICAgdmFyIHNvdXJjZUZyYW1lID0gcGFu
ZWwudmlzaWJsZVZpZXc7Ci0gICAgICAgICAgICBpZiAoc291cmNlRnJhbWUubG9hZGVkKQotICAg
ICAgICAgICAgICAgIGNhbGxiYWNrKHNvdXJjZUZyYW1lKTsKLSAgICAgICAgICAgIGVsc2UKLSAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIoc291cmNlRnJhbWUsICJvblRl
eHRFZGl0b3JDb250ZW50TG9hZGVkIiwgY2FsbGJhY2suYmluZChudWxsLCBzb3VyY2VGcmFtZSkp
OworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zaG93VUlTb3VyY2VDb2RlKHVpU291cmNlQ29k
ZXNbaV0sIGNhbGxiYWNrKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9keW5hbWljLXNjcmlw
dC10YWctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2R5bmFt
aWMtc2NyaXB0LXRhZy1leHBlY3RlZC50eHQKaW5kZXggN2FmMmMxYWJlYTNmZjUxZDBiNTYxMzAy
YzlhNGEyNjc2YzVmODJlNC4uNWQ1OTkxYzIyNmNkM2JkZjA5ZWM5ZTFjMjkyNDc2YjZhMDRjNWMw
YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2R5bmFtaWMtc2Ny
aXB0LXRhZy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
L2R5bmFtaWMtc2NyaXB0LXRhZy1leHBlY3RlZC50eHQKQEAgLTEwLDEyICsxMCwxMiBAQCBJcyBh
bm9ueW1vdXM6ZmFsc2UKIElzIGlubGluZSBzY3JpcHQ6ZmFsc2UKIER1bXBpbmcgdWlTb3VyY2VD
b2RlczoKIFVJU291cmNlQ29kZTogCi1VSVNvdXJjZUNvZGUgaXMgZWRpdGFibGU6IGZhbHNlCitV
SVNvdXJjZUNvZGUgaXMgZWRpdGFibGU6IHRydWUKIFVJU291cmNlQ29kZSBpcyBjb250ZW50IHNj
cmlwdDogZmFsc2UKIE1pbWUgdHlwZTogdGV4dC9qYXZhc2NyaXB0CiBVSVNvdXJjZUNvZGUgY29u
dGVudDogZnVuY3Rpb24gZm9vKCkgeyB9CiBVSVNvdXJjZUNvZGU6IAotVUlTb3VyY2VDb2RlIGlz
IGVkaXRhYmxlOiBmYWxzZQorVUlTb3VyY2VDb2RlIGlzIGVkaXRhYmxlOiB0cnVlCiBVSVNvdXJj
ZUNvZGUgaXMgY29udGVudCBzY3JpcHQ6IGZhbHNlCiBNaW1lIHR5cGU6IHRleHQvamF2YXNjcmlw
dAogVUlTb3VyY2VDb2RlIGNvbnRlbnQ6IGZ1bmN0aW9uIGJhcigpIHsgfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2R5bmFtaWMtc2NyaXB0cy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZHluYW1pYy1zY3JpcHRzLWV4cGVj
dGVkLnR4dAppbmRleCA0ZDYxZmJlNmEwMmY2MTAwNzEzNmYxYTcxNWNkNjA0YmZhZDljYzRkLi44
YWIyZGQyZDk0MTE2MjMxZjUxOWZlYTljZThkZWViYzM5ZDJjNzljIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZHluYW1pYy1zY3JpcHRzLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZHluYW1pYy1zY3JpcHRzLWV4cGVj
dGVkLnR4dApAQCAtNyw4ICs3LDYgQEAgVUlTb3VyY2VDb2RlczoKICAgICBkZWJ1Z2dlci10ZXN0
LmpzCiAgICAgZHluYW1pYy1zY3JpcHQuanMKICAgICBkeW5hbWljLXNjcmlwdHMuaHRtbAotICAg
IGR5bmFtaWMtc2NyaXB0cy5odG1sICgxKQotICAgIGR5bmFtaWMtc2NyaXB0cy5odG1sICgyKQog
ICAgIGV2YWxTb3VyY2VVUkwuanMKICAgICBpbnNwZWN0b3ItdGVzdC5qcwogICAgIHNjcmlwdEVs
ZW1lbnRDb250ZW50U291cmNlVVJMLmpzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXIvbGl2ZS1lZGl0LWJyZWFrcG9pbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9saXZlLWVkaXQtYnJlYWtwb2ludHMtZXhwZWN0ZWQudHh0
CmluZGV4IGYyNTdhMTBkOWE3NWQyOTUzMjJiMDRkMjliNTNmM2M4MTBmNzBkNjUuLmE1OTIyNzcz
Y2E2NmUxNTA0NGI0MzNiOGY3Njg5MjIxMzIxYzQ1ZmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9saXZlLWVkaXQtYnJlYWtwb2ludHMtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9saXZlLWVkaXQtYnJlYWtwb2ludHMt
ZXhwZWN0ZWQudHh0CkBAIC0xMywxMSArMTMsMTMgQEAgU2V0dGluZyBicmVha3BvaW50OgogRWRp
dGluZyBzb3VyY2U6CiAgICAgVGV4dEVkaXRvci5yZW1vdmVCcmVha3BvaW50KGxpbmVOdW1iZXIg
PSAyKQogICAgIFRleHRFZGl0b3IuYWRkQnJlYWtwb2ludChsaW5lTnVtYmVyID0gMiwgZGlzYWJs
ZWQgPSB0cnVlKQorICAgIE9yaWdpbmFsVGV4dEVkaXRvci5hZGRCcmVha3BvaW50KGxpbmVOdW1i
ZXIgPSAyLCBkaXNhYmxlZCA9IGZhbHNlKQogICAgIER1bXBpbmcgYnJlYWtwb2ludCBzdG9yYWdl
CiAgICAgICAgIGVkaXQtbWUuanM6MiwgZW5hYmxlZDp0cnVlCiAgICAgRHVtcGluZyBicmVha3Bv
aW50IGxvY2F0aW9ucwogICAgICAgICB1cmw6IGVkaXQtbWUuanMsIGxpbmVOdW1iZXI6IDIsIGlz
VGVtcG9yYXJ5OiB0cnVlCiBVbmRvaW5nIHNvdXJjZSBlZGl0aW5nOgorICAgIE9yaWdpbmFsVGV4
dEVkaXRvci5yZW1vdmVCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAyKQogICAgIFRleHRFZGl0b3Iu
cmVtb3ZlQnJlYWtwb2ludChsaW5lTnVtYmVyID0gMikKICAgICBUZXh0RWRpdG9yLnJlbW92ZUJy
ZWFrcG9pbnQobGluZU51bWJlciA9IDIpCiAgICAgVGV4dEVkaXRvci5hZGRCcmVha3BvaW50KGxp
bmVOdW1iZXIgPSAyLCBkaXNhYmxlZCA9IGZhbHNlKQpAQCAtNDAsMTEgKzQyLDEzIEBAIFNldHRp
bmcgYnJlYWtwb2ludDoKIEVkaXRpbmcgc291cmNlOgogICAgIFRleHRFZGl0b3IucmVtb3ZlQnJl
YWtwb2ludChsaW5lTnVtYmVyID0gMikKICAgICBUZXh0RWRpdG9yLmFkZEJyZWFrcG9pbnQobGlu
ZU51bWJlciA9IDIsIGRpc2FibGVkID0gdHJ1ZSkKKyAgICBPcmlnaW5hbFRleHRFZGl0b3IuYWRk
QnJlYWtwb2ludChsaW5lTnVtYmVyID0gMiwgZGlzYWJsZWQgPSBmYWxzZSkKICAgICBEdW1waW5n
IGJyZWFrcG9pbnQgc3RvcmFnZQogICAgICAgICBlZGl0LW1lLmpzOjIsIGVuYWJsZWQ6dHJ1ZQog
ICAgIER1bXBpbmcgYnJlYWtwb2ludCBsb2NhdGlvbnMKICAgICAgICAgdXJsOiBlZGl0LW1lLmpz
LCBsaW5lTnVtYmVyOiAyLCBpc1RlbXBvcmFyeTogdHJ1ZQogQ29tbWl0dGluZyBlZGl0ZWQgc291
cmNlOgorICAgIE9yaWdpbmFsVGV4dEVkaXRvci5yZW1vdmVCcmVha3BvaW50KGxpbmVOdW1iZXIg
PSAyKQogICAgIFRleHRFZGl0b3IucmVtb3ZlQnJlYWtwb2ludChsaW5lTnVtYmVyID0gMikKICAg
ICBUZXh0RWRpdG9yLnJlbW92ZUJyZWFrcG9pbnQobGluZU51bWJlciA9IDIpCiAgICAgVGV4dEVk
aXRvci5hZGRCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAyLCBkaXNhYmxlZCA9IGZhbHNlKQpAQCAt
NjcsNiArNzEsNyBAQCBTZXR0aW5nIGJyZWFrcG9pbnQ6CiBFZGl0aW5nIHNvdXJjZToKICAgICBU
ZXh0RWRpdG9yLnJlbW92ZUJyZWFrcG9pbnQobGluZU51bWJlciA9IDIpCiAgICAgVGV4dEVkaXRv
ci5hZGRCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAyLCBkaXNhYmxlZCA9IHRydWUpCisgICAgT3Jp
Z2luYWxUZXh0RWRpdG9yLmFkZEJyZWFrcG9pbnQobGluZU51bWJlciA9IDIsIGRpc2FibGVkID0g
ZmFsc2UpCiAgICAgRHVtcGluZyBicmVha3BvaW50IHN0b3JhZ2UKICAgICAgICAgZWRpdC1tZS5q
czoyLCBlbmFibGVkOnRydWUKICAgICBEdW1waW5nIGJyZWFrcG9pbnQgbG9jYXRpb25zCkBAIC04
Miw2ICs4Nyw3IEBAIEVkaXRpbmcgc291cmNlIGFnYWluIHNvIHRoYXQgbGl2ZSBlZGl0IGNvdWxk
IHN1Y2NlZWQ6CiAgICAgRHVtcGluZyBicmVha3BvaW50IGxvY2F0aW9ucwogICAgICAgICB1cmw6
IGVkaXQtbWUuanMsIGxpbmVOdW1iZXI6IDIsIGlzVGVtcG9yYXJ5OiB0cnVlCiBDb21taXR0aW5n
IGVkaXRlZCBzb3VyY2UgYWdhaW46CisgICAgT3JpZ2luYWxUZXh0RWRpdG9yLnJlbW92ZUJyZWFr
cG9pbnQobGluZU51bWJlciA9IDIpCiAgICAgVGV4dEVkaXRvci5yZW1vdmVCcmVha3BvaW50KGxp
bmVOdW1iZXIgPSAyKQogICAgIFRleHRFZGl0b3IucmVtb3ZlQnJlYWtwb2ludChsaW5lTnVtYmVy
ID0gMikKICAgICBUZXh0RWRpdG9yLmFkZEJyZWFrcG9pbnQobGluZU51bWJlciA9IDIsIGRpc2Fi
bGVkID0gZmFsc2UpCkBAIC0xMDQsNiArMTEwLDcgQEAgU2V0dGluZyBicmVha3BvaW50OgogRWRp
dGluZyBzb3VyY2U6CiAgICAgVGV4dEVkaXRvci5yZW1vdmVCcmVha3BvaW50KGxpbmVOdW1iZXIg
PSAyKQogICAgIFRleHRFZGl0b3IuYWRkQnJlYWtwb2ludChsaW5lTnVtYmVyID0gMiwgZGlzYWJs
ZWQgPSB0cnVlKQorICAgIE9yaWdpbmFsVGV4dEVkaXRvci5hZGRCcmVha3BvaW50KGxpbmVOdW1i
ZXIgPSAyLCBkaXNhYmxlZCA9IGZhbHNlKQogICAgIER1bXBpbmcgYnJlYWtwb2ludCBzdG9yYWdl
CiAgICAgICAgIGVkaXQtbWUuanM6MiwgZW5hYmxlZDp0cnVlCiAgICAgRHVtcGluZyBicmVha3Bv
aW50IGxvY2F0aW9ucwpAQCAtMTE5LDYgKzEyNiw3IEBAIFVuZG9pbmcgc291cmNlIGVkaXRpbmc6
CiAgICAgRHVtcGluZyBicmVha3BvaW50IGxvY2F0aW9ucwogICAgICAgICB1cmw6IGVkaXQtbWUu
anMsIGxpbmVOdW1iZXI6IDIsIGlzVGVtcG9yYXJ5OiB0cnVlCiBDb21taXR0aW5nIGVkaXRlZCBz
b3VyY2UgYWdhaW46CisgICAgT3JpZ2luYWxUZXh0RWRpdG9yLnJlbW92ZUJyZWFrcG9pbnQobGlu
ZU51bWJlciA9IDIpCiAgICAgVGV4dEVkaXRvci5yZW1vdmVCcmVha3BvaW50KGxpbmVOdW1iZXIg
PSAyKQogICAgIFRleHRFZGl0b3IucmVtb3ZlQnJlYWtwb2ludChsaW5lTnVtYmVyID0gMikKICAg
ICBUZXh0RWRpdG9yLmFkZEJyZWFrcG9pbnQobGluZU51bWJlciA9IDIsIGRpc2FibGVkID0gZmFs
c2UpCkBAIC0xMzAsNSArMTM4LDcxIEBAIEZpbmFsbHkgcmVtb3ZpbmcgYnJlYWtwb2ludDoKICAg
ICBUZXh0RWRpdG9yLnJlbW92ZUJyZWFrcG9pbnQobGluZU51bWJlciA9IDIpCiAgICAgRHVtcGlu
ZyBicmVha3BvaW50IHN0b3JhZ2UKICAgICBEdW1waW5nIGJyZWFrcG9pbnQgbG9jYXRpb25zCisK
K1J1bm5pbmc6IHRlc3RFZGl0QW5vbnltb3VzVW5kbworU2V0IHRpbWVyIGZvciB0ZXN0IGZ1bmN0
aW9uLgorU2NyaXB0IGV4ZWN1dGlvbiBwYXVzZWQuCitTY3JpcHQgZXhlY3V0aW9uIHJlc3VtZWQu
CitTaG93aW5nIHNjcmlwdCBzb3VyY2U6CitTZXR0aW5nIGJyZWFrcG9pbnQ6CisgICAgVGV4dEVk
aXRvci5hZGRCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAyLCBkaXNhYmxlZCA9IGZhbHNlKQorICAg
IER1bXBpbmcgYnJlYWtwb2ludCBzdG9yYWdlCisgICAgICAgIDoyLCBlbmFibGVkOnRydWUKKyAg
ICBEdW1waW5nIGJyZWFrcG9pbnQgbG9jYXRpb25zCisgICAgICAgIHVybDogLCBsaW5lTnVtYmVy
OiAyLCBpc1RlbXBvcmFyeTogdHJ1ZQorRWRpdGluZyBzb3VyY2U6CisgICAgVGV4dEVkaXRvci5y
ZW1vdmVCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAyKQorICAgIFRleHRFZGl0b3IuYWRkQnJlYWtw
b2ludChsaW5lTnVtYmVyID0gMiwgZGlzYWJsZWQgPSB0cnVlKQorICAgIE9yaWdpbmFsVGV4dEVk
aXRvci5hZGRCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAyLCBkaXNhYmxlZCA9IGZhbHNlKQorICAg
IER1bXBpbmcgYnJlYWtwb2ludCBzdG9yYWdlCisgICAgICAgIDoyLCBlbmFibGVkOnRydWUKKyAg
ICBEdW1waW5nIGJyZWFrcG9pbnQgbG9jYXRpb25zCisgICAgICAgIHVybDogLCBsaW5lTnVtYmVy
OiAyLCBpc1RlbXBvcmFyeTogdHJ1ZQorVW5kb2luZyBzb3VyY2UgZWRpdGluZzoKKyAgICBPcmln
aW5hbFRleHRFZGl0b3IucmVtb3ZlQnJlYWtwb2ludChsaW5lTnVtYmVyID0gMikKKyAgICBUZXh0
RWRpdG9yLnJlbW92ZUJyZWFrcG9pbnQobGluZU51bWJlciA9IDIpCisgICAgVGV4dEVkaXRvci5y
ZW1vdmVCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAyKQorICAgIFRleHRFZGl0b3IuYWRkQnJlYWtw
b2ludChsaW5lTnVtYmVyID0gMiwgZGlzYWJsZWQgPSBmYWxzZSkKKyAgICBEdW1waW5nIGJyZWFr
cG9pbnQgc3RvcmFnZQorICAgICAgICA6MiwgZW5hYmxlZDp0cnVlCisgICAgRHVtcGluZyBicmVh
a3BvaW50IGxvY2F0aW9ucworICAgICAgICB1cmw6ICwgbGluZU51bWJlcjogMiwgaXNUZW1wb3Jh
cnk6IHRydWUKK0ZpbmFsbHkgcmVtb3ZpbmcgYnJlYWtwb2ludDoKKyAgICBUZXh0RWRpdG9yLnJl
bW92ZUJyZWFrcG9pbnQobGluZU51bWJlciA9IDIpCisgICAgRHVtcGluZyBicmVha3BvaW50IHN0
b3JhZ2UKKyAgICBEdW1waW5nIGJyZWFrcG9pbnQgbG9jYXRpb25zCisKK1J1bm5pbmc6IHRlc3RF
ZGl0RHluYW1pY0Fub255bW91c1VuZG8KK1NldCB0aW1lciBmb3IgdGVzdCBmdW5jdGlvbi4KK1Nj
cmlwdCBleGVjdXRpb24gcGF1c2VkLgorU2NyaXB0IGV4ZWN1dGlvbiByZXN1bWVkLgorU2hvd2lu
ZyBzY3JpcHQgc291cmNlOgorU2V0dGluZyBicmVha3BvaW50OgorICAgIFRleHRFZGl0b3IuYWRk
QnJlYWtwb2ludChsaW5lTnVtYmVyID0gMiwgZGlzYWJsZWQgPSBmYWxzZSkKKyAgICBEdW1waW5n
IGJyZWFrcG9pbnQgc3RvcmFnZQorICAgICAgICA6MiwgZW5hYmxlZDp0cnVlCisgICAgRHVtcGlu
ZyBicmVha3BvaW50IGxvY2F0aW9ucworICAgICAgICB1cmw6ICwgbGluZU51bWJlcjogMiwgaXNU
ZW1wb3Jhcnk6IHRydWUKK0VkaXRpbmcgc291cmNlOgorICAgIFRleHRFZGl0b3IucmVtb3ZlQnJl
YWtwb2ludChsaW5lTnVtYmVyID0gMikKKyAgICBUZXh0RWRpdG9yLmFkZEJyZWFrcG9pbnQobGlu
ZU51bWJlciA9IDIsIGRpc2FibGVkID0gdHJ1ZSkKKyAgICBPcmlnaW5hbFRleHRFZGl0b3IuYWRk
QnJlYWtwb2ludChsaW5lTnVtYmVyID0gMiwgZGlzYWJsZWQgPSBmYWxzZSkKKyAgICBEdW1waW5n
IGJyZWFrcG9pbnQgc3RvcmFnZQorICAgICAgICA6MiwgZW5hYmxlZDp0cnVlCisgICAgRHVtcGlu
ZyBicmVha3BvaW50IGxvY2F0aW9ucworICAgICAgICB1cmw6ICwgbGluZU51bWJlcjogMiwgaXNU
ZW1wb3Jhcnk6IHRydWUKK1VuZG9pbmcgc291cmNlIGVkaXRpbmc6CisgICAgT3JpZ2luYWxUZXh0
RWRpdG9yLnJlbW92ZUJyZWFrcG9pbnQobGluZU51bWJlciA9IDIpCisgICAgVGV4dEVkaXRvci5y
ZW1vdmVCcmVha3BvaW50KGxpbmVOdW1iZXIgPSAyKQorICAgIFRleHRFZGl0b3IucmVtb3ZlQnJl
YWtwb2ludChsaW5lTnVtYmVyID0gMikKKyAgICBUZXh0RWRpdG9yLmFkZEJyZWFrcG9pbnQobGlu
ZU51bWJlciA9IDIsIGRpc2FibGVkID0gZmFsc2UpCisgICAgRHVtcGluZyBicmVha3BvaW50IHN0
b3JhZ2UKKyAgICAgICAgOjIsIGVuYWJsZWQ6dHJ1ZQorICAgIER1bXBpbmcgYnJlYWtwb2ludCBs
b2NhdGlvbnMKKyAgICAgICAgdXJsOiAsIGxpbmVOdW1iZXI6IDIsIGlzVGVtcG9yYXJ5OiB0cnVl
CitGaW5hbGx5IHJlbW92aW5nIGJyZWFrcG9pbnQ6CisgICAgVGV4dEVkaXRvci5yZW1vdmVCcmVh
a3BvaW50KGxpbmVOdW1iZXIgPSAyKQorICAgIER1bXBpbmcgYnJlYWtwb2ludCBzdG9yYWdlCisg
ICAgRHVtcGluZyBicmVha3BvaW50IGxvY2F0aW9ucwogRGVidWdnZXIgd2FzIGRpc2FibGVkLgog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvbGl2ZS1lZGl0LWJy
ZWFrcG9pbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvbGl2ZS1lZGl0
LWJyZWFrcG9pbnRzLmh0bWwKaW5kZXggMzU4NWQ3YWU2N2Y2YTlmYjdiYzM5N2MwMmIyNWY3YWM3
MTJkMjEzOS4uYmU4YjQ1NTEyNGI2ZGFlYmU2Mjg3NmM1NGMyYjgxMTIxNjAzOWVkNCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2xpdmUtZWRpdC1icmVha3BvaW50
cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9saXZlLWVkaXQtYnJl
YWtwb2ludHMuaHRtbApAQCAtNSw2ICs1LDE3IEBACiA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90
ZXN0cy9pbnNwZWN0b3IvbGl2ZS1lZGl0LXRlc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9
InJlc291cmNlcy9lZGl0LW1lLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CitmdW5jdGlvbiBsb2Fk
RHluYW1pY0Fub255bW91c1NjcmlwdCgpCit7CisgICAgZnVuY3Rpb24gdGVzdEZ1bmN0aW9uKCkK
KyAgICB7CisgICAgICAgIGRlYnVnZ2VyOworICAgIH0KKyAgICB2YXIgc2NyaXB0RWxlbWVudCA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpOworICAgIHNjcmlwdEVsZW1lbnQudGV4
dENvbnRlbnQgPSBTdHJpbmcodGVzdEZ1bmN0aW9uKTsKKyAgICBkb2N1ZW1udC5oZWFkLmFwcGVu
ZENoaWxkKHNjcmlwdEVsZW1lbnQpOworfQorCiBmdW5jdGlvbiB0ZXN0KCkKIHsKICAgICB2YXIg
cGFuZWwgPSBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJzY3JpcHRzIik7ICAKQEAgLTM2LDEyICs0
NywxNCBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgIGZ1bmN0aW9uIGFkZEJyZWFrcG9pbnRTbmlm
ZmVyKGxpbmVOdW1iZXIsIGRpc2FibGVkKQogICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5h
ZGRSZXN1bHQoIiAgICBUZXh0RWRpdG9yLmFkZEJyZWFrcG9pbnQobGluZU51bWJlciA9ICIgKyBs
aW5lTnVtYmVyICsgIiwgZGlzYWJsZWQgPSAiICsgZGlzYWJsZWQgKyAiKSIpOworICAgICAgICB2
YXIgcHJlZml4ID0gdGhpcy5tYWluID8gIiIgOiAiT3JpZ2luYWwiOworICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdCgiICAgICIgKyBwcmVmaXggKyAiVGV4dEVkaXRvci5hZGRCcmVha3Bv
aW50KGxpbmVOdW1iZXIgPSAiICsgbGluZU51bWJlciArICIsIGRpc2FibGVkID0gIiArIGRpc2Fi
bGVkICsgIikiKTsKICAgICB9CiAKICAgICBmdW5jdGlvbiByZW1vdmVCcmVha3BvaW50U25pZmZl
cihsaW5lTnVtYmVyKQogICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAg
ICBUZXh0RWRpdG9yLnJlbW92ZUJyZWFrcG9pbnQobGluZU51bWJlciA9ICIgKyBsaW5lTnVtYmVy
ICsgIikiKTsKKyAgICAgICAgdmFyIHByZWZpeCA9IHRoaXMubWFpbiA/ICIiIDogIk9yaWdpbmFs
IjsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgICAiICsgcHJlZml4ICsgIlRl
eHRFZGl0b3IucmVtb3ZlQnJlYWtwb2ludChsaW5lTnVtYmVyID0gIiArIGxpbmVOdW1iZXIgKyAi
KSIpOwogICAgIH0KIAogICAgIFdlYkluc3BlY3Rvci5icmVha3BvaW50TWFuYWdlci5fc3RvcmFn
ZS5fYnJlYWtwb2ludHMgPSB7fTsKQEAgLTUxLDcgKzY0LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAg
ICAgSW5zcGVjdG9yVGVzdC5ydW5EZWJ1Z2dlclRlc3RTdWl0ZShbCiAgICAgICAgIGZ1bmN0aW9u
IHRlc3RFZGl0VW5kbyhuZXh0KQogICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgamF2YVNjcmlw
dFNvdXJjZUZyYW1lLCB1aVNvdXJjZUNvZGUsIHNjcmlwdEZpbGU7CisgICAgICAgICAgICB2YXIg
amF2YVNjcmlwdFNvdXJjZUZyYW1lLCB1aVNvdXJjZUNvZGUsIHNjcmlwdCwgb3JpZ2luYWxKYXZh
U2NyaXB0U291cmNlRnJhbWUsIG9yaWdpbmFsVUlTb3VyY2VDb2RlOwogCiAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LnNob3dTY3JpcHRTb3VyY2UoImVkaXQtbWUuanMiLCBkaWRTaG93U2NyaXB0
U291cmNlKTsKIApAQCAtNTksMTkgKzcyLDMxIEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgIGphdmFTY3JpcHRTb3VyY2VGcmFtZSA9IHNvdXJjZUZyYW1l
OwogICAgICAgICAgICAgICAgIHVpU291cmNlQ29kZSA9IHNvdXJjZUZyYW1lLl91aVNvdXJjZUNv
ZGU7Ci0gICAgICAgICAgICAgICAgc2NyaXB0RmlsZSA9IHNvdXJjZUZyYW1lLl91aVNvdXJjZUNv
ZGUuc2NyaXB0RmlsZSgpOworICAgICAgICAgICAgICAgIGphdmFTY3JpcHRTb3VyY2VGcmFtZS5f
dGV4dEVkaXRvci5tYWluID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU2V0dGluZyBicmVha3BvaW50OiIpOwogICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuQnJlYWtwb2lu
dE1hbmFnZXIuQnJlYWtwb2ludC5wcm90b3R5cGUsICJfYWRkUmVzb2x2ZWRMb2NhdGlvbiIsIGJy
ZWFrcG9pbnRSZXNvbHZlZCk7CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZXRCcmVh
a3BvaW50KHNvdXJjZUZyYW1lLCAyLCAiIiwgdHJ1ZSk7CiAgICAgICAgICAgICB9CiAKLSAgICAg
ICAgICAgIGZ1bmN0aW9uIGJyZWFrcG9pbnRSZXNvbHZlZCgpCisgICAgICAgICAgICBmdW5jdGlv
biBicmVha3BvaW50UmVzb2x2ZWQobG9jYXRpb24pCiAgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgc2NyaXB0ID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuc2NyaXB0Rm9ySWQobG9j
YXRpb24uc2NyaXB0SWQpOworCiAgICAgICAgICAgICAgICAgZHVtcEJyZWFrcG9pbnRTdG9yYWdl
QW5kTG9jYXRpb25zKCk7CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
IkVkaXRpbmcgc291cmNlOiIpOwogICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucmVwbGFj
ZUluU291cmNlKGphdmFTY3JpcHRTb3VyY2VGcmFtZSwgIn0iLCAifS8vIik7CiAKKyAgICAgICAg
ICAgICAgICBvcmlnaW5hbFVJU291cmNlQ29kZSA9IHNjcmlwdC5yYXdMb2NhdGlvblRvVUlMb2Nh
dGlvbihsb2NhdGlvbi5saW5lTnVtYmVyKS51aVNvdXJjZUNvZGU7CisgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5zaG93VUlTb3VyY2VDb2RlKG9yaWdpbmFsVUlTb3VyY2VDb2RlLCBkaWRT
aG93T3JpZ2luYWxVSVNvdXJjZUNvZGUpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBm
dW5jdGlvbiBkaWRTaG93T3JpZ2luYWxVSVNvdXJjZUNvZGUoc291cmNlRnJhbWUpCisgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgb3JpZ2luYWxKYXZhU2NyaXB0U291cmNlRnJhbWUgPSBz
b3VyY2VGcmFtZTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydFRydWUob3Jp
Z2luYWxKYXZhU2NyaXB0U291cmNlRnJhbWUgIT09IGphdmFTY3JpcHRTb3VyY2VGcmFtZSwgIkVk
aXRlZCBhbmQgb3JpZ2luYWwgamF2YVNjcmlwdFNvdXJjZUZyYW1lcyBzaG91bGQgZGlmZmVyLiIp
OworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0VHJ1ZShvcmlnaW5hbFVJU291
cmNlQ29kZSAhPT0gdWlTb3VyY2VDb2RlLCAiRWRpdGVkIGFuZCBvcmlnaW5hbCB1aVNvdXJjZUNv
ZGVzIHNob3VsZCBkaWZmZXIuIik7CisKICAgICAgICAgICAgICAgICBkdW1wQnJlYWtwb2ludFN0
b3JhZ2VBbmRMb2NhdGlvbnMoKTsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
c3VsdCgiVW5kb2luZyBzb3VyY2UgZWRpdGluZzoiKTsKICAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRNYW5hZ2VyLkJyZWFrcG9p
bnQucHJvdG90eXBlLCAiX2FkZFJlc29sdmVkTG9jYXRpb24iLCBicmVha3BvaW50UmVzb2x2ZWRB
Z2Fpbik7CkBAIC05MSw3ICsxMTYsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgICAgICBmdW5j
dGlvbiB0ZXN0RWRpdENvbW1pdChuZXh0KQogICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgamF2
YVNjcmlwdFNvdXJjZUZyYW1lLCB1aVNvdXJjZUNvZGUsIHNjcmlwdEZpbGU7CisgICAgICAgICAg
ICB2YXIgamF2YVNjcmlwdFNvdXJjZUZyYW1lLCB1aVNvdXJjZUNvZGUsIHNjcmlwdCwgb3JpZ2lu
YWxKYXZhU2NyaXB0U291cmNlRnJhbWUsIG9yaWdpbmFsVUlTb3VyY2VDb2RlOwogCiAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LnNob3dTY3JpcHRTb3VyY2UoImVkaXQtbWUuanMiLCBkaWRTaG93
U2NyaXB0U291cmNlKTsKIApAQCAtOTksMTkgKzEyNCwzMCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBqYXZhU2NyaXB0U291cmNlRnJhbWUgPSBzb3Vy
Y2VGcmFtZTsKICAgICAgICAgICAgICAgICB1aVNvdXJjZUNvZGUgPSBzb3VyY2VGcmFtZS5fdWlT
b3VyY2VDb2RlOwotICAgICAgICAgICAgICAgIHNjcmlwdEZpbGUgPSBzb3VyY2VGcmFtZS5fdWlT
b3VyY2VDb2RlLnNjcmlwdEZpbGUoKTsKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU2V0dGluZyBicmVha3BvaW50OiIpOwogICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuQnJlYWtwb2lu
dE1hbmFnZXIuQnJlYWtwb2ludC5wcm90b3R5cGUsICJfYWRkUmVzb2x2ZWRMb2NhdGlvbiIsIGJy
ZWFrcG9pbnRSZXNvbHZlZCk7CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZXRCcmVh
a3BvaW50KHNvdXJjZUZyYW1lLCAyLCAiIiwgdHJ1ZSk7CiAgICAgICAgICAgICB9CiAKLSAgICAg
ICAgICAgIGZ1bmN0aW9uIGJyZWFrcG9pbnRSZXNvbHZlZCgpCisgICAgICAgICAgICBmdW5jdGlv
biBicmVha3BvaW50UmVzb2x2ZWQobG9jYXRpb24pCiAgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgc2NyaXB0ID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuc2NyaXB0Rm9ySWQobG9j
YXRpb24uc2NyaXB0SWQpOworCiAgICAgICAgICAgICAgICAgZHVtcEJyZWFrcG9pbnRTdG9yYWdl
QW5kTG9jYXRpb25zKCk7CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
IkVkaXRpbmcgc291cmNlOiIpOwogICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucmVwbGFj
ZUluU291cmNlKGphdmFTY3JpcHRTb3VyY2VGcmFtZSwgIn0iLCAifS8vIik7CiAKKyAgICAgICAg
ICAgICAgICBvcmlnaW5hbFVJU291cmNlQ29kZSA9IHNjcmlwdC5yYXdMb2NhdGlvblRvVUlMb2Nh
dGlvbihsb2NhdGlvbi5saW5lTnVtYmVyKS51aVNvdXJjZUNvZGU7CisgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5zaG93VUlTb3VyY2VDb2RlKG9yaWdpbmFsVUlTb3VyY2VDb2RlLCBkaWRT
aG93T3JpZ2luYWxVSVNvdXJjZUNvZGUpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBm
dW5jdGlvbiBkaWRTaG93T3JpZ2luYWxVSVNvdXJjZUNvZGUoc291cmNlRnJhbWUpCisgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgb3JpZ2luYWxKYXZhU2NyaXB0U291cmNlRnJhbWUgPSBz
b3VyY2VGcmFtZTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydFRydWUob3Jp
Z2luYWxKYXZhU2NyaXB0U291cmNlRnJhbWUgIT09IGphdmFTY3JpcHRTb3VyY2VGcmFtZSwgIkVk
aXRlZCBhbmQgb3JpZ2luYWwgamF2YVNjcmlwdFNvdXJjZUZyYW1lcyBzaG91bGQgZGlmZmVyLiIp
OworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0VHJ1ZShvcmlnaW5hbFVJU291
cmNlQ29kZSAhPT0gdWlTb3VyY2VDb2RlLCAiRWRpdGVkIGFuZCBvcmlnaW5hbCB1aVNvdXJjZUNv
ZGVzIHNob3VsZCBkaWZmZXIuIik7CisKICAgICAgICAgICAgICAgICBkdW1wQnJlYWtwb2ludFN0
b3JhZ2VBbmRMb2NhdGlvbnMoKTsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
c3VsdCgiQ29tbWl0dGluZyBlZGl0ZWQgc291cmNlOiIpOwogICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuQnJlYWtwb2ludE1hbmFnZXIuQnJlYWtw
b2ludC5wcm90b3R5cGUsICJfYWRkUmVzb2x2ZWRMb2NhdGlvbiIsIGJyZWFrcG9pbnRSZXNvbHZl
ZEFnYWluKTsKQEAgLTEzMSw3ICsxNjcsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgICAgICBm
dW5jdGlvbiB0ZXN0RWRpdENvbW1pdEZhaWxFZGl0Q29tbWl0KG5leHQpCiAgICAgICAgIHsKLSAg
ICAgICAgICAgIHZhciBqYXZhU2NyaXB0U291cmNlRnJhbWUsIHVpU291cmNlQ29kZSwgc2NyaXB0
RmlsZTsKKyAgICAgICAgICAgIHZhciBqYXZhU2NyaXB0U291cmNlRnJhbWUsIHVpU291cmNlQ29k
ZSwgc2NyaXB0LCBvcmlnaW5hbEphdmFTY3JpcHRTb3VyY2VGcmFtZSwgb3JpZ2luYWxVSVNvdXJj
ZUNvZGU7CiAKICAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2hvd1NjcmlwdFNvdXJjZSgiZWRp
dC1tZS5qcyIsIGRpZFNob3dTY3JpcHRTb3VyY2UpOwogCkBAIC0xMzksMTkgKzE3NSwzMCBAQCBm
dW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBqYXZhU2NyaXB0
U291cmNlRnJhbWUgPSBzb3VyY2VGcmFtZTsKICAgICAgICAgICAgICAgICB1aVNvdXJjZUNvZGUg
PSBzb3VyY2VGcmFtZS5fdWlTb3VyY2VDb2RlOwotICAgICAgICAgICAgICAgIHNjcmlwdEZpbGUg
PSBzb3VyY2VGcmFtZS5fdWlTb3VyY2VDb2RlLnNjcmlwdEZpbGUoKTsKICAgICAgICAgICAgICAg
ICAKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU2V0dGluZyBicmVh
a3BvaW50OiIpOwogICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJ
bnNwZWN0b3IuQnJlYWtwb2ludE1hbmFnZXIuQnJlYWtwb2ludC5wcm90b3R5cGUsICJfYWRkUmVz
b2x2ZWRMb2NhdGlvbiIsIGJyZWFrcG9pbnRSZXNvbHZlZCk7CiAgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5zZXRCcmVha3BvaW50KHNvdXJjZUZyYW1lLCAyLCAiIiwgdHJ1ZSk7CiAgICAg
ICAgICAgICB9CiAKLSAgICAgICAgICAgIGZ1bmN0aW9uIGJyZWFrcG9pbnRSZXNvbHZlZCgpCisg
ICAgICAgICAgICBmdW5jdGlvbiBicmVha3BvaW50UmVzb2x2ZWQobG9jYXRpb24pCiAgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgc2NyaXB0ID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9k
ZWwuc2NyaXB0Rm9ySWQobG9jYXRpb24uc2NyaXB0SWQpOworCiAgICAgICAgICAgICAgICAgZHVt
cEJyZWFrcG9pbnRTdG9yYWdlQW5kTG9jYXRpb25zKCk7CiAgICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoIkVkaXRpbmcgc291cmNlOiIpOwogICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QucmVwbGFjZUluU291cmNlKGphdmFTY3JpcHRTb3VyY2VGcmFtZSwgIn0iLCAi
Ly99Iik7CiAKKyAgICAgICAgICAgICAgICBvcmlnaW5hbFVJU291cmNlQ29kZSA9IHNjcmlwdC5y
YXdMb2NhdGlvblRvVUlMb2NhdGlvbihsb2NhdGlvbi5saW5lTnVtYmVyKS51aVNvdXJjZUNvZGU7
CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zaG93VUlTb3VyY2VDb2RlKG9yaWdpbmFs
VUlTb3VyY2VDb2RlLCBkaWRTaG93T3JpZ2luYWxVSVNvdXJjZUNvZGUpOworICAgICAgICAgICAg
fQorCisgICAgICAgICAgICBmdW5jdGlvbiBkaWRTaG93T3JpZ2luYWxVSVNvdXJjZUNvZGUoc291
cmNlRnJhbWUpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgb3JpZ2luYWxKYXZhU2Ny
aXB0U291cmNlRnJhbWUgPSBzb3VyY2VGcmFtZTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFzc2VydFRydWUob3JpZ2luYWxKYXZhU2NyaXB0U291cmNlRnJhbWUgIT09IGphdmFTY3Jp
cHRTb3VyY2VGcmFtZSwgIkVkaXRlZCBhbmQgb3JpZ2luYWwgamF2YVNjcmlwdFNvdXJjZUZyYW1l
cyBzaG91bGQgZGlmZmVyLiIpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0
VHJ1ZShvcmlnaW5hbFVJU291cmNlQ29kZSAhPT0gdWlTb3VyY2VDb2RlLCAiRWRpdGVkIGFuZCBv
cmlnaW5hbCB1aVNvdXJjZUNvZGVzIHNob3VsZCBkaWZmZXIuIik7CisKICAgICAgICAgICAgICAg
ICBkdW1wQnJlYWtwb2ludFN0b3JhZ2VBbmRMb2NhdGlvbnMoKTsKICAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQ29tbWl0dGluZyBlZGl0ZWQgc291cmNlOiIpOwogICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuZGVidWdn
ZXJNb2RlbCwgIl9kaWRFZGl0U2NyaXB0U291cmNlIiwgY29tbWl0RmFpbGVkKTsKQEAgLTE4NCw3
ICsyMzEsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgICAgICBmdW5jdGlvbiB0ZXN0RWRpdENv
bW1pdEZhaWxVbmRvQ29tbWl0KG5leHQpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHZhciBqYXZh
U2NyaXB0U291cmNlRnJhbWUsIHVpU291cmNlQ29kZSwgc2NyaXB0RmlsZTsKKyAgICAgICAgICAg
IHZhciBqYXZhU2NyaXB0U291cmNlRnJhbWUsIHVpU291cmNlQ29kZSwgc2NyaXB0LCBvcmlnaW5h
bEphdmFTY3JpcHRTb3VyY2VGcmFtZSwgb3JpZ2luYWxVSVNvdXJjZUNvZGU7CiAKICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3Quc2hvd1NjcmlwdFNvdXJjZSgiZWRpdC1tZS5qcyIsIGRpZFNob3dT
Y3JpcHRTb3VyY2UpOwogCkBAIC0xOTIsMTkgKzIzOSwzMCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBqYXZhU2NyaXB0U291cmNlRnJhbWUgPSBzb3Vy
Y2VGcmFtZTsKICAgICAgICAgICAgICAgICB1aVNvdXJjZUNvZGUgPSBzb3VyY2VGcmFtZS5fdWlT
b3VyY2VDb2RlOwotICAgICAgICAgICAgICAgIHNjcmlwdEZpbGUgPSBzb3VyY2VGcmFtZS5fdWlT
b3VyY2VDb2RlLnNjcmlwdEZpbGUoKTsKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU2V0dGluZyBicmVha3BvaW50OiIpOwogICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuQnJlYWtwb2lu
dE1hbmFnZXIuQnJlYWtwb2ludC5wcm90b3R5cGUsICJfYWRkUmVzb2x2ZWRMb2NhdGlvbiIsIGJy
ZWFrcG9pbnRSZXNvbHZlZCk7CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZXRCcmVh
a3BvaW50KHNvdXJjZUZyYW1lLCAyLCAiIiwgdHJ1ZSk7CiAgICAgICAgICAgICB9CiAKLSAgICAg
ICAgICAgIGZ1bmN0aW9uIGJyZWFrcG9pbnRSZXNvbHZlZCgpCisgICAgICAgICAgICBmdW5jdGlv
biBicmVha3BvaW50UmVzb2x2ZWQobG9jYXRpb24pCiAgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgc2NyaXB0ID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuc2NyaXB0Rm9ySWQobG9j
YXRpb24uc2NyaXB0SWQpOworCiAgICAgICAgICAgICAgICAgZHVtcEJyZWFrcG9pbnRTdG9yYWdl
QW5kTG9jYXRpb25zKCk7CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
IkVkaXRpbmcgc291cmNlOiIpOwogICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucmVwbGFj
ZUluU291cmNlKGphdmFTY3JpcHRTb3VyY2VGcmFtZSwgIn0iLCAiLy99Iik7CiAKKyAgICAgICAg
ICAgICAgICBvcmlnaW5hbFVJU291cmNlQ29kZSA9IHNjcmlwdC5yYXdMb2NhdGlvblRvVUlMb2Nh
dGlvbihsb2NhdGlvbi5saW5lTnVtYmVyKS51aVNvdXJjZUNvZGU7CisgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5zaG93VUlTb3VyY2VDb2RlKG9yaWdpbmFsVUlTb3VyY2VDb2RlLCBkaWRT
aG93T3JpZ2luYWxVSVNvdXJjZUNvZGUpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBm
dW5jdGlvbiBkaWRTaG93T3JpZ2luYWxVSVNvdXJjZUNvZGUoc291cmNlRnJhbWUpCisgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgb3JpZ2luYWxKYXZhU2NyaXB0U291cmNlRnJhbWUgPSBz
b3VyY2VGcmFtZTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydFRydWUob3Jp
Z2luYWxKYXZhU2NyaXB0U291cmNlRnJhbWUgIT09IGphdmFTY3JpcHRTb3VyY2VGcmFtZSwgIkVk
aXRlZCBhbmQgb3JpZ2luYWwgamF2YVNjcmlwdFNvdXJjZUZyYW1lcyBzaG91bGQgZGlmZmVyLiIp
OworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0VHJ1ZShvcmlnaW5hbFVJU291
cmNlQ29kZSAhPT0gdWlTb3VyY2VDb2RlLCAiRWRpdGVkIGFuZCBvcmlnaW5hbCB1aVNvdXJjZUNv
ZGVzIHNob3VsZCBkaWZmZXIuIik7CisKICAgICAgICAgICAgICAgICBkdW1wQnJlYWtwb2ludFN0
b3JhZ2VBbmRMb2NhdGlvbnMoKTsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
c3VsdCgiQ29tbWl0dGluZyBlZGl0ZWQgc291cmNlOiIpOwogICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbCwgIl9kaWRFZGl0
U2NyaXB0U291cmNlIiwgY29tbWl0RmFpbGVkKTsKQEAgLTIzNCw2ICsyOTIsMTM0IEBAIGZ1bmN0
aW9uIHRlc3QoKQogICAgICAgICAgICAgICAgIG5leHQoKTsKICAgICAgICAgICAgIH0KICAgICAg
ICAgfSwKKworICAgICAgICBmdW5jdGlvbiB0ZXN0RWRpdEFub255bW91c1VuZG8obmV4dCkKKyAg
ICAgICAgeworICAgICAgICAgICAgdmFyIGphdmFTY3JpcHRTb3VyY2VGcmFtZSwgdWlTb3VyY2VD
b2RlLCBzY3JpcHQsIG9yaWdpbmFsSmF2YVNjcmlwdFNvdXJjZUZyYW1lLCBvcmlnaW5hbFVJU291
cmNlQ29kZTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZnVuY3Rpb24gdGVzdEZ1bmN0aW9u
KCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBkZWJ1Z2dlcjsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoU3RyaW5nKHRlc3RG
dW5jdGlvbiksIEluc3BlY3RvclRlc3QucnVuVGVzdEZ1bmN0aW9uQW5kV2FpdFVudGlsUGF1c2Vk
LmJpbmQoSW5zcGVjdG9yVGVzdCwgcGF1c2VkKSk7CisgICAgICAgICAgICBmdW5jdGlvbiBwYXVz
ZWQoKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucmVzdW1l
RXhlY3V0aW9uKHJlc3VtZWQpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlv
biByZXN1bWVkKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdCgiU2hvd2luZyBzY3JpcHQgc291cmNlOiIpOworICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3Quc2hvd1VJU291cmNlQ29kZShwYW5lbC52aXNpYmxlVmlldy5fdWlTb3VyY2VD
b2RlLCBkaWRTaG93U2NyaXB0U291cmNlKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
ZnVuY3Rpb24gZGlkU2hvd1NjcmlwdFNvdXJjZShzb3VyY2VGcmFtZSkKKyAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICBqYXZhU2NyaXB0U291cmNlRnJhbWUgPSBzb3VyY2VGcmFtZTsKKyAg
ICAgICAgICAgICAgICB1aVNvdXJjZUNvZGUgPSBzb3VyY2VGcmFtZS5fdWlTb3VyY2VDb2RlOwor
ICAgICAgICAgICAgICAgIGphdmFTY3JpcHRTb3VyY2VGcmFtZS5fdGV4dEVkaXRvci5tYWluID0g
dHJ1ZTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdCgiU2V0dGluZyBicmVha3BvaW50OiIpOworICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuQnJlYWtwb2ludE1hbmFnZXIuQnJlYWtwb2lu
dC5wcm90b3R5cGUsICJfYWRkUmVzb2x2ZWRMb2NhdGlvbiIsIGJyZWFrcG9pbnRSZXNvbHZlZCk7
CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZXRCcmVha3BvaW50KHNvdXJjZUZyYW1l
LCAyLCAiIiwgdHJ1ZSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGJy
ZWFrcG9pbnRSZXNvbHZlZChsb2NhdGlvbikKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICBzY3JpcHQgPSBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5zY3JpcHRGb3JJZChsb2NhdGlv
bi5zY3JpcHRJZCk7CisKKyAgICAgICAgICAgICAgICBkdW1wQnJlYWtwb2ludFN0b3JhZ2VBbmRM
b2NhdGlvbnMoKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRWRp
dGluZyBzb3VyY2U6Iik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5yZXBsYWNlSW5T
b3VyY2UoamF2YVNjcmlwdFNvdXJjZUZyYW1lLCAifSIsICJ9Ly8iKTsKKworICAgICAgICAgICAg
ICAgIG9yaWdpbmFsVUlTb3VyY2VDb2RlID0gc2NyaXB0LnJhd0xvY2F0aW9uVG9VSUxvY2F0aW9u
KGxvY2F0aW9uLmxpbmVOdW1iZXIpLnVpU291cmNlQ29kZTsKKyAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LnNob3dVSVNvdXJjZUNvZGUob3JpZ2luYWxVSVNvdXJjZUNvZGUsIGRpZFNob3dP
cmlnaW5hbFVJU291cmNlQ29kZSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0
aW9uIGRpZFNob3dPcmlnaW5hbFVJU291cmNlQ29kZShzb3VyY2VGcmFtZSkKKyAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICBvcmlnaW5hbEphdmFTY3JpcHRTb3VyY2VGcmFtZSA9IHNvdXJj
ZUZyYW1lOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0VHJ1ZShvcmlnaW5h
bEphdmFTY3JpcHRTb3VyY2VGcmFtZSAhPT0gamF2YVNjcmlwdFNvdXJjZUZyYW1lLCAiRWRpdGVk
IGFuZCBvcmlnaW5hbCBqYXZhU2NyaXB0U291cmNlRnJhbWVzIHNob3VsZCBkaWZmZXIuIik7Cisg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRUcnVlKG9yaWdpbmFsVUlTb3VyY2VD
b2RlICE9PSB1aVNvdXJjZUNvZGUsICJFZGl0ZWQgYW5kIG9yaWdpbmFsIHVpU291cmNlQ29kZXMg
c2hvdWxkIGRpZmZlci4iKTsKKworICAgICAgICAgICAgICAgIGR1bXBCcmVha3BvaW50U3RvcmFn
ZUFuZExvY2F0aW9ucygpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KCJVbmRvaW5nIHNvdXJjZSBlZGl0aW5nOiIpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuQnJlYWtwb2ludE1hbmFnZXIuQnJlYWtwb2ludC5w
cm90b3R5cGUsICJfYWRkUmVzb2x2ZWRMb2NhdGlvbiIsIGJyZWFrcG9pbnRSZXNvbHZlZEFnYWlu
KTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnVuZG9Tb3VyY2VFZGl0aW5nKGphdmFT
Y3JpcHRTb3VyY2VGcmFtZSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9u
IGJyZWFrcG9pbnRSZXNvbHZlZEFnYWluKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICBkdW1wQnJlYWtwb2ludFN0b3JhZ2VBbmRMb2NhdGlvbnMoKTsKKyAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRmluYWxseSByZW1vdmluZyBicmVha3BvaW50OiIpOwor
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucmVtb3ZlQnJlYWtwb2ludChqYXZhU2NyaXB0
U291cmNlRnJhbWUsIDIpOworCisgICAgICAgICAgICAgICAgZHVtcEJyZWFrcG9pbnRTdG9yYWdl
QW5kTG9jYXRpb25zKCk7CisgICAgICAgICAgICAgICAgbmV4dCgpOworICAgICAgICAgICAgfQor
ICAgICAgICB9LAorCisgICAgICAgIGZ1bmN0aW9uIHRlc3RFZGl0RHluYW1pY0Fub255bW91c1Vu
ZG8obmV4dCkKKyAgICAgICAgeworICAgICAgICAgICAgdmFyIGphdmFTY3JpcHRTb3VyY2VGcmFt
ZSwgdWlTb3VyY2VDb2RlLCBzY3JpcHQsIG9yaWdpbmFsSmF2YVNjcmlwdFNvdXJjZUZyYW1lLCBv
cmlnaW5hbFVJU291cmNlQ29kZTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5ldmFsdWF0ZUluUGFnZSgibG9hZER5bmFtaWNBbm9ueW1vdXNTY3JpcHQoKSIsIEluc3Bl
Y3RvclRlc3QucnVuVGVzdEZ1bmN0aW9uQW5kV2FpdFVudGlsUGF1c2VkLmJpbmQoSW5zcGVjdG9y
VGVzdCwgcGF1c2VkKSk7CisgICAgICAgICAgICBmdW5jdGlvbiBwYXVzZWQoKQorICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucmVzdW1lRXhlY3V0aW9uKHJlc3Vt
ZWQpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiByZXN1bWVkKCkKKyAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU2hv
d2luZyBzY3JpcHQgc291cmNlOiIpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2hv
d1VJU291cmNlQ29kZShwYW5lbC52aXNpYmxlVmlldy5fdWlTb3VyY2VDb2RlLCBkaWRTaG93U2Ny
aXB0U291cmNlKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gZGlkU2hv
d1NjcmlwdFNvdXJjZShzb3VyY2VGcmFtZSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICBqYXZhU2NyaXB0U291cmNlRnJhbWUgPSBzb3VyY2VGcmFtZTsKKyAgICAgICAgICAgICAgICB1
aVNvdXJjZUNvZGUgPSBzb3VyY2VGcmFtZS5fdWlTb3VyY2VDb2RlOworICAgICAgICAgICAgICAg
IGphdmFTY3JpcHRTb3VyY2VGcmFtZS5fdGV4dEVkaXRvci5tYWluID0gdHJ1ZTsKKyAgICAgICAg
ICAgICAgICAKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU2V0dGlu
ZyBicmVha3BvaW50OiIpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZl
cihXZWJJbnNwZWN0b3IuQnJlYWtwb2ludE1hbmFnZXIuQnJlYWtwb2ludC5wcm90b3R5cGUsICJf
YWRkUmVzb2x2ZWRMb2NhdGlvbiIsIGJyZWFrcG9pbnRSZXNvbHZlZCk7CisgICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5zZXRCcmVha3BvaW50KHNvdXJjZUZyYW1lLCAyLCAiIiwgdHJ1ZSk7
CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGJyZWFrcG9pbnRSZXNvbHZl
ZChsb2NhdGlvbikKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBzY3JpcHQgPSBXZWJJ
bnNwZWN0b3IuZGVidWdnZXJNb2RlbC5zY3JpcHRGb3JJZChsb2NhdGlvbi5zY3JpcHRJZCk7CisK
KyAgICAgICAgICAgICAgICBkdW1wQnJlYWtwb2ludFN0b3JhZ2VBbmRMb2NhdGlvbnMoKTsKKyAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRWRpdGluZyBzb3VyY2U6Iik7
CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5yZXBsYWNlSW5Tb3VyY2UoamF2YVNjcmlw
dFNvdXJjZUZyYW1lLCAifSIsICJ9Ly8iKTsKKworICAgICAgICAgICAgICAgIG9yaWdpbmFsVUlT
b3VyY2VDb2RlID0gc2NyaXB0LnJhd0xvY2F0aW9uVG9VSUxvY2F0aW9uKGxvY2F0aW9uLmxpbmVO
dW1iZXIpLnVpU291cmNlQ29kZTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNob3dV
SVNvdXJjZUNvZGUob3JpZ2luYWxVSVNvdXJjZUNvZGUsIGRpZFNob3dPcmlnaW5hbFVJU291cmNl
Q29kZSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGRpZFNob3dPcmln
aW5hbFVJU291cmNlQ29kZShzb3VyY2VGcmFtZSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICBvcmlnaW5hbEphdmFTY3JpcHRTb3VyY2VGcmFtZSA9IHNvdXJjZUZyYW1lOworICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0VHJ1ZShvcmlnaW5hbEphdmFTY3JpcHRTb3Vy
Y2VGcmFtZSAhPT0gamF2YVNjcmlwdFNvdXJjZUZyYW1lLCAiRWRpdGVkIGFuZCBvcmlnaW5hbCBq
YXZhU2NyaXB0U291cmNlRnJhbWVzIHNob3VsZCBkaWZmZXIuIik7CisgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hc3NlcnRUcnVlKG9yaWdpbmFsVUlTb3VyY2VDb2RlICE9PSB1aVNvdXJj
ZUNvZGUsICJFZGl0ZWQgYW5kIG9yaWdpbmFsIHVpU291cmNlQ29kZXMgc2hvdWxkIGRpZmZlci4i
KTsKKworICAgICAgICAgICAgICAgIGR1bXBCcmVha3BvaW50U3RvcmFnZUFuZExvY2F0aW9ucygp
OworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJVbmRvaW5nIHNvdXJj
ZSBlZGl0aW5nOiIpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihX
ZWJJbnNwZWN0b3IuQnJlYWtwb2ludE1hbmFnZXIuQnJlYWtwb2ludC5wcm90b3R5cGUsICJfYWRk
UmVzb2x2ZWRMb2NhdGlvbiIsIGJyZWFrcG9pbnRSZXNvbHZlZEFnYWluKTsKKyAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LnVuZG9Tb3VyY2VFZGl0aW5nKGphdmFTY3JpcHRTb3VyY2VGcmFt
ZSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGJyZWFrcG9pbnRSZXNv
bHZlZEFnYWluKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBkdW1wQnJlYWtwb2lu
dFN0b3JhZ2VBbmRMb2NhdGlvbnMoKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdCgiRmluYWxseSByZW1vdmluZyBicmVha3BvaW50OiIpOworICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QucmVtb3ZlQnJlYWtwb2ludChqYXZhU2NyaXB0U291cmNlRnJhbWUsIDIp
OworCisgICAgICAgICAgICAgICAgZHVtcEJyZWFrcG9pbnRTdG9yYWdlQW5kTG9jYXRpb25zKCk7
CisgICAgICAgICAgICAgICAgbmV4dCgpOworICAgICAgICAgICAgfQorICAgICAgICB9LAogICAg
IF0pOwogfTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Jl
c291cmNlLXNjcmlwdC1tYXBwaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci9yZXNvdXJjZS1zY3JpcHQtbWFwcGluZy1leHBlY3RlZC50eHQKaW5kZXggNzEw
ODk2ZTcwMTIxM2U5YjFhMTQwNmU2ZTJiYTMwZmNmYjZhODY0Zi4uYWZhOWMyMTE2ZjhhMzViZjY4
NzA5YTU1MThkNDY0NDBjNWU2MzY4MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL3Jlc291cmNlLXNjcmlwdC1tYXBwaW5nLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmVzb3VyY2Utc2NyaXB0LW1hcHBpbmctZXhwZWN0
ZWQudHh0CkBAIC00LDcgKzQsNyBAQCBUZXN0cyBSZXNvdXJjZVNjcmlwdE1hcHBpbmcgY2xhc3Mu
CiBSdW5uaW5nOiB0ZXN0U2NyaXB0V2l0aFBlbmRpbmdSZXNvdXJjZQogQWRkaW5nIHNjcmlwdCBm
b3IgcGVuZGluZyByZXF1ZXN0LgogVUlTb3VyY2VDb2RlOiBmb28uanMKLVVJU291cmNlQ29kZSBp
cyBlZGl0YWJsZTogZmFsc2UKK1VJU291cmNlQ29kZSBpcyBlZGl0YWJsZTogdHJ1ZQogVUlTb3Vy
Y2VDb2RlIGlzIGNvbnRlbnQgc2NyaXB0OiB0cnVlCiBNaW1lIHR5cGU6IHRleHQvamF2YXNjcmlw
dAogVUlTb3VyY2VDb2RlIGNvbnRlbnQ6IDxjb250ZW50IHNjcmlwdCBzb3VyY2U+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmVzb3VyY2Utc2NyaXB0LW1hcHBp
bmcuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZS1zY3JpcHQt
bWFwcGluZy5odG1sCmluZGV4IDAzZjRjMmRkMzUwOGExZGQ1MTQ5MzExMTg1ZDE4NzRkMGY4Mzll
OWUuLjY2MmFhYzA0MjM5ZmQ3Mjg3MzUyOGJkZWI0YmIzZmYzZGQxNThiMDggMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZS1zY3JpcHQtbWFwcGluZy5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZS1zY3JpcHQt
bWFwcGluZy5odG1sCkBAIC0zMCwxNCArMzAsMTcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAg
ICAgICAgICAgcmVzb3VyY2VTY3JpcHRNYXBwaW5nLmFkZFNjcmlwdChzY3JpcHQpOwogICAgICAg
ICAgICAgICAgIAogICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qud2FpdEZvcldvcmtzcGFj
ZVRlbXBvcmFyeVVJU291cmNlQ29kZUFkZGVkRXZlbnQodGVtcG9yYXJ5VUlTb3VyY2VDb2RlQWRk
ZWQpOworICAgICAgICAgICAgICAgIHZhciB0ZW1wb3JhcnlVSVNvdXJjZUNvZGU7CiAgICAgICAg
ICAgICAgICAgc2NyaXB0LnJhd0xvY2F0aW9uVG9VSUxvY2F0aW9uKDAsIDUpOwogCiAgICAgICAg
ICAgICAgICAgZnVuY3Rpb24gdGVtcG9yYXJ5VUlTb3VyY2VDb2RlQWRkZWQodWlTb3VyY2VDb2Rl
KQogICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5j
aGVja1VJTG9jYXRpb24odWlTb3VyY2VDb2RlLCAwLCA1LCBzY3JpcHQucmF3TG9jYXRpb25Ub1VJ
TG9jYXRpb24oMCwgNSkpOwotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNoZWNr
UmF3TG9jYXRpb24oc2NyaXB0LCAxMCwgMCwgdWlTb3VyY2VDb2RlLnVpTG9jYXRpb25Ub1Jhd0xv
Y2F0aW9uKDEwLCAwKSk7Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFVJ
U291cmNlQ29kZSh1aVNvdXJjZUNvZGUsIHN0ZXAyKTsKKyAgICAgICAgICAgICAgICAgICAgdGVt
cG9yYXJ5VUlTb3VyY2VDb2RlID0gdWlTb3VyY2VDb2RlOwogICAgICAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tVSUxvY2F0aW9uKHRlbXBvcmFyeVVJ
U291cmNlQ29kZSwgMCwgNSwgc2NyaXB0LnJhd0xvY2F0aW9uVG9VSUxvY2F0aW9uKDAsIDUpKTsK
KyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrUmF3TG9jYXRpb24oc2NyaXB0LCAx
MCwgMCwgdGVtcG9yYXJ5VUlTb3VyY2VDb2RlLnVpTG9jYXRpb25Ub1Jhd0xvY2F0aW9uKDEwLCAw
KSk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wVUlTb3VyY2VDb2RlKHRlbXBv
cmFyeVVJU291cmNlQ29kZSwgc3RlcDIpOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBm
dW5jdGlvbiBzdGVwMigpCkBAIC0xMDUsMTQgKzEwOCwxNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAg
ICAgICAgICAgICAgICByZXNvdXJjZVNjcmlwdE1hcHBpbmcuYWRkU2NyaXB0KHNjcmlwdDEpOwog
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qud2FpdEZvcldv
cmtzcGFjZVRlbXBvcmFyeVVJU291cmNlQ29kZUFkZGVkRXZlbnQodGVtcG9yYXJ5VUlTb3VyY2VD
b2RlQWRkZWQpOworICAgICAgICAgICAgICAgIHZhciB0ZW1wb3JhcnlVSVNvdXJjZUNvZGU7CiAg
ICAgICAgICAgICAgICAgc2NyaXB0MS5yYXdMb2NhdGlvblRvVUlMb2NhdGlvbigwLCA1KTsKIAog
ICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHRlbXBvcmFyeVVJU291cmNlQ29kZUFkZGVkKHVpU291
cmNlQ29kZSkKICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuY2hlY2tVSUxvY2F0aW9uKHVpU291cmNlQ29kZSwgMCwgNSwgc2NyaXB0MS5yYXdMb2Nh
dGlvblRvVUlMb2NhdGlvbigwLCA1KSk7Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuY2hlY2tSYXdMb2NhdGlvbihzY3JpcHQxLCAxMCwgMCwgdWlTb3VyY2VDb2RlLnVpTG9jYXRp
b25Ub1Jhd0xvY2F0aW9uKDEwLCAwKSk7Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuZHVtcFVJU291cmNlQ29kZSh1aVNvdXJjZUNvZGUsIHN0ZXAyKTsKKyAgICAgICAgICAgICAg
ICAgICAgdGVtcG9yYXJ5VUlTb3VyY2VDb2RlID0gdWlTb3VyY2VDb2RlOwogICAgICAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tVSUxvY2F0aW9uKHRl
bXBvcmFyeVVJU291cmNlQ29kZSwgMCwgNSwgc2NyaXB0MS5yYXdMb2NhdGlvblRvVUlMb2NhdGlv
bigwLCA1KSk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja1Jhd0xvY2F0aW9u
KHNjcmlwdDEsIDEwLCAwLCB0ZW1wb3JhcnlVSVNvdXJjZUNvZGUudWlMb2NhdGlvblRvUmF3TG9j
YXRpb24oMTAsIDApKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBVSVNvdXJj
ZUNvZGUodGVtcG9yYXJ5VUlTb3VyY2VDb2RlLCBzdGVwMik7CiAgICAgICAgICAgICB9CiAKICAg
ICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAyKCkKQEAgLTEyMSwxNCArMTI3LDE3IEBAIGZ1bmN0aW9u
IHRlc3QoKQogICAgICAgICAgICAgICAgIHNjcmlwdDIgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZVNj
cmlwdE1vY2sodXJsLCAwLCA0NSwgZmFsc2UsICI8c2NyaXB0IHNvdXJjZSAyPiIpOwogICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3Qud2FpdEZvcldvcmtzcGFjZVRlbXBvcmFyeVVJU291cmNl
Q29kZVJlbW92ZWRFdmVudChmdW5jdGlvbigpIHsgfSk7CiAgICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC53YWl0Rm9yV29ya3NwYWNlVGVtcG9yYXJ5VUlTb3VyY2VDb2RlQWRkZWRFdmVudCh0
ZW1wb3JhcnlVSVNvdXJjZUNvZGVBZGRlZCk7CisgICAgICAgICAgICAgICAgdmFyIHRlbXBvcmFy
eVVJU291cmNlQ29kZTsKICAgICAgICAgICAgICAgICByZXNvdXJjZVNjcmlwdE1hcHBpbmcuYWRk
U2NyaXB0KHNjcmlwdDIpOwogCiAgICAgICAgICAgICAgICAgZnVuY3Rpb24gdGVtcG9yYXJ5VUlT
b3VyY2VDb2RlQWRkZWQodWlTb3VyY2VDb2RlKQogICAgICAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja1VJTG9jYXRpb24odWlTb3VyY2VDb2RlLCAw
LCA1LCBzY3JpcHQyLnJhd0xvY2F0aW9uVG9VSUxvY2F0aW9uKDAsIDUpKTsKLSAgICAgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja1Jhd0xvY2F0aW9uKHNjcmlwdDEsIDEwLCAwLCB1
aVNvdXJjZUNvZGUudWlMb2NhdGlvblRvUmF3TG9jYXRpb24oMTAsIDApKTsKLSAgICAgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wVUlTb3VyY2VDb2RlKHVpU291cmNlQ29kZSwgc3Rl
cDMpOworICAgICAgICAgICAgICAgICAgICB0ZW1wb3JhcnlVSVNvdXJjZUNvZGUgPSB1aVNvdXJj
ZUNvZGU7CiAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5jaGVja1VJTG9jYXRpb24odGVtcG9yYXJ5VUlTb3VyY2VDb2RlLCAwLCA1LCBzY3JpcHQyLnJh
d0xvY2F0aW9uVG9VSUxvY2F0aW9uKDAsIDUpKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmNoZWNrUmF3TG9jYXRpb24oc2NyaXB0MSwgMTAsIDAsIHRlbXBvcmFyeVVJU291cmNlQ29k
ZS51aUxvY2F0aW9uVG9SYXdMb2NhdGlvbigxMCwgMCkpOworICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZHVtcFVJU291cmNlQ29kZSh0ZW1wb3JhcnlVSVNvdXJjZUNvZGUsIHN0ZXAzKTsK
ICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDMoKQo=
</data>
<flag name="review"
          id="183335"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>