<?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>202919</bug_id>
          
          <creation_ts>2019-10-14 01:19:04 -0700</creation_ts>
          <short_desc>[CSS Shadow Parts] ::part rules should be able to override style attribute</short_desc>
          <delta_ts>2019-10-18 09:21:14 -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>CSS</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>
          <dependson>203029</dependson>
          <blocked>149443</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Emilio Cobos Álvarez (:emilio)">emilio</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jan</cc>
    
    <cc>koivisto</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1579569</commentid>
    <comment_count>0</comment_count>
      <attachid>380861</attachid>
    <who name="Emilio Cobos Álvarez (:emilio)">emilio</who>
    <bug_when>2019-10-14 01:19:04 -0700</bug_when>
    <thetext>Created attachment 380861
Testcase.

See the test-case.

WebKit trunk behaves the same as Firefox, but I think Chromium is technically correct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1580365</commentid>
    <comment_count>1</comment_count>
    <who name="Jan Miksovsky">jan</who>
    <bug_when>2019-10-15 16:36:33 -0700</bug_when>
    <thetext>I filed https://github.com/w3c/webcomponents/issues/847 just to make sure everyone&apos;s on board with following Chrome&apos;s behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1580471</commentid>
    <comment_count>2</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-10-16 00:16:44 -0700</bug_when>
    <thetext>Inline style is simply appended to the matching declaration list, and not sorted with the rest of the author style, because before this feature it would always win.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1580527</commentid>
    <comment_count>3</comment_count>
      <attachid>381069</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-10-16 08:03:44 -0700</bug_when>
    <thetext>Created attachment 381069
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1580935</commentid>
    <comment_count>4</comment_count>
      <attachid>381189</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-10-17 04:43:19 -0700</bug_when>
    <thetext>Created attachment 381189
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1581358</commentid>
    <comment_count>5</comment_count>
      <attachid>381286</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-10-18 02:28:37 -0700</bug_when>
    <thetext>Created attachment 381286
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1581361</commentid>
    <comment_count>6</comment_count>
      <attachid>381289</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-10-18 02:40:33 -0700</bug_when>
    <thetext>Created attachment 381289
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1581426</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-18 09:19:31 -0700</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 381289:

fetch/fetch-worker-crash.html bug 187257 (author: youennf@gmail.com)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1581427</commentid>
    <comment_count>8</comment_count>
      <attachid>381289</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-18 09:20:23 -0700</bug_when>
    <thetext>Comment on attachment 381289
patch

Clearing flags on attachment: 381289

Committed r251285: &lt;https://trac.webkit.org/changeset/251285&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1581428</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-18 09:20:25 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1581429</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-10-18 09:21:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/56408673&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>380861</attachid>
            <date>2019-10-14 01:19:04 -0700</date>
            <delta_ts>2019-10-14 01:19:04 -0700</delta_ts>
            <desc>Testcase.</desc>
            <filename>t.html</filename>
            <type>text/html</type>
            <size>617</size>
            <attacher name="Emilio Cobos Álvarez (:emilio)">emilio</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxtZXRhIGNoYXJzZXQ9InV0Zi04IiAvPgo8bWV0YSBuYW1lPSJ2aWV3
cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLGluaXRpYWwtc2NhbGU9MSIgLz4KPHN0
eWxlPgogIHRlc3QtZWxlbWVudDo6cGFydChzd2F0Y2gpIHsKICAgIGJhY2tncm91bmQtY29sb3I6
IHJlZDsKICAgIGhlaWdodDogMTAwcHg7CiAgICB3aWR0aDogMTAwcHg7CiAgfQo8L3N0eWxlPgo8
c2NyaXB0PgogIGNsYXNzIFRlc3RFbGVtZW50IGV4dGVuZHMgSFRNTEVsZW1lbnQgewogICAgY29u
c3RydWN0b3IoKSB7CiAgICAgIHN1cGVyKCk7CiAgICAgIHRoaXMuYXR0YWNoU2hhZG93KHsgbW9k
ZTogIm9wZW4iIH0pLmlubmVySFRNTCA9IGAKICAgICAgPGRpdiBwYXJ0PSJzd2F0Y2giIHN0eWxl
PSJiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsiPjwvZGl2PgogICAgYDsKICAgIH0KICB9CiAgY3Vz
dG9tRWxlbWVudHMuZGVmaW5lKCJ0ZXN0LWVsZW1lbnQiLCBUZXN0RWxlbWVudCk7Cjwvc2NyaXB0
Pgo8cD4KICBTaG91bGQgc2VlIGEgc3F1YXJlIGJlbG93LCBidXQgaXMgaXQgZ3JlZW4gb3IgcmVk
Pwo8L3A+Cjx0ZXN0LWVsZW1lbnQgaWQ9InRlc3QiPjwvdGVzdC1lbGVtZW50Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381069</attachid>
            <date>2019-10-16 08:03:44 -0700</date>
            <delta_ts>2019-10-17 04:43:19 -0700</delta_ts>
            <desc>patch</desc>
            <filename>css-shadow-parts-inline-2.patch</filename>
            <type>text/plain</type>
            <size>13595</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDViNjAzN2JjZDgxLi41YjgyZTQ2Yzk0
MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTkt
MTAtMTYgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgorCisgICAgICAgIFtDU1Mg
U2hhZG93IFBhcnRzXSBJbmNvbXBhdGlibGUgc3R5bGUgYXR0cmlidXRlIGJlaGF2aW9yIHdpdGgg
Q2hyb21pdW0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwMjkxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2hhZG93LXBhcnRzL3NpbXBsZS1pbmxpbmUt
ZXhwZWN0ZWQudHh0OgorCiAyMDE5LTEwLTE2ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxl
LmNvbT4KIAogICAgICAgICBbQ1NTIFNoYWRvdyBQYXJ0c10gSW1wb3J0IGNzcy9jc3Mtc2hhZG93
LXBhcnRzL3NpbXBsZS1pbmxpbmUuaHRtbCBXUFQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zaGFkb3ctcGFydHMvc2ltcGxl
LWlubGluZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3Mtc2hhZG93LXBhcnRzL3NpbXBsZS1pbmxpbmUtZXhwZWN0ZWQudHh0
CmluZGV4IGY5NzA0YTc3MTRjLi5jNTcxMGM3NDU1NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNoYWRvdy1wYXJ0cy9zaW1w
bGUtaW5saW5lLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2hhZG93LXBhcnRzL3NpbXBsZS1pbmxpbmUtZXhwZWN0
ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAogVGhlIGZvbGxvd2luZyB0ZXh0IHNob3VsZCBiZSBncmVl
bjogCiAKLUZBSUwgUGFydCBpbiBzZWxlY3RlZCBob3N0IGlzIHN0eWxlZCBhc3NlcnRfZXF1YWxz
OiBleHBlY3RlZCAicmdiKDAsIDEyOCwgMCkiIGJ1dCBnb3QgInJnYigyNTUsIDAsIDApIgorUEFT
UyBQYXJ0IGluIHNlbGVjdGVkIGhvc3QgaXMgc3R5bGVkIAogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTU2NjQ2
NDdjMTIuLjI3YWExNWRhYWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDkgQEAKKzIwMTktMTAt
MTYgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgorCisgICAgICAgIFtDU1MgU2hh
ZG93IFBhcnRzXSBJbmNvbXBhdGlibGUgc3R5bGUgYXR0cmlidXRlIGJlaGF2aW9yIHdpdGggQ2hy
b21pdW0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
MjkxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIElu
bGluZSBzdHlsZSB3YXMgc2ltcGx5IGFwcGVuZGVkIHRvIHRoZSBtYXRjaGluZyBkZWNsYXJhdGlv
biBsaXN0IGFuZCBub3Qgc29ydGVkIHdpdGggdGhlIHJlc3Qgb2YgdGhlIGF1dGhvciBzdHlsZS4K
KyAgICAgICAgVGhpcyB1c2VkIHRvIHdvcmsgYmVjYXVzZSBiZWZvcmUgQ1NTIFNoYWRvdyBQYXJ0
cyBmZWF0dXJlIGlubGluZSBzdHlsZSB3b3VsZCBhbHdheXMgd2luLgorCisgICAgICAgICogY3Nz
L0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRSdWxl
Q29sbGVjdG9yOjpjbGVhck1hdGNoZWRSdWxlcyk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50
UnVsZUNvbGxlY3Rvcjo6c29ydEFuZFRyYW5zZmVyTWF0Y2hlZFJ1bGVzKToKKworICAgICAgICBT
cGxpdCBvdXQgdHJhbnNmZXJpbmcgdG8gYSBzZXBhcmF0ZSBmdW5jdGlvbi4KKworICAgICAgICAo
V2ViQ29yZTo6RWxlbWVudFJ1bGVDb2xsZWN0b3I6OnRyYW5zZmVyTWF0Y2hlZFJ1bGVzKToKKwor
ICAgICAgICBBZGQgYSBwYXJhbWV0ZXIgdG8gbGltaXQgdHJhbnNmZXIgdG8gcnVsZXMgZnJvbSBh
IHNjb3BlLgorCisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50UnVsZUNvbGxlY3Rvcjo6bWF0Y2hB
dXRob3JSdWxlcyk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50UnVsZUNvbGxlY3Rvcjo6bWF0
Y2hlc0FueUF1dGhvclJ1bGVzKToKKworICAgICAgICBSZXBsYWNlIGhhc01hdGNoZWRSdWxlcygp
IHdpdGggYSBtb3JlIHNwZWNpZmljIGZ1bmN0aW9uLiBUaGlzIGNhbiB1c2UgY29sbGVjdE1hdGNo
aW5nQXV0aG9yUnVsZXMgYW5kIGF2b2lkcyB1bm5lY2Vzc2FyeSBzb3J0aW5nIHN0ZXAuCisKKyAg
ICAgICAgKFdlYkNvcmU6OkVsZW1lbnRSdWxlQ29sbGVjdG9yOjpjb2xsZWN0TWF0Y2hpbmdBdXRo
b3JSdWxlcyk6CisKKyAgICAgICAgU3BsaXQgb3V0IGNvbGxlY3RpbmcgdGhlIHJ1bGVzIGZyb20g
bWF0Y2hBdXRob3JSdWxlcy4gTGlrZSBvdGhlciBjb2xsZWN0IGZ1bmN0aW9ucywgdGhpcyBkb2Vz
bid0IGRvIGFueSBzb3J0aW5nLgorCisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50UnVsZUNvbGxl
Y3Rvcjo6bWF0Y2hBbGxSdWxlcyk6CisKKyAgICAgICAgQWRkIGVsZW1lbnQgaW5saW5lIHN0eWxl
IGJlZm9yZSB0cmFuc2ZlcmluZyBydWxlcyBmcm9tIHRoZSBjb250YWluaW5nIGhvc3Qgc2NvcGUu
CisKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRSdWxlQ29sbGVjdG9yOjphZGRFbGVtZW50SW5s
aW5lU3R5bGVQcm9wZXJ0aWVzKToKKworICAgICAgICBGYWN0b3IgYWRkaW5nIGlubGluZSBzdHls
ZSBpbnRvIGEgZnVuY3Rpb24uCisKK10gICAgICAgICogY3NzL0VsZW1lbnRSdWxlQ29sbGVjdG9y
Lmg6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50UnVsZUNvbGxlY3Rvcjo6aGFzTWF0Y2hlZFJ1
bGVzIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBjc3MvU3R5bGVQcm9wZXJ0aWVzLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZVByb3BlcnRpZXNCYXNlOjpkZXJlZiBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpTdHlsZVByb3BlcnRpZXNCYXNlOjpkZXJlZik6IERlbGV0ZWQuCisgICAg
ICAgICogc3R5bGUvU3R5bGVJbnZhbGlkYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHls
ZTo6SW52YWxpZGF0b3I6OmludmFsaWRhdGVJZk5lZWRlZCk6CisgICAgICAgICogc3R5bGUvU3R5
bGVTY29wZS5oOsOlCisKIDIwMTktMTAtMTYgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNp
YUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdW1dQRV0gQVNTRVJUSU9OIEZBSUxFRDogYmxv
YiBpbiBTUUxpdGVTdGF0ZW1lbnQuY3BwKDE2MykgOiBpbnQgV2ViQ29yZTo6U1FMaXRlU3RhdGVt
ZW50OjpiaW5kQmxvYigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRWxlbWVudFJ1
bGVDb2xsZWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0VsZW1lbnRSdWxlQ29sbGVjdG9y
LmNwcAppbmRleCA4NTk5Zjg2NzI0ZC4uMTdiMDQ0NjFkYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcApAQCAtMTIzLDYgKzEyMyw3IEBAIHZvaWQgRWxl
bWVudFJ1bGVDb2xsZWN0b3I6OmNsZWFyTWF0Y2hlZFJ1bGVzKCkKIHsKICAgICBtX21hdGNoZWRS
dWxlcy5jbGVhcigpOwogICAgIG1fa2VlcEFsaXZlU2xvdHRlZFBzZXVkb0VsZW1lbnRSdWxlcy5j
bGVhcigpOworICAgIG1fbWF0Y2hlZFJ1bGVUcmFuc2ZlckluZGV4ID0gMDsKIH0KIAogaW5saW5l
IHZvaWQgRWxlbWVudFJ1bGVDb2xsZWN0b3I6OmFkZEVsZW1lbnRTdHlsZVByb3BlcnRpZXMoY29u
c3QgU3R5bGVQcm9wZXJ0aWVzKiBwcm9wZXJ0eVNldCwgYm9vbCBpc0NhY2hlYWJsZSkKQEAgLTE3
MSwxMyArMTcyLDIxIEBAIHZvaWQgRWxlbWVudFJ1bGVDb2xsZWN0b3I6OnNvcnRBbmRUcmFuc2Zl
ck1hdGNoZWRSdWxlcygpCiAKICAgICBzb3J0TWF0Y2hlZFJ1bGVzKCk7CiAKLSAgICBpZiAobV9t
b2RlID09IFNlbGVjdG9yQ2hlY2tlcjo6TW9kZTo6Q29sbGVjdGluZ1J1bGVzKSB7Ci0gICAgICAg
IGZvciAoY29uc3QgTWF0Y2hlZFJ1bGUmIG1hdGNoZWRSdWxlIDogbV9tYXRjaGVkUnVsZXMpCisg
ICAgdHJhbnNmZXJNYXRjaGVkUnVsZXMoU3R5bGU6OlNjb3BlT3JkaW5hbDo6TG93ZXN0KTsKK30K
Kwordm9pZCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6dHJhbnNmZXJNYXRjaGVkUnVsZXMoU3R5bGU6
OlNjb3BlT3JkaW5hbCBmcm9tU2NvcGUpCit7CisgICAgZm9yICg7IG1fbWF0Y2hlZFJ1bGVUcmFu
c2ZlckluZGV4IDwgbV9tYXRjaGVkUnVsZXMuc2l6ZSgpOyArK21fbWF0Y2hlZFJ1bGVUcmFuc2Zl
ckluZGV4KSB7CisgICAgICAgIGF1dG8mIG1hdGNoZWRSdWxlID0gbV9tYXRjaGVkUnVsZXNbbV9t
YXRjaGVkUnVsZVRyYW5zZmVySW5kZXhdOworICAgICAgICBpZiAobWF0Y2hlZFJ1bGUuc3R5bGVT
Y29wZU9yZGluYWwgPCBmcm9tU2NvcGUpCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBp
ZiAobV9tb2RlID09IFNlbGVjdG9yQ2hlY2tlcjo6TW9kZTo6Q29sbGVjdGluZ1J1bGVzKSB7CiAg
ICAgICAgICAgICBtX21hdGNoZWRSdWxlTGlzdC5hcHBlbmQobWF0Y2hlZFJ1bGUucnVsZURhdGEt
PnJ1bGUoKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CisgICAgICAgICAgICBjb250aW51ZTsK
KyAgICAgICAgfQogCi0gICAgZm9yIChjb25zdCBNYXRjaGVkUnVsZSYgbWF0Y2hlZFJ1bGUgOiBt
X21hdGNoZWRSdWxlcykgewogICAgICAgICBtX3Jlc3VsdC5hZGRNYXRjaGVkUHJvcGVydGllcyht
YXRjaGVkUnVsZS5ydWxlRGF0YS0+cnVsZSgpLT5wcm9wZXJ0aWVzKCksIG1hdGNoZWRSdWxlLnJ1
bGVEYXRhLT5ydWxlKCksIG1hdGNoZWRSdWxlLnJ1bGVEYXRhLT5saW5rTWF0Y2hUeXBlKCksIG1h
dGNoZWRSdWxlLnJ1bGVEYXRhLT5wcm9wZXJ0eVdoaXRlbGlzdFR5cGUoKSwgbWF0Y2hlZFJ1bGUu
c3R5bGVTY29wZU9yZGluYWwpOwogICAgIH0KIH0KQEAgLTE4Niw2ICsxOTUsMjMgQEAgdm9pZCBF
bGVtZW50UnVsZUNvbGxlY3Rvcjo6bWF0Y2hBdXRob3JSdWxlcyhib29sIGluY2x1ZGVFbXB0eVJ1
bGVzKQogewogICAgIGNsZWFyTWF0Y2hlZFJ1bGVzKCk7CiAKKyAgICBjb2xsZWN0TWF0Y2hpbmdB
dXRob3JSdWxlcyhpbmNsdWRlRW1wdHlSdWxlcyk7CisKKyAgICBzb3J0QW5kVHJhbnNmZXJNYXRj
aGVkUnVsZXMoKTsKK30KKworYm9vbCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6bWF0Y2hlc0FueUF1
dGhvclJ1bGVzKCkKK3sKKyAgICBjbGVhck1hdGNoZWRSdWxlcygpOworCisgICAgLy8gRklYTUU6
IFRoaXMgc2hvdWxkIGJhaWwgb3V0IG9uIGZpcnN0IG1hdGNoLgorICAgIGNvbGxlY3RNYXRjaGlu
Z0F1dGhvclJ1bGVzKGZhbHNlKTsKKworICAgIHJldHVybiAhbV9tYXRjaGVkUnVsZXMuaXNFbXB0
eSgpOworfQorCit2b2lkIEVsZW1lbnRSdWxlQ29sbGVjdG9yOjpjb2xsZWN0TWF0Y2hpbmdBdXRo
b3JSdWxlcyhib29sIGluY2x1ZGVFbXB0eVJ1bGVzKQorewogICAgIG1fcmVzdWx0LnJhbmdlcy5s
YXN0QXV0aG9yUnVsZSA9IG1fcmVzdWx0Lm1hdGNoZWRQcm9wZXJ0aWVzKCkuc2l6ZSgpIC0gMTsK
ICAgICBTdHlsZVJlc29sdmVyOjpSdWxlUmFuZ2UgcnVsZVJhbmdlID0gbV9yZXN1bHQucmFuZ2Vz
LmF1dGhvclJ1bGVSYW5nZSgpOwogCkBAIC0yMDUsOCArMjMxLDYgQEAgdm9pZCBFbGVtZW50UnVs
ZUNvbGxlY3Rvcjo6bWF0Y2hBdXRob3JSdWxlcyhib29sIGluY2x1ZGVFbXB0eVJ1bGVzKQogICAg
ICAgICBtYXRjaEF1dGhvclNoYWRvd1BzZXVkb0VsZW1lbnRSdWxlcyhpbmNsdWRlRW1wdHlSdWxl
cywgcnVsZVJhbmdlKTsKICAgICAgICAgbWF0Y2hQYXJ0UHNldWRvRWxlbWVudFJ1bGVzKGluY2x1
ZGVFbXB0eVJ1bGVzLCBydWxlUmFuZ2UpOwogICAgIH0KLQotICAgIHNvcnRBbmRUcmFuc2Zlck1h
dGNoZWRSdWxlcygpOwogfQogCiB2b2lkIEVsZW1lbnRSdWxlQ29sbGVjdG9yOjptYXRjaEF1dGhv
clNoYWRvd1BzZXVkb0VsZW1lbnRSdWxlcyhib29sIGluY2x1ZGVFbXB0eVJ1bGVzLCBTdHlsZVJl
c29sdmVyOjpSdWxlUmFuZ2UmIHJ1bGVSYW5nZSkKQEAgLTU1NywyNSArNTgxLDM1IEBAIHZvaWQg
RWxlbWVudFJ1bGVDb2xsZWN0b3I6Om1hdGNoQWxsUnVsZXMoYm9vbCBtYXRjaEF1dGhvckFuZFVz
ZXJTdHlsZXMsIGJvb2wgaW5jCiAgICAgICAgIH0KICAgICB9CiAgICAgCi0gICAgLy8gQ2hlY2sg
dGhlIHJ1bGVzIGluIGF1dGhvciBzaGVldHMgbmV4dC4KLSAgICBpZiAobWF0Y2hBdXRob3JBbmRV
c2VyU3R5bGVzKQotICAgICAgICBtYXRjaEF1dGhvclJ1bGVzKGZhbHNlKTsKKyAgICBpZiAobWF0
Y2hBdXRob3JBbmRVc2VyU3R5bGVzKSB7CisgICAgICAgIGNsZWFyTWF0Y2hlZFJ1bGVzKCk7CiAK
LSAgICBpZiAobWF0Y2hBdXRob3JBbmRVc2VyU3R5bGVzICYmIGlzPFN0eWxlZEVsZW1lbnQ+KGVs
ZW1lbnQoKSkpIHsKLSAgICAgICAgYXV0byYgc3R5bGVkRWxlbWVudCA9IGRvd25jYXN0PFN0eWxl
ZEVsZW1lbnQ+KGVsZW1lbnQoKSk7Ci0gICAgICAgIC8vIE5vdyBjaGVjayBvdXIgaW5saW5lIHN0
eWxlIGF0dHJpYnV0ZS4KLSAgICAgICAgaWYgKHN0eWxlZEVsZW1lbnQuaW5saW5lU3R5bGUoKSkg
ewotICAgICAgICAgICAgLy8gSW5saW5lIHN0eWxlIGlzIGltbXV0YWJsZSBhcyBsb25nIGFzIHRo
ZXJlIGlzIG5vIENTU09NIHdyYXBwZXIuCi0gICAgICAgICAgICAvLyBGSVhNRTogTWVkaWEgY29u
dHJvbCBzaGFkb3cgdHJlZXMgc2VlbSB0byBoYXZlIHByb2JsZW1zIHdpdGggY2FjaGluZy4KLSAg
ICAgICAgICAgIGJvb2wgaXNJbmxpbmVTdHlsZUNhY2hlYWJsZSA9ICFzdHlsZWRFbGVtZW50Lmlu
bGluZVN0eWxlKCktPmlzTXV0YWJsZSgpICYmICFzdHlsZWRFbGVtZW50LmlzSW5TaGFkb3dUcmVl
KCk7Ci0gICAgICAgICAgICAvLyBGSVhNRTogQ29uc3RpZnkuCi0gICAgICAgICAgICBhZGRFbGVt
ZW50U3R5bGVQcm9wZXJ0aWVzKHN0eWxlZEVsZW1lbnQuaW5saW5lU3R5bGUoKSwgaXNJbmxpbmVT
dHlsZUNhY2hlYWJsZSk7Ci0gICAgICAgIH0KKyAgICAgICAgY29sbGVjdE1hdGNoaW5nQXV0aG9y
UnVsZXMoZmFsc2UpOworCisgICAgICAgIHNvcnRNYXRjaGVkUnVsZXMoKTsKKyAgICAgICAgdHJh
bnNmZXJNYXRjaGVkUnVsZXMoU3R5bGU6OlNjb3BlT3JkaW5hbDo6RWxlbWVudCk7CiAKLSAgICAg
ICAgLy8gTm93IGNoZWNrIFNNSUwgYW5pbWF0aW9uIG92ZXJyaWRlIHN0eWxlLgotICAgICAgICBp
ZiAoaW5jbHVkZVNNSUxQcm9wZXJ0aWVzICYmIGlzPFNWR0VsZW1lbnQ+KHN0eWxlZEVsZW1lbnQp
KQotICAgICAgICAgICAgYWRkRWxlbWVudFN0eWxlUHJvcGVydGllcyhkb3duY2FzdDxTVkdFbGVt
ZW50PihzdHlsZWRFbGVtZW50KS5hbmltYXRlZFNNSUxTdHlsZVByb3BlcnRpZXMoKSwgZmFsc2Ug
LyogaXNDYWNoZWFibGUgKi8pOworICAgICAgICAvLyBJbmxpbmUgc3R5bGUgYmVoYXZlcyBhcyBp
ZiBpdCBoYXMgaGlnaGVyIHNwZWNpZmljaXR5IHRoYW4gYW55IHJ1bGUuCisgICAgICAgIGFkZEVs
ZW1lbnRJbmxpbmVTdHlsZVByb3BlcnRpZXMoaW5jbHVkZVNNSUxQcm9wZXJ0aWVzKTsKKworICAg
ICAgICAvLyBSdWxlcyBmcm9tIHRoZSBob3N0IHNjb3BlIG92ZXJyaWRlIGlubGluZSBzdHlsZS4K
KyAgICAgICAgdHJhbnNmZXJNYXRjaGVkUnVsZXMoU3R5bGU6OlNjb3BlT3JkaW5hbDo6Q29udGFp
bmluZ0hvc3QpOworICAgIH0KK30KKwordm9pZCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6YWRkRWxl
bWVudElubGluZVN0eWxlUHJvcGVydGllcyhib29sIGluY2x1ZGVTTUlMUHJvcGVydGllcykKK3sK
KyAgICBpZiAoIWlzPFN0eWxlZEVsZW1lbnQ+KGVsZW1lbnQoKSkpCisgICAgICAgIHJldHVybjsK
KworICAgIGlmIChhdXRvKiBpbmxpbmVTdHlsZSA9IGRvd25jYXN0PFN0eWxlZEVsZW1lbnQ+KGVs
ZW1lbnQoKSkuaW5saW5lU3R5bGUoKSkgeworICAgICAgICAvLyBGSVhNRTogTWVkaWEgY29udHJv
bCBzaGFkb3cgdHJlZXMgc2VlbSB0byBoYXZlIHByb2JsZW1zIHdpdGggY2FjaGluZy4KKyAgICAg
ICAgYm9vbCBpc0lubGluZVN0eWxlQ2FjaGVhYmxlID0gIWlubGluZVN0eWxlLT5pc011dGFibGUo
KSAmJiAhZWxlbWVudCgpLmlzSW5TaGFkb3dUcmVlKCk7CisgICAgICAgIGFkZEVsZW1lbnRTdHls
ZVByb3BlcnRpZXMoaW5saW5lU3R5bGUsIGlzSW5saW5lU3R5bGVDYWNoZWFibGUpOwogICAgIH0K
KworICAgIGlmIChpbmNsdWRlU01JTFByb3BlcnRpZXMgJiYgaXM8U1ZHRWxlbWVudD4oZWxlbWVu
dCgpKSkKKyAgICAgICAgYWRkRWxlbWVudFN0eWxlUHJvcGVydGllcyhkb3duY2FzdDxTVkdFbGVt
ZW50PihlbGVtZW50KCkpLmFuaW1hdGVkU01JTFN0eWxlUHJvcGVydGllcygpLCBmYWxzZSAvKiBp
c0NhY2hlYWJsZSAqLyk7CiB9CiAKIGJvb2wgRWxlbWVudFJ1bGVDb2xsZWN0b3I6Omhhc0FueU1h
dGNoaW5nUnVsZXMoY29uc3QgUnVsZVNldCogcnVsZVNldCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9FbGVtZW50UnVsZUNvbGxlY3Rvci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0Vs
ZW1lbnRSdWxlQ29sbGVjdG9yLmgKaW5kZXggMTk4MjlkYjE0OWYuLjc4NjdlOWI0NWRlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRWxlbWVudFJ1bGVDb2xsZWN0b3IuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvRWxlbWVudFJ1bGVDb2xsZWN0b3IuaApAQCAtNTIsNiArNTIsOCBA
QCBwdWJsaWM6CiAgICAgdm9pZCBtYXRjaEF1dGhvclJ1bGVzKGJvb2wgaW5jbHVkZUVtcHR5UnVs
ZXMpOwogICAgIHZvaWQgbWF0Y2hVc2VyUnVsZXMoYm9vbCBpbmNsdWRlRW1wdHlSdWxlcyk7CiAK
KyAgICBib29sIG1hdGNoZXNBbnlBdXRob3JSdWxlcygpOworCiAgICAgdm9pZCBzZXRNb2RlKFNl
bGVjdG9yQ2hlY2tlcjo6TW9kZSBtb2RlKSB7IG1fbW9kZSA9IG1vZGU7IH0KICAgICB2b2lkIHNl
dFBzZXVkb1N0eWxlUmVxdWVzdChjb25zdCBQc2V1ZG9TdHlsZVJlcXVlc3QmIHJlcXVlc3QpIHsg
bV9wc2V1ZG9TdHlsZVJlcXVlc3QgPSByZXF1ZXN0OyB9CiAgICAgdm9pZCBzZXRNZWRpdW0oY29u
c3QgTWVkaWFRdWVyeUV2YWx1YXRvciogbWVkaXVtKSB7IG1faXNQcmludFN0eWxlID0gbWVkaXVt
LT5tZWRpYVR5cGVNYXRjaFNwZWNpZmljKCJwcmludCIpOyB9CkBAIC02MSw3ICs2Myw2IEBAIHB1
YmxpYzoKICAgICBTdHlsZVJlc29sdmVyOjpNYXRjaFJlc3VsdCYgbWF0Y2hlZFJlc3VsdCgpOwog
ICAgIGNvbnN0IFZlY3RvcjxSZWZQdHI8U3R5bGVSdWxlPj4mIG1hdGNoZWRSdWxlTGlzdCgpIGNv
bnN0OwogCi0gICAgYm9vbCBoYXNNYXRjaGVkUnVsZXMoKSBjb25zdCB7IHJldHVybiAhbV9tYXRj
aGVkUnVsZXMuaXNFbXB0eSgpOyB9CiAgICAgdm9pZCBjbGVhck1hdGNoZWRSdWxlcygpOwogCiAg
ICAgY29uc3QgUHNldWRvSWRTZXQmIG1hdGNoZWRQc2V1ZG9FbGVtZW50SWRzKCkgY29uc3QgeyBy
ZXR1cm4gbV9tYXRjaGVkUHNldWRvRWxlbWVudElkczsgfQpAQCAtNzIsNiArNzMsMTAgQEAgcHJp
dmF0ZToKICAgICB2b2lkIGFkZEVsZW1lbnRTdHlsZVByb3BlcnRpZXMoY29uc3QgU3R5bGVQcm9w
ZXJ0aWVzKiwgYm9vbCBpc0NhY2hlYWJsZSA9IHRydWUpOwogCiAgICAgdm9pZCBtYXRjaFVBUnVs
ZXMoY29uc3QgUnVsZVNldCYpOworCisgICAgdm9pZCBjb2xsZWN0TWF0Y2hpbmdBdXRob3JSdWxl
cyhib29sIGluY2x1ZGVFbXB0eVJ1bGVzKTsKKyAgICB2b2lkIGFkZEVsZW1lbnRJbmxpbmVTdHls
ZVByb3BlcnRpZXMoYm9vbCBpbmNsdWRlU01JTFByb3BlcnRpZXMpOworCiAgICAgdm9pZCBtYXRj
aEF1dGhvclNoYWRvd1BzZXVkb0VsZW1lbnRSdWxlcyhib29sIGluY2x1ZGVFbXB0eVJ1bGVzLCBT
dHlsZVJlc29sdmVyOjpSdWxlUmFuZ2UmKTsKICAgICB2b2lkIG1hdGNoSG9zdFBzZXVkb0NsYXNz
UnVsZXMoYm9vbCBpbmNsdWRlRW1wdHlSdWxlcywgU3R5bGVSZXNvbHZlcjo6UnVsZVJhbmdlJik7
CiAgICAgdm9pZCBtYXRjaFNsb3R0ZWRQc2V1ZG9FbGVtZW50UnVsZXMoYm9vbCBpbmNsdWRlRW1w
dHlSdWxlcywgU3R5bGVSZXNvbHZlcjo6UnVsZVJhbmdlJik7CkBAIC04Nyw2ICs5Miw3IEBAIHBy
aXZhdGU6CiAKICAgICB2b2lkIHNvcnRNYXRjaGVkUnVsZXMoKTsKICAgICB2b2lkIHNvcnRBbmRU
cmFuc2Zlck1hdGNoZWRSdWxlcygpOworICAgIHZvaWQgdHJhbnNmZXJNYXRjaGVkUnVsZXMoU3R5
bGU6OlNjb3BlT3JkaW5hbCBmb3JTY29wZSk7CiAKICAgICB2b2lkIGFkZE1hdGNoZWRSdWxlKGNv
bnN0IFJ1bGVEYXRhJiwgdW5zaWduZWQgc3BlY2lmaWNpdHksIFN0eWxlOjpTY29wZU9yZGluYWws
IFN0eWxlUmVzb2x2ZXI6OlJ1bGVSYW5nZSYpOwogCkBAIC0xMDcsNiArMTEzLDcgQEAgcHJpdmF0
ZToKICAgICBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFJ1bGVTZXQ6OlJ1bGVEYXRhVmVjdG9yPj4g
bV9rZWVwQWxpdmVTbG90dGVkUHNldWRvRWxlbWVudFJ1bGVzOwogCiAgICAgVmVjdG9yPE1hdGNo
ZWRSdWxlLCA2ND4gbV9tYXRjaGVkUnVsZXM7CisgICAgc2l6ZV90IG1fbWF0Y2hlZFJ1bGVUcmFu
c2ZlckluZGV4IHsgMCB9OwogCiAgICAgLy8gT3V0cHV0LgogICAgIFZlY3RvcjxSZWZQdHI8U3R5
bGVSdWxlPj4gbV9tYXRjaGVkUnVsZUxpc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvU3R5bGVQcm9wZXJ0aWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVz
LmgKaW5kZXggMGNhN2U2MTM0NjguLjM3MDM2NzFhM2Q3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxl
UHJvcGVydGllcy5oCkBAIC01MCw3ICs1MCw3IEBAIGNsYXNzIFN0eWxlUHJvcGVydGllc0Jhc2Ug
OiBwdWJsaWMgUmVmQ291bnRlZDxTdHlsZVByb3BlcnRpZXNCYXNlPiB7CiBwdWJsaWM6CiAgICAg
Ly8gT3ZlcnJpZGUgUmVmQ291bnRlZCdzIGRlcmVmKCkgdG8gZW5zdXJlIG9wZXJhdG9yIGRlbGV0
ZSBpcyBjYWxsZWQgb24KICAgICAvLyB0aGUgYXBwcm9wcmlhdGUgc3ViY2xhc3MgdHlwZS4KLSAg
ICB2b2lkIGRlcmVmKCk7CisgICAgdm9pZCBkZXJlZigpIGNvbnN0OwogICAgIAogICAgIFN0eWxl
UHJvcGVydGllc1R5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFN0eWxlUHJv
cGVydGllc1R5cGU+KG1fdHlwZSk7IH0KIApAQCAtMzA1LDcgKzMwNSw3IEBAIGlubGluZSB1bnNp
Z25lZCBTdHlsZVByb3BlcnRpZXM6OnByb3BlcnR5Q291bnQoKSBjb25zdAogICAgIHJldHVybiBk
b3duY2FzdDxJbW11dGFibGVTdHlsZVByb3BlcnRpZXM+KCp0aGlzKS5wcm9wZXJ0eUNvdW50KCk7
CiB9CiAKLWlubGluZSB2b2lkIFN0eWxlUHJvcGVydGllc0Jhc2U6OmRlcmVmKCkKK2lubGluZSB2
b2lkIFN0eWxlUHJvcGVydGllc0Jhc2U6OmRlcmVmKCkgY29uc3QKIHsKICAgICBpZiAoIWRlcmVm
QmFzZSgpKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9TdHlsZUludmFsaWRhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlSW52YWxp
ZGF0b3IuY3BwCmluZGV4IDFmMjNlYmY2OGRkLi41ODQyOTIxN2ViYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVJbnZhbGlkYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvc3R5bGUvU3R5bGVJbnZhbGlkYXRvci5jcHAKQEAgLTExNSwxMCArMTE1LDEwIEBAIEludmFs
aWRhdG9yOjpDaGVja0Rlc2NlbmRhbnRzIEludmFsaWRhdG9yOjppbnZhbGlkYXRlSWZOZWVkZWQo
RWxlbWVudCYgZWxlbWVudCwKICAgICBjYXNlIFN0eWxlOjpWYWxpZGl0eTo6VmFsaWQ6IHsKICAg
ICAgICAgRWxlbWVudFJ1bGVDb2xsZWN0b3IgcnVsZUNvbGxlY3RvcihlbGVtZW50LCBtX3J1bGVT
ZXQsIGZpbHRlcik7CiAgICAgICAgIHJ1bGVDb2xsZWN0b3Iuc2V0TW9kZShTZWxlY3RvckNoZWNr
ZXI6Ok1vZGU6OkNvbGxlY3RpbmdSdWxlc0lnbm9yaW5nVmlydHVhbFBzZXVkb0VsZW1lbnRzKTsK
LSAgICAgICAgcnVsZUNvbGxlY3Rvci5tYXRjaEF1dGhvclJ1bGVzKGZhbHNlKTsKIAotICAgICAg
ICBpZiAocnVsZUNvbGxlY3Rvci5oYXNNYXRjaGVkUnVsZXMoKSkKKyAgICAgICAgaWYgKHJ1bGVD
b2xsZWN0b3IubWF0Y2hlc0FueUF1dGhvclJ1bGVzKCkpCiAgICAgICAgICAgICBlbGVtZW50Lmlu
dmFsaWRhdGVTdHlsZUludGVybmFsKCk7CisKICAgICAgICAgcmV0dXJuIENoZWNrRGVzY2VuZGFu
dHM6OlllczsKICAgICB9CiAgICAgY2FzZSBTdHlsZTo6VmFsaWRpdHk6OkVsZW1lbnRJbnZhbGlk
OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZS5oIGIvU291cmNl
L1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZS5oCmluZGV4IDdmNTUwMDUyNGYyLi4xOGZmYzNiY2U5
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGUuaApAQCAtNTUsMTAgKzU1LDExIEBAIG5hbWVz
cGFjZSBTdHlsZSB7CiAvLyBUaGlzIGlzIHVzZWQgdG8gaWRlbnRpZnkgc3R5bGUgc2NvcGVzIHRo
YXQgY2FuIGFmZmVjdCBhbiBlbGVtZW50LgogLy8gU2NvcGVzIGFyZSBpbiB0cmVlLW9mLXRyZWVz
IG9yZGVyLiBTdHlsZXMgZnJvbSBlYXJsaWVyIHNjb3BlcyB3aW4gb3ZlciBsYXRlciBvbmVzICht
b2R1bG8gIWltcG9ydGFudCkuCiBlbnVtIGNsYXNzIFNjb3BlT3JkaW5hbCA6IGludCB7Ci0gICAg
Q29udGFpbmluZ0hvc3QgPSAtMSwgLy8gQXV0aG9yLWV4cG9zZWQgVUEgcHNldWRvIGNsYXNzZXMg
ZnJvbSB0aGUgaG9zdCB0cmVlIHNjb3BlLgorICAgIENvbnRhaW5pbmdIb3N0ID0gLTEsIC8vIDo6
cGFydCBydWxlcyBhbmQgYXV0aG9yLWV4cG9zZWQgVUEgcHNldWRvIGNsYXNzZXMgZnJvbSB0aGUg
aG9zdCB0cmVlIHNjb3BlLgogICAgIEVsZW1lbnQgPSAwLCAvLyBOb3JtYWwgcnVsZXMgaW4gdGhl
IHNhbWUgdHJlZSB3aGVyZSB0aGUgZWxlbWVudCBpcy4KICAgICBGaXJzdFNsb3QgPSAxLCAvLyA6
OnNsb3R0ZWQgcnVsZXMgaW4gdGhlIHBhcmVudCdzIHNoYWRvdyB0cmVlLiBWYWx1ZXMgZ3JlYXRl
ciB0aGFuIEZpcnN0U2xvdCBpbmRpY2F0ZSBzdWJzZXF1ZW50IHNsb3RzIGluIHRoZSBjaGFpbi4K
ICAgICBTaGFkb3cgPSBzdGQ6Om51bWVyaWNfbGltaXRzPGludD46Om1heCgpLCAvLyA6aG9zdCBy
dWxlcyBpbiBlbGVtZW50J3Mgb3duIHNoYWRvdyB0cmVlLgorICAgIExvd2VzdCA9IENvbnRhaW5p
bmdIb3N0LAogfTsKIAogY2xhc3MgU2NvcGUgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381189</attachid>
            <date>2019-10-17 04:43:19 -0700</date>
            <delta_ts>2019-10-18 02:28:37 -0700</delta_ts>
            <desc>patch</desc>
            <filename>css-shadow-parts-inline-3.patch</filename>
            <type>text/plain</type>
            <size>17762</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDViNjAzN2JjZDgxLi41YjgyZTQ2Yzk0
MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTkt
MTAtMTYgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgorCisgICAgICAgIFtDU1Mg
U2hhZG93IFBhcnRzXSBJbmNvbXBhdGlibGUgc3R5bGUgYXR0cmlidXRlIGJlaGF2aW9yIHdpdGgg
Q2hyb21pdW0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwMjkxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2hhZG93LXBhcnRzL3NpbXBsZS1pbmxpbmUt
ZXhwZWN0ZWQudHh0OgorCiAyMDE5LTEwLTE2ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxl
LmNvbT4KIAogICAgICAgICBbQ1NTIFNoYWRvdyBQYXJ0c10gSW1wb3J0IGNzcy9jc3Mtc2hhZG93
LXBhcnRzL3NpbXBsZS1pbmxpbmUuaHRtbCBXUFQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zaGFkb3ctcGFydHMvc2ltcGxl
LWlubGluZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3Mtc2hhZG93LXBhcnRzL3NpbXBsZS1pbmxpbmUtZXhwZWN0ZWQudHh0
CmluZGV4IGY5NzA0YTc3MTRjLi5jNTcxMGM3NDU1NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNoYWRvdy1wYXJ0cy9zaW1w
bGUtaW5saW5lLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2hhZG93LXBhcnRzL3NpbXBsZS1pbmxpbmUtZXhwZWN0
ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAogVGhlIGZvbGxvd2luZyB0ZXh0IHNob3VsZCBiZSBncmVl
bjogCiAKLUZBSUwgUGFydCBpbiBzZWxlY3RlZCBob3N0IGlzIHN0eWxlZCBhc3NlcnRfZXF1YWxz
OiBleHBlY3RlZCAicmdiKDAsIDEyOCwgMCkiIGJ1dCBnb3QgInJnYigyNTUsIDAsIDApIgorUEFT
UyBQYXJ0IGluIHNlbGVjdGVkIGhvc3QgaXMgc3R5bGVkIAogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTU2NjQ2
NDdjMTIuLmI5MWYzN2YyMDQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjUgQEAKKzIwMTktMTAt
MTcgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgorCisgICAgICAgIFtDU1MgU2hh
ZG93IFBhcnRzXSBJbmNvbXBhdGlibGUgc3R5bGUgYXR0cmlidXRlIGJlaGF2aW9yIHdpdGggQ2hy
b21pdW0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
MjkxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIElu
bGluZSBzdHlsZSB3YXMgc2ltcGx5IGFwcGVuZGVkIHRvIHRoZSBtYXRjaGluZyBkZWNsYXJhdGlv
biBsaXN0IGFuZCBub3Qgc29ydGVkIHdpdGggdGhlIHJlc3Qgb2YgdGhlIGF1dGhvciBzdHlsZS4K
KyAgICAgICAgVGhpcyB1c2VkIHRvIHdvcmsgYmVjYXVzZSBiZWZvcmUgQ1NTIFNoYWRvdyBQYXJ0
cyBmZWF0dXJlIGlubGluZSBzdHlsZSB3b3VsZCBhbHdheXMgd2luLgorCisgICAgICAgICogY3Nz
L0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRSdWxl
Q29sbGVjdG9yOjphZGRNYXRjaGVkUnVsZSk6CisKKyAgICAgICAgQm90aCBpbml0aWFsaXplIGFu
ZCB1cGRhdGUgcmFuZ2VzIGhlcmUuCisKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRSdWxlQ29s
bGVjdG9yOjpjbGVhck1hdGNoZWRSdWxlcyk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50UnVs
ZUNvbGxlY3Rvcjo6YWRkRWxlbWVudFN0eWxlUHJvcGVydGllcyk6CisKKyAgICAgICAgQm90aCBp
bml0aWFsaXplIGFuZCB1cGRhdGUgcmFuZ2VzIGhlcmUuCisKKyAgICAgICAgKFdlYkNvcmU6OkVs
ZW1lbnRSdWxlQ29sbGVjdG9yOjpzb3J0QW5kVHJhbnNmZXJNYXRjaGVkUnVsZXMpOgorCisgICAg
ICAgIFNwbGl0IG91dCB0cmFuc2ZlcmluZyB0byBhIHNlcGFyYXRlIGZ1bmN0aW9uLgorCisgICAg
ICAgIChXZWJDb3JlOjpFbGVtZW50UnVsZUNvbGxlY3Rvcjo6dHJhbnNmZXJNYXRjaGVkUnVsZXMp
OgorCisgICAgICAgIEFkZCBhIHBhcmFtZXRlciB0byBsaW1pdCB0cmFuc2ZlciB0byBydWxlcyBm
cm9tIGEgc2NvcGUuCisKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRSdWxlQ29sbGVjdG9yOjpt
YXRjaEF1dGhvclJ1bGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRSdWxlQ29sbGVjdG9y
OjptYXRjaGVzQW55QXV0aG9yUnVsZXMpOgorCisgICAgICAgIFJlcGxhY2UgaGFzTWF0Y2hlZFJ1
bGVzKCkgd2l0aCBhIG1vcmUgc3BlY2lmaWMgZnVuY3Rpb24uIFRoaXMgY2FuIHVzZSBjb2xsZWN0
TWF0Y2hpbmdBdXRob3JSdWxlcyBhbmQgYXZvaWRzIHVubmVjZXNzYXJ5IHNvcnRpbmcgc3RlcC4K
KworICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFJ1bGVDb2xsZWN0b3I6OmNvbGxlY3RNYXRjaGlu
Z0F1dGhvclJ1bGVzKToKKworICAgICAgICBTcGxpdCBvdXQgY29sbGVjdGluZyB0aGUgcnVsZXMg
ZnJvbSBtYXRjaEF1dGhvclJ1bGVzLiBMaWtlIG90aGVyIGNvbGxlY3QgZnVuY3Rpb25zLCB0aGlz
IGRvZXNuJ3QgZG8gYW55IHNvcnRpbmcuCisKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRSdWxl
Q29sbGVjdG9yOjptYXRjaEFsbFJ1bGVzKToKKworICAgICAgICBBZGQgZWxlbWVudCBpbmxpbmUg
c3R5bGUgYmVmb3JlIHRyYW5zZmVyaW5nIHJ1bGVzIGZyb20gdGhlIGNvbnRhaW5pbmcgaG9zdCBz
Y29wZS4KKworICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFJ1bGVDb2xsZWN0b3I6OmFkZEVsZW1l
bnRJbmxpbmVTdHlsZVByb3BlcnRpZXMpOgorCisgICAgICAgIEZhY3RvciBhZGRpbmcgaW5saW5l
IHN0eWxlIGludG8gYSBmdW5jdGlvbi4KKworXSAgICAgICAgKiBjc3MvRWxlbWVudFJ1bGVDb2xs
ZWN0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRSdWxlQ29sbGVjdG9yOjpoYXNNYXRj
aGVkUnVsZXMgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGNzcy9TdHlsZVByb3BlcnRpZXMu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUHJvcGVydGllc0Jhc2U6OmRlcmVmIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUHJvcGVydGllc0Jhc2U6OmRlcmVmKTogRGVsZXRlZC4K
KworICAgICAgICBNYWtlIGNvbnN0IHRvIGFsbG93IFJlZlB0cjxjb25zdCBTdHlsZVByb3BlcnRp
ZXM+CisKKyAgICAgICAgKiBjc3MvU3R5bGVSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTdHlsZVJlc29sdmVyOjpDYXNjYWRlZFByb3BlcnRpZXM6OmFkZEltcG9ydGFudE1hdGNoZXMp
OgorCisgICAgICAgIFNvcnQgIWltcG9ydGFudCBwcm9wZXJ0aWVzIHRha2luZyBpbnRvIGFjY291
bnQgdGhhdCB0aGUgaG9zdCBzY29wZSBoYXMgbG93ZXIgcHJpb3JpdHkuCisKKyAgICAgICAgKiBz
dHlsZS9TdHlsZUludmFsaWRhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpJbnZh
bGlkYXRvcjo6aW52YWxpZGF0ZUlmTmVlZGVkKToKKyAgICAgICAgKiBzdHlsZS9TdHlsZVNjb3Bl
Lmg6CisKIDIwMTktMTAtMTYgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFtHVEtdW1dQRV0gQVNTRVJUSU9OIEZBSUxFRDogYmxvYiBpbiBTUUxp
dGVTdGF0ZW1lbnQuY3BwKDE2MykgOiBpbnQgV2ViQ29yZTo6U1FMaXRlU3RhdGVtZW50OjpiaW5k
QmxvYigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRWxlbWVudFJ1bGVDb2xsZWN0
b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcAppbmRl
eCA4NTk5Zjg2NzI0ZC4uZjI1MjIxZjZkZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0VsZW1l
bnRSdWxlQ29sbGVjdG9yLmNwcApAQCAtMTEyLDkgKzExMiwxMiBAQCBjb25zdCBWZWN0b3I8UmVm
UHRyPFN0eWxlUnVsZT4+JiBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6bWF0Y2hlZFJ1bGVMaXN0KCkg
Y29uc3QKIGlubGluZSB2b2lkIEVsZW1lbnRSdWxlQ29sbGVjdG9yOjphZGRNYXRjaGVkUnVsZShj
b25zdCBSdWxlRGF0YSYgcnVsZURhdGEsIHVuc2lnbmVkIHNwZWNpZmljaXR5LCBTdHlsZTo6U2Nv
cGVPcmRpbmFsIHN0eWxlU2NvcGVPcmRpbmFsLCBTdHlsZVJlc29sdmVyOjpSdWxlUmFuZ2UmIHJ1
bGVSYW5nZSkKIHsKICAgICAvLyBVcGRhdGUgb3VyIGZpcnN0L2xhc3QgcnVsZSBpbmRpY2VzIGlu
IHRoZSBtYXRjaGVkIHJ1bGVzIGFycmF5LgotICAgICsrcnVsZVJhbmdlLmxhc3RSdWxlSW5kZXg7
Ci0gICAgaWYgKHJ1bGVSYW5nZS5maXJzdFJ1bGVJbmRleCA9PSAtMSkKKyAgICBpZiAocnVsZVJh
bmdlLmxhc3RSdWxlSW5kZXggIT0gLTEpCisgICAgICAgICsrcnVsZVJhbmdlLmxhc3RSdWxlSW5k
ZXg7CisgICAgZWxzZSB7CisgICAgICAgIHJ1bGVSYW5nZS5sYXN0UnVsZUluZGV4ID0gbV9yZXN1
bHQubWF0Y2hlZFByb3BlcnRpZXMoKS5zaXplKCk7CiAgICAgICAgIHJ1bGVSYW5nZS5maXJzdFJ1
bGVJbmRleCA9IHJ1bGVSYW5nZS5sYXN0UnVsZUluZGV4OworICAgIH0KIAogICAgIG1fbWF0Y2hl
ZFJ1bGVzLmFwcGVuZCh7ICZydWxlRGF0YSwgc3BlY2lmaWNpdHksIHN0eWxlU2NvcGVPcmRpbmFs
IH0pOwogfQpAQCAtMTIzLDE1ICsxMjYsMjEgQEAgdm9pZCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6
Y2xlYXJNYXRjaGVkUnVsZXMoKQogewogICAgIG1fbWF0Y2hlZFJ1bGVzLmNsZWFyKCk7CiAgICAg
bV9rZWVwQWxpdmVTbG90dGVkUHNldWRvRWxlbWVudFJ1bGVzLmNsZWFyKCk7CisgICAgbV9tYXRj
aGVkUnVsZVRyYW5zZmVySW5kZXggPSAwOwogfQogCiBpbmxpbmUgdm9pZCBFbGVtZW50UnVsZUNv
bGxlY3Rvcjo6YWRkRWxlbWVudFN0eWxlUHJvcGVydGllcyhjb25zdCBTdHlsZVByb3BlcnRpZXMq
IHByb3BlcnR5U2V0LCBib29sIGlzQ2FjaGVhYmxlKQogewogICAgIGlmICghcHJvcGVydHlTZXQp
CiAgICAgICAgIHJldHVybjsKLSAgICBtX3Jlc3VsdC5yYW5nZXMubGFzdEF1dGhvclJ1bGUgPSBt
X3Jlc3VsdC5tYXRjaGVkUHJvcGVydGllcygpLnNpemUoKTsKLSAgICBpZiAobV9yZXN1bHQucmFu
Z2VzLmZpcnN0QXV0aG9yUnVsZSA9PSAtMSkKKworICAgIGlmIChtX3Jlc3VsdC5yYW5nZXMubGFz
dEF1dGhvclJ1bGUgIT0gLTEpCisgICAgICAgICsrbV9yZXN1bHQucmFuZ2VzLmxhc3RBdXRob3JS
dWxlOworICAgIGVsc2UgeworICAgICAgICBtX3Jlc3VsdC5yYW5nZXMubGFzdEF1dGhvclJ1bGUg
PSBtX3Jlc3VsdC5tYXRjaGVkUHJvcGVydGllcygpLnNpemUoKTsKICAgICAgICAgbV9yZXN1bHQu
cmFuZ2VzLmZpcnN0QXV0aG9yUnVsZSA9IG1fcmVzdWx0LnJhbmdlcy5sYXN0QXV0aG9yUnVsZTsK
KyAgICB9CisKICAgICBtX3Jlc3VsdC5hZGRNYXRjaGVkUHJvcGVydGllcygqcHJvcGVydHlTZXQp
OwogICAgIGlmICghaXNDYWNoZWFibGUpCiAgICAgICAgIG1fcmVzdWx0LmlzQ2FjaGVhYmxlID0g
ZmFsc2U7CkBAIC0xNzEsMTMgKzE4MCwyMSBAQCB2b2lkIEVsZW1lbnRSdWxlQ29sbGVjdG9yOjpz
b3J0QW5kVHJhbnNmZXJNYXRjaGVkUnVsZXMoKQogCiAgICAgc29ydE1hdGNoZWRSdWxlcygpOwog
Ci0gICAgaWYgKG1fbW9kZSA9PSBTZWxlY3RvckNoZWNrZXI6Ok1vZGU6OkNvbGxlY3RpbmdSdWxl
cykgewotICAgICAgICBmb3IgKGNvbnN0IE1hdGNoZWRSdWxlJiBtYXRjaGVkUnVsZSA6IG1fbWF0
Y2hlZFJ1bGVzKQorICAgIHRyYW5zZmVyTWF0Y2hlZFJ1bGVzKFN0eWxlOjpTY29wZU9yZGluYWw6
Okxvd2VzdCk7Cit9CisKK3ZvaWQgRWxlbWVudFJ1bGVDb2xsZWN0b3I6OnRyYW5zZmVyTWF0Y2hl
ZFJ1bGVzKFN0eWxlOjpTY29wZU9yZGluYWwgZnJvbVNjb3BlKQoreworICAgIGZvciAoOyBtX21h
dGNoZWRSdWxlVHJhbnNmZXJJbmRleCA8IG1fbWF0Y2hlZFJ1bGVzLnNpemUoKTsgKyttX21hdGNo
ZWRSdWxlVHJhbnNmZXJJbmRleCkgeworICAgICAgICBhdXRvJiBtYXRjaGVkUnVsZSA9IG1fbWF0
Y2hlZFJ1bGVzW21fbWF0Y2hlZFJ1bGVUcmFuc2ZlckluZGV4XTsKKyAgICAgICAgaWYgKG1hdGNo
ZWRSdWxlLnN0eWxlU2NvcGVPcmRpbmFsIDwgZnJvbVNjb3BlKQorICAgICAgICAgICAgYnJlYWs7
CisKKyAgICAgICAgaWYgKG1fbW9kZSA9PSBTZWxlY3RvckNoZWNrZXI6Ok1vZGU6OkNvbGxlY3Rp
bmdSdWxlcykgewogICAgICAgICAgICAgbV9tYXRjaGVkUnVsZUxpc3QuYXBwZW5kKG1hdGNoZWRS
dWxlLnJ1bGVEYXRhLT5ydWxlKCkpOwotICAgICAgICByZXR1cm47Ci0gICAgfQorICAgICAgICAg
ICAgY29udGludWU7CisgICAgICAgIH0KIAotICAgIGZvciAoY29uc3QgTWF0Y2hlZFJ1bGUmIG1h
dGNoZWRSdWxlIDogbV9tYXRjaGVkUnVsZXMpIHsKICAgICAgICAgbV9yZXN1bHQuYWRkTWF0Y2hl
ZFByb3BlcnRpZXMobWF0Y2hlZFJ1bGUucnVsZURhdGEtPnJ1bGUoKS0+cHJvcGVydGllcygpLCBt
YXRjaGVkUnVsZS5ydWxlRGF0YS0+cnVsZSgpLCBtYXRjaGVkUnVsZS5ydWxlRGF0YS0+bGlua01h
dGNoVHlwZSgpLCBtYXRjaGVkUnVsZS5ydWxlRGF0YS0+cHJvcGVydHlXaGl0ZWxpc3RUeXBlKCks
IG1hdGNoZWRSdWxlLnN0eWxlU2NvcGVPcmRpbmFsKTsKICAgICB9CiB9CkBAIC0xODYsNyArMjAz
LDIzIEBAIHZvaWQgRWxlbWVudFJ1bGVDb2xsZWN0b3I6Om1hdGNoQXV0aG9yUnVsZXMoYm9vbCBp
bmNsdWRlRW1wdHlSdWxlcykKIHsKICAgICBjbGVhck1hdGNoZWRSdWxlcygpOwogCi0gICAgbV9y
ZXN1bHQucmFuZ2VzLmxhc3RBdXRob3JSdWxlID0gbV9yZXN1bHQubWF0Y2hlZFByb3BlcnRpZXMo
KS5zaXplKCkgLSAxOworICAgIGNvbGxlY3RNYXRjaGluZ0F1dGhvclJ1bGVzKGluY2x1ZGVFbXB0
eVJ1bGVzKTsKKworICAgIHNvcnRBbmRUcmFuc2Zlck1hdGNoZWRSdWxlcygpOworfQorCitib29s
IEVsZW1lbnRSdWxlQ29sbGVjdG9yOjptYXRjaGVzQW55QXV0aG9yUnVsZXMoKQoreworICAgIGNs
ZWFyTWF0Y2hlZFJ1bGVzKCk7CisKKyAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgYmFpbCBvdXQg
b24gZmlyc3QgbWF0Y2guCisgICAgY29sbGVjdE1hdGNoaW5nQXV0aG9yUnVsZXMoZmFsc2UpOwor
CisgICAgcmV0dXJuICFtX21hdGNoZWRSdWxlcy5pc0VtcHR5KCk7Cit9CisKK3ZvaWQgRWxlbWVu
dFJ1bGVDb2xsZWN0b3I6OmNvbGxlY3RNYXRjaGluZ0F1dGhvclJ1bGVzKGJvb2wgaW5jbHVkZUVt
cHR5UnVsZXMpCit7CiAgICAgU3R5bGVSZXNvbHZlcjo6UnVsZVJhbmdlIHJ1bGVSYW5nZSA9IG1f
cmVzdWx0LnJhbmdlcy5hdXRob3JSdWxlUmFuZ2UoKTsKIAogICAgIHsKQEAgLTIwNSw4ICsyMzgs
NiBAQCB2b2lkIEVsZW1lbnRSdWxlQ29sbGVjdG9yOjptYXRjaEF1dGhvclJ1bGVzKGJvb2wgaW5j
bHVkZUVtcHR5UnVsZXMpCiAgICAgICAgIG1hdGNoQXV0aG9yU2hhZG93UHNldWRvRWxlbWVudFJ1
bGVzKGluY2x1ZGVFbXB0eVJ1bGVzLCBydWxlUmFuZ2UpOwogICAgICAgICBtYXRjaFBhcnRQc2V1
ZG9FbGVtZW50UnVsZXMoaW5jbHVkZUVtcHR5UnVsZXMsIHJ1bGVSYW5nZSk7CiAgICAgfQotCi0g
ICAgc29ydEFuZFRyYW5zZmVyTWF0Y2hlZFJ1bGVzKCk7CiB9CiAKIHZvaWQgRWxlbWVudFJ1bGVD
b2xsZWN0b3I6Om1hdGNoQXV0aG9yU2hhZG93UHNldWRvRWxlbWVudFJ1bGVzKGJvb2wgaW5jbHVk
ZUVtcHR5UnVsZXMsIFN0eWxlUmVzb2x2ZXI6OlJ1bGVSYW5nZSYgcnVsZVJhbmdlKQpAQCAtNTU3
LDI3ICs1ODgsMzcgQEAgdm9pZCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6bWF0Y2hBbGxSdWxlcyhi
b29sIG1hdGNoQXV0aG9yQW5kVXNlclN0eWxlcywgYm9vbCBpbmMKICAgICAgICAgfQogICAgIH0K
ICAgICAKLSAgICAvLyBDaGVjayB0aGUgcnVsZXMgaW4gYXV0aG9yIHNoZWV0cyBuZXh0LgotICAg
IGlmIChtYXRjaEF1dGhvckFuZFVzZXJTdHlsZXMpCi0gICAgICAgIG1hdGNoQXV0aG9yUnVsZXMo
ZmFsc2UpOworICAgIGlmIChtYXRjaEF1dGhvckFuZFVzZXJTdHlsZXMpIHsKKyAgICAgICAgY2xl
YXJNYXRjaGVkUnVsZXMoKTsKIAotICAgIGlmIChtYXRjaEF1dGhvckFuZFVzZXJTdHlsZXMgJiYg
aXM8U3R5bGVkRWxlbWVudD4oZWxlbWVudCgpKSkgewotICAgICAgICBhdXRvJiBzdHlsZWRFbGVt
ZW50ID0gZG93bmNhc3Q8U3R5bGVkRWxlbWVudD4oZWxlbWVudCgpKTsKLSAgICAgICAgLy8gTm93
IGNoZWNrIG91ciBpbmxpbmUgc3R5bGUgYXR0cmlidXRlLgotICAgICAgICBpZiAoc3R5bGVkRWxl
bWVudC5pbmxpbmVTdHlsZSgpKSB7Ci0gICAgICAgICAgICAvLyBJbmxpbmUgc3R5bGUgaXMgaW1t
dXRhYmxlIGFzIGxvbmcgYXMgdGhlcmUgaXMgbm8gQ1NTT00gd3JhcHBlci4KLSAgICAgICAgICAg
IC8vIEZJWE1FOiBNZWRpYSBjb250cm9sIHNoYWRvdyB0cmVlcyBzZWVtIHRvIGhhdmUgcHJvYmxl
bXMgd2l0aCBjYWNoaW5nLgotICAgICAgICAgICAgYm9vbCBpc0lubGluZVN0eWxlQ2FjaGVhYmxl
ID0gIXN0eWxlZEVsZW1lbnQuaW5saW5lU3R5bGUoKS0+aXNNdXRhYmxlKCkgJiYgIXN0eWxlZEVs
ZW1lbnQuaXNJblNoYWRvd1RyZWUoKTsKLSAgICAgICAgICAgIC8vIEZJWE1FOiBDb25zdGlmeS4K
LSAgICAgICAgICAgIGFkZEVsZW1lbnRTdHlsZVByb3BlcnRpZXMoc3R5bGVkRWxlbWVudC5pbmxp
bmVTdHlsZSgpLCBpc0lubGluZVN0eWxlQ2FjaGVhYmxlKTsKLSAgICAgICAgfQorICAgICAgICBj
b2xsZWN0TWF0Y2hpbmdBdXRob3JSdWxlcyhmYWxzZSk7CisgICAgICAgIHNvcnRNYXRjaGVkUnVs
ZXMoKTsKIAotICAgICAgICAvLyBOb3cgY2hlY2sgU01JTCBhbmltYXRpb24gb3ZlcnJpZGUgc3R5
bGUuCi0gICAgICAgIGlmIChpbmNsdWRlU01JTFByb3BlcnRpZXMgJiYgaXM8U1ZHRWxlbWVudD4o
c3R5bGVkRWxlbWVudCkpCi0gICAgICAgICAgICBhZGRFbGVtZW50U3R5bGVQcm9wZXJ0aWVzKGRv
d25jYXN0PFNWR0VsZW1lbnQ+KHN0eWxlZEVsZW1lbnQpLmFuaW1hdGVkU01JTFN0eWxlUHJvcGVy
dGllcygpLCBmYWxzZSAvKiBpc0NhY2hlYWJsZSAqLyk7CisgICAgICAgIHRyYW5zZmVyTWF0Y2hl
ZFJ1bGVzKFN0eWxlOjpTY29wZU9yZGluYWw6OkVsZW1lbnQpOworCisgICAgICAgIC8vIElubGlu
ZSBzdHlsZSBiZWhhdmVzIGFzIGlmIGl0IGhhcyBoaWdoZXIgc3BlY2lmaWNpdHkgdGhhbiBhbnkg
cnVsZS4KKyAgICAgICAgYWRkRWxlbWVudElubGluZVN0eWxlUHJvcGVydGllcyhpbmNsdWRlU01J
TFByb3BlcnRpZXMpOworCisgICAgICAgIC8vIFJ1bGVzIGZyb20gdGhlIGhvc3Qgc2NvcGUgb3Zl
cnJpZGUgaW5saW5lIHN0eWxlLgorICAgICAgICB0cmFuc2Zlck1hdGNoZWRSdWxlcyhTdHlsZTo6
U2NvcGVPcmRpbmFsOjpDb250YWluaW5nSG9zdCk7CiAgICAgfQogfQogCit2b2lkIEVsZW1lbnRS
dWxlQ29sbGVjdG9yOjphZGRFbGVtZW50SW5saW5lU3R5bGVQcm9wZXJ0aWVzKGJvb2wgaW5jbHVk
ZVNNSUxQcm9wZXJ0aWVzKQoreworICAgIGlmICghaXM8U3R5bGVkRWxlbWVudD4oZWxlbWVudCgp
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGF1dG8qIGlubGluZVN0eWxlID0gZG93bmNh
c3Q8U3R5bGVkRWxlbWVudD4oZWxlbWVudCgpKS5pbmxpbmVTdHlsZSgpKSB7CisgICAgICAgIC8v
IEZJWE1FOiBNZWRpYSBjb250cm9sIHNoYWRvdyB0cmVlcyBzZWVtIHRvIGhhdmUgcHJvYmxlbXMg
d2l0aCBjYWNoaW5nLgorICAgICAgICBib29sIGlzSW5saW5lU3R5bGVDYWNoZWFibGUgPSAhaW5s
aW5lU3R5bGUtPmlzTXV0YWJsZSgpICYmICFlbGVtZW50KCkuaXNJblNoYWRvd1RyZWUoKTsKKyAg
ICAgICAgYWRkRWxlbWVudFN0eWxlUHJvcGVydGllcyhpbmxpbmVTdHlsZSwgaXNJbmxpbmVTdHls
ZUNhY2hlYWJsZSk7CisgICAgfQorCisgICAgaWYgKGluY2x1ZGVTTUlMUHJvcGVydGllcyAmJiBp
czxTVkdFbGVtZW50PihlbGVtZW50KCkpKQorICAgICAgICBhZGRFbGVtZW50U3R5bGVQcm9wZXJ0
aWVzKGRvd25jYXN0PFNWR0VsZW1lbnQ+KGVsZW1lbnQoKSkuYW5pbWF0ZWRTTUlMU3R5bGVQcm9w
ZXJ0aWVzKCksIGZhbHNlIC8qIGlzQ2FjaGVhYmxlICovKTsKK30KKwogYm9vbCBFbGVtZW50UnVs
ZUNvbGxlY3Rvcjo6aGFzQW55TWF0Y2hpbmdSdWxlcyhjb25zdCBSdWxlU2V0KiBydWxlU2V0KQog
ewogICAgIGNsZWFyTWF0Y2hlZFJ1bGVzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvRWxlbWVudFJ1bGVDb2xsZWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9FbGVtZW50UnVs
ZUNvbGxlY3Rvci5oCmluZGV4IDE5ODI5ZGIxNDlmLi43ODY3ZTliNDVkZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmgKQEAgLTUyLDYgKzUyLDggQEAgcHVibGlj
OgogICAgIHZvaWQgbWF0Y2hBdXRob3JSdWxlcyhib29sIGluY2x1ZGVFbXB0eVJ1bGVzKTsKICAg
ICB2b2lkIG1hdGNoVXNlclJ1bGVzKGJvb2wgaW5jbHVkZUVtcHR5UnVsZXMpOwogCisgICAgYm9v
bCBtYXRjaGVzQW55QXV0aG9yUnVsZXMoKTsKKwogICAgIHZvaWQgc2V0TW9kZShTZWxlY3RvckNo
ZWNrZXI6Ok1vZGUgbW9kZSkgeyBtX21vZGUgPSBtb2RlOyB9CiAgICAgdm9pZCBzZXRQc2V1ZG9T
dHlsZVJlcXVlc3QoY29uc3QgUHNldWRvU3R5bGVSZXF1ZXN0JiByZXF1ZXN0KSB7IG1fcHNldWRv
U3R5bGVSZXF1ZXN0ID0gcmVxdWVzdDsgfQogICAgIHZvaWQgc2V0TWVkaXVtKGNvbnN0IE1lZGlh
UXVlcnlFdmFsdWF0b3IqIG1lZGl1bSkgeyBtX2lzUHJpbnRTdHlsZSA9IG1lZGl1bS0+bWVkaWFU
eXBlTWF0Y2hTcGVjaWZpYygicHJpbnQiKTsgfQpAQCAtNjEsNyArNjMsNiBAQCBwdWJsaWM6CiAg
ICAgU3R5bGVSZXNvbHZlcjo6TWF0Y2hSZXN1bHQmIG1hdGNoZWRSZXN1bHQoKTsKICAgICBjb25z
dCBWZWN0b3I8UmVmUHRyPFN0eWxlUnVsZT4+JiBtYXRjaGVkUnVsZUxpc3QoKSBjb25zdDsKIAot
ICAgIGJvb2wgaGFzTWF0Y2hlZFJ1bGVzKCkgY29uc3QgeyByZXR1cm4gIW1fbWF0Y2hlZFJ1bGVz
LmlzRW1wdHkoKTsgfQogICAgIHZvaWQgY2xlYXJNYXRjaGVkUnVsZXMoKTsKIAogICAgIGNvbnN0
IFBzZXVkb0lkU2V0JiBtYXRjaGVkUHNldWRvRWxlbWVudElkcygpIGNvbnN0IHsgcmV0dXJuIG1f
bWF0Y2hlZFBzZXVkb0VsZW1lbnRJZHM7IH0KQEAgLTcyLDYgKzczLDEwIEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBhZGRFbGVtZW50U3R5bGVQcm9wZXJ0aWVzKGNvbnN0IFN0eWxlUHJvcGVydGllcyos
IGJvb2wgaXNDYWNoZWFibGUgPSB0cnVlKTsKIAogICAgIHZvaWQgbWF0Y2hVQVJ1bGVzKGNvbnN0
IFJ1bGVTZXQmKTsKKworICAgIHZvaWQgY29sbGVjdE1hdGNoaW5nQXV0aG9yUnVsZXMoYm9vbCBp
bmNsdWRlRW1wdHlSdWxlcyk7CisgICAgdm9pZCBhZGRFbGVtZW50SW5saW5lU3R5bGVQcm9wZXJ0
aWVzKGJvb2wgaW5jbHVkZVNNSUxQcm9wZXJ0aWVzKTsKKwogICAgIHZvaWQgbWF0Y2hBdXRob3JT
aGFkb3dQc2V1ZG9FbGVtZW50UnVsZXMoYm9vbCBpbmNsdWRlRW1wdHlSdWxlcywgU3R5bGVSZXNv
bHZlcjo6UnVsZVJhbmdlJik7CiAgICAgdm9pZCBtYXRjaEhvc3RQc2V1ZG9DbGFzc1J1bGVzKGJv
b2wgaW5jbHVkZUVtcHR5UnVsZXMsIFN0eWxlUmVzb2x2ZXI6OlJ1bGVSYW5nZSYpOwogICAgIHZv
aWQgbWF0Y2hTbG90dGVkUHNldWRvRWxlbWVudFJ1bGVzKGJvb2wgaW5jbHVkZUVtcHR5UnVsZXMs
IFN0eWxlUmVzb2x2ZXI6OlJ1bGVSYW5nZSYpOwpAQCAtODcsNiArOTIsNyBAQCBwcml2YXRlOgog
CiAgICAgdm9pZCBzb3J0TWF0Y2hlZFJ1bGVzKCk7CiAgICAgdm9pZCBzb3J0QW5kVHJhbnNmZXJN
YXRjaGVkUnVsZXMoKTsKKyAgICB2b2lkIHRyYW5zZmVyTWF0Y2hlZFJ1bGVzKFN0eWxlOjpTY29w
ZU9yZGluYWwgZm9yU2NvcGUpOwogCiAgICAgdm9pZCBhZGRNYXRjaGVkUnVsZShjb25zdCBSdWxl
RGF0YSYsIHVuc2lnbmVkIHNwZWNpZmljaXR5LCBTdHlsZTo6U2NvcGVPcmRpbmFsLCBTdHlsZVJl
c29sdmVyOjpSdWxlUmFuZ2UmKTsKIApAQCAtMTA3LDYgKzExMyw3IEBAIHByaXZhdGU6CiAgICAg
VmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxSdWxlU2V0OjpSdWxlRGF0YVZlY3Rvcj4+IG1fa2VlcEFs
aXZlU2xvdHRlZFBzZXVkb0VsZW1lbnRSdWxlczsKIAogICAgIFZlY3RvcjxNYXRjaGVkUnVsZSwg
NjQ+IG1fbWF0Y2hlZFJ1bGVzOworICAgIHNpemVfdCBtX21hdGNoZWRSdWxlVHJhbnNmZXJJbmRl
eCB7IDAgfTsKIAogICAgIC8vIE91dHB1dC4KICAgICBWZWN0b3I8UmVmUHRyPFN0eWxlUnVsZT4+
IG1fbWF0Y2hlZFJ1bGVMaXN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxl
UHJvcGVydGllcy5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5oCmluZGV4
IDBjYTdlNjEzNDY4Li4zNzAzNjcxYTNkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlUHJvcGVydGllcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRp
ZXMuaApAQCAtNTAsNyArNTAsNyBAQCBjbGFzcyBTdHlsZVByb3BlcnRpZXNCYXNlIDogcHVibGlj
IFJlZkNvdW50ZWQ8U3R5bGVQcm9wZXJ0aWVzQmFzZT4gewogcHVibGljOgogICAgIC8vIE92ZXJy
aWRlIFJlZkNvdW50ZWQncyBkZXJlZigpIHRvIGVuc3VyZSBvcGVyYXRvciBkZWxldGUgaXMgY2Fs
bGVkIG9uCiAgICAgLy8gdGhlIGFwcHJvcHJpYXRlIHN1YmNsYXNzIHR5cGUuCi0gICAgdm9pZCBk
ZXJlZigpOworICAgIHZvaWQgZGVyZWYoKSBjb25zdDsKICAgICAKICAgICBTdHlsZVByb3BlcnRp
ZXNUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxTdHlsZVByb3BlcnRpZXNU
eXBlPihtX3R5cGUpOyB9CiAKQEAgLTMwNSw3ICszMDUsNyBAQCBpbmxpbmUgdW5zaWduZWQgU3R5
bGVQcm9wZXJ0aWVzOjpwcm9wZXJ0eUNvdW50KCkgY29uc3QKICAgICByZXR1cm4gZG93bmNhc3Q8
SW1tdXRhYmxlU3R5bGVQcm9wZXJ0aWVzPigqdGhpcykucHJvcGVydHlDb3VudCgpOwogfQogCi1p
bmxpbmUgdm9pZCBTdHlsZVByb3BlcnRpZXNCYXNlOjpkZXJlZigpCitpbmxpbmUgdm9pZCBTdHls
ZVByb3BlcnRpZXNCYXNlOjpkZXJlZigpIGNvbnN0CiB7CiAgICAgaWYgKCFkZXJlZkJhc2UoKSkK
ICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVz
b2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IDIw
ZTdiMmFmYjgxLi4wYzEzYzk5ZDc5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0
eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNw
cApAQCAtMjM2OSw3ICsyMzY5LDggQEAgdm9pZCBTdHlsZVJlc29sdmVyOjpDYXNjYWRlZFByb3Bl
cnRpZXM6OmFkZEltcG9ydGFudE1hdGNoZXMoY29uc3QgTWF0Y2hSZXN1bHQmIG0KICAgICAgICAg
aW50IGluZGV4OwogICAgICAgICBTdHlsZTo6U2NvcGVPcmRpbmFsIG9yZGluYWw7CiAgICAgfTsK
LSAgICBWZWN0b3I8SW5kZXhBbmRPcmRpbmFsPiBzaGFkb3dUcmVlTWF0Y2hlczsKKyAgICBWZWN0
b3I8SW5kZXhBbmRPcmRpbmFsPiBpbXBvcnRhbnRNYXRjaGVzOworICAgIGJvb2wgaGFzTWF0Y2hl
c0Zyb21PdGhlclNjb3BlcyA9IGZhbHNlOwogCiAgICAgZm9yIChpbnQgaSA9IHN0YXJ0SW5kZXg7
IGkgPD0gZW5kSW5kZXg7ICsraSkgewogICAgICAgICBjb25zdCBNYXRjaGVkUHJvcGVydGllcyYg
bWF0Y2hlZFByb3BlcnRpZXMgPSBtYXRjaFJlc3VsdC5tYXRjaGVkUHJvcGVydGllcygpW2ldOwpA
QCAtMjM3NywyNCArMjM3OCwyNCBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6OkNhc2NhZGVkUHJvcGVy
dGllczo6YWRkSW1wb3J0YW50TWF0Y2hlcyhjb25zdCBNYXRjaFJlc3VsdCYgbQogICAgICAgICBp
ZiAoIWhhc0ltcG9ydGFudFByb3BlcnRpZXMoKm1hdGNoZWRQcm9wZXJ0aWVzLnByb3BlcnRpZXMp
KQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgaWYgKG1hdGNoZWRQcm9wZXJ0aWVz
LnN0eWxlU2NvcGVPcmRpbmFsICE9IFN0eWxlOjpTY29wZU9yZGluYWw6OkVsZW1lbnQpIHsKLSAg
ICAgICAgICAgIHNoYWRvd1RyZWVNYXRjaGVzLmFwcGVuZCh7IGksIG1hdGNoZWRQcm9wZXJ0aWVz
LnN0eWxlU2NvcGVPcmRpbmFsIH0pOwotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0K
KyAgICAgICAgaW1wb3J0YW50TWF0Y2hlcy5hcHBlbmQoeyBpLCBtYXRjaGVkUHJvcGVydGllcy5z
dHlsZVNjb3BlT3JkaW5hbCB9KTsKIAotICAgICAgICBhZGRNYXRjaChtYXRjaFJlc3VsdCwgaSwg
dHJ1ZSwgaW5oZXJpdGVkT25seSk7CisgICAgICAgIGlmIChtYXRjaGVkUHJvcGVydGllcy5zdHls
ZVNjb3BlT3JkaW5hbCAhPSBTdHlsZTo6U2NvcGVPcmRpbmFsOjpFbGVtZW50KQorICAgICAgICAg
ICAgaGFzTWF0Y2hlc0Zyb21PdGhlclNjb3BlcyA9IHRydWU7CiAgICAgfQogCi0gICAgaWYgKHNo
YWRvd1RyZWVNYXRjaGVzLmlzRW1wdHkoKSkKKyAgICBpZiAoaW1wb3J0YW50TWF0Y2hlcy5pc0Vt
cHR5KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIC8vIEZvciAhaW1wb3J0YW50IHByb3BlcnRp
ZXMgYSBsYXRlciBzaGFkb3cgdHJlZSB3aW5zLgotICAgIC8vIE1hdGNoIHJlc3VsdHMgYXJlIHNv
cnRlZCBpbiByZXZlcnNlIHRyZWUgY29udGV4dCBvcmRlciBzbyB0aGlzIGlzIG5vdCBuZWVkZWQg
Zm9yIG5vcm1hbCBwcm9wZXJ0aWVzLgotICAgIHN0ZDo6c3RhYmxlX3NvcnQoc2hhZG93VHJlZU1h
dGNoZXMuYmVnaW4oKSwgc2hhZG93VHJlZU1hdGNoZXMuZW5kKCksIFtdIChjb25zdCBJbmRleEFu
ZE9yZGluYWwmIGEsIGNvbnN0IEluZGV4QW5kT3JkaW5hbCYgYikgewotICAgICAgICByZXR1cm4g
YS5vcmRpbmFsIDwgYi5vcmRpbmFsOwotICAgIH0pOworICAgIGlmIChoYXNNYXRjaGVzRnJvbU90
aGVyU2NvcGVzKSB7CisgICAgICAgIC8vIEZvciAhaW1wb3J0YW50IHByb3BlcnRpZXMgYSBsYXRl
ciBzaGFkb3cgdHJlZSB3aW5zLgorICAgICAgICAvLyBNYXRjaCByZXN1bHRzIGFyZSBzb3J0ZWQg
aW4gcmV2ZXJzZSB0cmVlIGNvbnRleHQgb3JkZXIgc28gdGhpcyBpcyBub3QgbmVlZGVkIGZvciBu
b3JtYWwgcHJvcGVydGllcy4KKyAgICAgICAgc3RkOjpzdGFibGVfc29ydChpbXBvcnRhbnRNYXRj
aGVzLmJlZ2luKCksIGltcG9ydGFudE1hdGNoZXMuZW5kKCksIFtdIChjb25zdCBJbmRleEFuZE9y
ZGluYWwmIGEsIGNvbnN0IEluZGV4QW5kT3JkaW5hbCYgYikgeworICAgICAgICAgICAgcmV0dXJu
IGEub3JkaW5hbCA8IGIub3JkaW5hbDsKKyAgICAgICAgfSk7CisgICAgfQogCi0gICAgZm9yIChh
dXRvJiBtYXRjaCA6IHNoYWRvd1RyZWVNYXRjaGVzKQorICAgIGZvciAoYXV0byYgbWF0Y2ggOiBp
bXBvcnRhbnRNYXRjaGVzKQogICAgICAgICBhZGRNYXRjaChtYXRjaFJlc3VsdCwgbWF0Y2guaW5k
ZXgsIHRydWUsIGluaGVyaXRlZE9ubHkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdHlsZS9TdHlsZUludmFsaWRhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxl
SW52YWxpZGF0b3IuY3BwCmluZGV4IDFmMjNlYmY2OGRkLi41ODQyOTIxN2ViYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVJbnZhbGlkYXRvci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3R5bGUvU3R5bGVJbnZhbGlkYXRvci5jcHAKQEAgLTExNSwxMCArMTE1LDEwIEBA
IEludmFsaWRhdG9yOjpDaGVja0Rlc2NlbmRhbnRzIEludmFsaWRhdG9yOjppbnZhbGlkYXRlSWZO
ZWVkZWQoRWxlbWVudCYgZWxlbWVudCwKICAgICBjYXNlIFN0eWxlOjpWYWxpZGl0eTo6VmFsaWQ6
IHsKICAgICAgICAgRWxlbWVudFJ1bGVDb2xsZWN0b3IgcnVsZUNvbGxlY3RvcihlbGVtZW50LCBt
X3J1bGVTZXQsIGZpbHRlcik7CiAgICAgICAgIHJ1bGVDb2xsZWN0b3Iuc2V0TW9kZShTZWxlY3Rv
ckNoZWNrZXI6Ok1vZGU6OkNvbGxlY3RpbmdSdWxlc0lnbm9yaW5nVmlydHVhbFBzZXVkb0VsZW1l
bnRzKTsKLSAgICAgICAgcnVsZUNvbGxlY3Rvci5tYXRjaEF1dGhvclJ1bGVzKGZhbHNlKTsKIAot
ICAgICAgICBpZiAocnVsZUNvbGxlY3Rvci5oYXNNYXRjaGVkUnVsZXMoKSkKKyAgICAgICAgaWYg
KHJ1bGVDb2xsZWN0b3IubWF0Y2hlc0FueUF1dGhvclJ1bGVzKCkpCiAgICAgICAgICAgICBlbGVt
ZW50LmludmFsaWRhdGVTdHlsZUludGVybmFsKCk7CisKICAgICAgICAgcmV0dXJuIENoZWNrRGVz
Y2VuZGFudHM6OlllczsKICAgICB9CiAgICAgY2FzZSBTdHlsZTo6VmFsaWRpdHk6OkVsZW1lbnRJ
bnZhbGlkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZS5oIGIv
U291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZS5oCmluZGV4IDdmNTUwMDUyNGYyLi4xOGZm
YzNiY2U5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGUuaApAQCAtNTUsMTAgKzU1LDExIEBA
IG5hbWVzcGFjZSBTdHlsZSB7CiAvLyBUaGlzIGlzIHVzZWQgdG8gaWRlbnRpZnkgc3R5bGUgc2Nv
cGVzIHRoYXQgY2FuIGFmZmVjdCBhbiBlbGVtZW50LgogLy8gU2NvcGVzIGFyZSBpbiB0cmVlLW9m
LXRyZWVzIG9yZGVyLiBTdHlsZXMgZnJvbSBlYXJsaWVyIHNjb3BlcyB3aW4gb3ZlciBsYXRlciBv
bmVzIChtb2R1bG8gIWltcG9ydGFudCkuCiBlbnVtIGNsYXNzIFNjb3BlT3JkaW5hbCA6IGludCB7
Ci0gICAgQ29udGFpbmluZ0hvc3QgPSAtMSwgLy8gQXV0aG9yLWV4cG9zZWQgVUEgcHNldWRvIGNs
YXNzZXMgZnJvbSB0aGUgaG9zdCB0cmVlIHNjb3BlLgorICAgIENvbnRhaW5pbmdIb3N0ID0gLTEs
IC8vIDo6cGFydCBydWxlcyBhbmQgYXV0aG9yLWV4cG9zZWQgVUEgcHNldWRvIGNsYXNzZXMgZnJv
bSB0aGUgaG9zdCB0cmVlIHNjb3BlLgogICAgIEVsZW1lbnQgPSAwLCAvLyBOb3JtYWwgcnVsZXMg
aW4gdGhlIHNhbWUgdHJlZSB3aGVyZSB0aGUgZWxlbWVudCBpcy4KICAgICBGaXJzdFNsb3QgPSAx
LCAvLyA6OnNsb3R0ZWQgcnVsZXMgaW4gdGhlIHBhcmVudCdzIHNoYWRvdyB0cmVlLiBWYWx1ZXMg
Z3JlYXRlciB0aGFuIEZpcnN0U2xvdCBpbmRpY2F0ZSBzdWJzZXF1ZW50IHNsb3RzIGluIHRoZSBj
aGFpbi4KICAgICBTaGFkb3cgPSBzdGQ6Om51bWVyaWNfbGltaXRzPGludD46Om1heCgpLCAvLyA6
aG9zdCBydWxlcyBpbiBlbGVtZW50J3Mgb3duIHNoYWRvdyB0cmVlLgorICAgIExvd2VzdCA9IENv
bnRhaW5pbmdIb3N0LAogfTsKIAogY2xhc3MgU2NvcGUgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381286</attachid>
            <date>2019-10-18 02:28:37 -0700</date>
            <delta_ts>2019-10-18 02:40:33 -0700</delta_ts>
            <desc>patch</desc>
            <filename>css-shadow-parts-inline-4.patch</filename>
            <type>text/plain</type>
            <size>18587</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDViNjAzN2JjZDgxLi5jOTVmZjA5Yzk3
ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTkt
MTAtMTYgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgorCisgICAgICAgIFtDU1Mg
U2hhZG93IFBhcnRzXSA6cGFydCBydWxlcyBzaG91bGQgYmUgYWJsZSB0byBvdmVycmlkZSBzdHls
ZSBhdHRyaWJ1dGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwMjkxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2hhZG93LXBhcnRzL3NpbXBsZS1pbmxp
bmUtZXhwZWN0ZWQudHh0OgorCiAyMDE5LTEwLTE2ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFw
cGxlLmNvbT4KIAogICAgICAgICBbQ1NTIFNoYWRvdyBQYXJ0c10gSW1wb3J0IGNzcy9jc3Mtc2hh
ZG93LXBhcnRzL3NpbXBsZS1pbmxpbmUuaHRtbCBXUFQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zaGFkb3ctcGFydHMvc2lt
cGxlLWlubGluZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2hhZG93LXBhcnRzL3NpbXBsZS1pbmxpbmUtZXhwZWN0ZWQu
dHh0CmluZGV4IGY5NzA0YTc3MTRjLi5jNTcxMGM3NDU1NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNoYWRvdy1wYXJ0cy9z
aW1wbGUtaW5saW5lLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2hhZG93LXBhcnRzL3NpbXBsZS1pbmxpbmUtZXhw
ZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAogVGhlIGZvbGxvd2luZyB0ZXh0IHNob3VsZCBiZSBn
cmVlbjogCiAKLUZBSUwgUGFydCBpbiBzZWxlY3RlZCBob3N0IGlzIHN0eWxlZCBhc3NlcnRfZXF1
YWxzOiBleHBlY3RlZCAicmdiKDAsIDEyOCwgMCkiIGJ1dCBnb3QgInJnYigyNTUsIDAsIDApIgor
UEFTUyBQYXJ0IGluIHNlbGVjdGVkIGhvc3QgaXMgc3R5bGVkIAogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTU2
NjQ2NDdjMTIuLjg4ZWY4ZWNlZmUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjcgQEAKKzIwMTkt
MTAtMTcgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgorCisgICAgICAgIFtDU1Mg
U2hhZG93IFBhcnRzXSA6cGFydCBydWxlcyBzaG91bGQgYmUgYWJsZSB0byBvdmVycmlkZSBzdHls
ZSBhdHRyaWJ1dGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwMjkxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEVsZW1lbnQgaW5saW5lIHN0eWxlIHdhcyBzaW1wbHkgYXBwZW5kZWQgdG8gdGhlIG1hdGNo
aW5nIGRlY2xhcmF0aW9uIGxpc3QgYW5kIG5vdCBzb3J0ZWQgd2l0aCB0aGUgcmVzdCBvZiB0aGUg
YXV0aG9yIHN0eWxlLgorICAgICAgICBUaGlzIHVzZWQgdG8gd29yayBiZWNhdXNlIGJlZm9yZSBD
U1MgU2hhZG93IFBhcnRzIGZlYXR1cmUgaW5saW5lIHN0eWxlIHdvdWxkIGFsd2F5cyB3aW4uCisK
KyAgICAgICAgRml4aW5nIHRoaXMgaW52b2x2ZXMgcmVmYWN0b3JpbmcgdGhlIHJ1bGUgY29sbGVj
dGlvbiBjb2RlIHRvIHJlbW92ZSB0aGlzIGFzc3VtcHRpb24uCisKKyAgICAgICAgKiBjc3MvRWxl
bWVudFJ1bGVDb2xsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFJ1bGVDb2xs
ZWN0b3I6OmFkZE1hdGNoZWRSdWxlKToKKworICAgICAgICBCb3RoIGluaXRpYWxpemUgYW5kIHVw
ZGF0ZSByYW5nZXMgaGVyZS4KKworICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFJ1bGVDb2xsZWN0
b3I6OmNsZWFyTWF0Y2hlZFJ1bGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRSdWxlQ29s
bGVjdG9yOjphZGRFbGVtZW50U3R5bGVQcm9wZXJ0aWVzKToKKworICAgICAgICBCb3RoIGluaXRp
YWxpemUgYW5kIHVwZGF0ZSByYW5nZXMgaGVyZS4KKworICAgICAgICAoV2ViQ29yZTo6RWxlbWVu
dFJ1bGVDb2xsZWN0b3I6OnNvcnRBbmRUcmFuc2Zlck1hdGNoZWRSdWxlcyk6CisKKyAgICAgICAg
U3BsaXQgb3V0IHRyYW5zZmVyaW5nIHRvIGEgc2VwYXJhdGUgZnVuY3Rpb24uCisKKyAgICAgICAg
KFdlYkNvcmU6OkVsZW1lbnRSdWxlQ29sbGVjdG9yOjp0cmFuc2Zlck1hdGNoZWRSdWxlcyk6CisK
KyAgICAgICAgQWRkIGEgcGFyYW1ldGVyIHRvIGxpbWl0IHRyYW5zZmVyIHRvIHJ1bGVzIGZyb20g
YSBzY29wZS4KKworICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFJ1bGVDb2xsZWN0b3I6Om1hdGNo
QXV0aG9yUnVsZXMpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFJ1bGVDb2xsZWN0b3I6Om1h
dGNoZXNBbnlBdXRob3JSdWxlcyk6CisKKyAgICAgICAgUmVwbGFjZSBoYXNNYXRjaGVkUnVsZXMo
KSB3aXRoIGEgbW9yZSBzcGVjaWZpYyBmdW5jdGlvbi4gVGhpcyBjYW4gdXNlIGNvbGxlY3RNYXRj
aGluZ0F1dGhvclJ1bGVzIGFuZCBhdm9pZHMgdW5uZWNlc3Nhcnkgc29ydGluZyBzdGVwLgorCisg
ICAgICAgIChXZWJDb3JlOjpFbGVtZW50UnVsZUNvbGxlY3Rvcjo6Y29sbGVjdE1hdGNoaW5nQXV0
aG9yUnVsZXMpOgorCisgICAgICAgIFNwbGl0IG91dCBjb2xsZWN0aW5nIHRoZSBydWxlcyBmcm9t
IG1hdGNoQXV0aG9yUnVsZXMuIExpa2Ugb3RoZXIgY29sbGVjdCBmdW5jdGlvbnMsIHRoaXMgZG9l
c24ndCBkbyBhbnkgc29ydGluZy4KKworICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFJ1bGVDb2xs
ZWN0b3I6Om1hdGNoQWxsUnVsZXMpOgorCisgICAgICAgIEFkZCBlbGVtZW50IGlubGluZSBzdHls
ZSBiZWZvcmUgdHJhbnNmZXJpbmcgcnVsZXMgZnJvbSB0aGUgY29udGFpbmluZyBob3N0IHNjb3Bl
LgorCisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50UnVsZUNvbGxlY3Rvcjo6YWRkRWxlbWVudElu
bGluZVN0eWxlUHJvcGVydGllcyk6CisKKyAgICAgICAgRmFjdG9yIGFkZGluZyBpbmxpbmUgc3R5
bGUgaW50byBhIGZ1bmN0aW9uLgorCitdICAgICAgICAqIGNzcy9FbGVtZW50UnVsZUNvbGxlY3Rv
ci5oOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFJ1bGVDb2xsZWN0b3I6Omhhc01hdGNoZWRS
dWxlcyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogY3NzL1N0eWxlUHJvcGVydGllcy5oOgor
ICAgICAgICAoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0aWVzQmFzZTo6ZGVyZWYgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0aWVzQmFzZTo6ZGVyZWYpOiBEZWxldGVkLgorCisg
ICAgICAgIE1ha2UgY29uc3QgdG8gYWxsb3cgUmVmUHRyPGNvbnN0IFN0eWxlUHJvcGVydGllcz4K
KworICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0
eWxlUmVzb2x2ZXI6OkNhc2NhZGVkUHJvcGVydGllczo6YWRkSW1wb3J0YW50TWF0Y2hlcyk6CisK
KyAgICAgICAgU29ydCAhaW1wb3J0YW50IHByb3BlcnRpZXMgdGFraW5nIGludG8gYWNjb3VudCB0
aGF0IHRoZSBob3N0IHNjb3BlIGhhcyBsb3dlciBwcmlvcml0eS4KKworICAgICAgICAqIHN0eWxl
L1N0eWxlSW52YWxpZGF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkludmFsaWRh
dG9yOjppbnZhbGlkYXRlSWZOZWVkZWQpOgorICAgICAgICAqIHN0eWxlL1N0eWxlU2NvcGUuaDoK
KwogMjAxOS0xMC0xNiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+
CiAKICAgICAgICAgW0dUS11bV1BFXSBBU1NFUlRJT04gRkFJTEVEOiBibG9iIGluIFNRTGl0ZVN0
YXRlbWVudC5jcHAoMTYzKSA6IGludCBXZWJDb3JlOjpTUUxpdGVTdGF0ZW1lbnQ6OmJpbmRCbG9i
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9FbGVtZW50UnVsZUNvbGxlY3Rvci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwCmluZGV4IDg1
OTlmODY3MjRkLi40ZTI4Nzk1NjJhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0Vs
ZW1lbnRSdWxlQ29sbGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRWxlbWVudFJ1
bGVDb2xsZWN0b3IuY3BwCkBAIC0xMTIsOSArMTEyLDEyIEBAIGNvbnN0IFZlY3RvcjxSZWZQdHI8
U3R5bGVSdWxlPj4mIEVsZW1lbnRSdWxlQ29sbGVjdG9yOjptYXRjaGVkUnVsZUxpc3QoKSBjb25z
dAogaW5saW5lIHZvaWQgRWxlbWVudFJ1bGVDb2xsZWN0b3I6OmFkZE1hdGNoZWRSdWxlKGNvbnN0
IFJ1bGVEYXRhJiBydWxlRGF0YSwgdW5zaWduZWQgc3BlY2lmaWNpdHksIFN0eWxlOjpTY29wZU9y
ZGluYWwgc3R5bGVTY29wZU9yZGluYWwsIFN0eWxlUmVzb2x2ZXI6OlJ1bGVSYW5nZSYgcnVsZVJh
bmdlKQogewogICAgIC8vIFVwZGF0ZSBvdXIgZmlyc3QvbGFzdCBydWxlIGluZGljZXMgaW4gdGhl
IG1hdGNoZWQgcnVsZXMgYXJyYXkuCi0gICAgKytydWxlUmFuZ2UubGFzdFJ1bGVJbmRleDsKLSAg
ICBpZiAocnVsZVJhbmdlLmZpcnN0UnVsZUluZGV4ID09IC0xKQorICAgIGlmIChydWxlUmFuZ2Uu
bGFzdFJ1bGVJbmRleCAhPSAtMSkKKyAgICAgICAgKytydWxlUmFuZ2UubGFzdFJ1bGVJbmRleDsK
KyAgICBlbHNlIHsKKyAgICAgICAgcnVsZVJhbmdlLmxhc3RSdWxlSW5kZXggPSBtX3Jlc3VsdC5t
YXRjaGVkUHJvcGVydGllcygpLnNpemUoKTsKICAgICAgICAgcnVsZVJhbmdlLmZpcnN0UnVsZUlu
ZGV4ID0gcnVsZVJhbmdlLmxhc3RSdWxlSW5kZXg7CisgICAgfQogCiAgICAgbV9tYXRjaGVkUnVs
ZXMuYXBwZW5kKHsgJnJ1bGVEYXRhLCBzcGVjaWZpY2l0eSwgc3R5bGVTY29wZU9yZGluYWwgfSk7
CiB9CkBAIC0xMjMsMTUgKzEyNiwyMSBAQCB2b2lkIEVsZW1lbnRSdWxlQ29sbGVjdG9yOjpjbGVh
ck1hdGNoZWRSdWxlcygpCiB7CiAgICAgbV9tYXRjaGVkUnVsZXMuY2xlYXIoKTsKICAgICBtX2tl
ZXBBbGl2ZVNsb3R0ZWRQc2V1ZG9FbGVtZW50UnVsZXMuY2xlYXIoKTsKKyAgICBtX21hdGNoZWRS
dWxlVHJhbnNmZXJJbmRleCA9IDA7CiB9CiAKIGlubGluZSB2b2lkIEVsZW1lbnRSdWxlQ29sbGVj
dG9yOjphZGRFbGVtZW50U3R5bGVQcm9wZXJ0aWVzKGNvbnN0IFN0eWxlUHJvcGVydGllcyogcHJv
cGVydHlTZXQsIGJvb2wgaXNDYWNoZWFibGUpCiB7CiAgICAgaWYgKCFwcm9wZXJ0eVNldCkKICAg
ICAgICAgcmV0dXJuOwotICAgIG1fcmVzdWx0LnJhbmdlcy5sYXN0QXV0aG9yUnVsZSA9IG1fcmVz
dWx0Lm1hdGNoZWRQcm9wZXJ0aWVzKCkuc2l6ZSgpOwotICAgIGlmIChtX3Jlc3VsdC5yYW5nZXMu
Zmlyc3RBdXRob3JSdWxlID09IC0xKQorCisgICAgaWYgKG1fcmVzdWx0LnJhbmdlcy5sYXN0QXV0
aG9yUnVsZSAhPSAtMSkKKyAgICAgICAgKyttX3Jlc3VsdC5yYW5nZXMubGFzdEF1dGhvclJ1bGU7
CisgICAgZWxzZSB7CisgICAgICAgIG1fcmVzdWx0LnJhbmdlcy5sYXN0QXV0aG9yUnVsZSA9IG1f
cmVzdWx0Lm1hdGNoZWRQcm9wZXJ0aWVzKCkuc2l6ZSgpOwogICAgICAgICBtX3Jlc3VsdC5yYW5n
ZXMuZmlyc3RBdXRob3JSdWxlID0gbV9yZXN1bHQucmFuZ2VzLmxhc3RBdXRob3JSdWxlOworICAg
IH0KKwogICAgIG1fcmVzdWx0LmFkZE1hdGNoZWRQcm9wZXJ0aWVzKCpwcm9wZXJ0eVNldCk7CiAg
ICAgaWYgKCFpc0NhY2hlYWJsZSkKICAgICAgICAgbV9yZXN1bHQuaXNDYWNoZWFibGUgPSBmYWxz
ZTsKQEAgLTE3MSwxMyArMTgwLDIxIEBAIHZvaWQgRWxlbWVudFJ1bGVDb2xsZWN0b3I6OnNvcnRB
bmRUcmFuc2Zlck1hdGNoZWRSdWxlcygpCiAKICAgICBzb3J0TWF0Y2hlZFJ1bGVzKCk7CiAKLSAg
ICBpZiAobV9tb2RlID09IFNlbGVjdG9yQ2hlY2tlcjo6TW9kZTo6Q29sbGVjdGluZ1J1bGVzKSB7
Ci0gICAgICAgIGZvciAoY29uc3QgTWF0Y2hlZFJ1bGUmIG1hdGNoZWRSdWxlIDogbV9tYXRjaGVk
UnVsZXMpCisgICAgdHJhbnNmZXJNYXRjaGVkUnVsZXMoU3R5bGU6OlNjb3BlT3JkaW5hbDo6TG93
ZXN0KTsKK30KKwordm9pZCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6dHJhbnNmZXJNYXRjaGVkUnVs
ZXMoU3R5bGU6OlNjb3BlT3JkaW5hbCBmcm9tU2NvcGUpCit7CisgICAgZm9yICg7IG1fbWF0Y2hl
ZFJ1bGVUcmFuc2ZlckluZGV4IDwgbV9tYXRjaGVkUnVsZXMuc2l6ZSgpOyArK21fbWF0Y2hlZFJ1
bGVUcmFuc2ZlckluZGV4KSB7CisgICAgICAgIGF1dG8mIG1hdGNoZWRSdWxlID0gbV9tYXRjaGVk
UnVsZXNbbV9tYXRjaGVkUnVsZVRyYW5zZmVySW5kZXhdOworICAgICAgICBpZiAobWF0Y2hlZFJ1
bGUuc3R5bGVTY29wZU9yZGluYWwgPCBmcm9tU2NvcGUpCisgICAgICAgICAgICBicmVhazsKKwor
ICAgICAgICBpZiAobV9tb2RlID09IFNlbGVjdG9yQ2hlY2tlcjo6TW9kZTo6Q29sbGVjdGluZ1J1
bGVzKSB7CiAgICAgICAgICAgICBtX21hdGNoZWRSdWxlTGlzdC5hcHBlbmQobWF0Y2hlZFJ1bGUu
cnVsZURhdGEtPnJ1bGUoKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CisgICAgICAgICAgICBj
b250aW51ZTsKKyAgICAgICAgfQogCi0gICAgZm9yIChjb25zdCBNYXRjaGVkUnVsZSYgbWF0Y2hl
ZFJ1bGUgOiBtX21hdGNoZWRSdWxlcykgewogICAgICAgICBtX3Jlc3VsdC5hZGRNYXRjaGVkUHJv
cGVydGllcyhtYXRjaGVkUnVsZS5ydWxlRGF0YS0+cnVsZSgpLT5wcm9wZXJ0aWVzKCksIG1hdGNo
ZWRSdWxlLnJ1bGVEYXRhLT5ydWxlKCksIG1hdGNoZWRSdWxlLnJ1bGVEYXRhLT5saW5rTWF0Y2hU
eXBlKCksIG1hdGNoZWRSdWxlLnJ1bGVEYXRhLT5wcm9wZXJ0eVdoaXRlbGlzdFR5cGUoKSwgbWF0
Y2hlZFJ1bGUuc3R5bGVTY29wZU9yZGluYWwpOwogICAgIH0KIH0KQEAgLTE4Niw3ICsyMDMsMjMg
QEAgdm9pZCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6bWF0Y2hBdXRob3JSdWxlcyhib29sIGluY2x1
ZGVFbXB0eVJ1bGVzKQogewogICAgIGNsZWFyTWF0Y2hlZFJ1bGVzKCk7CiAKLSAgICBtX3Jlc3Vs
dC5yYW5nZXMubGFzdEF1dGhvclJ1bGUgPSBtX3Jlc3VsdC5tYXRjaGVkUHJvcGVydGllcygpLnNp
emUoKSAtIDE7CisgICAgY29sbGVjdE1hdGNoaW5nQXV0aG9yUnVsZXMoaW5jbHVkZUVtcHR5UnVs
ZXMpOworCisgICAgc29ydEFuZFRyYW5zZmVyTWF0Y2hlZFJ1bGVzKCk7Cit9CisKK2Jvb2wgRWxl
bWVudFJ1bGVDb2xsZWN0b3I6Om1hdGNoZXNBbnlBdXRob3JSdWxlcygpCit7CisgICAgY2xlYXJN
YXRjaGVkUnVsZXMoKTsKKworICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBiYWlsIG91dCBvbiBm
aXJzdCBtYXRjaC4KKyAgICBjb2xsZWN0TWF0Y2hpbmdBdXRob3JSdWxlcyhmYWxzZSk7CisKKyAg
ICByZXR1cm4gIW1fbWF0Y2hlZFJ1bGVzLmlzRW1wdHkoKTsKK30KKwordm9pZCBFbGVtZW50UnVs
ZUNvbGxlY3Rvcjo6Y29sbGVjdE1hdGNoaW5nQXV0aG9yUnVsZXMoYm9vbCBpbmNsdWRlRW1wdHlS
dWxlcykKK3sKICAgICBTdHlsZVJlc29sdmVyOjpSdWxlUmFuZ2UgcnVsZVJhbmdlID0gbV9yZXN1
bHQucmFuZ2VzLmF1dGhvclJ1bGVSYW5nZSgpOwogCiAgICAgewpAQCAtMjA1LDggKzIzOCw2IEBA
IHZvaWQgRWxlbWVudFJ1bGVDb2xsZWN0b3I6Om1hdGNoQXV0aG9yUnVsZXMoYm9vbCBpbmNsdWRl
RW1wdHlSdWxlcykKICAgICAgICAgbWF0Y2hBdXRob3JTaGFkb3dQc2V1ZG9FbGVtZW50UnVsZXMo
aW5jbHVkZUVtcHR5UnVsZXMsIHJ1bGVSYW5nZSk7CiAgICAgICAgIG1hdGNoUGFydFBzZXVkb0Vs
ZW1lbnRSdWxlcyhpbmNsdWRlRW1wdHlSdWxlcywgcnVsZVJhbmdlKTsKICAgICB9Ci0KLSAgICBz
b3J0QW5kVHJhbnNmZXJNYXRjaGVkUnVsZXMoKTsKIH0KIAogdm9pZCBFbGVtZW50UnVsZUNvbGxl
Y3Rvcjo6bWF0Y2hBdXRob3JTaGFkb3dQc2V1ZG9FbGVtZW50UnVsZXMoYm9vbCBpbmNsdWRlRW1w
dHlSdWxlcywgU3R5bGVSZXNvbHZlcjo6UnVsZVJhbmdlJiBydWxlUmFuZ2UpCkBAIC0zNDAsNyAr
MzcxLDYgQEAgdm9pZCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6bWF0Y2hVc2VyUnVsZXMoYm9vbCBp
bmNsdWRlRW1wdHlSdWxlcykKICAgICAKICAgICBjbGVhck1hdGNoZWRSdWxlcygpOwogCi0gICAg
bV9yZXN1bHQucmFuZ2VzLmxhc3RVc2VyUnVsZSA9IG1fcmVzdWx0Lm1hdGNoZWRQcm9wZXJ0aWVz
KCkuc2l6ZSgpIC0gMTsKICAgICBNYXRjaFJlcXVlc3QgbWF0Y2hSZXF1ZXN0KG1fdXNlclN0eWxl
LCBpbmNsdWRlRW1wdHlSdWxlcyk7CiAgICAgU3R5bGVSZXNvbHZlcjo6UnVsZVJhbmdlIHJ1bGVS
YW5nZSA9IG1fcmVzdWx0LnJhbmdlcy51c2VyUnVsZVJhbmdlKCk7CiAgICAgY29sbGVjdE1hdGNo
aW5nUnVsZXMobWF0Y2hSZXF1ZXN0LCBydWxlUmFuZ2UpOwpAQCAtMzY5LDcgKzM5OSw2IEBAIHZv
aWQgRWxlbWVudFJ1bGVDb2xsZWN0b3I6Om1hdGNoVUFSdWxlcyhjb25zdCBSdWxlU2V0JiBydWxl
cykKIHsKICAgICBjbGVhck1hdGNoZWRSdWxlcygpOwogICAgIAotICAgIG1fcmVzdWx0LnJhbmdl
cy5sYXN0VUFSdWxlID0gbV9yZXN1bHQubWF0Y2hlZFByb3BlcnRpZXMoKS5zaXplKCkgLSAxOwog
ICAgIFN0eWxlUmVzb2x2ZXI6OlJ1bGVSYW5nZSBydWxlUmFuZ2UgPSBtX3Jlc3VsdC5yYW5nZXMu
VUFSdWxlUmFuZ2UoKTsKICAgICBjb2xsZWN0TWF0Y2hpbmdSdWxlcyhNYXRjaFJlcXVlc3QoJnJ1
bGVzKSwgcnVsZVJhbmdlKTsKIApAQCAtNTU3LDI3ICs1ODYsMzcgQEAgdm9pZCBFbGVtZW50UnVs
ZUNvbGxlY3Rvcjo6bWF0Y2hBbGxSdWxlcyhib29sIG1hdGNoQXV0aG9yQW5kVXNlclN0eWxlcywg
Ym9vbCBpbmMKICAgICAgICAgfQogICAgIH0KICAgICAKLSAgICAvLyBDaGVjayB0aGUgcnVsZXMg
aW4gYXV0aG9yIHNoZWV0cyBuZXh0LgotICAgIGlmIChtYXRjaEF1dGhvckFuZFVzZXJTdHlsZXMp
Ci0gICAgICAgIG1hdGNoQXV0aG9yUnVsZXMoZmFsc2UpOworICAgIGlmIChtYXRjaEF1dGhvckFu
ZFVzZXJTdHlsZXMpIHsKKyAgICAgICAgY2xlYXJNYXRjaGVkUnVsZXMoKTsKIAotICAgIGlmICht
YXRjaEF1dGhvckFuZFVzZXJTdHlsZXMgJiYgaXM8U3R5bGVkRWxlbWVudD4oZWxlbWVudCgpKSkg
ewotICAgICAgICBhdXRvJiBzdHlsZWRFbGVtZW50ID0gZG93bmNhc3Q8U3R5bGVkRWxlbWVudD4o
ZWxlbWVudCgpKTsKLSAgICAgICAgLy8gTm93IGNoZWNrIG91ciBpbmxpbmUgc3R5bGUgYXR0cmli
dXRlLgotICAgICAgICBpZiAoc3R5bGVkRWxlbWVudC5pbmxpbmVTdHlsZSgpKSB7Ci0gICAgICAg
ICAgICAvLyBJbmxpbmUgc3R5bGUgaXMgaW1tdXRhYmxlIGFzIGxvbmcgYXMgdGhlcmUgaXMgbm8g
Q1NTT00gd3JhcHBlci4KLSAgICAgICAgICAgIC8vIEZJWE1FOiBNZWRpYSBjb250cm9sIHNoYWRv
dyB0cmVlcyBzZWVtIHRvIGhhdmUgcHJvYmxlbXMgd2l0aCBjYWNoaW5nLgotICAgICAgICAgICAg
Ym9vbCBpc0lubGluZVN0eWxlQ2FjaGVhYmxlID0gIXN0eWxlZEVsZW1lbnQuaW5saW5lU3R5bGUo
KS0+aXNNdXRhYmxlKCkgJiYgIXN0eWxlZEVsZW1lbnQuaXNJblNoYWRvd1RyZWUoKTsKLSAgICAg
ICAgICAgIC8vIEZJWE1FOiBDb25zdGlmeS4KLSAgICAgICAgICAgIGFkZEVsZW1lbnRTdHlsZVBy
b3BlcnRpZXMoc3R5bGVkRWxlbWVudC5pbmxpbmVTdHlsZSgpLCBpc0lubGluZVN0eWxlQ2FjaGVh
YmxlKTsKLSAgICAgICAgfQorICAgICAgICBjb2xsZWN0TWF0Y2hpbmdBdXRob3JSdWxlcyhmYWxz
ZSk7CisgICAgICAgIHNvcnRNYXRjaGVkUnVsZXMoKTsKIAotICAgICAgICAvLyBOb3cgY2hlY2sg
U01JTCBhbmltYXRpb24gb3ZlcnJpZGUgc3R5bGUuCi0gICAgICAgIGlmIChpbmNsdWRlU01JTFBy
b3BlcnRpZXMgJiYgaXM8U1ZHRWxlbWVudD4oc3R5bGVkRWxlbWVudCkpCi0gICAgICAgICAgICBh
ZGRFbGVtZW50U3R5bGVQcm9wZXJ0aWVzKGRvd25jYXN0PFNWR0VsZW1lbnQ+KHN0eWxlZEVsZW1l
bnQpLmFuaW1hdGVkU01JTFN0eWxlUHJvcGVydGllcygpLCBmYWxzZSAvKiBpc0NhY2hlYWJsZSAq
Lyk7CisgICAgICAgIHRyYW5zZmVyTWF0Y2hlZFJ1bGVzKFN0eWxlOjpTY29wZU9yZGluYWw6OkVs
ZW1lbnQpOworCisgICAgICAgIC8vIElubGluZSBzdHlsZSBiZWhhdmVzIGFzIGlmIGl0IGhhcyBo
aWdoZXIgc3BlY2lmaWNpdHkgdGhhbiBhbnkgcnVsZS4KKyAgICAgICAgYWRkRWxlbWVudElubGlu
ZVN0eWxlUHJvcGVydGllcyhpbmNsdWRlU01JTFByb3BlcnRpZXMpOworCisgICAgICAgIC8vIFJ1
bGVzIGZyb20gdGhlIGhvc3Qgc2NvcGUgb3ZlcnJpZGUgaW5saW5lIHN0eWxlLgorICAgICAgICB0
cmFuc2Zlck1hdGNoZWRSdWxlcyhTdHlsZTo6U2NvcGVPcmRpbmFsOjpDb250YWluaW5nSG9zdCk7
CiAgICAgfQogfQogCit2b2lkIEVsZW1lbnRSdWxlQ29sbGVjdG9yOjphZGRFbGVtZW50SW5saW5l
U3R5bGVQcm9wZXJ0aWVzKGJvb2wgaW5jbHVkZVNNSUxQcm9wZXJ0aWVzKQoreworICAgIGlmICgh
aXM8U3R5bGVkRWxlbWVudD4oZWxlbWVudCgpKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYg
KGF1dG8qIGlubGluZVN0eWxlID0gZG93bmNhc3Q8U3R5bGVkRWxlbWVudD4oZWxlbWVudCgpKS5p
bmxpbmVTdHlsZSgpKSB7CisgICAgICAgIC8vIEZJWE1FOiBNZWRpYSBjb250cm9sIHNoYWRvdyB0
cmVlcyBzZWVtIHRvIGhhdmUgcHJvYmxlbXMgd2l0aCBjYWNoaW5nLgorICAgICAgICBib29sIGlz
SW5saW5lU3R5bGVDYWNoZWFibGUgPSAhaW5saW5lU3R5bGUtPmlzTXV0YWJsZSgpICYmICFlbGVt
ZW50KCkuaXNJblNoYWRvd1RyZWUoKTsKKyAgICAgICAgYWRkRWxlbWVudFN0eWxlUHJvcGVydGll
cyhpbmxpbmVTdHlsZSwgaXNJbmxpbmVTdHlsZUNhY2hlYWJsZSk7CisgICAgfQorCisgICAgaWYg
KGluY2x1ZGVTTUlMUHJvcGVydGllcyAmJiBpczxTVkdFbGVtZW50PihlbGVtZW50KCkpKQorICAg
ICAgICBhZGRFbGVtZW50U3R5bGVQcm9wZXJ0aWVzKGRvd25jYXN0PFNWR0VsZW1lbnQ+KGVsZW1l
bnQoKSkuYW5pbWF0ZWRTTUlMU3R5bGVQcm9wZXJ0aWVzKCksIGZhbHNlIC8qIGlzQ2FjaGVhYmxl
ICovKTsKK30KKwogYm9vbCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6aGFzQW55TWF0Y2hpbmdSdWxl
cyhjb25zdCBSdWxlU2V0KiBydWxlU2V0KQogewogICAgIGNsZWFyTWF0Y2hlZFJ1bGVzKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRWxlbWVudFJ1bGVDb2xsZWN0b3IuaCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9FbGVtZW50UnVsZUNvbGxlY3Rvci5oCmluZGV4IDE5ODI5ZGIxNDlm
Li43ODY3ZTliNDVkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0VsZW1lbnRSdWxl
Q29sbGVjdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0VsZW1lbnRSdWxlQ29sbGVjdG9y
LmgKQEAgLTUyLDYgKzUyLDggQEAgcHVibGljOgogICAgIHZvaWQgbWF0Y2hBdXRob3JSdWxlcyhi
b29sIGluY2x1ZGVFbXB0eVJ1bGVzKTsKICAgICB2b2lkIG1hdGNoVXNlclJ1bGVzKGJvb2wgaW5j
bHVkZUVtcHR5UnVsZXMpOwogCisgICAgYm9vbCBtYXRjaGVzQW55QXV0aG9yUnVsZXMoKTsKKwog
ICAgIHZvaWQgc2V0TW9kZShTZWxlY3RvckNoZWNrZXI6Ok1vZGUgbW9kZSkgeyBtX21vZGUgPSBt
b2RlOyB9CiAgICAgdm9pZCBzZXRQc2V1ZG9TdHlsZVJlcXVlc3QoY29uc3QgUHNldWRvU3R5bGVS
ZXF1ZXN0JiByZXF1ZXN0KSB7IG1fcHNldWRvU3R5bGVSZXF1ZXN0ID0gcmVxdWVzdDsgfQogICAg
IHZvaWQgc2V0TWVkaXVtKGNvbnN0IE1lZGlhUXVlcnlFdmFsdWF0b3IqIG1lZGl1bSkgeyBtX2lz
UHJpbnRTdHlsZSA9IG1lZGl1bS0+bWVkaWFUeXBlTWF0Y2hTcGVjaWZpYygicHJpbnQiKTsgfQpA
QCAtNjEsNyArNjMsNiBAQCBwdWJsaWM6CiAgICAgU3R5bGVSZXNvbHZlcjo6TWF0Y2hSZXN1bHQm
IG1hdGNoZWRSZXN1bHQoKTsKICAgICBjb25zdCBWZWN0b3I8UmVmUHRyPFN0eWxlUnVsZT4+JiBt
YXRjaGVkUnVsZUxpc3QoKSBjb25zdDsKIAotICAgIGJvb2wgaGFzTWF0Y2hlZFJ1bGVzKCkgY29u
c3QgeyByZXR1cm4gIW1fbWF0Y2hlZFJ1bGVzLmlzRW1wdHkoKTsgfQogICAgIHZvaWQgY2xlYXJN
YXRjaGVkUnVsZXMoKTsKIAogICAgIGNvbnN0IFBzZXVkb0lkU2V0JiBtYXRjaGVkUHNldWRvRWxl
bWVudElkcygpIGNvbnN0IHsgcmV0dXJuIG1fbWF0Y2hlZFBzZXVkb0VsZW1lbnRJZHM7IH0KQEAg
LTcyLDYgKzczLDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCBhZGRFbGVtZW50U3R5bGVQcm9wZXJ0
aWVzKGNvbnN0IFN0eWxlUHJvcGVydGllcyosIGJvb2wgaXNDYWNoZWFibGUgPSB0cnVlKTsKIAog
ICAgIHZvaWQgbWF0Y2hVQVJ1bGVzKGNvbnN0IFJ1bGVTZXQmKTsKKworICAgIHZvaWQgY29sbGVj
dE1hdGNoaW5nQXV0aG9yUnVsZXMoYm9vbCBpbmNsdWRlRW1wdHlSdWxlcyk7CisgICAgdm9pZCBh
ZGRFbGVtZW50SW5saW5lU3R5bGVQcm9wZXJ0aWVzKGJvb2wgaW5jbHVkZVNNSUxQcm9wZXJ0aWVz
KTsKKwogICAgIHZvaWQgbWF0Y2hBdXRob3JTaGFkb3dQc2V1ZG9FbGVtZW50UnVsZXMoYm9vbCBp
bmNsdWRlRW1wdHlSdWxlcywgU3R5bGVSZXNvbHZlcjo6UnVsZVJhbmdlJik7CiAgICAgdm9pZCBt
YXRjaEhvc3RQc2V1ZG9DbGFzc1J1bGVzKGJvb2wgaW5jbHVkZUVtcHR5UnVsZXMsIFN0eWxlUmVz
b2x2ZXI6OlJ1bGVSYW5nZSYpOwogICAgIHZvaWQgbWF0Y2hTbG90dGVkUHNldWRvRWxlbWVudFJ1
bGVzKGJvb2wgaW5jbHVkZUVtcHR5UnVsZXMsIFN0eWxlUmVzb2x2ZXI6OlJ1bGVSYW5nZSYpOwpA
QCAtODcsNiArOTIsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBzb3J0TWF0Y2hlZFJ1bGVzKCk7
CiAgICAgdm9pZCBzb3J0QW5kVHJhbnNmZXJNYXRjaGVkUnVsZXMoKTsKKyAgICB2b2lkIHRyYW5z
ZmVyTWF0Y2hlZFJ1bGVzKFN0eWxlOjpTY29wZU9yZGluYWwgZm9yU2NvcGUpOwogCiAgICAgdm9p
ZCBhZGRNYXRjaGVkUnVsZShjb25zdCBSdWxlRGF0YSYsIHVuc2lnbmVkIHNwZWNpZmljaXR5LCBT
dHlsZTo6U2NvcGVPcmRpbmFsLCBTdHlsZVJlc29sdmVyOjpSdWxlUmFuZ2UmKTsKIApAQCAtMTA3
LDYgKzExMyw3IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxSdWxlU2V0
OjpSdWxlRGF0YVZlY3Rvcj4+IG1fa2VlcEFsaXZlU2xvdHRlZFBzZXVkb0VsZW1lbnRSdWxlczsK
IAogICAgIFZlY3RvcjxNYXRjaGVkUnVsZSwgNjQ+IG1fbWF0Y2hlZFJ1bGVzOworICAgIHNpemVf
dCBtX21hdGNoZWRSdWxlVHJhbnNmZXJJbmRleCB7IDAgfTsKIAogICAgIC8vIE91dHB1dC4KICAg
ICBWZWN0b3I8UmVmUHRyPFN0eWxlUnVsZT4+IG1fbWF0Y2hlZFJ1bGVMaXN0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5oIGIvU291cmNlL1dlYkNvcmUv
Y3NzL1N0eWxlUHJvcGVydGllcy5oCmluZGV4IDBjYTdlNjEzNDY4Li4zNzAzNjcxYTNkNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuaApAQCAtNTAsNyArNTAsNyBAQCBjbGFzcyBT
dHlsZVByb3BlcnRpZXNCYXNlIDogcHVibGljIFJlZkNvdW50ZWQ8U3R5bGVQcm9wZXJ0aWVzQmFz
ZT4gewogcHVibGljOgogICAgIC8vIE92ZXJyaWRlIFJlZkNvdW50ZWQncyBkZXJlZigpIHRvIGVu
c3VyZSBvcGVyYXRvciBkZWxldGUgaXMgY2FsbGVkIG9uCiAgICAgLy8gdGhlIGFwcHJvcHJpYXRl
IHN1YmNsYXNzIHR5cGUuCi0gICAgdm9pZCBkZXJlZigpOworICAgIHZvaWQgZGVyZWYoKSBjb25z
dDsKICAgICAKICAgICBTdHlsZVByb3BlcnRpZXNUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBz
dGF0aWNfY2FzdDxTdHlsZVByb3BlcnRpZXNUeXBlPihtX3R5cGUpOyB9CiAKQEAgLTMwNSw3ICsz
MDUsNyBAQCBpbmxpbmUgdW5zaWduZWQgU3R5bGVQcm9wZXJ0aWVzOjpwcm9wZXJ0eUNvdW50KCkg
Y29uc3QKICAgICByZXR1cm4gZG93bmNhc3Q8SW1tdXRhYmxlU3R5bGVQcm9wZXJ0aWVzPigqdGhp
cykucHJvcGVydHlDb3VudCgpOwogfQogCi1pbmxpbmUgdm9pZCBTdHlsZVByb3BlcnRpZXNCYXNl
OjpkZXJlZigpCitpbmxpbmUgdm9pZCBTdHlsZVByb3BlcnRpZXNCYXNlOjpkZXJlZigpIGNvbnN0
CiB7CiAgICAgaWYgKCFkZXJlZkJhc2UoKSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IDIwZTdiMmFmYjgxLi4wYzEzYzk5ZDc5MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcApAQCAtMjM2OSw3ICsyMzY5LDggQEAgdm9pZCBT
dHlsZVJlc29sdmVyOjpDYXNjYWRlZFByb3BlcnRpZXM6OmFkZEltcG9ydGFudE1hdGNoZXMoY29u
c3QgTWF0Y2hSZXN1bHQmIG0KICAgICAgICAgaW50IGluZGV4OwogICAgICAgICBTdHlsZTo6U2Nv
cGVPcmRpbmFsIG9yZGluYWw7CiAgICAgfTsKLSAgICBWZWN0b3I8SW5kZXhBbmRPcmRpbmFsPiBz
aGFkb3dUcmVlTWF0Y2hlczsKKyAgICBWZWN0b3I8SW5kZXhBbmRPcmRpbmFsPiBpbXBvcnRhbnRN
YXRjaGVzOworICAgIGJvb2wgaGFzTWF0Y2hlc0Zyb21PdGhlclNjb3BlcyA9IGZhbHNlOwogCiAg
ICAgZm9yIChpbnQgaSA9IHN0YXJ0SW5kZXg7IGkgPD0gZW5kSW5kZXg7ICsraSkgewogICAgICAg
ICBjb25zdCBNYXRjaGVkUHJvcGVydGllcyYgbWF0Y2hlZFByb3BlcnRpZXMgPSBtYXRjaFJlc3Vs
dC5tYXRjaGVkUHJvcGVydGllcygpW2ldOwpAQCAtMjM3NywyNCArMjM3OCwyNCBAQCB2b2lkIFN0
eWxlUmVzb2x2ZXI6OkNhc2NhZGVkUHJvcGVydGllczo6YWRkSW1wb3J0YW50TWF0Y2hlcyhjb25z
dCBNYXRjaFJlc3VsdCYgbQogICAgICAgICBpZiAoIWhhc0ltcG9ydGFudFByb3BlcnRpZXMoKm1h
dGNoZWRQcm9wZXJ0aWVzLnByb3BlcnRpZXMpKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAg
ICAgICAgaWYgKG1hdGNoZWRQcm9wZXJ0aWVzLnN0eWxlU2NvcGVPcmRpbmFsICE9IFN0eWxlOjpT
Y29wZU9yZGluYWw6OkVsZW1lbnQpIHsKLSAgICAgICAgICAgIHNoYWRvd1RyZWVNYXRjaGVzLmFw
cGVuZCh7IGksIG1hdGNoZWRQcm9wZXJ0aWVzLnN0eWxlU2NvcGVPcmRpbmFsIH0pOwotICAgICAg
ICAgICAgY29udGludWU7Ci0gICAgICAgIH0KKyAgICAgICAgaW1wb3J0YW50TWF0Y2hlcy5hcHBl
bmQoeyBpLCBtYXRjaGVkUHJvcGVydGllcy5zdHlsZVNjb3BlT3JkaW5hbCB9KTsKIAotICAgICAg
ICBhZGRNYXRjaChtYXRjaFJlc3VsdCwgaSwgdHJ1ZSwgaW5oZXJpdGVkT25seSk7CisgICAgICAg
IGlmIChtYXRjaGVkUHJvcGVydGllcy5zdHlsZVNjb3BlT3JkaW5hbCAhPSBTdHlsZTo6U2NvcGVP
cmRpbmFsOjpFbGVtZW50KQorICAgICAgICAgICAgaGFzTWF0Y2hlc0Zyb21PdGhlclNjb3BlcyA9
IHRydWU7CiAgICAgfQogCi0gICAgaWYgKHNoYWRvd1RyZWVNYXRjaGVzLmlzRW1wdHkoKSkKKyAg
ICBpZiAoaW1wb3J0YW50TWF0Y2hlcy5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIAotICAg
IC8vIEZvciAhaW1wb3J0YW50IHByb3BlcnRpZXMgYSBsYXRlciBzaGFkb3cgdHJlZSB3aW5zLgot
ICAgIC8vIE1hdGNoIHJlc3VsdHMgYXJlIHNvcnRlZCBpbiByZXZlcnNlIHRyZWUgY29udGV4dCBv
cmRlciBzbyB0aGlzIGlzIG5vdCBuZWVkZWQgZm9yIG5vcm1hbCBwcm9wZXJ0aWVzLgotICAgIHN0
ZDo6c3RhYmxlX3NvcnQoc2hhZG93VHJlZU1hdGNoZXMuYmVnaW4oKSwgc2hhZG93VHJlZU1hdGNo
ZXMuZW5kKCksIFtdIChjb25zdCBJbmRleEFuZE9yZGluYWwmIGEsIGNvbnN0IEluZGV4QW5kT3Jk
aW5hbCYgYikgewotICAgICAgICByZXR1cm4gYS5vcmRpbmFsIDwgYi5vcmRpbmFsOwotICAgIH0p
OworICAgIGlmIChoYXNNYXRjaGVzRnJvbU90aGVyU2NvcGVzKSB7CisgICAgICAgIC8vIEZvciAh
aW1wb3J0YW50IHByb3BlcnRpZXMgYSBsYXRlciBzaGFkb3cgdHJlZSB3aW5zLgorICAgICAgICAv
LyBNYXRjaCByZXN1bHRzIGFyZSBzb3J0ZWQgaW4gcmV2ZXJzZSB0cmVlIGNvbnRleHQgb3JkZXIg
c28gdGhpcyBpcyBub3QgbmVlZGVkIGZvciBub3JtYWwgcHJvcGVydGllcy4KKyAgICAgICAgc3Rk
OjpzdGFibGVfc29ydChpbXBvcnRhbnRNYXRjaGVzLmJlZ2luKCksIGltcG9ydGFudE1hdGNoZXMu
ZW5kKCksIFtdIChjb25zdCBJbmRleEFuZE9yZGluYWwmIGEsIGNvbnN0IEluZGV4QW5kT3JkaW5h
bCYgYikgeworICAgICAgICAgICAgcmV0dXJuIGEub3JkaW5hbCA8IGIub3JkaW5hbDsKKyAgICAg
ICAgfSk7CisgICAgfQogCi0gICAgZm9yIChhdXRvJiBtYXRjaCA6IHNoYWRvd1RyZWVNYXRjaGVz
KQorICAgIGZvciAoYXV0byYgbWF0Y2ggOiBpbXBvcnRhbnRNYXRjaGVzKQogICAgICAgICBhZGRN
YXRjaChtYXRjaFJlc3VsdCwgbWF0Y2guaW5kZXgsIHRydWUsIGluaGVyaXRlZE9ubHkpOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUludmFsaWRhdG9yLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlSW52YWxpZGF0b3IuY3BwCmluZGV4IDFmMjNlYmY2
OGRkLi41ODQyOTIxN2ViYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVJ
bnZhbGlkYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVJbnZhbGlkYXRv
ci5jcHAKQEAgLTExNSwxMCArMTE1LDEwIEBAIEludmFsaWRhdG9yOjpDaGVja0Rlc2NlbmRhbnRz
IEludmFsaWRhdG9yOjppbnZhbGlkYXRlSWZOZWVkZWQoRWxlbWVudCYgZWxlbWVudCwKICAgICBj
YXNlIFN0eWxlOjpWYWxpZGl0eTo6VmFsaWQ6IHsKICAgICAgICAgRWxlbWVudFJ1bGVDb2xsZWN0
b3IgcnVsZUNvbGxlY3RvcihlbGVtZW50LCBtX3J1bGVTZXQsIGZpbHRlcik7CiAgICAgICAgIHJ1
bGVDb2xsZWN0b3Iuc2V0TW9kZShTZWxlY3RvckNoZWNrZXI6Ok1vZGU6OkNvbGxlY3RpbmdSdWxl
c0lnbm9yaW5nVmlydHVhbFBzZXVkb0VsZW1lbnRzKTsKLSAgICAgICAgcnVsZUNvbGxlY3Rvci5t
YXRjaEF1dGhvclJ1bGVzKGZhbHNlKTsKIAotICAgICAgICBpZiAocnVsZUNvbGxlY3Rvci5oYXNN
YXRjaGVkUnVsZXMoKSkKKyAgICAgICAgaWYgKHJ1bGVDb2xsZWN0b3IubWF0Y2hlc0FueUF1dGhv
clJ1bGVzKCkpCiAgICAgICAgICAgICBlbGVtZW50LmludmFsaWRhdGVTdHlsZUludGVybmFsKCk7
CisKICAgICAgICAgcmV0dXJuIENoZWNrRGVzY2VuZGFudHM6OlllczsKICAgICB9CiAgICAgY2Fz
ZSBTdHlsZTo6VmFsaWRpdHk6OkVsZW1lbnRJbnZhbGlkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3R5bGUvU3R5bGVTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29w
ZS5oCmluZGV4IDdmNTUwMDUyNGYyLi4xOGZmYzNiY2U5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3R5bGUvU3R5bGVTY29wZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxl
U2NvcGUuaApAQCAtNTUsMTAgKzU1LDExIEBAIG5hbWVzcGFjZSBTdHlsZSB7CiAvLyBUaGlzIGlz
IHVzZWQgdG8gaWRlbnRpZnkgc3R5bGUgc2NvcGVzIHRoYXQgY2FuIGFmZmVjdCBhbiBlbGVtZW50
LgogLy8gU2NvcGVzIGFyZSBpbiB0cmVlLW9mLXRyZWVzIG9yZGVyLiBTdHlsZXMgZnJvbSBlYXJs
aWVyIHNjb3BlcyB3aW4gb3ZlciBsYXRlciBvbmVzIChtb2R1bG8gIWltcG9ydGFudCkuCiBlbnVt
IGNsYXNzIFNjb3BlT3JkaW5hbCA6IGludCB7Ci0gICAgQ29udGFpbmluZ0hvc3QgPSAtMSwgLy8g
QXV0aG9yLWV4cG9zZWQgVUEgcHNldWRvIGNsYXNzZXMgZnJvbSB0aGUgaG9zdCB0cmVlIHNjb3Bl
LgorICAgIENvbnRhaW5pbmdIb3N0ID0gLTEsIC8vIDo6cGFydCBydWxlcyBhbmQgYXV0aG9yLWV4
cG9zZWQgVUEgcHNldWRvIGNsYXNzZXMgZnJvbSB0aGUgaG9zdCB0cmVlIHNjb3BlLgogICAgIEVs
ZW1lbnQgPSAwLCAvLyBOb3JtYWwgcnVsZXMgaW4gdGhlIHNhbWUgdHJlZSB3aGVyZSB0aGUgZWxl
bWVudCBpcy4KICAgICBGaXJzdFNsb3QgPSAxLCAvLyA6OnNsb3R0ZWQgcnVsZXMgaW4gdGhlIHBh
cmVudCdzIHNoYWRvdyB0cmVlLiBWYWx1ZXMgZ3JlYXRlciB0aGFuIEZpcnN0U2xvdCBpbmRpY2F0
ZSBzdWJzZXF1ZW50IHNsb3RzIGluIHRoZSBjaGFpbi4KICAgICBTaGFkb3cgPSBzdGQ6Om51bWVy
aWNfbGltaXRzPGludD46Om1heCgpLCAvLyA6aG9zdCBydWxlcyBpbiBlbGVtZW50J3Mgb3duIHNo
YWRvdyB0cmVlLgorICAgIExvd2VzdCA9IENvbnRhaW5pbmdIb3N0LAogfTsKIAogY2xhc3MgU2Nv
cGUgewo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381289</attachid>
            <date>2019-10-18 02:40:33 -0700</date>
            <delta_ts>2019-10-18 09:20:23 -0700</delta_ts>
            <desc>patch</desc>
            <filename>css-shadow-parts-inline-5.patch</filename>
            <type>text/plain</type>
            <size>18516</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDViNjAzN2JjZDgxLi5jOTVmZjA5Yzk3
ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTkt
MTAtMTYgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgorCisgICAgICAgIFtDU1Mg
U2hhZG93IFBhcnRzXSA6cGFydCBydWxlcyBzaG91bGQgYmUgYWJsZSB0byBvdmVycmlkZSBzdHls
ZSBhdHRyaWJ1dGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwMjkxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2hhZG93LXBhcnRzL3NpbXBsZS1pbmxp
bmUtZXhwZWN0ZWQudHh0OgorCiAyMDE5LTEwLTE2ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFw
cGxlLmNvbT4KIAogICAgICAgICBbQ1NTIFNoYWRvdyBQYXJ0c10gSW1wb3J0IGNzcy9jc3Mtc2hh
ZG93LXBhcnRzL3NpbXBsZS1pbmxpbmUuaHRtbCBXUFQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zaGFkb3ctcGFydHMvc2lt
cGxlLWlubGluZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2hhZG93LXBhcnRzL3NpbXBsZS1pbmxpbmUtZXhwZWN0ZWQu
dHh0CmluZGV4IGY5NzA0YTc3MTRjLi5jNTcxMGM3NDU1NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNoYWRvdy1wYXJ0cy9z
aW1wbGUtaW5saW5lLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2hhZG93LXBhcnRzL3NpbXBsZS1pbmxpbmUtZXhw
ZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAogVGhlIGZvbGxvd2luZyB0ZXh0IHNob3VsZCBiZSBn
cmVlbjogCiAKLUZBSUwgUGFydCBpbiBzZWxlY3RlZCBob3N0IGlzIHN0eWxlZCBhc3NlcnRfZXF1
YWxzOiBleHBlY3RlZCAicmdiKDAsIDEyOCwgMCkiIGJ1dCBnb3QgInJnYigyNTUsIDAsIDApIgor
UEFTUyBQYXJ0IGluIHNlbGVjdGVkIGhvc3QgaXMgc3R5bGVkIAogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTU2
NjQ2NDdjMTIuLjUxNzU5NjFkMDFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjYgQEAKKzIwMTkt
MTAtMTcgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgorCisgICAgICAgIFtDU1Mg
U2hhZG93IFBhcnRzXSA6cGFydCBydWxlcyBzaG91bGQgYmUgYWJsZSB0byBvdmVycmlkZSBzdHls
ZSBhdHRyaWJ1dGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwMjkxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEVsZW1lbnQgaW5saW5lIHN0eWxlIHdhcyBzaW1wbHkgYXBwZW5kZWQgdG8gdGhlIG1hdGNo
aW5nIGRlY2xhcmF0aW9uIGxpc3QgYW5kIG5vdCBzb3J0ZWQgd2l0aCB0aGUgcmVzdCBvZiB0aGUg
YXV0aG9yIHN0eWxlLgorICAgICAgICBUaGlzIHVzZWQgdG8gd29yayBiZWNhdXNlIGJlZm9yZSBD
U1MgU2hhZG93IFBhcnRzIGZlYXR1cmUgaW5saW5lIHN0eWxlIHdvdWxkIGFsd2F5cyB3aW4uCisK
KyAgICAgICAgRml4aW5nIHRoaXMgaW52b2x2ZXMgcmVmYWN0b3JpbmcgdGhlIHJ1bGUgY29sbGVj
dGlvbiBjb2RlIHRvIHJlbW92ZSB0aGlzIGFzc3VtcHRpb24uCisKKyAgICAgICAgKiBjc3MvRWxl
bWVudFJ1bGVDb2xsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFJ1bGVDb2xs
ZWN0b3I6OmFkZE1hdGNoZWRSdWxlKToKKworICAgICAgICBCb3RoIGluaXRpYWxpemUgYW5kIHVw
ZGF0ZSByYW5nZXMgaGVyZS4KKworICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFJ1bGVDb2xsZWN0
b3I6OmNsZWFyTWF0Y2hlZFJ1bGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRSdWxlQ29s
bGVjdG9yOjphZGRFbGVtZW50U3R5bGVQcm9wZXJ0aWVzKToKKworICAgICAgICBCb3RoIGluaXRp
YWxpemUgYW5kIHVwZGF0ZSByYW5nZXMgaGVyZS4KKworICAgICAgICAoV2ViQ29yZTo6RWxlbWVu
dFJ1bGVDb2xsZWN0b3I6OnNvcnRBbmRUcmFuc2Zlck1hdGNoZWRSdWxlcyk6CisKKyAgICAgICAg
U3BsaXQgb3V0IHRyYW5zZmVyaW5nIHRvIGEgc2VwYXJhdGUgZnVuY3Rpb24uCisKKyAgICAgICAg
KFdlYkNvcmU6OkVsZW1lbnRSdWxlQ29sbGVjdG9yOjp0cmFuc2Zlck1hdGNoZWRSdWxlcyk6CisK
KyAgICAgICAgQWRkIGEgcGFyYW1ldGVyIHRvIGxpbWl0IHRyYW5zZmVyIHRvIHJ1bGVzIGZyb20g
YSBzY29wZS4KKworICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFJ1bGVDb2xsZWN0b3I6Om1hdGNo
QXV0aG9yUnVsZXMpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFJ1bGVDb2xsZWN0b3I6Om1h
dGNoZXNBbnlBdXRob3JSdWxlcyk6CisKKyAgICAgICAgUmVwbGFjZSBoYXNNYXRjaGVkUnVsZXMo
KSB3aXRoIGEgbW9yZSBzcGVjaWZpYyBmdW5jdGlvbi4gVGhpcyBjYW4gdXNlIGNvbGxlY3RNYXRj
aGluZ0F1dGhvclJ1bGVzIGFuZCBhdm9pZHMgdW5uZWNlc3Nhcnkgc29ydGluZyBzdGVwLgorCisg
ICAgICAgIChXZWJDb3JlOjpFbGVtZW50UnVsZUNvbGxlY3Rvcjo6Y29sbGVjdE1hdGNoaW5nQXV0
aG9yUnVsZXMpOgorCisgICAgICAgIFNwbGl0IG91dCBjb2xsZWN0aW5nIHRoZSBydWxlcyBmcm9t
IG1hdGNoQXV0aG9yUnVsZXMuIExpa2Ugb3RoZXIgY29sbGVjdCBmdW5jdGlvbnMsIHRoaXMgZG9l
c24ndCBkbyBhbnkgc29ydGluZy4KKworICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFJ1bGVDb2xs
ZWN0b3I6Om1hdGNoQWxsUnVsZXMpOgorCisgICAgICAgIEFkZCBlbGVtZW50IGlubGluZSBzdHls
ZSBiZWZvcmUgdHJhbnNmZXJpbmcgcnVsZXMgZnJvbSB0aGUgY29udGFpbmluZyBob3N0IHNjb3Bl
LgorCisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50UnVsZUNvbGxlY3Rvcjo6YWRkRWxlbWVudElu
bGluZVN0eWxlUHJvcGVydGllcyk6CisKKyAgICAgICAgRmFjdG9yIGFkZGluZyBpbmxpbmUgc3R5
bGUgaW50byBhIGZ1bmN0aW9uLgorCitdICAgICAgICAqIGNzcy9FbGVtZW50UnVsZUNvbGxlY3Rv
ci5oOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFJ1bGVDb2xsZWN0b3I6Omhhc01hdGNoZWRS
dWxlcyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogY3NzL1N0eWxlUHJvcGVydGllcy5oOgor
ICAgICAgICAoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0aWVzQmFzZTo6ZGVyZWYgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0aWVzQmFzZTo6ZGVyZWYpOiBEZWxldGVkLgorCisg
ICAgICAgIE1ha2UgY29uc3QgdG8gYWxsb3cgUmVmUHRyPGNvbnN0IFN0eWxlUHJvcGVydGllcz4K
KworICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0
eWxlUmVzb2x2ZXI6OkNhc2NhZGVkUHJvcGVydGllczo6YWRkSW1wb3J0YW50TWF0Y2hlcyk6CisK
KyAgICAgICAgU29ydCAhaW1wb3J0YW50IHByb3BlcnRpZXMgdGFraW5nIGludG8gYWNjb3VudCB0
aGF0IHRoZSBob3N0IHNjb3BlIGhhcyBsb3dlciBwcmlvcml0eS4KKworICAgICAgICAqIHN0eWxl
L1N0eWxlSW52YWxpZGF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkludmFsaWRh
dG9yOjppbnZhbGlkYXRlSWZOZWVkZWQpOgorCiAyMDE5LTEwLTE2ICBDYXJsb3MgR2FyY2lhIENh
bXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtXUEVdIEFTU0VSVElP
TiBGQUlMRUQ6IGJsb2IgaW4gU1FMaXRlU3RhdGVtZW50LmNwcCgxNjMpIDogaW50IFdlYkNvcmU6
OlNRTGl0ZVN0YXRlbWVudDo6YmluZEJsb2IoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9FbGVtZW50
UnVsZUNvbGxlY3Rvci5jcHAKaW5kZXggODU5OWY4NjcyNGQuLjhhNmM4NzEzZDg1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHAKQEAgLTExMiw5ICsxMTIs
MTIgQEAgY29uc3QgVmVjdG9yPFJlZlB0cjxTdHlsZVJ1bGU+PiYgRWxlbWVudFJ1bGVDb2xsZWN0
b3I6Om1hdGNoZWRSdWxlTGlzdCgpIGNvbnN0CiBpbmxpbmUgdm9pZCBFbGVtZW50UnVsZUNvbGxl
Y3Rvcjo6YWRkTWF0Y2hlZFJ1bGUoY29uc3QgUnVsZURhdGEmIHJ1bGVEYXRhLCB1bnNpZ25lZCBz
cGVjaWZpY2l0eSwgU3R5bGU6OlNjb3BlT3JkaW5hbCBzdHlsZVNjb3BlT3JkaW5hbCwgU3R5bGVS
ZXNvbHZlcjo6UnVsZVJhbmdlJiBydWxlUmFuZ2UpCiB7CiAgICAgLy8gVXBkYXRlIG91ciBmaXJz
dC9sYXN0IHJ1bGUgaW5kaWNlcyBpbiB0aGUgbWF0Y2hlZCBydWxlcyBhcnJheS4KLSAgICArK3J1
bGVSYW5nZS5sYXN0UnVsZUluZGV4OwotICAgIGlmIChydWxlUmFuZ2UuZmlyc3RSdWxlSW5kZXgg
PT0gLTEpCisgICAgaWYgKHJ1bGVSYW5nZS5sYXN0UnVsZUluZGV4ICE9IC0xKQorICAgICAgICAr
K3J1bGVSYW5nZS5sYXN0UnVsZUluZGV4OworICAgIGVsc2UgeworICAgICAgICBydWxlUmFuZ2Uu
bGFzdFJ1bGVJbmRleCA9IG1fcmVzdWx0Lm1hdGNoZWRQcm9wZXJ0aWVzKCkuc2l6ZSgpOwogICAg
ICAgICBydWxlUmFuZ2UuZmlyc3RSdWxlSW5kZXggPSBydWxlUmFuZ2UubGFzdFJ1bGVJbmRleDsK
KyAgICB9CiAKICAgICBtX21hdGNoZWRSdWxlcy5hcHBlbmQoeyAmcnVsZURhdGEsIHNwZWNpZmlj
aXR5LCBzdHlsZVNjb3BlT3JkaW5hbCB9KTsKIH0KQEAgLTEyMywxNSArMTI2LDIxIEBAIHZvaWQg
RWxlbWVudFJ1bGVDb2xsZWN0b3I6OmNsZWFyTWF0Y2hlZFJ1bGVzKCkKIHsKICAgICBtX21hdGNo
ZWRSdWxlcy5jbGVhcigpOwogICAgIG1fa2VlcEFsaXZlU2xvdHRlZFBzZXVkb0VsZW1lbnRSdWxl
cy5jbGVhcigpOworICAgIG1fbWF0Y2hlZFJ1bGVUcmFuc2ZlckluZGV4ID0gMDsKIH0KIAogaW5s
aW5lIHZvaWQgRWxlbWVudFJ1bGVDb2xsZWN0b3I6OmFkZEVsZW1lbnRTdHlsZVByb3BlcnRpZXMo
Y29uc3QgU3R5bGVQcm9wZXJ0aWVzKiBwcm9wZXJ0eVNldCwgYm9vbCBpc0NhY2hlYWJsZSkKIHsK
ICAgICBpZiAoIXByb3BlcnR5U2V0KQogICAgICAgICByZXR1cm47Ci0gICAgbV9yZXN1bHQucmFu
Z2VzLmxhc3RBdXRob3JSdWxlID0gbV9yZXN1bHQubWF0Y2hlZFByb3BlcnRpZXMoKS5zaXplKCk7
Ci0gICAgaWYgKG1fcmVzdWx0LnJhbmdlcy5maXJzdEF1dGhvclJ1bGUgPT0gLTEpCisKKyAgICBp
ZiAobV9yZXN1bHQucmFuZ2VzLmxhc3RBdXRob3JSdWxlICE9IC0xKQorICAgICAgICArK21fcmVz
dWx0LnJhbmdlcy5sYXN0QXV0aG9yUnVsZTsKKyAgICBlbHNlIHsKKyAgICAgICAgbV9yZXN1bHQu
cmFuZ2VzLmxhc3RBdXRob3JSdWxlID0gbV9yZXN1bHQubWF0Y2hlZFByb3BlcnRpZXMoKS5zaXpl
KCk7CiAgICAgICAgIG1fcmVzdWx0LnJhbmdlcy5maXJzdEF1dGhvclJ1bGUgPSBtX3Jlc3VsdC5y
YW5nZXMubGFzdEF1dGhvclJ1bGU7CisgICAgfQorCiAgICAgbV9yZXN1bHQuYWRkTWF0Y2hlZFBy
b3BlcnRpZXMoKnByb3BlcnR5U2V0KTsKICAgICBpZiAoIWlzQ2FjaGVhYmxlKQogICAgICAgICBt
X3Jlc3VsdC5pc0NhY2hlYWJsZSA9IGZhbHNlOwpAQCAtMTcxLDEzICsxODAsMjEgQEAgdm9pZCBF
bGVtZW50UnVsZUNvbGxlY3Rvcjo6c29ydEFuZFRyYW5zZmVyTWF0Y2hlZFJ1bGVzKCkKIAogICAg
IHNvcnRNYXRjaGVkUnVsZXMoKTsKIAotICAgIGlmIChtX21vZGUgPT0gU2VsZWN0b3JDaGVja2Vy
OjpNb2RlOjpDb2xsZWN0aW5nUnVsZXMpIHsKLSAgICAgICAgZm9yIChjb25zdCBNYXRjaGVkUnVs
ZSYgbWF0Y2hlZFJ1bGUgOiBtX21hdGNoZWRSdWxlcykKKyAgICB0cmFuc2Zlck1hdGNoZWRSdWxl
cygpOworfQorCit2b2lkIEVsZW1lbnRSdWxlQ29sbGVjdG9yOjp0cmFuc2Zlck1hdGNoZWRSdWxl
cyhPcHRpb25hbDxTdHlsZTo6U2NvcGVPcmRpbmFsPiBmcm9tU2NvcGUpCit7CisgICAgZm9yICg7
IG1fbWF0Y2hlZFJ1bGVUcmFuc2ZlckluZGV4IDwgbV9tYXRjaGVkUnVsZXMuc2l6ZSgpOyArK21f
bWF0Y2hlZFJ1bGVUcmFuc2ZlckluZGV4KSB7CisgICAgICAgIGF1dG8mIG1hdGNoZWRSdWxlID0g
bV9tYXRjaGVkUnVsZXNbbV9tYXRjaGVkUnVsZVRyYW5zZmVySW5kZXhdOworICAgICAgICBpZiAo
ZnJvbVNjb3BlICYmIG1hdGNoZWRSdWxlLnN0eWxlU2NvcGVPcmRpbmFsIDwgKmZyb21TY29wZSkK
KyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGlmIChtX21vZGUgPT0gU2VsZWN0b3JDaGVj
a2VyOjpNb2RlOjpDb2xsZWN0aW5nUnVsZXMpIHsKICAgICAgICAgICAgIG1fbWF0Y2hlZFJ1bGVM
aXN0LmFwcGVuZChtYXRjaGVkUnVsZS5ydWxlRGF0YS0+cnVsZSgpKTsKLSAgICAgICAgcmV0dXJu
OwotICAgIH0KKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CiAKLSAgICBmb3IgKGNv
bnN0IE1hdGNoZWRSdWxlJiBtYXRjaGVkUnVsZSA6IG1fbWF0Y2hlZFJ1bGVzKSB7CiAgICAgICAg
IG1fcmVzdWx0LmFkZE1hdGNoZWRQcm9wZXJ0aWVzKG1hdGNoZWRSdWxlLnJ1bGVEYXRhLT5ydWxl
KCktPnByb3BlcnRpZXMoKSwgbWF0Y2hlZFJ1bGUucnVsZURhdGEtPnJ1bGUoKSwgbWF0Y2hlZFJ1
bGUucnVsZURhdGEtPmxpbmtNYXRjaFR5cGUoKSwgbWF0Y2hlZFJ1bGUucnVsZURhdGEtPnByb3Bl
cnR5V2hpdGVsaXN0VHlwZSgpLCBtYXRjaGVkUnVsZS5zdHlsZVNjb3BlT3JkaW5hbCk7CiAgICAg
fQogfQpAQCAtMTg2LDcgKzIwMywyMyBAQCB2b2lkIEVsZW1lbnRSdWxlQ29sbGVjdG9yOjptYXRj
aEF1dGhvclJ1bGVzKGJvb2wgaW5jbHVkZUVtcHR5UnVsZXMpCiB7CiAgICAgY2xlYXJNYXRjaGVk
UnVsZXMoKTsKIAotICAgIG1fcmVzdWx0LnJhbmdlcy5sYXN0QXV0aG9yUnVsZSA9IG1fcmVzdWx0
Lm1hdGNoZWRQcm9wZXJ0aWVzKCkuc2l6ZSgpIC0gMTsKKyAgICBjb2xsZWN0TWF0Y2hpbmdBdXRo
b3JSdWxlcyhpbmNsdWRlRW1wdHlSdWxlcyk7CisKKyAgICBzb3J0QW5kVHJhbnNmZXJNYXRjaGVk
UnVsZXMoKTsKK30KKworYm9vbCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6bWF0Y2hlc0FueUF1dGhv
clJ1bGVzKCkKK3sKKyAgICBjbGVhck1hdGNoZWRSdWxlcygpOworCisgICAgLy8gRklYTUU6IFRo
aXMgc2hvdWxkIGJhaWwgb3V0IG9uIGZpcnN0IG1hdGNoLgorICAgIGNvbGxlY3RNYXRjaGluZ0F1
dGhvclJ1bGVzKGZhbHNlKTsKKworICAgIHJldHVybiAhbV9tYXRjaGVkUnVsZXMuaXNFbXB0eSgp
OworfQorCit2b2lkIEVsZW1lbnRSdWxlQ29sbGVjdG9yOjpjb2xsZWN0TWF0Y2hpbmdBdXRob3JS
dWxlcyhib29sIGluY2x1ZGVFbXB0eVJ1bGVzKQorewogICAgIFN0eWxlUmVzb2x2ZXI6OlJ1bGVS
YW5nZSBydWxlUmFuZ2UgPSBtX3Jlc3VsdC5yYW5nZXMuYXV0aG9yUnVsZVJhbmdlKCk7CiAKICAg
ICB7CkBAIC0yMDUsOCArMjM4LDYgQEAgdm9pZCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6bWF0Y2hB
dXRob3JSdWxlcyhib29sIGluY2x1ZGVFbXB0eVJ1bGVzKQogICAgICAgICBtYXRjaEF1dGhvclNo
YWRvd1BzZXVkb0VsZW1lbnRSdWxlcyhpbmNsdWRlRW1wdHlSdWxlcywgcnVsZVJhbmdlKTsKICAg
ICAgICAgbWF0Y2hQYXJ0UHNldWRvRWxlbWVudFJ1bGVzKGluY2x1ZGVFbXB0eVJ1bGVzLCBydWxl
UmFuZ2UpOwogICAgIH0KLQotICAgIHNvcnRBbmRUcmFuc2Zlck1hdGNoZWRSdWxlcygpOwogfQog
CiB2b2lkIEVsZW1lbnRSdWxlQ29sbGVjdG9yOjptYXRjaEF1dGhvclNoYWRvd1BzZXVkb0VsZW1l
bnRSdWxlcyhib29sIGluY2x1ZGVFbXB0eVJ1bGVzLCBTdHlsZVJlc29sdmVyOjpSdWxlUmFuZ2Um
IHJ1bGVSYW5nZSkKQEAgLTM0MCw3ICszNzEsNiBAQCB2b2lkIEVsZW1lbnRSdWxlQ29sbGVjdG9y
OjptYXRjaFVzZXJSdWxlcyhib29sIGluY2x1ZGVFbXB0eVJ1bGVzKQogICAgIAogICAgIGNsZWFy
TWF0Y2hlZFJ1bGVzKCk7CiAKLSAgICBtX3Jlc3VsdC5yYW5nZXMubGFzdFVzZXJSdWxlID0gbV9y
ZXN1bHQubWF0Y2hlZFByb3BlcnRpZXMoKS5zaXplKCkgLSAxOwogICAgIE1hdGNoUmVxdWVzdCBt
YXRjaFJlcXVlc3QobV91c2VyU3R5bGUsIGluY2x1ZGVFbXB0eVJ1bGVzKTsKICAgICBTdHlsZVJl
c29sdmVyOjpSdWxlUmFuZ2UgcnVsZVJhbmdlID0gbV9yZXN1bHQucmFuZ2VzLnVzZXJSdWxlUmFu
Z2UoKTsKICAgICBjb2xsZWN0TWF0Y2hpbmdSdWxlcyhtYXRjaFJlcXVlc3QsIHJ1bGVSYW5nZSk7
CkBAIC0zNjksNyArMzk5LDYgQEAgdm9pZCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6bWF0Y2hVQVJ1
bGVzKGNvbnN0IFJ1bGVTZXQmIHJ1bGVzKQogewogICAgIGNsZWFyTWF0Y2hlZFJ1bGVzKCk7CiAg
ICAgCi0gICAgbV9yZXN1bHQucmFuZ2VzLmxhc3RVQVJ1bGUgPSBtX3Jlc3VsdC5tYXRjaGVkUHJv
cGVydGllcygpLnNpemUoKSAtIDE7CiAgICAgU3R5bGVSZXNvbHZlcjo6UnVsZVJhbmdlIHJ1bGVS
YW5nZSA9IG1fcmVzdWx0LnJhbmdlcy5VQVJ1bGVSYW5nZSgpOwogICAgIGNvbGxlY3RNYXRjaGlu
Z1J1bGVzKE1hdGNoUmVxdWVzdCgmcnVsZXMpLCBydWxlUmFuZ2UpOwogCkBAIC01NTcsMjcgKzU4
NiwzNyBAQCB2b2lkIEVsZW1lbnRSdWxlQ29sbGVjdG9yOjptYXRjaEFsbFJ1bGVzKGJvb2wgbWF0
Y2hBdXRob3JBbmRVc2VyU3R5bGVzLCBib29sIGluYwogICAgICAgICB9CiAgICAgfQogICAgIAot
ICAgIC8vIENoZWNrIHRoZSBydWxlcyBpbiBhdXRob3Igc2hlZXRzIG5leHQuCi0gICAgaWYgKG1h
dGNoQXV0aG9yQW5kVXNlclN0eWxlcykKLSAgICAgICAgbWF0Y2hBdXRob3JSdWxlcyhmYWxzZSk7
CisgICAgaWYgKG1hdGNoQXV0aG9yQW5kVXNlclN0eWxlcykgeworICAgICAgICBjbGVhck1hdGNo
ZWRSdWxlcygpOwogCi0gICAgaWYgKG1hdGNoQXV0aG9yQW5kVXNlclN0eWxlcyAmJiBpczxTdHls
ZWRFbGVtZW50PihlbGVtZW50KCkpKSB7Ci0gICAgICAgIGF1dG8mIHN0eWxlZEVsZW1lbnQgPSBk
b3duY2FzdDxTdHlsZWRFbGVtZW50PihlbGVtZW50KCkpOwotICAgICAgICAvLyBOb3cgY2hlY2sg
b3VyIGlubGluZSBzdHlsZSBhdHRyaWJ1dGUuCi0gICAgICAgIGlmIChzdHlsZWRFbGVtZW50Lmlu
bGluZVN0eWxlKCkpIHsKLSAgICAgICAgICAgIC8vIElubGluZSBzdHlsZSBpcyBpbW11dGFibGUg
YXMgbG9uZyBhcyB0aGVyZSBpcyBubyBDU1NPTSB3cmFwcGVyLgotICAgICAgICAgICAgLy8gRklY
TUU6IE1lZGlhIGNvbnRyb2wgc2hhZG93IHRyZWVzIHNlZW0gdG8gaGF2ZSBwcm9ibGVtcyB3aXRo
IGNhY2hpbmcuCi0gICAgICAgICAgICBib29sIGlzSW5saW5lU3R5bGVDYWNoZWFibGUgPSAhc3R5
bGVkRWxlbWVudC5pbmxpbmVTdHlsZSgpLT5pc011dGFibGUoKSAmJiAhc3R5bGVkRWxlbWVudC5p
c0luU2hhZG93VHJlZSgpOwotICAgICAgICAgICAgLy8gRklYTUU6IENvbnN0aWZ5LgotICAgICAg
ICAgICAgYWRkRWxlbWVudFN0eWxlUHJvcGVydGllcyhzdHlsZWRFbGVtZW50LmlubGluZVN0eWxl
KCksIGlzSW5saW5lU3R5bGVDYWNoZWFibGUpOwotICAgICAgICB9CisgICAgICAgIGNvbGxlY3RN
YXRjaGluZ0F1dGhvclJ1bGVzKGZhbHNlKTsKKyAgICAgICAgc29ydE1hdGNoZWRSdWxlcygpOwog
Ci0gICAgICAgIC8vIE5vdyBjaGVjayBTTUlMIGFuaW1hdGlvbiBvdmVycmlkZSBzdHlsZS4KLSAg
ICAgICAgaWYgKGluY2x1ZGVTTUlMUHJvcGVydGllcyAmJiBpczxTVkdFbGVtZW50PihzdHlsZWRF
bGVtZW50KSkKLSAgICAgICAgICAgIGFkZEVsZW1lbnRTdHlsZVByb3BlcnRpZXMoZG93bmNhc3Q8
U1ZHRWxlbWVudD4oc3R5bGVkRWxlbWVudCkuYW5pbWF0ZWRTTUlMU3R5bGVQcm9wZXJ0aWVzKCks
IGZhbHNlIC8qIGlzQ2FjaGVhYmxlICovKTsKKyAgICAgICAgdHJhbnNmZXJNYXRjaGVkUnVsZXMo
U3R5bGU6OlNjb3BlT3JkaW5hbDo6RWxlbWVudCk7CisKKyAgICAgICAgLy8gSW5saW5lIHN0eWxl
IGJlaGF2ZXMgYXMgaWYgaXQgaGFzIGhpZ2hlciBzcGVjaWZpY2l0eSB0aGFuIGFueSBydWxlLgor
ICAgICAgICBhZGRFbGVtZW50SW5saW5lU3R5bGVQcm9wZXJ0aWVzKGluY2x1ZGVTTUlMUHJvcGVy
dGllcyk7CisKKyAgICAgICAgLy8gUnVsZXMgZnJvbSB0aGUgaG9zdCBzY29wZSBvdmVycmlkZSBp
bmxpbmUgc3R5bGUuCisgICAgICAgIHRyYW5zZmVyTWF0Y2hlZFJ1bGVzKFN0eWxlOjpTY29wZU9y
ZGluYWw6OkNvbnRhaW5pbmdIb3N0KTsKICAgICB9CiB9CiAKK3ZvaWQgRWxlbWVudFJ1bGVDb2xs
ZWN0b3I6OmFkZEVsZW1lbnRJbmxpbmVTdHlsZVByb3BlcnRpZXMoYm9vbCBpbmNsdWRlU01JTFBy
b3BlcnRpZXMpCit7CisgICAgaWYgKCFpczxTdHlsZWRFbGVtZW50PihlbGVtZW50KCkpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBpZiAoYXV0byogaW5saW5lU3R5bGUgPSBkb3duY2FzdDxTdHls
ZWRFbGVtZW50PihlbGVtZW50KCkpLmlubGluZVN0eWxlKCkpIHsKKyAgICAgICAgLy8gRklYTUU6
IE1lZGlhIGNvbnRyb2wgc2hhZG93IHRyZWVzIHNlZW0gdG8gaGF2ZSBwcm9ibGVtcyB3aXRoIGNh
Y2hpbmcuCisgICAgICAgIGJvb2wgaXNJbmxpbmVTdHlsZUNhY2hlYWJsZSA9ICFpbmxpbmVTdHls
ZS0+aXNNdXRhYmxlKCkgJiYgIWVsZW1lbnQoKS5pc0luU2hhZG93VHJlZSgpOworICAgICAgICBh
ZGRFbGVtZW50U3R5bGVQcm9wZXJ0aWVzKGlubGluZVN0eWxlLCBpc0lubGluZVN0eWxlQ2FjaGVh
YmxlKTsKKyAgICB9CisKKyAgICBpZiAoaW5jbHVkZVNNSUxQcm9wZXJ0aWVzICYmIGlzPFNWR0Vs
ZW1lbnQ+KGVsZW1lbnQoKSkpCisgICAgICAgIGFkZEVsZW1lbnRTdHlsZVByb3BlcnRpZXMoZG93
bmNhc3Q8U1ZHRWxlbWVudD4oZWxlbWVudCgpKS5hbmltYXRlZFNNSUxTdHlsZVByb3BlcnRpZXMo
KSwgZmFsc2UgLyogaXNDYWNoZWFibGUgKi8pOworfQorCiBib29sIEVsZW1lbnRSdWxlQ29sbGVj
dG9yOjpoYXNBbnlNYXRjaGluZ1J1bGVzKGNvbnN0IFJ1bGVTZXQqIHJ1bGVTZXQpCiB7CiAgICAg
Y2xlYXJNYXRjaGVkUnVsZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9FbGVt
ZW50UnVsZUNvbGxlY3Rvci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0VsZW1lbnRSdWxlQ29sbGVj
dG9yLmgKaW5kZXggMTk4MjlkYjE0OWYuLjkwM2ZiODliZTlkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvRWxlbWVudFJ1bGVDb2xsZWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvRWxlbWVudFJ1bGVDb2xsZWN0b3IuaApAQCAtNTIsNiArNTIsOCBAQCBwdWJsaWM6CiAgICAg
dm9pZCBtYXRjaEF1dGhvclJ1bGVzKGJvb2wgaW5jbHVkZUVtcHR5UnVsZXMpOwogICAgIHZvaWQg
bWF0Y2hVc2VyUnVsZXMoYm9vbCBpbmNsdWRlRW1wdHlSdWxlcyk7CiAKKyAgICBib29sIG1hdGNo
ZXNBbnlBdXRob3JSdWxlcygpOworCiAgICAgdm9pZCBzZXRNb2RlKFNlbGVjdG9yQ2hlY2tlcjo6
TW9kZSBtb2RlKSB7IG1fbW9kZSA9IG1vZGU7IH0KICAgICB2b2lkIHNldFBzZXVkb1N0eWxlUmVx
dWVzdChjb25zdCBQc2V1ZG9TdHlsZVJlcXVlc3QmIHJlcXVlc3QpIHsgbV9wc2V1ZG9TdHlsZVJl
cXVlc3QgPSByZXF1ZXN0OyB9CiAgICAgdm9pZCBzZXRNZWRpdW0oY29uc3QgTWVkaWFRdWVyeUV2
YWx1YXRvciogbWVkaXVtKSB7IG1faXNQcmludFN0eWxlID0gbWVkaXVtLT5tZWRpYVR5cGVNYXRj
aFNwZWNpZmljKCJwcmludCIpOyB9CkBAIC02MSw3ICs2Myw2IEBAIHB1YmxpYzoKICAgICBTdHls
ZVJlc29sdmVyOjpNYXRjaFJlc3VsdCYgbWF0Y2hlZFJlc3VsdCgpOwogICAgIGNvbnN0IFZlY3Rv
cjxSZWZQdHI8U3R5bGVSdWxlPj4mIG1hdGNoZWRSdWxlTGlzdCgpIGNvbnN0OwogCi0gICAgYm9v
bCBoYXNNYXRjaGVkUnVsZXMoKSBjb25zdCB7IHJldHVybiAhbV9tYXRjaGVkUnVsZXMuaXNFbXB0
eSgpOyB9CiAgICAgdm9pZCBjbGVhck1hdGNoZWRSdWxlcygpOwogCiAgICAgY29uc3QgUHNldWRv
SWRTZXQmIG1hdGNoZWRQc2V1ZG9FbGVtZW50SWRzKCkgY29uc3QgeyByZXR1cm4gbV9tYXRjaGVk
UHNldWRvRWxlbWVudElkczsgfQpAQCAtNzIsNiArNzMsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lk
IGFkZEVsZW1lbnRTdHlsZVByb3BlcnRpZXMoY29uc3QgU3R5bGVQcm9wZXJ0aWVzKiwgYm9vbCBp
c0NhY2hlYWJsZSA9IHRydWUpOwogCiAgICAgdm9pZCBtYXRjaFVBUnVsZXMoY29uc3QgUnVsZVNl
dCYpOworCisgICAgdm9pZCBjb2xsZWN0TWF0Y2hpbmdBdXRob3JSdWxlcyhib29sIGluY2x1ZGVF
bXB0eVJ1bGVzKTsKKyAgICB2b2lkIGFkZEVsZW1lbnRJbmxpbmVTdHlsZVByb3BlcnRpZXMoYm9v
bCBpbmNsdWRlU01JTFByb3BlcnRpZXMpOworCiAgICAgdm9pZCBtYXRjaEF1dGhvclNoYWRvd1Bz
ZXVkb0VsZW1lbnRSdWxlcyhib29sIGluY2x1ZGVFbXB0eVJ1bGVzLCBTdHlsZVJlc29sdmVyOjpS
dWxlUmFuZ2UmKTsKICAgICB2b2lkIG1hdGNoSG9zdFBzZXVkb0NsYXNzUnVsZXMoYm9vbCBpbmNs
dWRlRW1wdHlSdWxlcywgU3R5bGVSZXNvbHZlcjo6UnVsZVJhbmdlJik7CiAgICAgdm9pZCBtYXRj
aFNsb3R0ZWRQc2V1ZG9FbGVtZW50UnVsZXMoYm9vbCBpbmNsdWRlRW1wdHlSdWxlcywgU3R5bGVS
ZXNvbHZlcjo6UnVsZVJhbmdlJik7CkBAIC04Nyw2ICs5Miw3IEBAIHByaXZhdGU6CiAKICAgICB2
b2lkIHNvcnRNYXRjaGVkUnVsZXMoKTsKICAgICB2b2lkIHNvcnRBbmRUcmFuc2Zlck1hdGNoZWRS
dWxlcygpOworICAgIHZvaWQgdHJhbnNmZXJNYXRjaGVkUnVsZXMoT3B0aW9uYWw8U3R5bGU6OlNj
b3BlT3JkaW5hbD4gZm9yU2NvcGUgPSB7IH0pOwogCiAgICAgdm9pZCBhZGRNYXRjaGVkUnVsZShj
b25zdCBSdWxlRGF0YSYsIHVuc2lnbmVkIHNwZWNpZmljaXR5LCBTdHlsZTo6U2NvcGVPcmRpbmFs
LCBTdHlsZVJlc29sdmVyOjpSdWxlUmFuZ2UmKTsKIApAQCAtMTA3LDYgKzExMyw3IEBAIHByaXZh
dGU6CiAgICAgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxSdWxlU2V0OjpSdWxlRGF0YVZlY3Rvcj4+
IG1fa2VlcEFsaXZlU2xvdHRlZFBzZXVkb0VsZW1lbnRSdWxlczsKIAogICAgIFZlY3RvcjxNYXRj
aGVkUnVsZSwgNjQ+IG1fbWF0Y2hlZFJ1bGVzOworICAgIHNpemVfdCBtX21hdGNoZWRSdWxlVHJh
bnNmZXJJbmRleCB7IDAgfTsKIAogICAgIC8vIE91dHB1dC4KICAgICBWZWN0b3I8UmVmUHRyPFN0
eWxlUnVsZT4+IG1fbWF0Y2hlZFJ1bGVMaXN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL1N0eWxlUHJvcGVydGllcy5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGll
cy5oCmluZGV4IDBjYTdlNjEzNDY4Li4zNzAzNjcxYTNkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHls
ZVByb3BlcnRpZXMuaApAQCAtNTAsNyArNTAsNyBAQCBjbGFzcyBTdHlsZVByb3BlcnRpZXNCYXNl
IDogcHVibGljIFJlZkNvdW50ZWQ8U3R5bGVQcm9wZXJ0aWVzQmFzZT4gewogcHVibGljOgogICAg
IC8vIE92ZXJyaWRlIFJlZkNvdW50ZWQncyBkZXJlZigpIHRvIGVuc3VyZSBvcGVyYXRvciBkZWxl
dGUgaXMgY2FsbGVkIG9uCiAgICAgLy8gdGhlIGFwcHJvcHJpYXRlIHN1YmNsYXNzIHR5cGUuCi0g
ICAgdm9pZCBkZXJlZigpOworICAgIHZvaWQgZGVyZWYoKSBjb25zdDsKICAgICAKICAgICBTdHls
ZVByb3BlcnRpZXNUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxTdHlsZVBy
b3BlcnRpZXNUeXBlPihtX3R5cGUpOyB9CiAKQEAgLTMwNSw3ICszMDUsNyBAQCBpbmxpbmUgdW5z
aWduZWQgU3R5bGVQcm9wZXJ0aWVzOjpwcm9wZXJ0eUNvdW50KCkgY29uc3QKICAgICByZXR1cm4g
ZG93bmNhc3Q8SW1tdXRhYmxlU3R5bGVQcm9wZXJ0aWVzPigqdGhpcykucHJvcGVydHlDb3VudCgp
OwogfQogCi1pbmxpbmUgdm9pZCBTdHlsZVByb3BlcnRpZXNCYXNlOjpkZXJlZigpCitpbmxpbmUg
dm9pZCBTdHlsZVByb3BlcnRpZXNCYXNlOjpkZXJlZigpIGNvbnN0CiB7CiAgICAgaWYgKCFkZXJl
ZkJhc2UoKSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3Bw
CmluZGV4IDIwZTdiMmFmYjgxLi4wYzEzYzk5ZDc5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJl
c29sdmVyLmNwcApAQCAtMjM2OSw3ICsyMzY5LDggQEAgdm9pZCBTdHlsZVJlc29sdmVyOjpDYXNj
YWRlZFByb3BlcnRpZXM6OmFkZEltcG9ydGFudE1hdGNoZXMoY29uc3QgTWF0Y2hSZXN1bHQmIG0K
ICAgICAgICAgaW50IGluZGV4OwogICAgICAgICBTdHlsZTo6U2NvcGVPcmRpbmFsIG9yZGluYWw7
CiAgICAgfTsKLSAgICBWZWN0b3I8SW5kZXhBbmRPcmRpbmFsPiBzaGFkb3dUcmVlTWF0Y2hlczsK
KyAgICBWZWN0b3I8SW5kZXhBbmRPcmRpbmFsPiBpbXBvcnRhbnRNYXRjaGVzOworICAgIGJvb2wg
aGFzTWF0Y2hlc0Zyb21PdGhlclNjb3BlcyA9IGZhbHNlOwogCiAgICAgZm9yIChpbnQgaSA9IHN0
YXJ0SW5kZXg7IGkgPD0gZW5kSW5kZXg7ICsraSkgewogICAgICAgICBjb25zdCBNYXRjaGVkUHJv
cGVydGllcyYgbWF0Y2hlZFByb3BlcnRpZXMgPSBtYXRjaFJlc3VsdC5tYXRjaGVkUHJvcGVydGll
cygpW2ldOwpAQCAtMjM3NywyNCArMjM3OCwyNCBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6OkNhc2Nh
ZGVkUHJvcGVydGllczo6YWRkSW1wb3J0YW50TWF0Y2hlcyhjb25zdCBNYXRjaFJlc3VsdCYgbQog
ICAgICAgICBpZiAoIWhhc0ltcG9ydGFudFByb3BlcnRpZXMoKm1hdGNoZWRQcm9wZXJ0aWVzLnBy
b3BlcnRpZXMpKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgaWYgKG1hdGNoZWRQ
cm9wZXJ0aWVzLnN0eWxlU2NvcGVPcmRpbmFsICE9IFN0eWxlOjpTY29wZU9yZGluYWw6OkVsZW1l
bnQpIHsKLSAgICAgICAgICAgIHNoYWRvd1RyZWVNYXRjaGVzLmFwcGVuZCh7IGksIG1hdGNoZWRQ
cm9wZXJ0aWVzLnN0eWxlU2NvcGVPcmRpbmFsIH0pOwotICAgICAgICAgICAgY29udGludWU7Ci0g
ICAgICAgIH0KKyAgICAgICAgaW1wb3J0YW50TWF0Y2hlcy5hcHBlbmQoeyBpLCBtYXRjaGVkUHJv
cGVydGllcy5zdHlsZVNjb3BlT3JkaW5hbCB9KTsKIAotICAgICAgICBhZGRNYXRjaChtYXRjaFJl
c3VsdCwgaSwgdHJ1ZSwgaW5oZXJpdGVkT25seSk7CisgICAgICAgIGlmIChtYXRjaGVkUHJvcGVy
dGllcy5zdHlsZVNjb3BlT3JkaW5hbCAhPSBTdHlsZTo6U2NvcGVPcmRpbmFsOjpFbGVtZW50KQor
ICAgICAgICAgICAgaGFzTWF0Y2hlc0Zyb21PdGhlclNjb3BlcyA9IHRydWU7CiAgICAgfQogCi0g
ICAgaWYgKHNoYWRvd1RyZWVNYXRjaGVzLmlzRW1wdHkoKSkKKyAgICBpZiAoaW1wb3J0YW50TWF0
Y2hlcy5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIC8vIEZvciAhaW1wb3J0YW50
IHByb3BlcnRpZXMgYSBsYXRlciBzaGFkb3cgdHJlZSB3aW5zLgotICAgIC8vIE1hdGNoIHJlc3Vs
dHMgYXJlIHNvcnRlZCBpbiByZXZlcnNlIHRyZWUgY29udGV4dCBvcmRlciBzbyB0aGlzIGlzIG5v
dCBuZWVkZWQgZm9yIG5vcm1hbCBwcm9wZXJ0aWVzLgotICAgIHN0ZDo6c3RhYmxlX3NvcnQoc2hh
ZG93VHJlZU1hdGNoZXMuYmVnaW4oKSwgc2hhZG93VHJlZU1hdGNoZXMuZW5kKCksIFtdIChjb25z
dCBJbmRleEFuZE9yZGluYWwmIGEsIGNvbnN0IEluZGV4QW5kT3JkaW5hbCYgYikgewotICAgICAg
ICByZXR1cm4gYS5vcmRpbmFsIDwgYi5vcmRpbmFsOwotICAgIH0pOworICAgIGlmIChoYXNNYXRj
aGVzRnJvbU90aGVyU2NvcGVzKSB7CisgICAgICAgIC8vIEZvciAhaW1wb3J0YW50IHByb3BlcnRp
ZXMgYSBsYXRlciBzaGFkb3cgdHJlZSB3aW5zLgorICAgICAgICAvLyBNYXRjaCByZXN1bHRzIGFy
ZSBzb3J0ZWQgaW4gcmV2ZXJzZSB0cmVlIGNvbnRleHQgb3JkZXIgc28gdGhpcyBpcyBub3QgbmVl
ZGVkIGZvciBub3JtYWwgcHJvcGVydGllcy4KKyAgICAgICAgc3RkOjpzdGFibGVfc29ydChpbXBv
cnRhbnRNYXRjaGVzLmJlZ2luKCksIGltcG9ydGFudE1hdGNoZXMuZW5kKCksIFtdIChjb25zdCBJ
bmRleEFuZE9yZGluYWwmIGEsIGNvbnN0IEluZGV4QW5kT3JkaW5hbCYgYikgeworICAgICAgICAg
ICAgcmV0dXJuIGEub3JkaW5hbCA8IGIub3JkaW5hbDsKKyAgICAgICAgfSk7CisgICAgfQogCi0g
ICAgZm9yIChhdXRvJiBtYXRjaCA6IHNoYWRvd1RyZWVNYXRjaGVzKQorICAgIGZvciAoYXV0byYg
bWF0Y2ggOiBpbXBvcnRhbnRNYXRjaGVzKQogICAgICAgICBhZGRNYXRjaChtYXRjaFJlc3VsdCwg
bWF0Y2guaW5kZXgsIHRydWUsIGluaGVyaXRlZE9ubHkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9TdHlsZUludmFsaWRhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL1N0eWxlSW52YWxpZGF0b3IuY3BwCmluZGV4IDFmMjNlYmY2OGRkLi41ODQyOTIxN2ViYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVJbnZhbGlkYXRvci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVJbnZhbGlkYXRvci5jcHAKQEAgLTExNSwxMCAr
MTE1LDEwIEBAIEludmFsaWRhdG9yOjpDaGVja0Rlc2NlbmRhbnRzIEludmFsaWRhdG9yOjppbnZh
bGlkYXRlSWZOZWVkZWQoRWxlbWVudCYgZWxlbWVudCwKICAgICBjYXNlIFN0eWxlOjpWYWxpZGl0
eTo6VmFsaWQ6IHsKICAgICAgICAgRWxlbWVudFJ1bGVDb2xsZWN0b3IgcnVsZUNvbGxlY3Rvcihl
bGVtZW50LCBtX3J1bGVTZXQsIGZpbHRlcik7CiAgICAgICAgIHJ1bGVDb2xsZWN0b3Iuc2V0TW9k
ZShTZWxlY3RvckNoZWNrZXI6Ok1vZGU6OkNvbGxlY3RpbmdSdWxlc0lnbm9yaW5nVmlydHVhbFBz
ZXVkb0VsZW1lbnRzKTsKLSAgICAgICAgcnVsZUNvbGxlY3Rvci5tYXRjaEF1dGhvclJ1bGVzKGZh
bHNlKTsKIAotICAgICAgICBpZiAocnVsZUNvbGxlY3Rvci5oYXNNYXRjaGVkUnVsZXMoKSkKKyAg
ICAgICAgaWYgKHJ1bGVDb2xsZWN0b3IubWF0Y2hlc0FueUF1dGhvclJ1bGVzKCkpCiAgICAgICAg
ICAgICBlbGVtZW50LmludmFsaWRhdGVTdHlsZUludGVybmFsKCk7CisKICAgICAgICAgcmV0dXJu
IENoZWNrRGVzY2VuZGFudHM6OlllczsKICAgICB9CiAgICAgY2FzZSBTdHlsZTo6VmFsaWRpdHk6
OkVsZW1lbnRJbnZhbGlkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVT
Y29wZS5oIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZS5oCmluZGV4IDdmNTUwMDUy
NGYyLi5hNzAyZjczOTQyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVT
Y29wZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGUuaApAQCAtNTUsNyAr
NTUsNyBAQCBuYW1lc3BhY2UgU3R5bGUgewogLy8gVGhpcyBpcyB1c2VkIHRvIGlkZW50aWZ5IHN0
eWxlIHNjb3BlcyB0aGF0IGNhbiBhZmZlY3QgYW4gZWxlbWVudC4KIC8vIFNjb3BlcyBhcmUgaW4g
dHJlZS1vZi10cmVlcyBvcmRlci4gU3R5bGVzIGZyb20gZWFybGllciBzY29wZXMgd2luIG92ZXIg
bGF0ZXIgb25lcyAobW9kdWxvICFpbXBvcnRhbnQpLgogZW51bSBjbGFzcyBTY29wZU9yZGluYWwg
OiBpbnQgewotICAgIENvbnRhaW5pbmdIb3N0ID0gLTEsIC8vIEF1dGhvci1leHBvc2VkIFVBIHBz
ZXVkbyBjbGFzc2VzIGZyb20gdGhlIGhvc3QgdHJlZSBzY29wZS4KKyAgICBDb250YWluaW5nSG9z
dCA9IC0xLCAvLyA6OnBhcnQgcnVsZXMgYW5kIGF1dGhvci1leHBvc2VkIFVBIHBzZXVkbyBjbGFz
c2VzIGZyb20gdGhlIGhvc3QgdHJlZSBzY29wZS4KICAgICBFbGVtZW50ID0gMCwgLy8gTm9ybWFs
IHJ1bGVzIGluIHRoZSBzYW1lIHRyZWUgd2hlcmUgdGhlIGVsZW1lbnQgaXMuCiAgICAgRmlyc3RT
bG90ID0gMSwgLy8gOjpzbG90dGVkIHJ1bGVzIGluIHRoZSBwYXJlbnQncyBzaGFkb3cgdHJlZS4g
VmFsdWVzIGdyZWF0ZXIgdGhhbiBGaXJzdFNsb3QgaW5kaWNhdGUgc3Vic2VxdWVudCBzbG90cyBp
biB0aGUgY2hhaW4uCiAgICAgU2hhZG93ID0gc3RkOjpudW1lcmljX2xpbWl0czxpbnQ+OjptYXgo
KSwgLy8gOmhvc3QgcnVsZXMgaW4gZWxlbWVudCdzIG93biBzaGFkb3cgdHJlZS4K
</data>

          </attachment>
      

    </bug>

</bugzilla>