<?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>218059</bug_id>
          
          <creation_ts>2020-10-21 16:45:13 -0700</creation_ts>
          <short_desc>[webkitpy] Use webkitcorepy&apos;s autoinstaller for chrome and gecko drivers</short_desc>
          <delta_ts>2020-10-22 15:13:29 -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 Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=214950</see_also>
          <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="Jonathan Bedard">jbedard</reporter>
          <assigned_to name="Jonathan Bedard">jbedard</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>dewei_zhu</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>slewis</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1700460</commentid>
    <comment_count>0</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-10-21 16:45:13 -0700</bug_when>
    <thetext>Chrome and Gecko distribute their drivers through some non-standard channels. All our autoinstaller code still works, we just aren&apos;t getting the archives from PyPi.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700462</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-21 16:45:27 -0700</bug_when>
    <thetext>&lt;rdar://problem/70551255&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700477</commentid>
    <comment_count>2</comment_count>
      <attachid>412050</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-10-21 17:09:24 -0700</bug_when>
    <thetext>Created attachment 412050
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700677</commentid>
    <comment_count>3</comment_count>
      <attachid>412108</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-10-22 09:26:12 -0700</bug_when>
    <thetext>Created attachment 412108
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700697</commentid>
    <comment_count>4</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-10-22 10:07:30 -0700</bug_when>
    <thetext>Both of these patches work, I&apos;m just not sure which approach I like better. One is more clear that web drivers are not actually pip packages, at the cost of making accessing the web drivers less portable, while the other pretends that web drivers are pip packages in exchange for making them portable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700807</commentid>
    <comment_count>5</comment_count>
      <attachid>412050</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2020-10-22 13:39:44 -0700</bug_when>
    <thetext>Comment on attachment 412050
Patch

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

&gt; Tools/Scripts/webkitpy/autoinstalled/chromedriver.py:37
&gt; +            response = requests.get(self.URL + &apos;LATEST_RELEASE&apos;)

Should we handle the case when requests.get throws an exception?

&gt; Tools/Scripts/webkitpy/autoinstalled/chromedriver.py:54
&gt; +            link=&apos;{url}{version}/chromedriver_{os}.zip&apos;.format(

How about making it one-liner, like:
link = &apos;{}{}/chromedriver_{}.zip&apos;.format(self.URL, version, os)

&gt; Tools/Scripts/webkitpy/autoinstalled/chromedriver.py:56
&gt; +                version=str(version),

str might not be required here with format()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700808</commentid>
    <comment_count>6</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2020-10-22 13:39:58 -0700</bug_when>
    <thetext>rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700837</commentid>
    <comment_count>7</comment_count>
      <attachid>412133</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-10-22 14:33:58 -0700</bug_when>
    <thetext>Created attachment 412133
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700856</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-22 15:13:14 -0700</bug_when>
    <thetext>Committed r268896: &lt;https://trac.webkit.org/changeset/268896&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 412133.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412050</attachid>
            <date>2020-10-21 17:09:24 -0700</date>
            <delta_ts>2020-10-22 14:33:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218059-20201021170923.patch</filename>
            <type>text/plain</type>
            <size>14050</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2ODg0NikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI2IEBACisyMDIwLTEwLTIxICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0cHldIFVzZSB3ZWJraXRjb3JlcHkncyBhdXRvaW5zdGFsbGVy
IGZvciBjaHJvbWUgYW5kIGdlY2tvIGRyaXZlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODA1OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzA1
NTEyNTU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L2F1dG9pbnN0YWxsZWQ6IEFkZGVkLgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvYXV0b2luc3RhbGxlZC9fX2luaXRfXy5weTogQWRkZWQuCisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9hdXRvaW5zdGFsbGVkL2Nocm9tZWRyaXZlci5weTogQWRkZWQuCisg
ICAgICAgIChDaHJvbWVEcml2ZXJQYWNrYWdlKTogU3BlY2lhbCBsaXN0aW5nIHJ1bGVzIGZvciB0
aGUgY2hyb21lIGRyaXZlci4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2F1dG9pbnN0YWxs
ZWQvZ2Vja29kcml2ZXIucHk6IEFkZGVkLgorICAgICAgICAoR2Vja29Ecml2ZXJQYWNrYWdlKTog
U3BlY2lhbCBsaXN0aW5nIHJ1bGVzIGZvciB0aGUgR2Vja29Ecml2ZXIuCisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL3V0aWxzLnB5OgorICAgICAgICAoZ2V0X2Ry
aXZlcl9iaW5hcnlfcGF0aCk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90aGlyZHBhcnR5
L19faW5pdF9fLnB5OgorICAgICAgICAoQXV0b2luc3RhbGxJbXBvcnRIb29rLmZpbmRfbW9kdWxl
KTogUmVtb3ZlIENocm9tZSBhbmQgR2Vja28gZHJpdmVycy4KKyAgICAgICAgKEF1dG9pbnN0YWxs
SW1wb3J0SG9vay5pbnN0YWxsX2Nocm9tZWRyaXZlcik6IERlbGV0ZWQuCisgICAgICAgIChBdXRv
aW5zdGFsbEltcG9ydEhvb2suaW5zdGFsbF9nZWNrb2RyaXZlcik6IERlbGV0ZWQuCisgICAgICAg
IChnZXRfZHJpdmVyX2ZpbGVuYW1lKTogRGVsZXRlZC4KKyAgICAgICAgKGdldF9vc19pbmZvKTog
RGVsZXRlZC4KKwogMjAyMC0xMC0yMSAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5j
b20+CiAKICAgICAgICAgW3dlYmtpdHB5XSBVc2Ugd2Via2l0Y29yZXB5J3MgYXV0b2luc3RhbGxl
ciBmb3IgYmVhdXRpZnVsc291cApJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9hdXRvaW5z
dGFsbGVkL19faW5pdF9fLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
YXV0b2luc3RhbGxlZC9fX2luaXRfXy5weQkobm9uZXhpc3RlbnQpCisrKyBUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2F1dG9pbnN0YWxsZWQvX19pbml0X18ucHkJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSwxMyBAQAorIyBSZXF1aXJlZCBmb3IgUHl0aG9uIHRvIHNlYXJjaCB0aGlzIGRpcmVjdG9y
eSBmb3IgbW9kdWxlIGZpbGVzCisKKyMgS2VlcCB0aGlzIGZpbGUgZnJlZSBvZiBhbnkgY29kZSBv
ciBpbXBvcnQgc3RhdGVtZW50cyB0aGF0IGNvdWxkCisjIGNhdXNlIGVpdGhlciBhbiBlcnJvciB0
byBvY2N1ciBvciBhIGxvZyBtZXNzYWdlIHRvIGJlIGxvZ2dlZC4KKyMgVGhpcyBlbnN1cmVzIHRo
YXQgY2FsbGluZyBjb2RlIGNhbiBpbXBvcnQgaW5pdGlhbGl6YXRpb24gY29kZSBmcm9tCisjIHdl
YmtpdHB5IGJlZm9yZSBhbnkgZXJyb3JzIG9yIGxvZyBtZXNzYWdlcyBkdWUgdG8gY29kZSBpbiB0
aGlzIGZpbGUuCisjIEluaXRpYWxpemF0aW9uIGNvZGUgY2FuIGluY2x1ZGUgdGhpbmdzIGxpa2Ug
dmVyc2lvbi1jaGVja2luZyBjb2RlIGFuZAorIyBsb2dnaW5nIGNvbmZpZ3VyYXRpb24gY29kZS4K
KyMKKyMgV2UgZG8gbm90IGV4ZWN1dGUgYW55IHZlcnNpb24tY2hlY2tpbmcgY29kZSBvciBsb2dn
aW5nIGNvbmZpZ3VyYXRpb24KKyMgY29kZSBpbiB0aGlzIGZpbGUgc28gdGhhdCBjYWxsZXJzIGNh
biBvcHQtaW4gYXMgdGhleSB3YW50LiAgVGhpcyBhbHNvCisjIGFsbG93cyBkaWZmZXJlbnQgY2Fs
bGVycyB0byBjaG9vc2UgZGlmZmVyZW50IGluaXRpYWxpemF0aW9uIGNvZGUsCisjIGFzIG5lY2Vz
c2FyeS4KSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYXV0b2luc3RhbGxlZC9jaHJvbWVk
cml2ZXIucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9hdXRvaW5zdGFs
bGVkL2Nocm9tZWRyaXZlci5weQkobm9uZXhpc3RlbnQpCisrKyBUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2F1dG9pbnN0YWxsZWQvY2hyb21lZHJpdmVyLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsNjUgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyMgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAor
IyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorIyBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUworIyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisjIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorIyBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworIyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IHBs
YXRmb3JtCitpbXBvcnQgcmVxdWVzdHMKKworZnJvbSB3ZWJraXRzY21weSBpbXBvcnQgUGFja2Fn
ZSwgVmVyc2lvbgorCisKK2NsYXNzIENocm9tZURyaXZlclBhY2thZ2UoUGFja2FnZSk6CisgICAg
VVJMID0gJ2h0dHBzOi8vY2hyb21lZHJpdmVyLnN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vJworCisg
ICAgZGVmIF9faW5pdF9fKHNlbGYsIHZlcnNpb249Tm9uZSk6CisgICAgICAgIHN1cGVyKENocm9t
ZURyaXZlclBhY2thZ2UsIHNlbGYpLl9faW5pdF9fKCdjaHJvbWVkcml2ZXInLCB2ZXJzaW9uPXZl
cnNpb24pCisKKyAgICBkZWYgYXJjaGl2ZXMoc2VsZik6CisgICAgICAgIGlmIHNlbGYudmVyc2lv
biBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHJlc3BvbnNlID0gcmVxdWVzdHMuZ2V0KHNlbGYu
VVJMICsgJ0xBVEVTVF9SRUxFQVNFJykKKyAgICAgICAgICAgIGlmIHJlc3BvbnNlLnN0YXR1c19j
b2RlICE9IDIwMDoKKyAgICAgICAgICAgICAgICByZXR1cm4gW10KKyAgICAgICAgICAgIHZlcnNp
b24gPSBWZXJzaW9uLmZyb21fc3RyaW5nKHJlc3BvbnNlLnRleHQucnN0cmlwKCkpCisgICAgICAg
IGVsc2U6CisgICAgICAgICAgICB2ZXJzaW9uID0gc2VsZi52ZXJzaW9uCisKKyAgICAgICAgb3Nf
bmFtZSA9IHBsYXRmb3JtLnN5c3RlbSgpCisgICAgICAgIGlmIG9zX25hbWUgPT0gJ0xpbnV4JzoK
KyAgICAgICAgICAgIG9zID0gJ2xpbnV4e30nLmZvcm1hdCgnNjQnIGlmIHBsYXRmb3JtLm1hY2hp
bmUoKVstMjpdID09ICc2NCcgZWxzZSAnJykKKyAgICAgICAgZWxpZiBvc19uYW1lID09ICdEYXJ3
aW4nOgorICAgICAgICAgICAgb3MgPSAnbWFjNjQnCisgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICByZXR1cm4gW10KKworICAgICAgICByZXR1cm4gW1BhY2thZ2UuQXJjaGl2ZSgKKyAgICAgICAg
ICAgIHNlbGYubmFtZSwKKyAgICAgICAgICAgIGxpbms9J3t1cmx9e3ZlcnNpb259L2Nocm9tZWRy
aXZlcl97b3N9LnppcCcuZm9ybWF0KAorICAgICAgICAgICAgICAgIHVybD1zZWxmLlVSTCwKKyAg
ICAgICAgICAgICAgICB2ZXJzaW9uPXN0cih2ZXJzaW9uKSwKKyAgICAgICAgICAgICAgICBvcz1v
cywKKyAgICAgICAgICAgICksIHZlcnNpb249dmVyc2lvbiwKKyAgICAgICAgICAgIGV4dGVuc2lv
bj0nemlwJywKKyAgICAgICAgKV0KKworCitwYWNrYWdlID0gQ2hyb21lRHJpdmVyUGFja2FnZSh2
ZXJzaW9uPVZlcnNpb24oODYsIDAsIDQyNDAsIDIyKSkKK3BhY2thZ2UuaW5zdGFsbCgpCitleGVj
dXRhYmxlID0gcGFja2FnZS5sb2NhdGlvbgpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9h
dXRvaW5zdGFsbGVkL2dlY2tvZHJpdmVyLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvYXV0b2luc3RhbGxlZC9nZWNrb2RyaXZlci5weQkobm9uZXhpc3RlbnQpCisrKyBU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2F1dG9pbnN0YWxsZWQvZ2Vja29kcml2ZXIucHkJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSw4MSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFy
ZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorIyBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
CisjIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTCisjIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyMgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OCisjIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisj
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorCitpbXBvcnQgcGxhdGZvcm0KK2ltcG9ydCByZXF1ZXN0cworCitmcm9tIHdlYmtpdHNj
bXB5IGltcG9ydCBQYWNrYWdlLCBWZXJzaW9uCisKKworY2xhc3MgR2Vja29Ecml2ZXJQYWNrYWdl
KFBhY2thZ2UpOgorICAgIFVSTCA9ICdodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL21vemls
bGEvZ2Vja29kcml2ZXIvcmVsZWFzZXMnCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgdmVyc2lv
bj1Ob25lKToKKyAgICAgICAgc3VwZXIoR2Vja29Ecml2ZXJQYWNrYWdlLCBzZWxmKS5fX2luaXRf
XygnZ2Vja29kcml2ZXInLCB2ZXJzaW9uPXZlcnNpb24pCisKKyAgICBkZWYgYXJjaGl2ZXMoc2Vs
Zik6CisgICAgICAgIHJlc3BvbnNlID0gcmVxdWVzdHMuZ2V0KHNlbGYuVVJMKQorICAgICAgICBp
ZiByZXNwb25zZS5zdGF0dXNfY29kZSAhPSAyMDA6CisgICAgICAgICAgICByZXR1cm4gW10KKwor
ICAgICAgICBvc19uYW1lID0gcGxhdGZvcm0uc3lzdGVtKCkKKyAgICAgICAgaWYgb3NfbmFtZSA9
PSAnRGFyd2luJzoKKyAgICAgICAgICAgIG9zID0gJ21hY29zJworICAgICAgICBlbHNlOgorICAg
ICAgICAgICAgb3MgPSAne317fScuZm9ybWF0KG9zX25hbWUsIHBsYXRmb3JtLm1hY2hpbmUoKVst
MjpdKQorCisgICAgICAgIGFyY2hpdmVzID0gW10KKyAgICAgICAgZm9yIGNhbmRpZGF0ZSBpbiBy
ZXZlcnNlZChyZXNwb25zZS5qc29uKCkpOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAg
ICAgIHZlcnNpb24gPSBWZXJzaW9uLmZyb21fc3RyaW5nKGNhbmRpZGF0ZS5nZXQoJ3RhZ19uYW1l
Jykuc3BsaXQoJ3YnKVstMV0pCisgICAgICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKKyAgICAg
ICAgICAgICAgICBjb250aW51ZQorCisgICAgICAgICAgICBmb3IgYXNzZXQgaW4gY2FuZGlkYXRl
LmdldCgnYXNzZXRzJywgW10pOgorICAgICAgICAgICAgICAgIHVybCA9IGFzc2V0LmdldCgnYnJv
d3Nlcl9kb3dubG9hZF91cmwnKQorICAgICAgICAgICAgICAgIGlmIG5vdCB1cmw6CisgICAgICAg
ICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgaWYgb3Mgbm90IGluIHVybDoK
KyAgICAgICAgICAgICAgICAgICAgY29udGludWUKKworICAgICAgICAgICAgICAgIGV4dGVuc2lv
biA9ICd6aXAnIGlmIHVybC5lbmRzd2l0aCgnLnppcCcpIGVsc2UgJ3Rhci5neicKKyAgICAgICAg
ICAgICAgICBpZiBub3QgdXJsLmVuZHN3aXRoKGV4dGVuc2lvbik6CisgICAgICAgICAgICAgICAg
ICAgIGNvbnRpbnVlCisKKyAgICAgICAgICAgICAgICBpZiBzZWxmLnZlcnNpb24gYW5kIHZlcnNp
b24gbm90IGluIHNlbGYudmVyc2lvbjoKKyAgICAgICAgICAgICAgICAgICAgY29udGludWUKKwor
ICAgICAgICAgICAgICAgIGFyY2hpdmVzLmFwcGVuZCgKKyAgICAgICAgICAgICAgICAgICAgUGFj
a2FnZS5BcmNoaXZlKAorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5uYW1lLAorICAgICAg
ICAgICAgICAgICAgICAgICAgbGluaz11cmwsCisgICAgICAgICAgICAgICAgICAgICAgICB2ZXJz
aW9uPXZlcnNpb24sCisgICAgICAgICAgICAgICAgICAgICAgICBleHRlbnNpb249ZXh0ZW5zaW9u
LAorICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgKQorCisgICAgICAgIHJl
dHVybiBhcmNoaXZlcworCisKK3BhY2thZ2UgPSBHZWNrb0RyaXZlclBhY2thZ2UodmVyc2lvbj1W
ZXJzaW9uKDAsIDI3LCAwKSkKK3BhY2thZ2UuaW5zdGFsbCgpCitleGVjdXRhYmxlID0gcGFja2Fn
ZS5sb2NhdGlvbgpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVy
L3V0aWxzLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJr
X3J1bm5lci91dGlscy5weQkocmV2aXNpb24gMjY4ODQ2KQorKysgVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9iZW5jaG1hcmtfcnVubmVyL3V0aWxzLnB5CSh3b3JraW5nIGNvcHkpCkBAIC01MiwxNSAr
NTIsMTEgQEAgZGVmIGZvcmNlX3JlbW92ZShwYXRoKToKIEBtZW1vaXplZAogZGVmIGdldF9kcml2
ZXJfYmluYXJ5X3BhdGgoYnJvd3Nlcl9uYW1lKToKICAgICBpZiBicm93c2VyX25hbWUuc3RhcnRz
d2l0aCgnY2hyb21lJyk6Ci0gICAgICAgIGltcG9ydCB3ZWJraXRweS50aGlyZHBhcnR5LmF1dG9p
bnN0YWxsZWQuY2hyb21lZHJpdmVyCi0gICAgICAgIGRyaXZlcl9pbml0X2ZpbGUgPSB3ZWJraXRw
eS50aGlyZHBhcnR5LmF1dG9pbnN0YWxsZWQuY2hyb21lZHJpdmVyLl9fZmlsZV9fCi0gICAgICAg
IGRyaXZlcl9leGVjdXRhYmxlID0gb3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShvcy5wYXRo
LnJlYWxwYXRoKGRyaXZlcl9pbml0X2ZpbGUpKSwgJ2Nocm9tZWRyaXZlcicpCi0gICAgICAgIHJl
dHVybiBkcml2ZXJfZXhlY3V0YWJsZQorICAgICAgICBmcm9tIHdlYmtpdHB5LmF1dG9pbnN0YWxs
ZWQgaW1wb3J0IGNocm9tZWRyaXZlcgorICAgICAgICByZXR1cm4gY2hyb21lZHJpdmVyLmV4ZWN1
dGFibGUKICAgICBlbGlmIGJyb3dzZXJfbmFtZS5zdGFydHN3aXRoKCdmaXJlZm94Jyk6Ci0gICAg
ICAgIGltcG9ydCB3ZWJraXRweS50aGlyZHBhcnR5LmF1dG9pbnN0YWxsZWQuZ2Vja29kcml2ZXIK
LSAgICAgICAgZHJpdmVyX2luaXRfZmlsZSA9IHdlYmtpdHB5LnRoaXJkcGFydHkuYXV0b2luc3Rh
bGxlZC5nZWNrb2RyaXZlci5fX2ZpbGVfXwotICAgICAgICBkcml2ZXJfZXhlY3V0YWJsZSA9IG9z
LnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUob3MucGF0aC5yZWFscGF0aChkcml2ZXJfaW5pdF9m
aWxlKSksICdnZWNrb2RyaXZlcicpCi0gICAgICAgIHJldHVybiBkcml2ZXJfZXhlY3V0YWJsZQor
ICAgICAgICBmcm9tIHdlYmtpdHB5LmF1dG9pbnN0YWxsZWQgaW1wb3J0IGdlY2tvZHJpdmVyCisg
ICAgICAgIHJldHVybiBnZWNrb2RyaXZlci5leGVjdXRhYmxlCiAKIAogZGVmIHdyaXRlX2RlZmF1
bHRzKGRvbWFpbiwga2V5LCB2YWx1ZSk6CkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Ro
aXJkcGFydHkvX19pbml0X18ucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90aGlyZHBhcnR5L19faW5pdF9fLnB5CShyZXZpc2lvbiAyNjg4NDYpCisrKyBUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L3RoaXJkcGFydHkvX19pbml0X18ucHkJKHdvcmtpbmcgY29weSkKQEAgLTMz
LDEzICszMywxMCBAQCBpbXBvcnQgcmUKIGltcG9ydCBzeXMKIAogaWYgc3lzLnZlcnNpb25faW5m
byA+ICgzLCAwKToKLSAgICBmcm9tIHVybGxpYi5lcnJvciBpbXBvcnQgVVJMRXJyb3IKICAgICBm
cm9tIHVybGxpYi5yZXF1ZXN0IGltcG9ydCB1cmxvcGVuCiBlbHNlOgotICAgIGZyb20gdXJsbGli
MiBpbXBvcnQgVVJMRXJyb3IsIHVybG9wZW4KKyAgICBmcm9tIHVybGxpYjIgaW1wb3J0IHVybG9w
ZW4KIAotZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgbmFtZWR0dXBsZQotZnJvbSBkaXN0dXRpbHMg
aW1wb3J0IHNwYXduCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uYXV0b2luc3RhbGwgaW1w
b3J0IEF1dG9JbnN0YWxsZXIKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5maWxlc3lzdGVt
IGltcG9ydCBGaWxlU3lzdGVtCiBmcm9tIHdlYmtpdGNvcmVweSBpbXBvcnQgQXV0b0luc3RhbGwK
QEAgLTQ3LDkgKzQ0LDYgQEAgZnJvbSB3ZWJraXRjb3JlcHkgaW1wb3J0IEF1dG9JbnN0YWxsCiBf
VEhJUkRQQVJUWV9ESVIgPSBvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pCiBfQVVUT0lOU1RBTExF
RF9ESVIgPSBvcy5wYXRoLmpvaW4oX1RISVJEUEFSVFlfRElSLCAiYXV0b2luc3RhbGxlZCIpCiAK
LUNIUk9NRV9EUklWRVJfVVJMID0gImh0dHA6Ly9jaHJvbWVkcml2ZXIuc3RvcmFnZS5nb29nbGVh
cGlzLmNvbS8iCi1GSVJFRk9YX1JFTEVBU0VTX1VSTCA9ICJodHRwczovL2FwaS5naXRodWIuY29t
L3JlcG9zL21vemlsbGEvZ2Vja29kcml2ZXIvcmVsZWFzZXMiCi0KICMgUHV0dGluZyB0aGUgYXV0
b2luc3RhbGwgY29kZSBpbnRvIHdlYmtpdHB5L3RoaXJkcGFydHkvX19pbml0X18ucHkKICMgZW5z
dXJlcyB0aGF0IG5vIGF1dG9pbnN0YWxsaW5nIG9jY3VycyB1bnRpbCBhIGNhbGxlciBpbXBvcnRz
IGZyb20KICMgd2Via2l0cHkudGhpcmRwYXJ0eS4gIFRoaXMgaXMgdXNlZnVsIGlmIHRoZSBjYWxs
ZXIgd2FudHMgdG8gY29uZmlndXJlCkBAIC05NywxMCArOTEsNiBAQCBjbGFzcyBBdXRvaW5zdGFs
bEltcG9ydEhvb2sob2JqZWN0KToKICAgICAgICAgICAgIHNlbGYuX2luc3RhbGxfYnVpbGRib3Qo
KQogICAgICAgICBlbGlmICcudHdpc3RlZF8xNV81XzAnIGluIGZ1bGxuYW1lOgogICAgICAgICAg
ICAgc2VsZi5faW5zdGFsbF90d2lzdGVkXzE1XzVfMCgpCi0gICAgICAgIGVsaWYgJy5jaHJvbWVk
cml2ZXInIGluIGZ1bGxuYW1lOgotICAgICAgICAgICAgc2VsZi5pbnN0YWxsX2Nocm9tZWRyaXZl
cigpCi0gICAgICAgIGVsaWYgJy5nZWNrb2RyaXZlcicgaW4gZnVsbG5hbWU6Ci0gICAgICAgICAg
ICBzZWxmLmluc3RhbGxfZ2Vja29kcml2ZXIoKQogCiAgICAgIyBhdXRvaW5zdGFsbGVkLmJ1aWxk
Ym90IGlzIHVzZWQgYnkgQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcv
bWFzdGVyY2ZnX3VuaXR0ZXN0LnB5CiAgICAgIyBhbmQgc2hvdWxkIGlkZWFsbHkgbWF0Y2ggdGhl
IHZlcnNpb24gb2YgQnVpbGRCb3QgdXNlZCBhdCBidWlsZC53ZWJraXQub3JnLgpAQCAtMTQxLDIy
ICsxMzEsNiBAQCBjbGFzcyBBdXRvaW5zdGFsbEltcG9ydEhvb2sob2JqZWN0KToKICAgICAgICAg
ICAgICAgICByZXR1cm4gRmFsc2UKICAgICAgICAgcmV0dXJuIFRydWUKIAotICAgIGRlZiBpbnN0
YWxsX2Nocm9tZWRyaXZlcihzZWxmKToKLSAgICAgICAgZmlsZW5hbWVfcG9zdGZpeCA9IGdldF9k
cml2ZXJfZmlsZW5hbWUoKS5jaHJvbWUKLSAgICAgICAgaWYgZmlsZW5hbWVfcG9zdGZpeCAhPSAi
dW5zdXBwb3J0ZWQiOgotICAgICAgICAgICAgdmVyc2lvbiA9IHVybG9wZW4oQ0hST01FX0RSSVZF
Ul9VUkwgKyAnTEFURVNUX1JFTEVBU0UnKS5yZWFkKCkuc3RyaXAoKQotICAgICAgICAgICAgZnVs
bF9jaHJvbWVfdXJsID0gIntiYXNlX3VybH17dmVyc2lvbn0vY2hyb21lZHJpdmVyX3tvc30uemlw
Ii5mb3JtYXQoYmFzZV91cmw9Q0hST01FX0RSSVZFUl9VUkwsIHZlcnNpb249dmVyc2lvbiwgb3M9
ZmlsZW5hbWVfcG9zdGZpeCkKLSAgICAgICAgICAgIHNlbGYuaW5zdGFsbF9iaW5hcnkoZnVsbF9j
aHJvbWVfdXJsLCAnY2hyb21lZHJpdmVyJykKLQotICAgIGRlZiBpbnN0YWxsX2dlY2tvZHJpdmVy
KHNlbGYpOgotICAgICAgICBmaWxlbmFtZV9wb3N0Zml4ID0gZ2V0X2RyaXZlcl9maWxlbmFtZSgp
LmZpcmVmb3gKLSAgICAgICAgaWYgZmlsZW5hbWVfcG9zdGZpeCAhPSAidW5zdXBwb3J0ZWQiOgot
ICAgICAgICAgICAgZmlyZWZveF9yZWxlYXNlc19ibG9iID0gdXJsb3BlbihGSVJFRk9YX1JFTEVB
U0VTX1VSTCkKLSAgICAgICAgICAgIGZpcmVmb3hfcmVsZWFzZXNfbGluZV9zZXBhcmF0ZWQgPSBq
c29uLmR1bXBzKGpzb24ubG9hZChmaXJlZm94X3JlbGVhc2VzX2Jsb2IpLCBpbmRlbnQ9MCkuc3Ry
aXAoKQotICAgICAgICAgICAgYWxsX2ZpcmVmb3hfcmVsZWFzZV91cmxzID0gIlxuIi5qb2luKHJl
LmZpbmRhbGwocicuKmJyb3dzZXJfZG93bmxvYWRfdXJsLionLCBmaXJlZm94X3JlbGVhc2VzX2xp
bmVfc2VwYXJhdGVkKSkKLSAgICAgICAgICAgIGZ1bGxfZmlyZWZveF91cmwgPSByZS5maW5kYWxs
KHInLiolcy4qJyAlIGZpbGVuYW1lX3Bvc3RmaXgsIGFsbF9maXJlZm94X3JlbGVhc2VfdXJscylb
MF0uc3BsaXQoJyInKVszXQotICAgICAgICAgICAgc2VsZi5pbnN0YWxsX2JpbmFyeShmdWxsX2Zp
cmVmb3hfdXJsLCAnZ2Vja29kcml2ZXInKQotCiAgICAgZGVmIF9pbnN0YWxsKHNlbGYsIHVybCwg
dXJsX3N1YnBhdGg9Tm9uZSwgdGFyZ2V0X25hbWU9Tm9uZSk6CiAgICAgICAgIGluc3RhbGxlciA9
IEF1dG9JbnN0YWxsZXIodGFyZ2V0X2Rpcj1fQVVUT0lOU1RBTExFRF9ESVIpCiAgICAgICAgIHJl
dHVybiBpbnN0YWxsZXIuaW5zdGFsbCh1cmw9dXJsLCB1cmxfc3VicGF0aD11cmxfc3VicGF0aCwg
dGFyZ2V0X25hbWU9dGFyZ2V0X25hbWUpCkBAIC0xODQsMjEgKzE1OCwzIEBAIGRlZiBhdXRvaW5z
dGFsbF9ldmVyeXRoaW5nKCk6CiAgICAgaW5zdGFsbF9tZXRob2RzID0gW21ldGhvZCBmb3IgbWV0
aG9kIGluIGRpcihfaG9vay5fX2NsYXNzX18pIGlmIG1ldGhvZC5zdGFydHN3aXRoKCdfaW5zdGFs
bF8nKV0KICAgICBmb3IgbWV0aG9kIGluIGluc3RhbGxfbWV0aG9kczoKICAgICAgICAgZ2V0YXR0
cihfaG9vaywgbWV0aG9kKSgpCi0KLWRlZiBnZXRfZHJpdmVyX2ZpbGVuYW1lKCk6Ci0gICAgb3Nf
bmFtZSwgb3NfdHlwZSA9IGdldF9vc19pbmZvKCkKLSAgICBjaHJvbWVfb3MsIGZpbGVmb3hfb3Mg
PSAndW5zdXBwb3J0ZWQnLCAndW5zdXBwb3J0ZWQnCi0gICAgaWYgb3NfbmFtZSA9PSAnTGludXgn
IGFuZCBvc190eXBlID09ICc2NCc6Ci0gICAgICAgIGNocm9tZV9vcywgZmlyZWZveF9vcyA9ICds
aW51eDY0JywgJ2xpbnV4NjQnCi0gICAgZWxpZiBvc19uYW1lID09ICdMaW51eCc6Ci0gICAgICAg
IGNocm9tZV9vcywgZmlyZWZveF9vcyA9ICdsaW51eDMyJywgJ2xpbnV4MzInCi0gICAgZWxpZiBv
c19uYW1lID09ICdEYXJ3aW4nOgotICAgICAgICBjaHJvbWVfb3MsIGZpcmVmb3hfb3MgPSAnbWFj
NjQnLCAnbWFjb3MnCi0gICAgRHJpdmVyRmlsZW5hbWVGb3JCcm93c2VyID0gbmFtZWR0dXBsZSgn
RHJpdmVyRmlsZW5hbWVGb3JCcm93c2VyJywgWydjaHJvbWUnLCAnZmlyZWZveCddKQotICAgIHJl
dHVybiBEcml2ZXJGaWxlbmFtZUZvckJyb3dzZXIoY2hyb21lX29zLCBmaXJlZm94X29zKQotCi1k
ZWYgZ2V0X29zX2luZm8oKToKLSAgICBpbXBvcnQgcGxhdGZvcm0KLSAgICBvc19uYW1lID0gcGxh
dGZvcm0uc3lzdGVtKCkKLSAgICBvc190eXBlID0gcGxhdGZvcm0ubWFjaGluZSgpWy0yOl0KLSAg
ICByZXR1cm4gKG9zX25hbWUsIG9zX3R5cGUpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412108</attachid>
            <date>2020-10-22 09:26:12 -0700</date>
            <delta_ts>2020-10-22 13:51:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218059-20201022092611.patch</filename>
            <type>text/plain</type>
            <size>11152</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2ODg2OCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIyIEBACisyMDIwLTEwLTIyICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0cHldIFVzZSB3ZWJraXRjb3JlcHkncyBhdXRvaW5zdGFsbGVy
IGZvciBjaHJvbWUgYW5kIGdlY2tvIGRyaXZlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODA1OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzA1
NTEyNTU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvdXRpbHMucHk6CisgICAgICAgIChD
aHJvbWVEcml2ZXJQYWNrYWdlKTogU3BlY2lhbCBsaXN0aW5nIHJ1bGVzIGZvciB0aGUgY2hyb21l
IGRyaXZlci4KKyAgICAgICAgKEdlY2tvRHJpdmVyUGFja2FnZSk6IFNwZWNpYWwgbGlzdGluZyBy
dWxlcyBmb3IgdGhlIEdlY2tvRHJpdmVyLgorICAgICAgICAoZ2V0X2RyaXZlcl9iaW5hcnlfcGF0
aCk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90aGlyZHBhcnR5L19faW5pdF9fLnB5Ogor
ICAgICAgICAoQXV0b2luc3RhbGxJbXBvcnRIb29rLmZpbmRfbW9kdWxlKTogUmVtb3ZlIENocm9t
ZSBhbmQgR2Vja28gZHJpdmVycy4KKyAgICAgICAgKEF1dG9pbnN0YWxsSW1wb3J0SG9vay5pbnN0
YWxsX2Nocm9tZWRyaXZlcik6IERlbGV0ZWQuCisgICAgICAgIChBdXRvaW5zdGFsbEltcG9ydEhv
b2suaW5zdGFsbF9nZWNrb2RyaXZlcik6IERlbGV0ZWQuCisgICAgICAgIChnZXRfZHJpdmVyX2Zp
bGVuYW1lKTogRGVsZXRlZC4KKyAgICAgICAgKGdldF9vc19pbmZvKTogRGVsZXRlZC4KKwogMjAy
MC0xMC0yMiAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgogCiAgICAgICAgIExldCB3
ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbigpIHJldHVybiB0cnVlIHdoZW4gYSB2aWRlbyBlbGVt
ZW504oCZcyBmdWxsc2NyZWVuIG1vZGUgaXMgbm90IFZpZGVvRnVsbHNjcmVlbk1vZGVOb25lCklu
ZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvdXRpbHMucHkKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL3V0aWxz
LnB5CShyZXZpc2lvbiAyNjg4NjcpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFy
a19ydW5uZXIvdXRpbHMucHkJKHdvcmtpbmcgY29weSkKQEAgLTEsMTcgKzEsMTI2IEBACiAjIS91
c3IvYmluL2VudiBweXRob24KIAorIyBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6
CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorIyBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisjIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTCisjIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyMgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OCisjIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisjIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
CiBpbXBvcnQgaW1wCiBpbXBvcnQgaW5zcGVjdAogaW1wb3J0IGxvZ2dpbmcKIGltcG9ydCBvcwor
aW1wb3J0IHBsYXRmb3JtCitpbXBvcnQgcmVxdWVzdHMKIGltcG9ydCBzaHV0aWwKIAogZnJvbSB3
ZWJraXRweS5jb21tb24ubWVtb2l6ZWQgaW1wb3J0IG1lbW9pemVkCitmcm9tIHdlYmtpdHNjbXB5
IGltcG9ydCBQYWNrYWdlLCBWZXJzaW9uCiAKIAogX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9f
bmFtZV9fKQogCiAKK2NsYXNzIENocm9tZURyaXZlclBhY2thZ2UoUGFja2FnZSk6CisgICAgVVJM
ID0gJ2h0dHBzOi8vY2hyb21lZHJpdmVyLnN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vJworCisgICAg
ZGVmIF9faW5pdF9fKHNlbGYsIHZlcnNpb249Tm9uZSk6CisgICAgICAgIHN1cGVyKENocm9tZURy
aXZlclBhY2thZ2UsIHNlbGYpLl9faW5pdF9fKCdjaHJvbWVkcml2ZXInLCB2ZXJzaW9uPXZlcnNp
b24pCisKKyAgICBkZWYgYXJjaGl2ZXMoc2VsZik6CisgICAgICAgIGlmIHNlbGYudmVyc2lvbiBp
cyBub3QgTm9uZToKKyAgICAgICAgICAgIHJlc3BvbnNlID0gcmVxdWVzdHMuZ2V0KHNlbGYuVVJM
ICsgJ0xBVEVTVF9SRUxFQVNFJykKKyAgICAgICAgICAgIGlmIHJlc3BvbnNlLnN0YXR1c19jb2Rl
ICE9IDIwMDoKKyAgICAgICAgICAgICAgICByZXR1cm4gW10KKyAgICAgICAgICAgIHZlcnNpb24g
PSBWZXJzaW9uLmZyb21fc3RyaW5nKHJlc3BvbnNlLnRleHQucnN0cmlwKCkpCisgICAgICAgIGVs
c2U6CisgICAgICAgICAgICB2ZXJzaW9uID0gc2VsZi52ZXJzaW9uCisKKyAgICAgICAgb3NfbmFt
ZSA9IHBsYXRmb3JtLnN5c3RlbSgpCisgICAgICAgIGlmIG9zX25hbWUgPT0gJ0xpbnV4JzoKKyAg
ICAgICAgICAgIG9zID0gJ2xpbnV4e30nLmZvcm1hdCgnNjQnIGlmIHBsYXRmb3JtLm1hY2hpbmUo
KVstMjpdID09ICc2NCcgZWxzZSAnJykKKyAgICAgICAgZWxpZiBvc19uYW1lID09ICdEYXJ3aW4n
OgorICAgICAgICAgICAgb3MgPSAnbWFjNjQnCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBy
ZXR1cm4gW10KKworICAgICAgICByZXR1cm4gW1BhY2thZ2UuQXJjaGl2ZSgKKyAgICAgICAgICAg
IHNlbGYubmFtZSwKKyAgICAgICAgICAgIGxpbms9J3t1cmx9e3ZlcnNpb259L2Nocm9tZWRyaXZl
cl97b3N9LnppcCcuZm9ybWF0KAorICAgICAgICAgICAgICAgIHVybD1zZWxmLlVSTCwKKyAgICAg
ICAgICAgICAgICB2ZXJzaW9uPXN0cih2ZXJzaW9uKSwKKyAgICAgICAgICAgICAgICBvcz1vcywK
KyAgICAgICAgICAgICksIHZlcnNpb249dmVyc2lvbiwKKyAgICAgICAgICAgIGV4dGVuc2lvbj0n
emlwJywKKyAgICAgICAgKV0KKworCitjbGFzcyBHZWNrb0RyaXZlclBhY2thZ2UoUGFja2FnZSk6
CisgICAgVVJMID0gJ2h0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvbW96aWxsYS9nZWNrb2Ry
aXZlci9yZWxlYXNlcycKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCB2ZXJzaW9uPU5vbmUpOgor
ICAgICAgICBzdXBlcihHZWNrb0RyaXZlclBhY2thZ2UsIHNlbGYpLl9faW5pdF9fKCdnZWNrb2Ry
aXZlcicsIHZlcnNpb249dmVyc2lvbikKKworICAgIGRlZiBhcmNoaXZlcyhzZWxmKToKKyAgICAg
ICAgcmVzcG9uc2UgPSByZXF1ZXN0cy5nZXQoc2VsZi5VUkwpCisgICAgICAgIGlmIHJlc3BvbnNl
LnN0YXR1c19jb2RlICE9IDIwMDoKKyAgICAgICAgICAgIHJldHVybiBbXQorCisgICAgICAgIG9z
X25hbWUgPSBwbGF0Zm9ybS5zeXN0ZW0oKQorICAgICAgICBpZiBvc19uYW1lID09ICdEYXJ3aW4n
OgorICAgICAgICAgICAgb3MgPSAnbWFjb3MnCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBv
cyA9ICd7fXt9Jy5mb3JtYXQob3NfbmFtZSwgcGxhdGZvcm0ubWFjaGluZSgpWy0yOl0pCisKKyAg
ICAgICAgYXJjaGl2ZXMgPSBbXQorICAgICAgICBmb3IgY2FuZGlkYXRlIGluIHJldmVyc2VkKHJl
c3BvbnNlLmpzb24oKSk6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgdmVyc2lv
biA9IFZlcnNpb24uZnJvbV9zdHJpbmcoY2FuZGlkYXRlLmdldCgndGFnX25hbWUnKS5zcGxpdCgn
dicpWy0xXSkKKyAgICAgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgorICAgICAgICAgICAgICAg
IGNvbnRpbnVlCisKKyAgICAgICAgICAgIGZvciBhc3NldCBpbiBjYW5kaWRhdGUuZ2V0KCdhc3Nl
dHMnLCBbXSk6CisgICAgICAgICAgICAgICAgdXJsID0gYXNzZXQuZ2V0KCdicm93c2VyX2Rvd25s
b2FkX3VybCcpCisgICAgICAgICAgICAgICAgaWYgbm90IHVybDoKKyAgICAgICAgICAgICAgICAg
ICAgY29udGludWUKKyAgICAgICAgICAgICAgICBpZiBvcyBub3QgaW4gdXJsOgorICAgICAgICAg
ICAgICAgICAgICBjb250aW51ZQorCisgICAgICAgICAgICAgICAgZXh0ZW5zaW9uID0gJ3ppcCcg
aWYgdXJsLmVuZHN3aXRoKCcuemlwJykgZWxzZSAndGFyLmd6JworICAgICAgICAgICAgICAgIGlm
IG5vdCB1cmwuZW5kc3dpdGgoZXh0ZW5zaW9uKToKKyAgICAgICAgICAgICAgICAgICAgY29udGlu
dWUKKworICAgICAgICAgICAgICAgIGlmIHNlbGYudmVyc2lvbiBhbmQgdmVyc2lvbiBub3QgaW4g
c2VsZi52ZXJzaW9uOgorICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorCisgICAgICAgICAg
ICAgICAgYXJjaGl2ZXMuYXBwZW5kKAorICAgICAgICAgICAgICAgICAgICBQYWNrYWdlLkFyY2hp
dmUoCisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLm5hbWUsCisgICAgICAgICAgICAgICAg
ICAgICAgICBsaW5rPXVybCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb249dmVyc2lv
biwKKyAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbj1leHRlbnNpb24sCisgICAgICAg
ICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICApCisKKyAgICAgICAgcmV0dXJuIGFyY2hp
dmVzCisKKwogIyBCb3Jyb3cgZm9sbG93aW5nIGNvZGUgZnJvbSBzdGFja292ZXJmbG93CiAjIExp
bms6IGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTE0NjEzNTYvaXNzdWJjbGFz
cy1yZXR1cm5zLWZsYXNlLW9uLXRoZS1zYW1lLWNsYXNzLWltcG9ydGVkLWZyb20tZGlmZmVyZW50
LXBhdGhzCiBkZWYgaXNfc3ViY2xhc3MoY2hpbGQsIHBhcmVudF9uYW1lKToKQEAgLTUyLDE1ICsx
NjEsMTMgQEAgZGVmIGZvcmNlX3JlbW92ZShwYXRoKToKIEBtZW1vaXplZAogZGVmIGdldF9kcml2
ZXJfYmluYXJ5X3BhdGgoYnJvd3Nlcl9uYW1lKToKICAgICBpZiBicm93c2VyX25hbWUuc3RhcnRz
d2l0aCgnY2hyb21lJyk6Ci0gICAgICAgIGltcG9ydCB3ZWJraXRweS50aGlyZHBhcnR5LmF1dG9p
bnN0YWxsZWQuY2hyb21lZHJpdmVyCi0gICAgICAgIGRyaXZlcl9pbml0X2ZpbGUgPSB3ZWJraXRw
eS50aGlyZHBhcnR5LmF1dG9pbnN0YWxsZWQuY2hyb21lZHJpdmVyLl9fZmlsZV9fCi0gICAgICAg
IGRyaXZlcl9leGVjdXRhYmxlID0gb3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShvcy5wYXRo
LnJlYWxwYXRoKGRyaXZlcl9pbml0X2ZpbGUpKSwgJ2Nocm9tZWRyaXZlcicpCi0gICAgICAgIHJl
dHVybiBkcml2ZXJfZXhlY3V0YWJsZQorICAgICAgICBwYWNrYWdlID0gQ2hyb21lRHJpdmVyUGFj
a2FnZSh2ZXJzaW9uPVZlcnNpb24oODYsIDAsIDQyNDAsIDIyKSkKKyAgICAgICAgcGFja2FnZS5p
bnN0YWxsKCkKKyAgICAgICAgcmV0dXJuIHBhY2thZ2UubG9jYXRpb24KICAgICBlbGlmIGJyb3dz
ZXJfbmFtZS5zdGFydHN3aXRoKCdmaXJlZm94Jyk6Ci0gICAgICAgIGltcG9ydCB3ZWJraXRweS50
aGlyZHBhcnR5LmF1dG9pbnN0YWxsZWQuZ2Vja29kcml2ZXIKLSAgICAgICAgZHJpdmVyX2luaXRf
ZmlsZSA9IHdlYmtpdHB5LnRoaXJkcGFydHkuYXV0b2luc3RhbGxlZC5nZWNrb2RyaXZlci5fX2Zp
bGVfXwotICAgICAgICBkcml2ZXJfZXhlY3V0YWJsZSA9IG9zLnBhdGguam9pbihvcy5wYXRoLmRp
cm5hbWUob3MucGF0aC5yZWFscGF0aChkcml2ZXJfaW5pdF9maWxlKSksICdnZWNrb2RyaXZlcicp
Ci0gICAgICAgIHJldHVybiBkcml2ZXJfZXhlY3V0YWJsZQorICAgICAgICBwYWNrYWdlID0gR2Vj
a29Ecml2ZXJQYWNrYWdlKHZlcnNpb249VmVyc2lvbigwLCAyNywgMCkpCisgICAgICAgIHBhY2th
Z2UuaW5zdGFsbCgpCisgICAgICAgIHJldHVybiBwYWNrYWdlLmxvY2F0aW9uCiAKIAogZGVmIHdy
aXRlX2RlZmF1bHRzKGRvbWFpbiwga2V5LCB2YWx1ZSk6CkluZGV4OiBUb29scy9TY3JpcHRzL3dl
YmtpdHB5L3RoaXJkcGFydHkvX19pbml0X18ucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90aGlyZHBhcnR5L19faW5pdF9fLnB5CShyZXZpc2lvbiAyNjg4NjcpCisrKyBU
b29scy9TY3JpcHRzL3dlYmtpdHB5L3RoaXJkcGFydHkvX19pbml0X18ucHkJKHdvcmtpbmcgY29w
eSkKQEAgLTMzLDEzICszMywxMCBAQCBpbXBvcnQgcmUKIGltcG9ydCBzeXMKIAogaWYgc3lzLnZl
cnNpb25faW5mbyA+ICgzLCAwKToKLSAgICBmcm9tIHVybGxpYi5lcnJvciBpbXBvcnQgVVJMRXJy
b3IKICAgICBmcm9tIHVybGxpYi5yZXF1ZXN0IGltcG9ydCB1cmxvcGVuCiBlbHNlOgotICAgIGZy
b20gdXJsbGliMiBpbXBvcnQgVVJMRXJyb3IsIHVybG9wZW4KKyAgICBmcm9tIHVybGxpYjIgaW1w
b3J0IHVybG9wZW4KIAotZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgbmFtZWR0dXBsZQotZnJvbSBk
aXN0dXRpbHMgaW1wb3J0IHNwYXduCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uYXV0b2lu
c3RhbGwgaW1wb3J0IEF1dG9JbnN0YWxsZXIKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5m
aWxlc3lzdGVtIGltcG9ydCBGaWxlU3lzdGVtCiBmcm9tIHdlYmtpdGNvcmVweSBpbXBvcnQgQXV0
b0luc3RhbGwKQEAgLTQ3LDkgKzQ0LDYgQEAgZnJvbSB3ZWJraXRjb3JlcHkgaW1wb3J0IEF1dG9J
bnN0YWxsCiBfVEhJUkRQQVJUWV9ESVIgPSBvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pCiBfQVVU
T0lOU1RBTExFRF9ESVIgPSBvcy5wYXRoLmpvaW4oX1RISVJEUEFSVFlfRElSLCAiYXV0b2luc3Rh
bGxlZCIpCiAKLUNIUk9NRV9EUklWRVJfVVJMID0gImh0dHA6Ly9jaHJvbWVkcml2ZXIuc3RvcmFn
ZS5nb29nbGVhcGlzLmNvbS8iCi1GSVJFRk9YX1JFTEVBU0VTX1VSTCA9ICJodHRwczovL2FwaS5n
aXRodWIuY29tL3JlcG9zL21vemlsbGEvZ2Vja29kcml2ZXIvcmVsZWFzZXMiCi0KICMgUHV0dGlu
ZyB0aGUgYXV0b2luc3RhbGwgY29kZSBpbnRvIHdlYmtpdHB5L3RoaXJkcGFydHkvX19pbml0X18u
cHkKICMgZW5zdXJlcyB0aGF0IG5vIGF1dG9pbnN0YWxsaW5nIG9jY3VycyB1bnRpbCBhIGNhbGxl
ciBpbXBvcnRzIGZyb20KICMgd2Via2l0cHkudGhpcmRwYXJ0eS4gIFRoaXMgaXMgdXNlZnVsIGlm
IHRoZSBjYWxsZXIgd2FudHMgdG8gY29uZmlndXJlCkBAIC05NywxMCArOTEsNiBAQCBjbGFzcyBB
dXRvaW5zdGFsbEltcG9ydEhvb2sob2JqZWN0KToKICAgICAgICAgICAgIHNlbGYuX2luc3RhbGxf
YnVpbGRib3QoKQogICAgICAgICBlbGlmICcudHdpc3RlZF8xNV81XzAnIGluIGZ1bGxuYW1lOgog
ICAgICAgICAgICAgc2VsZi5faW5zdGFsbF90d2lzdGVkXzE1XzVfMCgpCi0gICAgICAgIGVsaWYg
Jy5jaHJvbWVkcml2ZXInIGluIGZ1bGxuYW1lOgotICAgICAgICAgICAgc2VsZi5pbnN0YWxsX2No
cm9tZWRyaXZlcigpCi0gICAgICAgIGVsaWYgJy5nZWNrb2RyaXZlcicgaW4gZnVsbG5hbWU6Ci0g
ICAgICAgICAgICBzZWxmLmluc3RhbGxfZ2Vja29kcml2ZXIoKQogCiAgICAgIyBhdXRvaW5zdGFs
bGVkLmJ1aWxkYm90IGlzIHVzZWQgYnkgQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9y
Zy1jb25maWcvbWFzdGVyY2ZnX3VuaXR0ZXN0LnB5CiAgICAgIyBhbmQgc2hvdWxkIGlkZWFsbHkg
bWF0Y2ggdGhlIHZlcnNpb24gb2YgQnVpbGRCb3QgdXNlZCBhdCBidWlsZC53ZWJraXQub3JnLgpA
QCAtMTQxLDIyICsxMzEsNiBAQCBjbGFzcyBBdXRvaW5zdGFsbEltcG9ydEhvb2sob2JqZWN0KToK
ICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKICAgICAgICAgcmV0dXJuIFRydWUKIAotICAg
IGRlZiBpbnN0YWxsX2Nocm9tZWRyaXZlcihzZWxmKToKLSAgICAgICAgZmlsZW5hbWVfcG9zdGZp
eCA9IGdldF9kcml2ZXJfZmlsZW5hbWUoKS5jaHJvbWUKLSAgICAgICAgaWYgZmlsZW5hbWVfcG9z
dGZpeCAhPSAidW5zdXBwb3J0ZWQiOgotICAgICAgICAgICAgdmVyc2lvbiA9IHVybG9wZW4oQ0hS
T01FX0RSSVZFUl9VUkwgKyAnTEFURVNUX1JFTEVBU0UnKS5yZWFkKCkuc3RyaXAoKQotICAgICAg
ICAgICAgZnVsbF9jaHJvbWVfdXJsID0gIntiYXNlX3VybH17dmVyc2lvbn0vY2hyb21lZHJpdmVy
X3tvc30uemlwIi5mb3JtYXQoYmFzZV91cmw9Q0hST01FX0RSSVZFUl9VUkwsIHZlcnNpb249dmVy
c2lvbiwgb3M9ZmlsZW5hbWVfcG9zdGZpeCkKLSAgICAgICAgICAgIHNlbGYuaW5zdGFsbF9iaW5h
cnkoZnVsbF9jaHJvbWVfdXJsLCAnY2hyb21lZHJpdmVyJykKLQotICAgIGRlZiBpbnN0YWxsX2dl
Y2tvZHJpdmVyKHNlbGYpOgotICAgICAgICBmaWxlbmFtZV9wb3N0Zml4ID0gZ2V0X2RyaXZlcl9m
aWxlbmFtZSgpLmZpcmVmb3gKLSAgICAgICAgaWYgZmlsZW5hbWVfcG9zdGZpeCAhPSAidW5zdXBw
b3J0ZWQiOgotICAgICAgICAgICAgZmlyZWZveF9yZWxlYXNlc19ibG9iID0gdXJsb3BlbihGSVJF
Rk9YX1JFTEVBU0VTX1VSTCkKLSAgICAgICAgICAgIGZpcmVmb3hfcmVsZWFzZXNfbGluZV9zZXBh
cmF0ZWQgPSBqc29uLmR1bXBzKGpzb24ubG9hZChmaXJlZm94X3JlbGVhc2VzX2Jsb2IpLCBpbmRl
bnQ9MCkuc3RyaXAoKQotICAgICAgICAgICAgYWxsX2ZpcmVmb3hfcmVsZWFzZV91cmxzID0gIlxu
Ii5qb2luKHJlLmZpbmRhbGwocicuKmJyb3dzZXJfZG93bmxvYWRfdXJsLionLCBmaXJlZm94X3Jl
bGVhc2VzX2xpbmVfc2VwYXJhdGVkKSkKLSAgICAgICAgICAgIGZ1bGxfZmlyZWZveF91cmwgPSBy
ZS5maW5kYWxsKHInLiolcy4qJyAlIGZpbGVuYW1lX3Bvc3RmaXgsIGFsbF9maXJlZm94X3JlbGVh
c2VfdXJscylbMF0uc3BsaXQoJyInKVszXQotICAgICAgICAgICAgc2VsZi5pbnN0YWxsX2JpbmFy
eShmdWxsX2ZpcmVmb3hfdXJsLCAnZ2Vja29kcml2ZXInKQotCiAgICAgZGVmIF9pbnN0YWxsKHNl
bGYsIHVybCwgdXJsX3N1YnBhdGg9Tm9uZSwgdGFyZ2V0X25hbWU9Tm9uZSk6CiAgICAgICAgIGlu
c3RhbGxlciA9IEF1dG9JbnN0YWxsZXIodGFyZ2V0X2Rpcj1fQVVUT0lOU1RBTExFRF9ESVIpCiAg
ICAgICAgIHJldHVybiBpbnN0YWxsZXIuaW5zdGFsbCh1cmw9dXJsLCB1cmxfc3VicGF0aD11cmxf
c3VicGF0aCwgdGFyZ2V0X25hbWU9dGFyZ2V0X25hbWUpCkBAIC0xODQsMjEgKzE1OCwzIEBAIGRl
ZiBhdXRvaW5zdGFsbF9ldmVyeXRoaW5nKCk6CiAgICAgaW5zdGFsbF9tZXRob2RzID0gW21ldGhv
ZCBmb3IgbWV0aG9kIGluIGRpcihfaG9vay5fX2NsYXNzX18pIGlmIG1ldGhvZC5zdGFydHN3aXRo
KCdfaW5zdGFsbF8nKV0KICAgICBmb3IgbWV0aG9kIGluIGluc3RhbGxfbWV0aG9kczoKICAgICAg
ICAgZ2V0YXR0cihfaG9vaywgbWV0aG9kKSgpCi0KLWRlZiBnZXRfZHJpdmVyX2ZpbGVuYW1lKCk6
Ci0gICAgb3NfbmFtZSwgb3NfdHlwZSA9IGdldF9vc19pbmZvKCkKLSAgICBjaHJvbWVfb3MsIGZp
bGVmb3hfb3MgPSAndW5zdXBwb3J0ZWQnLCAndW5zdXBwb3J0ZWQnCi0gICAgaWYgb3NfbmFtZSA9
PSAnTGludXgnIGFuZCBvc190eXBlID09ICc2NCc6Ci0gICAgICAgIGNocm9tZV9vcywgZmlyZWZv
eF9vcyA9ICdsaW51eDY0JywgJ2xpbnV4NjQnCi0gICAgZWxpZiBvc19uYW1lID09ICdMaW51eCc6
Ci0gICAgICAgIGNocm9tZV9vcywgZmlyZWZveF9vcyA9ICdsaW51eDMyJywgJ2xpbnV4MzInCi0g
ICAgZWxpZiBvc19uYW1lID09ICdEYXJ3aW4nOgotICAgICAgICBjaHJvbWVfb3MsIGZpcmVmb3hf
b3MgPSAnbWFjNjQnLCAnbWFjb3MnCi0gICAgRHJpdmVyRmlsZW5hbWVGb3JCcm93c2VyID0gbmFt
ZWR0dXBsZSgnRHJpdmVyRmlsZW5hbWVGb3JCcm93c2VyJywgWydjaHJvbWUnLCAnZmlyZWZveCdd
KQotICAgIHJldHVybiBEcml2ZXJGaWxlbmFtZUZvckJyb3dzZXIoY2hyb21lX29zLCBmaXJlZm94
X29zKQotCi1kZWYgZ2V0X29zX2luZm8oKToKLSAgICBpbXBvcnQgcGxhdGZvcm0KLSAgICBvc19u
YW1lID0gcGxhdGZvcm0uc3lzdGVtKCkKLSAgICBvc190eXBlID0gcGxhdGZvcm0ubWFjaGluZSgp
Wy0yOl0KLSAgICByZXR1cm4gKG9zX25hbWUsIG9zX3R5cGUpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412133</attachid>
            <date>2020-10-22 14:33:58 -0700</date>
            <delta_ts>2020-10-22 15:13:16 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-218059-20201022143357.patch</filename>
            <type>text/plain</type>
            <size>14844</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2ODg5MCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI2IEBACisyMDIwLTEwLTIyICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0cHldIFVzZSB3ZWJraXRjb3JlcHkncyBhdXRvaW5zdGFsbGVy
IGZvciBjaHJvbWUgYW5kIGdlY2tvIGRyaXZlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODA1OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzA1
NTEyNTU+CisKKyAgICAgICAgUnViYmVyLXN0YW1wZWQgYnkgQWFrYXNoIEphaW4uCisKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L2F1dG9pbnN0YWxsZWQ6IEFkZGVkLgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvYXV0b2luc3RhbGxlZC9fX2luaXRfXy5weTogQWRkZWQuCisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS9hdXRvaW5zdGFsbGVkL2Nocm9tZWRyaXZlci5weTogQWRkZWQu
CisgICAgICAgIChDaHJvbWVEcml2ZXJQYWNrYWdlKTogU3BlY2lhbCBsaXN0aW5nIHJ1bGVzIGZv
ciB0aGUgY2hyb21lIGRyaXZlci4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2F1dG9pbnN0
YWxsZWQvZ2Vja29kcml2ZXIucHk6IEFkZGVkLgorICAgICAgICAoR2Vja29Ecml2ZXJQYWNrYWdl
KTogU3BlY2lhbCBsaXN0aW5nIHJ1bGVzIGZvciB0aGUgR2Vja29Ecml2ZXIuCisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL3V0aWxzLnB5OgorICAgICAgICAoZ2V0
X2RyaXZlcl9iaW5hcnlfcGF0aCk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90aGlyZHBh
cnR5L19faW5pdF9fLnB5OgorICAgICAgICAoQXV0b2luc3RhbGxJbXBvcnRIb29rLmZpbmRfbW9k
dWxlKTogUmVtb3ZlIENocm9tZSBhbmQgR2Vja28gZHJpdmVycy4KKyAgICAgICAgKEF1dG9pbnN0
YWxsSW1wb3J0SG9vay5pbnN0YWxsX2Nocm9tZWRyaXZlcik6IERlbGV0ZWQuCisgICAgICAgIChB
dXRvaW5zdGFsbEltcG9ydEhvb2suaW5zdGFsbF9nZWNrb2RyaXZlcik6IERlbGV0ZWQuCisgICAg
ICAgIChnZXRfZHJpdmVyX2ZpbGVuYW1lKTogRGVsZXRlZC4KKyAgICAgICAgKGdldF9vc19pbmZv
KTogRGVsZXRlZC4KKwogMjAyMC0xMC0yMiAgQWFrYXNoIEphaW4gIDxhYWthc2hfamFpbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgcmVwb3J0LW5vbi1pbmNsdXNpdmUtbGFuZ3VhZ2Ugc2hvdWxkIGFs
c28gcmVwb3J0IHRvdGFsIGZvciBhbGwgdGhlIG5vbi1pbmNsdXNpdmUgdGVybXMKSW5kZXg6IFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvYXV0b2luc3RhbGxlZC9fX2luaXRfXy5weQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2F1dG9pbnN0YWxsZWQvX19pbml0X18ucHkJKG5v
bmV4aXN0ZW50KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9hdXRvaW5zdGFsbGVkL19faW5p
dF9fLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjEgQEAKKyMgQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
IEFORCBBTlkKKyMgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWQorIyBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworIyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
CisjIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorIyBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUworIyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYXV0b2luc3Rh
bGxlZC9jaHJvbWVkcml2ZXIucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9hdXRvaW5zdGFsbGVkL2Nocm9tZWRyaXZlci5weQkobm9uZXhpc3RlbnQpCisrKyBUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2F1dG9pbnN0YWxsZWQvY2hyb21lZHJpdmVyLnB5CSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsNjYgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0
OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyMgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorIyBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUworIyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisjIExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTgorIyBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworIyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KworaW1wb3J0IHBsYXRmb3JtCitpbXBvcnQgcmVxdWVzdHMKKworZnJvbSB3ZWJraXRzY21weSBp
bXBvcnQgUGFja2FnZSwgVmVyc2lvbgorCisKK2NsYXNzIENocm9tZURyaXZlclBhY2thZ2UoUGFj
a2FnZSk6CisgICAgVVJMID0gJ2h0dHBzOi8vY2hyb21lZHJpdmVyLnN0b3JhZ2UuZ29vZ2xlYXBp
cy5jb20vJworCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHZlcnNpb249Tm9uZSk6CisgICAgICAg
IHN1cGVyKENocm9tZURyaXZlclBhY2thZ2UsIHNlbGYpLl9faW5pdF9fKCdjaHJvbWVkcml2ZXIn
LCB2ZXJzaW9uPXZlcnNpb24pCisKKyAgICBkZWYgYXJjaGl2ZXMoc2VsZik6CisgICAgICAgIGlm
IHNlbGYudmVyc2lvbiBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAg
ICAgICByZXNwb25zZSA9IHJlcXVlc3RzLmdldChzZWxmLlVSTCArICdMQVRFU1RfUkVMRUFTRScp
CisgICAgICAgICAgICBleGNlcHQgcmVxdWVzdHMuUmVxdWVzdEV4Y2VwdGlvbjoKKyAgICAgICAg
ICAgICAgICByZXR1cm4gW10KKworICAgICAgICAgICAgaWYgcmVzcG9uc2Uuc3RhdHVzX2NvZGUg
IT0gMjAwOgorICAgICAgICAgICAgICAgIHJldHVybiBbXQorICAgICAgICAgICAgdmVyc2lvbiA9
IFZlcnNpb24uZnJvbV9zdHJpbmcocmVzcG9uc2UudGV4dC5yc3RyaXAoKSkKKyAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgIHZlcnNpb24gPSBzZWxmLnZlcnNpb24KKworICAgICAgICBvc19uYW1l
ID0gcGxhdGZvcm0uc3lzdGVtKCkKKyAgICAgICAgaWYgb3NfbmFtZSA9PSAnTGludXgnOgorICAg
ICAgICAgICAgb3MgPSAnbGludXh7fScuZm9ybWF0KCc2NCcgaWYgcGxhdGZvcm0ubWFjaGluZSgp
Wy0yOl0gPT0gJzY0JyBlbHNlICcnKQorICAgICAgICBlbGlmIG9zX25hbWUgPT0gJ0Rhcndpbic6
CisgICAgICAgICAgICBvcyA9ICdtYWM2NCcKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJl
dHVybiBbXQorCisgICAgICAgIHJldHVybiBbUGFja2FnZS5BcmNoaXZlKAorICAgICAgICAgICAg
c2VsZi5uYW1lLAorICAgICAgICAgICAgbGluaz0ne317fS9jaHJvbWVkcml2ZXJfe30uemlwJy5m
b3JtYXQoc2VsZi5VUkwsIHZlcnNpb24sIG9zKSwKKyAgICAgICAgICAgIHZlcnNpb249dmVyc2lv
biwKKyAgICAgICAgICAgIGV4dGVuc2lvbj0nemlwJywKKyAgICAgICAgKV0KKworCitwYWNrYWdl
ID0gQ2hyb21lRHJpdmVyUGFja2FnZSh2ZXJzaW9uPVZlcnNpb24oODYsIDAsIDQyNDAsIDIyKSkK
K3BhY2thZ2UuaW5zdGFsbCgpCitleGVjdXRhYmxlID0gcGFja2FnZS5sb2NhdGlvbgpJbmRleDog
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9hdXRvaW5zdGFsbGVkL2dlY2tvZHJpdmVyLnB5Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYXV0b2luc3RhbGxlZC9nZWNrb2RyaXZl
ci5weQkobm9uZXhpc3RlbnQpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2F1dG9pbnN0YWxs
ZWQvZ2Vja29kcml2ZXIucHkJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw4NSBAQAorIyBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisj
IDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycgQU5EIEFOWQorIyBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
KyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisjIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisjIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsKKyMgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisjIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisj
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTCisjIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBvcnQgcGxhdGZvcm0KK2ltcG9ydCBy
ZXF1ZXN0cworCitmcm9tIHdlYmtpdHNjbXB5IGltcG9ydCBQYWNrYWdlLCBWZXJzaW9uCisKKwor
Y2xhc3MgR2Vja29Ecml2ZXJQYWNrYWdlKFBhY2thZ2UpOgorICAgIFVSTCA9ICdodHRwczovL2Fw
aS5naXRodWIuY29tL3JlcG9zL21vemlsbGEvZ2Vja29kcml2ZXIvcmVsZWFzZXMnCisKKyAgICBk
ZWYgX19pbml0X18oc2VsZiwgdmVyc2lvbj1Ob25lKToKKyAgICAgICAgc3VwZXIoR2Vja29Ecml2
ZXJQYWNrYWdlLCBzZWxmKS5fX2luaXRfXygnZ2Vja29kcml2ZXInLCB2ZXJzaW9uPXZlcnNpb24p
CisKKyAgICBkZWYgYXJjaGl2ZXMoc2VsZik6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJl
c3BvbnNlID0gcmVxdWVzdHMuZ2V0KHNlbGYuVVJMKQorICAgICAgICBleGNlcHQgcmVxdWVzdHMu
UmVxdWVzdEV4Y2VwdGlvbjoKKyAgICAgICAgICAgIHJldHVybiBbXQorCisgICAgICAgIGlmIHJl
c3BvbnNlLnN0YXR1c19jb2RlICE9IDIwMDoKKyAgICAgICAgICAgIHJldHVybiBbXQorCisgICAg
ICAgIG9zX25hbWUgPSBwbGF0Zm9ybS5zeXN0ZW0oKQorICAgICAgICBpZiBvc19uYW1lID09ICdE
YXJ3aW4nOgorICAgICAgICAgICAgb3MgPSAnbWFjb3MnCisgICAgICAgIGVsc2U6CisgICAgICAg
ICAgICBvcyA9ICd7fXt9Jy5mb3JtYXQob3NfbmFtZSwgcGxhdGZvcm0ubWFjaGluZSgpWy0yOl0p
CisKKyAgICAgICAgYXJjaGl2ZXMgPSBbXQorICAgICAgICBmb3IgY2FuZGlkYXRlIGluIHJldmVy
c2VkKHJlc3BvbnNlLmpzb24oKSk6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAg
dmVyc2lvbiA9IFZlcnNpb24uZnJvbV9zdHJpbmcoY2FuZGlkYXRlLmdldCgndGFnX25hbWUnKS5z
cGxpdCgndicpWy0xXSkKKyAgICAgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgorICAgICAgICAg
ICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAgICAgIGZvciBhc3NldCBpbiBjYW5kaWRhdGUuZ2V0
KCdhc3NldHMnLCBbXSk6CisgICAgICAgICAgICAgICAgdXJsID0gYXNzZXQuZ2V0KCdicm93c2Vy
X2Rvd25sb2FkX3VybCcpCisgICAgICAgICAgICAgICAgaWYgbm90IHVybDoKKyAgICAgICAgICAg
ICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICAgICBpZiBvcyBub3QgaW4gdXJsOgorICAg
ICAgICAgICAgICAgICAgICBjb250aW51ZQorCisgICAgICAgICAgICAgICAgZXh0ZW5zaW9uID0g
J3ppcCcgaWYgdXJsLmVuZHN3aXRoKCcuemlwJykgZWxzZSAndGFyLmd6JworICAgICAgICAgICAg
ICAgIGlmIG5vdCB1cmwuZW5kc3dpdGgoZXh0ZW5zaW9uKToKKyAgICAgICAgICAgICAgICAgICAg
Y29udGludWUKKworICAgICAgICAgICAgICAgIGlmIHNlbGYudmVyc2lvbiBhbmQgdmVyc2lvbiBu
b3QgaW4gc2VsZi52ZXJzaW9uOgorICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorCisgICAg
ICAgICAgICAgICAgYXJjaGl2ZXMuYXBwZW5kKAorICAgICAgICAgICAgICAgICAgICBQYWNrYWdl
LkFyY2hpdmUoCisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLm5hbWUsCisgICAgICAgICAg
ICAgICAgICAgICAgICBsaW5rPXVybCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb249
dmVyc2lvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbj1leHRlbnNpb24sCisg
ICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICApCisKKyAgICAgICAgcmV0dXJu
IGFyY2hpdmVzCisKKworcGFja2FnZSA9IEdlY2tvRHJpdmVyUGFja2FnZSh2ZXJzaW9uPVZlcnNp
b24oMCwgMjcsIDApKQorcGFja2FnZS5pbnN0YWxsKCkKK2V4ZWN1dGFibGUgPSBwYWNrYWdlLmxv
Y2F0aW9uCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvdXRp
bHMucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVu
bmVyL3V0aWxzLnB5CShyZXZpc2lvbiAyNjg4OTApCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2JlbmNobWFya19ydW5uZXIvdXRpbHMucHkJKHdvcmtpbmcgY29weSkKQEAgLTUyLDE1ICs1Miwx
MSBAQCBkZWYgZm9yY2VfcmVtb3ZlKHBhdGgpOgogQG1lbW9pemVkCiBkZWYgZ2V0X2RyaXZlcl9i
aW5hcnlfcGF0aChicm93c2VyX25hbWUpOgogICAgIGlmIGJyb3dzZXJfbmFtZS5zdGFydHN3aXRo
KCdjaHJvbWUnKToKLSAgICAgICAgaW1wb3J0IHdlYmtpdHB5LnRoaXJkcGFydHkuYXV0b2luc3Rh
bGxlZC5jaHJvbWVkcml2ZXIKLSAgICAgICAgZHJpdmVyX2luaXRfZmlsZSA9IHdlYmtpdHB5LnRo
aXJkcGFydHkuYXV0b2luc3RhbGxlZC5jaHJvbWVkcml2ZXIuX19maWxlX18KLSAgICAgICAgZHJp
dmVyX2V4ZWN1dGFibGUgPSBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKG9zLnBhdGgucmVh
bHBhdGgoZHJpdmVyX2luaXRfZmlsZSkpLCAnY2hyb21lZHJpdmVyJykKLSAgICAgICAgcmV0dXJu
IGRyaXZlcl9leGVjdXRhYmxlCisgICAgICAgIGZyb20gd2Via2l0cHkuYXV0b2luc3RhbGxlZCBp
bXBvcnQgY2hyb21lZHJpdmVyCisgICAgICAgIHJldHVybiBjaHJvbWVkcml2ZXIuZXhlY3V0YWJs
ZQogICAgIGVsaWYgYnJvd3Nlcl9uYW1lLnN0YXJ0c3dpdGgoJ2ZpcmVmb3gnKToKLSAgICAgICAg
aW1wb3J0IHdlYmtpdHB5LnRoaXJkcGFydHkuYXV0b2luc3RhbGxlZC5nZWNrb2RyaXZlcgotICAg
ICAgICBkcml2ZXJfaW5pdF9maWxlID0gd2Via2l0cHkudGhpcmRwYXJ0eS5hdXRvaW5zdGFsbGVk
LmdlY2tvZHJpdmVyLl9fZmlsZV9fCi0gICAgICAgIGRyaXZlcl9leGVjdXRhYmxlID0gb3MucGF0
aC5qb2luKG9zLnBhdGguZGlybmFtZShvcy5wYXRoLnJlYWxwYXRoKGRyaXZlcl9pbml0X2ZpbGUp
KSwgJ2dlY2tvZHJpdmVyJykKLSAgICAgICAgcmV0dXJuIGRyaXZlcl9leGVjdXRhYmxlCisgICAg
ICAgIGZyb20gd2Via2l0cHkuYXV0b2luc3RhbGxlZCBpbXBvcnQgZ2Vja29kcml2ZXIKKyAgICAg
ICAgcmV0dXJuIGdlY2tvZHJpdmVyLmV4ZWN1dGFibGUKIAogCiBkZWYgd3JpdGVfZGVmYXVsdHMo
ZG9tYWluLCBrZXksIHZhbHVlKToKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGhpcmRw
YXJ0eS9fX2luaXRfXy5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Ro
aXJkcGFydHkvX19pbml0X18ucHkJKHJldmlzaW9uIDI2ODg5MCkKKysrIFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdGhpcmRwYXJ0eS9fX2luaXRfXy5weQkod29ya2luZyBjb3B5KQpAQCAtMzMsMTMg
KzMzLDEwIEBAIGltcG9ydCByZQogaW1wb3J0IHN5cwogCiBpZiBzeXMudmVyc2lvbl9pbmZvID4g
KDMsIDApOgotICAgIGZyb20gdXJsbGliLmVycm9yIGltcG9ydCBVUkxFcnJvcgogICAgIGZyb20g
dXJsbGliLnJlcXVlc3QgaW1wb3J0IHVybG9wZW4KIGVsc2U6Ci0gICAgZnJvbSB1cmxsaWIyIGlt
cG9ydCBVUkxFcnJvciwgdXJsb3BlbgorICAgIGZyb20gdXJsbGliMiBpbXBvcnQgdXJsb3Blbgog
Ci1mcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBuYW1lZHR1cGxlCi1mcm9tIGRpc3R1dGlscyBpbXBv
cnQgc3Bhd24KIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5hdXRvaW5zdGFsbCBpbXBvcnQg
QXV0b0luc3RhbGxlcgogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmZpbGVzeXN0ZW0gaW1w
b3J0IEZpbGVTeXN0ZW0KIGZyb20gd2Via2l0Y29yZXB5IGltcG9ydCBBdXRvSW5zdGFsbApAQCAt
NDcsOSArNDQsNiBAQCBmcm9tIHdlYmtpdGNvcmVweSBpbXBvcnQgQXV0b0luc3RhbGwKIF9USElS
RFBBUlRZX0RJUiA9IG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykKIF9BVVRPSU5TVEFMTEVEX0RJ
UiA9IG9zLnBhdGguam9pbihfVEhJUkRQQVJUWV9ESVIsICJhdXRvaW5zdGFsbGVkIikKIAotQ0hS
T01FX0RSSVZFUl9VUkwgPSAiaHR0cDovL2Nocm9tZWRyaXZlci5zdG9yYWdlLmdvb2dsZWFwaXMu
Y29tLyIKLUZJUkVGT1hfUkVMRUFTRVNfVVJMID0gImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVw
b3MvbW96aWxsYS9nZWNrb2RyaXZlci9yZWxlYXNlcyIKLQogIyBQdXR0aW5nIHRoZSBhdXRvaW5z
dGFsbCBjb2RlIGludG8gd2Via2l0cHkvdGhpcmRwYXJ0eS9fX2luaXRfXy5weQogIyBlbnN1cmVz
IHRoYXQgbm8gYXV0b2luc3RhbGxpbmcgb2NjdXJzIHVudGlsIGEgY2FsbGVyIGltcG9ydHMgZnJv
bQogIyB3ZWJraXRweS50aGlyZHBhcnR5LiAgVGhpcyBpcyB1c2VmdWwgaWYgdGhlIGNhbGxlciB3
YW50cyB0byBjb25maWd1cmUKQEAgLTk3LDEwICs5MSw2IEBAIGNsYXNzIEF1dG9pbnN0YWxsSW1w
b3J0SG9vayhvYmplY3QpOgogICAgICAgICAgICAgc2VsZi5faW5zdGFsbF9idWlsZGJvdCgpCiAg
ICAgICAgIGVsaWYgJy50d2lzdGVkXzE1XzVfMCcgaW4gZnVsbG5hbWU6CiAgICAgICAgICAgICBz
ZWxmLl9pbnN0YWxsX3R3aXN0ZWRfMTVfNV8wKCkKLSAgICAgICAgZWxpZiAnLmNocm9tZWRyaXZl
cicgaW4gZnVsbG5hbWU6Ci0gICAgICAgICAgICBzZWxmLmluc3RhbGxfY2hyb21lZHJpdmVyKCkK
LSAgICAgICAgZWxpZiAnLmdlY2tvZHJpdmVyJyBpbiBmdWxsbmFtZToKLSAgICAgICAgICAgIHNl
bGYuaW5zdGFsbF9nZWNrb2RyaXZlcigpCiAKICAgICAjIGF1dG9pbnN0YWxsZWQuYnVpbGRib3Qg
aXMgdXNlZCBieSBCdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9tYXN0
ZXJjZmdfdW5pdHRlc3QucHkKICAgICAjIGFuZCBzaG91bGQgaWRlYWxseSBtYXRjaCB0aGUgdmVy
c2lvbiBvZiBCdWlsZEJvdCB1c2VkIGF0IGJ1aWxkLndlYmtpdC5vcmcuCkBAIC0xNDEsMjIgKzEz
MSw2IEBAIGNsYXNzIEF1dG9pbnN0YWxsSW1wb3J0SG9vayhvYmplY3QpOgogICAgICAgICAgICAg
ICAgIHJldHVybiBGYWxzZQogICAgICAgICByZXR1cm4gVHJ1ZQogCi0gICAgZGVmIGluc3RhbGxf
Y2hyb21lZHJpdmVyKHNlbGYpOgotICAgICAgICBmaWxlbmFtZV9wb3N0Zml4ID0gZ2V0X2RyaXZl
cl9maWxlbmFtZSgpLmNocm9tZQotICAgICAgICBpZiBmaWxlbmFtZV9wb3N0Zml4ICE9ICJ1bnN1
cHBvcnRlZCI6Ci0gICAgICAgICAgICB2ZXJzaW9uID0gdXJsb3BlbihDSFJPTUVfRFJJVkVSX1VS
TCArICdMQVRFU1RfUkVMRUFTRScpLnJlYWQoKS5zdHJpcCgpCi0gICAgICAgICAgICBmdWxsX2No
cm9tZV91cmwgPSAie2Jhc2VfdXJsfXt2ZXJzaW9ufS9jaHJvbWVkcml2ZXJfe29zfS56aXAiLmZv
cm1hdChiYXNlX3VybD1DSFJPTUVfRFJJVkVSX1VSTCwgdmVyc2lvbj12ZXJzaW9uLCBvcz1maWxl
bmFtZV9wb3N0Zml4KQotICAgICAgICAgICAgc2VsZi5pbnN0YWxsX2JpbmFyeShmdWxsX2Nocm9t
ZV91cmwsICdjaHJvbWVkcml2ZXInKQotCi0gICAgZGVmIGluc3RhbGxfZ2Vja29kcml2ZXIoc2Vs
Zik6Ci0gICAgICAgIGZpbGVuYW1lX3Bvc3RmaXggPSBnZXRfZHJpdmVyX2ZpbGVuYW1lKCkuZmly
ZWZveAotICAgICAgICBpZiBmaWxlbmFtZV9wb3N0Zml4ICE9ICJ1bnN1cHBvcnRlZCI6Ci0gICAg
ICAgICAgICBmaXJlZm94X3JlbGVhc2VzX2Jsb2IgPSB1cmxvcGVuKEZJUkVGT1hfUkVMRUFTRVNf
VVJMKQotICAgICAgICAgICAgZmlyZWZveF9yZWxlYXNlc19saW5lX3NlcGFyYXRlZCA9IGpzb24u
ZHVtcHMoanNvbi5sb2FkKGZpcmVmb3hfcmVsZWFzZXNfYmxvYiksIGluZGVudD0wKS5zdHJpcCgp
Ci0gICAgICAgICAgICBhbGxfZmlyZWZveF9yZWxlYXNlX3VybHMgPSAiXG4iLmpvaW4ocmUuZmlu
ZGFsbChyJy4qYnJvd3Nlcl9kb3dubG9hZF91cmwuKicsIGZpcmVmb3hfcmVsZWFzZXNfbGluZV9z
ZXBhcmF0ZWQpKQotICAgICAgICAgICAgZnVsbF9maXJlZm94X3VybCA9IHJlLmZpbmRhbGwocicu
KiVzLionICUgZmlsZW5hbWVfcG9zdGZpeCwgYWxsX2ZpcmVmb3hfcmVsZWFzZV91cmxzKVswXS5z
cGxpdCgnIicpWzNdCi0gICAgICAgICAgICBzZWxmLmluc3RhbGxfYmluYXJ5KGZ1bGxfZmlyZWZv
eF91cmwsICdnZWNrb2RyaXZlcicpCi0KICAgICBkZWYgX2luc3RhbGwoc2VsZiwgdXJsLCB1cmxf
c3VicGF0aD1Ob25lLCB0YXJnZXRfbmFtZT1Ob25lKToKICAgICAgICAgaW5zdGFsbGVyID0gQXV0
b0luc3RhbGxlcih0YXJnZXRfZGlyPV9BVVRPSU5TVEFMTEVEX0RJUikKICAgICAgICAgcmV0dXJu
IGluc3RhbGxlci5pbnN0YWxsKHVybD11cmwsIHVybF9zdWJwYXRoPXVybF9zdWJwYXRoLCB0YXJn
ZXRfbmFtZT10YXJnZXRfbmFtZSkKQEAgLTE4NCwyMSArMTU4LDMgQEAgZGVmIGF1dG9pbnN0YWxs
X2V2ZXJ5dGhpbmcoKToKICAgICBpbnN0YWxsX21ldGhvZHMgPSBbbWV0aG9kIGZvciBtZXRob2Qg
aW4gZGlyKF9ob29rLl9fY2xhc3NfXykgaWYgbWV0aG9kLnN0YXJ0c3dpdGgoJ19pbnN0YWxsXycp
XQogICAgIGZvciBtZXRob2QgaW4gaW5zdGFsbF9tZXRob2RzOgogICAgICAgICBnZXRhdHRyKF9o
b29rLCBtZXRob2QpKCkKLQotZGVmIGdldF9kcml2ZXJfZmlsZW5hbWUoKToKLSAgICBvc19uYW1l
LCBvc190eXBlID0gZ2V0X29zX2luZm8oKQotICAgIGNocm9tZV9vcywgZmlsZWZveF9vcyA9ICd1
bnN1cHBvcnRlZCcsICd1bnN1cHBvcnRlZCcKLSAgICBpZiBvc19uYW1lID09ICdMaW51eCcgYW5k
IG9zX3R5cGUgPT0gJzY0JzoKLSAgICAgICAgY2hyb21lX29zLCBmaXJlZm94X29zID0gJ2xpbnV4
NjQnLCAnbGludXg2NCcKLSAgICBlbGlmIG9zX25hbWUgPT0gJ0xpbnV4JzoKLSAgICAgICAgY2hy
b21lX29zLCBmaXJlZm94X29zID0gJ2xpbnV4MzInLCAnbGludXgzMicKLSAgICBlbGlmIG9zX25h
bWUgPT0gJ0Rhcndpbic6Ci0gICAgICAgIGNocm9tZV9vcywgZmlyZWZveF9vcyA9ICdtYWM2NCcs
ICdtYWNvcycKLSAgICBEcml2ZXJGaWxlbmFtZUZvckJyb3dzZXIgPSBuYW1lZHR1cGxlKCdEcml2
ZXJGaWxlbmFtZUZvckJyb3dzZXInLCBbJ2Nocm9tZScsICdmaXJlZm94J10pCi0gICAgcmV0dXJu
IERyaXZlckZpbGVuYW1lRm9yQnJvd3NlcihjaHJvbWVfb3MsIGZpcmVmb3hfb3MpCi0KLWRlZiBn
ZXRfb3NfaW5mbygpOgotICAgIGltcG9ydCBwbGF0Zm9ybQotICAgIG9zX25hbWUgPSBwbGF0Zm9y
bS5zeXN0ZW0oKQotICAgIG9zX3R5cGUgPSBwbGF0Zm9ybS5tYWNoaW5lKClbLTI6XQotICAgIHJl
dHVybiAob3NfbmFtZSwgb3NfdHlwZSkK
</data>

          </attachment>
      

    </bug>

</bugzilla>