<?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>213414</bug_id>
          
          <creation_ts>2020-06-19 16:22:22 -0700</creation_ts>
          <short_desc>[Cocoa] Delay issuing ManagedSession &amp; Network Extension sandbox extensions until a load is actually issued</short_desc>
          <delta_ts>2020-06-19 20:50:15 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>ggaren</cc>
    
    <cc>pvollan</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1664592</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-06-19 16:22:22 -0700</bug_when>
    <thetext>Delay issuing ManagedSession &amp; Network Extension sandbox extensions until a load is actually issued.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664593</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-06-19 16:22:40 -0700</bug_when>
    <thetext>&lt;rdar://problem/64548684&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664615</commentid>
    <comment_count>2</comment_count>
      <attachid>402349</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-06-19 16:54:00 -0700</bug_when>
    <thetext>Created attachment 402349
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664623</commentid>
    <comment_count>3</comment_count>
      <attachid>402349</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-06-19 17:07:24 -0700</bug_when>
    <thetext>Comment on attachment 402349
Patch

R=me, after fixing compile issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664629</commentid>
    <comment_count>4</comment_count>
      <attachid>402353</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-06-19 17:12:58 -0700</bug_when>
    <thetext>Created attachment 402353
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664632</commentid>
    <comment_count>5</comment_count>
      <attachid>402353</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-06-19 17:19:12 -0700</bug_when>
    <thetext>Comment on attachment 402353
Patch

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

&gt; Source/WebKit/UIProcess/WebProcessProxy.h:588
&gt; +    bool m_hasNetworkExtensionSandboxAccess { false };

Should this be inside #if PLATFORM(COCOA)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664635</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-06-19 17:20:47 -0700</bug_when>
    <thetext>(In reply to Per Arne Vollan from comment #5)
&gt; Comment on attachment 402353 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=402353&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/WebProcessProxy.h:588
&gt; &gt; +    bool m_hasNetworkExtensionSandboxAccess { false };
&gt; 
&gt; Should this be inside #if PLATFORM(COCOA)?

Oh right. I will add it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664640</commentid>
    <comment_count>7</comment_count>
      <attachid>402356</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-06-19 17:22:29 -0700</bug_when>
    <thetext>Created attachment 402356
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664652</commentid>
    <comment_count>8</comment_count>
      <attachid>402362</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-06-19 17:37:29 -0700</bug_when>
    <thetext>Created attachment 402362
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664673</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-06-19 18:42:31 -0700</bug_when>
    <thetext>Tools/Scripts/svn-apply failed to apply attachment 402362 to trunk.
Please resolve the conflicts and upload a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664677</commentid>
    <comment_count>10</comment_count>
      <attachid>402368</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-06-19 19:03:49 -0700</bug_when>
    <thetext>Created attachment 402368
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664687</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-06-19 19:37:46 -0700</bug_when>
    <thetext>Patch 402368 does not build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664691</commentid>
    <comment_count>12</comment_count>
      <attachid>402372</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-06-19 19:46:12 -0700</bug_when>
    <thetext>Created attachment 402372
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664697</commentid>
    <comment_count>13</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-06-19 20:50:15 -0700</bug_when>
    <thetext>Committed r263313: &lt;https://trac.webkit.org/changeset/263313&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 402372.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402349</attachid>
            <date>2020-06-19 16:54:00 -0700</date>
            <delta_ts>2020-06-19 17:12:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213414-20200619165359.patch</filename>
            <type>text/plain</type>
            <size>28799</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMjkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTg4YmVhOWY0ODFjZjYy
ODRhYzc2YjE5YWMxM2I4ZjRmYWZiNTAyZC4uMjc2ZjgyMDViNzM5YmU4M2JkMzFjZjIyYjY3MzE2
MGM5ZjM1MTNhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIwLTA2LTE5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBEZWxheSBpc3N1
aW5nIE1hbmFnZWRTZXNzaW9uICYgTmV0d29yayBFeHRlbnNpb24gc2FuZGJveCBleHRlbnNpb25z
IHVudGlsIGEgbG9hZCBpcyBhY3R1YWxseSBpc3N1ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzQxNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NjQ1NDg2ODQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgc2V0SGFzQ29uc3VtZWRTYW5kYm94RXh0ZW5zaW9ucygpIGNhbiBub3cgZ2V0IGNhbGxlZCBz
ZXZlcmFsIHRpbWVzLCBldmVyeSB0aW1lIGEgV2ViUGFnZSBpcyBjcmVhdGVkLgorICAgICAgICBP
bmNlIGEgc2FuZGJveCBleHRlbnNpb24gaGFzIGJlZW4gY29uc3VtZWQsIHRoZXJlIGlzIG5vIGdv
aW5nIGJhY2sgc28gcmV0dXJuIGVhcmx5IGlmIHRoZSBzdGF0ZSBpcworICAgICAgICBhbHJlYWR5
ICJDb25zdW1lZCIuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9OZXR3b3JrRXh0ZW5zaW9u
Q29udGVudEZpbHRlci5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtFeHRlbnNpb25Db250
ZW50RmlsdGVyOjpzZXRIYXNDb25zdW1lZFNhbmRib3hFeHRlbnNpb25zKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9jb2NvYS9QYXJlbnRhbENvbnRyb2xzQ29udGVudEZpbHRlci5tbToKKyAgICAgICAg
KFdlYkNvcmU6OlBhcmVudGFsQ29udHJvbHNDb250ZW50RmlsdGVyOjpzZXRIYXNDb25zdW1lZFNh
bmRib3hFeHRlbnNpb24pOgorCiAyMDIwLTA2LTE5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgQXZvaWQgaW5pdGlhbGl6aW5nIFJlbmRlclRoZW1lIHNpbmdsZXRv
biB1bm5lY2Vzc2FyaWx5IGluIHRoZSBVSVByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNWJhMWNkYjFhNTcw
MWZjMWUzZjUwMzdiMzc2ODlkNTA5ZDZkMTg0YS4uMzAyYWI1OGVkNDdjNWVhZTU0NWRmNTg2YTIz
MDljZDVjNDA1ZTlmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NiBAQAorMjAyMC0wNi0xOSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gRGVsYXkgaXNz
dWluZyBNYW5hZ2VkU2Vzc2lvbiAmIE5ldHdvcmsgRXh0ZW5zaW9uIHNhbmRib3ggZXh0ZW5zaW9u
cyB1bnRpbCBhIGxvYWQgaXMgYWN0dWFsbHkgaXNzdWVkCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM0MTQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzY0NTQ4Njg0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIERlbGF5IGlzc3VpbmcgTWFuYWdlZFNlc3Npb24gJiBOZXR3b3JrIEV4dGVuc2lvbiBzYW5k
Ym94IGV4dGVuc2lvbnMgdW50aWwgYSBsb2FkIGlzIGFjdHVhbGx5IGlzc3VlZC4KKyAgICAgICAg
VGhpcyBpcyBhIFNhZmFyaSBsYXVuY2ggdGltZSBvcHRpbWl6YXRpb24gc2luY2UgdGhlIGNoZWNr
cyBuZWVkZWQgdG8gZGVjaWRlIHdoZXRoZXIgb3Igbm90IHRvIGlzc3VlCisgICAgICAgIHRoZSBl
eHRlbnNpb25zIGFyZSBleHBlbnNpdmUgYW5kIHRoZXJlIGlzIG5vIHJlYXNvbiB0byBpc3N1ZSB0
aGVtIGFzIHNvb24gYXMgdGhlIHByb2Nlc3MgbGF1bmNoZXMKKyAgICAgICAgKGVzcGVjaWFsbHkg
aW4gdGhlIGNhc2Ugb2YgYSBwcmV3YXJtZWQgcHJvY2VzcykuCisKKyAgICAgICAgKiBTaGFyZWQv
Q29jb2EvTG9hZFBhcmFtZXRlcnNDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6TG9hZFBhcmFt
ZXRlcnM6OnBsYXRmb3JtRW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TG9hZFBhcmFt
ZXRlcnM6OnBsYXRmb3JtRGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvTG9hZFBhcmFtZXRlcnMu
aDoKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSBjb25z
dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29k
ZSk6CisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW06CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6YWRkUGxhdGZvcm1Mb2FkUGFyYW1ldGVycyk6CisgICAgICAg
ICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW06CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5OjphZGRQbGF0Zm9ybUxvYWRQYXJhbWV0ZXJzKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5Ojpsb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVkKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5Ojpsb2FkRmlsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6bG9hZERhdGFXaXRoTmF2aWdhdGlvblNoYXJlZCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6bG9hZEFsdGVybmF0ZUhUTUwpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OmxvYWRXZWJBcmNoaXZlRGF0YSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpoYXNOZXR3b3JrRXh0ZW5zaW9uU2FuZGJveEFjY2Vz
cyBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6bWFya0hhc05ldHdv
cmtFeHRlbnNpb25TYW5kYm94QWNjZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1By
b3h5OjpoYXNNYW5hZ2VkU2Vzc2lvblNhbmRib3hBY2Nlc3MgY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzUHJveHk6Om1hcmtIYXNNYW5hZ2VkU2Vzc2lvblNhbmRib3hBY2Nlc3Mp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29jb2EubW06Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnBsYXRmb3JtRGlkUmVjZWl2ZUxvYWRQYXJhbWV0ZXJz
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisK
IDIwMjAtMDYtMTkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBB
dm9pZCBpbml0aWFsaXppbmcgUmVuZGVyVGhlbWUgc2luZ2xldG9uIHVubmVjZXNzYXJpbHkgaW4g
dGhlIFVJUHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2Ev
TmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jb2NvYS9OZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5tbQppbmRleCBlYmYzOWMzNmZk
ZTgzZGE2YjliYmU4MWM0ZDEyNjU4Y2MwOTE4NTMwLi4yYjIzOTM4NmRmNmYyM2IwZjJhYmNjNjFl
OWM3MjE1YzVhYTlkMjU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9OZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jb2NvYS9OZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5tbQpAQCAtMjI4LDYg
KzIyOCw5IEBAIHZvaWQgTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXI6OmhhbmRsZURlY2lz
aW9uKE5FRmlsdGVyU291cmNlU3RhdHVzIHN0YXR1cywKIAogdm9pZCBOZXR3b3JrRXh0ZW5zaW9u
Q29udGVudEZpbHRlcjo6c2V0SGFzQ29uc3VtZWRTYW5kYm94RXh0ZW5zaW9ucyhib29sIGhhc0Nv
bnN1bWVkU2FuZGJveEV4dGVuc2lvbnMpCiB7CisgICAgaWYgKG1fc2FuZGJveEV4dGVuc2lvbnNT
dGF0ZSA9PSBTYW5kYm94RXh0ZW5zaW9uc1N0YXRlOjpDb25zdW1lZCkKKyAgICAgICAgcmV0dXJu
OworCiAgICAgbV9zYW5kYm94RXh0ZW5zaW9uc1N0YXRlID0gKGhhc0NvbnN1bWVkU2FuZGJveEV4
dGVuc2lvbnMgPyBTYW5kYm94RXh0ZW5zaW9uc1N0YXRlOjpDb25zdW1lZCA6IFNhbmRib3hFeHRl
bnNpb25zU3RhdGU6Ok5vdENvbnN1bWVkKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY29jb2EvUGFyZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXIubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9QYXJlbnRhbENvbnRyb2xzQ29udGVudEZpbHRlci5t
bQppbmRleCBhZThmYjM5Mjk2MjM2NGQ3MzQ5ODUxM2Y4MWRlMDhiN2Y0ZmVlMDVjLi40OWY4ZmE0
YmNlMGQwZjg4MGJhNDM3NTEzYTMyNjZmNTZmNWEwMDYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jb2NvYS9QYXJlbnRhbENvbnRyb2xzQ29udGVudEZpbHRlci5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9QYXJlbnRhbENvbnRyb2xzQ29udGVudEZp
bHRlci5tbQpAQCAtMTUwLDYgKzE1MCw5IEBAIHZvaWQgUGFyZW50YWxDb250cm9sc0NvbnRlbnRG
aWx0ZXI6OnVwZGF0ZUZpbHRlclN0YXRlKCkKICNpZiBQTEFURk9STShJT1MpCiB2b2lkIFBhcmVu
dGFsQ29udHJvbHNDb250ZW50RmlsdGVyOjpzZXRIYXNDb25zdW1lZFNhbmRib3hFeHRlbnNpb24o
Ym9vbCBoYXNDb25zdW1lZFNhbmRib3hFeHRlbnNpb24pCiB7CisgICAgaWYgKG1fc2FuZGJveEV4
dGVuc2lvblN0YXRlID09IFNhbmRib3hFeHRlbnNpb25TdGF0ZTo6Q29uc3VtZWQpCisgICAgICAg
IHJldHVybjsKKwogICAgIG1fc2FuZGJveEV4dGVuc2lvblN0YXRlID0gKGhhc0NvbnN1bWVkU2Fu
ZGJveEV4dGVuc2lvbiA/IFNhbmRib3hFeHRlbnNpb25TdGF0ZTo6Q29uc3VtZWQgOiBTYW5kYm94
RXh0ZW5zaW9uU3RhdGU6Ok5vdENvbnN1bWVkKTsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvTG9hZFBhcmFtZXRlcnNDb2NvYS5tbSBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0NvY29hL0xvYWRQYXJhbWV0ZXJzQ29jb2EubW0KaW5kZXggOTQyMTQzYTU3
ZTkzMTEyNmFhM2Y0ZTYzODBhMGEwNWU1NzIwMDljZC4uZTk4ZjdkYjJhNjdiZWQ3ZTM0MzBmYjM5
OGMxMGFkYWQzM2NiNDYxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2Ev
TG9hZFBhcmFtZXRlcnNDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9M
b2FkUGFyYW1ldGVyc0NvY29hLm1tCkBAIC0zNiwxMiArMzYsNDUgQEAgbmFtZXNwYWNlIFdlYktp
dCB7CiB2b2lkIExvYWRQYXJhbWV0ZXJzOjpwbGF0Zm9ybUVuY29kZShJUEM6OkVuY29kZXImIGVu
Y29kZXIpIGNvbnN0CiB7CiAgICAgSVBDOjplbmNvZGUoZW5jb2RlciwgZGF0YURldGVjdGlvbkNv
bnRleHQuZ2V0KCkpOworCisgICAgZW5jb2RlciA8PCBuZUhlbHBlckV4dGVuc2lvbkhhbmRsZTsK
KyAgICBlbmNvZGVyIDw8IG5lU2Vzc2lvbk1hbmFnZXJFeHRlbnNpb25IYW5kbGU7CisjaWYgUExB
VEZPUk0oSU9TKQorICAgIGVuY29kZXIgPDwgY29udGVudEZpbHRlckV4dGVuc2lvbkhhbmRsZTsK
KyAgICBlbmNvZGVyIDw8IGZyb250Ym9hcmRTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlOworI2VuZGlm
CiB9CiAKLWJvb2wgTG9hZFBhcmFtZXRlcnM6OnBsYXRmb3JtRGVjb2RlKElQQzo6RGVjb2RlciYg
ZGVjb2RlciwgTG9hZFBhcmFtZXRlcnMmIGRhdGEpCitib29sIExvYWRQYXJhbWV0ZXJzOjpwbGF0
Zm9ybURlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIExvYWRQYXJhbWV0ZXJzJiBwYXJhbWV0
ZXJzKQogewotICAgIGlmICghSVBDOjpkZWNvZGUoZGVjb2RlciwgZGF0YS5kYXRhRGV0ZWN0aW9u
Q29udGV4dCkpCisgICAgaWYgKCFJUEM6OmRlY29kZShkZWNvZGVyLCBwYXJhbWV0ZXJzLmRhdGFE
ZXRlY3Rpb25Db250ZXh0KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgT3B0aW9uYWw8
T3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPj4gbmVIZWxwZXJFeHRlbnNpb25IYW5k
bGU7CisgICAgZGVjb2RlciA+PiBuZUhlbHBlckV4dGVuc2lvbkhhbmRsZTsKKyAgICBpZiAoIW5l
SGVscGVyRXh0ZW5zaW9uSGFuZGxlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcGFyYW1l
dGVycy5uZUhlbHBlckV4dGVuc2lvbkhhbmRsZSA9IFdURk1vdmUoKm5lSGVscGVyRXh0ZW5zaW9u
SGFuZGxlKTsKKworICAgIE9wdGlvbmFsPE9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRs
ZT4+IG5lU2Vzc2lvbk1hbmFnZXJFeHRlbnNpb25IYW5kbGU7CisgICAgZGVjb2RlciA+PiBuZVNl
c3Npb25NYW5hZ2VyRXh0ZW5zaW9uSGFuZGxlOworICAgIGlmICghbmVTZXNzaW9uTWFuYWdlckV4
dGVuc2lvbkhhbmRsZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHBhcmFtZXRlcnMubmVT
ZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZSA9IFdURk1vdmUoKm5lU2Vzc2lvbk1hbmFnZXJF
eHRlbnNpb25IYW5kbGUpOworCisjaWYgUExBVEZPUk0oSU9TKQorICAgIE9wdGlvbmFsPE9wdGlv
bmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4+IGNvbnRlbnRGaWx0ZXJFeHRlbnNpb25IYW5k
bGU7CisgICAgZGVjb2RlciA+PiBjb250ZW50RmlsdGVyRXh0ZW5zaW9uSGFuZGxlOworICAgIGlm
ICghY29udGVudEZpbHRlckV4dGVuc2lvbkhhbmRsZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIHBhcmFtZXRlcnMuY29udGVudEZpbHRlckV4dGVuc2lvbkhhbmRsZSA9IFdURk1vdmUoKmNv
bnRlbnRGaWx0ZXJFeHRlbnNpb25IYW5kbGUpOworCisgICAgT3B0aW9uYWw8T3B0aW9uYWw8U2Fu
ZGJveEV4dGVuc2lvbjo6SGFuZGxlPj4gZnJvbnRib2FyZFNlcnZpY2VFeHRlbnNpb25IYW5kbGU7
CisgICAgZGVjb2RlciA+PiBmcm9udGJvYXJkU2VydmljZUV4dGVuc2lvbkhhbmRsZTsKKyAgICBp
ZiAoIWZyb250Ym9hcmRTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgcGFyYW1ldGVycy5mcm9udGJvYXJkU2VydmljZUV4dGVuc2lvbkhhbmRsZSA9IFdU
Rk1vdmUoKmZyb250Ym9hcmRTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlKTsKKyNlbmRpZgogCiAgICAg
cmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Mb2FkUGFy
YW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvTG9hZFBhcmFtZXRlcnMuaAppbmRleCA0
NzEwZDMyN2MwODZlNDIxOWFiMDAzY2QzNWZhM2FhNWY5NzExMGI0Li5lODgxNDViMGFlYTU1YjBm
MTFkNDk1MDI0NGY2ZTFlMGQ5NDI5NGJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9Mb2FkUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0xvYWRQYXJhbWV0
ZXJzLmgKQEAgLTc0LDYgKzc0LDEyIEBAIHN0cnVjdCBMb2FkUGFyYW1ldGVycyB7CiAKICNpZiBQ
TEFURk9STShDT0NPQSkKICAgICBSZXRhaW5QdHI8TlNEaWN0aW9uYXJ5PiBkYXRhRGV0ZWN0aW9u
Q29udGV4dDsKKyAgICBPcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+IG5lSGVscGVy
RXh0ZW5zaW9uSGFuZGxlOworICAgIE9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4g
bmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZTsKKyNlbmRpZgorI2lmIFBMQVRGT1JNKElP
UykKKyAgICBPcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+IGNvbnRlbnRGaWx0ZXJF
eHRlbnNpb25IYW5kbGU7CisgICAgT3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBm
cm9udGJvYXJkU2VydmljZUV4dGVuc2lvbkhhbmRsZTsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApp
bmRleCA5ZTcwYmE1ZDg5MDViYzg3NmJiNzI2YzI2NGI2OTJiZDhkMTk4ZmU2Li45YTQzNDlkZDQz
ZWU1YzVhNjMwMDA1NjVlNjRkZDFjOThjOGRhMzUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtMTU3LDggKzE1
Nyw2IEBAIHZvaWQgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5j
b2RlciYgZW5jb2RlcikgY29uc3QKICAgICAKICNpZiBQTEFURk9STShJT1MpCiAgICAgZW5jb2Rl
ciA8PCBjb21waWxlclNlcnZpY2VFeHRlbnNpb25IYW5kbGU7Ci0gICAgZW5jb2RlciA8PCBjb250
ZW50RmlsdGVyRXh0ZW5zaW9uSGFuZGxlOwotICAgIGVuY29kZXIgPDwgZnJvbnRib2FyZFNlcnZp
Y2VFeHRlbnNpb25IYW5kbGU7CiAjZW5kaWYKIAogICAgIGVuY29kZXIgPDwgY29udGFpbmVyTWFu
YWdlckV4dGVuc2lvbkhhbmRsZTsKQEAgLTE3MCw4ICsxNjgsNiBAQCB2b2lkIFdlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAj
ZW5kaWYKIAogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIGVuY29kZXIgPDwgbmVIZWxwZXJFeHRl
bnNpb25IYW5kbGU7Ci0gICAgZW5jb2RlciA8PCBuZVNlc3Npb25NYW5hZ2VyRXh0ZW5zaW9uSGFu
ZGxlOwogICAgIGVuY29kZXIgPDwgbWFwREJFeHRlbnNpb25IYW5kbGU7CiAgICAgZW5jb2RlciA8
PCBzeXN0ZW1IYXNCYXR0ZXJ5OwogI2VuZGlmCkBAIC00MjMsMTggKzQxOSw2IEBAIGJvb2wgV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2Rlciwg
V2ViUHJvY2Vzc0NyZWF0CiAgICAgaWYgKCFjb21waWxlclNlcnZpY2VFeHRlbnNpb25IYW5kbGUp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBwYXJhbWV0ZXJzLmNvbXBpbGVyU2VydmljZUV4
dGVuc2lvbkhhbmRsZSA9IFdURk1vdmUoKmNvbXBpbGVyU2VydmljZUV4dGVuc2lvbkhhbmRsZSk7
Ci0KLSAgICBPcHRpb25hbDxPcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+PiBjb250
ZW50RmlsdGVyRXh0ZW5zaW9uSGFuZGxlOwotICAgIGRlY29kZXIgPj4gY29udGVudEZpbHRlckV4
dGVuc2lvbkhhbmRsZTsKLSAgICBpZiAoIWNvbnRlbnRGaWx0ZXJFeHRlbnNpb25IYW5kbGUpCi0g
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBwYXJhbWV0ZXJzLmNvbnRlbnRGaWx0ZXJFeHRlbnNp
b25IYW5kbGUgPSBXVEZNb3ZlKCpjb250ZW50RmlsdGVyRXh0ZW5zaW9uSGFuZGxlKTsKLQotICAg
IE9wdGlvbmFsPE9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4+IGZyb250Ym9hcmRT
ZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlOwotICAgIGRlY29kZXIgPj4gZnJvbnRib2FyZFNlcnZpY2VF
eHRlbnNpb25IYW5kbGU7Ci0gICAgaWYgKCFmcm9udGJvYXJkU2VydmljZUV4dGVuc2lvbkhhbmRs
ZSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHBhcmFtZXRlcnMuZnJvbnRib2FyZFNlcnZp
Y2VFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3ZlKCpmcm9udGJvYXJkU2VydmljZUV4dGVuc2lvbkhh
bmRsZSk7CiAjZW5kaWYKIAogICAgIE9wdGlvbmFsPE9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246
OkhhbmRsZT4+IGNvbnRhaW5lck1hbmFnZXJFeHRlbnNpb25IYW5kbGU7CkBAIC00NjQsMTggKzQ0
OCw2IEBAIGJvb2wgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVj
b2RlciYgZGVjb2RlciwgV2ViUHJvY2Vzc0NyZWF0CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKENP
Q09BKQotICAgIE9wdGlvbmFsPE9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4+IG5l
SGVscGVyRXh0ZW5zaW9uSGFuZGxlOwotICAgIGRlY29kZXIgPj4gbmVIZWxwZXJFeHRlbnNpb25I
YW5kbGU7Ci0gICAgaWYgKCFuZUhlbHBlckV4dGVuc2lvbkhhbmRsZSkKLSAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgIHBhcmFtZXRlcnMubmVIZWxwZXJFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3Zl
KCpuZUhlbHBlckV4dGVuc2lvbkhhbmRsZSk7Ci0KLSAgICBPcHRpb25hbDxPcHRpb25hbDxTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGU+PiBuZVNlc3Npb25NYW5hZ2VyRXh0ZW5zaW9uSGFuZGxlOwot
ICAgIGRlY29kZXIgPj4gbmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZTsKLSAgICBpZiAo
IW5lU2Vzc2lvbk1hbmFnZXJFeHRlbnNpb25IYW5kbGUpCi0gICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICBwYXJhbWV0ZXJzLm5lU2Vzc2lvbk1hbmFnZXJFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3Zl
KCpuZVNlc3Npb25NYW5hZ2VyRXh0ZW5zaW9uSGFuZGxlKTsKLQogICAgIE9wdGlvbmFsPE9wdGlv
bmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4+IG1hcERCRXh0ZW5zaW9uSGFuZGxlOwogICAg
IGRlY29kZXIgPj4gbWFwREJFeHRlbnNpb25IYW5kbGU7CiAgICAgaWYgKCFtYXBEQkV4dGVuc2lv
bkhhbmRsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuaAppbmRleCAzOWI1N2M4ZWJiYjcyNTljNWFlOWQ4ODgyZjlmMDc0YjFmNGFi
MjNkLi5hYTFiN2FhMWZiNzZiYzA3ZGM4MDZmZDAyZDNkZDFjYTE5ZmI0ZTBiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCkBA
IC0yMDEsOCArMjAxLDYgQEAgc3RydWN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgewog
ICAgIAogI2lmIFBMQVRGT1JNKElPUykKICAgICBPcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpI
YW5kbGU+IGNvbXBpbGVyU2VydmljZUV4dGVuc2lvbkhhbmRsZTsKLSAgICBPcHRpb25hbDxTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGU+IGNvbnRlbnRGaWx0ZXJFeHRlbnNpb25IYW5kbGU7Ci0gICAg
T3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBmcm9udGJvYXJkU2VydmljZUV4dGVu
c2lvbkhhbmRsZTsKICNlbmRpZgogCiAgICAgT3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFu
ZGxlPiBjb250YWluZXJNYW5hZ2VyRXh0ZW5zaW9uSGFuZGxlOwpAQCAtMjE0LDggKzIxMiw2IEBA
IHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICNlbmRpZgogCiAjaWYgUExB
VEZPUk0oQ09DT0EpCi0gICAgT3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBuZUhl
bHBlckV4dGVuc2lvbkhhbmRsZTsKLSAgICBPcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5k
bGU+IG5lU2Vzc2lvbk1hbmFnZXJFeHRlbnNpb25IYW5kbGU7CiAgICAgT3B0aW9uYWw8U2FuZGJv
eEV4dGVuc2lvbjo6SGFuZGxlPiBtYXBEQkV4dGVuc2lvbkhhbmRsZTsKICAgICBib29sIHN5c3Rl
bUhhc0JhdHRlcnkgeyBmYWxzZSB9OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tCmluZGV4IDM2ZjAxY2JmNzFkYWVjZGQ3
NTMxNGM2ZDE2MGRhNzhmZmRiYTlkMTQuLjViODhiOWI0ZTI3YTlhNTc4ZThkODk2ODkyNTdkOWIx
Mzc1OGE1N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBh
Z2VQcm94eUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBh
Z2VQcm94eUNvY29hLm1tCkBAIC00Nyw2ICs0Nyw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1NlYXJj
aFBvcHVwTWVudUNvY29hLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RleHRBbHRlcm5hdGl2ZVdpdGhS
YW5nZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9WYWxpZGF0aW9uQnViYmxlLmg+CisjaW1wb3J0IDxw
YWwvc3BpL2NvY29hL05FRmlsdGVyU291cmNlU1BJLmg+CiAjaW1wb3J0IDx3dGYvQmxvY2tQdHIu
aD4KICNpbXBvcnQgPHd0Zi9jZi9UeXBlQ2FzdHNDRi5oPgogCkBAIC01NCw2ICs1NSwxNiBAQAog
I2ltcG9ydCAiTWVkaWFVc2FnZU1hbmFnZXJDb2NvYS5oIgogI2VuZGlmCiAKKyNpZiBQTEFURk9S
TShJT1MpCisjaW1wb3J0IDxwYWwvc3BpL2NvY29hL1dlYkZpbHRlckV2YWx1YXRvclNQSS5oPgor
CitTT0ZUX0xJTktfUFJJVkFURV9GUkFNRVdPUksoV2ViQ29udGVudEFuYWx5c2lzKTsKK1NPRlRf
TElOS19DTEFTUyhXZWJDb250ZW50QW5hbHlzaXMsIFdlYkZpbHRlckV2YWx1YXRvcik7CisjZW5k
aWYKKworU09GVF9MSU5LX0ZSQU1FV09SS19PUFRJT05BTChOZXR3b3JrRXh0ZW5zaW9uKTsKK1NP
RlRfTElOS19DTEFTU19PUFRJT05BTChOZXR3b3JrRXh0ZW5zaW9uLCBORUZpbHRlclNvdXJjZSk7
CisKICNkZWZpbmUgTUVTU0FHRV9DSEVDSyhhc3NlcnRpb24pIE1FU1NBR0VfQ0hFQ0tfQkFTRShh
c3NlcnRpb24sIHByb2Nlc3MoKS5jb25uZWN0aW9uKCkpCiAjZGVmaW5lIE1FU1NBR0VfQ0hFQ0tf
Q09NUExFVElPTihhc3NlcnRpb24sIGNvbXBsZXRpb24pIE1FU1NBR0VfQ0hFQ0tfQ09NUExFVElP
Tl9CQVNFKGFzc2VydGlvbiwgcHJvY2VzcygpLmNvbm5lY3Rpb24oKSwgY29tcGxldGlvbikKIApA
QCAtMTI5LDkgKzE0MCwzOCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y29udGVudEZpbHRlckRpZEJs
b2NrTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JgogfQogI2VuZGlmCiAK
LXZvaWQgV2ViUGFnZVByb3h5OjphZGRQbGF0Zm9ybUxvYWRQYXJhbWV0ZXJzKExvYWRQYXJhbWV0
ZXJzJiBsb2FkUGFyYW1ldGVycykKK3ZvaWQgV2ViUGFnZVByb3h5OjphZGRQbGF0Zm9ybUxvYWRQ
YXJhbWV0ZXJzKFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcywgTG9hZFBhcmFtZXRlcnMmIGxvYWRQ
YXJhbWV0ZXJzKQogewogICAgIGxvYWRQYXJhbWV0ZXJzLmRhdGFEZXRlY3Rpb25Db250ZXh0ID0g
bV91aUNsaWVudC0+ZGF0YURldGVjdGlvbkNvbnRleHQoKTsKKworICAgIGlmICghcHJvY2Vzcy5o
YXNOZXR3b3JrRXh0ZW5zaW9uU2FuZGJveEFjY2VzcygpICYmIFtnZXRORUZpbHRlclNvdXJjZUNs
YXNzKCkgZmlsdGVyUmVxdWlyZWRdKSB7CisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRs
ZSBoZWxwZXJIYW5kbGU7CisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZv
ck1hY2hMb29rdXAoImNvbS5hcHBsZS5uZWhlbHBlciJfcywgV1RGOjpudWxsb3B0LCBoZWxwZXJI
YW5kbGUpOworICAgICAgICBsb2FkUGFyYW1ldGVycy5uZUhlbHBlckV4dGVuc2lvbkhhbmRsZSA9
IFdURk1vdmUoaGVscGVySGFuZGxlKTsKKyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxl
IG1hbmFnZXJIYW5kbGU7CisjaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEIDwgMTAxNTAwCisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhh
bmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS5uZXNlc3Npb25tYW5hZ2VyIl9zLCBXVEY6Om51
bGxvcHQsIG1hbmFnZXJIYW5kbGUpOworI2Vsc2UKKyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6
Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLm5lc2Vzc2lvbm1hbmFnZXIuY29u
dGVudC1maWx0ZXIiX3MsIFdURjo6bnVsbG9wdCwgbWFuYWdlckhhbmRsZSk7CisjZW5kaWYKKyAg
ICAgICAgbG9hZFBhcmFtZXRlcnMubmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZSA9IFdU
Rk1vdmUobWFuYWdlckhhbmRsZSk7CisKKyAgICAgICAgcHJvY2Vzcy5tYXJrSGFzTmV0d29ya0V4
dGVuc2lvblNhbmRib3hBY2Nlc3MoKTsKKyAgICB9CisKKyNpZiBQTEFURk9STShJT1MpCisgICAg
aWYgKCFwcm9jZXNzLmhhc01hbmFnZWRTZXNzaW9uU2FuZGJveEFjY2VzcygpICYmIFtnZXRXZWJG
aWx0ZXJFdmFsdWF0b3JDbGFzcygpIGlzTWFuYWdlZFNlc3Npb25dKSB7CisgICAgICAgIFNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZSBoYW5kbGU7CisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNy
ZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS51aWtpdC52aWV3c2VydmljZS5jb20u
YXBwbGUuV2ViQ29udGVudEZpbHRlci5yZW1vdGVVSSJfcywgV1RGOjpudWxsb3B0LCBoYW5kbGUp
OworICAgICAgICBsb2FkUGFyYW1ldGVycy5jb250ZW50RmlsdGVyRXh0ZW5zaW9uSGFuZGxlID0g
V1RGTW92ZShoYW5kbGUpOworCisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBmcm9u
dGJvYXJkU2VydmljZUV4dGVuc2lvbkhhbmRsZTsKKyAgICAgICAgaWYgKFNhbmRib3hFeHRlbnNp
b246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS5mcm9udGJvYXJkLnN5c3Rl
bWFwcHNlcnZpY2VzIl9zLCBXVEY6Om51bGxvcHQsIGZyb250Ym9hcmRTZXJ2aWNlRXh0ZW5zaW9u
SGFuZGxlKSkKKyAgICAgICAgICAgIGxvYWRQYXJhbWV0ZXJzLmZyb250Ym9hcmRTZXJ2aWNlRXh0
ZW5zaW9uSGFuZGxlID0gV1RGTW92ZShmcm9udGJvYXJkU2VydmljZUV4dGVuc2lvbkhhbmRsZSk7
CisKKyAgICAgICAgcHJvY2Vzcy5tYXJrSGFzTWFuYWdlZFNlc3Npb25TYW5kYm94QWNjZXNzKCk7
CisgICAgfQorI2VuZGlmCiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpjcmVhdGVTYW5kYm94RXh0
ZW5zaW9uc0lmTmVlZGVkKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlcywgU2FuZGJveEV4dGVu
c2lvbjo6SGFuZGxlJiBmaWxlUmVhZEhhbmRsZSwgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJy
YXkmIGZpbGVVcGxvYWRIYW5kbGVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KaW5kZXggYmYyOTE0NGIwNTY3ZDk2NGJlMmIw
YjNkZTE5ZmVmYjEzMjE3ZWUxYy4uODUyYjRhMzFjMWE1MWQ0YzViZWFhOWNlOGVmZDBjZjE2ZDRm
ZGE0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vz
c1Bvb2xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9j
ZXNzUG9vbENvY29hLm1tCkBAIC03OSwyNyArNzksMTQgQEAKICNpbXBvcnQgPFF1YXJ0ekNvcmUv
Q0FSZW1vdGVMYXllclNlcnZlci5oPgogI2Vsc2UKICNpbXBvcnQgIlVJS2l0U1BJLmgiCi0jaW1w
b3J0IDxwYWwvaW9zL01hbmFnZWRDb25maWd1cmF0aW9uU29mdExpbmsuaD4KLSNpbXBvcnQgPHBh
bC9zcGkvaW9zL01hbmFnZWRDb25maWd1cmF0aW9uU1BJLmg+CiAjZW5kaWYKIAogI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCiAjaW1wb3J0IDxwYWwvc3BpL2lvcy9Nb2JpbGVHZXN0YWx0U1BJLmg+
CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKElPUykKLSNpbXBvcnQgPHBhbC9zcGkvY29jb2EvV2Vi
RmlsdGVyRXZhbHVhdG9yU1BJLmg+Ci0KLVNPRlRfTElOS19QUklWQVRFX0ZSQU1FV09SSyhXZWJD
b250ZW50QW5hbHlzaXMpOwotU09GVF9MSU5LX0NMQVNTKFdlYkNvbnRlbnRBbmFseXNpcywgV2Vi
RmlsdGVyRXZhbHVhdG9yKTsKLSNlbmRpZgotCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAjaW1wb3J0
IDxXZWJDb3JlL1N5c3RlbUJhdHRlcnkuaD4KLSNpbXBvcnQgPHBhbC9zcGkvY29jb2EvTkVGaWx0
ZXJTb3VyY2VTUEkuaD4KLQotU09GVF9MSU5LX0ZSQU1FV09SS19PUFRJT05BTChOZXR3b3JrRXh0
ZW5zaW9uKTsKLVNPRlRfTElOS19DTEFTU19PUFRJT05BTChOZXR3b3JrRXh0ZW5zaW9uLCBORUZp
bHRlclNvdXJjZSk7CiAjZW5kaWYKIAogTlNTdHJpbmcgKldlYlNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25EaXJlY3RvcnlEZWZhdWx0c0tleSA9IEAiV2ViU2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bkRpcmVjdG9yeSI7CkBAIC00MjAsMTggKzQwNyw2IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBs
YXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNz
CiAjZW5kaWYKICAgICAKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBpZiAoW2dldE5FRmlsdGVy
U291cmNlQ2xhc3MoKSBmaWx0ZXJSZXF1aXJlZF0pIHsKLSAgICAgICAgU2FuZGJveEV4dGVuc2lv
bjo6SGFuZGxlIGhlbHBlckhhbmRsZTsKLSAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRl
SGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLm5laGVscGVyIl9zLCBXVEY6Om51bGxvcHQs
IGhlbHBlckhhbmRsZSk7Ci0gICAgICAgIHBhcmFtZXRlcnMubmVIZWxwZXJFeHRlbnNpb25IYW5k
bGUgPSBXVEZNb3ZlKGhlbHBlckhhbmRsZSk7Ci0gICAgICAgIFNhbmRib3hFeHRlbnNpb246Okhh
bmRsZSBtYW5hZ2VySGFuZGxlOwotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA8IDEwMTUwMAotICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVh
dGVIYW5kbGVGb3JNYWNoTG9va3VwKCJjb20uYXBwbGUubmVzZXNzaW9ubWFuYWdlciJfcywgV1RG
OjpudWxsb3B0LCBtYW5hZ2VySGFuZGxlKTsKLSNlbHNlCi0gICAgICAgIFNhbmRib3hFeHRlbnNp
b246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS5uZXNlc3Npb25tYW5hZ2Vy
LmNvbnRlbnQtZmlsdGVyIl9zLCBXVEY6Om51bGxvcHQsIG1hbmFnZXJIYW5kbGUpOwotI2VuZGlm
Ci0gICAgICAgIHBhcmFtZXRlcnMubmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZSA9IFdU
Rk1vdmUobWFuYWdlckhhbmRsZSk7Ci0gICAgfQogICAgIHBhcmFtZXRlcnMuc3lzdGVtSGFzQmF0
dGVyeSA9IHN5c3RlbUhhc0JhdHRlcnkoKTsKIAogICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRs
ZSBtYXBEQkhhbmRsZTsKQEAgLTQzOSwxOCArNDE0LDYgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6
cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzUHJveHkmIHByb2Nl
c3MKICAgICAgICAgcGFyYW1ldGVycy5tYXBEQkV4dGVuc2lvbkhhbmRsZSA9IFdURk1vdmUobWFw
REJIYW5kbGUpOwogI2VuZGlmCiAgICAgCi0jaWYgUExBVEZPUk0oSU9TKQotICAgIGlmIChbZ2V0
V2ViRmlsdGVyRXZhbHVhdG9yQ2xhc3MoKSBpc01hbmFnZWRTZXNzaW9uXSkgewotICAgICAgICBT
YW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgaGFuZGxlOwotICAgICAgICBTYW5kYm94RXh0ZW5zaW9u
OjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwKCJjb20uYXBwbGUudWlraXQudmlld3NlcnZpY2Uu
Y29tLmFwcGxlLldlYkNvbnRlbnRGaWx0ZXIucmVtb3RlVUkiX3MsIFdURjo6bnVsbG9wdCwgaGFu
ZGxlKTsKLSAgICAgICAgcGFyYW1ldGVycy5jb250ZW50RmlsdGVyRXh0ZW5zaW9uSGFuZGxlID0g
V1RGTW92ZShoYW5kbGUpOwotCi0gICAgICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBmcm9u
dGJvYXJkU2VydmljZUV4dGVuc2lvbkhhbmRsZTsKLSAgICAgICAgaWYgKFNhbmRib3hFeHRlbnNp
b246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS5mcm9udGJvYXJkLnN5c3Rl
bWFwcHNlcnZpY2VzIl9zLCBXVEY6Om51bGxvcHQsIGZyb250Ym9hcmRTZXJ2aWNlRXh0ZW5zaW9u
SGFuZGxlKSkKLSAgICAgICAgICAgIHBhcmFtZXRlcnMuZnJvbnRib2FyZFNlcnZpY2VFeHRlbnNp
b25IYW5kbGUgPSBXVEZNb3ZlKGZyb250Ym9hcmRTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlKTsKLSAg
ICB9Ci0jZW5kaWYKLSAgICAKICAgICBpZiAocmVxdWlyZXNDb250YWluZXJNYW5hZ2VyQWNjZXNz
KCkpIHsKICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGhhbmRsZTsKICAgICAgICAg
U2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLmNv
bnRhaW5lcm1hbmFnZXJkIl9zLCBXVEY6Om51bGxvcHQsIGhhbmRsZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBlYjE4YTUwY2FmZDNmMzBiY2QwOTQ4NjQ2
ODJmMDlmMTcwOWNmZGQ4Li5mYzdkNjAwM2YwMmRjODliMmJlYTkxZjc4MTdmMDVjZmYyNzQxMTFh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTEyNjYsNyAr
MTI2Niw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjptYXliZUluaXRpYWxpemVTYW5kYm94RXh0ZW5z
aW9uSGFuZGxlKFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzCiB9CiAKICNpZiAhUExBVEZPUk0oQ09D
T0EpCi12b2lkIFdlYlBhZ2VQcm94eTo6YWRkUGxhdGZvcm1Mb2FkUGFyYW1ldGVycyhMb2FkUGFy
YW1ldGVycyYpCit2b2lkIFdlYlBhZ2VQcm94eTo6YWRkUGxhdGZvcm1Mb2FkUGFyYW1ldGVycyhX
ZWJQcm9jZXNzUHJveHkmLCBMb2FkUGFyYW1ldGVycyYpCiB7CiB9CiAjZW5kaWYKQEAgLTEzMjMs
NyArMTMyMyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpsb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9u
U2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzCiAgICAgbG9hZFBhcmFtZXRlcnMu
aXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbiA9IGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21h
aW47CiAgICAgbWF5YmVJbml0aWFsaXplU2FuZGJveEV4dGVuc2lvbkhhbmRsZShwcm9jZXNzLCB1
cmwsIG1fcGFnZUxvYWRTdGF0ZS5yZXNvdXJjZURpcmVjdG9yeVVSTCgpLCBsb2FkUGFyYW1ldGVy
cy5zYW5kYm94RXh0ZW5zaW9uSGFuZGxlKTsKIAotICAgIGFkZFBsYXRmb3JtTG9hZFBhcmFtZXRl
cnMobG9hZFBhcmFtZXRlcnMpOworICAgIGFkZFBsYXRmb3JtTG9hZFBhcmFtZXRlcnMocHJvY2Vz
cywgbG9hZFBhcmFtZXRlcnMpOwogCiAgICAgcHJlY29ubmVjdFRvKHVybCk7CiAKQEAgLTEzODUs
NyArMTM4NSw3IEBAIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IFdlYlBhZ2VQcm94eTo6bG9hZEZp
bGUoY29uc3QgU3RyaW5nJiBmaWxlVVJMU3RyaW5nLCBjb25zCiAgICAgbG9hZFBhcmFtZXRlcnMu
dXNlckRhdGEgPSBVc2VyRGF0YShwcm9jZXNzKCkudHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxlcyh1
c2VyRGF0YSkuZ2V0KCkpOwogICAgIGNvbnN0IGJvb2wgY2hlY2tBc3N1bWVkUmVhZEFjY2Vzc1Rv
UmVzb3VyY2VVUkwgPSBmYWxzZTsKICAgICBtYXliZUluaXRpYWxpemVTYW5kYm94RXh0ZW5zaW9u
SGFuZGxlKG1fcHJvY2VzcywgZmlsZVVSTCwgcmVzb3VyY2VEaXJlY3RvcnlVUkwsIGxvYWRQYXJh
bWV0ZXJzLnNhbmRib3hFeHRlbnNpb25IYW5kbGUsIGNoZWNrQXNzdW1lZFJlYWRBY2Nlc3NUb1Jl
c291cmNlVVJMKTsKLSAgICBhZGRQbGF0Zm9ybUxvYWRQYXJhbWV0ZXJzKGxvYWRQYXJhbWV0ZXJz
KTsKKyAgICBhZGRQbGF0Zm9ybUxvYWRQYXJhbWV0ZXJzKG1fcHJvY2VzcywgbG9hZFBhcmFtZXRl
cnMpOwogCiAjaWYgSEFWRShTQU5EQk9YX0lTU1VFX1JFQURfRVhURU5TSU9OX1RPX1BST0NFU1Nf
QllfQVVESVRfVE9LRU4pCiAgICAgaWYgKG1fcHJvY2Vzcy0+aXNMYXVuY2hpbmcoKSkKQEAgLTE0
NDUsNyArMTQ0NSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpsb2FkRGF0YVdpdGhOYXZpZ2F0aW9u
U2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywKICAgICBsb2FkUGFyYW1ldGVy
cy53ZWJzaXRlUG9saWNpZXMgPSBXVEZNb3ZlKHdlYnNpdGVQb2xpY2llcyk7CiAgICAgbG9hZFBh
cmFtZXRlcnMuc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSA9IHNob3VsZE9wZW5FeHRlcm5h
bFVSTHNQb2xpY3k7CiAgICAgbG9hZFBhcmFtZXRlcnMuaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERv
bWFpbiA9IGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW47Ci0gICAgYWRkUGxhdGZvcm1Mb2Fk
UGFyYW1ldGVycyhsb2FkUGFyYW1ldGVycyk7CisgICAgYWRkUGxhdGZvcm1Mb2FkUGFyYW1ldGVy
cyhwcm9jZXNzLCBsb2FkUGFyYW1ldGVycyk7CiAKICAgICBwcm9jZXNzLT5hc3N1bWVSZWFkQWNj
ZXNzVG9CYXNlVVJMKCp0aGlzLCBiYXNlVVJMKTsKICAgICBwcm9jZXNzLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlOjpMb2FkRGF0YShsb2FkUGFyYW1ldGVycyksIHdlYlBhZ2VJRCk7CkBAIC0xNDg3
LDcgKzE0ODcsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bG9hZEFsdGVybmF0ZUhUTUwoY29uc3Qg
SVBDOjpEYXRhUmVmZXJlbmNlJiBodG1sRGF0YSwgY29uc3QgUwogICAgIGxvYWRQYXJhbWV0ZXJz
LnVucmVhY2hhYmxlVVJMU3RyaW5nID0gdW5yZWFjaGFibGVVUkwuc3RyaW5nKCk7CiAgICAgbG9h
ZFBhcmFtZXRlcnMucHJvdmlzaW9uYWxMb2FkRXJyb3JVUkxTdHJpbmcgPSBtX2ZhaWxpbmdQcm92
aXNpb25hbExvYWRVUkw7CiAgICAgbG9hZFBhcmFtZXRlcnMudXNlckRhdGEgPSBVc2VyRGF0YShw
cm9jZXNzKCkudHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxlcyh1c2VyRGF0YSkuZ2V0KCkpOwotICAg
IGFkZFBsYXRmb3JtTG9hZFBhcmFtZXRlcnMobG9hZFBhcmFtZXRlcnMpOworICAgIGFkZFBsYXRm
b3JtTG9hZFBhcmFtZXRlcnMocHJvY2VzcygpLCBsb2FkUGFyYW1ldGVycyk7CiAKICAgICBtX3By
b2Nlc3MtPmFzc3VtZVJlYWRBY2Nlc3NUb0Jhc2VVUkwoKnRoaXMsIGJhc2VVUkwuc3RyaW5nKCkp
OwogICAgIG1fcHJvY2Vzcy0+YXNzdW1lUmVhZEFjY2Vzc1RvQmFzZVVSTCgqdGhpcywgdW5yZWFj
aGFibGVVUkwuc3RyaW5nKCkpOwpAQCAtMTUxNiw3ICsxNTE2LDcgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OmxvYWRXZWJBcmNoaXZlRGF0YShBUEk6OkRhdGEqIHdlYkFyY2hpdmVEYXRhLCBBUEk6Ok9i
amVjdCogdXMKICAgICBsb2FkUGFyYW1ldGVycy5NSU1FVHlwZSA9ICJhcHBsaWNhdGlvbi94LXdl
YmFyY2hpdmUiX3M7CiAgICAgbG9hZFBhcmFtZXRlcnMuZW5jb2RpbmdOYW1lID0gInV0Zi0xNiJf
czsKICAgICBsb2FkUGFyYW1ldGVycy51c2VyRGF0YSA9IFVzZXJEYXRhKHByb2Nlc3MoKS50cmFu
c2Zvcm1PYmplY3RzVG9IYW5kbGVzKHVzZXJEYXRhKS5nZXQoKSk7Ci0gICAgYWRkUGxhdGZvcm1M
b2FkUGFyYW1ldGVycyhsb2FkUGFyYW1ldGVycyk7CisgICAgYWRkUGxhdGZvcm1Mb2FkUGFyYW1l
dGVycyhwcm9jZXNzKCksIGxvYWRQYXJhbWV0ZXJzKTsKIAogICAgIHNlbmQoTWVzc2FnZXM6Oldl
YlBhZ2U6OkxvYWREYXRhKGxvYWRQYXJhbWV0ZXJzKSk7CiAgICAgbV9wcm9jZXNzLT5zdGFydFJl
c3BvbnNpdmVuZXNzVGltZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
aW5kZXggMmVkZjQ0ZjU5ZDQ5OGE4MjAxYThhYzc4OTg0OTNiNTIxM2UyNWRhMS4uNDkxMjQwNGZj
NmNkMGUzM2JjMDE2NjcxODJkNTFjM2I1YjAwM2I4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgKQEAgLTYwMyw3ICs2MDMsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGNs
b3NlUGFnZSgpOwogCi0gICAgdm9pZCBhZGRQbGF0Zm9ybUxvYWRQYXJhbWV0ZXJzKExvYWRQYXJh
bWV0ZXJzJik7CisgICAgdm9pZCBhZGRQbGF0Zm9ybUxvYWRQYXJhbWV0ZXJzKFdlYlByb2Nlc3NQ
cm94eSYsIExvYWRQYXJhbWV0ZXJzJik7CiAgICAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gbG9h
ZFJlcXVlc3QoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OlNob3VsZE9wZW5F
eHRlcm5hbFVSTHNQb2xpY3kgPSBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5
OjpTaG91bGRBbGxvd0V4dGVybmFsU2NoZW1lcywgQVBJOjpPYmplY3QqIHVzZXJEYXRhID0gbnVs
bHB0cik7CiAgICAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gbG9hZEZpbGUoY29uc3QgU3RyaW5n
JiBmaWxlVVJMLCBjb25zdCBTdHJpbmcmIHJlc291cmNlRGlyZWN0b3J5VVJMLCBBUEk6Ok9iamVj
dCogdXNlckRhdGEgPSBudWxscHRyKTsKICAgICBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBsb2Fk
RGF0YShjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmLCBjb25zdCBTdHJpbmcmIE1JTUVUeXBlLCBj
b25zdCBTdHJpbmcmIGVuY29kaW5nLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIEFQSTo6T2JqZWN0
KiB1c2VyRGF0YSA9IG51bGxwdHIsIFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xp
Y3kgPSBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxv
dyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IDA0ZmNm
ZDFjZDE2ZjU3ZmQ2N2Q1NTIwNTlhZWVkOWM2YTM5MzkxODMuLjNkOGZjMmM0ODQyMWNlMjQ2NzBj
NmNhZGI2MTYxOThkYzkzYjg3Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5oCkBAIC0zODgsNiArMzg4LDEzIEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaGFzU2xl
ZXBEaXNhYmxlcigpIGNvbnN0OwogCisgICAgYm9vbCBoYXNOZXR3b3JrRXh0ZW5zaW9uU2FuZGJv
eEFjY2VzcygpIGNvbnN0IHsgcmV0dXJuIG1faGFzTmV0d29ya0V4dGVuc2lvblNhbmRib3hBY2Nl
c3M7IH0KKyAgICB2b2lkIG1hcmtIYXNOZXR3b3JrRXh0ZW5zaW9uU2FuZGJveEFjY2VzcygpIHsg
bV9oYXNOZXR3b3JrRXh0ZW5zaW9uU2FuZGJveEFjY2VzcyA9IHRydWU7IH0KKyNpZiBQTEFURk9S
TShJT1MpCisgICAgYm9vbCBoYXNNYW5hZ2VkU2Vzc2lvblNhbmRib3hBY2Nlc3MoKSBjb25zdCB7
IHJldHVybiBtX2hhc01hbmFnZWRTZXNzaW9uU2FuZGJveEFjY2VzczsgfQorICAgIHZvaWQgbWFy
a0hhc01hbmFnZWRTZXNzaW9uU2FuZGJveEFjY2VzcygpIHsgbV9oYXNNYW5hZ2VkU2Vzc2lvblNh
bmRib3hBY2Nlc3MgPSB0cnVlOyB9CisjZW5kaWYKKwogcHJvdGVjdGVkOgogICAgIFdlYlByb2Nl
c3NQcm94eShXZWJQcm9jZXNzUG9vbCYsIFdlYnNpdGVEYXRhU3RvcmUqLCBJc1ByZXdhcm1lZCk7
CiAKQEAgLTU3Nyw2ICs1ODQsMTAgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNQcmV3YXJtZWQ7
CiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
ICAgICBib29sIG1faGFzSXNzdWVkQXR0YWNobWVudEVsZW1lbnRSZWxhdGVkU2FuZGJveEV4dGVu
c2lvbnMgeyBmYWxzZSB9OworI2VuZGlmCisgICAgYm9vbCBtX2hhc05ldHdvcmtFeHRlbnNpb25T
YW5kYm94QWNjZXNzIHsgZmFsc2UgfTsKKyNpZiBQTEFURk9STShJT1MpCisgICAgYm9vbCBtX2hh
c01hbmFnZWRTZXNzaW9uU2FuZGJveEFjY2VzcyB7IGZhbHNlIH07CiAjZW5kaWYKICAgICBPcHRp
b25hbDxVc2VMYXp5U3RvcD4gbV9zaG91bGRTdGFydFJlc3BvbnNpdmVuZXNzVGltZXJXaGVuTGF1
bmNoZWQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nv
Y29hL1dlYlBhZ2VDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nv
Y29hL1dlYlBhZ2VDb2NvYS5tbQppbmRleCBhODgyY2Q3NTgzNjYwZGY0ZGZjZDAzY2YxNjI2MGFl
ZGY3NmFjMDU5Li4yYzc0NDU1NDkzNGVhZTQwMTgxM2M1NDMzYzUxNDIyODg4NDMwNWU3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29j
b2EubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUGFn
ZUNvY29hLm1tCkBAIC00NSwxOSArNDUsMzkgQEAKICNpbXBvcnQgPFdlYkNvcmUvSFRNTE9MaXN0
RWxlbWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9IVE1MVUxpc3RFbGVtZW50Lmg+CiAjaW1wb3J0
IDxXZWJDb3JlL0hpdFRlc3RSZXN1bHQuaD4KKyNpbXBvcnQgPFdlYkNvcmUvTmV0d29ya0V4dGVu
c2lvbkNvbnRlbnRGaWx0ZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvTm9kZVJlbmRlclN0eWxlLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL1BheW1lbnRDb29yZGluYXRvci5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmFuZ2Uu
aD4KICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVyRWxlbWVudC5oPgogCisjaWYgUExBVEZPUk0oSU9T
KQorI2ltcG9ydCA8V2ViQ29yZS9QYXJlbnRhbENvbnRyb2xzQ29udGVudEZpbHRlci5oPgorI2Vu
ZGlmCisKICNpZiBQTEFURk9STShDT0NPQSkKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXZvaWQg
V2ViUGFnZTo6cGxhdGZvcm1EaWRSZWNlaXZlTG9hZFBhcmFtZXRlcnMoY29uc3QgTG9hZFBhcmFt
ZXRlcnMmIGxvYWRQYXJhbWV0ZXJzKQordm9pZCBXZWJQYWdlOjpwbGF0Zm9ybURpZFJlY2VpdmVM
b2FkUGFyYW1ldGVycyhjb25zdCBMb2FkUGFyYW1ldGVycyYgcGFyYW1ldGVycykKIHsKLSAgICBt
X2RhdGFEZXRlY3Rpb25Db250ZXh0ID0gbG9hZFBhcmFtZXRlcnMuZGF0YURldGVjdGlvbkNvbnRl
eHQ7CisgICAgbV9kYXRhRGV0ZWN0aW9uQ29udGV4dCA9IHBhcmFtZXRlcnMuZGF0YURldGVjdGlv
bkNvbnRleHQ7CisKKyAgICBpZiAocGFyYW1ldGVycy5uZUhlbHBlckV4dGVuc2lvbkhhbmRsZSkK
KyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5KCpwYXJhbWV0ZXJz
Lm5lSGVscGVyRXh0ZW5zaW9uSGFuZGxlKTsKKyAgICBpZiAocGFyYW1ldGVycy5uZVNlc3Npb25N
YW5hZ2VyRXh0ZW5zaW9uSGFuZGxlKQorICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1l
UGVybWFuZW50bHkoKnBhcmFtZXRlcnMubmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZSk7
CisgICAgTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXI6OnNldEhhc0NvbnN1bWVkU2FuZGJv
eEV4dGVuc2lvbnMocGFyYW1ldGVycy5uZUhlbHBlckV4dGVuc2lvbkhhbmRsZS5oYXNWYWx1ZSgp
ICYmIHBhcmFtZXRlcnMubmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZS5oYXNWYWx1ZSgp
KTsKKworI2lmIFBMQVRGT1JNKElPUykKKyAgICBpZiAocGFyYW1ldGVycy5jb250ZW50RmlsdGVy
RXh0ZW5zaW9uSGFuZGxlKQorICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFu
ZW50bHkoKnBhcmFtZXRlcnMuY29udGVudEZpbHRlckV4dGVuc2lvbkhhbmRsZSk7CisgICAgUGFy
ZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXI6OnNldEhhc0NvbnN1bWVkU2FuZGJveEV4dGVuc2lv
bihwYXJhbWV0ZXJzLmNvbnRlbnRGaWx0ZXJFeHRlbnNpb25IYW5kbGUuaGFzVmFsdWUoKSk7CisK
KyAgICBpZiAocGFyYW1ldGVycy5mcm9udGJvYXJkU2VydmljZUV4dGVuc2lvbkhhbmRsZSkKKyAg
ICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5KCpwYXJhbWV0ZXJzLmZy
b250Ym9hcmRTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlKTsKKyNlbmRpZgogfQogCiB2b2lkIFdlYlBh
Z2U6OnJlcXVlc3RBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbkluZm8oQ2FsbGJhY2tJRCBjYWxsYmFj
a0lEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nl
c3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29j
b2EubW0KaW5kZXggNjEwNTVmMDhiNDY4ZTVhZWQ4NzFjZmI3ODU1NGRmYzAwNDAzOTUyYy4uNjdm
MGM0NGIxNTBjZTQ1MDRlODEyMTFjNWUzZmUwZGMzODE5OWEzZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCkBAIC02Myw3ICs2Myw2
IEBACiAjaW1wb3J0IDxXZWJDb3JlL0xvZ0luaXRpYWxpemF0aW9uLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL01lbW9yeVJlbGVhc2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvTlNTY3JvbGxlckltcERldGFp
bHMuaD4KLSNpbXBvcnQgPFdlYkNvcmUvTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvUGVyZm9ybWFuY2VMb2dnaW5nLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1BpY3R1cmVJblBpY3R1cmVTdXBwb3J0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1J1bnRpbWVBcHBs
aWNhdGlvbkNoZWNrcy5oPgpAQCAtOTQsMTAgKzkzLDYgQEAKICNpbXBvcnQgPEphdmFTY3JpcHRD
b3JlL1JlbW90ZUluc3BlY3Rvci5oPgogI2VuZGlmCiAKLSNpZiBQTEFURk9STShJT1MpCi0jaW1w
b3J0IDxXZWJDb3JlL1BhcmVudGFsQ29udHJvbHNDb250ZW50RmlsdGVyLmg+Ci0jZW5kaWYKLQog
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAjaW1wb3J0ICJVSUtpdFNQSS5oIgogI2ltcG9ydCA8
Ym1hbGxvYy9NZW1vcnlTdGF0dXNTUEkuaD4KQEAgLTI3NCwxMyArMjY5LDYgQEAgdm9pZCBXZWJQ
cm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMmIHBhcmEKICNpZiBQTEFURk9STShJT1MpCiAgICAgaWYgKHBhcmFtZXRlcnMuY29t
cGlsZXJTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlKQogICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpj
b25zdW1lUGVybWFuZW50bHkoKnBhcmFtZXRlcnMuY29tcGlsZXJTZXJ2aWNlRXh0ZW5zaW9uSGFu
ZGxlKTsKLQotICAgIGlmIChwYXJhbWV0ZXJzLmNvbnRlbnRGaWx0ZXJFeHRlbnNpb25IYW5kbGUp
Ci0gICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNvbnN1bWVQZXJtYW5lbnRseSgqcGFyYW1ldGVy
cy5jb250ZW50RmlsdGVyRXh0ZW5zaW9uSGFuZGxlKTsKLSAgICBQYXJlbnRhbENvbnRyb2xzQ29u
dGVudEZpbHRlcjo6c2V0SGFzQ29uc3VtZWRTYW5kYm94RXh0ZW5zaW9uKHBhcmFtZXRlcnMuY29u
dGVudEZpbHRlckV4dGVuc2lvbkhhbmRsZS5oYXNWYWx1ZSgpKTsKLQotICAgIGlmIChwYXJhbWV0
ZXJzLmZyb250Ym9hcmRTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlKQotICAgICAgICBTYW5kYm94RXh0
ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkoKnBhcmFtZXRlcnMuZnJvbnRib2FyZFNlcnZpY2VF
eHRlbnNpb25IYW5kbGUpOwogI2VuZGlmCiAKICAgICBpZiAocGFyYW1ldGVycy5jb250YWluZXJN
YW5hZ2VyRXh0ZW5zaW9uSGFuZGxlKQpAQCAtMjkyLDEyICsyODAsNiBAQCB2b2lkIFdlYlByb2Nl
c3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycyYgcGFyYQogICAgIFNhbmRib3hFeHRlbnNpb246OmNvbnN1bWVQZXJtYW5lbnRseShwYXJh
bWV0ZXJzLmR5bmFtaWNJT0tpdEV4dGVuc2lvbkhhbmRsZXMpOwogI2VuZGlmCiAgICAgCi0gICAg
aWYgKHBhcmFtZXRlcnMubmVIZWxwZXJFeHRlbnNpb25IYW5kbGUpCi0gICAgICAgIFNhbmRib3hF
eHRlbnNpb246OmNvbnN1bWVQZXJtYW5lbnRseSgqcGFyYW1ldGVycy5uZUhlbHBlckV4dGVuc2lv
bkhhbmRsZSk7Ci0gICAgaWYgKHBhcmFtZXRlcnMubmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhh
bmRsZSkKLSAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5KCpwYXJh
bWV0ZXJzLm5lU2Vzc2lvbk1hbmFnZXJFeHRlbnNpb25IYW5kbGUpOwotICAgIE5ldHdvcmtFeHRl
bnNpb25Db250ZW50RmlsdGVyOjpzZXRIYXNDb25zdW1lZFNhbmRib3hFeHRlbnNpb25zKHBhcmFt
ZXRlcnMubmVIZWxwZXJFeHRlbnNpb25IYW5kbGUuaGFzVmFsdWUoKSAmJiBwYXJhbWV0ZXJzLm5l
U2Vzc2lvbk1hbmFnZXJFeHRlbnNpb25IYW5kbGUuaGFzVmFsdWUoKSk7Ci0KICAgICBzZXRTeXN0
ZW1IYXNCYXR0ZXJ5KHBhcmFtZXRlcnMuc3lzdGVtSGFzQmF0dGVyeSk7CiAKICNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402353</attachid>
            <date>2020-06-19 17:12:58 -0700</date>
            <delta_ts>2020-06-19 17:22:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213414-20200619171257.patch</filename>
            <type>text/plain</type>
            <size>28838</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMjkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTg4YmVhOWY0ODFjZjYy
ODRhYzc2YjE5YWMxM2I4ZjRmYWZiNTAyZC4uMzAwNGMzMjI5ZjQ2Y2JkNjcxMDIwYzlmNzhiOGJi
ZWZlOWJlZmQ5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIwLTA2LTE5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBEZWxheSBpc3N1
aW5nIE1hbmFnZWRTZXNzaW9uICYgTmV0d29yayBFeHRlbnNpb24gc2FuZGJveCBleHRlbnNpb25z
IHVudGlsIGEgbG9hZCBpcyBhY3R1YWxseSBpc3N1ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzQxNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NjQ1NDg2ODQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUGVyIEFybmUgVm9sbGFuLgorCisgICAg
ICAgIHNldEhhc0NvbnN1bWVkU2FuZGJveEV4dGVuc2lvbnMoKSBjYW4gbm93IGdldCBjYWxsZWQg
c2V2ZXJhbCB0aW1lcywgZXZlcnkgdGltZSBhIFdlYlBhZ2UgaXMgY3JlYXRlZC4KKyAgICAgICAg
T25jZSBhIHNhbmRib3ggZXh0ZW5zaW9uIGhhcyBiZWVuIGNvbnN1bWVkLCB0aGVyZSBpcyBubyBn
b2luZyBiYWNrIHNvIHJldHVybiBlYXJseSBpZiB0aGUgc3RhdGUgaXMKKyAgICAgICAgYWxyZWFk
eSAiQ29uc3VtZWQiLgorCisgICAgICAgICogcGxhdGZvcm0vY29jb2EvTmV0d29ya0V4dGVuc2lv
bkNvbnRlbnRGaWx0ZXIubW06CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrRXh0ZW5zaW9uQ29u
dGVudEZpbHRlcjo6c2V0SGFzQ29uc3VtZWRTYW5kYm94RXh0ZW5zaW9ucyk6CisgICAgICAgICog
cGxhdGZvcm0vY29jb2EvUGFyZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXIubW06CisgICAgICAg
IChXZWJDb3JlOjpQYXJlbnRhbENvbnRyb2xzQ29udGVudEZpbHRlcjo6c2V0SGFzQ29uc3VtZWRT
YW5kYm94RXh0ZW5zaW9uKToKKwogMjAyMC0wNi0xOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgogCiAgICAgICAgIEF2b2lkIGluaXRpYWxpemluZyBSZW5kZXJUaGVtZSBzaW5nbGV0
b24gdW5uZWNlc3NhcmlseSBpbiB0aGUgVUlQcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDViYTFjZGIxYTU3
MDFmYzFlM2Y1MDM3YjM3Njg5ZDUwOWQ2ZDE4NGEuLmZkMDc4ZGVjOGIxZjUyMDE2OWZkZDE4ZWI2
NWMxNWM0YWVjYzJiZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDYgQEAKKzIwMjAtMDYtMTkgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIERlbGF5IGlz
c3VpbmcgTWFuYWdlZFNlc3Npb24gJiBOZXR3b3JrIEV4dGVuc2lvbiBzYW5kYm94IGV4dGVuc2lv
bnMgdW50aWwgYSBsb2FkIGlzIGFjdHVhbGx5IGlzc3VlZAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzNDE0CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS82NDU0ODY4ND4KKworICAgICAgICBSZXZpZXdlZCBieSBQZXIgQXJuZSBWb2xsYW4uCisKKyAg
ICAgICAgRGVsYXkgaXNzdWluZyBNYW5hZ2VkU2Vzc2lvbiAmIE5ldHdvcmsgRXh0ZW5zaW9uIHNh
bmRib3ggZXh0ZW5zaW9ucyB1bnRpbCBhIGxvYWQgaXMgYWN0dWFsbHkgaXNzdWVkLgorICAgICAg
ICBUaGlzIGlzIGEgU2FmYXJpIGxhdW5jaCB0aW1lIG9wdGltaXphdGlvbiBzaW5jZSB0aGUgY2hl
Y2tzIG5lZWRlZCB0byBkZWNpZGUgd2hldGhlciBvciBub3QgdG8gaXNzdWUKKyAgICAgICAgdGhl
IGV4dGVuc2lvbnMgYXJlIGV4cGVuc2l2ZSBhbmQgdGhlcmUgaXMgbm8gcmVhc29uIHRvIGlzc3Vl
IHRoZW0gYXMgc29vbiBhcyB0aGUgcHJvY2VzcyBsYXVuY2hlcworICAgICAgICAoZXNwZWNpYWxs
eSBpbiB0aGUgY2FzZSBvZiBhIHByZXdhcm1lZCBwcm9jZXNzKS4KKworICAgICAgICAqIFNoYXJl
ZC9Db2NvYS9Mb2FkUGFyYW1ldGVyc0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpMb2FkUGFy
YW1ldGVyczo6cGxhdGZvcm1FbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpMb2FkUGFy
YW1ldGVyczo6cGxhdGZvcm1EZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9Mb2FkUGFyYW1ldGVy
cy5oOgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVj
b2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5OjphZGRQbGF0Zm9ybUxvYWRQYXJhbWV0ZXJzKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbToKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OmFkZFBsYXRmb3JtTG9hZFBhcmFtZXRlcnMpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRpb25TaGFyZWQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OmxvYWRGaWxlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5Ojpsb2FkRGF0YVdpdGhOYXZpZ2F0aW9uU2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5Ojpsb2FkQWx0ZXJuYXRlSFRNTCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6bG9hZFdlYkFyY2hpdmVEYXRhKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6Omhhc05ldHdvcmtFeHRlbnNpb25TYW5kYm94QWNj
ZXNzIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjptYXJrSGFzTmV0
d29ya0V4dGVuc2lvblNhbmRib3hBY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNz
UHJveHk6Omhhc01hbmFnZWRTZXNzaW9uU2FuZGJveEFjY2VzcyBjb25zdCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6bWFya0hhc01hbmFnZWRTZXNzaW9uU2FuZGJveEFjY2Vz
cyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VDb2NvYS5tbToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cGxhdGZvcm1EaWRSZWNlaXZlTG9hZFBhcmFtZXRl
cnMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKToK
KwogMjAyMC0wNi0xOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAg
IEF2b2lkIGluaXRpYWxpemluZyBSZW5kZXJUaGVtZSBzaW5nbGV0b24gdW5uZWNlc3NhcmlseSBp
biB0aGUgVUlQcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9OZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2NvY29hL05ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLm1tCmluZGV4IGViZjM5YzM2
ZmRlODNkYTZiOWJiZTgxYzRkMTI2NThjYzA5MTg1MzAuLjJiMjM5Mzg2ZGY2ZjIzYjBmMmFiY2M2
MWU5YzcyMTVjNWFhOWQyNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nv
Y29hL05ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2NvY29hL05ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLm1tCkBAIC0yMjgs
NiArMjI4LDkgQEAgdm9pZCBOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlcjo6aGFuZGxlRGVj
aXNpb24oTkVGaWx0ZXJTb3VyY2VTdGF0dXMgc3RhdHVzLAogCiB2b2lkIE5ldHdvcmtFeHRlbnNp
b25Db250ZW50RmlsdGVyOjpzZXRIYXNDb25zdW1lZFNhbmRib3hFeHRlbnNpb25zKGJvb2wgaGFz
Q29uc3VtZWRTYW5kYm94RXh0ZW5zaW9ucykKIHsKKyAgICBpZiAobV9zYW5kYm94RXh0ZW5zaW9u
c1N0YXRlID09IFNhbmRib3hFeHRlbnNpb25zU3RhdGU6OkNvbnN1bWVkKQorICAgICAgICByZXR1
cm47CisKICAgICBtX3NhbmRib3hFeHRlbnNpb25zU3RhdGUgPSAoaGFzQ29uc3VtZWRTYW5kYm94
RXh0ZW5zaW9ucyA/IFNhbmRib3hFeHRlbnNpb25zU3RhdGU6OkNvbnN1bWVkIDogU2FuZGJveEV4
dGVuc2lvbnNTdGF0ZTo6Tm90Q29uc3VtZWQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jb2NvYS9QYXJlbnRhbENvbnRyb2xzQ29udGVudEZpbHRlci5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1BhcmVudGFsQ29udHJvbHNDb250ZW50RmlsdGVy
Lm1tCmluZGV4IGFlOGZiMzkyOTYyMzY0ZDczNDk4NTEzZjgxZGUwOGI3ZjRmZWUwNWMuLjQ5Zjhm
YTRiY2UwZDBmODgwYmE0Mzc1MTNhMzI2NmY1NmY1YTAwNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2NvY29hL1BhcmVudGFsQ29udHJvbHNDb250ZW50RmlsdGVyLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1BhcmVudGFsQ29udHJvbHNDb250ZW50
RmlsdGVyLm1tCkBAIC0xNTAsNiArMTUwLDkgQEAgdm9pZCBQYXJlbnRhbENvbnRyb2xzQ29udGVu
dEZpbHRlcjo6dXBkYXRlRmlsdGVyU3RhdGUoKQogI2lmIFBMQVRGT1JNKElPUykKIHZvaWQgUGFy
ZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXI6OnNldEhhc0NvbnN1bWVkU2FuZGJveEV4dGVuc2lv
bihib29sIGhhc0NvbnN1bWVkU2FuZGJveEV4dGVuc2lvbikKIHsKKyAgICBpZiAobV9zYW5kYm94
RXh0ZW5zaW9uU3RhdGUgPT0gU2FuZGJveEV4dGVuc2lvblN0YXRlOjpDb25zdW1lZCkKKyAgICAg
ICAgcmV0dXJuOworCiAgICAgbV9zYW5kYm94RXh0ZW5zaW9uU3RhdGUgPSAoaGFzQ29uc3VtZWRT
YW5kYm94RXh0ZW5zaW9uID8gU2FuZGJveEV4dGVuc2lvblN0YXRlOjpDb25zdW1lZCA6IFNhbmRi
b3hFeHRlbnNpb25TdGF0ZTo6Tm90Q29uc3VtZWQpOwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9Mb2FkUGFyYW1ldGVyc0NvY29hLm1tIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvQ29jb2EvTG9hZFBhcmFtZXRlcnNDb2NvYS5tbQppbmRleCA5NDIxNDNh
NTdlOTMxMTI2YWEzZjRlNjM4MGEwYTA1ZTU3MjAwOWNkLi5lOThmN2RiMmE2N2JlZDdlMzQzMGZi
Mzk4YzEwYWRhZDMzY2I0NjFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2Nv
YS9Mb2FkUGFyYW1ldGVyc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29h
L0xvYWRQYXJhbWV0ZXJzQ29jb2EubW0KQEAgLTM2LDEyICszNiw0NSBAQCBuYW1lc3BhY2UgV2Vi
S2l0IHsKIHZvaWQgTG9hZFBhcmFtZXRlcnM6OnBsYXRmb3JtRW5jb2RlKElQQzo6RW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKIHsKICAgICBJUEM6OmVuY29kZShlbmNvZGVyLCBkYXRhRGV0ZWN0aW9u
Q29udGV4dC5nZXQoKSk7CisKKyAgICBlbmNvZGVyIDw8IG5lSGVscGVyRXh0ZW5zaW9uSGFuZGxl
OworICAgIGVuY29kZXIgPDwgbmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZTsKKyNpZiBQ
TEFURk9STShJT1MpCisgICAgZW5jb2RlciA8PCBjb250ZW50RmlsdGVyRXh0ZW5zaW9uSGFuZGxl
OworICAgIGVuY29kZXIgPDwgZnJvbnRib2FyZFNlcnZpY2VFeHRlbnNpb25IYW5kbGU7CisjZW5k
aWYKIH0KIAotYm9vbCBMb2FkUGFyYW1ldGVyczo6cGxhdGZvcm1EZWNvZGUoSVBDOjpEZWNvZGVy
JiBkZWNvZGVyLCBMb2FkUGFyYW1ldGVycyYgZGF0YSkKK2Jvb2wgTG9hZFBhcmFtZXRlcnM6OnBs
YXRmb3JtRGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgTG9hZFBhcmFtZXRlcnMmIHBhcmFt
ZXRlcnMpCiB7Ci0gICAgaWYgKCFJUEM6OmRlY29kZShkZWNvZGVyLCBkYXRhLmRhdGFEZXRlY3Rp
b25Db250ZXh0KSkKKyAgICBpZiAoIUlQQzo6ZGVjb2RlKGRlY29kZXIsIHBhcmFtZXRlcnMuZGF0
YURldGVjdGlvbkNvbnRleHQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBPcHRpb25h
bDxPcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+PiBuZUhlbHBlckV4dGVuc2lvbkhh
bmRsZTsKKyAgICBkZWNvZGVyID4+IG5lSGVscGVyRXh0ZW5zaW9uSGFuZGxlOworICAgIGlmICgh
bmVIZWxwZXJFeHRlbnNpb25IYW5kbGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBwYXJh
bWV0ZXJzLm5lSGVscGVyRXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZSgqbmVIZWxwZXJFeHRlbnNp
b25IYW5kbGUpOworCisgICAgT3B0aW9uYWw8T3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFu
ZGxlPj4gbmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZTsKKyAgICBkZWNvZGVyID4+IG5l
U2Vzc2lvbk1hbmFnZXJFeHRlbnNpb25IYW5kbGU7CisgICAgaWYgKCFuZVNlc3Npb25NYW5hZ2Vy
RXh0ZW5zaW9uSGFuZGxlKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcGFyYW1ldGVycy5u
ZVNlc3Npb25NYW5hZ2VyRXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZSgqbmVTZXNzaW9uTWFuYWdl
ckV4dGVuc2lvbkhhbmRsZSk7CisKKyNpZiBQTEFURk9STShJT1MpCisgICAgT3B0aW9uYWw8T3B0
aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPj4gY29udGVudEZpbHRlckV4dGVuc2lvbkhh
bmRsZTsKKyAgICBkZWNvZGVyID4+IGNvbnRlbnRGaWx0ZXJFeHRlbnNpb25IYW5kbGU7CisgICAg
aWYgKCFjb250ZW50RmlsdGVyRXh0ZW5zaW9uSGFuZGxlKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgcGFyYW1ldGVycy5jb250ZW50RmlsdGVyRXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZSgq
Y29udGVudEZpbHRlckV4dGVuc2lvbkhhbmRsZSk7CisKKyAgICBPcHRpb25hbDxPcHRpb25hbDxT
YW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+PiBmcm9udGJvYXJkU2VydmljZUV4dGVuc2lvbkhhbmRs
ZTsKKyAgICBkZWNvZGVyID4+IGZyb250Ym9hcmRTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlOworICAg
IGlmICghZnJvbnRib2FyZFNlcnZpY2VFeHRlbnNpb25IYW5kbGUpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICBwYXJhbWV0ZXJzLmZyb250Ym9hcmRTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlID0g
V1RGTW92ZSgqZnJvbnRib2FyZFNlcnZpY2VFeHRlbnNpb25IYW5kbGUpOworI2VuZGlmCiAKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0xvYWRQ
YXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Mb2FkUGFyYW1ldGVycy5oCmluZGV4
IDQ3MTBkMzI3YzA4NmU0MjE5YWIwMDNjZDM1ZmEzYWE1Zjk3MTEwYjQuLmU4ODE0NWIwYWVhNTVi
MGYxMWQ0OTUwMjQ0ZjZlMWUwZDk0Mjk0YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0xvYWRQYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvTG9hZFBhcmFt
ZXRlcnMuaApAQCAtNzQsNiArNzQsMTIgQEAgc3RydWN0IExvYWRQYXJhbWV0ZXJzIHsKIAogI2lm
IFBMQVRGT1JNKENPQ09BKQogICAgIFJldGFpblB0cjxOU0RpY3Rpb25hcnk+IGRhdGFEZXRlY3Rp
b25Db250ZXh0OworICAgIE9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gbmVIZWxw
ZXJFeHRlbnNpb25IYW5kbGU7CisgICAgT3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxl
PiBuZVNlc3Npb25NYW5hZ2VyRXh0ZW5zaW9uSGFuZGxlOworI2VuZGlmCisjaWYgUExBVEZPUk0o
SU9TKQorICAgIE9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gY29udGVudEZpbHRl
ckV4dGVuc2lvbkhhbmRsZTsKKyAgICBPcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+
IGZyb250Ym9hcmRTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlOwogI2VuZGlmCiB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNw
cCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3Bw
CmluZGV4IDllNzBiYTVkODkwNWJjODc2YmI3MjZjMjY0YjY5MmJkOGQxOThmZTYuLjlhNDM0OWRk
NDNlZTVjNWE2MzAwMDU2NWU2NGRkMWM5OGM4ZGEzNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC0xNTcsOCAr
MTU3LDYgQEAgdm9pZCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIAogI2lmIFBMQVRGT1JNKElPUykKICAgICBlbmNv
ZGVyIDw8IGNvbXBpbGVyU2VydmljZUV4dGVuc2lvbkhhbmRsZTsKLSAgICBlbmNvZGVyIDw8IGNv
bnRlbnRGaWx0ZXJFeHRlbnNpb25IYW5kbGU7Ci0gICAgZW5jb2RlciA8PCBmcm9udGJvYXJkU2Vy
dmljZUV4dGVuc2lvbkhhbmRsZTsKICNlbmRpZgogCiAgICAgZW5jb2RlciA8PCBjb250YWluZXJN
YW5hZ2VyRXh0ZW5zaW9uSGFuZGxlOwpAQCAtMTcwLDggKzE2OCw2IEBAIHZvaWQgV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QK
ICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgZW5jb2RlciA8PCBuZUhlbHBlckV4
dGVuc2lvbkhhbmRsZTsKLSAgICBlbmNvZGVyIDw8IG5lU2Vzc2lvbk1hbmFnZXJFeHRlbnNpb25I
YW5kbGU7CiAgICAgZW5jb2RlciA8PCBtYXBEQkV4dGVuc2lvbkhhbmRsZTsKICAgICBlbmNvZGVy
IDw8IHN5c3RlbUhhc0JhdHRlcnk7CiAjZW5kaWYKQEAgLTQyMywxOCArNDE5LDYgQEAgYm9vbCBX
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVy
LCBXZWJQcm9jZXNzQ3JlYXQKICAgICBpZiAoIWNvbXBpbGVyU2VydmljZUV4dGVuc2lvbkhhbmRs
ZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHBhcmFtZXRlcnMuY29tcGlsZXJTZXJ2aWNl
RXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZSgqY29tcGlsZXJTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxl
KTsKLQotICAgIE9wdGlvbmFsPE9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4+IGNv
bnRlbnRGaWx0ZXJFeHRlbnNpb25IYW5kbGU7Ci0gICAgZGVjb2RlciA+PiBjb250ZW50RmlsdGVy
RXh0ZW5zaW9uSGFuZGxlOwotICAgIGlmICghY29udGVudEZpbHRlckV4dGVuc2lvbkhhbmRsZSkK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHBhcmFtZXRlcnMuY29udGVudEZpbHRlckV4dGVu
c2lvbkhhbmRsZSA9IFdURk1vdmUoKmNvbnRlbnRGaWx0ZXJFeHRlbnNpb25IYW5kbGUpOwotCi0g
ICAgT3B0aW9uYWw8T3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPj4gZnJvbnRib2Fy
ZFNlcnZpY2VFeHRlbnNpb25IYW5kbGU7Ci0gICAgZGVjb2RlciA+PiBmcm9udGJvYXJkU2Vydmlj
ZUV4dGVuc2lvbkhhbmRsZTsKLSAgICBpZiAoIWZyb250Ym9hcmRTZXJ2aWNlRXh0ZW5zaW9uSGFu
ZGxlKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcGFyYW1ldGVycy5mcm9udGJvYXJkU2Vy
dmljZUV4dGVuc2lvbkhhbmRsZSA9IFdURk1vdmUoKmZyb250Ym9hcmRTZXJ2aWNlRXh0ZW5zaW9u
SGFuZGxlKTsKICNlbmRpZgogCiAgICAgT3B0aW9uYWw8T3B0aW9uYWw8U2FuZGJveEV4dGVuc2lv
bjo6SGFuZGxlPj4gY29udGFpbmVyTWFuYWdlckV4dGVuc2lvbkhhbmRsZTsKQEAgLTQ2NCwxOCAr
NDQ4LDYgQEAgYm9vbCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpE
ZWNvZGVyJiBkZWNvZGVyLCBXZWJQcm9jZXNzQ3JlYXQKICNlbmRpZgogCiAjaWYgUExBVEZPUk0o
Q09DT0EpCi0gICAgT3B0aW9uYWw8T3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPj4g
bmVIZWxwZXJFeHRlbnNpb25IYW5kbGU7Ci0gICAgZGVjb2RlciA+PiBuZUhlbHBlckV4dGVuc2lv
bkhhbmRsZTsKLSAgICBpZiAoIW5lSGVscGVyRXh0ZW5zaW9uSGFuZGxlKQotICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgcGFyYW1ldGVycy5uZUhlbHBlckV4dGVuc2lvbkhhbmRsZSA9IFdURk1v
dmUoKm5lSGVscGVyRXh0ZW5zaW9uSGFuZGxlKTsKLQotICAgIE9wdGlvbmFsPE9wdGlvbmFsPFNh
bmRib3hFeHRlbnNpb246OkhhbmRsZT4+IG5lU2Vzc2lvbk1hbmFnZXJFeHRlbnNpb25IYW5kbGU7
Ci0gICAgZGVjb2RlciA+PiBuZVNlc3Npb25NYW5hZ2VyRXh0ZW5zaW9uSGFuZGxlOwotICAgIGlm
ICghbmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZSkKLSAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgIHBhcmFtZXRlcnMubmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZSA9IFdURk1v
dmUoKm5lU2Vzc2lvbk1hbmFnZXJFeHRlbnNpb25IYW5kbGUpOwotCiAgICAgT3B0aW9uYWw8T3B0
aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPj4gbWFwREJFeHRlbnNpb25IYW5kbGU7CiAg
ICAgZGVjb2RlciA+PiBtYXBEQkV4dGVuc2lvbkhhbmRsZTsKICAgICBpZiAoIW1hcERCRXh0ZW5z
aW9uSGFuZGxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5oCmluZGV4IDM5YjU3YzhlYmJiNzI1OWM1YWU5ZDg4ODJmOWYwNzRiMWY0
YWIyM2QuLmFhMWI3YWExZmI3NmJjMDdkYzgwNmZkMDJkM2RkMWNhMTlmYjRlMGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgK
QEAgLTIwMSw4ICsyMDEsNiBAQCBzdHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7
CiAgICAgCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIE9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246
OkhhbmRsZT4gY29tcGlsZXJTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlOwotICAgIE9wdGlvbmFsPFNh
bmRib3hFeHRlbnNpb246OkhhbmRsZT4gY29udGVudEZpbHRlckV4dGVuc2lvbkhhbmRsZTsKLSAg
ICBPcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+IGZyb250Ym9hcmRTZXJ2aWNlRXh0
ZW5zaW9uSGFuZGxlOwogI2VuZGlmCiAKICAgICBPcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpI
YW5kbGU+IGNvbnRhaW5lck1hbmFnZXJFeHRlbnNpb25IYW5kbGU7CkBAIC0yMTQsOCArMjEyLDYg
QEAgc3RydWN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgewogI2VuZGlmCiAKICNpZiBQ
TEFURk9STShDT0NPQSkKLSAgICBPcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+IG5l
SGVscGVyRXh0ZW5zaW9uSGFuZGxlOwotICAgIE9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246Okhh
bmRsZT4gbmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZTsKICAgICBPcHRpb25hbDxTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGU+IG1hcERCRXh0ZW5zaW9uSGFuZGxlOwogICAgIGJvb2wgc3lz
dGVtSGFzQmF0dGVyeSB7IGZhbHNlIH07CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KaW5kZXggMzZmMDFjYmY3MWRhZWNk
ZDc1MzE0YzZkMTYwZGE3OGZmZGJhOWQxNC4uNzJlNDgzMzNiOGU4MDEwYzg1M2NiMzYwNWM4YThi
ZGZmOGQ3NWNjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2Vi
UGFnZVByb3h5Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2Vi
UGFnZVByb3h5Q29jb2EubW0KQEAgLTQ3LDEzICs0NywyNSBAQAogI2ltcG9ydCA8V2ViQ29yZS9T
ZWFyY2hQb3B1cE1lbnVDb2NvYS5oPgogI2ltcG9ydCA8V2ViQ29yZS9UZXh0QWx0ZXJuYXRpdmVX
aXRoUmFuZ2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvVmFsaWRhdGlvbkJ1YmJsZS5oPgorI2ltcG9y
dCA8cGFsL3NwaS9jb2NvYS9ORUZpbHRlclNvdXJjZVNQSS5oPgogI2ltcG9ydCA8d3RmL0Jsb2Nr
UHRyLmg+CisjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KICNpbXBvcnQgPHd0Zi9jZi9UeXBl
Q2FzdHNDRi5oPgogCiAjaWYgRU5BQkxFKE1FRElBX1VTQUdFKQogI2ltcG9ydCAiTWVkaWFVc2Fn
ZU1hbmFnZXJDb2NvYS5oIgogI2VuZGlmCiAKKyNpZiBQTEFURk9STShJT1MpCisjaW1wb3J0IDxw
YWwvc3BpL2NvY29hL1dlYkZpbHRlckV2YWx1YXRvclNQSS5oPgorCitTT0ZUX0xJTktfUFJJVkFU
RV9GUkFNRVdPUksoV2ViQ29udGVudEFuYWx5c2lzKTsKK1NPRlRfTElOS19DTEFTUyhXZWJDb250
ZW50QW5hbHlzaXMsIFdlYkZpbHRlckV2YWx1YXRvcik7CisjZW5kaWYKKworU09GVF9MSU5LX0ZS
QU1FV09SS19PUFRJT05BTChOZXR3b3JrRXh0ZW5zaW9uKTsKK1NPRlRfTElOS19DTEFTU19PUFRJ
T05BTChOZXR3b3JrRXh0ZW5zaW9uLCBORUZpbHRlclNvdXJjZSk7CisKICNkZWZpbmUgTUVTU0FH
RV9DSEVDSyhhc3NlcnRpb24pIE1FU1NBR0VfQ0hFQ0tfQkFTRShhc3NlcnRpb24sIHByb2Nlc3Mo
KS5jb25uZWN0aW9uKCkpCiAjZGVmaW5lIE1FU1NBR0VfQ0hFQ0tfQ09NUExFVElPTihhc3NlcnRp
b24sIGNvbXBsZXRpb24pIE1FU1NBR0VfQ0hFQ0tfQ09NUExFVElPTl9CQVNFKGFzc2VydGlvbiwg
cHJvY2VzcygpLmNvbm5lY3Rpb24oKSwgY29tcGxldGlvbikKIApAQCAtMTI5LDkgKzE0MSwzOCBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6Y29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lU2hh
cmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JgogfQogI2VuZGlmCiAKLXZvaWQgV2ViUGFnZVByb3h5
OjphZGRQbGF0Zm9ybUxvYWRQYXJhbWV0ZXJzKExvYWRQYXJhbWV0ZXJzJiBsb2FkUGFyYW1ldGVy
cykKK3ZvaWQgV2ViUGFnZVByb3h5OjphZGRQbGF0Zm9ybUxvYWRQYXJhbWV0ZXJzKFdlYlByb2Nl
c3NQcm94eSYgcHJvY2VzcywgTG9hZFBhcmFtZXRlcnMmIGxvYWRQYXJhbWV0ZXJzKQogewogICAg
IGxvYWRQYXJhbWV0ZXJzLmRhdGFEZXRlY3Rpb25Db250ZXh0ID0gbV91aUNsaWVudC0+ZGF0YURl
dGVjdGlvbkNvbnRleHQoKTsKKworICAgIGlmICghcHJvY2Vzcy5oYXNOZXR3b3JrRXh0ZW5zaW9u
U2FuZGJveEFjY2VzcygpICYmIFtnZXRORUZpbHRlclNvdXJjZUNsYXNzKCkgZmlsdGVyUmVxdWly
ZWRdKSB7CisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBoZWxwZXJIYW5kbGU7Cisg
ICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5h
cHBsZS5uZWhlbHBlciJfcywgV1RGOjpudWxsb3B0LCBoZWxwZXJIYW5kbGUpOworICAgICAgICBs
b2FkUGFyYW1ldGVycy5uZUhlbHBlckV4dGVuc2lvbkhhbmRsZSA9IFdURk1vdmUoaGVscGVySGFu
ZGxlKTsKKyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIG1hbmFnZXJIYW5kbGU7Cisj
aWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwgMTAx
NTAwCisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAo
ImNvbS5hcHBsZS5uZXNlc3Npb25tYW5hZ2VyIl9zLCBXVEY6Om51bGxvcHQsIG1hbmFnZXJIYW5k
bGUpOworI2Vsc2UKKyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFj
aExvb2t1cCgiY29tLmFwcGxlLm5lc2Vzc2lvbm1hbmFnZXIuY29udGVudC1maWx0ZXIiX3MsIFdU
Rjo6bnVsbG9wdCwgbWFuYWdlckhhbmRsZSk7CisjZW5kaWYKKyAgICAgICAgbG9hZFBhcmFtZXRl
cnMubmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZSA9IFdURk1vdmUobWFuYWdlckhhbmRs
ZSk7CisKKyAgICAgICAgcHJvY2Vzcy5tYXJrSGFzTmV0d29ya0V4dGVuc2lvblNhbmRib3hBY2Nl
c3MoKTsKKyAgICB9CisKKyNpZiBQTEFURk9STShJT1MpCisgICAgaWYgKCFwcm9jZXNzLmhhc01h
bmFnZWRTZXNzaW9uU2FuZGJveEFjY2VzcygpICYmIFtnZXRXZWJGaWx0ZXJFdmFsdWF0b3JDbGFz
cygpIGlzTWFuYWdlZFNlc3Npb25dKSB7CisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRs
ZSBoYW5kbGU7CisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hM
b29rdXAoImNvbS5hcHBsZS51aWtpdC52aWV3c2VydmljZS5jb20uYXBwbGUuV2ViQ29udGVudEZp
bHRlci5yZW1vdGVVSSJfcywgV1RGOjpudWxsb3B0LCBoYW5kbGUpOworICAgICAgICBsb2FkUGFy
YW1ldGVycy5jb250ZW50RmlsdGVyRXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZShoYW5kbGUpOwor
CisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBmcm9udGJvYXJkU2VydmljZUV4dGVu
c2lvbkhhbmRsZTsKKyAgICAgICAgaWYgKFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZv
ck1hY2hMb29rdXAoImNvbS5hcHBsZS5mcm9udGJvYXJkLnN5c3RlbWFwcHNlcnZpY2VzIl9zLCBX
VEY6Om51bGxvcHQsIGZyb250Ym9hcmRTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlKSkKKyAgICAgICAg
ICAgIGxvYWRQYXJhbWV0ZXJzLmZyb250Ym9hcmRTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlID0gV1RG
TW92ZShmcm9udGJvYXJkU2VydmljZUV4dGVuc2lvbkhhbmRsZSk7CisKKyAgICAgICAgcHJvY2Vz
cy5tYXJrSGFzTWFuYWdlZFNlc3Npb25TYW5kYm94QWNjZXNzKCk7CisgICAgfQorI2VuZGlmCiB9
CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpjcmVhdGVTYW5kYm94RXh0ZW5zaW9uc0lmTmVlZGVkKGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlcywgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiBmaWxl
UmVhZEhhbmRsZSwgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkmIGZpbGVVcGxvYWRIYW5k
bGVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vz
c1Bvb2xDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQ
b29sQ29jb2EubW0KaW5kZXggYmYyOTE0NGIwNTY3ZDk2NGJlMmIwYjNkZTE5ZmVmYjEzMjE3ZWUx
Yy4uODUyYjRhMzFjMWE1MWQ0YzViZWFhOWNlOGVmZDBjZjE2ZDRmZGE0ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCkBA
IC03OSwyNyArNzksMTQgQEAKICNpbXBvcnQgPFF1YXJ0ekNvcmUvQ0FSZW1vdGVMYXllclNlcnZl
ci5oPgogI2Vsc2UKICNpbXBvcnQgIlVJS2l0U1BJLmgiCi0jaW1wb3J0IDxwYWwvaW9zL01hbmFn
ZWRDb25maWd1cmF0aW9uU29mdExpbmsuaD4KLSNpbXBvcnQgPHBhbC9zcGkvaW9zL01hbmFnZWRD
b25maWd1cmF0aW9uU1BJLmg+CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAj
aW1wb3J0IDxwYWwvc3BpL2lvcy9Nb2JpbGVHZXN0YWx0U1BJLmg+CiAjZW5kaWYKIAotI2lmIFBM
QVRGT1JNKElPUykKLSNpbXBvcnQgPHBhbC9zcGkvY29jb2EvV2ViRmlsdGVyRXZhbHVhdG9yU1BJ
Lmg+Ci0KLVNPRlRfTElOS19QUklWQVRFX0ZSQU1FV09SSyhXZWJDb250ZW50QW5hbHlzaXMpOwot
U09GVF9MSU5LX0NMQVNTKFdlYkNvbnRlbnRBbmFseXNpcywgV2ViRmlsdGVyRXZhbHVhdG9yKTsK
LSNlbmRpZgotCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAjaW1wb3J0IDxXZWJDb3JlL1N5c3RlbUJh
dHRlcnkuaD4KLSNpbXBvcnQgPHBhbC9zcGkvY29jb2EvTkVGaWx0ZXJTb3VyY2VTUEkuaD4KLQot
U09GVF9MSU5LX0ZSQU1FV09SS19PUFRJT05BTChOZXR3b3JrRXh0ZW5zaW9uKTsKLVNPRlRfTElO
S19DTEFTU19PUFRJT05BTChOZXR3b3JrRXh0ZW5zaW9uLCBORUZpbHRlclNvdXJjZSk7CiAjZW5k
aWYKIAogTlNTdHJpbmcgKldlYlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnlEZWZh
dWx0c0tleSA9IEAiV2ViU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeSI7CkBAIC00
MjAsMTggKzQwNyw2IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdl
YlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzCiAjZW5kaWYKICAgICAKICNp
ZiBQTEFURk9STShDT0NPQSkKLSAgICBpZiAoW2dldE5FRmlsdGVyU291cmNlQ2xhc3MoKSBmaWx0
ZXJSZXF1aXJlZF0pIHsKLSAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGhlbHBlckhh
bmRsZTsKLSAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1
cCgiY29tLmFwcGxlLm5laGVscGVyIl9zLCBXVEY6Om51bGxvcHQsIGhlbHBlckhhbmRsZSk7Ci0g
ICAgICAgIHBhcmFtZXRlcnMubmVIZWxwZXJFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3ZlKGhlbHBl
ckhhbmRsZSk7Ci0gICAgICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBtYW5hZ2VySGFuZGxl
OwotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8
IDEwMTUwMAotICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9v
a3VwKCJjb20uYXBwbGUubmVzZXNzaW9ubWFuYWdlciJfcywgV1RGOjpudWxsb3B0LCBtYW5hZ2Vy
SGFuZGxlKTsKLSNlbHNlCi0gICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZv
ck1hY2hMb29rdXAoImNvbS5hcHBsZS5uZXNlc3Npb25tYW5hZ2VyLmNvbnRlbnQtZmlsdGVyIl9z
LCBXVEY6Om51bGxvcHQsIG1hbmFnZXJIYW5kbGUpOwotI2VuZGlmCi0gICAgICAgIHBhcmFtZXRl
cnMubmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZSA9IFdURk1vdmUobWFuYWdlckhhbmRs
ZSk7Ci0gICAgfQogICAgIHBhcmFtZXRlcnMuc3lzdGVtSGFzQmF0dGVyeSA9IHN5c3RlbUhhc0Jh
dHRlcnkoKTsKIAogICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBtYXBEQkhhbmRsZTsKQEAg
LTQzOSwxOCArNDE0LDYgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXpl
V2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MKICAgICAgICAgcGFyYW1l
dGVycy5tYXBEQkV4dGVuc2lvbkhhbmRsZSA9IFdURk1vdmUobWFwREJIYW5kbGUpOwogI2VuZGlm
CiAgICAgCi0jaWYgUExBVEZPUk0oSU9TKQotICAgIGlmIChbZ2V0V2ViRmlsdGVyRXZhbHVhdG9y
Q2xhc3MoKSBpc01hbmFnZWRTZXNzaW9uXSkgewotICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpI
YW5kbGUgaGFuZGxlOwotICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JN
YWNoTG9va3VwKCJjb20uYXBwbGUudWlraXQudmlld3NlcnZpY2UuY29tLmFwcGxlLldlYkNvbnRl
bnRGaWx0ZXIucmVtb3RlVUkiX3MsIFdURjo6bnVsbG9wdCwgaGFuZGxlKTsKLSAgICAgICAgcGFy
YW1ldGVycy5jb250ZW50RmlsdGVyRXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZShoYW5kbGUpOwot
Ci0gICAgICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBmcm9udGJvYXJkU2VydmljZUV4dGVu
c2lvbkhhbmRsZTsKLSAgICAgICAgaWYgKFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZv
ck1hY2hMb29rdXAoImNvbS5hcHBsZS5mcm9udGJvYXJkLnN5c3RlbWFwcHNlcnZpY2VzIl9zLCBX
VEY6Om51bGxvcHQsIGZyb250Ym9hcmRTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlKSkKLSAgICAgICAg
ICAgIHBhcmFtZXRlcnMuZnJvbnRib2FyZFNlcnZpY2VFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3Zl
KGZyb250Ym9hcmRTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlKTsKLSAgICB9Ci0jZW5kaWYKLSAgICAK
ICAgICBpZiAocmVxdWlyZXNDb250YWluZXJNYW5hZ2VyQWNjZXNzKCkpIHsKICAgICAgICAgU2Fu
ZGJveEV4dGVuc2lvbjo6SGFuZGxlIGhhbmRsZTsKICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6
Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLmNvbnRhaW5lcm1hbmFnZXJkIl9z
LCBXVEY6Om51bGxvcHQsIGhhbmRsZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcAppbmRleCBlYjE4YTUwY2FmZDNmMzBiY2QwOTQ4NjQ2ODJmMDlmMTcwOWNmZGQ4Li5m
YzdkNjAwM2YwMmRjODliMmJlYTkxZjc4MTdmMDVjZmYyNzQxMTFhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTEyNjYsNyArMTI2Niw3IEBAIHZvaWQgV2Vi
UGFnZVByb3h5OjptYXliZUluaXRpYWxpemVTYW5kYm94RXh0ZW5zaW9uSGFuZGxlKFdlYlByb2Nl
c3NQcm94eSYgcHJvY2VzCiB9CiAKICNpZiAhUExBVEZPUk0oQ09DT0EpCi12b2lkIFdlYlBhZ2VQ
cm94eTo6YWRkUGxhdGZvcm1Mb2FkUGFyYW1ldGVycyhMb2FkUGFyYW1ldGVycyYpCit2b2lkIFdl
YlBhZ2VQcm94eTo6YWRkUGxhdGZvcm1Mb2FkUGFyYW1ldGVycyhXZWJQcm9jZXNzUHJveHkmLCBM
b2FkUGFyYW1ldGVycyYpCiB7CiB9CiAjZW5kaWYKQEAgLTEzMjMsNyArMTMyMyw3IEBAIHZvaWQg
V2ViUGFnZVByb3h5Ojpsb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9j
ZXNzUHJveHk+JiYgcHJvY2VzCiAgICAgbG9hZFBhcmFtZXRlcnMuaXNOYXZpZ2F0aW5nVG9BcHBC
b3VuZERvbWFpbiA9IGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW47CiAgICAgbWF5YmVJbml0
aWFsaXplU2FuZGJveEV4dGVuc2lvbkhhbmRsZShwcm9jZXNzLCB1cmwsIG1fcGFnZUxvYWRTdGF0
ZS5yZXNvdXJjZURpcmVjdG9yeVVSTCgpLCBsb2FkUGFyYW1ldGVycy5zYW5kYm94RXh0ZW5zaW9u
SGFuZGxlKTsKIAotICAgIGFkZFBsYXRmb3JtTG9hZFBhcmFtZXRlcnMobG9hZFBhcmFtZXRlcnMp
OworICAgIGFkZFBsYXRmb3JtTG9hZFBhcmFtZXRlcnMocHJvY2VzcywgbG9hZFBhcmFtZXRlcnMp
OwogCiAgICAgcHJlY29ubmVjdFRvKHVybCk7CiAKQEAgLTEzODUsNyArMTM4NSw3IEBAIFJlZlB0
cjxBUEk6Ok5hdmlnYXRpb24+IFdlYlBhZ2VQcm94eTo6bG9hZEZpbGUoY29uc3QgU3RyaW5nJiBm
aWxlVVJMU3RyaW5nLCBjb25zCiAgICAgbG9hZFBhcmFtZXRlcnMudXNlckRhdGEgPSBVc2VyRGF0
YShwcm9jZXNzKCkudHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxlcyh1c2VyRGF0YSkuZ2V0KCkpOwog
ICAgIGNvbnN0IGJvb2wgY2hlY2tBc3N1bWVkUmVhZEFjY2Vzc1RvUmVzb3VyY2VVUkwgPSBmYWxz
ZTsKICAgICBtYXliZUluaXRpYWxpemVTYW5kYm94RXh0ZW5zaW9uSGFuZGxlKG1fcHJvY2Vzcywg
ZmlsZVVSTCwgcmVzb3VyY2VEaXJlY3RvcnlVUkwsIGxvYWRQYXJhbWV0ZXJzLnNhbmRib3hFeHRl
bnNpb25IYW5kbGUsIGNoZWNrQXNzdW1lZFJlYWRBY2Nlc3NUb1Jlc291cmNlVVJMKTsKLSAgICBh
ZGRQbGF0Zm9ybUxvYWRQYXJhbWV0ZXJzKGxvYWRQYXJhbWV0ZXJzKTsKKyAgICBhZGRQbGF0Zm9y
bUxvYWRQYXJhbWV0ZXJzKG1fcHJvY2VzcywgbG9hZFBhcmFtZXRlcnMpOwogCiAjaWYgSEFWRShT
QU5EQk9YX0lTU1VFX1JFQURfRVhURU5TSU9OX1RPX1BST0NFU1NfQllfQVVESVRfVE9LRU4pCiAg
ICAgaWYgKG1fcHJvY2Vzcy0+aXNMYXVuY2hpbmcoKSkKQEAgLTE0NDUsNyArMTQ0NSw3IEBAIHZv
aWQgV2ViUGFnZVByb3h5Ojpsb2FkRGF0YVdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9j
ZXNzUHJveHk+JiYgcHJvY2VzcywKICAgICBsb2FkUGFyYW1ldGVycy53ZWJzaXRlUG9saWNpZXMg
PSBXVEZNb3ZlKHdlYnNpdGVQb2xpY2llcyk7CiAgICAgbG9hZFBhcmFtZXRlcnMuc2hvdWxkT3Bl
bkV4dGVybmFsVVJMc1BvbGljeSA9IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k7CiAgICAg
bG9hZFBhcmFtZXRlcnMuaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbiA9IGlzTmF2aWdhdGlu
Z1RvQXBwQm91bmREb21haW47Ci0gICAgYWRkUGxhdGZvcm1Mb2FkUGFyYW1ldGVycyhsb2FkUGFy
YW1ldGVycyk7CisgICAgYWRkUGxhdGZvcm1Mb2FkUGFyYW1ldGVycyhwcm9jZXNzLCBsb2FkUGFy
YW1ldGVycyk7CiAKICAgICBwcm9jZXNzLT5hc3N1bWVSZWFkQWNjZXNzVG9CYXNlVVJMKCp0aGlz
LCBiYXNlVVJMKTsKICAgICBwcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpMb2FkRGF0
YShsb2FkUGFyYW1ldGVycyksIHdlYlBhZ2VJRCk7CkBAIC0xNDg3LDcgKzE0ODcsNyBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6bG9hZEFsdGVybmF0ZUhUTUwoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNl
JiBodG1sRGF0YSwgY29uc3QgUwogICAgIGxvYWRQYXJhbWV0ZXJzLnVucmVhY2hhYmxlVVJMU3Ry
aW5nID0gdW5yZWFjaGFibGVVUkwuc3RyaW5nKCk7CiAgICAgbG9hZFBhcmFtZXRlcnMucHJvdmlz
aW9uYWxMb2FkRXJyb3JVUkxTdHJpbmcgPSBtX2ZhaWxpbmdQcm92aXNpb25hbExvYWRVUkw7CiAg
ICAgbG9hZFBhcmFtZXRlcnMudXNlckRhdGEgPSBVc2VyRGF0YShwcm9jZXNzKCkudHJhbnNmb3Jt
T2JqZWN0c1RvSGFuZGxlcyh1c2VyRGF0YSkuZ2V0KCkpOwotICAgIGFkZFBsYXRmb3JtTG9hZFBh
cmFtZXRlcnMobG9hZFBhcmFtZXRlcnMpOworICAgIGFkZFBsYXRmb3JtTG9hZFBhcmFtZXRlcnMo
cHJvY2VzcygpLCBsb2FkUGFyYW1ldGVycyk7CiAKICAgICBtX3Byb2Nlc3MtPmFzc3VtZVJlYWRB
Y2Nlc3NUb0Jhc2VVUkwoKnRoaXMsIGJhc2VVUkwuc3RyaW5nKCkpOwogICAgIG1fcHJvY2Vzcy0+
YXNzdW1lUmVhZEFjY2Vzc1RvQmFzZVVSTCgqdGhpcywgdW5yZWFjaGFibGVVUkwuc3RyaW5nKCkp
OwpAQCAtMTUxNiw3ICsxNTE2LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmxvYWRXZWJBcmNoaXZl
RGF0YShBUEk6OkRhdGEqIHdlYkFyY2hpdmVEYXRhLCBBUEk6Ok9iamVjdCogdXMKICAgICBsb2Fk
UGFyYW1ldGVycy5NSU1FVHlwZSA9ICJhcHBsaWNhdGlvbi94LXdlYmFyY2hpdmUiX3M7CiAgICAg
bG9hZFBhcmFtZXRlcnMuZW5jb2RpbmdOYW1lID0gInV0Zi0xNiJfczsKICAgICBsb2FkUGFyYW1l
dGVycy51c2VyRGF0YSA9IFVzZXJEYXRhKHByb2Nlc3MoKS50cmFuc2Zvcm1PYmplY3RzVG9IYW5k
bGVzKHVzZXJEYXRhKS5nZXQoKSk7Ci0gICAgYWRkUGxhdGZvcm1Mb2FkUGFyYW1ldGVycyhsb2Fk
UGFyYW1ldGVycyk7CisgICAgYWRkUGxhdGZvcm1Mb2FkUGFyYW1ldGVycyhwcm9jZXNzKCksIGxv
YWRQYXJhbWV0ZXJzKTsKIAogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkxvYWREYXRhKGxv
YWRQYXJhbWV0ZXJzKSk7CiAgICAgbV9wcm9jZXNzLT5zdGFydFJlc3BvbnNpdmVuZXNzVGltZXIo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggMmVkZjQ0ZjU5ZDQ5
OGE4MjAxYThhYzc4OTg0OTNiNTIxM2UyNWRhMS4uNDkxMjQwNGZjNmNkMGUzM2JjMDE2NjcxODJk
NTFjM2I1YjAwM2I4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAg
LTYwMyw3ICs2MDMsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGNsb3NlUGFnZSgpOwogCi0gICAg
dm9pZCBhZGRQbGF0Zm9ybUxvYWRQYXJhbWV0ZXJzKExvYWRQYXJhbWV0ZXJzJik7CisgICAgdm9p
ZCBhZGRQbGF0Zm9ybUxvYWRQYXJhbWV0ZXJzKFdlYlByb2Nlc3NQcm94eSYsIExvYWRQYXJhbWV0
ZXJzJik7CiAgICAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gbG9hZFJlcXVlc3QoV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kg
PSBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGRBbGxvd0V4dGVy
bmFsU2NoZW1lcywgQVBJOjpPYmplY3QqIHVzZXJEYXRhID0gbnVsbHB0cik7CiAgICAgUmVmUHRy
PEFQSTo6TmF2aWdhdGlvbj4gbG9hZEZpbGUoY29uc3QgU3RyaW5nJiBmaWxlVVJMLCBjb25zdCBT
dHJpbmcmIHJlc291cmNlRGlyZWN0b3J5VVJMLCBBUEk6Ok9iamVjdCogdXNlckRhdGEgPSBudWxs
cHRyKTsKICAgICBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBsb2FkRGF0YShjb25zdCBJUEM6OkRh
dGFSZWZlcmVuY2UmLCBjb25zdCBTdHJpbmcmIE1JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGVuY29k
aW5nLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSA9IG51bGxw
dHIsIFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgPSBXZWJDb3JlOjpTaG91
bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IDA0ZmNmZDFjZDE2ZjU3ZmQ2N2Q1NTIw
NTlhZWVkOWM2YTM5MzkxODMuLjNkOGZjMmM0ODQyMWNlMjQ2NzBjNmNhZGI2MTYxOThkYzkzYjg3
Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC0zODgs
NiArMzg4LDEzIEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaGFzU2xlZXBEaXNhYmxlcigpIGNvbnN0
OwogCisgICAgYm9vbCBoYXNOZXR3b3JrRXh0ZW5zaW9uU2FuZGJveEFjY2VzcygpIGNvbnN0IHsg
cmV0dXJuIG1faGFzTmV0d29ya0V4dGVuc2lvblNhbmRib3hBY2Nlc3M7IH0KKyAgICB2b2lkIG1h
cmtIYXNOZXR3b3JrRXh0ZW5zaW9uU2FuZGJveEFjY2VzcygpIHsgbV9oYXNOZXR3b3JrRXh0ZW5z
aW9uU2FuZGJveEFjY2VzcyA9IHRydWU7IH0KKyNpZiBQTEFURk9STShJT1MpCisgICAgYm9vbCBo
YXNNYW5hZ2VkU2Vzc2lvblNhbmRib3hBY2Nlc3MoKSBjb25zdCB7IHJldHVybiBtX2hhc01hbmFn
ZWRTZXNzaW9uU2FuZGJveEFjY2VzczsgfQorICAgIHZvaWQgbWFya0hhc01hbmFnZWRTZXNzaW9u
U2FuZGJveEFjY2VzcygpIHsgbV9oYXNNYW5hZ2VkU2Vzc2lvblNhbmRib3hBY2Nlc3MgPSB0cnVl
OyB9CisjZW5kaWYKKwogcHJvdGVjdGVkOgogICAgIFdlYlByb2Nlc3NQcm94eShXZWJQcm9jZXNz
UG9vbCYsIFdlYnNpdGVEYXRhU3RvcmUqLCBJc1ByZXdhcm1lZCk7CiAKQEAgLTU3Nyw2ICs1ODQs
MTAgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNQcmV3YXJtZWQ7CiAjaWYgRU5BQkxFKEFUVEFD
SE1FTlRfRUxFTUVOVCkgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBib29sIG1faGFzSXNz
dWVkQXR0YWNobWVudEVsZW1lbnRSZWxhdGVkU2FuZGJveEV4dGVuc2lvbnMgeyBmYWxzZSB9Owor
I2VuZGlmCisgICAgYm9vbCBtX2hhc05ldHdvcmtFeHRlbnNpb25TYW5kYm94QWNjZXNzIHsgZmFs
c2UgfTsKKyNpZiBQTEFURk9STShJT1MpCisgICAgYm9vbCBtX2hhc01hbmFnZWRTZXNzaW9uU2Fu
ZGJveEFjY2VzcyB7IGZhbHNlIH07CiAjZW5kaWYKICAgICBPcHRpb25hbDxVc2VMYXp5U3RvcD4g
bV9zaG91bGRTdGFydFJlc3BvbnNpdmVuZXNzVGltZXJXaGVuTGF1bmNoZWQ7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VDb2NvYS5t
bSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VDb2NvYS5t
bQppbmRleCBhODgyY2Q3NTgzNjYwZGY0ZGZjZDAzY2YxNjI2MGFlZGY3NmFjMDU5Li4yYzc0NDU1
NDkzNGVhZTQwMTgxM2M1NDMzYzUxNDIyODg4NDMwNWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29jb2EubW0KKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUGFnZUNvY29hLm1tCkBAIC00NSwx
OSArNDUsMzkgQEAKICNpbXBvcnQgPFdlYkNvcmUvSFRNTE9MaXN0RWxlbWVudC5oPgogI2ltcG9y
dCA8V2ViQ29yZS9IVE1MVUxpc3RFbGVtZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hpdFRlc3RS
ZXN1bHQuaD4KKyNpbXBvcnQgPFdlYkNvcmUvTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIu
aD4KICNpbXBvcnQgPFdlYkNvcmUvTm9kZVJlbmRlclN0eWxlLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1BheW1lbnRDb29yZGluYXRvci5oPgogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybU1lZGlhU2Vz
c2lvbk1hbmFnZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmFuZ2UuaD4KICNpbXBvcnQgPFdlYkNv
cmUvUmVuZGVyRWxlbWVudC5oPgogCisjaWYgUExBVEZPUk0oSU9TKQorI2ltcG9ydCA8V2ViQ29y
ZS9QYXJlbnRhbENvbnRyb2xzQ29udGVudEZpbHRlci5oPgorI2VuZGlmCisKICNpZiBQTEFURk9S
TShDT0NPQSkKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXZvaWQgV2ViUGFnZTo6cGxhdGZvcm1E
aWRSZWNlaXZlTG9hZFBhcmFtZXRlcnMoY29uc3QgTG9hZFBhcmFtZXRlcnMmIGxvYWRQYXJhbWV0
ZXJzKQordm9pZCBXZWJQYWdlOjpwbGF0Zm9ybURpZFJlY2VpdmVMb2FkUGFyYW1ldGVycyhjb25z
dCBMb2FkUGFyYW1ldGVycyYgcGFyYW1ldGVycykKIHsKLSAgICBtX2RhdGFEZXRlY3Rpb25Db250
ZXh0ID0gbG9hZFBhcmFtZXRlcnMuZGF0YURldGVjdGlvbkNvbnRleHQ7CisgICAgbV9kYXRhRGV0
ZWN0aW9uQ29udGV4dCA9IHBhcmFtZXRlcnMuZGF0YURldGVjdGlvbkNvbnRleHQ7CisKKyAgICBp
ZiAocGFyYW1ldGVycy5uZUhlbHBlckV4dGVuc2lvbkhhbmRsZSkKKyAgICAgICAgU2FuZGJveEV4
dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5KCpwYXJhbWV0ZXJzLm5lSGVscGVyRXh0ZW5zaW9u
SGFuZGxlKTsKKyAgICBpZiAocGFyYW1ldGVycy5uZVNlc3Npb25NYW5hZ2VyRXh0ZW5zaW9uSGFu
ZGxlKQorICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkoKnBhcmFt
ZXRlcnMubmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZSk7CisgICAgTmV0d29ya0V4dGVu
c2lvbkNvbnRlbnRGaWx0ZXI6OnNldEhhc0NvbnN1bWVkU2FuZGJveEV4dGVuc2lvbnMocGFyYW1l
dGVycy5uZUhlbHBlckV4dGVuc2lvbkhhbmRsZS5oYXNWYWx1ZSgpICYmIHBhcmFtZXRlcnMubmVT
ZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZS5oYXNWYWx1ZSgpKTsKKworI2lmIFBMQVRGT1JN
KElPUykKKyAgICBpZiAocGFyYW1ldGVycy5jb250ZW50RmlsdGVyRXh0ZW5zaW9uSGFuZGxlKQor
ICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkoKnBhcmFtZXRlcnMu
Y29udGVudEZpbHRlckV4dGVuc2lvbkhhbmRsZSk7CisgICAgUGFyZW50YWxDb250cm9sc0NvbnRl
bnRGaWx0ZXI6OnNldEhhc0NvbnN1bWVkU2FuZGJveEV4dGVuc2lvbihwYXJhbWV0ZXJzLmNvbnRl
bnRGaWx0ZXJFeHRlbnNpb25IYW5kbGUuaGFzVmFsdWUoKSk7CisKKyAgICBpZiAocGFyYW1ldGVy
cy5mcm9udGJvYXJkU2VydmljZUV4dGVuc2lvbkhhbmRsZSkKKyAgICAgICAgU2FuZGJveEV4dGVu
c2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5KCpwYXJhbWV0ZXJzLmZyb250Ym9hcmRTZXJ2aWNlRXh0
ZW5zaW9uSGFuZGxlKTsKKyNlbmRpZgogfQogCiB2b2lkIFdlYlBhZ2U6OnJlcXVlc3RBY3RpdmVO
b3dQbGF5aW5nU2Vzc2lvbkluZm8oQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbSBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KaW5kZXggNjEwNTVm
MDhiNDY4ZTVhZWQ4NzFjZmI3ODU1NGRmYzAwNDAzOTUyYy4uNjdmMGM0NGIxNTBjZTQ1MDRlODEy
MTFjNWUzZmUwZGMzODE5OWEzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCkBAIC02Myw3ICs2Myw2IEBACiAjaW1wb3J0IDxXZWJD
b3JlL0xvZ0luaXRpYWxpemF0aW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL01lbW9yeVJlbGVhc2Uu
aD4KICNpbXBvcnQgPFdlYkNvcmUvTlNTY3JvbGxlckltcERldGFpbHMuaD4KLSNpbXBvcnQgPFdl
YkNvcmUvTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUv
UGVyZm9ybWFuY2VMb2dnaW5nLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BpY3R1cmVJblBpY3R1cmVT
dXBwb3J0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oPgpA
QCAtOTQsMTAgKzkzLDYgQEAKICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL1JlbW90ZUluc3BlY3Rv
ci5oPgogI2VuZGlmCiAKLSNpZiBQTEFURk9STShJT1MpCi0jaW1wb3J0IDxXZWJDb3JlL1BhcmVu
dGFsQ29udHJvbHNDb250ZW50RmlsdGVyLmg+Ci0jZW5kaWYKLQogI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpCiAjaW1wb3J0ICJVSUtpdFNQSS5oIgogI2ltcG9ydCA8Ym1hbGxvYy9NZW1vcnlTdGF0
dXNTUEkuaD4KQEAgLTI3NCwxMyArMjY5LDYgQEAgdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUlu
aXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmEKICNp
ZiBQTEFURk9STShJT1MpCiAgICAgaWYgKHBhcmFtZXRlcnMuY29tcGlsZXJTZXJ2aWNlRXh0ZW5z
aW9uSGFuZGxlKQogICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHko
KnBhcmFtZXRlcnMuY29tcGlsZXJTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlKTsKLQotICAgIGlmIChw
YXJhbWV0ZXJzLmNvbnRlbnRGaWx0ZXJFeHRlbnNpb25IYW5kbGUpCi0gICAgICAgIFNhbmRib3hF
eHRlbnNpb246OmNvbnN1bWVQZXJtYW5lbnRseSgqcGFyYW1ldGVycy5jb250ZW50RmlsdGVyRXh0
ZW5zaW9uSGFuZGxlKTsKLSAgICBQYXJlbnRhbENvbnRyb2xzQ29udGVudEZpbHRlcjo6c2V0SGFz
Q29uc3VtZWRTYW5kYm94RXh0ZW5zaW9uKHBhcmFtZXRlcnMuY29udGVudEZpbHRlckV4dGVuc2lv
bkhhbmRsZS5oYXNWYWx1ZSgpKTsKLQotICAgIGlmIChwYXJhbWV0ZXJzLmZyb250Ym9hcmRTZXJ2
aWNlRXh0ZW5zaW9uSGFuZGxlKQotICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVy
bWFuZW50bHkoKnBhcmFtZXRlcnMuZnJvbnRib2FyZFNlcnZpY2VFeHRlbnNpb25IYW5kbGUpOwog
I2VuZGlmCiAKICAgICBpZiAocGFyYW1ldGVycy5jb250YWluZXJNYW5hZ2VyRXh0ZW5zaW9uSGFu
ZGxlKQpAQCAtMjkyLDEyICsyODAsNiBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlh
bGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYQogICAgIFNh
bmRib3hFeHRlbnNpb246OmNvbnN1bWVQZXJtYW5lbnRseShwYXJhbWV0ZXJzLmR5bmFtaWNJT0tp
dEV4dGVuc2lvbkhhbmRsZXMpOwogI2VuZGlmCiAgICAgCi0gICAgaWYgKHBhcmFtZXRlcnMubmVI
ZWxwZXJFeHRlbnNpb25IYW5kbGUpCi0gICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNvbnN1bWVQ
ZXJtYW5lbnRseSgqcGFyYW1ldGVycy5uZUhlbHBlckV4dGVuc2lvbkhhbmRsZSk7Ci0gICAgaWYg
KHBhcmFtZXRlcnMubmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZSkKLSAgICAgICAgU2Fu
ZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5KCpwYXJhbWV0ZXJzLm5lU2Vzc2lvbk1h
bmFnZXJFeHRlbnNpb25IYW5kbGUpOwotICAgIE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVy
OjpzZXRIYXNDb25zdW1lZFNhbmRib3hFeHRlbnNpb25zKHBhcmFtZXRlcnMubmVIZWxwZXJFeHRl
bnNpb25IYW5kbGUuaGFzVmFsdWUoKSAmJiBwYXJhbWV0ZXJzLm5lU2Vzc2lvbk1hbmFnZXJFeHRl
bnNpb25IYW5kbGUuaGFzVmFsdWUoKSk7Ci0KICAgICBzZXRTeXN0ZW1IYXNCYXR0ZXJ5KHBhcmFt
ZXRlcnMuc3lzdGVtSGFzQmF0dGVyeSk7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402356</attachid>
            <date>2020-06-19 17:22:29 -0700</date>
            <delta_ts>2020-06-19 17:37:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213414-20200619172228.patch</filename>
            <type>text/plain</type>
            <size>28897</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMjkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTg4YmVhOWY0ODFjZjYy
ODRhYzc2YjE5YWMxM2I4ZjRmYWZiNTAyZC4uMzAwNGMzMjI5ZjQ2Y2JkNjcxMDIwYzlmNzhiOGJi
ZWZlOWJlZmQ5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIwLTA2LTE5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBEZWxheSBpc3N1
aW5nIE1hbmFnZWRTZXNzaW9uICYgTmV0d29yayBFeHRlbnNpb24gc2FuZGJveCBleHRlbnNpb25z
IHVudGlsIGEgbG9hZCBpcyBhY3R1YWxseSBpc3N1ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzQxNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NjQ1NDg2ODQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUGVyIEFybmUgVm9sbGFuLgorCisgICAg
ICAgIHNldEhhc0NvbnN1bWVkU2FuZGJveEV4dGVuc2lvbnMoKSBjYW4gbm93IGdldCBjYWxsZWQg
c2V2ZXJhbCB0aW1lcywgZXZlcnkgdGltZSBhIFdlYlBhZ2UgaXMgY3JlYXRlZC4KKyAgICAgICAg
T25jZSBhIHNhbmRib3ggZXh0ZW5zaW9uIGhhcyBiZWVuIGNvbnN1bWVkLCB0aGVyZSBpcyBubyBn
b2luZyBiYWNrIHNvIHJldHVybiBlYXJseSBpZiB0aGUgc3RhdGUgaXMKKyAgICAgICAgYWxyZWFk
eSAiQ29uc3VtZWQiLgorCisgICAgICAgICogcGxhdGZvcm0vY29jb2EvTmV0d29ya0V4dGVuc2lv
bkNvbnRlbnRGaWx0ZXIubW06CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrRXh0ZW5zaW9uQ29u
dGVudEZpbHRlcjo6c2V0SGFzQ29uc3VtZWRTYW5kYm94RXh0ZW5zaW9ucyk6CisgICAgICAgICog
cGxhdGZvcm0vY29jb2EvUGFyZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXIubW06CisgICAgICAg
IChXZWJDb3JlOjpQYXJlbnRhbENvbnRyb2xzQ29udGVudEZpbHRlcjo6c2V0SGFzQ29uc3VtZWRT
YW5kYm94RXh0ZW5zaW9uKToKKwogMjAyMC0wNi0xOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgogCiAgICAgICAgIEF2b2lkIGluaXRpYWxpemluZyBSZW5kZXJUaGVtZSBzaW5nbGV0
b24gdW5uZWNlc3NhcmlseSBpbiB0aGUgVUlQcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDViYTFjZGIxYTU3
MDFmYzFlM2Y1MDM3YjM3Njg5ZDUwOWQ2ZDE4NGEuLmZkMDc4ZGVjOGIxZjUyMDE2OWZkZDE4ZWI2
NWMxNWM0YWVjYzJiZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDYgQEAKKzIwMjAtMDYtMTkgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIERlbGF5IGlz
c3VpbmcgTWFuYWdlZFNlc3Npb24gJiBOZXR3b3JrIEV4dGVuc2lvbiBzYW5kYm94IGV4dGVuc2lv
bnMgdW50aWwgYSBsb2FkIGlzIGFjdHVhbGx5IGlzc3VlZAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzNDE0CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS82NDU0ODY4ND4KKworICAgICAgICBSZXZpZXdlZCBieSBQZXIgQXJuZSBWb2xsYW4uCisKKyAg
ICAgICAgRGVsYXkgaXNzdWluZyBNYW5hZ2VkU2Vzc2lvbiAmIE5ldHdvcmsgRXh0ZW5zaW9uIHNh
bmRib3ggZXh0ZW5zaW9ucyB1bnRpbCBhIGxvYWQgaXMgYWN0dWFsbHkgaXNzdWVkLgorICAgICAg
ICBUaGlzIGlzIGEgU2FmYXJpIGxhdW5jaCB0aW1lIG9wdGltaXphdGlvbiBzaW5jZSB0aGUgY2hl
Y2tzIG5lZWRlZCB0byBkZWNpZGUgd2hldGhlciBvciBub3QgdG8gaXNzdWUKKyAgICAgICAgdGhl
IGV4dGVuc2lvbnMgYXJlIGV4cGVuc2l2ZSBhbmQgdGhlcmUgaXMgbm8gcmVhc29uIHRvIGlzc3Vl
IHRoZW0gYXMgc29vbiBhcyB0aGUgcHJvY2VzcyBsYXVuY2hlcworICAgICAgICAoZXNwZWNpYWxs
eSBpbiB0aGUgY2FzZSBvZiBhIHByZXdhcm1lZCBwcm9jZXNzKS4KKworICAgICAgICAqIFNoYXJl
ZC9Db2NvYS9Mb2FkUGFyYW1ldGVyc0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpMb2FkUGFy
YW1ldGVyczo6cGxhdGZvcm1FbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpMb2FkUGFy
YW1ldGVyczo6cGxhdGZvcm1EZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9Mb2FkUGFyYW1ldGVy
cy5oOgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVj
b2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5OjphZGRQbGF0Zm9ybUxvYWRQYXJhbWV0ZXJzKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbToKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OmFkZFBsYXRmb3JtTG9hZFBhcmFtZXRlcnMpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRpb25TaGFyZWQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OmxvYWRGaWxlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5Ojpsb2FkRGF0YVdpdGhOYXZpZ2F0aW9uU2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5Ojpsb2FkQWx0ZXJuYXRlSFRNTCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6bG9hZFdlYkFyY2hpdmVEYXRhKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6Omhhc05ldHdvcmtFeHRlbnNpb25TYW5kYm94QWNj
ZXNzIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjptYXJrSGFzTmV0
d29ya0V4dGVuc2lvblNhbmRib3hBY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNz
UHJveHk6Omhhc01hbmFnZWRTZXNzaW9uU2FuZGJveEFjY2VzcyBjb25zdCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6bWFya0hhc01hbmFnZWRTZXNzaW9uU2FuZGJveEFjY2Vz
cyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VDb2NvYS5tbToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cGxhdGZvcm1EaWRSZWNlaXZlTG9hZFBhcmFtZXRl
cnMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKToK
KwogMjAyMC0wNi0xOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAg
IEF2b2lkIGluaXRpYWxpemluZyBSZW5kZXJUaGVtZSBzaW5nbGV0b24gdW5uZWNlc3NhcmlseSBp
biB0aGUgVUlQcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9OZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2NvY29hL05ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLm1tCmluZGV4IGViZjM5YzM2
ZmRlODNkYTZiOWJiZTgxYzRkMTI2NThjYzA5MTg1MzAuLjJiMjM5Mzg2ZGY2ZjIzYjBmMmFiY2M2
MWU5YzcyMTVjNWFhOWQyNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nv
Y29hL05ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2NvY29hL05ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLm1tCkBAIC0yMjgs
NiArMjI4LDkgQEAgdm9pZCBOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlcjo6aGFuZGxlRGVj
aXNpb24oTkVGaWx0ZXJTb3VyY2VTdGF0dXMgc3RhdHVzLAogCiB2b2lkIE5ldHdvcmtFeHRlbnNp
b25Db250ZW50RmlsdGVyOjpzZXRIYXNDb25zdW1lZFNhbmRib3hFeHRlbnNpb25zKGJvb2wgaGFz
Q29uc3VtZWRTYW5kYm94RXh0ZW5zaW9ucykKIHsKKyAgICBpZiAobV9zYW5kYm94RXh0ZW5zaW9u
c1N0YXRlID09IFNhbmRib3hFeHRlbnNpb25zU3RhdGU6OkNvbnN1bWVkKQorICAgICAgICByZXR1
cm47CisKICAgICBtX3NhbmRib3hFeHRlbnNpb25zU3RhdGUgPSAoaGFzQ29uc3VtZWRTYW5kYm94
RXh0ZW5zaW9ucyA/IFNhbmRib3hFeHRlbnNpb25zU3RhdGU6OkNvbnN1bWVkIDogU2FuZGJveEV4
dGVuc2lvbnNTdGF0ZTo6Tm90Q29uc3VtZWQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jb2NvYS9QYXJlbnRhbENvbnRyb2xzQ29udGVudEZpbHRlci5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1BhcmVudGFsQ29udHJvbHNDb250ZW50RmlsdGVy
Lm1tCmluZGV4IGFlOGZiMzkyOTYyMzY0ZDczNDk4NTEzZjgxZGUwOGI3ZjRmZWUwNWMuLjQ5Zjhm
YTRiY2UwZDBmODgwYmE0Mzc1MTNhMzI2NmY1NmY1YTAwNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2NvY29hL1BhcmVudGFsQ29udHJvbHNDb250ZW50RmlsdGVyLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1BhcmVudGFsQ29udHJvbHNDb250ZW50
RmlsdGVyLm1tCkBAIC0xNTAsNiArMTUwLDkgQEAgdm9pZCBQYXJlbnRhbENvbnRyb2xzQ29udGVu
dEZpbHRlcjo6dXBkYXRlRmlsdGVyU3RhdGUoKQogI2lmIFBMQVRGT1JNKElPUykKIHZvaWQgUGFy
ZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXI6OnNldEhhc0NvbnN1bWVkU2FuZGJveEV4dGVuc2lv
bihib29sIGhhc0NvbnN1bWVkU2FuZGJveEV4dGVuc2lvbikKIHsKKyAgICBpZiAobV9zYW5kYm94
RXh0ZW5zaW9uU3RhdGUgPT0gU2FuZGJveEV4dGVuc2lvblN0YXRlOjpDb25zdW1lZCkKKyAgICAg
ICAgcmV0dXJuOworCiAgICAgbV9zYW5kYm94RXh0ZW5zaW9uU3RhdGUgPSAoaGFzQ29uc3VtZWRT
YW5kYm94RXh0ZW5zaW9uID8gU2FuZGJveEV4dGVuc2lvblN0YXRlOjpDb25zdW1lZCA6IFNhbmRi
b3hFeHRlbnNpb25TdGF0ZTo6Tm90Q29uc3VtZWQpOwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9Mb2FkUGFyYW1ldGVyc0NvY29hLm1tIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvQ29jb2EvTG9hZFBhcmFtZXRlcnNDb2NvYS5tbQppbmRleCA5NDIxNDNh
NTdlOTMxMTI2YWEzZjRlNjM4MGEwYTA1ZTU3MjAwOWNkLi5lOThmN2RiMmE2N2JlZDdlMzQzMGZi
Mzk4YzEwYWRhZDMzY2I0NjFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2Nv
YS9Mb2FkUGFyYW1ldGVyc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29h
L0xvYWRQYXJhbWV0ZXJzQ29jb2EubW0KQEAgLTM2LDEyICszNiw0NSBAQCBuYW1lc3BhY2UgV2Vi
S2l0IHsKIHZvaWQgTG9hZFBhcmFtZXRlcnM6OnBsYXRmb3JtRW5jb2RlKElQQzo6RW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKIHsKICAgICBJUEM6OmVuY29kZShlbmNvZGVyLCBkYXRhRGV0ZWN0aW9u
Q29udGV4dC5nZXQoKSk7CisKKyAgICBlbmNvZGVyIDw8IG5lSGVscGVyRXh0ZW5zaW9uSGFuZGxl
OworICAgIGVuY29kZXIgPDwgbmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZTsKKyNpZiBQ
TEFURk9STShJT1MpCisgICAgZW5jb2RlciA8PCBjb250ZW50RmlsdGVyRXh0ZW5zaW9uSGFuZGxl
OworICAgIGVuY29kZXIgPDwgZnJvbnRib2FyZFNlcnZpY2VFeHRlbnNpb25IYW5kbGU7CisjZW5k
aWYKIH0KIAotYm9vbCBMb2FkUGFyYW1ldGVyczo6cGxhdGZvcm1EZWNvZGUoSVBDOjpEZWNvZGVy
JiBkZWNvZGVyLCBMb2FkUGFyYW1ldGVycyYgZGF0YSkKK2Jvb2wgTG9hZFBhcmFtZXRlcnM6OnBs
YXRmb3JtRGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgTG9hZFBhcmFtZXRlcnMmIHBhcmFt
ZXRlcnMpCiB7Ci0gICAgaWYgKCFJUEM6OmRlY29kZShkZWNvZGVyLCBkYXRhLmRhdGFEZXRlY3Rp
b25Db250ZXh0KSkKKyAgICBpZiAoIUlQQzo6ZGVjb2RlKGRlY29kZXIsIHBhcmFtZXRlcnMuZGF0
YURldGVjdGlvbkNvbnRleHQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBPcHRpb25h
bDxPcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+PiBuZUhlbHBlckV4dGVuc2lvbkhh
bmRsZTsKKyAgICBkZWNvZGVyID4+IG5lSGVscGVyRXh0ZW5zaW9uSGFuZGxlOworICAgIGlmICgh
bmVIZWxwZXJFeHRlbnNpb25IYW5kbGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBwYXJh
bWV0ZXJzLm5lSGVscGVyRXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZSgqbmVIZWxwZXJFeHRlbnNp
b25IYW5kbGUpOworCisgICAgT3B0aW9uYWw8T3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFu
ZGxlPj4gbmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZTsKKyAgICBkZWNvZGVyID4+IG5l
U2Vzc2lvbk1hbmFnZXJFeHRlbnNpb25IYW5kbGU7CisgICAgaWYgKCFuZVNlc3Npb25NYW5hZ2Vy
RXh0ZW5zaW9uSGFuZGxlKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcGFyYW1ldGVycy5u
ZVNlc3Npb25NYW5hZ2VyRXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZSgqbmVTZXNzaW9uTWFuYWdl
ckV4dGVuc2lvbkhhbmRsZSk7CisKKyNpZiBQTEFURk9STShJT1MpCisgICAgT3B0aW9uYWw8T3B0
aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPj4gY29udGVudEZpbHRlckV4dGVuc2lvbkhh
bmRsZTsKKyAgICBkZWNvZGVyID4+IGNvbnRlbnRGaWx0ZXJFeHRlbnNpb25IYW5kbGU7CisgICAg
aWYgKCFjb250ZW50RmlsdGVyRXh0ZW5zaW9uSGFuZGxlKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgcGFyYW1ldGVycy5jb250ZW50RmlsdGVyRXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZSgq
Y29udGVudEZpbHRlckV4dGVuc2lvbkhhbmRsZSk7CisKKyAgICBPcHRpb25hbDxPcHRpb25hbDxT
YW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+PiBmcm9udGJvYXJkU2VydmljZUV4dGVuc2lvbkhhbmRs
ZTsKKyAgICBkZWNvZGVyID4+IGZyb250Ym9hcmRTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlOworICAg
IGlmICghZnJvbnRib2FyZFNlcnZpY2VFeHRlbnNpb25IYW5kbGUpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICBwYXJhbWV0ZXJzLmZyb250Ym9hcmRTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlID0g
V1RGTW92ZSgqZnJvbnRib2FyZFNlcnZpY2VFeHRlbnNpb25IYW5kbGUpOworI2VuZGlmCiAKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0xvYWRQ
YXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Mb2FkUGFyYW1ldGVycy5oCmluZGV4
IDQ3MTBkMzI3YzA4NmU0MjE5YWIwMDNjZDM1ZmEzYWE1Zjk3MTEwYjQuLmU4ODE0NWIwYWVhNTVi
MGYxMWQ0OTUwMjQ0ZjZlMWUwZDk0Mjk0YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0xvYWRQYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvTG9hZFBhcmFt
ZXRlcnMuaApAQCAtNzQsNiArNzQsMTIgQEAgc3RydWN0IExvYWRQYXJhbWV0ZXJzIHsKIAogI2lm
IFBMQVRGT1JNKENPQ09BKQogICAgIFJldGFpblB0cjxOU0RpY3Rpb25hcnk+IGRhdGFEZXRlY3Rp
b25Db250ZXh0OworICAgIE9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gbmVIZWxw
ZXJFeHRlbnNpb25IYW5kbGU7CisgICAgT3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxl
PiBuZVNlc3Npb25NYW5hZ2VyRXh0ZW5zaW9uSGFuZGxlOworI2VuZGlmCisjaWYgUExBVEZPUk0o
SU9TKQorICAgIE9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gY29udGVudEZpbHRl
ckV4dGVuc2lvbkhhbmRsZTsKKyAgICBPcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+
IGZyb250Ym9hcmRTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlOwogI2VuZGlmCiB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNw
cCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3Bw
CmluZGV4IDllNzBiYTVkODkwNWJjODc2YmI3MjZjMjY0YjY5MmJkOGQxOThmZTYuLjlhNDM0OWRk
NDNlZTVjNWE2MzAwMDU2NWU2NGRkMWM5OGM4ZGEzNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC0xNTcsOCAr
MTU3LDYgQEAgdm9pZCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIAogI2lmIFBMQVRGT1JNKElPUykKICAgICBlbmNv
ZGVyIDw8IGNvbXBpbGVyU2VydmljZUV4dGVuc2lvbkhhbmRsZTsKLSAgICBlbmNvZGVyIDw8IGNv
bnRlbnRGaWx0ZXJFeHRlbnNpb25IYW5kbGU7Ci0gICAgZW5jb2RlciA8PCBmcm9udGJvYXJkU2Vy
dmljZUV4dGVuc2lvbkhhbmRsZTsKICNlbmRpZgogCiAgICAgZW5jb2RlciA8PCBjb250YWluZXJN
YW5hZ2VyRXh0ZW5zaW9uSGFuZGxlOwpAQCAtMTcwLDggKzE2OCw2IEBAIHZvaWQgV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QK
ICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgZW5jb2RlciA8PCBuZUhlbHBlckV4
dGVuc2lvbkhhbmRsZTsKLSAgICBlbmNvZGVyIDw8IG5lU2Vzc2lvbk1hbmFnZXJFeHRlbnNpb25I
YW5kbGU7CiAgICAgZW5jb2RlciA8PCBtYXBEQkV4dGVuc2lvbkhhbmRsZTsKICAgICBlbmNvZGVy
IDw8IHN5c3RlbUhhc0JhdHRlcnk7CiAjZW5kaWYKQEAgLTQyMywxOCArNDE5LDYgQEAgYm9vbCBX
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVy
LCBXZWJQcm9jZXNzQ3JlYXQKICAgICBpZiAoIWNvbXBpbGVyU2VydmljZUV4dGVuc2lvbkhhbmRs
ZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHBhcmFtZXRlcnMuY29tcGlsZXJTZXJ2aWNl
RXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZSgqY29tcGlsZXJTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxl
KTsKLQotICAgIE9wdGlvbmFsPE9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4+IGNv
bnRlbnRGaWx0ZXJFeHRlbnNpb25IYW5kbGU7Ci0gICAgZGVjb2RlciA+PiBjb250ZW50RmlsdGVy
RXh0ZW5zaW9uSGFuZGxlOwotICAgIGlmICghY29udGVudEZpbHRlckV4dGVuc2lvbkhhbmRsZSkK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHBhcmFtZXRlcnMuY29udGVudEZpbHRlckV4dGVu
c2lvbkhhbmRsZSA9IFdURk1vdmUoKmNvbnRlbnRGaWx0ZXJFeHRlbnNpb25IYW5kbGUpOwotCi0g
ICAgT3B0aW9uYWw8T3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPj4gZnJvbnRib2Fy
ZFNlcnZpY2VFeHRlbnNpb25IYW5kbGU7Ci0gICAgZGVjb2RlciA+PiBmcm9udGJvYXJkU2Vydmlj
ZUV4dGVuc2lvbkhhbmRsZTsKLSAgICBpZiAoIWZyb250Ym9hcmRTZXJ2aWNlRXh0ZW5zaW9uSGFu
ZGxlKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcGFyYW1ldGVycy5mcm9udGJvYXJkU2Vy
dmljZUV4dGVuc2lvbkhhbmRsZSA9IFdURk1vdmUoKmZyb250Ym9hcmRTZXJ2aWNlRXh0ZW5zaW9u
SGFuZGxlKTsKICNlbmRpZgogCiAgICAgT3B0aW9uYWw8T3B0aW9uYWw8U2FuZGJveEV4dGVuc2lv
bjo6SGFuZGxlPj4gY29udGFpbmVyTWFuYWdlckV4dGVuc2lvbkhhbmRsZTsKQEAgLTQ2NCwxOCAr
NDQ4LDYgQEAgYm9vbCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpE
ZWNvZGVyJiBkZWNvZGVyLCBXZWJQcm9jZXNzQ3JlYXQKICNlbmRpZgogCiAjaWYgUExBVEZPUk0o
Q09DT0EpCi0gICAgT3B0aW9uYWw8T3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPj4g
bmVIZWxwZXJFeHRlbnNpb25IYW5kbGU7Ci0gICAgZGVjb2RlciA+PiBuZUhlbHBlckV4dGVuc2lv
bkhhbmRsZTsKLSAgICBpZiAoIW5lSGVscGVyRXh0ZW5zaW9uSGFuZGxlKQotICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgcGFyYW1ldGVycy5uZUhlbHBlckV4dGVuc2lvbkhhbmRsZSA9IFdURk1v
dmUoKm5lSGVscGVyRXh0ZW5zaW9uSGFuZGxlKTsKLQotICAgIE9wdGlvbmFsPE9wdGlvbmFsPFNh
bmRib3hFeHRlbnNpb246OkhhbmRsZT4+IG5lU2Vzc2lvbk1hbmFnZXJFeHRlbnNpb25IYW5kbGU7
Ci0gICAgZGVjb2RlciA+PiBuZVNlc3Npb25NYW5hZ2VyRXh0ZW5zaW9uSGFuZGxlOwotICAgIGlm
ICghbmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZSkKLSAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgIHBhcmFtZXRlcnMubmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZSA9IFdURk1v
dmUoKm5lU2Vzc2lvbk1hbmFnZXJFeHRlbnNpb25IYW5kbGUpOwotCiAgICAgT3B0aW9uYWw8T3B0
aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPj4gbWFwREJFeHRlbnNpb25IYW5kbGU7CiAg
ICAgZGVjb2RlciA+PiBtYXBEQkV4dGVuc2lvbkhhbmRsZTsKICAgICBpZiAoIW1hcERCRXh0ZW5z
aW9uSGFuZGxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5oCmluZGV4IDM5YjU3YzhlYmJiNzI1OWM1YWU5ZDg4ODJmOWYwNzRiMWY0
YWIyM2QuLmFhMWI3YWExZmI3NmJjMDdkYzgwNmZkMDJkM2RkMWNhMTlmYjRlMGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgK
QEAgLTIwMSw4ICsyMDEsNiBAQCBzdHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7
CiAgICAgCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIE9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246
OkhhbmRsZT4gY29tcGlsZXJTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlOwotICAgIE9wdGlvbmFsPFNh
bmRib3hFeHRlbnNpb246OkhhbmRsZT4gY29udGVudEZpbHRlckV4dGVuc2lvbkhhbmRsZTsKLSAg
ICBPcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+IGZyb250Ym9hcmRTZXJ2aWNlRXh0
ZW5zaW9uSGFuZGxlOwogI2VuZGlmCiAKICAgICBPcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpI
YW5kbGU+IGNvbnRhaW5lck1hbmFnZXJFeHRlbnNpb25IYW5kbGU7CkBAIC0yMTQsOCArMjEyLDYg
QEAgc3RydWN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgewogI2VuZGlmCiAKICNpZiBQ
TEFURk9STShDT0NPQSkKLSAgICBPcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+IG5l
SGVscGVyRXh0ZW5zaW9uSGFuZGxlOwotICAgIE9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246Okhh
bmRsZT4gbmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZTsKICAgICBPcHRpb25hbDxTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGU+IG1hcERCRXh0ZW5zaW9uSGFuZGxlOwogICAgIGJvb2wgc3lz
dGVtSGFzQmF0dGVyeSB7IGZhbHNlIH07CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KaW5kZXggMzZmMDFjYmY3MWRhZWNk
ZDc1MzE0YzZkMTYwZGE3OGZmZGJhOWQxNC4uNzJlNDgzMzNiOGU4MDEwYzg1M2NiMzYwNWM4YThi
ZGZmOGQ3NWNjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2Vi
UGFnZVByb3h5Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2Vi
UGFnZVByb3h5Q29jb2EubW0KQEAgLTQ3LDEzICs0NywyNSBAQAogI2ltcG9ydCA8V2ViQ29yZS9T
ZWFyY2hQb3B1cE1lbnVDb2NvYS5oPgogI2ltcG9ydCA8V2ViQ29yZS9UZXh0QWx0ZXJuYXRpdmVX
aXRoUmFuZ2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvVmFsaWRhdGlvbkJ1YmJsZS5oPgorI2ltcG9y
dCA8cGFsL3NwaS9jb2NvYS9ORUZpbHRlclNvdXJjZVNQSS5oPgogI2ltcG9ydCA8d3RmL0Jsb2Nr
UHRyLmg+CisjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KICNpbXBvcnQgPHd0Zi9jZi9UeXBl
Q2FzdHNDRi5oPgogCiAjaWYgRU5BQkxFKE1FRElBX1VTQUdFKQogI2ltcG9ydCAiTWVkaWFVc2Fn
ZU1hbmFnZXJDb2NvYS5oIgogI2VuZGlmCiAKKyNpZiBQTEFURk9STShJT1MpCisjaW1wb3J0IDxw
YWwvc3BpL2NvY29hL1dlYkZpbHRlckV2YWx1YXRvclNQSS5oPgorCitTT0ZUX0xJTktfUFJJVkFU
RV9GUkFNRVdPUksoV2ViQ29udGVudEFuYWx5c2lzKTsKK1NPRlRfTElOS19DTEFTUyhXZWJDb250
ZW50QW5hbHlzaXMsIFdlYkZpbHRlckV2YWx1YXRvcik7CisjZW5kaWYKKworU09GVF9MSU5LX0ZS
QU1FV09SS19PUFRJT05BTChOZXR3b3JrRXh0ZW5zaW9uKTsKK1NPRlRfTElOS19DTEFTU19PUFRJ
T05BTChOZXR3b3JrRXh0ZW5zaW9uLCBORUZpbHRlclNvdXJjZSk7CisKICNkZWZpbmUgTUVTU0FH
RV9DSEVDSyhhc3NlcnRpb24pIE1FU1NBR0VfQ0hFQ0tfQkFTRShhc3NlcnRpb24sIHByb2Nlc3Mo
KS5jb25uZWN0aW9uKCkpCiAjZGVmaW5lIE1FU1NBR0VfQ0hFQ0tfQ09NUExFVElPTihhc3NlcnRp
b24sIGNvbXBsZXRpb24pIE1FU1NBR0VfQ0hFQ0tfQ09NUExFVElPTl9CQVNFKGFzc2VydGlvbiwg
cHJvY2VzcygpLmNvbm5lY3Rpb24oKSwgY29tcGxldGlvbikKIApAQCAtMTI5LDkgKzE0MSwzOCBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6Y29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lU2hh
cmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JgogfQogI2VuZGlmCiAKLXZvaWQgV2ViUGFnZVByb3h5
OjphZGRQbGF0Zm9ybUxvYWRQYXJhbWV0ZXJzKExvYWRQYXJhbWV0ZXJzJiBsb2FkUGFyYW1ldGVy
cykKK3ZvaWQgV2ViUGFnZVByb3h5OjphZGRQbGF0Zm9ybUxvYWRQYXJhbWV0ZXJzKFdlYlByb2Nl
c3NQcm94eSYgcHJvY2VzcywgTG9hZFBhcmFtZXRlcnMmIGxvYWRQYXJhbWV0ZXJzKQogewogICAg
IGxvYWRQYXJhbWV0ZXJzLmRhdGFEZXRlY3Rpb25Db250ZXh0ID0gbV91aUNsaWVudC0+ZGF0YURl
dGVjdGlvbkNvbnRleHQoKTsKKworICAgIGlmICghcHJvY2Vzcy5oYXNOZXR3b3JrRXh0ZW5zaW9u
U2FuZGJveEFjY2VzcygpICYmIFtnZXRORUZpbHRlclNvdXJjZUNsYXNzKCkgZmlsdGVyUmVxdWly
ZWRdKSB7CisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBoZWxwZXJIYW5kbGU7Cisg
ICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5h
cHBsZS5uZWhlbHBlciJfcywgV1RGOjpudWxsb3B0LCBoZWxwZXJIYW5kbGUpOworICAgICAgICBs
b2FkUGFyYW1ldGVycy5uZUhlbHBlckV4dGVuc2lvbkhhbmRsZSA9IFdURk1vdmUoaGVscGVySGFu
ZGxlKTsKKyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIG1hbmFnZXJIYW5kbGU7Cisj
aWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwgMTAx
NTAwCisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAo
ImNvbS5hcHBsZS5uZXNlc3Npb25tYW5hZ2VyIl9zLCBXVEY6Om51bGxvcHQsIG1hbmFnZXJIYW5k
bGUpOworI2Vsc2UKKyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFj
aExvb2t1cCgiY29tLmFwcGxlLm5lc2Vzc2lvbm1hbmFnZXIuY29udGVudC1maWx0ZXIiX3MsIFdU
Rjo6bnVsbG9wdCwgbWFuYWdlckhhbmRsZSk7CisjZW5kaWYKKyAgICAgICAgbG9hZFBhcmFtZXRl
cnMubmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZSA9IFdURk1vdmUobWFuYWdlckhhbmRs
ZSk7CisKKyAgICAgICAgcHJvY2Vzcy5tYXJrSGFzTmV0d29ya0V4dGVuc2lvblNhbmRib3hBY2Nl
c3MoKTsKKyAgICB9CisKKyNpZiBQTEFURk9STShJT1MpCisgICAgaWYgKCFwcm9jZXNzLmhhc01h
bmFnZWRTZXNzaW9uU2FuZGJveEFjY2VzcygpICYmIFtnZXRXZWJGaWx0ZXJFdmFsdWF0b3JDbGFz
cygpIGlzTWFuYWdlZFNlc3Npb25dKSB7CisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRs
ZSBoYW5kbGU7CisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hM
b29rdXAoImNvbS5hcHBsZS51aWtpdC52aWV3c2VydmljZS5jb20uYXBwbGUuV2ViQ29udGVudEZp
bHRlci5yZW1vdGVVSSJfcywgV1RGOjpudWxsb3B0LCBoYW5kbGUpOworICAgICAgICBsb2FkUGFy
YW1ldGVycy5jb250ZW50RmlsdGVyRXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZShoYW5kbGUpOwor
CisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBmcm9udGJvYXJkU2VydmljZUV4dGVu
c2lvbkhhbmRsZTsKKyAgICAgICAgaWYgKFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZv
ck1hY2hMb29rdXAoImNvbS5hcHBsZS5mcm9udGJvYXJkLnN5c3RlbWFwcHNlcnZpY2VzIl9zLCBX
VEY6Om51bGxvcHQsIGZyb250Ym9hcmRTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlKSkKKyAgICAgICAg
ICAgIGxvYWRQYXJhbWV0ZXJzLmZyb250Ym9hcmRTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlID0gV1RG
TW92ZShmcm9udGJvYXJkU2VydmljZUV4dGVuc2lvbkhhbmRsZSk7CisKKyAgICAgICAgcHJvY2Vz
cy5tYXJrSGFzTWFuYWdlZFNlc3Npb25TYW5kYm94QWNjZXNzKCk7CisgICAgfQorI2VuZGlmCiB9
CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpjcmVhdGVTYW5kYm94RXh0ZW5zaW9uc0lmTmVlZGVkKGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlcywgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiBmaWxl
UmVhZEhhbmRsZSwgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkmIGZpbGVVcGxvYWRIYW5k
bGVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vz
c1Bvb2xDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQ
b29sQ29jb2EubW0KaW5kZXggYmYyOTE0NGIwNTY3ZDk2NGJlMmIwYjNkZTE5ZmVmYjEzMjE3ZWUx
Yy4uODUyYjRhMzFjMWE1MWQ0YzViZWFhOWNlOGVmZDBjZjE2ZDRmZGE0ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCkBA
IC03OSwyNyArNzksMTQgQEAKICNpbXBvcnQgPFF1YXJ0ekNvcmUvQ0FSZW1vdGVMYXllclNlcnZl
ci5oPgogI2Vsc2UKICNpbXBvcnQgIlVJS2l0U1BJLmgiCi0jaW1wb3J0IDxwYWwvaW9zL01hbmFn
ZWRDb25maWd1cmF0aW9uU29mdExpbmsuaD4KLSNpbXBvcnQgPHBhbC9zcGkvaW9zL01hbmFnZWRD
b25maWd1cmF0aW9uU1BJLmg+CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAj
aW1wb3J0IDxwYWwvc3BpL2lvcy9Nb2JpbGVHZXN0YWx0U1BJLmg+CiAjZW5kaWYKIAotI2lmIFBM
QVRGT1JNKElPUykKLSNpbXBvcnQgPHBhbC9zcGkvY29jb2EvV2ViRmlsdGVyRXZhbHVhdG9yU1BJ
Lmg+Ci0KLVNPRlRfTElOS19QUklWQVRFX0ZSQU1FV09SSyhXZWJDb250ZW50QW5hbHlzaXMpOwot
U09GVF9MSU5LX0NMQVNTKFdlYkNvbnRlbnRBbmFseXNpcywgV2ViRmlsdGVyRXZhbHVhdG9yKTsK
LSNlbmRpZgotCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAjaW1wb3J0IDxXZWJDb3JlL1N5c3RlbUJh
dHRlcnkuaD4KLSNpbXBvcnQgPHBhbC9zcGkvY29jb2EvTkVGaWx0ZXJTb3VyY2VTUEkuaD4KLQot
U09GVF9MSU5LX0ZSQU1FV09SS19PUFRJT05BTChOZXR3b3JrRXh0ZW5zaW9uKTsKLVNPRlRfTElO
S19DTEFTU19PUFRJT05BTChOZXR3b3JrRXh0ZW5zaW9uLCBORUZpbHRlclNvdXJjZSk7CiAjZW5k
aWYKIAogTlNTdHJpbmcgKldlYlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnlEZWZh
dWx0c0tleSA9IEAiV2ViU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeSI7CkBAIC00
MjAsMTggKzQwNyw2IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdl
YlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzCiAjZW5kaWYKICAgICAKICNp
ZiBQTEFURk9STShDT0NPQSkKLSAgICBpZiAoW2dldE5FRmlsdGVyU291cmNlQ2xhc3MoKSBmaWx0
ZXJSZXF1aXJlZF0pIHsKLSAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGhlbHBlckhh
bmRsZTsKLSAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1
cCgiY29tLmFwcGxlLm5laGVscGVyIl9zLCBXVEY6Om51bGxvcHQsIGhlbHBlckhhbmRsZSk7Ci0g
ICAgICAgIHBhcmFtZXRlcnMubmVIZWxwZXJFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3ZlKGhlbHBl
ckhhbmRsZSk7Ci0gICAgICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBtYW5hZ2VySGFuZGxl
OwotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8
IDEwMTUwMAotICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9v
a3VwKCJjb20uYXBwbGUubmVzZXNzaW9ubWFuYWdlciJfcywgV1RGOjpudWxsb3B0LCBtYW5hZ2Vy
SGFuZGxlKTsKLSNlbHNlCi0gICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZv
ck1hY2hMb29rdXAoImNvbS5hcHBsZS5uZXNlc3Npb25tYW5hZ2VyLmNvbnRlbnQtZmlsdGVyIl9z
LCBXVEY6Om51bGxvcHQsIG1hbmFnZXJIYW5kbGUpOwotI2VuZGlmCi0gICAgICAgIHBhcmFtZXRl
cnMubmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZSA9IFdURk1vdmUobWFuYWdlckhhbmRs
ZSk7Ci0gICAgfQogICAgIHBhcmFtZXRlcnMuc3lzdGVtSGFzQmF0dGVyeSA9IHN5c3RlbUhhc0Jh
dHRlcnkoKTsKIAogICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBtYXBEQkhhbmRsZTsKQEAg
LTQzOSwxOCArNDE0LDYgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXpl
V2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MKICAgICAgICAgcGFyYW1l
dGVycy5tYXBEQkV4dGVuc2lvbkhhbmRsZSA9IFdURk1vdmUobWFwREJIYW5kbGUpOwogI2VuZGlm
CiAgICAgCi0jaWYgUExBVEZPUk0oSU9TKQotICAgIGlmIChbZ2V0V2ViRmlsdGVyRXZhbHVhdG9y
Q2xhc3MoKSBpc01hbmFnZWRTZXNzaW9uXSkgewotICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpI
YW5kbGUgaGFuZGxlOwotICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JN
YWNoTG9va3VwKCJjb20uYXBwbGUudWlraXQudmlld3NlcnZpY2UuY29tLmFwcGxlLldlYkNvbnRl
bnRGaWx0ZXIucmVtb3RlVUkiX3MsIFdURjo6bnVsbG9wdCwgaGFuZGxlKTsKLSAgICAgICAgcGFy
YW1ldGVycy5jb250ZW50RmlsdGVyRXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZShoYW5kbGUpOwot
Ci0gICAgICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBmcm9udGJvYXJkU2VydmljZUV4dGVu
c2lvbkhhbmRsZTsKLSAgICAgICAgaWYgKFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZv
ck1hY2hMb29rdXAoImNvbS5hcHBsZS5mcm9udGJvYXJkLnN5c3RlbWFwcHNlcnZpY2VzIl9zLCBX
VEY6Om51bGxvcHQsIGZyb250Ym9hcmRTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlKSkKLSAgICAgICAg
ICAgIHBhcmFtZXRlcnMuZnJvbnRib2FyZFNlcnZpY2VFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3Zl
KGZyb250Ym9hcmRTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlKTsKLSAgICB9Ci0jZW5kaWYKLSAgICAK
ICAgICBpZiAocmVxdWlyZXNDb250YWluZXJNYW5hZ2VyQWNjZXNzKCkpIHsKICAgICAgICAgU2Fu
ZGJveEV4dGVuc2lvbjo6SGFuZGxlIGhhbmRsZTsKICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6
Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLmNvbnRhaW5lcm1hbmFnZXJkIl9z
LCBXVEY6Om51bGxvcHQsIGhhbmRsZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcAppbmRleCBlYjE4YTUwY2FmZDNmMzBiY2QwOTQ4NjQ2ODJmMDlmMTcwOWNmZGQ4Li5m
YzdkNjAwM2YwMmRjODliMmJlYTkxZjc4MTdmMDVjZmYyNzQxMTFhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTEyNjYsNyArMTI2Niw3IEBAIHZvaWQgV2Vi
UGFnZVByb3h5OjptYXliZUluaXRpYWxpemVTYW5kYm94RXh0ZW5zaW9uSGFuZGxlKFdlYlByb2Nl
c3NQcm94eSYgcHJvY2VzCiB9CiAKICNpZiAhUExBVEZPUk0oQ09DT0EpCi12b2lkIFdlYlBhZ2VQ
cm94eTo6YWRkUGxhdGZvcm1Mb2FkUGFyYW1ldGVycyhMb2FkUGFyYW1ldGVycyYpCit2b2lkIFdl
YlBhZ2VQcm94eTo6YWRkUGxhdGZvcm1Mb2FkUGFyYW1ldGVycyhXZWJQcm9jZXNzUHJveHkmLCBM
b2FkUGFyYW1ldGVycyYpCiB7CiB9CiAjZW5kaWYKQEAgLTEzMjMsNyArMTMyMyw3IEBAIHZvaWQg
V2ViUGFnZVByb3h5Ojpsb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9j
ZXNzUHJveHk+JiYgcHJvY2VzCiAgICAgbG9hZFBhcmFtZXRlcnMuaXNOYXZpZ2F0aW5nVG9BcHBC
b3VuZERvbWFpbiA9IGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW47CiAgICAgbWF5YmVJbml0
aWFsaXplU2FuZGJveEV4dGVuc2lvbkhhbmRsZShwcm9jZXNzLCB1cmwsIG1fcGFnZUxvYWRTdGF0
ZS5yZXNvdXJjZURpcmVjdG9yeVVSTCgpLCBsb2FkUGFyYW1ldGVycy5zYW5kYm94RXh0ZW5zaW9u
SGFuZGxlKTsKIAotICAgIGFkZFBsYXRmb3JtTG9hZFBhcmFtZXRlcnMobG9hZFBhcmFtZXRlcnMp
OworICAgIGFkZFBsYXRmb3JtTG9hZFBhcmFtZXRlcnMocHJvY2VzcywgbG9hZFBhcmFtZXRlcnMp
OwogCiAgICAgcHJlY29ubmVjdFRvKHVybCk7CiAKQEAgLTEzODUsNyArMTM4NSw3IEBAIFJlZlB0
cjxBUEk6Ok5hdmlnYXRpb24+IFdlYlBhZ2VQcm94eTo6bG9hZEZpbGUoY29uc3QgU3RyaW5nJiBm
aWxlVVJMU3RyaW5nLCBjb25zCiAgICAgbG9hZFBhcmFtZXRlcnMudXNlckRhdGEgPSBVc2VyRGF0
YShwcm9jZXNzKCkudHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxlcyh1c2VyRGF0YSkuZ2V0KCkpOwog
ICAgIGNvbnN0IGJvb2wgY2hlY2tBc3N1bWVkUmVhZEFjY2Vzc1RvUmVzb3VyY2VVUkwgPSBmYWxz
ZTsKICAgICBtYXliZUluaXRpYWxpemVTYW5kYm94RXh0ZW5zaW9uSGFuZGxlKG1fcHJvY2Vzcywg
ZmlsZVVSTCwgcmVzb3VyY2VEaXJlY3RvcnlVUkwsIGxvYWRQYXJhbWV0ZXJzLnNhbmRib3hFeHRl
bnNpb25IYW5kbGUsIGNoZWNrQXNzdW1lZFJlYWRBY2Nlc3NUb1Jlc291cmNlVVJMKTsKLSAgICBh
ZGRQbGF0Zm9ybUxvYWRQYXJhbWV0ZXJzKGxvYWRQYXJhbWV0ZXJzKTsKKyAgICBhZGRQbGF0Zm9y
bUxvYWRQYXJhbWV0ZXJzKG1fcHJvY2VzcywgbG9hZFBhcmFtZXRlcnMpOwogCiAjaWYgSEFWRShT
QU5EQk9YX0lTU1VFX1JFQURfRVhURU5TSU9OX1RPX1BST0NFU1NfQllfQVVESVRfVE9LRU4pCiAg
ICAgaWYgKG1fcHJvY2Vzcy0+aXNMYXVuY2hpbmcoKSkKQEAgLTE0NDUsNyArMTQ0NSw3IEBAIHZv
aWQgV2ViUGFnZVByb3h5Ojpsb2FkRGF0YVdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9j
ZXNzUHJveHk+JiYgcHJvY2VzcywKICAgICBsb2FkUGFyYW1ldGVycy53ZWJzaXRlUG9saWNpZXMg
PSBXVEZNb3ZlKHdlYnNpdGVQb2xpY2llcyk7CiAgICAgbG9hZFBhcmFtZXRlcnMuc2hvdWxkT3Bl
bkV4dGVybmFsVVJMc1BvbGljeSA9IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k7CiAgICAg
bG9hZFBhcmFtZXRlcnMuaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbiA9IGlzTmF2aWdhdGlu
Z1RvQXBwQm91bmREb21haW47Ci0gICAgYWRkUGxhdGZvcm1Mb2FkUGFyYW1ldGVycyhsb2FkUGFy
YW1ldGVycyk7CisgICAgYWRkUGxhdGZvcm1Mb2FkUGFyYW1ldGVycyhwcm9jZXNzLCBsb2FkUGFy
YW1ldGVycyk7CiAKICAgICBwcm9jZXNzLT5hc3N1bWVSZWFkQWNjZXNzVG9CYXNlVVJMKCp0aGlz
LCBiYXNlVVJMKTsKICAgICBwcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpMb2FkRGF0
YShsb2FkUGFyYW1ldGVycyksIHdlYlBhZ2VJRCk7CkBAIC0xNDg3LDcgKzE0ODcsNyBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6bG9hZEFsdGVybmF0ZUhUTUwoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNl
JiBodG1sRGF0YSwgY29uc3QgUwogICAgIGxvYWRQYXJhbWV0ZXJzLnVucmVhY2hhYmxlVVJMU3Ry
aW5nID0gdW5yZWFjaGFibGVVUkwuc3RyaW5nKCk7CiAgICAgbG9hZFBhcmFtZXRlcnMucHJvdmlz
aW9uYWxMb2FkRXJyb3JVUkxTdHJpbmcgPSBtX2ZhaWxpbmdQcm92aXNpb25hbExvYWRVUkw7CiAg
ICAgbG9hZFBhcmFtZXRlcnMudXNlckRhdGEgPSBVc2VyRGF0YShwcm9jZXNzKCkudHJhbnNmb3Jt
T2JqZWN0c1RvSGFuZGxlcyh1c2VyRGF0YSkuZ2V0KCkpOwotICAgIGFkZFBsYXRmb3JtTG9hZFBh
cmFtZXRlcnMobG9hZFBhcmFtZXRlcnMpOworICAgIGFkZFBsYXRmb3JtTG9hZFBhcmFtZXRlcnMo
cHJvY2VzcygpLCBsb2FkUGFyYW1ldGVycyk7CiAKICAgICBtX3Byb2Nlc3MtPmFzc3VtZVJlYWRB
Y2Nlc3NUb0Jhc2VVUkwoKnRoaXMsIGJhc2VVUkwuc3RyaW5nKCkpOwogICAgIG1fcHJvY2Vzcy0+
YXNzdW1lUmVhZEFjY2Vzc1RvQmFzZVVSTCgqdGhpcywgdW5yZWFjaGFibGVVUkwuc3RyaW5nKCkp
OwpAQCAtMTUxNiw3ICsxNTE2LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmxvYWRXZWJBcmNoaXZl
RGF0YShBUEk6OkRhdGEqIHdlYkFyY2hpdmVEYXRhLCBBUEk6Ok9iamVjdCogdXMKICAgICBsb2Fk
UGFyYW1ldGVycy5NSU1FVHlwZSA9ICJhcHBsaWNhdGlvbi94LXdlYmFyY2hpdmUiX3M7CiAgICAg
bG9hZFBhcmFtZXRlcnMuZW5jb2RpbmdOYW1lID0gInV0Zi0xNiJfczsKICAgICBsb2FkUGFyYW1l
dGVycy51c2VyRGF0YSA9IFVzZXJEYXRhKHByb2Nlc3MoKS50cmFuc2Zvcm1PYmplY3RzVG9IYW5k
bGVzKHVzZXJEYXRhKS5nZXQoKSk7Ci0gICAgYWRkUGxhdGZvcm1Mb2FkUGFyYW1ldGVycyhsb2Fk
UGFyYW1ldGVycyk7CisgICAgYWRkUGxhdGZvcm1Mb2FkUGFyYW1ldGVycyhwcm9jZXNzKCksIGxv
YWRQYXJhbWV0ZXJzKTsKIAogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkxvYWREYXRhKGxv
YWRQYXJhbWV0ZXJzKSk7CiAgICAgbV9wcm9jZXNzLT5zdGFydFJlc3BvbnNpdmVuZXNzVGltZXIo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggMmVkZjQ0ZjU5ZDQ5
OGE4MjAxYThhYzc4OTg0OTNiNTIxM2UyNWRhMS4uNDkxMjQwNGZjNmNkMGUzM2JjMDE2NjcxODJk
NTFjM2I1YjAwM2I4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAg
LTYwMyw3ICs2MDMsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGNsb3NlUGFnZSgpOwogCi0gICAg
dm9pZCBhZGRQbGF0Zm9ybUxvYWRQYXJhbWV0ZXJzKExvYWRQYXJhbWV0ZXJzJik7CisgICAgdm9p
ZCBhZGRQbGF0Zm9ybUxvYWRQYXJhbWV0ZXJzKFdlYlByb2Nlc3NQcm94eSYsIExvYWRQYXJhbWV0
ZXJzJik7CiAgICAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gbG9hZFJlcXVlc3QoV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kg
PSBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGRBbGxvd0V4dGVy
bmFsU2NoZW1lcywgQVBJOjpPYmplY3QqIHVzZXJEYXRhID0gbnVsbHB0cik7CiAgICAgUmVmUHRy
PEFQSTo6TmF2aWdhdGlvbj4gbG9hZEZpbGUoY29uc3QgU3RyaW5nJiBmaWxlVVJMLCBjb25zdCBT
dHJpbmcmIHJlc291cmNlRGlyZWN0b3J5VVJMLCBBUEk6Ok9iamVjdCogdXNlckRhdGEgPSBudWxs
cHRyKTsKICAgICBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBsb2FkRGF0YShjb25zdCBJUEM6OkRh
dGFSZWZlcmVuY2UmLCBjb25zdCBTdHJpbmcmIE1JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGVuY29k
aW5nLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSA9IG51bGxw
dHIsIFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgPSBXZWJDb3JlOjpTaG91
bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IDA0ZmNmZDFjZDE2ZjU3ZmQ2N2Q1NTIw
NTlhZWVkOWM2YTM5MzkxODMuLjA0YjY3MGVlNTk3YThiYTkwZDFmMDFhNDJiN2NkNGQzZjJkZDU2
NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC0zODgs
NiArMzg4LDE1IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaGFzU2xlZXBEaXNhYmxlcigpIGNvbnN0
OwogCisjaWYgUExBVEZPUk0oQ09DT0NBKQorICAgIGJvb2wgaGFzTmV0d29ya0V4dGVuc2lvblNh
bmRib3hBY2Nlc3MoKSBjb25zdCB7IHJldHVybiBtX2hhc05ldHdvcmtFeHRlbnNpb25TYW5kYm94
QWNjZXNzOyB9CisgICAgdm9pZCBtYXJrSGFzTmV0d29ya0V4dGVuc2lvblNhbmRib3hBY2Nlc3Mo
KSB7IG1faGFzTmV0d29ya0V4dGVuc2lvblNhbmRib3hBY2Nlc3MgPSB0cnVlOyB9CisjZW5kaWYK
KyNpZiBQTEFURk9STShJT1MpCisgICAgYm9vbCBoYXNNYW5hZ2VkU2Vzc2lvblNhbmRib3hBY2Nl
c3MoKSBjb25zdCB7IHJldHVybiBtX2hhc01hbmFnZWRTZXNzaW9uU2FuZGJveEFjY2VzczsgfQor
ICAgIHZvaWQgbWFya0hhc01hbmFnZWRTZXNzaW9uU2FuZGJveEFjY2VzcygpIHsgbV9oYXNNYW5h
Z2VkU2Vzc2lvblNhbmRib3hBY2Nlc3MgPSB0cnVlOyB9CisjZW5kaWYKKwogcHJvdGVjdGVkOgog
ICAgIFdlYlByb2Nlc3NQcm94eShXZWJQcm9jZXNzUG9vbCYsIFdlYnNpdGVEYXRhU3RvcmUqLCBJ
c1ByZXdhcm1lZCk7CiAKQEAgLTU3Nyw2ICs1ODYsMTIgQEAgcHJpdmF0ZToKICAgICBib29sIG1f
aXNQcmV3YXJtZWQ7CiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkgJiYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKICAgICBib29sIG1faGFzSXNzdWVkQXR0YWNobWVudEVsZW1lbnRSZWxhdGVk
U2FuZGJveEV4dGVuc2lvbnMgeyBmYWxzZSB9OworI2VuZGlmCisjaWYgUExBVEZPUk0oQ09DT0Ep
CisgICAgYm9vbCBtX2hhc05ldHdvcmtFeHRlbnNpb25TYW5kYm94QWNjZXNzIHsgZmFsc2UgfTsK
KyNlbmRpZgorI2lmIFBMQVRGT1JNKElPUykKKyAgICBib29sIG1faGFzTWFuYWdlZFNlc3Npb25T
YW5kYm94QWNjZXNzIHsgZmFsc2UgfTsKICNlbmRpZgogICAgIE9wdGlvbmFsPFVzZUxhenlTdG9w
PiBtX3Nob3VsZFN0YXJ0UmVzcG9uc2l2ZW5lc3NUaW1lcldoZW5MYXVuY2hlZDsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUGFnZUNvY29h
Lm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUGFnZUNvY29h
Lm1tCmluZGV4IGE4ODJjZDc1ODM2NjBkZjRkZmNkMDNjZjE2MjYwYWVkZjc2YWMwNTkuLjJjNzQ0
NTU0OTM0ZWFlNDAxODEzYzU0MzNjNTE0MjI4ODg0MzA1ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VDb2NvYS5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29jb2EubW0KQEAgLTQ1
LDE5ICs0NSwzOSBAQAogI2ltcG9ydCA8V2ViQ29yZS9IVE1MT0xpc3RFbGVtZW50Lmg+CiAjaW1w
b3J0IDxXZWJDb3JlL0hUTUxVTGlzdEVsZW1lbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvSGl0VGVz
dFJlc3VsdC5oPgorI2ltcG9ydCA8V2ViQ29yZS9OZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRl
ci5oPgogI2ltcG9ydCA8V2ViQ29yZS9Ob2RlUmVuZGVyU3R5bGUuaD4KICNpbXBvcnQgPFdlYkNv
cmUvUGF5bWVudENvb3JkaW5hdG9yLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtTWVkaWFT
ZXNzaW9uTWFuYWdlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9SYW5nZS5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9SZW5kZXJFbGVtZW50Lmg+CiAKKyNpZiBQTEFURk9STShJT1MpCisjaW1wb3J0IDxXZWJD
b3JlL1BhcmVudGFsQ29udHJvbHNDb250ZW50RmlsdGVyLmg+CisjZW5kaWYKKwogI2lmIFBMQVRG
T1JNKENPQ09BKQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdm9pZCBXZWJQYWdlOjpwbGF0Zm9y
bURpZFJlY2VpdmVMb2FkUGFyYW1ldGVycyhjb25zdCBMb2FkUGFyYW1ldGVycyYgbG9hZFBhcmFt
ZXRlcnMpCit2b2lkIFdlYlBhZ2U6OnBsYXRmb3JtRGlkUmVjZWl2ZUxvYWRQYXJhbWV0ZXJzKGNv
bnN0IExvYWRQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogewotICAgIG1fZGF0YURldGVjdGlvbkNv
bnRleHQgPSBsb2FkUGFyYW1ldGVycy5kYXRhRGV0ZWN0aW9uQ29udGV4dDsKKyAgICBtX2RhdGFE
ZXRlY3Rpb25Db250ZXh0ID0gcGFyYW1ldGVycy5kYXRhRGV0ZWN0aW9uQ29udGV4dDsKKworICAg
IGlmIChwYXJhbWV0ZXJzLm5lSGVscGVyRXh0ZW5zaW9uSGFuZGxlKQorICAgICAgICBTYW5kYm94
RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkoKnBhcmFtZXRlcnMubmVIZWxwZXJFeHRlbnNp
b25IYW5kbGUpOworICAgIGlmIChwYXJhbWV0ZXJzLm5lU2Vzc2lvbk1hbmFnZXJFeHRlbnNpb25I
YW5kbGUpCisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNvbnN1bWVQZXJtYW5lbnRseSgqcGFy
YW1ldGVycy5uZVNlc3Npb25NYW5hZ2VyRXh0ZW5zaW9uSGFuZGxlKTsKKyAgICBOZXR3b3JrRXh0
ZW5zaW9uQ29udGVudEZpbHRlcjo6c2V0SGFzQ29uc3VtZWRTYW5kYm94RXh0ZW5zaW9ucyhwYXJh
bWV0ZXJzLm5lSGVscGVyRXh0ZW5zaW9uSGFuZGxlLmhhc1ZhbHVlKCkgJiYgcGFyYW1ldGVycy5u
ZVNlc3Npb25NYW5hZ2VyRXh0ZW5zaW9uSGFuZGxlLmhhc1ZhbHVlKCkpOworCisjaWYgUExBVEZP
Uk0oSU9TKQorICAgIGlmIChwYXJhbWV0ZXJzLmNvbnRlbnRGaWx0ZXJFeHRlbnNpb25IYW5kbGUp
CisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNvbnN1bWVQZXJtYW5lbnRseSgqcGFyYW1ldGVy
cy5jb250ZW50RmlsdGVyRXh0ZW5zaW9uSGFuZGxlKTsKKyAgICBQYXJlbnRhbENvbnRyb2xzQ29u
dGVudEZpbHRlcjo6c2V0SGFzQ29uc3VtZWRTYW5kYm94RXh0ZW5zaW9uKHBhcmFtZXRlcnMuY29u
dGVudEZpbHRlckV4dGVuc2lvbkhhbmRsZS5oYXNWYWx1ZSgpKTsKKworICAgIGlmIChwYXJhbWV0
ZXJzLmZyb250Ym9hcmRTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlKQorICAgICAgICBTYW5kYm94RXh0
ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkoKnBhcmFtZXRlcnMuZnJvbnRib2FyZFNlcnZpY2VF
eHRlbnNpb25IYW5kbGUpOworI2VuZGlmCiB9CiAKIHZvaWQgV2ViUGFnZTo6cmVxdWVzdEFjdGl2
ZU5vd1BsYXlpbmdTZXNzaW9uSW5mbyhDYWxsYmFja0lEIGNhbGxiYWNrSUQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQppbmRleCA2MTA1
NWYwOGI0NjhlNWFlZDg3MWNmYjc4NTU0ZGZjMDA0MDM5NTJjLi42N2YwYzQ0YjE1MGNlNDUwNGU4
MTIxMWM1ZTNmZTBkYzM4MTk5YTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KQEAgLTYzLDcgKzYzLDYgQEAKICNpbXBvcnQgPFdl
YkNvcmUvTG9nSW5pdGlhbGl6YXRpb24uaD4KICNpbXBvcnQgPFdlYkNvcmUvTWVtb3J5UmVsZWFz
ZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9OU1Njcm9sbGVySW1wRGV0YWlscy5oPgotI2ltcG9ydCA8
V2ViQ29yZS9OZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9QZXJmb3JtYW5jZUxvZ2dpbmcuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGljdHVyZUluUGljdHVy
ZVN1cHBvcnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+
CkBAIC05NCwxMCArOTMsNiBAQAogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvUmVtb3RlSW5zcGVj
dG9yLmg+CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKElPUykKLSNpbXBvcnQgPFdlYkNvcmUvUGFy
ZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXIuaD4KLSNlbmRpZgotCiAjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKICNpbXBvcnQgIlVJS2l0U1BJLmgiCiAjaW1wb3J0IDxibWFsbG9jL01lbW9yeVN0
YXR1c1NQSS5oPgpAQCAtMjc0LDEzICsyNjksNiBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3Jt
SW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYQog
I2lmIFBMQVRGT1JNKElPUykKICAgICBpZiAocGFyYW1ldGVycy5jb21waWxlclNlcnZpY2VFeHRl
bnNpb25IYW5kbGUpCiAgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNvbnN1bWVQZXJtYW5lbnRs
eSgqcGFyYW1ldGVycy5jb21waWxlclNlcnZpY2VFeHRlbnNpb25IYW5kbGUpOwotCi0gICAgaWYg
KHBhcmFtZXRlcnMuY29udGVudEZpbHRlckV4dGVuc2lvbkhhbmRsZSkKLSAgICAgICAgU2FuZGJv
eEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5KCpwYXJhbWV0ZXJzLmNvbnRlbnRGaWx0ZXJF
eHRlbnNpb25IYW5kbGUpOwotICAgIFBhcmVudGFsQ29udHJvbHNDb250ZW50RmlsdGVyOjpzZXRI
YXNDb25zdW1lZFNhbmRib3hFeHRlbnNpb24ocGFyYW1ldGVycy5jb250ZW50RmlsdGVyRXh0ZW5z
aW9uSGFuZGxlLmhhc1ZhbHVlKCkpOwotCi0gICAgaWYgKHBhcmFtZXRlcnMuZnJvbnRib2FyZFNl
cnZpY2VFeHRlbnNpb25IYW5kbGUpCi0gICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNvbnN1bWVQ
ZXJtYW5lbnRseSgqcGFyYW1ldGVycy5mcm9udGJvYXJkU2VydmljZUV4dGVuc2lvbkhhbmRsZSk7
CiAjZW5kaWYKIAogICAgIGlmIChwYXJhbWV0ZXJzLmNvbnRhaW5lck1hbmFnZXJFeHRlbnNpb25I
YW5kbGUpCkBAIC0yOTIsMTIgKzI4MCw2IEBAIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0
aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhCiAgICAg
U2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5KHBhcmFtZXRlcnMuZHluYW1pY0lP
S2l0RXh0ZW5zaW9uSGFuZGxlcyk7CiAjZW5kaWYKICAgICAKLSAgICBpZiAocGFyYW1ldGVycy5u
ZUhlbHBlckV4dGVuc2lvbkhhbmRsZSkKLSAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y29uc3Vt
ZVBlcm1hbmVudGx5KCpwYXJhbWV0ZXJzLm5lSGVscGVyRXh0ZW5zaW9uSGFuZGxlKTsKLSAgICBp
ZiAocGFyYW1ldGVycy5uZVNlc3Npb25NYW5hZ2VyRXh0ZW5zaW9uSGFuZGxlKQotICAgICAgICBT
YW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkoKnBhcmFtZXRlcnMubmVTZXNzaW9u
TWFuYWdlckV4dGVuc2lvbkhhbmRsZSk7Ci0gICAgTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0
ZXI6OnNldEhhc0NvbnN1bWVkU2FuZGJveEV4dGVuc2lvbnMocGFyYW1ldGVycy5uZUhlbHBlckV4
dGVuc2lvbkhhbmRsZS5oYXNWYWx1ZSgpICYmIHBhcmFtZXRlcnMubmVTZXNzaW9uTWFuYWdlckV4
dGVuc2lvbkhhbmRsZS5oYXNWYWx1ZSgpKTsKLQogICAgIHNldFN5c3RlbUhhc0JhdHRlcnkocGFy
YW1ldGVycy5zeXN0ZW1IYXNCYXR0ZXJ5KTsKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402362</attachid>
            <date>2020-06-19 17:37:29 -0700</date>
            <delta_ts>2020-06-19 19:03:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213414-20200619173728.patch</filename>
            <type>text/plain</type>
            <size>28896</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMjkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTg4YmVhOWY0ODFjZjYy
ODRhYzc2YjE5YWMxM2I4ZjRmYWZiNTAyZC4uMzAwNGMzMjI5ZjQ2Y2JkNjcxMDIwYzlmNzhiOGJi
ZWZlOWJlZmQ5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIwLTA2LTE5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBEZWxheSBpc3N1
aW5nIE1hbmFnZWRTZXNzaW9uICYgTmV0d29yayBFeHRlbnNpb24gc2FuZGJveCBleHRlbnNpb25z
IHVudGlsIGEgbG9hZCBpcyBhY3R1YWxseSBpc3N1ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzQxNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NjQ1NDg2ODQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUGVyIEFybmUgVm9sbGFuLgorCisgICAg
ICAgIHNldEhhc0NvbnN1bWVkU2FuZGJveEV4dGVuc2lvbnMoKSBjYW4gbm93IGdldCBjYWxsZWQg
c2V2ZXJhbCB0aW1lcywgZXZlcnkgdGltZSBhIFdlYlBhZ2UgaXMgY3JlYXRlZC4KKyAgICAgICAg
T25jZSBhIHNhbmRib3ggZXh0ZW5zaW9uIGhhcyBiZWVuIGNvbnN1bWVkLCB0aGVyZSBpcyBubyBn
b2luZyBiYWNrIHNvIHJldHVybiBlYXJseSBpZiB0aGUgc3RhdGUgaXMKKyAgICAgICAgYWxyZWFk
eSAiQ29uc3VtZWQiLgorCisgICAgICAgICogcGxhdGZvcm0vY29jb2EvTmV0d29ya0V4dGVuc2lv
bkNvbnRlbnRGaWx0ZXIubW06CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrRXh0ZW5zaW9uQ29u
dGVudEZpbHRlcjo6c2V0SGFzQ29uc3VtZWRTYW5kYm94RXh0ZW5zaW9ucyk6CisgICAgICAgICog
cGxhdGZvcm0vY29jb2EvUGFyZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXIubW06CisgICAgICAg
IChXZWJDb3JlOjpQYXJlbnRhbENvbnRyb2xzQ29udGVudEZpbHRlcjo6c2V0SGFzQ29uc3VtZWRT
YW5kYm94RXh0ZW5zaW9uKToKKwogMjAyMC0wNi0xOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgogCiAgICAgICAgIEF2b2lkIGluaXRpYWxpemluZyBSZW5kZXJUaGVtZSBzaW5nbGV0
b24gdW5uZWNlc3NhcmlseSBpbiB0aGUgVUlQcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDViYTFjZGIxYTU3
MDFmYzFlM2Y1MDM3YjM3Njg5ZDUwOWQ2ZDE4NGEuLmZkMDc4ZGVjOGIxZjUyMDE2OWZkZDE4ZWI2
NWMxNWM0YWVjYzJiZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDYgQEAKKzIwMjAtMDYtMTkgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIERlbGF5IGlz
c3VpbmcgTWFuYWdlZFNlc3Npb24gJiBOZXR3b3JrIEV4dGVuc2lvbiBzYW5kYm94IGV4dGVuc2lv
bnMgdW50aWwgYSBsb2FkIGlzIGFjdHVhbGx5IGlzc3VlZAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzNDE0CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS82NDU0ODY4ND4KKworICAgICAgICBSZXZpZXdlZCBieSBQZXIgQXJuZSBWb2xsYW4uCisKKyAg
ICAgICAgRGVsYXkgaXNzdWluZyBNYW5hZ2VkU2Vzc2lvbiAmIE5ldHdvcmsgRXh0ZW5zaW9uIHNh
bmRib3ggZXh0ZW5zaW9ucyB1bnRpbCBhIGxvYWQgaXMgYWN0dWFsbHkgaXNzdWVkLgorICAgICAg
ICBUaGlzIGlzIGEgU2FmYXJpIGxhdW5jaCB0aW1lIG9wdGltaXphdGlvbiBzaW5jZSB0aGUgY2hl
Y2tzIG5lZWRlZCB0byBkZWNpZGUgd2hldGhlciBvciBub3QgdG8gaXNzdWUKKyAgICAgICAgdGhl
IGV4dGVuc2lvbnMgYXJlIGV4cGVuc2l2ZSBhbmQgdGhlcmUgaXMgbm8gcmVhc29uIHRvIGlzc3Vl
IHRoZW0gYXMgc29vbiBhcyB0aGUgcHJvY2VzcyBsYXVuY2hlcworICAgICAgICAoZXNwZWNpYWxs
eSBpbiB0aGUgY2FzZSBvZiBhIHByZXdhcm1lZCBwcm9jZXNzKS4KKworICAgICAgICAqIFNoYXJl
ZC9Db2NvYS9Mb2FkUGFyYW1ldGVyc0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpMb2FkUGFy
YW1ldGVyczo6cGxhdGZvcm1FbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpMb2FkUGFy
YW1ldGVyczo6cGxhdGZvcm1EZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9Mb2FkUGFyYW1ldGVy
cy5oOgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVj
b2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5OjphZGRQbGF0Zm9ybUxvYWRQYXJhbWV0ZXJzKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbToKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OmFkZFBsYXRmb3JtTG9hZFBhcmFtZXRlcnMpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRpb25TaGFyZWQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OmxvYWRGaWxlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5Ojpsb2FkRGF0YVdpdGhOYXZpZ2F0aW9uU2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5Ojpsb2FkQWx0ZXJuYXRlSFRNTCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6bG9hZFdlYkFyY2hpdmVEYXRhKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6Omhhc05ldHdvcmtFeHRlbnNpb25TYW5kYm94QWNj
ZXNzIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjptYXJrSGFzTmV0
d29ya0V4dGVuc2lvblNhbmRib3hBY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNz
UHJveHk6Omhhc01hbmFnZWRTZXNzaW9uU2FuZGJveEFjY2VzcyBjb25zdCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6bWFya0hhc01hbmFnZWRTZXNzaW9uU2FuZGJveEFjY2Vz
cyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VDb2NvYS5tbToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cGxhdGZvcm1EaWRSZWNlaXZlTG9hZFBhcmFtZXRl
cnMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKToK
KwogMjAyMC0wNi0xOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAg
IEF2b2lkIGluaXRpYWxpemluZyBSZW5kZXJUaGVtZSBzaW5nbGV0b24gdW5uZWNlc3NhcmlseSBp
biB0aGUgVUlQcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9OZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2NvY29hL05ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLm1tCmluZGV4IGViZjM5YzM2
ZmRlODNkYTZiOWJiZTgxYzRkMTI2NThjYzA5MTg1MzAuLjJiMjM5Mzg2ZGY2ZjIzYjBmMmFiY2M2
MWU5YzcyMTVjNWFhOWQyNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nv
Y29hL05ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2NvY29hL05ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLm1tCkBAIC0yMjgs
NiArMjI4LDkgQEAgdm9pZCBOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlcjo6aGFuZGxlRGVj
aXNpb24oTkVGaWx0ZXJTb3VyY2VTdGF0dXMgc3RhdHVzLAogCiB2b2lkIE5ldHdvcmtFeHRlbnNp
b25Db250ZW50RmlsdGVyOjpzZXRIYXNDb25zdW1lZFNhbmRib3hFeHRlbnNpb25zKGJvb2wgaGFz
Q29uc3VtZWRTYW5kYm94RXh0ZW5zaW9ucykKIHsKKyAgICBpZiAobV9zYW5kYm94RXh0ZW5zaW9u
c1N0YXRlID09IFNhbmRib3hFeHRlbnNpb25zU3RhdGU6OkNvbnN1bWVkKQorICAgICAgICByZXR1
cm47CisKICAgICBtX3NhbmRib3hFeHRlbnNpb25zU3RhdGUgPSAoaGFzQ29uc3VtZWRTYW5kYm94
RXh0ZW5zaW9ucyA/IFNhbmRib3hFeHRlbnNpb25zU3RhdGU6OkNvbnN1bWVkIDogU2FuZGJveEV4
dGVuc2lvbnNTdGF0ZTo6Tm90Q29uc3VtZWQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jb2NvYS9QYXJlbnRhbENvbnRyb2xzQ29udGVudEZpbHRlci5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1BhcmVudGFsQ29udHJvbHNDb250ZW50RmlsdGVy
Lm1tCmluZGV4IGFlOGZiMzkyOTYyMzY0ZDczNDk4NTEzZjgxZGUwOGI3ZjRmZWUwNWMuLjQ5Zjhm
YTRiY2UwZDBmODgwYmE0Mzc1MTNhMzI2NmY1NmY1YTAwNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2NvY29hL1BhcmVudGFsQ29udHJvbHNDb250ZW50RmlsdGVyLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1BhcmVudGFsQ29udHJvbHNDb250ZW50
RmlsdGVyLm1tCkBAIC0xNTAsNiArMTUwLDkgQEAgdm9pZCBQYXJlbnRhbENvbnRyb2xzQ29udGVu
dEZpbHRlcjo6dXBkYXRlRmlsdGVyU3RhdGUoKQogI2lmIFBMQVRGT1JNKElPUykKIHZvaWQgUGFy
ZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXI6OnNldEhhc0NvbnN1bWVkU2FuZGJveEV4dGVuc2lv
bihib29sIGhhc0NvbnN1bWVkU2FuZGJveEV4dGVuc2lvbikKIHsKKyAgICBpZiAobV9zYW5kYm94
RXh0ZW5zaW9uU3RhdGUgPT0gU2FuZGJveEV4dGVuc2lvblN0YXRlOjpDb25zdW1lZCkKKyAgICAg
ICAgcmV0dXJuOworCiAgICAgbV9zYW5kYm94RXh0ZW5zaW9uU3RhdGUgPSAoaGFzQ29uc3VtZWRT
YW5kYm94RXh0ZW5zaW9uID8gU2FuZGJveEV4dGVuc2lvblN0YXRlOjpDb25zdW1lZCA6IFNhbmRi
b3hFeHRlbnNpb25TdGF0ZTo6Tm90Q29uc3VtZWQpOwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9Mb2FkUGFyYW1ldGVyc0NvY29hLm1tIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvQ29jb2EvTG9hZFBhcmFtZXRlcnNDb2NvYS5tbQppbmRleCA5NDIxNDNh
NTdlOTMxMTI2YWEzZjRlNjM4MGEwYTA1ZTU3MjAwOWNkLi5lOThmN2RiMmE2N2JlZDdlMzQzMGZi
Mzk4YzEwYWRhZDMzY2I0NjFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2Nv
YS9Mb2FkUGFyYW1ldGVyc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29h
L0xvYWRQYXJhbWV0ZXJzQ29jb2EubW0KQEAgLTM2LDEyICszNiw0NSBAQCBuYW1lc3BhY2UgV2Vi
S2l0IHsKIHZvaWQgTG9hZFBhcmFtZXRlcnM6OnBsYXRmb3JtRW5jb2RlKElQQzo6RW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKIHsKICAgICBJUEM6OmVuY29kZShlbmNvZGVyLCBkYXRhRGV0ZWN0aW9u
Q29udGV4dC5nZXQoKSk7CisKKyAgICBlbmNvZGVyIDw8IG5lSGVscGVyRXh0ZW5zaW9uSGFuZGxl
OworICAgIGVuY29kZXIgPDwgbmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZTsKKyNpZiBQ
TEFURk9STShJT1MpCisgICAgZW5jb2RlciA8PCBjb250ZW50RmlsdGVyRXh0ZW5zaW9uSGFuZGxl
OworICAgIGVuY29kZXIgPDwgZnJvbnRib2FyZFNlcnZpY2VFeHRlbnNpb25IYW5kbGU7CisjZW5k
aWYKIH0KIAotYm9vbCBMb2FkUGFyYW1ldGVyczo6cGxhdGZvcm1EZWNvZGUoSVBDOjpEZWNvZGVy
JiBkZWNvZGVyLCBMb2FkUGFyYW1ldGVycyYgZGF0YSkKK2Jvb2wgTG9hZFBhcmFtZXRlcnM6OnBs
YXRmb3JtRGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgTG9hZFBhcmFtZXRlcnMmIHBhcmFt
ZXRlcnMpCiB7Ci0gICAgaWYgKCFJUEM6OmRlY29kZShkZWNvZGVyLCBkYXRhLmRhdGFEZXRlY3Rp
b25Db250ZXh0KSkKKyAgICBpZiAoIUlQQzo6ZGVjb2RlKGRlY29kZXIsIHBhcmFtZXRlcnMuZGF0
YURldGVjdGlvbkNvbnRleHQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBPcHRpb25h
bDxPcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+PiBuZUhlbHBlckV4dGVuc2lvbkhh
bmRsZTsKKyAgICBkZWNvZGVyID4+IG5lSGVscGVyRXh0ZW5zaW9uSGFuZGxlOworICAgIGlmICgh
bmVIZWxwZXJFeHRlbnNpb25IYW5kbGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBwYXJh
bWV0ZXJzLm5lSGVscGVyRXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZSgqbmVIZWxwZXJFeHRlbnNp
b25IYW5kbGUpOworCisgICAgT3B0aW9uYWw8T3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFu
ZGxlPj4gbmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZTsKKyAgICBkZWNvZGVyID4+IG5l
U2Vzc2lvbk1hbmFnZXJFeHRlbnNpb25IYW5kbGU7CisgICAgaWYgKCFuZVNlc3Npb25NYW5hZ2Vy
RXh0ZW5zaW9uSGFuZGxlKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcGFyYW1ldGVycy5u
ZVNlc3Npb25NYW5hZ2VyRXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZSgqbmVTZXNzaW9uTWFuYWdl
ckV4dGVuc2lvbkhhbmRsZSk7CisKKyNpZiBQTEFURk9STShJT1MpCisgICAgT3B0aW9uYWw8T3B0
aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPj4gY29udGVudEZpbHRlckV4dGVuc2lvbkhh
bmRsZTsKKyAgICBkZWNvZGVyID4+IGNvbnRlbnRGaWx0ZXJFeHRlbnNpb25IYW5kbGU7CisgICAg
aWYgKCFjb250ZW50RmlsdGVyRXh0ZW5zaW9uSGFuZGxlKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgcGFyYW1ldGVycy5jb250ZW50RmlsdGVyRXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZSgq
Y29udGVudEZpbHRlckV4dGVuc2lvbkhhbmRsZSk7CisKKyAgICBPcHRpb25hbDxPcHRpb25hbDxT
YW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+PiBmcm9udGJvYXJkU2VydmljZUV4dGVuc2lvbkhhbmRs
ZTsKKyAgICBkZWNvZGVyID4+IGZyb250Ym9hcmRTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlOworICAg
IGlmICghZnJvbnRib2FyZFNlcnZpY2VFeHRlbnNpb25IYW5kbGUpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICBwYXJhbWV0ZXJzLmZyb250Ym9hcmRTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlID0g
V1RGTW92ZSgqZnJvbnRib2FyZFNlcnZpY2VFeHRlbnNpb25IYW5kbGUpOworI2VuZGlmCiAKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0xvYWRQ
YXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Mb2FkUGFyYW1ldGVycy5oCmluZGV4
IDQ3MTBkMzI3YzA4NmU0MjE5YWIwMDNjZDM1ZmEzYWE1Zjk3MTEwYjQuLmU4ODE0NWIwYWVhNTVi
MGYxMWQ0OTUwMjQ0ZjZlMWUwZDk0Mjk0YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0xvYWRQYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvTG9hZFBhcmFt
ZXRlcnMuaApAQCAtNzQsNiArNzQsMTIgQEAgc3RydWN0IExvYWRQYXJhbWV0ZXJzIHsKIAogI2lm
IFBMQVRGT1JNKENPQ09BKQogICAgIFJldGFpblB0cjxOU0RpY3Rpb25hcnk+IGRhdGFEZXRlY3Rp
b25Db250ZXh0OworICAgIE9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gbmVIZWxw
ZXJFeHRlbnNpb25IYW5kbGU7CisgICAgT3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxl
PiBuZVNlc3Npb25NYW5hZ2VyRXh0ZW5zaW9uSGFuZGxlOworI2VuZGlmCisjaWYgUExBVEZPUk0o
SU9TKQorICAgIE9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gY29udGVudEZpbHRl
ckV4dGVuc2lvbkhhbmRsZTsKKyAgICBPcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+
IGZyb250Ym9hcmRTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlOwogI2VuZGlmCiB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNw
cCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3Bw
CmluZGV4IDllNzBiYTVkODkwNWJjODc2YmI3MjZjMjY0YjY5MmJkOGQxOThmZTYuLjlhNDM0OWRk
NDNlZTVjNWE2MzAwMDU2NWU2NGRkMWM5OGM4ZGEzNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC0xNTcsOCAr
MTU3LDYgQEAgdm9pZCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIAogI2lmIFBMQVRGT1JNKElPUykKICAgICBlbmNv
ZGVyIDw8IGNvbXBpbGVyU2VydmljZUV4dGVuc2lvbkhhbmRsZTsKLSAgICBlbmNvZGVyIDw8IGNv
bnRlbnRGaWx0ZXJFeHRlbnNpb25IYW5kbGU7Ci0gICAgZW5jb2RlciA8PCBmcm9udGJvYXJkU2Vy
dmljZUV4dGVuc2lvbkhhbmRsZTsKICNlbmRpZgogCiAgICAgZW5jb2RlciA8PCBjb250YWluZXJN
YW5hZ2VyRXh0ZW5zaW9uSGFuZGxlOwpAQCAtMTcwLDggKzE2OCw2IEBAIHZvaWQgV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QK
ICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgZW5jb2RlciA8PCBuZUhlbHBlckV4
dGVuc2lvbkhhbmRsZTsKLSAgICBlbmNvZGVyIDw8IG5lU2Vzc2lvbk1hbmFnZXJFeHRlbnNpb25I
YW5kbGU7CiAgICAgZW5jb2RlciA8PCBtYXBEQkV4dGVuc2lvbkhhbmRsZTsKICAgICBlbmNvZGVy
IDw8IHN5c3RlbUhhc0JhdHRlcnk7CiAjZW5kaWYKQEAgLTQyMywxOCArNDE5LDYgQEAgYm9vbCBX
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVy
LCBXZWJQcm9jZXNzQ3JlYXQKICAgICBpZiAoIWNvbXBpbGVyU2VydmljZUV4dGVuc2lvbkhhbmRs
ZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHBhcmFtZXRlcnMuY29tcGlsZXJTZXJ2aWNl
RXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZSgqY29tcGlsZXJTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxl
KTsKLQotICAgIE9wdGlvbmFsPE9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4+IGNv
bnRlbnRGaWx0ZXJFeHRlbnNpb25IYW5kbGU7Ci0gICAgZGVjb2RlciA+PiBjb250ZW50RmlsdGVy
RXh0ZW5zaW9uSGFuZGxlOwotICAgIGlmICghY29udGVudEZpbHRlckV4dGVuc2lvbkhhbmRsZSkK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHBhcmFtZXRlcnMuY29udGVudEZpbHRlckV4dGVu
c2lvbkhhbmRsZSA9IFdURk1vdmUoKmNvbnRlbnRGaWx0ZXJFeHRlbnNpb25IYW5kbGUpOwotCi0g
ICAgT3B0aW9uYWw8T3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPj4gZnJvbnRib2Fy
ZFNlcnZpY2VFeHRlbnNpb25IYW5kbGU7Ci0gICAgZGVjb2RlciA+PiBmcm9udGJvYXJkU2Vydmlj
ZUV4dGVuc2lvbkhhbmRsZTsKLSAgICBpZiAoIWZyb250Ym9hcmRTZXJ2aWNlRXh0ZW5zaW9uSGFu
ZGxlKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcGFyYW1ldGVycy5mcm9udGJvYXJkU2Vy
dmljZUV4dGVuc2lvbkhhbmRsZSA9IFdURk1vdmUoKmZyb250Ym9hcmRTZXJ2aWNlRXh0ZW5zaW9u
SGFuZGxlKTsKICNlbmRpZgogCiAgICAgT3B0aW9uYWw8T3B0aW9uYWw8U2FuZGJveEV4dGVuc2lv
bjo6SGFuZGxlPj4gY29udGFpbmVyTWFuYWdlckV4dGVuc2lvbkhhbmRsZTsKQEAgLTQ2NCwxOCAr
NDQ4LDYgQEAgYm9vbCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpE
ZWNvZGVyJiBkZWNvZGVyLCBXZWJQcm9jZXNzQ3JlYXQKICNlbmRpZgogCiAjaWYgUExBVEZPUk0o
Q09DT0EpCi0gICAgT3B0aW9uYWw8T3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPj4g
bmVIZWxwZXJFeHRlbnNpb25IYW5kbGU7Ci0gICAgZGVjb2RlciA+PiBuZUhlbHBlckV4dGVuc2lv
bkhhbmRsZTsKLSAgICBpZiAoIW5lSGVscGVyRXh0ZW5zaW9uSGFuZGxlKQotICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgcGFyYW1ldGVycy5uZUhlbHBlckV4dGVuc2lvbkhhbmRsZSA9IFdURk1v
dmUoKm5lSGVscGVyRXh0ZW5zaW9uSGFuZGxlKTsKLQotICAgIE9wdGlvbmFsPE9wdGlvbmFsPFNh
bmRib3hFeHRlbnNpb246OkhhbmRsZT4+IG5lU2Vzc2lvbk1hbmFnZXJFeHRlbnNpb25IYW5kbGU7
Ci0gICAgZGVjb2RlciA+PiBuZVNlc3Npb25NYW5hZ2VyRXh0ZW5zaW9uSGFuZGxlOwotICAgIGlm
ICghbmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZSkKLSAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgIHBhcmFtZXRlcnMubmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZSA9IFdURk1v
dmUoKm5lU2Vzc2lvbk1hbmFnZXJFeHRlbnNpb25IYW5kbGUpOwotCiAgICAgT3B0aW9uYWw8T3B0
aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPj4gbWFwREJFeHRlbnNpb25IYW5kbGU7CiAg
ICAgZGVjb2RlciA+PiBtYXBEQkV4dGVuc2lvbkhhbmRsZTsKICAgICBpZiAoIW1hcERCRXh0ZW5z
aW9uSGFuZGxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5oCmluZGV4IDM5YjU3YzhlYmJiNzI1OWM1YWU5ZDg4ODJmOWYwNzRiMWY0
YWIyM2QuLmFhMWI3YWExZmI3NmJjMDdkYzgwNmZkMDJkM2RkMWNhMTlmYjRlMGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgK
QEAgLTIwMSw4ICsyMDEsNiBAQCBzdHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7
CiAgICAgCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIE9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246
OkhhbmRsZT4gY29tcGlsZXJTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlOwotICAgIE9wdGlvbmFsPFNh
bmRib3hFeHRlbnNpb246OkhhbmRsZT4gY29udGVudEZpbHRlckV4dGVuc2lvbkhhbmRsZTsKLSAg
ICBPcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+IGZyb250Ym9hcmRTZXJ2aWNlRXh0
ZW5zaW9uSGFuZGxlOwogI2VuZGlmCiAKICAgICBPcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpI
YW5kbGU+IGNvbnRhaW5lck1hbmFnZXJFeHRlbnNpb25IYW5kbGU7CkBAIC0yMTQsOCArMjEyLDYg
QEAgc3RydWN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgewogI2VuZGlmCiAKICNpZiBQ
TEFURk9STShDT0NPQSkKLSAgICBPcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+IG5l
SGVscGVyRXh0ZW5zaW9uSGFuZGxlOwotICAgIE9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246Okhh
bmRsZT4gbmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZTsKICAgICBPcHRpb25hbDxTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGU+IG1hcERCRXh0ZW5zaW9uSGFuZGxlOwogICAgIGJvb2wgc3lz
dGVtSGFzQmF0dGVyeSB7IGZhbHNlIH07CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KaW5kZXggMzZmMDFjYmY3MWRhZWNk
ZDc1MzE0YzZkMTYwZGE3OGZmZGJhOWQxNC4uNzJlNDgzMzNiOGU4MDEwYzg1M2NiMzYwNWM4YThi
ZGZmOGQ3NWNjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2Vi
UGFnZVByb3h5Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2Vi
UGFnZVByb3h5Q29jb2EubW0KQEAgLTQ3LDEzICs0NywyNSBAQAogI2ltcG9ydCA8V2ViQ29yZS9T
ZWFyY2hQb3B1cE1lbnVDb2NvYS5oPgogI2ltcG9ydCA8V2ViQ29yZS9UZXh0QWx0ZXJuYXRpdmVX
aXRoUmFuZ2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvVmFsaWRhdGlvbkJ1YmJsZS5oPgorI2ltcG9y
dCA8cGFsL3NwaS9jb2NvYS9ORUZpbHRlclNvdXJjZVNQSS5oPgogI2ltcG9ydCA8d3RmL0Jsb2Nr
UHRyLmg+CisjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KICNpbXBvcnQgPHd0Zi9jZi9UeXBl
Q2FzdHNDRi5oPgogCiAjaWYgRU5BQkxFKE1FRElBX1VTQUdFKQogI2ltcG9ydCAiTWVkaWFVc2Fn
ZU1hbmFnZXJDb2NvYS5oIgogI2VuZGlmCiAKKyNpZiBQTEFURk9STShJT1MpCisjaW1wb3J0IDxw
YWwvc3BpL2NvY29hL1dlYkZpbHRlckV2YWx1YXRvclNQSS5oPgorCitTT0ZUX0xJTktfUFJJVkFU
RV9GUkFNRVdPUksoV2ViQ29udGVudEFuYWx5c2lzKTsKK1NPRlRfTElOS19DTEFTUyhXZWJDb250
ZW50QW5hbHlzaXMsIFdlYkZpbHRlckV2YWx1YXRvcik7CisjZW5kaWYKKworU09GVF9MSU5LX0ZS
QU1FV09SS19PUFRJT05BTChOZXR3b3JrRXh0ZW5zaW9uKTsKK1NPRlRfTElOS19DTEFTU19PUFRJ
T05BTChOZXR3b3JrRXh0ZW5zaW9uLCBORUZpbHRlclNvdXJjZSk7CisKICNkZWZpbmUgTUVTU0FH
RV9DSEVDSyhhc3NlcnRpb24pIE1FU1NBR0VfQ0hFQ0tfQkFTRShhc3NlcnRpb24sIHByb2Nlc3Mo
KS5jb25uZWN0aW9uKCkpCiAjZGVmaW5lIE1FU1NBR0VfQ0hFQ0tfQ09NUExFVElPTihhc3NlcnRp
b24sIGNvbXBsZXRpb24pIE1FU1NBR0VfQ0hFQ0tfQ09NUExFVElPTl9CQVNFKGFzc2VydGlvbiwg
cHJvY2VzcygpLmNvbm5lY3Rpb24oKSwgY29tcGxldGlvbikKIApAQCAtMTI5LDkgKzE0MSwzOCBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6Y29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lU2hh
cmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JgogfQogI2VuZGlmCiAKLXZvaWQgV2ViUGFnZVByb3h5
OjphZGRQbGF0Zm9ybUxvYWRQYXJhbWV0ZXJzKExvYWRQYXJhbWV0ZXJzJiBsb2FkUGFyYW1ldGVy
cykKK3ZvaWQgV2ViUGFnZVByb3h5OjphZGRQbGF0Zm9ybUxvYWRQYXJhbWV0ZXJzKFdlYlByb2Nl
c3NQcm94eSYgcHJvY2VzcywgTG9hZFBhcmFtZXRlcnMmIGxvYWRQYXJhbWV0ZXJzKQogewogICAg
IGxvYWRQYXJhbWV0ZXJzLmRhdGFEZXRlY3Rpb25Db250ZXh0ID0gbV91aUNsaWVudC0+ZGF0YURl
dGVjdGlvbkNvbnRleHQoKTsKKworICAgIGlmICghcHJvY2Vzcy5oYXNOZXR3b3JrRXh0ZW5zaW9u
U2FuZGJveEFjY2VzcygpICYmIFtnZXRORUZpbHRlclNvdXJjZUNsYXNzKCkgZmlsdGVyUmVxdWly
ZWRdKSB7CisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBoZWxwZXJIYW5kbGU7Cisg
ICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5h
cHBsZS5uZWhlbHBlciJfcywgV1RGOjpudWxsb3B0LCBoZWxwZXJIYW5kbGUpOworICAgICAgICBs
b2FkUGFyYW1ldGVycy5uZUhlbHBlckV4dGVuc2lvbkhhbmRsZSA9IFdURk1vdmUoaGVscGVySGFu
ZGxlKTsKKyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIG1hbmFnZXJIYW5kbGU7Cisj
aWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwgMTAx
NTAwCisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAo
ImNvbS5hcHBsZS5uZXNlc3Npb25tYW5hZ2VyIl9zLCBXVEY6Om51bGxvcHQsIG1hbmFnZXJIYW5k
bGUpOworI2Vsc2UKKyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFj
aExvb2t1cCgiY29tLmFwcGxlLm5lc2Vzc2lvbm1hbmFnZXIuY29udGVudC1maWx0ZXIiX3MsIFdU
Rjo6bnVsbG9wdCwgbWFuYWdlckhhbmRsZSk7CisjZW5kaWYKKyAgICAgICAgbG9hZFBhcmFtZXRl
cnMubmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZSA9IFdURk1vdmUobWFuYWdlckhhbmRs
ZSk7CisKKyAgICAgICAgcHJvY2Vzcy5tYXJrSGFzTmV0d29ya0V4dGVuc2lvblNhbmRib3hBY2Nl
c3MoKTsKKyAgICB9CisKKyNpZiBQTEFURk9STShJT1MpCisgICAgaWYgKCFwcm9jZXNzLmhhc01h
bmFnZWRTZXNzaW9uU2FuZGJveEFjY2VzcygpICYmIFtnZXRXZWJGaWx0ZXJFdmFsdWF0b3JDbGFz
cygpIGlzTWFuYWdlZFNlc3Npb25dKSB7CisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRs
ZSBoYW5kbGU7CisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hM
b29rdXAoImNvbS5hcHBsZS51aWtpdC52aWV3c2VydmljZS5jb20uYXBwbGUuV2ViQ29udGVudEZp
bHRlci5yZW1vdGVVSSJfcywgV1RGOjpudWxsb3B0LCBoYW5kbGUpOworICAgICAgICBsb2FkUGFy
YW1ldGVycy5jb250ZW50RmlsdGVyRXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZShoYW5kbGUpOwor
CisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBmcm9udGJvYXJkU2VydmljZUV4dGVu
c2lvbkhhbmRsZTsKKyAgICAgICAgaWYgKFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZv
ck1hY2hMb29rdXAoImNvbS5hcHBsZS5mcm9udGJvYXJkLnN5c3RlbWFwcHNlcnZpY2VzIl9zLCBX
VEY6Om51bGxvcHQsIGZyb250Ym9hcmRTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlKSkKKyAgICAgICAg
ICAgIGxvYWRQYXJhbWV0ZXJzLmZyb250Ym9hcmRTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlID0gV1RG
TW92ZShmcm9udGJvYXJkU2VydmljZUV4dGVuc2lvbkhhbmRsZSk7CisKKyAgICAgICAgcHJvY2Vz
cy5tYXJrSGFzTWFuYWdlZFNlc3Npb25TYW5kYm94QWNjZXNzKCk7CisgICAgfQorI2VuZGlmCiB9
CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpjcmVhdGVTYW5kYm94RXh0ZW5zaW9uc0lmTmVlZGVkKGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlcywgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiBmaWxl
UmVhZEhhbmRsZSwgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkmIGZpbGVVcGxvYWRIYW5k
bGVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vz
c1Bvb2xDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQ
b29sQ29jb2EubW0KaW5kZXggYmYyOTE0NGIwNTY3ZDk2NGJlMmIwYjNkZTE5ZmVmYjEzMjE3ZWUx
Yy4uODUyYjRhMzFjMWE1MWQ0YzViZWFhOWNlOGVmZDBjZjE2ZDRmZGE0ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCkBA
IC03OSwyNyArNzksMTQgQEAKICNpbXBvcnQgPFF1YXJ0ekNvcmUvQ0FSZW1vdGVMYXllclNlcnZl
ci5oPgogI2Vsc2UKICNpbXBvcnQgIlVJS2l0U1BJLmgiCi0jaW1wb3J0IDxwYWwvaW9zL01hbmFn
ZWRDb25maWd1cmF0aW9uU29mdExpbmsuaD4KLSNpbXBvcnQgPHBhbC9zcGkvaW9zL01hbmFnZWRD
b25maWd1cmF0aW9uU1BJLmg+CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAj
aW1wb3J0IDxwYWwvc3BpL2lvcy9Nb2JpbGVHZXN0YWx0U1BJLmg+CiAjZW5kaWYKIAotI2lmIFBM
QVRGT1JNKElPUykKLSNpbXBvcnQgPHBhbC9zcGkvY29jb2EvV2ViRmlsdGVyRXZhbHVhdG9yU1BJ
Lmg+Ci0KLVNPRlRfTElOS19QUklWQVRFX0ZSQU1FV09SSyhXZWJDb250ZW50QW5hbHlzaXMpOwot
U09GVF9MSU5LX0NMQVNTKFdlYkNvbnRlbnRBbmFseXNpcywgV2ViRmlsdGVyRXZhbHVhdG9yKTsK
LSNlbmRpZgotCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAjaW1wb3J0IDxXZWJDb3JlL1N5c3RlbUJh
dHRlcnkuaD4KLSNpbXBvcnQgPHBhbC9zcGkvY29jb2EvTkVGaWx0ZXJTb3VyY2VTUEkuaD4KLQot
U09GVF9MSU5LX0ZSQU1FV09SS19PUFRJT05BTChOZXR3b3JrRXh0ZW5zaW9uKTsKLVNPRlRfTElO
S19DTEFTU19PUFRJT05BTChOZXR3b3JrRXh0ZW5zaW9uLCBORUZpbHRlclNvdXJjZSk7CiAjZW5k
aWYKIAogTlNTdHJpbmcgKldlYlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnlEZWZh
dWx0c0tleSA9IEAiV2ViU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeSI7CkBAIC00
MjAsMTggKzQwNyw2IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdl
YlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzCiAjZW5kaWYKICAgICAKICNp
ZiBQTEFURk9STShDT0NPQSkKLSAgICBpZiAoW2dldE5FRmlsdGVyU291cmNlQ2xhc3MoKSBmaWx0
ZXJSZXF1aXJlZF0pIHsKLSAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGhlbHBlckhh
bmRsZTsKLSAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1
cCgiY29tLmFwcGxlLm5laGVscGVyIl9zLCBXVEY6Om51bGxvcHQsIGhlbHBlckhhbmRsZSk7Ci0g
ICAgICAgIHBhcmFtZXRlcnMubmVIZWxwZXJFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3ZlKGhlbHBl
ckhhbmRsZSk7Ci0gICAgICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBtYW5hZ2VySGFuZGxl
OwotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8
IDEwMTUwMAotICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9v
a3VwKCJjb20uYXBwbGUubmVzZXNzaW9ubWFuYWdlciJfcywgV1RGOjpudWxsb3B0LCBtYW5hZ2Vy
SGFuZGxlKTsKLSNlbHNlCi0gICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZv
ck1hY2hMb29rdXAoImNvbS5hcHBsZS5uZXNlc3Npb25tYW5hZ2VyLmNvbnRlbnQtZmlsdGVyIl9z
LCBXVEY6Om51bGxvcHQsIG1hbmFnZXJIYW5kbGUpOwotI2VuZGlmCi0gICAgICAgIHBhcmFtZXRl
cnMubmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZSA9IFdURk1vdmUobWFuYWdlckhhbmRs
ZSk7Ci0gICAgfQogICAgIHBhcmFtZXRlcnMuc3lzdGVtSGFzQmF0dGVyeSA9IHN5c3RlbUhhc0Jh
dHRlcnkoKTsKIAogICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBtYXBEQkhhbmRsZTsKQEAg
LTQzOSwxOCArNDE0LDYgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXpl
V2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MKICAgICAgICAgcGFyYW1l
dGVycy5tYXBEQkV4dGVuc2lvbkhhbmRsZSA9IFdURk1vdmUobWFwREJIYW5kbGUpOwogI2VuZGlm
CiAgICAgCi0jaWYgUExBVEZPUk0oSU9TKQotICAgIGlmIChbZ2V0V2ViRmlsdGVyRXZhbHVhdG9y
Q2xhc3MoKSBpc01hbmFnZWRTZXNzaW9uXSkgewotICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpI
YW5kbGUgaGFuZGxlOwotICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JN
YWNoTG9va3VwKCJjb20uYXBwbGUudWlraXQudmlld3NlcnZpY2UuY29tLmFwcGxlLldlYkNvbnRl
bnRGaWx0ZXIucmVtb3RlVUkiX3MsIFdURjo6bnVsbG9wdCwgaGFuZGxlKTsKLSAgICAgICAgcGFy
YW1ldGVycy5jb250ZW50RmlsdGVyRXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZShoYW5kbGUpOwot
Ci0gICAgICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBmcm9udGJvYXJkU2VydmljZUV4dGVu
c2lvbkhhbmRsZTsKLSAgICAgICAgaWYgKFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZv
ck1hY2hMb29rdXAoImNvbS5hcHBsZS5mcm9udGJvYXJkLnN5c3RlbWFwcHNlcnZpY2VzIl9zLCBX
VEY6Om51bGxvcHQsIGZyb250Ym9hcmRTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlKSkKLSAgICAgICAg
ICAgIHBhcmFtZXRlcnMuZnJvbnRib2FyZFNlcnZpY2VFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3Zl
KGZyb250Ym9hcmRTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlKTsKLSAgICB9Ci0jZW5kaWYKLSAgICAK
ICAgICBpZiAocmVxdWlyZXNDb250YWluZXJNYW5hZ2VyQWNjZXNzKCkpIHsKICAgICAgICAgU2Fu
ZGJveEV4dGVuc2lvbjo6SGFuZGxlIGhhbmRsZTsKICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6
Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLmNvbnRhaW5lcm1hbmFnZXJkIl9z
LCBXVEY6Om51bGxvcHQsIGhhbmRsZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcAppbmRleCBlYjE4YTUwY2FmZDNmMzBiY2QwOTQ4NjQ2ODJmMDlmMTcwOWNmZGQ4Li5m
YzdkNjAwM2YwMmRjODliMmJlYTkxZjc4MTdmMDVjZmYyNzQxMTFhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTEyNjYsNyArMTI2Niw3IEBAIHZvaWQgV2Vi
UGFnZVByb3h5OjptYXliZUluaXRpYWxpemVTYW5kYm94RXh0ZW5zaW9uSGFuZGxlKFdlYlByb2Nl
c3NQcm94eSYgcHJvY2VzCiB9CiAKICNpZiAhUExBVEZPUk0oQ09DT0EpCi12b2lkIFdlYlBhZ2VQ
cm94eTo6YWRkUGxhdGZvcm1Mb2FkUGFyYW1ldGVycyhMb2FkUGFyYW1ldGVycyYpCit2b2lkIFdl
YlBhZ2VQcm94eTo6YWRkUGxhdGZvcm1Mb2FkUGFyYW1ldGVycyhXZWJQcm9jZXNzUHJveHkmLCBM
b2FkUGFyYW1ldGVycyYpCiB7CiB9CiAjZW5kaWYKQEAgLTEzMjMsNyArMTMyMyw3IEBAIHZvaWQg
V2ViUGFnZVByb3h5Ojpsb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9j
ZXNzUHJveHk+JiYgcHJvY2VzCiAgICAgbG9hZFBhcmFtZXRlcnMuaXNOYXZpZ2F0aW5nVG9BcHBC
b3VuZERvbWFpbiA9IGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW47CiAgICAgbWF5YmVJbml0
aWFsaXplU2FuZGJveEV4dGVuc2lvbkhhbmRsZShwcm9jZXNzLCB1cmwsIG1fcGFnZUxvYWRTdGF0
ZS5yZXNvdXJjZURpcmVjdG9yeVVSTCgpLCBsb2FkUGFyYW1ldGVycy5zYW5kYm94RXh0ZW5zaW9u
SGFuZGxlKTsKIAotICAgIGFkZFBsYXRmb3JtTG9hZFBhcmFtZXRlcnMobG9hZFBhcmFtZXRlcnMp
OworICAgIGFkZFBsYXRmb3JtTG9hZFBhcmFtZXRlcnMocHJvY2VzcywgbG9hZFBhcmFtZXRlcnMp
OwogCiAgICAgcHJlY29ubmVjdFRvKHVybCk7CiAKQEAgLTEzODUsNyArMTM4NSw3IEBAIFJlZlB0
cjxBUEk6Ok5hdmlnYXRpb24+IFdlYlBhZ2VQcm94eTo6bG9hZEZpbGUoY29uc3QgU3RyaW5nJiBm
aWxlVVJMU3RyaW5nLCBjb25zCiAgICAgbG9hZFBhcmFtZXRlcnMudXNlckRhdGEgPSBVc2VyRGF0
YShwcm9jZXNzKCkudHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxlcyh1c2VyRGF0YSkuZ2V0KCkpOwog
ICAgIGNvbnN0IGJvb2wgY2hlY2tBc3N1bWVkUmVhZEFjY2Vzc1RvUmVzb3VyY2VVUkwgPSBmYWxz
ZTsKICAgICBtYXliZUluaXRpYWxpemVTYW5kYm94RXh0ZW5zaW9uSGFuZGxlKG1fcHJvY2Vzcywg
ZmlsZVVSTCwgcmVzb3VyY2VEaXJlY3RvcnlVUkwsIGxvYWRQYXJhbWV0ZXJzLnNhbmRib3hFeHRl
bnNpb25IYW5kbGUsIGNoZWNrQXNzdW1lZFJlYWRBY2Nlc3NUb1Jlc291cmNlVVJMKTsKLSAgICBh
ZGRQbGF0Zm9ybUxvYWRQYXJhbWV0ZXJzKGxvYWRQYXJhbWV0ZXJzKTsKKyAgICBhZGRQbGF0Zm9y
bUxvYWRQYXJhbWV0ZXJzKG1fcHJvY2VzcywgbG9hZFBhcmFtZXRlcnMpOwogCiAjaWYgSEFWRShT
QU5EQk9YX0lTU1VFX1JFQURfRVhURU5TSU9OX1RPX1BST0NFU1NfQllfQVVESVRfVE9LRU4pCiAg
ICAgaWYgKG1fcHJvY2Vzcy0+aXNMYXVuY2hpbmcoKSkKQEAgLTE0NDUsNyArMTQ0NSw3IEBAIHZv
aWQgV2ViUGFnZVByb3h5Ojpsb2FkRGF0YVdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9j
ZXNzUHJveHk+JiYgcHJvY2VzcywKICAgICBsb2FkUGFyYW1ldGVycy53ZWJzaXRlUG9saWNpZXMg
PSBXVEZNb3ZlKHdlYnNpdGVQb2xpY2llcyk7CiAgICAgbG9hZFBhcmFtZXRlcnMuc2hvdWxkT3Bl
bkV4dGVybmFsVVJMc1BvbGljeSA9IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k7CiAgICAg
bG9hZFBhcmFtZXRlcnMuaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbiA9IGlzTmF2aWdhdGlu
Z1RvQXBwQm91bmREb21haW47Ci0gICAgYWRkUGxhdGZvcm1Mb2FkUGFyYW1ldGVycyhsb2FkUGFy
YW1ldGVycyk7CisgICAgYWRkUGxhdGZvcm1Mb2FkUGFyYW1ldGVycyhwcm9jZXNzLCBsb2FkUGFy
YW1ldGVycyk7CiAKICAgICBwcm9jZXNzLT5hc3N1bWVSZWFkQWNjZXNzVG9CYXNlVVJMKCp0aGlz
LCBiYXNlVVJMKTsKICAgICBwcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpMb2FkRGF0
YShsb2FkUGFyYW1ldGVycyksIHdlYlBhZ2VJRCk7CkBAIC0xNDg3LDcgKzE0ODcsNyBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6bG9hZEFsdGVybmF0ZUhUTUwoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNl
JiBodG1sRGF0YSwgY29uc3QgUwogICAgIGxvYWRQYXJhbWV0ZXJzLnVucmVhY2hhYmxlVVJMU3Ry
aW5nID0gdW5yZWFjaGFibGVVUkwuc3RyaW5nKCk7CiAgICAgbG9hZFBhcmFtZXRlcnMucHJvdmlz
aW9uYWxMb2FkRXJyb3JVUkxTdHJpbmcgPSBtX2ZhaWxpbmdQcm92aXNpb25hbExvYWRVUkw7CiAg
ICAgbG9hZFBhcmFtZXRlcnMudXNlckRhdGEgPSBVc2VyRGF0YShwcm9jZXNzKCkudHJhbnNmb3Jt
T2JqZWN0c1RvSGFuZGxlcyh1c2VyRGF0YSkuZ2V0KCkpOwotICAgIGFkZFBsYXRmb3JtTG9hZFBh
cmFtZXRlcnMobG9hZFBhcmFtZXRlcnMpOworICAgIGFkZFBsYXRmb3JtTG9hZFBhcmFtZXRlcnMo
cHJvY2VzcygpLCBsb2FkUGFyYW1ldGVycyk7CiAKICAgICBtX3Byb2Nlc3MtPmFzc3VtZVJlYWRB
Y2Nlc3NUb0Jhc2VVUkwoKnRoaXMsIGJhc2VVUkwuc3RyaW5nKCkpOwogICAgIG1fcHJvY2Vzcy0+
YXNzdW1lUmVhZEFjY2Vzc1RvQmFzZVVSTCgqdGhpcywgdW5yZWFjaGFibGVVUkwuc3RyaW5nKCkp
OwpAQCAtMTUxNiw3ICsxNTE2LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmxvYWRXZWJBcmNoaXZl
RGF0YShBUEk6OkRhdGEqIHdlYkFyY2hpdmVEYXRhLCBBUEk6Ok9iamVjdCogdXMKICAgICBsb2Fk
UGFyYW1ldGVycy5NSU1FVHlwZSA9ICJhcHBsaWNhdGlvbi94LXdlYmFyY2hpdmUiX3M7CiAgICAg
bG9hZFBhcmFtZXRlcnMuZW5jb2RpbmdOYW1lID0gInV0Zi0xNiJfczsKICAgICBsb2FkUGFyYW1l
dGVycy51c2VyRGF0YSA9IFVzZXJEYXRhKHByb2Nlc3MoKS50cmFuc2Zvcm1PYmplY3RzVG9IYW5k
bGVzKHVzZXJEYXRhKS5nZXQoKSk7Ci0gICAgYWRkUGxhdGZvcm1Mb2FkUGFyYW1ldGVycyhsb2Fk
UGFyYW1ldGVycyk7CisgICAgYWRkUGxhdGZvcm1Mb2FkUGFyYW1ldGVycyhwcm9jZXNzKCksIGxv
YWRQYXJhbWV0ZXJzKTsKIAogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkxvYWREYXRhKGxv
YWRQYXJhbWV0ZXJzKSk7CiAgICAgbV9wcm9jZXNzLT5zdGFydFJlc3BvbnNpdmVuZXNzVGltZXIo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggMmVkZjQ0ZjU5ZDQ5
OGE4MjAxYThhYzc4OTg0OTNiNTIxM2UyNWRhMS4uNDkxMjQwNGZjNmNkMGUzM2JjMDE2NjcxODJk
NTFjM2I1YjAwM2I4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAg
LTYwMyw3ICs2MDMsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGNsb3NlUGFnZSgpOwogCi0gICAg
dm9pZCBhZGRQbGF0Zm9ybUxvYWRQYXJhbWV0ZXJzKExvYWRQYXJhbWV0ZXJzJik7CisgICAgdm9p
ZCBhZGRQbGF0Zm9ybUxvYWRQYXJhbWV0ZXJzKFdlYlByb2Nlc3NQcm94eSYsIExvYWRQYXJhbWV0
ZXJzJik7CiAgICAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gbG9hZFJlcXVlc3QoV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kg
PSBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGRBbGxvd0V4dGVy
bmFsU2NoZW1lcywgQVBJOjpPYmplY3QqIHVzZXJEYXRhID0gbnVsbHB0cik7CiAgICAgUmVmUHRy
PEFQSTo6TmF2aWdhdGlvbj4gbG9hZEZpbGUoY29uc3QgU3RyaW5nJiBmaWxlVVJMLCBjb25zdCBT
dHJpbmcmIHJlc291cmNlRGlyZWN0b3J5VVJMLCBBUEk6Ok9iamVjdCogdXNlckRhdGEgPSBudWxs
cHRyKTsKICAgICBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBsb2FkRGF0YShjb25zdCBJUEM6OkRh
dGFSZWZlcmVuY2UmLCBjb25zdCBTdHJpbmcmIE1JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGVuY29k
aW5nLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSA9IG51bGxw
dHIsIFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgPSBXZWJDb3JlOjpTaG91
bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IDA0ZmNmZDFjZDE2ZjU3ZmQ2N2Q1NTIw
NTlhZWVkOWM2YTM5MzkxODMuLjI2MGVlNzRhYjFlMzkzNmY4YmM5NWMzMzM5MzcwOGViODIxMzJm
NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC0zODgs
NiArMzg4LDE1IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaGFzU2xlZXBEaXNhYmxlcigpIGNvbnN0
OwogCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgYm9vbCBoYXNOZXR3b3JrRXh0ZW5zaW9uU2Fu
ZGJveEFjY2VzcygpIGNvbnN0IHsgcmV0dXJuIG1faGFzTmV0d29ya0V4dGVuc2lvblNhbmRib3hB
Y2Nlc3M7IH0KKyAgICB2b2lkIG1hcmtIYXNOZXR3b3JrRXh0ZW5zaW9uU2FuZGJveEFjY2Vzcygp
IHsgbV9oYXNOZXR3b3JrRXh0ZW5zaW9uU2FuZGJveEFjY2VzcyA9IHRydWU7IH0KKyNlbmRpZgor
I2lmIFBMQVRGT1JNKElPUykKKyAgICBib29sIGhhc01hbmFnZWRTZXNzaW9uU2FuZGJveEFjY2Vz
cygpIGNvbnN0IHsgcmV0dXJuIG1faGFzTWFuYWdlZFNlc3Npb25TYW5kYm94QWNjZXNzOyB9Cisg
ICAgdm9pZCBtYXJrSGFzTWFuYWdlZFNlc3Npb25TYW5kYm94QWNjZXNzKCkgeyBtX2hhc01hbmFn
ZWRTZXNzaW9uU2FuZGJveEFjY2VzcyA9IHRydWU7IH0KKyNlbmRpZgorCiBwcm90ZWN0ZWQ6CiAg
ICAgV2ViUHJvY2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29sJiwgV2Vic2l0ZURhdGFTdG9yZSosIElz
UHJld2FybWVkKTsKIApAQCAtNTc3LDYgKzU4NiwxMiBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9p
c1ByZXdhcm1lZDsKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKSAmJiBQTEFURk9STShJ
T1NfRkFNSUxZKQogICAgIGJvb2wgbV9oYXNJc3N1ZWRBdHRhY2htZW50RWxlbWVudFJlbGF0ZWRT
YW5kYm94RXh0ZW5zaW9ucyB7IGZhbHNlIH07CisjZW5kaWYKKyNpZiBQTEFURk9STShDT0NPQSkK
KyAgICBib29sIG1faGFzTmV0d29ya0V4dGVuc2lvblNhbmRib3hBY2Nlc3MgeyBmYWxzZSB9Owor
I2VuZGlmCisjaWYgUExBVEZPUk0oSU9TKQorICAgIGJvb2wgbV9oYXNNYW5hZ2VkU2Vzc2lvblNh
bmRib3hBY2Nlc3MgeyBmYWxzZSB9OwogI2VuZGlmCiAgICAgT3B0aW9uYWw8VXNlTGF6eVN0b3A+
IG1fc2hvdWxkU3RhcnRSZXNwb25zaXZlbmVzc1RpbWVyV2hlbkxhdW5jaGVkOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29jb2Eu
bW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29jb2Eu
bW0KaW5kZXggYTg4MmNkNzU4MzY2MGRmNGRmY2QwM2NmMTYyNjBhZWRmNzZhYzA1OS4uMmM3NDQ1
NTQ5MzRlYWU0MDE4MTNjNTQzM2M1MTQyMjg4ODQzMDVlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUGFnZUNvY29hLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VDb2NvYS5tbQpAQCAtNDUs
MTkgKzQ1LDM5IEBACiAjaW1wb3J0IDxXZWJDb3JlL0hUTUxPTGlzdEVsZW1lbnQuaD4KICNpbXBv
cnQgPFdlYkNvcmUvSFRNTFVMaXN0RWxlbWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9IaXRUZXN0
UmVzdWx0Lmg+CisjaW1wb3J0IDxXZWJDb3JlL05ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVy
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL05vZGVSZW5kZXJTdHlsZS5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9QYXltZW50Q29vcmRpbmF0b3IuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1NZWRpYVNl
c3Npb25NYW5hZ2VyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1JhbmdlLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL1JlbmRlckVsZW1lbnQuaD4KIAorI2lmIFBMQVRGT1JNKElPUykKKyNpbXBvcnQgPFdlYkNv
cmUvUGFyZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXIuaD4KKyNlbmRpZgorCiAjaWYgUExBVEZP
Uk0oQ09DT0EpCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi12b2lkIFdlYlBhZ2U6OnBsYXRmb3Jt
RGlkUmVjZWl2ZUxvYWRQYXJhbWV0ZXJzKGNvbnN0IExvYWRQYXJhbWV0ZXJzJiBsb2FkUGFyYW1l
dGVycykKK3ZvaWQgV2ViUGFnZTo6cGxhdGZvcm1EaWRSZWNlaXZlTG9hZFBhcmFtZXRlcnMoY29u
c3QgTG9hZFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7Ci0gICAgbV9kYXRhRGV0ZWN0aW9uQ29u
dGV4dCA9IGxvYWRQYXJhbWV0ZXJzLmRhdGFEZXRlY3Rpb25Db250ZXh0OworICAgIG1fZGF0YURl
dGVjdGlvbkNvbnRleHQgPSBwYXJhbWV0ZXJzLmRhdGFEZXRlY3Rpb25Db250ZXh0OworCisgICAg
aWYgKHBhcmFtZXRlcnMubmVIZWxwZXJFeHRlbnNpb25IYW5kbGUpCisgICAgICAgIFNhbmRib3hF
eHRlbnNpb246OmNvbnN1bWVQZXJtYW5lbnRseSgqcGFyYW1ldGVycy5uZUhlbHBlckV4dGVuc2lv
bkhhbmRsZSk7CisgICAgaWYgKHBhcmFtZXRlcnMubmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhh
bmRsZSkKKyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5KCpwYXJh
bWV0ZXJzLm5lU2Vzc2lvbk1hbmFnZXJFeHRlbnNpb25IYW5kbGUpOworICAgIE5ldHdvcmtFeHRl
bnNpb25Db250ZW50RmlsdGVyOjpzZXRIYXNDb25zdW1lZFNhbmRib3hFeHRlbnNpb25zKHBhcmFt
ZXRlcnMubmVIZWxwZXJFeHRlbnNpb25IYW5kbGUuaGFzVmFsdWUoKSAmJiBwYXJhbWV0ZXJzLm5l
U2Vzc2lvbk1hbmFnZXJFeHRlbnNpb25IYW5kbGUuaGFzVmFsdWUoKSk7CisKKyNpZiBQTEFURk9S
TShJT1MpCisgICAgaWYgKHBhcmFtZXRlcnMuY29udGVudEZpbHRlckV4dGVuc2lvbkhhbmRsZSkK
KyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5KCpwYXJhbWV0ZXJz
LmNvbnRlbnRGaWx0ZXJFeHRlbnNpb25IYW5kbGUpOworICAgIFBhcmVudGFsQ29udHJvbHNDb250
ZW50RmlsdGVyOjpzZXRIYXNDb25zdW1lZFNhbmRib3hFeHRlbnNpb24ocGFyYW1ldGVycy5jb250
ZW50RmlsdGVyRXh0ZW5zaW9uSGFuZGxlLmhhc1ZhbHVlKCkpOworCisgICAgaWYgKHBhcmFtZXRl
cnMuZnJvbnRib2FyZFNlcnZpY2VFeHRlbnNpb25IYW5kbGUpCisgICAgICAgIFNhbmRib3hFeHRl
bnNpb246OmNvbnN1bWVQZXJtYW5lbnRseSgqcGFyYW1ldGVycy5mcm9udGJvYXJkU2VydmljZUV4
dGVuc2lvbkhhbmRsZSk7CisjZW5kaWYKIH0KIAogdm9pZCBXZWJQYWdlOjpyZXF1ZXN0QWN0aXZl
Tm93UGxheWluZ1Nlc3Npb25JbmZvKENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCmluZGV4IDYxMDU1
ZjA4YjQ2OGU1YWVkODcxY2ZiNzg1NTRkZmMwMDQwMzk1MmMuLjY3ZjBjNDRiMTUwY2U0NTA0ZTgx
MjExYzVlM2ZlMGRjMzgxOTlhM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQpAQCAtNjMsNyArNjMsNiBAQAogI2ltcG9ydCA8V2Vi
Q29yZS9Mb2dJbml0aWFsaXphdGlvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9NZW1vcnlSZWxlYXNl
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL05TU2Nyb2xsZXJJbXBEZXRhaWxzLmg+Ci0jaW1wb3J0IDxX
ZWJDb3JlL05ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1BlcmZvcm1hbmNlTG9nZ2luZy5oPgogI2ltcG9ydCA8V2ViQ29yZS9QaWN0dXJlSW5QaWN0dXJl
U3VwcG9ydC5oPgogI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaD4K
QEAgLTk0LDEwICs5Myw2IEBACiAjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9SZW1vdGVJbnNwZWN0
b3IuaD4KICNlbmRpZgogCi0jaWYgUExBVEZPUk0oSU9TKQotI2ltcG9ydCA8V2ViQ29yZS9QYXJl
bnRhbENvbnRyb2xzQ29udGVudEZpbHRlci5oPgotI2VuZGlmCi0KICNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQogI2ltcG9ydCAiVUlLaXRTUEkuaCIKICNpbXBvcnQgPGJtYWxsb2MvTWVtb3J5U3Rh
dHVzU1BJLmg+CkBAIC0yNzQsMTMgKzI2OSw2IEBAIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1J
bml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhCiAj
aWYgUExBVEZPUk0oSU9TKQogICAgIGlmIChwYXJhbWV0ZXJzLmNvbXBpbGVyU2VydmljZUV4dGVu
c2lvbkhhbmRsZSkKICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5
KCpwYXJhbWV0ZXJzLmNvbXBpbGVyU2VydmljZUV4dGVuc2lvbkhhbmRsZSk7Ci0KLSAgICBpZiAo
cGFyYW1ldGVycy5jb250ZW50RmlsdGVyRXh0ZW5zaW9uSGFuZGxlKQotICAgICAgICBTYW5kYm94
RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkoKnBhcmFtZXRlcnMuY29udGVudEZpbHRlckV4
dGVuc2lvbkhhbmRsZSk7Ci0gICAgUGFyZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXI6OnNldEhh
c0NvbnN1bWVkU2FuZGJveEV4dGVuc2lvbihwYXJhbWV0ZXJzLmNvbnRlbnRGaWx0ZXJFeHRlbnNp
b25IYW5kbGUuaGFzVmFsdWUoKSk7Ci0KLSAgICBpZiAocGFyYW1ldGVycy5mcm9udGJvYXJkU2Vy
dmljZUV4dGVuc2lvbkhhbmRsZSkKLSAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBl
cm1hbmVudGx5KCpwYXJhbWV0ZXJzLmZyb250Ym9hcmRTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlKTsK
ICNlbmRpZgogCiAgICAgaWYgKHBhcmFtZXRlcnMuY29udGFpbmVyTWFuYWdlckV4dGVuc2lvbkhh
bmRsZSkKQEAgLTI5MiwxMiArMjgwLDYgQEAgdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRp
YWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmEKICAgICBT
YW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkocGFyYW1ldGVycy5keW5hbWljSU9L
aXRFeHRlbnNpb25IYW5kbGVzKTsKICNlbmRpZgogICAgIAotICAgIGlmIChwYXJhbWV0ZXJzLm5l
SGVscGVyRXh0ZW5zaW9uSGFuZGxlKQotICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1l
UGVybWFuZW50bHkoKnBhcmFtZXRlcnMubmVIZWxwZXJFeHRlbnNpb25IYW5kbGUpOwotICAgIGlm
IChwYXJhbWV0ZXJzLm5lU2Vzc2lvbk1hbmFnZXJFeHRlbnNpb25IYW5kbGUpCi0gICAgICAgIFNh
bmRib3hFeHRlbnNpb246OmNvbnN1bWVQZXJtYW5lbnRseSgqcGFyYW1ldGVycy5uZVNlc3Npb25N
YW5hZ2VyRXh0ZW5zaW9uSGFuZGxlKTsKLSAgICBOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRl
cjo6c2V0SGFzQ29uc3VtZWRTYW5kYm94RXh0ZW5zaW9ucyhwYXJhbWV0ZXJzLm5lSGVscGVyRXh0
ZW5zaW9uSGFuZGxlLmhhc1ZhbHVlKCkgJiYgcGFyYW1ldGVycy5uZVNlc3Npb25NYW5hZ2VyRXh0
ZW5zaW9uSGFuZGxlLmhhc1ZhbHVlKCkpOwotCiAgICAgc2V0U3lzdGVtSGFzQmF0dGVyeShwYXJh
bWV0ZXJzLnN5c3RlbUhhc0JhdHRlcnkpOwogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402368</attachid>
            <date>2020-06-19 19:03:49 -0700</date>
            <delta_ts>2020-06-19 19:46:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213414-20200619190348.patch</filename>
            <type>text/plain</type>
            <size>28623</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMzA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTA5Y2IxZjJjYTNkODgy
ZWY1OGZiNWQ5ZDE0NTAwMzljMjdmNWQ2OS4uYjUzM2QzZDI1ZTdkYjZmOTU4NzBmODU4ZGM4MzI2
MDI1YjZjZDZkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIwLTA2LTE5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBEZWxheSBpc3N1
aW5nIE1hbmFnZWRTZXNzaW9uICYgTmV0d29yayBFeHRlbnNpb24gc2FuZGJveCBleHRlbnNpb25z
IHVudGlsIGEgbG9hZCBpcyBhY3R1YWxseSBpc3N1ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzQxNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NjQ1NDg2ODQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUGVyIEFybmUgVm9sbGFuLgorCisgICAg
ICAgIHNldEhhc0NvbnN1bWVkU2FuZGJveEV4dGVuc2lvbnMoKSBjYW4gbm93IGdldCBjYWxsZWQg
c2V2ZXJhbCB0aW1lcywgZXZlcnkgdGltZSBhIFdlYlBhZ2UgaXMgY3JlYXRlZC4KKyAgICAgICAg
T25jZSBhIHNhbmRib3ggZXh0ZW5zaW9uIGhhcyBiZWVuIGNvbnN1bWVkLCB0aGVyZSBpcyBubyBn
b2luZyBiYWNrIHNvIHJldHVybiBlYXJseSBpZiB0aGUgc3RhdGUgaXMKKyAgICAgICAgYWxyZWFk
eSAiQ29uc3VtZWQiLgorCisgICAgICAgICogcGxhdGZvcm0vY29jb2EvTmV0d29ya0V4dGVuc2lv
bkNvbnRlbnRGaWx0ZXIubW06CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrRXh0ZW5zaW9uQ29u
dGVudEZpbHRlcjo6c2V0SGFzQ29uc3VtZWRTYW5kYm94RXh0ZW5zaW9ucyk6CisgICAgICAgICog
cGxhdGZvcm0vY29jb2EvUGFyZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXIubW06CisgICAgICAg
IChXZWJDb3JlOjpQYXJlbnRhbENvbnRyb2xzQ29udGVudEZpbHRlcjo6c2V0SGFzQ29uc3VtZWRT
YW5kYm94RXh0ZW5zaW9uKToKKwogMjAyMC0wNi0xOSAgQ2xhcmsgV2FuZyAgPGNsYXJrX3dhbmdA
YXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBzZXRWZWxvY2l0eSgpIGZyb20gUGFubmVyTm9k
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCBiNGY5MTY1MDIzOGNiM2M3YjdlNzc0MTc3Nzk4NjNlYjczYzFiZTMwLi5i
MTRmYWU0YzNmNjgwYjQ1NWRlNWZkZDZkMzI4YWYzN2ViODdkNTM5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDQ2IEBACisyMDIwLTA2LTE5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisK
KyAgICAgICAgW0NvY29hXSBEZWxheSBpc3N1aW5nIE1hbmFnZWRTZXNzaW9uICYgTmV0d29yayBF
eHRlbnNpb24gc2FuZGJveCBleHRlbnNpb25zIHVudGlsIGEgbG9hZCBpcyBhY3R1YWxseSBpc3N1
ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzQx
NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjQ1NDg2ODQ+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgUGVyIEFybmUgVm9sbGFuLgorCisgICAgICAgIERlbGF5IGlzc3VpbmcgTWFuYWdlZFNlc3Np
b24gJiBOZXR3b3JrIEV4dGVuc2lvbiBzYW5kYm94IGV4dGVuc2lvbnMgdW50aWwgYSBsb2FkIGlz
IGFjdHVhbGx5IGlzc3VlZC4KKyAgICAgICAgVGhpcyBpcyBhIFNhZmFyaSBsYXVuY2ggdGltZSBv
cHRpbWl6YXRpb24gc2luY2UgdGhlIGNoZWNrcyBuZWVkZWQgdG8gZGVjaWRlIHdoZXRoZXIgb3Ig
bm90IHRvIGlzc3VlCisgICAgICAgIHRoZSBleHRlbnNpb25zIGFyZSBleHBlbnNpdmUgYW5kIHRo
ZXJlIGlzIG5vIHJlYXNvbiB0byBpc3N1ZSB0aGVtIGFzIHNvb24gYXMgdGhlIHByb2Nlc3MgbGF1
bmNoZXMKKyAgICAgICAgKGVzcGVjaWFsbHkgaW4gdGhlIGNhc2Ugb2YgYSBwcmV3YXJtZWQgcHJv
Y2VzcykuCisKKyAgICAgICAgKiBTaGFyZWQvQ29jb2EvTG9hZFBhcmFtZXRlcnNDb2NvYS5tbToK
KyAgICAgICAgKFdlYktpdDo6TG9hZFBhcmFtZXRlcnM6OnBsYXRmb3JtRW5jb2RlIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6TG9hZFBhcmFtZXRlcnM6OnBsYXRmb3JtRGVjb2RlKToKKyAgICAg
ICAgKiBTaGFyZWQvTG9hZFBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYlByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUGFn
ZVByb3h5Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6YWRkUGxhdGZv
cm1Mb2FkUGFyYW1ldGVycyk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQ
b29sQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUlu
aXRpYWxpemVXZWJQcm9jZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjphZGRQbGF0Zm9ybUxvYWRQYXJhbWV0
ZXJzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpsb2FkUmVxdWVzdFdpdGhOYXZp
Z2F0aW9uU2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpsb2FkRmlsZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bG9hZERhdGFXaXRoTmF2aWdhdGlvblNo
YXJlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bG9hZEFsdGVybmF0ZUhUTUwp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxvYWRXZWJBcmNoaXZlRGF0YSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpoYXNO
ZXR3b3JrRXh0ZW5zaW9uU2FuZGJveEFjY2VzcyBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3NQcm94eTo6bWFya0hhc05ldHdvcmtFeHRlbnNpb25TYW5kYm94QWNjZXNzKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpoYXNNYW5hZ2VkU2Vzc2lvblNhbmRib3hB
Y2Nlc3MgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6Om1hcmtIYXNN
YW5hZ2VkU2Vzc2lvblNhbmRib3hBY2Nlc3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9Db2NvYS9XZWJQYWdlQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnBsYXRm
b3JtRGlkUmVjZWl2ZUxvYWRQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29h
L1dlYlByb2Nlc3NDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZv
cm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisKIDIwMjAtMDYtMTkgIFJ5YW4gSGFkZGFkICA8cnlh
bmhhZGRhZEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNjMy
ODcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9OZXR3b3JrRXh0
ZW5zaW9uQ29udGVudEZpbHRlci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL05l
dHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLm1tCmluZGV4IGViZjM5YzM2ZmRlODNkYTZiOWJi
ZTgxYzRkMTI2NThjYzA5MTg1MzAuLjJiMjM5Mzg2ZGY2ZjIzYjBmMmFiY2M2MWU5YzcyMTVjNWFh
OWQyNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL05ldHdvcmtF
eHRlbnNpb25Db250ZW50RmlsdGVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nv
Y29hL05ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLm1tCkBAIC0yMjgsNiArMjI4LDkgQEAg
dm9pZCBOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlcjo6aGFuZGxlRGVjaXNpb24oTkVGaWx0
ZXJTb3VyY2VTdGF0dXMgc3RhdHVzLAogCiB2b2lkIE5ldHdvcmtFeHRlbnNpb25Db250ZW50Rmls
dGVyOjpzZXRIYXNDb25zdW1lZFNhbmRib3hFeHRlbnNpb25zKGJvb2wgaGFzQ29uc3VtZWRTYW5k
Ym94RXh0ZW5zaW9ucykKIHsKKyAgICBpZiAobV9zYW5kYm94RXh0ZW5zaW9uc1N0YXRlID09IFNh
bmRib3hFeHRlbnNpb25zU3RhdGU6OkNvbnN1bWVkKQorICAgICAgICByZXR1cm47CisKICAgICBt
X3NhbmRib3hFeHRlbnNpb25zU3RhdGUgPSAoaGFzQ29uc3VtZWRTYW5kYm94RXh0ZW5zaW9ucyA/
IFNhbmRib3hFeHRlbnNpb25zU3RhdGU6OkNvbnN1bWVkIDogU2FuZGJveEV4dGVuc2lvbnNTdGF0
ZTo6Tm90Q29uc3VtZWQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jb2NvYS9QYXJlbnRhbENvbnRyb2xzQ29udGVudEZpbHRlci5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2NvY29hL1BhcmVudGFsQ29udHJvbHNDb250ZW50RmlsdGVyLm1tCmluZGV4IGFl
OGZiMzkyOTYyMzY0ZDczNDk4NTEzZjgxZGUwOGI3ZjRmZWUwNWMuLjQ5ZjhmYTRiY2UwZDBmODgw
YmE0Mzc1MTNhMzI2NmY1NmY1YTAwNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2NvY29hL1BhcmVudGFsQ29udHJvbHNDb250ZW50RmlsdGVyLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2NvY29hL1BhcmVudGFsQ29udHJvbHNDb250ZW50RmlsdGVyLm1tCkBA
IC0xNTAsNiArMTUwLDkgQEAgdm9pZCBQYXJlbnRhbENvbnRyb2xzQ29udGVudEZpbHRlcjo6dXBk
YXRlRmlsdGVyU3RhdGUoKQogI2lmIFBMQVRGT1JNKElPUykKIHZvaWQgUGFyZW50YWxDb250cm9s
c0NvbnRlbnRGaWx0ZXI6OnNldEhhc0NvbnN1bWVkU2FuZGJveEV4dGVuc2lvbihib29sIGhhc0Nv
bnN1bWVkU2FuZGJveEV4dGVuc2lvbikKIHsKKyAgICBpZiAobV9zYW5kYm94RXh0ZW5zaW9uU3Rh
dGUgPT0gU2FuZGJveEV4dGVuc2lvblN0YXRlOjpDb25zdW1lZCkKKyAgICAgICAgcmV0dXJuOwor
CiAgICAgbV9zYW5kYm94RXh0ZW5zaW9uU3RhdGUgPSAoaGFzQ29uc3VtZWRTYW5kYm94RXh0ZW5z
aW9uID8gU2FuZGJveEV4dGVuc2lvblN0YXRlOjpDb25zdW1lZCA6IFNhbmRib3hFeHRlbnNpb25T
dGF0ZTo6Tm90Q29uc3VtZWQpOwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9Db2NvYS9Mb2FkUGFyYW1ldGVyc0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvQ29jb2EvTG9hZFBhcmFtZXRlcnNDb2NvYS5tbQppbmRleCA5NDIxNDNhNTdlOTMxMTI2YWEz
ZjRlNjM4MGEwYTA1ZTU3MjAwOWNkLi5lOThmN2RiMmE2N2JlZDdlMzQzMGZiMzk4YzEwYWRhZDMz
Y2I0NjFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9Mb2FkUGFyYW1l
dGVyc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0xvYWRQYXJhbWV0
ZXJzQ29jb2EubW0KQEAgLTM2LDEyICszNiw0NSBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIHZvaWQg
TG9hZFBhcmFtZXRlcnM6OnBsYXRmb3JtRW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29u
c3QKIHsKICAgICBJUEM6OmVuY29kZShlbmNvZGVyLCBkYXRhRGV0ZWN0aW9uQ29udGV4dC5nZXQo
KSk7CisKKyAgICBlbmNvZGVyIDw8IG5lSGVscGVyRXh0ZW5zaW9uSGFuZGxlOworICAgIGVuY29k
ZXIgPDwgbmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZTsKKyNpZiBQTEFURk9STShJT1Mp
CisgICAgZW5jb2RlciA8PCBjb250ZW50RmlsdGVyRXh0ZW5zaW9uSGFuZGxlOworICAgIGVuY29k
ZXIgPDwgZnJvbnRib2FyZFNlcnZpY2VFeHRlbnNpb25IYW5kbGU7CisjZW5kaWYKIH0KIAotYm9v
bCBMb2FkUGFyYW1ldGVyczo6cGxhdGZvcm1EZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBM
b2FkUGFyYW1ldGVycyYgZGF0YSkKK2Jvb2wgTG9hZFBhcmFtZXRlcnM6OnBsYXRmb3JtRGVjb2Rl
KElQQzo6RGVjb2RlciYgZGVjb2RlciwgTG9hZFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7Ci0g
ICAgaWYgKCFJUEM6OmRlY29kZShkZWNvZGVyLCBkYXRhLmRhdGFEZXRlY3Rpb25Db250ZXh0KSkK
KyAgICBpZiAoIUlQQzo6ZGVjb2RlKGRlY29kZXIsIHBhcmFtZXRlcnMuZGF0YURldGVjdGlvbkNv
bnRleHQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBPcHRpb25hbDxPcHRpb25hbDxT
YW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+PiBuZUhlbHBlckV4dGVuc2lvbkhhbmRsZTsKKyAgICBk
ZWNvZGVyID4+IG5lSGVscGVyRXh0ZW5zaW9uSGFuZGxlOworICAgIGlmICghbmVIZWxwZXJFeHRl
bnNpb25IYW5kbGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBwYXJhbWV0ZXJzLm5lSGVs
cGVyRXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZSgqbmVIZWxwZXJFeHRlbnNpb25IYW5kbGUpOwor
CisgICAgT3B0aW9uYWw8T3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPj4gbmVTZXNz
aW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZTsKKyAgICBkZWNvZGVyID4+IG5lU2Vzc2lvbk1hbmFn
ZXJFeHRlbnNpb25IYW5kbGU7CisgICAgaWYgKCFuZVNlc3Npb25NYW5hZ2VyRXh0ZW5zaW9uSGFu
ZGxlKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcGFyYW1ldGVycy5uZVNlc3Npb25NYW5h
Z2VyRXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZSgqbmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhh
bmRsZSk7CisKKyNpZiBQTEFURk9STShJT1MpCisgICAgT3B0aW9uYWw8T3B0aW9uYWw8U2FuZGJv
eEV4dGVuc2lvbjo6SGFuZGxlPj4gY29udGVudEZpbHRlckV4dGVuc2lvbkhhbmRsZTsKKyAgICBk
ZWNvZGVyID4+IGNvbnRlbnRGaWx0ZXJFeHRlbnNpb25IYW5kbGU7CisgICAgaWYgKCFjb250ZW50
RmlsdGVyRXh0ZW5zaW9uSGFuZGxlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcGFyYW1l
dGVycy5jb250ZW50RmlsdGVyRXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZSgqY29udGVudEZpbHRl
ckV4dGVuc2lvbkhhbmRsZSk7CisKKyAgICBPcHRpb25hbDxPcHRpb25hbDxTYW5kYm94RXh0ZW5z
aW9uOjpIYW5kbGU+PiBmcm9udGJvYXJkU2VydmljZUV4dGVuc2lvbkhhbmRsZTsKKyAgICBkZWNv
ZGVyID4+IGZyb250Ym9hcmRTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlOworICAgIGlmICghZnJvbnRi
b2FyZFNlcnZpY2VFeHRlbnNpb25IYW5kbGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBw
YXJhbWV0ZXJzLmZyb250Ym9hcmRTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZSgqZnJv
bnRib2FyZFNlcnZpY2VFeHRlbnNpb25IYW5kbGUpOworI2VuZGlmCiAKICAgICByZXR1cm4gdHJ1
ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0xvYWRQYXJhbWV0ZXJzLmgg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Mb2FkUGFyYW1ldGVycy5oCmluZGV4IDQ3MTBkMzI3YzA4
NmU0MjE5YWIwMDNjZDM1ZmEzYWE1Zjk3MTEwYjQuLmU4ODE0NWIwYWVhNTViMGYxMWQ0OTUwMjQ0
ZjZlMWUwZDk0Mjk0YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0xvYWRQYXJh
bWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvTG9hZFBhcmFtZXRlcnMuaApAQCAt
NzQsNiArNzQsMTIgQEAgc3RydWN0IExvYWRQYXJhbWV0ZXJzIHsKIAogI2lmIFBMQVRGT1JNKENP
Q09BKQogICAgIFJldGFpblB0cjxOU0RpY3Rpb25hcnk+IGRhdGFEZXRlY3Rpb25Db250ZXh0Owor
ICAgIE9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gbmVIZWxwZXJFeHRlbnNpb25I
YW5kbGU7CisgICAgT3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBuZVNlc3Npb25N
YW5hZ2VyRXh0ZW5zaW9uSGFuZGxlOworI2VuZGlmCisjaWYgUExBVEZPUk0oSU9TKQorICAgIE9w
dGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gY29udGVudEZpbHRlckV4dGVuc2lvbkhh
bmRsZTsKKyAgICBPcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+IGZyb250Ym9hcmRT
ZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlOwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IDgxY2M5
ZjhkNzU1ZWM4MTE2ZmIxZDY2OTBmN2E4ZGI3NjQ2YWRlZGMuLjQ1OGM4MGUxM2Y1ODg4YWNkZTc5
OTc5YzU5ZDc5NTU2OTU0NzU5YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC0xNTcsOCArMTU3LDYgQEAgdm9p
ZCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAogICAgIAogI2lmIFBMQVRGT1JNKElPUykKICAgICBlbmNvZGVyIDw8IGNvbXBp
bGVyU2VydmljZUV4dGVuc2lvbkhhbmRsZTsKLSAgICBlbmNvZGVyIDw8IGNvbnRlbnRGaWx0ZXJF
eHRlbnNpb25IYW5kbGU7Ci0gICAgZW5jb2RlciA8PCBmcm9udGJvYXJkU2VydmljZUV4dGVuc2lv
bkhhbmRsZTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTE2OCw4ICsx
NjYsNiBAQCB2b2lkIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVu
Y29kZXImIGVuY29kZXIpIGNvbnN0CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKENPQ09BKQotICAg
IGVuY29kZXIgPDwgbmVIZWxwZXJFeHRlbnNpb25IYW5kbGU7Ci0gICAgZW5jb2RlciA8PCBuZVNl
c3Npb25NYW5hZ2VyRXh0ZW5zaW9uSGFuZGxlOwogICAgIGVuY29kZXIgPDwgbWFwREJFeHRlbnNp
b25IYW5kbGU7CiAgICAgZW5jb2RlciA8PCBzeXN0ZW1IYXNCYXR0ZXJ5OwogI2VuZGlmCkBAIC00
MjEsMTggKzQxNyw2IEBAIGJvb2wgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2Rl
KElQQzo6RGVjb2RlciYgZGVjb2RlciwgV2ViUHJvY2Vzc0NyZWF0CiAgICAgaWYgKCFjb21waWxl
clNlcnZpY2VFeHRlbnNpb25IYW5kbGUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBwYXJh
bWV0ZXJzLmNvbXBpbGVyU2VydmljZUV4dGVuc2lvbkhhbmRsZSA9IFdURk1vdmUoKmNvbXBpbGVy
U2VydmljZUV4dGVuc2lvbkhhbmRsZSk7Ci0KLSAgICBPcHRpb25hbDxPcHRpb25hbDxTYW5kYm94
RXh0ZW5zaW9uOjpIYW5kbGU+PiBjb250ZW50RmlsdGVyRXh0ZW5zaW9uSGFuZGxlOwotICAgIGRl
Y29kZXIgPj4gY29udGVudEZpbHRlckV4dGVuc2lvbkhhbmRsZTsKLSAgICBpZiAoIWNvbnRlbnRG
aWx0ZXJFeHRlbnNpb25IYW5kbGUpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBwYXJhbWV0
ZXJzLmNvbnRlbnRGaWx0ZXJFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3ZlKCpjb250ZW50RmlsdGVy
RXh0ZW5zaW9uSGFuZGxlKTsKLQotICAgIE9wdGlvbmFsPE9wdGlvbmFsPFNhbmRib3hFeHRlbnNp
b246OkhhbmRsZT4+IGZyb250Ym9hcmRTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlOwotICAgIGRlY29k
ZXIgPj4gZnJvbnRib2FyZFNlcnZpY2VFeHRlbnNpb25IYW5kbGU7Ci0gICAgaWYgKCFmcm9udGJv
YXJkU2VydmljZUV4dGVuc2lvbkhhbmRsZSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHBh
cmFtZXRlcnMuZnJvbnRib2FyZFNlcnZpY2VFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3ZlKCpmcm9u
dGJvYXJkU2VydmljZUV4dGVuc2lvbkhhbmRsZSk7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCkBAIC00NTYsMTggKzQ0MCw2IEBAIGJvb2wgV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgV2ViUHJvY2Vzc0NyZWF0CiAj
ZW5kaWYKIAogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIE9wdGlvbmFsPE9wdGlvbmFsPFNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZT4+IG5lSGVscGVyRXh0ZW5zaW9uSGFuZGxlOwotICAgIGRlY29k
ZXIgPj4gbmVIZWxwZXJFeHRlbnNpb25IYW5kbGU7Ci0gICAgaWYgKCFuZUhlbHBlckV4dGVuc2lv
bkhhbmRsZSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHBhcmFtZXRlcnMubmVIZWxwZXJF
eHRlbnNpb25IYW5kbGUgPSBXVEZNb3ZlKCpuZUhlbHBlckV4dGVuc2lvbkhhbmRsZSk7Ci0KLSAg
ICBPcHRpb25hbDxPcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+PiBuZVNlc3Npb25N
YW5hZ2VyRXh0ZW5zaW9uSGFuZGxlOwotICAgIGRlY29kZXIgPj4gbmVTZXNzaW9uTWFuYWdlckV4
dGVuc2lvbkhhbmRsZTsKLSAgICBpZiAoIW5lU2Vzc2lvbk1hbmFnZXJFeHRlbnNpb25IYW5kbGUp
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBwYXJhbWV0ZXJzLm5lU2Vzc2lvbk1hbmFnZXJF
eHRlbnNpb25IYW5kbGUgPSBXVEZNb3ZlKCpuZVNlc3Npb25NYW5hZ2VyRXh0ZW5zaW9uSGFuZGxl
KTsKLQogICAgIE9wdGlvbmFsPE9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4+IG1h
cERCRXh0ZW5zaW9uSGFuZGxlOwogICAgIGRlY29kZXIgPj4gbWFwREJFeHRlbnNpb25IYW5kbGU7
CiAgICAgaWYgKCFtYXBEQkV4dGVuc2lvbkhhbmRsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCA2YTNlYmEyZjNkYjg4
YmJhZDBjOGY1MjljMTNhNTYwN2QxMTYxY2ZlLi44YjUzMDQzYzk0N2JkZGNmYTRlNmEyMmE3MGI5
YzE3ZGQ0OGMzY2FjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC0yMDEsOCArMjAxLDYgQEAgc3RydWN0IFdlYlByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIAogI2lmIFBMQVRGT1JNKElPUykKICAgICBPcHRp
b25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+IGNvbXBpbGVyU2VydmljZUV4dGVuc2lvbkhh
bmRsZTsKLSAgICBPcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+IGNvbnRlbnRGaWx0
ZXJFeHRlbnNpb25IYW5kbGU7Ci0gICAgT3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxl
PiBmcm9udGJvYXJkU2VydmljZUV4dGVuc2lvbkhhbmRsZTsKICNlbmRpZgogCiAjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKQEAgLTIxMiw4ICsyMTAsNiBAQCBzdHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycyB7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIE9wdGlv
bmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gbmVIZWxwZXJFeHRlbnNpb25IYW5kbGU7Ci0g
ICAgT3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBuZVNlc3Npb25NYW5hZ2VyRXh0
ZW5zaW9uSGFuZGxlOwogICAgIE9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gbWFw
REJFeHRlbnNpb25IYW5kbGU7CiAgICAgYm9vbCBzeXN0ZW1IYXNCYXR0ZXJ5IHsgZmFsc2UgfTsK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFn
ZVByb3h5Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJv
eHlDb2NvYS5tbQppbmRleCAzNmYwMWNiZjcxZGFlY2RkNzUzMTRjNmQxNjBkYTc4ZmZkYmE5ZDE0
Li43MmU0ODMzM2I4ZTgwMTBjODUzY2IzNjA1YzhhOGJkZmY4ZDc1Y2NhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQpAQCAtNDcs
MTMgKzQ3LDI1IEBACiAjaW1wb3J0IDxXZWJDb3JlL1NlYXJjaFBvcHVwTWVudUNvY29hLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1RleHRBbHRlcm5hdGl2ZVdpdGhSYW5nZS5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9WYWxpZGF0aW9uQnViYmxlLmg+CisjaW1wb3J0IDxwYWwvc3BpL2NvY29hL05FRmlsdGVy
U291cmNlU1BJLmg+CiAjaW1wb3J0IDx3dGYvQmxvY2tQdHIuaD4KKyNpbXBvcnQgPHd0Zi9Tb2Z0
TGlua2luZy5oPgogI2ltcG9ydCA8d3RmL2NmL1R5cGVDYXN0c0NGLmg+CiAKICNpZiBFTkFCTEUo
TUVESUFfVVNBR0UpCiAjaW1wb3J0ICJNZWRpYVVzYWdlTWFuYWdlckNvY29hLmgiCiAjZW5kaWYK
IAorI2lmIFBMQVRGT1JNKElPUykKKyNpbXBvcnQgPHBhbC9zcGkvY29jb2EvV2ViRmlsdGVyRXZh
bHVhdG9yU1BJLmg+CisKK1NPRlRfTElOS19QUklWQVRFX0ZSQU1FV09SSyhXZWJDb250ZW50QW5h
bHlzaXMpOworU09GVF9MSU5LX0NMQVNTKFdlYkNvbnRlbnRBbmFseXNpcywgV2ViRmlsdGVyRXZh
bHVhdG9yKTsKKyNlbmRpZgorCitTT0ZUX0xJTktfRlJBTUVXT1JLX09QVElPTkFMKE5ldHdvcmtF
eHRlbnNpb24pOworU09GVF9MSU5LX0NMQVNTX09QVElPTkFMKE5ldHdvcmtFeHRlbnNpb24sIE5F
RmlsdGVyU291cmNlKTsKKwogI2RlZmluZSBNRVNTQUdFX0NIRUNLKGFzc2VydGlvbikgTUVTU0FH
RV9DSEVDS19CQVNFKGFzc2VydGlvbiwgcHJvY2VzcygpLmNvbm5lY3Rpb24oKSkKICNkZWZpbmUg
TUVTU0FHRV9DSEVDS19DT01QTEVUSU9OKGFzc2VydGlvbiwgY29tcGxldGlvbikgTUVTU0FHRV9D
SEVDS19DT01QTEVUSU9OX0JBU0UoYXNzZXJ0aW9uLCBwcm9jZXNzKCkuY29ubmVjdGlvbigpLCBj
b21wbGV0aW9uKQogCkBAIC0xMjksOSArMTQxLDM4IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpjb250
ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4m
CiB9CiAjZW5kaWYKIAotdm9pZCBXZWJQYWdlUHJveHk6OmFkZFBsYXRmb3JtTG9hZFBhcmFtZXRl
cnMoTG9hZFBhcmFtZXRlcnMmIGxvYWRQYXJhbWV0ZXJzKQordm9pZCBXZWJQYWdlUHJveHk6OmFk
ZFBsYXRmb3JtTG9hZFBhcmFtZXRlcnMoV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzLCBMb2FkUGFy
YW1ldGVycyYgbG9hZFBhcmFtZXRlcnMpCiB7CiAgICAgbG9hZFBhcmFtZXRlcnMuZGF0YURldGVj
dGlvbkNvbnRleHQgPSBtX3VpQ2xpZW50LT5kYXRhRGV0ZWN0aW9uQ29udGV4dCgpOworCisgICAg
aWYgKCFwcm9jZXNzLmhhc05ldHdvcmtFeHRlbnNpb25TYW5kYm94QWNjZXNzKCkgJiYgW2dldE5F
RmlsdGVyU291cmNlQ2xhc3MoKSBmaWx0ZXJSZXF1aXJlZF0pIHsKKyAgICAgICAgU2FuZGJveEV4
dGVuc2lvbjo6SGFuZGxlIGhlbHBlckhhbmRsZTsKKyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6
Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLm5laGVscGVyIl9zLCBXVEY6Om51
bGxvcHQsIGhlbHBlckhhbmRsZSk7CisgICAgICAgIGxvYWRQYXJhbWV0ZXJzLm5lSGVscGVyRXh0
ZW5zaW9uSGFuZGxlID0gV1RGTW92ZShoZWxwZXJIYW5kbGUpOworICAgICAgICBTYW5kYm94RXh0
ZW5zaW9uOjpIYW5kbGUgbWFuYWdlckhhbmRsZTsKKyNpZiBQTEFURk9STShNQUMpICYmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPCAxMDE1MDAKKyAgICAgICAgU2FuZGJveEV4dGVu
c2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLm5lc2Vzc2lvbm1hbmFn
ZXIiX3MsIFdURjo6bnVsbG9wdCwgbWFuYWdlckhhbmRsZSk7CisjZWxzZQorICAgICAgICBTYW5k
Ym94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwKCJjb20uYXBwbGUubmVzZXNz
aW9ubWFuYWdlci5jb250ZW50LWZpbHRlciJfcywgV1RGOjpudWxsb3B0LCBtYW5hZ2VySGFuZGxl
KTsKKyNlbmRpZgorICAgICAgICBsb2FkUGFyYW1ldGVycy5uZVNlc3Npb25NYW5hZ2VyRXh0ZW5z
aW9uSGFuZGxlID0gV1RGTW92ZShtYW5hZ2VySGFuZGxlKTsKKworICAgICAgICBwcm9jZXNzLm1h
cmtIYXNOZXR3b3JrRXh0ZW5zaW9uU2FuZGJveEFjY2VzcygpOworICAgIH0KKworI2lmIFBMQVRG
T1JNKElPUykKKyAgICBpZiAoIXByb2Nlc3MuaGFzTWFuYWdlZFNlc3Npb25TYW5kYm94QWNjZXNz
KCkgJiYgW2dldFdlYkZpbHRlckV2YWx1YXRvckNsYXNzKCkgaXNNYW5hZ2VkU2Vzc2lvbl0pIHsK
KyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGhhbmRsZTsKKyAgICAgICAgU2FuZGJv
eEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLnVpa2l0LnZp
ZXdzZXJ2aWNlLmNvbS5hcHBsZS5XZWJDb250ZW50RmlsdGVyLnJlbW90ZVVJIl9zLCBXVEY6Om51
bGxvcHQsIGhhbmRsZSk7CisgICAgICAgIGxvYWRQYXJhbWV0ZXJzLmNvbnRlbnRGaWx0ZXJFeHRl
bnNpb25IYW5kbGUgPSBXVEZNb3ZlKGhhbmRsZSk7CisKKyAgICAgICAgU2FuZGJveEV4dGVuc2lv
bjo6SGFuZGxlIGZyb250Ym9hcmRTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlOworICAgICAgICBpZiAo
U2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLmZy
b250Ym9hcmQuc3lzdGVtYXBwc2VydmljZXMiX3MsIFdURjo6bnVsbG9wdCwgZnJvbnRib2FyZFNl
cnZpY2VFeHRlbnNpb25IYW5kbGUpKQorICAgICAgICAgICAgbG9hZFBhcmFtZXRlcnMuZnJvbnRi
b2FyZFNlcnZpY2VFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3ZlKGZyb250Ym9hcmRTZXJ2aWNlRXh0
ZW5zaW9uSGFuZGxlKTsKKworICAgICAgICBwcm9jZXNzLm1hcmtIYXNNYW5hZ2VkU2Vzc2lvblNh
bmRib3hBY2Nlc3MoKTsKKyAgICB9CisjZW5kaWYKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OmNy
ZWF0ZVNhbmRib3hFeHRlbnNpb25zSWZOZWVkZWQoY29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVz
LCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmIGZpbGVSZWFkSGFuZGxlLCBTYW5kYm94RXh0ZW5z
aW9uOjpIYW5kbGVBcnJheSYgZmlsZVVwbG9hZEhhbmRsZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQppbmRleCBiZmUyZDI0
ZmU4MGQzNzhiZjAxZDI4ODQ5ZTNiODc0ZmRhNGY2NzQxLi4wN2ZjMTE4MmQ3YWM1YTA1NTFmNTZk
Yzk5MDMyMDQwOGIxMzdkMWRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KQEAgLTc5LDI3ICs3OSwxNCBAQAogI2ltcG9y
dCA8UXVhcnR6Q29yZS9DQVJlbW90ZUxheWVyU2VydmVyLmg+CiAjZWxzZQogI2ltcG9ydCAiVUlL
aXRTUEkuaCIKLSNpbXBvcnQgPHBhbC9pb3MvTWFuYWdlZENvbmZpZ3VyYXRpb25Tb2Z0TGluay5o
PgotI2ltcG9ydCA8cGFsL3NwaS9pb3MvTWFuYWdlZENvbmZpZ3VyYXRpb25TUEkuaD4KICNlbmRp
ZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICNpbXBvcnQgPHBhbC9zcGkvaW9zL01vYmls
ZUdlc3RhbHRTUEkuaD4KICNlbmRpZgogCi0jaWYgUExBVEZPUk0oSU9TKQotI2ltcG9ydCA8cGFs
L3NwaS9jb2NvYS9XZWJGaWx0ZXJFdmFsdWF0b3JTUEkuaD4KLQotU09GVF9MSU5LX1BSSVZBVEVf
RlJBTUVXT1JLKFdlYkNvbnRlbnRBbmFseXNpcyk7Ci1TT0ZUX0xJTktfQ0xBU1MoV2ViQ29udGVu
dEFuYWx5c2lzLCBXZWJGaWx0ZXJFdmFsdWF0b3IpOwotI2VuZGlmCi0KICNpZiBQTEFURk9STShD
T0NPQSkKICNpbXBvcnQgPFdlYkNvcmUvU3lzdGVtQmF0dGVyeS5oPgotI2ltcG9ydCA8cGFsL3Nw
aS9jb2NvYS9ORUZpbHRlclNvdXJjZVNQSS5oPgotCi1TT0ZUX0xJTktfRlJBTUVXT1JLX09QVElP
TkFMKE5ldHdvcmtFeHRlbnNpb24pOwotU09GVF9MSU5LX0NMQVNTX09QVElPTkFMKE5ldHdvcmtF
eHRlbnNpb24sIE5FRmlsdGVyU291cmNlKTsKICNlbmRpZgogCiBOU1N0cmluZyAqV2ViU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeURlZmF1bHRzS2V5ID0gQCJXZWJTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5IjsKQEAgLTQwOCwzNiArMzk1LDEyIEBAIHZvaWQgV2Vi
UHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vz
c1Byb3h5JiBwcm9jZXNzCiAjZW5kaWYKICAgICAKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBp
ZiAoW2dldE5FRmlsdGVyU291cmNlQ2xhc3MoKSBmaWx0ZXJSZXF1aXJlZF0pIHsKLSAgICAgICAg
U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGhlbHBlckhhbmRsZTsKLSAgICAgICAgU2FuZGJveEV4
dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLm5laGVscGVyIl9z
LCBXVEY6Om51bGxvcHQsIGhlbHBlckhhbmRsZSk7Ci0gICAgICAgIHBhcmFtZXRlcnMubmVIZWxw
ZXJFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3ZlKGhlbHBlckhhbmRsZSk7Ci0gICAgICAgIFNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZSBtYW5hZ2VySGFuZGxlOwotI2lmIFBMQVRGT1JNKE1BQykgJiYg
X19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8IDEwMTUwMAotICAgICAgICBTYW5kYm94
RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwKCJjb20uYXBwbGUubmVzZXNzaW9u
bWFuYWdlciJfcywgV1RGOjpudWxsb3B0LCBtYW5hZ2VySGFuZGxlKTsKLSNlbHNlCi0gICAgICAg
IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS5u
ZXNlc3Npb25tYW5hZ2VyLmNvbnRlbnQtZmlsdGVyIl9zLCBXVEY6Om51bGxvcHQsIG1hbmFnZXJI
YW5kbGUpOwotI2VuZGlmCi0gICAgICAgIHBhcmFtZXRlcnMubmVTZXNzaW9uTWFuYWdlckV4dGVu
c2lvbkhhbmRsZSA9IFdURk1vdmUobWFuYWdlckhhbmRsZSk7Ci0gICAgfQogICAgIHBhcmFtZXRl
cnMuc3lzdGVtSGFzQmF0dGVyeSA9IHN5c3RlbUhhc0JhdHRlcnkoKTsKIAogICAgIFNhbmRib3hF
eHRlbnNpb246OkhhbmRsZSBtYXBEQkhhbmRsZTsKICAgICBpZiAoU2FuZGJveEV4dGVuc2lvbjo6
Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLmxzZC5tYXBkYiJfcywgV1RGOjpu
dWxsb3B0LCBtYXBEQkhhbmRsZSwgU2FuZGJveEV4dGVuc2lvbjo6RmxhZ3M6Ok5vUmVwb3J0KSkK
ICAgICAgICAgcGFyYW1ldGVycy5tYXBEQkV4dGVuc2lvbkhhbmRsZSA9IFdURk1vdmUobWFwREJI
YW5kbGUpOwogI2VuZGlmCi0gICAgCi0jaWYgUExBVEZPUk0oSU9TKQotICAgIGlmIChbZ2V0V2Vi
RmlsdGVyRXZhbHVhdG9yQ2xhc3MoKSBpc01hbmFnZWRTZXNzaW9uXSkgewotICAgICAgICBTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGUgaGFuZGxlOwotICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpj
cmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwKCJjb20uYXBwbGUudWlraXQudmlld3NlcnZpY2UuY29t
LmFwcGxlLldlYkNvbnRlbnRGaWx0ZXIucmVtb3RlVUkiX3MsIFdURjo6bnVsbG9wdCwgaGFuZGxl
KTsKLSAgICAgICAgcGFyYW1ldGVycy5jb250ZW50RmlsdGVyRXh0ZW5zaW9uSGFuZGxlID0gV1RG
TW92ZShoYW5kbGUpOwotCi0gICAgICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBmcm9udGJv
YXJkU2VydmljZUV4dGVuc2lvbkhhbmRsZTsKLSAgICAgICAgaWYgKFNhbmRib3hFeHRlbnNpb246
OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS5mcm9udGJvYXJkLnN5c3RlbWFw
cHNlcnZpY2VzIl9zLCBXVEY6Om51bGxvcHQsIGZyb250Ym9hcmRTZXJ2aWNlRXh0ZW5zaW9uSGFu
ZGxlKSkKLSAgICAgICAgICAgIHBhcmFtZXRlcnMuZnJvbnRib2FyZFNlcnZpY2VFeHRlbnNpb25I
YW5kbGUgPSBXVEZNb3ZlKGZyb250Ym9hcmRTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlKTsKLSAgICB9
Ci0jZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgcGFyYW1ldGVycy5jdXJy
ZW50VXNlckludGVyZmFjZUlkaW9tSXNQYWQgPSBjdXJyZW50VXNlckludGVyZmFjZUlkaW9tSXNQ
YWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGViMThh
NTBjYWZkM2YzMGJjZDA5NDg2NDY4MmYwOWYxNzA5Y2ZkZDguLmZjN2Q2MDAzZjAyZGM4OWIyYmVh
OTFmNzgxN2YwNWNmZjI3NDExMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcApAQCAtMTI2Niw3ICsxMjY2LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6Om1heWJlSW5p
dGlhbGl6ZVNhbmRib3hFeHRlbnNpb25IYW5kbGUoV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXMKIH0K
IAogI2lmICFQTEFURk9STShDT0NPQSkKLXZvaWQgV2ViUGFnZVByb3h5OjphZGRQbGF0Zm9ybUxv
YWRQYXJhbWV0ZXJzKExvYWRQYXJhbWV0ZXJzJikKK3ZvaWQgV2ViUGFnZVByb3h5OjphZGRQbGF0
Zm9ybUxvYWRQYXJhbWV0ZXJzKFdlYlByb2Nlc3NQcm94eSYsIExvYWRQYXJhbWV0ZXJzJikKIHsK
IH0KICNlbmRpZgpAQCAtMTMyMyw3ICsxMzIzLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmxvYWRS
ZXF1ZXN0V2l0aE5hdmlnYXRpb25TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXMK
ICAgICBsb2FkUGFyYW1ldGVycy5pc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluID0gaXNOYXZp
Z2F0aW5nVG9BcHBCb3VuZERvbWFpbjsKICAgICBtYXliZUluaXRpYWxpemVTYW5kYm94RXh0ZW5z
aW9uSGFuZGxlKHByb2Nlc3MsIHVybCwgbV9wYWdlTG9hZFN0YXRlLnJlc291cmNlRGlyZWN0b3J5
VVJMKCksIGxvYWRQYXJhbWV0ZXJzLnNhbmRib3hFeHRlbnNpb25IYW5kbGUpOwogCi0gICAgYWRk
UGxhdGZvcm1Mb2FkUGFyYW1ldGVycyhsb2FkUGFyYW1ldGVycyk7CisgICAgYWRkUGxhdGZvcm1M
b2FkUGFyYW1ldGVycyhwcm9jZXNzLCBsb2FkUGFyYW1ldGVycyk7CiAKICAgICBwcmVjb25uZWN0
VG8odXJsKTsKIApAQCAtMTM4NSw3ICsxMzg1LDcgQEAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4g
V2ViUGFnZVByb3h5Ojpsb2FkRmlsZShjb25zdCBTdHJpbmcmIGZpbGVVUkxTdHJpbmcsIGNvbnMK
ICAgICBsb2FkUGFyYW1ldGVycy51c2VyRGF0YSA9IFVzZXJEYXRhKHByb2Nlc3MoKS50cmFuc2Zv
cm1PYmplY3RzVG9IYW5kbGVzKHVzZXJEYXRhKS5nZXQoKSk7CiAgICAgY29uc3QgYm9vbCBjaGVj
a0Fzc3VtZWRSZWFkQWNjZXNzVG9SZXNvdXJjZVVSTCA9IGZhbHNlOwogICAgIG1heWJlSW5pdGlh
bGl6ZVNhbmRib3hFeHRlbnNpb25IYW5kbGUobV9wcm9jZXNzLCBmaWxlVVJMLCByZXNvdXJjZURp
cmVjdG9yeVVSTCwgbG9hZFBhcmFtZXRlcnMuc2FuZGJveEV4dGVuc2lvbkhhbmRsZSwgY2hlY2tB
c3N1bWVkUmVhZEFjY2Vzc1RvUmVzb3VyY2VVUkwpOwotICAgIGFkZFBsYXRmb3JtTG9hZFBhcmFt
ZXRlcnMobG9hZFBhcmFtZXRlcnMpOworICAgIGFkZFBsYXRmb3JtTG9hZFBhcmFtZXRlcnMobV9w
cm9jZXNzLCBsb2FkUGFyYW1ldGVycyk7CiAKICNpZiBIQVZFKFNBTkRCT1hfSVNTVUVfUkVBRF9F
WFRFTlNJT05fVE9fUFJPQ0VTU19CWV9BVURJVF9UT0tFTikKICAgICBpZiAobV9wcm9jZXNzLT5p
c0xhdW5jaGluZygpKQpAQCAtMTQ0NSw3ICsxNDQ1LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6Omxv
YWREYXRhV2l0aE5hdmlnYXRpb25TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNz
LAogICAgIGxvYWRQYXJhbWV0ZXJzLndlYnNpdGVQb2xpY2llcyA9IFdURk1vdmUod2Vic2l0ZVBv
bGljaWVzKTsKICAgICBsb2FkUGFyYW1ldGVycy5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5
ID0gc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTsKICAgICBsb2FkUGFyYW1ldGVycy5pc05h
dmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluID0gaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbjsK
LSAgICBhZGRQbGF0Zm9ybUxvYWRQYXJhbWV0ZXJzKGxvYWRQYXJhbWV0ZXJzKTsKKyAgICBhZGRQ
bGF0Zm9ybUxvYWRQYXJhbWV0ZXJzKHByb2Nlc3MsIGxvYWRQYXJhbWV0ZXJzKTsKIAogICAgIHBy
b2Nlc3MtPmFzc3VtZVJlYWRBY2Nlc3NUb0Jhc2VVUkwoKnRoaXMsIGJhc2VVUkwpOwogICAgIHBy
b2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkxvYWREYXRhKGxvYWRQYXJhbWV0ZXJzKSwg
d2ViUGFnZUlEKTsKQEAgLTE0ODcsNyArMTQ4Nyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpsb2Fk
QWx0ZXJuYXRlSFRNTChjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGh0bWxEYXRhLCBjb25zdCBT
CiAgICAgbG9hZFBhcmFtZXRlcnMudW5yZWFjaGFibGVVUkxTdHJpbmcgPSB1bnJlYWNoYWJsZVVS
TC5zdHJpbmcoKTsKICAgICBsb2FkUGFyYW1ldGVycy5wcm92aXNpb25hbExvYWRFcnJvclVSTFN0
cmluZyA9IG1fZmFpbGluZ1Byb3Zpc2lvbmFsTG9hZFVSTDsKICAgICBsb2FkUGFyYW1ldGVycy51
c2VyRGF0YSA9IFVzZXJEYXRhKHByb2Nlc3MoKS50cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVzKHVz
ZXJEYXRhKS5nZXQoKSk7Ci0gICAgYWRkUGxhdGZvcm1Mb2FkUGFyYW1ldGVycyhsb2FkUGFyYW1l
dGVycyk7CisgICAgYWRkUGxhdGZvcm1Mb2FkUGFyYW1ldGVycyhwcm9jZXNzKCksIGxvYWRQYXJh
bWV0ZXJzKTsKIAogICAgIG1fcHJvY2Vzcy0+YXNzdW1lUmVhZEFjY2Vzc1RvQmFzZVVSTCgqdGhp
cywgYmFzZVVSTC5zdHJpbmcoKSk7CiAgICAgbV9wcm9jZXNzLT5hc3N1bWVSZWFkQWNjZXNzVG9C
YXNlVVJMKCp0aGlzLCB1bnJlYWNoYWJsZVVSTC5zdHJpbmcoKSk7CkBAIC0xNTE2LDcgKzE1MTYs
NyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bG9hZFdlYkFyY2hpdmVEYXRhKEFQSTo6RGF0YSogd2Vi
QXJjaGl2ZURhdGEsIEFQSTo6T2JqZWN0KiB1cwogICAgIGxvYWRQYXJhbWV0ZXJzLk1JTUVUeXBl
ID0gImFwcGxpY2F0aW9uL3gtd2ViYXJjaGl2ZSJfczsKICAgICBsb2FkUGFyYW1ldGVycy5lbmNv
ZGluZ05hbWUgPSAidXRmLTE2Il9zOwogICAgIGxvYWRQYXJhbWV0ZXJzLnVzZXJEYXRhID0gVXNl
ckRhdGEocHJvY2VzcygpLnRyYW5zZm9ybU9iamVjdHNUb0hhbmRsZXModXNlckRhdGEpLmdldCgp
KTsKLSAgICBhZGRQbGF0Zm9ybUxvYWRQYXJhbWV0ZXJzKGxvYWRQYXJhbWV0ZXJzKTsKKyAgICBh
ZGRQbGF0Zm9ybUxvYWRQYXJhbWV0ZXJzKHByb2Nlc3MoKSwgbG9hZFBhcmFtZXRlcnMpOwogCiAg
ICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6TG9hZERhdGEobG9hZFBhcmFtZXRlcnMpKTsKICAg
ICBtX3Byb2Nlc3MtPnN0YXJ0UmVzcG9uc2l2ZW5lc3NUaW1lcigpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCAyZWRmNDRmNTlkNDk4YTgyMDFhOGFjNzg5ODQ5M2I1
MjEzZTI1ZGExLi40OTEyNDA0ZmM2Y2QwZTMzYmMwMTY2NzE4MmQ1MWMzYjViMDAzYjg3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNjAzLDcgKzYwMyw3IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgY2xvc2VQYWdlKCk7CiAKLSAgICB2b2lkIGFkZFBsYXRmb3JtTG9h
ZFBhcmFtZXRlcnMoTG9hZFBhcmFtZXRlcnMmKTsKKyAgICB2b2lkIGFkZFBsYXRmb3JtTG9hZFBh
cmFtZXRlcnMoV2ViUHJvY2Vzc1Byb3h5JiwgTG9hZFBhcmFtZXRlcnMmKTsKICAgICBSZWZQdHI8
QVBJOjpOYXZpZ2F0aW9uPiBsb2FkUmVxdWVzdChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwg
V2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSA9IFdlYkNvcmU6OlNob3VsZE9w
ZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZEFsbG93RXh0ZXJuYWxTY2hlbWVzLCBBUEk6Ok9i
amVjdCogdXNlckRhdGEgPSBudWxscHRyKTsKICAgICBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBs
b2FkRmlsZShjb25zdCBTdHJpbmcmIGZpbGVVUkwsIGNvbnN0IFN0cmluZyYgcmVzb3VyY2VEaXJl
Y3RvcnlVUkwsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSA9IG51bGxwdHIpOwogICAgIFJlZlB0cjxB
UEk6Ok5hdmlnYXRpb24+IGxvYWREYXRhKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYsIGNvbnN0
IFN0cmluZyYgTUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZW5jb2RpbmcsIGNvbnN0IFN0cmluZyYg
YmFzZVVSTCwgQVBJOjpPYmplY3QqIHVzZXJEYXRhID0gbnVsbHB0ciwgV2ViQ29yZTo6U2hvdWxk
T3BlbkV4dGVybmFsVVJMc1BvbGljeSA9IFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3k6OlNob3VsZE5vdEFsbG93KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmgKaW5kZXggMDRmY2ZkMWNkMTZmNTdmZDY3ZDU1MjA1OWFlZWQ5YzZhMzkzOTE4My4u
MDRiNjcwZWU1OTdhOGJhOTBkMWYwMWE0MmI3Y2Q0ZDNmMmRkNTY2YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTM4OCw2ICszODgsMTUgQEAgcHVibGlj
OgogCiAgICAgYm9vbCBoYXNTbGVlcERpc2FibGVyKCkgY29uc3Q7CiAKKyNpZiBQTEFURk9STShD
T0NPQ0EpCisgICAgYm9vbCBoYXNOZXR3b3JrRXh0ZW5zaW9uU2FuZGJveEFjY2VzcygpIGNvbnN0
IHsgcmV0dXJuIG1faGFzTmV0d29ya0V4dGVuc2lvblNhbmRib3hBY2Nlc3M7IH0KKyAgICB2b2lk
IG1hcmtIYXNOZXR3b3JrRXh0ZW5zaW9uU2FuZGJveEFjY2VzcygpIHsgbV9oYXNOZXR3b3JrRXh0
ZW5zaW9uU2FuZGJveEFjY2VzcyA9IHRydWU7IH0KKyNlbmRpZgorI2lmIFBMQVRGT1JNKElPUykK
KyAgICBib29sIGhhc01hbmFnZWRTZXNzaW9uU2FuZGJveEFjY2VzcygpIGNvbnN0IHsgcmV0dXJu
IG1faGFzTWFuYWdlZFNlc3Npb25TYW5kYm94QWNjZXNzOyB9CisgICAgdm9pZCBtYXJrSGFzTWFu
YWdlZFNlc3Npb25TYW5kYm94QWNjZXNzKCkgeyBtX2hhc01hbmFnZWRTZXNzaW9uU2FuZGJveEFj
Y2VzcyA9IHRydWU7IH0KKyNlbmRpZgorCiBwcm90ZWN0ZWQ6CiAgICAgV2ViUHJvY2Vzc1Byb3h5
KFdlYlByb2Nlc3NQb29sJiwgV2Vic2l0ZURhdGFTdG9yZSosIElzUHJld2FybWVkKTsKIApAQCAt
NTc3LDYgKzU4NiwxMiBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pc1ByZXdhcm1lZDsKICNpZiBF
TkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIGJv
b2wgbV9oYXNJc3N1ZWRBdHRhY2htZW50RWxlbWVudFJlbGF0ZWRTYW5kYm94RXh0ZW5zaW9ucyB7
IGZhbHNlIH07CisjZW5kaWYKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBib29sIG1faGFzTmV0
d29ya0V4dGVuc2lvblNhbmRib3hBY2Nlc3MgeyBmYWxzZSB9OworI2VuZGlmCisjaWYgUExBVEZP
Uk0oSU9TKQorICAgIGJvb2wgbV9oYXNNYW5hZ2VkU2Vzc2lvblNhbmRib3hBY2Nlc3MgeyBmYWxz
ZSB9OwogI2VuZGlmCiAgICAgT3B0aW9uYWw8VXNlTGF6eVN0b3A+IG1fc2hvdWxkU3RhcnRSZXNw
b25zaXZlbmVzc1RpbWVyV2hlbkxhdW5jaGVkOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29jb2EubW0KaW5kZXggYTg4MmNkNzU4
MzY2MGRmNGRmY2QwM2NmMTYyNjBhZWRmNzZhYzA1OS4uMmM3NDQ1NTQ5MzRlYWU0MDE4MTNjNTQz
M2M1MTQyMjg4ODQzMDVlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvQ29jb2EvV2ViUGFnZUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VDb2NvYS5tbQpAQCAtNDUsMTkgKzQ1LDM5IEBACiAjaW1w
b3J0IDxXZWJDb3JlL0hUTUxPTGlzdEVsZW1lbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvSFRNTFVM
aXN0RWxlbWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9IaXRUZXN0UmVzdWx0Lmg+CisjaW1wb3J0
IDxXZWJDb3JlL05ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL05vZGVSZW5kZXJTdHlsZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYXltZW50Q29vcmRpbmF0
b3IuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1JhbmdlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1JlbmRlckVsZW1lbnQu
aD4KIAorI2lmIFBMQVRGT1JNKElPUykKKyNpbXBvcnQgPFdlYkNvcmUvUGFyZW50YWxDb250cm9s
c0NvbnRlbnRGaWx0ZXIuaD4KKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCi12b2lkIFdlYlBhZ2U6OnBsYXRmb3JtRGlkUmVjZWl2ZUxvYWRQYXJh
bWV0ZXJzKGNvbnN0IExvYWRQYXJhbWV0ZXJzJiBsb2FkUGFyYW1ldGVycykKK3ZvaWQgV2ViUGFn
ZTo6cGxhdGZvcm1EaWRSZWNlaXZlTG9hZFBhcmFtZXRlcnMoY29uc3QgTG9hZFBhcmFtZXRlcnMm
IHBhcmFtZXRlcnMpCiB7Ci0gICAgbV9kYXRhRGV0ZWN0aW9uQ29udGV4dCA9IGxvYWRQYXJhbWV0
ZXJzLmRhdGFEZXRlY3Rpb25Db250ZXh0OworICAgIG1fZGF0YURldGVjdGlvbkNvbnRleHQgPSBw
YXJhbWV0ZXJzLmRhdGFEZXRlY3Rpb25Db250ZXh0OworCisgICAgaWYgKHBhcmFtZXRlcnMubmVI
ZWxwZXJFeHRlbnNpb25IYW5kbGUpCisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNvbnN1bWVQ
ZXJtYW5lbnRseSgqcGFyYW1ldGVycy5uZUhlbHBlckV4dGVuc2lvbkhhbmRsZSk7CisgICAgaWYg
KHBhcmFtZXRlcnMubmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZSkKKyAgICAgICAgU2Fu
ZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5KCpwYXJhbWV0ZXJzLm5lU2Vzc2lvbk1h
bmFnZXJFeHRlbnNpb25IYW5kbGUpOworICAgIE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVy
OjpzZXRIYXNDb25zdW1lZFNhbmRib3hFeHRlbnNpb25zKHBhcmFtZXRlcnMubmVIZWxwZXJFeHRl
bnNpb25IYW5kbGUuaGFzVmFsdWUoKSAmJiBwYXJhbWV0ZXJzLm5lU2Vzc2lvbk1hbmFnZXJFeHRl
bnNpb25IYW5kbGUuaGFzVmFsdWUoKSk7CisKKyNpZiBQTEFURk9STShJT1MpCisgICAgaWYgKHBh
cmFtZXRlcnMuY29udGVudEZpbHRlckV4dGVuc2lvbkhhbmRsZSkKKyAgICAgICAgU2FuZGJveEV4
dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5KCpwYXJhbWV0ZXJzLmNvbnRlbnRGaWx0ZXJFeHRl
bnNpb25IYW5kbGUpOworICAgIFBhcmVudGFsQ29udHJvbHNDb250ZW50RmlsdGVyOjpzZXRIYXND
b25zdW1lZFNhbmRib3hFeHRlbnNpb24ocGFyYW1ldGVycy5jb250ZW50RmlsdGVyRXh0ZW5zaW9u
SGFuZGxlLmhhc1ZhbHVlKCkpOworCisgICAgaWYgKHBhcmFtZXRlcnMuZnJvbnRib2FyZFNlcnZp
Y2VFeHRlbnNpb25IYW5kbGUpCisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNvbnN1bWVQZXJt
YW5lbnRseSgqcGFyYW1ldGVycy5mcm9udGJvYXJkU2VydmljZUV4dGVuc2lvbkhhbmRsZSk7Cisj
ZW5kaWYKIH0KIAogdm9pZCBXZWJQYWdlOjpyZXF1ZXN0QWN0aXZlTm93UGxheWluZ1Nlc3Npb25J
bmZvKENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCmluZGV4IDJlMWRlNmM3YjI0OTFmZmI2NzQyZWQz
ZTdhMjgxMWU3NTZkMDhlYjYuLmNlZWNjZWUwZjY2ZjNiMWViNzViYzIwOTMyN2U2MGUyMmZmZWFj
MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNz
Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3ND
b2NvYS5tbQpAQCAtNjMsNyArNjMsNiBAQAogI2ltcG9ydCA8V2ViQ29yZS9Mb2dJbml0aWFsaXph
dGlvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9NZW1vcnlSZWxlYXNlLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL05TU2Nyb2xsZXJJbXBEZXRhaWxzLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL05ldHdvcmtFeHRl
bnNpb25Db250ZW50RmlsdGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BlcmZvcm1hbmNlTG9nZ2lu
Zy5oPgogI2ltcG9ydCA8V2ViQ29yZS9QaWN0dXJlSW5QaWN0dXJlU3VwcG9ydC5oPgogI2ltcG9y
dCA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaD4KQEAgLTk0LDEwICs5Myw2IEBA
CiAjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9SZW1vdGVJbnNwZWN0b3IuaD4KICNlbmRpZgogCi0j
aWYgUExBVEZPUk0oSU9TKQotI2ltcG9ydCA8V2ViQ29yZS9QYXJlbnRhbENvbnRyb2xzQ29udGVu
dEZpbHRlci5oPgotI2VuZGlmCi0KICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogI2ltcG9ydCAi
VUlLaXRTUEkuaCIKICNpbXBvcnQgPGJtYWxsb2MvTWVtb3J5U3RhdHVzU1BJLmg+CkBAIC0yNzIs
MTMgKzI2Nyw2IEBAIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vz
cyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhCiAjaWYgUExBVEZPUk0oSU9TKQog
ICAgIGlmIChwYXJhbWV0ZXJzLmNvbXBpbGVyU2VydmljZUV4dGVuc2lvbkhhbmRsZSkKICAgICAg
ICAgU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5KCpwYXJhbWV0ZXJzLmNvbXBp
bGVyU2VydmljZUV4dGVuc2lvbkhhbmRsZSk7Ci0KLSAgICBpZiAocGFyYW1ldGVycy5jb250ZW50
RmlsdGVyRXh0ZW5zaW9uSGFuZGxlKQotICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1l
UGVybWFuZW50bHkoKnBhcmFtZXRlcnMuY29udGVudEZpbHRlckV4dGVuc2lvbkhhbmRsZSk7Ci0g
ICAgUGFyZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXI6OnNldEhhc0NvbnN1bWVkU2FuZGJveEV4
dGVuc2lvbihwYXJhbWV0ZXJzLmNvbnRlbnRGaWx0ZXJFeHRlbnNpb25IYW5kbGUuaGFzVmFsdWUo
KSk7Ci0KLSAgICBpZiAocGFyYW1ldGVycy5mcm9udGJvYXJkU2VydmljZUV4dGVuc2lvbkhhbmRs
ZSkKLSAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5KCpwYXJhbWV0
ZXJzLmZyb250Ym9hcmRTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlKTsKICNlbmRpZgogCiAjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTI4NywxMiArMjc1LDYgQEAgdm9pZCBXZWJQcm9jZXNzOjpw
bGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMm
IHBhcmEKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkocGFyYW1ldGVy
cy5keW5hbWljSU9LaXRFeHRlbnNpb25IYW5kbGVzKTsKICNlbmRpZgogICAgIAotICAgIGlmIChw
YXJhbWV0ZXJzLm5lSGVscGVyRXh0ZW5zaW9uSGFuZGxlKQotICAgICAgICBTYW5kYm94RXh0ZW5z
aW9uOjpjb25zdW1lUGVybWFuZW50bHkoKnBhcmFtZXRlcnMubmVIZWxwZXJFeHRlbnNpb25IYW5k
bGUpOwotICAgIGlmIChwYXJhbWV0ZXJzLm5lU2Vzc2lvbk1hbmFnZXJFeHRlbnNpb25IYW5kbGUp
Ci0gICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNvbnN1bWVQZXJtYW5lbnRseSgqcGFyYW1ldGVy
cy5uZVNlc3Npb25NYW5hZ2VyRXh0ZW5zaW9uSGFuZGxlKTsKLSAgICBOZXR3b3JrRXh0ZW5zaW9u
Q29udGVudEZpbHRlcjo6c2V0SGFzQ29uc3VtZWRTYW5kYm94RXh0ZW5zaW9ucyhwYXJhbWV0ZXJz
Lm5lSGVscGVyRXh0ZW5zaW9uSGFuZGxlLmhhc1ZhbHVlKCkgJiYgcGFyYW1ldGVycy5uZVNlc3Np
b25NYW5hZ2VyRXh0ZW5zaW9uSGFuZGxlLmhhc1ZhbHVlKCkpOwotCiAgICAgc2V0U3lzdGVtSGFz
QmF0dGVyeShwYXJhbWV0ZXJzLnN5c3RlbUhhc0JhdHRlcnkpOwogCiAjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402372</attachid>
            <date>2020-06-19 19:46:12 -0700</date>
            <delta_ts>2020-06-19 20:50:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213414-20200619194611.patch</filename>
            <type>text/plain</type>
            <size>28622</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMzA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTA5Y2IxZjJjYTNkODgy
ZWY1OGZiNWQ5ZDE0NTAwMzljMjdmNWQ2OS4uYjUzM2QzZDI1ZTdkYjZmOTU4NzBmODU4ZGM4MzI2
MDI1YjZjZDZkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIwLTA2LTE5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBEZWxheSBpc3N1
aW5nIE1hbmFnZWRTZXNzaW9uICYgTmV0d29yayBFeHRlbnNpb24gc2FuZGJveCBleHRlbnNpb25z
IHVudGlsIGEgbG9hZCBpcyBhY3R1YWxseSBpc3N1ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzQxNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NjQ1NDg2ODQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUGVyIEFybmUgVm9sbGFuLgorCisgICAg
ICAgIHNldEhhc0NvbnN1bWVkU2FuZGJveEV4dGVuc2lvbnMoKSBjYW4gbm93IGdldCBjYWxsZWQg
c2V2ZXJhbCB0aW1lcywgZXZlcnkgdGltZSBhIFdlYlBhZ2UgaXMgY3JlYXRlZC4KKyAgICAgICAg
T25jZSBhIHNhbmRib3ggZXh0ZW5zaW9uIGhhcyBiZWVuIGNvbnN1bWVkLCB0aGVyZSBpcyBubyBn
b2luZyBiYWNrIHNvIHJldHVybiBlYXJseSBpZiB0aGUgc3RhdGUgaXMKKyAgICAgICAgYWxyZWFk
eSAiQ29uc3VtZWQiLgorCisgICAgICAgICogcGxhdGZvcm0vY29jb2EvTmV0d29ya0V4dGVuc2lv
bkNvbnRlbnRGaWx0ZXIubW06CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrRXh0ZW5zaW9uQ29u
dGVudEZpbHRlcjo6c2V0SGFzQ29uc3VtZWRTYW5kYm94RXh0ZW5zaW9ucyk6CisgICAgICAgICog
cGxhdGZvcm0vY29jb2EvUGFyZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXIubW06CisgICAgICAg
IChXZWJDb3JlOjpQYXJlbnRhbENvbnRyb2xzQ29udGVudEZpbHRlcjo6c2V0SGFzQ29uc3VtZWRT
YW5kYm94RXh0ZW5zaW9uKToKKwogMjAyMC0wNi0xOSAgQ2xhcmsgV2FuZyAgPGNsYXJrX3dhbmdA
YXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBzZXRWZWxvY2l0eSgpIGZyb20gUGFubmVyTm9k
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCBiNGY5MTY1MDIzOGNiM2M3YjdlNzc0MTc3Nzk4NjNlYjczYzFiZTMwLi5i
MTRmYWU0YzNmNjgwYjQ1NWRlNWZkZDZkMzI4YWYzN2ViODdkNTM5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDQ2IEBACisyMDIwLTA2LTE5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisK
KyAgICAgICAgW0NvY29hXSBEZWxheSBpc3N1aW5nIE1hbmFnZWRTZXNzaW9uICYgTmV0d29yayBF
eHRlbnNpb24gc2FuZGJveCBleHRlbnNpb25zIHVudGlsIGEgbG9hZCBpcyBhY3R1YWxseSBpc3N1
ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzQx
NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjQ1NDg2ODQ+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgUGVyIEFybmUgVm9sbGFuLgorCisgICAgICAgIERlbGF5IGlzc3VpbmcgTWFuYWdlZFNlc3Np
b24gJiBOZXR3b3JrIEV4dGVuc2lvbiBzYW5kYm94IGV4dGVuc2lvbnMgdW50aWwgYSBsb2FkIGlz
IGFjdHVhbGx5IGlzc3VlZC4KKyAgICAgICAgVGhpcyBpcyBhIFNhZmFyaSBsYXVuY2ggdGltZSBv
cHRpbWl6YXRpb24gc2luY2UgdGhlIGNoZWNrcyBuZWVkZWQgdG8gZGVjaWRlIHdoZXRoZXIgb3Ig
bm90IHRvIGlzc3VlCisgICAgICAgIHRoZSBleHRlbnNpb25zIGFyZSBleHBlbnNpdmUgYW5kIHRo
ZXJlIGlzIG5vIHJlYXNvbiB0byBpc3N1ZSB0aGVtIGFzIHNvb24gYXMgdGhlIHByb2Nlc3MgbGF1
bmNoZXMKKyAgICAgICAgKGVzcGVjaWFsbHkgaW4gdGhlIGNhc2Ugb2YgYSBwcmV3YXJtZWQgcHJv
Y2VzcykuCisKKyAgICAgICAgKiBTaGFyZWQvQ29jb2EvTG9hZFBhcmFtZXRlcnNDb2NvYS5tbToK
KyAgICAgICAgKFdlYktpdDo6TG9hZFBhcmFtZXRlcnM6OnBsYXRmb3JtRW5jb2RlIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6TG9hZFBhcmFtZXRlcnM6OnBsYXRmb3JtRGVjb2RlKToKKyAgICAg
ICAgKiBTaGFyZWQvTG9hZFBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYlByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUGFn
ZVByb3h5Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6YWRkUGxhdGZv
cm1Mb2FkUGFyYW1ldGVycyk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQ
b29sQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUlu
aXRpYWxpemVXZWJQcm9jZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjphZGRQbGF0Zm9ybUxvYWRQYXJhbWV0
ZXJzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpsb2FkUmVxdWVzdFdpdGhOYXZp
Z2F0aW9uU2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpsb2FkRmlsZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bG9hZERhdGFXaXRoTmF2aWdhdGlvblNo
YXJlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bG9hZEFsdGVybmF0ZUhUTUwp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxvYWRXZWJBcmNoaXZlRGF0YSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpoYXNO
ZXR3b3JrRXh0ZW5zaW9uU2FuZGJveEFjY2VzcyBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3NQcm94eTo6bWFya0hhc05ldHdvcmtFeHRlbnNpb25TYW5kYm94QWNjZXNzKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpoYXNNYW5hZ2VkU2Vzc2lvblNhbmRib3hB
Y2Nlc3MgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6Om1hcmtIYXNN
YW5hZ2VkU2Vzc2lvblNhbmRib3hBY2Nlc3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9Db2NvYS9XZWJQYWdlQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnBsYXRm
b3JtRGlkUmVjZWl2ZUxvYWRQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29h
L1dlYlByb2Nlc3NDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZv
cm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisKIDIwMjAtMDYtMTkgIFJ5YW4gSGFkZGFkICA8cnlh
bmhhZGRhZEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNjMy
ODcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9OZXR3b3JrRXh0
ZW5zaW9uQ29udGVudEZpbHRlci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL05l
dHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLm1tCmluZGV4IGViZjM5YzM2ZmRlODNkYTZiOWJi
ZTgxYzRkMTI2NThjYzA5MTg1MzAuLjJiMjM5Mzg2ZGY2ZjIzYjBmMmFiY2M2MWU5YzcyMTVjNWFh
OWQyNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL05ldHdvcmtF
eHRlbnNpb25Db250ZW50RmlsdGVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nv
Y29hL05ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLm1tCkBAIC0yMjgsNiArMjI4LDkgQEAg
dm9pZCBOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlcjo6aGFuZGxlRGVjaXNpb24oTkVGaWx0
ZXJTb3VyY2VTdGF0dXMgc3RhdHVzLAogCiB2b2lkIE5ldHdvcmtFeHRlbnNpb25Db250ZW50Rmls
dGVyOjpzZXRIYXNDb25zdW1lZFNhbmRib3hFeHRlbnNpb25zKGJvb2wgaGFzQ29uc3VtZWRTYW5k
Ym94RXh0ZW5zaW9ucykKIHsKKyAgICBpZiAobV9zYW5kYm94RXh0ZW5zaW9uc1N0YXRlID09IFNh
bmRib3hFeHRlbnNpb25zU3RhdGU6OkNvbnN1bWVkKQorICAgICAgICByZXR1cm47CisKICAgICBt
X3NhbmRib3hFeHRlbnNpb25zU3RhdGUgPSAoaGFzQ29uc3VtZWRTYW5kYm94RXh0ZW5zaW9ucyA/
IFNhbmRib3hFeHRlbnNpb25zU3RhdGU6OkNvbnN1bWVkIDogU2FuZGJveEV4dGVuc2lvbnNTdGF0
ZTo6Tm90Q29uc3VtZWQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jb2NvYS9QYXJlbnRhbENvbnRyb2xzQ29udGVudEZpbHRlci5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2NvY29hL1BhcmVudGFsQ29udHJvbHNDb250ZW50RmlsdGVyLm1tCmluZGV4IGFl
OGZiMzkyOTYyMzY0ZDczNDk4NTEzZjgxZGUwOGI3ZjRmZWUwNWMuLjQ5ZjhmYTRiY2UwZDBmODgw
YmE0Mzc1MTNhMzI2NmY1NmY1YTAwNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2NvY29hL1BhcmVudGFsQ29udHJvbHNDb250ZW50RmlsdGVyLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2NvY29hL1BhcmVudGFsQ29udHJvbHNDb250ZW50RmlsdGVyLm1tCkBA
IC0xNTAsNiArMTUwLDkgQEAgdm9pZCBQYXJlbnRhbENvbnRyb2xzQ29udGVudEZpbHRlcjo6dXBk
YXRlRmlsdGVyU3RhdGUoKQogI2lmIFBMQVRGT1JNKElPUykKIHZvaWQgUGFyZW50YWxDb250cm9s
c0NvbnRlbnRGaWx0ZXI6OnNldEhhc0NvbnN1bWVkU2FuZGJveEV4dGVuc2lvbihib29sIGhhc0Nv
bnN1bWVkU2FuZGJveEV4dGVuc2lvbikKIHsKKyAgICBpZiAobV9zYW5kYm94RXh0ZW5zaW9uU3Rh
dGUgPT0gU2FuZGJveEV4dGVuc2lvblN0YXRlOjpDb25zdW1lZCkKKyAgICAgICAgcmV0dXJuOwor
CiAgICAgbV9zYW5kYm94RXh0ZW5zaW9uU3RhdGUgPSAoaGFzQ29uc3VtZWRTYW5kYm94RXh0ZW5z
aW9uID8gU2FuZGJveEV4dGVuc2lvblN0YXRlOjpDb25zdW1lZCA6IFNhbmRib3hFeHRlbnNpb25T
dGF0ZTo6Tm90Q29uc3VtZWQpOwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9Db2NvYS9Mb2FkUGFyYW1ldGVyc0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvQ29jb2EvTG9hZFBhcmFtZXRlcnNDb2NvYS5tbQppbmRleCA5NDIxNDNhNTdlOTMxMTI2YWEz
ZjRlNjM4MGEwYTA1ZTU3MjAwOWNkLi5lOThmN2RiMmE2N2JlZDdlMzQzMGZiMzk4YzEwYWRhZDMz
Y2I0NjFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9Mb2FkUGFyYW1l
dGVyc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0xvYWRQYXJhbWV0
ZXJzQ29jb2EubW0KQEAgLTM2LDEyICszNiw0NSBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIHZvaWQg
TG9hZFBhcmFtZXRlcnM6OnBsYXRmb3JtRW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29u
c3QKIHsKICAgICBJUEM6OmVuY29kZShlbmNvZGVyLCBkYXRhRGV0ZWN0aW9uQ29udGV4dC5nZXQo
KSk7CisKKyAgICBlbmNvZGVyIDw8IG5lSGVscGVyRXh0ZW5zaW9uSGFuZGxlOworICAgIGVuY29k
ZXIgPDwgbmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZTsKKyNpZiBQTEFURk9STShJT1Mp
CisgICAgZW5jb2RlciA8PCBjb250ZW50RmlsdGVyRXh0ZW5zaW9uSGFuZGxlOworICAgIGVuY29k
ZXIgPDwgZnJvbnRib2FyZFNlcnZpY2VFeHRlbnNpb25IYW5kbGU7CisjZW5kaWYKIH0KIAotYm9v
bCBMb2FkUGFyYW1ldGVyczo6cGxhdGZvcm1EZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBM
b2FkUGFyYW1ldGVycyYgZGF0YSkKK2Jvb2wgTG9hZFBhcmFtZXRlcnM6OnBsYXRmb3JtRGVjb2Rl
KElQQzo6RGVjb2RlciYgZGVjb2RlciwgTG9hZFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7Ci0g
ICAgaWYgKCFJUEM6OmRlY29kZShkZWNvZGVyLCBkYXRhLmRhdGFEZXRlY3Rpb25Db250ZXh0KSkK
KyAgICBpZiAoIUlQQzo6ZGVjb2RlKGRlY29kZXIsIHBhcmFtZXRlcnMuZGF0YURldGVjdGlvbkNv
bnRleHQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBPcHRpb25hbDxPcHRpb25hbDxT
YW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+PiBuZUhlbHBlckV4dGVuc2lvbkhhbmRsZTsKKyAgICBk
ZWNvZGVyID4+IG5lSGVscGVyRXh0ZW5zaW9uSGFuZGxlOworICAgIGlmICghbmVIZWxwZXJFeHRl
bnNpb25IYW5kbGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBwYXJhbWV0ZXJzLm5lSGVs
cGVyRXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZSgqbmVIZWxwZXJFeHRlbnNpb25IYW5kbGUpOwor
CisgICAgT3B0aW9uYWw8T3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPj4gbmVTZXNz
aW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZTsKKyAgICBkZWNvZGVyID4+IG5lU2Vzc2lvbk1hbmFn
ZXJFeHRlbnNpb25IYW5kbGU7CisgICAgaWYgKCFuZVNlc3Npb25NYW5hZ2VyRXh0ZW5zaW9uSGFu
ZGxlKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcGFyYW1ldGVycy5uZVNlc3Npb25NYW5h
Z2VyRXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZSgqbmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhh
bmRsZSk7CisKKyNpZiBQTEFURk9STShJT1MpCisgICAgT3B0aW9uYWw8T3B0aW9uYWw8U2FuZGJv
eEV4dGVuc2lvbjo6SGFuZGxlPj4gY29udGVudEZpbHRlckV4dGVuc2lvbkhhbmRsZTsKKyAgICBk
ZWNvZGVyID4+IGNvbnRlbnRGaWx0ZXJFeHRlbnNpb25IYW5kbGU7CisgICAgaWYgKCFjb250ZW50
RmlsdGVyRXh0ZW5zaW9uSGFuZGxlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcGFyYW1l
dGVycy5jb250ZW50RmlsdGVyRXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZSgqY29udGVudEZpbHRl
ckV4dGVuc2lvbkhhbmRsZSk7CisKKyAgICBPcHRpb25hbDxPcHRpb25hbDxTYW5kYm94RXh0ZW5z
aW9uOjpIYW5kbGU+PiBmcm9udGJvYXJkU2VydmljZUV4dGVuc2lvbkhhbmRsZTsKKyAgICBkZWNv
ZGVyID4+IGZyb250Ym9hcmRTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlOworICAgIGlmICghZnJvbnRi
b2FyZFNlcnZpY2VFeHRlbnNpb25IYW5kbGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBw
YXJhbWV0ZXJzLmZyb250Ym9hcmRTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZSgqZnJv
bnRib2FyZFNlcnZpY2VFeHRlbnNpb25IYW5kbGUpOworI2VuZGlmCiAKICAgICByZXR1cm4gdHJ1
ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0xvYWRQYXJhbWV0ZXJzLmgg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Mb2FkUGFyYW1ldGVycy5oCmluZGV4IDQ3MTBkMzI3YzA4
NmU0MjE5YWIwMDNjZDM1ZmEzYWE1Zjk3MTEwYjQuLmU4ODE0NWIwYWVhNTViMGYxMWQ0OTUwMjQ0
ZjZlMWUwZDk0Mjk0YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0xvYWRQYXJh
bWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvTG9hZFBhcmFtZXRlcnMuaApAQCAt
NzQsNiArNzQsMTIgQEAgc3RydWN0IExvYWRQYXJhbWV0ZXJzIHsKIAogI2lmIFBMQVRGT1JNKENP
Q09BKQogICAgIFJldGFpblB0cjxOU0RpY3Rpb25hcnk+IGRhdGFEZXRlY3Rpb25Db250ZXh0Owor
ICAgIE9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gbmVIZWxwZXJFeHRlbnNpb25I
YW5kbGU7CisgICAgT3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBuZVNlc3Npb25N
YW5hZ2VyRXh0ZW5zaW9uSGFuZGxlOworI2VuZGlmCisjaWYgUExBVEZPUk0oSU9TKQorICAgIE9w
dGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gY29udGVudEZpbHRlckV4dGVuc2lvbkhh
bmRsZTsKKyAgICBPcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+IGZyb250Ym9hcmRT
ZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlOwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IDgxY2M5
ZjhkNzU1ZWM4MTE2ZmIxZDY2OTBmN2E4ZGI3NjQ2YWRlZGMuLjQ1OGM4MGUxM2Y1ODg4YWNkZTc5
OTc5YzU5ZDc5NTU2OTU0NzU5YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC0xNTcsOCArMTU3LDYgQEAgdm9p
ZCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAogICAgIAogI2lmIFBMQVRGT1JNKElPUykKICAgICBlbmNvZGVyIDw8IGNvbXBp
bGVyU2VydmljZUV4dGVuc2lvbkhhbmRsZTsKLSAgICBlbmNvZGVyIDw8IGNvbnRlbnRGaWx0ZXJF
eHRlbnNpb25IYW5kbGU7Ci0gICAgZW5jb2RlciA8PCBmcm9udGJvYXJkU2VydmljZUV4dGVuc2lv
bkhhbmRsZTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTE2OCw4ICsx
NjYsNiBAQCB2b2lkIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVu
Y29kZXImIGVuY29kZXIpIGNvbnN0CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKENPQ09BKQotICAg
IGVuY29kZXIgPDwgbmVIZWxwZXJFeHRlbnNpb25IYW5kbGU7Ci0gICAgZW5jb2RlciA8PCBuZVNl
c3Npb25NYW5hZ2VyRXh0ZW5zaW9uSGFuZGxlOwogICAgIGVuY29kZXIgPDwgbWFwREJFeHRlbnNp
b25IYW5kbGU7CiAgICAgZW5jb2RlciA8PCBzeXN0ZW1IYXNCYXR0ZXJ5OwogI2VuZGlmCkBAIC00
MjEsMTggKzQxNyw2IEBAIGJvb2wgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2Rl
KElQQzo6RGVjb2RlciYgZGVjb2RlciwgV2ViUHJvY2Vzc0NyZWF0CiAgICAgaWYgKCFjb21waWxl
clNlcnZpY2VFeHRlbnNpb25IYW5kbGUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBwYXJh
bWV0ZXJzLmNvbXBpbGVyU2VydmljZUV4dGVuc2lvbkhhbmRsZSA9IFdURk1vdmUoKmNvbXBpbGVy
U2VydmljZUV4dGVuc2lvbkhhbmRsZSk7Ci0KLSAgICBPcHRpb25hbDxPcHRpb25hbDxTYW5kYm94
RXh0ZW5zaW9uOjpIYW5kbGU+PiBjb250ZW50RmlsdGVyRXh0ZW5zaW9uSGFuZGxlOwotICAgIGRl
Y29kZXIgPj4gY29udGVudEZpbHRlckV4dGVuc2lvbkhhbmRsZTsKLSAgICBpZiAoIWNvbnRlbnRG
aWx0ZXJFeHRlbnNpb25IYW5kbGUpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBwYXJhbWV0
ZXJzLmNvbnRlbnRGaWx0ZXJFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3ZlKCpjb250ZW50RmlsdGVy
RXh0ZW5zaW9uSGFuZGxlKTsKLQotICAgIE9wdGlvbmFsPE9wdGlvbmFsPFNhbmRib3hFeHRlbnNp
b246OkhhbmRsZT4+IGZyb250Ym9hcmRTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlOwotICAgIGRlY29k
ZXIgPj4gZnJvbnRib2FyZFNlcnZpY2VFeHRlbnNpb25IYW5kbGU7Ci0gICAgaWYgKCFmcm9udGJv
YXJkU2VydmljZUV4dGVuc2lvbkhhbmRsZSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHBh
cmFtZXRlcnMuZnJvbnRib2FyZFNlcnZpY2VFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3ZlKCpmcm9u
dGJvYXJkU2VydmljZUV4dGVuc2lvbkhhbmRsZSk7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCkBAIC00NTYsMTggKzQ0MCw2IEBAIGJvb2wgV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgV2ViUHJvY2Vzc0NyZWF0CiAj
ZW5kaWYKIAogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIE9wdGlvbmFsPE9wdGlvbmFsPFNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZT4+IG5lSGVscGVyRXh0ZW5zaW9uSGFuZGxlOwotICAgIGRlY29k
ZXIgPj4gbmVIZWxwZXJFeHRlbnNpb25IYW5kbGU7Ci0gICAgaWYgKCFuZUhlbHBlckV4dGVuc2lv
bkhhbmRsZSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHBhcmFtZXRlcnMubmVIZWxwZXJF
eHRlbnNpb25IYW5kbGUgPSBXVEZNb3ZlKCpuZUhlbHBlckV4dGVuc2lvbkhhbmRsZSk7Ci0KLSAg
ICBPcHRpb25hbDxPcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+PiBuZVNlc3Npb25N
YW5hZ2VyRXh0ZW5zaW9uSGFuZGxlOwotICAgIGRlY29kZXIgPj4gbmVTZXNzaW9uTWFuYWdlckV4
dGVuc2lvbkhhbmRsZTsKLSAgICBpZiAoIW5lU2Vzc2lvbk1hbmFnZXJFeHRlbnNpb25IYW5kbGUp
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBwYXJhbWV0ZXJzLm5lU2Vzc2lvbk1hbmFnZXJF
eHRlbnNpb25IYW5kbGUgPSBXVEZNb3ZlKCpuZVNlc3Npb25NYW5hZ2VyRXh0ZW5zaW9uSGFuZGxl
KTsKLQogICAgIE9wdGlvbmFsPE9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4+IG1h
cERCRXh0ZW5zaW9uSGFuZGxlOwogICAgIGRlY29kZXIgPj4gbWFwREJFeHRlbnNpb25IYW5kbGU7
CiAgICAgaWYgKCFtYXBEQkV4dGVuc2lvbkhhbmRsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCA2YTNlYmEyZjNkYjg4
YmJhZDBjOGY1MjljMTNhNTYwN2QxMTYxY2ZlLi44YjUzMDQzYzk0N2JkZGNmYTRlNmEyMmE3MGI5
YzE3ZGQ0OGMzY2FjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC0yMDEsOCArMjAxLDYgQEAgc3RydWN0IFdlYlByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIAogI2lmIFBMQVRGT1JNKElPUykKICAgICBPcHRp
b25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+IGNvbXBpbGVyU2VydmljZUV4dGVuc2lvbkhh
bmRsZTsKLSAgICBPcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+IGNvbnRlbnRGaWx0
ZXJFeHRlbnNpb25IYW5kbGU7Ci0gICAgT3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxl
PiBmcm9udGJvYXJkU2VydmljZUV4dGVuc2lvbkhhbmRsZTsKICNlbmRpZgogCiAjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKQEAgLTIxMiw4ICsyMTAsNiBAQCBzdHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycyB7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIE9wdGlv
bmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gbmVIZWxwZXJFeHRlbnNpb25IYW5kbGU7Ci0g
ICAgT3B0aW9uYWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBuZVNlc3Npb25NYW5hZ2VyRXh0
ZW5zaW9uSGFuZGxlOwogICAgIE9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gbWFw
REJFeHRlbnNpb25IYW5kbGU7CiAgICAgYm9vbCBzeXN0ZW1IYXNCYXR0ZXJ5IHsgZmFsc2UgfTsK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFn
ZVByb3h5Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJv
eHlDb2NvYS5tbQppbmRleCAzNmYwMWNiZjcxZGFlY2RkNzUzMTRjNmQxNjBkYTc4ZmZkYmE5ZDE0
Li43MmU0ODMzM2I4ZTgwMTBjODUzY2IzNjA1YzhhOGJkZmY4ZDc1Y2NhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQpAQCAtNDcs
MTMgKzQ3LDI1IEBACiAjaW1wb3J0IDxXZWJDb3JlL1NlYXJjaFBvcHVwTWVudUNvY29hLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1RleHRBbHRlcm5hdGl2ZVdpdGhSYW5nZS5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9WYWxpZGF0aW9uQnViYmxlLmg+CisjaW1wb3J0IDxwYWwvc3BpL2NvY29hL05FRmlsdGVy
U291cmNlU1BJLmg+CiAjaW1wb3J0IDx3dGYvQmxvY2tQdHIuaD4KKyNpbXBvcnQgPHd0Zi9Tb2Z0
TGlua2luZy5oPgogI2ltcG9ydCA8d3RmL2NmL1R5cGVDYXN0c0NGLmg+CiAKICNpZiBFTkFCTEUo
TUVESUFfVVNBR0UpCiAjaW1wb3J0ICJNZWRpYVVzYWdlTWFuYWdlckNvY29hLmgiCiAjZW5kaWYK
IAorI2lmIFBMQVRGT1JNKElPUykKKyNpbXBvcnQgPHBhbC9zcGkvY29jb2EvV2ViRmlsdGVyRXZh
bHVhdG9yU1BJLmg+CisKK1NPRlRfTElOS19QUklWQVRFX0ZSQU1FV09SSyhXZWJDb250ZW50QW5h
bHlzaXMpOworU09GVF9MSU5LX0NMQVNTKFdlYkNvbnRlbnRBbmFseXNpcywgV2ViRmlsdGVyRXZh
bHVhdG9yKTsKKyNlbmRpZgorCitTT0ZUX0xJTktfRlJBTUVXT1JLX09QVElPTkFMKE5ldHdvcmtF
eHRlbnNpb24pOworU09GVF9MSU5LX0NMQVNTX09QVElPTkFMKE5ldHdvcmtFeHRlbnNpb24sIE5F
RmlsdGVyU291cmNlKTsKKwogI2RlZmluZSBNRVNTQUdFX0NIRUNLKGFzc2VydGlvbikgTUVTU0FH
RV9DSEVDS19CQVNFKGFzc2VydGlvbiwgcHJvY2VzcygpLmNvbm5lY3Rpb24oKSkKICNkZWZpbmUg
TUVTU0FHRV9DSEVDS19DT01QTEVUSU9OKGFzc2VydGlvbiwgY29tcGxldGlvbikgTUVTU0FHRV9D
SEVDS19DT01QTEVUSU9OX0JBU0UoYXNzZXJ0aW9uLCBwcm9jZXNzKCkuY29ubmVjdGlvbigpLCBj
b21wbGV0aW9uKQogCkBAIC0xMjksOSArMTQxLDM4IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpjb250
ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4m
CiB9CiAjZW5kaWYKIAotdm9pZCBXZWJQYWdlUHJveHk6OmFkZFBsYXRmb3JtTG9hZFBhcmFtZXRl
cnMoTG9hZFBhcmFtZXRlcnMmIGxvYWRQYXJhbWV0ZXJzKQordm9pZCBXZWJQYWdlUHJveHk6OmFk
ZFBsYXRmb3JtTG9hZFBhcmFtZXRlcnMoV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzLCBMb2FkUGFy
YW1ldGVycyYgbG9hZFBhcmFtZXRlcnMpCiB7CiAgICAgbG9hZFBhcmFtZXRlcnMuZGF0YURldGVj
dGlvbkNvbnRleHQgPSBtX3VpQ2xpZW50LT5kYXRhRGV0ZWN0aW9uQ29udGV4dCgpOworCisgICAg
aWYgKCFwcm9jZXNzLmhhc05ldHdvcmtFeHRlbnNpb25TYW5kYm94QWNjZXNzKCkgJiYgW2dldE5F
RmlsdGVyU291cmNlQ2xhc3MoKSBmaWx0ZXJSZXF1aXJlZF0pIHsKKyAgICAgICAgU2FuZGJveEV4
dGVuc2lvbjo6SGFuZGxlIGhlbHBlckhhbmRsZTsKKyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6
Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLm5laGVscGVyIl9zLCBXVEY6Om51
bGxvcHQsIGhlbHBlckhhbmRsZSk7CisgICAgICAgIGxvYWRQYXJhbWV0ZXJzLm5lSGVscGVyRXh0
ZW5zaW9uSGFuZGxlID0gV1RGTW92ZShoZWxwZXJIYW5kbGUpOworICAgICAgICBTYW5kYm94RXh0
ZW5zaW9uOjpIYW5kbGUgbWFuYWdlckhhbmRsZTsKKyNpZiBQTEFURk9STShNQUMpICYmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPCAxMDE1MDAKKyAgICAgICAgU2FuZGJveEV4dGVu
c2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLm5lc2Vzc2lvbm1hbmFn
ZXIiX3MsIFdURjo6bnVsbG9wdCwgbWFuYWdlckhhbmRsZSk7CisjZWxzZQorICAgICAgICBTYW5k
Ym94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwKCJjb20uYXBwbGUubmVzZXNz
aW9ubWFuYWdlci5jb250ZW50LWZpbHRlciJfcywgV1RGOjpudWxsb3B0LCBtYW5hZ2VySGFuZGxl
KTsKKyNlbmRpZgorICAgICAgICBsb2FkUGFyYW1ldGVycy5uZVNlc3Npb25NYW5hZ2VyRXh0ZW5z
aW9uSGFuZGxlID0gV1RGTW92ZShtYW5hZ2VySGFuZGxlKTsKKworICAgICAgICBwcm9jZXNzLm1h
cmtIYXNOZXR3b3JrRXh0ZW5zaW9uU2FuZGJveEFjY2VzcygpOworICAgIH0KKworI2lmIFBMQVRG
T1JNKElPUykKKyAgICBpZiAoIXByb2Nlc3MuaGFzTWFuYWdlZFNlc3Npb25TYW5kYm94QWNjZXNz
KCkgJiYgW2dldFdlYkZpbHRlckV2YWx1YXRvckNsYXNzKCkgaXNNYW5hZ2VkU2Vzc2lvbl0pIHsK
KyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGhhbmRsZTsKKyAgICAgICAgU2FuZGJv
eEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLnVpa2l0LnZp
ZXdzZXJ2aWNlLmNvbS5hcHBsZS5XZWJDb250ZW50RmlsdGVyLnJlbW90ZVVJIl9zLCBXVEY6Om51
bGxvcHQsIGhhbmRsZSk7CisgICAgICAgIGxvYWRQYXJhbWV0ZXJzLmNvbnRlbnRGaWx0ZXJFeHRl
bnNpb25IYW5kbGUgPSBXVEZNb3ZlKGhhbmRsZSk7CisKKyAgICAgICAgU2FuZGJveEV4dGVuc2lv
bjo6SGFuZGxlIGZyb250Ym9hcmRTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlOworICAgICAgICBpZiAo
U2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLmZy
b250Ym9hcmQuc3lzdGVtYXBwc2VydmljZXMiX3MsIFdURjo6bnVsbG9wdCwgZnJvbnRib2FyZFNl
cnZpY2VFeHRlbnNpb25IYW5kbGUpKQorICAgICAgICAgICAgbG9hZFBhcmFtZXRlcnMuZnJvbnRi
b2FyZFNlcnZpY2VFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3ZlKGZyb250Ym9hcmRTZXJ2aWNlRXh0
ZW5zaW9uSGFuZGxlKTsKKworICAgICAgICBwcm9jZXNzLm1hcmtIYXNNYW5hZ2VkU2Vzc2lvblNh
bmRib3hBY2Nlc3MoKTsKKyAgICB9CisjZW5kaWYKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OmNy
ZWF0ZVNhbmRib3hFeHRlbnNpb25zSWZOZWVkZWQoY29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVz
LCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmIGZpbGVSZWFkSGFuZGxlLCBTYW5kYm94RXh0ZW5z
aW9uOjpIYW5kbGVBcnJheSYgZmlsZVVwbG9hZEhhbmRsZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQppbmRleCBiZmUyZDI0
ZmU4MGQzNzhiZjAxZDI4ODQ5ZTNiODc0ZmRhNGY2NzQxLi4wN2ZjMTE4MmQ3YWM1YTA1NTFmNTZk
Yzk5MDMyMDQwOGIxMzdkMWRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KQEAgLTc5LDI3ICs3OSwxNCBAQAogI2ltcG9y
dCA8UXVhcnR6Q29yZS9DQVJlbW90ZUxheWVyU2VydmVyLmg+CiAjZWxzZQogI2ltcG9ydCAiVUlL
aXRTUEkuaCIKLSNpbXBvcnQgPHBhbC9pb3MvTWFuYWdlZENvbmZpZ3VyYXRpb25Tb2Z0TGluay5o
PgotI2ltcG9ydCA8cGFsL3NwaS9pb3MvTWFuYWdlZENvbmZpZ3VyYXRpb25TUEkuaD4KICNlbmRp
ZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICNpbXBvcnQgPHBhbC9zcGkvaW9zL01vYmls
ZUdlc3RhbHRTUEkuaD4KICNlbmRpZgogCi0jaWYgUExBVEZPUk0oSU9TKQotI2ltcG9ydCA8cGFs
L3NwaS9jb2NvYS9XZWJGaWx0ZXJFdmFsdWF0b3JTUEkuaD4KLQotU09GVF9MSU5LX1BSSVZBVEVf
RlJBTUVXT1JLKFdlYkNvbnRlbnRBbmFseXNpcyk7Ci1TT0ZUX0xJTktfQ0xBU1MoV2ViQ29udGVu
dEFuYWx5c2lzLCBXZWJGaWx0ZXJFdmFsdWF0b3IpOwotI2VuZGlmCi0KICNpZiBQTEFURk9STShD
T0NPQSkKICNpbXBvcnQgPFdlYkNvcmUvU3lzdGVtQmF0dGVyeS5oPgotI2ltcG9ydCA8cGFsL3Nw
aS9jb2NvYS9ORUZpbHRlclNvdXJjZVNQSS5oPgotCi1TT0ZUX0xJTktfRlJBTUVXT1JLX09QVElP
TkFMKE5ldHdvcmtFeHRlbnNpb24pOwotU09GVF9MSU5LX0NMQVNTX09QVElPTkFMKE5ldHdvcmtF
eHRlbnNpb24sIE5FRmlsdGVyU291cmNlKTsKICNlbmRpZgogCiBOU1N0cmluZyAqV2ViU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeURlZmF1bHRzS2V5ID0gQCJXZWJTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5IjsKQEAgLTQwOCwzNiArMzk1LDEyIEBAIHZvaWQgV2Vi
UHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vz
c1Byb3h5JiBwcm9jZXNzCiAjZW5kaWYKICAgICAKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBp
ZiAoW2dldE5FRmlsdGVyU291cmNlQ2xhc3MoKSBmaWx0ZXJSZXF1aXJlZF0pIHsKLSAgICAgICAg
U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGhlbHBlckhhbmRsZTsKLSAgICAgICAgU2FuZGJveEV4
dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLm5laGVscGVyIl9z
LCBXVEY6Om51bGxvcHQsIGhlbHBlckhhbmRsZSk7Ci0gICAgICAgIHBhcmFtZXRlcnMubmVIZWxw
ZXJFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3ZlKGhlbHBlckhhbmRsZSk7Ci0gICAgICAgIFNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZSBtYW5hZ2VySGFuZGxlOwotI2lmIFBMQVRGT1JNKE1BQykgJiYg
X19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8IDEwMTUwMAotICAgICAgICBTYW5kYm94
RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwKCJjb20uYXBwbGUubmVzZXNzaW9u
bWFuYWdlciJfcywgV1RGOjpudWxsb3B0LCBtYW5hZ2VySGFuZGxlKTsKLSNlbHNlCi0gICAgICAg
IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS5u
ZXNlc3Npb25tYW5hZ2VyLmNvbnRlbnQtZmlsdGVyIl9zLCBXVEY6Om51bGxvcHQsIG1hbmFnZXJI
YW5kbGUpOwotI2VuZGlmCi0gICAgICAgIHBhcmFtZXRlcnMubmVTZXNzaW9uTWFuYWdlckV4dGVu
c2lvbkhhbmRsZSA9IFdURk1vdmUobWFuYWdlckhhbmRsZSk7Ci0gICAgfQogICAgIHBhcmFtZXRl
cnMuc3lzdGVtSGFzQmF0dGVyeSA9IHN5c3RlbUhhc0JhdHRlcnkoKTsKIAogICAgIFNhbmRib3hF
eHRlbnNpb246OkhhbmRsZSBtYXBEQkhhbmRsZTsKICAgICBpZiAoU2FuZGJveEV4dGVuc2lvbjo6
Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLmxzZC5tYXBkYiJfcywgV1RGOjpu
dWxsb3B0LCBtYXBEQkhhbmRsZSwgU2FuZGJveEV4dGVuc2lvbjo6RmxhZ3M6Ok5vUmVwb3J0KSkK
ICAgICAgICAgcGFyYW1ldGVycy5tYXBEQkV4dGVuc2lvbkhhbmRsZSA9IFdURk1vdmUobWFwREJI
YW5kbGUpOwogI2VuZGlmCi0gICAgCi0jaWYgUExBVEZPUk0oSU9TKQotICAgIGlmIChbZ2V0V2Vi
RmlsdGVyRXZhbHVhdG9yQ2xhc3MoKSBpc01hbmFnZWRTZXNzaW9uXSkgewotICAgICAgICBTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGUgaGFuZGxlOwotICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpj
cmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwKCJjb20uYXBwbGUudWlraXQudmlld3NlcnZpY2UuY29t
LmFwcGxlLldlYkNvbnRlbnRGaWx0ZXIucmVtb3RlVUkiX3MsIFdURjo6bnVsbG9wdCwgaGFuZGxl
KTsKLSAgICAgICAgcGFyYW1ldGVycy5jb250ZW50RmlsdGVyRXh0ZW5zaW9uSGFuZGxlID0gV1RG
TW92ZShoYW5kbGUpOwotCi0gICAgICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBmcm9udGJv
YXJkU2VydmljZUV4dGVuc2lvbkhhbmRsZTsKLSAgICAgICAgaWYgKFNhbmRib3hFeHRlbnNpb246
OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS5mcm9udGJvYXJkLnN5c3RlbWFw
cHNlcnZpY2VzIl9zLCBXVEY6Om51bGxvcHQsIGZyb250Ym9hcmRTZXJ2aWNlRXh0ZW5zaW9uSGFu
ZGxlKSkKLSAgICAgICAgICAgIHBhcmFtZXRlcnMuZnJvbnRib2FyZFNlcnZpY2VFeHRlbnNpb25I
YW5kbGUgPSBXVEZNb3ZlKGZyb250Ym9hcmRTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlKTsKLSAgICB9
Ci0jZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgcGFyYW1ldGVycy5jdXJy
ZW50VXNlckludGVyZmFjZUlkaW9tSXNQYWQgPSBjdXJyZW50VXNlckludGVyZmFjZUlkaW9tSXNQ
YWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGViMThh
NTBjYWZkM2YzMGJjZDA5NDg2NDY4MmYwOWYxNzA5Y2ZkZDguLmZjN2Q2MDAzZjAyZGM4OWIyYmVh
OTFmNzgxN2YwNWNmZjI3NDExMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcApAQCAtMTI2Niw3ICsxMjY2LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6Om1heWJlSW5p
dGlhbGl6ZVNhbmRib3hFeHRlbnNpb25IYW5kbGUoV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXMKIH0K
IAogI2lmICFQTEFURk9STShDT0NPQSkKLXZvaWQgV2ViUGFnZVByb3h5OjphZGRQbGF0Zm9ybUxv
YWRQYXJhbWV0ZXJzKExvYWRQYXJhbWV0ZXJzJikKK3ZvaWQgV2ViUGFnZVByb3h5OjphZGRQbGF0
Zm9ybUxvYWRQYXJhbWV0ZXJzKFdlYlByb2Nlc3NQcm94eSYsIExvYWRQYXJhbWV0ZXJzJikKIHsK
IH0KICNlbmRpZgpAQCAtMTMyMyw3ICsxMzIzLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmxvYWRS
ZXF1ZXN0V2l0aE5hdmlnYXRpb25TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXMK
ICAgICBsb2FkUGFyYW1ldGVycy5pc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluID0gaXNOYXZp
Z2F0aW5nVG9BcHBCb3VuZERvbWFpbjsKICAgICBtYXliZUluaXRpYWxpemVTYW5kYm94RXh0ZW5z
aW9uSGFuZGxlKHByb2Nlc3MsIHVybCwgbV9wYWdlTG9hZFN0YXRlLnJlc291cmNlRGlyZWN0b3J5
VVJMKCksIGxvYWRQYXJhbWV0ZXJzLnNhbmRib3hFeHRlbnNpb25IYW5kbGUpOwogCi0gICAgYWRk
UGxhdGZvcm1Mb2FkUGFyYW1ldGVycyhsb2FkUGFyYW1ldGVycyk7CisgICAgYWRkUGxhdGZvcm1M
b2FkUGFyYW1ldGVycyhwcm9jZXNzLCBsb2FkUGFyYW1ldGVycyk7CiAKICAgICBwcmVjb25uZWN0
VG8odXJsKTsKIApAQCAtMTM4NSw3ICsxMzg1LDcgQEAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4g
V2ViUGFnZVByb3h5Ojpsb2FkRmlsZShjb25zdCBTdHJpbmcmIGZpbGVVUkxTdHJpbmcsIGNvbnMK
ICAgICBsb2FkUGFyYW1ldGVycy51c2VyRGF0YSA9IFVzZXJEYXRhKHByb2Nlc3MoKS50cmFuc2Zv
cm1PYmplY3RzVG9IYW5kbGVzKHVzZXJEYXRhKS5nZXQoKSk7CiAgICAgY29uc3QgYm9vbCBjaGVj
a0Fzc3VtZWRSZWFkQWNjZXNzVG9SZXNvdXJjZVVSTCA9IGZhbHNlOwogICAgIG1heWJlSW5pdGlh
bGl6ZVNhbmRib3hFeHRlbnNpb25IYW5kbGUobV9wcm9jZXNzLCBmaWxlVVJMLCByZXNvdXJjZURp
cmVjdG9yeVVSTCwgbG9hZFBhcmFtZXRlcnMuc2FuZGJveEV4dGVuc2lvbkhhbmRsZSwgY2hlY2tB
c3N1bWVkUmVhZEFjY2Vzc1RvUmVzb3VyY2VVUkwpOwotICAgIGFkZFBsYXRmb3JtTG9hZFBhcmFt
ZXRlcnMobG9hZFBhcmFtZXRlcnMpOworICAgIGFkZFBsYXRmb3JtTG9hZFBhcmFtZXRlcnMobV9w
cm9jZXNzLCBsb2FkUGFyYW1ldGVycyk7CiAKICNpZiBIQVZFKFNBTkRCT1hfSVNTVUVfUkVBRF9F
WFRFTlNJT05fVE9fUFJPQ0VTU19CWV9BVURJVF9UT0tFTikKICAgICBpZiAobV9wcm9jZXNzLT5p
c0xhdW5jaGluZygpKQpAQCAtMTQ0NSw3ICsxNDQ1LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6Omxv
YWREYXRhV2l0aE5hdmlnYXRpb25TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNz
LAogICAgIGxvYWRQYXJhbWV0ZXJzLndlYnNpdGVQb2xpY2llcyA9IFdURk1vdmUod2Vic2l0ZVBv
bGljaWVzKTsKICAgICBsb2FkUGFyYW1ldGVycy5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5
ID0gc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTsKICAgICBsb2FkUGFyYW1ldGVycy5pc05h
dmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluID0gaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbjsK
LSAgICBhZGRQbGF0Zm9ybUxvYWRQYXJhbWV0ZXJzKGxvYWRQYXJhbWV0ZXJzKTsKKyAgICBhZGRQ
bGF0Zm9ybUxvYWRQYXJhbWV0ZXJzKHByb2Nlc3MsIGxvYWRQYXJhbWV0ZXJzKTsKIAogICAgIHBy
b2Nlc3MtPmFzc3VtZVJlYWRBY2Nlc3NUb0Jhc2VVUkwoKnRoaXMsIGJhc2VVUkwpOwogICAgIHBy
b2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkxvYWREYXRhKGxvYWRQYXJhbWV0ZXJzKSwg
d2ViUGFnZUlEKTsKQEAgLTE0ODcsNyArMTQ4Nyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpsb2Fk
QWx0ZXJuYXRlSFRNTChjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGh0bWxEYXRhLCBjb25zdCBT
CiAgICAgbG9hZFBhcmFtZXRlcnMudW5yZWFjaGFibGVVUkxTdHJpbmcgPSB1bnJlYWNoYWJsZVVS
TC5zdHJpbmcoKTsKICAgICBsb2FkUGFyYW1ldGVycy5wcm92aXNpb25hbExvYWRFcnJvclVSTFN0
cmluZyA9IG1fZmFpbGluZ1Byb3Zpc2lvbmFsTG9hZFVSTDsKICAgICBsb2FkUGFyYW1ldGVycy51
c2VyRGF0YSA9IFVzZXJEYXRhKHByb2Nlc3MoKS50cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVzKHVz
ZXJEYXRhKS5nZXQoKSk7Ci0gICAgYWRkUGxhdGZvcm1Mb2FkUGFyYW1ldGVycyhsb2FkUGFyYW1l
dGVycyk7CisgICAgYWRkUGxhdGZvcm1Mb2FkUGFyYW1ldGVycyhwcm9jZXNzKCksIGxvYWRQYXJh
bWV0ZXJzKTsKIAogICAgIG1fcHJvY2Vzcy0+YXNzdW1lUmVhZEFjY2Vzc1RvQmFzZVVSTCgqdGhp
cywgYmFzZVVSTC5zdHJpbmcoKSk7CiAgICAgbV9wcm9jZXNzLT5hc3N1bWVSZWFkQWNjZXNzVG9C
YXNlVVJMKCp0aGlzLCB1bnJlYWNoYWJsZVVSTC5zdHJpbmcoKSk7CkBAIC0xNTE2LDcgKzE1MTYs
NyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bG9hZFdlYkFyY2hpdmVEYXRhKEFQSTo6RGF0YSogd2Vi
QXJjaGl2ZURhdGEsIEFQSTo6T2JqZWN0KiB1cwogICAgIGxvYWRQYXJhbWV0ZXJzLk1JTUVUeXBl
ID0gImFwcGxpY2F0aW9uL3gtd2ViYXJjaGl2ZSJfczsKICAgICBsb2FkUGFyYW1ldGVycy5lbmNv
ZGluZ05hbWUgPSAidXRmLTE2Il9zOwogICAgIGxvYWRQYXJhbWV0ZXJzLnVzZXJEYXRhID0gVXNl
ckRhdGEocHJvY2VzcygpLnRyYW5zZm9ybU9iamVjdHNUb0hhbmRsZXModXNlckRhdGEpLmdldCgp
KTsKLSAgICBhZGRQbGF0Zm9ybUxvYWRQYXJhbWV0ZXJzKGxvYWRQYXJhbWV0ZXJzKTsKKyAgICBh
ZGRQbGF0Zm9ybUxvYWRQYXJhbWV0ZXJzKHByb2Nlc3MoKSwgbG9hZFBhcmFtZXRlcnMpOwogCiAg
ICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6TG9hZERhdGEobG9hZFBhcmFtZXRlcnMpKTsKICAg
ICBtX3Byb2Nlc3MtPnN0YXJ0UmVzcG9uc2l2ZW5lc3NUaW1lcigpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCAyZWRmNDRmNTlkNDk4YTgyMDFhOGFjNzg5ODQ5M2I1
MjEzZTI1ZGExLi40OTEyNDA0ZmM2Y2QwZTMzYmMwMTY2NzE4MmQ1MWMzYjViMDAzYjg3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNjAzLDcgKzYwMyw3IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgY2xvc2VQYWdlKCk7CiAKLSAgICB2b2lkIGFkZFBsYXRmb3JtTG9h
ZFBhcmFtZXRlcnMoTG9hZFBhcmFtZXRlcnMmKTsKKyAgICB2b2lkIGFkZFBsYXRmb3JtTG9hZFBh
cmFtZXRlcnMoV2ViUHJvY2Vzc1Byb3h5JiwgTG9hZFBhcmFtZXRlcnMmKTsKICAgICBSZWZQdHI8
QVBJOjpOYXZpZ2F0aW9uPiBsb2FkUmVxdWVzdChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwg
V2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSA9IFdlYkNvcmU6OlNob3VsZE9w
ZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZEFsbG93RXh0ZXJuYWxTY2hlbWVzLCBBUEk6Ok9i
amVjdCogdXNlckRhdGEgPSBudWxscHRyKTsKICAgICBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBs
b2FkRmlsZShjb25zdCBTdHJpbmcmIGZpbGVVUkwsIGNvbnN0IFN0cmluZyYgcmVzb3VyY2VEaXJl
Y3RvcnlVUkwsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSA9IG51bGxwdHIpOwogICAgIFJlZlB0cjxB
UEk6Ok5hdmlnYXRpb24+IGxvYWREYXRhKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYsIGNvbnN0
IFN0cmluZyYgTUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZW5jb2RpbmcsIGNvbnN0IFN0cmluZyYg
YmFzZVVSTCwgQVBJOjpPYmplY3QqIHVzZXJEYXRhID0gbnVsbHB0ciwgV2ViQ29yZTo6U2hvdWxk
T3BlbkV4dGVybmFsVVJMc1BvbGljeSA9IFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3k6OlNob3VsZE5vdEFsbG93KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmgKaW5kZXggMDRmY2ZkMWNkMTZmNTdmZDY3ZDU1MjA1OWFlZWQ5YzZhMzkzOTE4My4u
MjYwZWU3NGFiMWUzOTM2ZjhiYzk1YzMzMzkzNzA4ZWI4MjEzMmY2OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTM4OCw2ICszODgsMTUgQEAgcHVibGlj
OgogCiAgICAgYm9vbCBoYXNTbGVlcERpc2FibGVyKCkgY29uc3Q7CiAKKyNpZiBQTEFURk9STShD
T0NPQSkKKyAgICBib29sIGhhc05ldHdvcmtFeHRlbnNpb25TYW5kYm94QWNjZXNzKCkgY29uc3Qg
eyByZXR1cm4gbV9oYXNOZXR3b3JrRXh0ZW5zaW9uU2FuZGJveEFjY2VzczsgfQorICAgIHZvaWQg
bWFya0hhc05ldHdvcmtFeHRlbnNpb25TYW5kYm94QWNjZXNzKCkgeyBtX2hhc05ldHdvcmtFeHRl
bnNpb25TYW5kYm94QWNjZXNzID0gdHJ1ZTsgfQorI2VuZGlmCisjaWYgUExBVEZPUk0oSU9TKQor
ICAgIGJvb2wgaGFzTWFuYWdlZFNlc3Npb25TYW5kYm94QWNjZXNzKCkgY29uc3QgeyByZXR1cm4g
bV9oYXNNYW5hZ2VkU2Vzc2lvblNhbmRib3hBY2Nlc3M7IH0KKyAgICB2b2lkIG1hcmtIYXNNYW5h
Z2VkU2Vzc2lvblNhbmRib3hBY2Nlc3MoKSB7IG1faGFzTWFuYWdlZFNlc3Npb25TYW5kYm94QWNj
ZXNzID0gdHJ1ZTsgfQorI2VuZGlmCisKIHByb3RlY3RlZDoKICAgICBXZWJQcm9jZXNzUHJveHko
V2ViUHJvY2Vzc1Bvb2wmLCBXZWJzaXRlRGF0YVN0b3JlKiwgSXNQcmV3YXJtZWQpOwogCkBAIC01
NzcsNiArNTg2LDEyIEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzUHJld2FybWVkOwogI2lmIEVO
QUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgYm9v
bCBtX2hhc0lzc3VlZEF0dGFjaG1lbnRFbGVtZW50UmVsYXRlZFNhbmRib3hFeHRlbnNpb25zIHsg
ZmFsc2UgfTsKKyNlbmRpZgorI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIGJvb2wgbV9oYXNOZXR3
b3JrRXh0ZW5zaW9uU2FuZGJveEFjY2VzcyB7IGZhbHNlIH07CisjZW5kaWYKKyNpZiBQTEFURk9S
TShJT1MpCisgICAgYm9vbCBtX2hhc01hbmFnZWRTZXNzaW9uU2FuZGJveEFjY2VzcyB7IGZhbHNl
IH07CiAjZW5kaWYKICAgICBPcHRpb25hbDxVc2VMYXp5U3RvcD4gbV9zaG91bGRTdGFydFJlc3Bv
bnNpdmVuZXNzVGltZXJXaGVuTGF1bmNoZWQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VDb2NvYS5tbQppbmRleCBhODgyY2Q3NTgz
NjYwZGY0ZGZjZDAzY2YxNjI2MGFlZGY3NmFjMDU5Li4yYzc0NDU1NDkzNGVhZTQwMTgxM2M1NDMz
YzUxNDIyODg4NDMwNWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9Db2NvYS9XZWJQYWdlQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvQ29jb2EvV2ViUGFnZUNvY29hLm1tCkBAIC00NSwxOSArNDUsMzkgQEAKICNpbXBv
cnQgPFdlYkNvcmUvSFRNTE9MaXN0RWxlbWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9IVE1MVUxp
c3RFbGVtZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hpdFRlc3RSZXN1bHQuaD4KKyNpbXBvcnQg
PFdlYkNvcmUvTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIuaD4KICNpbXBvcnQgPFdlYkNv
cmUvTm9kZVJlbmRlclN0eWxlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BheW1lbnRDb29yZGluYXRv
ci5oPgogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaD4KICNp
bXBvcnQgPFdlYkNvcmUvUmFuZ2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVyRWxlbWVudC5o
PgogCisjaWYgUExBVEZPUk0oSU9TKQorI2ltcG9ydCA8V2ViQ29yZS9QYXJlbnRhbENvbnRyb2xz
Q29udGVudEZpbHRlci5oPgorI2VuZGlmCisKICNpZiBQTEFURk9STShDT0NPQSkKIAogbmFtZXNw
YWNlIFdlYktpdCB7CiAKLXZvaWQgV2ViUGFnZTo6cGxhdGZvcm1EaWRSZWNlaXZlTG9hZFBhcmFt
ZXRlcnMoY29uc3QgTG9hZFBhcmFtZXRlcnMmIGxvYWRQYXJhbWV0ZXJzKQordm9pZCBXZWJQYWdl
OjpwbGF0Zm9ybURpZFJlY2VpdmVMb2FkUGFyYW1ldGVycyhjb25zdCBMb2FkUGFyYW1ldGVycyYg
cGFyYW1ldGVycykKIHsKLSAgICBtX2RhdGFEZXRlY3Rpb25Db250ZXh0ID0gbG9hZFBhcmFtZXRl
cnMuZGF0YURldGVjdGlvbkNvbnRleHQ7CisgICAgbV9kYXRhRGV0ZWN0aW9uQ29udGV4dCA9IHBh
cmFtZXRlcnMuZGF0YURldGVjdGlvbkNvbnRleHQ7CisKKyAgICBpZiAocGFyYW1ldGVycy5uZUhl
bHBlckV4dGVuc2lvbkhhbmRsZSkKKyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBl
cm1hbmVudGx5KCpwYXJhbWV0ZXJzLm5lSGVscGVyRXh0ZW5zaW9uSGFuZGxlKTsKKyAgICBpZiAo
cGFyYW1ldGVycy5uZVNlc3Npb25NYW5hZ2VyRXh0ZW5zaW9uSGFuZGxlKQorICAgICAgICBTYW5k
Ym94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkoKnBhcmFtZXRlcnMubmVTZXNzaW9uTWFu
YWdlckV4dGVuc2lvbkhhbmRsZSk7CisgICAgTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXI6
OnNldEhhc0NvbnN1bWVkU2FuZGJveEV4dGVuc2lvbnMocGFyYW1ldGVycy5uZUhlbHBlckV4dGVu
c2lvbkhhbmRsZS5oYXNWYWx1ZSgpICYmIHBhcmFtZXRlcnMubmVTZXNzaW9uTWFuYWdlckV4dGVu
c2lvbkhhbmRsZS5oYXNWYWx1ZSgpKTsKKworI2lmIFBMQVRGT1JNKElPUykKKyAgICBpZiAocGFy
YW1ldGVycy5jb250ZW50RmlsdGVyRXh0ZW5zaW9uSGFuZGxlKQorICAgICAgICBTYW5kYm94RXh0
ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkoKnBhcmFtZXRlcnMuY29udGVudEZpbHRlckV4dGVu
c2lvbkhhbmRsZSk7CisgICAgUGFyZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXI6OnNldEhhc0Nv
bnN1bWVkU2FuZGJveEV4dGVuc2lvbihwYXJhbWV0ZXJzLmNvbnRlbnRGaWx0ZXJFeHRlbnNpb25I
YW5kbGUuaGFzVmFsdWUoKSk7CisKKyAgICBpZiAocGFyYW1ldGVycy5mcm9udGJvYXJkU2Vydmlj
ZUV4dGVuc2lvbkhhbmRsZSkKKyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1h
bmVudGx5KCpwYXJhbWV0ZXJzLmZyb250Ym9hcmRTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlKTsKKyNl
bmRpZgogfQogCiB2b2lkIFdlYlBhZ2U6OnJlcXVlc3RBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbklu
Zm8oQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KaW5kZXggMmUxZGU2YzdiMjQ5MWZmYjY3NDJlZDNl
N2EyODExZTc1NmQwOGViNi4uY2VlY2NlZTBmNjZmM2IxZWI3NWJjMjA5MzI3ZTYwZTIyZmZlYWMz
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3ND
b2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0Nv
Y29hLm1tCkBAIC02Myw3ICs2Myw2IEBACiAjaW1wb3J0IDxXZWJDb3JlL0xvZ0luaXRpYWxpemF0
aW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL01lbW9yeVJlbGVhc2UuaD4KICNpbXBvcnQgPFdlYkNv
cmUvTlNTY3JvbGxlckltcERldGFpbHMuaD4KLSNpbXBvcnQgPFdlYkNvcmUvTmV0d29ya0V4dGVu
c2lvbkNvbnRlbnRGaWx0ZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGVyZm9ybWFuY2VMb2dnaW5n
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BpY3R1cmVJblBpY3R1cmVTdXBwb3J0Lmg+CiAjaW1wb3J0
IDxXZWJDb3JlL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oPgpAQCAtOTQsMTAgKzkzLDYgQEAK
ICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL1JlbW90ZUluc3BlY3Rvci5oPgogI2VuZGlmCiAKLSNp
ZiBQTEFURk9STShJT1MpCi0jaW1wb3J0IDxXZWJDb3JlL1BhcmVudGFsQ29udHJvbHNDb250ZW50
RmlsdGVyLmg+Ci0jZW5kaWYKLQogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAjaW1wb3J0ICJV
SUtpdFNQSS5oIgogI2ltcG9ydCA8Ym1hbGxvYy9NZW1vcnlTdGF0dXNTUEkuaD4KQEAgLTI3Miwx
MyArMjY3LDYgQEAgdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNz
KFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmEKICNpZiBQTEFURk9STShJT1MpCiAg
ICAgaWYgKHBhcmFtZXRlcnMuY29tcGlsZXJTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlKQogICAgICAg
ICBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkoKnBhcmFtZXRlcnMuY29tcGls
ZXJTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlKTsKLQotICAgIGlmIChwYXJhbWV0ZXJzLmNvbnRlbnRG
aWx0ZXJFeHRlbnNpb25IYW5kbGUpCi0gICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNvbnN1bWVQ
ZXJtYW5lbnRseSgqcGFyYW1ldGVycy5jb250ZW50RmlsdGVyRXh0ZW5zaW9uSGFuZGxlKTsKLSAg
ICBQYXJlbnRhbENvbnRyb2xzQ29udGVudEZpbHRlcjo6c2V0SGFzQ29uc3VtZWRTYW5kYm94RXh0
ZW5zaW9uKHBhcmFtZXRlcnMuY29udGVudEZpbHRlckV4dGVuc2lvbkhhbmRsZS5oYXNWYWx1ZSgp
KTsKLQotICAgIGlmIChwYXJhbWV0ZXJzLmZyb250Ym9hcmRTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxl
KQotICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkoKnBhcmFtZXRl
cnMuZnJvbnRib2FyZFNlcnZpY2VFeHRlbnNpb25IYW5kbGUpOwogI2VuZGlmCiAKICNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQpAQCAtMjg3LDEyICsyNzUsNiBAQCB2b2lkIFdlYlByb2Nlc3M6OnBs
YXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYg
cGFyYQogICAgIFNhbmRib3hFeHRlbnNpb246OmNvbnN1bWVQZXJtYW5lbnRseShwYXJhbWV0ZXJz
LmR5bmFtaWNJT0tpdEV4dGVuc2lvbkhhbmRsZXMpOwogI2VuZGlmCiAgICAgCi0gICAgaWYgKHBh
cmFtZXRlcnMubmVIZWxwZXJFeHRlbnNpb25IYW5kbGUpCi0gICAgICAgIFNhbmRib3hFeHRlbnNp
b246OmNvbnN1bWVQZXJtYW5lbnRseSgqcGFyYW1ldGVycy5uZUhlbHBlckV4dGVuc2lvbkhhbmRs
ZSk7Ci0gICAgaWYgKHBhcmFtZXRlcnMubmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZSkK
LSAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5KCpwYXJhbWV0ZXJz
Lm5lU2Vzc2lvbk1hbmFnZXJFeHRlbnNpb25IYW5kbGUpOwotICAgIE5ldHdvcmtFeHRlbnNpb25D
b250ZW50RmlsdGVyOjpzZXRIYXNDb25zdW1lZFNhbmRib3hFeHRlbnNpb25zKHBhcmFtZXRlcnMu
bmVIZWxwZXJFeHRlbnNpb25IYW5kbGUuaGFzVmFsdWUoKSAmJiBwYXJhbWV0ZXJzLm5lU2Vzc2lv
bk1hbmFnZXJFeHRlbnNpb25IYW5kbGUuaGFzVmFsdWUoKSk7Ci0KICAgICBzZXRTeXN0ZW1IYXNC
YXR0ZXJ5KHBhcmFtZXRlcnMuc3lzdGVtSGFzQmF0dGVyeSk7CiAKICNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>