<?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>176143</bug_id>
          
          <creation_ts>2017-08-30 20:36:10 -0700</creation_ts>
          <short_desc>getFileMetadata() does not work as expected for symbolic links</short_desc>
          <delta_ts>2017-09-27 13:02:00 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>175976</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ggaren</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kling</cc>
    
    <cc>pvollan</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1343844</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-08-30 20:36:10 -0700</bug_when>
    <thetext>getFileMetadata() does not work as expected for symbolic links. It should provide metadata about the symlink, not its target. FileMetadata.type should properly be set to TypeSymbolicLink.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343876</commentid>
    <comment_count>1</comment_count>
      <attachid>319451</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-08-30 22:12:19 -0700</bug_when>
    <thetext>Created attachment 319451
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343878</commentid>
    <comment_count>2</comment_count>
      <attachid>319453</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-08-30 22:28:52 -0700</bug_when>
    <thetext>Created attachment 319453
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343941</commentid>
    <comment_count>3</comment_count>
      <attachid>319466</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-08-31 09:08:22 -0700</bug_when>
    <thetext>Created attachment 319466
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1343963</commentid>
    <comment_count>4</comment_count>
      <attachid>319468</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-08-31 09:54:59 -0700</bug_when>
    <thetext>Created attachment 319468
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344003</commentid>
    <comment_count>5</comment_count>
      <attachid>319481</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-08-31 11:05:54 -0700</bug_when>
    <thetext>Created attachment 319481
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344086</commentid>
    <comment_count>6</comment_count>
      <attachid>319481</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2017-08-31 12:54:47 -0700</bug_when>
    <thetext>Comment on attachment 319481
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344087</commentid>
    <comment_count>7</comment_count>
      <attachid>319481</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2017-08-31 12:55:37 -0700</bug_when>
    <thetext>Comment on attachment 319481
Patch

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

&gt; Tools/TestWebKitAPI/Tests/WebCore/FileSystem.cpp:126
&gt; +    EXPECT_TRUE(createSymbolicLink(tempFilePath(), symlinkPath));

We should probably take care to remove this symlink at some point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344089</commentid>
    <comment_count>8</comment_count>
      <attachid>319506</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-08-31 13:02:01 -0700</bug_when>
    <thetext>Created attachment 319506
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344094</commentid>
    <comment_count>9</comment_count>
      <attachid>319507</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-08-31 13:09:07 -0700</bug_when>
    <thetext>Created attachment 319507
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344117</commentid>
    <comment_count>10</comment_count>
      <attachid>319507</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-08-31 13:53:42 -0700</bug_when>
    <thetext>Comment on attachment 319507
Patch

Clearing flags on attachment: 319507

Committed r221441: &lt;http://trac.webkit.org/changeset/221441&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344118</commentid>
    <comment_count>11</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-08-31 13:53:44 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1353778</commentid>
    <comment_count>12</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-09-27 13:02:00 -0700</bug_when>
    <thetext>&lt;rdar://problem/34694512&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319451</attachid>
            <date>2017-08-30 22:12:19 -0700</date>
            <delta_ts>2017-08-30 22:28:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176143-20170830221218.patch</filename>
            <type>text/plain</type>
            <size>20207</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxMzk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjNkY2I2NGNmOTRlZDdj
NTgxOWE0NzRjNmE4ZTBhNWVkYzVkY2Y5NS4uZGUwOTUyZDlkMzUxOTUwOGViYjJhNjUzYzMzZjFi
NWQ2ZWVlMGY5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU5IEBACiAyMDE3LTA4LTMwICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAgZ2V0RmlsZU1ldGFkYXRhKCkg
ZG9lcyBub3Qgd29yayBhcyBleHBlY3RlZCBmb3Igc3ltYm9saWMgbGlua3MKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjE0MworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGdldEZpbGVNZXRhZGF0YSgpIGRv
ZXMgbm90IHdvcmsgYXMgZXhwZWN0ZWQgZm9yIHN5bWJvbGljIGxpbmtzOgorICAgICAgICBPbiBQ
T1NJWCwgZ2V0RmlsZU1ldGFkYXRhKCkgYWx3YXlzIGZvbGxvd2VkIHN5bWxpbmtzLCB3aGljaCBt
ZWFudCB0aGF0IEZpbGVNZXRhZGF0YS50eXBlIGNvdWxkCisgICAgICAgIG5ldmVyIGJlIFR5cGVT
eW1ib2xpY0xpbmsuIE9uIFdpbmRvd3MsIHRoZSBmdW5jdGlvbiBwcm9wZXJseSBkaWQgbm90IGZv
bGxvdyBzeW1saW5rcyBidXQgZmFpbGVkIHRvIHNldAorICAgICAgICBGaWxlTWV0YWRhdGEudHlw
ZSB0byBUeXBlU3ltYm9saWNMaW5rIHdoZW4gdGhlIGZpbGUgd2FzIGEgc3ltYm9saWMgbGluay4K
KworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgYSBuZXcgU2hvdWxkRm9sbG93U3ltYm9saWNMaW5r
cyBwYXJhbWV0ZXIgdG8gZ2V0RmlsZU1ldGFkYXRhKCkgc28gdGhhdAorICAgICAgICB0aGUgY2Fs
bCBzaXRlIGNhbiBkZWNpZGUgdGhlIGJlaGF2aW9yIGl0IHdhbnRzLiBJZiBnZXRGaWxlTWV0YWRh
dGEoKSBpcyBjYWxsZWQgb24gYQorICAgICAgICBzeW1ib2xpYyBsaW5rIHdpdGggU2hvdWxkRm9s
bG93U3ltYm9saWNMaW5rczo6Tm8gYXMgcGFyYW1ldGVyLCBGaWxlTWV0YWRhdGEudHlwZSBpcyBu
b3cKKyAgICAgICAgcHJvcGVybHkgc2V0IHRvIFR5cGVTeW1ib2xpY0xpbmsuCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzLCBjb3ZlcmVkIGJ5IG5ldyBBUEkgdGVzdC4KKworICAgICAgICAqIE1vZHVs
ZXMvZW50cmllc2FwaS9ET01GaWxlU3lzdGVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Omxpc3RE
aXJlY3RvcnlXaXRoTWV0YWRhdGEpOgorICAgICAgICBJdCBpcyBpbXBvcnRhbnQgd2UgZG8gbm90
IGZvbGxvdyBzeW1saW5rcyBoZXJlIHNpbmNlIHRoZSBjb2RlIHdhbnRzIHRvIGRpc2NhcmQgdGhl
bQorICAgICAgICBhbmQgZG9lcyBzbyBieSBjaGVja2luZyBGaWxlTWV0YWRhdGEudHlwZS4KKwor
ICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBm
aWxlYXBpL0ZpbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZTo6aXNEaXJlY3RvcnkgY29u
c3QpOgorCisgICAgICAgICogaHRtbC9GaWxlTGlzdENyZWF0b3IuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6YXBwZW5kRGlyZWN0b3J5RmlsZXMpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZUxpc3RD
cmVhdG9yOjpjcmVhdGVGaWxlTGlzdCk6CisgICAgICAgIEl0IGlzIGltcG9ydGFudCB3ZSBkbyBu
b3QgZm9sbG93IHN5bWxpbmtzIGhlcmUgc2luY2UgdGhlIGNvZGUgd2FudHMgdG8gZGlzY2FyZCB0
aGVtCisgICAgICAgIGFuZCBkb2VzIHNvIGJ5IGNoZWNraW5nIEZpbGVNZXRhZGF0YS50eXBlLgor
CisgICAgICAgICogcGxhdGZvcm0vRmlsZVN5c3RlbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpm
aWxlSXNEaXJlY3RvcnkpOgorICAgICAgICAqIHBsYXRmb3JtL0ZpbGVTeXN0ZW0uaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmdldEZpbGVMU3RhdCk6CisgICAgICAgIChXZWJDb3JlOjpnZXRGaWxlTWV0YWRhdGEpOgorICAg
ICAgICAqIHBsYXRmb3JtL3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJWC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpnZXRGaWxlTWV0YWRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlU3ltYm9saWNM
aW5rKToKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vRmlsZVN5c3RlbVdpbi5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpnZXRGaW5hbFBhdGhOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OmdldEZpbGVN
ZXRhZGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVTeW1ib2xpY0xpbmspOgorICAgICAg
ICAtIEFkZCBuZXcgY3JlYXRlU3ltYm9saWNMaW5rKCkgZnVuY3Rpb24gZm9yIHRlc3RpbmcgcHVy
cG9zZXMuCisgICAgICAgIC0gT24gUG9zaXgsIGNhbGwgbHN0YXQoKSBpbnN0ZWFkIG9mIHN0YXQg
aWYgU2hvdWxkRm9sbG93U3ltYm9saWNMaW5rczo6Tm8uCisgICAgICAgIC0gT24gV2luZG93cywg
c2luY2UgRmluZEZpcnN0RmlsZVcoKSBkb2VzIG5vdCBmb2xsb3cgc3ltbGlua3MsIHJlc29sdmUK
KyAgICAgICAgICBmaW5hbCBwYXRoIHVzaW5nIEdldEZpbmFsUGF0aE5hbWVCeUhhbmRsZVcoKSBp
ZiBTaG91bGRGb2xsb3dTeW1ib2xpY0xpbmtzOjpZZXMuCisgICAgICAgIC0gT24gV2luZG93cywg
cHJvcGVybHkgc2V0IEZpbGVNZXRhZGF0YS50eXBlIHRvIFR5cGVTeW1ib2xpY0xpbmsgaWYgdGhl
IGZpbGUKKyAgICAgICAgICBpcyBhIHN5bWJvbGljIGxpbmsuCisKKzIwMTctMDgtMzAgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwogICAgICAgICBJbXBsZW1lbnQgRmlsZVN5c3Rl
bURpcmVjdG9yeVJlYWRlci5yZWFkRW50cmllcygpCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYwOTEKICAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM0
MTY4MDE1PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0RP
TUZpbGVTeXN0ZW0uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0RPTUZp
bGVTeXN0ZW0uY3BwCmluZGV4IDllOWVjNWQxYzM4NmRlNDFhZGU1NGE3NTQwODA3MTZlOGM5OGFm
MmYuLjM4YzM1NGU1NWViNTlhOGY5ZDc1M2E0MjQ3MmIxOGIxZWZkNjgwZmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9ET01GaWxlU3lzdGVtLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRE9NRmlsZVN5c3RlbS5jcHAKQEAg
LTQ2LDcgKzQ2LDcgQEAgc3RydWN0IExpc3RlZENoaWxkIHsKIHN0YXRpYyBFeGNlcHRpb25PcjxW
ZWN0b3I8TGlzdGVkQ2hpbGQ+PiBsaXN0RGlyZWN0b3J5V2l0aE1ldGFkYXRhKGNvbnN0IFN0cmlu
ZyYgZnVsbFBhdGgpCiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7Ci0gICAgaWYgKCFm
aWxlSXNEaXJlY3RvcnkoZnVsbFBhdGgpKQorICAgIGlmICghZmlsZUlzRGlyZWN0b3J5KGZ1bGxQ
YXRoLCBTaG91bGRGb2xsb3dTeW1ib2xpY0xpbmtzOjpObykpCiAgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBOb3RGb3VuZEVycm9yLCAiUGF0aCBubyBsb25nZXIgZXhpc3RzIG9yIGlzIG5vIGxv
bmdlciBhIGRpcmVjdG9yeSIgfTsKIAogICAgIGF1dG8gY2hpbGRQYXRocyA9IGxpc3REaXJlY3Rv
cnkoZnVsbFBhdGgsICIqIik7CkBAIC01NCw3ICs1NCw3IEBAIHN0YXRpYyBFeGNlcHRpb25PcjxW
ZWN0b3I8TGlzdGVkQ2hpbGQ+PiBsaXN0RGlyZWN0b3J5V2l0aE1ldGFkYXRhKGNvbnN0IFN0cmlu
ZyYKICAgICBsaXN0ZWRDaGlsZHJlbi5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGNoaWxkUGF0aHMu
c2l6ZSgpKTsKICAgICBmb3IgKGF1dG8mIGNoaWxkUGF0aCA6IGNoaWxkUGF0aHMpIHsKICAgICAg
ICAgRmlsZU1ldGFkYXRhIG1ldGFkYXRhOwotICAgICAgICBpZiAoIWdldEZpbGVNZXRhZGF0YShj
aGlsZFBhdGgsIG1ldGFkYXRhKSkKKyAgICAgICAgaWYgKCFnZXRGaWxlTWV0YWRhdGEoY2hpbGRQ
YXRoLCBtZXRhZGF0YSwgU2hvdWxkRm9sbG93U3ltYm9saWNMaW5rczo6Tm8pKQogICAgICAgICAg
ICAgY29udGludWU7CiAgICAgICAgIGxpc3RlZENoaWxkcmVuLnVuY2hlY2tlZEFwcGVuZChMaXN0
ZWRDaGlsZCB7IHBhdGhHZXRGaWxlTmFtZShjaGlsZFBhdGgpLCBtZXRhZGF0YS50eXBlIH0pOwog
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCBmMTRiOWRmYjQ4MmZjYzQzZDU4MDVmYjNiYmMwMDI3Yzg4ZGFmYmQ2Li4wNTA4
NjZlZTkwYjc4ZGY3YzNmNzMyY2U1N2VjMTA0NzFhYjJlZmVlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xOTM5LDcgKzE5Mzks
NyBAQAogCQk0NjczMDIwMjFDNEVGRTc4MDBCQ0IzNTcgLyogSWdub3JlT3BlbnNEdXJpbmdVbmxv
YWRDb3VudEluY3JlbWVudGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0NjczMDIwMTFDNEVGRTY2MDBCQ0IzNTcgLyogSWdub3JlT3BlbnNEdXJpbmdV
bmxvYWRDb3VudEluY3JlbWVudGVyLmggKi87IH07CiAJCTQ2ODM0NERGMUVEREZBQUEwMEI3Nzk1
QiAvKiBET01SZWN0TGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0NjgzNDRERDFFRERGQTVGMDBCNzc5NUIgLyogRE9NUmVjdExpc3QuY3BwICov
OyB9OwogCQk0NjgzNDRFMDFFRERGQUFBMDBCNzc5NUIgLyogRE9NUmVjdExpc3QuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2ODM0NERFMUVEREZBNUYw
MEI3Nzk1QiAvKiBET01SZWN0TGlzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07Ci0JCTQ2ODlGMUFGMTI2N0JBRTEwMEU4RDM4MCAvKiBGaWxlTWV0YWRh
dGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2ODlG
MUFFMTI2N0JBRTEwMEU4RDM4MCAvKiBGaWxlTWV0YWRhdGEuaCAqLzsgfTsKKwkJNDY4OUYxQUYx
MjY3QkFFMTAwRThEMzgwIC8qIEZpbGVNZXRhZGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY4OUYxQUUxMjY3QkFFMTAwRThEMzgwIC8qIEZpbGVN
ZXRhZGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTQ2QjYzRjZDMUM2RThEMTkwMDJFOTE0QiAvKiBKU0V2ZW50VGFyZ2V0Q3VzdG9tLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkI2M0Y2QjFDNkU4
Q0RGMDAyRTkxNEIgLyogSlNFdmVudFRhcmdldEN1c3RvbS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2QzY5NkNCMUU3MjA1RjcwMDU5NzkzNyAv
KiBDUFVNb25pdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0NkM2OTZDOTFFNzIwNUU0MDA1OTc5MzcgLyogQ1BVTW9uaXRvci5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2QzY5NkNDMUU3MjA1RkMw
MDU5NzkzNyAvKiBDUFVNb25pdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQ2QzY5NkNBMUU3MjA1RTQwMDU5NzkzNyAvKiBDUFVNb25pdG9yLmNw
cCAqLzsgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGUuY3BwCmluZGV4IGI1MDhhYmY0NmQxMWZlMmUzZjk0
Zjc3MjFiMDdhOTQ4N2RiYzExYTIuLjEzOGQ0YjJlNjI1MjUyMjE0NGE0MTcwOWRkYzk3ZjUzOTlj
MWRiNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlLmNwcApAQCAtMTMwLDcgKzEzMCw3IEBAIFN0cmlu
ZyBGaWxlOjpjb250ZW50VHlwZUZvckZpbGUoY29uc3QgU3RyaW5nJiBwYXRoKQogYm9vbCBGaWxl
Ojppc0RpcmVjdG9yeSgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2lzRGlyZWN0b3J5KQotICAgICAg
ICBtX2lzRGlyZWN0b3J5ID0gZmlsZUlzRGlyZWN0b3J5KG1fcGF0aCk7CisgICAgICAgIG1faXNE
aXJlY3RvcnkgPSBmaWxlSXNEaXJlY3RvcnkobV9wYXRoLCBTaG91bGRGb2xsb3dTeW1ib2xpY0xp
bmtzOjpZZXMpOwogICAgIHJldHVybiAqbV9pc0RpcmVjdG9yeTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9GaWxlTGlzdENyZWF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9GaWxlTGlzdENyZWF0b3IuY3BwCmluZGV4IDE5YmQ0NGFlYTFkZGQxNmQxOTI5ZjIyZGFh
MGQxOThiYmJmMzJhODEuLjQxOTJjNjNkZjE1OWNhMzNmNDcwY2EwZGVkMTI5ODM2MTVjODg2MDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUxpc3RDcmVhdG9yLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVMaXN0Q3JlYXRvci5jcHAKQEAgLTQzLDcgKzQzLDcg
QEAgc3RhdGljIHZvaWQgYXBwZW5kRGlyZWN0b3J5RmlsZXMoY29uc3QgU3RyaW5nJiBkaXJlY3Rv
cnksIGNvbnN0IFN0cmluZyYgcmVsYXRpdmUKIHsKICAgICBmb3IgKGF1dG8mIGNoaWxkUGF0aCA6
IGxpc3REaXJlY3RvcnkoZGlyZWN0b3J5LCAiKiIpKSB7CiAgICAgICAgIEZpbGVNZXRhZGF0YSBt
ZXRhZGF0YTsKLSAgICAgICAgaWYgKCFnZXRGaWxlTWV0YWRhdGEoY2hpbGRQYXRoLCBtZXRhZGF0
YSkpCisgICAgICAgIGlmICghZ2V0RmlsZU1ldGFkYXRhKGNoaWxkUGF0aCwgbWV0YWRhdGEsIFNo
b3VsZEZvbGxvd1N5bWJvbGljTGlua3M6Ok5vKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAg
ICAgICAgIGlmIChtZXRhZGF0YS5pc0hpZGRlbikKQEAgLTgwLDcgKzgwLDcgQEAgUmVmPEZpbGVM
aXN0PiBGaWxlTGlzdENyZWF0b3I6OmNyZWF0ZUZpbGVMaXN0KGNvbnN0IFZlY3RvcjxGaWxlQ2hv
b3NlckZpbGVJbmZvPiYKIHsKICAgICBWZWN0b3I8UmVmUHRyPEZpbGU+PiBmaWxlT2JqZWN0czsK
ICAgICBmb3IgKGF1dG8mIGluZm8gOiBwYXRocykgewotICAgICAgICBpZiAoc2hvdWxkUmVzb2x2
ZURpcmVjdG9yaWVzID09IFNob3VsZFJlc29sdmVEaXJlY3Rvcmllczo6WWVzICYmIGZpbGVJc0Rp
cmVjdG9yeShpbmZvLnBhdGgpKQorICAgICAgICBpZiAoc2hvdWxkUmVzb2x2ZURpcmVjdG9yaWVz
ID09IFNob3VsZFJlc29sdmVEaXJlY3Rvcmllczo6WWVzICYmIGZpbGVJc0RpcmVjdG9yeShpbmZv
LnBhdGgsIFNob3VsZEZvbGxvd1N5bWJvbGljTGlua3M6Ok5vKSkKICAgICAgICAgICAgIGFwcGVu
ZERpcmVjdG9yeUZpbGVzKGluZm8ucGF0aCwgcGF0aEdldEZpbGVOYW1lKGluZm8ucGF0aCksIGZp
bGVPYmplY3RzKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgZmlsZU9iamVjdHMuYXBwZW5k
KEZpbGU6OmNyZWF0ZVdpdGhOYW1lKGluZm8ucGF0aCwgaW5mby5kaXNwbGF5TmFtZSkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmNwcAppbmRleCA0YWJkMzQzYTgxYTM4Mzg4OWY1
ZDIzNDc5NDkwMTE4NzJhMzRmZjg5Li5kNTdhMGJkN2UyMmQ2ODY2M2E0ZmFjYWIwZmMwOWE0N2Y0
NDIwMjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmNwcApAQCAtMzUxLDEw
ICszNTEsMTAgQEAgdm9pZCB1bmxvY2tBbmRDbG9zZUZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlIGhh
bmRsZSkKICAgICBjbG9zZUZpbGUoaGFuZGxlKTsKIH0KIAotYm9vbCBmaWxlSXNEaXJlY3Rvcnko
Y29uc3QgU3RyaW5nJiBwYXRoKQorYm9vbCBmaWxlSXNEaXJlY3RvcnkoY29uc3QgU3RyaW5nJiBw
YXRoLCBTaG91bGRGb2xsb3dTeW1ib2xpY0xpbmtzIHNob3VsZEZvbGxvd1N5bWJvbGljTGlua3Mp
CiB7CiAgICAgRmlsZU1ldGFkYXRhIG1ldGFkYXRhOwotICAgIGlmICghZ2V0RmlsZU1ldGFkYXRh
KHBhdGgsIG1ldGFkYXRhKSkKKyAgICBpZiAoIWdldEZpbGVNZXRhZGF0YShwYXRoLCBtZXRhZGF0
YSwgc2hvdWxkRm9sbG93U3ltYm9saWNMaW5rcykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICByZXR1cm4gbWV0YWRhdGEudHlwZSA9PSBGaWxlTWV0YWRhdGE6OlR5cGVEaXJlY3Rvcnk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmgKaW5kZXggNTllMTMzZWU2YTNlMTgwNTcw
MGFmOGEyMDQ2MjE5OGIxNGI1ZWU5My4uMTU5ZjFjYmQ1YzlhN2QwNzQxNmZlYjQ4ODNmMWQ5NDc0
Yzg5MDZiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uaApAQCAtODgsNiArODgs
OCBAQCBlbnVtIEZpbGVMb2NrTW9kZSB7CiAgICAgTG9ja05vbkJsb2NraW5nID0gNAogfTsKIAor
ZW51bSBjbGFzcyBTaG91bGRGb2xsb3dTeW1ib2xpY0xpbmtzIHsgTm8sIFllcyB9OworCiBzdHJ1
Y3QgRmlsZU1ldGFkYXRhOwogCiBXRUJDT1JFX0VYUE9SVCBib29sIGZpbGVFeGlzdHMoY29uc3Qg
U3RyaW5nJik7CkBAIC05OCw4ICsxMDAsOCBAQCBXRUJDT1JFX0VYUE9SVCBib29sIGdldEZpbGVT
aXplKGNvbnN0IFN0cmluZyYsIGxvbmcgbG9uZyYgcmVzdWx0KTsKIFdFQkNPUkVfRVhQT1JUIGJv
b2wgZ2V0RmlsZVNpemUoUGxhdGZvcm1GaWxlSGFuZGxlLCBsb25nIGxvbmcmIHJlc3VsdCk7CiBX
RUJDT1JFX0VYUE9SVCBib29sIGdldEZpbGVNb2RpZmljYXRpb25UaW1lKGNvbnN0IFN0cmluZyYs
IHRpbWVfdCYgcmVzdWx0KTsKIFdFQkNPUkVfRVhQT1JUIGJvb2wgZ2V0RmlsZUNyZWF0aW9uVGlt
ZShjb25zdCBTdHJpbmcmLCB0aW1lX3QmIHJlc3VsdCk7IC8vIE5vdCBhbGwgcGxhdGZvcm1zIHN0
b3JlIGZpbGUgY3JlYXRpb24gdGltZS4KLWJvb2wgZ2V0RmlsZU1ldGFkYXRhKGNvbnN0IFN0cmlu
ZyYsIEZpbGVNZXRhZGF0YSYpOwotYm9vbCBmaWxlSXNEaXJlY3RvcnkoY29uc3QgU3RyaW5nJik7
CitXRUJDT1JFX0VYUE9SVCBib29sIGdldEZpbGVNZXRhZGF0YShjb25zdCBTdHJpbmcmLCBGaWxl
TWV0YWRhdGEmLCBTaG91bGRGb2xsb3dTeW1ib2xpY0xpbmtzKTsKK2Jvb2wgZmlsZUlzRGlyZWN0
b3J5KGNvbnN0IFN0cmluZyYsIFNob3VsZEZvbGxvd1N5bWJvbGljTGlua3MpOwogV0VCQ09SRV9F
WFBPUlQgU3RyaW5nIHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChjb25zdCBTdHJpbmcmIHBhdGgs
IGNvbnN0IFN0cmluZyYgY29tcG9uZW50KTsKIFN0cmluZyBwYXRoQnlBcHBlbmRpbmdDb21wb25l
bnRzKGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGNvbXBvbmVudHMp
OwogU3RyaW5nIGxhc3RDb21wb25lbnRPZlBhdGhJZ25vcmluZ1RyYWlsaW5nU2xhc2goY29uc3Qg
U3RyaW5nJiBwYXRoKTsKQEAgLTEwOSw2ICsxMTEsNyBAQCBXRUJDT1JFX0VYUE9SVCBTdHJpbmcg
cGF0aEdldEZpbGVOYW1lKGNvbnN0IFN0cmluZyYpOwogV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGRp
cmVjdG9yeU5hbWUoY29uc3QgU3RyaW5nJik7CiBXRUJDT1JFX0VYUE9SVCBib29sIGdldFZvbHVt
ZUZyZWVTcGFjZShjb25zdCBTdHJpbmcmLCB1aW50NjRfdCYpOwogV0VCQ09SRV9FWFBPUlQgc3Rk
OjpvcHRpb25hbDxpbnQzMl90PiBnZXRGaWxlRGV2aWNlSWQoY29uc3QgQ1N0cmluZyYpOworV0VC
Q09SRV9FWFBPUlQgYm9vbCBjcmVhdGVTeW1ib2xpY0xpbmsoY29uc3QgU3RyaW5nJiB0YXJnZXRQ
YXRoLCBjb25zdCBTdHJpbmcmIHN5bWJvbGljTGlua1BhdGgpOwogCiBXRUJDT1JFX0VYUE9SVCB2
b2lkIHNldE1ldGFkYXRhVVJMKGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU3RyaW5nJiB1cmxT
dHJpbmcsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIgPSB7IH0pOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dsaWIvRmlsZVN5c3RlbUdsaWIuY3BwCmluZGV4IGUzYzVkNjNlODQ4MGRh
NDgxOTU4MDlkNWEyZjZkMjE1NTk4OWUyYzMuLmQ3NjlkMzUwODQ0MTk3NDQyMWEzZTY2ZDk3OTMx
ZWZhNzQwOGE1ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvRmls
ZVN5c3RlbUdsaWIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvRmlsZVN5
c3RlbUdsaWIuY3BwCkBAIC0xMjMsNiArMTIzLDE1IEBAIHN0YXRpYyBib29sIGdldEZpbGVTdGF0
KGNvbnN0IFN0cmluZyYgcGF0aCwgR1N0YXRCdWYqIHN0YXRCdWZmZXIpCiAgICAgcmV0dXJuIGdf
c3RhdChmaWxlbmFtZS5nZXQoKSwgc3RhdEJ1ZmZlcikgIT0gLTE7CiB9CiAKK3N0YXRpYyBib29s
IGdldEZpbGVMU3RhdChjb25zdCBTdHJpbmcmIHBhdGgsIEdTdGF0QnVmKiBzdGF0QnVmZmVyKQor
eworICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGZpbGVuYW1lID0gdW5lc2NhcGVkRmlsZW5hbWUocGF0
aCk7CisgICAgaWYgKCFmaWxlbmFtZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0
dXJuIGdfbHN0YXQoZmlsZW5hbWUuZ2V0KCksIHN0YXRCdWZmZXIpICE9IC0xOworfQorCiBib29s
IGdldEZpbGVTaXplKGNvbnN0IFN0cmluZyYgcGF0aCwgbG9uZyBsb25nJiByZXN1bHRTaXplKQog
ewogICAgIEdTdGF0QnVmIHN0YXRSZXN1bHQ7CkBAIC0xNTUsMTEgKzE2NCwxNyBAQCBib29sIGdl
dEZpbGVNb2RpZmljYXRpb25UaW1lKGNvbnN0IFN0cmluZyYgcGF0aCwgdGltZV90JiBtb2RpZmll
ZFRpbWUpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgZ2V0RmlsZU1ldGFkYXRhKGNvbnN0
IFN0cmluZyYgcGF0aCwgRmlsZU1ldGFkYXRhJiBtZXRhZGF0YSkKK2Jvb2wgZ2V0RmlsZU1ldGFk
YXRhKGNvbnN0IFN0cmluZyYgcGF0aCwgRmlsZU1ldGFkYXRhJiBtZXRhZGF0YSwgU2hvdWxkRm9s
bG93U3ltYm9saWNMaW5rcyBzaG91bGRGb2xsb3dTeW1ib2xpY0xpbmtzKQogewogICAgIEdTdGF0
QnVmIHN0YXRSZXN1bHQ7Ci0gICAgaWYgKCFnZXRGaWxlU3RhdChwYXRoLCAmc3RhdFJlc3VsdCkp
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmIChzaG91bGRGb2xsb3dTeW1ib2xpY0xp
bmtzID09IFNob3VsZEZvbGxvd1N5bWJvbGljTGlua3M6OlllcykgeworICAgICAgICBpZiAoIWdl
dEZpbGVTdGF0KHBhdGgsICZzdGF0UmVzdWx0KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICB9IGVsc2UgeworICAgICAgICBpZiAoIWdldEZpbGVMU3RhdChwYXRoLCAmc3RhdFJlc3Vs
dCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQogCiAgICAgU3RyaW5nIGZpbGVu
YW1lID0gcGF0aEdldEZpbGVOYW1lKHBhdGgpOwogICAgIG1ldGFkYXRhLmlzSGlkZGVuID0gIWZp
bGVuYW1lLmlzRW1wdHkoKSAmJiBmaWxlbmFtZVswXSA9PSAnLic7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JEYXRhRmlsZVJlZmVyZW5jZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JEYXRhRmlsZVJlZmVyZW5jZS5jcHAK
aW5kZXggMWY4Y2UwYjYzOGZmMTIyYTQ3ODIzMjk0YTk4MjRjY2ExNzdmNmQ3ZC4uNmRjNmQ2NGFl
ODcxODVkMGYxY2QxZWE4Nzc2ODA4ZGEzYzY1NWQ3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9CbG9iRGF0YUZpbGVSZWZlcmVuY2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYkRhdGFGaWxlUmVmZXJlbmNlLmNwcApAQCAt
OTYsNyArOTYsNyBAQCB2b2lkIEJsb2JEYXRhRmlsZVJlZmVyZW5jZTo6c3RhcnRUcmFja2luZ01v
ZGlmaWNhdGlvbnMoKQogCiAgICAgLy8gRklYTUU6IFNvbWUgcGxhdGZvcm1zIHByb3ZpZGUgYmV0
dGVyIHdheXMgdG8gbGlzdGVuIGZvciBmaWxlIHN5c3RlbSBvYmplY3QgY2hhbmdlcywgY29uc2lk
ZXIgdXNpbmcgdGhlc2UuCiAgICAgRmlsZU1ldGFkYXRhIG1ldGFkYXRhOwotICAgIGlmICghZ2V0
RmlsZU1ldGFkYXRhKG1fcGF0aCwgbWV0YWRhdGEpKQorICAgIGlmICghZ2V0RmlsZU1ldGFkYXRh
KG1fcGF0aCwgbWV0YWRhdGEsIFNob3VsZEZvbGxvd1N5bWJvbGljTGlua3M6OlllcykpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIG1fZXhwZWN0ZWRNb2RpZmljYXRpb25UaW1lID0gbWV0YWRhdGEu
bW9kaWZpY2F0aW9uVGltZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvbWFjL0Jsb2JEYXRhRmlsZVJlZmVyZW5jZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvbWFjL0Jsb2JEYXRhRmlsZVJlZmVyZW5jZU1hYy5tbQppbmRleCAzMmU5
NTQ1ODdiOTEwM2FmM2MwMjcxM2FkYjk5ZjJmZjM5YjNjZjZiLi44ZGFjZTdhN2UwMjZhN2JkMjVi
OWUzYzI4NzE5OGFmYWI3YzBiNjM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL21hYy9CbG9iRGF0YUZpbGVSZWZlcmVuY2VNYWMubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvQmxvYkRhdGFGaWxlUmVmZXJlbmNlTWFjLm1tCkBA
IC04MCw3ICs4MCw3IEBAIHZvaWQgQmxvYkRhdGFGaWxlUmVmZXJlbmNlOjpnZW5lcmF0ZVJlcGxh
Y2VtZW50RmlsZSgpCiAgICAgbV9yZXBsYWNlbWVudFNob3VsZEJlR2VuZXJhdGVkID0gZmFsc2U7
CiAgICAgaWYgKCFtX3JlcGxhY2VtZW50UGF0aC5pc051bGwoKSkgewogICAgICAgICBGaWxlTWV0
YWRhdGEgbWV0YWRhdGE7Ci0gICAgICAgIGlmIChnZXRGaWxlTWV0YWRhdGEobV9yZXBsYWNlbWVu
dFBhdGgsIG1ldGFkYXRhKSkKKyAgICAgICAgaWYgKGdldEZpbGVNZXRhZGF0YShtX3JlcGxhY2Vt
ZW50UGF0aCwgbWV0YWRhdGEsIFNob3VsZEZvbGxvd1N5bWJvbGljTGlua3M6OlllcykpCiAgICAg
ICAgICAgICBtX3NpemUgPSBtZXRhZGF0YS5sZW5ndGg7CiAgICAgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9wb3NpeC9GaWxlU3lzdGVtUE9TSVguY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vcG9zaXgvRmlsZVN5c3RlbVBPU0lYLmNwcAppbmRleCBlYTE3NmRk
MDRlZDNlMDAyMDU4YjhlNjAyODQ2M2VhMWMyODAzNThhLi5mNGFjMWQwN2U3ODkwNWM0NzU0MGQx
MWJkODA2OThkM2MwMzk3ZjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9w
b3NpeC9GaWxlU3lzdGVtUE9TSVguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Bv
c2l4L0ZpbGVTeXN0ZW1QT1NJWC5jcHAKQEAgLTIzOSw3ICsyMzksNyBAQCBib29sIGdldEZpbGVN
b2RpZmljYXRpb25UaW1lKGNvbnN0IFN0cmluZyYgcGF0aCwgdGltZV90JiByZXN1bHQpCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgZ2V0RmlsZU1ldGFkYXRhKGNvbnN0IFN0cmluZyYgcGF0
aCwgRmlsZU1ldGFkYXRhJiBtZXRhZGF0YSkKK2Jvb2wgZ2V0RmlsZU1ldGFkYXRhKGNvbnN0IFN0
cmluZyYgcGF0aCwgRmlsZU1ldGFkYXRhJiBtZXRhZGF0YSwgU2hvdWxkRm9sbG93U3ltYm9saWNM
aW5rcyBzaG91bGRGb2xsb3dTeW1ib2xpY0xpbmtzKQogewogICAgIENTdHJpbmcgZnNSZXAgPSBm
aWxlU3lzdGVtUmVwcmVzZW50YXRpb24ocGF0aCk7CiAKQEAgLTI0Nyw4ICsyNDcsMTQgQEAgYm9v
bCBnZXRGaWxlTWV0YWRhdGEoY29uc3QgU3RyaW5nJiBwYXRoLCBGaWxlTWV0YWRhdGEmIG1ldGFk
YXRhKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBzdHJ1Y3Qgc3RhdCBmaWxlSW5mbzsK
LSAgICBpZiAoc3RhdChmc1JlcC5kYXRhKCksICZmaWxlSW5mbykpCi0gICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgIGlmIChzaG91bGRGb2xsb3dTeW1ib2xpY0xpbmtzID09IFNob3VsZEZvbGxv
d1N5bWJvbGljTGlua3M6OlllcykgeworICAgICAgICBpZiAoc3RhdChmc1JlcC5kYXRhKCksICZm
aWxlSW5mbykpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfSBlbHNlIHsKKyAgICAg
ICAgaWYgKGxzdGF0KGZzUmVwLmRhdGEoKSwgJmZpbGVJbmZvKSkKKyAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICB9CiAKICAgICBTdHJpbmcgZmlsZW5hbWUgPSBwYXRoR2V0RmlsZU5hbWUo
cGF0aCk7CiAKQEAgLTI2NCw2ICsyNzAsMTkgQEAgYm9vbCBnZXRGaWxlTWV0YWRhdGEoY29uc3Qg
U3RyaW5nJiBwYXRoLCBGaWxlTWV0YWRhdGEmIG1ldGFkYXRhKQogICAgIHJldHVybiB0cnVlOwog
fQogCitib29sIGNyZWF0ZVN5bWJvbGljTGluayhjb25zdCBTdHJpbmcmIHRhcmdldFBhdGgsIGNv
bnN0IFN0cmluZyYgc3ltYm9saWNMaW5rUGF0aCkKK3sKKyAgICBDU3RyaW5nIHRhcmdldFBhdGhG
U1JlcCA9IGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbih0YXJnZXRQYXRoKTsKKyAgICBpZiAoIXRh
cmdldFBhdGhGU1JlcC5kYXRhKCkgfHwgdGFyZ2V0UGF0aEZTUmVwLmRhdGEoKVswXSA9PSAnXDAn
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBDU3RyaW5nIHN5bWJvbGljTGlua1BhdGhG
U1JlcCA9IGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihzeW1ib2xpY0xpbmtQYXRoKTsKKyAgICBp
ZiAoIXN5bWJvbGljTGlua1BhdGhGU1JlcC5kYXRhKCkgfHwgc3ltYm9saWNMaW5rUGF0aEZTUmVw
LmRhdGEoKVswXSA9PSAnXDAnKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4g
IXN5bWxpbmsodGFyZ2V0UGF0aEZTUmVwLmRhdGEoKSwgc3ltYm9saWNMaW5rUGF0aEZTUmVwLmRh
dGEoKSk7Cit9CisKIFN0cmluZyBwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoY29uc3QgU3RyaW5n
JiBwYXRoLCBjb25zdCBTdHJpbmcmIGNvbXBvbmVudCkKIHsKICAgICBpZiAocGF0aC5lbmRzV2l0
aCgnLycpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0ZpbGVTeXN0
ZW1XaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0ZpbGVTeXN0ZW1XaW4uY3Bw
CmluZGV4IDg3ODJkNzAwZGViNjY4NTExZDczNWQzMGMyODg2MGEwNjVmY2QwNWYuLjM1Y2Q2Y2Fh
MjQ5MDZjMWExMWMwY2Q4YmUzNzBhOWUzZWQ1ZTc5M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3dpbi9GaWxlU3lzdGVtV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS93aW4vRmlsZVN5c3RlbVdpbi5jcHAKQEAgLTE0MSwxMiArMTQxLDM5IEBAIGJvb2wg
Z2V0RmlsZUNyZWF0aW9uVGltZShjb25zdCBTdHJpbmcmIHBhdGgsIHRpbWVfdCYgdGltZSkKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBnZXRGaWxlTWV0YWRhdGEoY29uc3QgU3RyaW5nJiBw
YXRoLCBGaWxlTWV0YWRhdGEmIG1ldGFkYXRhKQorc3RhdGljIFN0cmluZyBnZXRGaW5hbFBhdGhO
YW1lKGNvbnN0IFN0cmluZyYgcGF0aCkKK3sKKyAgICBhdXRvIGhhbmRsZSA9IG9wZW5GaWxlKHBh
dGgsIE9wZW5Gb3JSZWFkKTsKKyAgICBpZiAoIWlzSGFuZGxlVmFsaWQoaGFuZGxlKSkKKyAgICAg
ICAgcmV0dXJuIFN0cmluZygpOworCisgICAgU3RyaW5nVmVjdG9yPFVDaGFyPiBidWZmZXIoTUFY
X1BBVEgpOworICAgIGlmICg6OkdldEZpbmFsUGF0aE5hbWVCeUhhbmRsZVcoaGFuZGxlLCBidWZm
ZXIuZGF0YSgpLCBidWZmZXIuc2l6ZSgpLCBWT0xVTUVfTkFNRV9OVCkgPj0gTUFYX1BBVEgpIHsK
KyAgICAgICAgY2xvc2VGaWxlKGhhbmRsZSk7CisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKyAg
ICB9CisgICAgY2xvc2VGaWxlKGhhbmRsZSk7CisKKyAgICBidWZmZXIuc2hyaW5rKHdjc2xlbihi
dWZmZXIuZGF0YSgpKSk7CisgICAgcmV0dXJuIFN0cmluZzo6YWRvcHQoV1RGTW92ZShidWZmZXIp
KTsKK30KKworYm9vbCBnZXRGaWxlTWV0YWRhdGEoY29uc3QgU3RyaW5nJiBwYXRoLCBGaWxlTWV0
YWRhdGEmIG1ldGFkYXRhLCBTaG91bGRGb2xsb3dTeW1ib2xpY0xpbmtzIHNob3VsZEZvbGxvd1N5
bWJvbGljTGlua3MpCiB7CiAgICAgV0lOMzJfRklORF9EQVRBVyBmaW5kRGF0YTsKICAgICBpZiAo
IWdldEZpbmREYXRhKHBhdGgsIGZpbmREYXRhKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisg
ICAgYm9vbCBpc1N5bWJvbGljTGluayA9IGZpbmREYXRhLmR3RmlsZUF0dHJpYnV0ZXMgJiBGSUxF
X0FUVFJJQlVURV9SRVBBUlNFX1BPSU5UICYmIGZpbmREYXRhLmR3UmVzZXJ2ZWQwID09IElPX1JF
UEFSU0VfVEFHX1NZTUxJTks7CisgICAgaWYgKGlzU3ltYm9saWNMaW5rICYmIHNob3VsZEZvbGxv
d1N5bWJvbGljTGlua3MgPT0gU2hvdWxkRm9sbG93U3ltYm9saWNMaW5rczo6WWVzKSB7CisgICAg
ICAgIFN0cmluZyB0YXJnZXRQYXRoID0gZ2V0RmluYWxQYXRoTmFtZShwYXRoKTsKKyAgICAgICAg
aWYgKHRhcmdldFBhdGguaXNOdWxsKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgIGlmICghZ2V0RmluZERhdGEodGFyZ2V0UGF0aCwgZmluZERhdGEpKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICBpc1N5bWJvbGljTGluayA9IGZhbHNlOworICAgIH0KKwog
ICAgIGlmICghZ2V0RmlsZVNpemVGcm9tRmluZERhdGEoZmluZERhdGEsIG1ldGFkYXRhLmxlbmd0
aCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtMTU0LDExICsxODEsMjEgQEAgYm9vbCBn
ZXRGaWxlTWV0YWRhdGEoY29uc3QgU3RyaW5nJiBwYXRoLCBGaWxlTWV0YWRhdGEmIG1ldGFkYXRh
KQogICAgIGdldEZpbGVNb2RpZmljYXRpb25UaW1lRnJvbUZpbmREYXRhKGZpbmREYXRhLCBtb2Rp
ZmljYXRpb25UaW1lKTsKICAgICBtZXRhZGF0YS5tb2RpZmljYXRpb25UaW1lID0gbW9kaWZpY2F0
aW9uVGltZTsKICAgICBtZXRhZGF0YS5pc0hpZGRlbiA9IGZpbmREYXRhLmR3RmlsZUF0dHJpYnV0
ZXMgJiBGSUxFX0FUVFJJQlVURV9ISURERU47Ci0gICAgbWV0YWRhdGEudHlwZSA9IChmaW5kRGF0
YS5kd0ZpbGVBdHRyaWJ1dGVzICYgRklMRV9BVFRSSUJVVEVfRElSRUNUT1JZKSA/IEZpbGVNZXRh
ZGF0YTo6VHlwZURpcmVjdG9yeSA6IEZpbGVNZXRhZGF0YTo6VHlwZUZpbGU7CisgICAgaWYgKGZp
bmREYXRhLmR3RmlsZUF0dHJpYnV0ZXMgJiBGSUxFX0FUVFJJQlVURV9ESVJFQ1RPUlkpCisgICAg
ICAgIG1ldGFkYXRhLnR5cGUgPSBGaWxlTWV0YWRhdGE6OlR5cGVEaXJlY3Rvcnk7CisgICAgZWxz
ZSBpZiAoaXNTeW1ib2xpY0xpbmspCisgICAgICAgIG1ldGFkYXRhLnR5cGUgPSBGaWxlTWV0YWRh
dGE6OlR5cGVTeW1ib2xpY0xpbms7CisgICAgZWxzZQorICAgICAgICBtZXRhZGF0YS50eXBlID0g
RmlsZU1ldGFkYXRhOjpUeXBlRmlsZTsKIAogICAgIHJldHVybiB0cnVlOwogfQogCitib29sIGNy
ZWF0ZVN5bWJvbGljTGluayhjb25zdCBTdHJpbmcmIHRhcmdldFBhdGgsIGNvbnN0IFN0cmluZyYg
c3ltYm9saWNMaW5rUGF0aCkKK3sKKyAgICByZXR1cm4gITo6Q3JlYXRlU3ltYm9saWNMaW5rVyhz
eW1ib2xpY0xpbmtQYXRoLmNoYXJhY3RlcnNXaXRoTnVsbFRlcm1pbmF0aW9uKCkuZGF0YSgpLCB0
YXJnZXRQYXRoLmNoYXJhY3RlcnNXaXRoTnVsbFRlcm1pbmF0aW9uKCkuZGF0YSgpLCAwKTsKK30K
KwogYm9vbCBmaWxlRXhpc3RzKGNvbnN0IFN0cmluZyYgcGF0aCkKIHsKICAgICBXSU4zMl9GSU5E
X0RBVEFXIGZpbmREYXRhOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hh
bmdlTG9nCmluZGV4IDYxYzkxODExY2RmNGVmNWI2MGZiYWVlZjhmMDEwOTY5MTc2ZGM4MGEuLmY0
NDFlYjExMjQ4NTk4MzA1Y2RjZmEwOWNjYzQzNTUxNjEzZWYwNWEgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxNy0w
OC0zMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIGdldEZpbGVN
ZXRhZGF0YSgpIGRvZXMgbm90IHdvcmsgYXMgZXhwZWN0ZWQgZm9yIHN5bWJvbGljIGxpbmtzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYxNDMKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgQVBJIHRl
c3QgY292ZXJhZ2UuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmls
ZVN5c3RlbS5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorCiAyMDE3LTA4
LTMwICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgUmVuYW1lIEFy
cmF5TGFuZyB0byBXZWJHUFUgU2hhZGluZyBMYW5ndWFnZSwgb3IgV1NMIGZvciBzaG9ydCwgcHJv
bm91bmNlZCAid2hpc3RsZSIKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9GaWxlU3lzdGVtLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9GaWxlU3lzdGVtLmNwcAppbmRleCA4YTRhNzhjNjUzYTdiYzM5ZDMyZGU5MmFhNjVjNDkwZjQz
Njg5MWY0Li5iYTJiNTU5MzUwNTZlZDliOThkODBlZDRhNjBiODFhMTVmNzRkYTMyIDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZVN5c3RlbS5jcHAKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVTeXN0ZW0uY3BwCkBAIC0y
Nyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNpbmNsdWRlICJUZXN0LmgiCisj
aW5jbHVkZSA8V2ViQ29yZS9GaWxlTWV0YWRhdGEuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVT
eXN0ZW0uaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9TdHJp
bmdFeHRyYXMuaD4KQEAgLTExOSw0ICsxMjAsMjAgQEAgVEVTVF9GKEZpbGVTeXN0ZW1UZXN0LCBG
aWxlc0hhdmVTYW1lVm9sdW1lKQogICAgIEVYUEVDVF9UUlVFKGZpbGVzSGF2ZVNhbWVWb2x1bWUo
YmFuZ0NvbnRhaW5pbmdGaWxlUGF0aCgpLCBxdW90ZUNvbnRhaW5pbmdGaWxlUGF0aCgpKSk7CiB9
CiAKK1RFU1RfRihGaWxlU3lzdGVtVGVzdCwgR2V0RmlsZU1ldGFkYXRhU3ltbGluaykKK3sKKyAg
ICBTdHJpbmcgc3ltbGlua1BhdGggPSB0ZW1wRmlsZVBhdGgoKSArICItc3ltbGluayI7CisgICAg
RVhQRUNUX1RSVUUoY3JlYXRlU3ltYm9saWNMaW5rKHRlbXBGaWxlUGF0aCgpLCBzeW1saW5rUGF0
aCkpOworCisgICAgRmlsZU1ldGFkYXRhIHN5bWxpbmtNZXRhZGF0YTsKKyAgICBFWFBFQ1RfVFJV
RShnZXRGaWxlTWV0YWRhdGEoc3ltbGlua1BhdGgsIHN5bWxpbmtNZXRhZGF0YSwgU2hvdWxkRm9s
bG93U3ltYm9saWNMaW5rczo6Tm8pKTsKKyAgICBFWFBFQ1RfVFJVRShzeW1saW5rTWV0YWRhdGEu
dHlwZSA9PSBGaWxlTWV0YWRhdGE6OlR5cGVTeW1ib2xpY0xpbmspOworICAgIEVYUEVDVF9GQUxT
RShzdGF0aWNfY2FzdDxzaXplX3Q+KHN5bWxpbmtNZXRhZGF0YS5sZW5ndGgpID09IHN0cmxlbihG
aWxlU3lzdGVtVGVzdERhdGEpKTsKKworICAgIEZpbGVNZXRhZGF0YSB0YXJnZXRNZXRhZGF0YTsK
KyAgICBFWFBFQ1RfVFJVRShnZXRGaWxlTWV0YWRhdGEoc3ltbGlua1BhdGgsIHRhcmdldE1ldGFk
YXRhLCBTaG91bGRGb2xsb3dTeW1ib2xpY0xpbmtzOjpZZXMpKTsKKyAgICBFWFBFQ1RfVFJVRSh0
YXJnZXRNZXRhZGF0YS50eXBlID09IEZpbGVNZXRhZGF0YTo6VHlwZUZpbGUpOworICAgIEVYUEVD
VF9FUShzdHJsZW4oRmlsZVN5c3RlbVRlc3REYXRhKSwgc3RhdGljX2Nhc3Q8c2l6ZV90Pih0YXJn
ZXRNZXRhZGF0YS5sZW5ndGgpKTsKK30KKwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319453</attachid>
            <date>2017-08-30 22:28:52 -0700</date>
            <delta_ts>2017-08-31 09:08:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176143-20170830222851.patch</filename>
            <type>text/plain</type>
            <size>20964</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxMzk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjNkY2I2NGNmOTRlZDdj
NTgxOWE0NzRjNmE4ZTBhNWVkYzVkY2Y5NS4uZGUwOTUyZDlkMzUxOTUwOGViYjJhNjUzYzMzZjFi
NWQ2ZWVlMGY5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU5IEBACiAyMDE3LTA4LTMwICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAgZ2V0RmlsZU1ldGFkYXRhKCkg
ZG9lcyBub3Qgd29yayBhcyBleHBlY3RlZCBmb3Igc3ltYm9saWMgbGlua3MKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjE0MworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGdldEZpbGVNZXRhZGF0YSgpIGRv
ZXMgbm90IHdvcmsgYXMgZXhwZWN0ZWQgZm9yIHN5bWJvbGljIGxpbmtzOgorICAgICAgICBPbiBQ
T1NJWCwgZ2V0RmlsZU1ldGFkYXRhKCkgYWx3YXlzIGZvbGxvd2VkIHN5bWxpbmtzLCB3aGljaCBt
ZWFudCB0aGF0IEZpbGVNZXRhZGF0YS50eXBlIGNvdWxkCisgICAgICAgIG5ldmVyIGJlIFR5cGVT
eW1ib2xpY0xpbmsuIE9uIFdpbmRvd3MsIHRoZSBmdW5jdGlvbiBwcm9wZXJseSBkaWQgbm90IGZv
bGxvdyBzeW1saW5rcyBidXQgZmFpbGVkIHRvIHNldAorICAgICAgICBGaWxlTWV0YWRhdGEudHlw
ZSB0byBUeXBlU3ltYm9saWNMaW5rIHdoZW4gdGhlIGZpbGUgd2FzIGEgc3ltYm9saWMgbGluay4K
KworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgYSBuZXcgU2hvdWxkRm9sbG93U3ltYm9saWNMaW5r
cyBwYXJhbWV0ZXIgdG8gZ2V0RmlsZU1ldGFkYXRhKCkgc28gdGhhdAorICAgICAgICB0aGUgY2Fs
bCBzaXRlIGNhbiBkZWNpZGUgdGhlIGJlaGF2aW9yIGl0IHdhbnRzLiBJZiBnZXRGaWxlTWV0YWRh
dGEoKSBpcyBjYWxsZWQgb24gYQorICAgICAgICBzeW1ib2xpYyBsaW5rIHdpdGggU2hvdWxkRm9s
bG93U3ltYm9saWNMaW5rczo6Tm8gYXMgcGFyYW1ldGVyLCBGaWxlTWV0YWRhdGEudHlwZSBpcyBu
b3cKKyAgICAgICAgcHJvcGVybHkgc2V0IHRvIFR5cGVTeW1ib2xpY0xpbmsuCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzLCBjb3ZlcmVkIGJ5IG5ldyBBUEkgdGVzdC4KKworICAgICAgICAqIE1vZHVs
ZXMvZW50cmllc2FwaS9ET01GaWxlU3lzdGVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Omxpc3RE
aXJlY3RvcnlXaXRoTWV0YWRhdGEpOgorICAgICAgICBJdCBpcyBpbXBvcnRhbnQgd2UgZG8gbm90
IGZvbGxvdyBzeW1saW5rcyBoZXJlIHNpbmNlIHRoZSBjb2RlIHdhbnRzIHRvIGRpc2NhcmQgdGhl
bQorICAgICAgICBhbmQgZG9lcyBzbyBieSBjaGVja2luZyBGaWxlTWV0YWRhdGEudHlwZS4KKwor
ICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBm
aWxlYXBpL0ZpbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZTo6aXNEaXJlY3RvcnkgY29u
c3QpOgorCisgICAgICAgICogaHRtbC9GaWxlTGlzdENyZWF0b3IuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6YXBwZW5kRGlyZWN0b3J5RmlsZXMpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZUxpc3RD
cmVhdG9yOjpjcmVhdGVGaWxlTGlzdCk6CisgICAgICAgIEl0IGlzIGltcG9ydGFudCB3ZSBkbyBu
b3QgZm9sbG93IHN5bWxpbmtzIGhlcmUgc2luY2UgdGhlIGNvZGUgd2FudHMgdG8gZGlzY2FyZCB0
aGVtCisgICAgICAgIGFuZCBkb2VzIHNvIGJ5IGNoZWNraW5nIEZpbGVNZXRhZGF0YS50eXBlLgor
CisgICAgICAgICogcGxhdGZvcm0vRmlsZVN5c3RlbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpm
aWxlSXNEaXJlY3RvcnkpOgorICAgICAgICAqIHBsYXRmb3JtL0ZpbGVTeXN0ZW0uaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmdldEZpbGVMU3RhdCk6CisgICAgICAgIChXZWJDb3JlOjpnZXRGaWxlTWV0YWRhdGEpOgorICAg
ICAgICAqIHBsYXRmb3JtL3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJWC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpnZXRGaWxlTWV0YWRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlU3ltYm9saWNM
aW5rKToKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vRmlsZVN5c3RlbVdpbi5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpnZXRGaW5hbFBhdGhOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OmdldEZpbGVN
ZXRhZGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVTeW1ib2xpY0xpbmspOgorICAgICAg
ICAtIEFkZCBuZXcgY3JlYXRlU3ltYm9saWNMaW5rKCkgZnVuY3Rpb24gZm9yIHRlc3RpbmcgcHVy
cG9zZXMuCisgICAgICAgIC0gT24gUG9zaXgsIGNhbGwgbHN0YXQoKSBpbnN0ZWFkIG9mIHN0YXQg
aWYgU2hvdWxkRm9sbG93U3ltYm9saWNMaW5rczo6Tm8uCisgICAgICAgIC0gT24gV2luZG93cywg
c2luY2UgRmluZEZpcnN0RmlsZVcoKSBkb2VzIG5vdCBmb2xsb3cgc3ltbGlua3MsIHJlc29sdmUK
KyAgICAgICAgICBmaW5hbCBwYXRoIHVzaW5nIEdldEZpbmFsUGF0aE5hbWVCeUhhbmRsZVcoKSBp
ZiBTaG91bGRGb2xsb3dTeW1ib2xpY0xpbmtzOjpZZXMuCisgICAgICAgIC0gT24gV2luZG93cywg
cHJvcGVybHkgc2V0IEZpbGVNZXRhZGF0YS50eXBlIHRvIFR5cGVTeW1ib2xpY0xpbmsgaWYgdGhl
IGZpbGUKKyAgICAgICAgICBpcyBhIHN5bWJvbGljIGxpbmsuCisKKzIwMTctMDgtMzAgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwogICAgICAgICBJbXBsZW1lbnQgRmlsZVN5c3Rl
bURpcmVjdG9yeVJlYWRlci5yZWFkRW50cmllcygpCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYwOTEKICAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM0
MTY4MDE1PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0RP
TUZpbGVTeXN0ZW0uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0RPTUZp
bGVTeXN0ZW0uY3BwCmluZGV4IDllOWVjNWQxYzM4NmRlNDFhZGU1NGE3NTQwODA3MTZlOGM5OGFm
MmYuLjM4YzM1NGU1NWViNTlhOGY5ZDc1M2E0MjQ3MmIxOGIxZWZkNjgwZmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9ET01GaWxlU3lzdGVtLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRE9NRmlsZVN5c3RlbS5jcHAKQEAg
LTQ2LDcgKzQ2LDcgQEAgc3RydWN0IExpc3RlZENoaWxkIHsKIHN0YXRpYyBFeGNlcHRpb25PcjxW
ZWN0b3I8TGlzdGVkQ2hpbGQ+PiBsaXN0RGlyZWN0b3J5V2l0aE1ldGFkYXRhKGNvbnN0IFN0cmlu
ZyYgZnVsbFBhdGgpCiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7Ci0gICAgaWYgKCFm
aWxlSXNEaXJlY3RvcnkoZnVsbFBhdGgpKQorICAgIGlmICghZmlsZUlzRGlyZWN0b3J5KGZ1bGxQ
YXRoLCBTaG91bGRGb2xsb3dTeW1ib2xpY0xpbmtzOjpObykpCiAgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBOb3RGb3VuZEVycm9yLCAiUGF0aCBubyBsb25nZXIgZXhpc3RzIG9yIGlzIG5vIGxv
bmdlciBhIGRpcmVjdG9yeSIgfTsKIAogICAgIGF1dG8gY2hpbGRQYXRocyA9IGxpc3REaXJlY3Rv
cnkoZnVsbFBhdGgsICIqIik7CkBAIC01NCw3ICs1NCw3IEBAIHN0YXRpYyBFeGNlcHRpb25PcjxW
ZWN0b3I8TGlzdGVkQ2hpbGQ+PiBsaXN0RGlyZWN0b3J5V2l0aE1ldGFkYXRhKGNvbnN0IFN0cmlu
ZyYKICAgICBsaXN0ZWRDaGlsZHJlbi5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGNoaWxkUGF0aHMu
c2l6ZSgpKTsKICAgICBmb3IgKGF1dG8mIGNoaWxkUGF0aCA6IGNoaWxkUGF0aHMpIHsKICAgICAg
ICAgRmlsZU1ldGFkYXRhIG1ldGFkYXRhOwotICAgICAgICBpZiAoIWdldEZpbGVNZXRhZGF0YShj
aGlsZFBhdGgsIG1ldGFkYXRhKSkKKyAgICAgICAgaWYgKCFnZXRGaWxlTWV0YWRhdGEoY2hpbGRQ
YXRoLCBtZXRhZGF0YSwgU2hvdWxkRm9sbG93U3ltYm9saWNMaW5rczo6Tm8pKQogICAgICAgICAg
ICAgY29udGludWU7CiAgICAgICAgIGxpc3RlZENoaWxkcmVuLnVuY2hlY2tlZEFwcGVuZChMaXN0
ZWRDaGlsZCB7IHBhdGhHZXRGaWxlTmFtZShjaGlsZFBhdGgpLCBtZXRhZGF0YS50eXBlIH0pOwog
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCBmMTRiOWRmYjQ4MmZjYzQzZDU4MDVmYjNiYmMwMDI3Yzg4ZGFmYmQ2Li4wNTA4
NjZlZTkwYjc4ZGY3YzNmNzMyY2U1N2VjMTA0NzFhYjJlZmVlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xOTM5LDcgKzE5Mzks
NyBAQAogCQk0NjczMDIwMjFDNEVGRTc4MDBCQ0IzNTcgLyogSWdub3JlT3BlbnNEdXJpbmdVbmxv
YWRDb3VudEluY3JlbWVudGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0NjczMDIwMTFDNEVGRTY2MDBCQ0IzNTcgLyogSWdub3JlT3BlbnNEdXJpbmdV
bmxvYWRDb3VudEluY3JlbWVudGVyLmggKi87IH07CiAJCTQ2ODM0NERGMUVEREZBQUEwMEI3Nzk1
QiAvKiBET01SZWN0TGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0NjgzNDRERDFFRERGQTVGMDBCNzc5NUIgLyogRE9NUmVjdExpc3QuY3BwICov
OyB9OwogCQk0NjgzNDRFMDFFRERGQUFBMDBCNzc5NUIgLyogRE9NUmVjdExpc3QuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2ODM0NERFMUVEREZBNUYw
MEI3Nzk1QiAvKiBET01SZWN0TGlzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07Ci0JCTQ2ODlGMUFGMTI2N0JBRTEwMEU4RDM4MCAvKiBGaWxlTWV0YWRh
dGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2ODlG
MUFFMTI2N0JBRTEwMEU4RDM4MCAvKiBGaWxlTWV0YWRhdGEuaCAqLzsgfTsKKwkJNDY4OUYxQUYx
MjY3QkFFMTAwRThEMzgwIC8qIEZpbGVNZXRhZGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY4OUYxQUUxMjY3QkFFMTAwRThEMzgwIC8qIEZpbGVN
ZXRhZGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTQ2QjYzRjZDMUM2RThEMTkwMDJFOTE0QiAvKiBKU0V2ZW50VGFyZ2V0Q3VzdG9tLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkI2M0Y2QjFDNkU4
Q0RGMDAyRTkxNEIgLyogSlNFdmVudFRhcmdldEN1c3RvbS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2QzY5NkNCMUU3MjA1RjcwMDU5NzkzNyAv
KiBDUFVNb25pdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0NkM2OTZDOTFFNzIwNUU0MDA1OTc5MzcgLyogQ1BVTW9uaXRvci5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2QzY5NkNDMUU3MjA1RkMw
MDU5NzkzNyAvKiBDUFVNb25pdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQ2QzY5NkNBMUU3MjA1RTQwMDU5NzkzNyAvKiBDUFVNb25pdG9yLmNw
cCAqLzsgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGUuY3BwCmluZGV4IGI1MDhhYmY0NmQxMWZlMmUzZjk0
Zjc3MjFiMDdhOTQ4N2RiYzExYTIuLjEzOGQ0YjJlNjI1MjUyMjE0NGE0MTcwOWRkYzk3ZjUzOTlj
MWRiNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlLmNwcApAQCAtMTMwLDcgKzEzMCw3IEBAIFN0cmlu
ZyBGaWxlOjpjb250ZW50VHlwZUZvckZpbGUoY29uc3QgU3RyaW5nJiBwYXRoKQogYm9vbCBGaWxl
Ojppc0RpcmVjdG9yeSgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2lzRGlyZWN0b3J5KQotICAgICAg
ICBtX2lzRGlyZWN0b3J5ID0gZmlsZUlzRGlyZWN0b3J5KG1fcGF0aCk7CisgICAgICAgIG1faXNE
aXJlY3RvcnkgPSBmaWxlSXNEaXJlY3RvcnkobV9wYXRoLCBTaG91bGRGb2xsb3dTeW1ib2xpY0xp
bmtzOjpZZXMpOwogICAgIHJldHVybiAqbV9pc0RpcmVjdG9yeTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9GaWxlTGlzdENyZWF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9GaWxlTGlzdENyZWF0b3IuY3BwCmluZGV4IDE5YmQ0NGFlYTFkZGQxNmQxOTI5ZjIyZGFh
MGQxOThiYmJmMzJhODEuLjQxOTJjNjNkZjE1OWNhMzNmNDcwY2EwZGVkMTI5ODM2MTVjODg2MDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUxpc3RDcmVhdG9yLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVMaXN0Q3JlYXRvci5jcHAKQEAgLTQzLDcgKzQzLDcg
QEAgc3RhdGljIHZvaWQgYXBwZW5kRGlyZWN0b3J5RmlsZXMoY29uc3QgU3RyaW5nJiBkaXJlY3Rv
cnksIGNvbnN0IFN0cmluZyYgcmVsYXRpdmUKIHsKICAgICBmb3IgKGF1dG8mIGNoaWxkUGF0aCA6
IGxpc3REaXJlY3RvcnkoZGlyZWN0b3J5LCAiKiIpKSB7CiAgICAgICAgIEZpbGVNZXRhZGF0YSBt
ZXRhZGF0YTsKLSAgICAgICAgaWYgKCFnZXRGaWxlTWV0YWRhdGEoY2hpbGRQYXRoLCBtZXRhZGF0
YSkpCisgICAgICAgIGlmICghZ2V0RmlsZU1ldGFkYXRhKGNoaWxkUGF0aCwgbWV0YWRhdGEsIFNo
b3VsZEZvbGxvd1N5bWJvbGljTGlua3M6Ok5vKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAg
ICAgICAgIGlmIChtZXRhZGF0YS5pc0hpZGRlbikKQEAgLTgwLDcgKzgwLDcgQEAgUmVmPEZpbGVM
aXN0PiBGaWxlTGlzdENyZWF0b3I6OmNyZWF0ZUZpbGVMaXN0KGNvbnN0IFZlY3RvcjxGaWxlQ2hv
b3NlckZpbGVJbmZvPiYKIHsKICAgICBWZWN0b3I8UmVmUHRyPEZpbGU+PiBmaWxlT2JqZWN0czsK
ICAgICBmb3IgKGF1dG8mIGluZm8gOiBwYXRocykgewotICAgICAgICBpZiAoc2hvdWxkUmVzb2x2
ZURpcmVjdG9yaWVzID09IFNob3VsZFJlc29sdmVEaXJlY3Rvcmllczo6WWVzICYmIGZpbGVJc0Rp
cmVjdG9yeShpbmZvLnBhdGgpKQorICAgICAgICBpZiAoc2hvdWxkUmVzb2x2ZURpcmVjdG9yaWVz
ID09IFNob3VsZFJlc29sdmVEaXJlY3Rvcmllczo6WWVzICYmIGZpbGVJc0RpcmVjdG9yeShpbmZv
LnBhdGgsIFNob3VsZEZvbGxvd1N5bWJvbGljTGlua3M6Ok5vKSkKICAgICAgICAgICAgIGFwcGVu
ZERpcmVjdG9yeUZpbGVzKGluZm8ucGF0aCwgcGF0aEdldEZpbGVOYW1lKGluZm8ucGF0aCksIGZp
bGVPYmplY3RzKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgZmlsZU9iamVjdHMuYXBwZW5k
KEZpbGU6OmNyZWF0ZVdpdGhOYW1lKGluZm8ucGF0aCwgaW5mby5kaXNwbGF5TmFtZSkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmNwcAppbmRleCA0YWJkMzQzYTgxYTM4Mzg4OWY1
ZDIzNDc5NDkwMTE4NzJhMzRmZjg5Li5kNTdhMGJkN2UyMmQ2ODY2M2E0ZmFjYWIwZmMwOWE0N2Y0
NDIwMjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmNwcApAQCAtMzUxLDEw
ICszNTEsMTAgQEAgdm9pZCB1bmxvY2tBbmRDbG9zZUZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlIGhh
bmRsZSkKICAgICBjbG9zZUZpbGUoaGFuZGxlKTsKIH0KIAotYm9vbCBmaWxlSXNEaXJlY3Rvcnko
Y29uc3QgU3RyaW5nJiBwYXRoKQorYm9vbCBmaWxlSXNEaXJlY3RvcnkoY29uc3QgU3RyaW5nJiBw
YXRoLCBTaG91bGRGb2xsb3dTeW1ib2xpY0xpbmtzIHNob3VsZEZvbGxvd1N5bWJvbGljTGlua3Mp
CiB7CiAgICAgRmlsZU1ldGFkYXRhIG1ldGFkYXRhOwotICAgIGlmICghZ2V0RmlsZU1ldGFkYXRh
KHBhdGgsIG1ldGFkYXRhKSkKKyAgICBpZiAoIWdldEZpbGVNZXRhZGF0YShwYXRoLCBtZXRhZGF0
YSwgc2hvdWxkRm9sbG93U3ltYm9saWNMaW5rcykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICByZXR1cm4gbWV0YWRhdGEudHlwZSA9PSBGaWxlTWV0YWRhdGE6OlR5cGVEaXJlY3Rvcnk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmgKaW5kZXggNTllMTMzZWU2YTNlMTgwNTcw
MGFmOGEyMDQ2MjE5OGIxNGI1ZWU5My4uMTU5ZjFjYmQ1YzlhN2QwNzQxNmZlYjQ4ODNmMWQ5NDc0
Yzg5MDZiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uaApAQCAtODgsNiArODgs
OCBAQCBlbnVtIEZpbGVMb2NrTW9kZSB7CiAgICAgTG9ja05vbkJsb2NraW5nID0gNAogfTsKIAor
ZW51bSBjbGFzcyBTaG91bGRGb2xsb3dTeW1ib2xpY0xpbmtzIHsgTm8sIFllcyB9OworCiBzdHJ1
Y3QgRmlsZU1ldGFkYXRhOwogCiBXRUJDT1JFX0VYUE9SVCBib29sIGZpbGVFeGlzdHMoY29uc3Qg
U3RyaW5nJik7CkBAIC05OCw4ICsxMDAsOCBAQCBXRUJDT1JFX0VYUE9SVCBib29sIGdldEZpbGVT
aXplKGNvbnN0IFN0cmluZyYsIGxvbmcgbG9uZyYgcmVzdWx0KTsKIFdFQkNPUkVfRVhQT1JUIGJv
b2wgZ2V0RmlsZVNpemUoUGxhdGZvcm1GaWxlSGFuZGxlLCBsb25nIGxvbmcmIHJlc3VsdCk7CiBX
RUJDT1JFX0VYUE9SVCBib29sIGdldEZpbGVNb2RpZmljYXRpb25UaW1lKGNvbnN0IFN0cmluZyYs
IHRpbWVfdCYgcmVzdWx0KTsKIFdFQkNPUkVfRVhQT1JUIGJvb2wgZ2V0RmlsZUNyZWF0aW9uVGlt
ZShjb25zdCBTdHJpbmcmLCB0aW1lX3QmIHJlc3VsdCk7IC8vIE5vdCBhbGwgcGxhdGZvcm1zIHN0
b3JlIGZpbGUgY3JlYXRpb24gdGltZS4KLWJvb2wgZ2V0RmlsZU1ldGFkYXRhKGNvbnN0IFN0cmlu
ZyYsIEZpbGVNZXRhZGF0YSYpOwotYm9vbCBmaWxlSXNEaXJlY3RvcnkoY29uc3QgU3RyaW5nJik7
CitXRUJDT1JFX0VYUE9SVCBib29sIGdldEZpbGVNZXRhZGF0YShjb25zdCBTdHJpbmcmLCBGaWxl
TWV0YWRhdGEmLCBTaG91bGRGb2xsb3dTeW1ib2xpY0xpbmtzKTsKK2Jvb2wgZmlsZUlzRGlyZWN0
b3J5KGNvbnN0IFN0cmluZyYsIFNob3VsZEZvbGxvd1N5bWJvbGljTGlua3MpOwogV0VCQ09SRV9F
WFBPUlQgU3RyaW5nIHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChjb25zdCBTdHJpbmcmIHBhdGgs
IGNvbnN0IFN0cmluZyYgY29tcG9uZW50KTsKIFN0cmluZyBwYXRoQnlBcHBlbmRpbmdDb21wb25l
bnRzKGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGNvbXBvbmVudHMp
OwogU3RyaW5nIGxhc3RDb21wb25lbnRPZlBhdGhJZ25vcmluZ1RyYWlsaW5nU2xhc2goY29uc3Qg
U3RyaW5nJiBwYXRoKTsKQEAgLTEwOSw2ICsxMTEsNyBAQCBXRUJDT1JFX0VYUE9SVCBTdHJpbmcg
cGF0aEdldEZpbGVOYW1lKGNvbnN0IFN0cmluZyYpOwogV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGRp
cmVjdG9yeU5hbWUoY29uc3QgU3RyaW5nJik7CiBXRUJDT1JFX0VYUE9SVCBib29sIGdldFZvbHVt
ZUZyZWVTcGFjZShjb25zdCBTdHJpbmcmLCB1aW50NjRfdCYpOwogV0VCQ09SRV9FWFBPUlQgc3Rk
OjpvcHRpb25hbDxpbnQzMl90PiBnZXRGaWxlRGV2aWNlSWQoY29uc3QgQ1N0cmluZyYpOworV0VC
Q09SRV9FWFBPUlQgYm9vbCBjcmVhdGVTeW1ib2xpY0xpbmsoY29uc3QgU3RyaW5nJiB0YXJnZXRQ
YXRoLCBjb25zdCBTdHJpbmcmIHN5bWJvbGljTGlua1BhdGgpOwogCiBXRUJDT1JFX0VYUE9SVCB2
b2lkIHNldE1ldGFkYXRhVVJMKGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU3RyaW5nJiB1cmxT
dHJpbmcsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIgPSB7IH0pOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dsaWIvRmlsZVN5c3RlbUdsaWIuY3BwCmluZGV4IGUzYzVkNjNlODQ4MGRh
NDgxOTU4MDlkNWEyZjZkMjE1NTk4OWUyYzMuLjc3YjA1NTliMjk3NDM5ZDA2MjI4ODg4NGI2OWQ5
Mjg2Y2JjYjgyMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvRmls
ZVN5c3RlbUdsaWIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvRmlsZVN5
c3RlbUdsaWIuY3BwCkBAIC0xMjMsNiArMTIzLDE1IEBAIHN0YXRpYyBib29sIGdldEZpbGVTdGF0
KGNvbnN0IFN0cmluZyYgcGF0aCwgR1N0YXRCdWYqIHN0YXRCdWZmZXIpCiAgICAgcmV0dXJuIGdf
c3RhdChmaWxlbmFtZS5nZXQoKSwgc3RhdEJ1ZmZlcikgIT0gLTE7CiB9CiAKK3N0YXRpYyBib29s
IGdldEZpbGVMU3RhdChjb25zdCBTdHJpbmcmIHBhdGgsIEdTdGF0QnVmKiBzdGF0QnVmZmVyKQor
eworICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGZpbGVuYW1lID0gdW5lc2NhcGVkRmlsZW5hbWUocGF0
aCk7CisgICAgaWYgKCFmaWxlbmFtZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0
dXJuIGdfbHN0YXQoZmlsZW5hbWUuZ2V0KCksIHN0YXRCdWZmZXIpICE9IC0xOworfQorCiBib29s
IGdldEZpbGVTaXplKGNvbnN0IFN0cmluZyYgcGF0aCwgbG9uZyBsb25nJiByZXN1bHRTaXplKQog
ewogICAgIEdTdGF0QnVmIHN0YXRSZXN1bHQ7CkBAIC0xNTUsMTEgKzE2NCwxNyBAQCBib29sIGdl
dEZpbGVNb2RpZmljYXRpb25UaW1lKGNvbnN0IFN0cmluZyYgcGF0aCwgdGltZV90JiBtb2RpZmll
ZFRpbWUpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgZ2V0RmlsZU1ldGFkYXRhKGNvbnN0
IFN0cmluZyYgcGF0aCwgRmlsZU1ldGFkYXRhJiBtZXRhZGF0YSkKK2Jvb2wgZ2V0RmlsZU1ldGFk
YXRhKGNvbnN0IFN0cmluZyYgcGF0aCwgRmlsZU1ldGFkYXRhJiBtZXRhZGF0YSwgU2hvdWxkRm9s
bG93U3ltYm9saWNMaW5rcyBzaG91bGRGb2xsb3dTeW1ib2xpY0xpbmtzKQogewogICAgIEdTdGF0
QnVmIHN0YXRSZXN1bHQ7Ci0gICAgaWYgKCFnZXRGaWxlU3RhdChwYXRoLCAmc3RhdFJlc3VsdCkp
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmIChzaG91bGRGb2xsb3dTeW1ib2xpY0xp
bmtzID09IFNob3VsZEZvbGxvd1N5bWJvbGljTGlua3M6OlllcykgeworICAgICAgICBpZiAoIWdl
dEZpbGVTdGF0KHBhdGgsICZzdGF0UmVzdWx0KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICB9IGVsc2UgeworICAgICAgICBpZiAoIWdldEZpbGVMU3RhdChwYXRoLCAmc3RhdFJlc3Vs
dCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQogCiAgICAgU3RyaW5nIGZpbGVu
YW1lID0gcGF0aEdldEZpbGVOYW1lKHBhdGgpOwogICAgIG1ldGFkYXRhLmlzSGlkZGVuID0gIWZp
bGVuYW1lLmlzRW1wdHkoKSAmJiBmaWxlbmFtZVswXSA9PSAnLic7CkBAIC0yMDMsNiArMjE4LDE5
IEBAIFN0cmluZyBob21lRGlyZWN0b3J5UGF0aCgpCiAgICAgcmV0dXJuIHN0cmluZ0Zyb21GaWxl
U3lzdGVtUmVwcmVzZW50YXRpb24oZ19nZXRfaG9tZV9kaXIoKSk7CiB9CiAKK2Jvb2wgY3JlYXRl
U3ltYm9saWNMaW5rKGNvbnN0IFN0cmluZyYgdGFyZ2V0UGF0aCwgY29uc3QgU3RyaW5nJiBzeW1i
b2xpY0xpbmtQYXRoKQoreworICAgIENTdHJpbmcgdGFyZ2V0UGF0aEZTUmVwID0gZmlsZVN5c3Rl
bVJlcHJlc2VudGF0aW9uKHRhcmdldFBhdGgpOworICAgIGlmICghdGFyZ2V0UGF0aEZTUmVwLmRh
dGEoKSB8fCB0YXJnZXRQYXRoRlNSZXAuZGF0YSgpWzBdID09ICdcMCcpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIENTdHJpbmcgc3ltYm9saWNMaW5rUGF0aEZTUmVwID0gZmlsZVN5c3Rl
bVJlcHJlc2VudGF0aW9uKHN5bWJvbGljTGlua1BhdGgpOworICAgIGlmICghc3ltYm9saWNMaW5r
UGF0aEZTUmVwLmRhdGEoKSB8fCBzeW1ib2xpY0xpbmtQYXRoRlNSZXAuZGF0YSgpWzBdID09ICdc
MCcpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiAhc3ltbGluayh0YXJnZXRQ
YXRoRlNSZXAuZGF0YSgpLCBzeW1ib2xpY0xpbmtQYXRoRlNSZXAuZGF0YSgpKTsKK30KKwogU3Ry
aW5nIHBhdGhHZXRGaWxlTmFtZShjb25zdCBTdHJpbmcmIHBhdGhOYW1lKQogewogICAgIEdVbmlx
dWVQdHI8Z2NoYXI+IHRtcEZpbGVuYW1lID0gdW5lc2NhcGVkRmlsZW5hbWUocGF0aE5hbWUpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iRGF0YUZpbGVS
ZWZlcmVuY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iRGF0YUZp
bGVSZWZlcmVuY2UuY3BwCmluZGV4IDFmOGNlMGI2MzhmZjEyMmE0NzgyMzI5NGE5ODI0Y2NhMTc3
ZjZkN2QuLjZkYzZkNjRhZTg3MTg1ZDBmMWNkMWVhODc3NjgwOGRhM2M2NTVkN2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYkRhdGFGaWxlUmVmZXJlbmNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JEYXRhRmlsZVJl
ZmVyZW5jZS5jcHAKQEAgLTk2LDcgKzk2LDcgQEAgdm9pZCBCbG9iRGF0YUZpbGVSZWZlcmVuY2U6
OnN0YXJ0VHJhY2tpbmdNb2RpZmljYXRpb25zKCkKIAogICAgIC8vIEZJWE1FOiBTb21lIHBsYXRm
b3JtcyBwcm92aWRlIGJldHRlciB3YXlzIHRvIGxpc3RlbiBmb3IgZmlsZSBzeXN0ZW0gb2JqZWN0
IGNoYW5nZXMsIGNvbnNpZGVyIHVzaW5nIHRoZXNlLgogICAgIEZpbGVNZXRhZGF0YSBtZXRhZGF0
YTsKLSAgICBpZiAoIWdldEZpbGVNZXRhZGF0YShtX3BhdGgsIG1ldGFkYXRhKSkKKyAgICBpZiAo
IWdldEZpbGVNZXRhZGF0YShtX3BhdGgsIG1ldGFkYXRhLCBTaG91bGRGb2xsb3dTeW1ib2xpY0xp
bmtzOjpZZXMpKQogICAgICAgICByZXR1cm47CiAKICAgICBtX2V4cGVjdGVkTW9kaWZpY2F0aW9u
VGltZSA9IG1ldGFkYXRhLm1vZGlmaWNhdGlvblRpbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9CbG9iRGF0YUZpbGVSZWZlcmVuY2VNYWMubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9CbG9iRGF0YUZpbGVSZWZlcmVuY2VN
YWMubW0KaW5kZXggMzJlOTU0NTg3YjkxMDNhZjNjMDI3MTNhZGI5OWYyZmYzOWIzY2Y2Yi4uOGRh
Y2U3YTdlMDI2YTdiZDI1YjllM2MyODcxOThhZmFiN2MwYjYzNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvQmxvYkRhdGFGaWxlUmVmZXJlbmNlTWFjLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL0Jsb2JEYXRhRmlsZVJl
ZmVyZW5jZU1hYy5tbQpAQCAtODAsNyArODAsNyBAQCB2b2lkIEJsb2JEYXRhRmlsZVJlZmVyZW5j
ZTo6Z2VuZXJhdGVSZXBsYWNlbWVudEZpbGUoKQogICAgIG1fcmVwbGFjZW1lbnRTaG91bGRCZUdl
bmVyYXRlZCA9IGZhbHNlOwogICAgIGlmICghbV9yZXBsYWNlbWVudFBhdGguaXNOdWxsKCkpIHsK
ICAgICAgICAgRmlsZU1ldGFkYXRhIG1ldGFkYXRhOwotICAgICAgICBpZiAoZ2V0RmlsZU1ldGFk
YXRhKG1fcmVwbGFjZW1lbnRQYXRoLCBtZXRhZGF0YSkpCisgICAgICAgIGlmIChnZXRGaWxlTWV0
YWRhdGEobV9yZXBsYWNlbWVudFBhdGgsIG1ldGFkYXRhLCBTaG91bGRGb2xsb3dTeW1ib2xpY0xp
bmtzOjpZZXMpKQogICAgICAgICAgICAgbV9zaXplID0gbWV0YWRhdGEubGVuZ3RoOwogICAgIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcG9zaXgvRmlsZVN5c3RlbVBP
U0lYLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJWC5j
cHAKaW5kZXggZWExNzZkZDA0ZWQzZTAwMjA1OGI4ZTYwMjg0NjNlYTFjMjgwMzU4YS4uZjRhYzFk
MDdlNzg5MDVjNDc1NDBkMTFiZDgwNjk4ZDNjMDM5N2Y5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vcG9zaXgvRmlsZVN5c3RlbVBPU0lYLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9wb3NpeC9GaWxlU3lzdGVtUE9TSVguY3BwCkBAIC0yMzksNyArMjM5LDcg
QEAgYm9vbCBnZXRGaWxlTW9kaWZpY2F0aW9uVGltZShjb25zdCBTdHJpbmcmIHBhdGgsIHRpbWVf
dCYgcmVzdWx0KQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIGdldEZpbGVNZXRhZGF0YShj
b25zdCBTdHJpbmcmIHBhdGgsIEZpbGVNZXRhZGF0YSYgbWV0YWRhdGEpCitib29sIGdldEZpbGVN
ZXRhZGF0YShjb25zdCBTdHJpbmcmIHBhdGgsIEZpbGVNZXRhZGF0YSYgbWV0YWRhdGEsIFNob3Vs
ZEZvbGxvd1N5bWJvbGljTGlua3Mgc2hvdWxkRm9sbG93U3ltYm9saWNMaW5rcykKIHsKICAgICBD
U3RyaW5nIGZzUmVwID0gZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHBhdGgpOwogCkBAIC0yNDcs
OCArMjQ3LDE0IEBAIGJvb2wgZ2V0RmlsZU1ldGFkYXRhKGNvbnN0IFN0cmluZyYgcGF0aCwgRmls
ZU1ldGFkYXRhJiBtZXRhZGF0YSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgc3RydWN0
IHN0YXQgZmlsZUluZm87Ci0gICAgaWYgKHN0YXQoZnNSZXAuZGF0YSgpLCAmZmlsZUluZm8pKQot
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoc2hvdWxkRm9sbG93U3ltYm9saWNMaW5r
cyA9PSBTaG91bGRGb2xsb3dTeW1ib2xpY0xpbmtzOjpZZXMpIHsKKyAgICAgICAgaWYgKHN0YXQo
ZnNSZXAuZGF0YSgpLCAmZmlsZUluZm8pKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IH0gZWxzZSB7CisgICAgICAgIGlmIChsc3RhdChmc1JlcC5kYXRhKCksICZmaWxlSW5mbykpCisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQogCiAgICAgU3RyaW5nIGZpbGVuYW1lID0g
cGF0aEdldEZpbGVOYW1lKHBhdGgpOwogCkBAIC0yNjQsNiArMjcwLDE5IEBAIGJvb2wgZ2V0Rmls
ZU1ldGFkYXRhKGNvbnN0IFN0cmluZyYgcGF0aCwgRmlsZU1ldGFkYXRhJiBtZXRhZGF0YSkKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBjcmVhdGVTeW1ib2xpY0xpbmsoY29uc3QgU3RyaW5n
JiB0YXJnZXRQYXRoLCBjb25zdCBTdHJpbmcmIHN5bWJvbGljTGlua1BhdGgpCit7CisgICAgQ1N0
cmluZyB0YXJnZXRQYXRoRlNSZXAgPSBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24odGFyZ2V0UGF0
aCk7CisgICAgaWYgKCF0YXJnZXRQYXRoRlNSZXAuZGF0YSgpIHx8IHRhcmdldFBhdGhGU1JlcC5k
YXRhKClbMF0gPT0gJ1wwJykKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgQ1N0cmluZyBz
eW1ib2xpY0xpbmtQYXRoRlNSZXAgPSBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oc3ltYm9saWNM
aW5rUGF0aCk7CisgICAgaWYgKCFzeW1ib2xpY0xpbmtQYXRoRlNSZXAuZGF0YSgpIHx8IHN5bWJv
bGljTGlua1BhdGhGU1JlcC5kYXRhKClbMF0gPT0gJ1wwJykKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgcmV0dXJuICFzeW1saW5rKHRhcmdldFBhdGhGU1JlcC5kYXRhKCksIHN5bWJvbGlj
TGlua1BhdGhGU1JlcC5kYXRhKCkpOworfQorCiBTdHJpbmcgcGF0aEJ5QXBwZW5kaW5nQ29tcG9u
ZW50KGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU3RyaW5nJiBjb21wb25lbnQpCiB7CiAgICAg
aWYgKHBhdGguZW5kc1dpdGgoJy8nKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3dpbi9GaWxlU3lzdGVtV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9G
aWxlU3lzdGVtV2luLmNwcAppbmRleCA4NzgyZDcwMGRlYjY2ODUxMWQ3MzVkMzBjMjg4NjBhMDY1
ZmNkMDVmLi4zNWNkNmNhYTI0OTA2YzFhMTFjMGNkOGJlMzcwYTllM2VkNWU3OTNkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vRmlsZVN5c3RlbVdpbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0ZpbGVTeXN0ZW1XaW4uY3BwCkBAIC0xNDEsMTIg
KzE0MSwzOSBAQCBib29sIGdldEZpbGVDcmVhdGlvblRpbWUoY29uc3QgU3RyaW5nJiBwYXRoLCB0
aW1lX3QmIHRpbWUpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgZ2V0RmlsZU1ldGFkYXRh
KGNvbnN0IFN0cmluZyYgcGF0aCwgRmlsZU1ldGFkYXRhJiBtZXRhZGF0YSkKK3N0YXRpYyBTdHJp
bmcgZ2V0RmluYWxQYXRoTmFtZShjb25zdCBTdHJpbmcmIHBhdGgpCit7CisgICAgYXV0byBoYW5k
bGUgPSBvcGVuRmlsZShwYXRoLCBPcGVuRm9yUmVhZCk7CisgICAgaWYgKCFpc0hhbmRsZVZhbGlk
KGhhbmRsZSkpCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKworICAgIFN0cmluZ1ZlY3RvcjxV
Q2hhcj4gYnVmZmVyKE1BWF9QQVRIKTsKKyAgICBpZiAoOjpHZXRGaW5hbFBhdGhOYW1lQnlIYW5k
bGVXKGhhbmRsZSwgYnVmZmVyLmRhdGEoKSwgYnVmZmVyLnNpemUoKSwgVk9MVU1FX05BTUVfTlQp
ID49IE1BWF9QQVRIKSB7CisgICAgICAgIGNsb3NlRmlsZShoYW5kbGUpOworICAgICAgICByZXR1
cm4gU3RyaW5nKCk7CisgICAgfQorICAgIGNsb3NlRmlsZShoYW5kbGUpOworCisgICAgYnVmZmVy
LnNocmluayh3Y3NsZW4oYnVmZmVyLmRhdGEoKSkpOworICAgIHJldHVybiBTdHJpbmc6OmFkb3B0
KFdURk1vdmUoYnVmZmVyKSk7Cit9CisKK2Jvb2wgZ2V0RmlsZU1ldGFkYXRhKGNvbnN0IFN0cmlu
ZyYgcGF0aCwgRmlsZU1ldGFkYXRhJiBtZXRhZGF0YSwgU2hvdWxkRm9sbG93U3ltYm9saWNMaW5r
cyBzaG91bGRGb2xsb3dTeW1ib2xpY0xpbmtzKQogewogICAgIFdJTjMyX0ZJTkRfREFUQVcgZmlu
ZERhdGE7CiAgICAgaWYgKCFnZXRGaW5kRGF0YShwYXRoLCBmaW5kRGF0YSkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAorICAgIGJvb2wgaXNTeW1ib2xpY0xpbmsgPSBmaW5kRGF0YS5kd0ZpbGVB
dHRyaWJ1dGVzICYgRklMRV9BVFRSSUJVVEVfUkVQQVJTRV9QT0lOVCAmJiBmaW5kRGF0YS5kd1Jl
c2VydmVkMCA9PSBJT19SRVBBUlNFX1RBR19TWU1MSU5LOworICAgIGlmIChpc1N5bWJvbGljTGlu
ayAmJiBzaG91bGRGb2xsb3dTeW1ib2xpY0xpbmtzID09IFNob3VsZEZvbGxvd1N5bWJvbGljTGlu
a3M6OlllcykgeworICAgICAgICBTdHJpbmcgdGFyZ2V0UGF0aCA9IGdldEZpbmFsUGF0aE5hbWUo
cGF0aCk7CisgICAgICAgIGlmICh0YXJnZXRQYXRoLmlzTnVsbCgpKQorICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgICAgICBpZiAoIWdldEZpbmREYXRhKHRhcmdldFBhdGgsIGZpbmREYXRh
KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaXNTeW1ib2xpY0xpbmsgPSBm
YWxzZTsKKyAgICB9CisKICAgICBpZiAoIWdldEZpbGVTaXplRnJvbUZpbmREYXRhKGZpbmREYXRh
LCBtZXRhZGF0YS5sZW5ndGgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKQEAgLTE1NCwxMSAr
MTgxLDIxIEBAIGJvb2wgZ2V0RmlsZU1ldGFkYXRhKGNvbnN0IFN0cmluZyYgcGF0aCwgRmlsZU1l
dGFkYXRhJiBtZXRhZGF0YSkKICAgICBnZXRGaWxlTW9kaWZpY2F0aW9uVGltZUZyb21GaW5kRGF0
YShmaW5kRGF0YSwgbW9kaWZpY2F0aW9uVGltZSk7CiAgICAgbWV0YWRhdGEubW9kaWZpY2F0aW9u
VGltZSA9IG1vZGlmaWNhdGlvblRpbWU7CiAgICAgbWV0YWRhdGEuaXNIaWRkZW4gPSBmaW5kRGF0
YS5kd0ZpbGVBdHRyaWJ1dGVzICYgRklMRV9BVFRSSUJVVEVfSElEREVOOwotICAgIG1ldGFkYXRh
LnR5cGUgPSAoZmluZERhdGEuZHdGaWxlQXR0cmlidXRlcyAmIEZJTEVfQVRUUklCVVRFX0RJUkVD
VE9SWSkgPyBGaWxlTWV0YWRhdGE6OlR5cGVEaXJlY3RvcnkgOiBGaWxlTWV0YWRhdGE6OlR5cGVG
aWxlOworICAgIGlmIChmaW5kRGF0YS5kd0ZpbGVBdHRyaWJ1dGVzICYgRklMRV9BVFRSSUJVVEVf
RElSRUNUT1JZKQorICAgICAgICBtZXRhZGF0YS50eXBlID0gRmlsZU1ldGFkYXRhOjpUeXBlRGly
ZWN0b3J5OworICAgIGVsc2UgaWYgKGlzU3ltYm9saWNMaW5rKQorICAgICAgICBtZXRhZGF0YS50
eXBlID0gRmlsZU1ldGFkYXRhOjpUeXBlU3ltYm9saWNMaW5rOworICAgIGVsc2UKKyAgICAgICAg
bWV0YWRhdGEudHlwZSA9IEZpbGVNZXRhZGF0YTo6VHlwZUZpbGU7CiAKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAorYm9vbCBjcmVhdGVTeW1ib2xpY0xpbmsoY29uc3QgU3RyaW5nJiB0YXJnZXRQYXRo
LCBjb25zdCBTdHJpbmcmIHN5bWJvbGljTGlua1BhdGgpCit7CisgICAgcmV0dXJuICE6OkNyZWF0
ZVN5bWJvbGljTGlua1coc3ltYm9saWNMaW5rUGF0aC5jaGFyYWN0ZXJzV2l0aE51bGxUZXJtaW5h
dGlvbigpLmRhdGEoKSwgdGFyZ2V0UGF0aC5jaGFyYWN0ZXJzV2l0aE51bGxUZXJtaW5hdGlvbigp
LmRhdGEoKSwgMCk7Cit9CisKIGJvb2wgZmlsZUV4aXN0cyhjb25zdCBTdHJpbmcmIHBhdGgpCiB7
CiAgICAgV0lOMzJfRklORF9EQVRBVyBmaW5kRGF0YTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5n
ZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA2MWM5MTgxMWNkZjRlZjViNjBmYmFlZWY4ZjAx
MDk2OTE3NmRjODBhLi5mNDQxZWIxMTI0ODU5ODMwNWNkY2ZhMDljY2M0MzU1MTYxM2VmMDVhIDEw
MDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTUgQEAKKzIwMTctMDgtMzAgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwor
ICAgICAgICBnZXRGaWxlTWV0YWRhdGEoKSBkb2VzIG5vdCB3b3JrIGFzIGV4cGVjdGVkIGZvciBz
eW1ib2xpYyBsaW5rcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTc2MTQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkIEFQSSB0ZXN0IGNvdmVyYWdlLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL0ZpbGVTeXN0ZW0uY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVT
VF9GKToKKwogMjAxNy0wOC0zMCAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAg
ICAgICAgIFJlbmFtZSBBcnJheUxhbmcgdG8gV2ViR1BVIFNoYWRpbmcgTGFuZ3VhZ2UsIG9yIFdT
TCBmb3Igc2hvcnQsIHByb25vdW5jZWQgIndoaXN0bGUiCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZVN5c3RlbS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZVN5c3RlbS5jcHAKaW5kZXggOGE0YTc4YzY1M2E3YmMzOWQz
MmRlOTJhYTY1YzQ5MGY0MzY4OTFmNC4uYmEyYjU1OTM1MDU2ZWQ5Yjk4ZDgwZWQ0YTYwYjgxYTE1
Zjc0ZGEzMiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0Zp
bGVTeXN0ZW0uY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxl
U3lzdGVtLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaW5j
bHVkZSAiVGVzdC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRmlsZU1ldGFkYXRhLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNp
bmNsdWRlIDx3dGYvU3RyaW5nRXh0cmFzLmg+CkBAIC0xMTksNCArMTIwLDIwIEBAIFRFU1RfRihG
aWxlU3lzdGVtVGVzdCwgRmlsZXNIYXZlU2FtZVZvbHVtZSkKICAgICBFWFBFQ1RfVFJVRShmaWxl
c0hhdmVTYW1lVm9sdW1lKGJhbmdDb250YWluaW5nRmlsZVBhdGgoKSwgcXVvdGVDb250YWluaW5n
RmlsZVBhdGgoKSkpOwogfQogCitURVNUX0YoRmlsZVN5c3RlbVRlc3QsIEdldEZpbGVNZXRhZGF0
YVN5bWxpbmspCit7CisgICAgU3RyaW5nIHN5bWxpbmtQYXRoID0gdGVtcEZpbGVQYXRoKCkgKyAi
LXN5bWxpbmsiOworICAgIEVYUEVDVF9UUlVFKGNyZWF0ZVN5bWJvbGljTGluayh0ZW1wRmlsZVBh
dGgoKSwgc3ltbGlua1BhdGgpKTsKKworICAgIEZpbGVNZXRhZGF0YSBzeW1saW5rTWV0YWRhdGE7
CisgICAgRVhQRUNUX1RSVUUoZ2V0RmlsZU1ldGFkYXRhKHN5bWxpbmtQYXRoLCBzeW1saW5rTWV0
YWRhdGEsIFNob3VsZEZvbGxvd1N5bWJvbGljTGlua3M6Ok5vKSk7CisgICAgRVhQRUNUX1RSVUUo
c3ltbGlua01ldGFkYXRhLnR5cGUgPT0gRmlsZU1ldGFkYXRhOjpUeXBlU3ltYm9saWNMaW5rKTsK
KyAgICBFWFBFQ1RfRkFMU0Uoc3RhdGljX2Nhc3Q8c2l6ZV90PihzeW1saW5rTWV0YWRhdGEubGVu
Z3RoKSA9PSBzdHJsZW4oRmlsZVN5c3RlbVRlc3REYXRhKSk7CisKKyAgICBGaWxlTWV0YWRhdGEg
dGFyZ2V0TWV0YWRhdGE7CisgICAgRVhQRUNUX1RSVUUoZ2V0RmlsZU1ldGFkYXRhKHN5bWxpbmtQ
YXRoLCB0YXJnZXRNZXRhZGF0YSwgU2hvdWxkRm9sbG93U3ltYm9saWNMaW5rczo6WWVzKSk7Cisg
ICAgRVhQRUNUX1RSVUUodGFyZ2V0TWV0YWRhdGEudHlwZSA9PSBGaWxlTWV0YWRhdGE6OlR5cGVG
aWxlKTsKKyAgICBFWFBFQ1RfRVEoc3RybGVuKEZpbGVTeXN0ZW1UZXN0RGF0YSksIHN0YXRpY19j
YXN0PHNpemVfdD4odGFyZ2V0TWV0YWRhdGEubGVuZ3RoKSk7Cit9CisKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319466</attachid>
            <date>2017-08-31 09:08:22 -0700</date>
            <delta_ts>2017-08-31 09:54:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176143-20170831090821.patch</filename>
            <type>text/plain</type>
            <size>21137</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxMzk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjNkY2I2NGNmOTRlZDdj
NTgxOWE0NzRjNmE4ZTBhNWVkYzVkY2Y5NS4uZGUwOTUyZDlkMzUxOTUwOGViYjJhNjUzYzMzZjFi
NWQ2ZWVlMGY5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU5IEBACiAyMDE3LTA4LTMwICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAgZ2V0RmlsZU1ldGFkYXRhKCkg
ZG9lcyBub3Qgd29yayBhcyBleHBlY3RlZCBmb3Igc3ltYm9saWMgbGlua3MKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjE0MworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGdldEZpbGVNZXRhZGF0YSgpIGRv
ZXMgbm90IHdvcmsgYXMgZXhwZWN0ZWQgZm9yIHN5bWJvbGljIGxpbmtzOgorICAgICAgICBPbiBQ
T1NJWCwgZ2V0RmlsZU1ldGFkYXRhKCkgYWx3YXlzIGZvbGxvd2VkIHN5bWxpbmtzLCB3aGljaCBt
ZWFudCB0aGF0IEZpbGVNZXRhZGF0YS50eXBlIGNvdWxkCisgICAgICAgIG5ldmVyIGJlIFR5cGVT
eW1ib2xpY0xpbmsuIE9uIFdpbmRvd3MsIHRoZSBmdW5jdGlvbiBwcm9wZXJseSBkaWQgbm90IGZv
bGxvdyBzeW1saW5rcyBidXQgZmFpbGVkIHRvIHNldAorICAgICAgICBGaWxlTWV0YWRhdGEudHlw
ZSB0byBUeXBlU3ltYm9saWNMaW5rIHdoZW4gdGhlIGZpbGUgd2FzIGEgc3ltYm9saWMgbGluay4K
KworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgYSBuZXcgU2hvdWxkRm9sbG93U3ltYm9saWNMaW5r
cyBwYXJhbWV0ZXIgdG8gZ2V0RmlsZU1ldGFkYXRhKCkgc28gdGhhdAorICAgICAgICB0aGUgY2Fs
bCBzaXRlIGNhbiBkZWNpZGUgdGhlIGJlaGF2aW9yIGl0IHdhbnRzLiBJZiBnZXRGaWxlTWV0YWRh
dGEoKSBpcyBjYWxsZWQgb24gYQorICAgICAgICBzeW1ib2xpYyBsaW5rIHdpdGggU2hvdWxkRm9s
bG93U3ltYm9saWNMaW5rczo6Tm8gYXMgcGFyYW1ldGVyLCBGaWxlTWV0YWRhdGEudHlwZSBpcyBu
b3cKKyAgICAgICAgcHJvcGVybHkgc2V0IHRvIFR5cGVTeW1ib2xpY0xpbmsuCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzLCBjb3ZlcmVkIGJ5IG5ldyBBUEkgdGVzdC4KKworICAgICAgICAqIE1vZHVs
ZXMvZW50cmllc2FwaS9ET01GaWxlU3lzdGVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Omxpc3RE
aXJlY3RvcnlXaXRoTWV0YWRhdGEpOgorICAgICAgICBJdCBpcyBpbXBvcnRhbnQgd2UgZG8gbm90
IGZvbGxvdyBzeW1saW5rcyBoZXJlIHNpbmNlIHRoZSBjb2RlIHdhbnRzIHRvIGRpc2NhcmQgdGhl
bQorICAgICAgICBhbmQgZG9lcyBzbyBieSBjaGVja2luZyBGaWxlTWV0YWRhdGEudHlwZS4KKwor
ICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBm
aWxlYXBpL0ZpbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZTo6aXNEaXJlY3RvcnkgY29u
c3QpOgorCisgICAgICAgICogaHRtbC9GaWxlTGlzdENyZWF0b3IuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6YXBwZW5kRGlyZWN0b3J5RmlsZXMpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZUxpc3RD
cmVhdG9yOjpjcmVhdGVGaWxlTGlzdCk6CisgICAgICAgIEl0IGlzIGltcG9ydGFudCB3ZSBkbyBu
b3QgZm9sbG93IHN5bWxpbmtzIGhlcmUgc2luY2UgdGhlIGNvZGUgd2FudHMgdG8gZGlzY2FyZCB0
aGVtCisgICAgICAgIGFuZCBkb2VzIHNvIGJ5IGNoZWNraW5nIEZpbGVNZXRhZGF0YS50eXBlLgor
CisgICAgICAgICogcGxhdGZvcm0vRmlsZVN5c3RlbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpm
aWxlSXNEaXJlY3RvcnkpOgorICAgICAgICAqIHBsYXRmb3JtL0ZpbGVTeXN0ZW0uaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmdldEZpbGVMU3RhdCk6CisgICAgICAgIChXZWJDb3JlOjpnZXRGaWxlTWV0YWRhdGEpOgorICAg
ICAgICAqIHBsYXRmb3JtL3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJWC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpnZXRGaWxlTWV0YWRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlU3ltYm9saWNM
aW5rKToKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vRmlsZVN5c3RlbVdpbi5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpnZXRGaW5hbFBhdGhOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OmdldEZpbGVN
ZXRhZGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVTeW1ib2xpY0xpbmspOgorICAgICAg
ICAtIEFkZCBuZXcgY3JlYXRlU3ltYm9saWNMaW5rKCkgZnVuY3Rpb24gZm9yIHRlc3RpbmcgcHVy
cG9zZXMuCisgICAgICAgIC0gT24gUG9zaXgsIGNhbGwgbHN0YXQoKSBpbnN0ZWFkIG9mIHN0YXQg
aWYgU2hvdWxkRm9sbG93U3ltYm9saWNMaW5rczo6Tm8uCisgICAgICAgIC0gT24gV2luZG93cywg
c2luY2UgRmluZEZpcnN0RmlsZVcoKSBkb2VzIG5vdCBmb2xsb3cgc3ltbGlua3MsIHJlc29sdmUK
KyAgICAgICAgICBmaW5hbCBwYXRoIHVzaW5nIEdldEZpbmFsUGF0aE5hbWVCeUhhbmRsZVcoKSBp
ZiBTaG91bGRGb2xsb3dTeW1ib2xpY0xpbmtzOjpZZXMuCisgICAgICAgIC0gT24gV2luZG93cywg
cHJvcGVybHkgc2V0IEZpbGVNZXRhZGF0YS50eXBlIHRvIFR5cGVTeW1ib2xpY0xpbmsgaWYgdGhl
IGZpbGUKKyAgICAgICAgICBpcyBhIHN5bWJvbGljIGxpbmsuCisKKzIwMTctMDgtMzAgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwogICAgICAgICBJbXBsZW1lbnQgRmlsZVN5c3Rl
bURpcmVjdG9yeVJlYWRlci5yZWFkRW50cmllcygpCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYwOTEKICAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM0
MTY4MDE1PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0RP
TUZpbGVTeXN0ZW0uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0RPTUZp
bGVTeXN0ZW0uY3BwCmluZGV4IDllOWVjNWQxYzM4NmRlNDFhZGU1NGE3NTQwODA3MTZlOGM5OGFm
MmYuLjM4YzM1NGU1NWViNTlhOGY5ZDc1M2E0MjQ3MmIxOGIxZWZkNjgwZmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9ET01GaWxlU3lzdGVtLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRE9NRmlsZVN5c3RlbS5jcHAKQEAg
LTQ2LDcgKzQ2LDcgQEAgc3RydWN0IExpc3RlZENoaWxkIHsKIHN0YXRpYyBFeGNlcHRpb25PcjxW
ZWN0b3I8TGlzdGVkQ2hpbGQ+PiBsaXN0RGlyZWN0b3J5V2l0aE1ldGFkYXRhKGNvbnN0IFN0cmlu
ZyYgZnVsbFBhdGgpCiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7Ci0gICAgaWYgKCFm
aWxlSXNEaXJlY3RvcnkoZnVsbFBhdGgpKQorICAgIGlmICghZmlsZUlzRGlyZWN0b3J5KGZ1bGxQ
YXRoLCBTaG91bGRGb2xsb3dTeW1ib2xpY0xpbmtzOjpObykpCiAgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBOb3RGb3VuZEVycm9yLCAiUGF0aCBubyBsb25nZXIgZXhpc3RzIG9yIGlzIG5vIGxv
bmdlciBhIGRpcmVjdG9yeSIgfTsKIAogICAgIGF1dG8gY2hpbGRQYXRocyA9IGxpc3REaXJlY3Rv
cnkoZnVsbFBhdGgsICIqIik7CkBAIC01NCw3ICs1NCw3IEBAIHN0YXRpYyBFeGNlcHRpb25PcjxW
ZWN0b3I8TGlzdGVkQ2hpbGQ+PiBsaXN0RGlyZWN0b3J5V2l0aE1ldGFkYXRhKGNvbnN0IFN0cmlu
ZyYKICAgICBsaXN0ZWRDaGlsZHJlbi5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGNoaWxkUGF0aHMu
c2l6ZSgpKTsKICAgICBmb3IgKGF1dG8mIGNoaWxkUGF0aCA6IGNoaWxkUGF0aHMpIHsKICAgICAg
ICAgRmlsZU1ldGFkYXRhIG1ldGFkYXRhOwotICAgICAgICBpZiAoIWdldEZpbGVNZXRhZGF0YShj
aGlsZFBhdGgsIG1ldGFkYXRhKSkKKyAgICAgICAgaWYgKCFnZXRGaWxlTWV0YWRhdGEoY2hpbGRQ
YXRoLCBtZXRhZGF0YSwgU2hvdWxkRm9sbG93U3ltYm9saWNMaW5rczo6Tm8pKQogICAgICAgICAg
ICAgY29udGludWU7CiAgICAgICAgIGxpc3RlZENoaWxkcmVuLnVuY2hlY2tlZEFwcGVuZChMaXN0
ZWRDaGlsZCB7IHBhdGhHZXRGaWxlTmFtZShjaGlsZFBhdGgpLCBtZXRhZGF0YS50eXBlIH0pOwog
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCBmMTRiOWRmYjQ4MmZjYzQzZDU4MDVmYjNiYmMwMDI3Yzg4ZGFmYmQ2Li4wNTA4
NjZlZTkwYjc4ZGY3YzNmNzMyY2U1N2VjMTA0NzFhYjJlZmVlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xOTM5LDcgKzE5Mzks
NyBAQAogCQk0NjczMDIwMjFDNEVGRTc4MDBCQ0IzNTcgLyogSWdub3JlT3BlbnNEdXJpbmdVbmxv
YWRDb3VudEluY3JlbWVudGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0NjczMDIwMTFDNEVGRTY2MDBCQ0IzNTcgLyogSWdub3JlT3BlbnNEdXJpbmdV
bmxvYWRDb3VudEluY3JlbWVudGVyLmggKi87IH07CiAJCTQ2ODM0NERGMUVEREZBQUEwMEI3Nzk1
QiAvKiBET01SZWN0TGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0NjgzNDRERDFFRERGQTVGMDBCNzc5NUIgLyogRE9NUmVjdExpc3QuY3BwICov
OyB9OwogCQk0NjgzNDRFMDFFRERGQUFBMDBCNzc5NUIgLyogRE9NUmVjdExpc3QuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2ODM0NERFMUVEREZBNUYw
MEI3Nzk1QiAvKiBET01SZWN0TGlzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07Ci0JCTQ2ODlGMUFGMTI2N0JBRTEwMEU4RDM4MCAvKiBGaWxlTWV0YWRh
dGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2ODlG
MUFFMTI2N0JBRTEwMEU4RDM4MCAvKiBGaWxlTWV0YWRhdGEuaCAqLzsgfTsKKwkJNDY4OUYxQUYx
MjY3QkFFMTAwRThEMzgwIC8qIEZpbGVNZXRhZGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY4OUYxQUUxMjY3QkFFMTAwRThEMzgwIC8qIEZpbGVN
ZXRhZGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTQ2QjYzRjZDMUM2RThEMTkwMDJFOTE0QiAvKiBKU0V2ZW50VGFyZ2V0Q3VzdG9tLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkI2M0Y2QjFDNkU4
Q0RGMDAyRTkxNEIgLyogSlNFdmVudFRhcmdldEN1c3RvbS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2QzY5NkNCMUU3MjA1RjcwMDU5NzkzNyAv
KiBDUFVNb25pdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0NkM2OTZDOTFFNzIwNUU0MDA1OTc5MzcgLyogQ1BVTW9uaXRvci5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2QzY5NkNDMUU3MjA1RkMw
MDU5NzkzNyAvKiBDUFVNb25pdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQ2QzY5NkNBMUU3MjA1RTQwMDU5NzkzNyAvKiBDUFVNb25pdG9yLmNw
cCAqLzsgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGUuY3BwCmluZGV4IGI1MDhhYmY0NmQxMWZlMmUzZjk0
Zjc3MjFiMDdhOTQ4N2RiYzExYTIuLjEzOGQ0YjJlNjI1MjUyMjE0NGE0MTcwOWRkYzk3ZjUzOTlj
MWRiNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlLmNwcApAQCAtMTMwLDcgKzEzMCw3IEBAIFN0cmlu
ZyBGaWxlOjpjb250ZW50VHlwZUZvckZpbGUoY29uc3QgU3RyaW5nJiBwYXRoKQogYm9vbCBGaWxl
Ojppc0RpcmVjdG9yeSgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2lzRGlyZWN0b3J5KQotICAgICAg
ICBtX2lzRGlyZWN0b3J5ID0gZmlsZUlzRGlyZWN0b3J5KG1fcGF0aCk7CisgICAgICAgIG1faXNE
aXJlY3RvcnkgPSBmaWxlSXNEaXJlY3RvcnkobV9wYXRoLCBTaG91bGRGb2xsb3dTeW1ib2xpY0xp
bmtzOjpZZXMpOwogICAgIHJldHVybiAqbV9pc0RpcmVjdG9yeTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9GaWxlTGlzdENyZWF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9GaWxlTGlzdENyZWF0b3IuY3BwCmluZGV4IDE5YmQ0NGFlYTFkZGQxNmQxOTI5ZjIyZGFh
MGQxOThiYmJmMzJhODEuLjQxOTJjNjNkZjE1OWNhMzNmNDcwY2EwZGVkMTI5ODM2MTVjODg2MDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUxpc3RDcmVhdG9yLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVMaXN0Q3JlYXRvci5jcHAKQEAgLTQzLDcgKzQzLDcg
QEAgc3RhdGljIHZvaWQgYXBwZW5kRGlyZWN0b3J5RmlsZXMoY29uc3QgU3RyaW5nJiBkaXJlY3Rv
cnksIGNvbnN0IFN0cmluZyYgcmVsYXRpdmUKIHsKICAgICBmb3IgKGF1dG8mIGNoaWxkUGF0aCA6
IGxpc3REaXJlY3RvcnkoZGlyZWN0b3J5LCAiKiIpKSB7CiAgICAgICAgIEZpbGVNZXRhZGF0YSBt
ZXRhZGF0YTsKLSAgICAgICAgaWYgKCFnZXRGaWxlTWV0YWRhdGEoY2hpbGRQYXRoLCBtZXRhZGF0
YSkpCisgICAgICAgIGlmICghZ2V0RmlsZU1ldGFkYXRhKGNoaWxkUGF0aCwgbWV0YWRhdGEsIFNo
b3VsZEZvbGxvd1N5bWJvbGljTGlua3M6Ok5vKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAg
ICAgICAgIGlmIChtZXRhZGF0YS5pc0hpZGRlbikKQEAgLTgwLDcgKzgwLDcgQEAgUmVmPEZpbGVM
aXN0PiBGaWxlTGlzdENyZWF0b3I6OmNyZWF0ZUZpbGVMaXN0KGNvbnN0IFZlY3RvcjxGaWxlQ2hv
b3NlckZpbGVJbmZvPiYKIHsKICAgICBWZWN0b3I8UmVmUHRyPEZpbGU+PiBmaWxlT2JqZWN0czsK
ICAgICBmb3IgKGF1dG8mIGluZm8gOiBwYXRocykgewotICAgICAgICBpZiAoc2hvdWxkUmVzb2x2
ZURpcmVjdG9yaWVzID09IFNob3VsZFJlc29sdmVEaXJlY3Rvcmllczo6WWVzICYmIGZpbGVJc0Rp
cmVjdG9yeShpbmZvLnBhdGgpKQorICAgICAgICBpZiAoc2hvdWxkUmVzb2x2ZURpcmVjdG9yaWVz
ID09IFNob3VsZFJlc29sdmVEaXJlY3Rvcmllczo6WWVzICYmIGZpbGVJc0RpcmVjdG9yeShpbmZv
LnBhdGgsIFNob3VsZEZvbGxvd1N5bWJvbGljTGlua3M6Ok5vKSkKICAgICAgICAgICAgIGFwcGVu
ZERpcmVjdG9yeUZpbGVzKGluZm8ucGF0aCwgcGF0aEdldEZpbGVOYW1lKGluZm8ucGF0aCksIGZp
bGVPYmplY3RzKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgZmlsZU9iamVjdHMuYXBwZW5k
KEZpbGU6OmNyZWF0ZVdpdGhOYW1lKGluZm8ucGF0aCwgaW5mby5kaXNwbGF5TmFtZSkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmNwcAppbmRleCA0YWJkMzQzYTgxYTM4Mzg4OWY1
ZDIzNDc5NDkwMTE4NzJhMzRmZjg5Li5kNTdhMGJkN2UyMmQ2ODY2M2E0ZmFjYWIwZmMwOWE0N2Y0
NDIwMjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmNwcApAQCAtMzUxLDEw
ICszNTEsMTAgQEAgdm9pZCB1bmxvY2tBbmRDbG9zZUZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlIGhh
bmRsZSkKICAgICBjbG9zZUZpbGUoaGFuZGxlKTsKIH0KIAotYm9vbCBmaWxlSXNEaXJlY3Rvcnko
Y29uc3QgU3RyaW5nJiBwYXRoKQorYm9vbCBmaWxlSXNEaXJlY3RvcnkoY29uc3QgU3RyaW5nJiBw
YXRoLCBTaG91bGRGb2xsb3dTeW1ib2xpY0xpbmtzIHNob3VsZEZvbGxvd1N5bWJvbGljTGlua3Mp
CiB7CiAgICAgRmlsZU1ldGFkYXRhIG1ldGFkYXRhOwotICAgIGlmICghZ2V0RmlsZU1ldGFkYXRh
KHBhdGgsIG1ldGFkYXRhKSkKKyAgICBpZiAoIWdldEZpbGVNZXRhZGF0YShwYXRoLCBtZXRhZGF0
YSwgc2hvdWxkRm9sbG93U3ltYm9saWNMaW5rcykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICByZXR1cm4gbWV0YWRhdGEudHlwZSA9PSBGaWxlTWV0YWRhdGE6OlR5cGVEaXJlY3Rvcnk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmgKaW5kZXggNTllMTMzZWU2YTNlMTgwNTcw
MGFmOGEyMDQ2MjE5OGIxNGI1ZWU5My4uMTU5ZjFjYmQ1YzlhN2QwNzQxNmZlYjQ4ODNmMWQ5NDc0
Yzg5MDZiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uaApAQCAtODgsNiArODgs
OCBAQCBlbnVtIEZpbGVMb2NrTW9kZSB7CiAgICAgTG9ja05vbkJsb2NraW5nID0gNAogfTsKIAor
ZW51bSBjbGFzcyBTaG91bGRGb2xsb3dTeW1ib2xpY0xpbmtzIHsgTm8sIFllcyB9OworCiBzdHJ1
Y3QgRmlsZU1ldGFkYXRhOwogCiBXRUJDT1JFX0VYUE9SVCBib29sIGZpbGVFeGlzdHMoY29uc3Qg
U3RyaW5nJik7CkBAIC05OCw4ICsxMDAsOCBAQCBXRUJDT1JFX0VYUE9SVCBib29sIGdldEZpbGVT
aXplKGNvbnN0IFN0cmluZyYsIGxvbmcgbG9uZyYgcmVzdWx0KTsKIFdFQkNPUkVfRVhQT1JUIGJv
b2wgZ2V0RmlsZVNpemUoUGxhdGZvcm1GaWxlSGFuZGxlLCBsb25nIGxvbmcmIHJlc3VsdCk7CiBX
RUJDT1JFX0VYUE9SVCBib29sIGdldEZpbGVNb2RpZmljYXRpb25UaW1lKGNvbnN0IFN0cmluZyYs
IHRpbWVfdCYgcmVzdWx0KTsKIFdFQkNPUkVfRVhQT1JUIGJvb2wgZ2V0RmlsZUNyZWF0aW9uVGlt
ZShjb25zdCBTdHJpbmcmLCB0aW1lX3QmIHJlc3VsdCk7IC8vIE5vdCBhbGwgcGxhdGZvcm1zIHN0
b3JlIGZpbGUgY3JlYXRpb24gdGltZS4KLWJvb2wgZ2V0RmlsZU1ldGFkYXRhKGNvbnN0IFN0cmlu
ZyYsIEZpbGVNZXRhZGF0YSYpOwotYm9vbCBmaWxlSXNEaXJlY3RvcnkoY29uc3QgU3RyaW5nJik7
CitXRUJDT1JFX0VYUE9SVCBib29sIGdldEZpbGVNZXRhZGF0YShjb25zdCBTdHJpbmcmLCBGaWxl
TWV0YWRhdGEmLCBTaG91bGRGb2xsb3dTeW1ib2xpY0xpbmtzKTsKK2Jvb2wgZmlsZUlzRGlyZWN0
b3J5KGNvbnN0IFN0cmluZyYsIFNob3VsZEZvbGxvd1N5bWJvbGljTGlua3MpOwogV0VCQ09SRV9F
WFBPUlQgU3RyaW5nIHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChjb25zdCBTdHJpbmcmIHBhdGgs
IGNvbnN0IFN0cmluZyYgY29tcG9uZW50KTsKIFN0cmluZyBwYXRoQnlBcHBlbmRpbmdDb21wb25l
bnRzKGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGNvbXBvbmVudHMp
OwogU3RyaW5nIGxhc3RDb21wb25lbnRPZlBhdGhJZ25vcmluZ1RyYWlsaW5nU2xhc2goY29uc3Qg
U3RyaW5nJiBwYXRoKTsKQEAgLTEwOSw2ICsxMTEsNyBAQCBXRUJDT1JFX0VYUE9SVCBTdHJpbmcg
cGF0aEdldEZpbGVOYW1lKGNvbnN0IFN0cmluZyYpOwogV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGRp
cmVjdG9yeU5hbWUoY29uc3QgU3RyaW5nJik7CiBXRUJDT1JFX0VYUE9SVCBib29sIGdldFZvbHVt
ZUZyZWVTcGFjZShjb25zdCBTdHJpbmcmLCB1aW50NjRfdCYpOwogV0VCQ09SRV9FWFBPUlQgc3Rk
OjpvcHRpb25hbDxpbnQzMl90PiBnZXRGaWxlRGV2aWNlSWQoY29uc3QgQ1N0cmluZyYpOworV0VC
Q09SRV9FWFBPUlQgYm9vbCBjcmVhdGVTeW1ib2xpY0xpbmsoY29uc3QgU3RyaW5nJiB0YXJnZXRQ
YXRoLCBjb25zdCBTdHJpbmcmIHN5bWJvbGljTGlua1BhdGgpOwogCiBXRUJDT1JFX0VYUE9SVCB2
b2lkIHNldE1ldGFkYXRhVVJMKGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU3RyaW5nJiB1cmxT
dHJpbmcsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIgPSB7IH0pOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dsaWIvRmlsZVN5c3RlbUdsaWIuY3BwCmluZGV4IGUzYzVkNjNlODQ4MGRh
NDgxOTU4MDlkNWEyZjZkMjE1NTk4OWUyYzMuLjc3YjA1NTliMjk3NDM5ZDA2MjI4ODg4NGI2OWQ5
Mjg2Y2JjYjgyMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvRmls
ZVN5c3RlbUdsaWIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvRmlsZVN5
c3RlbUdsaWIuY3BwCkBAIC0xMjMsNiArMTIzLDE1IEBAIHN0YXRpYyBib29sIGdldEZpbGVTdGF0
KGNvbnN0IFN0cmluZyYgcGF0aCwgR1N0YXRCdWYqIHN0YXRCdWZmZXIpCiAgICAgcmV0dXJuIGdf
c3RhdChmaWxlbmFtZS5nZXQoKSwgc3RhdEJ1ZmZlcikgIT0gLTE7CiB9CiAKK3N0YXRpYyBib29s
IGdldEZpbGVMU3RhdChjb25zdCBTdHJpbmcmIHBhdGgsIEdTdGF0QnVmKiBzdGF0QnVmZmVyKQor
eworICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGZpbGVuYW1lID0gdW5lc2NhcGVkRmlsZW5hbWUocGF0
aCk7CisgICAgaWYgKCFmaWxlbmFtZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0
dXJuIGdfbHN0YXQoZmlsZW5hbWUuZ2V0KCksIHN0YXRCdWZmZXIpICE9IC0xOworfQorCiBib29s
IGdldEZpbGVTaXplKGNvbnN0IFN0cmluZyYgcGF0aCwgbG9uZyBsb25nJiByZXN1bHRTaXplKQog
ewogICAgIEdTdGF0QnVmIHN0YXRSZXN1bHQ7CkBAIC0xNTUsMTEgKzE2NCwxNyBAQCBib29sIGdl
dEZpbGVNb2RpZmljYXRpb25UaW1lKGNvbnN0IFN0cmluZyYgcGF0aCwgdGltZV90JiBtb2RpZmll
ZFRpbWUpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgZ2V0RmlsZU1ldGFkYXRhKGNvbnN0
IFN0cmluZyYgcGF0aCwgRmlsZU1ldGFkYXRhJiBtZXRhZGF0YSkKK2Jvb2wgZ2V0RmlsZU1ldGFk
YXRhKGNvbnN0IFN0cmluZyYgcGF0aCwgRmlsZU1ldGFkYXRhJiBtZXRhZGF0YSwgU2hvdWxkRm9s
bG93U3ltYm9saWNMaW5rcyBzaG91bGRGb2xsb3dTeW1ib2xpY0xpbmtzKQogewogICAgIEdTdGF0
QnVmIHN0YXRSZXN1bHQ7Ci0gICAgaWYgKCFnZXRGaWxlU3RhdChwYXRoLCAmc3RhdFJlc3VsdCkp
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmIChzaG91bGRGb2xsb3dTeW1ib2xpY0xp
bmtzID09IFNob3VsZEZvbGxvd1N5bWJvbGljTGlua3M6OlllcykgeworICAgICAgICBpZiAoIWdl
dEZpbGVTdGF0KHBhdGgsICZzdGF0UmVzdWx0KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICB9IGVsc2UgeworICAgICAgICBpZiAoIWdldEZpbGVMU3RhdChwYXRoLCAmc3RhdFJlc3Vs
dCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQogCiAgICAgU3RyaW5nIGZpbGVu
YW1lID0gcGF0aEdldEZpbGVOYW1lKHBhdGgpOwogICAgIG1ldGFkYXRhLmlzSGlkZGVuID0gIWZp
bGVuYW1lLmlzRW1wdHkoKSAmJiBmaWxlbmFtZVswXSA9PSAnLic7CkBAIC0yMDMsNiArMjE4LDE5
IEBAIFN0cmluZyBob21lRGlyZWN0b3J5UGF0aCgpCiAgICAgcmV0dXJuIHN0cmluZ0Zyb21GaWxl
U3lzdGVtUmVwcmVzZW50YXRpb24oZ19nZXRfaG9tZV9kaXIoKSk7CiB9CiAKK2Jvb2wgY3JlYXRl
U3ltYm9saWNMaW5rKGNvbnN0IFN0cmluZyYgdGFyZ2V0UGF0aCwgY29uc3QgU3RyaW5nJiBzeW1i
b2xpY0xpbmtQYXRoKQoreworICAgIENTdHJpbmcgdGFyZ2V0UGF0aEZTUmVwID0gZmlsZVN5c3Rl
bVJlcHJlc2VudGF0aW9uKHRhcmdldFBhdGgpOworICAgIGlmICghdGFyZ2V0UGF0aEZTUmVwLmRh
dGEoKSB8fCB0YXJnZXRQYXRoRlNSZXAuZGF0YSgpWzBdID09ICdcMCcpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIENTdHJpbmcgc3ltYm9saWNMaW5rUGF0aEZTUmVwID0gZmlsZVN5c3Rl
bVJlcHJlc2VudGF0aW9uKHN5bWJvbGljTGlua1BhdGgpOworICAgIGlmICghc3ltYm9saWNMaW5r
UGF0aEZTUmVwLmRhdGEoKSB8fCBzeW1ib2xpY0xpbmtQYXRoRlNSZXAuZGF0YSgpWzBdID09ICdc
MCcpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiAhc3ltbGluayh0YXJnZXRQ
YXRoRlNSZXAuZGF0YSgpLCBzeW1ib2xpY0xpbmtQYXRoRlNSZXAuZGF0YSgpKTsKK30KKwogU3Ry
aW5nIHBhdGhHZXRGaWxlTmFtZShjb25zdCBTdHJpbmcmIHBhdGhOYW1lKQogewogICAgIEdVbmlx
dWVQdHI8Z2NoYXI+IHRtcEZpbGVuYW1lID0gdW5lc2NhcGVkRmlsZW5hbWUocGF0aE5hbWUpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iRGF0YUZpbGVS
ZWZlcmVuY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iRGF0YUZp
bGVSZWZlcmVuY2UuY3BwCmluZGV4IDFmOGNlMGI2MzhmZjEyMmE0NzgyMzI5NGE5ODI0Y2NhMTc3
ZjZkN2QuLjZkYzZkNjRhZTg3MTg1ZDBmMWNkMWVhODc3NjgwOGRhM2M2NTVkN2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYkRhdGFGaWxlUmVmZXJlbmNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JEYXRhRmlsZVJl
ZmVyZW5jZS5jcHAKQEAgLTk2LDcgKzk2LDcgQEAgdm9pZCBCbG9iRGF0YUZpbGVSZWZlcmVuY2U6
OnN0YXJ0VHJhY2tpbmdNb2RpZmljYXRpb25zKCkKIAogICAgIC8vIEZJWE1FOiBTb21lIHBsYXRm
b3JtcyBwcm92aWRlIGJldHRlciB3YXlzIHRvIGxpc3RlbiBmb3IgZmlsZSBzeXN0ZW0gb2JqZWN0
IGNoYW5nZXMsIGNvbnNpZGVyIHVzaW5nIHRoZXNlLgogICAgIEZpbGVNZXRhZGF0YSBtZXRhZGF0
YTsKLSAgICBpZiAoIWdldEZpbGVNZXRhZGF0YShtX3BhdGgsIG1ldGFkYXRhKSkKKyAgICBpZiAo
IWdldEZpbGVNZXRhZGF0YShtX3BhdGgsIG1ldGFkYXRhLCBTaG91bGRGb2xsb3dTeW1ib2xpY0xp
bmtzOjpZZXMpKQogICAgICAgICByZXR1cm47CiAKICAgICBtX2V4cGVjdGVkTW9kaWZpY2F0aW9u
VGltZSA9IG1ldGFkYXRhLm1vZGlmaWNhdGlvblRpbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9CbG9iRGF0YUZpbGVSZWZlcmVuY2VNYWMubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9CbG9iRGF0YUZpbGVSZWZlcmVuY2VN
YWMubW0KaW5kZXggMzJlOTU0NTg3YjkxMDNhZjNjMDI3MTNhZGI5OWYyZmYzOWIzY2Y2Yi4uOGRh
Y2U3YTdlMDI2YTdiZDI1YjllM2MyODcxOThhZmFiN2MwYjYzNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvQmxvYkRhdGFGaWxlUmVmZXJlbmNlTWFjLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL0Jsb2JEYXRhRmlsZVJl
ZmVyZW5jZU1hYy5tbQpAQCAtODAsNyArODAsNyBAQCB2b2lkIEJsb2JEYXRhRmlsZVJlZmVyZW5j
ZTo6Z2VuZXJhdGVSZXBsYWNlbWVudEZpbGUoKQogICAgIG1fcmVwbGFjZW1lbnRTaG91bGRCZUdl
bmVyYXRlZCA9IGZhbHNlOwogICAgIGlmICghbV9yZXBsYWNlbWVudFBhdGguaXNOdWxsKCkpIHsK
ICAgICAgICAgRmlsZU1ldGFkYXRhIG1ldGFkYXRhOwotICAgICAgICBpZiAoZ2V0RmlsZU1ldGFk
YXRhKG1fcmVwbGFjZW1lbnRQYXRoLCBtZXRhZGF0YSkpCisgICAgICAgIGlmIChnZXRGaWxlTWV0
YWRhdGEobV9yZXBsYWNlbWVudFBhdGgsIG1ldGFkYXRhLCBTaG91bGRGb2xsb3dTeW1ib2xpY0xp
bmtzOjpZZXMpKQogICAgICAgICAgICAgbV9zaXplID0gbWV0YWRhdGEubGVuZ3RoOwogICAgIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcG9zaXgvRmlsZVN5c3RlbVBP
U0lYLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJWC5j
cHAKaW5kZXggZWExNzZkZDA0ZWQzZTAwMjA1OGI4ZTYwMjg0NjNlYTFjMjgwMzU4YS4uZjRhYzFk
MDdlNzg5MDVjNDc1NDBkMTFiZDgwNjk4ZDNjMDM5N2Y5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vcG9zaXgvRmlsZVN5c3RlbVBPU0lYLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9wb3NpeC9GaWxlU3lzdGVtUE9TSVguY3BwCkBAIC0yMzksNyArMjM5LDcg
QEAgYm9vbCBnZXRGaWxlTW9kaWZpY2F0aW9uVGltZShjb25zdCBTdHJpbmcmIHBhdGgsIHRpbWVf
dCYgcmVzdWx0KQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIGdldEZpbGVNZXRhZGF0YShj
b25zdCBTdHJpbmcmIHBhdGgsIEZpbGVNZXRhZGF0YSYgbWV0YWRhdGEpCitib29sIGdldEZpbGVN
ZXRhZGF0YShjb25zdCBTdHJpbmcmIHBhdGgsIEZpbGVNZXRhZGF0YSYgbWV0YWRhdGEsIFNob3Vs
ZEZvbGxvd1N5bWJvbGljTGlua3Mgc2hvdWxkRm9sbG93U3ltYm9saWNMaW5rcykKIHsKICAgICBD
U3RyaW5nIGZzUmVwID0gZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHBhdGgpOwogCkBAIC0yNDcs
OCArMjQ3LDE0IEBAIGJvb2wgZ2V0RmlsZU1ldGFkYXRhKGNvbnN0IFN0cmluZyYgcGF0aCwgRmls
ZU1ldGFkYXRhJiBtZXRhZGF0YSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgc3RydWN0
IHN0YXQgZmlsZUluZm87Ci0gICAgaWYgKHN0YXQoZnNSZXAuZGF0YSgpLCAmZmlsZUluZm8pKQot
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoc2hvdWxkRm9sbG93U3ltYm9saWNMaW5r
cyA9PSBTaG91bGRGb2xsb3dTeW1ib2xpY0xpbmtzOjpZZXMpIHsKKyAgICAgICAgaWYgKHN0YXQo
ZnNSZXAuZGF0YSgpLCAmZmlsZUluZm8pKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IH0gZWxzZSB7CisgICAgICAgIGlmIChsc3RhdChmc1JlcC5kYXRhKCksICZmaWxlSW5mbykpCisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQogCiAgICAgU3RyaW5nIGZpbGVuYW1lID0g
cGF0aEdldEZpbGVOYW1lKHBhdGgpOwogCkBAIC0yNjQsNiArMjcwLDE5IEBAIGJvb2wgZ2V0Rmls
ZU1ldGFkYXRhKGNvbnN0IFN0cmluZyYgcGF0aCwgRmlsZU1ldGFkYXRhJiBtZXRhZGF0YSkKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBjcmVhdGVTeW1ib2xpY0xpbmsoY29uc3QgU3RyaW5n
JiB0YXJnZXRQYXRoLCBjb25zdCBTdHJpbmcmIHN5bWJvbGljTGlua1BhdGgpCit7CisgICAgQ1N0
cmluZyB0YXJnZXRQYXRoRlNSZXAgPSBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24odGFyZ2V0UGF0
aCk7CisgICAgaWYgKCF0YXJnZXRQYXRoRlNSZXAuZGF0YSgpIHx8IHRhcmdldFBhdGhGU1JlcC5k
YXRhKClbMF0gPT0gJ1wwJykKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgQ1N0cmluZyBz
eW1ib2xpY0xpbmtQYXRoRlNSZXAgPSBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oc3ltYm9saWNM
aW5rUGF0aCk7CisgICAgaWYgKCFzeW1ib2xpY0xpbmtQYXRoRlNSZXAuZGF0YSgpIHx8IHN5bWJv
bGljTGlua1BhdGhGU1JlcC5kYXRhKClbMF0gPT0gJ1wwJykKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgcmV0dXJuICFzeW1saW5rKHRhcmdldFBhdGhGU1JlcC5kYXRhKCksIHN5bWJvbGlj
TGlua1BhdGhGU1JlcC5kYXRhKCkpOworfQorCiBTdHJpbmcgcGF0aEJ5QXBwZW5kaW5nQ29tcG9u
ZW50KGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU3RyaW5nJiBjb21wb25lbnQpCiB7CiAgICAg
aWYgKHBhdGguZW5kc1dpdGgoJy8nKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3dpbi9GaWxlU3lzdGVtV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9G
aWxlU3lzdGVtV2luLmNwcAppbmRleCA4NzgyZDcwMGRlYjY2ODUxMWQ3MzVkMzBjMjg4NjBhMDY1
ZmNkMDVmLi4yZjA2ZjU3OGM1ODE3NThkY2RmNzNkYTRkY2ViZmZlMzZmNDViN2JiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vRmlsZVN5c3RlbVdpbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0ZpbGVTeXN0ZW1XaW4uY3BwCkBAIC00Miw2ICs0
Miw3IEBACiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3Ry
aW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgorI2luY2x1ZGUgPHd0
Zi90ZXh0L1N0cmluZ1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTE0MSwx
MiArMTQyLDM5IEBAIGJvb2wgZ2V0RmlsZUNyZWF0aW9uVGltZShjb25zdCBTdHJpbmcmIHBhdGgs
IHRpbWVfdCYgdGltZSkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBnZXRGaWxlTWV0YWRh
dGEoY29uc3QgU3RyaW5nJiBwYXRoLCBGaWxlTWV0YWRhdGEmIG1ldGFkYXRhKQorc3RhdGljIFN0
cmluZyBnZXRGaW5hbFBhdGhOYW1lKGNvbnN0IFN0cmluZyYgcGF0aCkKK3sKKyAgICBhdXRvIGhh
bmRsZSA9IG9wZW5GaWxlKHBhdGgsIE9wZW5Gb3JSZWFkKTsKKyAgICBpZiAoIWlzSGFuZGxlVmFs
aWQoaGFuZGxlKSkKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOworCisgICAgU3RyaW5nVmVjdG9y
PFVDaGFyPiBidWZmZXIoTUFYX1BBVEgpOworICAgIGlmICg6OkdldEZpbmFsUGF0aE5hbWVCeUhh
bmRsZVcoaGFuZGxlLCBidWZmZXIuZGF0YSgpLCBidWZmZXIuc2l6ZSgpLCBWT0xVTUVfTkFNRV9O
VCkgPj0gTUFYX1BBVEgpIHsKKyAgICAgICAgY2xvc2VGaWxlKGhhbmRsZSk7CisgICAgICAgIHJl
dHVybiBTdHJpbmcoKTsKKyAgICB9CisgICAgY2xvc2VGaWxlKGhhbmRsZSk7CisKKyAgICBidWZm
ZXIuc2hyaW5rKHdjc2xlbihidWZmZXIuZGF0YSgpKSk7CisgICAgcmV0dXJuIFN0cmluZzo6YWRv
cHQoV1RGTW92ZShidWZmZXIpKTsKK30KKworYm9vbCBnZXRGaWxlTWV0YWRhdGEoY29uc3QgU3Ry
aW5nJiBwYXRoLCBGaWxlTWV0YWRhdGEmIG1ldGFkYXRhLCBTaG91bGRGb2xsb3dTeW1ib2xpY0xp
bmtzIHNob3VsZEZvbGxvd1N5bWJvbGljTGlua3MpCiB7CiAgICAgV0lOMzJfRklORF9EQVRBVyBm
aW5kRGF0YTsKICAgICBpZiAoIWdldEZpbmREYXRhKHBhdGgsIGZpbmREYXRhKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCisgICAgYm9vbCBpc1N5bWJvbGljTGluayA9IGZpbmREYXRhLmR3Rmls
ZUF0dHJpYnV0ZXMgJiBGSUxFX0FUVFJJQlVURV9SRVBBUlNFX1BPSU5UICYmIGZpbmREYXRhLmR3
UmVzZXJ2ZWQwID09IElPX1JFUEFSU0VfVEFHX1NZTUxJTks7CisgICAgaWYgKGlzU3ltYm9saWNM
aW5rICYmIHNob3VsZEZvbGxvd1N5bWJvbGljTGlua3MgPT0gU2hvdWxkRm9sbG93U3ltYm9saWNM
aW5rczo6WWVzKSB7CisgICAgICAgIFN0cmluZyB0YXJnZXRQYXRoID0gZ2V0RmluYWxQYXRoTmFt
ZShwYXRoKTsKKyAgICAgICAgaWYgKHRhcmdldFBhdGguaXNOdWxsKCkpCisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgIGlmICghZ2V0RmluZERhdGEodGFyZ2V0UGF0aCwgZmluZERh
dGEpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpc1N5bWJvbGljTGluayA9
IGZhbHNlOworICAgIH0KKwogICAgIGlmICghZ2V0RmlsZVNpemVGcm9tRmluZERhdGEoZmluZERh
dGEsIG1ldGFkYXRhLmxlbmd0aCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtMTU0LDEx
ICsxODIsMjEgQEAgYm9vbCBnZXRGaWxlTWV0YWRhdGEoY29uc3QgU3RyaW5nJiBwYXRoLCBGaWxl
TWV0YWRhdGEmIG1ldGFkYXRhKQogICAgIGdldEZpbGVNb2RpZmljYXRpb25UaW1lRnJvbUZpbmRE
YXRhKGZpbmREYXRhLCBtb2RpZmljYXRpb25UaW1lKTsKICAgICBtZXRhZGF0YS5tb2RpZmljYXRp
b25UaW1lID0gbW9kaWZpY2F0aW9uVGltZTsKICAgICBtZXRhZGF0YS5pc0hpZGRlbiA9IGZpbmRE
YXRhLmR3RmlsZUF0dHJpYnV0ZXMgJiBGSUxFX0FUVFJJQlVURV9ISURERU47Ci0gICAgbWV0YWRh
dGEudHlwZSA9IChmaW5kRGF0YS5kd0ZpbGVBdHRyaWJ1dGVzICYgRklMRV9BVFRSSUJVVEVfRElS
RUNUT1JZKSA/IEZpbGVNZXRhZGF0YTo6VHlwZURpcmVjdG9yeSA6IEZpbGVNZXRhZGF0YTo6VHlw
ZUZpbGU7CisgICAgaWYgKGZpbmREYXRhLmR3RmlsZUF0dHJpYnV0ZXMgJiBGSUxFX0FUVFJJQlVU
RV9ESVJFQ1RPUlkpCisgICAgICAgIG1ldGFkYXRhLnR5cGUgPSBGaWxlTWV0YWRhdGE6OlR5cGVE
aXJlY3Rvcnk7CisgICAgZWxzZSBpZiAoaXNTeW1ib2xpY0xpbmspCisgICAgICAgIG1ldGFkYXRh
LnR5cGUgPSBGaWxlTWV0YWRhdGE6OlR5cGVTeW1ib2xpY0xpbms7CisgICAgZWxzZQorICAgICAg
ICBtZXRhZGF0YS50eXBlID0gRmlsZU1ldGFkYXRhOjpUeXBlRmlsZTsKIAogICAgIHJldHVybiB0
cnVlOwogfQogCitib29sIGNyZWF0ZVN5bWJvbGljTGluayhjb25zdCBTdHJpbmcmIHRhcmdldFBh
dGgsIGNvbnN0IFN0cmluZyYgc3ltYm9saWNMaW5rUGF0aCkKK3sKKyAgICByZXR1cm4gITo6Q3Jl
YXRlU3ltYm9saWNMaW5rVyhzeW1ib2xpY0xpbmtQYXRoLmNoYXJhY3RlcnNXaXRoTnVsbFRlcm1p
bmF0aW9uKCkuZGF0YSgpLCB0YXJnZXRQYXRoLmNoYXJhY3RlcnNXaXRoTnVsbFRlcm1pbmF0aW9u
KCkuZGF0YSgpLCAwKTsKK30KKwogYm9vbCBmaWxlRXhpc3RzKGNvbnN0IFN0cmluZyYgcGF0aCkK
IHsKICAgICBXSU4zMl9GSU5EX0RBVEFXIGZpbmREYXRhOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDYxYzkxODExY2RmNGVmNWI2MGZiYWVlZjhm
MDEwOTY5MTc2ZGM4MGEuLmY0NDFlYjExMjQ4NTk4MzA1Y2RjZmEwOWNjYzQzNTUxNjEzZWYwNWEg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxNy0wOC0zMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIGdldEZpbGVNZXRhZGF0YSgpIGRvZXMgbm90IHdvcmsgYXMgZXhwZWN0ZWQgZm9y
IHN5bWJvbGljIGxpbmtzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNzYxNDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgQVBJIHRlc3QgY292ZXJhZ2UuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvRmlsZVN5c3RlbS5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpU
RVNUX0YpOgorCiAyMDE3LTA4LTMwICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAK
ICAgICAgICAgUmVuYW1lIEFycmF5TGFuZyB0byBXZWJHUFUgU2hhZGluZyBMYW5ndWFnZSwgb3Ig
V1NMIGZvciBzaG9ydCwgcHJvbm91bmNlZCAid2hpc3RsZSIKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlU3lzdGVtLmNwcCBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlU3lzdGVtLmNwcAppbmRleCA4YTRhNzhjNjUzYTdiYzM5
ZDMyZGU5MmFhNjVjNDkwZjQzNjg5MWY0Li5iYTJiNTU5MzUwNTZlZDliOThkODBlZDRhNjBiODFh
MTVmNzRkYTMyIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
RmlsZVN5c3RlbS5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0Zp
bGVTeXN0ZW0uY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNp
bmNsdWRlICJUZXN0LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GaWxlTWV0YWRhdGEuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW0uaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgog
I2luY2x1ZGUgPHd0Zi9TdHJpbmdFeHRyYXMuaD4KQEAgLTExOSw0ICsxMjAsMjAgQEAgVEVTVF9G
KEZpbGVTeXN0ZW1UZXN0LCBGaWxlc0hhdmVTYW1lVm9sdW1lKQogICAgIEVYUEVDVF9UUlVFKGZp
bGVzSGF2ZVNhbWVWb2x1bWUoYmFuZ0NvbnRhaW5pbmdGaWxlUGF0aCgpLCBxdW90ZUNvbnRhaW5p
bmdGaWxlUGF0aCgpKSk7CiB9CiAKK1RFU1RfRihGaWxlU3lzdGVtVGVzdCwgR2V0RmlsZU1ldGFk
YXRhU3ltbGluaykKK3sKKyAgICBTdHJpbmcgc3ltbGlua1BhdGggPSB0ZW1wRmlsZVBhdGgoKSAr
ICItc3ltbGluayI7CisgICAgRVhQRUNUX1RSVUUoY3JlYXRlU3ltYm9saWNMaW5rKHRlbXBGaWxl
UGF0aCgpLCBzeW1saW5rUGF0aCkpOworCisgICAgRmlsZU1ldGFkYXRhIHN5bWxpbmtNZXRhZGF0
YTsKKyAgICBFWFBFQ1RfVFJVRShnZXRGaWxlTWV0YWRhdGEoc3ltbGlua1BhdGgsIHN5bWxpbmtN
ZXRhZGF0YSwgU2hvdWxkRm9sbG93U3ltYm9saWNMaW5rczo6Tm8pKTsKKyAgICBFWFBFQ1RfVFJV
RShzeW1saW5rTWV0YWRhdGEudHlwZSA9PSBGaWxlTWV0YWRhdGE6OlR5cGVTeW1ib2xpY0xpbmsp
OworICAgIEVYUEVDVF9GQUxTRShzdGF0aWNfY2FzdDxzaXplX3Q+KHN5bWxpbmtNZXRhZGF0YS5s
ZW5ndGgpID09IHN0cmxlbihGaWxlU3lzdGVtVGVzdERhdGEpKTsKKworICAgIEZpbGVNZXRhZGF0
YSB0YXJnZXRNZXRhZGF0YTsKKyAgICBFWFBFQ1RfVFJVRShnZXRGaWxlTWV0YWRhdGEoc3ltbGlu
a1BhdGgsIHRhcmdldE1ldGFkYXRhLCBTaG91bGRGb2xsb3dTeW1ib2xpY0xpbmtzOjpZZXMpKTsK
KyAgICBFWFBFQ1RfVFJVRSh0YXJnZXRNZXRhZGF0YS50eXBlID09IEZpbGVNZXRhZGF0YTo6VHlw
ZUZpbGUpOworICAgIEVYUEVDVF9FUShzdHJsZW4oRmlsZVN5c3RlbVRlc3REYXRhKSwgc3RhdGlj
X2Nhc3Q8c2l6ZV90Pih0YXJnZXRNZXRhZGF0YS5sZW5ndGgpKTsKK30KKwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319468</attachid>
            <date>2017-08-31 09:54:59 -0700</date>
            <delta_ts>2017-08-31 11:05:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176143-20170831095458.patch</filename>
            <type>text/plain</type>
            <size>21941</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxNDIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDkxMDUxN2EyYThjNzY2
YjJiMzNkMGE2NWI3MGE2N2U5ODJkOTFmYi4uNTZmZjU4MDVlMWRlZWNiMjAxZDcxZTBiZmQwODMy
ZDk4OWFlMjNmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDE3LTA4LTMxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgZ2V0RmlsZU1ldGFkYXRhKCkg
ZG9lcyBub3Qgd29yayBhcyBleHBlY3RlZCBmb3Igc3ltYm9saWMgbGlua3MKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjE0MworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGdldEZpbGVNZXRhZGF0YSgpIGRv
ZXMgbm90IHdvcmsgYXMgZXhwZWN0ZWQgZm9yIHN5bWJvbGljIGxpbmtzOgorICAgICAgICBPbiBQ
T1NJWCwgZ2V0RmlsZU1ldGFkYXRhKCkgYWx3YXlzIGZvbGxvd2VkIHN5bWxpbmtzLCB3aGljaCBt
ZWFudCB0aGF0IEZpbGVNZXRhZGF0YS50eXBlIGNvdWxkCisgICAgICAgIG5ldmVyIGJlIFR5cGVT
eW1ib2xpY0xpbmsuIE9uIFdpbmRvd3MsIHRoZSBmdW5jdGlvbiBwcm9wZXJseSBkaWQgbm90IGZv
bGxvdyBzeW1saW5rcyBidXQgZmFpbGVkIHRvIHNldAorICAgICAgICBGaWxlTWV0YWRhdGEudHlw
ZSB0byBUeXBlU3ltYm9saWNMaW5rIHdoZW4gdGhlIGZpbGUgd2FzIGEgc3ltYm9saWMgbGluay4K
KworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgYSBuZXcgU2hvdWxkRm9sbG93U3ltYm9saWNMaW5r
cyBwYXJhbWV0ZXIgdG8gZ2V0RmlsZU1ldGFkYXRhKCkgc28gdGhhdAorICAgICAgICB0aGUgY2Fs
bCBzaXRlIGNhbiBkZWNpZGUgdGhlIGJlaGF2aW9yIGl0IHdhbnRzLiBJZiBnZXRGaWxlTWV0YWRh
dGEoKSBpcyBjYWxsZWQgb24gYQorICAgICAgICBzeW1ib2xpYyBsaW5rIHdpdGggU2hvdWxkRm9s
bG93U3ltYm9saWNMaW5rczo6Tm8gYXMgcGFyYW1ldGVyLCBGaWxlTWV0YWRhdGEudHlwZSBpcyBu
b3cKKyAgICAgICAgcHJvcGVybHkgc2V0IHRvIFR5cGVTeW1ib2xpY0xpbmsuCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzLCBjb3ZlcmVkIGJ5IG5ldyBBUEkgdGVzdC4KKworICAgICAgICAqIE1vZHVs
ZXMvZW50cmllc2FwaS9ET01GaWxlU3lzdGVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Omxpc3RE
aXJlY3RvcnlXaXRoTWV0YWRhdGEpOgorICAgICAgICBJdCBpcyBpbXBvcnRhbnQgd2UgZG8gbm90
IGZvbGxvdyBzeW1saW5rcyBoZXJlIHNpbmNlIHRoZSBjb2RlIHdhbnRzIHRvIGRpc2NhcmQgdGhl
bQorICAgICAgICBhbmQgZG9lcyBzbyBieSBjaGVja2luZyBGaWxlTWV0YWRhdGEudHlwZS4KKwor
ICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBm
aWxlYXBpL0ZpbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZTo6aXNEaXJlY3RvcnkgY29u
c3QpOgorCisgICAgICAgICogaHRtbC9GaWxlTGlzdENyZWF0b3IuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6YXBwZW5kRGlyZWN0b3J5RmlsZXMpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZUxpc3RD
cmVhdG9yOjpjcmVhdGVGaWxlTGlzdCk6CisgICAgICAgIEl0IGlzIGltcG9ydGFudCB3ZSBkbyBu
b3QgZm9sbG93IHN5bWxpbmtzIGhlcmUgc2luY2UgdGhlIGNvZGUgd2FudHMgdG8gZGlzY2FyZCB0
aGVtCisgICAgICAgIGFuZCBkb2VzIHNvIGJ5IGNoZWNraW5nIEZpbGVNZXRhZGF0YS50eXBlLgor
CisgICAgICAgICogcGxhdGZvcm0vRmlsZVN5c3RlbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpm
aWxlSXNEaXJlY3RvcnkpOgorICAgICAgICAqIHBsYXRmb3JtL0ZpbGVTeXN0ZW0uaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmdldEZpbGVMU3RhdCk6CisgICAgICAgIChXZWJDb3JlOjpnZXRGaWxlTWV0YWRhdGEpOgorICAg
ICAgICAqIHBsYXRmb3JtL3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJWC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpnZXRGaWxlTWV0YWRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlU3ltYm9saWNM
aW5rKToKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vRmlsZVN5c3RlbVdpbi5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpnZXRGaW5hbFBhdGhOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OmdldEZpbGVN
ZXRhZGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVTeW1ib2xpY0xpbmspOgorICAgICAg
ICAtIEFkZCBuZXcgY3JlYXRlU3ltYm9saWNMaW5rKCkgZnVuY3Rpb24gZm9yIHRlc3RpbmcgcHVy
cG9zZXMuCisgICAgICAgIC0gT24gUG9zaXgsIGNhbGwgbHN0YXQoKSBpbnN0ZWFkIG9mIHN0YXQg
aWYgU2hvdWxkRm9sbG93U3ltYm9saWNMaW5rczo6Tm8uCisgICAgICAgIC0gT24gV2luZG93cywg
c2luY2UgRmluZEZpcnN0RmlsZVcoKSBkb2VzIG5vdCBmb2xsb3cgc3ltbGlua3MsIHJlc29sdmUK
KyAgICAgICAgICBmaW5hbCBwYXRoIHVzaW5nIEdldEZpbmFsUGF0aE5hbWVCeUhhbmRsZVcoKSBp
ZiBTaG91bGRGb2xsb3dTeW1ib2xpY0xpbmtzOjpZZXMuCisgICAgICAgIC0gT24gV2luZG93cywg
cHJvcGVybHkgc2V0IEZpbGVNZXRhZGF0YS50eXBlIHRvIFR5cGVTeW1ib2xpY0xpbmsgaWYgdGhl
IGZpbGUKKyAgICAgICAgICBpcyBhIHN5bWJvbGljIGxpbmsuCisKIDIwMTctMDgtMzEgIFl1c3Vr
ZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgW0pTQ10gVXNlIHJl
aWZ5aW5nIHN5c3RlbSBmb3IgIm5hbWUiIHByb3BlcnR5IG9mIGJ1aWx0aW4gSlNGdW5jdGlvbgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0RPTUZpbGVTeXN0
ZW0uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0RPTUZpbGVTeXN0ZW0u
Y3BwCmluZGV4IDllOWVjNWQxYzM4NmRlNDFhZGU1NGE3NTQwODA3MTZlOGM5OGFmMmYuLjM4YzM1
NGU1NWViNTlhOGY5ZDc1M2E0MjQ3MmIxOGIxZWZkNjgwZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9ET01GaWxlU3lzdGVtLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRE9NRmlsZVN5c3RlbS5jcHAKQEAgLTQ2LDcgKzQ2
LDcgQEAgc3RydWN0IExpc3RlZENoaWxkIHsKIHN0YXRpYyBFeGNlcHRpb25PcjxWZWN0b3I8TGlz
dGVkQ2hpbGQ+PiBsaXN0RGlyZWN0b3J5V2l0aE1ldGFkYXRhKGNvbnN0IFN0cmluZyYgZnVsbFBh
dGgpCiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7Ci0gICAgaWYgKCFmaWxlSXNEaXJl
Y3RvcnkoZnVsbFBhdGgpKQorICAgIGlmICghZmlsZUlzRGlyZWN0b3J5KGZ1bGxQYXRoLCBTaG91
bGRGb2xsb3dTeW1ib2xpY0xpbmtzOjpObykpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBO
b3RGb3VuZEVycm9yLCAiUGF0aCBubyBsb25nZXIgZXhpc3RzIG9yIGlzIG5vIGxvbmdlciBhIGRp
cmVjdG9yeSIgfTsKIAogICAgIGF1dG8gY2hpbGRQYXRocyA9IGxpc3REaXJlY3RvcnkoZnVsbFBh
dGgsICIqIik7CkBAIC01NCw3ICs1NCw3IEBAIHN0YXRpYyBFeGNlcHRpb25PcjxWZWN0b3I8TGlz
dGVkQ2hpbGQ+PiBsaXN0RGlyZWN0b3J5V2l0aE1ldGFkYXRhKGNvbnN0IFN0cmluZyYKICAgICBs
aXN0ZWRDaGlsZHJlbi5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGNoaWxkUGF0aHMuc2l6ZSgpKTsK
ICAgICBmb3IgKGF1dG8mIGNoaWxkUGF0aCA6IGNoaWxkUGF0aHMpIHsKICAgICAgICAgRmlsZU1l
dGFkYXRhIG1ldGFkYXRhOwotICAgICAgICBpZiAoIWdldEZpbGVNZXRhZGF0YShjaGlsZFBhdGgs
IG1ldGFkYXRhKSkKKyAgICAgICAgaWYgKCFnZXRGaWxlTWV0YWRhdGEoY2hpbGRQYXRoLCBtZXRh
ZGF0YSwgU2hvdWxkRm9sbG93U3ltYm9saWNMaW5rczo6Tm8pKQogICAgICAgICAgICAgY29udGlu
dWU7CiAgICAgICAgIGxpc3RlZENoaWxkcmVuLnVuY2hlY2tlZEFwcGVuZChMaXN0ZWRDaGlsZCB7
IHBhdGhHZXRGaWxlTmFtZShjaGlsZFBhdGgpLCBtZXRhZGF0YS50eXBlIH0pOwogICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCAwZTMwNDU4Y2JiMTNjNzlkMzdkNTE3MGZhMjM1YTE5NDY1ODUxYjA1Li4zMjE4ZDZmYTAxZDZk
ZGFlOWE4MzY1OGZiYzIzZWFkNjhiMmM2ZTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xOTM5LDcgKzE5MzksNyBAQAogCQk0
NjczMDIwMjFDNEVGRTc4MDBCQ0IzNTcgLyogSWdub3JlT3BlbnNEdXJpbmdVbmxvYWRDb3VudElu
Y3JlbWVudGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0NjczMDIwMTFDNEVGRTY2MDBCQ0IzNTcgLyogSWdub3JlT3BlbnNEdXJpbmdVbmxvYWRDb3Vu
dEluY3JlbWVudGVyLmggKi87IH07CiAJCTQ2ODM0NERGMUVEREZBQUEwMEI3Nzk1QiAvKiBET01S
ZWN0TGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0NjgzNDRERDFFRERGQTVGMDBCNzc5NUIgLyogRE9NUmVjdExpc3QuY3BwICovOyB9OwogCQk0
NjgzNDRFMDFFRERGQUFBMDBCNzc5NUIgLyogRE9NUmVjdExpc3QuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2ODM0NERFMUVEREZBNUYwMEI3Nzk1QiAv
KiBET01SZWN0TGlzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07Ci0JCTQ2ODlGMUFGMTI2N0JBRTEwMEU4RDM4MCAvKiBGaWxlTWV0YWRhdGEuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2ODlGMUFFMTI2N0JB
RTEwMEU4RDM4MCAvKiBGaWxlTWV0YWRhdGEuaCAqLzsgfTsKKwkJNDY4OUYxQUYxMjY3QkFFMTAw
RThEMzgwIC8qIEZpbGVNZXRhZGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDY4OUYxQUUxMjY3QkFFMTAwRThEMzgwIC8qIEZpbGVNZXRhZGF0YS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2QjYz
RjZDMUM2RThEMTkwMDJFOTE0QiAvKiBKU0V2ZW50VGFyZ2V0Q3VzdG9tLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkI2M0Y2QjFDNkU4Q0RGMDAyRTkx
NEIgLyogSlNFdmVudFRhcmdldEN1c3RvbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTQ2QzY5NkNCMUU3MjA1RjcwMDU5NzkzNyAvKiBDUFVNb25p
dG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkM2
OTZDOTFFNzIwNUU0MDA1OTc5MzcgLyogQ1BVTW9uaXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2QzY5NkNDMUU3MjA1RkMwMDU5NzkzNyAv
KiBDUFVNb25pdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQ2QzY5NkNBMUU3MjA1RTQwMDU5NzkzNyAvKiBDUFVNb25pdG9yLmNwcCAqLzsgfTsK
QEAgLTMxODM3LDcgKzMxODM3LDYgQEAKIAkJCQlBODcxREUyNTBBMTUyQUM4MDBCMTJBNjggLyog
SFRNTEhlYWRFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4RUE3Q0FFMEExOTJCOUMw
MEE4RUY1RiAvKiBIVE1MSGVhZGluZ0VsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThF
QTdDQjMwQTE5MkI5QzAwQThFRjVGIC8qIEhUTUxIUkVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8s
Ci0JCQkJRTQxRkE5QjkxRjU3NThGRjAwMzM4NThBIC8qIFJlbmRlclRyZWVVcGRhdGVyTXVsdGlD
b2x1bW4uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTg3MURFMjYwQTE1MkFDODAwQjEyQTY4IC8q
IEhUTUxIdG1sRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODcxREUyNDBBMTUyQUM4
MDBCMTJBNjggLyogSFRNTElGcmFtZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThF
QTdEMzEwQTE5Mzg1NTAwQThFRjVGIC8qIEhUTUxJbWFnZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMg
Ki8sCkBAIC0zMzQ0NCw2ICszMzQ0Myw3IEBACiAJCQkJRTQ4Mjg0MDgxRjQ0NTk0QzAwODYzQUMz
IC8qIFJlbmRlclRyZWVVcGRhdGVyRmlyc3RMZXR0ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
RTQ4RTMzMzExRjQ3NDM3MDAwQkFCMEVGIC8qIFJlbmRlclRyZWVVcGRhdGVyR2VuZXJhdGVkQ29u
dGVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFNDhFMzMyRDFGNDcwMzgwMDBCQUIwRUYgLyog
UmVuZGVyVHJlZVVwZGF0ZXJMaXN0SXRlbS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFNDFGQTlC
OTFGNTc1OEZGMDAzMzg1OEEgLyogUmVuZGVyVHJlZVVwZGF0ZXJNdWx0aUNvbHVtbi5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlFNDQ2MTQ1MTBDRDY4QTM1MDBGQURBNzUgLyogUmVuZGVyVmlkZW8u
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNFQTQ4NjcwOTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRl
clZpZXcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkUyMDUwN0QxOEE0NThCRjAwODA2NDdFIC8q
IFJlbmRlclZUVEN1ZS5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2ZpbGVhcGkvRmlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGUuY3BwCmlu
ZGV4IGI1MDhhYmY0NmQxMWZlMmUzZjk0Zjc3MjFiMDdhOTQ4N2RiYzExYTIuLjEzOGQ0YjJlNjI1
MjUyMjE0NGE0MTcwOWRkYzk3ZjUzOTljMWRiNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2ZpbGVhcGkvRmlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlLmNwcApA
QCAtMTMwLDcgKzEzMCw3IEBAIFN0cmluZyBGaWxlOjpjb250ZW50VHlwZUZvckZpbGUoY29uc3Qg
U3RyaW5nJiBwYXRoKQogYm9vbCBGaWxlOjppc0RpcmVjdG9yeSgpIGNvbnN0CiB7CiAgICAgaWYg
KCFtX2lzRGlyZWN0b3J5KQotICAgICAgICBtX2lzRGlyZWN0b3J5ID0gZmlsZUlzRGlyZWN0b3J5
KG1fcGF0aCk7CisgICAgICAgIG1faXNEaXJlY3RvcnkgPSBmaWxlSXNEaXJlY3RvcnkobV9wYXRo
LCBTaG91bGRGb2xsb3dTeW1ib2xpY0xpbmtzOjpZZXMpOwogICAgIHJldHVybiAqbV9pc0RpcmVj
dG9yeTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlTGlzdENyZWF0
b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlTGlzdENyZWF0b3IuY3BwCmluZGV4IDE5
YmQ0NGFlYTFkZGQxNmQxOTI5ZjIyZGFhMGQxOThiYmJmMzJhODEuLjQxOTJjNjNkZjE1OWNhMzNm
NDcwY2EwZGVkMTI5ODM2MTVjODg2MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
RmlsZUxpc3RDcmVhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVMaXN0Q3Jl
YXRvci5jcHAKQEAgLTQzLDcgKzQzLDcgQEAgc3RhdGljIHZvaWQgYXBwZW5kRGlyZWN0b3J5Rmls
ZXMoY29uc3QgU3RyaW5nJiBkaXJlY3RvcnksIGNvbnN0IFN0cmluZyYgcmVsYXRpdmUKIHsKICAg
ICBmb3IgKGF1dG8mIGNoaWxkUGF0aCA6IGxpc3REaXJlY3RvcnkoZGlyZWN0b3J5LCAiKiIpKSB7
CiAgICAgICAgIEZpbGVNZXRhZGF0YSBtZXRhZGF0YTsKLSAgICAgICAgaWYgKCFnZXRGaWxlTWV0
YWRhdGEoY2hpbGRQYXRoLCBtZXRhZGF0YSkpCisgICAgICAgIGlmICghZ2V0RmlsZU1ldGFkYXRh
KGNoaWxkUGF0aCwgbWV0YWRhdGEsIFNob3VsZEZvbGxvd1N5bWJvbGljTGlua3M6Ok5vKSkKICAg
ICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgIGlmIChtZXRhZGF0YS5pc0hpZGRlbikKQEAg
LTgwLDcgKzgwLDcgQEAgUmVmPEZpbGVMaXN0PiBGaWxlTGlzdENyZWF0b3I6OmNyZWF0ZUZpbGVM
aXN0KGNvbnN0IFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZvPiYKIHsKICAgICBWZWN0b3I8UmVm
UHRyPEZpbGU+PiBmaWxlT2JqZWN0czsKICAgICBmb3IgKGF1dG8mIGluZm8gOiBwYXRocykgewot
ICAgICAgICBpZiAoc2hvdWxkUmVzb2x2ZURpcmVjdG9yaWVzID09IFNob3VsZFJlc29sdmVEaXJl
Y3Rvcmllczo6WWVzICYmIGZpbGVJc0RpcmVjdG9yeShpbmZvLnBhdGgpKQorICAgICAgICBpZiAo
c2hvdWxkUmVzb2x2ZURpcmVjdG9yaWVzID09IFNob3VsZFJlc29sdmVEaXJlY3Rvcmllczo6WWVz
ICYmIGZpbGVJc0RpcmVjdG9yeShpbmZvLnBhdGgsIFNob3VsZEZvbGxvd1N5bWJvbGljTGlua3M6
Ok5vKSkKICAgICAgICAgICAgIGFwcGVuZERpcmVjdG9yeUZpbGVzKGluZm8ucGF0aCwgcGF0aEdl
dEZpbGVOYW1lKGluZm8ucGF0aCksIGZpbGVPYmplY3RzKTsKICAgICAgICAgZWxzZQogICAgICAg
ICAgICAgZmlsZU9iamVjdHMuYXBwZW5kKEZpbGU6OmNyZWF0ZVdpdGhOYW1lKGluZm8ucGF0aCwg
aW5mby5kaXNwbGF5TmFtZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
RmlsZVN5c3RlbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmNwcApp
bmRleCA0YWJkMzQzYTgxYTM4Mzg4OWY1ZDIzNDc5NDkwMTE4NzJhMzRmZjg5Li5kNTdhMGJkN2Uy
MmQ2ODY2M2E0ZmFjYWIwZmMwOWE0N2Y0NDIwMjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9G
aWxlU3lzdGVtLmNwcApAQCAtMzUxLDEwICszNTEsMTAgQEAgdm9pZCB1bmxvY2tBbmRDbG9zZUZp
bGUoUGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRsZSkKICAgICBjbG9zZUZpbGUoaGFuZGxlKTsKIH0K
IAotYm9vbCBmaWxlSXNEaXJlY3RvcnkoY29uc3QgU3RyaW5nJiBwYXRoKQorYm9vbCBmaWxlSXNE
aXJlY3RvcnkoY29uc3QgU3RyaW5nJiBwYXRoLCBTaG91bGRGb2xsb3dTeW1ib2xpY0xpbmtzIHNo
b3VsZEZvbGxvd1N5bWJvbGljTGlua3MpCiB7CiAgICAgRmlsZU1ldGFkYXRhIG1ldGFkYXRhOwot
ICAgIGlmICghZ2V0RmlsZU1ldGFkYXRhKHBhdGgsIG1ldGFkYXRhKSkKKyAgICBpZiAoIWdldEZp
bGVNZXRhZGF0YShwYXRoLCBtZXRhZGF0YSwgc2hvdWxkRm9sbG93U3ltYm9saWNMaW5rcykpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICByZXR1cm4gbWV0YWRhdGEudHlwZSA9PSBGaWxlTWV0
YWRhdGE6OlR5cGVEaXJlY3Rvcnk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9GaWxlU3lzdGVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmgK
aW5kZXggNTllMTMzZWU2YTNlMTgwNTcwMGFmOGEyMDQ2MjE5OGIxNGI1ZWU5My4uMTU5ZjFjYmQ1
YzlhN2QwNzQxNmZlYjQ4ODNmMWQ5NDc0Yzg5MDZiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Zp
bGVTeXN0ZW0uaApAQCAtODgsNiArODgsOCBAQCBlbnVtIEZpbGVMb2NrTW9kZSB7CiAgICAgTG9j
a05vbkJsb2NraW5nID0gNAogfTsKIAorZW51bSBjbGFzcyBTaG91bGRGb2xsb3dTeW1ib2xpY0xp
bmtzIHsgTm8sIFllcyB9OworCiBzdHJ1Y3QgRmlsZU1ldGFkYXRhOwogCiBXRUJDT1JFX0VYUE9S
VCBib29sIGZpbGVFeGlzdHMoY29uc3QgU3RyaW5nJik7CkBAIC05OCw4ICsxMDAsOCBAQCBXRUJD
T1JFX0VYUE9SVCBib29sIGdldEZpbGVTaXplKGNvbnN0IFN0cmluZyYsIGxvbmcgbG9uZyYgcmVz
dWx0KTsKIFdFQkNPUkVfRVhQT1JUIGJvb2wgZ2V0RmlsZVNpemUoUGxhdGZvcm1GaWxlSGFuZGxl
LCBsb25nIGxvbmcmIHJlc3VsdCk7CiBXRUJDT1JFX0VYUE9SVCBib29sIGdldEZpbGVNb2RpZmlj
YXRpb25UaW1lKGNvbnN0IFN0cmluZyYsIHRpbWVfdCYgcmVzdWx0KTsKIFdFQkNPUkVfRVhQT1JU
IGJvb2wgZ2V0RmlsZUNyZWF0aW9uVGltZShjb25zdCBTdHJpbmcmLCB0aW1lX3QmIHJlc3VsdCk7
IC8vIE5vdCBhbGwgcGxhdGZvcm1zIHN0b3JlIGZpbGUgY3JlYXRpb24gdGltZS4KLWJvb2wgZ2V0
RmlsZU1ldGFkYXRhKGNvbnN0IFN0cmluZyYsIEZpbGVNZXRhZGF0YSYpOwotYm9vbCBmaWxlSXNE
aXJlY3RvcnkoY29uc3QgU3RyaW5nJik7CitXRUJDT1JFX0VYUE9SVCBib29sIGdldEZpbGVNZXRh
ZGF0YShjb25zdCBTdHJpbmcmLCBGaWxlTWV0YWRhdGEmLCBTaG91bGRGb2xsb3dTeW1ib2xpY0xp
bmtzKTsKK2Jvb2wgZmlsZUlzRGlyZWN0b3J5KGNvbnN0IFN0cmluZyYsIFNob3VsZEZvbGxvd1N5
bWJvbGljTGlua3MpOwogV0VCQ09SRV9FWFBPUlQgU3RyaW5nIHBhdGhCeUFwcGVuZGluZ0NvbXBv
bmVudChjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFN0cmluZyYgY29tcG9uZW50KTsKIFN0cmlu
ZyBwYXRoQnlBcHBlbmRpbmdDb21wb25lbnRzKGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgVmVj
dG9yPFN0cmluZz4mIGNvbXBvbmVudHMpOwogU3RyaW5nIGxhc3RDb21wb25lbnRPZlBhdGhJZ25v
cmluZ1RyYWlsaW5nU2xhc2goY29uc3QgU3RyaW5nJiBwYXRoKTsKQEAgLTEwOSw2ICsxMTEsNyBA
QCBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgcGF0aEdldEZpbGVOYW1lKGNvbnN0IFN0cmluZyYpOwog
V0VCQ09SRV9FWFBPUlQgU3RyaW5nIGRpcmVjdG9yeU5hbWUoY29uc3QgU3RyaW5nJik7CiBXRUJD
T1JFX0VYUE9SVCBib29sIGdldFZvbHVtZUZyZWVTcGFjZShjb25zdCBTdHJpbmcmLCB1aW50NjRf
dCYpOwogV0VCQ09SRV9FWFBPUlQgc3RkOjpvcHRpb25hbDxpbnQzMl90PiBnZXRGaWxlRGV2aWNl
SWQoY29uc3QgQ1N0cmluZyYpOworV0VCQ09SRV9FWFBPUlQgYm9vbCBjcmVhdGVTeW1ib2xpY0xp
bmsoY29uc3QgU3RyaW5nJiB0YXJnZXRQYXRoLCBjb25zdCBTdHJpbmcmIHN5bWJvbGljTGlua1Bh
dGgpOwogCiBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE1ldGFkYXRhVVJMKGNvbnN0IFN0cmluZyYg
cGF0aCwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIgPSB7
IH0pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0ZpbGVTeXN0
ZW1HbGliLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvRmlsZVN5c3RlbUdsaWIu
Y3BwCmluZGV4IGUzYzVkNjNlODQ4MGRhNDgxOTU4MDlkNWEyZjZkMjE1NTk4OWUyYzMuLjc3YjA1
NTliMjk3NDM5ZDA2MjI4ODg4NGI2OWQ5Mjg2Y2JjYjgyMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dsaWIvRmlsZVN5c3RlbUdsaWIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dsaWIvRmlsZVN5c3RlbUdsaWIuY3BwCkBAIC0xMjMsNiArMTIzLDE1IEBA
IHN0YXRpYyBib29sIGdldEZpbGVTdGF0KGNvbnN0IFN0cmluZyYgcGF0aCwgR1N0YXRCdWYqIHN0
YXRCdWZmZXIpCiAgICAgcmV0dXJuIGdfc3RhdChmaWxlbmFtZS5nZXQoKSwgc3RhdEJ1ZmZlcikg
IT0gLTE7CiB9CiAKK3N0YXRpYyBib29sIGdldEZpbGVMU3RhdChjb25zdCBTdHJpbmcmIHBhdGgs
IEdTdGF0QnVmKiBzdGF0QnVmZmVyKQoreworICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGZpbGVuYW1l
ID0gdW5lc2NhcGVkRmlsZW5hbWUocGF0aCk7CisgICAgaWYgKCFmaWxlbmFtZSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIGdfbHN0YXQoZmlsZW5hbWUuZ2V0KCksIHN0YXRC
dWZmZXIpICE9IC0xOworfQorCiBib29sIGdldEZpbGVTaXplKGNvbnN0IFN0cmluZyYgcGF0aCwg
bG9uZyBsb25nJiByZXN1bHRTaXplKQogewogICAgIEdTdGF0QnVmIHN0YXRSZXN1bHQ7CkBAIC0x
NTUsMTEgKzE2NCwxNyBAQCBib29sIGdldEZpbGVNb2RpZmljYXRpb25UaW1lKGNvbnN0IFN0cmlu
ZyYgcGF0aCwgdGltZV90JiBtb2RpZmllZFRpbWUpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJv
b2wgZ2V0RmlsZU1ldGFkYXRhKGNvbnN0IFN0cmluZyYgcGF0aCwgRmlsZU1ldGFkYXRhJiBtZXRh
ZGF0YSkKK2Jvb2wgZ2V0RmlsZU1ldGFkYXRhKGNvbnN0IFN0cmluZyYgcGF0aCwgRmlsZU1ldGFk
YXRhJiBtZXRhZGF0YSwgU2hvdWxkRm9sbG93U3ltYm9saWNMaW5rcyBzaG91bGRGb2xsb3dTeW1i
b2xpY0xpbmtzKQogewogICAgIEdTdGF0QnVmIHN0YXRSZXN1bHQ7Ci0gICAgaWYgKCFnZXRGaWxl
U3RhdChwYXRoLCAmc3RhdFJlc3VsdCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlm
IChzaG91bGRGb2xsb3dTeW1ib2xpY0xpbmtzID09IFNob3VsZEZvbGxvd1N5bWJvbGljTGlua3M6
OlllcykgeworICAgICAgICBpZiAoIWdldEZpbGVTdGF0KHBhdGgsICZzdGF0UmVzdWx0KSkKKyAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAoIWdldEZp
bGVMU3RhdChwYXRoLCAmc3RhdFJlc3VsdCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgfQogCiAgICAgU3RyaW5nIGZpbGVuYW1lID0gcGF0aEdldEZpbGVOYW1lKHBhdGgpOwogICAg
IG1ldGFkYXRhLmlzSGlkZGVuID0gIWZpbGVuYW1lLmlzRW1wdHkoKSAmJiBmaWxlbmFtZVswXSA9
PSAnLic7CkBAIC0yMDMsNiArMjE4LDE5IEBAIFN0cmluZyBob21lRGlyZWN0b3J5UGF0aCgpCiAg
ICAgcmV0dXJuIHN0cmluZ0Zyb21GaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oZ19nZXRfaG9tZV9k
aXIoKSk7CiB9CiAKK2Jvb2wgY3JlYXRlU3ltYm9saWNMaW5rKGNvbnN0IFN0cmluZyYgdGFyZ2V0
UGF0aCwgY29uc3QgU3RyaW5nJiBzeW1ib2xpY0xpbmtQYXRoKQoreworICAgIENTdHJpbmcgdGFy
Z2V0UGF0aEZTUmVwID0gZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHRhcmdldFBhdGgpOworICAg
IGlmICghdGFyZ2V0UGF0aEZTUmVwLmRhdGEoKSB8fCB0YXJnZXRQYXRoRlNSZXAuZGF0YSgpWzBd
ID09ICdcMCcpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIENTdHJpbmcgc3ltYm9saWNM
aW5rUGF0aEZTUmVwID0gZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHN5bWJvbGljTGlua1BhdGgp
OworICAgIGlmICghc3ltYm9saWNMaW5rUGF0aEZTUmVwLmRhdGEoKSB8fCBzeW1ib2xpY0xpbmtQ
YXRoRlNSZXAuZGF0YSgpWzBdID09ICdcMCcpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IHJldHVybiAhc3ltbGluayh0YXJnZXRQYXRoRlNSZXAuZGF0YSgpLCBzeW1ib2xpY0xpbmtQYXRo
RlNSZXAuZGF0YSgpKTsKK30KKwogU3RyaW5nIHBhdGhHZXRGaWxlTmFtZShjb25zdCBTdHJpbmcm
IHBhdGhOYW1lKQogewogICAgIEdVbmlxdWVQdHI8Z2NoYXI+IHRtcEZpbGVuYW1lID0gdW5lc2Nh
cGVkRmlsZW5hbWUocGF0aE5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9CbG9iRGF0YUZpbGVSZWZlcmVuY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9CbG9iRGF0YUZpbGVSZWZlcmVuY2UuY3BwCmluZGV4IDFmOGNlMGI2Mzhm
ZjEyMmE0NzgyMzI5NGE5ODI0Y2NhMTc3ZjZkN2QuLjZkYzZkNjRhZTg3MTg1ZDBmMWNkMWVhODc3
NjgwOGRhM2M2NTVkN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvQmxvYkRhdGFGaWxlUmVmZXJlbmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL0Jsb2JEYXRhRmlsZVJlZmVyZW5jZS5jcHAKQEAgLTk2LDcgKzk2LDcgQEAgdm9p
ZCBCbG9iRGF0YUZpbGVSZWZlcmVuY2U6OnN0YXJ0VHJhY2tpbmdNb2RpZmljYXRpb25zKCkKIAog
ICAgIC8vIEZJWE1FOiBTb21lIHBsYXRmb3JtcyBwcm92aWRlIGJldHRlciB3YXlzIHRvIGxpc3Rl
biBmb3IgZmlsZSBzeXN0ZW0gb2JqZWN0IGNoYW5nZXMsIGNvbnNpZGVyIHVzaW5nIHRoZXNlLgog
ICAgIEZpbGVNZXRhZGF0YSBtZXRhZGF0YTsKLSAgICBpZiAoIWdldEZpbGVNZXRhZGF0YShtX3Bh
dGgsIG1ldGFkYXRhKSkKKyAgICBpZiAoIWdldEZpbGVNZXRhZGF0YShtX3BhdGgsIG1ldGFkYXRh
LCBTaG91bGRGb2xsb3dTeW1ib2xpY0xpbmtzOjpZZXMpKQogICAgICAgICByZXR1cm47CiAKICAg
ICBtX2V4cGVjdGVkTW9kaWZpY2F0aW9uVGltZSA9IG1ldGFkYXRhLm1vZGlmaWNhdGlvblRpbWU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9CbG9iRGF0
YUZpbGVSZWZlcmVuY2VNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21h
Yy9CbG9iRGF0YUZpbGVSZWZlcmVuY2VNYWMubW0KaW5kZXggMzJlOTU0NTg3YjkxMDNhZjNjMDI3
MTNhZGI5OWYyZmYzOWIzY2Y2Yi4uOGRhY2U3YTdlMDI2YTdiZDI1YjllM2MyODcxOThhZmFiN2Mw
YjYzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvQmxv
YkRhdGFGaWxlUmVmZXJlbmNlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvbWFjL0Jsb2JEYXRhRmlsZVJlZmVyZW5jZU1hYy5tbQpAQCAtODAsNyArODAsNyBAQCB2
b2lkIEJsb2JEYXRhRmlsZVJlZmVyZW5jZTo6Z2VuZXJhdGVSZXBsYWNlbWVudEZpbGUoKQogICAg
IG1fcmVwbGFjZW1lbnRTaG91bGRCZUdlbmVyYXRlZCA9IGZhbHNlOwogICAgIGlmICghbV9yZXBs
YWNlbWVudFBhdGguaXNOdWxsKCkpIHsKICAgICAgICAgRmlsZU1ldGFkYXRhIG1ldGFkYXRhOwot
ICAgICAgICBpZiAoZ2V0RmlsZU1ldGFkYXRhKG1fcmVwbGFjZW1lbnRQYXRoLCBtZXRhZGF0YSkp
CisgICAgICAgIGlmIChnZXRGaWxlTWV0YWRhdGEobV9yZXBsYWNlbWVudFBhdGgsIG1ldGFkYXRh
LCBTaG91bGRGb2xsb3dTeW1ib2xpY0xpbmtzOjpZZXMpKQogICAgICAgICAgICAgbV9zaXplID0g
bWV0YWRhdGEubGVuZ3RoOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vcG9zaXgvRmlsZVN5c3RlbVBPU0lYLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJWC5jcHAKaW5kZXggZWExNzZkZDA0ZWQzZTAwMjA1OGI4ZTYw
Mjg0NjNlYTFjMjgwMzU4YS4uZjRhYzFkMDdlNzg5MDVjNDc1NDBkMTFiZDgwNjk4ZDNjMDM5N2Y5
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcG9zaXgvRmlsZVN5c3RlbVBP
U0lYLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9wb3NpeC9GaWxlU3lzdGVtUE9T
SVguY3BwCkBAIC0yMzksNyArMjM5LDcgQEAgYm9vbCBnZXRGaWxlTW9kaWZpY2F0aW9uVGltZShj
b25zdCBTdHJpbmcmIHBhdGgsIHRpbWVfdCYgcmVzdWx0KQogICAgIHJldHVybiB0cnVlOwogfQog
Ci1ib29sIGdldEZpbGVNZXRhZGF0YShjb25zdCBTdHJpbmcmIHBhdGgsIEZpbGVNZXRhZGF0YSYg
bWV0YWRhdGEpCitib29sIGdldEZpbGVNZXRhZGF0YShjb25zdCBTdHJpbmcmIHBhdGgsIEZpbGVN
ZXRhZGF0YSYgbWV0YWRhdGEsIFNob3VsZEZvbGxvd1N5bWJvbGljTGlua3Mgc2hvdWxkRm9sbG93
U3ltYm9saWNMaW5rcykKIHsKICAgICBDU3RyaW5nIGZzUmVwID0gZmlsZVN5c3RlbVJlcHJlc2Vu
dGF0aW9uKHBhdGgpOwogCkBAIC0yNDcsOCArMjQ3LDE0IEBAIGJvb2wgZ2V0RmlsZU1ldGFkYXRh
KGNvbnN0IFN0cmluZyYgcGF0aCwgRmlsZU1ldGFkYXRhJiBtZXRhZGF0YSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCiAgICAgc3RydWN0IHN0YXQgZmlsZUluZm87Ci0gICAgaWYgKHN0YXQoZnNS
ZXAuZGF0YSgpLCAmZmlsZUluZm8pKQotICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAo
c2hvdWxkRm9sbG93U3ltYm9saWNMaW5rcyA9PSBTaG91bGRGb2xsb3dTeW1ib2xpY0xpbmtzOjpZ
ZXMpIHsKKyAgICAgICAgaWYgKHN0YXQoZnNSZXAuZGF0YSgpLCAmZmlsZUluZm8pKQorICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChsc3RhdChmc1Jl
cC5kYXRhKCksICZmaWxlSW5mbykpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQog
CiAgICAgU3RyaW5nIGZpbGVuYW1lID0gcGF0aEdldEZpbGVOYW1lKHBhdGgpOwogCkBAIC0yNjQs
NiArMjcwLDE5IEBAIGJvb2wgZ2V0RmlsZU1ldGFkYXRhKGNvbnN0IFN0cmluZyYgcGF0aCwgRmls
ZU1ldGFkYXRhJiBtZXRhZGF0YSkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBjcmVhdGVT
eW1ib2xpY0xpbmsoY29uc3QgU3RyaW5nJiB0YXJnZXRQYXRoLCBjb25zdCBTdHJpbmcmIHN5bWJv
bGljTGlua1BhdGgpCit7CisgICAgQ1N0cmluZyB0YXJnZXRQYXRoRlNSZXAgPSBmaWxlU3lzdGVt
UmVwcmVzZW50YXRpb24odGFyZ2V0UGF0aCk7CisgICAgaWYgKCF0YXJnZXRQYXRoRlNSZXAuZGF0
YSgpIHx8IHRhcmdldFBhdGhGU1JlcC5kYXRhKClbMF0gPT0gJ1wwJykKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgQ1N0cmluZyBzeW1ib2xpY0xpbmtQYXRoRlNSZXAgPSBmaWxlU3lzdGVt
UmVwcmVzZW50YXRpb24oc3ltYm9saWNMaW5rUGF0aCk7CisgICAgaWYgKCFzeW1ib2xpY0xpbmtQ
YXRoRlNSZXAuZGF0YSgpIHx8IHN5bWJvbGljTGlua1BhdGhGU1JlcC5kYXRhKClbMF0gPT0gJ1ww
JykKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuICFzeW1saW5rKHRhcmdldFBh
dGhGU1JlcC5kYXRhKCksIHN5bWJvbGljTGlua1BhdGhGU1JlcC5kYXRhKCkpOworfQorCiBTdHJp
bmcgcGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU3Ry
aW5nJiBjb21wb25lbnQpCiB7CiAgICAgaWYgKHBhdGguZW5kc1dpdGgoJy8nKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9GaWxlU3lzdGVtV2luLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9GaWxlU3lzdGVtV2luLmNwcAppbmRleCBhZjAwNzJmMGFh
YTQyMWUzYmI0NDlkN2MwOWMxZDMyZGM3MGYyNjEyLi5lMDFjZTA5YWMwZjljZWZhN2FlZjFjM2E3
OWJkYzU3OTRjNWZhMTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4v
RmlsZVN5c3RlbVdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0ZpbGVT
eXN0ZW1XaW4uY3BwCkBAIC0xNDEsMTIgKzE0MSwzOSBAQCBib29sIGdldEZpbGVDcmVhdGlvblRp
bWUoY29uc3QgU3RyaW5nJiBwYXRoLCB0aW1lX3QmIHRpbWUpCiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKLWJvb2wgZ2V0RmlsZU1ldGFkYXRhKGNvbnN0IFN0cmluZyYgcGF0aCwgRmlsZU1ldGFkYXRh
JiBtZXRhZGF0YSkKK3N0YXRpYyBTdHJpbmcgZ2V0RmluYWxQYXRoTmFtZShjb25zdCBTdHJpbmcm
IHBhdGgpCit7CisgICAgYXV0byBoYW5kbGUgPSBvcGVuRmlsZShwYXRoLCBPcGVuRm9yUmVhZCk7
CisgICAgaWYgKCFpc0hhbmRsZVZhbGlkKGhhbmRsZSkpCisgICAgICAgIHJldHVybiBTdHJpbmco
KTsKKworICAgIFZlY3RvcjxVQ2hhcj4gYnVmZmVyKE1BWF9QQVRIKTsKKyAgICBpZiAoOjpHZXRG
aW5hbFBhdGhOYW1lQnlIYW5kbGVXKGhhbmRsZSwgYnVmZmVyLmRhdGEoKSwgYnVmZmVyLnNpemUo
KSwgVk9MVU1FX05BTUVfTlQpID49IE1BWF9QQVRIKSB7CisgICAgICAgIGNsb3NlRmlsZShoYW5k
bGUpOworICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisgICAgfQorICAgIGNsb3NlRmlsZShoYW5k
bGUpOworCisgICAgYnVmZmVyLnNocmluayh3Y3NsZW4oYnVmZmVyLmRhdGEoKSkpOworICAgIHJl
dHVybiBTdHJpbmc6OmFkb3B0KFdURk1vdmUoYnVmZmVyKSk7Cit9CisKK2Jvb2wgZ2V0RmlsZU1l
dGFkYXRhKGNvbnN0IFN0cmluZyYgcGF0aCwgRmlsZU1ldGFkYXRhJiBtZXRhZGF0YSwgU2hvdWxk
Rm9sbG93U3ltYm9saWNMaW5rcyBzaG91bGRGb2xsb3dTeW1ib2xpY0xpbmtzKQogewogICAgIFdJ
TjMyX0ZJTkRfREFUQVcgZmluZERhdGE7CiAgICAgaWYgKCFnZXRGaW5kRGF0YShwYXRoLCBmaW5k
RGF0YSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIGJvb2wgaXNTeW1ib2xpY0xpbmsg
PSBmaW5kRGF0YS5kd0ZpbGVBdHRyaWJ1dGVzICYgRklMRV9BVFRSSUJVVEVfUkVQQVJTRV9QT0lO
VCAmJiBmaW5kRGF0YS5kd1Jlc2VydmVkMCA9PSBJT19SRVBBUlNFX1RBR19TWU1MSU5LOworICAg
IGlmIChpc1N5bWJvbGljTGluayAmJiBzaG91bGRGb2xsb3dTeW1ib2xpY0xpbmtzID09IFNob3Vs
ZEZvbGxvd1N5bWJvbGljTGlua3M6OlllcykgeworICAgICAgICBTdHJpbmcgdGFyZ2V0UGF0aCA9
IGdldEZpbmFsUGF0aE5hbWUocGF0aCk7CisgICAgICAgIGlmICh0YXJnZXRQYXRoLmlzTnVsbCgp
KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoIWdldEZpbmREYXRhKHRh
cmdldFBhdGgsIGZpbmREYXRhKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAg
aXNTeW1ib2xpY0xpbmsgPSBmYWxzZTsKKyAgICB9CisKICAgICBpZiAoIWdldEZpbGVTaXplRnJv
bUZpbmREYXRhKGZpbmREYXRhLCBtZXRhZGF0YS5sZW5ndGgpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKQEAgLTE1NCwxMSArMTgxLDIxIEBAIGJvb2wgZ2V0RmlsZU1ldGFkYXRhKGNvbnN0IFN0
cmluZyYgcGF0aCwgRmlsZU1ldGFkYXRhJiBtZXRhZGF0YSkKICAgICBnZXRGaWxlTW9kaWZpY2F0
aW9uVGltZUZyb21GaW5kRGF0YShmaW5kRGF0YSwgbW9kaWZpY2F0aW9uVGltZSk7CiAgICAgbWV0
YWRhdGEubW9kaWZpY2F0aW9uVGltZSA9IG1vZGlmaWNhdGlvblRpbWU7CiAgICAgbWV0YWRhdGEu
aXNIaWRkZW4gPSBmaW5kRGF0YS5kd0ZpbGVBdHRyaWJ1dGVzICYgRklMRV9BVFRSSUJVVEVfSElE
REVOOwotICAgIG1ldGFkYXRhLnR5cGUgPSAoZmluZERhdGEuZHdGaWxlQXR0cmlidXRlcyAmIEZJ
TEVfQVRUUklCVVRFX0RJUkVDVE9SWSkgPyBGaWxlTWV0YWRhdGE6OlR5cGVEaXJlY3RvcnkgOiBG
aWxlTWV0YWRhdGE6OlR5cGVGaWxlOworICAgIGlmIChmaW5kRGF0YS5kd0ZpbGVBdHRyaWJ1dGVz
ICYgRklMRV9BVFRSSUJVVEVfRElSRUNUT1JZKQorICAgICAgICBtZXRhZGF0YS50eXBlID0gRmls
ZU1ldGFkYXRhOjpUeXBlRGlyZWN0b3J5OworICAgIGVsc2UgaWYgKGlzU3ltYm9saWNMaW5rKQor
ICAgICAgICBtZXRhZGF0YS50eXBlID0gRmlsZU1ldGFkYXRhOjpUeXBlU3ltYm9saWNMaW5rOwor
ICAgIGVsc2UKKyAgICAgICAgbWV0YWRhdGEudHlwZSA9IEZpbGVNZXRhZGF0YTo6VHlwZUZpbGU7
CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBjcmVhdGVTeW1ib2xpY0xpbmsoY29uc3Qg
U3RyaW5nJiB0YXJnZXRQYXRoLCBjb25zdCBTdHJpbmcmIHN5bWJvbGljTGlua1BhdGgpCit7Cisg
ICAgcmV0dXJuICE6OkNyZWF0ZVN5bWJvbGljTGlua1coc3ltYm9saWNMaW5rUGF0aC5jaGFyYWN0
ZXJzV2l0aE51bGxUZXJtaW5hdGlvbigpLmRhdGEoKSwgdGFyZ2V0UGF0aC5jaGFyYWN0ZXJzV2l0
aE51bGxUZXJtaW5hdGlvbigpLmRhdGEoKSwgMCk7Cit9CisKIGJvb2wgZmlsZUV4aXN0cyhjb25z
dCBTdHJpbmcmIHBhdGgpCiB7CiAgICAgV0lOMzJfRklORF9EQVRBVyBmaW5kRGF0YTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAzNzZlZDA5N2Vj
Y2IyZjY1ZTdiYmMyNzk2NjI1ZmYxNzI5ZGQzMmRjLi5kYjdkNjk2ZTdiMjAwMmEzYTc1ZGI0NzVj
NzFkMjA0ZjllYWZlYmM0IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTctMDgtMzEgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBnZXRGaWxlTWV0YWRhdGEoKSBkb2VzIG5vdCB3b3Jr
IGFzIGV4cGVjdGVkIGZvciBzeW1ib2xpYyBsaW5rcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2MTQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEFQSSB0ZXN0IGNvdmVyYWdlLgorCisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVTeXN0ZW0uY3BwOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6VEVTVF9GKToKKwogMjAxNy0wOC0zMSAgQ2FybG9zIEdhcmNpYSBDYW1w
b3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gU2V2ZXJhbCBJbnB1dE1l
dGhvZEZpbHRlciB0ZXN0cyBhcmUgZmFpbGluZyBhbmQgY3Jhc2hpbmcKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlU3lzdGVtLmNwcCBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlU3lzdGVtLmNwcAppbmRleCA4YTRhNzhjNjUz
YTdiYzM5ZDMyZGU5MmFhNjVjNDkwZjQzNjg5MWY0Li5iYTJiNTU5MzUwNTZlZDliOThkODBlZDRh
NjBiODFhMTVmNzRkYTMyIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvRmlsZVN5c3RlbS5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL0ZpbGVTeXN0ZW0uY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAKICNpbmNsdWRlICJUZXN0LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GaWxlTWV0YWRhdGEuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW0uaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVh
ZC5oPgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdFeHRyYXMuaD4KQEAgLTExOSw0ICsxMjAsMjAgQEAg
VEVTVF9GKEZpbGVTeXN0ZW1UZXN0LCBGaWxlc0hhdmVTYW1lVm9sdW1lKQogICAgIEVYUEVDVF9U
UlVFKGZpbGVzSGF2ZVNhbWVWb2x1bWUoYmFuZ0NvbnRhaW5pbmdGaWxlUGF0aCgpLCBxdW90ZUNv
bnRhaW5pbmdGaWxlUGF0aCgpKSk7CiB9CiAKK1RFU1RfRihGaWxlU3lzdGVtVGVzdCwgR2V0Rmls
ZU1ldGFkYXRhU3ltbGluaykKK3sKKyAgICBTdHJpbmcgc3ltbGlua1BhdGggPSB0ZW1wRmlsZVBh
dGgoKSArICItc3ltbGluayI7CisgICAgRVhQRUNUX1RSVUUoY3JlYXRlU3ltYm9saWNMaW5rKHRl
bXBGaWxlUGF0aCgpLCBzeW1saW5rUGF0aCkpOworCisgICAgRmlsZU1ldGFkYXRhIHN5bWxpbmtN
ZXRhZGF0YTsKKyAgICBFWFBFQ1RfVFJVRShnZXRGaWxlTWV0YWRhdGEoc3ltbGlua1BhdGgsIHN5
bWxpbmtNZXRhZGF0YSwgU2hvdWxkRm9sbG93U3ltYm9saWNMaW5rczo6Tm8pKTsKKyAgICBFWFBF
Q1RfVFJVRShzeW1saW5rTWV0YWRhdGEudHlwZSA9PSBGaWxlTWV0YWRhdGE6OlR5cGVTeW1ib2xp
Y0xpbmspOworICAgIEVYUEVDVF9GQUxTRShzdGF0aWNfY2FzdDxzaXplX3Q+KHN5bWxpbmtNZXRh
ZGF0YS5sZW5ndGgpID09IHN0cmxlbihGaWxlU3lzdGVtVGVzdERhdGEpKTsKKworICAgIEZpbGVN
ZXRhZGF0YSB0YXJnZXRNZXRhZGF0YTsKKyAgICBFWFBFQ1RfVFJVRShnZXRGaWxlTWV0YWRhdGEo
c3ltbGlua1BhdGgsIHRhcmdldE1ldGFkYXRhLCBTaG91bGRGb2xsb3dTeW1ib2xpY0xpbmtzOjpZ
ZXMpKTsKKyAgICBFWFBFQ1RfVFJVRSh0YXJnZXRNZXRhZGF0YS50eXBlID09IEZpbGVNZXRhZGF0
YTo6VHlwZUZpbGUpOworICAgIEVYUEVDVF9FUShzdHJsZW4oRmlsZVN5c3RlbVRlc3REYXRhKSwg
c3RhdGljX2Nhc3Q8c2l6ZV90Pih0YXJnZXRNZXRhZGF0YS5sZW5ndGgpKTsKK30KKwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319481</attachid>
            <date>2017-08-31 11:05:54 -0700</date>
            <delta_ts>2017-08-31 13:01:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176143-20170831110554.patch</filename>
            <type>text/plain</type>
            <size>22029</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxNDIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDNjYzEyYTc4ODk1Zjc3
YjlhM2NkNTNlZTAzNWM5YTkwMjkwZDcwYi4uZmFkYTYzNDRmYjBlZGU3MGFmMTMwYzcwMzYxMGRi
MzYxYmZiMGI5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDE3LTA4LTMxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgZ2V0RmlsZU1ldGFkYXRhKCkg
ZG9lcyBub3Qgd29yayBhcyBleHBlY3RlZCBmb3Igc3ltYm9saWMgbGlua3MKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjE0MworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGdldEZpbGVNZXRhZGF0YSgpIGRv
ZXMgbm90IHdvcmsgYXMgZXhwZWN0ZWQgZm9yIHN5bWJvbGljIGxpbmtzOgorICAgICAgICBPbiBQ
T1NJWCwgZ2V0RmlsZU1ldGFkYXRhKCkgYWx3YXlzIGZvbGxvd2VkIHN5bWxpbmtzLCB3aGljaCBt
ZWFudCB0aGF0IEZpbGVNZXRhZGF0YS50eXBlIGNvdWxkCisgICAgICAgIG5ldmVyIGJlIFR5cGVT
eW1ib2xpY0xpbmsuIE9uIFdpbmRvd3MsIHRoZSBmdW5jdGlvbiBwcm9wZXJseSBkaWQgbm90IGZv
bGxvdyBzeW1saW5rcyBidXQgZmFpbGVkIHRvIHNldAorICAgICAgICBGaWxlTWV0YWRhdGEudHlw
ZSB0byBUeXBlU3ltYm9saWNMaW5rIHdoZW4gdGhlIGZpbGUgd2FzIGEgc3ltYm9saWMgbGluay4K
KworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgYSBuZXcgU2hvdWxkRm9sbG93U3ltYm9saWNMaW5r
cyBwYXJhbWV0ZXIgdG8gZ2V0RmlsZU1ldGFkYXRhKCkgc28gdGhhdAorICAgICAgICB0aGUgY2Fs
bCBzaXRlIGNhbiBkZWNpZGUgdGhlIGJlaGF2aW9yIGl0IHdhbnRzLiBJZiBnZXRGaWxlTWV0YWRh
dGEoKSBpcyBjYWxsZWQgb24gYQorICAgICAgICBzeW1ib2xpYyBsaW5rIHdpdGggU2hvdWxkRm9s
bG93U3ltYm9saWNMaW5rczo6Tm8gYXMgcGFyYW1ldGVyLCBGaWxlTWV0YWRhdGEudHlwZSBpcyBu
b3cKKyAgICAgICAgcHJvcGVybHkgc2V0IHRvIFR5cGVTeW1ib2xpY0xpbmsuCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzLCBjb3ZlcmVkIGJ5IG5ldyBBUEkgdGVzdC4KKworICAgICAgICAqIE1vZHVs
ZXMvZW50cmllc2FwaS9ET01GaWxlU3lzdGVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Omxpc3RE
aXJlY3RvcnlXaXRoTWV0YWRhdGEpOgorICAgICAgICBJdCBpcyBpbXBvcnRhbnQgd2UgZG8gbm90
IGZvbGxvdyBzeW1saW5rcyBoZXJlIHNpbmNlIHRoZSBjb2RlIHdhbnRzIHRvIGRpc2NhcmQgdGhl
bQorICAgICAgICBhbmQgZG9lcyBzbyBieSBjaGVja2luZyBGaWxlTWV0YWRhdGEudHlwZS4KKwor
ICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBm
aWxlYXBpL0ZpbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZTo6aXNEaXJlY3RvcnkgY29u
c3QpOgorCisgICAgICAgICogaHRtbC9GaWxlTGlzdENyZWF0b3IuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6YXBwZW5kRGlyZWN0b3J5RmlsZXMpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZUxpc3RD
cmVhdG9yOjpjcmVhdGVGaWxlTGlzdCk6CisgICAgICAgIEl0IGlzIGltcG9ydGFudCB3ZSBkbyBu
b3QgZm9sbG93IHN5bWxpbmtzIGhlcmUgc2luY2UgdGhlIGNvZGUgd2FudHMgdG8gZGlzY2FyZCB0
aGVtCisgICAgICAgIGFuZCBkb2VzIHNvIGJ5IGNoZWNraW5nIEZpbGVNZXRhZGF0YS50eXBlLgor
CisgICAgICAgICogcGxhdGZvcm0vRmlsZVN5c3RlbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpm
aWxlSXNEaXJlY3RvcnkpOgorICAgICAgICAqIHBsYXRmb3JtL0ZpbGVTeXN0ZW0uaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmdldEZpbGVMU3RhdCk6CisgICAgICAgIChXZWJDb3JlOjpnZXRGaWxlTWV0YWRhdGEpOgorICAg
ICAgICAqIHBsYXRmb3JtL3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJWC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpnZXRGaWxlTWV0YWRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlU3ltYm9saWNM
aW5rKToKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vRmlsZVN5c3RlbVdpbi5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpnZXRGaW5hbFBhdGhOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OmdldEZpbGVN
ZXRhZGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVTeW1ib2xpY0xpbmspOgorICAgICAg
ICAtIEFkZCBuZXcgY3JlYXRlU3ltYm9saWNMaW5rKCkgZnVuY3Rpb24gZm9yIHRlc3RpbmcgcHVy
cG9zZXMuCisgICAgICAgIC0gT24gUG9zaXgsIGNhbGwgbHN0YXQoKSBpbnN0ZWFkIG9mIHN0YXQg
aWYgU2hvdWxkRm9sbG93U3ltYm9saWNMaW5rczo6Tm8uCisgICAgICAgIC0gT24gV2luZG93cywg
c2luY2UgRmluZEZpcnN0RmlsZVcoKSBkb2VzIG5vdCBmb2xsb3cgc3ltbGlua3MsIHJlc29sdmUK
KyAgICAgICAgICBmaW5hbCBwYXRoIHVzaW5nIEdldEZpbmFsUGF0aE5hbWVCeUhhbmRsZVcoKSBp
ZiBTaG91bGRGb2xsb3dTeW1ib2xpY0xpbmtzOjpZZXMuCisgICAgICAgIC0gT24gV2luZG93cywg
cHJvcGVybHkgc2V0IEZpbGVNZXRhZGF0YS50eXBlIHRvIFR5cGVTeW1ib2xpY0xpbmsgaWYgdGhl
IGZpbGUKKyAgICAgICAgICBpcyBhIHN5bWJvbGljIGxpbmsuCisKIDIwMTctMDgtMjIgIERhcmlu
IEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyMjAwNTIp
OiBBU1NFUlRJT04gRkFJTEVEOiAhZnJhbWUoKS5pc01haW5GcmFtZSgpIHx8ICFuZWVkc1N0eWxl
UmVjYWxjT3JMYXlvdXQoKSAgaW4gV2ViQ29yZTo6RnJhbWVWaWV3Ojp1cGRhdGVMYXlvdXRBbmRT
dHlsZUlmTmVlZGVkUmVjdXJzaXZlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZW50cmllc2FwaS9ET01GaWxlU3lzdGVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZW50cmllc2FwaS9ET01GaWxlU3lzdGVtLmNwcAppbmRleCA5ZTllYzVkMWMzODZkZTQxYWRlNTRh
NzU0MDgwNzE2ZThjOThhZjJmLi4zOGMzNTRlNTVlYjU5YThmOWQ3NTNhNDI0NzJiMThiMWVmZDY4
MGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRE9NRmls
ZVN5c3RlbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0RPTUZp
bGVTeXN0ZW0uY3BwCkBAIC00Niw3ICs0Niw3IEBAIHN0cnVjdCBMaXN0ZWRDaGlsZCB7CiBzdGF0
aWMgRXhjZXB0aW9uT3I8VmVjdG9yPExpc3RlZENoaWxkPj4gbGlzdERpcmVjdG9yeVdpdGhNZXRh
ZGF0YShjb25zdCBTdHJpbmcmIGZ1bGxQYXRoKQogewogICAgIEFTU0VSVCghaXNNYWluVGhyZWFk
KCkpOwotICAgIGlmICghZmlsZUlzRGlyZWN0b3J5KGZ1bGxQYXRoKSkKKyAgICBpZiAoIWZpbGVJ
c0RpcmVjdG9yeShmdWxsUGF0aCwgU2hvdWxkRm9sbG93U3ltYm9saWNMaW5rczo6Tm8pKQogICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90Rm91bmRFcnJvciwgIlBhdGggbm8gbG9uZ2VyIGV4
aXN0cyBvciBpcyBubyBsb25nZXIgYSBkaXJlY3RvcnkiIH07CiAKICAgICBhdXRvIGNoaWxkUGF0
aHMgPSBsaXN0RGlyZWN0b3J5KGZ1bGxQYXRoLCAiKiIpOwpAQCAtNTQsNyArNTQsNyBAQCBzdGF0
aWMgRXhjZXB0aW9uT3I8VmVjdG9yPExpc3RlZENoaWxkPj4gbGlzdERpcmVjdG9yeVdpdGhNZXRh
ZGF0YShjb25zdCBTdHJpbmcmCiAgICAgbGlzdGVkQ2hpbGRyZW4ucmVzZXJ2ZUluaXRpYWxDYXBh
Y2l0eShjaGlsZFBhdGhzLnNpemUoKSk7CiAgICAgZm9yIChhdXRvJiBjaGlsZFBhdGggOiBjaGls
ZFBhdGhzKSB7CiAgICAgICAgIEZpbGVNZXRhZGF0YSBtZXRhZGF0YTsKLSAgICAgICAgaWYgKCFn
ZXRGaWxlTWV0YWRhdGEoY2hpbGRQYXRoLCBtZXRhZGF0YSkpCisgICAgICAgIGlmICghZ2V0Rmls
ZU1ldGFkYXRhKGNoaWxkUGF0aCwgbWV0YWRhdGEsIFNob3VsZEZvbGxvd1N5bWJvbGljTGlua3M6
Ok5vKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBsaXN0ZWRDaGlsZHJlbi51bmNo
ZWNrZWRBcHBlbmQoTGlzdGVkQ2hpbGQgeyBwYXRoR2V0RmlsZU5hbWUoY2hpbGRQYXRoKSwgbWV0
YWRhdGEudHlwZSB9KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMGUzMDQ1OGNiYjEzYzc5ZDM3ZDUxNzBmYTIzNWEx
OTQ2NTg1MWIwNS4uMzIxOGQ2ZmEwMWQ2ZGRhZTlhODM2NThmYmMyM2VhZDY4YjJjNmUxZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMTkzOSw3ICsxOTM5LDcgQEAKIAkJNDY3MzAyMDIxQzRFRkU3ODAwQkNCMzU3IC8qIElnbm9y
ZU9wZW5zRHVyaW5nVW5sb2FkQ291bnRJbmNyZW1lbnRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY3MzAyMDExQzRFRkU2NjAwQkNCMzU3IC8qIEln
bm9yZU9wZW5zRHVyaW5nVW5sb2FkQ291bnRJbmNyZW1lbnRlci5oICovOyB9OwogCQk0NjgzNDRE
RjFFRERGQUFBMDBCNzc5NUIgLyogRE9NUmVjdExpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY4MzQ0REQxRURERkE1RjAwQjc3OTVCIC8qIERP
TVJlY3RMaXN0LmNwcCAqLzsgfTsKIAkJNDY4MzQ0RTAxRURERkFBQTAwQjc3OTVCIC8qIERPTVJl
Y3RMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
NjgzNDRERTFFRERGQTVGMDBCNzc5NUIgLyogRE9NUmVjdExpc3QuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk0Njg5RjFBRjEyNjdCQUUxMDBFOEQz
ODAgLyogRmlsZU1ldGFkYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0Njg5RjFBRTEyNjdCQUUxMDBFOEQzODAgLyogRmlsZU1ldGFkYXRhLmggKi87
IH07CisJCTQ2ODlGMUFGMTI2N0JBRTEwMEU4RDM4MCAvKiBGaWxlTWV0YWRhdGEuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2ODlGMUFFMTI2N0JBRTEw
MEU4RDM4MCAvKiBGaWxlTWV0YWRhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk0NkI2M0Y2QzFDNkU4RDE5MDAyRTkxNEIgLyogSlNFdmVudFRh
cmdldEN1c3RvbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDZCNjNGNkIxQzZFOENERjAwMkU5MTRCIC8qIEpTRXZlbnRUYXJnZXRDdXN0b20uaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NkM2OTZDQjFF
NzIwNUY3MDA1OTc5MzcgLyogQ1BVTW9uaXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDZDNjk2QzkxRTcyMDVFNDAwNTk3OTM3IC8qIENQVU1vbml0
b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0
NkM2OTZDQzFFNzIwNUZDMDA1OTc5MzcgLyogQ1BVTW9uaXRvci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkM2OTZDQTFFNzIwNUU0MDA1OTc5Mzcg
LyogQ1BVTW9uaXRvci5jcHAgKi87IH07CkBAIC0zMTgzNyw3ICszMTgzNyw2IEBACiAJCQkJQTg3
MURFMjUwQTE1MkFDODAwQjEyQTY4IC8qIEhUTUxIZWFkRWxlbWVudC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBOEVBN0NBRTBBMTkyQjlDMDBBOEVGNUYgLyogSFRNTEhlYWRpbmdFbGVtZW50LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUE4RUE3Q0IzMEExOTJCOUMwMEE4RUY1RiAvKiBIVE1MSFJF
bGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUU0MUZBOUI5MUY1NzU4RkYwMDMzODU4QSAv
KiBSZW5kZXJUcmVlVXBkYXRlck11bHRpQ29sdW1uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4
NzFERTI2MEExNTJBQzgwMEIxMkE2OCAvKiBIVE1MSHRtbEVsZW1lbnQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQTg3MURFMjQwQTE1MkFDODAwQjEyQTY4IC8qIEhUTUxJRnJhbWVFbGVtZW50LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUE4RUE3RDMxMEExOTM4NTUwMEE4RUY1RiAvKiBIVE1MSW1h
Z2VFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMzM0NDQsNiArMzM0NDMsNyBAQAogCQkJ
CUU0ODI4NDA4MUY0NDU5NEMwMDg2M0FDMyAvKiBSZW5kZXJUcmVlVXBkYXRlckZpcnN0TGV0dGVy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUU0OEUzMzMxMUY0NzQzNzAwMEJBQjBFRiAvKiBSZW5k
ZXJUcmVlVXBkYXRlckdlbmVyYXRlZENvbnRlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTQ4
RTMzMkQxRjQ3MDM4MDAwQkFCMEVGIC8qIFJlbmRlclRyZWVVcGRhdGVyTGlzdEl0ZW0uY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJRTQxRkE5QjkxRjU3NThGRjAwMzM4NThBIC8qIFJlbmRlclRyZWVV
cGRhdGVyTXVsdGlDb2x1bW4uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTQ0NjE0NTEwQ0Q2OEEz
NTAwRkFEQTc1IC8qIFJlbmRlclZpZGVvLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDRUE0ODY3
MDk3RDkzMDIwMDk0QzlFNCAvKiBSZW5kZXJWaWV3LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJF
MjA1MDdEMThBNDU4QkYwMDgwNjQ3RSAvKiBSZW5kZXJWVFRDdWUuY3BwIGluIFNvdXJjZXMgKi8s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvZmlsZWFwaS9GaWxlLmNwcAppbmRleCBiNTA4YWJmNDZkMTFmZTJlM2Y5NGY3NzIxYjA3
YTk0ODdkYmMxMWEyLi4xMzhkNGIyZTYyNTI1MjIxNDRhNDE3MDlkZGM5N2Y1Mzk5YzFkYjZiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2ZpbGVhcGkvRmlsZS5jcHAKQEAgLTEzMCw3ICsxMzAsNyBAQCBTdHJpbmcgRmlsZTo6
Y29udGVudFR5cGVGb3JGaWxlKGNvbnN0IFN0cmluZyYgcGF0aCkKIGJvb2wgRmlsZTo6aXNEaXJl
Y3RvcnkoKSBjb25zdAogewogICAgIGlmICghbV9pc0RpcmVjdG9yeSkKLSAgICAgICAgbV9pc0Rp
cmVjdG9yeSA9IGZpbGVJc0RpcmVjdG9yeShtX3BhdGgpOworICAgICAgICBtX2lzRGlyZWN0b3J5
ID0gZmlsZUlzRGlyZWN0b3J5KG1fcGF0aCwgU2hvdWxkRm9sbG93U3ltYm9saWNMaW5rczo6WWVz
KTsKICAgICByZXR1cm4gKm1faXNEaXJlY3Rvcnk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvRmlsZUxpc3RDcmVhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmls
ZUxpc3RDcmVhdG9yLmNwcAppbmRleCAxOWJkNDRhZWExZGRkMTZkMTkyOWYyMmRhYTBkMTk4YmJi
ZjMyYTgxLi40MTkyYzYzZGYxNTljYTMzZjQ3MGNhMGRlZDEyOTgzNjE1Yzg4NjAzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVMaXN0Q3JlYXRvci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9GaWxlTGlzdENyZWF0b3IuY3BwCkBAIC00Myw3ICs0Myw3IEBAIHN0YXRp
YyB2b2lkIGFwcGVuZERpcmVjdG9yeUZpbGVzKGNvbnN0IFN0cmluZyYgZGlyZWN0b3J5LCBjb25z
dCBTdHJpbmcmIHJlbGF0aXZlCiB7CiAgICAgZm9yIChhdXRvJiBjaGlsZFBhdGggOiBsaXN0RGly
ZWN0b3J5KGRpcmVjdG9yeSwgIioiKSkgewogICAgICAgICBGaWxlTWV0YWRhdGEgbWV0YWRhdGE7
Ci0gICAgICAgIGlmICghZ2V0RmlsZU1ldGFkYXRhKGNoaWxkUGF0aCwgbWV0YWRhdGEpKQorICAg
ICAgICBpZiAoIWdldEZpbGVNZXRhZGF0YShjaGlsZFBhdGgsIG1ldGFkYXRhLCBTaG91bGRGb2xs
b3dTeW1ib2xpY0xpbmtzOjpObykpCiAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICBp
ZiAobWV0YWRhdGEuaXNIaWRkZW4pCkBAIC04MCw3ICs4MCw3IEBAIFJlZjxGaWxlTGlzdD4gRmls
ZUxpc3RDcmVhdG9yOjpjcmVhdGVGaWxlTGlzdChjb25zdCBWZWN0b3I8RmlsZUNob29zZXJGaWxl
SW5mbz4mCiB7CiAgICAgVmVjdG9yPFJlZlB0cjxGaWxlPj4gZmlsZU9iamVjdHM7CiAgICAgZm9y
IChhdXRvJiBpbmZvIDogcGF0aHMpIHsKLSAgICAgICAgaWYgKHNob3VsZFJlc29sdmVEaXJlY3Rv
cmllcyA9PSBTaG91bGRSZXNvbHZlRGlyZWN0b3JpZXM6OlllcyAmJiBmaWxlSXNEaXJlY3Rvcnko
aW5mby5wYXRoKSkKKyAgICAgICAgaWYgKHNob3VsZFJlc29sdmVEaXJlY3RvcmllcyA9PSBTaG91
bGRSZXNvbHZlRGlyZWN0b3JpZXM6OlllcyAmJiBmaWxlSXNEaXJlY3RvcnkoaW5mby5wYXRoLCBT
aG91bGRGb2xsb3dTeW1ib2xpY0xpbmtzOjpObykpCiAgICAgICAgICAgICBhcHBlbmREaXJlY3Rv
cnlGaWxlcyhpbmZvLnBhdGgsIHBhdGhHZXRGaWxlTmFtZShpbmZvLnBhdGgpLCBmaWxlT2JqZWN0
cyk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGZpbGVPYmplY3RzLmFwcGVuZChGaWxlOjpj
cmVhdGVXaXRoTmFtZShpbmZvLnBhdGgsIGluZm8uZGlzcGxheU5hbWUpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vRmlsZVN5c3RlbS5jcHAKaW5kZXggNGFiZDM0M2E4MWEzODM4ODlmNWQyMzQ3OTQ5
MDExODcyYTM0ZmY4OS4uZDU3YTBiZDdlMjJkNjg2NjNhNGZhY2FiMGZjMDlhNDdmNDQyMDI0OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5jcHAKQEAgLTM1MSwxMCArMzUxLDEw
IEBAIHZvaWQgdW5sb2NrQW5kQ2xvc2VGaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUpCiAg
ICAgY2xvc2VGaWxlKGhhbmRsZSk7CiB9CiAKLWJvb2wgZmlsZUlzRGlyZWN0b3J5KGNvbnN0IFN0
cmluZyYgcGF0aCkKK2Jvb2wgZmlsZUlzRGlyZWN0b3J5KGNvbnN0IFN0cmluZyYgcGF0aCwgU2hv
dWxkRm9sbG93U3ltYm9saWNMaW5rcyBzaG91bGRGb2xsb3dTeW1ib2xpY0xpbmtzKQogewogICAg
IEZpbGVNZXRhZGF0YSBtZXRhZGF0YTsKLSAgICBpZiAoIWdldEZpbGVNZXRhZGF0YShwYXRoLCBt
ZXRhZGF0YSkpCisgICAgaWYgKCFnZXRGaWxlTWV0YWRhdGEocGF0aCwgbWV0YWRhdGEsIHNob3Vs
ZEZvbGxvd1N5bWJvbGljTGlua3MpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgcmV0dXJu
IG1ldGFkYXRhLnR5cGUgPT0gRmlsZU1ldGFkYXRhOjpUeXBlRGlyZWN0b3J5OwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5oCmluZGV4IDU5ZTEzM2VlNmEzZTE4MDU3MDBhZjhhMjA0
NjIxOThiMTRiNWVlOTMuLjE1OWYxY2JkNWM5YTdkMDc0MTZmZWI0ODgzZjFkOTQ3NGM4OTA2YmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmgKQEAgLTg4LDYgKzg4LDggQEAgZW51
bSBGaWxlTG9ja01vZGUgewogICAgIExvY2tOb25CbG9ja2luZyA9IDQKIH07CiAKK2VudW0gY2xh
c3MgU2hvdWxkRm9sbG93U3ltYm9saWNMaW5rcyB7IE5vLCBZZXMgfTsKKwogc3RydWN0IEZpbGVN
ZXRhZGF0YTsKIAogV0VCQ09SRV9FWFBPUlQgYm9vbCBmaWxlRXhpc3RzKGNvbnN0IFN0cmluZyYp
OwpAQCAtOTgsOCArMTAwLDggQEAgV0VCQ09SRV9FWFBPUlQgYm9vbCBnZXRGaWxlU2l6ZShjb25z
dCBTdHJpbmcmLCBsb25nIGxvbmcmIHJlc3VsdCk7CiBXRUJDT1JFX0VYUE9SVCBib29sIGdldEZp
bGVTaXplKFBsYXRmb3JtRmlsZUhhbmRsZSwgbG9uZyBsb25nJiByZXN1bHQpOwogV0VCQ09SRV9F
WFBPUlQgYm9vbCBnZXRGaWxlTW9kaWZpY2F0aW9uVGltZShjb25zdCBTdHJpbmcmLCB0aW1lX3Qm
IHJlc3VsdCk7CiBXRUJDT1JFX0VYUE9SVCBib29sIGdldEZpbGVDcmVhdGlvblRpbWUoY29uc3Qg
U3RyaW5nJiwgdGltZV90JiByZXN1bHQpOyAvLyBOb3QgYWxsIHBsYXRmb3JtcyBzdG9yZSBmaWxl
IGNyZWF0aW9uIHRpbWUuCi1ib29sIGdldEZpbGVNZXRhZGF0YShjb25zdCBTdHJpbmcmLCBGaWxl
TWV0YWRhdGEmKTsKLWJvb2wgZmlsZUlzRGlyZWN0b3J5KGNvbnN0IFN0cmluZyYpOworV0VCQ09S
RV9FWFBPUlQgYm9vbCBnZXRGaWxlTWV0YWRhdGEoY29uc3QgU3RyaW5nJiwgRmlsZU1ldGFkYXRh
JiwgU2hvdWxkRm9sbG93U3ltYm9saWNMaW5rcyk7Citib29sIGZpbGVJc0RpcmVjdG9yeShjb25z
dCBTdHJpbmcmLCBTaG91bGRGb2xsb3dTeW1ib2xpY0xpbmtzKTsKIFdFQkNPUkVfRVhQT1JUIFN0
cmluZyBwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBT
dHJpbmcmIGNvbXBvbmVudCk7CiBTdHJpbmcgcGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50cyhjb25z
dCBTdHJpbmcmIHBhdGgsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBjb21wb25lbnRzKTsKIFN0cmlu
ZyBsYXN0Q29tcG9uZW50T2ZQYXRoSWdub3JpbmdUcmFpbGluZ1NsYXNoKGNvbnN0IFN0cmluZyYg
cGF0aCk7CkBAIC0xMDksNiArMTExLDcgQEAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIHBhdGhHZXRG
aWxlTmFtZShjb25zdCBTdHJpbmcmKTsKIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBkaXJlY3RvcnlO
YW1lKGNvbnN0IFN0cmluZyYpOwogV0VCQ09SRV9FWFBPUlQgYm9vbCBnZXRWb2x1bWVGcmVlU3Bh
Y2UoY29uc3QgU3RyaW5nJiwgdWludDY0X3QmKTsKIFdFQkNPUkVfRVhQT1JUIHN0ZDo6b3B0aW9u
YWw8aW50MzJfdD4gZ2V0RmlsZURldmljZUlkKGNvbnN0IENTdHJpbmcmKTsKK1dFQkNPUkVfRVhQ
T1JUIGJvb2wgY3JlYXRlU3ltYm9saWNMaW5rKGNvbnN0IFN0cmluZyYgdGFyZ2V0UGF0aCwgY29u
c3QgU3RyaW5nJiBzeW1ib2xpY0xpbmtQYXRoKTsKIAogV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRN
ZXRhZGF0YVVSTChjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBj
b25zdCBTdHJpbmcmIHJlZmVycmVyID0geyB9KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ2xpYi9GaWxlU3lzdGVtR2xpYi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcAppbmRleCBlM2M1ZDYzZTg0ODBkYTQ4MTk1ODA5
ZDVhMmY2ZDIxNTU5ODllMmMzLi43N2IwNTU5YjI5NzQzOWQwNjIyODg4ODRiNjlkOTI4NmNiY2I4
MjE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0ZpbGVTeXN0ZW1H
bGliLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0ZpbGVTeXN0ZW1HbGli
LmNwcApAQCAtMTIzLDYgKzEyMywxNSBAQCBzdGF0aWMgYm9vbCBnZXRGaWxlU3RhdChjb25zdCBT
dHJpbmcmIHBhdGgsIEdTdGF0QnVmKiBzdGF0QnVmZmVyKQogICAgIHJldHVybiBnX3N0YXQoZmls
ZW5hbWUuZ2V0KCksIHN0YXRCdWZmZXIpICE9IC0xOwogfQogCitzdGF0aWMgYm9vbCBnZXRGaWxl
TFN0YXQoY29uc3QgU3RyaW5nJiBwYXRoLCBHU3RhdEJ1Ziogc3RhdEJ1ZmZlcikKK3sKKyAgICBH
VW5pcXVlUHRyPGdjaGFyPiBmaWxlbmFtZSA9IHVuZXNjYXBlZEZpbGVuYW1lKHBhdGgpOworICAg
IGlmICghZmlsZW5hbWUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiBnX2xz
dGF0KGZpbGVuYW1lLmdldCgpLCBzdGF0QnVmZmVyKSAhPSAtMTsKK30KKwogYm9vbCBnZXRGaWxl
U2l6ZShjb25zdCBTdHJpbmcmIHBhdGgsIGxvbmcgbG9uZyYgcmVzdWx0U2l6ZSkKIHsKICAgICBH
U3RhdEJ1ZiBzdGF0UmVzdWx0OwpAQCAtMTU1LDExICsxNjQsMTcgQEAgYm9vbCBnZXRGaWxlTW9k
aWZpY2F0aW9uVGltZShjb25zdCBTdHJpbmcmIHBhdGgsIHRpbWVfdCYgbW9kaWZpZWRUaW1lKQog
ICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIGdldEZpbGVNZXRhZGF0YShjb25zdCBTdHJpbmcm
IHBhdGgsIEZpbGVNZXRhZGF0YSYgbWV0YWRhdGEpCitib29sIGdldEZpbGVNZXRhZGF0YShjb25z
dCBTdHJpbmcmIHBhdGgsIEZpbGVNZXRhZGF0YSYgbWV0YWRhdGEsIFNob3VsZEZvbGxvd1N5bWJv
bGljTGlua3Mgc2hvdWxkRm9sbG93U3ltYm9saWNMaW5rcykKIHsKICAgICBHU3RhdEJ1ZiBzdGF0
UmVzdWx0OwotICAgIGlmICghZ2V0RmlsZVN0YXQocGF0aCwgJnN0YXRSZXN1bHQpKQotICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoc2hvdWxkRm9sbG93U3ltYm9saWNMaW5rcyA9PSBT
aG91bGRGb2xsb3dTeW1ib2xpY0xpbmtzOjpZZXMpIHsKKyAgICAgICAgaWYgKCFnZXRGaWxlU3Rh
dChwYXRoLCAmc3RhdFJlc3VsdCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfSBl
bHNlIHsKKyAgICAgICAgaWYgKCFnZXRGaWxlTFN0YXQocGF0aCwgJnN0YXRSZXN1bHQpKQorICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KIAogICAgIFN0cmluZyBmaWxlbmFtZSA9IHBh
dGhHZXRGaWxlTmFtZShwYXRoKTsKICAgICBtZXRhZGF0YS5pc0hpZGRlbiA9ICFmaWxlbmFtZS5p
c0VtcHR5KCkgJiYgZmlsZW5hbWVbMF0gPT0gJy4nOwpAQCAtMjAzLDYgKzIxOCwxOSBAQCBTdHJp
bmcgaG9tZURpcmVjdG9yeVBhdGgoKQogICAgIHJldHVybiBzdHJpbmdGcm9tRmlsZVN5c3RlbVJl
cHJlc2VudGF0aW9uKGdfZ2V0X2hvbWVfZGlyKCkpOwogfQogCitib29sIGNyZWF0ZVN5bWJvbGlj
TGluayhjb25zdCBTdHJpbmcmIHRhcmdldFBhdGgsIGNvbnN0IFN0cmluZyYgc3ltYm9saWNMaW5r
UGF0aCkKK3sKKyAgICBDU3RyaW5nIHRhcmdldFBhdGhGU1JlcCA9IGZpbGVTeXN0ZW1SZXByZXNl
bnRhdGlvbih0YXJnZXRQYXRoKTsKKyAgICBpZiAoIXRhcmdldFBhdGhGU1JlcC5kYXRhKCkgfHwg
dGFyZ2V0UGF0aEZTUmVwLmRhdGEoKVswXSA9PSAnXDAnKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICBDU3RyaW5nIHN5bWJvbGljTGlua1BhdGhGU1JlcCA9IGZpbGVTeXN0ZW1SZXByZXNl
bnRhdGlvbihzeW1ib2xpY0xpbmtQYXRoKTsKKyAgICBpZiAoIXN5bWJvbGljTGlua1BhdGhGU1Jl
cC5kYXRhKCkgfHwgc3ltYm9saWNMaW5rUGF0aEZTUmVwLmRhdGEoKVswXSA9PSAnXDAnKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gIXN5bWxpbmsodGFyZ2V0UGF0aEZTUmVw
LmRhdGEoKSwgc3ltYm9saWNMaW5rUGF0aEZTUmVwLmRhdGEoKSk7Cit9CisKIFN0cmluZyBwYXRo
R2V0RmlsZU5hbWUoY29uc3QgU3RyaW5nJiBwYXRoTmFtZSkKIHsKICAgICBHVW5pcXVlUHRyPGdj
aGFyPiB0bXBGaWxlbmFtZSA9IHVuZXNjYXBlZEZpbGVuYW1lKHBhdGhOYW1lKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYkRhdGFGaWxlUmVmZXJlbmNl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYkRhdGFGaWxlUmVmZXJl
bmNlLmNwcAppbmRleCAxZjhjZTBiNjM4ZmYxMjJhNDc4MjMyOTRhOTgyNGNjYTE3N2Y2ZDdkLi42
ZGM2ZDY0YWU4NzE4NWQwZjFjZDFlYTg3NzY4MDhkYTNjNjU1ZDdmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JEYXRhRmlsZVJlZmVyZW5jZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iRGF0YUZpbGVSZWZlcmVuY2Uu
Y3BwCkBAIC05Niw3ICs5Niw3IEBAIHZvaWQgQmxvYkRhdGFGaWxlUmVmZXJlbmNlOjpzdGFydFRy
YWNraW5nTW9kaWZpY2F0aW9ucygpCiAKICAgICAvLyBGSVhNRTogU29tZSBwbGF0Zm9ybXMgcHJv
dmlkZSBiZXR0ZXIgd2F5cyB0byBsaXN0ZW4gZm9yIGZpbGUgc3lzdGVtIG9iamVjdCBjaGFuZ2Vz
LCBjb25zaWRlciB1c2luZyB0aGVzZS4KICAgICBGaWxlTWV0YWRhdGEgbWV0YWRhdGE7Ci0gICAg
aWYgKCFnZXRGaWxlTWV0YWRhdGEobV9wYXRoLCBtZXRhZGF0YSkpCisgICAgaWYgKCFnZXRGaWxl
TWV0YWRhdGEobV9wYXRoLCBtZXRhZGF0YSwgU2hvdWxkRm9sbG93U3ltYm9saWNMaW5rczo6WWVz
KSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9leHBlY3RlZE1vZGlmaWNhdGlvblRpbWUgPSBt
ZXRhZGF0YS5tb2RpZmljYXRpb25UaW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9tYWMvQmxvYkRhdGFGaWxlUmVmZXJlbmNlTWFjLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvQmxvYkRhdGFGaWxlUmVmZXJlbmNlTWFjLm1tCmlu
ZGV4IDMyZTk1NDU4N2I5MTAzYWYzYzAyNzEzYWRiOTlmMmZmMzliM2NmNmIuLjhkYWNlN2E3ZTAy
NmE3YmQyNWI5ZTNjMjg3MTk4YWZhYjdjMGI2MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvbWFjL0Jsb2JEYXRhRmlsZVJlZmVyZW5jZU1hYy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9CbG9iRGF0YUZpbGVSZWZlcmVuY2VN
YWMubW0KQEAgLTgwLDcgKzgwLDcgQEAgdm9pZCBCbG9iRGF0YUZpbGVSZWZlcmVuY2U6OmdlbmVy
YXRlUmVwbGFjZW1lbnRGaWxlKCkKICAgICBtX3JlcGxhY2VtZW50U2hvdWxkQmVHZW5lcmF0ZWQg
PSBmYWxzZTsKICAgICBpZiAoIW1fcmVwbGFjZW1lbnRQYXRoLmlzTnVsbCgpKSB7CiAgICAgICAg
IEZpbGVNZXRhZGF0YSBtZXRhZGF0YTsKLSAgICAgICAgaWYgKGdldEZpbGVNZXRhZGF0YShtX3Jl
cGxhY2VtZW50UGF0aCwgbWV0YWRhdGEpKQorICAgICAgICBpZiAoZ2V0RmlsZU1ldGFkYXRhKG1f
cmVwbGFjZW1lbnRQYXRoLCBtZXRhZGF0YSwgU2hvdWxkRm9sbG93U3ltYm9saWNMaW5rczo6WWVz
KSkKICAgICAgICAgICAgIG1fc2l6ZSA9IG1ldGFkYXRhLmxlbmd0aDsKICAgICB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJWC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9wb3NpeC9GaWxlU3lzdGVtUE9TSVguY3BwCmluZGV4
IGVhMTc2ZGQwNGVkM2UwMDIwNThiOGU2MDI4NDYzZWExYzI4MDM1OGEuLmY0YWMxZDA3ZTc4OTA1
YzQ3NTQwZDExYmQ4MDY5OGQzYzAzOTdmOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJWC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vcG9zaXgvRmlsZVN5c3RlbVBPU0lYLmNwcApAQCAtMjM5LDcgKzIzOSw3IEBAIGJvb2wg
Z2V0RmlsZU1vZGlmaWNhdGlvblRpbWUoY29uc3QgU3RyaW5nJiBwYXRoLCB0aW1lX3QmIHJlc3Vs
dCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBnZXRGaWxlTWV0YWRhdGEoY29uc3QgU3Ry
aW5nJiBwYXRoLCBGaWxlTWV0YWRhdGEmIG1ldGFkYXRhKQorYm9vbCBnZXRGaWxlTWV0YWRhdGEo
Y29uc3QgU3RyaW5nJiBwYXRoLCBGaWxlTWV0YWRhdGEmIG1ldGFkYXRhLCBTaG91bGRGb2xsb3dT
eW1ib2xpY0xpbmtzIHNob3VsZEZvbGxvd1N5bWJvbGljTGlua3MpCiB7CiAgICAgQ1N0cmluZyBm
c1JlcCA9IGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihwYXRoKTsKIApAQCAtMjQ3LDggKzI0Nywx
NCBAQCBib29sIGdldEZpbGVNZXRhZGF0YShjb25zdCBTdHJpbmcmIHBhdGgsIEZpbGVNZXRhZGF0
YSYgbWV0YWRhdGEpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHN0cnVjdCBzdGF0IGZp
bGVJbmZvOwotICAgIGlmIChzdGF0KGZzUmVwLmRhdGEoKSwgJmZpbGVJbmZvKSkKLSAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgaWYgKHNob3VsZEZvbGxvd1N5bWJvbGljTGlua3MgPT0gU2hv
dWxkRm9sbG93U3ltYm9saWNMaW5rczo6WWVzKSB7CisgICAgICAgIGlmIChzdGF0KGZzUmVwLmRh
dGEoKSwgJmZpbGVJbmZvKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9IGVsc2Ug
eworICAgICAgICBpZiAobHN0YXQoZnNSZXAuZGF0YSgpLCAmZmlsZUluZm8pKQorICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIH0KIAogICAgIFN0cmluZyBmaWxlbmFtZSA9IHBhdGhHZXRG
aWxlTmFtZShwYXRoKTsKIApAQCAtMjY0LDYgKzI3MCwxOSBAQCBib29sIGdldEZpbGVNZXRhZGF0
YShjb25zdCBTdHJpbmcmIHBhdGgsIEZpbGVNZXRhZGF0YSYgbWV0YWRhdGEpCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKK2Jvb2wgY3JlYXRlU3ltYm9saWNMaW5rKGNvbnN0IFN0cmluZyYgdGFyZ2V0
UGF0aCwgY29uc3QgU3RyaW5nJiBzeW1ib2xpY0xpbmtQYXRoKQoreworICAgIENTdHJpbmcgdGFy
Z2V0UGF0aEZTUmVwID0gZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHRhcmdldFBhdGgpOworICAg
IGlmICghdGFyZ2V0UGF0aEZTUmVwLmRhdGEoKSB8fCB0YXJnZXRQYXRoRlNSZXAuZGF0YSgpWzBd
ID09ICdcMCcpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIENTdHJpbmcgc3ltYm9saWNM
aW5rUGF0aEZTUmVwID0gZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHN5bWJvbGljTGlua1BhdGgp
OworICAgIGlmICghc3ltYm9saWNMaW5rUGF0aEZTUmVwLmRhdGEoKSB8fCBzeW1ib2xpY0xpbmtQ
YXRoRlNSZXAuZGF0YSgpWzBdID09ICdcMCcpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IHJldHVybiAhc3ltbGluayh0YXJnZXRQYXRoRlNSZXAuZGF0YSgpLCBzeW1ib2xpY0xpbmtQYXRo
RlNSZXAuZGF0YSgpKTsKK30KKwogU3RyaW5nIHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChjb25z
dCBTdHJpbmcmIHBhdGgsIGNvbnN0IFN0cmluZyYgY29tcG9uZW50KQogewogICAgIGlmIChwYXRo
LmVuZHNXaXRoKCcvJykpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4v
RmlsZVN5c3RlbVdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vRmlsZVN5c3Rl
bVdpbi5jcHAKaW5kZXggODc4MmQ3MDBkZWI2Njg1MTFkNzM1ZDMwYzI4ODYwYTA2NWZjZDA1Zi4u
MzVjZDZjYWEyNDkwNmMxYTExYzBjZDhiZTM3MGE5ZTNlZDVlNzkzZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0ZpbGVTeXN0ZW1XaW4uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3dpbi9GaWxlU3lzdGVtV2luLmNwcApAQCAtMTQxLDEyICsxNDEsMzkg
QEAgYm9vbCBnZXRGaWxlQ3JlYXRpb25UaW1lKGNvbnN0IFN0cmluZyYgcGF0aCwgdGltZV90JiB0
aW1lKQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIGdldEZpbGVNZXRhZGF0YShjb25zdCBT
dHJpbmcmIHBhdGgsIEZpbGVNZXRhZGF0YSYgbWV0YWRhdGEpCitzdGF0aWMgU3RyaW5nIGdldEZp
bmFsUGF0aE5hbWUoY29uc3QgU3RyaW5nJiBwYXRoKQoreworICAgIGF1dG8gaGFuZGxlID0gb3Bl
bkZpbGUocGF0aCwgT3BlbkZvclJlYWQpOworICAgIGlmICghaXNIYW5kbGVWYWxpZChoYW5kbGUp
KQorICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisKKyAgICBTdHJpbmdWZWN0b3I8VUNoYXI+IGJ1
ZmZlcihNQVhfUEFUSCk7CisgICAgaWYgKDo6R2V0RmluYWxQYXRoTmFtZUJ5SGFuZGxlVyhoYW5k
bGUsIGJ1ZmZlci5kYXRhKCksIGJ1ZmZlci5zaXplKCksIFZPTFVNRV9OQU1FX05UKSA+PSBNQVhf
UEFUSCkgeworICAgICAgICBjbG9zZUZpbGUoaGFuZGxlKTsKKyAgICAgICAgcmV0dXJuIFN0cmlu
ZygpOworICAgIH0KKyAgICBjbG9zZUZpbGUoaGFuZGxlKTsKKworICAgIGJ1ZmZlci5zaHJpbmso
d2NzbGVuKGJ1ZmZlci5kYXRhKCkpKTsKKyAgICByZXR1cm4gU3RyaW5nOjphZG9wdChXVEZNb3Zl
KGJ1ZmZlcikpOworfQorCitib29sIGdldEZpbGVNZXRhZGF0YShjb25zdCBTdHJpbmcmIHBhdGgs
IEZpbGVNZXRhZGF0YSYgbWV0YWRhdGEsIFNob3VsZEZvbGxvd1N5bWJvbGljTGlua3Mgc2hvdWxk
Rm9sbG93U3ltYm9saWNMaW5rcykKIHsKICAgICBXSU4zMl9GSU5EX0RBVEFXIGZpbmREYXRhOwog
ICAgIGlmICghZ2V0RmluZERhdGEocGF0aCwgZmluZERhdGEpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKKyAgICBib29sIGlzU3ltYm9saWNMaW5rID0gZmluZERhdGEuZHdGaWxlQXR0cmlidXRl
cyAmIEZJTEVfQVRUUklCVVRFX1JFUEFSU0VfUE9JTlQgJiYgZmluZERhdGEuZHdSZXNlcnZlZDAg
PT0gSU9fUkVQQVJTRV9UQUdfU1lNTElOSzsKKyAgICBpZiAoaXNTeW1ib2xpY0xpbmsgJiYgc2hv
dWxkRm9sbG93U3ltYm9saWNMaW5rcyA9PSBTaG91bGRGb2xsb3dTeW1ib2xpY0xpbmtzOjpZZXMp
IHsKKyAgICAgICAgU3RyaW5nIHRhcmdldFBhdGggPSBnZXRGaW5hbFBhdGhOYW1lKHBhdGgpOwor
ICAgICAgICBpZiAodGFyZ2V0UGF0aC5pc051bGwoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAgICAgaWYgKCFnZXRGaW5kRGF0YSh0YXJnZXRQYXRoLCBmaW5kRGF0YSkpCisgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlzU3ltYm9saWNMaW5rID0gZmFsc2U7Cisg
ICAgfQorCiAgICAgaWYgKCFnZXRGaWxlU2l6ZUZyb21GaW5kRGF0YShmaW5kRGF0YSwgbWV0YWRh
dGEubGVuZ3RoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCkBAIC0xNTQsMTEgKzE4MSwyMSBA
QCBib29sIGdldEZpbGVNZXRhZGF0YShjb25zdCBTdHJpbmcmIHBhdGgsIEZpbGVNZXRhZGF0YSYg
bWV0YWRhdGEpCiAgICAgZ2V0RmlsZU1vZGlmaWNhdGlvblRpbWVGcm9tRmluZERhdGEoZmluZERh
dGEsIG1vZGlmaWNhdGlvblRpbWUpOwogICAgIG1ldGFkYXRhLm1vZGlmaWNhdGlvblRpbWUgPSBt
b2RpZmljYXRpb25UaW1lOwogICAgIG1ldGFkYXRhLmlzSGlkZGVuID0gZmluZERhdGEuZHdGaWxl
QXR0cmlidXRlcyAmIEZJTEVfQVRUUklCVVRFX0hJRERFTjsKLSAgICBtZXRhZGF0YS50eXBlID0g
KGZpbmREYXRhLmR3RmlsZUF0dHJpYnV0ZXMgJiBGSUxFX0FUVFJJQlVURV9ESVJFQ1RPUlkpID8g
RmlsZU1ldGFkYXRhOjpUeXBlRGlyZWN0b3J5IDogRmlsZU1ldGFkYXRhOjpUeXBlRmlsZTsKKyAg
ICBpZiAoZmluZERhdGEuZHdGaWxlQXR0cmlidXRlcyAmIEZJTEVfQVRUUklCVVRFX0RJUkVDVE9S
WSkKKyAgICAgICAgbWV0YWRhdGEudHlwZSA9IEZpbGVNZXRhZGF0YTo6VHlwZURpcmVjdG9yeTsK
KyAgICBlbHNlIGlmIChpc1N5bWJvbGljTGluaykKKyAgICAgICAgbWV0YWRhdGEudHlwZSA9IEZp
bGVNZXRhZGF0YTo6VHlwZVN5bWJvbGljTGluazsKKyAgICBlbHNlCisgICAgICAgIG1ldGFkYXRh
LnR5cGUgPSBGaWxlTWV0YWRhdGE6OlR5cGVGaWxlOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
K2Jvb2wgY3JlYXRlU3ltYm9saWNMaW5rKGNvbnN0IFN0cmluZyYgdGFyZ2V0UGF0aCwgY29uc3Qg
U3RyaW5nJiBzeW1ib2xpY0xpbmtQYXRoKQoreworICAgIHJldHVybiAhOjpDcmVhdGVTeW1ib2xp
Y0xpbmtXKHN5bWJvbGljTGlua1BhdGguY2hhcmFjdGVyc1dpdGhOdWxsVGVybWluYXRpb24oKS5k
YXRhKCksIHRhcmdldFBhdGguY2hhcmFjdGVyc1dpdGhOdWxsVGVybWluYXRpb24oKS5kYXRhKCks
IDApOworfQorCiBib29sIGZpbGVFeGlzdHMoY29uc3QgU3RyaW5nJiBwYXRoKQogewogICAgIFdJ
TjMyX0ZJTkRfREFUQVcgZmluZERhdGE7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9U
b29scy9DaGFuZ2VMb2cKaW5kZXggMzc2ZWQwOTdlY2NiMmY2NWU3YmJjMjc5NjYyNWZmMTcyOWRk
MzJkYy4uZGI3ZDY5NmU3YjIwMDJhM2E3NWRiNDc1YzcxZDIwNGY5ZWFmZWJjNCAxMDA2NDQKLS0t
IGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBA
CisyMDE3LTA4LTMxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAg
Z2V0RmlsZU1ldGFkYXRhKCkgZG9lcyBub3Qgd29yayBhcyBleHBlY3RlZCBmb3Igc3ltYm9saWMg
bGlua3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
NjE0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZCBBUEkgdGVzdCBjb3ZlcmFnZS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9GaWxlU3lzdGVtLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisK
IDIwMTctMDgtMzEgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgog
CiAgICAgICAgIFtHVEtdIFNldmVyYWwgSW5wdXRNZXRob2RGaWx0ZXIgdGVzdHMgYXJlIGZhaWxp
bmcgYW5kIGNyYXNoaW5nCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvRmlsZVN5c3RlbS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
RmlsZVN5c3RlbS5jcHAKaW5kZXggOGE0YTc4YzY1M2E3YmMzOWQzMmRlOTJhYTY1YzQ5MGY0MzY4
OTFmNC4uYmEyYjU1OTM1MDU2ZWQ5Yjk4ZDgwZWQ0YTYwYjgxYTE1Zjc0ZGEzMiAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVTeXN0ZW0uY3BwCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlU3lzdGVtLmNwcApAQCAtMjcs
NiArMjcsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaW5jbHVkZSAiVGVzdC5oIgorI2lu
Y2x1ZGUgPFdlYkNvcmUvRmlsZU1ldGFkYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lz
dGVtLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvU3RyaW5n
RXh0cmFzLmg+CkBAIC0xMTksNCArMTIwLDIwIEBAIFRFU1RfRihGaWxlU3lzdGVtVGVzdCwgRmls
ZXNIYXZlU2FtZVZvbHVtZSkKICAgICBFWFBFQ1RfVFJVRShmaWxlc0hhdmVTYW1lVm9sdW1lKGJh
bmdDb250YWluaW5nRmlsZVBhdGgoKSwgcXVvdGVDb250YWluaW5nRmlsZVBhdGgoKSkpOwogfQog
CitURVNUX0YoRmlsZVN5c3RlbVRlc3QsIEdldEZpbGVNZXRhZGF0YVN5bWxpbmspCit7CisgICAg
U3RyaW5nIHN5bWxpbmtQYXRoID0gdGVtcEZpbGVQYXRoKCkgKyAiLXN5bWxpbmsiOworICAgIEVY
UEVDVF9UUlVFKGNyZWF0ZVN5bWJvbGljTGluayh0ZW1wRmlsZVBhdGgoKSwgc3ltbGlua1BhdGgp
KTsKKworICAgIEZpbGVNZXRhZGF0YSBzeW1saW5rTWV0YWRhdGE7CisgICAgRVhQRUNUX1RSVUUo
Z2V0RmlsZU1ldGFkYXRhKHN5bWxpbmtQYXRoLCBzeW1saW5rTWV0YWRhdGEsIFNob3VsZEZvbGxv
d1N5bWJvbGljTGlua3M6Ok5vKSk7CisgICAgRVhQRUNUX1RSVUUoc3ltbGlua01ldGFkYXRhLnR5
cGUgPT0gRmlsZU1ldGFkYXRhOjpUeXBlU3ltYm9saWNMaW5rKTsKKyAgICBFWFBFQ1RfRkFMU0Uo
c3RhdGljX2Nhc3Q8c2l6ZV90PihzeW1saW5rTWV0YWRhdGEubGVuZ3RoKSA9PSBzdHJsZW4oRmls
ZVN5c3RlbVRlc3REYXRhKSk7CisKKyAgICBGaWxlTWV0YWRhdGEgdGFyZ2V0TWV0YWRhdGE7Cisg
ICAgRVhQRUNUX1RSVUUoZ2V0RmlsZU1ldGFkYXRhKHN5bWxpbmtQYXRoLCB0YXJnZXRNZXRhZGF0
YSwgU2hvdWxkRm9sbG93U3ltYm9saWNMaW5rczo6WWVzKSk7CisgICAgRVhQRUNUX1RSVUUodGFy
Z2V0TWV0YWRhdGEudHlwZSA9PSBGaWxlTWV0YWRhdGE6OlR5cGVGaWxlKTsKKyAgICBFWFBFQ1Rf
RVEoc3RybGVuKEZpbGVTeXN0ZW1UZXN0RGF0YSksIHN0YXRpY19jYXN0PHNpemVfdD4odGFyZ2V0
TWV0YWRhdGEubGVuZ3RoKSk7Cit9CisKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319506</attachid>
            <date>2017-08-31 13:02:01 -0700</date>
            <delta_ts>2017-08-31 13:09:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176143-20170831130200.patch</filename>
            <type>text/plain</type>
            <size>23329</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxNDIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDNjYzEyYTc4ODk1Zjc3
YjlhM2NkNTNlZTAzNWM5YTkwMjkwZDcwYi4uZWQ0ZGI5ODBkMzQzYjFmMDk5NWIwZGMzMTAzNjE5
Njg5ZTUwZTMyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDE3LTA4LTMxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgZ2V0RmlsZU1ldGFkYXRhKCkg
ZG9lcyBub3Qgd29yayBhcyBleHBlY3RlZCBmb3Igc3ltYm9saWMgbGlua3MKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjE0MworCisgICAgICAgIFJl
dmlld2VkIGJ5IEFuZHJlYXMgS2xpbmcuCisKKyAgICAgICAgZ2V0RmlsZU1ldGFkYXRhKCkgZG9l
cyBub3Qgd29yayBhcyBleHBlY3RlZCBmb3Igc3ltYm9saWMgbGlua3M6CisgICAgICAgIE9uIFBP
U0lYLCBnZXRGaWxlTWV0YWRhdGEoKSBhbHdheXMgZm9sbG93ZWQgc3ltbGlua3MsIHdoaWNoIG1l
YW50IHRoYXQgRmlsZU1ldGFkYXRhLnR5cGUgY291bGQKKyAgICAgICAgbmV2ZXIgYmUgVHlwZVN5
bWJvbGljTGluay4gT24gV2luZG93cywgdGhlIGZ1bmN0aW9uIHByb3Blcmx5IGRpZCBub3QgZm9s
bG93IHN5bWxpbmtzIGJ1dCBmYWlsZWQgdG8gc2V0CisgICAgICAgIEZpbGVNZXRhZGF0YS50eXBl
IHRvIFR5cGVTeW1ib2xpY0xpbmsgd2hlbiB0aGUgZmlsZSB3YXMgYSBzeW1ib2xpYyBsaW5rLgor
CisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBhIG5ldyBTaG91bGRGb2xsb3dTeW1ib2xpY0xpbmtz
IHBhcmFtZXRlciB0byBnZXRGaWxlTWV0YWRhdGEoKSBzbyB0aGF0CisgICAgICAgIHRoZSBjYWxs
IHNpdGUgY2FuIGRlY2lkZSB0aGUgYmVoYXZpb3IgaXQgd2FudHMuIElmIGdldEZpbGVNZXRhZGF0
YSgpIGlzIGNhbGxlZCBvbiBhCisgICAgICAgIHN5bWJvbGljIGxpbmsgd2l0aCBTaG91bGRGb2xs
b3dTeW1ib2xpY0xpbmtzOjpObyBhcyBwYXJhbWV0ZXIsIEZpbGVNZXRhZGF0YS50eXBlIGlzIG5v
dworICAgICAgICBwcm9wZXJseSBzZXQgdG8gVHlwZVN5bWJvbGljTGluay4KKworICAgICAgICBO
byBuZXcgdGVzdHMsIGNvdmVyZWQgYnkgbmV3IEFQSSB0ZXN0LgorCisgICAgICAgICogTW9kdWxl
cy9lbnRyaWVzYXBpL0RPTUZpbGVTeXN0ZW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6bGlzdERp
cmVjdG9yeVdpdGhNZXRhZGF0YSk6CisgICAgICAgIEl0IGlzIGltcG9ydGFudCB3ZSBkbyBub3Qg
Zm9sbG93IHN5bWxpbmtzIGhlcmUgc2luY2UgdGhlIGNvZGUgd2FudHMgdG8gZGlzY2FyZCB0aGVt
CisgICAgICAgIGFuZCBkb2VzIHNvIGJ5IGNoZWNraW5nIEZpbGVNZXRhZGF0YS50eXBlLgorCisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGZp
bGVhcGkvRmlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlOjppc0RpcmVjdG9yeSBjb25z
dCk6CisKKyAgICAgICAgKiBodG1sL0ZpbGVMaXN0Q3JlYXRvci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjphcHBlbmREaXJlY3RvcnlGaWxlcyk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlTGlzdENy
ZWF0b3I6OmNyZWF0ZUZpbGVMaXN0KToKKyAgICAgICAgSXQgaXMgaW1wb3J0YW50IHdlIGRvIG5v
dCBmb2xsb3cgc3ltbGlua3MgaGVyZSBzaW5jZSB0aGUgY29kZSB3YW50cyB0byBkaXNjYXJkIHRo
ZW0KKyAgICAgICAgYW5kIGRvZXMgc28gYnkgY2hlY2tpbmcgRmlsZU1ldGFkYXRhLnR5cGUuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9GaWxlU3lzdGVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZp
bGVJc0RpcmVjdG9yeSk6CisgICAgICAgICogcGxhdGZvcm0vRmlsZVN5c3RlbS5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dsaWIvRmlsZVN5c3RlbUdsaWIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Z2V0RmlsZUxTdGF0KToKKyAgICAgICAgKFdlYkNvcmU6OmdldEZpbGVNZXRhZGF0YSk6CisgICAg
ICAgICogcGxhdGZvcm0vcG9zaXgvRmlsZVN5c3RlbVBPU0lYLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmdldEZpbGVNZXRhZGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVTeW1ib2xpY0xp
bmspOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9GaWxlU3lzdGVtV2luLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmdldEZpbmFsUGF0aE5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6Z2V0RmlsZU1l
dGFkYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVN5bWJvbGljTGluayk6CisgICAgICAg
IC0gQWRkIG5ldyBjcmVhdGVTeW1ib2xpY0xpbmsoKSBmdW5jdGlvbiBmb3IgdGVzdGluZyBwdXJw
b3Nlcy4KKyAgICAgICAgLSBPbiBQb3NpeCwgY2FsbCBsc3RhdCgpIGluc3RlYWQgb2Ygc3RhdCBp
ZiBTaG91bGRGb2xsb3dTeW1ib2xpY0xpbmtzOjpOby4KKyAgICAgICAgLSBPbiBXaW5kb3dzLCBz
aW5jZSBGaW5kRmlyc3RGaWxlVygpIGRvZXMgbm90IGZvbGxvdyBzeW1saW5rcywgcmVzb2x2ZQor
ICAgICAgICAgIGZpbmFsIHBhdGggdXNpbmcgR2V0RmluYWxQYXRoTmFtZUJ5SGFuZGxlVygpIGlm
IFNob3VsZEZvbGxvd1N5bWJvbGljTGlua3M6Olllcy4KKyAgICAgICAgLSBPbiBXaW5kb3dzLCBw
cm9wZXJseSBzZXQgRmlsZU1ldGFkYXRhLnR5cGUgdG8gVHlwZVN5bWJvbGljTGluayBpZiB0aGUg
ZmlsZQorICAgICAgICAgIGlzIGEgc3ltYm9saWMgbGluay4KKwogMjAxNy0wOC0yMiAgRGFyaW4g
QWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjIyMDA1Mik6
IEFTU0VSVElPTiBGQUlMRUQ6ICFmcmFtZSgpLmlzTWFpbkZyYW1lKCkgfHwgIW5lZWRzU3R5bGVS
ZWNhbGNPckxheW91dCgpICBpbiBXZWJDb3JlOjpGcmFtZVZpZXc6OnVwZGF0ZUxheW91dEFuZFN0
eWxlSWZOZWVkZWRSZWN1cnNpdmUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9lbnRyaWVzYXBpL0RPTUZpbGVTeXN0ZW0uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9l
bnRyaWVzYXBpL0RPTUZpbGVTeXN0ZW0uY3BwCmluZGV4IDllOWVjNWQxYzM4NmRlNDFhZGU1NGE3
NTQwODA3MTZlOGM5OGFmMmYuLjM4YzM1NGU1NWViNTlhOGY5ZDc1M2E0MjQ3MmIxOGIxZWZkNjgw
ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9ET01GaWxl
U3lzdGVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRE9NRmls
ZVN5c3RlbS5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAgc3RydWN0IExpc3RlZENoaWxkIHsKIHN0YXRp
YyBFeGNlcHRpb25PcjxWZWN0b3I8TGlzdGVkQ2hpbGQ+PiBsaXN0RGlyZWN0b3J5V2l0aE1ldGFk
YXRhKGNvbnN0IFN0cmluZyYgZnVsbFBhdGgpCiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQo
KSk7Ci0gICAgaWYgKCFmaWxlSXNEaXJlY3RvcnkoZnVsbFBhdGgpKQorICAgIGlmICghZmlsZUlz
RGlyZWN0b3J5KGZ1bGxQYXRoLCBTaG91bGRGb2xsb3dTeW1ib2xpY0xpbmtzOjpObykpCiAgICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RGb3VuZEVycm9yLCAiUGF0aCBubyBsb25nZXIgZXhp
c3RzIG9yIGlzIG5vIGxvbmdlciBhIGRpcmVjdG9yeSIgfTsKIAogICAgIGF1dG8gY2hpbGRQYXRo
cyA9IGxpc3REaXJlY3RvcnkoZnVsbFBhdGgsICIqIik7CkBAIC01NCw3ICs1NCw3IEBAIHN0YXRp
YyBFeGNlcHRpb25PcjxWZWN0b3I8TGlzdGVkQ2hpbGQ+PiBsaXN0RGlyZWN0b3J5V2l0aE1ldGFk
YXRhKGNvbnN0IFN0cmluZyYKICAgICBsaXN0ZWRDaGlsZHJlbi5yZXNlcnZlSW5pdGlhbENhcGFj
aXR5KGNoaWxkUGF0aHMuc2l6ZSgpKTsKICAgICBmb3IgKGF1dG8mIGNoaWxkUGF0aCA6IGNoaWxk
UGF0aHMpIHsKICAgICAgICAgRmlsZU1ldGFkYXRhIG1ldGFkYXRhOwotICAgICAgICBpZiAoIWdl
dEZpbGVNZXRhZGF0YShjaGlsZFBhdGgsIG1ldGFkYXRhKSkKKyAgICAgICAgaWYgKCFnZXRGaWxl
TWV0YWRhdGEoY2hpbGRQYXRoLCBtZXRhZGF0YSwgU2hvdWxkRm9sbG93U3ltYm9saWNMaW5rczo6
Tm8pKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIGxpc3RlZENoaWxkcmVuLnVuY2hl
Y2tlZEFwcGVuZChMaXN0ZWRDaGlsZCB7IHBhdGhHZXRGaWxlTmFtZShjaGlsZFBhdGgpLCBtZXRh
ZGF0YS50eXBlIH0pOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAwZTMwNDU4Y2JiMTNjNzlkMzdkNTE3MGZhMjM1YTE5
NDY1ODUxYjA1Li4zMjE4ZDZmYTAxZDZkZGFlOWE4MzY1OGZiYzIzZWFkNjhiMmM2ZTFkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC0xOTM5LDcgKzE5MzksNyBAQAogCQk0NjczMDIwMjFDNEVGRTc4MDBCQ0IzNTcgLyogSWdub3Jl
T3BlbnNEdXJpbmdVbmxvYWRDb3VudEluY3JlbWVudGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjczMDIwMTFDNEVGRTY2MDBCQ0IzNTcgLyogSWdu
b3JlT3BlbnNEdXJpbmdVbmxvYWRDb3VudEluY3JlbWVudGVyLmggKi87IH07CiAJCTQ2ODM0NERG
MUVEREZBQUEwMEI3Nzk1QiAvKiBET01SZWN0TGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjgzNDRERDFFRERGQTVGMDBCNzc5NUIgLyogRE9N
UmVjdExpc3QuY3BwICovOyB9OwogCQk0NjgzNDRFMDFFRERGQUFBMDBCNzc5NUIgLyogRE9NUmVj
dExpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2
ODM0NERFMUVEREZBNUYwMEI3Nzk1QiAvKiBET01SZWN0TGlzdC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTQ2ODlGMUFGMTI2N0JBRTEwMEU4RDM4
MCAvKiBGaWxlTWV0YWRhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQ2ODlGMUFFMTI2N0JBRTEwMEU4RDM4MCAvKiBGaWxlTWV0YWRhdGEuaCAqLzsg
fTsKKwkJNDY4OUYxQUYxMjY3QkFFMTAwRThEMzgwIC8qIEZpbGVNZXRhZGF0YS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY4OUYxQUUxMjY3QkFFMTAw
RThEMzgwIC8qIEZpbGVNZXRhZGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTQ2QjYzRjZDMUM2RThEMTkwMDJFOTE0QiAvKiBKU0V2ZW50VGFy
Z2V0Q3VzdG9tLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0NkI2M0Y2QjFDNkU4Q0RGMDAyRTkxNEIgLyogSlNFdmVudFRhcmdldEN1c3RvbS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2QzY5NkNCMUU3
MjA1RjcwMDU5NzkzNyAvKiBDUFVNb25pdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0NkM2OTZDOTFFNzIwNUU0MDA1OTc5MzcgLyogQ1BVTW9uaXRv
ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2
QzY5NkNDMUU3MjA1RkMwMDU5NzkzNyAvKiBDUFVNb25pdG9yLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2QzY5NkNBMUU3MjA1RTQwMDU5NzkzNyAv
KiBDUFVNb25pdG9yLmNwcCAqLzsgfTsKQEAgLTMxODM3LDcgKzMxODM3LDYgQEAKIAkJCQlBODcx
REUyNTBBMTUyQUM4MDBCMTJBNjggLyogSFRNTEhlYWRFbGVtZW50LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUE4RUE3Q0FFMEExOTJCOUMwMEE4RUY1RiAvKiBIVE1MSGVhZGluZ0VsZW1lbnQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQThFQTdDQjMwQTE5MkI5QzAwQThFRjVGIC8qIEhUTUxIUkVs
ZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJRTQxRkE5QjkxRjU3NThGRjAwMzM4NThBIC8q
IFJlbmRlclRyZWVVcGRhdGVyTXVsdGlDb2x1bW4uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTg3
MURFMjYwQTE1MkFDODAwQjEyQTY4IC8qIEhUTUxIdG1sRWxlbWVudC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBODcxREUyNDBBMTUyQUM4MDBCMTJBNjggLyogSFRNTElGcmFtZUVsZW1lbnQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQThFQTdEMzEwQTE5Mzg1NTAwQThFRjVGIC8qIEhUTUxJbWFn
ZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMzQ0NCw2ICszMzQ0Myw3IEBACiAJCQkJ
RTQ4Mjg0MDgxRjQ0NTk0QzAwODYzQUMzIC8qIFJlbmRlclRyZWVVcGRhdGVyRmlyc3RMZXR0ZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTQ4RTMzMzExRjQ3NDM3MDAwQkFCMEVGIC8qIFJlbmRl
clRyZWVVcGRhdGVyR2VuZXJhdGVkQ29udGVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFNDhF
MzMyRDFGNDcwMzgwMDBCQUIwRUYgLyogUmVuZGVyVHJlZVVwZGF0ZXJMaXN0SXRlbS5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQlFNDFGQTlCOTFGNTc1OEZGMDAzMzg1OEEgLyogUmVuZGVyVHJlZVVw
ZGF0ZXJNdWx0aUNvbHVtbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFNDQ2MTQ1MTBDRDY4QTM1
MDBGQURBNzUgLyogUmVuZGVyVmlkZW8uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNFQTQ4Njcw
OTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRlclZpZXcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkUy
MDUwN0QxOEE0NThCRjAwODA2NDdFIC8qIFJlbmRlclZUVEN1ZS5jcHAgaW4gU291cmNlcyAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9maWxlYXBpL0ZpbGUuY3BwCmluZGV4IGI1MDhhYmY0NmQxMWZlMmUzZjk0Zjc3MjFiMDdh
OTQ4N2RiYzExYTIuLjEzOGQ0YjJlNjI1MjUyMjE0NGE0MTcwOWRkYzk3ZjUzOTljMWRiNmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZmlsZWFwaS9GaWxlLmNwcApAQCAtMTMwLDcgKzEzMCw3IEBAIFN0cmluZyBGaWxlOjpj
b250ZW50VHlwZUZvckZpbGUoY29uc3QgU3RyaW5nJiBwYXRoKQogYm9vbCBGaWxlOjppc0RpcmVj
dG9yeSgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2lzRGlyZWN0b3J5KQotICAgICAgICBtX2lzRGly
ZWN0b3J5ID0gZmlsZUlzRGlyZWN0b3J5KG1fcGF0aCk7CisgICAgICAgIG1faXNEaXJlY3Rvcnkg
PSBmaWxlSXNEaXJlY3RvcnkobV9wYXRoLCBTaG91bGRGb2xsb3dTeW1ib2xpY0xpbmtzOjpZZXMp
OwogICAgIHJldHVybiAqbV9pc0RpcmVjdG9yeTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9GaWxlTGlzdENyZWF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxl
TGlzdENyZWF0b3IuY3BwCmluZGV4IDE5YmQ0NGFlYTFkZGQxNmQxOTI5ZjIyZGFhMGQxOThiYmJm
MzJhODEuLjQxOTJjNjNkZjE1OWNhMzNmNDcwY2EwZGVkMTI5ODM2MTVjODg2MDMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUxpc3RDcmVhdG9yLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0ZpbGVMaXN0Q3JlYXRvci5jcHAKQEAgLTQzLDcgKzQzLDcgQEAgc3RhdGlj
IHZvaWQgYXBwZW5kRGlyZWN0b3J5RmlsZXMoY29uc3QgU3RyaW5nJiBkaXJlY3RvcnksIGNvbnN0
IFN0cmluZyYgcmVsYXRpdmUKIHsKICAgICBmb3IgKGF1dG8mIGNoaWxkUGF0aCA6IGxpc3REaXJl
Y3RvcnkoZGlyZWN0b3J5LCAiKiIpKSB7CiAgICAgICAgIEZpbGVNZXRhZGF0YSBtZXRhZGF0YTsK
LSAgICAgICAgaWYgKCFnZXRGaWxlTWV0YWRhdGEoY2hpbGRQYXRoLCBtZXRhZGF0YSkpCisgICAg
ICAgIGlmICghZ2V0RmlsZU1ldGFkYXRhKGNoaWxkUGF0aCwgbWV0YWRhdGEsIFNob3VsZEZvbGxv
d1N5bWJvbGljTGlua3M6Ok5vKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgIGlm
IChtZXRhZGF0YS5pc0hpZGRlbikKQEAgLTgwLDcgKzgwLDcgQEAgUmVmPEZpbGVMaXN0PiBGaWxl
TGlzdENyZWF0b3I6OmNyZWF0ZUZpbGVMaXN0KGNvbnN0IFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJ
bmZvPiYKIHsKICAgICBWZWN0b3I8UmVmUHRyPEZpbGU+PiBmaWxlT2JqZWN0czsKICAgICBmb3Ig
KGF1dG8mIGluZm8gOiBwYXRocykgewotICAgICAgICBpZiAoc2hvdWxkUmVzb2x2ZURpcmVjdG9y
aWVzID09IFNob3VsZFJlc29sdmVEaXJlY3Rvcmllczo6WWVzICYmIGZpbGVJc0RpcmVjdG9yeShp
bmZvLnBhdGgpKQorICAgICAgICBpZiAoc2hvdWxkUmVzb2x2ZURpcmVjdG9yaWVzID09IFNob3Vs
ZFJlc29sdmVEaXJlY3Rvcmllczo6WWVzICYmIGZpbGVJc0RpcmVjdG9yeShpbmZvLnBhdGgsIFNo
b3VsZEZvbGxvd1N5bWJvbGljTGlua3M6Ok5vKSkKICAgICAgICAgICAgIGFwcGVuZERpcmVjdG9y
eUZpbGVzKGluZm8ucGF0aCwgcGF0aEdldEZpbGVOYW1lKGluZm8ucGF0aCksIGZpbGVPYmplY3Rz
KTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgZmlsZU9iamVjdHMuYXBwZW5kKEZpbGU6OmNy
ZWF0ZVdpdGhOYW1lKGluZm8ucGF0aCwgaW5mby5kaXNwbGF5TmFtZSkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9GaWxlU3lzdGVtLmNwcAppbmRleCA0YWJkMzQzYTgxYTM4Mzg4OWY1ZDIzNDc5NDkw
MTE4NzJhMzRmZjg5Li5kNTdhMGJkN2UyMmQ2ODY2M2E0ZmFjYWIwZmMwOWE0N2Y0NDIwMjQ5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmNwcApAQCAtMzUxLDEwICszNTEsMTAg
QEAgdm9pZCB1bmxvY2tBbmRDbG9zZUZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRsZSkKICAg
ICBjbG9zZUZpbGUoaGFuZGxlKTsKIH0KIAotYm9vbCBmaWxlSXNEaXJlY3RvcnkoY29uc3QgU3Ry
aW5nJiBwYXRoKQorYm9vbCBmaWxlSXNEaXJlY3RvcnkoY29uc3QgU3RyaW5nJiBwYXRoLCBTaG91
bGRGb2xsb3dTeW1ib2xpY0xpbmtzIHNob3VsZEZvbGxvd1N5bWJvbGljTGlua3MpCiB7CiAgICAg
RmlsZU1ldGFkYXRhIG1ldGFkYXRhOwotICAgIGlmICghZ2V0RmlsZU1ldGFkYXRhKHBhdGgsIG1l
dGFkYXRhKSkKKyAgICBpZiAoIWdldEZpbGVNZXRhZGF0YShwYXRoLCBtZXRhZGF0YSwgc2hvdWxk
Rm9sbG93U3ltYm9saWNMaW5rcykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICByZXR1cm4g
bWV0YWRhdGEudHlwZSA9PSBGaWxlTWV0YWRhdGE6OlR5cGVEaXJlY3Rvcnk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmgKaW5kZXggNTllMTMzZWU2YTNlMTgwNTcwMGFmOGEyMDQ2
MjE5OGIxNGI1ZWU5My4uMTU5ZjFjYmQ1YzlhN2QwNzQxNmZlYjQ4ODNmMWQ5NDc0Yzg5MDZiYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uaApAQCAtODgsNiArODgsOCBAQCBlbnVt
IEZpbGVMb2NrTW9kZSB7CiAgICAgTG9ja05vbkJsb2NraW5nID0gNAogfTsKIAorZW51bSBjbGFz
cyBTaG91bGRGb2xsb3dTeW1ib2xpY0xpbmtzIHsgTm8sIFllcyB9OworCiBzdHJ1Y3QgRmlsZU1l
dGFkYXRhOwogCiBXRUJDT1JFX0VYUE9SVCBib29sIGZpbGVFeGlzdHMoY29uc3QgU3RyaW5nJik7
CkBAIC05OCw4ICsxMDAsOCBAQCBXRUJDT1JFX0VYUE9SVCBib29sIGdldEZpbGVTaXplKGNvbnN0
IFN0cmluZyYsIGxvbmcgbG9uZyYgcmVzdWx0KTsKIFdFQkNPUkVfRVhQT1JUIGJvb2wgZ2V0Rmls
ZVNpemUoUGxhdGZvcm1GaWxlSGFuZGxlLCBsb25nIGxvbmcmIHJlc3VsdCk7CiBXRUJDT1JFX0VY
UE9SVCBib29sIGdldEZpbGVNb2RpZmljYXRpb25UaW1lKGNvbnN0IFN0cmluZyYsIHRpbWVfdCYg
cmVzdWx0KTsKIFdFQkNPUkVfRVhQT1JUIGJvb2wgZ2V0RmlsZUNyZWF0aW9uVGltZShjb25zdCBT
dHJpbmcmLCB0aW1lX3QmIHJlc3VsdCk7IC8vIE5vdCBhbGwgcGxhdGZvcm1zIHN0b3JlIGZpbGUg
Y3JlYXRpb24gdGltZS4KLWJvb2wgZ2V0RmlsZU1ldGFkYXRhKGNvbnN0IFN0cmluZyYsIEZpbGVN
ZXRhZGF0YSYpOwotYm9vbCBmaWxlSXNEaXJlY3RvcnkoY29uc3QgU3RyaW5nJik7CitXRUJDT1JF
X0VYUE9SVCBib29sIGdldEZpbGVNZXRhZGF0YShjb25zdCBTdHJpbmcmLCBGaWxlTWV0YWRhdGEm
LCBTaG91bGRGb2xsb3dTeW1ib2xpY0xpbmtzKTsKK2Jvb2wgZmlsZUlzRGlyZWN0b3J5KGNvbnN0
IFN0cmluZyYsIFNob3VsZEZvbGxvd1N5bWJvbGljTGlua3MpOwogV0VCQ09SRV9FWFBPUlQgU3Ry
aW5nIHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFN0
cmluZyYgY29tcG9uZW50KTsKIFN0cmluZyBwYXRoQnlBcHBlbmRpbmdDb21wb25lbnRzKGNvbnN0
IFN0cmluZyYgcGF0aCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGNvbXBvbmVudHMpOwogU3RyaW5n
IGxhc3RDb21wb25lbnRPZlBhdGhJZ25vcmluZ1RyYWlsaW5nU2xhc2goY29uc3QgU3RyaW5nJiBw
YXRoKTsKQEAgLTEwOSw2ICsxMTEsNyBAQCBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgcGF0aEdldEZp
bGVOYW1lKGNvbnN0IFN0cmluZyYpOwogV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGRpcmVjdG9yeU5h
bWUoY29uc3QgU3RyaW5nJik7CiBXRUJDT1JFX0VYUE9SVCBib29sIGdldFZvbHVtZUZyZWVTcGFj
ZShjb25zdCBTdHJpbmcmLCB1aW50NjRfdCYpOwogV0VCQ09SRV9FWFBPUlQgc3RkOjpvcHRpb25h
bDxpbnQzMl90PiBnZXRGaWxlRGV2aWNlSWQoY29uc3QgQ1N0cmluZyYpOworV0VCQ09SRV9FWFBP
UlQgYm9vbCBjcmVhdGVTeW1ib2xpY0xpbmsoY29uc3QgU3RyaW5nJiB0YXJnZXRQYXRoLCBjb25z
dCBTdHJpbmcmIHN5bWJvbGljTGlua1BhdGgpOwogCiBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE1l
dGFkYXRhVVJMKGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNv
bnN0IFN0cmluZyYgcmVmZXJyZXIgPSB7IH0pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dsaWIvRmlsZVN5c3RlbUdsaWIuY3BwCmluZGV4IGUzYzVkNjNlODQ4MGRhNDgxOTU4MDlk
NWEyZjZkMjE1NTk4OWUyYzMuLjc3YjA1NTliMjk3NDM5ZDA2MjI4ODg4NGI2OWQ5Mjg2Y2JjYjgy
MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvRmlsZVN5c3RlbUds
aWIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvRmlsZVN5c3RlbUdsaWIu
Y3BwCkBAIC0xMjMsNiArMTIzLDE1IEBAIHN0YXRpYyBib29sIGdldEZpbGVTdGF0KGNvbnN0IFN0
cmluZyYgcGF0aCwgR1N0YXRCdWYqIHN0YXRCdWZmZXIpCiAgICAgcmV0dXJuIGdfc3RhdChmaWxl
bmFtZS5nZXQoKSwgc3RhdEJ1ZmZlcikgIT0gLTE7CiB9CiAKK3N0YXRpYyBib29sIGdldEZpbGVM
U3RhdChjb25zdCBTdHJpbmcmIHBhdGgsIEdTdGF0QnVmKiBzdGF0QnVmZmVyKQoreworICAgIEdV
bmlxdWVQdHI8Z2NoYXI+IGZpbGVuYW1lID0gdW5lc2NhcGVkRmlsZW5hbWUocGF0aCk7CisgICAg
aWYgKCFmaWxlbmFtZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIGdfbHN0
YXQoZmlsZW5hbWUuZ2V0KCksIHN0YXRCdWZmZXIpICE9IC0xOworfQorCiBib29sIGdldEZpbGVT
aXplKGNvbnN0IFN0cmluZyYgcGF0aCwgbG9uZyBsb25nJiByZXN1bHRTaXplKQogewogICAgIEdT
dGF0QnVmIHN0YXRSZXN1bHQ7CkBAIC0xNTUsMTEgKzE2NCwxNyBAQCBib29sIGdldEZpbGVNb2Rp
ZmljYXRpb25UaW1lKGNvbnN0IFN0cmluZyYgcGF0aCwgdGltZV90JiBtb2RpZmllZFRpbWUpCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgZ2V0RmlsZU1ldGFkYXRhKGNvbnN0IFN0cmluZyYg
cGF0aCwgRmlsZU1ldGFkYXRhJiBtZXRhZGF0YSkKK2Jvb2wgZ2V0RmlsZU1ldGFkYXRhKGNvbnN0
IFN0cmluZyYgcGF0aCwgRmlsZU1ldGFkYXRhJiBtZXRhZGF0YSwgU2hvdWxkRm9sbG93U3ltYm9s
aWNMaW5rcyBzaG91bGRGb2xsb3dTeW1ib2xpY0xpbmtzKQogewogICAgIEdTdGF0QnVmIHN0YXRS
ZXN1bHQ7Ci0gICAgaWYgKCFnZXRGaWxlU3RhdChwYXRoLCAmc3RhdFJlc3VsdCkpCi0gICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgIGlmIChzaG91bGRGb2xsb3dTeW1ib2xpY0xpbmtzID09IFNo
b3VsZEZvbGxvd1N5bWJvbGljTGlua3M6OlllcykgeworICAgICAgICBpZiAoIWdldEZpbGVTdGF0
KHBhdGgsICZzdGF0UmVzdWx0KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9IGVs
c2UgeworICAgICAgICBpZiAoIWdldEZpbGVMU3RhdChwYXRoLCAmc3RhdFJlc3VsdCkpCisgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQogCiAgICAgU3RyaW5nIGZpbGVuYW1lID0gcGF0
aEdldEZpbGVOYW1lKHBhdGgpOwogICAgIG1ldGFkYXRhLmlzSGlkZGVuID0gIWZpbGVuYW1lLmlz
RW1wdHkoKSAmJiBmaWxlbmFtZVswXSA9PSAnLic7CkBAIC0yMDMsNiArMjE4LDE5IEBAIFN0cmlu
ZyBob21lRGlyZWN0b3J5UGF0aCgpCiAgICAgcmV0dXJuIHN0cmluZ0Zyb21GaWxlU3lzdGVtUmVw
cmVzZW50YXRpb24oZ19nZXRfaG9tZV9kaXIoKSk7CiB9CiAKK2Jvb2wgY3JlYXRlU3ltYm9saWNM
aW5rKGNvbnN0IFN0cmluZyYgdGFyZ2V0UGF0aCwgY29uc3QgU3RyaW5nJiBzeW1ib2xpY0xpbmtQ
YXRoKQoreworICAgIENTdHJpbmcgdGFyZ2V0UGF0aEZTUmVwID0gZmlsZVN5c3RlbVJlcHJlc2Vu
dGF0aW9uKHRhcmdldFBhdGgpOworICAgIGlmICghdGFyZ2V0UGF0aEZTUmVwLmRhdGEoKSB8fCB0
YXJnZXRQYXRoRlNSZXAuZGF0YSgpWzBdID09ICdcMCcpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIENTdHJpbmcgc3ltYm9saWNMaW5rUGF0aEZTUmVwID0gZmlsZVN5c3RlbVJlcHJlc2Vu
dGF0aW9uKHN5bWJvbGljTGlua1BhdGgpOworICAgIGlmICghc3ltYm9saWNMaW5rUGF0aEZTUmVw
LmRhdGEoKSB8fCBzeW1ib2xpY0xpbmtQYXRoRlNSZXAuZGF0YSgpWzBdID09ICdcMCcpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiAhc3ltbGluayh0YXJnZXRQYXRoRlNSZXAu
ZGF0YSgpLCBzeW1ib2xpY0xpbmtQYXRoRlNSZXAuZGF0YSgpKTsKK30KKwogU3RyaW5nIHBhdGhH
ZXRGaWxlTmFtZShjb25zdCBTdHJpbmcmIHBhdGhOYW1lKQogewogICAgIEdVbmlxdWVQdHI8Z2No
YXI+IHRtcEZpbGVuYW1lID0gdW5lc2NhcGVkRmlsZW5hbWUocGF0aE5hbWUpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iRGF0YUZpbGVSZWZlcmVuY2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iRGF0YUZpbGVSZWZlcmVu
Y2UuY3BwCmluZGV4IDFmOGNlMGI2MzhmZjEyMmE0NzgyMzI5NGE5ODI0Y2NhMTc3ZjZkN2QuLjZk
YzZkNjRhZTg3MTg1ZDBmMWNkMWVhODc3NjgwOGRhM2M2NTVkN2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYkRhdGFGaWxlUmVmZXJlbmNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JEYXRhRmlsZVJlZmVyZW5jZS5j
cHAKQEAgLTk2LDcgKzk2LDcgQEAgdm9pZCBCbG9iRGF0YUZpbGVSZWZlcmVuY2U6OnN0YXJ0VHJh
Y2tpbmdNb2RpZmljYXRpb25zKCkKIAogICAgIC8vIEZJWE1FOiBTb21lIHBsYXRmb3JtcyBwcm92
aWRlIGJldHRlciB3YXlzIHRvIGxpc3RlbiBmb3IgZmlsZSBzeXN0ZW0gb2JqZWN0IGNoYW5nZXMs
IGNvbnNpZGVyIHVzaW5nIHRoZXNlLgogICAgIEZpbGVNZXRhZGF0YSBtZXRhZGF0YTsKLSAgICBp
ZiAoIWdldEZpbGVNZXRhZGF0YShtX3BhdGgsIG1ldGFkYXRhKSkKKyAgICBpZiAoIWdldEZpbGVN
ZXRhZGF0YShtX3BhdGgsIG1ldGFkYXRhLCBTaG91bGRGb2xsb3dTeW1ib2xpY0xpbmtzOjpZZXMp
KQogICAgICAgICByZXR1cm47CiAKICAgICBtX2V4cGVjdGVkTW9kaWZpY2F0aW9uVGltZSA9IG1l
dGFkYXRhLm1vZGlmaWNhdGlvblRpbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL21hYy9CbG9iRGF0YUZpbGVSZWZlcmVuY2VNYWMubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9CbG9iRGF0YUZpbGVSZWZlcmVuY2VNYWMubW0KaW5k
ZXggMzJlOTU0NTg3YjkxMDNhZjNjMDI3MTNhZGI5OWYyZmYzOWIzY2Y2Yi4uOGRhY2U3YTdlMDI2
YTdiZDI1YjllM2MyODcxOThhZmFiN2MwYjYzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9tYWMvQmxvYkRhdGFGaWxlUmVmZXJlbmNlTWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL0Jsb2JEYXRhRmlsZVJlZmVyZW5jZU1h
Yy5tbQpAQCAtODAsNyArODAsNyBAQCB2b2lkIEJsb2JEYXRhRmlsZVJlZmVyZW5jZTo6Z2VuZXJh
dGVSZXBsYWNlbWVudEZpbGUoKQogICAgIG1fcmVwbGFjZW1lbnRTaG91bGRCZUdlbmVyYXRlZCA9
IGZhbHNlOwogICAgIGlmICghbV9yZXBsYWNlbWVudFBhdGguaXNOdWxsKCkpIHsKICAgICAgICAg
RmlsZU1ldGFkYXRhIG1ldGFkYXRhOwotICAgICAgICBpZiAoZ2V0RmlsZU1ldGFkYXRhKG1fcmVw
bGFjZW1lbnRQYXRoLCBtZXRhZGF0YSkpCisgICAgICAgIGlmIChnZXRGaWxlTWV0YWRhdGEobV9y
ZXBsYWNlbWVudFBhdGgsIG1ldGFkYXRhLCBTaG91bGRGb2xsb3dTeW1ib2xpY0xpbmtzOjpZZXMp
KQogICAgICAgICAgICAgbV9zaXplID0gbWV0YWRhdGEubGVuZ3RoOwogICAgIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcG9zaXgvRmlsZVN5c3RlbVBPU0lYLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJWC5jcHAKaW5kZXgg
ZWExNzZkZDA0ZWQzZTAwMjA1OGI4ZTYwMjg0NjNlYTFjMjgwMzU4YS4uZjRhYzFkMDdlNzg5MDVj
NDc1NDBkMTFiZDgwNjk4ZDNjMDM5N2Y5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vcG9zaXgvRmlsZVN5c3RlbVBPU0lYLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9wb3NpeC9GaWxlU3lzdGVtUE9TSVguY3BwCkBAIC0yMzksNyArMjM5LDcgQEAgYm9vbCBn
ZXRGaWxlTW9kaWZpY2F0aW9uVGltZShjb25zdCBTdHJpbmcmIHBhdGgsIHRpbWVfdCYgcmVzdWx0
KQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIGdldEZpbGVNZXRhZGF0YShjb25zdCBTdHJp
bmcmIHBhdGgsIEZpbGVNZXRhZGF0YSYgbWV0YWRhdGEpCitib29sIGdldEZpbGVNZXRhZGF0YShj
b25zdCBTdHJpbmcmIHBhdGgsIEZpbGVNZXRhZGF0YSYgbWV0YWRhdGEsIFNob3VsZEZvbGxvd1N5
bWJvbGljTGlua3Mgc2hvdWxkRm9sbG93U3ltYm9saWNMaW5rcykKIHsKICAgICBDU3RyaW5nIGZz
UmVwID0gZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHBhdGgpOwogCkBAIC0yNDcsOCArMjQ3LDE0
IEBAIGJvb2wgZ2V0RmlsZU1ldGFkYXRhKGNvbnN0IFN0cmluZyYgcGF0aCwgRmlsZU1ldGFkYXRh
JiBtZXRhZGF0YSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgc3RydWN0IHN0YXQgZmls
ZUluZm87Ci0gICAgaWYgKHN0YXQoZnNSZXAuZGF0YSgpLCAmZmlsZUluZm8pKQotICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoc2hvdWxkRm9sbG93U3ltYm9saWNMaW5rcyA9PSBTaG91
bGRGb2xsb3dTeW1ib2xpY0xpbmtzOjpZZXMpIHsKKyAgICAgICAgaWYgKHN0YXQoZnNSZXAuZGF0
YSgpLCAmZmlsZUluZm8pKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0gZWxzZSB7
CisgICAgICAgIGlmIChsc3RhdChmc1JlcC5kYXRhKCksICZmaWxlSW5mbykpCisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgfQogCiAgICAgU3RyaW5nIGZpbGVuYW1lID0gcGF0aEdldEZp
bGVOYW1lKHBhdGgpOwogCkBAIC0yNjQsNiArMjcwLDE5IEBAIGJvb2wgZ2V0RmlsZU1ldGFkYXRh
KGNvbnN0IFN0cmluZyYgcGF0aCwgRmlsZU1ldGFkYXRhJiBtZXRhZGF0YSkKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAorYm9vbCBjcmVhdGVTeW1ib2xpY0xpbmsoY29uc3QgU3RyaW5nJiB0YXJnZXRQ
YXRoLCBjb25zdCBTdHJpbmcmIHN5bWJvbGljTGlua1BhdGgpCit7CisgICAgQ1N0cmluZyB0YXJn
ZXRQYXRoRlNSZXAgPSBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24odGFyZ2V0UGF0aCk7CisgICAg
aWYgKCF0YXJnZXRQYXRoRlNSZXAuZGF0YSgpIHx8IHRhcmdldFBhdGhGU1JlcC5kYXRhKClbMF0g
PT0gJ1wwJykKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgQ1N0cmluZyBzeW1ib2xpY0xp
bmtQYXRoRlNSZXAgPSBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oc3ltYm9saWNMaW5rUGF0aCk7
CisgICAgaWYgKCFzeW1ib2xpY0xpbmtQYXRoRlNSZXAuZGF0YSgpIHx8IHN5bWJvbGljTGlua1Bh
dGhGU1JlcC5kYXRhKClbMF0gPT0gJ1wwJykKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg
cmV0dXJuICFzeW1saW5rKHRhcmdldFBhdGhGU1JlcC5kYXRhKCksIHN5bWJvbGljTGlua1BhdGhG
U1JlcC5kYXRhKCkpOworfQorCiBTdHJpbmcgcGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KGNvbnN0
IFN0cmluZyYgcGF0aCwgY29uc3QgU3RyaW5nJiBjb21wb25lbnQpCiB7CiAgICAgaWYgKHBhdGgu
ZW5kc1dpdGgoJy8nKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9G
aWxlU3lzdGVtV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9GaWxlU3lzdGVt
V2luLmNwcAppbmRleCA4NzgyZDcwMGRlYjY2ODUxMWQ3MzVkMzBjMjg4NjBhMDY1ZmNkMDVmLi4z
NWNkNmNhYTI0OTA2YzFhMTFjMGNkOGJlMzcwYTllM2VkNWU3OTNkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vRmlsZVN5c3RlbVdpbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vd2luL0ZpbGVTeXN0ZW1XaW4uY3BwCkBAIC0xNDEsMTIgKzE0MSwzOSBA
QCBib29sIGdldEZpbGVDcmVhdGlvblRpbWUoY29uc3QgU3RyaW5nJiBwYXRoLCB0aW1lX3QmIHRp
bWUpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgZ2V0RmlsZU1ldGFkYXRhKGNvbnN0IFN0
cmluZyYgcGF0aCwgRmlsZU1ldGFkYXRhJiBtZXRhZGF0YSkKK3N0YXRpYyBTdHJpbmcgZ2V0Rmlu
YWxQYXRoTmFtZShjb25zdCBTdHJpbmcmIHBhdGgpCit7CisgICAgYXV0byBoYW5kbGUgPSBvcGVu
RmlsZShwYXRoLCBPcGVuRm9yUmVhZCk7CisgICAgaWYgKCFpc0hhbmRsZVZhbGlkKGhhbmRsZSkp
CisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKworICAgIFN0cmluZ1ZlY3RvcjxVQ2hhcj4gYnVm
ZmVyKE1BWF9QQVRIKTsKKyAgICBpZiAoOjpHZXRGaW5hbFBhdGhOYW1lQnlIYW5kbGVXKGhhbmRs
ZSwgYnVmZmVyLmRhdGEoKSwgYnVmZmVyLnNpemUoKSwgVk9MVU1FX05BTUVfTlQpID49IE1BWF9Q
QVRIKSB7CisgICAgICAgIGNsb3NlRmlsZShoYW5kbGUpOworICAgICAgICByZXR1cm4gU3RyaW5n
KCk7CisgICAgfQorICAgIGNsb3NlRmlsZShoYW5kbGUpOworCisgICAgYnVmZmVyLnNocmluayh3
Y3NsZW4oYnVmZmVyLmRhdGEoKSkpOworICAgIHJldHVybiBTdHJpbmc6OmFkb3B0KFdURk1vdmUo
YnVmZmVyKSk7Cit9CisKK2Jvb2wgZ2V0RmlsZU1ldGFkYXRhKGNvbnN0IFN0cmluZyYgcGF0aCwg
RmlsZU1ldGFkYXRhJiBtZXRhZGF0YSwgU2hvdWxkRm9sbG93U3ltYm9saWNMaW5rcyBzaG91bGRG
b2xsb3dTeW1ib2xpY0xpbmtzKQogewogICAgIFdJTjMyX0ZJTkRfREFUQVcgZmluZERhdGE7CiAg
ICAgaWYgKCFnZXRGaW5kRGF0YShwYXRoLCBmaW5kRGF0YSkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAorICAgIGJvb2wgaXNTeW1ib2xpY0xpbmsgPSBmaW5kRGF0YS5kd0ZpbGVBdHRyaWJ1dGVz
ICYgRklMRV9BVFRSSUJVVEVfUkVQQVJTRV9QT0lOVCAmJiBmaW5kRGF0YS5kd1Jlc2VydmVkMCA9
PSBJT19SRVBBUlNFX1RBR19TWU1MSU5LOworICAgIGlmIChpc1N5bWJvbGljTGluayAmJiBzaG91
bGRGb2xsb3dTeW1ib2xpY0xpbmtzID09IFNob3VsZEZvbGxvd1N5bWJvbGljTGlua3M6Olllcykg
eworICAgICAgICBTdHJpbmcgdGFyZ2V0UGF0aCA9IGdldEZpbmFsUGF0aE5hbWUocGF0aCk7Cisg
ICAgICAgIGlmICh0YXJnZXRQYXRoLmlzTnVsbCgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgICAgICBpZiAoIWdldEZpbmREYXRhKHRhcmdldFBhdGgsIGZpbmREYXRhKSkKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaXNTeW1ib2xpY0xpbmsgPSBmYWxzZTsKKyAg
ICB9CisKICAgICBpZiAoIWdldEZpbGVTaXplRnJvbUZpbmREYXRhKGZpbmREYXRhLCBtZXRhZGF0
YS5sZW5ndGgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKQEAgLTE1NCwxMSArMTgxLDIxIEBA
IGJvb2wgZ2V0RmlsZU1ldGFkYXRhKGNvbnN0IFN0cmluZyYgcGF0aCwgRmlsZU1ldGFkYXRhJiBt
ZXRhZGF0YSkKICAgICBnZXRGaWxlTW9kaWZpY2F0aW9uVGltZUZyb21GaW5kRGF0YShmaW5kRGF0
YSwgbW9kaWZpY2F0aW9uVGltZSk7CiAgICAgbWV0YWRhdGEubW9kaWZpY2F0aW9uVGltZSA9IG1v
ZGlmaWNhdGlvblRpbWU7CiAgICAgbWV0YWRhdGEuaXNIaWRkZW4gPSBmaW5kRGF0YS5kd0ZpbGVB
dHRyaWJ1dGVzICYgRklMRV9BVFRSSUJVVEVfSElEREVOOwotICAgIG1ldGFkYXRhLnR5cGUgPSAo
ZmluZERhdGEuZHdGaWxlQXR0cmlidXRlcyAmIEZJTEVfQVRUUklCVVRFX0RJUkVDVE9SWSkgPyBG
aWxlTWV0YWRhdGE6OlR5cGVEaXJlY3RvcnkgOiBGaWxlTWV0YWRhdGE6OlR5cGVGaWxlOworICAg
IGlmIChmaW5kRGF0YS5kd0ZpbGVBdHRyaWJ1dGVzICYgRklMRV9BVFRSSUJVVEVfRElSRUNUT1JZ
KQorICAgICAgICBtZXRhZGF0YS50eXBlID0gRmlsZU1ldGFkYXRhOjpUeXBlRGlyZWN0b3J5Owor
ICAgIGVsc2UgaWYgKGlzU3ltYm9saWNMaW5rKQorICAgICAgICBtZXRhZGF0YS50eXBlID0gRmls
ZU1ldGFkYXRhOjpUeXBlU3ltYm9saWNMaW5rOworICAgIGVsc2UKKyAgICAgICAgbWV0YWRhdGEu
dHlwZSA9IEZpbGVNZXRhZGF0YTo6VHlwZUZpbGU7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAor
Ym9vbCBjcmVhdGVTeW1ib2xpY0xpbmsoY29uc3QgU3RyaW5nJiB0YXJnZXRQYXRoLCBjb25zdCBT
dHJpbmcmIHN5bWJvbGljTGlua1BhdGgpCit7CisgICAgcmV0dXJuICE6OkNyZWF0ZVN5bWJvbGlj
TGlua1coc3ltYm9saWNMaW5rUGF0aC5jaGFyYWN0ZXJzV2l0aE51bGxUZXJtaW5hdGlvbigpLmRh
dGEoKSwgdGFyZ2V0UGF0aC5jaGFyYWN0ZXJzV2l0aE51bGxUZXJtaW5hdGlvbigpLmRhdGEoKSwg
MCk7Cit9CisKIGJvb2wgZmlsZUV4aXN0cyhjb25zdCBTdHJpbmcmIHBhdGgpCiB7CiAgICAgV0lO
MzJfRklORF9EQVRBVyBmaW5kRGF0YTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rv
b2xzL0NoYW5nZUxvZwppbmRleCAzNzZlZDA5N2VjY2IyZjY1ZTdiYmMyNzk2NjI1ZmYxNzI5ZGQz
MmRjLi5jMzFhNTFlYWUxYjNlZWZkMzlkMjI3ZjQ5MTI0ZGJmYzFkY2VlZThhIDEwMDY0NAotLS0g
YS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTctMDgtMzEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBn
ZXRGaWxlTWV0YWRhdGEoKSBkb2VzIG5vdCB3b3JrIGFzIGV4cGVjdGVkIGZvciBzeW1ib2xpYyBs
aW5rcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2
MTQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW5kcmVhcyBLbGluZy4KKworICAgICAgICBBZGQg
QVBJIHRlc3QgY292ZXJhZ2UuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvRmlsZVN5c3RlbS5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorCiAy
MDE3LTA4LTMxICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBbR1RLXSBTZXZlcmFsIElucHV0TWV0aG9kRmlsdGVyIHRlc3RzIGFyZSBmYWlsaW5n
IGFuZCBjcmFzaGluZwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL0ZpbGVTeXN0ZW0uY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0Zp
bGVTeXN0ZW0uY3BwCmluZGV4IDhhNGE3OGM2NTNhN2JjMzlkMzJkZTkyYWE2NWM0OTBmNDM2ODkx
ZjQuLjlhYTc2ZmM0YTMwMGQzZThkMWY1YTlhNDU5YjQzOTQ5NTBlZTZlNGUgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlU3lzdGVtLmNwcAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZVN5c3RlbS5jcHAKQEAgLTI3LDYg
KzI3LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKIAogI2luY2x1ZGUgIlRlc3QuaCIKKyNpbmNs
dWRlIDxXZWJDb3JlL0ZpbGVNZXRhZGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3Rl
bS5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL1N0cmluZ0V4
dHJhcy5oPgpAQCAtNDgsNyArNDksMTAgQEAgcHVibGljOgogICAgICAgICBQbGF0Zm9ybUZpbGVI
YW5kbGUgaGFuZGxlOwogICAgICAgICBtX3RlbXBGaWxlUGF0aCA9IG9wZW5UZW1wb3JhcnlGaWxl
KCJ0ZW1wVGVzdEZpbGUiLCBoYW5kbGUpOwogICAgICAgICB3cml0ZVRvRmlsZShoYW5kbGUsIEZp
bGVTeXN0ZW1UZXN0RGF0YSwgc3RybGVuKEZpbGVTeXN0ZW1UZXN0RGF0YSkpOwotICAgICAgICBj
bG9zZUZpbGUoaGFuZGxlKTsgCisgICAgICAgIGNsb3NlRmlsZShoYW5kbGUpOworCisgICAgICAg
IG1fdGVtcEZpbGVTeW1saW5rUGF0aCA9IG1fdGVtcEZpbGVQYXRoICsgIi1zeW1saW5rIjsKKyAg
ICAgICAgY3JlYXRlU3ltYm9saWNMaW5rKG1fdGVtcEZpbGVQYXRoLCBtX3RlbXBGaWxlU3ltbGlu
a1BhdGgpOwogCiAgICAgICAgIG1fdGVtcEVtcHR5RmlsZVBhdGggPSBvcGVuVGVtcG9yYXJ5Rmls
ZSgidGVtcEVtcHR5VGVzdEZpbGUiLCBoYW5kbGUpOwogICAgICAgICBjbG9zZUZpbGUoaGFuZGxl
KTsKQEAgLTY2LDYgKzcwLDcgQEAgcHVibGljOgogICAgIHZvaWQgVGVhckRvd24oKSBvdmVycmlk
ZQogICAgIHsKICAgICAgICAgZGVsZXRlRmlsZShtX3RlbXBGaWxlUGF0aCk7CisgICAgICAgIGRl
bGV0ZUZpbGUobV90ZW1wRmlsZVN5bWxpbmtQYXRoKTsKICAgICAgICAgZGVsZXRlRmlsZShtX3Rl
bXBFbXB0eUZpbGVQYXRoKTsKICAgICAgICAgZGVsZXRlRmlsZShtX3NwYWNlQ29udGFpbmluZ0Zp
bGVQYXRoKTsKICAgICAgICAgZGVsZXRlRmlsZShtX2JhbmdDb250YWluaW5nRmlsZVBhdGgpOwpA
QCAtNzMsNiArNzgsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgY29uc3QgU3RyaW5nJiB0ZW1w
RmlsZVBhdGgoKSB7IHJldHVybiBtX3RlbXBGaWxlUGF0aDsgfQorICAgIGNvbnN0IFN0cmluZyYg
dGVtcEZpbGVTeW1saW5rUGF0aCgpIHsgcmV0dXJuIG1fdGVtcEZpbGVTeW1saW5rUGF0aDsgfQog
ICAgIGNvbnN0IFN0cmluZyYgdGVtcEVtcHR5RmlsZVBhdGgoKSB7IHJldHVybiBtX3RlbXBFbXB0
eUZpbGVQYXRoOyB9CiAgICAgY29uc3QgU3RyaW5nJiBzcGFjZUNvbnRhaW5pbmdGaWxlUGF0aCgp
IHsgcmV0dXJuIG1fc3BhY2VDb250YWluaW5nRmlsZVBhdGg7IH0KICAgICBjb25zdCBTdHJpbmcm
IGJhbmdDb250YWluaW5nRmlsZVBhdGgoKSB7IHJldHVybiBtX2JhbmdDb250YWluaW5nRmlsZVBh
dGg7IH0KQEAgLTgwLDYgKzg2LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIFN0cmluZyBt
X3RlbXBGaWxlUGF0aDsKKyAgICBTdHJpbmcgbV90ZW1wRmlsZVN5bWxpbmtQYXRoOwogICAgIFN0
cmluZyBtX3RlbXBFbXB0eUZpbGVQYXRoOwogICAgIFN0cmluZyBtX3NwYWNlQ29udGFpbmluZ0Zp
bGVQYXRoOwogICAgIFN0cmluZyBtX2JhbmdDb250YWluaW5nRmlsZVBhdGg7CkBAIC0xMTksNCAr
MTI2LDE3IEBAIFRFU1RfRihGaWxlU3lzdGVtVGVzdCwgRmlsZXNIYXZlU2FtZVZvbHVtZSkKICAg
ICBFWFBFQ1RfVFJVRShmaWxlc0hhdmVTYW1lVm9sdW1lKGJhbmdDb250YWluaW5nRmlsZVBhdGgo
KSwgcXVvdGVDb250YWluaW5nRmlsZVBhdGgoKSkpOwogfQogCitURVNUX0YoRmlsZVN5c3RlbVRl
c3QsIEdldEZpbGVNZXRhZGF0YVN5bWxpbmspCit7CisgICAgRmlsZU1ldGFkYXRhIHN5bWxpbmtN
ZXRhZGF0YTsKKyAgICBFWFBFQ1RfVFJVRShnZXRGaWxlTWV0YWRhdGEodGVtcEZpbGVTeW1saW5r
UGF0aCgpLCBzeW1saW5rTWV0YWRhdGEsIFNob3VsZEZvbGxvd1N5bWJvbGljTGlua3M6Ok5vKSk7
CisgICAgRVhQRUNUX1RSVUUoc3ltbGlua01ldGFkYXRhLnR5cGUgPT0gRmlsZU1ldGFkYXRhOjpU
eXBlU3ltYm9saWNMaW5rKTsKKyAgICBFWFBFQ1RfRkFMU0Uoc3RhdGljX2Nhc3Q8c2l6ZV90Pihz
eW1saW5rTWV0YWRhdGEubGVuZ3RoKSA9PSBzdHJsZW4oRmlsZVN5c3RlbVRlc3REYXRhKSk7CisK
KyAgICBGaWxlTWV0YWRhdGEgdGFyZ2V0TWV0YWRhdGE7CisgICAgRVhQRUNUX1RSVUUoZ2V0Rmls
ZU1ldGFkYXRhKHRlbXBGaWxlU3ltbGlua1BhdGgoKSwgdGFyZ2V0TWV0YWRhdGEsIFNob3VsZEZv
bGxvd1N5bWJvbGljTGlua3M6OlllcykpOworICAgIEVYUEVDVF9UUlVFKHRhcmdldE1ldGFkYXRh
LnR5cGUgPT0gRmlsZU1ldGFkYXRhOjpUeXBlRmlsZSk7CisgICAgRVhQRUNUX0VRKHN0cmxlbihG
aWxlU3lzdGVtVGVzdERhdGEpLCBzdGF0aWNfY2FzdDxzaXplX3Q+KHRhcmdldE1ldGFkYXRhLmxl
bmd0aCkpOworfQorCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319507</attachid>
            <date>2017-08-31 13:09:07 -0700</date>
            <delta_ts>2017-08-31 13:09:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176143-20170831130907.patch</filename>
            <type>text/plain</type>
            <size>22143</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxNDM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWQ3NjFkY2FlYWQyOWQw
ODE2YjhiODcwYjFhYWJiNzM5MTQ3NThlOS4uNzJiODljNjQ4OTU3OWYyYzVhMTlmZDc3MWExOWUx
MTA0NGUxYWJkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDE3LTA4LTMxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgZ2V0RmlsZU1ldGFkYXRhKCkg
ZG9lcyBub3Qgd29yayBhcyBleHBlY3RlZCBmb3Igc3ltYm9saWMgbGlua3MKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjE0MworCisgICAgICAgIFJl
dmlld2VkIGJ5IEFuZHJlYXMgS2xpbmcuCisKKyAgICAgICAgZ2V0RmlsZU1ldGFkYXRhKCkgZG9l
cyBub3Qgd29yayBhcyBleHBlY3RlZCBmb3Igc3ltYm9saWMgbGlua3M6CisgICAgICAgIE9uIFBP
U0lYLCBnZXRGaWxlTWV0YWRhdGEoKSBhbHdheXMgZm9sbG93ZWQgc3ltbGlua3MsIHdoaWNoIG1l
YW50IHRoYXQgRmlsZU1ldGFkYXRhLnR5cGUgY291bGQKKyAgICAgICAgbmV2ZXIgYmUgVHlwZVN5
bWJvbGljTGluay4gT24gV2luZG93cywgdGhlIGZ1bmN0aW9uIHByb3Blcmx5IGRpZCBub3QgZm9s
bG93IHN5bWxpbmtzIGJ1dCBmYWlsZWQgdG8gc2V0CisgICAgICAgIEZpbGVNZXRhZGF0YS50eXBl
IHRvIFR5cGVTeW1ib2xpY0xpbmsgd2hlbiB0aGUgZmlsZSB3YXMgYSBzeW1ib2xpYyBsaW5rLgor
CisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBhIG5ldyBTaG91bGRGb2xsb3dTeW1ib2xpY0xpbmtz
IHBhcmFtZXRlciB0byBnZXRGaWxlTWV0YWRhdGEoKSBzbyB0aGF0CisgICAgICAgIHRoZSBjYWxs
IHNpdGUgY2FuIGRlY2lkZSB0aGUgYmVoYXZpb3IgaXQgd2FudHMuIElmIGdldEZpbGVNZXRhZGF0
YSgpIGlzIGNhbGxlZCBvbiBhCisgICAgICAgIHN5bWJvbGljIGxpbmsgd2l0aCBTaG91bGRGb2xs
b3dTeW1ib2xpY0xpbmtzOjpObyBhcyBwYXJhbWV0ZXIsIEZpbGVNZXRhZGF0YS50eXBlIGlzIG5v
dworICAgICAgICBwcm9wZXJseSBzZXQgdG8gVHlwZVN5bWJvbGljTGluay4KKworICAgICAgICBO
byBuZXcgdGVzdHMsIGNvdmVyZWQgYnkgbmV3IEFQSSB0ZXN0LgorCisgICAgICAgICogTW9kdWxl
cy9lbnRyaWVzYXBpL0RPTUZpbGVTeXN0ZW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6bGlzdERp
cmVjdG9yeVdpdGhNZXRhZGF0YSk6CisgICAgICAgIEl0IGlzIGltcG9ydGFudCB3ZSBkbyBub3Qg
Zm9sbG93IHN5bWxpbmtzIGhlcmUgc2luY2UgdGhlIGNvZGUgd2FudHMgdG8gZGlzY2FyZCB0aGVt
CisgICAgICAgIGFuZCBkb2VzIHNvIGJ5IGNoZWNraW5nIEZpbGVNZXRhZGF0YS50eXBlLgorCisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGZp
bGVhcGkvRmlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlOjppc0RpcmVjdG9yeSBjb25z
dCk6CisKKyAgICAgICAgKiBodG1sL0ZpbGVMaXN0Q3JlYXRvci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjphcHBlbmREaXJlY3RvcnlGaWxlcyk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlTGlzdENy
ZWF0b3I6OmNyZWF0ZUZpbGVMaXN0KToKKyAgICAgICAgSXQgaXMgaW1wb3J0YW50IHdlIGRvIG5v
dCBmb2xsb3cgc3ltbGlua3MgaGVyZSBzaW5jZSB0aGUgY29kZSB3YW50cyB0byBkaXNjYXJkIHRo
ZW0KKyAgICAgICAgYW5kIGRvZXMgc28gYnkgY2hlY2tpbmcgRmlsZU1ldGFkYXRhLnR5cGUuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9GaWxlU3lzdGVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZp
bGVJc0RpcmVjdG9yeSk6CisgICAgICAgICogcGxhdGZvcm0vRmlsZVN5c3RlbS5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dsaWIvRmlsZVN5c3RlbUdsaWIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Z2V0RmlsZUxTdGF0KToKKyAgICAgICAgKFdlYkNvcmU6OmdldEZpbGVNZXRhZGF0YSk6CisgICAg
ICAgICogcGxhdGZvcm0vcG9zaXgvRmlsZVN5c3RlbVBPU0lYLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmdldEZpbGVNZXRhZGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVTeW1ib2xpY0xp
bmspOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9GaWxlU3lzdGVtV2luLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmdldEZpbmFsUGF0aE5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6Z2V0RmlsZU1l
dGFkYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVN5bWJvbGljTGluayk6CisgICAgICAg
IC0gQWRkIG5ldyBjcmVhdGVTeW1ib2xpY0xpbmsoKSBmdW5jdGlvbiBmb3IgdGVzdGluZyBwdXJw
b3Nlcy4KKyAgICAgICAgLSBPbiBQb3NpeCwgY2FsbCBsc3RhdCgpIGluc3RlYWQgb2Ygc3RhdCBp
ZiBTaG91bGRGb2xsb3dTeW1ib2xpY0xpbmtzOjpOby4KKyAgICAgICAgLSBPbiBXaW5kb3dzLCBz
aW5jZSBGaW5kRmlyc3RGaWxlVygpIGRvZXMgbm90IGZvbGxvdyBzeW1saW5rcywgcmVzb2x2ZQor
ICAgICAgICAgIGZpbmFsIHBhdGggdXNpbmcgR2V0RmluYWxQYXRoTmFtZUJ5SGFuZGxlVygpIGlm
IFNob3VsZEZvbGxvd1N5bWJvbGljTGlua3M6Olllcy4KKyAgICAgICAgLSBPbiBXaW5kb3dzLCBw
cm9wZXJseSBzZXQgRmlsZU1ldGFkYXRhLnR5cGUgdG8gVHlwZVN5bWJvbGljTGluayBpZiB0aGUg
ZmlsZQorICAgICAgICAgIGlzIGEgc3ltYm9saWMgbGluay4KKwogMjAxNy0wOC0zMSAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHN1cHBvcnQgZm9yIFJl
cXVlc3QgYm9keSBzdHJlYW0gY2xvbmluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9lbnRyaWVzYXBpL0RPTUZpbGVTeXN0ZW0uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9lbnRyaWVzYXBpL0RPTUZpbGVTeXN0ZW0uY3BwCmluZGV4IDllOWVjNWQxYzM4NmRlNDFhZGU1
NGE3NTQwODA3MTZlOGM5OGFmMmYuLjM4YzM1NGU1NWViNTlhOGY5ZDc1M2E0MjQ3MmIxOGIxZWZk
NjgwZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9ET01G
aWxlU3lzdGVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRE9N
RmlsZVN5c3RlbS5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAgc3RydWN0IExpc3RlZENoaWxkIHsKIHN0
YXRpYyBFeGNlcHRpb25PcjxWZWN0b3I8TGlzdGVkQ2hpbGQ+PiBsaXN0RGlyZWN0b3J5V2l0aE1l
dGFkYXRhKGNvbnN0IFN0cmluZyYgZnVsbFBhdGgpCiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJl
YWQoKSk7Ci0gICAgaWYgKCFmaWxlSXNEaXJlY3RvcnkoZnVsbFBhdGgpKQorICAgIGlmICghZmls
ZUlzRGlyZWN0b3J5KGZ1bGxQYXRoLCBTaG91bGRGb2xsb3dTeW1ib2xpY0xpbmtzOjpObykpCiAg
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RGb3VuZEVycm9yLCAiUGF0aCBubyBsb25nZXIg
ZXhpc3RzIG9yIGlzIG5vIGxvbmdlciBhIGRpcmVjdG9yeSIgfTsKIAogICAgIGF1dG8gY2hpbGRQ
YXRocyA9IGxpc3REaXJlY3RvcnkoZnVsbFBhdGgsICIqIik7CkBAIC01NCw3ICs1NCw3IEBAIHN0
YXRpYyBFeGNlcHRpb25PcjxWZWN0b3I8TGlzdGVkQ2hpbGQ+PiBsaXN0RGlyZWN0b3J5V2l0aE1l
dGFkYXRhKGNvbnN0IFN0cmluZyYKICAgICBsaXN0ZWRDaGlsZHJlbi5yZXNlcnZlSW5pdGlhbENh
cGFjaXR5KGNoaWxkUGF0aHMuc2l6ZSgpKTsKICAgICBmb3IgKGF1dG8mIGNoaWxkUGF0aCA6IGNo
aWxkUGF0aHMpIHsKICAgICAgICAgRmlsZU1ldGFkYXRhIG1ldGFkYXRhOwotICAgICAgICBpZiAo
IWdldEZpbGVNZXRhZGF0YShjaGlsZFBhdGgsIG1ldGFkYXRhKSkKKyAgICAgICAgaWYgKCFnZXRG
aWxlTWV0YWRhdGEoY2hpbGRQYXRoLCBtZXRhZGF0YSwgU2hvdWxkRm9sbG93U3ltYm9saWNMaW5r
czo6Tm8pKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIGxpc3RlZENoaWxkcmVuLnVu
Y2hlY2tlZEFwcGVuZChMaXN0ZWRDaGlsZCB7IHBhdGhHZXRGaWxlTmFtZShjaGlsZFBhdGgpLCBt
ZXRhZGF0YS50eXBlIH0pOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiMTk4ZThmMjQ0NmQ1NzI1NzZjMWJjMTU4ZjVm
YmRjMWI0NjYwZDBjLi43NjYzMzhiNDcxOGY3OGEwN2FhZGY2YzhiMDcwMDRlNTQ5NWY1YWI5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0xOTM5LDcgKzE5MzksNyBAQAogCQk0NjczMDIwMjFDNEVGRTc4MDBCQ0IzNTcgLyogSWdu
b3JlT3BlbnNEdXJpbmdVbmxvYWRDb3VudEluY3JlbWVudGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjczMDIwMTFDNEVGRTY2MDBCQ0IzNTcgLyog
SWdub3JlT3BlbnNEdXJpbmdVbmxvYWRDb3VudEluY3JlbWVudGVyLmggKi87IH07CiAJCTQ2ODM0
NERGMUVEREZBQUEwMEI3Nzk1QiAvKiBET01SZWN0TGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjgzNDRERDFFRERGQTVGMDBCNzc5NUIgLyog
RE9NUmVjdExpc3QuY3BwICovOyB9OwogCQk0NjgzNDRFMDFFRERGQUFBMDBCNzc5NUIgLyogRE9N
UmVjdExpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQ2ODM0NERFMUVEREZBNUYwMEI3Nzk1QiAvKiBET01SZWN0TGlzdC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTQ2ODlGMUFGMTI2N0JBRTEwMEU4
RDM4MCAvKiBGaWxlTWV0YWRhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQ2ODlGMUFFMTI2N0JBRTEwMEU4RDM4MCAvKiBGaWxlTWV0YWRhdGEuaCAq
LzsgfTsKKwkJNDY4OUYxQUYxMjY3QkFFMTAwRThEMzgwIC8qIEZpbGVNZXRhZGF0YS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY4OUYxQUUxMjY3QkFF
MTAwRThEMzgwIC8qIEZpbGVNZXRhZGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTQ2QjYzRjZDMUM2RThEMTkwMDJFOTE0QiAvKiBKU0V2ZW50
VGFyZ2V0Q3VzdG9tLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0NkI2M0Y2QjFDNkU4Q0RGMDAyRTkxNEIgLyogSlNFdmVudFRhcmdldEN1c3RvbS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2QzY5NkNC
MUU3MjA1RjcwMDU5NzkzNyAvKiBDUFVNb25pdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkM2OTZDOTFFNzIwNUU0MDA1OTc5MzcgLyogQ1BVTW9u
aXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTQ2QzY5NkNDMUU3MjA1RkMwMDU5NzkzNyAvKiBDUFVNb25pdG9yLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2QzY5NkNBMUU3MjA1RTQwMDU5Nzkz
NyAvKiBDUFVNb25pdG9yLmNwcCAqLzsgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Zp
bGVhcGkvRmlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGUuY3BwCmluZGV4IGI1
MDhhYmY0NmQxMWZlMmUzZjk0Zjc3MjFiMDdhOTQ4N2RiYzExYTIuLjEzOGQ0YjJlNjI1MjUyMjE0
NGE0MTcwOWRkYzk3ZjUzOTljMWRiNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVh
cGkvRmlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlLmNwcApAQCAtMTMw
LDcgKzEzMCw3IEBAIFN0cmluZyBGaWxlOjpjb250ZW50VHlwZUZvckZpbGUoY29uc3QgU3RyaW5n
JiBwYXRoKQogYm9vbCBGaWxlOjppc0RpcmVjdG9yeSgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2lz
RGlyZWN0b3J5KQotICAgICAgICBtX2lzRGlyZWN0b3J5ID0gZmlsZUlzRGlyZWN0b3J5KG1fcGF0
aCk7CisgICAgICAgIG1faXNEaXJlY3RvcnkgPSBmaWxlSXNEaXJlY3RvcnkobV9wYXRoLCBTaG91
bGRGb2xsb3dTeW1ib2xpY0xpbmtzOjpZZXMpOwogICAgIHJldHVybiAqbV9pc0RpcmVjdG9yeTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlTGlzdENyZWF0b3IuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlTGlzdENyZWF0b3IuY3BwCmluZGV4IDE5YmQ0NGFl
YTFkZGQxNmQxOTI5ZjIyZGFhMGQxOThiYmJmMzJhODEuLjQxOTJjNjNkZjE1OWNhMzNmNDcwY2Ew
ZGVkMTI5ODM2MTVjODg2MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUxp
c3RDcmVhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVMaXN0Q3JlYXRvci5j
cHAKQEAgLTQzLDcgKzQzLDcgQEAgc3RhdGljIHZvaWQgYXBwZW5kRGlyZWN0b3J5RmlsZXMoY29u
c3QgU3RyaW5nJiBkaXJlY3RvcnksIGNvbnN0IFN0cmluZyYgcmVsYXRpdmUKIHsKICAgICBmb3Ig
KGF1dG8mIGNoaWxkUGF0aCA6IGxpc3REaXJlY3RvcnkoZGlyZWN0b3J5LCAiKiIpKSB7CiAgICAg
ICAgIEZpbGVNZXRhZGF0YSBtZXRhZGF0YTsKLSAgICAgICAgaWYgKCFnZXRGaWxlTWV0YWRhdGEo
Y2hpbGRQYXRoLCBtZXRhZGF0YSkpCisgICAgICAgIGlmICghZ2V0RmlsZU1ldGFkYXRhKGNoaWxk
UGF0aCwgbWV0YWRhdGEsIFNob3VsZEZvbGxvd1N5bWJvbGljTGlua3M6Ok5vKSkKICAgICAgICAg
ICAgIGNvbnRpbnVlOwogCiAgICAgICAgIGlmIChtZXRhZGF0YS5pc0hpZGRlbikKQEAgLTgwLDcg
KzgwLDcgQEAgUmVmPEZpbGVMaXN0PiBGaWxlTGlzdENyZWF0b3I6OmNyZWF0ZUZpbGVMaXN0KGNv
bnN0IFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZvPiYKIHsKICAgICBWZWN0b3I8UmVmUHRyPEZp
bGU+PiBmaWxlT2JqZWN0czsKICAgICBmb3IgKGF1dG8mIGluZm8gOiBwYXRocykgewotICAgICAg
ICBpZiAoc2hvdWxkUmVzb2x2ZURpcmVjdG9yaWVzID09IFNob3VsZFJlc29sdmVEaXJlY3Rvcmll
czo6WWVzICYmIGZpbGVJc0RpcmVjdG9yeShpbmZvLnBhdGgpKQorICAgICAgICBpZiAoc2hvdWxk
UmVzb2x2ZURpcmVjdG9yaWVzID09IFNob3VsZFJlc29sdmVEaXJlY3Rvcmllczo6WWVzICYmIGZp
bGVJc0RpcmVjdG9yeShpbmZvLnBhdGgsIFNob3VsZEZvbGxvd1N5bWJvbGljTGlua3M6Ok5vKSkK
ICAgICAgICAgICAgIGFwcGVuZERpcmVjdG9yeUZpbGVzKGluZm8ucGF0aCwgcGF0aEdldEZpbGVO
YW1lKGluZm8ucGF0aCksIGZpbGVPYmplY3RzKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAg
ZmlsZU9iamVjdHMuYXBwZW5kKEZpbGU6OmNyZWF0ZVdpdGhOYW1lKGluZm8ucGF0aCwgaW5mby5k
aXNwbGF5TmFtZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5
c3RlbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmNwcAppbmRleCA0
YWJkMzQzYTgxYTM4Mzg4OWY1ZDIzNDc5NDkwMTE4NzJhMzRmZjg5Li5kNTdhMGJkN2UyMmQ2ODY2
M2E0ZmFjYWIwZmMwOWE0N2Y0NDIwMjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9GaWxlU3lzdGVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lz
dGVtLmNwcApAQCAtMzUxLDEwICszNTEsMTAgQEAgdm9pZCB1bmxvY2tBbmRDbG9zZUZpbGUoUGxh
dGZvcm1GaWxlSGFuZGxlIGhhbmRsZSkKICAgICBjbG9zZUZpbGUoaGFuZGxlKTsKIH0KIAotYm9v
bCBmaWxlSXNEaXJlY3RvcnkoY29uc3QgU3RyaW5nJiBwYXRoKQorYm9vbCBmaWxlSXNEaXJlY3Rv
cnkoY29uc3QgU3RyaW5nJiBwYXRoLCBTaG91bGRGb2xsb3dTeW1ib2xpY0xpbmtzIHNob3VsZEZv
bGxvd1N5bWJvbGljTGlua3MpCiB7CiAgICAgRmlsZU1ldGFkYXRhIG1ldGFkYXRhOwotICAgIGlm
ICghZ2V0RmlsZU1ldGFkYXRhKHBhdGgsIG1ldGFkYXRhKSkKKyAgICBpZiAoIWdldEZpbGVNZXRh
ZGF0YShwYXRoLCBtZXRhZGF0YSwgc2hvdWxkRm9sbG93U3ltYm9saWNMaW5rcykpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICByZXR1cm4gbWV0YWRhdGEudHlwZSA9PSBGaWxlTWV0YWRhdGE6
OlR5cGVEaXJlY3Rvcnk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9G
aWxlU3lzdGVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmgKaW5kZXgg
NTllMTMzZWU2YTNlMTgwNTcwMGFmOGEyMDQ2MjE5OGIxNGI1ZWU5My4uMTU5ZjFjYmQ1YzlhN2Qw
NzQxNmZlYjQ4ODNmMWQ5NDc0Yzg5MDZiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vRmlsZVN5c3RlbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0
ZW0uaApAQCAtODgsNiArODgsOCBAQCBlbnVtIEZpbGVMb2NrTW9kZSB7CiAgICAgTG9ja05vbkJs
b2NraW5nID0gNAogfTsKIAorZW51bSBjbGFzcyBTaG91bGRGb2xsb3dTeW1ib2xpY0xpbmtzIHsg
Tm8sIFllcyB9OworCiBzdHJ1Y3QgRmlsZU1ldGFkYXRhOwogCiBXRUJDT1JFX0VYUE9SVCBib29s
IGZpbGVFeGlzdHMoY29uc3QgU3RyaW5nJik7CkBAIC05OCw4ICsxMDAsOCBAQCBXRUJDT1JFX0VY
UE9SVCBib29sIGdldEZpbGVTaXplKGNvbnN0IFN0cmluZyYsIGxvbmcgbG9uZyYgcmVzdWx0KTsK
IFdFQkNPUkVfRVhQT1JUIGJvb2wgZ2V0RmlsZVNpemUoUGxhdGZvcm1GaWxlSGFuZGxlLCBsb25n
IGxvbmcmIHJlc3VsdCk7CiBXRUJDT1JFX0VYUE9SVCBib29sIGdldEZpbGVNb2RpZmljYXRpb25U
aW1lKGNvbnN0IFN0cmluZyYsIHRpbWVfdCYgcmVzdWx0KTsKIFdFQkNPUkVfRVhQT1JUIGJvb2wg
Z2V0RmlsZUNyZWF0aW9uVGltZShjb25zdCBTdHJpbmcmLCB0aW1lX3QmIHJlc3VsdCk7IC8vIE5v
dCBhbGwgcGxhdGZvcm1zIHN0b3JlIGZpbGUgY3JlYXRpb24gdGltZS4KLWJvb2wgZ2V0RmlsZU1l
dGFkYXRhKGNvbnN0IFN0cmluZyYsIEZpbGVNZXRhZGF0YSYpOwotYm9vbCBmaWxlSXNEaXJlY3Rv
cnkoY29uc3QgU3RyaW5nJik7CitXRUJDT1JFX0VYUE9SVCBib29sIGdldEZpbGVNZXRhZGF0YShj
b25zdCBTdHJpbmcmLCBGaWxlTWV0YWRhdGEmLCBTaG91bGRGb2xsb3dTeW1ib2xpY0xpbmtzKTsK
K2Jvb2wgZmlsZUlzRGlyZWN0b3J5KGNvbnN0IFN0cmluZyYsIFNob3VsZEZvbGxvd1N5bWJvbGlj
TGlua3MpOwogV0VCQ09SRV9FWFBPUlQgU3RyaW5nIHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChj
b25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFN0cmluZyYgY29tcG9uZW50KTsKIFN0cmluZyBwYXRo
QnlBcHBlbmRpbmdDb21wb25lbnRzKGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgVmVjdG9yPFN0
cmluZz4mIGNvbXBvbmVudHMpOwogU3RyaW5nIGxhc3RDb21wb25lbnRPZlBhdGhJZ25vcmluZ1Ry
YWlsaW5nU2xhc2goY29uc3QgU3RyaW5nJiBwYXRoKTsKQEAgLTEwOSw2ICsxMTEsNyBAQCBXRUJD
T1JFX0VYUE9SVCBTdHJpbmcgcGF0aEdldEZpbGVOYW1lKGNvbnN0IFN0cmluZyYpOwogV0VCQ09S
RV9FWFBPUlQgU3RyaW5nIGRpcmVjdG9yeU5hbWUoY29uc3QgU3RyaW5nJik7CiBXRUJDT1JFX0VY
UE9SVCBib29sIGdldFZvbHVtZUZyZWVTcGFjZShjb25zdCBTdHJpbmcmLCB1aW50NjRfdCYpOwog
V0VCQ09SRV9FWFBPUlQgc3RkOjpvcHRpb25hbDxpbnQzMl90PiBnZXRGaWxlRGV2aWNlSWQoY29u
c3QgQ1N0cmluZyYpOworV0VCQ09SRV9FWFBPUlQgYm9vbCBjcmVhdGVTeW1ib2xpY0xpbmsoY29u
c3QgU3RyaW5nJiB0YXJnZXRQYXRoLCBjb25zdCBTdHJpbmcmIHN5bWJvbGljTGlua1BhdGgpOwog
CiBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE1ldGFkYXRhVVJMKGNvbnN0IFN0cmluZyYgcGF0aCwg
Y29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIgPSB7IH0pOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0ZpbGVTeXN0ZW1HbGli
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvRmlsZVN5c3RlbUdsaWIuY3BwCmlu
ZGV4IGUzYzVkNjNlODQ4MGRhNDgxOTU4MDlkNWEyZjZkMjE1NTk4OWUyYzMuLjc3YjA1NTliMjk3
NDM5ZDA2MjI4ODg4NGI2OWQ5Mjg2Y2JjYjgyMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dsaWIvRmlsZVN5c3RlbUdsaWIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dsaWIvRmlsZVN5c3RlbUdsaWIuY3BwCkBAIC0xMjMsNiArMTIzLDE1IEBAIHN0YXRp
YyBib29sIGdldEZpbGVTdGF0KGNvbnN0IFN0cmluZyYgcGF0aCwgR1N0YXRCdWYqIHN0YXRCdWZm
ZXIpCiAgICAgcmV0dXJuIGdfc3RhdChmaWxlbmFtZS5nZXQoKSwgc3RhdEJ1ZmZlcikgIT0gLTE7
CiB9CiAKK3N0YXRpYyBib29sIGdldEZpbGVMU3RhdChjb25zdCBTdHJpbmcmIHBhdGgsIEdTdGF0
QnVmKiBzdGF0QnVmZmVyKQoreworICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGZpbGVuYW1lID0gdW5l
c2NhcGVkRmlsZW5hbWUocGF0aCk7CisgICAgaWYgKCFmaWxlbmFtZSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgcmV0dXJuIGdfbHN0YXQoZmlsZW5hbWUuZ2V0KCksIHN0YXRCdWZmZXIp
ICE9IC0xOworfQorCiBib29sIGdldEZpbGVTaXplKGNvbnN0IFN0cmluZyYgcGF0aCwgbG9uZyBs
b25nJiByZXN1bHRTaXplKQogewogICAgIEdTdGF0QnVmIHN0YXRSZXN1bHQ7CkBAIC0xNTUsMTEg
KzE2NCwxNyBAQCBib29sIGdldEZpbGVNb2RpZmljYXRpb25UaW1lKGNvbnN0IFN0cmluZyYgcGF0
aCwgdGltZV90JiBtb2RpZmllZFRpbWUpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgZ2V0
RmlsZU1ldGFkYXRhKGNvbnN0IFN0cmluZyYgcGF0aCwgRmlsZU1ldGFkYXRhJiBtZXRhZGF0YSkK
K2Jvb2wgZ2V0RmlsZU1ldGFkYXRhKGNvbnN0IFN0cmluZyYgcGF0aCwgRmlsZU1ldGFkYXRhJiBt
ZXRhZGF0YSwgU2hvdWxkRm9sbG93U3ltYm9saWNMaW5rcyBzaG91bGRGb2xsb3dTeW1ib2xpY0xp
bmtzKQogewogICAgIEdTdGF0QnVmIHN0YXRSZXN1bHQ7Ci0gICAgaWYgKCFnZXRGaWxlU3RhdChw
YXRoLCAmc3RhdFJlc3VsdCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmIChzaG91
bGRGb2xsb3dTeW1ib2xpY0xpbmtzID09IFNob3VsZEZvbGxvd1N5bWJvbGljTGlua3M6Olllcykg
eworICAgICAgICBpZiAoIWdldEZpbGVTdGF0KHBhdGgsICZzdGF0UmVzdWx0KSkKKyAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAoIWdldEZpbGVMU3Rh
dChwYXRoLCAmc3RhdFJlc3VsdCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQog
CiAgICAgU3RyaW5nIGZpbGVuYW1lID0gcGF0aEdldEZpbGVOYW1lKHBhdGgpOwogICAgIG1ldGFk
YXRhLmlzSGlkZGVuID0gIWZpbGVuYW1lLmlzRW1wdHkoKSAmJiBmaWxlbmFtZVswXSA9PSAnLic7
CkBAIC0yMDMsNiArMjE4LDE5IEBAIFN0cmluZyBob21lRGlyZWN0b3J5UGF0aCgpCiAgICAgcmV0
dXJuIHN0cmluZ0Zyb21GaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oZ19nZXRfaG9tZV9kaXIoKSk7
CiB9CiAKK2Jvb2wgY3JlYXRlU3ltYm9saWNMaW5rKGNvbnN0IFN0cmluZyYgdGFyZ2V0UGF0aCwg
Y29uc3QgU3RyaW5nJiBzeW1ib2xpY0xpbmtQYXRoKQoreworICAgIENTdHJpbmcgdGFyZ2V0UGF0
aEZTUmVwID0gZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHRhcmdldFBhdGgpOworICAgIGlmICgh
dGFyZ2V0UGF0aEZTUmVwLmRhdGEoKSB8fCB0YXJnZXRQYXRoRlNSZXAuZGF0YSgpWzBdID09ICdc
MCcpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIENTdHJpbmcgc3ltYm9saWNMaW5rUGF0
aEZTUmVwID0gZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHN5bWJvbGljTGlua1BhdGgpOworICAg
IGlmICghc3ltYm9saWNMaW5rUGF0aEZTUmVwLmRhdGEoKSB8fCBzeW1ib2xpY0xpbmtQYXRoRlNS
ZXAuZGF0YSgpWzBdID09ICdcMCcpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVy
biAhc3ltbGluayh0YXJnZXRQYXRoRlNSZXAuZGF0YSgpLCBzeW1ib2xpY0xpbmtQYXRoRlNSZXAu
ZGF0YSgpKTsKK30KKwogU3RyaW5nIHBhdGhHZXRGaWxlTmFtZShjb25zdCBTdHJpbmcmIHBhdGhO
YW1lKQogewogICAgIEdVbmlxdWVQdHI8Z2NoYXI+IHRtcEZpbGVuYW1lID0gdW5lc2NhcGVkRmls
ZW5hbWUocGF0aE5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9CbG9iRGF0YUZpbGVSZWZlcmVuY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9CbG9iRGF0YUZpbGVSZWZlcmVuY2UuY3BwCmluZGV4IDFmOGNlMGI2MzhmZjEyMmE0
NzgyMzI5NGE5ODI0Y2NhMTc3ZjZkN2QuLjZkYzZkNjRhZTg3MTg1ZDBmMWNkMWVhODc3NjgwOGRh
M2M2NTVkN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxv
YkRhdGFGaWxlUmVmZXJlbmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL0Jsb2JEYXRhRmlsZVJlZmVyZW5jZS5jcHAKQEAgLTk2LDcgKzk2LDcgQEAgdm9pZCBCbG9i
RGF0YUZpbGVSZWZlcmVuY2U6OnN0YXJ0VHJhY2tpbmdNb2RpZmljYXRpb25zKCkKIAogICAgIC8v
IEZJWE1FOiBTb21lIHBsYXRmb3JtcyBwcm92aWRlIGJldHRlciB3YXlzIHRvIGxpc3RlbiBmb3Ig
ZmlsZSBzeXN0ZW0gb2JqZWN0IGNoYW5nZXMsIGNvbnNpZGVyIHVzaW5nIHRoZXNlLgogICAgIEZp
bGVNZXRhZGF0YSBtZXRhZGF0YTsKLSAgICBpZiAoIWdldEZpbGVNZXRhZGF0YShtX3BhdGgsIG1l
dGFkYXRhKSkKKyAgICBpZiAoIWdldEZpbGVNZXRhZGF0YShtX3BhdGgsIG1ldGFkYXRhLCBTaG91
bGRGb2xsb3dTeW1ib2xpY0xpbmtzOjpZZXMpKQogICAgICAgICByZXR1cm47CiAKICAgICBtX2V4
cGVjdGVkTW9kaWZpY2F0aW9uVGltZSA9IG1ldGFkYXRhLm1vZGlmaWNhdGlvblRpbWU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9CbG9iRGF0YUZpbGVS
ZWZlcmVuY2VNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9CbG9i
RGF0YUZpbGVSZWZlcmVuY2VNYWMubW0KaW5kZXggMzJlOTU0NTg3YjkxMDNhZjNjMDI3MTNhZGI5
OWYyZmYzOWIzY2Y2Yi4uOGRhY2U3YTdlMDI2YTdiZDI1YjllM2MyODcxOThhZmFiN2MwYjYzNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvQmxvYkRhdGFG
aWxlUmVmZXJlbmNlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
bWFjL0Jsb2JEYXRhRmlsZVJlZmVyZW5jZU1hYy5tbQpAQCAtODAsNyArODAsNyBAQCB2b2lkIEJs
b2JEYXRhRmlsZVJlZmVyZW5jZTo6Z2VuZXJhdGVSZXBsYWNlbWVudEZpbGUoKQogICAgIG1fcmVw
bGFjZW1lbnRTaG91bGRCZUdlbmVyYXRlZCA9IGZhbHNlOwogICAgIGlmICghbV9yZXBsYWNlbWVu
dFBhdGguaXNOdWxsKCkpIHsKICAgICAgICAgRmlsZU1ldGFkYXRhIG1ldGFkYXRhOwotICAgICAg
ICBpZiAoZ2V0RmlsZU1ldGFkYXRhKG1fcmVwbGFjZW1lbnRQYXRoLCBtZXRhZGF0YSkpCisgICAg
ICAgIGlmIChnZXRGaWxlTWV0YWRhdGEobV9yZXBsYWNlbWVudFBhdGgsIG1ldGFkYXRhLCBTaG91
bGRGb2xsb3dTeW1ib2xpY0xpbmtzOjpZZXMpKQogICAgICAgICAgICAgbV9zaXplID0gbWV0YWRh
dGEubGVuZ3RoOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
cG9zaXgvRmlsZVN5c3RlbVBPU0lYLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Bvc2l4
L0ZpbGVTeXN0ZW1QT1NJWC5jcHAKaW5kZXggZWExNzZkZDA0ZWQzZTAwMjA1OGI4ZTYwMjg0NjNl
YTFjMjgwMzU4YS4uZjRhYzFkMDdlNzg5MDVjNDc1NDBkMTFiZDgwNjk4ZDNjMDM5N2Y5MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcG9zaXgvRmlsZVN5c3RlbVBPU0lYLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9wb3NpeC9GaWxlU3lzdGVtUE9TSVguY3Bw
CkBAIC0yMzksNyArMjM5LDcgQEAgYm9vbCBnZXRGaWxlTW9kaWZpY2F0aW9uVGltZShjb25zdCBT
dHJpbmcmIHBhdGgsIHRpbWVfdCYgcmVzdWx0KQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29s
IGdldEZpbGVNZXRhZGF0YShjb25zdCBTdHJpbmcmIHBhdGgsIEZpbGVNZXRhZGF0YSYgbWV0YWRh
dGEpCitib29sIGdldEZpbGVNZXRhZGF0YShjb25zdCBTdHJpbmcmIHBhdGgsIEZpbGVNZXRhZGF0
YSYgbWV0YWRhdGEsIFNob3VsZEZvbGxvd1N5bWJvbGljTGlua3Mgc2hvdWxkRm9sbG93U3ltYm9s
aWNMaW5rcykKIHsKICAgICBDU3RyaW5nIGZzUmVwID0gZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9u
KHBhdGgpOwogCkBAIC0yNDcsOCArMjQ3LDE0IEBAIGJvb2wgZ2V0RmlsZU1ldGFkYXRhKGNvbnN0
IFN0cmluZyYgcGF0aCwgRmlsZU1ldGFkYXRhJiBtZXRhZGF0YSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgc3RydWN0IHN0YXQgZmlsZUluZm87Ci0gICAgaWYgKHN0YXQoZnNSZXAuZGF0
YSgpLCAmZmlsZUluZm8pKQotICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoc2hvdWxk
Rm9sbG93U3ltYm9saWNMaW5rcyA9PSBTaG91bGRGb2xsb3dTeW1ib2xpY0xpbmtzOjpZZXMpIHsK
KyAgICAgICAgaWYgKHN0YXQoZnNSZXAuZGF0YSgpLCAmZmlsZUluZm8pKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChsc3RhdChmc1JlcC5kYXRh
KCksICZmaWxlSW5mbykpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQogCiAgICAg
U3RyaW5nIGZpbGVuYW1lID0gcGF0aEdldEZpbGVOYW1lKHBhdGgpOwogCkBAIC0yNjQsNiArMjcw
LDE5IEBAIGJvb2wgZ2V0RmlsZU1ldGFkYXRhKGNvbnN0IFN0cmluZyYgcGF0aCwgRmlsZU1ldGFk
YXRhJiBtZXRhZGF0YSkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBjcmVhdGVTeW1ib2xp
Y0xpbmsoY29uc3QgU3RyaW5nJiB0YXJnZXRQYXRoLCBjb25zdCBTdHJpbmcmIHN5bWJvbGljTGlu
a1BhdGgpCit7CisgICAgQ1N0cmluZyB0YXJnZXRQYXRoRlNSZXAgPSBmaWxlU3lzdGVtUmVwcmVz
ZW50YXRpb24odGFyZ2V0UGF0aCk7CisgICAgaWYgKCF0YXJnZXRQYXRoRlNSZXAuZGF0YSgpIHx8
IHRhcmdldFBhdGhGU1JlcC5kYXRhKClbMF0gPT0gJ1wwJykKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgQ1N0cmluZyBzeW1ib2xpY0xpbmtQYXRoRlNSZXAgPSBmaWxlU3lzdGVtUmVwcmVz
ZW50YXRpb24oc3ltYm9saWNMaW5rUGF0aCk7CisgICAgaWYgKCFzeW1ib2xpY0xpbmtQYXRoRlNS
ZXAuZGF0YSgpIHx8IHN5bWJvbGljTGlua1BhdGhGU1JlcC5kYXRhKClbMF0gPT0gJ1wwJykKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuICFzeW1saW5rKHRhcmdldFBhdGhGU1Jl
cC5kYXRhKCksIHN5bWJvbGljTGlua1BhdGhGU1JlcC5kYXRhKCkpOworfQorCiBTdHJpbmcgcGF0
aEJ5QXBwZW5kaW5nQ29tcG9uZW50KGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU3RyaW5nJiBj
b21wb25lbnQpCiB7CiAgICAgaWYgKHBhdGguZW5kc1dpdGgoJy8nKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9GaWxlU3lzdGVtV2luLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3dpbi9GaWxlU3lzdGVtV2luLmNwcAppbmRleCA4NzgyZDcwMGRlYjY2ODUx
MWQ3MzVkMzBjMjg4NjBhMDY1ZmNkMDVmLi4zNWNkNmNhYTI0OTA2YzFhMTFjMGNkOGJlMzcwYTll
M2VkNWU3OTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vRmlsZVN5
c3RlbVdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0ZpbGVTeXN0ZW1X
aW4uY3BwCkBAIC0xNDEsMTIgKzE0MSwzOSBAQCBib29sIGdldEZpbGVDcmVhdGlvblRpbWUoY29u
c3QgU3RyaW5nJiBwYXRoLCB0aW1lX3QmIHRpbWUpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJv
b2wgZ2V0RmlsZU1ldGFkYXRhKGNvbnN0IFN0cmluZyYgcGF0aCwgRmlsZU1ldGFkYXRhJiBtZXRh
ZGF0YSkKK3N0YXRpYyBTdHJpbmcgZ2V0RmluYWxQYXRoTmFtZShjb25zdCBTdHJpbmcmIHBhdGgp
Cit7CisgICAgYXV0byBoYW5kbGUgPSBvcGVuRmlsZShwYXRoLCBPcGVuRm9yUmVhZCk7CisgICAg
aWYgKCFpc0hhbmRsZVZhbGlkKGhhbmRsZSkpCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKwor
ICAgIFN0cmluZ1ZlY3RvcjxVQ2hhcj4gYnVmZmVyKE1BWF9QQVRIKTsKKyAgICBpZiAoOjpHZXRG
aW5hbFBhdGhOYW1lQnlIYW5kbGVXKGhhbmRsZSwgYnVmZmVyLmRhdGEoKSwgYnVmZmVyLnNpemUo
KSwgVk9MVU1FX05BTUVfTlQpID49IE1BWF9QQVRIKSB7CisgICAgICAgIGNsb3NlRmlsZShoYW5k
bGUpOworICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisgICAgfQorICAgIGNsb3NlRmlsZShoYW5k
bGUpOworCisgICAgYnVmZmVyLnNocmluayh3Y3NsZW4oYnVmZmVyLmRhdGEoKSkpOworICAgIHJl
dHVybiBTdHJpbmc6OmFkb3B0KFdURk1vdmUoYnVmZmVyKSk7Cit9CisKK2Jvb2wgZ2V0RmlsZU1l
dGFkYXRhKGNvbnN0IFN0cmluZyYgcGF0aCwgRmlsZU1ldGFkYXRhJiBtZXRhZGF0YSwgU2hvdWxk
Rm9sbG93U3ltYm9saWNMaW5rcyBzaG91bGRGb2xsb3dTeW1ib2xpY0xpbmtzKQogewogICAgIFdJ
TjMyX0ZJTkRfREFUQVcgZmluZERhdGE7CiAgICAgaWYgKCFnZXRGaW5kRGF0YShwYXRoLCBmaW5k
RGF0YSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIGJvb2wgaXNTeW1ib2xpY0xpbmsg
PSBmaW5kRGF0YS5kd0ZpbGVBdHRyaWJ1dGVzICYgRklMRV9BVFRSSUJVVEVfUkVQQVJTRV9QT0lO
VCAmJiBmaW5kRGF0YS5kd1Jlc2VydmVkMCA9PSBJT19SRVBBUlNFX1RBR19TWU1MSU5LOworICAg
IGlmIChpc1N5bWJvbGljTGluayAmJiBzaG91bGRGb2xsb3dTeW1ib2xpY0xpbmtzID09IFNob3Vs
ZEZvbGxvd1N5bWJvbGljTGlua3M6OlllcykgeworICAgICAgICBTdHJpbmcgdGFyZ2V0UGF0aCA9
IGdldEZpbmFsUGF0aE5hbWUocGF0aCk7CisgICAgICAgIGlmICh0YXJnZXRQYXRoLmlzTnVsbCgp
KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoIWdldEZpbmREYXRhKHRh
cmdldFBhdGgsIGZpbmREYXRhKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAg
aXNTeW1ib2xpY0xpbmsgPSBmYWxzZTsKKyAgICB9CisKICAgICBpZiAoIWdldEZpbGVTaXplRnJv
bUZpbmREYXRhKGZpbmREYXRhLCBtZXRhZGF0YS5sZW5ndGgpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKQEAgLTE1NCwxMSArMTgxLDIxIEBAIGJvb2wgZ2V0RmlsZU1ldGFkYXRhKGNvbnN0IFN0
cmluZyYgcGF0aCwgRmlsZU1ldGFkYXRhJiBtZXRhZGF0YSkKICAgICBnZXRGaWxlTW9kaWZpY2F0
aW9uVGltZUZyb21GaW5kRGF0YShmaW5kRGF0YSwgbW9kaWZpY2F0aW9uVGltZSk7CiAgICAgbWV0
YWRhdGEubW9kaWZpY2F0aW9uVGltZSA9IG1vZGlmaWNhdGlvblRpbWU7CiAgICAgbWV0YWRhdGEu
aXNIaWRkZW4gPSBmaW5kRGF0YS5kd0ZpbGVBdHRyaWJ1dGVzICYgRklMRV9BVFRSSUJVVEVfSElE
REVOOwotICAgIG1ldGFkYXRhLnR5cGUgPSAoZmluZERhdGEuZHdGaWxlQXR0cmlidXRlcyAmIEZJ
TEVfQVRUUklCVVRFX0RJUkVDVE9SWSkgPyBGaWxlTWV0YWRhdGE6OlR5cGVEaXJlY3RvcnkgOiBG
aWxlTWV0YWRhdGE6OlR5cGVGaWxlOworICAgIGlmIChmaW5kRGF0YS5kd0ZpbGVBdHRyaWJ1dGVz
ICYgRklMRV9BVFRSSUJVVEVfRElSRUNUT1JZKQorICAgICAgICBtZXRhZGF0YS50eXBlID0gRmls
ZU1ldGFkYXRhOjpUeXBlRGlyZWN0b3J5OworICAgIGVsc2UgaWYgKGlzU3ltYm9saWNMaW5rKQor
ICAgICAgICBtZXRhZGF0YS50eXBlID0gRmlsZU1ldGFkYXRhOjpUeXBlU3ltYm9saWNMaW5rOwor
ICAgIGVsc2UKKyAgICAgICAgbWV0YWRhdGEudHlwZSA9IEZpbGVNZXRhZGF0YTo6VHlwZUZpbGU7
CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBjcmVhdGVTeW1ib2xpY0xpbmsoY29uc3Qg
U3RyaW5nJiB0YXJnZXRQYXRoLCBjb25zdCBTdHJpbmcmIHN5bWJvbGljTGlua1BhdGgpCit7Cisg
ICAgcmV0dXJuICE6OkNyZWF0ZVN5bWJvbGljTGlua1coc3ltYm9saWNMaW5rUGF0aC5jaGFyYWN0
ZXJzV2l0aE51bGxUZXJtaW5hdGlvbigpLmRhdGEoKSwgdGFyZ2V0UGF0aC5jaGFyYWN0ZXJzV2l0
aE51bGxUZXJtaW5hdGlvbigpLmRhdGEoKSwgMCk7Cit9CisKIGJvb2wgZmlsZUV4aXN0cyhjb25z
dCBTdHJpbmcmIHBhdGgpCiB7CiAgICAgV0lOMzJfRklORF9EQVRBVyBmaW5kRGF0YTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBkM2UwMGM4Yjll
YjcxZmRhMzYxYzdhNGNiMzUzMDNkZDQxNjgxODExLi42YmZkZWE5OWY4ZDk1NGNiNDAyNjFlZmRk
Zjk0OTg1MGRiMjhlMDI2IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTctMDgtMzEgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBnZXRGaWxlTWV0YWRhdGEoKSBkb2VzIG5vdCB3b3Jr
IGFzIGV4cGVjdGVkIGZvciBzeW1ib2xpYyBsaW5rcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2MTQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW5k
cmVhcyBLbGluZy4KKworICAgICAgICBBZGQgQVBJIHRlc3QgY292ZXJhZ2UuCisKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRmlsZVN5c3RlbS5jcHA6CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorCiAyMDE3LTA4LTMxICBGaWxpcCBQaXpsbyAgPGZwaXps
b0BhcHBsZS5jb20+CiAKICAgICAgICAgV1NMIHBhcnNlciBzaG91bGQgcGFzcyB0aGUgdG9rZW4g
YXMgdGhlIG9yaWdpbiB0byB0aGUgQVNUCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvRmlsZVN5c3RlbS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvRmlsZVN5c3RlbS5jcHAKaW5kZXggOGE0YTc4YzY1M2E3YmMzOWQzMmRlOTJhYTY1
YzQ5MGY0MzY4OTFmNC4uOWFhNzZmYzRhMzAwZDNlOGQxZjVhOWE0NTliNDM5NDk1MGVlNmU0ZSAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0ZpbGVTeXN0ZW0u
Y3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9GaWxlU3lzdGVtLmNw
cApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaW5jbHVkZSAiVGVz
dC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRmlsZU1ldGFkYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9GaWxlU3lzdGVtLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3
dGYvU3RyaW5nRXh0cmFzLmg+CkBAIC00OCw3ICs0OSwxMCBAQCBwdWJsaWM6CiAgICAgICAgIFBs
YXRmb3JtRmlsZUhhbmRsZSBoYW5kbGU7CiAgICAgICAgIG1fdGVtcEZpbGVQYXRoID0gb3BlblRl
bXBvcmFyeUZpbGUoInRlbXBUZXN0RmlsZSIsIGhhbmRsZSk7CiAgICAgICAgIHdyaXRlVG9GaWxl
KGhhbmRsZSwgRmlsZVN5c3RlbVRlc3REYXRhLCBzdHJsZW4oRmlsZVN5c3RlbVRlc3REYXRhKSk7
Ci0gICAgICAgIGNsb3NlRmlsZShoYW5kbGUpOyAKKyAgICAgICAgY2xvc2VGaWxlKGhhbmRsZSk7
CisKKyAgICAgICAgbV90ZW1wRmlsZVN5bWxpbmtQYXRoID0gbV90ZW1wRmlsZVBhdGggKyAiLXN5
bWxpbmsiOworICAgICAgICBjcmVhdGVTeW1ib2xpY0xpbmsobV90ZW1wRmlsZVBhdGgsIG1fdGVt
cEZpbGVTeW1saW5rUGF0aCk7CiAKICAgICAgICAgbV90ZW1wRW1wdHlGaWxlUGF0aCA9IG9wZW5U
ZW1wb3JhcnlGaWxlKCJ0ZW1wRW1wdHlUZXN0RmlsZSIsIGhhbmRsZSk7CiAgICAgICAgIGNsb3Nl
RmlsZShoYW5kbGUpOwpAQCAtNjYsNiArNzAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBUZWFyRG93
bigpIG92ZXJyaWRlCiAgICAgewogICAgICAgICBkZWxldGVGaWxlKG1fdGVtcEZpbGVQYXRoKTsK
KyAgICAgICAgZGVsZXRlRmlsZShtX3RlbXBGaWxlU3ltbGlua1BhdGgpOwogICAgICAgICBkZWxl
dGVGaWxlKG1fdGVtcEVtcHR5RmlsZVBhdGgpOwogICAgICAgICBkZWxldGVGaWxlKG1fc3BhY2VD
b250YWluaW5nRmlsZVBhdGgpOwogICAgICAgICBkZWxldGVGaWxlKG1fYmFuZ0NvbnRhaW5pbmdG
aWxlUGF0aCk7CkBAIC03Myw2ICs3OCw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBjb25zdCBT
dHJpbmcmIHRlbXBGaWxlUGF0aCgpIHsgcmV0dXJuIG1fdGVtcEZpbGVQYXRoOyB9CisgICAgY29u
c3QgU3RyaW5nJiB0ZW1wRmlsZVN5bWxpbmtQYXRoKCkgeyByZXR1cm4gbV90ZW1wRmlsZVN5bWxp
bmtQYXRoOyB9CiAgICAgY29uc3QgU3RyaW5nJiB0ZW1wRW1wdHlGaWxlUGF0aCgpIHsgcmV0dXJu
IG1fdGVtcEVtcHR5RmlsZVBhdGg7IH0KICAgICBjb25zdCBTdHJpbmcmIHNwYWNlQ29udGFpbmlu
Z0ZpbGVQYXRoKCkgeyByZXR1cm4gbV9zcGFjZUNvbnRhaW5pbmdGaWxlUGF0aDsgfQogICAgIGNv
bnN0IFN0cmluZyYgYmFuZ0NvbnRhaW5pbmdGaWxlUGF0aCgpIHsgcmV0dXJuIG1fYmFuZ0NvbnRh
aW5pbmdGaWxlUGF0aDsgfQpAQCAtODAsNiArODYsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAg
ICAgU3RyaW5nIG1fdGVtcEZpbGVQYXRoOworICAgIFN0cmluZyBtX3RlbXBGaWxlU3ltbGlua1Bh
dGg7CiAgICAgU3RyaW5nIG1fdGVtcEVtcHR5RmlsZVBhdGg7CiAgICAgU3RyaW5nIG1fc3BhY2VD
b250YWluaW5nRmlsZVBhdGg7CiAgICAgU3RyaW5nIG1fYmFuZ0NvbnRhaW5pbmdGaWxlUGF0aDsK
QEAgLTExOSw0ICsxMjYsMTcgQEAgVEVTVF9GKEZpbGVTeXN0ZW1UZXN0LCBGaWxlc0hhdmVTYW1l
Vm9sdW1lKQogICAgIEVYUEVDVF9UUlVFKGZpbGVzSGF2ZVNhbWVWb2x1bWUoYmFuZ0NvbnRhaW5p
bmdGaWxlUGF0aCgpLCBxdW90ZUNvbnRhaW5pbmdGaWxlUGF0aCgpKSk7CiB9CiAKK1RFU1RfRihG
aWxlU3lzdGVtVGVzdCwgR2V0RmlsZU1ldGFkYXRhU3ltbGluaykKK3sKKyAgICBGaWxlTWV0YWRh
dGEgc3ltbGlua01ldGFkYXRhOworICAgIEVYUEVDVF9UUlVFKGdldEZpbGVNZXRhZGF0YSh0ZW1w
RmlsZVN5bWxpbmtQYXRoKCksIHN5bWxpbmtNZXRhZGF0YSwgU2hvdWxkRm9sbG93U3ltYm9saWNM
aW5rczo6Tm8pKTsKKyAgICBFWFBFQ1RfVFJVRShzeW1saW5rTWV0YWRhdGEudHlwZSA9PSBGaWxl
TWV0YWRhdGE6OlR5cGVTeW1ib2xpY0xpbmspOworICAgIEVYUEVDVF9GQUxTRShzdGF0aWNfY2Fz
dDxzaXplX3Q+KHN5bWxpbmtNZXRhZGF0YS5sZW5ndGgpID09IHN0cmxlbihGaWxlU3lzdGVtVGVz
dERhdGEpKTsKKworICAgIEZpbGVNZXRhZGF0YSB0YXJnZXRNZXRhZGF0YTsKKyAgICBFWFBFQ1Rf
VFJVRShnZXRGaWxlTWV0YWRhdGEodGVtcEZpbGVTeW1saW5rUGF0aCgpLCB0YXJnZXRNZXRhZGF0
YSwgU2hvdWxkRm9sbG93U3ltYm9saWNMaW5rczo6WWVzKSk7CisgICAgRVhQRUNUX1RSVUUodGFy
Z2V0TWV0YWRhdGEudHlwZSA9PSBGaWxlTWV0YWRhdGE6OlR5cGVGaWxlKTsKKyAgICBFWFBFQ1Rf
RVEoc3RybGVuKEZpbGVTeXN0ZW1UZXN0RGF0YSksIHN0YXRpY19jYXN0PHNpemVfdD4odGFyZ2V0
TWV0YWRhdGEubGVuZ3RoKSk7Cit9CisKIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>