<?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>237075</bug_id>
          
          <creation_ts>2022-02-22 22:45:59 -0800</creation_ts>
          <short_desc>Add ability to convert FragmentedSharedBuffer to CMBlockBuffer</short_desc>
          <delta_ts>2022-03-07 17:40:28 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>Other</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>
          
          <blocked>236754</blocked>
    
    <blocked>237078</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jean-Yves Avenard [:jya]">jean-yves.avenard</reporter>
          <assigned_to name="Jean-Yves Avenard [:jya]">jean-yves.avenard</assigned_to>
          <cc>jer.noble</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1845011</commentid>
    <comment_count>0</comment_count>
    <who name="Jean-Yves Avenard [:jya]">jean-yves.avenard</who>
    <bug_when>2022-02-22 22:45:59 -0800</bug_when>
    <thetext>Sub-task of bug 236754.

We can simplify the rewrite of SourceBufferParserWebM by using SharedBuffers instead.

Once we have built the SharedBuffer, we would want an easy way to convert it into a CMBlockBuffer without allocating memory or performing any copies.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845012</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-22 22:49:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/89338447&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845071</commentid>
    <comment_count>2</comment_count>
      <attachid>452960</attachid>
    <who name="Jean-Yves Avenard [:jya]">jean-yves.avenard</who>
    <bug_when>2022-02-23 03:34:57 -0800</bug_when>
    <thetext>Created attachment 452960
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845478</commentid>
    <comment_count>3</comment_count>
      <attachid>453063</attachid>
    <who name="Jean-Yves Avenard [:jya]">jean-yves.avenard</who>
    <bug_when>2022-02-23 18:26:16 -0800</bug_when>
    <thetext>Created attachment 453063
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845532</commentid>
    <comment_count>4</comment_count>
      <attachid>453063</attachid>
    <who name="Jean-Yves Avenard [:jya]">jean-yves.avenard</who>
    <bug_when>2022-02-24 00:05:15 -0800</bug_when>
    <thetext>Comment on attachment 453063
Patch

Unrelated failure, that code path isn&apos;t even used yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845588</commentid>
    <comment_count>5</comment_count>
      <attachid>453093</attachid>
    <who name="Jean-Yves Avenard [:jya]">jean-yves.avenard</who>
    <bug_when>2022-02-24 05:34:36 -0800</bug_when>
    <thetext>Created attachment 453093
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848952</commentid>
    <comment_count>6</comment_count>
      <attachid>453093</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2022-03-07 14:01:51 -0800</bug_when>
    <thetext>Comment on attachment 453093
Patch

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

&gt; Source/WebCore/platform/SharedBuffer.cpp:162
&gt; +    if (element-&gt;segment-&gt;size() - offsetInSegment &gt;= length)

Is it possible for element-&gt;segment-&gt;size() to be &lt; offsetInSegment? If not, maybe an ASSERT() that states such?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848980</commentid>
    <comment_count>7</comment_count>
      <attachid>453093</attachid>
    <who name="Jean-Yves Avenard [:jya]">jean-yves.avenard</who>
    <bug_when>2022-03-07 14:42:15 -0800</bug_when>
    <thetext>Comment on attachment 453093
Patch

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

&gt;&gt; Source/WebCore/platform/SharedBuffer.cpp:162
&gt;&gt; +    if (element-&gt;segment-&gt;size() - offsetInSegment &gt;= length)
&gt; 
&gt; Is it possible for element-&gt;segment-&gt;size() to be &lt; offsetInSegment? If not, maybe an ASSERT() that states such?

No, it&apos;s not possible. unless getSegmentForPosition is buggy and it&apos;s not :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848983</commentid>
    <comment_count>8</comment_count>
      <attachid>454038</attachid>
    <who name="Jean-Yves Avenard [:jya]">jean-yves.avenard</who>
    <bug_when>2022-03-07 14:53:09 -0800</bug_when>
    <thetext>Created attachment 454038
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849052</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-07 17:40:26 -0800</bug_when>
    <thetext>Committed r290968 (248147@main): &lt;https://commits.webkit.org/248147@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 454038.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452960</attachid>
            <date>2022-02-23 03:34:57 -0800</date>
            <delta_ts>2022-02-23 18:26:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237075-20220223223456.patch</filename>
            <type>text/plain</type>
            <size>9642</size>
            <attacher name="Jean-Yves Avenard [:jya]">jean-yves.avenard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMjIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2Y2NjhlNjBmNTFjN2Vl
MmE2MDgxYTIyYzQzOGI3MjYwZDBjODJkOS4uZDQzN2JhN2JmYTA1NDNkZWJjZWMxMTk0NzdlYjk2
Zjg4ZGNlNDAxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIyLTAyLTIzICBKZWFu
LVl2ZXMgQXZlbmFyZCAgPGp5YUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGFiaWxpdHkgdG8g
Y29udmVydCBGcmFnbWVudGVkU2hhcmVkQnVmZmVyIHRvIENNQmxvY2tCdWZmZXIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzA3NQorICAgICAgICBy
ZGFyOi8vODkzMzg0NDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgRnJhZ21lbnRlZFNoYXJlZEJ1ZmZlcjo6Z2V0Q29udGlndW91c0RhdGEgYW5k
CisgICAgICAgIEZyYWdtZW50ZWRTaGFyZWRCdWZmZXI6OmNyZWF0ZUNNQmxvY2tCdWZmZXIgbWV0
aG9kcy4KKworICAgICAgICBBUEkgdGVzdHMgYWRkZWQgZm9yIGdldENvbnRpZ3VvdXNEYXRhLgor
ICAgICAgICBjcmVhdGVDTUJsb2NrQnVmZmVyIHdpbGwgYmUgdXNlZCBpbiBhIGZvbGxvdy11cCBw
YXRjaC4KKworICAgICAgICAqIHBsYXRmb3JtL1NoYXJlZEJ1ZmZlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFnbWVudGVkU2hhcmVkQnVmZmVyOjpnZXRDb250aWd1b3VzRGF0YSBjb25zdCk6
CisgICAgICAgICogcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmg6CisgICAgICAgICogcGxhdGZvcm0v
Y29jb2EvU2hhcmVkQnVmZmVyQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpGcmVlU2hhcmVk
QnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYWdtZW50ZWRTaGFyZWRCdWZmZXI6OmNyZWF0
ZUNNQmxvY2tCdWZmZXIgY29uc3QpOgorCiAyMDIyLTAyLTE5ICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CiAKICAgICAgICAgT3B0aW1pemUgRE9NIHN0b3JhZ2UgZXZlbnQgZGlzcGF0
Y2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuY3BwCmluZGV4IGQwOWYxMDUy
YTBmMzFlZTk3MDYxMTAxM2IzOTM1ZmI1MzA5NTUwOTYuLmM5MzdlMWQ3NDBhM2I5ZTkxZmYyMDA0
MjM2MzhkMGNlNjE2OThjMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1No
YXJlZEJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVy
LmNwcApAQCAtMTUyLDYgKzE1MiwyNCBAQCBTaGFyZWRCdWZmZXJEYXRhVmlldyBGcmFnbWVudGVk
U2hhcmVkQnVmZmVyOjpnZXRTb21lRGF0YShzaXplX3QgcG9zaXRpb24pIGNvbnN0CiAgICAgcmV0
dXJuIHsgZWxlbWVudC0+c2VnbWVudC5jb3B5UmVmKCksIHBvc2l0aW9uIC0gZWxlbWVudC0+YmVn
aW5Qb3NpdGlvbiB9OwogfQogCitSZWY8U2hhcmVkQnVmZmVyPiBGcmFnbWVudGVkU2hhcmVkQnVm
ZmVyOjpnZXRDb250aWd1b3VzRGF0YShzaXplX3QgcG9zaXRpb24sIHNpemVfdCBsZW5ndGgpIGNv
bnN0Cit7CisgICAgaWYgKHBvc2l0aW9uID49IG1fc2l6ZSkKKyAgICAgICAgcmV0dXJuIFNoYXJl
ZEJ1ZmZlcjo6Y3JlYXRlKCk7CisgICAgY29uc3QgRGF0YVNlZ21lbnRWZWN0b3JFbnRyeSogZWxl
bWVudCA9IGdldFNlZ21lbnRGb3JQb3NpdGlvbihwb3NpdGlvbik7CisgICAgc2l6ZV90IG9mZnNl
dEluU2VnbWVudCA9IHBvc2l0aW9uIC0gZWxlbWVudC0+YmVnaW5Qb3NpdGlvbjsKKyAgICBpZiAo
ZWxlbWVudC0+c2VnbWVudC0+c2l6ZSgpIC0gb2Zmc2V0SW5TZWdtZW50ID49IGxlbmd0aCkKKyAg
ICAgICAgcmV0dXJuIFNoYXJlZEJ1ZmZlckRhdGFWaWV3IHsgZWxlbWVudC0+c2VnbWVudC5jb3B5
UmVmKCksIG9mZnNldEluU2VnbWVudCwgbGVuZ3RoIH0uY3JlYXRlU2hhcmVkQnVmZmVyKCk7Cisg
ICAgVmVjdG9yPHVpbnQ4X3Q+IGNvbWJpbmVkRGF0YTsKKyAgICBjb21iaW5lZERhdGEucmVzZXJ2
ZUluaXRpYWxDYXBhY2l0eShsZW5ndGgpOworICAgIGNvbWJpbmVkRGF0YS5hcHBlbmQoZWxlbWVu
dC0+c2VnbWVudC0+ZGF0YSgpICsgb2Zmc2V0SW5TZWdtZW50LCBlbGVtZW50LT5zZWdtZW50LT5z
aXplKCkgLSBvZmZzZXRJblNlZ21lbnQpOworICAgIGZvciAoKytlbGVtZW50OyBjb21iaW5lZERh
dGEuc2l6ZSgpIDwgbGVuZ3RoICYmIGVsZW1lbnQgIT0gbV9zZWdtZW50cy5lbmQoKTsgZWxlbWVu
dCsrKSB7CisgICAgICAgIGF1dG8gY2FuQ29weSA9IHN0ZDo6bWluKGxlbmd0aCAtIGNvbWJpbmVk
RGF0YS5zaXplKCksIGVsZW1lbnQtPnNlZ21lbnQtPnNpemUoKSk7CisgICAgICAgIGNvbWJpbmVk
RGF0YS5hcHBlbmQoZWxlbWVudC0+c2VnbWVudC0+ZGF0YSgpLCBjYW5Db3B5KTsKKyAgICB9Cisg
ICAgcmV0dXJuIFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKFdURk1vdmUoY29tYmluZWREYXRhKSk7Cit9
CisKIGNvbnN0IEZyYWdtZW50ZWRTaGFyZWRCdWZmZXI6OkRhdGFTZWdtZW50VmVjdG9yRW50cnkq
IEZyYWdtZW50ZWRTaGFyZWRCdWZmZXI6OmdldFNlZ21lbnRGb3JQb3NpdGlvbihzaXplX3QgcG9z
aXRpb24pIGNvbnN0CiB7CiAgICAgUkVMRUFTRV9BU1NFUlQocG9zaXRpb24gPCBtX3NpemUpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuaAppbmRleCBjYWVmM2YyNjIwMDMzZGQ4
Y2ZmMTU2MjNmMjNjNmI2YzliNTM0YjM3Li4zYmY4YTZkMTdlMjJmYTJlNzk0YmY0ZmY2ODE2YTU4
MmU5MGY5OTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZm
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuaApAQCAtNTQs
NiArNTQsNyBAQCB0eXBlZGVmIHN0cnVjdCBfR0J5dGVzIEdCeXRlczsKICNpZiBVU0UoRk9VTkRB
VElPTikKIE9CSkNfQ0xBU1MgTlNBcnJheTsKIE9CSkNfQ0xBU1MgTlNEYXRhOwordHlwZWRlZiBz
dHJ1Y3QgT3BhcXVlQ01CbG9ja0J1ZmZlciogQ01CbG9ja0J1ZmZlclJlZjsKICNlbmRpZgogCiBu
YW1lc3BhY2UgV1RGIHsKQEAgLTE0OSw2ICsxNTAsNyBAQCBwdWJsaWM6CiAjaWYgVVNFKEZPVU5E
QVRJT04pCiAgICAgV0VCQ09SRV9FWFBPUlQgUmV0YWluUHRyPE5TQXJyYXk+IGNyZWF0ZU5TRGF0
YUFycmF5KCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxGcmFnbWVudGVk
U2hhcmVkQnVmZmVyPiBjcmVhdGUoTlNEYXRhKik7CisgICAgV0VCQ09SRV9FWFBPUlQgUmV0YWlu
UHRyPENNQmxvY2tCdWZmZXJSZWY+IGNyZWF0ZUNNQmxvY2tCdWZmZXIoKSBjb25zdDsKICNlbmRp
ZgogI2lmIFVTRShDRikKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPEZyYWdtZW50ZWRT
aGFyZWRCdWZmZXI+IGNyZWF0ZShDRkRhdGFSZWYpOwpAQCAtMTk0LDYgKzE5Niw3IEBAIHB1Ymxp
YzoKIAogICAgIC8vIGJlZ2luIGFuZCBlbmQgdGFrZSBPKDEpIHRpbWUsIHRoaXMgdGFrZXMgTyhs
b2coTikpIHRpbWUuCiAgICAgV0VCQ09SRV9FWFBPUlQgU2hhcmVkQnVmZmVyRGF0YVZpZXcgZ2V0
U29tZURhdGEoc2l6ZV90IHBvc2l0aW9uKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBSZWY8
U2hhcmVkQnVmZmVyPiBnZXRDb250aWd1b3VzRGF0YShzaXplX3QgcG9zaXRpb24sIHNpemVfdCBs
ZW5ndGgpIGNvbnN0OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIHRvSGV4U3RyaW5nKCkg
Y29uc3Q7CiAKQEAgLTI0Niw3ICsyNDksNyBAQCBwcml2YXRlOgogCiAgICAgLy8gQ29tYmluZXMg
YWxsIHRoZSBzZWdtZW50cyBpbnRvIGEgVmVjdG9yIGFuZCByZXR1cm5zIHRoYXQgdmVjdG9yIGFm
dGVyIGNsZWFyaW5nIHRoZSBGcmFnbWVudGVkU2hhcmVkQnVmZmVyLgogICAgIFdFQkNPUkVfRVhQ
T1JUIFZlY3Rvcjx1aW50OF90PiB0YWtlRGF0YSgpOwotICAgIGNvbnN0IERhdGFTZWdtZW50VmVj
dG9yRW50cnkqIGdldFNlZ21lbnRGb3JQb3NpdGlvbihzaXplX3QgcG9zaXRpdGlvbikgY29uc3Q7
CisgICAgY29uc3QgRGF0YVNlZ21lbnRWZWN0b3JFbnRyeSogZ2V0U2VnbWVudEZvclBvc2l0aW9u
KHNpemVfdCBwb3NpdGlvbikgY29uc3Q7CiAKICNpZiBBU1NFUlRfRU5BQkxFRAogICAgIGJvb2wg
aW50ZXJuYWxseUNvbnNpc3RlbnQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2NvY29hL1NoYXJlZEJ1ZmZlckNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY29jb2EvU2hhcmVkQnVmZmVyQ29jb2EubW0KaW5kZXggNjY0MjdkZmJmMDVmZDcyNmFm
ZDk5YTMyOWM2YWMxMWFjOWVkN2E1NS4uZWIzODVhNGQ1MDliNGRjMDQ2ZmIzNjdjYTdiOWEzYjJj
ZmNiZjA1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2hhcmVk
QnVmZmVyQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2hhcmVk
QnVmZmVyQ29jb2EubW0KQEAgLTI5LDYgKzI5LDcgQEAKICNpbXBvcnQgIldlYkNvcmVKSVRPcGVy
YXRpb25zLmgiCiAjaW1wb3J0ICJXZWJDb3JlT2JqQ0V4dHJhcy5oIgogI2ltcG9ydCA8SmF2YVNj
cmlwdENvcmUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgorI2ltcG9ydCA8cGFsL2NmL0NvcmVNZWRp
YVNvZnRMaW5rLmg+CiAjaW1wb3J0IDxzdHJpbmcuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFk
Lmg+CiAjaW1wb3J0IDx3dGYvY29jb2EvVHlwZUNhc3RzQ29jb2EuaD4KQEAgLTk5LDYgKzEwMCw0
MiBAQCB2b2lkIEZyYWdtZW50ZWRTaGFyZWRCdWZmZXI6OmFwcGVuZChOU0RhdGEgKmRhdGEpCiAg
ICAgcmV0dXJuIGFwcGVuZChicmlkZ2VfY2FzdChkYXRhKSk7CiB9CiAKK3N0YXRpYyB2b2lkIEZy
ZWVTaGFyZWRCdWZmZXIodm9pZCogcmVmY29uLCB2b2lkKiwgc2l6ZV90KQoreworICAgIGF1dG8q
IGJ1ZmZlciA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgRGF0YVNlZ21lbnQqPihyZWZjb24pOwor
ICAgIGJ1ZmZlci0+ZGVyZWYoKTsKK30KKworUmV0YWluUHRyPENNQmxvY2tCdWZmZXJSZWY+IEZy
YWdtZW50ZWRTaGFyZWRCdWZmZXI6OmNyZWF0ZUNNQmxvY2tCdWZmZXIoKSBjb25zdAoreworICAg
IENNQmxvY2tCdWZmZXJSZWYgcmF3QmxvY2tCdWZmZXIgPSBudWxscHRyOworICAgIGF1dG8gZXJy
ID0gUEFMOjpDTUJsb2NrQnVmZmVyQ3JlYXRlRW1wdHkoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9z
ZWdtZW50cy5zaXplKCksIDAsICZyYXdCbG9ja0J1ZmZlcik7CisgICAgaWYgKGVyciAhPSBrQ01C
bG9ja0J1ZmZlck5vRXJyIHx8ICFyYXdCbG9ja0J1ZmZlcikKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisgICAgYXV0byBibG9ja0J1ZmZlciA9IGFkb3B0Q0YocmF3QmxvY2tCdWZmZXIpOworCisg
ICAgZm9yIChhdXRvJiBzZWdtZW50IDogKnRoaXMpIHsKKyAgICAgICAgLy8gRnJvbSBDTUJsb2Nr
QnVmZmVyQ3VzdG9tQmxvY2tTb3VyY2UgZG9jdW1lbnRhdGlvbjoKKyAgICAgICAgLy8gTm90ZSB0
aGF0IGZvciA2NC1iaXQgYXJjaGl0ZWN0dXJlcywgdGhpcyBzdHJ1Y3QgY29udGFpbnMgbWlzYWxp
Z25lZCBmdW5jdGlvbiBwb2ludGVycy4KKyAgICAgICAgLy8gVG8gYXZvaWQgbGluay10aW1lIGlz
c3VlcywgaXQgaXMgcmVjb21tZW5kZWQgdGhhdCBjbGllbnRzIGZpbGwgQ01CbG9ja0J1ZmZlckN1
c3RvbUJsb2NrU291cmNlJ3MgZnVuY3Rpb24gcG9pbnRlciBmaWVsZHMKKyAgICAgICAgLy8gYnkg
dXNpbmcgYXNzaWdubWVudCBzdGF0ZW1lbnRzLCByYXRoZXIgdGhhbiBkZWNsYXJpbmcgdGhlbSBh
cyBnbG9iYWwgb3Igc3RhdGljIHN0cnVjdHMuCisgICAgICAgIENNQmxvY2tCdWZmZXJDdXN0b21C
bG9ja1NvdXJjZSBhbGxvY2F0b3I7CisgICAgICAgIGFsbG9jYXRvci52ZXJzaW9uID0gMDsKKyAg
ICAgICAgYWxsb2NhdG9yLkFsbG9jYXRlQmxvY2sgPSBudWxscHRyOworICAgICAgICBhbGxvY2F0
b3IuRnJlZUJsb2NrID0gRnJlZVNoYXJlZEJ1ZmZlcjsKKyAgICAgICAgYWxsb2NhdG9yLnJlZkNv
biA9IGNvbnN0X2Nhc3Q8RGF0YVNlZ21lbnQqPihzZWdtZW50LnNlZ21lbnQucHRyKCkpOworICAg
ICAgICBzZWdtZW50LnNlZ21lbnQtPnJlZigpOworICAgICAgICBDTUJsb2NrQnVmZmVyUmVmIHJh
d1BhcnRpYWxCdWZmZXIgPSBudWxscHRyOworICAgICAgICBlcnIgPSBQQUw6OkNNQmxvY2tCdWZm
ZXJDcmVhdGVXaXRoTWVtb3J5QmxvY2sobnVsbHB0ciwgc3RhdGljX2Nhc3Q8dm9pZCo+KGNvbnN0
X2Nhc3Q8dWludDhfdCo+KHNlZ21lbnQuc2VnbWVudC0+ZGF0YSgpKSksIHNlZ21lbnQuc2VnbWVu
dC0+c2l6ZSgpLCBudWxscHRyLCAmYWxsb2NhdG9yLCAwLCBzZWdtZW50LnNlZ21lbnQtPnNpemUo
KSwgMCwgJnJhd1BhcnRpYWxCdWZmZXIpOworICAgICAgICBpZiAoZXJyICE9IGtDTUJsb2NrQnVm
ZmVyTm9FcnIpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgYXV0byBwYXJ0
aWFsQnVmZmVyID0gYWRvcHRDRihyYXdQYXJ0aWFsQnVmZmVyKTsKKyAgICAgICAgaWYgKFBBTDo6
Q01CbG9ja0J1ZmZlckFwcGVuZEJ1ZmZlclJlZmVyZW5jZShyYXdCbG9ja0J1ZmZlciwgcmF3UGFy
dGlhbEJ1ZmZlciwgMCwgMCwgMCkpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9
CisgICAgcmV0dXJuIGJsb2NrQnVmZmVyOworfQorCiBSZXRhaW5QdHI8TlNEYXRhPiBTaGFyZWRC
dWZmZXI6OmNyZWF0ZU5TRGF0YSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGJyaWRnZV9jYXN0KGNy
ZWF0ZUNGRGF0YSgpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5n
ZUxvZwppbmRleCBmMjY0MDJlMDg4Y2VmZGZhZTE4YmY3YjU4ZWRjYTk1YjE0YmJkOTQ2Li43YTNk
ZWU4N2RmMWZiYjIxZGQzNzFlNzhiN2Y4YTQ3NDc0YzhjZTQ5IDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjItMDIt
MjMgIEplYW4tWXZlcyBBdmVuYXJkICA8anlhQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYWJp
bGl0eSB0byBjb252ZXJ0IEZyYWdtZW50ZWRTaGFyZWRCdWZmZXIgdG8gQ01CbG9ja0J1ZmZlcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MDc1CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcDoKKyAgICAgICAgKFRlc3RXZWJL
aXRBUEk6OlRFU1RfRik6CisKIDIwMjItMDItMTkgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBs
ZS5jb20+CiAKICAgICAgICAgU2V0IGN1c3RvbSBnZW5lcmFsIHN0b3JhZ2UgZGlyZWN0b3J5IGZv
ciBjdXN0b20gV2Vic2l0ZURhdGFTdG9yZSBpbiBUZXN0Q29udHJvbGxlcgpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1NoYXJlZEJ1ZmZlci5jcHAgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcAppbmRleCAzMTU1
YzA5ZjI0NzNlYmVhNjkwMGIzOWMwZDliZWNhYWNhYTVhMDE1Li5iMDExMjhiMjZiMWNjMGEyMDVj
NjU0MWE0ODU2YjdmMDJmNDhiYzc2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcApAQCAtMjM5LDYgKzIzOSw0MSBAQCBURVNUX0Yo
RnJhZ21lbnRlZFNoYXJlZEJ1ZmZlclRlc3QsIGdldFNvbWVEYXRhKQogICAgIGNoZWNrQnVmZmVy
KGwuZGF0YSgpLCBsLnNpemUoKSwgImwiKTsKIH0KIAorVEVTVF9GKEZyYWdtZW50ZWRTaGFyZWRC
dWZmZXJUZXN0LCBnZXRDb250aWd1b3VzRGF0YSkKK3sKKyAgICBWZWN0b3I8dWludDhfdD4gczEg
PSB7ICdhJywgJ2InLCAnYycsICdkJyB9OworICAgIFZlY3Rvcjx1aW50OF90PiBzMiA9IHsgJ2Un
LCAnZicsICdnJywgJ2gnIH07CisgICAgVmVjdG9yPHVpbnQ4X3Q+IHMzID0geyAnaScsICdqJywg
J2snLCAnbCcgfTsKKworICAgIFNoYXJlZEJ1ZmZlckJ1aWxkZXIgYnVpbGRlcjsKKyAgICBidWls
ZGVyLmFwcGVuZChXVEZNb3ZlKHMxKSk7CisgICAgYnVpbGRlci5hcHBlbmQoV1RGTW92ZShzMikp
OworICAgIGJ1aWxkZXIuYXBwZW5kKFdURk1vdmUoczMpKTsKKyAgICBhdXRvIGJ1ZmZlciA9IGJ1
aWxkZXIudGFrZSgpOworCisgICAgYXV0byBhYmNkID0gYnVmZmVyLT5nZXRDb250aWd1b3VzRGF0
YSgwLCA0KTsKKyAgICBhdXRvIGJjZGVmZ2hpID0gYnVmZmVyLT5nZXRDb250aWd1b3VzRGF0YSgx
LCA4KTsKKyAgICBhdXRvIGdoID0gYnVmZmVyLT5nZXRDb250aWd1b3VzRGF0YSg2LCAyKTsKKyAg
ICBhdXRvIGdoaWogPSBidWZmZXItPmdldENvbnRpZ3VvdXNEYXRhKDYsIDQpOworICAgIGF1dG8g
aCA9IGJ1ZmZlci0+Z2V0Q29udGlndW91c0RhdGEoNywgMSk7CisgICAgYXV0byBpamsgPSBidWZm
ZXItPmdldENvbnRpZ3VvdXNEYXRhKDgsIDMpOworICAgIGF1dG8ga2wgPSBidWZmZXItPmdldENv
bnRpZ3VvdXNEYXRhKDEwLCAyKTsKKyAgICBhdXRvIGwgPSBidWZmZXItPmdldENvbnRpZ3VvdXNE
YXRhKDExLCAxKTsKKyAgICBjaGVja0J1ZmZlcihhYmNkLT5kYXRhKCksIGFiY2QtPnNpemUoKSwg
ImFiY2QiKTsKKyAgICBjaGVja0J1ZmZlcihiY2RlZmdoaS0+ZGF0YSgpLCBiY2RlZmdoaS0+c2l6
ZSgpLCAiYmNkZWZnaGkiKTsKKyAgICBjaGVja0J1ZmZlcihnaC0+ZGF0YSgpLCBnaC0+c2l6ZSgp
LCAiZ2giKTsKKyAgICBjaGVja0J1ZmZlcihnaGlqLT5kYXRhKCksIGdoaWotPnNpemUoKSwgImdo
aWoiKTsKKyAgICBjaGVja0J1ZmZlcihoLT5kYXRhKCksIGgtPnNpemUoKSwgImgiKTsKKyAgICBj
aGVja0J1ZmZlcihpamstPmRhdGEoKSwgaWprLT5zaXplKCksICJpamsiKTsKKyAgICBjaGVja0J1
ZmZlcihrbC0+ZGF0YSgpLCBrbC0+c2l6ZSgpLCAia2wiKTsKKyAgICBjaGVja0J1ZmZlcihsLT5k
YXRhKCksIGwtPnNpemUoKSwgImwiKTsKKyAgICBhdXRvIGZnaGlqa2wgPSBidWZmZXItPmdldENv
bnRpZ3VvdXNEYXRhKDUsIDIwKTsKKyAgICBFWFBFQ1RfRVEoZmdoaWprbC0+c2l6ZSgpLCBidWZm
ZXItPnNpemUoKSAtIDUpOworICAgIGNoZWNrQnVmZmVyKGZnaGlqa2wtPmRhdGEoKSwgZmdoaWpr
bC0+c2l6ZSgpLCAiZmdoaWprbCIpOworICAgIGF1dG8gb3V0Qm91bmQgPSBidWZmZXItPmdldENv
bnRpZ3VvdXNEYXRhKDMwLCAyMCk7CisgICAgRVhQRUNUX0VRKG91dEJvdW5kLT5zaXplKCksIDB1
KTsKK30KKwogVEVTVF9GKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0LCBpc0VxdWFsVG8pCiB7
CiAgICAgYXV0byBtYWtlQnVmZmVyID0gW10gKFZlY3RvcjxWZWN0b3I8dWludDhfdD4+JiYgY29u
dGVudHMpIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453063</attachid>
            <date>2022-02-23 18:26:16 -0800</date>
            <delta_ts>2022-02-24 05:34:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237075-20220224132615.patch</filename>
            <type>text/plain</type>
            <size>9693</size>
            <attacher name="Jean-Yves Avenard [:jya]">jean-yves.avenard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMjIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2Y2NjhlNjBmNTFjN2Vl
MmE2MDgxYTIyYzQzOGI3MjYwZDBjODJkOS4uZDQzN2JhN2JmYTA1NDNkZWJjZWMxMTk0NzdlYjk2
Zjg4ZGNlNDAxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIyLTAyLTIzICBKZWFu
LVl2ZXMgQXZlbmFyZCAgPGp5YUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGFiaWxpdHkgdG8g
Y29udmVydCBGcmFnbWVudGVkU2hhcmVkQnVmZmVyIHRvIENNQmxvY2tCdWZmZXIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzA3NQorICAgICAgICBy
ZGFyOi8vODkzMzg0NDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgRnJhZ21lbnRlZFNoYXJlZEJ1ZmZlcjo6Z2V0Q29udGlndW91c0RhdGEgYW5k
CisgICAgICAgIEZyYWdtZW50ZWRTaGFyZWRCdWZmZXI6OmNyZWF0ZUNNQmxvY2tCdWZmZXIgbWV0
aG9kcy4KKworICAgICAgICBBUEkgdGVzdHMgYWRkZWQgZm9yIGdldENvbnRpZ3VvdXNEYXRhLgor
ICAgICAgICBjcmVhdGVDTUJsb2NrQnVmZmVyIHdpbGwgYmUgdXNlZCBpbiBhIGZvbGxvdy11cCBw
YXRjaC4KKworICAgICAgICAqIHBsYXRmb3JtL1NoYXJlZEJ1ZmZlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFnbWVudGVkU2hhcmVkQnVmZmVyOjpnZXRDb250aWd1b3VzRGF0YSBjb25zdCk6
CisgICAgICAgICogcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmg6CisgICAgICAgICogcGxhdGZvcm0v
Y29jb2EvU2hhcmVkQnVmZmVyQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpGcmVlU2hhcmVk
QnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYWdtZW50ZWRTaGFyZWRCdWZmZXI6OmNyZWF0
ZUNNQmxvY2tCdWZmZXIgY29uc3QpOgorCiAyMDIyLTAyLTE5ICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CiAKICAgICAgICAgT3B0aW1pemUgRE9NIHN0b3JhZ2UgZXZlbnQgZGlzcGF0
Y2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuY3BwCmluZGV4IGQwOWYxMDUy
YTBmMzFlZTk3MDYxMTAxM2IzOTM1ZmI1MzA5NTUwOTYuLjYzMzY0M2E1MmU4MjZmMTY0N2U1YWZm
Y2UwOTY1ZjQzZDM0MDBlNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1No
YXJlZEJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVy
LmNwcApAQCAtMTUyLDYgKzE1MiwyNSBAQCBTaGFyZWRCdWZmZXJEYXRhVmlldyBGcmFnbWVudGVk
U2hhcmVkQnVmZmVyOjpnZXRTb21lRGF0YShzaXplX3QgcG9zaXRpb24pIGNvbnN0CiAgICAgcmV0
dXJuIHsgZWxlbWVudC0+c2VnbWVudC5jb3B5UmVmKCksIHBvc2l0aW9uIC0gZWxlbWVudC0+YmVn
aW5Qb3NpdGlvbiB9OwogfQogCitSZWY8U2hhcmVkQnVmZmVyPiBGcmFnbWVudGVkU2hhcmVkQnVm
ZmVyOjpnZXRDb250aWd1b3VzRGF0YShzaXplX3QgcG9zaXRpb24sIHNpemVfdCBsZW5ndGgpIGNv
bnN0Cit7CisgICAgaWYgKHBvc2l0aW9uID49IG1fc2l6ZSkKKyAgICAgICAgcmV0dXJuIFNoYXJl
ZEJ1ZmZlcjo6Y3JlYXRlKCk7CisgICAgbGVuZ3RoID0gc3RkOjptaW4obV9zaXplIC0gcG9zaXRp
b24sIGxlbmd0aCk7CisgICAgY29uc3QgRGF0YVNlZ21lbnRWZWN0b3JFbnRyeSogZWxlbWVudCA9
IGdldFNlZ21lbnRGb3JQb3NpdGlvbihwb3NpdGlvbik7CisgICAgc2l6ZV90IG9mZnNldEluU2Vn
bWVudCA9IHBvc2l0aW9uIC0gZWxlbWVudC0+YmVnaW5Qb3NpdGlvbjsKKyAgICBpZiAoZWxlbWVu
dC0+c2VnbWVudC0+c2l6ZSgpIC0gb2Zmc2V0SW5TZWdtZW50ID49IGxlbmd0aCkKKyAgICAgICAg
cmV0dXJuIFNoYXJlZEJ1ZmZlckRhdGFWaWV3IHsgZWxlbWVudC0+c2VnbWVudC5jb3B5UmVmKCks
IG9mZnNldEluU2VnbWVudCwgbGVuZ3RoIH0uY3JlYXRlU2hhcmVkQnVmZmVyKCk7CisgICAgVmVj
dG9yPHVpbnQ4X3Q+IGNvbWJpbmVkRGF0YTsKKyAgICBjb21iaW5lZERhdGEucmVzZXJ2ZUluaXRp
YWxDYXBhY2l0eShsZW5ndGgpOworICAgIGNvbWJpbmVkRGF0YS5hcHBlbmQoZWxlbWVudC0+c2Vn
bWVudC0+ZGF0YSgpICsgb2Zmc2V0SW5TZWdtZW50LCBlbGVtZW50LT5zZWdtZW50LT5zaXplKCkg
LSBvZmZzZXRJblNlZ21lbnQpOworICAgIGZvciAoKytlbGVtZW50OyBjb21iaW5lZERhdGEuc2l6
ZSgpIDwgbGVuZ3RoICYmIGVsZW1lbnQgIT0gbV9zZWdtZW50cy5lbmQoKTsgZWxlbWVudCsrKSB7
CisgICAgICAgIGF1dG8gY2FuQ29weSA9IHN0ZDo6bWluKGxlbmd0aCAtIGNvbWJpbmVkRGF0YS5z
aXplKCksIGVsZW1lbnQtPnNlZ21lbnQtPnNpemUoKSk7CisgICAgICAgIGNvbWJpbmVkRGF0YS5h
cHBlbmQoZWxlbWVudC0+c2VnbWVudC0+ZGF0YSgpLCBjYW5Db3B5KTsKKyAgICB9CisgICAgcmV0
dXJuIFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKFdURk1vdmUoY29tYmluZWREYXRhKSk7Cit9CisKIGNv
bnN0IEZyYWdtZW50ZWRTaGFyZWRCdWZmZXI6OkRhdGFTZWdtZW50VmVjdG9yRW50cnkqIEZyYWdt
ZW50ZWRTaGFyZWRCdWZmZXI6OmdldFNlZ21lbnRGb3JQb3NpdGlvbihzaXplX3QgcG9zaXRpb24p
IGNvbnN0CiB7CiAgICAgUkVMRUFTRV9BU1NFUlQocG9zaXRpb24gPCBtX3NpemUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuaAppbmRleCBjYWVmM2YyNjIwMDMzZGQ4Y2ZmMTU2
MjNmMjNjNmI2YzliNTM0YjM3Li4zYmY4YTZkMTdlMjJmYTJlNzk0YmY0ZmY2ODE2YTU4MmU5MGY5
OTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuaApAQCAtNTQsNiArNTQs
NyBAQCB0eXBlZGVmIHN0cnVjdCBfR0J5dGVzIEdCeXRlczsKICNpZiBVU0UoRk9VTkRBVElPTikK
IE9CSkNfQ0xBU1MgTlNBcnJheTsKIE9CSkNfQ0xBU1MgTlNEYXRhOwordHlwZWRlZiBzdHJ1Y3Qg
T3BhcXVlQ01CbG9ja0J1ZmZlciogQ01CbG9ja0J1ZmZlclJlZjsKICNlbmRpZgogCiBuYW1lc3Bh
Y2UgV1RGIHsKQEAgLTE0OSw2ICsxNTAsNyBAQCBwdWJsaWM6CiAjaWYgVVNFKEZPVU5EQVRJT04p
CiAgICAgV0VCQ09SRV9FWFBPUlQgUmV0YWluUHRyPE5TQXJyYXk+IGNyZWF0ZU5TRGF0YUFycmF5
KCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxGcmFnbWVudGVkU2hhcmVk
QnVmZmVyPiBjcmVhdGUoTlNEYXRhKik7CisgICAgV0VCQ09SRV9FWFBPUlQgUmV0YWluUHRyPENN
QmxvY2tCdWZmZXJSZWY+IGNyZWF0ZUNNQmxvY2tCdWZmZXIoKSBjb25zdDsKICNlbmRpZgogI2lm
IFVTRShDRikKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPEZyYWdtZW50ZWRTaGFyZWRC
dWZmZXI+IGNyZWF0ZShDRkRhdGFSZWYpOwpAQCAtMTk0LDYgKzE5Niw3IEBAIHB1YmxpYzoKIAog
ICAgIC8vIGJlZ2luIGFuZCBlbmQgdGFrZSBPKDEpIHRpbWUsIHRoaXMgdGFrZXMgTyhsb2coTikp
IHRpbWUuCiAgICAgV0VCQ09SRV9FWFBPUlQgU2hhcmVkQnVmZmVyRGF0YVZpZXcgZ2V0U29tZURh
dGEoc2l6ZV90IHBvc2l0aW9uKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBSZWY8U2hhcmVk
QnVmZmVyPiBnZXRDb250aWd1b3VzRGF0YShzaXplX3QgcG9zaXRpb24sIHNpemVfdCBsZW5ndGgp
IGNvbnN0OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIHRvSGV4U3RyaW5nKCkgY29uc3Q7
CiAKQEAgLTI0Niw3ICsyNDksNyBAQCBwcml2YXRlOgogCiAgICAgLy8gQ29tYmluZXMgYWxsIHRo
ZSBzZWdtZW50cyBpbnRvIGEgVmVjdG9yIGFuZCByZXR1cm5zIHRoYXQgdmVjdG9yIGFmdGVyIGNs
ZWFyaW5nIHRoZSBGcmFnbWVudGVkU2hhcmVkQnVmZmVyLgogICAgIFdFQkNPUkVfRVhQT1JUIFZl
Y3Rvcjx1aW50OF90PiB0YWtlRGF0YSgpOwotICAgIGNvbnN0IERhdGFTZWdtZW50VmVjdG9yRW50
cnkqIGdldFNlZ21lbnRGb3JQb3NpdGlvbihzaXplX3QgcG9zaXRpdGlvbikgY29uc3Q7CisgICAg
Y29uc3QgRGF0YVNlZ21lbnRWZWN0b3JFbnRyeSogZ2V0U2VnbWVudEZvclBvc2l0aW9uKHNpemVf
dCBwb3NpdGlvbikgY29uc3Q7CiAKICNpZiBBU1NFUlRfRU5BQkxFRAogICAgIGJvb2wgaW50ZXJu
YWxseUNvbnNpc3RlbnQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2NvY29hL1NoYXJlZEJ1ZmZlckNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y29jb2EvU2hhcmVkQnVmZmVyQ29jb2EubW0KaW5kZXggNjY0MjdkZmJmMDVmZDcyNmFmZDk5YTMy
OWM2YWMxMWFjOWVkN2E1NS4uZWIzODVhNGQ1MDliNGRjMDQ2ZmIzNjdjYTdiOWEzYjJjZmNiZjA1
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2hhcmVkQnVmZmVy
Q29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2hhcmVkQnVmZmVy
Q29jb2EubW0KQEAgLTI5LDYgKzI5LDcgQEAKICNpbXBvcnQgIldlYkNvcmVKSVRPcGVyYXRpb25z
LmgiCiAjaW1wb3J0ICJXZWJDb3JlT2JqQ0V4dHJhcy5oIgogI2ltcG9ydCA8SmF2YVNjcmlwdENv
cmUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgorI2ltcG9ydCA8cGFsL2NmL0NvcmVNZWRpYVNvZnRM
aW5rLmg+CiAjaW1wb3J0IDxzdHJpbmcuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CiAj
aW1wb3J0IDx3dGYvY29jb2EvVHlwZUNhc3RzQ29jb2EuaD4KQEAgLTk5LDYgKzEwMCw0MiBAQCB2
b2lkIEZyYWdtZW50ZWRTaGFyZWRCdWZmZXI6OmFwcGVuZChOU0RhdGEgKmRhdGEpCiAgICAgcmV0
dXJuIGFwcGVuZChicmlkZ2VfY2FzdChkYXRhKSk7CiB9CiAKK3N0YXRpYyB2b2lkIEZyZWVTaGFy
ZWRCdWZmZXIodm9pZCogcmVmY29uLCB2b2lkKiwgc2l6ZV90KQoreworICAgIGF1dG8qIGJ1ZmZl
ciA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgRGF0YVNlZ21lbnQqPihyZWZjb24pOworICAgIGJ1
ZmZlci0+ZGVyZWYoKTsKK30KKworUmV0YWluUHRyPENNQmxvY2tCdWZmZXJSZWY+IEZyYWdtZW50
ZWRTaGFyZWRCdWZmZXI6OmNyZWF0ZUNNQmxvY2tCdWZmZXIoKSBjb25zdAoreworICAgIENNQmxv
Y2tCdWZmZXJSZWYgcmF3QmxvY2tCdWZmZXIgPSBudWxscHRyOworICAgIGF1dG8gZXJyID0gUEFM
OjpDTUJsb2NrQnVmZmVyQ3JlYXRlRW1wdHkoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbV9zZWdtZW50
cy5zaXplKCksIDAsICZyYXdCbG9ja0J1ZmZlcik7CisgICAgaWYgKGVyciAhPSBrQ01CbG9ja0J1
ZmZlck5vRXJyIHx8ICFyYXdCbG9ja0J1ZmZlcikKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgYXV0byBibG9ja0J1ZmZlciA9IGFkb3B0Q0YocmF3QmxvY2tCdWZmZXIpOworCisgICAgZm9y
IChhdXRvJiBzZWdtZW50IDogKnRoaXMpIHsKKyAgICAgICAgLy8gRnJvbSBDTUJsb2NrQnVmZmVy
Q3VzdG9tQmxvY2tTb3VyY2UgZG9jdW1lbnRhdGlvbjoKKyAgICAgICAgLy8gTm90ZSB0aGF0IGZv
ciA2NC1iaXQgYXJjaGl0ZWN0dXJlcywgdGhpcyBzdHJ1Y3QgY29udGFpbnMgbWlzYWxpZ25lZCBm
dW5jdGlvbiBwb2ludGVycy4KKyAgICAgICAgLy8gVG8gYXZvaWQgbGluay10aW1lIGlzc3Vlcywg
aXQgaXMgcmVjb21tZW5kZWQgdGhhdCBjbGllbnRzIGZpbGwgQ01CbG9ja0J1ZmZlckN1c3RvbUJs
b2NrU291cmNlJ3MgZnVuY3Rpb24gcG9pbnRlciBmaWVsZHMKKyAgICAgICAgLy8gYnkgdXNpbmcg
YXNzaWdubWVudCBzdGF0ZW1lbnRzLCByYXRoZXIgdGhhbiBkZWNsYXJpbmcgdGhlbSBhcyBnbG9i
YWwgb3Igc3RhdGljIHN0cnVjdHMuCisgICAgICAgIENNQmxvY2tCdWZmZXJDdXN0b21CbG9ja1Nv
dXJjZSBhbGxvY2F0b3I7CisgICAgICAgIGFsbG9jYXRvci52ZXJzaW9uID0gMDsKKyAgICAgICAg
YWxsb2NhdG9yLkFsbG9jYXRlQmxvY2sgPSBudWxscHRyOworICAgICAgICBhbGxvY2F0b3IuRnJl
ZUJsb2NrID0gRnJlZVNoYXJlZEJ1ZmZlcjsKKyAgICAgICAgYWxsb2NhdG9yLnJlZkNvbiA9IGNv
bnN0X2Nhc3Q8RGF0YVNlZ21lbnQqPihzZWdtZW50LnNlZ21lbnQucHRyKCkpOworICAgICAgICBz
ZWdtZW50LnNlZ21lbnQtPnJlZigpOworICAgICAgICBDTUJsb2NrQnVmZmVyUmVmIHJhd1BhcnRp
YWxCdWZmZXIgPSBudWxscHRyOworICAgICAgICBlcnIgPSBQQUw6OkNNQmxvY2tCdWZmZXJDcmVh
dGVXaXRoTWVtb3J5QmxvY2sobnVsbHB0ciwgc3RhdGljX2Nhc3Q8dm9pZCo+KGNvbnN0X2Nhc3Q8
dWludDhfdCo+KHNlZ21lbnQuc2VnbWVudC0+ZGF0YSgpKSksIHNlZ21lbnQuc2VnbWVudC0+c2l6
ZSgpLCBudWxscHRyLCAmYWxsb2NhdG9yLCAwLCBzZWdtZW50LnNlZ21lbnQtPnNpemUoKSwgMCwg
JnJhd1BhcnRpYWxCdWZmZXIpOworICAgICAgICBpZiAoZXJyICE9IGtDTUJsb2NrQnVmZmVyTm9F
cnIpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgYXV0byBwYXJ0aWFsQnVm
ZmVyID0gYWRvcHRDRihyYXdQYXJ0aWFsQnVmZmVyKTsKKyAgICAgICAgaWYgKFBBTDo6Q01CbG9j
a0J1ZmZlckFwcGVuZEJ1ZmZlclJlZmVyZW5jZShyYXdCbG9ja0J1ZmZlciwgcmF3UGFydGlhbEJ1
ZmZlciwgMCwgMCwgMCkpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisgICAg
cmV0dXJuIGJsb2NrQnVmZmVyOworfQorCiBSZXRhaW5QdHI8TlNEYXRhPiBTaGFyZWRCdWZmZXI6
OmNyZWF0ZU5TRGF0YSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGJyaWRnZV9jYXN0KGNyZWF0ZUNG
RGF0YSgpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwpp
bmRleCBmMjY0MDJlMDg4Y2VmZGZhZTE4YmY3YjU4ZWRjYTk1YjE0YmJkOTQ2Li43YTNkZWU4N2Rm
MWZiYjIxZGQzNzFlNzhiN2Y4YTQ3NDc0YzhjZTQ5IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VM
b2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjItMDItMjMgIEpl
YW4tWXZlcyBBdmVuYXJkICA8anlhQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYWJpbGl0eSB0
byBjb252ZXJ0IEZyYWdtZW50ZWRTaGFyZWRCdWZmZXIgdG8gQ01CbG9ja0J1ZmZlcgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MDc1CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OlRFU1RfRik6CisKIDIwMjItMDItMTkgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+
CiAKICAgICAgICAgU2V0IGN1c3RvbSBnZW5lcmFsIHN0b3JhZ2UgZGlyZWN0b3J5IGZvciBjdXN0
b20gV2Vic2l0ZURhdGFTdG9yZSBpbiBUZXN0Q29udHJvbGxlcgpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1NoYXJlZEJ1ZmZlci5jcHAgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcAppbmRleCAzMTU1YzA5ZjI0
NzNlYmVhNjkwMGIzOWMwZDliZWNhYWNhYTVhMDE1Li5iMDExMjhiMjZiMWNjMGEyMDVjNjU0MWE0
ODU2YjdmMDJmNDhiYzc2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvU2hhcmVkQnVmZmVyLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvU2hhcmVkQnVmZmVyLmNwcApAQCAtMjM5LDYgKzIzOSw0MSBAQCBURVNUX0YoRnJhZ21l
bnRlZFNoYXJlZEJ1ZmZlclRlc3QsIGdldFNvbWVEYXRhKQogICAgIGNoZWNrQnVmZmVyKGwuZGF0
YSgpLCBsLnNpemUoKSwgImwiKTsKIH0KIAorVEVTVF9GKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJU
ZXN0LCBnZXRDb250aWd1b3VzRGF0YSkKK3sKKyAgICBWZWN0b3I8dWludDhfdD4gczEgPSB7ICdh
JywgJ2InLCAnYycsICdkJyB9OworICAgIFZlY3Rvcjx1aW50OF90PiBzMiA9IHsgJ2UnLCAnZics
ICdnJywgJ2gnIH07CisgICAgVmVjdG9yPHVpbnQ4X3Q+IHMzID0geyAnaScsICdqJywgJ2snLCAn
bCcgfTsKKworICAgIFNoYXJlZEJ1ZmZlckJ1aWxkZXIgYnVpbGRlcjsKKyAgICBidWlsZGVyLmFw
cGVuZChXVEZNb3ZlKHMxKSk7CisgICAgYnVpbGRlci5hcHBlbmQoV1RGTW92ZShzMikpOworICAg
IGJ1aWxkZXIuYXBwZW5kKFdURk1vdmUoczMpKTsKKyAgICBhdXRvIGJ1ZmZlciA9IGJ1aWxkZXIu
dGFrZSgpOworCisgICAgYXV0byBhYmNkID0gYnVmZmVyLT5nZXRDb250aWd1b3VzRGF0YSgwLCA0
KTsKKyAgICBhdXRvIGJjZGVmZ2hpID0gYnVmZmVyLT5nZXRDb250aWd1b3VzRGF0YSgxLCA4KTsK
KyAgICBhdXRvIGdoID0gYnVmZmVyLT5nZXRDb250aWd1b3VzRGF0YSg2LCAyKTsKKyAgICBhdXRv
IGdoaWogPSBidWZmZXItPmdldENvbnRpZ3VvdXNEYXRhKDYsIDQpOworICAgIGF1dG8gaCA9IGJ1
ZmZlci0+Z2V0Q29udGlndW91c0RhdGEoNywgMSk7CisgICAgYXV0byBpamsgPSBidWZmZXItPmdl
dENvbnRpZ3VvdXNEYXRhKDgsIDMpOworICAgIGF1dG8ga2wgPSBidWZmZXItPmdldENvbnRpZ3Vv
dXNEYXRhKDEwLCAyKTsKKyAgICBhdXRvIGwgPSBidWZmZXItPmdldENvbnRpZ3VvdXNEYXRhKDEx
LCAxKTsKKyAgICBjaGVja0J1ZmZlcihhYmNkLT5kYXRhKCksIGFiY2QtPnNpemUoKSwgImFiY2Qi
KTsKKyAgICBjaGVja0J1ZmZlcihiY2RlZmdoaS0+ZGF0YSgpLCBiY2RlZmdoaS0+c2l6ZSgpLCAi
YmNkZWZnaGkiKTsKKyAgICBjaGVja0J1ZmZlcihnaC0+ZGF0YSgpLCBnaC0+c2l6ZSgpLCAiZ2gi
KTsKKyAgICBjaGVja0J1ZmZlcihnaGlqLT5kYXRhKCksIGdoaWotPnNpemUoKSwgImdoaWoiKTsK
KyAgICBjaGVja0J1ZmZlcihoLT5kYXRhKCksIGgtPnNpemUoKSwgImgiKTsKKyAgICBjaGVja0J1
ZmZlcihpamstPmRhdGEoKSwgaWprLT5zaXplKCksICJpamsiKTsKKyAgICBjaGVja0J1ZmZlcihr
bC0+ZGF0YSgpLCBrbC0+c2l6ZSgpLCAia2wiKTsKKyAgICBjaGVja0J1ZmZlcihsLT5kYXRhKCks
IGwtPnNpemUoKSwgImwiKTsKKyAgICBhdXRvIGZnaGlqa2wgPSBidWZmZXItPmdldENvbnRpZ3Vv
dXNEYXRhKDUsIDIwKTsKKyAgICBFWFBFQ1RfRVEoZmdoaWprbC0+c2l6ZSgpLCBidWZmZXItPnNp
emUoKSAtIDUpOworICAgIGNoZWNrQnVmZmVyKGZnaGlqa2wtPmRhdGEoKSwgZmdoaWprbC0+c2l6
ZSgpLCAiZmdoaWprbCIpOworICAgIGF1dG8gb3V0Qm91bmQgPSBidWZmZXItPmdldENvbnRpZ3Vv
dXNEYXRhKDMwLCAyMCk7CisgICAgRVhQRUNUX0VRKG91dEJvdW5kLT5zaXplKCksIDB1KTsKK30K
KwogVEVTVF9GKEZyYWdtZW50ZWRTaGFyZWRCdWZmZXJUZXN0LCBpc0VxdWFsVG8pCiB7CiAgICAg
YXV0byBtYWtlQnVmZmVyID0gW10gKFZlY3RvcjxWZWN0b3I8dWludDhfdD4+JiYgY29udGVudHMp
IHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453093</attachid>
            <date>2022-02-24 05:34:36 -0800</date>
            <delta_ts>2022-03-07 14:53:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237075-20220225003434.patch</filename>
            <type>text/plain</type>
            <size>10103</size>
            <attacher name="Jean-Yves Avenard [:jya]">jean-yves.avenard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwMjIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2Y2NjhlNjBmNTFjN2Vl
MmE2MDgxYTIyYzQzOGI3MjYwZDBjODJkOS4uZDQzN2JhN2JmYTA1NDNkZWJjZWMxMTk0NzdlYjk2
Zjg4ZGNlNDAxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIyLTAyLTIzICBKZWFu
LVl2ZXMgQXZlbmFyZCAgPGp5YUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGFiaWxpdHkgdG8g
Y29udmVydCBGcmFnbWVudGVkU2hhcmVkQnVmZmVyIHRvIENNQmxvY2tCdWZmZXIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzA3NQorICAgICAgICBy
ZGFyOi8vODkzMzg0NDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgRnJhZ21lbnRlZFNoYXJlZEJ1ZmZlcjo6Z2V0Q29udGlndW91c0RhdGEgYW5k
CisgICAgICAgIEZyYWdtZW50ZWRTaGFyZWRCdWZmZXI6OmNyZWF0ZUNNQmxvY2tCdWZmZXIgbWV0
aG9kcy4KKworICAgICAgICBBUEkgdGVzdHMgYWRkZWQgZm9yIGdldENvbnRpZ3VvdXNEYXRhLgor
ICAgICAgICBjcmVhdGVDTUJsb2NrQnVmZmVyIHdpbGwgYmUgdXNlZCBpbiBhIGZvbGxvdy11cCBw
YXRjaC4KKworICAgICAgICAqIHBsYXRmb3JtL1NoYXJlZEJ1ZmZlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFnbWVudGVkU2hhcmVkQnVmZmVyOjpnZXRDb250aWd1b3VzRGF0YSBjb25zdCk6
CisgICAgICAgICogcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmg6CisgICAgICAgICogcGxhdGZvcm0v
Y29jb2EvU2hhcmVkQnVmZmVyQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpGcmVlU2hhcmVk
QnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYWdtZW50ZWRTaGFyZWRCdWZmZXI6OmNyZWF0
ZUNNQmxvY2tCdWZmZXIgY29uc3QpOgorCiAyMDIyLTAyLTE5ICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CiAKICAgICAgICAgT3B0aW1pemUgRE9NIHN0b3JhZ2UgZXZlbnQgZGlzcGF0
Y2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuY3BwCmluZGV4IGQwOWYxMDUy
YTBmMzFlZTk3MDYxMTAxM2IzOTM1ZmI1MzA5NTUwOTYuLjYzMzY0M2E1MmU4MjZmMTY0N2U1YWZm
Y2UwOTY1ZjQzZDM0MDBlNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1No
YXJlZEJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVy
LmNwcApAQCAtMTUyLDYgKzE1MiwyNSBAQCBTaGFyZWRCdWZmZXJEYXRhVmlldyBGcmFnbWVudGVk
U2hhcmVkQnVmZmVyOjpnZXRTb21lRGF0YShzaXplX3QgcG9zaXRpb24pIGNvbnN0CiAgICAgcmV0
dXJuIHsgZWxlbWVudC0+c2VnbWVudC5jb3B5UmVmKCksIHBvc2l0aW9uIC0gZWxlbWVudC0+YmVn
aW5Qb3NpdGlvbiB9OwogfQogCitSZWY8U2hhcmVkQnVmZmVyPiBGcmFnbWVudGVkU2hhcmVkQnVm
ZmVyOjpnZXRDb250aWd1b3VzRGF0YShzaXplX3QgcG9zaXRpb24sIHNpemVfdCBsZW5ndGgpIGNv
bnN0Cit7CisgICAgaWYgKHBvc2l0aW9uID49IG1fc2l6ZSkKKyAgICAgICAgcmV0dXJuIFNoYXJl
ZEJ1ZmZlcjo6Y3JlYXRlKCk7CisgICAgbGVuZ3RoID0gc3RkOjptaW4obV9zaXplIC0gcG9zaXRp
b24sIGxlbmd0aCk7CisgICAgY29uc3QgRGF0YVNlZ21lbnRWZWN0b3JFbnRyeSogZWxlbWVudCA9
IGdldFNlZ21lbnRGb3JQb3NpdGlvbihwb3NpdGlvbik7CisgICAgc2l6ZV90IG9mZnNldEluU2Vn
bWVudCA9IHBvc2l0aW9uIC0gZWxlbWVudC0+YmVnaW5Qb3NpdGlvbjsKKyAgICBpZiAoZWxlbWVu
dC0+c2VnbWVudC0+c2l6ZSgpIC0gb2Zmc2V0SW5TZWdtZW50ID49IGxlbmd0aCkKKyAgICAgICAg
cmV0dXJuIFNoYXJlZEJ1ZmZlckRhdGFWaWV3IHsgZWxlbWVudC0+c2VnbWVudC5jb3B5UmVmKCks
IG9mZnNldEluU2VnbWVudCwgbGVuZ3RoIH0uY3JlYXRlU2hhcmVkQnVmZmVyKCk7CisgICAgVmVj
dG9yPHVpbnQ4X3Q+IGNvbWJpbmVkRGF0YTsKKyAgICBjb21iaW5lZERhdGEucmVzZXJ2ZUluaXRp
YWxDYXBhY2l0eShsZW5ndGgpOworICAgIGNvbWJpbmVkRGF0YS5hcHBlbmQoZWxlbWVudC0+c2Vn
bWVudC0+ZGF0YSgpICsgb2Zmc2V0SW5TZWdtZW50LCBlbGVtZW50LT5zZWdtZW50LT5zaXplKCkg
LSBvZmZzZXRJblNlZ21lbnQpOworICAgIGZvciAoKytlbGVtZW50OyBjb21iaW5lZERhdGEuc2l6
ZSgpIDwgbGVuZ3RoICYmIGVsZW1lbnQgIT0gbV9zZWdtZW50cy5lbmQoKTsgZWxlbWVudCsrKSB7
CisgICAgICAgIGF1dG8gY2FuQ29weSA9IHN0ZDo6bWluKGxlbmd0aCAtIGNvbWJpbmVkRGF0YS5z
aXplKCksIGVsZW1lbnQtPnNlZ21lbnQtPnNpemUoKSk7CisgICAgICAgIGNvbWJpbmVkRGF0YS5h
cHBlbmQoZWxlbWVudC0+c2VnbWVudC0+ZGF0YSgpLCBjYW5Db3B5KTsKKyAgICB9CisgICAgcmV0
dXJuIFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKFdURk1vdmUoY29tYmluZWREYXRhKSk7Cit9CisKIGNv
bnN0IEZyYWdtZW50ZWRTaGFyZWRCdWZmZXI6OkRhdGFTZWdtZW50VmVjdG9yRW50cnkqIEZyYWdt
ZW50ZWRTaGFyZWRCdWZmZXI6OmdldFNlZ21lbnRGb3JQb3NpdGlvbihzaXplX3QgcG9zaXRpb24p
IGNvbnN0CiB7CiAgICAgUkVMRUFTRV9BU1NFUlQocG9zaXRpb24gPCBtX3NpemUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuaAppbmRleCBjYWVmM2YyNjIwMDMzZGQ4Y2ZmMTU2
MjNmMjNjNmI2YzliNTM0YjM3Li4zYmY4YTZkMTdlMjJmYTJlNzk0YmY0ZmY2ODE2YTU4MmU5MGY5
OTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuaApAQCAtNTQsNiArNTQs
NyBAQCB0eXBlZGVmIHN0cnVjdCBfR0J5dGVzIEdCeXRlczsKICNpZiBVU0UoRk9VTkRBVElPTikK
IE9CSkNfQ0xBU1MgTlNBcnJheTsKIE9CSkNfQ0xBU1MgTlNEYXRhOwordHlwZWRlZiBzdHJ1Y3Qg
T3BhcXVlQ01CbG9ja0J1ZmZlciogQ01CbG9ja0J1ZmZlclJlZjsKICNlbmRpZgogCiBuYW1lc3Bh
Y2UgV1RGIHsKQEAgLTE0OSw2ICsxNTAsNyBAQCBwdWJsaWM6CiAjaWYgVVNFKEZPVU5EQVRJT04p
CiAgICAgV0VCQ09SRV9FWFBPUlQgUmV0YWluUHRyPE5TQXJyYXk+IGNyZWF0ZU5TRGF0YUFycmF5
KCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxGcmFnbWVudGVkU2hhcmVk
QnVmZmVyPiBjcmVhdGUoTlNEYXRhKik7CisgICAgV0VCQ09SRV9FWFBPUlQgUmV0YWluUHRyPENN
QmxvY2tCdWZmZXJSZWY+IGNyZWF0ZUNNQmxvY2tCdWZmZXIoKSBjb25zdDsKICNlbmRpZgogI2lm
IFVTRShDRikKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPEZyYWdtZW50ZWRTaGFyZWRC
dWZmZXI+IGNyZWF0ZShDRkRhdGFSZWYpOwpAQCAtMTk0LDYgKzE5Niw3IEBAIHB1YmxpYzoKIAog
ICAgIC8vIGJlZ2luIGFuZCBlbmQgdGFrZSBPKDEpIHRpbWUsIHRoaXMgdGFrZXMgTyhsb2coTikp
IHRpbWUuCiAgICAgV0VCQ09SRV9FWFBPUlQgU2hhcmVkQnVmZmVyRGF0YVZpZXcgZ2V0U29tZURh
dGEoc2l6ZV90IHBvc2l0aW9uKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBSZWY8U2hhcmVk
QnVmZmVyPiBnZXRDb250aWd1b3VzRGF0YShzaXplX3QgcG9zaXRpb24sIHNpemVfdCBsZW5ndGgp
IGNvbnN0OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIHRvSGV4U3RyaW5nKCkgY29uc3Q7
CiAKQEAgLTI0Niw3ICsyNDksNyBAQCBwcml2YXRlOgogCiAgICAgLy8gQ29tYmluZXMgYWxsIHRo
ZSBzZWdtZW50cyBpbnRvIGEgVmVjdG9yIGFuZCByZXR1cm5zIHRoYXQgdmVjdG9yIGFmdGVyIGNs
ZWFyaW5nIHRoZSBGcmFnbWVudGVkU2hhcmVkQnVmZmVyLgogICAgIFdFQkNPUkVfRVhQT1JUIFZl
Y3Rvcjx1aW50OF90PiB0YWtlRGF0YSgpOwotICAgIGNvbnN0IERhdGFTZWdtZW50VmVjdG9yRW50
cnkqIGdldFNlZ21lbnRGb3JQb3NpdGlvbihzaXplX3QgcG9zaXRpdGlvbikgY29uc3Q7CisgICAg
Y29uc3QgRGF0YVNlZ21lbnRWZWN0b3JFbnRyeSogZ2V0U2VnbWVudEZvclBvc2l0aW9uKHNpemVf
dCBwb3NpdGlvbikgY29uc3Q7CiAKICNpZiBBU1NFUlRfRU5BQkxFRAogICAgIGJvb2wgaW50ZXJu
YWxseUNvbnNpc3RlbnQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2NvY29hL1NoYXJlZEJ1ZmZlckNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y29jb2EvU2hhcmVkQnVmZmVyQ29jb2EubW0KaW5kZXggNjY0MjdkZmJmMDVmZDcyNmFmZDk5YTMy
OWM2YWMxMWFjOWVkN2E1NS4uMTkwOGI0NmFmYjVkNjEwNDEyZmFlY2RjMTI0MjE2NGVmYTYxOTQy
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2hhcmVkQnVmZmVy
Q29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2hhcmVkQnVmZmVy
Q29jb2EubW0KQEAgLTI5LDYgKzI5LDcgQEAKICNpbXBvcnQgIldlYkNvcmVKSVRPcGVyYXRpb25z
LmgiCiAjaW1wb3J0ICJXZWJDb3JlT2JqQ0V4dHJhcy5oIgogI2ltcG9ydCA8SmF2YVNjcmlwdENv
cmUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgorI2ltcG9ydCA8cGFsL2NmL0NvcmVNZWRpYVNvZnRM
aW5rLmg+CiAjaW1wb3J0IDxzdHJpbmcuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CiAj
aW1wb3J0IDx3dGYvY29jb2EvVHlwZUNhc3RzQ29jb2EuaD4KQEAgLTk5LDYgKzEwMCw1NSBAQCB2
b2lkIEZyYWdtZW50ZWRTaGFyZWRCdWZmZXI6OmFwcGVuZChOU0RhdGEgKmRhdGEpCiAgICAgcmV0
dXJuIGFwcGVuZChicmlkZ2VfY2FzdChkYXRhKSk7CiB9CiAKK3N0YXRpYyB2b2lkIEZyZWVEYXRh
U2VnbWVudCh2b2lkKiByZWZjb24sIHZvaWQqLCBzaXplX3QpCit7CisgICAgYXV0byogYnVmZmVy
ID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBEYXRhU2VnbWVudCo+KHJlZmNvbik7CisgICAgYnVm
ZmVyLT5kZXJlZigpOworfQorCitSZXRhaW5QdHI8Q01CbG9ja0J1ZmZlclJlZj4gRnJhZ21lbnRl
ZFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlQ01CbG9ja0J1ZmZlcigpIGNvbnN0Cit7CisgICAgYXV0byBz
ZWdtZW50VG9DTUJsb2NrQnVmZmVyID0gW10gKGNvbnN0IERhdGFTZWdtZW50JiBzZWdtZW50KSAt
PiBSZXRhaW5QdHI8Q01CbG9ja0J1ZmZlclJlZj4geworICAgICAgICAvLyBGcm9tIENNQmxvY2tC
dWZmZXJDdXN0b21CbG9ja1NvdXJjZSBkb2N1bWVudGF0aW9uOgorICAgICAgICAvLyBOb3RlIHRo
YXQgZm9yIDY0LWJpdCBhcmNoaXRlY3R1cmVzLCB0aGlzIHN0cnVjdCBjb250YWlucyBtaXNhbGln
bmVkIGZ1bmN0aW9uIHBvaW50ZXJzLgorICAgICAgICAvLyBUbyBhdm9pZCBsaW5rLXRpbWUgaXNz
dWVzLCBpdCBpcyByZWNvbW1lbmRlZCB0aGF0IGNsaWVudHMgZmlsbCBDTUJsb2NrQnVmZmVyQ3Vz
dG9tQmxvY2tTb3VyY2UncyBmdW5jdGlvbiBwb2ludGVyIGZpZWxkcworICAgICAgICAvLyBieSB1
c2luZyBhc3NpZ25tZW50IHN0YXRlbWVudHMsIHJhdGhlciB0aGFuIGRlY2xhcmluZyB0aGVtIGFz
IGdsb2JhbCBvciBzdGF0aWMgc3RydWN0cy4KKyAgICAgICAgQ01CbG9ja0J1ZmZlckN1c3RvbUJs
b2NrU291cmNlIGFsbG9jYXRvcjsKKyAgICAgICAgYWxsb2NhdG9yLnZlcnNpb24gPSAwOworICAg
ICAgICBhbGxvY2F0b3IuQWxsb2NhdGVCbG9jayA9IG51bGxwdHI7CisgICAgICAgIGFsbG9jYXRv
ci5GcmVlQmxvY2sgPSBGcmVlRGF0YVNlZ21lbnQ7CisgICAgICAgIGFsbG9jYXRvci5yZWZDb24g
PSBjb25zdF9jYXN0PERhdGFTZWdtZW50Kj4oJnNlZ21lbnQpOworICAgICAgICBzZWdtZW50LnJl
ZigpOworICAgICAgICBDTUJsb2NrQnVmZmVyUmVmIHBhcnRpYWxCdWZmZXIgPSBudWxscHRyOwor
ICAgICAgICBpZiAoUEFMOjpDTUJsb2NrQnVmZmVyQ3JlYXRlV2l0aE1lbW9yeUJsb2NrKG51bGxw
dHIsIHN0YXRpY19jYXN0PHZvaWQqPihjb25zdF9jYXN0PHVpbnQ4X3QqPihzZWdtZW50LmRhdGEo
KSkpLCBzZWdtZW50LnNpemUoKSwgbnVsbHB0ciwgJmFsbG9jYXRvciwgMCwgc2VnbWVudC5zaXpl
KCksIDAsICZwYXJ0aWFsQnVmZmVyKSAhPSBrQ01CbG9ja0J1ZmZlck5vRXJyKQorICAgICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiBhZG9wdENGKHBhcnRpYWxCdWZmZXIp
OworICAgIH07CisKKyAgICBpZiAoaGFzT25lU2VnbWVudCgpICYmICFpc0VtcHR5KCkpCisgICAg
ICAgIHJldHVybiBzZWdtZW50VG9DTUJsb2NrQnVmZmVyKG1fc2VnbWVudHNbMF0uc2VnbWVudCk7
CisKKyAgICBDTUJsb2NrQnVmZmVyUmVmIHJhd0Jsb2NrQnVmZmVyID0gbnVsbHB0cjsKKyAgICBh
dXRvIGVyciA9IFBBTDo6Q01CbG9ja0J1ZmZlckNyZWF0ZUVtcHR5KGtDRkFsbG9jYXRvckRlZmF1
bHQsIGlzRW1wdHkoKSA/IDAgOiBtX3NlZ21lbnRzLnNpemUoKSwgMCwgJnJhd0Jsb2NrQnVmZmVy
KTsKKyAgICBpZiAoZXJyICE9IGtDTUJsb2NrQnVmZmVyTm9FcnIgfHwgIXJhd0Jsb2NrQnVmZmVy
KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBhdXRvIGJsb2NrQnVmZmVyID0gYWRvcHRD
RihyYXdCbG9ja0J1ZmZlcik7CisKKyAgICBpZiAoaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4g
YmxvY2tCdWZmZXI7CisKKyAgICBmb3IgKGF1dG8mIHNlZ21lbnQgOiBtX3NlZ21lbnRzKSB7Cisg
ICAgICAgIGlmICghc2VnbWVudC5zZWdtZW50LT5zaXplKCkpCisgICAgICAgICAgICBjb250aW51
ZTsKKyAgICAgICAgYXV0byBwYXJ0aWFsQnVmZmVyID0gc2VnbWVudFRvQ01CbG9ja0J1ZmZlcihz
ZWdtZW50LnNlZ21lbnQpOworICAgICAgICBpZiAoIXBhcnRpYWxCdWZmZXIpCisgICAgICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgaWYgKFBBTDo6Q01CbG9ja0J1ZmZlckFwcGVuZEJ1
ZmZlclJlZmVyZW5jZShyYXdCbG9ja0J1ZmZlciwgcGFydGlhbEJ1ZmZlci5nZXQoKSwgMCwgMCwg
MCkgIT0ga0NNQmxvY2tCdWZmZXJOb0VycikKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwor
ICAgIH0KKyAgICByZXR1cm4gYmxvY2tCdWZmZXI7Cit9CisKIFJldGFpblB0cjxOU0RhdGE+IFNo
YXJlZEJ1ZmZlcjo6Y3JlYXRlTlNEYXRhKCkgY29uc3QKIHsKICAgICByZXR1cm4gYnJpZGdlX2Nh
c3QoY3JlYXRlQ0ZEYXRhKCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMv
Q2hhbmdlTG9nCmluZGV4IGYyNjQwMmUwODhjZWZkZmFlMThiZjdiNThlZGNhOTViMTRiYmQ5NDYu
LjdhM2RlZTg3ZGYxZmJiMjFkZDM3MWU3OGI3ZjhhNDc0NzRjOGNlNDkgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAy
Mi0wMi0yMyAgSmVhbi1ZdmVzIEF2ZW5hcmQgIDxqeWFAYXBwbGUuY29tPgorCisgICAgICAgIEFk
ZCBhYmlsaXR5IHRvIGNvbnZlcnQgRnJhZ21lbnRlZFNoYXJlZEJ1ZmZlciB0byBDTUJsb2NrQnVm
ZmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzcw
NzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6VEVTVF9GKToKKwogMjAyMi0wMi0xOSAgU2lodWkgTGl1ICA8c2lodWlfbGl1
QGFwcGxlLmNvbT4KIAogICAgICAgICBTZXQgY3VzdG9tIGdlbmVyYWwgc3RvcmFnZSBkaXJlY3Rv
cnkgZm9yIGN1c3RvbSBXZWJzaXRlRGF0YVN0b3JlIGluIFRlc3RDb250cm9sbGVyCmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwCmluZGV4
IDMxNTVjMDlmMjQ3M2ViZWE2OTAwYjM5YzBkOWJlY2FhY2FhNWEwMTUuLmIwMTEyOGIyNmIxY2Mw
YTIwNWM2NTQxYTQ4NTZiN2YwMmY0OGJjNzYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwCkBAIC0yMzksNiArMjM5LDQxIEBAIFRF
U1RfRihGcmFnbWVudGVkU2hhcmVkQnVmZmVyVGVzdCwgZ2V0U29tZURhdGEpCiAgICAgY2hlY2tC
dWZmZXIobC5kYXRhKCksIGwuc2l6ZSgpLCAibCIpOwogfQogCitURVNUX0YoRnJhZ21lbnRlZFNo
YXJlZEJ1ZmZlclRlc3QsIGdldENvbnRpZ3VvdXNEYXRhKQoreworICAgIFZlY3Rvcjx1aW50OF90
PiBzMSA9IHsgJ2EnLCAnYicsICdjJywgJ2QnIH07CisgICAgVmVjdG9yPHVpbnQ4X3Q+IHMyID0g
eyAnZScsICdmJywgJ2cnLCAnaCcgfTsKKyAgICBWZWN0b3I8dWludDhfdD4gczMgPSB7ICdpJywg
J2onLCAnaycsICdsJyB9OworCisgICAgU2hhcmVkQnVmZmVyQnVpbGRlciBidWlsZGVyOworICAg
IGJ1aWxkZXIuYXBwZW5kKFdURk1vdmUoczEpKTsKKyAgICBidWlsZGVyLmFwcGVuZChXVEZNb3Zl
KHMyKSk7CisgICAgYnVpbGRlci5hcHBlbmQoV1RGTW92ZShzMykpOworICAgIGF1dG8gYnVmZmVy
ID0gYnVpbGRlci50YWtlKCk7CisKKyAgICBhdXRvIGFiY2QgPSBidWZmZXItPmdldENvbnRpZ3Vv
dXNEYXRhKDAsIDQpOworICAgIGF1dG8gYmNkZWZnaGkgPSBidWZmZXItPmdldENvbnRpZ3VvdXNE
YXRhKDEsIDgpOworICAgIGF1dG8gZ2ggPSBidWZmZXItPmdldENvbnRpZ3VvdXNEYXRhKDYsIDIp
OworICAgIGF1dG8gZ2hpaiA9IGJ1ZmZlci0+Z2V0Q29udGlndW91c0RhdGEoNiwgNCk7CisgICAg
YXV0byBoID0gYnVmZmVyLT5nZXRDb250aWd1b3VzRGF0YSg3LCAxKTsKKyAgICBhdXRvIGlqayA9
IGJ1ZmZlci0+Z2V0Q29udGlndW91c0RhdGEoOCwgMyk7CisgICAgYXV0byBrbCA9IGJ1ZmZlci0+
Z2V0Q29udGlndW91c0RhdGEoMTAsIDIpOworICAgIGF1dG8gbCA9IGJ1ZmZlci0+Z2V0Q29udGln
dW91c0RhdGEoMTEsIDEpOworICAgIGNoZWNrQnVmZmVyKGFiY2QtPmRhdGEoKSwgYWJjZC0+c2l6
ZSgpLCAiYWJjZCIpOworICAgIGNoZWNrQnVmZmVyKGJjZGVmZ2hpLT5kYXRhKCksIGJjZGVmZ2hp
LT5zaXplKCksICJiY2RlZmdoaSIpOworICAgIGNoZWNrQnVmZmVyKGdoLT5kYXRhKCksIGdoLT5z
aXplKCksICJnaCIpOworICAgIGNoZWNrQnVmZmVyKGdoaWotPmRhdGEoKSwgZ2hpai0+c2l6ZSgp
LCAiZ2hpaiIpOworICAgIGNoZWNrQnVmZmVyKGgtPmRhdGEoKSwgaC0+c2l6ZSgpLCAiaCIpOwor
ICAgIGNoZWNrQnVmZmVyKGlqay0+ZGF0YSgpLCBpamstPnNpemUoKSwgImlqayIpOworICAgIGNo
ZWNrQnVmZmVyKGtsLT5kYXRhKCksIGtsLT5zaXplKCksICJrbCIpOworICAgIGNoZWNrQnVmZmVy
KGwtPmRhdGEoKSwgbC0+c2l6ZSgpLCAibCIpOworICAgIGF1dG8gZmdoaWprbCA9IGJ1ZmZlci0+
Z2V0Q29udGlndW91c0RhdGEoNSwgMjApOworICAgIEVYUEVDVF9FUShmZ2hpamtsLT5zaXplKCks
IGJ1ZmZlci0+c2l6ZSgpIC0gNSk7CisgICAgY2hlY2tCdWZmZXIoZmdoaWprbC0+ZGF0YSgpLCBm
Z2hpamtsLT5zaXplKCksICJmZ2hpamtsIik7CisgICAgYXV0byBvdXRCb3VuZCA9IGJ1ZmZlci0+
Z2V0Q29udGlndW91c0RhdGEoMzAsIDIwKTsKKyAgICBFWFBFQ1RfRVEob3V0Qm91bmQtPnNpemUo
KSwgMHUpOworfQorCiBURVNUX0YoRnJhZ21lbnRlZFNoYXJlZEJ1ZmZlclRlc3QsIGlzRXF1YWxU
bykKIHsKICAgICBhdXRvIG1ha2VCdWZmZXIgPSBbXSAoVmVjdG9yPFZlY3Rvcjx1aW50OF90Pj4m
JiBjb250ZW50cykgewo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454038</attachid>
            <date>2022-03-07 14:53:09 -0800</date>
            <delta_ts>2022-03-07 17:40:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237075-20220308095308.patch</filename>
            <type>text/plain</type>
            <size>10196</size>
            <attacher name="Jean-Yves Avenard [:jya]">jean-yves.avenard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwODMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2NhNzY5MWNkNDVlODhl
M2UwMDUwN2MxZTcyZGM4NTg5ZWQyZGRiMS4uMGVhNTYwMTYyY2U5NzIwMzZjZmUxMWZhMWM0Mjlk
MWJiODdmNGQxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIyLTAyLTIzICBKZWFu
LVl2ZXMgQXZlbmFyZCAgPGp5YUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGFiaWxpdHkgdG8g
Y29udmVydCBGcmFnbWVudGVkU2hhcmVkQnVmZmVyIHRvIENNQmxvY2tCdWZmZXIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzA3NQorICAgICAgICBy
ZGFyOi8vODkzMzg0NDcKKworICAgICAgICBSZXZpZXdlZCBieSBKZXIgTm9ibGUuCisKKyAgICAg
ICAgQWRkIEZyYWdtZW50ZWRTaGFyZWRCdWZmZXI6OmdldENvbnRpZ3VvdXNEYXRhIGFuZAorICAg
ICAgICBGcmFnbWVudGVkU2hhcmVkQnVmZmVyOjpjcmVhdGVDTUJsb2NrQnVmZmVyIG1ldGhvZHMu
CisKKyAgICAgICAgQVBJIHRlc3RzIGFkZGVkIGZvciBnZXRDb250aWd1b3VzRGF0YS4KKyAgICAg
ICAgY3JlYXRlQ01CbG9ja0J1ZmZlciB3aWxsIGJlIHVzZWQgaW4gYSBmb2xsb3ctdXAgcGF0Y2gu
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9TaGFyZWRCdWZmZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhZ21lbnRlZFNoYXJlZEJ1ZmZlcjo6Z2V0Q29udGlndW91c0RhdGEgY29uc3QpOgorICAg
ICAgICAqIHBsYXRmb3JtL1NoYXJlZEJ1ZmZlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29h
L1NoYXJlZEJ1ZmZlckNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6RnJlZVNoYXJlZEJ1ZmZl
cik6CisgICAgICAgIChXZWJDb3JlOjpGcmFnbWVudGVkU2hhcmVkQnVmZmVyOjpjcmVhdGVDTUJs
b2NrQnVmZmVyIGNvbnN0KToKKwogMjAyMi0wMy0wNCAgSmVhbi1ZdmVzIEF2ZW5hcmQgIDxqeWFA
YXBwbGUuY29tPgogCiAgICAgICAgIE1lZGlhVGltZTo6aW52YWxpZFRpbWUoKSBjb252ZXJzaW9u
IHRvIENNVGltZSBpbmNvcnJlY3RseSBjcmVhdGVzIGEgdmFsaWQgdGltZS4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuY3BwCmluZGV4IGY4N2I2YTRmNjNiMjZhMjE4ODIwNmU5
MzhhYTU4NTc5N2FiMzk1ZTQuLmU1NjYyMWU0ZWU4ZDVjYjc2YzU5MDhiMWY4MGIxODQwNjQwOThm
OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmNwcApAQCAtMTUyLDYg
KzE1MiwyNiBAQCBTaGFyZWRCdWZmZXJEYXRhVmlldyBGcmFnbWVudGVkU2hhcmVkQnVmZmVyOjpn
ZXRTb21lRGF0YShzaXplX3QgcG9zaXRpb24pIGNvbnN0CiAgICAgcmV0dXJuIHsgZWxlbWVudC0+
c2VnbWVudC5jb3B5UmVmKCksIHBvc2l0aW9uIC0gZWxlbWVudC0+YmVnaW5Qb3NpdGlvbiB9Owog
fQogCitSZWY8U2hhcmVkQnVmZmVyPiBGcmFnbWVudGVkU2hhcmVkQnVmZmVyOjpnZXRDb250aWd1
b3VzRGF0YShzaXplX3QgcG9zaXRpb24sIHNpemVfdCBsZW5ndGgpIGNvbnN0Cit7CisgICAgaWYg
KHBvc2l0aW9uID49IG1fc2l6ZSkKKyAgICAgICAgcmV0dXJuIFNoYXJlZEJ1ZmZlcjo6Y3JlYXRl
KCk7CisgICAgbGVuZ3RoID0gc3RkOjptaW4obV9zaXplIC0gcG9zaXRpb24sIGxlbmd0aCk7Cisg
ICAgY29uc3QgRGF0YVNlZ21lbnRWZWN0b3JFbnRyeSogZWxlbWVudCA9IGdldFNlZ21lbnRGb3JQ
b3NpdGlvbihwb3NpdGlvbik7CisgICAgc2l6ZV90IG9mZnNldEluU2VnbWVudCA9IHBvc2l0aW9u
IC0gZWxlbWVudC0+YmVnaW5Qb3NpdGlvbjsKKyAgICBBU1NFUlQoZWxlbWVudC0+c2VnbWVudC0+
c2l6ZSgpID4gb2Zmc2V0SW5TZWdtZW50KTsKKyAgICBpZiAoZWxlbWVudC0+c2VnbWVudC0+c2l6
ZSgpIC0gb2Zmc2V0SW5TZWdtZW50ID49IGxlbmd0aCkKKyAgICAgICAgcmV0dXJuIFNoYXJlZEJ1
ZmZlckRhdGFWaWV3IHsgZWxlbWVudC0+c2VnbWVudC5jb3B5UmVmKCksIG9mZnNldEluU2VnbWVu
dCwgbGVuZ3RoIH0uY3JlYXRlU2hhcmVkQnVmZmVyKCk7CisgICAgVmVjdG9yPHVpbnQ4X3Q+IGNv
bWJpbmVkRGF0YTsKKyAgICBjb21iaW5lZERhdGEucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShsZW5n
dGgpOworICAgIGNvbWJpbmVkRGF0YS5hcHBlbmQoZWxlbWVudC0+c2VnbWVudC0+ZGF0YSgpICsg
b2Zmc2V0SW5TZWdtZW50LCBlbGVtZW50LT5zZWdtZW50LT5zaXplKCkgLSBvZmZzZXRJblNlZ21l
bnQpOworICAgIGZvciAoKytlbGVtZW50OyBjb21iaW5lZERhdGEuc2l6ZSgpIDwgbGVuZ3RoICYm
IGVsZW1lbnQgIT0gbV9zZWdtZW50cy5lbmQoKTsgZWxlbWVudCsrKSB7CisgICAgICAgIGF1dG8g
Y2FuQ29weSA9IHN0ZDo6bWluKGxlbmd0aCAtIGNvbWJpbmVkRGF0YS5zaXplKCksIGVsZW1lbnQt
PnNlZ21lbnQtPnNpemUoKSk7CisgICAgICAgIGNvbWJpbmVkRGF0YS5hcHBlbmQoZWxlbWVudC0+
c2VnbWVudC0+ZGF0YSgpLCBjYW5Db3B5KTsKKyAgICB9CisgICAgcmV0dXJuIFNoYXJlZEJ1ZmZl
cjo6Y3JlYXRlKFdURk1vdmUoY29tYmluZWREYXRhKSk7Cit9CisKIGNvbnN0IEZyYWdtZW50ZWRT
aGFyZWRCdWZmZXI6OkRhdGFTZWdtZW50VmVjdG9yRW50cnkqIEZyYWdtZW50ZWRTaGFyZWRCdWZm
ZXI6OmdldFNlZ21lbnRGb3JQb3NpdGlvbihzaXplX3QgcG9zaXRpb24pIGNvbnN0CiB7CiAgICAg
UkVMRUFTRV9BU1NFUlQocG9zaXRpb24gPCBtX3NpemUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
aGFyZWRCdWZmZXIuaAppbmRleCBjYWVmM2YyNjIwMDMzZGQ4Y2ZmMTU2MjNmMjNjNmI2YzliNTM0
YjM3Li4zYmY4YTZkMTdlMjJmYTJlNzk0YmY0ZmY2ODE2YTU4MmU5MGY5OTY5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuaApAQCAtNTQsNiArNTQsNyBAQCB0eXBlZGVmIHN0
cnVjdCBfR0J5dGVzIEdCeXRlczsKICNpZiBVU0UoRk9VTkRBVElPTikKIE9CSkNfQ0xBU1MgTlNB
cnJheTsKIE9CSkNfQ0xBU1MgTlNEYXRhOwordHlwZWRlZiBzdHJ1Y3QgT3BhcXVlQ01CbG9ja0J1
ZmZlciogQ01CbG9ja0J1ZmZlclJlZjsKICNlbmRpZgogCiBuYW1lc3BhY2UgV1RGIHsKQEAgLTE0
OSw2ICsxNTAsNyBAQCBwdWJsaWM6CiAjaWYgVVNFKEZPVU5EQVRJT04pCiAgICAgV0VCQ09SRV9F
WFBPUlQgUmV0YWluUHRyPE5TQXJyYXk+IGNyZWF0ZU5TRGF0YUFycmF5KCkgY29uc3Q7CiAgICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxGcmFnbWVudGVkU2hhcmVkQnVmZmVyPiBjcmVhdGUo
TlNEYXRhKik7CisgICAgV0VCQ09SRV9FWFBPUlQgUmV0YWluUHRyPENNQmxvY2tCdWZmZXJSZWY+
IGNyZWF0ZUNNQmxvY2tCdWZmZXIoKSBjb25zdDsKICNlbmRpZgogI2lmIFVTRShDRikKICAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPEZyYWdtZW50ZWRTaGFyZWRCdWZmZXI+IGNyZWF0ZShD
RkRhdGFSZWYpOwpAQCAtMTk0LDYgKzE5Niw3IEBAIHB1YmxpYzoKIAogICAgIC8vIGJlZ2luIGFu
ZCBlbmQgdGFrZSBPKDEpIHRpbWUsIHRoaXMgdGFrZXMgTyhsb2coTikpIHRpbWUuCiAgICAgV0VC
Q09SRV9FWFBPUlQgU2hhcmVkQnVmZmVyRGF0YVZpZXcgZ2V0U29tZURhdGEoc2l6ZV90IHBvc2l0
aW9uKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBSZWY8U2hhcmVkQnVmZmVyPiBnZXRDb250
aWd1b3VzRGF0YShzaXplX3QgcG9zaXRpb24sIHNpemVfdCBsZW5ndGgpIGNvbnN0OwogCiAgICAg
V0VCQ09SRV9FWFBPUlQgU3RyaW5nIHRvSGV4U3RyaW5nKCkgY29uc3Q7CiAKQEAgLTI0Niw3ICsy
NDksNyBAQCBwcml2YXRlOgogCiAgICAgLy8gQ29tYmluZXMgYWxsIHRoZSBzZWdtZW50cyBpbnRv
IGEgVmVjdG9yIGFuZCByZXR1cm5zIHRoYXQgdmVjdG9yIGFmdGVyIGNsZWFyaW5nIHRoZSBGcmFn
bWVudGVkU2hhcmVkQnVmZmVyLgogICAgIFdFQkNPUkVfRVhQT1JUIFZlY3Rvcjx1aW50OF90PiB0
YWtlRGF0YSgpOwotICAgIGNvbnN0IERhdGFTZWdtZW50VmVjdG9yRW50cnkqIGdldFNlZ21lbnRG
b3JQb3NpdGlvbihzaXplX3QgcG9zaXRpdGlvbikgY29uc3Q7CisgICAgY29uc3QgRGF0YVNlZ21l
bnRWZWN0b3JFbnRyeSogZ2V0U2VnbWVudEZvclBvc2l0aW9uKHNpemVfdCBwb3NpdGlvbikgY29u
c3Q7CiAKICNpZiBBU1NFUlRfRU5BQkxFRAogICAgIGJvb2wgaW50ZXJuYWxseUNvbnNpc3RlbnQo
KSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1NoYXJl
ZEJ1ZmZlckNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2hhcmVkQnVm
ZmVyQ29jb2EubW0KaW5kZXggNjY0MjdkZmJmMDVmZDcyNmFmZDk5YTMyOWM2YWMxMWFjOWVkN2E1
NS4uMTkwOGI0NmFmYjVkNjEwNDEyZmFlY2RjMTI0MjE2NGVmYTYxOTQyYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2hhcmVkQnVmZmVyQ29jb2EubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2hhcmVkQnVmZmVyQ29jb2EubW0KQEAgLTI5
LDYgKzI5LDcgQEAKICNpbXBvcnQgIldlYkNvcmVKSVRPcGVyYXRpb25zLmgiCiAjaW1wb3J0ICJX
ZWJDb3JlT2JqQ0V4dHJhcy5oIgogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvSW5pdGlhbGl6ZVRo
cmVhZGluZy5oPgorI2ltcG9ydCA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAjaW1wb3J0
IDxzdHJpbmcuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW1wb3J0IDx3dGYvY29j
b2EvVHlwZUNhc3RzQ29jb2EuaD4KQEAgLTk5LDYgKzEwMCw1NSBAQCB2b2lkIEZyYWdtZW50ZWRT
aGFyZWRCdWZmZXI6OmFwcGVuZChOU0RhdGEgKmRhdGEpCiAgICAgcmV0dXJuIGFwcGVuZChicmlk
Z2VfY2FzdChkYXRhKSk7CiB9CiAKK3N0YXRpYyB2b2lkIEZyZWVEYXRhU2VnbWVudCh2b2lkKiBy
ZWZjb24sIHZvaWQqLCBzaXplX3QpCit7CisgICAgYXV0byogYnVmZmVyID0gcmVpbnRlcnByZXRf
Y2FzdDxjb25zdCBEYXRhU2VnbWVudCo+KHJlZmNvbik7CisgICAgYnVmZmVyLT5kZXJlZigpOwor
fQorCitSZXRhaW5QdHI8Q01CbG9ja0J1ZmZlclJlZj4gRnJhZ21lbnRlZFNoYXJlZEJ1ZmZlcjo6
Y3JlYXRlQ01CbG9ja0J1ZmZlcigpIGNvbnN0Cit7CisgICAgYXV0byBzZWdtZW50VG9DTUJsb2Nr
QnVmZmVyID0gW10gKGNvbnN0IERhdGFTZWdtZW50JiBzZWdtZW50KSAtPiBSZXRhaW5QdHI8Q01C
bG9ja0J1ZmZlclJlZj4geworICAgICAgICAvLyBGcm9tIENNQmxvY2tCdWZmZXJDdXN0b21CbG9j
a1NvdXJjZSBkb2N1bWVudGF0aW9uOgorICAgICAgICAvLyBOb3RlIHRoYXQgZm9yIDY0LWJpdCBh
cmNoaXRlY3R1cmVzLCB0aGlzIHN0cnVjdCBjb250YWlucyBtaXNhbGlnbmVkIGZ1bmN0aW9uIHBv
aW50ZXJzLgorICAgICAgICAvLyBUbyBhdm9pZCBsaW5rLXRpbWUgaXNzdWVzLCBpdCBpcyByZWNv
bW1lbmRlZCB0aGF0IGNsaWVudHMgZmlsbCBDTUJsb2NrQnVmZmVyQ3VzdG9tQmxvY2tTb3VyY2Un
cyBmdW5jdGlvbiBwb2ludGVyIGZpZWxkcworICAgICAgICAvLyBieSB1c2luZyBhc3NpZ25tZW50
IHN0YXRlbWVudHMsIHJhdGhlciB0aGFuIGRlY2xhcmluZyB0aGVtIGFzIGdsb2JhbCBvciBzdGF0
aWMgc3RydWN0cy4KKyAgICAgICAgQ01CbG9ja0J1ZmZlckN1c3RvbUJsb2NrU291cmNlIGFsbG9j
YXRvcjsKKyAgICAgICAgYWxsb2NhdG9yLnZlcnNpb24gPSAwOworICAgICAgICBhbGxvY2F0b3Iu
QWxsb2NhdGVCbG9jayA9IG51bGxwdHI7CisgICAgICAgIGFsbG9jYXRvci5GcmVlQmxvY2sgPSBG
cmVlRGF0YVNlZ21lbnQ7CisgICAgICAgIGFsbG9jYXRvci5yZWZDb24gPSBjb25zdF9jYXN0PERh
dGFTZWdtZW50Kj4oJnNlZ21lbnQpOworICAgICAgICBzZWdtZW50LnJlZigpOworICAgICAgICBD
TUJsb2NrQnVmZmVyUmVmIHBhcnRpYWxCdWZmZXIgPSBudWxscHRyOworICAgICAgICBpZiAoUEFM
OjpDTUJsb2NrQnVmZmVyQ3JlYXRlV2l0aE1lbW9yeUJsb2NrKG51bGxwdHIsIHN0YXRpY19jYXN0
PHZvaWQqPihjb25zdF9jYXN0PHVpbnQ4X3QqPihzZWdtZW50LmRhdGEoKSkpLCBzZWdtZW50LnNp
emUoKSwgbnVsbHB0ciwgJmFsbG9jYXRvciwgMCwgc2VnbWVudC5zaXplKCksIDAsICZwYXJ0aWFs
QnVmZmVyKSAhPSBrQ01CbG9ja0J1ZmZlck5vRXJyKQorICAgICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisgICAgICAgIHJldHVybiBhZG9wdENGKHBhcnRpYWxCdWZmZXIpOworICAgIH07CisKKyAg
ICBpZiAoaGFzT25lU2VnbWVudCgpICYmICFpc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBzZWdt
ZW50VG9DTUJsb2NrQnVmZmVyKG1fc2VnbWVudHNbMF0uc2VnbWVudCk7CisKKyAgICBDTUJsb2Nr
QnVmZmVyUmVmIHJhd0Jsb2NrQnVmZmVyID0gbnVsbHB0cjsKKyAgICBhdXRvIGVyciA9IFBBTDo6
Q01CbG9ja0J1ZmZlckNyZWF0ZUVtcHR5KGtDRkFsbG9jYXRvckRlZmF1bHQsIGlzRW1wdHkoKSA/
IDAgOiBtX3NlZ21lbnRzLnNpemUoKSwgMCwgJnJhd0Jsb2NrQnVmZmVyKTsKKyAgICBpZiAoZXJy
ICE9IGtDTUJsb2NrQnVmZmVyTm9FcnIgfHwgIXJhd0Jsb2NrQnVmZmVyKQorICAgICAgICByZXR1
cm4gbnVsbHB0cjsKKyAgICBhdXRvIGJsb2NrQnVmZmVyID0gYWRvcHRDRihyYXdCbG9ja0J1ZmZl
cik7CisKKyAgICBpZiAoaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gYmxvY2tCdWZmZXI7CisK
KyAgICBmb3IgKGF1dG8mIHNlZ21lbnQgOiBtX3NlZ21lbnRzKSB7CisgICAgICAgIGlmICghc2Vn
bWVudC5zZWdtZW50LT5zaXplKCkpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgYXV0
byBwYXJ0aWFsQnVmZmVyID0gc2VnbWVudFRvQ01CbG9ja0J1ZmZlcihzZWdtZW50LnNlZ21lbnQp
OworICAgICAgICBpZiAoIXBhcnRpYWxCdWZmZXIpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKyAgICAgICAgaWYgKFBBTDo6Q01CbG9ja0J1ZmZlckFwcGVuZEJ1ZmZlclJlZmVyZW5jZShy
YXdCbG9ja0J1ZmZlciwgcGFydGlhbEJ1ZmZlci5nZXQoKSwgMCwgMCwgMCkgIT0ga0NNQmxvY2tC
dWZmZXJOb0VycikKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKyAgICByZXR1
cm4gYmxvY2tCdWZmZXI7Cit9CisKIFJldGFpblB0cjxOU0RhdGE+IFNoYXJlZEJ1ZmZlcjo6Y3Jl
YXRlTlNEYXRhKCkgY29uc3QKIHsKICAgICByZXR1cm4gYnJpZGdlX2Nhc3QoY3JlYXRlQ0ZEYXRh
KCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4
IDRkZGQ1MWRjZTcwNWM1YjI2NGMzMDk0N2UwZjhmNGFmY2ZjNDNhYWUuLmMyYmU4ZjM0N2Q3YzA1
NzA1MTk1YjE2MDgxYjU4MjkzZjlhZmUyY2IgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMi0wMi0yMyAgSmVhbi1Z
dmVzIEF2ZW5hcmQgIDxqeWFAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhYmlsaXR5IHRvIGNv
bnZlcnQgRnJhZ21lbnRlZFNoYXJlZEJ1ZmZlciB0byBDTUJsb2NrQnVmZmVyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzcwNzUKKworICAgICAgICBS
ZXZpZXdlZCBieSBKZXIgTm9ibGUuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvU2hhcmVkQnVmZmVyLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6
CisKIDIwMjItMDMtMDQgIEplYW4tWXZlcyBBdmVuYXJkICA8anlhQGFwcGxlLmNvbT4KIAogICAg
ICAgICBNZWRpYVRpbWU6OmludmFsaWRUaW1lKCkgY29udmVyc2lvbiB0byBDTVRpbWUgaW5jb3Jy
ZWN0bHkgY3JlYXRlcyBhIHZhbGlkIHRpbWUuCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9TaGFyZWRCdWZmZXIuY3BwCmluZGV4IDMxNTVjMDlmMjQ3M2ViZWE2OTAw
YjM5YzBkOWJlY2FhY2FhNWEwMTUuLmIwMTEyOGIyNmIxY2MwYTIwNWM2NTQxYTQ4NTZiN2YwMmY0
OGJjNzYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9TaGFy
ZWRCdWZmZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9TaGFy
ZWRCdWZmZXIuY3BwCkBAIC0yMzksNiArMjM5LDQxIEBAIFRFU1RfRihGcmFnbWVudGVkU2hhcmVk
QnVmZmVyVGVzdCwgZ2V0U29tZURhdGEpCiAgICAgY2hlY2tCdWZmZXIobC5kYXRhKCksIGwuc2l6
ZSgpLCAibCIpOwogfQogCitURVNUX0YoRnJhZ21lbnRlZFNoYXJlZEJ1ZmZlclRlc3QsIGdldENv
bnRpZ3VvdXNEYXRhKQoreworICAgIFZlY3Rvcjx1aW50OF90PiBzMSA9IHsgJ2EnLCAnYicsICdj
JywgJ2QnIH07CisgICAgVmVjdG9yPHVpbnQ4X3Q+IHMyID0geyAnZScsICdmJywgJ2cnLCAnaCcg
fTsKKyAgICBWZWN0b3I8dWludDhfdD4gczMgPSB7ICdpJywgJ2onLCAnaycsICdsJyB9OworCisg
ICAgU2hhcmVkQnVmZmVyQnVpbGRlciBidWlsZGVyOworICAgIGJ1aWxkZXIuYXBwZW5kKFdURk1v
dmUoczEpKTsKKyAgICBidWlsZGVyLmFwcGVuZChXVEZNb3ZlKHMyKSk7CisgICAgYnVpbGRlci5h
cHBlbmQoV1RGTW92ZShzMykpOworICAgIGF1dG8gYnVmZmVyID0gYnVpbGRlci50YWtlKCk7CisK
KyAgICBhdXRvIGFiY2QgPSBidWZmZXItPmdldENvbnRpZ3VvdXNEYXRhKDAsIDQpOworICAgIGF1
dG8gYmNkZWZnaGkgPSBidWZmZXItPmdldENvbnRpZ3VvdXNEYXRhKDEsIDgpOworICAgIGF1dG8g
Z2ggPSBidWZmZXItPmdldENvbnRpZ3VvdXNEYXRhKDYsIDIpOworICAgIGF1dG8gZ2hpaiA9IGJ1
ZmZlci0+Z2V0Q29udGlndW91c0RhdGEoNiwgNCk7CisgICAgYXV0byBoID0gYnVmZmVyLT5nZXRD
b250aWd1b3VzRGF0YSg3LCAxKTsKKyAgICBhdXRvIGlqayA9IGJ1ZmZlci0+Z2V0Q29udGlndW91
c0RhdGEoOCwgMyk7CisgICAgYXV0byBrbCA9IGJ1ZmZlci0+Z2V0Q29udGlndW91c0RhdGEoMTAs
IDIpOworICAgIGF1dG8gbCA9IGJ1ZmZlci0+Z2V0Q29udGlndW91c0RhdGEoMTEsIDEpOworICAg
IGNoZWNrQnVmZmVyKGFiY2QtPmRhdGEoKSwgYWJjZC0+c2l6ZSgpLCAiYWJjZCIpOworICAgIGNo
ZWNrQnVmZmVyKGJjZGVmZ2hpLT5kYXRhKCksIGJjZGVmZ2hpLT5zaXplKCksICJiY2RlZmdoaSIp
OworICAgIGNoZWNrQnVmZmVyKGdoLT5kYXRhKCksIGdoLT5zaXplKCksICJnaCIpOworICAgIGNo
ZWNrQnVmZmVyKGdoaWotPmRhdGEoKSwgZ2hpai0+c2l6ZSgpLCAiZ2hpaiIpOworICAgIGNoZWNr
QnVmZmVyKGgtPmRhdGEoKSwgaC0+c2l6ZSgpLCAiaCIpOworICAgIGNoZWNrQnVmZmVyKGlqay0+
ZGF0YSgpLCBpamstPnNpemUoKSwgImlqayIpOworICAgIGNoZWNrQnVmZmVyKGtsLT5kYXRhKCks
IGtsLT5zaXplKCksICJrbCIpOworICAgIGNoZWNrQnVmZmVyKGwtPmRhdGEoKSwgbC0+c2l6ZSgp
LCAibCIpOworICAgIGF1dG8gZmdoaWprbCA9IGJ1ZmZlci0+Z2V0Q29udGlndW91c0RhdGEoNSwg
MjApOworICAgIEVYUEVDVF9FUShmZ2hpamtsLT5zaXplKCksIGJ1ZmZlci0+c2l6ZSgpIC0gNSk7
CisgICAgY2hlY2tCdWZmZXIoZmdoaWprbC0+ZGF0YSgpLCBmZ2hpamtsLT5zaXplKCksICJmZ2hp
amtsIik7CisgICAgYXV0byBvdXRCb3VuZCA9IGJ1ZmZlci0+Z2V0Q29udGlndW91c0RhdGEoMzAs
IDIwKTsKKyAgICBFWFBFQ1RfRVEob3V0Qm91bmQtPnNpemUoKSwgMHUpOworfQorCiBURVNUX0Yo
RnJhZ21lbnRlZFNoYXJlZEJ1ZmZlclRlc3QsIGlzRXF1YWxUbykKIHsKICAgICBhdXRvIG1ha2VC
dWZmZXIgPSBbXSAoVmVjdG9yPFZlY3Rvcjx1aW50OF90Pj4mJiBjb250ZW50cykgewo=
</data>

          </attachment>
      

    </bug>

</bugzilla>