<?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>228905</bug_id>
          
          <creation_ts>2021-08-08 16:37:30 -0700</creation_ts>
          <short_desc>ComplexTextController should add runs&apos; initial advances to the previous glyph, not the current glyph</short_desc>
          <delta_ts>2021-08-09 16:35:41 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>228180</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1782804</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-08-08 16:37:30 -0700</bug_when>
    <thetext>ComplexTextController should add runs&apos; initial advances to the previous glyph, not the current glyph</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782805</commentid>
    <comment_count>1</comment_count>
      <attachid>435160</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-08-08 16:38:07 -0700</bug_when>
    <thetext>Created attachment 435160
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782815</commentid>
    <comment_count>2</comment_count>
      <attachid>435161</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-08-08 19:01:27 -0700</bug_when>
    <thetext>Created attachment 435161
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782820</commentid>
    <comment_count>3</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-08-08 20:34:09 -0700</bug_when>
    <thetext>Looks like fast/text/initial-advance-selected-text.html is failing. We may actually need https://bugs.webkit.org/show_bug.cgi?id=228180.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782822</commentid>
    <comment_count>4</comment_count>
      <attachid>435161</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-08-08 20:44:11 -0700</bug_when>
    <thetext>Comment on attachment 435161
Patch

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

&gt; Source/WebCore/ChangeLog:32
&gt; +                in first run)                                     

Whitespace</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782824</commentid>
    <comment_count>5</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-08-08 20:59:46 -0700</bug_when>
    <thetext>Right, it looks like CTRunGetInitialBaseAdvance() fixes this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782825</commentid>
    <comment_count>6</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-08-08 21:18:26 -0700</bug_when>
    <thetext>So it looks like both changes have to be made in tandem:

1. Initial advances get added to the previous glyph&apos;s advance, not the current glyph&apos;s advance
2. The initial advance points to the first glyph&apos;s pen position, not to its paint position</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1783021</commentid>
    <comment_count>7</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-08-09 16:35:41 -0700</bug_when>
    <thetext>Let&apos;s not do this. Let&apos;s instead just delete the complex text codepath.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>435160</attachid>
            <date>2021-08-08 16:38:07 -0700</date>
            <delta_ts>2021-08-08 19:01:25 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-228905-20210808163806.patch</filename>
            <type>text/plain</type>
            <size>10445</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNzY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmQ2ZDVmN2Y1YmViYjE1
NWQwYTE0YmJiOTQ4ZGU1ZTlmZDU1NTljOS4uYWNkNWZjN2ZjNmM0YmU5OGY1NzYyOWU3NmUxZTVi
ZDdiNGIwMzY3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIxLTA4LTA4ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgQ29tcGxleFRl
eHRDb250cm9sbGVyIHNob3VsZCBhZGQgcnVucycgaW5pdGlhbCBhZHZhbmNlcyB0byB0aGUgcHJl
dmlvdXMgZ2x5cGgsIG5vdCB0aGUgY3VycmVudCBnbHlwaAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4OTA1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChPT1BTISkuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db21wbGV4VGV4dENvbnRyb2xsZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q29tcGxleFRleHRDb250cm9sbGVyOjpvZmZzZXRGb3JQb3NpdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpDb21wbGV4VGV4dENvbnRyb2xsZXI6OmFkdmFuY2UpOgorICAgICAg
ICAoV2ViQ29yZTo6Q29tcGxleFRleHRDb250cm9sbGVyOjphZGp1c3RHbHlwaHNBbmRBZHZhbmNl
cyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhCdWZmZXIuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkdseXBoQnVmZmVyOjppc0ZsYXR0ZW5lZCBjb25zdCk6CisKIDIwMjEtMDgtMDgg
IEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTjog
aHR0cC90ZXN0cy9wcmVsb2FkL29ubG9hZF9ldmVudC5odG1sIGlzIGEgZmxha3kgdGltZW91dCBv
biBCaWcgU3VyIHdrMSBSZWxlYXNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Db21wbGV4VGV4dENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvQ29tcGxleFRleHRDb250cm9sbGVyLmNwcAppbmRleCA0NDkzMmRlZmNk
OTg2M2U2MGYyMGNhOWQxNzYyYTc5NjUzMGIxZmI4Li5jOTNmOWIwY2QzYzhmY2UwZDRhZWQzZDFh
ZDIzYWUzZThmMWFiODk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Db21wbGV4VGV4dENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0NvbXBsZXhUZXh0Q29udHJvbGxlci5jcHAKQEAgLTE3NSw3ICsxNzUsNyBA
QCB1bnNpZ25lZCBDb21wbGV4VGV4dENvbnRyb2xsZXI6Om9mZnNldEZvclBvc2l0aW9uKGZsb2F0
IGgsIGJvb2wgaW5jbHVkZVBhcnRpYWxHbAogICAgIGlmIChoIDwgMCkKICAgICAgICAgcmV0dXJu
IG1fcnVuLmx0cigpID8gMCA6IG1fZW5kOwogCi0gICAgZmxvYXQgeCA9IGg7CisgICAgZmxvYXQg
eCA9IGggLSAobV9jb21wbGV4VGV4dFJ1bnNbMF0tPmluaXRpYWxBZHZhbmNlKCkud2lkdGgoKSAt
IGdseXBoT3JpZ2luKDApKTsKIAogICAgIHNpemVfdCBydW5Db3VudCA9IG1fY29tcGxleFRleHRS
dW5zLnNpemUoKTsKICAgICB1bnNpZ25lZCBvZmZzZXRJbnRvQWRqdXN0ZWRHbHlwaHMgPSAwOwpA
QCAtNTUxLDYgKzU1MSw3IEBAIGZsb2F0IENvbXBsZXhUZXh0Q29udHJvbGxlcjo6cnVuV2lkdGhT
b0ZhckZyYWN0aW9uKHVuc2lnbmVkIGdseXBoU3RhcnRPZmZzZXQsIHVuCiAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PGZsb2F0PihtX2NoYXJhY3RlckluQ3VycmVudEdseXBoIC0gb2xkQ2hhcmFjdGVy
SW5DdXJyZW50R2x5cGgpIC8gKGdseXBoRW5kT2Zmc2V0IC0gZ2x5cGhTdGFydE9mZnNldCk7CiB9
CiAKKy8vIFRoaXMgZnVuY3Rpb24gZW1pdHMgcHJlLWZsYXR0ZW5lZCBpbmZvcm1hdGlvbiBpbnRv
IHRoZSBHbHlwaEJ1ZmZlci4KIHZvaWQgQ29tcGxleFRleHRDb250cm9sbGVyOjphZHZhbmNlKHVu
c2lnbmVkIG9mZnNldCwgR2x5cGhCdWZmZXIqIGdseXBoQnVmZmVyLCBHbHlwaEl0ZXJhdGlvblN0
eWxlIGl0ZXJhdGlvblN0eWxlLCBIYXNoU2V0PGNvbnN0IEZvbnQqPiogZmFsbGJhY2tGb250cykK
IHsKICAgICBpZiAob2Zmc2V0ID4gbV9lbmQpCkBAIC02MDEsMzEgKzYwMiwyMCBAQCB2b2lkIENv
bXBsZXhUZXh0Q29udHJvbGxlcjo6YWR2YW5jZSh1bnNpZ25lZCBvZmZzZXQsIEdseXBoQnVmZmVy
KiBnbHlwaEJ1ZmZlciwgRwogICAgICAgICAgICAgaWYgKGdseXBoU3RhcnRPZmZzZXQgKyBjb21w
bGV4VGV4dFJ1bi5zdHJpbmdMb2NhdGlvbigpID49IG1fY3VycmVudENoYXJhY3RlcikKICAgICAg
ICAgICAgICAgICByZXR1cm47CiAKKyAgICAgICAgICAgIGF1dG8gY3VycmVudEdseXBoT3JpZ2lu
ID0gZ2x5cGhPcmlnaW4oZ2x5cGhJbmRleEludG9Db21wbGV4VGV4dENvbnRyb2xsZXIpOwogICAg
ICAgICAgICAgaWYgKGdseXBoQnVmZmVyICYmICFtX2NoYXJhY3RlckluQ3VycmVudEdseXBoKSB7
Ci0gICAgICAgICAgICAgICAgYXV0byBjdXJyZW50R2x5cGhPcmlnaW4gPSBnbHlwaE9yaWdpbihn
bHlwaEluZGV4SW50b0NvbXBsZXhUZXh0Q29udHJvbGxlcik7Ci0gICAgICAgICAgICAgICAgR2x5
cGhCdWZmZXJBZHZhbmNlIHBhaW50QWR2YW5jZSA9IG1ha2VHbHlwaEJ1ZmZlckFkdmFuY2UoYWRq
dXN0ZWRCYXNlQWR2YW5jZSk7Ci0gICAgICAgICAgICAgICAgaWYgKCFnbHlwaEluZGV4SW50b0N1
cnJlbnRSdW4pIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gVGhlIGZpcnN0IGxheW91dCBhZHZh
bmNlIG9mIGV2ZXJ5IHJ1biBpbmNsdWRlcyB0aGUgImluaXRpYWwgbGF5b3V0IGFkdmFuY2UuIiBI
b3dldmVyLCBoZXJlLCB3ZSBuZWVkCi0gICAgICAgICAgICAgICAgICAgIC8vIHBhaW50IGFkdmFu
Y2VzLCBzbyBzdWJ0cmFjdCBpdCBvdXQgYmVmb3JlIHRyYW5zZm9ybWluZyB0aGUgbGF5b3V0IGFk
dmFuY2UgaW50byBhIHBhaW50IGFkdmFuY2UuCi0gICAgICAgICAgICAgICAgICAgIHNldFdpZHRo
KHBhaW50QWR2YW5jZSwgd2lkdGgocGFpbnRBZHZhbmNlKSAtIChjb21wbGV4VGV4dFJ1bi5pbml0
aWFsQWR2YW5jZSgpLndpZHRoKCkgLSBjdXJyZW50R2x5cGhPcmlnaW4ueCgpKSk7Ci0gICAgICAg
ICAgICAgICAgICAgIHNldEhlaWdodChwYWludEFkdmFuY2UsIGhlaWdodChwYWludEFkdmFuY2Up
IC0gKGNvbXBsZXhUZXh0UnVuLmluaXRpYWxBZHZhbmNlKCkuaGVpZ2h0KCkgLSBjdXJyZW50R2x5
cGhPcmlnaW4ueSgpKSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHNldFdp
ZHRoKHBhaW50QWR2YW5jZSwgd2lkdGgocGFpbnRBZHZhbmNlKSArIGdseXBoT3JpZ2luKGdseXBo
SW5kZXhJbnRvQ29tcGxleFRleHRDb250cm9sbGVyICsgMSkueCgpIC0gY3VycmVudEdseXBoT3Jp
Z2luLngoKSk7Ci0gICAgICAgICAgICAgICAgc2V0SGVpZ2h0KHBhaW50QWR2YW5jZSwgaGVpZ2h0
KHBhaW50QWR2YW5jZSkgKyBnbHlwaE9yaWdpbihnbHlwaEluZGV4SW50b0NvbXBsZXhUZXh0Q29u
dHJvbGxlciArIDEpLnkoKSAtIGN1cnJlbnRHbHlwaE9yaWdpbi55KCkpOwotICAgICAgICAgICAg
ICAgIGlmIChnbHlwaEluZGV4SW50b0N1cnJlbnRSdW4gPT0gZ2x5cGhDb3VudCAtIDEgJiYgY3Vy
cmVudFJ1bkluZGV4ICsgMSA8IHJ1bkNvdW50KSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIE91
ciBwYWludCBhZHZhbmNlIHBvaW50cyB0byB0aGUgZW5kIG9mIHRoZSBydW4uIEhvd2V2ZXIsIHRo
ZSBuZXh0IHJ1biBtYXkgaGF2ZSBhbgotICAgICAgICAgICAgICAgICAgICAvLyBpbml0aWFsIGFk
dmFuY2UsIGFuZCBvdXIgcGFpbnQgYWR2YW5jZSBuZWVkcyB0byBwb2ludCB0byB0aGUgbG9jYXRp
b24gb2YgdGhlIG5leHQKLSAgICAgICAgICAgICAgICAgICAgLy8gZ2x5cGguIFNvLCB3ZSBuZWVk
IHRvIGFkZCBpbiB0aGUgbmV4dCBydW4ncyBpbml0aWFsIGFkdmFuY2UuCi0gICAgICAgICAgICAg
ICAgICAgIHNldFdpZHRoKHBhaW50QWR2YW5jZSwgd2lkdGgocGFpbnRBZHZhbmNlKSAtIGdseXBo
T3JpZ2luKGdseXBoSW5kZXhJbnRvQ29tcGxleFRleHRDb250cm9sbGVyICsgMSkueCgpICsgbV9j
b21wbGV4VGV4dFJ1bnNbY3VycmVudFJ1bkluZGV4ICsgMV0tPmluaXRpYWxBZHZhbmNlKCkud2lk
dGgoKSk7Ci0gICAgICAgICAgICAgICAgICAgIHNldEhlaWdodChwYWludEFkdmFuY2UsIGhlaWdo
dChwYWludEFkdmFuY2UpIC0gZ2x5cGhPcmlnaW4oZ2x5cGhJbmRleEludG9Db21wbGV4VGV4dENv
bnRyb2xsZXIgKyAxKS55KCkgKyBtX2NvbXBsZXhUZXh0UnVuc1tjdXJyZW50UnVuSW5kZXggKyAx
XS0+aW5pdGlhbEFkdmFuY2UoKS5oZWlnaHQoKSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgIHNldEhlaWdodChwYWludEFkdmFuY2UsIC1oZWlnaHQocGFpbnRBZHZhbmNlKSk7
IC8vIEluY3JlYXNpbmcgeSBwb2ludHMgZG93bgorICAgICAgICAgICAgICAgIGF1dG8gbmV4dEds
eXBoT3JpZ2luID0gZ2x5cGhPcmlnaW4oZ2x5cGhJbmRleEludG9Db21wbGV4VGV4dENvbnRyb2xs
ZXIgKyAxKTsKKyAgICAgICAgICAgICAgICBHbHlwaEJ1ZmZlckFkdmFuY2UgcGFpbnRBZHZhbmNl
ID0gbWFrZUdseXBoQnVmZmVyQWR2YW5jZSgKKyAgICAgICAgICAgICAgICAgICAgYWRqdXN0ZWRC
YXNlQWR2YW5jZS53aWR0aCgpICsgbmV4dEdseXBoT3JpZ2luLngoKSAtIGN1cnJlbnRHbHlwaE9y
aWdpbi54KCksCisgICAgICAgICAgICAgICAgICAgIC0oYWRqdXN0ZWRCYXNlQWR2YW5jZS5oZWln
aHQoKSArIG5leHRHbHlwaE9yaWdpbi55KCkgLSBjdXJyZW50R2x5cGhPcmlnaW4ueSgpKSk7CiAg
ICAgICAgICAgICAgICAgZ2x5cGhCdWZmZXItPmFkZChtX2FkanVzdGVkR2x5cGhzW2dseXBoSW5k
ZXhJbnRvQ29tcGxleFRleHRDb250cm9sbGVyXSwgY29tcGxleFRleHRSdW4uZm9udCgpLCBwYWlu
dEFkdmFuY2UsIGNvbXBsZXhUZXh0UnVuLmluZGV4QXQobV9nbHlwaEluQ3VycmVudFJ1bikpOwog
ICAgICAgICAgICAgfQogCiAgICAgICAgICAgICB1bnNpZ25lZCBvbGRDaGFyYWN0ZXJJbkN1cnJl
bnRHbHlwaCA9IG1fY2hhcmFjdGVySW5DdXJyZW50R2x5cGg7CiAgICAgICAgICAgICBtX2NoYXJh
Y3RlckluQ3VycmVudEdseXBoID0gc3RkOjptaW4obV9jdXJyZW50Q2hhcmFjdGVyIC0gY29tcGxl
eFRleHRSdW4uc3RyaW5nTG9jYXRpb24oKSwgZ2x5cGhFbmRPZmZzZXQpIC0gZ2x5cGhTdGFydE9m
ZnNldDsKICAgICAgICAgICAgIG1fcnVuV2lkdGhTb0ZhciArPSBhZGp1c3RlZEJhc2VBZHZhbmNl
LndpZHRoKCkgKiBydW5XaWR0aFNvRmFyRnJhY3Rpb24oZ2x5cGhTdGFydE9mZnNldCwgZ2x5cGhF
bmRPZmZzZXQsIG9sZENoYXJhY3RlckluQ3VycmVudEdseXBoLCBpdGVyYXRpb25TdHlsZSk7Cisg
ICAgICAgICAgICBpZiAoIWN1cnJlbnRSdW5JbmRleCAmJiAhZ2x5cGhJbmRleEludG9DdXJyZW50
UnVuKQorICAgICAgICAgICAgICAgIG1fcnVuV2lkdGhTb0ZhciArPSBjb21wbGV4VGV4dFJ1bi5p
bml0aWFsQWR2YW5jZSgpLndpZHRoKCkgLSBjdXJyZW50R2x5cGhPcmlnaW47CiAKICAgICAgICAg
ICAgIGlmIChnbHlwaEVuZE9mZnNldCArIGNvbXBsZXhUZXh0UnVuLnN0cmluZ0xvY2F0aW9uKCkg
PiBtX2N1cnJlbnRDaGFyYWN0ZXIpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwpAQCAtNjg1LDYg
KzY3NSw5IEBAIHZvaWQgQ29tcGxleFRleHRDb250cm9sbGVyOjphZGp1c3RHbHlwaHNBbmRBZHZh
bmNlcygpCiAgICAgZm9yIChzaXplX3QgcnVuSW5kZXggPSAwOyBydW5JbmRleCA8IHJ1bkNvdW50
OyArK3J1bkluZGV4KSB7CiAgICAgICAgIENvbXBsZXhUZXh0UnVuJiBjb21wbGV4VGV4dFJ1biA9
ICptX2NvbXBsZXhUZXh0UnVuc1tydW5JbmRleF07CiAgICAgICAgIHVuc2lnbmVkIGdseXBoQ291
bnQgPSBjb21wbGV4VGV4dFJ1bi5nbHlwaENvdW50KCk7CisgICAgICAgIEFTU0VSVChnbHlwaENv
dW50KTsKKyAgICAgICAgaWYgKCFnbHlwaENvdW50KQorICAgICAgICAgICAgY29udGludWU7CiAg
ICAgICAgIGNvbnN0IEZvbnQmIGZvbnQgPSBjb21wbGV4VGV4dFJ1bi5mb250KCk7CiAKICAgICAg
ICAgaWYgKCFjb21wbGV4VGV4dFJ1bi5pc0xUUigpKQpAQCAtNjkyLDYgKzY4NSw3IEBAIHZvaWQg
Q29tcGxleFRleHRDb250cm9sbGVyOjphZGp1c3RHbHlwaHNBbmRBZHZhbmNlcygpCiAKICAgICAg
ICAgY29uc3QgQ0dHbHlwaCogZ2x5cGhzID0gY29tcGxleFRleHRSdW4uZ2x5cGhzKCk7CiAgICAg
ICAgIGNvbnN0IEZsb2F0U2l6ZSogYWR2YW5jZXMgPSBjb21wbGV4VGV4dFJ1bi5iYXNlQWR2YW5j
ZXMoKTsKKyAgICAgICAgY29uc3QgRmxvYXRQb2ludCogb3JpZ2lucyA9IGNvbXBsZXhUZXh0UnVu
LmdseXBoT3JpZ2lucygpOyAvLyBudWxsYWJsZQogCiAgICAgICAgIGZsb2F0IHNwYWNlV2lkdGgg
PSBmb250LnNwYWNlV2lkdGgoKSAtIGZvbnQuc3ludGhldGljQm9sZE9mZnNldCgpOwogICAgICAg
ICBjb25zdCBVQ2hhciogY3AgPSBjb21wbGV4VGV4dFJ1bi5jaGFyYWN0ZXJzKCk7CkBAIC03MjIs
OSArNzE2LDE0IEBAIHZvaWQgQ29tcGxleFRleHRDb250cm9sbGVyOjphZGp1c3RHbHlwaHNBbmRB
ZHZhbmNlcygpCiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGlmICghaSkgewotICAgICAg
ICAgICAgICAgIGFkdmFuY2UuZXhwYW5kKGNvbXBsZXhUZXh0UnVuLmluaXRpYWxBZHZhbmNlKCku
d2lkdGgoKSwgY29tcGxleFRleHRSdW4uaW5pdGlhbEFkdmFuY2UoKS5oZWlnaHQoKSk7Ci0gICAg
ICAgICAgICAgICAgaWYgKGF1dG8qIG9yaWdpbnMgPSBjb21wbGV4VGV4dFJ1bi5nbHlwaE9yaWdp
bnMoKSkKLSAgICAgICAgICAgICAgICAgICAgYWR2YW5jZS5leHBhbmQoLW9yaWdpbnNbMF0ueCgp
LCAtb3JpZ2luc1swXS55KCkpOworICAgICAgICAgICAgICAgIC8vIEEgcnVuJ3MgaW5pdGlhbCBh
ZHZhbmNlIHNob3VsZCBiZSBhZGRlZCB0byB0aGUgbGF5b3V0IGFkdmFuY2Ugb2YgdGhlIHZpc3Vh
bGx5IHByZXZpb3VzIGdseXBoLgorICAgICAgICAgICAgICAgIC8vIEhvd2V2ZXIsIGlmIHRoZXJl
IGlzIG5vIHZpc3VhbGx5IHByZXZpb3VzIGdseXBoLCB0aGVuIHdlIGp1c3QgbGVhdmUgdGhlIGlu
aXRpYWwgYWR2YW5jZSBhbG9uZSBpbnNpZGUgdGhlIHJ1biwKKyAgICAgICAgICAgICAgICAvLyBh
bmQgcmVseSBvbiBhZHZhbmNlKCkgdG8gcmVhZCBpdCBhbmQgaG9ub3IgaXQgY29ycmVjdGx5Lgor
ICAgICAgICAgICAgICAgIGF1dG8gY3VycmVudEdseXBoT3JpZ2luID0gb3JpZ2lucyA/IG9yaWdp
bnNbaV0gOiBGbG9hdFBvaW50KCk7CisgICAgICAgICAgICAgICAgYXV0byBsYXlvdXRBZHZhbmNl
VG9BZGQgPSAtY3VycmVudEdseXBoT3JpZ2luICsgY29tcGxleFRleHRSdW4uaW5pdGlhbEFkdmFu
Y2UoKTsKKyAgICAgICAgICAgICAgICBpZiAoIW1fYWRqdXN0ZWRCYXNlQWR2YW5jZXMuaXNFbXB0
eSgpKQorICAgICAgICAgICAgICAgICAgICBtX2FkanVzdGVkQmFzZUFkdmFuY2VzLmxhc3QoKSAr
PSBsYXlvdXRBZHZhbmNlVG9BZGQ7CisgICAgICAgICAgICAgICAgbV90b3RhbEFkdmFuY2UgKz0g
bGF5b3V0QWR2YW5jZVRvQWRkOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBhZHZhbmNl
LmV4cGFuZChmb250LnN5bnRoZXRpY0JvbGRPZmZzZXQoKSwgMCk7CkBAIC03NjAsMTQgKzc1OSwx
NCBAQCB2b2lkIENvbXBsZXhUZXh0Q29udHJvbGxlcjo6YWRqdXN0R2x5cGhzQW5kQWR2YW5jZXMo
KQogICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBbZXhwYW5kTGVmdCwgZXhwYW5kUmlnaHRd
ID0gZXhwYW5zaW9uTG9jYXRpb24oaWRlb2dyYXBoLCB0cmVhdEFzU3BhY2UsIG1fcnVuLmx0cigp
LCBhZnRlckV4cGFuc2lvbiwgZm9yYmlkTGVmdEV4cGFuc2lvbiwgZm9yYmlkUmlnaHRFeHBhbnNp
b24sIGZvcmNlTGVmdEV4cGFuc2lvbiwgZm9yY2VSaWdodEV4cGFuc2lvbik7CiAgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAoZXhwYW5kTGVmdCkgewogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG1fZXhwYW5zaW9uIC09IG1fZXhwYW5zaW9uUGVyT3Bwb3J0dW5pdHk7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgLy8gSW5jcmVhc2UgcHJldmlvdXMgd2lkdGgKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpZiAobV9hZGp1c3RlZEJhc2VBZHZhbmNlcy5pc0VtcHR5KCkpIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWR2YW5jZS5leHBhbmQobV9leHBhbnNp
b25QZXJPcHBvcnR1bml0eSwgMCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVHJl
YXQgdGhpcyBhcyBhbiBpbml0aWFsIGFkdmFuY2UsIGFuZCB0cnkgdG8gYWRkIGl0IHRvIHRoZSBs
YXlvdXQgYWR2YW5jZSBvZiB0aGUgdmlzdWFsbHkgcHJldmlvdXMgZ2x5cGguCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgLy8gSG93ZXZlciwgaWYgdGhlcmUgaXMgbm8gdmlzdWFsbHkgcHJl
dmlvdXMgZ2x5cGgsIHRoZW4gd2UgdXBkYXRlIHRoaXMgcnVuJ3MgcmVhbCBpbml0aWFsIGFkdmFu
Y2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYW5kIHJlbHkgb24gQ29tcGxleFRl
eHRDb250cm9sbGVyOjphZHZhbmNlKCkncyBoYW5kbGluZyBvZiBpbml0aWFsIGFkdmFuY2VzIHRv
IGRvIHRoZSByaWdodCB0aGluZy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobV9h
ZGp1c3RlZEJhc2VBZHZhbmNlcy5pc0VtcHR5KCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbXBsZXhUZXh0UnVuLmdyb3dJbml0aWFsQWR2YW5jZUhvcml6b250YWxseShtX2V4
cGFuc2lvblBlck9wcG9ydHVuaXR5KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbV9hZGp1c3RlZEJhc2VBZHZhbmNlcy5sYXN0KCkuZXhwYW5kKG1fZXhw
YW5zaW9uUGVyT3Bwb3J0dW5pdHksIDApOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBtX3RvdGFsQWR2YW5jZS5leHBhbmQobV9leHBhbnNpb25QZXJPcHBvcnR1bml0eSwgMCk7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG1fdG90YWxBZHZhbmNlLmV4cGFuZChtX2V4cGFuc2lvblBlck9wcG9ydHVuaXR5LCAwKTsKICAg
ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChleHBh
bmRSaWdodCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZXhwYW5zaW9uIC09IG1f
ZXhwYW5zaW9uUGVyT3Bwb3J0dW5pdHk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HbHlwaEJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR2x5cGhCdWZmZXIuaAppbmRleCBhZmQ4YmEyNGZjMWNkZTdjZGE5NmM3MmU1ZDZiMzkw
YWNiZjU2MjNhLi5mY2ExZjM3YzAwZGQyNWEwODM4MjZlMGUzMjAxYTc2MjQ3MDRjNmYzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlwaEJ1ZmZlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoQnVmZmVyLmgKQEAgLTE4
MiwxNCArMTgyLDE5IEBAIHB1YmxpYzoKICAgICAgICAgfQogICAgIH0KIAorI2lmIEFTU0VSVF9F
TkFCTEVECiAgICAgYm9vbCBpc0ZsYXR0ZW5lZCgpIGNvbnN0CiAgICAgeworICAgICAgICAvLyBU
aGlzIGRvZXNuJ3QgYWN0dWFsbHkgcHJvdmUgdGhhdCBmbGF0dGVuKCkgd2FzIGNhbGxlZCwKKyAg
ICAgICAgLy8gYnV0IGlmIHRoaXMgdGVzdCBwYXNzZXMsIHRoZW4gd2UgY2FuIGF0IGxlYXN0IGRy
YXcgdGhlIGdseXBocyBjb3JyZWN0bHksCisgICAgICAgIC8vIGV2ZW4gaWYgdGhlcmUgd2FzIGEg
cHJvZ3JhbW1lciBlcnJvciBhbmQgZmxhdHRlbigpIHNob3VsZCBoYXZlIGJlZW4gY2FsbGVkLgog
ICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6ZSgpOyArK2kpIHsKLSAgICAgICAg
ICAgIGlmIChtX29yaWdpbnNbaV0gIT0gbWFrZUdseXBoQnVmZmVyT3JpZ2luKCkpCisgICAgICAg
ICAgICBpZiAoeChtX29yaWdpbnNbaV0pIHx8IHkobV9vcmlnaW5zW2ldKSkKICAgICAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
fQorI2VuZGlmCiAKIHByaXZhdGU6CiAgICAgdm9pZCBzd2FwKHVuc2lnbmVkIGluZGV4MSwgdW5z
aWduZWQgaW5kZXgyKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>435161</attachid>
            <date>2021-08-08 19:01:27 -0700</date>
            <delta_ts>2021-08-08 20:43:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228905-20210808190126.patch</filename>
            <type>text/plain</type>
            <size>15493</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwNzY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmQ2ZDVmN2Y1YmViYjE1
NWQwYTE0YmJiOTQ4ZGU1ZTlmZDU1NTljOS4uZDgzNWEyM2E1MDNjN2QwN2E1OTg5NDIxMDZkZjQ4
NGI1NjI1ZjRjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDIxLTA4LTA4ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgQ29tcGxleFRl
eHRDb250cm9sbGVyIHNob3VsZCBhZGQgcnVucycgaW5pdGlhbCBhZHZhbmNlcyB0byB0aGUgcHJl
dmlvdXMgZ2x5cGgsIG5vdCB0aGUgY3VycmVudCBnbHlwaAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4OTA1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGV4dCBzaGFwaW5nIHJvdXRpbmVzIG1heSByZXR1
cm4gYW4gaW5pdGlhbCBhZHZhbmNlIGZvciBhbnkgdGV4dCBydW4uIENvbnNpZGVyIHR3byBhZGph
Y2VudCB0ZXh0IHJ1bnMsCisgICAgICAgIHdoZXJlIHRoZSBzZWNvbmQgcnVuIGhhcyBhbiBpbml0
aWFsIGFkdmFuY2U6CisKKyAgICAgICAgICAgICAgIFggKEdseXBoIHBhaW50IHBvc2l0aW9uKSAg
ICAgICAgICAgICAgICAgICAgIC0tLS0tPlggKEdseXBoIHBhaW50IHBvc2l0aW9uKQorICAgICAg
ICAgICAgICA3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvICAg
ICA3CisgICAgICAgICAgICAgLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLyAgICAgLworICAgICAgICAgICAgLyAoR2x5cGggb3JpZ2luKSAgICAgICAgICAgKElu
aXRpYWwgYWR2YW5jZSkgLyAgICAgLyAoR2x5cGggb3JpZ2luKQorICAgICAgICAgICAvICAgICAg
ICAgICAgICAgICAgICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tICAgICAvCisgICAgICAgICAg
LyAgICAgICAgICAgICAgICAgICAgICAgICAgLyAgICAgICAgICAgICAgICAgICAgICAgLworICAg
ICAgICAgWC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tWCAgICAgICAgICAgICAgICAgICAgICAg
WC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tWAorICAgICAgICAgICAgKEFkdmFuY2Ugb2YgbGFz
dCBnbHlwaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQWR2YW5jZSBvZiBmaXJzdCBnbHlw
aAorICAgICAgICAgICAgICAgIGluIGZpcnN0IHJ1bikgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW4gc2Vjb25kIHJ1bikKKworICAgICAgICBXZSBoYXZlIHRvIGNvbnNpZGVy
IHdoaWNoIGdseXBoIHRoYXQgZW1wdHkgc3BhY2UgaW4gdGhlIG1pZGRsZSBiZWxvbmdzIHRvLiBD
dXJyZW50bHksIHdlJ3JlIHR1cm5pbmcKKyAgICAgICAgdGhpcyBpbnRvOgorCisgICAgICAgICAg
ICAgICBYIChHbHlwaCBwYWludCBwb3NpdGlvbikgICAgICAgICAgICAgICAgICAgICAtLS0tLT5Y
IChHbHlwaCBwYWludCBwb3NpdGlvbikKKyAgICAgICAgICAgICAgNyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLworICAgICAgICAgICAgIC8gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8KKyAgICAgICAgICAgIC8gKEdseXBoIG9y
aWdpbikgICAgICAgICAgICAoR2x5cGggb3JpZ2luKSAgIC8KKyAgICAgICAgICAgLyAgICAgICAg
ICAgICAgICAgICAgICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgIC8gICAgICAg
ICAgICAgICAgICAgICAgICAgIC8KKyAgICAgICAgIFgtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LVgtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVgKKyAg
ICAgICAgICAgIChBZHZhbmNlIG9mIGxhc3QgZ2x5cGggICAgICAgICAoQWR2YW5jZSBvZiBmaXJz
dCBnbHlwaCBpbiBzZWNvbmQgcnVuKQorICAgICAgICAgICAgICAgIGluIGZpcnN0IHJ1bikgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisKKyAgICAgICAgQnV0IHRoaXMgaXMg
d3JvbmcuIEluIGZhY3QsIHRoaXMgY2FuJ3QgcG9zc2libHkgYmUgcmlnaHQsIGJlY2F1c2UgdGhl
IHNoYXBlciBjb3VsZCBoYXZlIGFjaGlldmVkIHRoaXMKKyAgICAgICAgYnkganVzdCByZXR1cm5p
bmcgdGhpcyBleGFjdCBpbmZvcm1hdGlvbiB0byB1cy4gVGhpcyBpbnRlcnByZXRhdGlvbiBzdWJ2
ZXJ0cyB0aGUgd2hvbGUgcHVycG9zZSBvZiB0aGUKKyAgICAgICAgaW5pdGlhbCBhZHZhbmNlLgor
CisgICAgICAgIEluc3RlYWQsIHdlIG5lZWQgdG8gdHVybiBpdCBpbnRvIHRoaXM6CisKKyAgICAg
ICAgICAgICAgIFggKEdseXBoIHBhaW50IHBvc2l0aW9uKSAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFggKEdseXBoIHBhaW50IHBvc2l0aW9uKQorICAgICAgICAgICAgICA3ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3CisgICAgICAgICAgICAgLyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLworICAgICAg
ICAgICAgLyAoR2x5cGggb3JpZ2luKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
LyAoR2x5cGggb3JpZ2luKQorICAgICAgICAgICAvICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAvCisgICAgICAgICAgLyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLworICAgICAgICAgWC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tWC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tWAorICAgICAgICAgICAgICAgICAoQWR2YW5jZSBvZiBsYXN0IGdseXBoIGluIGZpcnN0
IHJ1bikgICAgICAgICAoQWR2YW5jZSBvZiBmaXJzdCBnbHlwaAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHNlY29u
ZCBydW4pCisKKyAgICAgICAgQXMgeW91IGNhbiBzZWUsIHRoZSBwYWludCBwb3NpdGlvbnMgb2Yg
dGhlIGdseXBocyBhcmUgYWxsIGlkZW50aWNhbCwgYW5kIHRoZSB0b3RhbCB3aWR0aCBpcyBpZGVu
dGljYWwsCisgICAgICAgIGJ1dCB0aGUgZGlmZmVyZW5jZSBpcyBpbiB0aGUgYWR2YW5jZXMgb2Yg
c3BlY2lmaWMgZ2x5cGhzLiBUaGUgc2hhcGVyIGNvdWxkbid0IGhhdmUgcmV0dXJuZWQgdGhpcwor
ICAgICAgICBpbmZvcm1hdGlvbiB0byB1cyBiZWNhdXNlIHRoZSBydW5zIGFyZSBzaGFwZWQgaW5k
ZXBlbmRlbnRseSwgc28gdGhlIHNoYXBlciBjb3VsZG4ndCBrbm93IHRvIGFkZAorICAgICAgICBh
ZGRpdGlvbmFsIHNwYWNlIHRvIHRoZSBmaXJzdCBydW4ncyBnbHlwaCwgYmVjYXVzZSBpdCBoYXNu
J3Qgc2VlbiB0aGUgc2Vjb25kIHJ1biB5ZXQuIFdlIGhhdmUgdG8gZG8KKyAgICAgICAgdGhpcyBp
biBXZWJDb3JlLCBhbmQgdGhpcyBpcyB0aGUgd2hvbGUgcHVycG9zZSBvZiB0aGUgaW5pdGlhbCBh
ZHZhbmNlLgorCisgICAgICAgIEZyb20gYSB1c2VyIHBlcnNwZWN0aXZlLCB0aGUgbW9zdCB2aXNp
YmxlIHdheSB0aGlzIGNoYW5nZSBtYW5pZmVzdHMgaXMgdGhhdCB0aGUgYmx1ZSBzZWxlY3Rpb24K
KyAgICAgICAgaGlnaGxpZ2h0IHdpbGwgYmUgYWRqdXN0ZWQgaW4gc2l0dWF0aW9ucyB3aGVyZSB0
aGVyZSBpcyBhbiBpbml0aWFsIGFkdmFuY2UuIChUaGVzZSBzaXR1YXRpb25zIGFyZQorICAgICAg
ICBzb21ld2hhdCByYXJlLikKKworICAgICAgICBUZXN0OiBDb21wbGV4VGV4dENvbnRyb2xsZXJU
ZXN0LkluaXRpYWxBZHZhbmNlV2l0aExlZnRSdW5JbkxUUgorCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvQ29tcGxleFRleHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNv
bXBsZXhUZXh0Q29udHJvbGxlcjo6b2Zmc2V0Rm9yUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6Q29tcGxleFRleHRDb250cm9sbGVyOjphZHZhbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNv
bXBsZXhUZXh0Q29udHJvbGxlcjo6YWRqdXN0R2x5cGhzQW5kQWR2YW5jZXMpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL0dseXBoQnVmZmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpHbHlw
aEJ1ZmZlcjo6aXNGbGF0dGVuZWQgY29uc3QpOgorCiAyMDIxLTA4LTA4ICBKZXIgTm9ibGUgIDxq
ZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT046IGh0dHAvdGVzdHMvcHJl
bG9hZC9vbmxvYWRfZXZlbnQuaHRtbCBpcyBhIGZsYWt5IHRpbWVvdXQgb24gQmlnIFN1ciB3azEg
UmVsZWFzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29t
cGxleFRleHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0NvbXBsZXhUZXh0Q29udHJvbGxlci5jcHAKaW5kZXggNDQ5MzJkZWZjZDk4NjNlNjBmMjBjYTlk
MTc2MmE3OTY1MzBiMWZiOC4uZDQzYjU4NWZkY2I4OWJiYTNjNzIzODA4M2NiMWQ5MDU1YTY5YWU0
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29tcGxleFRl
eHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9D
b21wbGV4VGV4dENvbnRyb2xsZXIuY3BwCkBAIC0xNzUsNyArMTc1LDcgQEAgdW5zaWduZWQgQ29t
cGxleFRleHRDb250cm9sbGVyOjpvZmZzZXRGb3JQb3NpdGlvbihmbG9hdCBoLCBib29sIGluY2x1
ZGVQYXJ0aWFsR2wKICAgICBpZiAoaCA8IDApCiAgICAgICAgIHJldHVybiBtX3J1bi5sdHIoKSA/
IDAgOiBtX2VuZDsKIAotICAgIGZsb2F0IHggPSBoOworICAgIGZsb2F0IHggPSBoIC0gKG1fY29t
cGxleFRleHRSdW5zWzBdLT5pbml0aWFsQWR2YW5jZSgpLndpZHRoKCkgLSBnbHlwaE9yaWdpbigw
KS54KCkpOwogCiAgICAgc2l6ZV90IHJ1bkNvdW50ID0gbV9jb21wbGV4VGV4dFJ1bnMuc2l6ZSgp
OwogICAgIHVuc2lnbmVkIG9mZnNldEludG9BZGp1c3RlZEdseXBocyA9IDA7CkBAIC01NTEsNiAr
NTUxLDcgQEAgZmxvYXQgQ29tcGxleFRleHRDb250cm9sbGVyOjpydW5XaWR0aFNvRmFyRnJhY3Rp
b24odW5zaWduZWQgZ2x5cGhTdGFydE9mZnNldCwgdW4KICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
ZmxvYXQ+KG1fY2hhcmFjdGVySW5DdXJyZW50R2x5cGggLSBvbGRDaGFyYWN0ZXJJbkN1cnJlbnRH
bHlwaCkgLyAoZ2x5cGhFbmRPZmZzZXQgLSBnbHlwaFN0YXJ0T2Zmc2V0KTsKIH0KIAorLy8gVGhp
cyBmdW5jdGlvbiBlbWl0cyBwcmUtZmxhdHRlbmVkIGluZm9ybWF0aW9uIGludG8gdGhlIEdseXBo
QnVmZmVyLgogdm9pZCBDb21wbGV4VGV4dENvbnRyb2xsZXI6OmFkdmFuY2UodW5zaWduZWQgb2Zm
c2V0LCBHbHlwaEJ1ZmZlciogZ2x5cGhCdWZmZXIsIEdseXBoSXRlcmF0aW9uU3R5bGUgaXRlcmF0
aW9uU3R5bGUsIEhhc2hTZXQ8Y29uc3QgRm9udCo+KiBmYWxsYmFja0ZvbnRzKQogewogICAgIGlm
IChvZmZzZXQgPiBtX2VuZCkKQEAgLTYwMSwzMSArNjAyLDIwIEBAIHZvaWQgQ29tcGxleFRleHRD
b250cm9sbGVyOjphZHZhbmNlKHVuc2lnbmVkIG9mZnNldCwgR2x5cGhCdWZmZXIqIGdseXBoQnVm
ZmVyLCBHCiAgICAgICAgICAgICBpZiAoZ2x5cGhTdGFydE9mZnNldCArIGNvbXBsZXhUZXh0UnVu
LnN0cmluZ0xvY2F0aW9uKCkgPj0gbV9jdXJyZW50Q2hhcmFjdGVyKQogICAgICAgICAgICAgICAg
IHJldHVybjsKIAorICAgICAgICAgICAgYXV0byBjdXJyZW50R2x5cGhPcmlnaW4gPSBnbHlwaE9y
aWdpbihnbHlwaEluZGV4SW50b0NvbXBsZXhUZXh0Q29udHJvbGxlcik7CiAgICAgICAgICAgICBp
ZiAoZ2x5cGhCdWZmZXIgJiYgIW1fY2hhcmFjdGVySW5DdXJyZW50R2x5cGgpIHsKLSAgICAgICAg
ICAgICAgICBhdXRvIGN1cnJlbnRHbHlwaE9yaWdpbiA9IGdseXBoT3JpZ2luKGdseXBoSW5kZXhJ
bnRvQ29tcGxleFRleHRDb250cm9sbGVyKTsKLSAgICAgICAgICAgICAgICBHbHlwaEJ1ZmZlckFk
dmFuY2UgcGFpbnRBZHZhbmNlID0gbWFrZUdseXBoQnVmZmVyQWR2YW5jZShhZGp1c3RlZEJhc2VB
ZHZhbmNlKTsKLSAgICAgICAgICAgICAgICBpZiAoIWdseXBoSW5kZXhJbnRvQ3VycmVudFJ1bikg
ewotICAgICAgICAgICAgICAgICAgICAvLyBUaGUgZmlyc3QgbGF5b3V0IGFkdmFuY2Ugb2YgZXZl
cnkgcnVuIGluY2x1ZGVzIHRoZSAiaW5pdGlhbCBsYXlvdXQgYWR2YW5jZS4iIEhvd2V2ZXIsIGhl
cmUsIHdlIG5lZWQKLSAgICAgICAgICAgICAgICAgICAgLy8gcGFpbnQgYWR2YW5jZXMsIHNvIHN1
YnRyYWN0IGl0IG91dCBiZWZvcmUgdHJhbnNmb3JtaW5nIHRoZSBsYXlvdXQgYWR2YW5jZSBpbnRv
IGEgcGFpbnQgYWR2YW5jZS4KLSAgICAgICAgICAgICAgICAgICAgc2V0V2lkdGgocGFpbnRBZHZh
bmNlLCB3aWR0aChwYWludEFkdmFuY2UpIC0gKGNvbXBsZXhUZXh0UnVuLmluaXRpYWxBZHZhbmNl
KCkud2lkdGgoKSAtIGN1cnJlbnRHbHlwaE9yaWdpbi54KCkpKTsKLSAgICAgICAgICAgICAgICAg
ICAgc2V0SGVpZ2h0KHBhaW50QWR2YW5jZSwgaGVpZ2h0KHBhaW50QWR2YW5jZSkgLSAoY29tcGxl
eFRleHRSdW4uaW5pdGlhbEFkdmFuY2UoKS5oZWlnaHQoKSAtIGN1cnJlbnRHbHlwaE9yaWdpbi55
KCkpKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgc2V0V2lkdGgocGFpbnRB
ZHZhbmNlLCB3aWR0aChwYWludEFkdmFuY2UpICsgZ2x5cGhPcmlnaW4oZ2x5cGhJbmRleEludG9D
b21wbGV4VGV4dENvbnRyb2xsZXIgKyAxKS54KCkgLSBjdXJyZW50R2x5cGhPcmlnaW4ueCgpKTsK
LSAgICAgICAgICAgICAgICBzZXRIZWlnaHQocGFpbnRBZHZhbmNlLCBoZWlnaHQocGFpbnRBZHZh
bmNlKSArIGdseXBoT3JpZ2luKGdseXBoSW5kZXhJbnRvQ29tcGxleFRleHRDb250cm9sbGVyICsg
MSkueSgpIC0gY3VycmVudEdseXBoT3JpZ2luLnkoKSk7Ci0gICAgICAgICAgICAgICAgaWYgKGds
eXBoSW5kZXhJbnRvQ3VycmVudFJ1biA9PSBnbHlwaENvdW50IC0gMSAmJiBjdXJyZW50UnVuSW5k
ZXggKyAxIDwgcnVuQ291bnQpIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gT3VyIHBhaW50IGFk
dmFuY2UgcG9pbnRzIHRvIHRoZSBlbmQgb2YgdGhlIHJ1bi4gSG93ZXZlciwgdGhlIG5leHQgcnVu
IG1heSBoYXZlIGFuCi0gICAgICAgICAgICAgICAgICAgIC8vIGluaXRpYWwgYWR2YW5jZSwgYW5k
IG91ciBwYWludCBhZHZhbmNlIG5lZWRzIHRvIHBvaW50IHRvIHRoZSBsb2NhdGlvbiBvZiB0aGUg
bmV4dAotICAgICAgICAgICAgICAgICAgICAvLyBnbHlwaC4gU28sIHdlIG5lZWQgdG8gYWRkIGlu
IHRoZSBuZXh0IHJ1bidzIGluaXRpYWwgYWR2YW5jZS4KLSAgICAgICAgICAgICAgICAgICAgc2V0
V2lkdGgocGFpbnRBZHZhbmNlLCB3aWR0aChwYWludEFkdmFuY2UpIC0gZ2x5cGhPcmlnaW4oZ2x5
cGhJbmRleEludG9Db21wbGV4VGV4dENvbnRyb2xsZXIgKyAxKS54KCkgKyBtX2NvbXBsZXhUZXh0
UnVuc1tjdXJyZW50UnVuSW5kZXggKyAxXS0+aW5pdGlhbEFkdmFuY2UoKS53aWR0aCgpKTsKLSAg
ICAgICAgICAgICAgICAgICAgc2V0SGVpZ2h0KHBhaW50QWR2YW5jZSwgaGVpZ2h0KHBhaW50QWR2
YW5jZSkgLSBnbHlwaE9yaWdpbihnbHlwaEluZGV4SW50b0NvbXBsZXhUZXh0Q29udHJvbGxlciAr
IDEpLnkoKSArIG1fY29tcGxleFRleHRSdW5zW2N1cnJlbnRSdW5JbmRleCArIDFdLT5pbml0aWFs
QWR2YW5jZSgpLmhlaWdodCgpKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
c2V0SGVpZ2h0KHBhaW50QWR2YW5jZSwgLWhlaWdodChwYWludEFkdmFuY2UpKTsgLy8gSW5jcmVh
c2luZyB5IHBvaW50cyBkb3duCisgICAgICAgICAgICAgICAgYXV0byBuZXh0R2x5cGhPcmlnaW4g
PSBnbHlwaE9yaWdpbihnbHlwaEluZGV4SW50b0NvbXBsZXhUZXh0Q29udHJvbGxlciArIDEpOwor
ICAgICAgICAgICAgICAgIEdseXBoQnVmZmVyQWR2YW5jZSBwYWludEFkdmFuY2UgPSBtYWtlR2x5
cGhCdWZmZXJBZHZhbmNlKAorICAgICAgICAgICAgICAgICAgICBhZGp1c3RlZEJhc2VBZHZhbmNl
LndpZHRoKCkgKyBuZXh0R2x5cGhPcmlnaW4ueCgpIC0gY3VycmVudEdseXBoT3JpZ2luLngoKSwK
KyAgICAgICAgICAgICAgICAgICAgLShhZGp1c3RlZEJhc2VBZHZhbmNlLmhlaWdodCgpICsgbmV4
dEdseXBoT3JpZ2luLnkoKSAtIGN1cnJlbnRHbHlwaE9yaWdpbi55KCkpKTsKICAgICAgICAgICAg
ICAgICBnbHlwaEJ1ZmZlci0+YWRkKG1fYWRqdXN0ZWRHbHlwaHNbZ2x5cGhJbmRleEludG9Db21w
bGV4VGV4dENvbnRyb2xsZXJdLCBjb21wbGV4VGV4dFJ1bi5mb250KCksIHBhaW50QWR2YW5jZSwg
Y29tcGxleFRleHRSdW4uaW5kZXhBdChtX2dseXBoSW5DdXJyZW50UnVuKSk7CiAgICAgICAgICAg
ICB9CiAKICAgICAgICAgICAgIHVuc2lnbmVkIG9sZENoYXJhY3RlckluQ3VycmVudEdseXBoID0g
bV9jaGFyYWN0ZXJJbkN1cnJlbnRHbHlwaDsKICAgICAgICAgICAgIG1fY2hhcmFjdGVySW5DdXJy
ZW50R2x5cGggPSBzdGQ6Om1pbihtX2N1cnJlbnRDaGFyYWN0ZXIgLSBjb21wbGV4VGV4dFJ1bi5z
dHJpbmdMb2NhdGlvbigpLCBnbHlwaEVuZE9mZnNldCkgLSBnbHlwaFN0YXJ0T2Zmc2V0OwogICAg
ICAgICAgICAgbV9ydW5XaWR0aFNvRmFyICs9IGFkanVzdGVkQmFzZUFkdmFuY2Uud2lkdGgoKSAq
IHJ1bldpZHRoU29GYXJGcmFjdGlvbihnbHlwaFN0YXJ0T2Zmc2V0LCBnbHlwaEVuZE9mZnNldCwg
b2xkQ2hhcmFjdGVySW5DdXJyZW50R2x5cGgsIGl0ZXJhdGlvblN0eWxlKTsKKyAgICAgICAgICAg
IGlmICghY3VycmVudFJ1bkluZGV4ICYmICFnbHlwaEluZGV4SW50b0N1cnJlbnRSdW4pCisgICAg
ICAgICAgICAgICAgbV9ydW5XaWR0aFNvRmFyICs9IGNvbXBsZXhUZXh0UnVuLmluaXRpYWxBZHZh
bmNlKCkud2lkdGgoKSAtIGN1cnJlbnRHbHlwaE9yaWdpbi54KCk7CiAKICAgICAgICAgICAgIGlm
IChnbHlwaEVuZE9mZnNldCArIGNvbXBsZXhUZXh0UnVuLnN0cmluZ0xvY2F0aW9uKCkgPiBtX2N1
cnJlbnRDaGFyYWN0ZXIpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwpAQCAtNjg1LDYgKzY3NSw5
IEBAIHZvaWQgQ29tcGxleFRleHRDb250cm9sbGVyOjphZGp1c3RHbHlwaHNBbmRBZHZhbmNlcygp
CiAgICAgZm9yIChzaXplX3QgcnVuSW5kZXggPSAwOyBydW5JbmRleCA8IHJ1bkNvdW50OyArK3J1
bkluZGV4KSB7CiAgICAgICAgIENvbXBsZXhUZXh0UnVuJiBjb21wbGV4VGV4dFJ1biA9ICptX2Nv
bXBsZXhUZXh0UnVuc1tydW5JbmRleF07CiAgICAgICAgIHVuc2lnbmVkIGdseXBoQ291bnQgPSBj
b21wbGV4VGV4dFJ1bi5nbHlwaENvdW50KCk7CisgICAgICAgIEFTU0VSVChnbHlwaENvdW50KTsK
KyAgICAgICAgaWYgKCFnbHlwaENvdW50KQorICAgICAgICAgICAgY29udGludWU7CiAgICAgICAg
IGNvbnN0IEZvbnQmIGZvbnQgPSBjb21wbGV4VGV4dFJ1bi5mb250KCk7CiAKICAgICAgICAgaWYg
KCFjb21wbGV4VGV4dFJ1bi5pc0xUUigpKQpAQCAtNjkyLDYgKzY4NSw3IEBAIHZvaWQgQ29tcGxl
eFRleHRDb250cm9sbGVyOjphZGp1c3RHbHlwaHNBbmRBZHZhbmNlcygpCiAKICAgICAgICAgY29u
c3QgQ0dHbHlwaCogZ2x5cGhzID0gY29tcGxleFRleHRSdW4uZ2x5cGhzKCk7CiAgICAgICAgIGNv
bnN0IEZsb2F0U2l6ZSogYWR2YW5jZXMgPSBjb21wbGV4VGV4dFJ1bi5iYXNlQWR2YW5jZXMoKTsK
KyAgICAgICAgY29uc3QgRmxvYXRQb2ludCogb3JpZ2lucyA9IGNvbXBsZXhUZXh0UnVuLmdseXBo
T3JpZ2lucygpOyAvLyBudWxsYWJsZQogCiAgICAgICAgIGZsb2F0IHNwYWNlV2lkdGggPSBmb250
LnNwYWNlV2lkdGgoKSAtIGZvbnQuc3ludGhldGljQm9sZE9mZnNldCgpOwogICAgICAgICBjb25z
dCBVQ2hhciogY3AgPSBjb21wbGV4VGV4dFJ1bi5jaGFyYWN0ZXJzKCk7CkBAIC03MjIsOSArNzE2
LDE0IEBAIHZvaWQgQ29tcGxleFRleHRDb250cm9sbGVyOjphZGp1c3RHbHlwaHNBbmRBZHZhbmNl
cygpCiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGlmICghaSkgewotICAgICAgICAgICAg
ICAgIGFkdmFuY2UuZXhwYW5kKGNvbXBsZXhUZXh0UnVuLmluaXRpYWxBZHZhbmNlKCkud2lkdGgo
KSwgY29tcGxleFRleHRSdW4uaW5pdGlhbEFkdmFuY2UoKS5oZWlnaHQoKSk7Ci0gICAgICAgICAg
ICAgICAgaWYgKGF1dG8qIG9yaWdpbnMgPSBjb21wbGV4VGV4dFJ1bi5nbHlwaE9yaWdpbnMoKSkK
LSAgICAgICAgICAgICAgICAgICAgYWR2YW5jZS5leHBhbmQoLW9yaWdpbnNbMF0ueCgpLCAtb3Jp
Z2luc1swXS55KCkpOworICAgICAgICAgICAgICAgIC8vIEEgcnVuJ3MgaW5pdGlhbCBhZHZhbmNl
IHNob3VsZCBiZSBhZGRlZCB0byB0aGUgbGF5b3V0IGFkdmFuY2Ugb2YgdGhlIHZpc3VhbGx5IHBy
ZXZpb3VzIGdseXBoLgorICAgICAgICAgICAgICAgIC8vIEhvd2V2ZXIsIGlmIHRoZXJlIGlzIG5v
IHZpc3VhbGx5IHByZXZpb3VzIGdseXBoLCB0aGVuIHdlIGp1c3QgbGVhdmUgdGhlIGluaXRpYWwg
YWR2YW5jZSBhbG9uZSBpbnNpZGUgdGhlIHJ1biwKKyAgICAgICAgICAgICAgICAvLyBhbmQgcmVs
eSBvbiBhZHZhbmNlKCkgdG8gcmVhZCBpdCBhbmQgaG9ub3IgaXQgY29ycmVjdGx5LgorICAgICAg
ICAgICAgICAgIGF1dG8gY3VycmVudEdseXBoT3JpZ2luID0gb3JpZ2lucyA/IG9yaWdpbnNbaV0g
OiBGbG9hdFBvaW50KCk7CisgICAgICAgICAgICAgICAgYXV0byBsYXlvdXRBZHZhbmNlVG9BZGQg
PSAtY3VycmVudEdseXBoT3JpZ2luICsgY29tcGxleFRleHRSdW4uaW5pdGlhbEFkdmFuY2UoKSAt
IEZsb2F0UG9pbnQoKTsKKyAgICAgICAgICAgICAgICBpZiAoIW1fYWRqdXN0ZWRCYXNlQWR2YW5j
ZXMuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgICAgICBtX2FkanVzdGVkQmFzZUFkdmFuY2Vz
Lmxhc3QoKSArPSBsYXlvdXRBZHZhbmNlVG9BZGQ7CisgICAgICAgICAgICAgICAgbV90b3RhbEFk
dmFuY2UgKz0gbGF5b3V0QWR2YW5jZVRvQWRkOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAg
ICBhZHZhbmNlLmV4cGFuZChmb250LnN5bnRoZXRpY0JvbGRPZmZzZXQoKSwgMCk7CkBAIC03NjAs
MTQgKzc1OSwxNCBAQCB2b2lkIENvbXBsZXhUZXh0Q29udHJvbGxlcjo6YWRqdXN0R2x5cGhzQW5k
QWR2YW5jZXMoKQogICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBbZXhwYW5kTGVmdCwgZXhw
YW5kUmlnaHRdID0gZXhwYW5zaW9uTG9jYXRpb24oaWRlb2dyYXBoLCB0cmVhdEFzU3BhY2UsIG1f
cnVuLmx0cigpLCBhZnRlckV4cGFuc2lvbiwgZm9yYmlkTGVmdEV4cGFuc2lvbiwgZm9yYmlkUmln
aHRFeHBhbnNpb24sIGZvcmNlTGVmdEV4cGFuc2lvbiwgZm9yY2VSaWdodEV4cGFuc2lvbik7CiAg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXhwYW5kTGVmdCkgewogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG1fZXhwYW5zaW9uIC09IG1fZXhwYW5zaW9uUGVyT3Bwb3J0dW5pdHk7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSW5jcmVhc2UgcHJldmlvdXMgd2lkdGgKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobV9hZGp1c3RlZEJhc2VBZHZhbmNlcy5pc0Vt
cHR5KCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWR2YW5jZS5leHBhbmQo
bV9leHBhbnNpb25QZXJPcHBvcnR1bml0eSwgMCk7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLy8gVHJlYXQgdGhpcyBhcyBhbiBpbml0aWFsIGFkdmFuY2UsIGFuZCB0cnkgdG8gYWRkIGl0
IHRvIHRoZSBsYXlvdXQgYWR2YW5jZSBvZiB0aGUgdmlzdWFsbHkgcHJldmlvdXMgZ2x5cGguCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSG93ZXZlciwgaWYgdGhlcmUgaXMgbm8gdmlz
dWFsbHkgcHJldmlvdXMgZ2x5cGgsIHRoZW4gd2UgdXBkYXRlIHRoaXMgcnVuJ3MgcmVhbCBpbml0
aWFsIGFkdmFuY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYW5kIHJlbHkgb24g
Q29tcGxleFRleHRDb250cm9sbGVyOjphZHZhbmNlKCkncyBoYW5kbGluZyBvZiBpbml0aWFsIGFk
dmFuY2VzIHRvIGRvIHRoZSByaWdodCB0aGluZy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAobV9hZGp1c3RlZEJhc2VBZHZhbmNlcy5pc0VtcHR5KCkpCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbXBsZXhUZXh0UnVuLmdyb3dJbml0aWFsQWR2YW5jZUhvcml6b250
YWxseShtX2V4cGFuc2lvblBlck9wcG9ydHVuaXR5KTsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbV9hZGp1c3RlZEJhc2VBZHZhbmNlcy5sYXN0KCkuZXhw
YW5kKG1fZXhwYW5zaW9uUGVyT3Bwb3J0dW5pdHksIDApOwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBtX3RvdGFsQWR2YW5jZS5leHBhbmQobV9leHBhbnNpb25QZXJPcHBvcnR1bml0
eSwgMCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG1fdG90YWxBZHZhbmNlLmV4cGFuZChtX2V4cGFuc2lvblBlck9wcG9ydHVuaXR5
LCAwKTsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAg
IGlmIChleHBhbmRSaWdodCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZXhwYW5z
aW9uIC09IG1fZXhwYW5zaW9uUGVyT3Bwb3J0dW5pdHk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlwaEJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR2x5cGhCdWZmZXIuaAppbmRleCBhZmQ4YmEyNGZjMWNkZTdjZGE5NmM3
MmU1ZDZiMzkwYWNiZjU2MjNhLi5mY2ExZjM3YzAwZGQyNWEwODM4MjZlMGUzMjAxYTc2MjQ3MDRj
NmYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlwaEJ1
ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoQnVmZmVy
LmgKQEAgLTE4MiwxNCArMTgyLDE5IEBAIHB1YmxpYzoKICAgICAgICAgfQogICAgIH0KIAorI2lm
IEFTU0VSVF9FTkFCTEVECiAgICAgYm9vbCBpc0ZsYXR0ZW5lZCgpIGNvbnN0CiAgICAgeworICAg
ICAgICAvLyBUaGlzIGRvZXNuJ3QgYWN0dWFsbHkgcHJvdmUgdGhhdCBmbGF0dGVuKCkgd2FzIGNh
bGxlZCwKKyAgICAgICAgLy8gYnV0IGlmIHRoaXMgdGVzdCBwYXNzZXMsIHRoZW4gd2UgY2FuIGF0
IGxlYXN0IGRyYXcgdGhlIGdseXBocyBjb3JyZWN0bHksCisgICAgICAgIC8vIGV2ZW4gaWYgdGhl
cmUgd2FzIGEgcHJvZ3JhbW1lciBlcnJvciBhbmQgZmxhdHRlbigpIHNob3VsZCBoYXZlIGJlZW4g
Y2FsbGVkLgogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6ZSgpOyArK2kpIHsK
LSAgICAgICAgICAgIGlmIChtX29yaWdpbnNbaV0gIT0gbWFrZUdseXBoQnVmZmVyT3JpZ2luKCkp
CisgICAgICAgICAgICBpZiAoeChtX29yaWdpbnNbaV0pIHx8IHkobV9vcmlnaW5zW2ldKSkKICAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgfQorI2VuZGlmCiAKIHByaXZhdGU6CiAgICAgdm9pZCBzd2FwKHVuc2lnbmVkIGlu
ZGV4MSwgdW5zaWduZWQgaW5kZXgyKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9v
bHMvQ2hhbmdlTG9nCmluZGV4IDgxMjNjMjIxODhkNWU1NjRkZmRjMDYyYTZhOWY4MTAwZGUzYTZk
OGQuLmRmM2RlMDBlMGZhMDc3MzVjYjJiYTQ3MDlmMDRjNTg5YTNhYzRjZTcgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAor
MjAyMS0wOC0wOCAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisg
ICAgICAgIENvbXBsZXhUZXh0Q29udHJvbGxlciBzaG91bGQgYWRkIHJ1bnMnIGluaXRpYWwgYWR2
YW5jZXMgdG8gdGhlIHByZXZpb3VzIGdseXBoLCBub3QgdGhlIGN1cnJlbnQgZ2x5cGgKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyODkwNQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL0NvbXBsZXhUZXh0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChUZXN0
V2ViS2l0QVBJOjpURVNUX0YpOgorCiAyMDIxLTA4LTA3ICBBYWthc2ggSmFpbiAgPGFha2FzaF9q
YWluQGFwcGxlLmNvbT4KIAogICAgICAgICBbZXdzXSBMaW1pdCB0aGUgc2l6ZSBvZiBlcnJvciBj
b250ZXh0IGJ1ZmZlcgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL0NvbXBsZXhUZXh0Q29udHJvbGxlci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvQ29tcGxleFRleHRDb250cm9sbGVyLmNwcAppbmRleCBiY2YwMzI5NTViZTJlYmRm
ZmU2OTNkOGE4YmJkODJiZjk0MmY5ZDk5Li5jOTdjYTc1MjY4MzFiN2FmMWQ2NTZlNmE1Njk2MzA2
OTRiZGE1OWFlIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
Q29tcGxleFRleHRDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvQ29tcGxleFRleHRDb250cm9sbGVyLmNwcApAQCAtMTY1LDcgKzE2NSw3IEBAIFRF
U1RfRihDb21wbGV4VGV4dENvbnRyb2xsZXJUZXN0LCBJbml0aWFsQWR2YW5jZVdpdGhMZWZ0UnVu
SW5MVFIpCiAgICAgY29udHJvbGxlci5hZHZhbmNlKDAsICZnbHlwaEJ1ZmZlcik7CiAgICAgRVhQ
RUNUX05FQVIoY29udHJvbGxlci5ydW5XaWR0aFNvRmFyKCksIDAsIDAuMDAwMSk7CiAgICAgY29u
dHJvbGxlci5hZHZhbmNlKDEsICZnbHlwaEJ1ZmZlcik7Ci0gICAgRVhQRUNUX05FQVIoY29udHJv
bGxlci5ydW5XaWR0aFNvRmFyKCksIHNwYWNlV2lkdGgsIDAuMDAwMSk7CisgICAgRVhQRUNUX05F
QVIoY29udHJvbGxlci5ydW5XaWR0aFNvRmFyKCksIHNwYWNlV2lkdGggKyBpbml0aWFsQWR2YW5j
ZS53aWR0aCgpLCAwLjAwMDEpOwogICAgIGNvbnRyb2xsZXIuYWR2YW5jZSgyLCAmZ2x5cGhCdWZm
ZXIpOwogICAgIEVYUEVDVF9ORUFSKGNvbnRyb2xsZXIucnVuV2lkdGhTb0ZhcigpLCBzcGFjZVdp
ZHRoICsgYWR2YW5jZXNbMF0ud2lkdGgoKSArIGluaXRpYWxBZHZhbmNlLndpZHRoKCksIDAuMDAw
MSk7CiAgICAgY29udHJvbGxlci5hZHZhbmNlKDMsICZnbHlwaEJ1ZmZlcik7Cg==
</data>
<flag name="commit-queue"
          id="457896"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>