<?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>216721</bug_id>
          
          <creation_ts>2020-09-18 18:52:20 -0700</creation_ts>
          <short_desc>Selection API: Extend lifetime of selection live range to preserve expando properties</short_desc>
          <delta_ts>2020-09-19 07:49:16 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>HTML Editing</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>
          
          <blocked>216325</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>achristensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mifenton</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1690015</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-09-18 18:52:20 -0700</bug_when>
    <thetext>Selection API: Extend lifetime of selection live range to preserve expando properties</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1690016</commentid>
    <comment_count>1</comment_count>
      <attachid>409186</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-09-18 18:56:47 -0700</bug_when>
    <thetext>Created attachment 409186
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1690025</commentid>
    <comment_count>2</comment_count>
      <attachid>409188</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-09-18 19:35:28 -0700</bug_when>
    <thetext>Created attachment 409188
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1690049</commentid>
    <comment_count>3</comment_count>
      <attachid>409188</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-09-18 23:43:57 -0700</bug_when>
    <thetext>Comment on attachment 409188
Patch

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

&gt; LayoutTests/editing/selection/expando.html:5
&gt; +function collectGarbage()

Why not just include LayoutTests/resources/gc.js?

&gt; LayoutTests/editing/selection/expando.html:19
&gt; +var repetitions = 20;

Maybe use const?

&gt; LayoutTests/editing/selection/expando.html:23
&gt; +    var count = 0;

Maybe use let?

&gt; LayoutTests/editing/selection/expando.html:26
&gt; +        var range = document.createRange();

Ditto.

&gt; LayoutTests/editing/selection/expando.html:41
&gt; +    var count = 0;

Ditto.

&gt; LayoutTests/editing/selection/expando.html:44
&gt; +        getSelection().setBaseAndExtent(document, 0, document, 1);
&gt; +        getSelection().getRangeAt(0).expando = 1;

I think another scenario we should consider is modifying selection after this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1690068</commentid>
    <comment_count>4</comment_count>
      <attachid>409188</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-09-19 07:20:07 -0700</bug_when>
    <thetext>Comment on attachment 409188
Patch

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

&gt;&gt; LayoutTests/editing/selection/expando.html:5
&gt;&gt; +function collectGarbage()
&gt; 
&gt; Why not just include LayoutTests/resources/gc.js?

Done.

&gt;&gt; LayoutTests/editing/selection/expando.html:19
&gt;&gt; +var repetitions = 20;
&gt; 
&gt; Maybe use const?

Done.

&gt;&gt; LayoutTests/editing/selection/expando.html:23
&gt;&gt; +    var count = 0;
&gt; 
&gt; Maybe use let?

Done.

&gt;&gt; LayoutTests/editing/selection/expando.html:26
&gt;&gt; +        var range = document.createRange();
&gt; 
&gt; Ditto.

Done.

&gt;&gt; LayoutTests/editing/selection/expando.html:44
&gt;&gt; +        getSelection().getRangeAt(0).expando = 1;
&gt; 
&gt; I think another scenario we should consider is modifying selection after this.

OK, will add some more tests for that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1690073</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-09-19 07:48:11 -0700</bug_when>
    <thetext>Committed r267313: &lt;https://trac.webkit.org/changeset/267313&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1690074</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-09-19 07:49:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/69213554&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409186</attachid>
            <date>2020-09-18 18:56:47 -0700</date>
            <delta_ts>2020-09-18 19:35:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216721-20200918185646.patch</filename>
            <type>text/plain</type>
            <size>15206</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3MzA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmI3ZjQ0NmNiZGUwYWU2
ZWY1N2M2NmZiNjQ5MjQxNGZmNjBkMzMzOC4uZGI3YzEzOGI4MGYxMzgzYjAwNTQ1MjEyNDFkNWFm
MDVjMjk2MzkwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIwLTA5LTE4ICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBTZWxlY3Rpb24gQVBJOiBFeHRl
bmQgbGlmZXRpbWUgb2Ygc2VsZWN0aW9uIGxpdmUgcmFuZ2UgdG8gcHJlc2VydmUgZXhwYW5kbyBw
cm9wZXJ0aWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTY3MjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUZXN0OiBlZGl0aW5nL3NlbGVjdGlvbi9leHBhbmRvLmh0bWwKKworICAgICAgICAqIFNvdXJj
ZXMudHh0OiBBZGRlZCBKU1JhbmdlQ3VzdG9tLmNwcC4KKyAgICAgICAgKiBXZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6IERpdHRvLiBBbHNvIHJlbW92ZWQgcmVmZXJlbmNlcyB0byBu
b25leGlzdGVudAorICAgICAgICBKU0F1ZGlvTm9kZUN1c3RvbS5jcHAgZmlsZS4KKworICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTUmFuZ2VDdXN0b20uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkpTUmFuZ2VPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMpOiBUaWUgdGhlIGxp
ZmV0aW1lIG9mIHRoZSBsaXZlIHJhbmdlCisgICAgICAgIGFzc29jaWF0ZWQgd2l0aCB0aGUgc2Vs
ZWN0aW9uIHRvIHRoZSB3aW5kb3cgb2JqZWN0LgorICAgICAgICAqIGRvbS9SYW5nZS5oOiBBZGRl
ZCBpc0Fzc29jaWF0ZWRXaXRoU2VsZWN0aW9uLgorICAgICAgICAqIGRvbS9SYW5nZS5pZGw6IEFk
ZGVkIEN1c3RvbUlzUmVhY2hhYmxlLgorCisgICAgICAgICogZWRpdGluZy9GcmFtZVNlbGVjdGlv
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbjo6ZGlzYXNzb2NpYXRlTGl2
ZVJhbmdlKTogUmVtb3ZlZCBhIEZJWE1FIGNvbW1lbnQgYWJvdXQgdGhlCisgICAgICAgIG5lZWQg
Zm9yIHRoaXMgZml4LgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnVwZGF0ZUFz
c29jaWF0ZWRMaXZlUmFuZ2UpOiBBZGRlZCBhIGNvbW1lbnQgZXhwbGFpbmluZworICAgICAgICB3
aHkgYW4gYXNzb2NpYXRlZCBsaXZlIHJhbmdlIG1pZ2h0IG5vdCBiZSBjb250YWluZWQgaW4gdGhl
IGRvY3VtZW50LgorCiAyMDIwLTA5LTE4ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+
CiAKICAgICAgICAgW0xGQ11bRkZDXSBBZGQgZmxleCBib3gvaXRlbSB0byBzaG93TGF5b3V0VHJl
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzLnR4dAppbmRleCBjMGZlOTQwMWMwM2YwOGUxYTBjMTNmYTEyNDdmNzBjMmY4NDJi
NmY3Li5kNmIxMjgxZDIwN2E3NmE2NWIwMTYxZTQ0ZTQ5NGFmYzY3NzlmMmMxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dApAQCAtNTUwLDYgKzU1MCw3IEBAIGJpbmRpbmdzL2pzL0pTUGVyZm9ybWFuY2VPYnNlcnZl
ckN1c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAKIGJp
bmRpbmdzL2pzL0pTUG9wU3RhdGVFdmVudEN1c3RvbS5jcHAKIGJpbmRpbmdzL2pzL0pTUHJvbWlz
ZVJlamVjdGlvbkV2ZW50Q3VzdG9tLmNwcAorYmluZGluZ3MvanMvSlNSYW5nZUN1c3RvbS5jcHAK
IGJpbmRpbmdzL2pzL0pTUmVhZGFibGVTdHJlYW1Tb3VyY2VDdXN0b20uY3BwCiBiaW5kaW5ncy9q
cy9KU1JlbW90ZURPTVdpbmRvd0Jhc2UuY3BwCiBiaW5kaW5ncy9qcy9KU1JlbW90ZURPTVdpbmRv
d0N1c3RvbS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCBlNWY0NGFlM2Y0ZjkyODYzOTc0YzlkNTUyOGE2MzhhMWJkODUwM2My
Li44YmE2NjI0NTEwYmIxYWNjY2FiMzExMjY5ZDg2ZTU1Yjg3NTdlMmRhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC03NDAzLDcg
Kzc0MDMsNiBAQAogCQkzRkJDNEFGMTE4OTg4MTU2MDA0NkVFMzggLyogVmlkZW9GdWxsc2NyZWVu
SW50ZXJmYWNlQVZLaXQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJM0ZCQzRBRjIxODk4ODE1NjAwNDZFRTM4IC8qIFZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZUFWS2l0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZUFWS2l0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMDI0
RkM4MjNDRjI1NEYwMEZERjk4RSAvKiBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJNDEwNjI2QTcyMjgwQTIyQTAwNkQxQjU5IC8qIEpTQXVkaW9Ob2Rl
Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQXVkaW9O
b2RlQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEwNzkwOEExRkMz
RTRGMjAwNjFCMjdBIC8qIENsaWVudE9yaWdpbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBDbGllbnRPcmlnaW4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEw
ODdGMDEyNDhFNTlDODAwNjgwRTkxIC8qIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5p
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlclVuaXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
MTA4N0YwMzI0OEU1OUM5MDA2ODBFOTEgLyogQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJV
bml0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyVW5pdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTEyMDQs
NiArMTEyMDMsNyBAQAogCQk5M0I3MEQ1MzA5RUIwQzdDMDA5RDg0NjggLyogU2NyaXB0Q29udHJv
bGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2NyaXB0Q29u
dHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQjcwRDU0MDlFQjBD
N0MwMDlEODQ2OCAvKiBTY3JpcHRDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTY3JpcHRDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTkzQjc3QTM3MEFERDc5MjUwMEVBNEI4MSAvKiBGcmFtZUxvYWRlclR5cGVzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZyYW1lTG9hZGVyVHlwZXMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNCQzc1QUMyNTE0NTJCMjAwNzU2RTg5IC8qIEpTUmFuZ2VD
dXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNSYW5nZUN1c3RvbS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQzA5QTUyMEIwNjREQjMwMDVBQkQ0RCAvKiBFdmVudEhh
bmRsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXZlbnRIYW5kbGVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQzA5QTdFMEIwNjRFRUYwMDVBQkQ0RCAv
KiBFdmVudEhhbmRsZXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBFdmVudEhhbmRsZXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkz
QzA5QTgwMEIwNjRGMDAwMDVBQkQ0RCAvKiBFdmVudEhhbmRsZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRXZlbnRIYW5kbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTIyMDgyLDcgKzIyMDgyLDYgQEAKIAkJCQk3MUVGQ0VERTIwMkIzOUM3
MDBEN0M0MTEgLyogSlNBbmltYXRpb25FZmZlY3RDdXN0b20uY3BwICovLAogCQkJCTcxMDI1RUQ1
MUY5OUYxNDcwMDRBMjUwQyAvKiBKU0FuaW1hdGlvblRpbWVsaW5lQ3VzdG9tLmNwcCAqLywKIAkJ
CQlCQzJFRDZCQjBDNkJEMkYwMDA5MjBCRkYgLyogSlNBdHRyQ3VzdG9tLmNwcCAqLywKLQkJCQk0
MTA2MjZBNzIyODBBMjJBMDA2RDFCNTkgLyogSlNBdWRpb05vZGVDdXN0b20uY3BwICovLAogCQkJ
CUJFNkRGNzBFMTcxQ0EyREEwMERENTJCOCAvKiBKU0F1ZGlvVHJhY2tDdXN0b20uY3BwICovLAog
CQkJCUJFNkRGNzEwMTcxQ0EyREEwMERENTJCOCAvKiBKU0F1ZGlvVHJhY2tMaXN0Q3VzdG9tLmNw
cCAqLywKIAkJCQk1NzYwODI1NjIwMTFCRTAyMDAxMTY2NzggLyogSlNBdXRoZW50aWNhdG9yUmVz
cG9uc2VDdXN0b20uY3BwICovLApAQCAtMjIxMzUsNiArMjIxMzQsNyBAQAogCQkJCUNCMzhGRDU1
MUNEMjFENUIwMDU5MkEzRiAvKiBKU1BlcmZvcm1hbmNlRW50cnlDdXN0b20uY3BwICovLAogCQkJ
CTgzM0NGNzBGMjBEQjNGNUYwMDE0MUJDQyAvKiBKU1BlcmZvcm1hbmNlT2JzZXJ2ZXJDdXN0b20u
Y3BwICovLAogCQkJCUE0QTY5QjhCQjkxQjQ5RDBBODA0QzMxRCAvKiBKU1Byb21pc2VSZWplY3Rp
b25FdmVudEN1c3RvbS5jcHAgKi8sCisJCQkJOTNCQzc1QUMyNTE0NTJCMjAwNzU2RTg5IC8qIEpT
UmFuZ2VDdXN0b20uY3BwICovLAogCQkJCTU4ODRGRTU2MjI4MTNFMkQwMDQwQUZGNiAvKiBKU1Jl
c2l6ZU9ic2VydmVyRW50cnlDdXN0b20uY3BwICovLAogCQkJCTgzRjU3Mjk0MUZBMTA2NkYwMDM4
MzdCRSAvKiBKU1NlcnZpY2VXb3JrZXJDbGllbnRDdXN0b20uY3BwICovLAogCQkJCTQ2MEQxOTQ0
MUZDRTIxREQwMEMzREI4NSAvKiBKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUN1c3RvbS5jcHAg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JhbmdlQ3VzdG9t
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUmFuZ2VDdXN0b20uY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmVlZmE3OTQ1NDBiOTRhMWNjYTI4ZjFkNDM3ZDQyMzlhYjUxNWMyZjMKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JhbmdlQ3VzdG9tLmNwcApA
QCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkpTUmFuZ2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitib29sIEpTUmFuZ2VPd25l
cjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBo
YW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvciwgY29uc3QgY2hhcioqIHJlYXNvbikK
K3sKKyAgICBhdXRvJiByYW5nZSA9IGpzQ2FzdDxKU1JhbmdlKj4oaGFuZGxlLnNsb3QoKS0+YXND
ZWxsKCkpLT53cmFwcGVkKCk7CisgICAgaWYgKCFyYW5nZS5pc0Fzc29jaWF0ZWRXaXRoU2VsZWN0
aW9uKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBhdXRvIHJvb3QgPSByYW5nZS5zdGFy
dENvbnRhaW5lcigpLmRvY3VtZW50KCkuZG9tV2luZG93KCk7CisgICAgaWYgKCFyb290KQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKFVOTElLRUxZKHJlYXNvbikpCisgICAgICAgICpy
ZWFzb24gPSAiUmVhY2hhYmxlIGZyb20gV2luZG93IjsKKyAgICByZXR1cm4gdmlzaXRvci5jb250
YWluc09wYXF1ZVJvb3Qocm9vdCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9SYW5nZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmgKaW5kZXggZGE2ZjQzZTlh
YThjNGQzMzk0MWFiNmNhODFlZDM2OWZiMDE2NTljZC4uZjg4NWFjZWU3ZmYxMjU5ZWExNjllYzg4
NzRiMDc0YTdmYjA0MzczYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmgKQEAgLTEwMiw2ICsxMDIsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBkaWRBc3NvY2lhdGVXaXRoU2VsZWN0aW9uKCkgeyBtX2lzQXNzb2NpYXRl
ZFdpdGhTZWxlY3Rpb24gPSB0cnVlOyB9CiAgICAgdm9pZCBkaWREaXNhc3NvY2lhdGVGcm9tU2Vs
ZWN0aW9uKCkgeyBtX2lzQXNzb2NpYXRlZFdpdGhTZWxlY3Rpb24gPSBmYWxzZTsgfQogICAgIHZv
aWQgdXBkYXRlRnJvbVNlbGVjdGlvbihjb25zdCBTaW1wbGVSYW5nZSYpOworICAgIGJvb2wgaXNB
c3NvY2lhdGVkV2l0aFNlbGVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1faXNBc3NvY2lhdGVkV2l0
aFNlbGVjdGlvbjsgfQogCiAgICAgc3RhdGljIEV4Y2VwdGlvbk9yPE5vZGUqPiBjaGVja05vZGVP
ZmZzZXRQYWlyKE5vZGUmLCB1bnNpZ25lZCBvZmZzZXQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vUmFuZ2UuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmlkbAppbmRl
eCBhMjc1Y2M2ODMxZTRkMTUzZjdhNjYyYTc3YmRjZTdkNjdiYzgxYjQ2Li4zY2YyZDNmZDNkOTlk
ZGY4NDdhYjU2OGZkODA3YjY2MWQ4NGZhODgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vUmFuZ2UuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5pZGwKQEAgLTE5LDYg
KzE5LDcgQEAKICAqLwogCiBbCisgICAgQ3VzdG9tSXNSZWFjaGFibGUsCiAgICAgSW1wbGVtZW50
YXRpb25MYWNrc1ZUYWJsZSwKICAgICBFeHBvcnRNYWNybz1XRUJDT1JFX0VYUE9SVCwKIF0gaW50
ZXJmYWNlIFJhbmdlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVT
ZWxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAK
aW5kZXggZGZjOWEzYzliYjAzMTM5Yzc3MjNhNzUwMTRiZTUwZDAxYTM1MGE1Zi4uOWM4ODk0YzRh
NWRmNGE5MzAxNjg0NWRlOWUwZmRkZDQ0YWNlMDljMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9GcmFtZVNlbGVjdGlvbi5jcHAKQEAgLTI4MDEsNyArMjgwMSw2IEBAIHZvaWQgRnJhbWVTZWxl
Y3Rpb246OmRpc2Fzc29jaWF0ZUxpdmVSYW5nZSgpCiB7CiAgICAgaWYgKGF1dG8gcHJldmlvdXNs
eUFzc29jaWF0ZWRMaXZlUmFuZ2UgPSBzdGQ6OmV4Y2hhbmdlKG1fYXNzb2NpYXRlZExpdmVSYW5n
ZSwgbnVsbHB0cikpCiAgICAgICAgIHByZXZpb3VzbHlBc3NvY2lhdGVkTGl2ZVJhbmdlLT5kaWRE
aXNhc3NvY2lhdGVGcm9tU2VsZWN0aW9uKCk7Ci0gICAgLy8gRklYTUU6IE5lZWQgYWRkaXRpb25h
bCBjb2RlIHRvIGtlZXAgdGhlIGxpdmUgcmFuZ2Ugb2JqZWN0J3Mgd3JhcHBlciBhbGl2ZSB0byBw
cmVzZXJ2ZSBhbnkgSmF2YVNjcmlwdCBwcm9wZXJ0aWVzIG9uIGl0LgogfQogCiB2b2lkIEZyYW1l
U2VsZWN0aW9uOjphc3NvY2lhdGVMaXZlUmFuZ2UoUmFuZ2UmIGxpdmVSYW5nZSkKQEAgLTI4MjUs
MTAgKzI4MjQsMTMgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6dXBkYXRlRnJvbUFzc29jaWF0ZWRM
aXZlUmFuZ2UoKQogdm9pZCBGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQXNzb2NpYXRlZExpdmVSYW5n
ZSgpCiB7CiAgICAgYXV0byByYW5nZSA9IG1fc2VsZWN0aW9uLmZpcnN0UmFuZ2UoKTsKLSAgICBp
ZiAoIWNvbnRhaW5zRW5kcG9pbnRzKG1fZG9jdW1lbnQsIHJhbmdlKSkKKyAgICBpZiAoIWNvbnRh
aW5zRW5kcG9pbnRzKG1fZG9jdW1lbnQsIHJhbmdlKSkgeworICAgICAgICAvLyBUaGUgc2VsZWN0
aW9uIHdhcyBjbGVhcmVkIG9yIGlzIG5vdyB3aXRoaW4gYSBzaGFkb3cgdHJlZS4KICAgICAgICAg
ZGlzYXNzb2NpYXRlTGl2ZVJhbmdlKCk7Ci0gICAgZWxzZSBpZiAobV9hc3NvY2lhdGVkTGl2ZVJh
bmdlKQotICAgICAgICBtX2Fzc29jaWF0ZWRMaXZlUmFuZ2UtPnVwZGF0ZUZyb21TZWxlY3Rpb24o
KnJhbmdlKTsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAobV9hc3NvY2lhdGVkTGl2ZVJhbmdl
KQorICAgICAgICAgICAgbV9hc3NvY2lhdGVkTGl2ZVJhbmdlLT51cGRhdGVGcm9tU2VsZWN0aW9u
KCpyYW5nZSk7CisgICAgfQogfQogCiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTYxN2Y0NWIzYjFjYWNlOWNmMGJmMjcz
M2E0ZDdiM2YyZjVhODdjZC4uN2QzMTVkZDMzMzYwNTQxYWVkYmI2YmU4NTViMDczOGY5NGFmM2Yy
MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIwLTA5LTE4ICBEYXJpbiBBZGxlciAgPGRhcmlu
QGFwcGxlLmNvbT4KKworICAgICAgICBTZWxlY3Rpb24gQVBJOiBFeHRlbmQgbGlmZXRpbWUgb2Yg
c2VsZWN0aW9uIGxpdmUgcmFuZ2UgdG8gcHJlc2VydmUgZXhwYW5kbyBwcm9wZXJ0aWVzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTY3MjEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGVkaXRpbmcvc2Vs
ZWN0aW9uL2V4cGFuZG8tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3Nl
bGVjdGlvbi9leHBhbmRvLmh0bWw6IEFkZGVkLgorCisgICAgICAgICogVGVzdEV4cGVjdGF0aW9u
czogU2tpcCB0aGUgbmV3IHRlc3Qgc2luY2UgRHVtcFJlbmRlclRyZWUgZG9lc24ndCBzdXBwb3J0
IGVuYWJsaW5nCisgICAgICAgIGludGVybmFsIHByb3BlcnRpZXMuCisgICAgICAgICogcGxhdGZv
cm0vd2syL1Rlc3RFeHBlY3RhdGlvbnM6IFVuc2tpcCB0aGUgbmV3IHRlc3Qgc2luY2UgV2ViS2l0
VGVzdFJ1bm5lciBkb2VzLgorCiAyMDIwLTA5LTE4ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBw
bGUuY29tPgogCiAgICAgICAgIGNvbnNvbGUgQVBJcyBzaG91bGRuJ3QgY3Jhc2ggbWFraW5nIGEg
c3RyaW5nIHRoYXQncyB0b28gbG9uZyBmb3IgYSBjb25zb2xlIHdhcm5pbmcgd2hlbiB1c2luZyB1
c2VyIHByb3ZpZGVkIGxhYmVscwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0
aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYWFkZTY3OTdjNzkxZjEw
YzY4M2YxMTFkZDM5OTY4MGUyYTBjNjRiNC4uZmUzZGNhOGI5N2NmYzgwNWQ0MGVlNjIwMGQ2Mjkw
NDU3YjZjOGZmYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysg
Yi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC00NTM1LDMgKzQ1MzUsNiBAQCB3ZWJr
aXQub3JnL2IvMjE1NTMxIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1i
YWNrZ3JvdW5kcy9iYWNrZ3JvdQogCiAjIENvY29hLW9ubHkKIGh0dHAvdGVzdHMvbWVkaWEvaGxz
L2hscy1oZHItc3dpdGNoLmh0bWwgWyBTa2lwIF0KKworIyBUaGVzZSB0ZXN0cyByZWx5IG9uIHdl
YmtpdC10ZXN0LXJ1bm5lciBmbGFncyB0aGF0IGFyZW4ndCBpbXBsZW1lbnRlZCBmb3IgRHVtcFJl
bmRlclRyZWUsIHNvIHRoZXkgd2lsbCBmYWlsIHVuZGVyIGxlZ2FjeSBXZWJLaXQuCitlZGl0aW5n
L3NlbGVjdGlvbi9leHBhbmRvLmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2VkaXRpbmcvc2VsZWN0aW9uL2V4cGFuZG8tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZWRpdGluZy9zZWxlY3Rpb24vZXhwYW5kby1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGM2MjU0
MGFiODU2OWYxYWY1YjNkYTAzYzAyMGYzZmU1YTM2YWQxNwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2V4cGFuZG8tZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsNiBAQAorUEFTUyBhZGRSYW5nZUV4cGFuZG9Db3VudCgpIGlzIDIwCitQQVNTIGdldFJhbmdl
QXRFeHBhbmRvQ291bnQoKSBpcyAyMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0
aW9uL2V4cGFuZG8uaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2V4cGFuZG8u
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wNDVhNDQwMzcyYWMwOTc2ZTI5MzZlNzM5ZTNmNzcyZjkyMDk4MGE4
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZXhwYW5k
by5odG1sCkBAIC0wLDAgKzEsNTcgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3Qt
cnVubmVyIFsgaW50ZXJuYWw6TGl2ZVJhbmdlU2VsZWN0aW9uRW5hYmxlZD10cnVlIF0gLS0+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlw
dD4KKworZnVuY3Rpb24gY29sbGVjdEdhcmJhZ2UoKQoreworICAgIGlmICgiR0NDb250cm9sbGVy
IiBpbiB3aW5kb3cpIHsKKyAgICAgICAgR0NDb250cm9sbGVyLmNvbGxlY3QoKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKyAgICB2YXIgaSA9IDA7CisgICAgdmFyIHM7CisgICAgd2hpbGUgKGkg
PCA1MDAwKSB7CisgICAgICAgIGkgPSBpKzEuMTE7CisgICAgICAgIHMgPSBzICsgIiAiOworICAg
IH0KK30KKwordmFyIHJlcGV0aXRpb25zID0gMjA7CisKK2Z1bmN0aW9uIGFkZFJhbmdlRXhwYW5k
b0NvdW50KCkKK3sKKyAgICB2YXIgY291bnQgPSAwOworICAgIGZvciAobGV0IGkgPSAwOyBpIDwg
cmVwZXRpdGlvbnM7ICsraSkgeworICAgICAgICBnZXRTZWxlY3Rpb24oKS5yZW1vdmVBbGxSYW5n
ZXMoKTsKKyAgICAgICAgdmFyIHJhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTsKKyAgICAg
ICAgcmFuZ2Uuc2V0U3RhcnQoZG9jdW1lbnQsIDApOworICAgICAgICByYW5nZS5zZXRFbmQoZG9j
dW1lbnQsIDEpOworICAgICAgICByYW5nZS5leHBhbmRvID0gMTsKKyAgICAgICAgZ2V0U2VsZWN0
aW9uKCkuYWRkUmFuZ2UocmFuZ2UpOworICAgICAgICByYW5nZSA9IG51bGw7CisgICAgICAgIGNv
bGxlY3RHYXJiYWdlKCk7CisgICAgICAgIGlmIChnZXRTZWxlY3Rpb24oKS5nZXRSYW5nZUF0KDAp
LmV4cGFuZG8gPT0gMSkKKyAgICAgICAgICAgICsrY291bnQ7CisgICAgfQorICAgIHJldHVybiBj
b3VudDsKK30KKworZnVuY3Rpb24gZ2V0UmFuZ2VBdEV4cGFuZG9Db3VudCgpCit7CisgICAgdmFy
IGNvdW50ID0gMDsKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJlcGV0aXRpb25zOyArK2kpIHsK
KyAgICAgICAgZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVudChkb2N1bWVudCwgMCwgZG9j
dW1lbnQsIDEpOworICAgICAgICBnZXRTZWxlY3Rpb24oKS5nZXRSYW5nZUF0KDApLmV4cGFuZG8g
PSAxOworICAgICAgICBjb2xsZWN0R2FyYmFnZSgpOworICAgICAgICBpZiAoZ2V0U2VsZWN0aW9u
KCkuZ2V0UmFuZ2VBdCgwKS5leHBhbmRvID09IDEpCisgICAgICAgICAgICArK2NvdW50OworICAg
IH0KKyAgICByZXR1cm4gY291bnQ7Cit9CisKK3Nob3VsZEJlKCJhZGRSYW5nZUV4cGFuZG9Db3Vu
dCgpIiwgIiIgKyByZXBldGl0aW9ucyk7CitzaG91bGRCZSgiZ2V0UmFuZ2VBdEV4cGFuZG9Db3Vu
dCgpIiwgIiIgKyByZXBldGl0aW9ucyk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVl
OworCis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9UZXN0
RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMK
aW5kZXggMzM4OWQ5NGZmYjA2MTdhODdkMzlkNjBmNjhhODdjOTI4ZThkNGY2OC4uMWI4NDk0MzU5
ZDY1MjIyM2RlYTk4OGI2YjRhOTZkYjU1YjUwODY2NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTc5MCw2ICs3OTAsOSBAQCBtZWRpYS92aWRlby1zdXBw
b3J0cy1mdWxsc2NyZWVuLmh0bWwgWyBQYXNzIF0KIAogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvc3ZnLXRhcmdldC1yZWZ0ZXN0
Lmh0dHBzLmh0bWwgWyBQYXNzIF0KIAorIyBUaGVzZSB0ZXN0cyByZWx5IG9uIHdlYmtpdC10ZXN0
LXJ1bm5lciBmbGFncyB0aGF0IGFyZW4ndCBpbXBsZW1lbnRlZCBmb3IgRHVtcFJlbmRlclRyZWUs
IHNvIHRoZXkgd2lsbCBmYWlsIHVuZGVyIGxlZ2FjeSBXZWJLaXQuCitlZGl0aW5nL3NlbGVjdGlv
bi9leHBhbmRvLmh0bWwgWyBQYXNzIF0KKwogIyMjIEVORCBPRiAoNSkgUHJvZ3Jlc3Npb25zLCBl
eHBlY3RlZCBzdWNjZXNzZXMgdGhhdCBhcmUgZXhwZWN0ZWQgZmFpbHVyZXMgaW4gV2ViS2l0MS4K
ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409188</attachid>
            <date>2020-09-18 19:35:28 -0700</date>
            <delta_ts>2020-09-18 23:43:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216721-20200918193528.patch</filename>
            <type>text/plain</type>
            <size>8849</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3MzA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmI3ZjQ0NmNiZGUwYWU2
ZWY1N2M2NmZiNjQ5MjQxNGZmNjBkMzMzOC4uMzRiODRiYzYyNjRmMjcyOWNlOTMxYWJmNGJkYTM2
NzgwODJlZjA3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIwLTA5LTE4ICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBTZWxlY3Rpb24gQVBJOiBFeHRl
bmQgbGlmZXRpbWUgb2Ygc2VsZWN0aW9uIGxpdmUgcmFuZ2UgdG8gcHJlc2VydmUgZXhwYW5kbyBw
cm9wZXJ0aWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTY3MjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUZXN0OiBlZGl0aW5nL3NlbGVjdGlvbi9leHBhbmRvLmh0bWwKKworICAgICAgICAqIGRvbS9S
YW5nZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSYW5nZTo6d2luZG93KTogQWRkZWQuIFJldHVy
bnMgd2luZG93IGlmIHJhbmdlIGlzIGFzc29jaWF0ZWQgd2l0aCBzZWxlY3Rpb24uCisgICAgICAg
ICogZG9tL1JhbmdlLmg6IEFkZGVkIHdpbmRvdy4KKyAgICAgICAgKiBkb20vUmFuZ2UuaWRsOiBB
ZGRlZCBHZW5lcmF0ZUlzUmVhY2hhYmxlPVJlYWNoYWJsZUZyb21ET01XaW5kb3cuCisKKyAgICAg
ICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
U2VsZWN0aW9uOjpkaXNhc3NvY2lhdGVMaXZlUmFuZ2UpOiBSZW1vdmVkIGEgRklYTUUgY29tbWVu
dCBhYm91dCB0aGUKKyAgICAgICAgbmVlZCBmb3IgdGhpcyBmaXguCisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZVNlbGVjdGlvbjo6dXBkYXRlQXNzb2NpYXRlZExpdmVSYW5nZSk6IEFkZGVkIGEgY29t
bWVudCBleHBsYWluaW5nCisgICAgICAgIHdoeSBhbiBhc3NvY2lhdGVkIGxpdmUgcmFuZ2UgbWln
aHQgbm90IGJlIGNvbnRhaW5lZCBpbiB0aGUgZG9jdW1lbnQuCisKIDIwMjAtMDktMTggIFphbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtGRkNdIEFkZCBmbGV4
IGJveC9pdGVtIHRvIHNob3dMYXlvdXRUcmVlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vUmFuZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcAppbmRleCAxZmI4MjMy
ZTdjNjA2MjYzOTg2Nzc1ZjYzM2JhMDcyOWFiMmE1MTdmLi4xOGVlMzNmOTZiZGI3N2YyM2Y0MDIw
MGRjYjUwMWVmZWMyZjYzZWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAKQEAgLTEwNTAsNiArMTA1MCwx
MSBAQCB2b2lkIFJhbmdlOjp1cGRhdGVGcm9tU2VsZWN0aW9uKGNvbnN0IFNpbXBsZVJhbmdlJiB2
YWx1ZSkKICAgICBtX2lzQXNzb2NpYXRlZFdpdGhTZWxlY3Rpb24gPSB0cnVlOwogfQogCitET01X
aW5kb3cqIFJhbmdlOjp3aW5kb3coKSBjb25zdAoreworICAgIHJldHVybiBtX2lzQXNzb2NpYXRl
ZFdpdGhTZWxlY3Rpb24gPyBtX293bmVyRG9jdW1lbnQtPmRvbVdpbmRvdygpIDogbnVsbHB0cjsK
K30KKwogU2ltcGxlUmFuZ2UgbWFrZVNpbXBsZVJhbmdlKGNvbnN0IFJhbmdlJiByYW5nZSkKIHsK
ICAgICByZXR1cm4geyB7IHJhbmdlLnN0YXJ0Q29udGFpbmVyKCksIHJhbmdlLnN0YXJ0T2Zmc2V0
KCkgfSwgeyByYW5nZS5lbmRDb250YWluZXIoKSwgcmFuZ2UuZW5kT2Zmc2V0KCkgfSB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
UmFuZ2UuaAppbmRleCBkYTZmNDNlOWFhOGM0ZDMzOTQxYWI2Y2E4MWVkMzY5ZmIwMTY1OWNkLi40
ODdhOGIxYjg0OTRjZGRhMDgyMGFhZDE3NWE4YmYxMzgxMDg3ZjJkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vUmFuZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuaApA
QCAtMzAsNiArMzAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERPTVJlY3Q7CiBj
bGFzcyBET01SZWN0TGlzdDsKK2NsYXNzIERPTVdpbmRvdzsKIGNsYXNzIERvY3VtZW50RnJhZ21l
bnQ7CiBjbGFzcyBOb2RlV2l0aEluZGV4OwogY2xhc3MgVGV4dDsKQEAgLTEwMyw2ICsxMDQsOSBA
QCBwdWJsaWM6CiAgICAgdm9pZCBkaWREaXNhc3NvY2lhdGVGcm9tU2VsZWN0aW9uKCkgeyBtX2lz
QXNzb2NpYXRlZFdpdGhTZWxlY3Rpb24gPSBmYWxzZTsgfQogICAgIHZvaWQgdXBkYXRlRnJvbVNl
bGVjdGlvbihjb25zdCBTaW1wbGVSYW5nZSYpOwogCisgICAgLy8gRm9yIHVzZSBieSBnYXJiYWdl
IGNvbGxlY3Rpb24uIFJldHVybnMgbnVsbHB0ciBmb3IgcmFuZ2VzIG5vdCBhc3NvY2F0ZWQgd2l0
aCBzZWxlY3Rpb24uCisgICAgRE9NV2luZG93KiB3aW5kb3coKSBjb25zdDsKKwogICAgIHN0YXRp
YyBFeGNlcHRpb25PcjxOb2RlKj4gY2hlY2tOb2RlT2Zmc2V0UGFpcihOb2RlJiwgdW5zaWduZWQg
b2Zmc2V0KTsKIAogI2lmIEVOQUJMRShUUkVFX0RFQlVHR0lORykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9SYW5nZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuaWRsCmlu
ZGV4IGEyNzVjYzY4MzFlNGQxNTNmN2E2NjJhNzdiZGNlN2Q2N2JjODFiNDYuLjc3ZDgyM2Q4Y2Y0
Y2I4NWU2YTRiN2YzYTIwZmU1MmI3MGQyYzYzZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9SYW5nZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmlkbApAQCAtMTks
NiArMTksNyBAQAogICovCiAKIFsKKyAgICBHZW5lcmF0ZUlzUmVhY2hhYmxlPVJlYWNoYWJsZUZy
b21ET01XaW5kb3csCiAgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKICAgICBFeHBvcnRN
YWNybz1XRUJDT1JFX0VYUE9SVCwKIF0gaW50ZXJmYWNlIFJhbmdlIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKaW5kZXggZGZjOWEzYzliYjAzMTM5Yzc3MjNhNzUw
MTRiZTUwZDAxYTM1MGE1Zi4uOWM4ODk0YzRhNWRmNGE5MzAxNjg0NWRlOWUwZmRkZDQ0YWNlMDlj
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKQEAgLTI4MDEs
NyArMjgwMSw2IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OmRpc2Fzc29jaWF0ZUxpdmVSYW5nZSgp
CiB7CiAgICAgaWYgKGF1dG8gcHJldmlvdXNseUFzc29jaWF0ZWRMaXZlUmFuZ2UgPSBzdGQ6OmV4
Y2hhbmdlKG1fYXNzb2NpYXRlZExpdmVSYW5nZSwgbnVsbHB0cikpCiAgICAgICAgIHByZXZpb3Vz
bHlBc3NvY2lhdGVkTGl2ZVJhbmdlLT5kaWREaXNhc3NvY2lhdGVGcm9tU2VsZWN0aW9uKCk7Ci0g
ICAgLy8gRklYTUU6IE5lZWQgYWRkaXRpb25hbCBjb2RlIHRvIGtlZXAgdGhlIGxpdmUgcmFuZ2Ug
b2JqZWN0J3Mgd3JhcHBlciBhbGl2ZSB0byBwcmVzZXJ2ZSBhbnkgSmF2YVNjcmlwdCBwcm9wZXJ0
aWVzIG9uIGl0LgogfQogCiB2b2lkIEZyYW1lU2VsZWN0aW9uOjphc3NvY2lhdGVMaXZlUmFuZ2Uo
UmFuZ2UmIGxpdmVSYW5nZSkKQEAgLTI4MjUsMTAgKzI4MjQsMTMgQEAgdm9pZCBGcmFtZVNlbGVj
dGlvbjo6dXBkYXRlRnJvbUFzc29jaWF0ZWRMaXZlUmFuZ2UoKQogdm9pZCBGcmFtZVNlbGVjdGlv
bjo6dXBkYXRlQXNzb2NpYXRlZExpdmVSYW5nZSgpCiB7CiAgICAgYXV0byByYW5nZSA9IG1fc2Vs
ZWN0aW9uLmZpcnN0UmFuZ2UoKTsKLSAgICBpZiAoIWNvbnRhaW5zRW5kcG9pbnRzKG1fZG9jdW1l
bnQsIHJhbmdlKSkKKyAgICBpZiAoIWNvbnRhaW5zRW5kcG9pbnRzKG1fZG9jdW1lbnQsIHJhbmdl
KSkgeworICAgICAgICAvLyBUaGUgc2VsZWN0aW9uIHdhcyBjbGVhcmVkIG9yIGlzIG5vdyB3aXRo
aW4gYSBzaGFkb3cgdHJlZS4KICAgICAgICAgZGlzYXNzb2NpYXRlTGl2ZVJhbmdlKCk7Ci0gICAg
ZWxzZSBpZiAobV9hc3NvY2lhdGVkTGl2ZVJhbmdlKQotICAgICAgICBtX2Fzc29jaWF0ZWRMaXZl
UmFuZ2UtPnVwZGF0ZUZyb21TZWxlY3Rpb24oKnJhbmdlKTsKKyAgICB9IGVsc2UgeworICAgICAg
ICBpZiAobV9hc3NvY2lhdGVkTGl2ZVJhbmdlKQorICAgICAgICAgICAgbV9hc3NvY2lhdGVkTGl2
ZVJhbmdlLT51cGRhdGVGcm9tU2VsZWN0aW9uKCpyYW5nZSk7CisgICAgfQogfQogCiB9CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggMTYxN2Y0NWIzYjFjYWNlOWNmMGJmMjczM2E0ZDdiM2YyZjVhODdjZC4uN2QzMTVkZDMzMzYw
NTQxYWVkYmI2YmU4NTViMDczOGY5NGFmM2YyMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIw
LTA5LTE4ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBTZWxlY3Rp
b24gQVBJOiBFeHRlbmQgbGlmZXRpbWUgb2Ygc2VsZWN0aW9uIGxpdmUgcmFuZ2UgdG8gcHJlc2Vy
dmUgZXhwYW5kbyBwcm9wZXJ0aWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTY3MjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2V4cGFuZG8tZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9leHBhbmRvLmh0bWw6IEFkZGVkLgor
CisgICAgICAgICogVGVzdEV4cGVjdGF0aW9uczogU2tpcCB0aGUgbmV3IHRlc3Qgc2luY2UgRHVt
cFJlbmRlclRyZWUgZG9lc24ndCBzdXBwb3J0IGVuYWJsaW5nCisgICAgICAgIGludGVybmFsIHBy
b3BlcnRpZXMuCisgICAgICAgICogcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnM6IFVuc2tp
cCB0aGUgbmV3IHRlc3Qgc2luY2UgV2ViS2l0VGVzdFJ1bm5lciBkb2VzLgorCiAyMDIwLTA5LTE4
ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAgIGNvbnNvbGUgQVBJ
cyBzaG91bGRuJ3QgY3Jhc2ggbWFraW5nIGEgc3RyaW5nIHRoYXQncyB0b28gbG9uZyBmb3IgYSBj
b25zb2xlIHdhcm5pbmcgd2hlbiB1c2luZyB1c2VyIHByb3ZpZGVkIGxhYmVscwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3Rh
dGlvbnMKaW5kZXggYWFkZTY3OTdjNzkxZjEwYzY4M2YxMTFkZDM5OTY4MGUyYTBjNjRiNC4uZmUz
ZGNhOGI5N2NmYzgwNWQ0MGVlNjIwMGQ2MjkwNDU3YjZjOGZmYyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25z
CkBAIC00NTM1LDMgKzQ1MzUsNiBAQCB3ZWJraXQub3JnL2IvMjE1NTMxIGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1iYWNrZ3JvdW5kcy9iYWNrZ3JvdQogCiAjIENvY29h
LW9ubHkKIGh0dHAvdGVzdHMvbWVkaWEvaGxzL2hscy1oZHItc3dpdGNoLmh0bWwgWyBTa2lwIF0K
KworIyBUaGVzZSB0ZXN0cyByZWx5IG9uIHdlYmtpdC10ZXN0LXJ1bm5lciBmbGFncyB0aGF0IGFy
ZW4ndCBpbXBsZW1lbnRlZCBmb3IgRHVtcFJlbmRlclRyZWUsIHNvIHRoZXkgd2lsbCBmYWlsIHVu
ZGVyIGxlZ2FjeSBXZWJLaXQuCitlZGl0aW5nL3NlbGVjdGlvbi9leHBhbmRvLmh0bWwgWyBGYWls
dXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2V4cGFuZG8t
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZXhwYW5kby1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZGM2MjU0MGFiODU2OWYxYWY1YjNkYTAzYzAyMGYzZmU1YTM2
YWQxNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2V4
cGFuZG8tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorUEFTUyBhZGRSYW5nZUV4cGFuZG9D
b3VudCgpIGlzIDIwCitQQVNTIGdldFJhbmdlQXRFeHBhbmRvQ291bnQoKSBpcyAyMAorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2V4cGFuZG8uaHRtbCBiL0xheW91dFRlc3Rz
L2VkaXRpbmcvc2VsZWN0aW9uL2V4cGFuZG8uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNDVhNDQwMzcyYWMw
OTc2ZTI5MzZlNzM5ZTNmNzcyZjkyMDk4MGE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZWRpdGluZy9zZWxlY3Rpb24vZXhwYW5kby5odG1sCkBAIC0wLDAgKzEsNTcgQEAKKzwhRE9D
VFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgaW50ZXJuYWw6TGl2ZVJhbmdlU2Vs
ZWN0aW9uRW5hYmxlZD10cnVlIF0gLS0+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworZnVuY3Rpb24gY29sbGVjdEdhcmJhZ2Uo
KQoreworICAgIGlmICgiR0NDb250cm9sbGVyIiBpbiB3aW5kb3cpIHsKKyAgICAgICAgR0NDb250
cm9sbGVyLmNvbGxlY3QoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICB2YXIgaSA9IDA7
CisgICAgdmFyIHM7CisgICAgd2hpbGUgKGkgPCA1MDAwKSB7CisgICAgICAgIGkgPSBpKzEuMTE7
CisgICAgICAgIHMgPSBzICsgIiAiOworICAgIH0KK30KKwordmFyIHJlcGV0aXRpb25zID0gMjA7
CisKK2Z1bmN0aW9uIGFkZFJhbmdlRXhwYW5kb0NvdW50KCkKK3sKKyAgICB2YXIgY291bnQgPSAw
OworICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcmVwZXRpdGlvbnM7ICsraSkgeworICAgICAgICBn
ZXRTZWxlY3Rpb24oKS5yZW1vdmVBbGxSYW5nZXMoKTsKKyAgICAgICAgdmFyIHJhbmdlID0gZG9j
dW1lbnQuY3JlYXRlUmFuZ2UoKTsKKyAgICAgICAgcmFuZ2Uuc2V0U3RhcnQoZG9jdW1lbnQsIDAp
OworICAgICAgICByYW5nZS5zZXRFbmQoZG9jdW1lbnQsIDEpOworICAgICAgICByYW5nZS5leHBh
bmRvID0gMTsKKyAgICAgICAgZ2V0U2VsZWN0aW9uKCkuYWRkUmFuZ2UocmFuZ2UpOworICAgICAg
ICByYW5nZSA9IG51bGw7CisgICAgICAgIGNvbGxlY3RHYXJiYWdlKCk7CisgICAgICAgIGlmIChn
ZXRTZWxlY3Rpb24oKS5nZXRSYW5nZUF0KDApLmV4cGFuZG8gPT0gMSkKKyAgICAgICAgICAgICsr
Y291bnQ7CisgICAgfQorICAgIHJldHVybiBjb3VudDsKK30KKworZnVuY3Rpb24gZ2V0UmFuZ2VB
dEV4cGFuZG9Db3VudCgpCit7CisgICAgdmFyIGNvdW50ID0gMDsKKyAgICBmb3IgKGxldCBpID0g
MDsgaSA8IHJlcGV0aXRpb25zOyArK2kpIHsKKyAgICAgICAgZ2V0U2VsZWN0aW9uKCkuc2V0QmFz
ZUFuZEV4dGVudChkb2N1bWVudCwgMCwgZG9jdW1lbnQsIDEpOworICAgICAgICBnZXRTZWxlY3Rp
b24oKS5nZXRSYW5nZUF0KDApLmV4cGFuZG8gPSAxOworICAgICAgICBjb2xsZWN0R2FyYmFnZSgp
OworICAgICAgICBpZiAoZ2V0U2VsZWN0aW9uKCkuZ2V0UmFuZ2VBdCgwKS5leHBhbmRvID09IDEp
CisgICAgICAgICAgICArK2NvdW50OworICAgIH0KKyAgICByZXR1cm4gY291bnQ7Cit9CisKK3No
b3VsZEJlKCJhZGRSYW5nZUV4cGFuZG9Db3VudCgpIiwgIiIgKyByZXBldGl0aW9ucyk7CitzaG91
bGRCZSgiZ2V0UmFuZ2VBdEV4cGFuZG9Db3VudCgpIiwgIiIgKyByZXBldGl0aW9ucyk7CisKK3Zh
ciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworCis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMzM4OWQ5NGZmYjA2MTdhODdkMzlkNjBm
NjhhODdjOTI4ZThkNGY2OC4uMWI4NDk0MzU5ZDY1MjIyM2RlYTk4OGI2YjRhOTZkYjU1YjUwODY2
NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTc5MCw2
ICs3OTAsOSBAQCBtZWRpYS92aWRlby1zdXBwb3J0cy1mdWxsc2NyZWVuLmh0bWwgWyBQYXNzIF0K
IAogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvc3ZnLXRhcmdldC1yZWZ0ZXN0Lmh0dHBzLmh0bWwgWyBQYXNzIF0KIAorIyBUaGVz
ZSB0ZXN0cyByZWx5IG9uIHdlYmtpdC10ZXN0LXJ1bm5lciBmbGFncyB0aGF0IGFyZW4ndCBpbXBs
ZW1lbnRlZCBmb3IgRHVtcFJlbmRlclRyZWUsIHNvIHRoZXkgd2lsbCBmYWlsIHVuZGVyIGxlZ2Fj
eSBXZWJLaXQuCitlZGl0aW5nL3NlbGVjdGlvbi9leHBhbmRvLmh0bWwgWyBQYXNzIF0KKwogIyMj
IEVORCBPRiAoNSkgUHJvZ3Jlc3Npb25zLCBleHBlY3RlZCBzdWNjZXNzZXMgdGhhdCBhcmUgZXhw
ZWN0ZWQgZmFpbHVyZXMgaW4gV2ViS2l0MS4KICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMKIAo=
</data>
<flag name="review"
          id="424799"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
      

    </bug>

</bugzilla>