<?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>183625</bug_id>
          
          <creation_ts>2018-03-13 20:03:20 -0700</creation_ts>
          <short_desc>[LayoutReloaded] Add InlineBox dump</short_desc>
          <delta_ts>2018-03-14 07:59:25 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>koivisto</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1406342</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2018-03-13 20:03:20 -0700</bug_when>
    <thetext>and some more inline tree stuff.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1406343</commentid>
    <comment_count>1</comment_count>
      <attachid>335757</attachid>
    <who name="alan">zalan</who>
    <bug_when>2018-03-13 20:11:10 -0700</bug_when>
    <thetext>Created attachment 335757
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1406377</commentid>
    <comment_count>2</comment_count>
      <attachid>335757</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-03-14 07:19:02 -0700</bug_when>
    <thetext>Comment on attachment 335757
Patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1406387</commentid>
    <comment_count>3</comment_count>
      <attachid>335757</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-03-14 07:48:44 -0700</bug_when>
    <thetext>Comment on attachment 335757
Patch

Clearing flags on attachment: 335757

Committed r229599: &lt;https://trac.webkit.org/changeset/229599&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1406388</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-03-14 07:48:45 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1406389</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-03-14 07:59:25 -0700</bug_when>
    <thetext>&lt;rdar://problem/38458278&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>335757</attachid>
            <date>2018-03-13 20:11:10 -0700</date>
            <delta_ts>2018-03-14 07:48:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183625-20180313201109.patch</filename>
            <type>text/plain</type>
            <size>28983</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI5NTIyCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggM2YyOWFjZmFkODE3OTJiNmEyY2MzYWMwY2FjYWFmYjE4
YmY5ZjcyNC4uMDQzNmQxNzFmZWRlMzI1MjY2NWMwMDQwNDFiOTBiMjliYTdjZjQ0YSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQz
IEBACisyMDE4LTAzLTEzICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgW0xheW91dFJlbG9hZGVkXSBBZGQgSW5saW5lQm94IGR1bXAKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzYyNQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJpZ2h0IG5vdyBsaW5lIGJveGVzIGxpdmUg
b2ZmIG9mIHRoZSBpbmxpbmUgZm9ybWF0dGluZyBjb250ZXh0IGJ1dCB0aGF0J3MgdGVtcG9yYXJ5
IGFuZAorICAgICAgICB0aGV5IHdpbGwgYmUgbW92ZWQgb3ZlciB0byB0aGUgQm94VHJlZS4KKwor
ICAgICAgICAqIExheW91dFJlbG9hZGVkL0Zvcm1hdHRpbmdDb250ZXh0L0Jsb2NrRm9ybWF0dGlu
Zy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmpzOgorICAgICAgICAoQmxvY2tGb3JtYXR0aW5nQ29u
dGV4dC5wcm90b3R5cGUuX2NvbXB1dGVDb250ZW50SGVpZ2h0KToKKyAgICAgICAgKiBMYXlvdXRS
ZWxvYWRlZC9Gb3JtYXR0aW5nQ29udGV4dC9JbmxpbmVGb3JtYXR0aW5nL0lubGluZUZvcm1hdHRp
bmdDb250ZXh0LmpzOgorICAgICAgICAoSW5saW5lRm9ybWF0dGluZ0NvbnRleHQpOgorICAgICAg
ICAoSW5saW5lRm9ybWF0dGluZ0NvbnRleHQucHJvdG90eXBlLmxpbmVzKToKKyAgICAgICAgKElu
bGluZUZvcm1hdHRpbmdDb250ZXh0LnByb3RvdHlwZS5sYXlvdXQpOgorICAgICAgICAoSW5saW5l
Rm9ybWF0dGluZ0NvbnRleHQucHJvdG90eXBlLl9oYW5kbGVUZXh0KToKKyAgICAgICAgKElubGlu
ZUZvcm1hdHRpbmdDb250ZXh0LnByb3RvdHlwZS5fY29tbWl0TGluZSk6CisgICAgICAgIChJbmxp
bmVGb3JtYXR0aW5nQ29udGV4dC5wcm90b3R5cGUuX2luaXRpYWxpemVMaW5lKToKKyAgICAgICAg
KiBMYXlvdXRSZWxvYWRlZC9Gb3JtYXR0aW5nQ29udGV4dC9JbmxpbmVGb3JtYXR0aW5nL0xpbmUu
anM6CisgICAgICAgIChMaW5lKToKKyAgICAgICAgKExpbmUucHJvdG90eXBlLmlzRW1wdHkpOgor
ICAgICAgICAoTGluZS5wcm90b3R5cGUucmVjdCk6CisgICAgICAgIChMaW5lLnByb3RvdHlwZS5s
aW5lQm94ZXMpOgorICAgICAgICAoTGluZS5wcm90b3R5cGUuYWRkTGluZUJveCk6CisgICAgICAg
IChMaW5lLnByb3RvdHlwZS5hcHBlbmRGcmFnbWVudCk6IERlbGV0ZWQuCisgICAgICAgICogTGF5
b3V0UmVsb2FkZWQvUkVBRE1FLm1kOgorICAgICAgICAqIExheW91dFJlbG9hZGVkL1V0aWxzLmpz
OgorICAgICAgICAoVXRpbHMuY29tcHV0ZWRMaW5lSGVpZ2h0KToKKyAgICAgICAgKFV0aWxzLmlz
QmxvY2tDb250YWluZXJFbGVtZW50KToKKyAgICAgICAgKFV0aWxzLnRleHRIZWlnaHQpOgorICAg
ICAgICAoVXRpbHMuX2R1bXBCb3gpOgorICAgICAgICAoVXRpbHMuX2R1bXBMaW5lcy4pOgorICAg
ICAgICAoVXRpbHMuX2R1bXBMaW5lcyk6CisgICAgICAgIChVdGlscy5fZHVtcFRyZWUpOgorICAg
ICAgICAoVXRpbHMucHJlY2lzaW9uUm91bmQpOgorICAgICAgICAoVXRpbHMpOgorICAgICAgICAq
IExheW91dFJlbG9hZGVkL21pc2MvTGF5b3V0UmVsb2FkZWRXZWJLaXQucGF0Y2g6CisgICAgICAg
ICogTGF5b3V0UmVsb2FkZWQvdGVzdC9pbmRleC5odG1sOgorCiAyMDE4LTAzLTExICBaYWxhbiBC
dWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xheW91dFJlbG9hZGVkXSBBZGQg
TGluZSBjbGFzcyBmb3IgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQgLWFuZCBtb3ZlIGZpbGVzIGFy
b3VuZC4KZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL0Zvcm1hdHRpbmdDb250ZXh0
L0Jsb2NrRm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmpzIGIvVG9vbHMvTGF5b3V0
UmVsb2FkZWQvRm9ybWF0dGluZ0NvbnRleHQvQmxvY2tGb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGlu
Z0NvbnRleHQuanMKaW5kZXggNTRlNzI4YzI4NTA4Nzc5NDMzZWUxMzc1OGM2ZjE0OWRjNTlmNDRi
Zi4uNDYwMDkwZGVmMjU3MDYwMjJhMmNjNjU2NjQxMGQ0NGFjOTJhMTM3OSAxMDA2NDQKLS0tIGEv
VG9vbHMvTGF5b3V0UmVsb2FkZWQvRm9ybWF0dGluZ0NvbnRleHQvQmxvY2tGb3JtYXR0aW5nL0Js
b2NrRm9ybWF0dGluZ0NvbnRleHQuanMKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvRm9ybWF0
dGluZ0NvbnRleHQvQmxvY2tGb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuanMKQEAg
LTI0Miw2ICsyNDIsMTQgQEAgY2xhc3MgQmxvY2tGb3JtYXR0aW5nQ29udGV4dCBleHRlbmRzIEZv
cm1hdHRpbmdDb250ZXh0IHsKICAgICAgICAgLy8gT25seSBjaGlsZHJlbiBpbiB0aGUgbm9ybWFs
IGZsb3cgYXJlIHRha2VuIGludG8gYWNjb3VudC4KICAgICAgICAgaWYgKCFib3guaXNDb250YWlu
ZXIoKSB8fCAhYm94Lmhhc0luRmxvd0NoaWxkKCkpCiAgICAgICAgICAgICByZXR1cm4gMDsKKyAg
ICAgICAgaWYgKGJveC5lc3RhYmxpc2hlc0lubGluZUZvcm1hdHRpbmdDb250ZXh0KCkpIHsKKyAg
ICAgICAgICAgIEFTU0VSVChib3guZXN0YWJsaXNoZWRGb3JtYXR0aW5nQ29udGV4dCgpKTsKKyAg
ICAgICAgICAgIGxldCBsaW5lcyA9IGJveC5lc3RhYmxpc2hlZEZvcm1hdHRpbmdDb250ZXh0KCku
bGluZXMoKTsKKyAgICAgICAgICAgIGlmICghbGluZXMubGVuZ3RoKQorICAgICAgICAgICAgICAg
IHJldHVybiAwOworICAgICAgICAgICAgbGV0IGxhc3RMaW5lID0gbGluZXNbbGluZXMubGVuZ3Ro
IC0gMV07CisgICAgICAgICAgICByZXR1cm4gbGFzdExpbmUucmVjdCgpLmJvdHRvbSgpOworICAg
ICAgICB9CiAgICAgICAgIGxldCB0b3AgPSBib3guY29udGVudEJveCgpLnRvcCgpOwogICAgICAg
ICBsZXQgbGFzdEluRmxvd0NoaWxkID0gYm94Lmxhc3RJbkZsb3dDaGlsZCgpOwogCmRpZmYgLS1n
aXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC9Gb3JtYXR0aW5nQ29udGV4dC9JbmxpbmVGb3JtYXR0
aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmpzIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvRm9y
bWF0dGluZ0NvbnRleHQvSW5saW5lRm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5q
cwppbmRleCBiOGM4MjI2ZDUwNmJmNjkyNjU3NDM5MWUyYzUwYzM3OWZjMWQxZTYzLi42MDU5NzVl
NDc5ZTJmMjNiOTBmODFlOTFmZTBmM2EzZjc1OTA3ODA3IDEwMDY0NAotLS0gYS9Ub29scy9MYXlv
dXRSZWxvYWRlZC9Gb3JtYXR0aW5nQ29udGV4dC9JbmxpbmVGb3JtYXR0aW5nL0lubGluZUZvcm1h
dHRpbmdDb250ZXh0LmpzCisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL0Zvcm1hdHRpbmdDb250
ZXh0L0lubGluZUZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuanMKQEAgLTMwLDEx
ICszMCwxNSBAQCBjbGFzcyBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCBleHRlbmRzIEZvcm1hdHRp
bmdDb250ZXh0IHsKICAgICAgICAgQVNTRVJUKHJvb3QuaXNCbG9ja0NvbnRhaW5lckJveCgpKTsK
ICAgICAgICAgaWYgKHJvb3QuZXN0YWJsaXNoZXNCbG9ja0Zvcm1hdHRpbmdDb250ZXh0KCkpCiAg
ICAgICAgICAgICB0aGlzLm1fZmxvYXRpbmdDb250ZXh0ID0gbmV3IEZsb2F0aW5nQ29udGV4dCh0
aGlzKTsKLSAgICAgICAgLy8gVE9ETzogRmxvYXRzIG5lZWQgdG8gYmUgdGFrZW4gaW50byBhY2Nv
dW50LgotICAgICAgICB0aGlzLm1fbGluZSA9IG5ldyBMaW5lKHJvb3QuY29udGVudEJveCgpLndp
ZHRoKCkpOworICAgICAgICB0aGlzLl9pbml0aWFsaXplTGluZSgpOwogICAgICAgICB0aGlzLm1f
bGluZXMgPSBuZXcgQXJyYXkoKTsKICAgICB9CiAKKyAgICBsaW5lcygpIHsKKyAgICAgICAgLy8g
VE9ETzogdGhpcyBpcyB0ZW1wb3JhcnkuIExpbmUgYm94ZXMgd2lsbCBsaXZlIG9mZiBvZiB0aGUg
Qm94VHJlZS4KKyAgICAgICAgcmV0dXJuIHRoaXMubV9saW5lczsKKyAgICB9CisKICAgICBsYXlv
dXQobGF5b3V0Q29udGV4dCkgewogICAgICAgICAvLyA5LjQuMiBJbmxpbmUgZm9ybWF0dGluZyBj
b250ZXh0cwogICAgICAgICAvLyBJbiBhbiBpbmxpbmUgZm9ybWF0dGluZyBjb250ZXh0LCBib3hl
cyBhcmUgbGFpZCBvdXQgaG9yaXpvbnRhbGx5LCBvbmUgYWZ0ZXIgdGhlIG90aGVyLCBiZWdpbm5p
bmcgYXQgdGhlIHRvcCBvZiBhIGNvbnRhaW5pbmcgYmxvY2suCkBAIC02NSw4ICs2OSw4IEBAIGNs
YXNzIElubGluZUZvcm1hdHRpbmdDb250ZXh0IGV4dGVuZHMgRm9ybWF0dGluZ0NvbnRleHQgewog
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgICAgICAvLyBB
bmQgZmluYWxseSBwbGFjZSB0aGUgb3V0IG9mIGZsb3cgZGVzY2VuZGFudHMgZm9yIHRoZSByb290
LgogICAgICAgICAvL3RoaXMuX3BsYWNlT3V0T2ZGbG93RGVzY2VuZGFudHModGhpcy5yb290Q29u
dGFpbmVyKCkpOworICAgICAgICB0aGlzLl9jb21taXRMaW5lKCk7CiAgICB9CiAKICAgICBfaGFu
ZGxlSW5saW5lQm94KGlubGluZUJveCkgewpAQCAtNzYsOCArODAsOCBAQCBjbGFzcyBJbmxpbmVG
b3JtYXR0aW5nQ29udGV4dCBleHRlbmRzIEZvcm1hdHRpbmdDb250ZXh0IHsKIAogICAgIF9oYW5k
bGVUZXh0KGlubGluZUJveCkgewogICAgICAgICAvLyBGSVhNRTogVGhpcyBpcyBhIGV4dHJlbWVs
eSBzaW1wbGUgbGluZSBicmVha2luZyBhbGdvcml0aG0uCi0gICAgICAgIGxldCBlbmRQb3NpdGlv
biA9IGlubGluZUJveC50ZXh0KCkubGVuZ3RoKCkgLSAxOwogICAgICAgICBsZXQgY3VycmVudFBv
c2l0aW9uID0gMDsKKyAgICAgICAgbGV0IGVuZFBvc2l0aW9uID0gaW5saW5lQm94LnRleHQoKS5s
ZW5ndGgoKSAtIDE7CiAgICAgICAgIHdoaWxlIChjdXJyZW50UG9zaXRpb24gPCBlbmRQb3NpdGlv
bikgewogICAgICAgICAgICAgbGV0IGJyZWFraW5nUG9zaXRpb24gPSBVdGlscy5uZXh0QnJlYWtp
bmdPcHBvcnR1bml0eShpbmxpbmVCb3gudGV4dCgpLCBjdXJyZW50UG9zaXRpb24pOwogICAgICAg
ICAgICAgaWYgKGJyZWFraW5nUG9zaXRpb24gPT0gY3VycmVudFBvc2l0aW9uKQpAQCAtODUsMTkg
Kzg5LDI0IEBAIGNsYXNzIElubGluZUZvcm1hdHRpbmdDb250ZXh0IGV4dGVuZHMgRm9ybWF0dGlu
Z0NvbnRleHQgewogICAgICAgICAgICAgbGV0IGZyYWdtZW50V2lkdGggPSBVdGlscy5tZWFzdXJl
VGV4dChpbmxpbmVCb3gudGV4dCgpLCBjdXJyZW50UG9zaXRpb24sIGJyZWFraW5nUG9zaXRpb24p
OwogICAgICAgICAgICAgaWYgKHRoaXMuX2xpbmUoKS5hdmFpbGFibGVXaWR0aCgpIDwgZnJhZ21l
bnRXaWR0aCAmJiAhdGhpcy5fbGluZSgpLmlzRW1wdHkoKSkKICAgICAgICAgICAgICAgICB0aGlz
Ll9jb21taXRMaW5lKCk7Ci0gICAgICAgICAgICB0aGlzLl9saW5lKCkuYXBwZW5kRnJhZ21lbnQo
Y3VycmVudFBvc2l0aW9uLCBicmVha2luZ1Bvc2l0aW9uLCBmcmFnbWVudFdpZHRoKTsKKyAgICAg
ICAgICAgIHRoaXMuX2xpbmUoKS5hZGRMaW5lQm94KGN1cnJlbnRQb3NpdGlvbiwgYnJlYWtpbmdQ
b3NpdGlvbiwgbmV3IExheW91dFNpemUoZnJhZ21lbnRXaWR0aCwgVXRpbHMudGV4dEhlaWdodChp
bmxpbmVCb3gpKSk7CiAgICAgICAgICAgICBjdXJyZW50UG9zaXRpb24gPSBicmVha2luZ1Bvc2l0
aW9uOwogICAgICAgICB9CiAgICAgfQogCiAgICAgX2NvbW1pdExpbmUoKSB7CiAgICAgICAgIHRo
aXMubV9saW5lcy5wdXNoKHRoaXMuX2xpbmUoKSk7Ci0gICAgICAgIC8vIFRPRE86IEZsb2F0cyBu
ZWVkIHRvIGJlIHRha2VuIGludG8gYWNjb3VudC4KLSAgICAgICAgdGhpcy5tX2xpbmUgPSBuZXcg
TGluZSh0aGlzLnJvb3RDb250YWluZXIoKS5jb250ZW50Qm94KCkud2lkdGgoKSk7CisgICAgICAg
IHRoaXMuX2luaXRpYWxpemVMaW5lKCk7CiAgICAgfQogCiAgICAgX2xpbmUoKSB7CiAgICAgICAg
IHJldHVybiB0aGlzLm1fbGluZTsKICAgICB9CisKKyAgICBfaW5pdGlhbGl6ZUxpbmUoKSB7Cisg
ICAgICAgIC8vIFRPRE86IEZsb2F0cyBuZWVkIHRvIGJlIHRha2VuIGludG8gYWNjb3VudC4KKyAg
ICAgICAgbGV0IGNvbnRlbnRCb3hSZWN0ID0gdGhpcy5yb290Q29udGFpbmVyKCkuY29udGVudEJv
eCgpOworICAgICAgICB0aGlzLm1fbGluZSA9IG5ldyBMaW5lKGNvbnRlbnRCb3hSZWN0LnRvcExl
ZnQoKSwgVXRpbHMuY29tcHV0ZWRMaW5lSGVpZ2h0KHRoaXMucm9vdENvbnRhaW5lcigpKSwgY29u
dGVudEJveFJlY3Qud2lkdGgoKSk7CisgICAgfQogfQogCmRpZmYgLS1naXQgYS9Ub29scy9MYXlv
dXRSZWxvYWRlZC9Gb3JtYXR0aW5nQ29udGV4dC9JbmxpbmVGb3JtYXR0aW5nL0xpbmUuanMgYi9U
b29scy9MYXlvdXRSZWxvYWRlZC9Gb3JtYXR0aW5nQ29udGV4dC9JbmxpbmVGb3JtYXR0aW5nL0xp
bmUuanMKaW5kZXggMzJhNGY3MTUyOThkNzk3MzJjNjdjNzU5YjljNTY3OTFjYTFjZTc1Ni4uMjY5
OTEzNGM2YmRhMDAwYmNmYjhjNDVhMGQ4YmExZmMwOGViMTcwNiAxMDA2NDQKLS0tIGEvVG9vbHMv
TGF5b3V0UmVsb2FkZWQvRm9ybWF0dGluZ0NvbnRleHQvSW5saW5lRm9ybWF0dGluZy9MaW5lLmpz
CisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL0Zvcm1hdHRpbmdDb250ZXh0L0lubGluZUZvcm1h
dHRpbmcvTGluZS5qcwpAQCAtMjQsMjEgKzI0LDMzIEBACiAgKi8KIAogY2xhc3MgTGluZSB7Ci0g
ICAgY29uc3RydWN0b3IoYXZhaWxhYmxlV2lkdGgpIHsKKyAgICBjb25zdHJ1Y3Rvcih0b3BMZWZ0
LCBoZWlnaHQsIGF2YWlsYWJsZVdpZHRoKSB7CiAgICAgICAgIHRoaXMubV9hdmFpbGFibGVXaWR0
aCA9IGF2YWlsYWJsZVdpZHRoOwotICAgICAgICB0aGlzLm1fZnJhZ21lbnRzID0gbmV3IEFycmF5
KCk7CisgICAgICAgIHRoaXMubV9saW5lUmVjdCA9IG5ldyBMYXlvdXRSZWN0KHRvcExlZnQsIG5l
dyBMYXlvdXRTaXplKDAsIGhlaWdodCkpOworICAgICAgICB0aGlzLm1fbGluZUJveGVzID0gbmV3
IEFycmF5KCk7CiAgICAgfQogCiAgICAgaXNFbXB0eSgpIHsKLSAgICAgICAgcmV0dXJuICF0aGlz
Lm1fZnJhZ21lbnRzLmxlbmd0aDsKKyAgICAgICAgcmV0dXJuICF0aGlzLm1fbGluZUJveGVzLmxl
bmd0aDsKICAgICB9CiAKICAgICBhdmFpbGFibGVXaWR0aCgpIHsKICAgICAgICAgcmV0dXJuIHRo
aXMubV9hdmFpbGFibGVXaWR0aDsKICAgICB9CiAKLSAgICBhcHBlbmRGcmFnbWVudChzdGFydFBv
c2l0aW9uLCBlbmRQb3NpdGlvbiwgd2lkdGgpIHsKLSAgICAgICAgdGhpcy5tX2F2YWlsYWJsZVdp
ZHRoIC09IHdpZHRoOwotICAgICAgICB0aGlzLm1fZnJhZ21lbnRzLnB1c2goe3N0YXJ0UG9zaXRp
b24sIGVuZFBvc2l0aW9uLCB3aWR0aH0pOworICAgIHJlY3QoKSB7CisgICAgICAgIHJldHVybiB0
aGlzLm1fbGluZVJlY3Q7CisgICAgfQorCisgICAgbGluZUJveGVzKCkgeworICAgICAgICByZXR1
cm4gdGhpcy5tX2xpbmVCb3hlczsKKyAgICB9CisKKyAgICBhZGRMaW5lQm94KHN0YXJ0UG9zaXRp
b24sIGVuZFBvc2l0aW9uLCBzaXplKSB7CisgICAgICAgIHRoaXMubV9hdmFpbGFibGVXaWR0aCAt
PSBzaXplLndpZHRoKCk7CisgICAgICAgIC8vIFRPRE86IHVzZSB0aGUgYWN0dWFsIGhlaWdodCBp
bnN0ZWFkIG9mIHRoZSBsaW5lIGhlaWdodC4KKyAgICAgICAgbGV0IGxpbmVCb3hSZWN0ID0gbmV3
IExheW91dFJlY3QodGhpcy5yZWN0KCkudG9wTGVmdCgpLCBuZXcgTGF5b3V0U2l6ZShzaXplLndp
ZHRoKCksIHRoaXMucmVjdCgpLmhlaWdodCgpKSk7CisgICAgICAgIHRoaXMubV9saW5lQm94ZXMu
cHVzaCh7c3RhcnRQb3NpdGlvbiwgZW5kUG9zaXRpb24sIGxpbmVCb3hSZWN0fSk7CisgICAgICAg
IHRoaXMubV9saW5lUmVjdC5ncm93QnkobmV3IExheW91dFNpemUoc2l6ZS53aWR0aCgpLCAwKSk7
CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvUkVBRE1FLm1kIGIv
VG9vbHMvTGF5b3V0UmVsb2FkZWQvUkVBRE1FLm1kCmluZGV4IDQwZDI2Zjk4MjI4ZmVlY2E4NjFh
N2IxMDQ4MGM4ZWY1ODA2ZTMxMmYuLmEyMmY3MmZkMjYxNTQxMWM4NzIzN2RhNGI5NWM2NGIzMDAz
MGZlZGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL1JFQURNRS5tZAorKysgYi9U
b29scy9MYXlvdXRSZWxvYWRlZC9SRUFETUUubWQKQEAgLTgsMTAgKzgsMTAgQEAgV2ViQ29yZQog
TGF5b3V0UmVsb2FkZWQKIDEuIGl0ZXJhdGl2ZSBsYXlvdXQgd2l0aGluIGEgZm9ybWF0dGluZyBj
b250ZXh0LCByZWN1cnNpdmUgYWNyb3NzIG5lc3RlZCBmb3JtYXR0aW5nIGNvbnRleHRzIAogMi4g
Zm9ybWF0dGluZyBjb250ZXh0IGlzIHJlc3BvbnNpYmxlIGZvciBjb21wdXRpbmcgc2l6ZS9wb3Np
dGlvbnMgZm9yIGFsbCB0aGUgYm94ZXMgdGhhdCBsaXZlIGluIHRoZQotY29udGV4dCBpbmNsdWRp
bmcgaW4vb3V0LW9mLWZsb3cgYW5kIGZsb2F0aW5nIGJveGVzICAKK2NvbnRleHQgaW5jbHVkaW5n
IGluL291dC1vZi1mbG93IGFuZCBmbG9hdGluZyBib3hlcwogMy4gSW5pdGlhbCBjb250YWluaW5n
IGJsb2NrIGNyZWF0ZXMgdGhlIHRvcCBsZXZlbCAoaW5pdGlhbCkgYmxvY2sgZm9ybWF0dGluZyBj
b250ZXh0CiA0LiBGbG9hdHMgYXJlIHJlc2l0cmljZWQgdG8gdGhlaXIgY29udGFpbmluZyBibG9j
a3MuCi0KKzUuIEJveGVzLCBpbmNsdWRpbmcgaW5saW5lIHRyZWUgYXJlIGdlbmVyYXRlZCB3aGls
ZSBsYXlpbmcgb3V0IHRoZSBjb250ZW50LiBMYXlvdXRUcmVlIC0+IEJveFRyZWUuCiAKIEluc3Ry
dWN0aW9uczoKIDEuIGFwcGx5IC4vbWlzYy9MYXlvdXRSZWxvYWRlZFdlYktpdC5wYXRjaApkaWZm
IC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvVXRpbHMuanMgYi9Ub29scy9MYXlvdXRSZWxv
YWRlZC9VdGlscy5qcwppbmRleCBiY2YzMDAzMDQ3ZjU1ODM5ZDQzZGEwZjUwYmUzZmIyZDE1NDEz
NTZhLi5kMzA1MTIxY2M0MWQwNTc1NDA3OGY5YTU4Yjk1YzhmMTZmNGQ3ZTBlIDEwMDY0NAotLS0g
YS9Ub29scy9MYXlvdXRSZWxvYWRlZC9VdGlscy5qcworKysgYi9Ub29scy9MYXlvdXRSZWxvYWRl
ZC9VdGlscy5qcwpAQCAtMzkxLDYgKzM5MSwxMCBAQCBjbGFzcyBVdGlscyB7CiAgICAgICAgIHJl
dHVybiB0aGlzLmNvbXB1dGVkQm9yZGVyQW5kUGFkZGluZ1RvcChib3gpICsgdGhpcy5jb21wdXRl
ZEJvcmRlckFuZFBhZGRpbmdCb3R0b20oYm94KTsKICAgICB9CiAKKyAgICBzdGF0aWMgY29tcHV0
ZWRMaW5lSGVpZ2h0KGJveCkgeworICAgICAgICByZXR1cm4gVXRpbHMuY29tcHV0ZWRWYWx1ZSh3
aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShib3gubm9kZSgpKS5saW5lSGVpZ2h0KTsKKyAgICB9CisK
ICAgICBzdGF0aWMgaGFzQ2xlYXIoYm94KSB7CiAgICAgICAgIHJldHVybiBVdGlscy5oYXNDbGVh
ckxlZnQoYm94KSB8fCBVdGlscy5oYXNDbGVhclJpZ2h0KGJveCkgfHwgVXRpbHMuaGFzQ2xlYXJC
b3RoKGJveCk7CiAgICAgfQpAQCAtNDE4LDYgKzQyMiw4IEBAIGNsYXNzIFV0aWxzIHsKICAgICB9
CiAKICAgICBzdGF0aWMgaXNCbG9ja0NvbnRhaW5lckVsZW1lbnQobm9kZSkgeworICAgICAgICBp
ZiAobm9kZS5ub2RlVHlwZSAhPSBOb2RlLkVMRU1FTlRfTk9ERSkKKyAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICAgICAgbGV0IGRpc3BsYXkgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShu
b2RlKS5kaXNwbGF5OwogICAgICAgICByZXR1cm4gIGRpc3BsYXkgPT0gImJsb2NrIiB8fCBkaXNw
bGF5ID09ICJsaXN0LWl0ZW0iIHx8IGRpc3BsYXkgPT0gImlubGluZS1ibG9jayIgfHwgZGlzcGxh
eSA9PSAidGFibGUtY2VsbCIgfHwgZGlzcGxheSA9PSAidGFibGUtY2FwdGlvbiI7IC8vVE9ETyAm
JiAhcmVwbGFjZWQgZWxlbWVudAogICAgIH0KQEAgLTUxMSw2ICs1MTcsMTEgQEAgY2xhc3MgVXRp
bHMgewogICAgICAgICByZXR1cm4gdGV4Qm94Lm5vZGUoKS50ZXh0V2lkdGgoc3RhcnQsIGVuZCk7
CiAgICAgfQogCisgICAgc3RhdGljIHRleHRIZWlnaHQodGV4dEJveCkKKyAgICB7CisgICAgICAg
IHJldHVybiB0ZXh0Qm94LnRleHQoKS5ub2RlKCkudGV4dEhlaWdodCgpOworICAgIH0KKwogICAg
IC8vICJSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgMTMxN3gzNjZcbiBIVE1MIFJlbmRlckJsb2Nr
IGF0ICgwLDApIHNpemUgMTMxN3gxMTZcbiAgQk9EWSBSZW5kZXJCb2R5IGF0ICg4LDgpIHNpemUg
MTMwMXgxMDBcbiAgIERJViBSZW5kZXJCbG9jayBhdCAoMCwwKSBzaXplIDEwMHgxMDBcbiI7CiAg
ICAgc3RhdGljIGxheW91dFRyZWVEdW1wKGluaXRpYWxDb250YWluaW5nQmxvY2spIHsKICAgICAg
ICAgcmV0dXJuIHRoaXMuX2R1bXBCb3goaW5pdGlhbENvbnRhaW5pbmdCbG9jaywgMSkgKyB0aGlz
Ll9kdW1wVHJlZShpbml0aWFsQ29udGFpbmluZ0Jsb2NrLCAyKTsKQEAgLTUxOSwxNSArNTMwLDM4
IEBAIGNsYXNzIFV0aWxzIHsKICAgICBzdGF0aWMgX2R1bXBCb3goYm94LCBsZXZlbCkgewogICAg
ICAgICAvLyBTa2lwIGFub255bW91cyBib3hlcyBmb3Igbm93IC1UaGlzIGlzIHRoZSBjYXNlIHdo
ZXJlIFdlYktpdCBkb2VzIG5vdCBnZW5lcmF0ZSBhbiBhbm9uIGlubGluZSBjb250YWluZXIgZm9y
IHRleHQgY29udGVudCB3aGVyZSB0aGUgdGV4dCBpcyBhIGRpcmVjdCBjaGlsZAogICAgICAgICAv
LyBvZiBhIGJsb2NrIGNvbnRhaW5lci4KLSAgICAgICAgaWYgKGJveC5pc0Fub255bW91cygpKQot
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBsZXQgaW5kZW50YXRpb24gPSAiICIucmVwZWF0
KGxldmVsKTsKKyAgICAgICAgaWYgKGJveCBpbnN0YW5jZW9mIElubGluZUJveCkgeworICAgICAg
ICAgICAgaWYgKGJveC50ZXh0KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGluZGVudGF0aW9u
ICsgIiN0ZXh0IFJlbmRlclRleHRcbiI7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGJveC5pc0Fu
b255bW91cygpKQorICAgICAgICAgICAgcmV0dXJuICIiOwogICAgICAgICBsZXQgYm94UmVjdCA9
IGJveC5yZWN0KCk7CiAgICAgICAgIHJldHVybiBpbmRlbnRhdGlvbiArIChib3gubm9kZSgpLnRh
Z05hbWUgPyAoYm94Lm5vZGUoKS50YWdOYW1lICsgIiAiKSA6ICIiKSAgKyBib3gubmFtZSgpICsg
IiBhdCAoIiArIGJveFJlY3QubGVmdCgpICsgIiwiICsgYm94UmVjdC50b3AoKSArICIpIHNpemUg
IiArIGJveFJlY3Qud2lkdGgoKSArICJ4IiArIGJveFJlY3QuaGVpZ2h0KCkgKyAiXG4iOwogICAg
IH0KIAorICAgIHN0YXRpYyBfZHVtcExpbmVzKHJvb3QsIGxldmVsKSB7CisgICAgICAgIEFTU0VS
VChyb290LmVzdGFibGlzaGVzSW5saW5lRm9ybWF0dGluZ0NvbnRleHQoKSk7CisgICAgICAgIGxl
dCBpbmxpbmVGb3JtYXR0aW5nQ29udGV4dCA9IHJvb3QuZXN0YWJsaXNoZWRGb3JtYXR0aW5nQ29u
dGV4dCgpOworICAgICAgICBsZXQgbGluZXMgPSBpbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5saW5l
cygpOworICAgICAgICBsZXQgY29udGVudCA9ICIiOworICAgICAgICBsZXQgaW5kZW50YXRpb24g
PSAiICIucmVwZWF0KGxldmVsKTsKKyAgICAgICAgbGluZXMuZm9yRWFjaChmdW5jdGlvbihsaW5l
KSB7CisgICAgICAgICAgICBsZXQgbGluZVJlY3QgPSBsaW5lLnJlY3QoKTsKKyAgICAgICAgICAg
IGNvbnRlbnQgKz0gaW5kZW50YXRpb24gKyAiUm9vdElubGluZUJveCBhdCAoIiArIGxpbmVSZWN0
LmxlZnQoKSArICIsIiArIGxpbmVSZWN0LnRvcCgpICsgIikgc2l6ZSAiICsgVXRpbHMucHJlY2lz
aW9uUm91bmQobGluZVJlY3Qud2lkdGgoKSwgMikgKyAieCIgKyBsaW5lUmVjdC5oZWlnaHQoKSAr
ICJcbiI7CisgICAgICAgICAgICBsaW5lLmxpbmVCb3hlcygpLmZvckVhY2goZnVuY3Rpb24obGlu
ZUJveCkgeworICAgICAgICAgICAgICAgIGxldCBpbmRlbnRhdGlvbiA9ICIgIi5yZXBlYXQobGV2
ZWwgKyAxKTsKKyAgICAgICAgICAgICAgICBjb250ZW50ICs9IGluZGVudGF0aW9uICsgIklubGlu
ZVRleHRCb3ggYXQgKCIgKyBsaW5lQm94LmxpbmVCb3hSZWN0LmxlZnQoKSArICIsIiArIGxpbmVC
b3gubGluZUJveFJlY3QudG9wKCkgKyAiKSBzaXplICIgKyBVdGlscy5wcmVjaXNpb25Sb3VuZChs
aW5lQm94LmxpbmVCb3hSZWN0LndpZHRoKCksIDIpICsgIngiICsgbGluZUJveC5saW5lQm94UmVj
dC5oZWlnaHQoKSArICJcbiI7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgICAg
IHJldHVybiBjb250ZW50OworICAgIH0KKwogICAgIHN0YXRpYyBfZHVtcFRyZWUocm9vdCwgbGV2
ZWwpIHsKICAgICAgICAgbGV0IGNvbnRlbnQgPSAiIjsKKyAgICAgICAgaWYgKHJvb3QuaXNCbG9j
a0NvbnRhaW5lckJveCgpICYmIHJvb3QuZXN0YWJsaXNoZXNJbmxpbmVGb3JtYXR0aW5nQ29udGV4
dCgpKQorICAgICAgICAgICAgY29udGVudCArPSB0aGlzLl9kdW1wTGluZXMocm9vdCwgbGV2ZWwp
OwogICAgICAgICBmb3IgKGxldCBjaGlsZCA9IHJvb3QuZmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hp
bGQgPSBjaGlsZC5uZXh0U2libGluZygpKSB7CiAgICAgICAgICAgICBjb250ZW50ICs9IHRoaXMu
X2R1bXBCb3goY2hpbGQsIGxldmVsKTsKICAgICAgICAgICAgIGlmIChjaGlsZC5pc0NvbnRhaW5l
cigpKQpAQCAtNTM1LDUgKzU2OSwxMCBAQCBjbGFzcyBVdGlscyB7CiAgICAgICAgIH0KICAgICAg
ICAgcmV0dXJuIGNvbnRlbnQ7CiAgICAgfQorCisgICAgc3RhdGljIHByZWNpc2lvblJvdW5kKG51
bWJlciwgcHJlY2lzaW9uKSB7CisgICAgICAgIHZhciBmYWN0b3IgPSBNYXRoLnBvdygxMCwgcHJl
Y2lzaW9uKTsKKyAgICAgICAgcmV0dXJuIE1hdGgucm91bmQobnVtYmVyICogZmFjdG9yKSAvIGZh
Y3RvcjsKKyAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL21pc2Mv
TGF5b3V0UmVsb2FkZWRXZWJLaXQucGF0Y2ggYi9Ub29scy9MYXlvdXRSZWxvYWRlZC9taXNjL0xh
eW91dFJlbG9hZGVkV2ViS2l0LnBhdGNoCmluZGV4IGUxNTU5MzQxMzU4ZjQ0OTkxYjczZTIzNDRm
YjU4OGM4OTYwZTE1YjEuLmUxYWMxMzJjZTIyOTUyYWNkMzBlNjZmNGEzNzdkNWJmZDM1ZGNhZDMg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL21pc2MvTGF5b3V0UmVsb2FkZWRXZWJL
aXQucGF0Y2gKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvbWlzYy9MYXlvdXRSZWxvYWRlZFdl
YktpdC5wYXRjaApAQCAtMSw4ICsxLDggQEAKIGRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Q
bGF0Zm9ybS5oIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAotaW5kZXggYzMxNWVlMjVmYzAu
LjY4OThiNGQ1NWExIDEwMDY0NAoraW5kZXggOTIxYTEwODIwNmIuLjY3OTcwM2ZhOWU5IDEwMDY0
NAogLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAogKysrIGIvU291cmNlL1dURi93dGYv
UGxhdGZvcm0uaAotQEAgLTExMDMsNyArMTEwMyw3IEBACitAQCAtMTExNiw3ICsxMTE2LDcgQEAK
ICAjaWYgIWRlZmluZWQoTkRFQlVHKQogICNkZWZpbmUgRU5BQkxFX1RSRUVfREVCVUdHSU5HIDEK
ICAjZWxzZQpAQCAtMTIsMTAgKzEyLDEwIEBAIGluZGV4IGMzMTVlZTI1ZmMwLi42ODk4YjRkNTVh
MSAxMDA2NDQKICAjZW5kaWYKICAKIGRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Q29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21w
dXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCi1pbmRleCBhYjJhMTc4NTRjNS4uMDVkMWJjZWQxZjMg
MTAwNjQ0CitpbmRleCAyMDllMjlhYTc0MC4uNDExMzUzZTU4NzEgMTAwNjQ0CiAtLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAogKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKLUBAIC00MTAx
LDYgKzQxMDEsMzYgQEAgU3RyaW5nIENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6Z2V0UHJv
cGVydHlWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQpIGMKK0BAIC00MTE0LDYgKzQxMTQs
MzYgQEAgU3RyaW5nIENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlWYWx1
ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQpIGMKICAgICAgcmV0dXJuIHZhbHVlLT5jc3NUZXh0
KCk7CiAgfQogIApAQCAtMTE4LDEwICsxMTgsMTAgQEAgaW5kZXggMDQxOTY0MDVkZGYuLjU5OTgx
MjA1Y2FlIDEwMDY0NAogICAgICBTdHJpbmcgZ2V0UHJvcGVydHlTaG9ydGhhbmQoY29uc3QgU3Ry
aW5nJiBwcm9wZXJ0eU5hbWUpIGZpbmFsOwogICAgICBib29sIGlzUHJvcGVydHlJbXBsaWNpdChj
b25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSkgZmluYWw7CiBkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCi1pbmRleCA0
OGYzMTYxYTlhYy4uMGUwMWQyYTczZjAgMTAwNjQ0CitpbmRleCAyZDg5OWU3NmI5YS4uNzE3NTFj
ODYyYTEgMTAwNjQ0CiAtLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKICsrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAotQEAgLTUxNCw2ICs1MTQsMjAgQEAgRXhjZXB0aW9u
T3I8dm9pZD4gTm9kZTo6YmVmb3JlKFZlY3RvcjxOb2RlT3JTdHJpbmc+JiYgbm9kZU9yU3RyaW5n
VmVjdG9yKQorQEAgLTUxNCw2ICs1MTQsMjcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gTm9kZTo6YmVm
b3JlKFZlY3RvcjxOb2RlT3JTdHJpbmc+JiYgbm9kZU9yU3RyaW5nVmVjdG9yKQogICAgICByZXR1
cm4gcGFyZW50LT5pbnNlcnRCZWZvcmUoKm5vZGUsIHZpYWJsZVByZXZpb3VzU2libGluZy5nZXQo
KSk7CiAgfQogIApAQCAtMTM4LDE1ICsxMzgsMjIgQEAgaW5kZXggNDhmMzE2MWE5YWMuLjBlMDFk
MmE3M2YwIDEwMDY0NAogKyAgICAgICAgcmV0dXJuIDA7CiArICAgIHJldHVybiByZW5kZXJlcigp
LT5tZWFzdXJlVGV4dChzdGFydCwgZW5kKTsKICt9CisrCisrZG91YmxlIE5vZGU6OnRleHRIZWln
aHQoKQorK3sKKysgICAgaWYgKCFyZW5kZXJlcigpKQorKyAgICAgICAgcmV0dXJuIDA7CisrICAg
IHJldHVybiByZW5kZXJlcigpLT5zdHlsZSgpLmNvbXB1dGVkRm9udFBpeGVsU2l6ZSgpOworK30K
ICsKICBFeGNlcHRpb25Pcjx2b2lkPiBOb2RlOjphZnRlcihWZWN0b3I8Tm9kZU9yU3RyaW5nPiYm
IG5vZGVPclN0cmluZ1ZlY3RvcikKICB7CiAgICAgIFJlZlB0cjxDb250YWluZXJOb2RlPiBwYXJl
bnQgPSBwYXJlbnROb2RlKCk7CiBkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUu
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKLWluZGV4IGViODU3ZmViOWFjLi42ZjBiNzVk
NTE4ZCAxMDA2NDQKK2luZGV4IGFjZWU0ODZhMDBkLi41MTRiMjkxMWQzZiAxMDA2NDQKIC0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKICsrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
LmgKLUBAIC0xNzgsNyArMTc4LDEwIEBAIHB1YmxpYzoKK0BAIC0xNzgsNyArMTc4LDExIEBAIHB1
YmxpYzoKICAKICAgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIHRleHRDb250ZW50KGJvb2wgY29u
dmVydEJSc1RvTmV3bGluZXMgPSBmYWxzZSkgY29uc3Q7CiAgICAgIFdFQkNPUkVfRVhQT1JUIEV4
Y2VwdGlvbk9yPHZvaWQ+IHNldFRleHRDb250ZW50KGNvbnN0IFN0cmluZyYpOwpAQCAtMTU0LDI5
ICsxNjEsMzkgQEAgaW5kZXggZWI4NTdmZWI5YWMuLjZmMGI3NWQ1MThkIDEwMDY0NAogKwogKyAg
ICBpbnQgcmVuZGVyZXJJZCgpOwogKyAgICBkb3VibGUgdGV4dFdpZHRoKGludCBzdGFydCwgaW50
IGVuZCk7CisrICAgIGRvdWJsZSB0ZXh0SGVpZ2h0KCk7CiArCiAgICAgIE5vZGUqIGxhc3REZXNj
ZW5kYW50KCkgY29uc3Q7CiAgICAgIE5vZGUqIGZpcnN0RGVzY2VuZGFudCgpIGNvbnN0OwogIAog
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlLmlkbAotaW5kZXggMjUxNzdhOGNkNDMuLjYyMzViYjY1NGI1IDEwMDY0NAoraW5k
ZXggMjUxNzdhOGNkNDMuLjI5NDMwN2RjODE1IDEwMDY0NAogLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGUuaWRsCiArKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5pZGwKLUBAIC03Myw2
ICs3Myw5IEBACitAQCAtNzMsNiArNzMsMTAgQEAKICAgICAgdW5zaWduZWQgc2hvcnQgY29tcGFy
ZURvY3VtZW50UG9zaXRpb24oTm9kZSBvdGhlcik7CiAgICAgIGJvb2xlYW4gY29udGFpbnMoTm9k
ZT8gb3RoZXIpOwogIAogKyAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyByZW5kZXJlcklkOwog
KyAgICBkb3VibGUgdGV4dFdpZHRoKGxvbmcgc3RhcnQsIGxvbmcgZW5kKTsKKysgICAgZG91Ymxl
IHRleHRIZWlnaHQoKTsKICsKICAgICAgRE9NU3RyaW5nPyBsb29rdXBQcmVmaXgoRE9NU3RyaW5n
PyBuYW1lc3BhY2VVUkkpOwogICAgICBET01TdHJpbmc/IGxvb2t1cE5hbWVzcGFjZVVSSShET01T
dHJpbmc/IHByZWZpeCk7CiAgICAgIGJvb2xlYW4gaXNEZWZhdWx0TmFtZXNwYWNlKERPTVN0cmlu
Zz8gbmFtZXNwYWNlVVJJKTsKIGRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKLWluZGV4IGYxZDE5
ODVkMTA0Li5mNWEwMTA3NWJlYSAxMDA2NDQKK2luZGV4IGE2MmUyMDA1NTA1Li5hNzE5NDdjYzU0
ZiAxMDA2NDQKIC0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAogKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCi1AQCAtNzcsNiArNzcsNyBAQAorQEAg
LTI5LDYgKzI5LDcgQEAKKyAKKyAjaW5jbHVkZSAiQmFja0ZvcndhcmRDb250cm9sbGVyLmgiCisg
I2luY2x1ZGUgIkJhclByb3AuaCIKKysjaW5jbHVkZSAiQnJlYWtMaW5lcy5oIgorICNpbmNsdWRl
ICJDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uaCIKKyAjaW5jbHVkZSAiQ1NTUnVsZS5oIgor
ICNpbmNsdWRlICJDU1NSdWxlTGlzdC5oIgorQEAgLTc4LDYgKzc5LDcgQEAKICAjaW5jbHVkZSAi
UGFnZUNvbnNvbGVDbGllbnQuaCIKICAjaW5jbHVkZSAiUGFnZVRyYW5zaXRpb25FdmVudC5oIgog
ICNpbmNsdWRlICJQZXJmb3JtYW5jZS5oIgpAQCAtMTg0LDcgKzIwMSwxNSBAQCBpbmRleCBmMWQx
OTg1ZDEwNC4uZjVhMDEwNzViZWEgMTAwNjQ0CiAgI2luY2x1ZGUgIlJlcXVlc3RBbmltYXRpb25G
cmFtZUNhbGxiYWNrLmgiCiAgI2luY2x1ZGUgIlJlc291cmNlTG9hZEluZm8uaCIKICAjaW5jbHVk
ZSAiUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgiCi1AQCAtMTM2Nyw2ICsxMzY4LDIzIEBAIFN0
cmluZyBET01XaW5kb3c6Om5hbWUoKSBjb25zdAorQEAgLTExNSw2ICsxMTcsNyBAQAorICNpbmNs
dWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyAjaW5jbHVkZSA8d3RmL1JlZi5oPgorICNpbmNs
dWRlIDx3dGYvVmFyaWFudC5oPgorKyNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0QnJlYWtJdGVyYXRv
ci5oPgorICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKyAKKyAjaWYgRU5BQkxFKFVT
RVJfTUVTU0FHRV9IQU5ETEVSUykKK0BAIC0xMzc3LDYgKzEzODAsMjUgQEAgU3RyaW5nIERPTVdp
bmRvdzo6bmFtZSgpIGNvbnN0CiAgICAgIHJldHVybiBtX2ZyYW1lLT50cmVlKCkubmFtZSgpOwog
IH0KICAKQEAgLTIwMCwxNiArMjI1LDE4IEBAIGluZGV4IGYxZDE5ODVkMTA0Li5mNWEwMTA3NWJl
YSAxMDA2NDQKICsKICtpbnQgRE9NV2luZG93OjpuZXh0QnJlYWtpbmdPcHBvcnR1bml0eShjb25z
dCBTdHJpbmcmIHRleHQsIHVuc2lnbmVkIHN0YXJ0UG9zaXRpb24pCiArewotKyAgICBpZiAoc3Rh
cnRQb3NpdGlvbiA+PSB0ZXh0Lmxlbmd0aCgpIC0gMSkKLSsgICAgICAgIHJldHVybiBzdGFydFBv
c2l0aW9uOwotKyAgICByZXR1cm4gc3RhcnRQb3NpdGlvbiArIDE7CisrICAgIExhenlMaW5lQnJl
YWtJdGVyYXRvciBsaW5lQnJlYWtJdGVyYXRvcih0ZXh0LCBtX2ZyYW1lLT52aWV3KCktPnJlbmRl
clZpZXcoKS0+c3R5bGUoKS5sb2NhbGUoKSk7CisrCisrICAgIGlmIChsaW5lQnJlYWtJdGVyYXRv
ci5tb2RlKCkgPT0gTGluZUJyZWFrSXRlcmF0b3JNb2RlOjpEZWZhdWx0KQorKyAgICAgICAgICAg
IHJldHVybiBXZWJDb3JlOjpuZXh0QnJlYWthYmxlUG9zaXRpb24obGluZUJyZWFrSXRlcmF0b3Is
IHN0YXJ0UG9zaXRpb24pOworKyAgICByZXR1cm4gbmV4dEJyZWFrYWJsZVBvc2l0aW9uV2l0aG91
dFNob3J0Y3V0KGxpbmVCcmVha0l0ZXJhdG9yLCBzdGFydFBvc2l0aW9uKTsKICt9CiArCiAgdm9p
ZCBET01XaW5kb3c6OnNldE5hbWUoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiAgewogICAgICBpZiAo
IW1fZnJhbWUpCiBkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKLWluZGV4IDc3NDhlZmFmODRiLi5hNjg2
M2EzMjc0YSAxMDA2NDQKK2luZGV4IDY0MjJhNDg1MTdhLi5mY2NjN2VmMWE5ZiAxMDA2NDQKIC0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKICsrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRE9NV2luZG93LmgKIEBAIC0xOTEsNiArMTkxLDEwIEBAIHB1YmxpYzoKQEAgLTI1NCwx
MSArMjgxLDEwMiBAQCBpbmRleCA0ODA3ZTdiNjFkMS4uZjU5MTZjMTE1MDIgMTAwNjQ0CiAgI2Vu
ZGlmCiAgfQogIAorZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVC
b3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUJveC5jcHAKK2luZGV4IGNk
MjNhZTBiOTdjLi5kYTA3MmVmZGZhOSAxMDA2NDQKKy0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9JbmxpbmVCb3guY3BwCisrKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5l
Qm94LmNwcAorQEAgLTEyMyw2ICsxMjMsMTUgQEAgdm9pZCBJbmxpbmVCb3g6Om91dHB1dExpbmVC
b3goVGV4dFN0cmVhbSYgc3RyZWFtLCBib29sIG1hcmssIGludCBkZXB0aCkgY29uc3QKKyAgICAg
c3RyZWFtLm5leHRMaW5lKCk7CisgfQorIAorK3ZvaWQgSW5saW5lQm94OjpvdXRwdXRTaW1wbGlm
aWVkTGluZVRyZWUoVGV4dFN0cmVhbSYgc3RyZWFtLCBpbnQgZGVwdGgpIGNvbnN0CisreworKyAg
ICBpbnQgcHJpbnRlZENoYXJhY3RlcnMgPSAwOworKyAgICB3aGlsZSAoKytwcmludGVkQ2hhcmFj
dGVycyA8PSBkZXB0aCkKKysgICAgICAgIHN0cmVhbSA8PCAiICI7CisrICAgIHN0cmVhbSA8PCBi
b3hOYW1lKCkgPDwgIiAiIDw8IEZsb2F0UmVjdCh4KCksIHkoKSwgd2lkdGgoKSwgaGVpZ2h0KCkp
OworKyAgICBzdHJlYW0ubmV4dExpbmUoKTsKKyt9CisrCisgI2VuZGlmIC8vIEVOQUJMRShUUkVF
X0RFQlVHR0lORykKKyAKKyBmbG9hdCBJbmxpbmVCb3g6OmxvZ2ljYWxIZWlnaHQoKSBjb25zdAor
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVCb3guaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVCb3guaAoraW5kZXggN2YxZGQ2Y2JiYTQuLmVkZGIw
NDg0NDBhIDEwMDY0NAorLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUJveC5o
CisrKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lQm94LmgKK0BAIC03OCw2ICs3
OCw3IEBAIHB1YmxpYzoKKyAgICAgdm9pZCBzaG93TGluZVRyZWVGb3JUaGlzKCkgY29uc3Q7Cisg
ICAgIAorICAgICB2aXJ0dWFsIHZvaWQgb3V0cHV0TGluZVRyZWVBbmRNYXJrKFdURjo6VGV4dFN0
cmVhbSYsIGNvbnN0IElubGluZUJveCogbWFya2VkQm94LCBpbnQgZGVwdGgpIGNvbnN0OworKyAg
ICB2aXJ0dWFsIHZvaWQgb3V0cHV0U2ltcGxpZmllZExpbmVUcmVlKFdURjo6VGV4dFN0cmVhbSYs
IGludCBkZXB0aCkgY29uc3Q7CisgICAgIHZpcnR1YWwgdm9pZCBvdXRwdXRMaW5lQm94KFdURjo6
VGV4dFN0cmVhbSYsIGJvb2wgbWFyaywgaW50IGRlcHRoKSBjb25zdDsKKyAgICAgdmlydHVhbCBj
b25zdCBjaGFyKiBib3hOYW1lKCkgY29uc3Q7CisgI2VuZGlmCitkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCitpbmRleCAwNjNmM2I2NDE4OS4uNTQ5NGFhYmU1NDYg
MTAwNjQ0CistLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5jcHAK
KysrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcAorQEAgLTE3
MjAsNiArMTcyMCwxMyBAQCB2b2lkIElubGluZUZsb3dCb3g6Om91dHB1dExpbmVUcmVlQW5kTWFy
ayhXVEY6OlRleHRTdHJlYW0mIHN0cmVhbSwgY29uc3QgSW5saW5lQgorICAgICAgICAgYm94LT5v
dXRwdXRMaW5lVHJlZUFuZE1hcmsoc3RyZWFtLCBtYXJrZWRCb3gsIGRlcHRoICsgMSk7CisgfQor
IAorK3ZvaWQgSW5saW5lRmxvd0JveDo6b3V0cHV0U2ltcGxpZmllZExpbmVUcmVlKFdURjo6VGV4
dFN0cmVhbSYgc3RyZWFtLCBpbnQgZGVwdGgpIGNvbnN0CisreworKyAgICBJbmxpbmVCb3g6Om91
dHB1dFNpbXBsaWZpZWRMaW5lVHJlZShzdHJlYW0sIGRlcHRoKTsKKysgICAgZm9yIChhdXRvKiBi
b3ggPSBmaXJzdENoaWxkKCk7IGJveDsgYm94ID0gYm94LT5uZXh0T25MaW5lKCkpCisrICAgICAg
ICBib3gtPm91dHB1dFNpbXBsaWZpZWRMaW5lVHJlZShzdHJlYW0sIGRlcHRoICsgMSk7CisrfQor
KworICNlbmRpZgorIAorICNpZm5kZWYgTkRFQlVHCitkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9J
bmxpbmVGbG93Qm94LmgKK2luZGV4IDBiMjY0NDQ5MDNmLi41OTUyMDNiMjAxZSAxMDA2NDQKKy0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmgKKysrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmgKK0BAIC03Miw2ICs3Miw3IEBAIHB1
YmxpYzoKKyAKKyAjaWYgRU5BQkxFKFRSRUVfREVCVUdHSU5HKQorICAgICB2b2lkIG91dHB1dExp
bmVUcmVlQW5kTWFyayhXVEY6OlRleHRTdHJlYW0mLCBjb25zdCBJbmxpbmVCb3gqIG1hcmtlZEJv
eCwgaW50IGRlcHRoKSBjb25zdCBvdmVycmlkZTsKKysgICAgdm9pZCBvdXRwdXRTaW1wbGlmaWVk
TGluZVRyZWUoV1RGOjpUZXh0U3RyZWFtJiwgaW50IGRlcHRoKSBjb25zdCBvdmVycmlkZTsKKyAg
ICAgY29uc3QgY2hhciogYm94TmFtZSgpIGNvbnN0IG92ZXJyaWRlOworICNlbmRpZgorIAorZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKK2luZGV4IDg1ZjM0
MDkwZGU1Li41MDNkNzFlYjg4ZSAxMDA2NDQKKy0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCbG9ja0Zsb3cuY3BwCisrKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2tGbG93LmNwcAorQEAgLTM2NTgsNiArMzY1OCwxMiBAQCB2b2lkIFJlbmRlckJsb2Nr
Rmxvdzo6b3V0cHV0TGluZVRyZWVBbmRNYXJrKFdURjo6VGV4dFN0cmVhbSYgc3RyZWFtLCBjb25z
dCBJbmxpbgorICAgICBpZiAoYXV0byBzaW1wbGVMaW5lTGF5b3V0ID0gdGhpcy0+c2ltcGxlTGlu
ZUxheW91dCgpKQorICAgICAgICAgU2ltcGxlTGluZUxheW91dDo6b3V0cHV0TGluZUxheW91dEZv
ckZsb3coc3RyZWFtLCAqdGhpcywgKnNpbXBsZUxpbmVMYXlvdXQsIGRlcHRoKTsKKyB9CisrCisr
dm9pZCBSZW5kZXJCbG9ja0Zsb3c6Om91dHB1dFNpbXBsaWZpZWRMaW5lVHJlZShXVEY6OlRleHRT
dHJlYW0mIHN0cmVhbSwgaW50IGRlcHRoKSBjb25zdAorK3sKKysgICAgZm9yIChhdXRvKiByb290
ID0gZmlyc3RSb290Qm94KCk7IHJvb3Q7IHJvb3QgPSByb290LT5uZXh0Um9vdEJveCgpKQorKyAg
ICAgICAgcm9vdC0+b3V0cHV0U2ltcGxpZmllZExpbmVUcmVlKHN0cmVhbSwgZGVwdGgpOworK30K
KyAjZW5kaWYKKyAKKyBSZW5kZXJCbG9ja0Zsb3c6OlJlbmRlckJsb2NrRmxvd1JhcmVEYXRhJiBS
ZW5kZXJCbG9ja0Zsb3c6OmVuc3VyZVJhcmVCbG9ja0Zsb3dEYXRhKCkKK2RpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmgKK2luZGV4IDUyZGM3ZGFkNGI1Li42OTZlNWE1
ZWU1YiAxMDA2NDQKKy0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zs
b3cuaAorKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5oCitA
QCAtMzYzLDYgKzM2Myw3IEBAIHB1YmxpYzoKKyAKKyAjaWYgRU5BQkxFKFRSRUVfREVCVUdHSU5H
KQorICAgICB2b2lkIG91dHB1dExpbmVUcmVlQW5kTWFyayhXVEY6OlRleHRTdHJlYW0mLCBjb25z
dCBJbmxpbmVCb3gqIG1hcmtlZEJveCwgaW50IGRlcHRoKSBjb25zdDsKKysgICAgdm9pZCBvdXRw
dXRTaW1wbGlmaWVkTGluZVRyZWUoV1RGOjpUZXh0U3RyZWFtJiwgaW50IGRlcHRoKSBjb25zdDsK
KyAjZW5kaWYKKyAKKyAgICAgLy8gUmV0dXJucyB0aGUgbG9naWNhbE9mZnNldCBhdCB0aGUgdG9w
IG9mIHRoZSBuZXh0IHBhZ2UuIElmIHRoZSBvZmZzZXQgcGFzc2VkIGluIGlzIGFscmVhZHkgYXQg
dGhlIHRvcCBvZiB0aGUgY3VycmVudCBwYWdlLAogZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck9iamVjdC5jcHAKLWluZGV4IGNhYzA1NTE2NDZiLi42OGY1YzMxNzI2MCAxMDA2NDQKK2lu
ZGV4IDA1NTViMWU3MTJmLi5lMWYxNTc4Yzk2YSAxMDA2NDQKIC0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCiArKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyT2JqZWN0LmNwcAotQEAgLTEwNyw3ICsxMDcsNyBAQCBzdHJ1Y3QgU2FtZVNpemVB
c1JlbmRlck9iamVjdCB7CitAQCAtMTA4LDcgKzEwOCw3IEBAIHN0cnVjdCBTYW1lU2l6ZUFzUmVu
ZGVyT2JqZWN0IHsKICAgICAgdW5zaWduZWQgbV9iaXRmaWVsZHM7CiAgfTsKICAKQEAgLTI2Nyw3
ICszODUsNyBAQCBpbmRleCBjYWMwNTUxNjQ2Yi4uNjhmNWMzMTcyNjAgMTAwNjQ0CiAgCiAgREVG
SU5FX0RFQlVHX09OTFlfR0xPQkFMKFdURjo6UmVmQ291bnRlZExlYWtDb3VudGVyLCByZW5kZXJP
YmplY3RDb3VudGVyLCAoIlJlbmRlck9iamVjdCIpKTsKICAKLUBAIC0xMjgsNiArMTI4LDggQEAg
UmVuZGVyT2JqZWN0OjpSZW5kZXJPYmplY3QoTm9kZSYgbm9kZSkKK0BAIC0xMjksNiArMTI5LDgg
QEAgUmVuZGVyT2JqZWN0OjpSZW5kZXJPYmplY3QoTm9kZSYgbm9kZSkKICAjZW5kaWYKICAgICAg
LCBtX2JpdGZpZWxkcyhub2RlKQogIHsKQEAgLTI3NiwxNCArMzk0LDE3IEBAIGluZGV4IGNhYzA1
NTE2NDZiLi42OGY1YzMxNzI2MCAxMDA2NDQKICAgICAgaWYgKFJlbmRlclZpZXcqIHJlbmRlclZp
ZXcgPSBub2RlLmRvY3VtZW50KCkucmVuZGVyVmlldygpKQogICAgICAgICAgcmVuZGVyVmlldy0+
ZGlkQ3JlYXRlUmVuZGVyZXIoKTsKICAjaWZuZGVmIE5ERUJVRwotQEAgLTExOTcsMTQgKzExOTks
NzggQEAgdm9pZCBSZW5kZXJPYmplY3Q6Om91dHB1dFJlbmRlck9iamVjdChUZXh0U3RyZWFtJiBz
dHJlYW0sIGJvb2wgbWFyaywgaW50IGRlcHRoKQorQEAgLTExOTcsMTQgKzExOTksODAgQEAgdm9p
ZCBSZW5kZXJPYmplY3Q6Om91dHB1dFJlbmRlck9iamVjdChUZXh0U3RyZWFtJiBzdHJlYW0sIGJv
b2wgbWFyaywgaW50IGRlcHRoKQogICAgICBzdHJlYW0ubmV4dExpbmUoKTsKICB9CiAgCiAtdm9p
ZCBSZW5kZXJPYmplY3Q6Om91dHB1dFJlbmRlclN1YlRyZWVBbmRNYXJrKFRleHRTdHJlYW0mIHN0
cmVhbSwgY29uc3QgUmVuZGVyT2JqZWN0KiBtYXJrZWRPYmplY3QsIGludCBkZXB0aCkgY29uc3QK
ICsKICt2b2lkIFJlbmRlck9iamVjdDo6cmVuZGVyU3VidHJlZVN0cnVjdHVyZShUZXh0U3RyZWFt
JiBzdHJlYW0pIGNvbnN0Ci0reworIHsKKy0gICAgb3V0cHV0UmVuZGVyT2JqZWN0KHN0cmVhbSwg
bWFya2VkT2JqZWN0ID09IHRoaXMsIGRlcHRoKTsKKy0gICAgaWYgKGlzPFJlbmRlckJsb2NrRmxv
dz4oKnRoaXMpKQorLSAgICAgICAgZG93bmNhc3Q8UmVuZGVyQmxvY2tGbG93PigqdGhpcykub3V0
cHV0TGluZVRyZWVBbmRNYXJrKHN0cmVhbSwgbnVsbHB0ciwgZGVwdGggKyAxKTsKICsgICAgb3V0
cHV0UmVuZGVyT2JqZWN0U3RydWN0dXJlKHN0cmVhbSk7CiArICAgIGZvciAoYXV0byogY2hpbGQg
PSBmaXJzdENoaWxkU2xvdygpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkK
ICsgICAgICAgIGNoaWxkLT5yZW5kZXJTdWJ0cmVlU3RydWN0dXJlKHN0cmVhbSk7CkBAIC0yOTEs
MTYgKzQxMiwxMyBAQCBpbmRleCBjYWMwNTUxNjQ2Yi4uNjhmNWMzMTcyNjAgMTAwNjQ0CiArCiAr
Ly8gMSgpUmVuZGVyVmlld3wyKDEpUmVuZGVyQmxvY2t8MygyKVJlbmRlckJvZHl8NCgzKVJlbmRl
ckJsb2NrfDUoMylBbm9ueW1vdXNSZW5kZXJCbG9ja3wKICt2b2lkIFJlbmRlck9iamVjdDo6b3V0
cHV0UmVuZGVyT2JqZWN0U3RydWN0dXJlKFdURjo6VGV4dFN0cmVhbSYgc3RyZWFtKSBjb25zdAot
IHsKLS0gICAgb3V0cHV0UmVuZGVyT2JqZWN0KHN0cmVhbSwgbWFya2VkT2JqZWN0ID09IHRoaXMs
IGRlcHRoKTsKLS0gICAgaWYgKGlzPFJlbmRlckJsb2NrRmxvdz4oKnRoaXMpKQotLSAgICAgICAg
ZG93bmNhc3Q8UmVuZGVyQmxvY2tGbG93PigqdGhpcykub3V0cHV0TGluZVRyZWVBbmRNYXJrKHN0
cmVhbSwgbnVsbHB0ciwgZGVwdGggKyAxKTsKKyt7CiArICAgIHN0cmVhbSA8PCByZW5kZXJJZCgp
OwogKyAgICBpZiAocGFyZW50KCkpCiArICAgICAgICBzdHJlYW0gPDwgIigiIDw8IHBhcmVudCgp
LT5yZW5kZXJJZCgpIDw8ICIpIjsKICsgICAgZWxzZQogKyAgICAgICAgc3RyZWFtIDw8ICIoKSI7
Ci0rCisgCiArICAgIFN0cmluZyBuYW1lID0gcmVuZGVyTmFtZSgpOwogKyAgICAvLyBGSVhNRTog
UmVuZGVyZXIncyBuYW1lIHNob3VsZCBub3QgaW5jbHVkZSBwcm9wZXJ0eSB2YWx1ZSBsaXN0aW5n
LgogKyAgICBpbnQgcG9zID0gbmFtZS5maW5kKCcoJyk7CkBAIC0zMTIsMTAgKzQzMCwxMiBAQCBp
bmRleCBjYWMwNTUxNjQ2Yi4uNjhmNWMzMTcyNjAgMTAwNjQ0CiArICAgICAgICBzdHJlYW0gPDwg
bmFtZS51dGY4KCkuZGF0YSgpOwogKyAgICBzdHJlYW0gPDwgInwiOwogK30KLSAKKysKICt2b2lk
IFJlbmRlck9iamVjdDo6c2ltcGxpZmllZFJlbmRlclN1YnRyZWUoVGV4dFN0cmVhbSYgc3RyZWFt
LCBpbnQgZGVwdGgpIGNvbnN0CiArewogKyAgICBvdXRwdXRTaW1wbGlmaWVkUmVuZGVyT2JqZWN0
KHN0cmVhbSwgZGVwdGgpOworKyAgICBpZiAoaXM8UmVuZGVyQmxvY2tGbG93PigqdGhpcykpCisr
ICAgICAgICBkb3duY2FzdDxSZW5kZXJCbG9ja0Zsb3c+KCp0aGlzKS5vdXRwdXRTaW1wbGlmaWVk
TGluZVRyZWUoc3RyZWFtLCBkZXB0aCArIDEpOwogICAgICBmb3IgKGF1dG8qIGNoaWxkID0gZmly
c3RDaGlsZFNsb3coKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpCiAtICAg
ICAgICBjaGlsZC0+b3V0cHV0UmVuZGVyU3ViVHJlZUFuZE1hcmsoc3RyZWFtLCBtYXJrZWRPYmpl
Y3QsIGRlcHRoICsgMSk7CiArICAgICAgICBjaGlsZC0+c2ltcGxpZmllZFJlbmRlclN1YnRyZWUo
c3RyZWFtLCBkZXB0aCArIDEpOwpAQCAtMzYxLDEwICs0ODEsMTAgQEAgaW5kZXggY2FjMDU1MTY0
NmIuLjY4ZjVjMzE3MjYwIDEwMDY0NAogIAogICNlbmRpZiAvLyBOREVCVUcKIGRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKLWluZGV4IGZjMDQ3YzVjMTRkLi44NTRkY2NmNzc3
OCAxMDA2NDQKK2luZGV4IDNjNGYxNWFhNGYxLi4zODNiYjQ2Yjg3NiAxMDA2NDQKIC0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAogKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCi1AQCAtMTEyLDYgKzExMiw5IEBAIHB1YmxpYzoK
K0BAIC0xMTMsNiArMTEzLDkgQEAgcHVibGljOgogIAogICAgICBhdXRvJiB3ZWFrUHRyRmFjdG9y
eSgpIGNvbnN0IHsgcmV0dXJuIG1fd2Vha0ZhY3Rvcnk7IH0KICAKQEAgLTM3NCw3ICs0OTQsNyBA
QCBpbmRleCBmYzA0N2M1YzE0ZC4uODU0ZGNjZjc3NzggMTAwNjQ0CiAgICAgIFJlbmRlclRoZW1l
JiB0aGVtZSgpIGNvbnN0OwogIAogICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUo
KSBjb25zdCA9IDA7Ci1AQCAtMjAyLDEwICsyMDUsMTYgQEAgcHVibGljOgorQEAgLTIwMywxMCAr
MjA2LDE2IEBAIHB1YmxpYzoKICAgICAgdm9pZCBzaG93Tm9kZVRyZWVGb3JUaGlzKCkgY29uc3Q7
CiAgICAgIHZvaWQgc2hvd1JlbmRlclRyZWVGb3JUaGlzKCkgY29uc3Q7CiAgICAgIHZvaWQgc2hv
d0xpbmVUcmVlRm9yVGhpcygpIGNvbnN0OwpAQCAtMzkxLDcgKzUxMSw3IEBAIGluZGV4IGZjMDQ3
YzVjMTRkLi44NTRkY2NmNzc3OCAxMDA2NDQKICAjZW5kaWYKICAKICAgICAgYm9vbCBpc1BzZXVk
b0VsZW1lbnQoKSBjb25zdCB7IHJldHVybiBub2RlKCkgJiYgbm9kZSgpLT5pc1BzZXVkb0VsZW1l
bnQoKTsgfQotQEAgLTgyOCw2ICs4MzcsNyBAQCBwcml2YXRlOgorQEAgLTgyOSw2ICs4MzgsNyBA
QCBwcml2YXRlOgogICNlbmRpZgogIAogICAgICBOb2RlJiBtX25vZGU7CkBAIC00MTYsNyArNTM2
LDcgQEAgaW5kZXggNmFlMDQ3YzQ2OWYuLjNhOWY0ODM5MzUyIDEwMDY0NAogIHsKICAgICAgcmV0
dXJuIGZhbHNlOwogZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5oCi1pbmRleCBmNDYy
OTBmNWRlYS4uNzFiNzI3NDc2OTkgMTAwNjQ0CitpbmRleCBlOWY3MjczMTBhZS4uNWZmZWE5Mzg5
YTggMTAwNjQ0CiAtLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5oCiAr
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5oCiBAQCAtNDUsNiArNDUs
OCBAQCBwdWJsaWM6CkBAIC00MjksMTAgKzU0OSwxOCBAQCBpbmRleCBmNDYyOTBmNWRlYS4uNzFi
NzI3NDc2OTkgMTAwNjQ0CiAgCiAgICAgIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSgpIGNvbnN0
OwogZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAotaW5kZXggNjc5NTlhZTcx
MWYuLjM0N2E1MWY4NzAzIDEwMDY0NAoraW5kZXggYzY5OWQ2NWEyNmYuLmIyZGI2YzIxYzAwIDEw
MDY0NAogLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCiArKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKLUBAIC05NTYsNCArOTU2
LDE5IEBAIHZvaWQgUmVuZGVyVmlldzo6dW5yZWdpc3RlckJveFdpdGhTY3JvbGxTbmFwUG9zaXRp
b25zKGNvbnN0IFJlbmRlckJveCYgYm94KQorQEAgLTU2LDYgKzU2LDcgQEAKKyAjaW5jbHVkZSA8
d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKyAjaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+Cisg
I2luY2x1ZGUgPHd0Zi9TdGFja1N0YXRzLmg+CisrI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRTdHJl
YW0uaD4KKyAKKyBuYW1lc3BhY2UgV2ViQ29yZSB7CisgCitAQCAtOTUzLDQgKzk1NCwxOSBAQCB2
b2lkIFJlbmRlclZpZXc6OnVucmVnaXN0ZXJCb3hXaXRoU2Nyb2xsU25hcFBvc2l0aW9ucyhjb25z
dCBSZW5kZXJCb3gmIGJveCkKICB9CiAgI2VuZGlmCiAgCkBAIC00NTMsNyArNTgxLDcgQEAgaW5k
ZXggNjc5NTlhZTcxMWYuLjM0N2E1MWY4NzAzIDEwMDY0NAogKwogIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIGRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaAotaW5kZXggOWM1YmI5ODk1
YzUuLjRiZWE1ZTM2MzBiIDEwMDY0NAoraW5kZXggMjk0NzM3ZGFhZDcuLmU0Yzc1MjQyMjdkIDEw
MDY0NAogLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaAogKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaAogQEAgLTE5OCw2ICsxOTgsOSBA
QCBwdWJsaWM6CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2luZGV4Lmh0
bWwgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC90ZXN0L2luZGV4Lmh0bWwKaW5kZXggNjI4YTdmMWEx
ZTdiZDVkOGQ3MDEwZTgwMTE2NWY5OWM5NzRkYWIzNC4uYjUyZjkyNzk2NjVmMWZhM2IxNWU4ODQz
OTRhMjc1ZmMxYjIzZmE3MCAxMDA2NDQKLS0tIGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvdGVzdC9p
bmRleC5odG1sCisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL3Rlc3QvaW5kZXguaHRtbApAQCAt
NjEsOCArNjEsNyBAQCBsZXQgdGVzdEZpbGVzID0gWwogICAgICJpbnRydWRpbmctbGVmdC1mbG9h
dC1zaW1wbGUuaHRtbCIKIF07CiAKLWxldCBkZWJ1Z1RoaXMgPSBbCi1dOworbGV0IGRlYnVnVGhp
cyA9IFtdOwogCiBmdW5jdGlvbiBhZGRKUyhmaWxlTmFtZSkgewogICAgIGxldCBzY3JpcHQgPSBk
b2N1bWVudC5jdXJyZW50U2NyaXB0LnNyYzsK
</data>

          </attachment>
      

    </bug>

</bugzilla>