<?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>205224</bug_id>
          
          <creation_ts>2019-12-13 16:07:20 -0800</creation_ts>
          <short_desc>Provide alternate way to name Web Content process</short_desc>
          <delta_ts>2020-02-24 11:18:17 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ellie Epskamp-Hunt">eepskamphunt</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>achristensen</cc>
    
    <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1598541</commentid>
    <comment_count>0</comment_count>
    <who name="Ellie Epskamp-Hunt">eepskamphunt</who>
    <bug_when>2019-12-13 16:07:20 -0800</bug_when>
    <thetext>Provide alternate way to name Web Content process</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1598542</commentid>
    <comment_count>1</comment_count>
    <who name="Ellie Epskamp-Hunt">eepskamphunt</who>
    <bug_when>2019-12-13 16:08:20 -0800</bug_when>
    <thetext>rdar://57038084</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599600</commentid>
    <comment_count>2</comment_count>
      <attachid>385926</attachid>
    <who name="Ellie Epskamp-Hunt">eepskamphunt</who>
    <bug_when>2019-12-17 16:02:54 -0800</bug_when>
    <thetext>Created attachment 385926
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617180</commentid>
    <comment_count>3</comment_count>
      <attachid>390313</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-02-10 16:38:17 -0800</bug_when>
    <thetext>Created attachment 390313
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617210</commentid>
    <comment_count>4</comment_count>
      <attachid>390313</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2020-02-10 17:06:45 -0800</bug_when>
    <thetext>Comment on attachment 390313
Patch

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

&gt; Source/WebKit/Shared/WebPageCreationParameters.cpp:141
&gt; +    encoder &lt;&lt; processDisplayName;

Do we consider it OK for a malicious UI process to affect WebContent in this way? I can&apos;t think of a specific problem, just pointing out that generally neither side considers the other to be trusted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617213</commentid>
    <comment_count>5</comment_count>
      <attachid>390321</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-02-10 17:11:50 -0800</bug_when>
    <thetext>Created attachment 390321
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617234</commentid>
    <comment_count>6</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-02-10 17:48:09 -0800</bug_when>
    <thetext>(In reply to Alexey Proskuryakov from comment #4)
&gt; Do we consider it OK for a malicious UI process to affect WebContent in this way?
Yes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1617235</commentid>
    <comment_count>7</comment_count>
      <attachid>390327</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-02-10 17:48:43 -0800</bug_when>
    <thetext>Created attachment 390327
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1622225</commentid>
    <comment_count>8</comment_count>
      <attachid>391554</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-02-24 10:29:21 -0800</bug_when>
    <thetext>Created attachment 391554
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1622251</commentid>
    <comment_count>9</comment_count>
      <attachid>391554</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-24 11:17:21 -0800</bug_when>
    <thetext>Comment on attachment 391554
Patch

Clearing flags on attachment: 391554

Committed r257225: &lt;https://trac.webkit.org/changeset/257225&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1622252</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-24 11:17:23 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1622253</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-02-24 11:18:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/59732393&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385926</attachid>
            <date>2019-12-17 16:02:54 -0800</date>
            <delta_ts>2020-02-10 16:38:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205224-20191217160253.patch</filename>
            <type>text/plain</type>
            <size>26403</size>
            <attacher name="Ellie Epskamp-Hunt">eepskamphunt</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzMjk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQ0OWRiNjk3MTg5NTM2ODFh
YzczMTkxZDA2MDgzYzE4NzY5MmE5ZGEuLmQ3MmEzNDAxODI2MTgzNzhlMzEwYzJjNDUwODBmYWY5
OTEwODkyYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTIgQEAKKzIwMTktMTItMTcgIEVsbGllIEVw
c2thbXAtSHVudCAgPGVlcHNrYW1waHVudEBhcHBsZS5jb20+CisKKyAgICAgICAgUHJvdmlkZSBh
bHRlcm5hdGUgd2F5IHRvIG5hbWUgV2ViIENvbnRlbnQgcHJvY2VzcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1MjI0CisgICAgICAgIHJkYXI6Ly81
NzAzODA4NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRlc3Q6IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRGlzcGxheU5hbWUubW0KKwor
ICAgICAgICBBZGQgdGhlIGFiaWxpdHkgdG8gc2V0IF9sc0Rpc3BsYXlOYW1lIG9uIFdLV2ViVmll
d0NvbmZpZ3VyYXRpb24gdG8gYWxsb3cgdGhlIG5hbWUgb2YgdGhlIHdlYgorICAgICAgICBjb250
ZW50IHByb2Nlc3MgdGhhdCBhcHBlYXJzIGluIEFjdGl2aXR5IE1vbml0b3IgdG8gYmUgc2V0IHRv
IGEgY3VzdG9tIHN0cmluZy4KKworICAgICAgICAqIFNoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6
ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVy
czo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uY3BwOgorICAg
ICAgICAoQVBJOjpQYWdlQ29uZmlndXJhdGlvbjo6Y29weSBjb25zdCk6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAoQVBJOjpQYWdlQ29u
ZmlndXJhdGlvbjo6bHNEaXNwbGF5TmFtZSBjb25zdCk6CisgICAgICAgIChBUEk6OlBhZ2VDb25m
aWd1cmF0aW9uOjpzZXRsc0Rpc3BsYXlOYW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9nZXREaXNwbGF5TmFtZVdp
dGhDb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlld0NvbmZpZ3VyYXRpb24ubW06CisgICAgICAgICgtW1dLV2ViVmlld0NvbmZpZ3VyYXRp
b24gX2xzRGlzcGxheU5hbWVdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBf
c2V0bHNEaXNwbGF5TmFtZTpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXdQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y3JlYXRpb25QYXJhbWV0ZXJzKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpnZXREaXNwbGF5TmFtZSk6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9Db2NvYS9XZWJQYWdlQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmdldERp
c3BsYXlOYW1lKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6Om1fbHNEaXNwbGF5TmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OmNsb3NlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkQ29tbWl0TG9hZCk6Cisg
ICAgICAgIChXZWJLaXQ6Om1fb3ZlcnJpZGRlbk1lZGlhVHlwZSk6IERlbGV0ZWQuCisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjp1cGRhdGVBY3RpdmVQYWdlcyk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvV2Vi
UHJvY2Vzc0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjp1cGRhdGVBY3Rp
dmVQYWdlcyk6CisKIDIwMTktMTItMDkgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29t
PgogCiAgICAgICAgIE5ldHdvcmtSZXNvdXJjZUxvYWRlciBzaG91bGQgY29uc3VtZSBpdHMgc2Fu
ZGJveCBleHRlbnNpb25zIHdoZW4gc3RhcnRpbmcgYSBmZXRjaCB0aHJvdWdoIHNlcnZpY2Ugd29y
a2VyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRl
cnMuY3BwCmluZGV4IDdiNzJhZjNmY2JlNDg4MGM5NjBhODVlOWI0YTViMThjMzUxOWUzMzMuLjQ2
NDEzYWI2N2FlZGUzN2Y4ODYyYjRjZTJlN2VkMjNlNTQ0YjJiNTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC0xMzAsNiAr
MTMwLDcgQEAgdm9pZCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNv
ZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgYmFja2dyb3VuZENvbG9yOwogICAg
IGVuY29kZXIgPDwgb2xkUGFnZUlEOwogICAgIGVuY29kZXIgPDwgb3ZlcnJpZGRlbk1lZGlhVHlw
ZTsKKyAgICBlbmNvZGVyIDw8IGxzRGlzcGxheU5hbWU7CiB9CiAKIE9wdGlvbmFsPFdlYlBhZ2VD
cmVhdGlvblBhcmFtZXRlcnM+IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6
OkRlY29kZXImIGRlY29kZXIpCkBAIC0zOTcsNiArMzk4LDkgQEAgT3B0aW9uYWw8V2ViUGFnZUNy
ZWF0aW9uUGFyYW1ldGVycz4gV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6
RGVjb2QKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMub3ZlcnJpZGRlbk1lZGlh
VHlwZSkpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKKyAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHBhcmFtZXRlcnMubHNEaXNwbGF5TmFtZSkpCisgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CisKICAgICByZXR1cm4gcGFyYW1ldGVyczsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IDU5OTcyZWY3NTc2MjYy
OGYzY2NmODI1OTAxMjJlYmY1ZTg2YmYxNjQuLmViYmY5YjExY2Y3ZTZjMTBkOWJjMTg2MmQzN2I3
N2Y5ODA3OWZhM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzLmgKQEAgLTIwMiw2ICsyMDIsOCBAQCBzdHJ1Y3QgV2ViUGFnZUNyZWF0aW9u
UGFyYW1ldGVycyB7CiAgICAgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9sZFBh
Z2VJRDsKIAogICAgIFN0cmluZyBvdmVycmlkZGVuTWVkaWFUeXBlOworCisgICAgU3RyaW5nIGxz
RGlzcGxheU5hbWU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uY3BwCmluZGV4IGIz
NDgzN2FlMmY4MmJmNDMyNWI1YmYzZGJjOGZiZTMxNjhhMjE4ODYuLmMxMmE3NjkzMTVmZjZmOTgy
ZTY5MzcxZjRhZDBlNmI1ZjA1ZWU1NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmNwcApAQCAtODYsNiArODYsOCBAQCBSZWY8
UGFnZUNvbmZpZ3VyYXRpb24+IFBhZ2VDb25maWd1cmF0aW9uOjpjb3B5KCkgY29uc3QKICAgICBm
b3IgKGF1dG8mIHBhaXIgOiB0aGlzLT5tX3VybFNjaGVtZUhhbmRsZXJzKQogICAgICAgICBjb3B5
LT5tX3VybFNjaGVtZUhhbmRsZXJzLnNldChwYWlyLmtleSwgcGFpci52YWx1ZS5jb3B5UmVmKCkp
OwogCisgICAgY29weS0+bV9sc0Rpc3BsYXlOYW1lID0gdGhpcy0+bV9sc0Rpc3BsYXlOYW1lOwor
CiAgICAgcmV0dXJuIGNvcHk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmgKaW5kZXggYjFhMTRiYmQ2Y2NmMDY3YzE3OTg5ZmY0
NmNmZjM4Y2I3ZDhkNzI3MS4uMzUyMWFhNjc2YTdlNTUyNWM4ZDVkNWM4MzA3M2ZkMmJkMjRiMDNj
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1
cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1
cmF0aW9uLmgKQEAgLTEzNCw2ICsxMzQsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRVUkxTY2hl
bWVIYW5kbGVyRm9yVVJMU2NoZW1lKFJlZjxXZWJLaXQ6OldlYlVSTFNjaGVtZUhhbmRsZXI+JiYs
IGNvbnN0IFdURjo6U3RyaW5nJik7CiAgICAgY29uc3QgSGFzaE1hcDxXVEY6OlN0cmluZywgUmVm
PFdlYktpdDo6V2ViVVJMU2NoZW1lSGFuZGxlcj4+JiB1cmxTY2hlbWVIYW5kbGVycygpIHsgcmV0
dXJuIG1fdXJsU2NoZW1lSGFuZGxlcnM7IH0KIAorICAgIGNvbnN0IFdURjo6U3RyaW5nJiBsc0Rp
c3BsYXlOYW1lKCkgY29uc3QgeyByZXR1cm4gbV9sc0Rpc3BsYXlOYW1lOyB9CisgICAgdm9pZCBz
ZXRsc0Rpc3BsYXlOYW1lKGNvbnN0IFdURjo6U3RyaW5nJiBsc0Rpc3BsYXlOYW1lKSB7IG1fbHNE
aXNwbGF5TmFtZSA9IGxzRGlzcGxheU5hbWU7IH0KKwogcHJpdmF0ZToKIAogICAgIFJlZlB0cjxX
ZWJLaXQ6OldlYlByb2Nlc3NQb29sPiBtX3Byb2Nlc3NQb29sOwpAQCAtMTcwLDYgKzE3Myw4IEBA
IHByaXZhdGU6CiAjZW5kaWYKIAogICAgIEhhc2hNYXA8V1RGOjpTdHJpbmcsIFJlZjxXZWJLaXQ6
OldlYlVSTFNjaGVtZUhhbmRsZXI+PiBtX3VybFNjaGVtZUhhbmRsZXJzOworCisgICAgV1RGOjpT
dHJpbmcgbV9sc0Rpc3BsYXlOYW1lOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgQVBJCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCAzNTA5Nzk5
ZGNlZTBhOTM4MGYzMGQyZWZlYTVjMjM3MTgyMTgxNWY1Li5mMjg3Mjc5NWU2MmFlNjg3YTI3OTQ4
NzA2MzYzOTYwOWVhNjIzYjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW0KQEAgLTUyMzIsNiArNTIzMiwxMyBAQCBGT1JfRUFDSF9QUklWQVRF
X1dLQ09OVEVOVFZJRVdfQUNUSU9OKEZPUldBUkRfQUNUSU9OX1RPX1dLQ09OVEVOVFZJRVcpCiAg
ICAgW3NlbGYgY3JlYXRlUERGV2l0aENvbmZpZ3VyYXRpb246cGRmQ29uZmlndXJhdGlvbiBjb21w
bGV0aW9uSGFuZGxlcjpjb21wbGV0aW9uSGFuZGxlcl07CiB9CiAKKy0gKHZvaWQpX2dldERpc3Bs
YXlOYW1lV2l0aENvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU1N0cmluZyAqKSljb21wbGV0
aW9uSGFuZGxlcgoreworICAgIF9wYWdlLT5nZXREaXNwbGF5TmFtZShbaGFuZGxlciA9IG1ha2VC
bG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcildKGF1dG8mJiBuYW1lKSB7CisgICAgICAgIGhhbmRs
ZXIobmFtZSk7CisgICAgfSk7Cit9CisKICNpZiBQTEFURk9STShNQUMpCiAtICh2b2lkKV9zZXRT
aG91bGRTdXBwcmVzc0ZpcnN0UmVzcG9uZGVyQ2hhbmdlczooQk9PTClzaG91bGRTdXBwcmVzcwog
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
d0NvbmZpZ3VyYXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Q29uZmlndXJhdGlvbi5tbQppbmRleCAxZGU1NjIyMjJiYmU3MjdiMTc4ZmM4MDBmMzZi
MDg4OGZlMDk4MTNlLi45M2Y4MDE0OTI5YWM1YzQ3NTI4NzI4MDQxNzMzZDFmODQ3ZjczYzIyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29u
ZmlndXJhdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Q29uZmlndXJhdGlvbi5tbQpAQCAtMTEyOCw2ICsxMTI4LDE2IEBAIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0VORAogICAgIHJldHVybiBfdW5kb01hbmFnZXJBUElFbmFibGVk
OwogfQogCistIChOU1N0cmluZyAqKV9sc0Rpc3BsYXlOYW1lCit7CisgICAgcmV0dXJuIF9wYWdl
Q29uZmlndXJhdGlvbi0+bHNEaXNwbGF5TmFtZSgpOworfQorCistICh2b2lkKV9zZXRsc0Rpc3Bs
YXlOYW1lOihOU1N0cmluZyAqKWxzRGlzcGxheU5hbWUKK3sKKyAgICBfcGFnZUNvbmZpZ3VyYXRp
b24tPnNldGxzRGlzcGxheU5hbWUobHNEaXNwbGF5TmFtZSk7Cit9CisKIEBlbmQKIAogQGltcGxl
bWVudGF0aW9uIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKFdLRGVwcmVjYXRlZCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0
aW9uUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
d0NvbmZpZ3VyYXRpb25Qcml2YXRlLmgKaW5kZXggYWEwZDI0ZDMxMDE3N2UwZTVmMGJmZWVlZTMy
MjZjZWJlN2FiMGNiOS4uYjUyODlhOGQ1YzJjOTA5MDA5MGVlOTU2NWFlODgwZGY2M2E5MzQ2ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0Nv
bmZpZ3VyYXRpb25Qcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmgKQEAgLTExMyw0ICsxMTMsNiBAQCB0
eXBlZGVmIE5TX0VOVU0oTlNVSW50ZWdlciwgX1dLRHJhZ0xpZnREZWxheSkgewogQHByb3BlcnR5
IChub25hdG9taWMsIHNldHRlcj1fc2V0RWRpdGFibGVJbWFnZXNFbmFibGVkOikgQk9PTCBfZWRp
dGFibGVJbWFnZXNFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygx
Mi4yKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRVbmRvTWFuYWdlckFQSUVu
YWJsZWQ6KSBCT09MIF91bmRvTWFuYWdlckFQSUVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMC4xNSksIGlvcygxMy4wKSk7CiAKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3Nl
dGxzRGlzcGxheU5hbWU6KSBOU1N0cmluZyAqX2xzRGlzcGxheU5hbWUgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMC4xMi4zKSwgaW9zKDEwLjMpKTsKKwogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKaW5kZXggNzg0YjZi
MWUyMTBiYWMzN2Y5ZTBjYWFlNWU2MzIzNDk0NWM0OTE3ZC4uZDM1MDdmNzYxMjY2NDEzNWNkYTE4
N2E3NmQ2MjUxMzQ3MWM5Nzc4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCkBAIC00MzcsNiArNDM3LDggQEAgdHlwZWRl
ZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS1JlY3RFZGdlKSB7CiAtICh2b2lkKV9mb2N1c1Rl
eHRJbnB1dENvbnRleHQ6KF9XS1RleHRJbnB1dENvbnRleHQgKil0ZXh0SW5wdXRFbGVtZW50IGNv
bXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKEJPT0wpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTAuMTUpLCBpb3MoMTMuMCkpOwogCiAtICh2b2lkKV90YWtlUERGU25h
cHNob3RXaXRoQ29uZmlndXJhdGlvbjooV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24gKilzbmFwc2hv
dENvbmZpZ3VyYXRpb24gY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TRGF0YSAqcGRmU25h
cHNob3REYXRhLCBOU0Vycm9yICplcnJvcikpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKworLSAodm9pZClfZ2V0
RGlzcGxheU5hbWVXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nICopKWNv
bXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTUpKTsKIEBlbmQKIAog
I2lmIFRBUkdFVF9PU19JUEhPTkUgJiYgIVRBUkdFVF9PU19XQVRDSApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggYzUxNzM2NDMzZjdjMGI2OTFjYjQ2OGQ3OGE4
YWUyM2RjYjVlZDNjNi4uZWI4ODliYzFjOTE0YzA3OTQ3N2ExZTYxNWYxY2ViYTYzNWU3MDgyNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC03NDE0LDYgKzc0
MTQsOCBAQCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzIFdlYlBhZ2VQcm94eTo6Y3JlYXRpb25Q
YXJhbWV0ZXJzKFdlYlByb2Nlc3NQcm94eSYgcHJvYwogewogICAgIFdlYlBhZ2VDcmVhdGlvblBh
cmFtZXRlcnMgcGFyYW1ldGVyczsKIAorICAgIHBhcmFtZXRlcnMubHNEaXNwbGF5TmFtZSA9IGNv
bmZpZ3VyYXRpb24oKS5sc0Rpc3BsYXlOYW1lKCk7CisKICAgICBwYXJhbWV0ZXJzLnZpZXdTaXpl
ID0gcGFnZUNsaWVudCgpLnZpZXdTaXplKCk7CiAgICAgcGFyYW1ldGVycy5hY3Rpdml0eVN0YXRl
ID0gbV9hY3Rpdml0eVN0YXRlOwogICAgIHBhcmFtZXRlcnMuZHJhd2luZ0FyZWFUeXBlID0gZHJh
d2luZ0FyZWEudHlwZSgpOwpAQCAtOTYxNCw2ICs5NjE2LDExIEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpzZXRPdmVycmlkZGVuTWVkaWFUeXBlKGNvbnN0IFN0cmluZyYgbWVkaWFUeXBlKQogICAgIG1f
cHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0T3ZlcnJpZGRlbk1lZGlhVHlwZSht
ZWRpYVR5cGUpLCBtX3dlYlBhZ2VJRCk7CiB9CiAKK3ZvaWQgV2ViUGFnZVByb3h5OjpnZXREaXNw
bGF5TmFtZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyYmKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKK3sKKyAgICBtX3Byb2Nlc3MtPmNvbm5lY3Rpb24oKS0+c2VuZFdpdGhBc3luY1JlcGx5
KE1lc3NhZ2VzOjpXZWJQYWdlOjpHZXREaXNwbGF5TmFtZSgpLCBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSwgbV93ZWJQYWdlSUQpOworfQorCiB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0T3JpZW50
YXRpb25Gb3JNZWRpYUNhcHR1cmUodWludDY0X3Qgb3JpZW50YXRpb24pCiB7CiAjaWYgUExBVEZP
Uk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oCmluZGV4IDVkNWZkZTg5NDZkZGRiYjVlNzBmZTBmZTgyNzU4N2FmM2ZmMmYz
MGQuLjY0MWNiZDk3YjA5MTdjMGZkYzk4MmVjMzZjZjY4MmRkYWM1ODBiZmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xNjI4LDYgKzE2MjgsOCBAQCBwdWJsaWM6
CiAgICAgY29uc3QgU3RyaW5nJiBvdmVycmlkZGVuTWVkaWFUeXBlKCkgY29uc3QgeyByZXR1cm4g
bV9vdmVycmlkZGVuTWVkaWFUeXBlOyB9CiAgICAgdm9pZCBzZXRPdmVycmlkZGVuTWVkaWFUeXBl
KGNvbnN0IFN0cmluZyYpOwogCisgICAgdm9pZCBnZXREaXNwbGF5TmFtZShDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFN0cmluZyYmKT4mJik7CisKICAgICB2b2lkIHNldE9yaWVudGF0aW9uRm9yTWVk
aWFDYXB0dXJlKHVpbnQ2NF90KTsKIAogICAgIGJvb2wgaXNIYW5kbGluZ1ByZXZlbnRhYmxlVG91
Y2hTdGFydCgpIGNvbnN0IHsgcmV0dXJuIG1faGFuZGxpbmdQcmV2ZW50YWJsZVRvdWNoU3RhcnRD
b3VudDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29j
b2EvV2ViUGFnZUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29j
b2EvV2ViUGFnZUNvY29hLm1tCmluZGV4IGJjMTRiZTRhOWZhM2I5Njg1ODMyN2JmMDI3N2U1NDVh
MjI4NjA0MzUuLmRmZmExMzJmMDdmNjY5YTM2NjMzNDRmNjNiOTZjNjU4YTNhZDFhMTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VDb2Nv
YS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdl
Q29jb2EubW0KQEAgLTMzLDYgKzMzLDcgQEAKICNpbXBvcnQgIldlYlBhZ2VQcm94eU1lc3NhZ2Vz
LmgiCiAjaW1wb3J0ICJXZWJQYXltZW50Q29vcmRpbmF0b3IuaCIKICNpbXBvcnQgIldlYlJlbW90
ZU9iamVjdFJlZ2lzdHJ5LmgiCisjaW1wb3J0IDxwYWwvc3BpL2NvY29hL0xhdW5jaFNlcnZpY2Vz
U1BJLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RpY3Rpb25hcnlMb29rdXAuaD4KICNpbXBvcnQgPFdl
YkNvcmUvRWRpdG9yLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0V2ZW50SGFuZGxlci5oPgpAQCAtMjg0
LDYgKzI4NSwxMSBAQCBSZXRhaW5QdHI8Q0ZEYXRhUmVmPiBXZWJQYWdlOjpwZGZTbmFwc2hvdEF0
U2l6ZShJbnRSZWN0IHJlY3QsIEludFNpemUgYml0bWFwU2l6ZQogICAgIHJldHVybiBkYXRhOwog
fQogCit2b2lkIFdlYlBhZ2U6OmdldERpc3BsYXlOYW1lKENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
U3RyaW5nJiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGNvbXBsZXRpb25IYW5kbGVy
KGFkb3B0Q0YoKENGU3RyaW5nUmVmKV9MU0NvcHlBcHBsaWNhdGlvbkluZm9ybWF0aW9uSXRlbShr
TFNDdXJyZW50U2Vzc2lvbklELCBfTFNHZXRDdXJyZW50QXBwbGljYXRpb25BU04oKSwgX2tMU0Rp
c3BsYXlOYW1lS2V5KSkuZ2V0KCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2Vu
ZGlmIC8vIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcAppbmRleCBjZjQxMzc1N2FmMmM5NWIxNDI1N2E1YWY3MzVlNzA4NzlkMTBj
NjUxLi5mZmY1NjY5YjUyOTA5ZmM1NzM2NDZlZDYyNjNkNWI0MDQ3NzhhOTkxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNDM4LDYgKzQzOCw3
IEBAIFdlYlBhZ2U6OldlYlBhZ2UoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICAgICAsIG1fdGV4dEF1dG9TaXppbmdBZGp1c3Rt
ZW50VGltZXIoKnRoaXMsICZXZWJQYWdlOjp0ZXh0QXV0b1NpemluZ0FkanVzdG1lbnRUaW1lckZp
cmVkKQogI2VuZGlmCiAgICAgLCBtX292ZXJyaWRkZW5NZWRpYVR5cGUocGFyYW1ldGVycy5vdmVy
cmlkZGVuTWVkaWFUeXBlKQorICAgICwgbV9sc0Rpc3BsYXlOYW1lKHBhcmFtZXRlcnMubHNEaXNw
bGF5TmFtZSkKIHsKICAgICBBU1NFUlQobV9pZGVudGlmaWVyKTsKIApAQCAtMTQ2MCw3ICsxNDYx
LDcgQEAgdm9pZCBXZWJQYWdlOjpjbG9zZSgpCiAgICAgLy8gVGhlIFdlYlBhZ2UgY2FuIGJlIGRl
c3Ryb3llZCBieSB0aGlzIGNhbGwuCiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucmVtb3Zl
V2ViUGFnZShtX2lkZW50aWZpZXIpOwogCi0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkudXBk
YXRlQWN0aXZlUGFnZXMoKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS51cGRhdGVBY3Rp
dmVQYWdlcyhtX2xzRGlzcGxheU5hbWUpOwogCiAgICAgaWYgKGlzUnVubmluZ01vZGFsKQogICAg
ICAgICBSdW5Mb29wOjptYWluKCkuc3RvcCgpOwpAQCAtNTc5Miw3ICs1NzkzLDcgQEAgdm9pZCBX
ZWJQYWdlOjpkaWRDb21taXRMb2FkKFdlYkZyYW1lKiBmcmFtZSkKICAgICBtX2xvYWRDb21taXRU
aW1lID0gV2FsbFRpbWU6Om5vdygpOwogI2VuZGlmCiAKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS51cGRhdGVBY3RpdmVQYWdlcygpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnVw
ZGF0ZUFjdGl2ZVBhZ2VzKG1fbHNEaXNwbGF5TmFtZSk7CiAKICAgICB1cGRhdGVNYWluRnJhbWVT
Y3JvbGxPZmZzZXRQaW5uaW5nKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaAppbmRleCBmMzU5ZTQxMWYzYTZkNjM5MzA3MzRiNWZjMjVmZTMzY2I1NmI1MDIw
Li40YzE0YWVkZmZlY2Y2MWZjZGJlMjM5NzUwOGEzOWM0NDA4YWQyYWVmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xMjQzLDcgKzEyNDMsOSBAQCBw
dWJsaWM6CiAKICAgICBjb25zdCBTdHJpbmcmIG92ZXJyaWRkZW5NZWRpYVR5cGUoKSBjb25zdCB7
IHJldHVybiBtX292ZXJyaWRkZW5NZWRpYVR5cGU7IH0KICAgICB2b2lkIHNldE92ZXJyaWRkZW5N
ZWRpYVR5cGUoY29uc3QgU3RyaW5nJik7Ci0gICAgCisKKyAgICB2b2lkIGdldERpc3BsYXlOYW1l
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nJiYpPiYmKTsKKwogcHJpdmF0ZToKICAgICBX
ZWJQYWdlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJz
JiYpOwogCkBAIC0yMDA0LDYgKzIwMDYsOCBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBTdHJp
bmcgbV9vdmVycmlkZGVuTWVkaWFUeXBlOworCisgICAgU3RyaW5nIG1fbHNEaXNwbGF5TmFtZTsK
IH07CiAKICNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDVmMmYxYWQwYzU0
NzUzZWZkZWE2YzMwZjc0YWRhNTQwNGU2Zjc4MzQuLmE4ZmQzN2VjZDZmYThjZDdlZDNmNzM4Y2Y3
MGQ4MTM0Y2NkNDVmNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtNTgzLDQgKzU4Myw1IEBAIEdlbmVyYXRlU3lu
dGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhldGljRWRpdGlu
Z0NvbW1hbmRUeXBlCiAgICAgQ29tcGxldGVUZXh0TWFuaXB1bGF0aW9uKFdlYkNvcmU6OlRleHRN
YW5pcHVsYXRpb25Db250cm9sbGVyOjpJdGVtSWRlbnRpZmllciBpdGVtSUQsIFZlY3RvcjxXZWJD
b3JlOjpUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjo6TWFuaXB1bGF0aW9uVG9rZW4+IHRva2Vu
cykgLT4gKGVudW06dWludDhfdCBXZWJDb3JlOjpUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjo6
TWFuaXB1bGF0aW9uUmVzdWx0IHJlc3VsdCkgQXN5bmMKICAgICAKICAgICBTZXRPdmVycmlkZGVu
TWVkaWFUeXBlKFN0cmluZyBtZWRpYVR5cGUpCisgICAgR2V0RGlzcGxheU5hbWUoKSAtPiAoU3Ry
aW5nIGRpc3BsYXlOYW1lKSBBc3luYwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwCmluZGV4IDA2YjA4ZDc4YmY1ODczNWU4MTc4MGZhMDQxYzBhODc0MWVmMDBlZjkuLjJh
OTMzMDQzODM2MzRiMzRlOThjOTExYTUwNTk5YThhZWE4OGQzMTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTEzOTksNyArMTM5OSw3IEBAIHZvaWQgV2ViUHJv
Y2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplUHJvY2Vzcyhjb25zdCBBdXhpbGlhcnlQcm9jZXNzSW5p
dGlhbGl6YXRpb25QCiB7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzczo6dXBkYXRlQWN0aXZlUGFnZXMo
KQordm9pZCBXZWJQcm9jZXNzOjp1cGRhdGVBY3RpdmVQYWdlcyhjb25zdCBTdHJpbmcmIG92ZXJy
aWRlRGlzcGxheU5hbWUpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5o
CmluZGV4IGMyY2U4OGJkNjI2ZjhiOGEzY2U4YTkwMWUzNWZmZGJjNGI0YzcyODUuLjRkYWQzYTA4
YjU4NGZjMGVkNGRiOGRiOTlmZDE5ZDYyMTkxZjVhOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuaApAQCAtMjQwLDcgKzI0MCw3IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IFN0
cmluZyYgdWlQcm9jZXNzQnVuZGxlSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fdWlQcm9j
ZXNzQnVuZGxlSWRlbnRpZmllcjsgfQogCi0gICAgdm9pZCB1cGRhdGVBY3RpdmVQYWdlcygpOwor
ICAgIHZvaWQgdXBkYXRlQWN0aXZlUGFnZXMoY29uc3QgU3RyaW5nJiBvdmVycmlkZURpc3BsYXlO
YW1lKTsKICAgICB2b2lkIGdldEFjdGl2ZVBhZ2VzT3JpZ2luc0ZvclRlc3RpbmcoQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChWZWN0b3I8U3RyaW5nPiYmKT4mJik7CiAgICAgdm9pZCBwYWdlQWN0aXZp
dHlTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgT3B0aW9uU2V0PFdlYkNv
cmU6OkFjdGl2aXR5U3RhdGU6OkZsYWc+IGNoYW5nZWQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IDRiZTU3NTM4YTVjNjY0NDgw
ZjM4MDRjOTBmNTJhYjVhZGRkNjc1MjQuLjA2YWE3NWZiNjA4YTVhN2E2NGU0NDNiYzgwYTQ0MmZj
NjA3ZjY2YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1l
c3NhZ2VzLmluCkBAIC0xMTMsNyArMTEzLDcgQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2VzcyBMZWdh
Y3lSZWNlaXZlciBOb3RSZWZDb3VudGVkIHsKICAgICBTZXRIYXNTdXNwZW5kZWRQYWdlUHJveHko
Ym9vbCBoYXNTdXNwZW5kZWRQYWdlUHJveHkpOwogICAgIFNldElzSW5Qcm9jZXNzQ2FjaGUoYm9v
bCBpc0luUHJvY2Vzc0NhY2hlKQogICAgIE1hcmtJc05vTG9uZ2VyUHJld2FybWVkKCkKLSAgICBV
cGRhdGVBY3RpdmVQYWdlcygpCisgICAgVXBkYXRlQWN0aXZlUGFnZXMoU3RyaW5nIG92ZXJyaWRl
RGlzcGxheU5hbWUpCiAgICAgR2V0QWN0aXZlUGFnZXNPcmlnaW5zRm9yVGVzdGluZygpIC0+IChW
ZWN0b3I8U3RyaW5nPiBhY3RpdmVPcmlnaW5zKSBBc3luYwogCiAjaWYgUExBVEZPUk0oTUFDKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2Nv
YS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0K
aW5kZXggOTAxOTY0YTkzM2I5MGViZjI4NjE2YmNlY2IxODA2ZDg5ZDhjMDFkYS4uMDQ5NTQ2NTAz
ZTA4ZThkZGE0MTI1YzBlMDY5ZWIzZWM1NWQ5YzFkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCkBAIC02MDIsMTQgKzYwMiwyMCBA
QCBzdGF0aWMgUmV0YWluUHRyPE5TQXJyYXk8TlNTdHJpbmcgKj4+IGFjdGl2ZVBhZ2VzT3JpZ2lu
cyhjb25zdCBIYXNoTWFwPFBhZ2VJZGVudAogfQogI2VuZGlmCiAKLXZvaWQgV2ViUHJvY2Vzczo6
dXBkYXRlQWN0aXZlUGFnZXMoKQordm9pZCBXZWJQcm9jZXNzOjp1cGRhdGVBY3RpdmVQYWdlcyhj
b25zdCBTdHJpbmcmIG92ZXJyaWRlRGlzcGxheU5hbWUpCiB7CiAjaWYgUExBVEZPUk0oTUFDKQot
ICAgIGF1dG8gYWN0aXZlT3JpZ2lucyA9IGFjdGl2ZVBhZ2VzT3JpZ2lucyhtX3BhZ2VNYXApOwor
ICAgIGlmICghb3ZlcnJpZGVEaXNwbGF5TmFtZSkgeworICAgICAgICBhdXRvIGFjdGl2ZU9yaWdp
bnMgPSBhY3RpdmVQYWdlc09yaWdpbnMobV9wYWdlTWFwKTsKIAotICAgIGRpc3BhdGNoX2FzeW5j
KGRpc3BhdGNoX2dldF9nbG9iYWxfcXVldWUoRElTUEFUQ0hfUVVFVUVfUFJJT1JJVFlfREVGQVVM
VCwgMCksIFthY3RpdmVPcmlnaW5zID0gV1RGTW92ZShhY3RpdmVPcmlnaW5zKV0gewotICAgICAg
ICBfTFNTZXRBcHBsaWNhdGlvbkluZm9ybWF0aW9uSXRlbShrTFNEZWZhdWx0U2Vzc2lvbklELCBf
TFNHZXRDdXJyZW50QXBwbGljYXRpb25BU04oKSwgQ0ZTVFIoIkxTQWN0aXZlUGFnZVVzZXJWaXNp
YmxlT3JpZ2luc0tleSIpLCAoX19icmlkZ2UgQ0ZBcnJheVJlZilhY3RpdmVPcmlnaW5zLmdldCgp
LCBudWxscHRyKTsKLSAgICB9KTsKKyAgICAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0
X2dsb2JhbF9xdWV1ZShESVNQQVRDSF9RVUVVRV9QUklPUklUWV9ERUZBVUxULCAwKSwgW2FjdGl2
ZU9yaWdpbnMgPSBXVEZNb3ZlKGFjdGl2ZU9yaWdpbnMpXSB7CisgICAgICAgICAgICBfTFNTZXRB
cHBsaWNhdGlvbkluZm9ybWF0aW9uSXRlbShrTFNEZWZhdWx0U2Vzc2lvbklELCBfTFNHZXRDdXJy
ZW50QXBwbGljYXRpb25BU04oKSwgQ0ZTVFIoIkxTQWN0aXZlUGFnZVVzZXJWaXNpYmxlT3JpZ2lu
c0tleSIpLCAoX19icmlkZ2UgQ0ZBcnJheVJlZilhY3RpdmVPcmlnaW5zLmdldCgpLCBudWxscHRy
KTsKKyAgICAgICAgfSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZGlzcGF0Y2hfYXN5bmMoZGlz
cGF0Y2hfZ2V0X2dsb2JhbF9xdWV1ZShESVNQQVRDSF9RVUVVRV9QUklPUklUWV9ERUZBVUxULCAw
KSwgXnsKKyAgICAgICAgICAgIF9MU1NldEFwcGxpY2F0aW9uSW5mb3JtYXRpb25JdGVtKGtMU0Rl
ZmF1bHRTZXNzaW9uSUQsIF9MU0dldEN1cnJlbnRBcHBsaWNhdGlvbkFTTigpLCBfa0xTRGlzcGxh
eU5hbWVLZXksIG92ZXJyaWRlRGlzcGxheU5hbWUuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwgbnVs
bHB0cik7CisgICAgICAgIH0pOworICAgIH0KICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Ub29s
cy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNDg1ZDFkYjVkMmU2NmM5NWE3MmZk
Y2FiZDEzZWU2YjUwZjBiM2I5ZC4uNjkzYjVkNzlhMjcwY2MwMWZkODgzYTg0YmZiOWM1ODFjNGE2
ZDk3YyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE1IEBACisyMDE5LTEyLTE3ICBFbGxpZSBFcHNrYW1wLUh1bnQgIDxlZXBza2Ft
cGh1bnRAYXBwbGUuY29tPgorCisgICAgICAgIFByb3ZpZGUgYWx0ZXJuYXRlIHdheSB0byBuYW1l
IFdlYiBDb250ZW50IHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwNTIyNAorICAgICAgICByZGFyOi8vNTcwMzgwODQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRGlzcGxheU5hbWUubW06IEFkZGVkLgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6VEVTVCk6CisKIDIwMTktMTItMDkgIEFsZXggQ2hyaXN0ZW5zZW4gIDxh
Y2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZS1kaXNhYmxlIFRMUzEuMCBhbmQg
VExTMS4xIGJ5IGRlZmF1bHQKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdl
YktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggODEzYjgxZmM1OWM0
MTc1ZmRiM2IzOWQ3NDMwZmMxYjZjNTM4ZGVhZi4uZDE4NDkzMzdlZWNjOWEyMTJjMjZkY2Y3ZTAy
ZjE5MTVlYTQyMjQ4MCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0
QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQ0NSw2ICs0NDUsNyBA
QAogCQk3MjVDM0VGMzIyMDU4QTVCMDA3QzM2RkMgLyogQWRkaXRpb25hbFN1cHBvcnRlZEltYWdl
VHlwZXMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3MjVDM0VGMjIyMDU4NEJBMDA3QzM2RkMgLyogQWRkaXRpb25hbFN1cHBvcnRlZElt
YWdlVHlwZXMuaHRtbCAqLzsgfTsKIAkJNzI4M0E5RDAyMkZBNzU0OTAwQjIxQzdEIC8qIGltZy13
aXRoLXJvdGF0ZWQtaW1hZ2UuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3MjgzQTlDRTIyRkE2QkJFMDBCMjFDN0QgLyogaW1nLXdpdGgt
cm90YXRlZC1pbWFnZS5odG1sICovOyB9OwogCQk3MjgzQTlEMjIyRkIxRTA2MDBCMjFDN0QgLyog
ZXhpZi1vcmllbnRhdGlvbi04LWxsby5qcGcgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzI4M0E5RDEyMkZCMUQ5NzAwQjIxQzdEIC8qIGV4aWYt
b3JpZW50YXRpb24tOC1sbG8uanBnICovOyB9OworCQk3M0JENzMxODIzQTg0NjUwMDAyMEY0NTAg
LyogRGlzcGxheU5hbWUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3M0JENzMxNzIzQTg0NjUwMDAyMEY0NTAgLyogRGlzcGxheU5hbWUubW0gKi87IH07
CiAJCTc1MUIwNUQ2MUY4RUFDNDEwMDI4QTA5RSAvKiBEYXRhYmFzZVRyYWNrZXJUZXN0Lm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzUxQjA1RDUxRjhF
QUMxQTAwMjhBMDlFIC8qIERhdGFiYXNlVHJhY2tlclRlc3QubW0gKi87IH07CiAJCTc1NENFQzgx
MUY2NzIyRjIwMEQwMDM5QSAvKiBBdXRvRmlsbEF2YWlsYWJsZS5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NENFQzgwMUY2NzIyREMwMEQwMDM5QSAv
KiBBdXRvRmlsbEF2YWlsYWJsZS5tbSAqLzsgfTsKIAkJNzY3MzQ5OUQxOTMwQzVCQjAwRTQ0REY5
IC8qIFN0b3BMb2FkaW5nRHVyaW5nRGlkRmFpbFByb3Zpc2lvbmFsTG9hZF9idW5kbGUuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzY3MzQ5OUExOTMw
MTgyRTAwRTQ0REY5IC8qIFN0b3BMb2FkaW5nRHVyaW5nRGlkRmFpbFByb3Zpc2lvbmFsTG9hZF9i
dW5kbGUuY3BwICovOyB9OwpAQCAtMjAxMSw2ICsyMDEyLDcgQEAKIAkJNzI1QzNFRjIyMjA1ODRC
QTAwN0MzNkZDIC8qIEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzLmh0bWwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0Lmh0bWw7IHBhdGggPSBBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcy5odG1sOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjgzQTlDRTIyRkE2QkJFMDBCMjFDN0QgLyog
aW1nLXdpdGgtcm90YXRlZC1pbWFnZS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0g
ImltZy13aXRoLXJvdGF0ZWQtaW1hZ2UuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTcyODNBOUQxMjJGQjFEOTcwMEIyMUM3RCAvKiBleGlmLW9yaWVudGF0aW9uLTgtbGxvLmpw
ZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGltYWdl
LmpwZWc7IHBhdGggPSAiZXhpZi1vcmllbnRhdGlvbi04LWxsby5qcGciOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk3M0JENzMxNzIzQTg0NjUwMDAyMEY0NTAgLyogRGlzcGxheU5hbWUu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBEaXNwbGF5TmFtZS5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzUxQjA1RDUxRjhFQUMxQTAwMjhBMDlF
IC8qIERhdGFiYXNlVHJhY2tlclRlc3QubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBEYXRhYmFz
ZVRyYWNrZXJUZXN0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NTRDRUM4MDFG
NjcyMkRDMDBEMDAzOUEgLyogQXV0b0ZpbGxBdmFpbGFibGUubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBBdXRvRmlsbEF2YWlsYWJsZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NzVGMzEzM0YxOEMxNzFCNzAwNDFDQUVDIC8qIEVwaGVtZXJhbFNlc3Npb25QdXNoU3RhdGVOb0hp
c3RvcnlDYWxsYmFjay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBF
cGhlbWVyYWxTZXNzaW9uUHVzaFN0YXRlTm9IaXN0b3J5Q2FsbGJhY2suY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMjg2NSw2ICsyODY3LDcgQEAKIAkJCQkyRDJEMTNCMjIyOUY0
MDhCMDA1MDY4QUYgLyogRGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9ucy5tbSAqLywKIAkJCQk0
NjkxOEVGQjIyMzcyODM1MDA0NjhERkUgLyogRGV2aWNlT3JpZW50YXRpb24ubW0gKi8sCiAJCQkJ
Q0VBN0Y1N0IyMDg5NUY1QjAwNzhFRjZFIC8qIERpZFJlc2lnbklucHV0RWxlbWVudFN0cm9uZ1Bh
c3N3b3JkQXBwZWFyYW5jZS5tbSAqLywKKwkJCQk3M0JENzMxNzIzQTg0NjUwMDAyMEY0NTAgLyog
RGlzcGxheU5hbWUubW0gKi8sCiAJCQkJNTE4RUU1MUEyMEE3OENGQjAwRTAyNEYzIC8qIERvQWZ0
ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRlQWZ0ZXJDcmFzaC5tbSAqLywKIAkJCQkyRDdGRDE5MjIy
NDE5MDg3MDA3ODg3RjEgLyogRG9jdW1lbnRFZGl0aW5nQ29udGV4dC5tbSAqLywKIAkJCQk1MThF
RTUxNjIwQTc4Q0RGMDBFMDI0RjMgLyogRG91YmxlRGVmZXJzTG9hZGluZy5tbSAqLywKQEAgLTQ1
OTgsNiArNDYwMSw3IEBACiAJCQkJQUQ1N0FDMjExREE3NDY1QjAwRkYxQkRFIC8qIERpZFJlbW92
ZUZyYW1lRnJvbUhpZWFyY2h5SW5QYWdlQ2FjaGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE4
RUU1MUIyMEE3OEQwMDAwRTAyNEYzIC8qIERvQWZ0ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRlQWZ0
ZXJDcmFzaC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJEN0ZEMTkzMjI0MTkwODcwMDc4ODdGMSAv
KiBEb2N1bWVudEVkaXRpbmdDb250ZXh0Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNzNCRDczMTgy
M0E4NDY1MDAwMjBGNDUwIC8qIERpc3BsYXlOYW1lLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0ND
RTdFRUIxQTQxMUFFNjAwNDQ3QzRDIC8qIERvY3VtZW50U3RhcnRVc2VyU2NyaXB0QWxlcnRDcmFz
aC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VCQjFBNDExQTdFMDA0NDdDNEMgLyogRE9N
SFRNTFRhYmxlQ2VsbENlbGxBYm92ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJENTFBMEM3MUM4
QkYwMEMwMDc2NUM0NSAvKiBET01IVE1MVmlkZW9FbGVtZW50V3JhcHBlci5tbSBpbiBTb3VyY2Vz
ICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9E
aXNwbGF5TmFtZS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRGlz
cGxheU5hbWUubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzYzYWRhZmVmMjBjNTkyNWU1MDk1M2UwYjYyZDdmM2Qz
OGZkMWJkYQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvRGlzcGxheU5hbWUubW0KQEAgLTAsMCArMSw3NSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bXBvcnQgImNvbmZpZy5oIgorCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9y
dCAiVENQU2VydmVyLmgiCisjaW1wb3J0ICJUZXN0LmgiCisjaW1wb3J0ICJUZXN0V0tXZWJWaWV3
LmgiCisjaW1wb3J0IDxXZWJLaXQvV0tQcm9jZXNzUG9vbFByaXZhdGUuaD4KKyNpbXBvcnQgPFdl
YktpdC9XS1dlYnNpdGVEYXRhUmVjb3JkUHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLV2Vi
c2l0ZURhdGFTdG9yZVByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdDb25maWd1
cmF0aW9uUHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGUuaD4KKyNp
bXBvcnQgPFdlYktpdC9XZWJLaXQuaD4KKyNpbXBvcnQgPFdlYktpdC9fV0tXZWJzaXRlRGF0YVN0
b3JlQ29uZmlndXJhdGlvbi5oPgorI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25h
bWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKworVEVTVChXZWJLaXQsIEN1c3RvbURpc3BsYXlOYW1l
KQoreworICAgIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKmNvbmZpZ3VyYXRpb24gPSBbW1dLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24gbmV3XSBhdXRvcmVsZWFzZV07CisgICAgTlNTdHJpbmcgKmRpc3Bs
YXlOYW1lVG9TZXQgPSBAInRlc3QgZGlzcGxheSBuYW1lIjsKKyAgICBjb25maWd1cmF0aW9uLl9s
c0Rpc3BsYXlOYW1lID0gZGlzcGxheU5hbWVUb1NldDsKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9w
dE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAs
IDMyMCwgNTAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKKyAgICBbd2ViVmlldyBz
eW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCJzdGFydCB3ZWIgcHJvY2VzcyJdOworCisgICAg
X19ibG9jayBib29sIGRvbmUgPSBmYWxzZTsKKworICAgIFt3ZWJWaWV3IF9nZXREaXNwbGF5TmFt
ZVdpdGhDb21wbGV0aW9uSGFuZGxlcjpeKE5TU3RyaW5nICpuYW1lKSB7CisgICAgICAgIEVYUEVD
VF9XS19TVFJFUShuYW1lLCBkaXNwbGF5TmFtZVRvU2V0KTsKKyAgICAgICAgZG9uZSA9IHRydWU7
CisgICAgfV07CisKKyAgICBVdGlsOjpydW4oJmRvbmUpOworfQorCitURVNUKFdlYktpdCwgRGVm
YXVsdERpc3BsYXlOYW1lKQoreworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tX
ZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApXSk7
CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAic3RhcnQgd2ViIHBy
b2Nlc3MiXTsKKworICAgIF9fYmxvY2sgYm9vbCBkb25lID0gZmFsc2U7CisgICAgW3dlYlZpZXcg
X2dldERpc3BsYXlOYW1lV2l0aENvbXBsZXRpb25IYW5kbGVyOl4oTlNTdHJpbmcgKm5hbWUpIHsK
KyAgICAgICAgRVhQRUNUX1dLX1NUUkVRKG5hbWUsIEAiVGVzdFdlYktpdEFQSSBXZWIgQ29udGVu
dCIpOworICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKworICAgIFV0aWw6OnJ1bigmZG9u
ZSk7Cit9CisKK30K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390313</attachid>
            <date>2020-02-10 16:38:17 -0800</date>
            <delta_ts>2020-02-10 17:11:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205224-20200210163816.patch</filename>
            <type>text/plain</type>
            <size>25552</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTYyMTIpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUyIEBACisyMDIwLTAyLTEwICBFbGxpZSBFcHNr
YW1wLUh1bnQgIDxlZXBza2FtcGh1bnRAYXBwbGUuY29tPgorCisgICAgICAgIFByb3ZpZGUgYWx0
ZXJuYXRlIHdheSB0byBuYW1lIFdlYiBDb250ZW50IHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTIyNAorICAgICAgICByZGFyOi8vNTcw
MzgwODQKKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAg
IFRlc3Q6IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRGlzcGxheU5hbWUubW0KKwor
ICAgICAgICBBZGQgdGhlIGFiaWxpdHkgdG8gc2V0IF9wcm9jZXNzRGlzcGxheU5hbWUgb24gV0tX
ZWJWaWV3Q29uZmlndXJhdGlvbiB0byBhbGxvdyB0aGUgbmFtZSBvZiB0aGUgd2ViCisgICAgICAg
IGNvbnRlbnQgcHJvY2VzcyB0aGF0IGFwcGVhcnMgaW4gQWN0aXZpdHkgTW9uaXRvciB0byBiZSBz
ZXQgdG8gYSBjdXN0b20gc3RyaW5nLgorCisgICAgICAgICogU2hhcmVkL1dlYlBhZ2VDcmVhdGlv
blBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0
ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0
ZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5jcHA6
CisgICAgICAgIChBUEk6OlBhZ2VDb25maWd1cmF0aW9uOjpjb3B5IGNvbnN0KToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmg6CisgICAgICAgIChBUEk6OlBh
Z2VDb25maWd1cmF0aW9uOjpsc0Rpc3BsYXlOYW1lIGNvbnN0KToKKyAgICAgICAgKEFQSTo6UGFn
ZUNvbmZpZ3VyYXRpb246OnNldGxzRGlzcGxheU5hbWUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2dldERpc3BsYXlO
YW1lV2l0aENvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3Q29uZmln
dXJhdGlvbiBfbHNEaXNwbGF5TmFtZV0pOgorICAgICAgICAoLVtXS1dlYlZpZXdDb25maWd1cmF0
aW9uIF9zZXRsc0Rpc3BsYXlOYW1lOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpjcmVhdGlvblBhcmFtZXRl
cnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmdldERpc3BsYXlOYW1lKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL0NvY29hL1dlYlBhZ2VDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
Z2V0RGlzcGxheU5hbWUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6bV9sc0Rpc3BsYXlOYW1lKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6Y2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRDb21taXRMb2Fk
KToKKyAgICAgICAgKFdlYktpdDo6bV9vdmVycmlkZGVuTWVkaWFUeXBlKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnVwZGF0ZUFjdGl2ZVBh
Z2VzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2Nv
YS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnVwZGF0
ZUFjdGl2ZVBhZ2VzKToKKwogMjAyMC0wMi0xMCAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBs
ZS5jb20+CiAKICAgICAgICAgRGlzYWxsb3cgc2V0dGluZyBiYXNlIFVSTCB0byBhIGRhdGEgb3Ig
SmF2YVNjcmlwdCBVUkwKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlv
blBhcmFtZXRlcnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBh
Z2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCShyZXZpc2lvbiAyNTYyMTIpCisrKyBTb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTM4LDYgKzEzOCw3IEBAIHZvaWQgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2Rl
KEkKICAgICBlbmNvZGVyIDw8IG9sZFBhZ2VJRDsKICAgICBlbmNvZGVyIDw8IG92ZXJyaWRkZW5N
ZWRpYVR5cGU7CiAgICAgZW5jb2RlciA8PCBjb3JzRGlzYWJsaW5nUGF0dGVybnM7CisgICAgZW5j
b2RlciA8PCBwcm9jZXNzRGlzcGxheU5hbWU7CiAKICAgICBlbmNvZGVyIDw8IHNob3VsZENhcHR1
cmVBdWRpb0luVUlQcm9jZXNzOwogICAgIGVuY29kZXIgPDwgc2hvdWxkQ2FwdHVyZUF1ZGlvSW5H
UFVQcm9jZXNzOwpAQCAtNDQxLDYgKzQ0MiwxMiBAQCBPcHRpb25hbDxXZWJQYWdlQ3JlYXRpb25Q
YXJhbWV0ZXJzPiBXZWJQCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAgICAgcGFyYW1l
dGVycy5jb3JzRGlzYWJsaW5nUGF0dGVybnMgPSBXVEZNb3ZlKCpjb3JzRGlzYWJsaW5nUGF0dGVy
bnMpOwogCisgICAgT3B0aW9uYWw8U3RyaW5nPiBwcm9jZXNzRGlzcGxheU5hbWU7CisgICAgZGVj
b2RlciA+PiBwcm9jZXNzRGlzcGxheU5hbWU7CisgICAgaWYgKCFwcm9jZXNzRGlzcGxheU5hbWUp
CisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgcGFyYW1ldGVycy5wcm9jZXNzRGlz
cGxheU5hbWUgPSBXVEZNb3ZlKCpwcm9jZXNzRGlzcGxheU5hbWUpOworICAgIAogICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5zaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2Vzcykp
CiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKQEAgLTQ2MSw2ICs0NjgsOSBAQCBPcHRp
b25hbDxXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzPiBXZWJQCiAgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CiAjZW5kaWYKIAorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5w
cm9jZXNzRGlzcGxheU5hbWUpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCiAgICAg
cmV0dXJuIHBhcmFtZXRlcnM7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBh
Z2VDcmVhdGlvblBhcmFtZXRlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgJKHJldmlzaW9uIDI1NjIxMikKKysrIFNvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAkod29ya2luZyBjb3B5
KQpAQCAtMjA5LDYgKzIwOSw3IEBAIHN0cnVjdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzIHsK
IAogICAgIFN0cmluZyBvdmVycmlkZGVuTWVkaWFUeXBlOwogICAgIFZlY3RvcjxTdHJpbmc+IGNv
cnNEaXNhYmxpbmdQYXR0ZXJuczsKKyAgICBTdHJpbmcgcHJvY2Vzc0Rpc3BsYXlOYW1lOwogCiAg
ICAgYm9vbCBzaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzcyB7IGZhbHNlIH07CiAgICAgYm9v
bCBzaG91bGRDYXB0dXJlQXVkaW9JbkdQVVByb2Nlc3MgeyBmYWxzZSB9OwpJbmRleDogU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCShyZXZpc2lvbiAyNTYyMTIpCisrKyBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC03NTQ0LDYgKzc1NDQsOCBAQCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzIFdlYlBhZ2VQcm94
eTo6CiB7CiAgICAgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyBwYXJhbWV0ZXJzOwogCisgICAg
cGFyYW1ldGVycy5wcm9jZXNzRGlzcGxheU5hbWUgPSBjb25maWd1cmF0aW9uKCkucHJvY2Vzc0Rp
c3BsYXlOYW1lKCk7CisKICAgICBwYXJhbWV0ZXJzLnZpZXdTaXplID0gcGFnZUNsaWVudCgpLnZp
ZXdTaXplKCk7CiAgICAgcGFyYW1ldGVycy5hY3Rpdml0eVN0YXRlID0gbV9hY3Rpdml0eVN0YXRl
OwogICAgIHBhcmFtZXRlcnMuZHJhd2luZ0FyZWFUeXBlID0gZHJhd2luZ0FyZWEudHlwZSgpOwpA
QCAtOTg0OCw2ICs5ODUwLDExIEBAIGJvb2wgV2ViUGFnZVByb3h5OjpzaG91bGRVc2VGb3JlZ3Jv
dW5kUHIKIH0KICNlbmRpZgogCit2b2lkIFdlYlBhZ2VQcm94eTo6Z2V0UHJvY2Vzc0Rpc3BsYXlO
YW1lKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nJiYpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQoreworICAgIG1fcHJvY2Vzcy0+Y29ubmVjdGlvbigpLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVz
c2FnZXM6OldlYlBhZ2U6OkdldFByb2Nlc3NEaXNwbGF5TmFtZSgpLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSwgbV93ZWJQYWdlSUQpOworfQorCiB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0T3Jp
ZW50YXRpb25Gb3JNZWRpYUNhcHR1cmUodWludDY0X3Qgb3JpZW50YXRpb24pCiB7CiAjaWYgUExB
VEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCkluZGV4OiBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaAkocmV2aXNpb24gMjU2MjEyKQorKysgU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTE2NzQsNiArMTY3
NCw4IEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJpbmcmIG92ZXJyaWRkZW5NZWRpYVR5cGUoKSBj
b25zdCB7IHJldHVybiBtX292ZXJyaWRkZW5NZWRpYVR5cGU7IH0KICAgICB2b2lkIHNldE92ZXJy
aWRkZW5NZWRpYVR5cGUoY29uc3QgU3RyaW5nJik7CiAKKyAgICB2b2lkIGdldFByb2Nlc3NEaXNw
bGF5TmFtZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyYmKT4mJik7CisKICAgICB2b2lk
IHNldE9yaWVudGF0aW9uRm9yTWVkaWFDYXB0dXJlKHVpbnQ2NF90KTsKIAogICAgIGJvb2wgaXNI
YW5kbGluZ1ByZXZlbnRhYmxlVG91Y2hTdGFydCgpIGNvbnN0IHsgcmV0dXJuIG1faGFuZGxpbmdQ
cmV2ZW50YWJsZVRvdWNoU3RhcnRDb3VudDsgfQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uY3BwCShyZXZpc2lvbiAyNTYy
MTIpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24u
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC05Miw2ICs5Miw4IEBAIFJlZjxQYWdlQ29uZmlndXJhdGlv
bj4gUGFnZUNvbmZpZ3VyYXRpb24KICAgICBjb3B5LT5tX2NvcnNEaXNhYmxpbmdQYXR0ZXJucyA9
IHRoaXMtPm1fY29yc0Rpc2FibGluZ1BhdHRlcm5zOwogICAgIGNvcHktPm1fd2ViVmlld0NhdGVn
b3J5ID0gdGhpcy0+bV93ZWJWaWV3Q2F0ZWdvcnk7CiAKKyAgICBjb3B5LT5tX3Byb2Nlc3NEaXNw
bGF5TmFtZSA9IHRoaXMtPm1fcHJvY2Vzc0Rpc3BsYXlOYW1lOworCiAgICAgcmV0dXJuIGNvcHk7
CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJh
dGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQYWdl
Q29uZmlndXJhdGlvbi5oCShyZXZpc2lvbiAyNTYyMTIpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMTM4LDYg
KzEzOCw5IEBAIHB1YmxpYzoKICAgICBjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+JiBjb3JzRGlz
YWJsaW5nUGF0dGVybnMoKSBjb25zdCB7IHJldHVybiBtX2NvcnNEaXNhYmxpbmdQYXR0ZXJuczsg
fQogICAgIHZvaWQgc2V0Q09SU0Rpc2FibGluZ1BhdHRlcm5zKFZlY3RvcjxXVEY6OlN0cmluZz4m
JiBwYXR0ZXJucykgeyBtX2NvcnNEaXNhYmxpbmdQYXR0ZXJucyA9IFdURk1vdmUocGF0dGVybnMp
OyB9CiAKKyAgICBjb25zdCBXVEY6OlN0cmluZyYgcHJvY2Vzc0Rpc3BsYXlOYW1lKCkgY29uc3Qg
eyByZXR1cm4gbV9wcm9jZXNzRGlzcGxheU5hbWU7IH0KKyAgICB2b2lkIHNldFByb2Nlc3NEaXNw
bGF5TmFtZShjb25zdCBXVEY6OlN0cmluZyYgbmFtZSkgeyBtX3Byb2Nlc3NEaXNwbGF5TmFtZSA9
IG5hbWU7IH0KKwogICAgIFdlYktpdDo6V2ViVmlld0NhdGVnb3J5IHdlYlZpZXdDYXRlZ29yeSgp
IGNvbnN0IHsgcmV0dXJuIG1fd2ViVmlld0NhdGVnb3J5OyB9CiAgICAgdm9pZCBzZXRXZWJWaWV3
Q2F0ZWdvcnkoV2ViS2l0OjpXZWJWaWV3Q2F0ZWdvcnkgY2F0ZWdvcnkpIHsgbV93ZWJWaWV3Q2F0
ZWdvcnkgPSBjYXRlZ29yeTsgfQogCkBAIC0xNzgsNiArMTgxLDcgQEAgcHJpdmF0ZToKIAogICAg
IEhhc2hNYXA8V1RGOjpTdHJpbmcsIFJlZjxXZWJLaXQ6OldlYlVSTFNjaGVtZUhhbmRsZXI+PiBt
X3VybFNjaGVtZUhhbmRsZXJzOwogICAgIFZlY3RvcjxXVEY6OlN0cmluZz4gbV9jb3JzRGlzYWJs
aW5nUGF0dGVybnM7CisgICAgV1RGOjpTdHJpbmcgbV9wcm9jZXNzRGlzcGxheU5hbWU7CiAgICAg
V2ViS2l0OjpXZWJWaWV3Q2F0ZWdvcnkgbV93ZWJWaWV3Q2F0ZWdvcnkgeyBXZWJLaXQ6OldlYlZp
ZXdDYXRlZ29yeTo6QXBwQm91bmREb21haW4gfTsKIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQkocmV2aXNpb24gMjU2MjEyKQor
KysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtMjcyNSw2ICsyNzI1LDEzIEBAIC0gKHZvaWQpX3NldFZpZXdTY2FsZTooQ0dG
bG9hdCl2aWV3U2NhbGUKICNlbmRpZgogfQogCistICh2b2lkKV9nZXRQcm9jZXNzRGlzcGxheU5h
bWVXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nICopKWNvbXBsZXRpb25I
YW5kbGVyCit7CisgICAgX3BhZ2UtPmdldFByb2Nlc3NEaXNwbGF5TmFtZShbaGFuZGxlciA9IG1h
a2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcildKGF1dG8mJiBuYW1lKSB7CisgICAgICAgIGhh
bmRsZXIobmFtZSk7CisgICAgfSk7Cit9CisKIC0gKHZvaWQpX3NldE1pbmltdW1FZmZlY3RpdmVE
ZXZpY2VXaWR0aDooQ0dGbG9hdCltaW5pbXVtRWZmZWN0aXZlRGV2aWNlV2lkdGgKIHsKICNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0JKHJldmlzaW9u
IDI1NjIxMikKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdD
b25maWd1cmF0aW9uLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMjAwLDYgKzEyMDAsMTYgQEAgLSAo
dm9pZClfc2V0V2ViVmlld0NhdGVnb3J5OihfV0tXZWJWaWV3QwogICAgIF9wYWdlQ29uZmlndXJh
dGlvbi0+c2V0V2ViVmlld0NhdGVnb3J5KHRvV2ViS2l0V2ViVmlld0NhdGVnb3J5KGNhdGVnb3J5
KSk7CiB9CiAKKy0gKE5TU3RyaW5nICopX3Byb2Nlc3NEaXNwbGF5TmFtZQoreworICAgIHJldHVy
biBfcGFnZUNvbmZpZ3VyYXRpb24tPnByb2Nlc3NEaXNwbGF5TmFtZSgpOworfQorCistICh2b2lk
KV9zZXRQcm9jZXNzRGlzcGxheU5hbWU6KE5TU3RyaW5nICopbHNEaXNwbGF5TmFtZQoreworICAg
IF9wYWdlQ29uZmlndXJhdGlvbi0+c2V0UHJvY2Vzc0Rpc3BsYXlOYW1lKGxzRGlzcGxheU5hbWUp
OworfQorCiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXS1dlYlZpZXdDb25maWd1cmF0aW9uIChX
S0RlcHJlY2F0ZWQpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaAkocmV2
aXNpb24gMjU2MjEyKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEyMiw0ICsxMjIs
NiBAQCB0eXBlZGVmIE5TX0VOVU0oTlNVSW50ZWdlciwgX1dLV2ViVmlld0NhCiBAcHJvcGVydHkg
KG5vbmF0b21pYywgc2V0dGVyPV9zZXRVbmRvTWFuYWdlckFQSUVuYWJsZWQ6KSBCT09MIF91bmRv
TWFuYWdlckFQSUVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNSksIGlvcygxMy4w
KSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRXZWJWaWV3Q2F0ZWdvcnk6KSBf
V0tXZWJWaWV3Q2F0ZWdvcnkgX3dlYlZpZXdDYXRlZ29yeSBXS19BUElfQVZBSUxBQkxFKG1hY29z
KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCitAcHJvcGVydHkgKG5vbmF0b21pYywg
c2V0dGVyPV9zZXRQcm9jZXNzRGlzcGxheU5hbWU6KSBOU1N0cmluZyAqX3Byb2Nlc3NEaXNwbGF5
TmFtZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkp
OworCiBAZW5kCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3UHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdQcml2YXRlLmgJKHJldmlzaW9uIDI1NjIxMikKKysrIFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTMyNiw2ICszMjYsOSBAQCBmb3IgdGhpcyBwcm9wZXJ0eS4KIC0gKHZvaWQpX2ZvY3VzVGV4
dElucHV0Q29udGV4dDooX1dLVGV4dElucHV0Q29udGV4dCAqKXRleHRJbnB1dEVsZW1lbnQgY29t
cGxldGlvbkhhbmRsZXI6KHZvaWQoXikoQk9PTCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xNSksIGlvcygxMy4wKSk7CiAKIC0gKHZvaWQpX3Rha2VQREZTbmFw
c2hvdFdpdGhDb25maWd1cmF0aW9uOihXS1NuYXBzaG90Q29uZmlndXJhdGlvbiAqKXNuYXBzaG90
Q29uZmlndXJhdGlvbiBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNEYXRhICpwZGZTbmFw
c2hvdERhdGEsIE5TRXJyb3IgKmVycm9yKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxB
QkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworCistICh2b2lkKV9nZXRQ
cm9jZXNzRGlzcGxheU5hbWVXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5n
ICopKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7CisKIEBlbmQKIAogI2lmIFRBUkdFVF9PU19JUEhPTkUKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAJKHJldmlzaW9uIDI1NjIxMikK
KysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTQzNSw3ICsxNDM1LDcgQEAgdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxp
emVQcm9jZQogewogfQogCi12b2lkIFdlYlByb2Nlc3M6OnVwZGF0ZUFjdGl2ZVBhZ2VzKCkKK3Zv
aWQgV2ViUHJvY2Vzczo6dXBkYXRlQWN0aXZlUGFnZXMoY29uc3QgU3RyaW5nJiBvdmVycmlkZURp
c3BsYXlOYW1lKQogewogfQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmgJKHJldmlzaW9uIDI1NjIxMikKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI1MSw3ICsyNTEsNyBAQCBwdWJsaWM6CiAKICAgICBj
b25zdCBTdHJpbmcmIHVpUHJvY2Vzc0J1bmRsZUlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBt
X3VpUHJvY2Vzc0J1bmRsZUlkZW50aWZpZXI7IH0KIAotICAgIHZvaWQgdXBkYXRlQWN0aXZlUGFn
ZXMoKTsKKyAgICB2b2lkIHVwZGF0ZUFjdGl2ZVBhZ2VzKGNvbnN0IFN0cmluZyYgb3ZlcnJpZGVE
aXNwbGF5TmFtZSk7CiAgICAgdm9pZCBnZXRBY3RpdmVQYWdlc09yaWdpbnNGb3JUZXN0aW5nKENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFN0cmluZz4mJik+JiYpOwogICAgIHZvaWQgcGFn
ZUFjdGl2aXR5U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIE9wdGlvblNl
dDxXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpGbGFnPiBjaGFuZ2VkKTsKIApJbmRleDogU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4JKHJldmlzaW9u
IDI1NjIxMikKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2Vz
LmluCSh3b3JraW5nIGNvcHkpCkBAIC0xMTIsNyArMTEyLDcgQEAgbWVzc2FnZXMgLT4gV2ViUHJv
Y2VzcyBMZWdhY3lSZWNlaXZlciBObwogICAgIFNldEhhc1N1c3BlbmRlZFBhZ2VQcm94eShib29s
IGhhc1N1c3BlbmRlZFBhZ2VQcm94eSk7CiAgICAgU2V0SXNJblByb2Nlc3NDYWNoZShib29sIGlz
SW5Qcm9jZXNzQ2FjaGUpCiAgICAgTWFya0lzTm9Mb25nZXJQcmV3YXJtZWQoKQotICAgIFVwZGF0
ZUFjdGl2ZVBhZ2VzKCkKKyAgICBVcGRhdGVBY3RpdmVQYWdlcyhTdHJpbmcgb3ZlcnJpZGVEaXNw
bGF5TmFtZSkKICAgICBHZXRBY3RpdmVQYWdlc09yaWdpbnNGb3JUZXN0aW5nKCkgLT4gKFZlY3Rv
cjxTdHJpbmc+IGFjdGl2ZU9yaWdpbnMpIEFzeW5jCiAKICNpZiBQTEFURk9STShNQUMpCkluZGV4
OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkocmV2aXNp
b24gMjU2MjEyKQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQ1MCw2ICs0NTAsNyBAQCBXZWJQYWdlOjpXZWJQYWdlKFBh
Z2VJZGVudGlmaWVyIHBhZ2VJRCwgCiAgICAgLCBtX3RleHRBdXRvU2l6aW5nQWRqdXN0bWVudFRp
bWVyKCp0aGlzLCAmV2ViUGFnZTo6dGV4dEF1dG9TaXppbmdBZGp1c3RtZW50VGltZXJGaXJlZCkK
ICNlbmRpZgogICAgICwgbV9vdmVycmlkZGVuTWVkaWFUeXBlKHBhcmFtZXRlcnMub3ZlcnJpZGRl
bk1lZGlhVHlwZSkKKyAgICAsIG1fcHJvY2Vzc0Rpc3BsYXlOYW1lKHBhcmFtZXRlcnMucHJvY2Vz
c0Rpc3BsYXlOYW1lKQogewogICAgIEFTU0VSVChtX2lkZW50aWZpZXIpOwogCkBAIC0xNDk3LDcg
KzE0OTgsNyBAQCB2b2lkIFdlYlBhZ2U6OmNsb3NlKCkKICAgICAvLyBUaGUgV2ViUGFnZSBjYW4g
YmUgZGVzdHJveWVkIGJ5IHRoaXMgY2FsbC4KICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5y
ZW1vdmVXZWJQYWdlKG1faWRlbnRpZmllcik7CiAKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS51cGRhdGVBY3RpdmVQYWdlcygpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnVwZGF0
ZUFjdGl2ZVBhZ2VzKG1fcHJvY2Vzc0Rpc3BsYXlOYW1lKTsKIAogICAgIGlmIChpc1J1bm5pbmdN
b2RhbCkKICAgICAgICAgUnVuTG9vcDo6bWFpbigpLnN0b3AoKTsKQEAgLTU4ODgsNyArNTg4OSw3
IEBAIHZvaWQgV2ViUGFnZTo6ZGlkQ29tbWl0TG9hZChXZWJGcmFtZSogZnIKICAgICBtX2xvYWRD
b21taXRUaW1lID0gV2FsbFRpbWU6Om5vdygpOwogI2VuZGlmCiAKLSAgICBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS51cGRhdGVBY3RpdmVQYWdlcygpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLnVwZGF0ZUFjdGl2ZVBhZ2VzKG1fcHJvY2Vzc0Rpc3BsYXlOYW1lKTsKIAogICAgIHVwZGF0
ZU1haW5GcmFtZVNjcm9sbE9mZnNldFBpbm5pbmcoKTsKIApJbmRleDogU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAkocmV2aXNpb24gMjU2MjEyKQorKysgU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
Mjc0LDcgKzEyNzQsOSBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBTdHJpbmcmIG92ZXJyaWRkZW5N
ZWRpYVR5cGUoKSBjb25zdCB7IHJldHVybiBtX292ZXJyaWRkZW5NZWRpYVR5cGU7IH0KICAgICB2
b2lkIHNldE92ZXJyaWRkZW5NZWRpYVR5cGUoY29uc3QgU3RyaW5nJik7Ci0gICAgCisKKyAgICB2
b2lkIGdldFByb2Nlc3NEaXNwbGF5TmFtZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyYm
KT4mJik7CisKIHByaXZhdGU6CiAgICAgV2ViUGFnZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwg
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYmKTsKIApAQCAtMjA0Nyw2ICsyMDQ5LDcgQEAgcHJp
dmF0ZToKICNlbmRpZgogCiAgICAgU3RyaW5nIG1fb3ZlcnJpZGRlbk1lZGlhVHlwZTsKKyAgICBT
dHJpbmcgbV9wcm9jZXNzRGlzcGxheU5hbWU7CiAKICNpZiBQTEFURk9STShHVEspCiAgICAgU3Ry
aW5nIG1fdGhlbWVOYW1lOwpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyNTYyMTIpCisrKyBTb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCSh3b3JraW5n
IGNvcHkpCkBAIC01OTcsNiArNTk3LDcgQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFu
ZChlbnVtOnVpbgogICAgIENvbXBsZXRlVGV4dE1hbmlwdWxhdGlvbihXZWJDb3JlOjpUZXh0TWFu
aXB1bGF0aW9uQ29udHJvbGxlcjo6SXRlbUlkZW50aWZpZXIgaXRlbUlELCBWZWN0b3I8V2ViQ29y
ZTo6VGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXI6Ok1hbmlwdWxhdGlvblRva2VuPiB0b2tlbnMp
IC0+IChlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6VGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXI6Ok1h
bmlwdWxhdGlvblJlc3VsdCByZXN1bHQpIEFzeW5jCiAgICAgCiAgICAgU2V0T3ZlcnJpZGRlbk1l
ZGlhVHlwZShTdHJpbmcgbWVkaWFUeXBlKQorICAgIEdldFByb2Nlc3NEaXNwbGF5TmFtZSgpIC0+
IChTdHJpbmcgZGlzcGxheU5hbWUpIEFzeW5jCiAKICAgICBTZXRIYXNSZXNvdXJjZUxvYWRDbGll
bnQoYm9vbCBoYXMpCiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9D
b2NvYS9XZWJQYWdlQ29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUGFnZUNvY29hLm1tCShyZXZpc2lvbiAyNTYyMTIpCisrKyBT
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29jb2EubW0JKHdv
cmtpbmcgY29weSkKQEAgLTQ1LDYgKzQ1LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVyRWxl
bWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJPYmplY3QuaD4KICNpbXBvcnQgPFdlYkNv
cmUvVGV4dEl0ZXJhdG9yLmg+CisjaW1wb3J0IDxwYWwvc3BpL2NvY29hL0xhdW5jaFNlcnZpY2Vz
U1BJLmg+CiAKICNpZiBQTEFURk9STShDT0NPQSkKIApAQCAtMjg0LDYgKzI4NSwxMSBAQCBSZXRh
aW5QdHI8Q0ZEYXRhUmVmPiBXZWJQYWdlOjpwZGZTbmFwc2hvCiAgICAgcmV0dXJuIGRhdGE7CiB9
CiAKK3ZvaWQgV2ViUGFnZTo6Z2V0UHJvY2Vzc0Rpc3BsYXlOYW1lKENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoU3RyaW5nJiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGNvbXBsZXRpb25I
YW5kbGVyKGFkb3B0Q0YoKENGU3RyaW5nUmVmKV9MU0NvcHlBcHBsaWNhdGlvbkluZm9ybWF0aW9u
SXRlbShrTFNDdXJyZW50U2Vzc2lvbklELCBfTFNHZXRDdXJyZW50QXBwbGljYXRpb25BU04oKSwg
X2tMU0Rpc3BsYXlOYW1lS2V5KSkuZ2V0KCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
IAogI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCShyZXZpc2lvbiAyNTYyMTIpCisr
KyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC02NDYsMTQgKzY0NiwyMCBAQCBzdGF0aWMgUmV0YWluUHRyPE5TQXJyYXk8
TlNTdHJpbmcgKj4+IGFjCiB9CiAjZW5kaWYKIAotdm9pZCBXZWJQcm9jZXNzOjp1cGRhdGVBY3Rp
dmVQYWdlcygpCit2b2lkIFdlYlByb2Nlc3M6OnVwZGF0ZUFjdGl2ZVBhZ2VzKGNvbnN0IFN0cmlu
ZyYgb3ZlcnJpZGVEaXNwbGF5TmFtZSkKIHsKICNpZiBQTEFURk9STShNQUMpCi0gICAgYXV0byBh
Y3RpdmVPcmlnaW5zID0gYWN0aXZlUGFnZXNPcmlnaW5zKG1fcGFnZU1hcCk7CisgICAgaWYgKCFv
dmVycmlkZURpc3BsYXlOYW1lKSB7CisgICAgICAgIGF1dG8gYWN0aXZlT3JpZ2lucyA9IGFjdGl2
ZVBhZ2VzT3JpZ2lucyhtX3BhZ2VNYXApOwogCi0gICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hf
Z2V0X2dsb2JhbF9xdWV1ZShESVNQQVRDSF9RVUVVRV9QUklPUklUWV9ERUZBVUxULCAwKSwgW2Fj
dGl2ZU9yaWdpbnMgPSBXVEZNb3ZlKGFjdGl2ZU9yaWdpbnMpXSB7Ci0gICAgICAgIF9MU1NldEFw
cGxpY2F0aW9uSW5mb3JtYXRpb25JdGVtKGtMU0RlZmF1bHRTZXNzaW9uSUQsIF9MU0dldEN1cnJl
bnRBcHBsaWNhdGlvbkFTTigpLCBDRlNUUigiTFNBY3RpdmVQYWdlVXNlclZpc2libGVPcmlnaW5z
S2V5IiksIChfX2JyaWRnZSBDRkFycmF5UmVmKWFjdGl2ZU9yaWdpbnMuZ2V0KCksIG51bGxwdHIp
OwotICAgIH0pOworICAgICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfZ2xvYmFsX3F1
ZXVlKERJU1BBVENIX1FVRVVFX1BSSU9SSVRZX0RFRkFVTFQsIDApLCBbYWN0aXZlT3JpZ2lucyA9
IFdURk1vdmUoYWN0aXZlT3JpZ2lucyldIHsKKyAgICAgICAgICAgIF9MU1NldEFwcGxpY2F0aW9u
SW5mb3JtYXRpb25JdGVtKGtMU0RlZmF1bHRTZXNzaW9uSUQsIF9MU0dldEN1cnJlbnRBcHBsaWNh
dGlvbkFTTigpLCBDRlNUUigiTFNBY3RpdmVQYWdlVXNlclZpc2libGVPcmlnaW5zS2V5IiksIChf
X2JyaWRnZSBDRkFycmF5UmVmKWFjdGl2ZU9yaWdpbnMuZ2V0KCksIG51bGxwdHIpOworICAgICAg
ICB9KTsKKyAgICB9IGVsc2UgeworICAgICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRf
Z2xvYmFsX3F1ZXVlKERJU1BBVENIX1FVRVVFX1BSSU9SSVRZX0RFRkFVTFQsIDApLCBeeworICAg
ICAgICAgICAgX0xTU2V0QXBwbGljYXRpb25JbmZvcm1hdGlvbkl0ZW0oa0xTRGVmYXVsdFNlc3Np
b25JRCwgX0xTR2V0Q3VycmVudEFwcGxpY2F0aW9uQVNOKCksIF9rTFNEaXNwbGF5TmFtZUtleSwg
b3ZlcnJpZGVEaXNwbGF5TmFtZS5jcmVhdGVDRlN0cmluZygpLmdldCgpLCBudWxscHRyKTsKKyAg
ICAgICAgfSk7CisgICAgfQogI2VuZGlmCiB9CiAKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1NjIxMikKKysrIFRvb2xzL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDIwLTAyLTEwICBFbGxp
ZSBFcHNrYW1wLUh1bnQgIDxlZXBza2FtcGh1bnRAYXBwbGUuY29tPgorCisgICAgICAgIFByb3Zp
ZGUgYWx0ZXJuYXRlIHdheSB0byBuYW1lIFdlYiBDb250ZW50IHByb2Nlc3MKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTIyNAorICAgICAgICByZGFy
Oi8vNTcwMzgwODQKKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9EaXNwbGF5
TmFtZS5tbTogQWRkZWQuCisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKwogMjAyMC0w
Mi0xMCAgQWFrYXNoIEphaW4gIDxhYWthc2hfamFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgW2V3
c10gRGlzcGxheSBmbGFreSBsYXlvdXQgdGVzdCBuYW1lcyBpbiBidWlsZCBzdW1tYXJ5CkluZGV4
OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjU2MjEyKQorKysgVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcg
Y29weSkKQEAgLTQ2NSw2ICs0NjUsNyBAQAogCQk3MjVDM0VGMzIyMDU4QTVCMDA3QzM2RkMgLyog
QWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MjVDM0VGMjIyMDU4NEJBMDA3QzM2RkMg
LyogQWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMuaHRtbCAqLzsgfTsKIAkJNzI4M0E5RDAy
MkZBNzU0OTAwQjIxQzdEIC8qIGltZy13aXRoLXJvdGF0ZWQtaW1hZ2UuaHRtbCBpbiBDb3B5IFJl
c291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MjgzQTlDRTIyRkE2
QkJFMDBCMjFDN0QgLyogaW1nLXdpdGgtcm90YXRlZC1pbWFnZS5odG1sICovOyB9OwogCQk3Mjgz
QTlEMjIyRkIxRTA2MDBCMjFDN0QgLyogZXhpZi1vcmllbnRhdGlvbi04LWxsby5qcGcgaW4gQ29w
eSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzI4M0E5RDEy
MkZCMUQ5NzAwQjIxQzdEIC8qIGV4aWYtb3JpZW50YXRpb24tOC1sbG8uanBnICovOyB9OworCQk3
M0JENzMxODIzQTg0NjUwMDAyMEY0NTAgLyogRGlzcGxheU5hbWUubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3M0JENzMxNzIzQTg0NjUwMDAyMEY0NTAg
LyogRGlzcGxheU5hbWUubW0gKi87IH07CiAJCTc1MUIwNUQ2MUY4RUFDNDEwMDI4QTA5RSAvKiBE
YXRhYmFzZVRyYWNrZXJUZXN0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNzUxQjA1RDUxRjhFQUMxQTAwMjhBMDlFIC8qIERhdGFiYXNlVHJhY2tlclRl
c3QubW0gKi87IH07CiAJCTc1NENFQzgxMUY2NzIyRjIwMEQwMDM5QSAvKiBBdXRvRmlsbEF2YWls
YWJsZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1
NENFQzgwMUY2NzIyREMwMEQwMDM5QSAvKiBBdXRvRmlsbEF2YWlsYWJsZS5tbSAqLzsgfTsKIAkJ
NzY3MzQ5OUQxOTMwQzVCQjAwRTQ0REY5IC8qIFN0b3BMb2FkaW5nRHVyaW5nRGlkRmFpbFByb3Zp
c2lvbmFsTG9hZF9idW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNzY3MzQ5OUExOTMwMTgyRTAwRTQ0REY5IC8qIFN0b3BMb2FkaW5nRHVyaW5n
RGlkRmFpbFByb3Zpc2lvbmFsTG9hZF9idW5kbGUuY3BwICovOyB9OwpAQCAtMjA4MCw2ICsyMDgx
LDcgQEAKIAkJNzI1QzNFRjIyMjA1ODRCQTAwN0MzNkZDIC8qIEFkZGl0aW9uYWxTdXBwb3J0ZWRJ
bWFnZVR5cGVzLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBBZGRpdGlvbmFsU3Vw
cG9ydGVkSW1hZ2VUeXBlcy5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Mjgz
QTlDRTIyRkE2QkJFMDBCMjFDN0QgLyogaW1nLXdpdGgtcm90YXRlZC1pbWFnZS5odG1sICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dC5odG1sOyBwYXRoID0gImltZy13aXRoLXJvdGF0ZWQtaW1hZ2UuaHRtbCI7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyODNBOUQxMjJGQjFEOTcwMEIyMUM3RCAvKiBl
eGlmLW9yaWVudGF0aW9uLTgtbGxvLmpwZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IGltYWdlLmpwZWc7IHBhdGggPSAiZXhpZi1vcmllbnRhdGlvbi04
LWxsby5qcGciOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3M0JENzMxNzIzQTg0NjUw
MDAyMEY0NTAgLyogRGlzcGxheU5hbWUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBEaXNwbGF5TmFtZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NzUxQjA1RDUxRjhFQUMxQTAwMjhBMDlFIC8qIERhdGFiYXNlVHJhY2tlclRlc3QubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBEYXRhYmFzZVRyYWNrZXJUZXN0Lm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3NTRDRUM4MDFGNjcyMkRDMDBEMDAzOUEgLyogQXV0b0ZpbGxBdmFpbGFi
bGUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBdXRvRmlsbEF2YWlsYWJsZS5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzVGMzEzM0YxOEMxNzFCNzAwNDFDQUVDIC8qIEVwaGVt
ZXJhbFNlc3Npb25QdXNoU3RhdGVOb0hpc3RvcnlDYWxsYmFjay5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFcGhlbWVyYWxTZXNzaW9uUHVzaFN0YXRlTm9IaXN0b3J5
Q2FsbGJhY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjk0Niw2ICsyOTQ4
LDcgQEAKIAkJCQkyRDJEMTNCMjIyOUY0MDhCMDA1MDY4QUYgLyogRGV2aWNlTWFuYWdlbWVudFJl
c3RyaWN0aW9ucy5tbSAqLywKIAkJCQk0NjkxOEVGQjIyMzcyODM1MDA0NjhERkUgLyogRGV2aWNl
T3JpZW50YXRpb24ubW0gKi8sCiAJCQkJQ0VBN0Y1N0IyMDg5NUY1QjAwNzhFRjZFIC8qIERpZFJl
c2lnbklucHV0RWxlbWVudFN0cm9uZ1Bhc3N3b3JkQXBwZWFyYW5jZS5tbSAqLywKKwkJCQk3M0JE
NzMxNzIzQTg0NjUwMDAyMEY0NTAgLyogRGlzcGxheU5hbWUubW0gKi8sCiAJCQkJNTE4RUU1MUEy
MEE3OENGQjAwRTAyNEYzIC8qIERvQWZ0ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRlQWZ0ZXJDcmFz
aC5tbSAqLywKIAkJCQkyRDdGRDE5MjIyNDE5MDg3MDA3ODg3RjEgLyogRG9jdW1lbnRFZGl0aW5n
Q29udGV4dC5tbSAqLywKIAkJCQk1MThFRTUxNjIwQTc4Q0RGMDBFMDI0RjMgLyogRG91YmxlRGVm
ZXJzTG9hZGluZy5tbSAqLywKQEAgLTQ3MTEsNiArNDcxNCw3IEBACiAJCQkJN0NDRTdFRTkxQTQx
MUFFNjAwNDQ3QzRDIC8qIERpZEFzc29jaWF0ZUZvcm1Db250cm9scy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk3Q0NFN0VFQTFBNDExQUU2MDA0NDdDNEMgLyogRGlkTm90SGFuZGxlS2V5RG93bi5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlBRDU3QUMyMTFEQTc0NjVCMDBGRjFCREUgLyogRGlkUmVt
b3ZlRnJhbWVGcm9tSGllYXJjaHlJblBhZ2VDYWNoZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3
M0JENzMxODIzQTg0NjUwMDAyMEY0NTAgLyogRGlzcGxheU5hbWUubW0gaW4gU291cmNlcyAqLywK
IAkJCQk1MThFRTUxQjIwQTc4RDAwMDBFMDI0RjMgLyogRG9BZnRlck5leHRQcmVzZW50YXRpb25V
cGRhdGVBZnRlckNyYXNoLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ3RkQxOTMyMjQxOTA4NzAw
Nzg4N0YxIC8qIERvY3VtZW50RWRpdGluZ0NvbnRleHQubW0gaW4gU291cmNlcyAqLywKIAkJCQk3
Q0NFN0VFQjFBNDExQUU2MDA0NDdDNEMgLyogRG9jdW1lbnRTdGFydFVzZXJTY3JpcHRBbGVydENy
YXNoLmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9EaXNwbGF5TmFtZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL0Rpc3BsYXlOYW1lLm1tCShub25leGlzdGVudCkKKysrIFRv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRGlzcGxheU5hbWUubW0JKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5o
IgorCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9ydCAiVENQU2VydmVyLmgi
CisjaW1wb3J0ICJUZXN0LmgiCisjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCisjaW1wb3J0IDxX
ZWJLaXQvV0tQcm9jZXNzUG9vbFByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdD
b25maWd1cmF0aW9uUHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGUu
aD4KKyNpbXBvcnQgPFdlYktpdC9XS1dlYnNpdGVEYXRhUmVjb3JkUHJpdmF0ZS5oPgorI2ltcG9y
dCA8V2ViS2l0L1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9X
ZWJLaXQuaD4KKyNpbXBvcnQgPFdlYktpdC9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlv
bi5oPgorI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBUZXN0V2Vi
S2l0QVBJIHsKKworVEVTVChXZWJLaXQsIEN1c3RvbURpc3BsYXlOYW1lKQoreworICAgIFdLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24gKmNvbmZpZ3VyYXRpb24gPSBbW1dLV2ViVmlld0NvbmZpZ3VyYXRp
b24gbmV3XSBhdXRvcmVsZWFzZV07CisgICAgTlNTdHJpbmcgKmRpc3BsYXlOYW1lVG9TZXQgPSBA
InRlc3QgZGlzcGxheSBuYW1lIjsKKyAgICBjb25maWd1cmF0aW9uLl9wcm9jZXNzRGlzcGxheU5h
bWUgPSBkaXNwbGF5TmFtZVRvU2V0OworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0
V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDAp
IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3Vz
bHlMb2FkSFRNTFN0cmluZzpAInN0YXJ0IHdlYiBwcm9jZXNzIl07CisKKyAgICBfX2Jsb2NrIGJv
b2wgZG9uZSA9IGZhbHNlOworCisgICAgW3dlYlZpZXcgX2dldFByb2Nlc3NEaXNwbGF5TmFtZVdp
dGhDb21wbGV0aW9uSGFuZGxlcjpeKE5TU3RyaW5nICpuYW1lKSB7CisgICAgICAgIEVYUEVDVF9X
S19TVFJFUShuYW1lLCBkaXNwbGF5TmFtZVRvU2V0KTsKKyAgICAgICAgZG9uZSA9IHRydWU7Cisg
ICAgfV07CisKKyAgICBVdGlsOjpydW4oJmRvbmUpOworfQorCitURVNUKFdlYktpdCwgRGVmYXVs
dERpc3BsYXlOYW1lKQoreworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJW
aWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApXSk7Cisg
ICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAic3RhcnQgd2ViIHByb2Nl
c3MiXTsKKworICAgIF9fYmxvY2sgYm9vbCBkb25lID0gZmFsc2U7CisgICAgW3dlYlZpZXcgX2dl
dFByb2Nlc3NEaXNwbGF5TmFtZVdpdGhDb21wbGV0aW9uSGFuZGxlcjpeKE5TU3RyaW5nICpuYW1l
KSB7CisgICAgICAgIEVYUEVDVF9XS19TVFJFUShuYW1lLCBAIlRlc3RXZWJLaXRBUEkgV2ViIENv
bnRlbnQiKTsKKyAgICAgICAgZG9uZSA9IHRydWU7CisgICAgfV07CisKKyAgICBVdGlsOjpydW4o
JmRvbmUpOworfQorCit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390321</attachid>
            <date>2020-02-10 17:11:50 -0800</date>
            <delta_ts>2020-02-10 17:48:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205224-20200210171149.patch</filename>
            <type>text/plain</type>
            <size>25910</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTYyMjkpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUyIEBACisyMDIwLTAyLTEwICBFbGxpZSBFcHNr
YW1wLUh1bnQgIDxlZXBza2FtcGh1bnRAYXBwbGUuY29tPgorCisgICAgICAgIFByb3ZpZGUgYWx0
ZXJuYXRlIHdheSB0byBuYW1lIFdlYiBDb250ZW50IHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTIyNAorICAgICAgICByZGFyOi8vNTcw
MzgwODQKKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAg
IFRlc3Q6IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRGlzcGxheU5hbWUubW0KKwor
ICAgICAgICBBZGQgdGhlIGFiaWxpdHkgdG8gc2V0IF9wcm9jZXNzRGlzcGxheU5hbWUgb24gV0tX
ZWJWaWV3Q29uZmlndXJhdGlvbiB0byBhbGxvdyB0aGUgbmFtZSBvZiB0aGUgd2ViCisgICAgICAg
IGNvbnRlbnQgcHJvY2VzcyB0aGF0IGFwcGVhcnMgaW4gQWN0aXZpdHkgTW9uaXRvciB0byBiZSBz
ZXQgdG8gYSBjdXN0b20gc3RyaW5nLgorCisgICAgICAgICogU2hhcmVkL1dlYlBhZ2VDcmVhdGlv
blBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0
ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0
ZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5jcHA6
CisgICAgICAgIChBUEk6OlBhZ2VDb25maWd1cmF0aW9uOjpjb3B5IGNvbnN0KToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmg6CisgICAgICAgIChBUEk6OlBh
Z2VDb25maWd1cmF0aW9uOjpsc0Rpc3BsYXlOYW1lIGNvbnN0KToKKyAgICAgICAgKEFQSTo6UGFn
ZUNvbmZpZ3VyYXRpb246OnNldGxzRGlzcGxheU5hbWUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2dldERpc3BsYXlO
YW1lV2l0aENvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3Q29uZmln
dXJhdGlvbiBfbHNEaXNwbGF5TmFtZV0pOgorICAgICAgICAoLVtXS1dlYlZpZXdDb25maWd1cmF0
aW9uIF9zZXRsc0Rpc3BsYXlOYW1lOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpjcmVhdGlvblBhcmFtZXRl
cnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmdldERpc3BsYXlOYW1lKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL0NvY29hL1dlYlBhZ2VDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
Z2V0RGlzcGxheU5hbWUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6bV9sc0Rpc3BsYXlOYW1lKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6Y2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRDb21taXRMb2Fk
KToKKyAgICAgICAgKFdlYktpdDo6bV9vdmVycmlkZGVuTWVkaWFUeXBlKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnVwZGF0ZUFjdGl2ZVBh
Z2VzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2Nv
YS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnVwZGF0
ZUFjdGl2ZVBhZ2VzKToKKwogMjAyMC0wMi0xMCAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBh
cHBsZS5jb20+CiAKICAgICAgICAgW3dhdGNoT1NdIE5vdGlmaWNhdGlvbiBsaXN0ZW5lciBpcyBu
ZXZlciB1bnJlZ2lzdGVyZWQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCShyZXZpc2lvbiAyNTYyMjkpCisrKyBTb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTM4LDYgKzEzOCw3IEBAIHZvaWQgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZW5j
b2RlKEkKICAgICBlbmNvZGVyIDw8IG9sZFBhZ2VJRDsKICAgICBlbmNvZGVyIDw8IG92ZXJyaWRk
ZW5NZWRpYVR5cGU7CiAgICAgZW5jb2RlciA8PCBjb3JzRGlzYWJsaW5nUGF0dGVybnM7CisgICAg
ZW5jb2RlciA8PCBwcm9jZXNzRGlzcGxheU5hbWU7CiAKICAgICBlbmNvZGVyIDw8IHNob3VsZENh
cHR1cmVBdWRpb0luVUlQcm9jZXNzOwogICAgIGVuY29kZXIgPDwgc2hvdWxkQ2FwdHVyZUF1ZGlv
SW5HUFVQcm9jZXNzOwpAQCAtNDQxLDYgKzQ0MiwxMiBAQCBPcHRpb25hbDxXZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzPiBXZWJQCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAgICAgcGFy
YW1ldGVycy5jb3JzRGlzYWJsaW5nUGF0dGVybnMgPSBXVEZNb3ZlKCpjb3JzRGlzYWJsaW5nUGF0
dGVybnMpOwogCisgICAgT3B0aW9uYWw8U3RyaW5nPiBwcm9jZXNzRGlzcGxheU5hbWU7CisgICAg
ZGVjb2RlciA+PiBwcm9jZXNzRGlzcGxheU5hbWU7CisgICAgaWYgKCFwcm9jZXNzRGlzcGxheU5h
bWUpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgcGFyYW1ldGVycy5wcm9jZXNz
RGlzcGxheU5hbWUgPSBXVEZNb3ZlKCpwcm9jZXNzRGlzcGxheU5hbWUpOworICAgIAogICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5zaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2Vz
cykpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKQEAgLTQ2MSw2ICs0NjgsOSBAQCBP
cHRpb25hbDxXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzPiBXZWJQCiAgICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7CiAjZW5kaWYKIAorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVy
cy5wcm9jZXNzRGlzcGxheU5hbWUpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCiAg
ICAgcmV0dXJuIHBhcmFtZXRlcnM7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgJKHJldmlzaW9uIDI1NjIyOSkKKysrIFNv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAkod29ya2luZyBj
b3B5KQpAQCAtMjA5LDYgKzIwOSw3IEBAIHN0cnVjdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJz
IHsKIAogICAgIFN0cmluZyBvdmVycmlkZGVuTWVkaWFUeXBlOwogICAgIFZlY3RvcjxTdHJpbmc+
IGNvcnNEaXNhYmxpbmdQYXR0ZXJuczsKKyAgICBTdHJpbmcgcHJvY2Vzc0Rpc3BsYXlOYW1lOwog
CiAgICAgYm9vbCBzaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzcyB7IGZhbHNlIH07CiAgICAg
Ym9vbCBzaG91bGRDYXB0dXJlQXVkaW9JbkdQVVByb2Nlc3MgeyBmYWxzZSB9OwpJbmRleDogU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCShyZXZpc2lvbiAyNTYyMjkpCisr
KyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC03NTQ0LDYgKzc1NDQsOCBAQCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzIFdlYlBhZ2VQ
cm94eTo6CiB7CiAgICAgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyBwYXJhbWV0ZXJzOwogCisg
ICAgcGFyYW1ldGVycy5wcm9jZXNzRGlzcGxheU5hbWUgPSBjb25maWd1cmF0aW9uKCkucHJvY2Vz
c0Rpc3BsYXlOYW1lKCk7CisKICAgICBwYXJhbWV0ZXJzLnZpZXdTaXplID0gcGFnZUNsaWVudCgp
LnZpZXdTaXplKCk7CiAgICAgcGFyYW1ldGVycy5hY3Rpdml0eVN0YXRlID0gbV9hY3Rpdml0eVN0
YXRlOwogICAgIHBhcmFtZXRlcnMuZHJhd2luZ0FyZWFUeXBlID0gZHJhd2luZ0FyZWEudHlwZSgp
OwpAQCAtOTg0OCw2ICs5ODUwLDExIEBAIGJvb2wgV2ViUGFnZVByb3h5OjpzaG91bGRVc2VGb3Jl
Z3JvdW5kUHIKIH0KICNlbmRpZgogCit2b2lkIFdlYlBhZ2VQcm94eTo6Z2V0UHJvY2Vzc0Rpc3Bs
YXlOYW1lKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nJiYpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQoreworICAgIG1fcHJvY2Vzcy0+Y29ubmVjdGlvbigpLT5zZW5kV2l0aEFzeW5jUmVwbHko
TWVzc2FnZXM6OldlYlBhZ2U6OkdldFByb2Nlc3NEaXNwbGF5TmFtZSgpLCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSwgbV93ZWJQYWdlSUQpOworfQorCiB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0
T3JpZW50YXRpb25Gb3JNZWRpYUNhcHR1cmUodWludDY0X3Qgb3JpZW50YXRpb24pCiB7CiAjaWYg
UExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAkocmV2aXNpb24gMjU2MjI5KQorKysgU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTE2NzQsNiAr
MTY3NCw4IEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJpbmcmIG92ZXJyaWRkZW5NZWRpYVR5cGUo
KSBjb25zdCB7IHJldHVybiBtX292ZXJyaWRkZW5NZWRpYVR5cGU7IH0KICAgICB2b2lkIHNldE92
ZXJyaWRkZW5NZWRpYVR5cGUoY29uc3QgU3RyaW5nJik7CiAKKyAgICB2b2lkIGdldFByb2Nlc3NE
aXNwbGF5TmFtZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyYmKT4mJik7CisKICAgICB2
b2lkIHNldE9yaWVudGF0aW9uRm9yTWVkaWFDYXB0dXJlKHVpbnQ2NF90KTsKIAogICAgIGJvb2wg
aXNIYW5kbGluZ1ByZXZlbnRhYmxlVG91Y2hTdGFydCgpIGNvbnN0IHsgcmV0dXJuIG1faGFuZGxp
bmdQcmV2ZW50YWJsZVRvdWNoU3RhcnRDb3VudDsgfQpJbmRleDogU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uY3BwCShyZXZpc2lvbiAy
NTYyMjkpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRp
b24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05Miw2ICs5Miw4IEBAIFJlZjxQYWdlQ29uZmlndXJh
dGlvbj4gUGFnZUNvbmZpZ3VyYXRpb24KICAgICBjb3B5LT5tX2NvcnNEaXNhYmxpbmdQYXR0ZXJu
cyA9IHRoaXMtPm1fY29yc0Rpc2FibGluZ1BhdHRlcm5zOwogICAgIGNvcHktPm1fd2ViVmlld0Nh
dGVnb3J5ID0gdGhpcy0+bV93ZWJWaWV3Q2F0ZWdvcnk7CiAKKyAgICBjb3B5LT5tX3Byb2Nlc3NE
aXNwbGF5TmFtZSA9IHRoaXMtPm1fcHJvY2Vzc0Rpc3BsYXlOYW1lOworCiAgICAgcmV0dXJuIGNv
cHk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmln
dXJhdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQ
YWdlQ29uZmlndXJhdGlvbi5oCShyZXZpc2lvbiAyNTYyMjkpCisrKyBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMTM4
LDYgKzEzOCw5IEBAIHB1YmxpYzoKICAgICBjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+JiBjb3Jz
RGlzYWJsaW5nUGF0dGVybnMoKSBjb25zdCB7IHJldHVybiBtX2NvcnNEaXNhYmxpbmdQYXR0ZXJu
czsgfQogICAgIHZvaWQgc2V0Q09SU0Rpc2FibGluZ1BhdHRlcm5zKFZlY3RvcjxXVEY6OlN0cmlu
Zz4mJiBwYXR0ZXJucykgeyBtX2NvcnNEaXNhYmxpbmdQYXR0ZXJucyA9IFdURk1vdmUocGF0dGVy
bnMpOyB9CiAKKyAgICBjb25zdCBXVEY6OlN0cmluZyYgcHJvY2Vzc0Rpc3BsYXlOYW1lKCkgY29u
c3QgeyByZXR1cm4gbV9wcm9jZXNzRGlzcGxheU5hbWU7IH0KKyAgICB2b2lkIHNldFByb2Nlc3NE
aXNwbGF5TmFtZShjb25zdCBXVEY6OlN0cmluZyYgbmFtZSkgeyBtX3Byb2Nlc3NEaXNwbGF5TmFt
ZSA9IG5hbWU7IH0KKwogICAgIFdlYktpdDo6V2ViVmlld0NhdGVnb3J5IHdlYlZpZXdDYXRlZ29y
eSgpIGNvbnN0IHsgcmV0dXJuIG1fd2ViVmlld0NhdGVnb3J5OyB9CiAgICAgdm9pZCBzZXRXZWJW
aWV3Q2F0ZWdvcnkoV2ViS2l0OjpXZWJWaWV3Q2F0ZWdvcnkgY2F0ZWdvcnkpIHsgbV93ZWJWaWV3
Q2F0ZWdvcnkgPSBjYXRlZ29yeTsgfQogCkBAIC0xNzgsNiArMTgxLDcgQEAgcHJpdmF0ZToKIAog
ICAgIEhhc2hNYXA8V1RGOjpTdHJpbmcsIFJlZjxXZWJLaXQ6OldlYlVSTFNjaGVtZUhhbmRsZXI+
PiBtX3VybFNjaGVtZUhhbmRsZXJzOwogICAgIFZlY3RvcjxXVEY6OlN0cmluZz4gbV9jb3JzRGlz
YWJsaW5nUGF0dGVybnM7CisgICAgV1RGOjpTdHJpbmcgbV9wcm9jZXNzRGlzcGxheU5hbWU7CiAg
ICAgV2ViS2l0OjpXZWJWaWV3Q2F0ZWdvcnkgbV93ZWJWaWV3Q2F0ZWdvcnkgeyBXZWJLaXQ6Oldl
YlZpZXdDYXRlZ29yeTo6QXBwQm91bmREb21haW4gfTsKIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQkocmV2aXNpb24gMjU2MjI5
KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQkod29y
a2luZyBjb3B5KQpAQCAtMjcyNSw2ICsyNzI1LDEzIEBAIC0gKHZvaWQpX3NldFZpZXdTY2FsZToo
Q0dGbG9hdCl2aWV3U2NhbGUKICNlbmRpZgogfQogCistICh2b2lkKV9nZXRQcm9jZXNzRGlzcGxh
eU5hbWVXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nICopKWNvbXBsZXRp
b25IYW5kbGVyCit7CisgICAgX3BhZ2UtPmdldFByb2Nlc3NEaXNwbGF5TmFtZShbaGFuZGxlciA9
IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcildKGF1dG8mJiBuYW1lKSB7CisgICAgICAg
IGhhbmRsZXIobmFtZSk7CisgICAgfSk7Cit9CisKIC0gKHZvaWQpX3NldE1pbmltdW1FZmZlY3Rp
dmVEZXZpY2VXaWR0aDooQ0dGbG9hdCltaW5pbXVtRWZmZWN0aXZlRGV2aWNlV2lkdGgKIHsKICNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0JKHJldmlz
aW9uIDI1NjIyOSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXdDb25maWd1cmF0aW9uLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMjAwLDYgKzEyMDAsMTYgQEAg
LSAodm9pZClfc2V0V2ViVmlld0NhdGVnb3J5OihfV0tXZWJWaWV3QwogICAgIF9wYWdlQ29uZmln
dXJhdGlvbi0+c2V0V2ViVmlld0NhdGVnb3J5KHRvV2ViS2l0V2ViVmlld0NhdGVnb3J5KGNhdGVn
b3J5KSk7CiB9CiAKKy0gKE5TU3RyaW5nICopX3Byb2Nlc3NEaXNwbGF5TmFtZQoreworICAgIHJl
dHVybiBfcGFnZUNvbmZpZ3VyYXRpb24tPnByb2Nlc3NEaXNwbGF5TmFtZSgpOworfQorCistICh2
b2lkKV9zZXRQcm9jZXNzRGlzcGxheU5hbWU6KE5TU3RyaW5nICopbHNEaXNwbGF5TmFtZQorewor
ICAgIF9wYWdlQ29uZmlndXJhdGlvbi0+c2V0UHJvY2Vzc0Rpc3BsYXlOYW1lKGxzRGlzcGxheU5h
bWUpOworfQorCiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXS1dlYlZpZXdDb25maWd1cmF0aW9u
IChXS0RlcHJlY2F0ZWQpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaAko
cmV2aXNpb24gMjU2MjI5KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEyMiw0ICsx
MjIsNiBAQCB0eXBlZGVmIE5TX0VOVU0oTlNVSW50ZWdlciwgX1dLV2ViVmlld0NhCiBAcHJvcGVy
dHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRVbmRvTWFuYWdlckFQSUVuYWJsZWQ6KSBCT09MIF91
bmRvTWFuYWdlckFQSUVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNSksIGlvcygx
My4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRXZWJWaWV3Q2F0ZWdvcnk6
KSBfV0tXZWJWaWV3Q2F0ZWdvcnkgX3dlYlZpZXdDYXRlZ29yeSBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCitAcHJvcGVydHkgKG5vbmF0b21p
Yywgc2V0dGVyPV9zZXRQcm9jZXNzRGlzcGxheU5hbWU6KSBOU1N0cmluZyAqX3Byb2Nlc3NEaXNw
bGF5TmFtZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpOworCiBAZW5kCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3UHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgJKHJldmlzaW9uIDI1NjIyOSkKKysrIFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTMyNiw2ICszMjYsOSBAQCBmb3IgdGhpcyBwcm9wZXJ0eS4KIC0gKHZvaWQpX2ZvY3Vz
VGV4dElucHV0Q29udGV4dDooX1dLVGV4dElucHV0Q29udGV4dCAqKXRleHRJbnB1dEVsZW1lbnQg
Y29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikoQk9PTCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xNSksIGlvcygxMy4wKSk7CiAKIC0gKHZvaWQpX3Rha2VQREZT
bmFwc2hvdFdpdGhDb25maWd1cmF0aW9uOihXS1NuYXBzaG90Q29uZmlndXJhdGlvbiAqKXNuYXBz
aG90Q29uZmlndXJhdGlvbiBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNEYXRhICpwZGZT
bmFwc2hvdERhdGEsIE5TRXJyb3IgKmVycm9yKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZB
SUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworCistICh2b2lkKV9n
ZXRQcm9jZXNzRGlzcGxheU5hbWVXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3Ry
aW5nICopKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7CisKIEBlbmQKIAogI2lmIFRBUkdFVF9PU19JUEhPTkUKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAJKHJldmlzaW9uIDI1NjIy
OSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTQzNSw3ICsxNDM1LDcgQEAgdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRp
YWxpemVQcm9jZQogewogfQogCi12b2lkIFdlYlByb2Nlc3M6OnVwZGF0ZUFjdGl2ZVBhZ2VzKCkK
K3ZvaWQgV2ViUHJvY2Vzczo6dXBkYXRlQWN0aXZlUGFnZXMoY29uc3QgU3RyaW5nJiBvdmVycmlk
ZURpc3BsYXlOYW1lKQogewogfQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmgJKHJldmlzaW9uIDI1NjIyOSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI1MSw3ICsyNTEsNyBAQCBwdWJsaWM6CiAKICAg
ICBjb25zdCBTdHJpbmcmIHVpUHJvY2Vzc0J1bmRsZUlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVy
biBtX3VpUHJvY2Vzc0J1bmRsZUlkZW50aWZpZXI7IH0KIAotICAgIHZvaWQgdXBkYXRlQWN0aXZl
UGFnZXMoKTsKKyAgICB2b2lkIHVwZGF0ZUFjdGl2ZVBhZ2VzKGNvbnN0IFN0cmluZyYgb3ZlcnJp
ZGVEaXNwbGF5TmFtZSk7CiAgICAgdm9pZCBnZXRBY3RpdmVQYWdlc09yaWdpbnNGb3JUZXN0aW5n
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFN0cmluZz4mJik+JiYpOwogICAgIHZvaWQg
cGFnZUFjdGl2aXR5U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIE9wdGlv
blNldDxXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpGbGFnPiBjaGFuZ2VkKTsKIApJbmRleDogU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4JKHJldmlz
aW9uIDI1NjIyOSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3Nh
Z2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0xMTIsNyArMTEyLDcgQEAgbWVzc2FnZXMgLT4gV2Vi
UHJvY2VzcyBMZWdhY3lSZWNlaXZlciBObwogICAgIFNldEhhc1N1c3BlbmRlZFBhZ2VQcm94eShi
b29sIGhhc1N1c3BlbmRlZFBhZ2VQcm94eSk7CiAgICAgU2V0SXNJblByb2Nlc3NDYWNoZShib29s
IGlzSW5Qcm9jZXNzQ2FjaGUpCiAgICAgTWFya0lzTm9Mb25nZXJQcmV3YXJtZWQoKQotICAgIFVw
ZGF0ZUFjdGl2ZVBhZ2VzKCkKKyAgICBVcGRhdGVBY3RpdmVQYWdlcyhTdHJpbmcgb3ZlcnJpZGVE
aXNwbGF5TmFtZSkKICAgICBHZXRBY3RpdmVQYWdlc09yaWdpbnNGb3JUZXN0aW5nKCkgLT4gKFZl
Y3RvcjxTdHJpbmc+IGFjdGl2ZU9yaWdpbnMpIEFzeW5jCiAKICNpZiBQTEFURk9STShNQUMpCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkocmV2
aXNpb24gMjU2MjI5KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ1MCw2ICs0NTAsNyBAQCBXZWJQYWdlOjpXZWJQYWdl
KFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgCiAgICAgLCBtX3RleHRBdXRvU2l6aW5nQWRqdXN0bWVu
dFRpbWVyKCp0aGlzLCAmV2ViUGFnZTo6dGV4dEF1dG9TaXppbmdBZGp1c3RtZW50VGltZXJGaXJl
ZCkKICNlbmRpZgogICAgICwgbV9vdmVycmlkZGVuTWVkaWFUeXBlKHBhcmFtZXRlcnMub3ZlcnJp
ZGRlbk1lZGlhVHlwZSkKKyAgICAsIG1fcHJvY2Vzc0Rpc3BsYXlOYW1lKHBhcmFtZXRlcnMucHJv
Y2Vzc0Rpc3BsYXlOYW1lKQogewogICAgIEFTU0VSVChtX2lkZW50aWZpZXIpOwogCkBAIC0xNDk3
LDcgKzE0OTgsNyBAQCB2b2lkIFdlYlBhZ2U6OmNsb3NlKCkKICAgICAvLyBUaGUgV2ViUGFnZSBj
YW4gYmUgZGVzdHJveWVkIGJ5IHRoaXMgY2FsbC4KICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5yZW1vdmVXZWJQYWdlKG1faWRlbnRpZmllcik7CiAKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS51cGRhdGVBY3RpdmVQYWdlcygpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnVw
ZGF0ZUFjdGl2ZVBhZ2VzKG1fcHJvY2Vzc0Rpc3BsYXlOYW1lKTsKIAogICAgIGlmIChpc1J1bm5p
bmdNb2RhbCkKICAgICAgICAgUnVuTG9vcDo6bWFpbigpLnN0b3AoKTsKQEAgLTU4ODgsNyArNTg4
OSw3IEBAIHZvaWQgV2ViUGFnZTo6ZGlkQ29tbWl0TG9hZChXZWJGcmFtZSogZnIKICAgICBtX2xv
YWRDb21taXRUaW1lID0gV2FsbFRpbWU6Om5vdygpOwogI2VuZGlmCiAKLSAgICBXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS51cGRhdGVBY3RpdmVQYWdlcygpOworICAgIFdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLnVwZGF0ZUFjdGl2ZVBhZ2VzKG1fcHJvY2Vzc0Rpc3BsYXlOYW1lKTsKIAogICAgIHVw
ZGF0ZU1haW5GcmFtZVNjcm9sbE9mZnNldFBpbm5pbmcoKTsKIApAQCAtNjkzNiw2ICs2OTM3LDEx
IEBAIHZvaWQgV2ViUGFnZTo6Y29uZmlndXJlTG9nZ2luZ0NoYW5uZWwoY28KIH0KIAogI2lmICFQ
TEFURk9STShDT0NPQSkKK3ZvaWQgV2ViUGFnZTo6Z2V0UHJvY2Vzc0Rpc3BsYXlOYW1lKENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nJiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAg
IGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7Cit9CisKIHZvaWQgV2ViUGFnZTo6dXBkYXRlTW9ja0Fj
Y2Vzc2liaWxpdHlFbGVtZW50QWZ0ZXJDb21taXR0aW5nTG9hZCgpCiB7CiB9CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCShyZXZpc2lvbiAyNTYyMjkp
CisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEyNzQsNyArMTI3NCw5IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IFN0cmluZyYg
b3ZlcnJpZGRlbk1lZGlhVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fb3ZlcnJpZGRlbk1lZGlhVHlw
ZTsgfQogICAgIHZvaWQgc2V0T3ZlcnJpZGRlbk1lZGlhVHlwZShjb25zdCBTdHJpbmcmKTsKLSAg
ICAKKworICAgIHZvaWQgZ2V0UHJvY2Vzc0Rpc3BsYXlOYW1lKENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoU3RyaW5nJiYpPiYmKTsKKwogcHJpdmF0ZToKICAgICBXZWJQYWdlKFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyLCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiYpOwogCkBAIC0yMDQ3LDYgKzIw
NDksNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBTdHJpbmcgbV9vdmVycmlkZGVuTWVkaWFU
eXBlOworICAgIFN0cmluZyBtX3Byb2Nlc3NEaXNwbGF5TmFtZTsKIAogI2lmIFBMQVRGT1JNKEdU
SykKICAgICBTdHJpbmcgbV90aGVtZU5hbWU7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4JKHJldmlzaW9uIDI1NjIy
OSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMu
aW4JKHdvcmtpbmcgY29weSkKQEAgLTU5Nyw2ICs1OTcsNyBAQCBHZW5lcmF0ZVN5bnRoZXRpY0Vk
aXRpbmdDb21tYW5kKGVudW06dWluCiAgICAgQ29tcGxldGVUZXh0TWFuaXB1bGF0aW9uKFdlYkNv
cmU6OlRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjpJdGVtSWRlbnRpZmllciBpdGVtSUQsIFZl
Y3RvcjxXZWJDb3JlOjpUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjo6TWFuaXB1bGF0aW9uVG9r
ZW4+IHRva2VucykgLT4gKGVudW06dWludDhfdCBXZWJDb3JlOjpUZXh0TWFuaXB1bGF0aW9uQ29u
dHJvbGxlcjo6TWFuaXB1bGF0aW9uUmVzdWx0IHJlc3VsdCkgQXN5bmMKICAgICAKICAgICBTZXRP
dmVycmlkZGVuTWVkaWFUeXBlKFN0cmluZyBtZWRpYVR5cGUpCisgICAgR2V0UHJvY2Vzc0Rpc3Bs
YXlOYW1lKCkgLT4gKFN0cmluZyBkaXNwbGF5TmFtZSkgQXN5bmMKIAogICAgIFNldEhhc1Jlc291
cmNlTG9hZENsaWVudChib29sIGhhcykKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29jb2EubW0JKHJldmlzaW9uIDI1
NjIyOSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VD
b2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtNDUsNiArNDUsNyBAQAogI2ltcG9ydCA8V2ViQ29y
ZS9SZW5kZXJFbGVtZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1JlbmRlck9iamVjdC5oPgogI2lt
cG9ydCA8V2ViQ29yZS9UZXh0SXRlcmF0b3IuaD4KKyNpbXBvcnQgPHBhbC9zcGkvY29jb2EvTGF1
bmNoU2VydmljZXNTUEkuaD4KIAogI2lmIFBMQVRGT1JNKENPQ09BKQogCkBAIC0yODQsNiArMjg1
LDE1IEBAIFJldGFpblB0cjxDRkRhdGFSZWY+IFdlYlBhZ2U6OnBkZlNuYXBzaG8KICAgICByZXR1
cm4gZGF0YTsKIH0KIAordm9pZCBXZWJQYWdlOjpnZXRQcm9jZXNzRGlzcGxheU5hbWUoQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChTdHJpbmcmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisjaWYg
UExBVEZPUk0oTUFDKQorICAgIGNvbXBsZXRpb25IYW5kbGVyKGFkb3B0Q0YoKENGU3RyaW5nUmVm
KV9MU0NvcHlBcHBsaWNhdGlvbkluZm9ybWF0aW9uSXRlbShrTFNEZWZhdWx0U2Vzc2lvbklELCBf
TFNHZXRDdXJyZW50QXBwbGljYXRpb25BU04oKSwgX2tMU0Rpc3BsYXlOYW1lS2V5KSkuZ2V0KCkp
OworI2Vsc2UKKyAgICBjb21wbGV0aW9uSGFuZGxlcih7IH0pOworI2VuZGlmCit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0JKHJl
dmlzaW9uIDI1NjIyOSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9j
ZXNzQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTY0NiwxNCArNjQ2LDIwIEBAIHN0YXRpYyBS
ZXRhaW5QdHI8TlNBcnJheTxOU1N0cmluZyAqPj4gYWMKIH0KICNlbmRpZgogCi12b2lkIFdlYlBy
b2Nlc3M6OnVwZGF0ZUFjdGl2ZVBhZ2VzKCkKK3ZvaWQgV2ViUHJvY2Vzczo6dXBkYXRlQWN0aXZl
UGFnZXMoY29uc3QgU3RyaW5nJiBvdmVycmlkZURpc3BsYXlOYW1lKQogewogI2lmIFBMQVRGT1JN
KE1BQykKLSAgICBhdXRvIGFjdGl2ZU9yaWdpbnMgPSBhY3RpdmVQYWdlc09yaWdpbnMobV9wYWdl
TWFwKTsKKyAgICBpZiAoIW92ZXJyaWRlRGlzcGxheU5hbWUpIHsKKyAgICAgICAgYXV0byBhY3Rp
dmVPcmlnaW5zID0gYWN0aXZlUGFnZXNPcmlnaW5zKG1fcGFnZU1hcCk7CiAKLSAgICBkaXNwYXRj
aF9hc3luYyhkaXNwYXRjaF9nZXRfZ2xvYmFsX3F1ZXVlKERJU1BBVENIX1FVRVVFX1BSSU9SSVRZ
X0RFRkFVTFQsIDApLCBbYWN0aXZlT3JpZ2lucyA9IFdURk1vdmUoYWN0aXZlT3JpZ2lucyldIHsK
LSAgICAgICAgX0xTU2V0QXBwbGljYXRpb25JbmZvcm1hdGlvbkl0ZW0oa0xTRGVmYXVsdFNlc3Np
b25JRCwgX0xTR2V0Q3VycmVudEFwcGxpY2F0aW9uQVNOKCksIENGU1RSKCJMU0FjdGl2ZVBhZ2VV
c2VyVmlzaWJsZU9yaWdpbnNLZXkiKSwgKF9fYnJpZGdlIENGQXJyYXlSZWYpYWN0aXZlT3JpZ2lu
cy5nZXQoKSwgbnVsbHB0cik7Ci0gICAgfSk7CisgICAgICAgIGRpc3BhdGNoX2FzeW5jKGRpc3Bh
dGNoX2dldF9nbG9iYWxfcXVldWUoRElTUEFUQ0hfUVVFVUVfUFJJT1JJVFlfREVGQVVMVCwgMCks
IFthY3RpdmVPcmlnaW5zID0gV1RGTW92ZShhY3RpdmVPcmlnaW5zKV0geworICAgICAgICAgICAg
X0xTU2V0QXBwbGljYXRpb25JbmZvcm1hdGlvbkl0ZW0oa0xTRGVmYXVsdFNlc3Npb25JRCwgX0xT
R2V0Q3VycmVudEFwcGxpY2F0aW9uQVNOKCksIENGU1RSKCJMU0FjdGl2ZVBhZ2VVc2VyVmlzaWJs
ZU9yaWdpbnNLZXkiKSwgKF9fYnJpZGdlIENGQXJyYXlSZWYpYWN0aXZlT3JpZ2lucy5nZXQoKSwg
bnVsbHB0cik7CisgICAgICAgIH0pOworICAgIH0gZWxzZSB7CisgICAgICAgIGRpc3BhdGNoX2Fz
eW5jKGRpc3BhdGNoX2dldF9nbG9iYWxfcXVldWUoRElTUEFUQ0hfUVVFVUVfUFJJT1JJVFlfREVG
QVVMVCwgMCksIF57CisgICAgICAgICAgICBfTFNTZXRBcHBsaWNhdGlvbkluZm9ybWF0aW9uSXRl
bShrTFNEZWZhdWx0U2Vzc2lvbklELCBfTFNHZXRDdXJyZW50QXBwbGljYXRpb25BU04oKSwgX2tM
U0Rpc3BsYXlOYW1lS2V5LCBvdmVycmlkZURpc3BsYXlOYW1lLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0
KCksIG51bGxwdHIpOworICAgICAgICB9KTsKKyAgICB9CiAjZW5kaWYKIH0KIApJbmRleDogVG9v
bHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMjU2
MjI5KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMjAtMDItMTAgIEVsbGllIEVwc2thbXAtSHVudCAgPGVlcHNrYW1waHVudEBhcHBsZS5jb20+
CisKKyAgICAgICAgUHJvdmlkZSBhbHRlcm5hdGUgd2F5IHRvIG5hbWUgV2ViIENvbnRlbnQgcHJv
Y2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1
MjI0CisgICAgICAgIHJkYXI6Ly81NzAzODA4NAorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXgg
Q2hyaXN0ZW5zZW4uCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL0Rpc3BsYXlOYW1lLm1tOiBBZGRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OlRFU1QpOgorCiAyMDIwLTAyLTEwICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNv
bT4KIAogICAgICAgICBbd2F0Y2hPU10gTm90aWZpY2F0aW9uIGxpc3RlbmVyIGlzIG5ldmVyIHVu
cmVnaXN0ZXJlZApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI1NjIyOSkK
KysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC00NjUsNiArNDY1LDcgQEAKIAkJNzI1QzNFRjMyMjA1
OEE1QjAwN0MzNkZDIC8qIEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzLmh0bWwgaW4gQ29w
eSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzI1QzNFRjIy
MjA1ODRCQTAwN0MzNkZDIC8qIEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzLmh0bWwgKi87
IH07CiAJCTcyODNBOUQwMjJGQTc1NDkwMEIyMUM3RCAvKiBpbWctd2l0aC1yb3RhdGVkLWltYWdl
Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNzI4M0E5Q0UyMkZBNkJCRTAwQjIxQzdEIC8qIGltZy13aXRoLXJvdGF0ZWQtaW1hZ2UuaHRt
bCAqLzsgfTsKIAkJNzI4M0E5RDIyMkZCMUUwNjAwQjIxQzdEIC8qIGV4aWYtb3JpZW50YXRpb24t
OC1sbG8uanBnIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDcyODNBOUQxMjJGQjFEOTcwMEIyMUM3RCAvKiBleGlmLW9yaWVudGF0aW9uLTgtbGxv
LmpwZyAqLzsgfTsKKwkJNzNCRDczMTgyM0E4NDY1MDAwMjBGNDUwIC8qIERpc3BsYXlOYW1lLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzNCRDczMTcy
M0E4NDY1MDAwMjBGNDUwIC8qIERpc3BsYXlOYW1lLm1tICovOyB9OwogCQk3NTFCMDVENjFGOEVB
QzQxMDAyOEEwOUUgLyogRGF0YWJhc2VUcmFja2VyVGVzdC5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1MUIwNUQ1MUY4RUFDMUEwMDI4QTA5RSAvKiBE
YXRhYmFzZVRyYWNrZXJUZXN0Lm1tICovOyB9OwogCQk3NTRDRUM4MTFGNjcyMkYyMDBEMDAzOUEg
LyogQXV0b0ZpbGxBdmFpbGFibGUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3NTRDRUM4MDFGNjcyMkRDMDBEMDAzOUEgLyogQXV0b0ZpbGxBdmFpbGFi
bGUubW0gKi87IH07CiAJCTc2NzM0OTlEMTkzMEM1QkIwMEU0NERGOSAvKiBTdG9wTG9hZGluZ0R1
cmluZ0RpZEZhaWxQcm92aXNpb25hbExvYWRfYnVuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc2NzM0OTlBMTkzMDE4MkUwMEU0NERGOSAvKiBT
dG9wTG9hZGluZ0R1cmluZ0RpZEZhaWxQcm92aXNpb25hbExvYWRfYnVuZGxlLmNwcCAqLzsgfTsK
QEAgLTIwODEsNiArMjA4Miw3IEBACiAJCTcyNUMzRUYyMjIwNTg0QkEwMDdDMzZGQyAvKiBBZGRp
dGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcy5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRo
ID0gQWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMuaHRtbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNzI4M0E5Q0UyMkZBNkJCRTAwQjIxQzdEIC8qIGltZy13aXRoLXJvdGF0ZWQt
aW1hZ2UuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJpbWctd2l0aC1yb3RhdGVk
LWltYWdlLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjgzQTlEMTIyRkIx
RDk3MDBCMjFDN0QgLyogZXhpZi1vcmllbnRhdGlvbi04LWxsby5qcGcgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFnZS5qcGVnOyBwYXRoID0gImV4
aWYtb3JpZW50YXRpb24tOC1sbG8uanBnIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NzNCRDczMTcyM0E4NDY1MDAwMjBGNDUwIC8qIERpc3BsYXlOYW1lLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRGlzcGxheU5hbWUubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTc1MUIwNUQ1MUY4RUFDMUEwMDI4QTA5RSAvKiBEYXRhYmFzZVRyYWNr
ZXJUZXN0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRGF0YWJhc2VUcmFja2VyVGVzdC5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzU0Q0VDODAxRjY3MjJEQzAwRDAwMzlBIC8q
IEF1dG9GaWxsQXZhaWxhYmxlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQXV0b0ZpbGxBdmFp
bGFibGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1RjMxMzNGMThDMTcxQjcw
MDQxQ0FFQyAvKiBFcGhlbWVyYWxTZXNzaW9uUHVzaFN0YXRlTm9IaXN0b3J5Q2FsbGJhY2suY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRXBoZW1lcmFsU2Vzc2lvblB1
c2hTdGF0ZU5vSGlzdG9yeUNhbGxiYWNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTI5NDksNiArMjk1MSw3IEBACiAJCQkJMkQyRDEzQjIyMjlGNDA4QjAwNTA2OEFGIC8qIERl
dmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnMubW0gKi8sCiAJCQkJNDY5MThFRkIyMjM3MjgzNTAw
NDY4REZFIC8qIERldmljZU9yaWVudGF0aW9uLm1tICovLAogCQkJCUNFQTdGNTdCMjA4OTVGNUIw
MDc4RUY2RSAvKiBEaWRSZXNpZ25JbnB1dEVsZW1lbnRTdHJvbmdQYXNzd29yZEFwcGVhcmFuY2Uu
bW0gKi8sCisJCQkJNzNCRDczMTcyM0E4NDY1MDAwMjBGNDUwIC8qIERpc3BsYXlOYW1lLm1tICov
LAogCQkJCTUxOEVFNTFBMjBBNzhDRkIwMEUwMjRGMyAvKiBEb0FmdGVyTmV4dFByZXNlbnRhdGlv
blVwZGF0ZUFmdGVyQ3Jhc2gubW0gKi8sCiAJCQkJMkQ3RkQxOTIyMjQxOTA4NzAwNzg4N0YxIC8q
IERvY3VtZW50RWRpdGluZ0NvbnRleHQubW0gKi8sCiAJCQkJNTE4RUU1MTYyMEE3OENERjAwRTAy
NEYzIC8qIERvdWJsZURlZmVyc0xvYWRpbmcubW0gKi8sCkBAIC00NzE1LDYgKzQ3MTgsNyBAQAog
CQkJCTdDQ0U3RUU5MUE0MTFBRTYwMDQ0N0M0QyAvKiBEaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFRUExQTQxMUFFNjAwNDQ3QzRDIC8qIERpZE5v
dEhhbmRsZUtleURvd24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQUQ1N0FDMjExREE3NDY1QjAw
RkYxQkRFIC8qIERpZFJlbW92ZUZyYW1lRnJvbUhpZWFyY2h5SW5QYWdlQ2FjaGUuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJNzNCRDczMTgyM0E4NDY1MDAwMjBGNDUwIC8qIERpc3BsYXlOYW1lLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJNTE4RUU1MUIyMEE3OEQwMDAwRTAyNEYzIC8qIERvQWZ0ZXJO
ZXh0UHJlc2VudGF0aW9uVXBkYXRlQWZ0ZXJDcmFzaC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJE
N0ZEMTkzMjI0MTkwODcwMDc4ODdGMSAvKiBEb2N1bWVudEVkaXRpbmdDb250ZXh0Lm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJN0NDRTdFRUIxQTQxMUFFNjAwNDQ3QzRDIC8qIERvY3VtZW50U3RhcnRV
c2VyU2NyaXB0QWxlcnRDcmFzaC5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRGlzcGxheU5hbWUubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9EaXNwbGF5TmFtZS5tbQkobm9u
ZXhpc3RlbnQpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Rpc3Bs
YXlOYW1lLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW1wb3J0ICJjb25maWcuaCIKKworI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbXBv
cnQgIlRDUFNlcnZlci5oIgorI2ltcG9ydCAiVGVzdC5oIgorI2ltcG9ydCAiVGVzdFdLV2ViVmll
dy5oIgorI2ltcG9ydCA8V2ViS2l0L1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmg+CisjaW1wb3J0IDxX
ZWJLaXQvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9X
S1dlYlZpZXdQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tXZWJzaXRlRGF0YVJlY29yZFBy
aXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmg+Cisj
aW1wb3J0IDxXZWJLaXQvV2ViS2l0Lmg+CisjaW1wb3J0IDxXZWJLaXQvX1dLV2Vic2l0ZURhdGFT
dG9yZUNvbmZpZ3VyYXRpb24uaD4KKyNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCitu
YW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CisKK1RFU1QoV2ViS2l0LCBDdXN0b21EaXNwbGF5TmFt
ZSkKK3sKKyAgICBXS1dlYlZpZXdDb25maWd1cmF0aW9uICpjb25maWd1cmF0aW9uID0gW1tXS1dl
YlZpZXdDb25maWd1cmF0aW9uIG5ld10gYXV0b3JlbGVhc2VdOworICAgIE5TU3RyaW5nICpkaXNw
bGF5TmFtZVRvU2V0ID0gQCJ0ZXN0IGRpc3BsYXkgbmFtZSI7CisgICAgY29uZmlndXJhdGlvbi5f
cHJvY2Vzc0Rpc3BsYXlOYW1lID0gZGlzcGxheU5hbWVUb1NldDsKKyAgICBhdXRvIHdlYlZpZXcg
PSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtl
KDAsIDAsIDMyMCwgNTAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dKTsKKyAgICBbd2Vi
VmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCJzdGFydCB3ZWIgcHJvY2VzcyJdOwor
CisgICAgX19ibG9jayBib29sIGRvbmUgPSBmYWxzZTsKKworICAgIFt3ZWJWaWV3IF9nZXRQcm9j
ZXNzRGlzcGxheU5hbWVXaXRoQ29tcGxldGlvbkhhbmRsZXI6XihOU1N0cmluZyAqbmFtZSkgewor
ICAgICAgICBFWFBFQ1RfV0tfU1RSRVEobmFtZSwgZGlzcGxheU5hbWVUb1NldCk7CisgICAgICAg
IGRvbmUgPSB0cnVlOworICAgIH1dOworCisgICAgVXRpbDo6cnVuKCZkb25lKTsKK30KKworVEVT
VChXZWJLaXQsIERlZmF1bHREaXNwbGF5TmFtZSkKK3sKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9w
dE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAs
IDMyMCwgNTAwKV0pOworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpA
InN0YXJ0IHdlYiBwcm9jZXNzIl07CisKKyAgICBfX2Jsb2NrIGJvb2wgZG9uZSA9IGZhbHNlOwor
ICAgIFt3ZWJWaWV3IF9nZXRQcm9jZXNzRGlzcGxheU5hbWVXaXRoQ29tcGxldGlvbkhhbmRsZXI6
XihOU1N0cmluZyAqbmFtZSkgeworICAgICAgICBFWFBFQ1RfV0tfU1RSRVEobmFtZSwgQCJUZXN0
V2ViS2l0QVBJIFdlYiBDb250ZW50Iik7CisgICAgICAgIGRvbmUgPSB0cnVlOworICAgIH1dOwor
CisgICAgVXRpbDo6cnVuKCZkb25lKTsKK30KKworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390327</attachid>
            <date>2020-02-10 17:48:43 -0800</date>
            <delta_ts>2020-02-24 10:29:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205224-20200210174842.patch</filename>
            <type>text/plain</type>
            <size>25954</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTYyMjkpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUyIEBACisyMDIwLTAyLTEwICBFbGxpZSBFcHNr
YW1wLUh1bnQgIDxlZXBza2FtcGh1bnRAYXBwbGUuY29tPgorCisgICAgICAgIFByb3ZpZGUgYWx0
ZXJuYXRlIHdheSB0byBuYW1lIFdlYiBDb250ZW50IHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTIyNAorICAgICAgICByZGFyOi8vNTcw
MzgwODQKKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAg
IFRlc3Q6IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRGlzcGxheU5hbWUubW0KKwor
ICAgICAgICBBZGQgdGhlIGFiaWxpdHkgdG8gc2V0IF9wcm9jZXNzRGlzcGxheU5hbWUgb24gV0tX
ZWJWaWV3Q29uZmlndXJhdGlvbiB0byBhbGxvdyB0aGUgbmFtZSBvZiB0aGUgd2ViCisgICAgICAg
IGNvbnRlbnQgcHJvY2VzcyB0aGF0IGFwcGVhcnMgaW4gQWN0aXZpdHkgTW9uaXRvciB0byBiZSBz
ZXQgdG8gYSBjdXN0b20gc3RyaW5nLgorCisgICAgICAgICogU2hhcmVkL1dlYlBhZ2VDcmVhdGlv
blBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0
ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0
ZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5jcHA6
CisgICAgICAgIChBUEk6OlBhZ2VDb25maWd1cmF0aW9uOjpjb3B5IGNvbnN0KToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmg6CisgICAgICAgIChBUEk6OlBh
Z2VDb25maWd1cmF0aW9uOjpsc0Rpc3BsYXlOYW1lIGNvbnN0KToKKyAgICAgICAgKEFQSTo6UGFn
ZUNvbmZpZ3VyYXRpb246OnNldGxzRGlzcGxheU5hbWUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2dldERpc3BsYXlO
YW1lV2l0aENvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3Q29uZmln
dXJhdGlvbiBfbHNEaXNwbGF5TmFtZV0pOgorICAgICAgICAoLVtXS1dlYlZpZXdDb25maWd1cmF0
aW9uIF9zZXRsc0Rpc3BsYXlOYW1lOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpjcmVhdGlvblBhcmFtZXRl
cnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmdldERpc3BsYXlOYW1lKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL0NvY29hL1dlYlBhZ2VDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
Z2V0RGlzcGxheU5hbWUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6bV9sc0Rpc3BsYXlOYW1lKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6Y2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRDb21taXRMb2Fk
KToKKyAgICAgICAgKFdlYktpdDo6bV9vdmVycmlkZGVuTWVkaWFUeXBlKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnVwZGF0ZUFjdGl2ZVBh
Z2VzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2Nv
YS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnVwZGF0
ZUFjdGl2ZVBhZ2VzKToKKwogMjAyMC0wMi0xMCAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBh
cHBsZS5jb20+CiAKICAgICAgICAgW3dhdGNoT1NdIE5vdGlmaWNhdGlvbiBsaXN0ZW5lciBpcyBu
ZXZlciB1bnJlZ2lzdGVyZWQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCShyZXZpc2lvbiAyNTYyMjkpCisrKyBTb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTM4LDYgKzEzOCw3IEBAIHZvaWQgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZW5j
b2RlKEkKICAgICBlbmNvZGVyIDw8IG9sZFBhZ2VJRDsKICAgICBlbmNvZGVyIDw8IG92ZXJyaWRk
ZW5NZWRpYVR5cGU7CiAgICAgZW5jb2RlciA8PCBjb3JzRGlzYWJsaW5nUGF0dGVybnM7CisgICAg
ZW5jb2RlciA8PCBwcm9jZXNzRGlzcGxheU5hbWU7CiAKICAgICBlbmNvZGVyIDw8IHNob3VsZENh
cHR1cmVBdWRpb0luVUlQcm9jZXNzOwogICAgIGVuY29kZXIgPDwgc2hvdWxkQ2FwdHVyZUF1ZGlv
SW5HUFVQcm9jZXNzOwpAQCAtNDQxLDYgKzQ0MiwxMiBAQCBPcHRpb25hbDxXZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzPiBXZWJQCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAgICAgcGFy
YW1ldGVycy5jb3JzRGlzYWJsaW5nUGF0dGVybnMgPSBXVEZNb3ZlKCpjb3JzRGlzYWJsaW5nUGF0
dGVybnMpOwogCisgICAgT3B0aW9uYWw8U3RyaW5nPiBwcm9jZXNzRGlzcGxheU5hbWU7CisgICAg
ZGVjb2RlciA+PiBwcm9jZXNzRGlzcGxheU5hbWU7CisgICAgaWYgKCFwcm9jZXNzRGlzcGxheU5h
bWUpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgcGFyYW1ldGVycy5wcm9jZXNz
RGlzcGxheU5hbWUgPSBXVEZNb3ZlKCpwcm9jZXNzRGlzcGxheU5hbWUpOworICAgIAogICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5zaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2Vz
cykpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKQEAgLTQ2MSw2ICs0NjgsOSBAQCBP
cHRpb25hbDxXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzPiBXZWJQCiAgICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7CiAjZW5kaWYKIAorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVy
cy5wcm9jZXNzRGlzcGxheU5hbWUpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCiAg
ICAgcmV0dXJuIHBhcmFtZXRlcnM7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgJKHJldmlzaW9uIDI1NjIyOSkKKysrIFNv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAkod29ya2luZyBj
b3B5KQpAQCAtMjA5LDYgKzIwOSw3IEBAIHN0cnVjdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJz
IHsKIAogICAgIFN0cmluZyBvdmVycmlkZGVuTWVkaWFUeXBlOwogICAgIFZlY3RvcjxTdHJpbmc+
IGNvcnNEaXNhYmxpbmdQYXR0ZXJuczsKKyAgICBTdHJpbmcgcHJvY2Vzc0Rpc3BsYXlOYW1lOwog
CiAgICAgYm9vbCBzaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzcyB7IGZhbHNlIH07CiAgICAg
Ym9vbCBzaG91bGRDYXB0dXJlQXVkaW9JbkdQVVByb2Nlc3MgeyBmYWxzZSB9OwpJbmRleDogU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCShyZXZpc2lvbiAyNTYyMjkpCisr
KyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC03NTQ0LDYgKzc1NDQsOCBAQCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzIFdlYlBhZ2VQ
cm94eTo6CiB7CiAgICAgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyBwYXJhbWV0ZXJzOwogCisg
ICAgcGFyYW1ldGVycy5wcm9jZXNzRGlzcGxheU5hbWUgPSBjb25maWd1cmF0aW9uKCkucHJvY2Vz
c0Rpc3BsYXlOYW1lKCk7CisKICAgICBwYXJhbWV0ZXJzLnZpZXdTaXplID0gcGFnZUNsaWVudCgp
LnZpZXdTaXplKCk7CiAgICAgcGFyYW1ldGVycy5hY3Rpdml0eVN0YXRlID0gbV9hY3Rpdml0eVN0
YXRlOwogICAgIHBhcmFtZXRlcnMuZHJhd2luZ0FyZWFUeXBlID0gZHJhd2luZ0FyZWEudHlwZSgp
OwpAQCAtOTg0OCw2ICs5ODUwLDExIEBAIGJvb2wgV2ViUGFnZVByb3h5OjpzaG91bGRVc2VGb3Jl
Z3JvdW5kUHIKIH0KICNlbmRpZgogCit2b2lkIFdlYlBhZ2VQcm94eTo6Z2V0UHJvY2Vzc0Rpc3Bs
YXlOYW1lKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nJiYpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQoreworICAgIG1fcHJvY2Vzcy0+Y29ubmVjdGlvbigpLT5zZW5kV2l0aEFzeW5jUmVwbHko
TWVzc2FnZXM6OldlYlBhZ2U6OkdldFByb2Nlc3NEaXNwbGF5TmFtZSgpLCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSwgbV93ZWJQYWdlSUQpOworfQorCiB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0
T3JpZW50YXRpb25Gb3JNZWRpYUNhcHR1cmUodWludDY0X3Qgb3JpZW50YXRpb24pCiB7CiAjaWYg
UExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAkocmV2aXNpb24gMjU2MjI5KQorKysgU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTE2NzQsNiAr
MTY3NCw4IEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJpbmcmIG92ZXJyaWRkZW5NZWRpYVR5cGUo
KSBjb25zdCB7IHJldHVybiBtX292ZXJyaWRkZW5NZWRpYVR5cGU7IH0KICAgICB2b2lkIHNldE92
ZXJyaWRkZW5NZWRpYVR5cGUoY29uc3QgU3RyaW5nJik7CiAKKyAgICB2b2lkIGdldFByb2Nlc3NE
aXNwbGF5TmFtZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyYmKT4mJik7CisKICAgICB2
b2lkIHNldE9yaWVudGF0aW9uRm9yTWVkaWFDYXB0dXJlKHVpbnQ2NF90KTsKIAogICAgIGJvb2wg
aXNIYW5kbGluZ1ByZXZlbnRhYmxlVG91Y2hTdGFydCgpIGNvbnN0IHsgcmV0dXJuIG1faGFuZGxp
bmdQcmV2ZW50YWJsZVRvdWNoU3RhcnRDb3VudDsgfQpJbmRleDogU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uY3BwCShyZXZpc2lvbiAy
NTYyMjkpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRp
b24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05Miw2ICs5Miw4IEBAIFJlZjxQYWdlQ29uZmlndXJh
dGlvbj4gUGFnZUNvbmZpZ3VyYXRpb24KICAgICBjb3B5LT5tX2NvcnNEaXNhYmxpbmdQYXR0ZXJu
cyA9IHRoaXMtPm1fY29yc0Rpc2FibGluZ1BhdHRlcm5zOwogICAgIGNvcHktPm1fd2ViVmlld0Nh
dGVnb3J5ID0gdGhpcy0+bV93ZWJWaWV3Q2F0ZWdvcnk7CiAKKyAgICBjb3B5LT5tX3Byb2Nlc3NE
aXNwbGF5TmFtZSA9IHRoaXMtPm1fcHJvY2Vzc0Rpc3BsYXlOYW1lOworCiAgICAgcmV0dXJuIGNv
cHk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmln
dXJhdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQ
YWdlQ29uZmlndXJhdGlvbi5oCShyZXZpc2lvbiAyNTYyMjkpCisrKyBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMTM4
LDYgKzEzOCw5IEBAIHB1YmxpYzoKICAgICBjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+JiBjb3Jz
RGlzYWJsaW5nUGF0dGVybnMoKSBjb25zdCB7IHJldHVybiBtX2NvcnNEaXNhYmxpbmdQYXR0ZXJu
czsgfQogICAgIHZvaWQgc2V0Q09SU0Rpc2FibGluZ1BhdHRlcm5zKFZlY3RvcjxXVEY6OlN0cmlu
Zz4mJiBwYXR0ZXJucykgeyBtX2NvcnNEaXNhYmxpbmdQYXR0ZXJucyA9IFdURk1vdmUocGF0dGVy
bnMpOyB9CiAKKyAgICBjb25zdCBXVEY6OlN0cmluZyYgcHJvY2Vzc0Rpc3BsYXlOYW1lKCkgY29u
c3QgeyByZXR1cm4gbV9wcm9jZXNzRGlzcGxheU5hbWU7IH0KKyAgICB2b2lkIHNldFByb2Nlc3NE
aXNwbGF5TmFtZShjb25zdCBXVEY6OlN0cmluZyYgbmFtZSkgeyBtX3Byb2Nlc3NEaXNwbGF5TmFt
ZSA9IG5hbWU7IH0KKwogICAgIFdlYktpdDo6V2ViVmlld0NhdGVnb3J5IHdlYlZpZXdDYXRlZ29y
eSgpIGNvbnN0IHsgcmV0dXJuIG1fd2ViVmlld0NhdGVnb3J5OyB9CiAgICAgdm9pZCBzZXRXZWJW
aWV3Q2F0ZWdvcnkoV2ViS2l0OjpXZWJWaWV3Q2F0ZWdvcnkgY2F0ZWdvcnkpIHsgbV93ZWJWaWV3
Q2F0ZWdvcnkgPSBjYXRlZ29yeTsgfQogCkBAIC0xNzgsNiArMTgxLDcgQEAgcHJpdmF0ZToKIAog
ICAgIEhhc2hNYXA8V1RGOjpTdHJpbmcsIFJlZjxXZWJLaXQ6OldlYlVSTFNjaGVtZUhhbmRsZXI+
PiBtX3VybFNjaGVtZUhhbmRsZXJzOwogICAgIFZlY3RvcjxXVEY6OlN0cmluZz4gbV9jb3JzRGlz
YWJsaW5nUGF0dGVybnM7CisgICAgV1RGOjpTdHJpbmcgbV9wcm9jZXNzRGlzcGxheU5hbWU7CiAg
ICAgV2ViS2l0OjpXZWJWaWV3Q2F0ZWdvcnkgbV93ZWJWaWV3Q2F0ZWdvcnkgeyBXZWJLaXQ6Oldl
YlZpZXdDYXRlZ29yeTo6QXBwQm91bmREb21haW4gfTsKIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQkocmV2aXNpb24gMjU2MjI5
KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQkod29y
a2luZyBjb3B5KQpAQCAtMjcyNSw2ICsyNzI1LDEzIEBAIC0gKHZvaWQpX3NldFZpZXdTY2FsZToo
Q0dGbG9hdCl2aWV3U2NhbGUKICNlbmRpZgogfQogCistICh2b2lkKV9nZXRQcm9jZXNzRGlzcGxh
eU5hbWVXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nICopKWNvbXBsZXRp
b25IYW5kbGVyCit7CisgICAgX3BhZ2UtPmdldFByb2Nlc3NEaXNwbGF5TmFtZShbaGFuZGxlciA9
IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcildKGF1dG8mJiBuYW1lKSB7CisgICAgICAg
IGhhbmRsZXIobmFtZSk7CisgICAgfSk7Cit9CisKIC0gKHZvaWQpX3NldE1pbmltdW1FZmZlY3Rp
dmVEZXZpY2VXaWR0aDooQ0dGbG9hdCltaW5pbXVtRWZmZWN0aXZlRGV2aWNlV2lkdGgKIHsKICNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0JKHJldmlz
aW9uIDI1NjIyOSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXdDb25maWd1cmF0aW9uLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMjAwLDYgKzEyMDAsMTYgQEAg
LSAodm9pZClfc2V0V2ViVmlld0NhdGVnb3J5OihfV0tXZWJWaWV3QwogICAgIF9wYWdlQ29uZmln
dXJhdGlvbi0+c2V0V2ViVmlld0NhdGVnb3J5KHRvV2ViS2l0V2ViVmlld0NhdGVnb3J5KGNhdGVn
b3J5KSk7CiB9CiAKKy0gKE5TU3RyaW5nICopX3Byb2Nlc3NEaXNwbGF5TmFtZQoreworICAgIHJl
dHVybiBfcGFnZUNvbmZpZ3VyYXRpb24tPnByb2Nlc3NEaXNwbGF5TmFtZSgpOworfQorCistICh2
b2lkKV9zZXRQcm9jZXNzRGlzcGxheU5hbWU6KE5TU3RyaW5nICopbHNEaXNwbGF5TmFtZQorewor
ICAgIF9wYWdlQ29uZmlndXJhdGlvbi0+c2V0UHJvY2Vzc0Rpc3BsYXlOYW1lKGxzRGlzcGxheU5h
bWUpOworfQorCiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXS1dlYlZpZXdDb25maWd1cmF0aW9u
IChXS0RlcHJlY2F0ZWQpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaAko
cmV2aXNpb24gMjU2MjI5KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEyMiw0ICsx
MjIsNiBAQCB0eXBlZGVmIE5TX0VOVU0oTlNVSW50ZWdlciwgX1dLV2ViVmlld0NhCiBAcHJvcGVy
dHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRVbmRvTWFuYWdlckFQSUVuYWJsZWQ6KSBCT09MIF91
bmRvTWFuYWdlckFQSUVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNSksIGlvcygx
My4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRXZWJWaWV3Q2F0ZWdvcnk6
KSBfV0tXZWJWaWV3Q2F0ZWdvcnkgX3dlYlZpZXdDYXRlZ29yeSBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCitAcHJvcGVydHkgKG5vbmF0b21p
Yywgc2V0dGVyPV9zZXRQcm9jZXNzRGlzcGxheU5hbWU6KSBOU1N0cmluZyAqX3Byb2Nlc3NEaXNw
bGF5TmFtZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpOworCiBAZW5kCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3UHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgJKHJldmlzaW9uIDI1NjIyOSkKKysrIFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTMyNiw2ICszMjYsOSBAQCBmb3IgdGhpcyBwcm9wZXJ0eS4KIC0gKHZvaWQpX2ZvY3Vz
VGV4dElucHV0Q29udGV4dDooX1dLVGV4dElucHV0Q29udGV4dCAqKXRleHRJbnB1dEVsZW1lbnQg
Y29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikoQk9PTCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xNSksIGlvcygxMy4wKSk7CiAKIC0gKHZvaWQpX3Rha2VQREZT
bmFwc2hvdFdpdGhDb25maWd1cmF0aW9uOihXS1NuYXBzaG90Q29uZmlndXJhdGlvbiAqKXNuYXBz
aG90Q29uZmlndXJhdGlvbiBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNEYXRhICpwZGZT
bmFwc2hvdERhdGEsIE5TRXJyb3IgKmVycm9yKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZB
SUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworCistICh2b2lkKV9n
ZXRQcm9jZXNzRGlzcGxheU5hbWVXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3Ry
aW5nICopKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7CisKIEBlbmQKIAogI2lmIFRBUkdFVF9PU19JUEhPTkUKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAJKHJldmlzaW9uIDI1NjIy
OSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTQzNSw3ICsxNDM1LDcgQEAgdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRp
YWxpemVQcm9jZQogewogfQogCi12b2lkIFdlYlByb2Nlc3M6OnVwZGF0ZUFjdGl2ZVBhZ2VzKCkK
K3ZvaWQgV2ViUHJvY2Vzczo6dXBkYXRlQWN0aXZlUGFnZXMoY29uc3QgU3RyaW5nJiBvdmVycmlk
ZURpc3BsYXlOYW1lKQogewogfQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmgJKHJldmlzaW9uIDI1NjIyOSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI1MSw3ICsyNTEsNyBAQCBwdWJsaWM6CiAKICAg
ICBjb25zdCBTdHJpbmcmIHVpUHJvY2Vzc0J1bmRsZUlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVy
biBtX3VpUHJvY2Vzc0J1bmRsZUlkZW50aWZpZXI7IH0KIAotICAgIHZvaWQgdXBkYXRlQWN0aXZl
UGFnZXMoKTsKKyAgICB2b2lkIHVwZGF0ZUFjdGl2ZVBhZ2VzKGNvbnN0IFN0cmluZyYgb3ZlcnJp
ZGVEaXNwbGF5TmFtZSk7CiAgICAgdm9pZCBnZXRBY3RpdmVQYWdlc09yaWdpbnNGb3JUZXN0aW5n
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFN0cmluZz4mJik+JiYpOwogICAgIHZvaWQg
cGFnZUFjdGl2aXR5U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIE9wdGlv
blNldDxXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpGbGFnPiBjaGFuZ2VkKTsKIApJbmRleDogU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4JKHJldmlz
aW9uIDI1NjIyOSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3Nh
Z2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0xMTIsNyArMTEyLDcgQEAgbWVzc2FnZXMgLT4gV2Vi
UHJvY2VzcyBMZWdhY3lSZWNlaXZlciBObwogICAgIFNldEhhc1N1c3BlbmRlZFBhZ2VQcm94eShi
b29sIGhhc1N1c3BlbmRlZFBhZ2VQcm94eSk7CiAgICAgU2V0SXNJblByb2Nlc3NDYWNoZShib29s
IGlzSW5Qcm9jZXNzQ2FjaGUpCiAgICAgTWFya0lzTm9Mb25nZXJQcmV3YXJtZWQoKQotICAgIFVw
ZGF0ZUFjdGl2ZVBhZ2VzKCkKKyAgICBVcGRhdGVBY3RpdmVQYWdlcyhTdHJpbmcgb3ZlcnJpZGVE
aXNwbGF5TmFtZSkKICAgICBHZXRBY3RpdmVQYWdlc09yaWdpbnNGb3JUZXN0aW5nKCkgLT4gKFZl
Y3RvcjxTdHJpbmc+IGFjdGl2ZU9yaWdpbnMpIEFzeW5jCiAKICNpZiBQTEFURk9STShNQUMpCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkocmV2
aXNpb24gMjU2MjI5KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ1MCw2ICs0NTAsNyBAQCBXZWJQYWdlOjpXZWJQYWdl
KFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgCiAgICAgLCBtX3RleHRBdXRvU2l6aW5nQWRqdXN0bWVu
dFRpbWVyKCp0aGlzLCAmV2ViUGFnZTo6dGV4dEF1dG9TaXppbmdBZGp1c3RtZW50VGltZXJGaXJl
ZCkKICNlbmRpZgogICAgICwgbV9vdmVycmlkZGVuTWVkaWFUeXBlKHBhcmFtZXRlcnMub3ZlcnJp
ZGRlbk1lZGlhVHlwZSkKKyAgICAsIG1fcHJvY2Vzc0Rpc3BsYXlOYW1lKHBhcmFtZXRlcnMucHJv
Y2Vzc0Rpc3BsYXlOYW1lKQogewogICAgIEFTU0VSVChtX2lkZW50aWZpZXIpOwogCkBAIC0xNDk3
LDcgKzE0OTgsNyBAQCB2b2lkIFdlYlBhZ2U6OmNsb3NlKCkKICAgICAvLyBUaGUgV2ViUGFnZSBj
YW4gYmUgZGVzdHJveWVkIGJ5IHRoaXMgY2FsbC4KICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5yZW1vdmVXZWJQYWdlKG1faWRlbnRpZmllcik7CiAKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS51cGRhdGVBY3RpdmVQYWdlcygpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnVw
ZGF0ZUFjdGl2ZVBhZ2VzKG1fcHJvY2Vzc0Rpc3BsYXlOYW1lKTsKIAogICAgIGlmIChpc1J1bm5p
bmdNb2RhbCkKICAgICAgICAgUnVuTG9vcDo6bWFpbigpLnN0b3AoKTsKQEAgLTU4ODgsNyArNTg4
OSw3IEBAIHZvaWQgV2ViUGFnZTo6ZGlkQ29tbWl0TG9hZChXZWJGcmFtZSogZnIKICAgICBtX2xv
YWRDb21taXRUaW1lID0gV2FsbFRpbWU6Om5vdygpOwogI2VuZGlmCiAKLSAgICBXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS51cGRhdGVBY3RpdmVQYWdlcygpOworICAgIFdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLnVwZGF0ZUFjdGl2ZVBhZ2VzKG1fcHJvY2Vzc0Rpc3BsYXlOYW1lKTsKIAogICAgIHVw
ZGF0ZU1haW5GcmFtZVNjcm9sbE9mZnNldFBpbm5pbmcoKTsKIApAQCAtNjkzNiw2ICs2OTM3LDEx
IEBAIHZvaWQgV2ViUGFnZTo6Y29uZmlndXJlTG9nZ2luZ0NoYW5uZWwoY28KIH0KIAogI2lmICFQ
TEFURk9STShDT0NPQSkKK3ZvaWQgV2ViUGFnZTo6Z2V0UHJvY2Vzc0Rpc3BsYXlOYW1lKENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nJiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAg
IGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7Cit9CisKIHZvaWQgV2ViUGFnZTo6dXBkYXRlTW9ja0Fj
Y2Vzc2liaWxpdHlFbGVtZW50QWZ0ZXJDb21taXR0aW5nTG9hZCgpCiB7CiB9CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCShyZXZpc2lvbiAyNTYyMjkp
CisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEyNzQsNyArMTI3NCw5IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IFN0cmluZyYg
b3ZlcnJpZGRlbk1lZGlhVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fb3ZlcnJpZGRlbk1lZGlhVHlw
ZTsgfQogICAgIHZvaWQgc2V0T3ZlcnJpZGRlbk1lZGlhVHlwZShjb25zdCBTdHJpbmcmKTsKLSAg
ICAKKworICAgIHZvaWQgZ2V0UHJvY2Vzc0Rpc3BsYXlOYW1lKENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoU3RyaW5nJiYpPiYmKTsKKwogcHJpdmF0ZToKICAgICBXZWJQYWdlKFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyLCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiYpOwogCkBAIC0yMDQ3LDYgKzIw
NDksNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBTdHJpbmcgbV9vdmVycmlkZGVuTWVkaWFU
eXBlOworICAgIFN0cmluZyBtX3Byb2Nlc3NEaXNwbGF5TmFtZTsKIAogI2lmIFBMQVRGT1JNKEdU
SykKICAgICBTdHJpbmcgbV90aGVtZU5hbWU7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4JKHJldmlzaW9uIDI1NjIy
OSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMu
aW4JKHdvcmtpbmcgY29weSkKQEAgLTU5Nyw2ICs1OTcsNyBAQCBHZW5lcmF0ZVN5bnRoZXRpY0Vk
aXRpbmdDb21tYW5kKGVudW06dWluCiAgICAgQ29tcGxldGVUZXh0TWFuaXB1bGF0aW9uKFdlYkNv
cmU6OlRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjpJdGVtSWRlbnRpZmllciBpdGVtSUQsIFZl
Y3RvcjxXZWJDb3JlOjpUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjo6TWFuaXB1bGF0aW9uVG9r
ZW4+IHRva2VucykgLT4gKGVudW06dWludDhfdCBXZWJDb3JlOjpUZXh0TWFuaXB1bGF0aW9uQ29u
dHJvbGxlcjo6TWFuaXB1bGF0aW9uUmVzdWx0IHJlc3VsdCkgQXN5bmMKICAgICAKICAgICBTZXRP
dmVycmlkZGVuTWVkaWFUeXBlKFN0cmluZyBtZWRpYVR5cGUpCisgICAgR2V0UHJvY2Vzc0Rpc3Bs
YXlOYW1lKCkgLT4gKFN0cmluZyBkaXNwbGF5TmFtZSkgQXN5bmMKIAogICAgIFNldEhhc1Jlc291
cmNlTG9hZENsaWVudChib29sIGhhcykKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29jb2EubW0JKHJldmlzaW9uIDI1
NjIyOSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VD
b2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtNDUsNiArNDUsNyBAQAogI2ltcG9ydCA8V2ViQ29y
ZS9SZW5kZXJFbGVtZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1JlbmRlck9iamVjdC5oPgogI2lt
cG9ydCA8V2ViQ29yZS9UZXh0SXRlcmF0b3IuaD4KKyNpbXBvcnQgPHBhbC9zcGkvY29jb2EvTGF1
bmNoU2VydmljZXNTUEkuaD4KIAogI2lmIFBMQVRGT1JNKENPQ09BKQogCkBAIC0yODQsNiArMjg1
LDE1IEBAIFJldGFpblB0cjxDRkRhdGFSZWY+IFdlYlBhZ2U6OnBkZlNuYXBzaG8KICAgICByZXR1
cm4gZGF0YTsKIH0KIAordm9pZCBXZWJQYWdlOjpnZXRQcm9jZXNzRGlzcGxheU5hbWUoQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChTdHJpbmcmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisjaWYg
UExBVEZPUk0oTUFDKQorICAgIGNvbXBsZXRpb25IYW5kbGVyKGFkb3B0Q0YoKENGU3RyaW5nUmVm
KV9MU0NvcHlBcHBsaWNhdGlvbkluZm9ybWF0aW9uSXRlbShrTFNEZWZhdWx0U2Vzc2lvbklELCBf
TFNHZXRDdXJyZW50QXBwbGljYXRpb25BU04oKSwgX2tMU0Rpc3BsYXlOYW1lS2V5KSkuZ2V0KCkp
OworI2Vsc2UKKyAgICBjb21wbGV0aW9uSGFuZGxlcih7IH0pOworI2VuZGlmCit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0JKHJl
dmlzaW9uIDI1NjIyOSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9j
ZXNzQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTY0NiwxNCArNjQ2LDIwIEBAIHN0YXRpYyBS
ZXRhaW5QdHI8TlNBcnJheTxOU1N0cmluZyAqPj4gYWMKIH0KICNlbmRpZgogCi12b2lkIFdlYlBy
b2Nlc3M6OnVwZGF0ZUFjdGl2ZVBhZ2VzKCkKK3ZvaWQgV2ViUHJvY2Vzczo6dXBkYXRlQWN0aXZl
UGFnZXMoY29uc3QgU3RyaW5nJiBvdmVycmlkZURpc3BsYXlOYW1lKQogewogI2lmIFBMQVRGT1JN
KE1BQykKLSAgICBhdXRvIGFjdGl2ZU9yaWdpbnMgPSBhY3RpdmVQYWdlc09yaWdpbnMobV9wYWdl
TWFwKTsKKyAgICBpZiAoIW92ZXJyaWRlRGlzcGxheU5hbWUpIHsKKyAgICAgICAgYXV0byBhY3Rp
dmVPcmlnaW5zID0gYWN0aXZlUGFnZXNPcmlnaW5zKG1fcGFnZU1hcCk7CiAKLSAgICBkaXNwYXRj
aF9hc3luYyhkaXNwYXRjaF9nZXRfZ2xvYmFsX3F1ZXVlKERJU1BBVENIX1FVRVVFX1BSSU9SSVRZ
X0RFRkFVTFQsIDApLCBbYWN0aXZlT3JpZ2lucyA9IFdURk1vdmUoYWN0aXZlT3JpZ2lucyldIHsK
LSAgICAgICAgX0xTU2V0QXBwbGljYXRpb25JbmZvcm1hdGlvbkl0ZW0oa0xTRGVmYXVsdFNlc3Np
b25JRCwgX0xTR2V0Q3VycmVudEFwcGxpY2F0aW9uQVNOKCksIENGU1RSKCJMU0FjdGl2ZVBhZ2VV
c2VyVmlzaWJsZU9yaWdpbnNLZXkiKSwgKF9fYnJpZGdlIENGQXJyYXlSZWYpYWN0aXZlT3JpZ2lu
cy5nZXQoKSwgbnVsbHB0cik7Ci0gICAgfSk7CisgICAgICAgIGRpc3BhdGNoX2FzeW5jKGRpc3Bh
dGNoX2dldF9nbG9iYWxfcXVldWUoRElTUEFUQ0hfUVVFVUVfUFJJT1JJVFlfREVGQVVMVCwgMCks
IFthY3RpdmVPcmlnaW5zID0gV1RGTW92ZShhY3RpdmVPcmlnaW5zKV0geworICAgICAgICAgICAg
X0xTU2V0QXBwbGljYXRpb25JbmZvcm1hdGlvbkl0ZW0oa0xTRGVmYXVsdFNlc3Npb25JRCwgX0xT
R2V0Q3VycmVudEFwcGxpY2F0aW9uQVNOKCksIENGU1RSKCJMU0FjdGl2ZVBhZ2VVc2VyVmlzaWJs
ZU9yaWdpbnNLZXkiKSwgKF9fYnJpZGdlIENGQXJyYXlSZWYpYWN0aXZlT3JpZ2lucy5nZXQoKSwg
bnVsbHB0cik7CisgICAgICAgIH0pOworICAgIH0gZWxzZSB7CisgICAgICAgIGRpc3BhdGNoX2Fz
eW5jKGRpc3BhdGNoX2dldF9nbG9iYWxfcXVldWUoRElTUEFUQ0hfUVVFVUVfUFJJT1JJVFlfREVG
QVVMVCwgMCksIF57CisgICAgICAgICAgICBfTFNTZXRBcHBsaWNhdGlvbkluZm9ybWF0aW9uSXRl
bShrTFNEZWZhdWx0U2Vzc2lvbklELCBfTFNHZXRDdXJyZW50QXBwbGljYXRpb25BU04oKSwgX2tM
U0Rpc3BsYXlOYW1lS2V5LCBvdmVycmlkZURpc3BsYXlOYW1lLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0
KCksIG51bGxwdHIpOworICAgICAgICB9KTsKKyAgICB9CiAjZW5kaWYKIH0KIApJbmRleDogVG9v
bHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMjU2
MjI5KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMjAtMDItMTAgIEVsbGllIEVwc2thbXAtSHVudCAgPGVlcHNrYW1waHVudEBhcHBsZS5jb20+
CisKKyAgICAgICAgUHJvdmlkZSBhbHRlcm5hdGUgd2F5IHRvIG5hbWUgV2ViIENvbnRlbnQgcHJv
Y2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1
MjI0CisgICAgICAgIHJkYXI6Ly81NzAzODA4NAorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXgg
Q2hyaXN0ZW5zZW4uCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL0Rpc3BsYXlOYW1lLm1tOiBBZGRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OlRFU1QpOgorCiAyMDIwLTAyLTEwICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNv
bT4KIAogICAgICAgICBbd2F0Y2hPU10gTm90aWZpY2F0aW9uIGxpc3RlbmVyIGlzIG5ldmVyIHVu
cmVnaXN0ZXJlZApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI1NjIyOSkK
KysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC00NjUsNiArNDY1LDcgQEAKIAkJNzI1QzNFRjMyMjA1
OEE1QjAwN0MzNkZDIC8qIEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzLmh0bWwgaW4gQ29w
eSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzI1QzNFRjIy
MjA1ODRCQTAwN0MzNkZDIC8qIEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzLmh0bWwgKi87
IH07CiAJCTcyODNBOUQwMjJGQTc1NDkwMEIyMUM3RCAvKiBpbWctd2l0aC1yb3RhdGVkLWltYWdl
Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNzI4M0E5Q0UyMkZBNkJCRTAwQjIxQzdEIC8qIGltZy13aXRoLXJvdGF0ZWQtaW1hZ2UuaHRt
bCAqLzsgfTsKIAkJNzI4M0E5RDIyMkZCMUUwNjAwQjIxQzdEIC8qIGV4aWYtb3JpZW50YXRpb24t
OC1sbG8uanBnIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDcyODNBOUQxMjJGQjFEOTcwMEIyMUM3RCAvKiBleGlmLW9yaWVudGF0aW9uLTgtbGxv
LmpwZyAqLzsgfTsKKwkJNzNCRDczMTgyM0E4NDY1MDAwMjBGNDUwIC8qIERpc3BsYXlOYW1lLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzNCRDczMTcy
M0E4NDY1MDAwMjBGNDUwIC8qIERpc3BsYXlOYW1lLm1tICovOyB9OwogCQk3NTFCMDVENjFGOEVB
QzQxMDAyOEEwOUUgLyogRGF0YWJhc2VUcmFja2VyVGVzdC5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1MUIwNUQ1MUY4RUFDMUEwMDI4QTA5RSAvKiBE
YXRhYmFzZVRyYWNrZXJUZXN0Lm1tICovOyB9OwogCQk3NTRDRUM4MTFGNjcyMkYyMDBEMDAzOUEg
LyogQXV0b0ZpbGxBdmFpbGFibGUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3NTRDRUM4MDFGNjcyMkRDMDBEMDAzOUEgLyogQXV0b0ZpbGxBdmFpbGFi
bGUubW0gKi87IH07CiAJCTc2NzM0OTlEMTkzMEM1QkIwMEU0NERGOSAvKiBTdG9wTG9hZGluZ0R1
cmluZ0RpZEZhaWxQcm92aXNpb25hbExvYWRfYnVuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc2NzM0OTlBMTkzMDE4MkUwMEU0NERGOSAvKiBT
dG9wTG9hZGluZ0R1cmluZ0RpZEZhaWxQcm92aXNpb25hbExvYWRfYnVuZGxlLmNwcCAqLzsgfTsK
QEAgLTIwODEsNiArMjA4Miw3IEBACiAJCTcyNUMzRUYyMjIwNTg0QkEwMDdDMzZGQyAvKiBBZGRp
dGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcy5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRo
ID0gQWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMuaHRtbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNzI4M0E5Q0UyMkZBNkJCRTAwQjIxQzdEIC8qIGltZy13aXRoLXJvdGF0ZWQt
aW1hZ2UuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJpbWctd2l0aC1yb3RhdGVk
LWltYWdlLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjgzQTlEMTIyRkIx
RDk3MDBCMjFDN0QgLyogZXhpZi1vcmllbnRhdGlvbi04LWxsby5qcGcgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFnZS5qcGVnOyBwYXRoID0gImV4
aWYtb3JpZW50YXRpb24tOC1sbG8uanBnIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NzNCRDczMTcyM0E4NDY1MDAwMjBGNDUwIC8qIERpc3BsYXlOYW1lLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRGlzcGxheU5hbWUubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTc1MUIwNUQ1MUY4RUFDMUEwMDI4QTA5RSAvKiBEYXRhYmFzZVRyYWNr
ZXJUZXN0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRGF0YWJhc2VUcmFja2VyVGVzdC5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzU0Q0VDODAxRjY3MjJEQzAwRDAwMzlBIC8q
IEF1dG9GaWxsQXZhaWxhYmxlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQXV0b0ZpbGxBdmFp
bGFibGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc1RjMxMzNGMThDMTcxQjcw
MDQxQ0FFQyAvKiBFcGhlbWVyYWxTZXNzaW9uUHVzaFN0YXRlTm9IaXN0b3J5Q2FsbGJhY2suY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRXBoZW1lcmFsU2Vzc2lvblB1
c2hTdGF0ZU5vSGlzdG9yeUNhbGxiYWNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTI5NDksNiArMjk1MSw3IEBACiAJCQkJMkQyRDEzQjIyMjlGNDA4QjAwNTA2OEFGIC8qIERl
dmljZU1hbmFnZW1lbnRSZXN0cmljdGlvbnMubW0gKi8sCiAJCQkJNDY5MThFRkIyMjM3MjgzNTAw
NDY4REZFIC8qIERldmljZU9yaWVudGF0aW9uLm1tICovLAogCQkJCUNFQTdGNTdCMjA4OTVGNUIw
MDc4RUY2RSAvKiBEaWRSZXNpZ25JbnB1dEVsZW1lbnRTdHJvbmdQYXNzd29yZEFwcGVhcmFuY2Uu
bW0gKi8sCisJCQkJNzNCRDczMTcyM0E4NDY1MDAwMjBGNDUwIC8qIERpc3BsYXlOYW1lLm1tICov
LAogCQkJCTUxOEVFNTFBMjBBNzhDRkIwMEUwMjRGMyAvKiBEb0FmdGVyTmV4dFByZXNlbnRhdGlv
blVwZGF0ZUFmdGVyQ3Jhc2gubW0gKi8sCiAJCQkJMkQ3RkQxOTIyMjQxOTA4NzAwNzg4N0YxIC8q
IERvY3VtZW50RWRpdGluZ0NvbnRleHQubW0gKi8sCiAJCQkJNTE4RUU1MTYyMEE3OENERjAwRTAy
NEYzIC8qIERvdWJsZURlZmVyc0xvYWRpbmcubW0gKi8sCkBAIC00NzE1LDYgKzQ3MTgsNyBAQAog
CQkJCTdDQ0U3RUU5MUE0MTFBRTYwMDQ0N0M0QyAvKiBEaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFRUExQTQxMUFFNjAwNDQ3QzRDIC8qIERpZE5v
dEhhbmRsZUtleURvd24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQUQ1N0FDMjExREE3NDY1QjAw
RkYxQkRFIC8qIERpZFJlbW92ZUZyYW1lRnJvbUhpZWFyY2h5SW5QYWdlQ2FjaGUuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJNzNCRDczMTgyM0E4NDY1MDAwMjBGNDUwIC8qIERpc3BsYXlOYW1lLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJNTE4RUU1MUIyMEE3OEQwMDAwRTAyNEYzIC8qIERvQWZ0ZXJO
ZXh0UHJlc2VudGF0aW9uVXBkYXRlQWZ0ZXJDcmFzaC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJE
N0ZEMTkzMjI0MTkwODcwMDc4ODdGMSAvKiBEb2N1bWVudEVkaXRpbmdDb250ZXh0Lm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJN0NDRTdFRUIxQTQxMUFFNjAwNDQ3QzRDIC8qIERvY3VtZW50U3RhcnRV
c2VyU2NyaXB0QWxlcnRDcmFzaC5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRGlzcGxheU5hbWUubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9EaXNwbGF5TmFtZS5tbQkobm9u
ZXhpc3RlbnQpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Rpc3Bs
YXlOYW1lLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW1wb3J0ICJjb25maWcuaCIKKworI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbXBv
cnQgIlRDUFNlcnZlci5oIgorI2ltcG9ydCAiVGVzdC5oIgorI2ltcG9ydCAiVGVzdFdLV2ViVmll
dy5oIgorI2ltcG9ydCA8V2ViS2l0L1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmg+CisjaW1wb3J0IDxX
ZWJLaXQvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9X
S1dlYlZpZXdQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tXZWJzaXRlRGF0YVJlY29yZFBy
aXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmg+Cisj
aW1wb3J0IDxXZWJLaXQvV2ViS2l0Lmg+CisjaW1wb3J0IDxXZWJLaXQvX1dLV2Vic2l0ZURhdGFT
dG9yZUNvbmZpZ3VyYXRpb24uaD4KKyNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCitu
YW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CisKKyNpZiBQTEFURk9STShNQUMpCitURVNUKFdlYktp
dCwgQ3VzdG9tRGlzcGxheU5hbWUpCit7CisgICAgV0tXZWJWaWV3Q29uZmlndXJhdGlvbiAqY29u
ZmlndXJhdGlvbiA9IFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBuZXddIGF1dG9yZWxlYXNlXTsK
KyAgICBOU1N0cmluZyAqZGlzcGxheU5hbWVUb1NldCA9IEAidGVzdCBkaXNwbGF5IG5hbWUiOwor
ICAgIGNvbmZpZ3VyYXRpb24uX3Byb2Nlc3NEaXNwbGF5TmFtZSA9IGRpc3BsYXlOYW1lVG9TZXQ7
CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRX
aXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCkgY29uZmlndXJhdGlvbjpjb25maWd1
cmF0aW9uXSk7CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAic3Rh
cnQgd2ViIHByb2Nlc3MiXTsKKworICAgIF9fYmxvY2sgYm9vbCBkb25lID0gZmFsc2U7CisKKyAg
ICBbd2ViVmlldyBfZ2V0UHJvY2Vzc0Rpc3BsYXlOYW1lV2l0aENvbXBsZXRpb25IYW5kbGVyOl4o
TlNTdHJpbmcgKm5hbWUpIHsKKyAgICAgICAgRVhQRUNUX1dLX1NUUkVRKG5hbWUsIGRpc3BsYXlO
YW1lVG9TZXQpOworICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKworICAgIFV0aWw6OnJ1
bigmZG9uZSk7Cit9CisKK1RFU1QoV2ViS2l0LCBEZWZhdWx0RGlzcGxheU5hbWUpCit7CisgICAg
YXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJh
bWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91
c2x5TG9hZEhUTUxTdHJpbmc6QCJzdGFydCB3ZWIgcHJvY2VzcyJdOworCisgICAgX19ibG9jayBi
b29sIGRvbmUgPSBmYWxzZTsKKyAgICBbd2ViVmlldyBfZ2V0UHJvY2Vzc0Rpc3BsYXlOYW1lV2l0
aENvbXBsZXRpb25IYW5kbGVyOl4oTlNTdHJpbmcgKm5hbWUpIHsKKyAgICAgICAgRVhQRUNUX1dL
X1NUUkVRKG5hbWUsIEAiVGVzdFdlYktpdEFQSSBXZWIgQ29udGVudCIpOworICAgICAgICBkb25l
ID0gdHJ1ZTsKKyAgICB9XTsKKworICAgIFV0aWw6OnJ1bigmZG9uZSk7Cit9CisjZW5kaWYgLy8g
UExBVEZPUk0oTUFDKQorCit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391554</attachid>
            <date>2020-02-24 10:29:21 -0800</date>
            <delta_ts>2020-02-24 11:17:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205224-20200224102920.patch</filename>
            <type>text/plain</type>
            <size>26250</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTY4NjcpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUyIEBACisyMDIwLTAyLTI0ICBFbGxpZSBFcHNr
YW1wLUh1bnQgIDxlZXBza2FtcGh1bnRAYXBwbGUuY29tPgorCisgICAgICAgIFByb3ZpZGUgYWx0
ZXJuYXRlIHdheSB0byBuYW1lIFdlYiBDb250ZW50IHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTIyNAorICAgICAgICByZGFyOi8vNTcw
MzgwODQKKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAg
IFRlc3Q6IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRGlzcGxheU5hbWUubW0KKwor
ICAgICAgICBBZGQgdGhlIGFiaWxpdHkgdG8gc2V0IF9wcm9jZXNzRGlzcGxheU5hbWUgb24gV0tX
ZWJWaWV3Q29uZmlndXJhdGlvbiB0byBhbGxvdyB0aGUgbmFtZSBvZiB0aGUgd2ViCisgICAgICAg
IGNvbnRlbnQgcHJvY2VzcyB0aGF0IGFwcGVhcnMgaW4gQWN0aXZpdHkgTW9uaXRvciB0byBiZSBz
ZXQgdG8gYSBjdXN0b20gc3RyaW5nLgorCisgICAgICAgICogU2hhcmVkL1dlYlBhZ2VDcmVhdGlv
blBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0
ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0
ZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5jcHA6
CisgICAgICAgIChBUEk6OlBhZ2VDb25maWd1cmF0aW9uOjpjb3B5IGNvbnN0KToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmg6CisgICAgICAgIChBUEk6OlBh
Z2VDb25maWd1cmF0aW9uOjpsc0Rpc3BsYXlOYW1lIGNvbnN0KToKKyAgICAgICAgKEFQSTo6UGFn
ZUNvbmZpZ3VyYXRpb246OnNldGxzRGlzcGxheU5hbWUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2dldERpc3BsYXlO
YW1lV2l0aENvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3Q29uZmln
dXJhdGlvbiBfbHNEaXNwbGF5TmFtZV0pOgorICAgICAgICAoLVtXS1dlYlZpZXdDb25maWd1cmF0
aW9uIF9zZXRsc0Rpc3BsYXlOYW1lOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpjcmVhdGlvblBhcmFtZXRl
cnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmdldERpc3BsYXlOYW1lKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL0NvY29hL1dlYlBhZ2VDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
Z2V0RGlzcGxheU5hbWUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6bV9sc0Rpc3BsYXlOYW1lKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6Y2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRDb21taXRMb2Fk
KToKKyAgICAgICAgKFdlYktpdDo6bV9vdmVycmlkZGVuTWVkaWFUeXBlKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnVwZGF0ZUFjdGl2ZVBh
Z2VzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2Nv
YS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnVwZGF0
ZUFjdGl2ZVBhZ2VzKToKKwogMjAyMC0wMi0xOCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3Rl
bnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEV4cGFuZCBXS1JlbW90ZU9iamVjdENvZGVyIHN1
cHBvcnRlZCBQT0QgdHlwZXMgdG8gZW5jb2RlIE5TVVJMUmVzcG9uc2UgdHlwZXMKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3Bw
CShyZXZpc2lvbiAyNTY3NzEpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM4LDYgKzEzOCw3IEBAIHZvaWQg
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKEkKICAgICBlbmNvZGVyIDw8IG9sZFBh
Z2VJRDsKICAgICBlbmNvZGVyIDw8IG92ZXJyaWRkZW5NZWRpYVR5cGU7CiAgICAgZW5jb2RlciA8
PCBjb3JzRGlzYWJsaW5nUGF0dGVybnM7CisgICAgZW5jb2RlciA8PCBwcm9jZXNzRGlzcGxheU5h
bWU7CiAKICAgICBlbmNvZGVyIDw8IHNob3VsZENhcHR1cmVBdWRpb0luVUlQcm9jZXNzOwogICAg
IGVuY29kZXIgPDwgc2hvdWxkQ2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzOwpAQCAtNDQxLDYgKzQ0
MiwxMiBAQCBPcHRpb25hbDxXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzPiBXZWJQCiAgICAgICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7CiAgICAgcGFyYW1ldGVycy5jb3JzRGlzYWJsaW5nUGF0dGVy
bnMgPSBXVEZNb3ZlKCpjb3JzRGlzYWJsaW5nUGF0dGVybnMpOwogCisgICAgT3B0aW9uYWw8U3Ry
aW5nPiBwcm9jZXNzRGlzcGxheU5hbWU7CisgICAgZGVjb2RlciA+PiBwcm9jZXNzRGlzcGxheU5h
bWU7CisgICAgaWYgKCFwcm9jZXNzRGlzcGxheU5hbWUpCisgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CisgICAgcGFyYW1ldGVycy5wcm9jZXNzRGlzcGxheU5hbWUgPSBXVEZNb3ZlKCpwcm9j
ZXNzRGlzcGxheU5hbWUpOworICAgIAogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVy
cy5zaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzcykpCiAgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFt
ZXRlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzLmgJKHJldmlzaW9uIDI1Njc3MSkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAkod29ya2luZyBjb3B5KQpAQCAtMjA5LDYgKzIw
OSw3IEBAIHN0cnVjdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzIHsKIAogICAgIFN0cmluZyBv
dmVycmlkZGVuTWVkaWFUeXBlOwogICAgIFZlY3RvcjxTdHJpbmc+IGNvcnNEaXNhYmxpbmdQYXR0
ZXJuczsKKyAgICBTdHJpbmcgcHJvY2Vzc0Rpc3BsYXlOYW1lOwogCiAgICAgYm9vbCBzaG91bGRD
YXB0dXJlQXVkaW9JblVJUHJvY2VzcyB7IGZhbHNlIH07CiAgICAgYm9vbCBzaG91bGRDYXB0dXJl
QXVkaW9JbkdQVVByb2Nlc3MgeyBmYWxzZSB9OwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCShyZXZpc2lvbiAyNTY3NzEpCisrKyBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NTQ0LDYgKzc1NDQs
OCBAQCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzIFdlYlBhZ2VQcm94eTo6CiB7CiAgICAgV2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVycyBwYXJhbWV0ZXJzOwogCisgICAgcGFyYW1ldGVycy5wcm9j
ZXNzRGlzcGxheU5hbWUgPSBjb25maWd1cmF0aW9uKCkucHJvY2Vzc0Rpc3BsYXlOYW1lKCk7CisK
ICAgICBwYXJhbWV0ZXJzLnZpZXdTaXplID0gcGFnZUNsaWVudCgpLnZpZXdTaXplKCk7CiAgICAg
cGFyYW1ldGVycy5hY3Rpdml0eVN0YXRlID0gbV9hY3Rpdml0eVN0YXRlOwogICAgIHBhcmFtZXRl
cnMuZHJhd2luZ0FyZWFUeXBlID0gZHJhd2luZ0FyZWEudHlwZSgpOwpAQCAtOTg0OCw2ICs5ODUw
LDExIEBAIGJvb2wgV2ViUGFnZVByb3h5OjpzaG91bGRVc2VGb3JlZ3JvdW5kUHIKIH0KICNlbmRp
ZgogCit2b2lkIFdlYlBhZ2VQcm94eTo6Z2V0UHJvY2Vzc0Rpc3BsYXlOYW1lKENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoU3RyaW5nJiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIG1fcHJv
Y2Vzcy0+Y29ubmVjdGlvbigpLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2U6
OkdldFByb2Nlc3NEaXNwbGF5TmFtZSgpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgbV93
ZWJQYWdlSUQpOworfQorCiB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0T3JpZW50YXRpb25Gb3JNZWRp
YUNhcHR1cmUodWludDY0X3Qgb3JpZW50YXRpb24pCiB7CiAjaWYgUExBVEZPUk0oQ09DT0EpICYm
IEVOQUJMRShNRURJQV9TVFJFQU0pCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaAkocmV2aXNpb24gMjU2NzcxKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTE2NzgsNiArMTY3OCw4IEBAIHB1YmxpYzoK
ICAgICBjb25zdCBTdHJpbmcmIG92ZXJyaWRkZW5NZWRpYVR5cGUoKSBjb25zdCB7IHJldHVybiBt
X292ZXJyaWRkZW5NZWRpYVR5cGU7IH0KICAgICB2b2lkIHNldE92ZXJyaWRkZW5NZWRpYVR5cGUo
Y29uc3QgU3RyaW5nJik7CiAKKyAgICB2b2lkIGdldFByb2Nlc3NEaXNwbGF5TmFtZShDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFN0cmluZyYmKT4mJik7CisKICAgICB2b2lkIHNldE9yaWVudGF0aW9u
Rm9yTWVkaWFDYXB0dXJlKHVpbnQ2NF90KTsKIAogICAgIGJvb2wgaXNIYW5kbGluZ1ByZXZlbnRh
YmxlVG91Y2hTdGFydCgpIGNvbnN0IHsgcmV0dXJuIG1faGFuZGxpbmdQcmV2ZW50YWJsZVRvdWNo
U3RhcnRDb3VudDsgfQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVBhZ2VD
b25maWd1cmF0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uY3BwCShyZXZpc2lvbiAyNTY3NzEpCisrKyBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC05Miw2ICs5Miw4IEBAIFJlZjxQYWdlQ29uZmlndXJhdGlvbj4gUGFnZUNvbmZpZ3Vy
YXRpb24KICAgICBjb3B5LT5tX2NvcnNEaXNhYmxpbmdQYXR0ZXJucyA9IHRoaXMtPm1fY29yc0Rp
c2FibGluZ1BhdHRlcm5zOwogICAgIGNvcHktPm1fd2ViVmlld0NhdGVnb3J5ID0gdGhpcy0+bV93
ZWJWaWV3Q2F0ZWdvcnk7CiAKKyAgICBjb3B5LT5tX3Byb2Nlc3NEaXNwbGF5TmFtZSA9IHRoaXMt
Pm1fcHJvY2Vzc0Rpc3BsYXlOYW1lOworCiAgICAgcmV0dXJuIGNvcHk7CiB9CiAKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5o
CShyZXZpc2lvbiAyNTY3NzEpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFn
ZUNvbmZpZ3VyYXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMTM4LDYgKzEzOCw5IEBAIHB1Ymxp
YzoKICAgICBjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+JiBjb3JzRGlzYWJsaW5nUGF0dGVybnMo
KSBjb25zdCB7IHJldHVybiBtX2NvcnNEaXNhYmxpbmdQYXR0ZXJuczsgfQogICAgIHZvaWQgc2V0
Q09SU0Rpc2FibGluZ1BhdHRlcm5zKFZlY3RvcjxXVEY6OlN0cmluZz4mJiBwYXR0ZXJucykgeyBt
X2NvcnNEaXNhYmxpbmdQYXR0ZXJucyA9IFdURk1vdmUocGF0dGVybnMpOyB9CiAKKyAgICBjb25z
dCBXVEY6OlN0cmluZyYgcHJvY2Vzc0Rpc3BsYXlOYW1lKCkgY29uc3QgeyByZXR1cm4gbV9wcm9j
ZXNzRGlzcGxheU5hbWU7IH0KKyAgICB2b2lkIHNldFByb2Nlc3NEaXNwbGF5TmFtZShjb25zdCBX
VEY6OlN0cmluZyYgbmFtZSkgeyBtX3Byb2Nlc3NEaXNwbGF5TmFtZSA9IG5hbWU7IH0KKwogICAg
IFdlYktpdDo6V2ViVmlld0NhdGVnb3J5IHdlYlZpZXdDYXRlZ29yeSgpIGNvbnN0IHsgcmV0dXJu
IG1fd2ViVmlld0NhdGVnb3J5OyB9CiAgICAgdm9pZCBzZXRXZWJWaWV3Q2F0ZWdvcnkoV2ViS2l0
OjpXZWJWaWV3Q2F0ZWdvcnkgY2F0ZWdvcnkpIHsgbV93ZWJWaWV3Q2F0ZWdvcnkgPSBjYXRlZ29y
eTsgfQogCkBAIC0xNzgsNiArMTgxLDcgQEAgcHJpdmF0ZToKIAogICAgIEhhc2hNYXA8V1RGOjpT
dHJpbmcsIFJlZjxXZWJLaXQ6OldlYlVSTFNjaGVtZUhhbmRsZXI+PiBtX3VybFNjaGVtZUhhbmRs
ZXJzOwogICAgIFZlY3RvcjxXVEY6OlN0cmluZz4gbV9jb3JzRGlzYWJsaW5nUGF0dGVybnM7Cisg
ICAgV1RGOjpTdHJpbmcgbV9wcm9jZXNzRGlzcGxheU5hbWU7CiAgICAgV2ViS2l0OjpXZWJWaWV3
Q2F0ZWdvcnkgbV93ZWJWaWV3Q2F0ZWdvcnkgeyBXZWJLaXQ6OldlYlZpZXdDYXRlZ29yeTo6QXBw
Qm91bmREb21haW4gfTsKIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlldy5tbQkocmV2aXNpb24gMjU2NzcxKQorKysgU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjc0
Miw2ICsyNzQyLDEzIEBAIC0gKHZvaWQpX3NldFZpZXdTY2FsZTooQ0dGbG9hdCl2aWV3U2NhbGUK
ICNlbmRpZgogfQogCistICh2b2lkKV9nZXRQcm9jZXNzRGlzcGxheU5hbWVXaXRoQ29tcGxldGlv
bkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nICopKWNvbXBsZXRpb25IYW5kbGVyCit7CisgICAg
X3BhZ2UtPmdldFByb2Nlc3NEaXNwbGF5TmFtZShbaGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21w
bGV0aW9uSGFuZGxlcildKGF1dG8mJiBuYW1lKSB7CisgICAgICAgIGhhbmRsZXIobmFtZSk7Cisg
ICAgfSk7Cit9CisKIC0gKHZvaWQpX3NldE1pbmltdW1FZmZlY3RpdmVEZXZpY2VXaWR0aDooQ0dG
bG9hdCltaW5pbXVtRWZmZWN0aXZlRGV2aWNlV2lkdGgKIHsKICNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0Nv
bmZpZ3VyYXRpb24ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0JKHJldmlzaW9uIDI1Njc3MSkKKysrIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1t
CSh3b3JraW5nIGNvcHkpCkBAIC0xMjAwLDYgKzEyMDAsMTYgQEAgLSAodm9pZClfc2V0V2ViVmll
d0NhdGVnb3J5OihfV0tXZWJWaWV3QwogICAgIF9wYWdlQ29uZmlndXJhdGlvbi0+c2V0V2ViVmll
d0NhdGVnb3J5KHRvV2ViS2l0V2ViVmlld0NhdGVnb3J5KGNhdGVnb3J5KSk7CiB9CiAKKy0gKE5T
U3RyaW5nICopX3Byb2Nlc3NEaXNwbGF5TmFtZQoreworICAgIHJldHVybiBfcGFnZUNvbmZpZ3Vy
YXRpb24tPnByb2Nlc3NEaXNwbGF5TmFtZSgpOworfQorCistICh2b2lkKV9zZXRQcm9jZXNzRGlz
cGxheU5hbWU6KE5TU3RyaW5nICopbHNEaXNwbGF5TmFtZQoreworICAgIF9wYWdlQ29uZmlndXJh
dGlvbi0+c2V0UHJvY2Vzc0Rpc3BsYXlOYW1lKGxzRGlzcGxheU5hbWUpOworfQorCiBAZW5kCiAK
IEBpbXBsZW1lbnRhdGlvbiBXS1dlYlZpZXdDb25maWd1cmF0aW9uIChXS0RlcHJlY2F0ZWQpCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJh
dGlvblByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaAkocmV2aXNpb24gMjU2NzcxKQor
KysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRp
b25Qcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEyMiw0ICsxMjIsNiBAQCB0eXBlZGVmIE5T
X0VOVU0oTlNVSW50ZWdlciwgX1dLV2ViVmlld0NhCiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0
dGVyPV9zZXRVbmRvTWFuYWdlckFQSUVuYWJsZWQ6KSBCT09MIF91bmRvTWFuYWdlckFQSUVuYWJs
ZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNSksIGlvcygxMy4wKSk7CiBAcHJvcGVydHkg
KG5vbmF0b21pYywgc2V0dGVyPV9zZXRXZWJWaWV3Q2F0ZWdvcnk6KSBfV0tXZWJWaWV3Q2F0ZWdv
cnkgX3dlYlZpZXdDYXRlZ29yeSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBp
b3MoV0tfSU9TX1RCQSkpOwogCitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRQcm9j
ZXNzRGlzcGxheU5hbWU6KSBOU1N0cmluZyAqX3Byb2Nlc3NEaXNwbGF5TmFtZSBXS19BUElfQVZB
SUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworCiBAZW5kCkluZGV4
OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQ
cml2YXRlLmgJKHJldmlzaW9uIDI1Njc3MSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyNyw2ICszMjcs
OSBAQCBmb3IgdGhpcyBwcm9wZXJ0eS4KIC0gKHZvaWQpX2ZvY3VzVGV4dElucHV0Q29udGV4dDoo
X1dLVGV4dElucHV0Q29udGV4dCAqKXRleHRJbnB1dEVsZW1lbnQgY29tcGxldGlvbkhhbmRsZXI6
KHZvaWQoXikoQk9PTCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygx
MC4xNSksIGlvcygxMy4wKSk7CiAKIC0gKHZvaWQpX3Rha2VQREZTbmFwc2hvdFdpdGhDb25maWd1
cmF0aW9uOihXS1NuYXBzaG90Q29uZmlndXJhdGlvbiAqKXNuYXBzaG90Q29uZmlndXJhdGlvbiBj
b21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNEYXRhICpwZGZTbmFwc2hvdERhdGEsIE5TRXJy
b3IgKmVycm9yKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworCistICh2b2lkKV9nZXRQcm9jZXNzRGlzcGxheU5h
bWVXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nICopKWNvbXBsZXRpb25I
YW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7CisKIEBlbmQKIAogI2lmIFRBUkdFVF9PU19JUEhPTkUKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAJKHJldmlzaW9uIDI1Njc3MSkKKysrIFNvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQzNyw3ICsx
NDM3LDcgQEAgdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVQcm9jZQogewogfQog
Ci12b2lkIFdlYlByb2Nlc3M6OnVwZGF0ZUFjdGl2ZVBhZ2VzKCkKK3ZvaWQgV2ViUHJvY2Vzczo6
dXBkYXRlQWN0aXZlUGFnZXMoY29uc3QgU3RyaW5nJiBvdmVycmlkZURpc3BsYXlOYW1lKQogewog
fQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgJKHJldmlzaW9uIDI1
Njc3MSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTI1MSw3ICsyNTEsNyBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBTdHJpbmcmIHVp
UHJvY2Vzc0J1bmRsZUlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3VpUHJvY2Vzc0J1bmRs
ZUlkZW50aWZpZXI7IH0KIAotICAgIHZvaWQgdXBkYXRlQWN0aXZlUGFnZXMoKTsKKyAgICB2b2lk
IHVwZGF0ZUFjdGl2ZVBhZ2VzKGNvbnN0IFN0cmluZyYgb3ZlcnJpZGVEaXNwbGF5TmFtZSk7CiAg
ICAgdm9pZCBnZXRBY3RpdmVQYWdlc09yaWdpbnNGb3JUZXN0aW5nKENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoVmVjdG9yPFN0cmluZz4mJik+JiYpOwogICAgIHZvaWQgcGFnZUFjdGl2aXR5U3RhdGVE
aWRDaGFuZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIE9wdGlvblNldDxXZWJDb3JlOjpBY3Rp
dml0eVN0YXRlOjpGbGFnPiBjaGFuZ2VkKTsKIApJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4JKHJldmlzaW9uIDI1Njc3MSkKKysrIFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCSh3b3JraW5nIGNv
cHkpCkBAIC0xMTIsNyArMTEyLDcgQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2VzcyBMZWdhY3lSZWNl
aXZlciBObwogICAgIFNldEhhc1N1c3BlbmRlZFBhZ2VQcm94eShib29sIGhhc1N1c3BlbmRlZFBh
Z2VQcm94eSk7CiAgICAgU2V0SXNJblByb2Nlc3NDYWNoZShib29sIGlzSW5Qcm9jZXNzQ2FjaGUp
CiAgICAgTWFya0lzTm9Mb25nZXJQcmV3YXJtZWQoKQotICAgIFVwZGF0ZUFjdGl2ZVBhZ2VzKCkK
KyAgICBVcGRhdGVBY3RpdmVQYWdlcyhTdHJpbmcgb3ZlcnJpZGVEaXNwbGF5TmFtZSkKICAgICBH
ZXRBY3RpdmVQYWdlc09yaWdpbnNGb3JUZXN0aW5nKCkgLT4gKFZlY3RvcjxTdHJpbmc+IGFjdGl2
ZU9yaWdpbnMpIEFzeW5jCiAKICNpZiBQTEFURk9STShNQUMpCkluZGV4OiBTb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkocmV2aXNpb24gMjU2NzcxKQorKysg
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQ1MCw2ICs0NTAsNyBAQCBXZWJQYWdlOjpXZWJQYWdlKFBhZ2VJZGVudGlmaWVyIHBh
Z2VJRCwgCiAgICAgLCBtX3RleHRBdXRvU2l6aW5nQWRqdXN0bWVudFRpbWVyKCp0aGlzLCAmV2Vi
UGFnZTo6dGV4dEF1dG9TaXppbmdBZGp1c3RtZW50VGltZXJGaXJlZCkKICNlbmRpZgogICAgICwg
bV9vdmVycmlkZGVuTWVkaWFUeXBlKHBhcmFtZXRlcnMub3ZlcnJpZGRlbk1lZGlhVHlwZSkKKyAg
ICAsIG1fcHJvY2Vzc0Rpc3BsYXlOYW1lKHBhcmFtZXRlcnMucHJvY2Vzc0Rpc3BsYXlOYW1lKQog
ewogICAgIEFTU0VSVChtX2lkZW50aWZpZXIpOwogCkBAIC0xNDk3LDcgKzE0OTgsNyBAQCB2b2lk
IFdlYlBhZ2U6OmNsb3NlKCkKICAgICAvLyBUaGUgV2ViUGFnZSBjYW4gYmUgZGVzdHJveWVkIGJ5
IHRoaXMgY2FsbC4KICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5yZW1vdmVXZWJQYWdlKG1f
aWRlbnRpZmllcik7CiAKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS51cGRhdGVBY3RpdmVQ
YWdlcygpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnVwZGF0ZUFjdGl2ZVBhZ2VzKG1f
cHJvY2Vzc0Rpc3BsYXlOYW1lKTsKIAogICAgIGlmIChpc1J1bm5pbmdNb2RhbCkKICAgICAgICAg
UnVuTG9vcDo6bWFpbigpLnN0b3AoKTsKQEAgLTU5MDcsNyArNTkwOCw3IEBAIHZvaWQgV2ViUGFn
ZTo6ZGlkQ29tbWl0TG9hZChXZWJGcmFtZSogZnIKICAgICBtX2xvYWRDb21taXRUaW1lID0gV2Fs
bFRpbWU6Om5vdygpOwogI2VuZGlmCiAKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS51cGRh
dGVBY3RpdmVQYWdlcygpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnVwZGF0ZUFjdGl2
ZVBhZ2VzKG1fcHJvY2Vzc0Rpc3BsYXlOYW1lKTsKIAogICAgIHVwZGF0ZU1haW5GcmFtZVNjcm9s
bE9mZnNldFBpbm5pbmcoKTsKIApAQCAtNjk4MCw2ICs2OTgxLDExIEBAIHZvaWQgV2ViUGFnZTo6
Y29uZmlndXJlTG9nZ2luZ0NoYW5uZWwoY28KIH0KIAogI2lmICFQTEFURk9STShDT0NPQSkKK3Zv
aWQgV2ViUGFnZTo6Z2V0UHJvY2Vzc0Rpc3BsYXlOYW1lKENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
U3RyaW5nJiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGNvbXBsZXRpb25IYW5kbGVy
KHsgfSk7Cit9CisKIHZvaWQgV2ViUGFnZTo6dXBkYXRlTW9ja0FjY2Vzc2liaWxpdHlFbGVtZW50
QWZ0ZXJDb21taXR0aW5nTG9hZCgpCiB7CiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCShyZXZpc2lvbiAyNTY3NzEpCisrKyBTb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEyNzksNiAr
MTI3OSw4IEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJpbmcmIG92ZXJyaWRkZW5NZWRpYVR5cGUo
KSBjb25zdCB7IHJldHVybiBtX292ZXJyaWRkZW5NZWRpYVR5cGU7IH0KICAgICB2b2lkIHNldE92
ZXJyaWRkZW5NZWRpYVR5cGUoY29uc3QgU3RyaW5nJik7CiAKKyAgICB2b2lkIGdldFByb2Nlc3NE
aXNwbGF5TmFtZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyYmKT4mJik7CisKICAgICBX
ZWJDb3JlOjpBbGxvd3NDb250ZW50SmF2YVNjcmlwdCBhbGxvd3NDb250ZW50SmF2YVNjcmlwdEZy
b21Nb3N0UmVjZW50TmF2aWdhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dzQ29udGVudEph
dmFTY3JpcHRGcm9tTW9zdFJlY2VudE5hdmlnYXRpb247IH0KICAgICB2b2lkIHNldEFsbG93c0Nv
bnRlbnRKYXZhU2NyaXB0RnJvbU1vc3RSZWNlbnROYXZpZ2F0aW9uKFdlYkNvcmU6OkFsbG93c0Nv
bnRlbnRKYXZhU2NyaXB0IGFsbG93cykgeyBtX2FsbG93c0NvbnRlbnRKYXZhU2NyaXB0RnJvbU1v
c3RSZWNlbnROYXZpZ2F0aW9uID0gYWxsb3dzOyB9CiAKQEAgLTIwNTYsNiArMjA1OCw3IEBAIHBy
aXZhdGU6CiAjZW5kaWYKIAogICAgIFN0cmluZyBtX292ZXJyaWRkZW5NZWRpYVR5cGU7CisgICAg
U3RyaW5nIG1fcHJvY2Vzc0Rpc3BsYXlOYW1lOwogICAgIFdlYkNvcmU6OkFsbG93c0NvbnRlbnRK
YXZhU2NyaXB0IG1fYWxsb3dzQ29udGVudEphdmFTY3JpcHRGcm9tTW9zdFJlY2VudE5hdmlnYXRp
b24geyBXZWJDb3JlOjpBbGxvd3NDb250ZW50SmF2YVNjcmlwdDo6WWVzIH07CiAKICNpZiBQTEFU
Rk9STShHVEspCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4JKHJldmlzaW9uIDI1Njc3MSkKKysrIFNvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkK
QEAgLTU5OSw2ICs1OTksNyBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06
dWluCiAgICAgQ29tcGxldGVUZXh0TWFuaXB1bGF0aW9uKFdlYkNvcmU6OlRleHRNYW5pcHVsYXRp
b25Db250cm9sbGVyOjpJdGVtSWRlbnRpZmllciBpdGVtSUQsIFZlY3RvcjxXZWJDb3JlOjpUZXh0
TWFuaXB1bGF0aW9uQ29udHJvbGxlcjo6TWFuaXB1bGF0aW9uVG9rZW4+IHRva2VucykgLT4gKGVu
dW06dWludDhfdCBXZWJDb3JlOjpUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjo6TWFuaXB1bGF0
aW9uUmVzdWx0IHJlc3VsdCkgQXN5bmMKICAgICAKICAgICBTZXRPdmVycmlkZGVuTWVkaWFUeXBl
KFN0cmluZyBtZWRpYVR5cGUpCisgICAgR2V0UHJvY2Vzc0Rpc3BsYXlOYW1lKCkgLT4gKFN0cmlu
ZyBkaXNwbGF5TmFtZSkgQXN5bmMKIAogICAgIFNldEhhc1Jlc291cmNlTG9hZENsaWVudChib29s
IGhhcykKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dl
YlBhZ2VDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9Db2NvYS9XZWJQYWdlQ29jb2EubW0JKHJldmlzaW9uIDI1Njc3MSkKKysrIFNvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VDb2NvYS5tbQkod29ya2luZyBj
b3B5KQpAQCAtMzMsNiArMzMsNyBAQAogI2ltcG9ydCAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIK
ICNpbXBvcnQgIldlYlBheW1lbnRDb29yZGluYXRvci5oIgogI2ltcG9ydCAiV2ViUmVtb3RlT2Jq
ZWN0UmVnaXN0cnkuaCIKKyNpbXBvcnQgPHBhbC9zcGkvY29jb2EvTGF1bmNoU2VydmljZXNTUEku
aD4KICNpbXBvcnQgPFdlYkNvcmUvRGljdGlvbmFyeUxvb2t1cC5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9FZGl0b3IuaD4KICNpbXBvcnQgPFdlYkNvcmUvRXZlbnRIYW5kbGVyLmg+CkBAIC0yODQsNiAr
Mjg1LDE1IEBAIFJldGFpblB0cjxDRkRhdGFSZWY+IFdlYlBhZ2U6OnBkZlNuYXBzaG8KICAgICBy
ZXR1cm4gZGF0YTsKIH0KIAordm9pZCBXZWJQYWdlOjpnZXRQcm9jZXNzRGlzcGxheU5hbWUoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7Cisj
aWYgUExBVEZPUk0oTUFDKQorICAgIGNvbXBsZXRpb25IYW5kbGVyKGFkb3B0Q0YoKENGU3RyaW5n
UmVmKV9MU0NvcHlBcHBsaWNhdGlvbkluZm9ybWF0aW9uSXRlbShrTFNEZWZhdWx0U2Vzc2lvbklE
LCBfTFNHZXRDdXJyZW50QXBwbGljYXRpb25BU04oKSwgX2tMU0Rpc3BsYXlOYW1lS2V5KSkuZ2V0
KCkpOworI2Vsc2UKKyAgICBjb21wbGV0aW9uSGFuZGxlcih7IH0pOworI2VuZGlmCit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCkluZGV4OiBT
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0J
KHJldmlzaW9uIDI1Njc3MSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQ
cm9jZXNzQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTY1OCwxNCArNjU4LDIwIEBAIHN0YXRp
YyBSZXRhaW5QdHI8TlNBcnJheTxOU1N0cmluZyAqPj4gYWMKIH0KICNlbmRpZgogCi12b2lkIFdl
YlByb2Nlc3M6OnVwZGF0ZUFjdGl2ZVBhZ2VzKCkKK3ZvaWQgV2ViUHJvY2Vzczo6dXBkYXRlQWN0
aXZlUGFnZXMoY29uc3QgU3RyaW5nJiBvdmVycmlkZURpc3BsYXlOYW1lKQogewogI2lmIFBMQVRG
T1JNKE1BQykKLSAgICBhdXRvIGFjdGl2ZU9yaWdpbnMgPSBhY3RpdmVQYWdlc09yaWdpbnMobV9w
YWdlTWFwKTsKKyAgICBpZiAoIW92ZXJyaWRlRGlzcGxheU5hbWUpIHsKKyAgICAgICAgYXV0byBh
Y3RpdmVPcmlnaW5zID0gYWN0aXZlUGFnZXNPcmlnaW5zKG1fcGFnZU1hcCk7CiAKLSAgICBkaXNw
YXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfZ2xvYmFsX3F1ZXVlKERJU1BBVENIX1FVRVVFX1BSSU9S
SVRZX0RFRkFVTFQsIDApLCBbYWN0aXZlT3JpZ2lucyA9IFdURk1vdmUoYWN0aXZlT3JpZ2lucyld
IHsKLSAgICAgICAgX0xTU2V0QXBwbGljYXRpb25JbmZvcm1hdGlvbkl0ZW0oa0xTRGVmYXVsdFNl
c3Npb25JRCwgX0xTR2V0Q3VycmVudEFwcGxpY2F0aW9uQVNOKCksIENGU1RSKCJMU0FjdGl2ZVBh
Z2VVc2VyVmlzaWJsZU9yaWdpbnNLZXkiKSwgKF9fYnJpZGdlIENGQXJyYXlSZWYpYWN0aXZlT3Jp
Z2lucy5nZXQoKSwgbnVsbHB0cik7Ci0gICAgfSk7CisgICAgICAgIGRpc3BhdGNoX2FzeW5jKGRp
c3BhdGNoX2dldF9nbG9iYWxfcXVldWUoRElTUEFUQ0hfUVVFVUVfUFJJT1JJVFlfREVGQVVMVCwg
MCksIFthY3RpdmVPcmlnaW5zID0gV1RGTW92ZShhY3RpdmVPcmlnaW5zKV0geworICAgICAgICAg
ICAgX0xTU2V0QXBwbGljYXRpb25JbmZvcm1hdGlvbkl0ZW0oa0xTRGVmYXVsdFNlc3Npb25JRCwg
X0xTR2V0Q3VycmVudEFwcGxpY2F0aW9uQVNOKCksIENGU1RSKCJMU0FjdGl2ZVBhZ2VVc2VyVmlz
aWJsZU9yaWdpbnNLZXkiKSwgKF9fYnJpZGdlIENGQXJyYXlSZWYpYWN0aXZlT3JpZ2lucy5nZXQo
KSwgbnVsbHB0cik7CisgICAgICAgIH0pOworICAgIH0gZWxzZSB7CisgICAgICAgIGRpc3BhdGNo
X2FzeW5jKGRpc3BhdGNoX2dldF9nbG9iYWxfcXVldWUoRElTUEFUQ0hfUVVFVUVfUFJJT1JJVFlf
REVGQVVMVCwgMCksIF57CisgICAgICAgICAgICBfTFNTZXRBcHBsaWNhdGlvbkluZm9ybWF0aW9u
SXRlbShrTFNEZWZhdWx0U2Vzc2lvbklELCBfTFNHZXRDdXJyZW50QXBwbGljYXRpb25BU04oKSwg
X2tMU0Rpc3BsYXlOYW1lS2V5LCBvdmVycmlkZURpc3BsYXlOYW1lLmNyZWF0ZUNGU3RyaW5nKCku
Z2V0KCksIG51bGxwdHIpOworICAgICAgICB9KTsKKyAgICB9CiAjZW5kaWYKIH0KIApJbmRleDog
VG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24g
MjU3MjE1KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMjAtMDItMjQgIEVsbGllIEVwc2thbXAtSHVudCAgPGVlcHNrYW1waHVudEBhcHBsZS5j
b20+CisKKyAgICAgICAgUHJvdmlkZSBhbHRlcm5hdGUgd2F5IHRvIG5hbWUgV2ViIENvbnRlbnQg
cHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjA1MjI0CisgICAgICAgIHJkYXI6Ly81NzAzODA4NAorCisgICAgICAgIFJldmlld2VkIGJ5IEFs
ZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEku
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL0Rpc3BsYXlOYW1lLm1tOiBBZGRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlRFU1QpOgorCiAyMDIwLTAyLTI0ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2Vu
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5fY29yc0Rpc2Fi
bGluZ1BhdHRlcm5zIHNob3VsZCBhbHNvIGRpc2FibGUgQ09SUyBmb3Igbm9uLURvY3VtZW50VGhy
ZWFkYWJsZUxvYWRlciBsb2FkaW5nCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNp
b24gMjU2NzcxKQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTQ2NSw2ICs0NjUsNyBAQAogCQk3
MjVDM0VGMzIyMDU4QTVCMDA3QzM2RkMgLyogQWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMu
aHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3MjVDM0VGMjIyMDU4NEJBMDA3QzM2RkMgLyogQWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlw
ZXMuaHRtbCAqLzsgfTsKIAkJNzI4M0E5RDAyMkZBNzU0OTAwQjIxQzdEIC8qIGltZy13aXRoLXJv
dGF0ZWQtaW1hZ2UuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3MjgzQTlDRTIyRkE2QkJFMDBCMjFDN0QgLyogaW1nLXdpdGgtcm90YXRl
ZC1pbWFnZS5odG1sICovOyB9OwogCQk3MjgzQTlEMjIyRkIxRTA2MDBCMjFDN0QgLyogZXhpZi1v
cmllbnRhdGlvbi04LWxsby5qcGcgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNzI4M0E5RDEyMkZCMUQ5NzAwQjIxQzdEIC8qIGV4aWYtb3JpZW50
YXRpb24tOC1sbG8uanBnICovOyB9OworCQk3M0JENzMxODIzQTg0NjUwMDAyMEY0NTAgLyogRGlz
cGxheU5hbWUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3M0JENzMxNzIzQTg0NjUwMDAyMEY0NTAgLyogRGlzcGxheU5hbWUubW0gKi87IH07CiAJCTc1
MUIwNUQ2MUY4RUFDNDEwMDI4QTA5RSAvKiBEYXRhYmFzZVRyYWNrZXJUZXN0Lm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzUxQjA1RDUxRjhFQUMxQTAw
MjhBMDlFIC8qIERhdGFiYXNlVHJhY2tlclRlc3QubW0gKi87IH07CiAJCTc1NENFQzgxMUY2NzIy
RjIwMEQwMDM5QSAvKiBBdXRvRmlsbEF2YWlsYWJsZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NENFQzgwMUY2NzIyREMwMEQwMDM5QSAvKiBBdXRv
RmlsbEF2YWlsYWJsZS5tbSAqLzsgfTsKIAkJNzY3MzQ5OUQxOTMwQzVCQjAwRTQ0REY5IC8qIFN0
b3BMb2FkaW5nRHVyaW5nRGlkRmFpbFByb3Zpc2lvbmFsTG9hZF9idW5kbGUuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzY3MzQ5OUExOTMwMTgyRTAw
RTQ0REY5IC8qIFN0b3BMb2FkaW5nRHVyaW5nRGlkRmFpbFByb3Zpc2lvbmFsTG9hZF9idW5kbGUu
Y3BwICovOyB9OwpAQCAtMjA4NCw2ICsyMDg1LDcgQEAKIAkJNzI1QzNFRjIyMjA1ODRCQTAwN0Mz
NkZDIC8qIEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzLmh0bWwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
Lmh0bWw7IHBhdGggPSBBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcy5odG1sOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk3MjgzQTlDRTIyRkE2QkJFMDBCMjFDN0QgLyogaW1nLXdp
dGgtcm90YXRlZC1pbWFnZS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImltZy13
aXRoLXJvdGF0ZWQtaW1hZ2UuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcy
ODNBOUQxMjJGQjFEOTcwMEIyMUM3RCAvKiBleGlmLW9yaWVudGF0aW9uLTgtbGxvLmpwZyAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGltYWdlLmpwZWc7
IHBhdGggPSAiZXhpZi1vcmllbnRhdGlvbi04LWxsby5qcGciOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk3M0JENzMxNzIzQTg0NjUwMDAyMEY0NTAgLyogRGlzcGxheU5hbWUubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBEaXNwbGF5TmFtZS5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzUxQjA1RDUxRjhFQUMxQTAwMjhBMDlFIC8qIERh
dGFiYXNlVHJhY2tlclRlc3QubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBEYXRhYmFzZVRyYWNr
ZXJUZXN0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NTRDRUM4MDFGNjcyMkRD
MDBEMDAzOUEgLyogQXV0b0ZpbGxBdmFpbGFibGUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBB
dXRvRmlsbEF2YWlsYWJsZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzVGMzEz
M0YxOEMxNzFCNzAwNDFDQUVDIC8qIEVwaGVtZXJhbFNlc3Npb25QdXNoU3RhdGVOb0hpc3RvcnlD
YWxsYmFjay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFcGhlbWVy
YWxTZXNzaW9uUHVzaFN0YXRlTm9IaXN0b3J5Q2FsbGJhY2suY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMjk1OCw2ICsyOTYwLDcgQEAKIAkJCQkyRDJEMTNCMjIyOUY0MDhCMDA1
MDY4QUYgLyogRGV2aWNlTWFuYWdlbWVudFJlc3RyaWN0aW9ucy5tbSAqLywKIAkJCQk0NjkxOEVG
QjIyMzcyODM1MDA0NjhERkUgLyogRGV2aWNlT3JpZW50YXRpb24ubW0gKi8sCiAJCQkJQ0VBN0Y1
N0IyMDg5NUY1QjAwNzhFRjZFIC8qIERpZFJlc2lnbklucHV0RWxlbWVudFN0cm9uZ1Bhc3N3b3Jk
QXBwZWFyYW5jZS5tbSAqLywKKwkJCQk3M0JENzMxNzIzQTg0NjUwMDAyMEY0NTAgLyogRGlzcGxh
eU5hbWUubW0gKi8sCiAJCQkJNTE4RUU1MUEyMEE3OENGQjAwRTAyNEYzIC8qIERvQWZ0ZXJOZXh0
UHJlc2VudGF0aW9uVXBkYXRlQWZ0ZXJDcmFzaC5tbSAqLywKIAkJCQkyRDdGRDE5MjIyNDE5MDg3
MDA3ODg3RjEgLyogRG9jdW1lbnRFZGl0aW5nQ29udGV4dC5tbSAqLywKIAkJCQk1MThFRTUxNjIw
QTc4Q0RGMDBFMDI0RjMgLyogRG91YmxlRGVmZXJzTG9hZGluZy5tbSAqLywKQEAgLTQ3MjQsNiAr
NDcyNyw3IEBACiAJCQkJN0NDRTdFRTkxQTQxMUFFNjAwNDQ3QzRDIC8qIERpZEFzc29jaWF0ZUZv
cm1Db250cm9scy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VFQTFBNDExQUU2MDA0NDdD
NEMgLyogRGlkTm90SGFuZGxlS2V5RG93bi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBRDU3QUMy
MTFEQTc0NjVCMDBGRjFCREUgLyogRGlkUmVtb3ZlRnJhbWVGcm9tSGllYXJjaHlJblBhZ2VDYWNo
ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3M0JENzMxODIzQTg0NjUwMDAyMEY0NTAgLyogRGlz
cGxheU5hbWUubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MThFRTUxQjIwQTc4RDAwMDBFMDI0RjMg
LyogRG9BZnRlck5leHRQcmVzZW50YXRpb25VcGRhdGVBZnRlckNyYXNoLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMkQ3RkQxOTMyMjQxOTA4NzAwNzg4N0YxIC8qIERvY3VtZW50RWRpdGluZ0NvbnRl
eHQubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VFQjFBNDExQUU2MDA0NDdDNEMgLyogRG9j
dW1lbnRTdGFydFVzZXJTY3JpcHRBbGVydENyYXNoLmNwcCBpbiBTb3VyY2VzICovLApJbmRleDog
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9EaXNwbGF5TmFtZS5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Rpc3BsYXlO
YW1lLm1tCShub25leGlzdGVudCkKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvRGlzcGxheU5hbWUubW0JKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3NyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGll
cy5oIgorI2ltcG9ydCAiVENQU2VydmVyLmgiCisjaW1wb3J0ICJUZXN0LmgiCisjaW1wb3J0ICJU
ZXN0V0tXZWJWaWV3LmgiCisjaW1wb3J0IDxXZWJLaXQvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZp
Z3VyYXRpb24uaD4KKyNpbXBvcnQgPFdlYktpdC9XZWJLaXQuaD4KKyNpbXBvcnQgPFdlYktpdC9X
S1Byb2Nlc3NQb29sUHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLV2Vic2l0ZURhdGFSZWNv
cmRQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5o
PgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmg+CisjaW1w
b3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZS5oPgorI2ltcG9ydCA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKworI2lmIFBMQVRGT1JNKE1BQykK
K1RFU1QoV2ViS2l0LCBDdXN0b21EaXNwbGF5TmFtZSkKK3sKKyAgICBXS1dlYlZpZXdDb25maWd1
cmF0aW9uICpjb25maWd1cmF0aW9uID0gW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIG5ld10gYXV0
b3JlbGVhc2VdOworICAgIE5TU3RyaW5nICpkaXNwbGF5TmFtZVRvU2V0ID0gQCJ0ZXN0IGRpc3Bs
YXkgbmFtZSI7CisgICAgY29uZmlndXJhdGlvbi5fcHJvY2Vzc0Rpc3BsYXlOYW1lID0gZGlzcGxh
eU5hbWVUb1NldDsKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBh
bGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKSBjb25maWd1cmF0
aW9uOmNvbmZpZ3VyYXRpb25dKTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxT
dHJpbmc6QCJzdGFydCB3ZWIgcHJvY2VzcyJdOworCisgICAgX19ibG9jayBib29sIGRvbmUgPSBm
YWxzZTsKKworICAgIFt3ZWJWaWV3IF9nZXRQcm9jZXNzRGlzcGxheU5hbWVXaXRoQ29tcGxldGlv
bkhhbmRsZXI6XihOU1N0cmluZyAqbmFtZSkgeworICAgICAgICBFWFBFQ1RfV0tfU1RSRVEobmFt
ZSwgZGlzcGxheU5hbWVUb1NldCk7CisgICAgICAgIGRvbmUgPSB0cnVlOworICAgIH1dOworCisg
ICAgVXRpbDo6cnVuKCZkb25lKTsKK30KKworVEVTVChXZWJLaXQsIERlZmF1bHREaXNwbGF5TmFt
ZSkKK3sKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10g
aW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKV0pOworICAgIFt3ZWJWaWV3
IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAInN0YXJ0IHdlYiBwcm9jZXNzIl07CisKKyAg
ICBfX2Jsb2NrIGJvb2wgZG9uZSA9IGZhbHNlOworICAgIFt3ZWJWaWV3IF9nZXRQcm9jZXNzRGlz
cGxheU5hbWVXaXRoQ29tcGxldGlvbkhhbmRsZXI6XihOU1N0cmluZyAqbmFtZSkgeworICAgICAg
ICBFWFBFQ1RfV0tfU1RSRVEobmFtZSwgQCJUZXN0V2ViS2l0QVBJIFdlYiBDb250ZW50Iik7Cisg
ICAgICAgIGRvbmUgPSB0cnVlOworICAgIH1dOworCisgICAgVXRpbDo6cnVuKCZkb25lKTsKK30K
KyNlbmRpZiAvLyBQTEFURk9STShNQUMpCisKK30K
</data>

          </attachment>
      

    </bug>

</bugzilla>