<?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>222329</bug_id>
          
          <creation_ts>2021-02-23 12:52:24 -0800</creation_ts>
          <short_desc>[check-webkit-style] Fix Contributor sorting in Python 3</short_desc>
          <delta_ts>2021-02-24 10:36:32 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jonathan Bedard">jbedard</reporter>
          <assigned_to name="Jonathan Bedard">jbedard</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>cgambrell</cc>
    
    <cc>darin</cc>
    
    <cc>dewei_zhu</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gsnedders</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1732658</commentid>
    <comment_count>0</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-02-23 12:52:24 -0800</bug_when>
    <thetext>Sorting of contributors is broken in Python 3, making it difficult for new contributors to add themselves to contributors.json.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732660</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-02-23 12:52:38 -0800</bug_when>
    <thetext>&lt;rdar://problem/74656667&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732661</commentid>
    <comment_count>2</comment_count>
      <attachid>421344</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-02-23 12:56:17 -0800</bug_when>
    <thetext>Created attachment 421344
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732662</commentid>
    <comment_count>3</comment_count>
      <attachid>421345</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-02-23 12:58:15 -0800</bug_when>
    <thetext>Created attachment 421345
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732665</commentid>
    <comment_count>4</comment_count>
      <attachid>421345</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-02-23 13:04:29 -0800</bug_when>
    <thetext>Comment on attachment 421345
Patch

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

&gt; Tools/Scripts/webkitpy/common/config/committers.py:99
&gt; +            cmp = hash(getattr(self, member)) - hash(getattr(other, member))

Sorting by hashes doesn’t seem like a good idea if we want the sorting to stay stable in the future.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732667</commentid>
    <comment_count>5</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-02-23 13:11:05 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #4)
&gt; Comment on attachment 421345 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=421345&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/common/config/committers.py:99
&gt; &gt; +            cmp = hash(getattr(self, member)) - hash(getattr(other, member))
&gt; 
&gt; Sorting by hashes doesn’t seem like a good idea if we want the sorting to
&gt; stay stable in the future.

Was trying to avoid iterating through the lists, but I guess we probably should.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732671</commentid>
    <comment_count>6</comment_count>
      <attachid>421346</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-02-23 13:25:11 -0800</bug_when>
    <thetext>Created attachment 421346
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732677</commentid>
    <comment_count>7</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-02-23 13:41:08 -0800</bug_when>
    <thetext>This is the stack trace we get if you modify contributors.json then call check-webkit-style:

  File &quot;/Volumes/Shared/CheckoutBeta/OpenSource/Tools/Scripts/check-webkit-style&quot;, line 46, in &lt;module&gt;
    sys.exit(CheckWebKitStyle().main())
  File &quot;/Volumes/Shared/CheckoutBeta/OpenSource/Tools/Scripts/webkitpy/style/main.py&quot;, line 159, in main
    patch_checker.check(patch)
  File &quot;/Volumes/Shared/CheckoutBeta/OpenSource/Tools/Scripts/webkitpy/style/patchreader.py&quot;, line 86, in check
    self._text_file_reader.process_file(file_path=path, line_numbers=line_numbers)
  File &quot;/Volumes/Shared/CheckoutBeta/OpenSource/Tools/Scripts/webkitpy/style/filereader.py&quot;, line 137, in process_file
    self._processor.process(lines, file_path, **kwargs)
  File &quot;/Volumes/Shared/CheckoutBeta/OpenSource/Tools/Scripts/webkitpy/style/checker.py&quot;, line 1027, in process
    checker.check(lines)
  File &quot;/Volumes/Shared/CheckoutBeta/OpenSource/Tools/Scripts/webkitpy/style/checkers/contributors.py&quot;, line 42, in check
    canonicalized = CommitterList().as_json()
  File &quot;/Volumes/Shared/CheckoutBeta/OpenSource/Tools/Scripts/webkitpy/common/config/committers.py&quot;, line 244, in as_json
    result = CommitterList._contributor_list_to_dict(self._contributors)
  File &quot;/Volumes/Shared/CheckoutBeta/OpenSource/Tools/Scripts/webkitpy/common/config/committers.py&quot;, line 239, in _contributor_list_to_dict
    for contributor in sorted(list):
TypeError: &apos;&lt;&apos; not supported between instances of &apos;Contributor&apos; and &apos;Reviewer&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732725</commentid>
    <comment_count>8</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-02-23 16:26:42 -0800</bug_when>
    <thetext>Committed r273358 (234491@main): &lt;https://commits.webkit.org/234491@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732954</commentid>
    <comment_count>9</comment_count>
    <who name="Sam Sneddon [:gsnedders]">gsnedders</who>
    <bug_when>2021-02-24 10:36:32 -0800</bug_when>
    <thetext>FWIW, in general I&apos;d suggest using functools.total_ordering() rather than manually defining all the comparison operations.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421344</attachid>
            <date>2021-02-23 12:56:17 -0800</date>
            <delta_ts>2021-02-23 12:58:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222329-20210223125616.patch</filename>
            <type>text/plain</type>
            <size>4460</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI3MzMzMCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIxIEBACisyMDIxLTAyLTIzICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbY2hlY2std2Via2l0LXN0eWxlXSBGaXggQ29udHJpYnV0b3Igc29ydGlu
ZyBpbiBQeXRob24gMworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjIyMzI5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NDY1NjY2Nz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0
cHkvY29tbW9uL2NvbmZpZy9jb21taXR0ZXJzLnB5OgorICAgICAgICAoQ29udHJpYnV0b3IuX19j
bXBfXyk6IFJldHVybiBhbiBpbnRlZ2VyIHRvIGluZGljYXRlIG9yZGVyaW5nLgorICAgICAgICAo
Q29udHJpYnV0b3IuX19lcV9fKTogQWRkIHJpY2ggY29tcGFyaXNvbiBvcGVyYXRvcnMgZm9yIHNv
cnRpbmcuCisgICAgICAgIChDb250cmlidXRvci5fX25lX18pOiBEaXR0by4KKyAgICAgICAgKENv
bnRyaWJ1dG9yLl9fbHRfXyk6IERpdHRvLgorICAgICAgICAoQ29udHJpYnV0b3IuX19sZV9fKTog
RGl0dG8uCisgICAgICAgIChDb250cmlidXRvci5fX2d0X18pOiBEaXR0by4KKyAgICAgICAgKENv
bnRyaWJ1dG9yLl9fZ2VfXyk6IERpdHRvLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29t
bW9uL2NvbmZpZy9jb250cmlidXRvcnMuanNvbjoKKwogMjAyMS0wMi0yMyAgQ29tbWl0IFF1ZXVl
ICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0
aW5nIHIyNzMzMDcuCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcv
Y29tbWl0dGVycy5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9jb25maWcvY29tbWl0dGVycy5weQkocmV2aXNpb24gMjczMzIyKQorKysgVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9jb21tb24vY29uZmlnL2NvbW1pdHRlcnMucHkJKHdvcmtpbmcgY29weSkKQEAg
LTE3LDcgKzE3LDcgQEAKICMKICMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SX2NvbnRyaWJ1dG9yX2xpc3RfdG9fZGljdAogIyBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAogIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKICMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVApAQCAtODcsMTUgKzg3LDM4IEBAIGNsYXNzIENv
bnRyaWJ1dG9yKG9iamVjdCk6CiAgICAgICAgICAgICBeIGhhc2goc2VsZi5jYW5fY29tbWl0KSBc
CiAgICAgICAgICAgICBeIGhhc2goc2VsZi5jYW5fcmV2aWV3KQogCisgICAgZGVmIF9fY21wX18o
c2VsZiwgb3RoZXIpOgorICAgICAgICBpZiBvdGhlciBpcyBOb25lOgorICAgICAgICAgICAgcmV0
dXJuIDEKKworICAgICAgICBmb3IgbWVtYmVyIGluICgnZnVsbF9uYW1lJywgJ2Nhbl9jb21taXQn
LCAnY2FuX3JldmlldycpOgorICAgICAgICAgICAgaWYgZ2V0YXR0cihzZWxmLCBtZW1iZXIpICE9
IGdldGF0dHIob3RoZXIsIG1lbWJlcik6CisgICAgICAgICAgICAgICAgcmV0dXJuIDEgaWYgZ2V0
YXR0cihzZWxmLCBtZW1iZXIpID4gZ2V0YXR0cihvdGhlciwgbWVtYmVyKSBlbHNlIC0xCisKKyAg
ICAgICAgZm9yIG1lbWJlciBpbiAoJ2VtYWlscycsICdfY2FzZV9wcmVzZXJ2ZWRfZW1haWxzJywg
J2lyY19uaWNrbmFtZXMnLCAnZXhwZXJ0aXNlJywgJ2lyY19uaWNrbmFtZXMnLCAnZXhwZXJ0aXNl
Jyk6CisgICAgICAgICAgICBjbXAgPSBoYXNoKGdldGF0dHIoc2VsZiwgbWVtYmVyKSkgLSBoYXNo
KGdldGF0dHIob3RoZXIsIG1lbWJlcikpCisgICAgICAgICAgICBpZiBjbXA6CisgICAgICAgICAg
ICAgICAgcmV0dXJuIGNtcAorCisgICAgICAgIHJldHVybiAwCisKICAgICBkZWYgX19lcV9fKHNl
bGYsIG90aGVyKToKLSAgICAgICAgcmV0dXJuIChvdGhlciBpcyBub3QgTm9uZQotICAgICAgICAg
ICAgYW5kIHNlbGYuZnVsbF9uYW1lID09IG90aGVyLmZ1bGxfbmFtZQotICAgICAgICAgICAgYW5k
IHNlbGYuZW1haWxzID09IG90aGVyLmVtYWlscwotICAgICAgICAgICAgYW5kIHNlbGYuX2Nhc2Vf
cHJlc2VydmVkX2VtYWlscyA9PSBvdGhlci5fY2FzZV9wcmVzZXJ2ZWRfZW1haWxzCi0gICAgICAg
ICAgICBhbmQgc2VsZi5pcmNfbmlja25hbWVzID09IG90aGVyLmlyY19uaWNrbmFtZXMKLSAgICAg
ICAgICAgIGFuZCBzZWxmLmV4cGVydGlzZSA9PSBvdGhlci5leHBlcnRpc2UKLSAgICAgICAgICAg
IGFuZCBzZWxmLmNhbl9jb21taXQgPT0gb3RoZXIuY2FuX2NvbW1pdAotICAgICAgICAgICAgYW5k
IHNlbGYuY2FuX3JldmlldyA9PSBvdGhlci5jYW5fcmV2aWV3KQorICAgICAgICByZXR1cm4gc2Vs
Zi5fX2NtcF9fKG90aGVyKSA9PSAwCisKKyAgICBkZWYgX19uZV9fKHNlbGYsIG90aGVyKToKKyAg
ICAgICAgcmV0dXJuIHNlbGYuX19jbXBfXyhvdGhlcikgIT0gMAorCisgICAgZGVmIF9fbHRfXyhz
ZWxmLCBvdGhlcik6CisgICAgICAgIHJldHVybiBzZWxmLl9fY21wX18ob3RoZXIpIDwgMAorCisg
ICAgZGVmIF9fbGVfXyhzZWxmLCBvdGhlcik6CisgICAgICAgIHJldHVybiBzZWxmLl9fY21wX18o
b3RoZXIpIDw9IDAKKworICAgIGRlZiBfX2d0X18oc2VsZiwgb3RoZXIpOgorICAgICAgICByZXR1
cm4gc2VsZi5fX2NtcF9fKG90aGVyKSA+IDAKKworICAgIGRlZiBfX2dlX18oc2VsZiwgb3RoZXIp
OgorICAgICAgICByZXR1cm4gc2VsZi5fX2NtcF9fKG90aGVyKSA+PSAwCiAKICAgICBkZWYgY29u
dGFpbnNfc3RyaW5nKHNlbGYsIHNlYXJjaF9zdHJpbmcpOgogICAgICAgICBzdHJpbmcgPSBzZWFy
Y2hfc3RyaW5nLmxvd2VyKCkKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2Nv
bmZpZy9jb250cmlidXRvcnMuanNvbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9jb25maWcvY29udHJpYnV0b3JzLmpzb24JKHJldmlzaW9uIDI3MzMyMikKKysr
IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9jb250cmlidXRvcnMuanNvbgko
d29ya2luZyBjb3B5KQpAQCAtNDQ4MSw3ICs0NDgxLDcgQEAKICAgICAgICAgICJwZ3JpZmZpcyIs
CiAgICAgICAgICAiVGluZ1BpbmciCiAgICAgICBdLAotICAgICAgInN0YXR1cyI6ICJjb21taXR0
ZXIiCisgICAgICAic3RhdHVzIiA6ICJjb21taXR0ZXIiCiAgICB9LAogICAgIlBhdWxvIE1hdG9z
IiA6IHsKICAgICAgICJlbWFpbHMiIDogWwpAQCAtNDg4NSw2ICs0ODg1LDExIEBACiAgICAgICBd
LAogICAgICAgInN0YXR1cyIgOiAicmV2aWV3ZXIiCiAgICB9LAorICAgIlJ1YmVuIFR1cmNpb3Mi
IDogeworICAgICAgImVtYWlscyIgOiBbCisgICAgICAgICAicnViZW50XzIyQGFwcGxlLmNvbSIK
KyAgICAgIF0KKyAgIH0sCiAgICAiUnVzc2VsbCBFcHN0ZWluIiA6IHsKICAgICAgICJlbWFpbHMi
IDogWwogICAgICAgICAgInJlcHN0ZWluQGFwcGxlLmNvbSIKQEAgLTUyNzQsMTEgKzUyNzksNiBA
QAogICAgICAgICAgInN6bGVkYW4iCiAgICAgICBdCiAgICB9LAotICAgIlJ1YmVuIFR1cmNpb3Mi
IDogewotICAgICAgImVtYWlscyIgOiBbCi0JICJydWJlbnRfMjJAYXBwbGUuY29tIgotICAgICAg
XQotICAgfSwKICAgICJUYWIgQXRraW5zIiA6IHsKICAgICAgICJlbWFpbHMiIDogWwogICAgICAg
ICAgInRhYmF0a2luc0Bnb29nbGUuY29tIiwKQEAgLTYwNTQsNCArNjA1NCw0IEBACiAgICAgICBd
LAogICAgICAgInN0YXR1cyIgOiAicmV2aWV3ZXIiCiAgICB9Ci19Cit9ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421345</attachid>
            <date>2021-02-23 12:58:15 -0800</date>
            <delta_ts>2021-02-23 13:25:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222329-20210223125814.patch</filename>
            <type>text/plain</type>
            <size>3915</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI3MzMzMCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIxIEBACisyMDIxLTAyLTIzICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbY2hlY2std2Via2l0LXN0eWxlXSBGaXggQ29udHJpYnV0b3Igc29ydGlu
ZyBpbiBQeXRob24gMworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjIyMzI5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NDY1NjY2Nz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0
cHkvY29tbW9uL2NvbmZpZy9jb21taXR0ZXJzLnB5OgorICAgICAgICAoQ29udHJpYnV0b3IuX19j
bXBfXyk6IFJldHVybiBhbiBpbnRlZ2VyIHRvIGluZGljYXRlIG9yZGVyaW5nLgorICAgICAgICAo
Q29udHJpYnV0b3IuX19lcV9fKTogQWRkIHJpY2ggY29tcGFyaXNvbiBvcGVyYXRvcnMgZm9yIHNv
cnRpbmcuCisgICAgICAgIChDb250cmlidXRvci5fX25lX18pOiBEaXR0by4KKyAgICAgICAgKENv
bnRyaWJ1dG9yLl9fbHRfXyk6IERpdHRvLgorICAgICAgICAoQ29udHJpYnV0b3IuX19sZV9fKTog
RGl0dG8uCisgICAgICAgIChDb250cmlidXRvci5fX2d0X18pOiBEaXR0by4KKyAgICAgICAgKENv
bnRyaWJ1dG9yLl9fZ2VfXyk6IERpdHRvLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29t
bW9uL2NvbmZpZy9jb250cmlidXRvcnMuanNvbjoKKwogMjAyMS0wMi0yMyAgQ29tbWl0IFF1ZXVl
ICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0
aW5nIHIyNzMzMDcuCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcv
Y29tbWl0dGVycy5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9jb25maWcvY29tbWl0dGVycy5weQkocmV2aXNpb24gMjczMzIyKQorKysgVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9jb21tb24vY29uZmlnL2NvbW1pdHRlcnMucHkJKHdvcmtpbmcgY29weSkKQEAg
LTg3LDE1ICs4NywzOCBAQCBjbGFzcyBDb250cmlidXRvcihvYmplY3QpOgogICAgICAgICAgICAg
XiBoYXNoKHNlbGYuY2FuX2NvbW1pdCkgXAogICAgICAgICAgICAgXiBoYXNoKHNlbGYuY2FuX3Jl
dmlldykKIAorICAgIGRlZiBfX2NtcF9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgaWYgb3RoZXIg
aXMgTm9uZToKKyAgICAgICAgICAgIHJldHVybiAxCisKKyAgICAgICAgZm9yIG1lbWJlciBpbiAo
J2Z1bGxfbmFtZScsICdjYW5fY29tbWl0JywgJ2Nhbl9yZXZpZXcnKToKKyAgICAgICAgICAgIGlm
IGdldGF0dHIoc2VsZiwgbWVtYmVyKSAhPSBnZXRhdHRyKG90aGVyLCBtZW1iZXIpOgorICAgICAg
ICAgICAgICAgIHJldHVybiAxIGlmIGdldGF0dHIoc2VsZiwgbWVtYmVyKSA+IGdldGF0dHIob3Ro
ZXIsIG1lbWJlcikgZWxzZSAtMQorCisgICAgICAgIGZvciBtZW1iZXIgaW4gKCdlbWFpbHMnLCAn
X2Nhc2VfcHJlc2VydmVkX2VtYWlscycsICdpcmNfbmlja25hbWVzJywgJ2V4cGVydGlzZScsICdp
cmNfbmlja25hbWVzJywgJ2V4cGVydGlzZScpOgorICAgICAgICAgICAgY21wID0gaGFzaChnZXRh
dHRyKHNlbGYsIG1lbWJlcikpIC0gaGFzaChnZXRhdHRyKG90aGVyLCBtZW1iZXIpKQorICAgICAg
ICAgICAgaWYgY21wOgorICAgICAgICAgICAgICAgIHJldHVybiBjbXAKKworICAgICAgICByZXR1
cm4gMAorCiAgICAgZGVmIF9fZXFfXyhzZWxmLCBvdGhlcik6Ci0gICAgICAgIHJldHVybiAob3Ro
ZXIgaXMgbm90IE5vbmUKLSAgICAgICAgICAgIGFuZCBzZWxmLmZ1bGxfbmFtZSA9PSBvdGhlci5m
dWxsX25hbWUKLSAgICAgICAgICAgIGFuZCBzZWxmLmVtYWlscyA9PSBvdGhlci5lbWFpbHMKLSAg
ICAgICAgICAgIGFuZCBzZWxmLl9jYXNlX3ByZXNlcnZlZF9lbWFpbHMgPT0gb3RoZXIuX2Nhc2Vf
cHJlc2VydmVkX2VtYWlscwotICAgICAgICAgICAgYW5kIHNlbGYuaXJjX25pY2tuYW1lcyA9PSBv
dGhlci5pcmNfbmlja25hbWVzCi0gICAgICAgICAgICBhbmQgc2VsZi5leHBlcnRpc2UgPT0gb3Ro
ZXIuZXhwZXJ0aXNlCi0gICAgICAgICAgICBhbmQgc2VsZi5jYW5fY29tbWl0ID09IG90aGVyLmNh
bl9jb21taXQKLSAgICAgICAgICAgIGFuZCBzZWxmLmNhbl9yZXZpZXcgPT0gb3RoZXIuY2FuX3Jl
dmlldykKKyAgICAgICAgcmV0dXJuIHNlbGYuX19jbXBfXyhvdGhlcikgPT0gMAorCisgICAgZGVm
IF9fbmVfXyhzZWxmLCBvdGhlcik6CisgICAgICAgIHJldHVybiBzZWxmLl9fY21wX18ob3RoZXIp
ICE9IDAKKworICAgIGRlZiBfX2x0X18oc2VsZiwgb3RoZXIpOgorICAgICAgICByZXR1cm4gc2Vs
Zi5fX2NtcF9fKG90aGVyKSA8IDAKKworICAgIGRlZiBfX2xlX18oc2VsZiwgb3RoZXIpOgorICAg
ICAgICByZXR1cm4gc2VsZi5fX2NtcF9fKG90aGVyKSA8PSAwCisKKyAgICBkZWYgX19ndF9fKHNl
bGYsIG90aGVyKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX19jbXBfXyhvdGhlcikgPiAwCisKKyAg
ICBkZWYgX19nZV9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX19jbXBfXyhv
dGhlcikgPj0gMAogCiAgICAgZGVmIGNvbnRhaW5zX3N0cmluZyhzZWxmLCBzZWFyY2hfc3RyaW5n
KToKICAgICAgICAgc3RyaW5nID0gc2VhcmNoX3N0cmluZy5sb3dlcigpCkluZGV4OiBUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvY29udHJpYnV0b3JzLmpzb24KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL2NvbnRyaWJ1dG9ycy5q
c29uCShyZXZpc2lvbiAyNzMzMjIpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9j
b25maWcvY29udHJpYnV0b3JzLmpzb24JKHdvcmtpbmcgY29weSkKQEAgLTQ0ODEsNyArNDQ4MSw3
IEBACiAgICAgICAgICAicGdyaWZmaXMiLAogICAgICAgICAgIlRpbmdQaW5nIgogICAgICAgXSwK
LSAgICAgICJzdGF0dXMiOiAiY29tbWl0dGVyIgorICAgICAgInN0YXR1cyIgOiAiY29tbWl0dGVy
IgogICAgfSwKICAgICJQYXVsbyBNYXRvcyIgOiB7CiAgICAgICAiZW1haWxzIiA6IFsKQEAgLTQ4
ODUsNiArNDg4NSwxMSBAQAogICAgICAgXSwKICAgICAgICJzdGF0dXMiIDogInJldmlld2VyIgog
ICAgfSwKKyAgICJSdWJlbiBUdXJjaW9zIiA6IHsKKyAgICAgICJlbWFpbHMiIDogWworICAgICAg
ICAgInJ1YmVudF8yMkBhcHBsZS5jb20iCisgICAgICBdCisgICB9LAogICAgIlJ1c3NlbGwgRXBz
dGVpbiIgOiB7CiAgICAgICAiZW1haWxzIiA6IFsKICAgICAgICAgICJyZXBzdGVpbkBhcHBsZS5j
b20iCkBAIC01Mjc0LDExICs1Mjc5LDYgQEAKICAgICAgICAgICJzemxlZGFuIgogICAgICAgXQog
ICAgfSwKLSAgICJSdWJlbiBUdXJjaW9zIiA6IHsKLSAgICAgICJlbWFpbHMiIDogWwotCSAicnVi
ZW50XzIyQGFwcGxlLmNvbSIKLSAgICAgIF0KLSAgIH0sCiAgICAiVGFiIEF0a2lucyIgOiB7CiAg
ICAgICAiZW1haWxzIiA6IFsKICAgICAgICAgICJ0YWJhdGtpbnNAZ29vZ2xlLmNvbSIsCkBAIC02
MDU0LDQgKzYwNTQsNCBAQAogICAgICAgXSwKICAgICAgICJzdGF0dXMiIDogInJldmlld2VyIgog
ICAgfQotfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421346</attachid>
            <date>2021-02-23 13:25:11 -0800</date>
            <delta_ts>2021-02-23 16:16:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222329-20210223132510.patch</filename>
            <type>text/plain</type>
            <size>4289</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI3MzMzMCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIxIEBACisyMDIxLTAyLTIzICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbY2hlY2std2Via2l0LXN0eWxlXSBGaXggQ29udHJpYnV0b3Igc29ydGlu
ZyBpbiBQeXRob24gMworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjIyMzI5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NDY1NjY2Nz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0
cHkvY29tbW9uL2NvbmZpZy9jb21taXR0ZXJzLnB5OgorICAgICAgICAoQ29udHJpYnV0b3IuX19j
bXBfXyk6IFJldHVybiBhbiBpbnRlZ2VyIHRvIGluZGljYXRlIG9yZGVyaW5nLgorICAgICAgICAo
Q29udHJpYnV0b3IuX19lcV9fKTogQWRkIHJpY2ggY29tcGFyaXNvbiBvcGVyYXRvcnMgZm9yIHNv
cnRpbmcuCisgICAgICAgIChDb250cmlidXRvci5fX25lX18pOiBEaXR0by4KKyAgICAgICAgKENv
bnRyaWJ1dG9yLl9fbHRfXyk6IERpdHRvLgorICAgICAgICAoQ29udHJpYnV0b3IuX19sZV9fKTog
RGl0dG8uCisgICAgICAgIChDb250cmlidXRvci5fX2d0X18pOiBEaXR0by4KKyAgICAgICAgKENv
bnRyaWJ1dG9yLl9fZ2VfXyk6IERpdHRvLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29t
bW9uL2NvbmZpZy9jb250cmlidXRvcnMuanNvbjoKKwogMjAyMS0wMi0yMyAgQ29tbWl0IFF1ZXVl
ICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0
aW5nIHIyNzMzMDcuCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcv
Y29tbWl0dGVycy5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9jb25maWcvY29tbWl0dGVycy5weQkocmV2aXNpb24gMjczMzIyKQorKysgVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9jb21tb24vY29uZmlnL2NvbW1pdHRlcnMucHkJKHdvcmtpbmcgY29weSkKQEAg
LTg3LDE1ICs4Nyw0MyBAQCBjbGFzcyBDb250cmlidXRvcihvYmplY3QpOgogICAgICAgICAgICAg
XiBoYXNoKHNlbGYuY2FuX2NvbW1pdCkgXAogICAgICAgICAgICAgXiBoYXNoKHNlbGYuY2FuX3Jl
dmlldykKIAorICAgIGRlZiBfX2NtcF9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgaWYgb3RoZXIg
aXMgTm9uZToKKyAgICAgICAgICAgIHJldHVybiAxCisKKyAgICAgICAgZm9yIG1lbWJlciBpbiAo
J2Z1bGxfbmFtZScsICdlbWFpbHMnLCAnX2Nhc2VfcHJlc2VydmVkX2VtYWlscycsICdpcmNfbmlj
a25hbWVzJywgJ2Nhbl9jb21taXQnLCAnY2FuX3JldmlldycsICdleHBlcnRpc2UnKToKKyAgICAg
ICAgICAgIGlmIG1lbWJlciBpbiAoJ2VtYWlscycsICdfY2FzZV9wcmVzZXJ2ZWRfZW1haWxzJywg
J2lyY19uaWNrbmFtZXMnKToKKyAgICAgICAgICAgICAgICBzZWxmX2xpc3QgPSBzb3J0ZWQoZ2V0
YXR0cihzZWxmLCBtZW1iZXIpIG9yIFtdKQorICAgICAgICAgICAgICAgIG90aGVyX2xpc3QgPSBz
b3J0ZWQoZ2V0YXR0cihvdGhlciwgbWVtYmVyKSBvciBbXSkKKyAgICAgICAgICAgICAgICBmb3Ig
aSBpbiByYW5nZShtaW4obGVuKHNlbGZfbGlzdCksIGxlbihvdGhlcl9saXN0KSkpOgorICAgICAg
ICAgICAgICAgICAgICBpZiBzZWxmX2xpc3RbaV0gIT0gb3RoZXJfbGlzdFtpXToKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiAxIGlmIHNlbGZfbGlzdFtpXSA+IG90aGVyX2xpc3RbaV0g
ZWxzZSAtMQorICAgICAgICAgICAgICAgIGlmIGxlbihzZWxmX2xpc3QpICE9IGxlbihvdGhlcl9s
aXN0KToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGxlbihzZWxmX2xpc3QpIC0gbGVuKG90
aGVyX2xpc3QpCisKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgaWYgZ2V0YXR0
cihzZWxmLCBtZW1iZXIpICE9IGdldGF0dHIob3RoZXIsIG1lbWJlcik6CisgICAgICAgICAgICAg
ICAgICAgIHJldHVybiAxIGlmIGdldGF0dHIoc2VsZiwgbWVtYmVyKSA+IGdldGF0dHIob3RoZXIs
IG1lbWJlcikgZWxzZSAtMQorCisgICAgICAgIHJldHVybiAwCisKICAgICBkZWYgX19lcV9fKHNl
bGYsIG90aGVyKToKLSAgICAgICAgcmV0dXJuIChvdGhlciBpcyBub3QgTm9uZQotICAgICAgICAg
ICAgYW5kIHNlbGYuZnVsbF9uYW1lID09IG90aGVyLmZ1bGxfbmFtZQotICAgICAgICAgICAgYW5k
IHNlbGYuZW1haWxzID09IG90aGVyLmVtYWlscwotICAgICAgICAgICAgYW5kIHNlbGYuX2Nhc2Vf
cHJlc2VydmVkX2VtYWlscyA9PSBvdGhlci5fY2FzZV9wcmVzZXJ2ZWRfZW1haWxzCi0gICAgICAg
ICAgICBhbmQgc2VsZi5pcmNfbmlja25hbWVzID09IG90aGVyLmlyY19uaWNrbmFtZXMKLSAgICAg
ICAgICAgIGFuZCBzZWxmLmV4cGVydGlzZSA9PSBvdGhlci5leHBlcnRpc2UKLSAgICAgICAgICAg
IGFuZCBzZWxmLmNhbl9jb21taXQgPT0gb3RoZXIuY2FuX2NvbW1pdAotICAgICAgICAgICAgYW5k
IHNlbGYuY2FuX3JldmlldyA9PSBvdGhlci5jYW5fcmV2aWV3KQorICAgICAgICByZXR1cm4gc2Vs
Zi5fX2NtcF9fKG90aGVyKSA9PSAwCisKKyAgICBkZWYgX19uZV9fKHNlbGYsIG90aGVyKToKKyAg
ICAgICAgcmV0dXJuIHNlbGYuX19jbXBfXyhvdGhlcikgIT0gMAorCisgICAgZGVmIF9fbHRfXyhz
ZWxmLCBvdGhlcik6CisgICAgICAgIHJldHVybiBzZWxmLl9fY21wX18ob3RoZXIpIDwgMAorCisg
ICAgZGVmIF9fbGVfXyhzZWxmLCBvdGhlcik6CisgICAgICAgIHJldHVybiBzZWxmLl9fY21wX18o
b3RoZXIpIDw9IDAKKworICAgIGRlZiBfX2d0X18oc2VsZiwgb3RoZXIpOgorICAgICAgICByZXR1
cm4gc2VsZi5fX2NtcF9fKG90aGVyKSA+IDAKKworICAgIGRlZiBfX2dlX18oc2VsZiwgb3RoZXIp
OgorICAgICAgICByZXR1cm4gc2VsZi5fX2NtcF9fKG90aGVyKSA+PSAwCiAKICAgICBkZWYgY29u
dGFpbnNfc3RyaW5nKHNlbGYsIHNlYXJjaF9zdHJpbmcpOgogICAgICAgICBzdHJpbmcgPSBzZWFy
Y2hfc3RyaW5nLmxvd2VyKCkKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2Nv
bmZpZy9jb250cmlidXRvcnMuanNvbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9jb25maWcvY29udHJpYnV0b3JzLmpzb24JKHJldmlzaW9uIDI3MzMyMikKKysr
IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9jb250cmlidXRvcnMuanNvbgko
d29ya2luZyBjb3B5KQpAQCAtNDQ4MSw3ICs0NDgxLDcgQEAKICAgICAgICAgICJwZ3JpZmZpcyIs
CiAgICAgICAgICAiVGluZ1BpbmciCiAgICAgICBdLAotICAgICAgInN0YXR1cyI6ICJjb21taXR0
ZXIiCisgICAgICAic3RhdHVzIiA6ICJjb21taXR0ZXIiCiAgICB9LAogICAgIlBhdWxvIE1hdG9z
IiA6IHsKICAgICAgICJlbWFpbHMiIDogWwpAQCAtNDg4NSw2ICs0ODg1LDExIEBACiAgICAgICBd
LAogICAgICAgInN0YXR1cyIgOiAicmV2aWV3ZXIiCiAgICB9LAorICAgIlJ1YmVuIFR1cmNpb3Mi
IDogeworICAgICAgImVtYWlscyIgOiBbCisgICAgICAgICAicnViZW50XzIyQGFwcGxlLmNvbSIK
KyAgICAgIF0KKyAgIH0sCiAgICAiUnVzc2VsbCBFcHN0ZWluIiA6IHsKICAgICAgICJlbWFpbHMi
IDogWwogICAgICAgICAgInJlcHN0ZWluQGFwcGxlLmNvbSIKQEAgLTUyNzQsMTEgKzUyNzksNiBA
QAogICAgICAgICAgInN6bGVkYW4iCiAgICAgICBdCiAgICB9LAotICAgIlJ1YmVuIFR1cmNpb3Mi
IDogewotICAgICAgImVtYWlscyIgOiBbCi0JICJydWJlbnRfMjJAYXBwbGUuY29tIgotICAgICAg
XQotICAgfSwKICAgICJUYWIgQXRraW5zIiA6IHsKICAgICAgICJlbWFpbHMiIDogWwogICAgICAg
ICAgInRhYmF0a2luc0Bnb29nbGUuY29tIiwKQEAgLTYwNTQsNCArNjA1NCw0IEBACiAgICAgICBd
LAogICAgICAgInN0YXR1cyIgOiAicmV2aWV3ZXIiCiAgICB9Ci19Cit9ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQo=
</data>
<flag name="review"
          id="440163"
          type_id="1"
          status="+"
          setter="dewei_zhu"
    />
          </attachment>
      

    </bug>

</bugzilla>