<?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>172938</bug_id>
          
          <creation_ts>2017-06-05 15:37:17 -0700</creation_ts>
          <short_desc>webkitpy: Add support infrastructure for starting a remote shell over TELNET</short_desc>
          <delta_ts>2017-06-08 13:00:35 -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>Tools / Tests</component>
          <version>WebKit Local Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</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="Daniel Bates">dbates</reporter>
          <assigned_to name="Daniel Bates">dbates</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>ap</cc>
    
    <cc>buildbot</cc>
    
    <cc>glenn</cc>
    
    <cc>jbedard</cc>
    
    <cc>lforschler</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1315797</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-06-05 15:37:17 -0700</bug_when>
    <thetext>Implement support infrastructure for establishing a remote shell session over TELNET.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1315798</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-06-05 15:37:44 -0700</bug_when>
    <thetext>&lt;rdar://problem/32574822&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1315802</commentid>
    <comment_count>2</comment_count>
      <attachid>312035</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-06-05 15:49:50 -0700</bug_when>
    <thetext>Created attachment 312035
Patch

No tests as it is not straightforward to test this logic without implementing a TELNET server.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317018</commentid>
    <comment_count>3</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-06-08 13:00:28 -0700</bug_when>
    <thetext>Let&apos;s not pursue this bug at this time and its unclear how meaningful this code will be.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>312035</attachid>
            <date>2017-06-05 15:49:50 -0700</date>
            <delta_ts>2017-06-08 13:00:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172938-20170605154950.patch</filename>
            <type>text/plain</type>
            <size>19665</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE3Nzk3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOTkyOWZlYzlhMzU0ODRmMTM0NjMwZWZhODBlMTgwZWI4
NjQ4OTM4MC4uMTdhNmMyNDQ0NTM3ZjUxYzRjMDAyNDFiNjE2NTQyYjYwZjdmOTJkNyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDcw
IEBACiAyMDE3LTA2LTA1ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAorICAg
ICAgICB3ZWJraXRweTogQWRkIHN1cHBvcnQgaW5mcmFzdHJ1Y3R1cmUgZm9yIHN0YXJ0aW5nIGEg
cmVtb3RlIHNoZWxsIG92ZXIgVEVMTkVUCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNzI5MzgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMyNTc0ODIy
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZHMg
Y2xhc3MgUmVtb3RlU2hlbGwgdGhhdCBlbmNhcHN1bGF0ZXMgdGhlIGxvZ2ljIGZvciBpbml0aWF0
aW5nIGEgcmVtb3RlIHNoZWxsIHNlc3Npb24gdG8gYSBob3N0CisgICAgICAgIG92ZXIgVEVMTkVU
LiBJdCBwcm92aWRlcyBmdW5jdGlvbnMgdG8gcnVuIGEgc2hlbGwgY29tbWFuZCwgaW50ZXJydXB0
IGEgc2hlbGwgY29tbWFuZCwgYW5kIGxvZ291dC4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0
cHkvY29tbW9uL3N5c3RlbS9yZW1vdGVfc2hlbGwucHk6IEFkZGVkLgorICAgICAgICAoUmVtb3Rl
U2hlbGwpOgorICAgICAgICAoUmVtb3RlU2hlbGwuX19pbml0X18pOgorICAgICAgICAoUmVtb3Rl
U2hlbGwubG9nb3V0KTogUnVucyB0aGUgbG9nb3V0KDEpIGNvbW1hbmQgaW4gdGhlIHJlbW90ZSBz
aGVsbCwgaW50ZXJydXB0aW5nIHRoZSBjdXJyZW50bHkKKyAgICAgICAgcnVubmluZyBjb21tYW5k
IChpZiBhbnkpLgorICAgICAgICAoUmVtb3RlU2hlbGwubG9nb3V0LmhhbmRsZV91bnJlc3BvbnNp
dmVfcHJvY2Vzcyk6IFNlbmRzIElBQyBETyBMT0dPVVQgdG8gZm9yY2libHkgbG9nb3V0IG9mIHRo
ZQorICAgICAgICB0ZWxuZXQgc2Vzc2lvbnMgYmVmb3JlIGNsb3NpbmcgdGhlIHNvY2tldCBpZiB3
ZSBjYW5ub3QgaW50ZXJydXB0IHRoZSBjdXJyZW50bHkgcnVubmluZyBjb21tYW5kLgorICAgICAg
ICAoUmVtb3RlU2hlbGwuZGVmYXVsdF90aW1lb3V0X2hhbmRsZXIpOiBDb252ZW5pZW5jZSBzdGF0
aWMgbWV0aG9kIHRoYXQgY2FuIGJlIHBhc3NlZCBhcyB0aGUgdGltZW91dAorICAgICAgICBoYW5k
bGVyIHRvIFJlbW90ZVNoZWxsLnJ1bl9jb21tYW5kKCkgdG8gaW50ZXJydXB0IHRoZSBjdXJyZW50
bHkgcnVubmluZyBjb21tYW5kLgorICAgICAgICAoUmVtb3RlU2hlbGwuaWdub3JlX3RpbWVvdXQp
OiBDb252ZW5pZW5jZSBzdGF0aWMgbWV0aG9kIHRoYXQgY2FuIGJlIHBhc3NlZCBhcyB0aGUgdGlt
ZW91dCBoYW5kbGVyCisgICAgICAgIHRvIFJlbW90ZVNoZWxsLnJ1bl9jb21tYW5kKCkgdG8gZG8g
bm90aGluZy4KKyAgICAgICAgKFJlbW90ZVNoZWxsLnJ1bl9jb21tYW5kKTogUnVucyB0aGUgc3Bl
Y2lmaWVkIGNvbW1hbmQgYXMtaXMgaW4gdGhlIHJlbW90ZSBzaGVsbCwgVVRGLTggZGVjb2RlcyB0
aGUKKyAgICAgICAgb3V0cHV0IGZyb20gdGhlIGNvbW1hbmQgYnkgZGVmYXVsdCAoZGVjb2RlX291
dHB1dCA6PSBUcnVlKS4gVGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgZXNjYXBpbmcKKyAg
ICAgICAgc2hlbGwgbWV0YWNoYXJhY3RlcnMgaWYgYXBwcm9wcmlhdGUuIElmIHRoZSB0ZWxuZXQg
cmVtb3RlIHNlc3Npb24gd2FzIGRpc2Nvbm5lY3RlZCBpdCB3aWxsIGF0dGVtcHQKKyAgICAgICAg
dG8gcmUtY29ubmVjdCB0byBpdCAoZGVmYXVsdHM6IG51bV9yZWNvbm5lY3RzIDo9IDEgLSBvbmUg
cmUtY29ubmVjdCBhdHRlbXB0KSBiZWZvcmUgcnVubmluZyB0aGUKKyAgICAgICAgY29tbWFuZC4g
V2hlbiBhIHRpbWVvdXQgaXMgdW5zcGVjaWZpZWQgKGRlZmF1bHRzOiB0aW1lb3V0IDo9IE5vbmUg
LSBubyB0aW1lb3V0KSB0aGlzIG1ldGhvZCB3aWxsCisgICAgICAgIGJsb2NrIHVudGlsIHRoZSBj
b21tYW5kIHJ1bnMgdG8gY29tcGxldGlvbiBvciB0aGUgY29ubmVjdGlvbiBpcyBzZXZlcmVkLiBP
dGhlcndpc2UsIHRoZSB0aW1lb3V0CisgICAgICAgIGhhbmRsZXIgKGRlZmF1bHRzOiBSZW1vdGVT
aGVsbC5kZWZhdWx0X3RpbWVvdXRfaGFuZGxlciAtIGludGVycnVwdHMgdGhlIGNvbW1hbmQpIGlz
IGludm9rZWQgd2l0aAorICAgICAgICB0aGUgUmVtb3RlU2hlbGwgaW5zdGFuY2UgYW5kIHRoZSBv
dXRwdXQgcmVhZCBzbyBmYXIuCisgICAgICAgIChSZW1vdGVTaGVsbC5pbnRlcnJ1cHQpOiBFZmZl
Y3RpdmVseSBzZW5kcyBhIFNJR0lOVCB0byB0aGUgcnVubmluZyBjb21tYW5kIChpZiBhbnkpIHVz
aW5nIGEKKyAgICAgICAgSUFDIElQICsgIlN5bmNoIiBtZXNzYWdlLiBJZiB0aGUgY29tbWFuZCBk
b2VzIG5vdCBjb21wbGV0ZSB3aXRoaW4gMSBzZWNvbmQgdGhlbi4uLgorICAgICAgICAoUmVtb3Rl
U2hlbGwuaW50ZXJydXB0LmhhbmRsZV91bnJlc3BvbnNpdmVfcHJvY2Vzcyk6IC4uLmxvZ3Mgb3V0
IGFuZCBjb25uZWN0cyBhZ2Fpbi4KKyAgICAgICAgKFJlbW90ZVNoZWxsLmZpbGVfc3lzdGVtX2Vu
Y29kaW5nKTogUmV0dXJucyB0aGUgdGV4dCBlbmNvZGluZyBmb3IgZmlsZW5hbWVzLgorICAgICAg
ICAoUmVtb3RlU2hlbGwuX25ld19saW5lX2NoYXJhY3Rlcik6IFJldHVybnMgdGhlIGNoYXJhY3Rl
ciBzZXF1ZW5jZSB0byByZXByZXNlbnQgYSAibmV3IGxpbmUiIG92ZXIKKyAgICAgICAgdGhlIFRF
TE5FVCBwcm90b2NvbC4KKyAgICAgICAgKFJlbW90ZVNoZWxsLl9jb252ZXJ0X3RvXzdfYml0X2Fz
Y2lpX3N0cmluZyk6IEhlbHBlciBmdW5jdGlvbiB0aGF0IHN0cmlwcyB0aGUgOHRoLWJpdCBmcm9t
IGVhY2gKKyAgICAgICAgY2hhcmFjdGVyIGluIHRoZSBzcGVjaWZpZWQgc3RyaW5nIHRvIHByb2R1
Y2UgYSA3LWJpdCBVUy1BU0NJSSBzdHJpbmcuCisgICAgICAgIChSZW1vdGVTaGVsbC5fZW5jb2Rl
X3N0cmluZyk6IEhlbHBlciBmdW5jdGlvbiB0aGF0IGVuY29kZXMgdGhlIHNwZWNpZmllZCBzdHJp
bmcgZm9yIHRyYW5zbWlzc2lvbgorICAgICAgICB1c2luZyB0aGUgVEVMTkVUIHByb3RvY29sLiBJ
ZiB3ZSBhcmUgdXNpbmcgYmluYXJ5IHRyYW5zbWlzc2lvbiB0aGVuIHRoZSBzcGVjaWZpZWQgc3Ry
aW5nIGlzIFVURi04CisgICAgICAgIGVuY29kZWQuIE90aGVyd2lzZSwgd2UgY2FsbCBfY29udmVy
dF90b183X2JpdF9hc2NpaV9zdHJpbmcoKSBzbyB0aGF0IHRoZSBzdHJpbmcgb25seSBjb250YWlu
cyA3LWJpdAorICAgICAgICBVUy1BU0NJSSBjaGFyYWN0ZXJzLgorICAgICAgICAoUmVtb3RlU2hl
bGwuX3dyaXRlX2hlcmVfZG9jdW1lbnQpOiBIZWxwZXIgZnVuY3Rpb24gZm9yIHNlbmRpbmcgdGhl
IGNvbnRlbnRzIG9mIGEgSGVyZSBEb2N1bWVudCB0bworICAgICAgICB0aGUgcmVtb3RlIHNoZWxs
LgorICAgICAgICAoUmVtb3RlU2hlbGwuX2ludGVycnVwdF9pbnRlcm5hbCk6IEhlbHBlciBmdW5j
dGlvbiB0aGF0IHNlbmRzIGFuIElBQyBJUCArICJTeW5jaCIgbWVzc2FnZSB0byB0aGUKKyAgICAg
ICAgcmVtb3RlIHRlbG5ldCBzaWRlIHRvIGVmZmVjdGl2ZWx5IGhhdmUgaXQgc2VuZCBhIFNJR0lO
VCB0byB0aGUgZm9yZWdyb3VuZCBwcm9jZXNzIGdyb3VwLiBJZiB0aGUKKyAgICAgICAgY29tbWFu
ZCBkb2VzIG5vdCByZXNwb25kIHRvIHRoZSBTSUdJTlQgKGJ5IGV4aXRpbmcgdG8gYSBzaGVsbCBw
cm9tcHQpIHRoZW4gaW52b2tlcyB0aGUgc3BlY2lmaWVkCisgICAgICAgIHVucmVzcG9uc2l2ZSBw
cm9jZXNzIGhhbmRsZXIuCisgICAgICAgIChSZW1vdGVTaGVsbC5fY29ubmVjdCk6IEluaXRpYXRl
cyB0aGUgdGVsbmV0IGNvbm5lY3Rpb24gYW5kIHNpZ25zIGluIHRvIHRoZSByZW1vdGUgc2hlbGwg
d2l0aAorICAgICAgICB0aGUgc3BlY2lmaWVkIGNyZWRlbnRpYWxzLgorICAgICAgICAoUmVtb3Rl
U2hlbGwuX3VwZGF0ZV9zaGVsbF9sb2NhbGVfaWZfbmVlZGVkKTogQ2hlY2tzIHRoYXQgdGhlIGNo
YXJhY3RlciBlbmNvZGluZyBvZiB0aGUgcmVtb3RlIHNoZWxsCisgICAgICAgIGlzIGVuX1VTLlVU
Ri04IChzbyBhcyB0byBhY2NlcHQgVVRGLTggY2hhcmFjdGVyIGlucHV0KS4gT3RoZXJ3aXNlLCB3
cml0ZXMgIkxDX0NUWVBFPWVuX1VTLlVURi04IgorICAgICAgICB0byB+Ly5wcm9maWxlLCBsb2dz
IG91dCwgYW5kIGNvbm5lY3RzIGFnYWluLiBXZSBuZWVkIHRvIGxvZyBvdXQgZm9yIExDX0NUWVBF
IHRvIHRha2UgZWZmZWN0LgorICAgICAgICAoUmVtb3RlU2hlbGwuX3JlYWRfdW50aWxfZmlyc3Rf
bm9uX2VtcHR5X2xpbmUpOiBIZWxwZXIgZnVuY3Rpb24gdGhhdCBibG9ja3MgdW50aWwgdGhlIGZp
cnN0IG5vbi1lbXB0eQorICAgICAgICBsaW5lIGlzIHNlZW4uCisgICAgICAgIChSZW1vdGVTaGVs
bC5fcmF3X3dyaXRlKTogSGVscGVyIGZ1bmN0aW9uIGZvciBzZW5kaW5nIHRoZSBzcGVjaWZpZWQg
Ynl0ZSBzZXF1ZW5jZSBhcy1pcyBvdmVyCisgICAgICAgIHRoZSBjb25uZWN0aW9uLiBXZSBtYWtl
IHVzZSBvZiB0aGlzIHRvIHNlbmQgSUFDIGNvbW1hbmRzIGFzIHRlbG5ldGxpYi53cml0ZSgpIGVz
Y2FwZXMgSUFDIGNoYXJhY3RlcnMKKyAgICAgICAgYmVmb3JlIHRyYW5zbWlzc2lvbiBieSBkb3Vi
bGluZyB0aGVtLgorICAgICAgICAoUmVtb3RlU2hlbGwuX3NlbmRfd2lsbF90ZXJtaW5hbF90eXBl
KTogU2VuZHMgdGhlIElBQyBXSUxMIFRUWVBFIGNvbW1hbmQuCisgICAgICAgIChSZW1vdGVTaGVs
bC5fc2VuZF9kb19sb2dvdXRfYW5kX2Nsb3NlKTogU2VuZHMgdGhlIElBQyBETyBMT0dPVVQgY29t
bWFuZCBhbmQgY2xvc2VzIHRoZSBjb25uZWN0aW9uLgorICAgICAgICAoUmVtb3RlU2hlbGwuX3Nl
bmRfaXBfc3luYyk6IFNlbmRzIElBQyBJUCArICJTeW5jaCIgbWVzc2FnZS4KKyAgICAgICAgKFJl
bW90ZVNoZWxsLl9zZW5kX2RvX2FuZF93aWxsX2JpbmFyeV90cmFuc21pc3Npb24pOiBTZW5kcyBJ
QUMgRE8gQklOQVJZIGFuZCBJQUMgV0lMTCBCSU5BUlkgY29tbWFuZHMuCisgICAgICAgIChSZW1v
dGVTaGVsbC5fZGlkX3JlY2VpdmVfb3B0aW9uKTogVGhlIG5lZ290aWF0aW9uIGNhbGxiYWNrIGZ1
bmN0aW9uLiBOZWdvdGlhdGVzIGEgYmluYXJ5IGNvbm5lY3Rpb24KKyAgICAgICAgYW5kIHRlcm1p
bmFsIHR5cGUuCisKKzIwMTctMDYtMDUgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29t
PgorCiAgICAgICAgIFRlYWNoIHJ1bi13ZWJraXQtdGVzdHMgaG93IHRvIHJ1biBIVFRQUyBXZWIg
UGxhdGZvcm0gVGVzdHMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE3MjkzMAogICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzI1NzAyMDE+CmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vcmVtb3RlX3NoZWxsLnB5
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3JlbW90ZV9zaGVsbC5weQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi44ZTI1ZGE1Y2YzNzljY2JlMWViNzI5OTc0MGM4OWUwOWZkYTUwNmI2Ci0tLSAv
ZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3JlbW90
ZV9zaGVsbC5weQpAQCAtMCwwICsxLDMwNCBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisj
IGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFO
WQorIyBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZCisjIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisjIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyMgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OCisjIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTCisjIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorCitpbXBvcnQgU3RyaW5nSU8KK2ltcG9ydCBzaGxleAoraW1wb3J0IHNvY2tl
dAoraW1wb3J0IHRlbG5ldGxpYgoraW1wb3J0IHRpbWUKKworREVCVUdfVEVMTkVUID0gRmFsc2UK
KworCitjbGFzcyBSZW1vdGVTaGVsbChvYmplY3QpOgorICAgIF9ERUZBVUxUX1RJTUVPVVQgPSA1
ICAjIHNlY29uZHMKKyAgICBfTENfQ1RZUEUgPSAnZW5fVVMuVVRGLTgnCisKKyAgICAjIGh0dHBz
Oi8vd3d3LmlhbmEub3JnL2Fzc2lnbm1lbnRzL3Rlcm1pbmFsLXR5cGUtbmFtZXMvdGVybWluYWwt
dHlwZS1uYW1lcy54aHRtbCN0ZXJtaW5hbC10eXBlLW5hbWVzLTEKKyAgICBfREVGQVVMVF9URVJN
SU5BTF9UWVBFID0gJ0FOU0knCisKKyAgICAjIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9y
ZmMxMDkxCisgICAgX1RFUk1JTkFMX1RZUEVfSVMgPSBjaHIoMCkKKyAgICBfVEVSTUlOQUxfVFlQ
RV9TRU5EID0gY2hyKDEpCisgICAgX1NFTkRfVEVSTUlOQUxfVFlQRV9DT01NQU5EID0gdGVsbmV0
bGliLlRUWVBFICsgX1RFUk1JTkFMX1RZUEVfU0VORAorCisgICAgZGVmIF9faW5pdF9fKHNlbGYs
IHBvcnQsIGhvc3QsIHVzZXJuYW1lLCBwYXNzd29yZCk6CisgICAgICAgIHNlbGYuX3BvcnQgPSBw
b3J0CisgICAgICAgIHNlbGYuX2hvc3QgPSBob3N0CisgICAgICAgIHNlbGYuX3VzZXJuYW1lID0g
dXNlcm5hbWUKKyAgICAgICAgc2VsZi5fcGFzc3dvcmQgPSBwYXNzd29yZAorCisgICAgICAgIHNl
bGYuaXNfOF9iaXRfY2xlYW4gPSBGYWxzZQorCisgICAgICAgICMgVXNlIGN1c3RvbSBwcm9tcHQg
c3RyaW5ncyBmb3IgdGhlIHNoZWxsIHRoYXQgYXJlIHVubGlrZWx5IHRvIGNvbGxpZGUgd2l0aCB0
aGUKKyAgICAgICAgIyBvdXRwdXQgb2YgYW4gYXJiaXRyYXJ5IGNvbW1hbmQuCisgICAgICAgIHNl
bGYuX3Byb21wdF9zdHJpbmcgPSAnUmVtb3RlU2hlbGwuMDQwMTE5NzY6ICQgJworICAgICAgICBz
ZWxmLl9zZWNvbmRhcnlfcHJvbXB0X3N0cmluZyA9ICdSZW1vdGVTaGVsbC4wNDAxMTk3NjogPiAn
CisKKyAgICAgICAgc2VsZi5fdGVsbmV0ID0gdGVsbmV0bGliLlRlbG5ldCgpCisgICAgICAgIHNl
bGYuX3RlbG5ldC5zZXRfb3B0aW9uX25lZ290aWF0aW9uX2NhbGxiYWNrKHNlbGYuX2RpZF9yZWNl
aXZlX29wdGlvbikKKyAgICAgICAgaWYgREVCVUdfVEVMTkVUOgorICAgICAgICAgICAgc2VsZi5f
dGVsbmV0LnNldF9kZWJ1Z2xldmVsKDEpCisgICAgICAgIHNlbGYuX2Nvbm5lY3QoKQorCisgICAg
ZGVmIGxvZ291dChzZWxmKToKKyAgICAgICAgZGVmIGhhbmRsZV91bnJlc3BvbnNpdmVfcHJvY2Vz
cygpOgorICAgICAgICAgICAgc2VsZi5fc2VuZF9kb19sb2dvdXRfYW5kX2Nsb3NlKCkKKyAgICAg
ICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICBzdWNjZXNzID0gc2VsZi5faW50ZXJydXB0X2lu
dGVybmFsKHVucmVzcG9uc2l2ZV9wcm9jZXNzX2hhbmRsZXI9aGFuZGxlX3VucmVzcG9uc2l2ZV9w
cm9jZXNzKQorICAgICAgICBpZiBub3Qgc3VjY2VzczoKKyAgICAgICAgICAgIHJldHVybiAgIyBE
aXNjb25uZWN0ZWQKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgIyBHcmFjZWZ1bGx5IGxvZ291
dC4KKyAgICAgICAgICAgIHNlbGYucnVuX2NvbW1hbmQoJ2xvZ291dCcsIG51bV9yZWNvbm5lY3Rz
PTAsIHRpbWVvdXRfaGFuZGxlcj1zZWxmLmlnbm9yZV90aW1lb3V0KQorICAgICAgICBleGNlcHQg
c29ja2V0LmVycm9yOgorICAgICAgICAgICAgIyBEb25lOyBhbHJlYWR5IGRpc2Nvbm5lY3RlZC4K
KyAgICAgICAgICAgIHJldHVybgorICAgICAgICBzZWxmLl90ZWxuZXQuY2xvc2UoKQorICAgICAg
ICBzZWxmLl90ZWxuZXQgPSBOb25lCisKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIGRlZmF1
bHRfdGltZW91dF9oYW5kbGVyKHJlbW90ZV9zaGVsbCwgb3V0cHV0X3NvX2Zhcik6CisgICAgICAg
IHJlbW90ZV9zaGVsbC5pbnRlcnJ1cHQoKQorCisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiBp
Z25vcmVfdGltZW91dChyZW1vdGVfc2hlbGwsIG91dHB1dF9zb19mYXIpOgorICAgICAgICBwYXNz
CisKKyAgICBkZWYgcnVuX2NvbW1hbmQoc2VsZiwgY29tbWFuZCwgdGltZW91dD1Ob25lLCB0aW1l
b3V0X2hhbmRsZXI9Tm9uZSwgbnVtX3JlY29ubmVjdHM9MSwgaW5wdXQ9Tm9uZSwgZGVjb2RlX291
dHB1dD1UcnVlKToKKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29tbWFuZCwgc3RyKSBvciBp
c2luc3RhbmNlKGNvbW1hbmQsIHVuaWNvZGUpCisgICAgICAgIGFzc2VydCBub3QgaW5wdXQgb3Ig
bm90IHNldChbJ3wnLCAnOycsICcmJywgJzwnLCAnPDwnLCAnPDw8J10pICYgc2V0KHNobGV4LnNw
bGl0KGNvbW1hbmQpKSAgIyBFbnN1cmUgJ3wnLCAnOycsICcmJywgJzwnLCAnPDwnLCAnPDw8JyBh
cmUgbm90IGluIHRoZSBjb21tYW5kIHdoZW4gd2UgaGF2ZSBpbnB1dC4KKworICAgICAgICBfSEVS
RV9ET0NVTUVOVF9FT0YgPSAnRU9GJworCisgICAgICAgIGNvbW1hbmQgPSBzZWxmLl9lbmNvZGVf
c3RyaW5nKGNvbW1hbmQpCisgICAgICAgIGlmIGlucHV0OgorICAgICAgICAgICAgY29tbWFuZCAr
PSAiIDw8J3t9JyIuZm9ybWF0KF9IRVJFX0RPQ1VNRU5UX0VPRikKKyAgICAgICAgc2VsZi5fdGVs
bmV0Lm1zZygncnVuX2NvbW1hbmQ6ICVzJywgY29tbWFuZCkKKyAgICAgICAgd2hpbGUgbnVtX3Jl
Y29ubmVjdHMgPj0gMDoKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBzZWxmLl90
ZWxuZXQud3JpdGUoY29tbWFuZCArIHNlbGYuX25ld19saW5lX2NoYXJhY3RlcigpKQorICAgICAg
ICAgICAgICAgIGlmIGlucHV0OgorICAgICAgICAgICAgICAgICAgICBzZWxmLl93cml0ZV9oZXJl
X2RvY3VtZW50KGlucHV0LCBkZWxpbWl0ZXI9X0hFUkVfRE9DVU1FTlRfRU9GKQorICAgICAgICAg
ICAgZXhjZXB0IHNvY2tldC5lcnJvcjoKKyAgICAgICAgICAgICAgICAjIFdlIG1heSBoYXZlIGJl
ZW4gZGlzY29ubmVjdGVkIGR1ZSBpZGxlbmVzcyBvciB0aGUgY29ubmVjdGlvbiB3YXMgaW50ZXJy
dXB0ZWQuCisgICAgICAgICAgICAgICAgaWYgbm90IG51bV9yZWNvbm5lY3RzOgorICAgICAgICAg
ICAgICAgICAgICAjIEZJWE1FOiBUaHJvdyBvdXIgb3duIGV4Y2VwdGlvbiBpbnN0ZWFkIG9mIHJl
LXJhaXNpbmcgc29ja2V0LmVycm9yIGFzIHRoZSBsYXR0ZXIgaXMgYW4KKyAgICAgICAgICAgICAg
ICAgICAgIyBpbXBsZW1lbnRhdGlvbiBkZXRhaWwuCisgICAgICAgICAgICAgICAgICAgIHJhaXNl
CisgICAgICAgICAgICAgICAgc2VsZi5fY29ubmVjdCgpCisgICAgICAgICAgICAgICAgbnVtX3Jl
Y29ubmVjdHMgPSBudW1fcmVjb25uZWN0cyAtIDEKKyAgICAgICAgICAgICAgICBjb250aW51ZQor
ICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgb3V0cHV0X3NvX2Zh
ciA9IHNlbGYuX3RlbG5ldC5yZWFkX3VudGlsKHNlbGYuX3Byb21wdF9zdHJpbmcsIHRpbWVvdXQ9
dGltZW91dCkKKyAgICAgICAgZXhjZXB0IEVPRkVycm9yOgorICAgICAgICAgICAgIyBFaXRoZXIg
dGhlIGNvbm5lY3Rpb24gd2FzIGludGVycnVwdGVkIG9yIHRoZSBjb21tYW5kIHRlcm1pbmF0ZWQg
dGhlIGNvbm5lY3Rpb24gYWJydXB0bHkgKGUuZy4gbG9nb3V0KS4KKyAgICAgICAgICAgIHJldHVy
biBOb25lCisgICAgICAgIGlmIG5vdCBzZWxmLmlzXzhfYml0X2NsZWFuOgorICAgICAgICAgICAg
IyBGaXggdXAgIm5ldyBsaW5lcyIuIFRoZSBzZXF1ZW5jZSBcclxuIGlzIHNlbnQgdG8gaW5kaWNh
dGUgYSBzaW5nbGUgIm5ldyBsaW5lIiBpbiBBU0NJSSBtb2RlLgorICAgICAgICAgICAgb3V0cHV0
X3NvX2ZhciA9IG91dHB1dF9zb19mYXIucmVwbGFjZSgnXHJcbicsICdcbicpCisgICAgICAgIGlm
IGRlY29kZV9vdXRwdXQ6CisgICAgICAgICAgICBvdXRwdXRfc29fZmFyID0gb3V0cHV0X3NvX2Zh
ci5kZWNvZGUoJ3V0Zi04JykKKyAgICAgICAgaWYgc2VsZi5fdGVsbmV0LmVvZjoKKyAgICAgICAg
ICAgICMgVGhlIGNvbW1hbmQgdGVybWluYXRlZCB0aGUgY29ubmVjdGlvbiAoZS5nLiBleGl0KS4K
KyAgICAgICAgICAgIHJldHVybiBvdXRwdXRfc29fZmFyCisgICAgICAgIGlmIG5vdCBvdXRwdXRf
c29fZmFyLmVuZHN3aXRoKHNlbGYuX3Byb21wdF9zdHJpbmcpOgorICAgICAgICAgICAgIyBUaW1l
ZCBvdXQKKyAgICAgICAgICAgICh0aW1lb3V0X2hhbmRsZXIgb3Igc2VsZi5kZWZhdWx0X3RpbWVv
dXRfaGFuZGxlcikoc2VsZiwgb3V0cHV0X3NvX2ZhcikKKyAgICAgICAgICAgIHJldHVybiBOb25l
CisgICAgICAgIHJldHVybiBvdXRwdXRfc29fZmFyWzpvdXRwdXRfc29fZmFyLnJmaW5kKHNlbGYu
X3Byb21wdF9zdHJpbmcpXQorCisgICAgZGVmIGludGVycnVwdChzZWxmKToKKyAgICAgICAgZGVm
IGhhbmRsZV91bnJlc3BvbnNpdmVfcHJvY2VzcygpOgorICAgICAgICAgICAgIyBQcm9jZXNzIGlz
IGlnbm9yaW5nIENvbnRyb2wtQyBvciBpcyB1bnJlc3BvbnNpdmUuIEZvcmNlIGxvZ291dCBhbmQg
Y29ubmVjdCBhZ2Fpbi4KKyAgICAgICAgICAgIHNlbGYuX3RlbG5ldC5tc2coJ1Byb2Nlc3MgdW5y
ZXNwb25zaXZlLiBTZW5kaW5nIElBQyBETyBMT0dPVVQuLi4nKQorICAgICAgICAgICAgc2VsZi5f
c2VuZF9kb19sb2dvdXRfYW5kX2Nsb3NlKCkKKyAgICAgICAgICAgIHNlbGYuX2Nvbm5lY3QoKQor
ICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgc3VjY2VzcyA9IHNlbGYuX2ludGVycnVw
dF9pbnRlcm5hbCh1bnJlc3BvbnNpdmVfcHJvY2Vzc19oYW5kbGVyPWhhbmRsZV91bnJlc3BvbnNp
dmVfcHJvY2VzcykKKyAgICAgICAgYXNzZXJ0IHN1Y2Nlc3MKKworICAgICMgQW5hbGFnb3VzIHRv
IHN5cy5nZXRmaWxlc3lzdGVtZW5jb2RpbmcoKS4KKyAgICBkZWYgZmlsZV9zeXN0ZW1fZW5jb2Rp
bmcoc2VsZik6CisgICAgICAgIGlmIHNlbGYuaXNfOF9iaXRfY2xlYW46CisgICAgICAgICAgICBy
ZXR1cm4gJ3V0Zi04JworICAgICAgICByZXR1cm4gJ2FzY2lpJworCisgICAgZGVmIF9uZXdfbGlu
ZV9jaGFyYWN0ZXIoc2VsZik6CisgICAgICAgIGlmIHNlbGYuaXNfOF9iaXRfY2xlYW46CisgICAg
ICAgICAgICByZXR1cm4gJ1xuJworICAgICAgICByZXR1cm4gJ1xyXG4nCisKKyAgICBAc3RhdGlj
bWV0aG9kCisgICAgZGVmIF9jb252ZXJ0X3RvXzdfYml0X2FzY2lpX3N0cmluZyhzdHJpbmcpOgor
ICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShzdHJpbmcsIHN0cikgb3IgaXNpbnN0YW5jZShzdHJp
bmcsIHVuaWNvZGUpCisgICAgICAgIG91dHB1dCA9ICcnCisgICAgICAgIGZvciBjIGluIHN0cmlu
ZzoKKyAgICAgICAgICAgIG91dHB1dCArPSBjaHIob3JkKGMpICYgMHg3ZikKKyAgICAgICAgcmV0
dXJuIG91dHB1dAorCisgICAgZGVmIF9lbmNvZGVfc3RyaW5nKHNlbGYsIHN0cmluZyk6CisgICAg
ICAgIGlmIHNlbGYuaXNfOF9iaXRfY2xlYW46CisgICAgICAgICAgICByZXR1cm4gc3RyaW5nLmVu
Y29kZSgndXRmLTgnKQorICAgICAgICByZXR1cm4gc2VsZi5fY29udmVydF90b183X2JpdF9hc2Np
aV9zdHJpbmcoc3RyaW5nKQorCisgICAgZGVmIF93cml0ZV9oZXJlX2RvY3VtZW50KHNlbGYsIHN0
cmluZ19vcl9maWxlLCBkZWxpbWl0ZXIpOgorICAgICAgICBmaWxlX3RvX3VzZSA9IHN0cmluZ19v
cl9maWxlCisgICAgICAgIGlmIGlzaW5zdGFuY2Uoc3RyaW5nX29yX2ZpbGUsIHN0cikgb3IgaXNp
bnN0YW5jZShzdHJpbmdfb3JfZmlsZSwgdW5pY29kZSk6CisgICAgICAgICAgICBmaWxlX3RvX3Vz
ZSA9IFN0cmluZ0lPLlN0cmluZ0lPKHN0cmluZ19vcl9maWxlKQorICAgICAgICBzZWxmLl90ZWxu
ZXQucmVhZF91bnRpbChzZWxmLl9zZWNvbmRhcnlfcHJvbXB0X3N0cmluZykKKyAgICAgICAgZm9y
IGxpbmUgaW4gZmlsZV90b191c2U6CisgICAgICAgICAgICBzZWxmLl90ZWxuZXQud3JpdGUoc2Vs
Zi5fZW5jb2RlX3N0cmluZyhsaW5lKSArIHNlbGYuX25ld19saW5lX2NoYXJhY3RlcigpKQorICAg
ICAgICAgICAgc2VsZi5fdGVsbmV0LnJlYWRfdW50aWwoc2VsZi5fc2Vjb25kYXJ5X3Byb21wdF9z
dHJpbmcpCisgICAgICAgIHNlbGYuX3RlbG5ldC53cml0ZShkZWxpbWl0ZXIgKyBzZWxmLl9uZXdf
bGluZV9jaGFyYWN0ZXIoKSkKKworICAgIGRlZiBfaW50ZXJydXB0X2ludGVybmFsKHNlbGYsIHVu
cmVzcG9uc2l2ZV9wcm9jZXNzX2hhbmRsZXI9Tm9uZSk6CisgICAgICAgIHNlbGYuX3RlbG5ldC5t
c2coJ1NlbmRpbmcgSUFDIElQICsgIlN5bmNoIiAoQ29udHJvbC1DKS4uLicpCisgICAgICAgIHRy
eToKKyAgICAgICAgICAgIHNlbGYuX3NlbmRfaXBfc3luYygpCisgICAgICAgIGV4Y2VwdCBzb2Nr
ZXQuZXJyb3I6CisgICAgICAgICAgICAjIERpc2Nvbm5lY3RlZAorICAgICAgICAgICAgcmV0dXJu
IEZhbHNlCisgICAgICAgICMgRklYTUU6IEEgcHJvY2VzcyBtYXkgaGF2ZSByZXNwb25kZWQgdG8g
dGhlIGludGVycnVwdCwgYnV0IHNwZXdlZCBzbyBtdWNoIG91dHB1dCBhcyB0byBtYWtlCisgICAg
ICAgICMgVGVsbmV0LnJlYWRfdW50aWwoKSB0aW1lIG91dCByZWFkaW5nIGl0IGFsbC4gRm9yIGV4
YW1wbGUsIHJ1bm5pbmcgL3Vzci9iaW4veWVzIGNhbiBjYXVzZQorICAgICAgICAjIHRoaXMuIEZv
ciBub3csIHdlIGNvbnNpZGVyIHN1Y2ggYSBwcm9jZXNzIGFzIHVucmVzcG9uc2l2ZS4KKyAgICAg
ICAgb3V0cHV0ID0gc2VsZi5fdGVsbmV0LnJlYWRfdW50aWwoc2VsZi5fcHJvbXB0X3N0cmluZywg
dGltZW91dD0xKSAgIyBXYWl0IG9uZSBzZWNvbmQKKyAgICAgICAgaWYgb3V0cHV0LmVuZHN3aXRo
KHNlbGYuX3Byb21wdF9zdHJpbmcpOgorICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAg
aWYgdW5yZXNwb25zaXZlX3Byb2Nlc3NfaGFuZGxlcjoKKyAgICAgICAgICAgIHJldHVybiB1bnJl
c3BvbnNpdmVfcHJvY2Vzc19oYW5kbGVyKCkKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBk
ZWYgX2Nvbm5lY3Qoc2VsZik6CisgICAgICAgICMgRklYTUU6IFRocm93IG91ciBvd24gZXhjZXB0
aW9uIGlmIG9wZW4oKSByYWlzZXMgYW4gZXhjZXB0aW9uIGluc3RlYWQgb2YgcHJvcGFnYXRpbmcg
dGhlIGV4aXN0aW5nIG9uZQorICAgICAgICAjIGFzIHRoZSBsYXR0ZXIgaXMgYW4gaW1wbGVtZW50
YXRpb24gZGV0YWlsLgorICAgICAgICBzZWxmLl90ZWxuZXQub3BlbihzZWxmLl9ob3N0LCBzZWxm
Ll9wb3J0LCB0aW1lb3V0PXNlbGYuX0RFRkFVTFRfVElNRU9VVCkKKyAgICAgICAgc2VsZi5fc2Vu
ZF93aWxsX3Rlcm1pbmFsX3R5cGUoKQorICAgICAgICBzZWxmLl9zZW5kX2RvX2FuZF93aWxsX2Jp
bmFyeV90cmFuc21pc3Npb24oKQorICAgICAgICBzZWxmLl90ZWxuZXQucmVhZF91bnRpbCgnbG9n
aW46ICcpCisgICAgICAgIHNlbGYuX3RlbG5ldC53cml0ZShzZWxmLl91c2VybmFtZSArIHNlbGYu
X25ld19saW5lX2NoYXJhY3RlcigpKQorICAgICAgICBzZWxmLl90ZWxuZXQucmVhZF91bnRpbCgn
UGFzc3dvcmQ6JykgICMgVGhlIGxhY2sgb2YgYSB0cmFpbGluZyBzcGFjZSBjaGFyYWN0ZXIgaXMg
aW50ZW50aW9uYWwuCisgICAgICAgIHNlbGYuX3RlbG5ldC53cml0ZShzZWxmLl9wYXNzd29yZCAr
IHNlbGYuX25ld19saW5lX2NoYXJhY3RlcigpKQorCisgICAgICAgIGlmIHNlbGYuX3JlYWRfdW50
aWxfZmlyc3Rfbm9uX2VtcHR5X2xpbmUoKSA9PSAnTG9naW4gaW5jb3JyZWN0JzoKKyAgICAgICAg
ICAgIHJhaXNlIFJ1bnRpbWVFcnJvcignSW52YWxpZCBjcmVkZW50aWFscycpCisKKyAgICAgICAg
IyBVcGRhdGUgcHJvbXB0IHN0cmluZ3Mgb2Ygc2hlbGwuIFdlIGFzc3VtZSB3ZSBhcmUgdXNpbmcg
dGhlIEJvdXJuZSBzaGVsbCAoc2gpLgorICAgICAgICAjIFRoaXMgY29tbWFuZCBtdXN0IGJlIHJ1
biBiZWZvcmUgYW55IG90aGVyIGNvbW1hbmQuIE90aGVyd2lzZSwgd2Ugd2lsbCB0aW1lb3V0Lgor
ICAgICAgICBzZWxmLnJ1bl9jb21tYW5kKCJleHBvcnQgUFMxPSd7fSciLmZvcm1hdChzZWxmLl9w
cm9tcHRfc3RyaW5nKSkKKyAgICAgICAgc2VsZi5ydW5fY29tbWFuZCgiZXhwb3J0IFBTMj0ne30n
Ii5mb3JtYXQoc2VsZi5fc2Vjb25kYXJ5X3Byb21wdF9zdHJpbmcpKQorCisgICAgICAgIGlmIHNl
bGYuaXNfOF9iaXRfY2xlYW46CisgICAgICAgICAgICBzZWxmLl91cGRhdGVfc2hlbGxfbG9jYWxl
X2lmX25lZWRlZCgpCisKKyAgICBkZWYgX3VwZGF0ZV9zaGVsbF9sb2NhbGVfaWZfbmVlZGVkKHNl
bGYpOgorICAgICAgICBsb2NhbGUgPSBzZWxmLnJ1bl9jb21tYW5kKCcvYmluL2VjaG8gJExDX0NU
WVBFJykucnN0cmlwKCkKKyAgICAgICAgaWYgbG9jYWxlID09IHNlbGYuX0xDX0NUWVBFOgorICAg
ICAgICAgICAgcmV0dXJuCisgICAgICAgICMgV2UgYXNzdW1lIHdlIGFyZSB1c2luZyB0aGUgQm91
cm5lIHNoZWxsIChzaCkuCisgICAgICAgIHNlbGYucnVuX2NvbW1hbmQoIi9iaW4vZWNobyAnZXhw
b3J0IExDX0NUWVBFPXt9JyA+PiB+Ly5wcm9maWxlIi5mb3JtYXQoc2VsZi5fTENfQ1RZUEUpKQor
ICAgICAgICAjIExDX0NUWVBFIG9ubHkgdGFrZXMgZWZmZWN0IG9uIHJlc3RhcnQuCisgICAgICAg
IHNlbGYubG9nb3V0KCkKKyAgICAgICAgc2VsZi5fY29ubmVjdCgpCisKKyAgICBkZWYgX3JlYWRf
dW50aWxfZmlyc3Rfbm9uX2VtcHR5X2xpbmUoc2VsZik6CisgICAgICAgIHdoaWxlIFRydWU6Cisg
ICAgICAgICAgICBsaW5lID0gc2VsZi5fdGVsbmV0LnJlYWRfdW50aWwoJ1xuJykucnN0cmlwKCkK
KyAgICAgICAgICAgIGlmIGxpbmU6CisgICAgICAgICAgICAgICAgcmV0dXJuIGxpbmUKKworICAg
IGRlZiBfcmF3X3dyaXRlKHNlbGYsIGJ1ZmZlciwgdXJnZW50PUZhbHNlKToKKyAgICAgICAgc2Vs
Zi5fdGVsbmV0Lm1zZygnX3Jhd193cml0ZTogJXInLCBidWZmZXIpICAjICVyIGNhbGxzIHJlcHIo
KQorICAgICAgICBmbGFncyA9IDAKKyAgICAgICAgaWYgdXJnZW50OgorICAgICAgICAgICAgZmxh
Z3MgfD0gc29ja2V0Lk1TR19PT0IKKyAgICAgICAgc2VsZi5fdGVsbmV0LmdldF9zb2NrZXQoKS5z
ZW5kYWxsKGJ1ZmZlciwgZmxhZ3MpCisKKyAgICBkZWYgX3NlbmRfd2lsbF90ZXJtaW5hbF90eXBl
KHNlbGYpOgorICAgICAgICBzZWxmLl9yYXdfd3JpdGUodGVsbmV0bGliLklBQyArIHRlbG5ldGxp
Yi5XSUxMICsgdGVsbmV0bGliLlRUWVBFKQorCisgICAgZGVmIF9zZW5kX2RvX2xvZ291dF9hbmRf
Y2xvc2Uoc2VsZik6CisgICAgICAgICMgV2UgZG8gbm90IG5lZWQgdG8gd2FpdCBmb3IgdGhlIHJl
bW90ZSBzaWRlIHRvIHNlbmQgV0lMTCBMT0dPVVQgYmVmb3JlIGNsb3NpbmcKKyAgICAgICAgIyB0
aGUgY29ubmVjdGlvbiBieSBkZWZpbml0aW9uIG9mIHRoZSBETyBMT0dPVVQgY29tbWFuZC4KKyAg
ICAgICAgc2VsZi5fcmF3X3dyaXRlKHRlbG5ldGxpYi5JQUMgKyB0ZWxuZXRsaWIuRE8gKyB0ZWxu
ZXRsaWIuTE9HT1VUKQorICAgICAgICBzZWxmLl90ZWxuZXQuY2xvc2UoKQorCisgICAgZGVmIF9z
ZW5kX2lwX3N5bmMoc2VsZik6CisgICAgICAgIHNlbGYuX3Jhd193cml0ZSh0ZWxuZXRsaWIuSUFD
ICsgdGVsbmV0bGliLklQKSAgIyBDb250cm9sLUMKKyAgICAgICAgc2VsZi5fcmF3X3dyaXRlKHRl
bG5ldGxpYi5JQUMgKyB0ZWxuZXRsaWIuRE0sIHVyZ2VudD1UcnVlKQorCisgICAgIyBCZWNhdXNl
IG9mIDxodHRwczovL2J1Z3MucHl0aG9uLm9yZy9pc3N1ZTI1MzM0PiB3ZSBjYW5ub3QgdHJhbnNt
aXQgXDAyMSBhbmQgbnVsbCBieXRlcworICAgICMgZXZlbiBpZiB3ZSBuZWdvdGlhdGUgYSBiaW5h
cnkgY29ubmVjdGlvbi4gV2UgYXJlIHVubGlrZWx5IHRvIHRyYW5zbWl0IG9yIHJlY2VpdmUgc3Vj
aAorICAgICMgYnl0ZXMgZm9yIG91ciBwdXJwb3Nlcy4gV2UgYXJlIHVzaW5nIHRoZSBiaW5hcnkg
Y29ubmVjdGlvbiB0byB0cmFuc21pdCBVVEYtOCBieXRlCisgICAgIyBzZXF1ZW5jZXMgYW5kIHBh
c3MgYSAibmV3IGxpbmUiIHRocm91Z2ggYXMgXG4gaW5zdGVhZCBvZiBcclxuLgorICAgIGRlZiBf
c2VuZF9kb19hbmRfd2lsbF9iaW5hcnlfdHJhbnNtaXNzaW9uKHNlbGYpOgorICAgICAgICBpZiBz
ZWxmLmlzXzhfYml0X2NsZWFuOgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICMgUmVxdWVz
dCB0aGUgcmVtb3RlIHRvIHN3aXRjaCB0byBiaW5hcnkKKyAgICAgICAgc2VsZi5fcmF3X3dyaXRl
KHRlbG5ldGxpYi5JQUMgKyB0ZWxuZXRsaWIuRE8gKyB0ZWxuZXRsaWIuQklOQVJZKQorICAgICAg
ICAjIFByZS1lbXB0aXZlbHkgYW5ub3VuY2UgbG9jYWwgc3dpdGNoIHRvIGJpbmFyeQorICAgICAg
ICBzZWxmLl9yYXdfd3JpdGUodGVsbmV0bGliLklBQyArIHRlbG5ldGxpYi5XSUxMICsgdGVsbmV0
bGliLkJJTkFSWSkKKworICAgIENPTU1BTkRfVE9fSFVNQU5fUkVBREFCTEVfREVTQ1JJUFRJT04g
PSB7CisgICAgICAgIHRlbG5ldGxpYi5ETzogJ0RPJywKKyAgICAgICAgdGVsbmV0bGliLkRPTlQ6
ICdET05UJywKKyAgICAgICAgdGVsbmV0bGliLldJTEw6ICdXSUxMJywKKyAgICAgICAgdGVsbmV0
bGliLldPTlQ6ICdXT05UJywKKyAgICAgICAgdGVsbmV0bGliLlNCOiAnU0InLAorICAgICAgICB0
ZWxuZXRsaWIuU0U6ICdTRScsCisgICAgfQorCisgICAgZGVmIF9kaWRfcmVjZWl2ZV9vcHRpb24o
c2VsZiwgc29ja2V0LCBjb21tYW5kLCBvcHRpb24pOgorICAgICAgICBzZWxmLl90ZWxuZXQubXNn
KCdfZGlkX3JlY2VpdmVfb3B0aW9uOiAlcyAlcicsIHNlbGYuQ09NTUFORF9UT19IVU1BTl9SRUFE
QUJMRV9ERVNDUklQVElPTltjb21tYW5kXSwgb3B0aW9uKQorICAgICAgICBpZiBvcHRpb24gPT0g
dGVsbmV0bGliLlRUWVBFIGFuZCBjb21tYW5kID09IHRlbG5ldGxpYi5ETzoKKyAgICAgICAgICAg
ICMgRG8gbm90aGluZzsgd2FpdCBmb3IgdGhlIHN1Ym9wdGlvbiBuZWdvdGF0aW9uLgorICAgICAg
ICAgICAgcmV0dXJuCisgICAgICAgIGlmIG9wdGlvbiA9PSB0ZWxuZXRsaWIuTE9HT1VUOgorICAg
ICAgICAgICAgIyBJZ25vcmUgV0lMTCBMT0dPVVQgYXMgaXQgaXMgYW4gYWNrbm93bGVkZ21lbnQg
dGhhdCB0aGUgcmVtb3RlIHNpZGUgcmVjZWl2ZWQgRE8gTE9HT1VULgorICAgICAgICAgICAgIyBU
aGVyZSBpcyBubyBvYmxpZ2F0aW9uIGZvciB1cyB0byB3YWl0IGZvciB0aGlzIGFja25vd2xlZGdt
ZW50IGJlZm9yZSBjbG9zaW5nIHRoZSBjb25uZWN0aW9uCisgICAgICAgICAgICAjIHBlciA8aHR0
cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyNz4uCisgICAgICAgICAgICBhc3NlcnQgY29t
bWFuZCA9PSB0ZWxuZXRsaWIuV0lMTAorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIGlmIGNv
bW1hbmQgPT0gdGVsbmV0bGliLlNCOgorICAgICAgICAgICAgIyBEbyBub3RoaW5nOyB3YWl0IGZv
ciBzdWJvcHRpb24gZW5kIChTRSkuCisgICAgICAgICAgICBhc3NlcnQgb3B0aW9uID09IHRlbG5l
dGxpYi5OT09QVAorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIGlmIGNvbW1hbmQgPT0gdGVs
bmV0bGliLlNFOgorICAgICAgICAgICAgYXNzZXJ0IG9wdGlvbiA9PSB0ZWxuZXRsaWIuTk9PUFQK
KyAgICAgICAgICAgIGRhdGEgPSBzZWxmLl90ZWxuZXQucmVhZF9zYl9kYXRhKCkKKyAgICAgICAg
ICAgIHNlbGYuX3RlbG5ldC5tc2coJ1x0c2IgZGF0YTogJXInLCBkYXRhKQorICAgICAgICAgICAg
IyBXZSBhc3N1bWUgdGhhdCB0aGlzIGNvbW1hbmQgd2FzIHByZWNlZWRlZCBieSBjb21tYW5kOiBJ
QUMgRE8gVEVSTUlOQUwtVFlQRS4KKyAgICAgICAgICAgIGlmIGRhdGEgPT0gc2VsZi5fU0VORF9U
RVJNSU5BTF9UWVBFX0NPTU1BTkQ6CisgICAgICAgICAgICAgICAgc2VsZi5fcmF3X3dyaXRlKHRl
bG5ldGxpYi5JQUMgKyB0ZWxuZXRsaWIuU0IgKyB0ZWxuZXRsaWIuVFRZUEUgKyBzZWxmLl9URVJN
SU5BTF9UWVBFX0lTICsgc2VsZi5fREVGQVVMVF9URVJNSU5BTF9UWVBFICsgdGVsbmV0bGliLklB
QyArIHRlbG5ldGxpYi5TRSkKKyAgICAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgICAgIGFz
c2VydCBGYWxzZSAgIyBOb3QgcmVhY2hlZAorICAgICAgICBpZiBvcHRpb24gPT0gdGVsbmV0bGli
LkJJTkFSWSBhbmQgY29tbWFuZCBpbiAodGVsbmV0bGliLldJTEwsIHRlbG5ldGxpYi5XT05ULCB0
ZWxuZXRsaWIuRE8sIHRlbG5ldGxpYi5ET05UKToKKyAgICAgICAgICAgIHNlbGYuaXNfOF9iaXRf
Y2xlYW4gPSBjb21tYW5kIGluICh0ZWxuZXRsaWIuV0lMTCwgdGVsbmV0bGliLkRPKQorICAgICAg
ICAgICAgcmV0dXJuCisgICAgICAgIGlmIGNvbW1hbmQgaW4gKHRlbG5ldGxpYi5XSUxMLCB0ZWxu
ZXRsaWIuV09OVCk6CisgICAgICAgICAgICBzZWxmLl9yYXdfd3JpdGUodGVsbmV0bGliLklBQyAr
IHRlbG5ldGxpYi5ET05UICsgb3B0aW9uKQorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIGlm
IGNvbW1hbmQgaW4gKHRlbG5ldGxpYi5ETywgdGVsbmV0bGliLkRPTlQpOgorICAgICAgICAgICAg
c2VsZi5fcmF3X3dyaXRlKHRlbG5ldGxpYi5JQUMgKyB0ZWxuZXRsaWIuV09OVCArIG9wdGlvbikK
KyAgICAgICAgICAgIHJldHVybgorICAgICAgICBhc3NlcnQgRmFsc2UgICMgTm90IHJlYWNoZWQK
</data>

          </attachment>
      

    </bug>

</bugzilla>