<?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>235074</bug_id>
          
          <creation_ts>2022-01-11 10:12:19 -0800</creation_ts>
          <short_desc>[EWS] Load contributors from stand-alone class</short_desc>
          <delta_ts>2022-01-19 10:08:21 -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>CONFIGURATION CHANGED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=234847</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>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1829839</commentid>
    <comment_count>0</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2022-01-11 10:12:19 -0800</bug_when>
    <thetext>The hook that GitHub sends buildbot has all the information we need, we should parse it&apos;s output into build properties.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829840</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-01-11 10:12:34 -0800</bug_when>
    <thetext>&lt;rdar://problem/87406157&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829843</commentid>
    <comment_count>2</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2022-01-11 10:16:43 -0800</bug_when>
    <thetext>Pull-request: https://github.com/WebKit/WebKit/pull/69</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829848</commentid>
    <comment_count>3</comment_count>
      <attachid>448854</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2022-01-11 10:40:32 -0800</bug_when>
    <thetext>Created attachment 448854
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829926</commentid>
    <comment_count>4</comment_count>
      <attachid>448882</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2022-01-11 14:52:52 -0800</bug_when>
    <thetext>Created attachment 448882
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830097</commentid>
    <comment_count>5</comment_count>
      <attachid>448882</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2022-01-12 05:33:38 -0800</bug_when>
    <thetext>Comment on attachment 448882
Patch

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

&gt; Tools/ChangeLog:3
&gt; +        [EWS] Set build properties based on hook

based on hook =&gt; based on GitHub Pull Request hooks

&gt; Tools/CISupport/ews-build/events.py:224
&gt; +        properties[&apos;title&apos;] = payload.get(&apos;title&apos;, &apos;?&apos;)

can you provide example of build with and without this change?

&gt; Tools/CISupport/ews-build/events.py:231
&gt; +        contributors, _ = Contributors.load()

Note that Contributors.load() would be a network call to github.com. Please ensure that it is intentional that you want to do network call.

&gt; Tools/CISupport/ews-build/steps.py:59
&gt; +GITHUB_PROJECTS = [&apos;WebKit/WebKit&apos;]

do we intend to add more projects here in future?

&gt; Tools/CISupport/ews-build/steps.py:81
&gt; +    def pr_url(cls, repository, pr_number):

can/should we make repository as optional parameter defaulting to &apos;WebKit/WebKit&apos;?
Also repository =&gt; repository_url

&gt; Tools/CISupport/ews-build/steps.py:84
&gt; +        if not pr_number or isinstance(1234, int):

1234 seems to be from debugging, please update accordingly.

&gt; Tools/CISupport/ews-build/steps.py:96
&gt; +        repo_root = os.path.dirname(os.path.dirname(os.path.dirname(cwd)))

curious if this is correct or need one more os.path.dirname

&gt; Tools/CISupport/ews-build/steps.py:116
&gt; +        lines = []

lines/line should be replaced with errors/error through-out this patch, the generic variable name &apos;lines&apos; is making the code logic harder to follow. At one point in this review, when I saw &apos;lines&apos; variable being printed to the stdio, I thought it was just for debugging and left by mistake.

&gt; Tools/CISupport/ews-build/steps.py:130
&gt; +            github = value.get(&apos;github&apos;)

github =&gt; github_username

&gt; Tools/CISupport/ews-build/steps.py:135
&gt; +                contributors[github] = &apos;{} &lt;{}&gt;&apos;.format(name, emails[0].lower())

instead of string, we might want to store this as a dictionary (containing name, status and maybe email), e.g.: we might want to validate that the given github username is a reviewer or not.

&gt; Tools/CISupport/ews-build/steps.py:192
&gt; +            self.addURL(&apos;Pull request {}&apos;.format(pr_number), GitHub.pr_url(self.getProperty(&apos;repository&apos;), pr_number) or &apos;?&apos;)

Please check if we can skip passing repository property here instead either use default value of read the property inside the pr_url method.
Also &apos;?&apos; =&gt; &apos;&apos; so that the link isn&apos;t clickable.

&gt; Tools/CISupport/ews-build/steps.py:1009
&gt; +    def __init__(self, *args, **kwargs):

Do we need this init method?

&gt; Tools/CISupport/ews-build/steps.py:1054
&gt; +        for line in lines:

Ditto. Please rename to: for error in errors: 
otherwise it&apos;s very confusing what is being printed here. Separately we can also do a print statement here so that it is also printed to server logs (in case we want to search the server logs)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830100</commentid>
    <comment_count>6</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2022-01-12 05:37:15 -0800</bug_when>
    <thetext>Overall I feel like there should be a better way to deal with these properties. If buildbot doesn&apos;t provide these properties, we should change buildbot code to parse these out as this can be useful for everyone. But that upstream process can be independent of this patch.

Let me also look into buildbot code to figure out if there is a better way to achieve this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830117</commentid>
    <comment_count>7</comment_count>
      <attachid>448882</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2022-01-12 07:38:31 -0800</bug_when>
    <thetext>Comment on attachment 448882
Patch

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

&gt;&gt; Tools/CISupport/ews-build/steps.py:59
&gt;&gt; +GITHUB_PROJECTS = [&apos;WebKit/WebKit&apos;]
&gt; 
&gt; do we intend to add more projects here in future?

Yes, for security bug support (which would be a different project, likely WebKit/WebKit-Security or something to that effect)

&gt;&gt; Tools/CISupport/ews-build/steps.py:81
&gt;&gt; +    def pr_url(cls, repository, pr_number):
&gt; 
&gt; can/should we make repository as optional parameter defaulting to &apos;WebKit/WebKit&apos;?
&gt; Also repository =&gt; repository_url

repository will be https://github.com/WebKit/WebKit. And a default could make sense here.

&gt;&gt; Tools/CISupport/ews-build/steps.py:192
&gt;&gt; +            self.addURL(&apos;Pull request {}&apos;.format(pr_number), GitHub.pr_url(self.getProperty(&apos;repository&apos;), pr_number) or &apos;?&apos;)
&gt; 
&gt; Please check if we can skip passing repository property here instead either use default value of read the property inside the pr_url method.
&gt; Also &apos;?&apos; =&gt; &apos;&apos; so that the link isn&apos;t clickable.

We can&apos;t skip passing repository here because we will have different repositories for security bugs in the future.

&gt;&gt; Tools/CISupport/ews-build/steps.py:1009
&gt;&gt; +    def __init__(self, *args, **kwargs):
&gt; 
&gt; Do we need this init method?

I&apos;m not very familiar with Buildbot&apos;s object lifecycle. I assumed we wanted to guarantee self.contributors is set, is this the best way to do that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830121</commentid>
    <comment_count>8</comment_count>
      <attachid>448882</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2022-01-12 07:51:09 -0800</bug_when>
    <thetext>Comment on attachment 448882
Patch

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

&gt;&gt; Tools/CISupport/ews-build/events.py:231
&gt;&gt; +        contributors, _ = Contributors.load()
&gt; 
&gt; Note that Contributors.load() would be a network call to github.com. Please ensure that it is intentional that you want to do network call.

Got my wires a bit crossed here. I thought it was default disk load and fallback network load. But it&apos;s actually default network load and default disk load. Going to do a bit of caching here.

&gt;&gt; Tools/CISupport/ews-build/steps.py:96
&gt;&gt; +        repo_root = os.path.dirname(os.path.dirname(os.path.dirname(cwd)))
&gt; 
&gt; curious if this is correct or need one more os.path.dirname

Copied this from existing code, I think it&apos;s right?

dirname(&apos;&lt;repo&gt;/Tools/CISupport/ews-build/steps.py&apos;) -&gt; &apos;&lt;repo&gt;/Tools/CISupport/ews-build&apos;
dirname(&apos;&lt;repo&gt;/Tools/CISupport/ews-build&apos;) -&gt; &apos;&lt;repo&gt;/Tools/CISupport&apos;
dirname(&apos;&lt;repo&gt;/Tools/CISupport&apos;) -&gt; &apos;&lt;repo&gt;/Tools&apos;
dirname(&apos;&lt;repo&gt;/Tools&apos;) -&gt; &apos;&lt;repo&gt;&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830130</commentid>
    <comment_count>9</comment_count>
      <attachid>448947</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2022-01-12 08:16:39 -0800</bug_when>
    <thetext>Created attachment 448947
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830133</commentid>
    <comment_count>10</comment_count>
      <attachid>448948</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2022-01-12 08:25:37 -0800</bug_when>
    <thetext>Created attachment 448948
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830137</commentid>
    <comment_count>11</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2022-01-12 08:31:16 -0800</bug_when>
    <thetext>(In reply to Aakash Jain from comment #6)
&gt; Let me also look into buildbot code to figure out if there is a better way to achieve this.

github_property_whitelist might achieve this functionality of parsing build properties from the hook, see: https://docs.buildbot.net/latest/manual/configuration/wwwhooks.html#github-hook
&quot;A list of fnmatch expressions which match against the flattened pull request information JSON&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830138</commentid>
    <comment_count>12</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2022-01-12 08:36:21 -0800</bug_when>
    <thetext>To Aakash&apos;s previous ask:
With the change: https://ews-build.webkit-uat.org/#/builders/9/builds/1963
Without the change: https://ews-build.webkit-uat.org/#/builders/9/builds/1964</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830139</commentid>
    <comment_count>13</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2022-01-12 08:39:52 -0800</bug_when>
    <thetext>(In reply to Aakash Jain from comment #11)
&gt; (In reply to Aakash Jain from comment #6)
&gt; &gt; Let me also look into buildbot code to figure out if there is a better way to achieve this.
&gt; 
&gt; github_property_whitelist might achieve this functionality of parsing build
&gt; properties from the hook, see:
&gt; https://docs.buildbot.net/latest/manual/configuration/wwwhooks.html#github-
&gt; hook
&gt; &quot;A list of fnmatch expressions which match against the flattened pull
&gt; request information JSON&quot;

This does work, https://ews-build.webkit-uat.org/#/builders/9/builds/1965, although I&apos;m not sure that it&apos;s more clear than us setting the properties ourselves. And we can&apos;t convert GitHub usernames to name + email.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830206</commentid>
    <comment_count>14</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2022-01-12 10:47:44 -0800</bug_when>
    <thetext>Aakash and I discussed achieving the original goals of this change in https://github.com/WebKit/WebKit/pull/66. Re-purposing to cover just the contributors.json change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830207</commentid>
    <comment_count>15</comment_count>
      <attachid>448963</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2022-01-12 10:48:44 -0800</bug_when>
    <thetext>Created attachment 448963
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830222</commentid>
    <comment_count>16</comment_count>
      <attachid>448968</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2022-01-12 11:06:21 -0800</bug_when>
    <thetext>Created attachment 448968
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830237</commentid>
    <comment_count>17</comment_count>
      <attachid>448974</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2022-01-12 11:24:08 -0800</bug_when>
    <thetext>Created attachment 448974
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830240</commentid>
    <comment_count>18</comment_count>
      <attachid>448975</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2022-01-12 11:32:13 -0800</bug_when>
    <thetext>Created attachment 448975
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830257</commentid>
    <comment_count>19</comment_count>
      <attachid>448981</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2022-01-12 11:57:15 -0800</bug_when>
    <thetext>Created attachment 448981
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830272</commentid>
    <comment_count>20</comment_count>
      <attachid>448983</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2022-01-12 12:10:34 -0800</bug_when>
    <thetext>Created attachment 448983
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830316</commentid>
    <comment_count>21</comment_count>
      <attachid>448990</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2022-01-12 13:23:08 -0800</bug_when>
    <thetext>Created attachment 448990
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830374</commentid>
    <comment_count>22</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2022-01-12 15:37:41 -0800</bug_when>
    <thetext>Returning this bug to it&apos;s old name and opening a new one to cover contributors changes. We did the extra hook parsing in https://bugs.webkit.org/show_bug.cgi?id=235033.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831701</commentid>
    <comment_count>23</comment_count>
      <attachid>448990</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2022-01-18 09:37:08 -0800</bug_when>
    <thetext>Comment on attachment 448990
Patch

Won&apos;t be landing this, it was landed in 246007@main (r287978)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831789</commentid>
    <comment_count>24</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2022-01-18 13:30:47 -0800</bug_when>
    <thetext>Testing automated comment (23)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831791</commentid>
    <comment_count>25</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2022-01-18 13:31:34 -0800</bug_when>
    <thetext>Testing automated comment (24)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832069</commentid>
    <comment_count>26</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2022-01-19 10:08:21 -0800</bug_when>
    <thetext>Testing comment response</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448854</attachid>
            <date>2022-01-11 10:40:32 -0800</date>
            <delta_ts>2022-01-11 14:52:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235074-20220111104031.patch</filename>
            <type>text/plain</type>
            <size>10610</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3ODg0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNjg1MWY2MTI4OTRjZjliZmQ4MWUxMzUxZGQ0MWI3MGYz
MjVjNWRkYy4uZTE5MDRhNDU4YmI4NDQyZTZhNTc2NWMxM2I0NzFlODQzMTgyMDA3NyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2
IEBACisyMDIyLTAxLTExICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbRVdTXSBTZXQgYnVpbGQgcHJvcGVydGllcyBiYXNlZCBvbiBob29rCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzUwNzQKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzg3NDA2MTU3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogQ0lTdXBwb3J0L2V3cy1idWlsZC9ldmVudHMucHk6CisgICAg
ICAgIChHaXRIdWJQdWxsUmVxdWVzdEhhbmRsZXIuZXh0cmFjdFByb3BlcnRpZXMpOiBTZXQgYnVp
bGQgcHJvcGVydGllcyBiYXNlZCBvbgorICAgICAgICBHaXRIdWIgcHVsbC1yZXF1ZXN0IHBheWxv
YWQuCisgICAgICAgICogQ0lTdXBwb3J0L2V3cy1idWlsZC9zdGVwcy5weToKKyAgICAgICAgKEdp
dEh1Yi5yZXBvc2l0b3J5X3VybHMpOiBDb25jYXRlbmF0ZSBhbGwgdmFsaWQgcHJvamVjdHMgd2l0
aCB0aGUgYmFzZSBVUkwuCisgICAgICAgIChHaXRIdWIucHJfdXJsKTogR2l2ZW4gYSByZXBvc2l0
b3J5IGFuZCBwdWxsLXJlcXVlc3QgbnVtYmVyLCByZXR1cm4gdGhlIFVSTAorICAgICAgICBmb3Ig
dGhhdCBwdWxsLXJlcXVlc3QuCisgICAgICAgIChDb250cmlidXRvcnMpOiBNb3ZlZCBmcm9tIFZh
bGlkYXRlQ29tbWl0ZXJBbmRSZXZpZXdlci4KKyAgICAgICAgKENvbmZpZ3VyZUJ1aWxkLmFkZF9w
cl9kZXRhaWxzKTogCisgICAgICAgIChWYWxpZGF0ZUNvbW1pdGVyQW5kUmV2aWV3ZXIpOiBVc2Ug
Q29udHJpYnV0b3JzIGNsYXNzLgorICAgICAgICAoR2l0SHViTWl4aW4pOiBEZWxldGVkLgorICAg
ICAgICAoVmFsaWRhdGVDb21taXRlckFuZFJldmlld2VyLmxvYWRfY29udHJpYnV0b3JzX2Zyb21f
ZGlzayk6IE1vdmVkIHRvIENvbnRyaWJ1dG9ycy4KKyAgICAgICAgKFZhbGlkYXRlQ29tbWl0ZXJB
bmRSZXZpZXdlci5sb2FkX2NvbnRyaWJ1dG9yc19mcm9tX2dpdGh1Yik6IERpdHRvLgorICAgICAg
ICAoVmFsaWRhdGVDb21taXRlckFuZFJldmlld2VyLmxvYWRfY29udHJpYnV0b3JzKTogRGl0dG8u
CisKIDIwMjItMDEtMTEgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgogCiAgICAgICAgIFtHVEtdW2ExMXldIFdlYiBwcm9jZXNzIGNyYXNoZXMgaW4gc29tZSBzaXRl
cyBoYXZpbmcgU1ZHIGltYWdlcwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWls
ZC9ldmVudHMucHkgYi9Ub29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL2V2ZW50cy5weQppbmRleCAx
MzFlOWNmNjIxNDNkZjdiMmY0NjlhNjIxNDNlNTMyMzU2NjZjYTQ4Li5lN2NiYjljNDczMDU3OWFh
NGFhZDE3OGZjOTQ1YjhhYzM4YWY2NWU4IDEwMDY0NAotLS0gYS9Ub29scy9DSVN1cHBvcnQvZXdz
LWJ1aWxkL2V2ZW50cy5weQorKysgYi9Ub29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL2V2ZW50cy5w
eQpAQCAtMSw0ICsxLDQgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE5LCAyMDIyIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjcsNiAr
MjcsOCBAQCBpbXBvcnQgb3MKIGltcG9ydCB0aW1lCiAKIGZyb20gYnVpbGRib3QudXRpbCBpbXBv
cnQgc2VydmljZQorZnJvbSBidWlsZGJvdC53d3cuaG9va3MuZ2l0aHViIGltcG9ydCBHaXRIdWJF
dmVudEhhbmRsZXIKK2Zyb20gc3RlcHMgaW1wb3J0IENvbnRyaWJ1dG9ycwogZnJvbSB0d2lzdGVk
LmludGVybmV0IGltcG9ydCBkZWZlcgogZnJvbSB0d2lzdGVkLmludGVybmV0IGltcG9ydCByZWFj
dG9yCiBmcm9tIHR3aXN0ZWQuaW50ZXJuZXQuZGVmZXIgaW1wb3J0IHN1Y2NlZWQKQEAgLTIxNCwz
ICsyMTYsMTggQEAgY2xhc3MgRXZlbnRzKHNlcnZpY2UuQnVpbGRib3RTZXJ2aWNlKToKICAgICAg
ICAgc2VsZi5fYnVpbGRDb21wbGV0ZUNvbnN1bWVyLnN0b3BDb25zdW1pbmcoKQogICAgICAgICBz
ZWxmLl9zdGVwU3RhcnRlZENvbnN1bWVyLnN0b3BDb25zdW1pbmcoKQogICAgICAgICBzZWxmLl9z
dGVwRmluaXNoZWRDb25zdW1lci5zdG9wQ29uc3VtaW5nKCkKKworCitjbGFzcyBHaXRIdWJQdWxs
UmVxdWVzdEhhbmRsZXIoR2l0SHViRXZlbnRIYW5kbGVyKToKKyAgICBkZWYgZXh0cmFjdFByb3Bl
cnRpZXMoc2VsZiwgcGF5bG9hZCk6CisgICAgICAgIHByb3BlcnRpZXMgPSBzdXBlcihHaXRIdWJQ
dWxsUmVxdWVzdEhhbmRsZXIsIHNlbGYpLmV4dHJhY3RQcm9wZXJ0aWVzKHBheWxvYWQpCisgICAg
ICAgIHByb3BlcnRpZXNbJ3RpdGxlJ10gPSBwYXlsb2FkLmdldCgndGl0bGUnLCAnPycpCisgICAg
ICAgIHByb3BlcnRpZXNbJ3B1bGxfcmVxdWVzdF9udW1iZXInXSA9IHBheWxvYWQuZ2V0KCdudW1i
ZXInLCAnLScpCisgICAgICAgIHByb3BlcnRpZXNbJ3JlZiddID0gcGF5bG9hZC5nZXQoJ2hlYWQn
LCB7fSkuZ2V0KCdyZWYnKQorICAgICAgICBwcm9wZXJ0aWVzWydyZW1vdGUnXSA9IHBheWxvYWQu
Z2V0KCdoZWFkJywge30pLmdldCgncmVwbycsIHt9KS5nZXQoJ2Z1bGxfbmFtZScpCisKKyAgICAg
ICAgdXNlcm5hbWUgPSBwYXlsb2FkLmdldCgndXNlcicsIHt9KS5nZXQoJ2xvZ2luJykKKyAgICAg
ICAgY29udHJpYnV0b3JzLCBfID0gQ29udHJpYnV0b3JzLmxvYWQoKQorICAgICAgICBwcm9wZXJ0
aWVzWydhdXRob3InXSA9IGNvbnRyaWJ1dG9ycy5nZXQodXNlcm5hbWUsIHBheWxvYWRbJ3VzZXIn
XVsnbG9naW4nXSkKKworICAgICAgICByZXR1cm4gcHJvcGVydGllcwpkaWZmIC0tZ2l0IGEvVG9v
bHMvQ0lTdXBwb3J0L2V3cy1idWlsZC9zdGVwcy5weSBiL1Rvb2xzL0NJU3VwcG9ydC9ld3MtYnVp
bGQvc3RlcHMucHkKaW5kZXggYWRmNzQ2NTFhNjU4MjFiN2ZlMDFjMWYxYzgyNjE3MTBmZDM4MDZh
OS4uZDdkNTY2MjEyNDMyODFkNGIzZTNmNTI2ZTlmOWE2ZjJjNDMyZTg4MSAxMDA2NDQKLS0tIGEv
VG9vbHMvQ0lTdXBwb3J0L2V3cy1idWlsZC9zdGVwcy5weQorKysgYi9Ub29scy9DSVN1cHBvcnQv
ZXdzLWJ1aWxkL3N0ZXBzLnB5CkBAIC01NSw3ICs1NSw4IEBAIFJFU1VMVFNfREJfVVJMID0gJ2h0
dHBzOi8vcmVzdWx0cy53ZWJraXQub3JnLycKIFdpdGhQcm9wZXJ0aWVzID0gcHJvcGVydGllcy5X
aXRoUHJvcGVydGllcwogSW50ZXJwb2xhdGUgPSBwcm9wZXJ0aWVzLkludGVycG9sYXRlCiBCUkFO
Q0hfUFJfUkUgPSByZS5jb21waWxlKHInXnJlZnMvcHVsbC8oP1A8aWQ+XGQrKS9tZXJnZSQnKQot
R0lUSFVCX1JFUE9TSVRPUklFUyA9IFsnaHR0cHM6Ly9naXRodWIuY29tL1dlYktpdC9XZWJLaXQn
XQorR0lUSFVCX1VSTCA9ICdodHRwczovL2dpdGh1Yi5jb20vJworR0lUSFVCX1BST0pFQ1RTID0g
WydXZWJLaXQvV2ViS2l0J10KIAogCiBjbGFzcyBCdWZmZXJMb2dIZWFkZXJPYnNlcnZlcihsb2dv
YnNlcnZlci5CdWZmZXJMb2dPYnNlcnZlcik6CkBAIC03MSwyOSArNzIsNjggQEAgY2xhc3MgQnVm
ZmVyTG9nSGVhZGVyT2JzZXJ2ZXIobG9nb2JzZXJ2ZXIuQnVmZmVyTG9nT2JzZXJ2ZXIpOgogICAg
ICAgICByZXR1cm4gc2VsZi5fZ2V0KHNlbGYuaGVhZGVycykKIAogCi1jbGFzcyBHaXRIdWJNaXhp
bihvYmplY3QpOgotICAgIGRlZiBwcl91cmwoc2VsZiwgcHJfbnVtYmVyPU5vbmUpOgotICAgICAg
ICBwcl9udW1iZXIgPSBwcl9udW1iZXIgb3Igc2VsZi5nZXRfcHVsbF9yZXF1ZXN0X251bWJlcigp
Ci0gICAgICAgIGlmIG5vdCBwcl9udW1iZXI6CitjbGFzcyBHaXRIdWIob2JqZWN0KToKKyAgICBA
Y2xhc3NtZXRob2QKKyAgICBkZWYgcmVwb3NpdG9yeV91cmxzKGNscyk6CisgICAgICAgIHJldHVy
biBbR0lUSFVCX1VSTCArIHByb2plY3QgZm9yIHByb2plY3QgaW4gR0lUSFVCX1BST0pFQ1RTXQor
CisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIHByX3VybChjbHMsIHJlcG9zaXRvcnksIHByX251
bWJlcik6CisgICAgICAgIGlmIG5vdCByZXBvc2l0b3J5IG9yIHJlcG9zaXRvcnkgbm90IGluIEdp
dEh1Yi5yZXBvc2l0b3J5X3VybHMoKToKKyAgICAgICAgICAgIHJldHVybiAnJworICAgICAgICBp
ZiBub3QgcHJfbnVtYmVyIG9yIGlzaW5zdGFuY2UoMTIzNCwgaW50KToKICAgICAgICAgICAgIHJl
dHVybiAnJwotICAgICAgICByZXR1cm4gJ3t9L3B1bGwve30nLmZvcm1hdChzZWxmLmdldFByb3Bl
cnR5KCdyZXBvc2l0b3J5JywgJy0nKSwgcHJfbnVtYmVyKQorICAgICAgICByZXR1cm4gJ3t9cHVs
bC97fScuZm9ybWF0KHJlcG9zaXRvcnksIHByX251bWJlcikKIAotICAgIGRlZiBnZXRfcHVsbF9y
ZXF1ZXN0X251bWJlcihzZWxmKToKLSAgICAgICAgcHJfbnVtYmVyID0gc2VsZi5nZXRQcm9wZXJ0
eSgncHVsbF9yZXF1ZXN0JykKLSAgICAgICAgaWYgcHJfbnVtYmVyOgotICAgICAgICAgICAgcmV0
dXJuIGludChwcl9udW1iZXIpCiAKLSAgICAgICAgaWYgc2VsZi5nZXRQcm9wZXJ0eSgnZXZlbnQn
KSAhPSAncHVsbF9yZXF1ZXN0JzoKLSAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAgIGlm
IHNlbGYuZ2V0UHJvcGVydHkoJ3JlcG9zaXRvcnknKSBub3QgaW4gR0lUSFVCX1JFUE9TSVRPUklF
UzoKLSAgICAgICAgICAgIHJldHVybiBOb25lCitjbGFzcyBDb250cmlidXRvcnMob2JqZWN0KToK
KyAgICB1cmwgPSAnaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1dlYktpdC9XZWJL
aXQvbWFpbi9tZXRhZGF0YS9jb250cmlidXRvcnMuanNvbicKKyAgICBjb250cmlidXRvcnMgPSB7
fQogCi0gICAgICAgIG1hdGNoID0gQlJBTkNIX1BSX1JFLm1hdGNoKHNlbGYuZ2V0UHJvcGVydHko
J2JyYW5jaCcsICcnKSkKLSAgICAgICAgaWYgbm90IG1hdGNoOgotICAgICAgICAgICAgcmV0dXJu
IE5vbmUKLSAgICAgICAgcHJfbnVtYmVyID0gaW50KG1hdGNoLmdyb3VwKCdpZCcpKQotICAgICAg
ICBzZWxmLnNldFByb3BlcnR5KCdwdWxsX3JlcXVlc3QnLCBwcl9udW1iZXIpCi0gICAgICAgIHJl
dHVybiBwcl9udW1iZXIKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgbG9hZF9mcm9tX2Rpc2so
Y2xzKToKKyAgICAgICAgY3dkID0gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguZGlybmFtZShfX2Zp
bGVfXykpCisgICAgICAgIHJlcG9fcm9vdCA9IG9zLnBhdGguZGlybmFtZShvcy5wYXRoLmRpcm5h
bWUob3MucGF0aC5kaXJuYW1lKGN3ZCkpKQorICAgICAgICBjb250cmlidXRvcnNfcGF0aCA9IG9z
LnBhdGguam9pbihyZXBvX3Jvb3QsICdtZXRhZGF0YS9jb250cmlidXRvcnMuanNvbicpCisgICAg
ICAgIHRyeToKKyAgICAgICAgICAgIHdpdGggb3Blbihjb250cmlidXRvcnNfcGF0aCwgJ3JiJykg
YXMgY29udHJpYnV0b3JzX2pzb246CisgICAgICAgICAgICAgICAgcmV0dXJuIGpzb24ubG9hZChj
b250cmlidXRvcnNfanNvbiksIE5vbmUKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgor
ICAgICAgICAgICAgcmV0dXJuIHt9LCAnRmFpbGVkIHRvIGxvYWQge31cbicuZm9ybWF0KGNvbnRy
aWJ1dG9yc19wYXRoKQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIGxvYWRfZnJvbV9naXRo
dWIoY2xzKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmVzcG9uc2UgPSByZXF1ZXN0cy5n
ZXQoY2xzLnVybCwgdGltZW91dD02MCkKKyAgICAgICAgICAgIGlmIHJlc3BvbnNlLnN0YXR1c19j
b2RlICE9IDIwMDoKKyAgICAgICAgICAgICAgICByZXR1cm4ge30sICdGYWlsZWQgdG8gYWNjZXNz
IHt9IHdpdGggc3RhdHVzIGNvZGU6IHt9XG4nLmZvcm1hdChjbHMudXJsLCByZXNwb25zZS5zdGF0
dXNfY29kZSkKKyAgICAgICAgICAgIHJldHVybiByZXNwb25zZS5qc29uKCksIE5vbmUKKyAgICAg
ICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgcmV0dXJuIHt9LCAnRmFpbGVk
IHRvIGFjY2VzcyB7dXJsfVxuJy5mb3JtYXQodXJsPWNscy51cmwpCisKKyAgICBAY2xhc3NtZXRo
b2QKKyAgICBkZWYgbG9hZChjbHMpOgorICAgICAgICBsaW5lcyA9IFtdCisgICAgICAgIGNvbnRy
aWJ1dG9yc19qc29uLCBsaW5lID0gY2xzLmxvYWRfZnJvbV9naXRodWIoKQorICAgICAgICBpZiBs
aW5lOgorICAgICAgICAgICAgbGluZXMuYXBwZW5kKGxpbmUpCisKKyAgICAgICAgaWYgbm90IGNv
bnRyaWJ1dG9yc19qc29uOgorICAgICAgICAgICAgY29udHJpYnV0b3JzX2pzb24sIGxpbmUgPSBj
bHMubG9hZF9mcm9tX2Rpc2soKQorICAgICAgICAgICAgaWYgbGluZToKKyAgICAgICAgICAgICAg
ICBsaW5lcy5hcHBlbmQobGluZSkKKworICAgICAgICBjb250cmlidXRvcnMgPSB7fQorICAgICAg
ICBmb3IgdmFsdWUgaW4gY29udHJpYnV0b3JzX2pzb246CisgICAgICAgICAgICBuYW1lID0gdmFs
dWUuZ2V0KCduYW1lJykKKyAgICAgICAgICAgIGVtYWlscyA9IHZhbHVlLmdldCgnZW1haWxzJykK
KyAgICAgICAgICAgIGdpdGh1YiA9IHZhbHVlLmdldCgnZ2l0aHViJykKKyAgICAgICAgICAgIGlm
IG5hbWUgYW5kIGVtYWlsczoKKyAgICAgICAgICAgICAgICBidWd6aWxsYV9lbWFpbCA9IGVtYWls
c1swXS5sb3dlcigpICAjIFdlJ3JlIHJlcXVpcmluZyB0aGF0IHRoZSBmaXJzdCBlbWFpbCBpcyB0
aGUgcHJpbWFyeSBidWd6aWxsYSBlbWFpbAorICAgICAgICAgICAgICAgIGNvbnRyaWJ1dG9yc1ti
dWd6aWxsYV9lbWFpbF0gPSB7J25hbWUnOiBuYW1lLCAnc3RhdHVzJzogdmFsdWUuZ2V0KCdzdGF0
dXMnKX0KKyAgICAgICAgICAgIGlmIGdpdGh1YiBhbmQgbmFtZSBhbmQgZW1haWxzOgorICAgICAg
ICAgICAgICAgIGNvbnRyaWJ1dG9yc1tnaXRodWJdID0gJ3t9IDx7fT4nLmZvcm1hdChuYW1lLCBl
bWFpbHNbMF0ubG93ZXIoKSkKKyAgICAgICAgcmV0dXJuIGNvbnRyaWJ1dG9ycywgbGluZXMKIAog
CiBjbGFzcyBDb25maWd1cmVCdWlsZChidWlsZHN0ZXAuQnVpbGRTdGVwLCBHaXRIdWJNaXhpbik6
CkBAIC0xNDcsOSArMTg3LDkgQEAgY2xhc3MgQ29uZmlndXJlQnVpbGQoYnVpbGRzdGVwLkJ1aWxk
U3RlcCwgR2l0SHViTWl4aW4pOgogICAgICAgICAgICAgc2VsZi5hZGRVUkwoJ1BhdGNoIHt9Jy5m
b3JtYXQocGF0Y2hfaWQpLCBCdWd6aWxsYS5wYXRjaF91cmwocGF0Y2hfaWQpKQogCiAgICAgZGVm
IGFkZF9wcl9kZXRhaWxzKHNlbGYpOgotICAgICAgICBwcl9udW1iZXIgPSBzZWxmLmdldF9wdWxs
X3JlcXVlc3RfbnVtYmVyKCkKKyAgICAgICAgcHJfbnVtYmVyID0gc2VsZi5nZXRQcm9wZXJ0eSgn
cHVsbF9yZXF1ZXN0X251bWJlcicpCiAgICAgICAgIGlmIHByX251bWJlcjoKLSAgICAgICAgICAg
IHNlbGYuYWRkVVJMKCdQdWxsIHJlcXVlc3Qge30nLmZvcm1hdChwcl9udW1iZXIpLCBzZWxmLnBy
X3VybChwcl9udW1iZXI9cHJfbnVtYmVyKSkKKyAgICAgICAgICAgIHNlbGYuYWRkVVJMKCdQdWxs
IHJlcXVlc3Qge30nLmZvcm1hdChwcl9udW1iZXIpLCBHaXRIdWIucHJfdXJsKHNlbGYuZ2V0UHJv
cGVydHkoJ3JlcG9zaXRvcnknKSwgcHJfbnVtYmVyKSBvciAnPycpCiAKIAogY2xhc3MgQ2hlY2tP
dXRTb3VyY2UoZ2l0LkdpdCk6CkBAIC05NjUsNDQgKzEwMDUsMTAgQEAgY2xhc3MgVmFsaWRhdGVQ
YXRjaChidWlsZHN0ZXAuQnVpbGRTdGVwLCBCdWd6aWxsYU1peGluKToKIGNsYXNzIFZhbGlkYXRl
Q29tbWl0ZXJBbmRSZXZpZXdlcihidWlsZHN0ZXAuQnVpbGRTdGVwKToKICAgICBuYW1lID0gJ3Zh
bGlkYXRlLWNvbW1pdGVyLWFuZC1yZXZpZXdlcicKICAgICBkZXNjcmlwdGlvbkRvbmUgPSBbJ1Zh
bGlkYXRlZCBjb21taXRlciBhbmQgcmV2aWV3ZXInXQotICAgIHVybCA9ICdodHRwczovL3Jhdy5n
aXRodWJ1c2VyY29udGVudC5jb20vV2ViS2l0L1dlYktpdC9tYWluL21ldGFkYXRhL2NvbnRyaWJ1
dG9ycy5qc29uJwotICAgIGNvbnRyaWJ1dG9ycyA9IHt9CiAKLSAgICBkZWYgbG9hZF9jb250cmli
dXRvcnNfZnJvbV9kaXNrKHNlbGYpOgotICAgICAgICBjd2QgPSBvcy5wYXRoLmFic3BhdGgob3Mu
cGF0aC5kaXJuYW1lKF9fZmlsZV9fKSkKLSAgICAgICAgcmVwb19yb290ID0gb3MucGF0aC5kaXJu
YW1lKG9zLnBhdGguZGlybmFtZShvcy5wYXRoLmRpcm5hbWUoY3dkKSkpCi0gICAgICAgIGNvbnRy
aWJ1dG9yc19wYXRoID0gb3MucGF0aC5qb2luKHJlcG9fcm9vdCwgJ21ldGFkYXRhL2NvbnRyaWJ1
dG9ycy5qc29uJykKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgd2l0aCBvcGVuKGNvbnRyaWJ1
dG9yc19wYXRoLCAncmInKSBhcyBjb250cmlidXRvcnNfanNvbjoKLSAgICAgICAgICAgICAgICBy
ZXR1cm4ganNvbi5sb2FkKGNvbnRyaWJ1dG9yc19qc29uKQotICAgICAgICBleGNlcHQgRXhjZXB0
aW9uIGFzIGU6Ci0gICAgICAgICAgICBzZWxmLl9hZGRUb0xvZygnc3RkaW8nLCAnRmFpbGVkIHRv
IGxvYWQge31cbicuZm9ybWF0KGNvbnRyaWJ1dG9yc19wYXRoKSkKLSAgICAgICAgICAgIHJldHVy
biB7fQotCi0gICAgZGVmIGxvYWRfY29udHJpYnV0b3JzX2Zyb21fZ2l0aHViKHNlbGYpOgotICAg
ICAgICB0cnk6Ci0gICAgICAgICAgICByZXNwb25zZSA9IHJlcXVlc3RzLmdldChzZWxmLnVybCwg
dGltZW91dD02MCkKLSAgICAgICAgICAgIGlmIHJlc3BvbnNlLnN0YXR1c19jb2RlICE9IDIwMDoK
LSAgICAgICAgICAgICAgICBzZWxmLl9hZGRUb0xvZygnc3RkaW8nLCAnRmFpbGVkIHRvIGFjY2Vz
cyB7fSB3aXRoIHN0YXR1cyBjb2RlOiB7fVxuJy5mb3JtYXQoc2VsZi51cmwsIHJlc3BvbnNlLnN0
YXR1c19jb2RlKSkKLSAgICAgICAgICAgICAgICByZXR1cm4ge30KLSAgICAgICAgICAgIHJldHVy
biByZXNwb25zZS5qc29uKCkKLSAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgotICAgICAg
ICAgICAgc2VsZi5fYWRkVG9Mb2coJ3N0ZGlvJywgJ0ZhaWxlZCB0byBhY2Nlc3Mge3VybH1cbicu
Zm9ybWF0KHVybD1zZWxmLnVybCkpCi0gICAgICAgICAgICByZXR1cm4ge30KLQotICAgIGRlZiBs
b2FkX2NvbnRyaWJ1dG9ycyhzZWxmKToKLSAgICAgICAgY29udHJpYnV0b3JzX2pzb24gPSBzZWxm
LmxvYWRfY29udHJpYnV0b3JzX2Zyb21fZ2l0aHViKCkKLSAgICAgICAgaWYgbm90IGNvbnRyaWJ1
dG9yc19qc29uOgotICAgICAgICAgICAgY29udHJpYnV0b3JzX2pzb24gPSBzZWxmLmxvYWRfY29u
dHJpYnV0b3JzX2Zyb21fZGlzaygpCi0KLSAgICAgICAgY29udHJpYnV0b3JzID0ge30KLSAgICAg
ICAgZm9yIHZhbHVlIGluIGNvbnRyaWJ1dG9yc19qc29uOgotICAgICAgICAgICAgbmFtZSA9IHZh
bHVlLmdldCgnbmFtZScpCi0gICAgICAgICAgICBlbWFpbHMgPSB2YWx1ZS5nZXQoJ2VtYWlscycp
Ci0gICAgICAgICAgICBpZiBuYW1lIGFuZCBlbWFpbHM6Ci0gICAgICAgICAgICAgICAgYnVnemls
bGFfZW1haWwgPSBlbWFpbHNbMF0ubG93ZXIoKSAgIyBXZSdyZSByZXF1aXJpbmcgdGhhdCB0aGUg
Zmlyc3QgZW1haWwgaXMgdGhlIHByaW1hcnkgYnVnemlsbGEgZW1haWwKLSAgICAgICAgICAgICAg
ICBjb250cmlidXRvcnNbYnVnemlsbGFfZW1haWxdID0geyduYW1lJzogbmFtZSwgJ3N0YXR1cyc6
IHZhbHVlLmdldCgnc3RhdHVzJyl9Ci0gICAgICAgIHJldHVybiBjb250cmlidXRvcnMKKyAgICBk
ZWYgX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgc3VwZXIoVmFsaWRh
dGVDb21taXRlckFuZFJldmlld2VyLCBzZWxmKS5fX2luaXRfXygqYXJncywgKiprd2FyZ3MpCisg
ICAgICAgIHNlbGYuY29udHJpYnV0b3JzID0ge30KIAogICAgIEBkZWZlci5pbmxpbmVDYWxsYmFj
a3MKICAgICBkZWYgX2FkZFRvTG9nKHNlbGYsIGxvZ05hbWUsIG1lc3NhZ2UpOgpAQCAtMTA0NCw3
ICsxMDUwLDEwIEBAIGNsYXNzIFZhbGlkYXRlQ29tbWl0ZXJBbmRSZXZpZXdlcihidWlsZHN0ZXAu
QnVpbGRTdGVwKToKICAgICAgICAgcmV0dXJuIGNvbnRyaWJ1dG9yLmdldCgnbmFtZScpCiAKICAg
ICBkZWYgc3RhcnQoc2VsZik6Ci0gICAgICAgIHNlbGYuY29udHJpYnV0b3JzID0gc2VsZi5sb2Fk
X2NvbnRyaWJ1dG9ycygpCisgICAgICAgIHNlbGYuY29udHJpYnV0b3JzLCBsaW5lcyA9IENvbnRy
aWJ1dG9ycy5sb2FkKCkKKyAgICAgICAgZm9yIGxpbmUgaW4gbGluZXM6CisgICAgICAgICAgICBz
ZWxmLl9hZGRUb0xvZygnc3RkaW8nLCBsaW5lKQorCiAgICAgICAgIGlmIG5vdCBzZWxmLmNvbnRy
aWJ1dG9yczoKICAgICAgICAgICAgIHNlbGYuZmluaXNoZWQoRkFJTFVSRSkKICAgICAgICAgICAg
IHNlbGYuZGVzY3JpcHRpb25Eb25lID0gJ0ZhaWxlZCB0byBnZXQgY29udHJpYnV0b3JzIGluZm9y
bWF0aW9uJwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448882</attachid>
            <date>2022-01-11 14:52:52 -0800</date>
            <delta_ts>2022-01-12 08:16:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235074-20220111145251.patch</filename>
            <type>text/plain</type>
            <size>10684</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3ODk2CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNjg1MWY2MTI4OTRjZjliZmQ4MWUxMzUxZGQ0MWI3MGYz
MjVjNWRkYy4uZTE5MDRhNDU4YmI4NDQyZTZhNTc2NWMxM2I0NzFlODQzMTgyMDA3NyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2
IEBACisyMDIyLTAxLTExICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbRVdTXSBTZXQgYnVpbGQgcHJvcGVydGllcyBiYXNlZCBvbiBob29rCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzUwNzQKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzg3NDA2MTU3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogQ0lTdXBwb3J0L2V3cy1idWlsZC9ldmVudHMucHk6CisgICAg
ICAgIChHaXRIdWJQdWxsUmVxdWVzdEhhbmRsZXIuZXh0cmFjdFByb3BlcnRpZXMpOiBTZXQgYnVp
bGQgcHJvcGVydGllcyBiYXNlZCBvbgorICAgICAgICBHaXRIdWIgcHVsbC1yZXF1ZXN0IHBheWxv
YWQuCisgICAgICAgICogQ0lTdXBwb3J0L2V3cy1idWlsZC9zdGVwcy5weToKKyAgICAgICAgKEdp
dEh1Yi5yZXBvc2l0b3J5X3VybHMpOiBDb25jYXRlbmF0ZSBhbGwgdmFsaWQgcHJvamVjdHMgd2l0
aCB0aGUgYmFzZSBVUkwuCisgICAgICAgIChHaXRIdWIucHJfdXJsKTogR2l2ZW4gYSByZXBvc2l0
b3J5IGFuZCBwdWxsLXJlcXVlc3QgbnVtYmVyLCByZXR1cm4gdGhlIFVSTAorICAgICAgICBmb3Ig
dGhhdCBwdWxsLXJlcXVlc3QuCisgICAgICAgIChDb250cmlidXRvcnMpOiBNb3ZlZCBmcm9tIFZh
bGlkYXRlQ29tbWl0ZXJBbmRSZXZpZXdlci4KKyAgICAgICAgKENvbmZpZ3VyZUJ1aWxkLmFkZF9w
cl9kZXRhaWxzKTogCisgICAgICAgIChWYWxpZGF0ZUNvbW1pdGVyQW5kUmV2aWV3ZXIpOiBVc2Ug
Q29udHJpYnV0b3JzIGNsYXNzLgorICAgICAgICAoR2l0SHViTWl4aW4pOiBEZWxldGVkLgorICAg
ICAgICAoVmFsaWRhdGVDb21taXRlckFuZFJldmlld2VyLmxvYWRfY29udHJpYnV0b3JzX2Zyb21f
ZGlzayk6IE1vdmVkIHRvIENvbnRyaWJ1dG9ycy4KKyAgICAgICAgKFZhbGlkYXRlQ29tbWl0ZXJB
bmRSZXZpZXdlci5sb2FkX2NvbnRyaWJ1dG9yc19mcm9tX2dpdGh1Yik6IERpdHRvLgorICAgICAg
ICAoVmFsaWRhdGVDb21taXRlckFuZFJldmlld2VyLmxvYWRfY29udHJpYnV0b3JzKTogRGl0dG8u
CisKIDIwMjItMDEtMTEgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgogCiAgICAgICAgIFtHVEtdW2ExMXldIFdlYiBwcm9jZXNzIGNyYXNoZXMgaW4gc29tZSBzaXRl
cyBoYXZpbmcgU1ZHIGltYWdlcwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWls
ZC9ldmVudHMucHkgYi9Ub29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL2V2ZW50cy5weQppbmRleCAx
MzFlOWNmNjIxNDNkZjdiMmY0NjlhNjIxNDNlNTMyMzU2NjZjYTQ4Li40Y2IwNmNjOGExNGUwNGUz
NTNiNjA5OTU3ZGQ3ZGE1MGU1ODNkMWYxIDEwMDY0NAotLS0gYS9Ub29scy9DSVN1cHBvcnQvZXdz
LWJ1aWxkL2V2ZW50cy5weQorKysgYi9Ub29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL2V2ZW50cy5w
eQpAQCAtMSw0ICsxLDQgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE5LCAyMDIyIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjcsNiAr
MjcsOCBAQCBpbXBvcnQgb3MKIGltcG9ydCB0aW1lCiAKIGZyb20gYnVpbGRib3QudXRpbCBpbXBv
cnQgc2VydmljZQorZnJvbSBidWlsZGJvdC53d3cuaG9va3MuZ2l0aHViIGltcG9ydCBHaXRIdWJF
dmVudEhhbmRsZXIKK2Zyb20gc3RlcHMgaW1wb3J0IENvbnRyaWJ1dG9ycwogZnJvbSB0d2lzdGVk
LmludGVybmV0IGltcG9ydCBkZWZlcgogZnJvbSB0d2lzdGVkLmludGVybmV0IGltcG9ydCByZWFj
dG9yCiBmcm9tIHR3aXN0ZWQuaW50ZXJuZXQuZGVmZXIgaW1wb3J0IHN1Y2NlZWQKQEAgLTIxNCwz
ICsyMTYsMTkgQEAgY2xhc3MgRXZlbnRzKHNlcnZpY2UuQnVpbGRib3RTZXJ2aWNlKToKICAgICAg
ICAgc2VsZi5fYnVpbGRDb21wbGV0ZUNvbnN1bWVyLnN0b3BDb25zdW1pbmcoKQogICAgICAgICBz
ZWxmLl9zdGVwU3RhcnRlZENvbnN1bWVyLnN0b3BDb25zdW1pbmcoKQogICAgICAgICBzZWxmLl9z
dGVwRmluaXNoZWRDb25zdW1lci5zdG9wQ29uc3VtaW5nKCkKKworCitjbGFzcyBHaXRIdWJQdWxs
UmVxdWVzdEhhbmRsZXIoR2l0SHViRXZlbnRIYW5kbGVyKToKKyAgICBkZWYgZXh0cmFjdFByb3Bl
cnRpZXMoc2VsZiwgcGF5bG9hZCk6CisgICAgICAgIHByb3BlcnRpZXMgPSBzdXBlcihHaXRIdWJQ
dWxsUmVxdWVzdEhhbmRsZXIsIHNlbGYpLmV4dHJhY3RQcm9wZXJ0aWVzKHBheWxvYWQpCisgICAg
ICAgIHByb3BlcnRpZXNbJ3RpdGxlJ10gPSBwYXlsb2FkLmdldCgndGl0bGUnLCAnPycpCisgICAg
ICAgIHByb3BlcnRpZXNbJ3B1bGxfcmVxdWVzdF9udW1iZXInXSA9IHBheWxvYWQuZ2V0KCdudW1i
ZXInLCAnLScpCisgICAgICAgIHByb3BlcnRpZXNbJ3JlZiddID0gcGF5bG9hZC5nZXQoJ2hlYWQn
LCB7fSkuZ2V0KCdyZWYnKQorICAgICAgICBwcm9wZXJ0aWVzWydiYXNlX3JldmlzaW9uJ10gPSBw
YXlsb2FkLmdldCgnYmFzZScsIHt9KS5nZXQoJ3NoYScpCisgICAgICAgIHByb3BlcnRpZXNbJ3Jl
bW90ZSddID0gcGF5bG9hZC5nZXQoJ2hlYWQnLCB7fSkuZ2V0KCdyZXBvJywge30pLmdldCgnZnVs
bF9uYW1lJykKKworICAgICAgICB1c2VybmFtZSA9IHBheWxvYWQuZ2V0KCd1c2VyJywge30pLmdl
dCgnbG9naW4nKQorICAgICAgICBjb250cmlidXRvcnMsIF8gPSBDb250cmlidXRvcnMubG9hZCgp
CisgICAgICAgIHByb3BlcnRpZXNbJ2F1dGhvciddID0gY29udHJpYnV0b3JzLmdldCh1c2VybmFt
ZSwgcGF5bG9hZFsndXNlciddWydsb2dpbiddKQorCisgICAgICAgIHJldHVybiBwcm9wZXJ0aWVz
CmRpZmYgLS1naXQgYS9Ub29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL3N0ZXBzLnB5IGIvVG9vbHMv
Q0lTdXBwb3J0L2V3cy1idWlsZC9zdGVwcy5weQppbmRleCBhZGY3NDY1MWE2NTgyMWI3ZmUwMWMx
ZjFjODI2MTcxMGZkMzgwNmE5Li5kN2Q1NjYyMTI0MzI4MWQ0YjNlM2Y1MjZlOWY5YTZmMmM0MzJl
ODgxIDEwMDY0NAotLS0gYS9Ub29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL3N0ZXBzLnB5CisrKyBi
L1Rvb2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQvc3RlcHMucHkKQEAgLTU1LDcgKzU1LDggQEAgUkVT
VUxUU19EQl9VUkwgPSAnaHR0cHM6Ly9yZXN1bHRzLndlYmtpdC5vcmcvJwogV2l0aFByb3BlcnRp
ZXMgPSBwcm9wZXJ0aWVzLldpdGhQcm9wZXJ0aWVzCiBJbnRlcnBvbGF0ZSA9IHByb3BlcnRpZXMu
SW50ZXJwb2xhdGUKIEJSQU5DSF9QUl9SRSA9IHJlLmNvbXBpbGUocidecmVmcy9wdWxsLyg/UDxp
ZD5cZCspL21lcmdlJCcpCi1HSVRIVUJfUkVQT1NJVE9SSUVTID0gWydodHRwczovL2dpdGh1Yi5j
b20vV2ViS2l0L1dlYktpdCddCitHSVRIVUJfVVJMID0gJ2h0dHBzOi8vZ2l0aHViLmNvbS8nCitH
SVRIVUJfUFJPSkVDVFMgPSBbJ1dlYktpdC9XZWJLaXQnXQogCiAKIGNsYXNzIEJ1ZmZlckxvZ0hl
YWRlck9ic2VydmVyKGxvZ29ic2VydmVyLkJ1ZmZlckxvZ09ic2VydmVyKToKQEAgLTcxLDI5ICs3
Miw2OCBAQCBjbGFzcyBCdWZmZXJMb2dIZWFkZXJPYnNlcnZlcihsb2dvYnNlcnZlci5CdWZmZXJM
b2dPYnNlcnZlcik6CiAgICAgICAgIHJldHVybiBzZWxmLl9nZXQoc2VsZi5oZWFkZXJzKQogCiAK
LWNsYXNzIEdpdEh1Yk1peGluKG9iamVjdCk6Ci0gICAgZGVmIHByX3VybChzZWxmLCBwcl9udW1i
ZXI9Tm9uZSk6Ci0gICAgICAgIHByX251bWJlciA9IHByX251bWJlciBvciBzZWxmLmdldF9wdWxs
X3JlcXVlc3RfbnVtYmVyKCkKLSAgICAgICAgaWYgbm90IHByX251bWJlcjoKK2NsYXNzIEdpdEh1
YihvYmplY3QpOgorICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiByZXBvc2l0b3J5X3VybHMoY2xz
KToKKyAgICAgICAgcmV0dXJuIFtHSVRIVUJfVVJMICsgcHJvamVjdCBmb3IgcHJvamVjdCBpbiBH
SVRIVUJfUFJPSkVDVFNdCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgcHJfdXJsKGNscywg
cmVwb3NpdG9yeSwgcHJfbnVtYmVyKToKKyAgICAgICAgaWYgbm90IHJlcG9zaXRvcnkgb3IgcmVw
b3NpdG9yeSBub3QgaW4gR2l0SHViLnJlcG9zaXRvcnlfdXJscygpOgorICAgICAgICAgICAgcmV0
dXJuICcnCisgICAgICAgIGlmIG5vdCBwcl9udW1iZXIgb3IgaXNpbnN0YW5jZSgxMjM0LCBpbnQp
OgogICAgICAgICAgICAgcmV0dXJuICcnCi0gICAgICAgIHJldHVybiAne30vcHVsbC97fScuZm9y
bWF0KHNlbGYuZ2V0UHJvcGVydHkoJ3JlcG9zaXRvcnknLCAnLScpLCBwcl9udW1iZXIpCisgICAg
ICAgIHJldHVybiAne31wdWxsL3t9Jy5mb3JtYXQocmVwb3NpdG9yeSwgcHJfbnVtYmVyKQogCi0g
ICAgZGVmIGdldF9wdWxsX3JlcXVlc3RfbnVtYmVyKHNlbGYpOgotICAgICAgICBwcl9udW1iZXIg
PSBzZWxmLmdldFByb3BlcnR5KCdwdWxsX3JlcXVlc3QnKQotICAgICAgICBpZiBwcl9udW1iZXI6
Ci0gICAgICAgICAgICByZXR1cm4gaW50KHByX251bWJlcikKIAotICAgICAgICBpZiBzZWxmLmdl
dFByb3BlcnR5KCdldmVudCcpICE9ICdwdWxsX3JlcXVlc3QnOgotICAgICAgICAgICAgcmV0dXJu
IE5vbmUKLSAgICAgICAgaWYgc2VsZi5nZXRQcm9wZXJ0eSgncmVwb3NpdG9yeScpIG5vdCBpbiBH
SVRIVUJfUkVQT1NJVE9SSUVTOgotICAgICAgICAgICAgcmV0dXJuIE5vbmUKK2NsYXNzIENvbnRy
aWJ1dG9ycyhvYmplY3QpOgorICAgIHVybCA9ICdodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVu
dC5jb20vV2ViS2l0L1dlYktpdC9tYWluL21ldGFkYXRhL2NvbnRyaWJ1dG9ycy5qc29uJworICAg
IGNvbnRyaWJ1dG9ycyA9IHt9CiAKLSAgICAgICAgbWF0Y2ggPSBCUkFOQ0hfUFJfUkUubWF0Y2go
c2VsZi5nZXRQcm9wZXJ0eSgnYnJhbmNoJywgJycpKQotICAgICAgICBpZiBub3QgbWF0Y2g6Ci0g
ICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICBwcl9udW1iZXIgPSBpbnQobWF0Y2guZ3Jv
dXAoJ2lkJykpCi0gICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ3B1bGxfcmVxdWVzdCcsIHByX251
bWJlcikKLSAgICAgICAgcmV0dXJuIHByX251bWJlcgorICAgIEBjbGFzc21ldGhvZAorICAgIGRl
ZiBsb2FkX2Zyb21fZGlzayhjbHMpOgorICAgICAgICBjd2QgPSBvcy5wYXRoLmFic3BhdGgob3Mu
cGF0aC5kaXJuYW1lKF9fZmlsZV9fKSkKKyAgICAgICAgcmVwb19yb290ID0gb3MucGF0aC5kaXJu
YW1lKG9zLnBhdGguZGlybmFtZShvcy5wYXRoLmRpcm5hbWUoY3dkKSkpCisgICAgICAgIGNvbnRy
aWJ1dG9yc19wYXRoID0gb3MucGF0aC5qb2luKHJlcG9fcm9vdCwgJ21ldGFkYXRhL2NvbnRyaWJ1
dG9ycy5qc29uJykKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgd2l0aCBvcGVuKGNvbnRyaWJ1
dG9yc19wYXRoLCAncmInKSBhcyBjb250cmlidXRvcnNfanNvbjoKKyAgICAgICAgICAgICAgICBy
ZXR1cm4ganNvbi5sb2FkKGNvbnRyaWJ1dG9yc19qc29uKSwgTm9uZQorICAgICAgICBleGNlcHQg
RXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICByZXR1cm4ge30sICdGYWlsZWQgdG8gbG9hZCB7
fVxuJy5mb3JtYXQoY29udHJpYnV0b3JzX3BhdGgpCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBk
ZWYgbG9hZF9mcm9tX2dpdGh1YihjbHMpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICByZXNw
b25zZSA9IHJlcXVlc3RzLmdldChjbHMudXJsLCB0aW1lb3V0PTYwKQorICAgICAgICAgICAgaWYg
cmVzcG9uc2Uuc3RhdHVzX2NvZGUgIT0gMjAwOgorICAgICAgICAgICAgICAgIHJldHVybiB7fSwg
J0ZhaWxlZCB0byBhY2Nlc3Mge30gd2l0aCBzdGF0dXMgY29kZToge31cbicuZm9ybWF0KGNscy51
cmwsIHJlc3BvbnNlLnN0YXR1c19jb2RlKQorICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmpz
b24oKSwgTm9uZQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICBy
ZXR1cm4ge30sICdGYWlsZWQgdG8gYWNjZXNzIHt1cmx9XG4nLmZvcm1hdCh1cmw9Y2xzLnVybCkK
KworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBsb2FkKGNscyk6CisgICAgICAgIGxpbmVzID0g
W10KKyAgICAgICAgY29udHJpYnV0b3JzX2pzb24sIGxpbmUgPSBjbHMubG9hZF9mcm9tX2dpdGh1
YigpCisgICAgICAgIGlmIGxpbmU6CisgICAgICAgICAgICBsaW5lcy5hcHBlbmQobGluZSkKKwor
ICAgICAgICBpZiBub3QgY29udHJpYnV0b3JzX2pzb246CisgICAgICAgICAgICBjb250cmlidXRv
cnNfanNvbiwgbGluZSA9IGNscy5sb2FkX2Zyb21fZGlzaygpCisgICAgICAgICAgICBpZiBsaW5l
OgorICAgICAgICAgICAgICAgIGxpbmVzLmFwcGVuZChsaW5lKQorCisgICAgICAgIGNvbnRyaWJ1
dG9ycyA9IHt9CisgICAgICAgIGZvciB2YWx1ZSBpbiBjb250cmlidXRvcnNfanNvbjoKKyAgICAg
ICAgICAgIG5hbWUgPSB2YWx1ZS5nZXQoJ25hbWUnKQorICAgICAgICAgICAgZW1haWxzID0gdmFs
dWUuZ2V0KCdlbWFpbHMnKQorICAgICAgICAgICAgZ2l0aHViID0gdmFsdWUuZ2V0KCdnaXRodWIn
KQorICAgICAgICAgICAgaWYgbmFtZSBhbmQgZW1haWxzOgorICAgICAgICAgICAgICAgIGJ1Z3pp
bGxhX2VtYWlsID0gZW1haWxzWzBdLmxvd2VyKCkgICMgV2UncmUgcmVxdWlyaW5nIHRoYXQgdGhl
IGZpcnN0IGVtYWlsIGlzIHRoZSBwcmltYXJ5IGJ1Z3ppbGxhIGVtYWlsCisgICAgICAgICAgICAg
ICAgY29udHJpYnV0b3JzW2J1Z3ppbGxhX2VtYWlsXSA9IHsnbmFtZSc6IG5hbWUsICdzdGF0dXMn
OiB2YWx1ZS5nZXQoJ3N0YXR1cycpfQorICAgICAgICAgICAgaWYgZ2l0aHViIGFuZCBuYW1lIGFu
ZCBlbWFpbHM6CisgICAgICAgICAgICAgICAgY29udHJpYnV0b3JzW2dpdGh1Yl0gPSAne30gPHt9
PicuZm9ybWF0KG5hbWUsIGVtYWlsc1swXS5sb3dlcigpKQorICAgICAgICByZXR1cm4gY29udHJp
YnV0b3JzLCBsaW5lcwogCiAKIGNsYXNzIENvbmZpZ3VyZUJ1aWxkKGJ1aWxkc3RlcC5CdWlsZFN0
ZXAsIEdpdEh1Yk1peGluKToKQEAgLTE0Nyw5ICsxODcsOSBAQCBjbGFzcyBDb25maWd1cmVCdWls
ZChidWlsZHN0ZXAuQnVpbGRTdGVwLCBHaXRIdWJNaXhpbik6CiAgICAgICAgICAgICBzZWxmLmFk
ZFVSTCgnUGF0Y2gge30nLmZvcm1hdChwYXRjaF9pZCksIEJ1Z3ppbGxhLnBhdGNoX3VybChwYXRj
aF9pZCkpCiAKICAgICBkZWYgYWRkX3ByX2RldGFpbHMoc2VsZik6Ci0gICAgICAgIHByX251bWJl
ciA9IHNlbGYuZ2V0X3B1bGxfcmVxdWVzdF9udW1iZXIoKQorICAgICAgICBwcl9udW1iZXIgPSBz
ZWxmLmdldFByb3BlcnR5KCdwdWxsX3JlcXVlc3RfbnVtYmVyJykKICAgICAgICAgaWYgcHJfbnVt
YmVyOgotICAgICAgICAgICAgc2VsZi5hZGRVUkwoJ1B1bGwgcmVxdWVzdCB7fScuZm9ybWF0KHBy
X251bWJlciksIHNlbGYucHJfdXJsKHByX251bWJlcj1wcl9udW1iZXIpKQorICAgICAgICAgICAg
c2VsZi5hZGRVUkwoJ1B1bGwgcmVxdWVzdCB7fScuZm9ybWF0KHByX251bWJlciksIEdpdEh1Yi5w
cl91cmwoc2VsZi5nZXRQcm9wZXJ0eSgncmVwb3NpdG9yeScpLCBwcl9udW1iZXIpIG9yICc/JykK
IAogCiBjbGFzcyBDaGVja091dFNvdXJjZShnaXQuR2l0KToKQEAgLTk2NSw0NCArMTAwNSwxMCBA
QCBjbGFzcyBWYWxpZGF0ZVBhdGNoKGJ1aWxkc3RlcC5CdWlsZFN0ZXAsIEJ1Z3ppbGxhTWl4aW4p
OgogY2xhc3MgVmFsaWRhdGVDb21taXRlckFuZFJldmlld2VyKGJ1aWxkc3RlcC5CdWlsZFN0ZXAp
OgogICAgIG5hbWUgPSAndmFsaWRhdGUtY29tbWl0ZXItYW5kLXJldmlld2VyJwogICAgIGRlc2Ny
aXB0aW9uRG9uZSA9IFsnVmFsaWRhdGVkIGNvbW1pdGVyIGFuZCByZXZpZXdlciddCi0gICAgdXJs
ID0gJ2h0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9XZWJLaXQvV2ViS2l0L21haW4v
bWV0YWRhdGEvY29udHJpYnV0b3JzLmpzb24nCi0gICAgY29udHJpYnV0b3JzID0ge30KIAotICAg
IGRlZiBsb2FkX2NvbnRyaWJ1dG9yc19mcm9tX2Rpc2soc2VsZik6Ci0gICAgICAgIGN3ZCA9IG9z
LnBhdGguYWJzcGF0aChvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pKQotICAgICAgICByZXBvX3Jv
b3QgPSBvcy5wYXRoLmRpcm5hbWUob3MucGF0aC5kaXJuYW1lKG9zLnBhdGguZGlybmFtZShjd2Qp
KSkKLSAgICAgICAgY29udHJpYnV0b3JzX3BhdGggPSBvcy5wYXRoLmpvaW4ocmVwb19yb290LCAn
bWV0YWRhdGEvY29udHJpYnV0b3JzLmpzb24nKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICB3
aXRoIG9wZW4oY29udHJpYnV0b3JzX3BhdGgsICdyYicpIGFzIGNvbnRyaWJ1dG9yc19qc29uOgot
ICAgICAgICAgICAgICAgIHJldHVybiBqc29uLmxvYWQoY29udHJpYnV0b3JzX2pzb24pCi0gICAg
ICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKLSAgICAgICAgICAgIHNlbGYuX2FkZFRvTG9nKCdz
dGRpbycsICdGYWlsZWQgdG8gbG9hZCB7fVxuJy5mb3JtYXQoY29udHJpYnV0b3JzX3BhdGgpKQot
ICAgICAgICAgICAgcmV0dXJuIHt9Ci0KLSAgICBkZWYgbG9hZF9jb250cmlidXRvcnNfZnJvbV9n
aXRodWIoc2VsZik6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHJlc3BvbnNlID0gcmVxdWVz
dHMuZ2V0KHNlbGYudXJsLCB0aW1lb3V0PTYwKQotICAgICAgICAgICAgaWYgcmVzcG9uc2Uuc3Rh
dHVzX2NvZGUgIT0gMjAwOgotICAgICAgICAgICAgICAgIHNlbGYuX2FkZFRvTG9nKCdzdGRpbycs
ICdGYWlsZWQgdG8gYWNjZXNzIHt9IHdpdGggc3RhdHVzIGNvZGU6IHt9XG4nLmZvcm1hdChzZWxm
LnVybCwgcmVzcG9uc2Uuc3RhdHVzX2NvZGUpKQotICAgICAgICAgICAgICAgIHJldHVybiB7fQot
ICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmpzb24oKQotICAgICAgICBleGNlcHQgRXhjZXB0
aW9uIGFzIGU6Ci0gICAgICAgICAgICBzZWxmLl9hZGRUb0xvZygnc3RkaW8nLCAnRmFpbGVkIHRv
IGFjY2VzcyB7dXJsfVxuJy5mb3JtYXQodXJsPXNlbGYudXJsKSkKLSAgICAgICAgICAgIHJldHVy
biB7fQotCi0gICAgZGVmIGxvYWRfY29udHJpYnV0b3JzKHNlbGYpOgotICAgICAgICBjb250cmli
dXRvcnNfanNvbiA9IHNlbGYubG9hZF9jb250cmlidXRvcnNfZnJvbV9naXRodWIoKQotICAgICAg
ICBpZiBub3QgY29udHJpYnV0b3JzX2pzb246Ci0gICAgICAgICAgICBjb250cmlidXRvcnNfanNv
biA9IHNlbGYubG9hZF9jb250cmlidXRvcnNfZnJvbV9kaXNrKCkKLQotICAgICAgICBjb250cmli
dXRvcnMgPSB7fQotICAgICAgICBmb3IgdmFsdWUgaW4gY29udHJpYnV0b3JzX2pzb246Ci0gICAg
ICAgICAgICBuYW1lID0gdmFsdWUuZ2V0KCduYW1lJykKLSAgICAgICAgICAgIGVtYWlscyA9IHZh
bHVlLmdldCgnZW1haWxzJykKLSAgICAgICAgICAgIGlmIG5hbWUgYW5kIGVtYWlsczoKLSAgICAg
ICAgICAgICAgICBidWd6aWxsYV9lbWFpbCA9IGVtYWlsc1swXS5sb3dlcigpICAjIFdlJ3JlIHJl
cXVpcmluZyB0aGF0IHRoZSBmaXJzdCBlbWFpbCBpcyB0aGUgcHJpbWFyeSBidWd6aWxsYSBlbWFp
bAotICAgICAgICAgICAgICAgIGNvbnRyaWJ1dG9yc1tidWd6aWxsYV9lbWFpbF0gPSB7J25hbWUn
OiBuYW1lLCAnc3RhdHVzJzogdmFsdWUuZ2V0KCdzdGF0dXMnKX0KLSAgICAgICAgcmV0dXJuIGNv
bnRyaWJ1dG9ycworICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAg
ICAgICBzdXBlcihWYWxpZGF0ZUNvbW1pdGVyQW5kUmV2aWV3ZXIsIHNlbGYpLl9faW5pdF9fKCph
cmdzLCAqKmt3YXJncykKKyAgICAgICAgc2VsZi5jb250cmlidXRvcnMgPSB7fQogCiAgICAgQGRl
ZmVyLmlubGluZUNhbGxiYWNrcwogICAgIGRlZiBfYWRkVG9Mb2coc2VsZiwgbG9nTmFtZSwgbWVz
c2FnZSk6CkBAIC0xMDQ0LDcgKzEwNTAsMTAgQEAgY2xhc3MgVmFsaWRhdGVDb21taXRlckFuZFJl
dmlld2VyKGJ1aWxkc3RlcC5CdWlsZFN0ZXApOgogICAgICAgICByZXR1cm4gY29udHJpYnV0b3Iu
Z2V0KCduYW1lJykKIAogICAgIGRlZiBzdGFydChzZWxmKToKLSAgICAgICAgc2VsZi5jb250cmli
dXRvcnMgPSBzZWxmLmxvYWRfY29udHJpYnV0b3JzKCkKKyAgICAgICAgc2VsZi5jb250cmlidXRv
cnMsIGxpbmVzID0gQ29udHJpYnV0b3JzLmxvYWQoKQorICAgICAgICBmb3IgbGluZSBpbiBsaW5l
czoKKyAgICAgICAgICAgIHNlbGYuX2FkZFRvTG9nKCdzdGRpbycsIGxpbmUpCisKICAgICAgICAg
aWYgbm90IHNlbGYuY29udHJpYnV0b3JzOgogICAgICAgICAgICAgc2VsZi5maW5pc2hlZChGQUlM
VVJFKQogICAgICAgICAgICAgc2VsZi5kZXNjcmlwdGlvbkRvbmUgPSAnRmFpbGVkIHRvIGdldCBj
b250cmlidXRvcnMgaW5mb3JtYXRpb24nCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448947</attachid>
            <date>2022-01-12 08:16:39 -0800</date>
            <delta_ts>2022-01-12 08:25:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235074-20220112081639.patch</filename>
            <type>text/plain</type>
            <size>11834</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3OTIzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggM2QxMzZlMWU3ZDM5ZmRmNjk4Y2Y0NmY1N2ZkZjZkYmRm
NGFiMzFjYS4uMzJhYzBmM2Y2M2VjYTYyYzMyNDc1YTVlNzVhNmU2MmE4ODZkZjdlNyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5
IEBACisyMDIyLTAxLTEyICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbRVdTXSBTZXQgYnVpbGQgcHJvcGVydGllcyBiYXNlZCBvbiBHaXRIdWIgUHVsbCBS
ZXF1ZXN0IGhvb2tzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzUwNzQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg3NDA2MTU3PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ0lTdXBwb3J0L2V3cy1i
dWlsZC9ldmVudHMucHk6CisgICAgICAgIChHaXRIdWJQdWxsUmVxdWVzdEhhbmRsZXIpOgorICAg
ICAgICAoR2l0SHViUHVsbFJlcXVlc3RIYW5kbGVyLl9faW5pdF9fKToKKyAgICAgICAgKEdpdEh1
YlB1bGxSZXF1ZXN0SGFuZGxlci5tYXliZV9mZXRjaF9jb250cmlidXRvcnMpOiBGZXRjaCBhbmQg
Y2FjaGUgY29udHJpYnV0b3JzLgorICAgICAgICAoR2l0SHViUHVsbFJlcXVlc3RIYW5kbGVyLmV4
dHJhY3RQcm9wZXJ0aWVzKTogU2V0IGJ1aWxkIHByb3BlcnRpZXMgYmFzZWQgb24KKyAgICAgICAg
R2l0SHViIHB1bGwtcmVxdWVzdCBwYXlsb2FkLgorICAgICAgICAqIENJU3VwcG9ydC9ld3MtYnVp
bGQvc3RlcHMucHk6CisgICAgICAgIChHaXRIdWIucmVwb3NpdG9yeV91cmxzKTogQ29uY2F0ZW5h
dGUgYWxsIHZhbGlkIHByb2plY3RzIHdpdGggdGhlIGJhc2UgVVJMLgorICAgICAgICAoR2l0SHVi
LnByX3VybCk6IEdpdmVuIGEgcmVwb3NpdG9yeSBhbmQgcHVsbC1yZXF1ZXN0IG51bWJlciwgcmV0
dXJuIHRoZSBVUkwKKyAgICAgICAgZm9yIHRoYXQgcHVsbC1yZXF1ZXN0LgorICAgICAgICAoQ29u
dHJpYnV0b3JzKTogTW92ZWQgZnJvbSBWYWxpZGF0ZUNvbW1pdGVyQW5kUmV2aWV3ZXIuCisgICAg
ICAgIChDb25maWd1cmVCdWlsZC5hZGRfcHJfZGV0YWlscyk6IAorICAgICAgICAoVmFsaWRhdGVD
b21taXRlckFuZFJldmlld2VyKTogVXNlIENvbnRyaWJ1dG9ycyBjbGFzcy4KKyAgICAgICAgKEdp
dEh1Yk1peGluKTogRGVsZXRlZC4KKyAgICAgICAgKFZhbGlkYXRlQ29tbWl0ZXJBbmRSZXZpZXdl
ci5sb2FkX2NvbnRyaWJ1dG9yc19mcm9tX2Rpc2spOiBNb3ZlZCB0byBDb250cmlidXRvcnMuCisg
ICAgICAgIChWYWxpZGF0ZUNvbW1pdGVyQW5kUmV2aWV3ZXIubG9hZF9jb250cmlidXRvcnNfZnJv
bV9naXRodWIpOiBEaXR0by4KKyAgICAgICAgKFZhbGlkYXRlQ29tbWl0ZXJBbmRSZXZpZXdlci5s
b2FkX2NvbnRyaWJ1dG9ycyk6IERpdHRvLgorCiAyMDIyLTAxLTExICBHZW9mZnJleSBHYXJlbiAg
PGdnYXJlbkBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViUGFnZVByb3h5IGRlc3RydWN0aW9uIHNo
b3VsZCBub3QgbGF1bmNoIGEgbmV0d29yayBwcm9jZXNzCmRpZmYgLS1naXQgYS9Ub29scy9DSVN1
cHBvcnQvZXdzLWJ1aWxkL2V2ZW50cy5weSBiL1Rvb2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQvZXZl
bnRzLnB5CmluZGV4IDEzMWU5Y2Y2MjE0M2RmN2IyZjQ2OWE2MjE0M2U1MzIzNTY2NmNhNDguLjZj
ZTg3NzFkYjQyOTZhMjBlNWE3ODcyOGRkMGVlMDYzOTM1Y2Y4YTEgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0NJU3VwcG9ydC9ld3MtYnVpbGQvZXZlbnRzLnB5CisrKyBiL1Rvb2xzL0NJU3VwcG9ydC9ld3Mt
YnVpbGQvZXZlbnRzLnB5CkBAIC0xLDQgKzEsNCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTksIDIwMjIg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0yNyw2ICsyNyw4IEBAIGltcG9ydCBvcwogaW1wb3J0IHRpbWUKIAogZnJvbSBidWls
ZGJvdC51dGlsIGltcG9ydCBzZXJ2aWNlCitmcm9tIGJ1aWxkYm90Lnd3dy5ob29rcy5naXRodWIg
aW1wb3J0IEdpdEh1YkV2ZW50SGFuZGxlcgorZnJvbSBzdGVwcyBpbXBvcnQgQ29udHJpYnV0b3Jz
CiBmcm9tIHR3aXN0ZWQuaW50ZXJuZXQgaW1wb3J0IGRlZmVyCiBmcm9tIHR3aXN0ZWQuaW50ZXJu
ZXQgaW1wb3J0IHJlYWN0b3IKIGZyb20gdHdpc3RlZC5pbnRlcm5ldC5kZWZlciBpbXBvcnQgc3Vj
Y2VlZApAQCAtMjE0LDMgKzIxNiwzNyBAQCBjbGFzcyBFdmVudHMoc2VydmljZS5CdWlsZGJvdFNl
cnZpY2UpOgogICAgICAgICBzZWxmLl9idWlsZENvbXBsZXRlQ29uc3VtZXIuc3RvcENvbnN1bWlu
ZygpCiAgICAgICAgIHNlbGYuX3N0ZXBTdGFydGVkQ29uc3VtZXIuc3RvcENvbnN1bWluZygpCiAg
ICAgICAgIHNlbGYuX3N0ZXBGaW5pc2hlZENvbnN1bWVyLnN0b3BDb25zdW1pbmcoKQorCisKK2Ns
YXNzIEdpdEh1YlB1bGxSZXF1ZXN0SGFuZGxlcihHaXRIdWJFdmVudEhhbmRsZXIpOgorICAgIERB
WSA9IDI0ICogNjAgKiA2MAorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJn
cyk6CisgICAgICAgIHN1cGVyKEdpdEh1YlB1bGxSZXF1ZXN0SGFuZGxlciwgc2VsZikuX19pbml0
X18oKmFyZ3MsICoqa3dhcmdzKQorICAgICAgICBzZWxmLmNvbnRyaWJ1dG9ycyA9IHt9CisgICAg
ICAgIHNlbGYubGFzdF9mZXRjaGVkID0gMAorICAgICAgICBzZWxmLm1heWJlX2ZldGNoX2NvbnRy
aWJ1dG9ycygpCisKKyAgICBkZWYgbWF5YmVfZmV0Y2hfY29udHJpYnV0b3JzKHNlbGYpOgorICAg
ICAgICBpZiBzZWxmLmxhc3RfZmV0Y2hlZCArIHNlbGYuREFZID4gaW50KHRpbWUudGltZSgpKToK
KyAgICAgICAgICAgIHJldHVybiBzZWxmLmNvbnRyaWJ1dG9ycworCisgICAgICAgIHNlbGYuY29u
dHJpYnV0b3JzLCBlcnJvcnMgPSBDb250cmlidXRvcnMubG9hZCgpCisgICAgICAgIHNlbGYubGFz
dF9mZXRjaGVkID0gaW50KHRpbWUudGltZSgpKQorICAgICAgICBmb3IgZXJyb3IgaW4gZXJyb3Jz
OgorICAgICAgICAgICAgcHJpbnQoZXJyb3IpCisgICAgICAgIHJldHVybiBzZWxmLmNvbnRyaWJ1
dG9ycworCisgICAgZGVmIGV4dHJhY3RQcm9wZXJ0aWVzKHNlbGYsIHBheWxvYWQpOgorICAgICAg
ICBwcm9wZXJ0aWVzID0gc3VwZXIoR2l0SHViUHVsbFJlcXVlc3RIYW5kbGVyLCBzZWxmKS5leHRy
YWN0UHJvcGVydGllcyhwYXlsb2FkKQorICAgICAgICBwcm9wZXJ0aWVzWyd0aXRsZSddID0gcGF5
bG9hZC5nZXQoJ3RpdGxlJywgJz8nKQorICAgICAgICBwcm9wZXJ0aWVzWydwdWxsX3JlcXVlc3Rf
bnVtYmVyJ10gPSBwYXlsb2FkLmdldCgnbnVtYmVyJywgJy0nKQorICAgICAgICBwcm9wZXJ0aWVz
WydyZWYnXSA9IHBheWxvYWQuZ2V0KCdoZWFkJywge30pLmdldCgncmVmJykKKyAgICAgICAgcHJv
cGVydGllc1snYmFzZV9yZXZpc2lvbiddID0gcGF5bG9hZC5nZXQoJ2Jhc2UnLCB7fSkuZ2V0KCdz
aGEnKQorICAgICAgICBwcm9wZXJ0aWVzWydyZW1vdGUnXSA9IHBheWxvYWQuZ2V0KCdoZWFkJywg
e30pLmdldCgncmVwbycsIHt9KS5nZXQoJ2Z1bGxfbmFtZScpCisKKyAgICAgICAgdXNlcm5hbWUg
PSBwYXlsb2FkLmdldCgndXNlcicsIHt9KS5nZXQoJ2xvZ2luJykKKyAgICAgICAgY29udHJpYnV0
b3JzID0gc2VsZi5tYXliZV9mZXRjaF9jb250cmlidXRvcnMoKQorICAgICAgICBwcm9wZXJ0aWVz
WydhdXRob3InXSA9IGNvbnRyaWJ1dG9ycy5nZXQodXNlcm5hbWUsIHt9KS5nZXQoJ3ByaW50YWJs
ZScsIHBheWxvYWRbJ3VzZXInXVsnbG9naW4nXSkKKworICAgICAgICByZXR1cm4gcHJvcGVydGll
cwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWlsZC9zdGVwcy5weSBiL1Rvb2xz
L0NJU3VwcG9ydC9ld3MtYnVpbGQvc3RlcHMucHkKaW5kZXggYWRmNzQ2NTFhNjU4MjFiN2ZlMDFj
MWYxYzgyNjE3MTBmZDM4MDZhOS4uNTAwMTNkNGViMWJjNDIwNTRjOGE3NTU0YjE3NDM4NmNlYmY1
YzFkYyAxMDA2NDQKLS0tIGEvVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWlsZC9zdGVwcy5weQorKysg
Yi9Ub29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL3N0ZXBzLnB5CkBAIC01NSw3ICs1NSw4IEBAIFJF
U1VMVFNfREJfVVJMID0gJ2h0dHBzOi8vcmVzdWx0cy53ZWJraXQub3JnLycKIFdpdGhQcm9wZXJ0
aWVzID0gcHJvcGVydGllcy5XaXRoUHJvcGVydGllcwogSW50ZXJwb2xhdGUgPSBwcm9wZXJ0aWVz
LkludGVycG9sYXRlCiBCUkFOQ0hfUFJfUkUgPSByZS5jb21waWxlKHInXnJlZnMvcHVsbC8oP1A8
aWQ+XGQrKS9tZXJnZSQnKQotR0lUSFVCX1JFUE9TSVRPUklFUyA9IFsnaHR0cHM6Ly9naXRodWIu
Y29tL1dlYktpdC9XZWJLaXQnXQorR0lUSFVCX1VSTCA9ICdodHRwczovL2dpdGh1Yi5jb20vJwor
R0lUSFVCX1BST0pFQ1RTID0gWydXZWJLaXQvV2ViS2l0J10KIAogCiBjbGFzcyBCdWZmZXJMb2dI
ZWFkZXJPYnNlcnZlcihsb2dvYnNlcnZlci5CdWZmZXJMb2dPYnNlcnZlcik6CkBAIC03MSwyOSAr
NzIsNzUgQEAgY2xhc3MgQnVmZmVyTG9nSGVhZGVyT2JzZXJ2ZXIobG9nb2JzZXJ2ZXIuQnVmZmVy
TG9nT2JzZXJ2ZXIpOgogICAgICAgICByZXR1cm4gc2VsZi5fZ2V0KHNlbGYuaGVhZGVycykKIAog
Ci1jbGFzcyBHaXRIdWJNaXhpbihvYmplY3QpOgotICAgIGRlZiBwcl91cmwoc2VsZiwgcHJfbnVt
YmVyPU5vbmUpOgotICAgICAgICBwcl9udW1iZXIgPSBwcl9udW1iZXIgb3Igc2VsZi5nZXRfcHVs
bF9yZXF1ZXN0X251bWJlcigpCi0gICAgICAgIGlmIG5vdCBwcl9udW1iZXI6CitjbGFzcyBHaXRI
dWIob2JqZWN0KToKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgcmVwb3NpdG9yeV91cmxzKGNs
cyk6CisgICAgICAgIHJldHVybiBbR0lUSFVCX1VSTCArIHByb2plY3QgZm9yIHByb2plY3QgaW4g
R0lUSFVCX1BST0pFQ1RTXQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIHByX3VybChjbHMs
IHJlcG9zaXRvcnlfdXJsPU5vbmUsIHByX251bWJlcj1Ob25lKToKKyAgICAgICAgaWYgbm90IHJl
cG9zaXRvcnlfdXJsOgorICAgICAgICAgICAgcmVwb3NpdG9yeV91cmwgPSAne317fScuZm9ybWF0
KEdJVEhVQl9VUkwsIEdJVEhVQl9QUk9KRUNUU1swXSkKKworICAgICAgICBpZiBub3QgcmVwb3Np
dG9yeV91cmwgb3IgcmVwb3NpdG9yeV91cmwgbm90IGluIEdpdEh1Yi5yZXBvc2l0b3J5X3VybHMo
KToKICAgICAgICAgICAgIHJldHVybiAnJwotICAgICAgICByZXR1cm4gJ3t9L3B1bGwve30nLmZv
cm1hdChzZWxmLmdldFByb3BlcnR5KCdyZXBvc2l0b3J5JywgJy0nKSwgcHJfbnVtYmVyKQorICAg
ICAgICBpZiBub3QgcHJfbnVtYmVyIG9yIGlzaW5zdGFuY2UocHJfbnVtYmVyLCBpbnQpOgorICAg
ICAgICAgICAgcmV0dXJuICcnCisgICAgICAgIHJldHVybiAne31wdWxsL3t9Jy5mb3JtYXQocmVw
b3NpdG9yeV91cmwsIHByX251bWJlcikKIAotICAgIGRlZiBnZXRfcHVsbF9yZXF1ZXN0X251bWJl
cihzZWxmKToKLSAgICAgICAgcHJfbnVtYmVyID0gc2VsZi5nZXRQcm9wZXJ0eSgncHVsbF9yZXF1
ZXN0JykKLSAgICAgICAgaWYgcHJfbnVtYmVyOgotICAgICAgICAgICAgcmV0dXJuIGludChwcl9u
dW1iZXIpCiAKLSAgICAgICAgaWYgc2VsZi5nZXRQcm9wZXJ0eSgnZXZlbnQnKSAhPSAncHVsbF9y
ZXF1ZXN0JzoKLSAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAgIGlmIHNlbGYuZ2V0UHJv
cGVydHkoJ3JlcG9zaXRvcnknKSBub3QgaW4gR0lUSFVCX1JFUE9TSVRPUklFUzoKLSAgICAgICAg
ICAgIHJldHVybiBOb25lCitjbGFzcyBDb250cmlidXRvcnMob2JqZWN0KToKKyAgICB1cmwgPSAn
aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1dlYktpdC9XZWJLaXQvbWFpbi9tZXRh
ZGF0YS9jb250cmlidXRvcnMuanNvbicKKyAgICBjb250cmlidXRvcnMgPSB7fQogCi0gICAgICAg
IG1hdGNoID0gQlJBTkNIX1BSX1JFLm1hdGNoKHNlbGYuZ2V0UHJvcGVydHkoJ2JyYW5jaCcsICcn
KSkKLSAgICAgICAgaWYgbm90IG1hdGNoOgotICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAg
ICAgcHJfbnVtYmVyID0gaW50KG1hdGNoLmdyb3VwKCdpZCcpKQotICAgICAgICBzZWxmLnNldFBy
b3BlcnR5KCdwdWxsX3JlcXVlc3QnLCBwcl9udW1iZXIpCi0gICAgICAgIHJldHVybiBwcl9udW1i
ZXIKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgbG9hZF9mcm9tX2Rpc2soY2xzKToKKyAgICAg
ICAgY3dkID0gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykpCisgICAg
ICAgIHJlcG9fcm9vdCA9IG9zLnBhdGguZGlybmFtZShvcy5wYXRoLmRpcm5hbWUob3MucGF0aC5k
aXJuYW1lKGN3ZCkpKQorICAgICAgICBjb250cmlidXRvcnNfcGF0aCA9IG9zLnBhdGguam9pbihy
ZXBvX3Jvb3QsICdtZXRhZGF0YS9jb250cmlidXRvcnMuanNvbicpCisgICAgICAgIHRyeToKKyAg
ICAgICAgICAgIHdpdGggb3Blbihjb250cmlidXRvcnNfcGF0aCwgJ3JiJykgYXMgY29udHJpYnV0
b3JzX2pzb246CisgICAgICAgICAgICAgICAgcmV0dXJuIGpzb24ubG9hZChjb250cmlidXRvcnNf
anNvbiksIE5vbmUKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAg
cmV0dXJuIHt9LCAnRmFpbGVkIHRvIGxvYWQge31cbicuZm9ybWF0KGNvbnRyaWJ1dG9yc19wYXRo
KQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIGxvYWRfZnJvbV9naXRodWIoY2xzKToKKyAg
ICAgICAgdHJ5OgorICAgICAgICAgICAgcmVzcG9uc2UgPSByZXF1ZXN0cy5nZXQoY2xzLnVybCwg
dGltZW91dD02MCkKKyAgICAgICAgICAgIGlmIHJlc3BvbnNlLnN0YXR1c19jb2RlICE9IDIwMDoK
KyAgICAgICAgICAgICAgICByZXR1cm4ge30sICdGYWlsZWQgdG8gYWNjZXNzIHt9IHdpdGggc3Rh
dHVzIGNvZGU6IHt9XG4nLmZvcm1hdChjbHMudXJsLCByZXNwb25zZS5zdGF0dXNfY29kZSkKKyAg
ICAgICAgICAgIHJldHVybiByZXNwb25zZS5qc29uKCksIE5vbmUKKyAgICAgICAgZXhjZXB0IEV4
Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgcmV0dXJuIHt9LCAnRmFpbGVkIHRvIGFjY2VzcyB7
dXJsfVxuJy5mb3JtYXQodXJsPWNscy51cmwpCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYg
bG9hZChjbHMpOgorICAgICAgICBlcnJvcnMgPSBbXQorICAgICAgICBjb250cmlidXRvcnNfanNv
biwgZXJyb3IgPSBjbHMubG9hZF9mcm9tX2dpdGh1YigpCisgICAgICAgIGlmIGVycm9yOgorICAg
ICAgICAgICAgZXJyb3JzLmFwcGVuZChlcnJvcikKKworICAgICAgICBpZiBub3QgY29udHJpYnV0
b3JzX2pzb246CisgICAgICAgICAgICBjb250cmlidXRvcnNfanNvbiwgZXJyb3IgPSBjbHMubG9h
ZF9mcm9tX2Rpc2soKQorICAgICAgICAgICAgaWYgZXJyb3I6CisgICAgICAgICAgICAgICAgZXJy
b3JzLmFwcGVuZChlcnJvcikKKworICAgICAgICBjb250cmlidXRvcnMgPSB7fQorICAgICAgICBm
b3IgdmFsdWUgaW4gY29udHJpYnV0b3JzX2pzb246CisgICAgICAgICAgICBuYW1lID0gdmFsdWUu
Z2V0KCduYW1lJykKKyAgICAgICAgICAgIGVtYWlscyA9IHZhbHVlLmdldCgnZW1haWxzJykKKyAg
ICAgICAgICAgIGdpdGh1Yl91c2VybmFtZSA9IHZhbHVlLmdldCgnZ2l0aHViJykKKyAgICAgICAg
ICAgIGlmIG5hbWUgYW5kIGVtYWlsczoKKyAgICAgICAgICAgICAgICBidWd6aWxsYV9lbWFpbCA9
IGVtYWlsc1swXS5sb3dlcigpICAjIFdlJ3JlIHJlcXVpcmluZyB0aGF0IHRoZSBmaXJzdCBlbWFp
bCBpcyB0aGUgcHJpbWFyeSBidWd6aWxsYSBlbWFpbAorICAgICAgICAgICAgICAgIGNvbnRyaWJ1
dG9yc1tidWd6aWxsYV9lbWFpbF0gPSB7J25hbWUnOiBuYW1lLCAnc3RhdHVzJzogdmFsdWUuZ2V0
KCdzdGF0dXMnKX0KKyAgICAgICAgICAgIGlmIGdpdGh1Yl91c2VybmFtZSBhbmQgbmFtZSBhbmQg
ZW1haWxzOgorICAgICAgICAgICAgICAgIGNvbnRyaWJ1dG9yc1tnaXRodWJfdXNlcm5hbWVdID0g
ZGljdCgKKyAgICAgICAgICAgICAgICAgICAgcHJpbnRhYmxlPSd7fSA8e30+Jy5mb3JtYXQobmFt
ZSwgZW1haWxzWzBdLmxvd2VyKCkpLAorICAgICAgICAgICAgICAgICAgICBzdGF0dXM9dmFsdWUu
Z2V0KCdzdGF0dXMnKSwKKyAgICAgICAgICAgICAgICAgICAgZW1haWw9ZW1haWxzWzBdLAorICAg
ICAgICAgICAgICAgICkKKyAgICAgICAgcmV0dXJuIGNvbnRyaWJ1dG9ycywgZXJyb3JzCiAKIAog
Y2xhc3MgQ29uZmlndXJlQnVpbGQoYnVpbGRzdGVwLkJ1aWxkU3RlcCwgR2l0SHViTWl4aW4pOgpA
QCAtMTQ3LDkgKzE5NCw5IEBAIGNsYXNzIENvbmZpZ3VyZUJ1aWxkKGJ1aWxkc3RlcC5CdWlsZFN0
ZXAsIEdpdEh1Yk1peGluKToKICAgICAgICAgICAgIHNlbGYuYWRkVVJMKCdQYXRjaCB7fScuZm9y
bWF0KHBhdGNoX2lkKSwgQnVnemlsbGEucGF0Y2hfdXJsKHBhdGNoX2lkKSkKIAogICAgIGRlZiBh
ZGRfcHJfZGV0YWlscyhzZWxmKToKLSAgICAgICAgcHJfbnVtYmVyID0gc2VsZi5nZXRfcHVsbF9y
ZXF1ZXN0X251bWJlcigpCisgICAgICAgIHByX251bWJlciA9IHNlbGYuZ2V0UHJvcGVydHkoJ3B1
bGxfcmVxdWVzdF9udW1iZXInKQogICAgICAgICBpZiBwcl9udW1iZXI6Ci0gICAgICAgICAgICBz
ZWxmLmFkZFVSTCgnUHVsbCByZXF1ZXN0IHt9Jy5mb3JtYXQocHJfbnVtYmVyKSwgc2VsZi5wcl91
cmwocHJfbnVtYmVyPXByX251bWJlcikpCisgICAgICAgICAgICBzZWxmLmFkZFVSTCgnUHVsbCBy
ZXF1ZXN0IHt9Jy5mb3JtYXQocHJfbnVtYmVyKSwgR2l0SHViLnByX3VybChzZWxmLmdldFByb3Bl
cnR5KCdyZXBvc2l0b3J5JyksIHByX251bWJlcikgb3IgJycpCiAKIAogY2xhc3MgQ2hlY2tPdXRT
b3VyY2UoZ2l0LkdpdCk6CkBAIC05NjUsNDQgKzEwMTIsMTAgQEAgY2xhc3MgVmFsaWRhdGVQYXRj
aChidWlsZHN0ZXAuQnVpbGRTdGVwLCBCdWd6aWxsYU1peGluKToKIGNsYXNzIFZhbGlkYXRlQ29t
bWl0ZXJBbmRSZXZpZXdlcihidWlsZHN0ZXAuQnVpbGRTdGVwKToKICAgICBuYW1lID0gJ3ZhbGlk
YXRlLWNvbW1pdGVyLWFuZC1yZXZpZXdlcicKICAgICBkZXNjcmlwdGlvbkRvbmUgPSBbJ1ZhbGlk
YXRlZCBjb21taXRlciBhbmQgcmV2aWV3ZXInXQotICAgIHVybCA9ICdodHRwczovL3Jhdy5naXRo
dWJ1c2VyY29udGVudC5jb20vV2ViS2l0L1dlYktpdC9tYWluL21ldGFkYXRhL2NvbnRyaWJ1dG9y
cy5qc29uJwotICAgIGNvbnRyaWJ1dG9ycyA9IHt9CiAKLSAgICBkZWYgbG9hZF9jb250cmlidXRv
cnNfZnJvbV9kaXNrKHNlbGYpOgotICAgICAgICBjd2QgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0
aC5kaXJuYW1lKF9fZmlsZV9fKSkKLSAgICAgICAgcmVwb19yb290ID0gb3MucGF0aC5kaXJuYW1l
KG9zLnBhdGguZGlybmFtZShvcy5wYXRoLmRpcm5hbWUoY3dkKSkpCi0gICAgICAgIGNvbnRyaWJ1
dG9yc19wYXRoID0gb3MucGF0aC5qb2luKHJlcG9fcm9vdCwgJ21ldGFkYXRhL2NvbnRyaWJ1dG9y
cy5qc29uJykKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgd2l0aCBvcGVuKGNvbnRyaWJ1dG9y
c19wYXRoLCAncmInKSBhcyBjb250cmlidXRvcnNfanNvbjoKLSAgICAgICAgICAgICAgICByZXR1
cm4ganNvbi5sb2FkKGNvbnRyaWJ1dG9yc19qc29uKQotICAgICAgICBleGNlcHQgRXhjZXB0aW9u
IGFzIGU6Ci0gICAgICAgICAgICBzZWxmLl9hZGRUb0xvZygnc3RkaW8nLCAnRmFpbGVkIHRvIGxv
YWQge31cbicuZm9ybWF0KGNvbnRyaWJ1dG9yc19wYXRoKSkKLSAgICAgICAgICAgIHJldHVybiB7
fQotCi0gICAgZGVmIGxvYWRfY29udHJpYnV0b3JzX2Zyb21fZ2l0aHViKHNlbGYpOgotICAgICAg
ICB0cnk6Ci0gICAgICAgICAgICByZXNwb25zZSA9IHJlcXVlc3RzLmdldChzZWxmLnVybCwgdGlt
ZW91dD02MCkKLSAgICAgICAgICAgIGlmIHJlc3BvbnNlLnN0YXR1c19jb2RlICE9IDIwMDoKLSAg
ICAgICAgICAgICAgICBzZWxmLl9hZGRUb0xvZygnc3RkaW8nLCAnRmFpbGVkIHRvIGFjY2VzcyB7
fSB3aXRoIHN0YXR1cyBjb2RlOiB7fVxuJy5mb3JtYXQoc2VsZi51cmwsIHJlc3BvbnNlLnN0YXR1
c19jb2RlKSkKLSAgICAgICAgICAgICAgICByZXR1cm4ge30KLSAgICAgICAgICAgIHJldHVybiBy
ZXNwb25zZS5qc29uKCkKLSAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgotICAgICAgICAg
ICAgc2VsZi5fYWRkVG9Mb2coJ3N0ZGlvJywgJ0ZhaWxlZCB0byBhY2Nlc3Mge3VybH1cbicuZm9y
bWF0KHVybD1zZWxmLnVybCkpCi0gICAgICAgICAgICByZXR1cm4ge30KLQotICAgIGRlZiBsb2Fk
X2NvbnRyaWJ1dG9ycyhzZWxmKToKLSAgICAgICAgY29udHJpYnV0b3JzX2pzb24gPSBzZWxmLmxv
YWRfY29udHJpYnV0b3JzX2Zyb21fZ2l0aHViKCkKLSAgICAgICAgaWYgbm90IGNvbnRyaWJ1dG9y
c19qc29uOgotICAgICAgICAgICAgY29udHJpYnV0b3JzX2pzb24gPSBzZWxmLmxvYWRfY29udHJp
YnV0b3JzX2Zyb21fZGlzaygpCi0KLSAgICAgICAgY29udHJpYnV0b3JzID0ge30KLSAgICAgICAg
Zm9yIHZhbHVlIGluIGNvbnRyaWJ1dG9yc19qc29uOgotICAgICAgICAgICAgbmFtZSA9IHZhbHVl
LmdldCgnbmFtZScpCi0gICAgICAgICAgICBlbWFpbHMgPSB2YWx1ZS5nZXQoJ2VtYWlscycpCi0g
ICAgICAgICAgICBpZiBuYW1lIGFuZCBlbWFpbHM6Ci0gICAgICAgICAgICAgICAgYnVnemlsbGFf
ZW1haWwgPSBlbWFpbHNbMF0ubG93ZXIoKSAgIyBXZSdyZSByZXF1aXJpbmcgdGhhdCB0aGUgZmly
c3QgZW1haWwgaXMgdGhlIHByaW1hcnkgYnVnemlsbGEgZW1haWwKLSAgICAgICAgICAgICAgICBj
b250cmlidXRvcnNbYnVnemlsbGFfZW1haWxdID0geyduYW1lJzogbmFtZSwgJ3N0YXR1cyc6IHZh
bHVlLmdldCgnc3RhdHVzJyl9Ci0gICAgICAgIHJldHVybiBjb250cmlidXRvcnMKKyAgICBkZWYg
X19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgc3VwZXIoVmFsaWRhdGVD
b21taXRlckFuZFJldmlld2VyLCBzZWxmKS5fX2luaXRfXygqYXJncywgKiprd2FyZ3MpCisgICAg
ICAgIHNlbGYuY29udHJpYnV0b3JzID0ge30KIAogICAgIEBkZWZlci5pbmxpbmVDYWxsYmFja3MK
ICAgICBkZWYgX2FkZFRvTG9nKHNlbGYsIGxvZ05hbWUsIG1lc3NhZ2UpOgpAQCAtMTA0NCw3ICsx
MDU3LDExIEBAIGNsYXNzIFZhbGlkYXRlQ29tbWl0ZXJBbmRSZXZpZXdlcihidWlsZHN0ZXAuQnVp
bGRTdGVwKToKICAgICAgICAgcmV0dXJuIGNvbnRyaWJ1dG9yLmdldCgnbmFtZScpCiAKICAgICBk
ZWYgc3RhcnQoc2VsZik6Ci0gICAgICAgIHNlbGYuY29udHJpYnV0b3JzID0gc2VsZi5sb2FkX2Nv
bnRyaWJ1dG9ycygpCisgICAgICAgIHNlbGYuY29udHJpYnV0b3JzLCBlcnJvcnMgPSBDb250cmli
dXRvcnMubG9hZCgpCisgICAgICAgIGZvciBlcnJvciBpbiBlcnJvcnM6CisgICAgICAgICAgICBw
cmludChlcnJvcikKKyAgICAgICAgICAgIHNlbGYuX2FkZFRvTG9nKCdzdGRpbycsIGVycm9yKQor
CiAgICAgICAgIGlmIG5vdCBzZWxmLmNvbnRyaWJ1dG9yczoKICAgICAgICAgICAgIHNlbGYuZmlu
aXNoZWQoRkFJTFVSRSkKICAgICAgICAgICAgIHNlbGYuZGVzY3JpcHRpb25Eb25lID0gJ0ZhaWxl
ZCB0byBnZXQgY29udHJpYnV0b3JzIGluZm9ybWF0aW9uJwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448948</attachid>
            <date>2022-01-12 08:25:37 -0800</date>
            <delta_ts>2022-01-12 10:48:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235074-20220112082536.patch</filename>
            <type>text/plain</type>
            <size>11993</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3OTIzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggM2QxMzZlMWU3ZDM5ZmRmNjk4Y2Y0NmY1N2ZkZjZkYmRm
NGFiMzFjYS4uMzJhYzBmM2Y2M2VjYTYyYzMyNDc1YTVlNzVhNmU2MmE4ODZkZjdlNyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5
IEBACisyMDIyLTAxLTEyICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbRVdTXSBTZXQgYnVpbGQgcHJvcGVydGllcyBiYXNlZCBvbiBHaXRIdWIgUHVsbCBS
ZXF1ZXN0IGhvb2tzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzUwNzQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg3NDA2MTU3PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ0lTdXBwb3J0L2V3cy1i
dWlsZC9ldmVudHMucHk6CisgICAgICAgIChHaXRIdWJQdWxsUmVxdWVzdEhhbmRsZXIpOgorICAg
ICAgICAoR2l0SHViUHVsbFJlcXVlc3RIYW5kbGVyLl9faW5pdF9fKToKKyAgICAgICAgKEdpdEh1
YlB1bGxSZXF1ZXN0SGFuZGxlci5tYXliZV9mZXRjaF9jb250cmlidXRvcnMpOiBGZXRjaCBhbmQg
Y2FjaGUgY29udHJpYnV0b3JzLgorICAgICAgICAoR2l0SHViUHVsbFJlcXVlc3RIYW5kbGVyLmV4
dHJhY3RQcm9wZXJ0aWVzKTogU2V0IGJ1aWxkIHByb3BlcnRpZXMgYmFzZWQgb24KKyAgICAgICAg
R2l0SHViIHB1bGwtcmVxdWVzdCBwYXlsb2FkLgorICAgICAgICAqIENJU3VwcG9ydC9ld3MtYnVp
bGQvc3RlcHMucHk6CisgICAgICAgIChHaXRIdWIucmVwb3NpdG9yeV91cmxzKTogQ29uY2F0ZW5h
dGUgYWxsIHZhbGlkIHByb2plY3RzIHdpdGggdGhlIGJhc2UgVVJMLgorICAgICAgICAoR2l0SHVi
LnByX3VybCk6IEdpdmVuIGEgcmVwb3NpdG9yeSBhbmQgcHVsbC1yZXF1ZXN0IG51bWJlciwgcmV0
dXJuIHRoZSBVUkwKKyAgICAgICAgZm9yIHRoYXQgcHVsbC1yZXF1ZXN0LgorICAgICAgICAoQ29u
dHJpYnV0b3JzKTogTW92ZWQgZnJvbSBWYWxpZGF0ZUNvbW1pdGVyQW5kUmV2aWV3ZXIuCisgICAg
ICAgIChDb25maWd1cmVCdWlsZC5hZGRfcHJfZGV0YWlscyk6IAorICAgICAgICAoVmFsaWRhdGVD
b21taXRlckFuZFJldmlld2VyKTogVXNlIENvbnRyaWJ1dG9ycyBjbGFzcy4KKyAgICAgICAgKEdp
dEh1Yk1peGluKTogRGVsZXRlZC4KKyAgICAgICAgKFZhbGlkYXRlQ29tbWl0ZXJBbmRSZXZpZXdl
ci5sb2FkX2NvbnRyaWJ1dG9yc19mcm9tX2Rpc2spOiBNb3ZlZCB0byBDb250cmlidXRvcnMuCisg
ICAgICAgIChWYWxpZGF0ZUNvbW1pdGVyQW5kUmV2aWV3ZXIubG9hZF9jb250cmlidXRvcnNfZnJv
bV9naXRodWIpOiBEaXR0by4KKyAgICAgICAgKFZhbGlkYXRlQ29tbWl0ZXJBbmRSZXZpZXdlci5s
b2FkX2NvbnRyaWJ1dG9ycyk6IERpdHRvLgorCiAyMDIyLTAxLTExICBHZW9mZnJleSBHYXJlbiAg
PGdnYXJlbkBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViUGFnZVByb3h5IGRlc3RydWN0aW9uIHNo
b3VsZCBub3QgbGF1bmNoIGEgbmV0d29yayBwcm9jZXNzCmRpZmYgLS1naXQgYS9Ub29scy9DSVN1
cHBvcnQvZXdzLWJ1aWxkL2V2ZW50cy5weSBiL1Rvb2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQvZXZl
bnRzLnB5CmluZGV4IDEzMWU5Y2Y2MjE0M2RmN2IyZjQ2OWE2MjE0M2U1MzIzNTY2NmNhNDguLjZj
ZTg3NzFkYjQyOTZhMjBlNWE3ODcyOGRkMGVlMDYzOTM1Y2Y4YTEgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0NJU3VwcG9ydC9ld3MtYnVpbGQvZXZlbnRzLnB5CisrKyBiL1Rvb2xzL0NJU3VwcG9ydC9ld3Mt
YnVpbGQvZXZlbnRzLnB5CkBAIC0xLDQgKzEsNCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTksIDIwMjIg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0yNyw2ICsyNyw4IEBAIGltcG9ydCBvcwogaW1wb3J0IHRpbWUKIAogZnJvbSBidWls
ZGJvdC51dGlsIGltcG9ydCBzZXJ2aWNlCitmcm9tIGJ1aWxkYm90Lnd3dy5ob29rcy5naXRodWIg
aW1wb3J0IEdpdEh1YkV2ZW50SGFuZGxlcgorZnJvbSBzdGVwcyBpbXBvcnQgQ29udHJpYnV0b3Jz
CiBmcm9tIHR3aXN0ZWQuaW50ZXJuZXQgaW1wb3J0IGRlZmVyCiBmcm9tIHR3aXN0ZWQuaW50ZXJu
ZXQgaW1wb3J0IHJlYWN0b3IKIGZyb20gdHdpc3RlZC5pbnRlcm5ldC5kZWZlciBpbXBvcnQgc3Vj
Y2VlZApAQCAtMjE0LDMgKzIxNiwzNyBAQCBjbGFzcyBFdmVudHMoc2VydmljZS5CdWlsZGJvdFNl
cnZpY2UpOgogICAgICAgICBzZWxmLl9idWlsZENvbXBsZXRlQ29uc3VtZXIuc3RvcENvbnN1bWlu
ZygpCiAgICAgICAgIHNlbGYuX3N0ZXBTdGFydGVkQ29uc3VtZXIuc3RvcENvbnN1bWluZygpCiAg
ICAgICAgIHNlbGYuX3N0ZXBGaW5pc2hlZENvbnN1bWVyLnN0b3BDb25zdW1pbmcoKQorCisKK2Ns
YXNzIEdpdEh1YlB1bGxSZXF1ZXN0SGFuZGxlcihHaXRIdWJFdmVudEhhbmRsZXIpOgorICAgIERB
WSA9IDI0ICogNjAgKiA2MAorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJn
cyk6CisgICAgICAgIHN1cGVyKEdpdEh1YlB1bGxSZXF1ZXN0SGFuZGxlciwgc2VsZikuX19pbml0
X18oKmFyZ3MsICoqa3dhcmdzKQorICAgICAgICBzZWxmLmNvbnRyaWJ1dG9ycyA9IHt9CisgICAg
ICAgIHNlbGYubGFzdF9mZXRjaGVkID0gMAorICAgICAgICBzZWxmLm1heWJlX2ZldGNoX2NvbnRy
aWJ1dG9ycygpCisKKyAgICBkZWYgbWF5YmVfZmV0Y2hfY29udHJpYnV0b3JzKHNlbGYpOgorICAg
ICAgICBpZiBzZWxmLmxhc3RfZmV0Y2hlZCArIHNlbGYuREFZID4gaW50KHRpbWUudGltZSgpKToK
KyAgICAgICAgICAgIHJldHVybiBzZWxmLmNvbnRyaWJ1dG9ycworCisgICAgICAgIHNlbGYuY29u
dHJpYnV0b3JzLCBlcnJvcnMgPSBDb250cmlidXRvcnMubG9hZCgpCisgICAgICAgIHNlbGYubGFz
dF9mZXRjaGVkID0gaW50KHRpbWUudGltZSgpKQorICAgICAgICBmb3IgZXJyb3IgaW4gZXJyb3Jz
OgorICAgICAgICAgICAgcHJpbnQoZXJyb3IpCisgICAgICAgIHJldHVybiBzZWxmLmNvbnRyaWJ1
dG9ycworCisgICAgZGVmIGV4dHJhY3RQcm9wZXJ0aWVzKHNlbGYsIHBheWxvYWQpOgorICAgICAg
ICBwcm9wZXJ0aWVzID0gc3VwZXIoR2l0SHViUHVsbFJlcXVlc3RIYW5kbGVyLCBzZWxmKS5leHRy
YWN0UHJvcGVydGllcyhwYXlsb2FkKQorICAgICAgICBwcm9wZXJ0aWVzWyd0aXRsZSddID0gcGF5
bG9hZC5nZXQoJ3RpdGxlJywgJz8nKQorICAgICAgICBwcm9wZXJ0aWVzWydwdWxsX3JlcXVlc3Rf
bnVtYmVyJ10gPSBwYXlsb2FkLmdldCgnbnVtYmVyJywgJy0nKQorICAgICAgICBwcm9wZXJ0aWVz
WydyZWYnXSA9IHBheWxvYWQuZ2V0KCdoZWFkJywge30pLmdldCgncmVmJykKKyAgICAgICAgcHJv
cGVydGllc1snYmFzZV9yZXZpc2lvbiddID0gcGF5bG9hZC5nZXQoJ2Jhc2UnLCB7fSkuZ2V0KCdz
aGEnKQorICAgICAgICBwcm9wZXJ0aWVzWydyZW1vdGUnXSA9IHBheWxvYWQuZ2V0KCdoZWFkJywg
e30pLmdldCgncmVwbycsIHt9KS5nZXQoJ2Z1bGxfbmFtZScpCisKKyAgICAgICAgdXNlcm5hbWUg
PSBwYXlsb2FkLmdldCgndXNlcicsIHt9KS5nZXQoJ2xvZ2luJykKKyAgICAgICAgY29udHJpYnV0
b3JzID0gc2VsZi5tYXliZV9mZXRjaF9jb250cmlidXRvcnMoKQorICAgICAgICBwcm9wZXJ0aWVz
WydhdXRob3InXSA9IGNvbnRyaWJ1dG9ycy5nZXQodXNlcm5hbWUsIHt9KS5nZXQoJ3ByaW50YWJs
ZScsIHBheWxvYWRbJ3VzZXInXVsnbG9naW4nXSkKKworICAgICAgICByZXR1cm4gcHJvcGVydGll
cwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWlsZC9zdGVwcy5weSBiL1Rvb2xz
L0NJU3VwcG9ydC9ld3MtYnVpbGQvc3RlcHMucHkKaW5kZXggYWRmNzQ2NTFhNjU4MjFiN2ZlMDFj
MWYxYzgyNjE3MTBmZDM4MDZhOS4uNGYwMjRmODYwNjFjNjY2ZGJmOTE4ZWE1NGU3ZTNiODIwNmZi
YWJhZSAxMDA2NDQKLS0tIGEvVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWlsZC9zdGVwcy5weQorKysg
Yi9Ub29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL3N0ZXBzLnB5CkBAIC01NSw3ICs1NSw4IEBAIFJF
U1VMVFNfREJfVVJMID0gJ2h0dHBzOi8vcmVzdWx0cy53ZWJraXQub3JnLycKIFdpdGhQcm9wZXJ0
aWVzID0gcHJvcGVydGllcy5XaXRoUHJvcGVydGllcwogSW50ZXJwb2xhdGUgPSBwcm9wZXJ0aWVz
LkludGVycG9sYXRlCiBCUkFOQ0hfUFJfUkUgPSByZS5jb21waWxlKHInXnJlZnMvcHVsbC8oP1A8
aWQ+XGQrKS9tZXJnZSQnKQotR0lUSFVCX1JFUE9TSVRPUklFUyA9IFsnaHR0cHM6Ly9naXRodWIu
Y29tL1dlYktpdC9XZWJLaXQnXQorR0lUSFVCX1VSTCA9ICdodHRwczovL2dpdGh1Yi5jb20vJwor
R0lUSFVCX1BST0pFQ1RTID0gWydXZWJLaXQvV2ViS2l0J10KIAogCiBjbGFzcyBCdWZmZXJMb2dI
ZWFkZXJPYnNlcnZlcihsb2dvYnNlcnZlci5CdWZmZXJMb2dPYnNlcnZlcik6CkBAIC03MSwzMiAr
NzIsNzggQEAgY2xhc3MgQnVmZmVyTG9nSGVhZGVyT2JzZXJ2ZXIobG9nb2JzZXJ2ZXIuQnVmZmVy
TG9nT2JzZXJ2ZXIpOgogICAgICAgICByZXR1cm4gc2VsZi5fZ2V0KHNlbGYuaGVhZGVycykKIAog
Ci1jbGFzcyBHaXRIdWJNaXhpbihvYmplY3QpOgotICAgIGRlZiBwcl91cmwoc2VsZiwgcHJfbnVt
YmVyPU5vbmUpOgotICAgICAgICBwcl9udW1iZXIgPSBwcl9udW1iZXIgb3Igc2VsZi5nZXRfcHVs
bF9yZXF1ZXN0X251bWJlcigpCi0gICAgICAgIGlmIG5vdCBwcl9udW1iZXI6CitjbGFzcyBHaXRI
dWIob2JqZWN0KToKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgcmVwb3NpdG9yeV91cmxzKGNs
cyk6CisgICAgICAgIHJldHVybiBbR0lUSFVCX1VSTCArIHByb2plY3QgZm9yIHByb2plY3QgaW4g
R0lUSFVCX1BST0pFQ1RTXQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIHByX3VybChjbHMs
IHJlcG9zaXRvcnlfdXJsPU5vbmUsIHByX251bWJlcj1Ob25lKToKKyAgICAgICAgaWYgbm90IHJl
cG9zaXRvcnlfdXJsOgorICAgICAgICAgICAgcmVwb3NpdG9yeV91cmwgPSAne317fScuZm9ybWF0
KEdJVEhVQl9VUkwsIEdJVEhVQl9QUk9KRUNUU1swXSkKKworICAgICAgICBpZiBub3QgcmVwb3Np
dG9yeV91cmwgb3IgcmVwb3NpdG9yeV91cmwgbm90IGluIEdpdEh1Yi5yZXBvc2l0b3J5X3VybHMo
KToKICAgICAgICAgICAgIHJldHVybiAnJwotICAgICAgICByZXR1cm4gJ3t9L3B1bGwve30nLmZv
cm1hdChzZWxmLmdldFByb3BlcnR5KCdyZXBvc2l0b3J5JywgJy0nKSwgcHJfbnVtYmVyKQorICAg
ICAgICBpZiBub3QgcHJfbnVtYmVyIG9yIGlzaW5zdGFuY2UocHJfbnVtYmVyLCBpbnQpOgorICAg
ICAgICAgICAgcmV0dXJuICcnCisgICAgICAgIHJldHVybiAne31wdWxsL3t9Jy5mb3JtYXQocmVw
b3NpdG9yeV91cmwsIHByX251bWJlcikKIAotICAgIGRlZiBnZXRfcHVsbF9yZXF1ZXN0X251bWJl
cihzZWxmKToKLSAgICAgICAgcHJfbnVtYmVyID0gc2VsZi5nZXRQcm9wZXJ0eSgncHVsbF9yZXF1
ZXN0JykKLSAgICAgICAgaWYgcHJfbnVtYmVyOgotICAgICAgICAgICAgcmV0dXJuIGludChwcl9u
dW1iZXIpCiAKLSAgICAgICAgaWYgc2VsZi5nZXRQcm9wZXJ0eSgnZXZlbnQnKSAhPSAncHVsbF9y
ZXF1ZXN0JzoKLSAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAgIGlmIHNlbGYuZ2V0UHJv
cGVydHkoJ3JlcG9zaXRvcnknKSBub3QgaW4gR0lUSFVCX1JFUE9TSVRPUklFUzoKLSAgICAgICAg
ICAgIHJldHVybiBOb25lCitjbGFzcyBDb250cmlidXRvcnMob2JqZWN0KToKKyAgICB1cmwgPSAn
aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1dlYktpdC9XZWJLaXQvbWFpbi9tZXRh
ZGF0YS9jb250cmlidXRvcnMuanNvbicKKyAgICBjb250cmlidXRvcnMgPSB7fQogCi0gICAgICAg
IG1hdGNoID0gQlJBTkNIX1BSX1JFLm1hdGNoKHNlbGYuZ2V0UHJvcGVydHkoJ2JyYW5jaCcsICcn
KSkKLSAgICAgICAgaWYgbm90IG1hdGNoOgotICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAg
ICAgcHJfbnVtYmVyID0gaW50KG1hdGNoLmdyb3VwKCdpZCcpKQotICAgICAgICBzZWxmLnNldFBy
b3BlcnR5KCdwdWxsX3JlcXVlc3QnLCBwcl9udW1iZXIpCi0gICAgICAgIHJldHVybiBwcl9udW1i
ZXIKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgbG9hZF9mcm9tX2Rpc2soY2xzKToKKyAgICAg
ICAgY3dkID0gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykpCisgICAg
ICAgIHJlcG9fcm9vdCA9IG9zLnBhdGguZGlybmFtZShvcy5wYXRoLmRpcm5hbWUob3MucGF0aC5k
aXJuYW1lKGN3ZCkpKQorICAgICAgICBjb250cmlidXRvcnNfcGF0aCA9IG9zLnBhdGguam9pbihy
ZXBvX3Jvb3QsICdtZXRhZGF0YS9jb250cmlidXRvcnMuanNvbicpCisgICAgICAgIHRyeToKKyAg
ICAgICAgICAgIHdpdGggb3Blbihjb250cmlidXRvcnNfcGF0aCwgJ3JiJykgYXMgY29udHJpYnV0
b3JzX2pzb246CisgICAgICAgICAgICAgICAgcmV0dXJuIGpzb24ubG9hZChjb250cmlidXRvcnNf
anNvbiksIE5vbmUKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAg
cmV0dXJuIHt9LCAnRmFpbGVkIHRvIGxvYWQge31cbicuZm9ybWF0KGNvbnRyaWJ1dG9yc19wYXRo
KQogCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIGxvYWRfZnJvbV9naXRodWIoY2xzKToKKyAg
ICAgICAgdHJ5OgorICAgICAgICAgICAgcmVzcG9uc2UgPSByZXF1ZXN0cy5nZXQoY2xzLnVybCwg
dGltZW91dD02MCkKKyAgICAgICAgICAgIGlmIHJlc3BvbnNlLnN0YXR1c19jb2RlICE9IDIwMDoK
KyAgICAgICAgICAgICAgICByZXR1cm4ge30sICdGYWlsZWQgdG8gYWNjZXNzIHt9IHdpdGggc3Rh
dHVzIGNvZGU6IHt9XG4nLmZvcm1hdChjbHMudXJsLCByZXNwb25zZS5zdGF0dXNfY29kZSkKKyAg
ICAgICAgICAgIHJldHVybiByZXNwb25zZS5qc29uKCksIE5vbmUKKyAgICAgICAgZXhjZXB0IEV4
Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgcmV0dXJuIHt9LCAnRmFpbGVkIHRvIGFjY2VzcyB7
dXJsfVxuJy5mb3JtYXQodXJsPWNscy51cmwpCiAKLWNsYXNzIENvbmZpZ3VyZUJ1aWxkKGJ1aWxk
c3RlcC5CdWlsZFN0ZXAsIEdpdEh1Yk1peGluKToKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYg
bG9hZChjbHMpOgorICAgICAgICBlcnJvcnMgPSBbXQorICAgICAgICBjb250cmlidXRvcnNfanNv
biwgZXJyb3IgPSBjbHMubG9hZF9mcm9tX2dpdGh1YigpCisgICAgICAgIGlmIGVycm9yOgorICAg
ICAgICAgICAgZXJyb3JzLmFwcGVuZChlcnJvcikKKworICAgICAgICBpZiBub3QgY29udHJpYnV0
b3JzX2pzb246CisgICAgICAgICAgICBjb250cmlidXRvcnNfanNvbiwgZXJyb3IgPSBjbHMubG9h
ZF9mcm9tX2Rpc2soKQorICAgICAgICAgICAgaWYgZXJyb3I6CisgICAgICAgICAgICAgICAgZXJy
b3JzLmFwcGVuZChlcnJvcikKKworICAgICAgICBjb250cmlidXRvcnMgPSB7fQorICAgICAgICBm
b3IgdmFsdWUgaW4gY29udHJpYnV0b3JzX2pzb246CisgICAgICAgICAgICBuYW1lID0gdmFsdWUu
Z2V0KCduYW1lJykKKyAgICAgICAgICAgIGVtYWlscyA9IHZhbHVlLmdldCgnZW1haWxzJykKKyAg
ICAgICAgICAgIGdpdGh1Yl91c2VybmFtZSA9IHZhbHVlLmdldCgnZ2l0aHViJykKKyAgICAgICAg
ICAgIGlmIG5hbWUgYW5kIGVtYWlsczoKKyAgICAgICAgICAgICAgICBidWd6aWxsYV9lbWFpbCA9
IGVtYWlsc1swXS5sb3dlcigpICAjIFdlJ3JlIHJlcXVpcmluZyB0aGF0IHRoZSBmaXJzdCBlbWFp
bCBpcyB0aGUgcHJpbWFyeSBidWd6aWxsYSBlbWFpbAorICAgICAgICAgICAgICAgIGNvbnRyaWJ1
dG9yc1tidWd6aWxsYV9lbWFpbF0gPSB7J25hbWUnOiBuYW1lLCAnc3RhdHVzJzogdmFsdWUuZ2V0
KCdzdGF0dXMnKX0KKyAgICAgICAgICAgIGlmIGdpdGh1Yl91c2VybmFtZSBhbmQgbmFtZSBhbmQg
ZW1haWxzOgorICAgICAgICAgICAgICAgIGNvbnRyaWJ1dG9yc1tnaXRodWJfdXNlcm5hbWVdID0g
ZGljdCgKKyAgICAgICAgICAgICAgICAgICAgcHJpbnRhYmxlPSd7fSA8e30+Jy5mb3JtYXQobmFt
ZSwgZW1haWxzWzBdLmxvd2VyKCkpLAorICAgICAgICAgICAgICAgICAgICBzdGF0dXM9dmFsdWUu
Z2V0KCdzdGF0dXMnKSwKKyAgICAgICAgICAgICAgICAgICAgZW1haWw9ZW1haWxzWzBdLAorICAg
ICAgICAgICAgICAgICkKKyAgICAgICAgcmV0dXJuIGNvbnRyaWJ1dG9ycywgZXJyb3JzCisKKwor
Y2xhc3MgQ29uZmlndXJlQnVpbGQoYnVpbGRzdGVwLkJ1aWxkU3RlcCk6CiAgICAgbmFtZSA9ICdj
b25maWd1cmUtYnVpbGQnCiAgICAgZGVzY3JpcHRpb24gPSBbJ2NvbmZpZ3VyaW5nIGJ1aWxkJ10K
ICAgICBkZXNjcmlwdGlvbkRvbmUgPSBbJ0NvbmZpZ3VyZWQgYnVpbGQnXQpAQCAtMTQ3LDkgKzE5
NCw5IEBAIGNsYXNzIENvbmZpZ3VyZUJ1aWxkKGJ1aWxkc3RlcC5CdWlsZFN0ZXAsIEdpdEh1Yk1p
eGluKToKICAgICAgICAgICAgIHNlbGYuYWRkVVJMKCdQYXRjaCB7fScuZm9ybWF0KHBhdGNoX2lk
KSwgQnVnemlsbGEucGF0Y2hfdXJsKHBhdGNoX2lkKSkKIAogICAgIGRlZiBhZGRfcHJfZGV0YWls
cyhzZWxmKToKLSAgICAgICAgcHJfbnVtYmVyID0gc2VsZi5nZXRfcHVsbF9yZXF1ZXN0X251bWJl
cigpCisgICAgICAgIHByX251bWJlciA9IHNlbGYuZ2V0UHJvcGVydHkoJ3B1bGxfcmVxdWVzdF9u
dW1iZXInKQogICAgICAgICBpZiBwcl9udW1iZXI6Ci0gICAgICAgICAgICBzZWxmLmFkZFVSTCgn
UHVsbCByZXF1ZXN0IHt9Jy5mb3JtYXQocHJfbnVtYmVyKSwgc2VsZi5wcl91cmwocHJfbnVtYmVy
PXByX251bWJlcikpCisgICAgICAgICAgICBzZWxmLmFkZFVSTCgnUHVsbCByZXF1ZXN0IHt9Jy5m
b3JtYXQocHJfbnVtYmVyKSwgR2l0SHViLnByX3VybChzZWxmLmdldFByb3BlcnR5KCdyZXBvc2l0
b3J5JyksIHByX251bWJlcikgb3IgJycpCiAKIAogY2xhc3MgQ2hlY2tPdXRTb3VyY2UoZ2l0Lkdp
dCk6CkBAIC05NjUsNDQgKzEwMTIsMTAgQEAgY2xhc3MgVmFsaWRhdGVQYXRjaChidWlsZHN0ZXAu
QnVpbGRTdGVwLCBCdWd6aWxsYU1peGluKToKIGNsYXNzIFZhbGlkYXRlQ29tbWl0ZXJBbmRSZXZp
ZXdlcihidWlsZHN0ZXAuQnVpbGRTdGVwKToKICAgICBuYW1lID0gJ3ZhbGlkYXRlLWNvbW1pdGVy
LWFuZC1yZXZpZXdlcicKICAgICBkZXNjcmlwdGlvbkRvbmUgPSBbJ1ZhbGlkYXRlZCBjb21taXRl
ciBhbmQgcmV2aWV3ZXInXQotICAgIHVybCA9ICdodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVu
dC5jb20vV2ViS2l0L1dlYktpdC9tYWluL21ldGFkYXRhL2NvbnRyaWJ1dG9ycy5qc29uJwotICAg
IGNvbnRyaWJ1dG9ycyA9IHt9CiAKLSAgICBkZWYgbG9hZF9jb250cmlidXRvcnNfZnJvbV9kaXNr
KHNlbGYpOgotICAgICAgICBjd2QgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5kaXJuYW1lKF9f
ZmlsZV9fKSkKLSAgICAgICAgcmVwb19yb290ID0gb3MucGF0aC5kaXJuYW1lKG9zLnBhdGguZGly
bmFtZShvcy5wYXRoLmRpcm5hbWUoY3dkKSkpCi0gICAgICAgIGNvbnRyaWJ1dG9yc19wYXRoID0g
b3MucGF0aC5qb2luKHJlcG9fcm9vdCwgJ21ldGFkYXRhL2NvbnRyaWJ1dG9ycy5qc29uJykKLSAg
ICAgICAgdHJ5OgotICAgICAgICAgICAgd2l0aCBvcGVuKGNvbnRyaWJ1dG9yc19wYXRoLCAncmIn
KSBhcyBjb250cmlidXRvcnNfanNvbjoKLSAgICAgICAgICAgICAgICByZXR1cm4ganNvbi5sb2Fk
KGNvbnRyaWJ1dG9yc19qc29uKQotICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Ci0gICAg
ICAgICAgICBzZWxmLl9hZGRUb0xvZygnc3RkaW8nLCAnRmFpbGVkIHRvIGxvYWQge31cbicuZm9y
bWF0KGNvbnRyaWJ1dG9yc19wYXRoKSkKLSAgICAgICAgICAgIHJldHVybiB7fQotCi0gICAgZGVm
IGxvYWRfY29udHJpYnV0b3JzX2Zyb21fZ2l0aHViKHNlbGYpOgotICAgICAgICB0cnk6Ci0gICAg
ICAgICAgICByZXNwb25zZSA9IHJlcXVlc3RzLmdldChzZWxmLnVybCwgdGltZW91dD02MCkKLSAg
ICAgICAgICAgIGlmIHJlc3BvbnNlLnN0YXR1c19jb2RlICE9IDIwMDoKLSAgICAgICAgICAgICAg
ICBzZWxmLl9hZGRUb0xvZygnc3RkaW8nLCAnRmFpbGVkIHRvIGFjY2VzcyB7fSB3aXRoIHN0YXR1
cyBjb2RlOiB7fVxuJy5mb3JtYXQoc2VsZi51cmwsIHJlc3BvbnNlLnN0YXR1c19jb2RlKSkKLSAg
ICAgICAgICAgICAgICByZXR1cm4ge30KLSAgICAgICAgICAgIHJldHVybiByZXNwb25zZS5qc29u
KCkKLSAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgotICAgICAgICAgICAgc2VsZi5fYWRk
VG9Mb2coJ3N0ZGlvJywgJ0ZhaWxlZCB0byBhY2Nlc3Mge3VybH1cbicuZm9ybWF0KHVybD1zZWxm
LnVybCkpCi0gICAgICAgICAgICByZXR1cm4ge30KLQotICAgIGRlZiBsb2FkX2NvbnRyaWJ1dG9y
cyhzZWxmKToKLSAgICAgICAgY29udHJpYnV0b3JzX2pzb24gPSBzZWxmLmxvYWRfY29udHJpYnV0
b3JzX2Zyb21fZ2l0aHViKCkKLSAgICAgICAgaWYgbm90IGNvbnRyaWJ1dG9yc19qc29uOgotICAg
ICAgICAgICAgY29udHJpYnV0b3JzX2pzb24gPSBzZWxmLmxvYWRfY29udHJpYnV0b3JzX2Zyb21f
ZGlzaygpCi0KLSAgICAgICAgY29udHJpYnV0b3JzID0ge30KLSAgICAgICAgZm9yIHZhbHVlIGlu
IGNvbnRyaWJ1dG9yc19qc29uOgotICAgICAgICAgICAgbmFtZSA9IHZhbHVlLmdldCgnbmFtZScp
Ci0gICAgICAgICAgICBlbWFpbHMgPSB2YWx1ZS5nZXQoJ2VtYWlscycpCi0gICAgICAgICAgICBp
ZiBuYW1lIGFuZCBlbWFpbHM6Ci0gICAgICAgICAgICAgICAgYnVnemlsbGFfZW1haWwgPSBlbWFp
bHNbMF0ubG93ZXIoKSAgIyBXZSdyZSByZXF1aXJpbmcgdGhhdCB0aGUgZmlyc3QgZW1haWwgaXMg
dGhlIHByaW1hcnkgYnVnemlsbGEgZW1haWwKLSAgICAgICAgICAgICAgICBjb250cmlidXRvcnNb
YnVnemlsbGFfZW1haWxdID0geyduYW1lJzogbmFtZSwgJ3N0YXR1cyc6IHZhbHVlLmdldCgnc3Rh
dHVzJyl9Ci0gICAgICAgIHJldHVybiBjb250cmlidXRvcnMKKyAgICBkZWYgX19pbml0X18oc2Vs
ZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgc3VwZXIoVmFsaWRhdGVDb21taXRlckFuZFJl
dmlld2VyLCBzZWxmKS5fX2luaXRfXygqYXJncywgKiprd2FyZ3MpCisgICAgICAgIHNlbGYuY29u
dHJpYnV0b3JzID0ge30KIAogICAgIEBkZWZlci5pbmxpbmVDYWxsYmFja3MKICAgICBkZWYgX2Fk
ZFRvTG9nKHNlbGYsIGxvZ05hbWUsIG1lc3NhZ2UpOgpAQCAtMTA0NCw3ICsxMDU3LDExIEBAIGNs
YXNzIFZhbGlkYXRlQ29tbWl0ZXJBbmRSZXZpZXdlcihidWlsZHN0ZXAuQnVpbGRTdGVwKToKICAg
ICAgICAgcmV0dXJuIGNvbnRyaWJ1dG9yLmdldCgnbmFtZScpCiAKICAgICBkZWYgc3RhcnQoc2Vs
Zik6Ci0gICAgICAgIHNlbGYuY29udHJpYnV0b3JzID0gc2VsZi5sb2FkX2NvbnRyaWJ1dG9ycygp
CisgICAgICAgIHNlbGYuY29udHJpYnV0b3JzLCBlcnJvcnMgPSBDb250cmlidXRvcnMubG9hZCgp
CisgICAgICAgIGZvciBlcnJvciBpbiBlcnJvcnM6CisgICAgICAgICAgICBwcmludChlcnJvcikK
KyAgICAgICAgICAgIHNlbGYuX2FkZFRvTG9nKCdzdGRpbycsIGVycm9yKQorCiAgICAgICAgIGlm
IG5vdCBzZWxmLmNvbnRyaWJ1dG9yczoKICAgICAgICAgICAgIHNlbGYuZmluaXNoZWQoRkFJTFVS
RSkKICAgICAgICAgICAgIHNlbGYuZGVzY3JpcHRpb25Eb25lID0gJ0ZhaWxlZCB0byBnZXQgY29u
dHJpYnV0b3JzIGluZm9ybWF0aW9uJwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448963</attachid>
            <date>2022-01-12 10:48:44 -0800</date>
            <delta_ts>2022-01-12 11:06:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235074-20220112104843.patch</filename>
            <type>text/plain</type>
            <size>6350</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3OTMzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggM2QxMzZlMWU3ZDM5ZmRmNjk4Y2Y0NmY1N2ZkZjZkYmRm
NGFiMzFjYS4uMGI4NzI4OGI3NTA4Mzg4ZjA1MDliMDkzZmY4ODI0Y2RlM2NjNWMzYyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3
IEBACisyMDIyLTAxLTEyICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbRVdTXSBMb2FkIGNvbnRyaWJ1dG9ycyBmcm9tIHN0YW5kLWFsb25lIGNsYXNzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzUwNzQKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg3NDA2MTU3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ0lTdXBwb3J0L2V3cy1idWlsZC9zdGVwcy5weToK
KyAgICAgICAgKENvbnRyaWJ1dG9ycyk6IE1vdmVkIGZyb20gVmFsaWRhdGVDb21taXRlckFuZFJl
dmlld2VyLgorICAgICAgICAoVmFsaWRhdGVDb21taXRlckFuZFJldmlld2VyLmxvYWRfY29udHJp
YnV0b3JzX2Zyb21fZGlzayk6IE1vdmVkIHRvIENvbnRyaWJ1dG9ycy4KKyAgICAgICAgKFZhbGlk
YXRlQ29tbWl0ZXJBbmRSZXZpZXdlci5sb2FkX2NvbnRyaWJ1dG9yc19mcm9tX2dpdGh1Yik6IERp
dHRvLgorICAgICAgICAoVmFsaWRhdGVDb21taXRlckFuZFJldmlld2VyLmxvYWRfY29udHJpYnV0
b3JzKTogRGl0dG8uCisKIDIwMjItMDEtMTEgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxl
LmNvbT4KIAogICAgICAgICBXZWJQYWdlUHJveHkgZGVzdHJ1Y3Rpb24gc2hvdWxkIG5vdCBsYXVu
Y2ggYSBuZXR3b3JrIHByb2Nlc3MKZGlmZiAtLWdpdCBhL1Rvb2xzL0NJU3VwcG9ydC9ld3MtYnVp
bGQvc3RlcHMucHkgYi9Ub29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL3N0ZXBzLnB5CmluZGV4IGFk
Zjc0NjUxYTY1ODIxYjdmZTAxYzFmMWM4MjYxNzEwZmQzODA2YTkuLjFjYTgwNDgyNTBhYmE1NjE0
MTNkZTU4ZDk0NjdlODNlOTEzZWRkYjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NJU3VwcG9ydC9ld3Mt
YnVpbGQvc3RlcHMucHkKKysrIGIvVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWlsZC9zdGVwcy5weQpA
QCAtOTYsNiArOTYsNjAgQEAgY2xhc3MgR2l0SHViTWl4aW4ob2JqZWN0KToKICAgICAgICAgcmV0
dXJuIHByX251bWJlcgogCiAKK2NsYXNzIENvbnRyaWJ1dG9ycyhvYmplY3QpOgorICAgIHVybCA9
ICdodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vV2ViS2l0L1dlYktpdC9tYWluL21l
dGFkYXRhL2NvbnRyaWJ1dG9ycy5qc29uJworICAgIGNvbnRyaWJ1dG9ycyA9IHt9CisKKyAgICBA
Y2xhc3NtZXRob2QKKyAgICBkZWYgbG9hZF9mcm9tX2Rpc2soY2xzKToKKyAgICAgICAgY3dkID0g
b3MucGF0aC5hYnNwYXRoKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykpCisgICAgICAgIHJlcG9f
cm9vdCA9IG9zLnBhdGguZGlybmFtZShvcy5wYXRoLmRpcm5hbWUob3MucGF0aC5kaXJuYW1lKGN3
ZCkpKQorICAgICAgICBjb250cmlidXRvcnNfcGF0aCA9IG9zLnBhdGguam9pbihyZXBvX3Jvb3Qs
ICdtZXRhZGF0YS9jb250cmlidXRvcnMuanNvbicpCisgICAgICAgIHRyeToKKyAgICAgICAgICAg
IHdpdGggb3Blbihjb250cmlidXRvcnNfcGF0aCwgJ3JiJykgYXMgY29udHJpYnV0b3JzX2pzb246
CisgICAgICAgICAgICAgICAgcmV0dXJuIGpzb24ubG9hZChjb250cmlidXRvcnNfanNvbiksIE5v
bmUKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgcmV0dXJuIHt9
LCAnRmFpbGVkIHRvIGxvYWQge31cbicuZm9ybWF0KGNvbnRyaWJ1dG9yc19wYXRoKQorCisgICAg
QGNsYXNzbWV0aG9kCisgICAgZGVmIGxvYWRfZnJvbV9naXRodWIoY2xzKToKKyAgICAgICAgdHJ5
OgorICAgICAgICAgICAgcmVzcG9uc2UgPSByZXF1ZXN0cy5nZXQoY2xzLnVybCwgdGltZW91dD02
MCkKKyAgICAgICAgICAgIGlmIHJlc3BvbnNlLnN0YXR1c19jb2RlICE9IDIwMDoKKyAgICAgICAg
ICAgICAgICByZXR1cm4ge30sICdGYWlsZWQgdG8gYWNjZXNzIHt9IHdpdGggc3RhdHVzIGNvZGU6
IHt9XG4nLmZvcm1hdChjbHMudXJsLCByZXNwb25zZS5zdGF0dXNfY29kZSkKKyAgICAgICAgICAg
IHJldHVybiByZXNwb25zZS5qc29uKCksIE5vbmUKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBh
cyBlOgorICAgICAgICAgICAgcmV0dXJuIHt9LCAnRmFpbGVkIHRvIGFjY2VzcyB7dXJsfVxuJy5m
b3JtYXQodXJsPWNscy51cmwpCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgbG9hZChjbHMp
OgorICAgICAgICBlcnJvcnMgPSBbXQorICAgICAgICBjb250cmlidXRvcnNfanNvbiwgZXJyb3Ig
PSBjbHMubG9hZF9mcm9tX2dpdGh1YigpCisgICAgICAgIGlmIGVycm9yOgorICAgICAgICAgICAg
ZXJyb3JzLmFwcGVuZChlcnJvcikKKworICAgICAgICBpZiBub3QgY29udHJpYnV0b3JzX2pzb246
CisgICAgICAgICAgICBjb250cmlidXRvcnNfanNvbiwgZXJyb3IgPSBjbHMubG9hZF9mcm9tX2Rp
c2soKQorICAgICAgICAgICAgaWYgZXJyb3I6CisgICAgICAgICAgICAgICAgZXJyb3JzLmFwcGVu
ZChlcnJvcikKKworICAgICAgICBjb250cmlidXRvcnMgPSB7fQorICAgICAgICBmb3IgdmFsdWUg
aW4gY29udHJpYnV0b3JzX2pzb246CisgICAgICAgICAgICBuYW1lID0gdmFsdWUuZ2V0KCduYW1l
JykKKyAgICAgICAgICAgIGVtYWlscyA9IHZhbHVlLmdldCgnZW1haWxzJykKKyAgICAgICAgICAg
IGdpdGh1Yl91c2VybmFtZSA9IHZhbHVlLmdldCgnZ2l0aHViJykKKyAgICAgICAgICAgIGlmIG5h
bWUgYW5kIGVtYWlsczoKKyAgICAgICAgICAgICAgICBidWd6aWxsYV9lbWFpbCA9IGVtYWlsc1sw
XS5sb3dlcigpICAjIFdlJ3JlIHJlcXVpcmluZyB0aGF0IHRoZSBmaXJzdCBlbWFpbCBpcyB0aGUg
cHJpbWFyeSBidWd6aWxsYSBlbWFpbAorICAgICAgICAgICAgICAgIGNvbnRyaWJ1dG9yc1tidWd6
aWxsYV9lbWFpbF0gPSB7J25hbWUnOiBuYW1lLCAnc3RhdHVzJzogdmFsdWUuZ2V0KCdzdGF0dXMn
KX0KKyAgICAgICAgICAgIGlmIGdpdGh1Yl91c2VybmFtZSBhbmQgbmFtZSBhbmQgZW1haWxzOgor
ICAgICAgICAgICAgICAgIGNvbnRyaWJ1dG9yc1tnaXRodWJfdXNlcm5hbWVdID0gZGljdCgKKyAg
ICAgICAgICAgICAgICAgICAgcHJpbnRhYmxlPSd7fSA8e30+Jy5mb3JtYXQobmFtZSwgZW1haWxz
WzBdLmxvd2VyKCkpLAorICAgICAgICAgICAgICAgICAgICBzdGF0dXM9dmFsdWUuZ2V0KCdzdGF0
dXMnKSwKKyAgICAgICAgICAgICAgICAgICAgZW1haWw9ZW1haWxzWzBdLAorICAgICAgICAgICAg
ICAgICkKKyAgICAgICAgcmV0dXJuIGNvbnRyaWJ1dG9ycywgZXJyb3JzCisKKwogY2xhc3MgQ29u
ZmlndXJlQnVpbGQoYnVpbGRzdGVwLkJ1aWxkU3RlcCwgR2l0SHViTWl4aW4pOgogICAgIG5hbWUg
PSAnY29uZmlndXJlLWJ1aWxkJwogICAgIGRlc2NyaXB0aW9uID0gWydjb25maWd1cmluZyBidWls
ZCddCkBAIC05NjUsNDQgKzEwMTksMTAgQEAgY2xhc3MgVmFsaWRhdGVQYXRjaChidWlsZHN0ZXAu
QnVpbGRTdGVwLCBCdWd6aWxsYU1peGluKToKIGNsYXNzIFZhbGlkYXRlQ29tbWl0ZXJBbmRSZXZp
ZXdlcihidWlsZHN0ZXAuQnVpbGRTdGVwKToKICAgICBuYW1lID0gJ3ZhbGlkYXRlLWNvbW1pdGVy
LWFuZC1yZXZpZXdlcicKICAgICBkZXNjcmlwdGlvbkRvbmUgPSBbJ1ZhbGlkYXRlZCBjb21taXRl
ciBhbmQgcmV2aWV3ZXInXQotICAgIHVybCA9ICdodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVu
dC5jb20vV2ViS2l0L1dlYktpdC9tYWluL21ldGFkYXRhL2NvbnRyaWJ1dG9ycy5qc29uJwotICAg
IGNvbnRyaWJ1dG9ycyA9IHt9Ci0KLSAgICBkZWYgbG9hZF9jb250cmlidXRvcnNfZnJvbV9kaXNr
KHNlbGYpOgotICAgICAgICBjd2QgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5kaXJuYW1lKF9f
ZmlsZV9fKSkKLSAgICAgICAgcmVwb19yb290ID0gb3MucGF0aC5kaXJuYW1lKG9zLnBhdGguZGly
bmFtZShvcy5wYXRoLmRpcm5hbWUoY3dkKSkpCi0gICAgICAgIGNvbnRyaWJ1dG9yc19wYXRoID0g
b3MucGF0aC5qb2luKHJlcG9fcm9vdCwgJ21ldGFkYXRhL2NvbnRyaWJ1dG9ycy5qc29uJykKLSAg
ICAgICAgdHJ5OgotICAgICAgICAgICAgd2l0aCBvcGVuKGNvbnRyaWJ1dG9yc19wYXRoLCAncmIn
KSBhcyBjb250cmlidXRvcnNfanNvbjoKLSAgICAgICAgICAgICAgICByZXR1cm4ganNvbi5sb2Fk
KGNvbnRyaWJ1dG9yc19qc29uKQotICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Ci0gICAg
ICAgICAgICBzZWxmLl9hZGRUb0xvZygnc3RkaW8nLCAnRmFpbGVkIHRvIGxvYWQge31cbicuZm9y
bWF0KGNvbnRyaWJ1dG9yc19wYXRoKSkKLSAgICAgICAgICAgIHJldHVybiB7fQotCi0gICAgZGVm
IGxvYWRfY29udHJpYnV0b3JzX2Zyb21fZ2l0aHViKHNlbGYpOgotICAgICAgICB0cnk6Ci0gICAg
ICAgICAgICByZXNwb25zZSA9IHJlcXVlc3RzLmdldChzZWxmLnVybCwgdGltZW91dD02MCkKLSAg
ICAgICAgICAgIGlmIHJlc3BvbnNlLnN0YXR1c19jb2RlICE9IDIwMDoKLSAgICAgICAgICAgICAg
ICBzZWxmLl9hZGRUb0xvZygnc3RkaW8nLCAnRmFpbGVkIHRvIGFjY2VzcyB7fSB3aXRoIHN0YXR1
cyBjb2RlOiB7fVxuJy5mb3JtYXQoc2VsZi51cmwsIHJlc3BvbnNlLnN0YXR1c19jb2RlKSkKLSAg
ICAgICAgICAgICAgICByZXR1cm4ge30KLSAgICAgICAgICAgIHJldHVybiByZXNwb25zZS5qc29u
KCkKLSAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgotICAgICAgICAgICAgc2VsZi5fYWRk
VG9Mb2coJ3N0ZGlvJywgJ0ZhaWxlZCB0byBhY2Nlc3Mge3VybH1cbicuZm9ybWF0KHVybD1zZWxm
LnVybCkpCi0gICAgICAgICAgICByZXR1cm4ge30KIAotICAgIGRlZiBsb2FkX2NvbnRyaWJ1dG9y
cyhzZWxmKToKLSAgICAgICAgY29udHJpYnV0b3JzX2pzb24gPSBzZWxmLmxvYWRfY29udHJpYnV0
b3JzX2Zyb21fZ2l0aHViKCkKLSAgICAgICAgaWYgbm90IGNvbnRyaWJ1dG9yc19qc29uOgotICAg
ICAgICAgICAgY29udHJpYnV0b3JzX2pzb24gPSBzZWxmLmxvYWRfY29udHJpYnV0b3JzX2Zyb21f
ZGlzaygpCi0KLSAgICAgICAgY29udHJpYnV0b3JzID0ge30KLSAgICAgICAgZm9yIHZhbHVlIGlu
IGNvbnRyaWJ1dG9yc19qc29uOgotICAgICAgICAgICAgbmFtZSA9IHZhbHVlLmdldCgnbmFtZScp
Ci0gICAgICAgICAgICBlbWFpbHMgPSB2YWx1ZS5nZXQoJ2VtYWlscycpCi0gICAgICAgICAgICBp
ZiBuYW1lIGFuZCBlbWFpbHM6Ci0gICAgICAgICAgICAgICAgYnVnemlsbGFfZW1haWwgPSBlbWFp
bHNbMF0ubG93ZXIoKSAgIyBXZSdyZSByZXF1aXJpbmcgdGhhdCB0aGUgZmlyc3QgZW1haWwgaXMg
dGhlIHByaW1hcnkgYnVnemlsbGEgZW1haWwKLSAgICAgICAgICAgICAgICBjb250cmlidXRvcnNb
YnVnemlsbGFfZW1haWxdID0geyduYW1lJzogbmFtZSwgJ3N0YXR1cyc6IHZhbHVlLmdldCgnc3Rh
dHVzJyl9Ci0gICAgICAgIHJldHVybiBjb250cmlidXRvcnMKKyAgICBkZWYgX19pbml0X18oc2Vs
ZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgc3VwZXIoVmFsaWRhdGVDb21taXRlckFuZFJl
dmlld2VyLCBzZWxmKS5fX2luaXRfXygqYXJncywgKiprd2FyZ3MpCisgICAgICAgIHNlbGYuY29u
dHJpYnV0b3JzID0ge30KIAogICAgIEBkZWZlci5pbmxpbmVDYWxsYmFja3MKICAgICBkZWYgX2Fk
ZFRvTG9nKHNlbGYsIGxvZ05hbWUsIG1lc3NhZ2UpOgpAQCAtMTA0NCw3ICsxMDY0LDExIEBAIGNs
YXNzIFZhbGlkYXRlQ29tbWl0ZXJBbmRSZXZpZXdlcihidWlsZHN0ZXAuQnVpbGRTdGVwKToKICAg
ICAgICAgcmV0dXJuIGNvbnRyaWJ1dG9yLmdldCgnbmFtZScpCiAKICAgICBkZWYgc3RhcnQoc2Vs
Zik6Ci0gICAgICAgIHNlbGYuY29udHJpYnV0b3JzID0gc2VsZi5sb2FkX2NvbnRyaWJ1dG9ycygp
CisgICAgICAgIHNlbGYuY29udHJpYnV0b3JzLCBlcnJvcnMgPSBDb250cmlidXRvcnMubG9hZCgp
CisgICAgICAgIGZvciBlcnJvciBpbiBlcnJvcnM6CisgICAgICAgICAgICBwcmludChlcnJvcikK
KyAgICAgICAgICAgIHNlbGYuX2FkZFRvTG9nKCdzdGRpbycsIGVycm9yKQorCiAgICAgICAgIGlm
IG5vdCBzZWxmLmNvbnRyaWJ1dG9yczoKICAgICAgICAgICAgIHNlbGYuZmluaXNoZWQoRkFJTFVS
RSkKICAgICAgICAgICAgIHNlbGYuZGVzY3JpcHRpb25Eb25lID0gJ0ZhaWxlZCB0byBnZXQgY29u
dHJpYnV0b3JzIGluZm9ybWF0aW9uJwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448968</attachid>
            <date>2022-01-12 11:06:21 -0800</date>
            <delta_ts>2022-01-12 11:24:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235074-20220112110621.patch</filename>
            <type>text/plain</type>
            <size>6930</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3OTMzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggM2QxMzZlMWU3ZDM5ZmRmNjk4Y2Y0NmY1N2ZkZjZkYmRm
NGFiMzFjYS4uMGI4NzI4OGI3NTA4Mzg4ZjA1MDliMDkzZmY4ODI0Y2RlM2NjNWMzYyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3
IEBACisyMDIyLTAxLTEyICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbRVdTXSBMb2FkIGNvbnRyaWJ1dG9ycyBmcm9tIHN0YW5kLWFsb25lIGNsYXNzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzUwNzQKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg3NDA2MTU3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ0lTdXBwb3J0L2V3cy1idWlsZC9zdGVwcy5weToK
KyAgICAgICAgKENvbnRyaWJ1dG9ycyk6IE1vdmVkIGZyb20gVmFsaWRhdGVDb21taXRlckFuZFJl
dmlld2VyLgorICAgICAgICAoVmFsaWRhdGVDb21taXRlckFuZFJldmlld2VyLmxvYWRfY29udHJp
YnV0b3JzX2Zyb21fZGlzayk6IE1vdmVkIHRvIENvbnRyaWJ1dG9ycy4KKyAgICAgICAgKFZhbGlk
YXRlQ29tbWl0ZXJBbmRSZXZpZXdlci5sb2FkX2NvbnRyaWJ1dG9yc19mcm9tX2dpdGh1Yik6IERp
dHRvLgorICAgICAgICAoVmFsaWRhdGVDb21taXRlckFuZFJldmlld2VyLmxvYWRfY29udHJpYnV0
b3JzKTogRGl0dG8uCisKIDIwMjItMDEtMTEgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxl
LmNvbT4KIAogICAgICAgICBXZWJQYWdlUHJveHkgZGVzdHJ1Y3Rpb24gc2hvdWxkIG5vdCBsYXVu
Y2ggYSBuZXR3b3JrIHByb2Nlc3MKZGlmZiAtLWdpdCBhL1Rvb2xzL0NJU3VwcG9ydC9ld3MtYnVp
bGQvc3RlcHMucHkgYi9Ub29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL3N0ZXBzLnB5CmluZGV4IGFk
Zjc0NjUxYTY1ODIxYjdmZTAxYzFmMWM4MjYxNzEwZmQzODA2YTkuLjU5YWU2ZjMyMWJiNzMzNzhh
ZGU2M2Y2N2U4YTQ2MGM1MjllYmZlNDQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NJU3VwcG9ydC9ld3Mt
YnVpbGQvc3RlcHMucHkKKysrIGIvVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWlsZC9zdGVwcy5weQpA
QCAtOTYsNiArOTYsNjAgQEAgY2xhc3MgR2l0SHViTWl4aW4ob2JqZWN0KToKICAgICAgICAgcmV0
dXJuIHByX251bWJlcgogCiAKK2NsYXNzIENvbnRyaWJ1dG9ycyhvYmplY3QpOgorICAgIHVybCA9
ICdodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vV2ViS2l0L1dlYktpdC9tYWluL21l
dGFkYXRhL2NvbnRyaWJ1dG9ycy5qc29uJworICAgIGNvbnRyaWJ1dG9ycyA9IHt9CisKKyAgICBA
Y2xhc3NtZXRob2QKKyAgICBkZWYgbG9hZF9mcm9tX2Rpc2soY2xzKToKKyAgICAgICAgY3dkID0g
b3MucGF0aC5hYnNwYXRoKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykpCisgICAgICAgIHJlcG9f
cm9vdCA9IG9zLnBhdGguZGlybmFtZShvcy5wYXRoLmRpcm5hbWUob3MucGF0aC5kaXJuYW1lKGN3
ZCkpKQorICAgICAgICBjb250cmlidXRvcnNfcGF0aCA9IG9zLnBhdGguam9pbihyZXBvX3Jvb3Qs
ICdtZXRhZGF0YS9jb250cmlidXRvcnMuanNvbicpCisgICAgICAgIHRyeToKKyAgICAgICAgICAg
IHdpdGggb3Blbihjb250cmlidXRvcnNfcGF0aCwgJ3JiJykgYXMgY29udHJpYnV0b3JzX2pzb246
CisgICAgICAgICAgICAgICAgcmV0dXJuIGpzb24ubG9hZChjb250cmlidXRvcnNfanNvbiksIE5v
bmUKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgcmV0dXJuIHt9
LCAnRmFpbGVkIHRvIGxvYWQge31cbicuZm9ybWF0KGNvbnRyaWJ1dG9yc19wYXRoKQorCisgICAg
QGNsYXNzbWV0aG9kCisgICAgZGVmIGxvYWRfZnJvbV9naXRodWIoY2xzKToKKyAgICAgICAgdHJ5
OgorICAgICAgICAgICAgcmVzcG9uc2UgPSByZXF1ZXN0cy5nZXQoY2xzLnVybCwgdGltZW91dD02
MCkKKyAgICAgICAgICAgIGlmIHJlc3BvbnNlLnN0YXR1c19jb2RlICE9IDIwMDoKKyAgICAgICAg
ICAgICAgICByZXR1cm4ge30sICdGYWlsZWQgdG8gYWNjZXNzIHt9IHdpdGggc3RhdHVzIGNvZGU6
IHt9XG4nLmZvcm1hdChjbHMudXJsLCByZXNwb25zZS5zdGF0dXNfY29kZSkKKyAgICAgICAgICAg
IHJldHVybiByZXNwb25zZS5qc29uKCksIE5vbmUKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBh
cyBlOgorICAgICAgICAgICAgcmV0dXJuIHt9LCAnRmFpbGVkIHRvIGFjY2VzcyB7dXJsfVxuJy5m
b3JtYXQodXJsPWNscy51cmwpCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgbG9hZChjbHMp
OgorICAgICAgICBlcnJvcnMgPSBbXQorICAgICAgICBjb250cmlidXRvcnNfanNvbiwgZXJyb3Ig
PSBjbHMubG9hZF9mcm9tX2dpdGh1YigpCisgICAgICAgIGlmIGVycm9yOgorICAgICAgICAgICAg
ZXJyb3JzLmFwcGVuZChlcnJvcikKKworICAgICAgICBpZiBub3QgY29udHJpYnV0b3JzX2pzb246
CisgICAgICAgICAgICBjb250cmlidXRvcnNfanNvbiwgZXJyb3IgPSBjbHMubG9hZF9mcm9tX2Rp
c2soKQorICAgICAgICAgICAgaWYgZXJyb3I6CisgICAgICAgICAgICAgICAgZXJyb3JzLmFwcGVu
ZChlcnJvcikKKworICAgICAgICBjb250cmlidXRvcnMgPSB7fQorICAgICAgICBmb3IgdmFsdWUg
aW4gY29udHJpYnV0b3JzX2pzb246CisgICAgICAgICAgICBuYW1lID0gdmFsdWUuZ2V0KCduYW1l
JykKKyAgICAgICAgICAgIGVtYWlscyA9IHZhbHVlLmdldCgnZW1haWxzJykKKyAgICAgICAgICAg
IGdpdGh1Yl91c2VybmFtZSA9IHZhbHVlLmdldCgnZ2l0aHViJykKKyAgICAgICAgICAgIGlmIG5h
bWUgYW5kIGVtYWlsczoKKyAgICAgICAgICAgICAgICBidWd6aWxsYV9lbWFpbCA9IGVtYWlsc1sw
XS5sb3dlcigpICAjIFdlJ3JlIHJlcXVpcmluZyB0aGF0IHRoZSBmaXJzdCBlbWFpbCBpcyB0aGUg
cHJpbWFyeSBidWd6aWxsYSBlbWFpbAorICAgICAgICAgICAgICAgIGNvbnRyaWJ1dG9yc1tidWd6
aWxsYV9lbWFpbF0gPSB7J25hbWUnOiBuYW1lLCAnc3RhdHVzJzogdmFsdWUuZ2V0KCdzdGF0dXMn
KX0KKyAgICAgICAgICAgIGlmIGdpdGh1Yl91c2VybmFtZSBhbmQgbmFtZSBhbmQgZW1haWxzOgor
ICAgICAgICAgICAgICAgIGNvbnRyaWJ1dG9yc1tnaXRodWJfdXNlcm5hbWVdID0gZGljdCgKKyAg
ICAgICAgICAgICAgICAgICAgcHJpbnRhYmxlPSd7fSA8e30+Jy5mb3JtYXQobmFtZSwgZW1haWxz
WzBdLmxvd2VyKCkpLAorICAgICAgICAgICAgICAgICAgICBzdGF0dXM9dmFsdWUuZ2V0KCdzdGF0
dXMnKSwKKyAgICAgICAgICAgICAgICAgICAgZW1haWw9ZW1haWxzWzBdLAorICAgICAgICAgICAg
ICAgICkKKyAgICAgICAgcmV0dXJuIGNvbnRyaWJ1dG9ycywgZXJyb3JzCisKKwogY2xhc3MgQ29u
ZmlndXJlQnVpbGQoYnVpbGRzdGVwLkJ1aWxkU3RlcCwgR2l0SHViTWl4aW4pOgogICAgIG5hbWUg
PSAnY29uZmlndXJlLWJ1aWxkJwogICAgIGRlc2NyaXB0aW9uID0gWydjb25maWd1cmluZyBidWls
ZCddCkBAIC05NjUsNDQgKzEwMTksMTAgQEAgY2xhc3MgVmFsaWRhdGVQYXRjaChidWlsZHN0ZXAu
QnVpbGRTdGVwLCBCdWd6aWxsYU1peGluKToKIGNsYXNzIFZhbGlkYXRlQ29tbWl0ZXJBbmRSZXZp
ZXdlcihidWlsZHN0ZXAuQnVpbGRTdGVwKToKICAgICBuYW1lID0gJ3ZhbGlkYXRlLWNvbW1pdGVy
LWFuZC1yZXZpZXdlcicKICAgICBkZXNjcmlwdGlvbkRvbmUgPSBbJ1ZhbGlkYXRlZCBjb21taXRl
ciBhbmQgcmV2aWV3ZXInXQotICAgIHVybCA9ICdodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVu
dC5jb20vV2ViS2l0L1dlYktpdC9tYWluL21ldGFkYXRhL2NvbnRyaWJ1dG9ycy5qc29uJwotICAg
IGNvbnRyaWJ1dG9ycyA9IHt9Ci0KLSAgICBkZWYgbG9hZF9jb250cmlidXRvcnNfZnJvbV9kaXNr
KHNlbGYpOgotICAgICAgICBjd2QgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5kaXJuYW1lKF9f
ZmlsZV9fKSkKLSAgICAgICAgcmVwb19yb290ID0gb3MucGF0aC5kaXJuYW1lKG9zLnBhdGguZGly
bmFtZShvcy5wYXRoLmRpcm5hbWUoY3dkKSkpCi0gICAgICAgIGNvbnRyaWJ1dG9yc19wYXRoID0g
b3MucGF0aC5qb2luKHJlcG9fcm9vdCwgJ21ldGFkYXRhL2NvbnRyaWJ1dG9ycy5qc29uJykKLSAg
ICAgICAgdHJ5OgotICAgICAgICAgICAgd2l0aCBvcGVuKGNvbnRyaWJ1dG9yc19wYXRoLCAncmIn
KSBhcyBjb250cmlidXRvcnNfanNvbjoKLSAgICAgICAgICAgICAgICByZXR1cm4ganNvbi5sb2Fk
KGNvbnRyaWJ1dG9yc19qc29uKQotICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Ci0gICAg
ICAgICAgICBzZWxmLl9hZGRUb0xvZygnc3RkaW8nLCAnRmFpbGVkIHRvIGxvYWQge31cbicuZm9y
bWF0KGNvbnRyaWJ1dG9yc19wYXRoKSkKLSAgICAgICAgICAgIHJldHVybiB7fQotCi0gICAgZGVm
IGxvYWRfY29udHJpYnV0b3JzX2Zyb21fZ2l0aHViKHNlbGYpOgotICAgICAgICB0cnk6Ci0gICAg
ICAgICAgICByZXNwb25zZSA9IHJlcXVlc3RzLmdldChzZWxmLnVybCwgdGltZW91dD02MCkKLSAg
ICAgICAgICAgIGlmIHJlc3BvbnNlLnN0YXR1c19jb2RlICE9IDIwMDoKLSAgICAgICAgICAgICAg
ICBzZWxmLl9hZGRUb0xvZygnc3RkaW8nLCAnRmFpbGVkIHRvIGFjY2VzcyB7fSB3aXRoIHN0YXR1
cyBjb2RlOiB7fVxuJy5mb3JtYXQoc2VsZi51cmwsIHJlc3BvbnNlLnN0YXR1c19jb2RlKSkKLSAg
ICAgICAgICAgICAgICByZXR1cm4ge30KLSAgICAgICAgICAgIHJldHVybiByZXNwb25zZS5qc29u
KCkKLSAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgotICAgICAgICAgICAgc2VsZi5fYWRk
VG9Mb2coJ3N0ZGlvJywgJ0ZhaWxlZCB0byBhY2Nlc3Mge3VybH1cbicuZm9ybWF0KHVybD1zZWxm
LnVybCkpCi0gICAgICAgICAgICByZXR1cm4ge30KIAotICAgIGRlZiBsb2FkX2NvbnRyaWJ1dG9y
cyhzZWxmKToKLSAgICAgICAgY29udHJpYnV0b3JzX2pzb24gPSBzZWxmLmxvYWRfY29udHJpYnV0
b3JzX2Zyb21fZ2l0aHViKCkKLSAgICAgICAgaWYgbm90IGNvbnRyaWJ1dG9yc19qc29uOgotICAg
ICAgICAgICAgY29udHJpYnV0b3JzX2pzb24gPSBzZWxmLmxvYWRfY29udHJpYnV0b3JzX2Zyb21f
ZGlzaygpCi0KLSAgICAgICAgY29udHJpYnV0b3JzID0ge30KLSAgICAgICAgZm9yIHZhbHVlIGlu
IGNvbnRyaWJ1dG9yc19qc29uOgotICAgICAgICAgICAgbmFtZSA9IHZhbHVlLmdldCgnbmFtZScp
Ci0gICAgICAgICAgICBlbWFpbHMgPSB2YWx1ZS5nZXQoJ2VtYWlscycpCi0gICAgICAgICAgICBp
ZiBuYW1lIGFuZCBlbWFpbHM6Ci0gICAgICAgICAgICAgICAgYnVnemlsbGFfZW1haWwgPSBlbWFp
bHNbMF0ubG93ZXIoKSAgIyBXZSdyZSByZXF1aXJpbmcgdGhhdCB0aGUgZmlyc3QgZW1haWwgaXMg
dGhlIHByaW1hcnkgYnVnemlsbGEgZW1haWwKLSAgICAgICAgICAgICAgICBjb250cmlidXRvcnNb
YnVnemlsbGFfZW1haWxdID0geyduYW1lJzogbmFtZSwgJ3N0YXR1cyc6IHZhbHVlLmdldCgnc3Rh
dHVzJyl9Ci0gICAgICAgIHJldHVybiBjb250cmlidXRvcnMKKyAgICBkZWYgX19pbml0X18oc2Vs
ZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgc3VwZXIoVmFsaWRhdGVDb21taXRlckFuZFJl
dmlld2VyLCBzZWxmKS5fX2luaXRfXygqYXJncywgKiprd2FyZ3MpCisgICAgICAgIHNlbGYuY29u
dHJpYnV0b3JzID0ge30KIAogICAgIEBkZWZlci5pbmxpbmVDYWxsYmFja3MKICAgICBkZWYgX2Fk
ZFRvTG9nKHNlbGYsIGxvZ05hbWUsIG1lc3NhZ2UpOgpAQCAtMTAxOSw3ICsxMDM5LDcgQEAgY2xh
c3MgVmFsaWRhdGVDb21taXRlckFuZFJldmlld2VyKGJ1aWxkc3RlcC5CdWlsZFN0ZXApOgogCiAg
ICAgZGVmIGZhaWxfYnVpbGQoc2VsZiwgZW1haWwsIHN0YXR1cyk6CiAgICAgICAgIHJlYXNvbiA9
ICd7fSBkb2VzIG5vdCBoYXZlIHt9IHBlcm1pc3Npb25zJy5mb3JtYXQoZW1haWwsIHN0YXR1cykK
LSAgICAgICAgY29tbWVudCA9ICd7fSBkb2VzIG5vdCBoYXZlIHt9IHBlcm1pc3Npb25zIGFjY29y
ZGluZyB0byB7fS4nLmZvcm1hdChlbWFpbCwgc3RhdHVzLCBzZWxmLnVybCkKKyAgICAgICAgY29t
bWVudCA9ICd7fSBkb2VzIG5vdCBoYXZlIHt9IHBlcm1pc3Npb25zIGFjY29yZGluZyB0byB7fS4n
LmZvcm1hdChlbWFpbCwgc3RhdHVzLCBDb250cmlidXRvcnMudXJsKQogICAgICAgICBjb21tZW50
ICs9ICdcblxuUmVqZWN0aW5nIGF0dGFjaG1lbnQge30gZnJvbSBjb21taXQgcXVldWUuJy5mb3Jt
YXQoc2VsZi5nZXRQcm9wZXJ0eSgncGF0Y2hfaWQnLCAnJykpCiAgICAgICAgIHNlbGYuc2V0UHJv
cGVydHkoJ2J1Z3ppbGxhX2NvbW1lbnRfdGV4dCcsIGNvbW1lbnQpCiAKQEAgLTEwNDQsNyArMTA2
NCwxMSBAQCBjbGFzcyBWYWxpZGF0ZUNvbW1pdGVyQW5kUmV2aWV3ZXIoYnVpbGRzdGVwLkJ1aWxk
U3RlcCk6CiAgICAgICAgIHJldHVybiBjb250cmlidXRvci5nZXQoJ25hbWUnKQogCiAgICAgZGVm
IHN0YXJ0KHNlbGYpOgotICAgICAgICBzZWxmLmNvbnRyaWJ1dG9ycyA9IHNlbGYubG9hZF9jb250
cmlidXRvcnMoKQorICAgICAgICBzZWxmLmNvbnRyaWJ1dG9ycywgZXJyb3JzID0gQ29udHJpYnV0
b3JzLmxvYWQoKQorICAgICAgICBmb3IgZXJyb3IgaW4gZXJyb3JzOgorICAgICAgICAgICAgcHJp
bnQoZXJyb3IpCisgICAgICAgICAgICBzZWxmLl9hZGRUb0xvZygnc3RkaW8nLCBlcnJvcikKKwog
ICAgICAgICBpZiBub3Qgc2VsZi5jb250cmlidXRvcnM6CiAgICAgICAgICAgICBzZWxmLmZpbmlz
aGVkKEZBSUxVUkUpCiAgICAgICAgICAgICBzZWxmLmRlc2NyaXB0aW9uRG9uZSA9ICdGYWlsZWQg
dG8gZ2V0IGNvbnRyaWJ1dG9ycyBpbmZvcm1hdGlvbicK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448974</attachid>
            <date>2022-01-12 11:24:08 -0800</date>
            <delta_ts>2022-01-12 11:32:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235074-20220112112407.patch</filename>
            <type>text/plain</type>
            <size>10115</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3OTMzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggM2QxMzZlMWU3ZDM5ZmRmNjk4Y2Y0NmY1N2ZkZjZkYmRm
NGFiMzFjYS4uYzE5ZDcxMmM0NjIyNzViMTI1NWVkNGY2MjgwYjIwZmIxYjM0YjI5YSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4
IEBACisyMDIyLTAxLTEyICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbRVdTXSBMb2FkIGNvbnRyaWJ1dG9ycyBmcm9tIHN0YW5kLWFsb25lIGNsYXNzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzUwNzQKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg3NDA2MTU3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ0lTdXBwb3J0L2V3cy1idWlsZC9zdGVwcy5weToK
KyAgICAgICAgKENvbnRyaWJ1dG9ycyk6IE1vdmVkIGZyb20gVmFsaWRhdGVDb21taXRlckFuZFJl
dmlld2VyLgorICAgICAgICAoVmFsaWRhdGVDb21taXRlckFuZFJldmlld2VyLmxvYWRfY29udHJp
YnV0b3JzX2Zyb21fZGlzayk6IE1vdmVkIHRvIENvbnRyaWJ1dG9ycy4KKyAgICAgICAgKFZhbGlk
YXRlQ29tbWl0ZXJBbmRSZXZpZXdlci5sb2FkX2NvbnRyaWJ1dG9yc19mcm9tX2dpdGh1Yik6IERp
dHRvLgorICAgICAgICAoVmFsaWRhdGVDb21taXRlckFuZFJldmlld2VyLmxvYWRfY29udHJpYnV0
b3JzKTogRGl0dG8uCisgICAgICAgICogQ0lTdXBwb3J0L2V3cy1idWlsZC9zdGVwc191bml0dGVz
dC5weToKKwogMjAyMi0wMS0xMSAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgog
CiAgICAgICAgIFdlYlBhZ2VQcm94eSBkZXN0cnVjdGlvbiBzaG91bGQgbm90IGxhdW5jaCBhIG5l
dHdvcmsgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWlsZC9zdGVw
cy5weSBiL1Rvb2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQvc3RlcHMucHkKaW5kZXggYWRmNzQ2NTFh
NjU4MjFiN2ZlMDFjMWYxYzgyNjE3MTBmZDM4MDZhOS4uNTlhZTZmMzIxYmI3MzM3OGFkZTYzZjY3
ZThhNDYwYzUyOWViZmU0NCAxMDA2NDQKLS0tIGEvVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWlsZC9z
dGVwcy5weQorKysgYi9Ub29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL3N0ZXBzLnB5CkBAIC05Niw2
ICs5Niw2MCBAQCBjbGFzcyBHaXRIdWJNaXhpbihvYmplY3QpOgogICAgICAgICByZXR1cm4gcHJf
bnVtYmVyCiAKIAorY2xhc3MgQ29udHJpYnV0b3JzKG9iamVjdCk6CisgICAgdXJsID0gJ2h0dHBz
Oi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9XZWJLaXQvV2ViS2l0L21haW4vbWV0YWRhdGEv
Y29udHJpYnV0b3JzLmpzb24nCisgICAgY29udHJpYnV0b3JzID0ge30KKworICAgIEBjbGFzc21l
dGhvZAorICAgIGRlZiBsb2FkX2Zyb21fZGlzayhjbHMpOgorICAgICAgICBjd2QgPSBvcy5wYXRo
LmFic3BhdGgob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSkKKyAgICAgICAgcmVwb19yb290ID0g
b3MucGF0aC5kaXJuYW1lKG9zLnBhdGguZGlybmFtZShvcy5wYXRoLmRpcm5hbWUoY3dkKSkpCisg
ICAgICAgIGNvbnRyaWJ1dG9yc19wYXRoID0gb3MucGF0aC5qb2luKHJlcG9fcm9vdCwgJ21ldGFk
YXRhL2NvbnRyaWJ1dG9ycy5qc29uJykKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgd2l0aCBv
cGVuKGNvbnRyaWJ1dG9yc19wYXRoLCAncmInKSBhcyBjb250cmlidXRvcnNfanNvbjoKKyAgICAg
ICAgICAgICAgICByZXR1cm4ganNvbi5sb2FkKGNvbnRyaWJ1dG9yc19qc29uKSwgTm9uZQorICAg
ICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICByZXR1cm4ge30sICdGYWls
ZWQgdG8gbG9hZCB7fVxuJy5mb3JtYXQoY29udHJpYnV0b3JzX3BhdGgpCisKKyAgICBAY2xhc3Nt
ZXRob2QKKyAgICBkZWYgbG9hZF9mcm9tX2dpdGh1YihjbHMpOgorICAgICAgICB0cnk6CisgICAg
ICAgICAgICByZXNwb25zZSA9IHJlcXVlc3RzLmdldChjbHMudXJsLCB0aW1lb3V0PTYwKQorICAg
ICAgICAgICAgaWYgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgIT0gMjAwOgorICAgICAgICAgICAgICAg
IHJldHVybiB7fSwgJ0ZhaWxlZCB0byBhY2Nlc3Mge30gd2l0aCBzdGF0dXMgY29kZToge31cbicu
Zm9ybWF0KGNscy51cmwsIHJlc3BvbnNlLnN0YXR1c19jb2RlKQorICAgICAgICAgICAgcmV0dXJu
IHJlc3BvbnNlLmpzb24oKSwgTm9uZQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Cisg
ICAgICAgICAgICByZXR1cm4ge30sICdGYWlsZWQgdG8gYWNjZXNzIHt1cmx9XG4nLmZvcm1hdCh1
cmw9Y2xzLnVybCkKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBsb2FkKGNscyk6CisgICAg
ICAgIGVycm9ycyA9IFtdCisgICAgICAgIGNvbnRyaWJ1dG9yc19qc29uLCBlcnJvciA9IGNscy5s
b2FkX2Zyb21fZ2l0aHViKCkKKyAgICAgICAgaWYgZXJyb3I6CisgICAgICAgICAgICBlcnJvcnMu
YXBwZW5kKGVycm9yKQorCisgICAgICAgIGlmIG5vdCBjb250cmlidXRvcnNfanNvbjoKKyAgICAg
ICAgICAgIGNvbnRyaWJ1dG9yc19qc29uLCBlcnJvciA9IGNscy5sb2FkX2Zyb21fZGlzaygpCisg
ICAgICAgICAgICBpZiBlcnJvcjoKKyAgICAgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKGVycm9y
KQorCisgICAgICAgIGNvbnRyaWJ1dG9ycyA9IHt9CisgICAgICAgIGZvciB2YWx1ZSBpbiBjb250
cmlidXRvcnNfanNvbjoKKyAgICAgICAgICAgIG5hbWUgPSB2YWx1ZS5nZXQoJ25hbWUnKQorICAg
ICAgICAgICAgZW1haWxzID0gdmFsdWUuZ2V0KCdlbWFpbHMnKQorICAgICAgICAgICAgZ2l0aHVi
X3VzZXJuYW1lID0gdmFsdWUuZ2V0KCdnaXRodWInKQorICAgICAgICAgICAgaWYgbmFtZSBhbmQg
ZW1haWxzOgorICAgICAgICAgICAgICAgIGJ1Z3ppbGxhX2VtYWlsID0gZW1haWxzWzBdLmxvd2Vy
KCkgICMgV2UncmUgcmVxdWlyaW5nIHRoYXQgdGhlIGZpcnN0IGVtYWlsIGlzIHRoZSBwcmltYXJ5
IGJ1Z3ppbGxhIGVtYWlsCisgICAgICAgICAgICAgICAgY29udHJpYnV0b3JzW2J1Z3ppbGxhX2Vt
YWlsXSA9IHsnbmFtZSc6IG5hbWUsICdzdGF0dXMnOiB2YWx1ZS5nZXQoJ3N0YXR1cycpfQorICAg
ICAgICAgICAgaWYgZ2l0aHViX3VzZXJuYW1lIGFuZCBuYW1lIGFuZCBlbWFpbHM6CisgICAgICAg
ICAgICAgICAgY29udHJpYnV0b3JzW2dpdGh1Yl91c2VybmFtZV0gPSBkaWN0KAorICAgICAgICAg
ICAgICAgICAgICBwcmludGFibGU9J3t9IDx7fT4nLmZvcm1hdChuYW1lLCBlbWFpbHNbMF0ubG93
ZXIoKSksCisgICAgICAgICAgICAgICAgICAgIHN0YXR1cz12YWx1ZS5nZXQoJ3N0YXR1cycpLAor
ICAgICAgICAgICAgICAgICAgICBlbWFpbD1lbWFpbHNbMF0sCisgICAgICAgICAgICAgICAgKQor
ICAgICAgICByZXR1cm4gY29udHJpYnV0b3JzLCBlcnJvcnMKKworCiBjbGFzcyBDb25maWd1cmVC
dWlsZChidWlsZHN0ZXAuQnVpbGRTdGVwLCBHaXRIdWJNaXhpbik6CiAgICAgbmFtZSA9ICdjb25m
aWd1cmUtYnVpbGQnCiAgICAgZGVzY3JpcHRpb24gPSBbJ2NvbmZpZ3VyaW5nIGJ1aWxkJ10KQEAg
LTk2NSw0NCArMTAxOSwxMCBAQCBjbGFzcyBWYWxpZGF0ZVBhdGNoKGJ1aWxkc3RlcC5CdWlsZFN0
ZXAsIEJ1Z3ppbGxhTWl4aW4pOgogY2xhc3MgVmFsaWRhdGVDb21taXRlckFuZFJldmlld2VyKGJ1
aWxkc3RlcC5CdWlsZFN0ZXApOgogICAgIG5hbWUgPSAndmFsaWRhdGUtY29tbWl0ZXItYW5kLXJl
dmlld2VyJwogICAgIGRlc2NyaXB0aW9uRG9uZSA9IFsnVmFsaWRhdGVkIGNvbW1pdGVyIGFuZCBy
ZXZpZXdlciddCi0gICAgdXJsID0gJ2h0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9X
ZWJLaXQvV2ViS2l0L21haW4vbWV0YWRhdGEvY29udHJpYnV0b3JzLmpzb24nCi0gICAgY29udHJp
YnV0b3JzID0ge30KLQotICAgIGRlZiBsb2FkX2NvbnRyaWJ1dG9yc19mcm9tX2Rpc2soc2VsZik6
Ci0gICAgICAgIGN3ZCA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmRpcm5hbWUoX19maWxlX18p
KQotICAgICAgICByZXBvX3Jvb3QgPSBvcy5wYXRoLmRpcm5hbWUob3MucGF0aC5kaXJuYW1lKG9z
LnBhdGguZGlybmFtZShjd2QpKSkKLSAgICAgICAgY29udHJpYnV0b3JzX3BhdGggPSBvcy5wYXRo
LmpvaW4ocmVwb19yb290LCAnbWV0YWRhdGEvY29udHJpYnV0b3JzLmpzb24nKQotICAgICAgICB0
cnk6Ci0gICAgICAgICAgICB3aXRoIG9wZW4oY29udHJpYnV0b3JzX3BhdGgsICdyYicpIGFzIGNv
bnRyaWJ1dG9yc19qc29uOgotICAgICAgICAgICAgICAgIHJldHVybiBqc29uLmxvYWQoY29udHJp
YnV0b3JzX2pzb24pCi0gICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKLSAgICAgICAgICAg
IHNlbGYuX2FkZFRvTG9nKCdzdGRpbycsICdGYWlsZWQgdG8gbG9hZCB7fVxuJy5mb3JtYXQoY29u
dHJpYnV0b3JzX3BhdGgpKQotICAgICAgICAgICAgcmV0dXJuIHt9Ci0KLSAgICBkZWYgbG9hZF9j
b250cmlidXRvcnNfZnJvbV9naXRodWIoc2VsZik6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAg
IHJlc3BvbnNlID0gcmVxdWVzdHMuZ2V0KHNlbGYudXJsLCB0aW1lb3V0PTYwKQotICAgICAgICAg
ICAgaWYgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgIT0gMjAwOgotICAgICAgICAgICAgICAgIHNlbGYu
X2FkZFRvTG9nKCdzdGRpbycsICdGYWlsZWQgdG8gYWNjZXNzIHt9IHdpdGggc3RhdHVzIGNvZGU6
IHt9XG4nLmZvcm1hdChzZWxmLnVybCwgcmVzcG9uc2Uuc3RhdHVzX2NvZGUpKQotICAgICAgICAg
ICAgICAgIHJldHVybiB7fQotICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmpzb24oKQotICAg
ICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Ci0gICAgICAgICAgICBzZWxmLl9hZGRUb0xvZygn
c3RkaW8nLCAnRmFpbGVkIHRvIGFjY2VzcyB7dXJsfVxuJy5mb3JtYXQodXJsPXNlbGYudXJsKSkK
LSAgICAgICAgICAgIHJldHVybiB7fQogCi0gICAgZGVmIGxvYWRfY29udHJpYnV0b3JzKHNlbGYp
OgotICAgICAgICBjb250cmlidXRvcnNfanNvbiA9IHNlbGYubG9hZF9jb250cmlidXRvcnNfZnJv
bV9naXRodWIoKQotICAgICAgICBpZiBub3QgY29udHJpYnV0b3JzX2pzb246Ci0gICAgICAgICAg
ICBjb250cmlidXRvcnNfanNvbiA9IHNlbGYubG9hZF9jb250cmlidXRvcnNfZnJvbV9kaXNrKCkK
LQotICAgICAgICBjb250cmlidXRvcnMgPSB7fQotICAgICAgICBmb3IgdmFsdWUgaW4gY29udHJp
YnV0b3JzX2pzb246Ci0gICAgICAgICAgICBuYW1lID0gdmFsdWUuZ2V0KCduYW1lJykKLSAgICAg
ICAgICAgIGVtYWlscyA9IHZhbHVlLmdldCgnZW1haWxzJykKLSAgICAgICAgICAgIGlmIG5hbWUg
YW5kIGVtYWlsczoKLSAgICAgICAgICAgICAgICBidWd6aWxsYV9lbWFpbCA9IGVtYWlsc1swXS5s
b3dlcigpICAjIFdlJ3JlIHJlcXVpcmluZyB0aGF0IHRoZSBmaXJzdCBlbWFpbCBpcyB0aGUgcHJp
bWFyeSBidWd6aWxsYSBlbWFpbAotICAgICAgICAgICAgICAgIGNvbnRyaWJ1dG9yc1tidWd6aWxs
YV9lbWFpbF0gPSB7J25hbWUnOiBuYW1lLCAnc3RhdHVzJzogdmFsdWUuZ2V0KCdzdGF0dXMnKX0K
LSAgICAgICAgcmV0dXJuIGNvbnRyaWJ1dG9ycworICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJn
cywgKiprd2FyZ3MpOgorICAgICAgICBzdXBlcihWYWxpZGF0ZUNvbW1pdGVyQW5kUmV2aWV3ZXIs
IHNlbGYpLl9faW5pdF9fKCphcmdzLCAqKmt3YXJncykKKyAgICAgICAgc2VsZi5jb250cmlidXRv
cnMgPSB7fQogCiAgICAgQGRlZmVyLmlubGluZUNhbGxiYWNrcwogICAgIGRlZiBfYWRkVG9Mb2co
c2VsZiwgbG9nTmFtZSwgbWVzc2FnZSk6CkBAIC0xMDE5LDcgKzEwMzksNyBAQCBjbGFzcyBWYWxp
ZGF0ZUNvbW1pdGVyQW5kUmV2aWV3ZXIoYnVpbGRzdGVwLkJ1aWxkU3RlcCk6CiAKICAgICBkZWYg
ZmFpbF9idWlsZChzZWxmLCBlbWFpbCwgc3RhdHVzKToKICAgICAgICAgcmVhc29uID0gJ3t9IGRv
ZXMgbm90IGhhdmUge30gcGVybWlzc2lvbnMnLmZvcm1hdChlbWFpbCwgc3RhdHVzKQotICAgICAg
ICBjb21tZW50ID0gJ3t9IGRvZXMgbm90IGhhdmUge30gcGVybWlzc2lvbnMgYWNjb3JkaW5nIHRv
IHt9LicuZm9ybWF0KGVtYWlsLCBzdGF0dXMsIHNlbGYudXJsKQorICAgICAgICBjb21tZW50ID0g
J3t9IGRvZXMgbm90IGhhdmUge30gcGVybWlzc2lvbnMgYWNjb3JkaW5nIHRvIHt9LicuZm9ybWF0
KGVtYWlsLCBzdGF0dXMsIENvbnRyaWJ1dG9ycy51cmwpCiAgICAgICAgIGNvbW1lbnQgKz0gJ1xu
XG5SZWplY3RpbmcgYXR0YWNobWVudCB7fSBmcm9tIGNvbW1pdCBxdWV1ZS4nLmZvcm1hdChzZWxm
LmdldFByb3BlcnR5KCdwYXRjaF9pZCcsICcnKSkKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgn
YnVnemlsbGFfY29tbWVudF90ZXh0JywgY29tbWVudCkKIApAQCAtMTA0NCw3ICsxMDY0LDExIEBA
IGNsYXNzIFZhbGlkYXRlQ29tbWl0ZXJBbmRSZXZpZXdlcihidWlsZHN0ZXAuQnVpbGRTdGVwKToK
ICAgICAgICAgcmV0dXJuIGNvbnRyaWJ1dG9yLmdldCgnbmFtZScpCiAKICAgICBkZWYgc3RhcnQo
c2VsZik6Ci0gICAgICAgIHNlbGYuY29udHJpYnV0b3JzID0gc2VsZi5sb2FkX2NvbnRyaWJ1dG9y
cygpCisgICAgICAgIHNlbGYuY29udHJpYnV0b3JzLCBlcnJvcnMgPSBDb250cmlidXRvcnMubG9h
ZCgpCisgICAgICAgIGZvciBlcnJvciBpbiBlcnJvcnM6CisgICAgICAgICAgICBwcmludChlcnJv
cikKKyAgICAgICAgICAgIHNlbGYuX2FkZFRvTG9nKCdzdGRpbycsIGVycm9yKQorCiAgICAgICAg
IGlmIG5vdCBzZWxmLmNvbnRyaWJ1dG9yczoKICAgICAgICAgICAgIHNlbGYuZmluaXNoZWQoRkFJ
TFVSRSkKICAgICAgICAgICAgIHNlbGYuZGVzY3JpcHRpb25Eb25lID0gJ0ZhaWxlZCB0byBnZXQg
Y29udHJpYnV0b3JzIGluZm9ybWF0aW9uJwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ0lTdXBwb3J0L2V3
cy1idWlsZC9zdGVwc191bml0dGVzdC5weSBiL1Rvb2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQvc3Rl
cHNfdW5pdHRlc3QucHkKaW5kZXggMTI5MDNlMmExNGE0MmJiY2ZmODE5YzE5ZTJlNGVjY2E5YWJh
NWYwMi4uOTQwYmUyNTcwMWQ3Y2E2MTc1OTMxOTU2YzJiYzk1OTRmMjJlZTg3ZSAxMDA2NDQKLS0t
IGEvVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWlsZC9zdGVwc191bml0dGVzdC5weQorKysgYi9Ub29s
cy9DSVN1cHBvcnQvZXdzLWJ1aWxkL3N0ZXBzX3VuaXR0ZXN0LnB5CkBAIC00NCw3ICs0NCw3IEBA
IGZyb20gc3RlcHMgaW1wb3J0IChBbmFseXplQVBJVGVzdHNSZXN1bHRzLCBBbmFseXplQ29tcGls
ZVdlYktpdFJlc3VsdHMsIEFuYWx5emVKCiAgICAgICAgICAgICAgICAgICAgQW5hbHl6ZUxheW91
dFRlc3RzUmVzdWx0cywgQXBwbHlQYXRjaCwgQXBwbHlXYXRjaExpc3QsIEFyY2hpdmVCdWlsdFBy
b2R1Y3QsIEFyY2hpdmVUZXN0UmVzdWx0cywKICAgICAgICAgICAgICAgICAgICBDaGVja091dFNv
dXJjZSwgQ2hlY2tPdXRTcGVjaWZpY1JldmlzaW9uLCBDaGVja1BhdGNoUmVsZXZhbmNlLCBDaGVj
a1BhdGNoU3RhdHVzT25FV1NRdWV1ZXMsIENoZWNrU3R5bGUsCiAgICAgICAgICAgICAgICAgICAg
Q2xlYW5CdWlsZCwgQ2xlYW5VcEdpdEluZGV4TG9jaywgQ2xlYW5HaXRSZXBvLCBDbGVhbldvcmtp
bmdEaXJlY3RvcnksIENvbXBpbGVKU0MsIENvbXBpbGVKU0NXaXRob3V0UGF0Y2gsCi0gICAgICAg
ICAgICAgICAgICAgQ29tcGlsZVdlYktpdCwgQ29tcGlsZVdlYktpdFdpdGhvdXRQYXRjaCwgQ29u
ZmlndXJlQnVpbGQsIENyZWF0ZUxvY2FsR0lUQ29tbWl0LAorICAgICAgICAgICAgICAgICAgIENv
bXBpbGVXZWJLaXQsIENvbXBpbGVXZWJLaXRXaXRob3V0UGF0Y2gsIENvbmZpZ3VyZUJ1aWxkLCBD
b25maWd1cmVCdWlsZCwgQ29udHJpYnV0b3JzLAogICAgICAgICAgICAgICAgICAgIERvd25sb2Fk
QnVpbHRQcm9kdWN0LCBEb3dubG9hZEJ1aWx0UHJvZHVjdEZyb21NYXN0ZXIsIEVXU19CVUlMRF9I
T1NUTkFNRSwgRXh0cmFjdEJ1aWx0UHJvZHVjdCwgRXh0cmFjdFRlc3RSZXN1bHRzLAogICAgICAg
ICAgICAgICAgICAgIEZldGNoQnJhbmNoZXMsIEZpbmRNb2RpZmllZENoYW5nZUxvZ3MsIEZpbmRN
b2RpZmllZExheW91dFRlc3RzLCBHaXRSZXNldEhhcmQsCiAgICAgICAgICAgICAgICAgICAgSW5z
dGFsbEJ1aWx0UHJvZHVjdCwgSW5zdGFsbEd0a0RlcGVuZGVuY2llcywgSW5zdGFsbFdwZURlcGVu
ZGVuY2llcywKQEAgLTQ1ODcsOCArNDU4Nyw4IEBAIGNsYXNzIFRlc3RWYWxpZGF0ZUNvbW1pdGVy
QW5kUmV2aWV3ZXIoQnVpbGRTdGVwTWl4aW5BZGRpdGlvbnMsIHVuaXR0ZXN0LlRlc3RDYXNlCiAK
ICAgICAgICAgZGVmIG1vY2tfbG9hZF9jb250cmlidXRvcnMoY2xzLCAqYXJncywgKiprd2FyZ3Mp
OgogICAgICAgICAgICAgcmV0dXJuIHsnYWFrYXNoX2phaW5AYXBwbGUuY29tJzogeyduYW1lJzog
J0Fha2FzaCBKYWluJywgJ3N0YXR1cyc6ICdyZXZpZXdlcid9LAotICAgICAgICAgICAgICAgICAg
ICAnY29tbWl0dGVyQHdlYmtpdC5vcmcnOiB7J25hbWUnOiAnV2ViS2l0IENvbW1pdHRlcicsICdz
dGF0dXMnOiAnY29tbWl0dGVyJ319Ci0gICAgICAgIFZhbGlkYXRlQ29tbWl0ZXJBbmRSZXZpZXdl
ci5sb2FkX2NvbnRyaWJ1dG9ycyA9IG1vY2tfbG9hZF9jb250cmlidXRvcnMKKyAgICAgICAgICAg
ICAgICAgICAgJ2NvbW1pdHRlckB3ZWJraXQub3JnJzogeyduYW1lJzogJ1dlYktpdCBDb21taXR0
ZXInLCAnc3RhdHVzJzogJ2NvbW1pdHRlcid9fSwgW10KKyAgICAgICAgQ29udHJpYnV0b3JzLmxv
YWQgPSBtb2NrX2xvYWRfY29udHJpYnV0b3JzCiAgICAgICAgIHJldHVybiBzZWxmLnNldFVwQnVp
bGRTdGVwKCkKIAogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKQEAgLTQ2MTYsNyArNDYxNiw3IEBA
IGNsYXNzIFRlc3RWYWxpZGF0ZUNvbW1pdGVyQW5kUmV2aWV3ZXIoQnVpbGRTdGVwTWl4aW5BZGRp
dGlvbnMsIHVuaXR0ZXN0LlRlc3RDYXNlCiAgICAgICAgIHNlbGYuc2V0dXBTdGVwKFZhbGlkYXRl
Q29tbWl0ZXJBbmRSZXZpZXdlcigpKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdwYXRjaF9p
ZCcsICcxMjM0JykKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgncGF0Y2hfY29tbWl0dGVyJywg
J2FiY0B3ZWJraXQub3JnJykKLSAgICAgICAgVmFsaWRhdGVDb21taXRlckFuZFJldmlld2VyLmxv
YWRfY29udHJpYnV0b3JzID0gbGFtYmRhIHg6IHt9CisgICAgICAgIENvbnRyaWJ1dG9ycy5sb2Fk
ID0gbGFtYmRhIHg6IHt9LCBbXQogICAgICAgICBzZWxmLmV4cGVjdEhpZGRlbihGYWxzZSkKICAg
ICAgICAgc2VsZi5leHBlY3RPdXRjb21lKHJlc3VsdD1GQUlMVVJFLCBzdGF0ZV9zdHJpbmc9J0Zh
aWxlZCB0byBnZXQgY29udHJpYnV0b3JzIGluZm9ybWF0aW9uJykKICAgICAgICAgcmV0dXJuIHNl
bGYucnVuU3RlcCgpCkBAIC00NjM5LDggKzQ2MzksNyBAQCBjbGFzcyBUZXN0VmFsaWRhdGVDb21t
aXRlckFuZFJldmlld2VyKEJ1aWxkU3RlcE1peGluQWRkaXRpb25zLCB1bml0dGVzdC5UZXN0Q2Fz
ZQogICAgICAgICByZXR1cm4gc2VsZi5ydW5TdGVwKCkKIAogICAgIGRlZiB0ZXN0X2xvYWRfY29u
dHJpYnV0b3JzX2Zyb21fZGlzayhzZWxmKToKLSAgICAgICAgVmFsaWRhdGVDb21taXRlckFuZFJl
dmlld2VyLl9hZGRUb0xvZyA9IGxhbWJkYSBjbHMsIGxvZ3R5cGUsIGxvZzogc3lzLnN0ZG91dC53
cml0ZShsb2cpCi0gICAgICAgIGNvbnRyaWJ1dG9ycyA9IGZpbHRlcihsYW1iZGEgZWxlbWVudDog
ZWxlbWVudC5nZXQoJ25hbWUnKSA9PSAnQWFrYXNoIEphaW4nLCBWYWxpZGF0ZUNvbW1pdGVyQW5k
UmV2aWV3ZXIoKS5sb2FkX2NvbnRyaWJ1dG9yc19mcm9tX2Rpc2soKSkKKyAgICAgICAgY29udHJp
YnV0b3JzLCBfID0gZmlsdGVyKGxhbWJkYSBlbGVtZW50OiBlbGVtZW50LmdldCgnbmFtZScpID09
ICdBYWthc2ggSmFpbicsIENvbnRyaWJ1dG9ycygpLmxvYWRfZnJvbV9kaXNrKCkpCiAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwobGlzdChjb250cmlidXRvcnMpWzBdWydlbWFpbHMnXVswXSwgJ2Fh
a2FzaF9qYWluQGFwcGxlLmNvbScpCiAKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448975</attachid>
            <date>2022-01-12 11:32:13 -0800</date>
            <delta_ts>2022-01-12 11:57:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235074-20220112113212.patch</filename>
            <type>text/plain</type>
            <size>10224</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3OTMzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggM2QxMzZlMWU3ZDM5ZmRmNjk4Y2Y0NmY1N2ZkZjZkYmRm
NGFiMzFjYS4uYzE5ZDcxMmM0NjIyNzViMTI1NWVkNGY2MjgwYjIwZmIxYjM0YjI5YSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4
IEBACisyMDIyLTAxLTEyICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbRVdTXSBMb2FkIGNvbnRyaWJ1dG9ycyBmcm9tIHN0YW5kLWFsb25lIGNsYXNzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzUwNzQKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg3NDA2MTU3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ0lTdXBwb3J0L2V3cy1idWlsZC9zdGVwcy5weToK
KyAgICAgICAgKENvbnRyaWJ1dG9ycyk6IE1vdmVkIGZyb20gVmFsaWRhdGVDb21taXRlckFuZFJl
dmlld2VyLgorICAgICAgICAoVmFsaWRhdGVDb21taXRlckFuZFJldmlld2VyLmxvYWRfY29udHJp
YnV0b3JzX2Zyb21fZGlzayk6IE1vdmVkIHRvIENvbnRyaWJ1dG9ycy4KKyAgICAgICAgKFZhbGlk
YXRlQ29tbWl0ZXJBbmRSZXZpZXdlci5sb2FkX2NvbnRyaWJ1dG9yc19mcm9tX2dpdGh1Yik6IERp
dHRvLgorICAgICAgICAoVmFsaWRhdGVDb21taXRlckFuZFJldmlld2VyLmxvYWRfY29udHJpYnV0
b3JzKTogRGl0dG8uCisgICAgICAgICogQ0lTdXBwb3J0L2V3cy1idWlsZC9zdGVwc191bml0dGVz
dC5weToKKwogMjAyMi0wMS0xMSAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgog
CiAgICAgICAgIFdlYlBhZ2VQcm94eSBkZXN0cnVjdGlvbiBzaG91bGQgbm90IGxhdW5jaCBhIG5l
dHdvcmsgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWlsZC9zdGVw
cy5weSBiL1Rvb2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQvc3RlcHMucHkKaW5kZXggYWRmNzQ2NTFh
NjU4MjFiN2ZlMDFjMWYxYzgyNjE3MTBmZDM4MDZhOS4uNTlhZTZmMzIxYmI3MzM3OGFkZTYzZjY3
ZThhNDYwYzUyOWViZmU0NCAxMDA2NDQKLS0tIGEvVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWlsZC9z
dGVwcy5weQorKysgYi9Ub29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL3N0ZXBzLnB5CkBAIC05Niw2
ICs5Niw2MCBAQCBjbGFzcyBHaXRIdWJNaXhpbihvYmplY3QpOgogICAgICAgICByZXR1cm4gcHJf
bnVtYmVyCiAKIAorY2xhc3MgQ29udHJpYnV0b3JzKG9iamVjdCk6CisgICAgdXJsID0gJ2h0dHBz
Oi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9XZWJLaXQvV2ViS2l0L21haW4vbWV0YWRhdGEv
Y29udHJpYnV0b3JzLmpzb24nCisgICAgY29udHJpYnV0b3JzID0ge30KKworICAgIEBjbGFzc21l
dGhvZAorICAgIGRlZiBsb2FkX2Zyb21fZGlzayhjbHMpOgorICAgICAgICBjd2QgPSBvcy5wYXRo
LmFic3BhdGgob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSkKKyAgICAgICAgcmVwb19yb290ID0g
b3MucGF0aC5kaXJuYW1lKG9zLnBhdGguZGlybmFtZShvcy5wYXRoLmRpcm5hbWUoY3dkKSkpCisg
ICAgICAgIGNvbnRyaWJ1dG9yc19wYXRoID0gb3MucGF0aC5qb2luKHJlcG9fcm9vdCwgJ21ldGFk
YXRhL2NvbnRyaWJ1dG9ycy5qc29uJykKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgd2l0aCBv
cGVuKGNvbnRyaWJ1dG9yc19wYXRoLCAncmInKSBhcyBjb250cmlidXRvcnNfanNvbjoKKyAgICAg
ICAgICAgICAgICByZXR1cm4ganNvbi5sb2FkKGNvbnRyaWJ1dG9yc19qc29uKSwgTm9uZQorICAg
ICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICByZXR1cm4ge30sICdGYWls
ZWQgdG8gbG9hZCB7fVxuJy5mb3JtYXQoY29udHJpYnV0b3JzX3BhdGgpCisKKyAgICBAY2xhc3Nt
ZXRob2QKKyAgICBkZWYgbG9hZF9mcm9tX2dpdGh1YihjbHMpOgorICAgICAgICB0cnk6CisgICAg
ICAgICAgICByZXNwb25zZSA9IHJlcXVlc3RzLmdldChjbHMudXJsLCB0aW1lb3V0PTYwKQorICAg
ICAgICAgICAgaWYgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgIT0gMjAwOgorICAgICAgICAgICAgICAg
IHJldHVybiB7fSwgJ0ZhaWxlZCB0byBhY2Nlc3Mge30gd2l0aCBzdGF0dXMgY29kZToge31cbicu
Zm9ybWF0KGNscy51cmwsIHJlc3BvbnNlLnN0YXR1c19jb2RlKQorICAgICAgICAgICAgcmV0dXJu
IHJlc3BvbnNlLmpzb24oKSwgTm9uZQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Cisg
ICAgICAgICAgICByZXR1cm4ge30sICdGYWlsZWQgdG8gYWNjZXNzIHt1cmx9XG4nLmZvcm1hdCh1
cmw9Y2xzLnVybCkKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBsb2FkKGNscyk6CisgICAg
ICAgIGVycm9ycyA9IFtdCisgICAgICAgIGNvbnRyaWJ1dG9yc19qc29uLCBlcnJvciA9IGNscy5s
b2FkX2Zyb21fZ2l0aHViKCkKKyAgICAgICAgaWYgZXJyb3I6CisgICAgICAgICAgICBlcnJvcnMu
YXBwZW5kKGVycm9yKQorCisgICAgICAgIGlmIG5vdCBjb250cmlidXRvcnNfanNvbjoKKyAgICAg
ICAgICAgIGNvbnRyaWJ1dG9yc19qc29uLCBlcnJvciA9IGNscy5sb2FkX2Zyb21fZGlzaygpCisg
ICAgICAgICAgICBpZiBlcnJvcjoKKyAgICAgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKGVycm9y
KQorCisgICAgICAgIGNvbnRyaWJ1dG9ycyA9IHt9CisgICAgICAgIGZvciB2YWx1ZSBpbiBjb250
cmlidXRvcnNfanNvbjoKKyAgICAgICAgICAgIG5hbWUgPSB2YWx1ZS5nZXQoJ25hbWUnKQorICAg
ICAgICAgICAgZW1haWxzID0gdmFsdWUuZ2V0KCdlbWFpbHMnKQorICAgICAgICAgICAgZ2l0aHVi
X3VzZXJuYW1lID0gdmFsdWUuZ2V0KCdnaXRodWInKQorICAgICAgICAgICAgaWYgbmFtZSBhbmQg
ZW1haWxzOgorICAgICAgICAgICAgICAgIGJ1Z3ppbGxhX2VtYWlsID0gZW1haWxzWzBdLmxvd2Vy
KCkgICMgV2UncmUgcmVxdWlyaW5nIHRoYXQgdGhlIGZpcnN0IGVtYWlsIGlzIHRoZSBwcmltYXJ5
IGJ1Z3ppbGxhIGVtYWlsCisgICAgICAgICAgICAgICAgY29udHJpYnV0b3JzW2J1Z3ppbGxhX2Vt
YWlsXSA9IHsnbmFtZSc6IG5hbWUsICdzdGF0dXMnOiB2YWx1ZS5nZXQoJ3N0YXR1cycpfQorICAg
ICAgICAgICAgaWYgZ2l0aHViX3VzZXJuYW1lIGFuZCBuYW1lIGFuZCBlbWFpbHM6CisgICAgICAg
ICAgICAgICAgY29udHJpYnV0b3JzW2dpdGh1Yl91c2VybmFtZV0gPSBkaWN0KAorICAgICAgICAg
ICAgICAgICAgICBwcmludGFibGU9J3t9IDx7fT4nLmZvcm1hdChuYW1lLCBlbWFpbHNbMF0ubG93
ZXIoKSksCisgICAgICAgICAgICAgICAgICAgIHN0YXR1cz12YWx1ZS5nZXQoJ3N0YXR1cycpLAor
ICAgICAgICAgICAgICAgICAgICBlbWFpbD1lbWFpbHNbMF0sCisgICAgICAgICAgICAgICAgKQor
ICAgICAgICByZXR1cm4gY29udHJpYnV0b3JzLCBlcnJvcnMKKworCiBjbGFzcyBDb25maWd1cmVC
dWlsZChidWlsZHN0ZXAuQnVpbGRTdGVwLCBHaXRIdWJNaXhpbik6CiAgICAgbmFtZSA9ICdjb25m
aWd1cmUtYnVpbGQnCiAgICAgZGVzY3JpcHRpb24gPSBbJ2NvbmZpZ3VyaW5nIGJ1aWxkJ10KQEAg
LTk2NSw0NCArMTAxOSwxMCBAQCBjbGFzcyBWYWxpZGF0ZVBhdGNoKGJ1aWxkc3RlcC5CdWlsZFN0
ZXAsIEJ1Z3ppbGxhTWl4aW4pOgogY2xhc3MgVmFsaWRhdGVDb21taXRlckFuZFJldmlld2VyKGJ1
aWxkc3RlcC5CdWlsZFN0ZXApOgogICAgIG5hbWUgPSAndmFsaWRhdGUtY29tbWl0ZXItYW5kLXJl
dmlld2VyJwogICAgIGRlc2NyaXB0aW9uRG9uZSA9IFsnVmFsaWRhdGVkIGNvbW1pdGVyIGFuZCBy
ZXZpZXdlciddCi0gICAgdXJsID0gJ2h0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9X
ZWJLaXQvV2ViS2l0L21haW4vbWV0YWRhdGEvY29udHJpYnV0b3JzLmpzb24nCi0gICAgY29udHJp
YnV0b3JzID0ge30KLQotICAgIGRlZiBsb2FkX2NvbnRyaWJ1dG9yc19mcm9tX2Rpc2soc2VsZik6
Ci0gICAgICAgIGN3ZCA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmRpcm5hbWUoX19maWxlX18p
KQotICAgICAgICByZXBvX3Jvb3QgPSBvcy5wYXRoLmRpcm5hbWUob3MucGF0aC5kaXJuYW1lKG9z
LnBhdGguZGlybmFtZShjd2QpKSkKLSAgICAgICAgY29udHJpYnV0b3JzX3BhdGggPSBvcy5wYXRo
LmpvaW4ocmVwb19yb290LCAnbWV0YWRhdGEvY29udHJpYnV0b3JzLmpzb24nKQotICAgICAgICB0
cnk6Ci0gICAgICAgICAgICB3aXRoIG9wZW4oY29udHJpYnV0b3JzX3BhdGgsICdyYicpIGFzIGNv
bnRyaWJ1dG9yc19qc29uOgotICAgICAgICAgICAgICAgIHJldHVybiBqc29uLmxvYWQoY29udHJp
YnV0b3JzX2pzb24pCi0gICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKLSAgICAgICAgICAg
IHNlbGYuX2FkZFRvTG9nKCdzdGRpbycsICdGYWlsZWQgdG8gbG9hZCB7fVxuJy5mb3JtYXQoY29u
dHJpYnV0b3JzX3BhdGgpKQotICAgICAgICAgICAgcmV0dXJuIHt9Ci0KLSAgICBkZWYgbG9hZF9j
b250cmlidXRvcnNfZnJvbV9naXRodWIoc2VsZik6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAg
IHJlc3BvbnNlID0gcmVxdWVzdHMuZ2V0KHNlbGYudXJsLCB0aW1lb3V0PTYwKQotICAgICAgICAg
ICAgaWYgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgIT0gMjAwOgotICAgICAgICAgICAgICAgIHNlbGYu
X2FkZFRvTG9nKCdzdGRpbycsICdGYWlsZWQgdG8gYWNjZXNzIHt9IHdpdGggc3RhdHVzIGNvZGU6
IHt9XG4nLmZvcm1hdChzZWxmLnVybCwgcmVzcG9uc2Uuc3RhdHVzX2NvZGUpKQotICAgICAgICAg
ICAgICAgIHJldHVybiB7fQotICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmpzb24oKQotICAg
ICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Ci0gICAgICAgICAgICBzZWxmLl9hZGRUb0xvZygn
c3RkaW8nLCAnRmFpbGVkIHRvIGFjY2VzcyB7dXJsfVxuJy5mb3JtYXQodXJsPXNlbGYudXJsKSkK
LSAgICAgICAgICAgIHJldHVybiB7fQogCi0gICAgZGVmIGxvYWRfY29udHJpYnV0b3JzKHNlbGYp
OgotICAgICAgICBjb250cmlidXRvcnNfanNvbiA9IHNlbGYubG9hZF9jb250cmlidXRvcnNfZnJv
bV9naXRodWIoKQotICAgICAgICBpZiBub3QgY29udHJpYnV0b3JzX2pzb246Ci0gICAgICAgICAg
ICBjb250cmlidXRvcnNfanNvbiA9IHNlbGYubG9hZF9jb250cmlidXRvcnNfZnJvbV9kaXNrKCkK
LQotICAgICAgICBjb250cmlidXRvcnMgPSB7fQotICAgICAgICBmb3IgdmFsdWUgaW4gY29udHJp
YnV0b3JzX2pzb246Ci0gICAgICAgICAgICBuYW1lID0gdmFsdWUuZ2V0KCduYW1lJykKLSAgICAg
ICAgICAgIGVtYWlscyA9IHZhbHVlLmdldCgnZW1haWxzJykKLSAgICAgICAgICAgIGlmIG5hbWUg
YW5kIGVtYWlsczoKLSAgICAgICAgICAgICAgICBidWd6aWxsYV9lbWFpbCA9IGVtYWlsc1swXS5s
b3dlcigpICAjIFdlJ3JlIHJlcXVpcmluZyB0aGF0IHRoZSBmaXJzdCBlbWFpbCBpcyB0aGUgcHJp
bWFyeSBidWd6aWxsYSBlbWFpbAotICAgICAgICAgICAgICAgIGNvbnRyaWJ1dG9yc1tidWd6aWxs
YV9lbWFpbF0gPSB7J25hbWUnOiBuYW1lLCAnc3RhdHVzJzogdmFsdWUuZ2V0KCdzdGF0dXMnKX0K
LSAgICAgICAgcmV0dXJuIGNvbnRyaWJ1dG9ycworICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJn
cywgKiprd2FyZ3MpOgorICAgICAgICBzdXBlcihWYWxpZGF0ZUNvbW1pdGVyQW5kUmV2aWV3ZXIs
IHNlbGYpLl9faW5pdF9fKCphcmdzLCAqKmt3YXJncykKKyAgICAgICAgc2VsZi5jb250cmlidXRv
cnMgPSB7fQogCiAgICAgQGRlZmVyLmlubGluZUNhbGxiYWNrcwogICAgIGRlZiBfYWRkVG9Mb2co
c2VsZiwgbG9nTmFtZSwgbWVzc2FnZSk6CkBAIC0xMDE5LDcgKzEwMzksNyBAQCBjbGFzcyBWYWxp
ZGF0ZUNvbW1pdGVyQW5kUmV2aWV3ZXIoYnVpbGRzdGVwLkJ1aWxkU3RlcCk6CiAKICAgICBkZWYg
ZmFpbF9idWlsZChzZWxmLCBlbWFpbCwgc3RhdHVzKToKICAgICAgICAgcmVhc29uID0gJ3t9IGRv
ZXMgbm90IGhhdmUge30gcGVybWlzc2lvbnMnLmZvcm1hdChlbWFpbCwgc3RhdHVzKQotICAgICAg
ICBjb21tZW50ID0gJ3t9IGRvZXMgbm90IGhhdmUge30gcGVybWlzc2lvbnMgYWNjb3JkaW5nIHRv
IHt9LicuZm9ybWF0KGVtYWlsLCBzdGF0dXMsIHNlbGYudXJsKQorICAgICAgICBjb21tZW50ID0g
J3t9IGRvZXMgbm90IGhhdmUge30gcGVybWlzc2lvbnMgYWNjb3JkaW5nIHRvIHt9LicuZm9ybWF0
KGVtYWlsLCBzdGF0dXMsIENvbnRyaWJ1dG9ycy51cmwpCiAgICAgICAgIGNvbW1lbnQgKz0gJ1xu
XG5SZWplY3RpbmcgYXR0YWNobWVudCB7fSBmcm9tIGNvbW1pdCBxdWV1ZS4nLmZvcm1hdChzZWxm
LmdldFByb3BlcnR5KCdwYXRjaF9pZCcsICcnKSkKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgn
YnVnemlsbGFfY29tbWVudF90ZXh0JywgY29tbWVudCkKIApAQCAtMTA0NCw3ICsxMDY0LDExIEBA
IGNsYXNzIFZhbGlkYXRlQ29tbWl0ZXJBbmRSZXZpZXdlcihidWlsZHN0ZXAuQnVpbGRTdGVwKToK
ICAgICAgICAgcmV0dXJuIGNvbnRyaWJ1dG9yLmdldCgnbmFtZScpCiAKICAgICBkZWYgc3RhcnQo
c2VsZik6Ci0gICAgICAgIHNlbGYuY29udHJpYnV0b3JzID0gc2VsZi5sb2FkX2NvbnRyaWJ1dG9y
cygpCisgICAgICAgIHNlbGYuY29udHJpYnV0b3JzLCBlcnJvcnMgPSBDb250cmlidXRvcnMubG9h
ZCgpCisgICAgICAgIGZvciBlcnJvciBpbiBlcnJvcnM6CisgICAgICAgICAgICBwcmludChlcnJv
cikKKyAgICAgICAgICAgIHNlbGYuX2FkZFRvTG9nKCdzdGRpbycsIGVycm9yKQorCiAgICAgICAg
IGlmIG5vdCBzZWxmLmNvbnRyaWJ1dG9yczoKICAgICAgICAgICAgIHNlbGYuZmluaXNoZWQoRkFJ
TFVSRSkKICAgICAgICAgICAgIHNlbGYuZGVzY3JpcHRpb25Eb25lID0gJ0ZhaWxlZCB0byBnZXQg
Y29udHJpYnV0b3JzIGluZm9ybWF0aW9uJwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ0lTdXBwb3J0L2V3
cy1idWlsZC9zdGVwc191bml0dGVzdC5weSBiL1Rvb2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQvc3Rl
cHNfdW5pdHRlc3QucHkKaW5kZXggMTI5MDNlMmExNGE0MmJiY2ZmODE5YzE5ZTJlNGVjY2E5YWJh
NWYwMi4uYjdmZmYzY2RhYTg4YzZmNWE3MmY1M2MxMmIzODMzMjNhYjlhMTAxMiAxMDA2NDQKLS0t
IGEvVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWlsZC9zdGVwc191bml0dGVzdC5weQorKysgYi9Ub29s
cy9DSVN1cHBvcnQvZXdzLWJ1aWxkL3N0ZXBzX3VuaXR0ZXN0LnB5CkBAIC00NCw3ICs0NCw3IEBA
IGZyb20gc3RlcHMgaW1wb3J0IChBbmFseXplQVBJVGVzdHNSZXN1bHRzLCBBbmFseXplQ29tcGls
ZVdlYktpdFJlc3VsdHMsIEFuYWx5emVKCiAgICAgICAgICAgICAgICAgICAgQW5hbHl6ZUxheW91
dFRlc3RzUmVzdWx0cywgQXBwbHlQYXRjaCwgQXBwbHlXYXRjaExpc3QsIEFyY2hpdmVCdWlsdFBy
b2R1Y3QsIEFyY2hpdmVUZXN0UmVzdWx0cywKICAgICAgICAgICAgICAgICAgICBDaGVja091dFNv
dXJjZSwgQ2hlY2tPdXRTcGVjaWZpY1JldmlzaW9uLCBDaGVja1BhdGNoUmVsZXZhbmNlLCBDaGVj
a1BhdGNoU3RhdHVzT25FV1NRdWV1ZXMsIENoZWNrU3R5bGUsCiAgICAgICAgICAgICAgICAgICAg
Q2xlYW5CdWlsZCwgQ2xlYW5VcEdpdEluZGV4TG9jaywgQ2xlYW5HaXRSZXBvLCBDbGVhbldvcmtp
bmdEaXJlY3RvcnksIENvbXBpbGVKU0MsIENvbXBpbGVKU0NXaXRob3V0UGF0Y2gsCi0gICAgICAg
ICAgICAgICAgICAgQ29tcGlsZVdlYktpdCwgQ29tcGlsZVdlYktpdFdpdGhvdXRQYXRjaCwgQ29u
ZmlndXJlQnVpbGQsIENyZWF0ZUxvY2FsR0lUQ29tbWl0LAorICAgICAgICAgICAgICAgICAgIENv
bXBpbGVXZWJLaXQsIENvbXBpbGVXZWJLaXRXaXRob3V0UGF0Y2gsIENvbmZpZ3VyZUJ1aWxkLCBD
b25maWd1cmVCdWlsZCwgQ29udHJpYnV0b3JzLAogICAgICAgICAgICAgICAgICAgIERvd25sb2Fk
QnVpbHRQcm9kdWN0LCBEb3dubG9hZEJ1aWx0UHJvZHVjdEZyb21NYXN0ZXIsIEVXU19CVUlMRF9I
T1NUTkFNRSwgRXh0cmFjdEJ1aWx0UHJvZHVjdCwgRXh0cmFjdFRlc3RSZXN1bHRzLAogICAgICAg
ICAgICAgICAgICAgIEZldGNoQnJhbmNoZXMsIEZpbmRNb2RpZmllZENoYW5nZUxvZ3MsIEZpbmRN
b2RpZmllZExheW91dFRlc3RzLCBHaXRSZXNldEhhcmQsCiAgICAgICAgICAgICAgICAgICAgSW5z
dGFsbEJ1aWx0UHJvZHVjdCwgSW5zdGFsbEd0a0RlcGVuZGVuY2llcywgSW5zdGFsbFdwZURlcGVu
ZGVuY2llcywKQEAgLTQ1ODUsMTAgKzQ1ODUsMTAgQEAgY2xhc3MgVGVzdFZhbGlkYXRlQ29tbWl0
ZXJBbmRSZXZpZXdlcihCdWlsZFN0ZXBNaXhpbkFkZGl0aW9ucywgdW5pdHRlc3QuVGVzdENhc2UK
ICAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgIHNlbGYubG9uZ01lc3NhZ2UgPSBUcnVlCiAK
LSAgICAgICAgZGVmIG1vY2tfbG9hZF9jb250cmlidXRvcnMoY2xzLCAqYXJncywgKiprd2FyZ3Mp
OgorICAgICAgICBkZWYgbW9ja19sb2FkX2NvbnRyaWJ1dG9ycygqYXJncywgKiprd2FyZ3MpOgog
ICAgICAgICAgICAgcmV0dXJuIHsnYWFrYXNoX2phaW5AYXBwbGUuY29tJzogeyduYW1lJzogJ0Fh
a2FzaCBKYWluJywgJ3N0YXR1cyc6ICdyZXZpZXdlcid9LAotICAgICAgICAgICAgICAgICAgICAn
Y29tbWl0dGVyQHdlYmtpdC5vcmcnOiB7J25hbWUnOiAnV2ViS2l0IENvbW1pdHRlcicsICdzdGF0
dXMnOiAnY29tbWl0dGVyJ319Ci0gICAgICAgIFZhbGlkYXRlQ29tbWl0ZXJBbmRSZXZpZXdlci5s
b2FkX2NvbnRyaWJ1dG9ycyA9IG1vY2tfbG9hZF9jb250cmlidXRvcnMKKyAgICAgICAgICAgICAg
ICAgICAgJ2NvbW1pdHRlckB3ZWJraXQub3JnJzogeyduYW1lJzogJ1dlYktpdCBDb21taXR0ZXIn
LCAnc3RhdHVzJzogJ2NvbW1pdHRlcid9fSwgW10KKyAgICAgICAgQ29udHJpYnV0b3JzLmxvYWQg
PSBtb2NrX2xvYWRfY29udHJpYnV0b3JzCiAgICAgICAgIHJldHVybiBzZWxmLnNldFVwQnVpbGRT
dGVwKCkKIAogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKQEAgLTQ2MTYsNyArNDYxNiw3IEBAIGNs
YXNzIFRlc3RWYWxpZGF0ZUNvbW1pdGVyQW5kUmV2aWV3ZXIoQnVpbGRTdGVwTWl4aW5BZGRpdGlv
bnMsIHVuaXR0ZXN0LlRlc3RDYXNlCiAgICAgICAgIHNlbGYuc2V0dXBTdGVwKFZhbGlkYXRlQ29t
bWl0ZXJBbmRSZXZpZXdlcigpKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdwYXRjaF9pZCcs
ICcxMjM0JykKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgncGF0Y2hfY29tbWl0dGVyJywgJ2Fi
Y0B3ZWJraXQub3JnJykKLSAgICAgICAgVmFsaWRhdGVDb21taXRlckFuZFJldmlld2VyLmxvYWRf
Y29udHJpYnV0b3JzID0gbGFtYmRhIHg6IHt9CisgICAgICAgIENvbnRyaWJ1dG9ycy5sb2FkID0g
bGFtYmRhOiB7fSwgW10KICAgICAgICAgc2VsZi5leHBlY3RIaWRkZW4oRmFsc2UpCiAgICAgICAg
IHNlbGYuZXhwZWN0T3V0Y29tZShyZXN1bHQ9RkFJTFVSRSwgc3RhdGVfc3RyaW5nPSdGYWlsZWQg
dG8gZ2V0IGNvbnRyaWJ1dG9ycyBpbmZvcm1hdGlvbicpCiAgICAgICAgIHJldHVybiBzZWxmLnJ1
blN0ZXAoKQpAQCAtNDYzOSw4ICs0NjM5LDcgQEAgY2xhc3MgVGVzdFZhbGlkYXRlQ29tbWl0ZXJB
bmRSZXZpZXdlcihCdWlsZFN0ZXBNaXhpbkFkZGl0aW9ucywgdW5pdHRlc3QuVGVzdENhc2UKICAg
ICAgICAgcmV0dXJuIHNlbGYucnVuU3RlcCgpCiAKICAgICBkZWYgdGVzdF9sb2FkX2NvbnRyaWJ1
dG9yc19mcm9tX2Rpc2soc2VsZik6Ci0gICAgICAgIFZhbGlkYXRlQ29tbWl0ZXJBbmRSZXZpZXdl
ci5fYWRkVG9Mb2cgPSBsYW1iZGEgY2xzLCBsb2d0eXBlLCBsb2c6IHN5cy5zdGRvdXQud3JpdGUo
bG9nKQotICAgICAgICBjb250cmlidXRvcnMgPSBmaWx0ZXIobGFtYmRhIGVsZW1lbnQ6IGVsZW1l
bnQuZ2V0KCduYW1lJykgPT0gJ0Fha2FzaCBKYWluJywgVmFsaWRhdGVDb21taXRlckFuZFJldmll
d2VyKCkubG9hZF9jb250cmlidXRvcnNfZnJvbV9kaXNrKCkpCisgICAgICAgIGNvbnRyaWJ1dG9y
cywgXyA9IGZpbHRlcihsYW1iZGEgZWxlbWVudDogZWxlbWVudC5nZXQoJ25hbWUnKSA9PSAnQWFr
YXNoIEphaW4nLCBDb250cmlidXRvcnMoKS5sb2FkX2Zyb21fZGlzaygpKQogICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGxpc3QoY29udHJpYnV0b3JzKVswXVsnZW1haWxzJ11bMF0sICdhYWthc2hf
amFpbkBhcHBsZS5jb20nKQogCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448981</attachid>
            <date>2022-01-12 11:57:15 -0800</date>
            <delta_ts>2022-01-12 12:10:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235074-20220112115714.patch</filename>
            <type>text/plain</type>
            <size>10226</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3OTMzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggM2QxMzZlMWU3ZDM5ZmRmNjk4Y2Y0NmY1N2ZkZjZkYmRm
NGFiMzFjYS4uYzE5ZDcxMmM0NjIyNzViMTI1NWVkNGY2MjgwYjIwZmIxYjM0YjI5YSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4
IEBACisyMDIyLTAxLTEyICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbRVdTXSBMb2FkIGNvbnRyaWJ1dG9ycyBmcm9tIHN0YW5kLWFsb25lIGNsYXNzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzUwNzQKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg3NDA2MTU3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ0lTdXBwb3J0L2V3cy1idWlsZC9zdGVwcy5weToK
KyAgICAgICAgKENvbnRyaWJ1dG9ycyk6IE1vdmVkIGZyb20gVmFsaWRhdGVDb21taXRlckFuZFJl
dmlld2VyLgorICAgICAgICAoVmFsaWRhdGVDb21taXRlckFuZFJldmlld2VyLmxvYWRfY29udHJp
YnV0b3JzX2Zyb21fZGlzayk6IE1vdmVkIHRvIENvbnRyaWJ1dG9ycy4KKyAgICAgICAgKFZhbGlk
YXRlQ29tbWl0ZXJBbmRSZXZpZXdlci5sb2FkX2NvbnRyaWJ1dG9yc19mcm9tX2dpdGh1Yik6IERp
dHRvLgorICAgICAgICAoVmFsaWRhdGVDb21taXRlckFuZFJldmlld2VyLmxvYWRfY29udHJpYnV0
b3JzKTogRGl0dG8uCisgICAgICAgICogQ0lTdXBwb3J0L2V3cy1idWlsZC9zdGVwc191bml0dGVz
dC5weToKKwogMjAyMi0wMS0xMSAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgog
CiAgICAgICAgIFdlYlBhZ2VQcm94eSBkZXN0cnVjdGlvbiBzaG91bGQgbm90IGxhdW5jaCBhIG5l
dHdvcmsgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWlsZC9zdGVw
cy5weSBiL1Rvb2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQvc3RlcHMucHkKaW5kZXggYWRmNzQ2NTFh
NjU4MjFiN2ZlMDFjMWYxYzgyNjE3MTBmZDM4MDZhOS4uNTlhZTZmMzIxYmI3MzM3OGFkZTYzZjY3
ZThhNDYwYzUyOWViZmU0NCAxMDA2NDQKLS0tIGEvVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWlsZC9z
dGVwcy5weQorKysgYi9Ub29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL3N0ZXBzLnB5CkBAIC05Niw2
ICs5Niw2MCBAQCBjbGFzcyBHaXRIdWJNaXhpbihvYmplY3QpOgogICAgICAgICByZXR1cm4gcHJf
bnVtYmVyCiAKIAorY2xhc3MgQ29udHJpYnV0b3JzKG9iamVjdCk6CisgICAgdXJsID0gJ2h0dHBz
Oi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9XZWJLaXQvV2ViS2l0L21haW4vbWV0YWRhdGEv
Y29udHJpYnV0b3JzLmpzb24nCisgICAgY29udHJpYnV0b3JzID0ge30KKworICAgIEBjbGFzc21l
dGhvZAorICAgIGRlZiBsb2FkX2Zyb21fZGlzayhjbHMpOgorICAgICAgICBjd2QgPSBvcy5wYXRo
LmFic3BhdGgob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSkKKyAgICAgICAgcmVwb19yb290ID0g
b3MucGF0aC5kaXJuYW1lKG9zLnBhdGguZGlybmFtZShvcy5wYXRoLmRpcm5hbWUoY3dkKSkpCisg
ICAgICAgIGNvbnRyaWJ1dG9yc19wYXRoID0gb3MucGF0aC5qb2luKHJlcG9fcm9vdCwgJ21ldGFk
YXRhL2NvbnRyaWJ1dG9ycy5qc29uJykKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgd2l0aCBv
cGVuKGNvbnRyaWJ1dG9yc19wYXRoLCAncmInKSBhcyBjb250cmlidXRvcnNfanNvbjoKKyAgICAg
ICAgICAgICAgICByZXR1cm4ganNvbi5sb2FkKGNvbnRyaWJ1dG9yc19qc29uKSwgTm9uZQorICAg
ICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICByZXR1cm4ge30sICdGYWls
ZWQgdG8gbG9hZCB7fVxuJy5mb3JtYXQoY29udHJpYnV0b3JzX3BhdGgpCisKKyAgICBAY2xhc3Nt
ZXRob2QKKyAgICBkZWYgbG9hZF9mcm9tX2dpdGh1YihjbHMpOgorICAgICAgICB0cnk6CisgICAg
ICAgICAgICByZXNwb25zZSA9IHJlcXVlc3RzLmdldChjbHMudXJsLCB0aW1lb3V0PTYwKQorICAg
ICAgICAgICAgaWYgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgIT0gMjAwOgorICAgICAgICAgICAgICAg
IHJldHVybiB7fSwgJ0ZhaWxlZCB0byBhY2Nlc3Mge30gd2l0aCBzdGF0dXMgY29kZToge31cbicu
Zm9ybWF0KGNscy51cmwsIHJlc3BvbnNlLnN0YXR1c19jb2RlKQorICAgICAgICAgICAgcmV0dXJu
IHJlc3BvbnNlLmpzb24oKSwgTm9uZQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Cisg
ICAgICAgICAgICByZXR1cm4ge30sICdGYWlsZWQgdG8gYWNjZXNzIHt1cmx9XG4nLmZvcm1hdCh1
cmw9Y2xzLnVybCkKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBsb2FkKGNscyk6CisgICAg
ICAgIGVycm9ycyA9IFtdCisgICAgICAgIGNvbnRyaWJ1dG9yc19qc29uLCBlcnJvciA9IGNscy5s
b2FkX2Zyb21fZ2l0aHViKCkKKyAgICAgICAgaWYgZXJyb3I6CisgICAgICAgICAgICBlcnJvcnMu
YXBwZW5kKGVycm9yKQorCisgICAgICAgIGlmIG5vdCBjb250cmlidXRvcnNfanNvbjoKKyAgICAg
ICAgICAgIGNvbnRyaWJ1dG9yc19qc29uLCBlcnJvciA9IGNscy5sb2FkX2Zyb21fZGlzaygpCisg
ICAgICAgICAgICBpZiBlcnJvcjoKKyAgICAgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKGVycm9y
KQorCisgICAgICAgIGNvbnRyaWJ1dG9ycyA9IHt9CisgICAgICAgIGZvciB2YWx1ZSBpbiBjb250
cmlidXRvcnNfanNvbjoKKyAgICAgICAgICAgIG5hbWUgPSB2YWx1ZS5nZXQoJ25hbWUnKQorICAg
ICAgICAgICAgZW1haWxzID0gdmFsdWUuZ2V0KCdlbWFpbHMnKQorICAgICAgICAgICAgZ2l0aHVi
X3VzZXJuYW1lID0gdmFsdWUuZ2V0KCdnaXRodWInKQorICAgICAgICAgICAgaWYgbmFtZSBhbmQg
ZW1haWxzOgorICAgICAgICAgICAgICAgIGJ1Z3ppbGxhX2VtYWlsID0gZW1haWxzWzBdLmxvd2Vy
KCkgICMgV2UncmUgcmVxdWlyaW5nIHRoYXQgdGhlIGZpcnN0IGVtYWlsIGlzIHRoZSBwcmltYXJ5
IGJ1Z3ppbGxhIGVtYWlsCisgICAgICAgICAgICAgICAgY29udHJpYnV0b3JzW2J1Z3ppbGxhX2Vt
YWlsXSA9IHsnbmFtZSc6IG5hbWUsICdzdGF0dXMnOiB2YWx1ZS5nZXQoJ3N0YXR1cycpfQorICAg
ICAgICAgICAgaWYgZ2l0aHViX3VzZXJuYW1lIGFuZCBuYW1lIGFuZCBlbWFpbHM6CisgICAgICAg
ICAgICAgICAgY29udHJpYnV0b3JzW2dpdGh1Yl91c2VybmFtZV0gPSBkaWN0KAorICAgICAgICAg
ICAgICAgICAgICBwcmludGFibGU9J3t9IDx7fT4nLmZvcm1hdChuYW1lLCBlbWFpbHNbMF0ubG93
ZXIoKSksCisgICAgICAgICAgICAgICAgICAgIHN0YXR1cz12YWx1ZS5nZXQoJ3N0YXR1cycpLAor
ICAgICAgICAgICAgICAgICAgICBlbWFpbD1lbWFpbHNbMF0sCisgICAgICAgICAgICAgICAgKQor
ICAgICAgICByZXR1cm4gY29udHJpYnV0b3JzLCBlcnJvcnMKKworCiBjbGFzcyBDb25maWd1cmVC
dWlsZChidWlsZHN0ZXAuQnVpbGRTdGVwLCBHaXRIdWJNaXhpbik6CiAgICAgbmFtZSA9ICdjb25m
aWd1cmUtYnVpbGQnCiAgICAgZGVzY3JpcHRpb24gPSBbJ2NvbmZpZ3VyaW5nIGJ1aWxkJ10KQEAg
LTk2NSw0NCArMTAxOSwxMCBAQCBjbGFzcyBWYWxpZGF0ZVBhdGNoKGJ1aWxkc3RlcC5CdWlsZFN0
ZXAsIEJ1Z3ppbGxhTWl4aW4pOgogY2xhc3MgVmFsaWRhdGVDb21taXRlckFuZFJldmlld2VyKGJ1
aWxkc3RlcC5CdWlsZFN0ZXApOgogICAgIG5hbWUgPSAndmFsaWRhdGUtY29tbWl0ZXItYW5kLXJl
dmlld2VyJwogICAgIGRlc2NyaXB0aW9uRG9uZSA9IFsnVmFsaWRhdGVkIGNvbW1pdGVyIGFuZCBy
ZXZpZXdlciddCi0gICAgdXJsID0gJ2h0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9X
ZWJLaXQvV2ViS2l0L21haW4vbWV0YWRhdGEvY29udHJpYnV0b3JzLmpzb24nCi0gICAgY29udHJp
YnV0b3JzID0ge30KLQotICAgIGRlZiBsb2FkX2NvbnRyaWJ1dG9yc19mcm9tX2Rpc2soc2VsZik6
Ci0gICAgICAgIGN3ZCA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmRpcm5hbWUoX19maWxlX18p
KQotICAgICAgICByZXBvX3Jvb3QgPSBvcy5wYXRoLmRpcm5hbWUob3MucGF0aC5kaXJuYW1lKG9z
LnBhdGguZGlybmFtZShjd2QpKSkKLSAgICAgICAgY29udHJpYnV0b3JzX3BhdGggPSBvcy5wYXRo
LmpvaW4ocmVwb19yb290LCAnbWV0YWRhdGEvY29udHJpYnV0b3JzLmpzb24nKQotICAgICAgICB0
cnk6Ci0gICAgICAgICAgICB3aXRoIG9wZW4oY29udHJpYnV0b3JzX3BhdGgsICdyYicpIGFzIGNv
bnRyaWJ1dG9yc19qc29uOgotICAgICAgICAgICAgICAgIHJldHVybiBqc29uLmxvYWQoY29udHJp
YnV0b3JzX2pzb24pCi0gICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKLSAgICAgICAgICAg
IHNlbGYuX2FkZFRvTG9nKCdzdGRpbycsICdGYWlsZWQgdG8gbG9hZCB7fVxuJy5mb3JtYXQoY29u
dHJpYnV0b3JzX3BhdGgpKQotICAgICAgICAgICAgcmV0dXJuIHt9Ci0KLSAgICBkZWYgbG9hZF9j
b250cmlidXRvcnNfZnJvbV9naXRodWIoc2VsZik6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAg
IHJlc3BvbnNlID0gcmVxdWVzdHMuZ2V0KHNlbGYudXJsLCB0aW1lb3V0PTYwKQotICAgICAgICAg
ICAgaWYgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgIT0gMjAwOgotICAgICAgICAgICAgICAgIHNlbGYu
X2FkZFRvTG9nKCdzdGRpbycsICdGYWlsZWQgdG8gYWNjZXNzIHt9IHdpdGggc3RhdHVzIGNvZGU6
IHt9XG4nLmZvcm1hdChzZWxmLnVybCwgcmVzcG9uc2Uuc3RhdHVzX2NvZGUpKQotICAgICAgICAg
ICAgICAgIHJldHVybiB7fQotICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmpzb24oKQotICAg
ICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Ci0gICAgICAgICAgICBzZWxmLl9hZGRUb0xvZygn
c3RkaW8nLCAnRmFpbGVkIHRvIGFjY2VzcyB7dXJsfVxuJy5mb3JtYXQodXJsPXNlbGYudXJsKSkK
LSAgICAgICAgICAgIHJldHVybiB7fQogCi0gICAgZGVmIGxvYWRfY29udHJpYnV0b3JzKHNlbGYp
OgotICAgICAgICBjb250cmlidXRvcnNfanNvbiA9IHNlbGYubG9hZF9jb250cmlidXRvcnNfZnJv
bV9naXRodWIoKQotICAgICAgICBpZiBub3QgY29udHJpYnV0b3JzX2pzb246Ci0gICAgICAgICAg
ICBjb250cmlidXRvcnNfanNvbiA9IHNlbGYubG9hZF9jb250cmlidXRvcnNfZnJvbV9kaXNrKCkK
LQotICAgICAgICBjb250cmlidXRvcnMgPSB7fQotICAgICAgICBmb3IgdmFsdWUgaW4gY29udHJp
YnV0b3JzX2pzb246Ci0gICAgICAgICAgICBuYW1lID0gdmFsdWUuZ2V0KCduYW1lJykKLSAgICAg
ICAgICAgIGVtYWlscyA9IHZhbHVlLmdldCgnZW1haWxzJykKLSAgICAgICAgICAgIGlmIG5hbWUg
YW5kIGVtYWlsczoKLSAgICAgICAgICAgICAgICBidWd6aWxsYV9lbWFpbCA9IGVtYWlsc1swXS5s
b3dlcigpICAjIFdlJ3JlIHJlcXVpcmluZyB0aGF0IHRoZSBmaXJzdCBlbWFpbCBpcyB0aGUgcHJp
bWFyeSBidWd6aWxsYSBlbWFpbAotICAgICAgICAgICAgICAgIGNvbnRyaWJ1dG9yc1tidWd6aWxs
YV9lbWFpbF0gPSB7J25hbWUnOiBuYW1lLCAnc3RhdHVzJzogdmFsdWUuZ2V0KCdzdGF0dXMnKX0K
LSAgICAgICAgcmV0dXJuIGNvbnRyaWJ1dG9ycworICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJn
cywgKiprd2FyZ3MpOgorICAgICAgICBzdXBlcihWYWxpZGF0ZUNvbW1pdGVyQW5kUmV2aWV3ZXIs
IHNlbGYpLl9faW5pdF9fKCphcmdzLCAqKmt3YXJncykKKyAgICAgICAgc2VsZi5jb250cmlidXRv
cnMgPSB7fQogCiAgICAgQGRlZmVyLmlubGluZUNhbGxiYWNrcwogICAgIGRlZiBfYWRkVG9Mb2co
c2VsZiwgbG9nTmFtZSwgbWVzc2FnZSk6CkBAIC0xMDE5LDcgKzEwMzksNyBAQCBjbGFzcyBWYWxp
ZGF0ZUNvbW1pdGVyQW5kUmV2aWV3ZXIoYnVpbGRzdGVwLkJ1aWxkU3RlcCk6CiAKICAgICBkZWYg
ZmFpbF9idWlsZChzZWxmLCBlbWFpbCwgc3RhdHVzKToKICAgICAgICAgcmVhc29uID0gJ3t9IGRv
ZXMgbm90IGhhdmUge30gcGVybWlzc2lvbnMnLmZvcm1hdChlbWFpbCwgc3RhdHVzKQotICAgICAg
ICBjb21tZW50ID0gJ3t9IGRvZXMgbm90IGhhdmUge30gcGVybWlzc2lvbnMgYWNjb3JkaW5nIHRv
IHt9LicuZm9ybWF0KGVtYWlsLCBzdGF0dXMsIHNlbGYudXJsKQorICAgICAgICBjb21tZW50ID0g
J3t9IGRvZXMgbm90IGhhdmUge30gcGVybWlzc2lvbnMgYWNjb3JkaW5nIHRvIHt9LicuZm9ybWF0
KGVtYWlsLCBzdGF0dXMsIENvbnRyaWJ1dG9ycy51cmwpCiAgICAgICAgIGNvbW1lbnQgKz0gJ1xu
XG5SZWplY3RpbmcgYXR0YWNobWVudCB7fSBmcm9tIGNvbW1pdCBxdWV1ZS4nLmZvcm1hdChzZWxm
LmdldFByb3BlcnR5KCdwYXRjaF9pZCcsICcnKSkKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgn
YnVnemlsbGFfY29tbWVudF90ZXh0JywgY29tbWVudCkKIApAQCAtMTA0NCw3ICsxMDY0LDExIEBA
IGNsYXNzIFZhbGlkYXRlQ29tbWl0ZXJBbmRSZXZpZXdlcihidWlsZHN0ZXAuQnVpbGRTdGVwKToK
ICAgICAgICAgcmV0dXJuIGNvbnRyaWJ1dG9yLmdldCgnbmFtZScpCiAKICAgICBkZWYgc3RhcnQo
c2VsZik6Ci0gICAgICAgIHNlbGYuY29udHJpYnV0b3JzID0gc2VsZi5sb2FkX2NvbnRyaWJ1dG9y
cygpCisgICAgICAgIHNlbGYuY29udHJpYnV0b3JzLCBlcnJvcnMgPSBDb250cmlidXRvcnMubG9h
ZCgpCisgICAgICAgIGZvciBlcnJvciBpbiBlcnJvcnM6CisgICAgICAgICAgICBwcmludChlcnJv
cikKKyAgICAgICAgICAgIHNlbGYuX2FkZFRvTG9nKCdzdGRpbycsIGVycm9yKQorCiAgICAgICAg
IGlmIG5vdCBzZWxmLmNvbnRyaWJ1dG9yczoKICAgICAgICAgICAgIHNlbGYuZmluaXNoZWQoRkFJ
TFVSRSkKICAgICAgICAgICAgIHNlbGYuZGVzY3JpcHRpb25Eb25lID0gJ0ZhaWxlZCB0byBnZXQg
Y29udHJpYnV0b3JzIGluZm9ybWF0aW9uJwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ0lTdXBwb3J0L2V3
cy1idWlsZC9zdGVwc191bml0dGVzdC5weSBiL1Rvb2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQvc3Rl
cHNfdW5pdHRlc3QucHkKaW5kZXggMTI5MDNlMmExNGE0MmJiY2ZmODE5YzE5ZTJlNGVjY2E5YWJh
NWYwMi4uMWNlMDYyNDMwZjc4YmY0ZDIxMjM4NDFlN2IwNDBiYWJkN2RhNWUzMCAxMDA2NDQKLS0t
IGEvVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWlsZC9zdGVwc191bml0dGVzdC5weQorKysgYi9Ub29s
cy9DSVN1cHBvcnQvZXdzLWJ1aWxkL3N0ZXBzX3VuaXR0ZXN0LnB5CkBAIC00NCw3ICs0NCw3IEBA
IGZyb20gc3RlcHMgaW1wb3J0IChBbmFseXplQVBJVGVzdHNSZXN1bHRzLCBBbmFseXplQ29tcGls
ZVdlYktpdFJlc3VsdHMsIEFuYWx5emVKCiAgICAgICAgICAgICAgICAgICAgQW5hbHl6ZUxheW91
dFRlc3RzUmVzdWx0cywgQXBwbHlQYXRjaCwgQXBwbHlXYXRjaExpc3QsIEFyY2hpdmVCdWlsdFBy
b2R1Y3QsIEFyY2hpdmVUZXN0UmVzdWx0cywKICAgICAgICAgICAgICAgICAgICBDaGVja091dFNv
dXJjZSwgQ2hlY2tPdXRTcGVjaWZpY1JldmlzaW9uLCBDaGVja1BhdGNoUmVsZXZhbmNlLCBDaGVj
a1BhdGNoU3RhdHVzT25FV1NRdWV1ZXMsIENoZWNrU3R5bGUsCiAgICAgICAgICAgICAgICAgICAg
Q2xlYW5CdWlsZCwgQ2xlYW5VcEdpdEluZGV4TG9jaywgQ2xlYW5HaXRSZXBvLCBDbGVhbldvcmtp
bmdEaXJlY3RvcnksIENvbXBpbGVKU0MsIENvbXBpbGVKU0NXaXRob3V0UGF0Y2gsCi0gICAgICAg
ICAgICAgICAgICAgQ29tcGlsZVdlYktpdCwgQ29tcGlsZVdlYktpdFdpdGhvdXRQYXRjaCwgQ29u
ZmlndXJlQnVpbGQsIENyZWF0ZUxvY2FsR0lUQ29tbWl0LAorICAgICAgICAgICAgICAgICAgIENv
bXBpbGVXZWJLaXQsIENvbXBpbGVXZWJLaXRXaXRob3V0UGF0Y2gsIENvbmZpZ3VyZUJ1aWxkLCBD
b25maWd1cmVCdWlsZCwgQ29udHJpYnV0b3JzLAogICAgICAgICAgICAgICAgICAgIERvd25sb2Fk
QnVpbHRQcm9kdWN0LCBEb3dubG9hZEJ1aWx0UHJvZHVjdEZyb21NYXN0ZXIsIEVXU19CVUlMRF9I
T1NUTkFNRSwgRXh0cmFjdEJ1aWx0UHJvZHVjdCwgRXh0cmFjdFRlc3RSZXN1bHRzLAogICAgICAg
ICAgICAgICAgICAgIEZldGNoQnJhbmNoZXMsIEZpbmRNb2RpZmllZENoYW5nZUxvZ3MsIEZpbmRN
b2RpZmllZExheW91dFRlc3RzLCBHaXRSZXNldEhhcmQsCiAgICAgICAgICAgICAgICAgICAgSW5z
dGFsbEJ1aWx0UHJvZHVjdCwgSW5zdGFsbEd0a0RlcGVuZGVuY2llcywgSW5zdGFsbFdwZURlcGVu
ZGVuY2llcywKQEAgLTQ1ODUsMTAgKzQ1ODUsMTAgQEAgY2xhc3MgVGVzdFZhbGlkYXRlQ29tbWl0
ZXJBbmRSZXZpZXdlcihCdWlsZFN0ZXBNaXhpbkFkZGl0aW9ucywgdW5pdHRlc3QuVGVzdENhc2UK
ICAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgIHNlbGYubG9uZ01lc3NhZ2UgPSBUcnVlCiAK
LSAgICAgICAgZGVmIG1vY2tfbG9hZF9jb250cmlidXRvcnMoY2xzLCAqYXJncywgKiprd2FyZ3Mp
OgorICAgICAgICBkZWYgbW9ja19sb2FkX2NvbnRyaWJ1dG9ycygqYXJncywgKiprd2FyZ3MpOgog
ICAgICAgICAgICAgcmV0dXJuIHsnYWFrYXNoX2phaW5AYXBwbGUuY29tJzogeyduYW1lJzogJ0Fh
a2FzaCBKYWluJywgJ3N0YXR1cyc6ICdyZXZpZXdlcid9LAotICAgICAgICAgICAgICAgICAgICAn
Y29tbWl0dGVyQHdlYmtpdC5vcmcnOiB7J25hbWUnOiAnV2ViS2l0IENvbW1pdHRlcicsICdzdGF0
dXMnOiAnY29tbWl0dGVyJ319Ci0gICAgICAgIFZhbGlkYXRlQ29tbWl0ZXJBbmRSZXZpZXdlci5s
b2FkX2NvbnRyaWJ1dG9ycyA9IG1vY2tfbG9hZF9jb250cmlidXRvcnMKKyAgICAgICAgICAgICAg
ICAgICAgJ2NvbW1pdHRlckB3ZWJraXQub3JnJzogeyduYW1lJzogJ1dlYktpdCBDb21taXR0ZXIn
LCAnc3RhdHVzJzogJ2NvbW1pdHRlcid9fSwgW10KKyAgICAgICAgQ29udHJpYnV0b3JzLmxvYWQg
PSBtb2NrX2xvYWRfY29udHJpYnV0b3JzCiAgICAgICAgIHJldHVybiBzZWxmLnNldFVwQnVpbGRT
dGVwKCkKIAogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKQEAgLTQ2MTYsNyArNDYxNiw3IEBAIGNs
YXNzIFRlc3RWYWxpZGF0ZUNvbW1pdGVyQW5kUmV2aWV3ZXIoQnVpbGRTdGVwTWl4aW5BZGRpdGlv
bnMsIHVuaXR0ZXN0LlRlc3RDYXNlCiAgICAgICAgIHNlbGYuc2V0dXBTdGVwKFZhbGlkYXRlQ29t
bWl0ZXJBbmRSZXZpZXdlcigpKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdwYXRjaF9pZCcs
ICcxMjM0JykKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgncGF0Y2hfY29tbWl0dGVyJywgJ2Fi
Y0B3ZWJraXQub3JnJykKLSAgICAgICAgVmFsaWRhdGVDb21taXRlckFuZFJldmlld2VyLmxvYWRf
Y29udHJpYnV0b3JzID0gbGFtYmRhIHg6IHt9CisgICAgICAgIENvbnRyaWJ1dG9ycy5sb2FkID0g
bGFtYmRhOiAoe30sIFtdKQogICAgICAgICBzZWxmLmV4cGVjdEhpZGRlbihGYWxzZSkKICAgICAg
ICAgc2VsZi5leHBlY3RPdXRjb21lKHJlc3VsdD1GQUlMVVJFLCBzdGF0ZV9zdHJpbmc9J0ZhaWxl
ZCB0byBnZXQgY29udHJpYnV0b3JzIGluZm9ybWF0aW9uJykKICAgICAgICAgcmV0dXJuIHNlbGYu
cnVuU3RlcCgpCkBAIC00NjM5LDggKzQ2MzksNyBAQCBjbGFzcyBUZXN0VmFsaWRhdGVDb21taXRl
ckFuZFJldmlld2VyKEJ1aWxkU3RlcE1peGluQWRkaXRpb25zLCB1bml0dGVzdC5UZXN0Q2FzZQog
ICAgICAgICByZXR1cm4gc2VsZi5ydW5TdGVwKCkKIAogICAgIGRlZiB0ZXN0X2xvYWRfY29udHJp
YnV0b3JzX2Zyb21fZGlzayhzZWxmKToKLSAgICAgICAgVmFsaWRhdGVDb21taXRlckFuZFJldmll
d2VyLl9hZGRUb0xvZyA9IGxhbWJkYSBjbHMsIGxvZ3R5cGUsIGxvZzogc3lzLnN0ZG91dC53cml0
ZShsb2cpCi0gICAgICAgIGNvbnRyaWJ1dG9ycyA9IGZpbHRlcihsYW1iZGEgZWxlbWVudDogZWxl
bWVudC5nZXQoJ25hbWUnKSA9PSAnQWFrYXNoIEphaW4nLCBWYWxpZGF0ZUNvbW1pdGVyQW5kUmV2
aWV3ZXIoKS5sb2FkX2NvbnRyaWJ1dG9yc19mcm9tX2Rpc2soKSkKKyAgICAgICAgY29udHJpYnV0
b3JzID0gZmlsdGVyKGxhbWJkYSBlbGVtZW50OiBlbGVtZW50LmdldCgnbmFtZScpID09ICdBYWth
c2ggSmFpbicsIENvbnRyaWJ1dG9ycygpLmxvYWRfZnJvbV9kaXNrKClbMF0pCiAgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwobGlzdChjb250cmlidXRvcnMpWzBdWydlbWFpbHMnXVswXSwgJ2Fha2Fz
aF9qYWluQGFwcGxlLmNvbScpCiAKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448983</attachid>
            <date>2022-01-12 12:10:34 -0800</date>
            <delta_ts>2022-01-12 13:23:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235074-20220112121033.patch</filename>
            <type>text/plain</type>
            <size>10248</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3OTQzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggM2QxMzZlMWU3ZDM5ZmRmNjk4Y2Y0NmY1N2ZkZjZkYmRm
NGFiMzFjYS4uYzE5ZDcxMmM0NjIyNzViMTI1NWVkNGY2MjgwYjIwZmIxYjM0YjI5YSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4
IEBACisyMDIyLTAxLTEyICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbRVdTXSBMb2FkIGNvbnRyaWJ1dG9ycyBmcm9tIHN0YW5kLWFsb25lIGNsYXNzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzUwNzQKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg3NDA2MTU3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ0lTdXBwb3J0L2V3cy1idWlsZC9zdGVwcy5weToK
KyAgICAgICAgKENvbnRyaWJ1dG9ycyk6IE1vdmVkIGZyb20gVmFsaWRhdGVDb21taXRlckFuZFJl
dmlld2VyLgorICAgICAgICAoVmFsaWRhdGVDb21taXRlckFuZFJldmlld2VyLmxvYWRfY29udHJp
YnV0b3JzX2Zyb21fZGlzayk6IE1vdmVkIHRvIENvbnRyaWJ1dG9ycy4KKyAgICAgICAgKFZhbGlk
YXRlQ29tbWl0ZXJBbmRSZXZpZXdlci5sb2FkX2NvbnRyaWJ1dG9yc19mcm9tX2dpdGh1Yik6IERp
dHRvLgorICAgICAgICAoVmFsaWRhdGVDb21taXRlckFuZFJldmlld2VyLmxvYWRfY29udHJpYnV0
b3JzKTogRGl0dG8uCisgICAgICAgICogQ0lTdXBwb3J0L2V3cy1idWlsZC9zdGVwc191bml0dGVz
dC5weToKKwogMjAyMi0wMS0xMSAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgog
CiAgICAgICAgIFdlYlBhZ2VQcm94eSBkZXN0cnVjdGlvbiBzaG91bGQgbm90IGxhdW5jaCBhIG5l
dHdvcmsgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWlsZC9zdGVw
cy5weSBiL1Rvb2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQvc3RlcHMucHkKaW5kZXggYWRmNzQ2NTFh
NjU4MjFiN2ZlMDFjMWYxYzgyNjE3MTBmZDM4MDZhOS4uNTlhZTZmMzIxYmI3MzM3OGFkZTYzZjY3
ZThhNDYwYzUyOWViZmU0NCAxMDA2NDQKLS0tIGEvVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWlsZC9z
dGVwcy5weQorKysgYi9Ub29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL3N0ZXBzLnB5CkBAIC05Niw2
ICs5Niw2MCBAQCBjbGFzcyBHaXRIdWJNaXhpbihvYmplY3QpOgogICAgICAgICByZXR1cm4gcHJf
bnVtYmVyCiAKIAorY2xhc3MgQ29udHJpYnV0b3JzKG9iamVjdCk6CisgICAgdXJsID0gJ2h0dHBz
Oi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9XZWJLaXQvV2ViS2l0L21haW4vbWV0YWRhdGEv
Y29udHJpYnV0b3JzLmpzb24nCisgICAgY29udHJpYnV0b3JzID0ge30KKworICAgIEBjbGFzc21l
dGhvZAorICAgIGRlZiBsb2FkX2Zyb21fZGlzayhjbHMpOgorICAgICAgICBjd2QgPSBvcy5wYXRo
LmFic3BhdGgob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSkKKyAgICAgICAgcmVwb19yb290ID0g
b3MucGF0aC5kaXJuYW1lKG9zLnBhdGguZGlybmFtZShvcy5wYXRoLmRpcm5hbWUoY3dkKSkpCisg
ICAgICAgIGNvbnRyaWJ1dG9yc19wYXRoID0gb3MucGF0aC5qb2luKHJlcG9fcm9vdCwgJ21ldGFk
YXRhL2NvbnRyaWJ1dG9ycy5qc29uJykKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgd2l0aCBv
cGVuKGNvbnRyaWJ1dG9yc19wYXRoLCAncmInKSBhcyBjb250cmlidXRvcnNfanNvbjoKKyAgICAg
ICAgICAgICAgICByZXR1cm4ganNvbi5sb2FkKGNvbnRyaWJ1dG9yc19qc29uKSwgTm9uZQorICAg
ICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICByZXR1cm4ge30sICdGYWls
ZWQgdG8gbG9hZCB7fVxuJy5mb3JtYXQoY29udHJpYnV0b3JzX3BhdGgpCisKKyAgICBAY2xhc3Nt
ZXRob2QKKyAgICBkZWYgbG9hZF9mcm9tX2dpdGh1YihjbHMpOgorICAgICAgICB0cnk6CisgICAg
ICAgICAgICByZXNwb25zZSA9IHJlcXVlc3RzLmdldChjbHMudXJsLCB0aW1lb3V0PTYwKQorICAg
ICAgICAgICAgaWYgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgIT0gMjAwOgorICAgICAgICAgICAgICAg
IHJldHVybiB7fSwgJ0ZhaWxlZCB0byBhY2Nlc3Mge30gd2l0aCBzdGF0dXMgY29kZToge31cbicu
Zm9ybWF0KGNscy51cmwsIHJlc3BvbnNlLnN0YXR1c19jb2RlKQorICAgICAgICAgICAgcmV0dXJu
IHJlc3BvbnNlLmpzb24oKSwgTm9uZQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Cisg
ICAgICAgICAgICByZXR1cm4ge30sICdGYWlsZWQgdG8gYWNjZXNzIHt1cmx9XG4nLmZvcm1hdCh1
cmw9Y2xzLnVybCkKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBsb2FkKGNscyk6CisgICAg
ICAgIGVycm9ycyA9IFtdCisgICAgICAgIGNvbnRyaWJ1dG9yc19qc29uLCBlcnJvciA9IGNscy5s
b2FkX2Zyb21fZ2l0aHViKCkKKyAgICAgICAgaWYgZXJyb3I6CisgICAgICAgICAgICBlcnJvcnMu
YXBwZW5kKGVycm9yKQorCisgICAgICAgIGlmIG5vdCBjb250cmlidXRvcnNfanNvbjoKKyAgICAg
ICAgICAgIGNvbnRyaWJ1dG9yc19qc29uLCBlcnJvciA9IGNscy5sb2FkX2Zyb21fZGlzaygpCisg
ICAgICAgICAgICBpZiBlcnJvcjoKKyAgICAgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKGVycm9y
KQorCisgICAgICAgIGNvbnRyaWJ1dG9ycyA9IHt9CisgICAgICAgIGZvciB2YWx1ZSBpbiBjb250
cmlidXRvcnNfanNvbjoKKyAgICAgICAgICAgIG5hbWUgPSB2YWx1ZS5nZXQoJ25hbWUnKQorICAg
ICAgICAgICAgZW1haWxzID0gdmFsdWUuZ2V0KCdlbWFpbHMnKQorICAgICAgICAgICAgZ2l0aHVi
X3VzZXJuYW1lID0gdmFsdWUuZ2V0KCdnaXRodWInKQorICAgICAgICAgICAgaWYgbmFtZSBhbmQg
ZW1haWxzOgorICAgICAgICAgICAgICAgIGJ1Z3ppbGxhX2VtYWlsID0gZW1haWxzWzBdLmxvd2Vy
KCkgICMgV2UncmUgcmVxdWlyaW5nIHRoYXQgdGhlIGZpcnN0IGVtYWlsIGlzIHRoZSBwcmltYXJ5
IGJ1Z3ppbGxhIGVtYWlsCisgICAgICAgICAgICAgICAgY29udHJpYnV0b3JzW2J1Z3ppbGxhX2Vt
YWlsXSA9IHsnbmFtZSc6IG5hbWUsICdzdGF0dXMnOiB2YWx1ZS5nZXQoJ3N0YXR1cycpfQorICAg
ICAgICAgICAgaWYgZ2l0aHViX3VzZXJuYW1lIGFuZCBuYW1lIGFuZCBlbWFpbHM6CisgICAgICAg
ICAgICAgICAgY29udHJpYnV0b3JzW2dpdGh1Yl91c2VybmFtZV0gPSBkaWN0KAorICAgICAgICAg
ICAgICAgICAgICBwcmludGFibGU9J3t9IDx7fT4nLmZvcm1hdChuYW1lLCBlbWFpbHNbMF0ubG93
ZXIoKSksCisgICAgICAgICAgICAgICAgICAgIHN0YXR1cz12YWx1ZS5nZXQoJ3N0YXR1cycpLAor
ICAgICAgICAgICAgICAgICAgICBlbWFpbD1lbWFpbHNbMF0sCisgICAgICAgICAgICAgICAgKQor
ICAgICAgICByZXR1cm4gY29udHJpYnV0b3JzLCBlcnJvcnMKKworCiBjbGFzcyBDb25maWd1cmVC
dWlsZChidWlsZHN0ZXAuQnVpbGRTdGVwLCBHaXRIdWJNaXhpbik6CiAgICAgbmFtZSA9ICdjb25m
aWd1cmUtYnVpbGQnCiAgICAgZGVzY3JpcHRpb24gPSBbJ2NvbmZpZ3VyaW5nIGJ1aWxkJ10KQEAg
LTk2NSw0NCArMTAxOSwxMCBAQCBjbGFzcyBWYWxpZGF0ZVBhdGNoKGJ1aWxkc3RlcC5CdWlsZFN0
ZXAsIEJ1Z3ppbGxhTWl4aW4pOgogY2xhc3MgVmFsaWRhdGVDb21taXRlckFuZFJldmlld2VyKGJ1
aWxkc3RlcC5CdWlsZFN0ZXApOgogICAgIG5hbWUgPSAndmFsaWRhdGUtY29tbWl0ZXItYW5kLXJl
dmlld2VyJwogICAgIGRlc2NyaXB0aW9uRG9uZSA9IFsnVmFsaWRhdGVkIGNvbW1pdGVyIGFuZCBy
ZXZpZXdlciddCi0gICAgdXJsID0gJ2h0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9X
ZWJLaXQvV2ViS2l0L21haW4vbWV0YWRhdGEvY29udHJpYnV0b3JzLmpzb24nCi0gICAgY29udHJp
YnV0b3JzID0ge30KLQotICAgIGRlZiBsb2FkX2NvbnRyaWJ1dG9yc19mcm9tX2Rpc2soc2VsZik6
Ci0gICAgICAgIGN3ZCA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmRpcm5hbWUoX19maWxlX18p
KQotICAgICAgICByZXBvX3Jvb3QgPSBvcy5wYXRoLmRpcm5hbWUob3MucGF0aC5kaXJuYW1lKG9z
LnBhdGguZGlybmFtZShjd2QpKSkKLSAgICAgICAgY29udHJpYnV0b3JzX3BhdGggPSBvcy5wYXRo
LmpvaW4ocmVwb19yb290LCAnbWV0YWRhdGEvY29udHJpYnV0b3JzLmpzb24nKQotICAgICAgICB0
cnk6Ci0gICAgICAgICAgICB3aXRoIG9wZW4oY29udHJpYnV0b3JzX3BhdGgsICdyYicpIGFzIGNv
bnRyaWJ1dG9yc19qc29uOgotICAgICAgICAgICAgICAgIHJldHVybiBqc29uLmxvYWQoY29udHJp
YnV0b3JzX2pzb24pCi0gICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKLSAgICAgICAgICAg
IHNlbGYuX2FkZFRvTG9nKCdzdGRpbycsICdGYWlsZWQgdG8gbG9hZCB7fVxuJy5mb3JtYXQoY29u
dHJpYnV0b3JzX3BhdGgpKQotICAgICAgICAgICAgcmV0dXJuIHt9Ci0KLSAgICBkZWYgbG9hZF9j
b250cmlidXRvcnNfZnJvbV9naXRodWIoc2VsZik6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAg
IHJlc3BvbnNlID0gcmVxdWVzdHMuZ2V0KHNlbGYudXJsLCB0aW1lb3V0PTYwKQotICAgICAgICAg
ICAgaWYgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgIT0gMjAwOgotICAgICAgICAgICAgICAgIHNlbGYu
X2FkZFRvTG9nKCdzdGRpbycsICdGYWlsZWQgdG8gYWNjZXNzIHt9IHdpdGggc3RhdHVzIGNvZGU6
IHt9XG4nLmZvcm1hdChzZWxmLnVybCwgcmVzcG9uc2Uuc3RhdHVzX2NvZGUpKQotICAgICAgICAg
ICAgICAgIHJldHVybiB7fQotICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmpzb24oKQotICAg
ICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Ci0gICAgICAgICAgICBzZWxmLl9hZGRUb0xvZygn
c3RkaW8nLCAnRmFpbGVkIHRvIGFjY2VzcyB7dXJsfVxuJy5mb3JtYXQodXJsPXNlbGYudXJsKSkK
LSAgICAgICAgICAgIHJldHVybiB7fQogCi0gICAgZGVmIGxvYWRfY29udHJpYnV0b3JzKHNlbGYp
OgotICAgICAgICBjb250cmlidXRvcnNfanNvbiA9IHNlbGYubG9hZF9jb250cmlidXRvcnNfZnJv
bV9naXRodWIoKQotICAgICAgICBpZiBub3QgY29udHJpYnV0b3JzX2pzb246Ci0gICAgICAgICAg
ICBjb250cmlidXRvcnNfanNvbiA9IHNlbGYubG9hZF9jb250cmlidXRvcnNfZnJvbV9kaXNrKCkK
LQotICAgICAgICBjb250cmlidXRvcnMgPSB7fQotICAgICAgICBmb3IgdmFsdWUgaW4gY29udHJp
YnV0b3JzX2pzb246Ci0gICAgICAgICAgICBuYW1lID0gdmFsdWUuZ2V0KCduYW1lJykKLSAgICAg
ICAgICAgIGVtYWlscyA9IHZhbHVlLmdldCgnZW1haWxzJykKLSAgICAgICAgICAgIGlmIG5hbWUg
YW5kIGVtYWlsczoKLSAgICAgICAgICAgICAgICBidWd6aWxsYV9lbWFpbCA9IGVtYWlsc1swXS5s
b3dlcigpICAjIFdlJ3JlIHJlcXVpcmluZyB0aGF0IHRoZSBmaXJzdCBlbWFpbCBpcyB0aGUgcHJp
bWFyeSBidWd6aWxsYSBlbWFpbAotICAgICAgICAgICAgICAgIGNvbnRyaWJ1dG9yc1tidWd6aWxs
YV9lbWFpbF0gPSB7J25hbWUnOiBuYW1lLCAnc3RhdHVzJzogdmFsdWUuZ2V0KCdzdGF0dXMnKX0K
LSAgICAgICAgcmV0dXJuIGNvbnRyaWJ1dG9ycworICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJn
cywgKiprd2FyZ3MpOgorICAgICAgICBzdXBlcihWYWxpZGF0ZUNvbW1pdGVyQW5kUmV2aWV3ZXIs
IHNlbGYpLl9faW5pdF9fKCphcmdzLCAqKmt3YXJncykKKyAgICAgICAgc2VsZi5jb250cmlidXRv
cnMgPSB7fQogCiAgICAgQGRlZmVyLmlubGluZUNhbGxiYWNrcwogICAgIGRlZiBfYWRkVG9Mb2co
c2VsZiwgbG9nTmFtZSwgbWVzc2FnZSk6CkBAIC0xMDE5LDcgKzEwMzksNyBAQCBjbGFzcyBWYWxp
ZGF0ZUNvbW1pdGVyQW5kUmV2aWV3ZXIoYnVpbGRzdGVwLkJ1aWxkU3RlcCk6CiAKICAgICBkZWYg
ZmFpbF9idWlsZChzZWxmLCBlbWFpbCwgc3RhdHVzKToKICAgICAgICAgcmVhc29uID0gJ3t9IGRv
ZXMgbm90IGhhdmUge30gcGVybWlzc2lvbnMnLmZvcm1hdChlbWFpbCwgc3RhdHVzKQotICAgICAg
ICBjb21tZW50ID0gJ3t9IGRvZXMgbm90IGhhdmUge30gcGVybWlzc2lvbnMgYWNjb3JkaW5nIHRv
IHt9LicuZm9ybWF0KGVtYWlsLCBzdGF0dXMsIHNlbGYudXJsKQorICAgICAgICBjb21tZW50ID0g
J3t9IGRvZXMgbm90IGhhdmUge30gcGVybWlzc2lvbnMgYWNjb3JkaW5nIHRvIHt9LicuZm9ybWF0
KGVtYWlsLCBzdGF0dXMsIENvbnRyaWJ1dG9ycy51cmwpCiAgICAgICAgIGNvbW1lbnQgKz0gJ1xu
XG5SZWplY3RpbmcgYXR0YWNobWVudCB7fSBmcm9tIGNvbW1pdCBxdWV1ZS4nLmZvcm1hdChzZWxm
LmdldFByb3BlcnR5KCdwYXRjaF9pZCcsICcnKSkKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgn
YnVnemlsbGFfY29tbWVudF90ZXh0JywgY29tbWVudCkKIApAQCAtMTA0NCw3ICsxMDY0LDExIEBA
IGNsYXNzIFZhbGlkYXRlQ29tbWl0ZXJBbmRSZXZpZXdlcihidWlsZHN0ZXAuQnVpbGRTdGVwKToK
ICAgICAgICAgcmV0dXJuIGNvbnRyaWJ1dG9yLmdldCgnbmFtZScpCiAKICAgICBkZWYgc3RhcnQo
c2VsZik6Ci0gICAgICAgIHNlbGYuY29udHJpYnV0b3JzID0gc2VsZi5sb2FkX2NvbnRyaWJ1dG9y
cygpCisgICAgICAgIHNlbGYuY29udHJpYnV0b3JzLCBlcnJvcnMgPSBDb250cmlidXRvcnMubG9h
ZCgpCisgICAgICAgIGZvciBlcnJvciBpbiBlcnJvcnM6CisgICAgICAgICAgICBwcmludChlcnJv
cikKKyAgICAgICAgICAgIHNlbGYuX2FkZFRvTG9nKCdzdGRpbycsIGVycm9yKQorCiAgICAgICAg
IGlmIG5vdCBzZWxmLmNvbnRyaWJ1dG9yczoKICAgICAgICAgICAgIHNlbGYuZmluaXNoZWQoRkFJ
TFVSRSkKICAgICAgICAgICAgIHNlbGYuZGVzY3JpcHRpb25Eb25lID0gJ0ZhaWxlZCB0byBnZXQg
Y29udHJpYnV0b3JzIGluZm9ybWF0aW9uJwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ0lTdXBwb3J0L2V3
cy1idWlsZC9zdGVwc191bml0dGVzdC5weSBiL1Rvb2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQvc3Rl
cHNfdW5pdHRlc3QucHkKaW5kZXggMTI5MDNlMmExNGE0MmJiY2ZmODE5YzE5ZTJlNGVjY2E5YWJh
NWYwMi4uZmFmY2RjOTM3NTVmMzgzZDA5NDYzYTJlYjg2NWU4ZTBjMTYyYjc2NSAxMDA2NDQKLS0t
IGEvVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWlsZC9zdGVwc191bml0dGVzdC5weQorKysgYi9Ub29s
cy9DSVN1cHBvcnQvZXdzLWJ1aWxkL3N0ZXBzX3VuaXR0ZXN0LnB5CkBAIC00NCw3ICs0NCw3IEBA
IGZyb20gc3RlcHMgaW1wb3J0IChBbmFseXplQVBJVGVzdHNSZXN1bHRzLCBBbmFseXplQ29tcGls
ZVdlYktpdFJlc3VsdHMsIEFuYWx5emVKCiAgICAgICAgICAgICAgICAgICAgQW5hbHl6ZUxheW91
dFRlc3RzUmVzdWx0cywgQXBwbHlQYXRjaCwgQXBwbHlXYXRjaExpc3QsIEFyY2hpdmVCdWlsdFBy
b2R1Y3QsIEFyY2hpdmVUZXN0UmVzdWx0cywKICAgICAgICAgICAgICAgICAgICBDaGVja091dFNv
dXJjZSwgQ2hlY2tPdXRTcGVjaWZpY1JldmlzaW9uLCBDaGVja1BhdGNoUmVsZXZhbmNlLCBDaGVj
a1BhdGNoU3RhdHVzT25FV1NRdWV1ZXMsIENoZWNrU3R5bGUsCiAgICAgICAgICAgICAgICAgICAg
Q2xlYW5CdWlsZCwgQ2xlYW5VcEdpdEluZGV4TG9jaywgQ2xlYW5HaXRSZXBvLCBDbGVhbldvcmtp
bmdEaXJlY3RvcnksIENvbXBpbGVKU0MsIENvbXBpbGVKU0NXaXRob3V0UGF0Y2gsCi0gICAgICAg
ICAgICAgICAgICAgQ29tcGlsZVdlYktpdCwgQ29tcGlsZVdlYktpdFdpdGhvdXRQYXRjaCwgQ29u
ZmlndXJlQnVpbGQsIENyZWF0ZUxvY2FsR0lUQ29tbWl0LAorICAgICAgICAgICAgICAgICAgIENv
bXBpbGVXZWJLaXQsIENvbXBpbGVXZWJLaXRXaXRob3V0UGF0Y2gsIENvbmZpZ3VyZUJ1aWxkLCBD
b25maWd1cmVCdWlsZCwgQ29udHJpYnV0b3JzLCBDcmVhdGVMb2NhbEdJVENvbW1pdCwKICAgICAg
ICAgICAgICAgICAgICBEb3dubG9hZEJ1aWx0UHJvZHVjdCwgRG93bmxvYWRCdWlsdFByb2R1Y3RG
cm9tTWFzdGVyLCBFV1NfQlVJTERfSE9TVE5BTUUsIEV4dHJhY3RCdWlsdFByb2R1Y3QsIEV4dHJh
Y3RUZXN0UmVzdWx0cywKICAgICAgICAgICAgICAgICAgICBGZXRjaEJyYW5jaGVzLCBGaW5kTW9k
aWZpZWRDaGFuZ2VMb2dzLCBGaW5kTW9kaWZpZWRMYXlvdXRUZXN0cywgR2l0UmVzZXRIYXJkLAog
ICAgICAgICAgICAgICAgICAgIEluc3RhbGxCdWlsdFByb2R1Y3QsIEluc3RhbGxHdGtEZXBlbmRl
bmNpZXMsIEluc3RhbGxXcGVEZXBlbmRlbmNpZXMsCkBAIC00NTg1LDEwICs0NTg1LDEwIEBAIGNs
YXNzIFRlc3RWYWxpZGF0ZUNvbW1pdGVyQW5kUmV2aWV3ZXIoQnVpbGRTdGVwTWl4aW5BZGRpdGlv
bnMsIHVuaXR0ZXN0LlRlc3RDYXNlCiAgICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgICBzZWxm
LmxvbmdNZXNzYWdlID0gVHJ1ZQogCi0gICAgICAgIGRlZiBtb2NrX2xvYWRfY29udHJpYnV0b3Jz
KGNscywgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgZGVmIG1vY2tfbG9hZF9jb250cmlidXRv
cnMoKmFyZ3MsICoqa3dhcmdzKToKICAgICAgICAgICAgIHJldHVybiB7J2Fha2FzaF9qYWluQGFw
cGxlLmNvbSc6IHsnbmFtZSc6ICdBYWthc2ggSmFpbicsICdzdGF0dXMnOiAncmV2aWV3ZXInfSwK
LSAgICAgICAgICAgICAgICAgICAgJ2NvbW1pdHRlckB3ZWJraXQub3JnJzogeyduYW1lJzogJ1dl
YktpdCBDb21taXR0ZXInLCAnc3RhdHVzJzogJ2NvbW1pdHRlcid9fQotICAgICAgICBWYWxpZGF0
ZUNvbW1pdGVyQW5kUmV2aWV3ZXIubG9hZF9jb250cmlidXRvcnMgPSBtb2NrX2xvYWRfY29udHJp
YnV0b3JzCisgICAgICAgICAgICAgICAgICAgICdjb21taXR0ZXJAd2Via2l0Lm9yZyc6IHsnbmFt
ZSc6ICdXZWJLaXQgQ29tbWl0dGVyJywgJ3N0YXR1cyc6ICdjb21taXR0ZXInfX0sIFtdCisgICAg
ICAgIENvbnRyaWJ1dG9ycy5sb2FkID0gbW9ja19sb2FkX2NvbnRyaWJ1dG9ycwogICAgICAgICBy
ZXR1cm4gc2VsZi5zZXRVcEJ1aWxkU3RlcCgpCiAKICAgICBkZWYgdGVhckRvd24oc2VsZik6CkBA
IC00NjE2LDcgKzQ2MTYsNyBAQCBjbGFzcyBUZXN0VmFsaWRhdGVDb21taXRlckFuZFJldmlld2Vy
KEJ1aWxkU3RlcE1peGluQWRkaXRpb25zLCB1bml0dGVzdC5UZXN0Q2FzZQogICAgICAgICBzZWxm
LnNldHVwU3RlcChWYWxpZGF0ZUNvbW1pdGVyQW5kUmV2aWV3ZXIoKSkKICAgICAgICAgc2VsZi5z
ZXRQcm9wZXJ0eSgncGF0Y2hfaWQnLCAnMTIzNCcpCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHko
J3BhdGNoX2NvbW1pdHRlcicsICdhYmNAd2Via2l0Lm9yZycpCi0gICAgICAgIFZhbGlkYXRlQ29t
bWl0ZXJBbmRSZXZpZXdlci5sb2FkX2NvbnRyaWJ1dG9ycyA9IGxhbWJkYSB4OiB7fQorICAgICAg
ICBDb250cmlidXRvcnMubG9hZCA9IGxhbWJkYTogKHt9LCBbXSkKICAgICAgICAgc2VsZi5leHBl
Y3RIaWRkZW4oRmFsc2UpCiAgICAgICAgIHNlbGYuZXhwZWN0T3V0Y29tZShyZXN1bHQ9RkFJTFVS
RSwgc3RhdGVfc3RyaW5nPSdGYWlsZWQgdG8gZ2V0IGNvbnRyaWJ1dG9ycyBpbmZvcm1hdGlvbicp
CiAgICAgICAgIHJldHVybiBzZWxmLnJ1blN0ZXAoKQpAQCAtNDYzOSw4ICs0NjM5LDcgQEAgY2xh
c3MgVGVzdFZhbGlkYXRlQ29tbWl0ZXJBbmRSZXZpZXdlcihCdWlsZFN0ZXBNaXhpbkFkZGl0aW9u
cywgdW5pdHRlc3QuVGVzdENhc2UKICAgICAgICAgcmV0dXJuIHNlbGYucnVuU3RlcCgpCiAKICAg
ICBkZWYgdGVzdF9sb2FkX2NvbnRyaWJ1dG9yc19mcm9tX2Rpc2soc2VsZik6Ci0gICAgICAgIFZh
bGlkYXRlQ29tbWl0ZXJBbmRSZXZpZXdlci5fYWRkVG9Mb2cgPSBsYW1iZGEgY2xzLCBsb2d0eXBl
LCBsb2c6IHN5cy5zdGRvdXQud3JpdGUobG9nKQotICAgICAgICBjb250cmlidXRvcnMgPSBmaWx0
ZXIobGFtYmRhIGVsZW1lbnQ6IGVsZW1lbnQuZ2V0KCduYW1lJykgPT0gJ0Fha2FzaCBKYWluJywg
VmFsaWRhdGVDb21taXRlckFuZFJldmlld2VyKCkubG9hZF9jb250cmlidXRvcnNfZnJvbV9kaXNr
KCkpCisgICAgICAgIGNvbnRyaWJ1dG9ycyA9IGZpbHRlcihsYW1iZGEgZWxlbWVudDogZWxlbWVu
dC5nZXQoJ25hbWUnKSA9PSAnQWFrYXNoIEphaW4nLCBDb250cmlidXRvcnMoKS5sb2FkX2Zyb21f
ZGlzaygpWzBdKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3QoY29udHJpYnV0b3JzKVsw
XVsnZW1haWxzJ11bMF0sICdhYWthc2hfamFpbkBhcHBsZS5jb20nKQogCiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448990</attachid>
            <date>2022-01-12 13:23:08 -0800</date>
            <delta_ts>2022-01-18 09:37:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235074-20220112132307.patch</filename>
            <type>text/plain</type>
            <size>10343</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3OTQ5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzE5NjcxMmNjNmQxYTFjMmQ4M2NkZmFjNmI5MThmYjY1
ODI3ZmM4Ny4uYmYxZDY3ZWQwYTdmMGYwYjBlZDE1MmM5MmEzNWQ5NDhiMTBiNGZhZiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4
IEBACisyMDIyLTAxLTEyICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbRVdTXSBMb2FkIGNvbnRyaWJ1dG9ycyBmcm9tIHN0YW5kLWFsb25lIGNsYXNzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzUwNzQKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg3NDA2MTU3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ0lTdXBwb3J0L2V3cy1idWlsZC9zdGVwcy5weToK
KyAgICAgICAgKENvbnRyaWJ1dG9ycyk6IE1vdmVkIGZyb20gVmFsaWRhdGVDb21taXRlckFuZFJl
dmlld2VyLgorICAgICAgICAoVmFsaWRhdGVDb21taXRlckFuZFJldmlld2VyLmxvYWRfY29udHJp
YnV0b3JzX2Zyb21fZGlzayk6IE1vdmVkIHRvIENvbnRyaWJ1dG9ycy4KKyAgICAgICAgKFZhbGlk
YXRlQ29tbWl0ZXJBbmRSZXZpZXdlci5sb2FkX2NvbnRyaWJ1dG9yc19mcm9tX2dpdGh1Yik6IERp
dHRvLgorICAgICAgICAoVmFsaWRhdGVDb21taXRlckFuZFJldmlld2VyLmxvYWRfY29udHJpYnV0
b3JzKTogRGl0dG8uCisgICAgICAgICogQ0lTdXBwb3J0L2V3cy1idWlsZC9zdGVwc191bml0dGVz
dC5weToKKwogMjAyMi0wMS0xMiAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+
CiAKICAgICAgICAgW0VXU10gQWNjZXB0IEdpdEh1YiBob29rcyAoUGFydCAxKQpkaWZmIC0tZ2l0
IGEvVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWlsZC9zdGVwcy5weSBiL1Rvb2xzL0NJU3VwcG9ydC9l
d3MtYnVpbGQvc3RlcHMucHkKaW5kZXggMmJiMDM5ODA3N2NkMmYxZjM0ZTdkMjAyMTkwYjc3YTBm
MDczZmVkYy4uZDRjYzU2MDE1MDBhM2ZhYTJlNTllZDA0NjQ5ZGIzYzMwMTkxOGJmMiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWlsZC9zdGVwcy5weQorKysgYi9Ub29scy9DSVN1
cHBvcnQvZXdzLWJ1aWxkL3N0ZXBzLnB5CkBAIC04OSw3ICs4OSw2MSBAQCBjbGFzcyBHaXRIdWIo
b2JqZWN0KToKICAgICAgICAgcmV0dXJuICd7fXB1bGwve30nLmZvcm1hdChyZXBvc2l0b3J5X3Vy
bCwgcHJfbnVtYmVyKQogCiAKLWNsYXNzIENvbmZpZ3VyZUJ1aWxkKGJ1aWxkc3RlcC5CdWlsZFN0
ZXApOgorY2xhc3MgQ29udHJpYnV0b3JzKG9iamVjdCk6CisgICAgdXJsID0gJ2h0dHBzOi8vcmF3
LmdpdGh1YnVzZXJjb250ZW50LmNvbS9XZWJLaXQvV2ViS2l0L21haW4vbWV0YWRhdGEvY29udHJp
YnV0b3JzLmpzb24nCisgICAgY29udHJpYnV0b3JzID0ge30KKworICAgIEBjbGFzc21ldGhvZAor
ICAgIGRlZiBsb2FkX2Zyb21fZGlzayhjbHMpOgorICAgICAgICBjd2QgPSBvcy5wYXRoLmFic3Bh
dGgob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSkKKyAgICAgICAgcmVwb19yb290ID0gb3MucGF0
aC5kaXJuYW1lKG9zLnBhdGguZGlybmFtZShvcy5wYXRoLmRpcm5hbWUoY3dkKSkpCisgICAgICAg
IGNvbnRyaWJ1dG9yc19wYXRoID0gb3MucGF0aC5qb2luKHJlcG9fcm9vdCwgJ21ldGFkYXRhL2Nv
bnRyaWJ1dG9ycy5qc29uJykKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgd2l0aCBvcGVuKGNv
bnRyaWJ1dG9yc19wYXRoLCAncmInKSBhcyBjb250cmlidXRvcnNfanNvbjoKKyAgICAgICAgICAg
ICAgICByZXR1cm4ganNvbi5sb2FkKGNvbnRyaWJ1dG9yc19qc29uKSwgTm9uZQorICAgICAgICBl
eGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICByZXR1cm4ge30sICdGYWlsZWQgdG8g
bG9hZCB7fVxuJy5mb3JtYXQoY29udHJpYnV0b3JzX3BhdGgpCisKKyAgICBAY2xhc3NtZXRob2QK
KyAgICBkZWYgbG9hZF9mcm9tX2dpdGh1YihjbHMpOgorICAgICAgICB0cnk6CisgICAgICAgICAg
ICByZXNwb25zZSA9IHJlcXVlc3RzLmdldChjbHMudXJsLCB0aW1lb3V0PTYwKQorICAgICAgICAg
ICAgaWYgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgIT0gMjAwOgorICAgICAgICAgICAgICAgIHJldHVy
biB7fSwgJ0ZhaWxlZCB0byBhY2Nlc3Mge30gd2l0aCBzdGF0dXMgY29kZToge31cbicuZm9ybWF0
KGNscy51cmwsIHJlc3BvbnNlLnN0YXR1c19jb2RlKQorICAgICAgICAgICAgcmV0dXJuIHJlc3Bv
bnNlLmpzb24oKSwgTm9uZQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAg
ICAgICByZXR1cm4ge30sICdGYWlsZWQgdG8gYWNjZXNzIHt1cmx9XG4nLmZvcm1hdCh1cmw9Y2xz
LnVybCkKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBsb2FkKGNscyk6CisgICAgICAgIGVy
cm9ycyA9IFtdCisgICAgICAgIGNvbnRyaWJ1dG9yc19qc29uLCBlcnJvciA9IGNscy5sb2FkX2Zy
b21fZ2l0aHViKCkKKyAgICAgICAgaWYgZXJyb3I6CisgICAgICAgICAgICBlcnJvcnMuYXBwZW5k
KGVycm9yKQorCisgICAgICAgIGlmIG5vdCBjb250cmlidXRvcnNfanNvbjoKKyAgICAgICAgICAg
IGNvbnRyaWJ1dG9yc19qc29uLCBlcnJvciA9IGNscy5sb2FkX2Zyb21fZGlzaygpCisgICAgICAg
ICAgICBpZiBlcnJvcjoKKyAgICAgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKGVycm9yKQorCisg
ICAgICAgIGNvbnRyaWJ1dG9ycyA9IHt9CisgICAgICAgIGZvciB2YWx1ZSBpbiBjb250cmlidXRv
cnNfanNvbjoKKyAgICAgICAgICAgIG5hbWUgPSB2YWx1ZS5nZXQoJ25hbWUnKQorICAgICAgICAg
ICAgZW1haWxzID0gdmFsdWUuZ2V0KCdlbWFpbHMnKQorICAgICAgICAgICAgZ2l0aHViX3VzZXJu
YW1lID0gdmFsdWUuZ2V0KCdnaXRodWInKQorICAgICAgICAgICAgaWYgbmFtZSBhbmQgZW1haWxz
OgorICAgICAgICAgICAgICAgIGJ1Z3ppbGxhX2VtYWlsID0gZW1haWxzWzBdLmxvd2VyKCkgICMg
V2UncmUgcmVxdWlyaW5nIHRoYXQgdGhlIGZpcnN0IGVtYWlsIGlzIHRoZSBwcmltYXJ5IGJ1Z3pp
bGxhIGVtYWlsCisgICAgICAgICAgICAgICAgY29udHJpYnV0b3JzW2J1Z3ppbGxhX2VtYWlsXSA9
IHsnbmFtZSc6IG5hbWUsICdzdGF0dXMnOiB2YWx1ZS5nZXQoJ3N0YXR1cycpfQorICAgICAgICAg
ICAgaWYgZ2l0aHViX3VzZXJuYW1lIGFuZCBuYW1lIGFuZCBlbWFpbHM6CisgICAgICAgICAgICAg
ICAgY29udHJpYnV0b3JzW2dpdGh1Yl91c2VybmFtZV0gPSBkaWN0KAorICAgICAgICAgICAgICAg
ICAgICBwcmludGFibGU9J3t9IDx7fT4nLmZvcm1hdChuYW1lLCBlbWFpbHNbMF0ubG93ZXIoKSks
CisgICAgICAgICAgICAgICAgICAgIHN0YXR1cz12YWx1ZS5nZXQoJ3N0YXR1cycpLAorICAgICAg
ICAgICAgICAgICAgICBlbWFpbD1lbWFpbHNbMF0sCisgICAgICAgICAgICAgICAgKQorICAgICAg
ICByZXR1cm4gY29udHJpYnV0b3JzLCBlcnJvcnMKKworCitjbGFzcyBDb25maWd1cmVCdWlsZChi
dWlsZHN0ZXAuQnVpbGRTdGVwLCBHaXRIdWJNaXhpbik6CiAgICAgbmFtZSA9ICdjb25maWd1cmUt
YnVpbGQnCiAgICAgZGVzY3JpcHRpb24gPSBbJ2NvbmZpZ3VyaW5nIGJ1aWxkJ10KICAgICBkZXNj
cmlwdGlvbkRvbmUgPSBbJ0NvbmZpZ3VyZWQgYnVpbGQnXQpAQCAtOTU4LDQ0ICsxMDEyLDEwIEBA
IGNsYXNzIFZhbGlkYXRlUGF0Y2goYnVpbGRzdGVwLkJ1aWxkU3RlcCwgQnVnemlsbGFNaXhpbik6
CiBjbGFzcyBWYWxpZGF0ZUNvbW1pdGVyQW5kUmV2aWV3ZXIoYnVpbGRzdGVwLkJ1aWxkU3RlcCk6
CiAgICAgbmFtZSA9ICd2YWxpZGF0ZS1jb21taXRlci1hbmQtcmV2aWV3ZXInCiAgICAgZGVzY3Jp
cHRpb25Eb25lID0gWydWYWxpZGF0ZWQgY29tbWl0ZXIgYW5kIHJldmlld2VyJ10KLSAgICB1cmwg
PSAnaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL1dlYktpdC9XZWJLaXQvbWFpbi9t
ZXRhZGF0YS9jb250cmlidXRvcnMuanNvbicKLSAgICBjb250cmlidXRvcnMgPSB7fQotCi0gICAg
ZGVmIGxvYWRfY29udHJpYnV0b3JzX2Zyb21fZGlzayhzZWxmKToKLSAgICAgICAgY3dkID0gb3Mu
cGF0aC5hYnNwYXRoKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykpCi0gICAgICAgIHJlcG9fcm9v
dCA9IG9zLnBhdGguZGlybmFtZShvcy5wYXRoLmRpcm5hbWUob3MucGF0aC5kaXJuYW1lKGN3ZCkp
KQotICAgICAgICBjb250cmlidXRvcnNfcGF0aCA9IG9zLnBhdGguam9pbihyZXBvX3Jvb3QsICdt
ZXRhZGF0YS9jb250cmlidXRvcnMuanNvbicpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHdp
dGggb3Blbihjb250cmlidXRvcnNfcGF0aCwgJ3JiJykgYXMgY29udHJpYnV0b3JzX2pzb246Ci0g
ICAgICAgICAgICAgICAgcmV0dXJuIGpzb24ubG9hZChjb250cmlidXRvcnNfanNvbikKLSAgICAg
ICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgotICAgICAgICAgICAgc2VsZi5fYWRkVG9Mb2coJ3N0
ZGlvJywgJ0ZhaWxlZCB0byBsb2FkIHt9XG4nLmZvcm1hdChjb250cmlidXRvcnNfcGF0aCkpCi0g
ICAgICAgICAgICByZXR1cm4ge30KLQotICAgIGRlZiBsb2FkX2NvbnRyaWJ1dG9yc19mcm9tX2dp
dGh1YihzZWxmKToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgcmVzcG9uc2UgPSByZXF1ZXN0
cy5nZXQoc2VsZi51cmwsIHRpbWVvdXQ9NjApCi0gICAgICAgICAgICBpZiByZXNwb25zZS5zdGF0
dXNfY29kZSAhPSAyMDA6Ci0gICAgICAgICAgICAgICAgc2VsZi5fYWRkVG9Mb2coJ3N0ZGlvJywg
J0ZhaWxlZCB0byBhY2Nlc3Mge30gd2l0aCBzdGF0dXMgY29kZToge31cbicuZm9ybWF0KHNlbGYu
dXJsLCByZXNwb25zZS5zdGF0dXNfY29kZSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHt9Ci0g
ICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UuanNvbigpCi0gICAgICAgIGV4Y2VwdCBFeGNlcHRp
b24gYXMgZToKLSAgICAgICAgICAgIHNlbGYuX2FkZFRvTG9nKCdzdGRpbycsICdGYWlsZWQgdG8g
YWNjZXNzIHt1cmx9XG4nLmZvcm1hdCh1cmw9c2VsZi51cmwpKQotICAgICAgICAgICAgcmV0dXJu
IHt9CiAKLSAgICBkZWYgbG9hZF9jb250cmlidXRvcnMoc2VsZik6Ci0gICAgICAgIGNvbnRyaWJ1
dG9yc19qc29uID0gc2VsZi5sb2FkX2NvbnRyaWJ1dG9yc19mcm9tX2dpdGh1YigpCi0gICAgICAg
IGlmIG5vdCBjb250cmlidXRvcnNfanNvbjoKLSAgICAgICAgICAgIGNvbnRyaWJ1dG9yc19qc29u
ID0gc2VsZi5sb2FkX2NvbnRyaWJ1dG9yc19mcm9tX2Rpc2soKQotCi0gICAgICAgIGNvbnRyaWJ1
dG9ycyA9IHt9Ci0gICAgICAgIGZvciB2YWx1ZSBpbiBjb250cmlidXRvcnNfanNvbjoKLSAgICAg
ICAgICAgIG5hbWUgPSB2YWx1ZS5nZXQoJ25hbWUnKQotICAgICAgICAgICAgZW1haWxzID0gdmFs
dWUuZ2V0KCdlbWFpbHMnKQotICAgICAgICAgICAgaWYgbmFtZSBhbmQgZW1haWxzOgotICAgICAg
ICAgICAgICAgIGJ1Z3ppbGxhX2VtYWlsID0gZW1haWxzWzBdLmxvd2VyKCkgICMgV2UncmUgcmVx
dWlyaW5nIHRoYXQgdGhlIGZpcnN0IGVtYWlsIGlzIHRoZSBwcmltYXJ5IGJ1Z3ppbGxhIGVtYWls
Ci0gICAgICAgICAgICAgICAgY29udHJpYnV0b3JzW2J1Z3ppbGxhX2VtYWlsXSA9IHsnbmFtZSc6
IG5hbWUsICdzdGF0dXMnOiB2YWx1ZS5nZXQoJ3N0YXR1cycpfQotICAgICAgICByZXR1cm4gY29u
dHJpYnV0b3JzCisgICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAg
ICAgIHN1cGVyKFZhbGlkYXRlQ29tbWl0ZXJBbmRSZXZpZXdlciwgc2VsZikuX19pbml0X18oKmFy
Z3MsICoqa3dhcmdzKQorICAgICAgICBzZWxmLmNvbnRyaWJ1dG9ycyA9IHt9CiAKICAgICBAZGVm
ZXIuaW5saW5lQ2FsbGJhY2tzCiAgICAgZGVmIF9hZGRUb0xvZyhzZWxmLCBsb2dOYW1lLCBtZXNz
YWdlKToKQEAgLTEwMTIsNyArMTAzMiw3IEBAIGNsYXNzIFZhbGlkYXRlQ29tbWl0ZXJBbmRSZXZp
ZXdlcihidWlsZHN0ZXAuQnVpbGRTdGVwKToKIAogICAgIGRlZiBmYWlsX2J1aWxkKHNlbGYsIGVt
YWlsLCBzdGF0dXMpOgogICAgICAgICByZWFzb24gPSAne30gZG9lcyBub3QgaGF2ZSB7fSBwZXJt
aXNzaW9ucycuZm9ybWF0KGVtYWlsLCBzdGF0dXMpCi0gICAgICAgIGNvbW1lbnQgPSAne30gZG9l
cyBub3QgaGF2ZSB7fSBwZXJtaXNzaW9ucyBhY2NvcmRpbmcgdG8ge30uJy5mb3JtYXQoZW1haWws
IHN0YXR1cywgc2VsZi51cmwpCisgICAgICAgIGNvbW1lbnQgPSAne30gZG9lcyBub3QgaGF2ZSB7
fSBwZXJtaXNzaW9ucyBhY2NvcmRpbmcgdG8ge30uJy5mb3JtYXQoZW1haWwsIHN0YXR1cywgQ29u
dHJpYnV0b3JzLnVybCkKICAgICAgICAgY29tbWVudCArPSAnXG5cblJlamVjdGluZyBhdHRhY2ht
ZW50IHt9IGZyb20gY29tbWl0IHF1ZXVlLicuZm9ybWF0KHNlbGYuZ2V0UHJvcGVydHkoJ3BhdGNo
X2lkJywgJycpKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdidWd6aWxsYV9jb21tZW50X3Rl
eHQnLCBjb21tZW50KQogCkBAIC0xMDM3LDcgKzEwNTcsMTEgQEAgY2xhc3MgVmFsaWRhdGVDb21t
aXRlckFuZFJldmlld2VyKGJ1aWxkc3RlcC5CdWlsZFN0ZXApOgogICAgICAgICByZXR1cm4gY29u
dHJpYnV0b3IuZ2V0KCduYW1lJykKIAogICAgIGRlZiBzdGFydChzZWxmKToKLSAgICAgICAgc2Vs
Zi5jb250cmlidXRvcnMgPSBzZWxmLmxvYWRfY29udHJpYnV0b3JzKCkKKyAgICAgICAgc2VsZi5j
b250cmlidXRvcnMsIGVycm9ycyA9IENvbnRyaWJ1dG9ycy5sb2FkKCkKKyAgICAgICAgZm9yIGVy
cm9yIGluIGVycm9yczoKKyAgICAgICAgICAgIHByaW50KGVycm9yKQorICAgICAgICAgICAgc2Vs
Zi5fYWRkVG9Mb2coJ3N0ZGlvJywgZXJyb3IpCisKICAgICAgICAgaWYgbm90IHNlbGYuY29udHJp
YnV0b3JzOgogICAgICAgICAgICAgc2VsZi5maW5pc2hlZChGQUlMVVJFKQogICAgICAgICAgICAg
c2VsZi5kZXNjcmlwdGlvbkRvbmUgPSAnRmFpbGVkIHRvIGdldCBjb250cmlidXRvcnMgaW5mb3Jt
YXRpb24nCmRpZmYgLS1naXQgYS9Ub29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL3N0ZXBzX3VuaXR0
ZXN0LnB5IGIvVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWlsZC9zdGVwc191bml0dGVzdC5weQppbmRl
eCAxMjkwM2UyYTE0YTQyYmJjZmY4MTljMTllMmU0ZWNjYTlhYmE1ZjAyLi5mYWZjZGM5Mzc1NWYz
ODNkMDk0NjNhMmViODY1ZThlMGMxNjJiNzY1IDEwMDY0NAotLS0gYS9Ub29scy9DSVN1cHBvcnQv
ZXdzLWJ1aWxkL3N0ZXBzX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL0NJU3VwcG9ydC9ld3MtYnVp
bGQvc3RlcHNfdW5pdHRlc3QucHkKQEAgLTQ0LDcgKzQ0LDcgQEAgZnJvbSBzdGVwcyBpbXBvcnQg
KEFuYWx5emVBUElUZXN0c1Jlc3VsdHMsIEFuYWx5emVDb21waWxlV2ViS2l0UmVzdWx0cywgQW5h
bHl6ZUoKICAgICAgICAgICAgICAgICAgICBBbmFseXplTGF5b3V0VGVzdHNSZXN1bHRzLCBBcHBs
eVBhdGNoLCBBcHBseVdhdGNoTGlzdCwgQXJjaGl2ZUJ1aWx0UHJvZHVjdCwgQXJjaGl2ZVRlc3RS
ZXN1bHRzLAogICAgICAgICAgICAgICAgICAgIENoZWNrT3V0U291cmNlLCBDaGVja091dFNwZWNp
ZmljUmV2aXNpb24sIENoZWNrUGF0Y2hSZWxldmFuY2UsIENoZWNrUGF0Y2hTdGF0dXNPbkVXU1F1
ZXVlcywgQ2hlY2tTdHlsZSwKICAgICAgICAgICAgICAgICAgICBDbGVhbkJ1aWxkLCBDbGVhblVw
R2l0SW5kZXhMb2NrLCBDbGVhbkdpdFJlcG8sIENsZWFuV29ya2luZ0RpcmVjdG9yeSwgQ29tcGls
ZUpTQywgQ29tcGlsZUpTQ1dpdGhvdXRQYXRjaCwKLSAgICAgICAgICAgICAgICAgICBDb21waWxl
V2ViS2l0LCBDb21waWxlV2ViS2l0V2l0aG91dFBhdGNoLCBDb25maWd1cmVCdWlsZCwgQ3JlYXRl
TG9jYWxHSVRDb21taXQsCisgICAgICAgICAgICAgICAgICAgQ29tcGlsZVdlYktpdCwgQ29tcGls
ZVdlYktpdFdpdGhvdXRQYXRjaCwgQ29uZmlndXJlQnVpbGQsIENvbmZpZ3VyZUJ1aWxkLCBDb250
cmlidXRvcnMsIENyZWF0ZUxvY2FsR0lUQ29tbWl0LAogICAgICAgICAgICAgICAgICAgIERvd25s
b2FkQnVpbHRQcm9kdWN0LCBEb3dubG9hZEJ1aWx0UHJvZHVjdEZyb21NYXN0ZXIsIEVXU19CVUlM
RF9IT1NUTkFNRSwgRXh0cmFjdEJ1aWx0UHJvZHVjdCwgRXh0cmFjdFRlc3RSZXN1bHRzLAogICAg
ICAgICAgICAgICAgICAgIEZldGNoQnJhbmNoZXMsIEZpbmRNb2RpZmllZENoYW5nZUxvZ3MsIEZp
bmRNb2RpZmllZExheW91dFRlc3RzLCBHaXRSZXNldEhhcmQsCiAgICAgICAgICAgICAgICAgICAg
SW5zdGFsbEJ1aWx0UHJvZHVjdCwgSW5zdGFsbEd0a0RlcGVuZGVuY2llcywgSW5zdGFsbFdwZURl
cGVuZGVuY2llcywKQEAgLTQ1ODUsMTAgKzQ1ODUsMTAgQEAgY2xhc3MgVGVzdFZhbGlkYXRlQ29t
bWl0ZXJBbmRSZXZpZXdlcihCdWlsZFN0ZXBNaXhpbkFkZGl0aW9ucywgdW5pdHRlc3QuVGVzdENh
c2UKICAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgIHNlbGYubG9uZ01lc3NhZ2UgPSBUcnVl
CiAKLSAgICAgICAgZGVmIG1vY2tfbG9hZF9jb250cmlidXRvcnMoY2xzLCAqYXJncywgKiprd2Fy
Z3MpOgorICAgICAgICBkZWYgbW9ja19sb2FkX2NvbnRyaWJ1dG9ycygqYXJncywgKiprd2FyZ3Mp
OgogICAgICAgICAgICAgcmV0dXJuIHsnYWFrYXNoX2phaW5AYXBwbGUuY29tJzogeyduYW1lJzog
J0Fha2FzaCBKYWluJywgJ3N0YXR1cyc6ICdyZXZpZXdlcid9LAotICAgICAgICAgICAgICAgICAg
ICAnY29tbWl0dGVyQHdlYmtpdC5vcmcnOiB7J25hbWUnOiAnV2ViS2l0IENvbW1pdHRlcicsICdz
dGF0dXMnOiAnY29tbWl0dGVyJ319Ci0gICAgICAgIFZhbGlkYXRlQ29tbWl0ZXJBbmRSZXZpZXdl
ci5sb2FkX2NvbnRyaWJ1dG9ycyA9IG1vY2tfbG9hZF9jb250cmlidXRvcnMKKyAgICAgICAgICAg
ICAgICAgICAgJ2NvbW1pdHRlckB3ZWJraXQub3JnJzogeyduYW1lJzogJ1dlYktpdCBDb21taXR0
ZXInLCAnc3RhdHVzJzogJ2NvbW1pdHRlcid9fSwgW10KKyAgICAgICAgQ29udHJpYnV0b3JzLmxv
YWQgPSBtb2NrX2xvYWRfY29udHJpYnV0b3JzCiAgICAgICAgIHJldHVybiBzZWxmLnNldFVwQnVp
bGRTdGVwKCkKIAogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKQEAgLTQ2MTYsNyArNDYxNiw3IEBA
IGNsYXNzIFRlc3RWYWxpZGF0ZUNvbW1pdGVyQW5kUmV2aWV3ZXIoQnVpbGRTdGVwTWl4aW5BZGRp
dGlvbnMsIHVuaXR0ZXN0LlRlc3RDYXNlCiAgICAgICAgIHNlbGYuc2V0dXBTdGVwKFZhbGlkYXRl
Q29tbWl0ZXJBbmRSZXZpZXdlcigpKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdwYXRjaF9p
ZCcsICcxMjM0JykKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgncGF0Y2hfY29tbWl0dGVyJywg
J2FiY0B3ZWJraXQub3JnJykKLSAgICAgICAgVmFsaWRhdGVDb21taXRlckFuZFJldmlld2VyLmxv
YWRfY29udHJpYnV0b3JzID0gbGFtYmRhIHg6IHt9CisgICAgICAgIENvbnRyaWJ1dG9ycy5sb2Fk
ID0gbGFtYmRhOiAoe30sIFtdKQogICAgICAgICBzZWxmLmV4cGVjdEhpZGRlbihGYWxzZSkKICAg
ICAgICAgc2VsZi5leHBlY3RPdXRjb21lKHJlc3VsdD1GQUlMVVJFLCBzdGF0ZV9zdHJpbmc9J0Zh
aWxlZCB0byBnZXQgY29udHJpYnV0b3JzIGluZm9ybWF0aW9uJykKICAgICAgICAgcmV0dXJuIHNl
bGYucnVuU3RlcCgpCkBAIC00NjM5LDggKzQ2MzksNyBAQCBjbGFzcyBUZXN0VmFsaWRhdGVDb21t
aXRlckFuZFJldmlld2VyKEJ1aWxkU3RlcE1peGluQWRkaXRpb25zLCB1bml0dGVzdC5UZXN0Q2Fz
ZQogICAgICAgICByZXR1cm4gc2VsZi5ydW5TdGVwKCkKIAogICAgIGRlZiB0ZXN0X2xvYWRfY29u
dHJpYnV0b3JzX2Zyb21fZGlzayhzZWxmKToKLSAgICAgICAgVmFsaWRhdGVDb21taXRlckFuZFJl
dmlld2VyLl9hZGRUb0xvZyA9IGxhbWJkYSBjbHMsIGxvZ3R5cGUsIGxvZzogc3lzLnN0ZG91dC53
cml0ZShsb2cpCi0gICAgICAgIGNvbnRyaWJ1dG9ycyA9IGZpbHRlcihsYW1iZGEgZWxlbWVudDog
ZWxlbWVudC5nZXQoJ25hbWUnKSA9PSAnQWFrYXNoIEphaW4nLCBWYWxpZGF0ZUNvbW1pdGVyQW5k
UmV2aWV3ZXIoKS5sb2FkX2NvbnRyaWJ1dG9yc19mcm9tX2Rpc2soKSkKKyAgICAgICAgY29udHJp
YnV0b3JzID0gZmlsdGVyKGxhbWJkYSBlbGVtZW50OiBlbGVtZW50LmdldCgnbmFtZScpID09ICdB
YWthc2ggSmFpbicsIENvbnRyaWJ1dG9ycygpLmxvYWRfZnJvbV9kaXNrKClbMF0pCiAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwobGlzdChjb250cmlidXRvcnMpWzBdWydlbWFpbHMnXVswXSwgJ2Fh
a2FzaF9qYWluQGFwcGxlLmNvbScpCiAKIAo=
</data>
<flag name="review"
          id="474971"
          type_id="1"
          status="+"
          setter="darin"
    />
    <flag name="commit-queue"
          id="475455"
          type_id="3"
          status="-"
          setter="jbedard"
    />
          </attachment>
      

    </bug>

</bugzilla>