<?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>222933</bug_id>
          
          <creation_ts>2021-03-08 12:34:25 -0800</creation_ts>
          <short_desc>[ews] Remove old Python 2 related code</short_desc>
          <delta_ts>2021-03-08 14:23:15 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Aakash Jain">aakash_jain</reporter>
          <assigned_to name="Aakash Jain">aakash_jain</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>dewei_zhu</cc>
    
    <cc>jbedard</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1737227</commentid>
    <comment_count>0</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2021-03-08 12:34:25 -0800</bug_when>
    <thetext>Now that ews have moved to python 3 (and latest buildbot), we can remove code specific to python 2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737246</commentid>
    <comment_count>1</comment_count>
      <attachid>422607</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2021-03-08 13:02:10 -0800</bug_when>
    <thetext>Created attachment 422607
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737270</commentid>
    <comment_count>2</comment_count>
    <who name="">dewei_zhu</who>
    <bug_when>2021-03-08 13:39:21 -0800</bug_when>
    <thetext>r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737293</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-08 14:22:26 -0800</bug_when>
    <thetext>Committed r274108: &lt;https://commits.webkit.org/r274108&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 422607.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737294</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-08 14:23:15 -0800</bug_when>
    <thetext>&lt;rdar://problem/75187491&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422607</attachid>
            <date>2021-03-08 13:02:10 -0800</date>
            <delta_ts>2021-03-08 14:22:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222933-20210308160208.patch</filename>
            <type>text/plain</type>
            <size>29782</size>
            <attacher name="Aakash Jain">aakash_jain</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI3NDA5NSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDEzIEBACisyMDIxLTAzLTA4ICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxlLmNv
bT4KKworICAgICAgICBbZXdzXSBSZW1vdmUgb2xkIFB5dGhvbiAyIHJlbGF0ZWQgY29kZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyOTMzCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDSVN1cHBvcnQv
ZXdzLWJ1aWxkL3N0ZXBzLnB5OgorICAgICAgICAqIENJU3VwcG9ydC9idWlsZC13ZWJraXQtb3Jn
L3N0ZXBzLnB5OgorCiAyMDIxLTAzLTA4ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxl
LmNvbT4KIAogICAgICAgICBbcnVuLXdlYmtpdC10ZXN0c10gRGVsZXRlIG9sZCByZXN1bHRzIHNl
cnZlciBjb2RlIChGb2xsb3ctdXApCkluZGV4OiBUb29scy9DSVN1cHBvcnQvYnVpbGQtd2Via2l0
LW9yZy9zdGVwcy5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DSVN1cHBvcnQvYnVpbGQtd2Via2l0
LW9yZy9zdGVwcy5weQkocmV2aXNpb24gMjc0MDk1KQorKysgVG9vbHMvQ0lTdXBwb3J0L2J1aWxk
LXdlYmtpdC1vcmcvc3RlcHMucHkJKHdvcmtpbmcgY29weSkKQEAgLTMwLDkgKzMwLDE0IEBAIGZy
b20gdHdpc3RlZC5pbnRlcm5ldCBpbXBvcnQgZGVmZXIKIGltcG9ydCBvcwogaW1wb3J0IHJlCiBp
bXBvcnQgc29ja2V0CitpbXBvcnQgc3lzCiBpbXBvcnQganNvbgogaW1wb3J0IHVybGxpYgogCitp
ZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsIDUpOgorICAgIHByaW50KCdFUlJPUjogUGxlYXNlIHVz
ZSBQeXRob24gMy4gVGhpcyBjb2RlIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggUHl0aG9uIDIuJykK
KyAgICBzeXMuZXhpdCgxKQorCiBBUFBMRV9XRUJLSVRfQVdTX1BST1hZID0gImh0dHA6Ly9wcm94
eTAxLndlYmtpdC5vcmc6MzEyOCIKIEJVSUxEX1dFQktJVF9IT1NUTkFNRSA9ICdidWlsZC53ZWJr
aXQub3JnJwogQ09NTUlUU19JTkZPX1VSTCA9ICdodHRwczovL2NvbW1pdHMud2Via2l0Lm9yZy8n
CkluZGV4OiBUb29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL3N0ZXBzLnB5Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQvc3RlcHMucHkJKHJldmlzaW9uIDI3NDA5NSkKKysr
IFRvb2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQvc3RlcHMucHkJKHdvcmtpbmcgY29weSkKQEAgLTM5
LDggKzM5LDkgQEAgaW1wb3J0IHJlcXVlc3RzCiBpbXBvcnQgc29ja2V0CiBpbXBvcnQgc3lzCiAK
LWlmIHN5cy52ZXJzaW9uX2luZm8gPiAoMywgMCk6Ci0gICAgdW5pY29kZSA9IHN0cgoraWYgc3lz
LnZlcnNpb25faW5mbyA8ICgzLCA1KToKKyAgICBwcmludCgnRVJST1I6IFBsZWFzZSB1c2UgUHl0
aG9uIDMuIFRoaXMgY29kZSBpcyBub3QgY29tcGF0aWJsZSB3aXRoIFB5dGhvbiAyLicpCisgICAg
c3lzLmV4aXQoMSkKIAogQlVHX1NFUlZFUl9VUkwgPSAnaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
JwogQ09NTUlUU19JTkZPX1VSTCA9ICdodHRwczovL2NvbW1pdHMud2Via2l0Lm9yZy8nCkBAIC0x
MjQsOSArMTI1LDkgQEAgY2xhc3MgQ2hlY2tPdXRTb3VyY2UoZ2l0LkdpdCk6CiAgICAgICAgICAg
ICBzZWxmLmJ1aWxkLmFkZFN0ZXBzQWZ0ZXJDdXJyZW50U3RlcChbQ2xlYW5VcEdpdEluZGV4TG9j
aygpXSkKIAogICAgICAgICBpZiBzZWxmLnJlc3VsdHMgIT0gU1VDQ0VTUzoKLSAgICAgICAgICAg
IHJldHVybiB7dSdzdGVwJzogdSdGYWlsZWQgdG8gdXBkYXRlZCB3b3JraW5nIGRpcmVjdG9yeSd9
CisgICAgICAgICAgICByZXR1cm4geydzdGVwJzogJ0ZhaWxlZCB0byB1cGRhdGVkIHdvcmtpbmcg
ZGlyZWN0b3J5J30KICAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJldHVybiB7dSdzdGVwJzog
dSdDbGVhbmVkIGFuZCB1cGRhdGVkIHdvcmtpbmcgZGlyZWN0b3J5J30KKyAgICAgICAgICAgIHJl
dHVybiB7J3N0ZXAnOiAnQ2xlYW5lZCBhbmQgdXBkYXRlZCB3b3JraW5nIGRpcmVjdG9yeSd9CiAK
IAogY2xhc3MgQ2xlYW5VcEdpdEluZGV4TG9jayhzaGVsbC5TaGVsbENvbW1hbmQpOgpAQCAtMjM0
LDcgKzIzNSw3IEBAIGNsYXNzIFNob3dJZGVudGlmaWVyKHNoZWxsLlNoZWxsQ29tbWFuZCkKIAog
ICAgIGRlZiBnZXRSZXN1bHRTdW1tYXJ5KHNlbGYpOgogICAgICAgICBpZiBzZWxmLnJlc3VsdHMg
IT0gU1VDQ0VTUzoKLSAgICAgICAgICAgIHJldHVybiB7dSdzdGVwJzogdSdGYWlsZWQgdG8gZmlu
ZCBpZGVudGlmaWVyJ30KKyAgICAgICAgICAgIHJldHVybiB7J3N0ZXAnOiAnRmFpbGVkIHRvIGZp
bmQgaWRlbnRpZmllcid9CiAgICAgICAgIHJldHVybiBzaGVsbC5TaGVsbENvbW1hbmQuZ2V0UmVz
dWx0U3VtbWFyeShzZWxmKQogCiAgICAgZGVmIGhpZGVTdGVwSWYoc2VsZiwgcmVzdWx0cywgc3Rl
cCk6CkBAIC0yNzAsOSArMjcxLDkgQEAgY2xhc3MgVXBkYXRlV29ya2luZ0RpcmVjdG9yeShzaGVs
bC5TaGVsbAogCiAgICAgZGVmIGdldFJlc3VsdFN1bW1hcnkoc2VsZik6CiAgICAgICAgIGlmIHNl
bGYucmVzdWx0cyAhPSBTVUNDRVNTOgotICAgICAgICAgICAgcmV0dXJuIHt1J3N0ZXAnOiB1J0Zh
aWxlZCB0byB1cGRhdGVkIHdvcmtpbmcgZGlyZWN0b3J5J30KKyAgICAgICAgICAgIHJldHVybiB7
J3N0ZXAnOiAnRmFpbGVkIHRvIHVwZGF0ZWQgd29ya2luZyBkaXJlY3RvcnknfQogICAgICAgICBl
bHNlOgotICAgICAgICAgICAgcmV0dXJuIHt1J3N0ZXAnOiB1J1VwZGF0ZWQgd29ya2luZyBkaXJl
Y3RvcnknfQorICAgICAgICAgICAgcmV0dXJuIHsnc3RlcCc6ICdVcGRhdGVkIHdvcmtpbmcgZGly
ZWN0b3J5J30KIAogICAgIGRlZiBldmFsdWF0ZUNvbW1hbmQoc2VsZiwgY21kKToKICAgICAgICAg
cmMgPSBzaGVsbC5TaGVsbENvbW1hbmQuZXZhbHVhdGVDb21tYW5kKHNlbGYsIGNtZCkKQEAgLTMx
NCw3ICszMTUsNyBAQCBjbGFzcyBBcHBseVBhdGNoKHNoZWxsLlNoZWxsQ29tbWFuZCwgQ29tCiAK
ICAgICBkZWYgZ2V0UmVzdWx0U3VtbWFyeShzZWxmKToKICAgICAgICAgaWYgc2VsZi5yZXN1bHRz
ICE9IFNVQ0NFU1M6Ci0gICAgICAgICAgICByZXR1cm4ge3Unc3RlcCc6IHUnc3ZuLWFwcGx5IGZh
aWxlZCB0byBhcHBseSBwYXRjaCB0byB0cnVuayd9CisgICAgICAgICAgICByZXR1cm4geydzdGVw
JzogJ3N2bi1hcHBseSBmYWlsZWQgdG8gYXBwbHkgcGF0Y2ggdG8gdHJ1bmsnfQogICAgICAgICBy
ZXR1cm4gc3VwZXIoQXBwbHlQYXRjaCwgc2VsZikuZ2V0UmVzdWx0U3VtbWFyeSgpCiAKICAgICBk
ZWYgZXZhbHVhdGVDb21tYW5kKHNlbGYsIGNtZCk6CkBAIC00MDYsMTEgKzQwNywxMCBAQCBjbGFz
cyBDaGVja1BhdGNoUmVsZXZhbmNlKGJ1aWxkc3RlcC5CdWlsCiAKICAgICAgICAgZm9yIGNoYW5n
ZSBpbiBwYXRjaC5zcGxpdGxpbmVzKCk6CiAgICAgICAgICAgICBmb3IgcGF0aCBpbiByZWxldmFu
dF9wYXRoczoKLSAgICAgICAgICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvID4gKDMsIDApOgot
ICAgICAgICAgICAgICAgICAgICBpZiB0eXBlKHBhdGgpID09IHN0cjoKLSAgICAgICAgICAgICAg
ICAgICAgICAgIHBhdGggPSBwYXRoLmVuY29kZShlbmNvZGluZz0ndXRmLTgnLCBlcnJvcnM9J3Jl
cGxhY2UnKQotICAgICAgICAgICAgICAgICAgICBpZiB0eXBlKGNoYW5nZSkgPT0gc3RyOgotICAg
ICAgICAgICAgICAgICAgICAgICAgY2hhbmdlID0gY2hhbmdlLmVuY29kZShlbmNvZGluZz0ndXRm
LTgnLCBlcnJvcnM9J3JlcGxhY2UnKQorICAgICAgICAgICAgICAgIGlmIHR5cGUocGF0aCkgPT0g
c3RyOgorICAgICAgICAgICAgICAgICAgICBwYXRoID0gcGF0aC5lbmNvZGUoZW5jb2Rpbmc9J3V0
Zi04JywgZXJyb3JzPSdyZXBsYWNlJykKKyAgICAgICAgICAgICAgICBpZiB0eXBlKGNoYW5nZSkg
PT0gc3RyOgorICAgICAgICAgICAgICAgICAgICBjaGFuZ2UgPSBjaGFuZ2UuZW5jb2RlKGVuY29k
aW5nPSd1dGYtOCcsIGVycm9ycz0ncmVwbGFjZScpCiAgICAgICAgICAgICAgICAgaWYgcmUuc2Vh
cmNoKHBhdGgsIGNoYW5nZSwgcmUuSUdOT1JFQ0FTRSk6CiAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBUcnVlCiAgICAgICAgIHJldHVybiBGYWxzZQpAQCAtNDQ5LDcgKzQ0OSw3IEBAIGNsYXNz
IENoZWNrUGF0Y2hSZWxldmFuY2UoYnVpbGRzdGVwLkJ1aWwKIAogICAgIGRlZiBnZXRSZXN1bHRT
dW1tYXJ5KHNlbGYpOgogICAgICAgICBpZiBzZWxmLnJlc3VsdHMgPT0gRkFJTFVSRToKLSAgICAg
ICAgICAgIHJldHVybiB7dSdzdGVwJzogdSdQYXRjaCBkb2VzblwndCBoYXZlIHJlbGV2YW50IGNo
YW5nZXMnfQorICAgICAgICAgICAgcmV0dXJuIHsnc3RlcCc6ICdQYXRjaCBkb2VzblwndCBoYXZl
IHJlbGV2YW50IGNoYW5nZXMnfQogICAgICAgICByZXR1cm4gc3VwZXIoQ2hlY2tQYXRjaFJlbGV2
YW5jZSwgc2VsZikuZ2V0UmVzdWx0U3VtbWFyeSgpCiAKIApAQCAtNjE1LDcgKzYxNSw3IEBAIGNs
YXNzIEJ1Z3ppbGxhTWl4aW4ob2JqZWN0KToKICAgICAgICAgICAgIHNlbGYuc2V0UHJvcGVydHko
J3NlbnNpdGl2ZScsIFRydWUpCiAgICAgICAgICAgICBidWdfdGl0bGUgPSAnJwogICAgICAgICBp
ZiBzZWxmLmFkZFVSTHM6Ci0gICAgICAgICAgICBzZWxmLmFkZFVSTCh1J0J1ZyB7fSB7fScuZm9y
bWF0KGJ1Z19pZCwgYnVnX3RpdGxlKSwgQnVnemlsbGEuYnVnX3VybChidWdfaWQpKQorICAgICAg
ICAgICAgc2VsZi5hZGRVUkwoJ0J1ZyB7fSB7fScuZm9ybWF0KGJ1Z19pZCwgYnVnX3RpdGxlKSwg
QnVnemlsbGEuYnVnX3VybChidWdfaWQpKQogICAgICAgICBpZiBidWdfanNvbi5nZXQoJ3N0YXR1
cycpIGluIHNlbGYuYnVnX2Nsb3NlZF9zdGF0dXNlczoKICAgICAgICAgICAgIHJldHVybiAxCiAg
ICAgICAgIHJldHVybiAwCkBAIC03NDEsNyArNzQxLDcgQEAgY2xhc3MgVmFsaWRhdGVQYXRjaChi
dWlsZHN0ZXAuQnVpbGRTdGVwLAogCiAgICAgZGVmIGdldFJlc3VsdFN1bW1hcnkoc2VsZik6CiAg
ICAgICAgIGlmIHNlbGYucmVzdWx0cyA9PSBGQUlMVVJFOgotICAgICAgICAgICAgcmV0dXJuIHt1
J3N0ZXAnOiB1bmljb2RlKHNlbGYuZGVzY3JpcHRpb25Eb25lKX0KKyAgICAgICAgICAgIHJldHVy
biB7J3N0ZXAnOiBzZWxmLmRlc2NyaXB0aW9uRG9uZX0KICAgICAgICAgcmV0dXJuIHN1cGVyKFZh
bGlkYXRlUGF0Y2gsIHNlbGYpLmdldFJlc3VsdFN1bW1hcnkoKQogCiAgICAgZGVmIGRvU3RlcElm
KHNlbGYsIHN0ZXApOgpAQCAtODU3LDcgKzg1Nyw3IEBAIGNsYXNzIFZhbGlkYXRlQ29tbWl0ZXJB
bmRSZXZpZXdlcihidWlsZHMKIAogICAgIGRlZiBnZXRSZXN1bHRTdW1tYXJ5KHNlbGYpOgogICAg
ICAgICBpZiBzZWxmLnJlc3VsdHMgPT0gRkFJTFVSRToKLSAgICAgICAgICAgIHJldHVybiB7dSdz
dGVwJzogdW5pY29kZShzZWxmLmRlc2NyaXB0aW9uRG9uZSl9CisgICAgICAgICAgICByZXR1cm4g
eydzdGVwJzogc2VsZi5kZXNjcmlwdGlvbkRvbmV9CiAgICAgICAgIHJldHVybiBidWlsZHN0ZXAu
QnVpbGRTdGVwLmdldFJlc3VsdFN1bW1hcnkoc2VsZikKIAogICAgIGRlZiBmYWlsX2J1aWxkKHNl
bGYsIGVtYWlsLCBzdGF0dXMpOgpAQCAtOTMyLDcgKzkzMiw3IEBAIGNsYXNzIFZhbGlkYXRlQ2hh
bmdlTG9nQW5kUmV2aWV3ZXIoc2hlbGwKIAogICAgIGRlZiBnZXRSZXN1bHRTdW1tYXJ5KHNlbGYp
OgogICAgICAgICBpZiBzZWxmLnJlc3VsdHMgIT0gU1VDQ0VTUzoKLSAgICAgICAgICAgIHJldHVy
biB7dSdzdGVwJzogdSdDaGFuZ2VMb2cgdmFsaWRhdGlvbiBmYWlsZWQnfQorICAgICAgICAgICAg
cmV0dXJuIHsnc3RlcCc6ICdDaGFuZ2VMb2cgdmFsaWRhdGlvbiBmYWlsZWQnfQogICAgICAgICBy
ZXR1cm4gc2hlbGwuU2hlbGxDb21tYW5kLmdldFJlc3VsdFN1bW1hcnkoc2VsZikKIAogICAgIGRl
ZiBldmFsdWF0ZUNvbW1hbmQoc2VsZiwgY21kKToKQEAgLTk2MCwxMCArOTYwLDEwIEBAIGNsYXNz
IFNldENvbW1pdFF1ZXVlTWludXNGbGFnT25QYXRjaChidWkKIAogICAgIGRlZiBnZXRSZXN1bHRT
dW1tYXJ5KHNlbGYpOgogICAgICAgICBpZiBzZWxmLnJlc3VsdHMgPT0gU1VDQ0VTUzoKLSAgICAg
ICAgICAgIHJldHVybiB7dSdzdGVwJzogdSdTZXQgY3EtIGZsYWcgb24gcGF0Y2gnfQorICAgICAg
ICAgICAgcmV0dXJuIHsnc3RlcCc6ICdTZXQgY3EtIGZsYWcgb24gcGF0Y2gnfQogICAgICAgICBl
bGlmIHNlbGYucmVzdWx0cyA9PSBTS0lQUEVEOgogICAgICAgICAgICAgcmV0dXJuIGJ1aWxkc3Rl
cC5CdWlsZFN0ZXAuZ2V0UmVzdWx0U3VtbWFyeShzZWxmKQotICAgICAgICByZXR1cm4ge3Unc3Rl
cCc6IHUnRmFpbGVkIHRvIHNldCBjcS0gZmxhZyBvbiBwYXRjaCd9CisgICAgICAgIHJldHVybiB7
J3N0ZXAnOiAnRmFpbGVkIHRvIHNldCBjcS0gZmxhZyBvbiBwYXRjaCd9CiAKICAgICBkZWYgZG9T
dGVwSWYoc2VsZiwgc3RlcCk6CiAgICAgICAgIHJldHVybiBDVVJSRU5UX0hPU1ROQU1FID09IEVX
U19CVUlMRF9IT1NUTkFNRQpAQCAtOTg4LDggKzk4OCw4IEBAIGNsYXNzIFJlbW92ZUZsYWdzT25Q
YXRjaChidWlsZHN0ZXAuQnVpbGQKIAogICAgIGRlZiBnZXRSZXN1bHRTdW1tYXJ5KHNlbGYpOgog
ICAgICAgICBpZiBzZWxmLnJlc3VsdHMgPT0gU1VDQ0VTUzoKLSAgICAgICAgICAgIHJldHVybiB7
dSdzdGVwJzogdSdSZW1vdmVkIGZsYWdzIG9uIGJ1Z3ppbGxhIHBhdGNoJ30KLSAgICAgICAgcmV0
dXJuIHt1J3N0ZXAnOiB1J0ZhaWxlZCB0byByZW1vdmUgZmxhZ3Mgb24gYnVnemlsbGEgcGF0Y2gn
fQorICAgICAgICAgICAgcmV0dXJuIHsnc3RlcCc6ICdSZW1vdmVkIGZsYWdzIG9uIGJ1Z3ppbGxh
IHBhdGNoJ30KKyAgICAgICAgcmV0dXJuIHsnc3RlcCc6ICdGYWlsZWQgdG8gcmVtb3ZlIGZsYWdz
IG9uIGJ1Z3ppbGxhIHBhdGNoJ30KIAogCiBjbGFzcyBDbG9zZUJ1ZyhidWlsZHN0ZXAuQnVpbGRT
dGVwLCBCdWd6aWxsYU1peGluKToKQEAgLTEwMTEsOCArMTAxMSw4IEBAIGNsYXNzIENsb3NlQnVn
KGJ1aWxkc3RlcC5CdWlsZFN0ZXAsIEJ1Z3oKIAogICAgIGRlZiBnZXRSZXN1bHRTdW1tYXJ5KHNl
bGYpOgogICAgICAgICBpZiBzZWxmLnJlc3VsdHMgPT0gU1VDQ0VTUzoKLSAgICAgICAgICAgIHJl
dHVybiB7dSdzdGVwJzogdSdDbG9zZWQgYnVnIHt9Jy5mb3JtYXQoc2VsZi5idWdfaWQpfQotICAg
ICAgICByZXR1cm4ge3Unc3RlcCc6IHUnRmFpbGVkIHRvIGNsb3NlIGJ1ZyB7fScuZm9ybWF0KHNl
bGYuYnVnX2lkKX0KKyAgICAgICAgICAgIHJldHVybiB7J3N0ZXAnOiAnQ2xvc2VkIGJ1ZyB7fScu
Zm9ybWF0KHNlbGYuYnVnX2lkKX0KKyAgICAgICAgcmV0dXJuIHsnc3RlcCc6ICdGYWlsZWQgdG8g
Y2xvc2UgYnVnIHt9Jy5mb3JtYXQoc2VsZi5idWdfaWQpfQogCiAKIGNsYXNzIENvbW1lbnRPbkJ1
ZyhidWlsZHN0ZXAuQnVpbGRTdGVwLCBCdWd6aWxsYU1peGluKToKQEAgLTEwMzYsMTAgKzEwMzYs
MTAgQEAgY2xhc3MgQ29tbWVudE9uQnVnKGJ1aWxkc3RlcC5CdWlsZFN0ZXAsIAogCiAgICAgZGVm
IGdldFJlc3VsdFN1bW1hcnkoc2VsZik6CiAgICAgICAgIGlmIHNlbGYucmVzdWx0cyA9PSBTVUND
RVNTOgotICAgICAgICAgICAgcmV0dXJuIHt1J3N0ZXAnOiB1J0FkZGVkIGNvbW1lbnQgb24gYnVn
IHt9Jy5mb3JtYXQoc2VsZi5idWdfaWQpfQorICAgICAgICAgICAgcmV0dXJuIHsnc3RlcCc6ICdB
ZGRlZCBjb21tZW50IG9uIGJ1ZyB7fScuZm9ybWF0KHNlbGYuYnVnX2lkKX0KICAgICAgICAgZWxp
ZiBzZWxmLnJlc3VsdHMgPT0gU0tJUFBFRDoKICAgICAgICAgICAgIHJldHVybiBidWlsZHN0ZXAu
QnVpbGRTdGVwLmdldFJlc3VsdFN1bW1hcnkoc2VsZikKLSAgICAgICAgcmV0dXJuIHt1J3N0ZXAn
OiB1J0ZhaWxlZCB0byBhZGQgY29tbWVudCBvbiBidWcge30nLmZvcm1hdChzZWxmLmJ1Z19pZCl9
CisgICAgICAgIHJldHVybiB7J3N0ZXAnOiAnRmFpbGVkIHRvIGFkZCBjb21tZW50IG9uIGJ1ZyB7
fScuZm9ybWF0KHNlbGYuYnVnX2lkKX0KIAogICAgIGRlZiBkb1N0ZXBJZihzZWxmLCBzdGVwKToK
ICAgICAgICAgcmV0dXJuIENVUlJFTlRfSE9TVE5BTUUgPT0gRVdTX0JVSUxEX0hPU1ROQU1FCkBA
IC0xMTEzLDkgKzExMTMsOSBAQCBjbGFzcyBUZXN0V2l0aEZhaWx1cmVDb3VudChzaGVsbC5UZXN0
KToKICAgICAgICAgICAgIGlmIHNlbGYuZmFpbGVkVGVzdENvdW50OgogICAgICAgICAgICAgICAg
IHN0YXR1cyA9IHNlbGYuZmFpbGVkVGVzdHNGb3JtYXRTdHJpbmcgJSAoc2VsZi5mYWlsZWRUZXN0
Q291bnQsIHNlbGYuZmFpbGVkVGVzdFBsdXJhbFN1ZmZpeCkKICAgICAgICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICAgICAgc3RhdHVzICs9IHUnICh7fSknLmZvcm1hdChSZXN1bHRzW3NlbGYucmVz
dWx0c10pCisgICAgICAgICAgICAgICAgc3RhdHVzICs9ICcgKHt9KScuZm9ybWF0KFJlc3VsdHNb
c2VsZi5yZXN1bHRzXSkKIAotICAgICAgICByZXR1cm4ge3Unc3RlcCc6IHVuaWNvZGUoc3RhdHVz
KX0KKyAgICAgICAgcmV0dXJuIHsnc3RlcCc6IHN0YXR1c30KIAogCiBjbGFzcyBDaGVja1N0eWxl
KFRlc3RXaXRoRmFpbHVyZUNvdW50KToKQEAgLTExNTksNyArMTE1OSw3IEBAIGNsYXNzIFJ1bkJp
bmRpbmdzVGVzdHMoc2hlbGwuU2hlbGxDb21tYW4KICAgICAgICAgaWYgc2VsZi5yZXN1bHRzID09
IFNVQ0NFU1M6CiAgICAgICAgICAgICBtZXNzYWdlID0gJ1Bhc3NlZCBiaW5kaW5ncyB0ZXN0cycK
ICAgICAgICAgICAgIHNlbGYuYnVpbGQuYnVpbGRGaW5pc2hlZChbbWVzc2FnZV0sIFNVQ0NFU1Mp
Ci0gICAgICAgICAgICByZXR1cm4ge3Unc3RlcCc6IHVuaWNvZGUobWVzc2FnZSl9CisgICAgICAg
ICAgICByZXR1cm4geydzdGVwJzogbWVzc2FnZX0KIAogICAgICAgICBsb2dMaW5lcyA9IHNlbGYu
bG9nX29ic2VydmVyLmdldFN0ZG91dCgpCiAgICAgICAgIGpzb25fdGV4dCA9ICcnLmpvaW4oW2xp
bmUgZm9yIGxpbmUgaW4gbG9nTGluZXMuc3BsaXRsaW5lcygpXSkKQEAgLTExNzYsNyArMTE3Niw3
IEBAIGNsYXNzIFJ1bkJpbmRpbmdzVGVzdHMoc2hlbGwuU2hlbGxDb21tYW4KICAgICAgICAgZmFp
bHVyZXNfc3RyaW5nID0gJywgJy5qb2luKFtmYWlsdXJlLnJlcGxhY2UoJyhKUykgJywgJycpIGZv
ciBmYWlsdXJlIGluIGZhaWx1cmVzXSkKICAgICAgICAgbWVzc2FnZSA9ICdGb3VuZCB7fSBCaW5k
aW5nIHRlc3QgZmFpbHVyZXt9OiB7fScuZm9ybWF0KGxlbihmYWlsdXJlcyksIHBsdXJhbFN1ZmZp
eCwgZmFpbHVyZXNfc3RyaW5nKQogICAgICAgICBzZWxmLmJ1aWxkLmJ1aWxkRmluaXNoZWQoW21l
c3NhZ2VdLCBGQUlMVVJFKQotICAgICAgICByZXR1cm4ge3Unc3RlcCc6IHVuaWNvZGUobWVzc2Fn
ZSl9CisgICAgICAgIHJldHVybiB7J3N0ZXAnOiBtZXNzYWdlfQogCiAgICAgQGRlZmVyLmlubGlu
ZUNhbGxiYWNrcwogICAgIGRlZiBfYWRkVG9Mb2coc2VsZiwgbG9nTmFtZSwgbWVzc2FnZSk6CkBA
IC0xMjAyLDggKzEyMDIsOCBAQCBjbGFzcyBSdW5XZWJLaXRQZXJsVGVzdHMoc2hlbGwuU2hlbGxD
b21tCiAgICAgICAgIGlmIHNlbGYucmVzdWx0cyA9PSBTVUNDRVNTOgogICAgICAgICAgICAgbWVz
c2FnZSA9ICdQYXNzZWQgd2Via2l0cGVybCB0ZXN0cycKICAgICAgICAgICAgIHNlbGYuYnVpbGQu
YnVpbGRGaW5pc2hlZChbbWVzc2FnZV0sIFNVQ0NFU1MpCi0gICAgICAgICAgICByZXR1cm4ge3Un
c3RlcCc6IHVuaWNvZGUobWVzc2FnZSl9Ci0gICAgICAgIHJldHVybiB7dSdzdGVwJzogdSdGYWls
ZWQgd2Via2l0cGVybCB0ZXN0cyd9CisgICAgICAgICAgICByZXR1cm4geydzdGVwJzogbWVzc2Fn
ZX0KKyAgICAgICAgcmV0dXJuIHsnc3RlcCc6ICdGYWlsZWQgd2Via2l0cGVybCB0ZXN0cyd9CiAK
ICAgICBkZWYgZXZhbHVhdGVDb21tYW5kKHNlbGYsIGNtZCk6CiAgICAgICAgIHJjID0gc2hlbGwu
U2hlbGxDb21tYW5kLmV2YWx1YXRlQ29tbWFuZChzZWxmLCBjbWQpCkBAIC0xMjM0LDggKzEyMzQs
OCBAQCBjbGFzcyBSdW5CdWlsZFdlYktpdE9yZ1VuaXRUZXN0cyhzaGVsbC5TCiAKICAgICBkZWYg
Z2V0UmVzdWx0U3VtbWFyeShzZWxmKToKICAgICAgICAgaWYgc2VsZi5yZXN1bHRzID09IFNVQ0NF
U1M6Ci0gICAgICAgICAgICByZXR1cm4ge3Unc3RlcCc6IHUnUGFzc2VkIGJ1aWxkLndlYmtpdC5v
cmcgdW5pdCB0ZXN0cyd9Ci0gICAgICAgIHJldHVybiB7dSdzdGVwJzogdSdGYWlsZWQgYnVpbGQu
d2Via2l0Lm9yZyB1bml0IHRlc3RzJ30KKyAgICAgICAgICAgIHJldHVybiB7J3N0ZXAnOiAnUGFz
c2VkIGJ1aWxkLndlYmtpdC5vcmcgdW5pdCB0ZXN0cyd9CisgICAgICAgIHJldHVybiB7J3N0ZXAn
OiAnRmFpbGVkIGJ1aWxkLndlYmtpdC5vcmcgdW5pdCB0ZXN0cyd9CiAKIAogY2xhc3MgUnVuRVdT
VW5pdFRlc3RzKHNoZWxsLlNoZWxsQ29tbWFuZCk6CkBAIC0xMjQ4LDggKzEyNDgsOCBAQCBjbGFz
cyBSdW5FV1NVbml0VGVzdHMoc2hlbGwuU2hlbGxDb21tYW5kCiAKICAgICBkZWYgZ2V0UmVzdWx0
U3VtbWFyeShzZWxmKToKICAgICAgICAgaWYgc2VsZi5yZXN1bHRzID09IFNVQ0NFU1M6Ci0gICAg
ICAgICAgICByZXR1cm4ge3Unc3RlcCc6IHUnUGFzc2VkIEVXUyB1bml0IHRlc3RzJ30KLSAgICAg
ICAgcmV0dXJuIHt1J3N0ZXAnOiB1J0ZhaWxlZCBFV1MgdW5pdCB0ZXN0cyd9CisgICAgICAgICAg
ICByZXR1cm4geydzdGVwJzogJ1Bhc3NlZCBFV1MgdW5pdCB0ZXN0cyd9CisgICAgICAgIHJldHVy
biB7J3N0ZXAnOiAnRmFpbGVkIEVXUyB1bml0IHRlc3RzJ30KIAogCiBjbGFzcyBSdW5FV1NCdWls
ZGJvdENoZWNrQ29uZmlnKHNoZWxsLlNoZWxsQ29tbWFuZCk6CkBAIC0xMjYyLDggKzEyNjIsOCBA
QCBjbGFzcyBSdW5FV1NCdWlsZGJvdENoZWNrQ29uZmlnKHNoZWxsLlNoCiAKICAgICBkZWYgZ2V0
UmVzdWx0U3VtbWFyeShzZWxmKToKICAgICAgICAgaWYgc2VsZi5yZXN1bHRzID09IFNVQ0NFU1M6
Ci0gICAgICAgICAgICByZXR1cm4ge3Unc3RlcCc6IHUnUGFzc2VkIGJ1aWxkYm90IGNoZWNrY29u
ZmlnJ30KLSAgICAgICAgcmV0dXJuIHt1J3N0ZXAnOiB1J0ZhaWxlZCBidWlsZGJvdCBjaGVja2Nv
bmZpZyd9CisgICAgICAgICAgICByZXR1cm4geydzdGVwJzogJ1Bhc3NlZCBidWlsZGJvdCBjaGVj
a2NvbmZpZyd9CisgICAgICAgIHJldHVybiB7J3N0ZXAnOiAnRmFpbGVkIGJ1aWxkYm90IGNoZWNr
Y29uZmlnJ30KIAogCiBjbGFzcyBSdW5SZXN1bHRzZGJweVRlc3RzKHNoZWxsLlNoZWxsQ29tbWFu
ZCk6CkBAIC0xMjgyLDggKzEyODIsOCBAQCBjbGFzcyBSdW5SZXN1bHRzZGJweVRlc3RzKHNoZWxs
LlNoZWxsQ29tCiAKICAgICBkZWYgZ2V0UmVzdWx0U3VtbWFyeShzZWxmKToKICAgICAgICAgaWYg
c2VsZi5yZXN1bHRzID09IFNVQ0NFU1M6Ci0gICAgICAgICAgICByZXR1cm4ge3Unc3RlcCc6IHUn
UGFzc2VkIHJlc3VsdHNkYnB5IHVuaXQgdGVzdHMnfQotICAgICAgICByZXR1cm4ge3Unc3RlcCc6
IHUnRmFpbGVkIHJlc3VsdHNkYnB5IHVuaXQgdGVzdHMnfQorICAgICAgICAgICAgcmV0dXJuIHsn
c3RlcCc6ICdQYXNzZWQgcmVzdWx0c2RicHkgdW5pdCB0ZXN0cyd9CisgICAgICAgIHJldHVybiB7
J3N0ZXAnOiAnRmFpbGVkIHJlc3VsdHNkYnB5IHVuaXQgdGVzdHMnfQogCiAKIGNsYXNzIFdlYktp
dFB5VGVzdChzaGVsbC5TaGVsbENvbW1hbmQpOgpAQCAtMTMxOCw3ICsxMzE4LDcgQEAgY2xhc3Mg
V2ViS2l0UHlUZXN0KHNoZWxsLlNoZWxsQ29tbWFuZCk6CiAgICAgICAgIGlmIHNlbGYucmVzdWx0
cyA9PSBTVUNDRVNTOgogICAgICAgICAgICAgbWVzc2FnZSA9ICdQYXNzZWQgd2Via2l0cHkge30g
dGVzdHMnLmZvcm1hdChzZWxmLmxhbmd1YWdlKQogICAgICAgICAgICAgc2VsZi5zZXRCdWlsZFN1
bW1hcnkobWVzc2FnZSkKLSAgICAgICAgICAgIHJldHVybiB7dSdzdGVwJzogdW5pY29kZShtZXNz
YWdlKX0KKyAgICAgICAgICAgIHJldHVybiB7J3N0ZXAnOiBtZXNzYWdlfQogCiAgICAgICAgIGxv
Z0xpbmVzID0gc2VsZi5sb2dfb2JzZXJ2ZXIuZ2V0U3Rkb3V0KCkKICAgICAgICAganNvbl90ZXh0
ID0gJycuam9pbihbbGluZSBmb3IgbGluZSBpbiBsb2dMaW5lcy5zcGxpdGxpbmVzKCldKQpAQCAt
MTMzNyw3ICsxMzM3LDcgQEAgY2xhc3MgV2ViS2l0UHlUZXN0KHNoZWxsLlNoZWxsQ29tbWFuZCk6
CiAgICAgICAgIGlmIGxlbihmYWlsdXJlcykgPiBzZWxmLk5VTV9GQUlMVVJFU19UT19ESVNQTEFZ
OgogICAgICAgICAgICAgbWVzc2FnZSArPSAnIC4uLicKICAgICAgICAgc2VsZi5zZXRCdWlsZFN1
bW1hcnkobWVzc2FnZSkKLSAgICAgICAgcmV0dXJuIHt1J3N0ZXAnOiB1bmljb2RlKG1lc3NhZ2Up
fQorICAgICAgICByZXR1cm4geydzdGVwJzogbWVzc2FnZX0KIAogICAgIEBkZWZlci5pbmxpbmVD
YWxsYmFja3MKICAgICBkZWYgX2FkZFRvTG9nKHNlbGYsIGxvZ05hbWUsIG1lc3NhZ2UpOgpAQCAt
MTUxMSw3ICsxNTExLDcgQEAgY2xhc3MgQ29tcGlsZVdlYktpdChzaGVsbC5Db21waWxlKToKIAog
ICAgIGRlZiBnZXRSZXN1bHRTdW1tYXJ5KHNlbGYpOgogICAgICAgICBpZiBzZWxmLnJlc3VsdHMg
PT0gRkFJTFVSRToKLSAgICAgICAgICAgIHJldHVybiB7dSdzdGVwJzogdSdGYWlsZWQgdG8gY29t
cGlsZSBXZWJLaXQnfQorICAgICAgICAgICAgcmV0dXJuIHsnc3RlcCc6ICdGYWlsZWQgdG8gY29t
cGlsZSBXZWJLaXQnfQogICAgICAgICByZXR1cm4gc2hlbGwuQ29tcGlsZS5nZXRSZXN1bHRTdW1t
YXJ5KHNlbGYpCiAKIApAQCAtMTU3OCw3ICsxNTc4LDcgQEAgY2xhc3MgQW5hbHl6ZUNvbXBpbGVX
ZWJLaXRSZXN1bHRzKGJ1aWxkcwogICAgICAgICAgICAgZGVmZXIucmV0dXJuVmFsdWUoTm9uZSkK
IAogICAgICAgICBsb2dzID0geWllbGQgc2VsZi5tYXN0ZXIuZGIubG9ncy5nZXRMb2dzKHN0ZXAu
c3RlcGlkKQotICAgICAgICBsb2cgPSBuZXh0KChsb2cgZm9yIGxvZyBpbiBsb2dzIGlmIGxvZ1sn
bmFtZSddID09IHUnZXJyb3JzJyksIE5vbmUpCisgICAgICAgIGxvZyA9IG5leHQoKGxvZyBmb3Ig
bG9nIGluIGxvZ3MgaWYgbG9nWyduYW1lJ10gPT0gJ2Vycm9ycycpLCBOb25lKQogICAgICAgICBp
ZiBub3QgbG9nOgogICAgICAgICAgICAgZGVmZXIucmV0dXJuVmFsdWUoTm9uZSkKIApAQCAtMTYy
NywxNCArMTYyNywxNCBAQCBjbGFzcyBBbmFseXplQ29tcGlsZVdlYktpdFJlc3VsdHMoYnVpbGRz
CiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgIGxvZ3MgPSBzZWxmLmZpbHRlcl9s
b2dzX2NvbnRhaW5pbmdfZXJyb3IobG9ncykKIAotICAgICAgICAgICAgZW1haWxfc3ViamVjdCA9
IHUnQnVpbGQgZmFpbHVyZSBmb3IgUGF0Y2gge306IHt9Jy5mb3JtYXQocGF0Y2hfaWQsIGJ1Z190
aXRsZSkKKyAgICAgICAgICAgIGVtYWlsX3N1YmplY3QgPSAnQnVpbGQgZmFpbHVyZSBmb3IgUGF0
Y2gge306IHt9Jy5mb3JtYXQocGF0Y2hfaWQsIGJ1Z190aXRsZSkKICAgICAgICAgICAgIGVtYWls
X3RleHQgPSAnRVdTIGhhcyBkZXRlY3RlZCBidWlsZCBmYWlsdXJlIG9uIHt9Jy5mb3JtYXQoYnVp
bGRlcl9uYW1lKQogICAgICAgICAgICAgZW1haWxfdGV4dCArPSAnIHdoaWxlIHRlc3RpbmcgPGEg
aHJlZj0ie30iPlBhdGNoIHt9PC9hPicuZm9ybWF0KEJ1Z3ppbGxhLnBhdGNoX3VybChwYXRjaF9p
ZCksIHBhdGNoX2lkKQogICAgICAgICAgICAgZW1haWxfdGV4dCArPSAnIGZvciA8YSBocmVmPSJ7
fSI+QnVnIHt9PC9hPi4nLmZvcm1hdChCdWd6aWxsYS5idWdfdXJsKGJ1Z19pZCksIGJ1Z19pZCkK
ICAgICAgICAgICAgIGVtYWlsX3RleHQgKz0gJ1xuXG5GdWxsIGRldGFpbHMgYXJlIGF2YWlsYWJs
ZSBhdDoge31cblxuUGF0Y2ggYXV0aG9yOiB7fScuZm9ybWF0KGJ1aWxkX3VybCwgcGF0Y2hfYXV0
aG9yKQogICAgICAgICAgICAgaWYgbG9nczoKICAgICAgICAgICAgICAgICBsb2dzID0gbG9ncy5y
ZXBsYWNlKCcmJywgJyZhbXA7JykucmVwbGFjZSgnPCcsICcmbHQ7JykucmVwbGFjZSgnPicsICcm
Z3Q7JykKLSAgICAgICAgICAgICAgICBlbWFpbF90ZXh0ICs9IHUnXG5cbkVycm9yIGxpbmVzOlxu
XG48Y29kZT57fTwvY29kZT4nLmZvcm1hdChsb2dzKQorICAgICAgICAgICAgICAgIGVtYWlsX3Rl
eHQgKz0gJ1xuXG5FcnJvciBsaW5lczpcblxuPGNvZGU+e308L2NvZGU+Jy5mb3JtYXQobG9ncykK
ICAgICAgICAgICAgIGVtYWlsX3RleHQgKz0gJ1xuXG5UbyB1bnN1YnNjcmlibGUgZnJvbSB0aGVz
ZSBub3RpZmljYXRpb25zIG9yIHRvIHByb3ZpZGUgYW55IGZlZWRiYWNrIHBsZWFzZSBlbWFpbCBh
YWthc2hfamFpbkBhcHBsZS5jb20nCiAgICAgICAgICAgICBzZWxmLl9hZGRUb0xvZygnc3RkaW8n
LCAnU2VuZGluZyBlbWFpbCBub3RpZmljYXRpb24gdG8ge30nLmZvcm1hdChwYXRjaF9hdXRob3Ip
KQogICAgICAgICAgICAgc2VuZF9lbWFpbF90b19wYXRjaF9hdXRob3IocGF0Y2hfYXV0aG9yLCBl
bWFpbF9zdWJqZWN0LCBlbWFpbF90ZXh0LCBwYXRjaF9pZCkKQEAgLTE2NTMsMTEgKzE2NTMsMTEg
QEAgY2xhc3MgQW5hbHl6ZUNvbXBpbGVXZWJLaXRSZXN1bHRzKGJ1aWxkcwogICAgICAgICAgICAg
ZWxzZToKICAgICAgICAgICAgICAgICBsb2dzID0gc2VsZi5maWx0ZXJfbG9nc19jb250YWluaW5n
X2Vycm9yKGxvZ3MpCiAKLSAgICAgICAgICAgIGVtYWlsX3N1YmplY3QgPSB1J0J1aWxkIGZhaWx1
cmUgb24gdHJ1bmsgb24ge30nLmZvcm1hdChidWlsZGVyX25hbWUpCisgICAgICAgICAgICBlbWFp
bF9zdWJqZWN0ID0gJ0J1aWxkIGZhaWx1cmUgb24gdHJ1bmsgb24ge30nLmZvcm1hdChidWlsZGVy
X25hbWUpCiAgICAgICAgICAgICBlbWFpbF90ZXh0ID0gJ0ZhaWxlZCB0byBidWlsZCBXZWJLaXQg
d2l0aG91dCBwYXRjaCBpbiB7fVxuXG5CdWlsZGVyOiB7fVxuXG5Xb3JrZXI6IHt9Jy5mb3JtYXQo
YnVpbGRfdXJsLCBidWlsZGVyX25hbWUsIHdvcmtlcl9uYW1lKQogICAgICAgICAgICAgaWYgbG9n
czoKICAgICAgICAgICAgICAgICBsb2dzID0gbG9ncy5yZXBsYWNlKCcmJywgJyZhbXA7JykucmVw
bGFjZSgnPCcsICcmbHQ7JykucmVwbGFjZSgnPicsICcmZ3Q7JykKLSAgICAgICAgICAgICAgICBl
bWFpbF90ZXh0ICs9IHUnXG5cbkVycm9yIGxpbmVzOlxuXG48Y29kZT57fTwvY29kZT4nLmZvcm1h
dChsb2dzKQorICAgICAgICAgICAgICAgIGVtYWlsX3RleHQgKz0gJ1xuXG5FcnJvciBsaW5lczpc
blxuPGNvZGU+e308L2NvZGU+Jy5mb3JtYXQobG9ncykKICAgICAgICAgICAgIHJlZmVyZW5jZSA9
ICdwcmVleGlzdGluZy1idWlsZC1mYWlsdXJlLXt9LXt9Jy5mb3JtYXQoYnVpbGRlcl9uYW1lLCBk
YXRlLnRvZGF5KCkuc3RyZnRpbWUoIiVZLSVkLSVtIikpCiAgICAgICAgICAgICBzZW5kX2VtYWls
X3RvX2JvdF93YXRjaGVycyhlbWFpbF9zdWJqZWN0LCBlbWFpbF90ZXh0LCBidWlsZGVyX25hbWUs
IHJlZmVyZW5jZSkKICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgpAQCAtMTY3NSw3ICsx
Njc1LDcgQEAgY2xhc3MgQ29tcGlsZUpTQyhDb21waWxlV2ViS2l0KToKIAogICAgIGRlZiBnZXRS
ZXN1bHRTdW1tYXJ5KHNlbGYpOgogICAgICAgICBpZiBzZWxmLnJlc3VsdHMgPT0gRkFJTFVSRToK
LSAgICAgICAgICAgIHJldHVybiB7dSdzdGVwJzogdSdGYWlsZWQgdG8gY29tcGlsZSBKU0MnfQor
ICAgICAgICAgICAgcmV0dXJuIHsnc3RlcCc6ICdGYWlsZWQgdG8gY29tcGlsZSBKU0MnfQogICAg
ICAgICByZXR1cm4gc2hlbGwuQ29tcGlsZS5nZXRSZXN1bHRTdW1tYXJ5KHNlbGYpCiAKIApAQCAt
MTc3OCw3ICsxNzc4LDcgQEAgY2xhc3MgUnVuSmF2YVNjcmlwdENvcmVUZXN0cyhzaGVsbC5UZXN0
KQogICAgICAgICAgICAgICAgIHBsdXJhbFN1ZmZpeCA9ICdzJyBpZiBsZW4oc2VsZi5iaW5hcnlG
YWlsdXJlcykgPiAxIGVsc2UgJycKICAgICAgICAgICAgICAgICBzdGF0dXMgKz0gJ0pTQyB0ZXN0
IGJpbmFyeSBmYWlsdXJle306IHt9Jy5mb3JtYXQocGx1cmFsU3VmZml4LCAnLCAnLmpvaW4oc2Vs
Zi5iaW5hcnlGYWlsdXJlcykpCiAKLSAgICAgICAgICAgIHJldHVybiB7dSdzdGVwJzogdW5pY29k
ZShzdGF0dXMpfQorICAgICAgICAgICAgcmV0dXJuIHsnc3RlcCc6IHN0YXR1c30KIAogICAgICAg
ICByZXR1cm4gc2hlbGwuVGVzdC5nZXRSZXN1bHRTdW1tYXJ5KHNlbGYpCiAKQEAgLTE5MTQsNyAr
MTkxNCw3IEBAIGNsYXNzIEFuYWx5emVKU0NUZXN0c1Jlc3VsdHMoYnVpbGRzdGVwLkIKICAgICAg
ICAgICAgIGJ1aWxkX3VybCA9ICd7fSMvYnVpbGRlcnMve30vYnVpbGRzL3t9Jy5mb3JtYXQoc2Vs
Zi5tYXN0ZXIuY29uZmlnLmJ1aWxkYm90VVJMLCBzZWxmLmJ1aWxkLl9idWlsZGVyaWQsIHNlbGYu
YnVpbGQubnVtYmVyKQogICAgICAgICAgICAgaGlzdG9yeV91cmwgPSAne30/c3VpdGU9amF2YXNj
cmlwdGNvcmUtdGVzdHMmdGVzdD17fScuZm9ybWF0KFJFU1VMVFNfREJfVVJMLCB0ZXN0X25hbWUp
CiAKLSAgICAgICAgICAgIGVtYWlsX3N1YmplY3QgPSB1J0ZsYWt5IHRlc3Q6IHt9Jy5mb3JtYXQo
dGVzdF9uYW1lKQorICAgICAgICAgICAgZW1haWxfc3ViamVjdCA9ICdGbGFreSB0ZXN0OiB7fScu
Zm9ybWF0KHRlc3RfbmFtZSkKICAgICAgICAgICAgIGVtYWlsX3RleHQgPSAnRmxha3kgdGVzdDog
e31cblxuQnVpbGQ6IHt9XG5cbkJ1aWxkZXI6IHt9XG5cbldvcmtlcjoge31cblxuSGlzdG9yeTog
e30nLmZvcm1hdCh0ZXN0X25hbWUsIGJ1aWxkX3VybCwgYnVpbGRlcl9uYW1lLCB3b3JrZXJfbmFt
ZSwgaGlzdG9yeV91cmwpCiAgICAgICAgICAgICBzZW5kX2VtYWlsX3RvX2JvdF93YXRjaGVycyhl
bWFpbF9zdWJqZWN0LCBlbWFpbF90ZXh0LCBidWlsZGVyX25hbWUsICdmbGFreS17fScuZm9ybWF0
KHRlc3RfbmFtZSkpCiAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKQEAgLTE5MjcsNyAr
MTkyNyw3IEBAIGNsYXNzIEFuYWx5emVKU0NUZXN0c1Jlc3VsdHMoYnVpbGRzdGVwLkIKICAgICAg
ICAgICAgIGJ1aWxkX3VybCA9ICd7fSMvYnVpbGRlcnMve30vYnVpbGRzL3t9Jy5mb3JtYXQoc2Vs
Zi5tYXN0ZXIuY29uZmlnLmJ1aWxkYm90VVJMLCBzZWxmLmJ1aWxkLl9idWlsZGVyaWQsIHNlbGYu
YnVpbGQubnVtYmVyKQogICAgICAgICAgICAgaGlzdG9yeV91cmwgPSAne30/c3VpdGU9amF2YXNj
cmlwdGNvcmUtdGVzdHMmdGVzdD17fScuZm9ybWF0KFJFU1VMVFNfREJfVVJMLCB0ZXN0X25hbWUp
CiAKLSAgICAgICAgICAgIGVtYWlsX3N1YmplY3QgPSB1J1ByZS1leGlzdGluZyB0ZXN0IGZhaWx1
cmU6IHt9Jy5mb3JtYXQodGVzdF9uYW1lKQorICAgICAgICAgICAgZW1haWxfc3ViamVjdCA9ICdQ
cmUtZXhpc3RpbmcgdGVzdCBmYWlsdXJlOiB7fScuZm9ybWF0KHRlc3RfbmFtZSkKICAgICAgICAg
ICAgIGVtYWlsX3RleHQgPSAnVGVzdCB7fSBmYWlsZWQgb24gY2xlYW4gdHJlZSBydW4gaW4ge30u
XG5cbkJ1aWxkZXI6IHt9XG5cbldvcmtlcjoge31cblxuSGlzdG9yeToge30nLmZvcm1hdCh0ZXN0
X25hbWUsIGJ1aWxkX3VybCwgYnVpbGRlcl9uYW1lLCB3b3JrZXJfbmFtZSwgaGlzdG9yeV91cmwp
CiAgICAgICAgICAgICBzZW5kX2VtYWlsX3RvX2JvdF93YXRjaGVycyhlbWFpbF9zdWJqZWN0LCBl
bWFpbF90ZXh0LCBidWlsZGVyX25hbWUsICdwcmVleGlzdGluZy17fScuZm9ybWF0KHRlc3RfbmFt
ZSkpCiAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKQEAgLTE5NTksNyArMTk1OSw3IEBA
IGNsYXNzIEtpbGxPbGRQcm9jZXNzZXMoc2hlbGwuQ29tcGlsZSk6CiAKICAgICBkZWYgZ2V0UmVz
dWx0U3VtbWFyeShzZWxmKToKICAgICAgICAgaWYgc2VsZi5yZXN1bHRzIGluIFtGQUlMVVJFLCBF
WENFUFRJT05dOgotICAgICAgICAgICAgcmV0dXJuIHt1J3N0ZXAnOiB1J0ZhaWxlZCB0byBraWxs
IG9sZCBwcm9jZXNzZXMnfQorICAgICAgICAgICAgcmV0dXJuIHsnc3RlcCc6ICdGYWlsZWQgdG8g
a2lsbCBvbGQgcHJvY2Vzc2VzJ30KICAgICAgICAgcmV0dXJuIHNoZWxsLkNvbXBpbGUuZ2V0UmVz
dWx0U3VtbWFyeShzZWxmKQogCiAKQEAgLTE5NzQsNyArMTk3NCw3IEBAIGNsYXNzIFRyaWdnZXJD
cmFzaExvZ1N1Ym1pc3Npb24oc2hlbGwuQ28KIAogICAgIGRlZiBnZXRSZXN1bHRTdW1tYXJ5KHNl
bGYpOgogICAgICAgICBpZiBzZWxmLnJlc3VsdHMgaW4gW0ZBSUxVUkUsIEVYQ0VQVElPTl06Ci0g
ICAgICAgICAgICByZXR1cm4ge3Unc3RlcCc6IHUnRmFpbGVkIHRvIHRyaWdnZXIgY3Jhc2ggbG9n
IHN1Ym1pc3Npb24nfQorICAgICAgICAgICAgcmV0dXJuIHsnc3RlcCc6ICdGYWlsZWQgdG8gdHJp
Z2dlciBjcmFzaCBsb2cgc3VibWlzc2lvbid9CiAgICAgICAgIHJldHVybiBzaGVsbC5Db21waWxl
LmdldFJlc3VsdFN1bW1hcnkoc2VsZikKIAogCkBAIC0xOTg5LDcgKzE5ODksNyBAQCBjbGFzcyBX
YWl0Rm9yQ3Jhc2hDb2xsZWN0aW9uKHNoZWxsLkNvbXBpCiAKICAgICBkZWYgZ2V0UmVzdWx0U3Vt
bWFyeShzZWxmKToKICAgICAgICAgaWYgc2VsZi5yZXN1bHRzIGluIFtGQUlMVVJFLCBFWENFUFRJ
T05dOgotICAgICAgICAgICAgcmV0dXJuIHt1J3N0ZXAnOiB1J0NyYXNoIGxvZyBjb2xsZWN0aW9u
IHByb2Nlc3Mgc3RpbGwgcnVubmluZyd9CisgICAgICAgICAgICByZXR1cm4geydzdGVwJzogJ0Ny
YXNoIGxvZyBjb2xsZWN0aW9uIHByb2Nlc3Mgc3RpbGwgcnVubmluZyd9CiAgICAgICAgIHJldHVy
biBzaGVsbC5Db21waWxlLmdldFJlc3VsdFN1bW1hcnkoc2VsZikKIAogCkBAIC0yMTQ1LDggKzIx
NDUsOCBAQCBjbGFzcyBSdW5XZWJLaXRUZXN0cyhzaGVsbC5UZXN0KToKICAgICAgICAgc3RhdHVz
ID0gc2VsZi5uYW1lCiAKICAgICAgICAgaWYgc2VsZi5yZXN1bHRzICE9IFNVQ0NFU1MgYW5kIHNl
bGYuaW5jb3JyZWN0TGF5b3V0TGluZXM6Ci0gICAgICAgICAgICBzdGF0dXMgPSB1JyAnLmpvaW4o
c2VsZi5pbmNvcnJlY3RMYXlvdXRMaW5lcykKLSAgICAgICAgICAgIHJldHVybiB7dSdzdGVwJzog
c3RhdHVzfQorICAgICAgICAgICAgc3RhdHVzID0gJyAnLmpvaW4oc2VsZi5pbmNvcnJlY3RMYXlv
dXRMaW5lcykKKyAgICAgICAgICAgIHJldHVybiB7J3N0ZXAnOiBzdGF0dXN9CiAKICAgICAgICAg
cmV0dXJuIHN1cGVyKFJ1bldlYktpdFRlc3RzLCBzZWxmKS5nZXRSZXN1bHRTdW1tYXJ5KCkKIApA
QCAtMjIxMCw3ICsyMjEwLDcgQEAgY2xhc3MgUmVSdW5XZWJLaXRUZXN0cyhSdW5XZWJLaXRUZXN0
cyk6CiAgICAgICAgICAgICBidWlsZF91cmwgPSAne30jL2J1aWxkZXJzL3t9L2J1aWxkcy97fScu
Zm9ybWF0KHNlbGYubWFzdGVyLmNvbmZpZy5idWlsZGJvdFVSTCwgc2VsZi5idWlsZC5fYnVpbGRl
cmlkLCBzZWxmLmJ1aWxkLm51bWJlcikKICAgICAgICAgICAgIGhpc3RvcnlfdXJsID0gJ3t9P3N1
aXRlPWxheW91dC10ZXN0cyZ0ZXN0PXt9Jy5mb3JtYXQoUkVTVUxUU19EQl9VUkwsIHRlc3RfbmFt
ZSkKIAotICAgICAgICAgICAgZW1haWxfc3ViamVjdCA9IHUnRmxha3kgdGVzdDoge30nLmZvcm1h
dCh0ZXN0X25hbWUpCisgICAgICAgICAgICBlbWFpbF9zdWJqZWN0ID0gJ0ZsYWt5IHRlc3Q6IHt9
Jy5mb3JtYXQodGVzdF9uYW1lKQogICAgICAgICAgICAgZW1haWxfdGV4dCA9ICdUZXN0IHt9IGZs
YWtlZCBpbiB7fVxuXG5CdWlsZGVyOiB7fScuZm9ybWF0KHRlc3RfbmFtZSwgYnVpbGRfdXJsLCBi
dWlsZGVyX25hbWUpCiAgICAgICAgICAgICBlbWFpbF90ZXh0ID0gJ0ZsYWt5IHRlc3Q6IHt9XG5c
bkJ1aWxkOiB7fVxuXG5CdWlsZGVyOiB7fVxuXG5Xb3JrZXI6IHt9XG5cbkhpc3Rvcnk6IHt9Jy5m
b3JtYXQodGVzdF9uYW1lLCBidWlsZF91cmwsIGJ1aWxkZXJfbmFtZSwgd29ya2VyX25hbWUsIGhp
c3RvcnlfdXJsKQogICAgICAgICAgICAgc2VuZF9lbWFpbF90b19ib3Rfd2F0Y2hlcnMoZW1haWxf
c3ViamVjdCwgZW1haWxfdGV4dCwgYnVpbGRlcl9uYW1lLCAnZmxha3kte30nLmZvcm1hdCh0ZXN0
X25hbWUpKQpAQCAtMjMyNCw3ICsyMzI0LDcgQEAgY2xhc3MgQW5hbHl6ZUxheW91dFRlc3RzUmVz
dWx0cyhidWlsZHN0ZQogICAgICAgICAgICAgYnVpbGRfdXJsID0gJ3t9Iy9idWlsZGVycy97fS9i
dWlsZHMve30nLmZvcm1hdChzZWxmLm1hc3Rlci5jb25maWcuYnVpbGRib3RVUkwsIHNlbGYuYnVp
bGQuX2J1aWxkZXJpZCwgc2VsZi5idWlsZC5udW1iZXIpCiAgICAgICAgICAgICBoaXN0b3J5X3Vy
bCA9ICd7fT9zdWl0ZT1sYXlvdXQtdGVzdHMmdGVzdD17fScuZm9ybWF0KFJFU1VMVFNfREJfVVJM
LCB0ZXN0X25hbWUpCiAKLSAgICAgICAgICAgIGVtYWlsX3N1YmplY3QgPSB1J0ZsYWt5IHRlc3Q6
IHt9Jy5mb3JtYXQodGVzdF9uYW1lKQorICAgICAgICAgICAgZW1haWxfc3ViamVjdCA9ICdGbGFr
eSB0ZXN0OiB7fScuZm9ybWF0KHRlc3RfbmFtZSkKICAgICAgICAgICAgIGVtYWlsX3RleHQgPSAn
Rmxha3kgdGVzdDoge31cblxuQnVpbGQ6IHt9XG5cbkJ1aWxkZXI6IHt9XG5cbldvcmtlcjoge31c
blxuSGlzdG9yeToge30nLmZvcm1hdCh0ZXN0X25hbWUsIGJ1aWxkX3VybCwgYnVpbGRlcl9uYW1l
LCB3b3JrZXJfbmFtZSwgaGlzdG9yeV91cmwpCiAgICAgICAgICAgICBzZW5kX2VtYWlsX3RvX2Jv
dF93YXRjaGVycyhlbWFpbF9zdWJqZWN0LCBlbWFpbF90ZXh0LCBidWlsZGVyX25hbWUsICdmbGFr
eS17fScuZm9ybWF0KHRlc3RfbmFtZSkpCiAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToK
QEAgLTIzMzcsNyArMjMzNyw3IEBAIGNsYXNzIEFuYWx5emVMYXlvdXRUZXN0c1Jlc3VsdHMoYnVp
bGRzdGUKICAgICAgICAgICAgIGJ1aWxkX3VybCA9ICd7fSMvYnVpbGRlcnMve30vYnVpbGRzL3t9
Jy5mb3JtYXQoc2VsZi5tYXN0ZXIuY29uZmlnLmJ1aWxkYm90VVJMLCBzZWxmLmJ1aWxkLl9idWls
ZGVyaWQsIHNlbGYuYnVpbGQubnVtYmVyKQogICAgICAgICAgICAgaGlzdG9yeV91cmwgPSAne30/
c3VpdGU9bGF5b3V0LXRlc3RzJnRlc3Q9e30nLmZvcm1hdChSRVNVTFRTX0RCX1VSTCwgdGVzdF9u
YW1lKQogCi0gICAgICAgICAgICBlbWFpbF9zdWJqZWN0ID0gdSdQcmUtZXhpc3RpbmcgdGVzdCBm
YWlsdXJlOiB7fScuZm9ybWF0KHRlc3RfbmFtZSkKKyAgICAgICAgICAgIGVtYWlsX3N1YmplY3Qg
PSAnUHJlLWV4aXN0aW5nIHRlc3QgZmFpbHVyZToge30nLmZvcm1hdCh0ZXN0X25hbWUpCiAgICAg
ICAgICAgICBlbWFpbF90ZXh0ID0gJ1Rlc3Qge30gZmFpbGVkIG9uIGNsZWFuIHRyZWUgcnVuIGlu
IHt9LlxuXG5CdWlsZGVyOiB7fVxuXG5Xb3JrZXI6IHt9XG5cbkhpc3Rvcnk6IHt9Jy5mb3JtYXQo
dGVzdF9uYW1lLCBidWlsZF91cmwsIGJ1aWxkZXJfbmFtZSwgd29ya2VyX25hbWUsIGhpc3Rvcnlf
dXJsKQogICAgICAgICAgICAgc2VuZF9lbWFpbF90b19ib3Rfd2F0Y2hlcnMoZW1haWxfc3ViamVj
dCwgZW1haWxfdGV4dCwgYnVpbGRlcl9uYW1lLCAncHJlZXhpc3Rpbmcte30nLmZvcm1hdCh0ZXN0
X25hbWUpKQogICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CkBAIC0yMzYwLDcgKzIzNjAs
NyBAQCBjbGFzcyBBbmFseXplTGF5b3V0VGVzdHNSZXN1bHRzKGJ1aWxkc3RlCiAgICAgICAgICAg
ICAgICAgdGVzdF9uYW1lc19zdHJpbmcgKz0gJ1xuLSB7fSAoPGEgaHJlZj0ie30iPnRlc3QgaGlz
dG9yeTwvYT4pJy5mb3JtYXQodGVzdF9uYW1lLCBoaXN0b3J5X3VybCkKIAogICAgICAgICAgICAg
cGx1cmFsU3VmZml4ID0gJ3MnIGlmIGxlbih0ZXN0X25hbWVzKSA+IDEgZWxzZSAnJwotICAgICAg
ICAgICAgZW1haWxfc3ViamVjdCA9IHUnTGF5b3V0IHRlc3QgZmFpbHVyZSBmb3IgUGF0Y2gge306
IHt9ICcuZm9ybWF0KHBhdGNoX2lkLCBidWdfdGl0bGUpCisgICAgICAgICAgICBlbWFpbF9zdWJq
ZWN0ID0gJ0xheW91dCB0ZXN0IGZhaWx1cmUgZm9yIFBhdGNoIHt9OiB7fSAnLmZvcm1hdChwYXRj
aF9pZCwgYnVnX3RpdGxlKQogICAgICAgICAgICAgZW1haWxfdGV4dCA9ICdFV1MgaGFzIGRldGVj
dGVkIGxheW91dCB0ZXN0IGZhaWx1cmV7fSBvbiB7fScuZm9ybWF0KHBsdXJhbFN1ZmZpeCwgYnVp
bGRlcl9uYW1lKQogICAgICAgICAgICAgZW1haWxfdGV4dCArPSAnIHdoaWxlIHRlc3RpbmcgPGEg
aHJlZj0ie30iPlBhdGNoIHt9PC9hPicuZm9ybWF0KEJ1Z3ppbGxhLnBhdGNoX3VybChwYXRjaF9p
ZCksIHBhdGNoX2lkKQogICAgICAgICAgICAgZW1haWxfdGV4dCArPSAnIGZvciA8YSBocmVmPSJ7
fSI+QnVnIHt9PC9hPi4nLmZvcm1hdChCdWd6aWxsYS5idWdfdXJsKGJ1Z19pZCksIGJ1Z19pZCkK
QEAgLTI0ODQsNyArMjQ4NCw3IEBAIGNsYXNzIFVwbG9hZEJ1aWx0UHJvZHVjdCh0cmFuc2Zlci5G
aWxlVXAKIAogICAgIGRlZiBnZXRSZXN1bHRTdW1tYXJ5KHNlbGYpOgogICAgICAgICBpZiBzZWxm
LnJlc3VsdHMgIT0gU1VDQ0VTUzoKLSAgICAgICAgICAgIHJldHVybiB7dSdzdGVwJzogdSdGYWls
ZWQgdG8gdXBsb2FkIGJ1aWx0IHByb2R1Y3QnfQorICAgICAgICAgICAgcmV0dXJuIHsnc3RlcCc6
ICdGYWlsZWQgdG8gdXBsb2FkIGJ1aWx0IHByb2R1Y3QnfQogICAgICAgICByZXR1cm4gc3VwZXIo
VXBsb2FkQnVpbHRQcm9kdWN0LCBzZWxmKS5nZXRSZXN1bHRTdW1tYXJ5KCkKIAogCkBAIC0yNTI0
LDcgKzI1MjQsNyBAQCBjbGFzcyBUcmFuc2ZlclRvUzMobWFzdGVyLk1hc3RlclNoZWxsQ29tCiAK
ICAgICBkZWYgZ2V0UmVzdWx0U3VtbWFyeShzZWxmKToKICAgICAgICAgaWYgc2VsZi5yZXN1bHRz
ID09IEZBSUxVUkU6Ci0gICAgICAgICAgICByZXR1cm4ge3Unc3RlcCc6IHUnRmFpbGVkIHRvIHRy
YW5zZmVyIGFyY2hpdmUgdG8gUzMnfQorICAgICAgICAgICAgcmV0dXJuIHsnc3RlcCc6ICdGYWls
ZWQgdG8gdHJhbnNmZXIgYXJjaGl2ZSB0byBTMyd9CiAgICAgICAgIHJldHVybiBzdXBlcihUcmFu
c2ZlclRvUzMsIHNlbGYpLmdldFJlc3VsdFN1bW1hcnkoKQogCiAKQEAgLTI1MzksNyArMjUzOSw3
IEBAIGNsYXNzIERvd25sb2FkQnVpbHRQcm9kdWN0KHNoZWxsLlNoZWxsQ28KIAogICAgIGRlZiBn
ZXRSZXN1bHRTdW1tYXJ5KHNlbGYpOgogICAgICAgICBpZiBzZWxmLnJlc3VsdHMgIT0gU1VDQ0VT
UzoKLSAgICAgICAgICAgIHJldHVybiB7dSdzdGVwJzogdSdGYWlsZWQgdG8gZG93bmxvYWQgYnVp
bHQgcHJvZHVjdCBmcm9tIFMzJ30KKyAgICAgICAgICAgIHJldHVybiB7J3N0ZXAnOiAnRmFpbGVk
IHRvIGRvd25sb2FkIGJ1aWx0IHByb2R1Y3QgZnJvbSBTMyd9CiAgICAgICAgIHJldHVybiBzdXBl
cihEb3dubG9hZEJ1aWx0UHJvZHVjdCwgc2VsZikuZ2V0UmVzdWx0U3VtbWFyeSgpCiAKICAgICBk
ZWYgX19pbml0X18oc2VsZiwgKiprd2FyZ3MpOgpAQCAtMjU3Miw3ICsyNTcyLDcgQEAgY2xhc3Mg
RG93bmxvYWRCdWlsdFByb2R1Y3RGcm9tTWFzdGVyKHRyYQogCiAgICAgZGVmIGdldFJlc3VsdFN1
bW1hcnkoc2VsZik6CiAgICAgICAgIGlmIHNlbGYucmVzdWx0cyAhPSBTVUNDRVNTOgotICAgICAg
ICAgICAgcmV0dXJuIHt1J3N0ZXAnOiB1J0ZhaWxlZCB0byBkb3dubG9hZCBidWlsdCBwcm9kdWN0
IGZyb20gYnVpbGQgbWFzdGVyJ30KKyAgICAgICAgICAgIHJldHVybiB7J3N0ZXAnOiAnRmFpbGVk
IHRvIGRvd25sb2FkIGJ1aWx0IHByb2R1Y3QgZnJvbSBidWlsZCBtYXN0ZXInfQogICAgICAgICBy
ZXR1cm4gc3VwZXIoRG93bmxvYWRCdWlsdFByb2R1Y3RGcm9tTWFzdGVyLCBzZWxmKS5nZXRSZXN1
bHRTdW1tYXJ5KCkKIAogCkBAIC0yNzc3LDcgKzI3NzcsNyBAQCBjbGFzcyBBbmFseXplQVBJVGVz
dHNSZXN1bHRzKGJ1aWxkc3RlcC5CCiAgICAgICAgICAgICBkZWZlci5yZXR1cm5WYWx1ZShOb25l
KQogCiAgICAgICAgIGxvZ3MgPSB5aWVsZCBzZWxmLm1hc3Rlci5kYi5sb2dzLmdldExvZ3Moc3Rl
cC5zdGVwaWQpCi0gICAgICAgIGxvZyA9IG5leHQoKGxvZyBmb3IgbG9nIGluIGxvZ3MgaWYgbG9n
WyduYW1lJ10gPT0gdSdqc29uJyksIE5vbmUpCisgICAgICAgIGxvZyA9IG5leHQoKGxvZyBmb3Ig
bG9nIGluIGxvZ3MgaWYgbG9nWyduYW1lJ10gPT0gJ2pzb24nKSwgTm9uZSkKICAgICAgICAgaWYg
bm90IGxvZzoKICAgICAgICAgICAgIHNlbGYuX2FkZFRvTG9nKCdzdGRlcnInLCAnRVJST1I6IGxv
ZyBmb3Igc3RlcCBub3QgZm91bmQ6IHt9Jy5mb3JtYXQoc3RlcCkpCiAgICAgICAgICAgICBkZWZl
ci5yZXR1cm5WYWx1ZShOb25lKQpAQCAtMjc5OSw3ICsyNzk5LDcgQEAgY2xhc3MgQW5hbHl6ZUFQ
SVRlc3RzUmVzdWx0cyhidWlsZHN0ZXAuQgogICAgICAgICAgICAgYnVpbGRfdXJsID0gJ3t9Iy9i
dWlsZGVycy97fS9idWlsZHMve30nLmZvcm1hdChzZWxmLm1hc3Rlci5jb25maWcuYnVpbGRib3RV
UkwsIHNlbGYuYnVpbGQuX2J1aWxkZXJpZCwgc2VsZi5idWlsZC5udW1iZXIpCiAgICAgICAgICAg
ICBoaXN0b3J5X3VybCA9ICd7fT9zdWl0ZT1hcGktdGVzdHMmdGVzdD17fScuZm9ybWF0KFJFU1VM
VFNfREJfVVJMLCB0ZXN0X25hbWUpCiAKLSAgICAgICAgICAgIGVtYWlsX3N1YmplY3QgPSB1J0Zs
YWt5IHRlc3Q6IHt9Jy5mb3JtYXQodGVzdF9uYW1lKQorICAgICAgICAgICAgZW1haWxfc3ViamVj
dCA9ICdGbGFreSB0ZXN0OiB7fScuZm9ybWF0KHRlc3RfbmFtZSkKICAgICAgICAgICAgIGVtYWls
X3RleHQgPSAnRmxha3kgdGVzdDoge31cblxuQnVpbGQ6IHt9XG5cbkJ1aWxkZXI6IHt9XG5cbldv
cmtlcjoge31cblxuSGlzdG9yeToge30nLmZvcm1hdCh0ZXN0X25hbWUsIGJ1aWxkX3VybCwgYnVp
bGRlcl9uYW1lLCB3b3JrZXJfbmFtZSwgaGlzdG9yeV91cmwpCiAgICAgICAgICAgICBzZW5kX2Vt
YWlsX3RvX2JvdF93YXRjaGVycyhlbWFpbF9zdWJqZWN0LCBlbWFpbF90ZXh0LCBidWlsZGVyX25h
bWUsICdmbGFreS17fScuZm9ybWF0KHRlc3RfbmFtZSkpCiAgICAgICAgIGV4Y2VwdCBFeGNlcHRp
b24gYXMgZToKQEAgLTI4MTIsNyArMjgxMiw3IEBAIGNsYXNzIEFuYWx5emVBUElUZXN0c1Jlc3Vs
dHMoYnVpbGRzdGVwLkIKICAgICAgICAgICAgIGJ1aWxkX3VybCA9ICd7fSMvYnVpbGRlcnMve30v
YnVpbGRzL3t9Jy5mb3JtYXQoc2VsZi5tYXN0ZXIuY29uZmlnLmJ1aWxkYm90VVJMLCBzZWxmLmJ1
aWxkLl9idWlsZGVyaWQsIHNlbGYuYnVpbGQubnVtYmVyKQogICAgICAgICAgICAgaGlzdG9yeV91
cmwgPSAne30/c3VpdGU9YXBpLXRlc3RzJnRlc3Q9e30nLmZvcm1hdChSRVNVTFRTX0RCX1VSTCwg
dGVzdF9uYW1lKQogCi0gICAgICAgICAgICBlbWFpbF9zdWJqZWN0ID0gdSdQcmUtZXhpc3Rpbmcg
dGVzdCBmYWlsdXJlOiB7fScuZm9ybWF0KHRlc3RfbmFtZSkKKyAgICAgICAgICAgIGVtYWlsX3N1
YmplY3QgPSAnUHJlLWV4aXN0aW5nIHRlc3QgZmFpbHVyZToge30nLmZvcm1hdCh0ZXN0X25hbWUp
CiAgICAgICAgICAgICBlbWFpbF90ZXh0ID0gJ1Rlc3Qge30gZmFpbGVkIG9uIGNsZWFuIHRyZWUg
cnVuIGluIHt9LlxuXG5CdWlsZGVyOiB7fVxuXG5Xb3JrZXI6IHt9XG5cbkhpc3Rvcnk6IHt9Jy5m
b3JtYXQodGVzdF9uYW1lLCBidWlsZF91cmwsIGJ1aWxkZXJfbmFtZSwgd29ya2VyX25hbWUsIGhp
c3RvcnlfdXJsKQogICAgICAgICAgICAgc2VuZF9lbWFpbF90b19ib3Rfd2F0Y2hlcnMoZW1haWxf
c3ViamVjdCwgZW1haWxfdGV4dCwgYnVpbGRlcl9uYW1lLCAncHJlZXhpc3Rpbmcte30nLmZvcm1h
dCh0ZXN0X25hbWUpKQogICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CkBAIC0yOTIwLDEw
ICsyOTIwLDcgQEAgY2xhc3MgUHJpbnRDb25maWd1cmF0aW9uKHN0ZXBzLlNoZWxsU2VxdQogICAg
ICAgICAgICAgY29tbWFuZF9saXN0LmV4dGVuZChzZWxmLmNvbW1hbmRfbGlzdF93aW4pCiAKICAg
ICAgICAgZm9yIGNvbW1hbmQgaW4gY29tbWFuZF9saXN0OgotICAgICAgICAgICAgaWYgc3lzLnZl
cnNpb25faW5mbyA+ICgzLCAwKToKLSAgICAgICAgICAgICAgICBzZWxmLmNvbW1hbmRzLmFwcGVu
ZCh1dGlsLlNoZWxsQXJnKGNvbW1hbmQ9Y29tbWFuZCwgbG9nbmFtZT0nc3RkaW8nKSkKLSAgICAg
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgc2VsZi5jb21tYW5kcy5hcHBlbmQodXRpbC5T
aGVsbEFyZyhjb21tYW5kPWNvbW1hbmQsIGxvZ2ZpbGU9J3N0ZGlvJykpCisgICAgICAgICAgICBz
ZWxmLmNvbW1hbmRzLmFwcGVuZCh1dGlsLlNoZWxsQXJnKGNvbW1hbmQ9Y29tbWFuZCwgbG9nbmFt
ZT0nc3RkaW8nKSkKICAgICAgICAgcmV0dXJuIHN1cGVyKFByaW50Q29uZmlndXJhdGlvbiwgc2Vs
ZikucnVuKCkKIAogICAgIGRlZiBjb252ZXJ0X2J1aWxkX3RvX29zX25hbWUoc2VsZiwgYnVpbGQp
OgpAQCAtMjk1MiwyMSArMjk0OSwyMSBAQCBjbGFzcyBQcmludENvbmZpZ3VyYXRpb24oc3RlcHMu
U2hlbGxTZXF1CiAKICAgICBkZWYgZ2V0UmVzdWx0U3VtbWFyeShzZWxmKToKICAgICAgICAgaWYg
c2VsZi5yZXN1bHRzICE9IFNVQ0NFU1M6Ci0gICAgICAgICAgICByZXR1cm4ge3Unc3RlcCc6IHUn
RmFpbGVkIHRvIHByaW50IGNvbmZpZ3VyYXRpb24nfQorICAgICAgICAgICAgcmV0dXJuIHsnc3Rl
cCc6ICdGYWlsZWQgdG8gcHJpbnQgY29uZmlndXJhdGlvbid9CiAgICAgICAgIGxvZ1RleHQgPSBz
ZWxmLmxvZ19vYnNlcnZlci5nZXRTdGRvdXQoKSArIHNlbGYubG9nX29ic2VydmVyLmdldFN0ZGVy
cigpCi0gICAgICAgIGNvbmZpZ3VyYXRpb24gPSB1J1ByaW50ZWQgY29uZmlndXJhdGlvbicKKyAg
ICAgICAgY29uZmlndXJhdGlvbiA9ICdQcmludGVkIGNvbmZpZ3VyYXRpb24nCiAgICAgICAgIG1h
dGNoID0gcmUuc2VhcmNoKCdQcm9kdWN0VmVyc2lvbjpbIFx0XSooLis/KVxuJywgbG9nVGV4dCkK
ICAgICAgICAgaWYgbWF0Y2g6CiAgICAgICAgICAgICBvc192ZXJzaW9uID0gbWF0Y2guZ3JvdXAo
MSkuc3RyaXAoKQogICAgICAgICAgICAgb3NfbmFtZSA9IHNlbGYuY29udmVydF9idWlsZF90b19v
c19uYW1lKG9zX3ZlcnNpb24pCi0gICAgICAgICAgICBjb25maWd1cmF0aW9uID0gdSdPUzoge30g
KHt9KScuZm9ybWF0KG9zX25hbWUsIG9zX3ZlcnNpb24pCisgICAgICAgICAgICBjb25maWd1cmF0
aW9uID0gJ09TOiB7fSAoe30pJy5mb3JtYXQob3NfbmFtZSwgb3NfdmVyc2lvbikKIAogICAgICAg
ICB4Y29kZV9yZSA9IHNka19yZSA9ICdYY29kZVsgXHRdKz8oWzAtOS5dKz8pXG4nCiAgICAgICAg
IG1hdGNoID0gcmUuc2VhcmNoKHhjb2RlX3JlLCBsb2dUZXh0KQogICAgICAgICBpZiBtYXRjaDoK
ICAgICAgICAgICAgIHhjb2RlX3ZlcnNpb24gPSBtYXRjaC5ncm91cCgxKS5zdHJpcCgpCi0gICAg
ICAgICAgICBjb25maWd1cmF0aW9uICs9IHUnLCBYY29kZToge30nLmZvcm1hdCh4Y29kZV92ZXJz
aW9uKQotICAgICAgICByZXR1cm4ge3Unc3RlcCc6IGNvbmZpZ3VyYXRpb259CisgICAgICAgICAg
ICBjb25maWd1cmF0aW9uICs9ICcsIFhjb2RlOiB7fScuZm9ybWF0KHhjb2RlX3ZlcnNpb24pCisg
ICAgICAgIHJldHVybiB7J3N0ZXAnOiBjb25maWd1cmF0aW9ufQogCiAKIGNsYXNzIEFwcGx5V2F0
Y2hMaXN0KHNoZWxsLlNoZWxsQ29tbWFuZCk6CkBAIC0yOTgzLDcgKzI5ODAsNyBAQCBjbGFzcyBB
cHBseVdhdGNoTGlzdChzaGVsbC5TaGVsbENvbW1hbmQpCiAKICAgICBkZWYgZ2V0UmVzdWx0U3Vt
bWFyeShzZWxmKToKICAgICAgICAgaWYgc2VsZi5yZXN1bHRzICE9IFNVQ0NFU1M6Ci0gICAgICAg
ICAgICByZXR1cm4ge3Unc3RlcCc6IHUnRmFpbGVkIHRvIGFwcGx5IHdhdGNobGlzdCd9CisgICAg
ICAgICAgICByZXR1cm4geydzdGVwJzogJ0ZhaWxlZCB0byBhcHBseSB3YXRjaGxpc3QnfQogICAg
ICAgICByZXR1cm4gc3VwZXIoQXBwbHlXYXRjaExpc3QsIHNlbGYpLmdldFJlc3VsdFN1bW1hcnko
KQogCiAKQEAgLTMwMjQsNyArMzAyMSw3IEBAIGNsYXNzIEZpbmRNb2RpZmllZENoYW5nZUxvZ3Mo
c2hlbGwuU2hlbGwKICAgICBkZWYgZ2V0UmVzdWx0U3VtbWFyeShzZWxmKToKICAgICAgICAgaWYg
c2VsZi5yZXN1bHRzICE9IFNVQ0NFU1M6CiAgICAgICAgICAgICBwYXRjaF9pZCA9IHNlbGYuZ2V0
UHJvcGVydHkoJ3BhdGNoX2lkJywgJycpCi0gICAgICAgICAgICByZXR1cm4ge3Unc3RlcCc6IHUn
RmFpbGVkIHRvIGZpbmQgYW55IG1vZGlmaWVkIENoYW5nZUxvZyBpbiBQYXRjaCB7fScuZm9ybWF0
KHBhdGNoX2lkKX0KKyAgICAgICAgICAgIHJldHVybiB7J3N0ZXAnOiAnRmFpbGVkIHRvIGZpbmQg
YW55IG1vZGlmaWVkIENoYW5nZUxvZyBpbiBQYXRjaCB7fScuZm9ybWF0KHBhdGNoX2lkKX0KICAg
ICAgICAgcmV0dXJuIHNoZWxsLlNoZWxsQ29tbWFuZC5nZXRSZXN1bHRTdW1tYXJ5KHNlbGYpCiAK
ICAgICBkZWYgZXZhbHVhdGVDb21tYW5kKHNlbGYsIGNtZCk6CkBAIC0zMDc0LDcgKzMwNzEsNyBA
QCBjbGFzcyBDcmVhdGVMb2NhbEdJVENvbW1pdChzaGVsbC5TaGVsbENvCiAgICAgICAgIG1vZGlm
aWVkX2NoYW5nZWxvZ3MgPSBzZWxmLmdldFByb3BlcnR5KCdtb2RpZmllZF9jaGFuZ2Vsb2dzJykK
ICAgICAgICAgcGF0Y2hfaWQgPSBzZWxmLmdldFByb3BlcnR5KCdwYXRjaF9pZCcsICcnKQogICAg
ICAgICBpZiBub3QgbW9kaWZpZWRfY2hhbmdlbG9nczoKLSAgICAgICAgICAgIHNlbGYuZmFpbHVy
ZV9tZXNzYWdlID0gdSdObyBtb2RpZmllZCBDaGFuZ2VMb2cgZmlsZSBmb3VuZCBmb3IgUGF0Y2gg
e30nLmZvcm1hdChwYXRjaF9pZCkKKyAgICAgICAgICAgIHNlbGYuZmFpbHVyZV9tZXNzYWdlID0g
J05vIG1vZGlmaWVkIENoYW5nZUxvZyBmaWxlIGZvdW5kIGZvciBQYXRjaCB7fScuZm9ybWF0KHBh
dGNoX2lkKQogICAgICAgICAgICAgc2VsZi5maW5pc2hlZChGQUlMVVJFKQogICAgICAgICAgICAg
cmV0dXJuIE5vbmUKIApAQCAtMzA4NSw5ICszMDgyLDkgQEAgY2xhc3MgQ3JlYXRlTG9jYWxHSVRD
b21taXQoc2hlbGwuU2hlbGxDbwogCiAgICAgZGVmIGdldFJlc3VsdFN1bW1hcnkoc2VsZik6CiAg
ICAgICAgIGlmIHNlbGYuZmFpbHVyZV9tZXNzYWdlOgotICAgICAgICAgICAgcmV0dXJuIHt1J3N0
ZXAnOiBzZWxmLmZhaWx1cmVfbWVzc2FnZX0KKyAgICAgICAgICAgIHJldHVybiB7J3N0ZXAnOiBz
ZWxmLmZhaWx1cmVfbWVzc2FnZX0KICAgICAgICAgaWYgc2VsZi5yZXN1bHRzICE9IFNVQ0NFU1M6
Ci0gICAgICAgICAgICByZXR1cm4ge3Unc3RlcCc6IHUnRmFpbGVkIHRvIGNyZWF0ZSBnaXQgY29t
bWl0J30KKyAgICAgICAgICAgIHJldHVybiB7J3N0ZXAnOiAnRmFpbGVkIHRvIGNyZWF0ZSBnaXQg
Y29tbWl0J30KICAgICAgICAgcmV0dXJuIHNoZWxsLlNoZWxsQ29tbWFuZC5nZXRSZXN1bHRTdW1t
YXJ5KHNlbGYpCiAKICAgICBkZWYgZXZhbHVhdGVDb21tYW5kKHNlbGYsIGNtZCk6CkBAIC0zMTYy
LDcgKzMxNTksNyBAQCBjbGFzcyBQdXNoQ29tbWl0VG9XZWJLaXRSZXBvKHNoZWxsLlNoZWxsCiAK
ICAgICBkZWYgZ2V0UmVzdWx0U3VtbWFyeShzZWxmKToKICAgICAgICAgaWYgc2VsZi5yZXN1bHRz
ICE9IFNVQ0NFU1M6Ci0gICAgICAgICAgICByZXR1cm4ge3Unc3RlcCc6IHUnRmFpbGVkIHRvIHB1
c2ggY29tbWl0IHRvIFdlYmtpdCByZXBvc2l0b3J5J30KKyAgICAgICAgICAgIHJldHVybiB7J3N0
ZXAnOiAnRmFpbGVkIHRvIHB1c2ggY29tbWl0IHRvIFdlYmtpdCByZXBvc2l0b3J5J30KICAgICAg
ICAgcmV0dXJuIHNoZWxsLlNoZWxsQ29tbWFuZC5nZXRSZXN1bHRTdW1tYXJ5KHNlbGYpCiAKICAg
ICBkZWYgZG9TdGVwSWYoc2VsZiwgc3RlcCk6Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>