<?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>162963</bug_id>
          
          <creation_ts>2016-10-05 03:08:11 -0700</creation_ts>
          <short_desc>Rename CachedResourceRequest as FetchedResourceRequest</short_desc>
          <delta_ts>2025-08-24 19:12:19 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></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>
          
          <blocked>161602</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>karlcow</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1236583</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-10-05 03:08:11 -0700</bug_when>
    <thetext>This would help readability.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1236598</commentid>
    <comment_count>1</comment_count>
      <attachid>290703</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-10-05 03:54:37 -0700</bug_when>
    <thetext>Created attachment 290703
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1236599</commentid>
    <comment_count>2</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-10-05 03:58:09 -0700</bug_when>
    <thetext>The name FetchedResourceRequest is pretty long though.
Here are some other alternatives:
- Request (but maybe too short...)
- FetchResourceRequest
- FetchRequest (but we would need to rename FetchRequest to something like FetchAPIRequest)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1236601</commentid>
    <comment_count>3</comment_count>
      <attachid>290705</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-10-05 04:11:22 -0700</bug_when>
    <thetext>Created attachment 290705
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1236682</commentid>
    <comment_count>4</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-10-05 10:15:08 -0700</bug_when>
    <thetext>Are CachedResourceRequests still used in the MemoryCache?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1236750</commentid>
    <comment_count>5</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-10-05 12:27:25 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Are CachedResourceRequests still used in the MemoryCache?

They are currently passed to CachedResource constructor to initialise it, in particular moving the ResourceRequest.

The idea behind this patch is that CachedResourceLoader is the entry point of the fetch algorithm. That is probably where we would like to intercept requests and forward them to the service worker, should we implement it.
MemoryCache is only a part of CachedResourceLoader duty, which also handles all the fetch options to generate the exact request.

CachedResourceLoader should therefore take a FetchRequest as input, return a FetchResource and be renamed to something like ResourceFetcher.

The idea would also be to rename most of the CachedXX classes.

If we can rename FetchRequest to Request (Request is the name by which it is exposed on JS scripts), we could contemplate renaming FetchedResourceRequest to the simpler FetchRequest.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1236826</commentid>
    <comment_count>6</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-10-05 16:34:28 -0700</bug_when>
    <thetext>I think renaming the entire set of Cached* classes to be prefixed by Fetch hurts readability and clarity in the code base.

I don&apos;t necessarily think &quot;CachedResourceRequest&quot; is a great name, but I&apos;m certain FetchedResourceRequest is a bad one as long as it serves duty for a mechanism that is not the Fetch API.

Fetch is an exception to how resources are loaded and stored in memory/on disk; not the rule.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1236907</commentid>
    <comment_count>7</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-10-05 23:23:03 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; I think renaming the entire set of Cached* classes to be prefixed by Fetch
&gt; hurts readability and clarity in the code base.

I agree there is less incentive to do so for CachedResource and relatives.
I disagree for CachedResourceLoader and CachedResourceRequest.

&gt; I don&apos;t necessarily think &quot;CachedResourceRequest&quot; is a great name, but I&apos;m
&gt; certain FetchedResourceRequest is a bad one as long as it serves duty for a
&gt; mechanism that is not the Fetch API.

We might be talking of two different fetch then :)
The general mechanism is called fetch algorithm.
Fetch API is one client amongst others (XHR, HTML...) of the fetch algorithm.

FetchOptions was introduced in Source/WebCore/loader for the purpose of the fetch algorithm.
This allows clients of CachedResourceLoader to start setting fetch options like defined in HTML specs.
Let&apos;s take XHR as an example.

https://xhr.spec.whatwg.org/#the-send()-method step 6 says:
    Let req be a new request, initialized as follows:
    ...
    mode: &quot;cors&quot;
    credentials mode: If the withCredentials attribute value is true, &quot;include&quot;, and &quot;same-origin&quot; otherwise.

XMLHttpRequest::createRequest does:
    options.credentials = m_includeCredentials ? FetchOptions::Credentials::Include : FetchOptions::Credentials::SameOrigin;
    options.mode = FetchOptions::Mode::Cors;

&gt; Fetch is an exception to how resources are loaded and stored in memory/on
&gt; disk; not the rule.

For loader clients and in the HTML specs, the notion of memory/on disk cache is not very relevant.
Whenever a resource needs to be loaded, the term coined is &quot;fetch a resource&quot; or &quot;fetch a request&quot;.
It would help to mirror this in the code.

I would like to rename CachedResourceLoader/CachedResourceRequest to something that:
- Has Fetch in it
- Does not have Cached in it
- Does not have Loader in it

For CachedResource and relatives, this is less an issue, although I do not see what the Cached prefix brings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1236914</commentid>
    <comment_count>8</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-10-05 23:41:56 -0700</bug_when>
    <thetext>Two additional pointers:
https://fetch.spec.whatwg.org/#requests maps to CachedResourceRequest
https://fetch.spec.whatwg.org/#request-class maps to FetchRequest</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1240955</commentid>
    <comment_count>9</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-10-17 08:18:11 -0700</bug_when>
    <thetext>Can we make progress on this?

I am fine renaming CachedResourceRequest to FetchRequest (and then rename FetchRequest to FetchAPIRequest or just Request).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1399126</commentid>
    <comment_count>10</comment_count>
      <attachid>290705</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2018-02-14 10:34:23 -0800</bug_when>
    <thetext>Comment on attachment 290705
Patch

Patches that have been up for review since 2016 are almost certainly too stale to be relevant to trunk in their current form.

If this patch is still important please rebase it and post it for review again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2138543</commentid>
    <comment_count>11</comment_count>
    <who name="Karl Dubost">karlcow</who>
    <bug_when>2025-08-24 19:12:19 -0700</bug_when>
    <thetext>Youenn, Brady, 
Is this still relevant?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290703</attachid>
            <date>2016-10-05 03:54:37 -0700</date>
            <delta_ts>2016-10-05 04:11:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162963-20161005125123.patch</filename>
            <type>text/plain</type>
            <size>107242</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2NzY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjNiZmIwODA5NWZkMjgz
OTE2ZjNmYTkzZTM4YzYzMGU3YTU5M2UxYy4uNGY5YjY0ZDE1NzZkMmVmYWJkOTg0NzNhMjhiYmUz
YWM4MTM3NjgwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE0OSBAQAogMjAxNi0xMC0wNSAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKKyAgICAgICAgUmVuYW1lIENhY2hlZFJl
c291cmNlUmVxdWVzdCBhcyBGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjI5NjMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBjaGFuZ2Ugb2YgYmVoYXZpb3IuCisK
KyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBQbGF0Zm9ybU1hYy5jbWFrZToK
KyAgICAgICAgKiBQbGF0Zm9ybVdpbi5jbWFrZToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udEZhY2VTcmNWYWx1ZTo6Y2FjaGVkRm9udCk6Cisg
ICAgICAgICogY3NzL0NTU0ltYWdlU2V0VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
SW1hZ2VTZXRWYWx1ZTo6bG9hZEJlc3RGaXRJbWFnZSk6CisgICAgICAgICogY3NzL0NTU0ltYWdl
VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTSW1hZ2VWYWx1ZTo6bG9hZEltYWdlKToK
KyAgICAgICAgKiBjc3MvU3R5bGVSdWxlSW1wb3J0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0
eWxlUnVsZUltcG9ydDo6cmVxdWVzdFN0eWxlU2hlZXQpOgorICAgICAgICAqIGRvbS9Qcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UHJvY2Vzc2luZ0luc3RydWN0
aW9uOjpjaGVja1N0eWxlU2hlZXQpOgorICAgICAgICAqIGRvbS9TY3JpcHRFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RTY3JpcHRXaXRoQ2FjaGUp
OgorICAgICAgICAqIGh0bWwvSFRNTExpbmtFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxMaW5rRWxlbWVudDo6cHJvY2Vzcyk6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFJl
c291cmNlUHJlbG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlByZWxvYWRSZXF1ZXN0Ojpy
ZXNvdXJjZVJlcXVlc3QpOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxSZXNvdXJjZVByZWxv
YWRlci5oOgorICAgICAgICAqIGxvYWRlci9Dcm9zc09yaWdpblByZWZsaWdodENoZWNrZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q3Jvc3NPcmlnaW5QcmVmbGlnaHRDaGVja2VyOjpzdGFydFBy
ZWZsaWdodCk6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpzdGFydExvYWRpbmdNYWluUmVzb3VyY2UpOgorICAg
ICAgICAqIGxvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpsb2FkUmVxdWVzdCk6CisgICAgICAgICog
bG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL0ltYWdlTG9hZGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlTG9hZGVyOjp1cGRhdGVGcm9tRWxlbWVudCk6
CisgICAgICAgICogbG9hZGVyL0xpbmtMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGlu
a0xvYWRlcjo6cHJlbG9hZElmTmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkxpbmtMb2FkZXI6
OmxvYWRMaW5rKToKKyAgICAgICAgKiBsb2FkZXIvTWVkaWFSZXNvdXJjZUxvYWRlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UpOgor
ICAgICAgICAqIGxvYWRlci9SZXNvdXJjZVRpbWluZ0luZm9ybWF0aW9uLmNwcDoKKyAgICAgICAg
KiBsb2FkZXIvUmVzb3VyY2VUaW1pbmdJbmZvcm1hdGlvbi5oOgorICAgICAgICAqIGxvYWRlci9U
ZXh0VHJhY2tMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrTG9hZGVyOjps
b2FkKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDYWNoZWRDU1NTdHlsZVNoZWV0OjpDYWNoZWRDU1NTdHlsZVNoZWV0
KToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5oOgorICAgICAg
ICAqIGxvYWRlci9jYWNoZS9DYWNoZWRGb250LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hl
ZEZvbnQ6OkNhY2hlZEZvbnQpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRGb250Lmg6
CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNhY2hlZEltYWdlOjpDYWNoZWRJbWFnZSk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0Nh
Y2hlZEltYWdlLmg6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJhd1Jlc291cmNlOjpDYWNoZWRSYXdSZXNvdXJj
ZSk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmg6CisgICAgICAg
ICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNh
Y2hlZFJlc291cmNlOjpDYWNoZWRSZXNvdXJjZSk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlLmg6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9h
ZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVJlc291cmNlKToKKyAgICAgICAgKFdl
YkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0SW1hZ2UpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RGb250KToKKyAgICAgICAgKFdlYkNv
cmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0VGV4dFRyYWNrKToKKyAgICAgICAgKFdl
YkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0Q1NTU3R5bGVTaGVldCk6CisgICAg
ICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFVzZXJDU1NTdHlsZVNo
ZWV0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0U2Ny
aXB0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0WFNM
U3R5bGVTaGVldCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVx
dWVzdFNWR0RvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVy
OjpyZXF1ZXN0TGlua1Jlc291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNl
TG9hZGVyOjpyZXF1ZXN0TWVkaWEpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VM
b2FkZXI6OnJlcXVlc3RSYXdSZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNv
dXJjZUxvYWRlcjo6cmVxdWVzdE1haW5SZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNo
ZWRSZXNvdXJjZUxvYWRlcjo6c2hvdWxkQ29udGludWVBZnRlck5vdGlmeWluZ0xvYWRlZEZyb21N
ZW1vcnlDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6c2hv
dWxkVXBkYXRlQ2FjaGVkUmVzb3VyY2VXaXRoQ3VycmVudFJlcXVlc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6Y2FuVXBkYXRlRnJvbVJlc291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJl
c291cmNlTG9hZGVyOjp1cGRhdGVDYWNoZWRSZXNvdXJjZVdpdGhDdXJyZW50UmVxdWVzdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cHJlcGFyZUZldGNoKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UpOgor
ICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJldmFsaWRhdGVSZXNvdXJj
ZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6bG9hZFJlc291cmNl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpkZXRlcm1pbmVSZXZh
bGlkYXRpb25Qb2xpY3kpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6
OnByZWxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVl
c3RQcmVsb2FkKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIu
aDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q2FjaGVkU1ZHRG9jdW1lbnQ6OkNhY2hlZFNWR0RvY3VtZW50KToKKyAgICAg
ICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnQuaDoKKyAgICAgICAgKiBsb2FkZXIv
Y2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnRSZWZlcmVuY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q2FjaGVkU1ZHRG9jdW1lbnRSZWZlcmVuY2U6OmxvYWQpOgorICAgICAgICAqIGxvYWRlci9jYWNo
ZS9DYWNoZWRTVkdGb250LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFNWR0ZvbnQ6OkNh
Y2hlZFNWR0ZvbnQpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRTVkdGb250Lmg6Cisg
ICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDYWNoZWRTY3JpcHQ6OkNhY2hlZFNjcmlwdCk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0Nh
Y2hlZFNjcmlwdC5oOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRUZXh0VHJhY2suY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkVGV4dFRyYWNrOjpDYWNoZWRUZXh0VHJhY2spOgor
ICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRUZXh0VHJhY2suaDoKKyAgICAgICAgKiBsb2Fk
ZXIvY2FjaGUvQ2FjaGVkWFNMU3R5bGVTaGVldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNo
ZWRYU0xTdHlsZVNoZWV0OjpDYWNoZWRYU0xTdHlsZVNoZWV0KToKKyAgICAgICAgKiBsb2FkZXIv
Y2FjaGUvQ2FjaGVkWFNMU3R5bGVTaGVldC5oOgorICAgICAgICAqIGxvYWRlci9mZXRjaC9GZXRj
aGVkUmVzb3VyY2VSZXF1ZXN0LmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwLgorICAgICAgICAoV2ViQ29yZTo6RmV0
Y2hlZFJlc291cmNlUmVxdWVzdDo6RmV0Y2hlZFJlc291cmNlUmVxdWVzdCk6CisgICAgICAgIChX
ZWJDb3JlOjpGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0OjpzZXRJbml0aWF0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6RmV0Y2hlZFJlc291cmNlUmVxdWVzdDo6aW5pdGlhdG9yTmFtZSk6CisgICAgICAg
IChXZWJDb3JlOjpGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0OjpzZXRBc1BvdGVudGlhbGx5Q3Jvc3NP
cmlnaW4pOgorICAgICAgICAqIGxvYWRlci9mZXRjaC9GZXRjaGVkUmVzb3VyY2VSZXF1ZXN0Lmg6
IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0LmguCisgICAgICAgIChXZWJDb3JlOjpGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0OjptdXRh
YmxlUmVzb3VyY2VSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoZWRSZXNvdXJjZVJl
cXVlc3Q6OnJlc291cmNlUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaGVkUmVzb3Vy
Y2VSZXF1ZXN0OjpjaGFyc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoZWRSZXNvdXJjZVJl
cXVlc3Q6OnNldENoYXJzZXQpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hlZFJlc291cmNlUmVx
dWVzdDo6b3B0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0
OjpzZXRPcHRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoZWRSZXNvdXJjZVJlcXVlc3Q6
OnByaW9yaXR5KToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoZWRSZXNvdXJjZVJlcXVlc3Q6OmZv
clByZWxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hlZFJlc291cmNlUmVxdWVzdDo6c2V0
Rm9yUHJlbG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0Ojpk
ZWZlcik6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0OjpzZXREZWZl
cik6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0OjphbGxvd3NDYWNo
aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoZWRSZXNvdXJjZVJlcXVlc3Q6OnNldENhY2hp
bmdQb2xpY3kpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hlZFJlc291cmNlUmVxdWVzdDo6c2V0
T3JpZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoZWRSZXNvdXJjZVJlcXVlc3Q6OnJlbGVh
c2VPcmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hlZFJlc291cmNlUmVxdWVzdDo6b3Jp
Z2luKToKKyAgICAgICAgKiBsb2FkZXIvaWNvbi9JY29uTG9hZGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Okljb25Mb2FkZXI6OnN0YXJ0TG9hZGluZyk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL2NmL1dlYkNvcmVBVkNGUmVzb3VyY2VMb2FkZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViQ29yZUFWQ0ZSZXNvdXJjZUxvYWRlcjo6c3RhcnRMb2FkaW5nKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9XZWJDb3JlQVZG
UmVzb3VyY2VMb2FkZXIubW06CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlQVZGUmVzb3VyY2VM
b2FkZXI6OnN0YXJ0TG9hZGluZyk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jb2NvYS9X
ZWJDb3JlTlNVUkxTZXNzaW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jb2NvYS9X
ZWJDb3JlTlNVUkxTZXNzaW9uLm1tOgorICAgICAgICAqIHN2Zy9TVkdGRUltYWdlRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUltYWdlRWxlbWVudDo6cmVxdWVzdEltYWdlUmVz
b3VyY2UpOgorICAgICAgICAqIHN2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHRm9udEZhY2VVcmlFbGVtZW50Ojpsb2FkRm9udCk6CisgICAgICAgICog
c3ZnL1NWR1VzZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVXNlRWxlbWVudDo6
dXBkYXRlRXh0ZXJuYWxEb2N1bWVudCk6CisgICAgICAgICogeG1sL1hTTEltcG9ydFJ1bGUuY3Bw
OgorCisyMDE2LTEwLTA1ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKwogICAg
ICAgICBSZXVzZSBDb2RlR2VuZXJhdG9yOjpVcGRhdGVGaWxlIGluIFRvb2xzIENvZGVHZW5lcmF0
b3IKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2Mjk2
MAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDc3YWFjMjE2MGRjYmNjYjE3ZmE3MGY2YzZjNzlj
MDlhODg4MDY5NGYuLmFhMTMyZWM2MTgyYTQ3OTkzNjg5ODE0MDlhY2I5MWExOGE3ZDhlZjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CkBAIC02Myw2ICs2Myw3IEBAIHNldChXZWJDb3JlX0lOQ0xVREVf
RElSRUNUT1JJRVMKICAgICAiJHtXRUJDT1JFX0RJUn0vbG9hZGVyL2FyY2hpdmUiCiAgICAgIiR7
V0VCQ09SRV9ESVJ9L2xvYWRlci9hcmNoaXZlL21odG1sIgogICAgICIke1dFQkNPUkVfRElSfS9s
b2FkZXIvY2FjaGUiCisgICAgIiR7V0VCQ09SRV9ESVJ9L2xvYWRlci9mZXRjaCIKICAgICAiJHtX
RUJDT1JFX0RJUn0vbG9hZGVyL2ljb24iCiAgICAgIiR7V0VCQ09SRV9ESVJ9L21hdGhtbCIKICAg
ICAiJHtXRUJDT1JFX0RJUn0vcGFnZSIKQEAgLTE5NTIsNyArMTk1Myw2IEBAIHNldChXZWJDb3Jl
X1NPVVJDRVMKICAgICBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCiAgICAgbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlSGFuZGxlLmNwcAogICAgIGxvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZUxvYWRlci5jcHAKLSAgICBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
LmNwcAogICAgIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmNw
cAogICAgIGxvYWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVudC5jcHAKICAgICBsb2FkZXIvY2Fj
aGUvQ2FjaGVkU1ZHRG9jdW1lbnRSZWZlcmVuY2UuY3BwCkBAIC0xOTYxLDYgKzE5NjEsOCBAQCBz
ZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgbG9hZGVyL2NhY2hlL0NhY2hlZFhTTFN0eWxlU2hlZXQu
Y3BwCiAgICAgbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNwcAogCisgICAgbG9hZGVyL2ZldGNo
L0ZldGNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwCisKICAgICBsb2FkZXIvaWNvbi9JY29uQ29udHJv
bGxlci5jcHAKICAgICBsb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuY3BwCiAgICAgbG9hZGVyL2lj
b24vSWNvbkRhdGFiYXNlQmFzZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRm
b3JtTWFjLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKaW5kZXggMzRi
OGRiMjcwYmY2OTRiMmUwN2QxODQ5MWFhODc0Njc0MzU2N2ZjOC4uNDViNzRjYTNlZTZjZDc0M2Fk
NzI1YWIzNjAzOTEzMjZhMDI0ZGNiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZv
cm1NYWMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKQEAgLTYx
NSw2ICs2MTUsNyBAQCBzZXQoV2ViQ29yZV9GT1JXQVJESU5HX0hFQURFUlNfRElSRUNUT1JJRVMK
ICAgICBsb2FkZXIvYXJjaGl2ZQogICAgIGxvYWRlci9jYWNoZQogICAgIGxvYWRlci9jb2NvYQor
ICAgIGxvYWRlci9mZXRjaAogCiAgICAgbG9hZGVyL2FyY2hpdmUvY2YKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW4uY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9y
bVdpbi5jbWFrZQppbmRleCBhZWQ4ZGViMGEyODg3N2Q5NTY2ZDM3OGJkNTlhZGNkMGVmOGE3Y2Vk
Li44ZGM0OWJkZTg4YWVmMzNmY2NjYjBjNmYwNTRhNjlmNTQwYTUxODA4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbi5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0
Zm9ybVdpbi5jbWFrZQpAQCAtMjE3LDYgKzIxNyw3IEBAIHNldChXZWJDb3JlX0ZPUldBUkRJTkdf
SEVBREVSU19ESVJFQ1RPUklFUwogICAgIGxvYWRlci9hcHBjYWNoZQogICAgIGxvYWRlci9hcmNo
aXZlCiAgICAgbG9hZGVyL2NhY2hlCisgICAgbG9hZGVyL2ZldGNoCiAgICAgbG9hZGVyL2ljb24K
IAogICAgIGxvYWRlci9hcmNoaXZlL2NmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzZhOGRlZDhjYTgxN2IxYTQzNjcxM2IxYTRl
ODM0MGJjN2U1N2UwMy4uN2VjMjNmZDA3ZDQ0YzNlODM0ZDZkZjEyNGQzNjcxYWI1NTAxZGYwNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMTQ5NSw2ICsxNDk1LDggQEAKIAkJNDA5RUJEQzUxNkI3RjNDQTAwQ0JBM0ZDIC8qIEpT
Q1NTRm9udEZhY2VMb2FkRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDA5RUJEQzQxNkI3RjNDQTAwQ0JBM0ZDIC8qIEpTQ1NTRm9udEZhY2VM
b2FkRXZlbnQuY3BwICovOyB9OwogCQk0MEVDQUU3RTE2QjhCNjcyMDBDMzYxMDMgLyogSlNET01F
cnJvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDBF
Q0FFN0QxNkI4QjY3MjAwQzM2MTAzIC8qIEpTRE9NRXJyb3IuaCAqLzsgfTsKIAkJNDBFQ0FFODEx
NkI4QjY4QTAwQzM2MTAzIC8qIEpTRE9NRXJyb3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDBFQ0FFODAxNkI4QjY4QTAwQzM2MTAzIC8qIEpTRE9N
RXJyb3IuY3BwICovOyB9OworCQk0MTA1MkYzODFEQTUwMjI5MDA3RkJFN0QgLyogRmV0Y2hlZFJl
c291cmNlUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0MTA1MkYzNjFEQTUwMjI2MDA3RkJFN0QgLyogRmV0Y2hlZFJlc291cmNlUmVxdWVz
dC5jcHAgKi87IH07CisJCTQxMDUyRjM5MURBNTAyMzQwMDdGQkU3RCAvKiBGZXRjaGVkUmVzb3Vy
Y2VSZXF1ZXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0MTA1MkYzNzFEQTUwMjI2MDA3RkJFN0QgLyogRmV0Y2hlZFJlc291cmNlUmVxdWVzdC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxMEI3RTcy
MTA0NUZBQjAwMEQ4MjI0RiAvKiBKU01lc3NhZ2VFdmVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTBCN0U3MTEwNDVGQUIwMDBEODIy
NEYgLyogSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwICovOyB9OwogCQk0MTIzMDgxQjEzOEM0Mjk3
MDBCQ0NGQ0EgLyogV2ViQ29yZS5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0YxOUIxQTA4MjQ1RTVBMDAxRTlBQkMgLyogV2ViQ29y
ZS5mcmFtZXdvcmsgKi87IH07CiAJCTQxMjMwOTEzMTM4QzQyRkYwMEJDQ0ZDQSAvKiBKYXZhU2Ny
aXB0Q29yZS5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGODIxNjI5OTAyOUY0RkI1MDEwMDAxMzEgLyogSmF2YVNjcmlwdENvcmUuZnJh
bWV3b3JrICovOyB9OwpAQCAtMTkxNyw4ICsxOTE5LDYgQEAKIAkJNTAxQkFBQTkxMzk1MEUyQzAw
RjdBQ0VCIC8qIFdpbmRSdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MDFCQUFBODEzOTUwRTJDMDBGN0FDRUIgLyogV2luZFJ1bGUuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MDRBQUNDRDE4MzQ0
NTU5MDBFM0Q5QkMgLyogSW5zcGVjdG9yTm9kZUZpbmRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MDRBQUNDQjE4MzQ0NTU5MDBFM0Q5QkMgLyog
SW5zcGVjdG9yTm9kZUZpbmRlci5jcHAgKi87IH07CiAJCTUwNEFBQ0NFMTgzNDQ1NTkwMEUzRDlC
QyAvKiBJbnNwZWN0b3JOb2RlRmluZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MDRBQUNDQzE4MzQ0NTU5MDBFM0Q5QkMgLyogSW5zcGVjdG9yTm9k
ZUZpbmRlci5oICovOyB9OwotCQk1MDgxRTNDMzNDRTU4MEMxNkVGOEI0OEIgLyogQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUwODFFM0RGM0NGQzgwQzE2RUY4QjQ4QiAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3Qu
Y3BwICovOyB9OwotCQk1MDgxRTNFMDNDRkY4MEMxNkVGOEI0OEIgLyogQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MDgxRTNFMTNEMDI4MEMxNkVGOEI0OEIgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTA4Q0NBNEYxM0NG
MTA2QjAwMzE1MUYzIC8qIFJlbmRlckZsb3dUaHJlYWQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUwOENDQTREMTNDRjEwNkIwMDMxNTFGMyAvKiBSZW5k
ZXJGbG93VGhyZWFkLmggKi87IH07CiAJCTUwOENDQTUwMTNDRjEwNkIwMDMxNTFGMyAvKiBSZW5k
ZXJGbG93VGhyZWFkLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUwOENDQTRFMTNDRjEwNkIwMDMxNTFGMyAvKiBSZW5kZXJGbG93VGhyZWFkLmNwcCAq
LzsgfTsKIAkJNTBEMTBEOTkxNTQ1RjU3NjAwOTZEMjg4IC8qIFJlbmRlckxheWVyRmlsdGVySW5m
by5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MEQx
MEQ5NzE1NDVGNTc2MDA5NkQyODggLyogUmVuZGVyTGF5ZXJGaWx0ZXJJbmZvLmNwcCAqLzsgfTsK
QEAgLTg0MjQsNiArODQyNCw4IEBACiAJCTQwOUVCREM0MTZCN0YzQ0EwMENCQTNGQyAvKiBKU0NT
U0ZvbnRGYWNlTG9hZEV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTQ1NTRm9udEZhY2VMb2FkRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0MEVDQUU3RDE2QjhCNjcyMDBDMzYxMDMgLyogSlNET01FcnJvci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBKU0RPTUVycm9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQwRUNBRTgwMTZCOEI2OEEwMEMzNjEwMyAvKiBKU0RPTUVycm9yLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRE9NRXJyb3IuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk0MTA1MkYzNjFEQTUwMjI2MDA3RkJFN0QgLyogRmV0Y2hl
ZFJlc291cmNlUmVxdWVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUg
PSBGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcDsgcGF0aCA9IGZldGNoL0ZldGNoZWRSZXNvdXJj
ZVJlcXVlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTA1MkYzNzFEQTUw
MjI2MDA3RkJFN0QgLyogRmV0Y2hlZFJlc291cmNlUmVxdWVzdC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0Lmg7IHBhdGggPSBmZXRjaC9G
ZXRjaGVkUmVzb3VyY2VSZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQx
MEI3RTcxMTA0NUZBQjAwMEQ4MjI0RiAvKiBKU01lc3NhZ2VFdmVudEN1c3RvbS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU01lc3NhZ2VFdmVudEN1c3RvbS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMTg5RUY3MUFEODIzMjgwMEI5MEEwRCAv
KiBSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDEyN0Q1MzYwRjhBQUIxRDAwRTQyNEY1IC8qIFNjcmlwdFN0YXRlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcmlwdFN0YXRlLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTg5MTksOCArODkyMSw2IEBACiAJCTUwMUJB
QUE4MTM5NTBFMkMwMEY3QUNFQiAvKiBXaW5kUnVsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXaW5kUnVsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MDRB
QUNDQjE4MzQ0NTU5MDBFM0Q5QkMgLyogSW5zcGVjdG9yTm9kZUZpbmRlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JOb2RlRmluZGVyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTA0QUFDQ0MxODM0NDU1OTAwRTNEOUJDIC8qIElu
c3BlY3Rvck5vZGVGaW5kZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5z
cGVjdG9yTm9kZUZpbmRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1MDgxRTNE
RjNDRkM4MEMxNkVGOEI0OEIgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1MDgxRTNFMTNEMDI4MEMxNkVGOEI0OEIgLyog
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTA4Q0NBNEQxM0NGMTA2QjAwMzE1MUYzIC8qIFJlbmRlckZsb3dUaHJlYWQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyRmxvd1RocmVhZC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1MDhDQ0E0RTEzQ0YxMDZCMDAzMTUxRjMgLyogUmVuZGVyRmxvd1Ro
cmVhZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJGbG93
VGhyZWFkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTBEMTBEOTcxNTQ1RjU3
NjAwOTZEMjg4IC8qIFJlbmRlckxheWVyRmlsdGVySW5mby5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJMYXllckZpbHRlckluZm8uY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTU4ODksNiArMTU4ODksMTUgQEAKIAkJCXBhdGggPSBtaHRt
bDsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTQxMDUyRjM1MURBNTAxREYw
MDdGQkU3RCAvKiBmZXRjaCAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4g
PSAoCisJCQkJNDEwNTJGMzYxREE1MDIyNjAwN0ZCRTdEIC8qIEZldGNoZWRSZXNvdXJjZVJlcXVl
c3QuY3BwICovLAorCQkJCTQxMDUyRjM3MURBNTAyMjYwMDdGQkU3RCAvKiBGZXRjaGVkUmVzb3Vy
Y2VSZXF1ZXN0LmggKi8sCisJCQkpOworCQkJbmFtZSA9IGZldGNoOworCQkJc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsKKwkJfTsKIAkJNDE1MEY5RUQxMkI2RTA5OTAwMDhDODYwIC8qIHNoYWRvdyAq
LyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0xOTgwMyw4ICsx
OTgxMiw2IEBACiAJCQkJRTQ3QjRCRTYwRTcxMjQxNjAwMDM4ODU0IC8qIENhY2hlZFJlc291cmNl
SGFuZGxlLmggKi8sCiAJCQkJQkNCMTZDMTAwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFJlc291
cmNlTG9hZGVyLmNwcCAqLywKIAkJCQlCQ0IxNkMxMTA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVk
UmVzb3VyY2VMb2FkZXIuaCAqLywKLQkJCQk1MDgxRTNERjNDRkM4MEMxNkVGOEI0OEIgLyogQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0LmNwcCAqLywKLQkJCQk1MDgxRTNFMTNEMDI4MEMxNkVGOEI0OEIg
LyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmggKi8sCiAJCQkJNkM2Mzg4OTRBOTZDQ0VFNTBDOEM5
NDZDIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuY3BwICovLAogCQkJCTZDNjM4
ODkzQTk2Q0NFRTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmgg
Ki8sCiAJCQkJQkNCMTZDMEEwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFNjcmlwdC5jcHAgKi8s
CkBAIC0yMTQwNCw2ICsyMTQxMSw3IEBACiAJCQkJQThEMkIyNTIxMjg3QTU2MDAwQUY0RERBIC8q
IGNhY2hlICovLAogCQkJCTdFRTY4NDczMTJEMjZFNTUwMEU3OTQxNSAvKiBjZiAqLywKIAkJCQk3
RTRERTEwQjE5OEIxMDgxMDA1MUNCMDIgLyogY29jb2EgKi8sCisJCQkJNDEwNTJGMzUxREE1MDFE
RjAwN0ZCRTdEIC8qIGZldGNoICovLAogCQkJCTUxMjZFNkI2MEEyRTNBRUYwMDVDMjlGQSAvKiBp
Y29uICovLAogCQkJCTkzQTFFQUEyMEE1NjM0RDgwMDY5NjBBMCAvKiBtYWMgKi8sCiAJCQkJQTE0
OTc4NkMxQUJBRjMzODAwQ0VGN0U0IC8qIENvbnRlbnRGaWx0ZXIuY3BwICovLApAQCAtMjM5NTYs
NyArMjM5NjQsNiBAQAogCQkJCUJDQjE2QzIyMDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRSZXNv
dXJjZUNsaWVudFdhbGtlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ3QjRCRTgwRTcxMjQxNjAw
MDM4ODU0IC8qIENhY2hlZFJlc291cmNlSGFuZGxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0Ix
NkMyQTA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTUwODFFM0UwM0NGRjgwQzE2RUY4QjQ4QiAvKiBDYWNoZWRSZXNvdXJjZVJlcXVl
c3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTZDNjM4ODk1QTk2Q0NFRTUwQzhDOTQ2QyAvKiBDYWNo
ZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0IxNkMy
NDA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkU2NyaXB0LmggaW4gSGVhZGVycyAqLywKIAkJCQlC
Q0Q1MzM2NDBFRDY4NDg5MDA4ODc0NjggLyogQ2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXIuaCBp
biBIZWFkZXJzICovLApAQCAtMjQ2NzIsNiArMjQ2NzksNyBAQAogCQkJCUE4NzFERTI4MEExNTJB
QzgwMEIxMkE2OCAvKiBIVE1MRnJhbWVTZXRFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlB
ODcxREUyRDBBMTUyQUM4MDBCMTJBNjggLyogSFRNTEhlYWRFbGVtZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQlBOEVBN0NCODBBMTkyQjlDMDBBOEVGNUYgLyogSFRNTEhlYWRpbmdFbGVtZW50Lmgg
aW4gSGVhZGVycyAqLywKKwkJCQk0MTA1MkYzOTFEQTUwMjM0MDA3RkJFN0QgLyogRmV0Y2hlZFJl
c291cmNlUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThFQTdDQUYwQTE5MkI5QzAwQThF
RjVGIC8qIEhUTUxIUkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4NzFERTI3MEExNTJB
QzgwMEIxMkE2OCAvKiBIVE1MSHRtbEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4NzFE
RTJBMEExNTJBQzgwMEIxMkE2OCAvKiBIVE1MSUZyYW1lRWxlbWVudC5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yNzcwMyw3ICsyNzcxMSw2IEBACiAJCQkJQkNCMTZDMUYwOTc5QzNCRDAwNDY3NzQxIC8q
IENhY2hlZFJlc291cmNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUU0N0I0QkU5MEU3MTI0MTYw
MDAzODg1NCAvKiBDYWNoZWRSZXNvdXJjZUhhbmRsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlC
Q0IxNkMyOTA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwIGluIFNv
dXJjZXMgKi8sCi0JCQkJNTA4MUUzQzMzQ0U1ODBDMTZFRjhCNDhCIC8qIENhY2hlZFJlc291cmNl
UmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2QzYzODg5NkE5NkNDRUU1MEM4Qzk0NkMg
LyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlCQ0IxNkMyMzA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkU2NyaXB0LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUExMDRGMjQzMTRDNzFGN0EwMDlFMkMyMyAvKiBDYWNoZWRTVkdEb2N1bWVudC5j
cHAgaW4gU291cmNlcyAqLywKQEAgLTMwNDM1LDYgKzMwNDQyLDcgQEAKIAkJCQkxMjBERTNFRDFD
ODZDQTNFMDBCNkQ0REQgLyogV2ViQW5pbWF0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3
RDYzNzQxMUJCMEIxMTMwMDI1NkNFOSAvKiBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5t
bSBpbiBTb3VyY2VzICovLAogCQkJCUNEQTI5QTMxMUNCRjc0REEwMDkwMUNDRiAvKiBXZWJBVlBs
YXllckNvbnRyb2xsZXIubW0gaW4gU291cmNlcyAqLywKKwkJCQk0MTA1MkYzODFEQTUwMjI5MDA3
RkJFN0QgLyogRmV0Y2hlZFJlc291cmNlUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlB
NTZDNUI5QTE4OUYzNDU3MDA4MkQxM0MgLyogV2ViQ29uc29sZUFnZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUNEN0UwNTIyMTY1MUMyODIwMEMxMjAxRiAvKiBXZWJDb3JlQVZGUmVzb3VyY2VM
b2FkZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQkyRDNFRjQ0QjE5MTc5MTVDMDAwMzQxODQgLyog
V2ViQ29yZUNBTGF5ZXJFeHRyYXMubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NGb250RmFjZVNyY1ZhbHVlLmNwcAppbmRleCA4YzRiZTRmMjBkNmM1Mjk0YjE3YTdkZWM1
YWYwNjhjOTYxNTQ2ZmZkLi43ZTIxODc0MDczNWVhZTQ1N2U3OGQ1Njk1MTZjMDVjMGNkOGVmOGY0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3BwCkBAIC0yNyw5
ICsyNyw5IEBACiAjaW5jbHVkZSAiQ1NTRm9udEZhY2VTcmNWYWx1ZS5oIgogI2luY2x1ZGUgIkNh
Y2hlZEZvbnQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgotI2luY2x1ZGUg
IkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVz
dEluaXRpYXRvcnMuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkZldGNoZWRS
ZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJGb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgiCiAj
aW5jbHVkZSAiTm9kZS5oIgogI2luY2x1ZGUgIlNWR0ZvbnRGYWNlRWxlbWVudC5oIgpAQCAtMTAw
LDcgKzEwMCw3IEBAIENhY2hlZEZvbnQqIENTU0ZvbnRGYWNlU3JjVmFsdWU6OmNhY2hlZEZvbnQo
RG9jdW1lbnQqIGRvY3VtZW50LCBib29sIGlzU1ZHLCBib29sCiAgICAgUmVzb3VyY2VMb2FkZXJP
cHRpb25zIG9wdGlvbnMgPSBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6ZGVmYXVsdENhY2hlZFJlc291
cmNlT3B0aW9ucygpOwogICAgIG9wdGlvbnMuY29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlv
biA9IGlzSW5pdGlhdGluZ0VsZW1lbnRJblVzZXJBZ2VudFNoYWRvd1RyZWUgPyBDb250ZW50U2Vj
dXJpdHlQb2xpY3lJbXBvc2l0aW9uOjpTa2lwUG9saWN5Q2hlY2sgOiBDb250ZW50U2VjdXJpdHlQ
b2xpY3lJbXBvc2l0aW9uOjpEb1BvbGljeUNoZWNrOwogCi0gICAgQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50LT5jb21wbGV0ZVVSTChtX3Jlc291
cmNlKSksIG9wdGlvbnMpOworICAgIEZldGNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNv
dXJjZVJlcXVlc3QoZG9jdW1lbnQtPmNvbXBsZXRlVVJMKG1fcmVzb3VyY2UpKSwgb3B0aW9ucyk7
CiAgICAgcmVxdWVzdC5zZXRJbml0aWF0b3IoY2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9y
cygpLmNzcyk7CiAgICAgbV9jYWNoZWRGb250ID0gZG9jdW1lbnQtPmNhY2hlZFJlc291cmNlTG9h
ZGVyKCkucmVxdWVzdEZvbnQoV1RGTW92ZShyZXF1ZXN0KSwgaXNTVkcpOwogICAgIHJldHVybiBt
X2NhY2hlZEZvbnQuZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1h
Z2VTZXRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAK
aW5kZXggZGQxNGU3MWQ0MTJkNjZhOWFiZTAyZjBhMWMwZjhjNjI5YzUzY2I2NC4uOTIyMGYxNmJi
ZDRkZjc2OTJhZjA2ZTQ1NjdjYzAzNjI3YTlmOWUwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0ltYWdlU2V0VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJ
bWFnZVNldFZhbHVlLmNwcApAQCAtMzAsMTAgKzMwLDEwIEBACiAjaW5jbHVkZSAiQ1NTUHJpbWl0
aXZlVmFsdWUuaCIKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgogI2luY2x1ZGUgIkNhY2hlZFJl
c291cmNlTG9hZGVyLmgiCi0jaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5j
bHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oIgogI2luY2x1ZGUgIkNyb3Nz
T3JpZ2luQWNjZXNzQ29udHJvbC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAi
RmV0Y2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlIDx3
dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKQEAgLTk5LDcgKzk5LDcgQEAgc3RkOjpwYWlyPENh
Y2hlZEltYWdlKiwgZmxvYXQ+IENTU0ltYWdlU2V0VmFsdWU6OmxvYWRCZXN0Rml0SW1hZ2UoQ2Fj
aGVkUmVzb3VyY2UKICAgICAgICAgLy8gQWxsIGZvcm1zIG9mIHNjYWxlIHNob3VsZCBiZSBpbmNs
dWRlZDogUGFnZTo6cGFnZVNjYWxlRmFjdG9yKCksIEZyYW1lOjpwYWdlWm9vbUZhY3RvcigpLAog
ICAgICAgICAvLyBhbmQgYW55IENTUyB0cmFuc2Zvcm1zLiBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODE2OTgKICAgICAgICAgSW1hZ2VXaXRoU2NhbGUgaW1hZ2UgPSBi
ZXN0SW1hZ2VGb3JTY2FsZUZhY3RvcigpOwotICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3Qg
cmVxdWVzdChSZXNvdXJjZVJlcXVlc3QoZG9jdW1lbnQtPmNvbXBsZXRlVVJMKGltYWdlLmltYWdl
VVJMKSksIG9wdGlvbnMpOworICAgICAgICBGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3Qo
UmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50LT5jb21wbGV0ZVVSTChpbWFnZS5pbWFnZVVSTCkpLCBv
cHRpb25zKTsKICAgICAgICAgcmVxdWVzdC5zZXRJbml0aWF0b3IoY2FjaGVkUmVzb3VyY2VSZXF1
ZXN0SW5pdGlhdG9ycygpLmNzcyk7CiAgICAgICAgIGlmIChvcHRpb25zLm1vZGUgPT0gRmV0Y2hP
cHRpb25zOjpNb2RlOjpDb3JzKSB7CiAgICAgICAgICAgICBBU1NFUlQoZG9jdW1lbnQtPnNlY3Vy
aXR5T3JpZ2luKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFs
dWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuY3BwCmluZGV4IDlkZDhl
ZjIyZGUwNTdkN2FiYWQwZDc5NWI5NDcyOTY3Njc2MWIzZmEuLmI0NzZkYzQ4M2JlYmMxYmQ4MGQ4
OGE3MDM2YmIzMmU4NTExZGZmMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJ
bWFnZVZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VWYWx1ZS5jcHAK
QEAgLTI2LDExICsyNiwxMSBAQAogI2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMuaCIKICNpbmNs
dWRlICJDYWNoZWRJbWFnZS5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCi0j
aW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0SW5pdGlhdG9ycy5oIgogI2luY2x1ZGUgIkNyb3NzT3JpZ2luQWNjZXNzQ29udHJv
bC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1
ZGUgIkZldGNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJNZW1vcnlDYWNoZS5oIgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC02NSw3ICs2NSw3IEBAIENhY2hlZEltYWdlKiBDU1NJ
bWFnZVZhbHVlOjpsb2FkSW1hZ2UoQ2FjaGVkUmVzb3VyY2VMb2FkZXImIGxvYWRlciwgY29uc3Qg
UmVzb3VyCiAgICAgaWYgKCFtX2FjY2Vzc2VkSW1hZ2UpIHsKICAgICAgICAgbV9hY2Nlc3NlZElt
YWdlID0gdHJ1ZTsKIAotICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNv
dXJjZVJlcXVlc3QobV91cmwpLCBvcHRpb25zKTsKKyAgICAgICAgRmV0Y2hlZFJlc291cmNlUmVx
dWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChtX3VybCksIG9wdGlvbnMpOwogICAgICAgICBp
ZiAobV9pbml0aWF0b3JOYW1lLmlzRW1wdHkoKSkKICAgICAgICAgICAgIHJlcXVlc3Quc2V0SW5p
dGlhdG9yKGNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMoKS5jc3MpOwogICAgICAgICBl
bHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlSW1wb3J0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGVJbXBvcnQuY3BwCmluZGV4IDBjYmFhOWYwZTI1
YjE2OGQwMDcyMjEwNmQ2NTRiNDUxOTMwMWRiYTAuLjJmZTU5ODMxNGViMTczMzZkNzZmOGZhYmRl
NWFmOWYzZDM5YjZmZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGVJ
bXBvcnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGVJbXBvcnQuY3BwCkBA
IC0yNSw5ICsyNSw5IEBACiAjaW5jbHVkZSAiQ1NTU3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIkNh
Y2hlZENTU1N0eWxlU2hlZXQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgot
I2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291
cmNlUmVxdWVzdEluaXRpYXRvcnMuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUg
IkZldGNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJNZWRpYUxpc3QuaCIKICNpbmNs
dWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlN0eWxlU2hlZXRDb250ZW50cy5oIgpA
QCAtMTE1LDcgKzExNSw3IEBAIHZvaWQgU3R5bGVSdWxlSW1wb3J0OjpyZXF1ZXN0U3R5bGVTaGVl
dCgpCiAKICAgICAvLyBGSVhNRTogU2tpcCBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBjaGVjayB3
aGVuIHN0eWxlc2hlZXQgaXMgaW4gYSB1c2VyIGFnZW50IHNoYWRvdyB0cmVlLgogICAgIC8vIFNl
ZSA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjY2Mz4uCi0gICAg
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGFic1VSTCksIG1f
cGFyZW50U3R5bGVTaGVldC0+Y2hhcnNldCgpKTsKKyAgICBGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0
IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGFic1VSTCksIG1fcGFyZW50U3R5bGVTaGVldC0+Y2hh
cnNldCgpKTsKICAgICByZXF1ZXN0LnNldEluaXRpYXRvcihjYWNoZWRSZXNvdXJjZVJlcXVlc3RJ
bml0aWF0b3JzKCkuY3NzKTsKICAgICBpZiAobV9jYWNoZWRTaGVldCkKICAgICAgICAgbV9jYWNo
ZWRTaGVldC0+cmVtb3ZlQ2xpZW50KCZtX3N0eWxlU2hlZXRDbGllbnQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcAppbmRleCBjYTlhN2E0NTFkN2I1Njg1
ZDMxNjljNzg0NDUzYmM1ZmI0NmJmZTg1Li41Y2IyNTRlNDU1ZjgwYjg1ZDhmMzM4Y2RjZjVmZTJk
ZjQ3MzZiMzM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3Ry
dWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9u
LmNwcApAQCAtMjYsMTAgKzI2LDEwIEBACiAjaW5jbHVkZSAiQ1NTU3R5bGVTaGVldC5oIgogI2lu
Y2x1ZGUgIkNhY2hlZENTU1N0eWxlU2hlZXQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxv
YWRlci5oIgotI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkNh
Y2hlZFhTTFN0eWxlU2hlZXQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV4
Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5j
bHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIlhTTFN0
eWxlU2hlZXQuaCIKQEAgLTE0NSw3ICsxNDUsNyBAQCB2b2lkIFByb2Nlc3NpbmdJbnN0cnVjdGlv
bjo6Y2hlY2tTdHlsZVNoZWV0KCkKICAgICAgICAgICAgIH0gZWxzZQogI2VuZGlmCiAgICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVz
b3VyY2VSZXF1ZXN0KGRvY3VtZW50KCkuY29tcGxldGVVUkwoaHJlZikpKTsKKyAgICAgICAgICAg
ICAgICBGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGRvY3Vt
ZW50KCkuY29tcGxldGVVUkwoaHJlZikpKTsKICAgICAgICAgICAgICAgICBTdHJpbmcgY2hhcnNl
dCA9IGF0dHJzLmdldCgiY2hhcnNldCIpOwogICAgICAgICAgICAgICAgIGlmIChjaGFyc2V0Lmlz
RW1wdHkoKSkKICAgICAgICAgICAgICAgICAgICAgY2hhcnNldCA9IGRvY3VtZW50KCkuY2hhcnNl
dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCmluZGV4IDJiNjk1ODExMzdiZTI1
MmZjNThkZjhhMWY4M2JiNDQwMzBjYTAzNjMuLjdiN2Y0MWYzNjRiNTY0YTFhZWM0MjAwZmQxYmVi
OWYwMDgxYjAyZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKQEAgLTI1LDEz
ICsyNSwxMyBAQAogI2luY2x1ZGUgIlNjcmlwdEVsZW1lbnQuaCIKIAogI2luY2x1ZGUgIkNhY2hl
ZFJlc291cmNlTG9hZGVyLmgiCi0jaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAj
aW5jbHVkZSAiQ2FjaGVkU2NyaXB0LmgiCiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9saWN5
LmgiCiAjaW5jbHVkZSAiQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmgiCiAjaW5jbHVkZSAiQ3Vy
cmVudFNjcmlwdEluY3JlbWVudGVyLmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJF
dmVudE5hbWVzLmgiCisjaW5jbHVkZSAiRmV0Y2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1
ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJIVE1MTmFt
ZXMuaCIKQEAgLTI5MSw3ICsyOTEsNyBAQCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3Jp
cHQ+IFNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RTY3JpcHRXaXRoQ2FjaGUoY29uc3QgVQogICAgIFJl
c291cmNlTG9hZGVyT3B0aW9ucyBvcHRpb25zID0gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmRlZmF1
bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKTsKICAgICBvcHRpb25zLmNvbnRlbnRTZWN1cml0eVBv
bGljeUltcG9zaXRpb24gPSBoYXNLbm93bk5vbmNlID8gQ29udGVudFNlY3VyaXR5UG9saWN5SW1w
b3NpdGlvbjo6U2tpcFBvbGljeUNoZWNrIDogQ29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlv
bjo6RG9Qb2xpY3lDaGVjazsKIAotICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJl
c291cmNlUmVxdWVzdChzb3VyY2VVUkwpLCBvcHRpb25zKTsKKyAgICBGZXRjaGVkUmVzb3VyY2VS
ZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KHNvdXJjZVVSTCksIG9wdGlvbnMpOwogICAg
IHJlcXVlc3Quc2V0QXNQb3RlbnRpYWxseUNyb3NzT3JpZ2luKG1fZWxlbWVudC5hdHRyaWJ1dGVX
aXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6Y3Jvc3NvcmlnaW5BdHRyKSwgZG9jdW1l
bnQpOwogCiAgICAgZG9jdW1lbnQuY29udGVudFNlY3VyaXR5UG9saWN5KCktPnVwZ3JhZGVJbnNl
Y3VyZVJlcXVlc3RJZk5lZWRlZChyZXF1ZXN0Lm11dGFibGVSZXNvdXJjZVJlcXVlc3QoKSwgQ29u
dGVudFNlY3VyaXR5UG9saWN5OjpJbnNlY3VyZVJlcXVlc3RUeXBlOjpMb2FkKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAppbmRleCBiODkxNzZkMTNlNzYyMjY2YzRkYTEx
MzUyYzNhZDdmMjlhOTFmNjFhLi41ZmQyOWRkMjc4ZTIxMmJkMWQ5NjJlNWM0YTJlOThjZjFiN2Y4
MzYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCkBAIC0zMCwxMyAr
MzAsMTMgQEAKICNpbmNsdWRlICJDYWNoZWRDU1NTdHlsZVNoZWV0LmgiCiAjaW5jbHVkZSAiQ2Fj
aGVkUmVzb3VyY2UuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgotI2luY2x1
ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBv
bGljeS5oIgogI2luY2x1ZGUgIkRPTVRva2VuTGlzdC5oIgogI2luY2x1ZGUgIkRvY3VtZW50Lmgi
CiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAi
RXZlbnRTZW5kZXIuaCIKKyNpbmNsdWRlICJGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5j
bHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1l
TG9hZGVyQ2xpZW50LmgiCkBAIC0yNjEsNyArMjYxLDcgQEAgdm9pZCBIVE1MTGlua0VsZW1lbnQ6
OnByb2Nlc3MoKQogICAgICAgICBPcHRpb25hbDxSZXNvdXJjZUxvYWRQcmlvcml0eT4gcHJpb3Jp
dHk7CiAgICAgICAgIGlmICghaXNBY3RpdmUpCiAgICAgICAgICAgICBwcmlvcml0eSA9IFJlc291
cmNlTG9hZFByaW9yaXR5OjpWZXJ5TG93OwotICAgICAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3Qg
cmVxdWVzdCh1cmwsIGNoYXJzZXQsIHByaW9yaXR5KTsKKyAgICAgICAgRmV0Y2hlZFJlc291cmNl
UmVxdWVzdCByZXF1ZXN0KHVybCwgY2hhcnNldCwgcHJpb3JpdHkpOwogICAgICAgICByZXF1ZXN0
LnNldEluaXRpYXRvcih0aGlzKTsKIAogICAgICAgICBpZiAoZG9jdW1lbnQoKS5jb250ZW50U2Vj
dXJpdHlQb2xpY3koKS0+YWxsb3dTdHlsZVdpdGhOb25jZShhdHRyaWJ1dGVXaXRob3V0U3luY2hy
b25pemF0aW9uKEhUTUxOYW1lczo6bm9uY2VBdHRyKSkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxSZXNvdXJjZVByZWxvYWRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3BhcnNlci9IVE1MUmVzb3VyY2VQcmVsb2FkZXIuY3BwCmluZGV4IDViYmQzN2Jm
M2EzOWE0MmUxMGM2OTcwZmVjZGIxNjhlYTBjY2QxZjQuLmY1YzU2ZWE0MWE2NWNhMzgzNjFkNzkx
N2I3ODJkMDQ1NGJhYzNmMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2Vy
L0hUTUxSZXNvdXJjZVByZWxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJz
ZXIvSFRNTFJlc291cmNlUHJlbG9hZGVyLmNwcApAQCAtNDAsMTAgKzQwLDEwIEBAIFVSTCBQcmVs
b2FkUmVxdWVzdDo6Y29tcGxldGVVUkwoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIHJldHVybiBk
b2N1bWVudC5jb21wbGV0ZVVSTChtX3Jlc291cmNlVVJMLCBtX2Jhc2VVUkwuaXNFbXB0eSgpID8g
ZG9jdW1lbnQuYmFzZVVSTCgpIDogbV9iYXNlVVJMKTsKIH0KIAotQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0IFByZWxvYWRSZXF1ZXN0OjpyZXNvdXJjZVJlcXVlc3QoRG9jdW1lbnQmIGRvY3VtZW50KQor
RmV0Y2hlZFJlc291cmNlUmVxdWVzdCBQcmVsb2FkUmVxdWVzdDo6cmVzb3VyY2VSZXF1ZXN0KERv
Y3VtZW50JiBkb2N1bWVudCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIENh
Y2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChjb21wbGV0ZVVSTChk
b2N1bWVudCkpKTsKKyAgICBGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VS
ZXF1ZXN0KGNvbXBsZXRlVVJMKGRvY3VtZW50KSkpOwogICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9y
KG1faW5pdGlhdG9yKTsKICAgICByZXF1ZXN0LnNldEFzUG90ZW50aWFsbHlDcm9zc09yaWdpbiht
X2Nyb3NzT3JpZ2luTW9kZSwgZG9jdW1lbnQpOwogICAgIHJldHVybiByZXF1ZXN0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFJlc291cmNlUHJlbG9hZGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUmVzb3VyY2VQcmVsb2FkZXIuaAppbmRl
eCBmN2ZmOTFmNjFiNGRlMTM1OGRmNGNlMDFhZDY0ZDkxMjNmMjdmMWFhLi5lNWIyM2UzZjY3OTE4
YTI4ZWFlNzE3ZDY4MmZjOWE3ZDM1MmYwOGM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3BhcnNlci9IVE1MUmVzb3VyY2VQcmVsb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3BhcnNlci9IVE1MUmVzb3VyY2VQcmVsb2FkZXIuaApAQCAtMjcsNyArMjcsNyBAQAogI2Rl
ZmluZSBIVE1MUmVzb3VyY2VQcmVsb2FkZXJfaAogCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2Uu
aCIKLSNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKKyNpbmNsdWRlICJGZXRjaGVk
UmVzb3VyY2VSZXF1ZXN0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDMsNyArNDMs
NyBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAotICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCBy
ZXNvdXJjZVJlcXVlc3QoRG9jdW1lbnQmKTsKKyAgICBGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0IHJl
c291cmNlUmVxdWVzdChEb2N1bWVudCYpOwogCiAgICAgY29uc3QgU3RyaW5nJiBjaGFyc2V0KCkg
Y29uc3QgeyByZXR1cm4gbV9jaGFyc2V0OyB9CiAgICAgY29uc3QgU3RyaW5nJiBtZWRpYSgpIGNv
bnN0IHsgcmV0dXJuIG1fbWVkaWFBdHRyaWJ1dGU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9Dcm9zc09yaWdpblByZWZsaWdodENoZWNrZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0Nyb3NzT3JpZ2luUHJlZmxpZ2h0Q2hlY2tlci5jcHAKaW5kZXggZWEyOGQ0M2Nj
MjI1NTk3OGNjNTZiMzI0NzQ4MTgzYjVlNmM3ODY3NS4uNTE5NThlYWRjMjI2ZmQ4OGUyYzJjYzFm
ZjUxZjU5MWUyMDBkYTE2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3Nz
T3JpZ2luUHJlZmxpZ2h0Q2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Ny
b3NzT3JpZ2luUHJlZmxpZ2h0Q2hlY2tlci5jcHAKQEAgLTMzLDExICszMywxMSBAQAogCiAjaW5j
bHVkZSAiQ2FjaGVkUmF3UmVzb3VyY2UuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRl
ci5oIgotI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkNvbnRl
bnRTZWN1cml0eVBvbGljeS5oIgogI2luY2x1ZGUgIkNyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5o
IgogI2luY2x1ZGUgIkNyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUuaCIKICNpbmNsdWRl
ICJEb2N1bWVudFRocmVhZGFibGVMb2FkZXIuaCIKKyNpbmNsdWRlICJGZXRjaGVkUmVzb3VyY2VS
ZXF1ZXN0LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVk
ZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIlRocmVhZGFibGVMb2FkZXJD
bGllbnQuaCIKQEAgLTEwOSw3ICsxMDksNyBAQCB2b2lkIENyb3NzT3JpZ2luUHJlZmxpZ2h0Q2hl
Y2tlcjo6c3RhcnRQcmVmbGlnaHQoKQogICAgIG9wdGlvbnMucmVkaXJlY3QgPSBGZXRjaE9wdGlv
bnM6OlJlZGlyZWN0OjpNYW51YWw7CiAgICAgb3B0aW9ucy5jb250ZW50U2VjdXJpdHlQb2xpY3lJ
bXBvc2l0aW9uID0gQ29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbjo6U2tpcFBvbGljeUNo
ZWNrOwogCi0gICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHByZWZsaWdodFJlcXVlc3QoY3JlYXRl
QWNjZXNzQ29udHJvbFByZWZsaWdodFJlcXVlc3QobV9yZXF1ZXN0LCBtX2xvYWRlci5zZWN1cml0
eU9yaWdpbigpKSwgb3B0aW9ucyk7CisgICAgRmV0Y2hlZFJlc291cmNlUmVxdWVzdCBwcmVmbGln
aHRSZXF1ZXN0KGNyZWF0ZUFjY2Vzc0NvbnRyb2xQcmVmbGlnaHRSZXF1ZXN0KG1fcmVxdWVzdCwg
bV9sb2FkZXIuc2VjdXJpdHlPcmlnaW4oKSksIG9wdGlvbnMpOwogICAgIGlmIChSdW50aW1lRW5h
YmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnJlc291cmNlVGltaW5nRW5hYmxlZCgpKQog
ICAgICAgICBwcmVmbGlnaHRSZXF1ZXN0LnNldEluaXRpYXRvcihtX2xvYWRlci5vcHRpb25zKCku
aW5pdGlhdG9yKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50
TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKaW5k
ZXggOTdkODc1NTgyNjg5ZTZjMmViYjE1NDU3ZTFhMTVhZGUwN2RlZjExMi4uM2ZhMTRlZjliNGE3
NGJmODBhZTY2Y2UzOGZhMzJkMWM0YjUwN2Y0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9j
dW1lbnRMb2FkZXIuY3BwCkBAIC0xNTE5LDcgKzE1MTksNyBAQCB2b2lkIERvY3VtZW50TG9hZGVy
OjpzdGFydExvYWRpbmdNYWluUmVzb3VyY2UoKQogICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQo
InN0YXJ0TG9hZGluZ01haW5SZXNvdXJjZTogU3RhcnRpbmcgbG9hZCAoZnJhbWUgPSAlcCwgbWFp
biA9ICVkKSIsIG1fZnJhbWUsIG1fZnJhbWUtPmlzTWFpbkZyYW1lKCkpOwogCiAgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPFJlc291cmNlTG9hZGVyT3B0aW9ucz4gbWFpblJlc291cmNlTG9hZE9w
dGlvbnMoU2VuZENhbGxiYWNrcywgU25pZmZDb250ZW50LCBCdWZmZXJEYXRhLCBBbGxvd1N0b3Jl
ZENyZWRlbnRpYWxzLCBDbGllbnRDcmVkZW50aWFsUG9saWN5OjpNYXlBc2tDbGllbnRGb3JDcmVk
ZW50aWFscywgRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6SW5jbHVkZSwgU2tpcFNlY3VyaXR5
Q2hlY2ssIEZldGNoT3B0aW9uczo6TW9kZTo6Tm9Db3JzLCBJbmNsdWRlQ2VydGlmaWNhdGVJbmZv
LCBDb250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9uOjpTa2lwUG9saWN5Q2hlY2ssIERlZmVy
c0xvYWRpbmdQb2xpY3k6OkFsbG93RGVmZXJzTG9hZGluZywgQ2FjaGluZ1BvbGljeTo6QWxsb3dD
YWNoaW5nKTsKLSAgICBtX21haW5SZXNvdXJjZSA9IG1fY2FjaGVkUmVzb3VyY2VMb2FkZXItPnJl
cXVlc3RNYWluUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0KFJlc291cmNlUmVxdWVzdChy
ZXF1ZXN0KSwgbWFpblJlc291cmNlTG9hZE9wdGlvbnMpKTsKKyAgICBtX21haW5SZXNvdXJjZSA9
IG1fY2FjaGVkUmVzb3VyY2VMb2FkZXItPnJlcXVlc3RNYWluUmVzb3VyY2UoeyBSZXNvdXJjZVJl
cXVlc3QocmVxdWVzdCksIG1haW5SZXNvdXJjZUxvYWRPcHRpb25zIH0pOwogCiAjaWYgRU5BQkxF
KENPTlRFTlRfRVhURU5TSU9OUykKICAgICBpZiAobV9tYWluUmVzb3VyY2UgJiYgbV9tYWluUmVz
b3VyY2UtPmVycm9yT2NjdXJyZWQoKSAmJiBtX2ZyYW1lLT5wYWdlKCkgJiYgbV9tYWluUmVzb3Vy
Y2UtPnJlc291cmNlRXJyb3IoKS5kb21haW4oKSA9PSBDb250ZW50RXh0ZW5zaW9uczo6V2ViS2l0
Q29udGVudEJsb2NrZXJEb21haW4pIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Rv
Y3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKaW5kZXggM2Y2Y2JhYTI2MjllMzRkZDI5MGFkN2Fi
MDA2YWI5MTc0YzdlZTUxOS4uMWI3NDIxNDJkN2Q0NmNkNjkzMmIzODUzYjE3ZDFkZjFhZjUyOWI1
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxv
YWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxv
YWRlci5jcHAKQEAgLTMzLDEyICszMywxMiBAQAogCiAjaW5jbHVkZSAiQ2FjaGVkUmF3UmVzb3Vy
Y2UuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgotI2luY2x1ZGUgIkNhY2hl
ZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRp
YXRvcnMuaCIKICNpbmNsdWRlICJDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaCIKICNpbmNsdWRl
ICJDcm9zc09yaWdpblByZWZsaWdodENoZWNrZXIuaCIKICNpbmNsdWRlICJDcm9zc09yaWdpblBy
ZWZsaWdodFJlc3VsdENhY2hlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJG
ZXRjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJG
cmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgpAQCAt
MzY1LDcgKzM2NSw3IEBAIHZvaWQgRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpsb2FkUmVxdWVz
dChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBTZWN1cml0eUNoCiAgICAgICAgIG9wdGlvbnMu
Y2xpZW50Q3JlZGVudGlhbFBvbGljeSA9IG1fc2FtZU9yaWdpblJlcXVlc3QgPyBDbGllbnRDcmVk
ZW50aWFsUG9saWN5OjpNYXlBc2tDbGllbnRGb3JDcmVkZW50aWFscyA6IENsaWVudENyZWRlbnRp
YWxQb2xpY3k6OkNhbm5vdEFza0NsaWVudEZvckNyZWRlbnRpYWxzOwogICAgICAgICBvcHRpb25z
LmNvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb24gPSBDb250ZW50U2VjdXJpdHlQb2xpY3lJ
bXBvc2l0aW9uOjpTa2lwUG9saWN5Q2hlY2s7CiAKLSAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0IG5ld1JlcXVlc3QoV1RGTW92ZShyZXF1ZXN0KSwgb3B0aW9ucyk7CisgICAgICAgIEZldGNo
ZWRSZXNvdXJjZVJlcXVlc3QgbmV3UmVxdWVzdChXVEZNb3ZlKHJlcXVlc3QpLCBvcHRpb25zKTsK
ICAgICAgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkucmVz
b3VyY2VUaW1pbmdFbmFibGVkKCkpCiAgICAgICAgICAgICBuZXdSZXF1ZXN0LnNldEluaXRpYXRv
cihtX29wdGlvbnMuaW5pdGlhdG9yKTsKICAgICAgICAgbmV3UmVxdWVzdC5tdXRhYmxlUmVzb3Vy
Y2VSZXF1ZXN0KCkuc2V0QWxsb3dDb29raWVzKG1fb3B0aW9ucy5hbGxvd0NyZWRlbnRpYWxzID09
IEFsbG93U3RvcmVkQ3JlZGVudGlhbHMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXJDbGllbnQuaAppbmRleCAzNzk5MmUxYjQ0NTI1MTI1NDIxYTljYjJkYTEwM2I0YTU3OThiNjA2
Li40NWM2NDlkZDA3Zjg5OGJkYTNkY2Q0ZDNhNjhlOGMwODYxZDE4Y2ZhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtNjEsNyArNjEsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTsKICAgICBj
bGFzcyBDYWNoZWRGcmFtZTsKLSAgICBjbGFzcyBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q7CisgICAg
Y2xhc3MgRmV0Y2hlZFJlc291cmNlUmVxdWVzdDsKICAgICBjbGFzcyBDb2xvcjsKICAgICBjbGFz
cyBET01XaW5kb3dFeHRlbnNpb247CiAgICAgY2xhc3MgRE9NV3JhcHBlcldvcmxkOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAKaW5kZXggYzFhYzNiZTQyNjUxZmIwZmViZjFhYzJk
MjBkM2Y3Njc0NmZjODIzMS4uOGM5ZTlhM2M2MDhkMzk5YTQxMWUzNzM5ODVmNmUzNjNiYzQzNjBk
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ltYWdlTG9hZGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIuY3BwCkBAIC0yNCwxMyArMjQsMTMg
QEAKIAogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VM
b2FkZXIuaCIKLSNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJD
cm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1
ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMu
aCIKICNpbmNsdWRlICJFdmVudFNlbmRlci5oIgorI2luY2x1ZGUgIkZldGNoZWRSZXNvdXJjZVJl
cXVlc3QuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2lu
Y2x1ZGUgIkhUTUxPYmplY3RFbGVtZW50LmgiCkBAIC0xNzcsNyArMTc3LDcgQEAgdm9pZCBJbWFn
ZUxvYWRlcjo6dXBkYXRlRnJvbUVsZW1lbnQoKQogICAgICAgICBvcHRpb25zLmNvbnRlbnRTZWN1
cml0eVBvbGljeUltcG9zaXRpb24gPSBlbGVtZW50KCkuaXNJblVzZXJBZ2VudFNoYWRvd1RyZWUo
KSA/IENvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb246OlNraXBQb2xpY3lDaGVjayA6IENv
bnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb246OkRvUG9saWN5Q2hlY2s7CiAgICAgICAgIG9w
dGlvbnMuc2FtZU9yaWdpbkRhdGFVUkxGbGFnID0gU2FtZU9yaWdpbkRhdGFVUkxGbGFnOjpTZXQ7
CiAKLSAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0
KGRvY3VtZW50LmNvbXBsZXRlVVJMKHNvdXJjZVVSSShhdHRyKSkpLCBvcHRpb25zKTsKKyAgICAg
ICAgRmV0Y2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChkb2N1bWVu
dC5jb21wbGV0ZVVSTChzb3VyY2VVUkkoYXR0cikpKSwgb3B0aW9ucyk7CiAgICAgICAgIHJlcXVl
c3Quc2V0SW5pdGlhdG9yKCZlbGVtZW50KCkpOwogCiAgICAgICAgIHJlcXVlc3Quc2V0QXNQb3Rl
bnRpYWxseUNyb3NzT3JpZ2luKGVsZW1lbnQoKS5hdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0
aW9uKEhUTUxOYW1lczo6Y3Jvc3NvcmlnaW5BdHRyKSwgZG9jdW1lbnQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0xpbmtMb2FkZXIuY3BwCmluZGV4IDYzZTk5YzU1NGI0MjhhYjc4NDUzZjBhMDM0N2NlN2E5
MDhiYWNkMDQuLjI2N2U2Y2MyNjAwZDBmM2YzODczYjUwOGNlMzgzY2IzMjU3ZDc1NDkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5jcHAKQEAgLTM2LDEwICszNiwxMCBAQAogI2luY2x1
ZGUgIkNTU1N0eWxlU2hlZXQuaCIKICNpbmNsdWRlICJDYWNoZWRDU1NTdHlsZVNoZWV0LmgiCiAj
aW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKLSNpbmNsdWRlICJDYWNoZWRSZXNvdXJj
ZVJlcXVlc3QuaCIKICNpbmNsdWRlICJDb250YWluZXJOb2RlLmgiCiAjaW5jbHVkZSAiQ3Jvc3NP
cmlnaW5BY2Nlc3NDb250cm9sLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJG
ZXRjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJG
cmFtZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgpAQCAtMTU4LDcgKzE1
OCw3IEBAIHZvaWQgTGlua0xvYWRlcjo6cHJlbG9hZElmTmVlZGVkKGNvbnN0IExpbmtSZWxBdHRy
aWJ1dGUmIHJlbEF0dHJpYnV0ZSwgY29uc3QgVVJMCiAKICAgICBSZXNvdXJjZVJlcXVlc3QgcmVz
b3VyY2VSZXF1ZXN0KGRvY3VtZW50LmNvbXBsZXRlVVJMKGhyZWYpKTsKICAgICByZXNvdXJjZVJl
cXVlc3Quc2V0SWdub3JlRm9yUmVxdWVzdENvdW50KHRydWUpOwotICAgIENhY2hlZFJlc291cmNl
UmVxdWVzdCBsaW5rUmVxdWVzdChXVEZNb3ZlKHJlc291cmNlUmVxdWVzdCksIENhY2hlZFJlc291
cmNlTG9hZGVyOjpkZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCksIENhY2hlZFJlc291cmNl
OjpkZWZhdWx0UHJpb3JpdHlGb3JSZXNvdXJjZVR5cGUodHlwZS52YWx1ZSgpKSk7CisgICAgRmV0
Y2hlZFJlc291cmNlUmVxdWVzdCBsaW5rUmVxdWVzdChXVEZNb3ZlKHJlc291cmNlUmVxdWVzdCks
IENhY2hlZFJlc291cmNlTG9hZGVyOjpkZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCksIENh
Y2hlZFJlc291cmNlOjpkZWZhdWx0UHJpb3JpdHlGb3JSZXNvdXJjZVR5cGUodHlwZS52YWx1ZSgp
KSk7CiAgICAgbGlua1JlcXVlc3Quc2V0SW5pdGlhdG9yKCJsaW5rIik7CiAKICAgICBsaW5rUmVx
dWVzdC5zZXRBc1BvdGVudGlhbGx5Q3Jvc3NPcmlnaW4oY3Jvc3NPcmlnaW5Nb2RlLCBkb2N1bWVu
dCk7CkBAIC0yMDIsNyArMjAyLDcgQEAgYm9vbCBMaW5rTG9hZGVyOjpsb2FkTGluayhjb25zdCBM
aW5rUmVsQXR0cmlidXRlJiByZWxBdHRyaWJ1dGUsIGNvbnN0IFVSTCYgaHJlZiwKICAgICAgICAg
fQogICAgICAgICBSZXNvdXJjZUxvYWRlck9wdGlvbnMgb3B0aW9ucyA9IENhY2hlZFJlc291cmNl
TG9hZGVyOjpkZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCk7CiAgICAgICAgIG9wdGlvbnMu
Y29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbiA9IENvbnRlbnRTZWN1cml0eVBvbGljeUlt
cG9zaXRpb246OlNraXBQb2xpY3lDaGVjazsKLSAgICAgICAgbV9jYWNoZWRMaW5rUmVzb3VyY2Ug
PSBkb2N1bWVudC5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLnJlcXVlc3RMaW5rUmVzb3VyY2UodHlw
ZSwgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0KFJlc291cmNlUmVxdWVzdChkb2N1bWVudC5jb21wbGV0
ZVVSTChocmVmKSksIG9wdGlvbnMsIHByaW9yaXR5KSk7CisgICAgICAgIG1fY2FjaGVkTGlua1Jl
c291cmNlID0gZG9jdW1lbnQuY2FjaGVkUmVzb3VyY2VMb2FkZXIoKS5yZXF1ZXN0TGlua1Jlc291
cmNlKHR5cGUsIHsgUmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50LmNvbXBsZXRlVVJMKGhyZWYpKSwg
b3B0aW9ucywgcHJpb3JpdHkgfSk7CiAgICAgICAgIGlmIChtX2NhY2hlZExpbmtSZXNvdXJjZSkK
ICAgICAgICAgICAgIG1fY2FjaGVkTGlua1Jlc291cmNlLT5hZGRDbGllbnQodGhpcyk7CiAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL01lZGlhUmVzb3VyY2VMb2FkZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL01lZGlhUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4
IDljNzI2NThhMjljOGRhNzAxOTU1ZGVmZTg5YmI5NDBiOGNhZDJlNGIuLjc4OTExNDZjYzJhOGIz
ZjkyMDc3MjNjMjg3OGNiNDk2M2Y2ZGI2NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9NZWRpYVJlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
TWVkaWFSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTMxLDkgKzMxLDkgQEAKIAogI2luY2x1ZGUgIkNh
Y2hlZFJhd1Jlc291cmNlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKLSNp
bmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJDcm9zc09yaWdpbkFj
Y2Vzc0NvbnRyb2wuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkZldGNoZWRS
ZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUg
PHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCkBAIC02Nyw3ICs2Nyw3IEBAIFJlZlB0cjxQbGF0Zm9y
bU1lZGlhUmVzb3VyY2U+IE1lZGlhUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJjZShjb25z
dCBSZXNvdXJjCiAKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHRyeSB0byByZW1vdmUgdGhlIGNv
cHkgb2YgcmVxdWVzdCB3aGVuIGNyZWFyaW5nIGNhY2hlUmVxdWVzdC4KICAgICAvLyBGSVhNRTog
U2tpcCBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBjaGVjayBpZiB0aGUgZWxlbWVudCB0aGF0IGlu
aXRpdGF0ZWQgdGhpcyByZXF1ZXN0IGlzIGluIGEgdXNlci1hZ2VudCBzaGFkb3cgdHJlZS4gU2Vl
IDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU1NTA1Pi4KLSAgICBD
YWNoZWRSZXNvdXJjZVJlcXVlc3QgY2FjaGVSZXF1ZXN0KFJlc291cmNlUmVxdWVzdChyZXF1ZXN0
KSwgUmVzb3VyY2VMb2FkZXJPcHRpb25zKFNlbmRDYWxsYmFja3MsIERvTm90U25pZmZDb250ZW50
LCBidWZmZXJpbmdQb2xpY3ksIEFsbG93U3RvcmVkQ3JlZGVudGlhbHMsIENsaWVudENyZWRlbnRp
YWxQb2xpY3k6Ok1heUFza0NsaWVudEZvckNyZWRlbnRpYWxzLCBGZXRjaE9wdGlvbnM6OkNyZWRl
bnRpYWxzOjpJbmNsdWRlLCBEb1NlY3VyaXR5Q2hlY2ssIEZldGNoT3B0aW9uczo6TW9kZTo6Tm9D
b3JzLCBEb05vdEluY2x1ZGVDZXJ0aWZpY2F0ZUluZm8sIENvbnRlbnRTZWN1cml0eVBvbGljeUlt
cG9zaXRpb246OkRvUG9saWN5Q2hlY2ssIERlZmVyc0xvYWRpbmdQb2xpY3k6OkFsbG93RGVmZXJz
TG9hZGluZywgY2FjaGluZ1BvbGljeSkpOworICAgIEZldGNoZWRSZXNvdXJjZVJlcXVlc3QgY2Fj
aGVSZXF1ZXN0KFJlc291cmNlUmVxdWVzdChyZXF1ZXN0KSwgUmVzb3VyY2VMb2FkZXJPcHRpb25z
KFNlbmRDYWxsYmFja3MsIERvTm90U25pZmZDb250ZW50LCBidWZmZXJpbmdQb2xpY3ksIEFsbG93
U3RvcmVkQ3JlZGVudGlhbHMsIENsaWVudENyZWRlbnRpYWxQb2xpY3k6Ok1heUFza0NsaWVudEZv
ckNyZWRlbnRpYWxzLCBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpJbmNsdWRlLCBEb1NlY3Vy
aXR5Q2hlY2ssIEZldGNoT3B0aW9uczo6TW9kZTo6Tm9Db3JzLCBEb05vdEluY2x1ZGVDZXJ0aWZp
Y2F0ZUluZm8sIENvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb246OkRvUG9saWN5Q2hlY2ss
IERlZmVyc0xvYWRpbmdQb2xpY3k6OkFsbG93RGVmZXJzTG9hZGluZywgY2FjaGluZ1BvbGljeSkp
OwogCiAgICAgY2FjaGVSZXF1ZXN0LnNldEFzUG90ZW50aWFsbHlDcm9zc09yaWdpbihtX2Nyb3Nz
T3JpZ2luTW9kZSwgKm1fZG9jdW1lbnQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvUmVzb3VyY2VUaW1pbmdJbmZvcm1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvUmVzb3VyY2VUaW1pbmdJbmZvcm1hdGlvbi5jcHAKaW5kZXggNWRlNjZlZDU1ZDE1MzMxZGNj
ZjQxODJjNDg5MGM2ZGQ4MjYyOTliNC4uY2FjOWU4YWUyYzVkODIyNmY0ODE2ZTRjMjBiY2U1YTc5
M2JmMzUzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlVGltaW5n
SW5mb3JtYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZVRpbWlu
Z0luZm9ybWF0aW9uLmNwcApAQCAtMjgsOSArMjgsOSBAQAogI2luY2x1ZGUgIlJlc291cmNlVGlt
aW5nSW5mb3JtYXRpb24uaCIKIAogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlLmgiCi0jaW5jbHVk
ZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAj
aW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJIVE1MRnJhbWVPd25lckVsZW1lbnQuaCIKICNp
bmNsdWRlICJMb2FkVGltaW5nLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
UmVzb3VyY2VUaW1pbmdJbmZvcm1hdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291
cmNlVGltaW5nSW5mb3JtYXRpb24uaAppbmRleCA4MzYzZDYwNDMyNTA2OTU3ZTAyODJmNjU0NzY4
M2YwN2QxYzYyZTk3Li4yOThkNzJlMWMxOWNlZjdkNmQzN2UyZjU5MzcxMWU0MzE4YzE1NWM5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VUaW1pbmdJbmZvcm1hdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZVRpbWluZ0luZm9ybWF0aW9u
LmgKQEAgLTM0LDcgKzM0LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ2FjaGVk
UmVzb3VyY2U7Ci1jbGFzcyBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q7CitjbGFzcyBGZXRjaGVkUmVz
b3VyY2VSZXF1ZXN0OwogY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBGcmFtZTsKIGNsYXNzIExvYWRU
aW1pbmc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGV4dFRyYWNrTG9hZGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UZXh0VHJhY2tMb2FkZXIuY3BwCmluZGV4IGVl
YjIwOWQ3ZWQ3MWE0ODc0NTNkMWRjOGVlODIwZWRhMGJlMDI4YjQuLjAwMDI5YWU0NDkxNjFkMWM1
NDAwNGIxM2UwNjA4NjllYjEzN2EwMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9UZXh0VHJhY2tMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9UZXh0VHJh
Y2tMb2FkZXIuY3BwCkBAIC0zMSwxMCArMzEsMTAgQEAKICNpbmNsdWRlICJUZXh0VHJhY2tMb2Fk
ZXIuaCIKIAogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCi0jaW5jbHVkZSAiQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiQ2FjaGVkVGV4dFRyYWNrLmgiCiAjaW5j
bHVkZSAiQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIK
KyNpbmNsdWRlICJGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5o
IgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgi
CkBAIC0xNTQsNyArMTU0LDcgQEAgYm9vbCBUZXh0VHJhY2tMb2FkZXI6OmxvYWQoY29uc3QgVVJM
JiB1cmwsIGNvbnN0IFN0cmluZyYgY3Jvc3NPcmlnaW5Nb2RlLCBib29sIGkKICAgICBSZXNvdXJj
ZUxvYWRlck9wdGlvbnMgb3B0aW9ucyA9IENhY2hlZFJlc291cmNlTG9hZGVyOjpkZWZhdWx0Q2Fj
aGVkUmVzb3VyY2VPcHRpb25zKCk7CiAgICAgb3B0aW9ucy5jb250ZW50U2VjdXJpdHlQb2xpY3lJ
bXBvc2l0aW9uID0gaXNJbml0aWF0aW5nRWxlbWVudEluVXNlckFnZW50U2hhZG93VHJlZSA/IENv
bnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb246OlNraXBQb2xpY3lDaGVjayA6IENvbnRlbnRT
ZWN1cml0eVBvbGljeUltcG9zaXRpb246OkRvUG9saWN5Q2hlY2s7CiAKLSAgICBDYWNoZWRSZXNv
dXJjZVJlcXVlc3QgY3VlUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QoZG9jdW1lbnQtPmNvbXBsZXRl
VVJMKHVybCkpLCBvcHRpb25zKTsKKyAgICBGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0IGN1ZVJlcXVl
c3QoUmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50LT5jb21wbGV0ZVVSTCh1cmwpKSwgb3B0aW9ucyk7
CiAgICAgY3VlUmVxdWVzdC5zZXRBc1BvdGVudGlhbGx5Q3Jvc3NPcmlnaW4oY3Jvc3NPcmlnaW5N
b2RlLCAqZG9jdW1lbnQpOwogCiAgICAgbV9yZXNvdXJjZSA9IGRvY3VtZW50LT5jYWNoZWRSZXNv
dXJjZUxvYWRlcigpLnJlcXVlc3RUZXh0VHJhY2soV1RGTW92ZShjdWVSZXF1ZXN0KSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5jcHAK
aW5kZXggMzUyZmE1MzhmNDEyOTViYjgyNDBhODFiYzUxZWQ2YWUwNDE0NTI5NC4uNDRmNWU0NzQx
YzgwNDRhOGM0NDgwYTM3YWE2N2U5OTVjZWJmYTVjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmNwcApAQCAtMjksOCArMjksOCBA
QAogCiAjaW5jbHVkZSAiQ1NTU3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNl
Q2xpZW50V2Fsa2VyLmgiCi0jaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5j
bHVkZSAiQ2FjaGVkU3R5bGVTaGVldENsaWVudC5oIgorI2luY2x1ZGUgIkZldGNoZWRSZXNvdXJj
ZVJlcXVlc3QuaCIKICNpbmNsdWRlICJIVFRQSGVhZGVyTmFtZXMuaCIKICNpbmNsdWRlICJIVFRQ
UGFyc2Vycy5oIgogI2luY2x1ZGUgIk1lbW9yeUNhY2hlLmgiCkBAIC00MSw3ICs0MSw3IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQ2FjaGVkQ1NTU3R5bGVTaGVldDo6Q2FjaGVkQ1NTU3R5
bGVTaGVldChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBTZXNzaW9uSUQgc2Vzc2lv
bklEKQorQ2FjaGVkQ1NTU3R5bGVTaGVldDo6Q2FjaGVkQ1NTU3R5bGVTaGVldChGZXRjaGVkUmVz
b3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgU2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICA6IENhY2hl
ZFJlc291cmNlKFdURk1vdmUocmVxdWVzdCksIENTU1N0eWxlU2hlZXQsIHNlc3Npb25JRCkKICAg
ICAsIG1fZGVjb2RlcihUZXh0UmVzb3VyY2VEZWNvZGVyOjpjcmVhdGUoInRleHQvY3NzIiwgcmVx
dWVzdC5jaGFyc2V0KCkpKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRDU1NTdHlsZVNoZWV0LmgKaW5kZXggMDg0MzM3NjczOWRjZmU2OGQwNGI4YzJhZWJhMGMz
NTMxNzk0MTFlMy4uY2MxNDkzZDM5NjA0NGM3YmI4MGQ1NmE5NTVhMDQ2NTRkOTk5YzgzYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5o
CkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIENhY2hl
ZENTU1N0eWxlU2hlZXQgZmluYWwgOiBwdWJsaWMgQ2FjaGVkUmVzb3VyY2UgewogICAgIHB1Ymxp
YzoKLSAgICAgICAgQ2FjaGVkQ1NTU3R5bGVTaGVldChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiwg
U2Vzc2lvbklEKTsKKyAgICAgICAgQ2FjaGVkQ1NTU3R5bGVTaGVldChGZXRjaGVkUmVzb3VyY2VS
ZXF1ZXN0JiYsIFNlc3Npb25JRCk7CiAgICAgICAgIHZpcnR1YWwgfkNhY2hlZENTU1N0eWxlU2hl
ZXQoKTsKIAogICAgICAgICBlbnVtIGNsYXNzIE1JTUVUeXBlQ2hlY2sgeyBTdHJpY3QsIExheCB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuY3BwCmluZGV4IGU3YTVk
Mjk3NTRjMTMzYzk4MTc5OGI4MWVjOWNhN2IxYTRhMTMxMTMuLmE1OTExMjkyNDc1NThmZDlhZTM1
MDdlMjAwMWI3NjRjYzhiNjJhZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRGb250LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkRm9udC5jcHAKQEAgLTQyLDcgKzQyLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1D
YWNoZWRGb250OjpDYWNoZWRGb250KENhY2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFNl
c3Npb25JRCBzZXNzaW9uSUQsIFR5cGUgdHlwZSkKK0NhY2hlZEZvbnQ6OkNhY2hlZEZvbnQoRmV0
Y2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFNlc3Npb25JRCBzZXNzaW9uSUQsIFR5cGUg
dHlwZSkKICAgICA6IENhY2hlZFJlc291cmNlKFdURk1vdmUocmVxdWVzdCksIHR5cGUsIHNlc3Np
b25JRCkKICAgICAsIG1fbG9hZEluaXRpYXRlZChmYWxzZSkKICAgICAsIG1faGFzQ3JlYXRlZEZv
bnREYXRhV3JhcHBpbmdSZXNvdXJjZShmYWxzZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRGb250LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkRm9udC5oCmluZGV4IGNhNzkxMWU1NWM1YmI5ZmU3OTM4NzA5MTMxNmQ5OTRiMWZlYjM5
MTIuLmEwYTJkYWY2MThhMzY3ZWYwMjdlOTQ5NzVkYjZkOGM4Y2QwMDcyM2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRGb250LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuaApAQCAtNDUsNyArNDUsNyBAQCB0eXBlZGVm
IEZvbnRUYWdnZWRTZXR0aW5nczxpbnQ+IEZvbnRGZWF0dXJlU2V0dGluZ3M7CiAKIGNsYXNzIENh
Y2hlZEZvbnQgOiBwdWJsaWMgQ2FjaGVkUmVzb3VyY2UgewogcHVibGljOgotICAgIENhY2hlZEZv
bnQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYsIFNlc3Npb25JRCwgVHlwZSA9IEZvbnRSZXNvdXJj
ZSk7CisgICAgQ2FjaGVkRm9udChGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0JiYsIFNlc3Npb25JRCwg
VHlwZSA9IEZvbnRSZXNvdXJjZSk7CiAgICAgdmlydHVhbCB+Q2FjaGVkRm9udCgpOwogCiAgICAg
dm9pZCBiZWdpbkxvYWRJZk5lZWRlZChDYWNoZWRSZXNvdXJjZUxvYWRlciYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAKaW5kZXggMmYzNjEzMDdhOTFkNGUx
ODc3OGQ2M2ViNGE4MjY2YjYxNTVjNzg3MS4uY2EwZTc0NTlhMjg1N2EwYjgyZjUxODQ1OTk0Njgz
MmI3ZjFjZWEwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZEltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2Uu
Y3BwCkBAIC01Niw3ICs1Niw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQ2FjaGVkSW1h
Z2U6OkNhY2hlZEltYWdlKENhY2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFNlc3Npb25J
RCBzZXNzaW9uSUQpCitDYWNoZWRJbWFnZTo6Q2FjaGVkSW1hZ2UoRmV0Y2hlZFJlc291cmNlUmVx
dWVzdCYmIHJlcXVlc3QsIFNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgOiBDYWNoZWRSZXNvdXJj
ZShXVEZNb3ZlKHJlcXVlc3QpLCBJbWFnZVJlc291cmNlLCBzZXNzaW9uSUQpCiB7CiAgICAgc2V0
U3RhdHVzKFVua25vd24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZEltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2Uu
aAppbmRleCA4Y2ZjYzkyZDhlMWYzMjVjMzEyM2E4NGJlMjhiZjE3ZTgxZDc1ZTk1Li4wMDRkNmNm
MjcwOWI2MTFiYzAzOGZhOTM2ODUxMjIxODkwZGRiOWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuaApAQCAtNDgsNyArNDgsNyBAQCBjbGFzcyBDYWNoZWRJbWFn
ZSBmaW5hbCA6IHB1YmxpYyBDYWNoZWRSZXNvdXJjZSwgcHVibGljIEltYWdlT2JzZXJ2ZXIgewog
ICAgIGZyaWVuZCBjbGFzcyBNZW1vcnlDYWNoZTsKIAogcHVibGljOgotICAgIENhY2hlZEltYWdl
KENhY2hlZFJlc291cmNlUmVxdWVzdCYmLCBTZXNzaW9uSUQpOworICAgIENhY2hlZEltYWdlKEZl
dGNoZWRSZXNvdXJjZVJlcXVlc3QmJiwgU2Vzc2lvbklEKTsKICAgICBDYWNoZWRJbWFnZShJbWFn
ZSosIFNlc3Npb25JRCk7CiAgICAgLy8gQ29uc3RydWN0b3IgdG8gdXNlIGZvciBtYW51YWxseSBj
YWNoZWQgaW1hZ2VzLgogICAgIENhY2hlZEltYWdlKGNvbnN0IFVSTCYsIEltYWdlKiwgU2Vzc2lv
bklEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdS
ZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3Vy
Y2UuY3BwCmluZGV4IDMzMzJlMGM1YmJlODlmZmMwOWYzNmQ1OTdiZmE1YzMwNGMzOGE5ZTkuLjUy
ZDViM2I0ZTBiYTIzMGI1YmFiZWRhNThkZWE2ZjFjZTVlOGJhNzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcApAQCAtMzYsNyArMzYs
NyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUNhY2hlZFJhd1Jlc291cmNlOjpDYWNoZWRS
YXdSZXNvdXJjZShDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBUeXBlIHR5cGUsIFNl
c3Npb25JRCBzZXNzaW9uSUQpCitDYWNoZWRSYXdSZXNvdXJjZTo6Q2FjaGVkUmF3UmVzb3VyY2Uo
RmV0Y2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFR5cGUgdHlwZSwgU2Vzc2lvbklEIHNl
c3Npb25JRCkKICAgICA6IENhY2hlZFJlc291cmNlKFdURk1vdmUocmVxdWVzdCksIHR5cGUsIHNl
c3Npb25JRCkKICAgICAsIG1faWRlbnRpZmllcigwKQogICAgICwgbV9hbGxvd0VuY29kZWREYXRh
UmVwbGFjZW1lbnQodHJ1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRSYXdSZXNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFJhd1Jlc291cmNlLmgKaW5kZXggMDVhMWE1ZGM5NTUwN2YyYzE1MmRmNzBiZTg5Y2RjMGNmZjQx
MGU4ZC4uZTlmZTc1ZWE2MTU0NzU5NzEyNTEyNzBiNDYxMzI5MDJjYjc3NTQ0YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmgKQEAgLTMyLDcg
KzMyLDcgQEAgY2xhc3MgU3VicmVzb3VyY2VMb2FkZXI7CiAKIGNsYXNzIENhY2hlZFJhd1Jlc291
cmNlIGZpbmFsIDogcHVibGljIENhY2hlZFJlc291cmNlIHsKIHB1YmxpYzoKLSAgICBDYWNoZWRS
YXdSZXNvdXJjZShDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiwgVHlwZSwgU2Vzc2lvbklEKTsKKyAg
ICBDYWNoZWRSYXdSZXNvdXJjZShGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0JiYsIFR5cGUsIFNlc3Np
b25JRCk7CiAKICAgICAvLyBGSVhNRTogQXNzb2NpYXRlZFVSTExvYWRlciBzaG91bGRuJ3QgYmUg
YSBEb2N1bWVudFRocmVhZGFibGVMb2FkZXIgYW5kIHRoZXJlZm9yZSBzaG91bGRuJ3QKICAgICAv
LyB1c2UgQ2FjaGVkUmF3UmVzb3VyY2UuIEhvd2V2ZXIsIGl0IGlzLCBhbmQgaXQgbmVlZHMgdG8g
YmUgYWJsZSB0byBkZWZlciBsb2FkaW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZS5jcHAKaW5kZXggM2JhYzkxNmIxOWRmMjE4YWEyODdiNDMyMmRmYzgz
YzZhMGRkYjg1OS4uNDUxY2VjYWQ4MDZhMDE3ODFmNmI4ODhlN2ZlOTE1Nzg0NjY3NDcyZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCkBAIC0x
MTQsNyArMTE0LDcgQEAgc3RhdGljIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgZGVhZERlY29k
ZWREYXRhRGVsZXRpb25JbnRlcnZhbEZvclJlc291cmNlVHlwZSgKIAogREVGSU5FX0RFQlVHX09O
TFlfR0xPQkFMKFJlZkNvdW50ZWRMZWFrQ291bnRlciwgY2FjaGVkUmVzb3VyY2VMZWFrQ291bnRl
ciwgKCJDYWNoZWRSZXNvdXJjZSIpKTsKIAotQ2FjaGVkUmVzb3VyY2U6OkNhY2hlZFJlc291cmNl
KENhY2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFR5cGUgdHlwZSwgU2Vzc2lvbklEIHNl
c3Npb25JRCkKK0NhY2hlZFJlc291cmNlOjpDYWNoZWRSZXNvdXJjZShGZXRjaGVkUmVzb3VyY2VS
ZXF1ZXN0JiYgcmVxdWVzdCwgVHlwZSB0eXBlLCBTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAgIDog
bV9yZXNvdXJjZVJlcXVlc3QoV1RGTW92ZShyZXF1ZXN0Lm11dGFibGVSZXNvdXJjZVJlcXVlc3Qo
KSkpCiAgICAgLCBtX29wdGlvbnMocmVxdWVzdC5vcHRpb25zKCkpCiAgICAgLCBtX2RlY29kZWRE
YXRhRGVsZXRpb25UaW1lcigqdGhpcywgJkNhY2hlZFJlc291cmNlOjpkZXN0cm95RGVjb2RlZERh
dGEsIGRlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWxGb3JSZXNvdXJjZVR5cGUodHlwZSkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCmluZGV4IDcx
Nzk3YThjNzFhYmMzYWYzZjNhMGNlZmJlMGJkNTMyNDA5YWYwY2YuLmMyNzAyZGRkYTA2NjQ2Mzgx
MGRlMzE2ZTdkNmMxZGM0OTU0ZDdmMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZS5oCkBAIC00Niw3ICs0Niw3IEBAIGNsYXNzIE1lbW9yeUNhY2hlOwog
Y2xhc3MgQ2FjaGVkUmVzb3VyY2VDbGllbnQ7CiBjbGFzcyBDYWNoZWRSZXNvdXJjZUhhbmRsZUJh
c2U7CiBjbGFzcyBDYWNoZWRSZXNvdXJjZUxvYWRlcjsKLWNsYXNzIENhY2hlZFJlc291cmNlUmVx
dWVzdDsKK2NsYXNzIEZldGNoZWRSZXNvdXJjZVJlcXVlc3Q7CiBjbGFzcyBJbnNwZWN0b3JSZXNv
dXJjZTsKIGNsYXNzIFNlY3VyaXR5T3JpZ2luOwogY2xhc3MgU2hhcmVkQnVmZmVyOwpAQCAtOTQs
NyArOTQsNyBAQCBwdWJsaWM6CiAgICAgICAgIERlY29kZUVycm9yCiAgICAgfTsKIAotICAgIENh
Y2hlZFJlc291cmNlKENhY2hlZFJlc291cmNlUmVxdWVzdCYmLCBUeXBlLCBTZXNzaW9uSUQpOwor
ICAgIENhY2hlZFJlc291cmNlKEZldGNoZWRSZXNvdXJjZVJlcXVlc3QmJiwgVHlwZSwgU2Vzc2lv
bklEKTsKICAgICB2aXJ0dWFsIH5DYWNoZWRSZXNvdXJjZSgpOwogCiAgICAgdmlydHVhbCB2b2lk
IGxvYWQoQ2FjaGVkUmVzb3VyY2VMb2FkZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDdlNzA2MDc5MTE1ZmE2
ZjUyMWI2ZmJlYzA1YmYwNmVjNGZiOWU3NTcuLjJkYWEwZDI0NDE3YTZiYmU5OWYxZjAxNjY2MTkx
NzAyNzBjNDYwYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlTG9hZGVyLmNwcApAQCAtMzIsNyArMzIsNiBAQAogI2luY2x1ZGUgIkNhY2hl
ZEZvbnQuaCIKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgogI2luY2x1ZGUgIkNhY2hlZFJhd1Jl
c291cmNlLmgiCi0jaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAi
Q2FjaGVkU1ZHRm9udC5oIgogI2luY2x1ZGUgIkNhY2hlZFNjcmlwdC5oIgogI2luY2x1ZGUgIkNh
Y2hlZFhTTFN0eWxlU2hlZXQuaCIKQEAgLTQ2LDYgKzQ1LDcgQEAKICNpbmNsdWRlICJEaWFnbm9z
dGljTG9nZ2luZ0tleXMuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3Vt
ZW50TG9hZGVyLmgiCisjaW5jbHVkZSAiRmV0Y2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1
ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZUxv
YWRlckNsaWVudC5oIgpAQCAtODQsNyArODQsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LXN0YXRpYyBDYWNoZWRSZXNvdXJjZSogY3JlYXRlUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5
cGUgdHlwZSwgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgU2Vzc2lvbklEIHNlc3Np
b25JRCkKK3N0YXRpYyBDYWNoZWRSZXNvdXJjZSogY3JlYXRlUmVzb3VyY2UoQ2FjaGVkUmVzb3Vy
Y2U6OlR5cGUgdHlwZSwgRmV0Y2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFNlc3Npb25J
RCBzZXNzaW9uSUQpCiB7CiAgICAgc3dpdGNoICh0eXBlKSB7CiAgICAgY2FzZSBDYWNoZWRSZXNv
dXJjZTo6SW1hZ2VSZXNvdXJjZToKQEAgLTE3Niw3ICsxNzYsNyBAQCBTZXNzaW9uSUQgQ2FjaGVk
UmVzb3VyY2VMb2FkZXI6OnNlc3Npb25JRCgpIGNvbnN0CiAgICAgcmV0dXJuIHNlc3Npb25JRDsK
IH0KIAotQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkSW1hZ2U+IENhY2hlZFJlc291cmNlTG9h
ZGVyOjpyZXF1ZXN0SW1hZ2UoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCkKK0NhY2hl
ZFJlc291cmNlSGFuZGxlPENhY2hlZEltYWdlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVz
dEltYWdlKEZldGNoZWRSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0KQogewogICAgIGlmIChGcmFt
ZSogZnJhbWUgPSB0aGlzLT5mcmFtZSgpKSB7CiAgICAgICAgIGlmIChmcmFtZS0+bG9hZGVyKCku
cGFnZURpc21pc3NhbEV2ZW50QmVpbmdEaXNwYXRjaGVkKCkgIT0gRnJhbWVMb2FkZXI6OlBhZ2VE
aXNtaXNzYWxUeXBlOjpOb25lKSB7CkBAIC0xODksMTEgKzE4OSwxMSBAQCBDYWNoZWRSZXNvdXJj
ZUhhbmRsZTxDYWNoZWRJbWFnZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RJbWFnZShD
YWNoZWRSZXNvdQogICAgICAgICB9CiAgICAgfQogCi0gICAgcmVxdWVzdC5zZXREZWZlcihjbGll
bnREZWZlcnNJbWFnZShyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLnVybCgpKSA/IENhY2hlZFJl
c291cmNlUmVxdWVzdDo6RGVmZXJyZWRCeUNsaWVudCA6IENhY2hlZFJlc291cmNlUmVxdWVzdDo6
Tm9EZWZlcik7CisgICAgcmVxdWVzdC5zZXREZWZlcihjbGllbnREZWZlcnNJbWFnZShyZXF1ZXN0
LnJlc291cmNlUmVxdWVzdCgpLnVybCgpKSA/IEZldGNoZWRSZXNvdXJjZVJlcXVlc3Q6OkRlZmVy
cmVkQnlDbGllbnQgOiBGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0OjpOb0RlZmVyKTsKICAgICByZXR1
cm4gZG93bmNhc3Q8Q2FjaGVkSW1hZ2U+KHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6
SW1hZ2VSZXNvdXJjZSwgV1RGTW92ZShyZXF1ZXN0KSkuZ2V0KCkpOwogfQogCi1DYWNoZWRSZXNv
dXJjZUhhbmRsZTxDYWNoZWRGb250PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdEZvbnQo
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgYm9vbCBpc1NWRykKK0NhY2hlZFJlc291
cmNlSGFuZGxlPENhY2hlZEZvbnQ+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0Rm9udChG
ZXRjaGVkUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgYm9vbCBpc1NWRykKIHsKICNpZiBFTkFC
TEUoU1ZHX0ZPTlRTKQogICAgIGlmIChpc1NWRykKQEAgLTIwNSwxOCArMjA1LDE4IEBAIENhY2hl
ZFJlc291cmNlSGFuZGxlPENhY2hlZEZvbnQ+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0
Rm9udChDYWNoZWRSZXNvdXJjCiB9CiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCi1DYWNoZWRS
ZXNvdXJjZUhhbmRsZTxDYWNoZWRUZXh0VHJhY2s+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1
ZXN0VGV4dFRyYWNrKENhY2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QpCitDYWNoZWRSZXNv
dXJjZUhhbmRsZTxDYWNoZWRUZXh0VHJhY2s+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0
VGV4dFRyYWNrKEZldGNoZWRSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0KQogewogICAgIHJldHVy
biBkb3duY2FzdDxDYWNoZWRUZXh0VHJhY2s+KHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJj
ZTo6VGV4dFRyYWNrUmVzb3VyY2UsIFdURk1vdmUocmVxdWVzdCkpLmdldCgpKTsKIH0KICNlbmRp
ZgogCi1DYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRDU1NTdHlsZVNoZWV0PiBDYWNoZWRSZXNv
dXJjZUxvYWRlcjo6cmVxdWVzdENTU1N0eWxlU2hlZXQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYg
cmVxdWVzdCkKK0NhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZENTU1N0eWxlU2hlZXQ+IENhY2hl
ZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0Q1NTU3R5bGVTaGVldChGZXRjaGVkUmVzb3VyY2VSZXF1
ZXN0JiYgcmVxdWVzdCkKIHsKICAgICByZXR1cm4gZG93bmNhc3Q8Q2FjaGVkQ1NTU3R5bGVTaGVl
dD4ocmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpDU1NTdHlsZVNoZWV0LCBXVEZNb3Zl
KHJlcXVlc3QpKS5nZXQoKSk7CiB9CiAKLUNhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZENTU1N0
eWxlU2hlZXQ+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0VXNlckNTU1N0eWxlU2hlZXQo
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCkKK0NhY2hlZFJlc291cmNlSGFuZGxlPENh
Y2hlZENTU1N0eWxlU2hlZXQ+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0VXNlckNTU1N0
eWxlU2hlZXQoRmV0Y2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QpCiB7CiAgICAgVVJMIHVy
bCA9IE1lbW9yeUNhY2hlOjpyZW1vdmVGcmFnbWVudElkZW50aWZpZXJJZk5lZWRlZChyZXF1ZXN0
LnJlc291cmNlUmVxdWVzdCgpLnVybCgpKTsKIApAQCAtMjQ2LDI1ICsyNDYsMjUgQEAgQ2FjaGVk
UmVzb3VyY2VIYW5kbGU8Q2FjaGVkQ1NTU3R5bGVTaGVldD4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6
OnJlcXVlc3RVc2VyQ1NTU3QKICAgICByZXR1cm4gdXNlclNoZWV0OwogfQogCi1DYWNoZWRSZXNv
dXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0U2Ny
aXB0KENhY2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QpCitDYWNoZWRSZXNvdXJjZUhhbmRs
ZTxDYWNoZWRTY3JpcHQ+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0U2NyaXB0KEZldGNo
ZWRSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0KQogewogICAgIHJldHVybiBkb3duY2FzdDxDYWNo
ZWRTY3JpcHQ+KHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6U2NyaXB0LCBXVEZNb3Zl
KHJlcXVlc3QpKS5nZXQoKSk7CiB9CiAKICNpZiBFTkFCTEUoWFNMVCkKLUNhY2hlZFJlc291cmNl
SGFuZGxlPENhY2hlZFhTTFN0eWxlU2hlZXQ+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0
WFNMU3R5bGVTaGVldChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0KQorQ2FjaGVkUmVz
b3VyY2VIYW5kbGU8Q2FjaGVkWFNMU3R5bGVTaGVldD4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJl
cXVlc3RYU0xTdHlsZVNoZWV0KEZldGNoZWRSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0KQogewog
ICAgIHJldHVybiBkb3duY2FzdDxDYWNoZWRYU0xTdHlsZVNoZWV0PihyZXF1ZXN0UmVzb3VyY2Uo
Q2FjaGVkUmVzb3VyY2U6OlhTTFN0eWxlU2hlZXQsIFdURk1vdmUocmVxdWVzdCkpLmdldCgpKTsK
IH0KICNlbmRpZgogCi1DYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTVkdEb2N1bWVudD4gQ2Fj
aGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RTVkdEb2N1bWVudChDYWNoZWRSZXNvdXJjZVJlcXVl
c3QmJiByZXF1ZXN0KQorQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU1ZHRG9jdW1lbnQ+IENh
Y2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0U1ZHRG9jdW1lbnQoRmV0Y2hlZFJlc291cmNlUmVx
dWVzdCYmIHJlcXVlc3QpCiB7CiAgICAgcmV0dXJuIGRvd25jYXN0PENhY2hlZFNWR0RvY3VtZW50
PihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlNWR0RvY3VtZW50UmVzb3VyY2UsIFdU
Rk1vdmUocmVxdWVzdCkpLmdldCgpKTsKIH0KIAogI2lmIEVOQUJMRShMSU5LX1BSRUZFVENIKQot
Q2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IENhY2hlZFJlc291cmNlTG9hZGVy
OjpyZXF1ZXN0TGlua1Jlc291cmNlKENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIENhY2hlZFJl
c291cmNlUmVxdWVzdCYmIHJlcXVlc3QpCitDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNv
dXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RMaW5rUmVzb3VyY2UoQ2FjaGVkUmVz
b3VyY2U6OlR5cGUgdHlwZSwgRmV0Y2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QpCiB7CiAg
ICAgQVNTRVJUKGZyYW1lKCkpOwogICAgIEFTU0VSVCh0eXBlID09IENhY2hlZFJlc291cmNlOjpM
aW5rUHJlZmV0Y2ggfHwgdHlwZSA9PSBDYWNoZWRSZXNvdXJjZTo6TGlua1N1YnJlc291cmNlKTsK
QEAgLTI3MiwxNyArMjcyLDE3IEBAIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNl
PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdExpbmtSZXNvdXJjZShDCiB9CiAjZW5kaWYK
IAotQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmF3UmVzb3VyY2U+IENhY2hlZFJlc291cmNl
TG9hZGVyOjpyZXF1ZXN0TWVkaWEoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCkKK0Nh
Y2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJhd1Jlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRl
cjo6cmVxdWVzdE1lZGlhKEZldGNoZWRSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0KQogewogICAg
IHJldHVybiBkb3duY2FzdDxDYWNoZWRSYXdSZXNvdXJjZT4ocmVxdWVzdFJlc291cmNlKENhY2hl
ZFJlc291cmNlOjpNZWRpYVJlc291cmNlLCBXVEZNb3ZlKHJlcXVlc3QpKS5nZXQoKSk7CiB9CiAK
LUNhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJhd1Jlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxv
YWRlcjo6cmVxdWVzdFJhd1Jlc291cmNlKENhY2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3Qp
CitDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSYXdSZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VM
b2FkZXI6OnJlcXVlc3RSYXdSZXNvdXJjZShGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVz
dCkKIHsKICAgICByZXR1cm4gZG93bmNhc3Q8Q2FjaGVkUmF3UmVzb3VyY2U+KHJlcXVlc3RSZXNv
dXJjZShDYWNoZWRSZXNvdXJjZTo6UmF3UmVzb3VyY2UsIFdURk1vdmUocmVxdWVzdCkpLmdldCgp
KTsKIH0KIAotQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmF3UmVzb3VyY2U+IENhY2hlZFJl
c291cmNlTG9hZGVyOjpyZXF1ZXN0TWFpblJlc291cmNlKENhY2hlZFJlc291cmNlUmVxdWVzdCYm
IHJlcXVlc3QpCitDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSYXdSZXNvdXJjZT4gQ2FjaGVk
UmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RNYWluUmVzb3VyY2UoRmV0Y2hlZFJlc291cmNlUmVxdWVz
dCYmIHJlcXVlc3QpCiB7CiAgICAgcmV0dXJuIGRvd25jYXN0PENhY2hlZFJhd1Jlc291cmNlPihy
ZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6Ok1haW5SZXNvdXJjZSwgV1RGTW92ZShyZXF1
ZXN0KSkuZ2V0KCkpOwogfQpAQCAtNDk4LDcgKzQ5OCw3IEBAIGJvb2wgQ2FjaGVkUmVzb3VyY2VM
b2FkZXI6OmNhblJlcXVlc3RJbkNvbnRlbnREaXNwb3NpdGlvbkF0dGFjaG1lbnRTYW5kYm94KENh
Y2hlCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIENhY2hlZFJlc291cmNlTG9hZGVyOjpz
aG91bGRDb250aW51ZUFmdGVyTm90aWZ5aW5nTG9hZGVkRnJvbU1lbW9yeUNhY2hlKGNvbnN0IENh
Y2hlZFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlKQor
Ym9vbCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6c2hvdWxkQ29udGludWVBZnRlck5vdGlmeWluZ0xv
YWRlZEZyb21NZW1vcnlDYWNoZShjb25zdCBGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
LCBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UpCiB7CiAgICAgaWYgKCFyZXNvdXJjZSB8fCAhZnJh
bWUoKSB8fCByZXNvdXJjZS0+c3RhdHVzKCkgIT0gQ2FjaGVkUmVzb3VyY2U6OkNhY2hlZCkKICAg
ICAgICAgcmV0dXJuIHRydWU7CkBAIC01MTMsNyArNTEzLDcgQEAgYm9vbCBDYWNoZWRSZXNvdXJj
ZUxvYWRlcjo6c2hvdWxkQ29udGludWVBZnRlck5vdGlmeWluZ0xvYWRlZEZyb21NZW1vcnlDYWNo
ZShjb24KICAgICByZXR1cm4gIW5ld1JlcXVlc3QuaXNOdWxsKCk7CiB9CiAKLWJvb2wgQ2FjaGVk
UmVzb3VyY2VMb2FkZXI6OnNob3VsZFVwZGF0ZUNhY2hlZFJlc291cmNlV2l0aEN1cnJlbnRSZXF1
ZXN0KGNvbnN0IENhY2hlZFJlc291cmNlJiByZXNvdXJjZSwgY29uc3QgQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0KQorYm9vbCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6c2hvdWxkVXBkYXRl
Q2FjaGVkUmVzb3VyY2VXaXRoQ3VycmVudFJlcXVlc3QoY29uc3QgQ2FjaGVkUmVzb3VyY2UmIHJl
c291cmNlLCBjb25zdCBGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewogICAgIGlm
IChyZXNvdXJjZS50eXBlKCkgPT0gQ2FjaGVkUmVzb3VyY2U6OlR5cGU6OkZvbnRSZXNvdXJjZSB8
fCByZXNvdXJjZS50eXBlKCkgPT0gQ2FjaGVkUmVzb3VyY2U6OlR5cGU6OlNWR0ZvbnRSZXNvdXJj
ZSkgewogICAgICAgICAvLyBXZWJLaXQgaXMgbm90IHN1cHBvcnRpbmcgQ09SUyBmb3IgZm9udHMg
KGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjgxNyksIG5vIG5lZWQg
dG8gdXBkYXRlIHRoZSByZXNvdXJjZSBiZWZvcmUgcmV1c2luZyBpdC4KQEAgLTU1MSw3ICs1NTEs
NyBAQCBib29sIENhY2hlZFJlc291cmNlTG9hZGVyOjpzaG91bGRVcGRhdGVDYWNoZWRSZXNvdXJj
ZVdpdGhDdXJyZW50UmVxdWVzdChjb25zdCBDYQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotc3Rh
dGljIGlubGluZSBib29sIGNhblVwZGF0ZUZyb21SZXNvdXJjZShjb25zdCBDYWNoZWRSZXNvdXJj
ZSYgcmVzb3VyY2UsIGNvbnN0IENhY2hlZFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK3N0YXRp
YyBpbmxpbmUgYm9vbCBjYW5VcGRhdGVGcm9tUmVzb3VyY2UoY29uc3QgQ2FjaGVkUmVzb3VyY2Um
IHJlc291cmNlLCBjb25zdCBGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewogICAg
IC8vIEZJWE1FOiBGb3IgYmVpbmcgbG9hZGVkIHJlcXVlc3RzLCB3ZSBjdXJyZW50bHkgZG8gbm90
IHVzZSB0aGUgc2FtZSByZXNvdXJjZSwgYXMgdGhpcyBtYXkgaW5kdWNlIGVycm9ycyBpbiB0aGUg
cmVzb3VyY2UgcmVzcG9uc2UgdGFpbnRpbmcuCiAgICAgLy8gV2Ugc2hvdWxkIGZpbmQgYSB3YXkg
dG8gaW1wcm92ZSB0aGlzLgpAQCAtNTczLDcgKzU3Myw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBj
YW5VcGRhdGVGcm9tUmVzb3VyY2UoY29uc3QgQ2FjaGVkUmVzb3VyY2UmIHJlc291cmNlLCBjb25z
dCBDCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLUNhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJl
c291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6dXBkYXRlQ2FjaGVkUmVzb3VyY2VXaXRoQ3Vy
cmVudFJlcXVlc3QoY29uc3QgQ2FjaGVkUmVzb3VyY2UmIHJlc291cmNlLCBDYWNoZWRSZXNvdXJj
ZVJlcXVlc3QmJiByZXF1ZXN0KQorQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+
IENhY2hlZFJlc291cmNlTG9hZGVyOjp1cGRhdGVDYWNoZWRSZXNvdXJjZVdpdGhDdXJyZW50UmVx
dWVzdChjb25zdCBDYWNoZWRSZXNvdXJjZSYgcmVzb3VyY2UsIEZldGNoZWRSZXNvdXJjZVJlcXVl
c3QmJiByZXF1ZXN0KQogewogICAgIGlmICghY2FuVXBkYXRlRnJvbVJlc291cmNlKHJlc291cmNl
LCByZXF1ZXN0KSkgewogICAgICAgICByZXF1ZXN0LnNldENhY2hpbmdQb2xpY3koQ2FjaGluZ1Bv
bGljeTo6RGlzYWxsb3dDYWNoaW5nKTsKQEAgLTYxNiw3ICs2MTYsNyBAQCBzdGF0aWMgaW5saW5l
IFN0cmluZyBhY2NlcHRIZWFkZXJWYWx1ZUZyb21UeXBlKENhY2hlZFJlc291cmNlOjpUeXBlIHR5
cGUpCiAgICAgfQogfQogCi12b2lkIENhY2hlZFJlc291cmNlTG9hZGVyOjpwcmVwYXJlRmV0Y2go
Q2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
KQordm9pZCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cHJlcGFyZUZldGNoKENhY2hlZFJlc291cmNl
OjpUeXBlIHR5cGUsIEZldGNoZWRSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7CiAgICAgLy8g
SW1wbGVtZW50aW5nIHN0ZXAgMSB0byA3IG9mIGh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3Jn
LyNmZXRjaGluZwogCkBAIC02MzAsNyArNjMwLDcgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZUxvYWRl
cjo6cHJlcGFyZUZldGNoKENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIENhY2hlZFJlc291cmMK
ICAgICAvLyBGSVhNRTogRGVjaWRlIHdoZXRoZXIgdG8gc3VwcG9ydCBjbGllbnQgaGludHMKIH0K
IAotQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IENhY2hlZFJlc291cmNlTG9h
ZGVyOjpyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCkKK0NhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291
cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNl
OjpUeXBlIHR5cGUsIEZldGNoZWRSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0KQogewogICAgIGlm
IChEb2N1bWVudCogZG9jdW1lbnQgPSB0aGlzLT5kb2N1bWVudCgpKQogICAgICAgICBkb2N1bWVu
dC0+Y29udGVudFNlY3VyaXR5UG9saWN5KCktPnVwZ3JhZGVJbnNlY3VyZVJlcXVlc3RJZk5lZWRl
ZChyZXF1ZXN0Lm11dGFibGVSZXNvdXJjZVJlcXVlc3QoKSwgQ29udGVudFNlY3VyaXR5UG9saWN5
OjpJbnNlY3VyZVJlcXVlc3RUeXBlOjpMb2FkKTsKQEAgLTc2Myw3ICs3NjMsNyBAQCBDYWNoZWRS
ZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVl
c3RSZXNvdXJjZShDYWNoZQogICAgICAgICBpbmNyZW1lbnRSZXF1ZXN0Q291bnQoKnJlc291cmNl
KTsKICAgICB9CiAKLSAgICBpZiAoKHBvbGljeSAhPSBVc2UgfHwgcmVzb3VyY2UtPnN0aWxsTmVl
ZHNMb2FkKCkpICYmIENhY2hlZFJlc291cmNlUmVxdWVzdDo6Tm9EZWZlciA9PSBkZWZlcikgewor
ICAgIGlmICgocG9saWN5ICE9IFVzZSB8fCByZXNvdXJjZS0+c3RpbGxOZWVkc0xvYWQoKSkgJiYg
RmV0Y2hlZFJlc291cmNlUmVxdWVzdDo6Tm9EZWZlciA9PSBkZWZlcikgewogICAgICAgICByZXNv
dXJjZS0+bG9hZCgqdGhpcyk7CiAKICAgICAgICAgLy8gV2UgZG9uJ3Qgc3VwcG9ydCBpbW1lZGlh
dGUgbG9hZHMsIGJ1dCB3ZSBkbyBzdXBwb3J0IGltbWVkaWF0ZSBmYWlsdXJlLgpAQCAtNzg3LDcg
Kzc4Nyw3IEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmRvY3VtZW50RGlkRmluaXNoTG9h
ZEV2ZW50KCkKICAgICBtX3ZhbGlkYXRlZFVSTHMuY2xlYXIoKTsKIH0KIAotQ2FjaGVkUmVzb3Vy
Y2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXZhbGlkYXRl
UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgQ2FjaGVkUmVzb3VyY2Um
IHJlc291cmNlKQorQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IENhY2hlZFJl
c291cmNlTG9hZGVyOjpyZXZhbGlkYXRlUmVzb3VyY2UoRmV0Y2hlZFJlc291cmNlUmVxdWVzdCYm
IHJlcXVlc3QsIENhY2hlZFJlc291cmNlJiByZXNvdXJjZSkKIHsKICAgICBBU1NFUlQocmVzb3Vy
Y2UuaW5DYWNoZSgpKTsKICAgICBhdXRvJiBtZW1vcnlDYWNoZSA9IE1lbW9yeUNhY2hlOjpzaW5n
bGV0b24oKTsKQEAgLTgxNCw3ICs4MTQsNyBAQCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRS
ZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJldmFsaWRhdGVSZXNvdXJjZShDYQogICAg
IHJldHVybiBuZXdSZXNvdXJjZTsKIH0KIAotQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVz
b3VyY2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpsb2FkUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6
OlR5cGUgdHlwZSwgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCkKK0NhY2hlZFJlc291
cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6bG9hZFJlc291
cmNlKENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIEZldGNoZWRSZXNvdXJjZVJlcXVlc3QmJiBy
ZXF1ZXN0KQogewogICAgIGF1dG8mIG1lbW9yeUNhY2hlID0gTWVtb3J5Q2FjaGU6OnNpbmdsZXRv
bigpOwogICAgIEFTU0VSVCghcmVxdWVzdC5hbGxvd3NDYWNoaW5nKCkgfHwgIW1lbW9yeUNhY2hl
LnJlc291cmNlRm9yUmVxdWVzdChyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLCBzZXNzaW9uSUQo
KSkpOwpAQCAtODYzLDE1ICs4NjMsMTUgQEAgc3RhdGljIHZvaWQgbG9nUmVzb3VyY2VSZXZhbGlk
YXRpb25EZWNpc2lvbihDYWNoZWRSZXNvdXJjZTo6UmV2YWxpZGF0aW9uRGVjaXNpb24KICAgICB9
CiB9CiAKLUNhY2hlZFJlc291cmNlTG9hZGVyOjpSZXZhbGlkYXRpb25Qb2xpY3kgQ2FjaGVkUmVz
b3VyY2VMb2FkZXI6OmRldGVybWluZVJldmFsaWRhdGlvblBvbGljeShDYWNoZWRSZXNvdXJjZTo6
VHlwZSB0eXBlLCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QmIGNhY2hlZFJlc291cmNlUmVxdWVzdCwg
Q2FjaGVkUmVzb3VyY2UqIGV4aXN0aW5nUmVzb3VyY2UpIGNvbnN0CitDYWNoZWRSZXNvdXJjZUxv
YWRlcjo6UmV2YWxpZGF0aW9uUG9saWN5IENhY2hlZFJlc291cmNlTG9hZGVyOjpkZXRlcm1pbmVS
ZXZhbGlkYXRpb25Qb2xpY3koQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgRmV0Y2hlZFJlc291
cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBDYWNoZWRSZXNvdXJjZSogZXhpc3RpbmdSZXNv
dXJjZSkgY29uc3QKIHsKLSAgICBhdXRvJiByZXF1ZXN0ID0gY2FjaGVkUmVzb3VyY2VSZXF1ZXN0
LnJlc291cmNlUmVxdWVzdCgpOworICAgIGF1dG8mIHJlcXVlc3QgPSByZXNvdXJjZVJlcXVlc3Qu
cmVzb3VyY2VSZXF1ZXN0KCk7CiAKICAgICBpZiAoIWV4aXN0aW5nUmVzb3VyY2UpCiAgICAgICAg
IHJldHVybiBMb2FkOwogCiAgICAgLy8gV2UgYWxyZWFkeSBoYXZlIGEgcHJlbG9hZCBnb2luZyBm
b3IgdGhpcyBVUkwuCi0gICAgaWYgKGNhY2hlZFJlc291cmNlUmVxdWVzdC5mb3JQcmVsb2FkKCkg
JiYgZXhpc3RpbmdSZXNvdXJjZS0+aXNQcmVsb2FkZWQoKSkKKyAgICBpZiAocmVzb3VyY2VSZXF1
ZXN0LmZvclByZWxvYWQoKSAmJiBleGlzdGluZ1Jlc291cmNlLT5pc1ByZWxvYWRlZCgpKQogICAg
ICAgICByZXR1cm4gVXNlOwogCiAgICAgLy8gSWYgdGhlIHNhbWUgVVJMIGhhcyBiZWVuIGxvYWRl
ZCBhcyBhIGRpZmZlcmVudCB0eXBlLCB3ZSBuZWVkIHRvIHJlbG9hZC4KQEAgLTg4NSw3ICs4ODUs
NyBAQCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6UmV2YWxpZGF0aW9uUG9saWN5IENhY2hlZFJlc291
cmNlTG9hZGVyOjpkZXRlcm1pbmVSZXZhbGlkYQogICAgICAgICByZXR1cm4gUmVsb2FkOwogCiAg
ICAgYXV0byogdGV4dERlY29kZXIgPSBleGlzdGluZ1Jlc291cmNlLT50ZXh0UmVzb3VyY2VEZWNv
ZGVyKCk7Ci0gICAgaWYgKHRleHREZWNvZGVyICYmICF0ZXh0RGVjb2Rlci0+aGFzRXF1YWxFbmNv
ZGluZ0ZvckNoYXJzZXQoY2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNoYXJzZXQoKSkpCisgICAgaWYg
KHRleHREZWNvZGVyICYmICF0ZXh0RGVjb2Rlci0+aGFzRXF1YWxFbmNvZGluZ0ZvckNoYXJzZXQo
cmVzb3VyY2VSZXF1ZXN0LmNoYXJzZXQoKSkpCiAgICAgICAgIHJldHVybiBSZWxvYWQ7CiAKICAg
ICAvLyBGSVhNRTogV2Ugc2hvdWxkIHVzZSB0aGUgc2FtZSBjYWNoZSBwb2xpY3kgZm9yIGFsbCBy
ZXNvdXJjZSB0eXBlcy4gVGhlIHJhdyByZXNvdXJjZSBwb2xpY3kgaXMgb3Zlcmx5IHN0cmljdApA
QCAtOTAyLDcgKzkwMiw3IEBAIENhY2hlZFJlc291cmNlTG9hZGVyOjpSZXZhbGlkYXRpb25Qb2xp
Y3kgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmRldGVybWluZVJldmFsaWRhCiAKICAgICAvLyBEbyBu
b3QgbG9hZCBmcm9tIGNhY2hlIGlmIGltYWdlcyBhcmUgbm90IGVuYWJsZWQuIFRoZSBsb2FkIGZv
ciB0aGlzIGltYWdlIHdpbGwgYmUgYmxvY2tlZAogICAgIC8vIGluIENhY2hlZEltYWdlOjpsb2Fk
LgotICAgIGlmIChjYWNoZWRSZXNvdXJjZVJlcXVlc3QuZGVmZXIoKSA9PSBDYWNoZWRSZXNvdXJj
ZVJlcXVlc3Q6OkRlZmVycmVkQnlDbGllbnQpCisgICAgaWYgKHJlc291cmNlUmVxdWVzdC5kZWZl
cigpID09IEZldGNoZWRSZXNvdXJjZVJlcXVlc3Q6OkRlZmVycmVkQnlDbGllbnQpCiAgICAgICAg
IHJldHVybiBSZWxvYWQ7CiAKICAgICAvLyBEb24ndCByZWxvYWQgcmVzb3VyY2VzIHdoaWxlIHBh
c3RpbmcuCkBAIC0xMTcyLDcgKzExNzIsNyBAQCB2b2lkIENhY2hlZFJlc291cmNlTG9hZGVyOjpk
ZWNyZW1lbnRSZXF1ZXN0Q291bnQoY29uc3QgQ2FjaGVkUmVzb3VyY2UmIHJlc291cmNlKQogICAg
IEFTU0VSVChtX3JlcXVlc3RDb3VudCA+IC0xKTsKIH0KIAotQ2FjaGVkUmVzb3VyY2VIYW5kbGU8
Q2FjaGVkUmVzb3VyY2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpwcmVsb2FkKENhY2hlZFJlc291
cmNlOjpUeXBlIHR5cGUsIENhY2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFByZWxvYWRU
eXBlIHByZWxvYWRUeXBlKQorQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IENh
Y2hlZFJlc291cmNlTG9hZGVyOjpwcmVsb2FkKENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIEZl
dGNoZWRSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBQcmVsb2FkVHlwZSBwcmVsb2FkVHlwZSkK
IHsKICAgICAvLyBXZSBhbHdheXMgcHJlbG9hZCByZXNvdXJjZXMgb24gaU9TLiBTZWUgPGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTI3Nj4uCiAgICAgLy8gRklYTUU6
IFdlIHNob3VsZCBjb25zaWRlciBhZGRpbmcgYSBzZXR0aW5nIHRvIHRvZ2dsZSBhZ2dyZXNzaXZl
IHByZWxvYWRpbmcgYmVoYXZpb3IgYXMgb3Bwb3NlZApAQCAtMTIxNSw3ICsxMjE1LDcgQEAgdm9p
ZCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Y2hlY2tGb3JQZW5kaW5nUHJlbG9hZHMoKQogICAgIG1f
cGVuZGluZ1ByZWxvYWRzLmNsZWFyKCk7CiB9CiAKLUNhY2hlZFJlc291cmNlSGFuZGxlPENhY2hl
ZFJlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFByZWxvYWQoQ2FjaGVkUmVz
b3VyY2U6OlR5cGUgdHlwZSwgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCkKK0NhY2hl
ZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVx
dWVzdFByZWxvYWQoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgRmV0Y2hlZFJlc291cmNlUmVx
dWVzdCYmIHJlcXVlc3QpCiB7CiAgICAgaWYgKHJlcXVlc3QuY2hhcnNldCgpLmlzRW1wdHkoKSAm
JiAodHlwZSA9PSBDYWNoZWRSZXNvdXJjZTo6U2NyaXB0IHx8IHR5cGUgPT0gQ2FjaGVkUmVzb3Vy
Y2U6OkNTU1N0eWxlU2hlZXQpKQogICAgICAgICByZXF1ZXN0LnNldENoYXJzZXQobV9kb2N1bWVu
dC0+Y2hhcnNldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFJlc291cmNlTG9hZGVyLmgKaW5kZXggOThlYTJiYTBiMGY5YjdlMGM5MjU1MjU1MWNiYTNjMjM3
NzgzMDE3NC4uOGMxNGY1ODVmMDQ3Y2RkMDVlMmQ2ZWI4ZDBkM2Q0NWNlODNhMmZkYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmgK
QEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlICJDYWNoZVBvbGljeS5oIgogI2luY2x1ZGUgIkNh
Y2hlZFJlc291cmNlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VIYW5kbGUuaCIKLSNpbmNs
dWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKKyNpbmNsdWRlICJGZXRjaGVkUmVzb3VyY2VS
ZXF1ZXN0LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkUHJpb3JpdHkuaCIKICNpbmNsdWRlICJS
ZXNvdXJjZVRpbWluZ0luZm9ybWF0aW9uLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKQEAgLTcyLDIz
ICs3MiwyMyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxDYWNoZWRSZXNvdXJjZUxvYWRlcj4g
Y3JlYXRlKERvY3VtZW50TG9hZGVyKiBkb2N1bWVudExvYWRlcikgeyByZXR1cm4gYWRvcHRSZWYo
Km5ldyBDYWNoZWRSZXNvdXJjZUxvYWRlcihkb2N1bWVudExvYWRlcikpOyB9CiAgICAgfkNhY2hl
ZFJlc291cmNlTG9hZGVyKCk7CiAKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRJbWFn
ZT4gcmVxdWVzdEltYWdlKENhY2hlZFJlc291cmNlUmVxdWVzdCYmKTsKLSAgICBDYWNoZWRSZXNv
dXJjZUhhbmRsZTxDYWNoZWRDU1NTdHlsZVNoZWV0PiByZXF1ZXN0Q1NTU3R5bGVTaGVldChDYWNo
ZWRSZXNvdXJjZVJlcXVlc3QmJik7Ci0gICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkQ1NT
U3R5bGVTaGVldD4gcmVxdWVzdFVzZXJDU1NTdHlsZVNoZWV0KENhY2hlZFJlc291cmNlUmVxdWVz
dCYmKTsKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IHJlcXVlc3RTY3Jp
cHQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYpOwotICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENh
Y2hlZEZvbnQ+IHJlcXVlc3RGb250KENhY2hlZFJlc291cmNlUmVxdWVzdCYmLCBib29sIGlzU1ZH
KTsKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSYXdSZXNvdXJjZT4gcmVxdWVzdE1l
ZGlhKENhY2hlZFJlc291cmNlUmVxdWVzdCYmKTsKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxD
YWNoZWRSYXdSZXNvdXJjZT4gcmVxdWVzdFJhd1Jlc291cmNlKENhY2hlZFJlc291cmNlUmVxdWVz
dCYmKTsKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSYXdSZXNvdXJjZT4gcmVxdWVz
dE1haW5SZXNvdXJjZShDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJik7Ci0gICAgQ2FjaGVkUmVzb3Vy
Y2VIYW5kbGU8Q2FjaGVkU1ZHRG9jdW1lbnQ+IHJlcXVlc3RTVkdEb2N1bWVudChDYWNoZWRSZXNv
dXJjZVJlcXVlc3QmJik7CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkSW1hZ2U+IHJl
cXVlc3RJbWFnZShGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0JiYpOworICAgIENhY2hlZFJlc291cmNl
SGFuZGxlPENhY2hlZENTU1N0eWxlU2hlZXQ+IHJlcXVlc3RDU1NTdHlsZVNoZWV0KEZldGNoZWRS
ZXNvdXJjZVJlcXVlc3QmJik7CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkQ1NTU3R5
bGVTaGVldD4gcmVxdWVzdFVzZXJDU1NTdHlsZVNoZWV0KEZldGNoZWRSZXNvdXJjZVJlcXVlc3Qm
Jik7CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiByZXF1ZXN0U2NyaXB0
KEZldGNoZWRSZXNvdXJjZVJlcXVlc3QmJik7CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2Fj
aGVkRm9udD4gcmVxdWVzdEZvbnQoRmV0Y2hlZFJlc291cmNlUmVxdWVzdCYmLCBib29sIGlzU1ZH
KTsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSYXdSZXNvdXJjZT4gcmVxdWVzdE1l
ZGlhKEZldGNoZWRSZXNvdXJjZVJlcXVlc3QmJik7CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8
Q2FjaGVkUmF3UmVzb3VyY2U+IHJlcXVlc3RSYXdSZXNvdXJjZShGZXRjaGVkUmVzb3VyY2VSZXF1
ZXN0JiYpOworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJhd1Jlc291cmNlPiByZXF1
ZXN0TWFpblJlc291cmNlKEZldGNoZWRSZXNvdXJjZVJlcXVlc3QmJik7CisgICAgQ2FjaGVkUmVz
b3VyY2VIYW5kbGU8Q2FjaGVkU1ZHRG9jdW1lbnQ+IHJlcXVlc3RTVkdEb2N1bWVudChGZXRjaGVk
UmVzb3VyY2VSZXF1ZXN0JiYpOwogI2lmIEVOQUJMRShYU0xUKQotICAgIENhY2hlZFJlc291cmNl
SGFuZGxlPENhY2hlZFhTTFN0eWxlU2hlZXQ+IHJlcXVlc3RYU0xTdHlsZVNoZWV0KENhY2hlZFJl
c291cmNlUmVxdWVzdCYmKTsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRYU0xTdHls
ZVNoZWV0PiByZXF1ZXN0WFNMU3R5bGVTaGVldChGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0JiYpOwog
I2VuZGlmCiAjaWYgRU5BQkxFKExJTktfUFJFRkVUQ0gpCi0gICAgQ2FjaGVkUmVzb3VyY2VIYW5k
bGU8Q2FjaGVkUmVzb3VyY2U+IHJlcXVlc3RMaW5rUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5
cGUsIENhY2hlZFJlc291cmNlUmVxdWVzdCYmKTsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxD
YWNoZWRSZXNvdXJjZT4gcmVxdWVzdExpbmtSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6VHlwZSwg
RmV0Y2hlZFJlc291cmNlUmVxdWVzdCYmKTsKICNlbmRpZgogI2lmIEVOQUJMRShWSURFT19UUkFD
SykKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRUZXh0VHJhY2s+IHJlcXVlc3RUZXh0
VHJhY2soQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYpOworICAgIENhY2hlZFJlc291cmNlSGFuZGxl
PENhY2hlZFRleHRUcmFjaz4gcmVxdWVzdFRleHRUcmFjayhGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0
JiYpOwogI2VuZGlmCiAKICAgICAvLyBMb2dzIGFuIGFjY2VzcyBkZW5pZWQgbWVzc2FnZSB0byB0
aGUgY29uc29sZSBmb3IgdGhlIHNwZWNpZmllZCBVUkwuCkBAIC0xMzEsNyArMTMxLDcgQEAgcHVi
bGljOgogICAgIHZvaWQgY2xlYXJQcmVsb2FkcygpOwogICAgIHZvaWQgY2xlYXJQZW5kaW5nUHJl
bG9hZHMoKTsKICAgICBlbnVtIFByZWxvYWRUeXBlIHsgSW1wbGljaXRQcmVsb2FkLCBFeHBsaWNp
dFByZWxvYWQgfTsKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gcHJl
bG9hZChDYWNoZWRSZXNvdXJjZTo6VHlwZSwgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYsIFByZWxv
YWRUeXBlKTsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gcHJlbG9h
ZChDYWNoZWRSZXNvdXJjZTo6VHlwZSwgRmV0Y2hlZFJlc291cmNlUmVxdWVzdCYmLCBQcmVsb2Fk
VHlwZSk7CiAgICAgdm9pZCBjaGVja0ZvclBlbmRpbmdQcmVsb2FkcygpOwogICAgIHZvaWQgcHJp
bnRQcmVsb2FkU3RhdHMoKTsKIApAQCAtMTUwLDE5ICsxNTAsMTkgQEAgcHVibGljOgogcHJpdmF0
ZToKICAgICBleHBsaWNpdCBDYWNoZWRSZXNvdXJjZUxvYWRlcihEb2N1bWVudExvYWRlciopOwog
Ci0gICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IHJlcXVlc3RSZXNvdXJj
ZShDYWNoZWRSZXNvdXJjZTo6VHlwZSwgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYpOwotICAgIHZv
aWQgcHJlcGFyZUZldGNoKENhY2hlZFJlc291cmNlOjpUeXBlLCBDYWNoZWRSZXNvdXJjZVJlcXVl
c3QmKTsKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gcmV2YWxpZGF0
ZVJlc291cmNlKENhY2hlZFJlc291cmNlUmVxdWVzdCYmLCBDYWNoZWRSZXNvdXJjZSYpOwotICAg
IENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBsb2FkUmVzb3VyY2UoQ2FjaGVk
UmVzb3VyY2U6OlR5cGUsIENhY2hlZFJlc291cmNlUmVxdWVzdCYmKTsKLSAgICBDYWNoZWRSZXNv
dXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gcmVxdWVzdFByZWxvYWQoQ2FjaGVkUmVzb3VyY2U6
OlR5cGUsIENhY2hlZFJlc291cmNlUmVxdWVzdCYmKTsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRs
ZTxDYWNoZWRSZXNvdXJjZT4gcmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpUeXBlLCBG
ZXRjaGVkUmVzb3VyY2VSZXF1ZXN0JiYpOworICAgIHZvaWQgcHJlcGFyZUZldGNoKENhY2hlZFJl
c291cmNlOjpUeXBlLCBGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgQ2FjaGVkUmVzb3Vy
Y2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IHJldmFsaWRhdGVSZXNvdXJjZShGZXRjaGVkUmVzb3Vy
Y2VSZXF1ZXN0JiYsIENhY2hlZFJlc291cmNlJik7CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8
Q2FjaGVkUmVzb3VyY2U+IGxvYWRSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6VHlwZSwgRmV0Y2hl
ZFJlc291cmNlUmVxdWVzdCYmKTsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNv
dXJjZT4gcmVxdWVzdFByZWxvYWQoQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIEZldGNoZWRSZXNvdXJj
ZVJlcXVlc3QmJik7CiAKICAgICBlbnVtIFJldmFsaWRhdGlvblBvbGljeSB7IFVzZSwgUmV2YWxp
ZGF0ZSwgUmVsb2FkLCBMb2FkIH07Ci0gICAgUmV2YWxpZGF0aW9uUG9saWN5IGRldGVybWluZVJl
dmFsaWRhdGlvblBvbGljeShDYWNoZWRSZXNvdXJjZTo6VHlwZSwgQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0JiwgQ2FjaGVkUmVzb3VyY2UqIGV4aXN0aW5nUmVzb3VyY2UpIGNvbnN0OworICAgIFJldmFs
aWRhdGlvblBvbGljeSBkZXRlcm1pbmVSZXZhbGlkYXRpb25Qb2xpY3koQ2FjaGVkUmVzb3VyY2U6
OlR5cGUsIEZldGNoZWRSZXNvdXJjZVJlcXVlc3QmLCBDYWNoZWRSZXNvdXJjZSogZXhpc3RpbmdS
ZXNvdXJjZSkgY29uc3Q7CiAKLSAgICBib29sIHNob3VsZFVwZGF0ZUNhY2hlZFJlc291cmNlV2l0
aEN1cnJlbnRSZXF1ZXN0KGNvbnN0IENhY2hlZFJlc291cmNlJiwgY29uc3QgQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0Jik7Ci0gICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IHVw
ZGF0ZUNhY2hlZFJlc291cmNlV2l0aEN1cnJlbnRSZXF1ZXN0KGNvbnN0IENhY2hlZFJlc291cmNl
JiwgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYpOworICAgIGJvb2wgc2hvdWxkVXBkYXRlQ2FjaGVk
UmVzb3VyY2VXaXRoQ3VycmVudFJlcXVlc3QoY29uc3QgQ2FjaGVkUmVzb3VyY2UmLCBjb25zdCBG
ZXRjaGVkUmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVk
UmVzb3VyY2U+IHVwZGF0ZUNhY2hlZFJlc291cmNlV2l0aEN1cnJlbnRSZXF1ZXN0KGNvbnN0IENh
Y2hlZFJlc291cmNlJiwgRmV0Y2hlZFJlc291cmNlUmVxdWVzdCYmKTsKIAotICAgIGJvb2wgc2hv
dWxkQ29udGludWVBZnRlck5vdGlmeWluZ0xvYWRlZEZyb21NZW1vcnlDYWNoZShjb25zdCBDYWNo
ZWRSZXNvdXJjZVJlcXVlc3QmLCBDYWNoZWRSZXNvdXJjZSopOworICAgIGJvb2wgc2hvdWxkQ29u
dGludWVBZnRlck5vdGlmeWluZ0xvYWRlZEZyb21NZW1vcnlDYWNoZShjb25zdCBGZXRjaGVkUmVz
b3VyY2VSZXF1ZXN0JiwgQ2FjaGVkUmVzb3VyY2UqKTsKICAgICBib29sIGNoZWNrSW5zZWN1cmVD
b250ZW50KENhY2hlZFJlc291cmNlOjpUeXBlLCBjb25zdCBVUkwmKSBjb25zdDsKICAgICBib29s
IGFsbG93ZWRCeUNvbnRlbnRTZWN1cml0eVBvbGljeShDYWNoZWRSZXNvdXJjZTo6VHlwZSwgY29u
c3QgVVJMJiwgY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJiwgYm9vbCk7CiAKQEAgLTE4Myw3
ICsxODMsNyBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxMaXN0SGFzaFNldDxDYWNo
ZWRSZXNvdXJjZSo+PiBtX3ByZWxvYWRzOwogICAgIHN0cnVjdCBQZW5kaW5nUHJlbG9hZCB7CiAg
ICAgICAgIENhY2hlZFJlc291cmNlOjpUeXBlIG1fdHlwZTsKLSAgICAgICAgQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0IG1fcmVxdWVzdDsKKyAgICAgICAgRmV0Y2hlZFJlc291cmNlUmVxdWVzdCBtX3Jl
cXVlc3Q7CiAgICAgfTsKICAgICBEZXF1ZTxQZW5kaW5nUHJlbG9hZD4gbV9wZW5kaW5nUHJlbG9h
ZHM7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZVJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291
cmNlUmVxdWVzdC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFjM2VlNmYyN2I1
OTljOWY4YzNjMDhiN2RlZTAwY2I0NzQzZGQxZjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJl
c291cmNlUmVxdWVzdC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw5NSArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgR09PR0xFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZp
Zy5oIgotI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgotCi0jaW5jbHVkZSAiQ2Fj
aGVkUmVzb3VyY2VMb2FkZXIuaCIKLSNpbmNsdWRlICJDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wu
aCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgotI2luY2x1ZGUgIkVsZW1lbnQuaCIKLSNpbmNsdWRl
IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1DYWNoZWRS
ZXNvdXJjZVJlcXVlc3Q6OkNhY2hlZFJlc291cmNlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVl
c3QmIHJlc291cmNlUmVxdWVzdCwgY29uc3QgU3RyaW5nJiBjaGFyc2V0LCBPcHRpb25hbDxSZXNv
dXJjZUxvYWRQcmlvcml0eT4gcHJpb3JpdHkpCi0gICAgOiBtX3Jlc291cmNlUmVxdWVzdChyZXNv
dXJjZVJlcXVlc3QpCi0gICAgLCBtX2NoYXJzZXQoY2hhcnNldCkKLSAgICAsIG1fb3B0aW9ucyhD
YWNoZWRSZXNvdXJjZUxvYWRlcjo6ZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpKQotICAg
ICwgbV9wcmlvcml0eShwcmlvcml0eSkKLSAgICAsIG1fZm9yUHJlbG9hZChmYWxzZSkKLSAgICAs
IG1fZGVmZXIoTm9EZWZlcikKLXsKLX0KLQotQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpDYWNoZWRS
ZXNvdXJjZVJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYgcmVzb3VyY2VSZXF1ZXN0LCBjb25zdCBS
ZXNvdXJjZUxvYWRlck9wdGlvbnMmIG9wdGlvbnMsIE9wdGlvbmFsPFJlc291cmNlTG9hZFByaW9y
aXR5PiBwcmlvcml0eSkKLSAgICA6IG1fcmVzb3VyY2VSZXF1ZXN0KFdURk1vdmUocmVzb3VyY2VS
ZXF1ZXN0KSkKLSAgICAsIG1fb3B0aW9ucyhvcHRpb25zKQotICAgICwgbV9wcmlvcml0eShwcmlv
cml0eSkKLSAgICAsIG1fZm9yUHJlbG9hZChmYWxzZSkKLSAgICAsIG1fZGVmZXIoTm9EZWZlcikK
LXsKLX0KLQotdm9pZCBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OnNldEluaXRpYXRvcihQYXNzUmVm
UHRyPEVsZW1lbnQ+IGVsZW1lbnQpCi17Ci0gICAgQVNTRVJUKCFtX2luaXRpYXRvckVsZW1lbnQg
JiYgbV9pbml0aWF0b3JOYW1lLmlzRW1wdHkoKSk7Ci0gICAgbV9pbml0aWF0b3JFbGVtZW50ID0g
ZWxlbWVudDsKLX0KLQotdm9pZCBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OnNldEluaXRpYXRvcihj
b25zdCBBdG9taWNTdHJpbmcmIG5hbWUpCi17Ci0gICAgQVNTRVJUKCFtX2luaXRpYXRvckVsZW1l
bnQgJiYgbV9pbml0aWF0b3JOYW1lLmlzRW1wdHkoKSk7Ci0gICAgbV9pbml0aWF0b3JOYW1lID0g
bmFtZTsKLX0KLQotY29uc3QgQXRvbWljU3RyaW5nJiBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6Omlu
aXRpYXRvck5hbWUoKSBjb25zdAotewotICAgIGlmIChtX2luaXRpYXRvckVsZW1lbnQpCi0gICAg
ICAgIHJldHVybiBtX2luaXRpYXRvckVsZW1lbnQtPmxvY2FsTmFtZSgpOwotICAgIGlmICghbV9p
bml0aWF0b3JOYW1lLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIG1faW5pdGlhdG9yTmFtZTsK
LQotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBdG9taWNTdHJpbmc+IGRlZmF1bHROYW1lKCJy
ZXNvdXJjZSIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpOwotICAgIHJldHVy
biBkZWZhdWx0TmFtZTsKLX0KLQotdm9pZCBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OnNldEFzUG90
ZW50aWFsbHlDcm9zc09yaWdpbihjb25zdCBTdHJpbmcmIG1vZGUsIERvY3VtZW50JiBkb2N1bWVu
dCkKLXsKLSAgICBBU1NFUlQobV9vcHRpb25zLm1vZGUgPT0gRmV0Y2hPcHRpb25zOjpNb2RlOjpO
b0NvcnMpOwotICAgIEFTU0VSVChkb2N1bWVudC5zZWN1cml0eU9yaWdpbigpKTsKLQotICAgIG1f
b3JpZ2luID0gZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4oKTsKLQotICAgIGlmIChtb2RlLmlzTnVs
bCgpKQotICAgICAgICByZXR1cm47Ci0gICAgbV9vcHRpb25zLm1vZGUgPSBGZXRjaE9wdGlvbnM6
Ok1vZGU6OkNvcnM7Ci0gICAgbV9vcHRpb25zLmNyZWRlbnRpYWxzID0gZXF1YWxMZXR0ZXJzSWdu
b3JpbmdBU0NJSUNhc2UobW9kZSwgInVzZS1jcmVkZW50aWFscyIpID8gRmV0Y2hPcHRpb25zOjpD
cmVkZW50aWFsczo6SW5jbHVkZSA6IEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6OlNhbWVPcmln
aW47Ci0gICAgbV9vcHRpb25zLmFsbG93Q3JlZGVudGlhbHMgPSBlcXVhbExldHRlcnNJZ25vcmlu
Z0FTQ0lJQ2FzZShtb2RlLCAidXNlLWNyZWRlbnRpYWxzIikgPyBBbGxvd1N0b3JlZENyZWRlbnRp
YWxzIDogRG9Ob3RBbGxvd1N0b3JlZENyZWRlbnRpYWxzOwotCi0gICAgdXBkYXRlUmVxdWVzdEZv
ckFjY2Vzc0NvbnRyb2wobV9yZXNvdXJjZVJlcXVlc3QsICpkb2N1bWVudC5zZWN1cml0eU9yaWdp
bigpLCBtX29wdGlvbnMuYWxsb3dDcmVkZW50aWFscyk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZVJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZVJlcXVlc3QuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDI3YjVlMzkxNWQ5NjI4
M2JhNTg1YWVhNTdmN2U3MDMxMjgzYTVjMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0LmgKKysrIC9kZXYvbnVsbApAQCAtMSw4NCArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDEyIEdvb2dsZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgR09PR0xFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
LSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBDYWNoZWRSZXNvdXJj
ZVJlcXVlc3RfaAotI2RlZmluZSBDYWNoZWRSZXNvdXJjZVJlcXVlc3RfaAotCi0jaW5jbHVkZSAi
RG9jdW1lbnRMb2FkZXIuaCIKLSNpbmNsdWRlICJFbGVtZW50LmgiCi0jaW5jbHVkZSAiUmVzb3Vy
Y2VMb2FkUHJpb3JpdHkuaCIKLSNpbmNsdWRlICJSZXNvdXJjZUxvYWRlck9wdGlvbnMuaCIKLSNp
bmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKLSNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgot
I2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcu
aD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotY2xhc3MgRG9jdW1lbnQ7Ci0KLWNsYXNzIENhY2hl
ZFJlc291cmNlUmVxdWVzdCB7Ci1wdWJsaWM6Ci0gICAgZW51bSBEZWZlck9wdGlvbiB7IE5vRGVm
ZXIsIERlZmVycmVkQnlDbGllbnQgfTsKLQotICAgIGV4cGxpY2l0IENhY2hlZFJlc291cmNlUmVx
dWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIGNoYXJzZXQgPSBTdHJp
bmcoKSwgT3B0aW9uYWw8UmVzb3VyY2VMb2FkUHJpb3JpdHk+ID0gTnVsbG9wdCk7Ci0gICAgQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBSZXNvdXJjZUxvYWRl
ck9wdGlvbnMmLCBPcHRpb25hbDxSZXNvdXJjZUxvYWRQcmlvcml0eT4gPSBOdWxsb3B0KTsKLQot
ICAgIFJlc291cmNlUmVxdWVzdCYgbXV0YWJsZVJlc291cmNlUmVxdWVzdCgpIHsgcmV0dXJuIG1f
cmVzb3VyY2VSZXF1ZXN0OyB9Ci0gICAgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJl
cXVlc3QoKSBjb25zdCB7IHJldHVybiBtX3Jlc291cmNlUmVxdWVzdDsgfQotICAgIGNvbnN0IFN0
cmluZyYgY2hhcnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fY2hhcnNldDsgfQotICAgIHZvaWQgc2V0
Q2hhcnNldChjb25zdCBTdHJpbmcmIGNoYXJzZXQpIHsgbV9jaGFyc2V0ID0gY2hhcnNldDsgfQot
ICAgIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYgb3B0aW9ucygpIGNvbnN0IHsgcmV0dXJu
IG1fb3B0aW9uczsgfQotICAgIHZvaWQgc2V0T3B0aW9ucyhjb25zdCBSZXNvdXJjZUxvYWRlck9w
dGlvbnMmIG9wdGlvbnMpIHsgbV9vcHRpb25zID0gb3B0aW9uczsgfQotICAgIGNvbnN0IE9wdGlv
bmFsPFJlc291cmNlTG9hZFByaW9yaXR5PiYgcHJpb3JpdHkoKSBjb25zdCB7IHJldHVybiBtX3By
aW9yaXR5OyB9Ci0gICAgYm9vbCBmb3JQcmVsb2FkKCkgY29uc3QgeyByZXR1cm4gbV9mb3JQcmVs
b2FkOyB9Ci0gICAgdm9pZCBzZXRGb3JQcmVsb2FkKGJvb2wgZm9yUHJlbG9hZCkgeyBtX2ZvclBy
ZWxvYWQgPSBmb3JQcmVsb2FkOyB9Ci0gICAgRGVmZXJPcHRpb24gZGVmZXIoKSBjb25zdCB7IHJl
dHVybiBtX2RlZmVyOyB9Ci0gICAgdm9pZCBzZXREZWZlcihEZWZlck9wdGlvbiBkZWZlcikgeyBt
X2RlZmVyID0gZGVmZXI7IH0KLSAgICB2b2lkIHNldEluaXRpYXRvcihQYXNzUmVmUHRyPEVsZW1l
bnQ+KTsKLSAgICB2b2lkIHNldEluaXRpYXRvcihjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUpOwot
ICAgIGNvbnN0IEF0b21pY1N0cmluZyYgaW5pdGlhdG9yTmFtZSgpIGNvbnN0OwotICAgIGJvb2wg
YWxsb3dzQ2FjaGluZygpIGNvbnN0IHsgcmV0dXJuIG1fb3B0aW9ucy5jYWNoaW5nUG9saWN5ID09
IENhY2hpbmdQb2xpY3k6OkFsbG93Q2FjaGluZzsgfQotICAgIHZvaWQgc2V0Q2FjaGluZ1BvbGlj
eShDYWNoaW5nUG9saWN5IHBvbGljeSkgeyBtX29wdGlvbnMuY2FjaGluZ1BvbGljeSA9IHBvbGlj
eTsgfQotCi0gICAgdm9pZCBzZXRBc1BvdGVudGlhbGx5Q3Jvc3NPcmlnaW4oY29uc3QgU3RyaW5n
JiwgRG9jdW1lbnQmKTsKLSAgICB2b2lkIHNldE9yaWdpbihSZWZQdHI8U2VjdXJpdHlPcmlnaW4+
JiYgb3JpZ2luKSB7IEFTU0VSVCghbV9vcmlnaW4pOyBtX29yaWdpbiA9IFdURk1vdmUob3JpZ2lu
KTsgfQotICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gcmVsZWFzZU9yaWdpbigpIHsgcmV0dXJu
IFdURk1vdmUobV9vcmlnaW4pOyB9Ci0gICAgU2VjdXJpdHlPcmlnaW4qIG9yaWdpbigpIGNvbnN0
IHsgcmV0dXJuIG1fb3JpZ2luLmdldCgpOyB9Ci0KLXByaXZhdGU6Ci0gICAgUmVzb3VyY2VSZXF1
ZXN0IG1fcmVzb3VyY2VSZXF1ZXN0OwotICAgIFN0cmluZyBtX2NoYXJzZXQ7Ci0gICAgUmVzb3Vy
Y2VMb2FkZXJPcHRpb25zIG1fb3B0aW9uczsKLSAgICBPcHRpb25hbDxSZXNvdXJjZUxvYWRQcmlv
cml0eT4gbV9wcmlvcml0eTsKLSAgICBib29sIG1fZm9yUHJlbG9hZDsKLSAgICBEZWZlck9wdGlv
biBtX2RlZmVyOwotICAgIFJlZlB0cjxFbGVtZW50PiBtX2luaXRpYXRvckVsZW1lbnQ7Ci0gICAg
QXRvbWljU3RyaW5nIG1faW5pdGlhdG9yTmFtZTsKLSAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+
IG1fb3JpZ2luOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnQuY3BwCmluZGV4
IDA4YjQwMTY5ZDMzYjRjMjQxZWIxZmFhNDMzYjFjYjc4MmE4Yjk5NTguLjE4ZjkzNWNiNTE2Nzgw
Mzc3M2FiN2U1ODI3YTkyMjI0OGFjZDY5YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50LmNwcApAQCAtMjcsNyArMjcsNyBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLUNhY2hlZFNWR0RvY3VtZW50OjpDYWNoZWRTVkdEb2N1bWVudChD
YWNoZWRSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBTZXNzaW9uSUQgc2Vzc2lvbklEKQorQ2Fj
aGVkU1ZHRG9jdW1lbnQ6OkNhY2hlZFNWR0RvY3VtZW50KEZldGNoZWRSZXNvdXJjZVJlcXVlc3Qm
JiByZXF1ZXN0LCBTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAgIDogQ2FjaGVkUmVzb3VyY2UoV1RG
TW92ZShyZXF1ZXN0KSwgU1ZHRG9jdW1lbnRSZXNvdXJjZSwgc2Vzc2lvbklEKQogICAgICwgbV9k
ZWNvZGVyKFRleHRSZXNvdXJjZURlY29kZXI6OmNyZWF0ZSgiYXBwbGljYXRpb24veG1sIikpCiB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVudC5oCmlu
ZGV4IDA2OTYzZjgzMmU0YTM1ZGYxODcwNjIwNjcxMjg2NDhmMmExYjAwYzkuLjZmYTRiOWM5NzEz
Y2Y0ODUyY2RhMTRmZmQxMWQ1NmQ0ZjNmYzI4ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVudC5oCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgQ2FjaGVkU1ZHRG9jdW1lbnQgZmluYWwgOiBwdWJsaWMgQ2Fj
aGVkUmVzb3VyY2UgewogcHVibGljOgotICAgIGV4cGxpY2l0IENhY2hlZFNWR0RvY3VtZW50KENh
Y2hlZFJlc291cmNlUmVxdWVzdCYmLCBTZXNzaW9uSUQpOworICAgIGV4cGxpY2l0IENhY2hlZFNW
R0RvY3VtZW50KEZldGNoZWRSZXNvdXJjZVJlcXVlc3QmJiwgU2Vzc2lvbklEKTsKICAgICB2aXJ0
dWFsIH5DYWNoZWRTVkdEb2N1bWVudCgpOwogCiAgICAgU1ZHRG9jdW1lbnQqIGRvY3VtZW50KCkg
Y29uc3QgeyByZXR1cm4gbV9kb2N1bWVudC5nZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50UmVmZXJlbmNlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVudFJlZmVyZW5jZS5jcHAKaW5k
ZXggMTBjZjNhM2ZhYThkYzNjODI4YzU5OTk2MTAxM2ZjOTM3NTBjYjAyMi4uYjllNTk4ZmIwMmMy
MDQ4OWI3NWQ2ZDQ1YWRiNjAxYTIzOTk2Y2VhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50UmVmZXJlbmNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnRSZWZlcmVuY2UuY3BwCkBAIC0y
OCw5ICsyOCw5IEBACiAKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1
ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCi0jaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oIgogI2lu
Y2x1ZGUgIkNhY2hlZFNWR0RvY3VtZW50LmgiCisjaW5jbHVkZSAiRmV0Y2hlZFJlc291cmNlUmVx
dWVzdC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTU0LDcgKzU0LDcgQEAgdm9pZCBD
YWNoZWRTVkdEb2N1bWVudFJlZmVyZW5jZTo6bG9hZChDYWNoZWRSZXNvdXJjZUxvYWRlciYgbG9h
ZGVyLCBjb25zdCBSZXNvdXIKIAogICAgIGF1dG8gZmV0Y2hPcHRpb25zID0gb3B0aW9uczsKICAg
ICBmZXRjaE9wdGlvbnMubW9kZSA9IEZldGNoT3B0aW9uczo6TW9kZTo6U2FtZU9yaWdpbjsKLSAg
ICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QobG9hZGVyLmRv
Y3VtZW50KCktPmNvbXBsZXRlVVJMKG1fdXJsKSksIGZldGNoT3B0aW9ucyk7CisgICAgRmV0Y2hl
ZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChsb2FkZXIuZG9jdW1lbnQo
KS0+Y29tcGxldGVVUkwobV91cmwpKSwgZmV0Y2hPcHRpb25zKTsKICAgICByZXF1ZXN0LnNldElu
aXRpYXRvcihjYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzKCkuY3NzKTsKICAgICBtX2Rv
Y3VtZW50ID0gbG9hZGVyLnJlcXVlc3RTVkdEb2N1bWVudChXVEZNb3ZlKHJlcXVlc3QpKTsKICAg
ICBpZiAobV9kb2N1bWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRTVkdGb250LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRT
VkdGb250LmNwcAppbmRleCBjYzcyNzg1MWE4OWI3ZDIxYzJjYmQwYWEwNTcxNzdiZjEyZGQ3OWJk
Li5hMzM1YTk3MGRlNDhhODg5OTliZjdjMTQ4NGJiNDljYWNhZjc4YjM0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRm9udC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0ZvbnQuY3BwCkBAIC00Miw3ICs0Miw3IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQ2FjaGVkU1ZHRm9udDo6Q2FjaGVkU1ZHRm9udChD
YWNoZWRSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBTZXNzaW9uSUQgc2Vzc2lvbklEKQorQ2Fj
aGVkU1ZHRm9udDo6Q2FjaGVkU1ZHRm9udChGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVz
dCwgU2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICA6IENhY2hlZEZvbnQoV1RGTW92ZShyZXF1ZXN0
KSwgc2Vzc2lvbklELCBTVkdGb250UmVzb3VyY2UpCiAgICAgLCBtX2V4dGVybmFsU1ZHRm9udEVs
ZW1lbnQobnVsbHB0cikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRTVkdGb250LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZH
Rm9udC5oCmluZGV4IDQ0MjRhMGZlNmVkZTgyMzFiMzE0NTAyYTg3MjE0OTg4NDNmMzEyYTIuLjYx
MzBhMDU4ODEwZmI5NTNhNmMyOGVmYTNlMzQ2ZDNlMGUxZWMwZjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdGb250LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0ZvbnQuaApAQCAtMzYsNyArMzYsNyBAQCBjbGFzcyBT
VkdGb250RmFjZUVsZW1lbnQ7CiAKIGNsYXNzIENhY2hlZFNWR0ZvbnQgZmluYWwgOiBwdWJsaWMg
Q2FjaGVkRm9udCB7CiBwdWJsaWM6Ci0gICAgQ2FjaGVkU1ZHRm9udChDYWNoZWRSZXNvdXJjZVJl
cXVlc3QmJiwgU2Vzc2lvbklEKTsKKyAgICBDYWNoZWRTVkdGb250KEZldGNoZWRSZXNvdXJjZVJl
cXVlc3QmJiwgU2Vzc2lvbklEKTsKIAogICAgIGJvb2wgZW5zdXJlQ3VzdG9tRm9udERhdGEoY29u
c3QgQXRvbWljU3RyaW5nJiByZW1vdGVVUkkpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuY3BwCmluZGV4IDQwOGVkYTU1Mzk0YWYyODgwNDUy
ZTE2ZDI0MTlmZGQyZDUwOTg4ZjIuLjExMjE5YzFhZWY3YzFhMWU4OGQzMDkzNTYyMWZmYjE0YzE4
ODExMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTY3Jp
cHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuY3Bw
CkBAIC0yOSw3ICsyOSw3IEBACiAKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUNsaWVudC5oIgog
I2luY2x1ZGUgIkNhY2hlZFJlc291cmNlQ2xpZW50V2Fsa2VyLmgiCi0jaW5jbHVkZSAiQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0LmgiCisjaW5jbHVkZSAiRmV0Y2hlZFJlc291cmNlUmVxdWVzdC5oIgog
I2luY2x1ZGUgIkhUVFBIZWFkZXJOYW1lcy5oIgogI2luY2x1ZGUgIkhUVFBQYXJzZXJzLmgiCiAj
aW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgpAQCAtNDAsNyArNDAsNyBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLUNhY2hlZFNjcmlwdDo6Q2FjaGVkU2NyaXB0KENhY2hlZFJlc291cmNl
UmVxdWVzdCYmIHJlcXVlc3QsIFNlc3Npb25JRCBzZXNzaW9uSUQpCitDYWNoZWRTY3JpcHQ6OkNh
Y2hlZFNjcmlwdChGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgU2Vzc2lvbklEIHNl
c3Npb25JRCkKICAgICA6IENhY2hlZFJlc291cmNlKFdURk1vdmUocmVxdWVzdCksIFNjcmlwdCwg
c2Vzc2lvbklEKQogICAgICwgbV9kZWNvZGVyKFRleHRSZXNvdXJjZURlY29kZXI6OmNyZWF0ZShB
U0NJSUxpdGVyYWwoImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiKSwgcmVxdWVzdC5jaGFyc2V0KCkp
KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlw
dC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5oCmluZGV4IGJh
YmY0ODYwZWI4ZDlmNDg4MGJmODUxYTJmZmI1MzZjZWJhYzJjMzQuLmZlN2I3NjViOGUzN2I0YWVh
ZjhmYmJiYjAxNzVkY2Y5ZGNmNjQxY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRTY3JpcHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkU2NyaXB0LmgKQEAgLTM0LDcgKzM0LDcgQEAgY2xhc3MgVGV4dFJlc291cmNlRGVjb2Rl
cjsKIAogY2xhc3MgQ2FjaGVkU2NyaXB0IGZpbmFsIDogcHVibGljIENhY2hlZFJlc291cmNlIHsK
IHB1YmxpYzoKLSAgICBDYWNoZWRTY3JpcHQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYsIFNlc3Np
b25JRCk7CisgICAgQ2FjaGVkU2NyaXB0KEZldGNoZWRSZXNvdXJjZVJlcXVlc3QmJiwgU2Vzc2lv
bklEKTsKICAgICB2aXJ0dWFsIH5DYWNoZWRTY3JpcHQoKTsKIAogICAgIFN0cmluZ1ZpZXcgc2Ny
aXB0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkVGV4
dFRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRUZXh0VHJhY2su
Y3BwCmluZGV4IDlhMGU0YWVmZDU2MjdkODA1MTBlY2E2MDg5OWQ3YzllOGIwNmY3NDUuLjNmY2U4
MmEwMWY5ZmQwZGU4NmMwNjBjNjM0NDUyM2M5Mjk5OTExZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRUZXh0VHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRUZXh0VHJhY2suY3BwCkBAIC0zNyw3ICszNyw3IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQ2FjaGVkVGV4dFRyYWNrOjpDYWNoZWRUZXh0VHJhY2so
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgU2Vzc2lvbklEIHNlc3Npb25JRCkKK0Nh
Y2hlZFRleHRUcmFjazo6Q2FjaGVkVGV4dFRyYWNrKEZldGNoZWRSZXNvdXJjZVJlcXVlc3QmJiBy
ZXF1ZXN0LCBTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAgIDogQ2FjaGVkUmVzb3VyY2UoV1RGTW92
ZShyZXF1ZXN0KSwgVGV4dFRyYWNrUmVzb3VyY2UsIHNlc3Npb25JRCkKIHsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRUZXh0VHJhY2suaCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRUZXh0VHJhY2suaAppbmRleCBmZjUxYTBjYmEw
YmE3MDFjMTU1ZWM3MjNlMTQ4YTY5ZTc3ZGUwN2U3Li45ZGU1ZTc3Yzc5MWNiYTI3NDY1Y2U2OTcw
MzRkNDM2NGExN2RiNjQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkVGV4dFRyYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFRleHRUcmFjay5oCkBAIC0zNSw3ICszNSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgQ2FjaGVkVGV4dFRyYWNrIGZpbmFsIDogcHVibGljIENhY2hlZFJlc291cmNlIHsKIHB1Ymxp
YzoKLSAgICBDYWNoZWRUZXh0VHJhY2soQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYsIFNlc3Npb25J
RCk7CisgICAgQ2FjaGVkVGV4dFRyYWNrKEZldGNoZWRSZXNvdXJjZVJlcXVlc3QmJiwgU2Vzc2lv
bklEKTsKIAogcHJpdmF0ZToKICAgICBib29sIG1heVRyeVJlcGxhY2VFbmNvZGVkRGF0YSgpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRYU0xTdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRYU0xTdHlsZVNoZWV0LmNwcAppbmRleCAyYzMyMGZlZjE4NDkwM2Mx
Nzc2OGI2YjAwYmQzZTNiMGRjNWUyZjg2Li5jODY4MzY2YWU3MzdhN2FiN2U0YjhhMzI5NjFiM2Fm
OWQ2YWM0OTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
WFNMU3R5bGVTaGVldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFhTTFN0eWxlU2hlZXQuY3BwCkBAIC0zNiw3ICszNiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogI2lmIEVOQUJMRShYU0xUKQogCi1DYWNoZWRYU0xTdHlsZVNoZWV0OjpDYWNoZWRYU0xTdHls
ZVNoZWV0KENhY2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFNlc3Npb25JRCBzZXNzaW9u
SUQpCitDYWNoZWRYU0xTdHlsZVNoZWV0OjpDYWNoZWRYU0xTdHlsZVNoZWV0KEZldGNoZWRSZXNv
dXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAgIDogQ2FjaGVk
UmVzb3VyY2UoV1RGTW92ZShyZXF1ZXN0KSwgWFNMU3R5bGVTaGVldCwgc2Vzc2lvbklEKQogICAg
ICwgbV9kZWNvZGVyKFRleHRSZXNvdXJjZURlY29kZXI6OmNyZWF0ZSgidGV4dC94c2wiKSkKIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRYU0xTdHlsZVNo
ZWV0LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkWFNMU3R5bGVTaGVldC5o
CmluZGV4IDViNDc5M2U1MmI0YWEyNzM0ZjIxNmM2YzkwMDkwMTkxMTkxYzhkMWEuLjhlOGRiZjM2
ODBhMmJlMDIyZjFkZjYzMDNmMjJmNTY3NGZmZGU3ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRYU0xTdHlsZVNoZWV0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFhTTFN0eWxlU2hlZXQuaApAQCAtMzYsNyArMzYsNyBAQCBj
bGFzcyBUZXh0UmVzb3VyY2VEZWNvZGVyOwogCiBjbGFzcyBDYWNoZWRYU0xTdHlsZVNoZWV0IGZp
bmFsIDogcHVibGljIENhY2hlZFJlc291cmNlIHsKIHB1YmxpYzoKLSAgICBDYWNoZWRYU0xTdHls
ZVNoZWV0KENhY2hlZFJlc291cmNlUmVxdWVzdCYmLCBTZXNzaW9uSUQpOworICAgIENhY2hlZFhT
TFN0eWxlU2hlZXQoRmV0Y2hlZFJlc291cmNlUmVxdWVzdCYmLCBTZXNzaW9uSUQpOwogICAgIHZp
cnR1YWwgfkNhY2hlZFhTTFN0eWxlU2hlZXQoKTsKIAogICAgIGNvbnN0IFN0cmluZyYgc2hlZXQo
KSBjb25zdCB7IHJldHVybiBtX3NoZWV0OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvZmV0Y2gvRmV0Y2hlZFJlc291cmNlUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvZmV0Y2gvRmV0Y2hlZFJlc291cmNlUmVxdWVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWEzYmRk
MzE5YjczY2QyZTFjNmE1NzFjM2JlYzUyZjU5YmJiZDE0YgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9mZXRjaC9GZXRjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcApAQCAt
MCwwICsxLDkwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSwgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgR09PR0xFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkZldGNoZWRSZXNvdXJjZVJlcXVl
c3QuaCIKKworI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ3Jv
c3NPcmlnaW5BY2Nlc3NDb250cm9sLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRl
IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitGZXRjaGVk
UmVzb3VyY2VSZXF1ZXN0OjpGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGNoYXJzZXQsIE9wdGlvbmFsPFJl
c291cmNlTG9hZFByaW9yaXR5PiBwcmlvcml0eSkKKyAgICA6IG1fcmVzb3VyY2VSZXF1ZXN0KHJl
c291cmNlUmVxdWVzdCkKKyAgICAsIG1fY2hhcnNldChjaGFyc2V0KQorICAgICwgbV9vcHRpb25z
KENhY2hlZFJlc291cmNlTG9hZGVyOjpkZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCkpCisg
ICAgLCBtX3ByaW9yaXR5KHByaW9yaXR5KQoreworfQorCitGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0
OjpGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYmIHJlc291cmNlUmVxdWVz
dCwgY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJiBvcHRpb25zLCBPcHRpb25hbDxSZXNvdXJj
ZUxvYWRQcmlvcml0eT4gcHJpb3JpdHkpCisgICAgOiBtX3Jlc291cmNlUmVxdWVzdChXVEZNb3Zl
KHJlc291cmNlUmVxdWVzdCkpCisgICAgLCBtX29wdGlvbnMob3B0aW9ucykKKyAgICAsIG1fcHJp
b3JpdHkocHJpb3JpdHkpCit7Cit9CisKK3ZvaWQgRmV0Y2hlZFJlc291cmNlUmVxdWVzdDo6c2V0
SW5pdGlhdG9yKFBhc3NSZWZQdHI8RWxlbWVudD4gZWxlbWVudCkKK3sKKyAgICBBU1NFUlQoIW1f
aW5pdGlhdG9yRWxlbWVudCAmJiBtX2luaXRpYXRvck5hbWUuaXNFbXB0eSgpKTsKKyAgICBtX2lu
aXRpYXRvckVsZW1lbnQgPSBlbGVtZW50OworfQorCit2b2lkIEZldGNoZWRSZXNvdXJjZVJlcXVl
c3Q6OnNldEluaXRpYXRvcihjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUpCit7CisgICAgQVNTRVJU
KCFtX2luaXRpYXRvckVsZW1lbnQgJiYgbV9pbml0aWF0b3JOYW1lLmlzRW1wdHkoKSk7CisgICAg
bV9pbml0aWF0b3JOYW1lID0gbmFtZTsKK30KKworY29uc3QgQXRvbWljU3RyaW5nJiBGZXRjaGVk
UmVzb3VyY2VSZXF1ZXN0Ojppbml0aWF0b3JOYW1lKCkgY29uc3QKK3sKKyAgICBpZiAobV9pbml0
aWF0b3JFbGVtZW50KQorICAgICAgICByZXR1cm4gbV9pbml0aWF0b3JFbGVtZW50LT5sb2NhbE5h
bWUoKTsKKyAgICBpZiAoIW1faW5pdGlhdG9yTmFtZS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVy
biBtX2luaXRpYXRvck5hbWU7CisKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QXRvbWljU3Ry
aW5nPiBkZWZhdWx0TmFtZSgicmVzb3VyY2UiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKTsKKyAgICByZXR1cm4gZGVmYXVsdE5hbWU7Cit9CisKK3ZvaWQgRmV0Y2hlZFJlc291
cmNlUmVxdWVzdDo6c2V0QXNQb3RlbnRpYWxseUNyb3NzT3JpZ2luKGNvbnN0IFN0cmluZyYgbW9k
ZSwgRG9jdW1lbnQmIGRvY3VtZW50KQoreworICAgIEFTU0VSVChtX29wdGlvbnMubW9kZSA9PSBG
ZXRjaE9wdGlvbnM6Ok1vZGU6Ok5vQ29ycyk7CisgICAgQVNTRVJUKGRvY3VtZW50LnNlY3VyaXR5
T3JpZ2luKCkpOworCisgICAgbV9vcmlnaW4gPSBkb2N1bWVudC5zZWN1cml0eU9yaWdpbigpOwor
CisgICAgaWYgKG1vZGUuaXNOdWxsKCkpCisgICAgICAgIHJldHVybjsKKyAgICBtX29wdGlvbnMu
bW9kZSA9IEZldGNoT3B0aW9uczo6TW9kZTo6Q29yczsKKyAgICBtX29wdGlvbnMuY3JlZGVudGlh
bHMgPSBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShtb2RlLCAidXNlLWNyZWRlbnRpYWxz
IikgPyBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpJbmNsdWRlIDogRmV0Y2hPcHRpb25zOjpD
cmVkZW50aWFsczo6U2FtZU9yaWdpbjsKKyAgICBtX29wdGlvbnMuYWxsb3dDcmVkZW50aWFscyA9
IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKG1vZGUsICJ1c2UtY3JlZGVudGlhbHMiKSA/
IEFsbG93U3RvcmVkQ3JlZGVudGlhbHMgOiBEb05vdEFsbG93U3RvcmVkQ3JlZGVudGlhbHM7CisK
KyAgICB1cGRhdGVSZXF1ZXN0Rm9yQWNjZXNzQ29udHJvbChtX3Jlc291cmNlUmVxdWVzdCwgKmRv
Y3VtZW50LnNlY3VyaXR5T3JpZ2luKCksIG1fb3B0aW9ucy5hbGxvd0NyZWRlbnRpYWxzKTsKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2ZldGNoL0ZldGNoZWRSZXNvdXJjZVJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9mZXRjaC9GZXRjaGVkUmVzb3VyY2VSZXF1ZXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjIxOGJhZjIxMjI5
ZmEyYzNhNDZlMGEwNGM0ZjliYmM0MjZmZDI4MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9mZXRjaC9GZXRjaGVkUmVzb3VyY2VSZXF1ZXN0LmgKQEAgLTAsMCArMSw4
MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUsIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEdP
T0dMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKKyNpbmNsdWRlICJFbGVt
ZW50LmgiCisjaW5jbHVkZSAiUmVzb3VyY2VMb2FkUHJpb3JpdHkuaCIKKyNpbmNsdWRlICJSZXNv
dXJjZUxvYWRlck9wdGlvbnMuaCIKKyNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKKyNpbmNs
dWRlICJTZWN1cml0eU9yaWdpbi5oIgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRl
IDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3Mg
RG9jdW1lbnQ7CisKK2NsYXNzIEZldGNoZWRSZXNvdXJjZVJlcXVlc3QgeworcHVibGljOgorICAg
IGVudW0gRGVmZXJPcHRpb24geyBOb0RlZmVyLCBEZWZlcnJlZEJ5Q2xpZW50IH07CisKKyAgICBl
eHBsaWNpdCBGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNv
bnN0IFN0cmluZyYgY2hhcnNldCA9IFN0cmluZygpLCBPcHRpb25hbDxSZXNvdXJjZUxvYWRQcmlv
cml0eT4gPSBOdWxsb3B0KTsKKyAgICBGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0KFJlc291cmNlUmVx
dWVzdCYmLCBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmLCBPcHRpb25hbDxSZXNvdXJjZUxv
YWRQcmlvcml0eT4gPSBOdWxsb3B0KTsKKworICAgIFJlc291cmNlUmVxdWVzdCYgbXV0YWJsZVJl
c291cmNlUmVxdWVzdCgpIHsgcmV0dXJuIG1fcmVzb3VyY2VSZXF1ZXN0OyB9CisgICAgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QoKSBjb25zdCB7IHJldHVybiBtX3Jlc291
cmNlUmVxdWVzdDsgfQorICAgIGNvbnN0IFN0cmluZyYgY2hhcnNldCgpIGNvbnN0IHsgcmV0dXJu
IG1fY2hhcnNldDsgfQorICAgIHZvaWQgc2V0Q2hhcnNldChjb25zdCBTdHJpbmcmIGNoYXJzZXQp
IHsgbV9jaGFyc2V0ID0gY2hhcnNldDsgfQorICAgIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9u
cyYgb3B0aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fb3B0aW9uczsgfQorICAgIHZvaWQgc2V0T3B0
aW9ucyhjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmIG9wdGlvbnMpIHsgbV9vcHRpb25zID0g
b3B0aW9uczsgfQorICAgIGNvbnN0IE9wdGlvbmFsPFJlc291cmNlTG9hZFByaW9yaXR5PiYgcHJp
b3JpdHkoKSBjb25zdCB7IHJldHVybiBtX3ByaW9yaXR5OyB9CisgICAgYm9vbCBmb3JQcmVsb2Fk
KCkgY29uc3QgeyByZXR1cm4gbV9mb3JQcmVsb2FkOyB9CisgICAgdm9pZCBzZXRGb3JQcmVsb2Fk
KGJvb2wgZm9yUHJlbG9hZCkgeyBtX2ZvclByZWxvYWQgPSBmb3JQcmVsb2FkOyB9CisgICAgRGVm
ZXJPcHRpb24gZGVmZXIoKSBjb25zdCB7IHJldHVybiBtX2RlZmVyOyB9CisgICAgdm9pZCBzZXRE
ZWZlcihEZWZlck9wdGlvbiBkZWZlcikgeyBtX2RlZmVyID0gZGVmZXI7IH0KKyAgICB2b2lkIHNl
dEluaXRpYXRvcihQYXNzUmVmUHRyPEVsZW1lbnQ+KTsKKyAgICB2b2lkIHNldEluaXRpYXRvcihj
b25zdCBBdG9taWNTdHJpbmcmIG5hbWUpOworICAgIGNvbnN0IEF0b21pY1N0cmluZyYgaW5pdGlh
dG9yTmFtZSgpIGNvbnN0OworICAgIGJvb2wgYWxsb3dzQ2FjaGluZygpIGNvbnN0IHsgcmV0dXJu
IG1fb3B0aW9ucy5jYWNoaW5nUG9saWN5ID09IENhY2hpbmdQb2xpY3k6OkFsbG93Q2FjaGluZzsg
fQorICAgIHZvaWQgc2V0Q2FjaGluZ1BvbGljeShDYWNoaW5nUG9saWN5IHBvbGljeSkgeyBtX29w
dGlvbnMuY2FjaGluZ1BvbGljeSA9IHBvbGljeTsgfQorCisgICAgdm9pZCBzZXRBc1BvdGVudGlh
bGx5Q3Jvc3NPcmlnaW4oY29uc3QgU3RyaW5nJiwgRG9jdW1lbnQmKTsKKyAgICB2b2lkIHNldE9y
aWdpbihSZWZQdHI8U2VjdXJpdHlPcmlnaW4+JiYgb3JpZ2luKSB7IEFTU0VSVCghbV9vcmlnaW4p
OyBtX29yaWdpbiA9IFdURk1vdmUob3JpZ2luKTsgfQorICAgIFJlZlB0cjxTZWN1cml0eU9yaWdp
bj4gcmVsZWFzZU9yaWdpbigpIHsgcmV0dXJuIFdURk1vdmUobV9vcmlnaW4pOyB9CisgICAgU2Vj
dXJpdHlPcmlnaW4qIG9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIG1fb3JpZ2luLmdldCgpOyB9CisK
K3ByaXZhdGU6CisgICAgUmVzb3VyY2VSZXF1ZXN0IG1fcmVzb3VyY2VSZXF1ZXN0OworICAgIFN0
cmluZyBtX2NoYXJzZXQ7CisgICAgUmVzb3VyY2VMb2FkZXJPcHRpb25zIG1fb3B0aW9uczsKKyAg
ICBPcHRpb25hbDxSZXNvdXJjZUxvYWRQcmlvcml0eT4gbV9wcmlvcml0eTsKKyAgICBib29sIG1f
Zm9yUHJlbG9hZCB7IGZhbHNlIH07CisgICAgRGVmZXJPcHRpb24gbV9kZWZlciB7IE5vRGVmZXIg
fTsKKyAgICBSZWZQdHI8RWxlbWVudD4gbV9pbml0aWF0b3JFbGVtZW50OworICAgIEF0b21pY1N0
cmluZyBtX2luaXRpYXRvck5hbWU7CisgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBtX29yaWdp
bjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9pY29uL0ljb25Mb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2lj
b24vSWNvbkxvYWRlci5jcHAKaW5kZXggYzI0M2Y0MmFjOWE1OGY2ZGY1ODBmMmY4ZDhkM2FkY2Yz
MDk1YTIxMy4uOTQzZTAwMzNlZjY4OTBlMzBlZjAzYWUwNGY1ZTM3ZDgxNDVmNzJjNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkxvYWRlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkxvYWRlci5jcHAKQEAgLTIwLDE3ICsyMCwxNyBA
QAogICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQogICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KICAqLwotIAorCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiSWNvbkxvYWRlci5oIgogCiAjaW5jbHVkZSAiQ2FjaGVkUmF3UmVzb3VyY2UuaCIKICNpbmNs
dWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgotI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVx
dWVzdC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaCIKICNp
bmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkZldGNoZWRSZXNvdXJjZVJlcXVlc3QuaCIK
ICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAi
RnJhbWVMb2FkZXJDbGllbnQuaCIKQEAgLTU5LDcgKzU5LDcgQEAgdm9pZCBJY29uTG9hZGVyOjpz
dGFydExvYWRpbmcoKQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBDb250ZW50U2VjdXJpdHlQ
b2xpY3lJbXBvc2l0aW9uOjpEb1BvbGljeUNoZWNrIGlzIGEgcGxhY2Vob2xkZXIgdmFsdWUuIEl0
IGRvZXMgbm90IGFmZmVjdCB0aGUgcmVxdWVzdCBzaW5jZSBDb250ZW50IFNlY3VyaXR5IFBvbGlj
eSBkb2VzIG5vdCBhcHBseSB0byByYXcgcmVzb3VyY2VzLgotICAgIENhY2hlZFJlc291cmNlUmVx
dWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChtX2ZyYW1lLmxvYWRlcigpLmljb24oKS51cmwo
KSksIFJlc291cmNlTG9hZGVyT3B0aW9ucyhTZW5kQ2FsbGJhY2tzLCBTbmlmZkNvbnRlbnQsIEJ1
ZmZlckRhdGEsIERvTm90QWxsb3dTdG9yZWRDcmVkZW50aWFscywgQ2xpZW50Q3JlZGVudGlhbFBv
bGljeTo6Q2Fubm90QXNrQ2xpZW50Rm9yQ3JlZGVudGlhbHMsIEZldGNoT3B0aW9uczo6Q3JlZGVu
dGlhbHM6Ok9taXQsIERvU2VjdXJpdHlDaGVjaywgRmV0Y2hPcHRpb25zOjpNb2RlOjpOb0NvcnMs
IERvTm90SW5jbHVkZUNlcnRpZmljYXRlSW5mbywgQ29udGVudFNlY3VyaXR5UG9saWN5SW1wb3Np
dGlvbjo6RG9Qb2xpY3lDaGVjaywgRGVmZXJzTG9hZGluZ1BvbGljeTo6QWxsb3dEZWZlcnNMb2Fk
aW5nLCBDYWNoaW5nUG9saWN5OjpBbGxvd0NhY2hpbmcpKTsKKyAgICBGZXRjaGVkUmVzb3VyY2VS
ZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KG1fZnJhbWUubG9hZGVyKCkuaWNvbigpLnVy
bCgpKSwgUmVzb3VyY2VMb2FkZXJPcHRpb25zKFNlbmRDYWxsYmFja3MsIFNuaWZmQ29udGVudCwg
QnVmZmVyRGF0YSwgRG9Ob3RBbGxvd1N0b3JlZENyZWRlbnRpYWxzLCBDbGllbnRDcmVkZW50aWFs
UG9saWN5OjpDYW5ub3RBc2tDbGllbnRGb3JDcmVkZW50aWFscywgRmV0Y2hPcHRpb25zOjpDcmVk
ZW50aWFsczo6T21pdCwgRG9TZWN1cml0eUNoZWNrLCBGZXRjaE9wdGlvbnM6Ok1vZGU6Ok5vQ29y
cywgRG9Ob3RJbmNsdWRlQ2VydGlmaWNhdGVJbmZvLCBDb250ZW50U2VjdXJpdHlQb2xpY3lJbXBv
c2l0aW9uOjpEb1BvbGljeUNoZWNrLCBEZWZlcnNMb2FkaW5nUG9saWN5OjpBbGxvd0RlZmVyc0xv
YWRpbmcsIENhY2hpbmdQb2xpY3k6OkFsbG93Q2FjaGluZykpOwogCiAgICAgcmVxdWVzdC5tdXRh
YmxlUmVzb3VyY2VSZXF1ZXN0KCkuc2V0UHJpb3JpdHkoUmVzb3VyY2VMb2FkUHJpb3JpdHk6Okxv
dyk7CiAgICAgcmVxdWVzdC5zZXRJbml0aWF0b3IoY2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlh
dG9ycygpLmljb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL2NmL1dlYkNvcmVBVkNGUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL1dlYkNvcmVBVkNGUmVz
b3VyY2VMb2FkZXIuY3BwCmluZGV4IDkxMmMyYmZlZGU4NmYxNWYyZDkyYjExMzAyYjA0MWZkY2Yw
ZDAzYjcuLjQ3ZmY2ZTZiODFlYTA1Yzc0ZmJkYjI4N2I0NjU1NDk5YTI0ODUxYjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9XZWJD
b3JlQVZDRlJlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vY2YvV2ViQ29yZUFWQ0ZSZXNvdXJjZUxvYWRlci5jcHAKQEAg
LTMwLDcgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkNhY2hlZFJhd1Jlc291cmNlLmgiCiAjaW5jbHVk
ZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKLSNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVl
c3QuaCIKKyNpbmNsdWRlICJGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRl
ZC5oIgogI2luY2x1ZGUgIlJlc291cmNlTG9hZGVyT3B0aW9ucy5oIgpAQCAtNzEsNyArNzEsNyBA
QCB2b2lkIFdlYkNvcmVBVkNGUmVzb3VyY2VMb2FkZXI6OnN0YXJ0TG9hZGluZygpCiAgICAgUmV0
YWluUHRyPENGVVJMUmVxdWVzdFJlZj4gdXJsUmVxdWVzdCA9IEFWQ0ZBc3NldFJlc291cmNlTG9h
ZGluZ1JlcXVlc3RHZXRVUkxSZXF1ZXN0KG1fYXZSZXF1ZXN0LmdldCgpKTsKIAogICAgIC8vIENv
bnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb246OkRvUG9saWN5Q2hlY2sgaXMgYSBwbGFjZWhv
bGRlciB2YWx1ZS4gSXQgZG9lcyBub3QgYWZmZWN0IHRoZSByZXF1ZXN0IHNpbmNlIENvbnRlbnQg
U2VjdXJpdHkgUG9saWN5IGRvZXMgbm90IGFwcGx5IHRvIHJhdyByZXNvdXJjZXMuCi0gICAgQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KHVybFJlcXVlc3QuZ2V0
KCkpLCBSZXNvdXJjZUxvYWRlck9wdGlvbnMoU2VuZENhbGxiYWNrcywgRG9Ob3RTbmlmZkNvbnRl
bnQsIEJ1ZmZlckRhdGEsIERvTm90QWxsb3dTdG9yZWRDcmVkZW50aWFscywgQ2xpZW50Q3JlZGVu
dGlhbFBvbGljeTo6Q2Fubm90QXNrQ2xpZW50Rm9yQ3JlZGVudGlhbHMsIEZldGNoT3B0aW9uczo6
Q3JlZGVudGlhbHM6Ok9taXQsIERvU2VjdXJpdHlDaGVjaywgRmV0Y2hPcHRpb25zOjpNb2RlOjpO
b0NvcnMsIERvTm90SW5jbHVkZUNlcnRpZmljYXRlSW5mbywgQ29udGVudFNlY3VyaXR5UG9saWN5
SW1wb3NpdGlvbjo6RG9Qb2xpY3lDaGVjaywgRGVmZXJzTG9hZGluZ1BvbGljeTo6QWxsb3dEZWZl
cnNMb2FkaW5nLCBDYWNoaW5nUG9saWN5OjpEaXNhbGxvd0NhY2hpbmcpKTsKKyAgICBGZXRjaGVk
UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KHVybFJlcXVlc3QuZ2V0KCkp
LCBSZXNvdXJjZUxvYWRlck9wdGlvbnMoU2VuZENhbGxiYWNrcywgRG9Ob3RTbmlmZkNvbnRlbnQs
IEJ1ZmZlckRhdGEsIERvTm90QWxsb3dTdG9yZWRDcmVkZW50aWFscywgQ2xpZW50Q3JlZGVudGlh
bFBvbGljeTo6Q2Fubm90QXNrQ2xpZW50Rm9yQ3JlZGVudGlhbHMsIEZldGNoT3B0aW9uczo6Q3Jl
ZGVudGlhbHM6Ok9taXQsIERvU2VjdXJpdHlDaGVjaywgRmV0Y2hPcHRpb25zOjpNb2RlOjpOb0Nv
cnMsIERvTm90SW5jbHVkZUNlcnRpZmljYXRlSW5mbywgQ29udGVudFNlY3VyaXR5UG9saWN5SW1w
b3NpdGlvbjo6RG9Qb2xpY3lDaGVjaywgRGVmZXJzTG9hZGluZ1BvbGljeTo6QWxsb3dEZWZlcnNM
b2FkaW5nLCBDYWNoaW5nUG9saWN5OjpEaXNhbGxvd0NhY2hpbmcpKTsKIAogICAgIHJlcXVlc3Qu
bXV0YWJsZVJlc291cmNlUmVxdWVzdCgpLnNldFByaW9yaXR5KFJlc291cmNlTG9hZFByaW9yaXR5
OjpMb3cpOwogICAgIENhY2hlZFJlc291cmNlTG9hZGVyKiBsb2FkZXIgPSBtX3BhcmVudC0+cGxh
eWVyKCktPmNhY2hlZFJlc291cmNlTG9hZGVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9XZWJDb3JlQVZGUmVzb3VyY2VM
b2FkZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9XZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIubW0KaW5kZXggNzY0YjBkZjA1ZjM5YmI2ODli
MWQwMDM5ZTc4ZDhlNGMxMDA0MmVjZS4uZTMyYzVmNzc3NjE0YTA3NjEzNDdhYzliMGU1YzYxM2Iw
ZTYyNDZkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1dlYkNvcmVBVkZSZXNv
dXJjZUxvYWRlci5tbQpAQCAtMzAsNyArMzAsNyBAQAogCiAjaW1wb3J0ICJDYWNoZWRSYXdSZXNv
dXJjZS5oIgogI2ltcG9ydCAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKLSNpbXBvcnQgIkNhY2hl
ZFJlc291cmNlUmVxdWVzdC5oIgorI2ltcG9ydCAiRmV0Y2hlZFJlc291cmNlUmVxdWVzdC5oIgog
I2ltcG9ydCAiTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oIgogI2ltcG9ydCAi
UmVzb3VyY2VMb2FkZXJPcHRpb25zLmgiCiAjaW1wb3J0ICJTaGFyZWRCdWZmZXIuaCIKQEAgLTY5
LDcgKzY5LDcgQEAgdm9pZCBXZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXI6OnN0YXJ0TG9hZGluZygp
CiAKICAgICAvLyBGSVhNRTogU2tpcCBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBjaGVjayBpZiB0
aGUgZWxlbWVudCB0aGF0IGluaXRpdGF0ZWQgdGhpcyByZXF1ZXN0CiAgICAgLy8gaXMgaW4gYSB1
c2VyLWFnZW50IHNoYWRvdyB0cmVlLiBTZWUgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNTU1MDU+LgotICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KG5z
UmVxdWVzdCwgUmVzb3VyY2VMb2FkZXJPcHRpb25zKFNlbmRDYWxsYmFja3MsIERvTm90U25pZmZD
b250ZW50LCBCdWZmZXJEYXRhLCBEb05vdEFsbG93U3RvcmVkQ3JlZGVudGlhbHMsIENsaWVudENy
ZWRlbnRpYWxQb2xpY3k6OkNhbm5vdEFza0NsaWVudEZvckNyZWRlbnRpYWxzLCBGZXRjaE9wdGlv
bnM6OkNyZWRlbnRpYWxzOjpPbWl0LCBEb1NlY3VyaXR5Q2hlY2ssIEZldGNoT3B0aW9uczo6TW9k
ZTo6Tm9Db3JzLCBEb05vdEluY2x1ZGVDZXJ0aWZpY2F0ZUluZm8sIENvbnRlbnRTZWN1cml0eVBv
bGljeUltcG9zaXRpb246OkRvUG9saWN5Q2hlY2ssIERlZmVyc0xvYWRpbmdQb2xpY3k6OkFsbG93
RGVmZXJzTG9hZGluZywgQ2FjaGluZ1BvbGljeTo6RGlzYWxsb3dDYWNoaW5nKSk7CisgICAgRmV0
Y2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KG5zUmVxdWVzdCwgUmVzb3VyY2VMb2FkZXJPcHRp
b25zKFNlbmRDYWxsYmFja3MsIERvTm90U25pZmZDb250ZW50LCBCdWZmZXJEYXRhLCBEb05vdEFs
bG93U3RvcmVkQ3JlZGVudGlhbHMsIENsaWVudENyZWRlbnRpYWxQb2xpY3k6OkNhbm5vdEFza0Ns
aWVudEZvckNyZWRlbnRpYWxzLCBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpPbWl0LCBEb1Nl
Y3VyaXR5Q2hlY2ssIEZldGNoT3B0aW9uczo6TW9kZTo6Tm9Db3JzLCBEb05vdEluY2x1ZGVDZXJ0
aWZpY2F0ZUluZm8sIENvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb246OkRvUG9saWN5Q2hl
Y2ssIERlZmVyc0xvYWRpbmdQb2xpY3k6OkFsbG93RGVmZXJzTG9hZGluZywgQ2FjaGluZ1BvbGlj
eTo6RGlzYWxsb3dDYWNoaW5nKSk7CiAgICAgcmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0
KCkuc2V0UHJpb3JpdHkoUmVzb3VyY2VMb2FkUHJpb3JpdHk6Okxvdyk7CiAgICAgaWYgKGF1dG8q
IGxvYWRlciA9IG1fcGFyZW50LT5wbGF5ZXIoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKSkKICAg
ICAgICAgbV9yZXNvdXJjZSA9IGxvYWRlci0+cmVxdWVzdE1lZGlhKFdURk1vdmUocmVxdWVzdCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9XZWJD
b3JlTlNVUkxTZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29h
L1dlYkNvcmVOU1VSTFNlc3Npb24uaAppbmRleCA2ZDUyZmNkYTg0NmQ1YzQ5M2QyZjVmYjg2NDM2
NzFlZTM5YmY1MmZkLi5lY2ZlYmQ2MGRmNjViNzFmNjMwMmEwZDZiZWUxYTZlZjE0OWNkM2M2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1dlYkNvcmVO
U1VSTFNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29h
L1dlYkNvcmVOU1VSTFNlc3Npb24uaApAQCAtNDMsNyArNDMsNyBAQAogQGNsYXNzIFdlYkNvcmVO
U1VSTFNlc3Npb25EYXRhVGFzazsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewotY2xhc3MgQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0OworY2xhc3MgRmV0Y2hlZFJlc291cmNlUmVxdWVzdDsKIGNsYXNzIFBs
YXRmb3JtTWVkaWFSZXNvdXJjZTsKIGNsYXNzIFBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlcjsK
IGNsYXNzIFdlYkNvcmVOU1VSTFNlc3Npb25EYXRhVGFza0NsaWVudDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvV2ViQ29yZU5TVVJMU2Vzc2lvbi5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvV2ViQ29yZU5TVVJMU2Vz
c2lvbi5tbQppbmRleCAxNmUxNzE0MjVkMjc4NjZiMjE0ZmMwMmUwZjQ3ODQzYmZiOWJjNGNkLi40
NDE1ODllOWQyMWIwZjQ5NzIxMDM4NWUzODJlNTMwMDlmNzQ2MzI4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1dlYkNvcmVOU1VSTFNlc3Npb24ubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9XZWJDb3JlTlNVUkxT
ZXNzaW9uLm1tCkBAIC0yMCw3ICsyMCw3IEBACiAgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCiAgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKICAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKICNpbXBv
cnQgImNvbmZpZy5oIgpAQCAtMjgsOSArMjgsOSBAQAogCiAjaWYgUExBVEZPUk0oSU9TKSB8fCBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMAogCi0jaW1wb3J0ICJDYWNo
ZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbXBvcnQgIlBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRl
ci5oIgogI2ltcG9ydCAiU3VicmVzb3VyY2VMb2FkZXIuaCIKKyNpbXBvcnQgPHd0Zi9NYWluVGhy
ZWFkLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFSW1hZ2VFbGVtZW50LmNwcAppbmRleCA0ZDU5MjkxMDM4ODcwNjUwMWUxMTI4Y2I0ZjcxZTNi
MzcxMDc3M2JjLi5iNTQwMGI1OWU0ZjhmMTQ3Yjc0YzRmMzgxMGQ2YzllNTI5ZmVmZTlhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5jcHAKQEAgLTI0LDkgKzI0LDkgQEAK
IAogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXIuaCIKLSNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJDb2xv
clNwYWNlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJGZXRjaGVkUmVzb3Vy
Y2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiSW1hZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJPYmplY3Qu
aCIKICNpbmNsdWRlICJSZW5kZXJTVkdSZXNvdXJjZS5oIgpAQCAtODgsNyArODgsNyBAQCB2b2lk
IFNWR0ZFSW1hZ2VFbGVtZW50OjpyZXF1ZXN0SW1hZ2VSZXNvdXJjZSgpCiAgICAgUmVzb3VyY2VM
b2FkZXJPcHRpb25zIG9wdGlvbnMgPSBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6ZGVmYXVsdENhY2hl
ZFJlc291cmNlT3B0aW9ucygpOwogICAgIG9wdGlvbnMuY29udGVudFNlY3VyaXR5UG9saWN5SW1w
b3NpdGlvbiA9IGlzSW5Vc2VyQWdlbnRTaGFkb3dUcmVlKCkgPyBDb250ZW50U2VjdXJpdHlQb2xp
Y3lJbXBvc2l0aW9uOjpTa2lwUG9saWN5Q2hlY2sgOiBDb250ZW50U2VjdXJpdHlQb2xpY3lJbXBv
c2l0aW9uOjpEb1BvbGljeUNoZWNrOwogCi0gICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVl
c3QoUmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50KCkuY29tcGxldGVVUkwoaHJlZigpKSksIG9wdGlv
bnMpOworICAgIEZldGNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3Qo
ZG9jdW1lbnQoKS5jb21wbGV0ZVVSTChocmVmKCkpKSwgb3B0aW9ucyk7CiAgICAgcmVxdWVzdC5z
ZXRJbml0aWF0b3IodGhpcyk7CiAgICAgbV9jYWNoZWRJbWFnZSA9IGRvY3VtZW50KCkuY2FjaGVk
UmVzb3VyY2VMb2FkZXIoKS5yZXF1ZXN0SW1hZ2UoV1RGTW92ZShyZXF1ZXN0KSk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5jcHAKaW5kZXggYTM4OThlMGM1
OTMzYmJhNWFmNDdhOGQyNTFhOWQxNTIyZTljODJmYS4uMDFjY2FlMzU0MDY1OWJhN2YzZWQ5ZWNk
N2MwMjU4Zjc2Mzk0MmU3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRG
YWNlVXJpRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJp
RWxlbWVudC5jcHAKQEAgLTI2LDE2ICsyNiwxNiBAQAogI2luY2x1ZGUgIkNTU0ZvbnRGYWNlU3Jj
VmFsdWUuaCIKICNpbmNsdWRlICJDYWNoZWRGb250LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXIuaCIKLSNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRl
ICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkZldGNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNs
dWRlICJTVkdGb250RmFjZUVsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdOYW1lcy5oIgogI2luY2x1
ZGUgIlhMaW5rTmFtZXMuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewotICAgIAorCiB1c2luZyBu
YW1lc3BhY2UgU1ZHTmFtZXM7Ci0gICAgCisKIGlubGluZSBTVkdGb250RmFjZVVyaUVsZW1lbnQ6
OlNWR0ZvbnRGYWNlVXJpRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1
bWVudCYgZG9jdW1lbnQpCiAgICAgOiBTVkdFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQogewpA
QCAtMTA0LDcgKzEwNCw3IEBAIHZvaWQgU1ZHRm9udEZhY2VVcmlFbGVtZW50Ojpsb2FkRm9udCgp
CiAgICAgICAgIG9wdGlvbnMuY29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbiA9IGlzSW5V
c2VyQWdlbnRTaGFkb3dUcmVlKCkgPyBDb250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9uOjpT
a2lwUG9saWN5Q2hlY2sgOiBDb250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9uOjpEb1BvbGlj
eUNoZWNrOwogCiAgICAgICAgIENhY2hlZFJlc291cmNlTG9hZGVyJiBjYWNoZWRSZXNvdXJjZUxv
YWRlciA9IGRvY3VtZW50KCkuY2FjaGVkUmVzb3VyY2VMb2FkZXIoKTsKLSAgICAgICAgQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50KCkuY29tcGxl
dGVVUkwoaHJlZikpLCBvcHRpb25zKTsKKyAgICAgICAgRmV0Y2hlZFJlc291cmNlUmVxdWVzdCBy
ZXF1ZXN0KFJlc291cmNlUmVxdWVzdChkb2N1bWVudCgpLmNvbXBsZXRlVVJMKGhyZWYpKSwgb3B0
aW9ucyk7CiAgICAgICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9yKHRoaXMpOwogICAgICAgICBtX2Nh
Y2hlZEZvbnQgPSBjYWNoZWRSZXNvdXJjZUxvYWRlci5yZXF1ZXN0Rm9udChXVEZNb3ZlKHJlcXVl
c3QpLCBpc1NWR0ZvbnRUYXJnZXQoKnRoaXMpKTsKICAgICAgICAgaWYgKG1fY2FjaGVkRm9udCkg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCmluZGV4IGEwNDdhZDY4ODNiZThhODU4
YzVkZjVjZjRiMzAxNzkxY2JjY2MwOGQuLjBkZDAyNTFmNjczZmUyMjAzZDhiNGRlZjk4OGNiZjFi
ZjIzNmIwMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAKQEAgLTU3MSw3ICs1
NzEsNyBAQCB2b2lkIFNWR1VzZUVsZW1lbnQ6OnVwZGF0ZUV4dGVybmFsRG9jdW1lbnQoKQogICAg
ICAgICBSZXNvdXJjZUxvYWRlck9wdGlvbnMgb3B0aW9ucyA9IENhY2hlZFJlc291cmNlTG9hZGVy
OjpkZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCk7CiAgICAgICAgIG9wdGlvbnMuY29udGVu
dFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbiA9IGlzSW5Vc2VyQWdlbnRTaGFkb3dUcmVlKCkgPyBD
b250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9uOjpTa2lwUG9saWN5Q2hlY2sgOiBDb250ZW50
U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9uOjpEb1BvbGljeUNoZWNrOwogICAgICAgICBvcHRpb25z
Lm1vZGUgPSBGZXRjaE9wdGlvbnM6Ok1vZGU6OlNhbWVPcmlnaW47Ci0gICAgICAgIENhY2hlZFJl
c291cmNlUmVxdWVzdCByZXF1ZXN0IHsgUmVzb3VyY2VSZXF1ZXN0IHsgZXh0ZXJuYWxEb2N1bWVu
dFVSTCB9LCBvcHRpb25zIH07CisgICAgICAgIEZldGNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVz
dCB7IFJlc291cmNlUmVxdWVzdCB7IGV4dGVybmFsRG9jdW1lbnRVUkwgfSwgb3B0aW9ucyB9Owog
ICAgICAgICByZXF1ZXN0LnNldEluaXRpYXRvcih0aGlzKTsKICAgICAgICAgbV9leHRlcm5hbERv
Y3VtZW50ID0gZG9jdW1lbnQoKS5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLnJlcXVlc3RTVkdEb2N1
bWVudChXVEZNb3ZlKHJlcXVlc3QpKTsKICAgICAgICAgaWYgKG1fZXh0ZXJuYWxEb2N1bWVudCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xJbXBvcnRSdWxlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3htbC9YU0xJbXBvcnRSdWxlLmNwcAppbmRleCBiM2Q0ZTFhNDlhNWU0N2UyZTk2
OThjODRlNjU0MTJiYmI4YzBiZTU5Li4xY2FkNDc3YzE0MmEwZDMzMGQ5NjMzMmJlZTBiMzQzMjJh
MWY0NjM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMSW1wb3J0UnVsZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hTTEltcG9ydFJ1bGUuY3BwCkBAIC0yNiw4ICsyNiw4
IEBACiAKICNpbmNsdWRlICJDYWNoZWRYU0xTdHlsZVNoZWV0LmgiCiAjaW5jbHVkZSAiQ2FjaGVk
UmVzb3VyY2VMb2FkZXIuaCIKLSNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNp
bmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkZldGNoZWRSZXNvdXJjZVJlcXVlc3QuaCIK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290705</attachid>
            <date>2016-10-05 04:11:22 -0700</date>
            <delta_ts>2018-02-14 10:34:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162963-20161005130809.patch</filename>
            <type>text/plain</type>
            <size>105939</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2ODA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWYzN2ZjZTliY2EyNTU4
MzUwODk4Y2JlMzc5ZTRhN2MxMWE4ZTIxZS4uYWIwMmE0YTYzYjgwNjcxZjIwMzFiNmQwODVhNWRm
ZjgwMTZkYzFmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0NyBAQAorMjAxNi0xMC0wNSAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIENhY2hlZFJl
c291cmNlUmVxdWVzdCBhcyBGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjI5NjMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBjaGFuZ2Ugb2YgYmVoYXZpb3IuCisK
KyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBQbGF0Zm9ybU1hYy5jbWFrZToK
KyAgICAgICAgKiBQbGF0Zm9ybVdpbi5jbWFrZToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udEZhY2VTcmNWYWx1ZTo6Y2FjaGVkRm9udCk6Cisg
ICAgICAgICogY3NzL0NTU0ltYWdlU2V0VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
SW1hZ2VTZXRWYWx1ZTo6bG9hZEJlc3RGaXRJbWFnZSk6CisgICAgICAgICogY3NzL0NTU0ltYWdl
VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTSW1hZ2VWYWx1ZTo6bG9hZEltYWdlKToK
KyAgICAgICAgKiBjc3MvU3R5bGVSdWxlSW1wb3J0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0
eWxlUnVsZUltcG9ydDo6cmVxdWVzdFN0eWxlU2hlZXQpOgorICAgICAgICAqIGRvbS9Qcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UHJvY2Vzc2luZ0luc3RydWN0
aW9uOjpjaGVja1N0eWxlU2hlZXQpOgorICAgICAgICAqIGRvbS9TY3JpcHRFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OnJlcXVlc3RTY3JpcHRXaXRoQ2FjaGUp
OgorICAgICAgICAqIGh0bWwvSFRNTExpbmtFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxMaW5rRWxlbWVudDo6cHJvY2Vzcyk6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFJl
c291cmNlUHJlbG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlByZWxvYWRSZXF1ZXN0Ojpy
ZXNvdXJjZVJlcXVlc3QpOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxSZXNvdXJjZVByZWxv
YWRlci5oOgorICAgICAgICAqIGxvYWRlci9Dcm9zc09yaWdpblByZWZsaWdodENoZWNrZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q3Jvc3NPcmlnaW5QcmVmbGlnaHRDaGVja2VyOjpzdGFydFBy
ZWZsaWdodCk6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpzdGFydExvYWRpbmdNYWluUmVzb3VyY2UpOgorICAg
ICAgICAqIGxvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpsb2FkUmVxdWVzdCk6CisgICAgICAgICog
bG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL0ltYWdlTG9hZGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlTG9hZGVyOjp1cGRhdGVGcm9tRWxlbWVudCk6
CisgICAgICAgICogbG9hZGVyL0xpbmtMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGlu
a0xvYWRlcjo6cHJlbG9hZElmTmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkxpbmtMb2FkZXI6
OmxvYWRMaW5rKToKKyAgICAgICAgKiBsb2FkZXIvTWVkaWFSZXNvdXJjZUxvYWRlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UpOgor
ICAgICAgICAqIGxvYWRlci9SZXNvdXJjZVRpbWluZ0luZm9ybWF0aW9uLmNwcDoKKyAgICAgICAg
KiBsb2FkZXIvUmVzb3VyY2VUaW1pbmdJbmZvcm1hdGlvbi5oOgorICAgICAgICAqIGxvYWRlci9U
ZXh0VHJhY2tMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrTG9hZGVyOjps
b2FkKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDYWNoZWRDU1NTdHlsZVNoZWV0OjpDYWNoZWRDU1NTdHlsZVNoZWV0
KToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5oOgorICAgICAg
ICAqIGxvYWRlci9jYWNoZS9DYWNoZWRGb250LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hl
ZEZvbnQ6OkNhY2hlZEZvbnQpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRGb250Lmg6
CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNhY2hlZEltYWdlOjpDYWNoZWRJbWFnZSk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0Nh
Y2hlZEltYWdlLmg6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJhd1Jlc291cmNlOjpDYWNoZWRSYXdSZXNvdXJj
ZSk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmg6CisgICAgICAg
ICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNh
Y2hlZFJlc291cmNlOjpDYWNoZWRSZXNvdXJjZSk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlLmg6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9h
ZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVJlc291cmNlKToKKyAgICAgICAgKFdl
YkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0SW1hZ2UpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RGb250KToKKyAgICAgICAgKFdlYkNv
cmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0VGV4dFRyYWNrKToKKyAgICAgICAgKFdl
YkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0Q1NTU3R5bGVTaGVldCk6CisgICAg
ICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFVzZXJDU1NTdHlsZVNo
ZWV0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0U2Ny
aXB0KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0WFNM
U3R5bGVTaGVldCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVx
dWVzdFNWR0RvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVy
OjpyZXF1ZXN0TGlua1Jlc291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNl
TG9hZGVyOjpyZXF1ZXN0TWVkaWEpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VM
b2FkZXI6OnJlcXVlc3RSYXdSZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNv
dXJjZUxvYWRlcjo6cmVxdWVzdE1haW5SZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNo
ZWRSZXNvdXJjZUxvYWRlcjo6c2hvdWxkQ29udGludWVBZnRlck5vdGlmeWluZ0xvYWRlZEZyb21N
ZW1vcnlDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6c2hv
dWxkVXBkYXRlQ2FjaGVkUmVzb3VyY2VXaXRoQ3VycmVudFJlcXVlc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6Y2FuVXBkYXRlRnJvbVJlc291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJl
c291cmNlTG9hZGVyOjp1cGRhdGVDYWNoZWRSZXNvdXJjZVdpdGhDdXJyZW50UmVxdWVzdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cHJlcGFyZUZldGNoKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UpOgor
ICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJldmFsaWRhdGVSZXNvdXJj
ZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6bG9hZFJlc291cmNl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpkZXRlcm1pbmVSZXZh
bGlkYXRpb25Qb2xpY3kpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6
OnByZWxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVl
c3RQcmVsb2FkKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIu
aDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q2FjaGVkU1ZHRG9jdW1lbnQ6OkNhY2hlZFNWR0RvY3VtZW50KToKKyAgICAg
ICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnQuaDoKKyAgICAgICAgKiBsb2FkZXIv
Y2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnRSZWZlcmVuY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q2FjaGVkU1ZHRG9jdW1lbnRSZWZlcmVuY2U6OmxvYWQpOgorICAgICAgICAqIGxvYWRlci9jYWNo
ZS9DYWNoZWRTVkdGb250LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFNWR0ZvbnQ6OkNh
Y2hlZFNWR0ZvbnQpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRTVkdGb250Lmg6Cisg
ICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDYWNoZWRTY3JpcHQ6OkNhY2hlZFNjcmlwdCk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0Nh
Y2hlZFNjcmlwdC5oOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRUZXh0VHJhY2suY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkVGV4dFRyYWNrOjpDYWNoZWRUZXh0VHJhY2spOgor
ICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRUZXh0VHJhY2suaDoKKyAgICAgICAgKiBsb2Fk
ZXIvY2FjaGUvQ2FjaGVkWFNMU3R5bGVTaGVldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNo
ZWRYU0xTdHlsZVNoZWV0OjpDYWNoZWRYU0xTdHlsZVNoZWV0KToKKyAgICAgICAgKiBsb2FkZXIv
Y2FjaGUvQ2FjaGVkWFNMU3R5bGVTaGVldC5oOgorICAgICAgICAqIGxvYWRlci9mZXRjaC9GZXRj
aGVkUmVzb3VyY2VSZXF1ZXN0LmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwLgorICAgICAgICAoV2ViQ29yZTo6RmV0
Y2hlZFJlc291cmNlUmVxdWVzdDo6RmV0Y2hlZFJlc291cmNlUmVxdWVzdCk6CisgICAgICAgIChX
ZWJDb3JlOjpGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0OjpzZXRJbml0aWF0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6RmV0Y2hlZFJlc291cmNlUmVxdWVzdDo6aW5pdGlhdG9yTmFtZSk6CisgICAgICAg
IChXZWJDb3JlOjpGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0OjpzZXRBc1BvdGVudGlhbGx5Q3Jvc3NP
cmlnaW4pOgorICAgICAgICAqIGxvYWRlci9mZXRjaC9GZXRjaGVkUmVzb3VyY2VSZXF1ZXN0Lmg6
IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0LmguCisgICAgICAgIChXZWJDb3JlOjpGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0OjptdXRh
YmxlUmVzb3VyY2VSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoZWRSZXNvdXJjZVJl
cXVlc3Q6OnJlc291cmNlUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaGVkUmVzb3Vy
Y2VSZXF1ZXN0OjpjaGFyc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoZWRSZXNvdXJjZVJl
cXVlc3Q6OnNldENoYXJzZXQpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hlZFJlc291cmNlUmVx
dWVzdDo6b3B0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0
OjpzZXRPcHRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoZWRSZXNvdXJjZVJlcXVlc3Q6
OnByaW9yaXR5KToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoZWRSZXNvdXJjZVJlcXVlc3Q6OmZv
clByZWxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hlZFJlc291cmNlUmVxdWVzdDo6c2V0
Rm9yUHJlbG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0Ojpk
ZWZlcik6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0OjpzZXREZWZl
cik6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0OjphbGxvd3NDYWNo
aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoZWRSZXNvdXJjZVJlcXVlc3Q6OnNldENhY2hp
bmdQb2xpY3kpOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hlZFJlc291cmNlUmVxdWVzdDo6c2V0
T3JpZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoZWRSZXNvdXJjZVJlcXVlc3Q6OnJlbGVh
c2VPcmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hlZFJlc291cmNlUmVxdWVzdDo6b3Jp
Z2luKToKKyAgICAgICAgKiBsb2FkZXIvaWNvbi9JY29uTG9hZGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Okljb25Mb2FkZXI6OnN0YXJ0TG9hZGluZyk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL2NmL1dlYkNvcmVBVkNGUmVzb3VyY2VMb2FkZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViQ29yZUFWQ0ZSZXNvdXJjZUxvYWRlcjo6c3RhcnRMb2FkaW5nKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9XZWJDb3JlQVZG
UmVzb3VyY2VMb2FkZXIubW06CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlQVZGUmVzb3VyY2VM
b2FkZXI6OnN0YXJ0TG9hZGluZyk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jb2NvYS9X
ZWJDb3JlTlNVUkxTZXNzaW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jb2NvYS9X
ZWJDb3JlTlNVUkxTZXNzaW9uLm1tOgorICAgICAgICAqIHN2Zy9TVkdGRUltYWdlRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUltYWdlRWxlbWVudDo6cmVxdWVzdEltYWdlUmVz
b3VyY2UpOgorICAgICAgICAqIHN2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHRm9udEZhY2VVcmlFbGVtZW50Ojpsb2FkRm9udCk6CisgICAgICAgICog
c3ZnL1NWR1VzZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVXNlRWxlbWVudDo6
dXBkYXRlRXh0ZXJuYWxEb2N1bWVudCk6CisgICAgICAgICogeG1sL1hTTEltcG9ydFJ1bGUuY3Bw
OgorCiAyMDE2LTEwLTA1ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNv
bT4KIAogICAgICAgICBbU09VUF0gTW92ZSBnbG9iYWwgVExTIGVycm9ycyBoYW5kbGluZyBmcm9t
IFJlc291cmNlSGFuZGxlIHRvIFNvdXBOZXR3b3JrU2Vzc2lvbgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApp
bmRleCA1YjRkOTgyYWE1MjM4ZGZmYTU2ZjllM2JiMWE2MjE3YTkyM2FhMDU2Li4yZTZkODYyYjcx
MWZkNjI2OWY1OTNhZWEwNWRjZWY1MTc2NzAyZjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAt
NjMsNiArNjMsNyBAQCBzZXQoV2ViQ29yZV9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VC
Q09SRV9ESVJ9L2xvYWRlci9hcmNoaXZlIgogICAgICIke1dFQkNPUkVfRElSfS9sb2FkZXIvYXJj
aGl2ZS9taHRtbCIKICAgICAiJHtXRUJDT1JFX0RJUn0vbG9hZGVyL2NhY2hlIgorICAgICIke1dF
QkNPUkVfRElSfS9sb2FkZXIvZmV0Y2giCiAgICAgIiR7V0VCQ09SRV9ESVJ9L2xvYWRlci9pY29u
IgogICAgICIke1dFQkNPUkVfRElSfS9tYXRobWwiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BhZ2Ui
CkBAIC0xOTUzLDcgKzE5NTQsNiBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlLmNwcAogICAgIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUhh
bmRsZS5jcHAKICAgICBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCi0gICAg
bG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAKICAgICBsb2FkZXIvY2FjaGUv
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHAKICAgICBsb2FkZXIvY2FjaGUvQ2Fj
aGVkU1ZHRG9jdW1lbnQuY3BwCiAgICAgbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50UmVm
ZXJlbmNlLmNwcApAQCAtMTk2Miw2ICsxOTYyLDggQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAg
IGxvYWRlci9jYWNoZS9DYWNoZWRYU0xTdHlsZVNoZWV0LmNwcAogICAgIGxvYWRlci9jYWNoZS9N
ZW1vcnlDYWNoZS5jcHAKIAorICAgIGxvYWRlci9mZXRjaC9GZXRjaGVkUmVzb3VyY2VSZXF1ZXN0
LmNwcAorCiAgICAgbG9hZGVyL2ljb24vSWNvbkNvbnRyb2xsZXIuY3BwCiAgICAgbG9hZGVyL2lj
b24vSWNvbkRhdGFiYXNlLmNwcAogICAgIGxvYWRlci9pY29uL0ljb25EYXRhYmFzZUJhc2UuY3Bw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZSBiL1NvdXJjZS9X
ZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlCmluZGV4IGI3MDc5YjdmZmMyZDNlODI5N2NhNzk2YjBm
MjAyNzQzNDNmNTY4ZWEuLmRiYTRlOWMyZmUzMzA2NDhkZmM3ZWE2NmUwMTA5NmI5Y2Y4ODI2YmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlCkBAIC02MTYsNiArNjE2LDcgQEAgc2V0KFdlYkNv
cmVfRk9SV0FSRElOR19IRUFERVJTX0RJUkVDVE9SSUVTCiAgICAgbG9hZGVyL2FyY2hpdmUKICAg
ICBsb2FkZXIvY2FjaGUKICAgICBsb2FkZXIvY29jb2EKKyAgICBsb2FkZXIvZmV0Y2gKIAogICAg
IGxvYWRlci9hcmNoaXZlL2NmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3Jt
V2luLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW4uY21ha2UKaW5kZXggYTM4ZmUx
OTNlY2NhMzA3ZDE1OTVhYjRiYTM3YWYyNWM2YzUyMTBlNi4uYTY0ZDBmMzYwNjVkZmRmNmRkOTM3
ZDQ2YWRiNjdjNzQyNTViNjE1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1X
aW4uY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW4uY21ha2UKQEAgLTIxOCw2
ICsyMTgsNyBAQCBzZXQoV2ViQ29yZV9GT1JXQVJESU5HX0hFQURFUlNfRElSRUNUT1JJRVMKICAg
ICBsb2FkZXIvYXBwY2FjaGUKICAgICBsb2FkZXIvYXJjaGl2ZQogICAgIGxvYWRlci9jYWNoZQor
ICAgIGxvYWRlci9mZXRjaAogICAgIGxvYWRlci9pY29uCiAKICAgICBsb2FkZXIvYXJjaGl2ZS9j
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDdkZGQ4NTJhZmQyMzllMDQzMDQ0Yzc0ODI0ZmMzNzNhOGQ5ODQ2Y2EuLjlhNWM3Nzhl
NGJkYzk2ZWIwOTIzNDZlYjY0NzNiMDNkOTNhM2NlYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE0OTUsNiArMTQ5NSw4IEBA
CiAJCTQwOUVCREM1MTZCN0YzQ0EwMENCQTNGQyAvKiBKU0NTU0ZvbnRGYWNlTG9hZEV2ZW50LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQwOUVCREM0
MTZCN0YzQ0EwMENCQTNGQyAvKiBKU0NTU0ZvbnRGYWNlTG9hZEV2ZW50LmNwcCAqLzsgfTsKIAkJ
NDBFQ0FFN0UxNkI4QjY3MjAwQzM2MTAzIC8qIEpTRE9NRXJyb3IuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQwRUNBRTdEMTZCOEI2NzIwMEMzNjEwMyAv
KiBKU0RPTUVycm9yLmggKi87IH07CiAJCTQwRUNBRTgxMTZCOEI2OEEwMEMzNjEwMyAvKiBKU0RP
TUVycm9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQwRUNBRTgwMTZCOEI2OEEwMEMzNjEwMyAvKiBKU0RPTUVycm9yLmNwcCAqLzsgfTsKKwkJNDEw
NTJGMzgxREE1MDIyOTAwN0ZCRTdEIC8qIEZldGNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwNTJGMzYxREE1MDIy
NjAwN0ZCRTdEIC8qIEZldGNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwICovOyB9OworCQk0MTA1MkYz
OTFEQTUwMjM0MDA3RkJFN0QgLyogRmV0Y2hlZFJlc291cmNlUmVxdWVzdC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwNTJGMzcxREE1MDIyNjAwN0ZC
RTdEIC8qIEZldGNoZWRSZXNvdXJjZVJlcXVlc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTBCN0U3MjEwNDVGQUIwMDBEODIyNEYgLyogSlNN
ZXNzYWdlRXZlbnRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDEwQjdFNzExMDQ1RkFCMDAwRDgyMjRGIC8qIEpTTWVzc2FnZUV2ZW50Q3Vz
dG9tLmNwcCAqLzsgfTsKIAkJNDEyMzA4MUIxMzhDNDI5NzAwQkNDRkNBIC8qIFdlYkNvcmUuZnJh
bWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTNGMTlCMUEwODI0NUU1QTAwMUU5QUJDIC8qIFdlYkNvcmUuZnJhbWV3b3JrICovOyB9OwogCQk0
MTIzMDkxMzEzOEM0MkZGMDBCQ0NGQ0EgLyogSmF2YVNjcmlwdENvcmUuZnJhbWV3b3JrIGluIEZy
YW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjgyMTYyOTkwMjlG
NEZCNTAxMDAwMTMxIC8qIEphdmFTY3JpcHRDb3JlLmZyYW1ld29yayAqLzsgfTsKQEAgLTE5MTcs
OCArMTkxOSw2IEBACiAJCTUwMUJBQUE5MTM5NTBFMkMwMEY3QUNFQiAvKiBXaW5kUnVsZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTAxQkFBQTgxMzk1
MEUyQzAwRjdBQ0VCIC8qIFdpbmRSdWxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTA0QUFDQ0QxODM0NDU1OTAwRTNEOUJDIC8qIEluc3BlY3Rv
ck5vZGVGaW5kZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTA0QUFDQ0IxODM0NDU1OTAwRTNEOUJDIC8qIEluc3BlY3Rvck5vZGVGaW5kZXIuY3Bw
ICovOyB9OwogCQk1MDRBQUNDRTE4MzQ0NTU5MDBFM0Q5QkMgLyogSW5zcGVjdG9yTm9kZUZpbmRl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTA0QUFD
Q0MxODM0NDU1OTAwRTNEOUJDIC8qIEluc3BlY3Rvck5vZGVGaW5kZXIuaCAqLzsgfTsKLQkJNTA4
MUUzQzMzQ0U1ODBDMTZFRjhCNDhCIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MDgxRTNERjNDRkM4MEMx
NkVGOEI0OEIgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcCAqLzsgfTsKLQkJNTA4MUUzRTAz
Q0ZGODBDMTZFRjhCNDhCIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTA4MUUzRTEzRDAyODBDMTZFRjhCNDhC
IC8qIENhY2hlZFJlc291cmNlUmVxdWVzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTUwOENDQTRGMTNDRjEwNkIwMDMxNTFGMyAvKiBSZW5kZXJG
bG93VGhyZWFkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MDhDQ0E0RDEzQ0YxMDZCMDAzMTUxRjMgLyogUmVuZGVyRmxvd1RocmVhZC5oICovOyB9Owog
CQk1MDhDQ0E1MDEzQ0YxMDZCMDAzMTUxRjMgLyogUmVuZGVyRmxvd1RocmVhZC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MDhDQ0E0RTEzQ0YxMDZC
MDAzMTUxRjMgLyogUmVuZGVyRmxvd1RocmVhZC5jcHAgKi87IH07CiAJCTUwRDEwRDk5MTU0NUY1
NzYwMDk2RDI4OCAvKiBSZW5kZXJMYXllckZpbHRlckluZm8uY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTBEMTBEOTcxNTQ1RjU3NjAwOTZEMjg4IC8q
IFJlbmRlckxheWVyRmlsdGVySW5mby5jcHAgKi87IH07CkBAIC04NDI0LDYgKzg0MjQsOCBAQAog
CQk0MDlFQkRDNDE2QjdGM0NBMDBDQkEzRkMgLyogSlNDU1NGb250RmFjZUxvYWRFdmVudC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0NTU0ZvbnRGYWNlTG9hZEV2
ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDBFQ0FFN0QxNkI4QjY3MjAw
QzM2MTAzIC8qIEpTRE9NRXJyb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNET01FcnJvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MEVDQUU4MDE2QjhC
NjhBMDBDMzYxMDMgLyogSlNET01FcnJvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU0RPTUVycm9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NDEwNTJGMzYxREE1MDIyNjAwN0ZCRTdEIC8qIEZldGNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gRmV0Y2hlZFJlc291cmNlUmVxdWVz
dC5jcHA7IHBhdGggPSBmZXRjaC9GZXRjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEwNTJGMzcxREE1MDIyNjAwN0ZCRTdEIC8qIEZldGNoZWRS
ZXNvdXJjZVJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gRmV0Y2hl
ZFJlc291cmNlUmVxdWVzdC5oOyBwYXRoID0gZmV0Y2gvRmV0Y2hlZFJlc291cmNlUmVxdWVzdC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTBCN0U3MTEwNDVGQUIwMDBEODIyNEYg
LyogSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0MTE4OUVGNzFBRDgyMzI4MDBCOTBBMEQgLyogUmVhZGFibGVTdHJlYW1EZWZhdWx0
Q29udHJvbGxlci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVhZGFibGVTdHJlYW1EZWZh
dWx0Q29udHJvbGxlci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMjdENTM2
MEY4QUFCMUQwMEU0MjRGNSAvKiBTY3JpcHRTdGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBTY3JpcHRTdGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC04OTE5LDggKzg5MjEsNiBAQAogCQk1MDFCQUFBODEzOTUwRTJDMDBGN0FDRUIgLyog
V2luZFJ1bGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2luZFJ1bGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTA0QUFDQ0IxODM0NDU1OTAwRTNEOUJDIC8q
IEluc3BlY3Rvck5vZGVGaW5kZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSW5zcGVjdG9yTm9kZUZpbmRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTUwNEFBQ0NDMTgzNDQ1NTkwMEUzRDlCQyAvKiBJbnNwZWN0b3JOb2RlRmluZGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3Rvck5vZGVGaW5kZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTA4MUUzREYzQ0ZDODBDMTZFRjhCNDhCIC8qIENh
Y2hlZFJlc291cmNlUmVxdWVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJNTA4MUUzRTEzRDAyODBDMTZFRjhCNDhCIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUwOENDQTREMTNDRjEwNkIwMDMxNTFG
MyAvKiBSZW5kZXJGbG93VGhyZWFkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJlbmRlckZsb3dUaHJlYWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTA4Q0NB
NEUxM0NGMTA2QjAwMzE1MUYzIC8qIFJlbmRlckZsb3dUaHJlYWQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyRmxvd1RocmVhZC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTUwRDEwRDk3MTU0NUY1NzYwMDk2RDI4OCAvKiBSZW5kZXJMYXll
ckZpbHRlckluZm8uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVu
ZGVyTGF5ZXJGaWx0ZXJJbmZvLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1
ODkwLDYgKzE1ODkwLDE1IEBACiAJCQlwYXRoID0gbWh0bWw7CiAJCQlzb3VyY2VUcmVlID0gIjxn
cm91cD4iOwogCQl9OworCQk0MTA1MkYzNTFEQTUwMURGMDA3RkJFN0QgLyogZmV0Y2ggKi8gPSB7
CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTQxMDUyRjM2MURBNTAy
MjYwMDdGQkU3RCAvKiBGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcCAqLywKKwkJCQk0MTA1MkYz
NzFEQTUwMjI2MDA3RkJFN0QgLyogRmV0Y2hlZFJlc291cmNlUmVxdWVzdC5oICovLAorCQkJKTsK
KwkJCW5hbWUgPSBmZXRjaDsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTQx
NTBGOUVEMTJCNkUwOTkwMDA4Qzg2MCAvKiBzaGFkb3cgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMTk4MDQsOCArMTk4MTMsNiBAQAogCQkJCUU0N0I0QkU2
MEU3MTI0MTYwMDAzODg1NCAvKiBDYWNoZWRSZXNvdXJjZUhhbmRsZS5oICovLAogCQkJCUJDQjE2
QzEwMDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAgKi8sCiAJCQkJ
QkNCMTZDMTEwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFJlc291cmNlTG9hZGVyLmggKi8sCi0J
CQkJNTA4MUUzREYzQ0ZDODBDMTZFRjhCNDhCIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAg
Ki8sCi0JCQkJNTA4MUUzRTEzRDAyODBDMTZFRjhCNDhCIC8qIENhY2hlZFJlc291cmNlUmVxdWVz
dC5oICovLAogCQkJCTZDNjM4ODk0QTk2Q0NFRTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNvdXJjZVJl
cXVlc3RJbml0aWF0b3JzLmNwcCAqLywKIAkJCQk2QzYzODg5M0E5NkNDRUU1MEM4Qzk0NkMgLyog
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oICovLAogCQkJCUJDQjE2QzBBMDk3OUMz
QkQwMDQ2Nzc0MSAvKiBDYWNoZWRTY3JpcHQuY3BwICovLApAQCAtMjE0MDUsNiArMjE0MTIsNyBA
QAogCQkJCUE4RDJCMjUyMTI4N0E1NjAwMEFGNEREQSAvKiBjYWNoZSAqLywKIAkJCQk3RUU2ODQ3
MzEyRDI2RTU1MDBFNzk0MTUgLyogY2YgKi8sCiAJCQkJN0U0REUxMEIxOThCMTA4MTAwNTFDQjAy
IC8qIGNvY29hICovLAorCQkJCTQxMDUyRjM1MURBNTAxREYwMDdGQkU3RCAvKiBmZXRjaCAqLywK
IAkJCQk1MTI2RTZCNjBBMkUzQUVGMDA1QzI5RkEgLyogaWNvbiAqLywKIAkJCQk5M0ExRUFBMjBB
NTYzNEQ4MDA2OTYwQTAgLyogbWFjICovLAogCQkJCUExNDk3ODZDMUFCQUYzMzgwMENFRjdFNCAv
KiBDb250ZW50RmlsdGVyLmNwcCAqLywKQEAgLTIzOTU4LDcgKzIzOTY2LDYgQEAKIAkJCQlCQ0Ix
NkMyMjA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkUmVzb3VyY2VDbGllbnRXYWxrZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUU0N0I0QkU4MEU3MTI0MTYwMDAzODg1NCAvKiBDYWNoZWRSZXNvdXJj
ZUhhbmRsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNCMTZDMkEwOTc5QzNCRDAwNDY3NzQxIC8q
IENhY2hlZFJlc291cmNlTG9hZGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQk1MDgxRTNFMDNDRkY4
MEMxNkVGOEI0OEIgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk2QzYzODg5NUE5NkNDRUU1MEM4Qzk0NkMgLyogQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlh
dG9ycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNCMTZDMjQwOTc5QzNCRDAwNDY3NzQxIC8qIENh
Y2hlZFNjcmlwdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNENTMzNjQwRUQ2ODQ4OTAwODg3NDY4
IC8qIENhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTI0Njc0
LDYgKzI0NjgxLDcgQEAKIAkJCQlBODcxREUyODBBMTUyQUM4MDBCMTJBNjggLyogSFRNTEZyYW1l
U2V0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTg3MURFMkQwQTE1MkFDODAwQjEyQTY4
IC8qIEhUTUxIZWFkRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThFQTdDQjgwQTE5MkI5
QzAwQThFRjVGIC8qIEhUTUxIZWFkaW5nRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEw
NTJGMzkxREE1MDIzNDAwN0ZCRTdEIC8qIEZldGNoZWRSZXNvdXJjZVJlcXVlc3QuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUE4RUE3Q0FGMEExOTJCOUMwMEE4RUY1RiAvKiBIVE1MSFJFbGVtZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBODcxREUyNzBBMTUyQUM4MDBCMTJBNjggLyogSFRNTEh0bWxF
bGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODcxREUyQTBBMTUyQUM4MDBCMTJBNjggLyog
SFRNTElGcmFtZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjc3MDUsNyArMjc3MTMsNiBA
QAogCQkJCUJDQjE2QzFGMDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRSZXNvdXJjZS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlFNDdCNEJFOTBFNzEyNDE2MDAwMzg4NTQgLyogQ2FjaGVkUmVzb3Vy
Y2VIYW5kbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNCMTZDMjkwOTc5QzNCRDAwNDY3NzQx
IC8qIENhY2hlZFJlc291cmNlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTUwODFFM0Mz
M0NFNTgwQzE2RUY4QjQ4QiAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNkM2Mzg4OTZBOTZDQ0VFNTBDOEM5NDZDIC8qIENhY2hlZFJlc291cmNlUmVxdWVz
dEluaXRpYXRvcnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNCMTZDMjMwOTc5QzNCRDAwNDY3
NzQxIC8qIENhY2hlZFNjcmlwdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMTA0RjI0MzE0Qzcx
RjdBMDA5RTJDMjMgLyogQ2FjaGVkU1ZHRG9jdW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0z
MDQzNyw2ICszMDQ0NCw3IEBACiAJCQkJMTIwREUzRUQxQzg2Q0EzRTAwQjZENEREIC8qIFdlYkFu
aW1hdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwN0Q2Mzc0MTFCQjBCMTEzMDAyNTZDRTkg
LyogV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0gaW4gU291cmNlcyAqLywKIAkJCQlD
REEyOUEzMTFDQkY3NERBMDA5MDFDQ0YgLyogV2ViQVZQbGF5ZXJDb250cm9sbGVyLm1tIGluIFNv
dXJjZXMgKi8sCisJCQkJNDEwNTJGMzgxREE1MDIyOTAwN0ZCRTdEIC8qIEZldGNoZWRSZXNvdXJj
ZVJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTU2QzVCOUExODlGMzQ1NzAwODJEMTND
IC8qIFdlYkNvbnNvbGVBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDdFMDUyMjE2NTFD
MjgyMDBDMTIwMUYgLyogV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJMkQzRUY0NEIxOTE3OTE1QzAwMDM0MTg0IC8qIFdlYkNvcmVDQUxheWVyRXh0cmFzLm1t
IGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZh
Y2VTcmNWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5j
cHAKaW5kZXggOGM0YmU0ZjIwZDZjNTI5NGIxN2E3ZGVjNWFmMDY4Yzk2MTU0NmZmZC4uN2UyMTg3
NDA3MzVlYWU0NTdlNzhkNTY5NTE2YzA1YzBjZDhlZjhmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NGb250RmFjZVNyY1ZhbHVlLmNwcApAQCAtMjcsOSArMjcsOSBAQAogI2luY2x1ZGUgIkNT
U0ZvbnRGYWNlU3JjVmFsdWUuaCIKICNpbmNsdWRlICJDYWNoZWRGb250LmgiCiAjaW5jbHVkZSAi
Q2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKLSNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3Qu
aCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmgiCiAjaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5j
bHVkZSAiRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oIgogI2luY2x1ZGUgIk5vZGUuaCIKICNpbmNs
dWRlICJTVkdGb250RmFjZUVsZW1lbnQuaCIKQEAgLTEwMCw3ICsxMDAsNyBAQCBDYWNoZWRGb250
KiBDU1NGb250RmFjZVNyY1ZhbHVlOjpjYWNoZWRGb250KERvY3VtZW50KiBkb2N1bWVudCwgYm9v
bCBpc1NWRywgYm9vbAogICAgIFJlc291cmNlTG9hZGVyT3B0aW9ucyBvcHRpb25zID0gQ2FjaGVk
UmVzb3VyY2VMb2FkZXI6OmRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKTsKICAgICBvcHRp
b25zLmNvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb24gPSBpc0luaXRpYXRpbmdFbGVtZW50
SW5Vc2VyQWdlbnRTaGFkb3dUcmVlID8gQ29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbjo6
U2tpcFBvbGljeUNoZWNrIDogQ29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbjo6RG9Qb2xp
Y3lDaGVjazsKIAotICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVx
dWVzdChkb2N1bWVudC0+Y29tcGxldGVVUkwobV9yZXNvdXJjZSkpLCBvcHRpb25zKTsKKyAgICBG
ZXRjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50LT5j
b21wbGV0ZVVSTChtX3Jlc291cmNlKSksIG9wdGlvbnMpOwogICAgIHJlcXVlc3Quc2V0SW5pdGlh
dG9yKGNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMoKS5jc3MpOwogICAgIG1fY2FjaGVk
Rm9udCA9IGRvY3VtZW50LT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLnJlcXVlc3RGb250KFdURk1v
dmUocmVxdWVzdCksIGlzU1ZHKTsKICAgICByZXR1cm4gbV9jYWNoZWRGb250LmdldCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlU2V0VmFsdWUuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0ltYWdlU2V0VmFsdWUuY3BwCmluZGV4IGRkMTRlNzFkNDEyZDY2YTlh
YmUwMmYwYTFjMGY4YzYyOWM1M2NiNjQuLjkyMjBmMTZiYmQ0ZGY3NjkyYWYwNmU0NTY3Y2MwMzYy
N2E5ZjllMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZhbHVl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAKQEAgLTMw
LDEwICszMCwxMCBAQAogI2luY2x1ZGUgIkNTU1ByaW1pdGl2ZVZhbHVlLmgiCiAjaW5jbHVkZSAi
Q2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgotI2luY2x1
ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVx
dWVzdEluaXRpYXRvcnMuaCIKICNpbmNsdWRlICJDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaCIK
ICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkZldGNoZWRSZXNvdXJjZVJlcXVlc3Qu
aCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5o
PgogCkBAIC05OSw3ICs5OSw3IEBAIHN0ZDo6cGFpcjxDYWNoZWRJbWFnZSosIGZsb2F0PiBDU1NJ
bWFnZVNldFZhbHVlOjpsb2FkQmVzdEZpdEltYWdlKENhY2hlZFJlc291cmNlCiAgICAgICAgIC8v
IEFsbCBmb3JtcyBvZiBzY2FsZSBzaG91bGQgYmUgaW5jbHVkZWQ6IFBhZ2U6OnBhZ2VTY2FsZUZh
Y3RvcigpLCBGcmFtZTo6cGFnZVpvb21GYWN0b3IoKSwKICAgICAgICAgLy8gYW5kIGFueSBDU1Mg
dHJhbnNmb3Jtcy4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgxNjk4
CiAgICAgICAgIEltYWdlV2l0aFNjYWxlIGltYWdlID0gYmVzdEltYWdlRm9yU2NhbGVGYWN0b3Io
KTsKLSAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0
KGRvY3VtZW50LT5jb21wbGV0ZVVSTChpbWFnZS5pbWFnZVVSTCkpLCBvcHRpb25zKTsKKyAgICAg
ICAgRmV0Y2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChkb2N1bWVu
dC0+Y29tcGxldGVVUkwoaW1hZ2UuaW1hZ2VVUkwpKSwgb3B0aW9ucyk7CiAgICAgICAgIHJlcXVl
c3Quc2V0SW5pdGlhdG9yKGNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMoKS5jc3MpOwog
ICAgICAgICBpZiAob3B0aW9ucy5tb2RlID09IEZldGNoT3B0aW9uczo6TW9kZTo6Q29ycykgewog
ICAgICAgICAgICAgQVNTRVJUKGRvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NJbWFnZVZhbHVlLmNwcAppbmRleCA5ZGQ4ZWYyMmRlMDU3ZDdhYmFkMGQ3OTViOTQ3
Mjk2NzY3NjFiM2ZhLi5iNDc2ZGM0ODNiZWJjMWJkODBkODhhNzAzNmJiMzJlODUxMWRmZjFjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VWYWx1ZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuY3BwCkBAIC0yNiwxMSArMjYsMTEgQEAKICNp
bmNsdWRlICJDU1NWYWx1ZUtleXdvcmRzLmgiCiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKICNp
bmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgotI2luY2x1ZGUgIkNhY2hlZFJlc291cmNl
UmVxdWVzdC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaCIK
ICNpbmNsdWRlICJDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaCIKICNpbmNsdWRlICJEb2N1bWVu
dC5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJGZXRjaGVkUmVzb3VyY2VSZXF1
ZXN0LmgiCiAjaW5jbHVkZSAiTWVtb3J5Q2FjaGUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpA
QCAtNjUsNyArNjUsNyBAQCBDYWNoZWRJbWFnZSogQ1NTSW1hZ2VWYWx1ZTo6bG9hZEltYWdlKENh
Y2hlZFJlc291cmNlTG9hZGVyJiBsb2FkZXIsIGNvbnN0IFJlc291cgogICAgIGlmICghbV9hY2Nl
c3NlZEltYWdlKSB7CiAgICAgICAgIG1fYWNjZXNzZWRJbWFnZSA9IHRydWU7CiAKLSAgICAgICAg
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KG1fdXJsKSwgb3B0
aW9ucyk7CisgICAgICAgIEZldGNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJl
cXVlc3QobV91cmwpLCBvcHRpb25zKTsKICAgICAgICAgaWYgKG1faW5pdGlhdG9yTmFtZS5pc0Vt
cHR5KCkpCiAgICAgICAgICAgICByZXF1ZXN0LnNldEluaXRpYXRvcihjYWNoZWRSZXNvdXJjZVJl
cXVlc3RJbml0aWF0b3JzKCkuY3NzKTsKICAgICAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlUnVsZUltcG9ydC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVSdWxlSW1wb3J0LmNwcAppbmRleCAwY2JhYTlmMGUyNWIxNjhkMDA3MjIxMDZkNjU0YjQ1MTkz
MDFkYmEwLi4yZmU1OTgzMTRlYjE3MzM2ZDc2ZjhmYWJkZTVhZjlmM2QzOWI2ZmY1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlSW1wb3J0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVSdWxlSW1wb3J0LmNwcApAQCAtMjUsOSArMjUsOSBAQAogI2luY2x1
ZGUgIkNTU1N0eWxlU2hlZXQuaCIKICNpbmNsdWRlICJDYWNoZWRDU1NTdHlsZVNoZWV0LmgiCiAj
aW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKLSNpbmNsdWRlICJDYWNoZWRSZXNvdXJj
ZVJlcXVlc3QuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmgi
CiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0
LmgiCiAjaW5jbHVkZSAiTWVkaWFMaXN0LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIK
ICNpbmNsdWRlICJTdHlsZVNoZWV0Q29udGVudHMuaCIKQEAgLTExNSw3ICsxMTUsNyBAQCB2b2lk
IFN0eWxlUnVsZUltcG9ydDo6cmVxdWVzdFN0eWxlU2hlZXQoKQogCiAgICAgLy8gRklYTUU6IFNr
aXAgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgY2hlY2sgd2hlbiBzdHlsZXNoZWV0IGlzIGluIGEg
dXNlciBhZ2VudCBzaGFkb3cgdHJlZS4KICAgICAvLyBTZWUgPGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNDY2NjM+LgotICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCBy
ZXF1ZXN0KFJlc291cmNlUmVxdWVzdChhYnNVUkwpLCBtX3BhcmVudFN0eWxlU2hlZXQtPmNoYXJz
ZXQoKSk7CisgICAgRmV0Y2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVz
dChhYnNVUkwpLCBtX3BhcmVudFN0eWxlU2hlZXQtPmNoYXJzZXQoKSk7CiAgICAgcmVxdWVzdC5z
ZXRJbml0aWF0b3IoY2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycygpLmNzcyk7CiAgICAg
aWYgKG1fY2FjaGVkU2hlZXQpCiAgICAgICAgIG1fY2FjaGVkU2hlZXQtPnJlbW92ZUNsaWVudCgm
bV9zdHlsZVNoZWV0Q2xpZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0
cnVjdGlvbi5jcHAKaW5kZXggY2E5YTdhNDUxZDdiNTY4NWQzMTY5Yzc4NDQ1M2JjNWZiNDZiZmU4
NS4uNWNiMjU0ZTQ1NWY4MGI4NWQ4ZjMzOGNkY2Y1ZmUyZGY0NzM2YjMzNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAKQEAgLTI2LDEwICsyNiwxMCBA
QAogI2luY2x1ZGUgIkNTU1N0eWxlU2hlZXQuaCIKICNpbmNsdWRlICJDYWNoZWRDU1NTdHlsZVNo
ZWV0LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKLSNpbmNsdWRlICJDYWNo
ZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJDYWNoZWRYU0xTdHlsZVNoZWV0LmgiCiAj
aW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVk
ZSAiRmV0Y2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVk
ZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJYU0xTdHlsZVNoZWV0LmgiCkBAIC0xNDUsNyAr
MTQ1LDcgQEAgdm9pZCBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb246OmNoZWNrU3R5bGVTaGVldCgpCiAg
ICAgICAgICAgICB9IGVsc2UKICNlbmRpZgogICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
IENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChkb2N1bWVudCgp
LmNvbXBsZXRlVVJMKGhyZWYpKSk7CisgICAgICAgICAgICAgICAgRmV0Y2hlZFJlc291cmNlUmVx
dWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChkb2N1bWVudCgpLmNvbXBsZXRlVVJMKGhyZWYp
KSk7CiAgICAgICAgICAgICAgICAgU3RyaW5nIGNoYXJzZXQgPSBhdHRycy5nZXQoImNoYXJzZXQi
KTsKICAgICAgICAgICAgICAgICBpZiAoY2hhcnNldC5pc0VtcHR5KCkpCiAgICAgICAgICAgICAg
ICAgICAgIGNoYXJzZXQgPSBkb2N1bWVudCgpLmNoYXJzZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3Jp
cHRFbGVtZW50LmNwcAppbmRleCAyYjY5NTgxMTM3YmUyNTJmYzU4ZGY4YTFmODNiYjQ0MDMwY2Ew
MzYzLi43YjdmNDFmMzY0YjU2NGExYWVjNDIwMGZkMWJlYjlmMDA4MWIwMmVkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCkBAIC0yNSwxMyArMjUsMTMgQEAKICNpbmNsdWRlICJT
Y3JpcHRFbGVtZW50LmgiCiAKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgotI2lu
Y2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkNhY2hlZFNjcmlwdC5o
IgogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeS5oIgogI2luY2x1ZGUgIkNyb3NzT3Jp
Z2luQWNjZXNzQ29udHJvbC5oIgogI2luY2x1ZGUgIkN1cnJlbnRTY3JpcHRJbmNyZW1lbnRlci5o
IgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1ZGUg
IkZldGNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUg
IkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCkBAIC0yOTEsNyArMjkxLDcg
QEAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBTY3JpcHRFbGVtZW50OjpyZXF1
ZXN0U2NyaXB0V2l0aENhY2hlKGNvbnN0IFUKICAgICBSZXNvdXJjZUxvYWRlck9wdGlvbnMgb3B0
aW9ucyA9IENhY2hlZFJlc291cmNlTG9hZGVyOjpkZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25z
KCk7CiAgICAgb3B0aW9ucy5jb250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9uID0gaGFzS25v
d25Ob25jZSA/IENvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb246OlNraXBQb2xpY3lDaGVj
ayA6IENvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb246OkRvUG9saWN5Q2hlY2s7CiAKLSAg
ICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3Qoc291cmNlVVJM
KSwgb3B0aW9ucyk7CisgICAgRmV0Y2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNl
UmVxdWVzdChzb3VyY2VVUkwpLCBvcHRpb25zKTsKICAgICByZXF1ZXN0LnNldEFzUG90ZW50aWFs
bHlDcm9zc09yaWdpbihtX2VsZW1lbnQuYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihI
VE1MTmFtZXM6OmNyb3Nzb3JpZ2luQXR0ciksIGRvY3VtZW50KTsKIAogICAgIGRvY3VtZW50LmNv
bnRlbnRTZWN1cml0eVBvbGljeSgpLT51cGdyYWRlSW5zZWN1cmVSZXF1ZXN0SWZOZWVkZWQocmVx
dWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SW5z
ZWN1cmVSZXF1ZXN0VHlwZTo6TG9hZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxMaW5rRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVu
dC5jcHAKaW5kZXggYjg5MTc2ZDEzZTc2MjI2NmM0ZGExMTM1MmMzYWQ3ZjI5YTkxZjYxYS4uNWZk
MjlkZDI3OGUyMTJiZDFkOTYyZTVjNGEyZTk4Y2YxYjdmODM2MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTExpbmtFbGVtZW50LmNwcApAQCAtMzAsMTMgKzMwLDEzIEBACiAjaW5jbHVkZSAiQ2Fj
aGVkQ1NTU3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlLmgiCiAjaW5jbHVk
ZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKLSNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVl
c3QuaCIKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3kuaCIKICNpbmNsdWRlICJET01U
b2tlbkxpc3QuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAj
aW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkV2ZW50U2VuZGVyLmgiCisjaW5jbHVk
ZSAiRmV0Y2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVk
ZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgpAQCAtMjYx
LDcgKzI2MSw3IEBAIHZvaWQgSFRNTExpbmtFbGVtZW50Ojpwcm9jZXNzKCkKICAgICAgICAgT3B0
aW9uYWw8UmVzb3VyY2VMb2FkUHJpb3JpdHk+IHByaW9yaXR5OwogICAgICAgICBpZiAoIWlzQWN0
aXZlKQogICAgICAgICAgICAgcHJpb3JpdHkgPSBSZXNvdXJjZUxvYWRQcmlvcml0eTo6VmVyeUxv
dzsKLSAgICAgICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QodXJsLCBjaGFyc2V0LCBw
cmlvcml0eSk7CisgICAgICAgIEZldGNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCh1cmwsIGNo
YXJzZXQsIHByaW9yaXR5KTsKICAgICAgICAgcmVxdWVzdC5zZXRJbml0aWF0b3IodGhpcyk7CiAK
ICAgICAgICAgaWYgKGRvY3VtZW50KCkuY29udGVudFNlY3VyaXR5UG9saWN5KCktPmFsbG93U3R5
bGVXaXRoTm9uY2UoYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihIVE1MTmFtZXM6Om5v
bmNlQXR0cikpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1M
UmVzb3VyY2VQcmVsb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFJl
c291cmNlUHJlbG9hZGVyLmNwcAppbmRleCA1YmJkMzdiZjNhMzlhNDJlMTBjNjk3MGZlY2RiMTY4
ZWEwY2NkMWY0Li5mNWM1NmVhNDFhNjVjYTM4MzYxZDc5MTdiNzgyZDA0NTRiYWMzZjFjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUmVzb3VyY2VQcmVsb2FkZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxSZXNvdXJjZVByZWxvYWRl
ci5jcHAKQEAgLTQwLDEwICs0MCwxMCBAQCBVUkwgUHJlbG9hZFJlcXVlc3Q6OmNvbXBsZXRlVVJM
KERvY3VtZW50JiBkb2N1bWVudCkKICAgICByZXR1cm4gZG9jdW1lbnQuY29tcGxldGVVUkwobV9y
ZXNvdXJjZVVSTCwgbV9iYXNlVVJMLmlzRW1wdHkoKSA/IGRvY3VtZW50LmJhc2VVUkwoKSA6IG1f
YmFzZVVSTCk7CiB9CiAKLUNhY2hlZFJlc291cmNlUmVxdWVzdCBQcmVsb2FkUmVxdWVzdDo6cmVz
b3VyY2VSZXF1ZXN0KERvY3VtZW50JiBkb2N1bWVudCkKK0ZldGNoZWRSZXNvdXJjZVJlcXVlc3Qg
UHJlbG9hZFJlcXVlc3Q6OnJlc291cmNlUmVxdWVzdChEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAg
ICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVx
dWVzdChSZXNvdXJjZVJlcXVlc3QoY29tcGxldGVVUkwoZG9jdW1lbnQpKSk7CisgICAgRmV0Y2hl
ZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChjb21wbGV0ZVVSTChkb2N1
bWVudCkpKTsKICAgICByZXF1ZXN0LnNldEluaXRpYXRvcihtX2luaXRpYXRvcik7CiAgICAgcmVx
dWVzdC5zZXRBc1BvdGVudGlhbGx5Q3Jvc3NPcmlnaW4obV9jcm9zc09yaWdpbk1vZGUsIGRvY3Vt
ZW50KTsKICAgICByZXR1cm4gcmVxdWVzdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvcGFyc2VyL0hUTUxSZXNvdXJjZVByZWxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvSFRNTFJlc291cmNlUHJlbG9hZGVyLmgKaW5kZXggZjdmZjkxZjYxYjRkZTEzNThkZjRj
ZTAxYWQ2NGQ5MTIzZjI3ZjFhYS4uZTViMjNlM2Y2NzkxOGEyOGVhZTcxN2Q2ODJmYzlhN2QzNTJm
MDhjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFJlc291cmNl
UHJlbG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFJlc291cmNl
UHJlbG9hZGVyLmgKQEAgLTI3LDcgKzI3LDcgQEAKICNkZWZpbmUgSFRNTFJlc291cmNlUHJlbG9h
ZGVyX2gKIAogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlLmgiCi0jaW5jbHVkZSAiQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0LmgiCisjaW5jbHVkZSAiRmV0Y2hlZFJlc291cmNlUmVxdWVzdC5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQzLDcgKzQzLDcgQEAgcHVibGljOgogICAgIHsKICAg
ICB9CiAKLSAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVzb3VyY2VSZXF1ZXN0KERvY3VtZW50
Jik7CisgICAgRmV0Y2hlZFJlc291cmNlUmVxdWVzdCByZXNvdXJjZVJlcXVlc3QoRG9jdW1lbnQm
KTsKIAogICAgIGNvbnN0IFN0cmluZyYgY2hhcnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fY2hhcnNl
dDsgfQogICAgIGNvbnN0IFN0cmluZyYgbWVkaWEoKSBjb25zdCB7IHJldHVybiBtX21lZGlhQXR0
cmlidXRlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5Q
cmVmbGlnaHRDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpblBy
ZWZsaWdodENoZWNrZXIuY3BwCmluZGV4IGVhMjhkNDNjYzIyNTU5NzhjYzU2YjMyNDc0ODE4M2I1
ZTZjNzg2NzUuLjUxOTU4ZWFkYzIyNmZkODhlMmMyY2MxZmY1MWY1OTFlMjAwZGExNmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpblByZWZsaWdodENoZWNrZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpblByZWZsaWdodENoZWNr
ZXIuY3BwCkBAIC0zMywxMSArMzMsMTEgQEAKIAogI2luY2x1ZGUgIkNhY2hlZFJhd1Jlc291cmNl
LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKLSNpbmNsdWRlICJDYWNoZWRS
ZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3kuaCIKICNp
bmNsdWRlICJDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaCIKICNpbmNsdWRlICJDcm9zc09yaWdp
blByZWZsaWdodFJlc3VsdENhY2hlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRUaHJlYWRhYmxlTG9h
ZGVyLmgiCisjaW5jbHVkZSAiRmV0Y2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIklu
c3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVy
ZXMuaCIKICNpbmNsdWRlICJUaHJlYWRhYmxlTG9hZGVyQ2xpZW50LmgiCkBAIC0xMDksNyArMTA5
LDcgQEAgdm9pZCBDcm9zc09yaWdpblByZWZsaWdodENoZWNrZXI6OnN0YXJ0UHJlZmxpZ2h0KCkK
ICAgICBvcHRpb25zLnJlZGlyZWN0ID0gRmV0Y2hPcHRpb25zOjpSZWRpcmVjdDo6TWFudWFsOwog
ICAgIG9wdGlvbnMuY29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbiA9IENvbnRlbnRTZWN1
cml0eVBvbGljeUltcG9zaXRpb246OlNraXBQb2xpY3lDaGVjazsKIAotICAgIENhY2hlZFJlc291
cmNlUmVxdWVzdCBwcmVmbGlnaHRSZXF1ZXN0KGNyZWF0ZUFjY2Vzc0NvbnRyb2xQcmVmbGlnaHRS
ZXF1ZXN0KG1fcmVxdWVzdCwgbV9sb2FkZXIuc2VjdXJpdHlPcmlnaW4oKSksIG9wdGlvbnMpOwor
ICAgIEZldGNoZWRSZXNvdXJjZVJlcXVlc3QgcHJlZmxpZ2h0UmVxdWVzdChjcmVhdGVBY2Nlc3ND
b250cm9sUHJlZmxpZ2h0UmVxdWVzdChtX3JlcXVlc3QsIG1fbG9hZGVyLnNlY3VyaXR5T3JpZ2lu
KCkpLCBvcHRpb25zKTsKICAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVh
dHVyZXMoKS5yZXNvdXJjZVRpbWluZ0VuYWJsZWQoKSkKICAgICAgICAgcHJlZmxpZ2h0UmVxdWVz
dC5zZXRJbml0aWF0b3IobV9sb2FkZXIub3B0aW9ucygpLmluaXRpYXRvcik7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IDk3ZDg3NTU4MjY4OWU2YzJlYmIx
NTQ1N2UxYTE1YWRlMDdkZWYxMTIuLjNmYTE0ZWY5YjRhNzRiZjgwYWU2NmNlMzhmYTMyZDFjNGI1
MDdmNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcApAQCAtMTUx
OSw3ICsxNTE5LDcgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6c3RhcnRMb2FkaW5nTWFpblJlc291
cmNlKCkKICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJzdGFydExvYWRpbmdNYWluUmVzb3Vy
Y2U6IFN0YXJ0aW5nIGxvYWQgKGZyYW1lID0gJXAsIG1haW4gPSAlZCkiLCBtX2ZyYW1lLCBtX2Zy
YW1lLT5pc01haW5GcmFtZSgpKTsKIAogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSZXNvdXJj
ZUxvYWRlck9wdGlvbnM+IG1haW5SZXNvdXJjZUxvYWRPcHRpb25zKFNlbmRDYWxsYmFja3MsIFNu
aWZmQ29udGVudCwgQnVmZmVyRGF0YSwgQWxsb3dTdG9yZWRDcmVkZW50aWFscywgQ2xpZW50Q3Jl
ZGVudGlhbFBvbGljeTo6TWF5QXNrQ2xpZW50Rm9yQ3JlZGVudGlhbHMsIEZldGNoT3B0aW9uczo6
Q3JlZGVudGlhbHM6OkluY2x1ZGUsIFNraXBTZWN1cml0eUNoZWNrLCBGZXRjaE9wdGlvbnM6Ok1v
ZGU6Ok5vQ29ycywgSW5jbHVkZUNlcnRpZmljYXRlSW5mbywgQ29udGVudFNlY3VyaXR5UG9saWN5
SW1wb3NpdGlvbjo6U2tpcFBvbGljeUNoZWNrLCBEZWZlcnNMb2FkaW5nUG9saWN5OjpBbGxvd0Rl
ZmVyc0xvYWRpbmcsIENhY2hpbmdQb2xpY3k6OkFsbG93Q2FjaGluZyk7Ci0gICAgbV9tYWluUmVz
b3VyY2UgPSBtX2NhY2hlZFJlc291cmNlTG9hZGVyLT5yZXF1ZXN0TWFpblJlc291cmNlKENhY2hl
ZFJlc291cmNlUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QocmVxdWVzdCksIG1haW5SZXNvdXJjZUxv
YWRPcHRpb25zKSk7CisgICAgbV9tYWluUmVzb3VyY2UgPSBtX2NhY2hlZFJlc291cmNlTG9hZGVy
LT5yZXF1ZXN0TWFpblJlc291cmNlKHsgUmVzb3VyY2VSZXF1ZXN0KHJlcXVlc3QpLCBtYWluUmVz
b3VyY2VMb2FkT3B0aW9ucyB9KTsKIAogI2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCiAg
ICAgaWYgKG1fbWFpblJlc291cmNlICYmIG1fbWFpblJlc291cmNlLT5lcnJvck9jY3VycmVkKCkg
JiYgbV9mcmFtZS0+cGFnZSgpICYmIG1fbWFpblJlc291cmNlLT5yZXNvdXJjZUVycm9yKCkuZG9t
YWluKCkgPT0gQ29udGVudEV4dGVuc2lvbnM6OldlYktpdENvbnRlbnRCbG9ja2VyRG9tYWluKSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9h
ZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIu
Y3BwCmluZGV4IDNmNmNiYWEyNjI5ZTM0ZGQyOTBhZDdhYjAwNmFiOTE3NGM3ZWU1MTkuLjFiNzQy
MTQyZDdkNDZjZDY5MzJiMzg1M2IxN2QxZGYxYWY1MjliNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwCkBAIC0zMywxMiArMzMs
MTIgQEAKIAogI2luY2x1ZGUgIkNhY2hlZFJhd1Jlc291cmNlLmgiCiAjaW5jbHVkZSAiQ2FjaGVk
UmVzb3VyY2VMb2FkZXIuaCIKLSNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNp
bmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmgiCiAjaW5jbHVkZSAiQ3Jv
c3NPcmlnaW5BY2Nlc3NDb250cm9sLmgiCiAjaW5jbHVkZSAiQ3Jvc3NPcmlnaW5QcmVmbGlnaHRD
aGVja2VyLmgiCiAjaW5jbHVkZSAiQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZS5oIgog
I2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRmV0Y2hlZFJlc291cmNlUmVxdWVzdC5o
IgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRl
ICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKQEAgLTM2NSw3ICszNjUsNyBAQCB2b2lkIERv
Y3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6bG9hZFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYgcmVx
dWVzdCwgU2VjdXJpdHlDaAogICAgICAgICBvcHRpb25zLmNsaWVudENyZWRlbnRpYWxQb2xpY3kg
PSBtX3NhbWVPcmlnaW5SZXF1ZXN0ID8gQ2xpZW50Q3JlZGVudGlhbFBvbGljeTo6TWF5QXNrQ2xp
ZW50Rm9yQ3JlZGVudGlhbHMgOiBDbGllbnRDcmVkZW50aWFsUG9saWN5OjpDYW5ub3RBc2tDbGll
bnRGb3JDcmVkZW50aWFsczsKICAgICAgICAgb3B0aW9ucy5jb250ZW50U2VjdXJpdHlQb2xpY3lJ
bXBvc2l0aW9uID0gQ29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbjo6U2tpcFBvbGljeUNo
ZWNrOwogCi0gICAgICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCBuZXdSZXF1ZXN0KFdURk1vdmUo
cmVxdWVzdCksIG9wdGlvbnMpOworICAgICAgICBGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0IG5ld1Jl
cXVlc3QoV1RGTW92ZShyZXF1ZXN0KSwgb3B0aW9ucyk7CiAgICAgICAgIGlmIChSdW50aW1lRW5h
YmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnJlc291cmNlVGltaW5nRW5hYmxlZCgpKQog
ICAgICAgICAgICAgbmV3UmVxdWVzdC5zZXRJbml0aWF0b3IobV9vcHRpb25zLmluaXRpYXRvcik7
CiAgICAgICAgIG5ld1JlcXVlc3QubXV0YWJsZVJlc291cmNlUmVxdWVzdCgpLnNldEFsbG93Q29v
a2llcyhtX29wdGlvbnMuYWxsb3dDcmVkZW50aWFscyA9PSBBbGxvd1N0b3JlZENyZWRlbnRpYWxz
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5o
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggMzc5OTJl
MWI0NDUyNTEyNTQyMWE5Y2IyZGExMDNiNGE1Nzk4YjYwNi4uNDVjNjQ5ZGQwN2Y4OThiZGEzZGNk
NGQzYTY4ZThjMDg2MWQxOGNmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
Q2xpZW50LmgKQEAgLTYxLDcgKzYxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xh
c3MgQXV0aGVudGljYXRpb25DaGFsbGVuZ2U7CiAgICAgY2xhc3MgQ2FjaGVkRnJhbWU7Ci0gICAg
Y2xhc3MgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0OworICAgIGNsYXNzIEZldGNoZWRSZXNvdXJjZVJl
cXVlc3Q7CiAgICAgY2xhc3MgQ29sb3I7CiAgICAgY2xhc3MgRE9NV2luZG93RXh0ZW5zaW9uOwog
ICAgIGNsYXNzIERPTVdyYXBwZXJXb3JsZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9JbWFnZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2FkZXIu
Y3BwCmluZGV4IGMxYWMzYmU0MjY1MWZiMGZlYmYxYWMyZDIwZDNmNzY3NDZmYzgyMzEuLjhjOWU5
YTNjNjA4ZDM5OWE0MTFlMzczOTg1ZjZlMzYzYmM0MzYwZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ltYWdlTG9hZGVyLmNwcApAQCAtMjQsMTMgKzI0LDEzIEBACiAKICNpbmNsdWRlICJDYWNoZWRJ
bWFnZS5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCi0jaW5jbHVkZSAiQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9s
LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRXZlbnRTZW5k
ZXIuaCIKKyNpbmNsdWRlICJGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRnJh
bWUuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJIVE1MT2JqZWN0RWxlbWVu
dC5oIgpAQCAtMTc3LDcgKzE3Nyw3IEBAIHZvaWQgSW1hZ2VMb2FkZXI6OnVwZGF0ZUZyb21FbGVt
ZW50KCkKICAgICAgICAgb3B0aW9ucy5jb250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9uID0g
ZWxlbWVudCgpLmlzSW5Vc2VyQWdlbnRTaGFkb3dUcmVlKCkgPyBDb250ZW50U2VjdXJpdHlQb2xp
Y3lJbXBvc2l0aW9uOjpTa2lwUG9saWN5Q2hlY2sgOiBDb250ZW50U2VjdXJpdHlQb2xpY3lJbXBv
c2l0aW9uOjpEb1BvbGljeUNoZWNrOwogICAgICAgICBvcHRpb25zLnNhbWVPcmlnaW5EYXRhVVJM
RmxhZyA9IFNhbWVPcmlnaW5EYXRhVVJMRmxhZzo6U2V0OwogCi0gICAgICAgIENhY2hlZFJlc291
cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChkb2N1bWVudC5jb21wbGV0ZVVSTChz
b3VyY2VVUkkoYXR0cikpKSwgb3B0aW9ucyk7CisgICAgICAgIEZldGNoZWRSZXNvdXJjZVJlcXVl
c3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QoZG9jdW1lbnQuY29tcGxldGVVUkwoc291cmNlVVJJ
KGF0dHIpKSksIG9wdGlvbnMpOwogICAgICAgICByZXF1ZXN0LnNldEluaXRpYXRvcigmZWxlbWVu
dCgpKTsKIAogICAgICAgICByZXF1ZXN0LnNldEFzUG90ZW50aWFsbHlDcm9zc09yaWdpbihlbGVt
ZW50KCkuYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihIVE1MTmFtZXM6OmNyb3Nzb3Jp
Z2luQXR0ciksIGRvY3VtZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9M
aW5rTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmNwcAppbmRl
eCA2M2U5OWM1NTRiNDI4YWI3ODQ1M2YwYTAzNDdjZTdhOTA4YmFjZDA0Li4yNjdlNmNjMjYwMGQw
ZjNmMzg3M2I1MDhjZTM4M2NiMzI1N2Q3NTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvTGlua0xvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2Fk
ZXIuY3BwCkBAIC0zNiwxMCArMzYsMTAgQEAKICNpbmNsdWRlICJDU1NTdHlsZVNoZWV0LmgiCiAj
aW5jbHVkZSAiQ2FjaGVkQ1NTU3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNl
TG9hZGVyLmgiCi0jaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAi
Q29udGFpbmVyTm9kZS5oIgogI2luY2x1ZGUgIkNyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5oIgog
I2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRmV0Y2hlZFJlc291cmNlUmVxdWVzdC5o
IgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKICNp
bmNsdWRlICJGcmFtZVZpZXcuaCIKQEAgLTE1OCw3ICsxNTgsNyBAQCB2b2lkIExpbmtMb2FkZXI6
OnByZWxvYWRJZk5lZWRlZChjb25zdCBMaW5rUmVsQXR0cmlidXRlJiByZWxBdHRyaWJ1dGUsIGNv
bnN0IFVSTAogCiAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlc291cmNlUmVxdWVzdChkb2N1bWVudC5j
b21wbGV0ZVVSTChocmVmKSk7CiAgICAgcmVzb3VyY2VSZXF1ZXN0LnNldElnbm9yZUZvclJlcXVl
c3RDb3VudCh0cnVlKTsKLSAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgbGlua1JlcXVlc3QoV1RG
TW92ZShyZXNvdXJjZVJlcXVlc3QpLCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6ZGVmYXVsdENhY2hl
ZFJlc291cmNlT3B0aW9ucygpLCBDYWNoZWRSZXNvdXJjZTo6ZGVmYXVsdFByaW9yaXR5Rm9yUmVz
b3VyY2VUeXBlKHR5cGUudmFsdWUoKSkpOworICAgIEZldGNoZWRSZXNvdXJjZVJlcXVlc3QgbGlu
a1JlcXVlc3QoV1RGTW92ZShyZXNvdXJjZVJlcXVlc3QpLCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6
ZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpLCBDYWNoZWRSZXNvdXJjZTo6ZGVmYXVsdFBy
aW9yaXR5Rm9yUmVzb3VyY2VUeXBlKHR5cGUudmFsdWUoKSkpOwogICAgIGxpbmtSZXF1ZXN0LnNl
dEluaXRpYXRvcigibGluayIpOwogCiAgICAgbGlua1JlcXVlc3Quc2V0QXNQb3RlbnRpYWxseUNy
b3NzT3JpZ2luKGNyb3NzT3JpZ2luTW9kZSwgZG9jdW1lbnQpOwpAQCAtMjAyLDcgKzIwMiw3IEBA
IGJvb2wgTGlua0xvYWRlcjo6bG9hZExpbmsoY29uc3QgTGlua1JlbEF0dHJpYnV0ZSYgcmVsQXR0
cmlidXRlLCBjb25zdCBVUkwmIGhyZWYsCiAgICAgICAgIH0KICAgICAgICAgUmVzb3VyY2VMb2Fk
ZXJPcHRpb25zIG9wdGlvbnMgPSBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6ZGVmYXVsdENhY2hlZFJl
c291cmNlT3B0aW9ucygpOwogICAgICAgICBvcHRpb25zLmNvbnRlbnRTZWN1cml0eVBvbGljeUlt
cG9zaXRpb24gPSBDb250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9uOjpTa2lwUG9saWN5Q2hl
Y2s7Ci0gICAgICAgIG1fY2FjaGVkTGlua1Jlc291cmNlID0gZG9jdW1lbnQuY2FjaGVkUmVzb3Vy
Y2VMb2FkZXIoKS5yZXF1ZXN0TGlua1Jlc291cmNlKHR5cGUsIENhY2hlZFJlc291cmNlUmVxdWVz
dChSZXNvdXJjZVJlcXVlc3QoZG9jdW1lbnQuY29tcGxldGVVUkwoaHJlZikpLCBvcHRpb25zLCBw
cmlvcml0eSkpOworICAgICAgICBtX2NhY2hlZExpbmtSZXNvdXJjZSA9IGRvY3VtZW50LmNhY2hl
ZFJlc291cmNlTG9hZGVyKCkucmVxdWVzdExpbmtSZXNvdXJjZSh0eXBlLCB7IFJlc291cmNlUmVx
dWVzdChkb2N1bWVudC5jb21wbGV0ZVVSTChocmVmKSksIG9wdGlvbnMsIHByaW9yaXR5IH0pOwog
ICAgICAgICBpZiAobV9jYWNoZWRMaW5rUmVzb3VyY2UpCiAgICAgICAgICAgICBtX2NhY2hlZExp
bmtSZXNvdXJjZS0+YWRkQ2xpZW50KHRoaXMpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9NZWRpYVJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9NZWRpYVJlc291cmNlTG9hZGVyLmNwcAppbmRleCA5YzcyNjU4YTI5YzhkYTcwMTk1NWRl
ZmU4OWJiOTQwYjhjYWQyZTRiLi43ODkxMTQ2Y2MyYThiM2Y5MjA3NzIzYzI4NzhjYjQ5NjNmNmRi
NjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWVkaWFSZXNvdXJjZUxvYWRl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL01lZGlhUmVzb3VyY2VMb2FkZXIuY3Bw
CkBAIC0zMSw5ICszMSw5IEBACiAKICNpbmNsdWRlICJDYWNoZWRSYXdSZXNvdXJjZS5oIgogI2lu
Y2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCi0jaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0LmgiCiAjaW5jbHVkZSAiQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmgiCiAjaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5j
bHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4K
IApAQCAtNjcsNyArNjcsNyBAQCBSZWZQdHI8UGxhdGZvcm1NZWRpYVJlc291cmNlPiBNZWRpYVJl
c291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UoY29uc3QgUmVzb3VyYwogCiAgICAgLy8gRklY
TUU6IFdlIHNob3VsZCB0cnkgdG8gcmVtb3ZlIHRoZSBjb3B5IG9mIHJlcXVlc3Qgd2hlbiBjcmVh
cmluZyBjYWNoZVJlcXVlc3QuCiAgICAgLy8gRklYTUU6IFNraXAgQ29udGVudCBTZWN1cml0eSBQ
b2xpY3kgY2hlY2sgaWYgdGhlIGVsZW1lbnQgdGhhdCBpbml0aXRhdGVkIHRoaXMgcmVxdWVzdCBp
cyBpbiBhIHVzZXItYWdlbnQgc2hhZG93IHRyZWUuIFNlZSA8aHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE1NTUwNT4uCi0gICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IGNh
Y2hlUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QocmVxdWVzdCksIFJlc291cmNlTG9hZGVyT3B0aW9u
cyhTZW5kQ2FsbGJhY2tzLCBEb05vdFNuaWZmQ29udGVudCwgYnVmZmVyaW5nUG9saWN5LCBBbGxv
d1N0b3JlZENyZWRlbnRpYWxzLCBDbGllbnRDcmVkZW50aWFsUG9saWN5OjpNYXlBc2tDbGllbnRG
b3JDcmVkZW50aWFscywgRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6SW5jbHVkZSwgRG9TZWN1
cml0eUNoZWNrLCBGZXRjaE9wdGlvbnM6Ok1vZGU6Ok5vQ29ycywgRG9Ob3RJbmNsdWRlQ2VydGlm
aWNhdGVJbmZvLCBDb250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9uOjpEb1BvbGljeUNoZWNr
LCBEZWZlcnNMb2FkaW5nUG9saWN5OjpBbGxvd0RlZmVyc0xvYWRpbmcsIGNhY2hpbmdQb2xpY3kp
KTsKKyAgICBGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0IGNhY2hlUmVxdWVzdChSZXNvdXJjZVJlcXVl
c3QocmVxdWVzdCksIFJlc291cmNlTG9hZGVyT3B0aW9ucyhTZW5kQ2FsbGJhY2tzLCBEb05vdFNu
aWZmQ29udGVudCwgYnVmZmVyaW5nUG9saWN5LCBBbGxvd1N0b3JlZENyZWRlbnRpYWxzLCBDbGll
bnRDcmVkZW50aWFsUG9saWN5OjpNYXlBc2tDbGllbnRGb3JDcmVkZW50aWFscywgRmV0Y2hPcHRp
b25zOjpDcmVkZW50aWFsczo6SW5jbHVkZSwgRG9TZWN1cml0eUNoZWNrLCBGZXRjaE9wdGlvbnM6
Ok1vZGU6Ok5vQ29ycywgRG9Ob3RJbmNsdWRlQ2VydGlmaWNhdGVJbmZvLCBDb250ZW50U2VjdXJp
dHlQb2xpY3lJbXBvc2l0aW9uOjpEb1BvbGljeUNoZWNrLCBEZWZlcnNMb2FkaW5nUG9saWN5OjpB
bGxvd0RlZmVyc0xvYWRpbmcsIGNhY2hpbmdQb2xpY3kpKTsKIAogICAgIGNhY2hlUmVxdWVzdC5z
ZXRBc1BvdGVudGlhbGx5Q3Jvc3NPcmlnaW4obV9jcm9zc09yaWdpbk1vZGUsICptX2RvY3VtZW50
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlVGltaW5nSW5m
b3JtYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlVGltaW5nSW5mb3Jt
YXRpb24uY3BwCmluZGV4IDVkZTY2ZWQ1NWQxNTMzMWRjY2Y0MTgyYzQ4OTBjNmRkODI2Mjk5YjQu
LmNhYzllOGFlMmM1ZDgyMjZmNDgxNmU0YzIwYmNlNWE3OTNiZjM1MzUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZVRpbWluZ0luZm9ybWF0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VUaW1pbmdJbmZvcm1hdGlvbi5jcHAKQEAgLTI4
LDkgKzI4LDkgQEAKICNpbmNsdWRlICJSZXNvdXJjZVRpbWluZ0luZm9ybWF0aW9uLmgiCiAKICNp
bmNsdWRlICJDYWNoZWRSZXNvdXJjZS5oIgotI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVz
dC5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5j
bHVkZSAiRmV0Y2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5j
bHVkZSAiSFRNTEZyYW1lT3duZXJFbGVtZW50LmgiCiAjaW5jbHVkZSAiTG9hZFRpbWluZy5oIgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlVGltaW5nSW5mb3JtYXRp
b24uaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZVRpbWluZ0luZm9ybWF0aW9uLmgK
aW5kZXggODM2M2Q2MDQzMjUwNjk1N2UwMjgyZjY1NDc2ODNmMDdkMWM2MmU5Ny4uMjk4ZDcyZTFj
MTljZWY3ZDZkMzdlMmY1OTM3MTFlNDMxOGMxNTVjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1Jlc291cmNlVGltaW5nSW5mb3JtYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvUmVzb3VyY2VUaW1pbmdJbmZvcm1hdGlvbi5oCkBAIC0zNCw3ICszNCw3IEBACiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENhY2hlZFJlc291cmNlOwotY2xhc3MgQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0OworY2xhc3MgRmV0Y2hlZFJlc291cmNlUmVxdWVzdDsKIGNsYXNzIERv
Y3VtZW50OwogY2xhc3MgRnJhbWU7CiBjbGFzcyBMb2FkVGltaW5nOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1RleHRUcmFja0xvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvVGV4dFRyYWNrTG9hZGVyLmNwcAppbmRleCBlZWIyMDlkN2VkNzFhNDg3NDUzZDFkYzhl
ZTgyMGVkYTBiZTAyOGI0Li4wMDAyOWFlNDQ5MTYxZDFjNTQwMDRiMTNlMDYwODY5ZWIxMzdhMDIw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGV4dFRyYWNrTG9hZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvVGV4dFRyYWNrTG9hZGVyLmNwcApAQCAtMzEsMTAg
KzMxLDEwIEBACiAjaW5jbHVkZSAiVGV4dFRyYWNrTG9hZGVyLmgiCiAKICNpbmNsdWRlICJDYWNo
ZWRSZXNvdXJjZUxvYWRlci5oIgotI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgog
I2luY2x1ZGUgIkNhY2hlZFRleHRUcmFjay5oIgogI2luY2x1ZGUgIkNyb3NzT3JpZ2luQWNjZXNz
Q29udHJvbC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRmV0Y2hlZFJlc291
cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJTZWN1cml0eU9y
aWdpbi5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgpAQCAtMTU0LDcgKzE1NCw3IEBAIGJv
b2wgVGV4dFRyYWNrTG9hZGVyOjpsb2FkKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGNy
b3NzT3JpZ2luTW9kZSwgYm9vbCBpCiAgICAgUmVzb3VyY2VMb2FkZXJPcHRpb25zIG9wdGlvbnMg
PSBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6ZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpOwog
ICAgIG9wdGlvbnMuY29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbiA9IGlzSW5pdGlhdGlu
Z0VsZW1lbnRJblVzZXJBZ2VudFNoYWRvd1RyZWUgPyBDb250ZW50U2VjdXJpdHlQb2xpY3lJbXBv
c2l0aW9uOjpTa2lwUG9saWN5Q2hlY2sgOiBDb250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9u
OjpEb1BvbGljeUNoZWNrOwogCi0gICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IGN1ZVJlcXVlc3Qo
UmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50LT5jb21wbGV0ZVVSTCh1cmwpKSwgb3B0aW9ucyk7Cisg
ICAgRmV0Y2hlZFJlc291cmNlUmVxdWVzdCBjdWVSZXF1ZXN0KFJlc291cmNlUmVxdWVzdChkb2N1
bWVudC0+Y29tcGxldGVVUkwodXJsKSksIG9wdGlvbnMpOwogICAgIGN1ZVJlcXVlc3Quc2V0QXNQ
b3RlbnRpYWxseUNyb3NzT3JpZ2luKGNyb3NzT3JpZ2luTW9kZSwgKmRvY3VtZW50KTsKIAogICAg
IG1fcmVzb3VyY2UgPSBkb2N1bWVudC0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS5yZXF1ZXN0VGV4
dFRyYWNrKFdURk1vdmUoY3VlUmVxdWVzdCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuY3BwCmluZGV4IDM1MmZhNTM4ZjQxMjk1YmI4
MjQwYTgxYmM1MWVkNmFlMDQxNDUyOTQuLjQ0ZjVlNDc0MWM4MDQ0YThjNDQ4MGEzN2FhNjdlOTk1
Y2ViZmE1YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRD
U1NTdHlsZVNoZWV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
Q1NTU3R5bGVTaGVldC5jcHAKQEAgLTI5LDggKzI5LDggQEAKIAogI2luY2x1ZGUgIkNTU1N0eWxl
U2hlZXQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUNsaWVudFdhbGtlci5oIgotI2luY2x1
ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkNhY2hlZFN0eWxlU2hlZXRD
bGllbnQuaCIKKyNpbmNsdWRlICJGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAi
SFRUUEhlYWRlck5hbWVzLmgiCiAjaW5jbHVkZSAiSFRUUFBhcnNlcnMuaCIKICNpbmNsdWRlICJN
ZW1vcnlDYWNoZS5oIgpAQCAtNDEsNyArNDEsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LUNhY2hlZENTU1N0eWxlU2hlZXQ6OkNhY2hlZENTU1N0eWxlU2hlZXQoQ2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0JiYgcmVxdWVzdCwgU2Vzc2lvbklEIHNlc3Npb25JRCkKK0NhY2hlZENTU1N0eWxlU2hl
ZXQ6OkNhY2hlZENTU1N0eWxlU2hlZXQoRmV0Y2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3Qs
IFNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgOiBDYWNoZWRSZXNvdXJjZShXVEZNb3ZlKHJlcXVl
c3QpLCBDU1NTdHlsZVNoZWV0LCBzZXNzaW9uSUQpCiAgICAgLCBtX2RlY29kZXIoVGV4dFJlc291
cmNlRGVjb2Rlcjo6Y3JlYXRlKCJ0ZXh0L2NzcyIsIHJlcXVlc3QuY2hhcnNldCgpKSkKIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0
LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5oCmlu
ZGV4IDA4NDMzNzY3MzlkY2ZlNjhkMDRiOGMyYWViYTBjMzUzMTc5NDExZTMuLmNjMTQ5M2QzOTYw
NDRjN2JiODBkNTZhOTU1YTA0NjU0ZDk5OWM4M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQuaApAQCAtMzcsNyArMzcsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBDYWNoZWRDU1NTdHlsZVNoZWV0IGZpbmFsIDog
cHVibGljIENhY2hlZFJlc291cmNlIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIENhY2hlZENTU1N0
eWxlU2hlZXQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYsIFNlc3Npb25JRCk7CisgICAgICAgIENh
Y2hlZENTU1N0eWxlU2hlZXQoRmV0Y2hlZFJlc291cmNlUmVxdWVzdCYmLCBTZXNzaW9uSUQpOwog
ICAgICAgICB2aXJ0dWFsIH5DYWNoZWRDU1NTdHlsZVNoZWV0KCk7CiAKICAgICAgICAgZW51bSBj
bGFzcyBNSU1FVHlwZUNoZWNrIHsgU3RyaWN0LCBMYXggfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRGb250LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRGb250LmNwcAppbmRleCBlN2E1ZDI5NzU0YzEzM2M5ODE3OThiODFlYzlj
YTdiMWE0YTEzMTEzLi5hNTkxMTI5MjQ3NTU4ZmQ5YWUzNTA3ZTIwMDFiNzY0Y2M4YjYyYWQ3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuY3BwCkBAIC00Miw3ICs0
Miw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQ2FjaGVkRm9udDo6Q2FjaGVkRm9udChD
YWNoZWRSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBTZXNzaW9uSUQgc2Vzc2lvbklELCBUeXBl
IHR5cGUpCitDYWNoZWRGb250OjpDYWNoZWRGb250KEZldGNoZWRSZXNvdXJjZVJlcXVlc3QmJiBy
ZXF1ZXN0LCBTZXNzaW9uSUQgc2Vzc2lvbklELCBUeXBlIHR5cGUpCiAgICAgOiBDYWNoZWRSZXNv
dXJjZShXVEZNb3ZlKHJlcXVlc3QpLCB0eXBlLCBzZXNzaW9uSUQpCiAgICAgLCBtX2xvYWRJbml0
aWF0ZWQoZmFsc2UpCiAgICAgLCBtX2hhc0NyZWF0ZWRGb250RGF0YVdyYXBwaW5nUmVzb3VyY2Uo
ZmFsc2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkRm9u
dC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuaAppbmRleCBjYTc5
MTFlNTVjNWJiOWZlNzkzODcwOTEzMTZkOTk0YjFmZWIzOTEyLi5hMGEyZGFmNjE4YTM2N2VmMDI3
ZTk0OTc1ZGI2ZDhjOGNkMDA3MjNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkRm9udC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRGb250LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgdHlwZWRlZiBGb250VGFnZ2VkU2V0dGluZ3M8aW50
PiBGb250RmVhdHVyZVNldHRpbmdzOwogCiBjbGFzcyBDYWNoZWRGb250IDogcHVibGljIENhY2hl
ZFJlc291cmNlIHsKIHB1YmxpYzoKLSAgICBDYWNoZWRGb250KENhY2hlZFJlc291cmNlUmVxdWVz
dCYmLCBTZXNzaW9uSUQsIFR5cGUgPSBGb250UmVzb3VyY2UpOworICAgIENhY2hlZEZvbnQoRmV0
Y2hlZFJlc291cmNlUmVxdWVzdCYmLCBTZXNzaW9uSUQsIFR5cGUgPSBGb250UmVzb3VyY2UpOwog
ICAgIHZpcnR1YWwgfkNhY2hlZEZvbnQoKTsKIAogICAgIHZvaWQgYmVnaW5Mb2FkSWZOZWVkZWQo
Q2FjaGVkUmVzb3VyY2VMb2FkZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkSW1hZ2UuY3BwCmluZGV4IDJmMzYxMzA3YTkxZDRlMTg3NzhkNjNlYjRhODI2NmI2MTU1Yzc4
NzEuLmNhMGU3NDU5YTI4NTdhMGI4MmY1MTg0NTk5NDY4MzJiN2YxY2VhMDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcApAQCAtNTYsNyArNTYsNyBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUNhY2hlZEltYWdlOjpDYWNoZWRJbWFnZShDYWNoZWRS
ZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBTZXNzaW9uSUQgc2Vzc2lvbklEKQorQ2FjaGVkSW1h
Z2U6OkNhY2hlZEltYWdlKEZldGNoZWRSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBTZXNzaW9u
SUQgc2Vzc2lvbklEKQogICAgIDogQ2FjaGVkUmVzb3VyY2UoV1RGTW92ZShyZXF1ZXN0KSwgSW1h
Z2VSZXNvdXJjZSwgc2Vzc2lvbklEKQogewogICAgIHNldFN0YXR1cyhVbmtub3duKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5oIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmgKaW5kZXggOGNmY2M5MmQ4ZTFmMzI1
YzMxMjNhODRiZTI4YmYxN2U4MWQ3NWU5NS4uMDA0ZDZjZjI3MDliNjExYmMwMzhmYTkzNjg1MTIy
MTg5MGRkYjlmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZEltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmgK
QEAgLTQ4LDcgKzQ4LDcgQEAgY2xhc3MgQ2FjaGVkSW1hZ2UgZmluYWwgOiBwdWJsaWMgQ2FjaGVk
UmVzb3VyY2UsIHB1YmxpYyBJbWFnZU9ic2VydmVyIHsKICAgICBmcmllbmQgY2xhc3MgTWVtb3J5
Q2FjaGU7CiAKIHB1YmxpYzoKLSAgICBDYWNoZWRJbWFnZShDYWNoZWRSZXNvdXJjZVJlcXVlc3Qm
JiwgU2Vzc2lvbklEKTsKKyAgICBDYWNoZWRJbWFnZShGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0JiYs
IFNlc3Npb25JRCk7CiAgICAgQ2FjaGVkSW1hZ2UoSW1hZ2UqLCBTZXNzaW9uSUQpOwogICAgIC8v
IENvbnN0cnVjdG9yIHRvIHVzZSBmb3IgbWFudWFsbHkgY2FjaGVkIGltYWdlcy4KICAgICBDYWNo
ZWRJbWFnZShjb25zdCBVUkwmLCBJbWFnZSosIFNlc3Npb25JRCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJhd1Jlc291cmNlLmNwcAppbmRleCAzMzMyZTBjNWJi
ZTg5ZmZjMDlmMzZkNTk3YmZhNWMzMDRjMzhhOWU5Li41MmQ1YjNiNGUwYmEyMzBiNWJhYmVkYTU4
ZGVhNmYxY2U1ZThiYTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkUmF3UmVzb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSYXdSZXNvdXJjZS5jcHAKQEAgLTM2LDcgKzM2LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1DYWNoZWRSYXdSZXNvdXJjZTo6Q2FjaGVkUmF3UmVzb3VyY2UoQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0JiYgcmVxdWVzdCwgVHlwZSB0eXBlLCBTZXNzaW9uSUQgc2Vzc2lvbklEKQorQ2Fj
aGVkUmF3UmVzb3VyY2U6OkNhY2hlZFJhd1Jlc291cmNlKEZldGNoZWRSZXNvdXJjZVJlcXVlc3Qm
JiByZXF1ZXN0LCBUeXBlIHR5cGUsIFNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgOiBDYWNoZWRS
ZXNvdXJjZShXVEZNb3ZlKHJlcXVlc3QpLCB0eXBlLCBzZXNzaW9uSUQpCiAgICAgLCBtX2lkZW50
aWZpZXIoMCkKICAgICAsIG1fYWxsb3dFbmNvZGVkRGF0YVJlcGxhY2VtZW50KHRydWUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmF3UmVzb3VyY2UuaCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5oCmluZGV4IDA1
YTFhNWRjOTU1MDdmMmMxNTJkZjcwYmU4OWNkYzBjZmY0MTBlOGQuLmU5ZmU3NWVhNjE1NDc1OTcx
MjUxMjcwYjQ2MTMyOTAyY2I3NzU0NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRSYXdSZXNvdXJjZS5oCkBAIC0zMiw3ICszMiw3IEBAIGNsYXNzIFN1YnJlc291
cmNlTG9hZGVyOwogCiBjbGFzcyBDYWNoZWRSYXdSZXNvdXJjZSBmaW5hbCA6IHB1YmxpYyBDYWNo
ZWRSZXNvdXJjZSB7CiBwdWJsaWM6Ci0gICAgQ2FjaGVkUmF3UmVzb3VyY2UoQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0JiYsIFR5cGUsIFNlc3Npb25JRCk7CisgICAgQ2FjaGVkUmF3UmVzb3VyY2UoRmV0
Y2hlZFJlc291cmNlUmVxdWVzdCYmLCBUeXBlLCBTZXNzaW9uSUQpOwogCiAgICAgLy8gRklYTUU6
IEFzc29jaWF0ZWRVUkxMb2FkZXIgc2hvdWxkbid0IGJlIGEgRG9jdW1lbnRUaHJlYWRhYmxlTG9h
ZGVyIGFuZCB0aGVyZWZvcmUgc2hvdWxkbid0CiAgICAgLy8gdXNlIENhY2hlZFJhd1Jlc291cmNl
LiBIb3dldmVyLCBpdCBpcywgYW5kIGl0IG5lZWRzIHRvIGJlIGFibGUgdG8gZGVmZXIgbG9hZGlu
Zy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCmlu
ZGV4IDNiYWM5MTZiMTlkZjIxOGFhMjg3YjQzMjJkZmM4M2M2YTBkZGI4NTkuLjQ1MWNlY2FkODA2
YTAxNzgxZjZiODg4ZTdmZTkxNTc4NDY2NzQ3MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcApAQCAtMTE0LDcgKzExNCw3IEBAIHN0YXRpYyBz
dGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIGRlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWxG
b3JSZXNvdXJjZVR5cGUoCiAKIERFRklORV9ERUJVR19PTkxZX0dMT0JBTChSZWZDb3VudGVkTGVh
a0NvdW50ZXIsIGNhY2hlZFJlc291cmNlTGVha0NvdW50ZXIsICgiQ2FjaGVkUmVzb3VyY2UiKSk7
CiAKLUNhY2hlZFJlc291cmNlOjpDYWNoZWRSZXNvdXJjZShDYWNoZWRSZXNvdXJjZVJlcXVlc3Qm
JiByZXF1ZXN0LCBUeXBlIHR5cGUsIFNlc3Npb25JRCBzZXNzaW9uSUQpCitDYWNoZWRSZXNvdXJj
ZTo6Q2FjaGVkUmVzb3VyY2UoRmV0Y2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFR5cGUg
dHlwZSwgU2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICA6IG1fcmVzb3VyY2VSZXF1ZXN0KFdURk1v
dmUocmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCkpKQogICAgICwgbV9vcHRpb25zKHJl
cXVlc3Qub3B0aW9ucygpKQogICAgICwgbV9kZWNvZGVkRGF0YURlbGV0aW9uVGltZXIoKnRoaXMs
ICZDYWNoZWRSZXNvdXJjZTo6ZGVzdHJveURlY29kZWREYXRhLCBkZWFkRGVjb2RlZERhdGFEZWxl
dGlvbkludGVydmFsRm9yUmVzb3VyY2VUeXBlKHR5cGUpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaAppbmRleCBkNmEwMWI2OTZkNDYzY2QzM2QyNDFjYmZj
ZGJlM2E3OGNmYzUxZGE3Li43NTE3NmMyNThjODc0Y2VjNGNlYTUwYjg0NTAxOTc5NmU0MDAwNDY4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2Uu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaApAQCAt
NDYsNyArNDYsNyBAQCBjbGFzcyBNZW1vcnlDYWNoZTsKIGNsYXNzIENhY2hlZFJlc291cmNlQ2xp
ZW50OwogY2xhc3MgQ2FjaGVkUmVzb3VyY2VIYW5kbGVCYXNlOwogY2xhc3MgQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXI7Ci1jbGFzcyBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q7CitjbGFzcyBGZXRjaGVkUmVz
b3VyY2VSZXF1ZXN0OwogY2xhc3MgSW5zcGVjdG9yUmVzb3VyY2U7CiBjbGFzcyBTZWN1cml0eU9y
aWdpbjsKIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKQEAgLTk0LDcgKzk0LDcgQEAgcHVibGljOgogICAg
ICAgICBEZWNvZGVFcnJvcgogICAgIH07CiAKLSAgICBDYWNoZWRSZXNvdXJjZShDYWNoZWRSZXNv
dXJjZVJlcXVlc3QmJiwgVHlwZSwgU2Vzc2lvbklEKTsKKyAgICBDYWNoZWRSZXNvdXJjZShGZXRj
aGVkUmVzb3VyY2VSZXF1ZXN0JiYsIFR5cGUsIFNlc3Npb25JRCk7CiAgICAgdmlydHVhbCB+Q2Fj
aGVkUmVzb3VyY2UoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBsb2FkKENhY2hlZFJlc291cmNlTG9h
ZGVyJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291
cmNlTG9hZGVyLmNwcAppbmRleCAzN2NhN2MwOGRjN2E5YTZkM2I0NjhhNmY0MWVkMTlmNDExYjg5
NTE0Li42NjY1YzliOWI4NWFmOWYyZjBjYjM5Y2U0NDY0YTg2OTM0MGI2NTlmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAK
QEAgLTMyLDcgKzMyLDYgQEAKICNpbmNsdWRlICJDYWNoZWRGb250LmgiCiAjaW5jbHVkZSAiQ2Fj
aGVkSW1hZ2UuaCIKICNpbmNsdWRlICJDYWNoZWRSYXdSZXNvdXJjZS5oIgotI2luY2x1ZGUgIkNh
Y2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkNhY2hlZFNWR0ZvbnQuaCIKICNpbmNs
dWRlICJDYWNoZWRTY3JpcHQuaCIKICNpbmNsdWRlICJDYWNoZWRYU0xTdHlsZVNoZWV0LmgiCkBA
IC00Niw2ICs0NSw3IEBACiAjaW5jbHVkZSAiRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmgiCiAjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgorI2luY2x1ZGUg
IkZldGNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUg
IkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKQEAgLTg0LDcg
Kzg0LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMgQ2FjaGVkUmVzb3VyY2Uq
IGNyZWF0ZVJlc291cmNlKENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIENhY2hlZFJlc291cmNl
UmVxdWVzdCYmIHJlcXVlc3QsIFNlc3Npb25JRCBzZXNzaW9uSUQpCitzdGF0aWMgQ2FjaGVkUmVz
b3VyY2UqIGNyZWF0ZVJlc291cmNlKENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIEZldGNoZWRS
ZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBTZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIHN3
aXRjaCAodHlwZSkgewogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkltYWdlUmVzb3VyY2U6CkBA
IC0xNzYsNyArMTc2LDcgQEAgU2Vzc2lvbklEIENhY2hlZFJlc291cmNlTG9hZGVyOjpzZXNzaW9u
SUQoKSBjb25zdAogICAgIHJldHVybiBzZXNzaW9uSUQ7CiB9CiAKLUNhY2hlZFJlc291cmNlSGFu
ZGxlPENhY2hlZEltYWdlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdEltYWdlKENhY2hl
ZFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QpCitDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRJ
bWFnZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RJbWFnZShGZXRjaGVkUmVzb3VyY2VS
ZXF1ZXN0JiYgcmVxdWVzdCkKIHsKICAgICBpZiAoRnJhbWUqIGZyYW1lID0gdGhpcy0+ZnJhbWUo
KSkgewogICAgICAgICBpZiAoZnJhbWUtPmxvYWRlcigpLnBhZ2VEaXNtaXNzYWxFdmVudEJlaW5n
RGlzcGF0Y2hlZCgpICE9IEZyYW1lTG9hZGVyOjpQYWdlRGlzbWlzc2FsVHlwZTo6Tm9uZSkgewpA
QCAtMTg5LDExICsxODksMTEgQEAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkSW1hZ2U+IENh
Y2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0SW1hZ2UoQ2FjaGVkUmVzb3UKICAgICAgICAgfQog
ICAgIH0KIAotICAgIHJlcXVlc3Quc2V0RGVmZXIoY2xpZW50RGVmZXJzSW1hZ2UocmVxdWVzdC5y
ZXNvdXJjZVJlcXVlc3QoKS51cmwoKSkgPyBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OkRlZmVycmVk
QnlDbGllbnQgOiBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6Ok5vRGVmZXIpOworICAgIHJlcXVlc3Qu
c2V0RGVmZXIoY2xpZW50RGVmZXJzSW1hZ2UocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS51cmwo
KSkgPyBGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0OjpEZWZlcnJlZEJ5Q2xpZW50IDogRmV0Y2hlZFJl
c291cmNlUmVxdWVzdDo6Tm9EZWZlcik7CiAgICAgcmV0dXJuIGRvd25jYXN0PENhY2hlZEltYWdl
PihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OkltYWdlUmVzb3VyY2UsIFdURk1vdmUo
cmVxdWVzdCkpLmdldCgpKTsKIH0KIAotQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkRm9udD4g
Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RGb250KENhY2hlZFJlc291cmNlUmVxdWVzdCYm
IHJlcXVlc3QsIGJvb2wgaXNTVkcpCitDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRGb250PiBD
YWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdEZvbnQoRmV0Y2hlZFJlc291cmNlUmVxdWVzdCYm
IHJlcXVlc3QsIGJvb2wgaXNTVkcpCiB7CiAjaWYgRU5BQkxFKFNWR19GT05UUykKICAgICBpZiAo
aXNTVkcpCkBAIC0yMDUsMTggKzIwNSwxOCBAQCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRG
b250PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdEZvbnQoQ2FjaGVkUmVzb3VyYwogfQog
CiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQotQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkVGV4
dFRyYWNrPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFRleHRUcmFjayhDYWNoZWRSZXNv
dXJjZVJlcXVlc3QmJiByZXF1ZXN0KQorQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkVGV4dFRy
YWNrPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFRleHRUcmFjayhGZXRjaGVkUmVzb3Vy
Y2VSZXF1ZXN0JiYgcmVxdWVzdCkKIHsKICAgICByZXR1cm4gZG93bmNhc3Q8Q2FjaGVkVGV4dFRy
YWNrPihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlRleHRUcmFja1Jlc291cmNlLCBX
VEZNb3ZlKHJlcXVlc3QpKS5nZXQoKSk7CiB9CiAjZW5kaWYKIAotQ2FjaGVkUmVzb3VyY2VIYW5k
bGU8Q2FjaGVkQ1NTU3R5bGVTaGVldD4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RDU1NT
dHlsZVNoZWV0KENhY2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QpCitDYWNoZWRSZXNvdXJj
ZUhhbmRsZTxDYWNoZWRDU1NTdHlsZVNoZWV0PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVz
dENTU1N0eWxlU2hlZXQoRmV0Y2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QpCiB7CiAgICAg
cmV0dXJuIGRvd25jYXN0PENhY2hlZENTU1N0eWxlU2hlZXQ+KHJlcXVlc3RSZXNvdXJjZShDYWNo
ZWRSZXNvdXJjZTo6Q1NTU3R5bGVTaGVldCwgV1RGTW92ZShyZXF1ZXN0KSkuZ2V0KCkpOwogfQog
Ci1DYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRDU1NTdHlsZVNoZWV0PiBDYWNoZWRSZXNvdXJj
ZUxvYWRlcjo6cmVxdWVzdFVzZXJDU1NTdHlsZVNoZWV0KENhY2hlZFJlc291cmNlUmVxdWVzdCYm
IHJlcXVlc3QpCitDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRDU1NTdHlsZVNoZWV0PiBDYWNo
ZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFVzZXJDU1NTdHlsZVNoZWV0KEZldGNoZWRSZXNvdXJj
ZVJlcXVlc3QmJiByZXF1ZXN0KQogewogICAgIFVSTCB1cmwgPSBNZW1vcnlDYWNoZTo6cmVtb3Zl
RnJhZ21lbnRJZGVudGlmaWVySWZOZWVkZWQocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKS51cmwo
KSk7CiAKQEAgLTI0NiwyNSArMjQ2LDI1IEBAIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZENT
U1N0eWxlU2hlZXQ+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0VXNlckNTU1N0CiAgICAg
cmV0dXJuIHVzZXJTaGVldDsKIH0KIAotQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0
PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFNjcmlwdChDYWNoZWRSZXNvdXJjZVJlcXVl
c3QmJiByZXF1ZXN0KQorQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBDYWNoZWRS
ZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFNjcmlwdChGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0JiYgcmVx
dWVzdCkKIHsKICAgICByZXR1cm4gZG93bmNhc3Q8Q2FjaGVkU2NyaXB0PihyZXF1ZXN0UmVzb3Vy
Y2UoQ2FjaGVkUmVzb3VyY2U6OlNjcmlwdCwgV1RGTW92ZShyZXF1ZXN0KSkuZ2V0KCkpOwogfQog
CiAjaWYgRU5BQkxFKFhTTFQpCi1DYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRYU0xTdHlsZVNo
ZWV0PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFhTTFN0eWxlU2hlZXQoQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCkKK0NhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFhTTFN0
eWxlU2hlZXQ+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0WFNMU3R5bGVTaGVldChGZXRj
aGVkUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCkKIHsKICAgICByZXR1cm4gZG93bmNhc3Q8Q2Fj
aGVkWFNMU3R5bGVTaGVldD4ocmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpYU0xTdHls
ZVNoZWV0LCBXVEZNb3ZlKHJlcXVlc3QpKS5nZXQoKSk7CiB9CiAjZW5kaWYKIAotQ2FjaGVkUmVz
b3VyY2VIYW5kbGU8Q2FjaGVkU1ZHRG9jdW1lbnQ+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1
ZXN0U1ZHRG9jdW1lbnQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCkKK0NhY2hlZFJl
c291cmNlSGFuZGxlPENhY2hlZFNWR0RvY3VtZW50PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVx
dWVzdFNWR0RvY3VtZW50KEZldGNoZWRSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0KQogewogICAg
IHJldHVybiBkb3duY2FzdDxDYWNoZWRTVkdEb2N1bWVudD4ocmVxdWVzdFJlc291cmNlKENhY2hl
ZFJlc291cmNlOjpTVkdEb2N1bWVudFJlc291cmNlLCBXVEZNb3ZlKHJlcXVlc3QpKS5nZXQoKSk7
CiB9CiAKICNpZiBFTkFCTEUoTElOS19QUkVGRVRDSCkKLUNhY2hlZFJlc291cmNlSGFuZGxlPENh
Y2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdExpbmtSZXNvdXJjZShD
YWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0
KQorQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IENhY2hlZFJlc291cmNlTG9h
ZGVyOjpyZXF1ZXN0TGlua1Jlc291cmNlKENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIEZldGNo
ZWRSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0KQogewogICAgIEFTU0VSVChmcmFtZSgpKTsKICAg
ICBBU1NFUlQodHlwZSA9PSBDYWNoZWRSZXNvdXJjZTo6TGlua1ByZWZldGNoIHx8IHR5cGUgPT0g
Q2FjaGVkUmVzb3VyY2U6OkxpbmtTdWJyZXNvdXJjZSk7CkBAIC0yNzIsMTcgKzI3MiwxNyBAQCBD
YWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6
OnJlcXVlc3RMaW5rUmVzb3VyY2UoQwogfQogI2VuZGlmCiAKLUNhY2hlZFJlc291cmNlSGFuZGxl
PENhY2hlZFJhd1Jlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdE1lZGlhKENh
Y2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QpCitDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNo
ZWRSYXdSZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RNZWRpYShGZXRjaGVk
UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCkKIHsKICAgICByZXR1cm4gZG93bmNhc3Q8Q2FjaGVk
UmF3UmVzb3VyY2U+KHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6TWVkaWFSZXNvdXJj
ZSwgV1RGTW92ZShyZXF1ZXN0KSkuZ2V0KCkpOwogfQogCi1DYWNoZWRSZXNvdXJjZUhhbmRsZTxD
YWNoZWRSYXdSZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSYXdSZXNvdXJj
ZShDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0KQorQ2FjaGVkUmVzb3VyY2VIYW5kbGU8
Q2FjaGVkUmF3UmVzb3VyY2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmF3UmVzb3Vy
Y2UoRmV0Y2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QpCiB7CiAgICAgcmV0dXJuIGRvd25j
YXN0PENhY2hlZFJhd1Jlc291cmNlPihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlJh
d1Jlc291cmNlLCBXVEZNb3ZlKHJlcXVlc3QpKS5nZXQoKSk7CiB9CiAKLUNhY2hlZFJlc291cmNl
SGFuZGxlPENhY2hlZFJhd1Jlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdE1h
aW5SZXNvdXJjZShDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0KQorQ2FjaGVkUmVzb3Vy
Y2VIYW5kbGU8Q2FjaGVkUmF3UmVzb3VyY2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0
TWFpblJlc291cmNlKEZldGNoZWRSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0KQogewogICAgIHJl
dHVybiBkb3duY2FzdDxDYWNoZWRSYXdSZXNvdXJjZT4ocmVxdWVzdFJlc291cmNlKENhY2hlZFJl
c291cmNlOjpNYWluUmVzb3VyY2UsIFdURk1vdmUocmVxdWVzdCkpLmdldCgpKTsKIH0KQEAgLTQ5
OCw3ICs0OTgsNyBAQCBib29sIENhY2hlZFJlc291cmNlTG9hZGVyOjpjYW5SZXF1ZXN0SW5Db250
ZW50RGlzcG9zaXRpb25BdHRhY2htZW50U2FuZGJveChDYWNoZQogICAgIHJldHVybiBmYWxzZTsK
IH0KIAotYm9vbCBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6c2hvdWxkQ29udGludWVBZnRlck5vdGlm
eWluZ0xvYWRlZEZyb21NZW1vcnlDYWNoZShjb25zdCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QsIENhY2hlZFJlc291cmNlKiByZXNvdXJjZSkKK2Jvb2wgQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXI6OnNob3VsZENvbnRpbnVlQWZ0ZXJOb3RpZnlpbmdMb2FkZWRGcm9tTWVtb3J5Q2FjaGUoY29u
c3QgRmV0Y2hlZFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgQ2FjaGVkUmVzb3VyY2UqIHJlc291
cmNlKQogewogICAgIGlmICghcmVzb3VyY2UgfHwgIWZyYW1lKCkgfHwgcmVzb3VyY2UtPnN0YXR1
cygpICE9IENhY2hlZFJlc291cmNlOjpDYWNoZWQpCiAgICAgICAgIHJldHVybiB0cnVlOwpAQCAt
NTEzLDcgKzUxMyw3IEBAIGJvb2wgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnNob3VsZENvbnRpbnVl
QWZ0ZXJOb3RpZnlpbmdMb2FkZWRGcm9tTWVtb3J5Q2FjaGUoY29uCiAgICAgcmV0dXJuICFuZXdS
ZXF1ZXN0LmlzTnVsbCgpOwogfQogCi1ib29sIENhY2hlZFJlc291cmNlTG9hZGVyOjpzaG91bGRV
cGRhdGVDYWNoZWRSZXNvdXJjZVdpdGhDdXJyZW50UmVxdWVzdChjb25zdCBDYWNoZWRSZXNvdXJj
ZSYgcmVzb3VyY2UsIGNvbnN0IENhY2hlZFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK2Jvb2wg
Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnNob3VsZFVwZGF0ZUNhY2hlZFJlc291cmNlV2l0aEN1cnJl
bnRSZXF1ZXN0KGNvbnN0IENhY2hlZFJlc291cmNlJiByZXNvdXJjZSwgY29uc3QgRmV0Y2hlZFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKICAgICBpZiAocmVzb3VyY2UudHlwZSgpID09IENh
Y2hlZFJlc291cmNlOjpUeXBlOjpGb250UmVzb3VyY2UgfHwgcmVzb3VyY2UudHlwZSgpID09IENh
Y2hlZFJlc291cmNlOjpUeXBlOjpTVkdGb250UmVzb3VyY2UpIHsKICAgICAgICAgLy8gV2ViS2l0
IGlzIG5vdCBzdXBwb3J0aW5nIENPUlMgZm9yIGZvbnRzIChodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODY4MTcpLCBubyBuZWVkIHRvIHVwZGF0ZSB0aGUgcmVzb3VyY2Ug
YmVmb3JlIHJldXNpbmcgaXQuCkBAIC01NDYsNyArNTQ2LDcgQEAgYm9vbCBDYWNoZWRSZXNvdXJj
ZUxvYWRlcjo6c2hvdWxkVXBkYXRlQ2FjaGVkUmVzb3VyY2VXaXRoQ3VycmVudFJlcXVlc3QoY29u
c3QgQ2EKICAgICByZXR1cm4gcmVzb3VyY2Uub3B0aW9ucygpLm1vZGUgIT0gcmVxdWVzdC5vcHRp
b25zKCkubW9kZSB8fCByZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLmh0dHBPcmlnaW4oKSAhPSBy
ZXNvdXJjZS5yZXNvdXJjZVJlcXVlc3QoKS5odHRwT3JpZ2luKCk7CiB9CiAKLUNhY2hlZFJlc291
cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6dXBkYXRlQ2Fj
aGVkUmVzb3VyY2VXaXRoQ3VycmVudFJlcXVlc3QoY29uc3QgQ2FjaGVkUmVzb3VyY2UmIHJlc291
cmNlLCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0KQorQ2FjaGVkUmVzb3VyY2VIYW5k
bGU8Q2FjaGVkUmVzb3VyY2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjp1cGRhdGVDYWNoZWRSZXNv
dXJjZVdpdGhDdXJyZW50UmVxdWVzdChjb25zdCBDYWNoZWRSZXNvdXJjZSYgcmVzb3VyY2UsIEZl
dGNoZWRSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0KQogewogICAgIC8vIEZJWE1FOiBGb3IgYmVp
bmcgbG9hZGVkIHJlcXVlc3RzLCB3ZSBjdXJyZW50bHkgZG8gbm90IHVzZSB0aGUgc2FtZSByZXNv
dXJjZSwgYXMgdGhpcyBtYXkgaW5kdWNlIGVycm9ycyBpbiB0aGUgcmVzb3VyY2UgcmVzcG9uc2Ug
dGFpbnRpbmcuCiAgICAgLy8gV2Ugc2hvdWxkIGZpbmQgYSB3YXkgdG8gaW1wcm92ZSB0aGlzLgpA
QCAtNTkxLDcgKzU5MSw3IEBAIHN0YXRpYyBpbmxpbmUgU3RyaW5nIGFjY2VwdEhlYWRlclZhbHVl
RnJvbVR5cGUoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSkKICAgICB9CiB9CiAKLXZvaWQgQ2Fj
aGVkUmVzb3VyY2VMb2FkZXI6OnByZXBhcmVGZXRjaChDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBl
LCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCit2b2lkIENhY2hlZFJlc291cmNlTG9h
ZGVyOjpwcmVwYXJlRmV0Y2goQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgRmV0Y2hlZFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKICAgICAvLyBJbXBsZW1lbnRpbmcgc3RlcCAxIHRvIDcg
b2YgaHR0cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI2ZldGNoaW5nCiAKQEAgLTYwNSw3ICs2
MDUsNyBAQCB2b2lkIENhY2hlZFJlc291cmNlTG9hZGVyOjpwcmVwYXJlRmV0Y2goQ2FjaGVkUmVz
b3VyY2U6OlR5cGUgdHlwZSwgQ2FjaGVkUmVzb3VyYwogICAgIC8vIEZJWE1FOiBEZWNpZGUgd2hl
dGhlciB0byBzdXBwb3J0IGNsaWVudCBoaW50cwogfQogCi1DYWNoZWRSZXNvdXJjZUhhbmRsZTxD
YWNoZWRSZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJjZShDYWNo
ZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0KQor
Q2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IENhY2hlZFJlc291cmNlTG9hZGVy
OjpyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgRmV0Y2hlZFJlc291
cmNlUmVxdWVzdCYmIHJlcXVlc3QpCiB7CiAgICAgaWYgKERvY3VtZW50KiBkb2N1bWVudCA9IHRo
aXMtPmRvY3VtZW50KCkpCiAgICAgICAgIGRvY3VtZW50LT5jb250ZW50U2VjdXJpdHlQb2xpY3ko
KS0+dXBncmFkZUluc2VjdXJlUmVxdWVzdElmTmVlZGVkKHJlcXVlc3QubXV0YWJsZVJlc291cmNl
UmVxdWVzdCgpLCBDb250ZW50U2VjdXJpdHlQb2xpY3k6Okluc2VjdXJlUmVxdWVzdFR5cGU6Okxv
YWQpOwpAQCAtNzM4LDcgKzczOCw3IEBAIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291
cmNlPiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNlKENhY2hlCiAgICAgICAg
IGluY3JlbWVudFJlcXVlc3RDb3VudCgqcmVzb3VyY2UpOwogICAgIH0KIAotICAgIGlmICgocG9s
aWN5ICE9IFVzZSB8fCByZXNvdXJjZS0+c3RpbGxOZWVkc0xvYWQoKSkgJiYgQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0OjpOb0RlZmVyID09IGRlZmVyKSB7CisgICAgaWYgKChwb2xpY3kgIT0gVXNlIHx8
IHJlc291cmNlLT5zdGlsbE5lZWRzTG9hZCgpKSAmJiBGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0OjpO
b0RlZmVyID09IGRlZmVyKSB7CiAgICAgICAgIHJlc291cmNlLT5sb2FkKCp0aGlzKTsKIAogICAg
ICAgICAvLyBXZSBkb24ndCBzdXBwb3J0IGltbWVkaWF0ZSBsb2FkcywgYnV0IHdlIGRvIHN1cHBv
cnQgaW1tZWRpYXRlIGZhaWx1cmUuCkBAIC03NjIsNyArNzYyLDcgQEAgdm9pZCBDYWNoZWRSZXNv
dXJjZUxvYWRlcjo6ZG9jdW1lbnREaWRGaW5pc2hMb2FkRXZlbnQoKQogICAgIG1fdmFsaWRhdGVk
VVJMcy5jbGVhcigpOwogfQogCi1DYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4g
Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJldmFsaWRhdGVSZXNvdXJjZShDYWNoZWRSZXNvdXJjZVJl
cXVlc3QmJiByZXF1ZXN0LCBDYWNoZWRSZXNvdXJjZSYgcmVzb3VyY2UpCitDYWNoZWRSZXNvdXJj
ZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJldmFsaWRhdGVS
ZXNvdXJjZShGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgQ2FjaGVkUmVzb3VyY2Um
IHJlc291cmNlKQogewogICAgIEFTU0VSVChyZXNvdXJjZS5pbkNhY2hlKCkpOwogICAgIGF1dG8m
IG1lbW9yeUNhY2hlID0gTWVtb3J5Q2FjaGU6OnNpbmdsZXRvbigpOwpAQCAtNzg5LDcgKzc4OSw3
IEBAIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBDYWNoZWRSZXNvdXJjZUxv
YWRlcjo6cmV2YWxpZGF0ZVJlc291cmNlKENhCiAgICAgcmV0dXJuIG5ld1Jlc291cmNlOwogfQog
Ci1DYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXI6OmxvYWRSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBDYWNoZWRSZXNvdXJj
ZVJlcXVlc3QmJiByZXF1ZXN0KQorQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+
IENhY2hlZFJlc291cmNlTG9hZGVyOjpsb2FkUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlR5cGUg
dHlwZSwgRmV0Y2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QpCiB7CiAgICAgYXV0byYgbWVt
b3J5Q2FjaGUgPSBNZW1vcnlDYWNoZTo6c2luZ2xldG9uKCk7CiAgICAgQVNTRVJUKCFyZXF1ZXN0
LmFsbG93c0NhY2hpbmcoKSB8fCAhbWVtb3J5Q2FjaGUucmVzb3VyY2VGb3JSZXF1ZXN0KHJlcXVl
c3QucmVzb3VyY2VSZXF1ZXN0KCksIHNlc3Npb25JRCgpKSk7CkBAIC04MzgsNyArODM4LDcgQEAg
c3RhdGljIHZvaWQgbG9nUmVzb3VyY2VSZXZhbGlkYXRpb25EZWNpc2lvbihDYWNoZWRSZXNvdXJj
ZTo6UmV2YWxpZGF0aW9uRGVjaXNpb24KICAgICB9CiB9CiAKLUNhY2hlZFJlc291cmNlTG9hZGVy
OjpSZXZhbGlkYXRpb25Qb2xpY3kgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmRldGVybWluZVJldmFs
aWRhdGlvblBvbGljeShDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBDYWNoZWRSZXNvdXJjZVJl
cXVlc3QmIGNhY2hlZFJlc291cmNlUmVxdWVzdCwgQ2FjaGVkUmVzb3VyY2UqIGV4aXN0aW5nUmVz
b3VyY2UpIGNvbnN0CitDYWNoZWRSZXNvdXJjZUxvYWRlcjo6UmV2YWxpZGF0aW9uUG9saWN5IENh
Y2hlZFJlc291cmNlTG9hZGVyOjpkZXRlcm1pbmVSZXZhbGlkYXRpb25Qb2xpY3koQ2FjaGVkUmVz
b3VyY2U6OlR5cGUgdHlwZSwgRmV0Y2hlZFJlc291cmNlUmVxdWVzdCYgY2FjaGVkUmVzb3VyY2VS
ZXF1ZXN0LCBDYWNoZWRSZXNvdXJjZSogZXhpc3RpbmdSZXNvdXJjZSkgY29uc3QKIHsKICAgICBh
dXRvJiByZXF1ZXN0ID0gY2FjaGVkUmVzb3VyY2VSZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpOwog
CkBAIC04NzcsNyArODc3LDcgQEAgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OlJldmFsaWRhdGlvblBv
bGljeSBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6ZGV0ZXJtaW5lUmV2YWxpZGEKIAogICAgIC8vIERv
IG5vdCBsb2FkIGZyb20gY2FjaGUgaWYgaW1hZ2VzIGFyZSBub3QgZW5hYmxlZC4gVGhlIGxvYWQg
Zm9yIHRoaXMgaW1hZ2Ugd2lsbCBiZSBibG9ja2VkCiAgICAgLy8gaW4gQ2FjaGVkSW1hZ2U6Omxv
YWQuCi0gICAgaWYgKGNhY2hlZFJlc291cmNlUmVxdWVzdC5kZWZlcigpID09IENhY2hlZFJlc291
cmNlUmVxdWVzdDo6RGVmZXJyZWRCeUNsaWVudCkKKyAgICBpZiAoY2FjaGVkUmVzb3VyY2VSZXF1
ZXN0LmRlZmVyKCkgPT0gRmV0Y2hlZFJlc291cmNlUmVxdWVzdDo6RGVmZXJyZWRCeUNsaWVudCkK
ICAgICAgICAgcmV0dXJuIFJlbG9hZDsKIAogICAgIC8vIERvbid0IHJlbG9hZCByZXNvdXJjZXMg
d2hpbGUgcGFzdGluZy4KQEAgLTExNDcsNyArMTE0Nyw3IEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2VM
b2FkZXI6OmRlY3JlbWVudFJlcXVlc3RDb3VudChjb25zdCBDYWNoZWRSZXNvdXJjZSYgcmVzb3Vy
Y2UpCiAgICAgQVNTRVJUKG1fcmVxdWVzdENvdW50ID4gLTEpOwogfQogCi1DYWNoZWRSZXNvdXJj
ZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnByZWxvYWQoQ2Fj
aGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwg
UHJlbG9hZFR5cGUgcHJlbG9hZFR5cGUpCitDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNv
dXJjZT4gQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnByZWxvYWQoQ2FjaGVkUmVzb3VyY2U6OlR5cGUg
dHlwZSwgRmV0Y2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFByZWxvYWRUeXBlIHByZWxv
YWRUeXBlKQogewogICAgIC8vIFdlIGFsd2F5cyBwcmVsb2FkIHJlc291cmNlcyBvbiBpT1MuIFNl
ZSA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxMjc2Pi4KICAgICAv
LyBGSVhNRTogV2Ugc2hvdWxkIGNvbnNpZGVyIGFkZGluZyBhIHNldHRpbmcgdG8gdG9nZ2xlIGFn
Z3Jlc3NpdmUgcHJlbG9hZGluZyBiZWhhdmlvciBhcyBvcHBvc2VkCkBAIC0xMTkwLDcgKzExOTAs
NyBAQCB2b2lkIENhY2hlZFJlc291cmNlTG9hZGVyOjpjaGVja0ZvclBlbmRpbmdQcmVsb2Fkcygp
CiAgICAgbV9wZW5kaW5nUHJlbG9hZHMuY2xlYXIoKTsKIH0KIAotQ2FjaGVkUmVzb3VyY2VIYW5k
bGU8Q2FjaGVkUmVzb3VyY2U+IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UHJlbG9hZChD
YWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0
KQorQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IENhY2hlZFJlc291cmNlTG9h
ZGVyOjpyZXF1ZXN0UHJlbG9hZChDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBGZXRjaGVkUmVz
b3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCkKIHsKICAgICBpZiAocmVxdWVzdC5jaGFyc2V0KCkuaXNF
bXB0eSgpICYmICh0eXBlID09IENhY2hlZFJlc291cmNlOjpTY3JpcHQgfHwgdHlwZSA9PSBDYWNo
ZWRSZXNvdXJjZTo6Q1NTU3R5bGVTaGVldCkpCiAgICAgICAgIHJlcXVlc3Quc2V0Q2hhcnNldCht
X2RvY3VtZW50LT5jaGFyc2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaAppbmRleCA5OGVhMmJhMGIwZjliN2UwYzkyNTUyNTUx
Y2JhM2MyMzc3ODMwMTc0Li44YzE0ZjU4NWYwNDdjZGQwNWUyZDZlYjhkMGQzZDQ1Y2U4M2EyZmRh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VM
b2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VM
b2FkZXIuaApAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgIkNhY2hlUG9saWN5LmgiCiAjaW5j
bHVkZSAiQ2FjaGVkUmVzb3VyY2UuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUhhbmRsZS5o
IgotI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgorI2luY2x1ZGUgIkZldGNoZWRS
ZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRQcmlvcml0eS5oIgogI2lu
Y2x1ZGUgIlJlc291cmNlVGltaW5nSW5mb3JtYXRpb24uaCIKICNpbmNsdWRlICJUaW1lci5oIgpA
QCAtNzIsMjMgKzcyLDIzIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPENhY2hlZFJlc291cmNl
TG9hZGVyPiBjcmVhdGUoRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyKSB7IHJldHVybiBh
ZG9wdFJlZigqbmV3IENhY2hlZFJlc291cmNlTG9hZGVyKGRvY3VtZW50TG9hZGVyKSk7IH0KICAg
ICB+Q2FjaGVkUmVzb3VyY2VMb2FkZXIoKTsKIAotICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENh
Y2hlZEltYWdlPiByZXF1ZXN0SW1hZ2UoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYpOwotICAgIENh
Y2hlZFJlc291cmNlSGFuZGxlPENhY2hlZENTU1N0eWxlU2hlZXQ+IHJlcXVlc3RDU1NTdHlsZVNo
ZWV0KENhY2hlZFJlc291cmNlUmVxdWVzdCYmKTsKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxD
YWNoZWRDU1NTdHlsZVNoZWV0PiByZXF1ZXN0VXNlckNTU1N0eWxlU2hlZXQoQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0JiYpOwotICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4gcmVx
dWVzdFNjcmlwdChDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJik7Ci0gICAgQ2FjaGVkUmVzb3VyY2VI
YW5kbGU8Q2FjaGVkRm9udD4gcmVxdWVzdEZvbnQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYsIGJv
b2wgaXNTVkcpOwotICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJhd1Jlc291cmNlPiBy
ZXF1ZXN0TWVkaWEoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYpOwotICAgIENhY2hlZFJlc291cmNl
SGFuZGxlPENhY2hlZFJhd1Jlc291cmNlPiByZXF1ZXN0UmF3UmVzb3VyY2UoQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0JiYpOwotICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJhd1Jlc291cmNl
PiByZXF1ZXN0TWFpblJlc291cmNlKENhY2hlZFJlc291cmNlUmVxdWVzdCYmKTsKLSAgICBDYWNo
ZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTVkdEb2N1bWVudD4gcmVxdWVzdFNWR0RvY3VtZW50KENh
Y2hlZFJlc291cmNlUmVxdWVzdCYmKTsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRJ
bWFnZT4gcmVxdWVzdEltYWdlKEZldGNoZWRSZXNvdXJjZVJlcXVlc3QmJik7CisgICAgQ2FjaGVk
UmVzb3VyY2VIYW5kbGU8Q2FjaGVkQ1NTU3R5bGVTaGVldD4gcmVxdWVzdENTU1N0eWxlU2hlZXQo
RmV0Y2hlZFJlc291cmNlUmVxdWVzdCYmKTsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNo
ZWRDU1NTdHlsZVNoZWV0PiByZXF1ZXN0VXNlckNTU1N0eWxlU2hlZXQoRmV0Y2hlZFJlc291cmNl
UmVxdWVzdCYmKTsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IHJlcXVl
c3RTY3JpcHQoRmV0Y2hlZFJlc291cmNlUmVxdWVzdCYmKTsKKyAgICBDYWNoZWRSZXNvdXJjZUhh
bmRsZTxDYWNoZWRGb250PiByZXF1ZXN0Rm9udChGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0JiYsIGJv
b2wgaXNTVkcpOworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJhd1Jlc291cmNlPiBy
ZXF1ZXN0TWVkaWEoRmV0Y2hlZFJlc291cmNlUmVxdWVzdCYmKTsKKyAgICBDYWNoZWRSZXNvdXJj
ZUhhbmRsZTxDYWNoZWRSYXdSZXNvdXJjZT4gcmVxdWVzdFJhd1Jlc291cmNlKEZldGNoZWRSZXNv
dXJjZVJlcXVlc3QmJik7CisgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmF3UmVzb3Vy
Y2U+IHJlcXVlc3RNYWluUmVzb3VyY2UoRmV0Y2hlZFJlc291cmNlUmVxdWVzdCYmKTsKKyAgICBD
YWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTVkdEb2N1bWVudD4gcmVxdWVzdFNWR0RvY3VtZW50
KEZldGNoZWRSZXNvdXJjZVJlcXVlc3QmJik7CiAjaWYgRU5BQkxFKFhTTFQpCi0gICAgQ2FjaGVk
UmVzb3VyY2VIYW5kbGU8Q2FjaGVkWFNMU3R5bGVTaGVldD4gcmVxdWVzdFhTTFN0eWxlU2hlZXQo
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYpOworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hl
ZFhTTFN0eWxlU2hlZXQ+IHJlcXVlc3RYU0xTdHlsZVNoZWV0KEZldGNoZWRSZXNvdXJjZVJlcXVl
c3QmJik7CiAjZW5kaWYKICNpZiBFTkFCTEUoTElOS19QUkVGRVRDSCkKLSAgICBDYWNoZWRSZXNv
dXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gcmVxdWVzdExpbmtSZXNvdXJjZShDYWNoZWRSZXNv
dXJjZTo6VHlwZSwgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYpOworICAgIENhY2hlZFJlc291cmNl
SGFuZGxlPENhY2hlZFJlc291cmNlPiByZXF1ZXN0TGlua1Jlc291cmNlKENhY2hlZFJlc291cmNl
OjpUeXBlLCBGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0JiYpOwogI2VuZGlmCiAjaWYgRU5BQkxFKFZJ
REVPX1RSQUNLKQotICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFRleHRUcmFjaz4gcmVx
dWVzdFRleHRUcmFjayhDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJik7CisgICAgQ2FjaGVkUmVzb3Vy
Y2VIYW5kbGU8Q2FjaGVkVGV4dFRyYWNrPiByZXF1ZXN0VGV4dFRyYWNrKEZldGNoZWRSZXNvdXJj
ZVJlcXVlc3QmJik7CiAjZW5kaWYKIAogICAgIC8vIExvZ3MgYW4gYWNjZXNzIGRlbmllZCBtZXNz
YWdlIHRvIHRoZSBjb25zb2xlIGZvciB0aGUgc3BlY2lmaWVkIFVSTC4KQEAgLTEzMSw3ICsxMzEs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhclByZWxvYWRzKCk7CiAgICAgdm9pZCBjbGVhclBl
bmRpbmdQcmVsb2FkcygpOwogICAgIGVudW0gUHJlbG9hZFR5cGUgeyBJbXBsaWNpdFByZWxvYWQs
IEV4cGxpY2l0UHJlbG9hZCB9OwotICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291
cmNlPiBwcmVsb2FkKENhY2hlZFJlc291cmNlOjpUeXBlLCBDYWNoZWRSZXNvdXJjZVJlcXVlc3Qm
JiwgUHJlbG9hZFR5cGUpOworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNl
PiBwcmVsb2FkKENhY2hlZFJlc291cmNlOjpUeXBlLCBGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0JiYs
IFByZWxvYWRUeXBlKTsKICAgICB2b2lkIGNoZWNrRm9yUGVuZGluZ1ByZWxvYWRzKCk7CiAgICAg
dm9pZCBwcmludFByZWxvYWRTdGF0cygpOwogCkBAIC0xNTAsMTkgKzE1MCwxOSBAQCBwdWJsaWM6
CiBwcml2YXRlOgogICAgIGV4cGxpY2l0IENhY2hlZFJlc291cmNlTG9hZGVyKERvY3VtZW50TG9h
ZGVyKik7CiAKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gcmVxdWVz
dFJlc291cmNlKENhY2hlZFJlc291cmNlOjpUeXBlLCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJik7
Ci0gICAgdm9pZCBwcmVwYXJlRmV0Y2goQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIENhY2hlZFJlc291
cmNlUmVxdWVzdCYpOwotICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiBy
ZXZhbGlkYXRlUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYsIENhY2hlZFJlc291cmNl
Jik7Ci0gICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+IGxvYWRSZXNvdXJj
ZShDYWNoZWRSZXNvdXJjZTo6VHlwZSwgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYpOwotICAgIENh
Y2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiByZXF1ZXN0UHJlbG9hZChDYWNoZWRS
ZXNvdXJjZTo6VHlwZSwgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYpOworICAgIENhY2hlZFJlc291
cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiByZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6
OlR5cGUsIEZldGNoZWRSZXNvdXJjZVJlcXVlc3QmJik7CisgICAgdm9pZCBwcmVwYXJlRmV0Y2go
Q2FjaGVkUmVzb3VyY2U6OlR5cGUsIEZldGNoZWRSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICBDYWNo
ZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gcmV2YWxpZGF0ZVJlc291cmNlKEZldGNo
ZWRSZXNvdXJjZVJlcXVlc3QmJiwgQ2FjaGVkUmVzb3VyY2UmKTsKKyAgICBDYWNoZWRSZXNvdXJj
ZUhhbmRsZTxDYWNoZWRSZXNvdXJjZT4gbG9hZFJlc291cmNlKENhY2hlZFJlc291cmNlOjpUeXBl
LCBGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0JiYpOworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENh
Y2hlZFJlc291cmNlPiByZXF1ZXN0UHJlbG9hZChDYWNoZWRSZXNvdXJjZTo6VHlwZSwgRmV0Y2hl
ZFJlc291cmNlUmVxdWVzdCYmKTsKIAogICAgIGVudW0gUmV2YWxpZGF0aW9uUG9saWN5IHsgVXNl
LCBSZXZhbGlkYXRlLCBSZWxvYWQsIExvYWQgfTsKLSAgICBSZXZhbGlkYXRpb25Qb2xpY3kgZGV0
ZXJtaW5lUmV2YWxpZGF0aW9uUG9saWN5KENhY2hlZFJlc291cmNlOjpUeXBlLCBDYWNoZWRSZXNv
dXJjZVJlcXVlc3QmLCBDYWNoZWRSZXNvdXJjZSogZXhpc3RpbmdSZXNvdXJjZSkgY29uc3Q7Cisg
ICAgUmV2YWxpZGF0aW9uUG9saWN5IGRldGVybWluZVJldmFsaWRhdGlvblBvbGljeShDYWNoZWRS
ZXNvdXJjZTo6VHlwZSwgRmV0Y2hlZFJlc291cmNlUmVxdWVzdCYsIENhY2hlZFJlc291cmNlKiBl
eGlzdGluZ1Jlc291cmNlKSBjb25zdDsKIAotICAgIGJvb2wgc2hvdWxkVXBkYXRlQ2FjaGVkUmVz
b3VyY2VXaXRoQ3VycmVudFJlcXVlc3QoY29uc3QgQ2FjaGVkUmVzb3VyY2UmLCBjb25zdCBDYWNo
ZWRSZXNvdXJjZVJlcXVlc3QmKTsKLSAgICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRSZXNv
dXJjZT4gdXBkYXRlQ2FjaGVkUmVzb3VyY2VXaXRoQ3VycmVudFJlcXVlc3QoY29uc3QgQ2FjaGVk
UmVzb3VyY2UmLCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJik7CisgICAgYm9vbCBzaG91bGRVcGRh
dGVDYWNoZWRSZXNvdXJjZVdpdGhDdXJyZW50UmVxdWVzdChjb25zdCBDYWNoZWRSZXNvdXJjZSYs
IGNvbnN0IEZldGNoZWRSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICBDYWNoZWRSZXNvdXJjZUhhbmRs
ZTxDYWNoZWRSZXNvdXJjZT4gdXBkYXRlQ2FjaGVkUmVzb3VyY2VXaXRoQ3VycmVudFJlcXVlc3Qo
Y29uc3QgQ2FjaGVkUmVzb3VyY2UmLCBGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0JiYpOwogCi0gICAg
Ym9vbCBzaG91bGRDb250aW51ZUFmdGVyTm90aWZ5aW5nTG9hZGVkRnJvbU1lbW9yeUNhY2hlKGNv
bnN0IENhY2hlZFJlc291cmNlUmVxdWVzdCYsIENhY2hlZFJlc291cmNlKik7CisgICAgYm9vbCBz
aG91bGRDb250aW51ZUFmdGVyTm90aWZ5aW5nTG9hZGVkRnJvbU1lbW9yeUNhY2hlKGNvbnN0IEZl
dGNoZWRSZXNvdXJjZVJlcXVlc3QmLCBDYWNoZWRSZXNvdXJjZSopOwogICAgIGJvb2wgY2hlY2tJ
bnNlY3VyZUNvbnRlbnQoQ2FjaGVkUmVzb3VyY2U6OlR5cGUsIGNvbnN0IFVSTCYpIGNvbnN0Owog
ICAgIGJvb2wgYWxsb3dlZEJ5Q29udGVudFNlY3VyaXR5UG9saWN5KENhY2hlZFJlc291cmNlOjpU
eXBlLCBjb25zdCBVUkwmLCBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmLCBib29sKTsKIApA
QCAtMTgzLDcgKzE4Myw3IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPExpc3RIYXNo
U2V0PENhY2hlZFJlc291cmNlKj4+IG1fcHJlbG9hZHM7CiAgICAgc3RydWN0IFBlbmRpbmdQcmVs
b2FkIHsKICAgICAgICAgQ2FjaGVkUmVzb3VyY2U6OlR5cGUgbV90eXBlOwotICAgICAgICBDYWNo
ZWRSZXNvdXJjZVJlcXVlc3QgbV9yZXF1ZXN0OworICAgICAgICBGZXRjaGVkUmVzb3VyY2VSZXF1
ZXN0IG1fcmVxdWVzdDsKICAgICB9OwogICAgIERlcXVlPFBlbmRpbmdQcmVsb2FkPiBtX3BlbmRp
bmdQcmVsb2FkczsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWMz
ZWU2ZjI3YjU5OWM5ZjhjM2MwOGI3ZGVlMDBjYjQ3NDNkZDFmMS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDk1ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBHT09HTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
Ci0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVk
ZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCi0KLSNpbmNs
dWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgotI2luY2x1ZGUgIkNyb3NzT3JpZ2luQWNjZXNz
Q29udHJvbC5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCi0jaW5jbHVkZSAiRWxlbWVudC5oIgot
I2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0K
LUNhY2hlZFJlc291cmNlUmVxdWVzdDo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0KGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGNoYXJzZXQsIE9wdGlv
bmFsPFJlc291cmNlTG9hZFByaW9yaXR5PiBwcmlvcml0eSkKLSAgICA6IG1fcmVzb3VyY2VSZXF1
ZXN0KHJlc291cmNlUmVxdWVzdCkKLSAgICAsIG1fY2hhcnNldChjaGFyc2V0KQotICAgICwgbV9v
cHRpb25zKENhY2hlZFJlc291cmNlTG9hZGVyOjpkZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25z
KCkpCi0gICAgLCBtX3ByaW9yaXR5KHByaW9yaXR5KQotICAgICwgbV9mb3JQcmVsb2FkKGZhbHNl
KQotICAgICwgbV9kZWZlcihOb0RlZmVyKQotewotfQotCi1DYWNoZWRSZXNvdXJjZVJlcXVlc3Q6
OkNhY2hlZFJlc291cmNlUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJiByZXNvdXJjZVJlcXVlc3Qs
IGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYgb3B0aW9ucywgT3B0aW9uYWw8UmVzb3VyY2VM
b2FkUHJpb3JpdHk+IHByaW9yaXR5KQotICAgIDogbV9yZXNvdXJjZVJlcXVlc3QoV1RGTW92ZShy
ZXNvdXJjZVJlcXVlc3QpKQotICAgICwgbV9vcHRpb25zKG9wdGlvbnMpCi0gICAgLCBtX3ByaW9y
aXR5KHByaW9yaXR5KQotICAgICwgbV9mb3JQcmVsb2FkKGZhbHNlKQotICAgICwgbV9kZWZlcihO
b0RlZmVyKQotewotfQotCi12b2lkIENhY2hlZFJlc291cmNlUmVxdWVzdDo6c2V0SW5pdGlhdG9y
KFBhc3NSZWZQdHI8RWxlbWVudD4gZWxlbWVudCkKLXsKLSAgICBBU1NFUlQoIW1faW5pdGlhdG9y
RWxlbWVudCAmJiBtX2luaXRpYXRvck5hbWUuaXNFbXB0eSgpKTsKLSAgICBtX2luaXRpYXRvckVs
ZW1lbnQgPSBlbGVtZW50OwotfQotCi12b2lkIENhY2hlZFJlc291cmNlUmVxdWVzdDo6c2V0SW5p
dGlhdG9yKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSkKLXsKLSAgICBBU1NFUlQoIW1faW5pdGlh
dG9yRWxlbWVudCAmJiBtX2luaXRpYXRvck5hbWUuaXNFbXB0eSgpKTsKLSAgICBtX2luaXRpYXRv
ck5hbWUgPSBuYW1lOwotfQotCi1jb25zdCBBdG9taWNTdHJpbmcmIENhY2hlZFJlc291cmNlUmVx
dWVzdDo6aW5pdGlhdG9yTmFtZSgpIGNvbnN0Ci17Ci0gICAgaWYgKG1faW5pdGlhdG9yRWxlbWVu
dCkKLSAgICAgICAgcmV0dXJuIG1faW5pdGlhdG9yRWxlbWVudC0+bG9jYWxOYW1lKCk7Ci0gICAg
aWYgKCFtX2luaXRpYXRvck5hbWUuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gbV9pbml0aWF0
b3JOYW1lOwotCi0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21pY1N0cmluZz4gZGVmYXVs
dE5hbWUoInJlc291cmNlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7Ci0g
ICAgcmV0dXJuIGRlZmF1bHROYW1lOwotfQotCi12b2lkIENhY2hlZFJlc291cmNlUmVxdWVzdDo6
c2V0QXNQb3RlbnRpYWxseUNyb3NzT3JpZ2luKGNvbnN0IFN0cmluZyYgbW9kZSwgRG9jdW1lbnQm
IGRvY3VtZW50KQotewotICAgIEFTU0VSVChtX29wdGlvbnMubW9kZSA9PSBGZXRjaE9wdGlvbnM6
Ok1vZGU6Ok5vQ29ycyk7Ci0gICAgQVNTRVJUKGRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCkpOwot
Ci0gICAgbV9vcmlnaW4gPSBkb2N1bWVudC5zZWN1cml0eU9yaWdpbigpOwotCi0gICAgaWYgKG1v
ZGUuaXNOdWxsKCkpCi0gICAgICAgIHJldHVybjsKLSAgICBtX29wdGlvbnMubW9kZSA9IEZldGNo
T3B0aW9uczo6TW9kZTo6Q29yczsKLSAgICBtX29wdGlvbnMuY3JlZGVudGlhbHMgPSBlcXVhbExl
dHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShtb2RlLCAidXNlLWNyZWRlbnRpYWxzIikgPyBGZXRjaE9w
dGlvbnM6OkNyZWRlbnRpYWxzOjpJbmNsdWRlIDogRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6
U2FtZU9yaWdpbjsKLSAgICBtX29wdGlvbnMuYWxsb3dDcmVkZW50aWFscyA9IGVxdWFsTGV0dGVy
c0lnbm9yaW5nQVNDSUlDYXNlKG1vZGUsICJ1c2UtY3JlZGVudGlhbHMiKSA/IEFsbG93U3RvcmVk
Q3JlZGVudGlhbHMgOiBEb05vdEFsbG93U3RvcmVkQ3JlZGVudGlhbHM7Ci0KLSAgICB1cGRhdGVS
ZXF1ZXN0Rm9yQWNjZXNzQ29udHJvbChtX3Jlc291cmNlUmVxdWVzdCwgKmRvY3VtZW50LnNlY3Vy
aXR5T3JpZ2luKCksIG1fb3B0aW9ucy5hbGxvd0NyZWRlbnRpYWxzKTsKLX0KLQotfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFJlc291cmNlUmVxdWVzdC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMjdiNWUz
OTE1ZDk2MjgzYmE1ODVhZWE1N2Y3ZTcwMzEyODNhNWMzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRSZXNvdXJjZVJlcXVlc3QuaAorKysgL2Rldi9udWxsCkBAIC0xLDg0ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBHT09HTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIENhY2hl
ZFJlc291cmNlUmVxdWVzdF9oCi0jZGVmaW5lIENhY2hlZFJlc291cmNlUmVxdWVzdF9oCi0KLSNp
bmNsdWRlICJEb2N1bWVudExvYWRlci5oIgotI2luY2x1ZGUgIkVsZW1lbnQuaCIKLSNpbmNsdWRl
ICJSZXNvdXJjZUxvYWRQcmlvcml0eS5oIgotI2luY2x1ZGUgIlJlc291cmNlTG9hZGVyT3B0aW9u
cy5oIgotI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgotI2luY2x1ZGUgIlNlY3VyaXR5T3Jp
Z2luLmgiCi0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21p
Y1N0cmluZy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1jbGFzcyBEb2N1bWVudDsKLQotY2xh
c3MgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHsKLXB1YmxpYzoKLSAgICBlbnVtIERlZmVyT3B0aW9u
IHsgTm9EZWZlciwgRGVmZXJyZWRCeUNsaWVudCB9OwotCi0gICAgZXhwbGljaXQgQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgY2hhcnNl
dCA9IFN0cmluZygpLCBPcHRpb25hbDxSZXNvdXJjZUxvYWRQcmlvcml0eT4gPSBOdWxsb3B0KTsK
LSAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFJlc291
cmNlTG9hZGVyT3B0aW9ucyYsIE9wdGlvbmFsPFJlc291cmNlTG9hZFByaW9yaXR5PiA9IE51bGxv
cHQpOwotCi0gICAgUmVzb3VyY2VSZXF1ZXN0JiBtdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCkgeyBy
ZXR1cm4gbV9yZXNvdXJjZVJlcXVlc3Q7IH0KLSAgICBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
c291cmNlUmVxdWVzdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb3VyY2VSZXF1ZXN0OyB9Ci0gICAg
Y29uc3QgU3RyaW5nJiBjaGFyc2V0KCkgY29uc3QgeyByZXR1cm4gbV9jaGFyc2V0OyB9Ci0gICAg
dm9pZCBzZXRDaGFyc2V0KGNvbnN0IFN0cmluZyYgY2hhcnNldCkgeyBtX2NoYXJzZXQgPSBjaGFy
c2V0OyB9Ci0gICAgY29uc3QgUmVzb3VyY2VMb2FkZXJPcHRpb25zJiBvcHRpb25zKCkgY29uc3Qg
eyByZXR1cm4gbV9vcHRpb25zOyB9Ci0gICAgdm9pZCBzZXRPcHRpb25zKGNvbnN0IFJlc291cmNl
TG9hZGVyT3B0aW9ucyYgb3B0aW9ucykgeyBtX29wdGlvbnMgPSBvcHRpb25zOyB9Ci0gICAgY29u
c3QgT3B0aW9uYWw8UmVzb3VyY2VMb2FkUHJpb3JpdHk+JiBwcmlvcml0eSgpIGNvbnN0IHsgcmV0
dXJuIG1fcHJpb3JpdHk7IH0KLSAgICBib29sIGZvclByZWxvYWQoKSBjb25zdCB7IHJldHVybiBt
X2ZvclByZWxvYWQ7IH0KLSAgICB2b2lkIHNldEZvclByZWxvYWQoYm9vbCBmb3JQcmVsb2FkKSB7
IG1fZm9yUHJlbG9hZCA9IGZvclByZWxvYWQ7IH0KLSAgICBEZWZlck9wdGlvbiBkZWZlcigpIGNv
bnN0IHsgcmV0dXJuIG1fZGVmZXI7IH0KLSAgICB2b2lkIHNldERlZmVyKERlZmVyT3B0aW9uIGRl
ZmVyKSB7IG1fZGVmZXIgPSBkZWZlcjsgfQotICAgIHZvaWQgc2V0SW5pdGlhdG9yKFBhc3NSZWZQ
dHI8RWxlbWVudD4pOwotICAgIHZvaWQgc2V0SW5pdGlhdG9yKGNvbnN0IEF0b21pY1N0cmluZyYg
bmFtZSk7Ci0gICAgY29uc3QgQXRvbWljU3RyaW5nJiBpbml0aWF0b3JOYW1lKCkgY29uc3Q7Ci0g
ICAgYm9vbCBhbGxvd3NDYWNoaW5nKCkgY29uc3QgeyByZXR1cm4gbV9vcHRpb25zLmNhY2hpbmdQ
b2xpY3kgPT0gQ2FjaGluZ1BvbGljeTo6QWxsb3dDYWNoaW5nOyB9Ci0gICAgdm9pZCBzZXRDYWNo
aW5nUG9saWN5KENhY2hpbmdQb2xpY3kgcG9saWN5KSB7IG1fb3B0aW9ucy5jYWNoaW5nUG9saWN5
ID0gcG9saWN5OyB9Ci0KLSAgICB2b2lkIHNldEFzUG90ZW50aWFsbHlDcm9zc09yaWdpbihjb25z
dCBTdHJpbmcmLCBEb2N1bWVudCYpOwotICAgIHZvaWQgc2V0T3JpZ2luKFJlZlB0cjxTZWN1cml0
eU9yaWdpbj4mJiBvcmlnaW4pIHsgQVNTRVJUKCFtX29yaWdpbik7IG1fb3JpZ2luID0gV1RGTW92
ZShvcmlnaW4pOyB9Ci0gICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiByZWxlYXNlT3JpZ2luKCkg
eyByZXR1cm4gV1RGTW92ZShtX29yaWdpbik7IH0KLSAgICBTZWN1cml0eU9yaWdpbiogb3JpZ2lu
KCkgY29uc3QgeyByZXR1cm4gbV9vcmlnaW4uZ2V0KCk7IH0KLQotcHJpdmF0ZToKLSAgICBSZXNv
dXJjZVJlcXVlc3QgbV9yZXNvdXJjZVJlcXVlc3Q7Ci0gICAgU3RyaW5nIG1fY2hhcnNldDsKLSAg
ICBSZXNvdXJjZUxvYWRlck9wdGlvbnMgbV9vcHRpb25zOwotICAgIE9wdGlvbmFsPFJlc291cmNl
TG9hZFByaW9yaXR5PiBtX3ByaW9yaXR5OwotICAgIGJvb2wgbV9mb3JQcmVsb2FkOwotICAgIERl
ZmVyT3B0aW9uIG1fZGVmZXI7Ci0gICAgUmVmUHRyPEVsZW1lbnQ+IG1faW5pdGlhdG9yRWxlbWVu
dDsKLSAgICBBdG9taWNTdHJpbmcgbV9pbml0aWF0b3JOYW1lOwotICAgIFJlZlB0cjxTZWN1cml0
eU9yaWdpbj4gbV9vcmlnaW47Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3Vt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVudC5j
cHAKaW5kZXggMDhiNDAxNjlkMzNiNGMyNDFlYjFmYWE0MzNiMWNiNzgyYThiOTk1OC4uMThmOTM1
Y2I1MTY3ODAzNzczYWI3ZTU4MjdhOTIyMjQ4YWNkNjlhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnQuY3BwCkBAIC0yNyw3ICsyNyw3IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQ2FjaGVkU1ZHRG9jdW1lbnQ6OkNhY2hlZFNWR0Rv
Y3VtZW50KENhY2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFNlc3Npb25JRCBzZXNzaW9u
SUQpCitDYWNoZWRTVkdEb2N1bWVudDo6Q2FjaGVkU1ZHRG9jdW1lbnQoRmV0Y2hlZFJlc291cmNl
UmVxdWVzdCYmIHJlcXVlc3QsIFNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgOiBDYWNoZWRSZXNv
dXJjZShXVEZNb3ZlKHJlcXVlc3QpLCBTVkdEb2N1bWVudFJlc291cmNlLCBzZXNzaW9uSUQpCiAg
ICAgLCBtX2RlY29kZXIoVGV4dFJlc291cmNlRGVjb2Rlcjo6Y3JlYXRlKCJhcHBsaWNhdGlvbi94
bWwiKSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRT
VkdEb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3Vt
ZW50LmgKaW5kZXggMDY5NjNmODMyZTRhMzVkZjE4NzA2MjA2NzEyODY0OGYyYTFiMDBjOS4uNmZh
NGI5Yzk3MTNjZjQ4NTJjZGExNGZmZDExZDU2ZDRmM2ZjMjhkZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50LmgKQEAgLTMyLDcgKzMyLDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDYWNoZWRTVkdEb2N1bWVudCBmaW5hbCA6IHB1
YmxpYyBDYWNoZWRSZXNvdXJjZSB7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgQ2FjaGVkU1ZHRG9j
dW1lbnQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYsIFNlc3Npb25JRCk7CisgICAgZXhwbGljaXQg
Q2FjaGVkU1ZHRG9jdW1lbnQoRmV0Y2hlZFJlc291cmNlUmVxdWVzdCYmLCBTZXNzaW9uSUQpOwog
ICAgIHZpcnR1YWwgfkNhY2hlZFNWR0RvY3VtZW50KCk7CiAKICAgICBTVkdEb2N1bWVudCogZG9j
dW1lbnQoKSBjb25zdCB7IHJldHVybiBtX2RvY3VtZW50LmdldCgpOyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnRSZWZlcmVuY2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0RvY3VtZW50UmVmZXJlbmNl
LmNwcAppbmRleCAxMGNmM2EzZmFhOGRjM2M4MjhjNTk5OTYxMDEzZmM5Mzc1MGNiMDIyLi5iOWU1
OThmYjAyYzIwNDg5Yjc1ZDZkNDVhZGI2MDFhMjM5OTZjZWEzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRG9jdW1lbnRSZWZlcmVuY2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdEb2N1bWVudFJlZmVyZW5jZS5j
cHAKQEAgLTI4LDkgKzI4LDkgQEAKIAogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlSGFuZGxlLmgi
CiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKLSNpbmNsdWRlICJDYWNoZWRSZXNv
dXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3Jz
LmgiCiAjaW5jbHVkZSAiQ2FjaGVkU1ZHRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJGZXRjaGVkUmVz
b3VyY2VSZXF1ZXN0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTQsNyArNTQsNyBA
QCB2b2lkIENhY2hlZFNWR0RvY3VtZW50UmVmZXJlbmNlOjpsb2FkKENhY2hlZFJlc291cmNlTG9h
ZGVyJiBsb2FkZXIsIGNvbnN0IFJlc291cgogCiAgICAgYXV0byBmZXRjaE9wdGlvbnMgPSBvcHRp
b25zOwogICAgIGZldGNoT3B0aW9ucy5tb2RlID0gRmV0Y2hPcHRpb25zOjpNb2RlOjpTYW1lT3Jp
Z2luOwotICAgIENhY2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNlUmVxdWVzdChs
b2FkZXIuZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwobV91cmwpKSwgZmV0Y2hPcHRpb25zKTsKKyAg
ICBGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGxvYWRlci5k
b2N1bWVudCgpLT5jb21wbGV0ZVVSTChtX3VybCkpLCBmZXRjaE9wdGlvbnMpOwogICAgIHJlcXVl
c3Quc2V0SW5pdGlhdG9yKGNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMoKS5jc3MpOwog
ICAgIG1fZG9jdW1lbnQgPSBsb2FkZXIucmVxdWVzdFNWR0RvY3VtZW50KFdURk1vdmUocmVxdWVz
dCkpOwogICAgIGlmIChtX2RvY3VtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFNWR0ZvbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFNWR0ZvbnQuY3BwCmluZGV4IGNjNzI3ODUxYTg5YjdkMjFjMmNiZDBhYTA1NzE3N2Jm
MTJkZDc5YmQuLmEzMzVhOTcwZGU0OGE4ODk5OWJmN2MxNDg0YmI0OWNhY2FmNzhiMzQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdGb250LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRm9udC5jcHAKQEAgLTQyLDcg
KzQyLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1DYWNoZWRTVkdGb250OjpDYWNoZWRT
VkdGb250KENhY2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFNlc3Npb25JRCBzZXNzaW9u
SUQpCitDYWNoZWRTVkdGb250OjpDYWNoZWRTVkdGb250KEZldGNoZWRSZXNvdXJjZVJlcXVlc3Qm
JiByZXF1ZXN0LCBTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAgIDogQ2FjaGVkRm9udChXVEZNb3Zl
KHJlcXVlc3QpLCBzZXNzaW9uSUQsIFNWR0ZvbnRSZXNvdXJjZSkKICAgICAsIG1fZXh0ZXJuYWxT
VkdGb250RWxlbWVudChudWxscHRyKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFNWR0ZvbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRTVkdGb250LmgKaW5kZXggNDQyNGEwZmU2ZWRlODIzMWIzMTQ1MDJhODcyMTQ5ODg0M2Yz
MTJhMi4uNjEzMGEwNTg4MTBmYjk1M2E2YzI4ZWZhM2UzNDZkM2UwZTFlYzBmOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0ZvbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRm9udC5oCkBAIC0zNiw3ICszNiw3IEBA
IGNsYXNzIFNWR0ZvbnRGYWNlRWxlbWVudDsKIAogY2xhc3MgQ2FjaGVkU1ZHRm9udCBmaW5hbCA6
IHB1YmxpYyBDYWNoZWRGb250IHsKIHB1YmxpYzoKLSAgICBDYWNoZWRTVkdGb250KENhY2hlZFJl
c291cmNlUmVxdWVzdCYmLCBTZXNzaW9uSUQpOworICAgIENhY2hlZFNWR0ZvbnQoRmV0Y2hlZFJl
c291cmNlUmVxdWVzdCYmLCBTZXNzaW9uSUQpOwogCiAgICAgYm9vbCBlbnN1cmVDdXN0b21Gb250
RGF0YShjb25zdCBBdG9taWNTdHJpbmcmIHJlbW90ZVVSSSkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuY3BwIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5jcHAKaW5kZXggNDA4ZWRhNTUzOTRh
ZjI4ODA0NTJlMTZkMjQxOWZkZDJkNTA5ODhmMi4uMTEyMTljMWFlZjdjMWExZTg4ZDMwOTM1NjIx
ZmZiMTRjMTg4MTEyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFNjcmlwdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNj
cmlwdC5jcHAKQEAgLTI5LDcgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlQ2xp
ZW50LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VDbGllbnRXYWxrZXIuaCIKLSNpbmNsdWRl
ICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKKyNpbmNsdWRlICJGZXRjaGVkUmVzb3VyY2VSZXF1
ZXN0LmgiCiAjaW5jbHVkZSAiSFRUUEhlYWRlck5hbWVzLmgiCiAjaW5jbHVkZSAiSFRUUFBhcnNl
cnMuaCIKICNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCkBAIC00MCw3ICs0MCw3IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQ2FjaGVkU2NyaXB0OjpDYWNoZWRTY3JpcHQoQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgU2Vzc2lvbklEIHNlc3Npb25JRCkKK0NhY2hlZFNj
cmlwdDo6Q2FjaGVkU2NyaXB0KEZldGNoZWRSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBTZXNz
aW9uSUQgc2Vzc2lvbklEKQogICAgIDogQ2FjaGVkUmVzb3VyY2UoV1RGTW92ZShyZXF1ZXN0KSwg
U2NyaXB0LCBzZXNzaW9uSUQpCiAgICAgLCBtX2RlY29kZXIoVGV4dFJlc291cmNlRGVjb2Rlcjo6
Y3JlYXRlKEFTQ0lJTGl0ZXJhbCgiYXBwbGljYXRpb24vamF2YXNjcmlwdCIpLCByZXF1ZXN0LmNo
YXJzZXQoKSkpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkU2NyaXB0LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmgK
aW5kZXggYmFiZjQ4NjBlYjhkOWY0ODgwYmY4NTFhMmZmYjUzNmNlYmFjMmMzNC4uZmU3Yjc2NWI4
ZTM3YjRhZWFmOGZiYmJiMDE3NWRjZjlkY2Y2NDFjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRTY3JpcHQuaApAQCAtMzQsNyArMzQsNyBAQCBjbGFzcyBUZXh0UmVzb3Vy
Y2VEZWNvZGVyOwogCiBjbGFzcyBDYWNoZWRTY3JpcHQgZmluYWwgOiBwdWJsaWMgQ2FjaGVkUmVz
b3VyY2UgewogcHVibGljOgotICAgIENhY2hlZFNjcmlwdChDYWNoZWRSZXNvdXJjZVJlcXVlc3Qm
JiwgU2Vzc2lvbklEKTsKKyAgICBDYWNoZWRTY3JpcHQoRmV0Y2hlZFJlc291cmNlUmVxdWVzdCYm
LCBTZXNzaW9uSUQpOwogICAgIHZpcnR1YWwgfkNhY2hlZFNjcmlwdCgpOwogCiAgICAgU3RyaW5n
VmlldyBzY3JpcHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRUZXh0VHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFRl
eHRUcmFjay5jcHAKaW5kZXggOWEwZTRhZWZkNTYyN2Q4MDUxMGVjYTYwODk5ZDdjOWU4YjA2Zjc0
NS4uM2ZjZTgyYTAxZjlmZDBkZTg2YzA2MGM2MzQ0NTIzYzkyOTk5MTFlZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFjay5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFjay5jcHAKQEAgLTM3LDcgKzM3
LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1DYWNoZWRUZXh0VHJhY2s6OkNhY2hlZFRl
eHRUcmFjayhDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBTZXNzaW9uSUQgc2Vzc2lv
bklEKQorQ2FjaGVkVGV4dFRyYWNrOjpDYWNoZWRUZXh0VHJhY2soRmV0Y2hlZFJlc291cmNlUmVx
dWVzdCYmIHJlcXVlc3QsIFNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgOiBDYWNoZWRSZXNvdXJj
ZShXVEZNb3ZlKHJlcXVlc3QpLCBUZXh0VHJhY2tSZXNvdXJjZSwgc2Vzc2lvbklEKQogewogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFjay5o
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFjay5oCmluZGV4IGZm
NTFhMGNiYTBiYTcwMWMxNTVlYzcyM2UxNDhhNjllNzdkZTA3ZTcuLjlkZTVlNzdjNzkxY2JhMjc0
NjVjZTY5NzAzNGQ0MzY0YTE3ZGI2NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRUZXh0VHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkVGV4dFRyYWNrLmgKQEAgLTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBDYWNoZWRUZXh0VHJhY2sgZmluYWwgOiBwdWJsaWMgQ2FjaGVkUmVzb3VyY2Ug
ewogcHVibGljOgotICAgIENhY2hlZFRleHRUcmFjayhDYWNoZWRSZXNvdXJjZVJlcXVlc3QmJiwg
U2Vzc2lvbklEKTsKKyAgICBDYWNoZWRUZXh0VHJhY2soRmV0Y2hlZFJlc291cmNlUmVxdWVzdCYm
LCBTZXNzaW9uSUQpOwogCiBwcml2YXRlOgogICAgIGJvb2wgbWF5VHJ5UmVwbGFjZUVuY29kZWRE
YXRhKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFhTTFN0eWxlU2hlZXQuY3BwIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFhTTFN0eWxlU2hlZXQuY3BwCmluZGV4IDJjMzIwZmVm
MTg0OTAzYzE3NzY4YjZiMDBiZDNlM2IwZGM1ZTJmODYuLmM4NjgzNjZhZTczN2E3YWI3ZTRiOGEz
Mjk2MWIzYWY5ZDZhYzQ5MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRYU0xTdHlsZVNoZWV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkWFNMU3R5bGVTaGVldC5jcHAKQEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiAjaWYgRU5BQkxFKFhTTFQpCiAKLUNhY2hlZFhTTFN0eWxlU2hlZXQ6OkNhY2hl
ZFhTTFN0eWxlU2hlZXQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgU2Vzc2lvbklE
IHNlc3Npb25JRCkKK0NhY2hlZFhTTFN0eWxlU2hlZXQ6OkNhY2hlZFhTTFN0eWxlU2hlZXQoRmV0
Y2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAg
OiBDYWNoZWRSZXNvdXJjZShXVEZNb3ZlKHJlcXVlc3QpLCBYU0xTdHlsZVNoZWV0LCBzZXNzaW9u
SUQpCiAgICAgLCBtX2RlY29kZXIoVGV4dFJlc291cmNlRGVjb2Rlcjo6Y3JlYXRlKCJ0ZXh0L3hz
bCIpKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFhT
TFN0eWxlU2hlZXQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRYU0xTdHls
ZVNoZWV0LmgKaW5kZXggNWI0NzkzZTUyYjRhYTI3MzRmMjE2YzZjOTAwOTAxOTExOTFjOGQxYS4u
OGU4ZGJmMzY4MGEyYmUwMjJmMWRmNjMwM2YyMmY1Njc0ZmZkZTdlMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFhTTFN0eWxlU2hlZXQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkWFNMU3R5bGVTaGVldC5oCkBAIC0zNiw3ICsz
Niw3IEBAIGNsYXNzIFRleHRSZXNvdXJjZURlY29kZXI7CiAKIGNsYXNzIENhY2hlZFhTTFN0eWxl
U2hlZXQgZmluYWwgOiBwdWJsaWMgQ2FjaGVkUmVzb3VyY2UgewogcHVibGljOgotICAgIENhY2hl
ZFhTTFN0eWxlU2hlZXQoQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0JiYsIFNlc3Npb25JRCk7CisgICAg
Q2FjaGVkWFNMU3R5bGVTaGVldChGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0JiYsIFNlc3Npb25JRCk7
CiAgICAgdmlydHVhbCB+Q2FjaGVkWFNMU3R5bGVTaGVldCgpOwogCiAgICAgY29uc3QgU3RyaW5n
JiBzaGVldCgpIGNvbnN0IHsgcmV0dXJuIG1fc2hlZXQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9mZXRjaC9GZXRjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9mZXRjaC9GZXRjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li45YTNiZGQzMTliNzNjZDJlMWM2YTU3MWMzYmVjNTJmNTliYmJkMTRiCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ZldGNoL0ZldGNoZWRSZXNvdXJjZVJlcXVlc3Qu
Y3BwCkBAIC0wLDAgKzEsOTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlLCBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBHT09HTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRmV0Y2hlZFJlc291
cmNlUmVxdWVzdC5oIgorCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNs
dWRlICJDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgor
I2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K0ZldGNoZWRSZXNvdXJjZVJlcXVlc3Q6OkZldGNoZWRSZXNvdXJjZVJlcXVlc3QoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QsIGNvbnN0IFN0cmluZyYgY2hhcnNldCwgT3B0
aW9uYWw8UmVzb3VyY2VMb2FkUHJpb3JpdHk+IHByaW9yaXR5KQorICAgIDogbV9yZXNvdXJjZVJl
cXVlc3QocmVzb3VyY2VSZXF1ZXN0KQorICAgICwgbV9jaGFyc2V0KGNoYXJzZXQpCisgICAgLCBt
X29wdGlvbnMoQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OmRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlv
bnMoKSkKKyAgICAsIG1fcHJpb3JpdHkocHJpb3JpdHkpCit7Cit9CisKK0ZldGNoZWRSZXNvdXJj
ZVJlcXVlc3Q6OkZldGNoZWRSZXNvdXJjZVJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYgcmVzb3Vy
Y2VSZXF1ZXN0LCBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmIG9wdGlvbnMsIE9wdGlvbmFs
PFJlc291cmNlTG9hZFByaW9yaXR5PiBwcmlvcml0eSkKKyAgICA6IG1fcmVzb3VyY2VSZXF1ZXN0
KFdURk1vdmUocmVzb3VyY2VSZXF1ZXN0KSkKKyAgICAsIG1fb3B0aW9ucyhvcHRpb25zKQorICAg
ICwgbV9wcmlvcml0eShwcmlvcml0eSkKK3sKK30KKwordm9pZCBGZXRjaGVkUmVzb3VyY2VSZXF1
ZXN0OjpzZXRJbml0aWF0b3IoUGFzc1JlZlB0cjxFbGVtZW50PiBlbGVtZW50KQoreworICAgIEFT
U0VSVCghbV9pbml0aWF0b3JFbGVtZW50ICYmIG1faW5pdGlhdG9yTmFtZS5pc0VtcHR5KCkpOwor
ICAgIG1faW5pdGlhdG9yRWxlbWVudCA9IGVsZW1lbnQ7Cit9CisKK3ZvaWQgRmV0Y2hlZFJlc291
cmNlUmVxdWVzdDo6c2V0SW5pdGlhdG9yKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSkKK3sKKyAg
ICBBU1NFUlQoIW1faW5pdGlhdG9yRWxlbWVudCAmJiBtX2luaXRpYXRvck5hbWUuaXNFbXB0eSgp
KTsKKyAgICBtX2luaXRpYXRvck5hbWUgPSBuYW1lOworfQorCitjb25zdCBBdG9taWNTdHJpbmcm
IEZldGNoZWRSZXNvdXJjZVJlcXVlc3Q6OmluaXRpYXRvck5hbWUoKSBjb25zdAoreworICAgIGlm
IChtX2luaXRpYXRvckVsZW1lbnQpCisgICAgICAgIHJldHVybiBtX2luaXRpYXRvckVsZW1lbnQt
PmxvY2FsTmFtZSgpOworICAgIGlmICghbV9pbml0aWF0b3JOYW1lLmlzRW1wdHkoKSkKKyAgICAg
ICAgcmV0dXJuIG1faW5pdGlhdG9yTmFtZTsKKworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxB
dG9taWNTdHJpbmc+IGRlZmF1bHROYW1lKCJyZXNvdXJjZSIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOworICAgIHJldHVybiBkZWZhdWx0TmFtZTsKK30KKwordm9pZCBGZXRj
aGVkUmVzb3VyY2VSZXF1ZXN0OjpzZXRBc1BvdGVudGlhbGx5Q3Jvc3NPcmlnaW4oY29uc3QgU3Ry
aW5nJiBtb2RlLCBEb2N1bWVudCYgZG9jdW1lbnQpCit7CisgICAgQVNTRVJUKG1fb3B0aW9ucy5t
b2RlID09IEZldGNoT3B0aW9uczo6TW9kZTo6Tm9Db3JzKTsKKyAgICBBU1NFUlQoZG9jdW1lbnQu
c2VjdXJpdHlPcmlnaW4oKSk7CisKKyAgICBtX29yaWdpbiA9IGRvY3VtZW50LnNlY3VyaXR5T3Jp
Z2luKCk7CisKKyAgICBpZiAobW9kZS5pc051bGwoKSkKKyAgICAgICAgcmV0dXJuOworICAgIG1f
b3B0aW9ucy5tb2RlID0gRmV0Y2hPcHRpb25zOjpNb2RlOjpDb3JzOworICAgIG1fb3B0aW9ucy5j
cmVkZW50aWFscyA9IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKG1vZGUsICJ1c2UtY3Jl
ZGVudGlhbHMiKSA/IEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6OkluY2x1ZGUgOiBGZXRjaE9w
dGlvbnM6OkNyZWRlbnRpYWxzOjpTYW1lT3JpZ2luOworICAgIG1fb3B0aW9ucy5hbGxvd0NyZWRl
bnRpYWxzID0gZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UobW9kZSwgInVzZS1jcmVkZW50
aWFscyIpID8gQWxsb3dTdG9yZWRDcmVkZW50aWFscyA6IERvTm90QWxsb3dTdG9yZWRDcmVkZW50
aWFsczsKKworICAgIHVwZGF0ZVJlcXVlc3RGb3JBY2Nlc3NDb250cm9sKG1fcmVzb3VyY2VSZXF1
ZXN0LCAqZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4oKSwgbV9vcHRpb25zLmFsbG93Q3JlZGVudGlh
bHMpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvZmV0Y2gvRmV0Y2hlZFJlc291cmNlUmVxdWVzdC5oIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2ZldGNoL0ZldGNoZWRSZXNvdXJjZVJlcXVlc3QuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMjE4
YmFmMjEyMjlmYTJjM2E0NmUwYTA0YzRmOWJiYzQyNmZkMjgxCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2ZldGNoL0ZldGNoZWRSZXNvdXJjZVJlcXVlc3QuaApAQCAt
MCwwICsxLDgxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSwgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgR09PR0xFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgorI2luY2x1
ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJSZXNvdXJjZUxvYWRQcmlvcml0eS5oIgorI2luY2x1
ZGUgIlJlc291cmNlTG9hZGVyT3B0aW9ucy5oIgorI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5o
IgorI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgor
I2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CitjbGFzcyBEb2N1bWVudDsKKworY2xhc3MgRmV0Y2hlZFJlc291cmNlUmVxdWVzdCB7CitwdWJs
aWM6CisgICAgZW51bSBEZWZlck9wdGlvbiB7IE5vRGVmZXIsIERlZmVycmVkQnlDbGllbnQgfTsK
KworICAgIGV4cGxpY2l0IEZldGNoZWRSZXNvdXJjZVJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiwgY29uc3QgU3RyaW5nJiBjaGFyc2V0ID0gU3RyaW5nKCksIE9wdGlvbmFsPFJlc291cmNl
TG9hZFByaW9yaXR5PiA9IE51bGxvcHQpOworICAgIEZldGNoZWRSZXNvdXJjZVJlcXVlc3QoUmVz
b3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYsIE9wdGlvbmFsPFJl
c291cmNlTG9hZFByaW9yaXR5PiA9IE51bGxvcHQpOworCisgICAgUmVzb3VyY2VSZXF1ZXN0JiBt
dXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCkgeyByZXR1cm4gbV9yZXNvdXJjZVJlcXVlc3Q7IH0KKyAg
ICBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCgpIGNvbnN0IHsgcmV0dXJu
IG1fcmVzb3VyY2VSZXF1ZXN0OyB9CisgICAgY29uc3QgU3RyaW5nJiBjaGFyc2V0KCkgY29uc3Qg
eyByZXR1cm4gbV9jaGFyc2V0OyB9CisgICAgdm9pZCBzZXRDaGFyc2V0KGNvbnN0IFN0cmluZyYg
Y2hhcnNldCkgeyBtX2NoYXJzZXQgPSBjaGFyc2V0OyB9CisgICAgY29uc3QgUmVzb3VyY2VMb2Fk
ZXJPcHRpb25zJiBvcHRpb25zKCkgY29uc3QgeyByZXR1cm4gbV9vcHRpb25zOyB9CisgICAgdm9p
ZCBzZXRPcHRpb25zKGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYgb3B0aW9ucykgeyBtX29w
dGlvbnMgPSBvcHRpb25zOyB9CisgICAgY29uc3QgT3B0aW9uYWw8UmVzb3VyY2VMb2FkUHJpb3Jp
dHk+JiBwcmlvcml0eSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJpb3JpdHk7IH0KKyAgICBib29sIGZv
clByZWxvYWQoKSBjb25zdCB7IHJldHVybiBtX2ZvclByZWxvYWQ7IH0KKyAgICB2b2lkIHNldEZv
clByZWxvYWQoYm9vbCBmb3JQcmVsb2FkKSB7IG1fZm9yUHJlbG9hZCA9IGZvclByZWxvYWQ7IH0K
KyAgICBEZWZlck9wdGlvbiBkZWZlcigpIGNvbnN0IHsgcmV0dXJuIG1fZGVmZXI7IH0KKyAgICB2
b2lkIHNldERlZmVyKERlZmVyT3B0aW9uIGRlZmVyKSB7IG1fZGVmZXIgPSBkZWZlcjsgfQorICAg
IHZvaWQgc2V0SW5pdGlhdG9yKFBhc3NSZWZQdHI8RWxlbWVudD4pOworICAgIHZvaWQgc2V0SW5p
dGlhdG9yKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSk7CisgICAgY29uc3QgQXRvbWljU3RyaW5n
JiBpbml0aWF0b3JOYW1lKCkgY29uc3Q7CisgICAgYm9vbCBhbGxvd3NDYWNoaW5nKCkgY29uc3Qg
eyByZXR1cm4gbV9vcHRpb25zLmNhY2hpbmdQb2xpY3kgPT0gQ2FjaGluZ1BvbGljeTo6QWxsb3dD
YWNoaW5nOyB9CisgICAgdm9pZCBzZXRDYWNoaW5nUG9saWN5KENhY2hpbmdQb2xpY3kgcG9saWN5
KSB7IG1fb3B0aW9ucy5jYWNoaW5nUG9saWN5ID0gcG9saWN5OyB9CisKKyAgICB2b2lkIHNldEFz
UG90ZW50aWFsbHlDcm9zc09yaWdpbihjb25zdCBTdHJpbmcmLCBEb2N1bWVudCYpOworICAgIHZv
aWQgc2V0T3JpZ2luKFJlZlB0cjxTZWN1cml0eU9yaWdpbj4mJiBvcmlnaW4pIHsgQVNTRVJUKCFt
X29yaWdpbik7IG1fb3JpZ2luID0gV1RGTW92ZShvcmlnaW4pOyB9CisgICAgUmVmUHRyPFNlY3Vy
aXR5T3JpZ2luPiByZWxlYXNlT3JpZ2luKCkgeyByZXR1cm4gV1RGTW92ZShtX29yaWdpbik7IH0K
KyAgICBTZWN1cml0eU9yaWdpbiogb3JpZ2luKCkgY29uc3QgeyByZXR1cm4gbV9vcmlnaW4uZ2V0
KCk7IH0KKworcHJpdmF0ZToKKyAgICBSZXNvdXJjZVJlcXVlc3QgbV9yZXNvdXJjZVJlcXVlc3Q7
CisgICAgU3RyaW5nIG1fY2hhcnNldDsKKyAgICBSZXNvdXJjZUxvYWRlck9wdGlvbnMgbV9vcHRp
b25zOworICAgIE9wdGlvbmFsPFJlc291cmNlTG9hZFByaW9yaXR5PiBtX3ByaW9yaXR5OworICAg
IGJvb2wgbV9mb3JQcmVsb2FkIHsgZmFsc2UgfTsKKyAgICBEZWZlck9wdGlvbiBtX2RlZmVyIHsg
Tm9EZWZlciB9OworICAgIFJlZlB0cjxFbGVtZW50PiBtX2luaXRpYXRvckVsZW1lbnQ7CisgICAg
QXRvbWljU3RyaW5nIG1faW5pdGlhdG9yTmFtZTsKKyAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+
IG1fb3JpZ2luOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvaWNvbi9JY29uTG9hZGVyLmNwcAppbmRleCBjMjQzZjQyYWM5YTU4ZjZkZjU4MGYyZjhk
OGQzYWRjZjMwOTVhMjEzLi45NDNlMDAzM2VmNjg5MGUzMGVmMDNhZTA0ZjVlMzdkODE0NWY3MmM2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uTG9hZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uTG9hZGVyLmNwcApAQCAtMjAsMTcg
KzIwLDE3IEBACiAgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCiAgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKICAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCi0gCisKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJJY29uTG9hZGVyLmgiCiAKICNpbmNsdWRlICJDYWNoZWRSYXdSZXNvdXJjZS5o
IgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCi0jaW5jbHVkZSAiQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9y
cy5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRmV0Y2hlZFJlc291cmNlUmVx
dWVzdC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNp
bmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgpAQCAtNTksNyArNTksNyBAQCB2b2lkIEljb25M
b2FkZXI6OnN0YXJ0TG9hZGluZygpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIENvbnRlbnRT
ZWN1cml0eVBvbGljeUltcG9zaXRpb246OkRvUG9saWN5Q2hlY2sgaXMgYSBwbGFjZWhvbGRlciB2
YWx1ZS4gSXQgZG9lcyBub3QgYWZmZWN0IHRoZSByZXF1ZXN0IHNpbmNlIENvbnRlbnQgU2VjdXJp
dHkgUG9saWN5IGRvZXMgbm90IGFwcGx5IHRvIHJhdyByZXNvdXJjZXMuCi0gICAgQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KG1fZnJhbWUubG9hZGVyKCkuaWNv
bigpLnVybCgpKSwgUmVzb3VyY2VMb2FkZXJPcHRpb25zKFNlbmRDYWxsYmFja3MsIFNuaWZmQ29u
dGVudCwgQnVmZmVyRGF0YSwgRG9Ob3RBbGxvd1N0b3JlZENyZWRlbnRpYWxzLCBDbGllbnRDcmVk
ZW50aWFsUG9saWN5OjpDYW5ub3RBc2tDbGllbnRGb3JDcmVkZW50aWFscywgRmV0Y2hPcHRpb25z
OjpDcmVkZW50aWFsczo6T21pdCwgRG9TZWN1cml0eUNoZWNrLCBGZXRjaE9wdGlvbnM6Ok1vZGU6
Ok5vQ29ycywgRG9Ob3RJbmNsdWRlQ2VydGlmaWNhdGVJbmZvLCBDb250ZW50U2VjdXJpdHlQb2xp
Y3lJbXBvc2l0aW9uOjpEb1BvbGljeUNoZWNrLCBEZWZlcnNMb2FkaW5nUG9saWN5OjpBbGxvd0Rl
ZmVyc0xvYWRpbmcsIENhY2hpbmdQb2xpY3k6OkFsbG93Q2FjaGluZykpOworICAgIEZldGNoZWRS
ZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QobV9mcmFtZS5sb2FkZXIoKS5p
Y29uKCkudXJsKCkpLCBSZXNvdXJjZUxvYWRlck9wdGlvbnMoU2VuZENhbGxiYWNrcywgU25pZmZD
b250ZW50LCBCdWZmZXJEYXRhLCBEb05vdEFsbG93U3RvcmVkQ3JlZGVudGlhbHMsIENsaWVudENy
ZWRlbnRpYWxQb2xpY3k6OkNhbm5vdEFza0NsaWVudEZvckNyZWRlbnRpYWxzLCBGZXRjaE9wdGlv
bnM6OkNyZWRlbnRpYWxzOjpPbWl0LCBEb1NlY3VyaXR5Q2hlY2ssIEZldGNoT3B0aW9uczo6TW9k
ZTo6Tm9Db3JzLCBEb05vdEluY2x1ZGVDZXJ0aWZpY2F0ZUluZm8sIENvbnRlbnRTZWN1cml0eVBv
bGljeUltcG9zaXRpb246OkRvUG9saWN5Q2hlY2ssIERlZmVyc0xvYWRpbmdQb2xpY3k6OkFsbG93
RGVmZXJzTG9hZGluZywgQ2FjaGluZ1BvbGljeTo6QWxsb3dDYWNoaW5nKSk7CiAKICAgICByZXF1
ZXN0Lm11dGFibGVSZXNvdXJjZVJlcXVlc3QoKS5zZXRQcmlvcml0eShSZXNvdXJjZUxvYWRQcmlv
cml0eTo6TG93KTsKICAgICByZXF1ZXN0LnNldEluaXRpYXRvcihjYWNoZWRSZXNvdXJjZVJlcXVl
c3RJbml0aWF0b3JzKCkuaWNvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvV2ViQ29yZUFWQ0ZSZXNvdXJjZUxvYWRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvV2ViQ29y
ZUFWQ0ZSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggOTEyYzJiZmVkZTg2ZjE1ZjJkOTJiMTEzMDJi
MDQxZmRjZjBkMDNiNy4uNDdmZjZlNmI4MWVhMDVjNzRmYmRiMjg3YjQ2NTU0OTlhMjQ4NTFiNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L2NmL1dlYkNvcmVBVkNGUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9XZWJDb3JlQVZDRlJlc291cmNlTG9hZGVy
LmNwcApAQCAtMzAsNyArMzAsNyBAQAogCiAjaW5jbHVkZSAiQ2FjaGVkUmF3UmVzb3VyY2UuaCIK
ICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgotI2luY2x1ZGUgIkNhY2hlZFJlc291
cmNlUmVxdWVzdC5oIgorI2luY2x1ZGUgIkZldGNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNs
dWRlICJNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5oIgogI2luY2x1ZGUgIk5vdElt
cGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkZXJPcHRpb25zLmgiCkBAIC03MSw3
ICs3MSw3IEBAIHZvaWQgV2ViQ29yZUFWQ0ZSZXNvdXJjZUxvYWRlcjo6c3RhcnRMb2FkaW5nKCkK
ICAgICBSZXRhaW5QdHI8Q0ZVUkxSZXF1ZXN0UmVmPiB1cmxSZXF1ZXN0ID0gQVZDRkFzc2V0UmVz
b3VyY2VMb2FkaW5nUmVxdWVzdEdldFVSTFJlcXVlc3QobV9hdlJlcXVlc3QuZ2V0KCkpOwogCiAg
ICAgLy8gQ29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbjo6RG9Qb2xpY3lDaGVjayBpcyBh
IHBsYWNlaG9sZGVyIHZhbHVlLiBJdCBkb2VzIG5vdCBhZmZlY3QgdGhlIHJlcXVlc3Qgc2luY2Ug
Q29udGVudCBTZWN1cml0eSBQb2xpY3kgZG9lcyBub3QgYXBwbHkgdG8gcmF3IHJlc291cmNlcy4K
LSAgICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QodXJsUmVx
dWVzdC5nZXQoKSksIFJlc291cmNlTG9hZGVyT3B0aW9ucyhTZW5kQ2FsbGJhY2tzLCBEb05vdFNu
aWZmQ29udGVudCwgQnVmZmVyRGF0YSwgRG9Ob3RBbGxvd1N0b3JlZENyZWRlbnRpYWxzLCBDbGll
bnRDcmVkZW50aWFsUG9saWN5OjpDYW5ub3RBc2tDbGllbnRGb3JDcmVkZW50aWFscywgRmV0Y2hP
cHRpb25zOjpDcmVkZW50aWFsczo6T21pdCwgRG9TZWN1cml0eUNoZWNrLCBGZXRjaE9wdGlvbnM6
Ok1vZGU6Ok5vQ29ycywgRG9Ob3RJbmNsdWRlQ2VydGlmaWNhdGVJbmZvLCBDb250ZW50U2VjdXJp
dHlQb2xpY3lJbXBvc2l0aW9uOjpEb1BvbGljeUNoZWNrLCBEZWZlcnNMb2FkaW5nUG9saWN5OjpB
bGxvd0RlZmVyc0xvYWRpbmcsIENhY2hpbmdQb2xpY3k6OkRpc2FsbG93Q2FjaGluZykpOworICAg
IEZldGNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QodXJsUmVxdWVz
dC5nZXQoKSksIFJlc291cmNlTG9hZGVyT3B0aW9ucyhTZW5kQ2FsbGJhY2tzLCBEb05vdFNuaWZm
Q29udGVudCwgQnVmZmVyRGF0YSwgRG9Ob3RBbGxvd1N0b3JlZENyZWRlbnRpYWxzLCBDbGllbnRD
cmVkZW50aWFsUG9saWN5OjpDYW5ub3RBc2tDbGllbnRGb3JDcmVkZW50aWFscywgRmV0Y2hPcHRp
b25zOjpDcmVkZW50aWFsczo6T21pdCwgRG9TZWN1cml0eUNoZWNrLCBGZXRjaE9wdGlvbnM6Ok1v
ZGU6Ok5vQ29ycywgRG9Ob3RJbmNsdWRlQ2VydGlmaWNhdGVJbmZvLCBDb250ZW50U2VjdXJpdHlQ
b2xpY3lJbXBvc2l0aW9uOjpEb1BvbGljeUNoZWNrLCBEZWZlcnNMb2FkaW5nUG9saWN5OjpBbGxv
d0RlZmVyc0xvYWRpbmcsIENhY2hpbmdQb2xpY3k6OkRpc2FsbG93Q2FjaGluZykpOwogCiAgICAg
cmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCkuc2V0UHJpb3JpdHkoUmVzb3VyY2VMb2Fk
UHJpb3JpdHk6Okxvdyk7CiAgICAgQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGxvYWRlciA9IG1fcGFy
ZW50LT5wbGF5ZXIoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1dlYkNvcmVBVkZS
ZXNvdXJjZUxvYWRlci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL1dlYkNvcmVBVkZSZXNvdXJjZUxvYWRlci5tbQppbmRleCA3NjRiMGRmMDVm
MzliYjY4OWIxZDAwMzllNzhkOGU0YzEwMDQyZWNlLi5lMzJjNWY3Nzc2MTRhMDc2MTM0N2FjOWIw
ZTVjNjEzYjBlNjI0NmRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9XZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvV2ViQ29y
ZUFWRlJlc291cmNlTG9hZGVyLm1tCkBAIC0zMCw3ICszMCw3IEBACiAKICNpbXBvcnQgIkNhY2hl
ZFJhd1Jlc291cmNlLmgiCiAjaW1wb3J0ICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgotI2ltcG9y
dCAiQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgiCisjaW1wb3J0ICJGZXRjaGVkUmVzb3VyY2VSZXF1
ZXN0LmgiCiAjaW1wb3J0ICJNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgiCiAj
aW1wb3J0ICJSZXNvdXJjZUxvYWRlck9wdGlvbnMuaCIKICNpbXBvcnQgIlNoYXJlZEJ1ZmZlci5o
IgpAQCAtNjksNyArNjksNyBAQCB2b2lkIFdlYkNvcmVBVkZSZXNvdXJjZUxvYWRlcjo6c3RhcnRM
b2FkaW5nKCkKIAogICAgIC8vIEZJWE1FOiBTa2lwIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IGNo
ZWNrIGlmIHRoZSBlbGVtZW50IHRoYXQgaW5pdGl0YXRlZCB0aGlzIHJlcXVlc3QKICAgICAvLyBp
cyBpbiBhIHVzZXItYWdlbnQgc2hhZG93IHRyZWUuIFNlZSA8aHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE1NTUwNT4uCi0gICAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJl
cXVlc3QobnNSZXF1ZXN0LCBSZXNvdXJjZUxvYWRlck9wdGlvbnMoU2VuZENhbGxiYWNrcywgRG9O
b3RTbmlmZkNvbnRlbnQsIEJ1ZmZlckRhdGEsIERvTm90QWxsb3dTdG9yZWRDcmVkZW50aWFscywg
Q2xpZW50Q3JlZGVudGlhbFBvbGljeTo6Q2Fubm90QXNrQ2xpZW50Rm9yQ3JlZGVudGlhbHMsIEZl
dGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6Ok9taXQsIERvU2VjdXJpdHlDaGVjaywgRmV0Y2hPcHRp
b25zOjpNb2RlOjpOb0NvcnMsIERvTm90SW5jbHVkZUNlcnRpZmljYXRlSW5mbywgQ29udGVudFNl
Y3VyaXR5UG9saWN5SW1wb3NpdGlvbjo6RG9Qb2xpY3lDaGVjaywgRGVmZXJzTG9hZGluZ1BvbGlj
eTo6QWxsb3dEZWZlcnNMb2FkaW5nLCBDYWNoaW5nUG9saWN5OjpEaXNhbGxvd0NhY2hpbmcpKTsK
KyAgICBGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QobnNSZXF1ZXN0LCBSZXNvdXJjZUxv
YWRlck9wdGlvbnMoU2VuZENhbGxiYWNrcywgRG9Ob3RTbmlmZkNvbnRlbnQsIEJ1ZmZlckRhdGEs
IERvTm90QWxsb3dTdG9yZWRDcmVkZW50aWFscywgQ2xpZW50Q3JlZGVudGlhbFBvbGljeTo6Q2Fu
bm90QXNrQ2xpZW50Rm9yQ3JlZGVudGlhbHMsIEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6Ok9t
aXQsIERvU2VjdXJpdHlDaGVjaywgRmV0Y2hPcHRpb25zOjpNb2RlOjpOb0NvcnMsIERvTm90SW5j
bHVkZUNlcnRpZmljYXRlSW5mbywgQ29udGVudFNlY3VyaXR5UG9saWN5SW1wb3NpdGlvbjo6RG9Q
b2xpY3lDaGVjaywgRGVmZXJzTG9hZGluZ1BvbGljeTo6QWxsb3dEZWZlcnNMb2FkaW5nLCBDYWNo
aW5nUG9saWN5OjpEaXNhbGxvd0NhY2hpbmcpKTsKICAgICByZXF1ZXN0Lm11dGFibGVSZXNvdXJj
ZVJlcXVlc3QoKS5zZXRQcmlvcml0eShSZXNvdXJjZUxvYWRQcmlvcml0eTo6TG93KTsKICAgICBp
ZiAoYXV0byogbG9hZGVyID0gbV9wYXJlbnQtPnBsYXllcigpLT5jYWNoZWRSZXNvdXJjZUxvYWRl
cigpKQogICAgICAgICBtX3Jlc291cmNlID0gbG9hZGVyLT5yZXF1ZXN0TWVkaWEoV1RGTW92ZShy
ZXF1ZXN0KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nv
Y29hL1dlYkNvcmVOU1VSTFNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY29jb2EvV2ViQ29yZU5TVVJMU2Vzc2lvbi5oCmluZGV4IDZkNTJmY2RhODQ2ZDVjNDkzZDJm
NWZiODY0MzY3MWVlMzliZjUyZmQuLmVjZmViZDYwZGY2NWI3MWY2MzAyYTBkNmJlZTFhNmVmMTQ5
Y2QzYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2Ev
V2ViQ29yZU5TVVJMU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY29jb2EvV2ViQ29yZU5TVVJMU2Vzc2lvbi5oCkBAIC00Myw3ICs0Myw3IEBACiBAY2xhc3Mg
V2ViQ29yZU5TVVJMU2Vzc2lvbkRhdGFUYXNrOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci1jbGFz
cyBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q7CitjbGFzcyBGZXRjaGVkUmVzb3VyY2VSZXF1ZXN0Owog
Y2xhc3MgUGxhdGZvcm1NZWRpYVJlc291cmNlOwogY2xhc3MgUGxhdGZvcm1NZWRpYVJlc291cmNl
TG9hZGVyOwogY2xhc3MgV2ViQ29yZU5TVVJMU2Vzc2lvbkRhdGFUYXNrQ2xpZW50OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9XZWJDb3JlTlNVUkxT
ZXNzaW9uLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9XZWJDb3Jl
TlNVUkxTZXNzaW9uLm1tCmluZGV4IDE2ZTE3MTQyNWQyNzg2NmIyMTRmYzAyZTBmNDc4NDNiZmI5
YmM0Y2QuLjQ0MTU4OWU5ZDIxYjBmNDk3MjEwMzg1ZTM4MmU1MzAwOWY3NDYzMjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvV2ViQ29yZU5TVVJMU2Vz
c2lvbi5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1dlYkNv
cmVOU1VSTFNlc3Npb24ubW0KQEAgLTIwLDcgKzIwLDcgQEAKICAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKICAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAogICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8K
IAogI2ltcG9ydCAiY29uZmlnLmgiCkBAIC0yOCw5ICsyOCw5IEBACiAKICNpZiBQTEFURk9STShJ
T1MpIHx8IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwCiAKLSNpbXBv
cnQgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2ltcG9ydCAiUGxhdGZvcm1NZWRpYVJlc291
cmNlTG9hZGVyLmgiCiAjaW1wb3J0ICJTdWJyZXNvdXJjZUxvYWRlci5oIgorI2ltcG9ydCA8d3Rm
L01haW5UaHJlYWQuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwCmluZGV4IDRkNTkyOTEwMzg4NzA2NTAxZTExMjhj
YjRmNzFlM2IzNzEwNzczYmMuLmI1NDAwYjU5ZTRmOGYxNDdiNzRjNGYzODEwZDZjOWU1MjlmZWZl
OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcApAQCAtMjQsOSAr
MjQsOSBAQAogCiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNv
dXJjZUxvYWRlci5oIgotI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1
ZGUgIkNvbG9yU3BhY2UuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkZldGNo
ZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJJbWFnZS5oIgogI2luY2x1ZGUgIlJlbmRl
ck9iamVjdC5oIgogI2luY2x1ZGUgIlJlbmRlclNWR1Jlc291cmNlLmgiCkBAIC04OCw3ICs4OCw3
IEBAIHZvaWQgU1ZHRkVJbWFnZUVsZW1lbnQ6OnJlcXVlc3RJbWFnZVJlc291cmNlKCkKICAgICBS
ZXNvdXJjZUxvYWRlck9wdGlvbnMgb3B0aW9ucyA9IENhY2hlZFJlc291cmNlTG9hZGVyOjpkZWZh
dWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCk7CiAgICAgb3B0aW9ucy5jb250ZW50U2VjdXJpdHlQ
b2xpY3lJbXBvc2l0aW9uID0gaXNJblVzZXJBZ2VudFNoYWRvd1RyZWUoKSA/IENvbnRlbnRTZWN1
cml0eVBvbGljeUltcG9zaXRpb246OlNraXBQb2xpY3lDaGVjayA6IENvbnRlbnRTZWN1cml0eVBv
bGljeUltcG9zaXRpb246OkRvUG9saWN5Q2hlY2s7CiAKLSAgICBDYWNoZWRSZXNvdXJjZVJlcXVl
c3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QoZG9jdW1lbnQoKS5jb21wbGV0ZVVSTChocmVmKCkp
KSwgb3B0aW9ucyk7CisgICAgRmV0Y2hlZFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KFJlc291cmNl
UmVxdWVzdChkb2N1bWVudCgpLmNvbXBsZXRlVVJMKGhyZWYoKSkpLCBvcHRpb25zKTsKICAgICBy
ZXF1ZXN0LnNldEluaXRpYXRvcih0aGlzKTsKICAgICBtX2NhY2hlZEltYWdlID0gZG9jdW1lbnQo
KS5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLnJlcXVlc3RJbWFnZShXVEZNb3ZlKHJlcXVlc3QpKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmNwcAppbmRleCBh
Mzg5OGUwYzU5MzNiYmE1YWY0N2E4ZDI1MWE5ZDE1MjJlOWM4MmZhLi4wMWNjYWUzNTQwNjU5YmE3
ZjNlZDllY2Q3YzAyNThmNzYzOTQyZTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRm9udEZhY2VVcmlFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9u
dEZhY2VVcmlFbGVtZW50LmNwcApAQCAtMjYsMTYgKzI2LDE2IEBACiAjaW5jbHVkZSAiQ1NTRm9u
dEZhY2VTcmNWYWx1ZS5oIgogI2luY2x1ZGUgIkNhY2hlZEZvbnQuaCIKICNpbmNsdWRlICJDYWNo
ZWRSZXNvdXJjZUxvYWRlci5oIgotI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdC5oIgog
I2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRmV0Y2hlZFJlc291cmNlUmVxdWVzdC5o
IgogI2luY2x1ZGUgIlNWR0ZvbnRGYWNlRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgi
CiAjaW5jbHVkZSAiWExpbmtOYW1lcy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci0gICAgCisK
IHVzaW5nIG5hbWVzcGFjZSBTVkdOYW1lczsKLSAgICAKKwogaW5saW5lIFNWR0ZvbnRGYWNlVXJp
RWxlbWVudDo6U1ZHRm9udEZhY2VVcmlFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IFNWR0VsZW1lbnQodGFnTmFtZSwgZG9jdW1l
bnQpCiB7CkBAIC0xMDQsNyArMTA0LDcgQEAgdm9pZCBTVkdGb250RmFjZVVyaUVsZW1lbnQ6Omxv
YWRGb250KCkKICAgICAgICAgb3B0aW9ucy5jb250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9u
ID0gaXNJblVzZXJBZ2VudFNoYWRvd1RyZWUoKSA/IENvbnRlbnRTZWN1cml0eVBvbGljeUltcG9z
aXRpb246OlNraXBQb2xpY3lDaGVjayA6IENvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb246
OkRvUG9saWN5Q2hlY2s7CiAKICAgICAgICAgQ2FjaGVkUmVzb3VyY2VMb2FkZXImIGNhY2hlZFJl
c291cmNlTG9hZGVyID0gZG9jdW1lbnQoKS5jYWNoZWRSZXNvdXJjZUxvYWRlcigpOwotICAgICAg
ICBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChSZXNvdXJjZVJlcXVlc3QoZG9jdW1lbnQo
KS5jb21wbGV0ZVVSTChocmVmKSksIG9wdGlvbnMpOworICAgICAgICBGZXRjaGVkUmVzb3VyY2VS
ZXF1ZXN0IHJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0KGRvY3VtZW50KCkuY29tcGxldGVVUkwoaHJl
ZikpLCBvcHRpb25zKTsKICAgICAgICAgcmVxdWVzdC5zZXRJbml0aWF0b3IodGhpcyk7CiAgICAg
ICAgIG1fY2FjaGVkRm9udCA9IGNhY2hlZFJlc291cmNlTG9hZGVyLnJlcXVlc3RGb250KFdURk1v
dmUocmVxdWVzdCksIGlzU1ZHRm9udFRhcmdldCgqdGhpcykpOwogICAgICAgICBpZiAobV9jYWNo
ZWRGb250KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAKaW5kZXggYTA0N2FkNjg4
M2JlOGE4NThjNWRmNWNmNGIzMDE3OTFjYmNjYzA4ZC4uMGRkMDI1MWY2NzNmZTIyMDNkOGI0ZGVm
OTg4Y2JmMWJmMjM2YjAxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcApAQCAt
NTcxLDcgKzU3MSw3IEBAIHZvaWQgU1ZHVXNlRWxlbWVudDo6dXBkYXRlRXh0ZXJuYWxEb2N1bWVu
dCgpCiAgICAgICAgIFJlc291cmNlTG9hZGVyT3B0aW9ucyBvcHRpb25zID0gQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXI6OmRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKTsKICAgICAgICAgb3B0aW9u
cy5jb250ZW50U2VjdXJpdHlQb2xpY3lJbXBvc2l0aW9uID0gaXNJblVzZXJBZ2VudFNoYWRvd1Ry
ZWUoKSA/IENvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb246OlNraXBQb2xpY3lDaGVjayA6
IENvbnRlbnRTZWN1cml0eVBvbGljeUltcG9zaXRpb246OkRvUG9saWN5Q2hlY2s7CiAgICAgICAg
IG9wdGlvbnMubW9kZSA9IEZldGNoT3B0aW9uczo6TW9kZTo6U2FtZU9yaWdpbjsKLSAgICAgICAg
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QgeyBSZXNvdXJjZVJlcXVlc3QgeyBleHRlcm5h
bERvY3VtZW50VVJMIH0sIG9wdGlvbnMgfTsKKyAgICAgICAgRmV0Y2hlZFJlc291cmNlUmVxdWVz
dCByZXF1ZXN0IHsgUmVzb3VyY2VSZXF1ZXN0IHsgZXh0ZXJuYWxEb2N1bWVudFVSTCB9LCBvcHRp
b25zIH07CiAgICAgICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9yKHRoaXMpOwogICAgICAgICBtX2V4
dGVybmFsRG9jdW1lbnQgPSBkb2N1bWVudCgpLmNhY2hlZFJlc291cmNlTG9hZGVyKCkucmVxdWVz
dFNWR0RvY3VtZW50KFdURk1vdmUocmVxdWVzdCkpOwogICAgICAgICBpZiAobV9leHRlcm5hbERv
Y3VtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hTTEltcG9ydFJ1bGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUveG1sL1hTTEltcG9ydFJ1bGUuY3BwCmluZGV4IGIzZDRlMWE0OWE1
ZTQ3ZTJlOTY5OGM4NGU2NTQxMmJiYjhjMGJlNTkuLjFjYWQ0NzdjMTQyYTBkMzMwZDk2MzMyYmVl
MGIzNDMyMmExZjQ2MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xJbXBvcnRS
dWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMSW1wb3J0UnVsZS5jcHAKQEAgLTI2
LDggKzI2LDggQEAKIAogI2luY2x1ZGUgIkNhY2hlZFhTTFN0eWxlU2hlZXQuaCIKICNpbmNsdWRl
ICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgotI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVz
dC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRmV0Y2hlZFJlc291cmNlUmVx
dWVzdC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
</data>
<flag name="review"
          id="313871"
          type_id="1"
          status="-"
          setter="beidson"
    />
          </attachment>
      

    </bug>

</bugzilla>