<?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>100183</bug_id>
          
          <creation_ts>2012-10-23 19:56:10 -0700</creation_ts>
          <short_desc>encode should take an ArgumentEncoder reference</short_desc>
          <delta_ts>2012-10-24 09:18:41 -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>New Bugs</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>abecsi</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>menard</cc>
    
    <cc>philn</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>749262</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-10-23 19:56:10 -0700</bug_when>
    <thetext>encode should take an ArgumentEncoder reference</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749264</commentid>
    <comment_count>1</comment_count>
      <attachid>170297</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-10-23 20:00:26 -0700</bug_when>
    <thetext>Created attachment 170297
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749266</commentid>
    <comment_count>2</comment_count>
      <attachid>170298</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-10-23 20:11:12 -0700</bug_when>
    <thetext>Created attachment 170298
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749267</commentid>
    <comment_count>3</comment_count>
      <attachid>170298</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-10-23 20:17:27 -0700</bug_when>
    <thetext>Comment on attachment 170298
Patch

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

rs=me

&gt; Source/WebKit2/ChangeLog:8
&gt; +        Additional information of the change such as approach, rationale. Please add per-function descriptions below (OOPS!).

OOPS!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749270</commentid>
    <comment_count>4</comment_count>
      <attachid>170298</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2012-10-23 20:25:56 -0700</bug_when>
    <thetext>Comment on attachment 170298
Patch

Attachment 170298 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/14562014</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749271</commentid>
    <comment_count>5</comment_count>
      <attachid>170299</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-10-23 20:26:12 -0700</bug_when>
    <thetext>Created attachment 170299
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749276</commentid>
    <comment_count>6</comment_count>
      <attachid>170299</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-10-23 20:36:02 -0700</bug_when>
    <thetext>Comment on attachment 170299
Patch

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

Rubberstamp still stands.

&gt; Source/WebKit2/ChangeLog:8
&gt; +        Additional information of the change such as approach, rationale. Please add per-function descriptions below (OOPS!).

OOPS!!!i1i!I!99q</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749277</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-23 20:37:19 -0700</bug_when>
    <thetext>Attachment 170299 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit...&quot; exit_code: 1
Source/WebKit2/Shared/win/PlatformCertificateInfo.h:54:  The parameter name &quot;encoder&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 128 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749281</commentid>
    <comment_count>8</comment_count>
      <attachid>170298</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-23 20:40:32 -0700</bug_when>
    <thetext>Comment on attachment 170298
Patch

Attachment 170298 did not pass win-ews (win):
Output: http://queues.webkit.org/results/14563026</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749285</commentid>
    <comment_count>9</comment_count>
      <attachid>170299</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-23 20:54:18 -0700</bug_when>
    <thetext>Comment on attachment 170299
Patch

Attachment 170299 did not pass win-ews (win):
Output: http://queues.webkit.org/results/14563033</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749286</commentid>
    <comment_count>10</comment_count>
      <attachid>170304</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-10-23 20:54:38 -0700</bug_when>
    <thetext>Created attachment 170304
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749288</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-23 20:57:21 -0700</bug_when>
    <thetext>Attachment 170304 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit...&quot; exit_code: 1
Source/WebKit2/Shared/win/PlatformCertificateInfo.h:54:  The parameter name &quot;encoder&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 128 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749708</commentid>
    <comment_count>12</comment_count>
      <attachid>170304</attachid>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2012-10-24 08:37:21 -0700</bug_when>
    <thetext>Comment on attachment 170304
Patch

r=me assuming you fix the style error.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749737</commentid>
    <comment_count>13</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-10-24 09:18:41 -0700</bug_when>
    <thetext>Committed r132361: &lt;http://trac.webkit.org/changeset/132361&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170297</attachid>
            <date>2012-10-23 20:00:26 -0700</date>
            <delta_ts>2012-10-23 20:10:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100183-20121023195855.patch</filename>
            <type>text/plain</type>
            <size>110013</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyMjg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYzMzYjcxODRiMDQ1MjAx
YjBmMjhiYmYzYzliYjE0ODJmMGVkNjExNi4uODMxZGNkZTZiNWZjZTY0MDQwMTE3MTNlYTFiYzZi
YzI2YTc2N2U5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxMSBAQAorMjAxMi0xMC0yMyAgQW5k
ZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgorCisgICAgICAgIGVuY29kZSBzaG91
bGQgdGFrZSBhbiBBcmd1bWVudEVuY29kZXIgcmVmZXJlbmNlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDAxODMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRpdGlvbmFsIGluZm9ybWF0aW9uIG9mIHRo
ZSBjaGFuZ2Ugc3VjaCBhcyBhcHByb2FjaCwgcmF0aW9uYWxlLiBQbGVhc2UgYWRkIHBlci1mdW5j
dGlvbiBkZXNjcmlwdGlvbnMgYmVsb3cgKE9PUFMhKS4KKworICAgICAgICAqIFBsYXRmb3JtL0Nv
cmVJUEMvQXJndW1lbnRDb2Rlci5oOgorICAgICAgICAoQ29yZUlQQzo6QXJndW1lbnRDb2Rlcjo6
ZW5jb2RlKToKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL0FyZ3VtZW50cy5oOgorICAgICAg
ICAoQ29yZUlQQzo6QXJndW1lbnRzMDo6ZW5jb2RlKToKKyAgICAgICAgKENvcmVJUEM6OkFyZ3Vt
ZW50czE6OmVuY29kZSk6CisgICAgICAgIChDb3JlSVBDOjpBcmd1bWVudHMyOjplbmNvZGUpOgor
ICAgICAgICAoQ29yZUlQQzo6QXJndW1lbnRzMzo6ZW5jb2RlKToKKyAgICAgICAgKENvcmVJUEM6
OkFyZ3VtZW50czQ6OmVuY29kZSk6CisgICAgICAgIChDb3JlSVBDOjpBcmd1bWVudHM1OjplbmNv
ZGUpOgorICAgICAgICAoQ29yZUlQQzo6QXJndW1lbnRzNjo6ZW5jb2RlKToKKyAgICAgICAgKENv
cmVJUEM6OkFyZ3VtZW50czc6OmVuY29kZSk6CisgICAgICAgIChDb3JlSVBDOjpBcmd1bWVudHM4
OjplbmNvZGUpOgorICAgICAgICAoQ29yZUlQQzo6QXJndW1lbnRzMTA6OmVuY29kZSk6CisgICAg
ICAgICogUGxhdGZvcm0vQ29yZUlQQy9BdHRhY2htZW50LmNwcDoKKyAgICAgICAgKENvcmVJUEM6
OkF0dGFjaG1lbnQ6OmVuY29kZSk6CisgICAgICAgICogUGxhdGZvcm0vQ29yZUlQQy9BdHRhY2ht
ZW50Lmg6CisgICAgICAgIChBdHRhY2htZW50KToKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBD
L0RhdGFSZWZlcmVuY2UuY3BwOgorICAgICAgICAoQ29yZUlQQzo6RGF0YVJlZmVyZW5jZTo6ZW5j
b2RlKToKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL0RhdGFSZWZlcmVuY2UuaDoKKyAgICAg
ICAgKERhdGFSZWZlcmVuY2UpOgorICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvU3RyaW5nUmVm
ZXJlbmNlLmNwcDoKKyAgICAgICAgKENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZTo6ZW5jb2RlKToK
KyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL1N0cmluZ1JlZmVyZW5jZS5oOgorICAgICAgICAo
U3RyaW5nUmVmZXJlbmNlKToKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL21hYy9NYWNoUG9y
dC5oOgorICAgICAgICAoQ29yZUlQQzo6TWFjaFBvcnQ6OmVuY29kZSk6CisgICAgICAgICogUGxh
dGZvcm0vU2hhcmVkTWVtb3J5Lmg6CisgICAgICAgIChIYW5kbGUpOgorICAgICAgICAqIFBsYXRm
b3JtL21hYy9TaGFyZWRNZW1vcnlNYWMuY3BwOgorICAgICAgICAoV2ViS2l0OjpTaGFyZWRNZW1v
cnk6OkhhbmRsZTo6ZW5jb2RlKToKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1BsdWdpbkNyZWF0
aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpbkNyZWF0aW9uUGFyYW1l
dGVyczo6ZW5jb2RlKToKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1BsdWdpbkNyZWF0aW9uUGFy
YW1ldGVycy5oOgorICAgICAgICAoUGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzKToKKyAgICAgICAg
KiBTaGFyZWQvRGljdGlvbmFyeVBvcHVwSW5mby5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRpY3Rp
b25hcnlQb3B1cEluZm86OmVuY29kZSk6CisgICAgICAgICogU2hhcmVkL0RpY3Rpb25hcnlQb3B1
cEluZm8uaDoKKyAgICAgICAgKERpY3Rpb25hcnlQb3B1cEluZm8pOgorICAgICAgICAqIFNoYXJl
ZC9FZGl0b3JTdGF0ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvclN0YXRlOjplbmNvZGUp
OgorICAgICAgICAqIFNoYXJlZC9FZGl0b3JTdGF0ZS5oOgorICAgICAgICAoRWRpdG9yU3RhdGUp
OgorICAgICAgICAqIFNoYXJlZC9Gb250SW5mby5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZvbnRJ
bmZvOjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9Gb250SW5mby5oOgorICAgICAgICAoRm9u
dEluZm8pOgorICAgICAgICAqIFNoYXJlZC9MYXllclRyZWVDb250ZXh0Lmg6CisgICAgICAgIChM
YXllclRyZWVDb250ZXh0KToKKyAgICAgICAgKiBTaGFyZWQvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgIChOZXR3b3JrUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycyk6CisgICAgICAgICogU2hhcmVkL09yaWdpbkFuZERhdGFiYXNl
cy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok9yaWdpbkFuZERhdGFiYXNlczo6ZW5jb2RlKToKKyAg
ICAgICAgKiBTaGFyZWQvT3JpZ2luQW5kRGF0YWJhc2VzLmg6CisgICAgICAgIChPcmlnaW5BbmRE
YXRhYmFzZXMpOgorICAgICAgICAqIFNoYXJlZC9QbGF0Zm9ybVBvcHVwTWVudURhdGEuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybVBvcHVwTWVudURhdGE6OmVuY29kZSk6CisgICAgICAg
ICogU2hhcmVkL1BsYXRmb3JtUG9wdXBNZW51RGF0YS5oOgorICAgICAgICAoUGxhdGZvcm1Qb3B1
cE1lbnVEYXRhKToKKyAgICAgICAgKiBTaGFyZWQvUGx1Z2lucy9OUElkZW50aWZpZXJEYXRhLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6TlBJZGVudGlmaWVyRGF0YTo6ZW5jb2RlKToKKyAgICAgICAg
KiBTaGFyZWQvUGx1Z2lucy9OUElkZW50aWZpZXJEYXRhLmg6CisgICAgICAgIChOUElkZW50aWZp
ZXJEYXRhKToKKyAgICAgICAgKiBTaGFyZWQvUGx1Z2lucy9OUFZhcmlhbnREYXRhLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TlBWYXJpYW50RGF0YTo6ZW5jb2RlKToKKyAgICAgICAgKiBTaGFyZWQv
UGx1Z2lucy9OUFZhcmlhbnREYXRhLmg6CisgICAgICAgIChOUFZhcmlhbnREYXRhKToKKyAgICAg
ICAgKiBTaGFyZWQvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2Rl
KToKKyAgICAgICAgKiBTaGFyZWQvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmg6CisgICAgICAgIChQbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzKToKKyAgICAg
ICAgKiBTaGFyZWQvUHJpbnRJbmZvLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UHJpbnRJbmZvOjpl
bmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9QcmludEluZm8uaDoKKyAgICAgICAgKFByaW50SW5m
byk6CisgICAgICAgICogU2hhcmVkL1NhbmRib3hFeHRlbnNpb24uaDoKKyAgICAgICAgKEhhbmRs
ZSk6CisgICAgICAgIChIYW5kbGVBcnJheSk6CisgICAgICAgICogU2hhcmVkL1NlY3VyaXR5T3Jp
Z2luRGF0YS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNlY3VyaXR5T3JpZ2luRGF0YTo6ZW5jb2Rl
KToKKyAgICAgICAgKiBTaGFyZWQvU2VjdXJpdHlPcmlnaW5EYXRhLmg6CisgICAgICAgIChTZWN1
cml0eU9yaWdpbkRhdGEpOgorICAgICAgICAqIFNoYXJlZC9TZXNzaW9uU3RhdGUuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpTZXNzaW9uU3RhdGU6OmVuY29kZSk6CisgICAgICAgICogU2hhcmVkL1Nl
c3Npb25TdGF0ZS5oOgorICAgICAgICAoU2Vzc2lvblN0YXRlKToKKyAgICAgICAgKiBTaGFyZWQv
U2hhcmVhYmxlQml0bWFwLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U2hhcmVhYmxlQml0bWFwOjpI
YW5kbGU6OmVuY29kZSk6CisgICAgICAgICogU2hhcmVkL1NoYXJlYWJsZUJpdG1hcC5oOgorICAg
ICAgICAoSGFuZGxlKToKKyAgICAgICAgKiBTaGFyZWQvU2hhcmVkV29ya2VyUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNoYXJlZFdvcmtlclByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSk6CisgICAgICAgICogU2hhcmVkL1NoYXJlZFdvcmtl
clByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKFNoYXJlZFdvcmtlclByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMpOgorICAgICAgICAqIFNoYXJlZC9TdGF0aXN0aWNzRGF0YS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OlN0YXRpc3RpY3NEYXRhOjplbmNvZGUpOgorICAgICAgICAq
IFNoYXJlZC9TdGF0aXN0aWNzRGF0YS5oOgorICAgICAgICAoU3RhdGlzdGljc0RhdGEpOgorICAg
ICAgICAqIFNoYXJlZC9TdHJpbmdQYWlyVmVjdG9yLmg6CisgICAgICAgIChXZWJLaXQ6OlN0cmlu
Z1BhaXJWZWN0b3I6OmVuY29kZSk6CisgICAgICAgICogU2hhcmVkL1VwZGF0ZUluZm8uY3BwOgor
ICAgICAgICAoV2ViS2l0OjpVcGRhdGVJbmZvOjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9V
cGRhdGVJbmZvLmg6CisgICAgICAgIChVcGRhdGVJbmZvKToKKyAgICAgICAgKiBTaGFyZWQvVXNl
ck1lc3NhZ2VDb2RlcnMuaDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lc3NhZ2VFbmNvZGVyOjpi
YXNlRW5jb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51SXRlbURhdGE6OmVuY29kZSk6CisgICAg
ICAgICogU2hhcmVkL1dlYkNvbnRleHRNZW51SXRlbURhdGEuaDoKKyAgICAgICAgKFdlYkNvbnRl
eHRNZW51SXRlbURhdGEpOgorICAgICAgICAqIFNoYXJlZC9XZWJFdmVudC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYkV2ZW50OjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJFdmVudC5o
OgorICAgICAgICAoV2ViRXZlbnQpOgorICAgICAgICAoV2ViTW91c2VFdmVudCk6CisgICAgICAg
IChXZWJXaGVlbEV2ZW50KToKKyAgICAgICAgKFdlYktleWJvYXJkRXZlbnQpOgorICAgICAgICAo
V2ViR2VzdHVyZUV2ZW50KToKKyAgICAgICAgKFdlYlBsYXRmb3JtVG91Y2hQb2ludCk6CisgICAg
ICAgIChXZWJUb3VjaEV2ZW50KToKKyAgICAgICAgKiBTaGFyZWQvV2ViR2VvbG9jYXRpb25Qb3Np
dGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uUG9zaXRpb246OkRhdGE6
OmVuY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uaDoKKyAg
ICAgICAgKERhdGEpOgorICAgICAgICAqIFNoYXJlZC9XZWJHZXN0dXJlRXZlbnQuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJHZXN0dXJlRXZlbnQ6OmVuY29kZSk6CisgICAgICAgICogU2hhcmVk
L1dlYkhpdFRlc3RSZXN1bHQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJIaXRUZXN0UmVzdWx0
OjpEYXRhOjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJIaXRUZXN0UmVzdWx0Lmg6Cisg
ICAgICAgIChEYXRhKToKKyAgICAgICAgKiBTaGFyZWQvV2ViS2V5Ym9hcmRFdmVudC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYktleWJvYXJkRXZlbnQ6OmVuY29kZSk6CisgICAgICAgICogU2hh
cmVkL1dlYk1vdXNlRXZlbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJNb3VzZUV2ZW50Ojpl
bmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJOYXZpZ2F0aW9uRGF0YVN0b3JlLmg6CisgICAg
ICAgIChXZWJLaXQ6OldlYk5hdmlnYXRpb25EYXRhU3RvcmU6OmVuY29kZSk6CisgICAgICAgICog
U2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQ
YWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgIChXZWJQYWdlQ3JlYXRpb25QYXJhbWV0
ZXJzKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUGFnZUdyb3VwRGF0YS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VHcm91cERhdGE6OmVuY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYlBh
Z2VHcm91cERhdGEuaDoKKyAgICAgICAgKFdlYlBhZ2VHcm91cERhdGEpOgorICAgICAgICAqIFNo
YXJlZC9XZWJQb3B1cEl0ZW0uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cEl0ZW06OmVu
Y29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYlBvcHVwSXRlbS5oOgorICAgICAgICAqIFNoYXJl
ZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJlZmVyZW5j
ZXNTdG9yZTo6ZW5jb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5o
OgorICAgICAgICAoV2ViUHJlZmVyZW5jZXNTdG9yZSk6CisgICAgICAgICogU2hhcmVkL1dlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgIChXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzKToKKyAgICAgICAgKiBTaGFyZWQvV2ViV2hlZWxFdmVudC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYldoZWVsRXZlbnQ6OmVuY29kZSk6CisgICAgICAgICogU2hhcmVkL21hYy9BdHRyaWJ1
dGVkU3RyaW5nLmg6CisgICAgICAgIChBdHRyaWJ1dGVkU3RyaW5nKToKKyAgICAgICAgKiBTaGFy
ZWQvbWFjL0F0dHJpYnV0ZWRTdHJpbmcubW06CisgICAgICAgIChXZWJLaXQ6OkF0dHJpYnV0ZWRT
dHJpbmc6OmVuY29kZSk6CisgICAgICAgICogU2hhcmVkL21hYy9Db2xvclNwYWNlRGF0YS5oOgor
ICAgICAgICAoQ29sb3JTcGFjZURhdGEpOgorICAgICAgICAqIFNoYXJlZC9tYWMvQ29sb3JTcGFj
ZURhdGEubW06CisgICAgICAgIChXZWJLaXQ6OkNvbG9yU3BhY2VEYXRhOjplbmNvZGUpOgorICAg
ICAgICAqIFNoYXJlZC9tYWMvTGF5ZXJUcmVlQ29udGV4dE1hYy5tbToKKyAgICAgICAgKFdlYktp
dDo6TGF5ZXJUcmVlQ29udGV4dDo6ZW5jb2RlKToKKyAgICAgICAgKiBTaGFyZWQvbWFjL1BsYXRm
b3JtQ2VydGlmaWNhdGVJbmZvLmg6CisgICAgICAgIChQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyk6
CisgICAgICAgICogU2hhcmVkL21hYy9QbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5tbToKKyAgICAg
ICAgKFdlYktpdDo6UGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm86OmVuY29kZSk6CisgICAgICAgICog
U2hhcmVkL21hYy9TYW5kYm94RXh0ZW5zaW9uTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGU6OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6OlNhbmRib3hF
eHRlbnNpb246OkhhbmRsZUFycmF5OjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9tYWMvU2Vj
SXRlbVJlcXVlc3REYXRhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U2VjSXRlbVJlcXVlc3REYXRh
OjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9tYWMvU2VjSXRlbVJlcXVlc3REYXRhLmg6Cisg
ICAgICAgICogU2hhcmVkL21hYy9TZWNJdGVtUmVzcG9uc2VEYXRhLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6U2VjSXRlbVJlc3BvbnNlRGF0YTo6ZW5jb2RlKToKKyAgICAgICAgKiBTaGFyZWQvbWFj
L1NlY0l0ZW1SZXNwb25zZURhdGEuaDoKKyAgICAgICAgKFNlY0l0ZW1SZXNwb25zZURhdGEpOgor
ICAgICAgICAqIFNoYXJlZC9tYWMvU2VjS2V5Y2hhaW5JdGVtUmVxdWVzdERhdGEuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpTZWNLZXljaGFpbkl0ZW1SZXF1ZXN0RGF0YTo6ZW5jb2RlKToKKyAgICAg
ICAgKiBTaGFyZWQvbWFjL1NlY0tleWNoYWluSXRlbVJlcXVlc3REYXRhLmg6CisgICAgICAgICog
U2hhcmVkL21hYy9TZWNLZXljaGFpbkl0ZW1SZXNwb25zZURhdGEuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpTZWNLZXljaGFpbkl0ZW1SZXNwb25zZURhdGE6OmVuY29kZSk6CisgICAgICAgICogU2hh
cmVkL21hYy9TZWNLZXljaGFpbkl0ZW1SZXNwb25zZURhdGEuaDoKKyAgICAgICAgKFNlY0tleWNo
YWluSXRlbVJlc3BvbnNlRGF0YSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHRVc2Vy
TWVzc2FnZUNvZGVycy5oOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0VXNlck1lc3NhZ2VF
bmNvZGVyOjplbmNvZGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUNvZGVycy5oOgorICAgICAgICAoV2ViS2l0OjpJbmplY3Rl
ZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2Rlcjo6ZW5jb2RlKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luOjpQYXJhbWV0ZXJz
OjplbmNvZGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uaDoKKyAgICAg
ICAgKFBhcmFtZXRlcnMpOgorCiAyMDEyLTEwLTIzICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5z
b25AaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtTb3VwXSBJbXBsZW1lbnQgdGhlIGRlZmF1
bHQgYXV0aGVudGljYXRpb24gZGlhbG9nIHZpYSBXZWJDb3JlU3VwcG9ydApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudENvZGVyLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0FyZ3VtZW50Q29kZXIuaAppbmRleCBiZDE1ZjUxNmNm
ZjY2NjJmYzQ4MmFjZDI0MmNmMmUzNmNkZjc0MmM4Li40YmFhYjlmZTRmOTIzMTQ3NmNiYzI3Y2Nk
NDAwOTViNzdhYWU4Y2U3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL0FyZ3VtZW50Q29kZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBD
L0FyZ3VtZW50Q29kZXIuaApAQCAtMzQsNyArMzQsNyBAQCBjbGFzcyBBcmd1bWVudERlY29kZXI7
CiBjbGFzcyBBcmd1bWVudEVuY29kZXI7CiAgICAgCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1
Y3QgQXJndW1lbnRDb2RlciB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2Rl
ciogZW5jb2RlciwgY29uc3QgVCYgdCkKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCBUJiB0KQogICAgIHsKICAgICAgICAgdC5lbmNvZGUoZW5j
b2Rlcik7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQ
Qy9Bcmd1bWVudHMuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnRz
LmgKaW5kZXggMWQ0YzVkYzRlZGJmMmZmY2UyYjkzMjNmODJhMWNhYTU5OTdlNmE4Yy4uN2VkOTRk
OGI5NmRkOGQ4MDJhZTJmODlkZmQ0NTIwNDNiYTM0YTZjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudHMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybS9Db3JlSVBDL0FyZ3VtZW50cy5oCkBAIC0zNSw3ICszNSw3IEBAIG5hbWVzcGFjZSBD
b3JlSVBDIHsKIHN0cnVjdCBBcmd1bWVudHMwIHsKICAgICB0eXBlZGVmIEFyZ3VtZW50czAgVmFs
dWVUeXBlOwogCi0gICAgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyKikgY29uc3QgCisgICAg
dm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJikgY29uc3QgCiAgICAgewogICAgIH0KIApAQCAt
NTcsOSArNTcsOSBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUMT4gc3RydWN0IEFyZ3VtZW50czEgewog
ICAgIHsKICAgICB9CiAKLSAgICB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXIqIGVuY29kZXIp
IGNvbnN0IAorICAgIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QK
ICAgICB7Ci0gICAgICAgIGVuY29kZXItPmVuY29kZShhcmd1bWVudDEpOworICAgICAgICBlbmNv
ZGVyLmVuY29kZShhcmd1bWVudDEpOwogICAgIH0KIAogICAgIHN0YXRpYyBib29sIGRlY29kZShB
cmd1bWVudERlY29kZXIqIGRlY29kZXIsIEFyZ3VtZW50czEmIHJlc3VsdCkKQEAgLTg0LDEwICs4
NCwxMCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDI+IHN0cnVjdCBBcmd1bWVu
dHMyIDogQXJndW1lbnRzMTxUMT4gewogICAgIHsKICAgICB9CiAKLSAgICB2b2lkIGVuY29kZShB
cmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0IAorICAgIHZvaWQgZW5jb2RlKEFyZ3VtZW50
RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICB7CiAgICAgICAgIEFyZ3VtZW50czE8VDE+Ojpl
bmNvZGUoZW5jb2Rlcik7Ci0gICAgICAgIGVuY29kZXItPmVuY29kZShhcmd1bWVudDIpOworICAg
ICAgICBlbmNvZGVyLmVuY29kZShhcmd1bWVudDIpOwogICAgIH0KIAogICAgIHN0YXRpYyBib29s
IGRlY29kZShBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIEFyZ3VtZW50czImIHJlc3VsdCkKQEAg
LTExNiwxMCArMTE2LDEwIEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlw
ZW5hbWUgVDM+IHN0cnVjdCBBcmd1bWVudHMzIDogQXJndW1lbnRzMjxUCiAgICAgewogICAgIH0K
IAotICAgIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QgCisgICAg
dm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIHsKICAgICAg
ICAgQXJndW1lbnRzMjxUMSwgVDI+OjplbmNvZGUoZW5jb2Rlcik7Ci0gICAgICAgIGVuY29kZXIt
PmVuY29kZShhcmd1bWVudDMpOworICAgICAgICBlbmNvZGVyLmVuY29kZShhcmd1bWVudDMpOwog
ICAgIH0KIAogICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXIqIGRlY29kZXIs
IEFyZ3VtZW50czMmIHJlc3VsdCkKQEAgLTE0OSwxMCArMTQ5LDEwIEBAIHRlbXBsYXRlPHR5cGVu
YW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0PiBzdHJ1Y3QgQXJn
dW1lbnRzNCA6CiAgICAgewogICAgIH0KIAotICAgIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2Rl
ciogZW5jb2RlcikgY29uc3QKKyAgICB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29k
ZXIpIGNvbnN0CiAgICAgewogICAgICAgICBBcmd1bWVudHMzPFQxLCBUMiwgVDM+OjplbmNvZGUo
ZW5jb2Rlcik7Ci0gICAgICAgIGVuY29kZXItPmVuY29kZShhcmd1bWVudDQpOworICAgICAgICBl
bmNvZGVyLmVuY29kZShhcmd1bWVudDQpOwogICAgIH0KICAgICAKICAgICBzdGF0aWMgYm9vbCBk
ZWNvZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBBcmd1bWVudHM0JiByZXN1bHQpCkBAIC0x
ODMsMTAgKzE4MywxMCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVu
YW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDU+IHN0cnVjdAogICAgIHsKICAgICB9CiAK
LSAgICB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0CisgICAgdm9p
ZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIHsKICAgICAgICAg
QXJndW1lbnRzNDxUMSwgVDIsIFQzLCBUND46OmVuY29kZShlbmNvZGVyKTsKLSAgICAgICAgZW5j
b2Rlci0+ZW5jb2RlKGFyZ3VtZW50NSk7CisgICAgICAgIGVuY29kZXIuZW5jb2RlKGFyZ3VtZW50
NSk7CiAgICAgfQogICAgIAogICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXIq
IGRlY29kZXIsIEFyZ3VtZW50czUmIHJlc3VsdCkKQEAgLTIxOCwxMCArMjE4LDEwIEBAIHRlbXBs
YXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0
eXBlbmFtZSBUNSwgdHlwZW5hCiAgICAgewogICAgIH0KIAotICAgIHZvaWQgZW5jb2RlKEFyZ3Vt
ZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKKyAgICB2b2lkIGVuY29kZShBcmd1bWVudEVuY29k
ZXImIGVuY29kZXIpIGNvbnN0CiAgICAgewogICAgICAgICBBcmd1bWVudHM1PFQxLCBUMiwgVDMs
IFQ0LCBUNT46OmVuY29kZShlbmNvZGVyKTsKLSAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKGFyZ3Vt
ZW50Nik7CisgICAgICAgIGVuY29kZXIuZW5jb2RlKGFyZ3VtZW50Nik7CiAgICAgfQogICAgIAog
ICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIEFyZ3VtZW50
czYmIHJlc3VsdCkKQEAgLTI1NCwxMCArMjU0LDEwIEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQxLCB0
eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwgdHlwZW5h
CiAgICAgewogICAgIH0KIAotICAgIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciogZW5jb2Rl
cikgY29uc3QKKyAgICB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0
CiAgICAgewogICAgICAgICBBcmd1bWVudHM2PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDY+OjplbmNv
ZGUoZW5jb2Rlcik7Ci0gICAgICAgIGVuY29kZXItPmVuY29kZShhcmd1bWVudDcpOworICAgICAg
ICBlbmNvZGVyLmVuY29kZShhcmd1bWVudDcpOwogICAgIH0KICAgICAKICAgICBzdGF0aWMgYm9v
bCBkZWNvZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBBcmd1bWVudHM3JiByZXN1bHQpCkBA
IC0yODksMTAgKzI4OSwxMCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5
cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsIHR5cGVuYQogICAgIHsKICAgICB9
CiAKLSAgICB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0CisgICAg
dm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIHsKICAgICAg
ICAgQXJndW1lbnRzNzxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNz46OmVuY29kZShlbmNvZGVy
KTsKLSAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKGFyZ3VtZW50OCk7CisgICAgICAgIGVuY29kZXIu
ZW5jb2RlKGFyZ3VtZW50OCk7CiAgICAgfQogCiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3Vt
ZW50RGVjb2RlciogZGVjb2RlciwgQXJndW1lbnRzOCYgcmVzdWx0KQpAQCAtMzI3LDExICszMjcs
MTEgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlw
ZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LCB0eXBlbmEKICAgICB7CiAgICAgfQogCi0gICAgdm9pZCBl
bmNvZGUoQXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAorICAgIHZvaWQgZW5jb2RlKEFy
Z3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICB7CiAgICAgICAgIEFyZ3VtZW50czg8
VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4Pjo6ZW5jb2RlKGVuY29kZXIpOwotICAgICAg
ICBlbmNvZGVyLT5lbmNvZGUoYXJndW1lbnQ5KTsKLSAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKGFy
Z3VtZW50MTApOworICAgICAgICBlbmNvZGVyLmVuY29kZShhcmd1bWVudDkpOworICAgICAgICBl
bmNvZGVyLmVuY29kZShhcmd1bWVudDEwKTsKICAgICB9CiAKICAgICBzdGF0aWMgYm9vbCBkZWNv
ZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBBcmd1bWVudHMxMCYgcmVzdWx0KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9BdHRhY2htZW50LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXR0YWNobWVudC5jcHAKaW5kZXggZDY5NTJh
ZTQ2YWJhY2YwMzcyOTZlMmYwNThjODZiZGJjMTk4OGVhZC4uOGY0Nzc0ODU4NDU4MTVmYTQ2M2Yx
ZThjZDVmNzNhNTIxM2VkOWM0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
Q29yZUlQQy9BdHRhY2htZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL0F0dGFjaG1lbnQuY3BwCkBAIC01OSw5ICs1OSw5IEBAIHZvaWQgQXR0YWNobWVudDo6cmVs
ZWFzZSgpCiB9CiAjZW5kaWYKIAotdm9pZCBBdHRhY2htZW50OjplbmNvZGUoQXJndW1lbnRFbmNv
ZGVyKiBlbmNvZGVyKSBjb25zdAordm9pZCBBdHRhY2htZW50OjplbmNvZGUoQXJndW1lbnRFbmNv
ZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXItPmFkZEF0dGFjaG1lbnQoKnRoaXMp
OworICAgIGVuY29kZXIuYWRkQXR0YWNobWVudCgqdGhpcyk7CiB9CiAKIGJvb2wgQXR0YWNobWVu
dDo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgQXR0YWNobWVudCYgYXR0YWNobWVu
dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXR0YWNobWVu
dC5oIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9BdHRhY2htZW50LmgKaW5kZXgg
MDVhYjkwNzkzMjEzZWEzYjQ3NTYxNDFjYjQ1N2NhZmY1NmFmNWIwZi4uZGQyNmIzYTc2ODI0MDk3
Yzc5YjIwZGM0MjkxNzA3OWNkODZjNjg4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vQ29yZUlQQy9BdHRhY2htZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
Q29yZUlQQy9BdHRhY2htZW50LmgKQEAgLTgyLDcgKzgyLDcgQEAgcHVibGljOgogICAgIHZvaWQg
ZGlzcG9zZSgpOwogI2VuZGlmCiAKLSAgICB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXIqKSBj
b25zdDsKKyAgICB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImKSBjb25zdDsKICAgICBzdGF0
aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyKiwgQXR0YWNobWVudCYpOwogICAgIAogcHJp
dmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvRGF0YVJl
ZmVyZW5jZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0RhdGFSZWZlcmVu
Y2UuY3BwCmluZGV4IDA3OThjM2UwZWZjMmVjNmYyOGMwY2UxYzJiOWRkMzlkOTExZjhhZmQuLmEx
NDQ5ODYyYzk4MmMxYWFhZjEzMWI1YTUyOWUxNTU2NzljZTg1YzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvRGF0YVJlZmVyZW5jZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9EYXRhUmVmZXJlbmNlLmNwcApAQCAtMzEsOSArMzEs
OSBAQAogCiBuYW1lc3BhY2UgQ29yZUlQQyB7CiAKLXZvaWQgRGF0YVJlZmVyZW5jZTo6ZW5jb2Rl
KEFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKK3ZvaWQgRGF0YVJlZmVyZW5jZTo6ZW5j
b2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyLT5lbmNv
ZGVWYXJpYWJsZUxlbmd0aEJ5dGVBcnJheSgqdGhpcyk7CisgICAgZW5jb2Rlci5lbmNvZGVWYXJp
YWJsZUxlbmd0aEJ5dGVBcnJheSgqdGhpcyk7CiB9CiAKIGJvb2wgRGF0YVJlZmVyZW5jZTo6ZGVj
b2RlKEFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgRGF0YVJlZmVyZW5jZSYgZGF0YVJlZmVyZW5j
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvRGF0YVJlZmVy
ZW5jZS5oIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9EYXRhUmVmZXJlbmNlLmgK
aW5kZXggNWVkMDQ0M2MzMGZhYzliMmRkNjdmNTRkMGJhZDIwNWQ3OWY3Nzc2ZC4uYTBjZThjMzE5
Y2ZjYjJjMDFmM2Y3ZGJjZDhkYzMyODhkY2JlN2U1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vQ29yZUlQQy9EYXRhUmVmZXJlbmNlLmgKKysrIGIvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vQ29yZUlQQy9EYXRhUmVmZXJlbmNlLmgKQEAgLTcyLDcgKzcyLDcgQEAgcHVibGlj
OgogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KIAotICAgIHZvaWQgZW5jb2RlKEFyZ3Vt
ZW50RW5jb2RlciogZW5jb2RlcikgY29uc3Q7CisgICAgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNv
ZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciogZGVj
b2RlciwgRGF0YVJlZmVyZW5jZSYgZGF0YVJlZmVyZW5jZSk7CiAKIHByaXZhdGU6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL1N0cmluZ1JlZmVyZW5jZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL1N0cmluZ1JlZmVyZW5jZS5jcHAKaW5k
ZXggNTZlOGMxYTM3YzAxMWRhMDkyNjA1ZjkyODZkMzI0MDEyMjI2MDhmNC4uZTY2Njg1YWU1ZDZi
ZTFlOGY3MzM4Yjk1NDQ3ZDI0ZDIwNzRlM2NmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vQ29yZUlQQy9TdHJpbmdSZWZlcmVuY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtL0NvcmVJUEMvU3RyaW5nUmVmZXJlbmNlLmNwcApAQCAtMzMsOSArMzMsOSBAQAog
CiBuYW1lc3BhY2UgQ29yZUlQQyB7CiAKLXZvaWQgU3RyaW5nUmVmZXJlbmNlOjplbmNvZGUoQXJn
dW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAordm9pZCBTdHJpbmdSZWZlcmVuY2U6OmVuY29k
ZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2Rlci0+ZW5jb2Rl
VmFyaWFibGVMZW5ndGhCeXRlQXJyYXkoRGF0YVJlZmVyZW5jZShyZWludGVycHJldF9jYXN0PGNv
bnN0IHVpbnQ4X3QqPihtX2RhdGEpLCBtX3NpemUpKTsKKyAgICBlbmNvZGVyLmVuY29kZVZhcmlh
YmxlTGVuZ3RoQnl0ZUFycmF5KERhdGFSZWZlcmVuY2UocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1
aW50OF90Kj4obV9kYXRhKSwgbV9zaXplKSk7CiB9CiAKIGJvb2wgU3RyaW5nUmVmZXJlbmNlOjpk
ZWNvZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBTdHJpbmdSZWZlcmVuY2UmIHJlc3VsdCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvU3RyaW5nUmVmZXJl
bmNlLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL1N0cmluZ1JlZmVyZW5jZS5o
CmluZGV4IGVkNDgyZTUzZjZkYWQ2MzI1YjJkOTdiM2JjOGUxOGVlYzU2NjYxZTYuLmJhNDM4MWQ0
ZDFlOWQzMDJiZjA0Y2M3ZjM5M2NkMzA0N2M4M2FhMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtL0NvcmVJUEMvU3RyaW5nUmVmZXJlbmNlLmgKKysrIGIvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vQ29yZUlQQy9TdHJpbmdSZWZlcmVuY2UuaApAQCAtNjQsNyArNjQsNyBAQCBw
dWJsaWM6CiAgICAgICAgIHJldHVybiBhLm1fc2l6ZSA9PSBiLm1fc2l6ZSAmJiAhbWVtY21wKGEu
bV9kYXRhLCBiLm1fZGF0YSwgYS5tX3NpemUpOwogICAgIH0KIAotICAgIHZvaWQgZW5jb2RlKEFy
Z3VtZW50RW5jb2RlciopIGNvbnN0OworICAgIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYp
IGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXIqLCBTdHJpbmdS
ZWZlcmVuY2UmKTsKIAogICAgIHN0cnVjdCBIYXNoIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtL0NvcmVJUEMvbWFjL01hY2hQb3J0LmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9Db3JlSVBDL21hYy9NYWNoUG9ydC5oCmluZGV4IGVjY2UxNmU3NDkyNzVmMzViY2RkMGY0
YzYxMzRmOGIzODhjNGM1YjIuLmM0OTZhNTAxN2JiN2U3MDNjMmJhM2FlZjQ4ODc0NDQ2Mzg2NDlh
MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvbWFjL01hY2hQ
b3J0LmgKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9tYWMvTWFjaFBvcnQu
aApAQCAtNDYsOSArNDYsOSBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAotICAgIHZvaWQgZW5j
b2RlKEFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKKyAgICB2b2lkIGVuY29kZShBcmd1
bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgewotICAgICAgICBlbmNvZGVyLT5lbmNv
ZGUoQXR0YWNobWVudChtX3BvcnQsIG1fZGlzcG9zaXRpb24pKTsKKyAgICAgICAgZW5jb2Rlci5l
bmNvZGUoQXR0YWNobWVudChtX3BvcnQsIG1fZGlzcG9zaXRpb24pKTsKICAgICB9CiAKICAgICBz
dGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBNYWNoUG9ydCYgcCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL1NoYXJlZE1lbW9yeS5oIGIvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vU2hhcmVkTWVtb3J5LmgKaW5kZXggMGQ1NmJhY2M2ZTRmMGY2
M2FjMTRiYWQ0ZjBkZTRhNDE4NzJlNTA0My4uNDZkMDMyYTUxYzNiMDJhMjEzOWZlNjE4ZDE0ODQ5
YWNmNzNlOWQ3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vU2hhcmVkTWVt
b3J5LmgKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vU2hhcmVkTWVtb3J5LmgKQEAgLTU3
LDcgKzU3LDcgQEAgcHVibGljOgogCiAgICAgICAgIGJvb2wgaXNOdWxsKCkgY29uc3Q7CiAKLSAg
ICAgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKikgY29uc3Q7CisgICAg
ICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OwogICAgICAg
ICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgSGFuZGxlJik7
CiAKICNpZiBVU0UoVU5JWF9ET01BSU5fU09DS0VUUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtL21hYy9TaGFyZWRNZW1vcnlNYWMuY3BwIGIvU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vbWFjL1NoYXJlZE1lbW9yeU1hYy5jcHAKaW5kZXggNDAxOWE4ZDg1NzllNzk4YWQzYTJj
YjUwNzYxYzlkNzc1Nzg0Yzc1NC4uNGE5ZDAzZmZhNjVlMWMwMDI1ZjhhN2Y4Njc3NWNjNWEwNjky
ZTJhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vbWFjL1NoYXJlZE1lbW9y
eU1hYy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vbWFjL1NoYXJlZE1lbW9yeU1h
Yy5jcHAKQEAgLTU1LDEwICs1NSwxMCBAQCBib29sIFNoYXJlZE1lbW9yeTo6SGFuZGxlOjppc051
bGwoKSBjb25zdAogICAgIHJldHVybiAhbV9wb3J0OwogfQogCi12b2lkIFNoYXJlZE1lbW9yeTo6
SGFuZGxlOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAor
dm9pZCBTaGFyZWRNZW1vcnk6OkhhbmRsZTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyLT5lbmNvZGUoc3RhdGljX2Nhc3Q8dWlu
dDY0X3Q+KG1fc2l6ZSkpOwotICAgIGVuY29kZXItPmVuY29kZShDb3JlSVBDOjpNYWNoUG9ydCht
X3BvcnQsIE1BQ0hfTVNHX1RZUEVfTU9WRV9TRU5EKSk7CisgICAgZW5jb2Rlci5lbmNvZGUoc3Rh
dGljX2Nhc3Q8dWludDY0X3Q+KG1fc2l6ZSkpOworICAgIGVuY29kZXIuZW5jb2RlKENvcmVJUEM6
Ok1hY2hQb3J0KG1fcG9ydCwgTUFDSF9NU0dfVFlQRV9NT1ZFX1NFTkQpKTsKICAgICBtX3BvcnQg
PSBNQUNIX1BPUlRfTlVMTDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGx1Z2lu
UHJvY2Vzcy9QbHVnaW5DcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdDIvUGx1
Z2luUHJvY2Vzcy9QbHVnaW5DcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IGJjMmU5OTI5YzBk
MTU5OWJmOGRmZDNjYjY4ZTVmNGMxMzBkNmFmMDcuLmM1YWFmYWI2ZjgxYzA1NjAyOWU4YmZlZmNl
ZGFlZmEyYzdkZjA3M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3Mv
UGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Q
cm9jZXNzL1BsdWdpbkNyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTQ1LDE5ICs0NSwxOSBAQCBQ
bHVnaW5DcmVhdGlvblBhcmFtZXRlcnM6OlBsdWdpbkNyZWF0aW9uUGFyYW1ldGVycygpCiB7CiB9
CiAKLXZvaWQgUGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoQ29yZUlQQzo6QXJndW1l
bnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAordm9pZCBQbHVnaW5DcmVhdGlvblBhcmFtZXRlcnM6
OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAg
ZW5jb2Rlci0+ZW5jb2RlKHBsdWdpbkluc3RhbmNlSUQpOwotICAgIGVuY29kZXItPmVuY29kZSh3
aW5kb3dOUE9iamVjdElEKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUocGFyYW1ldGVycyk7Ci0gICAg
ZW5jb2Rlci0+ZW5jb2RlKHVzZXJBZ2VudCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGNvbnRlbnRz
U2NhbGVGYWN0b3IpOwotICAgIGVuY29kZXItPmVuY29kZShpc1ByaXZhdGVCcm93c2luZ0VuYWJs
ZWQpOwotICAgIGVuY29kZXItPmVuY29kZShhc3luY2hyb25vdXNDcmVhdGlvbkluY29tcGxldGUp
OwotICAgIGVuY29kZXItPmVuY29kZShhcnRpZmljaWFsUGx1Z2luSW5pdGlhbGl6YXRpb25EZWxh
eUVuYWJsZWQpOworICAgIGVuY29kZXIuZW5jb2RlKHBsdWdpbkluc3RhbmNlSUQpOworICAgIGVu
Y29kZXIuZW5jb2RlKHdpbmRvd05QT2JqZWN0SUQpOworICAgIGVuY29kZXIuZW5jb2RlKHBhcmFt
ZXRlcnMpOworICAgIGVuY29kZXIuZW5jb2RlKHVzZXJBZ2VudCk7CisgICAgZW5jb2Rlci5lbmNv
ZGUoY29udGVudHNTY2FsZUZhY3Rvcik7CisgICAgZW5jb2Rlci5lbmNvZGUoaXNQcml2YXRlQnJv
d3NpbmdFbmFibGVkKTsKKyAgICBlbmNvZGVyLmVuY29kZShhc3luY2hyb25vdXNDcmVhdGlvbklu
Y29tcGxldGUpOworICAgIGVuY29kZXIuZW5jb2RlKGFydGlmaWNpYWxQbHVnaW5Jbml0aWFsaXph
dGlvbkRlbGF5RW5hYmxlZCk7CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0g
ICAgZW5jb2Rlci0+ZW5jb2RlKGlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQpOworICAg
IGVuY29kZXIuZW5jb2RlKGlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQpOwogI2VuZGlm
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ3Jl
YXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNy
ZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IDZmMDViZGFhYmY0YzA5MzI4M2Q1YjAzNDNhMDk2MTEx
YzRmMDMwZmEuLjEzODdmMTQwZWI5NzI2YTU1N2QyMjg1ZDM1NDU2NjI4NzU3ZjQ4OGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ3JlYXRpb25QYXJhbWV0
ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5DcmVhdGlvblBh
cmFtZXRlcnMuaApAQCAtNDAsNyArNDAsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIHN0cnVjdCBQ
bHVnaW5DcmVhdGlvblBhcmFtZXRlcnMgewogICAgIFBsdWdpbkNyZWF0aW9uUGFyYW1ldGVycygp
OwogCi0gICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKikgY29uc3Q7Cisg
ICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CiAgICAgc3Rh
dGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIFBsdWdpbkNyZWF0aW9u
UGFyYW1ldGVycyYpOwogCiAgICAgLy8gVGhlIHVuaXF1ZSBJRCBvZiB0aGlzIHBsdWctaW4gaW5z
dGFuY2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRGljdGlvbmFyeVBvcHVw
SW5mby5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRGljdGlvbmFyeVBvcHVwSW5mby5jcHAK
aW5kZXggN2U2ZGYzYTVjYmZjOGM2N2M4NGQ3YjY3ODU3ZmM3YzQ5ZTE1N2E3YS4uYTQ0ZDk5YzRh
ZGMzMTI5MDg1ZDNmZmFiYmZlNzY3OTkzNmI2NTliYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL0RpY3Rpb25hcnlQb3B1cEluZm8uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9EaWN0aW9uYXJ5UG9wdXBJbmZvLmNwcApAQCAtMzQsMTcgKzM0LDE3IEBACiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCi12b2lkIERpY3Rpb25hcnlQb3B1cEluZm86OmVuY29kZShDb3JlSVBD
OjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Cit2b2lkIERpY3Rpb25hcnlQb3B1cElu
Zm86OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0g
ICAgZW5jb2Rlci0+ZW5jb2RlKG9yaWdpbik7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGZvbnRJbmZv
KTsKLSAgICBlbmNvZGVyLT5lbmNvZGVFbnVtKHR5cGUpOworICAgIGVuY29kZXIuZW5jb2RlKG9y
aWdpbik7CisgICAgZW5jb2Rlci5lbmNvZGUoZm9udEluZm8pOworICAgIGVuY29kZXIuZW5jb2Rl
RW51bSh0eXBlKTsKIAogI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgYm9vbCBoYWRPcHRpb25zID0gb3B0aW9uczsKLSAgICBl
bmNvZGVyLT5lbmNvZGUoaGFkT3B0aW9ucyk7CisgICAgZW5jb2Rlci5lbmNvZGUoaGFkT3B0aW9u
cyk7CiAgICAgaWYgKGhhZE9wdGlvbnMpCi0gICAgICAgIENvcmVJUEM6OmVuY29kZShlbmNvZGVy
LCBvcHRpb25zLmdldCgpKTsKKyAgICAgICAgQ29yZUlQQzo6ZW5jb2RlKCZlbmNvZGVyLCBvcHRp
b25zLmdldCgpKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvRGljdGlvbmFyeVBvcHVwSW5mby5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0RpY3Rpb25h
cnlQb3B1cEluZm8uaAppbmRleCBiY2VjMDRjNDVmMTIzMjM2NjlkODVjZmEzNjgxYmU3YmJhMTRm
MzU0Li4yN2ViNmRiMzdhOTlhOGZjNTkxNjczM2JjMTIwNWY3ZjgzNDIzODM1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRGljdGlvbmFyeVBvcHVwSW5mby5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9EaWN0aW9uYXJ5UG9wdXBJbmZvLmgKQEAgLTQxLDcgKzQxLDcgQEAg
bmFtZXNwYWNlIENvcmVJUEMgewogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHN0cnVjdCBEaWN0aW9u
YXJ5UG9wdXBJbmZvIHsKLSAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIq
KSBjb25zdDsKKyAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25z
dDsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgRGlj
dGlvbmFyeVBvcHVwSW5mbyYpOwogCiAgICAgZW51bSBUeXBlIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9FZGl0b3JTdGF0ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
RWRpdG9yU3RhdGUuY3BwCmluZGV4IDZlNDRhMGYxNWE1MDkzY2Q1YjEwZWFjYWQ3ZWIwMDdlNGVm
YTI1NzEuLmI4ZDY0MGE3ZmNiYWU3NTkxYjM3NTg0NjFmZjUyNjUwOTM4MTk3ZWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9FZGl0b3JTdGF0ZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL0VkaXRvclN0YXRlLmNwcApAQCAtMzEsMjUgKzMxLDI1IEBACiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCi12b2lkIEVkaXRvclN0YXRlOjplbmNvZGUoQ29yZUlQQzo6QXJndW1l
bnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAordm9pZCBFZGl0b3JTdGF0ZTo6ZW5jb2RlKENvcmVJ
UEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyLT5lbmNv
ZGUoc2hvdWxkSWdub3JlQ29tcG9zaXRpb25TZWxlY3Rpb25DaGFuZ2UpOwotICAgIGVuY29kZXIt
PmVuY29kZShzZWxlY3Rpb25Jc05vbmUpOwotICAgIGVuY29kZXItPmVuY29kZShzZWxlY3Rpb25J
c1JhbmdlKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoaXNDb250ZW50RWRpdGFibGUpOwotICAgIGVu
Y29kZXItPmVuY29kZShpc0NvbnRlbnRSaWNobHlFZGl0YWJsZSk7Ci0gICAgZW5jb2Rlci0+ZW5j
b2RlKGlzSW5QYXNzd29yZEZpZWxkKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoaGFzQ29tcG9zaXRp
b24pOworICAgIGVuY29kZXIuZW5jb2RlKHNob3VsZElnbm9yZUNvbXBvc2l0aW9uU2VsZWN0aW9u
Q2hhbmdlKTsKKyAgICBlbmNvZGVyLmVuY29kZShzZWxlY3Rpb25Jc05vbmUpOworICAgIGVuY29k
ZXIuZW5jb2RlKHNlbGVjdGlvbklzUmFuZ2UpOworICAgIGVuY29kZXIuZW5jb2RlKGlzQ29udGVu
dEVkaXRhYmxlKTsKKyAgICBlbmNvZGVyLmVuY29kZShpc0NvbnRlbnRSaWNobHlFZGl0YWJsZSk7
CisgICAgZW5jb2Rlci5lbmNvZGUoaXNJblBhc3N3b3JkRmllbGQpOworICAgIGVuY29kZXIuZW5j
b2RlKGhhc0NvbXBvc2l0aW9uKTsKIAogI2lmIFBMQVRGT1JNKFFUKQotICAgIGVuY29kZXItPmVu
Y29kZShjdXJzb3JQb3NpdGlvbik7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGFuY2hvclBvc2l0aW9u
KTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoZWRpdG9yUmVjdCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2Rl
KGN1cnNvclJlY3QpOwotICAgIGVuY29kZXItPmVuY29kZShjb21wb3NpdGlvblJlY3QpOwotICAg
IGVuY29kZXItPmVuY29kZShpbnB1dE1ldGhvZEhpbnRzKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUo
c2VsZWN0ZWRUZXh0KTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoc3Vycm91bmRpbmdUZXh0KTsKKyAg
ICBlbmNvZGVyLmVuY29kZShjdXJzb3JQb3NpdGlvbik7CisgICAgZW5jb2Rlci5lbmNvZGUoYW5j
aG9yUG9zaXRpb24pOworICAgIGVuY29kZXIuZW5jb2RlKGVkaXRvclJlY3QpOworICAgIGVuY29k
ZXIuZW5jb2RlKGN1cnNvclJlY3QpOworICAgIGVuY29kZXIuZW5jb2RlKGNvbXBvc2l0aW9uUmVj
dCk7CisgICAgZW5jb2Rlci5lbmNvZGUoaW5wdXRNZXRob2RIaW50cyk7CisgICAgZW5jb2Rlci5l
bmNvZGUoc2VsZWN0ZWRUZXh0KTsKKyAgICBlbmNvZGVyLmVuY29kZShzdXJyb3VuZGluZ1RleHQp
OwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9FZGl0b3JT
dGF0ZS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0VkaXRvclN0YXRlLmgKaW5kZXggYWMxZDc5
M2FjZjg3MDJmZDcxMWU0ODc5OThlZWY1NzRjMzc0YzdjMi4uMDZlYTA4N2I4ZjA4MmFmODhjOWVk
MzlhNjg4OWJmNjQ4ODQ5YWEyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Vk
aXRvclN0YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0VkaXRvclN0YXRlLmgKQEAg
LTc0LDcgKzc0LDcgQEAgc3RydWN0IEVkaXRvclN0YXRlIHsKICAgICBXVEY6OlN0cmluZyBzdXJy
b3VuZGluZ1RleHQ7CiAjZW5kaWYKIAotICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50
RW5jb2RlciopIGNvbnN0OworICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rl
ciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29k
ZXIqLCBFZGl0b3JTdGF0ZSYpOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL0ZvbnRJbmZvLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Gb250SW5mby5jcHAKaW5k
ZXggY2QwMjYzMDQ1ZDU4ZGQ4OThjMDVlYjZjMTM3MzAyY2ExOWQwMzg5OC4uZGUwMzM4NGE0ODE2
Y2RlNWRhNzAxNDZhNWIyMzc3ODliZjUyMzM2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL0ZvbnRJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRm9udEluZm8u
Y3BwCkBAIC0zNCwxMiArMzQsMTIgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXZvaWQgRm9u
dEluZm86OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Cit2
b2lkIEZvbnRJbmZvOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBj
b25zdAogewogI2lmIFBMQVRGT1JNKE1BQykKLSAgICBlbmNvZGVyLT5lbmNvZGUoc3RhdGljX2Nh
c3Q8Ym9vbD4oZm9udEF0dHJpYnV0ZURpY3Rpb25hcnkpKTsKKyAgICBlbmNvZGVyLmVuY29kZShz
dGF0aWNfY2FzdDxib29sPihmb250QXR0cmlidXRlRGljdGlvbmFyeSkpOwogICAgIGlmIChmb250
QXR0cmlidXRlRGljdGlvbmFyeSkKLSAgICAgICAgQ29yZUlQQzo6ZW5jb2RlKGVuY29kZXIsIGZv
bnRBdHRyaWJ1dGVEaWN0aW9uYXJ5LmdldCgpKTsKKyAgICAgICAgQ29yZUlQQzo6ZW5jb2RlKCZl
bmNvZGVyLCBmb250QXR0cmlidXRlRGljdGlvbmFyeS5nZXQoKSk7CiAjZWxzZQogICAgIFVOVVNF
RF9QQVJBTShlbmNvZGVyKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL0ZvbnRJbmZvLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRm9udEluZm8uaAppbmRleCAy
M2VhOTQ1Y2FhNDEzZGZlMTE2MzQ1ZDdhMjI5N2I5ODExNmNiZmY3Li5hZTExZDEyNzUyNTc3NDU3
ODAxMjkzY2NiOThjMjI0MTA0ZWUwNzhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvRm9udEluZm8uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRm9udEluZm8uaApAQCAt
MzgsNyArMzgsNyBAQCBuYW1lc3BhY2UgQ29yZUlQQyB7CiBuYW1lc3BhY2UgV2ViS2l0IHsKICAg
ICAKIHN0cnVjdCBGb250SW5mbyB7Ci0gICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRF
bmNvZGVyKikgY29uc3Q7CisgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVy
JikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciosIEZvbnRJbmZvJik7CiAgICAgCiAjaWYgUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL0xheWVyVHJlZUNvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9MYXllclRyZWVDb250ZXh0LmgKaW5kZXggNTIwNmEzNzNjMGQ2YjQxYjBmMjAxN2M1YzUy
NmFiM2QzMzVhZTViMi4uZjhlMmZjZTYxZjMzZDJhY2Y3NDdmMGU5Y2M1ZWU2M2ViYzdlZmVhOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0xheWVyVHJlZUNvbnRleHQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTGF5ZXJUcmVlQ29udGV4dC5oCkBAIC00Nyw3ICs0Nyw3
IEBAIHB1YmxpYzoKICAgICBMYXllclRyZWVDb250ZXh0KCk7CiAgICAgfkxheWVyVHJlZUNvbnRl
eHQoKTsKIAotICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciopIGNvbnN0
OworICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OwogICAg
IHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBMYXllclRyZWVD
b250ZXh0Jik7CiAKICAgICBib29sIGlzRW1wdHkoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcAppbmRleCBlZmJlMzU3MmQ2OGNhNTJjMWFjNTk2NDA1MjhkZDI4ZWI0
ZDAwMDQzLi4wNjMzYzA0MThmOWQxMzJlOTgwNDFlZWY4MTJjNDczZGI0YjE2MGEwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC0zNiwxMCArMzYsMTAgQEAgTmV0d29y
a1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6Ok5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzKCkKIHsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5j
b2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKK3ZvaWQgTmV0d29y
a1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29k
ZXImIGVuY29kZXIpIGNvbnN0CiB7CiAjaWYgUExBVEZPUk0oTUFDKQotICAgIGVuY29kZXItPmVu
Y29kZShwYXJlbnRQcm9jZXNzTmFtZSk7CisgICAgZW5jb2Rlci5lbmNvZGUocGFyZW50UHJvY2Vz
c05hbWUpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4
IDRmNTllMjk0MWZiNjY0YTFjYmMwYTA1ZWEyODAxMGNlYmU1NDhlZDEuLmViYzAzYTdlZDBmOWY4
MDdkZjBmZTU1YTMwNWM4MmU1NmI0MDUzYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuaApAQCAtNDAsNyArNDAsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIHN0cnVjdCBOZXR3b3Jr
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMoKTsKIAotICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlciop
IGNvbnN0OworICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0
OwogICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBOZXR3
b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpOwogCiAjaWYgUExBVEZPUk0oTUFDKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL09yaWdpbkFuZERhdGFiYXNlcy5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvT3JpZ2luQW5kRGF0YWJhc2VzLmNwcAppbmRleCAwYWQwNTQ5
YWQ4NDU5MWQxZTZhN2VlYzkwY2FmNmU1YWRmZjFjNzhmLi45ZjZmYmUyMmYzOWRkOWFmMWZkZGRk
YjJjZjE4OGJjMDcwMzM3ODczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvT3Jp
Z2luQW5kRGF0YWJhc2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvT3JpZ2luQW5k
RGF0YWJhc2VzLmNwcApAQCAtMzQsMTIgKzM0LDEyIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdm9pZCBPcmlnaW5BbmREYXRhYmFzZXM6OmVuY29k
ZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Cit2b2lkIE9yaWdpbkFu
ZERhdGFiYXNlczo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29u
c3QKIHsKLSAgICBlbmNvZGVyLT5lbmNvZGUob3JpZ2luSWRlbnRpZmllcik7Ci0gICAgZW5jb2Rl
ci0+ZW5jb2RlKG9yaWdpblF1b3RhKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUob3JpZ2luVXNhZ2Up
OwotICAgIGVuY29kZXItPmVuY29kZShkYXRhYmFzZXMpOworICAgIGVuY29kZXIuZW5jb2RlKG9y
aWdpbklkZW50aWZpZXIpOworICAgIGVuY29kZXIuZW5jb2RlKG9yaWdpblF1b3RhKTsKKyAgICBl
bmNvZGVyLmVuY29kZShvcmlnaW5Vc2FnZSk7CisgICAgZW5jb2Rlci5lbmNvZGUoZGF0YWJhc2Vz
KTsKIH0KIAogYm9vbCBPcmlnaW5BbmREYXRhYmFzZXM6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqIGRlY29kZXIsIE9yaWdpbkFuZERhdGFiYXNlcyYgb3JpZ2luQW5kRGF0YWJhc2Vz
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL09yaWdpbkFuZERhdGFiYXNlcy5o
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL09yaWdpbkFuZERhdGFiYXNlcy5oCmluZGV4IDUxZWY0
ZmFlN2EwMDJiYmNjZjMxOTU2MDBmZGE1ZjhiNTY3Yjk0NTUuLmVjMDY0ZjkxYzhmNmVkNzVhNTNi
MWJkN2ZiMDY3ODdlNmQxMThlMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9P
cmlnaW5BbmREYXRhYmFzZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvT3JpZ2luQW5k
RGF0YWJhc2VzLmgKQEAgLTQwLDcgKzQwLDcgQEAgbmFtZXNwYWNlIENvcmVJUEMgewogbmFtZXNw
YWNlIFdlYktpdCB7CiAKIHN0cnVjdCBPcmlnaW5BbmREYXRhYmFzZXMgewotICAgIHZvaWQgZW5j
b2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciopIGNvbnN0OworICAgIHZvaWQgZW5jb2RlKENv
cmVJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBPcmlnaW5BbmREYXRhYmFzZXMmKTsKIAogICAgIFN0
cmluZyBvcmlnaW5JZGVudGlmaWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L1BsYXRmb3JtUG9wdXBNZW51RGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGxhdGZv
cm1Qb3B1cE1lbnVEYXRhLmNwcAppbmRleCAxZGVjYWFjYzU1N2ZkMjhlYzU2ODBjYTQyNzc2NTc3
MDQ4ZjU5ZDk0Li4yMTU3OGM0YzUzYjFmOTM5YzNmYTczNmI2NmQwMjM0ODNkNjAyZjIxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGxhdGZvcm1Qb3B1cE1lbnVEYXRhLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGxhdGZvcm1Qb3B1cE1lbnVEYXRhLmNwcApAQCAt
NDQsMjggKzQ0LDI4IEBAIFBsYXRmb3JtUG9wdXBNZW51RGF0YTo6UGxhdGZvcm1Qb3B1cE1lbnVE
YXRhKCkKIHsKIH0KIAotdm9pZCBQbGF0Zm9ybVBvcHVwTWVudURhdGE6OmVuY29kZShDb3JlSVBD
OjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Cit2b2lkIFBsYXRmb3JtUG9wdXBNZW51
RGF0YTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsK
ICNpZiBQTEFURk9STShXSU4pCi0gICAgZW5jb2Rlci0+ZW5jb2RlKG1fY2xpZW50UGFkZGluZ0xl
ZnQpOwotICAgIGVuY29kZXItPmVuY29kZShtX2NsaWVudFBhZGRpbmdSaWdodCk7Ci0gICAgZW5j
b2Rlci0+ZW5jb2RlKG1fY2xpZW50SW5zZXRMZWZ0KTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobV9j
bGllbnRJbnNldFJpZ2h0KTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobV9wb3B1cFdpZHRoKTsKLSAg
ICBlbmNvZGVyLT5lbmNvZGUobV9pdGVtSGVpZ2h0KTsKKyAgICBlbmNvZGVyLmVuY29kZShtX2Ns
aWVudFBhZGRpbmdMZWZ0KTsKKyAgICBlbmNvZGVyLmVuY29kZShtX2NsaWVudFBhZGRpbmdSaWdo
dCk7CisgICAgZW5jb2Rlci5lbmNvZGUobV9jbGllbnRJbnNldExlZnQpOworICAgIGVuY29kZXIu
ZW5jb2RlKG1fY2xpZW50SW5zZXRSaWdodCk7CisgICAgZW5jb2Rlci5lbmNvZGUobV9wb3B1cFdp
ZHRoKTsKKyAgICBlbmNvZGVyLmVuY29kZShtX2l0ZW1IZWlnaHQpOwogCiAgICAgU2hhcmVhYmxl
Qml0bWFwOjpIYW5kbGUgbm90U2VsZWN0ZWRCYWNraW5nU3RvcmVIYW5kbGU7CiAgICAgbV9ub3RT
ZWxlY3RlZEJhY2tpbmdTdG9yZS0+Y3JlYXRlSGFuZGxlKG5vdFNlbGVjdGVkQmFja2luZ1N0b3Jl
SGFuZGxlKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobm90U2VsZWN0ZWRCYWNraW5nU3RvcmVIYW5k
bGUpOworICAgIGVuY29kZXIuZW5jb2RlKG5vdFNlbGVjdGVkQmFja2luZ1N0b3JlSGFuZGxlKTsK
IAogICAgIFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlIHNlbGVjdGVkQmFja2luZ1N0b3JlSGFuZGxl
OwogICAgIG1fc2VsZWN0ZWRCYWNraW5nU3RvcmUtPmNyZWF0ZUhhbmRsZShzZWxlY3RlZEJhY2tp
bmdTdG9yZUhhbmRsZSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHNlbGVjdGVkQmFja2luZ1N0b3Jl
SGFuZGxlKTsKKyAgICBlbmNvZGVyLmVuY29kZShzZWxlY3RlZEJhY2tpbmdTdG9yZUhhbmRsZSk7
CiAjZWxpZiBQTEFURk9STShNQUMpCi0gICAgZW5jb2Rlci0+ZW5jb2RlKGZvbnRJbmZvKTsKLSAg
ICBlbmNvZGVyLT5lbmNvZGUoc2hvdWxkUG9wT3Zlcik7CisgICAgZW5jb2Rlci5lbmNvZGUoZm9u
dEluZm8pOworICAgIGVuY29kZXIuZW5jb2RlKHNob3VsZFBvcE92ZXIpOwogI2VsaWYgUExBVEZP
Uk0oUVQpCi0gICAgZW5jb2Rlci0+ZW5jb2RlKG11bHRpcGxlU2VsZWN0aW9ucyk7CisgICAgZW5j
b2Rlci5lbmNvZGUobXVsdGlwbGVTZWxlY3Rpb25zKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFN
KGVuY29kZXIpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGxh
dGZvcm1Qb3B1cE1lbnVEYXRhLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGxhdGZvcm1Qb3B1
cE1lbnVEYXRhLmgKaW5kZXggMjFhYmRlNGZmNWQ2MjI5MzVjOGEyMzVhM2EwYWI2OWVjNGNlZjY1
Yy4uN2Q5ZDk0ZDJhMTg4NmMwNGRhNzJiM2Y4NWRjZDA2YzQ5YmU0M2NlZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL1BsYXRmb3JtUG9wdXBNZW51RGF0YS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9QbGF0Zm9ybVBvcHVwTWVudURhdGEuaApAQCAtNDAsNyArNDAsNyBA
QCBuYW1lc3BhY2UgV2ViS2l0IHsKIHN0cnVjdCBQbGF0Zm9ybVBvcHVwTWVudURhdGEgewogICAg
IFBsYXRmb3JtUG9wdXBNZW51RGF0YSgpOwogCi0gICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJn
dW1lbnRFbmNvZGVyKikgY29uc3Q7CisgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRF
bmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciosIFBsYXRmb3JtUG9wdXBNZW51RGF0YSYpOwogCiAjaWYgUExBVEZPUk0oV0lOKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBJZGVudGlmaWVyRGF0
YS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUElkZW50aWZpZXJEYXRhLmNw
cAppbmRleCBmZjJiZWYxNDAwM2I5MDVhN2Y1YTQ2NGU3Mjc4YjMyZmVhN2ZhMGM2Li5mYzk4NzBm
MGNiNDE1MTliMzFlZmI0YzEwYjE1OTE2MGZmZGY5ODA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvUGx1Z2lucy9OUElkZW50aWZpZXJEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvUGx1Z2lucy9OUElkZW50aWZpZXJEYXRhLmNwcApAQCAtNjcsMTMgKzY3LDEz
IEBAIE5QSWRlbnRpZmllciBOUElkZW50aWZpZXJEYXRhOjpjcmVhdGVOUElkZW50aWZpZXIoKSBj
b25zdAogICAgIHJldHVybiBzdGF0aWNfY2FzdDxOUElkZW50aWZpZXI+KElkZW50aWZpZXJSZXA6
OmdldChtX251bWJlcikpOwogfQogCi12b2lkIE5QSWRlbnRpZmllckRhdGE6OmVuY29kZShDb3Jl
SVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Cit2b2lkIE5QSWRlbnRpZmllckRh
dGE6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0g
ICAgZW5jb2Rlci0+ZW5jb2RlKG1faXNTdHJpbmcpOworICAgIGVuY29kZXIuZW5jb2RlKG1faXNT
dHJpbmcpOwogICAgIGlmIChtX2lzU3RyaW5nKQotICAgICAgICBlbmNvZGVyLT5lbmNvZGUobV9z
dHJpbmcpOworICAgICAgICBlbmNvZGVyLmVuY29kZShtX3N0cmluZyk7CiAgICAgZWxzZQotICAg
ICAgICBlbmNvZGVyLT5lbmNvZGUobV9udW1iZXIpOworICAgICAgICBlbmNvZGVyLmVuY29kZSht
X251bWJlcik7CiB9CiAKIGJvb2wgTlBJZGVudGlmaWVyRGF0YTo6ZGVjb2RlKENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciogZGVjb2RlciwgTlBJZGVudGlmaWVyRGF0YSYgcmVzdWx0KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBJZGVudGlmaWVyRGF0YS5oIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBJZGVudGlmaWVyRGF0YS5oCmluZGV4IDFh
N2M3NzJhNzk0OGZjMzZlNWM0MzM4MTFjM2ViMGU1MWViODIyZWUuLjU2ZDU3ZmM5NjUxMTBjZTUw
MDRjZDA3MWRiNWVkY2NjZTE2OWI1M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9QbHVnaW5zL05QSWRlbnRpZmllckRhdGEuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
UGx1Z2lucy9OUElkZW50aWZpZXJEYXRhLmgKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogICAg
IHN0YXRpYyBOUElkZW50aWZpZXJEYXRhIGZyb21OUElkZW50aWZpZXIoTlBJZGVudGlmaWVyKTsK
ICAgICBOUElkZW50aWZpZXIgY3JlYXRlTlBJZGVudGlmaWVyKCkgY29uc3Q7CiAKLSAgICB2b2lk
IGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqKSBjb25zdDsKKyAgICB2b2lkIGVuY29k
ZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKICAgICBzdGF0aWMgYm9vbCBkZWNv
ZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgTlBJZGVudGlmaWVyRGF0YSYpOwogCiBwcml2
YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBWYXJpYW50
RGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUFZhcmlhbnREYXRhLmNw
cAppbmRleCAwNGJiM2Y1YmRlYmVkNDQ5ZjE2NDQxOWJlNzhhNzg4ZjU5NGYyZDUxLi5jMGJiZjY3
ZjY4OTU5ZWU2Y2U2NmNjYzU3MWNiYjUyNWM4ODAyMGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvUGx1Z2lucy9OUFZhcmlhbnREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvUGx1Z2lucy9OUFZhcmlhbnREYXRhLmNwcApAQCAtMTE4LDMxICsxMTgsMzEgQEAg
TlBWYXJpYW50RGF0YSBOUFZhcmlhbnREYXRhOjptYWtlUmVtb3RlTlBPYmplY3RJRCh1aW50NjRf
dCB2YWx1ZSkKICAgICByZXR1cm4gbnBWYXJpYW50RGF0YTsKIH0KIAotdm9pZCBOUFZhcmlhbnRE
YXRhOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAordm9p
ZCBOUFZhcmlhbnREYXRhOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVy
KSBjb25zdAogewotICAgIGVuY29kZXItPmVuY29kZShtX3R5cGUpOworICAgIGVuY29kZXIuZW5j
b2RlKG1fdHlwZSk7CiAKICAgICBzd2l0Y2ggKHR5cGUoKSkgewogICAgIGNhc2UgTlBWYXJpYW50
RGF0YTo6Vm9pZDoKICAgICBjYXNlIE5QVmFyaWFudERhdGE6Ok51bGw6CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgTlBWYXJpYW50RGF0YTo6Qm9vbDoKLSAgICAgICAgZW5jb2Rlci0+ZW5jb2Rl
KGJvb2xWYWx1ZSgpKTsKKyAgICAgICAgZW5jb2Rlci5lbmNvZGUoYm9vbFZhbHVlKCkpOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIE5QVmFyaWFudERhdGE6OkludDMyOgotICAgICAgICBlbmNv
ZGVyLT5lbmNvZGUoaW50MzJWYWx1ZSgpKTsKKyAgICAgICAgZW5jb2Rlci5lbmNvZGUoaW50MzJW
YWx1ZSgpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBOUFZhcmlhbnREYXRhOjpEb3VibGU6
Ci0gICAgICAgIGVuY29kZXItPmVuY29kZShkb3VibGVWYWx1ZSgpKTsKKyAgICAgICAgZW5jb2Rl
ci5lbmNvZGUoZG91YmxlVmFsdWUoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTlBWYXJp
YW50RGF0YTo6U3RyaW5nOgotICAgICAgICBlbmNvZGVyLT5lbmNvZGUoc3RyaW5nVmFsdWUoKSk7
CisgICAgICAgIGVuY29kZXIuZW5jb2RlKHN0cmluZ1ZhbHVlKCkpOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIE5QVmFyaWFudERhdGE6OkxvY2FsTlBPYmplY3RJRDoKLSAgICAgICAgZW5jb2Rl
ci0+ZW5jb2RlKGxvY2FsTlBPYmplY3RJRFZhbHVlKCkpOworICAgICAgICBlbmNvZGVyLmVuY29k
ZShsb2NhbE5QT2JqZWN0SURWYWx1ZSgpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBOUFZh
cmlhbnREYXRhOjpSZW1vdGVOUE9iamVjdElEOgotICAgICAgICBlbmNvZGVyLT5lbmNvZGUocmVt
b3RlTlBPYmplY3RJRFZhbHVlKCkpOworICAgICAgICBlbmNvZGVyLmVuY29kZShyZW1vdGVOUE9i
amVjdElEVmFsdWUoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QVmFyaWFudERhdGEuaCBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9QbHVnaW5zL05QVmFyaWFudERhdGEuaAppbmRleCA4MDU2NDBlOWU3ZGY2Yzgw
NzI5MWFmOWFkMzRiNzBjM2VjODNmZDAzLi5hMjMyMDQ2MTZmYzg2MDE0M2RjNzJmZGYyMjc0NjMx
M2FlZWRhZDdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUFZh
cmlhbnREYXRhLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBWYXJpYW50
RGF0YS5oCkBAIC0xMDAsNyArMTAwLDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gbV9yZW1v
dGVOUE9iamVjdElEVmFsdWU7CiAgICAgfQogCi0gICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJn
dW1lbnRFbmNvZGVyKikgY29uc3Q7CisgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRF
bmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciosIE5QVmFyaWFudERhdGEmKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL1BsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
Y3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5jcHAKaW5kZXggMWEwYTUyYzQxZWM5OWExZmY1MTg1MDczNGE0OGE5MWZmMzk2
MWNmMS4uYzBjNjI2ZTVjMDQyNzdlYzAxZDBlZWUwMzViZDViZjg5MjZjMzY3YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvUGx1Z2luUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTM3LDE3ICszNywxNyBAQCBQbHVnaW5Qcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpQbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzKCkK
IHsKIH0KIAotdm9pZCBQbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoQ29y
ZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAordm9pZCBQbHVnaW5Qcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAogewotICAgIGVuY29kZXItPmVuY29kZShwbHVnaW5QYXRoKTsKLSAgICBlbmNv
ZGVyLT5lbmNvZGUoc3VwcG9ydHNBc3luY2hyb25vdXNQbHVnaW5Jbml0aWFsaXphdGlvbik7Ci0g
ICAgZW5jb2Rlci0+ZW5jb2RlKG1pbmltdW1MaWZldGltZSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2Rl
KHRlcm1pbmF0aW9uVGltZW91dCk7CisgICAgZW5jb2Rlci5lbmNvZGUocGx1Z2luUGF0aCk7Cisg
ICAgZW5jb2Rlci5lbmNvZGUoc3VwcG9ydHNBc3luY2hyb25vdXNQbHVnaW5Jbml0aWFsaXphdGlv
bik7CisgICAgZW5jb2Rlci5lbmNvZGUobWluaW11bUxpZmV0aW1lKTsKKyAgICBlbmNvZGVyLmVu
Y29kZSh0ZXJtaW5hdGlvblRpbWVvdXQpOwogCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIGVuY29k
ZXItPmVuY29kZShwYXJlbnRQcm9jZXNzTmFtZSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGFjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdQb3J0KTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoc2FuZGJveFByb2Zp
bGVEaXJlY3RvcnlQYXRoKTsKKyAgICBlbmNvZGVyLmVuY29kZShwYXJlbnRQcm9jZXNzTmFtZSk7
CisgICAgZW5jb2Rlci5lbmNvZGUoYWNjZWxlcmF0ZWRDb21wb3NpdGluZ1BvcnQpOworICAgIGVu
Y29kZXIuZW5jb2RlKHNhbmRib3hQcm9maWxlRGlyZWN0b3J5UGF0aCk7CiAjZW5kaWYKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvUGx1Z2lu
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IDU0NDM3NGFkMTVmNWYxNDg2NTZjOTM5
NTQ4ZjJhMWQ5YTViOWEwZTMuLmE0MTQyMTJiZTlhMGY2ODJlYzg1YTMwY2U4ZGYwNDczNWRlNWMx
MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL1BsdWdpblByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lu
cy9QbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgbmFt
ZXNwYWNlIFdlYktpdCB7CiBzdHJ1Y3QgUGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7
CiAgICAgUGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycygpOwogCi0gICAgdm9pZCBlbmNv
ZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKikgY29uc3Q7CisgICAgdm9pZCBlbmNvZGUoQ29y
ZUlQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIFBsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMm
KTsKIAogICAgIFN0cmluZyBwbHVnaW5QYXRoOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL1ByaW50SW5mby5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUHJpbnRJbmZvLmNw
cAppbmRleCAxMDc4ODRhMDdiMzYwYjE4NTFiM2JmNGY0YTkwNTZhYmE0MWRhMTUyLi5kMWJhNTAy
ZjBiY2ZiZGMzNjMxZmYyYmJiZmRjZjNlYTY4ODQ4YjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvUHJpbnRJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUHJp
bnRJbmZvLmNwcApAQCAtNDMsMTEgKzQzLDExIEBAIFByaW50SW5mbzo6UHJpbnRJbmZvKCkKIHsK
IH0KIAotdm9pZCBQcmludEluZm86OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVu
Y29kZXIpIGNvbnN0Cit2b2lkIFByaW50SW5mbzo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5j
b2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyLT5lbmNvZGUocGFnZVNldHVwU2Nh
bGVGYWN0b3IpOwotICAgIGVuY29kZXItPmVuY29kZShhdmFpbGFibGVQYXBlcldpZHRoKTsKLSAg
ICBlbmNvZGVyLT5lbmNvZGUoYXZhaWxhYmxlUGFwZXJIZWlnaHQpOworICAgIGVuY29kZXIuZW5j
b2RlKHBhZ2VTZXR1cFNjYWxlRmFjdG9yKTsKKyAgICBlbmNvZGVyLmVuY29kZShhdmFpbGFibGVQ
YXBlcldpZHRoKTsKKyAgICBlbmNvZGVyLmVuY29kZShhdmFpbGFibGVQYXBlckhlaWdodCk7CiAK
ICNpZiBQTEFURk9STShHVEspCiAgICAgQ29yZUlQQzo6ZW5jb2RlKGVuY29kZXIsIHByaW50U2V0
dGluZ3MuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1ByaW50SW5m
by5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1ByaW50SW5mby5oCmluZGV4IGI3M2I3YzVlM2Vl
N2EyM2FhMmViNTdiZmNjOTQwNWY0ZTM0MjViOTYuLjk3ZmFjZWJkMGNjNTgxOTlmYmM1MTJjOTM5
N2IzMjgwZTJmNTNiZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QcmludElu
Zm8uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUHJpbnRJbmZvLmgKQEAgLTYzLDcgKzYz
LDcgQEAgc3RydWN0IFByaW50SW5mbyB7CiAgICAgR1JlZlB0cjxHdGtQYWdlU2V0dXA+IHBhZ2VT
ZXR1cDsKICNlbmRpZgogCi0gICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVy
KikgY29uc3Q7CisgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJikgY29u
c3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIFBy
aW50SW5mbyYpOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1NhbmRi
b3hFeHRlbnNpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TYW5kYm94RXh0ZW5zaW9uLmgK
aW5kZXggNGZkYjFlZDYzZGM1NGNkMDI4YzBkZDFhMmRiOTRhZWVmYjBiNTVhYS4uYTViMTRmYjhj
MjI5MTc1M2RjNzRlNDk4ZTY4YWIzYTc0Njc5ZGE5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL1NhbmRib3hFeHRlbnNpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
U2FuZGJveEV4dGVuc2lvbi5oCkBAIC01OCw3ICs1OCw3IEBAIHB1YmxpYzoKICAgICAgICAgSGFu
ZGxlKCk7CiAgICAgICAgIH5IYW5kbGUoKTsKIAotICAgICAgICB2b2lkIGVuY29kZShDb3JlSVBD
OjpBcmd1bWVudEVuY29kZXIqKSBjb25zdDsKKyAgICAgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6
QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CiAgICAgICAgIHN0YXRpYyBib29sIGRlY29kZShDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXIqLCBIYW5kbGUmKTsKIAogICAgIHByaXZhdGU6CkBAIC03OCw3
ICs3OCw3IEBAIHB1YmxpYzoKICAgICAgICAgSGFuZGxlJiBvcGVyYXRvcltdKHNpemVfdCBpKTsK
ICAgICAgICAgY29uc3QgSGFuZGxlJiBvcGVyYXRvcltdKHNpemVfdCBpKSBjb25zdDsKICAgICAg
ICAgc2l6ZV90IHNpemUoKSBjb25zdDsKLSAgICAgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJn
dW1lbnRFbmNvZGVyKikgY29uc3Q7CisgICAgICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3Vt
ZW50RW5jb2RlciYpIGNvbnN0OwogICAgICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyKiwgSGFuZGxlQXJyYXkmKTsKICAgICAgICAKICAgICBwcml2YXRlOgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1NlY3VyaXR5T3JpZ2luRGF0YS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2VjdXJpdHlPcmlnaW5EYXRhLmNwcAppbmRleCBjZjk1
NTFiZmM2OTA1YTZkMTcwOGIxMjVkNDE2MDYwMTNiYjYyZjE2Li42Yzc0MmFiMDE3OWFjOGY1N2Jj
ZmZjNTQwNTIyYzljNjBkNzEzNzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
U2VjdXJpdHlPcmlnaW5EYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2VjdXJp
dHlPcmlnaW5EYXRhLmNwcApAQCAtMzUsMTEgKzM1LDExIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdm9pZCBTZWN1cml0eU9yaWdpbkRhdGE6OmVu
Y29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Cit2b2lkIFNlY3Vy
aXR5T3JpZ2luRGF0YTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2Rlcikg
Y29uc3QKIHsKLSAgICBlbmNvZGVyLT5lbmNvZGUocHJvdG9jb2wpOwotICAgIGVuY29kZXItPmVu
Y29kZShob3N0KTsKLSAgICBlbmNvZGVyLT5lbmNvZGUocG9ydCk7CisgICAgZW5jb2Rlci5lbmNv
ZGUocHJvdG9jb2wpOworICAgIGVuY29kZXIuZW5jb2RlKGhvc3QpOworICAgIGVuY29kZXIuZW5j
b2RlKHBvcnQpOwogfQogCiBib29sIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZGVjb2RlKENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgU2VjdXJpdHlPcmlnaW5EYXRhJiBzZWN1cml0eU9y
aWdpbkRhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2VjdXJpdHlPcmln
aW5EYXRhLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2VjdXJpdHlPcmlnaW5EYXRhLmgKaW5k
ZXggNjkyYTk2ZTE1YzU1NzMyOTcwMGI0ZmM1YjYwYmJjYTdlMjYxOTFhNC4uOTM5MDliYzZlY2Iy
ODNiOWU2YjE1NzRjZmI5NGRiMmVhYmI5Y2I4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL1NlY3VyaXR5T3JpZ2luRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9T
ZWN1cml0eU9yaWdpbkRhdGEuaApAQCAtNDAsNyArNDAsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsK
IHR5cGVkZWYgR2VuZXJpY0NhbGxiYWNrPFdLQXJyYXlSZWY+IEFycmF5Q2FsbGJhY2s7CiAKIHN0
cnVjdCBTZWN1cml0eU9yaWdpbkRhdGEgewotICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3Vt
ZW50RW5jb2RlciopIGNvbnN0OworICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5j
b2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqLCBTZWN1cml0eU9yaWdpbkRhdGEmKTsKIAogICAgIC8vIEZJWE1FIDxyZGFyOi8vOTAx
ODM4Nj46IFdlIHNob3VsZCBiZSBzZW5kaW5nIG1vcmUgc3RhdGUgYWNyb3NzIHRoZSB3aXJlIHRo
YW4ganVzdCB0aGUgcHJvdG9jb2wsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
U2Vzc2lvblN0YXRlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZXNzaW9uU3RhdGUuY3Bw
CmluZGV4IGIyNTI4OWEzMjUwOTkzYjdhODU2MWRmYWU0NDhhMWNhYTU3ODAwZWYuLjc4MWVhNjY1
ZjEwOWRkODZhYjExZjMwZGFkNmY3MmVlYjg5MzkwZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9TZXNzaW9uU3RhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9T
ZXNzaW9uU3RhdGUuY3BwCkBAIC02NCwxMCArNjQsMTAgQEAgYm9vbCBTZXNzaW9uU3RhdGU6Omlz
RW1wdHkoKSBjb25zdAogICAgIHJldHVybiBtX2xpc3QuaXNFbXB0eSgpOwogfQogICAgIAotdm9p
ZCBTZXNzaW9uU3RhdGU6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIp
IGNvbnN0Cit2b2lkIFNlc3Npb25TdGF0ZTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyLT5lbmNvZGUobV9saXN0KTsKLSAgICBl
bmNvZGVyLT5lbmNvZGUobV9jdXJyZW50SW5kZXgpOworICAgIGVuY29kZXIuZW5jb2RlKG1fbGlz
dCk7CisgICAgZW5jb2Rlci5lbmNvZGUobV9jdXJyZW50SW5kZXgpOwogfQogCiBib29sIFNlc3Np
b25TdGF0ZTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgU2Vzc2lv
blN0YXRlJiBzdGF0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZXNzaW9u
U3RhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZXNzaW9uU3RhdGUuaAppbmRleCA4YWEx
ODk0OGQ2ZGUxZGZiMWYyNDYwNTA1NmQ0MzEzMmMzNjhmNzJkLi4xOTQyMmExZjBlNjgyNTUxNWEz
YWEwZjA2M2E3YTA1MzFhMmZkZDIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
U2Vzc2lvblN0YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1Nlc3Npb25TdGF0ZS5o
CkBAIC00NSw3ICs0NSw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0Owog
Ci0gICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKikgY29uc3Q7CisgICAg
dm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGlj
IGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIFNlc3Npb25TdGF0ZSYpOwog
CiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1NoYXJlYWJsZUJp
dG1hcC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxlQml0bWFwLmNwcAppbmRl
eCBjZGUzYWExNjU3MzA2MGIwYThiZWMzNjU0YjBiZWM0M2MyZmQ0MDE3Li4xZmIwNzJmZGI0MGZj
OGUwZTY2MmJiZGM2OGNiMmQ1YmI0N2JlYTBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvU2hhcmVhYmxlQml0bWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hh
cmVhYmxlQml0bWFwLmNwcApAQCAtMzksMTEgKzM5LDExIEBAIFNoYXJlYWJsZUJpdG1hcDo6SGFu
ZGxlOjpIYW5kbGUoKQogewogfQogCi12b2lkIFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlOjplbmNv
ZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAordm9pZCBTaGFyZWFi
bGVCaXRtYXA6OkhhbmRsZTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2Rl
cikgY29uc3QKIHsKLSAgICBlbmNvZGVyLT5lbmNvZGUobV9oYW5kbGUpOwotICAgIGVuY29kZXIt
PmVuY29kZShtX3NpemUpOwotICAgIGVuY29kZXItPmVuY29kZShtX2ZsYWdzKTsKKyAgICBlbmNv
ZGVyLmVuY29kZShtX2hhbmRsZSk7CisgICAgZW5jb2Rlci5lbmNvZGUobV9zaXplKTsKKyAgICBl
bmNvZGVyLmVuY29kZShtX2ZsYWdzKTsKIH0KIAogYm9vbCBTaGFyZWFibGVCaXRtYXA6OkhhbmRs
ZTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgSGFuZGxlJiBoYW5k
bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxlQml0bWFwLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxlQml0bWFwLmgKaW5kZXggMmFmMjI4ZTZm
YThiYTNmNzczNWQyNTc1NDU1NzM3MDRhOGIyZWMyMC4uOGRiZjFkZGZlOWZkYmYxNDNlNGVmMzlj
ZDljZDg0ZTc0ZGM2NzMxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1NoYXJl
YWJsZUJpdG1hcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWFibGVCaXRtYXAu
aApAQCAtNzIsNyArNzIsNyBAQCBwdWJsaWM6CiAKICAgICAgICAgYm9vbCBpc051bGwoKSBjb25z
dCB7IHJldHVybiBtX2hhbmRsZS5pc051bGwoKTsgfQogCi0gICAgICAgIHZvaWQgZW5jb2RlKENv
cmVJUEM6OkFyZ3VtZW50RW5jb2RlciopIGNvbnN0OworICAgICAgICB2b2lkIGVuY29kZShDb3Jl
SVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKICAgICAgICAgc3RhdGljIGJvb2wgZGVjb2Rl
KENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIEhhbmRsZSYpOwogCiAgICAgcHJpdmF0ZToKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWRXb3JrZXJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWRXb3JrZXJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCBiNjY5MzA3ZWJjMjMwNmZmOTdiODBlNDk3
M2NjZWMxNzk0YzliYWYzLi45OTQxYjA2MTVjMjFlODgyNWU4ODBmMmI2NWVjNmRmMmE1YWEyNzBj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVkV29ya2VyUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1NoYXJlZFdv
cmtlclByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC0zNiwxMyArMzYsMTMgQEAgU2hh
cmVkV29ya2VyUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6U2hhcmVkV29ya2VyUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycygpCiB7CiB9CiAKLXZvaWQgU2hhcmVkV29ya2VyUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVyczo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2Rlcikg
Y29uc3QKK3ZvaWQgU2hhcmVkV29ya2VyUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2Rl
KENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVy
LT5lbmNvZGUobWluaW11bUxpZmV0aW1lKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUodGVybWluYXRp
b25UaW1lb3V0KTsKKyAgICBlbmNvZGVyLmVuY29kZShtaW5pbXVtTGlmZXRpbWUpOworICAgIGVu
Y29kZXIuZW5jb2RlKHRlcm1pbmF0aW9uVGltZW91dCk7CiAKICNpZiBQTEFURk9STShNQUMpCi0g
ICAgZW5jb2Rlci0+ZW5jb2RlKHBhcmVudFByb2Nlc3NOYW1lKTsKKyAgICBlbmNvZGVyLmVuY29k
ZShwYXJlbnRQcm9jZXNzTmFtZSk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL1NoYXJlZFdvcmtlclByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWRXb3JrZXJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmgKaW5kZXggM2ZlZjk3NTM1YjI0NDY1YjA5NDQyNGE5NTI1OTNjZmNiOGNjMzgyMS4uY2NkMjU3
ZWI5ZTNiMzMxYjk1NzlmZTNmODAyNzYxYjA5NDRjNThkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL1NoYXJlZFdvcmtlclByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVkV29ya2VyUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5oCkBAIC00NCw3ICs0NCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogc3RydWN0IFNoYXJl
ZFdvcmtlclByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIFNoYXJlZFdvcmtlclByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMoKTsKIAotICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3Vt
ZW50RW5jb2RlciopIGNvbnN0OworICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5j
b2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqLCBTaGFyZWRXb3JrZXJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJik7CiAKICAgICBk
b3VibGUgbWluaW11bUxpZmV0aW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L1N0YXRpc3RpY3NEYXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TdGF0aXN0aWNzRGF0
YS5jcHAKaW5kZXggNTlmZWY3YTc3ODkyZGY2OGQ3MjczM2E2MDBjNWVjZjY2NThhZDM2Mi4uNjRk
YjE3YTEzZTc2MTQ3NDk0NzgzMGZiM2VmMTAxNjgyOTRiMjU5YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1N0YXRpc3RpY3NEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvU3RhdGlzdGljc0RhdGEuY3BwCkBAIC0zMCwxMiArMzAsMTIgQEAKIAogbmFtZXNwYWNl
IFdlYktpdCB7CiAKLXZvaWQgU3RhdGlzdGljc0RhdGE6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVu
dEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Cit2b2lkIFN0YXRpc3RpY3NEYXRhOjplbmNvZGUoQ29y
ZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXItPmVu
Y29kZShzdGF0aXN0aWNzTnVtYmVycyk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGphdmFTY3JpcHRQ
cm90ZWN0ZWRPYmplY3RUeXBlQ291bnRzKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoamF2YVNjcmlw
dE9iamVjdFR5cGVDb3VudHMpOwotICAgIGVuY29kZXItPmVuY29kZSh3ZWJDb3JlQ2FjaGVTdGF0
aXN0aWNzKTsKKyAgICBlbmNvZGVyLmVuY29kZShzdGF0aXN0aWNzTnVtYmVycyk7CisgICAgZW5j
b2Rlci5lbmNvZGUoamF2YVNjcmlwdFByb3RlY3RlZE9iamVjdFR5cGVDb3VudHMpOworICAgIGVu
Y29kZXIuZW5jb2RlKGphdmFTY3JpcHRPYmplY3RUeXBlQ291bnRzKTsKKyAgICBlbmNvZGVyLmVu
Y29kZSh3ZWJDb3JlQ2FjaGVTdGF0aXN0aWNzKTsKIH0KIAogYm9vbCBTdGF0aXN0aWNzRGF0YTo6
ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgU3RhdGlzdGljc0RhdGEm
IHN0YXRpc3RpY3NEYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1N0YXRp
c3RpY3NEYXRhLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU3RhdGlzdGljc0RhdGEuaAppbmRl
eCAyYzgyYzI4YmQ4Mzk1MjlhMDNjMDlmMzJkNDQ2Y2I0YzE4YWFlZmQ4Li43MzE1ZWQyNTA4ZjE1
N2Y1NmE4NmU1YzYzYTIyMmZhMTE0ZWRlZjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvU3RhdGlzdGljc0RhdGEuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU3RhdGlz
dGljc0RhdGEuaApAQCAtMzYsNyArMzYsNyBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHN0cnVj
dCBTdGF0aXN0aWNzRGF0YSB7Ci0gICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNv
ZGVyKikgY29uc3Q7CisgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJikg
Y29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlcios
IFN0YXRpc3RpY3NEYXRhJik7CiAgICAgCiAgICAgSGFzaE1hcDxTdHJpbmcsIHVpbnQ2NF90PiBz
dGF0aXN0aWNzTnVtYmVyczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TdHJp
bmdQYWlyVmVjdG9yLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU3RyaW5nUGFpclZlY3Rvci5o
CmluZGV4IGNlMmRhNGEwOWIzNGYzMTU0NzY1ZDgwZmMxZGM4ODU4ZjEwODRmYTUuLjcwZmVhOTZm
ZmQyNGJiMGU5OGEwYTJlODMzZTg3NjhkYjcxY2MzN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9TdHJpbmdQYWlyVmVjdG9yLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L1N0cmluZ1BhaXJWZWN0b3IuaApAQCAtNDUsOSArNDUsOSBAQCBwdWJsaWM6CiAgICAgICAgIG1f
c3RyaW5nUGFpclZlY3Rvci5zd2FwKHN0cmluZ1BhaXJWZWN0b3IpOwogICAgIH0KIAotICAgIHZv
aWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKKyAgICB2
b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAg
ewotICAgICAgICBlbmNvZGVyLT5lbmNvZGUobV9zdHJpbmdQYWlyVmVjdG9yKTsKKyAgICAgICAg
ZW5jb2Rlci5lbmNvZGUobV9zdHJpbmdQYWlyVmVjdG9yKTsKICAgICB9CiAKICAgICBzdGF0aWMg
Ym9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBTdHJpbmdQYWly
VmVjdG9yJiBzdHJpbmdQYWlyVmVjdG9yKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL1VwZGF0ZUluZm8uY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1VwZGF0ZUluZm8uY3Bw
CmluZGV4IDViYjE4OTU5N2JiMDljMzEyZjZhZTQ3Zjc3NmQ3OTVjZjMyOTIxZGMuLmY3NWFkMWIw
NzMxODcxMGE5MzNmZWZlNDllZjM5NWY1ZTNmMzM5ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9VcGRhdGVJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVXBk
YXRlSW5mby5jcHAKQEAgLTMwLDE3ICszMCwxNyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAot
dm9pZCBVcGRhdGVJbmZvOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVy
KSBjb25zdAordm9pZCBVcGRhdGVJbmZvOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVy
JiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXItPmVuY29kZSh2aWV3U2l6ZSk7Ci0gICAg
ZW5jb2Rlci0+ZW5jb2RlKGRldmljZVNjYWxlRmFjdG9yKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUo
c2Nyb2xsUmVjdCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHNjcm9sbE9mZnNldCk7Ci0gICAgZW5j
b2Rlci0+ZW5jb2RlKHVwZGF0ZVJlY3RCb3VuZHMpOwotICAgIGVuY29kZXItPmVuY29kZSh1cGRh
dGVSZWN0cyk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHVwZGF0ZVNjYWxlRmFjdG9yKTsKLSAgICBl
bmNvZGVyLT5lbmNvZGUoYml0bWFwSGFuZGxlKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoYml0bWFw
T2Zmc2V0KTsKKyAgICBlbmNvZGVyLmVuY29kZSh2aWV3U2l6ZSk7CisgICAgZW5jb2Rlci5lbmNv
ZGUoZGV2aWNlU2NhbGVGYWN0b3IpOworICAgIGVuY29kZXIuZW5jb2RlKHNjcm9sbFJlY3QpOwor
ICAgIGVuY29kZXIuZW5jb2RlKHNjcm9sbE9mZnNldCk7CisgICAgZW5jb2Rlci5lbmNvZGUodXBk
YXRlUmVjdEJvdW5kcyk7CisgICAgZW5jb2Rlci5lbmNvZGUodXBkYXRlUmVjdHMpOworICAgIGVu
Y29kZXIuZW5jb2RlKHVwZGF0ZVNjYWxlRmFjdG9yKTsKKyAgICBlbmNvZGVyLmVuY29kZShiaXRt
YXBIYW5kbGUpOworICAgIGVuY29kZXIuZW5jb2RlKGJpdG1hcE9mZnNldCk7CiB9CiAKIGJvb2wg
VXBkYXRlSW5mbzo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgVXBk
YXRlSW5mbyYgcmVzdWx0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1VwZGF0
ZUluZm8uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9VcGRhdGVJbmZvLmgKaW5kZXggZTNhOGRl
Mjc4NDc1ZTk0YzRjZTBiMGM0NWMxOTI3Mjg2NzQ4ZGNmMy4uYzExYWEzNTQyODYxZGI2MGFiY2Yz
OTI5YWU3YjVlZTljMDE5MTM2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1Vw
ZGF0ZUluZm8uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVXBkYXRlSW5mby5oCkBAIC00
Myw3ICs0Myw3IEBAIGNsYXNzIFVwZGF0ZUluZm8gewogcHVibGljOgogICAgIFVwZGF0ZUluZm8o
KSB7IH0KIAotICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciopIGNvbnN0
OworICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OwogICAg
IHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBVcGRhdGVJbmZv
Jik7CiAKICAgICAvLyBUaGUgc2l6ZSBvZiB0aGUgd2ViIHZpZXcuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvVXNlck1lc3NhZ2VDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9Vc2VyTWVzc2FnZUNvZGVycy5oCmluZGV4IDlkOGFjNWM2YjhmNzJkYTBmOGIwNmY0N2Fj
Y2Q2MGI1ZWU1YzU4YzUuLjllZmYyYzk1M2IwZTJlOGJmNjRmOThjMjM3OWUxNmY0NDdhYmE5NmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Vc2VyTWVzc2FnZUNvZGVycy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Vc2VyTWVzc2FnZUNvZGVycy5oCkBAIC02NywxMTkg
KzY3LDExOSBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIHRlbXBsYXRlPHR5cGVuYW1lIE93bmVyPgog
Y2xhc3MgVXNlck1lc3NhZ2VFbmNvZGVyIHsKIHB1YmxpYzoKLSAgICBib29sIGJhc2VFbmNvZGUo
Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyLCBBUElPYmplY3Q6OlR5cGUmIHR5cGUp
IGNvbnN0IAorICAgIGJvb2wgYmFzZUVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVu
Y29kZXIsIEFQSU9iamVjdDo6VHlwZSYgdHlwZSkgY29uc3QKICAgICB7CiAgICAgICAgIGlmICgh
bV9yb290KSB7Ci0gICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGUoc3RhdGljX2Nhc3Q8dWludDMy
X3Q+KEFQSU9iamVjdDo6VHlwZU51bGwpKTsKKyAgICAgICAgICAgIGVuY29kZXIuZW5jb2RlKHN0
YXRpY19jYXN0PHVpbnQzMl90PihBUElPYmplY3Q6OlR5cGVOdWxsKSk7CiAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogCiAgICAgICAgIHR5cGUgPSBtX3Jvb3QtPnR5cGUoKTsK
LSAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKHN0YXRpY19jYXN0PHVpbnQzMl90Pih0eXBlKSk7Cisg
ICAgICAgIGVuY29kZXIuZW5jb2RlKHN0YXRpY19jYXN0PHVpbnQzMl90Pih0eXBlKSk7CiAKICAg
ICAgICAgc3dpdGNoICh0eXBlKSB7CiAgICAgICAgIGNhc2UgQVBJT2JqZWN0OjpUeXBlQXJyYXk6
IHsKICAgICAgICAgICAgIEltbXV0YWJsZUFycmF5KiBhcnJheSA9IHN0YXRpY19jYXN0PEltbXV0
YWJsZUFycmF5Kj4obV9yb290KTsKLSAgICAgICAgICAgIGVuY29kZXItPmVuY29kZShzdGF0aWNf
Y2FzdDx1aW50NjRfdD4oYXJyYXktPnNpemUoKSkpOworICAgICAgICAgICAgZW5jb2Rlci5lbmNv
ZGUoc3RhdGljX2Nhc3Q8dWludDY0X3Q+KGFycmF5LT5zaXplKCkpKTsKICAgICAgICAgICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgYXJyYXktPnNpemUoKTsgKytpKQotICAgICAgICAgICAgICAg
IGVuY29kZXItPmVuY29kZShPd25lcihhcnJheS0+YXQoaSkpKTsKKyAgICAgICAgICAgICAgICBl
bmNvZGVyLmVuY29kZShPd25lcihhcnJheS0+YXQoaSkpKTsKICAgICAgICAgICAgIHJldHVybiB0
cnVlOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgQVBJT2JqZWN0OjpUeXBlRGljdGlvbmFyeTog
ewogICAgICAgICAgICAgSW1tdXRhYmxlRGljdGlvbmFyeSogZGljdGlvbmFyeSA9IHN0YXRpY19j
YXN0PEltbXV0YWJsZURpY3Rpb25hcnkqPihtX3Jvb3QpOwogICAgICAgICAgICAgY29uc3QgSW1t
dXRhYmxlRGljdGlvbmFyeTo6TWFwVHlwZSYgbWFwID0gZGljdGlvbmFyeS0+bWFwKCk7Ci0gICAg
ICAgICAgICBlbmNvZGVyLT5lbmNvZGUoc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG1hcC5zaXplKCkp
KTsKKyAgICAgICAgICAgIGVuY29kZXIuZW5jb2RlKHN0YXRpY19jYXN0PHVpbnQ2NF90PihtYXAu
c2l6ZSgpKSk7CiAKICAgICAgICAgICAgIEltbXV0YWJsZURpY3Rpb25hcnk6Ok1hcFR5cGU6OmNv
bnN0X2l0ZXJhdG9yIGl0ID0gbWFwLmJlZ2luKCk7CiAgICAgICAgICAgICBJbW11dGFibGVEaWN0
aW9uYXJ5OjpNYXBUeXBlOjpjb25zdF9pdGVyYXRvciBlbmQgPSBtYXAuZW5kKCk7CiAgICAgICAg
ICAgICBmb3IgKDsgaXQgIT0gZW5kOyArK2l0KSB7Ci0gICAgICAgICAgICAgICAgZW5jb2Rlci0+
ZW5jb2RlKGl0LT5rZXkpOwotICAgICAgICAgICAgICAgIGVuY29kZXItPmVuY29kZShPd25lcihp
dC0+dmFsdWUuZ2V0KCkpKTsKKyAgICAgICAgICAgICAgICBlbmNvZGVyLmVuY29kZShpdC0+a2V5
KTsKKyAgICAgICAgICAgICAgICBlbmNvZGVyLmVuY29kZShPd25lcihpdC0+dmFsdWUuZ2V0KCkp
KTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAg
ICAgICAgIGNhc2UgQVBJT2JqZWN0OjpUeXBlU3RyaW5nOiB7CiAgICAgICAgICAgICBXZWJTdHJp
bmcqIHN0cmluZyA9IHN0YXRpY19jYXN0PFdlYlN0cmluZyo+KG1fcm9vdCk7Ci0gICAgICAgICAg
ICBlbmNvZGVyLT5lbmNvZGUoc3RyaW5nLT5zdHJpbmcoKSk7CisgICAgICAgICAgICBlbmNvZGVy
LmVuY29kZShzdHJpbmctPnN0cmluZygpKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAg
ICAgICB9CiAgICAgICAgIGNhc2UgQVBJT2JqZWN0OjpUeXBlU2VyaWFsaXplZFNjcmlwdFZhbHVl
OiB7CiAgICAgICAgICAgICBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUqIHNjcmlwdFZhbHVlID0g
c3RhdGljX2Nhc3Q8V2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlKj4obV9yb290KTsKLSAgICAgICAg
ICAgIGVuY29kZXItPmVuY29kZVZhcmlhYmxlTGVuZ3RoQnl0ZUFycmF5KHNjcmlwdFZhbHVlLT5k
YXRhUmVmZXJlbmNlKCkpOworICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGVWYXJpYWJsZUxlbmd0
aEJ5dGVBcnJheShzY3JpcHRWYWx1ZS0+ZGF0YVJlZmVyZW5jZSgpKTsKICAgICAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgQVBJT2JqZWN0OjpUeXBlQm9vbGVh
bjogewogICAgICAgICAgICAgV2ViQm9vbGVhbiogYm9vbGVhbk9iamVjdCA9IHN0YXRpY19jYXN0
PFdlYkJvb2xlYW4qPihtX3Jvb3QpOwotICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKGJvb2xl
YW5PYmplY3QtPnZhbHVlKCkpOworICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGUoYm9vbGVhbk9i
amVjdC0+dmFsdWUoKSk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAg
ICAgICBjYXNlIEFQSU9iamVjdDo6VHlwZURvdWJsZTogewogICAgICAgICAgICAgV2ViRG91Ymxl
KiBkb3VibGVPYmplY3QgPSBzdGF0aWNfY2FzdDxXZWJEb3VibGUqPihtX3Jvb3QpOwotICAgICAg
ICAgICAgZW5jb2Rlci0+ZW5jb2RlKGRvdWJsZU9iamVjdC0+dmFsdWUoKSk7CisgICAgICAgICAg
ICBlbmNvZGVyLmVuY29kZShkb3VibGVPYmplY3QtPnZhbHVlKCkpOwogICAgICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBBUElPYmplY3Q6OlR5cGVVSW50NjQ6
IHsKICAgICAgICAgICAgIFdlYlVJbnQ2NCogdWludDY0T2JqZWN0ID0gc3RhdGljX2Nhc3Q8V2Vi
VUludDY0Kj4obV9yb290KTsKLSAgICAgICAgICAgIGVuY29kZXItPmVuY29kZSh1aW50NjRPYmpl
Y3QtPnZhbHVlKCkpOworICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGUodWludDY0T2JqZWN0LT52
YWx1ZSgpKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgICAgIGNh
c2UgQVBJT2JqZWN0OjpUeXBlUG9pbnQ6IHsKICAgICAgICAgICAgIFdlYlBvaW50KiBwb2ludE9i
amVjdCA9IHN0YXRpY19jYXN0PFdlYlBvaW50Kj4obV9yb290KTsKLSAgICAgICAgICAgIGVuY29k
ZXItPmVuY29kZShwb2ludE9iamVjdC0+cG9pbnQoKS54KTsKLSAgICAgICAgICAgIGVuY29kZXIt
PmVuY29kZShwb2ludE9iamVjdC0+cG9pbnQoKS55KTsKKyAgICAgICAgICAgIGVuY29kZXIuZW5j
b2RlKHBvaW50T2JqZWN0LT5wb2ludCgpLngpOworICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGUo
cG9pbnRPYmplY3QtPnBvaW50KCkueSk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAg
ICAgfQogICAgICAgICBjYXNlIEFQSU9iamVjdDo6VHlwZVNpemU6IHsKICAgICAgICAgICAgIFdl
YlNpemUqIHNpemVPYmplY3QgPSBzdGF0aWNfY2FzdDxXZWJTaXplKj4obV9yb290KTsKLSAgICAg
ICAgICAgIGVuY29kZXItPmVuY29kZShzaXplT2JqZWN0LT5zaXplKCkud2lkdGgpOwotICAgICAg
ICAgICAgZW5jb2Rlci0+ZW5jb2RlKHNpemVPYmplY3QtPnNpemUoKS5oZWlnaHQpOworICAgICAg
ICAgICAgZW5jb2Rlci5lbmNvZGUoc2l6ZU9iamVjdC0+c2l6ZSgpLndpZHRoKTsKKyAgICAgICAg
ICAgIGVuY29kZXIuZW5jb2RlKHNpemVPYmplY3QtPnNpemUoKS5oZWlnaHQpOwogICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBBUElPYmplY3Q6OlR5cGVS
ZWN0OiB7CiAgICAgICAgICAgICBXZWJSZWN0KiByZWN0T2JqZWN0ID0gc3RhdGljX2Nhc3Q8V2Vi
UmVjdCo+KG1fcm9vdCk7Ci0gICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGUocmVjdE9iamVjdC0+
cmVjdCgpLm9yaWdpbi54KTsKLSAgICAgICAgICAgIGVuY29kZXItPmVuY29kZShyZWN0T2JqZWN0
LT5yZWN0KCkub3JpZ2luLnkpOwotICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKHJlY3RPYmpl
Y3QtPnJlY3QoKS5zaXplLndpZHRoKTsKLSAgICAgICAgICAgIGVuY29kZXItPmVuY29kZShyZWN0
T2JqZWN0LT5yZWN0KCkuc2l6ZS5oZWlnaHQpOworICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGUo
cmVjdE9iamVjdC0+cmVjdCgpLm9yaWdpbi54KTsKKyAgICAgICAgICAgIGVuY29kZXIuZW5jb2Rl
KHJlY3RPYmplY3QtPnJlY3QoKS5vcmlnaW4ueSk7CisgICAgICAgICAgICBlbmNvZGVyLmVuY29k
ZShyZWN0T2JqZWN0LT5yZWN0KCkuc2l6ZS53aWR0aCk7CisgICAgICAgICAgICBlbmNvZGVyLmVu
Y29kZShyZWN0T2JqZWN0LT5yZWN0KCkuc2l6ZS5oZWlnaHQpOwogICAgICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBBUElPYmplY3Q6OlR5cGVSZW5kZXJMYXll
cjogewogICAgICAgICAgICAgV2ViUmVuZGVyTGF5ZXIqIHJlbmRlckxheWVyID0gc3RhdGljX2Nh
c3Q8V2ViUmVuZGVyTGF5ZXIqPihtX3Jvb3QpOwotICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2Rl
KE93bmVyKHJlbmRlckxheWVyLT5yZW5kZXJlcigpKSk7Ci0gICAgICAgICAgICBlbmNvZGVyLT5l
bmNvZGUocmVuZGVyTGF5ZXItPmlzUmVmbGVjdGlvbigpKTsKLSAgICAgICAgICAgIGVuY29kZXIt
PmVuY29kZShyZW5kZXJMYXllci0+aXNDbGlwcGluZygpKTsKLSAgICAgICAgICAgIGVuY29kZXIt
PmVuY29kZShyZW5kZXJMYXllci0+aXNDbGlwcGVkKCkpOwotICAgICAgICAgICAgZW5jb2Rlci0+
ZW5jb2RlKHN0YXRpY19jYXN0PHVpbnQzMl90PihyZW5kZXJMYXllci0+Y29tcG9zaXRpbmdMYXll
clR5cGUoKSkpOwotICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKHJlbmRlckxheWVyLT5hYnNv
bHV0ZUJvdW5kaW5nQm94KCkpOwotICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKE93bmVyKHJl
bmRlckxheWVyLT5uZWdhdGl2ZVpPcmRlckxpc3QoKSkpOwotICAgICAgICAgICAgZW5jb2Rlci0+
ZW5jb2RlKE93bmVyKHJlbmRlckxheWVyLT5ub3JtYWxGbG93TGlzdCgpKSk7Ci0gICAgICAgICAg
ICBlbmNvZGVyLT5lbmNvZGUoT3duZXIocmVuZGVyTGF5ZXItPnBvc2l0aXZlWk9yZGVyTGlzdCgp
KSk7CisgICAgICAgICAgICBlbmNvZGVyLmVuY29kZShPd25lcihyZW5kZXJMYXllci0+cmVuZGVy
ZXIoKSkpOworICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGUocmVuZGVyTGF5ZXItPmlzUmVmbGVj
dGlvbigpKTsKKyAgICAgICAgICAgIGVuY29kZXIuZW5jb2RlKHJlbmRlckxheWVyLT5pc0NsaXBw
aW5nKCkpOworICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGUocmVuZGVyTGF5ZXItPmlzQ2xpcHBl
ZCgpKTsKKyAgICAgICAgICAgIGVuY29kZXIuZW5jb2RlKHN0YXRpY19jYXN0PHVpbnQzMl90Pihy
ZW5kZXJMYXllci0+Y29tcG9zaXRpbmdMYXllclR5cGUoKSkpOworICAgICAgICAgICAgZW5jb2Rl
ci5lbmNvZGUocmVuZGVyTGF5ZXItPmFic29sdXRlQm91bmRpbmdCb3goKSk7CisgICAgICAgICAg
ICBlbmNvZGVyLmVuY29kZShPd25lcihyZW5kZXJMYXllci0+bmVnYXRpdmVaT3JkZXJMaXN0KCkp
KTsKKyAgICAgICAgICAgIGVuY29kZXIuZW5jb2RlKE93bmVyKHJlbmRlckxheWVyLT5ub3JtYWxG
bG93TGlzdCgpKSk7CisgICAgICAgICAgICBlbmNvZGVyLmVuY29kZShPd25lcihyZW5kZXJMYXll
ci0+cG9zaXRpdmVaT3JkZXJMaXN0KCkpKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAg
ICAgICB9CiAgICAgICAgIGNhc2UgQVBJT2JqZWN0OjpUeXBlUmVuZGVyT2JqZWN0OiB7CiAgICAg
ICAgICAgICBXZWJSZW5kZXJPYmplY3QqIHJlbmRlck9iamVjdCA9IHN0YXRpY19jYXN0PFdlYlJl
bmRlck9iamVjdCo+KG1fcm9vdCk7Ci0gICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGUocmVuZGVy
T2JqZWN0LT5uYW1lKCkpOwotICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKHJlbmRlck9iamVj
dC0+ZWxlbWVudFRhZ05hbWUoKSk7Ci0gICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGUocmVuZGVy
T2JqZWN0LT5lbGVtZW50SUQoKSk7Ci0gICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGUoT3duZXIo
cmVuZGVyT2JqZWN0LT5lbGVtZW50Q2xhc3NOYW1lcygpKSk7Ci0gICAgICAgICAgICBlbmNvZGVy
LT5lbmNvZGUocmVuZGVyT2JqZWN0LT5hYnNvbHV0ZVBvc2l0aW9uKCkpOwotICAgICAgICAgICAg
ZW5jb2Rlci0+ZW5jb2RlKHJlbmRlck9iamVjdC0+ZnJhbWVSZWN0KCkpOwotICAgICAgICAgICAg
ZW5jb2Rlci0+ZW5jb2RlKE93bmVyKHJlbmRlck9iamVjdC0+Y2hpbGRyZW4oKS5nZXQoKSkpOwor
ICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGUocmVuZGVyT2JqZWN0LT5uYW1lKCkpOworICAgICAg
ICAgICAgZW5jb2Rlci5lbmNvZGUocmVuZGVyT2JqZWN0LT5lbGVtZW50VGFnTmFtZSgpKTsKKyAg
ICAgICAgICAgIGVuY29kZXIuZW5jb2RlKHJlbmRlck9iamVjdC0+ZWxlbWVudElEKCkpOworICAg
ICAgICAgICAgZW5jb2Rlci5lbmNvZGUoT3duZXIocmVuZGVyT2JqZWN0LT5lbGVtZW50Q2xhc3NO
YW1lcygpKSk7CisgICAgICAgICAgICBlbmNvZGVyLmVuY29kZShyZW5kZXJPYmplY3QtPmFic29s
dXRlUG9zaXRpb24oKSk7CisgICAgICAgICAgICBlbmNvZGVyLmVuY29kZShyZW5kZXJPYmplY3Qt
PmZyYW1lUmVjdCgpKTsKKyAgICAgICAgICAgIGVuY29kZXIuZW5jb2RlKE93bmVyKHJlbmRlck9i
amVjdC0+Y2hpbGRyZW4oKS5nZXQoKSkpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
ICAgIH0KICAgICAgICAgY2FzZSBBUElPYmplY3Q6OlR5cGVVUkw6IHsKICAgICAgICAgICAgIFdl
YlVSTCogdXJsT2JqZWN0ID0gc3RhdGljX2Nhc3Q8V2ViVVJMKj4obV9yb290KTsKLSAgICAgICAg
ICAgIGVuY29kZXItPmVuY29kZSh1cmxPYmplY3QtPnN0cmluZygpKTsKKyAgICAgICAgICAgIGVu
Y29kZXIuZW5jb2RlKHVybE9iamVjdC0+c3RyaW5nKCkpOwogICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBBUElPYmplY3Q6OlR5cGVVUkxSZXF1ZXN0OiB7
CiAgICAgICAgICAgICBXZWJVUkxSZXF1ZXN0KiB1cmxSZXF1ZXN0T2JqZWN0ID0gc3RhdGljX2Nh
c3Q8V2ViVVJMUmVxdWVzdCo+KG1fcm9vdCk7Ci0gICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGUo
dXJsUmVxdWVzdE9iamVjdC0+cmVzb3VyY2VSZXF1ZXN0KCkpOworICAgICAgICAgICAgZW5jb2Rl
ci5lbmNvZGUodXJsUmVxdWVzdE9iamVjdC0+cmVzb3VyY2VSZXF1ZXN0KCkpOwogICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBBUElPYmplY3Q6OlR5cGVV
c2VyQ29udGVudFVSTFBhdHRlcm46IHsKICAgICAgICAgICAgIFdlYlVzZXJDb250ZW50VVJMUGF0
dGVybiogdXJsUGF0dGVybiA9IHN0YXRpY19jYXN0PFdlYlVzZXJDb250ZW50VVJMUGF0dGVybio+
KG1fcm9vdCk7Ci0gICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGUodXJsUGF0dGVybi0+cGF0dGVy
blN0cmluZygpKTsKKyAgICAgICAgICAgIGVuY29kZXIuZW5jb2RlKHVybFBhdHRlcm4tPnBhdHRl
cm5TdHJpbmcoKSk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgICAg
ICBjYXNlIEFQSU9iamVjdDo6VHlwZUltYWdlOiB7CkBAIC0xODksMjQgKzE4OSwyNCBAQCBwdWJs
aWM6CiAgICAgICAgICAgICBBU1NFUlQoIWltYWdlLT5iaXRtYXAoKSB8fCBpbWFnZS0+Yml0bWFw
KCktPmlzQmFja2VkQnlTaGFyZWRNZW1vcnkoKSk7ICAgICAgICAgICAgCiAgICAgICAgICAgICBp
ZiAoIWltYWdlLT5iaXRtYXAoKSB8fCAhaW1hZ2UtPmJpdG1hcCgpLT5pc0JhY2tlZEJ5U2hhcmVk
TWVtb3J5KCkgfHwgIWltYWdlLT5iaXRtYXAoKS0+Y3JlYXRlSGFuZGxlKGhhbmRsZSkpIHsKICAg
ICAgICAgICAgICAgICAvLyBJbml0aWFsIGZhbHNlIGluZGljYXRlcyBubyBhbGxvY2F0ZWQgYml0
bWFwIG9yIGlzIG5vdCBzaGFyZWFibGUuCi0gICAgICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2Rl
KGZhbHNlKTsKKyAgICAgICAgICAgICAgICBlbmNvZGVyLmVuY29kZShmYWxzZSk7CiAgICAgICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIC8vIElu
aXRpYWwgdHJ1ZSBpbmRpY2F0ZXMgYSBiaXRtYXAgd2FzIGFsbG9jYXRlZCBhbmQgaXMgc2hhcmVh
YmxlLgotICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKHRydWUpOworICAgICAgICAgICAgZW5j
b2Rlci5lbmNvZGUodHJ1ZSk7CiAKLSAgICAgICAgICAgIGVuY29kZXItPmVuY29kZShoYW5kbGUp
OworICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGUoaGFuZGxlKTsKICAgICAgICAgICAgIHJldHVy
biB0cnVlOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgQVBJT2JqZWN0OjpUeXBlRGF0YTogewog
ICAgICAgICAgICAgV2ViRGF0YSogZGF0YSA9IHN0YXRpY19jYXN0PFdlYkRhdGEqPihtX3Jvb3Qp
OwotICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlVmFyaWFibGVMZW5ndGhCeXRlQXJyYXkoZGF0
YS0+ZGF0YVJlZmVyZW5jZSgpKTsKKyAgICAgICAgICAgIGVuY29kZXIuZW5jb2RlVmFyaWFibGVM
ZW5ndGhCeXRlQXJyYXkoZGF0YS0+ZGF0YVJlZmVyZW5jZSgpKTsKICAgICAgICAgICAgIHJldHVy
biB0cnVlOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgQVBJT2JqZWN0OjpUeXBlQ2VydGlmaWNh
dGVJbmZvOiB7CiAgICAgICAgICAgICBXZWJDZXJ0aWZpY2F0ZUluZm8qIGNlcnRpZmljYXRlSW5m
byA9IHN0YXRpY19jYXN0PFdlYkNlcnRpZmljYXRlSW5mbyo+KG1fcm9vdCk7Ci0gICAgICAgICAg
ICBlbmNvZGVyLT5lbmNvZGUoY2VydGlmaWNhdGVJbmZvLT5wbGF0Zm9ybUNlcnRpZmljYXRlSW5m
bygpKTsKKyAgICAgICAgICAgIGVuY29kZXIuZW5jb2RlKGNlcnRpZmljYXRlSW5mby0+cGxhdGZv
cm1DZXJ0aWZpY2F0ZUluZm8oKSk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAg
fQogICAgICAgICBkZWZhdWx0OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YkNvbnRleHRNZW51SXRlbURhdGEuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvbnRl
eHRNZW51SXRlbURhdGEuY3BwCmluZGV4IDkwMWNlOWM0N2YxYzVkMzNiY2MxNmZiYmNhMDRkMjRj
OWU4MzAxN2IuLjkxNTlmMDI5Y2E0ZGE5N2I2ZTNkMjc0ZWIyYmYyZDI1MjMwMjY1ZjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb250ZXh0TWVudUl0ZW1EYXRhLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5jcHAKQEAg
LTEwNCwxNCArMTA0LDE0IEBAIHZvaWQgV2ViQ29udGV4dE1lbnVJdGVtRGF0YTo6c2V0VXNlckRh
dGEoQVBJT2JqZWN0KiB1c2VyRGF0YSkKICAgICBtX3VzZXJEYXRhID0gdXNlckRhdGE7CiB9CiAg
ICAgCi12b2lkIFdlYkNvbnRleHRNZW51SXRlbURhdGE6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVu
dEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Cit2b2lkIFdlYkNvbnRleHRNZW51SXRlbURhdGE6OmVu
Y29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5j
b2Rlci0+ZW5jb2RlRW51bShtX3R5cGUpOwotICAgIGVuY29kZXItPmVuY29kZUVudW0obV9hY3Rp
b24pOwotICAgIGVuY29kZXItPmVuY29kZShtX3RpdGxlKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUo
bV9jaGVja2VkKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobV9lbmFibGVkKTsKLSAgICBlbmNvZGVy
LT5lbmNvZGUobV9zdWJtZW51KTsKKyAgICBlbmNvZGVyLmVuY29kZUVudW0obV90eXBlKTsKKyAg
ICBlbmNvZGVyLmVuY29kZUVudW0obV9hY3Rpb24pOworICAgIGVuY29kZXIuZW5jb2RlKG1fdGl0
bGUpOworICAgIGVuY29kZXIuZW5jb2RlKG1fY2hlY2tlZCk7CisgICAgZW5jb2Rlci5lbmNvZGUo
bV9lbmFibGVkKTsKKyAgICBlbmNvZGVyLmVuY29kZShtX3N1Ym1lbnUpOwogfQogCiBib29sIFdl
YkNvbnRleHRNZW51SXRlbURhdGE6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRl
Y29kZXIsIFdlYkNvbnRleHRNZW51SXRlbURhdGEmIGl0ZW0pCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5oIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYkNvbnRleHRNZW51SXRlbURhdGEuaAppbmRleCAxMDZiZGYwMTYwOGY5YmVhYjNk
Nzg4NjYwMjBjOTQ3NzA3ODIxY2ZiLi45MjEyZTI4MTMyMjFhZjI2ZTQ3ZjVlMTk2Njc3MDUzMmM3
NDNhNTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29udGV4dE1lbnVJ
dGVtRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb250ZXh0TWVudUl0ZW1E
YXRhLmgKQEAgLTYzLDcgKzYzLDcgQEAgcHVibGljOgogICAgIEFQSU9iamVjdCogdXNlckRhdGEo
KSBjb25zdDsKICAgICB2b2lkIHNldFVzZXJEYXRhKEFQSU9iamVjdCopOwogICAgIAotICAgIHZv
aWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciopIGNvbnN0OworICAgIHZvaWQgZW5j
b2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRl
Y29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBXZWJDb250ZXh0TWVudUl0ZW1EYXRhJik7
CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViRXZlbnQu
Y3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkV2ZW50LmNwcAppbmRleCA3MGJmZmEyYzFl
ODE3YWIzMmZhOWUxNzNmNGIxODJkNDg4MWYwNmY4Li5kODZjZjgzZTE5YjIzNGRiMzA5Y2U0MWVl
Y2E1ZmY4ZjFlMjY3YmIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViRXZl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJFdmVudC5jcHAKQEAgLTQ2LDEx
ICs0NiwxMSBAQCBXZWJFdmVudDo6V2ViRXZlbnQoVHlwZSB0eXBlLCBNb2RpZmllcnMgbW9kaWZp
ZXJzLCBkb3VibGUgdGltZXN0YW1wKQogewogfQogCi12b2lkIFdlYkV2ZW50OjplbmNvZGUoQ29y
ZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAordm9pZCBXZWJFdmVudDo6ZW5j
b2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNv
ZGVyLT5lbmNvZGUobV90eXBlKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobV9tb2RpZmllcnMpOwot
ICAgIGVuY29kZXItPmVuY29kZShtX3RpbWVzdGFtcCk7CisgICAgZW5jb2Rlci5lbmNvZGUobV90
eXBlKTsKKyAgICBlbmNvZGVyLmVuY29kZShtX21vZGlmaWVycyk7CisgICAgZW5jb2Rlci5lbmNv
ZGUobV90aW1lc3RhbXApOwogfQogCiBib29sIFdlYkV2ZW50OjpkZWNvZGUoQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKiBkZWNvZGVyLCBXZWJFdmVudCYgcmVzdWx0KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYkV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
RXZlbnQuaAppbmRleCA4MTExZDUxNjA1NGM4OGM1ZTMxOGFjYWRjYTY4M2Q4MjI1NDMzOGI4Li45
NjgxZGMxNjBkZWY1OWExYjZhN2U0YzI5Yjk5ZDA4ZDVhMDhjYjE5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViRXZlbnQuaApAQCAtMTAzLDcgKzEwMyw3IEBAIHByb3RlY3RlZDoKIAogICAgIFdlYkV2ZW50
KFR5cGUsIE1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCk7CiAKLSAgICB2b2lkIGVuY29kZShD
b3JlSVBDOjpBcmd1bWVudEVuY29kZXIqKSBjb25zdDsKKyAgICB2b2lkIGVuY29kZShDb3JlSVBD
OjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQ
Qzo6QXJndW1lbnREZWNvZGVyKiwgV2ViRXZlbnQmKTsKIAogcHJpdmF0ZToKQEAgLTE0MCw3ICsx
NDAsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBkaWRBY3RpdmF0ZVdlYlZpZXcoKSBjb25zdCB7IHJl
dHVybiBtX2RpZEFjdGl2YXRlV2ViVmlldzsgfQogI2VuZGlmCiAKLSAgICB2b2lkIGVuY29kZShD
b3JlSVBDOjpBcmd1bWVudEVuY29kZXIqKSBjb25zdDsKKyAgICB2b2lkIGVuY29kZShDb3JlSVBD
OjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQ
Qzo6QXJndW1lbnREZWNvZGVyKiwgV2ViTW91c2VFdmVudCYpOwogCiBwcml2YXRlOgpAQCAtMTk5
LDcgKzE5OSw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHVuYWNj
ZWxlcmF0ZWRTY3JvbGxpbmdEZWx0YSgpIGNvbnN0IHsgcmV0dXJuIG1fdW5hY2NlbGVyYXRlZFNj
cm9sbGluZ0RlbHRhOyB9CiAjZW5kaWYKIAotICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3Vt
ZW50RW5jb2RlciopIGNvbnN0OworICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5j
b2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqLCBXZWJXaGVlbEV2ZW50Jik7CiAKIHByaXZhdGU6CkBAIC0yMzcsNyArMjM3LDcgQEAg
cHVibGljOgogICAgIGJvb2wgaXNLZXlwYWQoKSBjb25zdCB7IHJldHVybiBtX2lzS2V5cGFkOyB9
CiAgICAgYm9vbCBpc1N5c3RlbUtleSgpIGNvbnN0IHsgcmV0dXJuIG1faXNTeXN0ZW1LZXk7IH0K
IAotICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciopIGNvbnN0OworICAg
IHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRp
YyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBXZWJLZXlib2FyZEV2ZW50
Jik7CiAKICAgICBzdGF0aWMgYm9vbCBpc0tleWJvYXJkRXZlbnRUeXBlKFR5cGUpOwpAQCAtMjY4
LDcgKzI2OCw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBXZWJDb3JlOjpJbnRTaXplIGFyZWEoKSBj
b25zdCB7IHJldHVybiBtX2FyZWE7IH0KICAgICBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50IGRl
bHRhKCkgY29uc3QgeyByZXR1cm4gbV9kZWx0YTsgfQogCi0gICAgdm9pZCBlbmNvZGUoQ29yZUlQ
Qzo6QXJndW1lbnRFbmNvZGVyKikgY29uc3Q7CisgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJn
dW1lbnRFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciosIFdlYkdlc3R1cmVFdmVudCYpOwogCiBwcml2YXRlOgpAQCAtMzEzLDcg
KzMxMyw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0U3RhdGUoVG91Y2hQb2ludFN0YXRlIHN0
YXRlKSB7IG1fc3RhdGUgPSBzdGF0ZTsgfQogCi0gICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJn
dW1lbnRFbmNvZGVyKikgY29uc3Q7CisgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRF
bmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciosIFdlYlBsYXRmb3JtVG91Y2hQb2ludCYpOwogCiBwcml2YXRlOgpAQCAtMzM2LDcg
KzMzNiw3IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9p
bnQ+JiB0b3VjaFBvaW50cygpIGNvbnN0IHsgcmV0dXJuIG1fdG91Y2hQb2ludHM7IH0KIAotICAg
IHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciopIGNvbnN0OworICAgIHZvaWQg
ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29s
IGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBXZWJUb3VjaEV2ZW50Jik7CiAgIAog
cHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJHZW9sb2NhdGlv
blBvc2l0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJHZW9sb2NhdGlvblBvc2l0
aW9uLmNwcAppbmRleCA3N2Q1MjRjZjRjNDc3YThkMTBmNDEwNzRkMWUxNTg3MTVkMGJkOTA1Li5m
ZWFkMDBlODdlMTE4ZGVhNDFlMTA1MjAyNzY0NTFkNmJmNzFlY2VmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uY3BwCkBAIC01MSw5ICs1MSw5
IEBAIFdlYkdlb2xvY2F0aW9uUG9zaXRpb246On5XZWJHZW9sb2NhdGlvblBvc2l0aW9uKCkKIHsK
IH0KIAotdm9pZCBXZWJHZW9sb2NhdGlvblBvc2l0aW9uOjpEYXRhOjplbmNvZGUoQ29yZUlQQzo6
QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAordm9pZCBXZWJHZW9sb2NhdGlvblBvc2l0
aW9uOjpEYXRhOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25z
dAogewotICAgIENvcmVJUEM6OlNpbXBsZUFyZ3VtZW50Q29kZXI8V2ViR2VvbG9jYXRpb25Qb3Np
dGlvbjo6RGF0YT46OmVuY29kZShlbmNvZGVyLCAqdGhpcyk7CisgICAgQ29yZUlQQzo6U2ltcGxl
QXJndW1lbnRDb2RlcjxXZWJHZW9sb2NhdGlvblBvc2l0aW9uOjpEYXRhPjo6ZW5jb2RlKCZlbmNv
ZGVyLCAqdGhpcyk7CiB9CiAKIGJvb2wgV2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6RGF0YTo6ZGVj
b2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgRGF0YSYgZGF0YSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmggYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5oCmluZGV4IGE4N2Ji
MDYyZDFjYjM1M2I5ZGRlYTRkNzhiMTlkMTUzM2ExNzAxOWEuLjUyZWJlZDk5MjNiYTczNmY2MWZm
ODkxYjcwNDY5NjNhMTQxZDA5NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJHZW9sb2NhdGlvblBvc2l0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkdl
b2xvY2F0aW9uUG9zaXRpb24uaApAQCAtMzgsNyArMzgsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5cGVHZW9sb2NhdGlvblBvc2l0aW9uOwogCiAgICAgc3Ry
dWN0IERhdGEgewotICAgICAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIq
KSBjb25zdDsKKyAgICAgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJikg
Y29uc3Q7CiAgICAgICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29k
ZXIqLCBEYXRhJik7CiAKICAgICAgICAgZG91YmxlIHRpbWVzdGFtcDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJHZXN0dXJlRXZlbnQuY3BwIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYkdlc3R1cmVFdmVudC5jcHAKaW5kZXggZDQ5MWE1NzA3YWRkY2U3NWJlMzQwZWFl
OTUzNDQyMDFiNDE2NDQwYy4uZTMxNzhjZGNmYjhmNDAwYTJhZmQ4NzRjMjlhZWFjZDRkMTlhMmJj
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkdlc3R1cmVFdmVudC5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkdlc3R1cmVFdmVudC5jcHAKQEAgLTUzLDE0
ICs1MywxNCBAQCBXZWJHZXN0dXJlRXZlbnQ6OldlYkdlc3R1cmVFdmVudChUeXBlIHR5cGUsIGNv
bnN0IEludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgSW50UAogICAgIEFTU0VSVChpc0dlc3R1cmVF
dmVudFR5cGUodHlwZSkpOwogfQogCi12b2lkIFdlYkdlc3R1cmVFdmVudDo6ZW5jb2RlKENvcmVJ
UEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKK3ZvaWQgV2ViR2VzdHVyZUV2ZW50
OjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewogICAg
IFdlYkV2ZW50OjplbmNvZGUoZW5jb2Rlcik7CiAKLSAgICBlbmNvZGVyLT5lbmNvZGUobV9wb3Np
dGlvbik7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG1fZ2xvYmFsUG9zaXRpb24pOwotICAgIGVuY29k
ZXItPmVuY29kZShtX2FyZWEpOwotICAgIGVuY29kZXItPmVuY29kZShtX2RlbHRhKTsKKyAgICBl
bmNvZGVyLmVuY29kZShtX3Bvc2l0aW9uKTsKKyAgICBlbmNvZGVyLmVuY29kZShtX2dsb2JhbFBv
c2l0aW9uKTsKKyAgICBlbmNvZGVyLmVuY29kZShtX2FyZWEpOworICAgIGVuY29kZXIuZW5jb2Rl
KG1fZGVsdGEpOwogfQogCiBib29sIFdlYkdlc3R1cmVFdmVudDo6ZGVjb2RlKENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciogZGVjb2RlciwgV2ViR2VzdHVyZUV2ZW50JiB0KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkhpdFRlc3RSZXN1bHQuY3BwIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYkhpdFRlc3RSZXN1bHQuY3BwCmluZGV4IDc5OWVkNTIyMGRhMGY2Njg3ZTkx
NTc5MjJlMWEwOWI2MDZiOTE1YjAuLmY4MWYxMWQzOTEyOWE1ZDkwZWYxZWRjOTQ1YTQ0MTAyMTg5
NGEzNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJIaXRUZXN0UmVzdWx0
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViSGl0VGVzdFJlc3VsdC5jcHAKQEAg
LTM0LDE2ICszNCwxNiBAQCBQYXNzUmVmUHRyPFdlYkhpdFRlc3RSZXN1bHQ+IFdlYkhpdFRlc3RS
ZXN1bHQ6OmNyZWF0ZShjb25zdCBXZWJIaXRUZXN0UmVzdWx0OjpEYQogICAgIHJldHVybiBhZG9w
dFJlZihuZXcgV2ViSGl0VGVzdFJlc3VsdChoaXRUZXN0UmVzdWx0RGF0YSkpOwogfQogCi12b2lk
IFdlYkhpdFRlc3RSZXN1bHQ6OkRhdGE6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIq
IGVuY29kZXIpIGNvbnN0Cit2b2lkIFdlYkhpdFRlc3RSZXN1bHQ6OkRhdGE6OmVuY29kZShDb3Jl
SVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2Rlci0+ZW5j
b2RlKGFic29sdXRlSW1hZ2VVUkwpOwotICAgIGVuY29kZXItPmVuY29kZShhYnNvbHV0ZVBERlVS
TCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGFic29sdXRlTGlua1VSTCk7Ci0gICAgZW5jb2Rlci0+
ZW5jb2RlKGFic29sdXRlTWVkaWFVUkwpOwotICAgIGVuY29kZXItPmVuY29kZShsaW5rTGFiZWwp
OwotICAgIGVuY29kZXItPmVuY29kZShsaW5rVGl0bGUpOwotICAgIGVuY29kZXItPmVuY29kZShp
c0NvbnRlbnRFZGl0YWJsZSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGVsZW1lbnRCb3VuZGluZ0Jv
eCk7CisgICAgZW5jb2Rlci5lbmNvZGUoYWJzb2x1dGVJbWFnZVVSTCk7CisgICAgZW5jb2Rlci5l
bmNvZGUoYWJzb2x1dGVQREZVUkwpOworICAgIGVuY29kZXIuZW5jb2RlKGFic29sdXRlTGlua1VS
TCk7CisgICAgZW5jb2Rlci5lbmNvZGUoYWJzb2x1dGVNZWRpYVVSTCk7CisgICAgZW5jb2Rlci5l
bmNvZGUobGlua0xhYmVsKTsKKyAgICBlbmNvZGVyLmVuY29kZShsaW5rVGl0bGUpOworICAgIGVu
Y29kZXIuZW5jb2RlKGlzQ29udGVudEVkaXRhYmxlKTsKKyAgICBlbmNvZGVyLmVuY29kZShlbGVt
ZW50Qm91bmRpbmdCb3gpOwogfQogCiBib29sIFdlYkhpdFRlc3RSZXN1bHQ6OkRhdGE6OmRlY29k
ZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIFdlYkhpdFRlc3RSZXN1bHQ6OkRh
dGEmIGhpdFRlc3RSZXN1bHREYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYkhpdFRlc3RSZXN1bHQuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJIaXRUZXN0UmVz
dWx0LmgKaW5kZXggZTUzYTVjN2UyNjU3N2U2YzNjNTc4OTFjYjYwODMxZGY1NThkMDM5Ni4uNzM5
MDUwZTExYmZmMzQ0YzA4ZjZkNmM4NzQ4MTY2NzkzNzFmOGMyOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYkhpdFRlc3RSZXN1bHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViSGl0VGVzdFJlc3VsdC5oCkBAIC04Niw3ICs4Niw3IEBAIHB1YmxpYzoKICAgICAg
ICAgewogICAgICAgICB9CiAKLSAgICAgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRF
bmNvZGVyKikgY29uc3Q7CisgICAgICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5j
b2RlciYpIGNvbnN0OwogICAgICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKiwgV2ViSGl0VGVzdFJlc3VsdDo6RGF0YSYpOwogICAgIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJLZXlib2FyZEV2ZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJLZXlib2FyZEV2ZW50LmNwcAppbmRleCAxMTliODY0MTY5OGIyMmZj
NjE5NzE3OWJlODczNGRkNTA1NjNkMjZlLi5kODFjODYzNjQ0MTkzNjE5NjExOGU3NzhmYmQzMGJh
ZjZkZWNkNjExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViS2V5Ym9hcmRF
dmVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYktleWJvYXJkRXZlbnQuY3Bw
CkBAIC00NSwxOSArNDUsMTkgQEAgV2ViS2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudChU
eXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJgogICAgIEFTU0VSVChp
c0tleWJvYXJkRXZlbnRUeXBlKHR5cGUpKTsKIH0KIAotdm9pZCBXZWJLZXlib2FyZEV2ZW50Ojpl
bmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAordm9pZCBXZWJL
ZXlib2FyZEV2ZW50OjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBj
b25zdAogewogICAgIFdlYkV2ZW50OjplbmNvZGUoZW5jb2Rlcik7CiAKLSAgICBlbmNvZGVyLT5l
bmNvZGUobV90ZXh0KTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobV91bm1vZGlmaWVkVGV4dCk7Ci0g
ICAgZW5jb2Rlci0+ZW5jb2RlKG1fa2V5SWRlbnRpZmllcik7Ci0gICAgZW5jb2Rlci0+ZW5jb2Rl
KG1fd2luZG93c1ZpcnR1YWxLZXlDb2RlKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobV9uYXRpdmVW
aXJ0dWFsS2V5Q29kZSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG1fbWFjQ2hhckNvZGUpOwotICAg
IGVuY29kZXItPmVuY29kZShtX2lzQXV0b1JlcGVhdCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG1f
aXNLZXlwYWQpOwotICAgIGVuY29kZXItPmVuY29kZShtX2lzU3lzdGVtS2V5KTsKKyAgICBlbmNv
ZGVyLmVuY29kZShtX3RleHQpOworICAgIGVuY29kZXIuZW5jb2RlKG1fdW5tb2RpZmllZFRleHQp
OworICAgIGVuY29kZXIuZW5jb2RlKG1fa2V5SWRlbnRpZmllcik7CisgICAgZW5jb2Rlci5lbmNv
ZGUobV93aW5kb3dzVmlydHVhbEtleUNvZGUpOworICAgIGVuY29kZXIuZW5jb2RlKG1fbmF0aXZl
VmlydHVhbEtleUNvZGUpOworICAgIGVuY29kZXIuZW5jb2RlKG1fbWFjQ2hhckNvZGUpOworICAg
IGVuY29kZXIuZW5jb2RlKG1faXNBdXRvUmVwZWF0KTsKKyAgICBlbmNvZGVyLmVuY29kZShtX2lz
S2V5cGFkKTsKKyAgICBlbmNvZGVyLmVuY29kZShtX2lzU3lzdGVtS2V5KTsKIH0KIAogYm9vbCBX
ZWJLZXlib2FyZEV2ZW50OjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVy
LCBXZWJLZXlib2FyZEV2ZW50JiByZXN1bHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViTW91c2VFdmVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTW91c2VF
dmVudC5jcHAKaW5kZXggMzJlNmFjMWYzMmZjMWJjMzE2MmNhNTQwN2QyMTI0MDdjYzVmNzcyZC4u
NDczZGU0MDdjMDg5ZTFjYTBhNjUxNTBkN2FlNDU2MzIzZjk5Zjc1ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYk1vdXNlRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJNb3VzZUV2ZW50LmNwcApAQCAtNzgsMjAgKzc4LDIwIEBAIFdlYk1vdXNlRXZl
bnQ6OldlYk1vdXNlRXZlbnQoVHlwZSB0eXBlLCBCdXR0b24gYnV0dG9uLCBjb25zdCBJbnRQb2lu
dCYgcG9zaXRpb24sCiB9CiAjZW5kaWYKIAotdm9pZCBXZWJNb3VzZUV2ZW50OjplbmNvZGUoQ29y
ZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAordm9pZCBXZWJNb3VzZUV2ZW50
OjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewogICAg
IFdlYkV2ZW50OjplbmNvZGUoZW5jb2Rlcik7CiAKLSAgICBlbmNvZGVyLT5lbmNvZGUobV9idXR0
b24pOwotICAgIGVuY29kZXItPmVuY29kZShtX3Bvc2l0aW9uKTsKLSAgICBlbmNvZGVyLT5lbmNv
ZGUobV9nbG9iYWxQb3NpdGlvbik7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG1fZGVsdGFYKTsKLSAg
ICBlbmNvZGVyLT5lbmNvZGUobV9kZWx0YVkpOwotICAgIGVuY29kZXItPmVuY29kZShtX2RlbHRh
Wik7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG1fY2xpY2tDb3VudCk7CisgICAgZW5jb2Rlci5lbmNv
ZGUobV9idXR0b24pOworICAgIGVuY29kZXIuZW5jb2RlKG1fcG9zaXRpb24pOworICAgIGVuY29k
ZXIuZW5jb2RlKG1fZ2xvYmFsUG9zaXRpb24pOworICAgIGVuY29kZXIuZW5jb2RlKG1fZGVsdGFY
KTsKKyAgICBlbmNvZGVyLmVuY29kZShtX2RlbHRhWSk7CisgICAgZW5jb2Rlci5lbmNvZGUobV9k
ZWx0YVopOworICAgIGVuY29kZXIuZW5jb2RlKG1fY2xpY2tDb3VudCk7CiAKICNpZiBQTEFURk9S
TShXSU4pCi0gICAgZW5jb2Rlci0+ZW5jb2RlKG1fZGlkQWN0aXZhdGVXZWJWaWV3KTsKKyAgICBl
bmNvZGVyLmVuY29kZShtX2RpZEFjdGl2YXRlV2ViVmlldyk7CiAjZW5kaWYKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYk5hdmlnYXRpb25EYXRhU3RvcmUuaCBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJOYXZpZ2F0aW9uRGF0YVN0b3JlLmgKaW5kZXggOTQ3ZDA5
MGM5ZTNkNmZmMTRjYTA2NDYwMzFiYzA3MTAxOWUyMGExOC4uOWNkMTBmNzllOTBhOTU0YjFjNTQz
ZjllOWRiYzVmN2ZkZjNjZGI3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
Yk5hdmlnYXRpb25EYXRhU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTmF2
aWdhdGlvbkRhdGFTdG9yZS5oCkBAIC0zNSwxMSArMzUsMTEgQEAKIG5hbWVzcGFjZSBXZWJLaXQg
ewogCiBzdHJ1Y3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZSB7Ci0gICAgdm9pZCBlbmNvZGUoQ29y
ZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAorICAgIHZvaWQgZW5jb2RlKENv
cmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICB7Ci0gICAgICAgIGVu
Y29kZXItPmVuY29kZSh1cmwpOwotICAgICAgICBlbmNvZGVyLT5lbmNvZGUodGl0bGUpOwotICAg
ICAgICBlbmNvZGVyLT5lbmNvZGUob3JpZ2luYWxSZXF1ZXN0KTsKKyAgICAgICAgZW5jb2Rlci5l
bmNvZGUodXJsKTsKKyAgICAgICAgZW5jb2Rlci5lbmNvZGUodGl0bGUpOworICAgICAgICBlbmNv
ZGVyLmVuY29kZShvcmlnaW5hbFJlcXVlc3QpOwogICAgIH0KIAogICAgIHN0YXRpYyBib29sIGRl
Y29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIFdlYk5hdmlnYXRpb25EYXRh
U3RvcmUmIHN0b3JlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VD
cmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IDI3ZDU1NDM0YTZmYWE3NTA1ZWI3ZTNiMTIxYjQ5ZThj
MWE1NjI4ZWUuLjE3ZGViZThkMTE2ODcyZDNkZjlkMGU2ZTAyNDQ5Yzc1OTU5ZjYyODMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5j
cHAKQEAgLTMwLDQyICszMCw0MiBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdm9pZCBXZWJQ
YWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBl
bmNvZGVyKSBjb25zdAordm9pZCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoQ29y
ZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXItPmVu
Y29kZSh2aWV3U2l6ZSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGlzQWN0aXZlKTsKLSAgICBlbmNv
ZGVyLT5lbmNvZGUoaXNGb2N1c2VkKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoaXNWaXNpYmxlKTsK
LSAgICBlbmNvZGVyLT5lbmNvZGUoaXNJbldpbmRvdyk7CisgICAgZW5jb2Rlci5lbmNvZGUodmll
d1NpemUpOworICAgIGVuY29kZXIuZW5jb2RlKGlzQWN0aXZlKTsKKyAgICBlbmNvZGVyLmVuY29k
ZShpc0ZvY3VzZWQpOworICAgIGVuY29kZXIuZW5jb2RlKGlzVmlzaWJsZSk7CisgICAgZW5jb2Rl
ci5lbmNvZGUoaXNJbldpbmRvdyk7CiAKLSAgICBlbmNvZGVyLT5lbmNvZGUoc3RvcmUpOwotICAg
IGVuY29kZXItPmVuY29kZUVudW0oZHJhd2luZ0FyZWFUeXBlKTsKLSAgICBlbmNvZGVyLT5lbmNv
ZGUocGFnZUdyb3VwRGF0YSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGRyYXdzQmFja2dyb3VuZCk7
Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGRyYXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kKTsKLSAgICBl
bmNvZGVyLT5lbmNvZGUoYXJlTWVtb3J5Q2FjaGVDbGllbnRDYWxsc0VuYWJsZWQpOwotICAgIGVu
Y29kZXItPmVuY29kZSh1c2VGaXhlZExheW91dCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGZpeGVk
TGF5b3V0U2l6ZSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlRW51bShwYWdpbmF0aW9uTW9kZSk7Ci0g
ICAgZW5jb2Rlci0+ZW5jb2RlKHBhZ2luYXRpb25CZWhhdmVzTGlrZUNvbHVtbnMpOwotICAgIGVu
Y29kZXItPmVuY29kZShwYWdlTGVuZ3RoKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoZ2FwQmV0d2Vl
blBhZ2VzKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUodXNlckFnZW50KTsKLSAgICBlbmNvZGVyLT5l
bmNvZGUoc2Vzc2lvblN0YXRlKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoaGlnaGVzdFVzZWRCYWNr
Rm9yd2FyZEl0ZW1JRCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGNhblJ1bkJlZm9yZVVubG9hZENv
bmZpcm1QYW5lbCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGNhblJ1bk1vZGFsKTsKLSAgICBlbmNv
ZGVyLT5lbmNvZGUoZGV2aWNlU2NhbGVGYWN0b3IpOwotICAgIGVuY29kZXItPmVuY29kZShtZWRp
YVZvbHVtZSk7CisgICAgZW5jb2Rlci5lbmNvZGUoc3RvcmUpOworICAgIGVuY29kZXIuZW5jb2Rl
RW51bShkcmF3aW5nQXJlYVR5cGUpOworICAgIGVuY29kZXIuZW5jb2RlKHBhZ2VHcm91cERhdGEp
OworICAgIGVuY29kZXIuZW5jb2RlKGRyYXdzQmFja2dyb3VuZCk7CisgICAgZW5jb2Rlci5lbmNv
ZGUoZHJhd3NUcmFuc3BhcmVudEJhY2tncm91bmQpOworICAgIGVuY29kZXIuZW5jb2RlKGFyZU1l
bW9yeUNhY2hlQ2xpZW50Q2FsbHNFbmFibGVkKTsKKyAgICBlbmNvZGVyLmVuY29kZSh1c2VGaXhl
ZExheW91dCk7CisgICAgZW5jb2Rlci5lbmNvZGUoZml4ZWRMYXlvdXRTaXplKTsKKyAgICBlbmNv
ZGVyLmVuY29kZUVudW0ocGFnaW5hdGlvbk1vZGUpOworICAgIGVuY29kZXIuZW5jb2RlKHBhZ2lu
YXRpb25CZWhhdmVzTGlrZUNvbHVtbnMpOworICAgIGVuY29kZXIuZW5jb2RlKHBhZ2VMZW5ndGgp
OworICAgIGVuY29kZXIuZW5jb2RlKGdhcEJldHdlZW5QYWdlcyk7CisgICAgZW5jb2Rlci5lbmNv
ZGUodXNlckFnZW50KTsKKyAgICBlbmNvZGVyLmVuY29kZShzZXNzaW9uU3RhdGUpOworICAgIGVu
Y29kZXIuZW5jb2RlKGhpZ2hlc3RVc2VkQmFja0ZvcndhcmRJdGVtSUQpOworICAgIGVuY29kZXIu
ZW5jb2RlKGNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCk7CisgICAgZW5jb2Rlci5lbmNv
ZGUoY2FuUnVuTW9kYWwpOworICAgIGVuY29kZXIuZW5jb2RlKGRldmljZVNjYWxlRmFjdG9yKTsK
KyAgICBlbmNvZGVyLmVuY29kZShtZWRpYVZvbHVtZSk7CiAKICNpZiBQTEFURk9STShNQUMpCi0g
ICAgZW5jb2Rlci0+ZW5jb2RlKGlzU21hcnRJbnNlcnREZWxldGVFbmFibGVkKTsKLSAgICBlbmNv
ZGVyLT5lbmNvZGVFbnVtKGxheWVySG9zdGluZ01vZGUpOwotICAgIGVuY29kZXItPmVuY29kZShj
b2xvclNwYWNlKTsKKyAgICBlbmNvZGVyLmVuY29kZShpc1NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZCk7CisgICAgZW5jb2Rlci5lbmNvZGVFbnVtKGxheWVySG9zdGluZ01vZGUpOworICAgIGVuY29k
ZXIuZW5jb2RlKGNvbG9yU3BhY2UpOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShXSU4pCi0gICAg
ZW5jb2Rlci0+ZW5jb2RlKHJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0X3Q+KG5hdGl2ZVdpbmRvdykp
OworICAgIGVuY29kZXIuZW5jb2RlKHJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0X3Q+KG5hdGl2ZVdp
bmRvdykpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFn
ZUNyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IDA4YzNiY2QyMTRlY2M5MDY5NjdhYTM5ZWYxOGJk
MDE2OWYwMmQ2OTkuLjIxNGMwNGM1MDQ4MmVjYTg5MDVjM2QxOWQ3MTdhZjBmODk5MWU4NmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJz
LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMu
aApAQCAtNDUsNyArNDUsNyBAQCBuYW1lc3BhY2UgQ29yZUlQQyB7CiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAogc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgewotICAgIHZvaWQgZW5jb2Rl
KENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciopIGNvbnN0OworICAgIHZvaWQgZW5jb2RlKENvcmVJ
UEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXIqLCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJik7CiAKICAg
ICBXZWJDb3JlOjpJbnRTaXplIHZpZXdTaXplOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYlBhZ2VHcm91cERhdGEuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBh
Z2VHcm91cERhdGEuY3BwCmluZGV4IGMyMjdkODU5NjZkODc4YjM4MThiOWZhNDEwNzk2MzQzZmZm
NjFlZTIuLmM1ZDYwMzQ4OTNlNWMxYmJmMWU4ODU4Y2JjNDhmNGUzOWE1NjMxOGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlR3JvdXBEYXRhLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUdyb3VwRGF0YS5jcHAKQEAgLTMwLDE0ICszMCwxNCBA
QAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdm9pZCBXZWJQYWdlR3JvdXBEYXRhOjplbmNvZGUo
Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAordm9pZCBXZWJQYWdlR3Jv
dXBEYXRhOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAog
ewotICAgIGVuY29kZXItPmVuY29kZShpZGVudGlmZXIpOwotICAgIGVuY29kZXItPmVuY29kZShw
YWdlR3JvdXBJRCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHZpc2libGVUb0luamVjdGVkQnVuZGxl
KTsKLSAgICBlbmNvZGVyLT5lbmNvZGUodmlzaWJsZVRvSGlzdG9yeUNsaWVudCk7Ci0gICAgZW5j
b2Rlci0+ZW5jb2RlKHVzZXJTdHlsZVNoZWV0cyk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHVzZXJT
Y3JpcHRzKTsKKyAgICBlbmNvZGVyLmVuY29kZShpZGVudGlmZXIpOworICAgIGVuY29kZXIuZW5j
b2RlKHBhZ2VHcm91cElEKTsKKyAgICBlbmNvZGVyLmVuY29kZSh2aXNpYmxlVG9JbmplY3RlZEJ1
bmRsZSk7CisgICAgZW5jb2Rlci5lbmNvZGUodmlzaWJsZVRvSGlzdG9yeUNsaWVudCk7CisgICAg
ZW5jb2Rlci5lbmNvZGUodXNlclN0eWxlU2hlZXRzKTsKKyAgICBlbmNvZGVyLmVuY29kZSh1c2Vy
U2NyaXB0cyk7CiB9CiAKIGJvb2wgV2ViUGFnZUdyb3VwRGF0YTo6ZGVjb2RlKENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciogZGVjb2RlciwgV2ViUGFnZUdyb3VwRGF0YSYgZGF0YSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlR3JvdXBEYXRhLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViUGFnZUdyb3VwRGF0YS5oCmluZGV4IGI5YWEwZjhmNWY1YTBiMzk5MmU5
OGI0NTU0NjBmYzEyY2VmZDg5NDQuLjRkYmZkMmMzMTY0ZTcwYmM2ZjBiNjU2ZGRiNzM0ODUwZjdh
ZGIyNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlR3JvdXBEYXRh
LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VHcm91cERhdGEuaApAQCAtMzks
NyArMzksNyBAQCBjbGFzcyBBcmd1bWVudEVuY29kZXI7CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAog
c3RydWN0IFdlYlBhZ2VHcm91cERhdGEgewotICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3Vt
ZW50RW5jb2RlciopIGNvbnN0OworICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5j
b2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqLCBXZWJQYWdlR3JvdXBEYXRhJik7CiAKICAgICBTdHJpbmcgaWRlbnRpZmVyOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBvcHVwSXRlbS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViUG9wdXBJdGVtLmNwcAppbmRleCAwN2EyOWU0MTY5NjYyYzA4ZmQw
YWMyZTYwOTEwNWZiNTUxNTM4ZDM1Li42NmI3ODU2NjkwNTdlNjgzZjU4MWVmYWJiNjNjODk4MDFi
NTc5NWU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUG9wdXBJdGVtLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUG9wdXBJdGVtLmNwcApAQCAtNjYsMTcg
KzY2LDE3IEBAIFdlYlBvcHVwSXRlbTo6V2ViUG9wdXBJdGVtKFR5cGUgdHlwZSwgY29uc3QgU3Ry
aW5nJiB0ZXh0LCBUZXh0RGlyZWN0aW9uIHRleHREaXJlCiB7CiB9CiAKLXZvaWQgV2ViUG9wdXBJ
dGVtOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAordm9p
ZCBXZWJQb3B1cEl0ZW06OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIp
IGNvbnN0CiB7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlRW51bShtX3R5cGUpOwotICAgIGVuY29kZXIt
PmVuY29kZShtX3RleHQpOwotICAgIGVuY29kZXItPmVuY29kZUVudW0obV90ZXh0RGlyZWN0aW9u
KTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobV9oYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUpOwotICAg
IGVuY29kZXItPmVuY29kZShtX3Rvb2xUaXApOwotICAgIGVuY29kZXItPmVuY29kZShtX2FjY2Vz
c2liaWxpdHlUZXh0KTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobV9pc0VuYWJsZWQpOwotICAgIGVu
Y29kZXItPmVuY29kZShtX2lzTGFiZWwpOwotICAgIGVuY29kZXItPmVuY29kZShtX2lzU2VsZWN0
ZWQpOworICAgIGVuY29kZXIuZW5jb2RlRW51bShtX3R5cGUpOworICAgIGVuY29kZXIuZW5jb2Rl
KG1fdGV4dCk7CisgICAgZW5jb2Rlci5lbmNvZGVFbnVtKG1fdGV4dERpcmVjdGlvbik7CisgICAg
ZW5jb2Rlci5lbmNvZGUobV9oYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUpOworICAgIGVuY29kZXIu
ZW5jb2RlKG1fdG9vbFRpcCk7CisgICAgZW5jb2Rlci5lbmNvZGUobV9hY2Nlc3NpYmlsaXR5VGV4
dCk7CisgICAgZW5jb2Rlci5lbmNvZGUobV9pc0VuYWJsZWQpOworICAgIGVuY29kZXIuZW5jb2Rl
KG1faXNMYWJlbCk7CisgICAgZW5jb2Rlci5lbmNvZGUobV9pc1NlbGVjdGVkKTsKIH0KIAogYm9v
bCBXZWJQb3B1cEl0ZW06OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIs
IFdlYlBvcHVwSXRlbSYgaXRlbSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJQb3B1cEl0ZW0uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQb3B1cEl0ZW0uaAppbmRl
eCBkODU4NGJlYTUzMjA5YzNjNzUxNWM2YmJhZjNiMDc5OGEwYjJmZDRlLi42ZjhlY2IxMDE2YTcw
ZjJmZmM4NDVjNTcxZjgxMDI2ZjI5NzNkNjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViUG9wdXBJdGVtLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBvcHVw
SXRlbS5oCkBAIC00Niw3ICs0Niw3IEBAIHN0cnVjdCBXZWJQb3B1cEl0ZW0gewogICAgIFdlYlBv
cHVwSXRlbShUeXBlKTsKICAgICBXZWJQb3B1cEl0ZW0oVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0
LCBXZWJDb3JlOjpUZXh0RGlyZWN0aW9uLCBib29sIGhhc1RleHREaXJlY3Rpb25PdmVycmlkZSwg
Y29uc3QgU3RyaW5nJiB0b29sVGlwLCBjb25zdCBTdHJpbmcmIGFjY2Vzc2liaWxpdHlUZXh0LCBi
b29sIGlzRW5hYmxlZCwgYm9vbCBpc0xhYmVsLCBib29sIGlzU2VsZWN0ZWQpOwogCi0gICAgdm9p
ZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKikgY29uc3Q7CisgICAgdm9pZCBlbmNv
ZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVj
b2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIFdlYlBvcHVwSXRlbSYpOwogCiAgICAgVHlw
ZSBtX3R5cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5j
ZXNTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5j
cHAKaW5kZXggNzQwYTk3MWFhYzQyYjUzZDJlMjNkM2YzYTk5ZDNmNTZhMGQ0ZmI5My4uYTRmZjU2
ZDllYzIzNzZlOWQ2YWI2MjE2ZmZiYjk3Y2U4NjYyN2QwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmNwcApAQCAtNTksMTMgKzU5LDEzIEBAIFdlYlBy
ZWZlcmVuY2VzU3RvcmU6OldlYlByZWZlcmVuY2VzU3RvcmUoKQogewogfQogCi12b2lkIFdlYlBy
ZWZlcmVuY2VzU3RvcmU6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIp
IGNvbnN0Cit2b2lkIFdlYlByZWZlcmVuY2VzU3RvcmU6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVu
dEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG1fc3RyaW5n
VmFsdWVzKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobV9ib29sVmFsdWVzKTsKLSAgICBlbmNvZGVy
LT5lbmNvZGUobV91aW50MzJWYWx1ZXMpOwotICAgIGVuY29kZXItPmVuY29kZShtX2RvdWJsZVZh
bHVlcyk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG1fZmxvYXRWYWx1ZXMpOworICAgIGVuY29kZXIu
ZW5jb2RlKG1fc3RyaW5nVmFsdWVzKTsKKyAgICBlbmNvZGVyLmVuY29kZShtX2Jvb2xWYWx1ZXMp
OworICAgIGVuY29kZXIuZW5jb2RlKG1fdWludDMyVmFsdWVzKTsKKyAgICBlbmNvZGVyLmVuY29k
ZShtX2RvdWJsZVZhbHVlcyk7CisgICAgZW5jb2Rlci5lbmNvZGUobV9mbG9hdFZhbHVlcyk7CiB9
CiAKIGJvb2wgV2ViUHJlZmVyZW5jZXNTdG9yZTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVj
b2RlciogZGVjb2RlciwgV2ViUHJlZmVyZW5jZXNTdG9yZSYgcmVzdWx0KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuaCBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmgKaW5kZXggN2JiY2FlMGMyMGVjMTM0MDNk
M2ViMzEyMmQ1NzFkMzg5MWEyYWM0Ny4uZGMwNzNkZTAzOWQ5ZmNiODgwMTgwYjlkMzc4ZjAzMTlj
ZTgzMTUwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2Vz
U3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5o
CkBAIC0yMzMsNyArMjMzLDcgQEAgRk9SX0VBQ0hfV0VCS0lUX1BSRUZFUkVOQ0UoREVDTEFSRV9L
RVlfR0VUVEVSUykKIHN0cnVjdCBXZWJQcmVmZXJlbmNlc1N0b3JlIHsKICAgICBXZWJQcmVmZXJl
bmNlc1N0b3JlKCk7CiAKLSAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIq
KSBjb25zdDsKKyAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25z
dDsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgV2Vi
UHJlZmVyZW5jZXNTdG9yZSYpOwogCiAgICAgLy8gTk9URTogVGhlIGdldHRlcnMgaW4gdGhpcyBj
bGFzcyBoYXZlIG5vbi1zdGFuZGFyZCBuYW1lcyB0byBhaWQgaW4gdGhlIHVzZSBvZiB0aGUgcHJl
ZmVyZW5jZSBtYWNyb3MuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggYzNmY2VlNmMyYmQ4YjY3ODRlMzM0MTRm
NmI3OWEwZDk4MGQ5NmYyNi4uMGMxMjdlODhlMWVhYTJkNGM3N2NiYjVkMjdmYTFkZWU0NTc0ZWQ5
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcApAQCAtNTIsNjkgKzUyLDY5IEBAIFdlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnM6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMoKQogewogfQogCi12b2lkIFdl
YlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29k
ZXIqIGVuY29kZXIpIGNvbnN0Cit2b2lkIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVu
Y29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5j
b2Rlci0+ZW5jb2RlKGluamVjdGVkQnVuZGxlUGF0aCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGlu
amVjdGVkQnVuZGxlUGF0aEV4dGVuc2lvbkhhbmRsZSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGFw
cGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnkpOwotICAgIGVuY29kZXItPmVuY29kZShhcHBsaWNhdGlv
bkNhY2hlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoZGF0
YWJhc2VEaXJlY3RvcnkpOwotICAgIGVuY29kZXItPmVuY29kZShkYXRhYmFzZURpcmVjdG9yeUV4
dGVuc2lvbkhhbmRsZSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGxvY2FsU3RvcmFnZURpcmVjdG9y
eSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGxvY2FsU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhh
bmRsZSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGRpc2tDYWNoZURpcmVjdG9yeSk7Ci0gICAgZW5j
b2Rlci0+ZW5jb2RlKGRpc2tDYWNoZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7Ci0gICAgZW5j
b2Rlci0+ZW5jb2RlKGNvb2tpZVN0b3JhZ2VEaXJlY3RvcnkpOwotICAgIGVuY29kZXItPmVuY29k
ZShjb29raWVTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKLSAgICBlbmNvZGVyLT5l
bmNvZGUodXJsU2NoZW1lc1JlZ2lzdGVyZXJkQXNFbXB0eURvY3VtZW50KTsKLSAgICBlbmNvZGVy
LT5lbmNvZGUodXJsU2NoZW1lc1JlZ2lzdGVyZWRBc1NlY3VyZSk7Ci0gICAgZW5jb2Rlci0+ZW5j
b2RlKHVybFNjaGVtZXNGb3JXaGljaERvbWFpblJlbGF4YXRpb25Jc0ZvcmJpZGRlbik7Ci0gICAg
ZW5jb2Rlci0+ZW5jb2RlKHVybFNjaGVtZXNSZWdpc3RlcmVkQXNMb2NhbCk7Ci0gICAgZW5jb2Rl
ci0+ZW5jb2RlKHVybFNjaGVtZXNSZWdpc3RlcmVkQXNOb0FjY2Vzcyk7Ci0gICAgZW5jb2Rlci0+
ZW5jb2RlKHVybFNjaGVtZXNSZWdpc3RlcmVkQXNEaXNwbGF5SXNvbGF0ZWQpOwotICAgIGVuY29k
ZXItPmVuY29kZSh1cmxTY2hlbWVzUmVnaXN0ZXJlZEFzQ09SU0VuYWJsZWQpOwotICAgIGVuY29k
ZXItPmVuY29kZUVudW0oY2FjaGVNb2RlbCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHNob3VsZFRy
YWNrVmlzaXRlZExpbmtzKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoc2hvdWxkQWx3YXlzVXNlQ29t
cGxleFRleHRDb2RlUGF0aCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHNob3VsZFVzZUZvbnRTbW9v
dGhpbmcpOwotICAgIGVuY29kZXItPmVuY29kZShpY29uRGF0YWJhc2VFbmFibGVkKTsKLSAgICBl
bmNvZGVyLT5lbmNvZGUodGVybWluYXRpb25UaW1lb3V0KTsKLSAgICBlbmNvZGVyLT5lbmNvZGUo
bGFuZ3VhZ2VzKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUodGV4dENoZWNrZXJTdGF0ZSk7Ci0gICAg
ZW5jb2Rlci0+ZW5jb2RlKGZ1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQpOwotICAgIGVuY29kZXIt
PmVuY29kZShkZWZhdWx0UmVxdWVzdFRpbWVvdXRJbnRlcnZhbCk7CisgICAgZW5jb2Rlci5lbmNv
ZGUoaW5qZWN0ZWRCdW5kbGVQYXRoKTsKKyAgICBlbmNvZGVyLmVuY29kZShpbmplY3RlZEJ1bmRs
ZVBhdGhFeHRlbnNpb25IYW5kbGUpOworICAgIGVuY29kZXIuZW5jb2RlKGFwcGxpY2F0aW9uQ2Fj
aGVEaXJlY3RvcnkpOworICAgIGVuY29kZXIuZW5jb2RlKGFwcGxpY2F0aW9uQ2FjaGVEaXJlY3Rv
cnlFeHRlbnNpb25IYW5kbGUpOworICAgIGVuY29kZXIuZW5jb2RlKGRhdGFiYXNlRGlyZWN0b3J5
KTsKKyAgICBlbmNvZGVyLmVuY29kZShkYXRhYmFzZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7
CisgICAgZW5jb2Rlci5lbmNvZGUobG9jYWxTdG9yYWdlRGlyZWN0b3J5KTsKKyAgICBlbmNvZGVy
LmVuY29kZShsb2NhbFN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOworICAgIGVuY29k
ZXIuZW5jb2RlKGRpc2tDYWNoZURpcmVjdG9yeSk7CisgICAgZW5jb2Rlci5lbmNvZGUoZGlza0Nh
Y2hlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKKyAgICBlbmNvZGVyLmVuY29kZShjb29raWVT
dG9yYWdlRGlyZWN0b3J5KTsKKyAgICBlbmNvZGVyLmVuY29kZShjb29raWVTdG9yYWdlRGlyZWN0
b3J5RXh0ZW5zaW9uSGFuZGxlKTsKKyAgICBlbmNvZGVyLmVuY29kZSh1cmxTY2hlbWVzUmVnaXN0
ZXJlcmRBc0VtcHR5RG9jdW1lbnQpOworICAgIGVuY29kZXIuZW5jb2RlKHVybFNjaGVtZXNSZWdp
c3RlcmVkQXNTZWN1cmUpOworICAgIGVuY29kZXIuZW5jb2RlKHVybFNjaGVtZXNGb3JXaGljaERv
bWFpblJlbGF4YXRpb25Jc0ZvcmJpZGRlbik7CisgICAgZW5jb2Rlci5lbmNvZGUodXJsU2NoZW1l
c1JlZ2lzdGVyZWRBc0xvY2FsKTsKKyAgICBlbmNvZGVyLmVuY29kZSh1cmxTY2hlbWVzUmVnaXN0
ZXJlZEFzTm9BY2Nlc3MpOworICAgIGVuY29kZXIuZW5jb2RlKHVybFNjaGVtZXNSZWdpc3RlcmVk
QXNEaXNwbGF5SXNvbGF0ZWQpOworICAgIGVuY29kZXIuZW5jb2RlKHVybFNjaGVtZXNSZWdpc3Rl
cmVkQXNDT1JTRW5hYmxlZCk7CisgICAgZW5jb2Rlci5lbmNvZGVFbnVtKGNhY2hlTW9kZWwpOwor
ICAgIGVuY29kZXIuZW5jb2RlKHNob3VsZFRyYWNrVmlzaXRlZExpbmtzKTsKKyAgICBlbmNvZGVy
LmVuY29kZShzaG91bGRBbHdheXNVc2VDb21wbGV4VGV4dENvZGVQYXRoKTsKKyAgICBlbmNvZGVy
LmVuY29kZShzaG91bGRVc2VGb250U21vb3RoaW5nKTsKKyAgICBlbmNvZGVyLmVuY29kZShpY29u
RGF0YWJhc2VFbmFibGVkKTsKKyAgICBlbmNvZGVyLmVuY29kZSh0ZXJtaW5hdGlvblRpbWVvdXQp
OworICAgIGVuY29kZXIuZW5jb2RlKGxhbmd1YWdlcyk7CisgICAgZW5jb2Rlci5lbmNvZGUodGV4
dENoZWNrZXJTdGF0ZSk7CisgICAgZW5jb2Rlci5lbmNvZGUoZnVsbEtleWJvYXJkQWNjZXNzRW5h
YmxlZCk7CisgICAgZW5jb2Rlci5lbmNvZGUoZGVmYXVsdFJlcXVlc3RUaW1lb3V0SW50ZXJ2YWwp
OwogI2lmIFBMQVRGT1JNKE1BQykgfHwgVVNFKENGVVJMU1RPUkFHRVNFU1NJT05TKQotICAgIGVu
Y29kZXItPmVuY29kZSh1aVByb2Nlc3NCdW5kbGVJZGVudGlmaWVyKTsKKyAgICBlbmNvZGVyLmVu
Y29kZSh1aVByb2Nlc3NCdW5kbGVJZGVudGlmaWVyKTsKICNlbmRpZgogI2lmIFBMQVRGT1JNKE1B
QykKLSAgICBlbmNvZGVyLT5lbmNvZGUocGFyZW50UHJvY2Vzc05hbWUpOwotICAgIGVuY29kZXIt
PmVuY29kZShwcmVzZW50ZXJBcHBsaWNhdGlvblBpZCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG5z
VVJMQ2FjaGVNZW1vcnlDYXBhY2l0eSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG5zVVJMQ2FjaGVE
aXNrQ2FwYWNpdHkpOwotICAgIGVuY29kZXItPmVuY29kZShhY2NlbGVyYXRlZENvbXBvc2l0aW5n
UG9ydCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHVpUHJvY2Vzc0J1bmRsZVJlc291cmNlUGF0aCk7
Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHVpUHJvY2Vzc0J1bmRsZVJlc291cmNlUGF0aEV4dGVuc2lv
bkhhbmRsZSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHNob3VsZEZvcmNlU2NyZWVuRm9udFN1YnN0
aXR1dGlvbik7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHNob3VsZEVuYWJsZUtlcm5pbmdBbmRMaWdh
dHVyZXNCeURlZmF1bHQpOworICAgIGVuY29kZXIuZW5jb2RlKHBhcmVudFByb2Nlc3NOYW1lKTsK
KyAgICBlbmNvZGVyLmVuY29kZShwcmVzZW50ZXJBcHBsaWNhdGlvblBpZCk7CisgICAgZW5jb2Rl
ci5lbmNvZGUobnNVUkxDYWNoZU1lbW9yeUNhcGFjaXR5KTsKKyAgICBlbmNvZGVyLmVuY29kZShu
c1VSTENhY2hlRGlza0NhcGFjaXR5KTsKKyAgICBlbmNvZGVyLmVuY29kZShhY2NlbGVyYXRlZENv
bXBvc2l0aW5nUG9ydCk7CisgICAgZW5jb2Rlci5lbmNvZGUodWlQcm9jZXNzQnVuZGxlUmVzb3Vy
Y2VQYXRoKTsKKyAgICBlbmNvZGVyLmVuY29kZSh1aVByb2Nlc3NCdW5kbGVSZXNvdXJjZVBhdGhF
eHRlbnNpb25IYW5kbGUpOworICAgIGVuY29kZXIuZW5jb2RlKHNob3VsZEZvcmNlU2NyZWVuRm9u
dFN1YnN0aXR1dGlvbik7CisgICAgZW5jb2Rlci5lbmNvZGUoc2hvdWxkRW5hYmxlS2VybmluZ0Fu
ZExpZ2F0dXJlc0J5RGVmYXVsdCk7CiAjZWxpZiBQTEFURk9STShXSU4pCi0gICAgZW5jb2Rlci0+
ZW5jb2RlKHNob3VsZFBhaW50TmF0aXZlQ29udHJvbHMpOwotICAgIGVuY29kZXItPmVuY29kZShj
ZlVSTENhY2hlRGlza0NhcGFjaXR5KTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoY2ZVUkxDYWNoZU1l
bW9yeUNhcGFjaXR5KTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoaW5pdGlhbEhUVFBDb29raWVBY2Nl
cHRQb2xpY3kpOworICAgIGVuY29kZXIuZW5jb2RlKHNob3VsZFBhaW50TmF0aXZlQ29udHJvbHMp
OworICAgIGVuY29kZXIuZW5jb2RlKGNmVVJMQ2FjaGVEaXNrQ2FwYWNpdHkpOworICAgIGVuY29k
ZXIuZW5jb2RlKGNmVVJMQ2FjaGVNZW1vcnlDYXBhY2l0eSk7CisgICAgZW5jb2Rlci5lbmNvZGUo
aW5pdGlhbEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOwogI2lmIFVTRShDRlVSTFNUT1JBR0VTRVNT
SU9OUykKICAgICBDRkRhdGFSZWYgc3RvcmFnZVNlc3Npb24gPSBzZXJpYWxpemVkRGVmYXVsdFN0
b3JhZ2VTZXNzaW9uLmdldCgpOwotICAgIGVuY29kZXItPmVuY29kZShzdGF0aWNfY2FzdDxib29s
PihzdG9yYWdlU2Vzc2lvbikpOworICAgIGVuY29kZXIuZW5jb2RlKHN0YXRpY19jYXN0PGJvb2w+
KHN0b3JhZ2VTZXNzaW9uKSk7CiAgICAgaWYgKHN0b3JhZ2VTZXNzaW9uKQogICAgICAgICBDb3Jl
SVBDOjplbmNvZGUoZW5jb2Rlciwgc3RvcmFnZVNlc3Npb24pOwogI2VuZGlmIC8vIFVTRShDRlVS
TFNUT1JBR0VTRVNTSU9OUykKICNlbmRpZgogCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpIHx8
IEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKLSAgICBlbmNvZGVyLT5lbmNvZGUobm90aWZp
Y2F0aW9uUGVybWlzc2lvbnMpOworICAgIGVuY29kZXIuZW5jb2RlKG5vdGlmaWNhdGlvblBlcm1p
c3Npb25zKTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKLSAgICBlbmNv
ZGVyLT5lbmNvZGUodXNlc05ldHdvcmtQcm9jZXNzKTsKKyAgICBlbmNvZGVyLmVuY29kZSh1c2Vz
TmV0d29ya1Byb2Nlc3MpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IDFmNDg4MDM2OTI3MTg4
YzU4MGQ2ZjZjN2MwODYxOWNjMTQxNTkxOTYuLjVhNjUxYWFlZWI0NDZkNmE4M2RmOTJhYTc4OTAw
ZWFmMWRkOTI5NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtNDgsNyArNDgsNyBAQCBuYW1lc3BhY2UgV2ViS2l0
IHsKIHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICAgICBXZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzKCk7CiAKLSAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVu
dEVuY29kZXIqKSBjb25zdDsKKyAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29k
ZXImKSBjb25zdDsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKiwgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpOwogCiAgICAgU3RyaW5nIGluamVj
dGVkQnVuZGxlUGF0aDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJXaGVl
bEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJXaGVlbEV2ZW50LmNwcAppbmRl
eCAzN2M2OTFlNjQxODU1ZWE4NjEwN2YwMjg4MjQ0NTMwOTc0MWE3MGVmLi4xOWFlNTMyNzcyMWE3
YTA3ZmU0ZmMxY2YyZTAxNDE5MTNlMDliMzQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViV2hlZWxFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYldo
ZWVsRXZlbnQuY3BwCkBAIC02OSwyMiArNjksMjIgQEAgV2ViV2hlZWxFdmVudDo6V2ViV2hlZWxF
dmVudChUeXBlIHR5cGUsIGNvbnN0IEludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgSW50UG9pbnQK
IH0KICNlbmRpZgogCi12b2lkIFdlYldoZWVsRXZlbnQ6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVu
dEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Cit2b2lkIFdlYldoZWVsRXZlbnQ6OmVuY29kZShDb3Jl
SVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7CiAgICAgV2ViRXZlbnQ6OmVu
Y29kZShlbmNvZGVyKTsKIAotICAgIGVuY29kZXItPmVuY29kZShtX3Bvc2l0aW9uKTsKLSAgICBl
bmNvZGVyLT5lbmNvZGUobV9nbG9iYWxQb3NpdGlvbik7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG1f
ZGVsdGEpOwotICAgIGVuY29kZXItPmVuY29kZShtX3doZWVsVGlja3MpOwotICAgIGVuY29kZXIt
PmVuY29kZShtX2dyYW51bGFyaXR5KTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobV9kaXJlY3Rpb25J
bnZlcnRlZEZyb21EZXZpY2UpOworICAgIGVuY29kZXIuZW5jb2RlKG1fcG9zaXRpb24pOworICAg
IGVuY29kZXIuZW5jb2RlKG1fZ2xvYmFsUG9zaXRpb24pOworICAgIGVuY29kZXIuZW5jb2RlKG1f
ZGVsdGEpOworICAgIGVuY29kZXIuZW5jb2RlKG1fd2hlZWxUaWNrcyk7CisgICAgZW5jb2Rlci5l
bmNvZGUobV9ncmFudWxhcml0eSk7CisgICAgZW5jb2Rlci5lbmNvZGUobV9kaXJlY3Rpb25JbnZl
cnRlZEZyb21EZXZpY2UpOwogI2lmIFBMQVRGT1JNKE1BQykKLSAgICBlbmNvZGVyLT5lbmNvZGUo
bV9waGFzZSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG1fbW9tZW50dW1QaGFzZSk7Ci0gICAgZW5j
b2Rlci0+ZW5jb2RlKG1faGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcyk7Ci0gICAgZW5jb2Rlci0+
ZW5jb2RlKG1fc2Nyb2xsQ291bnQpOwotICAgIGVuY29kZXItPmVuY29kZShtX3VuYWNjZWxlcmF0
ZWRTY3JvbGxpbmdEZWx0YSk7CisgICAgZW5jb2Rlci5lbmNvZGUobV9waGFzZSk7CisgICAgZW5j
b2Rlci5lbmNvZGUobV9tb21lbnR1bVBoYXNlKTsKKyAgICBlbmNvZGVyLmVuY29kZShtX2hhc1By
ZWNpc2VTY3JvbGxpbmdEZWx0YXMpOworICAgIGVuY29kZXIuZW5jb2RlKG1fc2Nyb2xsQ291bnQp
OworICAgIGVuY29kZXIuZW5jb2RlKG1fdW5hY2NlbGVyYXRlZFNjcm9sbGluZ0RlbHRhKTsKICNl
bmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0F0dHJpYnV0
ZWRTdHJpbmcuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQXR0cmlidXRlZFN0cmluZy5o
CmluZGV4IDZjOGE4YWUyNTJhNWI4OTliMDI0YTY1ZWM2NmUxZjZlYjFhNWYwNDkuLjZkMzUwN2Y2
YTRlMTUxZmU4NjEyZDIyMDNhZTQyOGY0YmU2YmE2MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9tYWMvQXR0cmlidXRlZFN0cmluZy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9tYWMvQXR0cmlidXRlZFN0cmluZy5oCkBAIC0zOCw3ICszOCw3IEBAIG5hbWVzcGFjZSBD
b3JlSVBDIHsKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBzdHJ1Y3QgQXR0cmlidXRlZFN0cmluZyB7
Ci0gICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKikgY29uc3Q7CisgICAg
dm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGlj
IGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIEF0dHJpYnV0ZWRTdHJpbmcm
KTsKICAgICAKICAgICBSZXRhaW5QdHI8TlNBdHRyaWJ1dGVkU3RyaW5nPiBzdHJpbmc7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0F0dHJpYnV0ZWRTdHJpbmcubW0gYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0F0dHJpYnV0ZWRTdHJpbmcubW0KaW5kZXggYmM3Y2Zk
MDg2ZTI3ODBhMDk2YjllMDI3NTZjYmUxMzJkNzI3MDMzNC4uYjdhNDdkN2JjMzRiYThiZWNlMDUy
MWVkMmMzMGRmNjkzMGY5NzFkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21h
Yy9BdHRyaWJ1dGVkU3RyaW5nLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQXR0
cmlidXRlZFN0cmluZy5tbQpAQCAtMzIsMTIgKzMyLDEyIEBACiAKIG5hbWVzcGFjZSBXZWJLaXQg
ewogCi12b2lkIEF0dHJpYnV0ZWRTdHJpbmc6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29k
ZXIqIGVuY29kZXIpIGNvbnN0Cit2b2lkIEF0dHJpYnV0ZWRTdHJpbmc6OmVuY29kZShDb3JlSVBD
OjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2Rlci0+ZW5jb2Rl
KCFzdHJpbmcpOworICAgIGVuY29kZXIuZW5jb2RlKCFzdHJpbmcpOwogICAgIGlmICghc3RyaW5n
KQogICAgICAgICByZXR1cm47Ci0gICAgQ29yZUlQQzo6ZW5jb2RlKGVuY29kZXIsIHN0cmluZy5n
ZXQoKSk7CisgICAgQ29yZUlQQzo6ZW5jb2RlKCZlbmNvZGVyLCBzdHJpbmcuZ2V0KCkpOwogfQog
CiBib29sIEF0dHJpYnV0ZWRTdHJpbmc6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
IGRlY29kZXIsIEF0dHJpYnV0ZWRTdHJpbmcmIGF0dHJpYnV0ZWRTdHJpbmcpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0NvbG9yU3BhY2VEYXRhLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvbWFjL0NvbG9yU3BhY2VEYXRhLmgKaW5kZXggY2RlYTg2ZWU1MzE4MWM0NjUx
ZGQzOTVmYWU5MmM4M2NjMzZhNGMwMC4uYWZlNWI3NzM2ZTZkYWJmZjA4NzFhZjJjN2U3NzY3NGZh
MzE0Nzc2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9Db2xvclNwYWNl
RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ29sb3JTcGFjZURhdGEuaApA
QCAtMzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgQ29yZUlQQyB7CiBuYW1lc3BhY2UgV2ViS2l0IHsK
IAogc3RydWN0IENvbG9yU3BhY2VEYXRhIHsKLSAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1
bWVudEVuY29kZXIqKSBjb25zdDsKKyAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVu
Y29kZXImKSBjb25zdDsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnRE
ZWNvZGVyKiwgQ29sb3JTcGFjZURhdGEmKTsKIAogICAgIFJldGFpblB0cjxDR0NvbG9yU3BhY2VS
ZWY+IGNnQ29sb3JTcGFjZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMv
Q29sb3JTcGFjZURhdGEubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0NvbG9yU3BhY2VE
YXRhLm1tCmluZGV4IDc5NmMwNmQwYWRiZjZmOGRiODQwNWQ3MjFkODE1MTgxMmUzYWNmODkuLmE5
MzRhOTkyYjE2NTU3YzAwZDRlY2UwOTRlZjE2OTY1NDgxZTA2MTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ29sb3JTcGFjZURhdGEubW0KKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL21hYy9Db2xvclNwYWNlRGF0YS5tbQpAQCAtMzgsMjYgKzM4LDI2IEBAIGVudW0g
RW5jb2RlZERhdGFUeXBlIHsKICAgICBEYXRhLAogfTsKIAotdm9pZCBDb2xvclNwYWNlRGF0YTo6
ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKK3ZvaWQgQ29s
b3JTcGFjZURhdGE6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNv
bnN0CiB7CiAgICAgaWYgKGNnQ29sb3JTcGFjZSkgewogICAgICAgICAvLyBUcnkgdG8gZW5jb2Rl
IHRoZSBuYW1lLgogICAgICAgICBpZiAoUmV0YWluUHRyPENGU3RyaW5nUmVmPiBuYW1lID0gYWRv
cHRDRihDR0NvbG9yU3BhY2VDb3B5TmFtZShjZ0NvbG9yU3BhY2UuZ2V0KCkpKSkgewotICAgICAg
ICAgICAgZW5jb2Rlci0+ZW5jb2RlRW51bShOYW1lKTsKLSAgICAgICAgICAgIENvcmVJUEM6OmVu
Y29kZShlbmNvZGVyLCBuYW1lLmdldCgpKTsKKyAgICAgICAgICAgIGVuY29kZXIuZW5jb2RlRW51
bShOYW1lKTsKKyAgICAgICAgICAgIENvcmVJUEM6OmVuY29kZSgmZW5jb2RlciwgbmFtZS5nZXQo
KSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAogICAgICAgICAvLyBGYWlsaW5n
IHRoYXQsIGp1c3QgZW5jb2RlIHRoZSBJQ0MgZGF0YS4KICAgICAgICAgaWYgKFJldGFpblB0cjxD
RkRhdGFSZWY+IHByb2ZpbGVEYXRhID0gYWRvcHRDRihDR0NvbG9yU3BhY2VDb3B5SUNDUHJvZmls
ZShjZ0NvbG9yU3BhY2UuZ2V0KCkpKSkgewotICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlRW51
bShEYXRhKTsKLSAgICAgICAgICAgIENvcmVJUEM6OmVuY29kZShlbmNvZGVyLCBwcm9maWxlRGF0
YS5nZXQoKSk7CisgICAgICAgICAgICBlbmNvZGVyLmVuY29kZUVudW0oRGF0YSk7CisgICAgICAg
ICAgICBDb3JlSVBDOjplbmNvZGUoJmVuY29kZXIsIHByb2ZpbGVEYXRhLmdldCgpKTsKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KIAogICAgIC8vIFRoZSBjb2xvciBzcGFj
ZSB3YXMgbnVsbCBvciBmYWlsZWQgdG8gYmUgZW5jb2RlZC4KLSAgICBlbmNvZGVyLT5lbmNvZGVF
bnVtKE51bGwpOworICAgIGVuY29kZXIuZW5jb2RlRW51bShOdWxsKTsKIH0KIAogYm9vbCBDb2xv
clNwYWNlRGF0YTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgQ29s
b3JTcGFjZURhdGEmIGNvbG9yU3BhY2VEYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL21hYy9MYXllclRyZWVDb250ZXh0TWFjLm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L21hYy9MYXllclRyZWVDb250ZXh0TWFjLm1tCmluZGV4IGU0YWQxY2UwYmQyMDU3ZmNkOWYwMGVl
NWQ5MDkzNTM2YjU4YmRiZmEuLmQ1OTU3YmYwMzZkZjU5MWVlNjFiMjFhNjI2NzE1MDFjMTJiY2Ni
NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvTGF5ZXJUcmVlQ29udGV4
dE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0xheWVyVHJlZUNvbnRleHRN
YWMubW0KQEAgLTQwLDkgKzQwLDkgQEAgTGF5ZXJUcmVlQ29udGV4dDo6fkxheWVyVHJlZUNvbnRl
eHQoKQogewogfQogCi12b2lkIExheWVyVHJlZUNvbnRleHQ6OmVuY29kZShDb3JlSVBDOjpBcmd1
bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Cit2b2lkIExheWVyVHJlZUNvbnRleHQ6OmVuY29k
ZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2Rl
ci0+ZW5jb2RlKGNvbnRleHRJRCk7CisgICAgZW5jb2Rlci5lbmNvZGUoY29udGV4dElEKTsKIH0K
IAogYm9vbCBMYXllclRyZWVDb250ZXh0OjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
KiBkZWNvZGVyLCBMYXllclRyZWVDb250ZXh0JiByZXN1bHQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvbWFjL1BsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvbWFjL1BsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLmgKaW5kZXggN2VmNWIzNzcw
ZWVhZGQzZTc2ZDA2MDY0ZGQwZWE1ZTI0MTVlNzViNS4uOTNmMDlmMzY5MWJiZjJmNTI4OWE0ZDA1
NThjNGQyZmE2ZjM3NzE3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9Q
bGF0Zm9ybUNlcnRpZmljYXRlSW5mby5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMv
UGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8uaApAQCAtNDQsNyArNDQsNyBAQCBwdWJsaWM6CiAKICAg
ICBDRkFycmF5UmVmIGNlcnRpZmljYXRlQ2hhaW4oKSBjb25zdCB7IHJldHVybiBtX2NlcnRpZmlj
YXRlQ2hhaW4uZ2V0KCk7IH0KIAotICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5j
b2RlciogZW5jb2RlcikgY29uc3Q7CisgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRF
bmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciogZGVjb2RlciwgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8mIHQpOwogCiAjaWZuZGVm
IE5ERUJVRwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9QbGF0Zm9ybUNl
cnRpZmljYXRlSW5mby5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUGxhdGZvcm1DZXJ0
aWZpY2F0ZUluZm8ubW0KaW5kZXggZGIyYjkwZTc1ZDA4YTgxZTI0Njk4MmQzYzc1ODgzYTIwYTFk
MmFkOS4uN2YyOTE1MzgwZTQyMjE2ZWE1YjE2MDBlOWEwMTRhMDlkZjY4MTE3OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9QbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1BsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLm1t
CkBAIC00OSwxNSArNDksMTUgQEAgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm86OlBsYXRmb3JtQ2Vy
dGlmaWNhdGVJbmZvKENGQXJyYXlSZWYgY2VydGlmaWNhdGVDaGFpbikKIHsKIH0KIAotdm9pZCBQ
bGF0Zm9ybUNlcnRpZmljYXRlSW5mbzo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlciog
ZW5jb2RlcikgY29uc3QKK3ZvaWQgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm86OmVuY29kZShDb3Jl
SVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2NlcnRp
ZmljYXRlQ2hhaW4pIHsKLSAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKGZhbHNlKTsKKyAgICAgICAg
ZW5jb2Rlci5lbmNvZGUoZmFsc2UpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgZW5j
b2Rlci0+ZW5jb2RlKHRydWUpOwotICAgIENvcmVJUEM6OmVuY29kZShlbmNvZGVyLCBtX2NlcnRp
ZmljYXRlQ2hhaW4uZ2V0KCkpOworICAgIGVuY29kZXIuZW5jb2RlKHRydWUpOworICAgIENvcmVJ
UEM6OmVuY29kZSgmZW5jb2RlciwgbV9jZXJ0aWZpY2F0ZUNoYWluLmdldCgpKTsKIH0KIAogYm9v
bCBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbzo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciogZGVjb2RlciwgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8mIGMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NhbmRib3hFeHRlbnNpb25NYWMubW0gYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvbWFjL1NhbmRib3hFeHRlbnNpb25NYWMubW0KaW5kZXggMTA5ZDFlYjg4MThl
MWUxZWZmODAxOTMyNGE3NDk2YzJlNzg3MDBhOS4uYjZjMmM4NTkyYjU5MGEwMGNlOGI2NzEzMmI3
YWUxNjg0NTYzNWVhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TYW5k
Ym94RXh0ZW5zaW9uTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2FuZGJv
eEV4dGVuc2lvbk1hYy5tbQpAQCAtNTMsMTAgKzUzLDEwIEBAIFNhbmRib3hFeHRlbnNpb246Okhh
bmRsZTo6fkhhbmRsZSgpCiAgICAgfQogfQogCi12b2lkIFNhbmRib3hFeHRlbnNpb246OkhhbmRs
ZTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKK3ZvaWQg
U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVy
JiBlbmNvZGVyKSBjb25zdAogewogICAgIGlmICghbV9zYW5kYm94RXh0ZW5zaW9uKSB7Ci0gICAg
ICAgIGVuY29kZXItPmVuY29kZVZhcmlhYmxlTGVuZ3RoQnl0ZUFycmF5KENvcmVJUEM6OkRhdGFS
ZWZlcmVuY2UoKSk7CisgICAgICAgIGVuY29kZXIuZW5jb2RlVmFyaWFibGVMZW5ndGhCeXRlQXJy
YXkoQ29yZUlQQzo6RGF0YVJlZmVyZW5jZSgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApA
QCAtNjQsNyArNjQsNyBAQCB2b2lkIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZTo6ZW5jb2RlKENv
cmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKICAgICBjb25zdCBjaGFyICpz
ZXJpYWxpemVkRm9ybWF0ID0gV0tTYW5kYm94RXh0ZW5zaW9uR2V0U2VyaWFsaXplZEZvcm1hdCht
X3NhbmRib3hFeHRlbnNpb24sICZsZW5ndGgpOwogICAgIEFTU0VSVChzZXJpYWxpemVkRm9ybWF0
KTsKIAotICAgIGVuY29kZXItPmVuY29kZVZhcmlhYmxlTGVuZ3RoQnl0ZUFycmF5KENvcmVJUEM6
OkRhdGFSZWZlcmVuY2UocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oc2VyaWFsaXpl
ZEZvcm1hdCksIGxlbmd0aCkpOworICAgIGVuY29kZXIuZW5jb2RlVmFyaWFibGVMZW5ndGhCeXRl
QXJyYXkoQ29yZUlQQzo6RGF0YVJlZmVyZW5jZShyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4
X3QqPihzZXJpYWxpemVkRm9ybWF0KSwgbGVuZ3RoKSk7CiAKICAgICAvLyBFbmNvZGluZyB3aWxs
IGRlc3Ryb3kgdGhlIHNhbmRib3ggZXh0ZW5zaW9uIGxvY2FsbHkuCiAgICAgV0tTYW5kYm94RXh0
ZW5zaW9uRGVzdHJveShtX3NhbmRib3hFeHRlbnNpb24pOwpAQCAtMTI2LDExICsxMjYsMTEgQEAg
c2l6ZV90IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5OjpzaXplKCkgY29uc3QKICAgICBy
ZXR1cm4gbV9zaXplOwogfQogCi12b2lkIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5Ojpl
bmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAordm9pZCBTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyLT5lbmNvZGUoc3RhdGljX2Nhc3Q8dWlu
dDY0X3Q+KHNpemUoKSkpOworICAgIGVuY29kZXIuZW5jb2RlKHN0YXRpY19jYXN0PHVpbnQ2NF90
PihzaXplKCkpKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fc2l6ZTsgKytpKQotICAg
ICAgICBlbmNvZGVyLT5lbmNvZGUobV9kYXRhW2ldKTsKKyAgICAgICAgZW5jb2Rlci5lbmNvZGUo
bV9kYXRhW2ldKTsKICAgICAKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L21hYy9TZWNJdGVtUmVxdWVzdERhdGEuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9T
ZWNJdGVtUmVxdWVzdERhdGEuY3BwCmluZGV4IDJmYjJmMjg0NTg3MWUzZmYxMzY2YjkwNjY2NGE3
ZGZhYTgwZGIxMjIuLjRjMjhkMjJiYWUzYjdiNDQxZTA5MTRmYzM3MDcyMzA3OTk3MjQ5ODAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjSXRlbVJlcXVlc3REYXRhLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0l0ZW1SZXF1ZXN0RGF0YS5jcHAK
QEAgLTQ5LDE1ICs0OSwxNSBAQCBTZWNJdGVtUmVxdWVzdERhdGE6OlNlY0l0ZW1SZXF1ZXN0RGF0
YShUeXBlIHR5cGUsIENGRGljdGlvbmFyeVJlZiBxdWVyeSwgQ0ZEaWN0aQogewogfQogCi12b2lk
IFNlY0l0ZW1SZXF1ZXN0RGF0YTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5j
b2RlcikgY29uc3QKK3ZvaWQgU2VjSXRlbVJlcXVlc3REYXRhOjplbmNvZGUoQ29yZUlQQzo6QXJn
dW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXItPmVuY29kZUVudW0o
bV90eXBlKTsKKyAgICBlbmNvZGVyLmVuY29kZUVudW0obV90eXBlKTsKIAotICAgIENvcmVJUEM6
OmVuY29kZShlbmNvZGVyLCBtX3F1ZXJ5RGljdGlvbmFyeS5nZXQoKSk7CisgICAgQ29yZUlQQzo6
ZW5jb2RlKCZlbmNvZGVyLCBtX3F1ZXJ5RGljdGlvbmFyeS5nZXQoKSk7CiAKLSAgICBlbmNvZGVy
LT5lbmNvZGUoc3RhdGljX2Nhc3Q8Ym9vbD4obV9hdHRyaWJ1dGVzVG9NYXRjaCkpOworICAgIGVu
Y29kZXIuZW5jb2RlKHN0YXRpY19jYXN0PGJvb2w+KG1fYXR0cmlidXRlc1RvTWF0Y2gpKTsKICAg
ICBpZiAobV9hdHRyaWJ1dGVzVG9NYXRjaCkKLSAgICAgICAgQ29yZUlQQzo6ZW5jb2RlKGVuY29k
ZXIsIG1fYXR0cmlidXRlc1RvTWF0Y2guZ2V0KCkpOworICAgICAgICBDb3JlSVBDOjplbmNvZGUo
JmVuY29kZXIsIG1fYXR0cmlidXRlc1RvTWF0Y2guZ2V0KCkpOwogfQogCiBib29sIFNlY0l0ZW1S
ZXF1ZXN0RGF0YTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgU2Vj
SXRlbVJlcXVlc3REYXRhJiBzZWNJdGVtUmVxdWVzdERhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0l0ZW1SZXF1ZXN0RGF0YS5oIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL21hYy9TZWNJdGVtUmVxdWVzdERhdGEuaAppbmRleCA1N2IxOGNmYzY3MjRlOTQ2NWQ2
OGQyMjRiODE5OWQ4ZDgyNTFmMjllLi5jYWUyYzBhY2E4NjE1Yzk2YTg5M2MxNzA1MGI4MmMxYjY0
NjUyY2NlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0l0ZW1SZXF1
ZXN0RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjSXRlbVJlcXVlc3RE
YXRhLmgKQEAgLTUwLDcgKzUwLDcgQEAgcHVibGljOgogICAgIFNlY0l0ZW1SZXF1ZXN0RGF0YShU
eXBlLCBDRkRpY3Rpb25hcnlSZWYgcXVlcnkpOwogICAgIFNlY0l0ZW1SZXF1ZXN0RGF0YShUeXBl
LCBDRkRpY3Rpb25hcnlSZWYgcXVlcnksIENGRGljdGlvbmFyeVJlZiBhdHRyaWJ1dGVzVG9NYXRj
aCk7CiAKLSAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqKSBjb25zdDsK
KyAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKICAgICBz
dGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgU2VjSXRlbVJlcXVl
c3REYXRhJik7CiAKICAgICBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjSXRlbVJlc3BvbnNlRGF0YS5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0l0ZW1SZXNwb25zZURhdGEuY3BwCmlu
ZGV4IDBjYzhmMTM0NzFkNGMxZmEyMDY2Y2E5OTM1NTBkNzljYmY3NzYzOWEuLjZjNGJhZDE2YTU1
OTI3MDA2YzRmM2ViMDg0ZGFjZjJlYjUzZWJiYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9tYWMvU2VjSXRlbVJlc3BvbnNlRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL21hYy9TZWNJdGVtUmVzcG9uc2VEYXRhLmNwcApAQCAtNDEsMTIgKzQxLDEyIEBAIFNl
Y0l0ZW1SZXNwb25zZURhdGE6OlNlY0l0ZW1SZXNwb25zZURhdGEoT1NTdGF0dXMgcmVzdWx0Q29k
ZSwgQ0ZUeXBlUmVmIHJlc3VsdE9iCiB7CiB9CiAKLXZvaWQgU2VjSXRlbVJlc3BvbnNlRGF0YTo6
ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKK3ZvaWQgU2Vj
SXRlbVJlc3BvbnNlRGF0YTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2Rl
cikgY29uc3QKIHsKLSAgICBlbmNvZGVyLT5lbmNvZGUoc3RhdGljX2Nhc3Q8aW50NjRfdD4obV9y
ZXN1bHRDb2RlKSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHN0YXRpY19jYXN0PGJvb2w+KG1fcmVz
dWx0T2JqZWN0LmdldCgpKSk7CisgICAgZW5jb2Rlci5lbmNvZGUoc3RhdGljX2Nhc3Q8aW50NjRf
dD4obV9yZXN1bHRDb2RlKSk7CisgICAgZW5jb2Rlci5lbmNvZGUoc3RhdGljX2Nhc3Q8Ym9vbD4o
bV9yZXN1bHRPYmplY3QuZ2V0KCkpKTsKICAgICBpZiAobV9yZXN1bHRPYmplY3QpCi0gICAgICAg
IENvcmVJUEM6OmVuY29kZShlbmNvZGVyLCBtX3Jlc3VsdE9iamVjdC5nZXQoKSk7CisgICAgICAg
IENvcmVJUEM6OmVuY29kZSgmZW5jb2RlciwgbV9yZXN1bHRPYmplY3QuZ2V0KCkpOwogfQogCiBi
b29sIFNlY0l0ZW1SZXNwb25zZURhdGE6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
IGRlY29kZXIsIFNlY0l0ZW1SZXNwb25zZURhdGEmIHNlY0l0ZW1SZXNwb25zZURhdGEpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0l0ZW1SZXNwb25zZURhdGEuaCBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjSXRlbVJlc3BvbnNlRGF0YS5oCmluZGV4IDVj
OTQzMzY5MjcyNDMyZGY4NjRkNjFmMWUxMGQ3MTdlOWRmZTQ2NjkuLmNmNWM5ZWU3YTNkMWJjMGM4
YTk5YTVkZDY4NDdlODQ3OTJjMTgxYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9tYWMvU2VjSXRlbVJlc3BvbnNlRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9t
YWMvU2VjSXRlbVJlc3BvbnNlRGF0YS5oCkBAIC00MCw3ICs0MCw3IEBAIHB1YmxpYzoKICAgICBT
ZWNJdGVtUmVzcG9uc2VEYXRhKCk7CiAgICAgU2VjSXRlbVJlc3BvbnNlRGF0YShPU1N0YXR1cywg
Q0ZUeXBlUmVmIHJlc3VsdCk7CiAKLSAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVu
Y29kZXIqKSBjb25zdDsKKyAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIm
KSBjb25zdDsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
KiwgU2VjSXRlbVJlc3BvbnNlRGF0YSYpOwogCiAgICAgUmV0YWluUHRyPENGVHlwZVJlZj4mIHJl
c3VsdE9iamVjdCgpIHsgcmV0dXJuIG1fcmVzdWx0T2JqZWN0OyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0tleWNoYWluSXRlbVJlcXVlc3REYXRhLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjS2V5Y2hhaW5JdGVtUmVxdWVzdERhdGEuY3BwCmlu
ZGV4IGRjYmY5OTQ1OGM2OTVhMjhkNzBhMTZiMmRjNGNlNzIyZTkwZjI2YTIuLjJlZTNlNDhjZDQ5
OGIxNDJiOGVhOGQzZGYxOTgwMTdkNWQyOTYyZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9tYWMvU2VjS2V5Y2hhaW5JdGVtUmVxdWVzdERhdGEuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9tYWMvU2VjS2V5Y2hhaW5JdGVtUmVxdWVzdERhdGEuY3BwCkBAIC0xMjMs
MTkgKzEyMywxOSBAQCBTZWNLZXljaGFpbkF0dHJpYnV0ZUxpc3QqIFNlY0tleWNoYWluSXRlbVJl
cXVlc3REYXRhOjphdHRyaWJ1dGVMaXN0KCkgY29uc3QKICAgICByZXR1cm4gbV9hdHRycy0+bV9h
dHRyaWJ1dGVMaXN0LmdldCgpOwogfQogCi12b2lkIFNlY0tleWNoYWluSXRlbVJlcXVlc3REYXRh
OjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAordm9pZCBT
ZWNLZXljaGFpbkl0ZW1SZXF1ZXN0RGF0YTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyLT5lbmNvZGVFbnVtKG1fdHlwZSk7Cisg
ICAgZW5jb2Rlci5lbmNvZGVFbnVtKG1fdHlwZSk7CiAKLSAgICBlbmNvZGVyLT5lbmNvZGUoc3Rh
dGljX2Nhc3Q8Ym9vbD4obV9rZXljaGFpbkl0ZW0pKTsKKyAgICBlbmNvZGVyLmVuY29kZShzdGF0
aWNfY2FzdDxib29sPihtX2tleWNoYWluSXRlbSkpOwogICAgIGlmIChtX2tleWNoYWluSXRlbSkK
LSAgICAgICAgQ29yZUlQQzo6ZW5jb2RlKGVuY29kZXIsIG1fa2V5Y2hhaW5JdGVtLmdldCgpKTsK
KyAgICAgICAgQ29yZUlQQzo6ZW5jb2RlKCZlbmNvZGVyLCBtX2tleWNoYWluSXRlbS5nZXQoKSk7
CiAKLSAgICBlbmNvZGVyLT5lbmNvZGUoc3RhdGljX2Nhc3Q8aW50MzJfdD4obV9rZXljaGFpbkF0
dHJpYnV0ZXMuc2l6ZSgpKSk7CisgICAgZW5jb2Rlci5lbmNvZGUoc3RhdGljX2Nhc3Q8aW50MzJf
dD4obV9rZXljaGFpbkF0dHJpYnV0ZXMuc2l6ZSgpKSk7CiAgICAgZm9yIChzaXplX3QgaSA9IDAs
IGNvdW50ID0gbV9rZXljaGFpbkF0dHJpYnV0ZXMuc2l6ZSgpOyBpIDwgY291bnQ7ICsraSkKLSAg
ICAgICAgQ29yZUlQQzo6ZW5jb2RlKGVuY29kZXIsIG1fa2V5Y2hhaW5BdHRyaWJ1dGVzW2ldKTsK
KyAgICAgICAgQ29yZUlQQzo6ZW5jb2RlKCZlbmNvZGVyLCBtX2tleWNoYWluQXR0cmlidXRlc1tp
XSk7CiAgICAgCi0gICAgZW5jb2Rlci0+ZW5jb2RlKHN0YXRpY19jYXN0PHVpbnQ2NF90PihtX2l0
ZW1DbGFzcykpOworICAgIGVuY29kZXIuZW5jb2RlKHN0YXRpY19jYXN0PHVpbnQ2NF90PihtX2l0
ZW1DbGFzcykpOwogICAgIG1fZGF0YVJlZmVyZW5jZS5lbmNvZGUoZW5jb2Rlcik7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjS2V5Y2hhaW5JdGVtUmVxdWVz
dERhdGEuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjS2V5Y2hhaW5JdGVtUmVxdWVz
dERhdGEuaAppbmRleCA1MTJlYTU0YmQyNDU1YTNjZjY1OTMwZGVmY2QwNjZjNmZmYmMyYTM4Li4x
ODEyMzFiZDYxNjY3ZTIxZDU2OTZkNzhiOTdiZThiOTVlZWFmYTJmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0tleWNoYWluSXRlbVJlcXVlc3REYXRhLmgKKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TZWNLZXljaGFpbkl0ZW1SZXF1ZXN0RGF0YS5oCkBA
IC01OCw3ICs1OCw3IEBAIHB1YmxpYzoKICAgICBTZWNLZXljaGFpbkl0ZW1SZXF1ZXN0RGF0YShU
eXBlLCBTZWNJdGVtQ2xhc3MsIFNlY0tleWNoYWluQXR0cmlidXRlTGlzdCosIFVJbnQzMiBsZW5n
dGgsIGNvbnN0IHZvaWQqIGRhdGEpOwogICAgIH5TZWNLZXljaGFpbkl0ZW1SZXF1ZXN0RGF0YSgp
OwogCi0gICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKikgY29uc3Q7Cisg
ICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CiAgICAgc3Rh
dGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIFNlY0tleWNoYWluSXRl
bVJlcXVlc3REYXRhJik7CiAKICAgICBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjS2V5Y2hhaW5JdGVt
UmVzcG9uc2VEYXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjS2V5Y2hhaW5J
dGVtUmVzcG9uc2VEYXRhLmNwcAppbmRleCAyNDdmODliNmFjOTlmODJmODcxZjc5M2Q4OTA2YTNi
ZTQ4NDk5YTA3Li40OTViMzAxMmNiN2E3MmNmMTQzN2RiYjU3ODRhYjAwNDU5Njk1OWY0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0tleWNoYWluSXRlbVJlc3BvbnNl
RGF0YS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TZWNLZXljaGFpbkl0ZW1S
ZXNwb25zZURhdGEuY3BwCkBAIC02MywyMSArNjMsMjEgQEAgU2VjS2V5Y2hhaW5JdGVtUmVzcG9u
c2VEYXRhOjpTZWNLZXljaGFpbkl0ZW1SZXNwb25zZURhdGEoT1NTdGF0dXMgcmVzdWx0Q29kZSkK
IHsKIH0KIAotdm9pZCBTZWNLZXljaGFpbkl0ZW1SZXNwb25zZURhdGE6OmVuY29kZShDb3JlSVBD
OjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Cit2b2lkIFNlY0tleWNoYWluSXRlbVJl
c3BvbnNlRGF0YTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29u
c3QKIHsKLSAgICBlbmNvZGVyLT5lbmNvZGUoc3RhdGljX2Nhc3Q8aW50NjRfdD4obV9yZXN1bHRD
b2RlKSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHN0YXRpY19jYXN0PHVpbnQzMl90PihtX2l0ZW1D
bGFzcykpOwotICAgIGVuY29kZXItPmVuY29kZShzdGF0aWNfY2FzdDx1aW50MzJfdD4obV9hdHRy
aWJ1dGVzLnNpemUoKSkpOworICAgIGVuY29kZXIuZW5jb2RlKHN0YXRpY19jYXN0PGludDY0X3Q+
KG1fcmVzdWx0Q29kZSkpOworICAgIGVuY29kZXIuZW5jb2RlKHN0YXRpY19jYXN0PHVpbnQzMl90
PihtX2l0ZW1DbGFzcykpOworICAgIGVuY29kZXIuZW5jb2RlKHN0YXRpY19jYXN0PHVpbnQzMl90
PihtX2F0dHJpYnV0ZXMuc2l6ZSgpKSk7CiAgICAgZm9yIChzaXplX3QgaSA9IDAsIGNvdW50ID0g
bV9hdHRyaWJ1dGVzLnNpemUoKTsgaSA8IGNvdW50OyArK2kpCi0gICAgICAgIENvcmVJUEM6OmVu
Y29kZShlbmNvZGVyLCBtX2F0dHJpYnV0ZXNbaV0pOworICAgICAgICBDb3JlSVBDOjplbmNvZGUo
JmVuY29kZXIsIG1fYXR0cmlidXRlc1tpXSk7CiAKLSAgICBlbmNvZGVyLT5lbmNvZGUoc3RhdGlj
X2Nhc3Q8Ym9vbD4obV9kYXRhKSk7CisgICAgZW5jb2Rlci5lbmNvZGUoc3RhdGljX2Nhc3Q8Ym9v
bD4obV9kYXRhKSk7CiAgICAgaWYgKG1fZGF0YSkKLSAgICAgICAgQ29yZUlQQzo6ZW5jb2RlKGVu
Y29kZXIsIG1fZGF0YS5nZXQoKSk7CisgICAgICAgIENvcmVJUEM6OmVuY29kZSgmZW5jb2Rlciwg
bV9kYXRhLmdldCgpKTsKIAotICAgIGVuY29kZXItPmVuY29kZShzdGF0aWNfY2FzdDxib29sPiht
X2tleWNoYWluSXRlbSkpOworICAgIGVuY29kZXIuZW5jb2RlKHN0YXRpY19jYXN0PGJvb2w+KG1f
a2V5Y2hhaW5JdGVtKSk7CiAgICAgaWYgKG1fa2V5Y2hhaW5JdGVtKQotICAgICAgICBDb3JlSVBD
OjplbmNvZGUoZW5jb2RlciwgbV9rZXljaGFpbkl0ZW0uZ2V0KCkpOworICAgICAgICBDb3JlSVBD
OjplbmNvZGUoJmVuY29kZXIsIG1fa2V5Y2hhaW5JdGVtLmdldCgpKTsKIH0KIAogYm9vbCBTZWNL
ZXljaGFpbkl0ZW1SZXNwb25zZURhdGE6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
IGRlY29kZXIsIFNlY0tleWNoYWluSXRlbVJlc3BvbnNlRGF0YSYgc2VjS2V5Y2hhaW5JdGVtUmVz
cG9uc2VEYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TZWNLZXlj
aGFpbkl0ZW1SZXNwb25zZURhdGEuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjS2V5
Y2hhaW5JdGVtUmVzcG9uc2VEYXRhLmgKaW5kZXggMDliMzhmMGFlNTAxOWY2YzVlNTNjODYzMGJi
NTQ2NzIwOWRmN2JmYi4uY2RkY2ZjMjE4ZjljZWNmZmY3ZTRhMGFmYWEyOGRmMWFhODM3NzY4ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TZWNLZXljaGFpbkl0ZW1SZXNw
b25zZURhdGEuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0tleWNoYWluSXRl
bVJlc3BvbnNlRGF0YS5oCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAgICBTZWNLZXljaGFp
bkl0ZW1SZXNwb25zZURhdGEoT1NTdGF0dXMsIFJldGFpblB0cjxTZWNLZXljaGFpbkl0ZW1SZWY+
KTsKICAgICBTZWNLZXljaGFpbkl0ZW1SZXNwb25zZURhdGEoT1NTdGF0dXMpOwogCi0gICAgdm9p
ZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKikgY29uc3Q7CisgICAgdm9pZCBlbmNv
ZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVj
b2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIFNlY0tleWNoYWluSXRlbVJlc3BvbnNlRGF0
YSYpOwogCiAgICAgU2VjSXRlbUNsYXNzIGl0ZW1DbGFzcygpIGNvbnN0IHsgcmV0dXJuIG1faXRl
bUNsYXNzOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4
dFVzZXJNZXNzYWdlQ29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4
dFVzZXJNZXNzYWdlQ29kZXJzLmgKaW5kZXggZmZlMzIyODExNjdlMzZkY2VmMjU3YzkwYmJhNjEz
NGRlOGZkMmFiZi4uOGQ2ODRjNGI2N2RlNjNkOGMyZDkzODUwN2U0MWYzN2JjMmMwNTI4ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHRVc2VyTWVzc2FnZUNv
ZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0VXNlck1lc3Nh
Z2VDb2RlcnMuaApAQCAtNDYsNyArNDYsNyBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAotICAg
IHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QgCisg
ICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAog
ICAgIHsKICAgICAgICAgQVBJT2JqZWN0OjpUeXBlIHR5cGUgPSBBUElPYmplY3Q6OlR5cGVOdWxs
OwogICAgICAgICBpZiAoYmFzZUVuY29kZShlbmNvZGVyLCB0eXBlKSkKQEAgLTU1LDE3ICs1NSwx
NyBAQCBwdWJsaWM6CiAgICAgICAgIHN3aXRjaCAodHlwZSkgewogICAgICAgICBjYXNlIEFQSU9i
amVjdDo6VHlwZVBhZ2U6IHsKICAgICAgICAgICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9IHN0YXRp
Y19jYXN0PFdlYlBhZ2VQcm94eSo+KG1fcm9vdCk7Ci0gICAgICAgICAgICBlbmNvZGVyLT5lbmNv
ZGUocGFnZS0+cGFnZUlEKCkpOworICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGUocGFnZS0+cGFn
ZUlEKCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBBUElP
YmplY3Q6OlR5cGVGcmFtZTogewogICAgICAgICAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBz
dGF0aWNfY2FzdDxXZWJGcmFtZVByb3h5Kj4obV9yb290KTsKLSAgICAgICAgICAgIGVuY29kZXIt
PmVuY29kZShmcmFtZS0+ZnJhbWVJRCgpKTsKKyAgICAgICAgICAgIGVuY29kZXIuZW5jb2RlKGZy
YW1lLT5mcmFtZUlEKCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAg
Y2FzZSBBUElPYmplY3Q6OlR5cGVQYWdlR3JvdXA6IHsKICAgICAgICAgICAgIFdlYlBhZ2VHcm91
cCogcGFnZUdyb3VwID0gc3RhdGljX2Nhc3Q8V2ViUGFnZUdyb3VwKj4obV9yb290KTsKLSAgICAg
ICAgICAgIGVuY29kZXItPmVuY29kZShwYWdlR3JvdXAtPmRhdGEoKSk7CisgICAgICAgICAgICBl
bmNvZGVyLmVuY29kZShwYWdlR3JvdXAtPmRhdGEoKSk7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgfQogICAgICAgICBkZWZhdWx0OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlQ29kZXJzLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
VXNlck1lc3NhZ2VDb2RlcnMuaAppbmRleCA0OWQ2Njk2NmE2NzM3MjllZTQwNWQwZDBjMTAwMThj
MTY4ZjMzZTNiLi5jNWQ1NmYxNzg5OGUxNjdmOWY2OWU3N2NkMGU0MWI3YWZjNWE3MjI1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlVXNlck1lc3NhZ2VDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VDb2RlcnMuaApAQCAtNDks
NyArNDksNyBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAotICAgIHZvaWQgZW5jb2RlKENvcmVJ
UEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QgCisgICAgdm9pZCBlbmNvZGUoQ29y
ZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIHsKICAgICAgICAgQVBJ
T2JqZWN0OjpUeXBlIHR5cGUgPSBBUElPYmplY3Q6OlR5cGVOdWxsOwogICAgICAgICBpZiAoYmFz
ZUVuY29kZShlbmNvZGVyLCB0eXBlKSkKQEAgLTU4LDE3ICs1OCwxNyBAQCBwdWJsaWM6CiAgICAg
ICAgIHN3aXRjaCAodHlwZSkgewogICAgICAgICBjYXNlIEFQSU9iamVjdDo6VHlwZUJ1bmRsZVBh
Z2U6IHsKICAgICAgICAgICAgIFdlYlBhZ2UqIHBhZ2UgPSBzdGF0aWNfY2FzdDxXZWJQYWdlKj4o
bV9yb290KTsKLSAgICAgICAgICAgIGVuY29kZXItPmVuY29kZShwYWdlLT5wYWdlSUQoKSk7Cisg
ICAgICAgICAgICBlbmNvZGVyLmVuY29kZShwYWdlLT5wYWdlSUQoKSk7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIEFQSU9iamVjdDo6VHlwZUJ1bmRsZUZyYW1l
OiB7CiAgICAgICAgICAgICBXZWJGcmFtZSogZnJhbWUgPSBzdGF0aWNfY2FzdDxXZWJGcmFtZSo+
KG1fcm9vdCk7Ci0gICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGUoZnJhbWUtPmZyYW1lSUQoKSk7
CisgICAgICAgICAgICBlbmNvZGVyLmVuY29kZShmcmFtZS0+ZnJhbWVJRCgpKTsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgQVBJT2JqZWN0OjpUeXBlQnVuZGxl
UGFnZUdyb3VwOiB7CiAgICAgICAgICAgICBXZWJQYWdlR3JvdXBQcm94eSogcGFnZUdyb3VwID0g
c3RhdGljX2Nhc3Q8V2ViUGFnZUdyb3VwUHJveHkqPihtX3Jvb3QpOwotICAgICAgICAgICAgZW5j
b2Rlci0+ZW5jb2RlKHBhZ2VHcm91cC0+cGFnZUdyb3VwSUQoKSk7CisgICAgICAgICAgICBlbmNv
ZGVyLmVuY29kZShwYWdlR3JvdXAtPnBhZ2VHcm91cElEKCkpOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIH0KICAgICAgICAgZGVmYXVsdDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL1BsdWdpbi5jcHAKaW5kZXggYmM4ODRiOTYyYTFlYzM4NDY4ZTk2OTkwMGQxN2Ex
ZGMyZDVlZjQ1My4uZWUwMmJiYjUxODcyZWU3OGZlZDAyNWNlYThkNTIwMzNlN2I5ZGU3MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5jcHAKQEAgLTMyLDE2
ICszMiwxNiBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7
CiAKLXZvaWQgUGx1Z2luOjpQYXJhbWV0ZXJzOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNv
ZGVyKiBlbmNvZGVyKSBjb25zdAordm9pZCBQbHVnaW46OlBhcmFtZXRlcnM6OmVuY29kZShDb3Jl
SVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2Rlci0+ZW5j
b2RlKHVybC5zdHJpbmcoKSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG5hbWVzKTsKLSAgICBlbmNv
ZGVyLT5lbmNvZGUodmFsdWVzKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobWltZVR5cGUpOwotICAg
IGVuY29kZXItPmVuY29kZShpc0Z1bGxGcmFtZVBsdWdpbik7Ci0gICAgZW5jb2Rlci0+ZW5jb2Rl
KHNob3VsZFVzZU1hbnVhbExvYWRlcik7CisgICAgZW5jb2Rlci5lbmNvZGUodXJsLnN0cmluZygp
KTsKKyAgICBlbmNvZGVyLmVuY29kZShuYW1lcyk7CisgICAgZW5jb2Rlci5lbmNvZGUodmFsdWVz
KTsKKyAgICBlbmNvZGVyLmVuY29kZShtaW1lVHlwZSk7CisgICAgZW5jb2Rlci5lbmNvZGUoaXNG
dWxsRnJhbWVQbHVnaW4pOworICAgIGVuY29kZXIuZW5jb2RlKHNob3VsZFVzZU1hbnVhbExvYWRl
cik7CiAjaWYgUExBVEZPUk0oTUFDKQotICAgIGVuY29kZXItPmVuY29kZUVudW0obGF5ZXJIb3N0
aW5nTW9kZSk7CisgICAgZW5jb2Rlci5lbmNvZGVFbnVtKGxheWVySG9zdGluZ01vZGUpOwogI2Vu
ZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW4uaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uaAppbmRl
eCA5OGY4NzcwYzE2OGZmMjEzMTYzYjY0NGUyZGI1ZWI1YzlmMTA5MjcwLi5kZWQ1M2QxNTc4ZmNh
NmY0NDNmNGY0ZTUwZTgyZjE5OWQwMTY1Nzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL1BsdWdpbi5oCkBAIC03Nyw3ICs3Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgTGF5
ZXJIb3N0aW5nTW9kZSBsYXllckhvc3RpbmdNb2RlOwogI2VuZGlmCiAKLSAgICAgICAgdm9pZCBl
bmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKikgY29uc3Q7CisgICAgICAgIHZvaWQgZW5j
b2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OwogICAgICAgICBzdGF0aWMgYm9v
bCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgUGFyYW1ldGVycyYpOwogICAgIH07
CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170298</attachid>
            <date>2012-10-23 20:11:12 -0700</date>
            <delta_ts>2012-10-23 20:54:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100183-20121023200943.patch</filename>
            <type>text/plain</type>
            <size>110772</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyMjg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYzMzYjcxODRiMDQ1MjAx
YjBmMjhiYmYzYzliYjE0ODJmMGVkNjExNi4uODMxZGNkZTZiNWZjZTY0MDQwMTE3MTNlYTFiYzZi
YzI2YTc2N2U5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxMSBAQAorMjAxMi0xMC0yMyAgQW5k
ZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgorCisgICAgICAgIGVuY29kZSBzaG91
bGQgdGFrZSBhbiBBcmd1bWVudEVuY29kZXIgcmVmZXJlbmNlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDAxODMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRpdGlvbmFsIGluZm9ybWF0aW9uIG9mIHRo
ZSBjaGFuZ2Ugc3VjaCBhcyBhcHByb2FjaCwgcmF0aW9uYWxlLiBQbGVhc2UgYWRkIHBlci1mdW5j
dGlvbiBkZXNjcmlwdGlvbnMgYmVsb3cgKE9PUFMhKS4KKworICAgICAgICAqIFBsYXRmb3JtL0Nv
cmVJUEMvQXJndW1lbnRDb2Rlci5oOgorICAgICAgICAoQ29yZUlQQzo6QXJndW1lbnRDb2Rlcjo6
ZW5jb2RlKToKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL0FyZ3VtZW50cy5oOgorICAgICAg
ICAoQ29yZUlQQzo6QXJndW1lbnRzMDo6ZW5jb2RlKToKKyAgICAgICAgKENvcmVJUEM6OkFyZ3Vt
ZW50czE6OmVuY29kZSk6CisgICAgICAgIChDb3JlSVBDOjpBcmd1bWVudHMyOjplbmNvZGUpOgor
ICAgICAgICAoQ29yZUlQQzo6QXJndW1lbnRzMzo6ZW5jb2RlKToKKyAgICAgICAgKENvcmVJUEM6
OkFyZ3VtZW50czQ6OmVuY29kZSk6CisgICAgICAgIChDb3JlSVBDOjpBcmd1bWVudHM1OjplbmNv
ZGUpOgorICAgICAgICAoQ29yZUlQQzo6QXJndW1lbnRzNjo6ZW5jb2RlKToKKyAgICAgICAgKENv
cmVJUEM6OkFyZ3VtZW50czc6OmVuY29kZSk6CisgICAgICAgIChDb3JlSVBDOjpBcmd1bWVudHM4
OjplbmNvZGUpOgorICAgICAgICAoQ29yZUlQQzo6QXJndW1lbnRzMTA6OmVuY29kZSk6CisgICAg
ICAgICogUGxhdGZvcm0vQ29yZUlQQy9BdHRhY2htZW50LmNwcDoKKyAgICAgICAgKENvcmVJUEM6
OkF0dGFjaG1lbnQ6OmVuY29kZSk6CisgICAgICAgICogUGxhdGZvcm0vQ29yZUlQQy9BdHRhY2ht
ZW50Lmg6CisgICAgICAgIChBdHRhY2htZW50KToKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBD
L0RhdGFSZWZlcmVuY2UuY3BwOgorICAgICAgICAoQ29yZUlQQzo6RGF0YVJlZmVyZW5jZTo6ZW5j
b2RlKToKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL0RhdGFSZWZlcmVuY2UuaDoKKyAgICAg
ICAgKERhdGFSZWZlcmVuY2UpOgorICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvU3RyaW5nUmVm
ZXJlbmNlLmNwcDoKKyAgICAgICAgKENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZTo6ZW5jb2RlKToK
KyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL1N0cmluZ1JlZmVyZW5jZS5oOgorICAgICAgICAo
U3RyaW5nUmVmZXJlbmNlKToKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL21hYy9NYWNoUG9y
dC5oOgorICAgICAgICAoQ29yZUlQQzo6TWFjaFBvcnQ6OmVuY29kZSk6CisgICAgICAgICogUGxh
dGZvcm0vU2hhcmVkTWVtb3J5Lmg6CisgICAgICAgIChIYW5kbGUpOgorICAgICAgICAqIFBsYXRm
b3JtL21hYy9TaGFyZWRNZW1vcnlNYWMuY3BwOgorICAgICAgICAoV2ViS2l0OjpTaGFyZWRNZW1v
cnk6OkhhbmRsZTo6ZW5jb2RlKToKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1BsdWdpbkNyZWF0
aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpbkNyZWF0aW9uUGFyYW1l
dGVyczo6ZW5jb2RlKToKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1BsdWdpbkNyZWF0aW9uUGFy
YW1ldGVycy5oOgorICAgICAgICAoUGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzKToKKyAgICAgICAg
KiBTaGFyZWQvRGljdGlvbmFyeVBvcHVwSW5mby5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRpY3Rp
b25hcnlQb3B1cEluZm86OmVuY29kZSk6CisgICAgICAgICogU2hhcmVkL0RpY3Rpb25hcnlQb3B1
cEluZm8uaDoKKyAgICAgICAgKERpY3Rpb25hcnlQb3B1cEluZm8pOgorICAgICAgICAqIFNoYXJl
ZC9FZGl0b3JTdGF0ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvclN0YXRlOjplbmNvZGUp
OgorICAgICAgICAqIFNoYXJlZC9FZGl0b3JTdGF0ZS5oOgorICAgICAgICAoRWRpdG9yU3RhdGUp
OgorICAgICAgICAqIFNoYXJlZC9Gb250SW5mby5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZvbnRJ
bmZvOjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9Gb250SW5mby5oOgorICAgICAgICAoRm9u
dEluZm8pOgorICAgICAgICAqIFNoYXJlZC9MYXllclRyZWVDb250ZXh0Lmg6CisgICAgICAgIChM
YXllclRyZWVDb250ZXh0KToKKyAgICAgICAgKiBTaGFyZWQvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgIChOZXR3b3JrUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycyk6CisgICAgICAgICogU2hhcmVkL09yaWdpbkFuZERhdGFiYXNl
cy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok9yaWdpbkFuZERhdGFiYXNlczo6ZW5jb2RlKToKKyAg
ICAgICAgKiBTaGFyZWQvT3JpZ2luQW5kRGF0YWJhc2VzLmg6CisgICAgICAgIChPcmlnaW5BbmRE
YXRhYmFzZXMpOgorICAgICAgICAqIFNoYXJlZC9QbGF0Zm9ybVBvcHVwTWVudURhdGEuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybVBvcHVwTWVudURhdGE6OmVuY29kZSk6CisgICAgICAg
ICogU2hhcmVkL1BsYXRmb3JtUG9wdXBNZW51RGF0YS5oOgorICAgICAgICAoUGxhdGZvcm1Qb3B1
cE1lbnVEYXRhKToKKyAgICAgICAgKiBTaGFyZWQvUGx1Z2lucy9OUElkZW50aWZpZXJEYXRhLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6TlBJZGVudGlmaWVyRGF0YTo6ZW5jb2RlKToKKyAgICAgICAg
KiBTaGFyZWQvUGx1Z2lucy9OUElkZW50aWZpZXJEYXRhLmg6CisgICAgICAgIChOUElkZW50aWZp
ZXJEYXRhKToKKyAgICAgICAgKiBTaGFyZWQvUGx1Z2lucy9OUFZhcmlhbnREYXRhLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TlBWYXJpYW50RGF0YTo6ZW5jb2RlKToKKyAgICAgICAgKiBTaGFyZWQv
UGx1Z2lucy9OUFZhcmlhbnREYXRhLmg6CisgICAgICAgIChOUFZhcmlhbnREYXRhKToKKyAgICAg
ICAgKiBTaGFyZWQvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2Rl
KToKKyAgICAgICAgKiBTaGFyZWQvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmg6CisgICAgICAgIChQbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzKToKKyAgICAg
ICAgKiBTaGFyZWQvUHJpbnRJbmZvLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UHJpbnRJbmZvOjpl
bmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9QcmludEluZm8uaDoKKyAgICAgICAgKFByaW50SW5m
byk6CisgICAgICAgICogU2hhcmVkL1NhbmRib3hFeHRlbnNpb24uaDoKKyAgICAgICAgKEhhbmRs
ZSk6CisgICAgICAgIChIYW5kbGVBcnJheSk6CisgICAgICAgICogU2hhcmVkL1NlY3VyaXR5T3Jp
Z2luRGF0YS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNlY3VyaXR5T3JpZ2luRGF0YTo6ZW5jb2Rl
KToKKyAgICAgICAgKiBTaGFyZWQvU2VjdXJpdHlPcmlnaW5EYXRhLmg6CisgICAgICAgIChTZWN1
cml0eU9yaWdpbkRhdGEpOgorICAgICAgICAqIFNoYXJlZC9TZXNzaW9uU3RhdGUuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpTZXNzaW9uU3RhdGU6OmVuY29kZSk6CisgICAgICAgICogU2hhcmVkL1Nl
c3Npb25TdGF0ZS5oOgorICAgICAgICAoU2Vzc2lvblN0YXRlKToKKyAgICAgICAgKiBTaGFyZWQv
U2hhcmVhYmxlQml0bWFwLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U2hhcmVhYmxlQml0bWFwOjpI
YW5kbGU6OmVuY29kZSk6CisgICAgICAgICogU2hhcmVkL1NoYXJlYWJsZUJpdG1hcC5oOgorICAg
ICAgICAoSGFuZGxlKToKKyAgICAgICAgKiBTaGFyZWQvU2hhcmVkV29ya2VyUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNoYXJlZFdvcmtlclByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSk6CisgICAgICAgICogU2hhcmVkL1NoYXJlZFdvcmtl
clByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKFNoYXJlZFdvcmtlclByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMpOgorICAgICAgICAqIFNoYXJlZC9TdGF0aXN0aWNzRGF0YS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OlN0YXRpc3RpY3NEYXRhOjplbmNvZGUpOgorICAgICAgICAq
IFNoYXJlZC9TdGF0aXN0aWNzRGF0YS5oOgorICAgICAgICAoU3RhdGlzdGljc0RhdGEpOgorICAg
ICAgICAqIFNoYXJlZC9TdHJpbmdQYWlyVmVjdG9yLmg6CisgICAgICAgIChXZWJLaXQ6OlN0cmlu
Z1BhaXJWZWN0b3I6OmVuY29kZSk6CisgICAgICAgICogU2hhcmVkL1VwZGF0ZUluZm8uY3BwOgor
ICAgICAgICAoV2ViS2l0OjpVcGRhdGVJbmZvOjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9V
cGRhdGVJbmZvLmg6CisgICAgICAgIChVcGRhdGVJbmZvKToKKyAgICAgICAgKiBTaGFyZWQvVXNl
ck1lc3NhZ2VDb2RlcnMuaDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lc3NhZ2VFbmNvZGVyOjpi
YXNlRW5jb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51SXRlbURhdGE6OmVuY29kZSk6CisgICAg
ICAgICogU2hhcmVkL1dlYkNvbnRleHRNZW51SXRlbURhdGEuaDoKKyAgICAgICAgKFdlYkNvbnRl
eHRNZW51SXRlbURhdGEpOgorICAgICAgICAqIFNoYXJlZC9XZWJFdmVudC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYkV2ZW50OjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJFdmVudC5o
OgorICAgICAgICAoV2ViRXZlbnQpOgorICAgICAgICAoV2ViTW91c2VFdmVudCk6CisgICAgICAg
IChXZWJXaGVlbEV2ZW50KToKKyAgICAgICAgKFdlYktleWJvYXJkRXZlbnQpOgorICAgICAgICAo
V2ViR2VzdHVyZUV2ZW50KToKKyAgICAgICAgKFdlYlBsYXRmb3JtVG91Y2hQb2ludCk6CisgICAg
ICAgIChXZWJUb3VjaEV2ZW50KToKKyAgICAgICAgKiBTaGFyZWQvV2ViR2VvbG9jYXRpb25Qb3Np
dGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uUG9zaXRpb246OkRhdGE6
OmVuY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uaDoKKyAg
ICAgICAgKERhdGEpOgorICAgICAgICAqIFNoYXJlZC9XZWJHZXN0dXJlRXZlbnQuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJHZXN0dXJlRXZlbnQ6OmVuY29kZSk6CisgICAgICAgICogU2hhcmVk
L1dlYkhpdFRlc3RSZXN1bHQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJIaXRUZXN0UmVzdWx0
OjpEYXRhOjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJIaXRUZXN0UmVzdWx0Lmg6Cisg
ICAgICAgIChEYXRhKToKKyAgICAgICAgKiBTaGFyZWQvV2ViS2V5Ym9hcmRFdmVudC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYktleWJvYXJkRXZlbnQ6OmVuY29kZSk6CisgICAgICAgICogU2hh
cmVkL1dlYk1vdXNlRXZlbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJNb3VzZUV2ZW50Ojpl
bmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJOYXZpZ2F0aW9uRGF0YVN0b3JlLmg6CisgICAg
ICAgIChXZWJLaXQ6OldlYk5hdmlnYXRpb25EYXRhU3RvcmU6OmVuY29kZSk6CisgICAgICAgICog
U2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQ
YWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgIChXZWJQYWdlQ3JlYXRpb25QYXJhbWV0
ZXJzKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUGFnZUdyb3VwRGF0YS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VHcm91cERhdGE6OmVuY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYlBh
Z2VHcm91cERhdGEuaDoKKyAgICAgICAgKFdlYlBhZ2VHcm91cERhdGEpOgorICAgICAgICAqIFNo
YXJlZC9XZWJQb3B1cEl0ZW0uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cEl0ZW06OmVu
Y29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYlBvcHVwSXRlbS5oOgorICAgICAgICAqIFNoYXJl
ZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJlZmVyZW5j
ZXNTdG9yZTo6ZW5jb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5o
OgorICAgICAgICAoV2ViUHJlZmVyZW5jZXNTdG9yZSk6CisgICAgICAgICogU2hhcmVkL1dlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgIChXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzKToKKyAgICAgICAgKiBTaGFyZWQvV2ViV2hlZWxFdmVudC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYldoZWVsRXZlbnQ6OmVuY29kZSk6CisgICAgICAgICogU2hhcmVkL21hYy9BdHRyaWJ1
dGVkU3RyaW5nLmg6CisgICAgICAgIChBdHRyaWJ1dGVkU3RyaW5nKToKKyAgICAgICAgKiBTaGFy
ZWQvbWFjL0F0dHJpYnV0ZWRTdHJpbmcubW06CisgICAgICAgIChXZWJLaXQ6OkF0dHJpYnV0ZWRT
dHJpbmc6OmVuY29kZSk6CisgICAgICAgICogU2hhcmVkL21hYy9Db2xvclNwYWNlRGF0YS5oOgor
ICAgICAgICAoQ29sb3JTcGFjZURhdGEpOgorICAgICAgICAqIFNoYXJlZC9tYWMvQ29sb3JTcGFj
ZURhdGEubW06CisgICAgICAgIChXZWJLaXQ6OkNvbG9yU3BhY2VEYXRhOjplbmNvZGUpOgorICAg
ICAgICAqIFNoYXJlZC9tYWMvTGF5ZXJUcmVlQ29udGV4dE1hYy5tbToKKyAgICAgICAgKFdlYktp
dDo6TGF5ZXJUcmVlQ29udGV4dDo6ZW5jb2RlKToKKyAgICAgICAgKiBTaGFyZWQvbWFjL1BsYXRm
b3JtQ2VydGlmaWNhdGVJbmZvLmg6CisgICAgICAgIChQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyk6
CisgICAgICAgICogU2hhcmVkL21hYy9QbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5tbToKKyAgICAg
ICAgKFdlYktpdDo6UGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm86OmVuY29kZSk6CisgICAgICAgICog
U2hhcmVkL21hYy9TYW5kYm94RXh0ZW5zaW9uTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGU6OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6OlNhbmRib3hF
eHRlbnNpb246OkhhbmRsZUFycmF5OjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9tYWMvU2Vj
SXRlbVJlcXVlc3REYXRhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U2VjSXRlbVJlcXVlc3REYXRh
OjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9tYWMvU2VjSXRlbVJlcXVlc3REYXRhLmg6Cisg
ICAgICAgICogU2hhcmVkL21hYy9TZWNJdGVtUmVzcG9uc2VEYXRhLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6U2VjSXRlbVJlc3BvbnNlRGF0YTo6ZW5jb2RlKToKKyAgICAgICAgKiBTaGFyZWQvbWFj
L1NlY0l0ZW1SZXNwb25zZURhdGEuaDoKKyAgICAgICAgKFNlY0l0ZW1SZXNwb25zZURhdGEpOgor
ICAgICAgICAqIFNoYXJlZC9tYWMvU2VjS2V5Y2hhaW5JdGVtUmVxdWVzdERhdGEuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpTZWNLZXljaGFpbkl0ZW1SZXF1ZXN0RGF0YTo6ZW5jb2RlKToKKyAgICAg
ICAgKiBTaGFyZWQvbWFjL1NlY0tleWNoYWluSXRlbVJlcXVlc3REYXRhLmg6CisgICAgICAgICog
U2hhcmVkL21hYy9TZWNLZXljaGFpbkl0ZW1SZXNwb25zZURhdGEuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpTZWNLZXljaGFpbkl0ZW1SZXNwb25zZURhdGE6OmVuY29kZSk6CisgICAgICAgICogU2hh
cmVkL21hYy9TZWNLZXljaGFpbkl0ZW1SZXNwb25zZURhdGEuaDoKKyAgICAgICAgKFNlY0tleWNo
YWluSXRlbVJlc3BvbnNlRGF0YSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHRVc2Vy
TWVzc2FnZUNvZGVycy5oOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0VXNlck1lc3NhZ2VF
bmNvZGVyOjplbmNvZGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUNvZGVycy5oOgorICAgICAgICAoV2ViS2l0OjpJbmplY3Rl
ZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2Rlcjo6ZW5jb2RlKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luOjpQYXJhbWV0ZXJz
OjplbmNvZGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uaDoKKyAgICAg
ICAgKFBhcmFtZXRlcnMpOgorCiAyMDEyLTEwLTIzICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5z
b25AaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtTb3VwXSBJbXBsZW1lbnQgdGhlIGRlZmF1
bHQgYXV0aGVudGljYXRpb24gZGlhbG9nIHZpYSBXZWJDb3JlU3VwcG9ydApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudENvZGVyLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0FyZ3VtZW50Q29kZXIuaAppbmRleCBiZDE1ZjUxNmNm
ZjY2NjJmYzQ4MmFjZDI0MmNmMmUzNmNkZjc0MmM4Li40YmFhYjlmZTRmOTIzMTQ3NmNiYzI3Y2Nk
NDAwOTViNzdhYWU4Y2U3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL0FyZ3VtZW50Q29kZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBD
L0FyZ3VtZW50Q29kZXIuaApAQCAtMzQsNyArMzQsNyBAQCBjbGFzcyBBcmd1bWVudERlY29kZXI7
CiBjbGFzcyBBcmd1bWVudEVuY29kZXI7CiAgICAgCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1
Y3QgQXJndW1lbnRDb2RlciB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2Rl
ciogZW5jb2RlciwgY29uc3QgVCYgdCkKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCBUJiB0KQogICAgIHsKICAgICAgICAgdC5lbmNvZGUoZW5j
b2Rlcik7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQ
Qy9Bcmd1bWVudHMuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnRz
LmgKaW5kZXggMWQ0YzVkYzRlZGJmMmZmY2UyYjkzMjNmODJhMWNhYTU5OTdlNmE4Yy4uN2VkOTRk
OGI5NmRkOGQ4MDJhZTJmODlkZmQ0NTIwNDNiYTM0YTZjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudHMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybS9Db3JlSVBDL0FyZ3VtZW50cy5oCkBAIC0zNSw3ICszNSw3IEBAIG5hbWVzcGFjZSBD
b3JlSVBDIHsKIHN0cnVjdCBBcmd1bWVudHMwIHsKICAgICB0eXBlZGVmIEFyZ3VtZW50czAgVmFs
dWVUeXBlOwogCi0gICAgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyKikgY29uc3QgCisgICAg
dm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJikgY29uc3QgCiAgICAgewogICAgIH0KIApAQCAt
NTcsOSArNTcsOSBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUMT4gc3RydWN0IEFyZ3VtZW50czEgewog
ICAgIHsKICAgICB9CiAKLSAgICB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXIqIGVuY29kZXIp
IGNvbnN0IAorICAgIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QK
ICAgICB7Ci0gICAgICAgIGVuY29kZXItPmVuY29kZShhcmd1bWVudDEpOworICAgICAgICBlbmNv
ZGVyLmVuY29kZShhcmd1bWVudDEpOwogICAgIH0KIAogICAgIHN0YXRpYyBib29sIGRlY29kZShB
cmd1bWVudERlY29kZXIqIGRlY29kZXIsIEFyZ3VtZW50czEmIHJlc3VsdCkKQEAgLTg0LDEwICs4
NCwxMCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDI+IHN0cnVjdCBBcmd1bWVu
dHMyIDogQXJndW1lbnRzMTxUMT4gewogICAgIHsKICAgICB9CiAKLSAgICB2b2lkIGVuY29kZShB
cmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0IAorICAgIHZvaWQgZW5jb2RlKEFyZ3VtZW50
RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICB7CiAgICAgICAgIEFyZ3VtZW50czE8VDE+Ojpl
bmNvZGUoZW5jb2Rlcik7Ci0gICAgICAgIGVuY29kZXItPmVuY29kZShhcmd1bWVudDIpOworICAg
ICAgICBlbmNvZGVyLmVuY29kZShhcmd1bWVudDIpOwogICAgIH0KIAogICAgIHN0YXRpYyBib29s
IGRlY29kZShBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIEFyZ3VtZW50czImIHJlc3VsdCkKQEAg
LTExNiwxMCArMTE2LDEwIEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlw
ZW5hbWUgVDM+IHN0cnVjdCBBcmd1bWVudHMzIDogQXJndW1lbnRzMjxUCiAgICAgewogICAgIH0K
IAotICAgIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QgCisgICAg
dm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIHsKICAgICAg
ICAgQXJndW1lbnRzMjxUMSwgVDI+OjplbmNvZGUoZW5jb2Rlcik7Ci0gICAgICAgIGVuY29kZXIt
PmVuY29kZShhcmd1bWVudDMpOworICAgICAgICBlbmNvZGVyLmVuY29kZShhcmd1bWVudDMpOwog
ICAgIH0KIAogICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXIqIGRlY29kZXIs
IEFyZ3VtZW50czMmIHJlc3VsdCkKQEAgLTE0OSwxMCArMTQ5LDEwIEBAIHRlbXBsYXRlPHR5cGVu
YW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0PiBzdHJ1Y3QgQXJn
dW1lbnRzNCA6CiAgICAgewogICAgIH0KIAotICAgIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2Rl
ciogZW5jb2RlcikgY29uc3QKKyAgICB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29k
ZXIpIGNvbnN0CiAgICAgewogICAgICAgICBBcmd1bWVudHMzPFQxLCBUMiwgVDM+OjplbmNvZGUo
ZW5jb2Rlcik7Ci0gICAgICAgIGVuY29kZXItPmVuY29kZShhcmd1bWVudDQpOworICAgICAgICBl
bmNvZGVyLmVuY29kZShhcmd1bWVudDQpOwogICAgIH0KICAgICAKICAgICBzdGF0aWMgYm9vbCBk
ZWNvZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBBcmd1bWVudHM0JiByZXN1bHQpCkBAIC0x
ODMsMTAgKzE4MywxMCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVu
YW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDU+IHN0cnVjdAogICAgIHsKICAgICB9CiAK
LSAgICB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0CisgICAgdm9p
ZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIHsKICAgICAgICAg
QXJndW1lbnRzNDxUMSwgVDIsIFQzLCBUND46OmVuY29kZShlbmNvZGVyKTsKLSAgICAgICAgZW5j
b2Rlci0+ZW5jb2RlKGFyZ3VtZW50NSk7CisgICAgICAgIGVuY29kZXIuZW5jb2RlKGFyZ3VtZW50
NSk7CiAgICAgfQogICAgIAogICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXIq
IGRlY29kZXIsIEFyZ3VtZW50czUmIHJlc3VsdCkKQEAgLTIxOCwxMCArMjE4LDEwIEBAIHRlbXBs
YXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0
eXBlbmFtZSBUNSwgdHlwZW5hCiAgICAgewogICAgIH0KIAotICAgIHZvaWQgZW5jb2RlKEFyZ3Vt
ZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKKyAgICB2b2lkIGVuY29kZShBcmd1bWVudEVuY29k
ZXImIGVuY29kZXIpIGNvbnN0CiAgICAgewogICAgICAgICBBcmd1bWVudHM1PFQxLCBUMiwgVDMs
IFQ0LCBUNT46OmVuY29kZShlbmNvZGVyKTsKLSAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKGFyZ3Vt
ZW50Nik7CisgICAgICAgIGVuY29kZXIuZW5jb2RlKGFyZ3VtZW50Nik7CiAgICAgfQogICAgIAog
ICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIEFyZ3VtZW50
czYmIHJlc3VsdCkKQEAgLTI1NCwxMCArMjU0LDEwIEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQxLCB0
eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwgdHlwZW5h
CiAgICAgewogICAgIH0KIAotICAgIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciogZW5jb2Rl
cikgY29uc3QKKyAgICB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0
CiAgICAgewogICAgICAgICBBcmd1bWVudHM2PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDY+OjplbmNv
ZGUoZW5jb2Rlcik7Ci0gICAgICAgIGVuY29kZXItPmVuY29kZShhcmd1bWVudDcpOworICAgICAg
ICBlbmNvZGVyLmVuY29kZShhcmd1bWVudDcpOwogICAgIH0KICAgICAKICAgICBzdGF0aWMgYm9v
bCBkZWNvZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBBcmd1bWVudHM3JiByZXN1bHQpCkBA
IC0yODksMTAgKzI4OSwxMCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5
cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsIHR5cGVuYQogICAgIHsKICAgICB9
CiAKLSAgICB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0CisgICAg
dm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIHsKICAgICAg
ICAgQXJndW1lbnRzNzxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNz46OmVuY29kZShlbmNvZGVy
KTsKLSAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKGFyZ3VtZW50OCk7CisgICAgICAgIGVuY29kZXIu
ZW5jb2RlKGFyZ3VtZW50OCk7CiAgICAgfQogCiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3Vt
ZW50RGVjb2RlciogZGVjb2RlciwgQXJndW1lbnRzOCYgcmVzdWx0KQpAQCAtMzI3LDExICszMjcs
MTEgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlw
ZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LCB0eXBlbmEKICAgICB7CiAgICAgfQogCi0gICAgdm9pZCBl
bmNvZGUoQXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAorICAgIHZvaWQgZW5jb2RlKEFy
Z3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICB7CiAgICAgICAgIEFyZ3VtZW50czg8
VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4Pjo6ZW5jb2RlKGVuY29kZXIpOwotICAgICAg
ICBlbmNvZGVyLT5lbmNvZGUoYXJndW1lbnQ5KTsKLSAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKGFy
Z3VtZW50MTApOworICAgICAgICBlbmNvZGVyLmVuY29kZShhcmd1bWVudDkpOworICAgICAgICBl
bmNvZGVyLmVuY29kZShhcmd1bWVudDEwKTsKICAgICB9CiAKICAgICBzdGF0aWMgYm9vbCBkZWNv
ZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBBcmd1bWVudHMxMCYgcmVzdWx0KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9BdHRhY2htZW50LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXR0YWNobWVudC5jcHAKaW5kZXggZDY5NTJh
ZTQ2YWJhY2YwMzcyOTZlMmYwNThjODZiZGJjMTk4OGVhZC4uOGY0Nzc0ODU4NDU4MTVmYTQ2M2Yx
ZThjZDVmNzNhNTIxM2VkOWM0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
Q29yZUlQQy9BdHRhY2htZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL0F0dGFjaG1lbnQuY3BwCkBAIC01OSw5ICs1OSw5IEBAIHZvaWQgQXR0YWNobWVudDo6cmVs
ZWFzZSgpCiB9CiAjZW5kaWYKIAotdm9pZCBBdHRhY2htZW50OjplbmNvZGUoQXJndW1lbnRFbmNv
ZGVyKiBlbmNvZGVyKSBjb25zdAordm9pZCBBdHRhY2htZW50OjplbmNvZGUoQXJndW1lbnRFbmNv
ZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXItPmFkZEF0dGFjaG1lbnQoKnRoaXMp
OworICAgIGVuY29kZXIuYWRkQXR0YWNobWVudCgqdGhpcyk7CiB9CiAKIGJvb2wgQXR0YWNobWVu
dDo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgQXR0YWNobWVudCYgYXR0YWNobWVu
dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXR0YWNobWVu
dC5oIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9BdHRhY2htZW50LmgKaW5kZXgg
MDVhYjkwNzkzMjEzZWEzYjQ3NTYxNDFjYjQ1N2NhZmY1NmFmNWIwZi4uZGQyNmIzYTc2ODI0MDk3
Yzc5YjIwZGM0MjkxNzA3OWNkODZjNjg4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vQ29yZUlQQy9BdHRhY2htZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
Q29yZUlQQy9BdHRhY2htZW50LmgKQEAgLTgyLDcgKzgyLDcgQEAgcHVibGljOgogICAgIHZvaWQg
ZGlzcG9zZSgpOwogI2VuZGlmCiAKLSAgICB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXIqKSBj
b25zdDsKKyAgICB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImKSBjb25zdDsKICAgICBzdGF0
aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyKiwgQXR0YWNobWVudCYpOwogICAgIAogcHJp
dmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvRGF0YVJl
ZmVyZW5jZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0RhdGFSZWZlcmVu
Y2UuY3BwCmluZGV4IDA3OThjM2UwZWZjMmVjNmYyOGMwY2UxYzJiOWRkMzlkOTExZjhhZmQuLmEx
NDQ5ODYyYzk4MmMxYWFhZjEzMWI1YTUyOWUxNTU2NzljZTg1YzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvRGF0YVJlZmVyZW5jZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9EYXRhUmVmZXJlbmNlLmNwcApAQCAtMzEsOSArMzEs
OSBAQAogCiBuYW1lc3BhY2UgQ29yZUlQQyB7CiAKLXZvaWQgRGF0YVJlZmVyZW5jZTo6ZW5jb2Rl
KEFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKK3ZvaWQgRGF0YVJlZmVyZW5jZTo6ZW5j
b2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyLT5lbmNv
ZGVWYXJpYWJsZUxlbmd0aEJ5dGVBcnJheSgqdGhpcyk7CisgICAgZW5jb2Rlci5lbmNvZGVWYXJp
YWJsZUxlbmd0aEJ5dGVBcnJheSgqdGhpcyk7CiB9CiAKIGJvb2wgRGF0YVJlZmVyZW5jZTo6ZGVj
b2RlKEFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgRGF0YVJlZmVyZW5jZSYgZGF0YVJlZmVyZW5j
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvRGF0YVJlZmVy
ZW5jZS5oIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9EYXRhUmVmZXJlbmNlLmgK
aW5kZXggNWVkMDQ0M2MzMGZhYzliMmRkNjdmNTRkMGJhZDIwNWQ3OWY3Nzc2ZC4uYTBjZThjMzE5
Y2ZjYjJjMDFmM2Y3ZGJjZDhkYzMyODhkY2JlN2U1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vQ29yZUlQQy9EYXRhUmVmZXJlbmNlLmgKKysrIGIvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vQ29yZUlQQy9EYXRhUmVmZXJlbmNlLmgKQEAgLTcyLDcgKzcyLDcgQEAgcHVibGlj
OgogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KIAotICAgIHZvaWQgZW5jb2RlKEFyZ3Vt
ZW50RW5jb2RlciogZW5jb2RlcikgY29uc3Q7CisgICAgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNv
ZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciogZGVj
b2RlciwgRGF0YVJlZmVyZW5jZSYgZGF0YVJlZmVyZW5jZSk7CiAKIHByaXZhdGU6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL1N0cmluZ1JlZmVyZW5jZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL1N0cmluZ1JlZmVyZW5jZS5jcHAKaW5k
ZXggNTZlOGMxYTM3YzAxMWRhMDkyNjA1ZjkyODZkMzI0MDEyMjI2MDhmNC4uZTY2Njg1YWU1ZDZi
ZTFlOGY3MzM4Yjk1NDQ3ZDI0ZDIwNzRlM2NmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vQ29yZUlQQy9TdHJpbmdSZWZlcmVuY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtL0NvcmVJUEMvU3RyaW5nUmVmZXJlbmNlLmNwcApAQCAtMzMsOSArMzMsOSBAQAog
CiBuYW1lc3BhY2UgQ29yZUlQQyB7CiAKLXZvaWQgU3RyaW5nUmVmZXJlbmNlOjplbmNvZGUoQXJn
dW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAordm9pZCBTdHJpbmdSZWZlcmVuY2U6OmVuY29k
ZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2Rlci0+ZW5jb2Rl
VmFyaWFibGVMZW5ndGhCeXRlQXJyYXkoRGF0YVJlZmVyZW5jZShyZWludGVycHJldF9jYXN0PGNv
bnN0IHVpbnQ4X3QqPihtX2RhdGEpLCBtX3NpemUpKTsKKyAgICBlbmNvZGVyLmVuY29kZVZhcmlh
YmxlTGVuZ3RoQnl0ZUFycmF5KERhdGFSZWZlcmVuY2UocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1
aW50OF90Kj4obV9kYXRhKSwgbV9zaXplKSk7CiB9CiAKIGJvb2wgU3RyaW5nUmVmZXJlbmNlOjpk
ZWNvZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBTdHJpbmdSZWZlcmVuY2UmIHJlc3VsdCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvU3RyaW5nUmVmZXJl
bmNlLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL1N0cmluZ1JlZmVyZW5jZS5o
CmluZGV4IGVkNDgyZTUzZjZkYWQ2MzI1YjJkOTdiM2JjOGUxOGVlYzU2NjYxZTYuLmJhNDM4MWQ0
ZDFlOWQzMDJiZjA0Y2M3ZjM5M2NkMzA0N2M4M2FhMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtL0NvcmVJUEMvU3RyaW5nUmVmZXJlbmNlLmgKKysrIGIvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vQ29yZUlQQy9TdHJpbmdSZWZlcmVuY2UuaApAQCAtNjQsNyArNjQsNyBAQCBw
dWJsaWM6CiAgICAgICAgIHJldHVybiBhLm1fc2l6ZSA9PSBiLm1fc2l6ZSAmJiAhbWVtY21wKGEu
bV9kYXRhLCBiLm1fZGF0YSwgYS5tX3NpemUpOwogICAgIH0KIAotICAgIHZvaWQgZW5jb2RlKEFy
Z3VtZW50RW5jb2RlciopIGNvbnN0OworICAgIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYp
IGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXIqLCBTdHJpbmdS
ZWZlcmVuY2UmKTsKIAogICAgIHN0cnVjdCBIYXNoIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtL0NvcmVJUEMvbWFjL01hY2hQb3J0LmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9Db3JlSVBDL21hYy9NYWNoUG9ydC5oCmluZGV4IGVjY2UxNmU3NDkyNzVmMzViY2RkMGY0
YzYxMzRmOGIzODhjNGM1YjIuLmM0OTZhNTAxN2JiN2U3MDNjMmJhM2FlZjQ4ODc0NDQ2Mzg2NDlh
MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvbWFjL01hY2hQ
b3J0LmgKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9tYWMvTWFjaFBvcnQu
aApAQCAtNDYsOSArNDYsOSBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAotICAgIHZvaWQgZW5j
b2RlKEFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKKyAgICB2b2lkIGVuY29kZShBcmd1
bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgewotICAgICAgICBlbmNvZGVyLT5lbmNv
ZGUoQXR0YWNobWVudChtX3BvcnQsIG1fZGlzcG9zaXRpb24pKTsKKyAgICAgICAgZW5jb2Rlci5l
bmNvZGUoQXR0YWNobWVudChtX3BvcnQsIG1fZGlzcG9zaXRpb24pKTsKICAgICB9CiAKICAgICBz
dGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBNYWNoUG9ydCYgcCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL1NoYXJlZE1lbW9yeS5oIGIvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vU2hhcmVkTWVtb3J5LmgKaW5kZXggMGQ1NmJhY2M2ZTRmMGY2
M2FjMTRiYWQ0ZjBkZTRhNDE4NzJlNTA0My4uNDZkMDMyYTUxYzNiMDJhMjEzOWZlNjE4ZDE0ODQ5
YWNmNzNlOWQ3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vU2hhcmVkTWVt
b3J5LmgKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vU2hhcmVkTWVtb3J5LmgKQEAgLTU3
LDcgKzU3LDcgQEAgcHVibGljOgogCiAgICAgICAgIGJvb2wgaXNOdWxsKCkgY29uc3Q7CiAKLSAg
ICAgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKikgY29uc3Q7CisgICAg
ICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OwogICAgICAg
ICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgSGFuZGxlJik7
CiAKICNpZiBVU0UoVU5JWF9ET01BSU5fU09DS0VUUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtL21hYy9TaGFyZWRNZW1vcnlNYWMuY3BwIGIvU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vbWFjL1NoYXJlZE1lbW9yeU1hYy5jcHAKaW5kZXggNDAxOWE4ZDg1NzllNzk4YWQzYTJj
YjUwNzYxYzlkNzc1Nzg0Yzc1NC4uNGE5ZDAzZmZhNjVlMWMwMDI1ZjhhN2Y4Njc3NWNjNWEwNjky
ZTJhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vbWFjL1NoYXJlZE1lbW9y
eU1hYy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vbWFjL1NoYXJlZE1lbW9yeU1h
Yy5jcHAKQEAgLTU1LDEwICs1NSwxMCBAQCBib29sIFNoYXJlZE1lbW9yeTo6SGFuZGxlOjppc051
bGwoKSBjb25zdAogICAgIHJldHVybiAhbV9wb3J0OwogfQogCi12b2lkIFNoYXJlZE1lbW9yeTo6
SGFuZGxlOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAor
dm9pZCBTaGFyZWRNZW1vcnk6OkhhbmRsZTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyLT5lbmNvZGUoc3RhdGljX2Nhc3Q8dWlu
dDY0X3Q+KG1fc2l6ZSkpOwotICAgIGVuY29kZXItPmVuY29kZShDb3JlSVBDOjpNYWNoUG9ydCht
X3BvcnQsIE1BQ0hfTVNHX1RZUEVfTU9WRV9TRU5EKSk7CisgICAgZW5jb2Rlci5lbmNvZGUoc3Rh
dGljX2Nhc3Q8dWludDY0X3Q+KG1fc2l6ZSkpOworICAgIGVuY29kZXIuZW5jb2RlKENvcmVJUEM6
Ok1hY2hQb3J0KG1fcG9ydCwgTUFDSF9NU0dfVFlQRV9NT1ZFX1NFTkQpKTsKICAgICBtX3BvcnQg
PSBNQUNIX1BPUlRfTlVMTDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vdW5peC9TaGFyZWRNZW1vcnlVbml4LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL3Vu
aXgvU2hhcmVkTWVtb3J5VW5peC5jcHAKaW5kZXggYzQzMmQzMzAxNTczMGRiMmMwNjc2OGI5MTM5
MDdkN2I0NmYxMjVlMS4uZjU2NWI3NmVjZDE1YWZhMmI0ZWI4ZGUzZjVmMDMzMzY1Y2JlZTJiOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vdW5peC9TaGFyZWRNZW1vcnlVbml4
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS91bml4L1NoYXJlZE1lbW9yeVVuaXgu
Y3BwCkBAIC02Myw5ICs2Myw5IEBAIGJvb2wgU2hhcmVkTWVtb3J5OjpIYW5kbGU6OmlzTnVsbCgp
IGNvbnN0CiAgICAgcmV0dXJuIG1fZmlsZURlc2NyaXB0b3IgPT0gLTE7CiB9CiAKLXZvaWQgU2hh
cmVkTWVtb3J5OjpIYW5kbGU6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29k
ZXIpIGNvbnN0Cit2b2lkIFNoYXJlZE1lbW9yeTo6SGFuZGxlOjplbmNvZGUoQ29yZUlQQzo6QXJn
dW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXItPmVuY29kZShyZWxl
YXNlVG9BdHRhY2htZW50KCkpOworICAgIGVuY29kZXIuZW5jb2RlKHJlbGVhc2VUb0F0dGFjaG1l
bnQoKSk7CiB9CiAKIGJvb2wgU2hhcmVkTWVtb3J5OjpIYW5kbGU6OmRlY29kZShDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqIGRlY29kZXIsIEhhbmRsZSYgaGFuZGxlKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5DcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIv
U291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5DcmVhdGlvblBhcmFtZXRlcnMuY3Bw
CmluZGV4IGJjMmU5OTI5YzBkMTU5OWJmOGRmZDNjYjY4ZTVmNGMxMzBkNmFmMDcuLmM1YWFmYWI2
ZjgxYzA1NjAyOWU4YmZlZmNlZGFlZmEyYzdkZjA3M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAg
LTQ1LDE5ICs0NSwxOSBAQCBQbHVnaW5DcmVhdGlvblBhcmFtZXRlcnM6OlBsdWdpbkNyZWF0aW9u
UGFyYW1ldGVycygpCiB7CiB9CiAKLXZvaWQgUGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNv
ZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAordm9pZCBQbHVnaW5D
cmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29k
ZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHBsdWdpbkluc3RhbmNlSUQpOwotICAg
IGVuY29kZXItPmVuY29kZSh3aW5kb3dOUE9iamVjdElEKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUo
cGFyYW1ldGVycyk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHVzZXJBZ2VudCk7Ci0gICAgZW5jb2Rl
ci0+ZW5jb2RlKGNvbnRlbnRzU2NhbGVGYWN0b3IpOwotICAgIGVuY29kZXItPmVuY29kZShpc1By
aXZhdGVCcm93c2luZ0VuYWJsZWQpOwotICAgIGVuY29kZXItPmVuY29kZShhc3luY2hyb25vdXND
cmVhdGlvbkluY29tcGxldGUpOwotICAgIGVuY29kZXItPmVuY29kZShhcnRpZmljaWFsUGx1Z2lu
SW5pdGlhbGl6YXRpb25EZWxheUVuYWJsZWQpOworICAgIGVuY29kZXIuZW5jb2RlKHBsdWdpbklu
c3RhbmNlSUQpOworICAgIGVuY29kZXIuZW5jb2RlKHdpbmRvd05QT2JqZWN0SUQpOworICAgIGVu
Y29kZXIuZW5jb2RlKHBhcmFtZXRlcnMpOworICAgIGVuY29kZXIuZW5jb2RlKHVzZXJBZ2VudCk7
CisgICAgZW5jb2Rlci5lbmNvZGUoY29udGVudHNTY2FsZUZhY3Rvcik7CisgICAgZW5jb2Rlci5l
bmNvZGUoaXNQcml2YXRlQnJvd3NpbmdFbmFibGVkKTsKKyAgICBlbmNvZGVyLmVuY29kZShhc3lu
Y2hyb25vdXNDcmVhdGlvbkluY29tcGxldGUpOworICAgIGVuY29kZXIuZW5jb2RlKGFydGlmaWNp
YWxQbHVnaW5Jbml0aWFsaXphdGlvbkRlbGF5RW5hYmxlZCk7CiAKICNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpCi0gICAgZW5jb2Rlci0+ZW5jb2RlKGlzQWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0VuYWJsZWQpOworICAgIGVuY29kZXIuZW5jb2RlKGlzQWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0VuYWJsZWQpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdp
blByb2Nlc3MvUGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbHVn
aW5Qcm9jZXNzL1BsdWdpbkNyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IDZmMDViZGFhYmY0YzA5
MzI4M2Q1YjAzNDNhMDk2MTExYzRmMDMwZmEuLjEzODdmMTQwZWI5NzI2YTU1N2QyMjg1ZDM1NDU2
NjI4NzU3ZjQ4OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1
Z2luQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vz
cy9QbHVnaW5DcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtNDAsNyArNDAsNyBAQCBuYW1lc3BhY2Ug
V2ViS2l0IHsKIHN0cnVjdCBQbHVnaW5DcmVhdGlvblBhcmFtZXRlcnMgewogICAgIFBsdWdpbkNy
ZWF0aW9uUGFyYW1ldGVycygpOwogCi0gICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRF
bmNvZGVyKikgY29uc3Q7CisgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVy
JikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciosIFBsdWdpbkNyZWF0aW9uUGFyYW1ldGVycyYpOwogCiAgICAgLy8gVGhlIHVuaXF1ZSBJRCBv
ZiB0aGlzIHBsdWctaW4gaW5zdGFuY2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvRGljdGlvbmFyeVBvcHVwSW5mby5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRGljdGlv
bmFyeVBvcHVwSW5mby5jcHAKaW5kZXggN2U2ZGYzYTVjYmZjOGM2N2M4NGQ3YjY3ODU3ZmM3YzQ5
ZTE1N2E3YS4uYTQ0ZDk5YzRhZGMzMTI5MDg1ZDNmZmFiYmZlNzY3OTkzNmI2NTliYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0RpY3Rpb25hcnlQb3B1cEluZm8uY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9EaWN0aW9uYXJ5UG9wdXBJbmZvLmNwcApAQCAtMzQsMTcg
KzM0LDE3IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi12b2lkIERpY3Rpb25hcnlQb3B1cElu
Zm86OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Cit2b2lk
IERpY3Rpb25hcnlQb3B1cEluZm86OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVu
Y29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG9yaWdpbik7Ci0gICAgZW5jb2Rl
ci0+ZW5jb2RlKGZvbnRJbmZvKTsKLSAgICBlbmNvZGVyLT5lbmNvZGVFbnVtKHR5cGUpOworICAg
IGVuY29kZXIuZW5jb2RlKG9yaWdpbik7CisgICAgZW5jb2Rlci5lbmNvZGUoZm9udEluZm8pOwor
ICAgIGVuY29kZXIuZW5jb2RlRW51bSh0eXBlKTsKIAogI2lmIFBMQVRGT1JNKE1BQykgJiYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwCiAgICAgYm9vbCBoYWRPcHRpb25z
ID0gb3B0aW9uczsKLSAgICBlbmNvZGVyLT5lbmNvZGUoaGFkT3B0aW9ucyk7CisgICAgZW5jb2Rl
ci5lbmNvZGUoaGFkT3B0aW9ucyk7CiAgICAgaWYgKGhhZE9wdGlvbnMpCi0gICAgICAgIENvcmVJ
UEM6OmVuY29kZShlbmNvZGVyLCBvcHRpb25zLmdldCgpKTsKKyAgICAgICAgQ29yZUlQQzo6ZW5j
b2RlKCZlbmNvZGVyLCBvcHRpb25zLmdldCgpKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvRGljdGlvbmFyeVBvcHVwSW5mby5oIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL0RpY3Rpb25hcnlQb3B1cEluZm8uaAppbmRleCBiY2VjMDRjNDVmMTIzMjM2Njlk
ODVjZmEzNjgxYmU3YmJhMTRmMzU0Li4yN2ViNmRiMzdhOTlhOGZjNTkxNjczM2JjMTIwNWY3Zjgz
NDIzODM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRGljdGlvbmFyeVBvcHVw
SW5mby5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9EaWN0aW9uYXJ5UG9wdXBJbmZvLmgK
QEAgLTQxLDcgKzQxLDcgQEAgbmFtZXNwYWNlIENvcmVJUEMgewogbmFtZXNwYWNlIFdlYktpdCB7
CiAKIHN0cnVjdCBEaWN0aW9uYXJ5UG9wdXBJbmZvIHsKLSAgICB2b2lkIGVuY29kZShDb3JlSVBD
OjpBcmd1bWVudEVuY29kZXIqKSBjb25zdDsKKyAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1
bWVudEVuY29kZXImKSBjb25zdDsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKiwgRGljdGlvbmFyeVBvcHVwSW5mbyYpOwogCiAgICAgZW51bSBUeXBlIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9FZGl0b3JTdGF0ZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvRWRpdG9yU3RhdGUuY3BwCmluZGV4IDZlNDRhMGYxNWE1MDkzY2Q1
YjEwZWFjYWQ3ZWIwMDdlNGVmYTI1NzEuLmI4ZDY0MGE3ZmNiYWU3NTkxYjM3NTg0NjFmZjUyNjUw
OTM4MTk3ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9FZGl0b3JTdGF0ZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0VkaXRvclN0YXRlLmNwcApAQCAtMzEsMjUg
KzMxLDI1IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi12b2lkIEVkaXRvclN0YXRlOjplbmNv
ZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAordm9pZCBFZGl0b3JT
dGF0ZTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsK
LSAgICBlbmNvZGVyLT5lbmNvZGUoc2hvdWxkSWdub3JlQ29tcG9zaXRpb25TZWxlY3Rpb25DaGFu
Z2UpOwotICAgIGVuY29kZXItPmVuY29kZShzZWxlY3Rpb25Jc05vbmUpOwotICAgIGVuY29kZXIt
PmVuY29kZShzZWxlY3Rpb25Jc1JhbmdlKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoaXNDb250ZW50
RWRpdGFibGUpOwotICAgIGVuY29kZXItPmVuY29kZShpc0NvbnRlbnRSaWNobHlFZGl0YWJsZSk7
Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGlzSW5QYXNzd29yZEZpZWxkKTsKLSAgICBlbmNvZGVyLT5l
bmNvZGUoaGFzQ29tcG9zaXRpb24pOworICAgIGVuY29kZXIuZW5jb2RlKHNob3VsZElnbm9yZUNv
bXBvc2l0aW9uU2VsZWN0aW9uQ2hhbmdlKTsKKyAgICBlbmNvZGVyLmVuY29kZShzZWxlY3Rpb25J
c05vbmUpOworICAgIGVuY29kZXIuZW5jb2RlKHNlbGVjdGlvbklzUmFuZ2UpOworICAgIGVuY29k
ZXIuZW5jb2RlKGlzQ29udGVudEVkaXRhYmxlKTsKKyAgICBlbmNvZGVyLmVuY29kZShpc0NvbnRl
bnRSaWNobHlFZGl0YWJsZSk7CisgICAgZW5jb2Rlci5lbmNvZGUoaXNJblBhc3N3b3JkRmllbGQp
OworICAgIGVuY29kZXIuZW5jb2RlKGhhc0NvbXBvc2l0aW9uKTsKIAogI2lmIFBMQVRGT1JNKFFU
KQotICAgIGVuY29kZXItPmVuY29kZShjdXJzb3JQb3NpdGlvbik7Ci0gICAgZW5jb2Rlci0+ZW5j
b2RlKGFuY2hvclBvc2l0aW9uKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoZWRpdG9yUmVjdCk7Ci0g
ICAgZW5jb2Rlci0+ZW5jb2RlKGN1cnNvclJlY3QpOwotICAgIGVuY29kZXItPmVuY29kZShjb21w
b3NpdGlvblJlY3QpOwotICAgIGVuY29kZXItPmVuY29kZShpbnB1dE1ldGhvZEhpbnRzKTsKLSAg
ICBlbmNvZGVyLT5lbmNvZGUoc2VsZWN0ZWRUZXh0KTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoc3Vy
cm91bmRpbmdUZXh0KTsKKyAgICBlbmNvZGVyLmVuY29kZShjdXJzb3JQb3NpdGlvbik7CisgICAg
ZW5jb2Rlci5lbmNvZGUoYW5jaG9yUG9zaXRpb24pOworICAgIGVuY29kZXIuZW5jb2RlKGVkaXRv
clJlY3QpOworICAgIGVuY29kZXIuZW5jb2RlKGN1cnNvclJlY3QpOworICAgIGVuY29kZXIuZW5j
b2RlKGNvbXBvc2l0aW9uUmVjdCk7CisgICAgZW5jb2Rlci5lbmNvZGUoaW5wdXRNZXRob2RIaW50
cyk7CisgICAgZW5jb2Rlci5lbmNvZGUoc2VsZWN0ZWRUZXh0KTsKKyAgICBlbmNvZGVyLmVuY29k
ZShzdXJyb3VuZGluZ1RleHQpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9FZGl0b3JTdGF0ZS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0VkaXRvclN0
YXRlLmgKaW5kZXggYWMxZDc5M2FjZjg3MDJmZDcxMWU0ODc5OThlZWY1NzRjMzc0YzdjMi4uMDZl
YTA4N2I4ZjA4MmFmODhjOWVkMzlhNjg4OWJmNjQ4ODQ5YWEyYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL0VkaXRvclN0YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L0VkaXRvclN0YXRlLmgKQEAgLTc0LDcgKzc0LDcgQEAgc3RydWN0IEVkaXRvclN0YXRlIHsKICAg
ICBXVEY6OlN0cmluZyBzdXJyb3VuZGluZ1RleHQ7CiAjZW5kaWYKIAotICAgIHZvaWQgZW5jb2Rl
KENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciopIGNvbnN0OworICAgIHZvaWQgZW5jb2RlKENvcmVJ
UEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXIqLCBFZGl0b3JTdGF0ZSYpOwogfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL0ZvbnRJbmZvLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9Gb250SW5mby5jcHAKaW5kZXggY2QwMjYzMDQ1ZDU4ZGQ4OThjMDVlYjZjMTM3MzAyY2ExOWQw
Mzg5OC4uZGUwMzM4NGE0ODE2Y2RlNWRhNzAxNDZhNWIyMzc3ODliZjUyMzM2YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0ZvbnRJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvRm9udEluZm8uY3BwCkBAIC0zNCwxMiArMzQsMTIgQEAKIAogbmFtZXNwYWNlIFdl
YktpdCB7CiAKLXZvaWQgRm9udEluZm86OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIq
IGVuY29kZXIpIGNvbnN0Cit2b2lkIEZvbnRJbmZvOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewogI2lmIFBMQVRGT1JNKE1BQykKLSAgICBlbmNvZGVy
LT5lbmNvZGUoc3RhdGljX2Nhc3Q8Ym9vbD4oZm9udEF0dHJpYnV0ZURpY3Rpb25hcnkpKTsKKyAg
ICBlbmNvZGVyLmVuY29kZShzdGF0aWNfY2FzdDxib29sPihmb250QXR0cmlidXRlRGljdGlvbmFy
eSkpOwogICAgIGlmIChmb250QXR0cmlidXRlRGljdGlvbmFyeSkKLSAgICAgICAgQ29yZUlQQzo6
ZW5jb2RlKGVuY29kZXIsIGZvbnRBdHRyaWJ1dGVEaWN0aW9uYXJ5LmdldCgpKTsKKyAgICAgICAg
Q29yZUlQQzo6ZW5jb2RlKCZlbmNvZGVyLCBmb250QXR0cmlidXRlRGljdGlvbmFyeS5nZXQoKSk7
CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShlbmNvZGVyKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL0ZvbnRJbmZvLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
Rm9udEluZm8uaAppbmRleCAyM2VhOTQ1Y2FhNDEzZGZlMTE2MzQ1ZDdhMjI5N2I5ODExNmNiZmY3
Li5hZTExZDEyNzUyNTc3NDU3ODAxMjkzY2NiOThjMjI0MTA0ZWUwNzhjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvRm9udEluZm8uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvRm9udEluZm8uaApAQCAtMzgsNyArMzgsNyBAQCBuYW1lc3BhY2UgQ29yZUlQQyB7CiBuYW1l
c3BhY2UgV2ViS2l0IHsKICAgICAKIHN0cnVjdCBGb250SW5mbyB7Ci0gICAgdm9pZCBlbmNvZGUo
Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKikgY29uc3Q7CisgICAgdm9pZCBlbmNvZGUoQ29yZUlQ
Qzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJ
UEM6OkFyZ3VtZW50RGVjb2RlciosIEZvbnRJbmZvJik7CiAgICAgCiAjaWYgUExBVEZPUk0oTUFD
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0xheWVyVHJlZUNvbnRleHQuaCBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9MYXllclRyZWVDb250ZXh0LmgKaW5kZXggNTIwNmEzNzNj
MGQ2YjQxYjBmMjAxN2M1YzUyNmFiM2QzMzVhZTViMi4uZjhlMmZjZTYxZjMzZDJhY2Y3NDdmMGU5
Y2M1ZWU2M2ViYzdlZmVhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0xheWVy
VHJlZUNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTGF5ZXJUcmVlQ29udGV4
dC5oCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAgICBMYXllclRyZWVDb250ZXh0KCk7CiAg
ICAgfkxheWVyVHJlZUNvbnRleHQoKTsKIAotICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3Vt
ZW50RW5jb2RlciopIGNvbnN0OworICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5j
b2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqLCBMYXllclRyZWVDb250ZXh0Jik7CiAKICAgICBib29sIGlzRW1wdHkoKSBjb25zdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCBlZmJlMzU3MmQ2OGNhNTJj
MWFjNTk2NDA1MjhkZDI4ZWI0ZDAwMDQzLi4wNjMzYzA0MThmOWQxMzJlOTgwNDFlZWY4MTJjNDcz
ZGI0YjE2MGEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC0zNiwx
MCArMzYsMTAgQEAgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6Ok5ldHdvcmtQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzKCkKIHsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVyczo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2Rlcikg
Y29uc3QKK3ZvaWQgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShDb3Jl
SVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7CiAjaWYgUExBVEZPUk0oTUFD
KQotICAgIGVuY29kZXItPmVuY29kZShwYXJlbnRQcm9jZXNzTmFtZSk7CisgICAgZW5jb2Rlci5l
bmNvZGUocGFyZW50UHJvY2Vzc05hbWUpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5oCmluZGV4IDRmNTllMjk0MWZiNjY0YTFjYmMwYTA1ZWEyODAxMGNlYmU1NDhl
ZDEuLmViYzAzYTdlZDBmOWY4MDdkZjBmZTU1YTMwNWM4MmU1NmI0MDUzYmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtNDAsNyArNDAsNyBAQCBuYW1lc3BhY2UgV2ViS2l0
IHsKIHN0cnVjdCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgTmV0d29y
a1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMoKTsKIAotICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6
OkFyZ3VtZW50RW5jb2RlciopIGNvbnN0OworICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3Vt
ZW50RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqLCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpOwogCiAjaWYg
UExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL09yaWdpbkFu
ZERhdGFiYXNlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvT3JpZ2luQW5kRGF0YWJhc2Vz
LmNwcAppbmRleCAwYWQwNTQ5YWQ4NDU5MWQxZTZhN2VlYzkwY2FmNmU1YWRmZjFjNzhmLi45ZjZm
YmUyMmYzOWRkOWFmMWZkZGRkYjJjZjE4OGJjMDcwMzM3ODczIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvT3JpZ2luQW5kRGF0YWJhc2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvT3JpZ2luQW5kRGF0YWJhc2VzLmNwcApAQCAtMzQsMTIgKzM0LDEyIEBAIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdm9pZCBPcmlnaW5B
bmREYXRhYmFzZXM6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNv
bnN0Cit2b2lkIE9yaWdpbkFuZERhdGFiYXNlczo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5j
b2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyLT5lbmNvZGUob3JpZ2luSWRlbnRp
Zmllcik7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG9yaWdpblF1b3RhKTsKLSAgICBlbmNvZGVyLT5l
bmNvZGUob3JpZ2luVXNhZ2UpOwotICAgIGVuY29kZXItPmVuY29kZShkYXRhYmFzZXMpOworICAg
IGVuY29kZXIuZW5jb2RlKG9yaWdpbklkZW50aWZpZXIpOworICAgIGVuY29kZXIuZW5jb2RlKG9y
aWdpblF1b3RhKTsKKyAgICBlbmNvZGVyLmVuY29kZShvcmlnaW5Vc2FnZSk7CisgICAgZW5jb2Rl
ci5lbmNvZGUoZGF0YWJhc2VzKTsKIH0KIAogYm9vbCBPcmlnaW5BbmREYXRhYmFzZXM6OmRlY29k
ZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIE9yaWdpbkFuZERhdGFiYXNlcyYg
b3JpZ2luQW5kRGF0YWJhc2VzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL09y
aWdpbkFuZERhdGFiYXNlcy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL09yaWdpbkFuZERhdGFi
YXNlcy5oCmluZGV4IDUxZWY0ZmFlN2EwMDJiYmNjZjMxOTU2MDBmZGE1ZjhiNTY3Yjk0NTUuLmVj
MDY0ZjkxYzhmNmVkNzVhNTNiMWJkN2ZiMDY3ODdlNmQxMThlMWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9PcmlnaW5BbmREYXRhYmFzZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvT3JpZ2luQW5kRGF0YWJhc2VzLmgKQEAgLTQwLDcgKzQwLDcgQEAgbmFtZXNwYWNl
IENvcmVJUEMgewogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHN0cnVjdCBPcmlnaW5BbmREYXRhYmFz
ZXMgewotICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciopIGNvbnN0Owor
ICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OwogICAgIHN0
YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBPcmlnaW5BbmREYXRh
YmFzZXMmKTsKIAogICAgIFN0cmluZyBvcmlnaW5JZGVudGlmaWVyOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL1BsYXRmb3JtUG9wdXBNZW51RGF0YS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvUGxhdGZvcm1Qb3B1cE1lbnVEYXRhLmNwcAppbmRleCAxZGVjYWFjYzU1N2Zk
MjhlYzU2ODBjYTQyNzc2NTc3MDQ4ZjU5ZDk0Li4yMTU3OGM0YzUzYjFmOTM5YzNmYTczNmI2NmQw
MjM0ODNkNjAyZjIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGxhdGZvcm1Q
b3B1cE1lbnVEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGxhdGZvcm1Qb3B1
cE1lbnVEYXRhLmNwcApAQCAtNDQsMjggKzQ0LDI4IEBAIFBsYXRmb3JtUG9wdXBNZW51RGF0YTo6
UGxhdGZvcm1Qb3B1cE1lbnVEYXRhKCkKIHsKIH0KIAotdm9pZCBQbGF0Zm9ybVBvcHVwTWVudURh
dGE6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Cit2b2lk
IFBsYXRmb3JtUG9wdXBNZW51RGF0YTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKIHsKICNpZiBQTEFURk9STShXSU4pCi0gICAgZW5jb2Rlci0+ZW5jb2Rl
KG1fY2xpZW50UGFkZGluZ0xlZnQpOwotICAgIGVuY29kZXItPmVuY29kZShtX2NsaWVudFBhZGRp
bmdSaWdodCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG1fY2xpZW50SW5zZXRMZWZ0KTsKLSAgICBl
bmNvZGVyLT5lbmNvZGUobV9jbGllbnRJbnNldFJpZ2h0KTsKLSAgICBlbmNvZGVyLT5lbmNvZGUo
bV9wb3B1cFdpZHRoKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobV9pdGVtSGVpZ2h0KTsKKyAgICBl
bmNvZGVyLmVuY29kZShtX2NsaWVudFBhZGRpbmdMZWZ0KTsKKyAgICBlbmNvZGVyLmVuY29kZSht
X2NsaWVudFBhZGRpbmdSaWdodCk7CisgICAgZW5jb2Rlci5lbmNvZGUobV9jbGllbnRJbnNldExl
ZnQpOworICAgIGVuY29kZXIuZW5jb2RlKG1fY2xpZW50SW5zZXRSaWdodCk7CisgICAgZW5jb2Rl
ci5lbmNvZGUobV9wb3B1cFdpZHRoKTsKKyAgICBlbmNvZGVyLmVuY29kZShtX2l0ZW1IZWlnaHQp
OwogCiAgICAgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUgbm90U2VsZWN0ZWRCYWNraW5nU3RvcmVI
YW5kbGU7CiAgICAgbV9ub3RTZWxlY3RlZEJhY2tpbmdTdG9yZS0+Y3JlYXRlSGFuZGxlKG5vdFNl
bGVjdGVkQmFja2luZ1N0b3JlSGFuZGxlKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobm90U2VsZWN0
ZWRCYWNraW5nU3RvcmVIYW5kbGUpOworICAgIGVuY29kZXIuZW5jb2RlKG5vdFNlbGVjdGVkQmFj
a2luZ1N0b3JlSGFuZGxlKTsKIAogICAgIFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlIHNlbGVjdGVk
QmFja2luZ1N0b3JlSGFuZGxlOwogICAgIG1fc2VsZWN0ZWRCYWNraW5nU3RvcmUtPmNyZWF0ZUhh
bmRsZShzZWxlY3RlZEJhY2tpbmdTdG9yZUhhbmRsZSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHNl
bGVjdGVkQmFja2luZ1N0b3JlSGFuZGxlKTsKKyAgICBlbmNvZGVyLmVuY29kZShzZWxlY3RlZEJh
Y2tpbmdTdG9yZUhhbmRsZSk7CiAjZWxpZiBQTEFURk9STShNQUMpCi0gICAgZW5jb2Rlci0+ZW5j
b2RlKGZvbnRJbmZvKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoc2hvdWxkUG9wT3Zlcik7CisgICAg
ZW5jb2Rlci5lbmNvZGUoZm9udEluZm8pOworICAgIGVuY29kZXIuZW5jb2RlKHNob3VsZFBvcE92
ZXIpOwogI2VsaWYgUExBVEZPUk0oUVQpCi0gICAgZW5jb2Rlci0+ZW5jb2RlKG11bHRpcGxlU2Vs
ZWN0aW9ucyk7CisgICAgZW5jb2Rlci5lbmNvZGUobXVsdGlwbGVTZWxlY3Rpb25zKTsKICNlbHNl
CiAgICAgVU5VU0VEX1BBUkFNKGVuY29kZXIpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvUGxhdGZvcm1Qb3B1cE1lbnVEYXRhLmggYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvUGxhdGZvcm1Qb3B1cE1lbnVEYXRhLmgKaW5kZXggMjFhYmRlNGZmNWQ2MjI5MzVjOGEy
MzVhM2EwYWI2OWVjNGNlZjY1Yy4uN2Q5ZDk0ZDJhMTg4NmMwNGRhNzJiM2Y4NWRjZDA2YzQ5YmU0
M2NlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsYXRmb3JtUG9wdXBNZW51
RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbGF0Zm9ybVBvcHVwTWVudURhdGEu
aApAQCAtNDAsNyArNDAsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIHN0cnVjdCBQbGF0Zm9ybVBv
cHVwTWVudURhdGEgewogICAgIFBsYXRmb3JtUG9wdXBNZW51RGF0YSgpOwogCi0gICAgdm9pZCBl
bmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKikgY29uc3Q7CisgICAgdm9pZCBlbmNvZGUo
Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2Rl
KENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIFBsYXRmb3JtUG9wdXBNZW51RGF0YSYpOwogCiAj
aWYgUExBVEZPUk0oV0lOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdp
bnMvTlBJZGVudGlmaWVyRGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9O
UElkZW50aWZpZXJEYXRhLmNwcAppbmRleCBmZjJiZWYxNDAwM2I5MDVhN2Y1YTQ2NGU3Mjc4YjMy
ZmVhN2ZhMGM2Li5mYzk4NzBmMGNiNDE1MTliMzFlZmI0YzEwYjE1OTE2MGZmZGY5ODA1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUElkZW50aWZpZXJEYXRhLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUElkZW50aWZpZXJEYXRhLmNw
cApAQCAtNjcsMTMgKzY3LDEzIEBAIE5QSWRlbnRpZmllciBOUElkZW50aWZpZXJEYXRhOjpjcmVh
dGVOUElkZW50aWZpZXIoKSBjb25zdAogICAgIHJldHVybiBzdGF0aWNfY2FzdDxOUElkZW50aWZp
ZXI+KElkZW50aWZpZXJSZXA6OmdldChtX251bWJlcikpOwogfQogCi12b2lkIE5QSWRlbnRpZmll
ckRhdGE6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Cit2
b2lkIE5QSWRlbnRpZmllckRhdGE6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVu
Y29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG1faXNTdHJpbmcpOworICAgIGVu
Y29kZXIuZW5jb2RlKG1faXNTdHJpbmcpOwogICAgIGlmIChtX2lzU3RyaW5nKQotICAgICAgICBl
bmNvZGVyLT5lbmNvZGUobV9zdHJpbmcpOworICAgICAgICBlbmNvZGVyLmVuY29kZShtX3N0cmlu
Zyk7CiAgICAgZWxzZQotICAgICAgICBlbmNvZGVyLT5lbmNvZGUobV9udW1iZXIpOworICAgICAg
ICBlbmNvZGVyLmVuY29kZShtX251bWJlcik7CiB9CiAKIGJvb2wgTlBJZGVudGlmaWVyRGF0YTo6
ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgTlBJZGVudGlmaWVyRGF0
YSYgcmVzdWx0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBJ
ZGVudGlmaWVyRGF0YS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBJZGVudGlm
aWVyRGF0YS5oCmluZGV4IDFhN2M3NzJhNzk0OGZjMzZlNWM0MzM4MTFjM2ViMGU1MWViODIyZWUu
LjU2ZDU3ZmM5NjUxMTBjZTUwMDRjZDA3MWRiNWVkY2NjZTE2OWI1M2EgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QSWRlbnRpZmllckRhdGEuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUElkZW50aWZpZXJEYXRhLmgKQEAgLTQ3LDcgKzQ3
LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBOUElkZW50aWZpZXJEYXRhIGZyb21OUElkZW50aWZp
ZXIoTlBJZGVudGlmaWVyKTsKICAgICBOUElkZW50aWZpZXIgY3JlYXRlTlBJZGVudGlmaWVyKCkg
Y29uc3Q7CiAKLSAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqKSBjb25z
dDsKKyAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKICAg
ICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgTlBJZGVudGlm
aWVyRGF0YSYpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L1BsdWdpbnMvTlBWYXJpYW50RGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lu
cy9OUFZhcmlhbnREYXRhLmNwcAppbmRleCAwNGJiM2Y1YmRlYmVkNDQ5ZjE2NDQxOWJlNzhhNzg4
ZjU5NGYyZDUxLi5jMGJiZjY3ZjY4OTU5ZWU2Y2U2NmNjYzU3MWNiYjUyNWM4ODAyMGIxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUFZhcmlhbnREYXRhLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUFZhcmlhbnREYXRhLmNwcApAQCAt
MTE4LDMxICsxMTgsMzEgQEAgTlBWYXJpYW50RGF0YSBOUFZhcmlhbnREYXRhOjptYWtlUmVtb3Rl
TlBPYmplY3RJRCh1aW50NjRfdCB2YWx1ZSkKICAgICByZXR1cm4gbnBWYXJpYW50RGF0YTsKIH0K
IAotdm9pZCBOUFZhcmlhbnREYXRhOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBl
bmNvZGVyKSBjb25zdAordm9pZCBOUFZhcmlhbnREYXRhOjplbmNvZGUoQ29yZUlQQzo6QXJndW1l
bnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXItPmVuY29kZShtX3R5cGUp
OworICAgIGVuY29kZXIuZW5jb2RlKG1fdHlwZSk7CiAKICAgICBzd2l0Y2ggKHR5cGUoKSkgewog
ICAgIGNhc2UgTlBWYXJpYW50RGF0YTo6Vm9pZDoKICAgICBjYXNlIE5QVmFyaWFudERhdGE6Ok51
bGw6CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTlBWYXJpYW50RGF0YTo6Qm9vbDoKLSAgICAg
ICAgZW5jb2Rlci0+ZW5jb2RlKGJvb2xWYWx1ZSgpKTsKKyAgICAgICAgZW5jb2Rlci5lbmNvZGUo
Ym9vbFZhbHVlKCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIE5QVmFyaWFudERhdGE6Oklu
dDMyOgotICAgICAgICBlbmNvZGVyLT5lbmNvZGUoaW50MzJWYWx1ZSgpKTsKKyAgICAgICAgZW5j
b2Rlci5lbmNvZGUoaW50MzJWYWx1ZSgpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBOUFZh
cmlhbnREYXRhOjpEb3VibGU6Ci0gICAgICAgIGVuY29kZXItPmVuY29kZShkb3VibGVWYWx1ZSgp
KTsKKyAgICAgICAgZW5jb2Rlci5lbmNvZGUoZG91YmxlVmFsdWUoKSk7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgTlBWYXJpYW50RGF0YTo6U3RyaW5nOgotICAgICAgICBlbmNvZGVyLT5lbmNv
ZGUoc3RyaW5nVmFsdWUoKSk7CisgICAgICAgIGVuY29kZXIuZW5jb2RlKHN0cmluZ1ZhbHVlKCkp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIE5QVmFyaWFudERhdGE6OkxvY2FsTlBPYmplY3RJ
RDoKLSAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKGxvY2FsTlBPYmplY3RJRFZhbHVlKCkpOworICAg
ICAgICBlbmNvZGVyLmVuY29kZShsb2NhbE5QT2JqZWN0SURWYWx1ZSgpKTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBOUFZhcmlhbnREYXRhOjpSZW1vdGVOUE9iamVjdElEOgotICAgICAgICBl
bmNvZGVyLT5lbmNvZGUocmVtb3RlTlBPYmplY3RJRFZhbHVlKCkpOworICAgICAgICBlbmNvZGVy
LmVuY29kZShyZW1vdGVOUE9iamVjdElEVmFsdWUoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0K
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QVmFyaWFudERh
dGEuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QVmFyaWFudERhdGEuaAppbmRl
eCA4MDU2NDBlOWU3ZGY2YzgwNzI5MWFmOWFkMzRiNzBjM2VjODNmZDAzLi5hMjMyMDQ2MTZmYzg2
MDE0M2RjNzJmZGYyMjc0NjMxM2FlZWRhZDdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvUGx1Z2lucy9OUFZhcmlhbnREYXRhLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L1BsdWdpbnMvTlBWYXJpYW50RGF0YS5oCkBAIC0xMDAsNyArMTAwLDcgQEAgcHVibGljOgogICAg
ICAgICByZXR1cm4gbV9yZW1vdGVOUE9iamVjdElEVmFsdWU7CiAgICAgfQogCi0gICAgdm9pZCBl
bmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKikgY29uc3Q7CisgICAgdm9pZCBlbmNvZGUo
Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2Rl
KENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIE5QVmFyaWFudERhdGEmKTsKIAogcHJpdmF0ZToK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL1BsdWdpblByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvUGx1
Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggMWEwYTUyYzQxZWM5OWExZmY1
MTg1MDczNGE0OGE5MWZmMzk2MWNmMS4uYzBjNjI2ZTVjMDQyNzdlYzAxZDBlZWUwMzViZDViZjg5
MjZjMzY3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvUGx1Z2lu
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTM3LDE3ICsz
NywxNyBAQCBQbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpQbHVnaW5Qcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzKCkKIHsKIH0KIAotdm9pZCBQbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAor
dm9pZCBQbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoQ29yZUlQQzo6QXJn
dW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXItPmVuY29kZShwbHVn
aW5QYXRoKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoc3VwcG9ydHNBc3luY2hyb25vdXNQbHVnaW5J
bml0aWFsaXphdGlvbik7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG1pbmltdW1MaWZldGltZSk7Ci0g
ICAgZW5jb2Rlci0+ZW5jb2RlKHRlcm1pbmF0aW9uVGltZW91dCk7CisgICAgZW5jb2Rlci5lbmNv
ZGUocGx1Z2luUGF0aCk7CisgICAgZW5jb2Rlci5lbmNvZGUoc3VwcG9ydHNBc3luY2hyb25vdXNQ
bHVnaW5Jbml0aWFsaXphdGlvbik7CisgICAgZW5jb2Rlci5lbmNvZGUobWluaW11bUxpZmV0aW1l
KTsKKyAgICBlbmNvZGVyLmVuY29kZSh0ZXJtaW5hdGlvblRpbWVvdXQpOwogCiAjaWYgUExBVEZP
Uk0oTUFDKQotICAgIGVuY29kZXItPmVuY29kZShwYXJlbnRQcm9jZXNzTmFtZSk7Ci0gICAgZW5j
b2Rlci0+ZW5jb2RlKGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdQb3J0KTsKLSAgICBlbmNvZGVyLT5l
bmNvZGUoc2FuZGJveFByb2ZpbGVEaXJlY3RvcnlQYXRoKTsKKyAgICBlbmNvZGVyLmVuY29kZShw
YXJlbnRQcm9jZXNzTmFtZSk7CisgICAgZW5jb2Rlci5lbmNvZGUoYWNjZWxlcmF0ZWRDb21wb3Np
dGluZ1BvcnQpOworICAgIGVuY29kZXIuZW5jb2RlKHNhbmRib3hQcm9maWxlRGlyZWN0b3J5UGF0
aCk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdp
bnMvUGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IDU0NDM3
NGFkMTVmNWYxNDg2NTZjOTM5NTQ4ZjJhMWQ5YTViOWEwZTMuLmE0MTQyMTJiZTlhMGY2ODJlYzg1
YTMwY2U4ZGYwNDczNWRlNWMxMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Q
bHVnaW5zL1BsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAg
LTQ0LDcgKzQ0LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBzdHJ1Y3QgUGx1Z2luUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgUGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycygp
OwogCi0gICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKikgY29uc3Q7Cisg
ICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CiAgICAgc3Rh
dGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIFBsdWdpblByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMmKTsKIAogICAgIFN0cmluZyBwbHVnaW5QYXRoOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1ByaW50SW5mby5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvUHJpbnRJbmZvLmNwcAppbmRleCAxMDc4ODRhMDdiMzYwYjE4NTFiM2JmNGY0YTkwNTZh
YmE0MWRhMTUyLi5kMWJhNTAyZjBiY2ZiZGMzNjMxZmYyYmJiZmRjZjNlYTY4ODQ4YjU0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUHJpbnRJbmZvLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvUHJpbnRJbmZvLmNwcApAQCAtNDMsMTEgKzQzLDExIEBAIFByaW50SW5m
bzo6UHJpbnRJbmZvKCkKIHsKIH0KIAotdm9pZCBQcmludEluZm86OmVuY29kZShDb3JlSVBDOjpB
cmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Cit2b2lkIFByaW50SW5mbzo6ZW5jb2RlKENv
cmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyLT5l
bmNvZGUocGFnZVNldHVwU2NhbGVGYWN0b3IpOwotICAgIGVuY29kZXItPmVuY29kZShhdmFpbGFi
bGVQYXBlcldpZHRoKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoYXZhaWxhYmxlUGFwZXJIZWlnaHQp
OworICAgIGVuY29kZXIuZW5jb2RlKHBhZ2VTZXR1cFNjYWxlRmFjdG9yKTsKKyAgICBlbmNvZGVy
LmVuY29kZShhdmFpbGFibGVQYXBlcldpZHRoKTsKKyAgICBlbmNvZGVyLmVuY29kZShhdmFpbGFi
bGVQYXBlckhlaWdodCk7CiAKICNpZiBQTEFURk9STShHVEspCiAgICAgQ29yZUlQQzo6ZW5jb2Rl
KGVuY29kZXIsIHByaW50U2V0dGluZ3MuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL1ByaW50SW5mby5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1ByaW50SW5mby5o
CmluZGV4IGI3M2I3YzVlM2VlN2EyM2FhMmViNTdiZmNjOTQwNWY0ZTM0MjViOTYuLjk3ZmFjZWJk
MGNjNTgxOTlmYmM1MTJjOTM5N2IzMjgwZTJmNTNiZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9QcmludEluZm8uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUHJpbnRJ
bmZvLmgKQEAgLTYzLDcgKzYzLDcgQEAgc3RydWN0IFByaW50SW5mbyB7CiAgICAgR1JlZlB0cjxH
dGtQYWdlU2V0dXA+IHBhZ2VTZXR1cDsKICNlbmRpZgogCi0gICAgdm9pZCBlbmNvZGUoQ29yZUlQ
Qzo6QXJndW1lbnRFbmNvZGVyKikgY29uc3Q7CisgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJn
dW1lbnRFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciosIFByaW50SW5mbyYpOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL1NhbmRib3hFeHRlbnNpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9T
YW5kYm94RXh0ZW5zaW9uLmgKaW5kZXggNGZkYjFlZDYzZGM1NGNkMDI4YzBkZDFhMmRiOTRhZWVm
YjBiNTVhYS4uYTViMTRmYjhjMjI5MTc1M2RjNzRlNDk4ZTY4YWIzYTc0Njc5ZGE5MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1NhbmRib3hFeHRlbnNpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvU2FuZGJveEV4dGVuc2lvbi5oCkBAIC01OCw3ICs1OCw3IEBAIHB1
YmxpYzoKICAgICAgICAgSGFuZGxlKCk7CiAgICAgICAgIH5IYW5kbGUoKTsKIAotICAgICAgICB2
b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqKSBjb25zdDsKKyAgICAgICAgdm9p
ZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CiAgICAgICAgIHN0YXRp
YyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBIYW5kbGUmKTsKIAogICAg
IHByaXZhdGU6CkBAIC03OCw3ICs3OCw3IEBAIHB1YmxpYzoKICAgICAgICAgSGFuZGxlJiBvcGVy
YXRvcltdKHNpemVfdCBpKTsKICAgICAgICAgY29uc3QgSGFuZGxlJiBvcGVyYXRvcltdKHNpemVf
dCBpKSBjb25zdDsKICAgICAgICAgc2l6ZV90IHNpemUoKSBjb25zdDsKLSAgICAgICAgdm9pZCBl
bmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKikgY29uc3Q7CisgICAgICAgIHZvaWQgZW5j
b2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OwogICAgICAgICBzdGF0aWMgYm9v
bCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgSGFuZGxlQXJyYXkmKTsKICAgICAg
ICAKICAgICBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1NlY3Vy
aXR5T3JpZ2luRGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2VjdXJpdHlPcmlnaW5E
YXRhLmNwcAppbmRleCBjZjk1NTFiZmM2OTA1YTZkMTcwOGIxMjVkNDE2MDYwMTNiYjYyZjE2Li42
Yzc0MmFiMDE3OWFjOGY1N2JjZmZjNTQwNTIyYzljNjBkNzEzNzk1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvU2VjdXJpdHlPcmlnaW5EYXRhLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvU2VjdXJpdHlPcmlnaW5EYXRhLmNwcApAQCAtMzUsMTEgKzM1LDExIEBAIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdm9pZCBTZWN1
cml0eU9yaWdpbkRhdGE6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIp
IGNvbnN0Cit2b2lkIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50
RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyLT5lbmNvZGUocHJvdG9jb2wp
OwotICAgIGVuY29kZXItPmVuY29kZShob3N0KTsKLSAgICBlbmNvZGVyLT5lbmNvZGUocG9ydCk7
CisgICAgZW5jb2Rlci5lbmNvZGUocHJvdG9jb2wpOworICAgIGVuY29kZXIuZW5jb2RlKGhvc3Qp
OworICAgIGVuY29kZXIuZW5jb2RlKHBvcnQpOwogfQogCiBib29sIFNlY3VyaXR5T3JpZ2luRGF0
YTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgU2VjdXJpdHlPcmln
aW5EYXRhJiBzZWN1cml0eU9yaWdpbkRhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvU2VjdXJpdHlPcmlnaW5EYXRhLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2VjdXJp
dHlPcmlnaW5EYXRhLmgKaW5kZXggNjkyYTk2ZTE1YzU1NzMyOTcwMGI0ZmM1YjYwYmJjYTdlMjYx
OTFhNC4uOTM5MDliYzZlY2IyODNiOWU2YjE1NzRjZmI5NGRiMmVhYmI5Y2I4ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1NlY3VyaXR5T3JpZ2luRGF0YS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9TZWN1cml0eU9yaWdpbkRhdGEuaApAQCAtNDAsNyArNDAsNyBAQCBu
YW1lc3BhY2UgV2ViS2l0IHsKIHR5cGVkZWYgR2VuZXJpY0NhbGxiYWNrPFdLQXJyYXlSZWY+IEFy
cmF5Q2FsbGJhY2s7CiAKIHN0cnVjdCBTZWN1cml0eU9yaWdpbkRhdGEgewotICAgIHZvaWQgZW5j
b2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciopIGNvbnN0OworICAgIHZvaWQgZW5jb2RlKENv
cmVJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBTZWN1cml0eU9yaWdpbkRhdGEmKTsKIAogICAgIC8v
IEZJWE1FIDxyZGFyOi8vOTAxODM4Nj46IFdlIHNob3VsZCBiZSBzZW5kaW5nIG1vcmUgc3RhdGUg
YWNyb3NzIHRoZSB3aXJlIHRoYW4ganVzdCB0aGUgcHJvdG9jb2wsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvU2Vzc2lvblN0YXRlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9TZXNzaW9uU3RhdGUuY3BwCmluZGV4IGIyNTI4OWEzMjUwOTkzYjdhODU2MWRmYWU0NDhhMWNh
YTU3ODAwZWYuLjc4MWVhNjY1ZjEwOWRkODZhYjExZjMwZGFkNmY3MmVlYjg5MzkwZTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZXNzaW9uU3RhdGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9TZXNzaW9uU3RhdGUuY3BwCkBAIC02NCwxMCArNjQsMTAgQEAgYm9v
bCBTZXNzaW9uU3RhdGU6OmlzRW1wdHkoKSBjb25zdAogICAgIHJldHVybiBtX2xpc3QuaXNFbXB0
eSgpOwogfQogICAgIAotdm9pZCBTZXNzaW9uU3RhdGU6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVu
dEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Cit2b2lkIFNlc3Npb25TdGF0ZTo6ZW5jb2RlKENvcmVJ
UEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyLT5lbmNv
ZGUobV9saXN0KTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobV9jdXJyZW50SW5kZXgpOworICAgIGVu
Y29kZXIuZW5jb2RlKG1fbGlzdCk7CisgICAgZW5jb2Rlci5lbmNvZGUobV9jdXJyZW50SW5kZXgp
OwogfQogCiBib29sIFNlc3Npb25TdGF0ZTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciogZGVjb2RlciwgU2Vzc2lvblN0YXRlJiBzdGF0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9TZXNzaW9uU3RhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZXNzaW9u
U3RhdGUuaAppbmRleCA4YWExODk0OGQ2ZGUxZGZiMWYyNDYwNTA1NmQ0MzEzMmMzNjhmNzJkLi4x
OTQyMmExZjBlNjgyNTUxNWEzYWEwZjA2M2E3YTA1MzFhMmZkZDIyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvU2Vzc2lvblN0YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL1Nlc3Npb25TdGF0ZS5oCkBAIC00NSw3ICs0NSw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wg
aXNFbXB0eSgpIGNvbnN0OwogCi0gICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNv
ZGVyKikgY29uc3Q7CisgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJikg
Y29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlcios
IFNlc3Npb25TdGF0ZSYpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL1NoYXJlYWJsZUJpdG1hcC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVh
YmxlQml0bWFwLmNwcAppbmRleCBjZGUzYWExNjU3MzA2MGIwYThiZWMzNjU0YjBiZWM0M2MyZmQ0
MDE3Li4xZmIwNzJmZGI0MGZjOGUwZTY2MmJiZGM2OGNiMmQ1YmI0N2JlYTBhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxlQml0bWFwLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxlQml0bWFwLmNwcApAQCAtMzksMTEgKzM5LDExIEBAIFNo
YXJlYWJsZUJpdG1hcDo6SGFuZGxlOjpIYW5kbGUoKQogewogfQogCi12b2lkIFNoYXJlYWJsZUJp
dG1hcDo6SGFuZGxlOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBj
b25zdAordm9pZCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3Vt
ZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyLT5lbmNvZGUobV9oYW5k
bGUpOwotICAgIGVuY29kZXItPmVuY29kZShtX3NpemUpOwotICAgIGVuY29kZXItPmVuY29kZSht
X2ZsYWdzKTsKKyAgICBlbmNvZGVyLmVuY29kZShtX2hhbmRsZSk7CisgICAgZW5jb2Rlci5lbmNv
ZGUobV9zaXplKTsKKyAgICBlbmNvZGVyLmVuY29kZShtX2ZsYWdzKTsKIH0KIAogYm9vbCBTaGFy
ZWFibGVCaXRtYXA6OkhhbmRsZTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVj
b2RlciwgSGFuZGxlJiBoYW5kbGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
U2hhcmVhYmxlQml0bWFwLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxlQml0bWFw
LmgKaW5kZXggMmFmMjI4ZTZmYThiYTNmNzczNWQyNTc1NDU1NzM3MDRhOGIyZWMyMC4uOGRiZjFk
ZGZlOWZkYmYxNDNlNGVmMzljZDljZDg0ZTc0ZGM2NzMxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL1NoYXJlYWJsZUJpdG1hcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9TaGFyZWFibGVCaXRtYXAuaApAQCAtNzIsNyArNzIsNyBAQCBwdWJsaWM6CiAKICAgICAgICAg
Ym9vbCBpc051bGwoKSBjb25zdCB7IHJldHVybiBtX2hhbmRsZS5pc051bGwoKTsgfQogCi0gICAg
ICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciopIGNvbnN0OworICAgICAg
ICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKICAgICAgICAg
c3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIEhhbmRsZSYpOwog
CiAgICAgcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWRX
b3JrZXJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9TaGFyZWRXb3JrZXJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCBiNjY5MzA3
ZWJjMjMwNmZmOTdiODBlNDk3M2NjZWMxNzk0YzliYWYzLi45OTQxYjA2MTVjMjFlODgyNWU4ODBm
MmI2NWVjNmRmMmE1YWEyNzBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hh
cmVkV29ya2VyUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1NoYXJlZFdvcmtlclByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC0z
NiwxMyArMzYsMTMgQEAgU2hhcmVkV29ya2VyUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6U2hh
cmVkV29ya2VyUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycygpCiB7CiB9CiAKLXZvaWQgU2hhcmVk
V29ya2VyUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50
RW5jb2RlciogZW5jb2RlcikgY29uc3QKK3ZvaWQgU2hhcmVkV29ya2VyUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVyczo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29u
c3QKIHsKLSAgICBlbmNvZGVyLT5lbmNvZGUobWluaW11bUxpZmV0aW1lKTsKLSAgICBlbmNvZGVy
LT5lbmNvZGUodGVybWluYXRpb25UaW1lb3V0KTsKKyAgICBlbmNvZGVyLmVuY29kZShtaW5pbXVt
TGlmZXRpbWUpOworICAgIGVuY29kZXIuZW5jb2RlKHRlcm1pbmF0aW9uVGltZW91dCk7CiAKICNp
ZiBQTEFURk9STShNQUMpCi0gICAgZW5jb2Rlci0+ZW5jb2RlKHBhcmVudFByb2Nlc3NOYW1lKTsK
KyAgICBlbmNvZGVyLmVuY29kZShwYXJlbnRQcm9jZXNzTmFtZSk7CiAjZW5kaWYKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1NoYXJlZFdvcmtlclByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWRXb3JrZXJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggM2ZlZjk3NTM1YjI0NDY1YjA5NDQyNGE5NTI1OTNj
ZmNiOGNjMzgyMS4uY2NkMjU3ZWI5ZTNiMzMxYjk1NzlmZTNmODAyNzYxYjA5NDRjNThkNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1NoYXJlZFdvcmtlclByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVkV29ya2VyUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC00NCw3ICs0NCw3IEBAIG5hbWVzcGFjZSBXZWJL
aXQgewogc3RydWN0IFNoYXJlZFdvcmtlclByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgewogICAg
IFNoYXJlZFdvcmtlclByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMoKTsKIAotICAgIHZvaWQgZW5j
b2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciopIGNvbnN0OworICAgIHZvaWQgZW5jb2RlKENv
cmVJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBTaGFyZWRXb3JrZXJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzJik7CiAKICAgICBkb3VibGUgbWluaW11bUxpZmV0aW1lOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL1N0YXRpc3RpY3NEYXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9TdGF0aXN0aWNzRGF0YS5jcHAKaW5kZXggNTlmZWY3YTc3ODkyZGY2OGQ3MjczM2E2MDBj
NWVjZjY2NThhZDM2Mi4uNjRkYjE3YTEzZTc2MTQ3NDk0NzgzMGZiM2VmMTAxNjgyOTRiMjU5YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1N0YXRpc3RpY3NEYXRhLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU3RhdGlzdGljc0RhdGEuY3BwCkBAIC0zMCwxMiArMzAs
MTIgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXZvaWQgU3RhdGlzdGljc0RhdGE6OmVuY29k
ZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Cit2b2lkIFN0YXRpc3Rp
Y3NEYXRhOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAog
ewotICAgIGVuY29kZXItPmVuY29kZShzdGF0aXN0aWNzTnVtYmVycyk7Ci0gICAgZW5jb2Rlci0+
ZW5jb2RlKGphdmFTY3JpcHRQcm90ZWN0ZWRPYmplY3RUeXBlQ291bnRzKTsKLSAgICBlbmNvZGVy
LT5lbmNvZGUoamF2YVNjcmlwdE9iamVjdFR5cGVDb3VudHMpOwotICAgIGVuY29kZXItPmVuY29k
ZSh3ZWJDb3JlQ2FjaGVTdGF0aXN0aWNzKTsKKyAgICBlbmNvZGVyLmVuY29kZShzdGF0aXN0aWNz
TnVtYmVycyk7CisgICAgZW5jb2Rlci5lbmNvZGUoamF2YVNjcmlwdFByb3RlY3RlZE9iamVjdFR5
cGVDb3VudHMpOworICAgIGVuY29kZXIuZW5jb2RlKGphdmFTY3JpcHRPYmplY3RUeXBlQ291bnRz
KTsKKyAgICBlbmNvZGVyLmVuY29kZSh3ZWJDb3JlQ2FjaGVTdGF0aXN0aWNzKTsKIH0KIAogYm9v
bCBTdGF0aXN0aWNzRGF0YTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2Rl
ciwgU3RhdGlzdGljc0RhdGEmIHN0YXRpc3RpY3NEYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL1N0YXRpc3RpY3NEYXRhLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU3Rh
dGlzdGljc0RhdGEuaAppbmRleCAyYzgyYzI4YmQ4Mzk1MjlhMDNjMDlmMzJkNDQ2Y2I0YzE4YWFl
ZmQ4Li43MzE1ZWQyNTA4ZjE1N2Y1NmE4NmU1YzYzYTIyMmZhMTE0ZWRlZjUyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU3RhdGlzdGljc0RhdGEuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvU3RhdGlzdGljc0RhdGEuaApAQCAtMzYsNyArMzYsNyBAQAogbmFtZXNwYWNl
IFdlYktpdCB7CiAKIHN0cnVjdCBTdGF0aXN0aWNzRGF0YSB7Ci0gICAgdm9pZCBlbmNvZGUoQ29y
ZUlQQzo6QXJndW1lbnRFbmNvZGVyKikgY29uc3Q7CisgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6
QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciosIFN0YXRpc3RpY3NEYXRhJik7CiAgICAgCiAgICAgSGFzaE1hcDxT
dHJpbmcsIHVpbnQ2NF90PiBzdGF0aXN0aWNzTnVtYmVyczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9TdHJpbmdQYWlyVmVjdG9yLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
U3RyaW5nUGFpclZlY3Rvci5oCmluZGV4IGNlMmRhNGEwOWIzNGYzMTU0NzY1ZDgwZmMxZGM4ODU4
ZjEwODRmYTUuLjcwZmVhOTZmZmQyNGJiMGU5OGEwYTJlODMzZTg3NjhkYjcxY2MzN2YgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TdHJpbmdQYWlyVmVjdG9yLmgKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL1N0cmluZ1BhaXJWZWN0b3IuaApAQCAtNDUsOSArNDUsOSBAQCBw
dWJsaWM6CiAgICAgICAgIG1fc3RyaW5nUGFpclZlY3Rvci5zd2FwKHN0cmluZ1BhaXJWZWN0b3Ip
OwogICAgIH0KIAotICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5j
b2RlcikgY29uc3QKKyAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVu
Y29kZXIpIGNvbnN0CiAgICAgewotICAgICAgICBlbmNvZGVyLT5lbmNvZGUobV9zdHJpbmdQYWly
VmVjdG9yKTsKKyAgICAgICAgZW5jb2Rlci5lbmNvZGUobV9zdHJpbmdQYWlyVmVjdG9yKTsKICAg
ICB9CiAKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBk
ZWNvZGVyLCBTdHJpbmdQYWlyVmVjdG9yJiBzdHJpbmdQYWlyVmVjdG9yKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL1VwZGF0ZUluZm8uY3BwIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL1VwZGF0ZUluZm8uY3BwCmluZGV4IDViYjE4OTU5N2JiMDljMzEyZjZhZTQ3Zjc3NmQ3OTVj
ZjMyOTIxZGMuLmY3NWFkMWIwNzMxODcxMGE5MzNmZWZlNDllZjM5NWY1ZTNmMzM5ZjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9VcGRhdGVJbmZvLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvVXBkYXRlSW5mby5jcHAKQEAgLTMwLDE3ICszMCwxNyBAQAogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAotdm9pZCBVcGRhdGVJbmZvOjplbmNvZGUoQ29yZUlQQzo6QXJndW1l
bnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAordm9pZCBVcGRhdGVJbmZvOjplbmNvZGUoQ29yZUlQ
Qzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXItPmVuY29k
ZSh2aWV3U2l6ZSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGRldmljZVNjYWxlRmFjdG9yKTsKLSAg
ICBlbmNvZGVyLT5lbmNvZGUoc2Nyb2xsUmVjdCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHNjcm9s
bE9mZnNldCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHVwZGF0ZVJlY3RCb3VuZHMpOwotICAgIGVu
Y29kZXItPmVuY29kZSh1cGRhdGVSZWN0cyk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHVwZGF0ZVNj
YWxlRmFjdG9yKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoYml0bWFwSGFuZGxlKTsKLSAgICBlbmNv
ZGVyLT5lbmNvZGUoYml0bWFwT2Zmc2V0KTsKKyAgICBlbmNvZGVyLmVuY29kZSh2aWV3U2l6ZSk7
CisgICAgZW5jb2Rlci5lbmNvZGUoZGV2aWNlU2NhbGVGYWN0b3IpOworICAgIGVuY29kZXIuZW5j
b2RlKHNjcm9sbFJlY3QpOworICAgIGVuY29kZXIuZW5jb2RlKHNjcm9sbE9mZnNldCk7CisgICAg
ZW5jb2Rlci5lbmNvZGUodXBkYXRlUmVjdEJvdW5kcyk7CisgICAgZW5jb2Rlci5lbmNvZGUodXBk
YXRlUmVjdHMpOworICAgIGVuY29kZXIuZW5jb2RlKHVwZGF0ZVNjYWxlRmFjdG9yKTsKKyAgICBl
bmNvZGVyLmVuY29kZShiaXRtYXBIYW5kbGUpOworICAgIGVuY29kZXIuZW5jb2RlKGJpdG1hcE9m
ZnNldCk7CiB9CiAKIGJvb2wgVXBkYXRlSW5mbzo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVj
b2RlciogZGVjb2RlciwgVXBkYXRlSW5mbyYgcmVzdWx0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL1VwZGF0ZUluZm8uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9VcGRhdGVJ
bmZvLmgKaW5kZXggZTNhOGRlMjc4NDc1ZTk0YzRjZTBiMGM0NWMxOTI3Mjg2NzQ4ZGNmMy4uYzEx
YWEzNTQyODYxZGI2MGFiY2YzOTI5YWU3YjVlZTljMDE5MTM2NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1VwZGF0ZUluZm8uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
VXBkYXRlSW5mby5oCkBAIC00Myw3ICs0Myw3IEBAIGNsYXNzIFVwZGF0ZUluZm8gewogcHVibGlj
OgogICAgIFVwZGF0ZUluZm8oKSB7IH0KIAotICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3Vt
ZW50RW5jb2RlciopIGNvbnN0OworICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5j
b2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqLCBVcGRhdGVJbmZvJik7CiAKICAgICAvLyBUaGUgc2l6ZSBvZiB0aGUgd2ViIHZpZXcu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVXNlck1lc3NhZ2VDb2RlcnMuaCBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Vc2VyTWVzc2FnZUNvZGVycy5oCmluZGV4IDlkOGFjNWM2
YjhmNzJkYTBmOGIwNmY0N2FjY2Q2MGI1ZWU1YzU4YzUuLjllZmYyYzk1M2IwZTJlOGJmNjRmOThj
MjM3OWUxNmY0NDdhYmE5NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Vc2Vy
TWVzc2FnZUNvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Vc2VyTWVzc2FnZUNv
ZGVycy5oCkBAIC02NywxMTkgKzY3LDExOSBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIHRlbXBsYXRl
PHR5cGVuYW1lIE93bmVyPgogY2xhc3MgVXNlck1lc3NhZ2VFbmNvZGVyIHsKIHB1YmxpYzoKLSAg
ICBib29sIGJhc2VFbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyLCBBUElP
YmplY3Q6OlR5cGUmIHR5cGUpIGNvbnN0IAorICAgIGJvb2wgYmFzZUVuY29kZShDb3JlSVBDOjpB
cmd1bWVudEVuY29kZXImIGVuY29kZXIsIEFQSU9iamVjdDo6VHlwZSYgdHlwZSkgY29uc3QKICAg
ICB7CiAgICAgICAgIGlmICghbV9yb290KSB7Ci0gICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGUo
c3RhdGljX2Nhc3Q8dWludDMyX3Q+KEFQSU9iamVjdDo6VHlwZU51bGwpKTsKKyAgICAgICAgICAg
IGVuY29kZXIuZW5jb2RlKHN0YXRpY19jYXN0PHVpbnQzMl90PihBUElPYmplY3Q6OlR5cGVOdWxs
KSk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogCiAgICAgICAgIHR5cGUg
PSBtX3Jvb3QtPnR5cGUoKTsKLSAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKHN0YXRpY19jYXN0PHVp
bnQzMl90Pih0eXBlKSk7CisgICAgICAgIGVuY29kZXIuZW5jb2RlKHN0YXRpY19jYXN0PHVpbnQz
Ml90Pih0eXBlKSk7CiAKICAgICAgICAgc3dpdGNoICh0eXBlKSB7CiAgICAgICAgIGNhc2UgQVBJ
T2JqZWN0OjpUeXBlQXJyYXk6IHsKICAgICAgICAgICAgIEltbXV0YWJsZUFycmF5KiBhcnJheSA9
IHN0YXRpY19jYXN0PEltbXV0YWJsZUFycmF5Kj4obV9yb290KTsKLSAgICAgICAgICAgIGVuY29k
ZXItPmVuY29kZShzdGF0aWNfY2FzdDx1aW50NjRfdD4oYXJyYXktPnNpemUoKSkpOworICAgICAg
ICAgICAgZW5jb2Rlci5lbmNvZGUoc3RhdGljX2Nhc3Q8dWludDY0X3Q+KGFycmF5LT5zaXplKCkp
KTsKICAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYXJyYXktPnNpemUoKTsgKytp
KQotICAgICAgICAgICAgICAgIGVuY29kZXItPmVuY29kZShPd25lcihhcnJheS0+YXQoaSkpKTsK
KyAgICAgICAgICAgICAgICBlbmNvZGVyLmVuY29kZShPd25lcihhcnJheS0+YXQoaSkpKTsKICAg
ICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgQVBJT2JqZWN0
OjpUeXBlRGljdGlvbmFyeTogewogICAgICAgICAgICAgSW1tdXRhYmxlRGljdGlvbmFyeSogZGlj
dGlvbmFyeSA9IHN0YXRpY19jYXN0PEltbXV0YWJsZURpY3Rpb25hcnkqPihtX3Jvb3QpOwogICAg
ICAgICAgICAgY29uc3QgSW1tdXRhYmxlRGljdGlvbmFyeTo6TWFwVHlwZSYgbWFwID0gZGljdGlv
bmFyeS0+bWFwKCk7Ci0gICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGUoc3RhdGljX2Nhc3Q8dWlu
dDY0X3Q+KG1hcC5zaXplKCkpKTsKKyAgICAgICAgICAgIGVuY29kZXIuZW5jb2RlKHN0YXRpY19j
YXN0PHVpbnQ2NF90PihtYXAuc2l6ZSgpKSk7CiAKICAgICAgICAgICAgIEltbXV0YWJsZURpY3Rp
b25hcnk6Ok1hcFR5cGU6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbWFwLmJlZ2luKCk7CiAgICAgICAg
ICAgICBJbW11dGFibGVEaWN0aW9uYXJ5OjpNYXBUeXBlOjpjb25zdF9pdGVyYXRvciBlbmQgPSBt
YXAuZW5kKCk7CiAgICAgICAgICAgICBmb3IgKDsgaXQgIT0gZW5kOyArK2l0KSB7Ci0gICAgICAg
ICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKGl0LT5rZXkpOwotICAgICAgICAgICAgICAgIGVuY29k
ZXItPmVuY29kZShPd25lcihpdC0+dmFsdWUuZ2V0KCkpKTsKKyAgICAgICAgICAgICAgICBlbmNv
ZGVyLmVuY29kZShpdC0+a2V5KTsKKyAgICAgICAgICAgICAgICBlbmNvZGVyLmVuY29kZShPd25l
cihpdC0+dmFsdWUuZ2V0KCkpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHJldHVybiB0
cnVlOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgQVBJT2JqZWN0OjpUeXBlU3RyaW5nOiB7CiAg
ICAgICAgICAgICBXZWJTdHJpbmcqIHN0cmluZyA9IHN0YXRpY19jYXN0PFdlYlN0cmluZyo+KG1f
cm9vdCk7Ci0gICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGUoc3RyaW5nLT5zdHJpbmcoKSk7Cisg
ICAgICAgICAgICBlbmNvZGVyLmVuY29kZShzdHJpbmctPnN0cmluZygpKTsKICAgICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgQVBJT2JqZWN0OjpUeXBlU2Vy
aWFsaXplZFNjcmlwdFZhbHVlOiB7CiAgICAgICAgICAgICBXZWJTZXJpYWxpemVkU2NyaXB0VmFs
dWUqIHNjcmlwdFZhbHVlID0gc3RhdGljX2Nhc3Q8V2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlKj4o
bV9yb290KTsKLSAgICAgICAgICAgIGVuY29kZXItPmVuY29kZVZhcmlhYmxlTGVuZ3RoQnl0ZUFy
cmF5KHNjcmlwdFZhbHVlLT5kYXRhUmVmZXJlbmNlKCkpOworICAgICAgICAgICAgZW5jb2Rlci5l
bmNvZGVWYXJpYWJsZUxlbmd0aEJ5dGVBcnJheShzY3JpcHRWYWx1ZS0+ZGF0YVJlZmVyZW5jZSgp
KTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgQVBJ
T2JqZWN0OjpUeXBlQm9vbGVhbjogewogICAgICAgICAgICAgV2ViQm9vbGVhbiogYm9vbGVhbk9i
amVjdCA9IHN0YXRpY19jYXN0PFdlYkJvb2xlYW4qPihtX3Jvb3QpOwotICAgICAgICAgICAgZW5j
b2Rlci0+ZW5jb2RlKGJvb2xlYW5PYmplY3QtPnZhbHVlKCkpOworICAgICAgICAgICAgZW5jb2Rl
ci5lbmNvZGUoYm9vbGVhbk9iamVjdC0+dmFsdWUoKSk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICAgICAgfQogICAgICAgICBjYXNlIEFQSU9iamVjdDo6VHlwZURvdWJsZTogewogICAg
ICAgICAgICAgV2ViRG91YmxlKiBkb3VibGVPYmplY3QgPSBzdGF0aWNfY2FzdDxXZWJEb3VibGUq
PihtX3Jvb3QpOwotICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKGRvdWJsZU9iamVjdC0+dmFs
dWUoKSk7CisgICAgICAgICAgICBlbmNvZGVyLmVuY29kZShkb3VibGVPYmplY3QtPnZhbHVlKCkp
OwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBBUElP
YmplY3Q6OlR5cGVVSW50NjQ6IHsKICAgICAgICAgICAgIFdlYlVJbnQ2NCogdWludDY0T2JqZWN0
ID0gc3RhdGljX2Nhc3Q8V2ViVUludDY0Kj4obV9yb290KTsKLSAgICAgICAgICAgIGVuY29kZXIt
PmVuY29kZSh1aW50NjRPYmplY3QtPnZhbHVlKCkpOworICAgICAgICAgICAgZW5jb2Rlci5lbmNv
ZGUodWludDY0T2JqZWN0LT52YWx1ZSgpKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAg
ICAgICB9CiAgICAgICAgIGNhc2UgQVBJT2JqZWN0OjpUeXBlUG9pbnQ6IHsKICAgICAgICAgICAg
IFdlYlBvaW50KiBwb2ludE9iamVjdCA9IHN0YXRpY19jYXN0PFdlYlBvaW50Kj4obV9yb290KTsK
LSAgICAgICAgICAgIGVuY29kZXItPmVuY29kZShwb2ludE9iamVjdC0+cG9pbnQoKS54KTsKLSAg
ICAgICAgICAgIGVuY29kZXItPmVuY29kZShwb2ludE9iamVjdC0+cG9pbnQoKS55KTsKKyAgICAg
ICAgICAgIGVuY29kZXIuZW5jb2RlKHBvaW50T2JqZWN0LT5wb2ludCgpLngpOworICAgICAgICAg
ICAgZW5jb2Rlci5lbmNvZGUocG9pbnRPYmplY3QtPnBvaW50KCkueSk7CiAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgICAgICBjYXNlIEFQSU9iamVjdDo6VHlwZVNpemU6
IHsKICAgICAgICAgICAgIFdlYlNpemUqIHNpemVPYmplY3QgPSBzdGF0aWNfY2FzdDxXZWJTaXpl
Kj4obV9yb290KTsKLSAgICAgICAgICAgIGVuY29kZXItPmVuY29kZShzaXplT2JqZWN0LT5zaXpl
KCkud2lkdGgpOwotICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKHNpemVPYmplY3QtPnNpemUo
KS5oZWlnaHQpOworICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGUoc2l6ZU9iamVjdC0+c2l6ZSgp
LndpZHRoKTsKKyAgICAgICAgICAgIGVuY29kZXIuZW5jb2RlKHNpemVPYmplY3QtPnNpemUoKS5o
ZWlnaHQpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICAgICAgY2Fz
ZSBBUElPYmplY3Q6OlR5cGVSZWN0OiB7CiAgICAgICAgICAgICBXZWJSZWN0KiByZWN0T2JqZWN0
ID0gc3RhdGljX2Nhc3Q8V2ViUmVjdCo+KG1fcm9vdCk7Ci0gICAgICAgICAgICBlbmNvZGVyLT5l
bmNvZGUocmVjdE9iamVjdC0+cmVjdCgpLm9yaWdpbi54KTsKLSAgICAgICAgICAgIGVuY29kZXIt
PmVuY29kZShyZWN0T2JqZWN0LT5yZWN0KCkub3JpZ2luLnkpOwotICAgICAgICAgICAgZW5jb2Rl
ci0+ZW5jb2RlKHJlY3RPYmplY3QtPnJlY3QoKS5zaXplLndpZHRoKTsKLSAgICAgICAgICAgIGVu
Y29kZXItPmVuY29kZShyZWN0T2JqZWN0LT5yZWN0KCkuc2l6ZS5oZWlnaHQpOworICAgICAgICAg
ICAgZW5jb2Rlci5lbmNvZGUocmVjdE9iamVjdC0+cmVjdCgpLm9yaWdpbi54KTsKKyAgICAgICAg
ICAgIGVuY29kZXIuZW5jb2RlKHJlY3RPYmplY3QtPnJlY3QoKS5vcmlnaW4ueSk7CisgICAgICAg
ICAgICBlbmNvZGVyLmVuY29kZShyZWN0T2JqZWN0LT5yZWN0KCkuc2l6ZS53aWR0aCk7CisgICAg
ICAgICAgICBlbmNvZGVyLmVuY29kZShyZWN0T2JqZWN0LT5yZWN0KCkuc2l6ZS5oZWlnaHQpOwog
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBBUElPYmpl
Y3Q6OlR5cGVSZW5kZXJMYXllcjogewogICAgICAgICAgICAgV2ViUmVuZGVyTGF5ZXIqIHJlbmRl
ckxheWVyID0gc3RhdGljX2Nhc3Q8V2ViUmVuZGVyTGF5ZXIqPihtX3Jvb3QpOwotICAgICAgICAg
ICAgZW5jb2Rlci0+ZW5jb2RlKE93bmVyKHJlbmRlckxheWVyLT5yZW5kZXJlcigpKSk7Ci0gICAg
ICAgICAgICBlbmNvZGVyLT5lbmNvZGUocmVuZGVyTGF5ZXItPmlzUmVmbGVjdGlvbigpKTsKLSAg
ICAgICAgICAgIGVuY29kZXItPmVuY29kZShyZW5kZXJMYXllci0+aXNDbGlwcGluZygpKTsKLSAg
ICAgICAgICAgIGVuY29kZXItPmVuY29kZShyZW5kZXJMYXllci0+aXNDbGlwcGVkKCkpOwotICAg
ICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKHN0YXRpY19jYXN0PHVpbnQzMl90PihyZW5kZXJMYXll
ci0+Y29tcG9zaXRpbmdMYXllclR5cGUoKSkpOwotICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2Rl
KHJlbmRlckxheWVyLT5hYnNvbHV0ZUJvdW5kaW5nQm94KCkpOwotICAgICAgICAgICAgZW5jb2Rl
ci0+ZW5jb2RlKE93bmVyKHJlbmRlckxheWVyLT5uZWdhdGl2ZVpPcmRlckxpc3QoKSkpOwotICAg
ICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKE93bmVyKHJlbmRlckxheWVyLT5ub3JtYWxGbG93TGlz
dCgpKSk7Ci0gICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGUoT3duZXIocmVuZGVyTGF5ZXItPnBv
c2l0aXZlWk9yZGVyTGlzdCgpKSk7CisgICAgICAgICAgICBlbmNvZGVyLmVuY29kZShPd25lcihy
ZW5kZXJMYXllci0+cmVuZGVyZXIoKSkpOworICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGUocmVu
ZGVyTGF5ZXItPmlzUmVmbGVjdGlvbigpKTsKKyAgICAgICAgICAgIGVuY29kZXIuZW5jb2RlKHJl
bmRlckxheWVyLT5pc0NsaXBwaW5nKCkpOworICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGUocmVu
ZGVyTGF5ZXItPmlzQ2xpcHBlZCgpKTsKKyAgICAgICAgICAgIGVuY29kZXIuZW5jb2RlKHN0YXRp
Y19jYXN0PHVpbnQzMl90PihyZW5kZXJMYXllci0+Y29tcG9zaXRpbmdMYXllclR5cGUoKSkpOwor
ICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGUocmVuZGVyTGF5ZXItPmFic29sdXRlQm91bmRpbmdC
b3goKSk7CisgICAgICAgICAgICBlbmNvZGVyLmVuY29kZShPd25lcihyZW5kZXJMYXllci0+bmVn
YXRpdmVaT3JkZXJMaXN0KCkpKTsKKyAgICAgICAgICAgIGVuY29kZXIuZW5jb2RlKE93bmVyKHJl
bmRlckxheWVyLT5ub3JtYWxGbG93TGlzdCgpKSk7CisgICAgICAgICAgICBlbmNvZGVyLmVuY29k
ZShPd25lcihyZW5kZXJMYXllci0+cG9zaXRpdmVaT3JkZXJMaXN0KCkpKTsKICAgICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgQVBJT2JqZWN0OjpUeXBlUmVu
ZGVyT2JqZWN0OiB7CiAgICAgICAgICAgICBXZWJSZW5kZXJPYmplY3QqIHJlbmRlck9iamVjdCA9
IHN0YXRpY19jYXN0PFdlYlJlbmRlck9iamVjdCo+KG1fcm9vdCk7Ci0gICAgICAgICAgICBlbmNv
ZGVyLT5lbmNvZGUocmVuZGVyT2JqZWN0LT5uYW1lKCkpOwotICAgICAgICAgICAgZW5jb2Rlci0+
ZW5jb2RlKHJlbmRlck9iamVjdC0+ZWxlbWVudFRhZ05hbWUoKSk7Ci0gICAgICAgICAgICBlbmNv
ZGVyLT5lbmNvZGUocmVuZGVyT2JqZWN0LT5lbGVtZW50SUQoKSk7Ci0gICAgICAgICAgICBlbmNv
ZGVyLT5lbmNvZGUoT3duZXIocmVuZGVyT2JqZWN0LT5lbGVtZW50Q2xhc3NOYW1lcygpKSk7Ci0g
ICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGUocmVuZGVyT2JqZWN0LT5hYnNvbHV0ZVBvc2l0aW9u
KCkpOwotICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKHJlbmRlck9iamVjdC0+ZnJhbWVSZWN0
KCkpOwotICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKE93bmVyKHJlbmRlck9iamVjdC0+Y2hp
bGRyZW4oKS5nZXQoKSkpOworICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGUocmVuZGVyT2JqZWN0
LT5uYW1lKCkpOworICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGUocmVuZGVyT2JqZWN0LT5lbGVt
ZW50VGFnTmFtZSgpKTsKKyAgICAgICAgICAgIGVuY29kZXIuZW5jb2RlKHJlbmRlck9iamVjdC0+
ZWxlbWVudElEKCkpOworICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGUoT3duZXIocmVuZGVyT2Jq
ZWN0LT5lbGVtZW50Q2xhc3NOYW1lcygpKSk7CisgICAgICAgICAgICBlbmNvZGVyLmVuY29kZShy
ZW5kZXJPYmplY3QtPmFic29sdXRlUG9zaXRpb24oKSk7CisgICAgICAgICAgICBlbmNvZGVyLmVu
Y29kZShyZW5kZXJPYmplY3QtPmZyYW1lUmVjdCgpKTsKKyAgICAgICAgICAgIGVuY29kZXIuZW5j
b2RlKE93bmVyKHJlbmRlck9iamVjdC0+Y2hpbGRyZW4oKS5nZXQoKSkpOwogICAgICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBBUElPYmplY3Q6OlR5cGVVUkw6
IHsKICAgICAgICAgICAgIFdlYlVSTCogdXJsT2JqZWN0ID0gc3RhdGljX2Nhc3Q8V2ViVVJMKj4o
bV9yb290KTsKLSAgICAgICAgICAgIGVuY29kZXItPmVuY29kZSh1cmxPYmplY3QtPnN0cmluZygp
KTsKKyAgICAgICAgICAgIGVuY29kZXIuZW5jb2RlKHVybE9iamVjdC0+c3RyaW5nKCkpOwogICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBBUElPYmplY3Q6
OlR5cGVVUkxSZXF1ZXN0OiB7CiAgICAgICAgICAgICBXZWJVUkxSZXF1ZXN0KiB1cmxSZXF1ZXN0
T2JqZWN0ID0gc3RhdGljX2Nhc3Q8V2ViVVJMUmVxdWVzdCo+KG1fcm9vdCk7Ci0gICAgICAgICAg
ICBlbmNvZGVyLT5lbmNvZGUodXJsUmVxdWVzdE9iamVjdC0+cmVzb3VyY2VSZXF1ZXN0KCkpOwor
ICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGUodXJsUmVxdWVzdE9iamVjdC0+cmVzb3VyY2VSZXF1
ZXN0KCkpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICAgICAgY2Fz
ZSBBUElPYmplY3Q6OlR5cGVVc2VyQ29udGVudFVSTFBhdHRlcm46IHsKICAgICAgICAgICAgIFdl
YlVzZXJDb250ZW50VVJMUGF0dGVybiogdXJsUGF0dGVybiA9IHN0YXRpY19jYXN0PFdlYlVzZXJD
b250ZW50VVJMUGF0dGVybio+KG1fcm9vdCk7Ci0gICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGUo
dXJsUGF0dGVybi0+cGF0dGVyblN0cmluZygpKTsKKyAgICAgICAgICAgIGVuY29kZXIuZW5jb2Rl
KHVybFBhdHRlcm4tPnBhdHRlcm5TdHJpbmcoKSk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICAgICAgfQogICAgICAgICBjYXNlIEFQSU9iamVjdDo6VHlwZUltYWdlOiB7CkBAIC0xODks
MjQgKzE4OSwyNCBAQCBwdWJsaWM6CiAgICAgICAgICAgICBBU1NFUlQoIWltYWdlLT5iaXRtYXAo
KSB8fCBpbWFnZS0+Yml0bWFwKCktPmlzQmFja2VkQnlTaGFyZWRNZW1vcnkoKSk7ICAgICAgICAg
ICAgCiAgICAgICAgICAgICBpZiAoIWltYWdlLT5iaXRtYXAoKSB8fCAhaW1hZ2UtPmJpdG1hcCgp
LT5pc0JhY2tlZEJ5U2hhcmVkTWVtb3J5KCkgfHwgIWltYWdlLT5iaXRtYXAoKS0+Y3JlYXRlSGFu
ZGxlKGhhbmRsZSkpIHsKICAgICAgICAgICAgICAgICAvLyBJbml0aWFsIGZhbHNlIGluZGljYXRl
cyBubyBhbGxvY2F0ZWQgYml0bWFwIG9yIGlzIG5vdCBzaGFyZWFibGUuCi0gICAgICAgICAgICAg
ICAgZW5jb2Rlci0+ZW5jb2RlKGZhbHNlKTsKKyAgICAgICAgICAgICAgICBlbmNvZGVyLmVuY29k
ZShmYWxzZSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICB9CiAK
ICAgICAgICAgICAgIC8vIEluaXRpYWwgdHJ1ZSBpbmRpY2F0ZXMgYSBiaXRtYXAgd2FzIGFsbG9j
YXRlZCBhbmQgaXMgc2hhcmVhYmxlLgotICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKHRydWUp
OworICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGUodHJ1ZSk7CiAKLSAgICAgICAgICAgIGVuY29k
ZXItPmVuY29kZShoYW5kbGUpOworICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGUoaGFuZGxlKTsK
ICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgQVBJT2Jq
ZWN0OjpUeXBlRGF0YTogewogICAgICAgICAgICAgV2ViRGF0YSogZGF0YSA9IHN0YXRpY19jYXN0
PFdlYkRhdGEqPihtX3Jvb3QpOwotICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlVmFyaWFibGVM
ZW5ndGhCeXRlQXJyYXkoZGF0YS0+ZGF0YVJlZmVyZW5jZSgpKTsKKyAgICAgICAgICAgIGVuY29k
ZXIuZW5jb2RlVmFyaWFibGVMZW5ndGhCeXRlQXJyYXkoZGF0YS0+ZGF0YVJlZmVyZW5jZSgpKTsK
ICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgQVBJT2Jq
ZWN0OjpUeXBlQ2VydGlmaWNhdGVJbmZvOiB7CiAgICAgICAgICAgICBXZWJDZXJ0aWZpY2F0ZUlu
Zm8qIGNlcnRpZmljYXRlSW5mbyA9IHN0YXRpY19jYXN0PFdlYkNlcnRpZmljYXRlSW5mbyo+KG1f
cm9vdCk7Ci0gICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGUoY2VydGlmaWNhdGVJbmZvLT5wbGF0
Zm9ybUNlcnRpZmljYXRlSW5mbygpKTsKKyAgICAgICAgICAgIGVuY29kZXIuZW5jb2RlKGNlcnRp
ZmljYXRlSW5mby0+cGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8oKSk7CiAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICAgICAgfQogICAgICAgICBkZWZhdWx0OgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYkNvbnRleHRNZW51SXRlbURhdGEuY3BwIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYkNvbnRleHRNZW51SXRlbURhdGEuY3BwCmluZGV4IDkwMWNlOWM0N2YxYzVk
MzNiY2MxNmZiYmNhMDRkMjRjOWU4MzAxN2IuLjkxNTlmMDI5Y2E0ZGE5N2I2ZTNkMjc0ZWIyYmYy
ZDI1MjMwMjY1ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb250ZXh0
TWVudUl0ZW1EYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29udGV4dE1l
bnVJdGVtRGF0YS5jcHAKQEAgLTEwNCwxNCArMTA0LDE0IEBAIHZvaWQgV2ViQ29udGV4dE1lbnVJ
dGVtRGF0YTo6c2V0VXNlckRhdGEoQVBJT2JqZWN0KiB1c2VyRGF0YSkKICAgICBtX3VzZXJEYXRh
ID0gdXNlckRhdGE7CiB9CiAgICAgCi12b2lkIFdlYkNvbnRleHRNZW51SXRlbURhdGE6OmVuY29k
ZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Cit2b2lkIFdlYkNvbnRl
eHRNZW51SXRlbURhdGE6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIp
IGNvbnN0CiB7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlRW51bShtX3R5cGUpOwotICAgIGVuY29kZXIt
PmVuY29kZUVudW0obV9hY3Rpb24pOwotICAgIGVuY29kZXItPmVuY29kZShtX3RpdGxlKTsKLSAg
ICBlbmNvZGVyLT5lbmNvZGUobV9jaGVja2VkKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobV9lbmFi
bGVkKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobV9zdWJtZW51KTsKKyAgICBlbmNvZGVyLmVuY29k
ZUVudW0obV90eXBlKTsKKyAgICBlbmNvZGVyLmVuY29kZUVudW0obV9hY3Rpb24pOworICAgIGVu
Y29kZXIuZW5jb2RlKG1fdGl0bGUpOworICAgIGVuY29kZXIuZW5jb2RlKG1fY2hlY2tlZCk7Cisg
ICAgZW5jb2Rlci5lbmNvZGUobV9lbmFibGVkKTsKKyAgICBlbmNvZGVyLmVuY29kZShtX3N1Ym1l
bnUpOwogfQogCiBib29sIFdlYkNvbnRleHRNZW51SXRlbURhdGE6OmRlY29kZShDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqIGRlY29kZXIsIFdlYkNvbnRleHRNZW51SXRlbURhdGEmIGl0ZW0pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5o
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvbnRleHRNZW51SXRlbURhdGEuaAppbmRleCAx
MDZiZGYwMTYwOGY5YmVhYjNkNzg4NjYwMjBjOTQ3NzA3ODIxY2ZiLi45MjEyZTI4MTMyMjFhZjI2
ZTQ3ZjVlMTk2Njc3MDUzMmM3NDNhNTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJDb250ZXh0TWVudUl0ZW1EYXRhLmgKQEAgLTYzLDcgKzYzLDcgQEAgcHVibGljOgogICAgIEFQ
SU9iamVjdCogdXNlckRhdGEoKSBjb25zdDsKICAgICB2b2lkIHNldFVzZXJEYXRhKEFQSU9iamVj
dCopOwogICAgIAotICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciopIGNv
bnN0OworICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0Owog
ICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBXZWJDb250
ZXh0TWVudUl0ZW1EYXRhJik7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvV2ViRXZlbnQuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkV2ZW50LmNw
cAppbmRleCA3MGJmZmEyYzFlODE3YWIzMmZhOWUxNzNmNGIxODJkNDg4MWYwNmY4Li5kODZjZjgz
ZTE5YjIzNGRiMzA5Y2U0MWVlY2E1ZmY4ZjFlMjY3YmIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJF
dmVudC5jcHAKQEAgLTQ2LDExICs0NiwxMSBAQCBXZWJFdmVudDo6V2ViRXZlbnQoVHlwZSB0eXBl
LCBNb2RpZmllcnMgbW9kaWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKQogewogfQogCi12b2lkIFdl
YkV2ZW50OjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAor
dm9pZCBXZWJFdmVudDo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2Rlcikg
Y29uc3QKIHsKLSAgICBlbmNvZGVyLT5lbmNvZGUobV90eXBlKTsKLSAgICBlbmNvZGVyLT5lbmNv
ZGUobV9tb2RpZmllcnMpOwotICAgIGVuY29kZXItPmVuY29kZShtX3RpbWVzdGFtcCk7CisgICAg
ZW5jb2Rlci5lbmNvZGUobV90eXBlKTsKKyAgICBlbmNvZGVyLmVuY29kZShtX21vZGlmaWVycyk7
CisgICAgZW5jb2Rlci5lbmNvZGUobV90aW1lc3RhbXApOwogfQogCiBib29sIFdlYkV2ZW50Ojpk
ZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBXZWJFdmVudCYgcmVzdWx0
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkV2ZW50LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViRXZlbnQuaAppbmRleCA4MTExZDUxNjA1NGM4OGM1ZTMxOGFjYWRj
YTY4M2Q4MjI1NDMzOGI4Li45NjgxZGMxNjBkZWY1OWExYjZhN2U0YzI5Yjk5ZDA4ZDVhMDhjYjE5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViRXZlbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViRXZlbnQuaApAQCAtMTAzLDcgKzEwMyw3IEBAIHByb3RlY3Rl
ZDoKIAogICAgIFdlYkV2ZW50KFR5cGUsIE1vZGlmaWVycywgZG91YmxlIHRpbWVzdGFtcCk7CiAK
LSAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqKSBjb25zdDsKKyAgICB2
b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKICAgICBzdGF0aWMg
Ym9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgV2ViRXZlbnQmKTsKIAogcHJp
dmF0ZToKQEAgLTE0MCw3ICsxNDAsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBkaWRBY3RpdmF0ZVdl
YlZpZXcoKSBjb25zdCB7IHJldHVybiBtX2RpZEFjdGl2YXRlV2ViVmlldzsgfQogI2VuZGlmCiAK
LSAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqKSBjb25zdDsKKyAgICB2
b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKICAgICBzdGF0aWMg
Ym9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgV2ViTW91c2VFdmVudCYpOwog
CiBwcml2YXRlOgpAQCAtMTk5LDcgKzE5OSw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBXZWJDb3Jl
OjpGbG9hdFNpemUmIHVuYWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0YSgpIGNvbnN0IHsgcmV0dXJu
IG1fdW5hY2NlbGVyYXRlZFNjcm9sbGluZ0RlbHRhOyB9CiAjZW5kaWYKIAotICAgIHZvaWQgZW5j
b2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciopIGNvbnN0OworICAgIHZvaWQgZW5jb2RlKENv
cmVJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBXZWJXaGVlbEV2ZW50Jik7CiAKIHByaXZhdGU6CkBA
IC0yMzcsNyArMjM3LDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNLZXlwYWQoKSBjb25zdCB7IHJl
dHVybiBtX2lzS2V5cGFkOyB9CiAgICAgYm9vbCBpc1N5c3RlbUtleSgpIGNvbnN0IHsgcmV0dXJu
IG1faXNTeXN0ZW1LZXk7IH0KIAotICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5j
b2RlciopIGNvbnN0OworICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYp
IGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
LCBXZWJLZXlib2FyZEV2ZW50Jik7CiAKICAgICBzdGF0aWMgYm9vbCBpc0tleWJvYXJkRXZlbnRU
eXBlKFR5cGUpOwpAQCAtMjY4LDcgKzI2OCw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBXZWJDb3Jl
OjpJbnRTaXplIGFyZWEoKSBjb25zdCB7IHJldHVybiBtX2FyZWE7IH0KICAgICBjb25zdCBXZWJD
b3JlOjpGbG9hdFBvaW50IGRlbHRhKCkgY29uc3QgeyByZXR1cm4gbV9kZWx0YTsgfQogCi0gICAg
dm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKikgY29uc3Q7CisgICAgdm9pZCBl
bmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wg
ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIFdlYkdlc3R1cmVFdmVudCYpOwogCiBw
cml2YXRlOgpAQCAtMzEzLDcgKzMxMyw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0U3RhdGUo
VG91Y2hQb2ludFN0YXRlIHN0YXRlKSB7IG1fc3RhdGUgPSBzdGF0ZTsgfQogCi0gICAgdm9pZCBl
bmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKikgY29uc3Q7CisgICAgdm9pZCBlbmNvZGUo
Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2Rl
KENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIFdlYlBsYXRmb3JtVG91Y2hQb2ludCYpOwogCiBw
cml2YXRlOgpAQCAtMzM2LDcgKzMzNiw3IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IFZlY3RvcjxX
ZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+JiB0b3VjaFBvaW50cygpIGNvbnN0IHsgcmV0dXJuIG1fdG91
Y2hQb2ludHM7IH0KIAotICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlciop
IGNvbnN0OworICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0
OwogICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBXZWJU
b3VjaEV2ZW50Jik7CiAgIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJHZW9sb2NhdGlvblBvc2l0aW9uLmNwcAppbmRleCA3N2Q1MjRjZjRjNDc3YThkMTBmNDEwNzRk
MWUxNTg3MTVkMGJkOTA1Li5mZWFkMDBlODdlMTE4ZGVhNDFlMTA1MjAyNzY0NTFkNmJmNzFlY2Vm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViR2VvbG9jYXRpb25Qb3NpdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24u
Y3BwCkBAIC01MSw5ICs1MSw5IEBAIFdlYkdlb2xvY2F0aW9uUG9zaXRpb246On5XZWJHZW9sb2Nh
dGlvblBvc2l0aW9uKCkKIHsKIH0KIAotdm9pZCBXZWJHZW9sb2NhdGlvblBvc2l0aW9uOjpEYXRh
OjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAordm9pZCBX
ZWJHZW9sb2NhdGlvblBvc2l0aW9uOjpEYXRhOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNv
ZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIENvcmVJUEM6OlNpbXBsZUFyZ3VtZW50Q29kZXI8
V2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6RGF0YT46OmVuY29kZShlbmNvZGVyLCAqdGhpcyk7Cisg
ICAgQ29yZUlQQzo6U2ltcGxlQXJndW1lbnRDb2RlcjxXZWJHZW9sb2NhdGlvblBvc2l0aW9uOjpE
YXRhPjo6ZW5jb2RlKCZlbmNvZGVyLCAqdGhpcyk7CiB9CiAKIGJvb2wgV2ViR2VvbG9jYXRpb25Q
b3NpdGlvbjo6RGF0YTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2Rlciwg
RGF0YSYgZGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJHZW9sb2Nh
dGlvblBvc2l0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViR2VvbG9jYXRpb25Qb3Np
dGlvbi5oCmluZGV4IGE4N2JiMDYyZDFjYjM1M2I5ZGRlYTRkNzhiMTlkMTUzM2ExNzAxOWEuLjUy
ZWJlZDk5MjNiYTczNmY2MWZmODkxYjcwNDY5NjNhMTQxZDA5NGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmgKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uaApAQCAtMzgsNyArMzgsNyBAQCBw
dWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5cGVHZW9sb2NhdGlvblBv
c2l0aW9uOwogCiAgICAgc3RydWN0IERhdGEgewotICAgICAgICB2b2lkIGVuY29kZShDb3JlSVBD
OjpBcmd1bWVudEVuY29kZXIqKSBjb25zdDsKKyAgICAgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6
QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CiAgICAgICAgIHN0YXRpYyBib29sIGRlY29kZShDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXIqLCBEYXRhJik7CiAKICAgICAgICAgZG91YmxlIHRpbWVzdGFt
cDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJHZXN0dXJlRXZlbnQuY3Bw
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkdlc3R1cmVFdmVudC5jcHAKaW5kZXggZDQ5MWE1
NzA3YWRkY2U3NWJlMzQwZWFlOTUzNDQyMDFiNDE2NDQwYy4uZTMxNzhjZGNmYjhmNDAwYTJhZmQ4
NzRjMjlhZWFjZDRkMTlhMmJjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
Ykdlc3R1cmVFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkdlc3R1cmVF
dmVudC5jcHAKQEAgLTUzLDE0ICs1MywxNCBAQCBXZWJHZXN0dXJlRXZlbnQ6OldlYkdlc3R1cmVF
dmVudChUeXBlIHR5cGUsIGNvbnN0IEludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgSW50UAogICAg
IEFTU0VSVChpc0dlc3R1cmVFdmVudFR5cGUodHlwZSkpOwogfQogCi12b2lkIFdlYkdlc3R1cmVF
dmVudDo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKK3Zv
aWQgV2ViR2VzdHVyZUV2ZW50OjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAogewogICAgIFdlYkV2ZW50OjplbmNvZGUoZW5jb2Rlcik7CiAKLSAgICBlbmNv
ZGVyLT5lbmNvZGUobV9wb3NpdGlvbik7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG1fZ2xvYmFsUG9z
aXRpb24pOwotICAgIGVuY29kZXItPmVuY29kZShtX2FyZWEpOwotICAgIGVuY29kZXItPmVuY29k
ZShtX2RlbHRhKTsKKyAgICBlbmNvZGVyLmVuY29kZShtX3Bvc2l0aW9uKTsKKyAgICBlbmNvZGVy
LmVuY29kZShtX2dsb2JhbFBvc2l0aW9uKTsKKyAgICBlbmNvZGVyLmVuY29kZShtX2FyZWEpOwor
ICAgIGVuY29kZXIuZW5jb2RlKG1fZGVsdGEpOwogfQogCiBib29sIFdlYkdlc3R1cmVFdmVudDo6
ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgV2ViR2VzdHVyZUV2ZW50
JiB0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkhpdFRlc3RSZXN1bHQu
Y3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkhpdFRlc3RSZXN1bHQuY3BwCmluZGV4IDc5
OWVkNTIyMGRhMGY2Njg3ZTkxNTc5MjJlMWEwOWI2MDZiOTE1YjAuLmY4MWYxMWQzOTEyOWE1ZDkw
ZWYxZWRjOTQ1YTQ0MTAyMTg5NGEzNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJIaXRUZXN0UmVzdWx0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViSGl0
VGVzdFJlc3VsdC5jcHAKQEAgLTM0LDE2ICszNCwxNiBAQCBQYXNzUmVmUHRyPFdlYkhpdFRlc3RS
ZXN1bHQ+IFdlYkhpdFRlc3RSZXN1bHQ6OmNyZWF0ZShjb25zdCBXZWJIaXRUZXN0UmVzdWx0OjpE
YQogICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViSGl0VGVzdFJlc3VsdChoaXRUZXN0UmVzdWx0
RGF0YSkpOwogfQogCi12b2lkIFdlYkhpdFRlc3RSZXN1bHQ6OkRhdGE6OmVuY29kZShDb3JlSVBD
OjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Cit2b2lkIFdlYkhpdFRlc3RSZXN1bHQ6
OkRhdGE6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7
Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGFic29sdXRlSW1hZ2VVUkwpOwotICAgIGVuY29kZXItPmVu
Y29kZShhYnNvbHV0ZVBERlVSTCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGFic29sdXRlTGlua1VS
TCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGFic29sdXRlTWVkaWFVUkwpOwotICAgIGVuY29kZXIt
PmVuY29kZShsaW5rTGFiZWwpOwotICAgIGVuY29kZXItPmVuY29kZShsaW5rVGl0bGUpOwotICAg
IGVuY29kZXItPmVuY29kZShpc0NvbnRlbnRFZGl0YWJsZSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2Rl
KGVsZW1lbnRCb3VuZGluZ0JveCk7CisgICAgZW5jb2Rlci5lbmNvZGUoYWJzb2x1dGVJbWFnZVVS
TCk7CisgICAgZW5jb2Rlci5lbmNvZGUoYWJzb2x1dGVQREZVUkwpOworICAgIGVuY29kZXIuZW5j
b2RlKGFic29sdXRlTGlua1VSTCk7CisgICAgZW5jb2Rlci5lbmNvZGUoYWJzb2x1dGVNZWRpYVVS
TCk7CisgICAgZW5jb2Rlci5lbmNvZGUobGlua0xhYmVsKTsKKyAgICBlbmNvZGVyLmVuY29kZShs
aW5rVGl0bGUpOworICAgIGVuY29kZXIuZW5jb2RlKGlzQ29udGVudEVkaXRhYmxlKTsKKyAgICBl
bmNvZGVyLmVuY29kZShlbGVtZW50Qm91bmRpbmdCb3gpOwogfQogCiBib29sIFdlYkhpdFRlc3RS
ZXN1bHQ6OkRhdGE6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIFdl
YkhpdFRlc3RSZXN1bHQ6OkRhdGEmIGhpdFRlc3RSZXN1bHREYXRhKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYkhpdFRlc3RSZXN1bHQuaCBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJIaXRUZXN0UmVzdWx0LmgKaW5kZXggZTUzYTVjN2UyNjU3N2U2YzNjNTc4OTFjYjYw
ODMxZGY1NThkMDM5Ni4uNzM5MDUwZTExYmZmMzQ0YzA4ZjZkNmM4NzQ4MTY2NzkzNzFmOGMyOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkhpdFRlc3RSZXN1bHQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViSGl0VGVzdFJlc3VsdC5oCkBAIC04Niw3ICs4Niw3
IEBAIHB1YmxpYzoKICAgICAgICAgewogICAgICAgICB9CiAKLSAgICAgICAgdm9pZCBlbmNvZGUo
Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKikgY29uc3Q7CisgICAgICAgIHZvaWQgZW5jb2RlKENv
cmVJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OwogICAgICAgICBzdGF0aWMgYm9vbCBkZWNv
ZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgV2ViSGl0VGVzdFJlc3VsdDo6RGF0YSYpOwog
ICAgIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJLZXlib2FyZEV2
ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJLZXlib2FyZEV2ZW50LmNwcAppbmRl
eCAxMTliODY0MTY5OGIyMmZjNjE5NzE3OWJlODczNGRkNTA1NjNkMjZlLi5kODFjODYzNjQ0MTkz
NjE5NjExOGU3NzhmYmQzMGJhZjZkZWNkNjExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViS2V5Ym9hcmRFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YktleWJvYXJkRXZlbnQuY3BwCkBAIC00NSwxOSArNDUsMTkgQEAgV2ViS2V5Ym9hcmRFdmVudDo6
V2ViS2V5Ym9hcmRFdmVudChUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3Ry
aW5nJgogICAgIEFTU0VSVChpc0tleWJvYXJkRXZlbnRUeXBlKHR5cGUpKTsKIH0KIAotdm9pZCBX
ZWJLZXlib2FyZEV2ZW50OjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVy
KSBjb25zdAordm9pZCBXZWJLZXlib2FyZEV2ZW50OjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewogICAgIFdlYkV2ZW50OjplbmNvZGUoZW5jb2Rlcik7
CiAKLSAgICBlbmNvZGVyLT5lbmNvZGUobV90ZXh0KTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobV91
bm1vZGlmaWVkVGV4dCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG1fa2V5SWRlbnRpZmllcik7Ci0g
ICAgZW5jb2Rlci0+ZW5jb2RlKG1fd2luZG93c1ZpcnR1YWxLZXlDb2RlKTsKLSAgICBlbmNvZGVy
LT5lbmNvZGUobV9uYXRpdmVWaXJ0dWFsS2V5Q29kZSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG1f
bWFjQ2hhckNvZGUpOwotICAgIGVuY29kZXItPmVuY29kZShtX2lzQXV0b1JlcGVhdCk7Ci0gICAg
ZW5jb2Rlci0+ZW5jb2RlKG1faXNLZXlwYWQpOwotICAgIGVuY29kZXItPmVuY29kZShtX2lzU3lz
dGVtS2V5KTsKKyAgICBlbmNvZGVyLmVuY29kZShtX3RleHQpOworICAgIGVuY29kZXIuZW5jb2Rl
KG1fdW5tb2RpZmllZFRleHQpOworICAgIGVuY29kZXIuZW5jb2RlKG1fa2V5SWRlbnRpZmllcik7
CisgICAgZW5jb2Rlci5lbmNvZGUobV93aW5kb3dzVmlydHVhbEtleUNvZGUpOworICAgIGVuY29k
ZXIuZW5jb2RlKG1fbmF0aXZlVmlydHVhbEtleUNvZGUpOworICAgIGVuY29kZXIuZW5jb2RlKG1f
bWFjQ2hhckNvZGUpOworICAgIGVuY29kZXIuZW5jb2RlKG1faXNBdXRvUmVwZWF0KTsKKyAgICBl
bmNvZGVyLmVuY29kZShtX2lzS2V5cGFkKTsKKyAgICBlbmNvZGVyLmVuY29kZShtX2lzU3lzdGVt
S2V5KTsKIH0KIAogYm9vbCBXZWJLZXlib2FyZEV2ZW50OjpkZWNvZGUoQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKiBkZWNvZGVyLCBXZWJLZXlib2FyZEV2ZW50JiByZXN1bHQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTW91c2VFdmVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvV2ViTW91c2VFdmVudC5jcHAKaW5kZXggMzJlNmFjMWYzMmZjMWJjMzE2MmNhNTQw
N2QyMTI0MDdjYzVmNzcyZC4uNDczZGU0MDdjMDg5ZTFjYTBhNjUxNTBkN2FlNDU2MzIzZjk5Zjc1
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYk1vdXNlRXZlbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJNb3VzZUV2ZW50LmNwcApAQCAtNzgsMjAgKzc4
LDIwIEBAIFdlYk1vdXNlRXZlbnQ6OldlYk1vdXNlRXZlbnQoVHlwZSB0eXBlLCBCdXR0b24gYnV0
dG9uLCBjb25zdCBJbnRQb2ludCYgcG9zaXRpb24sCiB9CiAjZW5kaWYKIAotdm9pZCBXZWJNb3Vz
ZUV2ZW50OjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAor
dm9pZCBXZWJNb3VzZUV2ZW50OjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAogewogICAgIFdlYkV2ZW50OjplbmNvZGUoZW5jb2Rlcik7CiAKLSAgICBlbmNv
ZGVyLT5lbmNvZGUobV9idXR0b24pOwotICAgIGVuY29kZXItPmVuY29kZShtX3Bvc2l0aW9uKTsK
LSAgICBlbmNvZGVyLT5lbmNvZGUobV9nbG9iYWxQb3NpdGlvbik7Ci0gICAgZW5jb2Rlci0+ZW5j
b2RlKG1fZGVsdGFYKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobV9kZWx0YVkpOwotICAgIGVuY29k
ZXItPmVuY29kZShtX2RlbHRhWik7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG1fY2xpY2tDb3VudCk7
CisgICAgZW5jb2Rlci5lbmNvZGUobV9idXR0b24pOworICAgIGVuY29kZXIuZW5jb2RlKG1fcG9z
aXRpb24pOworICAgIGVuY29kZXIuZW5jb2RlKG1fZ2xvYmFsUG9zaXRpb24pOworICAgIGVuY29k
ZXIuZW5jb2RlKG1fZGVsdGFYKTsKKyAgICBlbmNvZGVyLmVuY29kZShtX2RlbHRhWSk7CisgICAg
ZW5jb2Rlci5lbmNvZGUobV9kZWx0YVopOworICAgIGVuY29kZXIuZW5jb2RlKG1fY2xpY2tDb3Vu
dCk7CiAKICNpZiBQTEFURk9STShXSU4pCi0gICAgZW5jb2Rlci0+ZW5jb2RlKG1fZGlkQWN0aXZh
dGVXZWJWaWV3KTsKKyAgICBlbmNvZGVyLmVuY29kZShtX2RpZEFjdGl2YXRlV2ViVmlldyk7CiAj
ZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYk5hdmlnYXRp
b25EYXRhU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJOYXZpZ2F0aW9uRGF0YVN0
b3JlLmgKaW5kZXggOTQ3ZDA5MGM5ZTNkNmZmMTRjYTA2NDYwMzFiYzA3MTAxOWUyMGExOC4uOWNk
MTBmNzllOTBhOTU0YjFjNTQzZjllOWRiYzVmN2ZkZjNjZGI3ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYk5hdmlnYXRpb25EYXRhU3RvcmUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViTmF2aWdhdGlvbkRhdGFTdG9yZS5oCkBAIC0zNSwxMSArMzUsMTEgQEAK
IG5hbWVzcGFjZSBXZWJLaXQgewogCiBzdHJ1Y3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZSB7Ci0g
ICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAor
ICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QK
ICAgICB7Ci0gICAgICAgIGVuY29kZXItPmVuY29kZSh1cmwpOwotICAgICAgICBlbmNvZGVyLT5l
bmNvZGUodGl0bGUpOwotICAgICAgICBlbmNvZGVyLT5lbmNvZGUob3JpZ2luYWxSZXF1ZXN0KTsK
KyAgICAgICAgZW5jb2Rlci5lbmNvZGUodXJsKTsKKyAgICAgICAgZW5jb2Rlci5lbmNvZGUodGl0
bGUpOworICAgICAgICBlbmNvZGVyLmVuY29kZShvcmlnaW5hbFJlcXVlc3QpOwogICAgIH0KIAog
ICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIs
IFdlYk5hdmlnYXRpb25EYXRhU3RvcmUmIHN0b3JlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IDI3ZDU1NDM0YTZmYWE3
NTA1ZWI3ZTNiMTIxYjQ5ZThjMWE1NjI4ZWUuLjE3ZGViZThkMTE2ODcyZDNkZjlkMGU2ZTAyNDQ5
Yzc1OTU5ZjYyODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3Jl
YXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNy
ZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTMwLDQyICszMCw0MiBAQAogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAotdm9pZCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoQ29yZUlQQzo6
QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAordm9pZCBXZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAog
ewotICAgIGVuY29kZXItPmVuY29kZSh2aWV3U2l6ZSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGlz
QWN0aXZlKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoaXNGb2N1c2VkKTsKLSAgICBlbmNvZGVyLT5l
bmNvZGUoaXNWaXNpYmxlKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoaXNJbldpbmRvdyk7CisgICAg
ZW5jb2Rlci5lbmNvZGUodmlld1NpemUpOworICAgIGVuY29kZXIuZW5jb2RlKGlzQWN0aXZlKTsK
KyAgICBlbmNvZGVyLmVuY29kZShpc0ZvY3VzZWQpOworICAgIGVuY29kZXIuZW5jb2RlKGlzVmlz
aWJsZSk7CisgICAgZW5jb2Rlci5lbmNvZGUoaXNJbldpbmRvdyk7CiAKLSAgICBlbmNvZGVyLT5l
bmNvZGUoc3RvcmUpOwotICAgIGVuY29kZXItPmVuY29kZUVudW0oZHJhd2luZ0FyZWFUeXBlKTsK
LSAgICBlbmNvZGVyLT5lbmNvZGUocGFnZUdyb3VwRGF0YSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2Rl
KGRyYXdzQmFja2dyb3VuZCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGRyYXdzVHJhbnNwYXJlbnRC
YWNrZ3JvdW5kKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoYXJlTWVtb3J5Q2FjaGVDbGllbnRDYWxs
c0VuYWJsZWQpOwotICAgIGVuY29kZXItPmVuY29kZSh1c2VGaXhlZExheW91dCk7Ci0gICAgZW5j
b2Rlci0+ZW5jb2RlKGZpeGVkTGF5b3V0U2l6ZSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlRW51bShw
YWdpbmF0aW9uTW9kZSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHBhZ2luYXRpb25CZWhhdmVzTGlr
ZUNvbHVtbnMpOwotICAgIGVuY29kZXItPmVuY29kZShwYWdlTGVuZ3RoKTsKLSAgICBlbmNvZGVy
LT5lbmNvZGUoZ2FwQmV0d2VlblBhZ2VzKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUodXNlckFnZW50
KTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoc2Vzc2lvblN0YXRlKTsKLSAgICBlbmNvZGVyLT5lbmNv
ZGUoaGlnaGVzdFVzZWRCYWNrRm9yd2FyZEl0ZW1JRCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGNh
blJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGNhblJ1
bk1vZGFsKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoZGV2aWNlU2NhbGVGYWN0b3IpOwotICAgIGVu
Y29kZXItPmVuY29kZShtZWRpYVZvbHVtZSk7CisgICAgZW5jb2Rlci5lbmNvZGUoc3RvcmUpOwor
ICAgIGVuY29kZXIuZW5jb2RlRW51bShkcmF3aW5nQXJlYVR5cGUpOworICAgIGVuY29kZXIuZW5j
b2RlKHBhZ2VHcm91cERhdGEpOworICAgIGVuY29kZXIuZW5jb2RlKGRyYXdzQmFja2dyb3VuZCk7
CisgICAgZW5jb2Rlci5lbmNvZGUoZHJhd3NUcmFuc3BhcmVudEJhY2tncm91bmQpOworICAgIGVu
Y29kZXIuZW5jb2RlKGFyZU1lbW9yeUNhY2hlQ2xpZW50Q2FsbHNFbmFibGVkKTsKKyAgICBlbmNv
ZGVyLmVuY29kZSh1c2VGaXhlZExheW91dCk7CisgICAgZW5jb2Rlci5lbmNvZGUoZml4ZWRMYXlv
dXRTaXplKTsKKyAgICBlbmNvZGVyLmVuY29kZUVudW0ocGFnaW5hdGlvbk1vZGUpOworICAgIGVu
Y29kZXIuZW5jb2RlKHBhZ2luYXRpb25CZWhhdmVzTGlrZUNvbHVtbnMpOworICAgIGVuY29kZXIu
ZW5jb2RlKHBhZ2VMZW5ndGgpOworICAgIGVuY29kZXIuZW5jb2RlKGdhcEJldHdlZW5QYWdlcyk7
CisgICAgZW5jb2Rlci5lbmNvZGUodXNlckFnZW50KTsKKyAgICBlbmNvZGVyLmVuY29kZShzZXNz
aW9uU3RhdGUpOworICAgIGVuY29kZXIuZW5jb2RlKGhpZ2hlc3RVc2VkQmFja0ZvcndhcmRJdGVt
SUQpOworICAgIGVuY29kZXIuZW5jb2RlKGNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCk7
CisgICAgZW5jb2Rlci5lbmNvZGUoY2FuUnVuTW9kYWwpOworICAgIGVuY29kZXIuZW5jb2RlKGRl
dmljZVNjYWxlRmFjdG9yKTsKKyAgICBlbmNvZGVyLmVuY29kZShtZWRpYVZvbHVtZSk7CiAKICNp
ZiBQTEFURk9STShNQUMpCi0gICAgZW5jb2Rlci0+ZW5jb2RlKGlzU21hcnRJbnNlcnREZWxldGVF
bmFibGVkKTsKLSAgICBlbmNvZGVyLT5lbmNvZGVFbnVtKGxheWVySG9zdGluZ01vZGUpOwotICAg
IGVuY29kZXItPmVuY29kZShjb2xvclNwYWNlKTsKKyAgICBlbmNvZGVyLmVuY29kZShpc1NtYXJ0
SW5zZXJ0RGVsZXRlRW5hYmxlZCk7CisgICAgZW5jb2Rlci5lbmNvZGVFbnVtKGxheWVySG9zdGlu
Z01vZGUpOworICAgIGVuY29kZXIuZW5jb2RlKGNvbG9yU3BhY2UpOwogI2VuZGlmCiAKICNpZiBQ
TEFURk9STShXSU4pCi0gICAgZW5jb2Rlci0+ZW5jb2RlKHJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0
X3Q+KG5hdGl2ZVdpbmRvdykpOworICAgIGVuY29kZXIuZW5jb2RlKHJlaW50ZXJwcmV0X2Nhc3Q8
dWludDY0X3Q+KG5hdGl2ZVdpbmRvdykpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IDA4YzNiY2QyMTRl
Y2M5MDY5NjdhYTM5ZWYxOGJkMDE2OWYwMmQ2OTkuLjIxNGMwNGM1MDQ4MmVjYTg5MDVjM2QxOWQ3
MTdhZjBmODk5MWU4NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdl
Q3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VD
cmVhdGlvblBhcmFtZXRlcnMuaApAQCAtNDUsNyArNDUsNyBAQCBuYW1lc3BhY2UgQ29yZUlQQyB7
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMg
ewotICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciopIGNvbnN0OworICAg
IHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRp
YyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBXZWJQYWdlQ3JlYXRpb25Q
YXJhbWV0ZXJzJik7CiAKICAgICBXZWJDb3JlOjpJbnRTaXplIHZpZXdTaXplOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VHcm91cERhdGEuY3BwIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYlBhZ2VHcm91cERhdGEuY3BwCmluZGV4IGMyMjdkODU5NjZkODc4YjM4
MThiOWZhNDEwNzk2MzQzZmZmNjFlZTIuLmM1ZDYwMzQ4OTNlNWMxYmJmMWU4ODU4Y2JjNDhmNGUz
OWE1NjMxOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlR3JvdXBE
YXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUdyb3VwRGF0YS5jcHAK
QEAgLTMwLDE0ICszMCwxNCBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdm9pZCBXZWJQYWdl
R3JvdXBEYXRhOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25z
dAordm9pZCBXZWJQYWdlR3JvdXBEYXRhOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVy
JiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXItPmVuY29kZShpZGVudGlmZXIpOwotICAg
IGVuY29kZXItPmVuY29kZShwYWdlR3JvdXBJRCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHZpc2li
bGVUb0luamVjdGVkQnVuZGxlKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUodmlzaWJsZVRvSGlzdG9y
eUNsaWVudCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHVzZXJTdHlsZVNoZWV0cyk7Ci0gICAgZW5j
b2Rlci0+ZW5jb2RlKHVzZXJTY3JpcHRzKTsKKyAgICBlbmNvZGVyLmVuY29kZShpZGVudGlmZXIp
OworICAgIGVuY29kZXIuZW5jb2RlKHBhZ2VHcm91cElEKTsKKyAgICBlbmNvZGVyLmVuY29kZSh2
aXNpYmxlVG9JbmplY3RlZEJ1bmRsZSk7CisgICAgZW5jb2Rlci5lbmNvZGUodmlzaWJsZVRvSGlz
dG9yeUNsaWVudCk7CisgICAgZW5jb2Rlci5lbmNvZGUodXNlclN0eWxlU2hlZXRzKTsKKyAgICBl
bmNvZGVyLmVuY29kZSh1c2VyU2NyaXB0cyk7CiB9CiAKIGJvb2wgV2ViUGFnZUdyb3VwRGF0YTo6
ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgV2ViUGFnZUdyb3VwRGF0
YSYgZGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlR3JvdXBE
YXRhLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUdyb3VwRGF0YS5oCmluZGV4IGI5
YWEwZjhmNWY1YTBiMzk5MmU5OGI0NTU0NjBmYzEyY2VmZDg5NDQuLjRkYmZkMmMzMTY0ZTcwYmM2
ZjBiNjU2ZGRiNzM0ODUwZjdhZGIyNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJQYWdlR3JvdXBEYXRhLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VH
cm91cERhdGEuaApAQCAtMzksNyArMzksNyBAQCBjbGFzcyBBcmd1bWVudEVuY29kZXI7CiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogc3RydWN0IFdlYlBhZ2VHcm91cERhdGEgewotICAgIHZvaWQgZW5j
b2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciopIGNvbnN0OworICAgIHZvaWQgZW5jb2RlKENv
cmVJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBXZWJQYWdlR3JvdXBEYXRhJik7CiAKICAgICBTdHJp
bmcgaWRlbnRpZmVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBvcHVw
SXRlbS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUG9wdXBJdGVtLmNwcAppbmRleCAw
N2EyOWU0MTY5NjYyYzA4ZmQwYWMyZTYwOTEwNWZiNTUxNTM4ZDM1Li42NmI3ODU2NjkwNTdlNjgz
ZjU4MWVmYWJiNjNjODk4MDFiNTc5NWU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViUG9wdXBJdGVtLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUG9wdXBJ
dGVtLmNwcApAQCAtNjYsMTcgKzY2LDE3IEBAIFdlYlBvcHVwSXRlbTo6V2ViUG9wdXBJdGVtKFR5
cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBUZXh0RGlyZWN0aW9uIHRleHREaXJlCiB7CiB9
CiAKLXZvaWQgV2ViUG9wdXBJdGVtOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBl
bmNvZGVyKSBjb25zdAordm9pZCBXZWJQb3B1cEl0ZW06OmVuY29kZShDb3JlSVBDOjpBcmd1bWVu
dEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlRW51bShtX3R5
cGUpOwotICAgIGVuY29kZXItPmVuY29kZShtX3RleHQpOwotICAgIGVuY29kZXItPmVuY29kZUVu
dW0obV90ZXh0RGlyZWN0aW9uKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobV9oYXNUZXh0RGlyZWN0
aW9uT3ZlcnJpZGUpOwotICAgIGVuY29kZXItPmVuY29kZShtX3Rvb2xUaXApOwotICAgIGVuY29k
ZXItPmVuY29kZShtX2FjY2Vzc2liaWxpdHlUZXh0KTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobV9p
c0VuYWJsZWQpOwotICAgIGVuY29kZXItPmVuY29kZShtX2lzTGFiZWwpOwotICAgIGVuY29kZXIt
PmVuY29kZShtX2lzU2VsZWN0ZWQpOworICAgIGVuY29kZXIuZW5jb2RlRW51bShtX3R5cGUpOwor
ICAgIGVuY29kZXIuZW5jb2RlKG1fdGV4dCk7CisgICAgZW5jb2Rlci5lbmNvZGVFbnVtKG1fdGV4
dERpcmVjdGlvbik7CisgICAgZW5jb2Rlci5lbmNvZGUobV9oYXNUZXh0RGlyZWN0aW9uT3ZlcnJp
ZGUpOworICAgIGVuY29kZXIuZW5jb2RlKG1fdG9vbFRpcCk7CisgICAgZW5jb2Rlci5lbmNvZGUo
bV9hY2Nlc3NpYmlsaXR5VGV4dCk7CisgICAgZW5jb2Rlci5lbmNvZGUobV9pc0VuYWJsZWQpOwor
ICAgIGVuY29kZXIuZW5jb2RlKG1faXNMYWJlbCk7CisgICAgZW5jb2Rlci5lbmNvZGUobV9pc1Nl
bGVjdGVkKTsKIH0KIAogYm9vbCBXZWJQb3B1cEl0ZW06OmRlY29kZShDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqIGRlY29kZXIsIFdlYlBvcHVwSXRlbSYgaXRlbSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJQb3B1cEl0ZW0uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJQb3B1cEl0ZW0uaAppbmRleCBkODU4NGJlYTUzMjA5YzNjNzUxNWM2YmJhZjNiMDc5OGEwYjJm
ZDRlLi42ZjhlY2IxMDE2YTcwZjJmZmM4NDVjNTcxZjgxMDI2ZjI5NzNkNjViIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUG9wdXBJdGVtLmgKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYlBvcHVwSXRlbS5oCkBAIC00Niw3ICs0Niw3IEBAIHN0cnVjdCBXZWJQb3B1
cEl0ZW0gewogICAgIFdlYlBvcHVwSXRlbShUeXBlKTsKICAgICBXZWJQb3B1cEl0ZW0oVHlwZSwg
Y29uc3QgU3RyaW5nJiB0ZXh0LCBXZWJDb3JlOjpUZXh0RGlyZWN0aW9uLCBib29sIGhhc1RleHRE
aXJlY3Rpb25PdmVycmlkZSwgY29uc3QgU3RyaW5nJiB0b29sVGlwLCBjb25zdCBTdHJpbmcmIGFj
Y2Vzc2liaWxpdHlUZXh0LCBib29sIGlzRW5hYmxlZCwgYm9vbCBpc0xhYmVsLCBib29sIGlzU2Vs
ZWN0ZWQpOwogCi0gICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKikgY29u
c3Q7CisgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CiAg
ICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIFdlYlBvcHVw
SXRlbSYpOwogCiAgICAgVHlwZSBtX3R5cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
UHJlZmVyZW5jZXNTdG9yZS5jcHAKaW5kZXggNzQwYTk3MWFhYzQyYjUzZDJlMjNkM2YzYTk5ZDNm
NTZhMGQ0ZmI5My4uYTRmZjU2ZDllYzIzNzZlOWQ2YWI2MjE2ZmZiYjk3Y2U4NjYyN2QwOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmNwcApAQCAtNTks
MTMgKzU5LDEzIEBAIFdlYlByZWZlcmVuY2VzU3RvcmU6OldlYlByZWZlcmVuY2VzU3RvcmUoKQog
ewogfQogCi12b2lkIFdlYlByZWZlcmVuY2VzU3RvcmU6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVu
dEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Cit2b2lkIFdlYlByZWZlcmVuY2VzU3RvcmU6OmVuY29k
ZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2Rl
ci0+ZW5jb2RlKG1fc3RyaW5nVmFsdWVzKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobV9ib29sVmFs
dWVzKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobV91aW50MzJWYWx1ZXMpOwotICAgIGVuY29kZXIt
PmVuY29kZShtX2RvdWJsZVZhbHVlcyk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG1fZmxvYXRWYWx1
ZXMpOworICAgIGVuY29kZXIuZW5jb2RlKG1fc3RyaW5nVmFsdWVzKTsKKyAgICBlbmNvZGVyLmVu
Y29kZShtX2Jvb2xWYWx1ZXMpOworICAgIGVuY29kZXIuZW5jb2RlKG1fdWludDMyVmFsdWVzKTsK
KyAgICBlbmNvZGVyLmVuY29kZShtX2RvdWJsZVZhbHVlcyk7CisgICAgZW5jb2Rlci5lbmNvZGUo
bV9mbG9hdFZhbHVlcyk7CiB9CiAKIGJvb2wgV2ViUHJlZmVyZW5jZXNTdG9yZTo6ZGVjb2RlKENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgV2ViUHJlZmVyZW5jZXNTdG9yZSYgcmVz
dWx0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3Rv
cmUuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmgKaW5kZXgg
N2JiY2FlMGMyMGVjMTM0MDNkM2ViMzEyMmQ1NzFkMzg5MWEyYWM0Ny4uZGMwNzNkZTAzOWQ5ZmNi
ODgwMTgwYjlkMzc4ZjAzMTljZTgzMTUwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
UHJlZmVyZW5jZXNTdG9yZS5oCkBAIC0yMzMsNyArMjMzLDcgQEAgRk9SX0VBQ0hfV0VCS0lUX1BS
RUZFUkVOQ0UoREVDTEFSRV9LRVlfR0VUVEVSUykKIHN0cnVjdCBXZWJQcmVmZXJlbmNlc1N0b3Jl
IHsKICAgICBXZWJQcmVmZXJlbmNlc1N0b3JlKCk7CiAKLSAgICB2b2lkIGVuY29kZShDb3JlSVBD
OjpBcmd1bWVudEVuY29kZXIqKSBjb25zdDsKKyAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1
bWVudEVuY29kZXImKSBjb25zdDsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKiwgV2ViUHJlZmVyZW5jZXNTdG9yZSYpOwogCiAgICAgLy8gTk9URTogVGhl
IGdldHRlcnMgaW4gdGhpcyBjbGFzcyBoYXZlIG5vbi1zdGFuZGFyZCBuYW1lcyB0byBhaWQgaW4g
dGhlIHVzZSBvZiB0aGUgcHJlZmVyZW5jZSBtYWNyb3MuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggYzNmY2Vl
NmMyYmQ4YjY3ODRlMzM0MTRmNmI3OWEwZDk4MGQ5NmYyNi4uMGMxMjdlODhlMWVhYTJkNGM3N2Ni
YjVkMjdmYTFkZWU0NTc0ZWQ5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtNTIsNjkgKzUyLDY5IEBAIFdl
YlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMo
KQogewogfQogCi12b2lkIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShDb3Jl
SVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Cit2b2lkIFdlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnM6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIp
IGNvbnN0CiB7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGluamVjdGVkQnVuZGxlUGF0aCk7Ci0gICAg
ZW5jb2Rlci0+ZW5jb2RlKGluamVjdGVkQnVuZGxlUGF0aEV4dGVuc2lvbkhhbmRsZSk7Ci0gICAg
ZW5jb2Rlci0+ZW5jb2RlKGFwcGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnkpOwotICAgIGVuY29kZXIt
PmVuY29kZShhcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKLSAgICBl
bmNvZGVyLT5lbmNvZGUoZGF0YWJhc2VEaXJlY3RvcnkpOwotICAgIGVuY29kZXItPmVuY29kZShk
YXRhYmFzZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGxv
Y2FsU3RvcmFnZURpcmVjdG9yeSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGxvY2FsU3RvcmFnZURp
cmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGRpc2tDYWNoZURp
cmVjdG9yeSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGRpc2tDYWNoZURpcmVjdG9yeUV4dGVuc2lv
bkhhbmRsZSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGNvb2tpZVN0b3JhZ2VEaXJlY3RvcnkpOwot
ICAgIGVuY29kZXItPmVuY29kZShjb29raWVTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxl
KTsKLSAgICBlbmNvZGVyLT5lbmNvZGUodXJsU2NoZW1lc1JlZ2lzdGVyZXJkQXNFbXB0eURvY3Vt
ZW50KTsKLSAgICBlbmNvZGVyLT5lbmNvZGUodXJsU2NoZW1lc1JlZ2lzdGVyZWRBc1NlY3VyZSk7
Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHVybFNjaGVtZXNGb3JXaGljaERvbWFpblJlbGF4YXRpb25J
c0ZvcmJpZGRlbik7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHVybFNjaGVtZXNSZWdpc3RlcmVkQXNM
b2NhbCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHVybFNjaGVtZXNSZWdpc3RlcmVkQXNOb0FjY2Vz
cyk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHVybFNjaGVtZXNSZWdpc3RlcmVkQXNEaXNwbGF5SXNv
bGF0ZWQpOwotICAgIGVuY29kZXItPmVuY29kZSh1cmxTY2hlbWVzUmVnaXN0ZXJlZEFzQ09SU0Vu
YWJsZWQpOwotICAgIGVuY29kZXItPmVuY29kZUVudW0oY2FjaGVNb2RlbCk7Ci0gICAgZW5jb2Rl
ci0+ZW5jb2RlKHNob3VsZFRyYWNrVmlzaXRlZExpbmtzKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUo
c2hvdWxkQWx3YXlzVXNlQ29tcGxleFRleHRDb2RlUGF0aCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2Rl
KHNob3VsZFVzZUZvbnRTbW9vdGhpbmcpOwotICAgIGVuY29kZXItPmVuY29kZShpY29uRGF0YWJh
c2VFbmFibGVkKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUodGVybWluYXRpb25UaW1lb3V0KTsKLSAg
ICBlbmNvZGVyLT5lbmNvZGUobGFuZ3VhZ2VzKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUodGV4dENo
ZWNrZXJTdGF0ZSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGZ1bGxLZXlib2FyZEFjY2Vzc0VuYWJs
ZWQpOwotICAgIGVuY29kZXItPmVuY29kZShkZWZhdWx0UmVxdWVzdFRpbWVvdXRJbnRlcnZhbCk7
CisgICAgZW5jb2Rlci5lbmNvZGUoaW5qZWN0ZWRCdW5kbGVQYXRoKTsKKyAgICBlbmNvZGVyLmVu
Y29kZShpbmplY3RlZEJ1bmRsZVBhdGhFeHRlbnNpb25IYW5kbGUpOworICAgIGVuY29kZXIuZW5j
b2RlKGFwcGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnkpOworICAgIGVuY29kZXIuZW5jb2RlKGFwcGxp
Y2F0aW9uQ2FjaGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOworICAgIGVuY29kZXIuZW5jb2Rl
KGRhdGFiYXNlRGlyZWN0b3J5KTsKKyAgICBlbmNvZGVyLmVuY29kZShkYXRhYmFzZURpcmVjdG9y
eUV4dGVuc2lvbkhhbmRsZSk7CisgICAgZW5jb2Rlci5lbmNvZGUobG9jYWxTdG9yYWdlRGlyZWN0
b3J5KTsKKyAgICBlbmNvZGVyLmVuY29kZShsb2NhbFN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25I
YW5kbGUpOworICAgIGVuY29kZXIuZW5jb2RlKGRpc2tDYWNoZURpcmVjdG9yeSk7CisgICAgZW5j
b2Rlci5lbmNvZGUoZGlza0NhY2hlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKKyAgICBlbmNv
ZGVyLmVuY29kZShjb29raWVTdG9yYWdlRGlyZWN0b3J5KTsKKyAgICBlbmNvZGVyLmVuY29kZShj
b29raWVTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKKyAgICBlbmNvZGVyLmVuY29k
ZSh1cmxTY2hlbWVzUmVnaXN0ZXJlcmRBc0VtcHR5RG9jdW1lbnQpOworICAgIGVuY29kZXIuZW5j
b2RlKHVybFNjaGVtZXNSZWdpc3RlcmVkQXNTZWN1cmUpOworICAgIGVuY29kZXIuZW5jb2RlKHVy
bFNjaGVtZXNGb3JXaGljaERvbWFpblJlbGF4YXRpb25Jc0ZvcmJpZGRlbik7CisgICAgZW5jb2Rl
ci5lbmNvZGUodXJsU2NoZW1lc1JlZ2lzdGVyZWRBc0xvY2FsKTsKKyAgICBlbmNvZGVyLmVuY29k
ZSh1cmxTY2hlbWVzUmVnaXN0ZXJlZEFzTm9BY2Nlc3MpOworICAgIGVuY29kZXIuZW5jb2RlKHVy
bFNjaGVtZXNSZWdpc3RlcmVkQXNEaXNwbGF5SXNvbGF0ZWQpOworICAgIGVuY29kZXIuZW5jb2Rl
KHVybFNjaGVtZXNSZWdpc3RlcmVkQXNDT1JTRW5hYmxlZCk7CisgICAgZW5jb2Rlci5lbmNvZGVF
bnVtKGNhY2hlTW9kZWwpOworICAgIGVuY29kZXIuZW5jb2RlKHNob3VsZFRyYWNrVmlzaXRlZExp
bmtzKTsKKyAgICBlbmNvZGVyLmVuY29kZShzaG91bGRBbHdheXNVc2VDb21wbGV4VGV4dENvZGVQ
YXRoKTsKKyAgICBlbmNvZGVyLmVuY29kZShzaG91bGRVc2VGb250U21vb3RoaW5nKTsKKyAgICBl
bmNvZGVyLmVuY29kZShpY29uRGF0YWJhc2VFbmFibGVkKTsKKyAgICBlbmNvZGVyLmVuY29kZSh0
ZXJtaW5hdGlvblRpbWVvdXQpOworICAgIGVuY29kZXIuZW5jb2RlKGxhbmd1YWdlcyk7CisgICAg
ZW5jb2Rlci5lbmNvZGUodGV4dENoZWNrZXJTdGF0ZSk7CisgICAgZW5jb2Rlci5lbmNvZGUoZnVs
bEtleWJvYXJkQWNjZXNzRW5hYmxlZCk7CisgICAgZW5jb2Rlci5lbmNvZGUoZGVmYXVsdFJlcXVl
c3RUaW1lb3V0SW50ZXJ2YWwpOwogI2lmIFBMQVRGT1JNKE1BQykgfHwgVVNFKENGVVJMU1RPUkFH
RVNFU1NJT05TKQotICAgIGVuY29kZXItPmVuY29kZSh1aVByb2Nlc3NCdW5kbGVJZGVudGlmaWVy
KTsKKyAgICBlbmNvZGVyLmVuY29kZSh1aVByb2Nlc3NCdW5kbGVJZGVudGlmaWVyKTsKICNlbmRp
ZgogI2lmIFBMQVRGT1JNKE1BQykKLSAgICBlbmNvZGVyLT5lbmNvZGUocGFyZW50UHJvY2Vzc05h
bWUpOwotICAgIGVuY29kZXItPmVuY29kZShwcmVzZW50ZXJBcHBsaWNhdGlvblBpZCk7Ci0gICAg
ZW5jb2Rlci0+ZW5jb2RlKG5zVVJMQ2FjaGVNZW1vcnlDYXBhY2l0eSk7Ci0gICAgZW5jb2Rlci0+
ZW5jb2RlKG5zVVJMQ2FjaGVEaXNrQ2FwYWNpdHkpOwotICAgIGVuY29kZXItPmVuY29kZShhY2Nl
bGVyYXRlZENvbXBvc2l0aW5nUG9ydCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHVpUHJvY2Vzc0J1
bmRsZVJlc291cmNlUGF0aCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHVpUHJvY2Vzc0J1bmRsZVJl
c291cmNlUGF0aEV4dGVuc2lvbkhhbmRsZSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHNob3VsZEZv
cmNlU2NyZWVuRm9udFN1YnN0aXR1dGlvbik7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHNob3VsZEVu
YWJsZUtlcm5pbmdBbmRMaWdhdHVyZXNCeURlZmF1bHQpOworICAgIGVuY29kZXIuZW5jb2RlKHBh
cmVudFByb2Nlc3NOYW1lKTsKKyAgICBlbmNvZGVyLmVuY29kZShwcmVzZW50ZXJBcHBsaWNhdGlv
blBpZCk7CisgICAgZW5jb2Rlci5lbmNvZGUobnNVUkxDYWNoZU1lbW9yeUNhcGFjaXR5KTsKKyAg
ICBlbmNvZGVyLmVuY29kZShuc1VSTENhY2hlRGlza0NhcGFjaXR5KTsKKyAgICBlbmNvZGVyLmVu
Y29kZShhY2NlbGVyYXRlZENvbXBvc2l0aW5nUG9ydCk7CisgICAgZW5jb2Rlci5lbmNvZGUodWlQ
cm9jZXNzQnVuZGxlUmVzb3VyY2VQYXRoKTsKKyAgICBlbmNvZGVyLmVuY29kZSh1aVByb2Nlc3NC
dW5kbGVSZXNvdXJjZVBhdGhFeHRlbnNpb25IYW5kbGUpOworICAgIGVuY29kZXIuZW5jb2RlKHNo
b3VsZEZvcmNlU2NyZWVuRm9udFN1YnN0aXR1dGlvbik7CisgICAgZW5jb2Rlci5lbmNvZGUoc2hv
dWxkRW5hYmxlS2VybmluZ0FuZExpZ2F0dXJlc0J5RGVmYXVsdCk7CiAjZWxpZiBQTEFURk9STShX
SU4pCi0gICAgZW5jb2Rlci0+ZW5jb2RlKHNob3VsZFBhaW50TmF0aXZlQ29udHJvbHMpOwotICAg
IGVuY29kZXItPmVuY29kZShjZlVSTENhY2hlRGlza0NhcGFjaXR5KTsKLSAgICBlbmNvZGVyLT5l
bmNvZGUoY2ZVUkxDYWNoZU1lbW9yeUNhcGFjaXR5KTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoaW5p
dGlhbEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOworICAgIGVuY29kZXIuZW5jb2RlKHNob3VsZFBh
aW50TmF0aXZlQ29udHJvbHMpOworICAgIGVuY29kZXIuZW5jb2RlKGNmVVJMQ2FjaGVEaXNrQ2Fw
YWNpdHkpOworICAgIGVuY29kZXIuZW5jb2RlKGNmVVJMQ2FjaGVNZW1vcnlDYXBhY2l0eSk7Cisg
ICAgZW5jb2Rlci5lbmNvZGUoaW5pdGlhbEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOwogI2lmIFVT
RShDRlVSTFNUT1JBR0VTRVNTSU9OUykKICAgICBDRkRhdGFSZWYgc3RvcmFnZVNlc3Npb24gPSBz
ZXJpYWxpemVkRGVmYXVsdFN0b3JhZ2VTZXNzaW9uLmdldCgpOwotICAgIGVuY29kZXItPmVuY29k
ZShzdGF0aWNfY2FzdDxib29sPihzdG9yYWdlU2Vzc2lvbikpOworICAgIGVuY29kZXIuZW5jb2Rl
KHN0YXRpY19jYXN0PGJvb2w+KHN0b3JhZ2VTZXNzaW9uKSk7CiAgICAgaWYgKHN0b3JhZ2VTZXNz
aW9uKQogICAgICAgICBDb3JlSVBDOjplbmNvZGUoZW5jb2Rlciwgc3RvcmFnZVNlc3Npb24pOwog
I2VuZGlmIC8vIFVTRShDRlVSTFNUT1JBR0VTRVNTSU9OUykKICNlbmRpZgogCiAjaWYgRU5BQkxF
KE5PVElGSUNBVElPTlMpIHx8IEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKLSAgICBlbmNv
ZGVyLT5lbmNvZGUobm90aWZpY2F0aW9uUGVybWlzc2lvbnMpOworICAgIGVuY29kZXIuZW5jb2Rl
KG5vdGlmaWNhdGlvblBlcm1pc3Npb25zKTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKE5FVFdPUktf
UFJPQ0VTUykKLSAgICBlbmNvZGVyLT5lbmNvZGUodXNlc05ldHdvcmtQcm9jZXNzKTsKKyAgICBl
bmNvZGVyLmVuY29kZSh1c2VzTmV0d29ya1Byb2Nlc3MpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCmlu
ZGV4IDFmNDg4MDM2OTI3MTg4YzU4MGQ2ZjZjN2MwODYxOWNjMTQxNTkxOTYuLjVhNjUxYWFlZWI0
NDZkNmE4M2RmOTJhYTc4OTAwZWFmMWRkOTI5NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtNDgsNyArNDgsNyBA
QCBuYW1lc3BhY2UgV2ViS2l0IHsKIHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
IHsKICAgICBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzKCk7CiAKLSAgICB2b2lkIGVuY29k
ZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqKSBjb25zdDsKKyAgICB2b2lkIGVuY29kZShDb3Jl
SVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpOwog
CiAgICAgU3RyaW5nIGluamVjdGVkQnVuZGxlUGF0aDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJXaGVlbEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJX
aGVlbEV2ZW50LmNwcAppbmRleCAzN2M2OTFlNjQxODU1ZWE4NjEwN2YwMjg4MjQ0NTMwOTc0MWE3
MGVmLi4xOWFlNTMyNzcyMWE3YTA3ZmU0ZmMxY2YyZTAxNDE5MTNlMDliMzQ4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViV2hlZWxFdmVudC5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYldoZWVsRXZlbnQuY3BwCkBAIC02OSwyMiArNjksMjIgQEAgV2ViV2hl
ZWxFdmVudDo6V2ViV2hlZWxFdmVudChUeXBlIHR5cGUsIGNvbnN0IEludFBvaW50JiBwb3NpdGlv
biwgY29uc3QgSW50UG9pbnQKIH0KICNlbmRpZgogCi12b2lkIFdlYldoZWVsRXZlbnQ6OmVuY29k
ZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Cit2b2lkIFdlYldoZWVs
RXZlbnQ6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7
CiAgICAgV2ViRXZlbnQ6OmVuY29kZShlbmNvZGVyKTsKIAotICAgIGVuY29kZXItPmVuY29kZSht
X3Bvc2l0aW9uKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobV9nbG9iYWxQb3NpdGlvbik7Ci0gICAg
ZW5jb2Rlci0+ZW5jb2RlKG1fZGVsdGEpOwotICAgIGVuY29kZXItPmVuY29kZShtX3doZWVsVGlj
a3MpOwotICAgIGVuY29kZXItPmVuY29kZShtX2dyYW51bGFyaXR5KTsKLSAgICBlbmNvZGVyLT5l
bmNvZGUobV9kaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UpOworICAgIGVuY29kZXIuZW5jb2Rl
KG1fcG9zaXRpb24pOworICAgIGVuY29kZXIuZW5jb2RlKG1fZ2xvYmFsUG9zaXRpb24pOworICAg
IGVuY29kZXIuZW5jb2RlKG1fZGVsdGEpOworICAgIGVuY29kZXIuZW5jb2RlKG1fd2hlZWxUaWNr
cyk7CisgICAgZW5jb2Rlci5lbmNvZGUobV9ncmFudWxhcml0eSk7CisgICAgZW5jb2Rlci5lbmNv
ZGUobV9kaXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UpOwogI2lmIFBMQVRGT1JNKE1BQykKLSAg
ICBlbmNvZGVyLT5lbmNvZGUobV9waGFzZSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG1fbW9tZW50
dW1QaGFzZSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG1faGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRh
cyk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG1fc2Nyb2xsQ291bnQpOwotICAgIGVuY29kZXItPmVu
Y29kZShtX3VuYWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0YSk7CisgICAgZW5jb2Rlci5lbmNvZGUo
bV9waGFzZSk7CisgICAgZW5jb2Rlci5lbmNvZGUobV9tb21lbnR1bVBoYXNlKTsKKyAgICBlbmNv
ZGVyLmVuY29kZShtX2hhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMpOworICAgIGVuY29kZXIuZW5j
b2RlKG1fc2Nyb2xsQ291bnQpOworICAgIGVuY29kZXIuZW5jb2RlKG1fdW5hY2NlbGVyYXRlZFNj
cm9sbGluZ0RlbHRhKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvbWFjL0F0dHJpYnV0ZWRTdHJpbmcuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMv
QXR0cmlidXRlZFN0cmluZy5oCmluZGV4IDZjOGE4YWUyNTJhNWI4OTliMDI0YTY1ZWM2NmUxZjZl
YjFhNWYwNDkuLjZkMzUwN2Y2YTRlMTUxZmU4NjEyZDIyMDNhZTQyOGY0YmU2YmE2MzcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQXR0cmlidXRlZFN0cmluZy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQXR0cmlidXRlZFN0cmluZy5oCkBAIC0zOCw3ICsz
OCw3IEBAIG5hbWVzcGFjZSBDb3JlSVBDIHsKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBzdHJ1Y3Qg
QXR0cmlidXRlZFN0cmluZyB7Ci0gICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNv
ZGVyKikgY29uc3Q7CisgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJikg
Y29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlcios
IEF0dHJpYnV0ZWRTdHJpbmcmKTsKICAgICAKICAgICBSZXRhaW5QdHI8TlNBdHRyaWJ1dGVkU3Ry
aW5nPiBzdHJpbmc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0F0dHJp
YnV0ZWRTdHJpbmcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0F0dHJpYnV0ZWRTdHJp
bmcubW0KaW5kZXggYmM3Y2ZkMDg2ZTI3ODBhMDk2YjllMDI3NTZjYmUxMzJkNzI3MDMzNC4uYjdh
NDdkN2JjMzRiYThiZWNlMDUyMWVkMmMzMGRmNjkzMGY5NzFkNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL21hYy9BdHRyaWJ1dGVkU3RyaW5nLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9tYWMvQXR0cmlidXRlZFN0cmluZy5tbQpAQCAtMzIsMTIgKzMyLDEyIEBACiAK
IG5hbWVzcGFjZSBXZWJLaXQgewogCi12b2lkIEF0dHJpYnV0ZWRTdHJpbmc6OmVuY29kZShDb3Jl
SVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Cit2b2lkIEF0dHJpYnV0ZWRTdHJp
bmc6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0g
ICAgZW5jb2Rlci0+ZW5jb2RlKCFzdHJpbmcpOworICAgIGVuY29kZXIuZW5jb2RlKCFzdHJpbmcp
OwogICAgIGlmICghc3RyaW5nKQogICAgICAgICByZXR1cm47Ci0gICAgQ29yZUlQQzo6ZW5jb2Rl
KGVuY29kZXIsIHN0cmluZy5nZXQoKSk7CisgICAgQ29yZUlQQzo6ZW5jb2RlKCZlbmNvZGVyLCBz
dHJpbmcuZ2V0KCkpOwogfQogCiBib29sIEF0dHJpYnV0ZWRTdHJpbmc6OmRlY29kZShDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIEF0dHJpYnV0ZWRTdHJpbmcmIGF0dHJpYnV0ZWRT
dHJpbmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0NvbG9yU3BhY2VE
YXRhLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0NvbG9yU3BhY2VEYXRhLmgKaW5kZXgg
Y2RlYTg2ZWU1MzE4MWM0NjUxZGQzOTVmYWU5MmM4M2NjMzZhNGMwMC4uYWZlNWI3NzM2ZTZkYWJm
ZjA4NzFhZjJjN2U3NzY3NGZhMzE0Nzc2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL21hYy9Db2xvclNwYWNlRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMv
Q29sb3JTcGFjZURhdGEuaApAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgQ29yZUlQQyB7CiBu
YW1lc3BhY2UgV2ViS2l0IHsKIAogc3RydWN0IENvbG9yU3BhY2VEYXRhIHsKLSAgICB2b2lkIGVu
Y29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqKSBjb25zdDsKKyAgICB2b2lkIGVuY29kZShD
b3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUo
Q29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgQ29sb3JTcGFjZURhdGEmKTsKIAogICAgIFJldGFp
blB0cjxDR0NvbG9yU3BhY2VSZWY+IGNnQ29sb3JTcGFjZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9tYWMvQ29sb3JTcGFjZURhdGEubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvbWFjL0NvbG9yU3BhY2VEYXRhLm1tCmluZGV4IDc5NmMwNmQwYWRiZjZmOGRiODQwNWQ3MjFk
ODE1MTgxMmUzYWNmODkuLmE5MzRhOTkyYjE2NTU3YzAwZDRlY2UwOTRlZjE2OTY1NDgxZTA2MTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ29sb3JTcGFjZURhdGEubW0K
KysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9Db2xvclNwYWNlRGF0YS5tbQpAQCAtMzgs
MjYgKzM4LDI2IEBAIGVudW0gRW5jb2RlZERhdGFUeXBlIHsKICAgICBEYXRhLAogfTsKIAotdm9p
ZCBDb2xvclNwYWNlRGF0YTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2Rl
cikgY29uc3QKK3ZvaWQgQ29sb3JTcGFjZURhdGE6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVu
Y29kZXImIGVuY29kZXIpIGNvbnN0CiB7CiAgICAgaWYgKGNnQ29sb3JTcGFjZSkgewogICAgICAg
ICAvLyBUcnkgdG8gZW5jb2RlIHRoZSBuYW1lLgogICAgICAgICBpZiAoUmV0YWluUHRyPENGU3Ry
aW5nUmVmPiBuYW1lID0gYWRvcHRDRihDR0NvbG9yU3BhY2VDb3B5TmFtZShjZ0NvbG9yU3BhY2Uu
Z2V0KCkpKSkgewotICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlRW51bShOYW1lKTsKLSAgICAg
ICAgICAgIENvcmVJUEM6OmVuY29kZShlbmNvZGVyLCBuYW1lLmdldCgpKTsKKyAgICAgICAgICAg
IGVuY29kZXIuZW5jb2RlRW51bShOYW1lKTsKKyAgICAgICAgICAgIENvcmVJUEM6OmVuY29kZSgm
ZW5jb2RlciwgbmFtZS5nZXQoKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAog
ICAgICAgICAvLyBGYWlsaW5nIHRoYXQsIGp1c3QgZW5jb2RlIHRoZSBJQ0MgZGF0YS4KICAgICAg
ICAgaWYgKFJldGFpblB0cjxDRkRhdGFSZWY+IHByb2ZpbGVEYXRhID0gYWRvcHRDRihDR0NvbG9y
U3BhY2VDb3B5SUNDUHJvZmlsZShjZ0NvbG9yU3BhY2UuZ2V0KCkpKSkgewotICAgICAgICAgICAg
ZW5jb2Rlci0+ZW5jb2RlRW51bShEYXRhKTsKLSAgICAgICAgICAgIENvcmVJUEM6OmVuY29kZShl
bmNvZGVyLCBwcm9maWxlRGF0YS5nZXQoKSk7CisgICAgICAgICAgICBlbmNvZGVyLmVuY29kZUVu
dW0oRGF0YSk7CisgICAgICAgICAgICBDb3JlSVBDOjplbmNvZGUoJmVuY29kZXIsIHByb2ZpbGVE
YXRhLmdldCgpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KIAogICAg
IC8vIFRoZSBjb2xvciBzcGFjZSB3YXMgbnVsbCBvciBmYWlsZWQgdG8gYmUgZW5jb2RlZC4KLSAg
ICBlbmNvZGVyLT5lbmNvZGVFbnVtKE51bGwpOworICAgIGVuY29kZXIuZW5jb2RlRW51bShOdWxs
KTsKIH0KIAogYm9vbCBDb2xvclNwYWNlRGF0YTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVj
b2RlciogZGVjb2RlciwgQ29sb3JTcGFjZURhdGEmIGNvbG9yU3BhY2VEYXRhKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9MYXllclRyZWVDb250ZXh0TWFjLm1tIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL21hYy9MYXllclRyZWVDb250ZXh0TWFjLm1tCmluZGV4IGU0YWQx
Y2UwYmQyMDU3ZmNkOWYwMGVlNWQ5MDkzNTM2YjU4YmRiZmEuLmQ1OTU3YmYwMzZkZjU5MWVlNjFi
MjFhNjI2NzE1MDFjMTJiY2NiNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9t
YWMvTGF5ZXJUcmVlQ29udGV4dE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFj
L0xheWVyVHJlZUNvbnRleHRNYWMubW0KQEAgLTQwLDkgKzQwLDkgQEAgTGF5ZXJUcmVlQ29udGV4
dDo6fkxheWVyVHJlZUNvbnRleHQoKQogewogfQogCi12b2lkIExheWVyVHJlZUNvbnRleHQ6OmVu
Y29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Cit2b2lkIExheWVy
VHJlZUNvbnRleHQ6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNv
bnN0CiB7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGNvbnRleHRJRCk7CisgICAgZW5jb2Rlci5lbmNv
ZGUoY29udGV4dElEKTsKIH0KIAogYm9vbCBMYXllclRyZWVDb250ZXh0OjpkZWNvZGUoQ29yZUlQ
Qzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBMYXllclRyZWVDb250ZXh0JiByZXN1bHQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1BsYXRmb3JtQ2VydGlmaWNhdGVJ
bmZvLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1BsYXRmb3JtQ2VydGlmaWNhdGVJbmZv
LmgKaW5kZXggN2VmNWIzNzcwZWVhZGQzZTc2ZDA2MDY0ZGQwZWE1ZTI0MTVlNzViNS4uOTNmMDlm
MzY5MWJiZjJmNTI4OWE0ZDA1NThjNGQyZmE2ZjM3NzE3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL21hYy9QbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9tYWMvUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8uaApAQCAtNDQsNyArNDQs
NyBAQCBwdWJsaWM6CiAKICAgICBDRkFycmF5UmVmIGNlcnRpZmljYXRlQ2hhaW4oKSBjb25zdCB7
IHJldHVybiBtX2NlcnRpZmljYXRlQ2hhaW4uZ2V0KCk7IH0KIAotICAgIHZvaWQgZW5jb2RlKENv
cmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3Q7CisgICAgdm9pZCBlbmNvZGUo
Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2Rl
KENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgUGxhdGZvcm1DZXJ0aWZpY2F0ZUlu
Zm8mIHQpOwogCiAjaWZuZGVmIE5ERUJVRwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL21hYy9QbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9tYWMvUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8ubW0KaW5kZXggZGIyYjkwZTc1ZDA4YTgxZTI0
Njk4MmQzYzc1ODgzYTIwYTFkMmFkOS4uN2YyOTE1MzgwZTQyMjE2ZWE1YjE2MDBlOWEwMTRhMDlk
ZjY4MTE3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9QbGF0Zm9ybUNl
cnRpZmljYXRlSW5mby5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1BsYXRmb3Jt
Q2VydGlmaWNhdGVJbmZvLm1tCkBAIC00OSwxNSArNDksMTUgQEAgUGxhdGZvcm1DZXJ0aWZpY2F0
ZUluZm86OlBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvKENGQXJyYXlSZWYgY2VydGlmaWNhdGVDaGFp
bikKIHsKIH0KIAotdm9pZCBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbzo6ZW5jb2RlKENvcmVJUEM6
OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKK3ZvaWQgUGxhdGZvcm1DZXJ0aWZpY2F0
ZUluZm86OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7
CiAgICAgaWYgKCFtX2NlcnRpZmljYXRlQ2hhaW4pIHsKLSAgICAgICAgZW5jb2Rlci0+ZW5jb2Rl
KGZhbHNlKTsKKyAgICAgICAgZW5jb2Rlci5lbmNvZGUoZmFsc2UpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgZW5jb2Rlci0+ZW5jb2RlKHRydWUpOwotICAgIENvcmVJUEM6OmVuY29k
ZShlbmNvZGVyLCBtX2NlcnRpZmljYXRlQ2hhaW4uZ2V0KCkpOworICAgIGVuY29kZXIuZW5jb2Rl
KHRydWUpOworICAgIENvcmVJUEM6OmVuY29kZSgmZW5jb2RlciwgbV9jZXJ0aWZpY2F0ZUNoYWlu
LmdldCgpKTsKIH0KIAogYm9vbCBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbzo6ZGVjb2RlKENvcmVJ
UEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8mIGMp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NhbmRib3hFeHRlbnNpb25N
YWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NhbmRib3hFeHRlbnNpb25NYWMubW0K
aW5kZXggMTA5ZDFlYjg4MThlMWUxZWZmODAxOTMyNGE3NDk2YzJlNzg3MDBhOS4uYjZjMmM4NTky
YjU5MGEwMGNlOGI2NzEzMmI3YWUxNjg0NTYzNWVhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL21hYy9TYW5kYm94RXh0ZW5zaW9uTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9tYWMvU2FuZGJveEV4dGVuc2lvbk1hYy5tbQpAQCAtNTMsMTAgKzUzLDEwIEBAIFNh
bmRib3hFeHRlbnNpb246OkhhbmRsZTo6fkhhbmRsZSgpCiAgICAgfQogfQogCi12b2lkIFNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5j
b2RlcikgY29uc3QKK3ZvaWQgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlOjplbmNvZGUoQ29yZUlQ
Qzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewogICAgIGlmICghbV9zYW5kYm94
RXh0ZW5zaW9uKSB7Ci0gICAgICAgIGVuY29kZXItPmVuY29kZVZhcmlhYmxlTGVuZ3RoQnl0ZUFy
cmF5KENvcmVJUEM6OkRhdGFSZWZlcmVuY2UoKSk7CisgICAgICAgIGVuY29kZXIuZW5jb2RlVmFy
aWFibGVMZW5ndGhCeXRlQXJyYXkoQ29yZUlQQzo6RGF0YVJlZmVyZW5jZSgpKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIApAQCAtNjQsNyArNjQsNyBAQCB2b2lkIFNhbmRib3hFeHRlbnNpb246
OkhhbmRsZTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QK
ICAgICBjb25zdCBjaGFyICpzZXJpYWxpemVkRm9ybWF0ID0gV0tTYW5kYm94RXh0ZW5zaW9uR2V0
U2VyaWFsaXplZEZvcm1hdChtX3NhbmRib3hFeHRlbnNpb24sICZsZW5ndGgpOwogICAgIEFTU0VS
VChzZXJpYWxpemVkRm9ybWF0KTsKIAotICAgIGVuY29kZXItPmVuY29kZVZhcmlhYmxlTGVuZ3Ro
Qnl0ZUFycmF5KENvcmVJUEM6OkRhdGFSZWZlcmVuY2UocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1
aW50OF90Kj4oc2VyaWFsaXplZEZvcm1hdCksIGxlbmd0aCkpOworICAgIGVuY29kZXIuZW5jb2Rl
VmFyaWFibGVMZW5ndGhCeXRlQXJyYXkoQ29yZUlQQzo6RGF0YVJlZmVyZW5jZShyZWludGVycHJl
dF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihzZXJpYWxpemVkRm9ybWF0KSwgbGVuZ3RoKSk7CiAKICAg
ICAvLyBFbmNvZGluZyB3aWxsIGRlc3Ryb3kgdGhlIHNhbmRib3ggZXh0ZW5zaW9uIGxvY2FsbHku
CiAgICAgV0tTYW5kYm94RXh0ZW5zaW9uRGVzdHJveShtX3NhbmRib3hFeHRlbnNpb24pOwpAQCAt
MTI2LDExICsxMjYsMTEgQEAgc2l6ZV90IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5Ojpz
aXplKCkgY29uc3QKICAgICByZXR1cm4gbV9zaXplOwogfQogCi12b2lkIFNhbmRib3hFeHRlbnNp
b246OkhhbmRsZUFycmF5OjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVy
KSBjb25zdAordm9pZCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheTo6ZW5jb2RlKENvcmVJ
UEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyLT5lbmNv
ZGUoc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHNpemUoKSkpOworICAgIGVuY29kZXIuZW5jb2RlKHN0
YXRpY19jYXN0PHVpbnQ2NF90PihzaXplKCkpKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IG1fc2l6ZTsgKytpKQotICAgICAgICBlbmNvZGVyLT5lbmNvZGUobV9kYXRhW2ldKTsKKyAgICAg
ICAgZW5jb2Rlci5lbmNvZGUobV9kYXRhW2ldKTsKICAgICAKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TZWNJdGVtUmVxdWVzdERhdGEuY3BwIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL21hYy9TZWNJdGVtUmVxdWVzdERhdGEuY3BwCmluZGV4IDJmYjJmMjg0NTg3
MWUzZmYxMzY2YjkwNjY2NGE3ZGZhYTgwZGIxMjIuLjRjMjhkMjJiYWUzYjdiNDQxZTA5MTRmYzM3
MDcyMzA3OTk3MjQ5ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2Vj
SXRlbVJlcXVlc3REYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0l0
ZW1SZXF1ZXN0RGF0YS5jcHAKQEAgLTQ5LDE1ICs0OSwxNSBAQCBTZWNJdGVtUmVxdWVzdERhdGE6
OlNlY0l0ZW1SZXF1ZXN0RGF0YShUeXBlIHR5cGUsIENGRGljdGlvbmFyeVJlZiBxdWVyeSwgQ0ZE
aWN0aQogewogfQogCi12b2lkIFNlY0l0ZW1SZXF1ZXN0RGF0YTo6ZW5jb2RlKENvcmVJUEM6OkFy
Z3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKK3ZvaWQgU2VjSXRlbVJlcXVlc3REYXRhOjpl
bmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVu
Y29kZXItPmVuY29kZUVudW0obV90eXBlKTsKKyAgICBlbmNvZGVyLmVuY29kZUVudW0obV90eXBl
KTsKIAotICAgIENvcmVJUEM6OmVuY29kZShlbmNvZGVyLCBtX3F1ZXJ5RGljdGlvbmFyeS5nZXQo
KSk7CisgICAgQ29yZUlQQzo6ZW5jb2RlKCZlbmNvZGVyLCBtX3F1ZXJ5RGljdGlvbmFyeS5nZXQo
KSk7CiAKLSAgICBlbmNvZGVyLT5lbmNvZGUoc3RhdGljX2Nhc3Q8Ym9vbD4obV9hdHRyaWJ1dGVz
VG9NYXRjaCkpOworICAgIGVuY29kZXIuZW5jb2RlKHN0YXRpY19jYXN0PGJvb2w+KG1fYXR0cmli
dXRlc1RvTWF0Y2gpKTsKICAgICBpZiAobV9hdHRyaWJ1dGVzVG9NYXRjaCkKLSAgICAgICAgQ29y
ZUlQQzo6ZW5jb2RlKGVuY29kZXIsIG1fYXR0cmlidXRlc1RvTWF0Y2guZ2V0KCkpOworICAgICAg
ICBDb3JlSVBDOjplbmNvZGUoJmVuY29kZXIsIG1fYXR0cmlidXRlc1RvTWF0Y2guZ2V0KCkpOwog
fQogCiBib29sIFNlY0l0ZW1SZXF1ZXN0RGF0YTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVj
b2RlciogZGVjb2RlciwgU2VjSXRlbVJlcXVlc3REYXRhJiBzZWNJdGVtUmVxdWVzdERhdGEpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0l0ZW1SZXF1ZXN0RGF0YS5o
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TZWNJdGVtUmVxdWVzdERhdGEuaAppbmRleCA1
N2IxOGNmYzY3MjRlOTQ2NWQ2OGQyMjRiODE5OWQ4ZDgyNTFmMjllLi5jYWUyYzBhY2E4NjE1Yzk2
YTg5M2MxNzA1MGI4MmMxYjY0NjUyY2NlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvbWFjL1NlY0l0ZW1SZXF1ZXN0RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9t
YWMvU2VjSXRlbVJlcXVlc3REYXRhLmgKQEAgLTUwLDcgKzUwLDcgQEAgcHVibGljOgogICAgIFNl
Y0l0ZW1SZXF1ZXN0RGF0YShUeXBlLCBDRkRpY3Rpb25hcnlSZWYgcXVlcnkpOwogICAgIFNlY0l0
ZW1SZXF1ZXN0RGF0YShUeXBlLCBDRkRpY3Rpb25hcnlSZWYgcXVlcnksIENGRGljdGlvbmFyeVJl
ZiBhdHRyaWJ1dGVzVG9NYXRjaCk7CiAKLSAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVu
dEVuY29kZXIqKSBjb25zdDsKKyAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29k
ZXImKSBjb25zdDsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKiwgU2VjSXRlbVJlcXVlc3REYXRhJik7CiAKICAgICBUeXBlIHR5cGUoKSBjb25zdCB7IHJl
dHVybiBtX3R5cGU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2Vj
SXRlbVJlc3BvbnNlRGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0l0ZW1S
ZXNwb25zZURhdGEuY3BwCmluZGV4IDBjYzhmMTM0NzFkNGMxZmEyMDY2Y2E5OTM1NTBkNzljYmY3
NzYzOWEuLjZjNGJhZDE2YTU1OTI3MDA2YzRmM2ViMDg0ZGFjZjJlYjUzZWJiYTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjSXRlbVJlc3BvbnNlRGF0YS5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TZWNJdGVtUmVzcG9uc2VEYXRhLmNwcApAQCAt
NDEsMTIgKzQxLDEyIEBAIFNlY0l0ZW1SZXNwb25zZURhdGE6OlNlY0l0ZW1SZXNwb25zZURhdGEo
T1NTdGF0dXMgcmVzdWx0Q29kZSwgQ0ZUeXBlUmVmIHJlc3VsdE9iCiB7CiB9CiAKLXZvaWQgU2Vj
SXRlbVJlc3BvbnNlRGF0YTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2Rl
cikgY29uc3QKK3ZvaWQgU2VjSXRlbVJlc3BvbnNlRGF0YTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3Vt
ZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyLT5lbmNvZGUoc3RhdGlj
X2Nhc3Q8aW50NjRfdD4obV9yZXN1bHRDb2RlKSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHN0YXRp
Y19jYXN0PGJvb2w+KG1fcmVzdWx0T2JqZWN0LmdldCgpKSk7CisgICAgZW5jb2Rlci5lbmNvZGUo
c3RhdGljX2Nhc3Q8aW50NjRfdD4obV9yZXN1bHRDb2RlKSk7CisgICAgZW5jb2Rlci5lbmNvZGUo
c3RhdGljX2Nhc3Q8Ym9vbD4obV9yZXN1bHRPYmplY3QuZ2V0KCkpKTsKICAgICBpZiAobV9yZXN1
bHRPYmplY3QpCi0gICAgICAgIENvcmVJUEM6OmVuY29kZShlbmNvZGVyLCBtX3Jlc3VsdE9iamVj
dC5nZXQoKSk7CisgICAgICAgIENvcmVJUEM6OmVuY29kZSgmZW5jb2RlciwgbV9yZXN1bHRPYmpl
Y3QuZ2V0KCkpOwogfQogCiBib29sIFNlY0l0ZW1SZXNwb25zZURhdGE6OmRlY29kZShDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIFNlY0l0ZW1SZXNwb25zZURhdGEmIHNlY0l0ZW1S
ZXNwb25zZURhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0l0
ZW1SZXNwb25zZURhdGEuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjSXRlbVJlc3Bv
bnNlRGF0YS5oCmluZGV4IDVjOTQzMzY5MjcyNDMyZGY4NjRkNjFmMWUxMGQ3MTdlOWRmZTQ2Njku
LmNmNWM5ZWU3YTNkMWJjMGM4YTk5YTVkZDY4NDdlODQ3OTJjMTgxYjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjSXRlbVJlc3BvbnNlRGF0YS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjSXRlbVJlc3BvbnNlRGF0YS5oCkBAIC00MCw3ICs0MCw3
IEBAIHB1YmxpYzoKICAgICBTZWNJdGVtUmVzcG9uc2VEYXRhKCk7CiAgICAgU2VjSXRlbVJlc3Bv
bnNlRGF0YShPU1N0YXR1cywgQ0ZUeXBlUmVmIHJlc3VsdCk7CiAKLSAgICB2b2lkIGVuY29kZShD
b3JlSVBDOjpBcmd1bWVudEVuY29kZXIqKSBjb25zdDsKKyAgICB2b2lkIGVuY29kZShDb3JlSVBD
OjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQ
Qzo6QXJndW1lbnREZWNvZGVyKiwgU2VjSXRlbVJlc3BvbnNlRGF0YSYpOwogCiAgICAgUmV0YWlu
UHRyPENGVHlwZVJlZj4mIHJlc3VsdE9iamVjdCgpIHsgcmV0dXJuIG1fcmVzdWx0T2JqZWN0OyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0tleWNoYWluSXRlbVJl
cXVlc3REYXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjS2V5Y2hhaW5JdGVt
UmVxdWVzdERhdGEuY3BwCmluZGV4IGRjYmY5OTQ1OGM2OTVhMjhkNzBhMTZiMmRjNGNlNzIyZTkw
ZjI2YTIuLjJlZTNlNDhjZDQ5OGIxNDJiOGVhOGQzZGYxOTgwMTdkNWQyOTYyZDMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjS2V5Y2hhaW5JdGVtUmVxdWVzdERhdGEu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjS2V5Y2hhaW5JdGVtUmVxdWVz
dERhdGEuY3BwCkBAIC0xMjMsMTkgKzEyMywxOSBAQCBTZWNLZXljaGFpbkF0dHJpYnV0ZUxpc3Qq
IFNlY0tleWNoYWluSXRlbVJlcXVlc3REYXRhOjphdHRyaWJ1dGVMaXN0KCkgY29uc3QKICAgICBy
ZXR1cm4gbV9hdHRycy0+bV9hdHRyaWJ1dGVMaXN0LmdldCgpOwogfQogCi12b2lkIFNlY0tleWNo
YWluSXRlbVJlcXVlc3REYXRhOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNv
ZGVyKSBjb25zdAordm9pZCBTZWNLZXljaGFpbkl0ZW1SZXF1ZXN0RGF0YTo6ZW5jb2RlKENvcmVJ
UEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyLT5lbmNv
ZGVFbnVtKG1fdHlwZSk7CisgICAgZW5jb2Rlci5lbmNvZGVFbnVtKG1fdHlwZSk7CiAKLSAgICBl
bmNvZGVyLT5lbmNvZGUoc3RhdGljX2Nhc3Q8Ym9vbD4obV9rZXljaGFpbkl0ZW0pKTsKKyAgICBl
bmNvZGVyLmVuY29kZShzdGF0aWNfY2FzdDxib29sPihtX2tleWNoYWluSXRlbSkpOwogICAgIGlm
IChtX2tleWNoYWluSXRlbSkKLSAgICAgICAgQ29yZUlQQzo6ZW5jb2RlKGVuY29kZXIsIG1fa2V5
Y2hhaW5JdGVtLmdldCgpKTsKKyAgICAgICAgQ29yZUlQQzo6ZW5jb2RlKCZlbmNvZGVyLCBtX2tl
eWNoYWluSXRlbS5nZXQoKSk7CiAKLSAgICBlbmNvZGVyLT5lbmNvZGUoc3RhdGljX2Nhc3Q8aW50
MzJfdD4obV9rZXljaGFpbkF0dHJpYnV0ZXMuc2l6ZSgpKSk7CisgICAgZW5jb2Rlci5lbmNvZGUo
c3RhdGljX2Nhc3Q8aW50MzJfdD4obV9rZXljaGFpbkF0dHJpYnV0ZXMuc2l6ZSgpKSk7CiAgICAg
Zm9yIChzaXplX3QgaSA9IDAsIGNvdW50ID0gbV9rZXljaGFpbkF0dHJpYnV0ZXMuc2l6ZSgpOyBp
IDwgY291bnQ7ICsraSkKLSAgICAgICAgQ29yZUlQQzo6ZW5jb2RlKGVuY29kZXIsIG1fa2V5Y2hh
aW5BdHRyaWJ1dGVzW2ldKTsKKyAgICAgICAgQ29yZUlQQzo6ZW5jb2RlKCZlbmNvZGVyLCBtX2tl
eWNoYWluQXR0cmlidXRlc1tpXSk7CiAgICAgCi0gICAgZW5jb2Rlci0+ZW5jb2RlKHN0YXRpY19j
YXN0PHVpbnQ2NF90PihtX2l0ZW1DbGFzcykpOworICAgIGVuY29kZXIuZW5jb2RlKHN0YXRpY19j
YXN0PHVpbnQ2NF90PihtX2l0ZW1DbGFzcykpOwogICAgIG1fZGF0YVJlZmVyZW5jZS5lbmNvZGUo
ZW5jb2Rlcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2Vj
S2V5Y2hhaW5JdGVtUmVxdWVzdERhdGEuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2Vj
S2V5Y2hhaW5JdGVtUmVxdWVzdERhdGEuaAppbmRleCA1MTJlYTU0YmQyNDU1YTNjZjY1OTMwZGVm
Y2QwNjZjNmZmYmMyYTM4Li4xODEyMzFiZDYxNjY3ZTIxZDU2OTZkNzhiOTdiZThiOTVlZWFmYTJm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0tleWNoYWluSXRlbVJl
cXVlc3REYXRhLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TZWNLZXljaGFpbkl0
ZW1SZXF1ZXN0RGF0YS5oCkBAIC01OCw3ICs1OCw3IEBAIHB1YmxpYzoKICAgICBTZWNLZXljaGFp
bkl0ZW1SZXF1ZXN0RGF0YShUeXBlLCBTZWNJdGVtQ2xhc3MsIFNlY0tleWNoYWluQXR0cmlidXRl
TGlzdCosIFVJbnQzMiBsZW5ndGgsIGNvbnN0IHZvaWQqIGRhdGEpOwogICAgIH5TZWNLZXljaGFp
bkl0ZW1SZXF1ZXN0RGF0YSgpOwogCi0gICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRF
bmNvZGVyKikgY29uc3Q7CisgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVy
JikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciosIFNlY0tleWNoYWluSXRlbVJlcXVlc3REYXRhJik7CiAKICAgICBUeXBlIHR5cGUoKSBjb25z
dCB7IHJldHVybiBtX3R5cGU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9t
YWMvU2VjS2V5Y2hhaW5JdGVtUmVzcG9uc2VEYXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9tYWMvU2VjS2V5Y2hhaW5JdGVtUmVzcG9uc2VEYXRhLmNwcAppbmRleCAyNDdmODliNmFjOTlm
ODJmODcxZjc5M2Q4OTA2YTNiZTQ4NDk5YTA3Li40OTViMzAxMmNiN2E3MmNmMTQzN2RiYjU3ODRh
YjAwNDU5Njk1OWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0tl
eWNoYWluSXRlbVJlc3BvbnNlRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21h
Yy9TZWNLZXljaGFpbkl0ZW1SZXNwb25zZURhdGEuY3BwCkBAIC02MywyMSArNjMsMjEgQEAgU2Vj
S2V5Y2hhaW5JdGVtUmVzcG9uc2VEYXRhOjpTZWNLZXljaGFpbkl0ZW1SZXNwb25zZURhdGEoT1NT
dGF0dXMgcmVzdWx0Q29kZSkKIHsKIH0KIAotdm9pZCBTZWNLZXljaGFpbkl0ZW1SZXNwb25zZURh
dGE6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Cit2b2lk
IFNlY0tleWNoYWluSXRlbVJlc3BvbnNlRGF0YTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5j
b2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyLT5lbmNvZGUoc3RhdGljX2Nhc3Q8
aW50NjRfdD4obV9yZXN1bHRDb2RlKSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHN0YXRpY19jYXN0
PHVpbnQzMl90PihtX2l0ZW1DbGFzcykpOwotICAgIGVuY29kZXItPmVuY29kZShzdGF0aWNfY2Fz
dDx1aW50MzJfdD4obV9hdHRyaWJ1dGVzLnNpemUoKSkpOworICAgIGVuY29kZXIuZW5jb2RlKHN0
YXRpY19jYXN0PGludDY0X3Q+KG1fcmVzdWx0Q29kZSkpOworICAgIGVuY29kZXIuZW5jb2RlKHN0
YXRpY19jYXN0PHVpbnQzMl90PihtX2l0ZW1DbGFzcykpOworICAgIGVuY29kZXIuZW5jb2RlKHN0
YXRpY19jYXN0PHVpbnQzMl90PihtX2F0dHJpYnV0ZXMuc2l6ZSgpKSk7CiAgICAgZm9yIChzaXpl
X3QgaSA9IDAsIGNvdW50ID0gbV9hdHRyaWJ1dGVzLnNpemUoKTsgaSA8IGNvdW50OyArK2kpCi0g
ICAgICAgIENvcmVJUEM6OmVuY29kZShlbmNvZGVyLCBtX2F0dHJpYnV0ZXNbaV0pOworICAgICAg
ICBDb3JlSVBDOjplbmNvZGUoJmVuY29kZXIsIG1fYXR0cmlidXRlc1tpXSk7CiAKLSAgICBlbmNv
ZGVyLT5lbmNvZGUoc3RhdGljX2Nhc3Q8Ym9vbD4obV9kYXRhKSk7CisgICAgZW5jb2Rlci5lbmNv
ZGUoc3RhdGljX2Nhc3Q8Ym9vbD4obV9kYXRhKSk7CiAgICAgaWYgKG1fZGF0YSkKLSAgICAgICAg
Q29yZUlQQzo6ZW5jb2RlKGVuY29kZXIsIG1fZGF0YS5nZXQoKSk7CisgICAgICAgIENvcmVJUEM6
OmVuY29kZSgmZW5jb2RlciwgbV9kYXRhLmdldCgpKTsKIAotICAgIGVuY29kZXItPmVuY29kZShz
dGF0aWNfY2FzdDxib29sPihtX2tleWNoYWluSXRlbSkpOworICAgIGVuY29kZXIuZW5jb2RlKHN0
YXRpY19jYXN0PGJvb2w+KG1fa2V5Y2hhaW5JdGVtKSk7CiAgICAgaWYgKG1fa2V5Y2hhaW5JdGVt
KQotICAgICAgICBDb3JlSVBDOjplbmNvZGUoZW5jb2RlciwgbV9rZXljaGFpbkl0ZW0uZ2V0KCkp
OworICAgICAgICBDb3JlSVBDOjplbmNvZGUoJmVuY29kZXIsIG1fa2V5Y2hhaW5JdGVtLmdldCgp
KTsKIH0KIAogYm9vbCBTZWNLZXljaGFpbkl0ZW1SZXNwb25zZURhdGE6OmRlY29kZShDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIFNlY0tleWNoYWluSXRlbVJlc3BvbnNlRGF0YSYg
c2VjS2V5Y2hhaW5JdGVtUmVzcG9uc2VEYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL21hYy9TZWNLZXljaGFpbkl0ZW1SZXNwb25zZURhdGEuaCBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9tYWMvU2VjS2V5Y2hhaW5JdGVtUmVzcG9uc2VEYXRhLmgKaW5kZXggMDliMzhmMGFl
NTAxOWY2YzVlNTNjODYzMGJiNTQ2NzIwOWRmN2JmYi4uY2RkY2ZjMjE4ZjljZWNmZmY3ZTRhMGFm
YWEyOGRmMWFhODM3NzY4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9T
ZWNLZXljaGFpbkl0ZW1SZXNwb25zZURhdGEuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
bWFjL1NlY0tleWNoYWluSXRlbVJlc3BvbnNlRGF0YS5oCkBAIC00Nyw3ICs0Nyw3IEBAIHB1Ymxp
YzoKICAgICBTZWNLZXljaGFpbkl0ZW1SZXNwb25zZURhdGEoT1NTdGF0dXMsIFJldGFpblB0cjxT
ZWNLZXljaGFpbkl0ZW1SZWY+KTsKICAgICBTZWNLZXljaGFpbkl0ZW1SZXNwb25zZURhdGEoT1NT
dGF0dXMpOwogCi0gICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKikgY29u
c3Q7CisgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CiAg
ICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIFNlY0tleWNo
YWluSXRlbVJlc3BvbnNlRGF0YSYpOwogCiAgICAgU2VjSXRlbUNsYXNzIGl0ZW1DbGFzcygpIGNv
bnN0IHsgcmV0dXJuIG1faXRlbUNsYXNzOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViQ29udGV4dFVzZXJNZXNzYWdlQ29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViQ29udGV4dFVzZXJNZXNzYWdlQ29kZXJzLmgKaW5kZXggZmZlMzIyODExNjdl
MzZkY2VmMjU3YzkwYmJhNjEzNGRlOGZkMmFiZi4uOGQ2ODRjNGI2N2RlNjNkOGMyZDkzODUwN2U0
MWYzN2JjMmMwNTI4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNv
bnRleHRVc2VyTWVzc2FnZUNvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJDb250ZXh0VXNlck1lc3NhZ2VDb2RlcnMuaApAQCAtNDYsNyArNDYsNyBAQCBwdWJsaWM6CiAg
ICAgewogICAgIH0KIAotICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlciog
ZW5jb2RlcikgY29uc3QgCisgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVy
JiBlbmNvZGVyKSBjb25zdAogICAgIHsKICAgICAgICAgQVBJT2JqZWN0OjpUeXBlIHR5cGUgPSBB
UElPYmplY3Q6OlR5cGVOdWxsOwogICAgICAgICBpZiAoYmFzZUVuY29kZShlbmNvZGVyLCB0eXBl
KSkKQEAgLTU1LDE3ICs1NSwxNyBAQCBwdWJsaWM6CiAgICAgICAgIHN3aXRjaCAodHlwZSkgewog
ICAgICAgICBjYXNlIEFQSU9iamVjdDo6VHlwZVBhZ2U6IHsKICAgICAgICAgICAgIFdlYlBhZ2VQ
cm94eSogcGFnZSA9IHN0YXRpY19jYXN0PFdlYlBhZ2VQcm94eSo+KG1fcm9vdCk7Ci0gICAgICAg
ICAgICBlbmNvZGVyLT5lbmNvZGUocGFnZS0+cGFnZUlEKCkpOworICAgICAgICAgICAgZW5jb2Rl
ci5lbmNvZGUocGFnZS0+cGFnZUlEKCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
ICAgICAgICAgY2FzZSBBUElPYmplY3Q6OlR5cGVGcmFtZTogewogICAgICAgICAgICAgV2ViRnJh
bWVQcm94eSogZnJhbWUgPSBzdGF0aWNfY2FzdDxXZWJGcmFtZVByb3h5Kj4obV9yb290KTsKLSAg
ICAgICAgICAgIGVuY29kZXItPmVuY29kZShmcmFtZS0+ZnJhbWVJRCgpKTsKKyAgICAgICAgICAg
IGVuY29kZXIuZW5jb2RlKGZyYW1lLT5mcmFtZUlEKCkpOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIH0KICAgICAgICAgY2FzZSBBUElPYmplY3Q6OlR5cGVQYWdlR3JvdXA6IHsKICAgICAg
ICAgICAgIFdlYlBhZ2VHcm91cCogcGFnZUdyb3VwID0gc3RhdGljX2Nhc3Q8V2ViUGFnZUdyb3Vw
Kj4obV9yb290KTsKLSAgICAgICAgICAgIGVuY29kZXItPmVuY29kZShwYWdlR3JvdXAtPmRhdGEo
KSk7CisgICAgICAgICAgICBlbmNvZGVyLmVuY29kZShwYWdlR3JvdXAtPmRhdGEoKSk7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBkZWZhdWx0OgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVVz
ZXJNZXNzYWdlQ29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VDb2RlcnMuaAppbmRleCA0OWQ2Njk2NmE2NzM3
MjllZTQwNWQwZDBjMTAwMThjMTY4ZjMzZTNiLi5jNWQ1NmYxNzg5OGUxNjdmOWY2OWU3N2NkMGU0
MWI3YWZjNWE3MjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VDb2RlcnMuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlVXNlck1lc3Nh
Z2VDb2RlcnMuaApAQCAtNDksNyArNDksNyBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAotICAg
IHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QgCisg
ICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAog
ICAgIHsKICAgICAgICAgQVBJT2JqZWN0OjpUeXBlIHR5cGUgPSBBUElPYmplY3Q6OlR5cGVOdWxs
OwogICAgICAgICBpZiAoYmFzZUVuY29kZShlbmNvZGVyLCB0eXBlKSkKQEAgLTU4LDE3ICs1OCwx
NyBAQCBwdWJsaWM6CiAgICAgICAgIHN3aXRjaCAodHlwZSkgewogICAgICAgICBjYXNlIEFQSU9i
amVjdDo6VHlwZUJ1bmRsZVBhZ2U6IHsKICAgICAgICAgICAgIFdlYlBhZ2UqIHBhZ2UgPSBzdGF0
aWNfY2FzdDxXZWJQYWdlKj4obV9yb290KTsKLSAgICAgICAgICAgIGVuY29kZXItPmVuY29kZShw
YWdlLT5wYWdlSUQoKSk7CisgICAgICAgICAgICBlbmNvZGVyLmVuY29kZShwYWdlLT5wYWdlSUQo
KSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIEFQSU9iamVj
dDo6VHlwZUJ1bmRsZUZyYW1lOiB7CiAgICAgICAgICAgICBXZWJGcmFtZSogZnJhbWUgPSBzdGF0
aWNfY2FzdDxXZWJGcmFtZSo+KG1fcm9vdCk7Ci0gICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGUo
ZnJhbWUtPmZyYW1lSUQoKSk7CisgICAgICAgICAgICBlbmNvZGVyLmVuY29kZShmcmFtZS0+ZnJh
bWVJRCgpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgQVBJ
T2JqZWN0OjpUeXBlQnVuZGxlUGFnZUdyb3VwOiB7CiAgICAgICAgICAgICBXZWJQYWdlR3JvdXBQ
cm94eSogcGFnZUdyb3VwID0gc3RhdGljX2Nhc3Q8V2ViUGFnZUdyb3VwUHJveHkqPihtX3Jvb3Qp
OwotICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKHBhZ2VHcm91cC0+cGFnZUdyb3VwSUQoKSk7
CisgICAgICAgICAgICBlbmNvZGVyLmVuY29kZShwYWdlR3JvdXAtPnBhZ2VHcm91cElEKCkpOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgZGVmYXVsdDoKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5jcHAKaW5kZXggYmM4ODRiOTYyYTFl
YzM4NDY4ZTk2OTkwMGQxN2ExZGMyZDVlZjQ1My4uZWUwMmJiYjUxODcyZWU3OGZlZDAyNWNlYThk
NTIwMzNlN2I5ZGU3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdpbi5jcHAKQEAgLTMyLDE2ICszMiwxNiBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAog
bmFtZXNwYWNlIFdlYktpdCB7CiAKLXZvaWQgUGx1Z2luOjpQYXJhbWV0ZXJzOjplbmNvZGUoQ29y
ZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAordm9pZCBQbHVnaW46OlBhcmFt
ZXRlcnM6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7
Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHVybC5zdHJpbmcoKSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2Rl
KG5hbWVzKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUodmFsdWVzKTsKLSAgICBlbmNvZGVyLT5lbmNv
ZGUobWltZVR5cGUpOwotICAgIGVuY29kZXItPmVuY29kZShpc0Z1bGxGcmFtZVBsdWdpbik7Ci0g
ICAgZW5jb2Rlci0+ZW5jb2RlKHNob3VsZFVzZU1hbnVhbExvYWRlcik7CisgICAgZW5jb2Rlci5l
bmNvZGUodXJsLnN0cmluZygpKTsKKyAgICBlbmNvZGVyLmVuY29kZShuYW1lcyk7CisgICAgZW5j
b2Rlci5lbmNvZGUodmFsdWVzKTsKKyAgICBlbmNvZGVyLmVuY29kZShtaW1lVHlwZSk7CisgICAg
ZW5jb2Rlci5lbmNvZGUoaXNGdWxsRnJhbWVQbHVnaW4pOworICAgIGVuY29kZXIuZW5jb2RlKHNo
b3VsZFVzZU1hbnVhbExvYWRlcik7CiAjaWYgUExBVEZPUk0oTUFDKQotICAgIGVuY29kZXItPmVu
Y29kZUVudW0obGF5ZXJIb3N0aW5nTW9kZSk7CisgICAgZW5jb2Rlci5lbmNvZGVFbnVtKGxheWVy
SG9zdGluZ01vZGUpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9QbHVnaW4uaAppbmRleCA5OGY4NzcwYzE2OGZmMjEzMTYzYjY0NGUyZGI1ZWI1YzlmMTA5
MjcwLi5kZWQ1M2QxNTc4ZmNhNmY0NDNmNGY0ZTUwZTgyZjE5OWQwMTY1Nzk2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luLmgKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5oCkBAIC03Nyw3ICs3Nyw3IEBAIHB1
YmxpYzoKICAgICAgICAgTGF5ZXJIb3N0aW5nTW9kZSBsYXllckhvc3RpbmdNb2RlOwogI2VuZGlm
CiAKLSAgICAgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKikgY29uc3Q7
CisgICAgICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0Owog
ICAgICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgUGFy
YW1ldGVycyYpOwogICAgIH07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170299</attachid>
            <date>2012-10-23 20:26:12 -0700</date>
            <delta_ts>2012-10-23 20:54:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100183-20121023202442.patch</filename>
            <type>text/plain</type>
            <size>139191</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyMjg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYzMzYjcxODRiMDQ1MjAx
YjBmMjhiYmYzYzliYjE0ODJmMGVkNjExNi4uODMxZGNkZTZiNWZjZTY0MDQwMTE3MTNlYTFiYzZi
YzI2YTc2N2U5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxMSBAQAorMjAxMi0xMC0yMyAgQW5k
ZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgorCisgICAgICAgIGVuY29kZSBzaG91
bGQgdGFrZSBhbiBBcmd1bWVudEVuY29kZXIgcmVmZXJlbmNlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDAxODMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRpdGlvbmFsIGluZm9ybWF0aW9uIG9mIHRo
ZSBjaGFuZ2Ugc3VjaCBhcyBhcHByb2FjaCwgcmF0aW9uYWxlLiBQbGVhc2UgYWRkIHBlci1mdW5j
dGlvbiBkZXNjcmlwdGlvbnMgYmVsb3cgKE9PUFMhKS4KKworICAgICAgICAqIFBsYXRmb3JtL0Nv
cmVJUEMvQXJndW1lbnRDb2Rlci5oOgorICAgICAgICAoQ29yZUlQQzo6QXJndW1lbnRDb2Rlcjo6
ZW5jb2RlKToKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL0FyZ3VtZW50cy5oOgorICAgICAg
ICAoQ29yZUlQQzo6QXJndW1lbnRzMDo6ZW5jb2RlKToKKyAgICAgICAgKENvcmVJUEM6OkFyZ3Vt
ZW50czE6OmVuY29kZSk6CisgICAgICAgIChDb3JlSVBDOjpBcmd1bWVudHMyOjplbmNvZGUpOgor
ICAgICAgICAoQ29yZUlQQzo6QXJndW1lbnRzMzo6ZW5jb2RlKToKKyAgICAgICAgKENvcmVJUEM6
OkFyZ3VtZW50czQ6OmVuY29kZSk6CisgICAgICAgIChDb3JlSVBDOjpBcmd1bWVudHM1OjplbmNv
ZGUpOgorICAgICAgICAoQ29yZUlQQzo6QXJndW1lbnRzNjo6ZW5jb2RlKToKKyAgICAgICAgKENv
cmVJUEM6OkFyZ3VtZW50czc6OmVuY29kZSk6CisgICAgICAgIChDb3JlSVBDOjpBcmd1bWVudHM4
OjplbmNvZGUpOgorICAgICAgICAoQ29yZUlQQzo6QXJndW1lbnRzMTA6OmVuY29kZSk6CisgICAg
ICAgICogUGxhdGZvcm0vQ29yZUlQQy9BdHRhY2htZW50LmNwcDoKKyAgICAgICAgKENvcmVJUEM6
OkF0dGFjaG1lbnQ6OmVuY29kZSk6CisgICAgICAgICogUGxhdGZvcm0vQ29yZUlQQy9BdHRhY2ht
ZW50Lmg6CisgICAgICAgIChBdHRhY2htZW50KToKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBD
L0RhdGFSZWZlcmVuY2UuY3BwOgorICAgICAgICAoQ29yZUlQQzo6RGF0YVJlZmVyZW5jZTo6ZW5j
b2RlKToKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL0RhdGFSZWZlcmVuY2UuaDoKKyAgICAg
ICAgKERhdGFSZWZlcmVuY2UpOgorICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvU3RyaW5nUmVm
ZXJlbmNlLmNwcDoKKyAgICAgICAgKENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZTo6ZW5jb2RlKToK
KyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL1N0cmluZ1JlZmVyZW5jZS5oOgorICAgICAgICAo
U3RyaW5nUmVmZXJlbmNlKToKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL21hYy9NYWNoUG9y
dC5oOgorICAgICAgICAoQ29yZUlQQzo6TWFjaFBvcnQ6OmVuY29kZSk6CisgICAgICAgICogUGxh
dGZvcm0vU2hhcmVkTWVtb3J5Lmg6CisgICAgICAgIChIYW5kbGUpOgorICAgICAgICAqIFBsYXRm
b3JtL21hYy9TaGFyZWRNZW1vcnlNYWMuY3BwOgorICAgICAgICAoV2ViS2l0OjpTaGFyZWRNZW1v
cnk6OkhhbmRsZTo6ZW5jb2RlKToKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1BsdWdpbkNyZWF0
aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpbkNyZWF0aW9uUGFyYW1l
dGVyczo6ZW5jb2RlKToKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1BsdWdpbkNyZWF0aW9uUGFy
YW1ldGVycy5oOgorICAgICAgICAoUGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzKToKKyAgICAgICAg
KiBTaGFyZWQvRGljdGlvbmFyeVBvcHVwSW5mby5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRpY3Rp
b25hcnlQb3B1cEluZm86OmVuY29kZSk6CisgICAgICAgICogU2hhcmVkL0RpY3Rpb25hcnlQb3B1
cEluZm8uaDoKKyAgICAgICAgKERpY3Rpb25hcnlQb3B1cEluZm8pOgorICAgICAgICAqIFNoYXJl
ZC9FZGl0b3JTdGF0ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvclN0YXRlOjplbmNvZGUp
OgorICAgICAgICAqIFNoYXJlZC9FZGl0b3JTdGF0ZS5oOgorICAgICAgICAoRWRpdG9yU3RhdGUp
OgorICAgICAgICAqIFNoYXJlZC9Gb250SW5mby5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZvbnRJ
bmZvOjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9Gb250SW5mby5oOgorICAgICAgICAoRm9u
dEluZm8pOgorICAgICAgICAqIFNoYXJlZC9MYXllclRyZWVDb250ZXh0Lmg6CisgICAgICAgIChM
YXllclRyZWVDb250ZXh0KToKKyAgICAgICAgKiBTaGFyZWQvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgIChOZXR3b3JrUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycyk6CisgICAgICAgICogU2hhcmVkL09yaWdpbkFuZERhdGFiYXNl
cy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok9yaWdpbkFuZERhdGFiYXNlczo6ZW5jb2RlKToKKyAg
ICAgICAgKiBTaGFyZWQvT3JpZ2luQW5kRGF0YWJhc2VzLmg6CisgICAgICAgIChPcmlnaW5BbmRE
YXRhYmFzZXMpOgorICAgICAgICAqIFNoYXJlZC9QbGF0Zm9ybVBvcHVwTWVudURhdGEuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybVBvcHVwTWVudURhdGE6OmVuY29kZSk6CisgICAgICAg
ICogU2hhcmVkL1BsYXRmb3JtUG9wdXBNZW51RGF0YS5oOgorICAgICAgICAoUGxhdGZvcm1Qb3B1
cE1lbnVEYXRhKToKKyAgICAgICAgKiBTaGFyZWQvUGx1Z2lucy9OUElkZW50aWZpZXJEYXRhLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6TlBJZGVudGlmaWVyRGF0YTo6ZW5jb2RlKToKKyAgICAgICAg
KiBTaGFyZWQvUGx1Z2lucy9OUElkZW50aWZpZXJEYXRhLmg6CisgICAgICAgIChOUElkZW50aWZp
ZXJEYXRhKToKKyAgICAgICAgKiBTaGFyZWQvUGx1Z2lucy9OUFZhcmlhbnREYXRhLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TlBWYXJpYW50RGF0YTo6ZW5jb2RlKToKKyAgICAgICAgKiBTaGFyZWQv
UGx1Z2lucy9OUFZhcmlhbnREYXRhLmg6CisgICAgICAgIChOUFZhcmlhbnREYXRhKToKKyAgICAg
ICAgKiBTaGFyZWQvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2Rl
KToKKyAgICAgICAgKiBTaGFyZWQvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmg6CisgICAgICAgIChQbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzKToKKyAgICAg
ICAgKiBTaGFyZWQvUHJpbnRJbmZvLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UHJpbnRJbmZvOjpl
bmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9QcmludEluZm8uaDoKKyAgICAgICAgKFByaW50SW5m
byk6CisgICAgICAgICogU2hhcmVkL1NhbmRib3hFeHRlbnNpb24uaDoKKyAgICAgICAgKEhhbmRs
ZSk6CisgICAgICAgIChIYW5kbGVBcnJheSk6CisgICAgICAgICogU2hhcmVkL1NlY3VyaXR5T3Jp
Z2luRGF0YS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNlY3VyaXR5T3JpZ2luRGF0YTo6ZW5jb2Rl
KToKKyAgICAgICAgKiBTaGFyZWQvU2VjdXJpdHlPcmlnaW5EYXRhLmg6CisgICAgICAgIChTZWN1
cml0eU9yaWdpbkRhdGEpOgorICAgICAgICAqIFNoYXJlZC9TZXNzaW9uU3RhdGUuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpTZXNzaW9uU3RhdGU6OmVuY29kZSk6CisgICAgICAgICogU2hhcmVkL1Nl
c3Npb25TdGF0ZS5oOgorICAgICAgICAoU2Vzc2lvblN0YXRlKToKKyAgICAgICAgKiBTaGFyZWQv
U2hhcmVhYmxlQml0bWFwLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U2hhcmVhYmxlQml0bWFwOjpI
YW5kbGU6OmVuY29kZSk6CisgICAgICAgICogU2hhcmVkL1NoYXJlYWJsZUJpdG1hcC5oOgorICAg
ICAgICAoSGFuZGxlKToKKyAgICAgICAgKiBTaGFyZWQvU2hhcmVkV29ya2VyUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNoYXJlZFdvcmtlclByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSk6CisgICAgICAgICogU2hhcmVkL1NoYXJlZFdvcmtl
clByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKFNoYXJlZFdvcmtlclByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMpOgorICAgICAgICAqIFNoYXJlZC9TdGF0aXN0aWNzRGF0YS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OlN0YXRpc3RpY3NEYXRhOjplbmNvZGUpOgorICAgICAgICAq
IFNoYXJlZC9TdGF0aXN0aWNzRGF0YS5oOgorICAgICAgICAoU3RhdGlzdGljc0RhdGEpOgorICAg
ICAgICAqIFNoYXJlZC9TdHJpbmdQYWlyVmVjdG9yLmg6CisgICAgICAgIChXZWJLaXQ6OlN0cmlu
Z1BhaXJWZWN0b3I6OmVuY29kZSk6CisgICAgICAgICogU2hhcmVkL1VwZGF0ZUluZm8uY3BwOgor
ICAgICAgICAoV2ViS2l0OjpVcGRhdGVJbmZvOjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9V
cGRhdGVJbmZvLmg6CisgICAgICAgIChVcGRhdGVJbmZvKToKKyAgICAgICAgKiBTaGFyZWQvVXNl
ck1lc3NhZ2VDb2RlcnMuaDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lc3NhZ2VFbmNvZGVyOjpi
YXNlRW5jb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51SXRlbURhdGE6OmVuY29kZSk6CisgICAg
ICAgICogU2hhcmVkL1dlYkNvbnRleHRNZW51SXRlbURhdGEuaDoKKyAgICAgICAgKFdlYkNvbnRl
eHRNZW51SXRlbURhdGEpOgorICAgICAgICAqIFNoYXJlZC9XZWJFdmVudC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYkV2ZW50OjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJFdmVudC5o
OgorICAgICAgICAoV2ViRXZlbnQpOgorICAgICAgICAoV2ViTW91c2VFdmVudCk6CisgICAgICAg
IChXZWJXaGVlbEV2ZW50KToKKyAgICAgICAgKFdlYktleWJvYXJkRXZlbnQpOgorICAgICAgICAo
V2ViR2VzdHVyZUV2ZW50KToKKyAgICAgICAgKFdlYlBsYXRmb3JtVG91Y2hQb2ludCk6CisgICAg
ICAgIChXZWJUb3VjaEV2ZW50KToKKyAgICAgICAgKiBTaGFyZWQvV2ViR2VvbG9jYXRpb25Qb3Np
dGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uUG9zaXRpb246OkRhdGE6
OmVuY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uaDoKKyAg
ICAgICAgKERhdGEpOgorICAgICAgICAqIFNoYXJlZC9XZWJHZXN0dXJlRXZlbnQuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJHZXN0dXJlRXZlbnQ6OmVuY29kZSk6CisgICAgICAgICogU2hhcmVk
L1dlYkhpdFRlc3RSZXN1bHQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJIaXRUZXN0UmVzdWx0
OjpEYXRhOjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJIaXRUZXN0UmVzdWx0Lmg6Cisg
ICAgICAgIChEYXRhKToKKyAgICAgICAgKiBTaGFyZWQvV2ViS2V5Ym9hcmRFdmVudC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYktleWJvYXJkRXZlbnQ6OmVuY29kZSk6CisgICAgICAgICogU2hh
cmVkL1dlYk1vdXNlRXZlbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJNb3VzZUV2ZW50Ojpl
bmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJOYXZpZ2F0aW9uRGF0YVN0b3JlLmg6CisgICAg
ICAgIChXZWJLaXQ6OldlYk5hdmlnYXRpb25EYXRhU3RvcmU6OmVuY29kZSk6CisgICAgICAgICog
U2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQ
YWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgIChXZWJQYWdlQ3JlYXRpb25QYXJhbWV0
ZXJzKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUGFnZUdyb3VwRGF0YS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VHcm91cERhdGE6OmVuY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYlBh
Z2VHcm91cERhdGEuaDoKKyAgICAgICAgKFdlYlBhZ2VHcm91cERhdGEpOgorICAgICAgICAqIFNo
YXJlZC9XZWJQb3B1cEl0ZW0uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cEl0ZW06OmVu
Y29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYlBvcHVwSXRlbS5oOgorICAgICAgICAqIFNoYXJl
ZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJlZmVyZW5j
ZXNTdG9yZTo6ZW5jb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5o
OgorICAgICAgICAoV2ViUHJlZmVyZW5jZXNTdG9yZSk6CisgICAgICAgICogU2hhcmVkL1dlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgIChXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzKToKKyAgICAgICAgKiBTaGFyZWQvV2ViV2hlZWxFdmVudC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYldoZWVsRXZlbnQ6OmVuY29kZSk6CisgICAgICAgICogU2hhcmVkL21hYy9BdHRyaWJ1
dGVkU3RyaW5nLmg6CisgICAgICAgIChBdHRyaWJ1dGVkU3RyaW5nKToKKyAgICAgICAgKiBTaGFy
ZWQvbWFjL0F0dHJpYnV0ZWRTdHJpbmcubW06CisgICAgICAgIChXZWJLaXQ6OkF0dHJpYnV0ZWRT
dHJpbmc6OmVuY29kZSk6CisgICAgICAgICogU2hhcmVkL21hYy9Db2xvclNwYWNlRGF0YS5oOgor
ICAgICAgICAoQ29sb3JTcGFjZURhdGEpOgorICAgICAgICAqIFNoYXJlZC9tYWMvQ29sb3JTcGFj
ZURhdGEubW06CisgICAgICAgIChXZWJLaXQ6OkNvbG9yU3BhY2VEYXRhOjplbmNvZGUpOgorICAg
ICAgICAqIFNoYXJlZC9tYWMvTGF5ZXJUcmVlQ29udGV4dE1hYy5tbToKKyAgICAgICAgKFdlYktp
dDo6TGF5ZXJUcmVlQ29udGV4dDo6ZW5jb2RlKToKKyAgICAgICAgKiBTaGFyZWQvbWFjL1BsYXRm
b3JtQ2VydGlmaWNhdGVJbmZvLmg6CisgICAgICAgIChQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyk6
CisgICAgICAgICogU2hhcmVkL21hYy9QbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5tbToKKyAgICAg
ICAgKFdlYktpdDo6UGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm86OmVuY29kZSk6CisgICAgICAgICog
U2hhcmVkL21hYy9TYW5kYm94RXh0ZW5zaW9uTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGU6OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6OlNhbmRib3hF
eHRlbnNpb246OkhhbmRsZUFycmF5OjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9tYWMvU2Vj
SXRlbVJlcXVlc3REYXRhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U2VjSXRlbVJlcXVlc3REYXRh
OjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9tYWMvU2VjSXRlbVJlcXVlc3REYXRhLmg6Cisg
ICAgICAgICogU2hhcmVkL21hYy9TZWNJdGVtUmVzcG9uc2VEYXRhLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6U2VjSXRlbVJlc3BvbnNlRGF0YTo6ZW5jb2RlKToKKyAgICAgICAgKiBTaGFyZWQvbWFj
L1NlY0l0ZW1SZXNwb25zZURhdGEuaDoKKyAgICAgICAgKFNlY0l0ZW1SZXNwb25zZURhdGEpOgor
ICAgICAgICAqIFNoYXJlZC9tYWMvU2VjS2V5Y2hhaW5JdGVtUmVxdWVzdERhdGEuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpTZWNLZXljaGFpbkl0ZW1SZXF1ZXN0RGF0YTo6ZW5jb2RlKToKKyAgICAg
ICAgKiBTaGFyZWQvbWFjL1NlY0tleWNoYWluSXRlbVJlcXVlc3REYXRhLmg6CisgICAgICAgICog
U2hhcmVkL21hYy9TZWNLZXljaGFpbkl0ZW1SZXNwb25zZURhdGEuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpTZWNLZXljaGFpbkl0ZW1SZXNwb25zZURhdGE6OmVuY29kZSk6CisgICAgICAgICogU2hh
cmVkL21hYy9TZWNLZXljaGFpbkl0ZW1SZXNwb25zZURhdGEuaDoKKyAgICAgICAgKFNlY0tleWNo
YWluSXRlbVJlc3BvbnNlRGF0YSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHRVc2Vy
TWVzc2FnZUNvZGVycy5oOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0VXNlck1lc3NhZ2VF
bmNvZGVyOjplbmNvZGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUNvZGVycy5oOgorICAgICAgICAoV2ViS2l0OjpJbmplY3Rl
ZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2Rlcjo6ZW5jb2RlKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luOjpQYXJhbWV0ZXJz
OjplbmNvZGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uaDoKKyAgICAg
ICAgKFBhcmFtZXRlcnMpOgorCiAyMDEyLTEwLTIzICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5z
b25AaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtTb3VwXSBJbXBsZW1lbnQgdGhlIGRlZmF1
bHQgYXV0aGVudGljYXRpb24gZGlhbG9nIHZpYSBXZWJDb3JlU3VwcG9ydApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudENvZGVyLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0FyZ3VtZW50Q29kZXIuaAppbmRleCBiZDE1ZjUxNmNm
ZjY2NjJmYzQ4MmFjZDI0MmNmMmUzNmNkZjc0MmM4Li40YmFhYjlmZTRmOTIzMTQ3NmNiYzI3Y2Nk
NDAwOTViNzdhYWU4Y2U3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL0FyZ3VtZW50Q29kZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBD
L0FyZ3VtZW50Q29kZXIuaApAQCAtMzQsNyArMzQsNyBAQCBjbGFzcyBBcmd1bWVudERlY29kZXI7
CiBjbGFzcyBBcmd1bWVudEVuY29kZXI7CiAgICAgCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1
Y3QgQXJndW1lbnRDb2RlciB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2Rl
ciogZW5jb2RlciwgY29uc3QgVCYgdCkKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCBUJiB0KQogICAgIHsKICAgICAgICAgdC5lbmNvZGUoZW5j
b2Rlcik7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQ
Qy9Bcmd1bWVudHMuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnRz
LmgKaW5kZXggMWQ0YzVkYzRlZGJmMmZmY2UyYjkzMjNmODJhMWNhYTU5OTdlNmE4Yy4uN2VkOTRk
OGI5NmRkOGQ4MDJhZTJmODlkZmQ0NTIwNDNiYTM0YTZjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudHMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybS9Db3JlSVBDL0FyZ3VtZW50cy5oCkBAIC0zNSw3ICszNSw3IEBAIG5hbWVzcGFjZSBD
b3JlSVBDIHsKIHN0cnVjdCBBcmd1bWVudHMwIHsKICAgICB0eXBlZGVmIEFyZ3VtZW50czAgVmFs
dWVUeXBlOwogCi0gICAgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyKikgY29uc3QgCisgICAg
dm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJikgY29uc3QgCiAgICAgewogICAgIH0KIApAQCAt
NTcsOSArNTcsOSBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUMT4gc3RydWN0IEFyZ3VtZW50czEgewog
ICAgIHsKICAgICB9CiAKLSAgICB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXIqIGVuY29kZXIp
IGNvbnN0IAorICAgIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QK
ICAgICB7Ci0gICAgICAgIGVuY29kZXItPmVuY29kZShhcmd1bWVudDEpOworICAgICAgICBlbmNv
ZGVyLmVuY29kZShhcmd1bWVudDEpOwogICAgIH0KIAogICAgIHN0YXRpYyBib29sIGRlY29kZShB
cmd1bWVudERlY29kZXIqIGRlY29kZXIsIEFyZ3VtZW50czEmIHJlc3VsdCkKQEAgLTg0LDEwICs4
NCwxMCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDI+IHN0cnVjdCBBcmd1bWVu
dHMyIDogQXJndW1lbnRzMTxUMT4gewogICAgIHsKICAgICB9CiAKLSAgICB2b2lkIGVuY29kZShB
cmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0IAorICAgIHZvaWQgZW5jb2RlKEFyZ3VtZW50
RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICB7CiAgICAgICAgIEFyZ3VtZW50czE8VDE+Ojpl
bmNvZGUoZW5jb2Rlcik7Ci0gICAgICAgIGVuY29kZXItPmVuY29kZShhcmd1bWVudDIpOworICAg
ICAgICBlbmNvZGVyLmVuY29kZShhcmd1bWVudDIpOwogICAgIH0KIAogICAgIHN0YXRpYyBib29s
IGRlY29kZShBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIEFyZ3VtZW50czImIHJlc3VsdCkKQEAg
LTExNiwxMCArMTE2LDEwIEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlw
ZW5hbWUgVDM+IHN0cnVjdCBBcmd1bWVudHMzIDogQXJndW1lbnRzMjxUCiAgICAgewogICAgIH0K
IAotICAgIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QgCisgICAg
dm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIHsKICAgICAg
ICAgQXJndW1lbnRzMjxUMSwgVDI+OjplbmNvZGUoZW5jb2Rlcik7Ci0gICAgICAgIGVuY29kZXIt
PmVuY29kZShhcmd1bWVudDMpOworICAgICAgICBlbmNvZGVyLmVuY29kZShhcmd1bWVudDMpOwog
ICAgIH0KIAogICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXIqIGRlY29kZXIs
IEFyZ3VtZW50czMmIHJlc3VsdCkKQEAgLTE0OSwxMCArMTQ5LDEwIEBAIHRlbXBsYXRlPHR5cGVu
YW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0PiBzdHJ1Y3QgQXJn
dW1lbnRzNCA6CiAgICAgewogICAgIH0KIAotICAgIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2Rl
ciogZW5jb2RlcikgY29uc3QKKyAgICB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29k
ZXIpIGNvbnN0CiAgICAgewogICAgICAgICBBcmd1bWVudHMzPFQxLCBUMiwgVDM+OjplbmNvZGUo
ZW5jb2Rlcik7Ci0gICAgICAgIGVuY29kZXItPmVuY29kZShhcmd1bWVudDQpOworICAgICAgICBl
bmNvZGVyLmVuY29kZShhcmd1bWVudDQpOwogICAgIH0KICAgICAKICAgICBzdGF0aWMgYm9vbCBk
ZWNvZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBBcmd1bWVudHM0JiByZXN1bHQpCkBAIC0x
ODMsMTAgKzE4MywxMCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVu
YW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDU+IHN0cnVjdAogICAgIHsKICAgICB9CiAK
LSAgICB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0CisgICAgdm9p
ZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIHsKICAgICAgICAg
QXJndW1lbnRzNDxUMSwgVDIsIFQzLCBUND46OmVuY29kZShlbmNvZGVyKTsKLSAgICAgICAgZW5j
b2Rlci0+ZW5jb2RlKGFyZ3VtZW50NSk7CisgICAgICAgIGVuY29kZXIuZW5jb2RlKGFyZ3VtZW50
NSk7CiAgICAgfQogICAgIAogICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXIq
IGRlY29kZXIsIEFyZ3VtZW50czUmIHJlc3VsdCkKQEAgLTIxOCwxMCArMjE4LDEwIEBAIHRlbXBs
YXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0
eXBlbmFtZSBUNSwgdHlwZW5hCiAgICAgewogICAgIH0KIAotICAgIHZvaWQgZW5jb2RlKEFyZ3Vt
ZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKKyAgICB2b2lkIGVuY29kZShBcmd1bWVudEVuY29k
ZXImIGVuY29kZXIpIGNvbnN0CiAgICAgewogICAgICAgICBBcmd1bWVudHM1PFQxLCBUMiwgVDMs
IFQ0LCBUNT46OmVuY29kZShlbmNvZGVyKTsKLSAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKGFyZ3Vt
ZW50Nik7CisgICAgICAgIGVuY29kZXIuZW5jb2RlKGFyZ3VtZW50Nik7CiAgICAgfQogICAgIAog
ICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIEFyZ3VtZW50
czYmIHJlc3VsdCkKQEAgLTI1NCwxMCArMjU0LDEwIEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQxLCB0
eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwgdHlwZW5h
CiAgICAgewogICAgIH0KIAotICAgIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciogZW5jb2Rl
cikgY29uc3QKKyAgICB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0
CiAgICAgewogICAgICAgICBBcmd1bWVudHM2PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDY+OjplbmNv
ZGUoZW5jb2Rlcik7Ci0gICAgICAgIGVuY29kZXItPmVuY29kZShhcmd1bWVudDcpOworICAgICAg
ICBlbmNvZGVyLmVuY29kZShhcmd1bWVudDcpOwogICAgIH0KICAgICAKICAgICBzdGF0aWMgYm9v
bCBkZWNvZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBBcmd1bWVudHM3JiByZXN1bHQpCkBA
IC0yODksMTAgKzI4OSwxMCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5
cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsIHR5cGVuYQogICAgIHsKICAgICB9
CiAKLSAgICB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0CisgICAg
dm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIHsKICAgICAg
ICAgQXJndW1lbnRzNzxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNz46OmVuY29kZShlbmNvZGVy
KTsKLSAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKGFyZ3VtZW50OCk7CisgICAgICAgIGVuY29kZXIu
ZW5jb2RlKGFyZ3VtZW50OCk7CiAgICAgfQogCiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3Vt
ZW50RGVjb2RlciogZGVjb2RlciwgQXJndW1lbnRzOCYgcmVzdWx0KQpAQCAtMzI3LDExICszMjcs
MTEgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlw
ZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LCB0eXBlbmEKICAgICB7CiAgICAgfQogCi0gICAgdm9pZCBl
bmNvZGUoQXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAorICAgIHZvaWQgZW5jb2RlKEFy
Z3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICB7CiAgICAgICAgIEFyZ3VtZW50czg8
VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4Pjo6ZW5jb2RlKGVuY29kZXIpOwotICAgICAg
ICBlbmNvZGVyLT5lbmNvZGUoYXJndW1lbnQ5KTsKLSAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKGFy
Z3VtZW50MTApOworICAgICAgICBlbmNvZGVyLmVuY29kZShhcmd1bWVudDkpOworICAgICAgICBl
bmNvZGVyLmVuY29kZShhcmd1bWVudDEwKTsKICAgICB9CiAKICAgICBzdGF0aWMgYm9vbCBkZWNv
ZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBBcmd1bWVudHMxMCYgcmVzdWx0KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9BdHRhY2htZW50LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXR0YWNobWVudC5jcHAKaW5kZXggZDY5NTJh
ZTQ2YWJhY2YwMzcyOTZlMmYwNThjODZiZGJjMTk4OGVhZC4uOGY0Nzc0ODU4NDU4MTVmYTQ2M2Yx
ZThjZDVmNzNhNTIxM2VkOWM0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
Q29yZUlQQy9BdHRhY2htZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL0F0dGFjaG1lbnQuY3BwCkBAIC01OSw5ICs1OSw5IEBAIHZvaWQgQXR0YWNobWVudDo6cmVs
ZWFzZSgpCiB9CiAjZW5kaWYKIAotdm9pZCBBdHRhY2htZW50OjplbmNvZGUoQXJndW1lbnRFbmNv
ZGVyKiBlbmNvZGVyKSBjb25zdAordm9pZCBBdHRhY2htZW50OjplbmNvZGUoQXJndW1lbnRFbmNv
ZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXItPmFkZEF0dGFjaG1lbnQoKnRoaXMp
OworICAgIGVuY29kZXIuYWRkQXR0YWNobWVudCgqdGhpcyk7CiB9CiAKIGJvb2wgQXR0YWNobWVu
dDo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgQXR0YWNobWVudCYgYXR0YWNobWVu
dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXR0YWNobWVu
dC5oIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9BdHRhY2htZW50LmgKaW5kZXgg
MDVhYjkwNzkzMjEzZWEzYjQ3NTYxNDFjYjQ1N2NhZmY1NmFmNWIwZi4uZGQyNmIzYTc2ODI0MDk3
Yzc5YjIwZGM0MjkxNzA3OWNkODZjNjg4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vQ29yZUlQQy9BdHRhY2htZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
Q29yZUlQQy9BdHRhY2htZW50LmgKQEAgLTgyLDcgKzgyLDcgQEAgcHVibGljOgogICAgIHZvaWQg
ZGlzcG9zZSgpOwogI2VuZGlmCiAKLSAgICB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXIqKSBj
b25zdDsKKyAgICB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImKSBjb25zdDsKICAgICBzdGF0
aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyKiwgQXR0YWNobWVudCYpOwogICAgIAogcHJp
dmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvRGF0YVJl
ZmVyZW5jZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0RhdGFSZWZlcmVu
Y2UuY3BwCmluZGV4IDA3OThjM2UwZWZjMmVjNmYyOGMwY2UxYzJiOWRkMzlkOTExZjhhZmQuLmEx
NDQ5ODYyYzk4MmMxYWFhZjEzMWI1YTUyOWUxNTU2NzljZTg1YzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvRGF0YVJlZmVyZW5jZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9EYXRhUmVmZXJlbmNlLmNwcApAQCAtMzEsOSArMzEs
OSBAQAogCiBuYW1lc3BhY2UgQ29yZUlQQyB7CiAKLXZvaWQgRGF0YVJlZmVyZW5jZTo6ZW5jb2Rl
KEFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKK3ZvaWQgRGF0YVJlZmVyZW5jZTo6ZW5j
b2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyLT5lbmNv
ZGVWYXJpYWJsZUxlbmd0aEJ5dGVBcnJheSgqdGhpcyk7CisgICAgZW5jb2Rlci5lbmNvZGVWYXJp
YWJsZUxlbmd0aEJ5dGVBcnJheSgqdGhpcyk7CiB9CiAKIGJvb2wgRGF0YVJlZmVyZW5jZTo6ZGVj
b2RlKEFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgRGF0YVJlZmVyZW5jZSYgZGF0YVJlZmVyZW5j
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvRGF0YVJlZmVy
ZW5jZS5oIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9EYXRhUmVmZXJlbmNlLmgK
aW5kZXggNWVkMDQ0M2MzMGZhYzliMmRkNjdmNTRkMGJhZDIwNWQ3OWY3Nzc2ZC4uYTBjZThjMzE5
Y2ZjYjJjMDFmM2Y3ZGJjZDhkYzMyODhkY2JlN2U1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vQ29yZUlQQy9EYXRhUmVmZXJlbmNlLmgKKysrIGIvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vQ29yZUlQQy9EYXRhUmVmZXJlbmNlLmgKQEAgLTcyLDcgKzcyLDcgQEAgcHVibGlj
OgogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KIAotICAgIHZvaWQgZW5jb2RlKEFyZ3Vt
ZW50RW5jb2RlciogZW5jb2RlcikgY29uc3Q7CisgICAgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNv
ZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciogZGVj
b2RlciwgRGF0YVJlZmVyZW5jZSYgZGF0YVJlZmVyZW5jZSk7CiAKIHByaXZhdGU6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL1N0cmluZ1JlZmVyZW5jZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL1N0cmluZ1JlZmVyZW5jZS5jcHAKaW5k
ZXggNTZlOGMxYTM3YzAxMWRhMDkyNjA1ZjkyODZkMzI0MDEyMjI2MDhmNC4uZTY2Njg1YWU1ZDZi
ZTFlOGY3MzM4Yjk1NDQ3ZDI0ZDIwNzRlM2NmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vQ29yZUlQQy9TdHJpbmdSZWZlcmVuY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtL0NvcmVJUEMvU3RyaW5nUmVmZXJlbmNlLmNwcApAQCAtMzMsOSArMzMsOSBAQAog
CiBuYW1lc3BhY2UgQ29yZUlQQyB7CiAKLXZvaWQgU3RyaW5nUmVmZXJlbmNlOjplbmNvZGUoQXJn
dW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAordm9pZCBTdHJpbmdSZWZlcmVuY2U6OmVuY29k
ZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2Rlci0+ZW5jb2Rl
VmFyaWFibGVMZW5ndGhCeXRlQXJyYXkoRGF0YVJlZmVyZW5jZShyZWludGVycHJldF9jYXN0PGNv
bnN0IHVpbnQ4X3QqPihtX2RhdGEpLCBtX3NpemUpKTsKKyAgICBlbmNvZGVyLmVuY29kZVZhcmlh
YmxlTGVuZ3RoQnl0ZUFycmF5KERhdGFSZWZlcmVuY2UocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1
aW50OF90Kj4obV9kYXRhKSwgbV9zaXplKSk7CiB9CiAKIGJvb2wgU3RyaW5nUmVmZXJlbmNlOjpk
ZWNvZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBTdHJpbmdSZWZlcmVuY2UmIHJlc3VsdCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvU3RyaW5nUmVmZXJl
bmNlLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL1N0cmluZ1JlZmVyZW5jZS5o
CmluZGV4IGVkNDgyZTUzZjZkYWQ2MzI1YjJkOTdiM2JjOGUxOGVlYzU2NjYxZTYuLmJhNDM4MWQ0
ZDFlOWQzMDJiZjA0Y2M3ZjM5M2NkMzA0N2M4M2FhMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtL0NvcmVJUEMvU3RyaW5nUmVmZXJlbmNlLmgKKysrIGIvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vQ29yZUlQQy9TdHJpbmdSZWZlcmVuY2UuaApAQCAtNjQsNyArNjQsNyBAQCBw
dWJsaWM6CiAgICAgICAgIHJldHVybiBhLm1fc2l6ZSA9PSBiLm1fc2l6ZSAmJiAhbWVtY21wKGEu
bV9kYXRhLCBiLm1fZGF0YSwgYS5tX3NpemUpOwogICAgIH0KIAotICAgIHZvaWQgZW5jb2RlKEFy
Z3VtZW50RW5jb2RlciopIGNvbnN0OworICAgIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYp
IGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXIqLCBTdHJpbmdS
ZWZlcmVuY2UmKTsKIAogICAgIHN0cnVjdCBIYXNoIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtL0NvcmVJUEMvbWFjL01hY2hQb3J0LmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9Db3JlSVBDL21hYy9NYWNoUG9ydC5oCmluZGV4IGVjY2UxNmU3NDkyNzVmMzViY2RkMGY0
YzYxMzRmOGIzODhjNGM1YjIuLmM0OTZhNTAxN2JiN2U3MDNjMmJhM2FlZjQ4ODc0NDQ2Mzg2NDlh
MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvbWFjL01hY2hQ
b3J0LmgKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9tYWMvTWFjaFBvcnQu
aApAQCAtNDYsOSArNDYsOSBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAotICAgIHZvaWQgZW5j
b2RlKEFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKKyAgICB2b2lkIGVuY29kZShBcmd1
bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgewotICAgICAgICBlbmNvZGVyLT5lbmNv
ZGUoQXR0YWNobWVudChtX3BvcnQsIG1fZGlzcG9zaXRpb24pKTsKKyAgICAgICAgZW5jb2Rlci5l
bmNvZGUoQXR0YWNobWVudChtX3BvcnQsIG1fZGlzcG9zaXRpb24pKTsKICAgICB9CiAKICAgICBz
dGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBNYWNoUG9ydCYgcCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL1NoYXJlZE1lbW9yeS5oIGIvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vU2hhcmVkTWVtb3J5LmgKaW5kZXggMGQ1NmJhY2M2ZTRmMGY2
M2FjMTRiYWQ0ZjBkZTRhNDE4NzJlNTA0My4uNDZkMDMyYTUxYzNiMDJhMjEzOWZlNjE4ZDE0ODQ5
YWNmNzNlOWQ3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vU2hhcmVkTWVt
b3J5LmgKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vU2hhcmVkTWVtb3J5LmgKQEAgLTU3
LDcgKzU3LDcgQEAgcHVibGljOgogCiAgICAgICAgIGJvb2wgaXNOdWxsKCkgY29uc3Q7CiAKLSAg
ICAgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKikgY29uc3Q7CisgICAg
ICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OwogICAgICAg
ICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgSGFuZGxlJik7
CiAKICNpZiBVU0UoVU5JWF9ET01BSU5fU09DS0VUUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtL2d0ay9TaGFyZWRNZW1vcnlHdGsuY3BwIGIvU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vZ3RrL1NoYXJlZE1lbW9yeUd0ay5jcHAKaW5kZXggZmFjY2YxMDNlODAxMDJhYzAxY2I5
ZmMwM2I1YTQ1OGMxYWZlNmIyNS4uOTM1NDMwNmMyNDU2N2U2OWFmZjkxOGQ5Y2MxNWJhMTc4MTYw
YTRlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vZ3RrL1NoYXJlZE1lbW9y
eUd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vZ3RrL1NoYXJlZE1lbW9yeUd0
ay5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgU2hhcmVkTWVtb3J5OjpIYW5kbGU6On5IYW5kbGUoKQog
ICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgU2hhcmVkTWVtb3J5OjpIYW5kbGU6OmVu
Y29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Cit2b2lkIFNoYXJl
ZE1lbW9yeTo6SGFuZGxlOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVy
KSBjb25zdAogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS9tYWMvU2hhcmVkTWVtb3J5TWFjLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtL21hYy9TaGFyZWRNZW1vcnlNYWMuY3BwCmluZGV4IDQwMTlhOGQ4NTc5ZTc5OGFk
M2EyY2I1MDc2MWM5ZDc3NTc4NGM3NTQuLjRhOWQwM2ZmYTY1ZTFjMDAyNWY4YTdmODY3NzVjYzVh
MDY5MmUyYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL21hYy9TaGFyZWRN
ZW1vcnlNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL21hYy9TaGFyZWRNZW1v
cnlNYWMuY3BwCkBAIC01NSwxMCArNTUsMTAgQEAgYm9vbCBTaGFyZWRNZW1vcnk6OkhhbmRsZTo6
aXNOdWxsKCkgY29uc3QKICAgICByZXR1cm4gIW1fcG9ydDsKIH0KIAotdm9pZCBTaGFyZWRNZW1v
cnk6OkhhbmRsZTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29u
c3QKK3ZvaWQgU2hhcmVkTWVtb3J5OjpIYW5kbGU6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVu
Y29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHN0YXRpY19jYXN0
PHVpbnQ2NF90PihtX3NpemUpKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoQ29yZUlQQzo6TWFjaFBv
cnQobV9wb3J0LCBNQUNIX01TR19UWVBFX01PVkVfU0VORCkpOworICAgIGVuY29kZXIuZW5jb2Rl
KHN0YXRpY19jYXN0PHVpbnQ2NF90PihtX3NpemUpKTsKKyAgICBlbmNvZGVyLmVuY29kZShDb3Jl
SVBDOjpNYWNoUG9ydChtX3BvcnQsIE1BQ0hfTVNHX1RZUEVfTU9WRV9TRU5EKSk7CiAgICAgbV9w
b3J0ID0gTUFDSF9QT1JUX05VTEw7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtL3VuaXgvU2hhcmVkTWVtb3J5VW5peC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS91bml4L1NoYXJlZE1lbW9yeVVuaXguY3BwCmluZGV4IGM0MzJkMzMwMTU3MzBkYjJjMDY3Njhi
OTEzOTA3ZDdiNDZmMTI1ZTEuLmY1NjViNzZlY2QxNWFmYTJiNGViOGRlM2Y1ZjAzMzM2NWNiZWUy
YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL3VuaXgvU2hhcmVkTWVtb3J5
VW5peC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vdW5peC9TaGFyZWRNZW1vcnlV
bml4LmNwcApAQCAtNjMsOSArNjMsOSBAQCBib29sIFNoYXJlZE1lbW9yeTo6SGFuZGxlOjppc051
bGwoKSBjb25zdAogICAgIHJldHVybiBtX2ZpbGVEZXNjcmlwdG9yID09IC0xOwogfQogCi12b2lk
IFNoYXJlZE1lbW9yeTo6SGFuZGxlOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBl
bmNvZGVyKSBjb25zdAordm9pZCBTaGFyZWRNZW1vcnk6OkhhbmRsZTo6ZW5jb2RlKENvcmVJUEM6
OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyLT5lbmNvZGUo
cmVsZWFzZVRvQXR0YWNobWVudCgpKTsKKyAgICBlbmNvZGVyLmVuY29kZShyZWxlYXNlVG9BdHRh
Y2htZW50KCkpOwogfQogCiBib29sIFNoYXJlZE1lbW9yeTo6SGFuZGxlOjpkZWNvZGUoQ29yZUlQ
Qzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBIYW5kbGUmIGhhbmRsZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL3dpbi9TaGFyZWRNZW1vcnlXaW4uY3BwIGIvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vd2luL1NoYXJlZE1lbW9yeVdpbi5jcHAKaW5kZXggMmFhMjhmOGMw
YmQ4MmFhMDVlNzExOGNkN2ZjNzY5MzMyZTQwNWIxMS4uZjU5ZGJhNTA0YzYwYmQzMGU5ZTg4YmQ5
NjM2ZTJkYTBjMjY1NjIzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vd2lu
L1NoYXJlZE1lbW9yeVdpbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vd2luL1No
YXJlZE1lbW9yeVdpbi5jcHAKQEAgLTUxLDE4ICs1MSwxOCBAQCBib29sIFNoYXJlZE1lbW9yeTo6
SGFuZGxlOjppc051bGwoKSBjb25zdAogICAgIHJldHVybiAhbV9oYW5kbGU7CiB9CiAKLXZvaWQg
U2hhcmVkTWVtb3J5OjpIYW5kbGU6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVu
Y29kZXIpIGNvbnN0Cit2b2lkIFNoYXJlZE1lbW9yeTo6SGFuZGxlOjplbmNvZGUoQ29yZUlQQzo6
QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXItPmVuY29kZShz
dGF0aWNfY2FzdDx1aW50NjRfdD4obV9zaXplKSk7CisgICAgZW5jb2Rlci5lbmNvZGUoc3RhdGlj
X2Nhc3Q8dWludDY0X3Q+KG1fc2l6ZSkpOwogCiAgICAgLy8gSGFuZCBvZmYgb3duZXJzaGlwIG9m
IG91ciBIQU5ETEUgdG8gdGhlIHJlY2VpdmluZyBwcm9jZXNzLiBJdCB3aWxsIGNsb3NlIGl0IGZv
ciB1cy4KICAgICAvLyBGSVhNRTogSWYgdGhlIHJlY2VpdmluZyBwcm9jZXNzIGNyYXNoZXMgYmVm
b3JlIGl0IHJlY2VpdmVzIHRoZSBtZW1vcnksIHRoZSBtZW1vcnkgd2lsbCBiZQogICAgIC8vIGxl
YWtlZC4gU2VlIDxodHRwOi8vd2Via2l0Lm9yZy9iLzQ3NTAyPi4KLSAgICBlbmNvZGVyLT5lbmNv
ZGUocmVpbnRlcnByZXRfY2FzdDx1aW50NjRfdD4obV9oYW5kbGUpKTsKKyAgICBlbmNvZGVyLmVu
Y29kZShyZWludGVycHJldF9jYXN0PHVpbnQ2NF90PihtX2hhbmRsZSkpOwogICAgIG1faGFuZGxl
ID0gMDsKIAogICAgIC8vIFNlbmQgYWxvbmcgb3VyIFBJRCBzbyB0aGF0IHRoZSByZWNlaXZpbmcg
cHJvY2VzcyBjYW4gZHVwbGljYXRlIHRoZSBIQU5ETEUgZm9yIGl0cyBvd24gdXNlLgotICAgIGVu
Y29kZXItPmVuY29kZShzdGF0aWNfY2FzdDx1aW50MzJfdD4oOjpHZXRDdXJyZW50UHJvY2Vzc0lk
KCkpKTsKKyAgICBlbmNvZGVyLmVuY29kZShzdGF0aWNfY2FzdDx1aW50MzJfdD4oOjpHZXRDdXJy
ZW50UHJvY2Vzc0lkKCkpKTsKIH0KIAogc3RhdGljIGJvb2wgZ2V0RHVwbGljYXRlZEhhbmRsZShI
QU5ETEUgc291cmNlSGFuZGxlLCBEV09SRCBzb3VyY2VQSUQsIEhBTkRMRSYgZHVwbGljYXRlZEhh
bmRsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ3Jl
YXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2lu
Q3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCBiYzJlOTkyOWMwZDE1OTliZjhkZmQzY2I2OGU1
ZjRjMTMwZDZhZjA3Li5jNWFhZmFiNmY4MWMwNTYwMjllOGJmZWZjZWRhZWZhMmM3ZGYwNzNhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNyZWF0aW9uUGFy
YW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5DcmVh
dGlvblBhcmFtZXRlcnMuY3BwCkBAIC00NSwxOSArNDUsMTkgQEAgUGx1Z2luQ3JlYXRpb25QYXJh
bWV0ZXJzOjpQbHVnaW5DcmVhdGlvblBhcmFtZXRlcnMoKQogewogfQogCi12b2lkIFBsdWdpbkNy
ZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2Rl
cikgY29uc3QKK3ZvaWQgUGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoQ29yZUlQQzo6
QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXItPmVuY29kZShw
bHVnaW5JbnN0YW5jZUlEKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUod2luZG93TlBPYmplY3RJRCk7
Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHBhcmFtZXRlcnMpOwotICAgIGVuY29kZXItPmVuY29kZSh1
c2VyQWdlbnQpOwotICAgIGVuY29kZXItPmVuY29kZShjb250ZW50c1NjYWxlRmFjdG9yKTsKLSAg
ICBlbmNvZGVyLT5lbmNvZGUoaXNQcml2YXRlQnJvd3NpbmdFbmFibGVkKTsKLSAgICBlbmNvZGVy
LT5lbmNvZGUoYXN5bmNocm9ub3VzQ3JlYXRpb25JbmNvbXBsZXRlKTsKLSAgICBlbmNvZGVyLT5l
bmNvZGUoYXJ0aWZpY2lhbFBsdWdpbkluaXRpYWxpemF0aW9uRGVsYXlFbmFibGVkKTsKKyAgICBl
bmNvZGVyLmVuY29kZShwbHVnaW5JbnN0YW5jZUlEKTsKKyAgICBlbmNvZGVyLmVuY29kZSh3aW5k
b3dOUE9iamVjdElEKTsKKyAgICBlbmNvZGVyLmVuY29kZShwYXJhbWV0ZXJzKTsKKyAgICBlbmNv
ZGVyLmVuY29kZSh1c2VyQWdlbnQpOworICAgIGVuY29kZXIuZW5jb2RlKGNvbnRlbnRzU2NhbGVG
YWN0b3IpOworICAgIGVuY29kZXIuZW5jb2RlKGlzUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCk7Cisg
ICAgZW5jb2Rlci5lbmNvZGUoYXN5bmNocm9ub3VzQ3JlYXRpb25JbmNvbXBsZXRlKTsKKyAgICBl
bmNvZGVyLmVuY29kZShhcnRpZmljaWFsUGx1Z2luSW5pdGlhbGl6YXRpb25EZWxheUVuYWJsZWQp
OwogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAgIGVuY29kZXItPmVuY29k
ZShpc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKTsKKyAgICBlbmNvZGVyLmVuY29kZShp
c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNyZWF0aW9uUGFyYW1ldGVycy5o
IGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5DcmVhdGlvblBhcmFtZXRlcnMu
aAppbmRleCA2ZjA1YmRhYWJmNGMwOTMyODNkNWIwMzQzYTA5NjExMWM0ZjAzMGZhLi4xMzg3ZjE0
MGViOTcyNmE1NTdkMjI4NWQzNTQ1NjYyODc1N2Y0ODhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTQw
LDcgKzQwLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBzdHJ1Y3QgUGx1Z2luQ3JlYXRpb25QYXJh
bWV0ZXJzIHsKICAgICBQbHVnaW5DcmVhdGlvblBhcmFtZXRlcnMoKTsKIAotICAgIHZvaWQgZW5j
b2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciopIGNvbnN0OworICAgIHZvaWQgZW5jb2RlKENv
cmVJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBQbHVnaW5DcmVhdGlvblBhcmFtZXRlcnMmKTsKIAog
ICAgIC8vIFRoZSB1bmlxdWUgSUQgb2YgdGhpcyBwbHVnLWluIGluc3RhbmNlLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0RpY3Rpb25hcnlQb3B1cEluZm8uY3BwIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL0RpY3Rpb25hcnlQb3B1cEluZm8uY3BwCmluZGV4IDdlNmRmM2E1Y2Jm
YzhjNjdjODRkN2I2Nzg1N2ZjN2M0OWUxNTdhN2EuLmE0NGQ5OWM0YWRjMzEyOTA4NWQzZmZhYmJm
ZTc2Nzk5MzZiNjU5YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9EaWN0aW9u
YXJ5UG9wdXBJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRGljdGlvbmFyeVBv
cHVwSW5mby5jcHAKQEAgLTM0LDE3ICszNCwxNyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAot
dm9pZCBEaWN0aW9uYXJ5UG9wdXBJbmZvOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVy
KiBlbmNvZGVyKSBjb25zdAordm9pZCBEaWN0aW9uYXJ5UG9wdXBJbmZvOjplbmNvZGUoQ29yZUlQ
Qzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXItPmVuY29k
ZShvcmlnaW4pOwotICAgIGVuY29kZXItPmVuY29kZShmb250SW5mbyk7Ci0gICAgZW5jb2Rlci0+
ZW5jb2RlRW51bSh0eXBlKTsKKyAgICBlbmNvZGVyLmVuY29kZShvcmlnaW4pOworICAgIGVuY29k
ZXIuZW5jb2RlKGZvbnRJbmZvKTsKKyAgICBlbmNvZGVyLmVuY29kZUVudW0odHlwZSk7CiAKICNp
ZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3
MAogICAgIGJvb2wgaGFkT3B0aW9ucyA9IG9wdGlvbnM7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGhh
ZE9wdGlvbnMpOworICAgIGVuY29kZXIuZW5jb2RlKGhhZE9wdGlvbnMpOwogICAgIGlmIChoYWRP
cHRpb25zKQotICAgICAgICBDb3JlSVBDOjplbmNvZGUoZW5jb2Rlciwgb3B0aW9ucy5nZXQoKSk7
CisgICAgICAgIENvcmVJUEM6OmVuY29kZSgmZW5jb2Rlciwgb3B0aW9ucy5nZXQoKSk7CiAjZW5k
aWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0RpY3Rpb25hcnlQb3B1
cEluZm8uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9EaWN0aW9uYXJ5UG9wdXBJbmZvLmgKaW5k
ZXggYmNlYzA0YzQ1ZjEyMzIzNjY5ZDg1Y2ZhMzY4MWJlN2JiYTE0ZjM1NC4uMjdlYjZkYjM3YTk5
YThmYzU5MTY3MzNiYzEyMDVmN2Y4MzQyMzgzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL0RpY3Rpb25hcnlQb3B1cEluZm8uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
RGljdGlvbmFyeVBvcHVwSW5mby5oCkBAIC00MSw3ICs0MSw3IEBAIG5hbWVzcGFjZSBDb3JlSVBD
IHsKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBzdHJ1Y3QgRGljdGlvbmFyeVBvcHVwSW5mbyB7Ci0g
ICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKikgY29uc3Q7CisgICAgdm9p
ZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJv
b2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIERpY3Rpb25hcnlQb3B1cEluZm8m
KTsKIAogICAgIGVudW0gVHlwZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
RWRpdG9yU3RhdGUuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0VkaXRvclN0YXRlLmNwcApp
bmRleCA2ZTQ0YTBmMTVhNTA5M2NkNWIxMGVhY2FkN2ViMDA3ZTRlZmEyNTcxLi5iOGQ2NDBhN2Zj
YmFlNzU5MWIzNzU4NDYxZmY1MjY1MDkzODE5N2VjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvRWRpdG9yU3RhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9FZGl0
b3JTdGF0ZS5jcHAKQEAgLTMxLDI1ICszMSwyNSBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAot
dm9pZCBFZGl0b3JTdGF0ZTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2Rl
cikgY29uc3QKK3ZvaWQgRWRpdG9yU3RhdGU6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29k
ZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHNob3VsZElnbm9yZUNv
bXBvc2l0aW9uU2VsZWN0aW9uQ2hhbmdlKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoc2VsZWN0aW9u
SXNOb25lKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoc2VsZWN0aW9uSXNSYW5nZSk7Ci0gICAgZW5j
b2Rlci0+ZW5jb2RlKGlzQ29udGVudEVkaXRhYmxlKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoaXND
b250ZW50UmljaGx5RWRpdGFibGUpOwotICAgIGVuY29kZXItPmVuY29kZShpc0luUGFzc3dvcmRG
aWVsZCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGhhc0NvbXBvc2l0aW9uKTsKKyAgICBlbmNvZGVy
LmVuY29kZShzaG91bGRJZ25vcmVDb21wb3NpdGlvblNlbGVjdGlvbkNoYW5nZSk7CisgICAgZW5j
b2Rlci5lbmNvZGUoc2VsZWN0aW9uSXNOb25lKTsKKyAgICBlbmNvZGVyLmVuY29kZShzZWxlY3Rp
b25Jc1JhbmdlKTsKKyAgICBlbmNvZGVyLmVuY29kZShpc0NvbnRlbnRFZGl0YWJsZSk7CisgICAg
ZW5jb2Rlci5lbmNvZGUoaXNDb250ZW50UmljaGx5RWRpdGFibGUpOworICAgIGVuY29kZXIuZW5j
b2RlKGlzSW5QYXNzd29yZEZpZWxkKTsKKyAgICBlbmNvZGVyLmVuY29kZShoYXNDb21wb3NpdGlv
bik7CiAKICNpZiBQTEFURk9STShRVCkKLSAgICBlbmNvZGVyLT5lbmNvZGUoY3Vyc29yUG9zaXRp
b24pOwotICAgIGVuY29kZXItPmVuY29kZShhbmNob3JQb3NpdGlvbik7Ci0gICAgZW5jb2Rlci0+
ZW5jb2RlKGVkaXRvclJlY3QpOwotICAgIGVuY29kZXItPmVuY29kZShjdXJzb3JSZWN0KTsKLSAg
ICBlbmNvZGVyLT5lbmNvZGUoY29tcG9zaXRpb25SZWN0KTsKLSAgICBlbmNvZGVyLT5lbmNvZGUo
aW5wdXRNZXRob2RIaW50cyk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHNlbGVjdGVkVGV4dCk7Ci0g
ICAgZW5jb2Rlci0+ZW5jb2RlKHN1cnJvdW5kaW5nVGV4dCk7CisgICAgZW5jb2Rlci5lbmNvZGUo
Y3Vyc29yUG9zaXRpb24pOworICAgIGVuY29kZXIuZW5jb2RlKGFuY2hvclBvc2l0aW9uKTsKKyAg
ICBlbmNvZGVyLmVuY29kZShlZGl0b3JSZWN0KTsKKyAgICBlbmNvZGVyLmVuY29kZShjdXJzb3JS
ZWN0KTsKKyAgICBlbmNvZGVyLmVuY29kZShjb21wb3NpdGlvblJlY3QpOworICAgIGVuY29kZXIu
ZW5jb2RlKGlucHV0TWV0aG9kSGludHMpOworICAgIGVuY29kZXIuZW5jb2RlKHNlbGVjdGVkVGV4
dCk7CisgICAgZW5jb2Rlci5lbmNvZGUoc3Vycm91bmRpbmdUZXh0KTsKICNlbmRpZgogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRWRpdG9yU3RhdGUuaCBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9FZGl0b3JTdGF0ZS5oCmluZGV4IGFjMWQ3OTNhY2Y4NzAyZmQ3MTFlNDg3
OTk4ZWVmNTc0YzM3NGM3YzIuLjA2ZWEwODdiOGYwODJhZjg4YzllZDM5YTY4ODliZjY0ODg0OWFh
MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9FZGl0b3JTdGF0ZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9FZGl0b3JTdGF0ZS5oCkBAIC03NCw3ICs3NCw3IEBAIHN0
cnVjdCBFZGl0b3JTdGF0ZSB7CiAgICAgV1RGOjpTdHJpbmcgc3Vycm91bmRpbmdUZXh0OwogI2Vu
ZGlmCiAKLSAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqKSBjb25zdDsK
KyAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKICAgICBz
dGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgRWRpdG9yU3RhdGUm
KTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Gb250SW5mby5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRm9udEluZm8uY3BwCmluZGV4IGNkMDI2MzA0NWQ1OGRk
ODk4YzA1ZWI2YzEzNzMwMmNhMTlkMDM4OTguLmRlMDMzODRhNDgxNmNkZTVkYTcwMTQ2YTViMjM3
Nzg5YmY1MjMzNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Gb250SW5mby5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0ZvbnRJbmZvLmNwcApAQCAtMzQsMTIgKzM0
LDEyIEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi12b2lkIEZvbnRJbmZvOjplbmNvZGUoQ29y
ZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAordm9pZCBGb250SW5mbzo6ZW5j
b2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKICNpZiBQTEFU
Rk9STShNQUMpCi0gICAgZW5jb2Rlci0+ZW5jb2RlKHN0YXRpY19jYXN0PGJvb2w+KGZvbnRBdHRy
aWJ1dGVEaWN0aW9uYXJ5KSk7CisgICAgZW5jb2Rlci5lbmNvZGUoc3RhdGljX2Nhc3Q8Ym9vbD4o
Zm9udEF0dHJpYnV0ZURpY3Rpb25hcnkpKTsKICAgICBpZiAoZm9udEF0dHJpYnV0ZURpY3Rpb25h
cnkpCi0gICAgICAgIENvcmVJUEM6OmVuY29kZShlbmNvZGVyLCBmb250QXR0cmlidXRlRGljdGlv
bmFyeS5nZXQoKSk7CisgICAgICAgIENvcmVJUEM6OmVuY29kZSgmZW5jb2RlciwgZm9udEF0dHJp
YnV0ZURpY3Rpb25hcnkuZ2V0KCkpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oZW5jb2Rlcik7
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Gb250SW5mby5oIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL0ZvbnRJbmZvLmgKaW5kZXggMjNlYTk0NWNhYTQxM2RmZTEx
NjM0NWQ3YTIyOTdiOTgxMTZjYmZmNy4uYWUxMWQxMjc1MjU3NzQ1NzgwMTI5M2NjYjk4YzIyNDEw
NGVlMDc4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0ZvbnRJbmZvLmgKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0ZvbnRJbmZvLmgKQEAgLTM4LDcgKzM4LDcgQEAgbmFt
ZXNwYWNlIENvcmVJUEMgewogbmFtZXNwYWNlIFdlYktpdCB7CiAgICAgCiBzdHJ1Y3QgRm9udElu
Zm8gewotICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciopIGNvbnN0Owor
ICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OwogICAgIHN0
YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBGb250SW5mbyYpOwog
ICAgIAogI2lmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9JbnRlbnREYXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9JbnRlbnREYXRhLmNwcApp
bmRleCA0MTA3ODc0N2M4MjkxMzJiMTc5YjU1Y2EwZTcyMThkZWQ0Mjk3Zjc3Li43NTc4MTllNDVk
YTQ3YzhkZjcxNWUwMDdhMzQ5Zjg3ZmIwYjRjNzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvSW50ZW50RGF0YS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0ludGVu
dERhdGEuY3BwCkBAIC01NiwxNSArNTYsMTUgQEAgSW50ZW50RGF0YTo6SW50ZW50RGF0YShJbnRl
bnQqIGNvcmVJbnRlbnQpCiAgICAgfQogfQogCi12b2lkIEludGVudERhdGE6OmVuY29kZShDb3Jl
SVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Cit2b2lkIEludGVudERhdGE6OmVu
Y29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5j
b2Rlci0+ZW5jb2RlKGFjdGlvbik7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHR5cGUpOwotICAgIGVu
Y29kZXItPmVuY29kZShzZXJ2aWNlKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoQ29yZUlQQzo6RGF0
YVJlZmVyZW5jZShkYXRhKSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGV4dHJhcyk7Ci0gICAgZW5j
b2Rlci0+ZW5jb2RlKHN1Z2dlc3Rpb25zKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobWVzc2FnZVBv
cnRzKTsKKyAgICBlbmNvZGVyLmVuY29kZShhY3Rpb24pOworICAgIGVuY29kZXIuZW5jb2RlKHR5
cGUpOworICAgIGVuY29kZXIuZW5jb2RlKHNlcnZpY2UpOworICAgIGVuY29kZXIuZW5jb2RlKENv
cmVJUEM6OkRhdGFSZWZlcmVuY2UoZGF0YSkpOworICAgIGVuY29kZXIuZW5jb2RlKGV4dHJhcyk7
CisgICAgZW5jb2Rlci5lbmNvZGUoc3VnZ2VzdGlvbnMpOworICAgIGVuY29kZXIuZW5jb2RlKG1l
c3NhZ2VQb3J0cyk7CiB9CiAKIGJvb2wgSW50ZW50RGF0YTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciogZGVjb2RlciwgSW50ZW50RGF0YSYgaW50ZW50RGF0YSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9JbnRlbnREYXRhLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvSW50ZW50RGF0YS5oCmluZGV4IGU4NDM1YzI4NGY1YzdjZjRjN2MwYjUxNjliMDBlNDNjODMw
YzI2NjYuLmUzYWRiMTkwZWJhZDRmMTQyOGZhNTY3N2RmNmQ1M2JlODVmZGI4Y2MgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9JbnRlbnREYXRhLmgKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL0ludGVudERhdGEuaApAQCAtNDgsNyArNDgsNyBAQCBzdHJ1Y3QgSW50ZW50RGF0
YSB7CiAgICAgSW50ZW50RGF0YSgpIHsgfQogICAgIGV4cGxpY2l0IEludGVudERhdGEoV2ViQ29y
ZTo6SW50ZW50Kik7CiAKLSAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIq
KSBjb25zdDsKKyAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25z
dDsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgSW50
ZW50RGF0YSYpOwogCiAgICAgU3RyaW5nIGFjdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9JbnRlbnRTZXJ2aWNlSW5mby5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
SW50ZW50U2VydmljZUluZm8uY3BwCmluZGV4IGJkOTU0ODQ3ZmM1ZGJhZDk0OGE4ZmQxMWY4OGUx
YTUzZWM1ZWNmNDkuLjM0MDIwMGVkMTMzMmEzYTViMjBhN2EyZDBjNzM0ZGEzOTlhMjkwYmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9JbnRlbnRTZXJ2aWNlSW5mby5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0ludGVudFNlcnZpY2VJbmZvLmNwcApAQCAtMzUsMTMg
KzM1LDEzIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IAotdm9pZCBJbnRlbnRTZXJ2aWNlSW5mbzo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rl
ciogZW5jb2RlcikgY29uc3QKK3ZvaWQgSW50ZW50U2VydmljZUluZm86OmVuY29kZShDb3JlSVBD
OjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2Rlci0+ZW5jb2Rl
KGFjdGlvbik7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHR5cGUpOwotICAgIGVuY29kZXItPmVuY29k
ZShocmVmKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUodGl0bGUpOwotICAgIGVuY29kZXItPmVuY29k
ZShkaXNwb3NpdGlvbik7CisgICAgZW5jb2Rlci5lbmNvZGUoYWN0aW9uKTsKKyAgICBlbmNvZGVy
LmVuY29kZSh0eXBlKTsKKyAgICBlbmNvZGVyLmVuY29kZShocmVmKTsKKyAgICBlbmNvZGVyLmVu
Y29kZSh0aXRsZSk7CisgICAgZW5jb2Rlci5lbmNvZGUoZGlzcG9zaXRpb24pOwogfQogCiBib29s
IEludGVudFNlcnZpY2VJbmZvOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNv
ZGVyLCBJbnRlbnRTZXJ2aWNlSW5mbyYgaW50ZW50U2VydmljZUluZm8pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvSW50ZW50U2VydmljZUluZm8uaCBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9JbnRlbnRTZXJ2aWNlSW5mby5oCmluZGV4IDU5YzA0NzBjNTljMzM1YzIwOTNlYmMy
NmEyZDdhMTRmNWEzZDhmMjQuLmZmMTNkM2I4ZTJiZDQ1MDY5YjRjNTJmMTQzZDk0MDdkMmFlZjNk
MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9JbnRlbnRTZXJ2aWNlSW5mby5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9JbnRlbnRTZXJ2aWNlSW5mby5oCkBAIC00MCw3
ICs0MCw3IEBAIGNsYXNzIEFyZ3VtZW50RW5jb2RlcjsKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBz
dHJ1Y3QgSW50ZW50U2VydmljZUluZm8gewotICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3Vt
ZW50RW5jb2RlciopIGNvbnN0OworICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5j
b2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqLCBJbnRlbnRTZXJ2aWNlSW5mbyYpOwogCiAgICAgU3RyaW5nIGFjdGlvbjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9MYXllclRyZWVDb250ZXh0LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvTGF5ZXJUcmVlQ29udGV4dC5oCmluZGV4IDUyMDZhMzczYzBkNmI0MWIw
ZjIwMTdjNWM1MjZhYjNkMzM1YWU1YjIuLmY4ZTJmY2U2MWYzM2QyYWNmNzQ3ZjBlOWNjNWVlNjNl
YmM3ZWZlYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9MYXllclRyZWVDb250
ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0xheWVyVHJlZUNvbnRleHQuaApAQCAt
NDcsNyArNDcsNyBAQCBwdWJsaWM6CiAgICAgTGF5ZXJUcmVlQ29udGV4dCgpOwogICAgIH5MYXll
clRyZWVDb250ZXh0KCk7CiAKLSAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29k
ZXIqKSBjb25zdDsKKyAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBj
b25zdDsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwg
TGF5ZXJUcmVlQ29udGV4dCYpOwogCiAgICAgYm9vbCBpc0VtcHR5KCkgY29uc3Q7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggZWZiZTM1NzJkNjhjYTUyYzFhYzU5NjQw
NTI4ZGQyOGViNGQwMDA0My4uMDYzM2MwNDE4ZjlkMTMyZTk4MDQxZWVmODEyYzQ3M2RiNGIxNjBh
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtMzYsMTAgKzM2LDEw
IEBAIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpOZXR3b3JrUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycygpCiB7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnM6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Cit2
b2lkIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoQ29yZUlQQzo6QXJn
dW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewogI2lmIFBMQVRGT1JNKE1BQykKLSAgICBl
bmNvZGVyLT5lbmNvZGUocGFyZW50UHJvY2Vzc05hbWUpOworICAgIGVuY29kZXIuZW5jb2RlKHBh
cmVudFByb2Nlc3NOYW1lKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuaAppbmRleCA0ZjU5ZTI5NDFmYjY2NGExY2JjMGEwNWVhMjgwMTBjZWJlNTQ4ZWQxLi5lYmMw
M2E3ZWQwZjlmODA3ZGYwZmU1NWEzMDVjODJlNTZiNDA1M2JkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmgKQEAgLTQwLDcgKzQwLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBzdHJ1
Y3QgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIE5ldHdvcmtQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzKCk7CiAKLSAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVu
dEVuY29kZXIqKSBjb25zdDsKKyAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29k
ZXImKSBjb25zdDsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKiwgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmKTsKIAogI2lmIFBMQVRGT1JN
KE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9PcmlnaW5BbmREYXRhYmFz
ZXMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL09yaWdpbkFuZERhdGFiYXNlcy5jcHAKaW5k
ZXggMGFkMDU0OWFkODQ1OTFkMWU2YTdlZWM5MGNhZjZlNWFkZmYxYzc4Zi4uOWY2ZmJlMjJmMzlk
ZDlhZjFmZGRkZGIyY2YxODhiYzA3MDMzNzg3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL09yaWdpbkFuZERhdGFiYXNlcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L09yaWdpbkFuZERhdGFiYXNlcy5jcHAKQEAgLTM0LDEyICszNCwxMiBAQCB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXZvaWQgT3JpZ2luQW5kRGF0YWJh
c2VzOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAordm9p
ZCBPcmlnaW5BbmREYXRhYmFzZXM6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVu
Y29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG9yaWdpbklkZW50aWZpZXIpOwot
ICAgIGVuY29kZXItPmVuY29kZShvcmlnaW5RdW90YSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG9y
aWdpblVzYWdlKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoZGF0YWJhc2VzKTsKKyAgICBlbmNvZGVy
LmVuY29kZShvcmlnaW5JZGVudGlmaWVyKTsKKyAgICBlbmNvZGVyLmVuY29kZShvcmlnaW5RdW90
YSk7CisgICAgZW5jb2Rlci5lbmNvZGUob3JpZ2luVXNhZ2UpOworICAgIGVuY29kZXIuZW5jb2Rl
KGRhdGFiYXNlcyk7CiB9CiAKIGJvb2wgT3JpZ2luQW5kRGF0YWJhc2VzOjpkZWNvZGUoQ29yZUlQ
Qzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBPcmlnaW5BbmREYXRhYmFzZXMmIG9yaWdpbkFu
ZERhdGFiYXNlcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9PcmlnaW5BbmRE
YXRhYmFzZXMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9PcmlnaW5BbmREYXRhYmFzZXMuaApp
bmRleCA1MWVmNGZhZTdhMDAyYmJjY2YzMTk1NjAwZmRhNWY4YjU2N2I5NDU1Li5lYzA2NGY5MWM4
ZjZlZDc1YTUzYjFiZDdmYjA2Nzg3ZTZkMTE4ZTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvT3JpZ2luQW5kRGF0YWJhc2VzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L09yaWdpbkFuZERhdGFiYXNlcy5oCkBAIC00MCw3ICs0MCw3IEBAIG5hbWVzcGFjZSBDb3JlSVBD
IHsKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBzdHJ1Y3QgT3JpZ2luQW5kRGF0YWJhc2VzIHsKLSAg
ICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqKSBjb25zdDsKKyAgICB2b2lk
IGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKICAgICBzdGF0aWMgYm9v
bCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgT3JpZ2luQW5kRGF0YWJhc2VzJik7
CiAKICAgICBTdHJpbmcgb3JpZ2luSWRlbnRpZmllcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9QbGF0Zm9ybVBvcHVwTWVudURhdGEuY3BwIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL1BsYXRmb3JtUG9wdXBNZW51RGF0YS5jcHAKaW5kZXggMWRlY2FhY2M1NTdmZDI4ZWM1Njgw
Y2E0Mjc3NjU3NzA0OGY1OWQ5NC4uMjE1NzhjNGM1M2IxZjkzOWMzZmE3MzZiNjZkMDIzNDgzZDYw
MmYyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsYXRmb3JtUG9wdXBNZW51
RGF0YS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsYXRmb3JtUG9wdXBNZW51RGF0
YS5jcHAKQEAgLTQ0LDI4ICs0NCwyOCBAQCBQbGF0Zm9ybVBvcHVwTWVudURhdGE6OlBsYXRmb3Jt
UG9wdXBNZW51RGF0YSgpCiB7CiB9CiAKLXZvaWQgUGxhdGZvcm1Qb3B1cE1lbnVEYXRhOjplbmNv
ZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAordm9pZCBQbGF0Zm9y
bVBvcHVwTWVudURhdGE6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIp
IGNvbnN0CiB7CiAjaWYgUExBVEZPUk0oV0lOKQotICAgIGVuY29kZXItPmVuY29kZShtX2NsaWVu
dFBhZGRpbmdMZWZ0KTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobV9jbGllbnRQYWRkaW5nUmlnaHQp
OwotICAgIGVuY29kZXItPmVuY29kZShtX2NsaWVudEluc2V0TGVmdCk7Ci0gICAgZW5jb2Rlci0+
ZW5jb2RlKG1fY2xpZW50SW5zZXRSaWdodCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG1fcG9wdXBX
aWR0aCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG1faXRlbUhlaWdodCk7CisgICAgZW5jb2Rlci5l
bmNvZGUobV9jbGllbnRQYWRkaW5nTGVmdCk7CisgICAgZW5jb2Rlci5lbmNvZGUobV9jbGllbnRQ
YWRkaW5nUmlnaHQpOworICAgIGVuY29kZXIuZW5jb2RlKG1fY2xpZW50SW5zZXRMZWZ0KTsKKyAg
ICBlbmNvZGVyLmVuY29kZShtX2NsaWVudEluc2V0UmlnaHQpOworICAgIGVuY29kZXIuZW5jb2Rl
KG1fcG9wdXBXaWR0aCk7CisgICAgZW5jb2Rlci5lbmNvZGUobV9pdGVtSGVpZ2h0KTsKIAogICAg
IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlIG5vdFNlbGVjdGVkQmFja2luZ1N0b3JlSGFuZGxlOwog
ICAgIG1fbm90U2VsZWN0ZWRCYWNraW5nU3RvcmUtPmNyZWF0ZUhhbmRsZShub3RTZWxlY3RlZEJh
Y2tpbmdTdG9yZUhhbmRsZSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG5vdFNlbGVjdGVkQmFja2lu
Z1N0b3JlSGFuZGxlKTsKKyAgICBlbmNvZGVyLmVuY29kZShub3RTZWxlY3RlZEJhY2tpbmdTdG9y
ZUhhbmRsZSk7CiAKICAgICBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSBzZWxlY3RlZEJhY2tpbmdT
dG9yZUhhbmRsZTsKICAgICBtX3NlbGVjdGVkQmFja2luZ1N0b3JlLT5jcmVhdGVIYW5kbGUoc2Vs
ZWN0ZWRCYWNraW5nU3RvcmVIYW5kbGUpOwotICAgIGVuY29kZXItPmVuY29kZShzZWxlY3RlZEJh
Y2tpbmdTdG9yZUhhbmRsZSk7CisgICAgZW5jb2Rlci5lbmNvZGUoc2VsZWN0ZWRCYWNraW5nU3Rv
cmVIYW5kbGUpOwogI2VsaWYgUExBVEZPUk0oTUFDKQotICAgIGVuY29kZXItPmVuY29kZShmb250
SW5mbyk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHNob3VsZFBvcE92ZXIpOworICAgIGVuY29kZXIu
ZW5jb2RlKGZvbnRJbmZvKTsKKyAgICBlbmNvZGVyLmVuY29kZShzaG91bGRQb3BPdmVyKTsKICNl
bGlmIFBMQVRGT1JNKFFUKQotICAgIGVuY29kZXItPmVuY29kZShtdWx0aXBsZVNlbGVjdGlvbnMp
OworICAgIGVuY29kZXIuZW5jb2RlKG11bHRpcGxlU2VsZWN0aW9ucyk7CiAjZWxzZQogICAgIFVO
VVNFRF9QQVJBTShlbmNvZGVyKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL1BsYXRmb3JtUG9wdXBNZW51RGF0YS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1Bs
YXRmb3JtUG9wdXBNZW51RGF0YS5oCmluZGV4IDIxYWJkZTRmZjVkNjIyOTM1YzhhMjM1YTNhMGFi
NjllYzRjZWY2NWMuLjdkOWQ5NGQyYTE4ODZjMDRkYTcyYjNmODVkY2QwNmM0OWJlNDNjZWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbGF0Zm9ybVBvcHVwTWVudURhdGEuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGxhdGZvcm1Qb3B1cE1lbnVEYXRhLmgKQEAgLTQw
LDcgKzQwLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBzdHJ1Y3QgUGxhdGZvcm1Qb3B1cE1lbnVE
YXRhIHsKICAgICBQbGF0Zm9ybVBvcHVwTWVudURhdGEoKTsKIAotICAgIHZvaWQgZW5jb2RlKENv
cmVJUEM6OkFyZ3VtZW50RW5jb2RlciopIGNvbnN0OworICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6
OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqLCBQbGF0Zm9ybVBvcHVwTWVudURhdGEmKTsKIAogI2lmIFBMQVRG
T1JNKFdJTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QSWRl
bnRpZmllckRhdGEuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBJZGVudGlm
aWVyRGF0YS5jcHAKaW5kZXggZmYyYmVmMTQwMDNiOTA1YTdmNWE0NjRlNzI3OGIzMmZlYTdmYTBj
Ni4uZmM5ODcwZjBjYjQxNTE5YjMxZWZiNGMxMGIxNTkxNjBmZmRmOTgwNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBJZGVudGlmaWVyRGF0YS5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBJZGVudGlmaWVyRGF0YS5jcHAKQEAgLTY3
LDEzICs2NywxMyBAQCBOUElkZW50aWZpZXIgTlBJZGVudGlmaWVyRGF0YTo6Y3JlYXRlTlBJZGVu
dGlmaWVyKCkgY29uc3QKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8TlBJZGVudGlmaWVyPihJZGVu
dGlmaWVyUmVwOjpnZXQobV9udW1iZXIpKTsKIH0KIAotdm9pZCBOUElkZW50aWZpZXJEYXRhOjpl
bmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAordm9pZCBOUElk
ZW50aWZpZXJEYXRhOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBj
b25zdAogewotICAgIGVuY29kZXItPmVuY29kZShtX2lzU3RyaW5nKTsKKyAgICBlbmNvZGVyLmVu
Y29kZShtX2lzU3RyaW5nKTsKICAgICBpZiAobV9pc1N0cmluZykKLSAgICAgICAgZW5jb2Rlci0+
ZW5jb2RlKG1fc3RyaW5nKTsKKyAgICAgICAgZW5jb2Rlci5lbmNvZGUobV9zdHJpbmcpOwogICAg
IGVsc2UKLSAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKG1fbnVtYmVyKTsKKyAgICAgICAgZW5jb2Rl
ci5lbmNvZGUobV9udW1iZXIpOwogfQogCiBib29sIE5QSWRlbnRpZmllckRhdGE6OmRlY29kZShD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIE5QSWRlbnRpZmllckRhdGEmIHJlc3Vs
dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QSWRlbnRpZmll
ckRhdGEuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QSWRlbnRpZmllckRhdGEu
aAppbmRleCAxYTdjNzcyYTc5NDhmYzM2ZTVjNDMzODExYzNlYjBlNTFlYjgyMmVlLi41NmQ1N2Zj
OTY1MTEwY2U1MDA0Y2QwNzFkYjVlZGNjY2UxNjliNTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvUGx1Z2lucy9OUElkZW50aWZpZXJEYXRhLmgKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1BsdWdpbnMvTlBJZGVudGlmaWVyRGF0YS5oCkBAIC00Nyw3ICs0Nyw3IEBAIHB1
YmxpYzoKICAgICBzdGF0aWMgTlBJZGVudGlmaWVyRGF0YSBmcm9tTlBJZGVudGlmaWVyKE5QSWRl
bnRpZmllcik7CiAgICAgTlBJZGVudGlmaWVyIGNyZWF0ZU5QSWRlbnRpZmllcigpIGNvbnN0Owog
Ci0gICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKikgY29uc3Q7CisgICAg
dm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGlj
IGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIE5QSWRlbnRpZmllckRhdGEm
KTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5z
L05QVmFyaWFudERhdGEuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBWYXJp
YW50RGF0YS5jcHAKaW5kZXggMDRiYjNmNWJkZWJlZDQ0OWYxNjQ0MTliZTc4YTc4OGY1OTRmMmQ1
MS4uYzBiYmY2N2Y2ODk1OWVlNmNlNjZjY2M1NzFjYmI1MjVjODgwMjBiMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBWYXJpYW50RGF0YS5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBWYXJpYW50RGF0YS5jcHAKQEAgLTExOCwzMSAr
MTE4LDMxIEBAIE5QVmFyaWFudERhdGEgTlBWYXJpYW50RGF0YTo6bWFrZVJlbW90ZU5QT2JqZWN0
SUQodWludDY0X3QgdmFsdWUpCiAgICAgcmV0dXJuIG5wVmFyaWFudERhdGE7CiB9CiAKLXZvaWQg
TlBWYXJpYW50RGF0YTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2Rlcikg
Y29uc3QKK3ZvaWQgTlBWYXJpYW50RGF0YTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyLT5lbmNvZGUobV90eXBlKTsKKyAgICBl
bmNvZGVyLmVuY29kZShtX3R5cGUpOwogCiAgICAgc3dpdGNoICh0eXBlKCkpIHsKICAgICBjYXNl
IE5QVmFyaWFudERhdGE6OlZvaWQ6CiAgICAgY2FzZSBOUFZhcmlhbnREYXRhOjpOdWxsOgogICAg
ICAgICBicmVhazsKICAgICBjYXNlIE5QVmFyaWFudERhdGE6OkJvb2w6Ci0gICAgICAgIGVuY29k
ZXItPmVuY29kZShib29sVmFsdWUoKSk7CisgICAgICAgIGVuY29kZXIuZW5jb2RlKGJvb2xWYWx1
ZSgpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBOUFZhcmlhbnREYXRhOjpJbnQzMjoKLSAg
ICAgICAgZW5jb2Rlci0+ZW5jb2RlKGludDMyVmFsdWUoKSk7CisgICAgICAgIGVuY29kZXIuZW5j
b2RlKGludDMyVmFsdWUoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTlBWYXJpYW50RGF0
YTo6RG91YmxlOgotICAgICAgICBlbmNvZGVyLT5lbmNvZGUoZG91YmxlVmFsdWUoKSk7CisgICAg
ICAgIGVuY29kZXIuZW5jb2RlKGRvdWJsZVZhbHVlKCkpOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIE5QVmFyaWFudERhdGE6OlN0cmluZzoKLSAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKHN0cmlu
Z1ZhbHVlKCkpOworICAgICAgICBlbmNvZGVyLmVuY29kZShzdHJpbmdWYWx1ZSgpKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBOUFZhcmlhbnREYXRhOjpMb2NhbE5QT2JqZWN0SUQ6Ci0gICAg
ICAgIGVuY29kZXItPmVuY29kZShsb2NhbE5QT2JqZWN0SURWYWx1ZSgpKTsKKyAgICAgICAgZW5j
b2Rlci5lbmNvZGUobG9jYWxOUE9iamVjdElEVmFsdWUoKSk7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgTlBWYXJpYW50RGF0YTo6UmVtb3RlTlBPYmplY3RJRDoKLSAgICAgICAgZW5jb2Rlci0+
ZW5jb2RlKHJlbW90ZU5QT2JqZWN0SURWYWx1ZSgpKTsKKyAgICAgICAgZW5jb2Rlci5lbmNvZGUo
cmVtb3RlTlBPYmplY3RJRFZhbHVlKCkpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUFZhcmlhbnREYXRhLmggYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUFZhcmlhbnREYXRhLmgKaW5kZXggODA1NjQw
ZTllN2RmNmM4MDcyOTFhZjlhZDM0YjcwYzNlYzgzZmQwMy4uYTIzMjA0NjE2ZmM4NjAxNDNkYzcy
ZmRmMjI3NDYzMTNhZWVkYWQ3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1Bs
dWdpbnMvTlBWYXJpYW50RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5z
L05QVmFyaWFudERhdGEuaApAQCAtMTAwLDcgKzEwMCw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0
dXJuIG1fcmVtb3RlTlBPYmplY3RJRFZhbHVlOwogICAgIH0KIAotICAgIHZvaWQgZW5jb2RlKENv
cmVJUEM6OkFyZ3VtZW50RW5jb2RlciopIGNvbnN0OworICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6
OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqLCBOUFZhcmlhbnREYXRhJik7CiAKIHByaXZhdGU6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL1BsdWdpblByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IDFhMGE1MmM0MWVjOTlhMWZmNTE4NTA3MzRh
NDhhOTFmZjM5NjFjZjEuLmMwYzYyNmU1YzA0Mjc3ZWMwMWQwZWVlMDM1YmQ1YmY4OTI2YzM2N2Eg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL1BsdWdpblByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5z
L1BsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC0zNywxNyArMzcsMTcgQEAg
UGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6UGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycygpCiB7CiB9CiAKLXZvaWQgUGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6
ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKK3ZvaWQgUGx1
Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5j
b2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyLT5lbmNvZGUocGx1Z2luUGF0aCk7
Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHN1cHBvcnRzQXN5bmNocm9ub3VzUGx1Z2luSW5pdGlhbGl6
YXRpb24pOwotICAgIGVuY29kZXItPmVuY29kZShtaW5pbXVtTGlmZXRpbWUpOwotICAgIGVuY29k
ZXItPmVuY29kZSh0ZXJtaW5hdGlvblRpbWVvdXQpOworICAgIGVuY29kZXIuZW5jb2RlKHBsdWdp
blBhdGgpOworICAgIGVuY29kZXIuZW5jb2RlKHN1cHBvcnRzQXN5bmNocm9ub3VzUGx1Z2luSW5p
dGlhbGl6YXRpb24pOworICAgIGVuY29kZXIuZW5jb2RlKG1pbmltdW1MaWZldGltZSk7CisgICAg
ZW5jb2Rlci5lbmNvZGUodGVybWluYXRpb25UaW1lb3V0KTsKIAogI2lmIFBMQVRGT1JNKE1BQykK
LSAgICBlbmNvZGVyLT5lbmNvZGUocGFyZW50UHJvY2Vzc05hbWUpOwotICAgIGVuY29kZXItPmVu
Y29kZShhY2NlbGVyYXRlZENvbXBvc2l0aW5nUG9ydCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHNh
bmRib3hQcm9maWxlRGlyZWN0b3J5UGF0aCk7CisgICAgZW5jb2Rlci5lbmNvZGUocGFyZW50UHJv
Y2Vzc05hbWUpOworICAgIGVuY29kZXIuZW5jb2RlKGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdQb3J0
KTsKKyAgICBlbmNvZGVyLmVuY29kZShzYW5kYm94UHJvZmlsZURpcmVjdG9yeVBhdGgpOwogI2Vu
ZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL1BsdWdp
blByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVn
aW5zL1BsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCA1NDQzNzRhZDE1ZjVm
MTQ4NjU2YzkzOTU0OGYyYTFkOWE1YjlhMGUzLi5hNDE0MjEyYmU5YTBmNjgyZWM4NWEzMGNlOGRm
MDQ3MzVkZTVjMTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9Q
bHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC00NCw3ICs0
NCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogc3RydWN0IFBsdWdpblByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMgewogICAgIFBsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMoKTsKIAotICAg
IHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciopIGNvbnN0OworICAgIHZvaWQg
ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29s
IGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBQbHVnaW5Qcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzJik7CiAKICAgICBTdHJpbmcgcGx1Z2luUGF0aDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9QcmludEluZm8uY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1By
aW50SW5mby5jcHAKaW5kZXggMTA3ODg0YTA3YjM2MGIxODUxYjNiZjRmNGE5MDU2YWJhNDFkYTE1
Mi4uZDFiYTUwMmYwYmNmYmRjMzYzMWZmMmJiYmZkY2YzZWE2ODg0OGI1NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL1ByaW50SW5mby5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL1ByaW50SW5mby5jcHAKQEAgLTQzLDExICs0MywxMSBAQCBQcmludEluZm86OlByaW50
SW5mbygpCiB7CiB9CiAKLXZvaWQgUHJpbnRJbmZvOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRF
bmNvZGVyKiBlbmNvZGVyKSBjb25zdAordm9pZCBQcmludEluZm86OmVuY29kZShDb3JlSVBDOjpB
cmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHBh
Z2VTZXR1cFNjYWxlRmFjdG9yKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoYXZhaWxhYmxlUGFwZXJX
aWR0aCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGF2YWlsYWJsZVBhcGVySGVpZ2h0KTsKKyAgICBl
bmNvZGVyLmVuY29kZShwYWdlU2V0dXBTY2FsZUZhY3Rvcik7CisgICAgZW5jb2Rlci5lbmNvZGUo
YXZhaWxhYmxlUGFwZXJXaWR0aCk7CisgICAgZW5jb2Rlci5lbmNvZGUoYXZhaWxhYmxlUGFwZXJI
ZWlnaHQpOwogCiAjaWYgUExBVEZPUk0oR1RLKQogICAgIENvcmVJUEM6OmVuY29kZShlbmNvZGVy
LCBwcmludFNldHRpbmdzLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9QcmludEluZm8uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QcmludEluZm8uaAppbmRleCBi
NzNiN2M1ZTNlZTdhMjNhYTJlYjU3YmZjYzk0MDVmNGUzNDI1Yjk2Li45N2ZhY2ViZDBjYzU4MTk5
ZmJjNTEyYzkzOTdiMzI4MGUyZjUzYmQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvUHJpbnRJbmZvLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1ByaW50SW5mby5oCkBA
IC02Myw3ICs2Myw3IEBAIHN0cnVjdCBQcmludEluZm8gewogICAgIEdSZWZQdHI8R3RrUGFnZVNl
dHVwPiBwYWdlU2V0dXA7CiAjZW5kaWYKIAotICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3Vt
ZW50RW5jb2RlciopIGNvbnN0OworICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5j
b2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqLCBQcmludEluZm8mKTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9TYW5kYm94RXh0ZW5zaW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2FuZGJveEV4
dGVuc2lvbi5oCmluZGV4IDRmZGIxZWQ2M2RjNTRjZDAyOGMwZGQxYTJkYjk0YWVlZmIwYjU1YWEu
LmUxYTkwNGFmMTdkMWUxMGU0ZmI5OGVlMzcwZThhYWI3NTExNDgyNjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9TYW5kYm94RXh0ZW5zaW9uLmgKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1NhbmRib3hFeHRlbnNpb24uaApAQCAtNTgsNyArNTgsNyBAQCBwdWJsaWM6CiAg
ICAgICAgIEhhbmRsZSgpOwogICAgICAgICB+SGFuZGxlKCk7CiAKLSAgICAgICAgdm9pZCBlbmNv
ZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKikgY29uc3Q7CisgICAgICAgIHZvaWQgZW5jb2Rl
KENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OwogICAgICAgICBzdGF0aWMgYm9vbCBk
ZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgSGFuZGxlJik7CiAKICAgICBwcml2YXRl
OgpAQCAtNzgsNyArNzgsNyBAQCBwdWJsaWM6CiAgICAgICAgIEhhbmRsZSYgb3BlcmF0b3JbXShz
aXplX3QgaSk7CiAgICAgICAgIGNvbnN0IEhhbmRsZSYgb3BlcmF0b3JbXShzaXplX3QgaSkgY29u
c3Q7CiAgICAgICAgIHNpemVfdCBzaXplKCkgY29uc3Q7Ci0gICAgICAgIHZvaWQgZW5jb2RlKENv
cmVJUEM6OkFyZ3VtZW50RW5jb2RlciopIGNvbnN0OworICAgICAgICB2b2lkIGVuY29kZShDb3Jl
SVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKICAgICAgICAgc3RhdGljIGJvb2wgZGVjb2Rl
KENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIEhhbmRsZUFycmF5Jik7CiAgICAgICAgCiAgICAg
cHJpdmF0ZToKQEAgLTExNCw3ICsxMTQsNyBAQCBwcml2YXRlOgogI2lmICFFTkFCTEUoV0VCX1BS
T0NFU1NfU0FOREJPWCkKIGlubGluZSBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU6OkhhbmRsZSgp
IHsgfQogaW5saW5lIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZTo6fkhhbmRsZSgpIHsgfQotaW5s
aW5lIHZvaWQgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlOjplbmNvZGUoQ29yZUlQQzo6QXJndW1l
bnRFbmNvZGVyKikgY29uc3QgeyB9CitpbmxpbmUgdm9pZCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5k
bGU6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdCB7IH0KIGlubGluZSBi
b29sIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVj
b2RlciosIEhhbmRsZSYpIHsgcmV0dXJuIHRydWU7IH0KIGlubGluZSBTYW5kYm94RXh0ZW5zaW9u
OjpIYW5kbGVBcnJheTo6SGFuZGxlQXJyYXkoKSB7IH0KIGlubGluZSBTYW5kYm94RXh0ZW5zaW9u
OjpIYW5kbGVBcnJheTo6fkhhbmRsZUFycmF5KCkgeyB9CkBAIC0xMjIsNyArMTIyLDcgQEAgaW5s
aW5lIHZvaWQgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXk6OmFsbG9jYXRlKHNpemVfdCkg
eyB9CiBpbmxpbmUgc2l6ZV90IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5OjpzaXplKCkg
Y29uc3QgeyByZXR1cm4gMDsgfSAgICAKIGlubGluZSBjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpI
YW5kbGUmIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5OjpvcGVyYXRvcltdKHNpemVfdCkg
Y29uc3QgeyByZXR1cm4gbV9lbXB0eUhhbmRsZTsgfQogaW5saW5lIFNhbmRib3hFeHRlbnNpb246
OkhhbmRsZSYgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXk6Om9wZXJhdG9yW10oc2l6ZV90
KSB7IHJldHVybiBtX2VtcHR5SGFuZGxlOyB9Ci1pbmxpbmUgdm9pZCBTYW5kYm94RXh0ZW5zaW9u
OjpIYW5kbGVBcnJheTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciopIGNvbnN0IHsg
fQoraW5saW5lIHZvaWQgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXk6OmVuY29kZShDb3Jl
SVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdCB7IH0KIGlubGluZSBib29sIFNhbmRib3hFeHRl
bnNpb246OkhhbmRsZUFycmF5OjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgSGFu
ZGxlQXJyYXkmKSB7IHJldHVybiB0cnVlOyB9CiBpbmxpbmUgUGFzc1JlZlB0cjxTYW5kYm94RXh0
ZW5zaW9uPiBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGUoY29uc3QgSGFuZGxlJikgeyByZXR1cm4g
MDsgfQogaW5saW5lIHZvaWQgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlKGNvbnN0IFN0
cmluZyYsIFR5cGUsIEhhbmRsZSYpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL1NlY3VyaXR5T3JpZ2luRGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2VjdXJp
dHlPcmlnaW5EYXRhLmNwcAppbmRleCBjZjk1NTFiZmM2OTA1YTZkMTcwOGIxMjVkNDE2MDYwMTNi
YjYyZjE2Li42Yzc0MmFiMDE3OWFjOGY1N2JjZmZjNTQwNTIyYzljNjBkNzEzNzk1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2VjdXJpdHlPcmlnaW5EYXRhLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2VjdXJpdHlPcmlnaW5EYXRhLmNwcApAQCAtMzUsMTEgKzM1
LDExIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAot
dm9pZCBTZWN1cml0eU9yaWdpbkRhdGE6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIq
IGVuY29kZXIpIGNvbnN0Cit2b2lkIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZW5jb2RlKENvcmVJUEM6
OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyLT5lbmNvZGUo
cHJvdG9jb2wpOwotICAgIGVuY29kZXItPmVuY29kZShob3N0KTsKLSAgICBlbmNvZGVyLT5lbmNv
ZGUocG9ydCk7CisgICAgZW5jb2Rlci5lbmNvZGUocHJvdG9jb2wpOworICAgIGVuY29kZXIuZW5j
b2RlKGhvc3QpOworICAgIGVuY29kZXIuZW5jb2RlKHBvcnQpOwogfQogCiBib29sIFNlY3VyaXR5
T3JpZ2luRGF0YTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgU2Vj
dXJpdHlPcmlnaW5EYXRhJiBzZWN1cml0eU9yaWdpbkRhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvU2VjdXJpdHlPcmlnaW5EYXRhLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvU2VjdXJpdHlPcmlnaW5EYXRhLmgKaW5kZXggNjkyYTk2ZTE1YzU1NzMyOTcwMGI0ZmM1YjYw
YmJjYTdlMjYxOTFhNC4uOTM5MDliYzZlY2IyODNiOWU2YjE1NzRjZmI5NGRiMmVhYmI5Y2I4ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1NlY3VyaXR5T3JpZ2luRGF0YS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZWN1cml0eU9yaWdpbkRhdGEuaApAQCAtNDAsNyAr
NDAsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIHR5cGVkZWYgR2VuZXJpY0NhbGxiYWNrPFdLQXJy
YXlSZWY+IEFycmF5Q2FsbGJhY2s7CiAKIHN0cnVjdCBTZWN1cml0eU9yaWdpbkRhdGEgewotICAg
IHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciopIGNvbnN0OworICAgIHZvaWQg
ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29s
IGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBTZWN1cml0eU9yaWdpbkRhdGEmKTsK
IAogICAgIC8vIEZJWE1FIDxyZGFyOi8vOTAxODM4Nj46IFdlIHNob3VsZCBiZSBzZW5kaW5nIG1v
cmUgc3RhdGUgYWNyb3NzIHRoZSB3aXJlIHRoYW4ganVzdCB0aGUgcHJvdG9jb2wsCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2Vzc2lvblN0YXRlLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9TZXNzaW9uU3RhdGUuY3BwCmluZGV4IGIyNTI4OWEzMjUwOTkzYjdhODU2MWRm
YWU0NDhhMWNhYTU3ODAwZWYuLjc4MWVhNjY1ZjEwOWRkODZhYjExZjMwZGFkNmY3MmVlYjg5Mzkw
ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZXNzaW9uU3RhdGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZXNzaW9uU3RhdGUuY3BwCkBAIC02NCwxMCArNjQs
MTAgQEAgYm9vbCBTZXNzaW9uU3RhdGU6OmlzRW1wdHkoKSBjb25zdAogICAgIHJldHVybiBtX2xp
c3QuaXNFbXB0eSgpOwogfQogICAgIAotdm9pZCBTZXNzaW9uU3RhdGU6OmVuY29kZShDb3JlSVBD
OjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Cit2b2lkIFNlc3Npb25TdGF0ZTo6ZW5j
b2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNv
ZGVyLT5lbmNvZGUobV9saXN0KTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobV9jdXJyZW50SW5kZXgp
OworICAgIGVuY29kZXIuZW5jb2RlKG1fbGlzdCk7CisgICAgZW5jb2Rlci5lbmNvZGUobV9jdXJy
ZW50SW5kZXgpOwogfQogCiBib29sIFNlc3Npb25TdGF0ZTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciogZGVjb2RlciwgU2Vzc2lvblN0YXRlJiBzdGF0ZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9TZXNzaW9uU3RhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9TZXNzaW9uU3RhdGUuaAppbmRleCA4YWExODk0OGQ2ZGUxZGZiMWYyNDYwNTA1NmQ0MzEzMmMz
NjhmNzJkLi4xOTQyMmExZjBlNjgyNTUxNWEzYWEwZjA2M2E3YTA1MzFhMmZkZDIyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2Vzc2lvblN0YXRlLmgKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL1Nlc3Npb25TdGF0ZS5oCkBAIC00NSw3ICs0NSw3IEBAIHB1YmxpYzoKIAog
ICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0OwogCi0gICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJn
dW1lbnRFbmNvZGVyKikgY29uc3Q7CisgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRF
bmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciosIFNlc3Npb25TdGF0ZSYpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1NoYXJlYWJsZUJpdG1hcC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvU2hhcmVhYmxlQml0bWFwLmNwcAppbmRleCBjZGUzYWExNjU3MzA2MGIwYThiZWMzNjU0YjBi
ZWM0M2MyZmQ0MDE3Li4xZmIwNzJmZGI0MGZjOGUwZTY2MmJiZGM2OGNiMmQ1YmI0N2JlYTBhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxlQml0bWFwLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxlQml0bWFwLmNwcApAQCAtMzksMTEgKzM5
LDExIEBAIFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlOjpIYW5kbGUoKQogewogfQogCi12b2lkIFNo
YXJlYWJsZUJpdG1hcDo6SGFuZGxlOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBl
bmNvZGVyKSBjb25zdAordm9pZCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZTo6ZW5jb2RlKENvcmVJ
UEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyLT5lbmNv
ZGUobV9oYW5kbGUpOwotICAgIGVuY29kZXItPmVuY29kZShtX3NpemUpOwotICAgIGVuY29kZXIt
PmVuY29kZShtX2ZsYWdzKTsKKyAgICBlbmNvZGVyLmVuY29kZShtX2hhbmRsZSk7CisgICAgZW5j
b2Rlci5lbmNvZGUobV9zaXplKTsKKyAgICBlbmNvZGVyLmVuY29kZShtX2ZsYWdzKTsKIH0KIAog
Ym9vbCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVj
b2RlciogZGVjb2RlciwgSGFuZGxlJiBoYW5kbGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvU2hhcmVhYmxlQml0bWFwLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVh
YmxlQml0bWFwLmgKaW5kZXggMmFmMjI4ZTZmYThiYTNmNzczNWQyNTc1NDU1NzM3MDRhOGIyZWMy
MC4uOGRiZjFkZGZlOWZkYmYxNDNlNGVmMzljZDljZDg0ZTc0ZGM2NzMxMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL1NoYXJlYWJsZUJpdG1hcC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9TaGFyZWFibGVCaXRtYXAuaApAQCAtNzIsNyArNzIsNyBAQCBwdWJsaWM6CiAK
ICAgICAgICAgYm9vbCBpc051bGwoKSBjb25zdCB7IHJldHVybiBtX2hhbmRsZS5pc051bGwoKTsg
fQogCi0gICAgICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciopIGNvbnN0
OworICAgICAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsK
ICAgICAgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIEhh
bmRsZSYpOwogCiAgICAgcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9TaGFyZWFibGVTdXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWFibGVT
dXJmYWNlLmNwcAppbmRleCBmNzA3Njk4OTUzZWIzOTRjYjQzMmJkZmJkYjcxMWI1MTRhYmRlMTYw
Li5iZjhmYTEwNjk5MzVjOTY2NzQ1NjYyZjBmMTI3ZmRiMjk0N2M2NTg1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxlU3VyZmFjZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL1NoYXJlYWJsZVN1cmZhY2UuY3BwCkBAIC0zNywxNiArMzcsMTYgQEAgU2hh
cmVhYmxlU3VyZmFjZTo6SGFuZGxlOjpIYW5kbGUoKQogewogfQogCi12b2lkIFNoYXJlYWJsZVN1
cmZhY2U6OkhhbmRsZTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2Rlcikg
Y29uc3QKK3ZvaWQgU2hhcmVhYmxlU3VyZmFjZTo6SGFuZGxlOjplbmNvZGUoQ29yZUlQQzo6QXJn
dW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXItPmVuY29kZShtX3Np
emUpOwotICAgIGVuY29kZXItPmVuY29kZShtX2ZsYWdzKTsKKyAgICBlbmNvZGVyLmVuY29kZSht
X3NpemUpOworICAgIGVuY29kZXIuZW5jb2RlKG1fZmxhZ3MpOwogI2lmIFVTRShHUkFQSElDU19T
VVJGQUNFKQotICAgIGVuY29kZXItPmVuY29kZShtX2dyYXBoaWNzU3VyZmFjZVRva2VuKTsKKyAg
ICBlbmNvZGVyLmVuY29kZShtX2dyYXBoaWNzU3VyZmFjZVRva2VuKTsKICAgICBpZiAobV9ncmFw
aGljc1N1cmZhY2VUb2tlbi5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybjsKICNlbmRpZgotICAg
IGVuY29kZXItPmVuY29kZShtX2JpdG1hcEhhbmRsZSk7CisgICAgZW5jb2Rlci5lbmNvZGUobV9i
aXRtYXBIYW5kbGUpOwogfQogCiBib29sIFNoYXJlYWJsZVN1cmZhY2U6OkhhbmRsZTo6ZGVjb2Rl
KENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgSGFuZGxlJiBoYW5kbGUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxlU3VyZmFjZS5oIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL1NoYXJlYWJsZVN1cmZhY2UuaAppbmRleCA1OThkYzU5MTFjNzhiZmM2
MTE5ODU1NjQ2NTllZWZlYjgwMTA4MDBiLi5lMGU3YTM5ZjI4YTc2NzE1NWE0ZTliZmZkY2U5N2Zh
NDU5YjdkZjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxlU3Vy
ZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWFibGVTdXJmYWNlLmgKQEAg
LTUxLDcgKzUxLDcgQEAgcHVibGljOgogCiAgICAgICAgIGJvb2wgaXNOdWxsKCkgY29uc3Q7CiAK
LSAgICAgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKikgY29uc3Q7Cisg
ICAgICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OwogICAg
ICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgSGFuZGxl
Jik7CiAKICNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9TaGFyZWRXb3JrZXJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWRXb3JrZXJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmNwcAppbmRleCBiNjY5MzA3ZWJjMjMwNmZmOTdiODBlNDk3M2NjZWMxNzk0YzliYWYzLi45OTQx
YjA2MTVjMjFlODgyNWU4ODBmMmI2NWVjNmRmMmE1YWEyNzBjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvU2hhcmVkV29ya2VyUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1NoYXJlZFdvcmtlclByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuY3BwCkBAIC0zNiwxMyArMzYsMTMgQEAgU2hhcmVkV29ya2VyUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVyczo6U2hhcmVkV29ya2VyUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycygpCiB7
CiB9CiAKLXZvaWQgU2hhcmVkV29ya2VyUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2Rl
KENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKK3ZvaWQgU2hhcmVkV29y
a2VyUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5j
b2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyLT5lbmNvZGUobWluaW11bUxpZmV0
aW1lKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUodGVybWluYXRpb25UaW1lb3V0KTsKKyAgICBlbmNv
ZGVyLmVuY29kZShtaW5pbXVtTGlmZXRpbWUpOworICAgIGVuY29kZXIuZW5jb2RlKHRlcm1pbmF0
aW9uVGltZW91dCk7CiAKICNpZiBQTEFURk9STShNQUMpCi0gICAgZW5jb2Rlci0+ZW5jb2RlKHBh
cmVudFByb2Nlc3NOYW1lKTsKKyAgICBlbmNvZGVyLmVuY29kZShwYXJlbnRQcm9jZXNzTmFtZSk7
CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1NoYXJlZFdv
cmtlclByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9T
aGFyZWRXb3JrZXJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggM2ZlZjk3NTM1YjI0
NDY1YjA5NDQyNGE5NTI1OTNjZmNiOGNjMzgyMS4uY2NkMjU3ZWI5ZTNiMzMxYjk1NzlmZTNmODAy
NzYxYjA5NDRjNThkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1NoYXJlZFdv
cmtlclByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvU2hhcmVkV29ya2VyUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC00NCw3ICs0NCw3
IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogc3RydWN0IFNoYXJlZFdvcmtlclByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMgewogICAgIFNoYXJlZFdvcmtlclByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMo
KTsKIAotICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciopIGNvbnN0Owor
ICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OwogICAgIHN0
YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBTaGFyZWRXb3JrZXJQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJik7CiAKICAgICBkb3VibGUgbWluaW11bUxpZmV0aW1l
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1N0YXRpc3RpY3NEYXRhLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TdGF0aXN0aWNzRGF0YS5jcHAKaW5kZXggNTlmZWY3YTc3
ODkyZGY2OGQ3MjczM2E2MDBjNWVjZjY2NThhZDM2Mi4uNjRkYjE3YTEzZTc2MTQ3NDk0NzgzMGZi
M2VmMTAxNjgyOTRiMjU5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1N0YXRp
c3RpY3NEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU3RhdGlzdGljc0RhdGEu
Y3BwCkBAIC0zMCwxMiArMzAsMTIgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXZvaWQgU3Rh
dGlzdGljc0RhdGE6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNv
bnN0Cit2b2lkIFN0YXRpc3RpY3NEYXRhOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVy
JiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXItPmVuY29kZShzdGF0aXN0aWNzTnVtYmVy
cyk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGphdmFTY3JpcHRQcm90ZWN0ZWRPYmplY3RUeXBlQ291
bnRzKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoamF2YVNjcmlwdE9iamVjdFR5cGVDb3VudHMpOwot
ICAgIGVuY29kZXItPmVuY29kZSh3ZWJDb3JlQ2FjaGVTdGF0aXN0aWNzKTsKKyAgICBlbmNvZGVy
LmVuY29kZShzdGF0aXN0aWNzTnVtYmVycyk7CisgICAgZW5jb2Rlci5lbmNvZGUoamF2YVNjcmlw
dFByb3RlY3RlZE9iamVjdFR5cGVDb3VudHMpOworICAgIGVuY29kZXIuZW5jb2RlKGphdmFTY3Jp
cHRPYmplY3RUeXBlQ291bnRzKTsKKyAgICBlbmNvZGVyLmVuY29kZSh3ZWJDb3JlQ2FjaGVTdGF0
aXN0aWNzKTsKIH0KIAogYm9vbCBTdGF0aXN0aWNzRGF0YTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciogZGVjb2RlciwgU3RhdGlzdGljc0RhdGEmIHN0YXRpc3RpY3NEYXRhKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1N0YXRpc3RpY3NEYXRhLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvU3RhdGlzdGljc0RhdGEuaAppbmRleCAyYzgyYzI4YmQ4Mzk1MjlhMDNj
MDlmMzJkNDQ2Y2I0YzE4YWFlZmQ4Li43MzE1ZWQyNTA4ZjE1N2Y1NmE4NmU1YzYzYTIyMmZhMTE0
ZWRlZjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU3RhdGlzdGljc0RhdGEu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU3RhdGlzdGljc0RhdGEuaApAQCAtMzYsNyAr
MzYsNyBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHN0cnVjdCBTdGF0aXN0aWNzRGF0YSB7Ci0g
ICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKikgY29uc3Q7CisgICAgdm9p
ZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJv
b2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIFN0YXRpc3RpY3NEYXRhJik7CiAg
ICAgCiAgICAgSGFzaE1hcDxTdHJpbmcsIHVpbnQ2NF90PiBzdGF0aXN0aWNzTnVtYmVyczsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TdHJpbmdQYWlyVmVjdG9yLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvU3RyaW5nUGFpclZlY3Rvci5oCmluZGV4IGNlMmRhNGEwOWIzNGYz
MTU0NzY1ZDgwZmMxZGM4ODU4ZjEwODRmYTUuLjcwZmVhOTZmZmQyNGJiMGU5OGEwYTJlODMzZTg3
NjhkYjcxY2MzN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TdHJpbmdQYWly
VmVjdG9yLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1N0cmluZ1BhaXJWZWN0b3IuaApA
QCAtNDUsOSArNDUsOSBAQCBwdWJsaWM6CiAgICAgICAgIG1fc3RyaW5nUGFpclZlY3Rvci5zd2Fw
KHN0cmluZ1BhaXJWZWN0b3IpOwogICAgIH0KIAotICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFy
Z3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKKyAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpB
cmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgewotICAgICAgICBlbmNvZGVyLT5l
bmNvZGUobV9zdHJpbmdQYWlyVmVjdG9yKTsKKyAgICAgICAgZW5jb2Rlci5lbmNvZGUobV9zdHJp
bmdQYWlyVmVjdG9yKTsKICAgICB9CiAKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBTdHJpbmdQYWlyVmVjdG9yJiBzdHJpbmdQYWlyVmVj
dG9yKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1N1cmZhY2VVcGRhdGVJbmZv
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TdXJmYWNlVXBkYXRlSW5mby5jcHAKaW5kZXgg
MTUzMzM3OTNjMDk4NjY2NTAxOWI3YTdkYWZlZDIxNGQ0MGY4ZTA2Ni4uZmRhYzIxN2M1NWI5NTc2
ZDFlYTExZGEzNDdkOTAzZDU5MDU3NDQ4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL1N1cmZhY2VVcGRhdGVJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU3Vy
ZmFjZVVwZGF0ZUluZm8uY3BwCkBAIC0yNCwxMiArMjQsMTIgQEAKIAogbmFtZXNwYWNlIFdlYktp
dCB7CiAKLXZvaWQgU3VyZmFjZVVwZGF0ZUluZm86OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVu
Y29kZXIqIGVuY29kZXIpIGNvbnN0Cit2b2lkIFN1cmZhY2VVcGRhdGVJbmZvOjplbmNvZGUoQ29y
ZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXItPmVu
Y29kZSh1cGRhdGVSZWN0KTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoc2NhbGVGYWN0b3IpOwotICAg
IGVuY29kZXItPmVuY29kZShzdXJmYWNlSGFuZGxlKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoc3Vy
ZmFjZU9mZnNldCk7CisgICAgZW5jb2Rlci5lbmNvZGUodXBkYXRlUmVjdCk7CisgICAgZW5jb2Rl
ci5lbmNvZGUoc2NhbGVGYWN0b3IpOworICAgIGVuY29kZXIuZW5jb2RlKHN1cmZhY2VIYW5kbGUp
OworICAgIGVuY29kZXIuZW5jb2RlKHN1cmZhY2VPZmZzZXQpOwogfQogCiBib29sIFN1cmZhY2VV
cGRhdGVJbmZvOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBTdXJm
YWNlVXBkYXRlSW5mbyYgcmVzdWx0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L1N1cmZhY2VVcGRhdGVJbmZvLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU3VyZmFjZVVwZGF0
ZUluZm8uaAppbmRleCAwMWQ2MGQyNDI1ZDA0YWUwYTEwZDUzMzQzODhjMDg4OWYzZWNiMmFjLi4z
Y2Q5Y2UzYzcxNTVjOTA3NzE3ZTBkYWVhM2QxNmVlYWM2MWE5NjJmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvU3VyZmFjZVVwZGF0ZUluZm8uaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvU3VyZmFjZVVwZGF0ZUluZm8uaApAQCAtMzcsNyArMzcsNyBAQCBjbGFzcyBTdXJm
YWNlVXBkYXRlSW5mbyB7CiBwdWJsaWM6CiAgICAgU3VyZmFjZVVwZGF0ZUluZm8oKSB7IH0KIAot
ICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciopIGNvbnN0OworICAgIHZv
aWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBi
b29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBTdXJmYWNlVXBkYXRlSW5mbyYp
OwogCiAgICAgLy8gVGhlIHJlY3QgdG8gYmUgdXBkYXRlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9VcGRhdGVJbmZvLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9VcGRh
dGVJbmZvLmNwcAppbmRleCA1YmIxODk1OTdiYjA5YzMxMmY2YWU0N2Y3NzZkNzk1Y2YzMjkyMWRj
Li5mNzVhZDFiMDczMTg3MTBhOTMzZmVmZTQ5ZWYzOTVmNWUzZjMzOWY0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvVXBkYXRlSW5mby5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL1VwZGF0ZUluZm8uY3BwCkBAIC0zMCwxNyArMzAsMTcgQEAKIAogbmFtZXNwYWNlIFdl
YktpdCB7CiAKLXZvaWQgVXBkYXRlSW5mbzo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rl
ciogZW5jb2RlcikgY29uc3QKK3ZvaWQgVXBkYXRlSW5mbzo6ZW5jb2RlKENvcmVJUEM6OkFyZ3Vt
ZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyLT5lbmNvZGUodmlld1Np
emUpOwotICAgIGVuY29kZXItPmVuY29kZShkZXZpY2VTY2FsZUZhY3Rvcik7Ci0gICAgZW5jb2Rl
ci0+ZW5jb2RlKHNjcm9sbFJlY3QpOwotICAgIGVuY29kZXItPmVuY29kZShzY3JvbGxPZmZzZXQp
OwotICAgIGVuY29kZXItPmVuY29kZSh1cGRhdGVSZWN0Qm91bmRzKTsKLSAgICBlbmNvZGVyLT5l
bmNvZGUodXBkYXRlUmVjdHMpOwotICAgIGVuY29kZXItPmVuY29kZSh1cGRhdGVTY2FsZUZhY3Rv
cik7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGJpdG1hcEhhbmRsZSk7Ci0gICAgZW5jb2Rlci0+ZW5j
b2RlKGJpdG1hcE9mZnNldCk7CisgICAgZW5jb2Rlci5lbmNvZGUodmlld1NpemUpOworICAgIGVu
Y29kZXIuZW5jb2RlKGRldmljZVNjYWxlRmFjdG9yKTsKKyAgICBlbmNvZGVyLmVuY29kZShzY3Jv
bGxSZWN0KTsKKyAgICBlbmNvZGVyLmVuY29kZShzY3JvbGxPZmZzZXQpOworICAgIGVuY29kZXIu
ZW5jb2RlKHVwZGF0ZVJlY3RCb3VuZHMpOworICAgIGVuY29kZXIuZW5jb2RlKHVwZGF0ZVJlY3Rz
KTsKKyAgICBlbmNvZGVyLmVuY29kZSh1cGRhdGVTY2FsZUZhY3Rvcik7CisgICAgZW5jb2Rlci5l
bmNvZGUoYml0bWFwSGFuZGxlKTsKKyAgICBlbmNvZGVyLmVuY29kZShiaXRtYXBPZmZzZXQpOwog
fQogCiBib29sIFVwZGF0ZUluZm86OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRl
Y29kZXIsIFVwZGF0ZUluZm8mIHJlc3VsdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9VcGRhdGVJbmZvLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVXBkYXRlSW5mby5oCmlu
ZGV4IGUzYThkZTI3ODQ3NWU5NGM0Y2UwYjBjNDVjMTkyNzI4Njc0OGRjZjMuLmMxMWFhMzU0Mjg2
MWRiNjBhYmNmMzkyOWFlN2I1ZWU5YzAxOTEzNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9VcGRhdGVJbmZvLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1VwZGF0ZUlu
Zm8uaApAQCAtNDMsNyArNDMsNyBAQCBjbGFzcyBVcGRhdGVJbmZvIHsKIHB1YmxpYzoKICAgICBV
cGRhdGVJbmZvKCkgeyB9CiAKLSAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29k
ZXIqKSBjb25zdDsKKyAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBj
b25zdDsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwg
VXBkYXRlSW5mbyYpOwogCiAgICAgLy8gVGhlIHNpemUgb2YgdGhlIHdlYiB2aWV3LgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1VzZXJNZXNzYWdlQ29kZXJzLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvVXNlck1lc3NhZ2VDb2RlcnMuaAppbmRleCA5ZDhhYzVjNmI4ZjcyZGEw
ZjhiMDZmNDdhY2NkNjBiNWVlNWM1OGM1Li45ZWZmMmM5NTNiMGUyZThiZjY0Zjk4YzIzNzllMTZm
NDQ3YWJhOTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVXNlck1lc3NhZ2VD
b2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVXNlck1lc3NhZ2VDb2RlcnMuaApA
QCAtNjcsMTE5ICs2NywxMTkgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBPd25lcj4KIGNsYXNzIFVzZXJNZXNzYWdlRW5jb2RlciB7CiBwdWJsaWM6Ci0gICAgYm9vbCBi
YXNlRW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlciwgQVBJT2JqZWN0OjpU
eXBlJiB0eXBlKSBjb25zdCAKKyAgICBib29sIGJhc2VFbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRF
bmNvZGVyJiBlbmNvZGVyLCBBUElPYmplY3Q6OlR5cGUmIHR5cGUpIGNvbnN0CiAgICAgewogICAg
ICAgICBpZiAoIW1fcm9vdCkgewotICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKHN0YXRpY19j
YXN0PHVpbnQzMl90PihBUElPYmplY3Q6OlR5cGVOdWxsKSk7CisgICAgICAgICAgICBlbmNvZGVy
LmVuY29kZShzdGF0aWNfY2FzdDx1aW50MzJfdD4oQVBJT2JqZWN0OjpUeXBlTnVsbCkpOwogICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KIAogICAgICAgICB0eXBlID0gbV9yb290
LT50eXBlKCk7Ci0gICAgICAgIGVuY29kZXItPmVuY29kZShzdGF0aWNfY2FzdDx1aW50MzJfdD4o
dHlwZSkpOworICAgICAgICBlbmNvZGVyLmVuY29kZShzdGF0aWNfY2FzdDx1aW50MzJfdD4odHlw
ZSkpOwogCiAgICAgICAgIHN3aXRjaCAodHlwZSkgewogICAgICAgICBjYXNlIEFQSU9iamVjdDo6
VHlwZUFycmF5OiB7CiAgICAgICAgICAgICBJbW11dGFibGVBcnJheSogYXJyYXkgPSBzdGF0aWNf
Y2FzdDxJbW11dGFibGVBcnJheSo+KG1fcm9vdCk7Ci0gICAgICAgICAgICBlbmNvZGVyLT5lbmNv
ZGUoc3RhdGljX2Nhc3Q8dWludDY0X3Q+KGFycmF5LT5zaXplKCkpKTsKKyAgICAgICAgICAgIGVu
Y29kZXIuZW5jb2RlKHN0YXRpY19jYXN0PHVpbnQ2NF90PihhcnJheS0+c2l6ZSgpKSk7CiAgICAg
ICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGFycmF5LT5zaXplKCk7ICsraSkKLSAgICAg
ICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGUoT3duZXIoYXJyYXktPmF0KGkpKSk7CisgICAgICAg
ICAgICAgICAgZW5jb2Rlci5lbmNvZGUoT3duZXIoYXJyYXktPmF0KGkpKSk7CiAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgICAgICBjYXNlIEFQSU9iamVjdDo6VHlwZURp
Y3Rpb25hcnk6IHsKICAgICAgICAgICAgIEltbXV0YWJsZURpY3Rpb25hcnkqIGRpY3Rpb25hcnkg
PSBzdGF0aWNfY2FzdDxJbW11dGFibGVEaWN0aW9uYXJ5Kj4obV9yb290KTsKICAgICAgICAgICAg
IGNvbnN0IEltbXV0YWJsZURpY3Rpb25hcnk6Ok1hcFR5cGUmIG1hcCA9IGRpY3Rpb25hcnktPm1h
cCgpOwotICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKHN0YXRpY19jYXN0PHVpbnQ2NF90Piht
YXAuc2l6ZSgpKSk7CisgICAgICAgICAgICBlbmNvZGVyLmVuY29kZShzdGF0aWNfY2FzdDx1aW50
NjRfdD4obWFwLnNpemUoKSkpOwogCiAgICAgICAgICAgICBJbW11dGFibGVEaWN0aW9uYXJ5OjpN
YXBUeXBlOjpjb25zdF9pdGVyYXRvciBpdCA9IG1hcC5iZWdpbigpOwogICAgICAgICAgICAgSW1t
dXRhYmxlRGljdGlvbmFyeTo6TWFwVHlwZTo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbWFwLmVuZCgp
OwogICAgICAgICAgICAgZm9yICg7IGl0ICE9IGVuZDsgKytpdCkgewotICAgICAgICAgICAgICAg
IGVuY29kZXItPmVuY29kZShpdC0+a2V5KTsKLSAgICAgICAgICAgICAgICBlbmNvZGVyLT5lbmNv
ZGUoT3duZXIoaXQtPnZhbHVlLmdldCgpKSk7CisgICAgICAgICAgICAgICAgZW5jb2Rlci5lbmNv
ZGUoaXQtPmtleSk7CisgICAgICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGUoT3duZXIoaXQtPnZh
bHVlLmdldCgpKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICAgICAgfQogICAgICAgICBjYXNlIEFQSU9iamVjdDo6VHlwZVN0cmluZzogewogICAgICAgICAg
ICAgV2ViU3RyaW5nKiBzdHJpbmcgPSBzdGF0aWNfY2FzdDxXZWJTdHJpbmcqPihtX3Jvb3QpOwot
ICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKHN0cmluZy0+c3RyaW5nKCkpOworICAgICAgICAg
ICAgZW5jb2Rlci5lbmNvZGUoc3RyaW5nLT5zdHJpbmcoKSk7CiAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICAgICAgfQogICAgICAgICBjYXNlIEFQSU9iamVjdDo6VHlwZVNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZTogewogICAgICAgICAgICAgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlKiBzY3Jp
cHRWYWx1ZSA9IHN0YXRpY19jYXN0PFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSo+KG1fcm9vdCk7
Ci0gICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGVWYXJpYWJsZUxlbmd0aEJ5dGVBcnJheShzY3Jp
cHRWYWx1ZS0+ZGF0YVJlZmVyZW5jZSgpKTsKKyAgICAgICAgICAgIGVuY29kZXIuZW5jb2RlVmFy
aWFibGVMZW5ndGhCeXRlQXJyYXkoc2NyaXB0VmFsdWUtPmRhdGFSZWZlcmVuY2UoKSk7CiAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgICAgICBjYXNlIEFQSU9iamVjdDo6
VHlwZUJvb2xlYW46IHsKICAgICAgICAgICAgIFdlYkJvb2xlYW4qIGJvb2xlYW5PYmplY3QgPSBz
dGF0aWNfY2FzdDxXZWJCb29sZWFuKj4obV9yb290KTsKLSAgICAgICAgICAgIGVuY29kZXItPmVu
Y29kZShib29sZWFuT2JqZWN0LT52YWx1ZSgpKTsKKyAgICAgICAgICAgIGVuY29kZXIuZW5jb2Rl
KGJvb2xlYW5PYmplY3QtPnZhbHVlKCkpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
ICAgIH0KICAgICAgICAgY2FzZSBBUElPYmplY3Q6OlR5cGVEb3VibGU6IHsKICAgICAgICAgICAg
IFdlYkRvdWJsZSogZG91YmxlT2JqZWN0ID0gc3RhdGljX2Nhc3Q8V2ViRG91YmxlKj4obV9yb290
KTsKLSAgICAgICAgICAgIGVuY29kZXItPmVuY29kZShkb3VibGVPYmplY3QtPnZhbHVlKCkpOwor
ICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGUoZG91YmxlT2JqZWN0LT52YWx1ZSgpKTsKICAgICAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgQVBJT2JqZWN0OjpU
eXBlVUludDY0OiB7CiAgICAgICAgICAgICBXZWJVSW50NjQqIHVpbnQ2NE9iamVjdCA9IHN0YXRp
Y19jYXN0PFdlYlVJbnQ2NCo+KG1fcm9vdCk7Ci0gICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGUo
dWludDY0T2JqZWN0LT52YWx1ZSgpKTsKKyAgICAgICAgICAgIGVuY29kZXIuZW5jb2RlKHVpbnQ2
NE9iamVjdC0+dmFsdWUoKSk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQog
ICAgICAgICBjYXNlIEFQSU9iamVjdDo6VHlwZVBvaW50OiB7CiAgICAgICAgICAgICBXZWJQb2lu
dCogcG9pbnRPYmplY3QgPSBzdGF0aWNfY2FzdDxXZWJQb2ludCo+KG1fcm9vdCk7Ci0gICAgICAg
ICAgICBlbmNvZGVyLT5lbmNvZGUocG9pbnRPYmplY3QtPnBvaW50KCkueCk7Ci0gICAgICAgICAg
ICBlbmNvZGVyLT5lbmNvZGUocG9pbnRPYmplY3QtPnBvaW50KCkueSk7CisgICAgICAgICAgICBl
bmNvZGVyLmVuY29kZShwb2ludE9iamVjdC0+cG9pbnQoKS54KTsKKyAgICAgICAgICAgIGVuY29k
ZXIuZW5jb2RlKHBvaW50T2JqZWN0LT5wb2ludCgpLnkpOwogICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBBUElPYmplY3Q6OlR5cGVTaXplOiB7CiAgICAg
ICAgICAgICBXZWJTaXplKiBzaXplT2JqZWN0ID0gc3RhdGljX2Nhc3Q8V2ViU2l6ZSo+KG1fcm9v
dCk7Ci0gICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGUoc2l6ZU9iamVjdC0+c2l6ZSgpLndpZHRo
KTsKLSAgICAgICAgICAgIGVuY29kZXItPmVuY29kZShzaXplT2JqZWN0LT5zaXplKCkuaGVpZ2h0
KTsKKyAgICAgICAgICAgIGVuY29kZXIuZW5jb2RlKHNpemVPYmplY3QtPnNpemUoKS53aWR0aCk7
CisgICAgICAgICAgICBlbmNvZGVyLmVuY29kZShzaXplT2JqZWN0LT5zaXplKCkuaGVpZ2h0KTsK
ICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgQVBJT2Jq
ZWN0OjpUeXBlUmVjdDogewogICAgICAgICAgICAgV2ViUmVjdCogcmVjdE9iamVjdCA9IHN0YXRp
Y19jYXN0PFdlYlJlY3QqPihtX3Jvb3QpOwotICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKHJl
Y3RPYmplY3QtPnJlY3QoKS5vcmlnaW4ueCk7Ci0gICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGUo
cmVjdE9iamVjdC0+cmVjdCgpLm9yaWdpbi55KTsKLSAgICAgICAgICAgIGVuY29kZXItPmVuY29k
ZShyZWN0T2JqZWN0LT5yZWN0KCkuc2l6ZS53aWR0aCk7Ci0gICAgICAgICAgICBlbmNvZGVyLT5l
bmNvZGUocmVjdE9iamVjdC0+cmVjdCgpLnNpemUuaGVpZ2h0KTsKKyAgICAgICAgICAgIGVuY29k
ZXIuZW5jb2RlKHJlY3RPYmplY3QtPnJlY3QoKS5vcmlnaW4ueCk7CisgICAgICAgICAgICBlbmNv
ZGVyLmVuY29kZShyZWN0T2JqZWN0LT5yZWN0KCkub3JpZ2luLnkpOworICAgICAgICAgICAgZW5j
b2Rlci5lbmNvZGUocmVjdE9iamVjdC0+cmVjdCgpLnNpemUud2lkdGgpOworICAgICAgICAgICAg
ZW5jb2Rlci5lbmNvZGUocmVjdE9iamVjdC0+cmVjdCgpLnNpemUuaGVpZ2h0KTsKICAgICAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgQVBJT2JqZWN0OjpUeXBl
UmVuZGVyTGF5ZXI6IHsKICAgICAgICAgICAgIFdlYlJlbmRlckxheWVyKiByZW5kZXJMYXllciA9
IHN0YXRpY19jYXN0PFdlYlJlbmRlckxheWVyKj4obV9yb290KTsKLSAgICAgICAgICAgIGVuY29k
ZXItPmVuY29kZShPd25lcihyZW5kZXJMYXllci0+cmVuZGVyZXIoKSkpOwotICAgICAgICAgICAg
ZW5jb2Rlci0+ZW5jb2RlKHJlbmRlckxheWVyLT5pc1JlZmxlY3Rpb24oKSk7Ci0gICAgICAgICAg
ICBlbmNvZGVyLT5lbmNvZGUocmVuZGVyTGF5ZXItPmlzQ2xpcHBpbmcoKSk7Ci0gICAgICAgICAg
ICBlbmNvZGVyLT5lbmNvZGUocmVuZGVyTGF5ZXItPmlzQ2xpcHBlZCgpKTsKLSAgICAgICAgICAg
IGVuY29kZXItPmVuY29kZShzdGF0aWNfY2FzdDx1aW50MzJfdD4ocmVuZGVyTGF5ZXItPmNvbXBv
c2l0aW5nTGF5ZXJUeXBlKCkpKTsKLSAgICAgICAgICAgIGVuY29kZXItPmVuY29kZShyZW5kZXJM
YXllci0+YWJzb2x1dGVCb3VuZGluZ0JveCgpKTsKLSAgICAgICAgICAgIGVuY29kZXItPmVuY29k
ZShPd25lcihyZW5kZXJMYXllci0+bmVnYXRpdmVaT3JkZXJMaXN0KCkpKTsKLSAgICAgICAgICAg
IGVuY29kZXItPmVuY29kZShPd25lcihyZW5kZXJMYXllci0+bm9ybWFsRmxvd0xpc3QoKSkpOwot
ICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKE93bmVyKHJlbmRlckxheWVyLT5wb3NpdGl2ZVpP
cmRlckxpc3QoKSkpOworICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGUoT3duZXIocmVuZGVyTGF5
ZXItPnJlbmRlcmVyKCkpKTsKKyAgICAgICAgICAgIGVuY29kZXIuZW5jb2RlKHJlbmRlckxheWVy
LT5pc1JlZmxlY3Rpb24oKSk7CisgICAgICAgICAgICBlbmNvZGVyLmVuY29kZShyZW5kZXJMYXll
ci0+aXNDbGlwcGluZygpKTsKKyAgICAgICAgICAgIGVuY29kZXIuZW5jb2RlKHJlbmRlckxheWVy
LT5pc0NsaXBwZWQoKSk7CisgICAgICAgICAgICBlbmNvZGVyLmVuY29kZShzdGF0aWNfY2FzdDx1
aW50MzJfdD4ocmVuZGVyTGF5ZXItPmNvbXBvc2l0aW5nTGF5ZXJUeXBlKCkpKTsKKyAgICAgICAg
ICAgIGVuY29kZXIuZW5jb2RlKHJlbmRlckxheWVyLT5hYnNvbHV0ZUJvdW5kaW5nQm94KCkpOwor
ICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGUoT3duZXIocmVuZGVyTGF5ZXItPm5lZ2F0aXZlWk9y
ZGVyTGlzdCgpKSk7CisgICAgICAgICAgICBlbmNvZGVyLmVuY29kZShPd25lcihyZW5kZXJMYXll
ci0+bm9ybWFsRmxvd0xpc3QoKSkpOworICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGUoT3duZXIo
cmVuZGVyTGF5ZXItPnBvc2l0aXZlWk9yZGVyTGlzdCgpKSk7CiAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICAgICAgfQogICAgICAgICBjYXNlIEFQSU9iamVjdDo6VHlwZVJlbmRlck9iamVj
dDogewogICAgICAgICAgICAgV2ViUmVuZGVyT2JqZWN0KiByZW5kZXJPYmplY3QgPSBzdGF0aWNf
Y2FzdDxXZWJSZW5kZXJPYmplY3QqPihtX3Jvb3QpOwotICAgICAgICAgICAgZW5jb2Rlci0+ZW5j
b2RlKHJlbmRlck9iamVjdC0+bmFtZSgpKTsKLSAgICAgICAgICAgIGVuY29kZXItPmVuY29kZShy
ZW5kZXJPYmplY3QtPmVsZW1lbnRUYWdOYW1lKCkpOwotICAgICAgICAgICAgZW5jb2Rlci0+ZW5j
b2RlKHJlbmRlck9iamVjdC0+ZWxlbWVudElEKCkpOwotICAgICAgICAgICAgZW5jb2Rlci0+ZW5j
b2RlKE93bmVyKHJlbmRlck9iamVjdC0+ZWxlbWVudENsYXNzTmFtZXMoKSkpOwotICAgICAgICAg
ICAgZW5jb2Rlci0+ZW5jb2RlKHJlbmRlck9iamVjdC0+YWJzb2x1dGVQb3NpdGlvbigpKTsKLSAg
ICAgICAgICAgIGVuY29kZXItPmVuY29kZShyZW5kZXJPYmplY3QtPmZyYW1lUmVjdCgpKTsKLSAg
ICAgICAgICAgIGVuY29kZXItPmVuY29kZShPd25lcihyZW5kZXJPYmplY3QtPmNoaWxkcmVuKCku
Z2V0KCkpKTsKKyAgICAgICAgICAgIGVuY29kZXIuZW5jb2RlKHJlbmRlck9iamVjdC0+bmFtZSgp
KTsKKyAgICAgICAgICAgIGVuY29kZXIuZW5jb2RlKHJlbmRlck9iamVjdC0+ZWxlbWVudFRhZ05h
bWUoKSk7CisgICAgICAgICAgICBlbmNvZGVyLmVuY29kZShyZW5kZXJPYmplY3QtPmVsZW1lbnRJ
RCgpKTsKKyAgICAgICAgICAgIGVuY29kZXIuZW5jb2RlKE93bmVyKHJlbmRlck9iamVjdC0+ZWxl
bWVudENsYXNzTmFtZXMoKSkpOworICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGUocmVuZGVyT2Jq
ZWN0LT5hYnNvbHV0ZVBvc2l0aW9uKCkpOworICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGUocmVu
ZGVyT2JqZWN0LT5mcmFtZVJlY3QoKSk7CisgICAgICAgICAgICBlbmNvZGVyLmVuY29kZShPd25l
cihyZW5kZXJPYmplY3QtPmNoaWxkcmVuKCkuZ2V0KCkpKTsKICAgICAgICAgICAgIHJldHVybiB0
cnVlOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgQVBJT2JqZWN0OjpUeXBlVVJMOiB7CiAgICAg
ICAgICAgICBXZWJVUkwqIHVybE9iamVjdCA9IHN0YXRpY19jYXN0PFdlYlVSTCo+KG1fcm9vdCk7
Ci0gICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGUodXJsT2JqZWN0LT5zdHJpbmcoKSk7CisgICAg
ICAgICAgICBlbmNvZGVyLmVuY29kZSh1cmxPYmplY3QtPnN0cmluZygpKTsKICAgICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgQVBJT2JqZWN0OjpUeXBlVVJM
UmVxdWVzdDogewogICAgICAgICAgICAgV2ViVVJMUmVxdWVzdCogdXJsUmVxdWVzdE9iamVjdCA9
IHN0YXRpY19jYXN0PFdlYlVSTFJlcXVlc3QqPihtX3Jvb3QpOwotICAgICAgICAgICAgZW5jb2Rl
ci0+ZW5jb2RlKHVybFJlcXVlc3RPYmplY3QtPnJlc291cmNlUmVxdWVzdCgpKTsKKyAgICAgICAg
ICAgIGVuY29kZXIuZW5jb2RlKHVybFJlcXVlc3RPYmplY3QtPnJlc291cmNlUmVxdWVzdCgpKTsK
ICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgQVBJT2Jq
ZWN0OjpUeXBlVXNlckNvbnRlbnRVUkxQYXR0ZXJuOiB7CiAgICAgICAgICAgICBXZWJVc2VyQ29u
dGVudFVSTFBhdHRlcm4qIHVybFBhdHRlcm4gPSBzdGF0aWNfY2FzdDxXZWJVc2VyQ29udGVudFVS
TFBhdHRlcm4qPihtX3Jvb3QpOwotICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKHVybFBhdHRl
cm4tPnBhdHRlcm5TdHJpbmcoKSk7CisgICAgICAgICAgICBlbmNvZGVyLmVuY29kZSh1cmxQYXR0
ZXJuLT5wYXR0ZXJuU3RyaW5nKCkpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAg
IH0KICAgICAgICAgY2FzZSBBUElPYmplY3Q6OlR5cGVJbWFnZTogewpAQCAtMTg5LDI0ICsxODks
MjQgQEAgcHVibGljOgogICAgICAgICAgICAgQVNTRVJUKCFpbWFnZS0+Yml0bWFwKCkgfHwgaW1h
Z2UtPmJpdG1hcCgpLT5pc0JhY2tlZEJ5U2hhcmVkTWVtb3J5KCkpOyAgICAgICAgICAgIAogICAg
ICAgICAgICAgaWYgKCFpbWFnZS0+Yml0bWFwKCkgfHwgIWltYWdlLT5iaXRtYXAoKS0+aXNCYWNr
ZWRCeVNoYXJlZE1lbW9yeSgpIHx8ICFpbWFnZS0+Yml0bWFwKCktPmNyZWF0ZUhhbmRsZShoYW5k
bGUpKSB7CiAgICAgICAgICAgICAgICAgLy8gSW5pdGlhbCBmYWxzZSBpbmRpY2F0ZXMgbm8gYWxs
b2NhdGVkIGJpdG1hcCBvciBpcyBub3Qgc2hhcmVhYmxlLgotICAgICAgICAgICAgICAgIGVuY29k
ZXItPmVuY29kZShmYWxzZSk7CisgICAgICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGUoZmFsc2Up
OwogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgfQogCiAgICAgICAg
ICAgICAvLyBJbml0aWFsIHRydWUgaW5kaWNhdGVzIGEgYml0bWFwIHdhcyBhbGxvY2F0ZWQgYW5k
IGlzIHNoYXJlYWJsZS4KLSAgICAgICAgICAgIGVuY29kZXItPmVuY29kZSh0cnVlKTsKKyAgICAg
ICAgICAgIGVuY29kZXIuZW5jb2RlKHRydWUpOwogCi0gICAgICAgICAgICBlbmNvZGVyLT5lbmNv
ZGUoaGFuZGxlKTsKKyAgICAgICAgICAgIGVuY29kZXIuZW5jb2RlKGhhbmRsZSk7CiAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgICAgICBjYXNlIEFQSU9iamVjdDo6VHlw
ZURhdGE6IHsKICAgICAgICAgICAgIFdlYkRhdGEqIGRhdGEgPSBzdGF0aWNfY2FzdDxXZWJEYXRh
Kj4obV9yb290KTsKLSAgICAgICAgICAgIGVuY29kZXItPmVuY29kZVZhcmlhYmxlTGVuZ3RoQnl0
ZUFycmF5KGRhdGEtPmRhdGFSZWZlcmVuY2UoKSk7CisgICAgICAgICAgICBlbmNvZGVyLmVuY29k
ZVZhcmlhYmxlTGVuZ3RoQnl0ZUFycmF5KGRhdGEtPmRhdGFSZWZlcmVuY2UoKSk7CiAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgICAgICBjYXNlIEFQSU9iamVjdDo6VHlw
ZUNlcnRpZmljYXRlSW5mbzogewogICAgICAgICAgICAgV2ViQ2VydGlmaWNhdGVJbmZvKiBjZXJ0
aWZpY2F0ZUluZm8gPSBzdGF0aWNfY2FzdDxXZWJDZXJ0aWZpY2F0ZUluZm8qPihtX3Jvb3QpOwot
ICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKGNlcnRpZmljYXRlSW5mby0+cGxhdGZvcm1DZXJ0
aWZpY2F0ZUluZm8oKSk7CisgICAgICAgICAgICBlbmNvZGVyLmVuY29kZShjZXJ0aWZpY2F0ZUlu
Zm8tPnBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvKCkpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgICAgIH0KICAgICAgICAgZGVmYXVsdDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJCYXR0ZXJ5U3RhdHVzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJC
YXR0ZXJ5U3RhdHVzLmNwcAppbmRleCAzMGE1ZTU5YTFjYTFjMzVhN2YwMTRlMTRmZDcxNGUwNzA5
N2YxMjkyLi4zMmFmMDFlZGRjYWQ1ZGQxZGU2MmMzNGFhZGE3Yjc0MjUwNTk1N2YzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQmF0dGVyeVN0YXR1cy5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYkJhdHRlcnlTdGF0dXMuY3BwCkBAIC00NSwxMiArNDUsMTIg
QEAgV2ViQmF0dGVyeVN0YXR1czo6fldlYkJhdHRlcnlTdGF0dXMoKQogewogfQogCi12b2lkIFdl
YkJhdHRlcnlTdGF0dXM6OkRhdGE6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVu
Y29kZXIpIGNvbnN0Cit2b2lkIFdlYkJhdHRlcnlTdGF0dXM6OkRhdGE6OmVuY29kZShDb3JlSVBD
OjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2Rlci0+ZW5jb2Rl
KGlzQ2hhcmdpbmcpOwotICAgIGVuY29kZXItPmVuY29kZShjaGFyZ2luZ1RpbWUpOwotICAgIGVu
Y29kZXItPmVuY29kZShkaXNjaGFyZ2luZ1RpbWUpOwotICAgIGVuY29kZXItPmVuY29kZShsZXZl
bCk7CisgICAgZW5jb2Rlci5lbmNvZGUoaXNDaGFyZ2luZyk7CisgICAgZW5jb2Rlci5lbmNvZGUo
Y2hhcmdpbmdUaW1lKTsKKyAgICBlbmNvZGVyLmVuY29kZShkaXNjaGFyZ2luZ1RpbWUpOworICAg
IGVuY29kZXIuZW5jb2RlKGxldmVsKTsKIH0KIAogYm9vbCBXZWJCYXR0ZXJ5U3RhdHVzOjpEYXRh
OjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBEYXRhJiByZXN1bHQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQmF0dGVyeVN0YXR1cy5oIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkJhdHRlcnlTdGF0dXMuaAppbmRleCBmZDFkNzkzMmQ3
YTUxM2E2Y2RiMDhiMDcyY2EwNzZjNDZmZWJiYjBjLi42YjYzMGY3MDhhZTg4ZjVjNTYwNjU0ODU5
Mjc4MTA4MWMxODkzNmY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQmF0
dGVyeVN0YXR1cy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJCYXR0ZXJ5U3RhdHVz
LmgKQEAgLTQwLDcgKzQwLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdCBUeXBlIEFQSVR5
cGUgPSBUeXBlQmF0dGVyeVN0YXR1czsKIAogICAgIHN0cnVjdCBEYXRhIHsKLSAgICAgICAgdm9p
ZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKikgY29uc3Q7CisgICAgICAgIHZvaWQg
ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OwogICAgICAgICBzdGF0aWMg
Ym9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgRGF0YSYpOwogCiAgICAgICAg
IGJvb2wgaXNDaGFyZ2luZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJD
b250ZXh0TWVudUl0ZW1EYXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb250ZXh0
TWVudUl0ZW1EYXRhLmNwcAppbmRleCA5MDFjZTljNDdmMWM1ZDMzYmNjMTZmYmJjYTA0ZDI0Yzll
ODMwMTdiLi45MTU5ZjAyOWNhNGRhOTdiNmUzZDI3NGViMmJmMmQyNTIzMDI2NWYyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvbnRleHRNZW51SXRlbURhdGEuY3BwCkBAIC0x
MDQsMTQgKzEwNCwxNCBAQCB2b2lkIFdlYkNvbnRleHRNZW51SXRlbURhdGE6OnNldFVzZXJEYXRh
KEFQSU9iamVjdCogdXNlckRhdGEpCiAgICAgbV91c2VyRGF0YSA9IHVzZXJEYXRhOwogfQogICAg
IAotdm9pZCBXZWJDb250ZXh0TWVudUl0ZW1EYXRhOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRF
bmNvZGVyKiBlbmNvZGVyKSBjb25zdAordm9pZCBXZWJDb250ZXh0TWVudUl0ZW1EYXRhOjplbmNv
ZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29k
ZXItPmVuY29kZUVudW0obV90eXBlKTsKLSAgICBlbmNvZGVyLT5lbmNvZGVFbnVtKG1fYWN0aW9u
KTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobV90aXRsZSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG1f
Y2hlY2tlZCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG1fZW5hYmxlZCk7Ci0gICAgZW5jb2Rlci0+
ZW5jb2RlKG1fc3VibWVudSk7CisgICAgZW5jb2Rlci5lbmNvZGVFbnVtKG1fdHlwZSk7CisgICAg
ZW5jb2Rlci5lbmNvZGVFbnVtKG1fYWN0aW9uKTsKKyAgICBlbmNvZGVyLmVuY29kZShtX3RpdGxl
KTsKKyAgICBlbmNvZGVyLmVuY29kZShtX2NoZWNrZWQpOworICAgIGVuY29kZXIuZW5jb2RlKG1f
ZW5hYmxlZCk7CisgICAgZW5jb2Rlci5lbmNvZGUobV9zdWJtZW51KTsKIH0KIAogYm9vbCBXZWJD
b250ZXh0TWVudUl0ZW1EYXRhOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNv
ZGVyLCBXZWJDb250ZXh0TWVudUl0ZW1EYXRhJiBpdGVtKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYkNvbnRleHRNZW51SXRlbURhdGEuaCBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJDb250ZXh0TWVudUl0ZW1EYXRhLmgKaW5kZXggMTA2YmRmMDE2MDhmOWJlYWIzZDc4
ODY2MDIwYzk0NzcwNzgyMWNmYi4uOTIxMmUyODEzMjIxYWYyNmU0N2Y1ZTE5NjY3NzA1MzJjNzQz
YTUyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvbnRleHRNZW51SXRl
bURhdGEuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29udGV4dE1lbnVJdGVtRGF0
YS5oCkBAIC02Myw3ICs2Myw3IEBAIHB1YmxpYzoKICAgICBBUElPYmplY3QqIHVzZXJEYXRhKCkg
Y29uc3Q7CiAgICAgdm9pZCBzZXRVc2VyRGF0YShBUElPYmplY3QqKTsKICAgICAKLSAgICB2b2lk
IGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqKSBjb25zdDsKKyAgICB2b2lkIGVuY29k
ZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKICAgICBzdGF0aWMgYm9vbCBkZWNv
ZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgV2ViQ29udGV4dE1lbnVJdGVtRGF0YSYpOwog
CiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkV2ZW50LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJFdmVudC5jcHAKaW5kZXggNzBiZmZhMmMxZTgx
N2FiMzJmYTllMTczZjRiMTgyZDQ4ODFmMDZmOC4uZDg2Y2Y4M2UxOWIyMzRkYjMwOWNlNDFlZWNh
NWZmOGYxZTI2N2JiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkV2ZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViRXZlbnQuY3BwCkBAIC00NiwxMSAr
NDYsMTEgQEAgV2ViRXZlbnQ6OldlYkV2ZW50KFR5cGUgdHlwZSwgTW9kaWZpZXJzIG1vZGlmaWVy
cywgZG91YmxlIHRpbWVzdGFtcCkKIHsKIH0KIAotdm9pZCBXZWJFdmVudDo6ZW5jb2RlKENvcmVJ
UEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKK3ZvaWQgV2ViRXZlbnQ6OmVuY29k
ZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2Rl
ci0+ZW5jb2RlKG1fdHlwZSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG1fbW9kaWZpZXJzKTsKLSAg
ICBlbmNvZGVyLT5lbmNvZGUobV90aW1lc3RhbXApOworICAgIGVuY29kZXIuZW5jb2RlKG1fdHlw
ZSk7CisgICAgZW5jb2Rlci5lbmNvZGUobV9tb2RpZmllcnMpOworICAgIGVuY29kZXIuZW5jb2Rl
KG1fdGltZXN0YW1wKTsKIH0KIAogYm9vbCBXZWJFdmVudDo6ZGVjb2RlKENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciogZGVjb2RlciwgV2ViRXZlbnQmIHJlc3VsdCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJFdmVudC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkV2
ZW50LmgKaW5kZXggODExMWQ1MTYwNTRjODhjNWUzMThhY2FkY2E2ODNkODIyNTQzMzhiOC4uOTY4
MWRjMTYwZGVmNTlhMWI2YTdlNGMyOWI5OWQwOGQ1YTA4Y2IxOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYkV2ZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YkV2ZW50LmgKQEAgLTEwMyw3ICsxMDMsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICBXZWJFdmVudChU
eXBlLCBNb2RpZmllcnMsIGRvdWJsZSB0aW1lc3RhbXApOwogCi0gICAgdm9pZCBlbmNvZGUoQ29y
ZUlQQzo6QXJndW1lbnRFbmNvZGVyKikgY29uc3Q7CisgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6
QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciosIFdlYkV2ZW50Jik7CiAKIHByaXZhdGU6CkBAIC0xNDAsNyArMTQw
LDcgQEAgcHVibGljOgogICAgIGJvb2wgZGlkQWN0aXZhdGVXZWJWaWV3KCkgY29uc3QgeyByZXR1
cm4gbV9kaWRBY3RpdmF0ZVdlYlZpZXc7IH0KICNlbmRpZgogCi0gICAgdm9pZCBlbmNvZGUoQ29y
ZUlQQzo6QXJndW1lbnRFbmNvZGVyKikgY29uc3Q7CisgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6
QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciosIFdlYk1vdXNlRXZlbnQmKTsKIAogcHJpdmF0ZToKQEAgLTE5OSw3
ICsxOTksNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiB1bmFjY2Vs
ZXJhdGVkU2Nyb2xsaW5nRGVsdGEoKSBjb25zdCB7IHJldHVybiBtX3VuYWNjZWxlcmF0ZWRTY3Jv
bGxpbmdEZWx0YTsgfQogI2VuZGlmCiAKLSAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVu
dEVuY29kZXIqKSBjb25zdDsKKyAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29k
ZXImKSBjb25zdDsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKiwgV2ViV2hlZWxFdmVudCYpOwogCiBwcml2YXRlOgpAQCAtMjM3LDcgKzIzNyw3IEBAIHB1
YmxpYzoKICAgICBib29sIGlzS2V5cGFkKCkgY29uc3QgeyByZXR1cm4gbV9pc0tleXBhZDsgfQog
ICAgIGJvb2wgaXNTeXN0ZW1LZXkoKSBjb25zdCB7IHJldHVybiBtX2lzU3lzdGVtS2V5OyB9CiAK
LSAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqKSBjb25zdDsKKyAgICB2
b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKICAgICBzdGF0aWMg
Ym9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgV2ViS2V5Ym9hcmRFdmVudCYp
OwogCiAgICAgc3RhdGljIGJvb2wgaXNLZXlib2FyZEV2ZW50VHlwZShUeXBlKTsKQEAgLTI2OCw3
ICsyNjgsNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSBhcmVhKCkgY29u
c3QgeyByZXR1cm4gbV9hcmVhOyB9CiAgICAgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCBkZWx0
YSgpIGNvbnN0IHsgcmV0dXJuIG1fZGVsdGE7IH0KIAotICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6
OkFyZ3VtZW50RW5jb2RlciopIGNvbnN0OworICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3Vt
ZW50RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqLCBXZWJHZXN0dXJlRXZlbnQmKTsKIAogcHJpdmF0ZToKQEAgLTMxMyw3ICsz
MTMsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldFN0YXRlKFRvdWNoUG9pbnRTdGF0ZSBzdGF0
ZSkgeyBtX3N0YXRlID0gc3RhdGU7IH0KIAotICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3Vt
ZW50RW5jb2RlciopIGNvbnN0OworICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5j
b2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqLCBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQmKTsKIAogcHJpdmF0ZToKQEAgLTMzNiw3ICsz
MzYsNyBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50
PiYgdG91Y2hQb2ludHMoKSBjb25zdCB7IHJldHVybiBtX3RvdWNoUG9pbnRzOyB9CiAKLSAgICB2
b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqKSBjb25zdDsKKyAgICB2b2lkIGVu
Y29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKICAgICBzdGF0aWMgYm9vbCBk
ZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgV2ViVG91Y2hFdmVudCYpOwogICAKIHBy
aXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViR2VvbG9jYXRpb25Q
b3NpdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViR2VvbG9jYXRpb25Qb3NpdGlv
bi5jcHAKaW5kZXggNzdkNTI0Y2Y0YzQ3N2E4ZDEwZjQxMDc0ZDFlMTU4NzE1ZDBiZDkwNS4uZmVh
ZDAwZTg3ZTExOGRlYTQxZTEwNTIwMjc2NDUxZDZiZjcxZWNlZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmNwcApAQCAtNTEsOSArNTEsOSBA
QCBXZWJHZW9sb2NhdGlvblBvc2l0aW9uOjp+V2ViR2VvbG9jYXRpb25Qb3NpdGlvbigpCiB7CiB9
CiAKLXZvaWQgV2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6RGF0YTo6ZW5jb2RlKENvcmVJUEM6OkFy
Z3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKK3ZvaWQgV2ViR2VvbG9jYXRpb25Qb3NpdGlv
bjo6RGF0YTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QK
IHsKLSAgICBDb3JlSVBDOjpTaW1wbGVBcmd1bWVudENvZGVyPFdlYkdlb2xvY2F0aW9uUG9zaXRp
b246OkRhdGE+OjplbmNvZGUoZW5jb2RlciwgKnRoaXMpOworICAgIENvcmVJUEM6OlNpbXBsZUFy
Z3VtZW50Q29kZXI8V2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6RGF0YT46OmVuY29kZSgmZW5jb2Rl
ciwgKnRoaXMpOwogfQogCiBib29sIFdlYkdlb2xvY2F0aW9uUG9zaXRpb246OkRhdGE6OmRlY29k
ZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIERhdGEmIGRhdGEpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5oIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uaAppbmRleCBhODdiYjA2
MmQxY2IzNTNiOWRkZWE0ZDc4YjE5ZDE1MzNhMTcwMTlhLi41MmViZWQ5OTIzYmE3MzZmNjFmZjg5
MWI3MDQ2OTYzYTE0MWQwOTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
R2VvbG9jYXRpb25Qb3NpdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJHZW9s
b2NhdGlvblBvc2l0aW9uLmgKQEAgLTM4LDcgKzM4LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBj
b25zdCBUeXBlIEFQSVR5cGUgPSBUeXBlR2VvbG9jYXRpb25Qb3NpdGlvbjsKIAogICAgIHN0cnVj
dCBEYXRhIHsKLSAgICAgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKikg
Y29uc3Q7CisgICAgICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNv
bnN0OwogICAgICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
KiwgRGF0YSYpOwogCiAgICAgICAgIGRvdWJsZSB0aW1lc3RhbXA7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViR2VzdHVyZUV2ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJHZXN0dXJlRXZlbnQuY3BwCmluZGV4IGQ0OTFhNTcwN2FkZGNlNzViZTM0MGVhZTk1
MzQ0MjAxYjQxNjQ0MGMuLmUzMTc4Y2RjZmI4ZjQwMGEyYWZkODc0YzI5YWVhY2Q0ZDE5YTJiY2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJHZXN0dXJlRXZlbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJHZXN0dXJlRXZlbnQuY3BwCkBAIC01MywxNCAr
NTMsMTQgQEAgV2ViR2VzdHVyZUV2ZW50OjpXZWJHZXN0dXJlRXZlbnQoVHlwZSB0eXBlLCBjb25z
dCBJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IEludFAKICAgICBBU1NFUlQoaXNHZXN0dXJlRXZl
bnRUeXBlKHR5cGUpKTsKIH0KIAotdm9pZCBXZWJHZXN0dXJlRXZlbnQ6OmVuY29kZShDb3JlSVBD
OjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Cit2b2lkIFdlYkdlc3R1cmVFdmVudDo6
ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKICAgICBX
ZWJFdmVudDo6ZW5jb2RlKGVuY29kZXIpOwogCi0gICAgZW5jb2Rlci0+ZW5jb2RlKG1fcG9zaXRp
b24pOwotICAgIGVuY29kZXItPmVuY29kZShtX2dsb2JhbFBvc2l0aW9uKTsKLSAgICBlbmNvZGVy
LT5lbmNvZGUobV9hcmVhKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobV9kZWx0YSk7CisgICAgZW5j
b2Rlci5lbmNvZGUobV9wb3NpdGlvbik7CisgICAgZW5jb2Rlci5lbmNvZGUobV9nbG9iYWxQb3Np
dGlvbik7CisgICAgZW5jb2Rlci5lbmNvZGUobV9hcmVhKTsKKyAgICBlbmNvZGVyLmVuY29kZSht
X2RlbHRhKTsKIH0KIAogYm9vbCBXZWJHZXN0dXJlRXZlbnQ6OmRlY29kZShDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqIGRlY29kZXIsIFdlYkdlc3R1cmVFdmVudCYgdCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJIaXRUZXN0UmVzdWx0LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJIaXRUZXN0UmVzdWx0LmNwcAppbmRleCA3OTllZDUyMjBkYTBmNjY4N2U5MTU3
OTIyZTFhMDliNjA2YjkxNWIwLi5mODFmMTFkMzkxMjlhNWQ5MGVmMWVkYzk0NWE0NDEwMjE4OTRh
MzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViSGl0VGVzdFJlc3VsdC5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkhpdFRlc3RSZXN1bHQuY3BwCkBAIC0z
NCwxNiArMzQsMTYgQEAgUGFzc1JlZlB0cjxXZWJIaXRUZXN0UmVzdWx0PiBXZWJIaXRUZXN0UmVz
dWx0OjpjcmVhdGUoY29uc3QgV2ViSGl0VGVzdFJlc3VsdDo6RGEKICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IFdlYkhpdFRlc3RSZXN1bHQoaGl0VGVzdFJlc3VsdERhdGEpKTsKIH0KIAotdm9pZCBX
ZWJIaXRUZXN0UmVzdWx0OjpEYXRhOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBl
bmNvZGVyKSBjb25zdAordm9pZCBXZWJIaXRUZXN0UmVzdWx0OjpEYXRhOjplbmNvZGUoQ29yZUlQ
Qzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXItPmVuY29k
ZShhYnNvbHV0ZUltYWdlVVJMKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoYWJzb2x1dGVQREZVUkwp
OwotICAgIGVuY29kZXItPmVuY29kZShhYnNvbHV0ZUxpbmtVUkwpOwotICAgIGVuY29kZXItPmVu
Y29kZShhYnNvbHV0ZU1lZGlhVVJMKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobGlua0xhYmVsKTsK
LSAgICBlbmNvZGVyLT5lbmNvZGUobGlua1RpdGxlKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoaXND
b250ZW50RWRpdGFibGUpOwotICAgIGVuY29kZXItPmVuY29kZShlbGVtZW50Qm91bmRpbmdCb3gp
OworICAgIGVuY29kZXIuZW5jb2RlKGFic29sdXRlSW1hZ2VVUkwpOworICAgIGVuY29kZXIuZW5j
b2RlKGFic29sdXRlUERGVVJMKTsKKyAgICBlbmNvZGVyLmVuY29kZShhYnNvbHV0ZUxpbmtVUkwp
OworICAgIGVuY29kZXIuZW5jb2RlKGFic29sdXRlTWVkaWFVUkwpOworICAgIGVuY29kZXIuZW5j
b2RlKGxpbmtMYWJlbCk7CisgICAgZW5jb2Rlci5lbmNvZGUobGlua1RpdGxlKTsKKyAgICBlbmNv
ZGVyLmVuY29kZShpc0NvbnRlbnRFZGl0YWJsZSk7CisgICAgZW5jb2Rlci5lbmNvZGUoZWxlbWVu
dEJvdW5kaW5nQm94KTsKIH0KIAogYm9vbCBXZWJIaXRUZXN0UmVzdWx0OjpEYXRhOjpkZWNvZGUo
Q29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBXZWJIaXRUZXN0UmVzdWx0OjpEYXRh
JiBoaXRUZXN0UmVzdWx0RGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJIaXRUZXN0UmVzdWx0LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViSGl0VGVzdFJlc3Vs
dC5oCmluZGV4IGU1M2E1YzdlMjY1NzdlNmMzYzU3ODkxY2I2MDgzMWRmNTU4ZDAzOTYuLjczOTA1
MGUxMWJmZjM0NGMwOGY2ZDZjODc0ODE2Njc5MzcxZjhjMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJIaXRUZXN0UmVzdWx0LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL1dlYkhpdFRlc3RSZXN1bHQuaApAQCAtODYsNyArODYsNyBAQCBwdWJsaWM6CiAgICAgICAg
IHsKICAgICAgICAgfQogCi0gICAgICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5j
b2RlciopIGNvbnN0OworICAgICAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29k
ZXImKSBjb25zdDsKICAgICAgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciosIFdlYkhpdFRlc3RSZXN1bHQ6OkRhdGEmKTsKICAgICB9OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViS2V5Ym9hcmRFdmVudC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViS2V5Ym9hcmRFdmVudC5jcHAKaW5kZXggMTE5Yjg2NDE2OThiMjJmYzYx
OTcxNzliZTg3MzRkZDUwNTYzZDI2ZS4uZDgxYzg2MzY0NDE5MzYxOTYxMThlNzc4ZmJkMzBiYWY2
ZGVjZDYxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYktleWJvYXJkRXZl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJLZXlib2FyZEV2ZW50LmNwcApA
QCAtNDUsMTkgKzQ1LDE5IEBAIFdlYktleWJvYXJkRXZlbnQ6OldlYktleWJvYXJkRXZlbnQoVHlw
ZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYKICAgICBBU1NFUlQoaXNL
ZXlib2FyZEV2ZW50VHlwZSh0eXBlKSk7CiB9CiAKLXZvaWQgV2ViS2V5Ym9hcmRFdmVudDo6ZW5j
b2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKK3ZvaWQgV2ViS2V5
Ym9hcmRFdmVudDo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29u
c3QKIHsKICAgICBXZWJFdmVudDo6ZW5jb2RlKGVuY29kZXIpOwogCi0gICAgZW5jb2Rlci0+ZW5j
b2RlKG1fdGV4dCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG1fdW5tb2RpZmllZFRleHQpOwotICAg
IGVuY29kZXItPmVuY29kZShtX2tleUlkZW50aWZpZXIpOwotICAgIGVuY29kZXItPmVuY29kZSht
X3dpbmRvd3NWaXJ0dWFsS2V5Q29kZSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG1fbmF0aXZlVmly
dHVhbEtleUNvZGUpOwotICAgIGVuY29kZXItPmVuY29kZShtX21hY0NoYXJDb2RlKTsKLSAgICBl
bmNvZGVyLT5lbmNvZGUobV9pc0F1dG9SZXBlYXQpOwotICAgIGVuY29kZXItPmVuY29kZShtX2lz
S2V5cGFkKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobV9pc1N5c3RlbUtleSk7CisgICAgZW5jb2Rl
ci5lbmNvZGUobV90ZXh0KTsKKyAgICBlbmNvZGVyLmVuY29kZShtX3VubW9kaWZpZWRUZXh0KTsK
KyAgICBlbmNvZGVyLmVuY29kZShtX2tleUlkZW50aWZpZXIpOworICAgIGVuY29kZXIuZW5jb2Rl
KG1fd2luZG93c1ZpcnR1YWxLZXlDb2RlKTsKKyAgICBlbmNvZGVyLmVuY29kZShtX25hdGl2ZVZp
cnR1YWxLZXlDb2RlKTsKKyAgICBlbmNvZGVyLmVuY29kZShtX21hY0NoYXJDb2RlKTsKKyAgICBl
bmNvZGVyLmVuY29kZShtX2lzQXV0b1JlcGVhdCk7CisgICAgZW5jb2Rlci5lbmNvZGUobV9pc0tl
eXBhZCk7CisgICAgZW5jb2Rlci5lbmNvZGUobV9pc1N5c3RlbUtleSk7CiB9CiAKIGJvb2wgV2Vi
S2V5Ym9hcmRFdmVudDo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2Rlciwg
V2ViS2V5Ym9hcmRFdmVudCYgcmVzdWx0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL1dlYkxheWVyVHJlZUluZm8uY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkxheWVy
VHJlZUluZm8uY3BwCmluZGV4IGUwODM2NDAwNjk4NWQwYmRhNWQxYTYxZTQzOWJkODkxODE4MTg0
ZmIuLmY4MmFlMWQxMWMxNTI2ZjcyODQ1ZDdmODgzN2Y2MzNkNTI0NWMzMmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJMYXllclRyZWVJbmZvLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViTGF5ZXJUcmVlSW5mby5jcHAKQEAgLTMwLDkgKzMwLDkgQEAgdXNp
bmcgbmFtZXNwYWNlIENvcmVJUEM7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi12b2lkIFdlYkxh
eWVySW5mbzo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QK
K3ZvaWQgV2ViTGF5ZXJJbmZvOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAogewotICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8V2ViTGF5ZXJJbmZvPjo6ZW5j
b2RlKGVuY29kZXIsICp0aGlzKTsKKyAgICBTaW1wbGVBcmd1bWVudENvZGVyPFdlYkxheWVySW5m
bz46OmVuY29kZSgmZW5jb2RlciwgKnRoaXMpOwogfQogCiBib29sIFdlYkxheWVySW5mbzo6ZGVj
b2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgV2ViTGF5ZXJJbmZvJiBpbmZv
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkxheWVyVHJlZUluZm8uaCBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJMYXllclRyZWVJbmZvLmgKaW5kZXggZGY0NDc3OGE4
ZDZiYmFkYjgwODAwZTA5ZGM1MTNjZWEzMTJiMTRjZC4uYzliZGFjNWZkYmExMTJiZDRlMDc0MjVl
OGQ3NjUzMzdjMWFjZjQwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkxh
eWVyVHJlZUluZm8uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTGF5ZXJUcmVlSW5m
by5oCkBAIC03MSw3ICs3MSw3IEBAIHN0cnVjdCBXZWJMYXllckluZm8gewogICAgICAgICB1bnNp
Z25lZCBpbnQgZmxhZ3M7CiAgICAgfTsKIAotICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3Vt
ZW50RW5jb2RlciopIGNvbnN0OworICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5j
b2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqLCBXZWJMYXllckluZm8mKTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJNb3VzZUV2ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJNb3Vz
ZUV2ZW50LmNwcAppbmRleCAzMmU2YWMxZjMyZmMxYmMzMTYyY2E1NDA3ZDIxMjQwN2NjNWY3NzJk
Li40NzNkZTQwN2MwODllMWNhMGE2NTE1MGQ3YWU0NTYzMjNmOTlmNzVkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTW91c2VFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYk1vdXNlRXZlbnQuY3BwCkBAIC03OCwyMCArNzgsMjAgQEAgV2ViTW91c2VF
dmVudDo6V2ViTW91c2VFdmVudChUeXBlIHR5cGUsIEJ1dHRvbiBidXR0b24sIGNvbnN0IEludFBv
aW50JiBwb3NpdGlvbiwKIH0KICNlbmRpZgogCi12b2lkIFdlYk1vdXNlRXZlbnQ6OmVuY29kZShD
b3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Cit2b2lkIFdlYk1vdXNlRXZl
bnQ6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7CiAg
ICAgV2ViRXZlbnQ6OmVuY29kZShlbmNvZGVyKTsKIAotICAgIGVuY29kZXItPmVuY29kZShtX2J1
dHRvbik7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG1fcG9zaXRpb24pOwotICAgIGVuY29kZXItPmVu
Y29kZShtX2dsb2JhbFBvc2l0aW9uKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobV9kZWx0YVgpOwot
ICAgIGVuY29kZXItPmVuY29kZShtX2RlbHRhWSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG1fZGVs
dGFaKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobV9jbGlja0NvdW50KTsKKyAgICBlbmNvZGVyLmVu
Y29kZShtX2J1dHRvbik7CisgICAgZW5jb2Rlci5lbmNvZGUobV9wb3NpdGlvbik7CisgICAgZW5j
b2Rlci5lbmNvZGUobV9nbG9iYWxQb3NpdGlvbik7CisgICAgZW5jb2Rlci5lbmNvZGUobV9kZWx0
YVgpOworICAgIGVuY29kZXIuZW5jb2RlKG1fZGVsdGFZKTsKKyAgICBlbmNvZGVyLmVuY29kZSht
X2RlbHRhWik7CisgICAgZW5jb2Rlci5lbmNvZGUobV9jbGlja0NvdW50KTsKIAogI2lmIFBMQVRG
T1JNKFdJTikKLSAgICBlbmNvZGVyLT5lbmNvZGUobV9kaWRBY3RpdmF0ZVdlYlZpZXcpOworICAg
IGVuY29kZXIuZW5jb2RlKG1fZGlkQWN0aXZhdGVXZWJWaWV3KTsKICNlbmRpZgogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTmF2aWdhdGlvbkRhdGFTdG9yZS5oIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYk5hdmlnYXRpb25EYXRhU3RvcmUuaAppbmRleCA5NDdk
MDkwYzllM2Q2ZmYxNGNhMDY0NjAzMWJjMDcxMDE5ZTIwYTE4Li45Y2QxMGY3OWU5MGE5NTRiMWM1
NDNmOWU5ZGJjNWY3ZmRmM2NkYjdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViTmF2aWdhdGlvbkRhdGFTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJO
YXZpZ2F0aW9uRGF0YVN0b3JlLmgKQEAgLTM1LDExICszNSwxMSBAQAogbmFtZXNwYWNlIFdlYktp
dCB7CiAKIHN0cnVjdCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlIHsKLSAgICB2b2lkIGVuY29kZShD
b3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0CisgICAgdm9pZCBlbmNvZGUo
Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIHsKLSAgICAgICAg
ZW5jb2Rlci0+ZW5jb2RlKHVybCk7Ci0gICAgICAgIGVuY29kZXItPmVuY29kZSh0aXRsZSk7Ci0g
ICAgICAgIGVuY29kZXItPmVuY29kZShvcmlnaW5hbFJlcXVlc3QpOworICAgICAgICBlbmNvZGVy
LmVuY29kZSh1cmwpOworICAgICAgICBlbmNvZGVyLmVuY29kZSh0aXRsZSk7CisgICAgICAgIGVu
Y29kZXIuZW5jb2RlKG9yaWdpbmFsUmVxdWVzdCk7CiAgICAgfQogCiAgICAgc3RhdGljIGJvb2wg
ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgV2ViTmF2aWdhdGlvbkRh
dGFTdG9yZSYgc3RvcmUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTmV0
d29ya0luZm8uY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYk5ldHdvcmtJbmZvLmNwcApp
bmRleCBhMjg1MjM0MWE1N2I2NGEzZTk5MmNlYTRmOWI5ZTM2ODUzN2VlY2RmLi45YjEzM2Y4MTU0
MjdkZTI5ZjNiZDdlNDI0NDI2NmFkMDA5Y2UxZWMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvV2ViTmV0d29ya0luZm8uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJOZXR3b3JrSW5mby5jcHAKQEAgLTQzLDEwICs0MywxMCBAQCBXZWJOZXR3b3JrSW5mbzo6fldl
Yk5ldHdvcmtJbmZvKCkKIHsKIH0KIAotdm9pZCBXZWJOZXR3b3JrSW5mbzo6RGF0YTo6ZW5jb2Rl
KENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKK3ZvaWQgV2ViTmV0d29y
a0luZm86OkRhdGE6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNv
bnN0CiB7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGJhbmR3aWR0aCk7Ci0gICAgZW5jb2Rlci0+ZW5j
b2RlKG1ldGVyZWQpOworICAgIGVuY29kZXIuZW5jb2RlKGJhbmR3aWR0aCk7CisgICAgZW5jb2Rl
ci5lbmNvZGUobWV0ZXJlZCk7CiB9CiAKIGJvb2wgV2ViTmV0d29ya0luZm86OkRhdGE6OmRlY29k
ZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIERhdGEmIHJlc3VsdCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJOZXR3b3JrSW5mby5oIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYk5ldHdvcmtJbmZvLmgKaW5kZXggNGMxNjE3Mzc0NmNjMzVlOTcwMWY3
OWJkZTQ4OWU1MzE5NTgwOTNjYy4uYjMxYmJlMzY3MzFkOTRjNDc0ODBmYTc3MDgzZTRiNjUyOWMx
MDI5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYk5ldHdvcmtJbmZvLmgK
KysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYk5ldHdvcmtJbmZvLmgKQEAgLTQwLDcgKzQw
LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdCBUeXBlIEFQSVR5cGUgPSBUeXBlTmV0d29y
a0luZm87CiAKICAgICBzdHJ1Y3QgRGF0YSB7Ci0gICAgICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6
OkFyZ3VtZW50RW5jb2RlciopIGNvbnN0OworICAgICAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpB
cmd1bWVudEVuY29kZXImKSBjb25zdDsKICAgICAgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJ
UEM6OkFyZ3VtZW50RGVjb2RlciosIERhdGEmKTsKIAogICAgICAgICBkb3VibGUgYmFuZHdpZHRo
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFt
ZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRl
cnMuY3BwCmluZGV4IDI3ZDU1NDM0YTZmYWE3NTA1ZWI3ZTNiMTIxYjQ5ZThjMWE1NjI4ZWUuLjE3
ZGViZThkMTE2ODcyZDNkZjlkMGU2ZTAyNDQ5Yzc1OTU5ZjYyODMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTMwLDQy
ICszMCw0MiBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdm9pZCBXZWJQYWdlQ3JlYXRpb25Q
YXJhbWV0ZXJzOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25z
dAordm9pZCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoQ29yZUlQQzo6QXJndW1l
bnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXItPmVuY29kZSh2aWV3U2l6
ZSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGlzQWN0aXZlKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUo
aXNGb2N1c2VkKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoaXNWaXNpYmxlKTsKLSAgICBlbmNvZGVy
LT5lbmNvZGUoaXNJbldpbmRvdyk7CisgICAgZW5jb2Rlci5lbmNvZGUodmlld1NpemUpOworICAg
IGVuY29kZXIuZW5jb2RlKGlzQWN0aXZlKTsKKyAgICBlbmNvZGVyLmVuY29kZShpc0ZvY3VzZWQp
OworICAgIGVuY29kZXIuZW5jb2RlKGlzVmlzaWJsZSk7CisgICAgZW5jb2Rlci5lbmNvZGUoaXNJ
bldpbmRvdyk7CiAKLSAgICBlbmNvZGVyLT5lbmNvZGUoc3RvcmUpOwotICAgIGVuY29kZXItPmVu
Y29kZUVudW0oZHJhd2luZ0FyZWFUeXBlKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUocGFnZUdyb3Vw
RGF0YSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGRyYXdzQmFja2dyb3VuZCk7Ci0gICAgZW5jb2Rl
ci0+ZW5jb2RlKGRyYXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kKTsKLSAgICBlbmNvZGVyLT5lbmNv
ZGUoYXJlTWVtb3J5Q2FjaGVDbGllbnRDYWxsc0VuYWJsZWQpOwotICAgIGVuY29kZXItPmVuY29k
ZSh1c2VGaXhlZExheW91dCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGZpeGVkTGF5b3V0U2l6ZSk7
Ci0gICAgZW5jb2Rlci0+ZW5jb2RlRW51bShwYWdpbmF0aW9uTW9kZSk7Ci0gICAgZW5jb2Rlci0+
ZW5jb2RlKHBhZ2luYXRpb25CZWhhdmVzTGlrZUNvbHVtbnMpOwotICAgIGVuY29kZXItPmVuY29k
ZShwYWdlTGVuZ3RoKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoZ2FwQmV0d2VlblBhZ2VzKTsKLSAg
ICBlbmNvZGVyLT5lbmNvZGUodXNlckFnZW50KTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoc2Vzc2lv
blN0YXRlKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoaGlnaGVzdFVzZWRCYWNrRm9yd2FyZEl0ZW1J
RCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCk7
Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGNhblJ1bk1vZGFsKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUo
ZGV2aWNlU2NhbGVGYWN0b3IpOwotICAgIGVuY29kZXItPmVuY29kZShtZWRpYVZvbHVtZSk7Cisg
ICAgZW5jb2Rlci5lbmNvZGUoc3RvcmUpOworICAgIGVuY29kZXIuZW5jb2RlRW51bShkcmF3aW5n
QXJlYVR5cGUpOworICAgIGVuY29kZXIuZW5jb2RlKHBhZ2VHcm91cERhdGEpOworICAgIGVuY29k
ZXIuZW5jb2RlKGRyYXdzQmFja2dyb3VuZCk7CisgICAgZW5jb2Rlci5lbmNvZGUoZHJhd3NUcmFu
c3BhcmVudEJhY2tncm91bmQpOworICAgIGVuY29kZXIuZW5jb2RlKGFyZU1lbW9yeUNhY2hlQ2xp
ZW50Q2FsbHNFbmFibGVkKTsKKyAgICBlbmNvZGVyLmVuY29kZSh1c2VGaXhlZExheW91dCk7Cisg
ICAgZW5jb2Rlci5lbmNvZGUoZml4ZWRMYXlvdXRTaXplKTsKKyAgICBlbmNvZGVyLmVuY29kZUVu
dW0ocGFnaW5hdGlvbk1vZGUpOworICAgIGVuY29kZXIuZW5jb2RlKHBhZ2luYXRpb25CZWhhdmVz
TGlrZUNvbHVtbnMpOworICAgIGVuY29kZXIuZW5jb2RlKHBhZ2VMZW5ndGgpOworICAgIGVuY29k
ZXIuZW5jb2RlKGdhcEJldHdlZW5QYWdlcyk7CisgICAgZW5jb2Rlci5lbmNvZGUodXNlckFnZW50
KTsKKyAgICBlbmNvZGVyLmVuY29kZShzZXNzaW9uU3RhdGUpOworICAgIGVuY29kZXIuZW5jb2Rl
KGhpZ2hlc3RVc2VkQmFja0ZvcndhcmRJdGVtSUQpOworICAgIGVuY29kZXIuZW5jb2RlKGNhblJ1
bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCk7CisgICAgZW5jb2Rlci5lbmNvZGUoY2FuUnVuTW9k
YWwpOworICAgIGVuY29kZXIuZW5jb2RlKGRldmljZVNjYWxlRmFjdG9yKTsKKyAgICBlbmNvZGVy
LmVuY29kZShtZWRpYVZvbHVtZSk7CiAKICNpZiBQTEFURk9STShNQUMpCi0gICAgZW5jb2Rlci0+
ZW5jb2RlKGlzU21hcnRJbnNlcnREZWxldGVFbmFibGVkKTsKLSAgICBlbmNvZGVyLT5lbmNvZGVF
bnVtKGxheWVySG9zdGluZ01vZGUpOwotICAgIGVuY29kZXItPmVuY29kZShjb2xvclNwYWNlKTsK
KyAgICBlbmNvZGVyLmVuY29kZShpc1NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk7CisgICAgZW5j
b2Rlci5lbmNvZGVFbnVtKGxheWVySG9zdGluZ01vZGUpOworICAgIGVuY29kZXIuZW5jb2RlKGNv
bG9yU3BhY2UpOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShXSU4pCi0gICAgZW5jb2Rlci0+ZW5j
b2RlKHJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0X3Q+KG5hdGl2ZVdpbmRvdykpOworICAgIGVuY29k
ZXIuZW5jb2RlKHJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0X3Q+KG5hdGl2ZVdpbmRvdykpOwogI2Vu
ZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFy
YW1ldGVycy5oCmluZGV4IDA4YzNiY2QyMTRlY2M5MDY5NjdhYTM5ZWYxOGJkMDE2OWYwMmQ2OTku
LjIxNGMwNGM1MDQ4MmVjYTg5MDVjM2QxOWQ3MTdhZjBmODk5MWU4NmUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtNDUsNyAr
NDUsNyBAQCBuYW1lc3BhY2UgQ29yZUlQQyB7CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogc3RydWN0
IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgewotICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFy
Z3VtZW50RW5jb2RlciopIGNvbnN0OworICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50
RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqLCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJik7CiAKICAgICBXZWJDb3JlOjpJ
bnRTaXplIHZpZXdTaXplOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBh
Z2VHcm91cERhdGEuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VHcm91cERhdGEu
Y3BwCmluZGV4IGMyMjdkODU5NjZkODc4YjM4MThiOWZhNDEwNzk2MzQzZmZmNjFlZTIuLmM1ZDYw
MzQ4OTNlNWMxYmJmMWU4ODU4Y2JjNDhmNGUzOWE1NjMxOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJQYWdlR3JvdXBEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViUGFnZUdyb3VwRGF0YS5jcHAKQEAgLTMwLDE0ICszMCwxNCBAQAogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAotdm9pZCBXZWJQYWdlR3JvdXBEYXRhOjplbmNvZGUoQ29yZUlQQzo6QXJn
dW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAordm9pZCBXZWJQYWdlR3JvdXBEYXRhOjplbmNv
ZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29k
ZXItPmVuY29kZShpZGVudGlmZXIpOwotICAgIGVuY29kZXItPmVuY29kZShwYWdlR3JvdXBJRCk7
Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHZpc2libGVUb0luamVjdGVkQnVuZGxlKTsKLSAgICBlbmNv
ZGVyLT5lbmNvZGUodmlzaWJsZVRvSGlzdG9yeUNsaWVudCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2Rl
KHVzZXJTdHlsZVNoZWV0cyk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHVzZXJTY3JpcHRzKTsKKyAg
ICBlbmNvZGVyLmVuY29kZShpZGVudGlmZXIpOworICAgIGVuY29kZXIuZW5jb2RlKHBhZ2VHcm91
cElEKTsKKyAgICBlbmNvZGVyLmVuY29kZSh2aXNpYmxlVG9JbmplY3RlZEJ1bmRsZSk7CisgICAg
ZW5jb2Rlci5lbmNvZGUodmlzaWJsZVRvSGlzdG9yeUNsaWVudCk7CisgICAgZW5jb2Rlci5lbmNv
ZGUodXNlclN0eWxlU2hlZXRzKTsKKyAgICBlbmNvZGVyLmVuY29kZSh1c2VyU2NyaXB0cyk7CiB9
CiAKIGJvb2wgV2ViUGFnZUdyb3VwRGF0YTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciogZGVjb2RlciwgV2ViUGFnZUdyb3VwRGF0YSYgZGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJQYWdlR3JvdXBEYXRhLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViUGFnZUdyb3VwRGF0YS5oCmluZGV4IGI5YWEwZjhmNWY1YTBiMzk5MmU5OGI0NTU0NjBmYzEy
Y2VmZDg5NDQuLjRkYmZkMmMzMTY0ZTcwYmM2ZjBiNjU2ZGRiNzM0ODUwZjdhZGIyNDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlR3JvdXBEYXRhLmgKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VHcm91cERhdGEuaApAQCAtMzksNyArMzksNyBAQCBj
bGFzcyBBcmd1bWVudEVuY29kZXI7CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogc3RydWN0IFdlYlBh
Z2VHcm91cERhdGEgewotICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlciop
IGNvbnN0OworICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0
OwogICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBXZWJQ
YWdlR3JvdXBEYXRhJik7CiAKICAgICBTdHJpbmcgaWRlbnRpZmVyOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBsYXRmb3JtVG91Y2hQb2ludC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViUGxhdGZvcm1Ub3VjaFBvaW50LmNwcAppbmRleCAzOTAyNmUwZjVjOGNh
Y2VkN2U2YjAxODVhOGJjMDE0ZGMyY2YwZTE5Li45YWI5MjZjYjRkOThlYWEzMDE3YjcyYjI0NWQz
NjY4ZTFhZTY2OTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGxhdGZv
cm1Ub3VjaFBvaW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGxhdGZvcm1U
b3VjaFBvaW50LmNwcApAQCAtNTcsMTUgKzU3LDE1IEBAIFdlYlBsYXRmb3JtVG91Y2hQb2ludDo6
V2ViUGxhdGZvcm1Ub3VjaFBvaW50KHVuc2lnbmVkIGlkLCBUb3VjaFBvaW50U3RhdGUgc3RhdGUs
CiB7CiB9CiAKLXZvaWQgV2ViUGxhdGZvcm1Ub3VjaFBvaW50OjplbmNvZGUoQ29yZUlQQzo6QXJn
dW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAordm9pZCBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6
OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAg
ZW5jb2Rlci0+ZW5jb2RlKG1faWQpOwotICAgIGVuY29kZXItPmVuY29kZShtX3N0YXRlKTsKLSAg
ICBlbmNvZGVyLT5lbmNvZGUobV9zY3JlZW5Qb3NpdGlvbik7Ci0gICAgZW5jb2Rlci0+ZW5jb2Rl
KG1fcG9zaXRpb24pOwotICAgIGVuY29kZXItPmVuY29kZShtX3JhZGl1cyk7Ci0gICAgZW5jb2Rl
ci0+ZW5jb2RlKG1fcm90YXRpb25BbmdsZSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG1fZm9yY2Up
OworICAgIGVuY29kZXIuZW5jb2RlKG1faWQpOworICAgIGVuY29kZXIuZW5jb2RlKG1fc3RhdGUp
OworICAgIGVuY29kZXIuZW5jb2RlKG1fc2NyZWVuUG9zaXRpb24pOworICAgIGVuY29kZXIuZW5j
b2RlKG1fcG9zaXRpb24pOworICAgIGVuY29kZXIuZW5jb2RlKG1fcmFkaXVzKTsKKyAgICBlbmNv
ZGVyLmVuY29kZShtX3JvdGF0aW9uQW5nbGUpOworICAgIGVuY29kZXIuZW5jb2RlKG1fZm9yY2Up
OwogfQogCiBib29sIFdlYlBsYXRmb3JtVG91Y2hQb2ludDo6ZGVjb2RlKENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciogZGVjb2RlciwgV2ViUGxhdGZvcm1Ub3VjaFBvaW50JiByZXN1bHQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUG9wdXBJdGVtLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJQb3B1cEl0ZW0uY3BwCmluZGV4IDA3YTI5ZTQxNjk2NjJjMDhmZDBh
YzJlNjA5MTA1ZmI1NTE1MzhkMzUuLjY2Yjc4NTY2OTA1N2U2ODNmNTgxZWZhYmI2M2M4OTgwMWI1
Nzk1ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQb3B1cEl0ZW0uY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQb3B1cEl0ZW0uY3BwCkBAIC02NiwxNyAr
NjYsMTcgQEAgV2ViUG9wdXBJdGVtOjpXZWJQb3B1cEl0ZW0oVHlwZSB0eXBlLCBjb25zdCBTdHJp
bmcmIHRleHQsIFRleHREaXJlY3Rpb24gdGV4dERpcmUKIHsKIH0KIAotdm9pZCBXZWJQb3B1cEl0
ZW06OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Cit2b2lk
IFdlYlBvcHVwSXRlbTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2Rlcikg
Y29uc3QKIHsKLSAgICBlbmNvZGVyLT5lbmNvZGVFbnVtKG1fdHlwZSk7Ci0gICAgZW5jb2Rlci0+
ZW5jb2RlKG1fdGV4dCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlRW51bShtX3RleHREaXJlY3Rpb24p
OwotICAgIGVuY29kZXItPmVuY29kZShtX2hhc1RleHREaXJlY3Rpb25PdmVycmlkZSk7Ci0gICAg
ZW5jb2Rlci0+ZW5jb2RlKG1fdG9vbFRpcCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG1fYWNjZXNz
aWJpbGl0eVRleHQpOwotICAgIGVuY29kZXItPmVuY29kZShtX2lzRW5hYmxlZCk7Ci0gICAgZW5j
b2Rlci0+ZW5jb2RlKG1faXNMYWJlbCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG1faXNTZWxlY3Rl
ZCk7CisgICAgZW5jb2Rlci5lbmNvZGVFbnVtKG1fdHlwZSk7CisgICAgZW5jb2Rlci5lbmNvZGUo
bV90ZXh0KTsKKyAgICBlbmNvZGVyLmVuY29kZUVudW0obV90ZXh0RGlyZWN0aW9uKTsKKyAgICBl
bmNvZGVyLmVuY29kZShtX2hhc1RleHREaXJlY3Rpb25PdmVycmlkZSk7CisgICAgZW5jb2Rlci5l
bmNvZGUobV90b29sVGlwKTsKKyAgICBlbmNvZGVyLmVuY29kZShtX2FjY2Vzc2liaWxpdHlUZXh0
KTsKKyAgICBlbmNvZGVyLmVuY29kZShtX2lzRW5hYmxlZCk7CisgICAgZW5jb2Rlci5lbmNvZGUo
bV9pc0xhYmVsKTsKKyAgICBlbmNvZGVyLmVuY29kZShtX2lzU2VsZWN0ZWQpOwogfQogCiBib29s
IFdlYlBvcHVwSXRlbTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2Rlciwg
V2ViUG9wdXBJdGVtJiBpdGVtKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YlBvcHVwSXRlbS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBvcHVwSXRlbS5oCmluZGV4
IGQ4NTg0YmVhNTMyMDljM2M3NTE1YzZiYmFmM2IwNzk4YTBiMmZkNGUuLjZmOGVjYjEwMTZhNzBm
MmZmYzg0NWM1NzFmODEwMjZmMjk3M2Q2NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJQb3B1cEl0ZW0uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUG9wdXBJ
dGVtLmgKQEAgLTQ2LDcgKzQ2LDcgQEAgc3RydWN0IFdlYlBvcHVwSXRlbSB7CiAgICAgV2ViUG9w
dXBJdGVtKFR5cGUpOwogICAgIFdlYlBvcHVwSXRlbShUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQs
IFdlYkNvcmU6OlRleHREaXJlY3Rpb24sIGJvb2wgaGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlLCBj
b25zdCBTdHJpbmcmIHRvb2xUaXAsIGNvbnN0IFN0cmluZyYgYWNjZXNzaWJpbGl0eVRleHQsIGJv
b2wgaXNFbmFibGVkLCBib29sIGlzTGFiZWwsIGJvb2wgaXNTZWxlY3RlZCk7CiAKLSAgICB2b2lk
IGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqKSBjb25zdDsKKyAgICB2b2lkIGVuY29k
ZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKICAgICBzdGF0aWMgYm9vbCBkZWNv
ZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgV2ViUG9wdXBJdGVtJik7CiAKICAgICBUeXBl
IG1fdHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNl
c1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmNw
cAppbmRleCA3NDBhOTcxYWFjNDJiNTNkMmUyM2QzZjNhOTlkM2Y1NmEwZDRmYjkzLi5hNGZmNTZk
OWVjMjM3NmU5ZDZhYjYyMTZmZmJiOTdjZTg2NjI3ZDA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuY3BwCkBAIC01OSwxMyArNTksMTMgQEAgV2ViUHJl
ZmVyZW5jZXNTdG9yZTo6V2ViUHJlZmVyZW5jZXNTdG9yZSgpCiB7CiB9CiAKLXZvaWQgV2ViUHJl
ZmVyZW5jZXNTdG9yZTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2Rlcikg
Y29uc3QKK3ZvaWQgV2ViUHJlZmVyZW5jZXNTdG9yZTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50
RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyLT5lbmNvZGUobV9zdHJpbmdW
YWx1ZXMpOwotICAgIGVuY29kZXItPmVuY29kZShtX2Jvb2xWYWx1ZXMpOwotICAgIGVuY29kZXIt
PmVuY29kZShtX3VpbnQzMlZhbHVlcyk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG1fZG91YmxlVmFs
dWVzKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobV9mbG9hdFZhbHVlcyk7CisgICAgZW5jb2Rlci5l
bmNvZGUobV9zdHJpbmdWYWx1ZXMpOworICAgIGVuY29kZXIuZW5jb2RlKG1fYm9vbFZhbHVlcyk7
CisgICAgZW5jb2Rlci5lbmNvZGUobV91aW50MzJWYWx1ZXMpOworICAgIGVuY29kZXIuZW5jb2Rl
KG1fZG91YmxlVmFsdWVzKTsKKyAgICBlbmNvZGVyLmVuY29kZShtX2Zsb2F0VmFsdWVzKTsKIH0K
IAogYm9vbCBXZWJQcmVmZXJlbmNlc1N0b3JlOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKiBkZWNvZGVyLCBXZWJQcmVmZXJlbmNlc1N0b3JlJiByZXN1bHQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5oIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuaAppbmRleCA3YmJjYWUwYzIwZWMxMzQwM2Qz
ZWIzMTIyZDU3MWQzODkxYTJhYzQ3Li5kYzA3M2RlMDM5ZDlmY2I4ODAxODBiOWQzNzhmMDMxOWNl
ODMxNTBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNT
dG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmgK
QEAgLTIzMyw3ICsyMzMsNyBAQCBGT1JfRUFDSF9XRUJLSVRfUFJFRkVSRU5DRShERUNMQVJFX0tF
WV9HRVRURVJTKQogc3RydWN0IFdlYlByZWZlcmVuY2VzU3RvcmUgewogICAgIFdlYlByZWZlcmVu
Y2VzU3RvcmUoKTsKIAotICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlciop
IGNvbnN0OworICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0
OwogICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBXZWJQ
cmVmZXJlbmNlc1N0b3JlJik7CiAKICAgICAvLyBOT1RFOiBUaGUgZ2V0dGVycyBpbiB0aGlzIGNs
YXNzIGhhdmUgbm9uLXN0YW5kYXJkIG5hbWVzIHRvIGFpZCBpbiB0aGUgdXNlIG9mIHRoZSBwcmVm
ZXJlbmNlIG1hY3Jvcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCBjM2ZjZWU2YzJiZDhiNjc4NGUzMzQxNGY2
Yjc5YTBkOTgwZDk2ZjI2Li4wYzEyN2U4OGUxZWFhMmQ0Yzc3Y2JiNWQyN2ZhMWRlZTQ1NzRlZDky
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuY3BwCkBAIC01Miw2OSArNTIsNjkgQEAgV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVyczo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycygpCiB7CiB9CiAKLXZvaWQgV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rl
ciogZW5jb2RlcikgY29uc3QKK3ZvaWQgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5j
b2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNv
ZGVyLT5lbmNvZGUoaW5qZWN0ZWRCdW5kbGVQYXRoKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoaW5q
ZWN0ZWRCdW5kbGVQYXRoRXh0ZW5zaW9uSGFuZGxlKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoYXBw
bGljYXRpb25DYWNoZURpcmVjdG9yeSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGFwcGxpY2F0aW9u
Q2FjaGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOwotICAgIGVuY29kZXItPmVuY29kZShkYXRh
YmFzZURpcmVjdG9yeSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGRhdGFiYXNlRGlyZWN0b3J5RXh0
ZW5zaW9uSGFuZGxlKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobG9jYWxTdG9yYWdlRGlyZWN0b3J5
KTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobG9jYWxTdG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFu
ZGxlKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoZGlza0NhY2hlRGlyZWN0b3J5KTsKLSAgICBlbmNv
ZGVyLT5lbmNvZGUoZGlza0NhY2hlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKLSAgICBlbmNv
ZGVyLT5lbmNvZGUoY29va2llU3RvcmFnZURpcmVjdG9yeSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2Rl
KGNvb2tpZVN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOwotICAgIGVuY29kZXItPmVu
Y29kZSh1cmxTY2hlbWVzUmVnaXN0ZXJlcmRBc0VtcHR5RG9jdW1lbnQpOwotICAgIGVuY29kZXIt
PmVuY29kZSh1cmxTY2hlbWVzUmVnaXN0ZXJlZEFzU2VjdXJlKTsKLSAgICBlbmNvZGVyLT5lbmNv
ZGUodXJsU2NoZW1lc0ZvcldoaWNoRG9tYWluUmVsYXhhdGlvbklzRm9yYmlkZGVuKTsKLSAgICBl
bmNvZGVyLT5lbmNvZGUodXJsU2NoZW1lc1JlZ2lzdGVyZWRBc0xvY2FsKTsKLSAgICBlbmNvZGVy
LT5lbmNvZGUodXJsU2NoZW1lc1JlZ2lzdGVyZWRBc05vQWNjZXNzKTsKLSAgICBlbmNvZGVyLT5l
bmNvZGUodXJsU2NoZW1lc1JlZ2lzdGVyZWRBc0Rpc3BsYXlJc29sYXRlZCk7Ci0gICAgZW5jb2Rl
ci0+ZW5jb2RlKHVybFNjaGVtZXNSZWdpc3RlcmVkQXNDT1JTRW5hYmxlZCk7Ci0gICAgZW5jb2Rl
ci0+ZW5jb2RlRW51bShjYWNoZU1vZGVsKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoc2hvdWxkVHJh
Y2tWaXNpdGVkTGlua3MpOwotICAgIGVuY29kZXItPmVuY29kZShzaG91bGRBbHdheXNVc2VDb21w
bGV4VGV4dENvZGVQYXRoKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoc2hvdWxkVXNlRm9udFNtb290
aGluZyk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGljb25EYXRhYmFzZUVuYWJsZWQpOwotICAgIGVu
Y29kZXItPmVuY29kZSh0ZXJtaW5hdGlvblRpbWVvdXQpOwotICAgIGVuY29kZXItPmVuY29kZShs
YW5ndWFnZXMpOwotICAgIGVuY29kZXItPmVuY29kZSh0ZXh0Q2hlY2tlclN0YXRlKTsKLSAgICBl
bmNvZGVyLT5lbmNvZGUoZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZCk7Ci0gICAgZW5jb2Rlci0+
ZW5jb2RlKGRlZmF1bHRSZXF1ZXN0VGltZW91dEludGVydmFsKTsKKyAgICBlbmNvZGVyLmVuY29k
ZShpbmplY3RlZEJ1bmRsZVBhdGgpOworICAgIGVuY29kZXIuZW5jb2RlKGluamVjdGVkQnVuZGxl
UGF0aEV4dGVuc2lvbkhhbmRsZSk7CisgICAgZW5jb2Rlci5lbmNvZGUoYXBwbGljYXRpb25DYWNo
ZURpcmVjdG9yeSk7CisgICAgZW5jb2Rlci5lbmNvZGUoYXBwbGljYXRpb25DYWNoZURpcmVjdG9y
eUV4dGVuc2lvbkhhbmRsZSk7CisgICAgZW5jb2Rlci5lbmNvZGUoZGF0YWJhc2VEaXJlY3Rvcnkp
OworICAgIGVuY29kZXIuZW5jb2RlKGRhdGFiYXNlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsK
KyAgICBlbmNvZGVyLmVuY29kZShsb2NhbFN0b3JhZ2VEaXJlY3RvcnkpOworICAgIGVuY29kZXIu
ZW5jb2RlKGxvY2FsU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7CisgICAgZW5jb2Rl
ci5lbmNvZGUoZGlza0NhY2hlRGlyZWN0b3J5KTsKKyAgICBlbmNvZGVyLmVuY29kZShkaXNrQ2Fj
aGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOworICAgIGVuY29kZXIuZW5jb2RlKGNvb2tpZVN0
b3JhZ2VEaXJlY3RvcnkpOworICAgIGVuY29kZXIuZW5jb2RlKGNvb2tpZVN0b3JhZ2VEaXJlY3Rv
cnlFeHRlbnNpb25IYW5kbGUpOworICAgIGVuY29kZXIuZW5jb2RlKHVybFNjaGVtZXNSZWdpc3Rl
cmVyZEFzRW1wdHlEb2N1bWVudCk7CisgICAgZW5jb2Rlci5lbmNvZGUodXJsU2NoZW1lc1JlZ2lz
dGVyZWRBc1NlY3VyZSk7CisgICAgZW5jb2Rlci5lbmNvZGUodXJsU2NoZW1lc0ZvcldoaWNoRG9t
YWluUmVsYXhhdGlvbklzRm9yYmlkZGVuKTsKKyAgICBlbmNvZGVyLmVuY29kZSh1cmxTY2hlbWVz
UmVnaXN0ZXJlZEFzTG9jYWwpOworICAgIGVuY29kZXIuZW5jb2RlKHVybFNjaGVtZXNSZWdpc3Rl
cmVkQXNOb0FjY2Vzcyk7CisgICAgZW5jb2Rlci5lbmNvZGUodXJsU2NoZW1lc1JlZ2lzdGVyZWRB
c0Rpc3BsYXlJc29sYXRlZCk7CisgICAgZW5jb2Rlci5lbmNvZGUodXJsU2NoZW1lc1JlZ2lzdGVy
ZWRBc0NPUlNFbmFibGVkKTsKKyAgICBlbmNvZGVyLmVuY29kZUVudW0oY2FjaGVNb2RlbCk7Cisg
ICAgZW5jb2Rlci5lbmNvZGUoc2hvdWxkVHJhY2tWaXNpdGVkTGlua3MpOworICAgIGVuY29kZXIu
ZW5jb2RlKHNob3VsZEFsd2F5c1VzZUNvbXBsZXhUZXh0Q29kZVBhdGgpOworICAgIGVuY29kZXIu
ZW5jb2RlKHNob3VsZFVzZUZvbnRTbW9vdGhpbmcpOworICAgIGVuY29kZXIuZW5jb2RlKGljb25E
YXRhYmFzZUVuYWJsZWQpOworICAgIGVuY29kZXIuZW5jb2RlKHRlcm1pbmF0aW9uVGltZW91dCk7
CisgICAgZW5jb2Rlci5lbmNvZGUobGFuZ3VhZ2VzKTsKKyAgICBlbmNvZGVyLmVuY29kZSh0ZXh0
Q2hlY2tlclN0YXRlKTsKKyAgICBlbmNvZGVyLmVuY29kZShmdWxsS2V5Ym9hcmRBY2Nlc3NFbmFi
bGVkKTsKKyAgICBlbmNvZGVyLmVuY29kZShkZWZhdWx0UmVxdWVzdFRpbWVvdXRJbnRlcnZhbCk7
CiAjaWYgUExBVEZPUk0oTUFDKSB8fCBVU0UoQ0ZVUkxTVE9SQUdFU0VTU0lPTlMpCi0gICAgZW5j
b2Rlci0+ZW5jb2RlKHVpUHJvY2Vzc0J1bmRsZUlkZW50aWZpZXIpOworICAgIGVuY29kZXIuZW5j
b2RlKHVpUHJvY2Vzc0J1bmRsZUlkZW50aWZpZXIpOwogI2VuZGlmCiAjaWYgUExBVEZPUk0oTUFD
KQotICAgIGVuY29kZXItPmVuY29kZShwYXJlbnRQcm9jZXNzTmFtZSk7Ci0gICAgZW5jb2Rlci0+
ZW5jb2RlKHByZXNlbnRlckFwcGxpY2F0aW9uUGlkKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobnNV
UkxDYWNoZU1lbW9yeUNhcGFjaXR5KTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobnNVUkxDYWNoZURp
c2tDYXBhY2l0eSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdQ
b3J0KTsKLSAgICBlbmNvZGVyLT5lbmNvZGUodWlQcm9jZXNzQnVuZGxlUmVzb3VyY2VQYXRoKTsK
LSAgICBlbmNvZGVyLT5lbmNvZGUodWlQcm9jZXNzQnVuZGxlUmVzb3VyY2VQYXRoRXh0ZW5zaW9u
SGFuZGxlKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoc2hvdWxkRm9yY2VTY3JlZW5Gb250U3Vic3Rp
dHV0aW9uKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoc2hvdWxkRW5hYmxlS2VybmluZ0FuZExpZ2F0
dXJlc0J5RGVmYXVsdCk7CisgICAgZW5jb2Rlci5lbmNvZGUocGFyZW50UHJvY2Vzc05hbWUpOwor
ICAgIGVuY29kZXIuZW5jb2RlKHByZXNlbnRlckFwcGxpY2F0aW9uUGlkKTsKKyAgICBlbmNvZGVy
LmVuY29kZShuc1VSTENhY2hlTWVtb3J5Q2FwYWNpdHkpOworICAgIGVuY29kZXIuZW5jb2RlKG5z
VVJMQ2FjaGVEaXNrQ2FwYWNpdHkpOworICAgIGVuY29kZXIuZW5jb2RlKGFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdQb3J0KTsKKyAgICBlbmNvZGVyLmVuY29kZSh1aVByb2Nlc3NCdW5kbGVSZXNvdXJj
ZVBhdGgpOworICAgIGVuY29kZXIuZW5jb2RlKHVpUHJvY2Vzc0J1bmRsZVJlc291cmNlUGF0aEV4
dGVuc2lvbkhhbmRsZSk7CisgICAgZW5jb2Rlci5lbmNvZGUoc2hvdWxkRm9yY2VTY3JlZW5Gb250
U3Vic3RpdHV0aW9uKTsKKyAgICBlbmNvZGVyLmVuY29kZShzaG91bGRFbmFibGVLZXJuaW5nQW5k
TGlnYXR1cmVzQnlEZWZhdWx0KTsKICNlbGlmIFBMQVRGT1JNKFdJTikKLSAgICBlbmNvZGVyLT5l
bmNvZGUoc2hvdWxkUGFpbnROYXRpdmVDb250cm9scyk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGNm
VVJMQ2FjaGVEaXNrQ2FwYWNpdHkpOwotICAgIGVuY29kZXItPmVuY29kZShjZlVSTENhY2hlTWVt
b3J5Q2FwYWNpdHkpOwotICAgIGVuY29kZXItPmVuY29kZShpbml0aWFsSFRUUENvb2tpZUFjY2Vw
dFBvbGljeSk7CisgICAgZW5jb2Rlci5lbmNvZGUoc2hvdWxkUGFpbnROYXRpdmVDb250cm9scyk7
CisgICAgZW5jb2Rlci5lbmNvZGUoY2ZVUkxDYWNoZURpc2tDYXBhY2l0eSk7CisgICAgZW5jb2Rl
ci5lbmNvZGUoY2ZVUkxDYWNoZU1lbW9yeUNhcGFjaXR5KTsKKyAgICBlbmNvZGVyLmVuY29kZShp
bml0aWFsSFRUUENvb2tpZUFjY2VwdFBvbGljeSk7CiAjaWYgVVNFKENGVVJMU1RPUkFHRVNFU1NJ
T05TKQogICAgIENGRGF0YVJlZiBzdG9yYWdlU2Vzc2lvbiA9IHNlcmlhbGl6ZWREZWZhdWx0U3Rv
cmFnZVNlc3Npb24uZ2V0KCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHN0YXRpY19jYXN0PGJvb2w+
KHN0b3JhZ2VTZXNzaW9uKSk7CisgICAgZW5jb2Rlci5lbmNvZGUoc3RhdGljX2Nhc3Q8Ym9vbD4o
c3RvcmFnZVNlc3Npb24pKTsKICAgICBpZiAoc3RvcmFnZVNlc3Npb24pCiAgICAgICAgIENvcmVJ
UEM6OmVuY29kZShlbmNvZGVyLCBzdG9yYWdlU2Vzc2lvbik7CiAjZW5kaWYgLy8gVVNFKENGVVJM
U1RPUkFHRVNFU1NJT05TKQogI2VuZGlmCiAKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykgfHwg
RU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQotICAgIGVuY29kZXItPmVuY29kZShub3RpZmlj
YXRpb25QZXJtaXNzaW9ucyk7CisgICAgZW5jb2Rlci5lbmNvZGUobm90aWZpY2F0aW9uUGVybWlz
c2lvbnMpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQotICAgIGVuY29k
ZXItPmVuY29kZSh1c2VzTmV0d29ya1Byb2Nlc3MpOworICAgIGVuY29kZXIuZW5jb2RlKHVzZXNO
ZXR3b3JrUHJvY2Vzcyk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggMWY0ODgwMzY5MjcxODhj
NTgwZDZmNmM3YzA4NjE5Y2MxNDE1OTE5Ni4uNWE2NTFhYWVlYjQ0NmQ2YTgzZGY5MmFhNzg5MDBl
YWYxZGQ5Mjk0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC00OCw3ICs0OCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQg
ewogc3RydWN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIFdlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMoKTsKIAotICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50
RW5jb2RlciopIGNvbnN0OworICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rl
ciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29k
ZXIqLCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJik7CiAKICAgICBTdHJpbmcgaW5qZWN0
ZWRCdW5kbGVQYXRoOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlRvdWNo
RXZlbnQuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlRvdWNoRXZlbnQuY3BwCmluZGV4
IDcyMTNjNzhkYjQ0ZjY0OTc0NGIwOWVhMDc2ZTI2OTBhZjljMGZlYTMuLmJlMGRlYzBmMjcxNTFl
ZDU4NGQzZjM2YjhmNjg2YTdlNmJhMGRmZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJUb3VjaEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViVG91
Y2hFdmVudC5jcHAKQEAgLTQwLDExICs0MCwxMSBAQCBXZWJUb3VjaEV2ZW50OjpXZWJUb3VjaEV2
ZW50KFdlYkV2ZW50OjpUeXBlIHR5cGUsIFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+CiAg
ICAgQVNTRVJUKGlzVG91Y2hFdmVudFR5cGUodHlwZSkpOwogfQogCi12b2lkIFdlYlRvdWNoRXZl
bnQ6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Cit2b2lk
IFdlYlRvdWNoRXZlbnQ6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIp
IGNvbnN0CiB7CiAgICAgV2ViRXZlbnQ6OmVuY29kZShlbmNvZGVyKTsKIAotICAgIGVuY29kZXIt
PmVuY29kZShtX3RvdWNoUG9pbnRzKTsKKyAgICBlbmNvZGVyLmVuY29kZShtX3RvdWNoUG9pbnRz
KTsKIH0KIAogYm9vbCBXZWJUb3VjaEV2ZW50OjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKiBkZWNvZGVyLCBXZWJUb3VjaEV2ZW50JiByZXN1bHQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViV2hlZWxFdmVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViV2hlZWxFdmVudC5jcHAKaW5kZXggMzdjNjkxZTY0MTg1NWVhODYxMDdmMDI4ODI0NDUzMDk3
NDFhNzBlZi4uMTlhZTUzMjc3MjFhN2EwN2ZlNGZjMWNmMmUwMTQxOTEzZTA5YjM0OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYldoZWVsRXZlbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJXaGVlbEV2ZW50LmNwcApAQCAtNjksMjIgKzY5LDIyIEBAIFdl
YldoZWVsRXZlbnQ6OldlYldoZWVsRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBJbnRQb2ludCYgcG9z
aXRpb24sIGNvbnN0IEludFBvaW50CiB9CiAjZW5kaWYKIAotdm9pZCBXZWJXaGVlbEV2ZW50Ojpl
bmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAordm9pZCBXZWJX
aGVlbEV2ZW50OjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25z
dAogewogICAgIFdlYkV2ZW50OjplbmNvZGUoZW5jb2Rlcik7CiAKLSAgICBlbmNvZGVyLT5lbmNv
ZGUobV9wb3NpdGlvbik7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG1fZ2xvYmFsUG9zaXRpb24pOwot
ICAgIGVuY29kZXItPmVuY29kZShtX2RlbHRhKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobV93aGVl
bFRpY2tzKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobV9ncmFudWxhcml0eSk7Ci0gICAgZW5jb2Rl
ci0+ZW5jb2RlKG1fZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlKTsKKyAgICBlbmNvZGVyLmVu
Y29kZShtX3Bvc2l0aW9uKTsKKyAgICBlbmNvZGVyLmVuY29kZShtX2dsb2JhbFBvc2l0aW9uKTsK
KyAgICBlbmNvZGVyLmVuY29kZShtX2RlbHRhKTsKKyAgICBlbmNvZGVyLmVuY29kZShtX3doZWVs
VGlja3MpOworICAgIGVuY29kZXIuZW5jb2RlKG1fZ3JhbnVsYXJpdHkpOworICAgIGVuY29kZXIu
ZW5jb2RlKG1fZGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlKTsKICNpZiBQTEFURk9STShNQUMp
Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG1fcGhhc2UpOwotICAgIGVuY29kZXItPmVuY29kZShtX21v
bWVudHVtUGhhc2UpOwotICAgIGVuY29kZXItPmVuY29kZShtX2hhc1ByZWNpc2VTY3JvbGxpbmdE
ZWx0YXMpOwotICAgIGVuY29kZXItPmVuY29kZShtX3Njcm9sbENvdW50KTsKLSAgICBlbmNvZGVy
LT5lbmNvZGUobV91bmFjY2VsZXJhdGVkU2Nyb2xsaW5nRGVsdGEpOworICAgIGVuY29kZXIuZW5j
b2RlKG1fcGhhc2UpOworICAgIGVuY29kZXIuZW5jb2RlKG1fbW9tZW50dW1QaGFzZSk7CisgICAg
ZW5jb2Rlci5lbmNvZGUobV9oYXNQcmVjaXNlU2Nyb2xsaW5nRGVsdGFzKTsKKyAgICBlbmNvZGVy
LmVuY29kZShtX3Njcm9sbENvdW50KTsKKyAgICBlbmNvZGVyLmVuY29kZShtX3VuYWNjZWxlcmF0
ZWRTY3JvbGxpbmdEZWx0YSk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL2NhaXJvL0xheWVyVHJlZUNvbnRleHRDYWlyby5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvY2Fpcm8vTGF5ZXJUcmVlQ29udGV4dENhaXJvLmNwcAppbmRleCA5MTU5OTc2NjAz
OTQwNGY5MjQ5NTgyNTE0YjE3OWMxMGY0YmQ4YWI0Li41ZDM3YTNjY2I4ZmMwMDgxZjRiZGYzZTRi
Yjk5NTU2OTk2MjI3Y2RmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvY2Fpcm8v
TGF5ZXJUcmVlQ29udGV4dENhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvY2Fp
cm8vTGF5ZXJUcmVlQ29udGV4dENhaXJvLmNwcApAQCAtNDAsNyArNDAsNyBAQCBMYXllclRyZWVD
b250ZXh0Ojp+TGF5ZXJUcmVlQ29udGV4dCgpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAot
dm9pZCBMYXllclRyZWVDb250ZXh0OjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKikg
Y29uc3QKK3ZvaWQgTGF5ZXJUcmVlQ29udGV4dDo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5j
b2RlciYpIGNvbnN0CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9lZmwvTGF5ZXJUcmVlQ29udGV4dEVmbC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvZWZsL0xheWVyVHJlZUNvbnRleHRFZmwuY3BwCmluZGV4IDg4MWQ3ODc4
MjlkOWNjODgyZmY5N2E4MmZiZDQ2ZDA5OGNhY2MwMjUuLjMyZmE5NzBhOGU0OTVmMGQzNjViYWM4
MThhZGFkNGNkZmQ0OWFhNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9lZmwv
TGF5ZXJUcmVlQ29udGV4dEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2VmbC9M
YXllclRyZWVDb250ZXh0RWZsLmNwcApAQCAtNDAsOSArNDAsOSBAQCBMYXllclRyZWVDb250ZXh0
Ojp+TGF5ZXJUcmVlQ29udGV4dCgpCiB7CiB9CiAKLXZvaWQgTGF5ZXJUcmVlQ29udGV4dDo6ZW5j
b2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKK3ZvaWQgTGF5ZXJU
cmVlQ29udGV4dDo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29u
c3QKIHsKLSAgICBlbmNvZGVyLT5lbmNvZGUod2ViTGF5ZXJJRCk7CisgICAgZW5jb2Rlci5lbmNv
ZGUod2ViTGF5ZXJJRCk7CiB9CiAKIGJvb2wgTGF5ZXJUcmVlQ29udGV4dDo6ZGVjb2RlKENvcmVJ
UEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgTGF5ZXJUcmVlQ29udGV4dCYgY29udGV4dCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9ndGsvTGF5ZXJUcmVlQ29udGV4dEd0
ay5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZ3RrL0xheWVyVHJlZUNvbnRleHRHdGsuY3Bw
CmluZGV4IGU3ZDkxOGE3MGY5ZGJiMWU2YzBiNzQ0YmJiMmZkNjFkZGZiNDY4YzQuLjM4YTBkNTRh
NmFiMGU2YmM5ZWI1Yzg2MWQ2MmMwMDYwNTc3ZGRiYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9ndGsvTGF5ZXJUcmVlQ29udGV4dEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL2d0ay9MYXllclRyZWVDb250ZXh0R3RrLmNwcApAQCAtNDAsOSArNDAsOSBAQCBM
YXllclRyZWVDb250ZXh0Ojp+TGF5ZXJUcmVlQ29udGV4dCgpCiB7CiB9CiAKLXZvaWQgTGF5ZXJU
cmVlQ29udGV4dDo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29u
c3QKK3ZvaWQgTGF5ZXJUcmVlQ29udGV4dDo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyLT5lbmNvZGUod2luZG93SGFuZGxlKTsK
KyAgICBlbmNvZGVyLmVuY29kZSh3aW5kb3dIYW5kbGUpOwogfQogCiBib29sIExheWVyVHJlZUNv
bnRleHQ6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIExheWVyVHJl
ZUNvbnRleHQmIGNvbnRleHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFj
L0F0dHJpYnV0ZWRTdHJpbmcuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQXR0cmlidXRl
ZFN0cmluZy5oCmluZGV4IDZjOGE4YWUyNTJhNWI4OTliMDI0YTY1ZWM2NmUxZjZlYjFhNWYwNDku
LjZkMzUwN2Y2YTRlMTUxZmU4NjEyZDIyMDNhZTQyOGY0YmU2YmE2MzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQXR0cmlidXRlZFN0cmluZy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9tYWMvQXR0cmlidXRlZFN0cmluZy5oCkBAIC0zOCw3ICszOCw3IEBAIG5h
bWVzcGFjZSBDb3JlSVBDIHsKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBzdHJ1Y3QgQXR0cmlidXRl
ZFN0cmluZyB7Ci0gICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKikgY29u
c3Q7CisgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CiAg
ICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIEF0dHJpYnV0
ZWRTdHJpbmcmKTsKICAgICAKICAgICBSZXRhaW5QdHI8TlNBdHRyaWJ1dGVkU3RyaW5nPiBzdHJp
bmc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0F0dHJpYnV0ZWRTdHJp
bmcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0F0dHJpYnV0ZWRTdHJpbmcubW0KaW5k
ZXggYmM3Y2ZkMDg2ZTI3ODBhMDk2YjllMDI3NTZjYmUxMzJkNzI3MDMzNC4uYjdhNDdkN2JjMzRi
YThiZWNlMDUyMWVkMmMzMGRmNjkzMGY5NzFkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL21hYy9BdHRyaWJ1dGVkU3RyaW5nLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9tYWMvQXR0cmlidXRlZFN0cmluZy5tbQpAQCAtMzIsMTIgKzMyLDEyIEBACiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCi12b2lkIEF0dHJpYnV0ZWRTdHJpbmc6OmVuY29kZShDb3JlSVBDOjpBcmd1
bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Cit2b2lkIEF0dHJpYnV0ZWRTdHJpbmc6OmVuY29k
ZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2Rl
ci0+ZW5jb2RlKCFzdHJpbmcpOworICAgIGVuY29kZXIuZW5jb2RlKCFzdHJpbmcpOwogICAgIGlm
ICghc3RyaW5nKQogICAgICAgICByZXR1cm47Ci0gICAgQ29yZUlQQzo6ZW5jb2RlKGVuY29kZXIs
IHN0cmluZy5nZXQoKSk7CisgICAgQ29yZUlQQzo6ZW5jb2RlKCZlbmNvZGVyLCBzdHJpbmcuZ2V0
KCkpOwogfQogCiBib29sIEF0dHJpYnV0ZWRTdHJpbmc6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqIGRlY29kZXIsIEF0dHJpYnV0ZWRTdHJpbmcmIGF0dHJpYnV0ZWRTdHJpbmcpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0NvbG9yU3BhY2VEYXRhLmggYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0NvbG9yU3BhY2VEYXRhLmgKaW5kZXggY2RlYTg2ZWU1
MzE4MWM0NjUxZGQzOTVmYWU5MmM4M2NjMzZhNGMwMC4uYWZlNWI3NzM2ZTZkYWJmZjA4NzFhZjJj
N2U3NzY3NGZhMzE0Nzc2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9D
b2xvclNwYWNlRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ29sb3JTcGFj
ZURhdGEuaApAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgQ29yZUlQQyB7CiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAogc3RydWN0IENvbG9yU3BhY2VEYXRhIHsKLSAgICB2b2lkIGVuY29kZShDb3Jl
SVBDOjpBcmd1bWVudEVuY29kZXIqKSBjb25zdDsKKyAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpB
cmd1bWVudEVuY29kZXImKSBjb25zdDsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyKiwgQ29sb3JTcGFjZURhdGEmKTsKIAogICAgIFJldGFpblB0cjxDR0Nv
bG9yU3BhY2VSZWY+IGNnQ29sb3JTcGFjZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9tYWMvQ29sb3JTcGFjZURhdGEubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0Nv
bG9yU3BhY2VEYXRhLm1tCmluZGV4IDc5NmMwNmQwYWRiZjZmOGRiODQwNWQ3MjFkODE1MTgxMmUz
YWNmODkuLmE5MzRhOTkyYjE2NTU3YzAwZDRlY2UwOTRlZjE2OTY1NDgxZTA2MTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ29sb3JTcGFjZURhdGEubW0KKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL21hYy9Db2xvclNwYWNlRGF0YS5tbQpAQCAtMzgsMjYgKzM4LDI2
IEBAIGVudW0gRW5jb2RlZERhdGFUeXBlIHsKICAgICBEYXRhLAogfTsKIAotdm9pZCBDb2xvclNw
YWNlRGF0YTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QK
K3ZvaWQgQ29sb3JTcGFjZURhdGE6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVu
Y29kZXIpIGNvbnN0CiB7CiAgICAgaWYgKGNnQ29sb3JTcGFjZSkgewogICAgICAgICAvLyBUcnkg
dG8gZW5jb2RlIHRoZSBuYW1lLgogICAgICAgICBpZiAoUmV0YWluUHRyPENGU3RyaW5nUmVmPiBu
YW1lID0gYWRvcHRDRihDR0NvbG9yU3BhY2VDb3B5TmFtZShjZ0NvbG9yU3BhY2UuZ2V0KCkpKSkg
ewotICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlRW51bShOYW1lKTsKLSAgICAgICAgICAgIENv
cmVJUEM6OmVuY29kZShlbmNvZGVyLCBuYW1lLmdldCgpKTsKKyAgICAgICAgICAgIGVuY29kZXIu
ZW5jb2RlRW51bShOYW1lKTsKKyAgICAgICAgICAgIENvcmVJUEM6OmVuY29kZSgmZW5jb2Rlciwg
bmFtZS5nZXQoKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAogICAgICAgICAv
LyBGYWlsaW5nIHRoYXQsIGp1c3QgZW5jb2RlIHRoZSBJQ0MgZGF0YS4KICAgICAgICAgaWYgKFJl
dGFpblB0cjxDRkRhdGFSZWY+IHByb2ZpbGVEYXRhID0gYWRvcHRDRihDR0NvbG9yU3BhY2VDb3B5
SUNDUHJvZmlsZShjZ0NvbG9yU3BhY2UuZ2V0KCkpKSkgewotICAgICAgICAgICAgZW5jb2Rlci0+
ZW5jb2RlRW51bShEYXRhKTsKLSAgICAgICAgICAgIENvcmVJUEM6OmVuY29kZShlbmNvZGVyLCBw
cm9maWxlRGF0YS5nZXQoKSk7CisgICAgICAgICAgICBlbmNvZGVyLmVuY29kZUVudW0oRGF0YSk7
CisgICAgICAgICAgICBDb3JlSVBDOjplbmNvZGUoJmVuY29kZXIsIHByb2ZpbGVEYXRhLmdldCgp
KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KIAogICAgIC8vIFRoZSBj
b2xvciBzcGFjZSB3YXMgbnVsbCBvciBmYWlsZWQgdG8gYmUgZW5jb2RlZC4KLSAgICBlbmNvZGVy
LT5lbmNvZGVFbnVtKE51bGwpOworICAgIGVuY29kZXIuZW5jb2RlRW51bShOdWxsKTsKIH0KIAog
Ym9vbCBDb2xvclNwYWNlRGF0YTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVj
b2RlciwgQ29sb3JTcGFjZURhdGEmIGNvbG9yU3BhY2VEYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL21hYy9MYXllclRyZWVDb250ZXh0TWFjLm1tIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL21hYy9MYXllclRyZWVDb250ZXh0TWFjLm1tCmluZGV4IGU0YWQxY2UwYmQyMDU3
ZmNkOWYwMGVlNWQ5MDkzNTM2YjU4YmRiZmEuLmQ1OTU3YmYwMzZkZjU5MWVlNjFiMjFhNjI2NzE1
MDFjMTJiY2NiNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvTGF5ZXJU
cmVlQ29udGV4dE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0xheWVyVHJl
ZUNvbnRleHRNYWMubW0KQEAgLTQwLDkgKzQwLDkgQEAgTGF5ZXJUcmVlQ29udGV4dDo6fkxheWVy
VHJlZUNvbnRleHQoKQogewogfQogCi12b2lkIExheWVyVHJlZUNvbnRleHQ6OmVuY29kZShDb3Jl
SVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Cit2b2lkIExheWVyVHJlZUNvbnRl
eHQ6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0g
ICAgZW5jb2Rlci0+ZW5jb2RlKGNvbnRleHRJRCk7CisgICAgZW5jb2Rlci5lbmNvZGUoY29udGV4
dElEKTsKIH0KIAogYm9vbCBMYXllclRyZWVDb250ZXh0OjpkZWNvZGUoQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKiBkZWNvZGVyLCBMYXllclRyZWVDb250ZXh0JiByZXN1bHQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1BsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLmggYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1BsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLmgKaW5kZXgg
N2VmNWIzNzcwZWVhZGQzZTc2ZDA2MDY0ZGQwZWE1ZTI0MTVlNzViNS4uOTNmMDlmMzY5MWJiZjJm
NTI4OWE0ZDA1NThjNGQyZmE2ZjM3NzE3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL21hYy9QbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9tYWMvUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8uaApAQCAtNDQsNyArNDQsNyBAQCBwdWJs
aWM6CiAKICAgICBDRkFycmF5UmVmIGNlcnRpZmljYXRlQ2hhaW4oKSBjb25zdCB7IHJldHVybiBt
X2NlcnRpZmljYXRlQ2hhaW4uZ2V0KCk7IH0KIAotICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFy
Z3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3Q7CisgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6
QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8mIHQpOwog
CiAjaWZuZGVmIE5ERUJVRwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9Q
bGF0Zm9ybUNlcnRpZmljYXRlSW5mby5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUGxh
dGZvcm1DZXJ0aWZpY2F0ZUluZm8ubW0KaW5kZXggZGIyYjkwZTc1ZDA4YTgxZTI0Njk4MmQzYzc1
ODgzYTIwYTFkMmFkOS4uN2YyOTE1MzgwZTQyMjE2ZWE1YjE2MDBlOWEwMTRhMDlkZjY4MTE3OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9QbGF0Zm9ybUNlcnRpZmljYXRl
SW5mby5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1BsYXRmb3JtQ2VydGlmaWNh
dGVJbmZvLm1tCkBAIC00OSwxNSArNDksMTUgQEAgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm86OlBs
YXRmb3JtQ2VydGlmaWNhdGVJbmZvKENGQXJyYXlSZWYgY2VydGlmaWNhdGVDaGFpbikKIHsKIH0K
IAotdm9pZCBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbzo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50
RW5jb2RlciogZW5jb2RlcikgY29uc3QKK3ZvaWQgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm86OmVu
Y29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7CiAgICAgaWYg
KCFtX2NlcnRpZmljYXRlQ2hhaW4pIHsKLSAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKGZhbHNlKTsK
KyAgICAgICAgZW5jb2Rlci5lbmNvZGUoZmFsc2UpOwogICAgICAgICByZXR1cm47CiAgICAgfQog
Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHRydWUpOwotICAgIENvcmVJUEM6OmVuY29kZShlbmNvZGVy
LCBtX2NlcnRpZmljYXRlQ2hhaW4uZ2V0KCkpOworICAgIGVuY29kZXIuZW5jb2RlKHRydWUpOwor
ICAgIENvcmVJUEM6OmVuY29kZSgmZW5jb2RlciwgbV9jZXJ0aWZpY2F0ZUNoYWluLmdldCgpKTsK
IH0KIAogYm9vbCBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbzo6ZGVjb2RlKENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciogZGVjb2RlciwgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8mIGMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NhbmRib3hFeHRlbnNpb25NYWMubW0gYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NhbmRib3hFeHRlbnNpb25NYWMubW0KaW5kZXggMTA5
ZDFlYjg4MThlMWUxZWZmODAxOTMyNGE3NDk2YzJlNzg3MDBhOS4uYjZjMmM4NTkyYjU5MGEwMGNl
OGI2NzEzMmI3YWUxNjg0NTYzNWVhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L21hYy9TYW5kYm94RXh0ZW5zaW9uTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9t
YWMvU2FuZGJveEV4dGVuc2lvbk1hYy5tbQpAQCAtNTMsMTAgKzUzLDEwIEBAIFNhbmRib3hFeHRl
bnNpb246OkhhbmRsZTo6fkhhbmRsZSgpCiAgICAgfQogfQogCi12b2lkIFNhbmRib3hFeHRlbnNp
b246OkhhbmRsZTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29u
c3QKK3ZvaWQgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlOjplbmNvZGUoQ29yZUlQQzo6QXJndW1l
bnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewogICAgIGlmICghbV9zYW5kYm94RXh0ZW5zaW9u
KSB7Ci0gICAgICAgIGVuY29kZXItPmVuY29kZVZhcmlhYmxlTGVuZ3RoQnl0ZUFycmF5KENvcmVJ
UEM6OkRhdGFSZWZlcmVuY2UoKSk7CisgICAgICAgIGVuY29kZXIuZW5jb2RlVmFyaWFibGVMZW5n
dGhCeXRlQXJyYXkoQ29yZUlQQzo6RGF0YVJlZmVyZW5jZSgpKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIApAQCAtNjQsNyArNjQsNyBAQCB2b2lkIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZTo6
ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKICAgICBjb25z
dCBjaGFyICpzZXJpYWxpemVkRm9ybWF0ID0gV0tTYW5kYm94RXh0ZW5zaW9uR2V0U2VyaWFsaXpl
ZEZvcm1hdChtX3NhbmRib3hFeHRlbnNpb24sICZsZW5ndGgpOwogICAgIEFTU0VSVChzZXJpYWxp
emVkRm9ybWF0KTsKIAotICAgIGVuY29kZXItPmVuY29kZVZhcmlhYmxlTGVuZ3RoQnl0ZUFycmF5
KENvcmVJUEM6OkRhdGFSZWZlcmVuY2UocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4o
c2VyaWFsaXplZEZvcm1hdCksIGxlbmd0aCkpOworICAgIGVuY29kZXIuZW5jb2RlVmFyaWFibGVM
ZW5ndGhCeXRlQXJyYXkoQ29yZUlQQzo6RGF0YVJlZmVyZW5jZShyZWludGVycHJldF9jYXN0PGNv
bnN0IHVpbnQ4X3QqPihzZXJpYWxpemVkRm9ybWF0KSwgbGVuZ3RoKSk7CiAKICAgICAvLyBFbmNv
ZGluZyB3aWxsIGRlc3Ryb3kgdGhlIHNhbmRib3ggZXh0ZW5zaW9uIGxvY2FsbHkuCiAgICAgV0tT
YW5kYm94RXh0ZW5zaW9uRGVzdHJveShtX3NhbmRib3hFeHRlbnNpb24pOwpAQCAtMTI2LDExICsx
MjYsMTEgQEAgc2l6ZV90IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5OjpzaXplKCkgY29u
c3QKICAgICByZXR1cm4gbV9zaXplOwogfQogCi12b2lkIFNhbmRib3hFeHRlbnNpb246OkhhbmRs
ZUFycmF5OjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAor
dm9pZCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3Vt
ZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyLT5lbmNvZGUoc3RhdGlj
X2Nhc3Q8dWludDY0X3Q+KHNpemUoKSkpOworICAgIGVuY29kZXIuZW5jb2RlKHN0YXRpY19jYXN0
PHVpbnQ2NF90PihzaXplKCkpKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fc2l6ZTsg
KytpKQotICAgICAgICBlbmNvZGVyLT5lbmNvZGUobV9kYXRhW2ldKTsKKyAgICAgICAgZW5jb2Rl
ci5lbmNvZGUobV9kYXRhW2ldKTsKICAgICAKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL21hYy9TZWNJdGVtUmVxdWVzdERhdGEuY3BwIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL21hYy9TZWNJdGVtUmVxdWVzdERhdGEuY3BwCmluZGV4IDJmYjJmMjg0NTg3MWUzZmYxMzY2
YjkwNjY2NGE3ZGZhYTgwZGIxMjIuLjRjMjhkMjJiYWUzYjdiNDQxZTA5MTRmYzM3MDcyMzA3OTk3
MjQ5ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjSXRlbVJlcXVl
c3REYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0l0ZW1SZXF1ZXN0
RGF0YS5jcHAKQEAgLTQ5LDE1ICs0OSwxNSBAQCBTZWNJdGVtUmVxdWVzdERhdGE6OlNlY0l0ZW1S
ZXF1ZXN0RGF0YShUeXBlIHR5cGUsIENGRGljdGlvbmFyeVJlZiBxdWVyeSwgQ0ZEaWN0aQogewog
fQogCi12b2lkIFNlY0l0ZW1SZXF1ZXN0RGF0YTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5j
b2RlciogZW5jb2RlcikgY29uc3QKK3ZvaWQgU2VjSXRlbVJlcXVlc3REYXRhOjplbmNvZGUoQ29y
ZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXItPmVu
Y29kZUVudW0obV90eXBlKTsKKyAgICBlbmNvZGVyLmVuY29kZUVudW0obV90eXBlKTsKIAotICAg
IENvcmVJUEM6OmVuY29kZShlbmNvZGVyLCBtX3F1ZXJ5RGljdGlvbmFyeS5nZXQoKSk7CisgICAg
Q29yZUlQQzo6ZW5jb2RlKCZlbmNvZGVyLCBtX3F1ZXJ5RGljdGlvbmFyeS5nZXQoKSk7CiAKLSAg
ICBlbmNvZGVyLT5lbmNvZGUoc3RhdGljX2Nhc3Q8Ym9vbD4obV9hdHRyaWJ1dGVzVG9NYXRjaCkp
OworICAgIGVuY29kZXIuZW5jb2RlKHN0YXRpY19jYXN0PGJvb2w+KG1fYXR0cmlidXRlc1RvTWF0
Y2gpKTsKICAgICBpZiAobV9hdHRyaWJ1dGVzVG9NYXRjaCkKLSAgICAgICAgQ29yZUlQQzo6ZW5j
b2RlKGVuY29kZXIsIG1fYXR0cmlidXRlc1RvTWF0Y2guZ2V0KCkpOworICAgICAgICBDb3JlSVBD
OjplbmNvZGUoJmVuY29kZXIsIG1fYXR0cmlidXRlc1RvTWF0Y2guZ2V0KCkpOwogfQogCiBib29s
IFNlY0l0ZW1SZXF1ZXN0RGF0YTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVj
b2RlciwgU2VjSXRlbVJlcXVlc3REYXRhJiBzZWNJdGVtUmVxdWVzdERhdGEpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0l0ZW1SZXF1ZXN0RGF0YS5oIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL21hYy9TZWNJdGVtUmVxdWVzdERhdGEuaAppbmRleCA1N2IxOGNmYzY3
MjRlOTQ2NWQ2OGQyMjRiODE5OWQ4ZDgyNTFmMjllLi5jYWUyYzBhY2E4NjE1Yzk2YTg5M2MxNzA1
MGI4MmMxYjY0NjUyY2NlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1Nl
Y0l0ZW1SZXF1ZXN0RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjSXRl
bVJlcXVlc3REYXRhLmgKQEAgLTUwLDcgKzUwLDcgQEAgcHVibGljOgogICAgIFNlY0l0ZW1SZXF1
ZXN0RGF0YShUeXBlLCBDRkRpY3Rpb25hcnlSZWYgcXVlcnkpOwogICAgIFNlY0l0ZW1SZXF1ZXN0
RGF0YShUeXBlLCBDRkRpY3Rpb25hcnlSZWYgcXVlcnksIENGRGljdGlvbmFyeVJlZiBhdHRyaWJ1
dGVzVG9NYXRjaCk7CiAKLSAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIq
KSBjb25zdDsKKyAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25z
dDsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgU2Vj
SXRlbVJlcXVlc3REYXRhJik7CiAKICAgICBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5
cGU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjSXRlbVJlc3Bv
bnNlRGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0l0ZW1SZXNwb25zZURh
dGEuY3BwCmluZGV4IDBjYzhmMTM0NzFkNGMxZmEyMDY2Y2E5OTM1NTBkNzljYmY3NzYzOWEuLjZj
NGJhZDE2YTU1OTI3MDA2YzRmM2ViMDg0ZGFjZjJlYjUzZWJiYTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjSXRlbVJlc3BvbnNlRGF0YS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL21hYy9TZWNJdGVtUmVzcG9uc2VEYXRhLmNwcApAQCAtNDEsMTIgKzQx
LDEyIEBAIFNlY0l0ZW1SZXNwb25zZURhdGE6OlNlY0l0ZW1SZXNwb25zZURhdGEoT1NTdGF0dXMg
cmVzdWx0Q29kZSwgQ0ZUeXBlUmVmIHJlc3VsdE9iCiB7CiB9CiAKLXZvaWQgU2VjSXRlbVJlc3Bv
bnNlRGF0YTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QK
K3ZvaWQgU2VjSXRlbVJlc3BvbnNlRGF0YTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyLT5lbmNvZGUoc3RhdGljX2Nhc3Q8aW50
NjRfdD4obV9yZXN1bHRDb2RlKSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHN0YXRpY19jYXN0PGJv
b2w+KG1fcmVzdWx0T2JqZWN0LmdldCgpKSk7CisgICAgZW5jb2Rlci5lbmNvZGUoc3RhdGljX2Nh
c3Q8aW50NjRfdD4obV9yZXN1bHRDb2RlKSk7CisgICAgZW5jb2Rlci5lbmNvZGUoc3RhdGljX2Nh
c3Q8Ym9vbD4obV9yZXN1bHRPYmplY3QuZ2V0KCkpKTsKICAgICBpZiAobV9yZXN1bHRPYmplY3Qp
Ci0gICAgICAgIENvcmVJUEM6OmVuY29kZShlbmNvZGVyLCBtX3Jlc3VsdE9iamVjdC5nZXQoKSk7
CisgICAgICAgIENvcmVJUEM6OmVuY29kZSgmZW5jb2RlciwgbV9yZXN1bHRPYmplY3QuZ2V0KCkp
OwogfQogCiBib29sIFNlY0l0ZW1SZXNwb25zZURhdGE6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqIGRlY29kZXIsIFNlY0l0ZW1SZXNwb25zZURhdGEmIHNlY0l0ZW1SZXNwb25zZURh
dGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0l0ZW1SZXNwb25z
ZURhdGEuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjSXRlbVJlc3BvbnNlRGF0YS5o
CmluZGV4IDVjOTQzMzY5MjcyNDMyZGY4NjRkNjFmMWUxMGQ3MTdlOWRmZTQ2NjkuLmNmNWM5ZWU3
YTNkMWJjMGM4YTk5YTVkZDY4NDdlODQ3OTJjMTgxYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9tYWMvU2VjSXRlbVJlc3BvbnNlRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9tYWMvU2VjSXRlbVJlc3BvbnNlRGF0YS5oCkBAIC00MCw3ICs0MCw3IEBAIHB1Ymxp
YzoKICAgICBTZWNJdGVtUmVzcG9uc2VEYXRhKCk7CiAgICAgU2VjSXRlbVJlc3BvbnNlRGF0YShP
U1N0YXR1cywgQ0ZUeXBlUmVmIHJlc3VsdCk7CiAKLSAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpB
cmd1bWVudEVuY29kZXIqKSBjb25zdDsKKyAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVu
dEVuY29kZXImKSBjb25zdDsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKiwgU2VjSXRlbVJlc3BvbnNlRGF0YSYpOwogCiAgICAgUmV0YWluUHRyPENGVHlw
ZVJlZj4mIHJlc3VsdE9iamVjdCgpIHsgcmV0dXJuIG1fcmVzdWx0T2JqZWN0OyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0tleWNoYWluSXRlbVJlcXVlc3REYXRh
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjS2V5Y2hhaW5JdGVtUmVxdWVzdERh
dGEuY3BwCmluZGV4IGRjYmY5OTQ1OGM2OTVhMjhkNzBhMTZiMmRjNGNlNzIyZTkwZjI2YTIuLjJl
ZTNlNDhjZDQ5OGIxNDJiOGVhOGQzZGYxOTgwMTdkNWQyOTYyZDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjS2V5Y2hhaW5JdGVtUmVxdWVzdERhdGEuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjS2V5Y2hhaW5JdGVtUmVxdWVzdERhdGEuY3Bw
CkBAIC0xMjMsMTkgKzEyMywxOSBAQCBTZWNLZXljaGFpbkF0dHJpYnV0ZUxpc3QqIFNlY0tleWNo
YWluSXRlbVJlcXVlc3REYXRhOjphdHRyaWJ1dGVMaXN0KCkgY29uc3QKICAgICByZXR1cm4gbV9h
dHRycy0+bV9hdHRyaWJ1dGVMaXN0LmdldCgpOwogfQogCi12b2lkIFNlY0tleWNoYWluSXRlbVJl
cXVlc3REYXRhOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25z
dAordm9pZCBTZWNLZXljaGFpbkl0ZW1SZXF1ZXN0RGF0YTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3Vt
ZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyLT5lbmNvZGVFbnVtKG1f
dHlwZSk7CisgICAgZW5jb2Rlci5lbmNvZGVFbnVtKG1fdHlwZSk7CiAKLSAgICBlbmNvZGVyLT5l
bmNvZGUoc3RhdGljX2Nhc3Q8Ym9vbD4obV9rZXljaGFpbkl0ZW0pKTsKKyAgICBlbmNvZGVyLmVu
Y29kZShzdGF0aWNfY2FzdDxib29sPihtX2tleWNoYWluSXRlbSkpOwogICAgIGlmIChtX2tleWNo
YWluSXRlbSkKLSAgICAgICAgQ29yZUlQQzo6ZW5jb2RlKGVuY29kZXIsIG1fa2V5Y2hhaW5JdGVt
LmdldCgpKTsKKyAgICAgICAgQ29yZUlQQzo6ZW5jb2RlKCZlbmNvZGVyLCBtX2tleWNoYWluSXRl
bS5nZXQoKSk7CiAKLSAgICBlbmNvZGVyLT5lbmNvZGUoc3RhdGljX2Nhc3Q8aW50MzJfdD4obV9r
ZXljaGFpbkF0dHJpYnV0ZXMuc2l6ZSgpKSk7CisgICAgZW5jb2Rlci5lbmNvZGUoc3RhdGljX2Nh
c3Q8aW50MzJfdD4obV9rZXljaGFpbkF0dHJpYnV0ZXMuc2l6ZSgpKSk7CiAgICAgZm9yIChzaXpl
X3QgaSA9IDAsIGNvdW50ID0gbV9rZXljaGFpbkF0dHJpYnV0ZXMuc2l6ZSgpOyBpIDwgY291bnQ7
ICsraSkKLSAgICAgICAgQ29yZUlQQzo6ZW5jb2RlKGVuY29kZXIsIG1fa2V5Y2hhaW5BdHRyaWJ1
dGVzW2ldKTsKKyAgICAgICAgQ29yZUlQQzo6ZW5jb2RlKCZlbmNvZGVyLCBtX2tleWNoYWluQXR0
cmlidXRlc1tpXSk7CiAgICAgCi0gICAgZW5jb2Rlci0+ZW5jb2RlKHN0YXRpY19jYXN0PHVpbnQ2
NF90PihtX2l0ZW1DbGFzcykpOworICAgIGVuY29kZXIuZW5jb2RlKHN0YXRpY19jYXN0PHVpbnQ2
NF90PihtX2l0ZW1DbGFzcykpOwogICAgIG1fZGF0YVJlZmVyZW5jZS5lbmNvZGUoZW5jb2Rlcik7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjS2V5Y2hhaW5J
dGVtUmVxdWVzdERhdGEuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjS2V5Y2hhaW5J
dGVtUmVxdWVzdERhdGEuaAppbmRleCA1MTJlYTU0YmQyNDU1YTNjZjY1OTMwZGVmY2QwNjZjNmZm
YmMyYTM4Li4xODEyMzFiZDYxNjY3ZTIxZDU2OTZkNzhiOTdiZThiOTVlZWFmYTJmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0tleWNoYWluSXRlbVJlcXVlc3REYXRh
LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TZWNLZXljaGFpbkl0ZW1SZXF1ZXN0
RGF0YS5oCkBAIC01OCw3ICs1OCw3IEBAIHB1YmxpYzoKICAgICBTZWNLZXljaGFpbkl0ZW1SZXF1
ZXN0RGF0YShUeXBlLCBTZWNJdGVtQ2xhc3MsIFNlY0tleWNoYWluQXR0cmlidXRlTGlzdCosIFVJ
bnQzMiBsZW5ndGgsIGNvbnN0IHZvaWQqIGRhdGEpOwogICAgIH5TZWNLZXljaGFpbkl0ZW1SZXF1
ZXN0RGF0YSgpOwogCi0gICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKikg
Y29uc3Q7CisgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7
CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIFNlY0tl
eWNoYWluSXRlbVJlcXVlc3REYXRhJik7CiAKICAgICBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVy
biBtX3R5cGU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjS2V5
Y2hhaW5JdGVtUmVzcG9uc2VEYXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2Vj
S2V5Y2hhaW5JdGVtUmVzcG9uc2VEYXRhLmNwcAppbmRleCAyNDdmODliNmFjOTlmODJmODcxZjc5
M2Q4OTA2YTNiZTQ4NDk5YTA3Li40OTViMzAxMmNiN2E3MmNmMTQzN2RiYjU3ODRhYjAwNDU5Njk1
OWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0tleWNoYWluSXRl
bVJlc3BvbnNlRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TZWNLZXlj
aGFpbkl0ZW1SZXNwb25zZURhdGEuY3BwCkBAIC02MywyMSArNjMsMjEgQEAgU2VjS2V5Y2hhaW5J
dGVtUmVzcG9uc2VEYXRhOjpTZWNLZXljaGFpbkl0ZW1SZXNwb25zZURhdGEoT1NTdGF0dXMgcmVz
dWx0Q29kZSkKIHsKIH0KIAotdm9pZCBTZWNLZXljaGFpbkl0ZW1SZXNwb25zZURhdGE6OmVuY29k
ZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Cit2b2lkIFNlY0tleWNo
YWluSXRlbVJlc3BvbnNlRGF0YTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5j
b2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyLT5lbmNvZGUoc3RhdGljX2Nhc3Q8aW50NjRfdD4o
bV9yZXN1bHRDb2RlKSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHN0YXRpY19jYXN0PHVpbnQzMl90
PihtX2l0ZW1DbGFzcykpOwotICAgIGVuY29kZXItPmVuY29kZShzdGF0aWNfY2FzdDx1aW50MzJf
dD4obV9hdHRyaWJ1dGVzLnNpemUoKSkpOworICAgIGVuY29kZXIuZW5jb2RlKHN0YXRpY19jYXN0
PGludDY0X3Q+KG1fcmVzdWx0Q29kZSkpOworICAgIGVuY29kZXIuZW5jb2RlKHN0YXRpY19jYXN0
PHVpbnQzMl90PihtX2l0ZW1DbGFzcykpOworICAgIGVuY29kZXIuZW5jb2RlKHN0YXRpY19jYXN0
PHVpbnQzMl90PihtX2F0dHJpYnV0ZXMuc2l6ZSgpKSk7CiAgICAgZm9yIChzaXplX3QgaSA9IDAs
IGNvdW50ID0gbV9hdHRyaWJ1dGVzLnNpemUoKTsgaSA8IGNvdW50OyArK2kpCi0gICAgICAgIENv
cmVJUEM6OmVuY29kZShlbmNvZGVyLCBtX2F0dHJpYnV0ZXNbaV0pOworICAgICAgICBDb3JlSVBD
OjplbmNvZGUoJmVuY29kZXIsIG1fYXR0cmlidXRlc1tpXSk7CiAKLSAgICBlbmNvZGVyLT5lbmNv
ZGUoc3RhdGljX2Nhc3Q8Ym9vbD4obV9kYXRhKSk7CisgICAgZW5jb2Rlci5lbmNvZGUoc3RhdGlj
X2Nhc3Q8Ym9vbD4obV9kYXRhKSk7CiAgICAgaWYgKG1fZGF0YSkKLSAgICAgICAgQ29yZUlQQzo6
ZW5jb2RlKGVuY29kZXIsIG1fZGF0YS5nZXQoKSk7CisgICAgICAgIENvcmVJUEM6OmVuY29kZSgm
ZW5jb2RlciwgbV9kYXRhLmdldCgpKTsKIAotICAgIGVuY29kZXItPmVuY29kZShzdGF0aWNfY2Fz
dDxib29sPihtX2tleWNoYWluSXRlbSkpOworICAgIGVuY29kZXIuZW5jb2RlKHN0YXRpY19jYXN0
PGJvb2w+KG1fa2V5Y2hhaW5JdGVtKSk7CiAgICAgaWYgKG1fa2V5Y2hhaW5JdGVtKQotICAgICAg
ICBDb3JlSVBDOjplbmNvZGUoZW5jb2RlciwgbV9rZXljaGFpbkl0ZW0uZ2V0KCkpOworICAgICAg
ICBDb3JlSVBDOjplbmNvZGUoJmVuY29kZXIsIG1fa2V5Y2hhaW5JdGVtLmdldCgpKTsKIH0KIAog
Ym9vbCBTZWNLZXljaGFpbkl0ZW1SZXNwb25zZURhdGE6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqIGRlY29kZXIsIFNlY0tleWNoYWluSXRlbVJlc3BvbnNlRGF0YSYgc2VjS2V5Y2hh
aW5JdGVtUmVzcG9uc2VEYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21h
Yy9TZWNLZXljaGFpbkl0ZW1SZXNwb25zZURhdGEuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9t
YWMvU2VjS2V5Y2hhaW5JdGVtUmVzcG9uc2VEYXRhLmgKaW5kZXggMDliMzhmMGFlNTAxOWY2YzVl
NTNjODYzMGJiNTQ2NzIwOWRmN2JmYi4uY2RkY2ZjMjE4ZjljZWNmZmY3ZTRhMGFmYWEyOGRmMWFh
ODM3NzY4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TZWNLZXljaGFp
bkl0ZW1SZXNwb25zZURhdGEuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0tl
eWNoYWluSXRlbVJlc3BvbnNlRGF0YS5oCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAgICBT
ZWNLZXljaGFpbkl0ZW1SZXNwb25zZURhdGEoT1NTdGF0dXMsIFJldGFpblB0cjxTZWNLZXljaGFp
bkl0ZW1SZWY+KTsKICAgICBTZWNLZXljaGFpbkl0ZW1SZXNwb25zZURhdGEoT1NTdGF0dXMpOwog
Ci0gICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKikgY29uc3Q7CisgICAg
dm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGlj
IGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIFNlY0tleWNoYWluSXRlbVJl
c3BvbnNlRGF0YSYpOwogCiAgICAgU2VjSXRlbUNsYXNzIGl0ZW1DbGFzcygpIGNvbnN0IHsgcmV0
dXJuIG1faXRlbUNsYXNzOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvcXQv
TGF5ZXJUcmVlQ29udGV4dFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9xdC9MYXllclRy
ZWVDb250ZXh0UXQuY3BwCmluZGV4IGQzN2Q3OWNiMjEzZDk2YmViYTcwZmVmMWEzODA3ZWQ1ZWVh
ODM0M2MuLjAwZWE4NzM1ZmFmZWJjYzM3MTFlZTEzNTRiODkwMjNiNDkzMDEwMmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9xdC9MYXllclRyZWVDb250ZXh0UXQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9xdC9MYXllclRyZWVDb250ZXh0UXQuY3BwCkBAIC00MCw5
ICs0MCw5IEBAIExheWVyVHJlZUNvbnRleHQ6On5MYXllclRyZWVDb250ZXh0KCkKIHsKIH0KIAot
dm9pZCBMYXllclRyZWVDb250ZXh0OjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBl
bmNvZGVyKSBjb25zdAordm9pZCBMYXllclRyZWVDb250ZXh0OjplbmNvZGUoQ29yZUlQQzo6QXJn
dW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXItPmVuY29kZSh3ZWJM
YXllcklEKTsKKyAgICBlbmNvZGVyLmVuY29kZSh3ZWJMYXllcklEKTsKIH0KIAogYm9vbCBMYXll
clRyZWVDb250ZXh0OjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBM
YXllclRyZWVDb250ZXh0JiBjb250ZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL3F0L1BsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
cXQvUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8uaAppbmRleCAzMjc3NmY3NDI2NTA4MDQ3OWQ0ODI1
NmZhZjM4OTY5M2YzMjhhZDdjLi45YzU0MmExMWRjMDZhMmJkMmE3OGM3MDUzNzQ0ODllZjM0Njc2
NjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvcXQvUGxhdGZvcm1DZXJ0aWZp
Y2F0ZUluZm8uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvcXQvUGxhdGZvcm1DZXJ0aWZp
Y2F0ZUluZm8uaApAQCAtNDIsNyArNDIsNyBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAotICAg
IHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciopIGNvbnN0CisgICAgdm9pZCBl
bmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3QKICAgICB7CiAgICAgfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvcXQvUXROZXR3b3JrUmVwbHlEYXRhLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9xdC9RdE5ldHdvcmtSZXBseURhdGEuY3BwCmluZGV4
IDkwZjY4ZTc4ZmI1OWVlYTRjNTc2MjRhYzY3N2VlN2ZmMzg4ZTQyN2IuLmIxMWRjMmY2M2ZjY2Uy
MDMxOWU3MWM5OWNhMmZiOGE5MGU0ZTg5ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9xdC9RdE5ldHdvcmtSZXBseURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9xdC9RdE5ldHdvcmtSZXBseURhdGEuY3BwCkBAIC00MSwxMyArNDEsMTMgQEAgUXROZXR3b3Jr
UmVwbHlEYXRhOjpRdE5ldHdvcmtSZXBseURhdGEoKQogICAgIDogbV9jb250ZW50TGVuZ3RoKDAp
CiB7IH0KIAotdm9pZCBRdE5ldHdvcmtSZXBseURhdGE6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVu
dEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Cit2b2lkIFF0TmV0d29ya1JlcGx5RGF0YTo6ZW5jb2Rl
KENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVy
LT5lbmNvZGUobV91cmxTdHJpbmcpOwotICAgIGVuY29kZXItPmVuY29kZShtX2NvbnRlbnRUeXBl
KTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG1fY29udGVudExl
bmd0aCkpOwotICAgIGVuY29kZXItPmVuY29kZShtX3JlcGx5VXVpZCk7Ci0gICAgZW5jb2Rlci0+
ZW5jb2RlKG1fZGF0YUhhbmRsZSk7CisgICAgZW5jb2Rlci5lbmNvZGUobV91cmxTdHJpbmcpOwor
ICAgIGVuY29kZXIuZW5jb2RlKG1fY29udGVudFR5cGUpOworICAgIGVuY29kZXIuZW5jb2RlKHN0
YXRpY19jYXN0PHVpbnQ2NF90PihtX2NvbnRlbnRMZW5ndGgpKTsKKyAgICBlbmNvZGVyLmVuY29k
ZShtX3JlcGx5VXVpZCk7CisgICAgZW5jb2Rlci5lbmNvZGUobV9kYXRhSGFuZGxlKTsKIH0KIAog
Ym9vbCBRdE5ldHdvcmtSZXBseURhdGE6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
IGRlY29kZXIsIFF0TmV0d29ya1JlcGx5RGF0YSYgZGVzdGluYXRpb24pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvcXQvUXROZXR3b3JrUmVwbHlEYXRhLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvcXQvUXROZXR3b3JrUmVwbHlEYXRhLmgKaW5kZXggNDU3ZDdiZTI3YWYwM2Y4
YzRhMmRmNDNhZGEyNzk1NTM2OTBmYTY5MC4uMDJlNWExNTQ1MDM3NjA4NjE0NmVmYWE0YjMwNzcz
NTIxZWVkMmMxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL3F0L1F0TmV0d29y
a1JlcGx5RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9xdC9RdE5ldHdvcmtSZXBs
eURhdGEuaApAQCAtNDIsNyArNDIsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIHN0cnVjdCBRdE5l
dHdvcmtSZXBseURhdGEgewogICAgIFF0TmV0d29ya1JlcGx5RGF0YSgpOwogCi0gICAgdm9pZCBl
bmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKikgY29uc3Q7CisgICAgdm9pZCBlbmNvZGUo
Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2Rl
KENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIFF0TmV0d29ya1JlcGx5RGF0YSYpOwogCiAgICAg
V1RGOjpTdHJpbmcgbV91cmxTdHJpbmc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvcXQvUXROZXR3b3JrUmVxdWVzdERhdGEuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3F0
L1F0TmV0d29ya1JlcXVlc3REYXRhLmNwcAppbmRleCA4YTgwZmIzNjk5MWZmNThiZDY0ZmY2ZWUx
OGY1Njk5YWUyZTNlOTIzLi40YzIxNmRiNGY2ZWU3Nzk5ODU2NGZiNDdkNzlmOWY0Y2MwMzUzZjMz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvcXQvUXROZXR3b3JrUmVxdWVzdERh
dGEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9xdC9RdE5ldHdvcmtSZXF1ZXN0RGF0
YS5jcHAKQEAgLTUwLDExICs1MCwxMSBAQCBRdE5ldHdvcmtSZXF1ZXN0RGF0YTo6UXROZXR3b3Jr
UmVxdWVzdERhdGEoY29uc3QgUU5ldHdvcmtSZXF1ZXN0JiByZXF1ZXN0LCBRTmV0dwogICAgIG1f
cmVwbHlVdWlkID0gUVV1aWQ6OmNyZWF0ZVV1aWQoKS50b1N0cmluZygpOwogfQogCi12b2lkIFF0
TmV0d29ya1JlcXVlc3REYXRhOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNv
ZGVyKSBjb25zdAordm9pZCBRdE5ldHdvcmtSZXF1ZXN0RGF0YTo6ZW5jb2RlKENvcmVJUEM6OkFy
Z3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyLT5lbmNvZGUobV9z
Y2hlbWUpOwotICAgIGVuY29kZXItPmVuY29kZShtX3VybFN0cmluZyk7Ci0gICAgZW5jb2Rlci0+
ZW5jb2RlKG1fcmVwbHlVdWlkKTsKKyAgICBlbmNvZGVyLmVuY29kZShtX3NjaGVtZSk7CisgICAg
ZW5jb2Rlci5lbmNvZGUobV91cmxTdHJpbmcpOworICAgIGVuY29kZXIuZW5jb2RlKG1fcmVwbHlV
dWlkKTsKIH0KIAogYm9vbCBRdE5ldHdvcmtSZXF1ZXN0RGF0YTo6ZGVjb2RlKENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciogZGVjb2RlciwgUXROZXR3b3JrUmVxdWVzdERhdGEmIGRlc3RpbmF0aW9u
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL3F0L1F0TmV0d29ya1JlcXVlc3RE
YXRhLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvcXQvUXROZXR3b3JrUmVxdWVzdERhdGEuaApp
bmRleCA5YmNhYWM3Njc2ZjQwNmFkNWQzZjQwZWE5OWJlODM4OGMyN2I5NDA5Li42NTgzOTQ1Y2Fi
YWMwN2U3ZTc0MzA1ODg5ZGU1NjkwNDQ3MmNiNzc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvcXQvUXROZXR3b3JrUmVxdWVzdERhdGEuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvcXQvUXROZXR3b3JrUmVxdWVzdERhdGEuaApAQCAtNDQsNyArNDQsNyBAQCBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIHN0cnVjdCBRdE5ldHdvcmtSZXF1ZXN0RGF0YSB7CiAgICAgUXROZXR3b3Jr
UmVxdWVzdERhdGEoKTsKICAgICBRdE5ldHdvcmtSZXF1ZXN0RGF0YShjb25zdCBRTmV0d29ya1Jl
cXVlc3QmLCBRTmV0d29ya1JlcGx5Kik7Ci0gICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1l
bnRFbmNvZGVyKikgY29uc3Q7CisgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNv
ZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVj
b2RlciosIFF0TmV0d29ya1JlcXVlc3REYXRhJik7CiAKICAgICBTdHJpbmcgbV9zY2hlbWU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvc291cC9QbGF0Zm9ybUNlcnRpZmljYXRl
SW5mby5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvc291cC9QbGF0Zm9ybUNlcnRpZmljYXRl
SW5mby5jcHAKaW5kZXggMzg4YmU3YWQ4ZDE5YzA4ZGNiYzVmZTViYWFlY2FlZmVhODM1MjljNi4u
ODE2OTIwZTZkN2U3ZjA5NGNhYzYzOTA0MGIxNmI0NWRlMzU1NDVhZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL3NvdXAvUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8uY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9zb3VwL1BsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLmNwcApA
QCAtNTEsMjQgKzUxLDI0IEBAIFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvOjp+UGxhdGZvcm1DZXJ0
aWZpY2F0ZUluZm8oKQogewogfQogCi12b2lkIFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvOjplbmNv
ZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAordm9pZCBQbGF0Zm9y
bUNlcnRpZmljYXRlSW5mbzo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2Rl
cikgY29uc3QKIHsKICAgICBpZiAoIW1fY2VydGlmaWNhdGUpIHsKLSAgICAgICAgZW5jb2Rlci0+
ZW5jb2RlKGZhbHNlKTsKKyAgICAgICAgZW5jb2Rlci5lbmNvZGUoZmFsc2UpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCiAgICAgR0J5dGVBcnJheSogY2VydGlmaWNhdGVEYXRhID0gMDsKICAg
ICBnX29iamVjdF9nZXQoR19PQkpFQ1QobV9jZXJ0aWZpY2F0ZS5nZXQoKSksICJjZXJ0aWZpY2F0
ZSIsICZjZXJ0aWZpY2F0ZURhdGEsIE5VTEwpOwogICAgIGlmICghY2VydGlmaWNhdGVEYXRhKSB7
Ci0gICAgICAgIGVuY29kZXItPmVuY29kZShmYWxzZSk7CisgICAgICAgIGVuY29kZXIuZW5jb2Rl
KGZhbHNlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGVuY29kZXItPmVuY29kZSh0
cnVlKTsKKyAgICBlbmNvZGVyLmVuY29kZSh0cnVlKTsKICAgICBHUmVmUHRyPEdCeXRlQXJyYXk+
IGNlcnRpZmljYXRlID0gYWRvcHRHUmVmKGNlcnRpZmljYXRlRGF0YSk7Ci0gICAgZW5jb2Rlci0+
ZW5jb2RlVmFyaWFibGVMZW5ndGhCeXRlQXJyYXkoQ29yZUlQQzo6RGF0YVJlZmVyZW5jZShjZXJ0
aWZpY2F0ZS0+ZGF0YSwgY2VydGlmaWNhdGUtPmxlbikpOwotICAgIGVuY29kZXItPmVuY29kZShz
dGF0aWNfY2FzdDx1aW50MzJfdD4obV90bHNFcnJvcnMpKTsKKyAgICBlbmNvZGVyLmVuY29kZVZh
cmlhYmxlTGVuZ3RoQnl0ZUFycmF5KENvcmVJUEM6OkRhdGFSZWZlcmVuY2UoY2VydGlmaWNhdGUt
PmRhdGEsIGNlcnRpZmljYXRlLT5sZW4pKTsKKyAgICBlbmNvZGVyLmVuY29kZShzdGF0aWNfY2Fz
dDx1aW50MzJfdD4obV90bHNFcnJvcnMpKTsKIH0KIAogYm9vbCBQbGF0Zm9ybUNlcnRpZmljYXRl
SW5mbzo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgUGxhdGZvcm1D
ZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9zb3VwL1BsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLmggYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvc291cC9QbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5oCmluZGV4IDBlNzZhM2U5NDdj
NjA2ZjRiODkyMWE4MjE4MDA4MWU2M2ZhNDljOWQuLjlmMTlhMmZhYjE2MjM4NGQzMjdkNGJhZGQ2
OGQ2NmYxMDdmMTFkZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9zb3VwL1Bs
YXRmb3JtQ2VydGlmaWNhdGVJbmZvLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3NvdXAv
UGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8uaApAQCAtNTAsNyArNTAsNyBAQCBwdWJsaWM6CiAgICAg
R1Rsc0NlcnRpZmljYXRlKiBjZXJ0aWZpY2F0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2VydGlmaWNh
dGUuZ2V0KCk7IH0KICAgICBHVGxzQ2VydGlmaWNhdGVGbGFncyB0bHNFcnJvcnMoKSBjb25zdCB7
IHJldHVybiBtX3Rsc0Vycm9yczsgfQogCi0gICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1l
bnRFbmNvZGVyKikgY29uc3Q7CisgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNv
ZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVj
b2RlciosIFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvJik7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd2luL0xheWVyVHJlZUNvbnRleHRXaW4uY3BwIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL3dpbi9MYXllclRyZWVDb250ZXh0V2luLmNwcAppbmRleCBhZDA1
YzFkMDMyYTQwMDAzNTk1YjA5MzFiMjM0YWRiZTE4ZGQyMzExLi41ZGQ3YzY2N2VmOGYyMTdmYThi
MWExZGViMDg1MTQ0N2U1YjBhMmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
d2luL0xheWVyVHJlZUNvbnRleHRXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93
aW4vTGF5ZXJUcmVlQ29udGV4dFdpbi5jcHAKQEAgLTM5LDkgKzM5LDkgQEAgTGF5ZXJUcmVlQ29u
dGV4dDo6fkxheWVyVHJlZUNvbnRleHQoKQogewogfQogCi12b2lkIExheWVyVHJlZUNvbnRleHQ6
OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Cit2b2lkIExh
eWVyVHJlZUNvbnRleHQ6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIp
IGNvbnN0CiB7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0X3Q+
KHdpbmRvdykpOworICAgIGVuY29kZXIuZW5jb2RlKHJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0X3Q+
KHdpbmRvdykpOwogfQogCiBib29sIExheWVyVHJlZUNvbnRleHQ6OmRlY29kZShDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqIGRlY29kZXIsIExheWVyVHJlZUNvbnRleHQmIGNvbnRleHQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd2luL1BsYXRmb3JtQ2VydGlmaWNhdGVJbmZv
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93aW4vUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8u
Y3BwCmluZGV4IDA4Y2Q0ZTJiMzMyYjA0YmRhYTRiOTE0N2I1OTFkZDdjMGEzYjE3NDQuLjViMGQy
MGE4NGNlM2MxZjgzZDk4YjgzNmQ3YWRkMjZmYTkzMTg4ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC93aW4vUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8uY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC93aW4vUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8uY3BwCkBAIC0xMDYs
MTkgKzEwNiwxOSBAQCBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyYgUGxhdGZvcm1DZXJ0aWZpY2F0
ZUluZm86Om9wZXJhdG9yPShjb25zdCBQbGF0Zm9ybUNlcnRpZgogICAgIHJldHVybiAqdGhpczsK
IH0KIAotdm9pZCBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbzo6ZW5jb2RlKENvcmVJUEM6OkFyZ3Vt
ZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKK3ZvaWQgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm86
OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7CiAgICAg
Ly8gU3BlY2lhbCBjYXNlIG5vIGNlcnRpZmljYXRlcwogICAgIGlmIChtX2NlcnRpZmljYXRlQ2hh
aW4uaXNFbXB0eSgpKSB7Ci0gICAgICAgIGVuY29kZXItPmVuY29kZShzdGQ6Om51bWVyaWNfbGlt
aXRzPHVpbnQ2NF90Pjo6bWF4KCkpOworICAgICAgICBlbmNvZGVyLmVuY29kZShzdGQ6Om51bWVy
aWNfbGltaXRzPHVpbnQ2NF90Pjo6bWF4KCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAg
ICAgdWludDY0X3QgbGVuZ3RoID0gbV9jZXJ0aWZpY2F0ZUNoYWluLnNpemUoKTsKLSAgICBlbmNv
ZGVyLT5lbmNvZGUobGVuZ3RoKTsKKyAgICBlbmNvZGVyLmVuY29kZShsZW5ndGgpOwogCiAgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkKLSAgICAgICAgZW5jb2Rlci0+ZW5j
b2RlVmFyaWFibGVMZW5ndGhCeXRlQXJyYXkoQ29yZUlQQzo6RGF0YVJlZmVyZW5jZShzdGF0aWNf
Y2FzdDx1aW50OF90Kj4obV9jZXJ0aWZpY2F0ZUNoYWluW2ldLT5wYkNlcnRFbmNvZGVkKSwgbV9j
ZXJ0aWZpY2F0ZUNoYWluW2ldLT5jYkNlcnRFbmNvZGVkKSk7CisgICAgICAgIGVuY29kZXIuZW5j
b2RlVmFyaWFibGVMZW5ndGhCeXRlQXJyYXkoQ29yZUlQQzo6RGF0YVJlZmVyZW5jZShzdGF0aWNf
Y2FzdDx1aW50OF90Kj4obV9jZXJ0aWZpY2F0ZUNoYWluW2ldLT5wYkNlcnRFbmNvZGVkKSwgbV9j
ZXJ0aWZpY2F0ZUNoYWluW2ldLT5jYkNlcnRFbmNvZGVkKSk7CiB9CiAKIGJvb2wgUGxhdGZvcm1D
ZXJ0aWZpY2F0ZUluZm86OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIs
IFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvJiBjKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL3dpbi9QbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5oIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL3dpbi9QbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5oCmluZGV4IGRkOTk5ZWYyNTNlYzVmNjM0
N2U3NWNjMmQ1ZTY5YzlhYzM0NzUzYmUuLjM4NzExZjQwNjhhYTg5YWI2M2NlNDA1YTM5ZTA5ZjBl
Y2FlMjAwMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93aW4vUGxhdGZvcm1D
ZXJ0aWZpY2F0ZUluZm8uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd2luL1BsYXRmb3Jt
Q2VydGlmaWNhdGVJbmZvLmgKQEAgLTUxLDcgKzUxLDcgQEAgcHVibGljOgogCiAgICAgY29uc3Qg
VmVjdG9yPFBDQ0VSVF9DT05URVhUPiYgY2VydGlmaWNhdGVDaGFpbigpIGNvbnN0IHsgcmV0dXJu
IG1fY2VydGlmaWNhdGVDaGFpbjsgfQogCi0gICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1l
bnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdDsKKyAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1
bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvJiB0
KTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93aW4vV2lu
ZG93R2VvbWV0cnkuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3dpbi9XaW5kb3dHZW9tZXRy
eS5jcHAKaW5kZXggNzNjYWEwNWRkZmJiYmFjNDBkNDA2NjAyN2E1N2YxN2RjNGZkYjQ0Yi4uZGE0
MGQyNDZmNzA5NmZmYWYxOTBiNWU2MzMzNTYyMGQxYzc5MWJkYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL3dpbi9XaW5kb3dHZW9tZXRyeS5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL3dpbi9XaW5kb3dHZW9tZXRyeS5jcHAKQEAgLTM2LDEyICszNiwxMiBAQCBXaW5k
b3dHZW9tZXRyeTo6V2luZG93R2VvbWV0cnkoKQogewogfQogCi12b2lkIFdpbmRvd0dlb21ldHJ5
OjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAordm9pZCBX
aW5kb3dHZW9tZXRyeTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2Rlcikg
Y29uc3QKIHsKLSAgICBlbmNvZGVyLT5lbmNvZGUocmVpbnRlcnByZXRfY2FzdDx1aW50NjRfdD4o
d2luZG93KSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHZpc2libGUpOwotICAgIGVuY29kZXItPmVu
Y29kZShmcmFtZSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGNsaXBSZWN0KTsKKyAgICBlbmNvZGVy
LmVuY29kZShyZWludGVycHJldF9jYXN0PHVpbnQ2NF90Pih3aW5kb3cpKTsKKyAgICBlbmNvZGVy
LmVuY29kZSh2aXNpYmxlKTsKKyAgICBlbmNvZGVyLmVuY29kZShmcmFtZSk7CisgICAgZW5jb2Rl
ci5lbmNvZGUoY2xpcFJlY3QpOwogfQogCiBib29sIFdpbmRvd0dlb21ldHJ5OjpkZWNvZGUoQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBXaW5kb3dHZW9tZXRyeSYgZ2VvbWV0cnkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd2luL1dpbmRvd0dlb21ldHJ5Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd2luL1dpbmRvd0dlb21ldHJ5LmgKaW5kZXggYzU1NDJi
ZDI2Y2ZiMGY0NzlhMmI4OGJjMGE2ZWIzNDA5OGFjYWExYS4uOTE5NGU1MzFmM2IzYmVjNmQ1NDY5
YTQzNjAyZjg1NjU1MDE0NzYzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL3dp
bi9XaW5kb3dHZW9tZXRyeS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93aW4vV2luZG93
R2VvbWV0cnkuaApAQCAtMzgsNyArMzgsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIHN0cnVjdCBX
aW5kb3dHZW9tZXRyeSB7CiAgICAgV2luZG93R2VvbWV0cnkoKTsKIAotICAgIHZvaWQgZW5jb2Rl
KENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciopIGNvbnN0OworICAgIHZvaWQgZW5jb2RlKENvcmVJ
UEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXIqLCBXaW5kb3dHZW9tZXRyeSYpOwogCiAgICAgSFdORCB3aW5k
b3c7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dFVzZXJN
ZXNzYWdlQ29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dFVzZXJN
ZXNzYWdlQ29kZXJzLmgKaW5kZXggZmZlMzIyODExNjdlMzZkY2VmMjU3YzkwYmJhNjEzNGRlOGZk
MmFiZi4uOGQ2ODRjNGI2N2RlNjNkOGMyZDkzODUwN2U0MWYzN2JjMmMwNTI4ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHRVc2VyTWVzc2FnZUNvZGVycy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0VXNlck1lc3NhZ2VDb2Rl
cnMuaApAQCAtNDYsNyArNDYsNyBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAotICAgIHZvaWQg
ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QgCisgICAgdm9p
ZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIHsK
ICAgICAgICAgQVBJT2JqZWN0OjpUeXBlIHR5cGUgPSBBUElPYmplY3Q6OlR5cGVOdWxsOwogICAg
ICAgICBpZiAoYmFzZUVuY29kZShlbmNvZGVyLCB0eXBlKSkKQEAgLTU1LDE3ICs1NSwxNyBAQCBw
dWJsaWM6CiAgICAgICAgIHN3aXRjaCAodHlwZSkgewogICAgICAgICBjYXNlIEFQSU9iamVjdDo6
VHlwZVBhZ2U6IHsKICAgICAgICAgICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9IHN0YXRpY19jYXN0
PFdlYlBhZ2VQcm94eSo+KG1fcm9vdCk7Ci0gICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGUocGFn
ZS0+cGFnZUlEKCkpOworICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGUocGFnZS0+cGFnZUlEKCkp
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBBUElPYmplY3Q6
OlR5cGVGcmFtZTogewogICAgICAgICAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBzdGF0aWNf
Y2FzdDxXZWJGcmFtZVByb3h5Kj4obV9yb290KTsKLSAgICAgICAgICAgIGVuY29kZXItPmVuY29k
ZShmcmFtZS0+ZnJhbWVJRCgpKTsKKyAgICAgICAgICAgIGVuY29kZXIuZW5jb2RlKGZyYW1lLT5m
cmFtZUlEKCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBB
UElPYmplY3Q6OlR5cGVQYWdlR3JvdXA6IHsKICAgICAgICAgICAgIFdlYlBhZ2VHcm91cCogcGFn
ZUdyb3VwID0gc3RhdGljX2Nhc3Q8V2ViUGFnZUdyb3VwKj4obV9yb290KTsKLSAgICAgICAgICAg
IGVuY29kZXItPmVuY29kZShwYWdlR3JvdXAtPmRhdGEoKSk7CisgICAgICAgICAgICBlbmNvZGVy
LmVuY29kZShwYWdlR3JvdXAtPmRhdGEoKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
fQogICAgICAgICBkZWZhdWx0OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlQ29kZXJzLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlVXNlck1l
c3NhZ2VDb2RlcnMuaAppbmRleCA0OWQ2Njk2NmE2NzM3MjllZTQwNWQwZDBjMTAwMThjMTY4ZjMz
ZTNiLi5jNWQ1NmYxNzg5OGUxNjdmOWY2OWU3N2NkMGU0MWI3YWZjNWE3MjI1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
VXNlck1lc3NhZ2VDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VDb2RlcnMuaApAQCAtNDksNyArNDks
NyBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAotICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFy
Z3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QgCisgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6
QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIHsKICAgICAgICAgQVBJT2JqZWN0
OjpUeXBlIHR5cGUgPSBBUElPYmplY3Q6OlR5cGVOdWxsOwogICAgICAgICBpZiAoYmFzZUVuY29k
ZShlbmNvZGVyLCB0eXBlKSkKQEAgLTU4LDE3ICs1OCwxNyBAQCBwdWJsaWM6CiAgICAgICAgIHN3
aXRjaCAodHlwZSkgewogICAgICAgICBjYXNlIEFQSU9iamVjdDo6VHlwZUJ1bmRsZVBhZ2U6IHsK
ICAgICAgICAgICAgIFdlYlBhZ2UqIHBhZ2UgPSBzdGF0aWNfY2FzdDxXZWJQYWdlKj4obV9yb290
KTsKLSAgICAgICAgICAgIGVuY29kZXItPmVuY29kZShwYWdlLT5wYWdlSUQoKSk7CisgICAgICAg
ICAgICBlbmNvZGVyLmVuY29kZShwYWdlLT5wYWdlSUQoKSk7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgfQogICAgICAgICBjYXNlIEFQSU9iamVjdDo6VHlwZUJ1bmRsZUZyYW1lOiB7CiAg
ICAgICAgICAgICBXZWJGcmFtZSogZnJhbWUgPSBzdGF0aWNfY2FzdDxXZWJGcmFtZSo+KG1fcm9v
dCk7Ci0gICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGUoZnJhbWUtPmZyYW1lSUQoKSk7CisgICAg
ICAgICAgICBlbmNvZGVyLmVuY29kZShmcmFtZS0+ZnJhbWVJRCgpKTsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgQVBJT2JqZWN0OjpUeXBlQnVuZGxlUGFnZUdy
b3VwOiB7CiAgICAgICAgICAgICBXZWJQYWdlR3JvdXBQcm94eSogcGFnZUdyb3VwID0gc3RhdGlj
X2Nhc3Q8V2ViUGFnZUdyb3VwUHJveHkqPihtX3Jvb3QpOwotICAgICAgICAgICAgZW5jb2Rlci0+
ZW5jb2RlKHBhZ2VHcm91cC0+cGFnZUdyb3VwSUQoKSk7CisgICAgICAgICAgICBlbmNvZGVyLmVu
Y29kZShwYWdlR3JvdXAtPnBhZ2VHcm91cElEKCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KICAgICAgICAgZGVmYXVsdDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW4uY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpbi5jcHAKaW5kZXggYmM4ODRiOTYyYTFlYzM4NDY4ZTk2OTkwMGQxN2ExZGMyZDVl
ZjQ1My4uZWUwMmJiYjUxODcyZWU3OGZlZDAyNWNlYThkNTIwMzNlN2I5ZGU3MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5jcHAKQEAgLTMyLDE2ICszMiwx
NiBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXZv
aWQgUGx1Z2luOjpQYXJhbWV0ZXJzOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBl
bmNvZGVyKSBjb25zdAordm9pZCBQbHVnaW46OlBhcmFtZXRlcnM6OmVuY29kZShDb3JlSVBDOjpB
cmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHVy
bC5zdHJpbmcoKSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG5hbWVzKTsKLSAgICBlbmNvZGVyLT5l
bmNvZGUodmFsdWVzKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobWltZVR5cGUpOwotICAgIGVuY29k
ZXItPmVuY29kZShpc0Z1bGxGcmFtZVBsdWdpbik7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHNob3Vs
ZFVzZU1hbnVhbExvYWRlcik7CisgICAgZW5jb2Rlci5lbmNvZGUodXJsLnN0cmluZygpKTsKKyAg
ICBlbmNvZGVyLmVuY29kZShuYW1lcyk7CisgICAgZW5jb2Rlci5lbmNvZGUodmFsdWVzKTsKKyAg
ICBlbmNvZGVyLmVuY29kZShtaW1lVHlwZSk7CisgICAgZW5jb2Rlci5lbmNvZGUoaXNGdWxsRnJh
bWVQbHVnaW4pOworICAgIGVuY29kZXIuZW5jb2RlKHNob3VsZFVzZU1hbnVhbExvYWRlcik7CiAj
aWYgUExBVEZPUk0oTUFDKQotICAgIGVuY29kZXItPmVuY29kZUVudW0obGF5ZXJIb3N0aW5nTW9k
ZSk7CisgICAgZW5jb2Rlci5lbmNvZGVFbnVtKGxheWVySG9zdGluZ01vZGUpOwogI2VuZGlmCiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4u
aCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uaAppbmRleCA5OGY4
NzcwYzE2OGZmMjEzMTYzYjY0NGUyZGI1ZWI1YzlmMTA5MjcwLi5kZWQ1M2QxNTc4ZmNhNmY0NDNm
NGY0ZTUwZTgyZjE5OWQwMTY1Nzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpbi5oCkBAIC03Nyw3ICs3Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgTGF5ZXJIb3N0
aW5nTW9kZSBsYXllckhvc3RpbmdNb2RlOwogI2VuZGlmCiAKLSAgICAgICAgdm9pZCBlbmNvZGUo
Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKikgY29uc3Q7CisgICAgICAgIHZvaWQgZW5jb2RlKENv
cmVJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OwogICAgICAgICBzdGF0aWMgYm9vbCBkZWNv
ZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgUGFyYW1ldGVycyYpOwogICAgIH07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170304</attachid>
            <date>2012-10-23 20:54:38 -0700</date>
            <delta_ts>2012-10-24 08:37:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100183-20121023205312.patch</filename>
            <type>text/plain</type>
            <size>139406</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyMjg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYzMzYjcxODRiMDQ1MjAx
YjBmMjhiYmYzYzliYjE0ODJmMGVkNjExNi4uODMxZGNkZTZiNWZjZTY0MDQwMTE3MTNlYTFiYzZi
YzI2YTc2N2U5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxMSBAQAorMjAxMi0xMC0yMyAgQW5k
ZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgorCisgICAgICAgIGVuY29kZSBzaG91
bGQgdGFrZSBhbiBBcmd1bWVudEVuY29kZXIgcmVmZXJlbmNlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDAxODMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRpdGlvbmFsIGluZm9ybWF0aW9uIG9mIHRo
ZSBjaGFuZ2Ugc3VjaCBhcyBhcHByb2FjaCwgcmF0aW9uYWxlLiBQbGVhc2UgYWRkIHBlci1mdW5j
dGlvbiBkZXNjcmlwdGlvbnMgYmVsb3cgKE9PUFMhKS4KKworICAgICAgICAqIFBsYXRmb3JtL0Nv
cmVJUEMvQXJndW1lbnRDb2Rlci5oOgorICAgICAgICAoQ29yZUlQQzo6QXJndW1lbnRDb2Rlcjo6
ZW5jb2RlKToKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL0FyZ3VtZW50cy5oOgorICAgICAg
ICAoQ29yZUlQQzo6QXJndW1lbnRzMDo6ZW5jb2RlKToKKyAgICAgICAgKENvcmVJUEM6OkFyZ3Vt
ZW50czE6OmVuY29kZSk6CisgICAgICAgIChDb3JlSVBDOjpBcmd1bWVudHMyOjplbmNvZGUpOgor
ICAgICAgICAoQ29yZUlQQzo6QXJndW1lbnRzMzo6ZW5jb2RlKToKKyAgICAgICAgKENvcmVJUEM6
OkFyZ3VtZW50czQ6OmVuY29kZSk6CisgICAgICAgIChDb3JlSVBDOjpBcmd1bWVudHM1OjplbmNv
ZGUpOgorICAgICAgICAoQ29yZUlQQzo6QXJndW1lbnRzNjo6ZW5jb2RlKToKKyAgICAgICAgKENv
cmVJUEM6OkFyZ3VtZW50czc6OmVuY29kZSk6CisgICAgICAgIChDb3JlSVBDOjpBcmd1bWVudHM4
OjplbmNvZGUpOgorICAgICAgICAoQ29yZUlQQzo6QXJndW1lbnRzMTA6OmVuY29kZSk6CisgICAg
ICAgICogUGxhdGZvcm0vQ29yZUlQQy9BdHRhY2htZW50LmNwcDoKKyAgICAgICAgKENvcmVJUEM6
OkF0dGFjaG1lbnQ6OmVuY29kZSk6CisgICAgICAgICogUGxhdGZvcm0vQ29yZUlQQy9BdHRhY2ht
ZW50Lmg6CisgICAgICAgIChBdHRhY2htZW50KToKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBD
L0RhdGFSZWZlcmVuY2UuY3BwOgorICAgICAgICAoQ29yZUlQQzo6RGF0YVJlZmVyZW5jZTo6ZW5j
b2RlKToKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL0RhdGFSZWZlcmVuY2UuaDoKKyAgICAg
ICAgKERhdGFSZWZlcmVuY2UpOgorICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvU3RyaW5nUmVm
ZXJlbmNlLmNwcDoKKyAgICAgICAgKENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZTo6ZW5jb2RlKToK
KyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL1N0cmluZ1JlZmVyZW5jZS5oOgorICAgICAgICAo
U3RyaW5nUmVmZXJlbmNlKToKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL21hYy9NYWNoUG9y
dC5oOgorICAgICAgICAoQ29yZUlQQzo6TWFjaFBvcnQ6OmVuY29kZSk6CisgICAgICAgICogUGxh
dGZvcm0vU2hhcmVkTWVtb3J5Lmg6CisgICAgICAgIChIYW5kbGUpOgorICAgICAgICAqIFBsYXRm
b3JtL21hYy9TaGFyZWRNZW1vcnlNYWMuY3BwOgorICAgICAgICAoV2ViS2l0OjpTaGFyZWRNZW1v
cnk6OkhhbmRsZTo6ZW5jb2RlKToKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1BsdWdpbkNyZWF0
aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpbkNyZWF0aW9uUGFyYW1l
dGVyczo6ZW5jb2RlKToKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1BsdWdpbkNyZWF0aW9uUGFy
YW1ldGVycy5oOgorICAgICAgICAoUGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzKToKKyAgICAgICAg
KiBTaGFyZWQvRGljdGlvbmFyeVBvcHVwSW5mby5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRpY3Rp
b25hcnlQb3B1cEluZm86OmVuY29kZSk6CisgICAgICAgICogU2hhcmVkL0RpY3Rpb25hcnlQb3B1
cEluZm8uaDoKKyAgICAgICAgKERpY3Rpb25hcnlQb3B1cEluZm8pOgorICAgICAgICAqIFNoYXJl
ZC9FZGl0b3JTdGF0ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvclN0YXRlOjplbmNvZGUp
OgorICAgICAgICAqIFNoYXJlZC9FZGl0b3JTdGF0ZS5oOgorICAgICAgICAoRWRpdG9yU3RhdGUp
OgorICAgICAgICAqIFNoYXJlZC9Gb250SW5mby5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZvbnRJ
bmZvOjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9Gb250SW5mby5oOgorICAgICAgICAoRm9u
dEluZm8pOgorICAgICAgICAqIFNoYXJlZC9MYXllclRyZWVDb250ZXh0Lmg6CisgICAgICAgIChM
YXllclRyZWVDb250ZXh0KToKKyAgICAgICAgKiBTaGFyZWQvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgIChOZXR3b3JrUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycyk6CisgICAgICAgICogU2hhcmVkL09yaWdpbkFuZERhdGFiYXNl
cy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok9yaWdpbkFuZERhdGFiYXNlczo6ZW5jb2RlKToKKyAg
ICAgICAgKiBTaGFyZWQvT3JpZ2luQW5kRGF0YWJhc2VzLmg6CisgICAgICAgIChPcmlnaW5BbmRE
YXRhYmFzZXMpOgorICAgICAgICAqIFNoYXJlZC9QbGF0Zm9ybVBvcHVwTWVudURhdGEuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpQbGF0Zm9ybVBvcHVwTWVudURhdGE6OmVuY29kZSk6CisgICAgICAg
ICogU2hhcmVkL1BsYXRmb3JtUG9wdXBNZW51RGF0YS5oOgorICAgICAgICAoUGxhdGZvcm1Qb3B1
cE1lbnVEYXRhKToKKyAgICAgICAgKiBTaGFyZWQvUGx1Z2lucy9OUElkZW50aWZpZXJEYXRhLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6TlBJZGVudGlmaWVyRGF0YTo6ZW5jb2RlKToKKyAgICAgICAg
KiBTaGFyZWQvUGx1Z2lucy9OUElkZW50aWZpZXJEYXRhLmg6CisgICAgICAgIChOUElkZW50aWZp
ZXJEYXRhKToKKyAgICAgICAgKiBTaGFyZWQvUGx1Z2lucy9OUFZhcmlhbnREYXRhLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TlBWYXJpYW50RGF0YTo6ZW5jb2RlKToKKyAgICAgICAgKiBTaGFyZWQv
UGx1Z2lucy9OUFZhcmlhbnREYXRhLmg6CisgICAgICAgIChOUFZhcmlhbnREYXRhKToKKyAgICAg
ICAgKiBTaGFyZWQvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2Rl
KToKKyAgICAgICAgKiBTaGFyZWQvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmg6CisgICAgICAgIChQbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzKToKKyAgICAg
ICAgKiBTaGFyZWQvUHJpbnRJbmZvLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UHJpbnRJbmZvOjpl
bmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9QcmludEluZm8uaDoKKyAgICAgICAgKFByaW50SW5m
byk6CisgICAgICAgICogU2hhcmVkL1NhbmRib3hFeHRlbnNpb24uaDoKKyAgICAgICAgKEhhbmRs
ZSk6CisgICAgICAgIChIYW5kbGVBcnJheSk6CisgICAgICAgICogU2hhcmVkL1NlY3VyaXR5T3Jp
Z2luRGF0YS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNlY3VyaXR5T3JpZ2luRGF0YTo6ZW5jb2Rl
KToKKyAgICAgICAgKiBTaGFyZWQvU2VjdXJpdHlPcmlnaW5EYXRhLmg6CisgICAgICAgIChTZWN1
cml0eU9yaWdpbkRhdGEpOgorICAgICAgICAqIFNoYXJlZC9TZXNzaW9uU3RhdGUuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpTZXNzaW9uU3RhdGU6OmVuY29kZSk6CisgICAgICAgICogU2hhcmVkL1Nl
c3Npb25TdGF0ZS5oOgorICAgICAgICAoU2Vzc2lvblN0YXRlKToKKyAgICAgICAgKiBTaGFyZWQv
U2hhcmVhYmxlQml0bWFwLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U2hhcmVhYmxlQml0bWFwOjpI
YW5kbGU6OmVuY29kZSk6CisgICAgICAgICogU2hhcmVkL1NoYXJlYWJsZUJpdG1hcC5oOgorICAg
ICAgICAoSGFuZGxlKToKKyAgICAgICAgKiBTaGFyZWQvU2hhcmVkV29ya2VyUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNoYXJlZFdvcmtlclByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSk6CisgICAgICAgICogU2hhcmVkL1NoYXJlZFdvcmtl
clByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKFNoYXJlZFdvcmtlclByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMpOgorICAgICAgICAqIFNoYXJlZC9TdGF0aXN0aWNzRGF0YS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OlN0YXRpc3RpY3NEYXRhOjplbmNvZGUpOgorICAgICAgICAq
IFNoYXJlZC9TdGF0aXN0aWNzRGF0YS5oOgorICAgICAgICAoU3RhdGlzdGljc0RhdGEpOgorICAg
ICAgICAqIFNoYXJlZC9TdHJpbmdQYWlyVmVjdG9yLmg6CisgICAgICAgIChXZWJLaXQ6OlN0cmlu
Z1BhaXJWZWN0b3I6OmVuY29kZSk6CisgICAgICAgICogU2hhcmVkL1VwZGF0ZUluZm8uY3BwOgor
ICAgICAgICAoV2ViS2l0OjpVcGRhdGVJbmZvOjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9V
cGRhdGVJbmZvLmg6CisgICAgICAgIChVcGRhdGVJbmZvKToKKyAgICAgICAgKiBTaGFyZWQvVXNl
ck1lc3NhZ2VDb2RlcnMuaDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lc3NhZ2VFbmNvZGVyOjpi
YXNlRW5jb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRNZW51SXRlbURhdGE6OmVuY29kZSk6CisgICAg
ICAgICogU2hhcmVkL1dlYkNvbnRleHRNZW51SXRlbURhdGEuaDoKKyAgICAgICAgKFdlYkNvbnRl
eHRNZW51SXRlbURhdGEpOgorICAgICAgICAqIFNoYXJlZC9XZWJFdmVudC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYkV2ZW50OjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJFdmVudC5o
OgorICAgICAgICAoV2ViRXZlbnQpOgorICAgICAgICAoV2ViTW91c2VFdmVudCk6CisgICAgICAg
IChXZWJXaGVlbEV2ZW50KToKKyAgICAgICAgKFdlYktleWJvYXJkRXZlbnQpOgorICAgICAgICAo
V2ViR2VzdHVyZUV2ZW50KToKKyAgICAgICAgKFdlYlBsYXRmb3JtVG91Y2hQb2ludCk6CisgICAg
ICAgIChXZWJUb3VjaEV2ZW50KToKKyAgICAgICAgKiBTaGFyZWQvV2ViR2VvbG9jYXRpb25Qb3Np
dGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uUG9zaXRpb246OkRhdGE6
OmVuY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uaDoKKyAg
ICAgICAgKERhdGEpOgorICAgICAgICAqIFNoYXJlZC9XZWJHZXN0dXJlRXZlbnQuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJHZXN0dXJlRXZlbnQ6OmVuY29kZSk6CisgICAgICAgICogU2hhcmVk
L1dlYkhpdFRlc3RSZXN1bHQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJIaXRUZXN0UmVzdWx0
OjpEYXRhOjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJIaXRUZXN0UmVzdWx0Lmg6Cisg
ICAgICAgIChEYXRhKToKKyAgICAgICAgKiBTaGFyZWQvV2ViS2V5Ym9hcmRFdmVudC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYktleWJvYXJkRXZlbnQ6OmVuY29kZSk6CisgICAgICAgICogU2hh
cmVkL1dlYk1vdXNlRXZlbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJNb3VzZUV2ZW50Ojpl
bmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJOYXZpZ2F0aW9uRGF0YVN0b3JlLmg6CisgICAg
ICAgIChXZWJLaXQ6OldlYk5hdmlnYXRpb25EYXRhU3RvcmU6OmVuY29kZSk6CisgICAgICAgICog
U2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQ
YWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgIChXZWJQYWdlQ3JlYXRpb25QYXJhbWV0
ZXJzKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUGFnZUdyb3VwRGF0YS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VHcm91cERhdGE6OmVuY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYlBh
Z2VHcm91cERhdGEuaDoKKyAgICAgICAgKFdlYlBhZ2VHcm91cERhdGEpOgorICAgICAgICAqIFNo
YXJlZC9XZWJQb3B1cEl0ZW0uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cEl0ZW06OmVu
Y29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYlBvcHVwSXRlbS5oOgorICAgICAgICAqIFNoYXJl
ZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJlZmVyZW5j
ZXNTdG9yZTo6ZW5jb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5o
OgorICAgICAgICAoV2ViUHJlZmVyZW5jZXNTdG9yZSk6CisgICAgICAgICogU2hhcmVkL1dlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgIChXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzKToKKyAgICAgICAgKiBTaGFyZWQvV2ViV2hlZWxFdmVudC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYldoZWVsRXZlbnQ6OmVuY29kZSk6CisgICAgICAgICogU2hhcmVkL21hYy9BdHRyaWJ1
dGVkU3RyaW5nLmg6CisgICAgICAgIChBdHRyaWJ1dGVkU3RyaW5nKToKKyAgICAgICAgKiBTaGFy
ZWQvbWFjL0F0dHJpYnV0ZWRTdHJpbmcubW06CisgICAgICAgIChXZWJLaXQ6OkF0dHJpYnV0ZWRT
dHJpbmc6OmVuY29kZSk6CisgICAgICAgICogU2hhcmVkL21hYy9Db2xvclNwYWNlRGF0YS5oOgor
ICAgICAgICAoQ29sb3JTcGFjZURhdGEpOgorICAgICAgICAqIFNoYXJlZC9tYWMvQ29sb3JTcGFj
ZURhdGEubW06CisgICAgICAgIChXZWJLaXQ6OkNvbG9yU3BhY2VEYXRhOjplbmNvZGUpOgorICAg
ICAgICAqIFNoYXJlZC9tYWMvTGF5ZXJUcmVlQ29udGV4dE1hYy5tbToKKyAgICAgICAgKFdlYktp
dDo6TGF5ZXJUcmVlQ29udGV4dDo6ZW5jb2RlKToKKyAgICAgICAgKiBTaGFyZWQvbWFjL1BsYXRm
b3JtQ2VydGlmaWNhdGVJbmZvLmg6CisgICAgICAgIChQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyk6
CisgICAgICAgICogU2hhcmVkL21hYy9QbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5tbToKKyAgICAg
ICAgKFdlYktpdDo6UGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm86OmVuY29kZSk6CisgICAgICAgICog
U2hhcmVkL21hYy9TYW5kYm94RXh0ZW5zaW9uTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGU6OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6OlNhbmRib3hF
eHRlbnNpb246OkhhbmRsZUFycmF5OjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9tYWMvU2Vj
SXRlbVJlcXVlc3REYXRhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U2VjSXRlbVJlcXVlc3REYXRh
OjplbmNvZGUpOgorICAgICAgICAqIFNoYXJlZC9tYWMvU2VjSXRlbVJlcXVlc3REYXRhLmg6Cisg
ICAgICAgICogU2hhcmVkL21hYy9TZWNJdGVtUmVzcG9uc2VEYXRhLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6U2VjSXRlbVJlc3BvbnNlRGF0YTo6ZW5jb2RlKToKKyAgICAgICAgKiBTaGFyZWQvbWFj
L1NlY0l0ZW1SZXNwb25zZURhdGEuaDoKKyAgICAgICAgKFNlY0l0ZW1SZXNwb25zZURhdGEpOgor
ICAgICAgICAqIFNoYXJlZC9tYWMvU2VjS2V5Y2hhaW5JdGVtUmVxdWVzdERhdGEuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpTZWNLZXljaGFpbkl0ZW1SZXF1ZXN0RGF0YTo6ZW5jb2RlKToKKyAgICAg
ICAgKiBTaGFyZWQvbWFjL1NlY0tleWNoYWluSXRlbVJlcXVlc3REYXRhLmg6CisgICAgICAgICog
U2hhcmVkL21hYy9TZWNLZXljaGFpbkl0ZW1SZXNwb25zZURhdGEuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpTZWNLZXljaGFpbkl0ZW1SZXNwb25zZURhdGE6OmVuY29kZSk6CisgICAgICAgICogU2hh
cmVkL21hYy9TZWNLZXljaGFpbkl0ZW1SZXNwb25zZURhdGEuaDoKKyAgICAgICAgKFNlY0tleWNo
YWluSXRlbVJlc3BvbnNlRGF0YSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHRVc2Vy
TWVzc2FnZUNvZGVycy5oOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0VXNlck1lc3NhZ2VF
bmNvZGVyOjplbmNvZGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUNvZGVycy5oOgorICAgICAgICAoV2ViS2l0OjpJbmplY3Rl
ZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2Rlcjo6ZW5jb2RlKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luOjpQYXJhbWV0ZXJz
OjplbmNvZGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uaDoKKyAgICAg
ICAgKFBhcmFtZXRlcnMpOgorCiAyMDEyLTEwLTIzICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5z
b25AaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtTb3VwXSBJbXBsZW1lbnQgdGhlIGRlZmF1
bHQgYXV0aGVudGljYXRpb24gZGlhbG9nIHZpYSBXZWJDb3JlU3VwcG9ydApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudENvZGVyLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0FyZ3VtZW50Q29kZXIuaAppbmRleCBiZDE1ZjUxNmNm
ZjY2NjJmYzQ4MmFjZDI0MmNmMmUzNmNkZjc0MmM4Li40YmFhYjlmZTRmOTIzMTQ3NmNiYzI3Y2Nk
NDAwOTViNzdhYWU4Y2U3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL0FyZ3VtZW50Q29kZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBD
L0FyZ3VtZW50Q29kZXIuaApAQCAtMzQsNyArMzQsNyBAQCBjbGFzcyBBcmd1bWVudERlY29kZXI7
CiBjbGFzcyBBcmd1bWVudEVuY29kZXI7CiAgICAgCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1
Y3QgQXJndW1lbnRDb2RlciB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2Rl
ciogZW5jb2RlciwgY29uc3QgVCYgdCkKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCBUJiB0KQogICAgIHsKICAgICAgICAgdC5lbmNvZGUoZW5j
b2Rlcik7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQ
Qy9Bcmd1bWVudHMuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnRz
LmgKaW5kZXggMWQ0YzVkYzRlZGJmMmZmY2UyYjkzMjNmODJhMWNhYTU5OTdlNmE4Yy4uN2VkOTRk
OGI5NmRkOGQ4MDJhZTJmODlkZmQ0NTIwNDNiYTM0YTZjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Bcmd1bWVudHMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybS9Db3JlSVBDL0FyZ3VtZW50cy5oCkBAIC0zNSw3ICszNSw3IEBAIG5hbWVzcGFjZSBD
b3JlSVBDIHsKIHN0cnVjdCBBcmd1bWVudHMwIHsKICAgICB0eXBlZGVmIEFyZ3VtZW50czAgVmFs
dWVUeXBlOwogCi0gICAgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyKikgY29uc3QgCisgICAg
dm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJikgY29uc3QgCiAgICAgewogICAgIH0KIApAQCAt
NTcsOSArNTcsOSBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUMT4gc3RydWN0IEFyZ3VtZW50czEgewog
ICAgIHsKICAgICB9CiAKLSAgICB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXIqIGVuY29kZXIp
IGNvbnN0IAorICAgIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QK
ICAgICB7Ci0gICAgICAgIGVuY29kZXItPmVuY29kZShhcmd1bWVudDEpOworICAgICAgICBlbmNv
ZGVyLmVuY29kZShhcmd1bWVudDEpOwogICAgIH0KIAogICAgIHN0YXRpYyBib29sIGRlY29kZShB
cmd1bWVudERlY29kZXIqIGRlY29kZXIsIEFyZ3VtZW50czEmIHJlc3VsdCkKQEAgLTg0LDEwICs4
NCwxMCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDI+IHN0cnVjdCBBcmd1bWVu
dHMyIDogQXJndW1lbnRzMTxUMT4gewogICAgIHsKICAgICB9CiAKLSAgICB2b2lkIGVuY29kZShB
cmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0IAorICAgIHZvaWQgZW5jb2RlKEFyZ3VtZW50
RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICB7CiAgICAgICAgIEFyZ3VtZW50czE8VDE+Ojpl
bmNvZGUoZW5jb2Rlcik7Ci0gICAgICAgIGVuY29kZXItPmVuY29kZShhcmd1bWVudDIpOworICAg
ICAgICBlbmNvZGVyLmVuY29kZShhcmd1bWVudDIpOwogICAgIH0KIAogICAgIHN0YXRpYyBib29s
IGRlY29kZShBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIEFyZ3VtZW50czImIHJlc3VsdCkKQEAg
LTExNiwxMCArMTE2LDEwIEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlw
ZW5hbWUgVDM+IHN0cnVjdCBBcmd1bWVudHMzIDogQXJndW1lbnRzMjxUCiAgICAgewogICAgIH0K
IAotICAgIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QgCisgICAg
dm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIHsKICAgICAg
ICAgQXJndW1lbnRzMjxUMSwgVDI+OjplbmNvZGUoZW5jb2Rlcik7Ci0gICAgICAgIGVuY29kZXIt
PmVuY29kZShhcmd1bWVudDMpOworICAgICAgICBlbmNvZGVyLmVuY29kZShhcmd1bWVudDMpOwog
ICAgIH0KIAogICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXIqIGRlY29kZXIs
IEFyZ3VtZW50czMmIHJlc3VsdCkKQEAgLTE0OSwxMCArMTQ5LDEwIEBAIHRlbXBsYXRlPHR5cGVu
YW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0PiBzdHJ1Y3QgQXJn
dW1lbnRzNCA6CiAgICAgewogICAgIH0KIAotICAgIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2Rl
ciogZW5jb2RlcikgY29uc3QKKyAgICB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29k
ZXIpIGNvbnN0CiAgICAgewogICAgICAgICBBcmd1bWVudHMzPFQxLCBUMiwgVDM+OjplbmNvZGUo
ZW5jb2Rlcik7Ci0gICAgICAgIGVuY29kZXItPmVuY29kZShhcmd1bWVudDQpOworICAgICAgICBl
bmNvZGVyLmVuY29kZShhcmd1bWVudDQpOwogICAgIH0KICAgICAKICAgICBzdGF0aWMgYm9vbCBk
ZWNvZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBBcmd1bWVudHM0JiByZXN1bHQpCkBAIC0x
ODMsMTAgKzE4MywxMCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5cGVu
YW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDU+IHN0cnVjdAogICAgIHsKICAgICB9CiAK
LSAgICB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0CisgICAgdm9p
ZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIHsKICAgICAgICAg
QXJndW1lbnRzNDxUMSwgVDIsIFQzLCBUND46OmVuY29kZShlbmNvZGVyKTsKLSAgICAgICAgZW5j
b2Rlci0+ZW5jb2RlKGFyZ3VtZW50NSk7CisgICAgICAgIGVuY29kZXIuZW5jb2RlKGFyZ3VtZW50
NSk7CiAgICAgfQogICAgIAogICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXIq
IGRlY29kZXIsIEFyZ3VtZW50czUmIHJlc3VsdCkKQEAgLTIxOCwxMCArMjE4LDEwIEBAIHRlbXBs
YXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0
eXBlbmFtZSBUNSwgdHlwZW5hCiAgICAgewogICAgIH0KIAotICAgIHZvaWQgZW5jb2RlKEFyZ3Vt
ZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKKyAgICB2b2lkIGVuY29kZShBcmd1bWVudEVuY29k
ZXImIGVuY29kZXIpIGNvbnN0CiAgICAgewogICAgICAgICBBcmd1bWVudHM1PFQxLCBUMiwgVDMs
IFQ0LCBUNT46OmVuY29kZShlbmNvZGVyKTsKLSAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKGFyZ3Vt
ZW50Nik7CisgICAgICAgIGVuY29kZXIuZW5jb2RlKGFyZ3VtZW50Nik7CiAgICAgfQogICAgIAog
ICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIEFyZ3VtZW50
czYmIHJlc3VsdCkKQEAgLTI1NCwxMCArMjU0LDEwIEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQxLCB0
eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMsIHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwgdHlwZW5h
CiAgICAgewogICAgIH0KIAotICAgIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciogZW5jb2Rl
cikgY29uc3QKKyAgICB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0
CiAgICAgewogICAgICAgICBBcmd1bWVudHM2PFQxLCBUMiwgVDMsIFQ0LCBUNSwgVDY+OjplbmNv
ZGUoZW5jb2Rlcik7Ci0gICAgICAgIGVuY29kZXItPmVuY29kZShhcmd1bWVudDcpOworICAgICAg
ICBlbmNvZGVyLmVuY29kZShhcmd1bWVudDcpOwogICAgIH0KICAgICAKICAgICBzdGF0aWMgYm9v
bCBkZWNvZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBBcmd1bWVudHM3JiByZXN1bHQpCkBA
IC0yODksMTAgKzI4OSwxMCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUMSwgdHlwZW5hbWUgVDIsIHR5
cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsIHR5cGVuYQogICAgIHsKICAgICB9
CiAKLSAgICB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0CisgICAg
dm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIHsKICAgICAg
ICAgQXJndW1lbnRzNzxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2LCBUNz46OmVuY29kZShlbmNvZGVy
KTsKLSAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKGFyZ3VtZW50OCk7CisgICAgICAgIGVuY29kZXIu
ZW5jb2RlKGFyZ3VtZW50OCk7CiAgICAgfQogCiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3Vt
ZW50RGVjb2RlciogZGVjb2RlciwgQXJndW1lbnRzOCYgcmVzdWx0KQpAQCAtMzI3LDExICszMjcs
MTEgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlw
ZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LCB0eXBlbmEKICAgICB7CiAgICAgfQogCi0gICAgdm9pZCBl
bmNvZGUoQXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAorICAgIHZvaWQgZW5jb2RlKEFy
Z3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICB7CiAgICAgICAgIEFyZ3VtZW50czg8
VDEsIFQyLCBUMywgVDQsIFQ1LCBUNiwgVDcsIFQ4Pjo6ZW5jb2RlKGVuY29kZXIpOwotICAgICAg
ICBlbmNvZGVyLT5lbmNvZGUoYXJndW1lbnQ5KTsKLSAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKGFy
Z3VtZW50MTApOworICAgICAgICBlbmNvZGVyLmVuY29kZShhcmd1bWVudDkpOworICAgICAgICBl
bmNvZGVyLmVuY29kZShhcmd1bWVudDEwKTsKICAgICB9CiAKICAgICBzdGF0aWMgYm9vbCBkZWNv
ZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBBcmd1bWVudHMxMCYgcmVzdWx0KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9BdHRhY2htZW50LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXR0YWNobWVudC5jcHAKaW5kZXggZDY5NTJh
ZTQ2YWJhY2YwMzcyOTZlMmYwNThjODZiZGJjMTk4OGVhZC4uOGY0Nzc0ODU4NDU4MTVmYTQ2M2Yx
ZThjZDVmNzNhNTIxM2VkOWM0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
Q29yZUlQQy9BdHRhY2htZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL0F0dGFjaG1lbnQuY3BwCkBAIC01OSw5ICs1OSw5IEBAIHZvaWQgQXR0YWNobWVudDo6cmVs
ZWFzZSgpCiB9CiAjZW5kaWYKIAotdm9pZCBBdHRhY2htZW50OjplbmNvZGUoQXJndW1lbnRFbmNv
ZGVyKiBlbmNvZGVyKSBjb25zdAordm9pZCBBdHRhY2htZW50OjplbmNvZGUoQXJndW1lbnRFbmNv
ZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXItPmFkZEF0dGFjaG1lbnQoKnRoaXMp
OworICAgIGVuY29kZXIuYWRkQXR0YWNobWVudCgqdGhpcyk7CiB9CiAKIGJvb2wgQXR0YWNobWVu
dDo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgQXR0YWNobWVudCYgYXR0YWNobWVu
dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXR0YWNobWVu
dC5oIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9BdHRhY2htZW50LmgKaW5kZXgg
MDVhYjkwNzkzMjEzZWEzYjQ3NTYxNDFjYjQ1N2NhZmY1NmFmNWIwZi4uZGQyNmIzYTc2ODI0MDk3
Yzc5YjIwZGM0MjkxNzA3OWNkODZjNjg4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vQ29yZUlQQy9BdHRhY2htZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
Q29yZUlQQy9BdHRhY2htZW50LmgKQEAgLTgyLDcgKzgyLDcgQEAgcHVibGljOgogICAgIHZvaWQg
ZGlzcG9zZSgpOwogI2VuZGlmCiAKLSAgICB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXIqKSBj
b25zdDsKKyAgICB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImKSBjb25zdDsKICAgICBzdGF0
aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyKiwgQXR0YWNobWVudCYpOwogICAgIAogcHJp
dmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvRGF0YVJl
ZmVyZW5jZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0RhdGFSZWZlcmVu
Y2UuY3BwCmluZGV4IDA3OThjM2UwZWZjMmVjNmYyOGMwY2UxYzJiOWRkMzlkOTExZjhhZmQuLmEx
NDQ5ODYyYzk4MmMxYWFhZjEzMWI1YTUyOWUxNTU2NzljZTg1YzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvRGF0YVJlZmVyZW5jZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9EYXRhUmVmZXJlbmNlLmNwcApAQCAtMzEsOSArMzEs
OSBAQAogCiBuYW1lc3BhY2UgQ29yZUlQQyB7CiAKLXZvaWQgRGF0YVJlZmVyZW5jZTo6ZW5jb2Rl
KEFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKK3ZvaWQgRGF0YVJlZmVyZW5jZTo6ZW5j
b2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyLT5lbmNv
ZGVWYXJpYWJsZUxlbmd0aEJ5dGVBcnJheSgqdGhpcyk7CisgICAgZW5jb2Rlci5lbmNvZGVWYXJp
YWJsZUxlbmd0aEJ5dGVBcnJheSgqdGhpcyk7CiB9CiAKIGJvb2wgRGF0YVJlZmVyZW5jZTo6ZGVj
b2RlKEFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgRGF0YVJlZmVyZW5jZSYgZGF0YVJlZmVyZW5j
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvRGF0YVJlZmVy
ZW5jZS5oIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9EYXRhUmVmZXJlbmNlLmgK
aW5kZXggNWVkMDQ0M2MzMGZhYzliMmRkNjdmNTRkMGJhZDIwNWQ3OWY3Nzc2ZC4uYTBjZThjMzE5
Y2ZjYjJjMDFmM2Y3ZGJjZDhkYzMyODhkY2JlN2U1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vQ29yZUlQQy9EYXRhUmVmZXJlbmNlLmgKKysrIGIvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vQ29yZUlQQy9EYXRhUmVmZXJlbmNlLmgKQEAgLTcyLDcgKzcyLDcgQEAgcHVibGlj
OgogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KIAotICAgIHZvaWQgZW5jb2RlKEFyZ3Vt
ZW50RW5jb2RlciogZW5jb2RlcikgY29uc3Q7CisgICAgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNv
ZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciogZGVj
b2RlciwgRGF0YVJlZmVyZW5jZSYgZGF0YVJlZmVyZW5jZSk7CiAKIHByaXZhdGU6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL1N0cmluZ1JlZmVyZW5jZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL1N0cmluZ1JlZmVyZW5jZS5jcHAKaW5k
ZXggNTZlOGMxYTM3YzAxMWRhMDkyNjA1ZjkyODZkMzI0MDEyMjI2MDhmNC4uZTY2Njg1YWU1ZDZi
ZTFlOGY3MzM4Yjk1NDQ3ZDI0ZDIwNzRlM2NmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vQ29yZUlQQy9TdHJpbmdSZWZlcmVuY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtL0NvcmVJUEMvU3RyaW5nUmVmZXJlbmNlLmNwcApAQCAtMzMsOSArMzMsOSBAQAog
CiBuYW1lc3BhY2UgQ29yZUlQQyB7CiAKLXZvaWQgU3RyaW5nUmVmZXJlbmNlOjplbmNvZGUoQXJn
dW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAordm9pZCBTdHJpbmdSZWZlcmVuY2U6OmVuY29k
ZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2Rlci0+ZW5jb2Rl
VmFyaWFibGVMZW5ndGhCeXRlQXJyYXkoRGF0YVJlZmVyZW5jZShyZWludGVycHJldF9jYXN0PGNv
bnN0IHVpbnQ4X3QqPihtX2RhdGEpLCBtX3NpemUpKTsKKyAgICBlbmNvZGVyLmVuY29kZVZhcmlh
YmxlTGVuZ3RoQnl0ZUFycmF5KERhdGFSZWZlcmVuY2UocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1
aW50OF90Kj4obV9kYXRhKSwgbV9zaXplKSk7CiB9CiAKIGJvb2wgU3RyaW5nUmVmZXJlbmNlOjpk
ZWNvZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBTdHJpbmdSZWZlcmVuY2UmIHJlc3VsdCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvU3RyaW5nUmVmZXJl
bmNlLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL1N0cmluZ1JlZmVyZW5jZS5o
CmluZGV4IGVkNDgyZTUzZjZkYWQ2MzI1YjJkOTdiM2JjOGUxOGVlYzU2NjYxZTYuLmJhNDM4MWQ0
ZDFlOWQzMDJiZjA0Y2M3ZjM5M2NkMzA0N2M4M2FhMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtL0NvcmVJUEMvU3RyaW5nUmVmZXJlbmNlLmgKKysrIGIvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vQ29yZUlQQy9TdHJpbmdSZWZlcmVuY2UuaApAQCAtNjQsNyArNjQsNyBAQCBw
dWJsaWM6CiAgICAgICAgIHJldHVybiBhLm1fc2l6ZSA9PSBiLm1fc2l6ZSAmJiAhbWVtY21wKGEu
bV9kYXRhLCBiLm1fZGF0YSwgYS5tX3NpemUpOwogICAgIH0KIAotICAgIHZvaWQgZW5jb2RlKEFy
Z3VtZW50RW5jb2RlciopIGNvbnN0OworICAgIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYp
IGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXIqLCBTdHJpbmdS
ZWZlcmVuY2UmKTsKIAogICAgIHN0cnVjdCBIYXNoIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtL0NvcmVJUEMvbWFjL01hY2hQb3J0LmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9Db3JlSVBDL21hYy9NYWNoUG9ydC5oCmluZGV4IGVjY2UxNmU3NDkyNzVmMzViY2RkMGY0
YzYxMzRmOGIzODhjNGM1YjIuLmM0OTZhNTAxN2JiN2U3MDNjMmJhM2FlZjQ4ODc0NDQ2Mzg2NDlh
MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvbWFjL01hY2hQ
b3J0LmgKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9tYWMvTWFjaFBvcnQu
aApAQCAtNDYsOSArNDYsOSBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAotICAgIHZvaWQgZW5j
b2RlKEFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKKyAgICB2b2lkIGVuY29kZShBcmd1
bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgewotICAgICAgICBlbmNvZGVyLT5lbmNv
ZGUoQXR0YWNobWVudChtX3BvcnQsIG1fZGlzcG9zaXRpb24pKTsKKyAgICAgICAgZW5jb2Rlci5l
bmNvZGUoQXR0YWNobWVudChtX3BvcnQsIG1fZGlzcG9zaXRpb24pKTsKICAgICB9CiAKICAgICBz
dGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBNYWNoUG9ydCYgcCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL1NoYXJlZE1lbW9yeS5oIGIvU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vU2hhcmVkTWVtb3J5LmgKaW5kZXggMGQ1NmJhY2M2ZTRmMGY2
M2FjMTRiYWQ0ZjBkZTRhNDE4NzJlNTA0My4uNDZkMDMyYTUxYzNiMDJhMjEzOWZlNjE4ZDE0ODQ5
YWNmNzNlOWQ3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vU2hhcmVkTWVt
b3J5LmgKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vU2hhcmVkTWVtb3J5LmgKQEAgLTU3
LDcgKzU3LDcgQEAgcHVibGljOgogCiAgICAgICAgIGJvb2wgaXNOdWxsKCkgY29uc3Q7CiAKLSAg
ICAgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKikgY29uc3Q7CisgICAg
ICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OwogICAgICAg
ICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgSGFuZGxlJik7
CiAKICNpZiBVU0UoVU5JWF9ET01BSU5fU09DS0VUUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtL2d0ay9TaGFyZWRNZW1vcnlHdGsuY3BwIGIvU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vZ3RrL1NoYXJlZE1lbW9yeUd0ay5jcHAKaW5kZXggZmFjY2YxMDNlODAxMDJhYzAxY2I5
ZmMwM2I1YTQ1OGMxYWZlNmIyNS4uOTM1NDMwNmMyNDU2N2U2OWFmZjkxOGQ5Y2MxNWJhMTc4MTYw
YTRlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vZ3RrL1NoYXJlZE1lbW9y
eUd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vZ3RrL1NoYXJlZE1lbW9yeUd0
ay5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgU2hhcmVkTWVtb3J5OjpIYW5kbGU6On5IYW5kbGUoKQog
ICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgU2hhcmVkTWVtb3J5OjpIYW5kbGU6OmVu
Y29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Cit2b2lkIFNoYXJl
ZE1lbW9yeTo6SGFuZGxlOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVy
KSBjb25zdAogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS9tYWMvU2hhcmVkTWVtb3J5TWFjLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtL21hYy9TaGFyZWRNZW1vcnlNYWMuY3BwCmluZGV4IDQwMTlhOGQ4NTc5ZTc5OGFk
M2EyY2I1MDc2MWM5ZDc3NTc4NGM3NTQuLjRhOWQwM2ZmYTY1ZTFjMDAyNWY4YTdmODY3NzVjYzVh
MDY5MmUyYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL21hYy9TaGFyZWRN
ZW1vcnlNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL21hYy9TaGFyZWRNZW1v
cnlNYWMuY3BwCkBAIC01NSwxMCArNTUsMTAgQEAgYm9vbCBTaGFyZWRNZW1vcnk6OkhhbmRsZTo6
aXNOdWxsKCkgY29uc3QKICAgICByZXR1cm4gIW1fcG9ydDsKIH0KIAotdm9pZCBTaGFyZWRNZW1v
cnk6OkhhbmRsZTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29u
c3QKK3ZvaWQgU2hhcmVkTWVtb3J5OjpIYW5kbGU6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVu
Y29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHN0YXRpY19jYXN0
PHVpbnQ2NF90PihtX3NpemUpKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoQ29yZUlQQzo6TWFjaFBv
cnQobV9wb3J0LCBNQUNIX01TR19UWVBFX01PVkVfU0VORCkpOworICAgIGVuY29kZXIuZW5jb2Rl
KHN0YXRpY19jYXN0PHVpbnQ2NF90PihtX3NpemUpKTsKKyAgICBlbmNvZGVyLmVuY29kZShDb3Jl
SVBDOjpNYWNoUG9ydChtX3BvcnQsIE1BQ0hfTVNHX1RZUEVfTU9WRV9TRU5EKSk7CiAgICAgbV9w
b3J0ID0gTUFDSF9QT1JUX05VTEw7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtL3VuaXgvU2hhcmVkTWVtb3J5VW5peC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS91bml4L1NoYXJlZE1lbW9yeVVuaXguY3BwCmluZGV4IGM0MzJkMzMwMTU3MzBkYjJjMDY3Njhi
OTEzOTA3ZDdiNDZmMTI1ZTEuLmY1NjViNzZlY2QxNWFmYTJiNGViOGRlM2Y1ZjAzMzM2NWNiZWUy
YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL3VuaXgvU2hhcmVkTWVtb3J5
VW5peC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vdW5peC9TaGFyZWRNZW1vcnlV
bml4LmNwcApAQCAtNjMsOSArNjMsOSBAQCBib29sIFNoYXJlZE1lbW9yeTo6SGFuZGxlOjppc051
bGwoKSBjb25zdAogICAgIHJldHVybiBtX2ZpbGVEZXNjcmlwdG9yID09IC0xOwogfQogCi12b2lk
IFNoYXJlZE1lbW9yeTo6SGFuZGxlOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBl
bmNvZGVyKSBjb25zdAordm9pZCBTaGFyZWRNZW1vcnk6OkhhbmRsZTo6ZW5jb2RlKENvcmVJUEM6
OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyLT5lbmNvZGUo
cmVsZWFzZVRvQXR0YWNobWVudCgpKTsKKyAgICBlbmNvZGVyLmVuY29kZShyZWxlYXNlVG9BdHRh
Y2htZW50KCkpOwogfQogCiBib29sIFNoYXJlZE1lbW9yeTo6SGFuZGxlOjpkZWNvZGUoQ29yZUlQ
Qzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBIYW5kbGUmIGhhbmRsZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL3dpbi9TaGFyZWRNZW1vcnlXaW4uY3BwIGIvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vd2luL1NoYXJlZE1lbW9yeVdpbi5jcHAKaW5kZXggMmFhMjhmOGMw
YmQ4MmFhMDVlNzExOGNkN2ZjNzY5MzMyZTQwNWIxMS4uZjU5ZGJhNTA0YzYwYmQzMGU5ZTg4YmQ5
NjM2ZTJkYTBjMjY1NjIzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vd2lu
L1NoYXJlZE1lbW9yeVdpbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vd2luL1No
YXJlZE1lbW9yeVdpbi5jcHAKQEAgLTUxLDE4ICs1MSwxOCBAQCBib29sIFNoYXJlZE1lbW9yeTo6
SGFuZGxlOjppc051bGwoKSBjb25zdAogICAgIHJldHVybiAhbV9oYW5kbGU7CiB9CiAKLXZvaWQg
U2hhcmVkTWVtb3J5OjpIYW5kbGU6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVu
Y29kZXIpIGNvbnN0Cit2b2lkIFNoYXJlZE1lbW9yeTo6SGFuZGxlOjplbmNvZGUoQ29yZUlQQzo6
QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXItPmVuY29kZShz
dGF0aWNfY2FzdDx1aW50NjRfdD4obV9zaXplKSk7CisgICAgZW5jb2Rlci5lbmNvZGUoc3RhdGlj
X2Nhc3Q8dWludDY0X3Q+KG1fc2l6ZSkpOwogCiAgICAgLy8gSGFuZCBvZmYgb3duZXJzaGlwIG9m
IG91ciBIQU5ETEUgdG8gdGhlIHJlY2VpdmluZyBwcm9jZXNzLiBJdCB3aWxsIGNsb3NlIGl0IGZv
ciB1cy4KICAgICAvLyBGSVhNRTogSWYgdGhlIHJlY2VpdmluZyBwcm9jZXNzIGNyYXNoZXMgYmVm
b3JlIGl0IHJlY2VpdmVzIHRoZSBtZW1vcnksIHRoZSBtZW1vcnkgd2lsbCBiZQogICAgIC8vIGxl
YWtlZC4gU2VlIDxodHRwOi8vd2Via2l0Lm9yZy9iLzQ3NTAyPi4KLSAgICBlbmNvZGVyLT5lbmNv
ZGUocmVpbnRlcnByZXRfY2FzdDx1aW50NjRfdD4obV9oYW5kbGUpKTsKKyAgICBlbmNvZGVyLmVu
Y29kZShyZWludGVycHJldF9jYXN0PHVpbnQ2NF90PihtX2hhbmRsZSkpOwogICAgIG1faGFuZGxl
ID0gMDsKIAogICAgIC8vIFNlbmQgYWxvbmcgb3VyIFBJRCBzbyB0aGF0IHRoZSByZWNlaXZpbmcg
cHJvY2VzcyBjYW4gZHVwbGljYXRlIHRoZSBIQU5ETEUgZm9yIGl0cyBvd24gdXNlLgotICAgIGVu
Y29kZXItPmVuY29kZShzdGF0aWNfY2FzdDx1aW50MzJfdD4oOjpHZXRDdXJyZW50UHJvY2Vzc0lk
KCkpKTsKKyAgICBlbmNvZGVyLmVuY29kZShzdGF0aWNfY2FzdDx1aW50MzJfdD4oOjpHZXRDdXJy
ZW50UHJvY2Vzc0lkKCkpKTsKIH0KIAogc3RhdGljIGJvb2wgZ2V0RHVwbGljYXRlZEhhbmRsZShI
QU5ETEUgc291cmNlSGFuZGxlLCBEV09SRCBzb3VyY2VQSUQsIEhBTkRMRSYgZHVwbGljYXRlZEhh
bmRsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ3Jl
YXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2lu
Q3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCBiYzJlOTkyOWMwZDE1OTliZjhkZmQzY2I2OGU1
ZjRjMTMwZDZhZjA3Li5jNWFhZmFiNmY4MWMwNTYwMjllOGJmZWZjZWRhZWZhMmM3ZGYwNzNhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNyZWF0aW9uUGFy
YW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5DcmVh
dGlvblBhcmFtZXRlcnMuY3BwCkBAIC00NSwxOSArNDUsMTkgQEAgUGx1Z2luQ3JlYXRpb25QYXJh
bWV0ZXJzOjpQbHVnaW5DcmVhdGlvblBhcmFtZXRlcnMoKQogewogfQogCi12b2lkIFBsdWdpbkNy
ZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2Rl
cikgY29uc3QKK3ZvaWQgUGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoQ29yZUlQQzo6
QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXItPmVuY29kZShw
bHVnaW5JbnN0YW5jZUlEKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUod2luZG93TlBPYmplY3RJRCk7
Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHBhcmFtZXRlcnMpOwotICAgIGVuY29kZXItPmVuY29kZSh1
c2VyQWdlbnQpOwotICAgIGVuY29kZXItPmVuY29kZShjb250ZW50c1NjYWxlRmFjdG9yKTsKLSAg
ICBlbmNvZGVyLT5lbmNvZGUoaXNQcml2YXRlQnJvd3NpbmdFbmFibGVkKTsKLSAgICBlbmNvZGVy
LT5lbmNvZGUoYXN5bmNocm9ub3VzQ3JlYXRpb25JbmNvbXBsZXRlKTsKLSAgICBlbmNvZGVyLT5l
bmNvZGUoYXJ0aWZpY2lhbFBsdWdpbkluaXRpYWxpemF0aW9uRGVsYXlFbmFibGVkKTsKKyAgICBl
bmNvZGVyLmVuY29kZShwbHVnaW5JbnN0YW5jZUlEKTsKKyAgICBlbmNvZGVyLmVuY29kZSh3aW5k
b3dOUE9iamVjdElEKTsKKyAgICBlbmNvZGVyLmVuY29kZShwYXJhbWV0ZXJzKTsKKyAgICBlbmNv
ZGVyLmVuY29kZSh1c2VyQWdlbnQpOworICAgIGVuY29kZXIuZW5jb2RlKGNvbnRlbnRzU2NhbGVG
YWN0b3IpOworICAgIGVuY29kZXIuZW5jb2RlKGlzUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCk7Cisg
ICAgZW5jb2Rlci5lbmNvZGUoYXN5bmNocm9ub3VzQ3JlYXRpb25JbmNvbXBsZXRlKTsKKyAgICBl
bmNvZGVyLmVuY29kZShhcnRpZmljaWFsUGx1Z2luSW5pdGlhbGl6YXRpb25EZWxheUVuYWJsZWQp
OwogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAgIGVuY29kZXItPmVuY29k
ZShpc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKTsKKyAgICBlbmNvZGVyLmVuY29kZShp
c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNyZWF0aW9uUGFyYW1ldGVycy5o
IGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5DcmVhdGlvblBhcmFtZXRlcnMu
aAppbmRleCA2ZjA1YmRhYWJmNGMwOTMyODNkNWIwMzQzYTA5NjExMWM0ZjAzMGZhLi4xMzg3ZjE0
MGViOTcyNmE1NTdkMjI4NWQzNTQ1NjYyODc1N2Y0ODhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTQw
LDcgKzQwLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBzdHJ1Y3QgUGx1Z2luQ3JlYXRpb25QYXJh
bWV0ZXJzIHsKICAgICBQbHVnaW5DcmVhdGlvblBhcmFtZXRlcnMoKTsKIAotICAgIHZvaWQgZW5j
b2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciopIGNvbnN0OworICAgIHZvaWQgZW5jb2RlKENv
cmVJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBQbHVnaW5DcmVhdGlvblBhcmFtZXRlcnMmKTsKIAog
ICAgIC8vIFRoZSB1bmlxdWUgSUQgb2YgdGhpcyBwbHVnLWluIGluc3RhbmNlLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0RpY3Rpb25hcnlQb3B1cEluZm8uY3BwIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL0RpY3Rpb25hcnlQb3B1cEluZm8uY3BwCmluZGV4IDdlNmRmM2E1Y2Jm
YzhjNjdjODRkN2I2Nzg1N2ZjN2M0OWUxNTdhN2EuLmE0NGQ5OWM0YWRjMzEyOTA4NWQzZmZhYmJm
ZTc2Nzk5MzZiNjU5YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9EaWN0aW9u
YXJ5UG9wdXBJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRGljdGlvbmFyeVBv
cHVwSW5mby5jcHAKQEAgLTM0LDE3ICszNCwxNyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAot
dm9pZCBEaWN0aW9uYXJ5UG9wdXBJbmZvOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVy
KiBlbmNvZGVyKSBjb25zdAordm9pZCBEaWN0aW9uYXJ5UG9wdXBJbmZvOjplbmNvZGUoQ29yZUlQ
Qzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXItPmVuY29k
ZShvcmlnaW4pOwotICAgIGVuY29kZXItPmVuY29kZShmb250SW5mbyk7Ci0gICAgZW5jb2Rlci0+
ZW5jb2RlRW51bSh0eXBlKTsKKyAgICBlbmNvZGVyLmVuY29kZShvcmlnaW4pOworICAgIGVuY29k
ZXIuZW5jb2RlKGZvbnRJbmZvKTsKKyAgICBlbmNvZGVyLmVuY29kZUVudW0odHlwZSk7CiAKICNp
ZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3
MAogICAgIGJvb2wgaGFkT3B0aW9ucyA9IG9wdGlvbnM7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGhh
ZE9wdGlvbnMpOworICAgIGVuY29kZXIuZW5jb2RlKGhhZE9wdGlvbnMpOwogICAgIGlmIChoYWRP
cHRpb25zKQotICAgICAgICBDb3JlSVBDOjplbmNvZGUoZW5jb2Rlciwgb3B0aW9ucy5nZXQoKSk7
CisgICAgICAgIENvcmVJUEM6OmVuY29kZSgmZW5jb2Rlciwgb3B0aW9ucy5nZXQoKSk7CiAjZW5k
aWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0RpY3Rpb25hcnlQb3B1
cEluZm8uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9EaWN0aW9uYXJ5UG9wdXBJbmZvLmgKaW5k
ZXggYmNlYzA0YzQ1ZjEyMzIzNjY5ZDg1Y2ZhMzY4MWJlN2JiYTE0ZjM1NC4uMjdlYjZkYjM3YTk5
YThmYzU5MTY3MzNiYzEyMDVmN2Y4MzQyMzgzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL0RpY3Rpb25hcnlQb3B1cEluZm8uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
RGljdGlvbmFyeVBvcHVwSW5mby5oCkBAIC00MSw3ICs0MSw3IEBAIG5hbWVzcGFjZSBDb3JlSVBD
IHsKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBzdHJ1Y3QgRGljdGlvbmFyeVBvcHVwSW5mbyB7Ci0g
ICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKikgY29uc3Q7CisgICAgdm9p
ZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJv
b2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIERpY3Rpb25hcnlQb3B1cEluZm8m
KTsKIAogICAgIGVudW0gVHlwZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
RWRpdG9yU3RhdGUuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0VkaXRvclN0YXRlLmNwcApp
bmRleCA2ZTQ0YTBmMTVhNTA5M2NkNWIxMGVhY2FkN2ViMDA3ZTRlZmEyNTcxLi5iOGQ2NDBhN2Zj
YmFlNzU5MWIzNzU4NDYxZmY1MjY1MDkzODE5N2VjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvRWRpdG9yU3RhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9FZGl0
b3JTdGF0ZS5jcHAKQEAgLTMxLDI1ICszMSwyNSBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAot
dm9pZCBFZGl0b3JTdGF0ZTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2Rl
cikgY29uc3QKK3ZvaWQgRWRpdG9yU3RhdGU6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29k
ZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHNob3VsZElnbm9yZUNv
bXBvc2l0aW9uU2VsZWN0aW9uQ2hhbmdlKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoc2VsZWN0aW9u
SXNOb25lKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoc2VsZWN0aW9uSXNSYW5nZSk7Ci0gICAgZW5j
b2Rlci0+ZW5jb2RlKGlzQ29udGVudEVkaXRhYmxlKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoaXND
b250ZW50UmljaGx5RWRpdGFibGUpOwotICAgIGVuY29kZXItPmVuY29kZShpc0luUGFzc3dvcmRG
aWVsZCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGhhc0NvbXBvc2l0aW9uKTsKKyAgICBlbmNvZGVy
LmVuY29kZShzaG91bGRJZ25vcmVDb21wb3NpdGlvblNlbGVjdGlvbkNoYW5nZSk7CisgICAgZW5j
b2Rlci5lbmNvZGUoc2VsZWN0aW9uSXNOb25lKTsKKyAgICBlbmNvZGVyLmVuY29kZShzZWxlY3Rp
b25Jc1JhbmdlKTsKKyAgICBlbmNvZGVyLmVuY29kZShpc0NvbnRlbnRFZGl0YWJsZSk7CisgICAg
ZW5jb2Rlci5lbmNvZGUoaXNDb250ZW50UmljaGx5RWRpdGFibGUpOworICAgIGVuY29kZXIuZW5j
b2RlKGlzSW5QYXNzd29yZEZpZWxkKTsKKyAgICBlbmNvZGVyLmVuY29kZShoYXNDb21wb3NpdGlv
bik7CiAKICNpZiBQTEFURk9STShRVCkKLSAgICBlbmNvZGVyLT5lbmNvZGUoY3Vyc29yUG9zaXRp
b24pOwotICAgIGVuY29kZXItPmVuY29kZShhbmNob3JQb3NpdGlvbik7Ci0gICAgZW5jb2Rlci0+
ZW5jb2RlKGVkaXRvclJlY3QpOwotICAgIGVuY29kZXItPmVuY29kZShjdXJzb3JSZWN0KTsKLSAg
ICBlbmNvZGVyLT5lbmNvZGUoY29tcG9zaXRpb25SZWN0KTsKLSAgICBlbmNvZGVyLT5lbmNvZGUo
aW5wdXRNZXRob2RIaW50cyk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHNlbGVjdGVkVGV4dCk7Ci0g
ICAgZW5jb2Rlci0+ZW5jb2RlKHN1cnJvdW5kaW5nVGV4dCk7CisgICAgZW5jb2Rlci5lbmNvZGUo
Y3Vyc29yUG9zaXRpb24pOworICAgIGVuY29kZXIuZW5jb2RlKGFuY2hvclBvc2l0aW9uKTsKKyAg
ICBlbmNvZGVyLmVuY29kZShlZGl0b3JSZWN0KTsKKyAgICBlbmNvZGVyLmVuY29kZShjdXJzb3JS
ZWN0KTsKKyAgICBlbmNvZGVyLmVuY29kZShjb21wb3NpdGlvblJlY3QpOworICAgIGVuY29kZXIu
ZW5jb2RlKGlucHV0TWV0aG9kSGludHMpOworICAgIGVuY29kZXIuZW5jb2RlKHNlbGVjdGVkVGV4
dCk7CisgICAgZW5jb2Rlci5lbmNvZGUoc3Vycm91bmRpbmdUZXh0KTsKICNlbmRpZgogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRWRpdG9yU3RhdGUuaCBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9FZGl0b3JTdGF0ZS5oCmluZGV4IGFjMWQ3OTNhY2Y4NzAyZmQ3MTFlNDg3
OTk4ZWVmNTc0YzM3NGM3YzIuLjA2ZWEwODdiOGYwODJhZjg4YzllZDM5YTY4ODliZjY0ODg0OWFh
MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9FZGl0b3JTdGF0ZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9FZGl0b3JTdGF0ZS5oCkBAIC03NCw3ICs3NCw3IEBAIHN0
cnVjdCBFZGl0b3JTdGF0ZSB7CiAgICAgV1RGOjpTdHJpbmcgc3Vycm91bmRpbmdUZXh0OwogI2Vu
ZGlmCiAKLSAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqKSBjb25zdDsK
KyAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKICAgICBz
dGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgRWRpdG9yU3RhdGUm
KTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Gb250SW5mby5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRm9udEluZm8uY3BwCmluZGV4IGNkMDI2MzA0NWQ1OGRk
ODk4YzA1ZWI2YzEzNzMwMmNhMTlkMDM4OTguLmRlMDMzODRhNDgxNmNkZTVkYTcwMTQ2YTViMjM3
Nzg5YmY1MjMzNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Gb250SW5mby5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0ZvbnRJbmZvLmNwcApAQCAtMzQsMTIgKzM0
LDEyIEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi12b2lkIEZvbnRJbmZvOjplbmNvZGUoQ29y
ZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAordm9pZCBGb250SW5mbzo6ZW5j
b2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKICNpZiBQTEFU
Rk9STShNQUMpCi0gICAgZW5jb2Rlci0+ZW5jb2RlKHN0YXRpY19jYXN0PGJvb2w+KGZvbnRBdHRy
aWJ1dGVEaWN0aW9uYXJ5KSk7CisgICAgZW5jb2Rlci5lbmNvZGUoc3RhdGljX2Nhc3Q8Ym9vbD4o
Zm9udEF0dHJpYnV0ZURpY3Rpb25hcnkpKTsKICAgICBpZiAoZm9udEF0dHJpYnV0ZURpY3Rpb25h
cnkpCi0gICAgICAgIENvcmVJUEM6OmVuY29kZShlbmNvZGVyLCBmb250QXR0cmlidXRlRGljdGlv
bmFyeS5nZXQoKSk7CisgICAgICAgIENvcmVJUEM6OmVuY29kZSgmZW5jb2RlciwgZm9udEF0dHJp
YnV0ZURpY3Rpb25hcnkuZ2V0KCkpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oZW5jb2Rlcik7
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Gb250SW5mby5oIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL0ZvbnRJbmZvLmgKaW5kZXggMjNlYTk0NWNhYTQxM2RmZTEx
NjM0NWQ3YTIyOTdiOTgxMTZjYmZmNy4uYWUxMWQxMjc1MjU3NzQ1NzgwMTI5M2NjYjk4YzIyNDEw
NGVlMDc4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0ZvbnRJbmZvLmgKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0ZvbnRJbmZvLmgKQEAgLTM4LDcgKzM4LDcgQEAgbmFt
ZXNwYWNlIENvcmVJUEMgewogbmFtZXNwYWNlIFdlYktpdCB7CiAgICAgCiBzdHJ1Y3QgRm9udElu
Zm8gewotICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciopIGNvbnN0Owor
ICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OwogICAgIHN0
YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBGb250SW5mbyYpOwog
ICAgIAogI2lmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9JbnRlbnREYXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9JbnRlbnREYXRhLmNwcApp
bmRleCA0MTA3ODc0N2M4MjkxMzJiMTc5YjU1Y2EwZTcyMThkZWQ0Mjk3Zjc3Li43NTc4MTllNDVk
YTQ3YzhkZjcxNWUwMDdhMzQ5Zjg3ZmIwYjRjNzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvSW50ZW50RGF0YS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0ludGVu
dERhdGEuY3BwCkBAIC01NiwxNSArNTYsMTUgQEAgSW50ZW50RGF0YTo6SW50ZW50RGF0YShJbnRl
bnQqIGNvcmVJbnRlbnQpCiAgICAgfQogfQogCi12b2lkIEludGVudERhdGE6OmVuY29kZShDb3Jl
SVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Cit2b2lkIEludGVudERhdGE6OmVu
Y29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5j
b2Rlci0+ZW5jb2RlKGFjdGlvbik7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHR5cGUpOwotICAgIGVu
Y29kZXItPmVuY29kZShzZXJ2aWNlKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoQ29yZUlQQzo6RGF0
YVJlZmVyZW5jZShkYXRhKSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGV4dHJhcyk7Ci0gICAgZW5j
b2Rlci0+ZW5jb2RlKHN1Z2dlc3Rpb25zKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobWVzc2FnZVBv
cnRzKTsKKyAgICBlbmNvZGVyLmVuY29kZShhY3Rpb24pOworICAgIGVuY29kZXIuZW5jb2RlKHR5
cGUpOworICAgIGVuY29kZXIuZW5jb2RlKHNlcnZpY2UpOworICAgIGVuY29kZXIuZW5jb2RlKENv
cmVJUEM6OkRhdGFSZWZlcmVuY2UoZGF0YSkpOworICAgIGVuY29kZXIuZW5jb2RlKGV4dHJhcyk7
CisgICAgZW5jb2Rlci5lbmNvZGUoc3VnZ2VzdGlvbnMpOworICAgIGVuY29kZXIuZW5jb2RlKG1l
c3NhZ2VQb3J0cyk7CiB9CiAKIGJvb2wgSW50ZW50RGF0YTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciogZGVjb2RlciwgSW50ZW50RGF0YSYgaW50ZW50RGF0YSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9JbnRlbnREYXRhLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvSW50ZW50RGF0YS5oCmluZGV4IGU4NDM1YzI4NGY1YzdjZjRjN2MwYjUxNjliMDBlNDNjODMw
YzI2NjYuLmUzYWRiMTkwZWJhZDRmMTQyOGZhNTY3N2RmNmQ1M2JlODVmZGI4Y2MgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9JbnRlbnREYXRhLmgKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL0ludGVudERhdGEuaApAQCAtNDgsNyArNDgsNyBAQCBzdHJ1Y3QgSW50ZW50RGF0
YSB7CiAgICAgSW50ZW50RGF0YSgpIHsgfQogICAgIGV4cGxpY2l0IEludGVudERhdGEoV2ViQ29y
ZTo6SW50ZW50Kik7CiAKLSAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIq
KSBjb25zdDsKKyAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25z
dDsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgSW50
ZW50RGF0YSYpOwogCiAgICAgU3RyaW5nIGFjdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9JbnRlbnRTZXJ2aWNlSW5mby5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
SW50ZW50U2VydmljZUluZm8uY3BwCmluZGV4IGJkOTU0ODQ3ZmM1ZGJhZDk0OGE4ZmQxMWY4OGUx
YTUzZWM1ZWNmNDkuLjM0MDIwMGVkMTMzMmEzYTViMjBhN2EyZDBjNzM0ZGEzOTlhMjkwYmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9JbnRlbnRTZXJ2aWNlSW5mby5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0ludGVudFNlcnZpY2VJbmZvLmNwcApAQCAtMzUsMTMg
KzM1LDEzIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IAotdm9pZCBJbnRlbnRTZXJ2aWNlSW5mbzo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rl
ciogZW5jb2RlcikgY29uc3QKK3ZvaWQgSW50ZW50U2VydmljZUluZm86OmVuY29kZShDb3JlSVBD
OjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2Rlci0+ZW5jb2Rl
KGFjdGlvbik7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHR5cGUpOwotICAgIGVuY29kZXItPmVuY29k
ZShocmVmKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUodGl0bGUpOwotICAgIGVuY29kZXItPmVuY29k
ZShkaXNwb3NpdGlvbik7CisgICAgZW5jb2Rlci5lbmNvZGUoYWN0aW9uKTsKKyAgICBlbmNvZGVy
LmVuY29kZSh0eXBlKTsKKyAgICBlbmNvZGVyLmVuY29kZShocmVmKTsKKyAgICBlbmNvZGVyLmVu
Y29kZSh0aXRsZSk7CisgICAgZW5jb2Rlci5lbmNvZGUoZGlzcG9zaXRpb24pOwogfQogCiBib29s
IEludGVudFNlcnZpY2VJbmZvOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNv
ZGVyLCBJbnRlbnRTZXJ2aWNlSW5mbyYgaW50ZW50U2VydmljZUluZm8pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvSW50ZW50U2VydmljZUluZm8uaCBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9JbnRlbnRTZXJ2aWNlSW5mby5oCmluZGV4IDU5YzA0NzBjNTljMzM1YzIwOTNlYmMy
NmEyZDdhMTRmNWEzZDhmMjQuLmZmMTNkM2I4ZTJiZDQ1MDY5YjRjNTJmMTQzZDk0MDdkMmFlZjNk
MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9JbnRlbnRTZXJ2aWNlSW5mby5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9JbnRlbnRTZXJ2aWNlSW5mby5oCkBAIC00MCw3
ICs0MCw3IEBAIGNsYXNzIEFyZ3VtZW50RW5jb2RlcjsKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBz
dHJ1Y3QgSW50ZW50U2VydmljZUluZm8gewotICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3Vt
ZW50RW5jb2RlciopIGNvbnN0OworICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5j
b2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqLCBJbnRlbnRTZXJ2aWNlSW5mbyYpOwogCiAgICAgU3RyaW5nIGFjdGlvbjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9MYXllclRyZWVDb250ZXh0LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvTGF5ZXJUcmVlQ29udGV4dC5oCmluZGV4IDUyMDZhMzczYzBkNmI0MWIw
ZjIwMTdjNWM1MjZhYjNkMzM1YWU1YjIuLmY4ZTJmY2U2MWYzM2QyYWNmNzQ3ZjBlOWNjNWVlNjNl
YmM3ZWZlYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9MYXllclRyZWVDb250
ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0xheWVyVHJlZUNvbnRleHQuaApAQCAt
NDcsNyArNDcsNyBAQCBwdWJsaWM6CiAgICAgTGF5ZXJUcmVlQ29udGV4dCgpOwogICAgIH5MYXll
clRyZWVDb250ZXh0KCk7CiAKLSAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29k
ZXIqKSBjb25zdDsKKyAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBj
b25zdDsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwg
TGF5ZXJUcmVlQ29udGV4dCYpOwogCiAgICAgYm9vbCBpc0VtcHR5KCkgY29uc3Q7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggZWZiZTM1NzJkNjhjYTUyYzFhYzU5NjQw
NTI4ZGQyOGViNGQwMDA0My4uMDYzM2MwNDE4ZjlkMTMyZTk4MDQxZWVmODEyYzQ3M2RiNGIxNjBh
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtMzYsMTAgKzM2LDEw
IEBAIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpOZXR3b3JrUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycygpCiB7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnM6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Cit2
b2lkIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoQ29yZUlQQzo6QXJn
dW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewogI2lmIFBMQVRGT1JNKE1BQykKLSAgICBl
bmNvZGVyLT5lbmNvZGUocGFyZW50UHJvY2Vzc05hbWUpOworICAgIGVuY29kZXIuZW5jb2RlKHBh
cmVudFByb2Nlc3NOYW1lKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuaAppbmRleCA0ZjU5ZTI5NDFmYjY2NGExY2JjMGEwNWVhMjgwMTBjZWJlNTQ4ZWQxLi5lYmMw
M2E3ZWQwZjlmODA3ZGYwZmU1NWEzMDVjODJlNTZiNDA1M2JkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmgKQEAgLTQwLDcgKzQwLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBzdHJ1
Y3QgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIE5ldHdvcmtQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzKCk7CiAKLSAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVu
dEVuY29kZXIqKSBjb25zdDsKKyAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29k
ZXImKSBjb25zdDsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKiwgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmKTsKIAogI2lmIFBMQVRGT1JN
KE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9PcmlnaW5BbmREYXRhYmFz
ZXMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL09yaWdpbkFuZERhdGFiYXNlcy5jcHAKaW5k
ZXggMGFkMDU0OWFkODQ1OTFkMWU2YTdlZWM5MGNhZjZlNWFkZmYxYzc4Zi4uOWY2ZmJlMjJmMzlk
ZDlhZjFmZGRkZGIyY2YxODhiYzA3MDMzNzg3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL09yaWdpbkFuZERhdGFiYXNlcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L09yaWdpbkFuZERhdGFiYXNlcy5jcHAKQEAgLTM0LDEyICszNCwxMiBAQCB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXZvaWQgT3JpZ2luQW5kRGF0YWJh
c2VzOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAordm9p
ZCBPcmlnaW5BbmREYXRhYmFzZXM6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVu
Y29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG9yaWdpbklkZW50aWZpZXIpOwot
ICAgIGVuY29kZXItPmVuY29kZShvcmlnaW5RdW90YSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG9y
aWdpblVzYWdlKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoZGF0YWJhc2VzKTsKKyAgICBlbmNvZGVy
LmVuY29kZShvcmlnaW5JZGVudGlmaWVyKTsKKyAgICBlbmNvZGVyLmVuY29kZShvcmlnaW5RdW90
YSk7CisgICAgZW5jb2Rlci5lbmNvZGUob3JpZ2luVXNhZ2UpOworICAgIGVuY29kZXIuZW5jb2Rl
KGRhdGFiYXNlcyk7CiB9CiAKIGJvb2wgT3JpZ2luQW5kRGF0YWJhc2VzOjpkZWNvZGUoQ29yZUlQ
Qzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBPcmlnaW5BbmREYXRhYmFzZXMmIG9yaWdpbkFu
ZERhdGFiYXNlcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9PcmlnaW5BbmRE
YXRhYmFzZXMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9PcmlnaW5BbmREYXRhYmFzZXMuaApp
bmRleCA1MWVmNGZhZTdhMDAyYmJjY2YzMTk1NjAwZmRhNWY4YjU2N2I5NDU1Li5lYzA2NGY5MWM4
ZjZlZDc1YTUzYjFiZDdmYjA2Nzg3ZTZkMTE4ZTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvT3JpZ2luQW5kRGF0YWJhc2VzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L09yaWdpbkFuZERhdGFiYXNlcy5oCkBAIC00MCw3ICs0MCw3IEBAIG5hbWVzcGFjZSBDb3JlSVBD
IHsKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBzdHJ1Y3QgT3JpZ2luQW5kRGF0YWJhc2VzIHsKLSAg
ICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqKSBjb25zdDsKKyAgICB2b2lk
IGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKICAgICBzdGF0aWMgYm9v
bCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgT3JpZ2luQW5kRGF0YWJhc2VzJik7
CiAKICAgICBTdHJpbmcgb3JpZ2luSWRlbnRpZmllcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9QbGF0Zm9ybVBvcHVwTWVudURhdGEuY3BwIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL1BsYXRmb3JtUG9wdXBNZW51RGF0YS5jcHAKaW5kZXggMWRlY2FhY2M1NTdmZDI4ZWM1Njgw
Y2E0Mjc3NjU3NzA0OGY1OWQ5NC4uMjE1NzhjNGM1M2IxZjkzOWMzZmE3MzZiNjZkMDIzNDgzZDYw
MmYyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsYXRmb3JtUG9wdXBNZW51
RGF0YS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsYXRmb3JtUG9wdXBNZW51RGF0
YS5jcHAKQEAgLTQ0LDI4ICs0NCwyOCBAQCBQbGF0Zm9ybVBvcHVwTWVudURhdGE6OlBsYXRmb3Jt
UG9wdXBNZW51RGF0YSgpCiB7CiB9CiAKLXZvaWQgUGxhdGZvcm1Qb3B1cE1lbnVEYXRhOjplbmNv
ZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAordm9pZCBQbGF0Zm9y
bVBvcHVwTWVudURhdGE6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIp
IGNvbnN0CiB7CiAjaWYgUExBVEZPUk0oV0lOKQotICAgIGVuY29kZXItPmVuY29kZShtX2NsaWVu
dFBhZGRpbmdMZWZ0KTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobV9jbGllbnRQYWRkaW5nUmlnaHQp
OwotICAgIGVuY29kZXItPmVuY29kZShtX2NsaWVudEluc2V0TGVmdCk7Ci0gICAgZW5jb2Rlci0+
ZW5jb2RlKG1fY2xpZW50SW5zZXRSaWdodCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG1fcG9wdXBX
aWR0aCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG1faXRlbUhlaWdodCk7CisgICAgZW5jb2Rlci5l
bmNvZGUobV9jbGllbnRQYWRkaW5nTGVmdCk7CisgICAgZW5jb2Rlci5lbmNvZGUobV9jbGllbnRQ
YWRkaW5nUmlnaHQpOworICAgIGVuY29kZXIuZW5jb2RlKG1fY2xpZW50SW5zZXRMZWZ0KTsKKyAg
ICBlbmNvZGVyLmVuY29kZShtX2NsaWVudEluc2V0UmlnaHQpOworICAgIGVuY29kZXIuZW5jb2Rl
KG1fcG9wdXBXaWR0aCk7CisgICAgZW5jb2Rlci5lbmNvZGUobV9pdGVtSGVpZ2h0KTsKIAogICAg
IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlIG5vdFNlbGVjdGVkQmFja2luZ1N0b3JlSGFuZGxlOwog
ICAgIG1fbm90U2VsZWN0ZWRCYWNraW5nU3RvcmUtPmNyZWF0ZUhhbmRsZShub3RTZWxlY3RlZEJh
Y2tpbmdTdG9yZUhhbmRsZSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG5vdFNlbGVjdGVkQmFja2lu
Z1N0b3JlSGFuZGxlKTsKKyAgICBlbmNvZGVyLmVuY29kZShub3RTZWxlY3RlZEJhY2tpbmdTdG9y
ZUhhbmRsZSk7CiAKICAgICBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSBzZWxlY3RlZEJhY2tpbmdT
dG9yZUhhbmRsZTsKICAgICBtX3NlbGVjdGVkQmFja2luZ1N0b3JlLT5jcmVhdGVIYW5kbGUoc2Vs
ZWN0ZWRCYWNraW5nU3RvcmVIYW5kbGUpOwotICAgIGVuY29kZXItPmVuY29kZShzZWxlY3RlZEJh
Y2tpbmdTdG9yZUhhbmRsZSk7CisgICAgZW5jb2Rlci5lbmNvZGUoc2VsZWN0ZWRCYWNraW5nU3Rv
cmVIYW5kbGUpOwogI2VsaWYgUExBVEZPUk0oTUFDKQotICAgIGVuY29kZXItPmVuY29kZShmb250
SW5mbyk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHNob3VsZFBvcE92ZXIpOworICAgIGVuY29kZXIu
ZW5jb2RlKGZvbnRJbmZvKTsKKyAgICBlbmNvZGVyLmVuY29kZShzaG91bGRQb3BPdmVyKTsKICNl
bGlmIFBMQVRGT1JNKFFUKQotICAgIGVuY29kZXItPmVuY29kZShtdWx0aXBsZVNlbGVjdGlvbnMp
OworICAgIGVuY29kZXIuZW5jb2RlKG11bHRpcGxlU2VsZWN0aW9ucyk7CiAjZWxzZQogICAgIFVO
VVNFRF9QQVJBTShlbmNvZGVyKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL1BsYXRmb3JtUG9wdXBNZW51RGF0YS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1Bs
YXRmb3JtUG9wdXBNZW51RGF0YS5oCmluZGV4IDIxYWJkZTRmZjVkNjIyOTM1YzhhMjM1YTNhMGFi
NjllYzRjZWY2NWMuLjdkOWQ5NGQyYTE4ODZjMDRkYTcyYjNmODVkY2QwNmM0OWJlNDNjZWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbGF0Zm9ybVBvcHVwTWVudURhdGEuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGxhdGZvcm1Qb3B1cE1lbnVEYXRhLmgKQEAgLTQw
LDcgKzQwLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBzdHJ1Y3QgUGxhdGZvcm1Qb3B1cE1lbnVE
YXRhIHsKICAgICBQbGF0Zm9ybVBvcHVwTWVudURhdGEoKTsKIAotICAgIHZvaWQgZW5jb2RlKENv
cmVJUEM6OkFyZ3VtZW50RW5jb2RlciopIGNvbnN0OworICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6
OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqLCBQbGF0Zm9ybVBvcHVwTWVudURhdGEmKTsKIAogI2lmIFBMQVRG
T1JNKFdJTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QSWRl
bnRpZmllckRhdGEuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBJZGVudGlm
aWVyRGF0YS5jcHAKaW5kZXggZmYyYmVmMTQwMDNiOTA1YTdmNWE0NjRlNzI3OGIzMmZlYTdmYTBj
Ni4uZmM5ODcwZjBjYjQxNTE5YjMxZWZiNGMxMGIxNTkxNjBmZmRmOTgwNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBJZGVudGlmaWVyRGF0YS5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBJZGVudGlmaWVyRGF0YS5jcHAKQEAgLTY3
LDEzICs2NywxMyBAQCBOUElkZW50aWZpZXIgTlBJZGVudGlmaWVyRGF0YTo6Y3JlYXRlTlBJZGVu
dGlmaWVyKCkgY29uc3QKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8TlBJZGVudGlmaWVyPihJZGVu
dGlmaWVyUmVwOjpnZXQobV9udW1iZXIpKTsKIH0KIAotdm9pZCBOUElkZW50aWZpZXJEYXRhOjpl
bmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAordm9pZCBOUElk
ZW50aWZpZXJEYXRhOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBj
b25zdAogewotICAgIGVuY29kZXItPmVuY29kZShtX2lzU3RyaW5nKTsKKyAgICBlbmNvZGVyLmVu
Y29kZShtX2lzU3RyaW5nKTsKICAgICBpZiAobV9pc1N0cmluZykKLSAgICAgICAgZW5jb2Rlci0+
ZW5jb2RlKG1fc3RyaW5nKTsKKyAgICAgICAgZW5jb2Rlci5lbmNvZGUobV9zdHJpbmcpOwogICAg
IGVsc2UKLSAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKG1fbnVtYmVyKTsKKyAgICAgICAgZW5jb2Rl
ci5lbmNvZGUobV9udW1iZXIpOwogfQogCiBib29sIE5QSWRlbnRpZmllckRhdGE6OmRlY29kZShD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIE5QSWRlbnRpZmllckRhdGEmIHJlc3Vs
dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QSWRlbnRpZmll
ckRhdGEuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QSWRlbnRpZmllckRhdGEu
aAppbmRleCAxYTdjNzcyYTc5NDhmYzM2ZTVjNDMzODExYzNlYjBlNTFlYjgyMmVlLi41NmQ1N2Zj
OTY1MTEwY2U1MDA0Y2QwNzFkYjVlZGNjY2UxNjliNTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvUGx1Z2lucy9OUElkZW50aWZpZXJEYXRhLmgKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1BsdWdpbnMvTlBJZGVudGlmaWVyRGF0YS5oCkBAIC00Nyw3ICs0Nyw3IEBAIHB1
YmxpYzoKICAgICBzdGF0aWMgTlBJZGVudGlmaWVyRGF0YSBmcm9tTlBJZGVudGlmaWVyKE5QSWRl
bnRpZmllcik7CiAgICAgTlBJZGVudGlmaWVyIGNyZWF0ZU5QSWRlbnRpZmllcigpIGNvbnN0Owog
Ci0gICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKikgY29uc3Q7CisgICAg
dm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGlj
IGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIE5QSWRlbnRpZmllckRhdGEm
KTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5z
L05QVmFyaWFudERhdGEuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBWYXJp
YW50RGF0YS5jcHAKaW5kZXggMDRiYjNmNWJkZWJlZDQ0OWYxNjQ0MTliZTc4YTc4OGY1OTRmMmQ1
MS4uYzBiYmY2N2Y2ODk1OWVlNmNlNjZjY2M1NzFjYmI1MjVjODgwMjBiMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBWYXJpYW50RGF0YS5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBWYXJpYW50RGF0YS5jcHAKQEAgLTExOCwzMSAr
MTE4LDMxIEBAIE5QVmFyaWFudERhdGEgTlBWYXJpYW50RGF0YTo6bWFrZVJlbW90ZU5QT2JqZWN0
SUQodWludDY0X3QgdmFsdWUpCiAgICAgcmV0dXJuIG5wVmFyaWFudERhdGE7CiB9CiAKLXZvaWQg
TlBWYXJpYW50RGF0YTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2Rlcikg
Y29uc3QKK3ZvaWQgTlBWYXJpYW50RGF0YTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyLT5lbmNvZGUobV90eXBlKTsKKyAgICBl
bmNvZGVyLmVuY29kZShtX3R5cGUpOwogCiAgICAgc3dpdGNoICh0eXBlKCkpIHsKICAgICBjYXNl
IE5QVmFyaWFudERhdGE6OlZvaWQ6CiAgICAgY2FzZSBOUFZhcmlhbnREYXRhOjpOdWxsOgogICAg
ICAgICBicmVhazsKICAgICBjYXNlIE5QVmFyaWFudERhdGE6OkJvb2w6Ci0gICAgICAgIGVuY29k
ZXItPmVuY29kZShib29sVmFsdWUoKSk7CisgICAgICAgIGVuY29kZXIuZW5jb2RlKGJvb2xWYWx1
ZSgpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBOUFZhcmlhbnREYXRhOjpJbnQzMjoKLSAg
ICAgICAgZW5jb2Rlci0+ZW5jb2RlKGludDMyVmFsdWUoKSk7CisgICAgICAgIGVuY29kZXIuZW5j
b2RlKGludDMyVmFsdWUoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTlBWYXJpYW50RGF0
YTo6RG91YmxlOgotICAgICAgICBlbmNvZGVyLT5lbmNvZGUoZG91YmxlVmFsdWUoKSk7CisgICAg
ICAgIGVuY29kZXIuZW5jb2RlKGRvdWJsZVZhbHVlKCkpOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIE5QVmFyaWFudERhdGE6OlN0cmluZzoKLSAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKHN0cmlu
Z1ZhbHVlKCkpOworICAgICAgICBlbmNvZGVyLmVuY29kZShzdHJpbmdWYWx1ZSgpKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBOUFZhcmlhbnREYXRhOjpMb2NhbE5QT2JqZWN0SUQ6Ci0gICAg
ICAgIGVuY29kZXItPmVuY29kZShsb2NhbE5QT2JqZWN0SURWYWx1ZSgpKTsKKyAgICAgICAgZW5j
b2Rlci5lbmNvZGUobG9jYWxOUE9iamVjdElEVmFsdWUoKSk7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgTlBWYXJpYW50RGF0YTo6UmVtb3RlTlBPYmplY3RJRDoKLSAgICAgICAgZW5jb2Rlci0+
ZW5jb2RlKHJlbW90ZU5QT2JqZWN0SURWYWx1ZSgpKTsKKyAgICAgICAgZW5jb2Rlci5lbmNvZGUo
cmVtb3RlTlBPYmplY3RJRFZhbHVlKCkpOwogICAgICAgICBicmVhazsKICAgICB9CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUFZhcmlhbnREYXRhLmggYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OUFZhcmlhbnREYXRhLmgKaW5kZXggODA1NjQw
ZTllN2RmNmM4MDcyOTFhZjlhZDM0YjcwYzNlYzgzZmQwMy4uYTIzMjA0NjE2ZmM4NjAxNDNkYzcy
ZmRmMjI3NDYzMTNhZWVkYWQ3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1Bs
dWdpbnMvTlBWYXJpYW50RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5z
L05QVmFyaWFudERhdGEuaApAQCAtMTAwLDcgKzEwMCw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0
dXJuIG1fcmVtb3RlTlBPYmplY3RJRFZhbHVlOwogICAgIH0KIAotICAgIHZvaWQgZW5jb2RlKENv
cmVJUEM6OkFyZ3VtZW50RW5jb2RlciopIGNvbnN0OworICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6
OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqLCBOUFZhcmlhbnREYXRhJik7CiAKIHByaXZhdGU6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL1BsdWdpblByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IDFhMGE1MmM0MWVjOTlhMWZmNTE4NTA3MzRh
NDhhOTFmZjM5NjFjZjEuLmMwYzYyNmU1YzA0Mjc3ZWMwMWQwZWVlMDM1YmQ1YmY4OTI2YzM2N2Eg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL1BsdWdpblByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5z
L1BsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC0zNywxNyArMzcsMTcgQEAg
UGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6UGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycygpCiB7CiB9CiAKLXZvaWQgUGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6
ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKK3ZvaWQgUGx1
Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5j
b2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyLT5lbmNvZGUocGx1Z2luUGF0aCk7
Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHN1cHBvcnRzQXN5bmNocm9ub3VzUGx1Z2luSW5pdGlhbGl6
YXRpb24pOwotICAgIGVuY29kZXItPmVuY29kZShtaW5pbXVtTGlmZXRpbWUpOwotICAgIGVuY29k
ZXItPmVuY29kZSh0ZXJtaW5hdGlvblRpbWVvdXQpOworICAgIGVuY29kZXIuZW5jb2RlKHBsdWdp
blBhdGgpOworICAgIGVuY29kZXIuZW5jb2RlKHN1cHBvcnRzQXN5bmNocm9ub3VzUGx1Z2luSW5p
dGlhbGl6YXRpb24pOworICAgIGVuY29kZXIuZW5jb2RlKG1pbmltdW1MaWZldGltZSk7CisgICAg
ZW5jb2Rlci5lbmNvZGUodGVybWluYXRpb25UaW1lb3V0KTsKIAogI2lmIFBMQVRGT1JNKE1BQykK
LSAgICBlbmNvZGVyLT5lbmNvZGUocGFyZW50UHJvY2Vzc05hbWUpOwotICAgIGVuY29kZXItPmVu
Y29kZShhY2NlbGVyYXRlZENvbXBvc2l0aW5nUG9ydCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHNh
bmRib3hQcm9maWxlRGlyZWN0b3J5UGF0aCk7CisgICAgZW5jb2Rlci5lbmNvZGUocGFyZW50UHJv
Y2Vzc05hbWUpOworICAgIGVuY29kZXIuZW5jb2RlKGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdQb3J0
KTsKKyAgICBlbmNvZGVyLmVuY29kZShzYW5kYm94UHJvZmlsZURpcmVjdG9yeVBhdGgpOwogI2Vu
ZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL1BsdWdp
blByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVn
aW5zL1BsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCA1NDQzNzRhZDE1ZjVm
MTQ4NjU2YzkzOTU0OGYyYTFkOWE1YjlhMGUzLi5hNDE0MjEyYmU5YTBmNjgyZWM4NWEzMGNlOGRm
MDQ3MzVkZTVjMTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9Q
bHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC00NCw3ICs0
NCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogc3RydWN0IFBsdWdpblByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMgewogICAgIFBsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMoKTsKIAotICAg
IHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciopIGNvbnN0OworICAgIHZvaWQg
ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29s
IGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBQbHVnaW5Qcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzJik7CiAKICAgICBTdHJpbmcgcGx1Z2luUGF0aDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9QcmludEluZm8uY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1By
aW50SW5mby5jcHAKaW5kZXggMTA3ODg0YTA3YjM2MGIxODUxYjNiZjRmNGE5MDU2YWJhNDFkYTE1
Mi4uODVhMDY5YTU1Y2NmZThjNjQ4NjI1OWM2ZDU5OWMyNGFmZmY0ODcwZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL1ByaW50SW5mby5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL1ByaW50SW5mby5jcHAKQEAgLTQzLDE1ICs0MywxNSBAQCBQcmludEluZm86OlByaW50
SW5mbygpCiB7CiB9CiAKLXZvaWQgUHJpbnRJbmZvOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRF
bmNvZGVyKiBlbmNvZGVyKSBjb25zdAordm9pZCBQcmludEluZm86OmVuY29kZShDb3JlSVBDOjpB
cmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHBh
Z2VTZXR1cFNjYWxlRmFjdG9yKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoYXZhaWxhYmxlUGFwZXJX
aWR0aCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGF2YWlsYWJsZVBhcGVySGVpZ2h0KTsKKyAgICBl
bmNvZGVyLmVuY29kZShwYWdlU2V0dXBTY2FsZUZhY3Rvcik7CisgICAgZW5jb2Rlci5lbmNvZGUo
YXZhaWxhYmxlUGFwZXJXaWR0aCk7CisgICAgZW5jb2Rlci5lbmNvZGUoYXZhaWxhYmxlUGFwZXJI
ZWlnaHQpOwogCiAjaWYgUExBVEZPUk0oR1RLKQotICAgIENvcmVJUEM6OmVuY29kZShlbmNvZGVy
LCBwcmludFNldHRpbmdzLmdldCgpKTsKLSAgICBDb3JlSVBDOjplbmNvZGUoZW5jb2RlciwgcGFn
ZVNldHVwLmdldCgpKTsKKyAgICBDb3JlSVBDOjplbmNvZGUoJmVuY29kZXIsIHByaW50U2V0dGlu
Z3MuZ2V0KCkpOworICAgIENvcmVJUEM6OmVuY29kZSgmZW5jb2RlciwgcGFnZVNldHVwLmdldCgp
KTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUHJpbnRJ
bmZvLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUHJpbnRJbmZvLmgKaW5kZXggYjczYjdjNWUz
ZWU3YTIzYWEyZWI1N2JmY2M5NDA1ZjRlMzQyNWI5Ni4uOTdmYWNlYmQwY2M1ODE5OWZiYzUxMmM5
Mzk3YjMyODBlMmY1M2JkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1ByaW50
SW5mby5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QcmludEluZm8uaApAQCAtNjMsNyAr
NjMsNyBAQCBzdHJ1Y3QgUHJpbnRJbmZvIHsKICAgICBHUmVmUHRyPEd0a1BhZ2VTZXR1cD4gcGFn
ZVNldHVwOwogI2VuZGlmCiAKLSAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29k
ZXIqKSBjb25zdDsKKyAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBj
b25zdDsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwg
UHJpbnRJbmZvJik7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2Fu
ZGJveEV4dGVuc2lvbi5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1NhbmRib3hFeHRlbnNpb24u
aAppbmRleCA0ZmRiMWVkNjNkYzU0Y2QwMjhjMGRkMWEyZGI5NGFlZWZiMGI1NWFhLi5lMWE5MDRh
ZjE3ZDFlMTBlNGZiOThlZTM3MGU4YWFiNzUxMTQ4MjY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvU2FuZGJveEV4dGVuc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9TYW5kYm94RXh0ZW5zaW9uLmgKQEAgLTU4LDcgKzU4LDcgQEAgcHVibGljOgogICAgICAgICBI
YW5kbGUoKTsKICAgICAgICAgfkhhbmRsZSgpOwogCi0gICAgICAgIHZvaWQgZW5jb2RlKENvcmVJ
UEM6OkFyZ3VtZW50RW5jb2RlciopIGNvbnN0OworICAgICAgICB2b2lkIGVuY29kZShDb3JlSVBD
OjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKICAgICAgICAgc3RhdGljIGJvb2wgZGVjb2RlKENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIEhhbmRsZSYpOwogCiAgICAgcHJpdmF0ZToKQEAgLTc4
LDcgKzc4LDcgQEAgcHVibGljOgogICAgICAgICBIYW5kbGUmIG9wZXJhdG9yW10oc2l6ZV90IGkp
OwogICAgICAgICBjb25zdCBIYW5kbGUmIG9wZXJhdG9yW10oc2l6ZV90IGkpIGNvbnN0OwogICAg
ICAgICBzaXplX3Qgc2l6ZSgpIGNvbnN0OwotICAgICAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpB
cmd1bWVudEVuY29kZXIqKSBjb25zdDsKKyAgICAgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJn
dW1lbnRFbmNvZGVyJikgY29uc3Q7CiAgICAgICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqLCBIYW5kbGVBcnJheSYpOwogICAgICAgIAogICAgIHByaXZhdGU6
CkBAIC0xMTQsNyArMTE0LDcgQEAgcHJpdmF0ZToKICNpZiAhRU5BQkxFKFdFQl9QUk9DRVNTX1NB
TkRCT1gpCiBpbmxpbmUgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlOjpIYW5kbGUoKSB7IH0KIGlu
bGluZSBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU6On5IYW5kbGUoKSB7IH0KLWlubGluZSB2b2lk
IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rl
ciopIGNvbnN0IHsgfQoraW5saW5lIHZvaWQgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlOjplbmNv
ZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3QgeyB9CiBpbmxpbmUgYm9vbCBTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGU6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBI
YW5kbGUmKSB7IHJldHVybiB0cnVlOyB9CiBpbmxpbmUgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxl
QXJyYXk6OkhhbmRsZUFycmF5KCkgeyB9CiBpbmxpbmUgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxl
QXJyYXk6On5IYW5kbGVBcnJheSgpIHsgfQpAQCAtMTIyLDcgKzEyMiw3IEBAIGlubGluZSB2b2lk
IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5OjphbGxvY2F0ZShzaXplX3QpIHsgfQogaW5s
aW5lIHNpemVfdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheTo6c2l6ZSgpIGNvbnN0IHsg
cmV0dXJuIDA7IH0gICAgCiBpbmxpbmUgY29uc3QgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiBT
YW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheTo6b3BlcmF0b3JbXShzaXplX3QpIGNvbnN0IHsg
cmV0dXJuIG1fZW1wdHlIYW5kbGU7IH0KIGlubGluZSBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUm
IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5OjpvcGVyYXRvcltdKHNpemVfdCkgeyByZXR1
cm4gbV9lbXB0eUhhbmRsZTsgfQotaW5saW5lIHZvaWQgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxl
QXJyYXk6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqKSBjb25zdCB7IH0KK2lubGlu
ZSB2b2lkIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5OjplbmNvZGUoQ29yZUlQQzo6QXJn
dW1lbnRFbmNvZGVyJikgY29uc3QgeyB9CiBpbmxpbmUgYm9vbCBTYW5kYm94RXh0ZW5zaW9uOjpI
YW5kbGVBcnJheTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIEhhbmRsZUFycmF5
JikgeyByZXR1cm4gdHJ1ZTsgfQogaW5saW5lIFBhc3NSZWZQdHI8U2FuZGJveEV4dGVuc2lvbj4g
U2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlKGNvbnN0IEhhbmRsZSYpIHsgcmV0dXJuIDA7IH0KIGlu
bGluZSB2b2lkIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZShjb25zdCBTdHJpbmcmLCBU
eXBlLCBIYW5kbGUmKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZWN1
cml0eU9yaWdpbkRhdGEuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1NlY3VyaXR5T3JpZ2lu
RGF0YS5jcHAKaW5kZXggY2Y5NTUxYmZjNjkwNWE2ZDE3MDhiMTI1ZDQxNjA2MDEzYmI2MmYxNi4u
NmM3NDJhYjAxNzlhYzhmNTdiY2ZmYzU0MDUyMmM5YzYwZDcxMzc5NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL1NlY3VyaXR5T3JpZ2luRGF0YS5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL1NlY3VyaXR5T3JpZ2luRGF0YS5jcHAKQEAgLTM1LDExICszNSwxMSBAQCB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXZvaWQgU2Vj
dXJpdHlPcmlnaW5EYXRhOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVy
KSBjb25zdAordm9pZCBTZWN1cml0eU9yaWdpbkRhdGE6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVu
dEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHByb3RvY29s
KTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoaG9zdCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHBvcnQp
OworICAgIGVuY29kZXIuZW5jb2RlKHByb3RvY29sKTsKKyAgICBlbmNvZGVyLmVuY29kZShob3N0
KTsKKyAgICBlbmNvZGVyLmVuY29kZShwb3J0KTsKIH0KIAogYm9vbCBTZWN1cml0eU9yaWdpbkRh
dGE6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIFNlY3VyaXR5T3Jp
Z2luRGF0YSYgc2VjdXJpdHlPcmlnaW5EYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL1NlY3VyaXR5T3JpZ2luRGF0YS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1NlY3Vy
aXR5T3JpZ2luRGF0YS5oCmluZGV4IDY5MmE5NmUxNWM1NTczMjk3MDBiNGZjNWI2MGJiY2E3ZTI2
MTkxYTQuLjkzOTA5YmM2ZWNiMjgzYjllNmIxNTc0Y2ZiOTRkYjJlYWJiOWNiOGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZWN1cml0eU9yaWdpbkRhdGEuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvU2VjdXJpdHlPcmlnaW5EYXRhLmgKQEAgLTQwLDcgKzQwLDcgQEAg
bmFtZXNwYWNlIFdlYktpdCB7CiB0eXBlZGVmIEdlbmVyaWNDYWxsYmFjazxXS0FycmF5UmVmPiBB
cnJheUNhbGxiYWNrOwogCiBzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhIHsKLSAgICB2b2lkIGVu
Y29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqKSBjb25zdDsKKyAgICB2b2lkIGVuY29kZShD
b3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUo
Q29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgU2VjdXJpdHlPcmlnaW5EYXRhJik7CiAKICAgICAv
LyBGSVhNRSA8cmRhcjovLzkwMTgzODY+OiBXZSBzaG91bGQgYmUgc2VuZGluZyBtb3JlIHN0YXRl
IGFjcm9zcyB0aGUgd2lyZSB0aGFuIGp1c3QgdGhlIHByb3RvY29sLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL1Nlc3Npb25TdGF0ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvU2Vzc2lvblN0YXRlLmNwcAppbmRleCBiMjUyODlhMzI1MDk5M2I3YTg1NjFkZmFlNDQ4YTFj
YWE1NzgwMGVmLi43ODFlYTY2NWYxMDlkZDg2YWIxMWYzMGRhZDZmNzJlZWI4OTM5MGU4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2Vzc2lvblN0YXRlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvU2Vzc2lvblN0YXRlLmNwcApAQCAtNjQsMTAgKzY0LDEwIEBAIGJv
b2wgU2Vzc2lvblN0YXRlOjppc0VtcHR5KCkgY29uc3QKICAgICByZXR1cm4gbV9saXN0LmlzRW1w
dHkoKTsKIH0KICAgICAKLXZvaWQgU2Vzc2lvblN0YXRlOjplbmNvZGUoQ29yZUlQQzo6QXJndW1l
bnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAordm9pZCBTZXNzaW9uU3RhdGU6OmVuY29kZShDb3Jl
SVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2Rlci0+ZW5j
b2RlKG1fbGlzdCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG1fY3VycmVudEluZGV4KTsKKyAgICBl
bmNvZGVyLmVuY29kZShtX2xpc3QpOworICAgIGVuY29kZXIuZW5jb2RlKG1fY3VycmVudEluZGV4
KTsKIH0KIAogYm9vbCBTZXNzaW9uU3RhdGU6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29k
ZXIqIGRlY29kZXIsIFNlc3Npb25TdGF0ZSYgc3RhdGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvU2Vzc2lvblN0YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2Vzc2lv
blN0YXRlLmgKaW5kZXggOGFhMTg5NDhkNmRlMWRmYjFmMjQ2MDUwNTZkNDMxMzJjMzY4ZjcyZC4u
MTk0MjJhMWYwZTY4MjU1MTVhM2FhMGYwNjNhN2EwNTMxYTJmZGQyMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL1Nlc3Npb25TdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9TZXNzaW9uU3RhdGUuaApAQCAtNDUsNyArNDUsNyBAQCBwdWJsaWM6CiAKICAgICBib29s
IGlzRW1wdHkoKSBjb25zdDsKIAotICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5j
b2RlciopIGNvbnN0OworICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYp
IGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
LCBTZXNzaW9uU3RhdGUmKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9TaGFyZWFibGVCaXRtYXAuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1NoYXJl
YWJsZUJpdG1hcC5jcHAKaW5kZXggY2RlM2FhMTY1NzMwNjBiMGE4YmVjMzY1NGIwYmVjNDNjMmZk
NDAxNy4uMWZiMDcyZmRiNDBmYzhlMGU2NjJiYmRjNjhjYjJkNWJiNDdiZWEwYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1NoYXJlYWJsZUJpdG1hcC5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL1NoYXJlYWJsZUJpdG1hcC5jcHAKQEAgLTM5LDExICszOSwxMSBAQCBT
aGFyZWFibGVCaXRtYXA6OkhhbmRsZTo6SGFuZGxlKCkKIHsKIH0KIAotdm9pZCBTaGFyZWFibGVC
aXRtYXA6OkhhbmRsZTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2Rlcikg
Y29uc3QKK3ZvaWQgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGU6OmVuY29kZShDb3JlSVBDOjpBcmd1
bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG1faGFu
ZGxlKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobV9zaXplKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUo
bV9mbGFncyk7CisgICAgZW5jb2Rlci5lbmNvZGUobV9oYW5kbGUpOworICAgIGVuY29kZXIuZW5j
b2RlKG1fc2l6ZSk7CisgICAgZW5jb2Rlci5lbmNvZGUobV9mbGFncyk7CiB9CiAKIGJvb2wgU2hh
cmVhYmxlQml0bWFwOjpIYW5kbGU6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRl
Y29kZXIsIEhhbmRsZSYgaGFuZGxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L1NoYXJlYWJsZUJpdG1hcC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1NoYXJlYWJsZUJpdG1h
cC5oCmluZGV4IDJhZjIyOGU2ZmE4YmEzZjc3MzVkMjU3NTQ1NTczNzA0YThiMmVjMjAuLjhkYmYx
ZGRmZTlmZGJmMTQzZTRlZjM5Y2Q5Y2Q4NGU3NGRjNjczMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9TaGFyZWFibGVCaXRtYXAuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvU2hhcmVhYmxlQml0bWFwLmgKQEAgLTcyLDcgKzcyLDcgQEAgcHVibGljOgogCiAgICAgICAg
IGJvb2wgaXNOdWxsKCkgY29uc3QgeyByZXR1cm4gbV9oYW5kbGUuaXNOdWxsKCk7IH0KIAotICAg
ICAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqKSBjb25zdDsKKyAgICAg
ICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CiAgICAgICAg
IHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBIYW5kbGUmKTsK
IAogICAgIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVh
YmxlU3VyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxlU3VyZmFjZS5j
cHAKaW5kZXggZjcwNzY5ODk1M2ViMzk0Y2I0MzJiZGZiZGI3MTFiNTE0YWJkZTE2MC4uYmY4ZmEx
MDY5OTM1Yzk2Njc0NTY2MmYwZjEyN2ZkYjI5NDdjNjU4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL1NoYXJlYWJsZVN1cmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9TaGFyZWFibGVTdXJmYWNlLmNwcApAQCAtMzcsMTYgKzM3LDE2IEBAIFNoYXJlYWJsZVN1
cmZhY2U6OkhhbmRsZTo6SGFuZGxlKCkKIHsKIH0KIAotdm9pZCBTaGFyZWFibGVTdXJmYWNlOjpI
YW5kbGU6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Cit2
b2lkIFNoYXJlYWJsZVN1cmZhY2U6OkhhbmRsZTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5j
b2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyLT5lbmNvZGUobV9zaXplKTsKLSAg
ICBlbmNvZGVyLT5lbmNvZGUobV9mbGFncyk7CisgICAgZW5jb2Rlci5lbmNvZGUobV9zaXplKTsK
KyAgICBlbmNvZGVyLmVuY29kZShtX2ZsYWdzKTsKICNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkK
LSAgICBlbmNvZGVyLT5lbmNvZGUobV9ncmFwaGljc1N1cmZhY2VUb2tlbik7CisgICAgZW5jb2Rl
ci5lbmNvZGUobV9ncmFwaGljc1N1cmZhY2VUb2tlbik7CiAgICAgaWYgKG1fZ3JhcGhpY3NTdXJm
YWNlVG9rZW4uaXNWYWxpZCgpKQogICAgICAgICByZXR1cm47CiAjZW5kaWYKLSAgICBlbmNvZGVy
LT5lbmNvZGUobV9iaXRtYXBIYW5kbGUpOworICAgIGVuY29kZXIuZW5jb2RlKG1fYml0bWFwSGFu
ZGxlKTsKIH0KIAogYm9vbCBTaGFyZWFibGVTdXJmYWNlOjpIYW5kbGU6OmRlY29kZShDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIEhhbmRsZSYgaGFuZGxlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL1NoYXJlYWJsZVN1cmZhY2UuaCBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9TaGFyZWFibGVTdXJmYWNlLmgKaW5kZXggNTk4ZGM1OTExYzc4YmZjNjExOTg1NTY0
NjU5ZWVmZWI4MDEwODAwYi4uZTBlN2EzOWYyOGE3NjcxNTVhNGU5YmZmZGNlOTdmYTQ1OWI3ZGY0
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1NoYXJlYWJsZVN1cmZhY2UuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxlU3VyZmFjZS5oCkBAIC01MSw3ICs1
MSw3IEBAIHB1YmxpYzoKIAogICAgICAgICBib29sIGlzTnVsbCgpIGNvbnN0OwogCi0gICAgICAg
IHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciopIGNvbnN0OworICAgICAgICB2
b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKICAgICAgICAgc3Rh
dGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIEhhbmRsZSYpOwogCiAj
aWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvU2hhcmVkV29ya2VyUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvU2hhcmVkV29ya2VyUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5k
ZXggYjY2OTMwN2ViYzIzMDZmZjk3YjgwZTQ5NzNjY2VjMTc5NGM5YmFmMy4uOTk0MWIwNjE1YzIx
ZTg4MjVlODgwZjJiNjVlYzZkZjJhNWFhMjcwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL1NoYXJlZFdvcmtlclByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWRXb3JrZXJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmNwcApAQCAtMzYsMTMgKzM2LDEzIEBAIFNoYXJlZFdvcmtlclByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnM6OlNoYXJlZFdvcmtlclByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMoKQogewogfQogCi12
b2lkIFNoYXJlZFdvcmtlclByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShDb3JlSVBD
OjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Cit2b2lkIFNoYXJlZFdvcmtlclByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVu
Y29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG1pbmltdW1MaWZldGltZSk7Ci0g
ICAgZW5jb2Rlci0+ZW5jb2RlKHRlcm1pbmF0aW9uVGltZW91dCk7CisgICAgZW5jb2Rlci5lbmNv
ZGUobWluaW11bUxpZmV0aW1lKTsKKyAgICBlbmNvZGVyLmVuY29kZSh0ZXJtaW5hdGlvblRpbWVv
dXQpOwogCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIGVuY29kZXItPmVuY29kZShwYXJlbnRQcm9j
ZXNzTmFtZSk7CisgICAgZW5jb2Rlci5lbmNvZGUocGFyZW50UHJvY2Vzc05hbWUpOwogI2VuZGlm
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWRXb3JrZXJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVkV29y
a2VyUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IDNmZWY5NzUzNWIyNDQ2NWIwOTQ0
MjRhOTUyNTkzY2ZjYjhjYzM4MjEuLmNjZDI1N2ViOWUzYjMzMWI5NTc5ZmUzZjgwMjc2MWIwOTQ0
YzU4ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWRXb3JrZXJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1NoYXJl
ZFdvcmtlclByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtNDQsNyArNDQsNyBAQCBuYW1l
c3BhY2UgV2ViS2l0IHsKIHN0cnVjdCBTaGFyZWRXb3JrZXJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzIHsKICAgICBTaGFyZWRXb3JrZXJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzKCk7CiAKLSAg
ICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqKSBjb25zdDsKKyAgICB2b2lk
IGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKICAgICBzdGF0aWMgYm9v
bCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgU2hhcmVkV29ya2VyUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycyYpOwogCiAgICAgZG91YmxlIG1pbmltdW1MaWZldGltZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TdGF0aXN0aWNzRGF0YS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvU3RhdGlzdGljc0RhdGEuY3BwCmluZGV4IDU5ZmVmN2E3Nzg5MmRmNjhk
NzI3MzNhNjAwYzVlY2Y2NjU4YWQzNjIuLjY0ZGIxN2ExM2U3NjE0NzQ5NDc4MzBmYjNlZjEwMTY4
Mjk0YjI1OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TdGF0aXN0aWNzRGF0
YS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1N0YXRpc3RpY3NEYXRhLmNwcApAQCAt
MzAsMTIgKzMwLDEyIEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi12b2lkIFN0YXRpc3RpY3NE
YXRhOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAordm9p
ZCBTdGF0aXN0aWNzRGF0YTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2Rl
cikgY29uc3QKIHsKLSAgICBlbmNvZGVyLT5lbmNvZGUoc3RhdGlzdGljc051bWJlcnMpOwotICAg
IGVuY29kZXItPmVuY29kZShqYXZhU2NyaXB0UHJvdGVjdGVkT2JqZWN0VHlwZUNvdW50cyk7Ci0g
ICAgZW5jb2Rlci0+ZW5jb2RlKGphdmFTY3JpcHRPYmplY3RUeXBlQ291bnRzKTsKLSAgICBlbmNv
ZGVyLT5lbmNvZGUod2ViQ29yZUNhY2hlU3RhdGlzdGljcyk7CisgICAgZW5jb2Rlci5lbmNvZGUo
c3RhdGlzdGljc051bWJlcnMpOworICAgIGVuY29kZXIuZW5jb2RlKGphdmFTY3JpcHRQcm90ZWN0
ZWRPYmplY3RUeXBlQ291bnRzKTsKKyAgICBlbmNvZGVyLmVuY29kZShqYXZhU2NyaXB0T2JqZWN0
VHlwZUNvdW50cyk7CisgICAgZW5jb2Rlci5lbmNvZGUod2ViQ29yZUNhY2hlU3RhdGlzdGljcyk7
CiB9CiAKIGJvb2wgU3RhdGlzdGljc0RhdGE6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29k
ZXIqIGRlY29kZXIsIFN0YXRpc3RpY3NEYXRhJiBzdGF0aXN0aWNzRGF0YSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TdGF0aXN0aWNzRGF0YS5oIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL1N0YXRpc3RpY3NEYXRhLmgKaW5kZXggMmM4MmMyOGJkODM5NTI5YTAzYzA5ZjMyZDQ0
NmNiNGMxOGFhZWZkOC4uNzMxNWVkMjUwOGYxNTdmNTZhODZlNWM2M2EyMjJmYTExNGVkZWY1MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1N0YXRpc3RpY3NEYXRhLmgKKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL1N0YXRpc3RpY3NEYXRhLmgKQEAgLTM2LDcgKzM2LDcgQEAK
IG5hbWVzcGFjZSBXZWJLaXQgewogCiBzdHJ1Y3QgU3RhdGlzdGljc0RhdGEgewotICAgIHZvaWQg
ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciopIGNvbnN0OworICAgIHZvaWQgZW5jb2Rl
KENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29k
ZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBTdGF0aXN0aWNzRGF0YSYpOwogICAgIAogICAg
IEhhc2hNYXA8U3RyaW5nLCB1aW50NjRfdD4gc3RhdGlzdGljc051bWJlcnM7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU3RyaW5nUGFpclZlY3Rvci5oIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1N0cmluZ1BhaXJWZWN0b3IuaAppbmRleCBjZTJkYTRhMDliMzRmMzE1NDc2NWQ4
MGZjMWRjODg1OGYxMDg0ZmE1Li43MGZlYTk2ZmZkMjRiYjBlOThhMGEyZTgzM2U4NzY4ZGI3MWNj
MzdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU3RyaW5nUGFpclZlY3Rvci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TdHJpbmdQYWlyVmVjdG9yLmgKQEAgLTQ1LDkg
KzQ1LDkgQEAgcHVibGljOgogICAgICAgICBtX3N0cmluZ1BhaXJWZWN0b3Iuc3dhcChzdHJpbmdQ
YWlyVmVjdG9yKTsKICAgICB9CiAKLSAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVu
Y29kZXIqIGVuY29kZXIpIGNvbnN0CisgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIHsKLSAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKG1f
c3RyaW5nUGFpclZlY3Rvcik7CisgICAgICAgIGVuY29kZXIuZW5jb2RlKG1fc3RyaW5nUGFpclZl
Y3Rvcik7CiAgICAgfQogCiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciogZGVjb2RlciwgU3RyaW5nUGFpclZlY3RvciYgc3RyaW5nUGFpclZlY3RvcikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TdXJmYWNlVXBkYXRlSW5mby5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvU3VyZmFjZVVwZGF0ZUluZm8uY3BwCmluZGV4IDE1MzMzNzkz
YzA5ODY2NjUwMTliN2E3ZGFmZWQyMTRkNDBmOGUwNjYuLmZkYWMyMTdjNTViOTU3NmQxZWExMWRh
MzQ3ZDkwM2Q1OTA1NzQ0ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TdXJm
YWNlVXBkYXRlSW5mby5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1N1cmZhY2VVcGRh
dGVJbmZvLmNwcApAQCAtMjQsMTIgKzI0LDEyIEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi12
b2lkIFN1cmZhY2VVcGRhdGVJbmZvOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBl
bmNvZGVyKSBjb25zdAordm9pZCBTdXJmYWNlVXBkYXRlSW5mbzo6ZW5jb2RlKENvcmVJUEM6OkFy
Z3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyLT5lbmNvZGUodXBk
YXRlUmVjdCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHNjYWxlRmFjdG9yKTsKLSAgICBlbmNvZGVy
LT5lbmNvZGUoc3VyZmFjZUhhbmRsZSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHN1cmZhY2VPZmZz
ZXQpOworICAgIGVuY29kZXIuZW5jb2RlKHVwZGF0ZVJlY3QpOworICAgIGVuY29kZXIuZW5jb2Rl
KHNjYWxlRmFjdG9yKTsKKyAgICBlbmNvZGVyLmVuY29kZShzdXJmYWNlSGFuZGxlKTsKKyAgICBl
bmNvZGVyLmVuY29kZShzdXJmYWNlT2Zmc2V0KTsKIH0KIAogYm9vbCBTdXJmYWNlVXBkYXRlSW5m
bzo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgU3VyZmFjZVVwZGF0
ZUluZm8mIHJlc3VsdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TdXJmYWNl
VXBkYXRlSW5mby5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1N1cmZhY2VVcGRhdGVJbmZvLmgK
aW5kZXggMDFkNjBkMjQyNWQwNGFlMGExMGQ1MzM0Mzg4YzA4ODlmM2VjYjJhYy4uM2NkOWNlM2M3
MTU1YzkwNzcxN2UwZGFlYTNkMTZlZWFjNjFhOTYyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL1N1cmZhY2VVcGRhdGVJbmZvLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L1N1cmZhY2VVcGRhdGVJbmZvLmgKQEAgLTM3LDcgKzM3LDcgQEAgY2xhc3MgU3VyZmFjZVVwZGF0
ZUluZm8gewogcHVibGljOgogICAgIFN1cmZhY2VVcGRhdGVJbmZvKCkgeyB9CiAKLSAgICB2b2lk
IGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqKSBjb25zdDsKKyAgICB2b2lkIGVuY29k
ZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKICAgICBzdGF0aWMgYm9vbCBkZWNv
ZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgU3VyZmFjZVVwZGF0ZUluZm8mKTsKIAogICAg
IC8vIFRoZSByZWN0IHRvIGJlIHVwZGF0ZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvVXBkYXRlSW5mby5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVXBkYXRlSW5mby5j
cHAKaW5kZXggNWJiMTg5NTk3YmIwOWMzMTJmNmFlNDdmNzc2ZDc5NWNmMzI5MjFkYy4uZjc1YWQx
YjA3MzE4NzEwYTkzM2ZlZmU0OWVmMzk1ZjVlM2YzMzlmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL1VwZGF0ZUluZm8uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9V
cGRhdGVJbmZvLmNwcApAQCAtMzAsMTcgKzMwLDE3IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewog
Ci12b2lkIFVwZGF0ZUluZm86OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29k
ZXIpIGNvbnN0Cit2b2lkIFVwZGF0ZUluZm86OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29k
ZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHZpZXdTaXplKTsKLSAg
ICBlbmNvZGVyLT5lbmNvZGUoZGV2aWNlU2NhbGVGYWN0b3IpOwotICAgIGVuY29kZXItPmVuY29k
ZShzY3JvbGxSZWN0KTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoc2Nyb2xsT2Zmc2V0KTsKLSAgICBl
bmNvZGVyLT5lbmNvZGUodXBkYXRlUmVjdEJvdW5kcyk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHVw
ZGF0ZVJlY3RzKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUodXBkYXRlU2NhbGVGYWN0b3IpOwotICAg
IGVuY29kZXItPmVuY29kZShiaXRtYXBIYW5kbGUpOwotICAgIGVuY29kZXItPmVuY29kZShiaXRt
YXBPZmZzZXQpOworICAgIGVuY29kZXIuZW5jb2RlKHZpZXdTaXplKTsKKyAgICBlbmNvZGVyLmVu
Y29kZShkZXZpY2VTY2FsZUZhY3Rvcik7CisgICAgZW5jb2Rlci5lbmNvZGUoc2Nyb2xsUmVjdCk7
CisgICAgZW5jb2Rlci5lbmNvZGUoc2Nyb2xsT2Zmc2V0KTsKKyAgICBlbmNvZGVyLmVuY29kZSh1
cGRhdGVSZWN0Qm91bmRzKTsKKyAgICBlbmNvZGVyLmVuY29kZSh1cGRhdGVSZWN0cyk7CisgICAg
ZW5jb2Rlci5lbmNvZGUodXBkYXRlU2NhbGVGYWN0b3IpOworICAgIGVuY29kZXIuZW5jb2RlKGJp
dG1hcEhhbmRsZSk7CisgICAgZW5jb2Rlci5lbmNvZGUoYml0bWFwT2Zmc2V0KTsKIH0KIAogYm9v
bCBVcGRhdGVJbmZvOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBV
cGRhdGVJbmZvJiByZXN1bHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVXBk
YXRlSW5mby5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1VwZGF0ZUluZm8uaAppbmRleCBlM2E4
ZGUyNzg0NzVlOTRjNGNlMGIwYzQ1YzE5MjcyODY3NDhkY2YzLi5jMTFhYTM1NDI4NjFkYjYwYWJj
ZjM5MjlhZTdiNWVlOWMwMTkxMzY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
VXBkYXRlSW5mby5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9VcGRhdGVJbmZvLmgKQEAg
LTQzLDcgKzQzLDcgQEAgY2xhc3MgVXBkYXRlSW5mbyB7CiBwdWJsaWM6CiAgICAgVXBkYXRlSW5m
bygpIHsgfQogCi0gICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKikgY29u
c3Q7CisgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CiAg
ICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIFVwZGF0ZUlu
Zm8mKTsKIAogICAgIC8vIFRoZSBzaXplIG9mIHRoZSB3ZWIgdmlldy4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9Vc2VyTWVzc2FnZUNvZGVycy5oIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL1VzZXJNZXNzYWdlQ29kZXJzLmgKaW5kZXggOWQ4YWM1YzZiOGY3MmRhMGY4YjA2ZjQ3
YWNjZDYwYjVlZTVjNThjNS4uOWVmZjJjOTUzYjBlMmU4YmY2NGY5OGMyMzc5ZTE2ZjQ0N2FiYTk2
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1VzZXJNZXNzYWdlQ29kZXJzLmgK
KysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1VzZXJNZXNzYWdlQ29kZXJzLmgKQEAgLTY3LDEx
OSArNjcsMTE5IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogdGVtcGxhdGU8dHlwZW5hbWUgT3duZXI+
CiBjbGFzcyBVc2VyTWVzc2FnZUVuY29kZXIgewogcHVibGljOgotICAgIGJvb2wgYmFzZUVuY29k
ZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIsIEFQSU9iamVjdDo6VHlwZSYgdHlw
ZSkgY29uc3QgCisgICAgYm9vbCBiYXNlRW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYg
ZW5jb2RlciwgQVBJT2JqZWN0OjpUeXBlJiB0eXBlKSBjb25zdAogICAgIHsKICAgICAgICAgaWYg
KCFtX3Jvb3QpIHsKLSAgICAgICAgICAgIGVuY29kZXItPmVuY29kZShzdGF0aWNfY2FzdDx1aW50
MzJfdD4oQVBJT2JqZWN0OjpUeXBlTnVsbCkpOworICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGUo
c3RhdGljX2Nhc3Q8dWludDMyX3Q+KEFQSU9iamVjdDo6VHlwZU51bGwpKTsKICAgICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgICB9CiAKICAgICAgICAgdHlwZSA9IG1fcm9vdC0+dHlwZSgp
OwotICAgICAgICBlbmNvZGVyLT5lbmNvZGUoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHR5cGUpKTsK
KyAgICAgICAgZW5jb2Rlci5lbmNvZGUoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHR5cGUpKTsKIAog
ICAgICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICAgICAgY2FzZSBBUElPYmplY3Q6OlR5cGVBcnJh
eTogewogICAgICAgICAgICAgSW1tdXRhYmxlQXJyYXkqIGFycmF5ID0gc3RhdGljX2Nhc3Q8SW1t
dXRhYmxlQXJyYXkqPihtX3Jvb3QpOwotICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKHN0YXRp
Y19jYXN0PHVpbnQ2NF90PihhcnJheS0+c2l6ZSgpKSk7CisgICAgICAgICAgICBlbmNvZGVyLmVu
Y29kZShzdGF0aWNfY2FzdDx1aW50NjRfdD4oYXJyYXktPnNpemUoKSkpOwogICAgICAgICAgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBhcnJheS0+c2l6ZSgpOyArK2kpCi0gICAgICAgICAgICAg
ICAgZW5jb2Rlci0+ZW5jb2RlKE93bmVyKGFycmF5LT5hdChpKSkpOworICAgICAgICAgICAgICAg
IGVuY29kZXIuZW5jb2RlKE93bmVyKGFycmF5LT5hdChpKSkpOwogICAgICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBBUElPYmplY3Q6OlR5cGVEaWN0aW9uYXJ5
OiB7CiAgICAgICAgICAgICBJbW11dGFibGVEaWN0aW9uYXJ5KiBkaWN0aW9uYXJ5ID0gc3RhdGlj
X2Nhc3Q8SW1tdXRhYmxlRGljdGlvbmFyeSo+KG1fcm9vdCk7CiAgICAgICAgICAgICBjb25zdCBJ
bW11dGFibGVEaWN0aW9uYXJ5OjpNYXBUeXBlJiBtYXAgPSBkaWN0aW9uYXJ5LT5tYXAoKTsKLSAg
ICAgICAgICAgIGVuY29kZXItPmVuY29kZShzdGF0aWNfY2FzdDx1aW50NjRfdD4obWFwLnNpemUo
KSkpOworICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGUoc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG1h
cC5zaXplKCkpKTsKIAogICAgICAgICAgICAgSW1tdXRhYmxlRGljdGlvbmFyeTo6TWFwVHlwZTo6
Y29uc3RfaXRlcmF0b3IgaXQgPSBtYXAuYmVnaW4oKTsKICAgICAgICAgICAgIEltbXV0YWJsZURp
Y3Rpb25hcnk6Ok1hcFR5cGU6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IG1hcC5lbmQoKTsKICAgICAg
ICAgICAgIGZvciAoOyBpdCAhPSBlbmQ7ICsraXQpIHsKLSAgICAgICAgICAgICAgICBlbmNvZGVy
LT5lbmNvZGUoaXQtPmtleSk7Ci0gICAgICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKE93bmVy
KGl0LT52YWx1ZS5nZXQoKSkpOworICAgICAgICAgICAgICAgIGVuY29kZXIuZW5jb2RlKGl0LT5r
ZXkpOworICAgICAgICAgICAgICAgIGVuY29kZXIuZW5jb2RlKE93bmVyKGl0LT52YWx1ZS5nZXQo
KSkpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0K
ICAgICAgICAgY2FzZSBBUElPYmplY3Q6OlR5cGVTdHJpbmc6IHsKICAgICAgICAgICAgIFdlYlN0
cmluZyogc3RyaW5nID0gc3RhdGljX2Nhc3Q8V2ViU3RyaW5nKj4obV9yb290KTsKLSAgICAgICAg
ICAgIGVuY29kZXItPmVuY29kZShzdHJpbmctPnN0cmluZygpKTsKKyAgICAgICAgICAgIGVuY29k
ZXIuZW5jb2RlKHN0cmluZy0+c3RyaW5nKCkpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgICAgIH0KICAgICAgICAgY2FzZSBBUElPYmplY3Q6OlR5cGVTZXJpYWxpemVkU2NyaXB0VmFs
dWU6IHsKICAgICAgICAgICAgIFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSogc2NyaXB0VmFsdWUg
PSBzdGF0aWNfY2FzdDxXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUqPihtX3Jvb3QpOwotICAgICAg
ICAgICAgZW5jb2Rlci0+ZW5jb2RlVmFyaWFibGVMZW5ndGhCeXRlQXJyYXkoc2NyaXB0VmFsdWUt
PmRhdGFSZWZlcmVuY2UoKSk7CisgICAgICAgICAgICBlbmNvZGVyLmVuY29kZVZhcmlhYmxlTGVu
Z3RoQnl0ZUFycmF5KHNjcmlwdFZhbHVlLT5kYXRhUmVmZXJlbmNlKCkpOwogICAgICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBBUElPYmplY3Q6OlR5cGVCb29s
ZWFuOiB7CiAgICAgICAgICAgICBXZWJCb29sZWFuKiBib29sZWFuT2JqZWN0ID0gc3RhdGljX2Nh
c3Q8V2ViQm9vbGVhbio+KG1fcm9vdCk7Ci0gICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGUoYm9v
bGVhbk9iamVjdC0+dmFsdWUoKSk7CisgICAgICAgICAgICBlbmNvZGVyLmVuY29kZShib29sZWFu
T2JqZWN0LT52YWx1ZSgpKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAg
ICAgICAgIGNhc2UgQVBJT2JqZWN0OjpUeXBlRG91YmxlOiB7CiAgICAgICAgICAgICBXZWJEb3Vi
bGUqIGRvdWJsZU9iamVjdCA9IHN0YXRpY19jYXN0PFdlYkRvdWJsZSo+KG1fcm9vdCk7Ci0gICAg
ICAgICAgICBlbmNvZGVyLT5lbmNvZGUoZG91YmxlT2JqZWN0LT52YWx1ZSgpKTsKKyAgICAgICAg
ICAgIGVuY29kZXIuZW5jb2RlKGRvdWJsZU9iamVjdC0+dmFsdWUoKSk7CiAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgICAgICBjYXNlIEFQSU9iamVjdDo6VHlwZVVJbnQ2
NDogewogICAgICAgICAgICAgV2ViVUludDY0KiB1aW50NjRPYmplY3QgPSBzdGF0aWNfY2FzdDxX
ZWJVSW50NjQqPihtX3Jvb3QpOwotICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKHVpbnQ2NE9i
amVjdC0+dmFsdWUoKSk7CisgICAgICAgICAgICBlbmNvZGVyLmVuY29kZSh1aW50NjRPYmplY3Qt
PnZhbHVlKCkpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICAgICAg
Y2FzZSBBUElPYmplY3Q6OlR5cGVQb2ludDogewogICAgICAgICAgICAgV2ViUG9pbnQqIHBvaW50
T2JqZWN0ID0gc3RhdGljX2Nhc3Q8V2ViUG9pbnQqPihtX3Jvb3QpOwotICAgICAgICAgICAgZW5j
b2Rlci0+ZW5jb2RlKHBvaW50T2JqZWN0LT5wb2ludCgpLngpOwotICAgICAgICAgICAgZW5jb2Rl
ci0+ZW5jb2RlKHBvaW50T2JqZWN0LT5wb2ludCgpLnkpOworICAgICAgICAgICAgZW5jb2Rlci5l
bmNvZGUocG9pbnRPYmplY3QtPnBvaW50KCkueCk7CisgICAgICAgICAgICBlbmNvZGVyLmVuY29k
ZShwb2ludE9iamVjdC0+cG9pbnQoKS55KTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAg
ICAgICB9CiAgICAgICAgIGNhc2UgQVBJT2JqZWN0OjpUeXBlU2l6ZTogewogICAgICAgICAgICAg
V2ViU2l6ZSogc2l6ZU9iamVjdCA9IHN0YXRpY19jYXN0PFdlYlNpemUqPihtX3Jvb3QpOwotICAg
ICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKHNpemVPYmplY3QtPnNpemUoKS53aWR0aCk7Ci0gICAg
ICAgICAgICBlbmNvZGVyLT5lbmNvZGUoc2l6ZU9iamVjdC0+c2l6ZSgpLmhlaWdodCk7CisgICAg
ICAgICAgICBlbmNvZGVyLmVuY29kZShzaXplT2JqZWN0LT5zaXplKCkud2lkdGgpOworICAgICAg
ICAgICAgZW5jb2Rlci5lbmNvZGUoc2l6ZU9iamVjdC0+c2l6ZSgpLmhlaWdodCk7CiAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgICAgICBjYXNlIEFQSU9iamVjdDo6VHlw
ZVJlY3Q6IHsKICAgICAgICAgICAgIFdlYlJlY3QqIHJlY3RPYmplY3QgPSBzdGF0aWNfY2FzdDxX
ZWJSZWN0Kj4obV9yb290KTsKLSAgICAgICAgICAgIGVuY29kZXItPmVuY29kZShyZWN0T2JqZWN0
LT5yZWN0KCkub3JpZ2luLngpOwotICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKHJlY3RPYmpl
Y3QtPnJlY3QoKS5vcmlnaW4ueSk7Ci0gICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGUocmVjdE9i
amVjdC0+cmVjdCgpLnNpemUud2lkdGgpOwotICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKHJl
Y3RPYmplY3QtPnJlY3QoKS5zaXplLmhlaWdodCk7CisgICAgICAgICAgICBlbmNvZGVyLmVuY29k
ZShyZWN0T2JqZWN0LT5yZWN0KCkub3JpZ2luLngpOworICAgICAgICAgICAgZW5jb2Rlci5lbmNv
ZGUocmVjdE9iamVjdC0+cmVjdCgpLm9yaWdpbi55KTsKKyAgICAgICAgICAgIGVuY29kZXIuZW5j
b2RlKHJlY3RPYmplY3QtPnJlY3QoKS5zaXplLndpZHRoKTsKKyAgICAgICAgICAgIGVuY29kZXIu
ZW5jb2RlKHJlY3RPYmplY3QtPnJlY3QoKS5zaXplLmhlaWdodCk7CiAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICAgICAgfQogICAgICAgICBjYXNlIEFQSU9iamVjdDo6VHlwZVJlbmRlckxh
eWVyOiB7CiAgICAgICAgICAgICBXZWJSZW5kZXJMYXllciogcmVuZGVyTGF5ZXIgPSBzdGF0aWNf
Y2FzdDxXZWJSZW5kZXJMYXllcio+KG1fcm9vdCk7Ci0gICAgICAgICAgICBlbmNvZGVyLT5lbmNv
ZGUoT3duZXIocmVuZGVyTGF5ZXItPnJlbmRlcmVyKCkpKTsKLSAgICAgICAgICAgIGVuY29kZXIt
PmVuY29kZShyZW5kZXJMYXllci0+aXNSZWZsZWN0aW9uKCkpOwotICAgICAgICAgICAgZW5jb2Rl
ci0+ZW5jb2RlKHJlbmRlckxheWVyLT5pc0NsaXBwaW5nKCkpOwotICAgICAgICAgICAgZW5jb2Rl
ci0+ZW5jb2RlKHJlbmRlckxheWVyLT5pc0NsaXBwZWQoKSk7Ci0gICAgICAgICAgICBlbmNvZGVy
LT5lbmNvZGUoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHJlbmRlckxheWVyLT5jb21wb3NpdGluZ0xh
eWVyVHlwZSgpKSk7Ci0gICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGUocmVuZGVyTGF5ZXItPmFi
c29sdXRlQm91bmRpbmdCb3goKSk7Ci0gICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGUoT3duZXIo
cmVuZGVyTGF5ZXItPm5lZ2F0aXZlWk9yZGVyTGlzdCgpKSk7Ci0gICAgICAgICAgICBlbmNvZGVy
LT5lbmNvZGUoT3duZXIocmVuZGVyTGF5ZXItPm5vcm1hbEZsb3dMaXN0KCkpKTsKLSAgICAgICAg
ICAgIGVuY29kZXItPmVuY29kZShPd25lcihyZW5kZXJMYXllci0+cG9zaXRpdmVaT3JkZXJMaXN0
KCkpKTsKKyAgICAgICAgICAgIGVuY29kZXIuZW5jb2RlKE93bmVyKHJlbmRlckxheWVyLT5yZW5k
ZXJlcigpKSk7CisgICAgICAgICAgICBlbmNvZGVyLmVuY29kZShyZW5kZXJMYXllci0+aXNSZWZs
ZWN0aW9uKCkpOworICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGUocmVuZGVyTGF5ZXItPmlzQ2xp
cHBpbmcoKSk7CisgICAgICAgICAgICBlbmNvZGVyLmVuY29kZShyZW5kZXJMYXllci0+aXNDbGlw
cGVkKCkpOworICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGUoc3RhdGljX2Nhc3Q8dWludDMyX3Q+
KHJlbmRlckxheWVyLT5jb21wb3NpdGluZ0xheWVyVHlwZSgpKSk7CisgICAgICAgICAgICBlbmNv
ZGVyLmVuY29kZShyZW5kZXJMYXllci0+YWJzb2x1dGVCb3VuZGluZ0JveCgpKTsKKyAgICAgICAg
ICAgIGVuY29kZXIuZW5jb2RlKE93bmVyKHJlbmRlckxheWVyLT5uZWdhdGl2ZVpPcmRlckxpc3Qo
KSkpOworICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGUoT3duZXIocmVuZGVyTGF5ZXItPm5vcm1h
bEZsb3dMaXN0KCkpKTsKKyAgICAgICAgICAgIGVuY29kZXIuZW5jb2RlKE93bmVyKHJlbmRlckxh
eWVyLT5wb3NpdGl2ZVpPcmRlckxpc3QoKSkpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgICAgIH0KICAgICAgICAgY2FzZSBBUElPYmplY3Q6OlR5cGVSZW5kZXJPYmplY3Q6IHsKICAg
ICAgICAgICAgIFdlYlJlbmRlck9iamVjdCogcmVuZGVyT2JqZWN0ID0gc3RhdGljX2Nhc3Q8V2Vi
UmVuZGVyT2JqZWN0Kj4obV9yb290KTsKLSAgICAgICAgICAgIGVuY29kZXItPmVuY29kZShyZW5k
ZXJPYmplY3QtPm5hbWUoKSk7Ci0gICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGUocmVuZGVyT2Jq
ZWN0LT5lbGVtZW50VGFnTmFtZSgpKTsKLSAgICAgICAgICAgIGVuY29kZXItPmVuY29kZShyZW5k
ZXJPYmplY3QtPmVsZW1lbnRJRCgpKTsKLSAgICAgICAgICAgIGVuY29kZXItPmVuY29kZShPd25l
cihyZW5kZXJPYmplY3QtPmVsZW1lbnRDbGFzc05hbWVzKCkpKTsKLSAgICAgICAgICAgIGVuY29k
ZXItPmVuY29kZShyZW5kZXJPYmplY3QtPmFic29sdXRlUG9zaXRpb24oKSk7Ci0gICAgICAgICAg
ICBlbmNvZGVyLT5lbmNvZGUocmVuZGVyT2JqZWN0LT5mcmFtZVJlY3QoKSk7Ci0gICAgICAgICAg
ICBlbmNvZGVyLT5lbmNvZGUoT3duZXIocmVuZGVyT2JqZWN0LT5jaGlsZHJlbigpLmdldCgpKSk7
CisgICAgICAgICAgICBlbmNvZGVyLmVuY29kZShyZW5kZXJPYmplY3QtPm5hbWUoKSk7CisgICAg
ICAgICAgICBlbmNvZGVyLmVuY29kZShyZW5kZXJPYmplY3QtPmVsZW1lbnRUYWdOYW1lKCkpOwor
ICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGUocmVuZGVyT2JqZWN0LT5lbGVtZW50SUQoKSk7Cisg
ICAgICAgICAgICBlbmNvZGVyLmVuY29kZShPd25lcihyZW5kZXJPYmplY3QtPmVsZW1lbnRDbGFz
c05hbWVzKCkpKTsKKyAgICAgICAgICAgIGVuY29kZXIuZW5jb2RlKHJlbmRlck9iamVjdC0+YWJz
b2x1dGVQb3NpdGlvbigpKTsKKyAgICAgICAgICAgIGVuY29kZXIuZW5jb2RlKHJlbmRlck9iamVj
dC0+ZnJhbWVSZWN0KCkpOworICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGUoT3duZXIocmVuZGVy
T2JqZWN0LT5jaGlsZHJlbigpLmdldCgpKSk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICAgICAgfQogICAgICAgICBjYXNlIEFQSU9iamVjdDo6VHlwZVVSTDogewogICAgICAgICAgICAg
V2ViVVJMKiB1cmxPYmplY3QgPSBzdGF0aWNfY2FzdDxXZWJVUkwqPihtX3Jvb3QpOwotICAgICAg
ICAgICAgZW5jb2Rlci0+ZW5jb2RlKHVybE9iamVjdC0+c3RyaW5nKCkpOworICAgICAgICAgICAg
ZW5jb2Rlci5lbmNvZGUodXJsT2JqZWN0LT5zdHJpbmcoKSk7CiAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICAgICAgfQogICAgICAgICBjYXNlIEFQSU9iamVjdDo6VHlwZVVSTFJlcXVlc3Q6
IHsKICAgICAgICAgICAgIFdlYlVSTFJlcXVlc3QqIHVybFJlcXVlc3RPYmplY3QgPSBzdGF0aWNf
Y2FzdDxXZWJVUkxSZXF1ZXN0Kj4obV9yb290KTsKLSAgICAgICAgICAgIGVuY29kZXItPmVuY29k
ZSh1cmxSZXF1ZXN0T2JqZWN0LT5yZXNvdXJjZVJlcXVlc3QoKSk7CisgICAgICAgICAgICBlbmNv
ZGVyLmVuY29kZSh1cmxSZXF1ZXN0T2JqZWN0LT5yZXNvdXJjZVJlcXVlc3QoKSk7CiAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgICAgICBjYXNlIEFQSU9iamVjdDo6VHlw
ZVVzZXJDb250ZW50VVJMUGF0dGVybjogewogICAgICAgICAgICAgV2ViVXNlckNvbnRlbnRVUkxQ
YXR0ZXJuKiB1cmxQYXR0ZXJuID0gc3RhdGljX2Nhc3Q8V2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJu
Kj4obV9yb290KTsKLSAgICAgICAgICAgIGVuY29kZXItPmVuY29kZSh1cmxQYXR0ZXJuLT5wYXR0
ZXJuU3RyaW5nKCkpOworICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGUodXJsUGF0dGVybi0+cGF0
dGVyblN0cmluZygpKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAg
ICAgIGNhc2UgQVBJT2JqZWN0OjpUeXBlSW1hZ2U6IHsKQEAgLTE4OSwyNCArMTg5LDI0IEBAIHB1
YmxpYzoKICAgICAgICAgICAgIEFTU0VSVCghaW1hZ2UtPmJpdG1hcCgpIHx8IGltYWdlLT5iaXRt
YXAoKS0+aXNCYWNrZWRCeVNoYXJlZE1lbW9yeSgpKTsgICAgICAgICAgICAKICAgICAgICAgICAg
IGlmICghaW1hZ2UtPmJpdG1hcCgpIHx8ICFpbWFnZS0+Yml0bWFwKCktPmlzQmFja2VkQnlTaGFy
ZWRNZW1vcnkoKSB8fCAhaW1hZ2UtPmJpdG1hcCgpLT5jcmVhdGVIYW5kbGUoaGFuZGxlKSkgewog
ICAgICAgICAgICAgICAgIC8vIEluaXRpYWwgZmFsc2UgaW5kaWNhdGVzIG5vIGFsbG9jYXRlZCBi
aXRtYXAgb3IgaXMgbm90IHNoYXJlYWJsZS4KLSAgICAgICAgICAgICAgICBlbmNvZGVyLT5lbmNv
ZGUoZmFsc2UpOworICAgICAgICAgICAgICAgIGVuY29kZXIuZW5jb2RlKGZhbHNlKTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgLy8g
SW5pdGlhbCB0cnVlIGluZGljYXRlcyBhIGJpdG1hcCB3YXMgYWxsb2NhdGVkIGFuZCBpcyBzaGFy
ZWFibGUuCi0gICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGUodHJ1ZSk7CisgICAgICAgICAgICBl
bmNvZGVyLmVuY29kZSh0cnVlKTsKIAotICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKGhhbmRs
ZSk7CisgICAgICAgICAgICBlbmNvZGVyLmVuY29kZShoYW5kbGUpOwogICAgICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBBUElPYmplY3Q6OlR5cGVEYXRhOiB7
CiAgICAgICAgICAgICBXZWJEYXRhKiBkYXRhID0gc3RhdGljX2Nhc3Q8V2ViRGF0YSo+KG1fcm9v
dCk7Ci0gICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGVWYXJpYWJsZUxlbmd0aEJ5dGVBcnJheShk
YXRhLT5kYXRhUmVmZXJlbmNlKCkpOworICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGVWYXJpYWJs
ZUxlbmd0aEJ5dGVBcnJheShkYXRhLT5kYXRhUmVmZXJlbmNlKCkpOwogICAgICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBBUElPYmplY3Q6OlR5cGVDZXJ0aWZp
Y2F0ZUluZm86IHsKICAgICAgICAgICAgIFdlYkNlcnRpZmljYXRlSW5mbyogY2VydGlmaWNhdGVJ
bmZvID0gc3RhdGljX2Nhc3Q8V2ViQ2VydGlmaWNhdGVJbmZvKj4obV9yb290KTsKLSAgICAgICAg
ICAgIGVuY29kZXItPmVuY29kZShjZXJ0aWZpY2F0ZUluZm8tPnBsYXRmb3JtQ2VydGlmaWNhdGVJ
bmZvKCkpOworICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGUoY2VydGlmaWNhdGVJbmZvLT5wbGF0
Zm9ybUNlcnRpZmljYXRlSW5mbygpKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAg
ICB9CiAgICAgICAgIGRlZmF1bHQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViQmF0dGVyeVN0YXR1cy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQmF0dGVyeVN0
YXR1cy5jcHAKaW5kZXggMzBhNWU1OWExY2ExYzM1YTdmMDE0ZTE0ZmQ3MTRlMDcwOTdmMTI5Mi4u
MzJhZjAxZWRkY2FkNWRkMWRlNjJjMzRhYWRhN2I3NDI1MDU5NTdmMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYkJhdHRlcnlTdGF0dXMuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJCYXR0ZXJ5U3RhdHVzLmNwcApAQCAtNDUsMTIgKzQ1LDEyIEBAIFdlYkJh
dHRlcnlTdGF0dXM6On5XZWJCYXR0ZXJ5U3RhdHVzKCkKIHsKIH0KIAotdm9pZCBXZWJCYXR0ZXJ5
U3RhdHVzOjpEYXRhOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBj
b25zdAordm9pZCBXZWJCYXR0ZXJ5U3RhdHVzOjpEYXRhOjplbmNvZGUoQ29yZUlQQzo6QXJndW1l
bnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXItPmVuY29kZShpc0NoYXJn
aW5nKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoY2hhcmdpbmdUaW1lKTsKLSAgICBlbmNvZGVyLT5l
bmNvZGUoZGlzY2hhcmdpbmdUaW1lKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobGV2ZWwpOworICAg
IGVuY29kZXIuZW5jb2RlKGlzQ2hhcmdpbmcpOworICAgIGVuY29kZXIuZW5jb2RlKGNoYXJnaW5n
VGltZSk7CisgICAgZW5jb2Rlci5lbmNvZGUoZGlzY2hhcmdpbmdUaW1lKTsKKyAgICBlbmNvZGVy
LmVuY29kZShsZXZlbCk7CiB9CiAKIGJvb2wgV2ViQmF0dGVyeVN0YXR1czo6RGF0YTo6ZGVjb2Rl
KENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgRGF0YSYgcmVzdWx0KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkJhdHRlcnlTdGF0dXMuaCBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJCYXR0ZXJ5U3RhdHVzLmgKaW5kZXggZmQxZDc5MzJkN2E1MTNhNmNk
YjA4YjA3MmNhMDc2YzQ2ZmViYmIwYy4uNmI2MzBmNzA4YWU4OGY1YzU2MDY1NDg1OTI3ODEwODFj
MTg5MzZmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkJhdHRlcnlTdGF0
dXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQmF0dGVyeVN0YXR1cy5oCkBAIC00
MCw3ICs0MCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgVHlwZSBBUElUeXBlID0gVHlw
ZUJhdHRlcnlTdGF0dXM7CiAKICAgICBzdHJ1Y3QgRGF0YSB7Ci0gICAgICAgIHZvaWQgZW5jb2Rl
KENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciopIGNvbnN0OworICAgICAgICB2b2lkIGVuY29kZShD
b3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKICAgICAgICAgc3RhdGljIGJvb2wgZGVj
b2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIERhdGEmKTsKIAogICAgICAgICBib29sIGlz
Q2hhcmdpbmc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29udGV4dE1l
bnVJdGVtRGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29udGV4dE1lbnVJdGVt
RGF0YS5jcHAKaW5kZXggOTAxY2U5YzQ3ZjFjNWQzM2JjYzE2ZmJiY2EwNGQyNGM5ZTgzMDE3Yi4u
OTE1OWYwMjljYTRkYTk3YjZlM2QyNzRlYjJiZjJkMjUyMzAyNjVmMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvbnRleHRNZW51SXRlbURhdGEuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJDb250ZXh0TWVudUl0ZW1EYXRhLmNwcApAQCAtMTA0LDE0ICsx
MDQsMTQgQEAgdm9pZCBXZWJDb250ZXh0TWVudUl0ZW1EYXRhOjpzZXRVc2VyRGF0YShBUElPYmpl
Y3QqIHVzZXJEYXRhKQogICAgIG1fdXNlckRhdGEgPSB1c2VyRGF0YTsKIH0KICAgICAKLXZvaWQg
V2ViQ29udGV4dE1lbnVJdGVtRGF0YTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlciog
ZW5jb2RlcikgY29uc3QKK3ZvaWQgV2ViQ29udGV4dE1lbnVJdGVtRGF0YTo6ZW5jb2RlKENvcmVJ
UEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyLT5lbmNv
ZGVFbnVtKG1fdHlwZSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlRW51bShtX2FjdGlvbik7Ci0gICAg
ZW5jb2Rlci0+ZW5jb2RlKG1fdGl0bGUpOwotICAgIGVuY29kZXItPmVuY29kZShtX2NoZWNrZWQp
OwotICAgIGVuY29kZXItPmVuY29kZShtX2VuYWJsZWQpOwotICAgIGVuY29kZXItPmVuY29kZSht
X3N1Ym1lbnUpOworICAgIGVuY29kZXIuZW5jb2RlRW51bShtX3R5cGUpOworICAgIGVuY29kZXIu
ZW5jb2RlRW51bShtX2FjdGlvbik7CisgICAgZW5jb2Rlci5lbmNvZGUobV90aXRsZSk7CisgICAg
ZW5jb2Rlci5lbmNvZGUobV9jaGVja2VkKTsKKyAgICBlbmNvZGVyLmVuY29kZShtX2VuYWJsZWQp
OworICAgIGVuY29kZXIuZW5jb2RlKG1fc3VibWVudSk7CiB9CiAKIGJvb2wgV2ViQ29udGV4dE1l
bnVJdGVtRGF0YTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgV2Vi
Q29udGV4dE1lbnVJdGVtRGF0YSYgaXRlbSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJDb250ZXh0TWVudUl0ZW1EYXRhLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
Q29udGV4dE1lbnVJdGVtRGF0YS5oCmluZGV4IDEwNmJkZjAxNjA4ZjliZWFiM2Q3ODg2NjAyMGM5
NDc3MDc4MjFjZmIuLjkyMTJlMjgxMzIyMWFmMjZlNDdmNWUxOTY2NzcwNTMyYzc0M2E1MmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb250ZXh0TWVudUl0ZW1EYXRhLmgK
KysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvbnRleHRNZW51SXRlbURhdGEuaApAQCAt
NjMsNyArNjMsNyBAQCBwdWJsaWM6CiAgICAgQVBJT2JqZWN0KiB1c2VyRGF0YSgpIGNvbnN0Owog
ICAgIHZvaWQgc2V0VXNlckRhdGEoQVBJT2JqZWN0Kik7CiAgICAgCi0gICAgdm9pZCBlbmNvZGUo
Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKikgY29uc3Q7CisgICAgdm9pZCBlbmNvZGUoQ29yZUlQ
Qzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJ
UEM6OkFyZ3VtZW50RGVjb2RlciosIFdlYkNvbnRleHRNZW51SXRlbURhdGEmKTsKIAogcHJpdmF0
ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJFdmVudC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViRXZlbnQuY3BwCmluZGV4IDcwYmZmYTJjMWU4MTdhYjMyZmE5
ZTE3M2Y0YjE4MmQ0ODgxZjA2ZjguLmQ4NmNmODNlMTliMjM0ZGIzMDljZTQxZWVjYTVmZjhmMWUy
NjdiYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJFdmVudC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkV2ZW50LmNwcApAQCAtNDYsMTEgKzQ2LDExIEBA
IFdlYkV2ZW50OjpXZWJFdmVudChUeXBlIHR5cGUsIE1vZGlmaWVycyBtb2RpZmllcnMsIGRvdWJs
ZSB0aW1lc3RhbXApCiB7CiB9CiAKLXZvaWQgV2ViRXZlbnQ6OmVuY29kZShDb3JlSVBDOjpBcmd1
bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Cit2b2lkIFdlYkV2ZW50OjplbmNvZGUoQ29yZUlQ
Qzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXItPmVuY29k
ZShtX3R5cGUpOwotICAgIGVuY29kZXItPmVuY29kZShtX21vZGlmaWVycyk7Ci0gICAgZW5jb2Rl
ci0+ZW5jb2RlKG1fdGltZXN0YW1wKTsKKyAgICBlbmNvZGVyLmVuY29kZShtX3R5cGUpOworICAg
IGVuY29kZXIuZW5jb2RlKG1fbW9kaWZpZXJzKTsKKyAgICBlbmNvZGVyLmVuY29kZShtX3RpbWVz
dGFtcCk7CiB9CiAKIGJvb2wgV2ViRXZlbnQ6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29k
ZXIqIGRlY29kZXIsIFdlYkV2ZW50JiByZXN1bHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvV2ViRXZlbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJFdmVudC5oCmlu
ZGV4IDgxMTFkNTE2MDU0Yzg4YzVlMzE4YWNhZGNhNjgzZDgyMjU0MzM4YjguLjk2ODFkYzE2MGRl
ZjU5YTFiNmE3ZTRjMjliOTlkMDhkNWEwOGNiMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJFdmVudC5o
CkBAIC0xMDMsNyArMTAzLDcgQEAgcHJvdGVjdGVkOgogCiAgICAgV2ViRXZlbnQoVHlwZSwgTW9k
aWZpZXJzLCBkb3VibGUgdGltZXN0YW1wKTsKIAotICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFy
Z3VtZW50RW5jb2RlciopIGNvbnN0OworICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50
RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqLCBXZWJFdmVudCYpOwogCiBwcml2YXRlOgpAQCAtMTQwLDcgKzE0MCw3IEBAIHB1
YmxpYzoKICAgICBib29sIGRpZEFjdGl2YXRlV2ViVmlldygpIGNvbnN0IHsgcmV0dXJuIG1fZGlk
QWN0aXZhdGVXZWJWaWV3OyB9CiAjZW5kaWYKIAotICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFy
Z3VtZW50RW5jb2RlciopIGNvbnN0OworICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50
RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqLCBXZWJNb3VzZUV2ZW50Jik7CiAKIHByaXZhdGU6CkBAIC0xOTksNyArMTk5LDcg
QEAgcHVibGljOgogICAgIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgdW5hY2NlbGVyYXRlZFNj
cm9sbGluZ0RlbHRhKCkgY29uc3QgeyByZXR1cm4gbV91bmFjY2VsZXJhdGVkU2Nyb2xsaW5nRGVs
dGE7IH0KICNlbmRpZgogCi0gICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVy
KikgY29uc3Q7CisgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJikgY29u
c3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIFdl
YldoZWVsRXZlbnQmKTsKIAogcHJpdmF0ZToKQEAgLTIzNyw3ICsyMzcsNyBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBpc0tleXBhZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNLZXlwYWQ7IH0KICAgICBib29s
IGlzU3lzdGVtS2V5KCkgY29uc3QgeyByZXR1cm4gbV9pc1N5c3RlbUtleTsgfQogCi0gICAgdm9p
ZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKikgY29uc3Q7CisgICAgdm9pZCBlbmNv
ZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVj
b2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIFdlYktleWJvYXJkRXZlbnQmKTsKIAogICAg
IHN0YXRpYyBib29sIGlzS2V5Ym9hcmRFdmVudFR5cGUoVHlwZSk7CkBAIC0yNjgsNyArMjY4LDcg
QEAgcHVibGljOgogICAgIGNvbnN0IFdlYkNvcmU6OkludFNpemUgYXJlYSgpIGNvbnN0IHsgcmV0
dXJuIG1fYXJlYTsgfQogICAgIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQgZGVsdGEoKSBjb25z
dCB7IHJldHVybiBtX2RlbHRhOyB9CiAKLSAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVu
dEVuY29kZXIqKSBjb25zdDsKKyAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29k
ZXImKSBjb25zdDsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKiwgV2ViR2VzdHVyZUV2ZW50Jik7CiAKIHByaXZhdGU6CkBAIC0zMTMsNyArMzEzLDcgQEAg
cHVibGljOgogCiAgICAgdm9pZCBzZXRTdGF0ZShUb3VjaFBvaW50U3RhdGUgc3RhdGUpIHsgbV9z
dGF0ZSA9IHN0YXRlOyB9CiAKLSAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29k
ZXIqKSBjb25zdDsKKyAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBj
b25zdDsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwg
V2ViUGxhdGZvcm1Ub3VjaFBvaW50Jik7CiAKIHByaXZhdGU6CkBAIC0zMzYsNyArMzM2LDcgQEAg
cHVibGljOgogCiAgICAgY29uc3QgVmVjdG9yPFdlYlBsYXRmb3JtVG91Y2hQb2ludD4mIHRvdWNo
UG9pbnRzKCkgY29uc3QgeyByZXR1cm4gbV90b3VjaFBvaW50czsgfQogCi0gICAgdm9pZCBlbmNv
ZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKikgY29uc3Q7CisgICAgdm9pZCBlbmNvZGUoQ29y
ZUlQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIFdlYlRvdWNoRXZlbnQmKTsKICAgCiBwcml2YXRlOgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24u
Y3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uY3BwCmlu
ZGV4IDc3ZDUyNGNmNGM0NzdhOGQxMGY0MTA3NGQxZTE1ODcxNWQwYmQ5MDUuLmZlYWQwMGU4N2Ux
MThkZWE0MWUxMDUyMDI3NjQ1MWQ2YmY3MWVjZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAKQEAgLTUxLDkgKzUxLDkgQEAgV2ViR2Vv
bG9jYXRpb25Qb3NpdGlvbjo6fldlYkdlb2xvY2F0aW9uUG9zaXRpb24oKQogewogfQogCi12b2lk
IFdlYkdlb2xvY2F0aW9uUG9zaXRpb246OkRhdGE6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVu
Y29kZXIqIGVuY29kZXIpIGNvbnN0Cit2b2lkIFdlYkdlb2xvY2F0aW9uUG9zaXRpb246OkRhdGE6
OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAg
Q29yZUlQQzo6U2ltcGxlQXJndW1lbnRDb2RlcjxXZWJHZW9sb2NhdGlvblBvc2l0aW9uOjpEYXRh
Pjo6ZW5jb2RlKGVuY29kZXIsICp0aGlzKTsKKyAgICBDb3JlSVBDOjpTaW1wbGVBcmd1bWVudENv
ZGVyPFdlYkdlb2xvY2F0aW9uUG9zaXRpb246OkRhdGE+OjplbmNvZGUoJmVuY29kZXIsICp0aGlz
KTsKIH0KIAogYm9vbCBXZWJHZW9sb2NhdGlvblBvc2l0aW9uOjpEYXRhOjpkZWNvZGUoQ29yZUlQ
Qzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBEYXRhJiBkYXRhKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uaCBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmgKaW5kZXggYTg3YmIwNjJkMWNiMzUz
YjlkZGVhNGQ3OGIxOWQxNTMzYTE3MDE5YS4uNTJlYmVkOTkyM2JhNzM2ZjYxZmY4OTFiNzA0Njk2
M2ExNDFkMDk0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkdlb2xvY2F0
aW9uUG9zaXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViR2VvbG9jYXRpb25Q
b3NpdGlvbi5oCkBAIC0zOCw3ICszOCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgVHlw
ZSBBUElUeXBlID0gVHlwZUdlb2xvY2F0aW9uUG9zaXRpb247CiAKICAgICBzdHJ1Y3QgRGF0YSB7
Ci0gICAgICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciopIGNvbnN0Owor
ICAgICAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKICAg
ICAgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIERhdGEm
KTsKIAogICAgICAgICBkb3VibGUgdGltZXN0YW1wOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYkdlc3R1cmVFdmVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
R2VzdHVyZUV2ZW50LmNwcAppbmRleCBkNDkxYTU3MDdhZGRjZTc1YmUzNDBlYWU5NTM0NDIwMWI0
MTY0NDBjLi5lMzE3OGNkY2ZiOGY0MDBhMmFmZDg3NGMyOWFlYWNkNGQxOWEyYmNkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViR2VzdHVyZUV2ZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViR2VzdHVyZUV2ZW50LmNwcApAQCAtNTMsMTQgKzUzLDE0IEBA
IFdlYkdlc3R1cmVFdmVudDo6V2ViR2VzdHVyZUV2ZW50KFR5cGUgdHlwZSwgY29uc3QgSW50UG9p
bnQmIHBvc2l0aW9uLCBjb25zdCBJbnRQCiAgICAgQVNTRVJUKGlzR2VzdHVyZUV2ZW50VHlwZSh0
eXBlKSk7CiB9CiAKLXZvaWQgV2ViR2VzdHVyZUV2ZW50OjplbmNvZGUoQ29yZUlQQzo6QXJndW1l
bnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAordm9pZCBXZWJHZXN0dXJlRXZlbnQ6OmVuY29kZShD
b3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7CiAgICAgV2ViRXZlbnQ6
OmVuY29kZShlbmNvZGVyKTsKIAotICAgIGVuY29kZXItPmVuY29kZShtX3Bvc2l0aW9uKTsKLSAg
ICBlbmNvZGVyLT5lbmNvZGUobV9nbG9iYWxQb3NpdGlvbik7Ci0gICAgZW5jb2Rlci0+ZW5jb2Rl
KG1fYXJlYSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG1fZGVsdGEpOworICAgIGVuY29kZXIuZW5j
b2RlKG1fcG9zaXRpb24pOworICAgIGVuY29kZXIuZW5jb2RlKG1fZ2xvYmFsUG9zaXRpb24pOwor
ICAgIGVuY29kZXIuZW5jb2RlKG1fYXJlYSk7CisgICAgZW5jb2Rlci5lbmNvZGUobV9kZWx0YSk7
CiB9CiAKIGJvb2wgV2ViR2VzdHVyZUV2ZW50OjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKiBkZWNvZGVyLCBXZWJHZXN0dXJlRXZlbnQmIHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViSGl0VGVzdFJlc3VsdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViSGl0VGVzdFJlc3VsdC5jcHAKaW5kZXggNzk5ZWQ1MjIwZGEwZjY2ODdlOTE1NzkyMmUxYTA5
YjYwNmI5MTViMC4uZjgxZjExZDM5MTI5YTVkOTBlZjFlZGM5NDVhNDQxMDIxODk0YTM0MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkhpdFRlc3RSZXN1bHQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJIaXRUZXN0UmVzdWx0LmNwcApAQCAtMzQsMTYgKzM0
LDE2IEBAIFBhc3NSZWZQdHI8V2ViSGl0VGVzdFJlc3VsdD4gV2ViSGl0VGVzdFJlc3VsdDo6Y3Jl
YXRlKGNvbnN0IFdlYkhpdFRlc3RSZXN1bHQ6OkRhCiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBX
ZWJIaXRUZXN0UmVzdWx0KGhpdFRlc3RSZXN1bHREYXRhKSk7CiB9CiAKLXZvaWQgV2ViSGl0VGVz
dFJlc3VsdDo6RGF0YTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2Rlcikg
Y29uc3QKK3ZvaWQgV2ViSGl0VGVzdFJlc3VsdDo6RGF0YTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3Vt
ZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyLT5lbmNvZGUoYWJzb2x1
dGVJbWFnZVVSTCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGFic29sdXRlUERGVVJMKTsKLSAgICBl
bmNvZGVyLT5lbmNvZGUoYWJzb2x1dGVMaW5rVVJMKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoYWJz
b2x1dGVNZWRpYVVSTCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGxpbmtMYWJlbCk7Ci0gICAgZW5j
b2Rlci0+ZW5jb2RlKGxpbmtUaXRsZSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGlzQ29udGVudEVk
aXRhYmxlKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoZWxlbWVudEJvdW5kaW5nQm94KTsKKyAgICBl
bmNvZGVyLmVuY29kZShhYnNvbHV0ZUltYWdlVVJMKTsKKyAgICBlbmNvZGVyLmVuY29kZShhYnNv
bHV0ZVBERlVSTCk7CisgICAgZW5jb2Rlci5lbmNvZGUoYWJzb2x1dGVMaW5rVVJMKTsKKyAgICBl
bmNvZGVyLmVuY29kZShhYnNvbHV0ZU1lZGlhVVJMKTsKKyAgICBlbmNvZGVyLmVuY29kZShsaW5r
TGFiZWwpOworICAgIGVuY29kZXIuZW5jb2RlKGxpbmtUaXRsZSk7CisgICAgZW5jb2Rlci5lbmNv
ZGUoaXNDb250ZW50RWRpdGFibGUpOworICAgIGVuY29kZXIuZW5jb2RlKGVsZW1lbnRCb3VuZGlu
Z0JveCk7CiB9CiAKIGJvb2wgV2ViSGl0VGVzdFJlc3VsdDo6RGF0YTo6ZGVjb2RlKENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgV2ViSGl0VGVzdFJlc3VsdDo6RGF0YSYgaGl0VGVz
dFJlc3VsdERhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViSGl0VGVz
dFJlc3VsdC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkhpdFRlc3RSZXN1bHQuaAppbmRl
eCBlNTNhNWM3ZTI2NTc3ZTZjM2M1Nzg5MWNiNjA4MzFkZjU1OGQwMzk2Li43MzkwNTBlMTFiZmYz
NDRjMDhmNmQ2Yzg3NDgxNjY3OTM3MWY4YzI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViSGl0VGVzdFJlc3VsdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJI
aXRUZXN0UmVzdWx0LmgKQEAgLTg2LDcgKzg2LDcgQEAgcHVibGljOgogICAgICAgICB7CiAgICAg
ICAgIH0KIAotICAgICAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqKSBj
b25zdDsKKyAgICAgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJikgY29u
c3Q7CiAgICAgICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
LCBXZWJIaXRUZXN0UmVzdWx0OjpEYXRhJik7CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYktleWJvYXJkRXZlbnQuY3BwIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL1dlYktleWJvYXJkRXZlbnQuY3BwCmluZGV4IDExOWI4NjQxNjk4YjIyZmM2MTk3MTc5YmU4
NzM0ZGQ1MDU2M2QyNmUuLmQ4MWM4NjM2NDQxOTM2MTk2MTE4ZTc3OGZiZDMwYmFmNmRlY2Q2MTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJLZXlib2FyZEV2ZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViS2V5Ym9hcmRFdmVudC5jcHAKQEAgLTQ1LDE5
ICs0NSwxOSBAQCBXZWJLZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50KFR5cGUgdHlwZSwg
Y29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmCiAgICAgQVNTRVJUKGlzS2V5Ym9hcmRF
dmVudFR5cGUodHlwZSkpOwogfQogCi12b2lkIFdlYktleWJvYXJkRXZlbnQ6OmVuY29kZShDb3Jl
SVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Cit2b2lkIFdlYktleWJvYXJkRXZl
bnQ6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7CiAg
ICAgV2ViRXZlbnQ6OmVuY29kZShlbmNvZGVyKTsKIAotICAgIGVuY29kZXItPmVuY29kZShtX3Rl
eHQpOwotICAgIGVuY29kZXItPmVuY29kZShtX3VubW9kaWZpZWRUZXh0KTsKLSAgICBlbmNvZGVy
LT5lbmNvZGUobV9rZXlJZGVudGlmaWVyKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobV93aW5kb3dz
VmlydHVhbEtleUNvZGUpOwotICAgIGVuY29kZXItPmVuY29kZShtX25hdGl2ZVZpcnR1YWxLZXlD
b2RlKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobV9tYWNDaGFyQ29kZSk7Ci0gICAgZW5jb2Rlci0+
ZW5jb2RlKG1faXNBdXRvUmVwZWF0KTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobV9pc0tleXBhZCk7
Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG1faXNTeXN0ZW1LZXkpOworICAgIGVuY29kZXIuZW5jb2Rl
KG1fdGV4dCk7CisgICAgZW5jb2Rlci5lbmNvZGUobV91bm1vZGlmaWVkVGV4dCk7CisgICAgZW5j
b2Rlci5lbmNvZGUobV9rZXlJZGVudGlmaWVyKTsKKyAgICBlbmNvZGVyLmVuY29kZShtX3dpbmRv
d3NWaXJ0dWFsS2V5Q29kZSk7CisgICAgZW5jb2Rlci5lbmNvZGUobV9uYXRpdmVWaXJ0dWFsS2V5
Q29kZSk7CisgICAgZW5jb2Rlci5lbmNvZGUobV9tYWNDaGFyQ29kZSk7CisgICAgZW5jb2Rlci5l
bmNvZGUobV9pc0F1dG9SZXBlYXQpOworICAgIGVuY29kZXIuZW5jb2RlKG1faXNLZXlwYWQpOwor
ICAgIGVuY29kZXIuZW5jb2RlKG1faXNTeXN0ZW1LZXkpOwogfQogCiBib29sIFdlYktleWJvYXJk
RXZlbnQ6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIFdlYktleWJv
YXJkRXZlbnQmIHJlc3VsdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJM
YXllclRyZWVJbmZvLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJMYXllclRyZWVJbmZv
LmNwcAppbmRleCBlMDgzNjQwMDY5ODVkMGJkYTVkMWE2MWU0MzliZDg5MTgxODE4NGZiLi5mODJh
ZTFkMTFjMTUyNmY3Mjg0NWQ3Zjg4MzdmNjMzZDUyNDVjMzJmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViTGF5ZXJUcmVlSW5mby5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYkxheWVyVHJlZUluZm8uY3BwCkBAIC0zMCw5ICszMCw5IEBAIHVzaW5nIG5hbWVz
cGFjZSBDb3JlSVBDOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdm9pZCBXZWJMYXllckluZm86
OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Cit2b2lkIFdl
YkxheWVySW5mbzo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29u
c3QKIHsKLSAgICBTaW1wbGVBcmd1bWVudENvZGVyPFdlYkxheWVySW5mbz46OmVuY29kZShlbmNv
ZGVyLCAqdGhpcyk7CisgICAgU2ltcGxlQXJndW1lbnRDb2RlcjxXZWJMYXllckluZm8+OjplbmNv
ZGUoJmVuY29kZXIsICp0aGlzKTsKIH0KIAogYm9vbCBXZWJMYXllckluZm86OmRlY29kZShDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIFdlYkxheWVySW5mbyYgaW5mbykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJMYXllclRyZWVJbmZvLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViTGF5ZXJUcmVlSW5mby5oCmluZGV4IGRmNDQ3NzhhOGQ2YmJhZGI4
MDgwMGUwOWRjNTEzY2VhMzEyYjE0Y2QuLmM5YmRhYzVmZGJhMTEyYmQ0ZTA3NDI1ZThkNzY1MzM3
YzFhY2Y0MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJMYXllclRyZWVJ
bmZvLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkxheWVyVHJlZUluZm8uaApAQCAt
NzEsNyArNzEsNyBAQCBzdHJ1Y3QgV2ViTGF5ZXJJbmZvIHsKICAgICAgICAgdW5zaWduZWQgaW50
IGZsYWdzOwogICAgIH07CiAKLSAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29k
ZXIqKSBjb25zdDsKKyAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBj
b25zdDsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwg
V2ViTGF5ZXJJbmZvJik7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViTW91c2VFdmVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTW91c2VFdmVudC5j
cHAKaW5kZXggMzJlNmFjMWYzMmZjMWJjMzE2MmNhNTQwN2QyMTI0MDdjYzVmNzcyZC4uNDczZGU0
MDdjMDg5ZTFjYTBhNjUxNTBkN2FlNDU2MzIzZjk5Zjc1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYk1vdXNlRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJNb3VzZUV2ZW50LmNwcApAQCAtNzgsMjAgKzc4LDIwIEBAIFdlYk1vdXNlRXZlbnQ6Oldl
Yk1vdXNlRXZlbnQoVHlwZSB0eXBlLCBCdXR0b24gYnV0dG9uLCBjb25zdCBJbnRQb2ludCYgcG9z
aXRpb24sCiB9CiAjZW5kaWYKIAotdm9pZCBXZWJNb3VzZUV2ZW50OjplbmNvZGUoQ29yZUlQQzo6
QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAordm9pZCBXZWJNb3VzZUV2ZW50OjplbmNv
ZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewogICAgIFdlYkV2
ZW50OjplbmNvZGUoZW5jb2Rlcik7CiAKLSAgICBlbmNvZGVyLT5lbmNvZGUobV9idXR0b24pOwot
ICAgIGVuY29kZXItPmVuY29kZShtX3Bvc2l0aW9uKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobV9n
bG9iYWxQb3NpdGlvbik7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG1fZGVsdGFYKTsKLSAgICBlbmNv
ZGVyLT5lbmNvZGUobV9kZWx0YVkpOwotICAgIGVuY29kZXItPmVuY29kZShtX2RlbHRhWik7Ci0g
ICAgZW5jb2Rlci0+ZW5jb2RlKG1fY2xpY2tDb3VudCk7CisgICAgZW5jb2Rlci5lbmNvZGUobV9i
dXR0b24pOworICAgIGVuY29kZXIuZW5jb2RlKG1fcG9zaXRpb24pOworICAgIGVuY29kZXIuZW5j
b2RlKG1fZ2xvYmFsUG9zaXRpb24pOworICAgIGVuY29kZXIuZW5jb2RlKG1fZGVsdGFYKTsKKyAg
ICBlbmNvZGVyLmVuY29kZShtX2RlbHRhWSk7CisgICAgZW5jb2Rlci5lbmNvZGUobV9kZWx0YVop
OworICAgIGVuY29kZXIuZW5jb2RlKG1fY2xpY2tDb3VudCk7CiAKICNpZiBQTEFURk9STShXSU4p
Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG1fZGlkQWN0aXZhdGVXZWJWaWV3KTsKKyAgICBlbmNvZGVy
LmVuY29kZShtX2RpZEFjdGl2YXRlV2ViVmlldyk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYk5hdmlnYXRpb25EYXRhU3RvcmUuaCBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJOYXZpZ2F0aW9uRGF0YVN0b3JlLmgKaW5kZXggOTQ3ZDA5MGM5ZTNk
NmZmMTRjYTA2NDYwMzFiYzA3MTAxOWUyMGExOC4uOWNkMTBmNzllOTBhOTU0YjFjNTQzZjllOWRi
YzVmN2ZkZjNjZGI3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYk5hdmln
YXRpb25EYXRhU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTmF2aWdhdGlv
bkRhdGFTdG9yZS5oCkBAIC0zNSwxMSArMzUsMTEgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBz
dHJ1Y3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZSB7Ci0gICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6
QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAorICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6
OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICB7Ci0gICAgICAgIGVuY29kZXIt
PmVuY29kZSh1cmwpOwotICAgICAgICBlbmNvZGVyLT5lbmNvZGUodGl0bGUpOwotICAgICAgICBl
bmNvZGVyLT5lbmNvZGUob3JpZ2luYWxSZXF1ZXN0KTsKKyAgICAgICAgZW5jb2Rlci5lbmNvZGUo
dXJsKTsKKyAgICAgICAgZW5jb2Rlci5lbmNvZGUodGl0bGUpOworICAgICAgICBlbmNvZGVyLmVu
Y29kZShvcmlnaW5hbFJlcXVlc3QpOwogICAgIH0KIAogICAgIHN0YXRpYyBib29sIGRlY29kZShD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIFdlYk5hdmlnYXRpb25EYXRhU3RvcmUm
IHN0b3JlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYk5ldHdvcmtJbmZv
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJOZXR3b3JrSW5mby5jcHAKaW5kZXggYTI4
NTIzNDFhNTdiNjRhM2U5OTJjZWE0ZjliOWUzNjg1MzdlZWNkZi4uOWIxMzNmODE1NDI3ZGUyOWYz
YmQ3ZTQyNDQyNjZhZDAwOWNlMWVjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYk5ldHdvcmtJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTmV0d29y
a0luZm8uY3BwCkBAIC00MywxMCArNDMsMTAgQEAgV2ViTmV0d29ya0luZm86On5XZWJOZXR3b3Jr
SW5mbygpCiB7CiB9CiAKLXZvaWQgV2ViTmV0d29ya0luZm86OkRhdGE6OmVuY29kZShDb3JlSVBD
OjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Cit2b2lkIFdlYk5ldHdvcmtJbmZvOjpE
YXRhOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewot
ICAgIGVuY29kZXItPmVuY29kZShiYW5kd2lkdGgpOwotICAgIGVuY29kZXItPmVuY29kZShtZXRl
cmVkKTsKKyAgICBlbmNvZGVyLmVuY29kZShiYW5kd2lkdGgpOworICAgIGVuY29kZXIuZW5jb2Rl
KG1ldGVyZWQpOwogfQogCiBib29sIFdlYk5ldHdvcmtJbmZvOjpEYXRhOjpkZWNvZGUoQ29yZUlQ
Qzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBEYXRhJiByZXN1bHQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTmV0d29ya0luZm8uaCBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJOZXR3b3JrSW5mby5oCmluZGV4IDRjMTYxNzM3NDZjYzM1ZTk3MDFmNzliZGU0ODll
NTMxOTU4MDkzY2MuLmIzMWJiZTM2NzMxZDk0YzQ3NDgwZmE3NzA4M2U0YjY1MjljMTAyOWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJOZXR3b3JrSW5mby5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJOZXR3b3JrSW5mby5oCkBAIC00MCw3ICs0MCw3IEBAIHB1
YmxpYzoKICAgICBzdGF0aWMgY29uc3QgVHlwZSBBUElUeXBlID0gVHlwZU5ldHdvcmtJbmZvOwog
CiAgICAgc3RydWN0IERhdGEgewotICAgICAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVu
dEVuY29kZXIqKSBjb25zdDsKKyAgICAgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRF
bmNvZGVyJikgY29uc3Q7CiAgICAgICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqLCBEYXRhJik7CiAKICAgICAgICAgZG91YmxlIGJhbmR3aWR0aDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApp
bmRleCAyN2Q1NTQzNGE2ZmFhNzUwNWViN2UzYjEyMWI0OWU4YzFhNTYyOGVlLi4xN2RlYmU4ZDEx
Njg3MmQzZGY5ZDBlNmUwMjQ0OWM3NTk1OWY2MjgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC0zMCw0MiArMzAsNDIg
QEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXZvaWQgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVy
czo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKK3ZvaWQg
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyLT5lbmNvZGUodmlld1NpemUpOwotICAg
IGVuY29kZXItPmVuY29kZShpc0FjdGl2ZSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGlzRm9jdXNl
ZCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGlzVmlzaWJsZSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2Rl
KGlzSW5XaW5kb3cpOworICAgIGVuY29kZXIuZW5jb2RlKHZpZXdTaXplKTsKKyAgICBlbmNvZGVy
LmVuY29kZShpc0FjdGl2ZSk7CisgICAgZW5jb2Rlci5lbmNvZGUoaXNGb2N1c2VkKTsKKyAgICBl
bmNvZGVyLmVuY29kZShpc1Zpc2libGUpOworICAgIGVuY29kZXIuZW5jb2RlKGlzSW5XaW5kb3cp
OwogCi0gICAgZW5jb2Rlci0+ZW5jb2RlKHN0b3JlKTsKLSAgICBlbmNvZGVyLT5lbmNvZGVFbnVt
KGRyYXdpbmdBcmVhVHlwZSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHBhZ2VHcm91cERhdGEpOwot
ICAgIGVuY29kZXItPmVuY29kZShkcmF3c0JhY2tncm91bmQpOwotICAgIGVuY29kZXItPmVuY29k
ZShkcmF3c1RyYW5zcGFyZW50QmFja2dyb3VuZCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGFyZU1l
bW9yeUNhY2hlQ2xpZW50Q2FsbHNFbmFibGVkKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUodXNlRml4
ZWRMYXlvdXQpOwotICAgIGVuY29kZXItPmVuY29kZShmaXhlZExheW91dFNpemUpOwotICAgIGVu
Y29kZXItPmVuY29kZUVudW0ocGFnaW5hdGlvbk1vZGUpOwotICAgIGVuY29kZXItPmVuY29kZShw
YWdpbmF0aW9uQmVoYXZlc0xpa2VDb2x1bW5zKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUocGFnZUxl
bmd0aCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGdhcEJldHdlZW5QYWdlcyk7Ci0gICAgZW5jb2Rl
ci0+ZW5jb2RlKHVzZXJBZ2VudCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHNlc3Npb25TdGF0ZSk7
Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGhpZ2hlc3RVc2VkQmFja0ZvcndhcmRJdGVtSUQpOwotICAg
IGVuY29kZXItPmVuY29kZShjYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwpOwotICAgIGVu
Y29kZXItPmVuY29kZShjYW5SdW5Nb2RhbCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGRldmljZVNj
YWxlRmFjdG9yKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobWVkaWFWb2x1bWUpOworICAgIGVuY29k
ZXIuZW5jb2RlKHN0b3JlKTsKKyAgICBlbmNvZGVyLmVuY29kZUVudW0oZHJhd2luZ0FyZWFUeXBl
KTsKKyAgICBlbmNvZGVyLmVuY29kZShwYWdlR3JvdXBEYXRhKTsKKyAgICBlbmNvZGVyLmVuY29k
ZShkcmF3c0JhY2tncm91bmQpOworICAgIGVuY29kZXIuZW5jb2RlKGRyYXdzVHJhbnNwYXJlbnRC
YWNrZ3JvdW5kKTsKKyAgICBlbmNvZGVyLmVuY29kZShhcmVNZW1vcnlDYWNoZUNsaWVudENhbGxz
RW5hYmxlZCk7CisgICAgZW5jb2Rlci5lbmNvZGUodXNlRml4ZWRMYXlvdXQpOworICAgIGVuY29k
ZXIuZW5jb2RlKGZpeGVkTGF5b3V0U2l6ZSk7CisgICAgZW5jb2Rlci5lbmNvZGVFbnVtKHBhZ2lu
YXRpb25Nb2RlKTsKKyAgICBlbmNvZGVyLmVuY29kZShwYWdpbmF0aW9uQmVoYXZlc0xpa2VDb2x1
bW5zKTsKKyAgICBlbmNvZGVyLmVuY29kZShwYWdlTGVuZ3RoKTsKKyAgICBlbmNvZGVyLmVuY29k
ZShnYXBCZXR3ZWVuUGFnZXMpOworICAgIGVuY29kZXIuZW5jb2RlKHVzZXJBZ2VudCk7CisgICAg
ZW5jb2Rlci5lbmNvZGUoc2Vzc2lvblN0YXRlKTsKKyAgICBlbmNvZGVyLmVuY29kZShoaWdoZXN0
VXNlZEJhY2tGb3J3YXJkSXRlbUlEKTsKKyAgICBlbmNvZGVyLmVuY29kZShjYW5SdW5CZWZvcmVV
bmxvYWRDb25maXJtUGFuZWwpOworICAgIGVuY29kZXIuZW5jb2RlKGNhblJ1bk1vZGFsKTsKKyAg
ICBlbmNvZGVyLmVuY29kZShkZXZpY2VTY2FsZUZhY3Rvcik7CisgICAgZW5jb2Rlci5lbmNvZGUo
bWVkaWFWb2x1bWUpOwogCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIGVuY29kZXItPmVuY29kZShp
c1NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlRW51bShsYXll
ckhvc3RpbmdNb2RlKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoY29sb3JTcGFjZSk7CisgICAgZW5j
b2Rlci5lbmNvZGUoaXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQpOworICAgIGVuY29kZXIuZW5j
b2RlRW51bShsYXllckhvc3RpbmdNb2RlKTsKKyAgICBlbmNvZGVyLmVuY29kZShjb2xvclNwYWNl
KTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oV0lOKQotICAgIGVuY29kZXItPmVuY29kZShyZWlu
dGVycHJldF9jYXN0PHVpbnQ2NF90PihuYXRpdmVXaW5kb3cpKTsKKyAgICBlbmNvZGVyLmVuY29k
ZShyZWludGVycHJldF9jYXN0PHVpbnQ2NF90PihuYXRpdmVXaW5kb3cpKTsKICNlbmRpZgogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1l
dGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMu
aAppbmRleCAwOGMzYmNkMjE0ZWNjOTA2OTY3YWEzOWVmMThiZDAxNjlmMDJkNjk5Li4yMTRjMDRj
NTA0ODJlY2E4OTA1YzNkMTlkNzE3YWYwZjg5OTFlODZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTQ1LDcgKzQ1LDcgQEAg
bmFtZXNwYWNlIENvcmVJUEMgewogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHN0cnVjdCBXZWJQYWdl
Q3JlYXRpb25QYXJhbWV0ZXJzIHsKLSAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVu
Y29kZXIqKSBjb25zdDsKKyAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIm
KSBjb25zdDsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
KiwgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYpOwogCiAgICAgV2ViQ29yZTo6SW50U2l6ZSB2
aWV3U2l6ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlR3JvdXBE
YXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlR3JvdXBEYXRhLmNwcAppbmRl
eCBjMjI3ZDg1OTY2ZDg3OGIzODE4YjlmYTQxMDc5NjM0M2ZmZjYxZWUyLi5jNWQ2MDM0ODkzZTVj
MWJiZjFlODg1OGNiYzQ4ZjRlMzlhNTYzMThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViUGFnZUdyb3VwRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YlBhZ2VHcm91cERhdGEuY3BwCkBAIC0zMCwxNCArMzAsMTQgQEAKIAogbmFtZXNwYWNlIFdlYktp
dCB7CiAKLXZvaWQgV2ViUGFnZUdyb3VwRGF0YTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5j
b2RlciogZW5jb2RlcikgY29uc3QKK3ZvaWQgV2ViUGFnZUdyb3VwRGF0YTo6ZW5jb2RlKENvcmVJ
UEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyLT5lbmNv
ZGUoaWRlbnRpZmVyKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUocGFnZUdyb3VwSUQpOwotICAgIGVu
Y29kZXItPmVuY29kZSh2aXNpYmxlVG9JbmplY3RlZEJ1bmRsZSk7Ci0gICAgZW5jb2Rlci0+ZW5j
b2RlKHZpc2libGVUb0hpc3RvcnlDbGllbnQpOwotICAgIGVuY29kZXItPmVuY29kZSh1c2VyU3R5
bGVTaGVldHMpOwotICAgIGVuY29kZXItPmVuY29kZSh1c2VyU2NyaXB0cyk7CisgICAgZW5jb2Rl
ci5lbmNvZGUoaWRlbnRpZmVyKTsKKyAgICBlbmNvZGVyLmVuY29kZShwYWdlR3JvdXBJRCk7Cisg
ICAgZW5jb2Rlci5lbmNvZGUodmlzaWJsZVRvSW5qZWN0ZWRCdW5kbGUpOworICAgIGVuY29kZXIu
ZW5jb2RlKHZpc2libGVUb0hpc3RvcnlDbGllbnQpOworICAgIGVuY29kZXIuZW5jb2RlKHVzZXJT
dHlsZVNoZWV0cyk7CisgICAgZW5jb2Rlci5lbmNvZGUodXNlclNjcmlwdHMpOwogfQogCiBib29s
IFdlYlBhZ2VHcm91cERhdGE6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29k
ZXIsIFdlYlBhZ2VHcm91cERhdGEmIGRhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViUGFnZUdyb3VwRGF0YS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VH
cm91cERhdGEuaAppbmRleCBiOWFhMGY4ZjVmNWEwYjM5OTJlOThiNDU1NDYwZmMxMmNlZmQ4OTQ0
Li40ZGJmZDJjMzE2NGU3MGJjNmYwYjY1NmRkYjczNDg1MGY3YWRiMjQ3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUdyb3VwRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJQYWdlR3JvdXBEYXRhLmgKQEAgLTM5LDcgKzM5LDcgQEAgY2xhc3MgQXJn
dW1lbnRFbmNvZGVyOwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHN0cnVjdCBXZWJQYWdlR3JvdXBE
YXRhIHsKLSAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqKSBjb25zdDsK
KyAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKICAgICBz
dGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgV2ViUGFnZUdyb3Vw
RGF0YSYpOwogCiAgICAgU3RyaW5nIGlkZW50aWZlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJQbGF0Zm9ybVRvdWNoUG9pbnQuY3BwIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL1dlYlBsYXRmb3JtVG91Y2hQb2ludC5jcHAKaW5kZXggMzkwMjZlMGY1YzhjYWNlZDdlNmIw
MTg1YThiYzAxNGRjMmNmMGUxOS4uOWFiOTI2Y2I0ZDk4ZWFhMzAxN2I3MmIyNDVkMzY2OGUxYWU2
Njk5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBsYXRmb3JtVG91Y2hQ
b2ludC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBsYXRmb3JtVG91Y2hQb2lu
dC5jcHAKQEAgLTU3LDE1ICs1NywxNSBAQCBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OldlYlBsYXRm
b3JtVG91Y2hQb2ludCh1bnNpZ25lZCBpZCwgVG91Y2hQb2ludFN0YXRlIHN0YXRlLAogewogfQog
Ci12b2lkIFdlYlBsYXRmb3JtVG91Y2hQb2ludDo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5j
b2RlciogZW5jb2RlcikgY29uc3QKK3ZvaWQgV2ViUGxhdGZvcm1Ub3VjaFBvaW50OjplbmNvZGUo
Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXIt
PmVuY29kZShtX2lkKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobV9zdGF0ZSk7Ci0gICAgZW5jb2Rl
ci0+ZW5jb2RlKG1fc2NyZWVuUG9zaXRpb24pOwotICAgIGVuY29kZXItPmVuY29kZShtX3Bvc2l0
aW9uKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobV9yYWRpdXMpOwotICAgIGVuY29kZXItPmVuY29k
ZShtX3JvdGF0aW9uQW5nbGUpOwotICAgIGVuY29kZXItPmVuY29kZShtX2ZvcmNlKTsKKyAgICBl
bmNvZGVyLmVuY29kZShtX2lkKTsKKyAgICBlbmNvZGVyLmVuY29kZShtX3N0YXRlKTsKKyAgICBl
bmNvZGVyLmVuY29kZShtX3NjcmVlblBvc2l0aW9uKTsKKyAgICBlbmNvZGVyLmVuY29kZShtX3Bv
c2l0aW9uKTsKKyAgICBlbmNvZGVyLmVuY29kZShtX3JhZGl1cyk7CisgICAgZW5jb2Rlci5lbmNv
ZGUobV9yb3RhdGlvbkFuZ2xlKTsKKyAgICBlbmNvZGVyLmVuY29kZShtX2ZvcmNlKTsKIH0KIAog
Ym9vbCBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29k
ZXIqIGRlY29kZXIsIFdlYlBsYXRmb3JtVG91Y2hQb2ludCYgcmVzdWx0KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBvcHVwSXRlbS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViUG9wdXBJdGVtLmNwcAppbmRleCAwN2EyOWU0MTY5NjYyYzA4ZmQwYWMyZTYwOTEw
NWZiNTUxNTM4ZDM1Li42NmI3ODU2NjkwNTdlNjgzZjU4MWVmYWJiNjNjODk4MDFiNTc5NWU4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUG9wdXBJdGVtLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUG9wdXBJdGVtLmNwcApAQCAtNjYsMTcgKzY2LDE3IEBA
IFdlYlBvcHVwSXRlbTo6V2ViUG9wdXBJdGVtKFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0
LCBUZXh0RGlyZWN0aW9uIHRleHREaXJlCiB7CiB9CiAKLXZvaWQgV2ViUG9wdXBJdGVtOjplbmNv
ZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAordm9pZCBXZWJQb3B1
cEl0ZW06OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7
Ci0gICAgZW5jb2Rlci0+ZW5jb2RlRW51bShtX3R5cGUpOwotICAgIGVuY29kZXItPmVuY29kZSht
X3RleHQpOwotICAgIGVuY29kZXItPmVuY29kZUVudW0obV90ZXh0RGlyZWN0aW9uKTsKLSAgICBl
bmNvZGVyLT5lbmNvZGUobV9oYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUpOwotICAgIGVuY29kZXIt
PmVuY29kZShtX3Rvb2xUaXApOwotICAgIGVuY29kZXItPmVuY29kZShtX2FjY2Vzc2liaWxpdHlU
ZXh0KTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobV9pc0VuYWJsZWQpOwotICAgIGVuY29kZXItPmVu
Y29kZShtX2lzTGFiZWwpOwotICAgIGVuY29kZXItPmVuY29kZShtX2lzU2VsZWN0ZWQpOworICAg
IGVuY29kZXIuZW5jb2RlRW51bShtX3R5cGUpOworICAgIGVuY29kZXIuZW5jb2RlKG1fdGV4dCk7
CisgICAgZW5jb2Rlci5lbmNvZGVFbnVtKG1fdGV4dERpcmVjdGlvbik7CisgICAgZW5jb2Rlci5l
bmNvZGUobV9oYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUpOworICAgIGVuY29kZXIuZW5jb2RlKG1f
dG9vbFRpcCk7CisgICAgZW5jb2Rlci5lbmNvZGUobV9hY2Nlc3NpYmlsaXR5VGV4dCk7CisgICAg
ZW5jb2Rlci5lbmNvZGUobV9pc0VuYWJsZWQpOworICAgIGVuY29kZXIuZW5jb2RlKG1faXNMYWJl
bCk7CisgICAgZW5jb2Rlci5lbmNvZGUobV9pc1NlbGVjdGVkKTsKIH0KIAogYm9vbCBXZWJQb3B1
cEl0ZW06OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIFdlYlBvcHVw
SXRlbSYgaXRlbSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQb3B1cEl0
ZW0uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQb3B1cEl0ZW0uaAppbmRleCBkODU4NGJl
YTUzMjA5YzNjNzUxNWM2YmJhZjNiMDc5OGEwYjJmZDRlLi42ZjhlY2IxMDE2YTcwZjJmZmM4NDVj
NTcxZjgxMDI2ZjI5NzNkNjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
UG9wdXBJdGVtLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBvcHVwSXRlbS5oCkBA
IC00Niw3ICs0Niw3IEBAIHN0cnVjdCBXZWJQb3B1cEl0ZW0gewogICAgIFdlYlBvcHVwSXRlbShU
eXBlKTsKICAgICBXZWJQb3B1cEl0ZW0oVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBXZWJDb3Jl
OjpUZXh0RGlyZWN0aW9uLCBib29sIGhhc1RleHREaXJlY3Rpb25PdmVycmlkZSwgY29uc3QgU3Ry
aW5nJiB0b29sVGlwLCBjb25zdCBTdHJpbmcmIGFjY2Vzc2liaWxpdHlUZXh0LCBib29sIGlzRW5h
YmxlZCwgYm9vbCBpc0xhYmVsLCBib29sIGlzU2VsZWN0ZWQpOwogCi0gICAgdm9pZCBlbmNvZGUo
Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKikgY29uc3Q7CisgICAgdm9pZCBlbmNvZGUoQ29yZUlQ
Qzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJ
UEM6OkFyZ3VtZW50RGVjb2RlciosIFdlYlBvcHVwSXRlbSYpOwogCiAgICAgVHlwZSBtX3R5cGU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5jcHAKaW5kZXgg
NzQwYTk3MWFhYzQyYjUzZDJlMjNkM2YzYTk5ZDNmNTZhMGQ0ZmI5My4uYTRmZjU2ZDllYzIzNzZl
OWQ2YWI2MjE2ZmZiYjk3Y2U4NjYyN2QwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJQcmVmZXJlbmNlc1N0b3JlLmNwcApAQCAtNTksMTMgKzU5LDEzIEBAIFdlYlByZWZlcmVuY2Vz
U3RvcmU6OldlYlByZWZlcmVuY2VzU3RvcmUoKQogewogfQogCi12b2lkIFdlYlByZWZlcmVuY2Vz
U3RvcmU6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Cit2
b2lkIFdlYlByZWZlcmVuY2VzU3RvcmU6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIm
IGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG1fc3RyaW5nVmFsdWVzKTsK
LSAgICBlbmNvZGVyLT5lbmNvZGUobV9ib29sVmFsdWVzKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUo
bV91aW50MzJWYWx1ZXMpOwotICAgIGVuY29kZXItPmVuY29kZShtX2RvdWJsZVZhbHVlcyk7Ci0g
ICAgZW5jb2Rlci0+ZW5jb2RlKG1fZmxvYXRWYWx1ZXMpOworICAgIGVuY29kZXIuZW5jb2RlKG1f
c3RyaW5nVmFsdWVzKTsKKyAgICBlbmNvZGVyLmVuY29kZShtX2Jvb2xWYWx1ZXMpOworICAgIGVu
Y29kZXIuZW5jb2RlKG1fdWludDMyVmFsdWVzKTsKKyAgICBlbmNvZGVyLmVuY29kZShtX2RvdWJs
ZVZhbHVlcyk7CisgICAgZW5jb2Rlci5lbmNvZGUobV9mbG9hdFZhbHVlcyk7CiB9CiAKIGJvb2wg
V2ViUHJlZmVyZW5jZXNTdG9yZTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVj
b2RlciwgV2ViUHJlZmVyZW5jZXNTdG9yZSYgcmVzdWx0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmgKaW5kZXggN2JiY2FlMGMyMGVjMTM0MDNkM2ViMzEyMmQ1
NzFkMzg5MWEyYWM0Ny4uZGMwNzNkZTAzOWQ5ZmNiODgwMTgwYjlkMzc4ZjAzMTljZTgzMTUwYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5oCkBAIC0yMzMs
NyArMjMzLDcgQEAgRk9SX0VBQ0hfV0VCS0lUX1BSRUZFUkVOQ0UoREVDTEFSRV9LRVlfR0VUVEVS
UykKIHN0cnVjdCBXZWJQcmVmZXJlbmNlc1N0b3JlIHsKICAgICBXZWJQcmVmZXJlbmNlc1N0b3Jl
KCk7CiAKLSAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqKSBjb25zdDsK
KyAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKICAgICBz
dGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgV2ViUHJlZmVyZW5j
ZXNTdG9yZSYpOwogCiAgICAgLy8gTk9URTogVGhlIGdldHRlcnMgaW4gdGhpcyBjbGFzcyBoYXZl
IG5vbi1zdGFuZGFyZCBuYW1lcyB0byBhaWQgaW4gdGhlIHVzZSBvZiB0aGUgcHJlZmVyZW5jZSBt
YWNyb3MuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggYzNmY2VlNmMyYmQ4YjY3ODRlMzM0MTRmNmI3OWEwZDk4
MGQ5NmYyNi4uMTQzNmNhYTQwZGQxNjEzMTg1MDc1M2VmMzMyNTZjZWE0MjU5ODk2NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmNwcApAQCAtNTIsNjkgKzUyLDY5IEBAIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6
OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMoKQogewogfQogCi12b2lkIFdlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29k
ZXIpIGNvbnN0Cit2b2lkIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShDb3Jl
SVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2Rlci0+ZW5j
b2RlKGluamVjdGVkQnVuZGxlUGF0aCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGluamVjdGVkQnVu
ZGxlUGF0aEV4dGVuc2lvbkhhbmRsZSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGFwcGxpY2F0aW9u
Q2FjaGVEaXJlY3RvcnkpOwotICAgIGVuY29kZXItPmVuY29kZShhcHBsaWNhdGlvbkNhY2hlRGly
ZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoZGF0YWJhc2VEaXJl
Y3RvcnkpOwotICAgIGVuY29kZXItPmVuY29kZShkYXRhYmFzZURpcmVjdG9yeUV4dGVuc2lvbkhh
bmRsZSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGxvY2FsU3RvcmFnZURpcmVjdG9yeSk7Ci0gICAg
ZW5jb2Rlci0+ZW5jb2RlKGxvY2FsU3RvcmFnZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7Ci0g
ICAgZW5jb2Rlci0+ZW5jb2RlKGRpc2tDYWNoZURpcmVjdG9yeSk7Ci0gICAgZW5jb2Rlci0+ZW5j
b2RlKGRpc2tDYWNoZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7Ci0gICAgZW5jb2Rlci0+ZW5j
b2RlKGNvb2tpZVN0b3JhZ2VEaXJlY3RvcnkpOwotICAgIGVuY29kZXItPmVuY29kZShjb29raWVT
dG9yYWdlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUodXJs
U2NoZW1lc1JlZ2lzdGVyZXJkQXNFbXB0eURvY3VtZW50KTsKLSAgICBlbmNvZGVyLT5lbmNvZGUo
dXJsU2NoZW1lc1JlZ2lzdGVyZWRBc1NlY3VyZSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHVybFNj
aGVtZXNGb3JXaGljaERvbWFpblJlbGF4YXRpb25Jc0ZvcmJpZGRlbik7Ci0gICAgZW5jb2Rlci0+
ZW5jb2RlKHVybFNjaGVtZXNSZWdpc3RlcmVkQXNMb2NhbCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2Rl
KHVybFNjaGVtZXNSZWdpc3RlcmVkQXNOb0FjY2Vzcyk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHVy
bFNjaGVtZXNSZWdpc3RlcmVkQXNEaXNwbGF5SXNvbGF0ZWQpOwotICAgIGVuY29kZXItPmVuY29k
ZSh1cmxTY2hlbWVzUmVnaXN0ZXJlZEFzQ09SU0VuYWJsZWQpOwotICAgIGVuY29kZXItPmVuY29k
ZUVudW0oY2FjaGVNb2RlbCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHNob3VsZFRyYWNrVmlzaXRl
ZExpbmtzKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoc2hvdWxkQWx3YXlzVXNlQ29tcGxleFRleHRD
b2RlUGF0aCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHNob3VsZFVzZUZvbnRTbW9vdGhpbmcpOwot
ICAgIGVuY29kZXItPmVuY29kZShpY29uRGF0YWJhc2VFbmFibGVkKTsKLSAgICBlbmNvZGVyLT5l
bmNvZGUodGVybWluYXRpb25UaW1lb3V0KTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobGFuZ3VhZ2Vz
KTsKLSAgICBlbmNvZGVyLT5lbmNvZGUodGV4dENoZWNrZXJTdGF0ZSk7Ci0gICAgZW5jb2Rlci0+
ZW5jb2RlKGZ1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQpOwotICAgIGVuY29kZXItPmVuY29kZShk
ZWZhdWx0UmVxdWVzdFRpbWVvdXRJbnRlcnZhbCk7CisgICAgZW5jb2Rlci5lbmNvZGUoaW5qZWN0
ZWRCdW5kbGVQYXRoKTsKKyAgICBlbmNvZGVyLmVuY29kZShpbmplY3RlZEJ1bmRsZVBhdGhFeHRl
bnNpb25IYW5kbGUpOworICAgIGVuY29kZXIuZW5jb2RlKGFwcGxpY2F0aW9uQ2FjaGVEaXJlY3Rv
cnkpOworICAgIGVuY29kZXIuZW5jb2RlKGFwcGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnlFeHRlbnNp
b25IYW5kbGUpOworICAgIGVuY29kZXIuZW5jb2RlKGRhdGFiYXNlRGlyZWN0b3J5KTsKKyAgICBl
bmNvZGVyLmVuY29kZShkYXRhYmFzZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7CisgICAgZW5j
b2Rlci5lbmNvZGUobG9jYWxTdG9yYWdlRGlyZWN0b3J5KTsKKyAgICBlbmNvZGVyLmVuY29kZShs
b2NhbFN0b3JhZ2VEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGUpOworICAgIGVuY29kZXIuZW5jb2Rl
KGRpc2tDYWNoZURpcmVjdG9yeSk7CisgICAgZW5jb2Rlci5lbmNvZGUoZGlza0NhY2hlRGlyZWN0
b3J5RXh0ZW5zaW9uSGFuZGxlKTsKKyAgICBlbmNvZGVyLmVuY29kZShjb29raWVTdG9yYWdlRGly
ZWN0b3J5KTsKKyAgICBlbmNvZGVyLmVuY29kZShjb29raWVTdG9yYWdlRGlyZWN0b3J5RXh0ZW5z
aW9uSGFuZGxlKTsKKyAgICBlbmNvZGVyLmVuY29kZSh1cmxTY2hlbWVzUmVnaXN0ZXJlcmRBc0Vt
cHR5RG9jdW1lbnQpOworICAgIGVuY29kZXIuZW5jb2RlKHVybFNjaGVtZXNSZWdpc3RlcmVkQXNT
ZWN1cmUpOworICAgIGVuY29kZXIuZW5jb2RlKHVybFNjaGVtZXNGb3JXaGljaERvbWFpblJlbGF4
YXRpb25Jc0ZvcmJpZGRlbik7CisgICAgZW5jb2Rlci5lbmNvZGUodXJsU2NoZW1lc1JlZ2lzdGVy
ZWRBc0xvY2FsKTsKKyAgICBlbmNvZGVyLmVuY29kZSh1cmxTY2hlbWVzUmVnaXN0ZXJlZEFzTm9B
Y2Nlc3MpOworICAgIGVuY29kZXIuZW5jb2RlKHVybFNjaGVtZXNSZWdpc3RlcmVkQXNEaXNwbGF5
SXNvbGF0ZWQpOworICAgIGVuY29kZXIuZW5jb2RlKHVybFNjaGVtZXNSZWdpc3RlcmVkQXNDT1JT
RW5hYmxlZCk7CisgICAgZW5jb2Rlci5lbmNvZGVFbnVtKGNhY2hlTW9kZWwpOworICAgIGVuY29k
ZXIuZW5jb2RlKHNob3VsZFRyYWNrVmlzaXRlZExpbmtzKTsKKyAgICBlbmNvZGVyLmVuY29kZShz
aG91bGRBbHdheXNVc2VDb21wbGV4VGV4dENvZGVQYXRoKTsKKyAgICBlbmNvZGVyLmVuY29kZShz
aG91bGRVc2VGb250U21vb3RoaW5nKTsKKyAgICBlbmNvZGVyLmVuY29kZShpY29uRGF0YWJhc2VF
bmFibGVkKTsKKyAgICBlbmNvZGVyLmVuY29kZSh0ZXJtaW5hdGlvblRpbWVvdXQpOworICAgIGVu
Y29kZXIuZW5jb2RlKGxhbmd1YWdlcyk7CisgICAgZW5jb2Rlci5lbmNvZGUodGV4dENoZWNrZXJT
dGF0ZSk7CisgICAgZW5jb2Rlci5lbmNvZGUoZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZCk7Cisg
ICAgZW5jb2Rlci5lbmNvZGUoZGVmYXVsdFJlcXVlc3RUaW1lb3V0SW50ZXJ2YWwpOwogI2lmIFBM
QVRGT1JNKE1BQykgfHwgVVNFKENGVVJMU1RPUkFHRVNFU1NJT05TKQotICAgIGVuY29kZXItPmVu
Y29kZSh1aVByb2Nlc3NCdW5kbGVJZGVudGlmaWVyKTsKKyAgICBlbmNvZGVyLmVuY29kZSh1aVBy
b2Nlc3NCdW5kbGVJZGVudGlmaWVyKTsKICNlbmRpZgogI2lmIFBMQVRGT1JNKE1BQykKLSAgICBl
bmNvZGVyLT5lbmNvZGUocGFyZW50UHJvY2Vzc05hbWUpOwotICAgIGVuY29kZXItPmVuY29kZShw
cmVzZW50ZXJBcHBsaWNhdGlvblBpZCk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG5zVVJMQ2FjaGVN
ZW1vcnlDYXBhY2l0eSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG5zVVJMQ2FjaGVEaXNrQ2FwYWNp
dHkpOwotICAgIGVuY29kZXItPmVuY29kZShhY2NlbGVyYXRlZENvbXBvc2l0aW5nUG9ydCk7Ci0g
ICAgZW5jb2Rlci0+ZW5jb2RlKHVpUHJvY2Vzc0J1bmRsZVJlc291cmNlUGF0aCk7Ci0gICAgZW5j
b2Rlci0+ZW5jb2RlKHVpUHJvY2Vzc0J1bmRsZVJlc291cmNlUGF0aEV4dGVuc2lvbkhhbmRsZSk7
Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHNob3VsZEZvcmNlU2NyZWVuRm9udFN1YnN0aXR1dGlvbik7
Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHNob3VsZEVuYWJsZUtlcm5pbmdBbmRMaWdhdHVyZXNCeURl
ZmF1bHQpOworICAgIGVuY29kZXIuZW5jb2RlKHBhcmVudFByb2Nlc3NOYW1lKTsKKyAgICBlbmNv
ZGVyLmVuY29kZShwcmVzZW50ZXJBcHBsaWNhdGlvblBpZCk7CisgICAgZW5jb2Rlci5lbmNvZGUo
bnNVUkxDYWNoZU1lbW9yeUNhcGFjaXR5KTsKKyAgICBlbmNvZGVyLmVuY29kZShuc1VSTENhY2hl
RGlza0NhcGFjaXR5KTsKKyAgICBlbmNvZGVyLmVuY29kZShhY2NlbGVyYXRlZENvbXBvc2l0aW5n
UG9ydCk7CisgICAgZW5jb2Rlci5lbmNvZGUodWlQcm9jZXNzQnVuZGxlUmVzb3VyY2VQYXRoKTsK
KyAgICBlbmNvZGVyLmVuY29kZSh1aVByb2Nlc3NCdW5kbGVSZXNvdXJjZVBhdGhFeHRlbnNpb25I
YW5kbGUpOworICAgIGVuY29kZXIuZW5jb2RlKHNob3VsZEZvcmNlU2NyZWVuRm9udFN1YnN0aXR1
dGlvbik7CisgICAgZW5jb2Rlci5lbmNvZGUoc2hvdWxkRW5hYmxlS2VybmluZ0FuZExpZ2F0dXJl
c0J5RGVmYXVsdCk7CiAjZWxpZiBQTEFURk9STShXSU4pCi0gICAgZW5jb2Rlci0+ZW5jb2RlKHNo
b3VsZFBhaW50TmF0aXZlQ29udHJvbHMpOwotICAgIGVuY29kZXItPmVuY29kZShjZlVSTENhY2hl
RGlza0NhcGFjaXR5KTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoY2ZVUkxDYWNoZU1lbW9yeUNhcGFj
aXR5KTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoaW5pdGlhbEhUVFBDb29raWVBY2NlcHRQb2xpY3kp
OworICAgIGVuY29kZXIuZW5jb2RlKHNob3VsZFBhaW50TmF0aXZlQ29udHJvbHMpOworICAgIGVu
Y29kZXIuZW5jb2RlKGNmVVJMQ2FjaGVEaXNrQ2FwYWNpdHkpOworICAgIGVuY29kZXIuZW5jb2Rl
KGNmVVJMQ2FjaGVNZW1vcnlDYXBhY2l0eSk7CisgICAgZW5jb2Rlci5lbmNvZGUoaW5pdGlhbEhU
VFBDb29raWVBY2NlcHRQb2xpY3kpOwogI2lmIFVTRShDRlVSTFNUT1JBR0VTRVNTSU9OUykKICAg
ICBDRkRhdGFSZWYgc3RvcmFnZVNlc3Npb24gPSBzZXJpYWxpemVkRGVmYXVsdFN0b3JhZ2VTZXNz
aW9uLmdldCgpOwotICAgIGVuY29kZXItPmVuY29kZShzdGF0aWNfY2FzdDxib29sPihzdG9yYWdl
U2Vzc2lvbikpOworICAgIGVuY29kZXIuZW5jb2RlKHN0YXRpY19jYXN0PGJvb2w+KHN0b3JhZ2VT
ZXNzaW9uKSk7CiAgICAgaWYgKHN0b3JhZ2VTZXNzaW9uKQotICAgICAgICBDb3JlSVBDOjplbmNv
ZGUoZW5jb2Rlciwgc3RvcmFnZVNlc3Npb24pOworICAgICAgICBDb3JlSVBDOjplbmNvZGUoJmVu
Y29kZXIsIHN0b3JhZ2VTZXNzaW9uKTsKICNlbmRpZiAvLyBVU0UoQ0ZVUkxTVE9SQUdFU0VTU0lP
TlMpCiAjZW5kaWYKIAogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZ
X05PVElGSUNBVElPTlMpCi0gICAgZW5jb2Rlci0+ZW5jb2RlKG5vdGlmaWNhdGlvblBlcm1pc3Np
b25zKTsKKyAgICBlbmNvZGVyLmVuY29kZShub3RpZmljYXRpb25QZXJtaXNzaW9ucyk7CiAjZW5k
aWYKIAogI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCi0gICAgZW5jb2Rlci0+ZW5jb2RlKHVz
ZXNOZXR3b3JrUHJvY2Vzcyk7CisgICAgZW5jb2Rlci5lbmNvZGUodXNlc05ldHdvcmtQcm9jZXNz
KTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCAxZjQ4ODAzNjkyNzE4OGM1ODBkNmY2YzdjMDg2
MTljYzE0MTU5MTk2Li41YTY1MWFhZWViNDQ2ZDZhODNkZjkyYWE3ODkwMGVhZjFkZDkyOTRiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBzdHJ1Y3QgV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycygpOwogCi0gICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKikgY29u
c3Q7CisgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CiAg
ICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIFdlYlByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMmKTsKIAogICAgIFN0cmluZyBpbmplY3RlZEJ1bmRsZVBhdGg7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViVG91Y2hFdmVudC5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViVG91Y2hFdmVudC5jcHAKaW5kZXggNzIxM2M3OGRiNDRm
NjQ5NzQ0YjA5ZWEwNzZlMjY5MGFmOWMwZmVhMy4uYmUwZGVjMGYyNzE1MWVkNTg0ZDNmMzZiOGY2
ODZhN2U2YmEwZGZkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlRvdWNo
RXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJUb3VjaEV2ZW50LmNwcApA
QCAtNDAsMTEgKzQwLDExIEBAIFdlYlRvdWNoRXZlbnQ6OldlYlRvdWNoRXZlbnQoV2ViRXZlbnQ6
OlR5cGUgdHlwZSwgVmVjdG9yPFdlYlBsYXRmb3JtVG91Y2hQb2ludD4KICAgICBBU1NFUlQoaXNU
b3VjaEV2ZW50VHlwZSh0eXBlKSk7CiB9CiAKLXZvaWQgV2ViVG91Y2hFdmVudDo6ZW5jb2RlKENv
cmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKK3ZvaWQgV2ViVG91Y2hFdmVu
dDo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKICAg
ICBXZWJFdmVudDo6ZW5jb2RlKGVuY29kZXIpOwogCi0gICAgZW5jb2Rlci0+ZW5jb2RlKG1fdG91
Y2hQb2ludHMpOworICAgIGVuY29kZXIuZW5jb2RlKG1fdG91Y2hQb2ludHMpOwogfQogCiBib29s
IFdlYlRvdWNoRXZlbnQ6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIs
IFdlYlRvdWNoRXZlbnQmIHJlc3VsdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJXaGVlbEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJXaGVlbEV2ZW50
LmNwcAppbmRleCAzN2M2OTFlNjQxODU1ZWE4NjEwN2YwMjg4MjQ0NTMwOTc0MWE3MGVmLi4xOWFl
NTMyNzcyMWE3YTA3ZmU0ZmMxY2YyZTAxNDE5MTNlMDliMzQ4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViV2hlZWxFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL1dlYldoZWVsRXZlbnQuY3BwCkBAIC02OSwyMiArNjksMjIgQEAgV2ViV2hlZWxFdmVudDo6
V2ViV2hlZWxFdmVudChUeXBlIHR5cGUsIGNvbnN0IEludFBvaW50JiBwb3NpdGlvbiwgY29uc3Qg
SW50UG9pbnQKIH0KICNlbmRpZgogCi12b2lkIFdlYldoZWVsRXZlbnQ6OmVuY29kZShDb3JlSVBD
OjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Cit2b2lkIFdlYldoZWVsRXZlbnQ6OmVu
Y29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7CiAgICAgV2Vi
RXZlbnQ6OmVuY29kZShlbmNvZGVyKTsKIAotICAgIGVuY29kZXItPmVuY29kZShtX3Bvc2l0aW9u
KTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobV9nbG9iYWxQb3NpdGlvbik7Ci0gICAgZW5jb2Rlci0+
ZW5jb2RlKG1fZGVsdGEpOwotICAgIGVuY29kZXItPmVuY29kZShtX3doZWVsVGlja3MpOwotICAg
IGVuY29kZXItPmVuY29kZShtX2dyYW51bGFyaXR5KTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobV9k
aXJlY3Rpb25JbnZlcnRlZEZyb21EZXZpY2UpOworICAgIGVuY29kZXIuZW5jb2RlKG1fcG9zaXRp
b24pOworICAgIGVuY29kZXIuZW5jb2RlKG1fZ2xvYmFsUG9zaXRpb24pOworICAgIGVuY29kZXIu
ZW5jb2RlKG1fZGVsdGEpOworICAgIGVuY29kZXIuZW5jb2RlKG1fd2hlZWxUaWNrcyk7CisgICAg
ZW5jb2Rlci5lbmNvZGUobV9ncmFudWxhcml0eSk7CisgICAgZW5jb2Rlci5lbmNvZGUobV9kaXJl
Y3Rpb25JbnZlcnRlZEZyb21EZXZpY2UpOwogI2lmIFBMQVRGT1JNKE1BQykKLSAgICBlbmNvZGVy
LT5lbmNvZGUobV9waGFzZSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG1fbW9tZW50dW1QaGFzZSk7
Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG1faGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcyk7Ci0gICAg
ZW5jb2Rlci0+ZW5jb2RlKG1fc2Nyb2xsQ291bnQpOwotICAgIGVuY29kZXItPmVuY29kZShtX3Vu
YWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0YSk7CisgICAgZW5jb2Rlci5lbmNvZGUobV9waGFzZSk7
CisgICAgZW5jb2Rlci5lbmNvZGUobV9tb21lbnR1bVBoYXNlKTsKKyAgICBlbmNvZGVyLmVuY29k
ZShtX2hhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMpOworICAgIGVuY29kZXIuZW5jb2RlKG1fc2Ny
b2xsQ291bnQpOworICAgIGVuY29kZXIuZW5jb2RlKG1fdW5hY2NlbGVyYXRlZFNjcm9sbGluZ0Rl
bHRhKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvY2Fp
cm8vTGF5ZXJUcmVlQ29udGV4dENhaXJvLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9jYWly
by9MYXllclRyZWVDb250ZXh0Q2Fpcm8uY3BwCmluZGV4IDkxNTk5NzY2MDM5NDA0ZjkyNDk1ODI1
MTRiMTc5YzEwZjRiZDhhYjQuLjVkMzdhM2NjYjhmYzAwODFmNGJkZjNlNGJiOTk1NTY5OTYyMjdj
ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9jYWlyby9MYXllclRyZWVDb250
ZXh0Q2Fpcm8uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9jYWlyby9MYXllclRyZWVD
b250ZXh0Q2Fpcm8uY3BwCkBAIC00MCw3ICs0MCw3IEBAIExheWVyVHJlZUNvbnRleHQ6On5MYXll
clRyZWVDb250ZXh0KCkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIExheWVyVHJl
ZUNvbnRleHQ6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqKSBjb25zdAordm9pZCBM
YXllclRyZWVDb250ZXh0OjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3QK
IHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL2VmbC9MYXllclRyZWVDb250ZXh0RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9lZmwvTGF5ZXJUcmVlQ29udGV4dEVmbC5jcHAKaW5kZXggODgxZDc4NzgyOWQ5Y2M4ODJmZjk3
YTgyZmJkNDZkMDk4Y2FjYzAyNS4uMzJmYTk3MGE4ZTQ5NWYwZDM2NWJhYzgxOGFkYWQ0Y2RmZDQ5
YWE2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL2VmbC9MYXllclRyZWVDb250
ZXh0RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZWZsL0xheWVyVHJlZUNvbnRl
eHRFZmwuY3BwCkBAIC00MCw5ICs0MCw5IEBAIExheWVyVHJlZUNvbnRleHQ6On5MYXllclRyZWVD
b250ZXh0KCkKIHsKIH0KIAotdm9pZCBMYXllclRyZWVDb250ZXh0OjplbmNvZGUoQ29yZUlQQzo6
QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAordm9pZCBMYXllclRyZWVDb250ZXh0Ojpl
bmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVu
Y29kZXItPmVuY29kZSh3ZWJMYXllcklEKTsKKyAgICBlbmNvZGVyLmVuY29kZSh3ZWJMYXllcklE
KTsKIH0KIAogYm9vbCBMYXllclRyZWVDb250ZXh0OjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnRE
ZWNvZGVyKiBkZWNvZGVyLCBMYXllclRyZWVDb250ZXh0JiBjb250ZXh0KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL2d0ay9MYXllclRyZWVDb250ZXh0R3RrLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9ndGsvTGF5ZXJUcmVlQ29udGV4dEd0ay5jcHAKaW5kZXggZTdkOTE4
YTcwZjlkYmIxZTZjMGI3NDRiYmIyZmQ2MWRkZmI0NjhjNC4uMzhhMGQ1NGE2YWIwZTZiYzllYjVj
ODYxZDYyYzAwNjA1NzdkZGJjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL2d0
ay9MYXllclRyZWVDb250ZXh0R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZ3Rr
L0xheWVyVHJlZUNvbnRleHRHdGsuY3BwCkBAIC00MCw5ICs0MCw5IEBAIExheWVyVHJlZUNvbnRl
eHQ6On5MYXllclRyZWVDb250ZXh0KCkKIHsKIH0KIAotdm9pZCBMYXllclRyZWVDb250ZXh0Ojpl
bmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAordm9pZCBMYXll
clRyZWVDb250ZXh0OjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBj
b25zdAogewotICAgIGVuY29kZXItPmVuY29kZSh3aW5kb3dIYW5kbGUpOworICAgIGVuY29kZXIu
ZW5jb2RlKHdpbmRvd0hhbmRsZSk7CiB9CiAKIGJvb2wgTGF5ZXJUcmVlQ29udGV4dDo6ZGVjb2Rl
KENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgTGF5ZXJUcmVlQ29udGV4dCYgY29u
dGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQXR0cmlidXRlZFN0
cmluZy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9BdHRyaWJ1dGVkU3RyaW5nLmgKaW5k
ZXggNmM4YThhZTI1MmE1Yjg5OWIwMjRhNjVlYzY2ZTFmNmViMWE1ZjA0OS4uNmQzNTA3ZjZhNGUx
NTFmZTg2MTJkMjIwM2FlNDI4ZjRiZTZiYTYzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL21hYy9BdHRyaWJ1dGVkU3RyaW5nLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L21hYy9BdHRyaWJ1dGVkU3RyaW5nLmgKQEAgLTM4LDcgKzM4LDcgQEAgbmFtZXNwYWNlIENvcmVJ
UEMgewogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHN0cnVjdCBBdHRyaWJ1dGVkU3RyaW5nIHsKLSAg
ICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqKSBjb25zdDsKKyAgICB2b2lk
IGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKICAgICBzdGF0aWMgYm9v
bCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgQXR0cmlidXRlZFN0cmluZyYpOwog
ICAgIAogICAgIFJldGFpblB0cjxOU0F0dHJpYnV0ZWRTdHJpbmc+IHN0cmluZzsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQXR0cmlidXRlZFN0cmluZy5tbSBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9tYWMvQXR0cmlidXRlZFN0cmluZy5tbQppbmRleCBiYzdjZmQwODZl
Mjc4MGEwOTZiOWUwMjc1NmNiZTEzMmQ3MjcwMzM0Li5iN2E0N2Q3YmMzNGJhOGJlY2UwNTIxZWQy
YzMwZGY2OTMwZjk3MWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0F0
dHJpYnV0ZWRTdHJpbmcubW0KKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9BdHRyaWJ1
dGVkU3RyaW5nLm1tCkBAIC0zMiwxMiArMzIsMTIgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAK
LXZvaWQgQXR0cmlidXRlZFN0cmluZzo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rlciog
ZW5jb2RlcikgY29uc3QKK3ZvaWQgQXR0cmlidXRlZFN0cmluZzo6ZW5jb2RlKENvcmVJUEM6OkFy
Z3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyLT5lbmNvZGUoIXN0
cmluZyk7CisgICAgZW5jb2Rlci5lbmNvZGUoIXN0cmluZyk7CiAgICAgaWYgKCFzdHJpbmcpCiAg
ICAgICAgIHJldHVybjsKLSAgICBDb3JlSVBDOjplbmNvZGUoZW5jb2Rlciwgc3RyaW5nLmdldCgp
KTsKKyAgICBDb3JlSVBDOjplbmNvZGUoJmVuY29kZXIsIHN0cmluZy5nZXQoKSk7CiB9CiAKIGJv
b2wgQXR0cmlidXRlZFN0cmluZzo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVj
b2RlciwgQXR0cmlidXRlZFN0cmluZyYgYXR0cmlidXRlZFN0cmluZykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ29sb3JTcGFjZURhdGEuaCBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9tYWMvQ29sb3JTcGFjZURhdGEuaAppbmRleCBjZGVhODZlZTUzMTgxYzQ2NTFkZDM5
NWZhZTkyYzgzY2MzNmE0YzAwLi5hZmU1Yjc3MzZlNmRhYmZmMDg3MWFmMmM3ZTc3Njc0ZmEzMTQ3
NzYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0NvbG9yU3BhY2VEYXRh
LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9Db2xvclNwYWNlRGF0YS5oCkBAIC0z
Niw3ICszNiw3IEBAIG5hbWVzcGFjZSBDb3JlSVBDIHsKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBz
dHJ1Y3QgQ29sb3JTcGFjZURhdGEgewotICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50
RW5jb2RlciopIGNvbnN0OworICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rl
ciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29k
ZXIqLCBDb2xvclNwYWNlRGF0YSYpOwogCiAgICAgUmV0YWluUHRyPENHQ29sb3JTcGFjZVJlZj4g
Y2dDb2xvclNwYWNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9Db2xv
clNwYWNlRGF0YS5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ29sb3JTcGFjZURhdGEu
bW0KaW5kZXggNzk2YzA2ZDBhZGJmNmY4ZGI4NDA1ZDcyMWQ4MTUxODEyZTNhY2Y4OS4uYTkzNGE5
OTJiMTY1NTdjMDBkNGVjZTA5NGVmMTY5NjU0ODFlMDYxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL21hYy9Db2xvclNwYWNlRGF0YS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvbWFjL0NvbG9yU3BhY2VEYXRhLm1tCkBAIC0zOCwyNiArMzgsMjYgQEAgZW51bSBFbmNv
ZGVkRGF0YVR5cGUgewogICAgIERhdGEsCiB9OwogCi12b2lkIENvbG9yU3BhY2VEYXRhOjplbmNv
ZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAordm9pZCBDb2xvclNw
YWNlRGF0YTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QK
IHsKICAgICBpZiAoY2dDb2xvclNwYWNlKSB7CiAgICAgICAgIC8vIFRyeSB0byBlbmNvZGUgdGhl
IG5hbWUuCiAgICAgICAgIGlmIChSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IG5hbWUgPSBhZG9wdENG
KENHQ29sb3JTcGFjZUNvcHlOYW1lKGNnQ29sb3JTcGFjZS5nZXQoKSkpKSB7Ci0gICAgICAgICAg
ICBlbmNvZGVyLT5lbmNvZGVFbnVtKE5hbWUpOwotICAgICAgICAgICAgQ29yZUlQQzo6ZW5jb2Rl
KGVuY29kZXIsIG5hbWUuZ2V0KCkpOworICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKE5h
bWUpOworICAgICAgICAgICAgQ29yZUlQQzo6ZW5jb2RlKCZlbmNvZGVyLCBuYW1lLmdldCgpKTsK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCiAgICAgICAgIC8vIEZhaWxpbmcgdGhh
dCwganVzdCBlbmNvZGUgdGhlIElDQyBkYXRhLgogICAgICAgICBpZiAoUmV0YWluUHRyPENGRGF0
YVJlZj4gcHJvZmlsZURhdGEgPSBhZG9wdENGKENHQ29sb3JTcGFjZUNvcHlJQ0NQcm9maWxlKGNn
Q29sb3JTcGFjZS5nZXQoKSkpKSB7Ci0gICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGVFbnVtKERh
dGEpOwotICAgICAgICAgICAgQ29yZUlQQzo6ZW5jb2RlKGVuY29kZXIsIHByb2ZpbGVEYXRhLmdl
dCgpKTsKKyAgICAgICAgICAgIGVuY29kZXIuZW5jb2RlRW51bShEYXRhKTsKKyAgICAgICAgICAg
IENvcmVJUEM6OmVuY29kZSgmZW5jb2RlciwgcHJvZmlsZURhdGEuZ2V0KCkpOwogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQogCiAgICAgLy8gVGhlIGNvbG9yIHNwYWNlIHdh
cyBudWxsIG9yIGZhaWxlZCB0byBiZSBlbmNvZGVkLgotICAgIGVuY29kZXItPmVuY29kZUVudW0o
TnVsbCk7CisgICAgZW5jb2Rlci5lbmNvZGVFbnVtKE51bGwpOwogfQogCiBib29sIENvbG9yU3Bh
Y2VEYXRhOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBDb2xvclNw
YWNlRGF0YSYgY29sb3JTcGFjZURhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvbWFjL0xheWVyVHJlZUNvbnRleHRNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFj
L0xheWVyVHJlZUNvbnRleHRNYWMubW0KaW5kZXggZTRhZDFjZTBiZDIwNTdmY2Q5ZjAwZWU1ZDkw
OTM1MzZiNThiZGJmYS4uZDU5NTdiZjAzNmRmNTkxZWU2MWIyMWE2MjY3MTUwMWMxMmJjY2I2OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9MYXllclRyZWVDb250ZXh0TWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvTGF5ZXJUcmVlQ29udGV4dE1hYy5t
bQpAQCAtNDAsOSArNDAsOSBAQCBMYXllclRyZWVDb250ZXh0Ojp+TGF5ZXJUcmVlQ29udGV4dCgp
CiB7CiB9CiAKLXZvaWQgTGF5ZXJUcmVlQ29udGV4dDo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50
RW5jb2RlciogZW5jb2RlcikgY29uc3QKK3ZvaWQgTGF5ZXJUcmVlQ29udGV4dDo6ZW5jb2RlKENv
cmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyLT5l
bmNvZGUoY29udGV4dElEKTsKKyAgICBlbmNvZGVyLmVuY29kZShjb250ZXh0SUQpOwogfQogCiBi
b29sIExheWVyVHJlZUNvbnRleHQ6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRl
Y29kZXIsIExheWVyVHJlZUNvbnRleHQmIHJlc3VsdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9tYWMvUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8uaCBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9tYWMvUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8uaAppbmRleCA3ZWY1YjM3NzBlZWFk
ZDNlNzZkMDYwNjRkZDBlYTVlMjQxNWU3NWI1Li45M2YwOWYzNjkxYmJmMmY1Mjg5YTRkMDU1OGM0
ZDJmYTZmMzc3MTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1BsYXRm
b3JtQ2VydGlmaWNhdGVJbmZvLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9QbGF0
Zm9ybUNlcnRpZmljYXRlSW5mby5oCkBAIC00NCw3ICs0NCw3IEBAIHB1YmxpYzoKIAogICAgIENG
QXJyYXlSZWYgY2VydGlmaWNhdGVDaGFpbigpIGNvbnN0IHsgcmV0dXJuIG1fY2VydGlmaWNhdGVD
aGFpbi5nZXQoKTsgfQogCi0gICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVy
KiBlbmNvZGVyKSBjb25zdDsKKyAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29k
ZXImKSBjb25zdDsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKiBkZWNvZGVyLCBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyYgdCk7CiAKICNpZm5kZWYgTkRF
QlVHCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1BsYXRmb3JtQ2VydGlm
aWNhdGVJbmZvLm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9QbGF0Zm9ybUNlcnRpZmlj
YXRlSW5mby5tbQppbmRleCBkYjJiOTBlNzVkMDhhODFlMjQ2OTgyZDNjNzU4ODNhMjBhMWQyYWQ5
Li43ZjI5MTUzODBlNDIyMTZlYTViMTYwMGU5YTAxNGEwOWRmNjgxMTc4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1BsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8ubW0KQEAg
LTQ5LDE1ICs0OSwxNSBAQCBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbzo6UGxhdGZvcm1DZXJ0aWZp
Y2F0ZUluZm8oQ0ZBcnJheVJlZiBjZXJ0aWZpY2F0ZUNoYWluKQogewogfQogCi12b2lkIFBsYXRm
b3JtQ2VydGlmaWNhdGVJbmZvOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNv
ZGVyKSBjb25zdAordm9pZCBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbzo6ZW5jb2RlKENvcmVJUEM6
OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKICAgICBpZiAoIW1fY2VydGlmaWNh
dGVDaGFpbikgewotICAgICAgICBlbmNvZGVyLT5lbmNvZGUoZmFsc2UpOworICAgICAgICBlbmNv
ZGVyLmVuY29kZShmYWxzZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBlbmNvZGVy
LT5lbmNvZGUodHJ1ZSk7Ci0gICAgQ29yZUlQQzo6ZW5jb2RlKGVuY29kZXIsIG1fY2VydGlmaWNh
dGVDaGFpbi5nZXQoKSk7CisgICAgZW5jb2Rlci5lbmNvZGUodHJ1ZSk7CisgICAgQ29yZUlQQzo6
ZW5jb2RlKCZlbmNvZGVyLCBtX2NlcnRpZmljYXRlQ2hhaW4uZ2V0KCkpOwogfQogCiBib29sIFBs
YXRmb3JtQ2VydGlmaWNhdGVJbmZvOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBk
ZWNvZGVyLCBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyYgYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9tYWMvU2FuZGJveEV4dGVuc2lvbk1hYy5tbSBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9tYWMvU2FuZGJveEV4dGVuc2lvbk1hYy5tbQppbmRleCAxMDlkMWViODgxOGUxZTFl
ZmY4MDE5MzI0YTc0OTZjMmU3ODcwMGE5Li5iNmMyYzg1OTJiNTkwYTAwY2U4YjY3MTMyYjdhZTE2
ODQ1NjM1ZWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NhbmRib3hF
eHRlbnNpb25NYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TYW5kYm94RXh0
ZW5zaW9uTWFjLm1tCkBAIC01MywxMCArNTMsMTAgQEAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxl
Ojp+SGFuZGxlKCkKICAgICB9CiB9CiAKLXZvaWQgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlOjpl
bmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAordm9pZCBTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGU6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVu
Y29kZXIpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3NhbmRib3hFeHRlbnNpb24pIHsKLSAgICAgICAg
ZW5jb2Rlci0+ZW5jb2RlVmFyaWFibGVMZW5ndGhCeXRlQXJyYXkoQ29yZUlQQzo6RGF0YVJlZmVy
ZW5jZSgpKTsKKyAgICAgICAgZW5jb2Rlci5lbmNvZGVWYXJpYWJsZUxlbmd0aEJ5dGVBcnJheShD
b3JlSVBDOjpEYXRhUmVmZXJlbmNlKCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC02
NCw3ICs2NCw3IEBAIHZvaWQgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlOjplbmNvZGUoQ29yZUlQ
Qzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAogICAgIGNvbnN0IGNoYXIgKnNlcmlh
bGl6ZWRGb3JtYXQgPSBXS1NhbmRib3hFeHRlbnNpb25HZXRTZXJpYWxpemVkRm9ybWF0KG1fc2Fu
ZGJveEV4dGVuc2lvbiwgJmxlbmd0aCk7CiAgICAgQVNTRVJUKHNlcmlhbGl6ZWRGb3JtYXQpOwog
Ci0gICAgZW5jb2Rlci0+ZW5jb2RlVmFyaWFibGVMZW5ndGhCeXRlQXJyYXkoQ29yZUlQQzo6RGF0
YVJlZmVyZW5jZShyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihzZXJpYWxpemVkRm9y
bWF0KSwgbGVuZ3RoKSk7CisgICAgZW5jb2Rlci5lbmNvZGVWYXJpYWJsZUxlbmd0aEJ5dGVBcnJh
eShDb3JlSVBDOjpEYXRhUmVmZXJlbmNlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+
KHNlcmlhbGl6ZWRGb3JtYXQpLCBsZW5ndGgpKTsKIAogICAgIC8vIEVuY29kaW5nIHdpbGwgZGVz
dHJveSB0aGUgc2FuZGJveCBleHRlbnNpb24gbG9jYWxseS4KICAgICBXS1NhbmRib3hFeHRlbnNp
b25EZXN0cm95KG1fc2FuZGJveEV4dGVuc2lvbik7CkBAIC0xMjYsMTEgKzEyNiwxMSBAQCBzaXpl
X3QgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXk6OnNpemUoKSBjb25zdAogICAgIHJldHVy
biBtX3NpemU7CiB9CiAKLXZvaWQgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXk6OmVuY29k
ZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Cit2b2lkIFNhbmRib3hF
eHRlbnNpb246OkhhbmRsZUFycmF5OjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBl
bmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXItPmVuY29kZShzdGF0aWNfY2FzdDx1aW50NjRf
dD4oc2l6ZSgpKSk7CisgICAgZW5jb2Rlci5lbmNvZGUoc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHNp
emUoKSkpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9zaXplOyArK2kpCi0gICAgICAg
IGVuY29kZXItPmVuY29kZShtX2RhdGFbaV0pOworICAgICAgICBlbmNvZGVyLmVuY29kZShtX2Rh
dGFbaV0pOwogICAgIAogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFj
L1NlY0l0ZW1SZXF1ZXN0RGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0l0
ZW1SZXF1ZXN0RGF0YS5jcHAKaW5kZXggMmZiMmYyODQ1ODcxZTNmZjEzNjZiOTA2NjY0YTdkZmFh
ODBkYjEyMi4uNGMyOGQyMmJhZTNiN2I0NDFlMDkxNGZjMzcwNzIzMDc5OTcyNDk4MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TZWNJdGVtUmVxdWVzdERhdGEuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjSXRlbVJlcXVlc3REYXRhLmNwcApAQCAt
NDksMTUgKzQ5LDE1IEBAIFNlY0l0ZW1SZXF1ZXN0RGF0YTo6U2VjSXRlbVJlcXVlc3REYXRhKFR5
cGUgdHlwZSwgQ0ZEaWN0aW9uYXJ5UmVmIHF1ZXJ5LCBDRkRpY3RpCiB7CiB9CiAKLXZvaWQgU2Vj
SXRlbVJlcXVlc3REYXRhOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVy
KSBjb25zdAordm9pZCBTZWNJdGVtUmVxdWVzdERhdGE6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVu
dEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlRW51bShtX3R5
cGUpOworICAgIGVuY29kZXIuZW5jb2RlRW51bShtX3R5cGUpOwogCi0gICAgQ29yZUlQQzo6ZW5j
b2RlKGVuY29kZXIsIG1fcXVlcnlEaWN0aW9uYXJ5LmdldCgpKTsKKyAgICBDb3JlSVBDOjplbmNv
ZGUoJmVuY29kZXIsIG1fcXVlcnlEaWN0aW9uYXJ5LmdldCgpKTsKIAotICAgIGVuY29kZXItPmVu
Y29kZShzdGF0aWNfY2FzdDxib29sPihtX2F0dHJpYnV0ZXNUb01hdGNoKSk7CisgICAgZW5jb2Rl
ci5lbmNvZGUoc3RhdGljX2Nhc3Q8Ym9vbD4obV9hdHRyaWJ1dGVzVG9NYXRjaCkpOwogICAgIGlm
IChtX2F0dHJpYnV0ZXNUb01hdGNoKQotICAgICAgICBDb3JlSVBDOjplbmNvZGUoZW5jb2Rlciwg
bV9hdHRyaWJ1dGVzVG9NYXRjaC5nZXQoKSk7CisgICAgICAgIENvcmVJUEM6OmVuY29kZSgmZW5j
b2RlciwgbV9hdHRyaWJ1dGVzVG9NYXRjaC5nZXQoKSk7CiB9CiAKIGJvb2wgU2VjSXRlbVJlcXVl
c3REYXRhOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBTZWNJdGVt
UmVxdWVzdERhdGEmIHNlY0l0ZW1SZXF1ZXN0RGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9tYWMvU2VjSXRlbVJlcXVlc3REYXRhLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvbWFjL1NlY0l0ZW1SZXF1ZXN0RGF0YS5oCmluZGV4IDU3YjE4Y2ZjNjcyNGU5NDY1ZDY4ZDIy
NGI4MTk5ZDhkODI1MWYyOWUuLmNhZTJjMGFjYTg2MTVjOTZhODkzYzE3MDUwYjgyYzFiNjQ2NTJj
Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjSXRlbVJlcXVlc3RE
YXRhLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TZWNJdGVtUmVxdWVzdERhdGEu
aApAQCAtNTAsNyArNTAsNyBAQCBwdWJsaWM6CiAgICAgU2VjSXRlbVJlcXVlc3REYXRhKFR5cGUs
IENGRGljdGlvbmFyeVJlZiBxdWVyeSk7CiAgICAgU2VjSXRlbVJlcXVlc3REYXRhKFR5cGUsIENG
RGljdGlvbmFyeVJlZiBxdWVyeSwgQ0ZEaWN0aW9uYXJ5UmVmIGF0dHJpYnV0ZXNUb01hdGNoKTsK
IAotICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciopIGNvbnN0OworICAg
IHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRp
YyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBTZWNJdGVtUmVxdWVzdERh
dGEmKTsKIAogICAgIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TZWNJdGVtUmVzcG9uc2VEYXRhLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjSXRlbVJlc3BvbnNlRGF0YS5jcHAKaW5kZXgg
MGNjOGYxMzQ3MWQ0YzFmYTIwNjZjYTk5MzU1MGQ3OWNiZjc3NjM5YS4uNmM0YmFkMTZhNTU5Mjcw
MDZjNGYzZWIwODRkYWNmMmViNTNlYmJhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL21hYy9TZWNJdGVtUmVzcG9uc2VEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvbWFjL1NlY0l0ZW1SZXNwb25zZURhdGEuY3BwCkBAIC00MSwxMiArNDEsMTIgQEAgU2VjSXRl
bVJlc3BvbnNlRGF0YTo6U2VjSXRlbVJlc3BvbnNlRGF0YShPU1N0YXR1cyByZXN1bHRDb2RlLCBD
RlR5cGVSZWYgcmVzdWx0T2IKIHsKIH0KIAotdm9pZCBTZWNJdGVtUmVzcG9uc2VEYXRhOjplbmNv
ZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAordm9pZCBTZWNJdGVt
UmVzcG9uc2VEYXRhOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBj
b25zdAogewotICAgIGVuY29kZXItPmVuY29kZShzdGF0aWNfY2FzdDxpbnQ2NF90PihtX3Jlc3Vs
dENvZGUpKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoc3RhdGljX2Nhc3Q8Ym9vbD4obV9yZXN1bHRP
YmplY3QuZ2V0KCkpKTsKKyAgICBlbmNvZGVyLmVuY29kZShzdGF0aWNfY2FzdDxpbnQ2NF90Piht
X3Jlc3VsdENvZGUpKTsKKyAgICBlbmNvZGVyLmVuY29kZShzdGF0aWNfY2FzdDxib29sPihtX3Jl
c3VsdE9iamVjdC5nZXQoKSkpOwogICAgIGlmIChtX3Jlc3VsdE9iamVjdCkKLSAgICAgICAgQ29y
ZUlQQzo6ZW5jb2RlKGVuY29kZXIsIG1fcmVzdWx0T2JqZWN0LmdldCgpKTsKKyAgICAgICAgQ29y
ZUlQQzo6ZW5jb2RlKCZlbmNvZGVyLCBtX3Jlc3VsdE9iamVjdC5nZXQoKSk7CiB9CiAKIGJvb2wg
U2VjSXRlbVJlc3BvbnNlRGF0YTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVj
b2RlciwgU2VjSXRlbVJlc3BvbnNlRGF0YSYgc2VjSXRlbVJlc3BvbnNlRGF0YSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjSXRlbVJlc3BvbnNlRGF0YS5oIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TZWNJdGVtUmVzcG9uc2VEYXRhLmgKaW5kZXggNWM5NDMz
NjkyNzI0MzJkZjg2NGQ2MWYxZTEwZDcxN2U5ZGZlNDY2OS4uY2Y1YzllZTdhM2QxYmMwYzhhOTlh
NWRkNjg0N2U4NDc5MmMxODFiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21h
Yy9TZWNJdGVtUmVzcG9uc2VEYXRhLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9T
ZWNJdGVtUmVzcG9uc2VEYXRhLmgKQEAgLTQwLDcgKzQwLDcgQEAgcHVibGljOgogICAgIFNlY0l0
ZW1SZXNwb25zZURhdGEoKTsKICAgICBTZWNJdGVtUmVzcG9uc2VEYXRhKE9TU3RhdHVzLCBDRlR5
cGVSZWYgcmVzdWx0KTsKIAotICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rl
ciopIGNvbnN0OworICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNv
bnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBT
ZWNJdGVtUmVzcG9uc2VEYXRhJik7CiAKICAgICBSZXRhaW5QdHI8Q0ZUeXBlUmVmPiYgcmVzdWx0
T2JqZWN0KCkgeyByZXR1cm4gbV9yZXN1bHRPYmplY3Q7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9tYWMvU2VjS2V5Y2hhaW5JdGVtUmVxdWVzdERhdGEuY3BwIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL21hYy9TZWNLZXljaGFpbkl0ZW1SZXF1ZXN0RGF0YS5jcHAKaW5kZXgg
ZGNiZjk5NDU4YzY5NWEyOGQ3MGExNmIyZGM0Y2U3MjJlOTBmMjZhMi4uMmVlM2U0OGNkNDk4YjE0
MmI4ZWE4ZDNkZjE5ODAxN2Q1ZDI5NjJkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL21hYy9TZWNLZXljaGFpbkl0ZW1SZXF1ZXN0RGF0YS5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL21hYy9TZWNLZXljaGFpbkl0ZW1SZXF1ZXN0RGF0YS5jcHAKQEAgLTEyMywxOSAr
MTIzLDE5IEBAIFNlY0tleWNoYWluQXR0cmlidXRlTGlzdCogU2VjS2V5Y2hhaW5JdGVtUmVxdWVz
dERhdGE6OmF0dHJpYnV0ZUxpc3QoKSBjb25zdAogICAgIHJldHVybiBtX2F0dHJzLT5tX2F0dHJp
YnV0ZUxpc3QuZ2V0KCk7CiB9CiAKLXZvaWQgU2VjS2V5Y2hhaW5JdGVtUmVxdWVzdERhdGE6OmVu
Y29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Cit2b2lkIFNlY0tl
eWNoYWluSXRlbVJlcXVlc3REYXRhOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBl
bmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXItPmVuY29kZUVudW0obV90eXBlKTsKKyAgICBl
bmNvZGVyLmVuY29kZUVudW0obV90eXBlKTsKIAotICAgIGVuY29kZXItPmVuY29kZShzdGF0aWNf
Y2FzdDxib29sPihtX2tleWNoYWluSXRlbSkpOworICAgIGVuY29kZXIuZW5jb2RlKHN0YXRpY19j
YXN0PGJvb2w+KG1fa2V5Y2hhaW5JdGVtKSk7CiAgICAgaWYgKG1fa2V5Y2hhaW5JdGVtKQotICAg
ICAgICBDb3JlSVBDOjplbmNvZGUoZW5jb2RlciwgbV9rZXljaGFpbkl0ZW0uZ2V0KCkpOworICAg
ICAgICBDb3JlSVBDOjplbmNvZGUoJmVuY29kZXIsIG1fa2V5Y2hhaW5JdGVtLmdldCgpKTsKIAot
ICAgIGVuY29kZXItPmVuY29kZShzdGF0aWNfY2FzdDxpbnQzMl90PihtX2tleWNoYWluQXR0cmli
dXRlcy5zaXplKCkpKTsKKyAgICBlbmNvZGVyLmVuY29kZShzdGF0aWNfY2FzdDxpbnQzMl90Piht
X2tleWNoYWluQXR0cmlidXRlcy5zaXplKCkpKTsKICAgICBmb3IgKHNpemVfdCBpID0gMCwgY291
bnQgPSBtX2tleWNoYWluQXR0cmlidXRlcy5zaXplKCk7IGkgPCBjb3VudDsgKytpKQotICAgICAg
ICBDb3JlSVBDOjplbmNvZGUoZW5jb2RlciwgbV9rZXljaGFpbkF0dHJpYnV0ZXNbaV0pOworICAg
ICAgICBDb3JlSVBDOjplbmNvZGUoJmVuY29kZXIsIG1fa2V5Y2hhaW5BdHRyaWJ1dGVzW2ldKTsK
ICAgICAKLSAgICBlbmNvZGVyLT5lbmNvZGUoc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG1faXRlbUNs
YXNzKSk7CisgICAgZW5jb2Rlci5lbmNvZGUoc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG1faXRlbUNs
YXNzKSk7CiAgICAgbV9kYXRhUmVmZXJlbmNlLmVuY29kZShlbmNvZGVyKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TZWNLZXljaGFpbkl0ZW1SZXF1ZXN0RGF0
YS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TZWNLZXljaGFpbkl0ZW1SZXF1ZXN0RGF0
YS5oCmluZGV4IDUxMmVhNTRiZDI0NTVhM2NmNjU5MzBkZWZjZDA2NmM2ZmZiYzJhMzguLjE4MTIz
MWJkNjE2NjdlMjFkNTY5NmQ3OGI5N2JlOGI5NWVlYWZhMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9tYWMvU2VjS2V5Y2hhaW5JdGVtUmVxdWVzdERhdGEuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0tleWNoYWluSXRlbVJlcXVlc3REYXRhLmgKQEAgLTU4
LDcgKzU4LDcgQEAgcHVibGljOgogICAgIFNlY0tleWNoYWluSXRlbVJlcXVlc3REYXRhKFR5cGUs
IFNlY0l0ZW1DbGFzcywgU2VjS2V5Y2hhaW5BdHRyaWJ1dGVMaXN0KiwgVUludDMyIGxlbmd0aCwg
Y29uc3Qgdm9pZCogZGF0YSk7CiAgICAgflNlY0tleWNoYWluSXRlbVJlcXVlc3REYXRhKCk7CiAK
LSAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqKSBjb25zdDsKKyAgICB2
b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKICAgICBzdGF0aWMg
Ym9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgU2VjS2V5Y2hhaW5JdGVtUmVx
dWVzdERhdGEmKTsKIAogICAgIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TZWNLZXljaGFpbkl0ZW1SZXNw
b25zZURhdGEuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TZWNLZXljaGFpbkl0ZW1S
ZXNwb25zZURhdGEuY3BwCmluZGV4IDI0N2Y4OWI2YWM5OWY4MmY4NzFmNzkzZDg5MDZhM2JlNDg0
OTlhMDcuLjQ5NWIzMDEyY2I3YTcyY2YxNDM3ZGJiNTc4NGFiMDA0NTk2OTU5ZjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjS2V5Y2hhaW5JdGVtUmVzcG9uc2VEYXRh
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0tleWNoYWluSXRlbVJlc3Bv
bnNlRGF0YS5jcHAKQEAgLTYzLDIxICs2MywyMSBAQCBTZWNLZXljaGFpbkl0ZW1SZXNwb25zZURh
dGE6OlNlY0tleWNoYWluSXRlbVJlc3BvbnNlRGF0YShPU1N0YXR1cyByZXN1bHRDb2RlKQogewog
fQogCi12b2lkIFNlY0tleWNoYWluSXRlbVJlc3BvbnNlRGF0YTo6ZW5jb2RlKENvcmVJUEM6OkFy
Z3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKK3ZvaWQgU2VjS2V5Y2hhaW5JdGVtUmVzcG9u
c2VEYXRhOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAog
ewotICAgIGVuY29kZXItPmVuY29kZShzdGF0aWNfY2FzdDxpbnQ2NF90PihtX3Jlc3VsdENvZGUp
KTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KG1faXRlbUNsYXNz
KSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHN0YXRpY19jYXN0PHVpbnQzMl90PihtX2F0dHJpYnV0
ZXMuc2l6ZSgpKSk7CisgICAgZW5jb2Rlci5lbmNvZGUoc3RhdGljX2Nhc3Q8aW50NjRfdD4obV9y
ZXN1bHRDb2RlKSk7CisgICAgZW5jb2Rlci5lbmNvZGUoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KG1f
aXRlbUNsYXNzKSk7CisgICAgZW5jb2Rlci5lbmNvZGUoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KG1f
YXR0cmlidXRlcy5zaXplKCkpKTsKICAgICBmb3IgKHNpemVfdCBpID0gMCwgY291bnQgPSBtX2F0
dHJpYnV0ZXMuc2l6ZSgpOyBpIDwgY291bnQ7ICsraSkKLSAgICAgICAgQ29yZUlQQzo6ZW5jb2Rl
KGVuY29kZXIsIG1fYXR0cmlidXRlc1tpXSk7CisgICAgICAgIENvcmVJUEM6OmVuY29kZSgmZW5j
b2RlciwgbV9hdHRyaWJ1dGVzW2ldKTsKIAotICAgIGVuY29kZXItPmVuY29kZShzdGF0aWNfY2Fz
dDxib29sPihtX2RhdGEpKTsKKyAgICBlbmNvZGVyLmVuY29kZShzdGF0aWNfY2FzdDxib29sPiht
X2RhdGEpKTsKICAgICBpZiAobV9kYXRhKQotICAgICAgICBDb3JlSVBDOjplbmNvZGUoZW5jb2Rl
ciwgbV9kYXRhLmdldCgpKTsKKyAgICAgICAgQ29yZUlQQzo6ZW5jb2RlKCZlbmNvZGVyLCBtX2Rh
dGEuZ2V0KCkpOwogCi0gICAgZW5jb2Rlci0+ZW5jb2RlKHN0YXRpY19jYXN0PGJvb2w+KG1fa2V5
Y2hhaW5JdGVtKSk7CisgICAgZW5jb2Rlci5lbmNvZGUoc3RhdGljX2Nhc3Q8Ym9vbD4obV9rZXlj
aGFpbkl0ZW0pKTsKICAgICBpZiAobV9rZXljaGFpbkl0ZW0pCi0gICAgICAgIENvcmVJUEM6OmVu
Y29kZShlbmNvZGVyLCBtX2tleWNoYWluSXRlbS5nZXQoKSk7CisgICAgICAgIENvcmVJUEM6OmVu
Y29kZSgmZW5jb2RlciwgbV9rZXljaGFpbkl0ZW0uZ2V0KCkpOwogfQogCiBib29sIFNlY0tleWNo
YWluSXRlbVJlc3BvbnNlRGF0YTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVj
b2RlciwgU2VjS2V5Y2hhaW5JdGVtUmVzcG9uc2VEYXRhJiBzZWNLZXljaGFpbkl0ZW1SZXNwb25z
ZURhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0tleWNoYWlu
SXRlbVJlc3BvbnNlRGF0YS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9TZWNLZXljaGFp
bkl0ZW1SZXNwb25zZURhdGEuaAppbmRleCAwOWIzOGYwYWU1MDE5ZjZjNWU1M2M4NjMwYmI1NDY3
MjA5ZGY3YmZiLi5jZGRjZmMyMThmOWNlY2ZmZjdlNGEwYWZhYTI4ZGYxYWE4Mzc3NjhmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1NlY0tleWNoYWluSXRlbVJlc3BvbnNl
RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvU2VjS2V5Y2hhaW5JdGVtUmVz
cG9uc2VEYXRhLmgKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogICAgIFNlY0tleWNoYWluSXRl
bVJlc3BvbnNlRGF0YShPU1N0YXR1cywgUmV0YWluUHRyPFNlY0tleWNoYWluSXRlbVJlZj4pOwog
ICAgIFNlY0tleWNoYWluSXRlbVJlc3BvbnNlRGF0YShPU1N0YXR1cyk7CiAKLSAgICB2b2lkIGVu
Y29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqKSBjb25zdDsKKyAgICB2b2lkIGVuY29kZShD
b3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUo
Q29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgU2VjS2V5Y2hhaW5JdGVtUmVzcG9uc2VEYXRhJik7
CiAKICAgICBTZWNJdGVtQ2xhc3MgaXRlbUNsYXNzKCkgY29uc3QgeyByZXR1cm4gbV9pdGVtQ2xh
c3M7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9xdC9MYXllclRyZWVDb250
ZXh0UXQuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3F0L0xheWVyVHJlZUNvbnRleHRRdC5j
cHAKaW5kZXggZDM3ZDc5Y2IyMTNkOTZiZWJhNzBmZWYxYTM4MDdlZDVlZWE4MzQzYy4uMDBlYTg3
MzVmYWZlYmNjMzcxMWVlMTM1NGI4OTAyM2I0OTMwMTAyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL3F0L0xheWVyVHJlZUNvbnRleHRRdC5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL3F0L0xheWVyVHJlZUNvbnRleHRRdC5jcHAKQEAgLTQwLDkgKzQwLDkgQEAgTGF5
ZXJUcmVlQ29udGV4dDo6fkxheWVyVHJlZUNvbnRleHQoKQogewogfQogCi12b2lkIExheWVyVHJl
ZUNvbnRleHQ6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0
Cit2b2lkIExheWVyVHJlZUNvbnRleHQ6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIm
IGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHdlYkxheWVySUQpOworICAg
IGVuY29kZXIuZW5jb2RlKHdlYkxheWVySUQpOwogfQogCiBib29sIExheWVyVHJlZUNvbnRleHQ6
OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIExheWVyVHJlZUNvbnRl
eHQmIGNvbnRleHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvcXQvUGxhdGZv
cm1DZXJ0aWZpY2F0ZUluZm8uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9xdC9QbGF0Zm9ybUNl
cnRpZmljYXRlSW5mby5oCmluZGV4IDMyNzc2Zjc0MjY1MDgwNDc5ZDQ4MjU2ZmFmMzg5NjkzZjMy
OGFkN2MuLjljNTQyYTExZGMwNmEyYmQyYTc4YzcwNTM3NDQ4OWVmMzQ2NzY2MTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9xdC9QbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9xdC9QbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5oCkBA
IC00Miw3ICs0Miw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogCi0gICAgdm9pZCBlbmNvZGUo
Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKikgY29uc3QKKyAgICB2b2lkIGVuY29kZShDb3JlSVBD
OjpBcmd1bWVudEVuY29kZXImKSBjb25zdAogICAgIHsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9xdC9RdE5ldHdvcmtSZXBseURhdGEuY3BwIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL3F0L1F0TmV0d29ya1JlcGx5RGF0YS5jcHAKaW5kZXggOTBmNjhlNzhmYjU5
ZWVhNGM1NzYyNGFjNjc3ZWU3ZmYzODhlNDI3Yi4uYjExZGMyZjYzZmNjZTIwMzE5ZTcxYzk5Y2Ey
ZmI4YTkwZTRlODlkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL3F0L1F0TmV0
d29ya1JlcGx5RGF0YS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3F0L1F0TmV0d29y
a1JlcGx5RGF0YS5jcHAKQEAgLTQxLDEzICs0MSwxMyBAQCBRdE5ldHdvcmtSZXBseURhdGE6OlF0
TmV0d29ya1JlcGx5RGF0YSgpCiAgICAgOiBtX2NvbnRlbnRMZW5ndGgoMCkKIHsgfQogCi12b2lk
IFF0TmV0d29ya1JlcGx5RGF0YTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5j
b2RlcikgY29uc3QKK3ZvaWQgUXROZXR3b3JrUmVwbHlEYXRhOjplbmNvZGUoQ29yZUlQQzo6QXJn
dW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXItPmVuY29kZShtX3Vy
bFN0cmluZyk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKG1fY29udGVudFR5cGUpOwotICAgIGVuY29k
ZXItPmVuY29kZShzdGF0aWNfY2FzdDx1aW50NjRfdD4obV9jb250ZW50TGVuZ3RoKSk7Ci0gICAg
ZW5jb2Rlci0+ZW5jb2RlKG1fcmVwbHlVdWlkKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobV9kYXRh
SGFuZGxlKTsKKyAgICBlbmNvZGVyLmVuY29kZShtX3VybFN0cmluZyk7CisgICAgZW5jb2Rlci5l
bmNvZGUobV9jb250ZW50VHlwZSk7CisgICAgZW5jb2Rlci5lbmNvZGUoc3RhdGljX2Nhc3Q8dWlu
dDY0X3Q+KG1fY29udGVudExlbmd0aCkpOworICAgIGVuY29kZXIuZW5jb2RlKG1fcmVwbHlVdWlk
KTsKKyAgICBlbmNvZGVyLmVuY29kZShtX2RhdGFIYW5kbGUpOwogfQogCiBib29sIFF0TmV0d29y
a1JlcGx5RGF0YTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgUXRO
ZXR3b3JrUmVwbHlEYXRhJiBkZXN0aW5hdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9xdC9RdE5ldHdvcmtSZXBseURhdGEuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9x
dC9RdE5ldHdvcmtSZXBseURhdGEuaAppbmRleCA0NTdkN2JlMjdhZjAzZjhjNGEyZGY0M2FkYTI3
OTU1MzY5MGZhNjkwLi4wMmU1YTE1NDUwMzc2MDg2MTQ2ZWZhYTRiMzA3NzM1MjFlZWQyYzEzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvcXQvUXROZXR3b3JrUmVwbHlEYXRhLmgK
KysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3F0L1F0TmV0d29ya1JlcGx5RGF0YS5oCkBAIC00
Miw3ICs0Miw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogc3RydWN0IFF0TmV0d29ya1JlcGx5RGF0
YSB7CiAgICAgUXROZXR3b3JrUmVwbHlEYXRhKCk7CiAKLSAgICB2b2lkIGVuY29kZShDb3JlSVBD
OjpBcmd1bWVudEVuY29kZXIqKSBjb25zdDsKKyAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1
bWVudEVuY29kZXImKSBjb25zdDsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKiwgUXROZXR3b3JrUmVwbHlEYXRhJik7CiAKICAgICBXVEY6OlN0cmluZyBt
X3VybFN0cmluZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9xdC9RdE5ldHdv
cmtSZXF1ZXN0RGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvcXQvUXROZXR3b3JrUmVx
dWVzdERhdGEuY3BwCmluZGV4IDhhODBmYjM2OTkxZmY1OGJkNjRmZjZlZTE4ZjU2OTlhZTJlM2U5
MjMuLjRjMjE2ZGI0ZjZlZTc3OTk4NTY0ZmI0N2Q3OWY5ZjRjYzAzNTNmMzMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9xdC9RdE5ldHdvcmtSZXF1ZXN0RGF0YS5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL3F0L1F0TmV0d29ya1JlcXVlc3REYXRhLmNwcApAQCAtNTAs
MTEgKzUwLDExIEBAIFF0TmV0d29ya1JlcXVlc3REYXRhOjpRdE5ldHdvcmtSZXF1ZXN0RGF0YShj
b25zdCBRTmV0d29ya1JlcXVlc3QmIHJlcXVlc3QsIFFOZXR3CiAgICAgbV9yZXBseVV1aWQgPSBR
VXVpZDo6Y3JlYXRlVXVpZCgpLnRvU3RyaW5nKCk7CiB9CiAKLXZvaWQgUXROZXR3b3JrUmVxdWVz
dERhdGE6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Cit2
b2lkIFF0TmV0d29ya1JlcXVlc3REYXRhOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVy
JiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXItPmVuY29kZShtX3NjaGVtZSk7Ci0gICAg
ZW5jb2Rlci0+ZW5jb2RlKG1fdXJsU3RyaW5nKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUobV9yZXBs
eVV1aWQpOworICAgIGVuY29kZXIuZW5jb2RlKG1fc2NoZW1lKTsKKyAgICBlbmNvZGVyLmVuY29k
ZShtX3VybFN0cmluZyk7CisgICAgZW5jb2Rlci5lbmNvZGUobV9yZXBseVV1aWQpOwogfQogCiBi
b29sIFF0TmV0d29ya1JlcXVlc3REYXRhOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
KiBkZWNvZGVyLCBRdE5ldHdvcmtSZXF1ZXN0RGF0YSYgZGVzdGluYXRpb24pCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvcXQvUXROZXR3b3JrUmVxdWVzdERhdGEuaCBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9xdC9RdE5ldHdvcmtSZXF1ZXN0RGF0YS5oCmluZGV4IDliY2FhYzc2
NzZmNDA2YWQ1ZDNmNDBlYTk5YmU4Mzg4YzI3Yjk0MDkuLjY1ODM5NDVjYWJhYzA3ZTdlNzQzMDU4
ODlkZTU2OTA0NDcyY2I3NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9xdC9R
dE5ldHdvcmtSZXF1ZXN0RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9xdC9RdE5l
dHdvcmtSZXF1ZXN0RGF0YS5oCkBAIC00NCw3ICs0NCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewog
c3RydWN0IFF0TmV0d29ya1JlcXVlc3REYXRhIHsKICAgICBRdE5ldHdvcmtSZXF1ZXN0RGF0YSgp
OwogICAgIFF0TmV0d29ya1JlcXVlc3REYXRhKGNvbnN0IFFOZXR3b3JrUmVxdWVzdCYsIFFOZXR3
b3JrUmVwbHkqKTsKLSAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqKSBj
b25zdDsKKyAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsK
ICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgUXROZXR3
b3JrUmVxdWVzdERhdGEmKTsKIAogICAgIFN0cmluZyBtX3NjaGVtZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9zb3VwL1BsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9zb3VwL1BsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLmNwcAppbmRl
eCAzODhiZTdhZDhkMTljMDhkY2JjNWZlNWJhYWVjYWVmZWE4MzUyOWM2Li44MTY5MjBlNmQ3ZTdm
MDk0Y2FjNjM5MDQwYjE2YjQ1ZGUzNTU0NWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvc291cC9QbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL3NvdXAvUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8uY3BwCkBAIC01MSwyNCArNTEs
MjQgQEAgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm86On5QbGF0Zm9ybUNlcnRpZmljYXRlSW5mbygp
CiB7CiB9CiAKLXZvaWQgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm86OmVuY29kZShDb3JlSVBDOjpB
cmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Cit2b2lkIFBsYXRmb3JtQ2VydGlmaWNhdGVJ
bmZvOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewog
ICAgIGlmICghbV9jZXJ0aWZpY2F0ZSkgewotICAgICAgICBlbmNvZGVyLT5lbmNvZGUoZmFsc2Up
OworICAgICAgICBlbmNvZGVyLmVuY29kZShmYWxzZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKICAgICBHQnl0ZUFycmF5KiBjZXJ0aWZpY2F0ZURhdGEgPSAwOwogICAgIGdfb2JqZWN0X2dl
dChHX09CSkVDVChtX2NlcnRpZmljYXRlLmdldCgpKSwgImNlcnRpZmljYXRlIiwgJmNlcnRpZmlj
YXRlRGF0YSwgTlVMTCk7CiAgICAgaWYgKCFjZXJ0aWZpY2F0ZURhdGEpIHsKLSAgICAgICAgZW5j
b2Rlci0+ZW5jb2RlKGZhbHNlKTsKKyAgICAgICAgZW5jb2Rlci5lbmNvZGUoZmFsc2UpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgZW5jb2Rlci0+ZW5jb2RlKHRydWUpOworICAgIGVu
Y29kZXIuZW5jb2RlKHRydWUpOwogICAgIEdSZWZQdHI8R0J5dGVBcnJheT4gY2VydGlmaWNhdGUg
PSBhZG9wdEdSZWYoY2VydGlmaWNhdGVEYXRhKTsKLSAgICBlbmNvZGVyLT5lbmNvZGVWYXJpYWJs
ZUxlbmd0aEJ5dGVBcnJheShDb3JlSVBDOjpEYXRhUmVmZXJlbmNlKGNlcnRpZmljYXRlLT5kYXRh
LCBjZXJ0aWZpY2F0ZS0+bGVuKSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKHN0YXRpY19jYXN0PHVp
bnQzMl90PihtX3Rsc0Vycm9ycykpOworICAgIGVuY29kZXIuZW5jb2RlVmFyaWFibGVMZW5ndGhC
eXRlQXJyYXkoQ29yZUlQQzo6RGF0YVJlZmVyZW5jZShjZXJ0aWZpY2F0ZS0+ZGF0YSwgY2VydGlm
aWNhdGUtPmxlbikpOworICAgIGVuY29kZXIuZW5jb2RlKHN0YXRpY19jYXN0PHVpbnQzMl90Piht
X3Rsc0Vycm9ycykpOwogfQogCiBib29sIFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvOjpkZWNvZGUo
Q29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBQbGF0Zm9ybUNlcnRpZmljYXRlSW5m
byYgY2VydGlmaWNhdGVJbmZvKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL3Nv
dXAvUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9zb3Vw
L1BsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLmgKaW5kZXggMGU3NmEzZTk0N2M2MDZmNGI4OTIxYTgy
MTgwMDgxZTYzZmE0OWM5ZC4uOWYxOWEyZmFiMTYyMzg0ZDMyN2Q0YmFkZDY4ZDY2ZjEwN2YxMWRm
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL3NvdXAvUGxhdGZvcm1DZXJ0aWZp
Y2F0ZUluZm8uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvc291cC9QbGF0Zm9ybUNlcnRp
ZmljYXRlSW5mby5oCkBAIC01MCw3ICs1MCw3IEBAIHB1YmxpYzoKICAgICBHVGxzQ2VydGlmaWNh
dGUqIGNlcnRpZmljYXRlKCkgY29uc3QgeyByZXR1cm4gbV9jZXJ0aWZpY2F0ZS5nZXQoKTsgfQog
ICAgIEdUbHNDZXJ0aWZpY2F0ZUZsYWdzIHRsc0Vycm9ycygpIGNvbnN0IHsgcmV0dXJuIG1fdGxz
RXJyb3JzOyB9CiAKLSAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqKSBj
b25zdDsKKyAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsK
ICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgUGxhdGZv
cm1DZXJ0aWZpY2F0ZUluZm8mKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC93aW4vTGF5ZXJUcmVlQ29udGV4dFdpbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvd2luL0xheWVyVHJlZUNvbnRleHRXaW4uY3BwCmluZGV4IGFkMDVjMWQwMzJhNDAwMDM1
OTViMDkzMWIyMzRhZGJlMThkZDIzMTEuLjVkZDdjNjY3ZWY4ZjIxN2ZhOGIxYTFkZWIwODUxNDQ3
ZTViMGEyZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93aW4vTGF5ZXJUcmVl
Q29udGV4dFdpbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3dpbi9MYXllclRyZWVD
b250ZXh0V2luLmNwcApAQCAtMzksOSArMzksOSBAQCBMYXllclRyZWVDb250ZXh0Ojp+TGF5ZXJU
cmVlQ29udGV4dCgpCiB7CiB9CiAKLXZvaWQgTGF5ZXJUcmVlQ29udGV4dDo6ZW5jb2RlKENvcmVJ
UEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKK3ZvaWQgTGF5ZXJUcmVlQ29udGV4
dDo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAg
ICBlbmNvZGVyLT5lbmNvZGUocmVpbnRlcnByZXRfY2FzdDx1aW50NjRfdD4od2luZG93KSk7Cisg
ICAgZW5jb2Rlci5lbmNvZGUocmVpbnRlcnByZXRfY2FzdDx1aW50NjRfdD4od2luZG93KSk7CiB9
CiAKIGJvb2wgTGF5ZXJUcmVlQ29udGV4dDo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciogZGVjb2RlciwgTGF5ZXJUcmVlQ29udGV4dCYgY29udGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC93aW4vUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8uY3BwIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL3dpbi9QbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5jcHAKaW5kZXggMDhj
ZDRlMmIzMzJiMDRiZGFhNGI5MTQ3YjU5MWRkN2MwYTNiMTc0NC4uNWIwZDIwYTg0Y2UzYzFmODNk
OThiODM2ZDdhZGQyNmZhOTMxODg4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L3dpbi9QbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL3dpbi9QbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5jcHAKQEAgLTEwNiwxOSArMTA2LDE5IEBA
IFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvJiBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbzo6b3BlcmF0
b3I9KGNvbnN0IFBsYXRmb3JtQ2VydGlmCiAgICAgcmV0dXJuICp0aGlzOwogfQogCi12b2lkIFBs
YXRmb3JtQ2VydGlmaWNhdGVJbmZvOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBl
bmNvZGVyKSBjb25zdAordm9pZCBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbzo6ZW5jb2RlKENvcmVJ
UEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKICAgICAvLyBTcGVjaWFsIGNh
c2Ugbm8gY2VydGlmaWNhdGVzCiAgICAgaWYgKG1fY2VydGlmaWNhdGVDaGFpbi5pc0VtcHR5KCkp
IHsKLSAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDY0X3Q+
OjptYXgoKSk7CisgICAgICAgIGVuY29kZXIuZW5jb2RlKHN0ZDo6bnVtZXJpY19saW1pdHM8dWlu
dDY0X3Q+OjptYXgoKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICB1aW50NjRfdCBs
ZW5ndGggPSBtX2NlcnRpZmljYXRlQ2hhaW4uc2l6ZSgpOwotICAgIGVuY29kZXItPmVuY29kZShs
ZW5ndGgpOworICAgIGVuY29kZXIuZW5jb2RlKGxlbmd0aCk7CiAKICAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IGxlbmd0aDsgKytpKQotICAgICAgICBlbmNvZGVyLT5lbmNvZGVWYXJpYWJsZUxl
bmd0aEJ5dGVBcnJheShDb3JlSVBDOjpEYXRhUmVmZXJlbmNlKHN0YXRpY19jYXN0PHVpbnQ4X3Qq
PihtX2NlcnRpZmljYXRlQ2hhaW5baV0tPnBiQ2VydEVuY29kZWQpLCBtX2NlcnRpZmljYXRlQ2hh
aW5baV0tPmNiQ2VydEVuY29kZWQpKTsKKyAgICAgICAgZW5jb2Rlci5lbmNvZGVWYXJpYWJsZUxl
bmd0aEJ5dGVBcnJheShDb3JlSVBDOjpEYXRhUmVmZXJlbmNlKHN0YXRpY19jYXN0PHVpbnQ4X3Qq
PihtX2NlcnRpZmljYXRlQ2hhaW5baV0tPnBiQ2VydEVuY29kZWQpLCBtX2NlcnRpZmljYXRlQ2hh
aW5baV0tPmNiQ2VydEVuY29kZWQpKTsKIH0KIAogYm9vbCBQbGF0Zm9ybUNlcnRpZmljYXRlSW5m
bzo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgUGxhdGZvcm1DZXJ0
aWZpY2F0ZUluZm8mIGMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd2luL1Bs
YXRmb3JtQ2VydGlmaWNhdGVJbmZvLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd2luL1BsYXRm
b3JtQ2VydGlmaWNhdGVJbmZvLmgKaW5kZXggZGQ5OTllZjI1M2VjNWY2MzQ3ZTc1Y2MyZDVlNjlj
OWFjMzQ3NTNiZS4uMzg3MTFmNDA2OGFhODlhYjYzY2U0MDVhMzllMDlmMGVjYWUyMDAyZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL3dpbi9QbGF0Zm9ybUNlcnRpZmljYXRlSW5m
by5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93aW4vUGxhdGZvcm1DZXJ0aWZpY2F0ZUlu
Zm8uaApAQCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBWZWN0b3I8UENDRVJU
X0NPTlRFWFQ+JiBjZXJ0aWZpY2F0ZUNoYWluKCkgY29uc3QgeyByZXR1cm4gbV9jZXJ0aWZpY2F0
ZUNoYWluOyB9CiAKLSAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVu
Y29kZXIpIGNvbnN0OworICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYg
ZW5jb2RlcikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciogZGVjb2RlciwgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8mIHQpOwogCiBwcml2YXRl
OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL3dpbi9XaW5kb3dHZW9tZXRyeS5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd2luL1dpbmRvd0dlb21ldHJ5LmNwcAppbmRleCA3
M2NhYTA1ZGRmYmJiYWM0MGQ0MDY2MDI3YTU3ZjE3ZGM0ZmRiNDRiLi5kYTQwZDI0NmY3MDk2ZmZh
ZjE5MGI1ZTYzMzM1NjIwZDFjNzkxYmRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvd2luL1dpbmRvd0dlb21ldHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd2lu
L1dpbmRvd0dlb21ldHJ5LmNwcApAQCAtMzYsMTIgKzM2LDEyIEBAIFdpbmRvd0dlb21ldHJ5OjpX
aW5kb3dHZW9tZXRyeSgpCiB7CiB9CiAKLXZvaWQgV2luZG93R2VvbWV0cnk6OmVuY29kZShDb3Jl
SVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Cit2b2lkIFdpbmRvd0dlb21ldHJ5
OjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAg
IGVuY29kZXItPmVuY29kZShyZWludGVycHJldF9jYXN0PHVpbnQ2NF90Pih3aW5kb3cpKTsKLSAg
ICBlbmNvZGVyLT5lbmNvZGUodmlzaWJsZSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGZyYW1lKTsK
LSAgICBlbmNvZGVyLT5lbmNvZGUoY2xpcFJlY3QpOworICAgIGVuY29kZXIuZW5jb2RlKHJlaW50
ZXJwcmV0X2Nhc3Q8dWludDY0X3Q+KHdpbmRvdykpOworICAgIGVuY29kZXIuZW5jb2RlKHZpc2li
bGUpOworICAgIGVuY29kZXIuZW5jb2RlKGZyYW1lKTsKKyAgICBlbmNvZGVyLmVuY29kZShjbGlw
UmVjdCk7CiB9CiAKIGJvb2wgV2luZG93R2VvbWV0cnk6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqIGRlY29kZXIsIFdpbmRvd0dlb21ldHJ5JiBnZW9tZXRyeSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93aW4vV2luZG93R2VvbWV0cnkuaCBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC93aW4vV2luZG93R2VvbWV0cnkuaAppbmRleCBjNTU0MmJkMjZjZmIwZjQ3OWEy
Yjg4YmMwYTZlYjM0MDk4YWNhYTFhLi45MTk0ZTUzMWYzYjNiZWM2ZDU0NjlhNDM2MDJmODU2NTUw
MTQ3NjMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd2luL1dpbmRvd0dlb21l
dHJ5LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3dpbi9XaW5kb3dHZW9tZXRyeS5oCkBA
IC0zOCw3ICszOCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogc3RydWN0IFdpbmRvd0dlb21ldHJ5
IHsKICAgICBXaW5kb3dHZW9tZXRyeSgpOwogCi0gICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJn
dW1lbnRFbmNvZGVyKikgY29uc3Q7CisgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRF
bmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciosIFdpbmRvd0dlb21ldHJ5Jik7CiAKICAgICBIV05EIHdpbmRvdzsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0VXNlck1lc3NhZ2VDb2RlcnMu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0VXNlck1lc3NhZ2VDb2RlcnMu
aAppbmRleCBmZmUzMjI4MTE2N2UzNmRjZWYyNTdjOTBiYmE2MTM0ZGU4ZmQyYWJmLi44ZDY4NGM0
YjY3ZGU2M2Q4YzJkOTM4NTA3ZTQxZjM3YmMyYzA1MjhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dFVzZXJNZXNzYWdlQ29kZXJzLmgKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHRVc2VyTWVzc2FnZUNvZGVycy5oCkBAIC00Niw3
ICs0Niw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogCi0gICAgdm9pZCBlbmNvZGUoQ29yZUlQ
Qzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdCAKKyAgICB2b2lkIGVuY29kZShDb3Jl
SVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgewogICAgICAgICBBUElP
YmplY3Q6OlR5cGUgdHlwZSA9IEFQSU9iamVjdDo6VHlwZU51bGw7CiAgICAgICAgIGlmIChiYXNl
RW5jb2RlKGVuY29kZXIsIHR5cGUpKQpAQCAtNTUsMTcgKzU1LDE3IEBAIHB1YmxpYzoKICAgICAg
ICAgc3dpdGNoICh0eXBlKSB7CiAgICAgICAgIGNhc2UgQVBJT2JqZWN0OjpUeXBlUGFnZTogewog
ICAgICAgICAgICAgV2ViUGFnZVByb3h5KiBwYWdlID0gc3RhdGljX2Nhc3Q8V2ViUGFnZVByb3h5
Kj4obV9yb290KTsKLSAgICAgICAgICAgIGVuY29kZXItPmVuY29kZShwYWdlLT5wYWdlSUQoKSk7
CisgICAgICAgICAgICBlbmNvZGVyLmVuY29kZShwYWdlLT5wYWdlSUQoKSk7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIEFQSU9iamVjdDo6VHlwZUZyYW1lOiB7
CiAgICAgICAgICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IHN0YXRpY19jYXN0PFdlYkZyYW1l
UHJveHkqPihtX3Jvb3QpOwotICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlKGZyYW1lLT5mcmFt
ZUlEKCkpOworICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGUoZnJhbWUtPmZyYW1lSUQoKSk7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIEFQSU9iamVjdDo6VHlw
ZVBhZ2VHcm91cDogewogICAgICAgICAgICAgV2ViUGFnZUdyb3VwKiBwYWdlR3JvdXAgPSBzdGF0
aWNfY2FzdDxXZWJQYWdlR3JvdXAqPihtX3Jvb3QpOwotICAgICAgICAgICAgZW5jb2Rlci0+ZW5j
b2RlKHBhZ2VHcm91cC0+ZGF0YSgpKTsKKyAgICAgICAgICAgIGVuY29kZXIuZW5jb2RlKHBhZ2VH
cm91cC0+ZGF0YSgpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGRl
ZmF1bHQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUNvZGVycy5o
CmluZGV4IDQ5ZDY2OTY2YTY3MzcyOWVlNDA1ZDBkMGMxMDAxOGMxNjhmMzNlM2IuLmM1ZDU2ZjE3
ODk4ZTE2N2Y5ZjY5ZTc3Y2QwZTQxYjdhZmM1YTcyMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUNv
ZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUNvZGVycy5oCkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoK
ICAgICB7CiAgICAgfQogCi0gICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVy
KiBlbmNvZGVyKSBjb25zdCAKKyAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29k
ZXImIGVuY29kZXIpIGNvbnN0CiAgICAgewogICAgICAgICBBUElPYmplY3Q6OlR5cGUgdHlwZSA9
IEFQSU9iamVjdDo6VHlwZU51bGw7CiAgICAgICAgIGlmIChiYXNlRW5jb2RlKGVuY29kZXIsIHR5
cGUpKQpAQCAtNTgsMTcgKzU4LDE3IEBAIHB1YmxpYzoKICAgICAgICAgc3dpdGNoICh0eXBlKSB7
CiAgICAgICAgIGNhc2UgQVBJT2JqZWN0OjpUeXBlQnVuZGxlUGFnZTogewogICAgICAgICAgICAg
V2ViUGFnZSogcGFnZSA9IHN0YXRpY19jYXN0PFdlYlBhZ2UqPihtX3Jvb3QpOwotICAgICAgICAg
ICAgZW5jb2Rlci0+ZW5jb2RlKHBhZ2UtPnBhZ2VJRCgpKTsKKyAgICAgICAgICAgIGVuY29kZXIu
ZW5jb2RlKHBhZ2UtPnBhZ2VJRCgpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAg
ICAgICAgIGNhc2UgQVBJT2JqZWN0OjpUeXBlQnVuZGxlRnJhbWU6IHsKICAgICAgICAgICAgIFdl
YkZyYW1lKiBmcmFtZSA9IHN0YXRpY19jYXN0PFdlYkZyYW1lKj4obV9yb290KTsKLSAgICAgICAg
ICAgIGVuY29kZXItPmVuY29kZShmcmFtZS0+ZnJhbWVJRCgpKTsKKyAgICAgICAgICAgIGVuY29k
ZXIuZW5jb2RlKGZyYW1lLT5mcmFtZUlEKCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IH0KICAgICAgICAgY2FzZSBBUElPYmplY3Q6OlR5cGVCdW5kbGVQYWdlR3JvdXA6IHsKICAgICAg
ICAgICAgIFdlYlBhZ2VHcm91cFByb3h5KiBwYWdlR3JvdXAgPSBzdGF0aWNfY2FzdDxXZWJQYWdl
R3JvdXBQcm94eSo+KG1fcm9vdCk7Ci0gICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGUocGFnZUdy
b3VwLT5wYWdlR3JvdXBJRCgpKTsKKyAgICAgICAgICAgIGVuY29kZXIuZW5jb2RlKHBhZ2VHcm91
cC0+cGFnZUdyb3VwSUQoKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAg
ICBkZWZhdWx0OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luLmNw
cAppbmRleCBiYzg4NGI5NjJhMWVjMzg0NjhlOTY5OTAwZDE3YTFkYzJkNWVmNDUzLi5lZTAyYmJi
NTE4NzJlZTc4ZmVkMDI1Y2VhOGQ1MjAzM2U3YjlkZTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luLmNwcApAQCAtMzIsMTYgKzMyLDE2IEBAIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdm9pZCBQbHVnaW46OlBh
cmFtZXRlcnM6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0
Cit2b2lkIFBsdWdpbjo6UGFyYW1ldGVyczo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyLT5lbmNvZGUodXJsLnN0cmluZygpKTsK
LSAgICBlbmNvZGVyLT5lbmNvZGUobmFtZXMpOwotICAgIGVuY29kZXItPmVuY29kZSh2YWx1ZXMp
OwotICAgIGVuY29kZXItPmVuY29kZShtaW1lVHlwZSk7Ci0gICAgZW5jb2Rlci0+ZW5jb2RlKGlz
RnVsbEZyYW1lUGx1Z2luKTsKLSAgICBlbmNvZGVyLT5lbmNvZGUoc2hvdWxkVXNlTWFudWFsTG9h
ZGVyKTsKKyAgICBlbmNvZGVyLmVuY29kZSh1cmwuc3RyaW5nKCkpOworICAgIGVuY29kZXIuZW5j
b2RlKG5hbWVzKTsKKyAgICBlbmNvZGVyLmVuY29kZSh2YWx1ZXMpOworICAgIGVuY29kZXIuZW5j
b2RlKG1pbWVUeXBlKTsKKyAgICBlbmNvZGVyLmVuY29kZShpc0Z1bGxGcmFtZVBsdWdpbik7Cisg
ICAgZW5jb2Rlci5lbmNvZGUoc2hvdWxkVXNlTWFudWFsTG9hZGVyKTsKICNpZiBQTEFURk9STShN
QUMpCi0gICAgZW5jb2Rlci0+ZW5jb2RlRW51bShsYXllckhvc3RpbmdNb2RlKTsKKyAgICBlbmNv
ZGVyLmVuY29kZUVudW0obGF5ZXJIb3N0aW5nTW9kZSk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5oIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5oCmluZGV4IDk4Zjg3NzBjMTY4ZmYyMTMx
NjNiNjQ0ZTJkYjVlYjVjOWYxMDkyNzAuLmRlZDUzZDE1NzhmY2E2ZjQ0M2Y0ZjRlNTBlODJmMTk5
ZDAxNjU3OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW4uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luLmgK
QEAgLTc3LDcgKzc3LDcgQEAgcHVibGljOgogICAgICAgICBMYXllckhvc3RpbmdNb2RlIGxheWVy
SG9zdGluZ01vZGU7CiAjZW5kaWYKIAotICAgICAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1
bWVudEVuY29kZXIqKSBjb25zdDsKKyAgICAgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1l
bnRFbmNvZGVyJikgY29uc3Q7CiAgICAgICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqLCBQYXJhbWV0ZXJzJik7CiAgICAgfTsKIAo=
</data>
<flag name="review"
          id="183870"
          type_id="1"
          status="+"
          setter="jberlin"
    />
          </attachment>
      

    </bug>

</bugzilla>