<?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>218391</bug_id>
          
          <creation_ts>2020-10-30 09:51:21 -0700</creation_ts>
          <short_desc>Transparent video poster image doesn&apos;t keep element transparent once first frame is preloaded</short_desc>
          <delta_ts>2020-11-09 13:55:41 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>Safari 14</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>macOS 10.15</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=218723</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Romaric">hello</reporter>
          <assigned_to name="Eric Carlson">eric.carlson</assigned_to>
          <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>smoley</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1703097</commentid>
    <comment_count>0</comment_count>
    <who name="Romaric">hello</who>
    <bug_when>2020-10-30 09:51:21 -0700</bug_when>
    <thetext>In Safari 14, setting a transparent poster image on a video with `preoload=&quot;auto&quot;` no longer keeps the video element transparent once the first frame gets loaded, as it did in the previous versions of Safari. The element remains transparent if `preload` is `none` or `metadata`, though.

To reproduce:

Open the following page in Safari

```
&lt;html&gt;
  &lt;title&gt;Test video player&lt;/title&gt;
  &lt;body&gt;
  &lt;h1&gt;Test video player&lt;/h1&gt;
  &lt;video controls
    src=&quot;https://archive.org/download/BigBuckBunny_124/Content/big_buck_bunny_720p_surround.mp4&quot;
    poster=&quot;data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7399w&quot;
    preload=&quot;auto&quot;
    width=&quot;640&quot;&gt;
  &lt;/video&gt;
  &lt;/body&gt;
&lt;/html&gt;
```

Actual result:

Once the video preloads enough data, the element&apos;s background turns black

Expected result:

The element remains transparent.

Build &amp; Hardware:

Version 14.0 (15610.1.28.1.9, 15610) on Mac OS 10.15.6

Additional builds &amp; Platforms:

Doesn&apos;t happen on Version 13.1.12 (15609.3.5.1.3) on Mac OS 10.15.6</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703343</commentid>
    <comment_count>1</comment_count>
    <who name="Smoley">smoley</who>
    <bug_when>2020-10-31 09:56:43 -0700</bug_when>
    <thetext>Thanks for filing, this does not reproduce for me on 13.1.3 or the Safari 14.0.1 beta, but I am reproducing it on TOT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1703344</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-31 09:56:53 -0700</bug_when>
    <thetext>&lt;rdar://problem/70916944&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704566</commentid>
    <comment_count>3</comment_count>
      <attachid>413196</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-11-04 12:51:57 -0800</bug_when>
    <thetext>Created attachment 413196
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704677</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-11-04 17:05:19 -0800</bug_when>
    <thetext>Committed r269407: &lt;https://trac.webkit.org/changeset/269407&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 413196.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413196</attachid>
            <date>2020-11-04 12:51:57 -0800</date>
            <delta_ts>2020-11-04 17:05:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218391-20201104125157.patch</filename>
            <type>text/plain</type>
            <size>31175</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MzU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWJkOWZlMDcyNWRkZWMw
NGExZWJlZDhkYjgyMjRkY2I5ZTM3ZTdhMy4uMDAyYmEzNjNmYjM2YTExNzU0YWUyN2NmYjFlYmE0
YzAyMzJhMmIzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDIwLTExLTAzICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFRyYW5zcGFyZW50
IHZpZGVvIHBvc3RlciBpbWFnZSBkb2Vzbid0IGtlZXAgZWxlbWVudCB0cmFuc3BhcmVudCBvbmNl
IGZpcnN0IGZyYW1lIGlzIHByZWxvYWRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjE4MzkxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MDkxNjk0
ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAg
ICAgIFJlZG8gdGhlIHBvc3RlciBmcmFtZSBsb2dpYyB0byB1c2UgdGhlIGBzaG93IHBvc3RlciBm
bGFnYCBsb2dpYyBmcm9tIHRoZSBzcGVjLgorCisgICAgICAgIFRlc3Q6IG1lZGlhL3ZpZGVvLXBv
c3Rlci12aXNpYmxlLWFmdGVyLWZpcnN0LXZpZGVvLWZyYW1lLmh0bWwKKworICAgICAgICAqIGh0
bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVt
ZW50OjpIVE1MTWVkaWFFbGVtZW50KTogSW5pdGlhbGl6ZSBtX3Nob3dQb3N0ZXIuCisgICAgICAg
IChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpwcmVwYXJlRm9yTG9hZCk6IG1fZGlzcGxheU1v
ZGUgd2FzIHJlbW92ZWQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZWxl
Y3RNZWRpYVJlc291cmNlKTogQ2FsbCBzZXRTaG93UG9zdGVyRmxhZy4KKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmxvYWRSZXNvdXJjZSk6IFJlbW92ZSBjYWxscyB0byBzZXRE
aXNwbGF5TW9kZSBhbmQgdXBkYXRlRGlzcGxheVN0YXRlLAorICAgICAgICB0aGV5IGhhdmUgYmVl
biBkZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6d2FpdEZvclNv
dXJjZUNoYW5nZSk6IENhbGwgc2V0U2hvd1Bvc3RlckZsYWcuIFVwZGF0ZSBzcGVjIHRleHQuCisg
ICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojpub25lU3VwcG9ydGVkKTogQ2FsbCBz
ZXRTaG93UG9zdGVyRmxhZy4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Om1l
ZGlhTG9hZGluZ0ZhaWxlZCk6IFJlbW92ZSBjYWxsIHRvIHVwZGF0ZURpc3BsYXlTdGF0ZS4KKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNldFJlYWR5U3RhdGUpOiBEaXR0by4K
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNlZWtXaXRoVG9sZXJhbmNlKTog
Q2FsbCBzZXRTaG93UG9zdGVyRmxhZy4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1l
bnQ6OnNlZWtUYXNrKTogIENoZWNrIG1fc2hvd1Bvc3Rlciwgbm90IGRpc3BsYXlNb2RlLgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6cGxheUludGVybmFsKTogQ2FsbCBzZXRT
aG93UG9zdGVyRmxhZy4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlh
UGxheWVyQ2hhcmFjdGVyaXN0aWNDaGFuZ2VkKTogRG9uJ3QgY2hlY2sgZGlzcGxheU1vZGUuCisg
ICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojp1cGRhdGVQbGF5U3RhdGUpOiBObyBt
b3JlIHNldERpc3BsYXlNb2RlLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6
dXNlckNhbmNlbGxlZExvYWQpOiAgQ2FsbCBzZXRTaG93UG9zdGVyRmxhZy4KKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNldFNob3dQb3N0ZXJGbGFnKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyRmlyc3RWaWRlb0ZyYW1lQXZhaWxh
YmxlKTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNob3dQb3N0ZXJGbGFnIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNldFNob3dQb3N0ZXJGbGFnKToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmRpc3BsYXlNb2RlIGNvbnN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNldERpc3BsYXlNb2Rl
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnVwZGF0ZURp
c3BsYXlTdGF0ZSk6IERlbGV0ZWQuCisKKyAgICAgICAgKiBodG1sL0hUTUxWaWRlb0VsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudDo6ZGlkQXR0YWNoUmVuZGVy
ZXJzKTogTm8gbW9yZSB1cGRhdGVEaXNwbGF5U3RhdGUuCisgICAgICAgIChXZWJDb3JlOjpIVE1M
VmlkZW9FbGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6IERpdHRvLiBDYWxsIHVwZGF0ZUZyb21FbGVt
ZW50IHdoZW4gcG9zdGVyIGlzIHJlbW92ZWQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MVmlkZW9F
bGVtZW50OjpzaG91bGREaXNwbGF5UG9zdGVySW1hZ2UgY29uc3QpOiBOZXcuCisgICAgICAgIChX
ZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50OjptZWRpYVBsYXllckZpcnN0VmlkZW9GcmFtZUF2YWls
YWJsZSk6IE5ldywgdXBkYXRlIHBsYXllciBhbmQgCisgICAgICAgIHJlbmRlcmVyIGlmIHRoZSBw
b3N0ZXIgaXNuJ3Qgc3VwcG9zZWQgdG8gYmUgdmlzaWJsZS4KKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxWaWRlb0VsZW1lbnQ6OnNldERpc3BsYXlNb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxWaWRlb0VsZW1lbnQ6OnVwZGF0ZURpc3BsYXlTdGF0ZSk6IERlbGV0ZWQuCisgICAg
ICAgICogaHRtbC9IVE1MVmlkZW9FbGVtZW50Lmg6CisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyVmlkZW8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmlkZW86OmZhaWxlZFRvTG9h
ZFBvc3RlckltYWdlIGNvbnN0KTogTmV3LgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJWaWRl
by5oOgorCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SW50ZXJuYWxzOjplbGVtZW50U2hvdWxkRGlzcGxheVBvc3RlckltYWdlIGNvbnN0KToKKyAg
ICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxz
LmlkbDoKKwogMjAyMC0xMS0wMyAgQW50b2luZSBRdWludCAgPGdyYW91dHNAd2Via2l0Lm9yZz4K
IAogICAgICAgICBhbGlnbi1pdGVtcyBzaG91bGQgYmUgYSBkaXNjcmV0ZSBhbmltYXRhYmxlIHBy
b3BlcnR5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCA2ODcx
Y2Q4NjA5OGY4NzI4ZjU2MmQyMGMyNGRhZGFhNzUwNGUxMTBkLi4yZWNjNzdiNzRhMDljZmEwMjYw
MTY1MDc0MzkxMjA4Njg2OTA1MjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHAKQEAgLTQxNCw2ICs0MTQsNyBAQCBIVE1MTWVkaWFFbGVtZW50OjpIVE1MTWVkaWFF
bGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bQogICAg
ICwgbV9oYXZlU2V0VXBDYXB0aW9uQ29udGFpbmVyKGZhbHNlKQogICAgICwgbV9pc1NjcnViYmlu
Z1JlbW90ZWx5KGZhbHNlKQogICAgICwgbV93YWl0aW5nVG9FbnRlckZ1bGxzY3JlZW4oZmFsc2Up
CisgICAgLCBtX3Nob3dQb3N0ZXIodHJ1ZSkKICAgICAsIG1fdHJhY2tzQXJlUmVhZHkodHJ1ZSkK
ICAgICAsIG1faGF2ZVZpc2libGVUZXh0VHJhY2soZmFsc2UpCiAgICAgLCBtX3Byb2Nlc3NpbmdQ
cmVmZXJlbmNlQ2hhbmdlKGZhbHNlKQpAQCAtMTA4MSw3ICsxMDgyLDYgQEAgdm9pZCBIVE1MTWVk
aWFFbGVtZW50OjpwcmVwYXJlRm9yTG9hZCgpCiAgICAgbV9oYXZlRmlyZWRMb2FkZWREYXRhID0g
ZmFsc2U7CiAgICAgbV9jb21wbGV0ZWx5TG9hZGVkID0gZmFsc2U7CiAgICAgbV9oYXZlUHJlcGFy
ZWRUb1BsYXkgPSBmYWxzZTsKLSAgICBtX2Rpc3BsYXlNb2RlID0gVW5rbm93bjsKICAgICBtX2N1
cnJlbnRTcmMgPSBVUkwoKTsKIAogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQp
CkBAIC0xMTg1LDcgKzExODUsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNlbGVjdE1lZGlh
UmVzb3VyY2UoKQogICAgIG1fbmV0d29ya1N0YXRlID0gTkVUV09SS19OT19TT1VSQ0U7CiAKICAg
ICAvLyAyLiBTZXQgdGhlIGVsZW1lbnTigJlzIHNob3cgcG9zdGVyIGZsYWcgdG8gdHJ1ZS4KLSAg
ICBzZXREaXNwbGF5TW9kZShQb3N0ZXIpOworICAgIHNldFNob3dQb3N0ZXJGbGFnKHRydWUpOwog
CiAgICAgLy8gMy4gU2V0IHRoZSBtZWRpYSBlbGVtZW504oCZcyBkZWxheWluZy10aGUtbG9hZC1l
dmVudCBmbGFnIHRvIHRydWUgKHRoaXMgZGVsYXlzIHRoZSBsb2FkIGV2ZW50KS4KICAgICBzZXRT
aG91bGREZWxheUxvYWRFdmVudCh0cnVlKTsKQEAgLTE0MzEsOSArMTQzMSw2IEBAIHZvaWQgSFRN
TE1lZGlhRWxlbWVudDo6bG9hZFJlc291cmNlKGNvbnN0IFVSTCYgaW5pdGlhbFVSTCwgQ29udGVu
dFR5cGUmIGNvbnRlbnRUCiAgICAgYm9vbCBwcml2YXRlTW9kZSA9IGRvY3VtZW50KCkucGFnZSgp
ICYmIGRvY3VtZW50KCkucGFnZSgpLT51c2VzRXBoZW1lcmFsU2Vzc2lvbigpOwogICAgIG1fcGxh
eWVyLT5zZXRQcml2YXRlQnJvd3NpbmdNb2RlKHByaXZhdGVNb2RlKTsKIAotICAgIC8vIFJlc2V0
IGRpc3BsYXkgbW9kZSB0byBmb3JjZSBhIHJlY2FsY3VsYXRpb24gb2Ygd2hhdCB0byBzaG93IGJl
Y2F1c2Ugd2UgYXJlIHJlc2V0dGluZyB0aGUgcGxheWVyLgotICAgIHNldERpc3BsYXlNb2RlKFVu
a25vd24pOwotCiAgICAgaWYgKCFhdXRvcGxheSgpICYmICFtX2hhdmVQcmVwYXJlZFRvUGxheSkK
ICAgICAgICAgbV9wbGF5ZXItPnNldFByZWxvYWQobV9tZWRpYVNlc3Npb24tPmVmZmVjdGl2ZVBy
ZWxvYWRGb3JFbGVtZW50KCkpOwogICAgIG1fcGxheWVyLT5zZXRQcmVzZXJ2ZXNQaXRjaChtX3dl
YmtpdFByZXNlcnZlc1BpdGNoKTsKQEAgLTE0ODcsMTEgKzE0ODQsNyBAQCB2b2lkIEhUTUxNZWRp
YUVsZW1lbnQ6OmxvYWRSZXNvdXJjZShjb25zdCBVUkwmIGluaXRpYWxVUkwsIENvbnRlbnRUeXBl
JiBjb250ZW50VAogICAgIGlmICghbG9hZEF0dGVtcHRlZCAmJiAhbV9wbGF5ZXItPmxvYWQodXJs
LCBjb250ZW50VHlwZSwga2V5U3lzdGVtKSkKICAgICAgICAgbWVkaWFMb2FkaW5nRmFpbGVkKE1l
ZGlhUGxheWVyOjpOZXR3b3JrU3RhdGU6OkZvcm1hdEVycm9yKTsKIAotICAgIC8vIElmIHRoZXJl
IGlzIG5vIHBvc3RlciB0byBkaXNwbGF5LCBhbGxvdyB0aGUgbWVkaWEgZW5naW5lIHRvIHJlbmRl
ciB2aWRlbyBmcmFtZXMgYXMgc29vbiBhcwotICAgIC8vIHRoZXkgYXJlIGF2YWlsYWJsZS4KLSAg
ICB1cGRhdGVEaXNwbGF5U3RhdGUoKTsKLQotICAgIHVwZGF0ZVJlbmRlcmVyKCk7CisgICAgbWVk
aWFQbGF5ZXJSZW5kZXJpbmdNb2RlQ2hhbmdlZCgpOwogfQogCiBzdHJ1Y3QgSFRNTE1lZGlhRWxl
bWVudDo6Q3VlRGF0YSB7CkBAIC0xOTgwLDEwICsxOTczLDE0IEBAIHZvaWQgSFRNTE1lZGlhRWxl
bWVudDo6d2FpdEZvclNvdXJjZUNoYW5nZSgpCiAgICAgLy8gNi4xNyAtIFdhaXRpbmc6IFNldCB0
aGUgZWxlbWVudCdzIG5ldHdvcmtTdGF0ZSBhdHRyaWJ1dGUgdG8gdGhlIE5FVFdPUktfTk9fU09V
UkNFIHZhbHVlCiAgICAgbV9uZXR3b3JrU3RhdGUgPSBORVRXT1JLX05PX1NPVVJDRTsKIAotICAg
IC8vIDYuMTggLSBTZXQgdGhlIGVsZW1lbnQncyBkZWxheWluZy10aGUtbG9hZC1ldmVudCBmbGFn
IHRvIGZhbHNlLiBUaGlzIHN0b3BzIGRlbGF5aW5nIHRoZSBsb2FkIGV2ZW50LgorICAgIC8vIDYu
MTggLSBTZXQgdGhlIGVsZW1lbnQncyBzaG93IHBvc3RlciBmbGFnIHRvIHRydWUuCisgICAgc2V0
U2hvd1Bvc3RlckZsYWcodHJ1ZSk7CisKKyAgICAvLyA2LjE5IC0gIFF1ZXVlIGEgbWVkaWEgZWxl
bWVudCB0YXNrIGdpdmVuIHRoZSBtZWRpYSBlbGVtZW50IGdpdmVuIHRoZSBlbGVtZW50IHRvIHNl
dCB0aGUKKyAgICAvLyBlbGVtZW50J3MgZGVsYXlpbmctdGhlLWxvYWQtZXZlbnQgZmxhZyB0byBm
YWxzZS4gVGhpcyBzdG9wcyBkZWxheWluZyB0aGUgbG9hZCBldmVudC4KKyAgICAvLyBGSVhNRTog
dGhpcyBzaG91bGQgYmUgZG9uZSBpbiBhIHRhc2sgcXVldWUKICAgICBzZXRTaG91bGREZWxheUxv
YWRFdmVudChmYWxzZSk7CiAKLSAgICB1cGRhdGVEaXNwbGF5U3RhdGUoKTsKICAgICB1cGRhdGVS
ZW5kZXJlcigpOwogfQogCkBAIC0yMDEyLDYgKzIwMDksOSBAQCB2b2lkIEhUTUxNZWRpYUVsZW1l
bnQ6Om5vbmVTdXBwb3J0ZWQoKQogICAgIC8vIDYuMyAtIFNldCB0aGUgZWxlbWVudCdzIG5ldHdv
cmtTdGF0ZSBhdHRyaWJ1dGUgdG8gdGhlIE5FVFdPUktfTk9fU09VUkNFIHZhbHVlLgogICAgIG1f
bmV0d29ya1N0YXRlID0gTkVUV09SS19OT19TT1VSQ0U7CiAKKyAgICAvLyA2LjQgLSBTZXQgdGhl
IGVsZW1lbnQncyBzaG93IHBvc3RlciBmbGFnIHRvIHRydWUuCisgICAgc2V0U2hvd1Bvc3RlckZs
YWcodHJ1ZSk7CisKICAgICAvLyA3IC0gUXVldWUgYSB0YXNrIHRvIGZpcmUgYSBzaW1wbGUgZXZl
bnQgbmFtZWQgZXJyb3IgYXQgdGhlIG1lZGlhIGVsZW1lbnQuCiAgICAgc2NoZWR1bGVFdmVudChl
dmVudE5hbWVzKCkuZXJyb3JFdmVudCk7CiAKQEAgLTIwMjcsNyArMjAyNyw2IEBAIHZvaWQgSFRN
TE1lZGlhRWxlbWVudDo6bm9uZVN1cHBvcnRlZCgpCiAgICAgLy8gOSAtIEFib3J0IHRoZXNlIHN0
ZXBzLiBVbnRpbCB0aGUgbG9hZCgpIG1ldGhvZCBpcyBpbnZva2VkIG9yIHRoZSBzcmMgYXR0cmli
dXRlIGlzIGNoYW5nZWQsCiAgICAgLy8gdGhlIGVsZW1lbnQgd29uJ3QgYXR0ZW1wdCB0byBsb2Fk
IGFub3RoZXIgcmVzb3VyY2UuCiAKLSAgICB1cGRhdGVEaXNwbGF5U3RhdGUoKTsKICAgICB1cGRh
dGVSZW5kZXJlcigpOwogfQogCkBAIC0yMTQxLDggKzIxNDAsNiBAQCB2b2lkIEhUTUxNZWRpYUVs
ZW1lbnQ6Om1lZGlhTG9hZGluZ0ZhaWxlZChNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlIGVycm9y
KQogICAgIGVsc2UgaWYgKChlcnJvciA9PSBNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlOjpGb3Jt
YXRFcnJvciB8fCBlcnJvciA9PSBNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlOjpOZXR3b3JrRXJy
b3IpICYmIG1fbG9hZFN0YXRlID09IExvYWRpbmdGcm9tU3JjQXR0cikKICAgICAgICAgbm9uZVN1
cHBvcnRlZCgpOwogCi0gICAgdXBkYXRlRGlzcGxheVN0YXRlKCk7Ci0KICAgICBFUlJPUl9MT0co
TE9HSURFTlRJRklFUiwgImVycm9yID0gIiwgc3RhdGljX2Nhc3Q8aW50PihlcnJvcikpOwogCiAg
ICAgbG9nTWVkaWFMb2FkUmVxdWVzdChkb2N1bWVudCgpLnBhZ2UoKSwgU3RyaW5nKCksIGNvbnZl
cnRFbnVtZXJhdGlvblRvU3RyaW5nKGVycm9yKSwgZmFsc2UpOwpAQCAtMjM0MywyNSArMjM0MCwy
MCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNldFJlYWR5U3RhdGUoTWVkaWFQbGF5ZXI6OlJl
YWR5U3RhdGUgc3RhdGUpCiAgICAgICAgIG1fbWVkaWFTZXNzaW9uLT5jbGllbnRDaGFyYWN0ZXJp
c3RpY3NDaGFuZ2VkKCk7CiAgICAgfQogCi0gICAgYm9vbCBzaG91bGRVcGRhdGVEaXNwbGF5U3Rh
dGUgPSBmYWxzZTsKLQogICAgIGlmIChtX3JlYWR5U3RhdGUgPj0gSEFWRV9DVVJSRU5UX0RBVEEg
JiYgb2xkU3RhdGUgPCBIQVZFX0NVUlJFTlRfREFUQSkgewogICAgICAgICBpZiAoIW1faGF2ZUZp
cmVkTG9hZGVkRGF0YSkgewogICAgICAgICAgICAgbV9oYXZlRmlyZWRMb2FkZWREYXRhID0gdHJ1
ZTsKICAgICAgICAgICAgIHNjaGVkdWxlRXZlbnQoZXZlbnROYW1lcygpLmxvYWRlZGRhdGFFdmVu
dCk7Ci0gICAgICAgICAgICAvLyBGSVhNRTogSXQncyBub3QgY2xlYXIgdGhhdCBpdCdzIGNvcnJl
Y3QgdG8gc2tpcCB0aGVzZSB0d28gb3BlcmF0aW9ucyBqdXN0CisgICAgICAgICAgICAvLyBGSVhN
RTogSXQncyBub3QgY2xlYXIgdGhhdCBpdCdzIGNvcnJlY3QgdG8gc2tpcCB0aGVzZSB0aGlzIG9w
ZXJhdGlvbiBqdXN0CiAgICAgICAgICAgICAvLyBiZWNhdXNlIG1faGF2ZUZpcmVkTG9hZGVkRGF0
YSBpcyBhbHJlYWR5IHRydWUuIEF0IG9uZSB0aW1lIHdlIHdlcmUgc2tpcHBpbmcKICAgICAgICAg
ICAgIC8vIHRoZSBjYWxsIHRvIHNldFNob3VsZERlbGF5TG9hZEV2ZW50LCB3aGljaCB3YXMgZGVm
aW5pdGVseSBpbmNvcnJlY3QuCi0gICAgICAgICAgICBzaG91bGRVcGRhdGVEaXNwbGF5U3RhdGUg
PSB0cnVlOwogICAgICAgICAgICAgYXBwbHlNZWRpYUZyYWdtZW50VVJJKCk7CiAgICAgICAgIH0K
ICAgICAgICAgc2V0U2hvdWxkRGVsYXlMb2FkRXZlbnQoZmFsc2UpOwogICAgIH0KIAotICAgIGlm
IChtX3JlYWR5U3RhdGUgPT0gSEFWRV9GVVRVUkVfREFUQSAmJiBvbGRTdGF0ZSA8PSBIQVZFX0NV
UlJFTlRfREFUQSAmJiB0cmFja3NBcmVSZWFkeSkgeworICAgIGlmIChtX3JlYWR5U3RhdGUgPT0g
SEFWRV9GVVRVUkVfREFUQSAmJiBvbGRTdGF0ZSA8PSBIQVZFX0NVUlJFTlRfREFUQSAmJiB0cmFj
a3NBcmVSZWFkeSkKICAgICAgICAgc2NoZWR1bGVFdmVudChldmVudE5hbWVzKCkuY2FucGxheUV2
ZW50KTsKLSAgICAgICAgc2hvdWxkVXBkYXRlRGlzcGxheVN0YXRlID0gdHJ1ZTsKLSAgICB9CiAK
ICAgICBpZiAobV9yZWFkeVN0YXRlID09IEhBVkVfRU5PVUdIX0RBVEEgJiYgb2xkU3RhdGUgPCBI
QVZFX0VOT1VHSF9EQVRBICYmIHRyYWNrc0FyZVJlYWR5KSB7CiAgICAgICAgIGlmIChvbGRTdGF0
ZSA8PSBIQVZFX0NVUlJFTlRfREFUQSkKQEAgLTIzNzIsNiArMjM2NCw3IEBAIHZvaWQgSFRNTE1l
ZGlhRWxlbWVudDo6c2V0UmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSBzdGF0ZSkK
ICAgICAgICAgYXV0byBzdWNjZXNzID0gY2FuVHJhbnNpdGlvbkZyb21BdXRvcGxheVRvUGxheSgp
OwogICAgICAgICBpZiAoc3VjY2VzcykgewogICAgICAgICAgICAgbV9wYXVzZWQgPSBmYWxzZTsK
KyAgICAgICAgICAgIHNldFNob3dQb3N0ZXJGbGFnKGZhbHNlKTsKICAgICAgICAgICAgIGludmFs
aWRhdGVDYWNoZWRUaW1lKCk7CiAgICAgICAgICAgICBzZXRBdXRvcGxheUV2ZW50UGxheWJhY2tT
dGF0ZShBdXRvcGxheUV2ZW50UGxheWJhY2tTdGF0ZTo6U3RhcnRlZFdpdGhvdXRVc2VyR2VzdHVy
ZSk7CiAgICAgICAgICAgICBtX3BsYXliYWNrU3RhcnRlZFRpbWUgPSBjdXJyZW50TWVkaWFUaW1l
KCkudG9Eb3VibGUoKTsKQEAgLTIzODAsOCArMjM3Myw2IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVu
dDo6c2V0UmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSBzdGF0ZSkKICAgICAgICAg
ICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgIkF1dG9wbGF5IGJsb2NrZWQsIHVzZXIgZ2Vz
dHVyZSByZXF1aXJlZCIpOwogICAgICAgICAgICAgc2V0QXV0b3BsYXlFdmVudFBsYXliYWNrU3Rh
dGUoQXV0b3BsYXlFdmVudFBsYXliYWNrU3RhdGU6OlByZXZlbnRlZEF1dG9wbGF5KTsKICAgICAg
ICAgfQotCi0gICAgICAgIHNob3VsZFVwZGF0ZURpc3BsYXlTdGF0ZSA9IHRydWU7CiAgICAgfQog
CiAgICAgLy8gSWYgd2UgdHJhbnNpdGlvbiB0byB0aGUgRnV0dXJlIERhdGEgc3RhdGUgYW5kIHdl
J3JlIGFib3V0IHRvIGJlZ2luIHBsYXlpbmcsIGVuc3VyZSBwbGF5YmFjayBpcyBhY3R1YWxseSBw
ZXJtaXR0ZWQgZmlyc3QsCkBAIC0yMzk1LDkgKzIzODYsNiBAQCB2b2lkIEhUTUxNZWRpYUVsZW1l
bnQ6OnNldFJlYWR5U3RhdGUoTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgc3RhdGUpCiAgICAgICAg
IHNldEF1dG9wbGF5RXZlbnRQbGF5YmFja1N0YXRlKEF1dG9wbGF5RXZlbnRQbGF5YmFja1N0YXRl
OjpQcmV2ZW50ZWRBdXRvcGxheSk7CiAgICAgfQogCi0gICAgaWYgKHNob3VsZFVwZGF0ZURpc3Bs
YXlTdGF0ZSkKLSAgICAgICAgdXBkYXRlRGlzcGxheVN0YXRlKCk7Ci0KICAgICB1cGRhdGVQbGF5
U3RhdGUoKTsKICAgICB1cGRhdGVNZWRpYUNvbnRyb2xsZXIoKTsKICAgICB1cGRhdGVBY3RpdmVU
ZXh0VHJhY2tDdWVzKGN1cnJlbnRNZWRpYVRpbWUoKSk7CkBAIC0yODYyLDcgKzI4NTAsNyBAQCB2
b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNlZWtXaXRoVG9sZXJhbmNlKGNvbnN0IE1lZGlhVGltZSYg
aW5UaW1lLCBjb25zdCBNZWRpYVRpbQogICAgIE1lZGlhVGltZSB0aW1lID0gaW5UaW1lOwogCiAg
ICAgLy8gMSAtIFNldCB0aGUgbWVkaWEgZWxlbWVudCdzIHNob3cgcG9zdGVyIGZsYWcgdG8gZmFs
c2UuCi0gICAgc2V0RGlzcGxheU1vZGUoVmlkZW8pOworICAgIHNldFNob3dQb3N0ZXJGbGFnKGZh
bHNlKTsKIAogICAgIC8vIDIgLSBJZiB0aGUgbWVkaWEgZWxlbWVudCdzIHJlYWR5U3RhdGUgaXMg
SEFWRV9OT1RISU5HLCBhYm9ydCB0aGVzZSBzdGVwcy4KICAgICBpZiAobV9yZWFkeVN0YXRlID09
IEhBVkVfTk9USElORyB8fCAhbV9wbGF5ZXIpCkBAIC0yOTYxLDcgKzI5NDksNyBAQCB2b2lkIEhU
TUxNZWRpYUVsZW1lbnQ6OnNlZWtUYXNrKCkKICAgICAvLyBEb24ndCBza2lwIGNhbGxpbmcgdGhl
IG1lZGlhIGVuZ2luZSBpZiAxKSB3ZSBhcmUgaW4gcG9zdGVyIG1vZGUgKGJlY2F1c2UgYSBzZWVr
IHNob3VsZCBhbHdheXMgY2FuY2VsCiAgICAgLy8gcG9zdGVyIGRpc3BsYXkpLCBvciAyKSBpZiB0
aGVyZSBpcyBhIHBlbmRpbmcgZmFzdCBzZWVrLCBvciAzKSBpZiB0aGlzIHNlZWsgaXMgbm90IGFu
IGV4YWN0IHNlZWsKICAgICBTZWVrVHlwZSB0aGlzU2Vla1R5cGUgPSAobmVnYXRpdmVUb2xlcmFu
Y2UgPT0gTWVkaWFUaW1lOjp6ZXJvVGltZSgpICYmIHBvc2l0aXZlVG9sZXJhbmNlID09IE1lZGlh
VGltZTo6emVyb1RpbWUoKSkgPyBQcmVjaXNlIDogRmFzdDsKLSAgICBpZiAoIW5vU2Vla1JlcXVp
cmVkICYmIHRpbWUgPT0gbm93ICYmIHRoaXNTZWVrVHlwZSA9PSBQcmVjaXNlICYmIG1fcGVuZGlu
Z1NlZWtUeXBlICE9IEZhc3QgJiYgZGlzcGxheU1vZGUoKSAhPSBQb3N0ZXIpCisgICAgaWYgKCFu
b1NlZWtSZXF1aXJlZCAmJiB0aW1lID09IG5vdyAmJiB0aGlzU2Vla1R5cGUgPT0gUHJlY2lzZSAm
JiBtX3BlbmRpbmdTZWVrVHlwZSAhPSBGYXN0ICYmICFzaG93UG9zdGVyRmxhZygpKQogICAgICAg
ICBub1NlZWtSZXF1aXJlZCA9IHRydWU7CiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQpAQCAt
MzQ0Miw2ICszNDMwLDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpwbGF5SW50ZXJuYWwoKQog
CiAgICAgaWYgKG1fcGF1c2VkKSB7CiAgICAgICAgIG1fcGF1c2VkID0gZmFsc2U7CisgICAgICAg
IHNldFNob3dQb3N0ZXJGbGFnKGZhbHNlKTsKICAgICAgICAgaW52YWxpZGF0ZUNhY2hlZFRpbWUo
KTsKIAogICAgICAgICAvLyBUaGlzIGF2b2lkcyB0aGUgZmlyc3QgdGltZVVwZGF0ZWQgZXZlbnQg
YWZ0ZXIgcGxheWJhY2sgc3RhcnRzLCB3aGVuIGN1cnJlbnRUaW1lIGlzIHN0aWxsCkBAIC00ODc2
LDcgKzQ4NjUsNiBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyUmVzb3VyY2VO
b3RTdXBwb3J0ZWQoKQogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllclJlcGFpbnQo
KQogewogICAgIGJlZ2luUHJvY2Vzc2luZ01lZGlhUGxheWVyQ2FsbGJhY2soKTsKLSAgICB1cGRh
dGVEaXNwbGF5U3RhdGUoKTsKICAgICBpZiAoYXV0byogcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJl
cigpKQogICAgICAgICByZW5kZXJlci0+cmVwYWludCgpOwogICAgIGVuZFByb2Nlc3NpbmdNZWRp
YVBsYXllckNhbGxiYWNrKCk7CkBAIC01MDA5LDE4ICs0OTk3LDYgQEAgdm9pZCBIVE1MTWVkaWFF
bGVtZW50OjptZWRpYVBsYXllckVuZ2luZVVwZGF0ZWQoKQogICAgIHNjaGVkdWxlTWVkaWFFbmdp
bmVXYXNVcGRhdGVkKCk7CiB9CiAKLXZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJG
aXJzdFZpZGVvRnJhbWVBdmFpbGFibGUoKQotewotICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklF
UiwgImN1cnJlbnQgZGlzcGxheSBtb2RlID0gIiwgKGludClkaXNwbGF5TW9kZSgpKTsKLQotICAg
IGJlZ2luUHJvY2Vzc2luZ01lZGlhUGxheWVyQ2FsbGJhY2soKTsKLSAgICBpZiAoZGlzcGxheU1v
ZGUoKSA9PSBQb3N0ZXJXYWl0aW5nRm9yVmlkZW8pIHsKLSAgICAgICAgc2V0RGlzcGxheU1vZGUo
VmlkZW8pOwotICAgICAgICBtZWRpYVBsYXllclJlbmRlcmluZ01vZGVDaGFuZ2VkKCk7Ci0gICAg
fQotICAgIGVuZFByb2Nlc3NpbmdNZWRpYVBsYXllckNhbGxiYWNrKCk7Ci19Ci0KIHZvaWQgSFRN
TE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJDaGFyYWN0ZXJpc3RpY0NoYW5nZWQoKQogewogICAg
IEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CkBAIC01MDMwLDEwICs1MDA2LDggQEAgdm9pZCBI
VE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllckNoYXJhY3RlcmlzdGljQ2hhbmdlZCgpCiAgICAg
aWYgKGNhcHRpb25EaXNwbGF5TW9kZSgpID09IENhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OkF1dG9t
YXRpYyAmJiBtX3N1YnRpdGxlVHJhY2tMYW5ndWFnZSAhPSBtX3BsYXllci0+bGFuZ3VhZ2VPZlBy
aW1hcnlBdWRpb1RyYWNrKCkpCiAgICAgICAgIG1hcmtDYXB0aW9uQW5kU3VidGl0bGVUcmFja3NB
c1VuY29uZmlndXJlZChBZnRlckRlbGF5KTsKIAotICAgIGlmIChwb3RlbnRpYWxseVBsYXlpbmco
KSAmJiBkaXNwbGF5TW9kZSgpID09IFBvc3RlcldhaXRpbmdGb3JWaWRlbykgewotICAgICAgICBz
ZXREaXNwbGF5TW9kZShWaWRlbyk7CisgICAgaWYgKHBvdGVudGlhbGx5UGxheWluZygpKQogICAg
ICAgICBtZWRpYVBsYXllclJlbmRlcmluZ01vZGVDaGFuZ2VkKCk7Ci0gICAgfQogCiAgICAgdXBk
YXRlUmVuZGVyZXIoKTsKIApAQCAtNTI2NSw3ICs1MjM5LDYgQEAgdm9pZCBIVE1MTWVkaWFFbGVt
ZW50Ojp1cGRhdGVQbGF5U3RhdGUoKQogICAgIGlmIChzaG91bGRCZVBsYXlpbmcpIHsKICAgICAg
ICAgc2NoZWR1bGVQbGF5YmFja0NvbnRyb2xzTWFuYWdlclVwZGF0ZSgpOwogCi0gICAgICAgIHNl
dERpc3BsYXlNb2RlKFZpZGVvKTsKICAgICAgICAgaW52YWxpZGF0ZUNhY2hlZFRpbWUoKTsKIAog
ICAgICAgICBpZiAocGxheWVyUGF1c2VkKSB7CkBAIC01Mzk4LDExICs1MzcxLDExIEBAIHZvaWQg
SFRNTE1lZGlhRWxlbWVudDo6dXNlckNhbmNlbGxlZExvYWQoKQogI2VuZGlmCiAKICAgICAvLyA0
IC0gSWYgdGhlIG1lZGlhIGVsZW1lbnQncyByZWFkeVN0YXRlIGF0dHJpYnV0ZSBoYXMgYSB2YWx1
ZSBlcXVhbCB0byBIQVZFX05PVEhJTkcsIHNldCB0aGUKLSAgICAvLyBlbGVtZW50J3MgbmV0d29y
a1N0YXRlIGF0dHJpYnV0ZSB0byB0aGUgTkVUV09SS19FTVBUWSB2YWx1ZSBhbmQgcXVldWUgYSB0
YXNrIHRvIGZpcmUgYQotICAgIC8vIHNpbXBsZSBldmVudCBuYW1lZCBlbXB0aWVkIGF0IHRoZSBl
bGVtZW50LiBPdGhlcndpc2UsIHNldCB0aGUgZWxlbWVudCdzIG5ldHdvcmtTdGF0ZQotICAgIC8v
IGF0dHJpYnV0ZSB0byB0aGUgTkVUV09SS19JRExFIHZhbHVlLgorICAgIC8vIGVsZW1lbnQncyBu
ZXR3b3JrU3RhdGUgYXR0cmlidXRlIHRvIHRoZSBORVRXT1JLX0VNUFRZIHZhbHVlLCBzZXQgdGhl
IGVsZW1lbnQncyBzaG93IHBvc3RlcgorICAgIC8vIGZsYWcgdG8gdHJ1ZSwgYW5kIGZpcmUgYW4g
ZXZlbnQgbmFtZWQgZW1wdGllZCBhdCB0aGUgZWxlbWVudC4KICAgICBpZiAobV9yZWFkeVN0YXRl
ID09IEhBVkVfTk9USElORykgewogICAgICAgICBtX25ldHdvcmtTdGF0ZSA9IE5FVFdPUktfRU1Q
VFk7CisgICAgICAgIHNldFNob3dQb3N0ZXJGbGFnKHRydWUpOwogICAgICAgICBzY2hlZHVsZUV2
ZW50KGV2ZW50TmFtZXMoKS5lbXB0aWVkRXZlbnQpOwogICAgIH0KICAgICBlbHNlCkBAIC03OTQy
LDYgKzc5MTUsMTcgQEAgU2VjdXJpdHlPcmlnaW5EYXRhIEhUTUxNZWRpYUVsZW1lbnQ6OmRvY3Vt
ZW50U2VjdXJpdHlPcmlnaW4oKSBjb25zdAogICAgIHJldHVybiBkb2N1bWVudCgpLnNlY3VyaXR5
T3JpZ2luKCkuZGF0YSgpOwogfQogCit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNldFNob3dQb3N0
ZXJGbGFnKGJvb2wgZmxhZykKK3sKKyAgICBpZiAobV9zaG93UG9zdGVyID09IGZsYWcpCisgICAg
ICAgIHJldHVybjsKKworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgZmxhZyk7CisKKyAg
ICBtX3Nob3dQb3N0ZXIgPSBmbGFnOworICAgIGludmFsaWRhdGVTdHlsZUFuZExheWVyQ29tcG9z
aXRpb24oKTsKK30KKwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmgKaW5kZXggYjI1ZjRlMjM4YTJhZTU3MmJiODAyMGI5Y2NmNmU4NzU4ZjMyYTY2ZC4uMDY0
ZjNkMDkxMDdlMTljOTA2M2Q4YWNlZTY2ZmRhN2JjYmRiMDE3OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmgKQEAgLTU4NiwxMCArNTg2LDYgQEAgcHJvdGVjdGVkOgogCiAg
ICAgdm9pZCBkaWRNb3ZlVG9OZXdEb2N1bWVudChEb2N1bWVudCYgb2xkRG9jdW1lbnQsIERvY3Vt
ZW50JiBuZXdEb2N1bWVudCkgb3ZlcnJpZGU7CiAKLSAgICBlbnVtIERpc3BsYXlNb2RlIHsgVW5r
bm93biwgTm9uZSwgUG9zdGVyLCBQb3N0ZXJXYWl0aW5nRm9yVmlkZW8sIFZpZGVvIH07Ci0gICAg
RGlzcGxheU1vZGUgZGlzcGxheU1vZGUoKSBjb25zdCB7IHJldHVybiBtX2Rpc3BsYXlNb2RlOyB9
Ci0gICAgdmlydHVhbCB2b2lkIHNldERpc3BsYXlNb2RlKERpc3BsYXlNb2RlIG1vZGUpIHsgbV9k
aXNwbGF5TW9kZSA9IG1vZGU7IH0KLSAgICAKICAgICBib29sIGlzTWVkaWFFbGVtZW50KCkgY29u
c3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+
IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmLCBjb25zdCBSZW5kZXJUcmVlUG9z
aXRpb24mKSBvdmVycmlkZTsKQEAgLTYwNSw2ICs2MDEsOSBAQCBwcm90ZWN0ZWQ6CiAKICAgICB2
b2lkIHNjaGVkdWxlRXZlbnQoY29uc3QgQXRvbVN0cmluZyYpOwogCisgICAgYm9vbCBzaG93UG9z
dGVyRmxhZygpIGNvbnN0IHsgcmV0dXJuIG1fc2hvd1Bvc3RlcjsgfQorICAgIHZvaWQgc2V0U2hv
d1Bvc3RlckZsYWcoYm9vbCk7CisgICAgCiAgICAgdm9pZCBzZXRDaGFuZ2luZ1ZpZGVvRnVsbHNj
cmVlbk1vZGUoYm9vbCB2YWx1ZSkgeyBtX2NoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9kZSA9IHZh
bHVlOyB9CiAgICAgYm9vbCBpc0NoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9kZSgpIGNvbnN0IHsg
cmV0dXJuIG1fY2hhbmdpbmdWaWRlb0Z1bGxzY3JlZW5Nb2RlOyB9CiAKQEAgLTYzOCw4ICs2Mzcs
NiBAQCBwcml2YXRlOgogICAgIAogICAgIHZvaWQgdmlzaWJpbGl0eVN0YXRlQ2hhbmdlZCgpIGZp
bmFsOwogCi0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZURpc3BsYXlTdGF0ZSgpIHsgfQotICAgIAog
ICAgIHZvaWQgc2V0UmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSk7CiAgICAgdm9p
ZCBzZXROZXR3b3JrU3RhdGUoTWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0ZSk7CiAKQEAgLTY2NSw3
ICs2NjIsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgc2NoZWR1bGVNZWRpYUVuZ2luZVdhc1VwZGF0
ZWQoKTsKICAgICB2b2lkIG1lZGlhRW5naW5lV2FzVXBkYXRlZCgpOwogCi0gICAgdm9pZCBtZWRp
YVBsYXllckZpcnN0VmlkZW9GcmFtZUF2YWlsYWJsZSgpIGZpbmFsOwogICAgIHZvaWQgbWVkaWFQ
bGF5ZXJDaGFyYWN0ZXJpc3RpY0NoYW5nZWQoKSBmaW5hbDsKIAogI2lmIEVOQUJMRShMRUdBQ1lf
RU5DUllQVEVEX01FRElBKQpAQCAtMTAyMyw4ICsxMDE5LDYgQEAgcHJpdmF0ZToKIAogICAgIE1l
ZGlhUGxheWVyOjpQcmVsb2FkIG1fcHJlbG9hZCB7IFByZWxvYWQ6OkF1dG8gfTsKIAotICAgIERp
c3BsYXlNb2RlIG1fZGlzcGxheU1vZGUgeyBVbmtub3duIH07Ci0KICAgICAvLyBDb3VudGVyIGlu
Y3JlbWVudGVkIHdoaWxlIHByb2Nlc3NpbmcgYSBjYWxsYmFjayBmcm9tIHRoZSBtZWRpYSBwbGF5
ZXIsIHNvIHdlIGNhbiBhdm9pZAogICAgIC8vIGNhbGxpbmcgdGhlIG1lZGlhIGVuZ2luZSByZWN1
cnNpdmVseS4KICAgICBpbnQgbV9wcm9jZXNzaW5nTWVkaWFQbGF5ZXJDYWxsYmFjayB7IDAgfTsK
QEAgLTEwOTYsNiArMTA5MCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3dhaXRpbmdUb0VudGVy
RnVsbHNjcmVlbiA6IDE7CiAgICAgYm9vbCBtX2NoYW5naW5nVmlkZW9GdWxsc2NyZWVuTW9kZSA6
IDE7CiAKKyAgICBib29sIG1fc2hvd1Bvc3RlciA6IDE7CiAgICAgYm9vbCBtX3RyYWNrc0FyZVJl
YWR5IDogMTsKICAgICBib29sIG1faGF2ZVZpc2libGVUZXh0VHJhY2sgOiAxOwogICAgIGJvb2wg
bV9wcm9jZXNzaW5nUHJlZmVyZW5jZUNoYW5nZSA6IDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VmlkZW9FbGVtZW50LmNwcAppbmRleCA5ODg0OTQwOTdkMDMwYjc2YzY1NWQ3NzhiMjEwZWNmY2Q2
OWE0MTVlLi4xNWRhYjFmNDY0YTFlNzMyMWY0NjU4M2JiOTZhOGRkMGFlYTFmMTI2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNy0yMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTAz
LDcgKzEwMyw2IEBAIHZvaWQgSFRNTFZpZGVvRWxlbWVudDo6ZGlkQXR0YWNoUmVuZGVyZXJzKCkK
IHsKICAgICBIVE1MTWVkaWFFbGVtZW50OjpkaWRBdHRhY2hSZW5kZXJlcnMoKTsKIAotICAgIHVw
ZGF0ZURpc3BsYXlTdGF0ZSgpOwogICAgIGlmIChzaG91bGREaXNwbGF5UG9zdGVySW1hZ2UoKSkg
ewogICAgICAgICBpZiAoIW1faW1hZ2VMb2FkZXIpCiAgICAgICAgICAgICBtX2ltYWdlTG9hZGVy
ID0gbWFrZVVuaXF1ZTxIVE1MSW1hZ2VMb2FkZXI+KCp0aGlzKTsKQEAgLTEzMywyMCArMTMyLDE1
IEBAIGJvb2wgSFRNTFZpZGVvRWxlbWVudDo6aXNQcmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgbmFtZSkgY29uc3QKIHZvaWQgSFRNTFZpZGVvRWxlbWVudDo6cGFyc2VB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFs
dWUpCiB7CiAgICAgaWYgKG5hbWUgPT0gcG9zdGVyQXR0cikgewotICAgICAgICBpZiAoaGFzQXZh
aWxhYmxlVmlkZW9GcmFtZSgpKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIC8vIEZv
cmNlIGEgcG9zdGVyIHJlY2FsYyBieSBzZXR0aW5nIG1fZGlzcGxheU1vZGUgdG8gVW5rbm93biBk
aXJlY3RseSBiZWZvcmUgY2FsbGluZyB1cGRhdGVEaXNwbGF5U3RhdGUuCi0gICAgICAgIEhUTUxN
ZWRpYUVsZW1lbnQ6OnNldERpc3BsYXlNb2RlKFVua25vd24pOwotICAgICAgICB1cGRhdGVEaXNw
bGF5U3RhdGUoKTsKLQogICAgICAgICBpZiAoc2hvdWxkRGlzcGxheVBvc3RlckltYWdlKCkpIHsK
ICAgICAgICAgICAgIGlmICghbV9pbWFnZUxvYWRlcikKICAgICAgICAgICAgICAgICBtX2ltYWdl
TG9hZGVyID0gbWFrZVVuaXF1ZTxIVE1MSW1hZ2VMb2FkZXI+KCp0aGlzKTsKICAgICAgICAgICAg
IG1faW1hZ2VMb2FkZXItPnVwZGF0ZUZyb21FbGVtZW50SWdub3JpbmdQcmV2aW91c0Vycm9yKCk7
CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiAoYXV0byogcmVuZGVyZXIgPSB0aGlz
LT5yZW5kZXJlcigpKQorICAgICAgICAgICAgaWYgKGF1dG8qIHJlbmRlcmVyID0gdGhpcy0+cmVu
ZGVyZXIoKSkgewogICAgICAgICAgICAgICAgIHJlbmRlcmVyLT5pbWFnZVJlc291cmNlKCkuc2V0
Q2FjaGVkSW1hZ2UobnVsbHB0cik7CisgICAgICAgICAgICAgICAgcmVuZGVyZXItPnVwZGF0ZUZy
b21FbGVtZW50KCk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CiAjaWYgRU5BQkxF
KFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKQEAgLTI1OCwzNyArMjUyLDM1IEBAIGNvbnN0IEF0
b21TdHJpbmcmIEhUTUxWaWRlb0VsZW1lbnQ6OmltYWdlU291cmNlVVJMKCkgY29uc3QKICAgICBy
ZXR1cm4gbV9kZWZhdWx0UG9zdGVyVVJMOwogfQogCi12b2lkIEhUTUxWaWRlb0VsZW1lbnQ6OnNl
dERpc3BsYXlNb2RlKERpc3BsYXlNb2RlIG1vZGUpCitib29sIEhUTUxWaWRlb0VsZW1lbnQ6OnNo
b3VsZERpc3BsYXlQb3N0ZXJJbWFnZSgpIGNvbnN0CiB7Ci0gICAgRGlzcGxheU1vZGUgb2xkTW9k
ZSA9IGRpc3BsYXlNb2RlKCk7Ci0gICAgVVJMIHBvc3RlciA9IHBvc3RlckltYWdlVVJMKCk7Cisg
ICAgaWYgKCFzaG93UG9zdGVyRmxhZygpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBp
ZiAoIXBvc3Rlci5pc0VtcHR5KCkpIHsKLSAgICAgICAgLy8gV2UgaGF2ZSBhIHBvc3RlciBwYXRo
LCBidXQgb25seSBzaG93IGl0IHVudGlsIHRoZSB1c2VyIHRyaWdnZXJzIGRpc3BsYXkgYnkgcGxh
eWluZyBvciBzZWVraW5nIGFuZCB0aGUKLSAgICAgICAgLy8gbWVkaWEgZW5naW5lIGhhcyBzb21l
dGhpbmcgdG8gZGlzcGxheS4KLSAgICAgICAgaWYgKG1vZGUgPT0gVmlkZW8pIHsKLSAgICAgICAg
ICAgIGlmIChvbGRNb2RlICE9IFZpZGVvICYmIHBsYXllcigpKQotICAgICAgICAgICAgICAgIHBs
YXllcigpLT5wcmVwYXJlRm9yUmVuZGVyaW5nKCk7Ci0gICAgICAgICAgICBpZiAoIWhhc0F2YWls
YWJsZVZpZGVvRnJhbWUoKSkKLSAgICAgICAgICAgICAgICBtb2RlID0gUG9zdGVyV2FpdGluZ0Zv
clZpZGVvOwotICAgICAgICB9Ci0gICAgfSBlbHNlIGlmIChvbGRNb2RlICE9IFZpZGVvICYmIHBs
YXllcigpKQotICAgICAgICBwbGF5ZXIoKS0+cHJlcGFyZUZvclJlbmRlcmluZygpOworICAgIGlm
IChwb3N0ZXJJbWFnZVVSTCgpLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0g
ICAgSFRNTE1lZGlhRWxlbWVudDo6c2V0RGlzcGxheU1vZGUobW9kZSk7CisgICAgYXV0byogcmVu
ZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigpOworICAgIGlmIChyZW5kZXJlciAmJiByZW5kZXJlci0+
ZmFpbGVkVG9Mb2FkUG9zdGVySW1hZ2UoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAg
aWYgKGF1dG8qIHJlbmRlcmVyID0gdGhpcy0+cmVuZGVyZXIoKSkgewotICAgICAgICBpZiAoZGlz
cGxheU1vZGUoKSAhPSBvbGRNb2RlKQotICAgICAgICAgICAgcmVuZGVyZXItPnVwZGF0ZUZyb21F
bGVtZW50KCk7Ci0gICAgfQorICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEhUTUxWaWRlb0Vs
ZW1lbnQ6OnVwZGF0ZURpc3BsYXlTdGF0ZSgpCit2b2lkIEhUTUxWaWRlb0VsZW1lbnQ6Om1lZGlh
UGxheWVyRmlyc3RWaWRlb0ZyYW1lQXZhaWxhYmxlKCkKIHsKLSAgICBpZiAocG9zdGVySW1hZ2VV
UkwoKS5pc0VtcHR5KCkgfHwgaGFzQXZhaWxhYmxlVmlkZW9GcmFtZSgpKQotICAgICAgICBzZXRE
aXNwbGF5TW9kZShWaWRlbyk7Ci0gICAgZWxzZSBpZiAoZGlzcGxheU1vZGUoKSA8IFBvc3RlcikK
LSAgICAgICAgc2V0RGlzcGxheU1vZGUoUG9zdGVyKTsKKyAgICBJTkZPX0xPRyhMT0dJREVOVElG
SUVSLCAibV9zaG93UG9zdGVyID0gIiwgc2hvd1Bvc3RlckZsYWcoKSk7CisKKyAgICBpZiAoc2hv
d1Bvc3RlckZsYWcoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaW52YWxpZGF0ZVN0eWxlQW5k
TGF5ZXJDb21wb3NpdGlvbigpOworCisgICAgaWYgKGF1dG8gcGxheWVyID0gdGhpcy0+cGxheWVy
KCkpCisgICAgICAgIHBsYXllci0+cHJlcGFyZUZvclJlbmRlcmluZygpOworCisgICAgaWYgKGF1
dG8qIHJlbmRlcmVyID0gdGhpcy0+cmVuZGVyZXIoKSkKKyAgICAgICAgcmVuZGVyZXItPnVwZGF0
ZUZyb21FbGVtZW50KCk7CiB9CiAKIFJlZlB0cjxJbWFnZUJ1ZmZlcj4gSFRNTFZpZGVvRWxlbWVu
dDo6Y3JlYXRlQnVmZmVyRm9yUGFpbnRpbmcoY29uc3QgRmxvYXRTaXplJiBzaXplLCBSZW5kZXJp
bmdNb2RlIHJlbmRlcmluZ01vZGUpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxWaWRlb0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxl
bWVudC5oCmluZGV4IDNmOTE3ZGU0NWViMmUwYjQ3MzcxM2M0OWNiMmZiMTIyNmQ1NWE5Y2QuLmVm
ZmYzZjY2ZTgxM2I3Nzg2OTgwY2FiY2EzNTEwYjEyMGRiNjA0MDIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFZpZGVvRWxlbWVudC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTgxLDcgKzgxLDcgQEAgcHVi
bGljOgogICAgIC8vIFNlZSBtb3JlIGRldGFpbHMgYXQgTWVkaWFQbGF5ZXI6OmNvcHlWaWRlb1Rl
eHR1cmVUb1BsYXRmb3JtVGV4dHVyZSgpIGRlZmluZWQgaW4gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaC4KICAgICBib29sIGNvcHlWaWRlb1RleHR1cmVUb1Bs
YXRmb3JtVGV4dHVyZShHcmFwaGljc0NvbnRleHRHTE9wZW5HTCosIFBsYXRmb3JtR0xPYmplY3Qg
dGV4dHVyZSwgR0NHTGVudW0gdGFyZ2V0LCBHQ0dMaW50IGxldmVsLCBHQ0dMZW51bSBpbnRlcm5h
bEZvcm1hdCwgR0NHTGVudW0gZm9ybWF0LCBHQ0dMZW51bSB0eXBlLCBib29sIHByZW11bHRpcGx5
QWxwaGEsIGJvb2wgZmxpcFkpOwogCi0gICAgYm9vbCBzaG91bGREaXNwbGF5UG9zdGVySW1hZ2Uo
KSBjb25zdCB7IHJldHVybiBkaXNwbGF5TW9kZSgpID09IFBvc3RlciB8fCBkaXNwbGF5TW9kZSgp
ID09IFBvc3RlcldhaXRpbmdGb3JWaWRlbzsgfQorICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2hv
dWxkRGlzcGxheVBvc3RlckltYWdlKCkgY29uc3Q7CiAKICAgICBVUkwgcG9zdGVySW1hZ2VVUkwo
KSBjb25zdDsKICAgICBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRl
cmVyKFJlbmRlclN0eWxlJiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIGZpbmFsOwpAQCAt
MTI3LDEwICsxMjcsMTAgQEAgcHJpdmF0ZToKICAgICBib29sIGlzVVJMQXR0cmlidXRlKGNvbnN0
IEF0dHJpYnV0ZSYpIGNvbnN0IGZpbmFsOwogICAgIGNvbnN0IEF0b21TdHJpbmcmIGltYWdlU291
cmNlVVJMKCkgY29uc3QgZmluYWw7CiAKLSAgICBib29sIGhhc0F2YWlsYWJsZVZpZGVvRnJhbWUo
KSBjb25zdDsKLSAgICB2b2lkIHVwZGF0ZURpc3BsYXlTdGF0ZSgpIGZpbmFsOwogICAgIHZvaWQg
ZGlkTW92ZVRvTmV3RG9jdW1lbnQoRG9jdW1lbnQmIG9sZERvY3VtZW50LCBEb2N1bWVudCYgbmV3
RG9jdW1lbnQpIGZpbmFsOwotICAgIHZvaWQgc2V0RGlzcGxheU1vZGUoRGlzcGxheU1vZGUpIGZp
bmFsOworCisgICAgYm9vbCBoYXNBdmFpbGFibGVWaWRlb0ZyYW1lKCkgY29uc3Q7CisgICAgdm9p
ZCBtZWRpYVBsYXllckZpcnN0VmlkZW9GcmFtZUF2YWlsYWJsZSgpIGZpbmFsOwogCiAgICAgUGxh
dGZvcm1NZWRpYVNlc3Npb246Ok1lZGlhVHlwZSBwcmVzZW50YXRpb25UeXBlKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gUGxhdGZvcm1NZWRpYVNlc3Npb246Ok1lZGlhVHlwZTo6VmlkZW87IH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZGVvLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWRlby5jcHAKaW5kZXggMDdlMjlkNTcxMGI2
MDJlOTkwYjVjMDE2ZGIxNjE4ZDFhNTE3ZTRmYy4uNGE2YmUzMTczMTRkMGM0MjQxYmM4OWMxYjRl
Njc4MzkzOGEzMTA2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clZpZGVvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlkZW8uY3Bw
CkBAIC0xODYsNiArMTg2LDExIEBAIGJvb2wgUmVuZGVyVmlkZW86OnNob3VsZERpc3BsYXlWaWRl
bygpIGNvbnN0CiAgICAgcmV0dXJuICF2aWRlb0VsZW1lbnQoKS5zaG91bGREaXNwbGF5UG9zdGVy
SW1hZ2UoKTsKIH0KIAorYm9vbCBSZW5kZXJWaWRlbzo6ZmFpbGVkVG9Mb2FkUG9zdGVySW1hZ2Uo
KSBjb25zdAoreworICAgIHJldHVybiBpbWFnZVJlc291cmNlKCkuZXJyb3JPY2N1cnJlZCgpOwor
fQorCiB2b2lkIFJlbmRlclZpZGVvOjpwYWludFJlcGxhY2VkKFBhaW50SW5mbyYgcGFpbnRJbmZv
LCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQpCiB7CiAgICAgYXV0byBtZWRpYVBsYXll
ciA9IHZpZGVvRWxlbWVudCgpLnBsYXllcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclZpZGVvLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VmlkZW8uaAppbmRleCA4ZTI1YzY4YTUzZjg5YjRhMTcwZmI5NjUxYjE4N2ZmYjhhYzBmYWMzLi4y
YzEyYTVkNTk0ZmVhYTIyMzI4MDYxOWYxOGRjMjk3NjVkMGIzNWMzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlkZW8uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVmlkZW8uaApAQCAtNTAsNiArNTAsNyBAQCBwdWJsaWM6CiAgICAgYm9v
bCByZXF1aXJlc0ltbWVkaWF0ZUNvbXBvc2l0aW5nKCkgY29uc3Q7CiAKICAgICBib29sIHNob3Vs
ZERpc3BsYXlWaWRlbygpIGNvbnN0OworICAgIGJvb2wgZmFpbGVkVG9Mb2FkUG9zdGVySW1hZ2Uo
KSBjb25zdDsKIAogICAgIHZvaWQgdXBkYXRlRnJvbUVsZW1lbnQoKSBmaW5hbDsKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IGZjYjcwYTM1OWU3ZTYxNDExMmU2Y2M3MGUwYjcwYjM5ZDcyMjBlNGEuLjk0MWNmNDEyZGU0MWVk
OWM0OWY2N2MxMWIyYzZlNGYwYzUwOWYyZjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAyMC0x
MS0wNCAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBU
cmFuc3BhcmVudCB2aWRlbyBwb3N0ZXIgaW1hZ2UgZG9lc24ndCBrZWVwIGVsZW1lbnQgdHJhbnNw
YXJlbnQgb25jZSBmaXJzdCBmcmFtZSBpcyBwcmVsb2FkZWQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODM5MQorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNzA5MTY5NDQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOiBNYXJrIGEgdGVzdCB0aGF0IGV4cGVjdCB2aWRlbyBz
dGF0ZSBjaGFuZ2VzIHRvIGJlIHZpc2libGUgb24gdGhlCisgICAgICAgIG5leHQgckFGIHRvIGJl
IGZsYWt5LiBIVE1MTWVkaWFFbGVtZW50IHVzZXMgdGFza1F1ZXVlcyB0byBjaGFuZ2UgcHJvcGVy
dGllcywgYW5kCisgICAgICAgIHRhc2tRdWV1ZSBpc24ndCBzeW5jaHJvbml6ZWQgdG8gckFGLCBz
byBzb21ldGltZXMgdGhlIHRhc2sgcnVucyBiZWZvcmUgdGhlIG5leHQgCisgICAgICAgIHJBRiBh
bmQgc29tZXRpbWVzIGFmdGVyLCBtYWtpbmcgdGhlIHRlc3QgZmxha3kuCisKKyAgICAgICAgKiBj
b21wb3NpdGluZy92aWRlby92aWRlby1wb3N0ZXIuaHRtbDogRG9uJ3QgZXhwZWN0IHRoZSB0cmFu
c2l0aW9uIHRvIGhhdmluZyBsYXllcnMKKyAgICAgICAgdG8gYmUgaW5zdGFudGFuZW91cy4KKwor
ICAgICAgICAqIG1lZGlhL3ZpZGVvLXBvc3Rlci12aXNpYmxlLWFmdGVyLWZpcnN0LXZpZGVvLWZy
YW1lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogbWVkaWEvdmlkZW8tcG9zdGVyLXZp
c2libGUtYWZ0ZXItZmlyc3QtdmlkZW8tZnJhbWUuaHRtbDogQWRkZWQuCisKIDIwMjAtMTEtMDQg
IERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0
b3I6IHVzZSB3ZWFrIGNvbGxlY3Rpb25zIGZvciBob2xkaW5nIGV2ZW50IGxpc3RlbmVycwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RF
eHBlY3RhdGlvbnMKaW5kZXggOGQ0NDczMjExMDNmODBiZWI5MWQzMjUxM2U1NTU1NGZiNDAxZGI1
NS4uZTgxZjE1MGQ4NWVjYjQ2OTkwNzI3MGM0MjVjODM3ZmY3ODQzODZjOCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0
YXRpb25zCkBAIC0zMDMxLDYgKzMwMzEsMTEgQEAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9yZXNpemUtb2JzZXJ2ZXIvZGV2aWNlcGl4ZWwuaHRtbCBbIEltYWdlT25seUZhaWwKIAog
d2Via2l0Lm9yZy9iLzE5ODEwMyBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
c2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvb2Zmc2V0cy1pbnRvLXRo
ZS1tZWRpYS1yZXNvdXJjZS9jdXJyZW50VGltZS5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIAorIyBU
aGlzIHRlc3RzIGFzc3VtZXMgdGhhdCBjaGFuZ2VzIGNhdXNlZCBieSByZW1vdmluZyAndmlkZW8u
c3JjJyB3aWxsIGJlIHZpc2libGUgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIG5leHQgckFGLgorIyBI
VE1MTWVkaWFFbGVtZW50IHVzZXMgYSB0YXNrUXVldWUgdG8gY2hhbmdlIHZpZGVvLnNyYywgYnV0
IHRhc2tRdWV1ZSBpc24ndCB0aWVkIHRvIHJBRiBzbyB0aGUgdGFzayBzb21ldGltZXMKKyMgcnVu
cyBiZWZvcmUgckFGIGFuZCB0aGUgdGVzdCBwYXNzZXMsIGFuZCBzb21ldGltZXMgcnVuIGFmdGVy
IGFuZCB0aGUgdGVzdCBmYWlscy4KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC90aGUtdmlkZW8tZWxlbWVudC9pbnRyaW5zaWNf
c2l6ZXMuaHRtIFsgUGFzcyBGYWlsdXJlIF0KKwogIyBGbGFreSBXZWJTb2NrZXQgdGVzdHMuCiBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnNvY2tldHMvY29va2llcy8wMDUuaHRt
bCBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJzb2NrZXRzL2Nv
bnN0cnVjdG9yLzAxNC5odG1sIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21w
b3NpdGluZy92aWRlby92aWRlby1wb3N0ZXIuaHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5n
L3ZpZGVvL3ZpZGVvLXBvc3Rlci5odG1sCmluZGV4IDhmZmVlNDUxNTlmY2Q5MzlhZGQ4YWNkZDJl
ODBjMjA2MjJkY2U0MzcuLjU1ZDE1NzgyZmExMDZkMTJkNDc5MzNkZmNkMWEwMDA5NTA4NWMxOGEg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3ZpZGVvL3ZpZGVvLXBvc3Rlci5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3ZpZGVvL3ZpZGVvLXBvc3Rlci5odG1s
CkBAIC00LDcgKzQsNiBAQAogICAgICAgICA8dGl0bGU+VmlkZW8gd2l0aCBwb3N0ZXI8L3RpdGxl
PgogICAgICAgICA8c2NyaXB0PgogCi0gICAgICAgICAgICB2YXIgY291bnQgPSAwOwogICAgICAg
ICAgICAgZnVuY3Rpb24gbG9nKHN0cikKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0JykuaW5uZXJIVE1MICs9IHN0ciArICI8YnI+
IjsKQEAgLTE0LDMzICsxMyw0OCBAQAogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHdpbmRvdy5p
bnRlcm5hbHMubGF5ZXJUcmVlQXNUZXh0KGRvY3VtZW50KSAhPSAiIjsKKyAgICAgICAgICAgICAg
ICAKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICB9CiAKLSAgICAg
ICAgICAgIGZ1bmN0aW9uIGNoZWNrTGF5ZXJzKHByZWZpeCwgd2FudHNMYXllcnMpCisgICAgICAg
ICAgICBhc3luYyBmdW5jdGlvbiBjaGVja0xheWVycyhwcmVmaXgsIHdhbnRzTGF5ZXJzKQogICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgIHZhciBsYXllcnMgPSBoYXNMYXllcnMoKTsKLSAg
ICAgICAgICAgICAgICBsb2cocHJlZml4ICsgIiA8YnI+Jm5ic3A7Jm5ic3A7IiArICh3YW50c0xh
eWVycyA9PSBsYXllcnMgPyAiUEFTUyIgOiAiRkFJTCIpICsgIjogd2FudHMgbGF5ZXJzID0gIiAr
IHdhbnRzTGF5ZXJzICsgIiwgaGFzIGxheWVycyA9ICIgKyBsYXllcnMpOwotICAgICAgICAgICAg
ICAgIGxvZygiIik7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIHJl
c29sdmUgPT4geworICAgICAgICAgICAgICAgICAgICBsZXQgbGF5ZXJzOworICAgICAgICAgICAg
ICAgICAgICBsZXQgY291bnQgPSAwOworICAgICAgICAgICAgICAgICAgICB3aGlsZSAodHJ1ZSkg
eworCisgICAgICAgICAgICAgICAgICAgICAgICBsYXllcnMgPSBoYXNMYXllcnMoKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIChsYXllcnMgPT0gd2FudHNMYXllcnMpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0
IG5ldyBQcm9taXNlKHJlc29sdmUgPT4geyBzZXRUaW1lb3V0KHJlc29sdmUsIDEwKTsgfSk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAoKytjb3VudCA+IDEwKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
ICAgICAgICAgbG9nKGAke3ByZWZpeH0gPGJyPiZuYnNwOyZuYnNwOyR7d2FudHNMYXllcnMgPT0g
bGF5ZXJzID8gIlBBU1MiIDogIkZBSUwifTogd2FudHMgbGF5ZXJzID0gJHt3YW50c0xheWVyc30s
IGhhcyBsYXllcnMgPSAke2xheWVyc308YnI+YCk7CisgICAgICAgICAgICAgICAgICAgIHJlc29s
dmUoKTsKKyAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAg
ZnVuY3Rpb24gbGF5ZXJUZXN0KCkKKyAgICAgICAgICAgIGFzeW5jIGZ1bmN0aW9uIGxheWVyVGVz
dCgpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgdmFyIHZpZGVvID0gZG9jdW1lbnQu
Z2V0RWxlbWVudHNCeVRhZ05hbWUoJ3ZpZGVvJylbMF07CiAKICAgICAgICAgICAgICAgICBzd2l0
Y2ggKGV2ZW50LnR5cGUpCiAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICBj
YXNlICJsb2FkIjoKLSAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrTGF5ZXJzKCJObyBzcmMs
IG5vIHBvc3RlciIsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IGNoZWNr
TGF5ZXJzKCJObyBzcmMsIG5vIHBvc3RlciIsIGZhbHNlKTsKICAgICAgICAgICAgICAgICAgICAg
ICAgIHZpZGVvLnNyYyA9ICIuLi9yZXNvdXJjZXMvdmlkZW8uIiArICh2aWRlby5jYW5QbGF5VHlw
ZSgidmlkZW8vb2dnIikgPyAib2d2IiA6ICJtcDQiKTsKICAgICAgICAgICAgICAgICAgICAgICAg
IHZpZGVvLnBvc3RlciA9ICIuLi9yZXNvdXJjZXMvYXBwbGUuanBnIjsKICAgICAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICBjYXNlICJjYW5wbGF5dGhyb3Vn
aCI6Ci0gICAgICAgICAgICAgICAgICAgICAgICBjaGVja0xheWVycygiRGlzcGxheWluZyBwb3N0
ZXIiLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCBjaGVja0xheWVycygi
RGlzcGxheWluZyBwb3N0ZXIiLCBmYWxzZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICB2aWRl
by5jdXJyZW50VGltZSA9IDAuNTsKICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICAgICAgICAgICAgICBjYXNlICJzZWVrZWQiOgotICAgICAgICAgICAgICAgICAgICAgICAg
Y2hlY2tMYXllcnMoIkRpc3BsYXlpbmcgbW92aWUiLCB0cnVlKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGF3YWl0IGNoZWNrTGF5ZXJzKCJEaXNwbGF5aW5nIG1vdmllIiwgdHJ1ZSk7CiAgICAg
ICAgICAgICAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgICAgICAgICAgICAg
ICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLXBvc3Rl
ci12aXNpYmxlLWFmdGVyLWZpcnN0LXZpZGVvLWZyYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL21lZGlhL3ZpZGVvLXBvc3Rlci12aXNpYmxlLWFmdGVyLWZpcnN0LXZpZGVvLWZyYW1lLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NjE4YjUzMGExYTBmMjgyMmNkMWEyNDMwNzYyZjRjM2Zk
ODk5MDZmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tcG9zdGVy
LXZpc2libGUtYWZ0ZXItZmlyc3QtdmlkZW8tZnJhbWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
NyBAQAorCitFWFBFQ1RFRCAoaW50ZXJuYWxzLmVsZW1lbnRTaG91bGREaXNwbGF5UG9zdGVySW1h
Z2UodmlkZW8pID09ICd0cnVlJykgT0sKK0VWRU5UKGNhbnBsYXl0aHJvdWdoKQorRVhQRUNURUQg
KGludGVybmFscy5lbGVtZW50U2hvdWxkRGlzcGxheVBvc3RlckltYWdlKHZpZGVvKSA9PSAndHJ1
ZScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLmVsZW1lbnRTaG91bGREaXNwbGF5UG9zdGVySW1h
Z2UodmlkZW8pID09ICdmYWxzZScpIE9LCitFTkQgT0YgVEVTVAorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9tZWRpYS92aWRlby1wb3N0ZXItdmlzaWJsZS1hZnRlci1maXJzdC12aWRlby1mcmFt
ZS5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tcG9zdGVyLXZpc2libGUtYWZ0ZXItZmly
c3QtdmlkZW8tZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YjFiZjQ3ZjIzYTUyMGI2ZGY5MzI1OGU1
YjQzYTgzMzY1MGY3NTIzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlk
ZW8tcG9zdGVyLXZpc2libGUtYWZ0ZXItZmlyc3QtdmlkZW8tZnJhbWUuaHRtbApAQCAtMCwwICsx
LDM4IEBACisKKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPlBvc3RlciBzaG91bGQgY29udGlu
dWUgdG8gZGlzcGxheSBhZnRlciBmaXJzdCB2aWRlbyBmcmFtZSBpcyBhdmFpbGFibGU8L3RpdGxl
PgorICAgIDxzY3JpcHQgc3JjPXZpZGVvLXRlc3QuanM+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBz
cmM9bWVkaWEtZmlsZS5qcz48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorCisgICAgICAgIHdpbmRv
dy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgYXN5bmMgKCkgPT4geworICAgICAgICAgICAgZmFp
bFRlc3RJbigxNTAwMCk7CisKKyAgICAgICAgICAgIGZpbmRNZWRpYUVsZW1lbnQoKTsKKworICAg
ICAgICAgICAgdmlkZW8uc3JjID0gZmluZE1lZGlhRmlsZSgidmlkZW8iLCAiY29udGVudC90ZXN0
Iik7CisgICAgICAgICAgICB2aWRlby5wb3N0ZXIgPSAnY29udGVudC9ncmVlbmJveC5wbmcnOwor
CisgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAgICAgICBhd2Fp
dCB0ZXN0RXhwZWN0ZWRFdmVudHVhbGx5KCdpbnRlcm5hbHMuZWxlbWVudFNob3VsZERpc3BsYXlQ
b3N0ZXJJbWFnZSh2aWRlbyknLCB0cnVlKTsKKworICAgICAgICAgICAgYXdhaXQgd2FpdEZvcih2
aWRlbywgJ2NhbnBsYXl0aHJvdWdoJyk7CisKKyAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJu
YWxzKQorICAgICAgICAgICAgICAgIGF3YWl0IHRlc3RFeHBlY3RlZEV2ZW50dWFsbHkoJ2ludGVy
bmFscy5lbGVtZW50U2hvdWxkRGlzcGxheVBvc3RlckltYWdlKHZpZGVvKScsIHRydWUpOworCisg
ICAgICAgICAgICB2aWRlby5jdXJyZW50VGltZSA9IHZpZGVvLmR1cmF0aW9uIC8gMjsKKworICAg
ICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICAgICAgYXdhaXQgdGVz
dEV4cGVjdGVkRXZlbnR1YWxseSgnaW50ZXJuYWxzLmVsZW1lbnRTaG91bGREaXNwbGF5UG9zdGVy
SW1hZ2UodmlkZW8pJywgZmFsc2UpOworCisgICAgICAgICAgICBlbmRUZXN0KCk7CisgICAgICAg
IH0pOworCisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8dmlkZW8gY29udHJv
bHMgcHJlbG9hZD1hdXRvIHdpZHRoPTMyMD48L3ZpZGVvPgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>