<?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>64401</bug_id>
          
          <creation_ts>2011-07-12 15:11:49 -0700</creation_ts>
          <short_desc>REGRESSION(r90842): Causes crash in debug on compositing/overflow/content-gains-scrollbars.html (Requested by jamesr on #webkit).</short_desc>
          <delta_ts>2011-07-12 15:17:36 -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>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>58833</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>jamesr</cc>
    
    <cc>kbr</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>436007</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-12 15:11:49 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/90842 broke the build:
Causes crash in debug on compositing/overflow/content-gains-scrollbars.html (Requested by jamesr on #webkit).

This is an automatic bug report generated by the sheriff-bot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests case pain.

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436009</commentid>
    <comment_count>1</comment_count>
      <attachid>100573</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-12 15:12:15 -0700</bug_when>
    <thetext>Created attachment 100573
ROLLOUT of r90842

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID --ignore-builders

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436012</commentid>
    <comment_count>2</comment_count>
      <attachid>100573</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-12 15:17:31 -0700</bug_when>
    <thetext>Comment on attachment 100573
ROLLOUT of r90842

Clearing flags on attachment: 100573

Committed r90859: &lt;http://trac.webkit.org/changeset/90859&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436014</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-12 15:17:36 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100573</attachid>
            <date>2011-07-12 15:12:15 -0700</date>
            <delta_ts>2011-07-12 15:17:31 -0700</delta_ts>
            <desc>ROLLOUT of r90842</desc>
            <filename>bug-64401-20110712221122.patch</filename>
            <type>text/plain</type>
            <size>42871</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTA4NTYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1MzAyNDEyN2RkOTJhN2Mx
M2QyNGU1OTY5Y2Q4ZjA4ZDZkMTY0YjZkLi5iYTRkOTkwNjZjYjQ3ODFlZTlmZWI1NjY0NjUyMTY4
MDZjNDA0YzM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTkgQEAKKzIwMTEtMDctMTIgIFNoZXJp
ZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgorCisgICAgICAgIFVucmV2aWV3
ZWQsIHJvbGxpbmcgb3V0IHI5MDg0Mi4KKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9j
aGFuZ2VzZXQvOTA4NDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTY0NDAxCisKKyAgICAgICAgQ2F1c2VzIGNyYXNoIGluIGRlYnVnIG9uIGNvbXBvc2l0
aW5nL292ZXJmbG93L2NvbnRlbnQtZ2FpbnMtCisgICAgICAgIHNjcm9sbGJhcnMuaHRtbCAoUmVx
dWVzdGVkIGJ5IGphbWVzciBvbiAjd2Via2l0KS4KKworICAgICAgICAqIFdlYkNvcmUuZ3lwaToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50TGF5ZXJDaHJvbWl1bTo6Q29udGVudExh
eWVyQ2hyb21pdW0pOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudExheWVyQ2hyb21pdW06OnBh
aW50Q29udGVudHNJZkRpcnR5KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRMYXllckNocm9t
aXVtOjpjbGVhbnVwUmVzb3VyY2VzKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRMYXllckNo
cm9taXVtOjpzZXRMYXllclJlbmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRMYXll
ckNocm9taXVtOjp0aWxpbmdUcmFuc2Zvcm0pOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudExh
eWVyQ2hyb21pdW06OmNvbnRlbnRCb3VuZHMpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudExh
eWVyQ2hyb21pdW06OnVwZGF0ZUxheWVyU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50
TGF5ZXJDaHJvbWl1bTo6ZHJhdyk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50TGF5ZXJDaHJv
bWl1bTo6ZHJhd3NDb250ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRMYXllckNocm9t
aXVtOjpjcmVhdGVUaWxlcklmTmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRMYXll
ckNocm9taXVtOjp1cGRhdGVDb21wb3NpdG9yUmVzb3VyY2VzKToKKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRlbnRMYXllckNocm9taXVtOjpzZXRUaWxpbmdPcHRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6Q29udGVudExheWVyQ2hyb21pdW06OmJpbmRDb250ZW50c1RleHR1cmUpOgorICAgICAgICAo
V2ViQ29yZTo6Q29udGVudExheWVyQ2hyb21pdW06OnNldElzTWFzayk6CisgICAgICAgIChXZWJD
b3JlOjp3cml0ZUluZGVudCk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50TGF5ZXJDaHJvbWl1
bTo6ZHVtcExheWVyUHJvcGVydGllcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vQ29udGVudExheWVyQ2hyb21pdW0uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9JbWFnZUxheWVyQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1h
Z2VMYXllckNocm9taXVtOjpJbWFnZUxheWVyQ2hyb21pdW0pOgorICAgICAgICAoV2ViQ29yZTo6
SW1hZ2VMYXllckNocm9taXVtOjpwYWludENvbnRlbnRzSWZEaXJ0eSk6CisgICAgICAgIChXZWJD
b3JlOjpJbWFnZUxheWVyQ2hyb21pdW06OnVwZGF0ZUNvbXBvc2l0b3JSZXNvdXJjZXMpOgorICAg
ICAgICAoV2ViQ29yZTo6SW1hZ2VMYXllckNocm9taXVtOjpjb250ZW50Qm91bmRzKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JbWFnZUxheWVyQ2hyb21pdW0uaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkltYWdlTGF5ZXJDaHJvbWl1bTo6ZHJhd3NDb250ZW50KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkxheWVyQ2hyb21pdW06OnB1c2hQcm9wZXJ0aWVzVG8pOgorICAgICAgICAo
V2ViQ29yZTo6TGF5ZXJDaHJvbWl1bTo6Y2NMYXllckltcGwpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uaDoKKyAgICAgICAgKFdlYkNvcmU6Okxh
eWVyQ2hyb21pdW06OmRyYXcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXllclJlbmRl
cmVyQ2hyb21pdW06OmRyYXdSb290TGF5ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0xheWVyVGlsZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXll
clRpbGVyQ2hyb21pdW06OnVwZGF0ZVJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJUaWxl
ckNocm9taXVtOjpkcmF3KToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyVGlsZXJDaHJvbWl1bTo6
ZHJhd1RpbGVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclRp
bGVyQ2hyb21pdW0uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxl
ZExheWVyQ2hyb21pdW0uY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL1RpbGVkTGF5ZXJDaHJvbWl1bS5oOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNDTGF5ZXJJbXBsOjpkcmF3c0NvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXll
ckltcGw6OmRyYXcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
TGF5ZXJJbXBsLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NU
aWxlZExheWVySW1wbC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NUaWxlZExheWVySW1wbC5oOiBSZW1vdmVkLgorCiAyMDExLTA3LTEyICBK
b3NlcGggUGVjb3Jhcm8gIDxqb2VwZWNrQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQXBwbGljYXRp
b25DYWNoZSB1cGRhdGUgc2hvdWxkIG5vdCBpbW1lZGlhdGVseSBmYWlsIHdoZW4gcmVhY2hpbmcg
cGVyLW9yaWdpbiBxdW90YQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDcwYzRkOWE1MmE3OTRkM2UwYmFk
YzdjOTRjOTc0NGMwOGQyYzlhZDQuLjVkZjZmMGViYzc0MmY5YTE0YTY3NWExZjYyMDM1MTE2ZDRm
YTNiNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTQxNDAsOCArNDE0MCw2IEBACiAgICAgICAgICAg
ICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vU2ltcGxlRm9udERhdGFMaW51eC5jcHAnLAog
ICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RleHR1cmVNYW5hZ2VyLmNw
cCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGV4dHVyZU1hbmFn
ZXIuaCcsCi0gICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGlsZWRMYXll
ckNocm9taXVtLmNwcCcsCi0gICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
VGlsZWRMYXllckNocm9taXVtLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL1RyYW5zcGFyZW5jeVdpbi5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL1RyYW5zcGFyZW5jeVdpbi5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9UcmVlU3luY2hyb25pemVyLmNwcCcsCkBAIC00MTgzLDggKzQxODEs
NiBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFk
LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJl
YWQuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJl
YWRUYXNrLmgnLAotICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
VGlsZWRMYXllckltcGwuY3BwJywKLSAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ1RpbGVkTGF5ZXJJbXBsLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDVmlkZW9MYXllckltcGwuY3BwJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1ZpZGVvTGF5ZXJJbXBsLmgnLAogICAgICAgICAg
ICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRQbGF0Zm9ybURhdGFDb2NvYS5tbScsCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db250
ZW50TGF5ZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1bS5jcHAKaW5kZXggODU0Mjg3MDQ4NDI3NWU1NTc3
MTcxMzc0NzIzNDFiNWQyMTAxZWQ5Yi4uMGZiYjRjMjJkMTFmM2I0YjU1MTYzMjI2MDIyMTQzMmVh
N2MwN2UwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vQ29udGVudExheWVyQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbnRlbnRMYXllckNocm9taXVtLmNwcApAQCAtMzQsMTIg
KzM0LDI2IEBACiAKICNpbmNsdWRlICJDb250ZW50TGF5ZXJDaHJvbWl1bS5oIgogCisjaW5jbHVk
ZSAiY2MvQ0NMYXllckltcGwuaCIKKyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQzRC5oIgogI2lu
Y2x1ZGUgIkxheWVyUGFpbnRlckNocm9taXVtLmgiCiAjaW5jbHVkZSAiTGF5ZXJSZW5kZXJlckNo
cm9taXVtLmgiCisjaW5jbHVkZSAiTGF5ZXJUZXh0dXJlLmgiCiAjaW5jbHVkZSAiTGF5ZXJUZXh0
dXJlVXBkYXRlckNhbnZhcy5oIgorI2luY2x1ZGUgIkxheWVyVGlsZXJDaHJvbWl1bS5oIgogI2lu
Y2x1ZGUgIlBsYXRmb3JtQnJpZGdlLmgiCisjaW5jbHVkZSAiUmVuZGVyTGF5ZXJCYWNraW5nLmgi
CisjaW5jbHVkZSAiVGV4dFN0cmVhbS5oIgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgog
CisvLyBTdGFydCB0aWxpbmcgd2hlbiB0aGUgd2lkdGggYW5kIGhlaWdodCBvZiBhIGxheWVyIGFy
ZSBsYXJnZXIgdGhhbiB0aGlzIHNpemUuCitzdGF0aWMgaW50IG1heFVudGlsZWRTaXplID0gNTEw
OworCisvLyBXaGVuIHRpbGluZyBpcyBlbmFibGVkLCB1c2UgdGlsZXMgb2YgdGhpcyBkaW1lbnNp
b24gc3F1YXJlZC4KK3N0YXRpYyBpbnQgZGVmYXVsdFRpbGVTaXplID0gMjU2OworCit1c2luZyBu
YW1lc3BhY2Ugc3RkOworCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENvbnRlbnRMYXll
clBhaW50ZXIgOiBwdWJsaWMgTGF5ZXJQYWludGVyQ2hyb21pdW0gewpAQCAtNzYsNyArOTAsOSBA
QCBQYXNzUmVmUHRyPENvbnRlbnRMYXllckNocm9taXVtPiBDb250ZW50TGF5ZXJDaHJvbWl1bTo6
Y3JlYXRlKEdyYXBoaWNzTGF5ZXJDaHJvbQogfQogCiBDb250ZW50TGF5ZXJDaHJvbWl1bTo6Q29u
dGVudExheWVyQ2hyb21pdW0oR3JhcGhpY3NMYXllckNocm9taXVtKiBvd25lcikKLSAgICA6IFRp
bGVkTGF5ZXJDaHJvbWl1bShvd25lcikKKyAgICA6IExheWVyQ2hyb21pdW0ob3duZXIpCisgICAg
LCBtX3RpbGluZ09wdGlvbihDb250ZW50TGF5ZXJDaHJvbWl1bTo6QXV0b1RpbGUpCisgICAgLCBt
X2JvcmRlclRleGVscyh0cnVlKQogewogfQogCkBAIC05MCw3ICsxMDYsNyBAQCB2b2lkIENvbnRl
bnRMYXllckNocm9taXVtOjpwYWludENvbnRlbnRzSWZEaXJ0eSgpCiAgICAgQVNTRVJUKGRyYXdz
Q29udGVudCgpKTsKICAgICBBU1NFUlQobGF5ZXJSZW5kZXJlcigpKTsKIAotICAgIHVwZGF0ZVRp
bGVTaXplQW5kVGlsaW5nT3B0aW9uKCk7CisgICAgdXBkYXRlTGF5ZXJTaXplKCk7CiAKICAgICBj
b25zdCBJbnRSZWN0JiBsYXllclJlY3QgPSB2aXNpYmxlTGF5ZXJSZWN0KCk7CiAgICAgaWYgKGxh
eWVyUmVjdC5pc0VtcHR5KCkpCkBAIC0xMDMsMTMgKzExOSwyMSBAQCB2b2lkIENvbnRlbnRMYXll
ckNocm9taXVtOjpwYWludENvbnRlbnRzSWZEaXJ0eSgpCiAgICAgaWYgKCFkcmF3c0NvbnRlbnQo
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV90aWxlci0+cHJlcGFyZVRvVXBkYXRlKGxheWVy
UmVjdCwgdGV4dHVyZVVwZGF0ZXIoKSk7CisgICAgbV90aWxlci0+cHJlcGFyZVRvVXBkYXRlKGxh
eWVyUmVjdCwgbV90ZXh0dXJlVXBkYXRlci5nZXQoKSk7CiAgICAgbV9kaXJ0eVJlY3QgPSBGbG9h
dFJlY3QoKTsKIH0KIAotYm9vbCBDb250ZW50TGF5ZXJDaHJvbWl1bTo6ZHJhd3NDb250ZW50KCkg
Y29uc3QKK3ZvaWQgQ29udGVudExheWVyQ2hyb21pdW06OmNsZWFudXBSZXNvdXJjZXMoKQogewot
ICAgIHJldHVybiBtX293bmVyICYmIG1fb3duZXItPmRyYXdzQ29udGVudCgpICYmIFRpbGVkTGF5
ZXJDaHJvbWl1bTo6ZHJhd3NDb250ZW50KCk7CisgICAgbV90ZXh0dXJlVXBkYXRlci5jbGVhcigp
OworICAgIG1fdGlsZXIuY2xlYXIoKTsKKyAgICBMYXllckNocm9taXVtOjpjbGVhbnVwUmVzb3Vy
Y2VzKCk7Cit9CisKK3ZvaWQgQ29udGVudExheWVyQ2hyb21pdW06OnNldExheWVyUmVuZGVyZXIo
TGF5ZXJSZW5kZXJlckNocm9taXVtKiBsYXllclJlbmRlcmVyKQoreworICAgIExheWVyQ2hyb21p
dW06OnNldExheWVyUmVuZGVyZXIobGF5ZXJSZW5kZXJlcik7CisgICAgY3JlYXRlVGlsZXJJZk5l
ZWRlZCgpOwogfQogCiB2b2lkIENvbnRlbnRMYXllckNocm9taXVtOjpjcmVhdGVUZXh0dXJlVXBk
YXRlcklmTmVlZGVkKCkKQEAgLTEyNSw1ICsxNDksMTMyIEBAIHZvaWQgQ29udGVudExheWVyQ2hy
b21pdW06OmNyZWF0ZVRleHR1cmVVcGRhdGVySWZOZWVkZWQoKQogICAgIG1fdGV4dHVyZVVwZGF0
ZXIgPSBMYXllclRleHR1cmVVcGRhdGVyQml0bWFwOjpjcmVhdGUobGF5ZXJSZW5kZXJlckNvbnRl
eHQoKSwgQ29udGVudExheWVyUGFpbnRlcjo6Y3JlYXRlKG1fb3duZXIpLCBsYXllclJlbmRlcmVy
KCktPmNvbnRleHRTdXBwb3J0c01hcFN1YigpKTsKIH0KIAorVHJhbnNmb3JtYXRpb25NYXRyaXgg
Q29udGVudExheWVyQ2hyb21pdW06OnRpbGluZ1RyYW5zZm9ybSgpCit7CisgICAgVHJhbnNmb3Jt
YXRpb25NYXRyaXggdHJhbnNmb3JtID0gY2NMYXllckltcGwoKS0+ZHJhd1RyYW5zZm9ybSgpOwor
CisgICAgaWYgKGNvbnRlbnRCb3VuZHMoKS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiB0cmFu
c2Zvcm07CisKKyAgICB0cmFuc2Zvcm0uc2NhbGVOb25Vbmlmb3JtKGJvdW5kcygpLndpZHRoKCkg
LyBzdGF0aWNfY2FzdDxkb3VibGU+KGNvbnRlbnRCb3VuZHMoKS53aWR0aCgpKSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGJvdW5kcygpLmhlaWdodCgpIC8gc3RhdGljX2Nhc3Q8ZG91
YmxlPihjb250ZW50Qm91bmRzKCkuaGVpZ2h0KCkpKTsKKworICAgIC8vIFRpbGVyIGRyYXdzIHdp
dGggYSBkaWZmZXJlbnQgb3JpZ2luIGZyb20gb3RoZXIgbGF5ZXJzLgorICAgIHRyYW5zZm9ybS50
cmFuc2xhdGUoLWNvbnRlbnRCb3VuZHMoKS53aWR0aCgpIC8gMi4wLCAtY29udGVudEJvdW5kcygp
LmhlaWdodCgpIC8gMi4wKTsKKworICAgIHJldHVybiB0cmFuc2Zvcm07Cit9CisKK0ludFNpemUg
Q29udGVudExheWVyQ2hyb21pdW06OmNvbnRlbnRCb3VuZHMoKSBjb25zdAoreworICAgIHJldHVy
biBib3VuZHMoKTsKK30KKwordm9pZCBDb250ZW50TGF5ZXJDaHJvbWl1bTo6dXBkYXRlTGF5ZXJT
aXplKCkKK3sKKyAgICBpZiAoIW1fdGlsZXIpCisgICAgICAgIHJldHVybjsKKworICAgIGNvbnN0
IEludFNpemUgdGlsZVNpemUoZGVmYXVsdFRpbGVTaXplLCBkZWZhdWx0VGlsZVNpemUpOworCisg
ICAgLy8gVGlsZSBpZiBib3RoIGRpbWVuc2lvbnMgbGFyZ2UsIG9yIGFueSBvbmUgZGltZW5zaW9u
IGxhcmdlIGFuZCB0aGUgb3RoZXIKKyAgICAvLyBleHRlbmRzIGludG8gYSBzZWNvbmQgdGlsZS4g
VGhpcyBoZXVyaXN0aWMgYWxsb3dzIGZvciBsb25nIHNraW5ueSBsYXllcnMKKyAgICAvLyAoZS5n
LiBzY3JvbGxiYXJzKSB0aGF0IGFyZSBOeDEgdGlsZXMgdG8gbWluaW1pemUgd2FzdGVkIHRleHR1
cmUgc3BhY2UuCisgICAgY29uc3QgYm9vbCBhbnlEaW1lbnNpb25MYXJnZSA9IGNvbnRlbnRCb3Vu
ZHMoKS53aWR0aCgpID4gbWF4VW50aWxlZFNpemUgfHwgY29udGVudEJvdW5kcygpLmhlaWdodCgp
ID4gbWF4VW50aWxlZFNpemU7CisgICAgY29uc3QgYm9vbCBhbnlEaW1lbnNpb25PbmVUaWxlID0g
Y29udGVudEJvdW5kcygpLndpZHRoKCkgPD0gZGVmYXVsdFRpbGVTaXplIHx8IGNvbnRlbnRCb3Vu
ZHMoKS5oZWlnaHQoKSA8PSBkZWZhdWx0VGlsZVNpemU7CisgICAgY29uc3QgYm9vbCBhdXRvVGls
ZWQgPSBhbnlEaW1lbnNpb25MYXJnZSAmJiAhYW55RGltZW5zaW9uT25lVGlsZTsKKworICAgIGJv
b2wgaXNUaWxlZDsKKyAgICBpZiAobV90aWxpbmdPcHRpb24gPT0gQWx3YXlzVGlsZSkKKyAgICAg
ICAgaXNUaWxlZCA9IHRydWU7CisgICAgZWxzZSBpZiAobV90aWxpbmdPcHRpb24gPT0gTmV2ZXJU
aWxlKQorICAgICAgICBpc1RpbGVkID0gZmFsc2U7CisgICAgZWxzZQorICAgICAgICBpc1RpbGVk
ID0gYXV0b1RpbGVkOworCisgICAgLy8gRW1wdHkgdGlsZSBzaXplIHRlbGxzIHRoZSB0aWxlciB0
byBhdm9pZCB0aWxpbmcuCisgICAgSW50U2l6ZSByZXF1ZXN0ZWRTaXplID0gaXNUaWxlZCA/IHRp
bGVTaXplIDogSW50U2l6ZSgpOworICAgIGNvbnN0IGludCBtYXhTaXplID0gbGF5ZXJSZW5kZXJl
cigpLT5tYXhUZXh0dXJlU2l6ZSgpOworICAgIEludFNpemUgY2xhbXBlZFNpemUgPSByZXF1ZXN0
ZWRTaXplLnNocnVua1RvKEludFNpemUobWF4U2l6ZSwgbWF4U2l6ZSkpOworICAgIG1fdGlsZXIt
PnNldFRpbGVTaXplKGNsYW1wZWRTaXplKTsKK30KKwordm9pZCBDb250ZW50TGF5ZXJDaHJvbWl1
bTo6ZHJhdygpCit7CisgICAgY29uc3QgSW50UmVjdCYgbGF5ZXJSZWN0ID0gdmlzaWJsZUxheWVy
UmVjdCgpOworICAgIGlmICghbGF5ZXJSZWN0LmlzRW1wdHkoKSkKKyAgICAgICAgbV90aWxlci0+
ZHJhdyhsYXllclJlY3QsIHRpbGluZ1RyYW5zZm9ybSgpLCBjY0xheWVySW1wbCgpLT5kcmF3T3Bh
Y2l0eSgpLCBtX3RleHR1cmVVcGRhdGVyLmdldCgpKTsKK30KKworYm9vbCBDb250ZW50TGF5ZXJD
aHJvbWl1bTo6ZHJhd3NDb250ZW50KCkgY29uc3QKK3sKKyAgICBpZiAoIW1fb3duZXIgfHwgIW1f
b3duZXItPmRyYXdzQ29udGVudCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAo
IW1fdGlsZXIpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgaWYgKG1fdGlsaW5nT3B0aW9u
ID09IE5ldmVyVGlsZSAmJiBtX3RpbGVyLT5udW1UaWxlcygpID4gMSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgcmV0dXJuICFtX3RpbGVyLT5za2lwc0RyYXcoKTsKK30KKwordm9pZCBD
b250ZW50TGF5ZXJDaHJvbWl1bTo6Y3JlYXRlVGlsZXJJZk5lZWRlZCgpCit7CisgICAgaWYgKG1f
dGlsZXIpCisgICAgICAgIHJldHVybjsKKworICAgIGNyZWF0ZVRleHR1cmVVcGRhdGVySWZOZWVk
ZWQoKTsKKworICAgIG1fdGlsZXIgPSBMYXllclRpbGVyQ2hyb21pdW06OmNyZWF0ZSgKKyAgICAg
ICAgbGF5ZXJSZW5kZXJlcigpLAorICAgICAgICBJbnRTaXplKGRlZmF1bHRUaWxlU2l6ZSwgZGVm
YXVsdFRpbGVTaXplKSwKKyAgICAgICAgbV9ib3JkZXJUZXhlbHMgPyBMYXllclRpbGVyQ2hyb21p
dW06Okhhc0JvcmRlclRleGVscyA6CisgICAgICAgIExheWVyVGlsZXJDaHJvbWl1bTo6Tm9Cb3Jk
ZXJUZXhlbHMpOworfQorCit2b2lkIENvbnRlbnRMYXllckNocm9taXVtOjp1cGRhdGVDb21wb3Np
dG9yUmVzb3VyY2VzKCkKK3sKKyAgICBtX3RpbGVyLT51cGRhdGVSZWN0KG1fdGV4dHVyZVVwZGF0
ZXIuZ2V0KCkpOworfQorCit2b2lkIENvbnRlbnRMYXllckNocm9taXVtOjpzZXRUaWxpbmdPcHRp
b24oVGlsaW5nT3B0aW9uIG9wdGlvbikKK3sKKyAgICBtX3RpbGluZ09wdGlvbiA9IG9wdGlvbjsK
KyAgICB1cGRhdGVMYXllclNpemUoKTsKK30KKwordm9pZCBDb250ZW50TGF5ZXJDaHJvbWl1bTo6
YmluZENvbnRlbnRzVGV4dHVyZSgpCit7CisgICAgLy8gVGhpcyBmdW5jdGlvbiBpcyBvbmx5IHZh
bGlkIGZvciBzaW5nbGUgdGV4dHVyZSBsYXllcnMsIGUuZy4gbWFza3MuCisgICAgQVNTRVJUKG1f
dGlsaW5nT3B0aW9uID09IE5ldmVyVGlsZSk7CisgICAgQVNTRVJUKG1fdGlsZXIpOworCisgICAg
TGF5ZXJUZXh0dXJlKiB0ZXh0dXJlID0gbV90aWxlci0+Z2V0U2luZ2xlVGV4dHVyZSgpOworICAg
IEFTU0VSVCh0ZXh0dXJlKTsKKworICAgIHRleHR1cmUtPmJpbmRUZXh0dXJlKCk7Cit9CisKK3Zv
aWQgQ29udGVudExheWVyQ2hyb21pdW06OnNldElzTWFzayhib29sIGlzTWFzaykKK3sKKyAgICBt
X2JvcmRlclRleGVscyA9IGZhbHNlOworICAgIHNldFRpbGluZ09wdGlvbihpc01hc2sgPyBOZXZl
clRpbGUgOiBBdXRvVGlsZSk7Cit9CisKK3N0YXRpYyB2b2lkIHdyaXRlSW5kZW50KFRleHRTdHJl
YW0mIHRzLCBpbnQgaW5kZW50KQoreworICAgIGZvciAoaW50IGkgPSAwOyBpICE9IGluZGVudDsg
KytpKQorICAgICAgICB0cyA8PCAiICAiOworfQorCit2b2lkIENvbnRlbnRMYXllckNocm9taXVt
OjpkdW1wTGF5ZXJQcm9wZXJ0aWVzKFRleHRTdHJlYW0mIHRzLCBpbnQgaW5kZW50KSBjb25zdAor
eworICAgIExheWVyQ2hyb21pdW06OmR1bXBMYXllclByb3BlcnRpZXModHMsIGluZGVudCk7Cisg
ICAgd3JpdGVJbmRlbnQodHMsIGluZGVudCk7CisgICAgdHMgPDwgInNraXBzRHJhdzogIiA8PCAo
IW1fdGlsZXIgfHwgbV90aWxlci0+c2tpcHNEcmF3KCkpIDw8ICJcbiI7Cit9CisKIH0KICNlbmRp
ZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1bS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29udGVudExheWVyQ2hy
b21pdW0uaAppbmRleCBlMGJiZGVkYTgyNmE2NjYwMzVlYjk2MjM0MmRhOTc1NjU4YTE3MjNjLi40
ZDkyMjVmY2NiZjFlOTczNzQwZmU5ZDExNDU1MDkzYjEyZDZjZjAxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1
bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbnRl
bnRMYXllckNocm9taXVtLmgKQEAgLTM0LDggKzM0LDcgQEAKIAogI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKIAotI2luY2x1ZGUgIlRpbGVkTGF5ZXJDaHJvbWl1bS5oIgotI2luY2x1
ZGUgImNjL0NDVGlsZWRMYXllckltcGwuaCIKKyNpbmNsdWRlICJMYXllckNocm9taXVtLmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDQsMjQgKzQzLDQ1IEBAIGNsYXNzIExheWVyVGls
ZXJDaHJvbWl1bTsKIGNsYXNzIExheWVyVGV4dHVyZVVwZGF0ZXI7CiAKIC8vIEEgTGF5ZXIgdGhh
dCByZXF1aXJlcyBhIEdyYXBoaWNzQ29udGV4dCB0byByZW5kZXIgaXRzIGNvbnRlbnRzLgotY2xh
c3MgQ29udGVudExheWVyQ2hyb21pdW0gOiBwdWJsaWMgVGlsZWRMYXllckNocm9taXVtIHsKK2Ns
YXNzIENvbnRlbnRMYXllckNocm9taXVtIDogcHVibGljIExheWVyQ2hyb21pdW0geworICAgIGZy
aWVuZCBjbGFzcyBMYXllclJlbmRlcmVyQ2hyb21pdW07CiBwdWJsaWM6CisgICAgZW51bSBUaWxp
bmdPcHRpb24geyBBbHdheXNUaWxlLCBOZXZlclRpbGUsIEF1dG9UaWxlIH07CisKICAgICBzdGF0
aWMgUGFzc1JlZlB0cjxDb250ZW50TGF5ZXJDaHJvbWl1bT4gY3JlYXRlKEdyYXBoaWNzTGF5ZXJD
aHJvbWl1bSogb3duZXIgPSAwKTsKIAogICAgIHZpcnR1YWwgfkNvbnRlbnRMYXllckNocm9taXVt
KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50c0lmRGlydHkoKTsKKyAgICB2aXJ0
dWFsIHZvaWQgdXBkYXRlQ29tcG9zaXRvclJlc291cmNlcygpOworICAgIHZpcnR1YWwgdm9pZCBz
ZXRJc01hc2soYm9vbCk7CisgICAgdmlydHVhbCB2b2lkIGJpbmRDb250ZW50c1RleHR1cmUoKTsK
KworICAgIHZpcnR1YWwgdm9pZCBkcmF3KCk7CisgICAgdmlydHVhbCBib29sIGRyYXdzQ29udGVu
dCgpIGNvbnN0OwogCi1wcml2YXRlOgorcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IENvbnRlbnRM
YXllckNocm9taXVtKEdyYXBoaWNzTGF5ZXJDaHJvbWl1bSogb3duZXIpOwogCiAgICAgdmlydHVh
bCBjb25zdCBjaGFyKiBsYXllclR5cGVBc1N0cmluZygpIGNvbnN0IHsgcmV0dXJuICJDb250ZW50
TGF5ZXIiOyB9CisgICAgdmlydHVhbCB2b2lkIGR1bXBMYXllclByb3BlcnRpZXMoVGV4dFN0cmVh
bSYsIGludCBpbmRlbnQpIGNvbnN0OwogCi0gICAgdmlydHVhbCBib29sIGRyYXdzQ29udGVudCgp
IGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBjbGVhbnVwUmVzb3VyY2VzKCk7CisgICAgdmlydHVh
bCB2b2lkIHNldExheWVyUmVuZGVyZXIoTGF5ZXJSZW5kZXJlckNocm9taXVtKik7CisKKyAgICB2
aXJ0dWFsIEludFNpemUgY29udGVudEJvdW5kcygpIGNvbnN0OworCisgICAgVHJhbnNmb3JtYXRp
b25NYXRyaXggdGlsaW5nVHJhbnNmb3JtKCk7CisKKyAgICB2b2lkIHVwZGF0ZUxheWVyU2l6ZSgp
OworICAgIHZvaWQgY3JlYXRlVGlsZXJJZk5lZWRlZCgpOwogICAgIHZpcnR1YWwgdm9pZCBjcmVh
dGVUZXh0dXJlVXBkYXRlcklmTmVlZGVkKCk7Ci0gICAgdmlydHVhbCBMYXllclRleHR1cmVVcGRh
dGVyKiB0ZXh0dXJlVXBkYXRlcigpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dHVyZVVwZGF0ZXIuZ2V0
KCk7IH0KKyAgICB2b2lkIHNldFRpbGluZ09wdGlvbihUaWxpbmdPcHRpb24pOwogCiAgICAgT3du
UHRyPExheWVyVGV4dHVyZVVwZGF0ZXI+IG1fdGV4dHVyZVVwZGF0ZXI7CisgICAgT3duUHRyPExh
eWVyVGlsZXJDaHJvbWl1bT4gbV90aWxlcjsKKyAgICBUaWxpbmdPcHRpb24gbV90aWxpbmdPcHRp
b247CisgICAgYm9vbCBtX2JvcmRlclRleGVsczsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ltYWdlTGF5ZXJDaHJvbWl1bS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JbWFnZUxheWVy
Q2hyb21pdW0uY3BwCmluZGV4IGYyNDhmMmMxNjI1NjQ5ODA5MTZlMDlkYjRiNTllY2RlM2MxNDAy
NWMuLjYzODVmYzNmMWZkMWExYTQ3ODYzNjFmMTMxNzExOWY0MmQwOTRlNDUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ltYWdlTGF5ZXJDaHJv
bWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
SW1hZ2VMYXllckNocm9taXVtLmNwcApAQCAtMTE1LDggKzExNSw5IEBAIFBhc3NSZWZQdHI8SW1h
Z2VMYXllckNocm9taXVtPiBJbWFnZUxheWVyQ2hyb21pdW06OmNyZWF0ZShHcmFwaGljc0xheWVy
Q2hyb21pdW0qCiB9CiAKIEltYWdlTGF5ZXJDaHJvbWl1bTo6SW1hZ2VMYXllckNocm9taXVtKEdy
YXBoaWNzTGF5ZXJDaHJvbWl1bSogb3duZXIpCi0gICAgOiBUaWxlZExheWVyQ2hyb21pdW0ob3du
ZXIpCisgICAgOiBDb250ZW50TGF5ZXJDaHJvbWl1bShvd25lcikKICAgICAsIG1faW1hZ2VGb3JD
dXJyZW50RnJhbWUoMCkKKyAgICAsIG1fY29udGVudHMoMCkKIHsKIH0KIApAQCAtMTI0LDEyICsx
MjUsNiBAQCBJbWFnZUxheWVyQ2hyb21pdW06On5JbWFnZUxheWVyQ2hyb21pdW0oKQogewogfQog
Ci12b2lkIEltYWdlTGF5ZXJDaHJvbWl1bTo6Y2xlYW51cFJlc291cmNlcygpCi17Ci0gICAgbV90
ZXh0dXJlVXBkYXRlci5jbGVhcigpOwotICAgIFRpbGVkTGF5ZXJDaHJvbWl1bTo6Y2xlYW51cFJl
c291cmNlcygpOwotfQotCiB2b2lkIEltYWdlTGF5ZXJDaHJvbWl1bTo6c2V0Q29udGVudHMoSW1h
Z2UqIGNvbnRlbnRzKQogewogICAgIC8vIHNldENvbnRlbnRzKCkgY3VycmVudGx5IGdldHMgY2Fs
bGVkIHdoZW5ldmVyIHRoZXJlIGlzIGFueQpAQCAtMTUwLDggKzE0NSwxMCBAQCB2b2lkIEltYWdl
TGF5ZXJDaHJvbWl1bTo6cGFpbnRDb250ZW50c0lmRGlydHkoKQogICAgIEFTU0VSVChsYXllclJl
bmRlcmVyKCkpOwogCiAgICAgaWYgKCFtX2RpcnR5UmVjdC5pc0VtcHR5KCkpIHsKLSAgICAgICAg
bV90ZXh0dXJlVXBkYXRlci0+dXBkYXRlRnJvbUltYWdlKG1fY29udGVudHMtPm5hdGl2ZUltYWdl
Rm9yQ3VycmVudEZyYW1lKCkpOwotICAgICAgICB1cGRhdGVUaWxlU2l6ZUFuZFRpbGluZ09wdGlv
bigpOworICAgICAgICAvLyBGSVhNRTogVGhpcyBkb3duY2FzdCBpcyBiYWQuIFRoZSBmaXggaXMg
dG8gbWFrZSBJbWFnZUxheWVyQ2hyb21pdW0gbm90IGRlcml2ZSBmcm9tIENvbnRlbnRMYXllckNo
cm9taXVtLgorICAgICAgICBJbWFnZUxheWVyVGV4dHVyZVVwZGF0ZXIqIGltYWdlVGV4dHVyZVVw
ZGF0ZXIgPSBzdGF0aWNfY2FzdDxJbWFnZUxheWVyVGV4dHVyZVVwZGF0ZXIqPihtX3RleHR1cmVV
cGRhdGVyLmdldCgpKTsKKyAgICAgICAgaW1hZ2VUZXh0dXJlVXBkYXRlci0+dXBkYXRlRnJvbUlt
YWdlKG1fY29udGVudHMtPm5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCkpOworICAgICAgICB1
cGRhdGVMYXllclNpemUoKTsKICAgICAgICAgSW50UmVjdCBwYWludFJlY3QoSW50UG9pbnQoKSwg
Y29udGVudEJvdW5kcygpKTsKICAgICAgICAgaWYgKCFtX2RpcnR5UmVjdC5pc0VtcHR5KCkpIHsK
ICAgICAgICAgICAgIG1fdGlsZXItPmludmFsaWRhdGVSZWN0KHBhaW50UmVjdCk7CkBAIC0xNTks
MjcgKzE1NiwxMiBAQCB2b2lkIEltYWdlTGF5ZXJDaHJvbWl1bTo6cGFpbnRDb250ZW50c0lmRGly
dHkoKQogICAgICAgICB9CiAgICAgfQogCi0gICAgaWYgKHZpc2libGVMYXllclJlY3QoKS5pc0Vt
cHR5KCkpCi0gICAgICAgIHJldHVybjsKLQogICAgIG1fdGlsZXItPnByZXBhcmVUb1VwZGF0ZSh2
aXNpYmxlTGF5ZXJSZWN0KCksIG1fdGV4dHVyZVVwZGF0ZXIuZ2V0KCkpOwogfQogCi1MYXllclRl
eHR1cmVVcGRhdGVyKiBJbWFnZUxheWVyQ2hyb21pdW06OnRleHR1cmVVcGRhdGVyKCkgY29uc3QK
LXsKLSAgICByZXR1cm4gbV90ZXh0dXJlVXBkYXRlci5nZXQoKTsKLX0KLQotSW50U2l6ZSBJbWFn
ZUxheWVyQ2hyb21pdW06OmNvbnRlbnRCb3VuZHMoKSBjb25zdAotewotICAgIGlmICghbV9jb250
ZW50cykKLSAgICAgICAgcmV0dXJuIEludFNpemUoKTsKLSAgICByZXR1cm4gbV9jb250ZW50cy0+
c2l6ZSgpOwotfQotCi1ib29sIEltYWdlTGF5ZXJDaHJvbWl1bTo6ZHJhd3NDb250ZW50KCkgY29u
c3QKK3ZvaWQgSW1hZ2VMYXllckNocm9taXVtOjp1cGRhdGVDb21wb3NpdG9yUmVzb3VyY2VzKCkK
IHsKLSAgICByZXR1cm4gbV9jb250ZW50cyAmJiBUaWxlZExheWVyQ2hyb21pdW06OmRyYXdzQ29u
dGVudCgpOworICAgIG1fdGlsZXItPnVwZGF0ZVJlY3QobV90ZXh0dXJlVXBkYXRlci5nZXQoKSk7
CiB9CiAKIHZvaWQgSW1hZ2VMYXllckNocm9taXVtOjpjcmVhdGVUZXh0dXJlVXBkYXRlcklmTmVl
ZGVkKCkKQEAgLTE4OCw1ICsxNzAsMTAgQEAgdm9pZCBJbWFnZUxheWVyQ2hyb21pdW06OmNyZWF0
ZVRleHR1cmVVcGRhdGVySWZOZWVkZWQoKQogICAgICAgICBtX3RleHR1cmVVcGRhdGVyID0gSW1h
Z2VMYXllclRleHR1cmVVcGRhdGVyOjpjcmVhdGUobGF5ZXJSZW5kZXJlckNvbnRleHQoKSwgbGF5
ZXJSZW5kZXJlcigpLT5jb250ZXh0U3VwcG9ydHNNYXBTdWIoKSk7CiB9CiAKK0ludFNpemUgSW1h
Z2VMYXllckNocm9taXVtOjpjb250ZW50Qm91bmRzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9j
b250ZW50cy0+c2l6ZSgpOworfQorCiB9CiAjZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vSW1hZ2VMYXllckNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9JbWFnZUxheWVyQ2hyb21pdW0uaAppbmRleCA5OTUzMzgwOTkzZGNjMmE5
MDJmNWM2ZjA5MWViZTUzNTVjY2MxYjE3Li42YTc0NzYxMGY3OTBlZjU2MDY4NmU4MWNlZDNjYTIw
NjllMDU2NjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9JbWFnZUxheWVyQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9JbWFnZUxheWVyQ2hyb21pdW0uaApAQCAtNDQsMzYgKzQ0LDMx
IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEltYWdlOwotY2xhc3MgSW1hZ2VMYXll
clRleHR1cmVVcGRhdGVyOwogCiAvLyBBIExheWVyIHRoYXQgY29udGFpbnMgb25seSBhbiBJbWFn
ZSBlbGVtZW50LgotY2xhc3MgSW1hZ2VMYXllckNocm9taXVtIDogcHVibGljIFRpbGVkTGF5ZXJD
aHJvbWl1bSB7CitjbGFzcyBJbWFnZUxheWVyQ2hyb21pdW0gOiBwdWJsaWMgQ29udGVudExheWVy
Q2hyb21pdW0gewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEltYWdlTGF5ZXJDaHJv
bWl1bT4gY3JlYXRlKEdyYXBoaWNzTGF5ZXJDaHJvbWl1bSogb3duZXIgPSAwKTsKICAgICB2aXJ0
dWFsIH5JbWFnZUxheWVyQ2hyb21pdW0oKTsKIAotICAgIHZpcnR1YWwgYm9vbCBkcmF3c0NvbnRl
bnQoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50c0lmRGlydHkoKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgdXBkYXRlQ29tcG9zaXRvclJlc291cmNlcygpOworICAgIHZpcnR1YWwg
Ym9vbCBkcmF3c0NvbnRlbnQoKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnRzOyB9CiAKICAgICB2
b2lkIHNldENvbnRlbnRzKEltYWdlKiBpbWFnZSk7CiAKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFs
IGNvbnN0IGNoYXIqIGxheWVyVHlwZUFzU3RyaW5nKCkgY29uc3QgeyByZXR1cm4gIkltYWdlTGF5
ZXIiOyB9CiAKKyAgICB2aXJ0dWFsIEludFNpemUgY29udGVudEJvdW5kcygpIGNvbnN0OworCiBw
cml2YXRlOgogICAgIEltYWdlTGF5ZXJDaHJvbWl1bShHcmFwaGljc0xheWVyQ2hyb21pdW0qIG93
bmVyKTsKIAotICAgIHZpcnR1YWwgdm9pZCBjbGVhbnVwUmVzb3VyY2VzKCk7CiAgICAgdmlydHVh
bCB2b2lkIGNyZWF0ZVRleHR1cmVVcGRhdGVySWZOZWVkZWQoKTsKLSAgICB2b2lkIHNldFRpbGlu
Z09wdGlvbihUaWxpbmdPcHRpb24pOwotCi0gICAgdmlydHVhbCBMYXllclRleHR1cmVVcGRhdGVy
KiB0ZXh0dXJlVXBkYXRlcigpIGNvbnN0OwotICAgIHZpcnR1YWwgSW50U2l6ZSBjb250ZW50Qm91
bmRzKCkgY29uc3Q7CiAKICAgICBOYXRpdmVJbWFnZVB0ciBtX2ltYWdlRm9yQ3VycmVudEZyYW1l
OwogICAgIFJlZlB0cjxJbWFnZT4gbV9jb250ZW50czsKLQotICAgIE93blB0cjxJbWFnZUxheWVy
VGV4dHVyZVVwZGF0ZXI+IG1fdGV4dHVyZVVwZGF0ZXI7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21p
dW0uY3BwCmluZGV4IDFkODczZGMxZmFlNmYwMTYzOWU1M2FiYWZiMWM3ZTFjOWZjZjQzNmYuLjRj
OThjNDhlZDNlOGU4ZWQ4NjNlMDg3MjJlNTFhNzc1OWFkYWYwYTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21p
dW0uY3BwCkBAIC0yOTUsNyArMjk1LDYgQEAgdm9pZCBMYXllckNocm9taXVtOjpwdXNoUHJvcGVy
dGllc1RvKENDTGF5ZXJJbXBsKiBsYXllcikKICAgICBsYXllci0+c2V0RGVidWdCb3JkZXJDb2xv
cihtX2RlYnVnQm9yZGVyQ29sb3IpOwogICAgIGxheWVyLT5zZXREZWJ1Z0JvcmRlcldpZHRoKG1f
ZGVidWdCb3JkZXJXaWR0aCk7CiAgICAgbGF5ZXItPnNldERvdWJsZVNpZGVkKG1fZG91YmxlU2lk
ZWQpOwotICAgIGxheWVyLT5zZXREcmF3c0NvbnRlbnQoZHJhd3NDb250ZW50KCkpOwogICAgIGxh
eWVyLT5zZXRMYXllclJlbmRlcmVyKG1fbGF5ZXJSZW5kZXJlci5nZXQoKSk7CiAgICAgbGF5ZXIt
PnNldE1hc2tzVG9Cb3VuZHMobV9tYXNrc1RvQm91bmRzKTsKICAgICBsYXllci0+c2V0TmFtZSht
X25hbWUpOwpAQCAtMzg0LDcgKzM4Myw3IEBAIFBhc3NSZWZQdHI8Q0NMYXllckltcGw+IExheWVy
Q2hyb21pdW06OmNyZWF0ZUNDTGF5ZXJJbXBsKCkKICAgICByZXR1cm4gQ0NMYXllckltcGw6OmNy
ZWF0ZSh0aGlzLCBtX2xheWVySWQpOwogfQogCi1DQ0xheWVySW1wbCogTGF5ZXJDaHJvbWl1bTo6
Y2NMYXllckltcGwoKSBjb25zdAorQ0NMYXllckltcGwqIExheWVyQ2hyb21pdW06OmNjTGF5ZXJJ
bXBsKCkKIHsKICAgICByZXR1cm4gbV9jY0xheWVySW1wbDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uaApp
bmRleCAzYmE3YjlmMGRiMGNmOTcxYWI5NjhkNjFiOWMzMGEwMWRlZjcyM2FiLi5kNDYzOTAzMzQx
ZWNkN2ViZWVhYzBiNDRmMzA5MDFiNGQyMzFlYTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5oCkBAIC0x
NjEsNiArMTYxLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRJc01hc2soYm9vbCkg
e30KICAgICB2aXJ0dWFsIHZvaWQgdW5yZXNlcnZlQ29udGVudHNUZXh0dXJlKCkgeyB9CiAgICAg
dmlydHVhbCB2b2lkIGJpbmRDb250ZW50c1RleHR1cmUoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
ZHJhdygpIHsgfQogCiAgICAgLy8gVGhlc2UgZXhpc3RzIGp1c3QgZm9yIGRlYnVnZ2luZyAodmlh
IGRyYXdEZWJ1Z0JvcmRlcigpKS4KICAgICB2b2lkIHNldEJvcmRlckNvbG9yKGNvbnN0IENvbG9y
Jik7CkBAIC0xNzEsNyArMTcyLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Qm9yZGVyV2lkdGgo
ZmxvYXQpOwogCiAgICAgLy8gRXZlcnl0aGluZyBmcm9tIGhlcmUgZG93biBpbiB0aGUgcHVibGlj
IHNlY3Rpb24gd2lsbCBtb3ZlIHRvIENDTGF5ZXJJbXBsLgotICAgIENDTGF5ZXJJbXBsKiBjY0xh
eWVySW1wbCgpIGNvbnN0OworICAgIENDTGF5ZXJJbXBsKiBjY0xheWVySW1wbCgpOwogCiAgICAg
c3RhdGljIHZvaWQgZHJhd1RleHR1cmVkUXVhZChHcmFwaGljc0NvbnRleHQzRCosIGNvbnN0IFRy
YW5zZm9ybWF0aW9uTWF0cml4JiBwcm9qZWN0aW9uTWF0cml4LCBjb25zdCBUcmFuc2Zvcm1hdGlv
bk1hdHJpeCYgbGF5ZXJNYXRyaXgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm
bG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0LCBmbG9hdCBvcGFjaXR5LApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9t
aXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVy
UmVuZGVyZXJDaHJvbWl1bS5jcHAKaW5kZXggNGNlY2ZjMWFmMTYxZDJiMzA0YzBhNDU0N2NhMDUw
MjI2ZjcxZjMyYy4uM2VmNTIyMjFhOGUwMTY5OWMyYzllOGU3NTExNDYzZWZmODIzNTIxNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJS
ZW5kZXJlckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwCkBAIC0yMjcsNyArMjI3LDcgQEAg
dm9pZCBMYXllclJlbmRlcmVyQ2hyb21pdW06OmRyYXdSb290TGF5ZXIoKQogICAgIFRyYW5zZm9y
bWF0aW9uTWF0cml4IHNjcm9sbDsKICAgICBzY3JvbGwudHJhbnNsYXRlKC1tX3ZpZXdwb3J0Vmlz
aWJsZVJlY3QueCgpLCAtbV92aWV3cG9ydFZpc2libGVSZWN0LnkoKSk7CiAKLSAgICBtX3Jvb3RM
YXllckNvbnRlbnRUaWxlci0+ZHJhdyhtX3ZpZXdwb3J0VmlzaWJsZVJlY3QsIHNjcm9sbCwgMS4w
Zik7CisgICAgbV9yb290TGF5ZXJDb250ZW50VGlsZXItPmRyYXcobV92aWV3cG9ydFZpc2libGVS
ZWN0LCBzY3JvbGwsIDEuMGYsIG1fcm9vdExheWVyVGV4dHVyZVVwZGF0ZXIuZ2V0KCkpOwogfQog
CiB2b2lkIExheWVyUmVuZGVyZXJDaHJvbWl1bTo6c2V0Vmlld3BvcnQoY29uc3QgSW50UmVjdCYg
dmlzaWJsZVJlY3QsIGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0LCBjb25zdCBJbnRQb2ludCYg
c2Nyb2xsUG9zaXRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9MYXllclRpbGVyQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUaWxlckNocm9taXVtLmNwcAppbmRleCBjYWI0
Y2JlNTliZDQzNzljODQ2NmVjZjRlNzA1ZDFlYTRkYjA0NTI5Li42NzY3ZDdjZGJlMmFhNDJiMmRi
NzY3MDQyOTkyOGVkMGRkZTEyYjMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclRpbGVyQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyVGlsZXJDaHJvbWl1bS5jcHAK
QEAgLTMyNiw4ICszMjYsNiBAQCB2b2lkIExheWVyVGlsZXJDaHJvbWl1bTo6dXBkYXRlUmVjdChM
YXllclRleHR1cmVVcGRhdGVyKiB0ZXh0dXJlVXBkYXRlcikKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQgPSBsYXllclJlbmRlcmVyQ29udGV4dCgpOwot
ICAgIG1fdGV4dHVyZU9yaWVudGF0aW9uID0gdGV4dHVyZVVwZGF0ZXItPm9yaWVudGF0aW9uKCk7
Ci0gICAgbV9zYW1wbGVkVGV4ZWxGb3JtYXQgPSB0ZXh0dXJlVXBkYXRlci0+c2FtcGxlZFRleGVs
Rm9ybWF0KG1fdGV4dHVyZUZvcm1hdCk7CiAKICAgICBpbnQgbGVmdCwgdG9wLCByaWdodCwgYm90
dG9tOwogICAgIGNvbnRlbnRSZWN0VG9UaWxlSW5kaWNlcyhtX3VwZGF0ZVJlY3QsIGxlZnQsIHRv
cCwgcmlnaHQsIGJvdHRvbSk7CkBAIC0zODcsMTcgKzM4NSwxNyBAQCB2b2lkIExheWVyVGlsZXJD
aHJvbWl1bTo6c2V0TGF5ZXJQb3NpdGlvbihjb25zdCBJbnRQb2ludCYgbGF5ZXJQb3NpdGlvbikK
ICAgICBtX2xheWVyUG9zaXRpb24gPSBsYXllclBvc2l0aW9uOwogfQogCi12b2lkIExheWVyVGls
ZXJDaHJvbWl1bTo6ZHJhdyhjb25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCwgY29uc3QgVHJhbnNm
b3JtYXRpb25NYXRyaXgmIGdsb2JhbFRyYW5zZm9ybSwgZmxvYXQgb3BhY2l0eSkKK3ZvaWQgTGF5
ZXJUaWxlckNocm9taXVtOjpkcmF3KGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0LCBjb25zdCBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCYgZ2xvYmFsVHJhbnNmb3JtLCBmbG9hdCBvcGFjaXR5LCBMYXll
clRleHR1cmVVcGRhdGVyKiB0ZXh0dXJlVXBkYXRlcikKIHsKICAgICBpZiAobV9za2lwc0RyYXcg
fHwgIW1fdGlsZXMuc2l6ZSgpIHx8IGNvbnRlbnRSZWN0LmlzRW1wdHkoKSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgc3dpdGNoIChtX3NhbXBsZWRUZXhlbEZvcm1hdCkgeworICAgIHN3aXRjaCAo
dGV4dHVyZVVwZGF0ZXItPnNhbXBsZWRUZXhlbEZvcm1hdChtX3RleHR1cmVGb3JtYXQpKSB7CiAg
ICAgY2FzZSBMYXllclRleHR1cmVVcGRhdGVyOjpTYW1wbGVkVGV4ZWxGb3JtYXRSR0JBOgotICAg
ICAgICBkcmF3VGlsZXMoY29udGVudFJlY3QsIGdsb2JhbFRyYW5zZm9ybSwgb3BhY2l0eSwgbGF5
ZXJSZW5kZXJlcigpLT50aWxlclByb2dyYW0oKSk7CisgICAgICAgIGRyYXdUaWxlcyhjb250ZW50
UmVjdCwgZ2xvYmFsVHJhbnNmb3JtLCBvcGFjaXR5LCBsYXllclJlbmRlcmVyKCktPnRpbGVyUHJv
Z3JhbSgpLCB0ZXh0dXJlVXBkYXRlcik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTGF5ZXJU
ZXh0dXJlVXBkYXRlcjo6U2FtcGxlZFRleGVsRm9ybWF0QkdSQToKLSAgICAgICAgZHJhd1RpbGVz
KGNvbnRlbnRSZWN0LCBnbG9iYWxUcmFuc2Zvcm0sIG9wYWNpdHksIGxheWVyUmVuZGVyZXIoKS0+
dGlsZXJQcm9ncmFtU3dpenpsZSgpKTsKKyAgICAgICAgZHJhd1RpbGVzKGNvbnRlbnRSZWN0LCBn
bG9iYWxUcmFuc2Zvcm0sIG9wYWNpdHksIGxheWVyUmVuZGVyZXIoKS0+dGlsZXJQcm9ncmFtU3dp
enpsZSgpLCB0ZXh0dXJlVXBkYXRlcik7CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtNDU1LDcgKzQ1Myw3IEBAIHN0YXRpYyBG
bG9hdFBvaW50IGludGVyc2VjdChjb25zdCBFZGdlJiBhLCBjb25zdCBFZGdlJiBiKQogfQogCiB0
ZW1wbGF0ZSA8Y2xhc3MgVD4KLXZvaWQgTGF5ZXJUaWxlckNocm9taXVtOjpkcmF3VGlsZXMoY29u
c3QgSW50UmVjdCYgY29udGVudFJlY3QsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBnbG9i
YWxUcmFuc2Zvcm0sIGZsb2F0IG9wYWNpdHksIGNvbnN0IFQqIHByb2dyYW0pCit2b2lkIExheWVy
VGlsZXJDaHJvbWl1bTo6ZHJhd1RpbGVzKGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0LCBjb25z
dCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgZ2xvYmFsVHJhbnNmb3JtLCBmbG9hdCBvcGFjaXR5LCBj
b25zdCBUKiBwcm9ncmFtLCBMYXllclRleHR1cmVVcGRhdGVyKiB0ZXh0dXJlVXBkYXRlcikKIHsK
ICAgICBHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCA9IGxheWVyUmVuZGVyZXJDb250ZXh0KCk7
CiAgICAgR0xDKGNvbnRleHQsIGNvbnRleHQtPnVzZVByb2dyYW0ocHJvZ3JhbS0+cHJvZ3JhbSgp
KSk7CkBAIC01NDksNyArNTQ3LDcgQEAgdm9pZCBMYXllclRpbGVyQ2hyb21pdW06OmRyYXdUaWxl
cyhjb25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCwgY29uc3QgVHJhbnNmb3JtYXQKICAgICAgICAg
ICAgIGZsb2F0IHRleFNjYWxlWSA9IHRpbGVSZWN0LmhlaWdodCgpIC8gdGlsZUhlaWdodDsKICAg
ICAgICAgICAgIC8vIE9wZW5HTCBjb29yZGluYXRlIHN5c3RlbSBpcyBib3R0b20tdXAuCiAgICAg
ICAgICAgICAvLyBJZiB0aWxlIHRleHR1cmUgaXMgdG9wLWRvd24sIHdlIG5lZWQgdG8gZmxpcCB0
aGUgdGV4dHVyZSBjb29yZGluYXRlcy4KLSAgICAgICAgICAgIGlmIChtX3RleHR1cmVPcmllbnRh
dGlvbiA9PSBMYXllclRleHR1cmVVcGRhdGVyOjpUb3BEb3duT3JpZW50YXRpb24pIHsKKyAgICAg
ICAgICAgIGlmICh0ZXh0dXJlVXBkYXRlci0+b3JpZW50YXRpb24oKSA9PSBMYXllclRleHR1cmVV
cGRhdGVyOjpUb3BEb3duT3JpZW50YXRpb24pIHsKICAgICAgICAgICAgICAgICB0ZXhUcmFuc2xh
dGVZID0gMS4wIC0gdGV4VHJhbnNsYXRlWTsKICAgICAgICAgICAgICAgICB0ZXhTY2FsZVkgKj0g
LTEuMDsKICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0xheWVyVGlsZXJDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUaWxlckNocm9taXVtLmgKaW5kZXggMGVm
MTFhMjU1YWQxYjUxNDMzNDg1MjhkOTk4MzRlZWU3MjQ2N2QyNS4uOWVlMDEyMWFmNzRiNjRmODk4
ZTdhNzhjNmMxMWY2ODM0NmFmYzA5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUaWxlckNocm9taXVtLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUaWxlckNocm9taXVtLmgKQEAg
LTMxLDcgKzMxLDYgQEAKIAogI2luY2x1ZGUgIkxheWVyQ2hyb21pdW0uaCIKICNpbmNsdWRlICJM
YXllclRleHR1cmUuaCIKLSNpbmNsdWRlICJMYXllclRleHR1cmVVcGRhdGVyLmgiCiAjaW5jbHVk
ZSAiVGlsaW5nRGF0YS5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoVHJhaXRzLmg+CiAjaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWQuaD4KQEAgLTYwLDcgKzU5LDcgQEAgcHVibGljOgogICAgIC8vIFVwZGF0
ZSBpbnZhbGlkIHRleHR1cmVzIHRoYXQgaW50ZXJzZWN0IHdpdGggY29udGVudFJlY3QgcHJvdmlk
ZWQgaW4gcHJlcGFyZVRvVXBkYXRlKCkuCiAgICAgdm9pZCB1cGRhdGVSZWN0KExheWVyVGV4dHVy
ZVVwZGF0ZXIqKTsKICAgICAvLyBEcmF3IGFsbCB0aWxlcyB0aGF0IGludGVyc2VjdCB3aXRoIHRo
ZSBjb250ZW50IHJlY3QuCi0gICAgdm9pZCBkcmF3KGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0
LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGZsb2F0IG9wYWNpdHkpOworICAgIHZvaWQg
ZHJhdyhjb25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRy
aXgmLCBmbG9hdCBvcGFjaXR5LCBMYXllclRleHR1cmVVcGRhdGVyKik7CiAKICAgICBpbnQgbnVt
VGlsZXMoKSBjb25zdCB7IHJldHVybiBtX3RpbGluZ0RhdGEubnVtVGlsZXMoKTsgfQogCkBAIC0x
MTAsNyArMTA5LDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIERyYXcgYWxsIHRpbGVzIHRoYXQgaW50
ZXJzZWN0IHdpdGggY29udGVudFJlY3QuCiAgICAgdGVtcGxhdGUgPGNsYXNzIFQ+Ci0gICAgdm9p
ZCBkcmF3VGlsZXMoY29uc3QgSW50UmVjdCYgY29udGVudFJlY3QsIGNvbnN0IFRyYW5zZm9ybWF0
aW9uTWF0cml4JiwgZmxvYXQgb3BhY2l0eSwgY29uc3QgVCogcHJvZ3JhbSk7CisgICAgdm9pZCBk
cmF3VGlsZXMoY29uc3QgSW50UmVjdCYgY29udGVudFJlY3QsIGNvbnN0IFRyYW5zZm9ybWF0aW9u
TWF0cml4JiwgZmxvYXQgb3BhY2l0eSwgY29uc3QgVCogcHJvZ3JhbSwgTGF5ZXJUZXh0dXJlVXBk
YXRlciopOwogCiAgICAgdGVtcGxhdGUgPGNsYXNzIFQ+CiAgICAgdm9pZCBkcmF3VGV4dHVyZWRR
dWFkKEdyYXBoaWNzQ29udGV4dDNEKiwgY29uc3QgRmxvYXRRdWFkJiwgY29uc3QgVHJhbnNmb3Jt
YXRpb25NYXRyaXgmIHByb2plY3Rpb25NYXRyaXgsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4
JiBkcmF3TWF0cml4LApAQCAtMTY2LDggKzE2NSw2IEBAIHByaXZhdGU6CiAgICAgSW50UmVjdCBt
X3BhaW50UmVjdDsKICAgICBJbnRSZWN0IG1fdXBkYXRlUmVjdDsKIAotICAgIExheWVyVGV4dHVy
ZVVwZGF0ZXI6Ok9yaWVudGF0aW9uIG1fdGV4dHVyZU9yaWVudGF0aW9uOwotICAgIExheWVyVGV4
dHVyZVVwZGF0ZXI6OlNhbXBsZWRUZXhlbEZvcm1hdCBtX3NhbXBsZWRUZXhlbEZvcm1hdDsKICAg
ICBUaWxpbmdEYXRhIG1fdGlsaW5nRGF0YTsKIAogICAgIExheWVyUmVuZGVyZXJDaHJvbWl1bSog
bV9sYXllclJlbmRlcmVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vVGlsZWRMYXllckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RpbGVkTGF5ZXJDaHJvbWl1bS5jcHAKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNlOWU2ZGQwNDhmMjIxNWQyODk0OTE3NTkzNDFkN2UzNzZi
YzBkMjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGlsZWRMYXllckNocm9taXVt
LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDE5MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRS
SUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNv
bmZpZy5oIgotCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCi0jaW5jbHVkZSAi
VGlsZWRMYXllckNocm9taXVtLmgiCi0KLSNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQzRC5oIgot
I2luY2x1ZGUgIkxheWVyUmVuZGVyZXJDaHJvbWl1bS5oIgotI2luY2x1ZGUgIkxheWVyVGlsZXJD
aHJvbWl1bS5oIgotI2luY2x1ZGUgIlRleHRTdHJlYW0uaCIKLSNpbmNsdWRlICJjYy9DQ0xheWVy
SW1wbC5oIgotI2luY2x1ZGUgImNjL0NDVGlsZWRMYXllckltcGwuaCIKLSNpbmNsdWRlIDx3dGYv
Q3VycmVudFRpbWUuaD4KLQotLy8gU3RhcnQgdGlsaW5nIHdoZW4gdGhlIHdpZHRoIGFuZCBoZWln
aHQgb2YgYSBsYXllciBhcmUgbGFyZ2VyIHRoYW4gdGhpcyBzaXplLgotc3RhdGljIGludCBtYXhV
bnRpbGVkU2l6ZSA9IDUxMDsKLQotLy8gV2hlbiB0aWxpbmcgaXMgZW5hYmxlZCwgdXNlIHRpbGVz
IG9mIHRoaXMgZGltZW5zaW9uIHNxdWFyZWQuCi1zdGF0aWMgaW50IGRlZmF1bHRUaWxlU2l6ZSA9
IDI1NjsKLQotdXNpbmcgbmFtZXNwYWNlIHN0ZDsKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1U
aWxlZExheWVyQ2hyb21pdW06OlRpbGVkTGF5ZXJDaHJvbWl1bShHcmFwaGljc0xheWVyQ2hyb21p
dW0qIG93bmVyKQotICAgIDogTGF5ZXJDaHJvbWl1bShvd25lcikKLSAgICAsIG1fdGlsaW5nT3B0
aW9uKEF1dG9UaWxlKQotICAgICwgbV9ib3JkZXJUZXhlbHModHJ1ZSkKLXsKLX0KLQotVGlsZWRM
YXllckNocm9taXVtOjp+VGlsZWRMYXllckNocm9taXVtKCkKLXsKLX0KLQotUGFzc1JlZlB0cjxD
Q0xheWVySW1wbD4gVGlsZWRMYXllckNocm9taXVtOjpjcmVhdGVDQ0xheWVySW1wbCgpCi17Ci0g
ICAgcmV0dXJuIENDVGlsZWRMYXllckltcGw6OmNyZWF0ZSh0aGlzLCBpZCgpKTsKLX0KLQotdm9p
ZCBUaWxlZExheWVyQ2hyb21pdW06OmNsZWFudXBSZXNvdXJjZXMoKQotewotICAgIG1fdGlsZXIu
Y2xlYXIoKTsKLSAgICBMYXllckNocm9taXVtOjpjbGVhbnVwUmVzb3VyY2VzKCk7Ci19Ci0KLXZv
aWQgVGlsZWRMYXllckNocm9taXVtOjpzZXRMYXllclJlbmRlcmVyKExheWVyUmVuZGVyZXJDaHJv
bWl1bSogbGF5ZXJSZW5kZXJlcikKLXsKLSAgICBMYXllckNocm9taXVtOjpzZXRMYXllclJlbmRl
cmVyKGxheWVyUmVuZGVyZXIpOwotICAgIGNyZWF0ZVRpbGVySWZOZWVkZWQoKTsKLX0KLQotdm9p
ZCBUaWxlZExheWVyQ2hyb21pdW06OnVwZGF0ZVRpbGVTaXplQW5kVGlsaW5nT3B0aW9uKCkKLXsK
LSAgICBpZiAoIW1fdGlsZXIpCi0gICAgICAgIHJldHVybjsKLQotICAgIGNvbnN0IEludFNpemUg
dGlsZVNpemUoZGVmYXVsdFRpbGVTaXplLCBkZWZhdWx0VGlsZVNpemUpOwotCi0gICAgLy8gVGls
ZSBpZiBib3RoIGRpbWVuc2lvbnMgbGFyZ2UsIG9yIGFueSBvbmUgZGltZW5zaW9uIGxhcmdlIGFu
ZCB0aGUgb3RoZXIKLSAgICAvLyBleHRlbmRzIGludG8gYSBzZWNvbmQgdGlsZS4gVGhpcyBoZXVy
aXN0aWMgYWxsb3dzIGZvciBsb25nIHNraW5ueSBsYXllcnMKLSAgICAvLyAoZS5nLiBzY3JvbGxi
YXJzKSB0aGF0IGFyZSBOeDEgdGlsZXMgdG8gbWluaW1pemUgd2FzdGVkIHRleHR1cmUgc3BhY2Uu
Ci0gICAgY29uc3QgYm9vbCBhbnlEaW1lbnNpb25MYXJnZSA9IGNvbnRlbnRCb3VuZHMoKS53aWR0
aCgpID4gbWF4VW50aWxlZFNpemUgfHwgY29udGVudEJvdW5kcygpLmhlaWdodCgpID4gbWF4VW50
aWxlZFNpemU7Ci0gICAgY29uc3QgYm9vbCBhbnlEaW1lbnNpb25PbmVUaWxlID0gY29udGVudEJv
dW5kcygpLndpZHRoKCkgPD0gZGVmYXVsdFRpbGVTaXplIHx8IGNvbnRlbnRCb3VuZHMoKS5oZWln
aHQoKSA8PSBkZWZhdWx0VGlsZVNpemU7Ci0gICAgY29uc3QgYm9vbCBhdXRvVGlsZWQgPSBhbnlE
aW1lbnNpb25MYXJnZSAmJiAhYW55RGltZW5zaW9uT25lVGlsZTsKLQotICAgIGJvb2wgaXNUaWxl
ZDsKLSAgICBpZiAobV90aWxpbmdPcHRpb24gPT0gQWx3YXlzVGlsZSkKLSAgICAgICAgaXNUaWxl
ZCA9IHRydWU7Ci0gICAgZWxzZSBpZiAobV90aWxpbmdPcHRpb24gPT0gTmV2ZXJUaWxlKQotICAg
ICAgICBpc1RpbGVkID0gZmFsc2U7Ci0gICAgZWxzZQotICAgICAgICBpc1RpbGVkID0gYXV0b1Rp
bGVkOwotCi0gICAgLy8gRW1wdHkgdGlsZSBzaXplIHRlbGxzIHRoZSB0aWxlciB0byBhdm9pZCB0
aWxpbmcuCi0gICAgSW50U2l6ZSByZXF1ZXN0ZWRTaXplID0gaXNUaWxlZCA/IHRpbGVTaXplIDog
SW50U2l6ZSgpOwotICAgIGNvbnN0IGludCBtYXhTaXplID0gbGF5ZXJSZW5kZXJlcigpLT5tYXhU
ZXh0dXJlU2l6ZSgpOwotICAgIEludFNpemUgY2xhbXBlZFNpemUgPSByZXF1ZXN0ZWRTaXplLnNo
cnVua1RvKEludFNpemUobWF4U2l6ZSwgbWF4U2l6ZSkpOwotICAgIG1fdGlsZXItPnNldFRpbGVT
aXplKGNsYW1wZWRTaXplKTsKLX0KLQotYm9vbCBUaWxlZExheWVyQ2hyb21pdW06OmRyYXdzQ29u
dGVudCgpIGNvbnN0Ci17Ci0gICAgaWYgKCFtX293bmVyKQotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0KLSAgICBpZiAoIW1fdGlsZXIpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgaWYgKG1f
dGlsaW5nT3B0aW9uID09IE5ldmVyVGlsZSAmJiBtX3RpbGVyLT5udW1UaWxlcygpID4gMSkKLSAg
ICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgcmV0dXJuICFtX3RpbGVyLT5za2lwc0RyYXcoKTsK
LX0KLQotdm9pZCBUaWxlZExheWVyQ2hyb21pdW06OmNyZWF0ZVRpbGVySWZOZWVkZWQoKQotewot
ICAgIGlmIChtX3RpbGVyKQotICAgICAgICByZXR1cm47Ci0KLSAgICBjcmVhdGVUZXh0dXJlVXBk
YXRlcklmTmVlZGVkKCk7Ci0KLSAgICBtX3RpbGVyID0gTGF5ZXJUaWxlckNocm9taXVtOjpjcmVh
dGUoCi0gICAgICAgIGxheWVyUmVuZGVyZXIoKSwKLSAgICAgICAgSW50U2l6ZShkZWZhdWx0VGls
ZVNpemUsIGRlZmF1bHRUaWxlU2l6ZSksCi0gICAgICAgIG1fYm9yZGVyVGV4ZWxzID8gTGF5ZXJU
aWxlckNocm9taXVtOjpIYXNCb3JkZXJUZXhlbHMgOiBMYXllclRpbGVyQ2hyb21pdW06Ok5vQm9y
ZGVyVGV4ZWxzKTsKLX0KLQotdm9pZCBUaWxlZExheWVyQ2hyb21pdW06OnVwZGF0ZUNvbXBvc2l0
b3JSZXNvdXJjZXMoKQotewotICAgIG1fdGlsZXItPnVwZGF0ZVJlY3QodGV4dHVyZVVwZGF0ZXIo
KSk7Ci19Ci0KLXZvaWQgVGlsZWRMYXllckNocm9taXVtOjpzZXRUaWxpbmdPcHRpb24oVGlsaW5n
T3B0aW9uIHRpbGluZ09wdGlvbikKLXsKLSAgICBtX3RpbGluZ09wdGlvbiA9IHRpbGluZ09wdGlv
bjsKLSAgICB1cGRhdGVUaWxlU2l6ZUFuZFRpbGluZ09wdGlvbigpOwotfQotCi12b2lkIFRpbGVk
TGF5ZXJDaHJvbWl1bTo6c2V0SXNNYXNrKGJvb2wgaXNNYXNrKQotewotICAgIG1fYm9yZGVyVGV4
ZWxzID0gIWlzTWFzazsKLSAgICBzZXRUaWxpbmdPcHRpb24oaXNNYXNrID8gTmV2ZXJUaWxlIDog
QXV0b1RpbGUpOwotfQotCi1UcmFuc2Zvcm1hdGlvbk1hdHJpeCBUaWxlZExheWVyQ2hyb21pdW06
OnRpbGluZ1RyYW5zZm9ybSgpIGNvbnN0Ci17Ci0gICAgVHJhbnNmb3JtYXRpb25NYXRyaXggdHJh
bnNmb3JtID0gY2NMYXllckltcGwoKS0+ZHJhd1RyYW5zZm9ybSgpOwotCi0gICAgaWYgKGNvbnRl
bnRCb3VuZHMoKS5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiB0cmFuc2Zvcm07Ci0KLSAgICB0
cmFuc2Zvcm0uc2NhbGVOb25Vbmlmb3JtKGJvdW5kcygpLndpZHRoKCkgLyBzdGF0aWNfY2FzdDxk
b3VibGU+KGNvbnRlbnRCb3VuZHMoKS53aWR0aCgpKSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGJvdW5kcygpLmhlaWdodCgpIC8gc3RhdGljX2Nhc3Q8ZG91YmxlPihjb250ZW50Qm91
bmRzKCkuaGVpZ2h0KCkpKTsKLQotICAgIC8vIFRpbGVyIGRyYXdzIHdpdGggYSBkaWZmZXJlbnQg
b3JpZ2luIGZyb20gb3RoZXIgbGF5ZXJzLgotICAgIHRyYW5zZm9ybS50cmFuc2xhdGUoLWNvbnRl
bnRCb3VuZHMoKS53aWR0aCgpIC8gMi4wLCAtY29udGVudEJvdW5kcygpLmhlaWdodCgpIC8gMi4w
KTsKLQotICAgIHJldHVybiB0cmFuc2Zvcm07Ci19Ci0KLXZvaWQgVGlsZWRMYXllckNocm9taXVt
OjpwdXNoUHJvcGVydGllc1RvKENDTGF5ZXJJbXBsKiBsYXllcikKLXsKLSAgICBMYXllckNocm9t
aXVtOjpwdXNoUHJvcGVydGllc1RvKGxheWVyKTsKLQotICAgIENDVGlsZWRMYXllckltcGwqIHRp
bGVkTGF5ZXIgPSBzdGF0aWNfY2FzdDxDQ1RpbGVkTGF5ZXJJbXBsKj4obGF5ZXIpOwotICAgIHRp
bGVkTGF5ZXItPnNldFRpbGluZ1RyYW5zZm9ybSh0aWxpbmdUcmFuc2Zvcm0oKSk7Ci0gICAgdGls
ZWRMYXllci0+c2V0VGlsZXIobV90aWxlci5nZXQoKSk7Ci19Ci0KLXN0YXRpYyB2b2lkIHdyaXRl
SW5kZW50KFRleHRTdHJlYW0mIHRzLCBpbnQgaW5kZW50KQotewotICAgIGZvciAoaW50IGkgPSAw
OyBpICE9IGluZGVudDsgKytpKQotICAgICAgICB0cyA8PCAiICAiOwotfQotCi12b2lkIFRpbGVk
TGF5ZXJDaHJvbWl1bTo6ZHVtcExheWVyUHJvcGVydGllcyhUZXh0U3RyZWFtJiB0cywgaW50IGlu
ZGVudCkgY29uc3QKLXsKLSAgICBMYXllckNocm9taXVtOjpkdW1wTGF5ZXJQcm9wZXJ0aWVzKHRz
LCBpbmRlbnQpOwotICAgIHdyaXRlSW5kZW50KHRzLCBpbmRlbnQpOwotICAgIHRzIDw8ICJza2lw
c0RyYXc6ICIgPDwgKCFtX3RpbGVyIHx8IG1fdGlsZXItPnNraXBzRHJhdygpKSA8PCAiXG4iOwot
fQotCi19Ci0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGlsZWRMYXllckNo
cm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxl
ZExheWVyQ2hyb21pdW0uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzg4YWRjN2Yx
MDhhYTZhMjVjYjNkNGNmOGNkMTQ5MzBlNjQ2NDE1Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9UaWxlZExheWVyQ2hyb21pdW0uaAorKysgL2Rldi9udWxsCkBAIC0xLDgyICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0g
KiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLSAqLwotCi0jaWZuZGVmIFRpbGVkTGF5ZXJDaHJvbWl1bV9oCi0jZGVmaW5lIFRpbGVkTGF5
ZXJDaHJvbWl1bV9oCi0KLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KLSNpbmNs
dWRlICJMYXllckNocm9taXVtLmgiCi0jaW5jbHVkZSAiY2MvQ0NUaWxlZExheWVySW1wbC5oIgot
Ci1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIExheWVyVGV4dHVyZTsKLWNsYXNzIExheWVy
VGlsZXJDaHJvbWl1bTsKLWNsYXNzIExheWVyVGV4dHVyZVVwZGF0ZXI7Ci0KLWNsYXNzIFRpbGVk
TGF5ZXJDaHJvbWl1bSA6IHB1YmxpYyBMYXllckNocm9taXVtIHsKLXB1YmxpYzoKLSAgICBlbnVt
IFRpbGluZ09wdGlvbiB7IEFsd2F5c1RpbGUsIE5ldmVyVGlsZSwgQXV0b1RpbGUgfTsKLQotICAg
IHZpcnR1YWwgflRpbGVkTGF5ZXJDaHJvbWl1bSgpOwotCi0gICAgdmlydHVhbCB2b2lkIHVwZGF0
ZUNvbXBvc2l0b3JSZXNvdXJjZXMoKTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0SXNNYXNrKGJvb2wp
OwotCi0gICAgdmlydHVhbCB2b2lkIHB1c2hQcm9wZXJ0aWVzVG8oQ0NMYXllckltcGwqKTsKLQot
ICAgIHZpcnR1YWwgYm9vbCBkcmF3c0NvbnRlbnQoKSBjb25zdDsKLQotcHJvdGVjdGVkOgotICAg
IGV4cGxpY2l0IFRpbGVkTGF5ZXJDaHJvbWl1bShHcmFwaGljc0xheWVyQ2hyb21pdW0qKTsKLQot
ICAgIHZpcnR1YWwgdm9pZCBjbGVhbnVwUmVzb3VyY2VzKCk7Ci0gICAgdm9pZCB1cGRhdGVUaWxl
U2l6ZUFuZFRpbGluZ09wdGlvbigpOwotCi0gICAgdmlydHVhbCB2b2lkIGNyZWF0ZVRleHR1cmVV
cGRhdGVySWZOZWVkZWQoKSA9IDA7Ci0gICAgdmlydHVhbCBMYXllclRleHR1cmVVcGRhdGVyKiB0
ZXh0dXJlVXBkYXRlcigpIGNvbnN0ID0gMDsKLQotICAgIE93blB0cjxMYXllclRpbGVyQ2hyb21p
dW0+IG1fdGlsZXI7Ci0KLXByaXZhdGU6Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPENDTGF5ZXJJ
bXBsPiBjcmVhdGVDQ0xheWVySW1wbCgpOwotCi0gICAgdmlydHVhbCB2b2lkIGR1bXBMYXllclBy
b3BlcnRpZXMoVGV4dFN0cmVhbSYsIGludCBpbmRlbnQpIGNvbnN0OwotCi0gICAgdmlydHVhbCB2
b2lkIHNldExheWVyUmVuZGVyZXIoTGF5ZXJSZW5kZXJlckNocm9taXVtKik7Ci0KLSAgICB2b2lk
IGNyZWF0ZVRpbGVySWZOZWVkZWQoKTsKLSAgICB2b2lkIHNldFRpbGluZ09wdGlvbihUaWxpbmdP
cHRpb24pOwotICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHRpbGluZ1RyYW5zZm9ybSgpIGNvbnN0
OwotCi0gICAgVGlsaW5nT3B0aW9uIG1fdGlsaW5nT3B0aW9uOwotICAgIGJvb2wgbV9ib3JkZXJU
ZXhlbHM7Ci19OwotCi19Ci0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQot
Ci0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDTGF5ZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmNwcAppbmRleCA2YzY1YThjOTA3NGU3YTQ5MDUx
NDg1NjM3OWU1ZDAzMDJjOGEyM2RhLi5lMThkNTRmOGE4MDEwYTQzOWZmM2JmY2QwNmQxNmU3NWNh
ODc1YjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ0xheWVySW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuY3BwCkBAIC0xMzYsOSArMTM2LDE1IEBAIGJv
b2wgQ0NMYXllckltcGw6OmRlc2NlbmRhbnRzRHJhd3NDb250ZW50KCkKICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKKy8vIFRoZXNlIGJlbG9uZyBvbiBDQ0xheWVySW1wbCwgYnV0IHNob3VsZCBiZSBv
dmVycmlkZGVuIGJ5IGVhY2ggdHlwZSBhbmQgbm90IGRlZmVyIHRvIHRoZSBMYXllckNocm9taXVt
IHN1YnR5cGVzLgorYm9vbCBDQ0xheWVySW1wbDo6ZHJhd3NDb250ZW50KCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV9vd25lci0+ZHJhd3NDb250ZW50KCk7Cit9CisKIHZvaWQgQ0NMYXllckltcGw6
OmRyYXcoKQogewotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBtX293bmVy
LT5kcmF3KCk7CiB9CiAKIHZvaWQgQ0NMYXllckltcGw6OnVwZGF0ZUNvbXBvc2l0b3JSZXNvdXJj
ZXMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NMYXllckltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDTGF5ZXJJbXBsLmgKaW5kZXggYmQyNzZmZTgwOTA3NjcxNmE2OGQwOTY3N2Nk
YjFiNWE2NGY5MGZlMy4uZDc5NTRjYjZlZWI5MTU0NzU3MjNiYmI0ZmQ4YzVkYmNkMTVlM2ZiMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NMYXllckltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ0xheWVySW1wbC5oCkBAIC03MiwxMSArNzIsMTAgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBkcmF3KCk7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUNvbXBvc2l0b3JSZXNv
dXJjZXMoKTsKICAgICB2b2lkIHVucmVzZXJ2ZUNvbnRlbnRzVGV4dHVyZSgpOwotICAgIHZpcnR1
YWwgdm9pZCBiaW5kQ29udGVudHNUZXh0dXJlKCk7CisgICAgdm9pZCBiaW5kQ29udGVudHNUZXh0
dXJlKCk7CiAKICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhpcyBsYXllciBoYXMgY29udGVudCB0
byBkcmF3LgotICAgIHZvaWQgc2V0RHJhd3NDb250ZW50KGJvb2wgZHJhd3NDb250ZW50KSB7IG1f
ZHJhd3NDb250ZW50ID0gZHJhd3NDb250ZW50OyB9Ci0gICAgYm9vbCBkcmF3c0NvbnRlbnQoKSBj
b25zdCB7IHJldHVybiBtX2RyYXdzQ29udGVudDsgfQorICAgIHZpcnR1YWwgYm9vbCBkcmF3c0Nv
bnRlbnQoKSBjb25zdDsKIAogICAgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbnkgb2YgdGhlIGxheWVy
J3MgZGVzY2VuZGFudHMgaGFzIGNvbnRlbnQgdG8gZHJhdy4KICAgICBib29sIGRlc2NlbmRhbnRz
RHJhd3NDb250ZW50KCk7CkBAIC0yMDIsOCArMjAxLDYgQEAgcHJpdmF0ZToKICAgICBUcmFuc2Zv
cm1hdGlvbk1hdHJpeCBtX3RyYW5zZm9ybTsKICAgICBib29sIG1fdXNlc0xheWVyU2Npc3NvcjsK
IAotICAgIGJvb2wgbV9kcmF3c0NvbnRlbnQ7Ci0KICAgICAvLyBQcm9wZXJ0aWVzIG93bmVkIGV4
Y2x1c2l2ZWx5IGJ5IHRoaXMgQ0NMYXllckltcGwuCiAgICAgLy8gRGVidWdnaW5nLgogI2lmbmRl
ZiBOREVCVUcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDVGlsZWRMYXllckltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaWxlZExheWVySW1wbC5jcHAKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDgwM2JhMDZkNTYxOTdkMjhhYWU1NWE3OGM1YmNkMTFlMTI0NzdiNWUu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaWxlZExheWVySW1wbC5jcHAK
KysrIC9kZXYvbnVsbApAQCAtMSw3NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEx
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9S
UyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
LSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0g
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5o
IgotCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCi0jaW5jbHVkZSAiY2MvQ0NU
aWxlZExheWVySW1wbC5oIgotCi0jaW5jbHVkZSAiQ29udGVudExheWVyQ2hyb21pdW0uaCIKLQot
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0K
LWNsYXNzIExheWVyVGV4dHVyZTsKLQotQ0NUaWxlZExheWVySW1wbDo6Q0NUaWxlZExheWVySW1w
bChMYXllckNocm9taXVtKiBvd25lciwgaW50IGlkKQotICAgIDogQ0NMYXllckltcGwob3duZXIs
IGlkKQotICAgICwgbV90aWxlcigwKQotewotfQotCi1DQ1RpbGVkTGF5ZXJJbXBsOjp+Q0NUaWxl
ZExheWVySW1wbCgpCi17Ci19Ci0KLXZvaWQgQ0NUaWxlZExheWVySW1wbDo6ZHJhdygpCi17Ci0g
ICAgY29uc3QgSW50UmVjdCYgbGF5ZXJSZWN0ID0gdmlzaWJsZUxheWVyUmVjdCgpOwotICAgIGlm
ICghbGF5ZXJSZWN0LmlzRW1wdHkoKSkKLSAgICAgICAgbV90aWxlci0+ZHJhdyhsYXllclJlY3Qs
IG1fdGlsaW5nVHJhbnNmb3JtLCBkcmF3T3BhY2l0eSgpKTsKLX0KLQotdm9pZCBDQ1RpbGVkTGF5
ZXJJbXBsOjpiaW5kQ29udGVudHNUZXh0dXJlKCkKLXsKLSAgICAvLyBUaGlzIGZ1bmN0aW9uIGlz
IG9ubHkgdmFsaWQgZm9yIHNpbmdsZSB0ZXh0dXJlIGxheWVycywgZS5nLiBtYXNrcy4KLSAgICBB
U1NFUlQobV90aWxlcik7Ci0KLSAgICBMYXllclRleHR1cmUqIHRleHR1cmUgPSBtX3RpbGVyLT5n
ZXRTaW5nbGVUZXh0dXJlKCk7Ci0gICAgQVNTRVJUKHRleHR1cmUpOwotCi0gICAgdGV4dHVyZS0+
YmluZFRleHR1cmUoKTsKLX0KLQotdm9pZCBDQ1RpbGVkTGF5ZXJJbXBsOjpkdW1wTGF5ZXJQcm9w
ZXJ0aWVzKFRleHRTdHJlYW0mIHRzLCBpbnQgaW5kZW50KSBjb25zdAotewotICAgIHdyaXRlSW5k
ZW50KHRzLCBpbmRlbnQpOwotICAgIENDTGF5ZXJJbXBsOjpkdW1wTGF5ZXJQcm9wZXJ0aWVzKHRz
LCBpbmRlbnQpOwotfQotCi19Ci0KLSNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ1RpbGVkTGF5ZXJJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ1RpbGVkTGF5ZXJJbXBsLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGIwZDEwMzFmYmI3YjhmODBmNDc4YWM4MTNjOGYyNzI5ZGM4OWE5MTUuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaWxlZExheWVySW1wbC5oCisrKyAvZGV2L251
bGwKQEAgLTEsNTkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBB
TkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwot
ICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgQ0NUaWxlZExheWVySW1wbF9oCi0j
ZGVmaW5lIENDVGlsZWRMYXllckltcGxfaAotCi0jaW5jbHVkZSAiTGF5ZXJUaWxlckNocm9taXVt
LmgiCi0jaW5jbHVkZSAiY2MvQ0NMYXllckltcGwuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewot
Ci1jbGFzcyBDQ1RpbGVkTGF5ZXJJbXBsIDogcHVibGljIENDTGF5ZXJJbXBsIHsKLXB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxDQ1RpbGVkTGF5ZXJJbXBsPiBjcmVhdGUoTGF5ZXJDaHJv
bWl1bSogb3duZXIsIGludCBpZCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcg
Q0NUaWxlZExheWVySW1wbChvd25lciwgaWQpKTsKLSAgICB9Ci0gICAgdmlydHVhbCB+Q0NUaWxl
ZExheWVySW1wbCgpOwotCi0gICAgdmlydHVhbCB2b2lkIGRyYXcoKTsKLSAgICB2aXJ0dWFsIHZv
aWQgYmluZENvbnRlbnRzVGV4dHVyZSgpOwotCi0gICAgdmlydHVhbCB2b2lkIGR1bXBMYXllclBy
b3BlcnRpZXMoVGV4dFN0cmVhbSYsIGludCBpbmRlbnQpIGNvbnN0OwotCi0gICAgdm9pZCBzZXRU
aWxpbmdUcmFuc2Zvcm0oY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRpbGluZ1RyYW5zZm9y
bSkgeyBtX3RpbGluZ1RyYW5zZm9ybSA9IHRpbGluZ1RyYW5zZm9ybTsgfQotICAgIHZvaWQgc2V0
VGlsZXIoTGF5ZXJUaWxlckNocm9taXVtKiB0aWxlcikgeyBtX3RpbGVyID0gdGlsZXI7IH0KLQot
cHJpdmF0ZToKLSAgICBDQ1RpbGVkTGF5ZXJJbXBsKExheWVyQ2hyb21pdW0qLCBpbnQgaWQpOwot
Ci0gICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbV90aWxpbmdUcmFuc2Zvcm07Ci0gICAgTGF5ZXJU
aWxlckNocm9taXVtKiBtX3RpbGVyOwotfTsKLQotfQotCi0jZW5kaWYgLy8gQ0NUaWxlZExheWVy
SW1wbF9oCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>