<?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>227052</bug_id>
          
          <creation_ts>2021-06-15 16:14:38 -0700</creation_ts>
          <short_desc>AssemblyHelpers should save/restore callee save FPRs</short_desc>
          <delta_ts>2021-06-16 09:09:34 -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>JavaScriptCore</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="Tadeu Zagallo">tzagallo</reporter>
          <assigned_to name="Tadeu Zagallo">tzagallo</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1770000</commentid>
    <comment_count>0</comment_count>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2021-06-15 16:14:38 -0700</bug_when>
    <thetext>&lt;rdar://77080162&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1770012</commentid>
    <comment_count>1</comment_count>
      <attachid>431496</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2021-06-15 16:35:42 -0700</bug_when>
    <thetext>Created attachment 431496
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1770017</commentid>
    <comment_count>2</comment_count>
      <attachid>431496</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-06-15 16:46:08 -0700</bug_when>
    <thetext>Comment on attachment 431496
Patch

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

&gt; Source/JavaScriptCore/jit/AssemblyHelpers.h:344
&gt; +            if (entry.reg().isGPR())
&gt; +                storePtr(entry.reg().gpr(), Address(framePointerRegister, entry.offset()));
&gt; +            else
&gt; +                storeDouble(entry.reg().fpr(), Address(framePointerRegister, entry.offset()));

You can just do:
    storeReg(entry.reg(), Address(framePointerRegister, entry.offset()));

&gt; Source/JavaScriptCore/jit/AssemblyHelpers.h:383
&gt; +                if (entry.reg().isGPR())
&gt; +                    storePtr(entry.reg().gpr(), Address(framePointerRegister, offsetVirtualRegister.offsetInBytes() + entry.offset()));
&gt; +                else
&gt; +                    storeDouble(entry.reg().fpr(), Address(framePointerRegister, offsetVirtualRegister.offsetInBytes() + entry.offset()));
&gt; +            }

Pretty sure this is not needed because this function is only ever called with a baseline CodeBlock.  Please check if I&apos;m wrong.  If it is baseline CodeBlock only, then just RELEASE_ASSERT the Codeblock JITType at the top.

&gt; Source/JavaScriptCore/jit/AssemblyHelpers.h:407
&gt; +            if (entry.reg().isGPR())
&gt; +                loadPtr(Address(framePointerRegister, entry.offset()), entry.reg().gpr());
&gt; +            else
&gt; +                loadDouble(Address(framePointerRegister, entry.offset()), entry.reg().fpr());

Just use loadReg(Address(framePointerRegister, entry.offset()), entry.reg());</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1770021</commentid>
    <comment_count>3</comment_count>
      <attachid>431498</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2021-06-15 16:55:58 -0700</bug_when>
    <thetext>Created attachment 431498
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1770023</commentid>
    <comment_count>4</comment_count>
      <attachid>431499</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2021-06-15 17:01:32 -0700</bug_when>
    <thetext>Created attachment 431499
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1770025</commentid>
    <comment_count>5</comment_count>
      <attachid>431499</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-06-15 17:09:00 -0700</bug_when>
    <thetext>Comment on attachment 431499
Patch

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

r=me with ChangeLog fixes.

&gt; Source/JavaScriptCore/ChangeLog:9
&gt; +        We have 3 functions in AssemblyHelpers to save and restore callee save registers that were filtering

4 functions (according to this patch), not 3.

&gt; Source/JavaScriptCore/ChangeLog:10
&gt; +        out any FPRs. This is an issue since we do have callee save FPRs in arm64 and these helpers can be

/these helpers can be/there are helpers/?  Otherwise, it&apos;s not clear which helpers the &quot;these helpers&quot; refer to.

&gt; Source/JavaScriptCore/ChangeLog:11
&gt; +        called from the FTL, which uses those callee saves. The test case shows how that&apos;s an issue with tail

remove the &apos;,&apos; to go with the above edit?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1770029</commentid>
    <comment_count>6</comment_count>
      <attachid>431499</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2021-06-15 17:15:34 -0700</bug_when>
    <thetext>Comment on attachment 431499
Patch

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

Thanks for the reviews, I&apos;ll reword the changelog.

&gt;&gt; Source/JavaScriptCore/ChangeLog:9
&gt;&gt; +        We have 3 functions in AssemblyHelpers to save and restore callee save registers that were filtering
&gt; 
&gt; 4 functions (according to this patch), not 3.

There are 3 functions in AssemblyHelpers and one in DFGOSREntry, which I mention below.

&gt;&gt; Source/JavaScriptCore/ChangeLog:10
&gt;&gt; +        out any FPRs. This is an issue since we do have callee save FPRs in arm64 and these helpers can be
&gt; 
&gt; /these helpers can be/there are helpers/?  Otherwise, it&apos;s not clear which helpers the &quot;these helpers&quot; refer to.

I think the issue is because I edited the other part of the phrase, but forgot about this one. I meant to say &quot;these functions&quot;, referring to the &quot;3 functions&quot; from the previous sentence.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1770035</commentid>
    <comment_count>7</comment_count>
      <attachid>431499</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-06-15 17:20:37 -0700</bug_when>
    <thetext>Comment on attachment 431499
Patch

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

&gt;&gt;&gt; Source/JavaScriptCore/ChangeLog:9
&gt;&gt;&gt; +        We have 3 functions in AssemblyHelpers to save and restore callee save registers that were filtering
&gt;&gt; 
&gt;&gt; 4 functions (according to this patch), not 3.
&gt; 
&gt; There are 3 functions in AssemblyHelpers and one in DFGOSREntry, which I mention below.

ok.

&gt;&gt;&gt; Source/JavaScriptCore/ChangeLog:10
&gt;&gt;&gt; +        out any FPRs. This is an issue since we do have callee save FPRs in arm64 and these helpers can be
&gt;&gt; 
&gt;&gt; /these helpers can be/there are helpers/?  Otherwise, it&apos;s not clear which helpers the &quot;these helpers&quot; refer to.
&gt; 
&gt; I think the issue is because I edited the other part of the phrase, but forgot about this one. I meant to say &quot;these functions&quot;, referring to the &quot;3 functions&quot; from the previous sentence.

ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1770196</commentid>
    <comment_count>8</comment_count>
      <attachid>431549</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2021-06-16 08:29:12 -0700</bug_when>
    <thetext>Created attachment 431549
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1770211</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-16 09:09:32 -0700</bug_when>
    <thetext>Committed r278937 (238868@main): &lt;https://commits.webkit.org/238868@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 431549.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431496</attachid>
            <date>2021-06-15 16:35:42 -0700</date>
            <delta_ts>2021-06-15 16:55:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227052-20210615163541.patch</filename>
            <type>text/plain</type>
            <size>10252</size>
            <attacher name="Tadeu Zagallo">tzagallo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4NjYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
ZWVmYmJjNjg5MDkwMDQwMjFiZWJmOWM0YzI1MGM0NjI0NGY3ODk2Li43OWI1NTM0M2QyZGZjNWYz
N2NkMjMwOGUzYWQyYTRjMmQzYzJlMzk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOSBAQAorMjAyMS0wNi0xNSAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNv
bT4KKworICAgICAgICBBc3NlbWJseUhlbHBlcnMgc2hvdWxkIHNhdmUvcmVzdG9yZSBjYWxsZWUg
c2F2ZSBGUFJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMjcwNTIKKyAgICAgICAgPHJkYXI6Ly83NzA4MDE2Mj4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZSBoYXZlIDMgZnVuY3Rpb25zIGluIEFzc2Vt
Ymx5SGVscGVycyB0byBzYXZlIGFuZCByZXN0b3JlIGNhbGxlZSBzYXZlIHJlZ2lzdGVycyB0aGF0
IHdlcmUgZmlsdGVyaW5nCisgICAgICAgIG91dCBhbnkgRlBScy4gVGhpcyBpcyBhbiBpc3N1ZSBz
aW5jZSB3ZSBkbyBoYXZlIGNhbGxlZSBzYXZlIEZQUnMgaW4gYXJtNjQgYW5kIHRoZXNlIGhlbHBl
cnMgY2FuIGJlCisgICAgICAgIGNhbGxlZCBmcm9tIHRoZSBGVEwsIHdoaWNoIHVzZXMgdGhvc2Ug
Y2FsbGVlIHNhdmVzLiBUaGUgdGVzdCBjYXNlIHNob3dzIGhvdyB0aGF0J3MgYW4gaXNzdWUgd2l0
aCB0YWlsCisgICAgICAgIGNhbGxzIG9uIEZUTDogdGhlIGNhbGxlZSBzYXZlcyBhcmUgY29ycmVj
dGx5IHN0b3JlZCBpbiB0aGUgcHJvbG9ndWUgYW5kIHJlc3RvcmVkIGluIHRoZSBlcGlsb2d1ZSwg
YnV0CisgICAgICAgIHdoZW4gZW1pdHRpbmcgYSB0YWlsIGNhbGwgd2UgdXNlIEFzc2VtYmx5SGVs
cGVyczo6ZW1pdFJlc3RvcmVDYWxsZWVTYXZlcyB0byByZXN0b3JlIHRoZSBjYWxsZWUgc2F2ZXMs
CisgICAgICAgIHdoaWNoIGRvZXNuJ3QgcmVzdG9yZSBGUFJzLiBUaGlzIHJlc3VsdHMgaW4gdGhl
IGNhbGxlZSBzYXZlIEZQUnMgYmVpbmcgdHJhc2hlZC4gVG8gZml4IHRoaXMgd2UganVzdCBuZWVk
CisgICAgICAgIHRvIHN0b3AgZmlsdGVyaW5nIG91dCB0aGUgRlBScywgaWYgdGhleSBhcmUgbGlz
dGVkIGFzIHVzZWQgYnkgdGhlIGNvZGUgYmxvY2sgdGhleSBzaG91bGQgYmUgc2F2ZWQvcmVzdG9y
ZWQKKyAgICAgICAgYWNjb3JkaW5nbHkuIEkgYWxzbyBjaGFuZ2VkIERGR09TUkVudHJ5IHRvIHN0
b3AgZmlsdGVyaW5nIG91dCB0aGUgY2FsbGVlIHNhdmUgRlBScyBhbmQgaW5zdGVhZCBhc3NlcnQK
KyAgICAgICAgdGhlcmUgYXJlbid0IGFueSwgc2luY2UgdGhleSBhcmVuJ3QgY3VycmVudGx5IHVz
ZWQgaW4gdGhlIERGRywgYnV0IGl0IGNvdWxkIGhlbHAgYXZvaWQgdGhlIHNhbWUgaXNzdWUgaW4K
KyAgICAgICAgdGhlIGZ1dHVyZS4KKworICAgICAgICAqIGRmZy9ERkdPU1JFbnRyeS5jcHA6Cisg
ICAgICAgIChKU0M6OkRGRzo6cHJlcGFyZU9TUkVudHJ5KToKKyAgICAgICAgKiBqaXQvQXNzZW1i
bHlIZWxwZXJzLmg6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6ZW1pdFNhdmVDYWxs
ZWVTYXZlc0Zvcik6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6ZW1pdFNhdmVPckNv
cHlDYWxsZWVTYXZlc0Zvcik6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6ZW1pdFJl
c3RvcmVDYWxsZWVTYXZlc0Zvcik6CisKIDIwMjEtMDYtMDkgIE1pa2hhaWwgUi4gR2FkZWxoYSAg
PG1pa2hhaWxAaWdhbGlhLmNvbT4KIAogICAgICAgICBGaXggaW5hZHZlcnRlbnQgdGFnIGNvcnJ1
cHRpb24gaW4gZnVuY3Rpb25BZGRyZXNzT2YKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHT1NSRW50cnkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
U1JFbnRyeS5jcHAKaW5kZXggYWVhNDg0NGRjMWIwN2NmY2NkYjIwMzU2NzFhMzYzOGRlYjI3ZGRm
My4uYThjMTQwNjZlMGFkZTAwYzY5OTBlNmNhMDZiODg4ODZlZTZkZGU5OSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFbnRyeS5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFbnRyeS5jcHAKQEAgLTI5Nyw3ICsyOTcsNyBAQCB2b2lk
KiBwcmVwYXJlT1NSRW50cnkoVk0mIHZtLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSwgQ29kZUJsb2Nr
KiBjb2RlQmxvY2ssIEJ5dGVjbwogI2lmIE5VTUJFUl9PRl9DQUxMRUVfU0FWRVNfUkVHSVNURVJT
ID4gMAogICAgIGNvbnN0IFJlZ2lzdGVyQXRPZmZzZXRMaXN0KiByZWdpc3RlclNhdmVMb2NhdGlv
bnMgPSBjb2RlQmxvY2stPmNhbGxlZVNhdmVSZWdpc3RlcnMoKTsKICAgICBSZWdpc3RlckF0T2Zm
c2V0TGlzdCogYWxsQ2FsbGVlU2F2ZXMgPSBSZWdpc3RlclNldDo6dm1DYWxsZWVTYXZlUmVnaXN0
ZXJPZmZzZXRzKCk7Ci0gICAgUmVnaXN0ZXJTZXQgZG9udFNhdmVSZWdpc3RlcnMgPSBSZWdpc3Rl
clNldChSZWdpc3RlclNldDo6c3RhY2tSZWdpc3RlcnMoKSwgUmVnaXN0ZXJTZXQ6OmFsbEZQUnMo
KSk7CisgICAgUmVnaXN0ZXJTZXQgZG9udFNhdmVSZWdpc3RlcnMgPSBSZWdpc3RlclNldChSZWdp
c3RlclNldDo6c3RhY2tSZWdpc3RlcnMoKSk7CiAKICAgICB1bnNpZ25lZCByZWdpc3RlckNvdW50
ID0gcmVnaXN0ZXJTYXZlTG9jYXRpb25zLT5zaXplKCk7CiAgICAgVk1FbnRyeVJlY29yZCogcmVj
b3JkID0gdm1FbnRyeVJlY29yZCh2bS50b3BFbnRyeUZyYW1lKTsKQEAgLTMwNSw2ICszMDUsNyBA
QCB2b2lkKiBwcmVwYXJlT1NSRW50cnkoVk0mIHZtLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSwgQ29k
ZUJsb2NrKiBjb2RlQmxvY2ssIEJ5dGVjbwogICAgICAgICBSZWdpc3RlckF0T2Zmc2V0IGN1cnJl
bnRFbnRyeSA9IHJlZ2lzdGVyU2F2ZUxvY2F0aW9ucy0+YXQoaSk7CiAgICAgICAgIGlmIChkb250
U2F2ZVJlZ2lzdGVycy5nZXQoY3VycmVudEVudHJ5LnJlZygpKSkKICAgICAgICAgICAgIGNvbnRp
bnVlOworICAgICAgICBSRUxFQVNFX0FTU0VSVChjdXJyZW50RW50cnkucmVnKCkuaXNHUFIoKSk7
CiAgICAgICAgIFJlZ2lzdGVyQXRPZmZzZXQqIGNhbGxlZVNhdmVzRW50cnkgPSBhbGxDYWxsZWVT
YXZlcy0+ZmluZChjdXJyZW50RW50cnkucmVnKCkpOwogICAgICAgICAKICAgICAgICAgaWYgY29u
c3RleHByIChDYWxsZXJGcmFtZUFuZFBDOjpzaXplSW5SZWdpc3RlcnMgPT0gMikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCmluZGV4IGRkZjE2M2JkNzA3NjFl
ZDhmZDY1ZGIzNzdkNDVkMzg5NmY2YjNiYjcuLjczMWMxOGI1ODZkZWFhYTU5NDI4ZWUyM2E5MWZk
ODcxZWVhNTE4MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1i
bHlIZWxwZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBl
cnMuaApAQCAtMzMxLDE0ICszMzEsMTcgQEAgcHVibGljOgogCiAgICAgdm9pZCBlbWl0U2F2ZUNh
bGxlZVNhdmVzRm9yKGNvbnN0IFJlZ2lzdGVyQXRPZmZzZXRMaXN0KiBjYWxsZWVTYXZlcykKICAg
ICB7Ci0gICAgICAgIFJlZ2lzdGVyU2V0IGRvbnRTYXZlUmVnaXN0ZXJzID0gUmVnaXN0ZXJTZXQo
UmVnaXN0ZXJTZXQ6OnN0YWNrUmVnaXN0ZXJzKCksIFJlZ2lzdGVyU2V0OjphbGxGUFJzKCkpOwor
ICAgICAgICBSZWdpc3RlclNldCBkb250U2F2ZVJlZ2lzdGVycyA9IFJlZ2lzdGVyU2V0KFJlZ2lz
dGVyU2V0OjpzdGFja1JlZ2lzdGVycygpKTsKICAgICAgICAgdW5zaWduZWQgcmVnaXN0ZXJDb3Vu
dCA9IGNhbGxlZVNhdmVzLT5zaXplKCk7CiAKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IHJlZ2lzdGVyQ291bnQ7IGkrKykgewogICAgICAgICAgICAgUmVnaXN0ZXJBdE9mZnNldCBl
bnRyeSA9IGNhbGxlZVNhdmVzLT5hdChpKTsKICAgICAgICAgICAgIGlmIChkb250U2F2ZVJlZ2lz
dGVycy5nZXQoZW50cnkucmVnKCkpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAg
ICAgICAgc3RvcmVQdHIoZW50cnkucmVnKCkuZ3ByKCksIEFkZHJlc3MoZnJhbWVQb2ludGVyUmVn
aXN0ZXIsIGVudHJ5Lm9mZnNldCgpKSk7CisgICAgICAgICAgICBpZiAoZW50cnkucmVnKCkuaXNH
UFIoKSkKKyAgICAgICAgICAgICAgICBzdG9yZVB0cihlbnRyeS5yZWcoKS5ncHIoKSwgQWRkcmVz
cyhmcmFtZVBvaW50ZXJSZWdpc3RlciwgZW50cnkub2Zmc2V0KCkpKTsKKyAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgICBzdG9yZURvdWJsZShlbnRyeS5yZWcoKS5mcHIoKSwgQWRkcmVz
cyhmcmFtZVBvaW50ZXJSZWdpc3RlciwgZW50cnkub2Zmc2V0KCkpKTsKICAgICAgICAgfQogICAg
IH0KICAgICAKQEAgLTM0OSw3ICszNTIsNyBAQCBwdWJsaWM6CiAgICAgICAgIEFTU0VSVChjb2Rl
QmxvY2spOwogICAgICAgICAKICAgICAgICAgY29uc3QgUmVnaXN0ZXJBdE9mZnNldExpc3QqIGNh
bGxlZVNhdmVzID0gY29kZUJsb2NrLT5jYWxsZWVTYXZlUmVnaXN0ZXJzKCk7Ci0gICAgICAgIFJl
Z2lzdGVyU2V0IGRvbnRTYXZlUmVnaXN0ZXJzID0gUmVnaXN0ZXJTZXQoUmVnaXN0ZXJTZXQ6OnN0
YWNrUmVnaXN0ZXJzKCksIFJlZ2lzdGVyU2V0OjphbGxGUFJzKCkpOworICAgICAgICBSZWdpc3Rl
clNldCBkb250U2F2ZVJlZ2lzdGVycyA9IFJlZ2lzdGVyU2V0KFJlZ2lzdGVyU2V0OjpzdGFja1Jl
Z2lzdGVycygpKTsKICAgICAgICAgdW5zaWduZWQgcmVnaXN0ZXJDb3VudCA9IGNhbGxlZVNhdmVz
LT5zaXplKCk7CiAKICNpZiBVU0UoSlNWQUxVRTY0KQpAQCAtMzYxLDIwICszNjQsMjMgQEAgcHVi
bGljOgogICAgICAgICAgICAgaWYgKGRvbnRTYXZlUmVnaXN0ZXJzLmdldChlbnRyeS5yZWcoKSkp
CiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIEdQ
UlJlZyByZWdpc3RlclRvV3JpdGU7Ci0gICAgICAgICAgICAKICNpZiBVU0UoSlNWQUxVRTMyXzY0
KQogICAgICAgICAgICAgVU5VU0VEX1BBUkFNKHRhZ1JlZ2lzdGVyTW9kZSk7CiAgICAgICAgICAg
ICBVTlVTRURfUEFSQU0odGVtcCk7CisKKyAgICAgICAgICAgIHsKICNlbHNlCiAgICAgICAgICAg
ICBpZiAodGFnUmVnaXN0ZXJNb2RlID09IENvcHlCYXNlbGluZUNhbGxlZVNhdmVkUmVnaXN0ZXJz
RnJvbUJhc2VGcmFtZSAmJiBiYXNlbGluZUNhbGxlZVNhdmVzLmdldChlbnRyeS5yZWcoKSkpIHsK
LSAgICAgICAgICAgICAgICByZWdpc3RlclRvV3JpdGUgPSB0ZW1wOwotICAgICAgICAgICAgICAg
IGxvYWRQdHIoQXNzZW1ibHlIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lz
dGVyLCBlbnRyeS5vZmZzZXQoKSksIHJlZ2lzdGVyVG9Xcml0ZSk7Ci0gICAgICAgICAgICB9IGVs
c2UKKyAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChlbnRyeS5yZWcoKS5pc0dQUigpKTsK
KyAgICAgICAgICAgICAgICBsb2FkUHRyKEFzc2VtYmx5SGVscGVyczo6QWRkcmVzcyhHUFJJbmZv
OjpjYWxsRnJhbWVSZWdpc3RlciwgZW50cnkub2Zmc2V0KCkpLCB0ZW1wKTsKKyAgICAgICAgICAg
ICAgICBzdG9yZVB0cih0ZW1wLCBBZGRyZXNzKGZyYW1lUG9pbnRlclJlZ2lzdGVyLCBvZmZzZXRW
aXJ0dWFsUmVnaXN0ZXIub2Zmc2V0SW5CeXRlcygpICsgZW50cnkub2Zmc2V0KCkpKTsKKyAgICAg
ICAgICAgIH0gZWxzZSB7CiAjZW5kaWYKLSAgICAgICAgICAgICAgICByZWdpc3RlclRvV3JpdGUg
PSBlbnRyeS5yZWcoKS5ncHIoKTsKLQotICAgICAgICAgICAgc3RvcmVQdHIocmVnaXN0ZXJUb1dy
aXRlLCBBZGRyZXNzKGZyYW1lUG9pbnRlclJlZ2lzdGVyLCBvZmZzZXRWaXJ0dWFsUmVnaXN0ZXIu
b2Zmc2V0SW5CeXRlcygpICsgZW50cnkub2Zmc2V0KCkpKTsKKyAgICAgICAgICAgICAgICBpZiAo
ZW50cnkucmVnKCkuaXNHUFIoKSkKKyAgICAgICAgICAgICAgICAgICAgc3RvcmVQdHIoZW50cnku
cmVnKCkuZ3ByKCksIEFkZHJlc3MoZnJhbWVQb2ludGVyUmVnaXN0ZXIsIG9mZnNldFZpcnR1YWxS
ZWdpc3Rlci5vZmZzZXRJbkJ5dGVzKCkgKyBlbnRyeS5vZmZzZXQoKSkpOworICAgICAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgc3RvcmVEb3VibGUoZW50cnkucmVnKCkuZnBy
KCksIEFkZHJlc3MoZnJhbWVQb2ludGVyUmVnaXN0ZXIsIG9mZnNldFZpcnR1YWxSZWdpc3Rlci5v
ZmZzZXRJbkJ5dGVzKCkgKyBlbnRyeS5vZmZzZXQoKSkpOworICAgICAgICAgICAgfQogICAgICAg
ICB9CiAgICAgfQogICAgIApAQCAtMzg4LDE0ICszOTQsMTcgQEAgcHVibGljOgogCiAgICAgdm9p
ZCBlbWl0UmVzdG9yZUNhbGxlZVNhdmVzRm9yKGNvbnN0IFJlZ2lzdGVyQXRPZmZzZXRMaXN0KiBj
YWxsZWVTYXZlcykKICAgICB7Ci0gICAgICAgIFJlZ2lzdGVyU2V0IGRvbnRSZXN0b3JlUmVnaXN0
ZXJzID0gUmVnaXN0ZXJTZXQoUmVnaXN0ZXJTZXQ6OnN0YWNrUmVnaXN0ZXJzKCksIFJlZ2lzdGVy
U2V0OjphbGxGUFJzKCkpOworICAgICAgICBSZWdpc3RlclNldCBkb250UmVzdG9yZVJlZ2lzdGVy
cyA9IFJlZ2lzdGVyU2V0KFJlZ2lzdGVyU2V0OjpzdGFja1JlZ2lzdGVycygpKTsKICAgICAgICAg
dW5zaWduZWQgcmVnaXN0ZXJDb3VudCA9IGNhbGxlZVNhdmVzLT5zaXplKCk7CiAgICAgICAgIAog
ICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcmVnaXN0ZXJDb3VudDsgaSsrKSB7CiAg
ICAgICAgICAgICBSZWdpc3RlckF0T2Zmc2V0IGVudHJ5ID0gY2FsbGVlU2F2ZXMtPmF0KGkpOwog
ICAgICAgICAgICAgaWYgKGRvbnRSZXN0b3JlUmVnaXN0ZXJzLmdldChlbnRyeS5yZWcoKSkpCiAg
ICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICBsb2FkUHRyKEFkZHJlc3MoZnJh
bWVQb2ludGVyUmVnaXN0ZXIsIGVudHJ5Lm9mZnNldCgpKSwgZW50cnkucmVnKCkuZ3ByKCkpOwor
ICAgICAgICAgICAgaWYgKGVudHJ5LnJlZygpLmlzR1BSKCkpCisgICAgICAgICAgICAgICAgbG9h
ZFB0cihBZGRyZXNzKGZyYW1lUG9pbnRlclJlZ2lzdGVyLCBlbnRyeS5vZmZzZXQoKSksIGVudHJ5
LnJlZygpLmdwcigpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBsb2FkRG91
YmxlKEFkZHJlc3MoZnJhbWVQb2ludGVyUmVnaXN0ZXIsIGVudHJ5Lm9mZnNldCgpKSwgZW50cnku
cmVnKCkuZnByKCkpOwogICAgICAgICB9CiAgICAgfQogCmRpZmYgLS1naXQgYS9KU1Rlc3RzL0No
YW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IGZkYzM4NjY2ZjhmM2E0OGNjYjFlN2U3
NmI1YjlhZGFhOTU4ZmZkMjMuLjhiZGUwMTU3NmEyZTlmNjdkNDUwYjc0MjAxZTUzMjY5OTgyMTFk
NjEgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTggQEAKKzIwMjEtMDYtMTUgIFRhZGV1IFphZ2FsbG8gIDx0emFnYWxsb0Bh
cHBsZS5jb20+CisKKyAgICAgICAgQXNzZW1ibHlIZWxwZXJzIHNob3VsZCBzYXZlL3Jlc3RvcmUg
Y2FsbGVlIHNhdmUgRlBScworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjI3MDUyCisgICAgICAgIDxyZGFyOi8vNzcwODAxNjI+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdHJlc3MvY2FsbGVlLXNhdmUt
ZnByLmpzOiBBZGRlZC4KKyAgICAgICAgKF9mKToKKyAgICAgICAgKF9nKToKKyAgICAgICAgKF9o
KToKKyAgICAgICAgKF9pKToKKyAgICAgICAgKGFzc2VydEVxdWFsKToKKwogMjAyMS0wNi0wNiAg
WXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIFVzZSBS
ZXNvbHZlZENsb3N1cmVWYXIgdG8gZ2V0IGJyYW5kIGZyb20gc2NvcGUKZGlmZiAtLWdpdCBhL0pT
VGVzdHMvc3RyZXNzL2NhbGxlZS1zYXZlLWZwci5qcyBiL0pTVGVzdHMvc3RyZXNzL2NhbGxlZS1z
YXZlLWZwci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYzkwYmY4MjMyOTYwMzAwMWE4ZDVlYTUyMmY5MWMzMzJl
MzAwYTI1Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvY2FsbGVlLXNhdmUtZnBy
LmpzCkBAIC0wLDAgKzEsMTAzIEBACisndXNlIHN0cmljdCc7CisKK2Z1bmN0aW9uIF9mKGExLCBh
MiwgYSwgYiwgYywgZCwgZSwgZiwgZywgaCwgaSwgaiwgaywgbCwgbSwgbiwgbykgeworICAgIGEg
Kj0gMS4xOworICAgIGIgKj0gMS4yOworICAgIGMgKj0gMS4zOworICAgIGQgKj0gMS40OworICAg
IGUgKj0gMS41OworICAgIGYgKj0gMS42OworICAgIGcgKj0gMS43OworICAgIGggKj0gMS44Owor
ICAgIGkgKj0gMS45OworICAgIGogKj0gMi4xOworICAgIGsgKj0gMi4yOworICAgIGwgKj0gMi4z
OworICAgIG0gKj0gMi40OworICAgIG4gKj0gMi41OworICAgIG8gKj0gMi42OworCisgICAgYTFb
MF0gPSBhOworICAgIGExWzFdID0gYjsKKyAgICBhMVsyXSA9IGM7CisgICAgYTFbM10gPSBkOwor
ICAgIGExWzRdID0gZTsKKyAgICBhMVs1XSA9IGY7CisgICAgYTFbNl0gPSBnOworICAgIGExWzdd
ID0gaDsKKyAgICBhMVs4XSA9IGk7CisgICAgYTFbOV0gPSBqOworICAgIGExWzEwXSA9IGs7Cisg
ICAgYTFbMTFdID0gbDsKKyAgICBhMVsxMl0gPSBtOworICAgIGExWzEzXSA9IG47CisgICAgYTFb
MTRdID0gbzsKKworICAgIF9nKGExLCBhLCBiLCBjLCBkLCBlLCBmLCBnLCBoLCBpLCBqLCBrLCBs
LCBtLCBuLCBvKTsKKworICAgIGEyWzBdID0gYTsKKyAgICBhMlsxXSA9IGI7CisgICAgYTJbMl0g
PSBjOworICAgIGEyWzNdID0gZDsKKyAgICBhMls0XSA9IGU7CisgICAgYTJbNV0gPSBmOworICAg
IGEyWzZdID0gZzsKKyAgICBhMls3XSA9IGg7CisgICAgYTJbOF0gPSBpOworICAgIGEyWzldID0g
ajsKKyAgICBhMlsxMF0gPSBrOworICAgIGEyWzExXSA9IGw7CisgICAgYTJbMTJdID0gbTsKKyAg
ICBhMlsxM10gPSBuOworICAgIGEyWzE0XSA9IG87Cit9Citub0lubGluZShfZik7CisKK2Z1bmN0
aW9uIF9nKHgsIGEsIGIsIGMsIGQsIGUsIGYsIGcsIGgsIGksIGosIGssIGwsIG0sIG4sIG8pIHsK
KyAgICBhICo9IDEuMTsKKyAgICBiICo9IDEuMjsKKyAgICBjICo9IDEuMzsKKyAgICBkICo9IDEu
NDsKKyAgICBlICo9IDEuNTsKKyAgICBmICo9IDEuNjsKKyAgICBnICo9IDEuNzsKKyAgICBoICo9
IDEuODsKKyAgICBpICo9IDEuOTsKKyAgICBqICo9IDIuMTsKKyAgICBrICo9IDIuMjsKKyAgICBs
ICo9IDIuMzsKKyAgICBtICo9IDIuNDsKKyAgICBuICo9IDIuNTsKKyAgICBvICo9IDIuNjsKKwor
ICAgIHhbMTVdID0gYSArIGIgKyBjICsgZCArIGUgKyBmICsgZyArIGggKyBpICsgaiArIGsgKyBs
ICsgbSArIG4gKyBvOworICAgIF9pKHgpOworICAgIHJldHVybiBfaCh4LCAuLi5bYSwgYiwgYywg
ZCwgZSwgZiwgZywgaCwgaSwgaiwgaywgbCwgbSwgbiwgb10pOworfQorbm9JbmxpbmUoX2cpOwor
CitmdW5jdGlvbiBfaCh4LCBhLCBiLCBjLCBkLCBlLCBmLCBnLCBoLCBpLCBqLCBrLCBsLCBtLCBu
LCBvKSB7Cit9Citub0lubGluZShfaCk7CisKK2Z1bmN0aW9uIF9pKCkgeyB9Citub0lubGluZShf
aSk7CisKK2Z1bmN0aW9uIGFzc2VydEVxdWFsKHgsIHkpIHsKKyAgICBpZiAoeCAhPT0geSkKKyAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKGBhc3NlcnRFcXVhbDogZmFpbDogJHt4fSAhPT0gJHt5fWAp
OworfQorbm9JbmxpbmUoYXNzZXJ0RXF1YWwpOworCitjb25zdCBjb3VudCA9IDE1OworbGV0IGFy
Z3MgPSBbXTsKK2ZvciAobGV0IGkgPSAxOyBpIDw9IGNvdW50OyArK2kpCisgICAgYXJncy5wdXNo
KGkpOworCitmb3IgKGxldCBpID0gMDsgaSA8IDFlNTsgKytpKSB7CisgICAgbGV0IGExID0gbmV3
IEZsb2F0NjRBcnJheShjb3VudCk7CisgICAgbGV0IGEyID0gbmV3IEZsb2F0NjRBcnJheShjb3Vu
dCk7CisgICAgX2YoYTEsIGEyLCAuLi5hcmdzKTsKKyAgICBmb3IgKGxldCBqID0gMDsgaiA8IGNv
dW50OyArK2opCisgICAgICAgIGFzc2VydEVxdWFsKGExW2pdLCBhMltqXSk7Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431498</attachid>
            <date>2021-06-15 16:55:58 -0700</date>
            <delta_ts>2021-06-15 17:03:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227052-20210615165557.patch</filename>
            <type>text/plain</type>
            <size>9067</size>
            <attacher name="Tadeu Zagallo">tzagallo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4NjYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
ZWVmYmJjNjg5MDkwMDQwMjFiZWJmOWM0YzI1MGM0NjI0NGY3ODk2Li43OWI1NTM0M2QyZGZjNWYz
N2NkMjMwOGUzYWQyYTRjMmQzYzJlMzk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOSBAQAorMjAyMS0wNi0xNSAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNv
bT4KKworICAgICAgICBBc3NlbWJseUhlbHBlcnMgc2hvdWxkIHNhdmUvcmVzdG9yZSBjYWxsZWUg
c2F2ZSBGUFJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMjcwNTIKKyAgICAgICAgPHJkYXI6Ly83NzA4MDE2Mj4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZSBoYXZlIDMgZnVuY3Rpb25zIGluIEFzc2Vt
Ymx5SGVscGVycyB0byBzYXZlIGFuZCByZXN0b3JlIGNhbGxlZSBzYXZlIHJlZ2lzdGVycyB0aGF0
IHdlcmUgZmlsdGVyaW5nCisgICAgICAgIG91dCBhbnkgRlBScy4gVGhpcyBpcyBhbiBpc3N1ZSBz
aW5jZSB3ZSBkbyBoYXZlIGNhbGxlZSBzYXZlIEZQUnMgaW4gYXJtNjQgYW5kIHRoZXNlIGhlbHBl
cnMgY2FuIGJlCisgICAgICAgIGNhbGxlZCBmcm9tIHRoZSBGVEwsIHdoaWNoIHVzZXMgdGhvc2Ug
Y2FsbGVlIHNhdmVzLiBUaGUgdGVzdCBjYXNlIHNob3dzIGhvdyB0aGF0J3MgYW4gaXNzdWUgd2l0
aCB0YWlsCisgICAgICAgIGNhbGxzIG9uIEZUTDogdGhlIGNhbGxlZSBzYXZlcyBhcmUgY29ycmVj
dGx5IHN0b3JlZCBpbiB0aGUgcHJvbG9ndWUgYW5kIHJlc3RvcmVkIGluIHRoZSBlcGlsb2d1ZSwg
YnV0CisgICAgICAgIHdoZW4gZW1pdHRpbmcgYSB0YWlsIGNhbGwgd2UgdXNlIEFzc2VtYmx5SGVs
cGVyczo6ZW1pdFJlc3RvcmVDYWxsZWVTYXZlcyB0byByZXN0b3JlIHRoZSBjYWxsZWUgc2F2ZXMs
CisgICAgICAgIHdoaWNoIGRvZXNuJ3QgcmVzdG9yZSBGUFJzLiBUaGlzIHJlc3VsdHMgaW4gdGhl
IGNhbGxlZSBzYXZlIEZQUnMgYmVpbmcgdHJhc2hlZC4gVG8gZml4IHRoaXMgd2UganVzdCBuZWVk
CisgICAgICAgIHRvIHN0b3AgZmlsdGVyaW5nIG91dCB0aGUgRlBScywgaWYgdGhleSBhcmUgbGlz
dGVkIGFzIHVzZWQgYnkgdGhlIGNvZGUgYmxvY2sgdGhleSBzaG91bGQgYmUgc2F2ZWQvcmVzdG9y
ZWQKKyAgICAgICAgYWNjb3JkaW5nbHkuIEkgYWxzbyBjaGFuZ2VkIERGR09TUkVudHJ5IHRvIHN0
b3AgZmlsdGVyaW5nIG91dCB0aGUgY2FsbGVlIHNhdmUgRlBScyBhbmQgaW5zdGVhZCBhc3NlcnQK
KyAgICAgICAgdGhlcmUgYXJlbid0IGFueSwgc2luY2UgdGhleSBhcmVuJ3QgY3VycmVudGx5IHVz
ZWQgaW4gdGhlIERGRywgYnV0IGl0IGNvdWxkIGhlbHAgYXZvaWQgdGhlIHNhbWUgaXNzdWUgaW4K
KyAgICAgICAgdGhlIGZ1dHVyZS4KKworICAgICAgICAqIGRmZy9ERkdPU1JFbnRyeS5jcHA6Cisg
ICAgICAgIChKU0M6OkRGRzo6cHJlcGFyZU9TUkVudHJ5KToKKyAgICAgICAgKiBqaXQvQXNzZW1i
bHlIZWxwZXJzLmg6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6ZW1pdFNhdmVDYWxs
ZWVTYXZlc0Zvcik6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6ZW1pdFNhdmVPckNv
cHlDYWxsZWVTYXZlc0Zvcik6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6ZW1pdFJl
c3RvcmVDYWxsZWVTYXZlc0Zvcik6CisKIDIwMjEtMDYtMDkgIE1pa2hhaWwgUi4gR2FkZWxoYSAg
PG1pa2hhaWxAaWdhbGlhLmNvbT4KIAogICAgICAgICBGaXggaW5hZHZlcnRlbnQgdGFnIGNvcnJ1
cHRpb24gaW4gZnVuY3Rpb25BZGRyZXNzT2YKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHT1NSRW50cnkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
U1JFbnRyeS5jcHAKaW5kZXggYWVhNDg0NGRjMWIwN2NmY2NkYjIwMzU2NzFhMzYzOGRlYjI3ZGRm
My4uYThjMTQwNjZlMGFkZTAwYzY5OTBlNmNhMDZiODg4ODZlZTZkZGU5OSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFbnRyeS5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFbnRyeS5jcHAKQEAgLTI5Nyw3ICsyOTcsNyBAQCB2b2lk
KiBwcmVwYXJlT1NSRW50cnkoVk0mIHZtLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSwgQ29kZUJsb2Nr
KiBjb2RlQmxvY2ssIEJ5dGVjbwogI2lmIE5VTUJFUl9PRl9DQUxMRUVfU0FWRVNfUkVHSVNURVJT
ID4gMAogICAgIGNvbnN0IFJlZ2lzdGVyQXRPZmZzZXRMaXN0KiByZWdpc3RlclNhdmVMb2NhdGlv
bnMgPSBjb2RlQmxvY2stPmNhbGxlZVNhdmVSZWdpc3RlcnMoKTsKICAgICBSZWdpc3RlckF0T2Zm
c2V0TGlzdCogYWxsQ2FsbGVlU2F2ZXMgPSBSZWdpc3RlclNldDo6dm1DYWxsZWVTYXZlUmVnaXN0
ZXJPZmZzZXRzKCk7Ci0gICAgUmVnaXN0ZXJTZXQgZG9udFNhdmVSZWdpc3RlcnMgPSBSZWdpc3Rl
clNldChSZWdpc3RlclNldDo6c3RhY2tSZWdpc3RlcnMoKSwgUmVnaXN0ZXJTZXQ6OmFsbEZQUnMo
KSk7CisgICAgUmVnaXN0ZXJTZXQgZG9udFNhdmVSZWdpc3RlcnMgPSBSZWdpc3RlclNldChSZWdp
c3RlclNldDo6c3RhY2tSZWdpc3RlcnMoKSk7CiAKICAgICB1bnNpZ25lZCByZWdpc3RlckNvdW50
ID0gcmVnaXN0ZXJTYXZlTG9jYXRpb25zLT5zaXplKCk7CiAgICAgVk1FbnRyeVJlY29yZCogcmVj
b3JkID0gdm1FbnRyeVJlY29yZCh2bS50b3BFbnRyeUZyYW1lKTsKQEAgLTMwNSw2ICszMDUsNyBA
QCB2b2lkKiBwcmVwYXJlT1NSRW50cnkoVk0mIHZtLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSwgQ29k
ZUJsb2NrKiBjb2RlQmxvY2ssIEJ5dGVjbwogICAgICAgICBSZWdpc3RlckF0T2Zmc2V0IGN1cnJl
bnRFbnRyeSA9IHJlZ2lzdGVyU2F2ZUxvY2F0aW9ucy0+YXQoaSk7CiAgICAgICAgIGlmIChkb250
U2F2ZVJlZ2lzdGVycy5nZXQoY3VycmVudEVudHJ5LnJlZygpKSkKICAgICAgICAgICAgIGNvbnRp
bnVlOworICAgICAgICBSRUxFQVNFX0FTU0VSVChjdXJyZW50RW50cnkucmVnKCkuaXNHUFIoKSk7
CiAgICAgICAgIFJlZ2lzdGVyQXRPZmZzZXQqIGNhbGxlZVNhdmVzRW50cnkgPSBhbGxDYWxsZWVT
YXZlcy0+ZmluZChjdXJyZW50RW50cnkucmVnKCkpOwogICAgICAgICAKICAgICAgICAgaWYgY29u
c3RleHByIChDYWxsZXJGcmFtZUFuZFBDOjpzaXplSW5SZWdpc3RlcnMgPT0gMikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCmluZGV4IGRkZjE2M2JkNzA3NjFl
ZDhmZDY1ZGIzNzdkNDVkMzg5NmY2YjNiYjcuLmVlMGRmMjg0NjQwZmJiYzM3YWRhNDllYTgyMjU5
Nzg3ZmZlNTI3N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1i
bHlIZWxwZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBl
cnMuaApAQCAtMzMxLDE0ICszMzEsMTQgQEAgcHVibGljOgogCiAgICAgdm9pZCBlbWl0U2F2ZUNh
bGxlZVNhdmVzRm9yKGNvbnN0IFJlZ2lzdGVyQXRPZmZzZXRMaXN0KiBjYWxsZWVTYXZlcykKICAg
ICB7Ci0gICAgICAgIFJlZ2lzdGVyU2V0IGRvbnRTYXZlUmVnaXN0ZXJzID0gUmVnaXN0ZXJTZXQo
UmVnaXN0ZXJTZXQ6OnN0YWNrUmVnaXN0ZXJzKCksIFJlZ2lzdGVyU2V0OjphbGxGUFJzKCkpOwor
ICAgICAgICBSZWdpc3RlclNldCBkb250U2F2ZVJlZ2lzdGVycyA9IFJlZ2lzdGVyU2V0KFJlZ2lz
dGVyU2V0OjpzdGFja1JlZ2lzdGVycygpKTsKICAgICAgICAgdW5zaWduZWQgcmVnaXN0ZXJDb3Vu
dCA9IGNhbGxlZVNhdmVzLT5zaXplKCk7CiAKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IHJlZ2lzdGVyQ291bnQ7IGkrKykgewogICAgICAgICAgICAgUmVnaXN0ZXJBdE9mZnNldCBl
bnRyeSA9IGNhbGxlZVNhdmVzLT5hdChpKTsKICAgICAgICAgICAgIGlmIChkb250U2F2ZVJlZ2lz
dGVycy5nZXQoZW50cnkucmVnKCkpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAg
ICAgICAgc3RvcmVQdHIoZW50cnkucmVnKCkuZ3ByKCksIEFkZHJlc3MoZnJhbWVQb2ludGVyUmVn
aXN0ZXIsIGVudHJ5Lm9mZnNldCgpKSk7CisgICAgICAgICAgICBzdG9yZVJlZyhlbnRyeS5yZWco
KSwgQWRkcmVzcyhmcmFtZVBvaW50ZXJSZWdpc3RlciwgZW50cnkub2Zmc2V0KCkpKTsKICAgICAg
ICAgfQogICAgIH0KICAgICAKQEAgLTM0Nyw5ICszNDcsMTAgQEAgcHVibGljOgogICAgIHZvaWQg
ZW1pdFNhdmVPckNvcHlDYWxsZWVTYXZlc0ZvcihDb2RlQmxvY2sqIGNvZGVCbG9jaywgVmlydHVh
bFJlZ2lzdGVyIG9mZnNldFZpcnR1YWxSZWdpc3RlciwgUmVzdG9yZVRhZ1JlZ2lzdGVyTW9kZSB0
YWdSZWdpc3Rlck1vZGUsIEdQUlJlZyB0ZW1wKQogICAgIHsKICAgICAgICAgQVNTRVJUKGNvZGVC
bG9jayk7CisgICAgICAgIEFTU0VSVChKSVRDb2RlOjppc0Jhc2VsaW5lQ29kZShjb2RlQmxvY2st
PmppdFR5cGUoKSkpOwogICAgICAgICAKICAgICAgICAgY29uc3QgUmVnaXN0ZXJBdE9mZnNldExp
c3QqIGNhbGxlZVNhdmVzID0gY29kZUJsb2NrLT5jYWxsZWVTYXZlUmVnaXN0ZXJzKCk7Ci0gICAg
ICAgIFJlZ2lzdGVyU2V0IGRvbnRTYXZlUmVnaXN0ZXJzID0gUmVnaXN0ZXJTZXQoUmVnaXN0ZXJT
ZXQ6OnN0YWNrUmVnaXN0ZXJzKCksIFJlZ2lzdGVyU2V0OjphbGxGUFJzKCkpOworICAgICAgICBS
ZWdpc3RlclNldCBkb250U2F2ZVJlZ2lzdGVycyA9IFJlZ2lzdGVyU2V0KFJlZ2lzdGVyU2V0Ojpz
dGFja1JlZ2lzdGVycygpKTsKICAgICAgICAgdW5zaWduZWQgcmVnaXN0ZXJDb3VudCA9IGNhbGxl
ZVNhdmVzLT5zaXplKCk7CiAKICNpZiBVU0UoSlNWQUxVRTY0KQpAQCAtMzYwLDkgKzM2MSwxMCBA
QCBwdWJsaWM6CiAgICAgICAgICAgICBSZWdpc3RlckF0T2Zmc2V0IGVudHJ5ID0gY2FsbGVlU2F2
ZXMtPmF0KGkpOwogICAgICAgICAgICAgaWYgKGRvbnRTYXZlUmVnaXN0ZXJzLmdldChlbnRyeS5y
ZWcoKSkpCiAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAKKyAgICAgICAg
ICAgIFJFTEVBU0VfQVNTRVJUKGVudHJ5LmlzR1BSKCkpOworCiAgICAgICAgICAgICBHUFJSZWcg
cmVnaXN0ZXJUb1dyaXRlOwotICAgICAgICAgICAgCisKICNpZiBVU0UoSlNWQUxVRTMyXzY0KQog
ICAgICAgICAgICAgVU5VU0VEX1BBUkFNKHRhZ1JlZ2lzdGVyTW9kZSk7CiAgICAgICAgICAgICBV
TlVTRURfUEFSQU0odGVtcCk7CkBAIC0zODgsMTQgKzM5MCwxNCBAQCBwdWJsaWM6CiAKICAgICB2
b2lkIGVtaXRSZXN0b3JlQ2FsbGVlU2F2ZXNGb3IoY29uc3QgUmVnaXN0ZXJBdE9mZnNldExpc3Qq
IGNhbGxlZVNhdmVzKQogICAgIHsKLSAgICAgICAgUmVnaXN0ZXJTZXQgZG9udFJlc3RvcmVSZWdp
c3RlcnMgPSBSZWdpc3RlclNldChSZWdpc3RlclNldDo6c3RhY2tSZWdpc3RlcnMoKSwgUmVnaXN0
ZXJTZXQ6OmFsbEZQUnMoKSk7CisgICAgICAgIFJlZ2lzdGVyU2V0IGRvbnRSZXN0b3JlUmVnaXN0
ZXJzID0gUmVnaXN0ZXJTZXQoUmVnaXN0ZXJTZXQ6OnN0YWNrUmVnaXN0ZXJzKCkpOwogICAgICAg
ICB1bnNpZ25lZCByZWdpc3RlckNvdW50ID0gY2FsbGVlU2F2ZXMtPnNpemUoKTsKICAgICAgICAg
CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCByZWdpc3RlckNvdW50OyBpKyspIHsK
ICAgICAgICAgICAgIFJlZ2lzdGVyQXRPZmZzZXQgZW50cnkgPSBjYWxsZWVTYXZlcy0+YXQoaSk7
CiAgICAgICAgICAgICBpZiAoZG9udFJlc3RvcmVSZWdpc3RlcnMuZ2V0KGVudHJ5LnJlZygpKSkK
ICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIGxvYWRQdHIoQWRkcmVzcyhm
cmFtZVBvaW50ZXJSZWdpc3RlciwgZW50cnkub2Zmc2V0KCkpLCBlbnRyeS5yZWcoKS5ncHIoKSk7
CisgICAgICAgICAgICBsb2FkUmVnKEFkZHJlc3MoZnJhbWVQb2ludGVyUmVnaXN0ZXIsIGVudHJ5
Lm9mZnNldCgpKSwgZW50cnkucmVnKCkpOwogICAgICAgICB9CiAgICAgfQogCmRpZmYgLS1naXQg
YS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IGZkYzM4NjY2Zjhm
M2E0OGNjYjFlN2U3NmI1YjlhZGFhOTU4ZmZkMjMuLjhiZGUwMTU3NmEyZTlmNjdkNDUwYjc0MjAx
ZTUzMjY5OTgyMTFkNjEgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjEtMDYtMTUgIFRhZGV1IFphZ2FsbG8g
IDx0emFnYWxsb0BhcHBsZS5jb20+CisKKyAgICAgICAgQXNzZW1ibHlIZWxwZXJzIHNob3VsZCBz
YXZlL3Jlc3RvcmUgY2FsbGVlIHNhdmUgRlBScworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3MDUyCisgICAgICAgIDxyZGFyOi8vNzcwODAxNjI+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdHJlc3Mv
Y2FsbGVlLXNhdmUtZnByLmpzOiBBZGRlZC4KKyAgICAgICAgKF9mKToKKyAgICAgICAgKF9nKToK
KyAgICAgICAgKF9oKToKKyAgICAgICAgKF9pKToKKyAgICAgICAgKGFzc2VydEVxdWFsKToKKwog
MjAyMS0wNi0wNiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAg
IFtKU0NdIFVzZSBSZXNvbHZlZENsb3N1cmVWYXIgdG8gZ2V0IGJyYW5kIGZyb20gc2NvcGUKZGlm
ZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2NhbGxlZS1zYXZlLWZwci5qcyBiL0pTVGVzdHMvc3Ry
ZXNzL2NhbGxlZS1zYXZlLWZwci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYzkwYmY4MjMyOTYwMzAwMWE4ZDVl
YTUyMmY5MWMzMzJlMzAwYTI1Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvY2Fs
bGVlLXNhdmUtZnByLmpzCkBAIC0wLDAgKzEsMTAzIEBACisndXNlIHN0cmljdCc7CisKK2Z1bmN0
aW9uIF9mKGExLCBhMiwgYSwgYiwgYywgZCwgZSwgZiwgZywgaCwgaSwgaiwgaywgbCwgbSwgbiwg
bykgeworICAgIGEgKj0gMS4xOworICAgIGIgKj0gMS4yOworICAgIGMgKj0gMS4zOworICAgIGQg
Kj0gMS40OworICAgIGUgKj0gMS41OworICAgIGYgKj0gMS42OworICAgIGcgKj0gMS43OworICAg
IGggKj0gMS44OworICAgIGkgKj0gMS45OworICAgIGogKj0gMi4xOworICAgIGsgKj0gMi4yOwor
ICAgIGwgKj0gMi4zOworICAgIG0gKj0gMi40OworICAgIG4gKj0gMi41OworICAgIG8gKj0gMi42
OworCisgICAgYTFbMF0gPSBhOworICAgIGExWzFdID0gYjsKKyAgICBhMVsyXSA9IGM7CisgICAg
YTFbM10gPSBkOworICAgIGExWzRdID0gZTsKKyAgICBhMVs1XSA9IGY7CisgICAgYTFbNl0gPSBn
OworICAgIGExWzddID0gaDsKKyAgICBhMVs4XSA9IGk7CisgICAgYTFbOV0gPSBqOworICAgIGEx
WzEwXSA9IGs7CisgICAgYTFbMTFdID0gbDsKKyAgICBhMVsxMl0gPSBtOworICAgIGExWzEzXSA9
IG47CisgICAgYTFbMTRdID0gbzsKKworICAgIF9nKGExLCBhLCBiLCBjLCBkLCBlLCBmLCBnLCBo
LCBpLCBqLCBrLCBsLCBtLCBuLCBvKTsKKworICAgIGEyWzBdID0gYTsKKyAgICBhMlsxXSA9IGI7
CisgICAgYTJbMl0gPSBjOworICAgIGEyWzNdID0gZDsKKyAgICBhMls0XSA9IGU7CisgICAgYTJb
NV0gPSBmOworICAgIGEyWzZdID0gZzsKKyAgICBhMls3XSA9IGg7CisgICAgYTJbOF0gPSBpOwor
ICAgIGEyWzldID0gajsKKyAgICBhMlsxMF0gPSBrOworICAgIGEyWzExXSA9IGw7CisgICAgYTJb
MTJdID0gbTsKKyAgICBhMlsxM10gPSBuOworICAgIGEyWzE0XSA9IG87Cit9Citub0lubGluZShf
Zik7CisKK2Z1bmN0aW9uIF9nKHgsIGEsIGIsIGMsIGQsIGUsIGYsIGcsIGgsIGksIGosIGssIGws
IG0sIG4sIG8pIHsKKyAgICBhICo9IDEuMTsKKyAgICBiICo9IDEuMjsKKyAgICBjICo9IDEuMzsK
KyAgICBkICo9IDEuNDsKKyAgICBlICo9IDEuNTsKKyAgICBmICo9IDEuNjsKKyAgICBnICo9IDEu
NzsKKyAgICBoICo9IDEuODsKKyAgICBpICo9IDEuOTsKKyAgICBqICo9IDIuMTsKKyAgICBrICo9
IDIuMjsKKyAgICBsICo9IDIuMzsKKyAgICBtICo9IDIuNDsKKyAgICBuICo9IDIuNTsKKyAgICBv
ICo9IDIuNjsKKworICAgIHhbMTVdID0gYSArIGIgKyBjICsgZCArIGUgKyBmICsgZyArIGggKyBp
ICsgaiArIGsgKyBsICsgbSArIG4gKyBvOworICAgIF9pKHgpOworICAgIHJldHVybiBfaCh4LCAu
Li5bYSwgYiwgYywgZCwgZSwgZiwgZywgaCwgaSwgaiwgaywgbCwgbSwgbiwgb10pOworfQorbm9J
bmxpbmUoX2cpOworCitmdW5jdGlvbiBfaCh4LCBhLCBiLCBjLCBkLCBlLCBmLCBnLCBoLCBpLCBq
LCBrLCBsLCBtLCBuLCBvKSB7Cit9Citub0lubGluZShfaCk7CisKK2Z1bmN0aW9uIF9pKCkgeyB9
Citub0lubGluZShfaSk7CisKK2Z1bmN0aW9uIGFzc2VydEVxdWFsKHgsIHkpIHsKKyAgICBpZiAo
eCAhPT0geSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBhc3NlcnRFcXVhbDogZmFpbDogJHt4
fSAhPT0gJHt5fWApOworfQorbm9JbmxpbmUoYXNzZXJ0RXF1YWwpOworCitjb25zdCBjb3VudCA9
IDE1OworbGV0IGFyZ3MgPSBbXTsKK2ZvciAobGV0IGkgPSAxOyBpIDw9IGNvdW50OyArK2kpCisg
ICAgYXJncy5wdXNoKGkpOworCitmb3IgKGxldCBpID0gMDsgaSA8IDFlNTsgKytpKSB7CisgICAg
bGV0IGExID0gbmV3IEZsb2F0NjRBcnJheShjb3VudCk7CisgICAgbGV0IGEyID0gbmV3IEZsb2F0
NjRBcnJheShjb3VudCk7CisgICAgX2YoYTEsIGEyLCAuLi5hcmdzKTsKKyAgICBmb3IgKGxldCBq
ID0gMDsgaiA8IGNvdW50OyArK2opCisgICAgICAgIGFzc2VydEVxdWFsKGExW2pdLCBhMltqXSk7
Cit9Cg==
</data>
<flag name="commit-queue"
          id="453297"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431499</attachid>
            <date>2021-06-15 17:01:32 -0700</date>
            <delta_ts>2021-06-16 08:29:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227052-20210615170131.patch</filename>
            <type>text/plain</type>
            <size>9073</size>
            <attacher name="Tadeu Zagallo">tzagallo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4NjYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
ZWVmYmJjNjg5MDkwMDQwMjFiZWJmOWM0YzI1MGM0NjI0NGY3ODk2Li43OWI1NTM0M2QyZGZjNWYz
N2NkMjMwOGUzYWQyYTRjMmQzYzJlMzk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOSBAQAorMjAyMS0wNi0xNSAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNv
bT4KKworICAgICAgICBBc3NlbWJseUhlbHBlcnMgc2hvdWxkIHNhdmUvcmVzdG9yZSBjYWxsZWUg
c2F2ZSBGUFJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMjcwNTIKKyAgICAgICAgPHJkYXI6Ly83NzA4MDE2Mj4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZSBoYXZlIDMgZnVuY3Rpb25zIGluIEFzc2Vt
Ymx5SGVscGVycyB0byBzYXZlIGFuZCByZXN0b3JlIGNhbGxlZSBzYXZlIHJlZ2lzdGVycyB0aGF0
IHdlcmUgZmlsdGVyaW5nCisgICAgICAgIG91dCBhbnkgRlBScy4gVGhpcyBpcyBhbiBpc3N1ZSBz
aW5jZSB3ZSBkbyBoYXZlIGNhbGxlZSBzYXZlIEZQUnMgaW4gYXJtNjQgYW5kIHRoZXNlIGhlbHBl
cnMgY2FuIGJlCisgICAgICAgIGNhbGxlZCBmcm9tIHRoZSBGVEwsIHdoaWNoIHVzZXMgdGhvc2Ug
Y2FsbGVlIHNhdmVzLiBUaGUgdGVzdCBjYXNlIHNob3dzIGhvdyB0aGF0J3MgYW4gaXNzdWUgd2l0
aCB0YWlsCisgICAgICAgIGNhbGxzIG9uIEZUTDogdGhlIGNhbGxlZSBzYXZlcyBhcmUgY29ycmVj
dGx5IHN0b3JlZCBpbiB0aGUgcHJvbG9ndWUgYW5kIHJlc3RvcmVkIGluIHRoZSBlcGlsb2d1ZSwg
YnV0CisgICAgICAgIHdoZW4gZW1pdHRpbmcgYSB0YWlsIGNhbGwgd2UgdXNlIEFzc2VtYmx5SGVs
cGVyczo6ZW1pdFJlc3RvcmVDYWxsZWVTYXZlcyB0byByZXN0b3JlIHRoZSBjYWxsZWUgc2F2ZXMs
CisgICAgICAgIHdoaWNoIGRvZXNuJ3QgcmVzdG9yZSBGUFJzLiBUaGlzIHJlc3VsdHMgaW4gdGhl
IGNhbGxlZSBzYXZlIEZQUnMgYmVpbmcgdHJhc2hlZC4gVG8gZml4IHRoaXMgd2UganVzdCBuZWVk
CisgICAgICAgIHRvIHN0b3AgZmlsdGVyaW5nIG91dCB0aGUgRlBScywgaWYgdGhleSBhcmUgbGlz
dGVkIGFzIHVzZWQgYnkgdGhlIGNvZGUgYmxvY2sgdGhleSBzaG91bGQgYmUgc2F2ZWQvcmVzdG9y
ZWQKKyAgICAgICAgYWNjb3JkaW5nbHkuIEkgYWxzbyBjaGFuZ2VkIERGR09TUkVudHJ5IHRvIHN0
b3AgZmlsdGVyaW5nIG91dCB0aGUgY2FsbGVlIHNhdmUgRlBScyBhbmQgaW5zdGVhZCBhc3NlcnQK
KyAgICAgICAgdGhlcmUgYXJlbid0IGFueSwgc2luY2UgdGhleSBhcmVuJ3QgY3VycmVudGx5IHVz
ZWQgaW4gdGhlIERGRywgYnV0IGl0IGNvdWxkIGhlbHAgYXZvaWQgdGhlIHNhbWUgaXNzdWUgaW4K
KyAgICAgICAgdGhlIGZ1dHVyZS4KKworICAgICAgICAqIGRmZy9ERkdPU1JFbnRyeS5jcHA6Cisg
ICAgICAgIChKU0M6OkRGRzo6cHJlcGFyZU9TUkVudHJ5KToKKyAgICAgICAgKiBqaXQvQXNzZW1i
bHlIZWxwZXJzLmg6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6ZW1pdFNhdmVDYWxs
ZWVTYXZlc0Zvcik6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6ZW1pdFNhdmVPckNv
cHlDYWxsZWVTYXZlc0Zvcik6CisgICAgICAgIChKU0M6OkFzc2VtYmx5SGVscGVyczo6ZW1pdFJl
c3RvcmVDYWxsZWVTYXZlc0Zvcik6CisKIDIwMjEtMDYtMDkgIE1pa2hhaWwgUi4gR2FkZWxoYSAg
PG1pa2hhaWxAaWdhbGlhLmNvbT4KIAogICAgICAgICBGaXggaW5hZHZlcnRlbnQgdGFnIGNvcnJ1
cHRpb24gaW4gZnVuY3Rpb25BZGRyZXNzT2YKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHT1NSRW50cnkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
U1JFbnRyeS5jcHAKaW5kZXggYWVhNDg0NGRjMWIwN2NmY2NkYjIwMzU2NzFhMzYzOGRlYjI3ZGRm
My4uYThjMTQwNjZlMGFkZTAwYzY5OTBlNmNhMDZiODg4ODZlZTZkZGU5OSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFbnRyeS5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFbnRyeS5jcHAKQEAgLTI5Nyw3ICsyOTcsNyBAQCB2b2lk
KiBwcmVwYXJlT1NSRW50cnkoVk0mIHZtLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSwgQ29kZUJsb2Nr
KiBjb2RlQmxvY2ssIEJ5dGVjbwogI2lmIE5VTUJFUl9PRl9DQUxMRUVfU0FWRVNfUkVHSVNURVJT
ID4gMAogICAgIGNvbnN0IFJlZ2lzdGVyQXRPZmZzZXRMaXN0KiByZWdpc3RlclNhdmVMb2NhdGlv
bnMgPSBjb2RlQmxvY2stPmNhbGxlZVNhdmVSZWdpc3RlcnMoKTsKICAgICBSZWdpc3RlckF0T2Zm
c2V0TGlzdCogYWxsQ2FsbGVlU2F2ZXMgPSBSZWdpc3RlclNldDo6dm1DYWxsZWVTYXZlUmVnaXN0
ZXJPZmZzZXRzKCk7Ci0gICAgUmVnaXN0ZXJTZXQgZG9udFNhdmVSZWdpc3RlcnMgPSBSZWdpc3Rl
clNldChSZWdpc3RlclNldDo6c3RhY2tSZWdpc3RlcnMoKSwgUmVnaXN0ZXJTZXQ6OmFsbEZQUnMo
KSk7CisgICAgUmVnaXN0ZXJTZXQgZG9udFNhdmVSZWdpc3RlcnMgPSBSZWdpc3RlclNldChSZWdp
c3RlclNldDo6c3RhY2tSZWdpc3RlcnMoKSk7CiAKICAgICB1bnNpZ25lZCByZWdpc3RlckNvdW50
ID0gcmVnaXN0ZXJTYXZlTG9jYXRpb25zLT5zaXplKCk7CiAgICAgVk1FbnRyeVJlY29yZCogcmVj
b3JkID0gdm1FbnRyeVJlY29yZCh2bS50b3BFbnRyeUZyYW1lKTsKQEAgLTMwNSw2ICszMDUsNyBA
QCB2b2lkKiBwcmVwYXJlT1NSRW50cnkoVk0mIHZtLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSwgQ29k
ZUJsb2NrKiBjb2RlQmxvY2ssIEJ5dGVjbwogICAgICAgICBSZWdpc3RlckF0T2Zmc2V0IGN1cnJl
bnRFbnRyeSA9IHJlZ2lzdGVyU2F2ZUxvY2F0aW9ucy0+YXQoaSk7CiAgICAgICAgIGlmIChkb250
U2F2ZVJlZ2lzdGVycy5nZXQoY3VycmVudEVudHJ5LnJlZygpKSkKICAgICAgICAgICAgIGNvbnRp
bnVlOworICAgICAgICBSRUxFQVNFX0FTU0VSVChjdXJyZW50RW50cnkucmVnKCkuaXNHUFIoKSk7
CiAgICAgICAgIFJlZ2lzdGVyQXRPZmZzZXQqIGNhbGxlZVNhdmVzRW50cnkgPSBhbGxDYWxsZWVT
YXZlcy0+ZmluZChjdXJyZW50RW50cnkucmVnKCkpOwogICAgICAgICAKICAgICAgICAgaWYgY29u
c3RleHByIChDYWxsZXJGcmFtZUFuZFBDOjpzaXplSW5SZWdpc3RlcnMgPT0gMikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCmluZGV4IGRkZjE2M2JkNzA3NjFl
ZDhmZDY1ZGIzNzdkNDVkMzg5NmY2YjNiYjcuLmU2ZTU1MDEwYzgyOGUyODFmMGU1NGFmOTMxYjQ5
MjE0YzM3MjM5ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1i
bHlIZWxwZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBl
cnMuaApAQCAtMzMxLDE0ICszMzEsMTQgQEAgcHVibGljOgogCiAgICAgdm9pZCBlbWl0U2F2ZUNh
bGxlZVNhdmVzRm9yKGNvbnN0IFJlZ2lzdGVyQXRPZmZzZXRMaXN0KiBjYWxsZWVTYXZlcykKICAg
ICB7Ci0gICAgICAgIFJlZ2lzdGVyU2V0IGRvbnRTYXZlUmVnaXN0ZXJzID0gUmVnaXN0ZXJTZXQo
UmVnaXN0ZXJTZXQ6OnN0YWNrUmVnaXN0ZXJzKCksIFJlZ2lzdGVyU2V0OjphbGxGUFJzKCkpOwor
ICAgICAgICBSZWdpc3RlclNldCBkb250U2F2ZVJlZ2lzdGVycyA9IFJlZ2lzdGVyU2V0KFJlZ2lz
dGVyU2V0OjpzdGFja1JlZ2lzdGVycygpKTsKICAgICAgICAgdW5zaWduZWQgcmVnaXN0ZXJDb3Vu
dCA9IGNhbGxlZVNhdmVzLT5zaXplKCk7CiAKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IHJlZ2lzdGVyQ291bnQ7IGkrKykgewogICAgICAgICAgICAgUmVnaXN0ZXJBdE9mZnNldCBl
bnRyeSA9IGNhbGxlZVNhdmVzLT5hdChpKTsKICAgICAgICAgICAgIGlmIChkb250U2F2ZVJlZ2lz
dGVycy5nZXQoZW50cnkucmVnKCkpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAg
ICAgICAgc3RvcmVQdHIoZW50cnkucmVnKCkuZ3ByKCksIEFkZHJlc3MoZnJhbWVQb2ludGVyUmVn
aXN0ZXIsIGVudHJ5Lm9mZnNldCgpKSk7CisgICAgICAgICAgICBzdG9yZVJlZyhlbnRyeS5yZWco
KSwgQWRkcmVzcyhmcmFtZVBvaW50ZXJSZWdpc3RlciwgZW50cnkub2Zmc2V0KCkpKTsKICAgICAg
ICAgfQogICAgIH0KICAgICAKQEAgLTM0Nyw5ICszNDcsMTAgQEAgcHVibGljOgogICAgIHZvaWQg
ZW1pdFNhdmVPckNvcHlDYWxsZWVTYXZlc0ZvcihDb2RlQmxvY2sqIGNvZGVCbG9jaywgVmlydHVh
bFJlZ2lzdGVyIG9mZnNldFZpcnR1YWxSZWdpc3RlciwgUmVzdG9yZVRhZ1JlZ2lzdGVyTW9kZSB0
YWdSZWdpc3Rlck1vZGUsIEdQUlJlZyB0ZW1wKQogICAgIHsKICAgICAgICAgQVNTRVJUKGNvZGVC
bG9jayk7CisgICAgICAgIEFTU0VSVChKSVRDb2RlOjppc0Jhc2VsaW5lQ29kZShjb2RlQmxvY2st
PmppdFR5cGUoKSkpOwogICAgICAgICAKICAgICAgICAgY29uc3QgUmVnaXN0ZXJBdE9mZnNldExp
c3QqIGNhbGxlZVNhdmVzID0gY29kZUJsb2NrLT5jYWxsZWVTYXZlUmVnaXN0ZXJzKCk7Ci0gICAg
ICAgIFJlZ2lzdGVyU2V0IGRvbnRTYXZlUmVnaXN0ZXJzID0gUmVnaXN0ZXJTZXQoUmVnaXN0ZXJT
ZXQ6OnN0YWNrUmVnaXN0ZXJzKCksIFJlZ2lzdGVyU2V0OjphbGxGUFJzKCkpOworICAgICAgICBS
ZWdpc3RlclNldCBkb250U2F2ZVJlZ2lzdGVycyA9IFJlZ2lzdGVyU2V0KFJlZ2lzdGVyU2V0Ojpz
dGFja1JlZ2lzdGVycygpKTsKICAgICAgICAgdW5zaWduZWQgcmVnaXN0ZXJDb3VudCA9IGNhbGxl
ZVNhdmVzLT5zaXplKCk7CiAKICNpZiBVU0UoSlNWQUxVRTY0KQpAQCAtMzYwLDkgKzM2MSwxMCBA
QCBwdWJsaWM6CiAgICAgICAgICAgICBSZWdpc3RlckF0T2Zmc2V0IGVudHJ5ID0gY2FsbGVlU2F2
ZXMtPmF0KGkpOwogICAgICAgICAgICAgaWYgKGRvbnRTYXZlUmVnaXN0ZXJzLmdldChlbnRyeS5y
ZWcoKSkpCiAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAKKyAgICAgICAg
ICAgIFJFTEVBU0VfQVNTRVJUKGVudHJ5LnJlZygpLmlzR1BSKCkpOworCiAgICAgICAgICAgICBH
UFJSZWcgcmVnaXN0ZXJUb1dyaXRlOwotICAgICAgICAgICAgCisKICNpZiBVU0UoSlNWQUxVRTMy
XzY0KQogICAgICAgICAgICAgVU5VU0VEX1BBUkFNKHRhZ1JlZ2lzdGVyTW9kZSk7CiAgICAgICAg
ICAgICBVTlVTRURfUEFSQU0odGVtcCk7CkBAIC0zODgsMTQgKzM5MCwxNCBAQCBwdWJsaWM6CiAK
ICAgICB2b2lkIGVtaXRSZXN0b3JlQ2FsbGVlU2F2ZXNGb3IoY29uc3QgUmVnaXN0ZXJBdE9mZnNl
dExpc3QqIGNhbGxlZVNhdmVzKQogICAgIHsKLSAgICAgICAgUmVnaXN0ZXJTZXQgZG9udFJlc3Rv
cmVSZWdpc3RlcnMgPSBSZWdpc3RlclNldChSZWdpc3RlclNldDo6c3RhY2tSZWdpc3RlcnMoKSwg
UmVnaXN0ZXJTZXQ6OmFsbEZQUnMoKSk7CisgICAgICAgIFJlZ2lzdGVyU2V0IGRvbnRSZXN0b3Jl
UmVnaXN0ZXJzID0gUmVnaXN0ZXJTZXQoUmVnaXN0ZXJTZXQ6OnN0YWNrUmVnaXN0ZXJzKCkpOwog
ICAgICAgICB1bnNpZ25lZCByZWdpc3RlckNvdW50ID0gY2FsbGVlU2F2ZXMtPnNpemUoKTsKICAg
ICAgICAgCiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCByZWdpc3RlckNvdW50OyBp
KyspIHsKICAgICAgICAgICAgIFJlZ2lzdGVyQXRPZmZzZXQgZW50cnkgPSBjYWxsZWVTYXZlcy0+
YXQoaSk7CiAgICAgICAgICAgICBpZiAoZG9udFJlc3RvcmVSZWdpc3RlcnMuZ2V0KGVudHJ5LnJl
ZygpKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIGxvYWRQdHIoQWRk
cmVzcyhmcmFtZVBvaW50ZXJSZWdpc3RlciwgZW50cnkub2Zmc2V0KCkpLCBlbnRyeS5yZWcoKS5n
cHIoKSk7CisgICAgICAgICAgICBsb2FkUmVnKEFkZHJlc3MoZnJhbWVQb2ludGVyUmVnaXN0ZXIs
IGVudHJ5Lm9mZnNldCgpKSwgZW50cnkucmVnKCkpOwogICAgICAgICB9CiAgICAgfQogCmRpZmYg
LS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IGZkYzM4
NjY2ZjhmM2E0OGNjYjFlN2U3NmI1YjlhZGFhOTU4ZmZkMjMuLjhiZGUwMTU3NmEyZTlmNjdkNDUw
Yjc0MjAxZTUzMjY5OTgyMTFkNjEgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjEtMDYtMTUgIFRhZGV1IFph
Z2FsbG8gIDx0emFnYWxsb0BhcHBsZS5jb20+CisKKyAgICAgICAgQXNzZW1ibHlIZWxwZXJzIHNo
b3VsZCBzYXZlL3Jlc3RvcmUgY2FsbGVlIHNhdmUgRlBScworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3MDUyCisgICAgICAgIDxyZGFyOi8vNzcwODAx
NjI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBz
dHJlc3MvY2FsbGVlLXNhdmUtZnByLmpzOiBBZGRlZC4KKyAgICAgICAgKF9mKToKKyAgICAgICAg
KF9nKToKKyAgICAgICAgKF9oKToKKyAgICAgICAgKF9pKToKKyAgICAgICAgKGFzc2VydEVxdWFs
KToKKwogMjAyMS0wNi0wNiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAg
ICAgICAgIFtKU0NdIFVzZSBSZXNvbHZlZENsb3N1cmVWYXIgdG8gZ2V0IGJyYW5kIGZyb20gc2Nv
cGUKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2NhbGxlZS1zYXZlLWZwci5qcyBiL0pTVGVz
dHMvc3RyZXNzL2NhbGxlZS1zYXZlLWZwci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYzkwYmY4MjMyOTYwMzAw
MWE4ZDVlYTUyMmY5MWMzMzJlMzAwYTI1Ci0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJl
c3MvY2FsbGVlLXNhdmUtZnByLmpzCkBAIC0wLDAgKzEsMTAzIEBACisndXNlIHN0cmljdCc7CisK
K2Z1bmN0aW9uIF9mKGExLCBhMiwgYSwgYiwgYywgZCwgZSwgZiwgZywgaCwgaSwgaiwgaywgbCwg
bSwgbiwgbykgeworICAgIGEgKj0gMS4xOworICAgIGIgKj0gMS4yOworICAgIGMgKj0gMS4zOwor
ICAgIGQgKj0gMS40OworICAgIGUgKj0gMS41OworICAgIGYgKj0gMS42OworICAgIGcgKj0gMS43
OworICAgIGggKj0gMS44OworICAgIGkgKj0gMS45OworICAgIGogKj0gMi4xOworICAgIGsgKj0g
Mi4yOworICAgIGwgKj0gMi4zOworICAgIG0gKj0gMi40OworICAgIG4gKj0gMi41OworICAgIG8g
Kj0gMi42OworCisgICAgYTFbMF0gPSBhOworICAgIGExWzFdID0gYjsKKyAgICBhMVsyXSA9IGM7
CisgICAgYTFbM10gPSBkOworICAgIGExWzRdID0gZTsKKyAgICBhMVs1XSA9IGY7CisgICAgYTFb
Nl0gPSBnOworICAgIGExWzddID0gaDsKKyAgICBhMVs4XSA9IGk7CisgICAgYTFbOV0gPSBqOwor
ICAgIGExWzEwXSA9IGs7CisgICAgYTFbMTFdID0gbDsKKyAgICBhMVsxMl0gPSBtOworICAgIGEx
WzEzXSA9IG47CisgICAgYTFbMTRdID0gbzsKKworICAgIF9nKGExLCBhLCBiLCBjLCBkLCBlLCBm
LCBnLCBoLCBpLCBqLCBrLCBsLCBtLCBuLCBvKTsKKworICAgIGEyWzBdID0gYTsKKyAgICBhMlsx
XSA9IGI7CisgICAgYTJbMl0gPSBjOworICAgIGEyWzNdID0gZDsKKyAgICBhMls0XSA9IGU7Cisg
ICAgYTJbNV0gPSBmOworICAgIGEyWzZdID0gZzsKKyAgICBhMls3XSA9IGg7CisgICAgYTJbOF0g
PSBpOworICAgIGEyWzldID0gajsKKyAgICBhMlsxMF0gPSBrOworICAgIGEyWzExXSA9IGw7Cisg
ICAgYTJbMTJdID0gbTsKKyAgICBhMlsxM10gPSBuOworICAgIGEyWzE0XSA9IG87Cit9Citub0lu
bGluZShfZik7CisKK2Z1bmN0aW9uIF9nKHgsIGEsIGIsIGMsIGQsIGUsIGYsIGcsIGgsIGksIGos
IGssIGwsIG0sIG4sIG8pIHsKKyAgICBhICo9IDEuMTsKKyAgICBiICo9IDEuMjsKKyAgICBjICo9
IDEuMzsKKyAgICBkICo9IDEuNDsKKyAgICBlICo9IDEuNTsKKyAgICBmICo9IDEuNjsKKyAgICBn
ICo9IDEuNzsKKyAgICBoICo9IDEuODsKKyAgICBpICo9IDEuOTsKKyAgICBqICo9IDIuMTsKKyAg
ICBrICo9IDIuMjsKKyAgICBsICo9IDIuMzsKKyAgICBtICo9IDIuNDsKKyAgICBuICo9IDIuNTsK
KyAgICBvICo9IDIuNjsKKworICAgIHhbMTVdID0gYSArIGIgKyBjICsgZCArIGUgKyBmICsgZyAr
IGggKyBpICsgaiArIGsgKyBsICsgbSArIG4gKyBvOworICAgIF9pKHgpOworICAgIHJldHVybiBf
aCh4LCAuLi5bYSwgYiwgYywgZCwgZSwgZiwgZywgaCwgaSwgaiwgaywgbCwgbSwgbiwgb10pOwor
fQorbm9JbmxpbmUoX2cpOworCitmdW5jdGlvbiBfaCh4LCBhLCBiLCBjLCBkLCBlLCBmLCBnLCBo
LCBpLCBqLCBrLCBsLCBtLCBuLCBvKSB7Cit9Citub0lubGluZShfaCk7CisKK2Z1bmN0aW9uIF9p
KCkgeyB9Citub0lubGluZShfaSk7CisKK2Z1bmN0aW9uIGFzc2VydEVxdWFsKHgsIHkpIHsKKyAg
ICBpZiAoeCAhPT0geSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBhc3NlcnRFcXVhbDogZmFp
bDogJHt4fSAhPT0gJHt5fWApOworfQorbm9JbmxpbmUoYXNzZXJ0RXF1YWwpOworCitjb25zdCBj
b3VudCA9IDE1OworbGV0IGFyZ3MgPSBbXTsKK2ZvciAobGV0IGkgPSAxOyBpIDw9IGNvdW50OyAr
K2kpCisgICAgYXJncy5wdXNoKGkpOworCitmb3IgKGxldCBpID0gMDsgaSA8IDFlNTsgKytpKSB7
CisgICAgbGV0IGExID0gbmV3IEZsb2F0NjRBcnJheShjb3VudCk7CisgICAgbGV0IGEyID0gbmV3
IEZsb2F0NjRBcnJheShjb3VudCk7CisgICAgX2YoYTEsIGEyLCAuLi5hcmdzKTsKKyAgICBmb3Ig
KGxldCBqID0gMDsgaiA8IGNvdW50OyArK2opCisgICAgICAgIGFzc2VydEVxdWFsKGExW2pdLCBh
MltqXSk7Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431549</attachid>
            <date>2021-06-16 08:29:12 -0700</date>
            <delta_ts>2021-06-16 09:09:33 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-227052-20210616082911.patch</filename>
            <type>text/plain</type>
            <size>9065</size>
            <attacher name="Tadeu Zagallo">tzagallo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4NjYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
ZWVmYmJjNjg5MDkwMDQwMjFiZWJmOWM0YzI1MGM0NjI0NGY3ODk2Li41ZTNiMzAzMDYzNjExYTA0
MTFmOTQ5ZGIzN2I3NjQzNmQ1M2I2NDU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOSBAQAorMjAyMS0wNi0xNSAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNv
bT4KKworICAgICAgICBBc3NlbWJseUhlbHBlcnMgc2hvdWxkIHNhdmUvcmVzdG9yZSBjYWxsZWUg
c2F2ZSBGUFJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMjcwNTIKKyAgICAgICAgPHJkYXI6Ly83NzA4MDE2Mj4KKworICAgICAgICBSZXZpZXdlZCBi
eSBNYXJrIExhbS4KKworICAgICAgICBXZSBoYXZlIDMgZnVuY3Rpb25zIGluIEFzc2VtYmx5SGVs
cGVycyB0byBzYXZlIGFuZCByZXN0b3JlIGNhbGxlZSBzYXZlIHJlZ2lzdGVycyB0aGF0IHdlcmUg
ZmlsdGVyaW5nCisgICAgICAgIG91dCBhbnkgRlBScy4gVGhpcyBpcyBhbiBpc3N1ZSBzaW5jZSB3
ZSBkbyBoYXZlIGNhbGxlZSBzYXZlIEZQUnMgaW4gYXJtNjQgYW5kIHRoZXNlIGZ1bmN0aW9ucyBj
YW4gYmUKKyAgICAgICAgY2FsbGVkIGZyb20gdGhlIEZUTCwgYW5kIEZUTCB1c2VzIHRob3NlIGNh
bGxlZSBzYXZlcy4gVGhlIHRlc3QgY2FzZSBzaG93cyBob3cgdGhhdCdzIGFuIGlzc3VlIHdpdGgg
dGFpbAorICAgICAgICBjYWxscyBvbiBGVEw6IHRoZSBjYWxsZWUgc2F2ZXMgYXJlIGNvcnJlY3Rs
eSBzdG9yZWQgaW4gdGhlIHByb2xvZ3VlIGFuZCByZXN0b3JlZCBpbiB0aGUgZXBpbG9ndWUsIGJ1
dAorICAgICAgICB3aGVuIGVtaXR0aW5nIGEgdGFpbCBjYWxsIHdlIHVzZSBBc3NlbWJseUhlbHBl
cnM6OmVtaXRSZXN0b3JlQ2FsbGVlU2F2ZXMgdG8gcmVzdG9yZSB0aGUgY2FsbGVlIHNhdmVzLAor
ICAgICAgICB3aGljaCBkb2Vzbid0IHJlc3RvcmUgRlBScy4gVGhpcyByZXN1bHRzIGluIHRoZSBj
YWxsZWUgc2F2ZSBGUFJzIGJlaW5nIHRyYXNoZWQuIFRvIGZpeCB0aGlzIHdlIGp1c3QgbmVlZAor
ICAgICAgICB0byBzdG9wIGZpbHRlcmluZyBvdXQgdGhlIEZQUnMsIGlmIHRoZXkgYXJlIGxpc3Rl
ZCBhcyB1c2VkIGJ5IHRoZSBjb2RlIGJsb2NrIHRoZXkgc2hvdWxkIGJlIHNhdmVkL3Jlc3RvcmVk
CisgICAgICAgIGFjY29yZGluZ2x5LiBJIGFsc28gY2hhbmdlZCBERkdPU1JFbnRyeSB0byBzdG9w
IGZpbHRlcmluZyBvdXQgdGhlIGNhbGxlZSBzYXZlIEZQUnMgYW5kIGluc3RlYWQgYXNzZXJ0Cisg
ICAgICAgIHRoZXJlIGFyZW4ndCBhbnksIHNpbmNlIHRoZXkgYXJlbid0IGN1cnJlbnRseSB1c2Vk
IGluIHRoZSBERkcsIGJ1dCBpdCBjb3VsZCBoZWxwIGF2b2lkIHRoZSBzYW1lIGlzc3VlIGluCisg
ICAgICAgIHRoZSBmdXR1cmUuCisKKyAgICAgICAgKiBkZmcvREZHT1NSRW50cnkuY3BwOgorICAg
ICAgICAoSlNDOjpERkc6OnByZXBhcmVPU1JFbnRyeSk6CisgICAgICAgICogaml0L0Fzc2VtYmx5
SGVscGVycy5oOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmVtaXRTYXZlQ2FsbGVl
U2F2ZXNGb3IpOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmVtaXRTYXZlT3JDb3B5
Q2FsbGVlU2F2ZXNGb3IpOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmVtaXRSZXN0
b3JlQ2FsbGVlU2F2ZXNGb3IpOgorCiAyMDIxLTA2LTA5ICBNaWtoYWlsIFIuIEdhZGVsaGEgIDxt
aWtoYWlsQGlnYWxpYS5jb20+CiAKICAgICAgICAgRml4IGluYWR2ZXJ0ZW50IHRhZyBjb3JydXB0
aW9uIGluIGZ1bmN0aW9uQWRkcmVzc09mCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR09TUkVudHJ5LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NS
RW50cnkuY3BwCmluZGV4IGFlYTQ4NDRkYzFiMDdjZmNjZGIyMDM1NjcxYTM2MzhkZWIyN2RkZjMu
LmE4YzE0MDY2ZTBhZGUwMGM2OTkwZTZjYTA2Yjg4ODg2ZWU2ZGRlOTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRW50cnkuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHT1NSRW50cnkuY3BwCkBAIC0yOTcsNyArMjk3LDcgQEAgdm9pZCog
cHJlcGFyZU9TUkVudHJ5KFZNJiB2bSwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIENvZGVCbG9jayog
Y29kZUJsb2NrLCBCeXRlY28KICNpZiBOVU1CRVJfT0ZfQ0FMTEVFX1NBVkVTX1JFR0lTVEVSUyA+
IDAKICAgICBjb25zdCBSZWdpc3RlckF0T2Zmc2V0TGlzdCogcmVnaXN0ZXJTYXZlTG9jYXRpb25z
ID0gY29kZUJsb2NrLT5jYWxsZWVTYXZlUmVnaXN0ZXJzKCk7CiAgICAgUmVnaXN0ZXJBdE9mZnNl
dExpc3QqIGFsbENhbGxlZVNhdmVzID0gUmVnaXN0ZXJTZXQ6OnZtQ2FsbGVlU2F2ZVJlZ2lzdGVy
T2Zmc2V0cygpOwotICAgIFJlZ2lzdGVyU2V0IGRvbnRTYXZlUmVnaXN0ZXJzID0gUmVnaXN0ZXJT
ZXQoUmVnaXN0ZXJTZXQ6OnN0YWNrUmVnaXN0ZXJzKCksIFJlZ2lzdGVyU2V0OjphbGxGUFJzKCkp
OworICAgIFJlZ2lzdGVyU2V0IGRvbnRTYXZlUmVnaXN0ZXJzID0gUmVnaXN0ZXJTZXQoUmVnaXN0
ZXJTZXQ6OnN0YWNrUmVnaXN0ZXJzKCkpOwogCiAgICAgdW5zaWduZWQgcmVnaXN0ZXJDb3VudCA9
IHJlZ2lzdGVyU2F2ZUxvY2F0aW9ucy0+c2l6ZSgpOwogICAgIFZNRW50cnlSZWNvcmQqIHJlY29y
ZCA9IHZtRW50cnlSZWNvcmQodm0udG9wRW50cnlGcmFtZSk7CkBAIC0zMDUsNiArMzA1LDcgQEAg
dm9pZCogcHJlcGFyZU9TUkVudHJ5KFZNJiB2bSwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIENvZGVC
bG9jayogY29kZUJsb2NrLCBCeXRlY28KICAgICAgICAgUmVnaXN0ZXJBdE9mZnNldCBjdXJyZW50
RW50cnkgPSByZWdpc3RlclNhdmVMb2NhdGlvbnMtPmF0KGkpOwogICAgICAgICBpZiAoZG9udFNh
dmVSZWdpc3RlcnMuZ2V0KGN1cnJlbnRFbnRyeS5yZWcoKSkpCiAgICAgICAgICAgICBjb250aW51
ZTsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQoY3VycmVudEVudHJ5LnJlZygpLmlzR1BSKCkpOwog
ICAgICAgICBSZWdpc3RlckF0T2Zmc2V0KiBjYWxsZWVTYXZlc0VudHJ5ID0gYWxsQ2FsbGVlU2F2
ZXMtPmZpbmQoY3VycmVudEVudHJ5LnJlZygpKTsKICAgICAgICAgCiAgICAgICAgIGlmIGNvbnN0
ZXhwciAoQ2FsbGVyRnJhbWVBbmRQQzo6c2l6ZUluUmVnaXN0ZXJzID09IDIpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaAppbmRleCBkZGYxNjNiZDcwNzYxZWQ4
ZmQ2NWRiMzc3ZDQ1ZDM4OTZmNmIzYmI3Li5lNmU1NTAxMGM4MjhlMjgxZjBlNTRhZjkzMWI0OTIx
NGMzNzIzOTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5
SGVscGVycy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJz
LmgKQEAgLTMzMSwxNCArMzMxLDE0IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZW1pdFNhdmVDYWxs
ZWVTYXZlc0Zvcihjb25zdCBSZWdpc3RlckF0T2Zmc2V0TGlzdCogY2FsbGVlU2F2ZXMpCiAgICAg
ewotICAgICAgICBSZWdpc3RlclNldCBkb250U2F2ZVJlZ2lzdGVycyA9IFJlZ2lzdGVyU2V0KFJl
Z2lzdGVyU2V0OjpzdGFja1JlZ2lzdGVycygpLCBSZWdpc3RlclNldDo6YWxsRlBScygpKTsKKyAg
ICAgICAgUmVnaXN0ZXJTZXQgZG9udFNhdmVSZWdpc3RlcnMgPSBSZWdpc3RlclNldChSZWdpc3Rl
clNldDo6c3RhY2tSZWdpc3RlcnMoKSk7CiAgICAgICAgIHVuc2lnbmVkIHJlZ2lzdGVyQ291bnQg
PSBjYWxsZWVTYXZlcy0+c2l6ZSgpOwogCiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCByZWdpc3RlckNvdW50OyBpKyspIHsKICAgICAgICAgICAgIFJlZ2lzdGVyQXRPZmZzZXQgZW50
cnkgPSBjYWxsZWVTYXZlcy0+YXQoaSk7CiAgICAgICAgICAgICBpZiAoZG9udFNhdmVSZWdpc3Rl
cnMuZ2V0KGVudHJ5LnJlZygpKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAg
ICAgIHN0b3JlUHRyKGVudHJ5LnJlZygpLmdwcigpLCBBZGRyZXNzKGZyYW1lUG9pbnRlclJlZ2lz
dGVyLCBlbnRyeS5vZmZzZXQoKSkpOworICAgICAgICAgICAgc3RvcmVSZWcoZW50cnkucmVnKCks
IEFkZHJlc3MoZnJhbWVQb2ludGVyUmVnaXN0ZXIsIGVudHJ5Lm9mZnNldCgpKSk7CiAgICAgICAg
IH0KICAgICB9CiAgICAgCkBAIC0zNDcsOSArMzQ3LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIGVt
aXRTYXZlT3JDb3B5Q2FsbGVlU2F2ZXNGb3IoQ29kZUJsb2NrKiBjb2RlQmxvY2ssIFZpcnR1YWxS
ZWdpc3RlciBvZmZzZXRWaXJ0dWFsUmVnaXN0ZXIsIFJlc3RvcmVUYWdSZWdpc3Rlck1vZGUgdGFn
UmVnaXN0ZXJNb2RlLCBHUFJSZWcgdGVtcCkKICAgICB7CiAgICAgICAgIEFTU0VSVChjb2RlQmxv
Y2spOworICAgICAgICBBU1NFUlQoSklUQ29kZTo6aXNCYXNlbGluZUNvZGUoY29kZUJsb2NrLT5q
aXRUeXBlKCkpKTsKICAgICAgICAgCiAgICAgICAgIGNvbnN0IFJlZ2lzdGVyQXRPZmZzZXRMaXN0
KiBjYWxsZWVTYXZlcyA9IGNvZGVCbG9jay0+Y2FsbGVlU2F2ZVJlZ2lzdGVycygpOwotICAgICAg
ICBSZWdpc3RlclNldCBkb250U2F2ZVJlZ2lzdGVycyA9IFJlZ2lzdGVyU2V0KFJlZ2lzdGVyU2V0
OjpzdGFja1JlZ2lzdGVycygpLCBSZWdpc3RlclNldDo6YWxsRlBScygpKTsKKyAgICAgICAgUmVn
aXN0ZXJTZXQgZG9udFNhdmVSZWdpc3RlcnMgPSBSZWdpc3RlclNldChSZWdpc3RlclNldDo6c3Rh
Y2tSZWdpc3RlcnMoKSk7CiAgICAgICAgIHVuc2lnbmVkIHJlZ2lzdGVyQ291bnQgPSBjYWxsZWVT
YXZlcy0+c2l6ZSgpOwogCiAjaWYgVVNFKEpTVkFMVUU2NCkKQEAgLTM2MCw5ICszNjEsMTAgQEAg
cHVibGljOgogICAgICAgICAgICAgUmVnaXN0ZXJBdE9mZnNldCBlbnRyeSA9IGNhbGxlZVNhdmVz
LT5hdChpKTsKICAgICAgICAgICAgIGlmIChkb250U2F2ZVJlZ2lzdGVycy5nZXQoZW50cnkucmVn
KCkpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgCisgICAgICAgICAg
ICBSRUxFQVNFX0FTU0VSVChlbnRyeS5yZWcoKS5pc0dQUigpKTsKKwogICAgICAgICAgICAgR1BS
UmVnIHJlZ2lzdGVyVG9Xcml0ZTsKLSAgICAgICAgICAgIAorCiAjaWYgVVNFKEpTVkFMVUUzMl82
NCkKICAgICAgICAgICAgIFVOVVNFRF9QQVJBTSh0YWdSZWdpc3Rlck1vZGUpOwogICAgICAgICAg
ICAgVU5VU0VEX1BBUkFNKHRlbXApOwpAQCAtMzg4LDE0ICszOTAsMTQgQEAgcHVibGljOgogCiAg
ICAgdm9pZCBlbWl0UmVzdG9yZUNhbGxlZVNhdmVzRm9yKGNvbnN0IFJlZ2lzdGVyQXRPZmZzZXRM
aXN0KiBjYWxsZWVTYXZlcykKICAgICB7Ci0gICAgICAgIFJlZ2lzdGVyU2V0IGRvbnRSZXN0b3Jl
UmVnaXN0ZXJzID0gUmVnaXN0ZXJTZXQoUmVnaXN0ZXJTZXQ6OnN0YWNrUmVnaXN0ZXJzKCksIFJl
Z2lzdGVyU2V0OjphbGxGUFJzKCkpOworICAgICAgICBSZWdpc3RlclNldCBkb250UmVzdG9yZVJl
Z2lzdGVycyA9IFJlZ2lzdGVyU2V0KFJlZ2lzdGVyU2V0OjpzdGFja1JlZ2lzdGVycygpKTsKICAg
ICAgICAgdW5zaWduZWQgcmVnaXN0ZXJDb3VudCA9IGNhbGxlZVNhdmVzLT5zaXplKCk7CiAgICAg
ICAgIAogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcmVnaXN0ZXJDb3VudDsgaSsr
KSB7CiAgICAgICAgICAgICBSZWdpc3RlckF0T2Zmc2V0IGVudHJ5ID0gY2FsbGVlU2F2ZXMtPmF0
KGkpOwogICAgICAgICAgICAgaWYgKGRvbnRSZXN0b3JlUmVnaXN0ZXJzLmdldChlbnRyeS5yZWco
KSkpCiAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICBsb2FkUHRyKEFkZHJl
c3MoZnJhbWVQb2ludGVyUmVnaXN0ZXIsIGVudHJ5Lm9mZnNldCgpKSwgZW50cnkucmVnKCkuZ3By
KCkpOworICAgICAgICAgICAgbG9hZFJlZyhBZGRyZXNzKGZyYW1lUG9pbnRlclJlZ2lzdGVyLCBl
bnRyeS5vZmZzZXQoKSksIGVudHJ5LnJlZygpKTsKICAgICAgICAgfQogICAgIH0KIApkaWZmIC0t
Z2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCBmZGMzODY2
NmY4ZjNhNDhjY2IxZTdlNzZiNWI5YWRhYTk1OGZmZDIzLi42ZGE5ZGJkZTU4NjNjMjY0MzE3YTli
ODEyMWQ0ZjEyOTg1ZmNjNGM1IDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9K
U1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIxLTA2LTE1ICBUYWRldSBaYWdh
bGxvICA8dHphZ2FsbG9AYXBwbGUuY29tPgorCisgICAgICAgIEFzc2VtYmx5SGVscGVycyBzaG91
bGQgc2F2ZS9yZXN0b3JlIGNhbGxlZSBzYXZlIEZQUnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzA1MgorICAgICAgICA8cmRhcjovLzc3MDgwMTYy
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE1hcmsgTGFtLgorCisgICAgICAgICogc3RyZXNzL2Nh
bGxlZS1zYXZlLWZwci5qczogQWRkZWQuCisgICAgICAgIChfZik6CisgICAgICAgIChfZyk6Cisg
ICAgICAgIChfaCk6CisgICAgICAgIChfaSk6CisgICAgICAgIChhc3NlcnRFcXVhbCk6CisKIDIw
MjEtMDYtMDYgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBb
SlNDXSBVc2UgUmVzb2x2ZWRDbG9zdXJlVmFyIHRvIGdldCBicmFuZCBmcm9tIHNjb3BlCmRpZmYg
LS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9jYWxsZWUtc2F2ZS1mcHIuanMgYi9KU1Rlc3RzL3N0cmVz
cy9jYWxsZWUtc2F2ZS1mcHIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2M5MGJmODIzMjk2MDMwMDFhOGQ1ZWE1
MjJmOTFjMzMyZTMwMGEyNQotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2NhbGxl
ZS1zYXZlLWZwci5qcwpAQCAtMCwwICsxLDEwMyBAQAorJ3VzZSBzdHJpY3QnOworCitmdW5jdGlv
biBfZihhMSwgYTIsIGEsIGIsIGMsIGQsIGUsIGYsIGcsIGgsIGksIGosIGssIGwsIG0sIG4sIG8p
IHsKKyAgICBhICo9IDEuMTsKKyAgICBiICo9IDEuMjsKKyAgICBjICo9IDEuMzsKKyAgICBkICo9
IDEuNDsKKyAgICBlICo9IDEuNTsKKyAgICBmICo9IDEuNjsKKyAgICBnICo9IDEuNzsKKyAgICBo
ICo9IDEuODsKKyAgICBpICo9IDEuOTsKKyAgICBqICo9IDIuMTsKKyAgICBrICo9IDIuMjsKKyAg
ICBsICo9IDIuMzsKKyAgICBtICo9IDIuNDsKKyAgICBuICo9IDIuNTsKKyAgICBvICo9IDIuNjsK
KworICAgIGExWzBdID0gYTsKKyAgICBhMVsxXSA9IGI7CisgICAgYTFbMl0gPSBjOworICAgIGEx
WzNdID0gZDsKKyAgICBhMVs0XSA9IGU7CisgICAgYTFbNV0gPSBmOworICAgIGExWzZdID0gZzsK
KyAgICBhMVs3XSA9IGg7CisgICAgYTFbOF0gPSBpOworICAgIGExWzldID0gajsKKyAgICBhMVsx
MF0gPSBrOworICAgIGExWzExXSA9IGw7CisgICAgYTFbMTJdID0gbTsKKyAgICBhMVsxM10gPSBu
OworICAgIGExWzE0XSA9IG87CisKKyAgICBfZyhhMSwgYSwgYiwgYywgZCwgZSwgZiwgZywgaCwg
aSwgaiwgaywgbCwgbSwgbiwgbyk7CisKKyAgICBhMlswXSA9IGE7CisgICAgYTJbMV0gPSBiOwor
ICAgIGEyWzJdID0gYzsKKyAgICBhMlszXSA9IGQ7CisgICAgYTJbNF0gPSBlOworICAgIGEyWzVd
ID0gZjsKKyAgICBhMls2XSA9IGc7CisgICAgYTJbN10gPSBoOworICAgIGEyWzhdID0gaTsKKyAg
ICBhMls5XSA9IGo7CisgICAgYTJbMTBdID0gazsKKyAgICBhMlsxMV0gPSBsOworICAgIGEyWzEy
XSA9IG07CisgICAgYTJbMTNdID0gbjsKKyAgICBhMlsxNF0gPSBvOworfQorbm9JbmxpbmUoX2Yp
OworCitmdW5jdGlvbiBfZyh4LCBhLCBiLCBjLCBkLCBlLCBmLCBnLCBoLCBpLCBqLCBrLCBsLCBt
LCBuLCBvKSB7CisgICAgYSAqPSAxLjE7CisgICAgYiAqPSAxLjI7CisgICAgYyAqPSAxLjM7Cisg
ICAgZCAqPSAxLjQ7CisgICAgZSAqPSAxLjU7CisgICAgZiAqPSAxLjY7CisgICAgZyAqPSAxLjc7
CisgICAgaCAqPSAxLjg7CisgICAgaSAqPSAxLjk7CisgICAgaiAqPSAyLjE7CisgICAgayAqPSAy
LjI7CisgICAgbCAqPSAyLjM7CisgICAgbSAqPSAyLjQ7CisgICAgbiAqPSAyLjU7CisgICAgbyAq
PSAyLjY7CisKKyAgICB4WzE1XSA9IGEgKyBiICsgYyArIGQgKyBlICsgZiArIGcgKyBoICsgaSAr
IGogKyBrICsgbCArIG0gKyBuICsgbzsKKyAgICBfaSh4KTsKKyAgICByZXR1cm4gX2goeCwgLi4u
W2EsIGIsIGMsIGQsIGUsIGYsIGcsIGgsIGksIGosIGssIGwsIG0sIG4sIG9dKTsKK30KK25vSW5s
aW5lKF9nKTsKKworZnVuY3Rpb24gX2goeCwgYSwgYiwgYywgZCwgZSwgZiwgZywgaCwgaSwgaiwg
aywgbCwgbSwgbiwgbykgeworfQorbm9JbmxpbmUoX2gpOworCitmdW5jdGlvbiBfaSgpIHsgfQor
bm9JbmxpbmUoX2kpOworCitmdW5jdGlvbiBhc3NlcnRFcXVhbCh4LCB5KSB7CisgICAgaWYgKHgg
IT09IHkpCisgICAgICAgIHRocm93IG5ldyBFcnJvcihgYXNzZXJ0RXF1YWw6IGZhaWw6ICR7eH0g
IT09ICR7eX1gKTsKK30KK25vSW5saW5lKGFzc2VydEVxdWFsKTsKKworY29uc3QgY291bnQgPSAx
NTsKK2xldCBhcmdzID0gW107Citmb3IgKGxldCBpID0gMTsgaSA8PSBjb3VudDsgKytpKQorICAg
IGFyZ3MucHVzaChpKTsKKworZm9yIChsZXQgaSA9IDA7IGkgPCAxZTU7ICsraSkgeworICAgIGxl
dCBhMSA9IG5ldyBGbG9hdDY0QXJyYXkoY291bnQpOworICAgIGxldCBhMiA9IG5ldyBGbG9hdDY0
QXJyYXkoY291bnQpOworICAgIF9mKGExLCBhMiwgLi4uYXJncyk7CisgICAgZm9yIChsZXQgaiA9
IDA7IGogPCBjb3VudDsgKytqKQorICAgICAgICBhc3NlcnRFcXVhbChhMVtqXSwgYTJbal0pOwor
fQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>