<?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>154296</bug_id>
          
          <creation_ts>2016-02-16 11:09:49 -0800</creation_ts>
          <short_desc>Modern IDB: WK2 IPC Scaffolding</short_desc>
          <delta_ts>2016-02-16 14:03:11 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>Safari 9</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>149117</blocked>
    
    <blocked>153808</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>achristensen</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ossy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1165189</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-02-16 11:09:49 -0800</bug_when>
    <thetext>Modern IDB: WK2 IPC Scaffolding</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165196</commentid>
    <comment_count>1</comment_count>
      <attachid>271445</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-02-16 11:13:32 -0800</bug_when>
    <thetext>Created attachment 271445
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165197</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-02-16 11:14:55 -0800</bug_when>
    <thetext>Attachment 271445 did not pass style-queue:


ERROR: Source/WebKit2/ChangeLog:10:  Need whitespace between colon and description  [changelog/filechangedescriptionwhitespace] [5]
ERROR: Source/WebKit2/WebProcess/Databases/WebDatabaseProvider.h:29:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/WebProcess/Databases/WebToDatabaseProcessConnection.h:60:  The parameter name &quot;sessionID&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 3 in 19 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165214</commentid>
    <comment_count>3</comment_count>
      <attachid>271445</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-02-16 11:24:51 -0800</bug_when>
    <thetext>Comment on attachment 271445
Patch v1

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

r=me

&gt; Source/WebKit2/DatabaseProcess/DatabaseToWebProcessConnection.h:76
&gt; +    HashMap&lt;uint64_t, RefPtr&lt;WebIDBConnectionToClient&gt;&gt; m_webIDBConnections;

It might be nice to typedef uint64_t ServerConnectionIdentifer.  There are a lot of uint64_t&apos;s in IDB.

&gt; Source/WebKit2/DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp:62
&gt; +    return *m_connectionToClient;

It would be nice if you could make m_connectionToClient a ref.  Does it need to be initialized after relaxAdoptionRequirement?

&gt; Source/WebKit2/WebProcess/Databases/WebDatabaseProvider.h:30
&gt; +#include &lt;WebCore/InProcessIDBServer.h&gt;
&gt;  #include &lt;WebCore/DatabaseProvider.h&gt;

Include order

&gt; Source/WebKit2/WebProcess/Databases/WebToDatabaseProcessConnection.h:60
&gt; +    WebIDBConnectionToServer&amp; idbConnectionToServerForSession(const WebCore::SessionID&amp; sessionID);

Parameter name should be removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165226</commentid>
    <comment_count>4</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-02-16 11:40:29 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 271445 [details]
&gt; Patch v1
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=271445&amp;action=review
&gt; 
&gt; r=me
&gt; 
&gt; &gt; Source/WebKit2/DatabaseProcess/DatabaseToWebProcessConnection.h:76
&gt; &gt; +    HashMap&lt;uint64_t, RefPtr&lt;WebIDBConnectionToClient&gt;&gt; m_webIDBConnections;
&gt; 
&gt; It might be nice to typedef uint64_t ServerConnectionIdentifer.  There are a
&gt; lot of uint64_t&apos;s in IDB.

Unclear to me why a whole bunch of compatible typedefs would be better :(

&gt; 
&gt; &gt; Source/WebKit2/DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp:62
&gt; &gt; +    return *m_connectionToClient;
&gt; 
&gt; It would be nice if you could make m_connectionToClient a ref.  

Can&apos;t.

&gt; Does it need to be initialized after relaxAdoptionRequirement?

Yes
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/Databases/WebDatabaseProvider.h:30
&gt; &gt; +#include &lt;WebCore/InProcessIDBServer.h&gt;
&gt; &gt;  #include &lt;WebCore/DatabaseProvider.h&gt;
&gt; 
&gt; Include order

Whoops!

&gt; 
&gt; &gt; Source/WebKit2/WebProcess/Databases/WebToDatabaseProcessConnection.h:60
&gt; &gt; +    WebIDBConnectionToServer&amp; idbConnectionToServerForSession(const WebCore::SessionID&amp; sessionID);
&gt; 
&gt; Parameter name should be removed.

Sure!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165229</commentid>
    <comment_count>5</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-02-16 11:45:18 -0800</bug_when>
    <thetext>gtk and elf are broken apparently because some headers from WebCore cannot be found... I don&apos;t know how to fix!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165231</commentid>
    <comment_count>6</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-02-16 11:45:59 -0800</bug_when>
    <thetext>NM, figured out it out in the WebKit2 CMakeLists.txt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165234</commentid>
    <comment_count>7</comment_count>
      <attachid>271460</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-02-16 11:47:19 -0800</bug_when>
    <thetext>Created attachment 271460
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165277</commentid>
    <comment_count>8</comment_count>
      <attachid>271460</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-02-16 12:58:54 -0800</bug_when>
    <thetext>Comment on attachment 271460
Patch for landing

Clearing flags on attachment: 271460

Committed r196651: &lt;http://trac.webkit.org/changeset/196651&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165278</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-02-16 12:58:57 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165304</commentid>
    <comment_count>10</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-02-16 14:03:11 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; Comment on attachment 271460 [details]
&gt; Patch for landing
&gt; 
&gt; Clearing flags on attachment: 271460
&gt; 
&gt; Committed r196651: &lt;http://trac.webkit.org/changeset/196651&gt;

It broke the Apple Mac cmake build.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>271445</attachid>
            <date>2016-02-16 11:13:32 -0800</date>
            <delta_ts>2016-02-16 11:47:19 -0800</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>47801</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBlNjMwMWM3Li44ZTFlOWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYg
QEAKKzIwMTYtMDItMTYgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIE1vZGVybiBJREI6IFdLMiBJUEMgU2NhZmZvbGRpbmcuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTQyOTYKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIE5vIGNoYW5nZSBpbiBiZWhhdmlv
ciB5ZXQ7IEp1c3QgbGF5aW5nIHRoZSBncm91bmR3b3JrLgorCisgICAgICAgICogTW9kdWxlcy9p
bmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5oOgorICAgICAgICAqIE1vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGllbnQuaDoKKyAgICAgICAgKiBN
b2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCUmVzb3VyY2VJZGVudGlmaWVyLmg6CisKIDIwMTYt
MDItMTUgIEtvbnN0YW50aW4gVG9rYXJldiAgPGFubnVsZW5AeWFuZGV4LnJ1PgogCiAgICAgICAg
IFtjbWFrZV0gQ29uc29saWRhdGVkIExpbnV4LXNwZWNpZmljIGZpbGUgbGlzdHMuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlv
blRvU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURC
Q29ubmVjdGlvblRvU2VydmVyLmgKaW5kZXggOTg0NzJmMy4uYTY1ODhjZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1Nl
cnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJD
b25uZWN0aW9uVG9TZXJ2ZXIuaApAQCAtNTIsNyArNTIsNyBAQCBjbGFzcyBUcmFuc2FjdGlvbk9w
ZXJhdGlvbjsKIAogY2xhc3MgSURCQ29ubmVjdGlvblRvU2VydmVyIDogcHVibGljIFJlZkNvdW50
ZWQ8SURCQ29ubmVjdGlvblRvU2VydmVyPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxJREJD
b25uZWN0aW9uVG9TZXJ2ZXI+IGNyZWF0ZShJREJDb25uZWN0aW9uVG9TZXJ2ZXJEZWxlZ2F0ZSYp
OworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8SURCQ29ubmVjdGlvblRvU2VydmVyPiBj
cmVhdGUoSURCQ29ubmVjdGlvblRvU2VydmVyRGVsZWdhdGUmKTsKIAogICAgIHVpbnQ2NF90IGlk
ZW50aWZpZXIoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVudC5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVudC5oCmluZGV4IDg4
MDY2NGIuLmM1ZGM0MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50LmgKQEAgLTQ0LDcg
KzQ0LDcgQEAgY2xhc3MgVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uOwogCiBjbGFzcyBJREJD
b25uZWN0aW9uVG9DbGllbnQgOiBwdWJsaWMgUmVmQ291bnRlZDxJREJDb25uZWN0aW9uVG9DbGll
bnQ+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPElEQkNvbm5lY3Rpb25Ub0NsaWVudD4gY3Jl
YXRlKElEQkNvbm5lY3Rpb25Ub0NsaWVudERlbGVnYXRlJik7CisgICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIFJlZjxJREJDb25uZWN0aW9uVG9DbGllbnQ+IGNyZWF0ZShJREJDb25uZWN0aW9uVG9D
bGllbnREZWxlZ2F0ZSYpOwogICAgIAogICAgIHVpbnQ2NF90IGlkZW50aWZpZXIoKSBjb25zdDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lE
QlJlc291cmNlSWRlbnRpZmllci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2hhcmVkL0lEQlJlc291cmNlSWRlbnRpZmllci5oCmluZGV4IDdhNjI5NzAuLmQyZTE0NmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJSZXNv
dXJjZUlkZW50aWZpZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9z
aGFyZWQvSURCUmVzb3VyY2VJZGVudGlmaWVyLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgog
ICAgIGV4cGxpY2l0IElEQlJlc291cmNlSWRlbnRpZmllcihjb25zdCBJREJTZXJ2ZXI6OklEQkNv
bm5lY3Rpb25Ub0NsaWVudCYpOwogCiAgICAgc3RhdGljIElEQlJlc291cmNlSWRlbnRpZmllciBk
ZWxldGVkVmFsdWUoKTsKLSAgICBib29sIGlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkgY29uc3Q7
CisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBpc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpIGNvbnN0
OwogCiAgICAgc3RhdGljIElEQlJlc291cmNlSWRlbnRpZmllciBlbXB0eVZhbHVlKCk7CiAgICAg
Ym9vbCBpc0VtcHR5KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlz
dHMudHh0IGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKaW5kZXggMDAzYmM1ZC4uNjU3
OTI0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKKysrIGIvU291
cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKQEAgLTE5NSw2ICsxOTUsNyBAQCBzZXQoV2ViS2l0
Ml9TT1VSQ0VTCiAgICAgRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9JREJTZXJpYWxpemF0aW9u
LmNwcAogICAgIERhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0YWJhc2UuY3Bw
CiAgICAgRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZUlkZW50aWZp
ZXIuY3BwCisgICAgRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9D
bGllbnQuY3BwCiAKICAgICBEYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL3NxbGl0ZS9TUUxpdGVJ
REJDdXJzb3IuY3BwCiAgICAgRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9zcWxpdGUvU1FMaXRl
SURCVHJhbnNhY3Rpb24uY3BwCkBAIC01MDgsNiArNTA5LDcgQEAgc2V0KFdlYktpdDJfU09VUkNF
UwogICAgIFdlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYkRhdGFiYXNlUHJvdmlkZXIuY3BwCiAgICAg
V2ViUHJvY2Vzcy9EYXRhYmFzZXMvV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uLmNwcAog
CisgICAgV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1Nl
cnZlci5jcHAKICAgICBXZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCRmFjdG9y
eUJhY2tlbmQuY3BwCiAgICAgV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQlNl
cnZlckNvbm5lY3Rpb24uY3BwCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBiMzI2NDI0Li5hNGZlZGY4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsODcgQEAKKzIwMTYtMDItMTYgIEJyYWR5IEVpZHNvbiAgPGJlaWRz
b25AYXBwbGUuY29tPgorCisgICAgICAgIE1vZGVybiBJREI6IFdLMiBJUEMgU2NhZmZvbGRpbmcu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTQyOTYK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAg
IE5vIGNoYW5nZSBpbiBiZWhhdmlvciB5ZXQ7IEp1c3QgbGF5aW5nIHRoZSBncm91bmR3b3JrLgor
CisgICAgICAgICogQ01ha2VMaXN0cy50eHQKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisKKyAgICAgICAgKiBEYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dl
YlByb2Nlc3NDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RGF0YWJhc2VUb1dlYlBy
b2Nlc3NDb25uZWN0aW9uOjplc3RhYmxpc2hJREJDb25uZWN0aW9uVG9TZXJ2ZXIpOgorICAgICAg
ICAoV2ViS2l0OjpEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OnJlbW92ZUlEQkNvbm5l
Y3Rpb25Ub1NlcnZlcik6CisgICAgICAgICogRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlVG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbi5oOgorICAgICAgICAqIERhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW46CisgICAgICAgIAorICAgICAgICAqIERh
dGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcDogQWRk
ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpXZWJJREJDb25uZWN0
aW9uVG9DbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6
On5XZWJJREJDb25uZWN0aW9uVG9DbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25u
ZWN0aW9uVG9DbGllbnQ6OmRpc2Nvbm5lY3RlZEZyb21XZWJQcm9jZXNzKToKKyAgICAgICAgKFdl
YktpdDo6V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbik6
CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6Y29ubmVjdGlvblRv
Q2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWRE
ZWxldGVEYXRhYmFzZSk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25Ub0NsaWVu
dDo6ZGlkT3BlbkRhdGFiYXNlKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRv
Q2xpZW50OjpkaWRBYm9ydFRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29u
bmVjdGlvblRvQ2xpZW50OjpkaWRDb21taXRUcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJLaXQ6
OldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkQ3JlYXRlT2JqZWN0U3RvcmUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZERlbGV0ZU9iamVjdFN0b3Jl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWRDbGVhck9i
amVjdFN0b3JlKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Ojpk
aWRDcmVhdGVJbmRleCk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25Ub0NsaWVu
dDo6ZGlkRGVsZXRlSW5kZXgpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9D
bGllbnQ6OmRpZFB1dE9yQWRkKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRv
Q2xpZW50OjpkaWRHZXRSZWNvcmQpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9u
VG9DbGllbnQ6OmRpZEdldENvdW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlv
blRvQ2xpZW50OjpkaWREZWxldGVSZWNvcmQpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25u
ZWN0aW9uVG9DbGllbnQ6OmRpZE9wZW5DdXJzb3IpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJD
b25uZWN0aW9uVG9DbGllbnQ6OmRpZEl0ZXJhdGVDdXJzb3IpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZFN0YXJ0VHJhbnNhY3Rpb24p
OgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6Om5vdGlmeU9wZW5E
QlJlcXVlc3RCbG9ja2VkKToKKyAgICAgICAgKiBEYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1dl
YklEQkNvbm5lY3Rpb25Ub0NsaWVudC5oOiBBZGRlZC4KKyAgICAgICAgCisgICAgICAgICogUGxh
dGZvcm0vTG9nZ2luZy5oOgorICAgICAgICAgICAgICAgIAorICAgICAgICAqIFdlYlByb2Nlc3Mv
RGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYktpdDo6Z2VuZXJhdGVDb25uZWN0aW9uVG9TZXJ2ZXJJZGVudGlmaWVyKToK
KyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OldlYklEQkNvbm5lY3Rpb25U
b1NlcnZlcik6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6fldl
YklEQkNvbm5lY3Rpb25Ub1NlcnZlcik6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rp
b25Ub1NlcnZlcjo6bWVzc2FnZVNlbmRlckNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpX
ZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmNvcmVDb25uZWN0aW9uVG9TZXJ2ZXIpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRlbGV0ZURhdGFiYXNlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpvcGVuRGF0YWJhc2UpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmFib3J0VHJhbnNhY3Rp
b24pOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmNvbW1pdFRy
YW5zYWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpk
aWRGaW5pc2hIYW5kbGluZ1ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJL
aXQ6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Y3JlYXRlT2JqZWN0U3RvcmUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRlbGV0ZU9iamVjdFN0b3JlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpjbGVhck9iamVjdFN0
b3JlKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpjcmVhdGVJ
bmRleCk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGVsZXRl
SW5kZXgpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OnB1dE9y
QWRkKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpnZXRSZWNv
cmQpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmdldENvdW50
KToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpkZWxldGVSZWNv
cmQpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6Om9wZW5DdXJz
b3IpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6Oml0ZXJhdGVD
dXJzb3IpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmVzdGFi
bGlzaFRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRvU2Vy
dmVyOjpkYXRhYmFzZUNvbm5lY3Rpb25DbG9zZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJD
b25uZWN0aW9uVG9TZXJ2ZXI6OmFib3J0T3BlbkFuZFVwZ3JhZGVOZWVkZWQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZl
bnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25u
ZWN0aW9uVG9TZXJ2ZXIuaDogQWRkZWQuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0RhdGFiYXNl
cy9XZWJEYXRhYmFzZVByb3ZpZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRGF0YWJhc2VQ
cm92aWRlcjo6aWRiQ29ubmVjdGlvblRvU2VydmVyRm9yU2Vzc2lvbik6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9EYXRhYmFzZXMvV2ViRGF0YWJhc2VQcm92aWRlci5oOgorCisgICAgICAgICogV2Vi
UHJvY2Vzcy9EYXRhYmFzZXMvV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uOjppZGJDb25uZWN0
aW9uVG9TZXJ2ZXJGb3JTZXNzaW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0RhdGFiYXNlcy9X
ZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24uaDoKKwogMjAxNi0wMi0xNSAgR3l1eW91bmcg
S2ltICA8Z3l1eW91bmcua2ltQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW0NNYWtlXVtNYWNdIFJl
bW92ZSBXS05QQVBJUGx1Z0luQ29udGFpbmVyLm1tIGluIFdlYktpdDIvUGxhdGZvcm1NYWMuY21h
a2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNz
L0RhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAKaW5kZXggOTg4YzMxOC4uOWEzNTk4
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlVG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9j
ZXNzL0RhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAKQEAgLTI5LDYgKzI5LDggQEAK
ICNpbmNsdWRlICJEYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiRGF0
YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiRGF0YWJhc2VU
b1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisj
aW5jbHVkZSAiV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmgiCiAjaW5jbHVkZSA8d3RmL1J1bkxv
b3AuaD4KIAogI2lmIEVOQUJMRShEQVRBQkFTRV9QUk9DRVNTKQpAQCAtMTEzLDYgKzExNSwyMiBA
QCB2b2lkIERhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6cmVtb3ZlRGF0YWJhc2VQcm9j
ZXNzSURCQ29ubmVjdGlvbih1aW50NjRfdAogICAgIFJlZlB0cjxEYXRhYmFzZVByb2Nlc3NJREJD
b25uZWN0aW9uPiBpZGJDb25uZWN0aW9uID0gbV9pZGJDb25uZWN0aW9ucy50YWtlKHNlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyKTsKICAgICBpZGJDb25uZWN0aW9uLT5kaXNjb25uZWN0ZWRGcm9t
V2ViUHJvY2VzcygpOwogfQorCit2b2lkIERhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6
ZXN0YWJsaXNoSURCQ29ubmVjdGlvblRvU2VydmVyKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyKQoreworICAgIExPRyhJbmRleGVkREIsICJEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb246OmVzdGFibGlzaElEQkNvbm5lY3Rpb25Ub1NlcnZlciAtICUiIFBSSXU2NCwgc2Vy
dmVyQ29ubmVjdGlvbklkZW50aWZpZXIpOworICAgIEFTU0VSVCghbV93ZWJJREJDb25uZWN0aW9u
cy5jb250YWlucyhzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikpOworCisgICAgbV93ZWJJREJD
b25uZWN0aW9ucy5zZXQoc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYklEQkNvbm5lY3Rp
b25Ub0NsaWVudDo6Y3JlYXRlKCp0aGlzLCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikpOwor
fQorCit2b2lkIERhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6cmVtb3ZlSURCQ29ubmVj
dGlvblRvU2VydmVyKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKQoreworICAg
IEFTU0VSVChtX3dlYklEQkNvbm5lY3Rpb25zLmNvbnRhaW5zKHNlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyKSk7CisKKyAgICBhdXRvIGNvbm5lY3Rpb24gPSBtX3dlYklEQkNvbm5lY3Rpb25zLnRh
a2Uoc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpOworICAgIGNvbm5lY3Rpb24tPmRpc2Nvbm5l
Y3RlZEZyb21XZWJQcm9jZXNzKCk7Cit9CiAjZW5kaWYKIAogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uLmgKaW5kZXggMTUwNmVhYi4uMWM0MjdlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24uaApAQCAtMzYsNiArMzYsOCBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3Mg
V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OworCiBjbGFzcyBEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rp
b24+LCBwdWJsaWMgSVBDOjpDb25uZWN0aW9uOjpDbGllbnQsIHB1YmxpYyBJUEM6Ok1lc3NhZ2VT
ZW5kZXIgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8RGF0YWJhc2VUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uPiBjcmVhdGUoSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKTsKQEAgLTYwLDEyICs2
MiwxOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3Rp
bmF0aW9uSUQoKSBvdmVycmlkZSB7IHJldHVybiAwOyB9CiAKICNpZiBFTkFCTEUoSU5ERVhFRF9E
QVRBQkFTRSkKLSAgICAvLyBNZXNzYWdlcyBoYW5kbGVycworICAgIC8vIE1lc3NhZ2VzIGhhbmRs
ZXJzIChMZWdhY3kgSURCKQogICAgIHZvaWQgZXN0YWJsaXNoSURCQ29ubmVjdGlvbih1aW50NjRf
dCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcik7CiAgICAgdm9pZCByZW1vdmVEYXRhYmFzZVBy
b2Nlc3NJREJDb25uZWN0aW9uKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKTsK
IAogICAgIHR5cGVkZWYgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPERhdGFiYXNlUHJvY2Vzc0lE
QkNvbm5lY3Rpb24+PiBJREJDb25uZWN0aW9uTWFwOwogICAgIElEQkNvbm5lY3Rpb25NYXAgbV9p
ZGJDb25uZWN0aW9uczsKKworICAgIC8vIE1lc3NhZ2VzIGhhbmRsZXJzIChNb2Rlcm4gSURCKQor
ICAgIHZvaWQgZXN0YWJsaXNoSURCQ29ubmVjdGlvblRvU2VydmVyKHVpbnQ2NF90IHNlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyKTsKKyAgICB2b2lkIHJlbW92ZUlEQkNvbm5lY3Rpb25Ub1NlcnZl
cih1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcik7CisKKyAgICBIYXNoTWFwPHVp
bnQ2NF90LCBSZWZQdHI8V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Pj4gbV93ZWJJREJDb25uZWN0
aW9uczsKICNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKIAogICAgIFJlZlB0cjxJ
UEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nlc3ND
b25uZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4IGQ5NmY0NjAuLjA2MTA5M2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24ubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0Rh
dGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtMjQsOSArMjQsMTMg
QEAKIAogbWVzc2FnZXMgLT4gRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uIExlZ2FjeVJl
Y2VpdmVyIHsKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLSAgICAjIENyZWF0ZXMgYSBj
b25uZWN0aW9uIGZvciBjb21tdW5pY2F0aW9uIHdpdGggYSBXZWJQcm9jZXNzCisgICAgIyBDcmVh
dGVzIGEgY29ubmVjdGlvbiBmb3IgY29tbXVuaWNhdGlvbiB3aXRoIGEgV2ViUHJvY2VzcyAoTGVn
YWN5IElEQikKICAgICBFc3RhYmxpc2hJREJDb25uZWN0aW9uKHVpbnQ2NF90IHNlcnZlckNvbm5l
Y3Rpb25JZGVudGlmaWVyKQogICAgIFJlbW92ZURhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb24o
dWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpCisKKyAgICAjIENyZWF0ZXMgYSBj
b25uZWN0aW9uIGZvciBjb21tdW5pY2F0aW9uIHdpdGggYSBXZWJQcm9jZXNzIChNb2Rlcm4gSURC
KQorICAgIEVzdGFibGlzaElEQkNvbm5lY3Rpb25Ub1NlcnZlcih1aW50NjRfdCBzZXJ2ZXJDb25u
ZWN0aW9uSWRlbnRpZmllcikKKyAgICBSZW1vdmVJREJDb25uZWN0aW9uVG9TZXJ2ZXIodWludDY0
X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpCiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9u
VG9DbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9X
ZWJJREJDb25uZWN0aW9uVG9DbGllbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjFiZWJhMzkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFz
ZVByb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAKQEAgLTAsMCAr
MSwxMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2Vi
SURCQ29ubmVjdGlvblRvQ2xpZW50LmgiCisKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkK
KwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitSZWY8
V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50PiBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmNyZWF0
ZShEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIHVpbnQ2NF90IHNl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdl
YklEQkNvbm5lY3Rpb25Ub0NsaWVudChjb25uZWN0aW9uLCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRp
ZmllcikpOworfQorCitXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OldlYklEQkNvbm5lY3Rpb25U
b0NsaWVudChEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIHVpbnQ2
NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKQorICAgIDogbV9jb25uZWN0aW9uKGNvbm5l
Y3Rpb24pCit7CisgICAgcmVsYXhBZG9wdGlvblJlcXVpcmVtZW50KCk7CisgICAgbV9jb25uZWN0
aW9uVG9DbGllbnQgPSBJREJTZXJ2ZXI6OklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6Y3JlYXRlKCp0
aGlzKTsKK30KKworV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Ojp+V2ViSURCQ29ubmVjdGlvblRv
Q2xpZW50KCkKK3sKK30KKwordm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpc2Nvbm5l
Y3RlZEZyb21XZWJQcm9jZXNzKCkKK3sKK30KKworSVBDOjpDb25uZWN0aW9uKiBXZWJJREJDb25u
ZWN0aW9uVG9DbGllbnQ6Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkKK3sKKyAgICByZXR1cm4g
bV9jb25uZWN0aW9uLT5jb25uZWN0aW9uKCk7Cit9CisKK1dlYkNvcmU6OklEQlNlcnZlcjo6SURC
Q29ubmVjdGlvblRvQ2xpZW50JiBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmNvbm5lY3Rpb25U
b0NsaWVudCgpCit7CisgICAgcmV0dXJuICptX2Nvbm5lY3Rpb25Ub0NsaWVudDsKK30KKwordm9p
ZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZERlbGV0ZURhdGFiYXNlKGNvbnN0IFdlYkNv
cmU6OklEQlJlc3VsdERhdGEmKQoreworfQorCit2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVu
dDo6ZGlkT3BlbkRhdGFiYXNlKGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmKQoreworfQor
Cit2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkQWJvcnRUcmFuc2FjdGlvbihjb25z
dCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwg
Y29uc3QgV2ViQ29yZTo6SURCRXJyb3ImKQoreworfQorCit2b2lkIFdlYklEQkNvbm5lY3Rpb25U
b0NsaWVudDo6ZGlkQ29tbWl0VHJhbnNhY3Rpb24oY29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJ
ZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OklEQkVycm9y
JikKK3sKK30KKwordm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZENyZWF0ZU9iamVj
dFN0b3JlKGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmKQoreworfQorCit2b2lkIFdlYklE
QkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkRGVsZXRlT2JqZWN0U3RvcmUoY29uc3QgV2ViQ29yZTo6
SURCUmVzdWx0RGF0YSYpCit7Cit9CisKK3ZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Ojpk
aWRDbGVhck9iamVjdFN0b3JlKGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmKQoreworfQor
Cit2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkQ3JlYXRlSW5kZXgoY29uc3QgV2Vi
Q29yZTo6SURCUmVzdWx0RGF0YSYpCit7Cit9CisKK3ZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xp
ZW50OjpkaWREZWxldGVJbmRleChjb25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRhJikKK3sKK30K
Kwordm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZFB1dE9yQWRkKGNvbnN0IFdlYkNv
cmU6OklEQlJlc3VsdERhdGEmKQoreworfQorCit2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVu
dDo6ZGlkR2V0UmVjb3JkKGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmKQoreworfQorCit2
b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkR2V0Q291bnQoY29uc3QgV2ViQ29yZTo6
SURCUmVzdWx0RGF0YSYpCit7Cit9CisKK3ZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Ojpk
aWREZWxldGVSZWNvcmQoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYpCit7Cit9CisKK3Zv
aWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWRPcGVuQ3Vyc29yKGNvbnN0IFdlYkNvcmU6
OklEQlJlc3VsdERhdGEmKQoreworfQorCit2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6
ZGlkSXRlcmF0ZUN1cnNvcihjb25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRhJikKK3sKK30KKwor
dm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQoV2Vi
Q29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24mLCBjb25zdCBXZWJD
b3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCB1aW50NjRfdCBy
ZXF1ZXN0ZWRWZXJzaW9uKQoreworfQorCit2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6
ZGlkU3RhcnRUcmFuc2FjdGlvbihjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXIm
IHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6SURCRXJyb3ImKQoreworfQor
Cit2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6bm90aWZ5T3BlbkRCUmVxdWVzdEJsb2Nr
ZWQoY29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmll
ciwgdWludDY0X3Qgb2xkVmVyc2lvbiwgdWludDY0X3QgbmV3VmVyc2lvbikKK3sKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvV2Vi
SURCQ29ubmVjdGlvblRvQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3Mv
SW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjY0ZTVkMDEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5oCkBA
IC0wLDAgKzEsODUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYklEQkNvbm5lY3Rpb25Ub0Ns
aWVudF9oCisjZGVmaW5lIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudF9oCisKKyNpZiBFTkFCTEUo
SU5ERVhFRF9EQVRBQkFTRSkKKworI2luY2x1ZGUgIkRhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVj
dGlvbi5oIgorI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0lE
QkNvbm5lY3Rpb25Ub0NsaWVudC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2Vi
SURCQ29ubmVjdGlvblRvQ2xpZW50IGZpbmFsIDogcHVibGljIFdlYkNvcmU6OklEQlNlcnZlcjo6
SURCQ29ubmVjdGlvblRvQ2xpZW50RGVsZWdhdGUsIHB1YmxpYyBJUEM6Ok1lc3NhZ2VTZW5kZXIs
IHB1YmxpYyBSZWZDb3VudGVkPFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudD4geworcHVibGljOgor
ICAgIHN0YXRpYyBSZWY8V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50PiBjcmVhdGUoRGF0YWJhc2VU
b1dlYlByb2Nlc3NDb25uZWN0aW9uJiwgdWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZp
ZXIpOworCisgICAgdmlydHVhbCB+V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50KCk7CisKKyAgICBX
ZWJDb3JlOjpJREJTZXJ2ZXI6OklEQkNvbm5lY3Rpb25Ub0NsaWVudCYgY29ubmVjdGlvblRvQ2xp
ZW50KCk7CisgICAgdmlydHVhbCB1aW50NjRfdCBpZGVudGlmaWVyKCkgY29uc3Qgb3ZlcnJpZGUg
ZmluYWwgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CisgICAgdmlydHVhbCB1aW50NjRfdCBtZXNz
YWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIG92ZXJyaWRlIGZpbmFsIHsgcmV0dXJuIG1faWRlbnRp
ZmllcjsgfQorCisgICAgdmlydHVhbCB2b2lkIGRpZERlbGV0ZURhdGFiYXNlKGNvbnN0IFdlYkNv
cmU6OklEQlJlc3VsdERhdGEmKSBvdmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlk
T3BlbkRhdGFiYXNlKGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmKSBvdmVycmlkZSBmaW5h
bDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQWJvcnRUcmFuc2FjdGlvbihjb25zdCBXZWJDb3JlOjpJ
REJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgV2ViQ29y
ZTo6SURCRXJyb3ImKSBvdmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tbWl0
VHJhbnNhY3Rpb24oY29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2Fj
dGlvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OklEQkVycm9yJikgb3ZlcnJpZGUgZmluYWw7
CisgICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZU9iamVjdFN0b3JlKGNvbnN0IFdlYkNvcmU6OklE
QlJlc3VsdERhdGEmKSBvdmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRGVsZXRl
T2JqZWN0U3RvcmUoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYpIG92ZXJyaWRlIGZpbmFs
OworICAgIHZpcnR1YWwgdm9pZCBkaWRDbGVhck9iamVjdFN0b3JlKGNvbnN0IFdlYkNvcmU6OklE
QlJlc3VsdERhdGEmKSBvdmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRl
SW5kZXgoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYpIG92ZXJyaWRlIGZpbmFsOworICAg
IHZpcnR1YWwgdm9pZCBkaWREZWxldGVJbmRleChjb25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRh
Jikgb3ZlcnJpZGUgZmluYWw7CisgICAgdmlydHVhbCB2b2lkIGRpZFB1dE9yQWRkKGNvbnN0IFdl
YkNvcmU6OklEQlJlc3VsdERhdGEmKSBvdmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkR2V0UmVjb3JkKGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmKSBvdmVycmlkZSBmaW5h
bDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkR2V0Q291bnQoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0
RGF0YSYpIG92ZXJyaWRlIGZpbmFsOworICAgIHZpcnR1YWwgdm9pZCBkaWREZWxldGVSZWNvcmQo
Y29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYpIG92ZXJyaWRlIGZpbmFsOworICAgIHZpcnR1
YWwgdm9pZCBkaWRPcGVuQ3Vyc29yKGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmKSBvdmVy
cmlkZSBmaW5hbDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkSXRlcmF0ZUN1cnNvcihjb25zdCBXZWJD
b3JlOjpJREJSZXN1bHREYXRhJikgb3ZlcnJpZGUgZmluYWw7CisKKyAgICB2aXJ0dWFsIHZvaWQg
ZmlyZVZlcnNpb25DaGFuZ2VFdmVudChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFi
YXNlQ29ubmVjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllciYgcmVx
dWVzdElkZW50aWZpZXIsIHVpbnQ2NF90IHJlcXVlc3RlZFZlcnNpb24pIG92ZXJyaWRlIGZpbmFs
OworICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydFRyYW5zYWN0aW9uKGNvbnN0IFdlYkNvcmU6OklE
QlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBXZWJDb3Jl
OjpJREJFcnJvciYpIG92ZXJyaWRlIGZpbmFsOworICAgIHZpcnR1YWwgdm9pZCBub3RpZnlPcGVu
REJSZXF1ZXN0QmxvY2tlZChjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXImIHJl
cXVlc3RJZGVudGlmaWVyLCB1aW50NjRfdCBvbGRWZXJzaW9uLCB1aW50NjRfdCBuZXdWZXJzaW9u
KSBvdmVycmlkZSBmaW5hbDsKKworICAgIHZpcnR1YWwgdm9pZCByZWYoKSBvdmVycmlkZSB7IFJl
ZkNvdW50ZWQ8V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Pjo6cmVmKCk7IH0KKyAgICB2aXJ0dWFs
IHZvaWQgZGVyZWYoKSBvdmVycmlkZSB7IFJlZkNvdW50ZWQ8V2ViSURCQ29ubmVjdGlvblRvQ2xp
ZW50Pjo6ZGVyZWYoKTsgfQorCisgICAgdm9pZCBkaXNjb25uZWN0ZWRGcm9tV2ViUHJvY2Vzcygp
OworCitwcml2YXRlOgorICAgIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudChEYXRhYmFzZVRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb24mLCB1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcik7
CisKKyAgICB2aXJ0dWFsIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24o
KSBvdmVycmlkZSBmaW5hbDsKKyAgICBSZWY8RGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9u
PiBtX2Nvbm5lY3Rpb247CisKKyAgICB1aW50NjRfdCBtX2lkZW50aWZpZXI7CisgICAgUmVmUHRy
PFdlYkNvcmU6OklEQlNlcnZlcjo6SURCQ29ubmVjdGlvblRvQ2xpZW50PiBtX2Nvbm5lY3Rpb25U
b0NsaWVudDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxF
KElOREVYRURfREFUQUJBU0UpCisjZW5kaWYgLy8gV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50X2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0xvZ2dpbmcuaCBiL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtL0xvZ2dpbmcuaAppbmRleCA5YmI4MzQ1Li5kNGMzMzFiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Mb2dnaW5nLmgKKysrIGIvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vTG9nZ2luZy5oCkBAIC00MSw2ICs0MSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQg
ewogICAgIE0oQ29udGV4dE1lbnUpIFwKICAgICBNKElEQikgXAogICAgIE0oSWNvbkRhdGFiYXNl
KSBcCisgICAgTShJbmRleGVkREIpIFwKICAgICBNKEluc3BlY3RvclNlcnZlcikgXAogICAgIE0o
S2V5SGFuZGxpbmcpIFwKICAgICBNKE5ldHdvcmspIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dl
YktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2MTk1YzY0Li5hN2E1NGVlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC04NTQsNiArODU0LDggQEAKIAkJNTEwMzJGMTkxODBGNzNCQjAwOTYxQkI3IC8qIFdlYlRv
RGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTEwMzJGMTcxODBGNzNCQjAwOTYxQkI3IC8qIFdlYlRvRGF0YWJh
c2VQcm9jZXNzQ29ubmVjdGlvbi5oICovOyB9OwogCQk1MTAzMkYxRDE4MEY3OTE3MDA5NjFCQjcg
LyogRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMDMyRjFCMTgwRjc5
MTcwMDk2MUJCNyAvKiBEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2
ZXIuY3BwICovOyB9OwogCQk1MTAzMkYxRTE4MEY3OTE3MDA5NjFCQjcgLyogRGF0YWJhc2VUb1dl
YlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxMDMyRjFDMTgwRjc5MTcwMDk2MUJCNyAvKiBEYXRhYmFzZVRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oICovOyB9OworCQk1MTA1MjM2RjFDNzM5RDQy
MDA3OTkzQ0IgLyogV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMDUyMzZEMUM3MzkzRTkwMDc5OTNDQiAv
KiBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQuY3BwICovOyB9OworCQk1MTA1MjM3MDFDNzM5RDQy
MDA3OTkzQ0IgLyogV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTA1MjM2RTFDNzM5M0U5MDA3OTkzQ0IgLyog
V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmggKi87IH07CiAJCTUxMDY0RDM1MTg5NzgxQzQwMDRC
MkZFQiAvKiBTUUxpdGVJREJDdXJzb3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTEwNjREMzMxODk3ODFDNDAwNEIyRkVCIC8qIFNRTGl0ZUlEQkN1
cnNvci5jcHAgKi87IH07CiAJCTUxMDY0RDM2MTg5NzgxQzQwMDRCMkZFQiAvKiBTUUxpdGVJREJD
dXJzb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
MDY0RDM0MTg5NzgxQzQwMDRCMkZFQiAvKiBTUUxpdGVJREJDdXJzb3IuaCAqLzsgfTsKIAkJNTEw
NkQ3QzIxOEJEQkU3MzAwMEFCMTY2IC8qIENvbnRleHRNZW51Q29udGV4dERhdGEuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwNkQ3QkYxOEJEQkU3
MzAwMEFCMTY2IC8qIENvbnRleHRNZW51Q29udGV4dERhdGEuY3BwICovOyB9OwpAQCAtOTE0LDYg
KzkxNiw4IEBACiAJCTUxM0ExNjREMTYzMEE5QkYwMDVEN0QyMiAvKiBOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTEzQTE2NEExNjMwQTlCRjAwNUQ3RDIyIC8qIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmggKi87IH07CiAJCTUxM0U0NjJEMUFEODM3NTYwMDE2MjM0QSAvKiBXS1NoYXJpbmdT
ZXJ2aWNlUGlja2VyRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUxM0U0NjJCMUFEODM3NTYwMDE2MjM0QSAvKiBXS1NoYXJpbmdTZXJ2aWNl
UGlja2VyRGVsZWdhdGUuaCAqLzsgfTsKIAkJNTEzRTQ2MkUxQUQ4Mzc1NjAwMTYyMzRBIC8qIFdL
U2hhcmluZ1NlcnZpY2VQaWNrZXJEZWxlZ2F0ZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxM0U0NjJDMUFEODM3NTYwMDE2MjM0QSAvKiBXS1NoYXJp
bmdTZXJ2aWNlUGlja2VyRGVsZWdhdGUubW0gKi87IH07CisJCTUxNDEyOTk0MUM2NDI4QkIwMDU5
RTcxNCAvKiBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNDEyOTkyMUM2NDI4MTAwMDU5RTcxNCAvKiBXZWJJ
REJDb25uZWN0aW9uVG9TZXJ2ZXIuaCAqLzsgfTsKKwkJNTE0MTI5OTUxQzY0MjhDMjAwNTlFNzE0
IC8qIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTQxMjk5MTFDNjQyODEwMDA1OUU3MTQgLyogV2ViSURC
Q29ubmVjdGlvblRvU2VydmVyLmNwcCAqLzsgfTsKIAkJNTE0QkRFRDMxNkM5OEVERDAwRTRFMjVF
IC8qIFN0YXRpc3RpY3NSZXF1ZXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MTRCREVEMjE2Qzk4RUREMDBFNEUyNUUgLyogU3RhdGlzdGljc1JlcXVl
c3QuaCAqLzsgfTsKIAkJNTE0RDlGNTcxOTExOUQzNTAwMDA2M0E3IC8qIFNlcnZpY2VzQ29udHJv
bGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE0
RDlGNTUxOTExOUQzNTAwMDA2M0E3IC8qIFNlcnZpY2VzQ29udHJvbGxlci5oICovOyB9OwogCQk1
MTREOUY1ODE5MTE5RDM1MDAwMDYzQTcgLyogU2VydmljZXNDb250cm9sbGVyLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE0RDlGNTYxOTExOUQzNTAw
MDA2M0E3IC8qIFNlcnZpY2VzQ29udHJvbGxlci5tbSAqLzsgfTsKQEAgLTI4NTEsNiArMjg1NSw4
IEBACiAJCTUxMDMyRjFBMTgwRjc0RjEwMDk2MUJCNyAvKiBEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24ubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9u
Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTAzMkYxQjE4MEY3
OTE3MDA5NjFCQjcgLyogRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2Vp
dmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERhdGFiYXNlVG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTUxMDMyRjFDMTgwRjc5MTcwMDk2MUJCNyAvKiBEYXRhYmFzZVRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk1MTA1MjM2RDFDNzM5M0U5MDA3OTkzQ0IgLyogV2ViSURCQ29ubmVj
dGlvblRvQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdl
YklEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTUxMDUyMzZFMUM3MzkzRTkwMDc5OTNDQiAvKiBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMDVCMEQ0MTYyRjdBN0EwMEUyNzcw
OSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcDsgcGF0aCA9IE5ldHdv
cmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTEwNUIwRDUxNjJGN0E3QTAwRTI3NzA5IC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBOZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb24uaDsgcGF0aCA9IE5ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMDVCMEYzMTYzMDg3MkUwMEUyNzcwOSAvKiBOZXR3
b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzUHJveHkubWVz
c2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yOTIwLDYgKzI5MjYsOCBA
QAogCQk1MTNBMTY0QjE2MzBBOUJGMDA1RDdEMjIgLyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW47IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTEzRTQ2MkIxQUQ4Mzc1NjAwMTYyMzRBIC8qIFdLU2hhcmluZ1NlcnZpY2VQaWNr
ZXJEZWxlZ2F0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1NoYXJpbmdT
ZXJ2aWNlUGlja2VyRGVsZWdhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEz
RTQ2MkMxQUQ4Mzc1NjAwMTYyMzRBIC8qIFdLU2hhcmluZ1NlcnZpY2VQaWNrZXJEZWxlZ2F0ZS5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLU2hhcmluZ1NlcnZp
Y2VQaWNrZXJEZWxlZ2F0ZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTE0MTI5
OTExQzY0MjgxMDAwNTlFNzE0IC8qIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTQxMjk5MjFDNjQyODEwMDA1OUU3
MTQgLyogV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1MTRCREVEMjE2Qzk4RUREMDBFNEUyNUUgLyogU3RhdGlzdGljc1JlcXVlc3Qu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RhdGlzdGljc1JlcXVlc3QuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE0RDlGNTUxOTExOUQzNTAwMDA2M0E3IC8q
IFNlcnZpY2VzQ29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
ZXJ2aWNlc0NvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE0RDlG
NTYxOTExOUQzNTAwMDA2M0E3IC8qIFNlcnZpY2VzQ29udHJvbGxlci5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNlcnZpY2VzQ29udHJvbGxlci5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTUzMDYsNiArNTMxNCw4IEBACiAJCTUxMUY4RURBMTgw
ODgxNjYwMDQ3REE5NiAvKiBJbmRleGVkREIgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJ
CWNoaWxkcmVuID0gKAorCQkJCTUxNDEyOTkxMUM2NDI4MTAwMDU5RTcxNCAvKiBXZWJJREJDb25u
ZWN0aW9uVG9TZXJ2ZXIuY3BwICovLAorCQkJCTUxNDEyOTkyMUM2NDI4MTAwMDU5RTcxNCAvKiBX
ZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuaCAqLywKIAkJCQk1MUUzNTFGMTE4MEY1Qzc1MDBFNTNC
RTkgLyogV2ViSURCRmFjdG9yeUJhY2tlbmQuY3BwICovLAogCQkJCTUxRTM1MUYyMTgwRjVDNzUw
MEU1M0JFOSAvKiBXZWJJREJGYWN0b3J5QmFja2VuZC5oICovLAogCQkJCTUxMjkwOTkwMTgzQUNF
QUYwMDU1MjJBNiAvKiBXZWJJREJTZXJ2ZXJDb25uZWN0aW9uLmNwcCAqLywKQEAgLTU0NTUsNiAr
NTQ2NSw4IEBACiAJCQkJNTE2NTRFRkYxODRFRjM0QTAwN0RDODM3IC8qIFVuaXF1ZUlEQkRhdGFi
YXNlQmFja2luZ1N0b3JlLmggKi8sCiAJCQkJNTE1RTc3MzExODQwMkQ1MTAwMDcyMDNGIC8qIFVu
aXF1ZUlEQkRhdGFiYXNlSWRlbnRpZmllci5jcHAgKi8sCiAJCQkJNTE1RTc3MzIxODQwMkQ1MTAw
MDcyMDNGIC8qIFVuaXF1ZUlEQkRhdGFiYXNlSWRlbnRpZmllci5oICovLAorCQkJCTUxMDUyMzZE
MUM3MzkzRTkwMDc5OTNDQiAvKiBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQuY3BwICovLAorCQkJ
CTUxMDUyMzZFMUM3MzkzRTkwMDc5OTNDQiAvKiBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQuaCAq
LywKIAkJCSk7CiAJCQlwYXRoID0gSW5kZXhlZERCOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsKQEAgLTc3NjMsNiArNzc3NSw3IEBACiAJCQkJMUE1MkMwRjgxQTM4Q0RDNzAwMTYxNjBBIC8q
IFdlYlN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNDNTcx
NUIxMTVBREFFRjAwMUNDQUY5IC8qIFdlYlN5c3RlbUludGVyZmFjZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTEwMzJGMTkxODBGNzNCQjAwOTYxQkI3IC8qIFdlYlRvRGF0YWJhc2VQcm9jZXNzQ29u
bmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTE0MTI5OTQxQzY0MjhCQjAwNTlFNzE0IC8q
IFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNBMEVGN0Yx
MjMzMUU3ODAwN0QzQ0ZCIC8qIFdlYlVuZG9TdGVwLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUFG
MDhBRTE5MjY5MzY3MDBCNjM5MEMgLyogV2ViVXNlckNvbnRlbnRDb250cm9sbGVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkxQUFGMDhCODE5MjY5RTZEMDBCNjM5MEMgLyogV2ViVXNlckNvbnRlbnRD
b250cm9sbGVyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLApAQCAtNzc4Niw2ICs3Nzk5LDcgQEAK
IAkJCQk1MTJGNThGODEyQTg4QTU0MDA2Mjk1MzAgLyogV0tBdXRoZW50aWNhdGlvbkRlY2lzaW9u
TGlzdGVuZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3QzRDMDhEMTgxNEFDNUMwMDM2ODhCOSAv
KiBXS0JhY2tGb3J3YXJkTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzdDNEMwOTUxODE0QjlF
NjAwMzY4OEI5IC8qIFdLQmFja0ZvcndhcmRMaXN0SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAor
CQkJCTUxMDUyMzcwMUM3MzlENDIwMDc5OTNDQiAvKiBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTM3QzRDMDg3MTgxNDlDNUIwMDM2ODhCOSAvKiBXS0JhY2tG
b3J3YXJkTGlzdEl0ZW0uaCBpbiBIZWFkZXJzICovLAogCQkJCTM3QzRDMDg5MTgxNDlGMjMwMDM2
ODhCOSAvKiBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1JbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkM2NDZDMUQxMUREMzk5RjAwNjQ1NUIwIC8qIFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZi5o
IGluIEhlYWRlcnMgKi8sCkBAIC04NzkzLDYgKzg4MDcsNyBAQAogCQkJCTFBQjdENENCMTI4OEFB
QTcwMENGRDA4QyAvKiBEb3dubG9hZFByb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBRDI1
RTk1MTY3QUIwODEwMEVBOUJDRCAvKiBEb3dubG9hZFByb3h5TWFwLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTFBQjdENjE5MTI4OEI5RDkwMENGRDA4QyAvKiBEb3dubG9hZFByb3h5TWVzc2FnZVJl
Y2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUxMDUyMzZGMUM3MzlENDIwMDc5OTNDQiAv
KiBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM4NDUy
QTcxMTYyQzgwOTAwQ0FCOUI1IC8qIERyYXdpbmdBcmVhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTFBNjQyMjk5MTJERDAyOTIwMENBQUUyQyAvKiBEcmF3aW5nQXJlYU1lc3NhZ2VSZWNlaXZlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzI2NTIxNjExODI2MDgxMDAyNDNFMTIgLyogRHJhd2lu
Z0FyZWFQcm94eS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTk0MTgsNiArOTQzMyw3IEBACiAJCQkJ
QkNENTk3RDExMTJCNTZBQzAwRUM4QzIzIC8qIFdLUHJlZmVyZW5jZXMuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMUFGREQzMTkxODkxQ0ExMjAwMTUzOTcwIC8qIFdLUHJlZmVyZW5jZXMubW0gaW4g
U291cmNlcyAqLywKIAkJCQkwRkNCNEU2NzE4QkJFM0Q5MDAwRkNGQzkgLyogV0tQcmludGluZ1Zp
ZXcubW0gaW4gU291cmNlcyAqLywKKwkJCQk1MTQxMjk5NTFDNjQyOEMyMDA1OUU3MTQgLyogV2Vi
SURCQ29ubmVjdGlvblRvU2VydmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQkFBQ0VDMTQ1
MjI1RTMwMDUzRjgyRiAvKiBXS1Byb2Nlc3NHcm91cC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFB
MTU4NDE5MTg5MDQ0RjUwMDE3NjE2QyAvKiBXS1Byb2Nlc3NQb29sLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJNTEyRjU4RkIxMkE4OEE1NDAwNjI5NTMwIC8qIFdLUHJvdGVjdGlvblNwYWNlLmNwcCBp
biBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRh
YmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2Vy
dmVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YTQ0YjAwCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhl
ZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAKQEAgLTAsMCArMSwxNjIgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViSURCQ29ubmVjdGlvblRv
U2VydmVyLmgiCisKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKworI2luY2x1ZGUgIkRh
dGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUHJv
Y2Vzcy5oIgorI2luY2x1ZGUgIldlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbi5oIgorI2lu
Y2x1ZGUgPFdlYkNvcmUvSURCQ29ubmVjdGlvblRvU2VydmVyLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9JREJPcGVuREJSZXF1ZXN0SW1wbC5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK3N0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZUNvbm5lY3Rpb25U
b1NlcnZlcklkZW50aWZpZXIoKQoreworICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Cisg
ICAgc3RhdGljIHVpbnQ2NF90IGlkZW50aWZpZXIgPSAwOworICAgIHJldHVybiArK2lkZW50aWZp
ZXI7Cit9CisKK1JlZjxXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI+IFdlYklEQkNvbm5lY3Rpb25U
b1NlcnZlcjo6Y3JlYXRlKCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJJREJDb25u
ZWN0aW9uVG9TZXJ2ZXIpOworfQorCitXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OldlYklEQkNv
bm5lY3Rpb25Ub1NlcnZlcigpCisgICAgOiBtX2lkZW50aWZpZXIoZ2VuZXJhdGVDb25uZWN0aW9u
VG9TZXJ2ZXJJZGVudGlmaWVyKCkpCit7CisgICAgcmVsYXhBZG9wdGlvblJlcXVpcmVtZW50KCk7
CisgICAgbV9jb25uZWN0aW9uVG9TZXJ2ZXIgPSBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Ub1Nl
cnZlcjo6Y3JlYXRlKCp0aGlzKTsKKworICAgIHNlbmQoTWVzc2FnZXM6OkRhdGFiYXNlVG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbjo6RXN0YWJsaXNoSURCQ29ubmVjdGlvblRvU2VydmVyKG1faWRlbnRp
ZmllcikpOworCisgICAgbV9pc09wZW5JblNlcnZlciA9IHRydWU7Cit9CisKK1dlYklEQkNvbm5l
Y3Rpb25Ub1NlcnZlcjo6fldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcigpCit7CisgICAgaWYgKG1f
aXNPcGVuSW5TZXJ2ZXIpCisgICAgICAgIHNlbmQoTWVzc2FnZXM6OkRhdGFiYXNlVG9XZWJQcm9j
ZXNzQ29ubmVjdGlvbjo6UmVtb3ZlSURCQ29ubmVjdGlvblRvU2VydmVyKG1faWRlbnRpZmllcikp
OworfQorCitJUEM6OkNvbm5lY3Rpb24qIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6bWVzc2Fn
ZVNlbmRlckNvbm5lY3Rpb24oKQoreworICAgIHJldHVybiBXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS53ZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24oKS0+Y29ubmVjdGlvbigpOworfQorCitJ
REJDbGllbnQ6OklEQkNvbm5lY3Rpb25Ub1NlcnZlciYgV2ViSURCQ29ubmVjdGlvblRvU2VydmVy
Ojpjb3JlQ29ubmVjdGlvblRvU2VydmVyKCkKK3sKKyAgICByZXR1cm4gKm1fY29ubmVjdGlvblRv
U2VydmVyOworfQorCit2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGVsZXRlRGF0YWJh
c2UoSURCUmVxdWVzdERhdGEmKQoreworfQorCit2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZl
cjo6b3BlbkRhdGFiYXNlKElEQlJlcXVlc3REYXRhJikKK3sKK30KKwordm9pZCBXZWJJREJDb25u
ZWN0aW9uVG9TZXJ2ZXI6OmFib3J0VHJhbnNhY3Rpb24oSURCUmVzb3VyY2VJZGVudGlmaWVyJikK
K3sKK30KKwordm9pZCBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmNvbW1pdFRyYW5zYWN0aW9u
KElEQlJlc291cmNlSWRlbnRpZmllciYpCit7Cit9CisKK3ZvaWQgV2ViSURCQ29ubmVjdGlvblRv
U2VydmVyOjpkaWRGaW5pc2hIYW5kbGluZ1ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbihJREJSZXNv
dXJjZUlkZW50aWZpZXImKQoreworfQorCit2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6
Y3JlYXRlT2JqZWN0U3RvcmUoY29uc3QgSURCUmVxdWVzdERhdGEmLCBjb25zdCBJREJPYmplY3RT
dG9yZUluZm8mKQoreworfQorCit2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGVsZXRl
T2JqZWN0U3RvcmUoY29uc3QgSURCUmVxdWVzdERhdGEmLCBjb25zdCBTdHJpbmcmIG9iamVjdFN0
b3JlTmFtZSkKK3sKK30KKwordm9pZCBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmNsZWFyT2Jq
ZWN0U3RvcmUoY29uc3QgSURCUmVxdWVzdERhdGEmLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50
aWZpZXIpCit7Cit9CisKK3ZvaWQgV2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpjcmVhdGVJbmRl
eChjb25zdCBJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IElEQkluZGV4SW5mbyYpCit7Cit9CisKK3Zv
aWQgV2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpkZWxldGVJbmRleChjb25zdCBJREJSZXF1ZXN0
RGF0YSYsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBpbmRl
eE5hbWUpCit7Cit9CisKK3ZvaWQgV2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpwdXRPckFkZChj
b25zdCBJREJSZXF1ZXN0RGF0YSYsIElEQktleSosIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSYsIGNv
bnN0IEluZGV4ZWREQjo6T2JqZWN0U3RvcmVPdmVyd3JpdGVNb2RlKQoreworfQorCit2b2lkIFdl
YklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Z2V0UmVjb3JkKGNvbnN0IElEQlJlcXVlc3REYXRhJiwg
Y29uc3QgSURCS2V5UmFuZ2VEYXRhJikKK3sKK30KKwordm9pZCBXZWJJREJDb25uZWN0aW9uVG9T
ZXJ2ZXI6OmdldENvdW50KGNvbnN0IElEQlJlcXVlc3REYXRhJiwgY29uc3QgSURCS2V5UmFuZ2VE
YXRhJikKK3sKK30KKwordm9pZCBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRlbGV0ZVJlY29y
ZChjb25zdCBJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IElEQktleVJhbmdlRGF0YSYpCit7Cit9CisK
K3ZvaWQgV2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpvcGVuQ3Vyc29yKGNvbnN0IElEQlJlcXVl
c3REYXRhJiwgY29uc3QgSURCQ3Vyc29ySW5mbyYpCit7Cit9CisKK3ZvaWQgV2ViSURCQ29ubmVj
dGlvblRvU2VydmVyOjppdGVyYXRlQ3Vyc29yKGNvbnN0IElEQlJlcXVlc3REYXRhJiwgY29uc3Qg
SURCS2V5RGF0YSYsIHVuc2lnbmVkIGxvbmcgY291bnQpCit7Cit9CisKK3ZvaWQgV2ViSURCQ29u
bmVjdGlvblRvU2VydmVyOjplc3RhYmxpc2hUcmFuc2FjdGlvbih1aW50NjRfdCBkYXRhYmFzZUNv
bm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJUcmFuc2FjdGlvbkluZm8mKQoreworfQorCit2
b2lkIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGF0YWJhc2VDb25uZWN0aW9uQ2xvc2VkKHVp
bnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIpCit7Cit9CisKK3ZvaWQgV2ViSURC
Q29ubmVjdGlvblRvU2VydmVyOjphYm9ydE9wZW5BbmRVcGdyYWRlTmVlZGVkKHVpbnQ2NF90IGRh
dGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYg
dHJhbnNhY3Rpb25JZGVudGlmaWVyKQoreworfQorCit2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub1Nl
cnZlcjo6ZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rp
b25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlm
aWVyKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShJ
TkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9E
YXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5oIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1Nl
cnZlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgwNTFiNDMKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVk
REIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmgKQEAgLTAsMCArMSw4MyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgV2ViSURCQ29ubmVjdGlvblRvU2VydmVyX2gKKyNkZWZpbmUgV2ViSURCQ29u
bmVjdGlvblRvU2VydmVyX2gKKworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCisjaW5j
bHVkZSAiTWVzc2FnZVNlbmRlci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvSURCQ29ubmVjdGlvblRv
U2VydmVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJJREJDb25uZWN0aW9u
VG9TZXJ2ZXIgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9u
VG9TZXJ2ZXJEZWxlZ2F0ZSwgcHVibGljIElQQzo6TWVzc2FnZVNlbmRlciwgcHVibGljIFJlZkNv
dW50ZWQ8V2ViSURCQ29ubmVjdGlvblRvU2VydmVyPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJl
ZjxXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI+IGNyZWF0ZSgpOworCisgICAgdmlydHVhbCB+V2Vi
SURCQ29ubmVjdGlvblRvU2VydmVyKCk7CisKKyAgICBXZWJDb3JlOjpJREJDbGllbnQ6OklEQkNv
bm5lY3Rpb25Ub1NlcnZlciYgY29yZUNvbm5lY3Rpb25Ub1NlcnZlcigpOworICAgIHZpcnR1YWwg
dWludDY0X3QgaWRlbnRpZmllcigpIGNvbnN0IG92ZXJyaWRlIGZpbmFsIHsgcmV0dXJuIG1faWRl
bnRpZmllcjsgfQorICAgIHZpcnR1YWwgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9u
SUQoKSBvdmVycmlkZSBmaW5hbCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KKworICAgIHZpcnR1
YWwgdm9pZCBkZWxldGVEYXRhYmFzZShXZWJDb3JlOjpJREJSZXF1ZXN0RGF0YSYpIG92ZXJyaWRl
IGZpbmFsOworICAgIHZpcnR1YWwgdm9pZCBvcGVuRGF0YWJhc2UoV2ViQ29yZTo6SURCUmVxdWVz
dERhdGEmKSBvdmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0dWFsIHZvaWQgYWJvcnRUcmFuc2FjdGlv
bihXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXImKSBvdmVycmlkZSBmaW5hbDsKKyAgICB2
aXJ0dWFsIHZvaWQgY29tbWl0VHJhbnNhY3Rpb24oV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlm
aWVyJikgb3ZlcnJpZGUgZmluYWw7CisgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaEhhbmRsaW5n
VmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uKFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllciYp
IG92ZXJyaWRlIGZpbmFsOworICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVPYmplY3RTdG9yZShjb25z
dCBXZWJDb3JlOjpJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IFdlYkNvcmU6OklEQk9iamVjdFN0b3Jl
SW5mbyYpIG92ZXJyaWRlIGZpbmFsOworICAgIHZpcnR1YWwgdm9pZCBkZWxldGVPYmplY3RTdG9y
ZShjb25zdCBXZWJDb3JlOjpJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IFN0cmluZyYgb2JqZWN0U3Rv
cmVOYW1lKSBvdmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0dWFsIHZvaWQgY2xlYXJPYmplY3RTdG9y
ZShjb25zdCBXZWJDb3JlOjpJREJSZXF1ZXN0RGF0YSYsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRl
bnRpZmllcikgb3ZlcnJpZGUgZmluYWw7CisgICAgdmlydHVhbCB2b2lkIGNyZWF0ZUluZGV4KGNv
bnN0IFdlYkNvcmU6OklEQlJlcXVlc3REYXRhJiwgY29uc3QgV2ViQ29yZTo6SURCSW5kZXhJbmZv
Jikgb3ZlcnJpZGUgZmluYWw7CisgICAgdmlydHVhbCB2b2lkIGRlbGV0ZUluZGV4KGNvbnN0IFdl
YkNvcmU6OklEQlJlcXVlc3REYXRhJiwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmIGluZGV4TmFtZSkgb3ZlcnJpZGUgZmluYWw7CisgICAgdmlydHVhbCB2b2lk
IHB1dE9yQWRkKGNvbnN0IFdlYkNvcmU6OklEQlJlcXVlc3REYXRhJiwgV2ViQ29yZTo6SURCS2V5
KiwgV2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlJiwgY29uc3QgV2ViQ29yZTo6SW5kZXhl
ZERCOjpPYmplY3RTdG9yZU92ZXJ3cml0ZU1vZGUpIG92ZXJyaWRlIGZpbmFsOworICAgIHZpcnR1
YWwgdm9pZCBnZXRSZWNvcmQoY29uc3QgV2ViQ29yZTo6SURCUmVxdWVzdERhdGEmLCBjb25zdCBX
ZWJDb3JlOjpJREJLZXlSYW5nZURhdGEmKSBvdmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0dWFsIHZv
aWQgZ2V0Q291bnQoY29uc3QgV2ViQ29yZTo6SURCUmVxdWVzdERhdGEmLCBjb25zdCBXZWJDb3Jl
OjpJREJLZXlSYW5nZURhdGEmKSBvdmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVs
ZXRlUmVjb3JkKGNvbnN0IFdlYkNvcmU6OklEQlJlcXVlc3REYXRhJiwgY29uc3QgV2ViQ29yZTo6
SURCS2V5UmFuZ2VEYXRhJikgb3ZlcnJpZGUgZmluYWw7CisgICAgdmlydHVhbCB2b2lkIG9wZW5D
dXJzb3IoY29uc3QgV2ViQ29yZTo6SURCUmVxdWVzdERhdGEmLCBjb25zdCBXZWJDb3JlOjpJREJD
dXJzb3JJbmZvJikgb3ZlcnJpZGUgZmluYWw7CisgICAgdmlydHVhbCB2b2lkIGl0ZXJhdGVDdXJz
b3IoY29uc3QgV2ViQ29yZTo6SURCUmVxdWVzdERhdGEmLCBjb25zdCBXZWJDb3JlOjpJREJLZXlE
YXRhJiwgdW5zaWduZWQgbG9uZyBjb3VudCkgb3ZlcnJpZGUgZmluYWw7CisgICAgdmlydHVhbCB2
b2lkIGVzdGFibGlzaFRyYW5zYWN0aW9uKHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50
aWZpZXIsIGNvbnN0IFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uSW5mbyYpIG92ZXJyaWRlIGZpbmFs
OworICAgIHZpcnR1YWwgdm9pZCBkYXRhYmFzZUNvbm5lY3Rpb25DbG9zZWQodWludDY0X3QgZGF0
YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllcikgb3ZlcnJpZGUgZmluYWw7CisgICAgdmlydHVhbCB2
b2lkIGFib3J0T3BlbkFuZFVwZ3JhZGVOZWVkZWQodWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9u
SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2Fj
dGlvbklkZW50aWZpZXIpIG92ZXJyaWRlIGZpbmFsOworICAgIHZpcnR1YWwgdm9pZCBkaWRGaXJl
VmVyc2lvbkNoYW5nZUV2ZW50KHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIs
IGNvbnN0IFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIp
IG92ZXJyaWRlIGZpbmFsOworCisgICAgdmlydHVhbCB2b2lkIHJlZigpIG92ZXJyaWRlIHsgUmVm
Q291bnRlZDxXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI+OjpyZWYoKTsgfQorICAgIHZpcnR1YWwg
dm9pZCBkZXJlZigpIG92ZXJyaWRlIHsgUmVmQ291bnRlZDxXZWJJREJDb25uZWN0aW9uVG9TZXJ2
ZXI+OjpkZXJlZigpOyB9CisKK3ByaXZhdGU6CisgICAgV2ViSURCQ29ubmVjdGlvblRvU2VydmVy
KCk7CisKKyAgICB2aXJ0dWFsIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rp
b24oKSBvdmVycmlkZSBmaW5hbDsKKworICAgIHVpbnQ2NF90IG1faWRlbnRpZmllcjsKKyAgICBi
b29sIG1faXNPcGVuSW5TZXJ2ZXIgeyBmYWxzZSB9OworICAgIFJlZlB0cjxXZWJDb3JlOjpJREJD
bGllbnQ6OklEQkNvbm5lY3Rpb25Ub1NlcnZlcj4gbV9jb25uZWN0aW9uVG9TZXJ2ZXI7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFC
QVNFKQorI2VuZGlmIC8vIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcl9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJEYXRhYmFzZVByb3ZpZGVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYkRhdGFiYXNlUHJvdmlk
ZXIuY3BwCmluZGV4IDUwNDFkMjEuLmVmYmIxZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYkRhdGFiYXNlUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYkRhdGFiYXNlUHJvdmlkZXIuY3BwCkBA
IC0yNyw2ICsyNyw5IEBACiAjaW5jbHVkZSAiV2ViRGF0YWJhc2VQcm92aWRlci5oIgogCiAjaW5j
bHVkZSAiV2ViSURCRmFjdG9yeUJhY2tlbmQuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisj
aW5jbHVkZSAiV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uLmgiCisjaW5jbHVkZSA8V2Vi
Q29yZS9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0
Zi9OZXZlckRlc3Ryb3llZC5oPgogCkBAIC02Niw2ICs2OSwyMSBAQCBXZWJEYXRhYmFzZVByb3Zp
ZGVyOjp+V2ViRGF0YWJhc2VQcm92aWRlcigpCiB9CiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRB
QkFTRSkKKworV2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXImIFdlYkRh
dGFiYXNlUHJvdmlkZXI6OmlkYkNvbm5lY3Rpb25Ub1NlcnZlckZvclNlc3Npb24oY29uc3QgV2Vi
Q29yZTo6U2Vzc2lvbklEJiBzZXNzaW9uSUQpCit7CisgICAgaWYgKHNlc3Npb25JRC5pc0VwaGVt
ZXJhbCgpKSB7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gbV9pZGJFcGhlbWVyYWxDb25uZWN0aW9u
TWFwLmFkZChzZXNzaW9uSUQuc2Vzc2lvbklEKCksIG51bGxwdHIpOworICAgICAgICBpZiAocmVz
dWx0LmlzTmV3RW50cnkpCisgICAgICAgICAgICByZXN1bHQuaXRlcmF0b3ItPnZhbHVlID0gV2Vi
Q29yZTo6SW5Qcm9jZXNzSURCU2VydmVyOjpjcmVhdGUoKTsKKworICAgICAgICByZXR1cm4gcmVz
dWx0Lml0ZXJhdG9yLT52YWx1ZS0+Y29ubmVjdGlvblRvU2VydmVyKCk7CisgICAgfQorCisgICAg
QVNTRVJUKFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVj
dGlvbigpKTsKKyAgICByZXR1cm4gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViVG9EYXRhYmFz
ZVByb2Nlc3NDb25uZWN0aW9uKCktPmlkYkNvbm5lY3Rpb25Ub1NlcnZlckZvclNlc3Npb24oc2Vz
c2lvbklEKS5jb3JlQ29ubmVjdGlvblRvU2VydmVyKCk7Cit9CisKIFJlZlB0cjxXZWJDb3JlOjpJ
REJGYWN0b3J5QmFja2VuZEludGVyZmFjZT4gV2ViRGF0YWJhc2VQcm92aWRlcjo6Y3JlYXRlSURC
RmFjdG9yeUJhY2tlbmQoKQogewogI2lmIEVOQUJMRShEQVRBQkFTRV9QUk9DRVNTKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvV2ViRGF0YWJhc2VQcm92
aWRlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvV2ViRGF0YWJhc2VQ
cm92aWRlci5oCmluZGV4IGE4YWYyZGMuLmJmZmUwNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYkRhdGFiYXNlUHJvdmlkZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJEYXRhYmFzZVByb3ZpZGVyLmgKQEAg
LTI2LDcgKzI2LDkgQEAKICNpZm5kZWYgV2ViRGF0YWJhc2VQcm92aWRlcl9oCiAjZGVmaW5lIFdl
YkRhdGFiYXNlUHJvdmlkZXJfaAogCisjaW5jbHVkZSA8V2ViQ29yZS9JblByb2Nlc3NJREJTZXJ2
ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RhdGFiYXNlUHJvdmlkZXIuaD4KKyNpbmNsdWRlIDx3
dGYvSGFzaE1hcC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtMzcsMTEgKzM5LDcgQEAg
cHVibGljOgogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAgICAgdmlydHVhbCBib29s
IHN1cHBvcnRzTW9kZXJuSURCKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KLQot
ICAgIHZpcnR1YWwgV2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXImIGlk
YkNvbm5lY3Rpb25Ub1NlcnZlckZvclNlc3Npb24oY29uc3QgV2ViQ29yZTo6U2Vzc2lvbklEJikg
b3ZlcnJpZGUKLSAgICB7Ci0gICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0g
ICAgfQorICAgIHZpcnR1YWwgV2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2
ZXImIGlkYkNvbm5lY3Rpb25Ub1NlcnZlckZvclNlc3Npb24oY29uc3QgV2ViQ29yZTo6U2Vzc2lv
bklEJikgb3ZlcnJpZGUgZmluYWw7CiAjZW5kaWYKIAogcHJpdmF0ZToKQEAgLTQ5LDYgKzQ3LDcg
QEAgcHJpdmF0ZToKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogICAgIHZpcnR1YWwg
UmVmUHRyPFdlYkNvcmU6OklEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlPiBjcmVhdGVJREJGYWN0
b3J5QmFja2VuZCgpIG92ZXJyaWRlOworICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxXZWJD
b3JlOjpJblByb2Nlc3NJREJTZXJ2ZXI+PiBtX2lkYkVwaGVtZXJhbENvbm5lY3Rpb25NYXA7CiAj
ZW5kaWYKIAogICAgIGNvbnN0IHVpbnQ2NF90IG1faWRlbnRpZmllcjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYlRvRGF0YWJhc2VQcm9jZXNzQ29u
bmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJUb0Rh
dGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4IDAwNTlhZTEuLmJhYTRmMGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYlRvRGF0YWJhc2VQ
cm9jZXNzQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRh
YmFzZXMvV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtODgsNiArODgsMTUg
QEAgdm9pZCBXZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb246OnJlbW92ZVdlYklEQlNlcnZl
ckNvbm5lY3Rpb24oV2ViSURCU2VydmVyQ28KIAogICAgIG1fd2ViSURCU2VydmVyQ29ubmVjdGlv
bnMucmVtb3ZlKGNvbm5lY3Rpb24ubWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSk7CiB9CisK
K1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlciYgV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9u
OjppZGJDb25uZWN0aW9uVG9TZXJ2ZXJGb3JTZXNzaW9uKGNvbnN0IFNlc3Npb25JRCYgc2Vzc2lv
bklEKQoreworICAgIGF1dG8gcmVzdWx0ID0gbV93ZWJJREJDb25uZWN0aW9ucy5hZGQoc2Vzc2lv
bklELnNlc3Npb25JRCgpLCBudWxscHRyKTsKKyAgICBpZiAocmVzdWx0LmlzTmV3RW50cnkpCisg
ICAgICAgIHJlc3VsdC5pdGVyYXRvci0+dmFsdWUgPSBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6
OmNyZWF0ZSgpOworCisgICAgcmV0dXJuICpyZXN1bHQuaXRlcmF0b3ItPnZhbHVlOworfQogI2Vu
ZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9EYXRhYmFzZXMvV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uLmggYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJUb0RhdGFiYXNlUHJvY2Vzc0Nv
bm5lY3Rpb24uaAppbmRleCA2MWE3Y2E0Li5kMTJjNzFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24u
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJUb0RhdGFiYXNl
UHJvY2Vzc0Nvbm5lY3Rpb24uaApAQCAtMjksMTAgKzI5LDE1IEBACiAKICNpbmNsdWRlICJDb25u
ZWN0aW9uLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgorI2luY2x1ZGUgIldlYklEQkNv
bm5lY3Rpb25Ub1NlcnZlci5oIgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKICNpZiBF
TkFCTEUoREFUQUJBU0VfUFJPQ0VTUykKIAorbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgU2Vz
c2lvbklEOworfQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViSURCU2VydmVyQ29u
bmVjdGlvbjsKQEAgLTUxLDYgKzU2LDggQEAgcHVibGljOgogI2lmIEVOQUJMRShJTkRFWEVEX0RB
VEFCQVNFKQogICAgIHZvaWQgcmVnaXN0ZXJXZWJJREJTZXJ2ZXJDb25uZWN0aW9uKFdlYklEQlNl
cnZlckNvbm5lY3Rpb24mKTsKICAgICB2b2lkIHJlbW92ZVdlYklEQlNlcnZlckNvbm5lY3Rpb24o
V2ViSURCU2VydmVyQ29ubmVjdGlvbiYpOworCisgICAgV2ViSURCQ29ubmVjdGlvblRvU2VydmVy
JiBpZGJDb25uZWN0aW9uVG9TZXJ2ZXJGb3JTZXNzaW9uKGNvbnN0IFdlYkNvcmU6OlNlc3Npb25J
RCYgc2Vzc2lvbklEKTsKICNlbmRpZgogCiBwcml2YXRlOgpAQCAtNzEsNiArNzgsOCBAQCBwcml2
YXRlOgogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAgICAgSGFzaE1hcDx1aW50NjRf
dCwgV2ViSURCU2VydmVyQ29ubmVjdGlvbio+IG1fd2ViSURCU2VydmVyQ29ubmVjdGlvbnM7CisK
KyAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8V2ViSURCQ29ubmVjdGlvblRvU2VydmVyPj4g
bV93ZWJJREJDb25uZWN0aW9uczsKICNlbmRpZgogfTsKIAo=
</data>
<flag name="review"
          id="296256"
          type_id="1"
          status="+"
          setter="achristensen"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>271460</attachid>
            <date>2016-02-16 11:47:19 -0800</date>
            <delta_ts>2016-02-16 12:58:54 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>48232</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBlNjMwMWM3Li42ZmY5MGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYg
QEAKKzIwMTYtMDItMTYgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIE1vZGVybiBJREI6IFdLMiBJUEMgU2NhZmZvbGRpbmcuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTQyOTYKKworICAgICAgICBSZXZpZXdlZCBi
eSBBbGV4IENocmlzdGVuc2VuLgorICAgICAgICAKKyAgICAgICAgTm8gY2hhbmdlIGluIGJlaGF2
aW9yIHlldDsgSnVzdCBsYXlpbmcgdGhlIGdyb3VuZHdvcmsuCisKKyAgICAgICAgKiBNb2R1bGVz
L2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmg6CisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVudC5oOgorICAgICAgICAq
IE1vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJSZXNvdXJjZUlkZW50aWZpZXIuaDoKKwogMjAx
Ni0wMi0xNSAgS29uc3RhbnRpbiBUb2thcmV2ICA8YW5udWxlbkB5YW5kZXgucnU+CiAKICAgICAg
ICAgW2NtYWtlXSBDb25zb2xpZGF0ZWQgTGludXgtc3BlY2lmaWMgZmlsZSBsaXN0cy4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0
aW9uVG9TZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9J
REJDb25uZWN0aW9uVG9TZXJ2ZXIuaAppbmRleCA5ODQ3MmYzLi5hNjU4OGNlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRv
U2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lE
QkNvbm5lY3Rpb25Ub1NlcnZlci5oCkBAIC01Miw3ICs1Miw3IEBAIGNsYXNzIFRyYW5zYWN0aW9u
T3BlcmF0aW9uOwogCiBjbGFzcyBJREJDb25uZWN0aW9uVG9TZXJ2ZXIgOiBwdWJsaWMgUmVmQ291
bnRlZDxJREJDb25uZWN0aW9uVG9TZXJ2ZXI+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPElE
QkNvbm5lY3Rpb25Ub1NlcnZlcj4gY3JlYXRlKElEQkNvbm5lY3Rpb25Ub1NlcnZlckRlbGVnYXRl
Jik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxJREJDb25uZWN0aW9uVG9TZXJ2ZXI+
IGNyZWF0ZShJREJDb25uZWN0aW9uVG9TZXJ2ZXJEZWxlZ2F0ZSYpOwogCiAgICAgdWludDY0X3Qg
aWRlbnRpZmllcigpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50LmgKaW5kZXgg
ODgwNjY0Yi4uYzVkYzQyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGllbnQuaApAQCAtNDQs
NyArNDQsNyBAQCBjbGFzcyBVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb247CiAKIGNsYXNzIElE
QkNvbm5lY3Rpb25Ub0NsaWVudCA6IHB1YmxpYyBSZWZDb3VudGVkPElEQkNvbm5lY3Rpb25Ub0Ns
aWVudD4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8SURCQ29ubmVjdGlvblRvQ2xpZW50PiBj
cmVhdGUoSURCQ29ubmVjdGlvblRvQ2xpZW50RGVsZWdhdGUmKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgUmVmPElEQkNvbm5lY3Rpb25Ub0NsaWVudD4gY3JlYXRlKElEQkNvbm5lY3Rpb25U
b0NsaWVudERlbGVnYXRlJik7CiAgICAgCiAgICAgdWludDY0X3QgaWRlbnRpZmllcigpIGNvbnN0
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQv
SURCUmVzb3VyY2VJZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zaGFyZWQvSURCUmVzb3VyY2VJZGVudGlmaWVyLmgKaW5kZXggN2E2Mjk3MC4uZDJlMTQ2YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQlJl
c291cmNlSWRlbnRpZmllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NoYXJlZC9JREJSZXNvdXJjZUlkZW50aWZpZXIuaApAQCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6
CiAgICAgZXhwbGljaXQgSURCUmVzb3VyY2VJZGVudGlmaWVyKGNvbnN0IElEQlNlcnZlcjo6SURC
Q29ubmVjdGlvblRvQ2xpZW50Jik7CiAKICAgICBzdGF0aWMgSURCUmVzb3VyY2VJZGVudGlmaWVy
IGRlbGV0ZWRWYWx1ZSgpOwotICAgIGJvb2wgaXNIYXNoVGFibGVEZWxldGVkVmFsdWUoKSBjb25z
dDsKKyAgICBXRUJDT1JFX0VYUE9SVCBib29sIGlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkgY29u
c3Q7CiAKICAgICBzdGF0aWMgSURCUmVzb3VyY2VJZGVudGlmaWVyIGVtcHR5VmFsdWUoKTsKICAg
ICBib29sIGlzRW1wdHkoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ01ha2VM
aXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAppbmRleCAwMDNiYzVkLi5j
OWUwNDFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dApAQCAtNzAsNyArNzAsMTAgQEAgc2V0KFdlYktp
dDJfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dFQkNPUkVfRElSfSIKICAgICAiJHtXRUJD
T1JFX0RJUn0vTW9kdWxlcy9iYXR0ZXJ5IgogICAgICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL2lu
ZGV4ZWRkYiIKKyAgICAiJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50Igog
ICAgICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL2luZGV4ZWRkYi9sZWdhY3kiCisgICAgIiR7V0VC
Q09SRV9ESVJ9L01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlciIKKyAgICAiJHtXRUJDT1JFX0RJUn0v
TW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkIgogICAgICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL21l
ZGlhc3RyZWFtIgogICAgICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL25ldHdvcmtpbmZvIgogICAg
ICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMiCkBAIC0xOTUsNiArMTk4LDcg
QEAgc2V0KFdlYktpdDJfU09VUkNFUwogICAgIERhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvSURC
U2VyaWFsaXphdGlvbi5jcHAKICAgICBEYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlE
QkRhdGFiYXNlLmNwcAogICAgIERhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0
YWJhc2VJZGVudGlmaWVyLmNwcAorICAgIERhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvV2ViSURC
Q29ubmVjdGlvblRvQ2xpZW50LmNwcAogCiAgICAgRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9z
cWxpdGUvU1FMaXRlSURCQ3Vyc29yLmNwcAogICAgIERhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIv
c3FsaXRlL1NRTGl0ZUlEQlRyYW5zYWN0aW9uLmNwcApAQCAtNTA4LDYgKzUxMiw3IEBAIHNldChX
ZWJLaXQyX1NPVVJDRVMKICAgICBXZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJEYXRhYmFzZVByb3Zp
ZGVyLmNwcAogICAgIFdlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYlRvRGF0YWJhc2VQcm9jZXNzQ29u
bmVjdGlvbi5jcHAKIAorICAgIFdlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJD
b25uZWN0aW9uVG9TZXJ2ZXIuY3BwCiAgICAgV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERC
L1dlYklEQkZhY3RvcnlCYWNrZW5kLmNwcAogICAgIFdlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4
ZWREQi9XZWJJREJTZXJ2ZXJDb25uZWN0aW9uLmNwcAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYjMyNjQyNC4u
Mzc5YTFlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg3IEBACisyMDE2LTAyLTE2ICBCcmFkeSBF
aWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBNb2Rlcm4gSURCOiBXSzIgSVBD
IFNjYWZmb2xkaW5nLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTU0Mjk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKyAg
ICAgICAgCisgICAgICAgIE5vIGNoYW5nZSBpbiBiZWhhdmlvciB5ZXQ7IEp1c3QgbGF5aW5nIHRo
ZSBncm91bmR3b3JrLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogV2Vi
S2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCisgICAgICAgICogRGF0YWJhc2VQcm9j
ZXNzL0RhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6
OkRhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZXN0YWJsaXNoSURCQ29ubmVjdGlvblRv
U2VydmVyKToKKyAgICAgICAgKFdlYktpdDo6RGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9u
OjpyZW1vdmVJREJDb25uZWN0aW9uVG9TZXJ2ZXIpOgorICAgICAgICAqIERhdGFiYXNlUHJvY2Vz
cy9EYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBEYXRhYmFzZVBy
b2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluOgorICAgICAg
ICAKKyAgICAgICAgKiBEYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25U
b0NsaWVudC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9D
bGllbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25Ub0NsaWVu
dDo6V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29u
bmVjdGlvblRvQ2xpZW50Ojp+V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50KToKKyAgICAgICAgKFdl
YktpdDo6V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaXNjb25uZWN0ZWRGcm9tV2ViUHJvY2Vz
cyk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6bWVzc2FnZVNl
bmRlckNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9DbGll
bnQ6OmNvbm5lY3Rpb25Ub0NsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rp
b25Ub0NsaWVudDo6ZGlkRGVsZXRlRGF0YWJhc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJD
b25uZWN0aW9uVG9DbGllbnQ6OmRpZE9wZW5EYXRhYmFzZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkQWJvcnRUcmFuc2FjdGlvbik6CisgICAgICAgIChX
ZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkQ29tbWl0VHJhbnNhY3Rpb24pOgor
ICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZENyZWF0ZU9iamVj
dFN0b3JlKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWRE
ZWxldGVPYmplY3RTdG9yZSk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25Ub0Ns
aWVudDo6ZGlkQ2xlYXJPYmplY3RTdG9yZSk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5l
Y3Rpb25Ub0NsaWVudDo6ZGlkQ3JlYXRlSW5kZXgpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJD
b25uZWN0aW9uVG9DbGllbnQ6OmRpZERlbGV0ZUluZGV4KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
SURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWRQdXRPckFkZCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkR2V0UmVjb3JkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWRHZXRDb3VudCk6CisgICAgICAgIChXZWJLaXQ6
OldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkRGVsZXRlUmVjb3JkKToKKyAgICAgICAgKFdl
YktpdDo6V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWRPcGVuQ3Vyc29yKToKKyAgICAgICAg
KFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWRJdGVyYXRlQ3Vyc29yKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpmaXJlVmVyc2lvbkNoYW5n
ZUV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWRT
dGFydFRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRvQ2xp
ZW50Ojpub3RpZnlPcGVuREJSZXF1ZXN0QmxvY2tlZCk6CisgICAgICAgICogRGF0YWJhc2VQcm9j
ZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQuaDogQWRkZWQuCisgICAgICAg
IAorICAgICAgICAqIFBsYXRmb3JtL0xvZ2dpbmcuaDoKKyAgICAgICAgICAgICAgICAKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2Vy
dmVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OmdlbmVyYXRlQ29ubmVjdGlvblRvU2Vy
dmVySWRlbnRpZmllcik6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZl
cjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpX
ZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0
aW9uVG9TZXJ2ZXI6On5XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIpOgorICAgICAgICAoV2ViS2l0
OjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpjb3JlQ29ubmVjdGlvblRv
U2VydmVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpkZWxl
dGVEYXRhYmFzZSk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6
b3BlbkRhdGFiYXNlKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVy
OjphYm9ydFRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRv
U2VydmVyOjpjb21taXRUcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5l
Y3Rpb25Ub1NlcnZlcjo6ZGlkRmluaXNoSGFuZGxpbmdWZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24p
OgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmNyZWF0ZU9iamVj
dFN0b3JlKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpkZWxl
dGVPYmplY3RTdG9yZSk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZl
cjo6Y2xlYXJPYmplY3RTdG9yZSk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25U
b1NlcnZlcjo6Y3JlYXRlSW5kZXgpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9u
VG9TZXJ2ZXI6OmRlbGV0ZUluZGV4KToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlv
blRvU2VydmVyOjpwdXRPckFkZCk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25U
b1NlcnZlcjo6Z2V0UmVjb3JkKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRv
U2VydmVyOjpnZXRDb3VudCk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25Ub1Nl
cnZlcjo6ZGVsZXRlUmVjb3JkKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRv
U2VydmVyOjpvcGVuQ3Vyc29yKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRv
U2VydmVyOjppdGVyYXRlQ3Vyc29yKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlv
blRvU2VydmVyOjplc3RhYmxpc2hUcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYklE
QkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGF0YWJhc2VDb25uZWN0aW9uQ2xvc2VkKToKKyAgICAgICAg
KFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjphYm9ydE9wZW5BbmRVcGdyYWRlTmVl
ZGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpkaWRGaXJl
VmVyc2lvbkNoYW5nZUV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRl
eGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmg6IEFkZGVkLgorCisgICAgICAgICogV2Vi
UHJvY2Vzcy9EYXRhYmFzZXMvV2ViRGF0YWJhc2VQcm92aWRlci5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYkRhdGFiYXNlUHJvdmlkZXI6OmlkYkNvbm5lY3Rpb25Ub1NlcnZlckZvclNlc3Npb24p
OgorICAgICAgICAqIFdlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYkRhdGFiYXNlUHJvdmlkZXIuaDoK
KworICAgICAgICAqIFdlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYlRvRGF0YWJhc2VQcm9jZXNzQ29u
bmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVj
dGlvbjo6aWRiQ29ubmVjdGlvblRvU2VydmVyRm9yU2Vzc2lvbik6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9EYXRhYmFzZXMvV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uLmg6CisKIDIwMTYt
MDItMTUgIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUB3ZWJraXQub3JnPgogCiAgICAgICAg
IFtDTWFrZV1bTWFjXSBSZW1vdmUgV0tOUEFQSVBsdWdJbkNvbnRhaW5lci5tbSBpbiBXZWJLaXQy
L1BsYXRmb3JtTWFjLmNtYWtlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVBy
b2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4
IDk4OGMzMTguLjlhMzU5ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJv
Y2Vzcy9EYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBA
IC0yOSw2ICsyOSw4IEBACiAjaW5jbHVkZSAiRGF0YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbi5o
IgogI2luY2x1ZGUgIkRhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb25NZXNzYWdlcy5oIgogI2lu
Y2x1ZGUgIkRhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCisjaW5jbHVk
ZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5oIgogI2lu
Y2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKICNpZiBFTkFCTEUoREFUQUJBU0VfUFJPQ0VTUykKQEAg
LTExMyw2ICsxMTUsMjIgQEAgdm9pZCBEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OnJl
bW92ZURhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb24odWludDY0X3QKICAgICBSZWZQdHI8RGF0
YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbj4gaWRiQ29ubmVjdGlvbiA9IG1faWRiQ29ubmVjdGlv
bnMudGFrZShzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcik7CiAgICAgaWRiQ29ubmVjdGlvbi0+
ZGlzY29ubmVjdGVkRnJvbVdlYlByb2Nlc3MoKTsKIH0KKwordm9pZCBEYXRhYmFzZVRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb246OmVzdGFibGlzaElEQkNvbm5lY3Rpb25Ub1NlcnZlcih1aW50NjRfdCBz
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikKK3sKKyAgICBMT0coSW5kZXhlZERCLCAiRGF0YWJh
c2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjplc3RhYmxpc2hJREJDb25uZWN0aW9uVG9TZXJ2ZXIg
LSAlIiBQUkl1NjQsIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKTsKKyAgICBBU1NFUlQoIW1f
d2ViSURCQ29ubmVjdGlvbnMuY29udGFpbnMoc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpKTsK
KworICAgIG1fd2ViSURCQ29ubmVjdGlvbnMuc2V0KHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
LCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmNyZWF0ZSgqdGhpcywgc2VydmVyQ29ubmVjdGlv
bklkZW50aWZpZXIpKTsKK30KKwordm9pZCBEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246
OnJlbW92ZUlEQkNvbm5lY3Rpb25Ub1NlcnZlcih1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllcikKK3sKKyAgICBBU1NFUlQobV93ZWJJREJDb25uZWN0aW9ucy5jb250YWlucyhzZXJ2
ZXJDb25uZWN0aW9uSWRlbnRpZmllcikpOworCisgICAgYXV0byBjb25uZWN0aW9uID0gbV93ZWJJ
REJDb25uZWN0aW9ucy50YWtlKHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKTsKKyAgICBjb25u
ZWN0aW9uLT5kaXNjb25uZWN0ZWRGcm9tV2ViUHJvY2VzcygpOworfQogI2VuZGlmCiAKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNlVG9XZWJQcm9j
ZXNzQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFiYXNl
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oCmluZGV4IDE1MDZlYWIuLjFjNDI3ZWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VU
b1dlYlByb2Nlc3NDb25uZWN0aW9uLmgKQEAgLTM2LDYgKzM2LDggQEAKIAogbmFtZXNwYWNlIFdl
YktpdCB7CiAKK2NsYXNzIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDsKKwogY2xhc3MgRGF0YWJh
c2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8RGF0YWJhc2VUb1dl
YlByb2Nlc3NDb25uZWN0aW9uPiwgcHVibGljIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50LCBwdWJs
aWMgSVBDOjpNZXNzYWdlU2VuZGVyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPERhdGFiYXNl
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbj4gY3JlYXRlKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmll
cik7CkBAIC02MCwxMiArNjIsMTggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHVpbnQ2NF90IG1l
c3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgb3ZlcnJpZGUgeyByZXR1cm4gMDsgfQogCiAjaWYg
RU5BQkxFKElOREVYRURfREFUQUJBU0UpCi0gICAgLy8gTWVzc2FnZXMgaGFuZGxlcnMKKyAgICAv
LyBNZXNzYWdlcyBoYW5kbGVycyAoTGVnYWN5IElEQikKICAgICB2b2lkIGVzdGFibGlzaElEQkNv
bm5lY3Rpb24odWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpOwogICAgIHZvaWQg
cmVtb3ZlRGF0YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbih1aW50NjRfdCBzZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllcik7CiAKICAgICB0eXBlZGVmIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxE
YXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uPj4gSURCQ29ubmVjdGlvbk1hcDsKICAgICBJREJD
b25uZWN0aW9uTWFwIG1faWRiQ29ubmVjdGlvbnM7CisKKyAgICAvLyBNZXNzYWdlcyBoYW5kbGVy
cyAoTW9kZXJuIElEQikKKyAgICB2b2lkIGVzdGFibGlzaElEQkNvbm5lY3Rpb25Ub1NlcnZlcih1
aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcik7CisgICAgdm9pZCByZW1vdmVJREJD
b25uZWN0aW9uVG9TZXJ2ZXIodWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpOwor
CisgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudD4+
IG1fd2ViSURCQ29ubmVjdGlvbnM7CiAjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0Up
CiAKICAgICBSZWZQdHI8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0RhdGFi
YXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgppbmRleCBkOTZmNDYwLi4wNjEw
OTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvRGF0YWJhc2VU
b1dlYlByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL0Rh
dGFiYXNlUHJvY2Vzcy9EYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4K
QEAgLTI0LDkgKzI0LDEzIEBACiAKIG1lc3NhZ2VzIC0+IERhdGFiYXNlVG9XZWJQcm9jZXNzQ29u
bmVjdGlvbiBMZWdhY3lSZWNlaXZlciB7CiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCi0g
ICAgIyBDcmVhdGVzIGEgY29ubmVjdGlvbiBmb3IgY29tbXVuaWNhdGlvbiB3aXRoIGEgV2ViUHJv
Y2VzcworICAgICMgQ3JlYXRlcyBhIGNvbm5lY3Rpb24gZm9yIGNvbW11bmljYXRpb24gd2l0aCBh
IFdlYlByb2Nlc3MgKExlZ2FjeSBJREIpCiAgICAgRXN0YWJsaXNoSURCQ29ubmVjdGlvbih1aW50
NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikKICAgICBSZW1vdmVEYXRhYmFzZVByb2Nl
c3NJREJDb25uZWN0aW9uKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKQorCisg
ICAgIyBDcmVhdGVzIGEgY29ubmVjdGlvbiBmb3IgY29tbXVuaWNhdGlvbiB3aXRoIGEgV2ViUHJv
Y2VzcyAoTW9kZXJuIElEQikKKyAgICBFc3RhYmxpc2hJREJDb25uZWN0aW9uVG9TZXJ2ZXIodWlu
dDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpCisgICAgUmVtb3ZlSURCQ29ubmVjdGlv
blRvU2VydmVyKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKQogI2VuZGlmCiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIv
V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJv
Y2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYmViYTM5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGll
bnQuY3BwCkBAIC0wLDAgKzEsMTM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5oIgorCisjaWYgRU5BQkxFKElO
REVYRURfREFUQUJBU0UpCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworUmVmPFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudD4gV2ViSURCQ29ubmVjdGlv
blRvQ2xpZW50OjpjcmVhdGUoRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uJiBjb25uZWN0
aW9uLCB1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikKK3sKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQoY29ubmVjdGlvbiwgc2VydmVy
Q29ubmVjdGlvbklkZW50aWZpZXIpKTsKK30KKworV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpX
ZWJJREJDb25uZWN0aW9uVG9DbGllbnQoRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uJiBj
b25uZWN0aW9uLCB1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikKKyAgICA6IG1f
Y29ubmVjdGlvbihjb25uZWN0aW9uKQoreworICAgIHJlbGF4QWRvcHRpb25SZXF1aXJlbWVudCgp
OworICAgIG1fY29ubmVjdGlvblRvQ2xpZW50ID0gSURCU2VydmVyOjpJREJDb25uZWN0aW9uVG9D
bGllbnQ6OmNyZWF0ZSgqdGhpcyk7Cit9CisKK1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6fldl
YklEQkNvbm5lY3Rpb25Ub0NsaWVudCgpCit7Cit9CisKK3ZvaWQgV2ViSURCQ29ubmVjdGlvblRv
Q2xpZW50OjpkaXNjb25uZWN0ZWRGcm9tV2ViUHJvY2VzcygpCit7Cit9CisKK0lQQzo6Q29ubmVj
dGlvbiogV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigp
Cit7CisgICAgcmV0dXJuIG1fY29ubmVjdGlvbi0+Y29ubmVjdGlvbigpOworfQorCitXZWJDb3Jl
OjpJREJTZXJ2ZXI6OklEQkNvbm5lY3Rpb25Ub0NsaWVudCYgV2ViSURCQ29ubmVjdGlvblRvQ2xp
ZW50Ojpjb25uZWN0aW9uVG9DbGllbnQoKQoreworICAgIHJldHVybiAqbV9jb25uZWN0aW9uVG9D
bGllbnQ7Cit9CisKK3ZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWREZWxldGVEYXRh
YmFzZShjb25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRhJikKK3sKK30KKwordm9pZCBXZWJJREJD
b25uZWN0aW9uVG9DbGllbnQ6OmRpZE9wZW5EYXRhYmFzZShjb25zdCBXZWJDb3JlOjpJREJSZXN1
bHREYXRhJikKK3sKK30KKwordm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZEFib3J0
VHJhbnNhY3Rpb24oY29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2Fj
dGlvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OklEQkVycm9yJikKK3sKK30KKwordm9pZCBX
ZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZENvbW1pdFRyYW5zYWN0aW9uKGNvbnN0IFdlYkNv
cmU6OklEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBX
ZWJDb3JlOjpJREJFcnJvciYpCit7Cit9CisKK3ZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50
OjpkaWRDcmVhdGVPYmplY3RTdG9yZShjb25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRhJikKK3sK
K30KKwordm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZERlbGV0ZU9iamVjdFN0b3Jl
KGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmKQoreworfQorCit2b2lkIFdlYklEQkNvbm5l
Y3Rpb25Ub0NsaWVudDo6ZGlkQ2xlYXJPYmplY3RTdG9yZShjb25zdCBXZWJDb3JlOjpJREJSZXN1
bHREYXRhJikKK3sKK30KKwordm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZENyZWF0
ZUluZGV4KGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmKQoreworfQorCit2b2lkIFdlYklE
QkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkRGVsZXRlSW5kZXgoY29uc3QgV2ViQ29yZTo6SURCUmVz
dWx0RGF0YSYpCit7Cit9CisKK3ZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWRQdXRP
ckFkZChjb25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRhJikKK3sKK30KKwordm9pZCBXZWJJREJD
b25uZWN0aW9uVG9DbGllbnQ6OmRpZEdldFJlY29yZChjb25zdCBXZWJDb3JlOjpJREJSZXN1bHRE
YXRhJikKK3sKK30KKwordm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZEdldENvdW50
KGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmKQoreworfQorCit2b2lkIFdlYklEQkNvbm5l
Y3Rpb25Ub0NsaWVudDo6ZGlkRGVsZXRlUmVjb3JkKGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERh
dGEmKQoreworfQorCit2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkT3BlbkN1cnNv
cihjb25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRhJikKK3sKK30KKwordm9pZCBXZWJJREJDb25u
ZWN0aW9uVG9DbGllbnQ6OmRpZEl0ZXJhdGVDdXJzb3IoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0
RGF0YSYpCit7Cit9CisKK3ZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpmaXJlVmVyc2lv
bkNoYW5nZUV2ZW50KFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2VDb25uZWN0
aW9uJiwgY29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRp
ZmllciwgdWludDY0X3QgcmVxdWVzdGVkVmVyc2lvbikKK3sKK30KKwordm9pZCBXZWJJREJDb25u
ZWN0aW9uVG9DbGllbnQ6OmRpZFN0YXJ0VHJhbnNhY3Rpb24oY29uc3QgV2ViQ29yZTo6SURCUmVz
b3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OklE
QkVycm9yJikKK3sKK30KKwordm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6Om5vdGlmeU9w
ZW5EQlJlcXVlc3RCbG9ja2VkKGNvbnN0IFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllciYg
cmVxdWVzdElkZW50aWZpZXIsIHVpbnQ2NF90IG9sZFZlcnNpb24sIHVpbnQ2NF90IG5ld1ZlcnNp
b24pCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKElO
REVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nl
c3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5oIGIvU291cmNlL1dlYktpdDIv
RGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NGU1ZDAxCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0
aW9uVG9DbGllbnQuaApAQCAtMCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJJ
REJDb25uZWN0aW9uVG9DbGllbnRfaAorI2RlZmluZSBXZWJJREJDb25uZWN0aW9uVG9DbGllbnRf
aAorCisjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCisKKyNpbmNsdWRlICJEYXRhYmFzZVRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCisjaW5j
bHVkZSA8V2ViQ29yZS9JREJDb25uZWN0aW9uVG9DbGllbnQuaD4KKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK2NsYXNzIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudCBmaW5hbCA6IHB1YmxpYyBXZWJD
b3JlOjpJREJTZXJ2ZXI6OklEQkNvbm5lY3Rpb25Ub0NsaWVudERlbGVnYXRlLCBwdWJsaWMgSVBD
OjpNZXNzYWdlU2VuZGVyLCBwdWJsaWMgUmVmQ291bnRlZDxXZWJJREJDb25uZWN0aW9uVG9DbGll
bnQ+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudD4g
Y3JlYXRlKERhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbiYsIHVpbnQ2NF90IHNlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyKTsKKworICAgIHZpcnR1YWwgfldlYklEQkNvbm5lY3Rpb25Ub0Ns
aWVudCgpOworCisgICAgV2ViQ29yZTo6SURCU2VydmVyOjpJREJDb25uZWN0aW9uVG9DbGllbnQm
IGNvbm5lY3Rpb25Ub0NsaWVudCgpOworICAgIHZpcnR1YWwgdWludDY0X3QgaWRlbnRpZmllcigp
IGNvbnN0IG92ZXJyaWRlIGZpbmFsIHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQorICAgIHZpcnR1
YWwgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBvdmVycmlkZSBmaW5hbCB7
IHJldHVybiBtX2lkZW50aWZpZXI7IH0KKworICAgIHZpcnR1YWwgdm9pZCBkaWREZWxldGVEYXRh
YmFzZShjb25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRhJikgb3ZlcnJpZGUgZmluYWw7CisgICAg
dmlydHVhbCB2b2lkIGRpZE9wZW5EYXRhYmFzZShjb25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRh
Jikgb3ZlcnJpZGUgZmluYWw7CisgICAgdmlydHVhbCB2b2lkIGRpZEFib3J0VHJhbnNhY3Rpb24o
Y29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZp
ZXIsIGNvbnN0IFdlYkNvcmU6OklEQkVycm9yJikgb3ZlcnJpZGUgZmluYWw7CisgICAgdmlydHVh
bCB2b2lkIGRpZENvbW1pdFRyYW5zYWN0aW9uKGNvbnN0IFdlYkNvcmU6OklEQlJlc291cmNlSWRl
bnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpJREJFcnJvciYp
IG92ZXJyaWRlIGZpbmFsOworICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVPYmplY3RTdG9yZShj
b25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRhJikgb3ZlcnJpZGUgZmluYWw7CisgICAgdmlydHVh
bCB2b2lkIGRpZERlbGV0ZU9iamVjdFN0b3JlKGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEm
KSBvdmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xlYXJPYmplY3RTdG9yZShj
b25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRhJikgb3ZlcnJpZGUgZmluYWw7CisgICAgdmlydHVh
bCB2b2lkIGRpZENyZWF0ZUluZGV4KGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmKSBvdmVy
cmlkZSBmaW5hbDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRGVsZXRlSW5kZXgoY29uc3QgV2ViQ29y
ZTo6SURCUmVzdWx0RGF0YSYpIG92ZXJyaWRlIGZpbmFsOworICAgIHZpcnR1YWwgdm9pZCBkaWRQ
dXRPckFkZChjb25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRhJikgb3ZlcnJpZGUgZmluYWw7Cisg
ICAgdmlydHVhbCB2b2lkIGRpZEdldFJlY29yZChjb25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRh
Jikgb3ZlcnJpZGUgZmluYWw7CisgICAgdmlydHVhbCB2b2lkIGRpZEdldENvdW50KGNvbnN0IFdl
YkNvcmU6OklEQlJlc3VsdERhdGEmKSBvdmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkRGVsZXRlUmVjb3JkKGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmKSBvdmVycmlkZSBm
aW5hbDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkT3BlbkN1cnNvcihjb25zdCBXZWJDb3JlOjpJREJS
ZXN1bHREYXRhJikgb3ZlcnJpZGUgZmluYWw7CisgICAgdmlydHVhbCB2b2lkIGRpZEl0ZXJhdGVD
dXJzb3IoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYpIG92ZXJyaWRlIGZpbmFsOworCisg
ICAgdmlydHVhbCB2b2lkIGZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQoV2ViQ29yZTo6SURCU2VydmVy
OjpVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJj
ZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCB1aW50NjRfdCByZXF1ZXN0ZWRWZXJzaW9u
KSBvdmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU3RhcnRUcmFuc2FjdGlvbihj
b25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmll
ciwgY29uc3QgV2ViQ29yZTo6SURCRXJyb3ImKSBvdmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0dWFs
IHZvaWQgbm90aWZ5T3BlbkRCUmVxdWVzdEJsb2NrZWQoY29uc3QgV2ViQ29yZTo6SURCUmVzb3Vy
Y2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgdWludDY0X3Qgb2xkVmVyc2lvbiwgdWlu
dDY0X3QgbmV3VmVyc2lvbikgb3ZlcnJpZGUgZmluYWw7CisKKyAgICB2aXJ0dWFsIHZvaWQgcmVm
KCkgb3ZlcnJpZGUgeyBSZWZDb3VudGVkPFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudD46OnJlZigp
OyB9CisgICAgdmlydHVhbCB2b2lkIGRlcmVmKCkgb3ZlcnJpZGUgeyBSZWZDb3VudGVkPFdlYklE
QkNvbm5lY3Rpb25Ub0NsaWVudD46OmRlcmVmKCk7IH0KKworICAgIHZvaWQgZGlzY29ubmVjdGVk
RnJvbVdlYlByb2Nlc3MoKTsKKworcHJpdmF0ZToKKyAgICBXZWJJREJDb25uZWN0aW9uVG9DbGll
bnQoRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uJiwgdWludDY0X3Qgc2VydmVyQ29ubmVj
dGlvbklkZW50aWZpZXIpOworCisgICAgdmlydHVhbCBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VT
ZW5kZXJDb25uZWN0aW9uKCkgb3ZlcnJpZGUgZmluYWw7CisgICAgUmVmPERhdGFiYXNlVG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworCisgICAgdWludDY0X3QgbV9pZGVudGlm
aWVyOworICAgIFJlZlB0cjxXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQkNvbm5lY3Rpb25Ub0NsaWVu
dD4gbV9jb25uZWN0aW9uVG9DbGllbnQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwor
I2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorI2VuZGlmIC8vIFdlYklEQkNvbm5l
Y3Rpb25Ub0NsaWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Mb2dn
aW5nLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Mb2dnaW5nLmgKaW5kZXggOWJiODM0NS4u
ZDRjMzMxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vTG9nZ2luZy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0xvZ2dpbmcuaApAQCAtNDEsNiArNDEsNyBAQCBu
YW1lc3BhY2UgV2ViS2l0IHsKICAgICBNKENvbnRleHRNZW51KSBcCiAgICAgTShJREIpIFwKICAg
ICBNKEljb25EYXRhYmFzZSkgXAorICAgIE0oSW5kZXhlZERCKSBcCiAgICAgTShJbnNwZWN0b3JT
ZXJ2ZXIpIFwKICAgICBNKEtleUhhbmRsaW5nKSBcCiAgICAgTShOZXR3b3JrKSBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNjE5
NWM2NC4uYTdhNTRlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtODU0LDYgKzg1NCw4IEBACiAJCTUxMDMyRjE5MTgwRjczQkIw
MDk2MUJCNyAvKiBXZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMDMyRjE3MTgwRjczQkIwMDk2MUJC
NyAvKiBXZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24uaCAqLzsgfTsKIAkJNTEwMzJGMUQx
ODBGNzkxNzAwOTYxQkI3IC8qIERhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VS
ZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MTAzMkYxQjE4MEY3OTE3MDA5NjFCQjcgLyogRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0
aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJNTEwMzJGMUUxODBGNzkxNzAwOTYxQkI3
IC8qIERhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTAzMkYxQzE4MEY3OTE3MDA5NjFC
QjcgLyogRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCAqLzsgfTsKKwkJ
NTEwNTIzNkYxQzczOUQ0MjAwNzk5M0NCIC8qIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTA1MjM2RDFD
NzM5M0U5MDA3OTkzQ0IgLyogV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcCAqLzsgfTsKKwkJ
NTEwNTIzNzAxQzczOUQ0MjAwNzk5M0NCIC8qIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwNTIzNkUxQzcz
OTNFOTAwNzk5M0NCIC8qIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5oICovOyB9OwogCQk1MTA2
NEQzNTE4OTc4MUM0MDA0QjJGRUIgLyogU1FMaXRlSURCQ3Vyc29yLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMDY0RDMzMTg5NzgxQzQwMDRCMkZF
QiAvKiBTUUxpdGVJREJDdXJzb3IuY3BwICovOyB9OwogCQk1MTA2NEQzNjE4OTc4MUM0MDA0QjJG
RUIgLyogU1FMaXRlSURCQ3Vyc29yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MTA2NEQzNDE4OTc4MUM0MDA0QjJGRUIgLyogU1FMaXRlSURCQ3Vyc29y
LmggKi87IH07CiAJCTUxMDZEN0MyMThCREJFNzMwMDBBQjE2NiAvKiBDb250ZXh0TWVudUNvbnRl
eHREYXRhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxMDZEN0JGMThCREJFNzMwMDBBQjE2NiAvKiBDb250ZXh0TWVudUNvbnRleHREYXRhLmNwcCAq
LzsgfTsKQEAgLTkxNCw2ICs5MTYsOCBAQAogCQk1MTNBMTY0RDE2MzBBOUJGMDA1RDdEMjIgLyog
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxM0ExNjRBMTYzMEE5QkYwMDVEN0QyMiAvKiBOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oICovOyB9OwogCQk1MTNFNDYyRDFBRDgzNzU2MDAxNjIz
NEEgLyogV0tTaGFyaW5nU2VydmljZVBpY2tlckRlbGVnYXRlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTNFNDYyQjFBRDgzNzU2MDAxNjIzNEEgLyog
V0tTaGFyaW5nU2VydmljZVBpY2tlckRlbGVnYXRlLmggKi87IH07CiAJCTUxM0U0NjJFMUFEODM3
NTYwMDE2MjM0QSAvKiBXS1NoYXJpbmdTZXJ2aWNlUGlja2VyRGVsZWdhdGUubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTNFNDYyQzFBRDgzNzU2MDAx
NjIzNEEgLyogV0tTaGFyaW5nU2VydmljZVBpY2tlckRlbGVnYXRlLm1tICovOyB9OworCQk1MTQx
Mjk5NDFDNjQyOEJCMDA1OUU3MTQgLyogV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTQxMjk5MjFDNjQyODEw
MDA1OUU3MTQgLyogV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmggKi87IH07CisJCTUxNDEyOTk1
MUM2NDI4QzIwMDU5RTcxNCAvKiBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE0MTI5OTExQzY0MjgxMDAw
NTlFNzE0IC8qIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAgKi87IH07CiAJCTUxNEJERUQz
MTZDOThFREQwMEU0RTI1RSAvKiBTdGF0aXN0aWNzUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE0QkRFRDIxNkM5OEVERDAwRTRFMjVFIC8q
IFN0YXRpc3RpY3NSZXF1ZXN0LmggKi87IH07CiAJCTUxNEQ5RjU3MTkxMTlEMzUwMDAwNjNBNyAv
KiBTZXJ2aWNlc0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUxNEQ5RjU1MTkxMTlEMzUwMDAwNjNBNyAvKiBTZXJ2aWNlc0NvbnRyb2xs
ZXIuaCAqLzsgfTsKIAkJNTE0RDlGNTgxOTExOUQzNTAwMDA2M0E3IC8qIFNlcnZpY2VzQ29udHJv
bGxlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
NEQ5RjU2MTkxMTlEMzUwMDAwNjNBNyAvKiBTZXJ2aWNlc0NvbnRyb2xsZXIubW0gKi87IH07CkBA
IC0yODUxLDYgKzI4NTUsOCBAQAogCQk1MTAzMkYxQTE4MEY3NEYxMDA5NjFCQjcgLyogRGF0YWJh
c2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERhdGFiYXNlVG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTEwMzJGMUIxODBGNzkxNzAwOTYxQkI3IC8qIERhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVj
dGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTAzMkYxQzE4MEY3OTE3MDA5NjFCQjcgLyog
RGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTEwNTIzNkQxQzczOTNFOTAwNzk5M0NC
IC8qIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk1MTA1MjM2RTFDNzM5M0U5MDA3OTkzQ0IgLyogV2ViSURCQ29ubmVj
dGlvblRvQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYklEQkNv
bm5lY3Rpb25Ub0NsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTA1QjBE
NDE2MkY3QTdBMDBFMjc3MDkgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5j
cHA7IHBhdGggPSBOZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMDVCMEQ1MTYyRjdBN0EwMEUyNzcwOSAvKiBOZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uLmg7IHBhdGggPSBOZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTA1QjBGMzE2MzA4NzJF
MDBFMjc3MDkgLyogTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBOZXR3b3Jr
UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MjkyMCw2ICsyOTI2LDggQEAKIAkJNTEzQTE2NEIxNjMwQTlCRjAwNUQ3RDIyIC8qIE5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9
IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOyBwYXRoID0gTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW47IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxM0U0NjJCMUFEODM3NTYwMDE2MjM0QSAvKiBXS1No
YXJpbmdTZXJ2aWNlUGlja2VyRGVsZWdhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV0tTaGFyaW5nU2VydmljZVBpY2tlckRlbGVnYXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTUxM0U0NjJDMUFEODM3NTYwMDE2MjM0QSAvKiBXS1NoYXJpbmdTZXJ2aWNl
UGlja2VyRGVsZWdhdGUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBXS1NoYXJpbmdTZXJ2aWNlUGlja2VyRGVsZWdhdGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTUxNDEyOTkxMUM2NDI4MTAwMDU5RTcxNCAvKiBXZWJJREJDb25uZWN0aW9uVG9T
ZXJ2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViSURCQ29u
bmVjdGlvblRvU2VydmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTE0MTI5
OTIxQzY0MjgxMDAwNTlFNzE0IC8qIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE0QkRFRDIxNkM5OEVERDAwRTRFMjVFIC8qIFN0
YXRpc3RpY3NSZXF1ZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0YXRp
c3RpY3NSZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNEQ5RjU1MTkx
MTlEMzUwMDAwNjNBNyAvKiBTZXJ2aWNlc0NvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU2VydmljZXNDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUxNEQ5RjU2MTkxMTlEMzUwMDAwNjNBNyAvKiBTZXJ2aWNlc0NvbnRyb2xsZXIu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTZXJ2aWNlc0NvbnRy
b2xsZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01MzA2LDYgKzUzMTQsOCBA
QAogCQk1MTFGOEVEQTE4MDg4MTY2MDA0N0RBOTYgLyogSW5kZXhlZERCICovID0gewogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk1MTQxMjk5MTFDNjQyODEwMDA1OUU3
MTQgLyogV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcCAqLywKKwkJCQk1MTQxMjk5MjFDNjQy
ODEwMDA1OUU3MTQgLyogV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmggKi8sCiAJCQkJNTFFMzUx
RjExODBGNUM3NTAwRTUzQkU5IC8qIFdlYklEQkZhY3RvcnlCYWNrZW5kLmNwcCAqLywKIAkJCQk1
MUUzNTFGMjE4MEY1Qzc1MDBFNTNCRTkgLyogV2ViSURCRmFjdG9yeUJhY2tlbmQuaCAqLywKIAkJ
CQk1MTI5MDk5MDE4M0FDRUFGMDA1NTIyQTYgLyogV2ViSURCU2VydmVyQ29ubmVjdGlvbi5jcHAg
Ki8sCkBAIC01NDU1LDYgKzU0NjUsOCBAQAogCQkJCTUxNjU0RUZGMTg0RUYzNEEwMDdEQzgzNyAv
KiBVbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZS5oICovLAogCQkJCTUxNUU3NzMxMTg0MDJE
NTEwMDA3MjAzRiAvKiBVbmlxdWVJREJEYXRhYmFzZUlkZW50aWZpZXIuY3BwICovLAogCQkJCTUx
NUU3NzMyMTg0MDJENTEwMDA3MjAzRiAvKiBVbmlxdWVJREJEYXRhYmFzZUlkZW50aWZpZXIuaCAq
LywKKwkJCQk1MTA1MjM2RDFDNzM5M0U5MDA3OTkzQ0IgLyogV2ViSURCQ29ubmVjdGlvblRvQ2xp
ZW50LmNwcCAqLywKKwkJCQk1MTA1MjM2RTFDNzM5M0U5MDA3OTkzQ0IgLyogV2ViSURCQ29ubmVj
dGlvblRvQ2xpZW50LmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IEluZGV4ZWREQjsKIAkJCXNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC03NzYzLDYgKzc3NzUsNyBAQAogCQkJCTFBNTJDMEY4MUEz
OENEQzcwMDE2MTYwQSAvKiBXZWJTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDQzU3MTVCMTE1QURBRUYwMDFDQ0FGOSAvKiBXZWJTeXN0ZW1JbnRlcmZhY2Uu
aCBpbiBIZWFkZXJzICovLAogCQkJCTUxMDMyRjE5MTgwRjczQkIwMDk2MUJCNyAvKiBXZWJUb0Rh
dGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTUxNDEyOTk0MUM2
NDI4QkIwMDU5RTcxNCAvKiBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDQTBFRjdGMTIzMzFFNzgwMDdEM0NGQiAvKiBXZWJVbmRvU3RlcC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMUFBRjA4QUUxOTI2OTM2NzAwQjYzOTBDIC8qIFdlYlVzZXJDb250ZW50Q29u
dHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFBRjA4QjgxOTI2OUU2RDAwQjYzOTBDIC8q
IFdlYlVzZXJDb250ZW50Q29udHJvbGxlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKQEAgLTc3
ODYsNiArNzc5OSw3IEBACiAJCQkJNTEyRjU4RjgxMkE4OEE1NDAwNjI5NTMwIC8qIFdLQXV0aGVu
dGljYXRpb25EZWNpc2lvbkxpc3RlbmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkzN0M0QzA4RDE4
MTRBQzVDMDAzNjg4QjkgLyogV0tCYWNrRm9yd2FyZExpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTM3QzRDMDk1MTgxNEI5RTYwMDM2ODhCOSAvKiBXS0JhY2tGb3J3YXJkTGlzdEludGVybmFsLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk1MTA1MjM3MDFDNzM5RDQyMDA3OTkzQ0IgLyogV2ViSURCQ29u
bmVjdGlvblRvQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkzN0M0QzA4NzE4MTQ5QzVCMDAz
Njg4QjkgLyogV0tCYWNrRm9yd2FyZExpc3RJdGVtLmggaW4gSGVhZGVycyAqLywKIAkJCQkzN0M0
QzA4OTE4MTQ5RjIzMDAzNjg4QjkgLyogV0tCYWNrRm9yd2FyZExpc3RJdGVtSW50ZXJuYWwuaCBp
biBIZWFkZXJzICovLAogCQkJCUJDNjQ2QzFEMTFERDM5OUYwMDY0NTVCMCAvKiBXS0JhY2tGb3J3
YXJkTGlzdEl0ZW1SZWYuaCBpbiBIZWFkZXJzICovLApAQCAtODc5Myw2ICs4ODA3LDcgQEAKIAkJ
CQkxQUI3RDRDQjEyODhBQUE3MDBDRkQwOEMgLyogRG93bmxvYWRQcm94eS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkxQUQyNUU5NTE2N0FCMDgxMDBFQTlCQ0QgLyogRG93bmxvYWRQcm94eU1hcC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUI3RDYxOTEyODhCOUQ5MDBDRkQwOEMgLyogRG93bmxv
YWRQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1MTA1MjM2RjFD
NzM5RDQyMDA3OTkzQ0IgLyogV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUJDODQ1MkE3MTE2MkM4MDkwMENBQjlCNSAvKiBEcmF3aW5nQXJlYS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkxQTY0MjI5OTEyREQwMjkyMDBDQUFFMkMgLyogRHJhd2luZ0FyZWFN
ZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMyNjUyMTYxMTgyNjA4MTAw
MjQzRTEyIC8qIERyYXdpbmdBcmVhUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC05NDE4LDYg
Kzk0MzMsNyBAQAogCQkJCUJDRDU5N0QxMTEyQjU2QUMwMEVDOEMyMyAvKiBXS1ByZWZlcmVuY2Vz
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBRkREMzE5MTg5MUNBMTIwMDE1Mzk3MCAvKiBXS1By
ZWZlcmVuY2VzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDQjRFNjcxOEJCRTNEOTAwMEZDRkM5
IC8qIFdLUHJpbnRpbmdWaWV3Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNTE0MTI5OTUxQzY0MjhD
MjAwNTlFNzE0IC8qIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlCQ0JBQUNFQzE0NTIyNUUzMDA1M0Y4MkYgLyogV0tQcm9jZXNzR3JvdXAubW0gaW4gU291
cmNlcyAqLywKIAkJCQkxQTE1ODQxOTE4OTA0NEY1MDAxNzYxNkMgLyogV0tQcm9jZXNzUG9vbC5t
bSBpbiBTb3VyY2VzICovLAogCQkJCTUxMkY1OEZCMTJBODhBNTQwMDYyOTUzMCAvKiBXS1Byb3Rl
Y3Rpb25TcGFjZS5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklE
QkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uNWE0NGIwMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
RGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwCkBAIC0wLDAg
KzEsMTYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldl
YklEQkNvbm5lY3Rpb25Ub1NlcnZlci5oIgorCisjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0Up
CisKKyNpbmNsdWRlICJEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oIgor
I2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlICJXZWJUb0RhdGFiYXNlUHJvY2Vzc0Nv
bm5lY3Rpb24uaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvSURCT3BlbkRCUmVxdWVzdEltcGwuaD4KKwordXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdGF0aWMgdWludDY0X3QgZ2Vu
ZXJhdGVDb25uZWN0aW9uVG9TZXJ2ZXJJZGVudGlmaWVyKCkKK3sKKyAgICBBU1NFUlQoUnVuTG9v
cDo6aXNNYWluKCkpOworICAgIHN0YXRpYyB1aW50NjRfdCBpZGVudGlmaWVyID0gMDsKKyAgICBy
ZXR1cm4gKytpZGVudGlmaWVyOworfQorCitSZWY8V2ViSURCQ29ubmVjdGlvblRvU2VydmVyPiBX
ZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmNyZWF0ZSgpCit7CisgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgV2ViSURCQ29ubmVjdGlvblRvU2VydmVyKTsKK30KKworV2ViSURCQ29ubmVjdGlvblRv
U2VydmVyOjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIoKQorICAgIDogbV9pZGVudGlmaWVyKGdl
bmVyYXRlQ29ubmVjdGlvblRvU2VydmVySWRlbnRpZmllcigpKQoreworICAgIHJlbGF4QWRvcHRp
b25SZXF1aXJlbWVudCgpOworICAgIG1fY29ubmVjdGlvblRvU2VydmVyID0gSURCQ2xpZW50OjpJ
REJDb25uZWN0aW9uVG9TZXJ2ZXI6OmNyZWF0ZSgqdGhpcyk7CisKKyAgICBzZW5kKE1lc3NhZ2Vz
OjpEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OkVzdGFibGlzaElEQkNvbm5lY3Rpb25U
b1NlcnZlcihtX2lkZW50aWZpZXIpKTsKKworICAgIG1faXNPcGVuSW5TZXJ2ZXIgPSB0cnVlOwor
fQorCitXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6On5XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIo
KQoreworICAgIGlmIChtX2lzT3BlbkluU2VydmVyKQorICAgICAgICBzZW5kKE1lc3NhZ2VzOjpE
YXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OlJlbW92ZUlEQkNvbm5lY3Rpb25Ub1NlcnZl
cihtX2lkZW50aWZpZXIpKTsKK30KKworSVBDOjpDb25uZWN0aW9uKiBXZWJJREJDb25uZWN0aW9u
VG9TZXJ2ZXI6Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkKK3sKKyAgICByZXR1cm4gV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkud2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uKCktPmNvbm5l
Y3Rpb24oKTsKK30KKworSURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXImIFdlYklEQkNv
bm5lY3Rpb25Ub1NlcnZlcjo6Y29yZUNvbm5lY3Rpb25Ub1NlcnZlcigpCit7CisgICAgcmV0dXJu
ICptX2Nvbm5lY3Rpb25Ub1NlcnZlcjsKK30KKwordm9pZCBXZWJJREJDb25uZWN0aW9uVG9TZXJ2
ZXI6OmRlbGV0ZURhdGFiYXNlKElEQlJlcXVlc3REYXRhJikKK3sKK30KKwordm9pZCBXZWJJREJD
b25uZWN0aW9uVG9TZXJ2ZXI6Om9wZW5EYXRhYmFzZShJREJSZXF1ZXN0RGF0YSYpCit7Cit9CisK
K3ZvaWQgV2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjphYm9ydFRyYW5zYWN0aW9uKElEQlJlc291
cmNlSWRlbnRpZmllciYpCit7Cit9CisKK3ZvaWQgV2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpj
b21taXRUcmFuc2FjdGlvbihJREJSZXNvdXJjZUlkZW50aWZpZXImKQoreworfQorCit2b2lkIFdl
YklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGlkRmluaXNoSGFuZGxpbmdWZXJzaW9uQ2hhbmdlVHJh
bnNhY3Rpb24oSURCUmVzb3VyY2VJZGVudGlmaWVyJikKK3sKK30KKwordm9pZCBXZWJJREJDb25u
ZWN0aW9uVG9TZXJ2ZXI6OmNyZWF0ZU9iamVjdFN0b3JlKGNvbnN0IElEQlJlcXVlc3REYXRhJiwg
Y29uc3QgSURCT2JqZWN0U3RvcmVJbmZvJikKK3sKK30KKwordm9pZCBXZWJJREJDb25uZWN0aW9u
VG9TZXJ2ZXI6OmRlbGV0ZU9iamVjdFN0b3JlKGNvbnN0IElEQlJlcXVlc3REYXRhJiwgY29uc3Qg
U3RyaW5nJiBvYmplY3RTdG9yZU5hbWUpCit7Cit9CisKK3ZvaWQgV2ViSURCQ29ubmVjdGlvblRv
U2VydmVyOjpjbGVhck9iamVjdFN0b3JlKGNvbnN0IElEQlJlcXVlc3REYXRhJiwgdWludDY0X3Qg
b2JqZWN0U3RvcmVJZGVudGlmaWVyKQoreworfQorCit2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub1Nl
cnZlcjo6Y3JlYXRlSW5kZXgoY29uc3QgSURCUmVxdWVzdERhdGEmLCBjb25zdCBJREJJbmRleElu
Zm8mKQoreworfQorCit2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGVsZXRlSW5kZXgo
Y29uc3QgSURCUmVxdWVzdERhdGEmLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYgaW5kZXhOYW1lKQoreworfQorCit2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub1Nl
cnZlcjo6cHV0T3JBZGQoY29uc3QgSURCUmVxdWVzdERhdGEmLCBJREJLZXkqLCBTZXJpYWxpemVk
U2NyaXB0VmFsdWUmLCBjb25zdCBJbmRleGVkREI6Ok9iamVjdFN0b3JlT3ZlcndyaXRlTW9kZSkK
K3sKK30KKwordm9pZCBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmdldFJlY29yZChjb25zdCBJ
REJSZXF1ZXN0RGF0YSYsIGNvbnN0IElEQktleVJhbmdlRGF0YSYpCit7Cit9CisKK3ZvaWQgV2Vi
SURCQ29ubmVjdGlvblRvU2VydmVyOjpnZXRDb3VudChjb25zdCBJREJSZXF1ZXN0RGF0YSYsIGNv
bnN0IElEQktleVJhbmdlRGF0YSYpCit7Cit9CisKK3ZvaWQgV2ViSURCQ29ubmVjdGlvblRvU2Vy
dmVyOjpkZWxldGVSZWNvcmQoY29uc3QgSURCUmVxdWVzdERhdGEmLCBjb25zdCBJREJLZXlSYW5n
ZURhdGEmKQoreworfQorCit2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6b3BlbkN1cnNv
cihjb25zdCBJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IElEQkN1cnNvckluZm8mKQoreworfQorCit2
b2lkIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6aXRlcmF0ZUN1cnNvcihjb25zdCBJREJSZXF1
ZXN0RGF0YSYsIGNvbnN0IElEQktleURhdGEmLCB1bnNpZ25lZCBsb25nIGNvdW50KQoreworfQor
Cit2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZXN0YWJsaXNoVHJhbnNhY3Rpb24odWlu
dDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCVHJhbnNhY3Rpb25J
bmZvJikKK3sKK30KKwordm9pZCBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRhdGFiYXNlQ29u
bmVjdGlvbkNsb3NlZCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyKQorewor
fQorCit2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6YWJvcnRPcGVuQW5kVXBncmFkZU5l
ZWRlZCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNv
dXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllcikKK3sKK30KKwordm9pZCBXZWJJ
REJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRpZEZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQodWludDY0X3Qg
ZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVy
JiByZXF1ZXN0SWRlbnRpZmllcikKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNl
bmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2
ZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJ
REJDb25uZWN0aW9uVG9TZXJ2ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li44MDUxYjQzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9E
YXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5oCkBAIC0wLDAgKzEs
ODMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcl9oCisj
ZGVmaW5lIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcl9oCisKKyNpZiBFTkFCTEUoSU5ERVhFRF9E
QVRBQkFTRSkKKworI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3Jl
L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3Mg
V2ViSURCQ29ubmVjdGlvblRvU2VydmVyIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OklEQkNsaWVu
dDo6SURCQ29ubmVjdGlvblRvU2VydmVyRGVsZWdhdGUsIHB1YmxpYyBJUEM6Ok1lc3NhZ2VTZW5k
ZXIsIHB1YmxpYyBSZWZDb3VudGVkPFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcj4geworcHVibGlj
OgorICAgIHN0YXRpYyBSZWY8V2ViSURCQ29ubmVjdGlvblRvU2VydmVyPiBjcmVhdGUoKTsKKwor
ICAgIHZpcnR1YWwgfldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcigpOworCisgICAgV2ViQ29yZTo6
SURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXImIGNvcmVDb25uZWN0aW9uVG9TZXJ2ZXIo
KTsKKyAgICB2aXJ0dWFsIHVpbnQ2NF90IGlkZW50aWZpZXIoKSBjb25zdCBvdmVycmlkZSBmaW5h
bCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KKyAgICB2aXJ0dWFsIHVpbnQ2NF90IG1lc3NhZ2VT
ZW5kZXJEZXN0aW5hdGlvbklEKCkgb3ZlcnJpZGUgZmluYWwgeyByZXR1cm4gbV9pZGVudGlmaWVy
OyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlRGF0YWJhc2UoV2ViQ29yZTo6SURCUmVxdWVz
dERhdGEmKSBvdmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0dWFsIHZvaWQgb3BlbkRhdGFiYXNlKFdl
YkNvcmU6OklEQlJlcXVlc3REYXRhJikgb3ZlcnJpZGUgZmluYWw7CisgICAgdmlydHVhbCB2b2lk
IGFib3J0VHJhbnNhY3Rpb24oV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJikgb3ZlcnJp
ZGUgZmluYWw7CisgICAgdmlydHVhbCB2b2lkIGNvbW1pdFRyYW5zYWN0aW9uKFdlYkNvcmU6OklE
QlJlc291cmNlSWRlbnRpZmllciYpIG92ZXJyaWRlIGZpbmFsOworICAgIHZpcnR1YWwgdm9pZCBk
aWRGaW5pc2hIYW5kbGluZ1ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbihXZWJDb3JlOjpJREJSZXNv
dXJjZUlkZW50aWZpZXImKSBvdmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0dWFsIHZvaWQgY3JlYXRl
T2JqZWN0U3RvcmUoY29uc3QgV2ViQ29yZTo6SURCUmVxdWVzdERhdGEmLCBjb25zdCBXZWJDb3Jl
OjpJREJPYmplY3RTdG9yZUluZm8mKSBvdmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGVsZXRlT2JqZWN0U3RvcmUoY29uc3QgV2ViQ29yZTo6SURCUmVxdWVzdERhdGEmLCBjb25zdCBT
dHJpbmcmIG9iamVjdFN0b3JlTmFtZSkgb3ZlcnJpZGUgZmluYWw7CisgICAgdmlydHVhbCB2b2lk
IGNsZWFyT2JqZWN0U3RvcmUoY29uc3QgV2ViQ29yZTo6SURCUmVxdWVzdERhdGEmLCB1aW50NjRf
dCBvYmplY3RTdG9yZUlkZW50aWZpZXIpIG92ZXJyaWRlIGZpbmFsOworICAgIHZpcnR1YWwgdm9p
ZCBjcmVhdGVJbmRleChjb25zdCBXZWJDb3JlOjpJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IFdlYkNv
cmU6OklEQkluZGV4SW5mbyYpIG92ZXJyaWRlIGZpbmFsOworICAgIHZpcnR1YWwgdm9pZCBkZWxl
dGVJbmRleChjb25zdCBXZWJDb3JlOjpJREJSZXF1ZXN0RGF0YSYsIHVpbnQ2NF90IG9iamVjdFN0
b3JlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBpbmRleE5hbWUpIG92ZXJyaWRlIGZpbmFsOwor
ICAgIHZpcnR1YWwgdm9pZCBwdXRPckFkZChjb25zdCBXZWJDb3JlOjpJREJSZXF1ZXN0RGF0YSYs
IFdlYkNvcmU6OklEQktleSosIFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSYsIGNvbnN0
IFdlYkNvcmU6OkluZGV4ZWREQjo6T2JqZWN0U3RvcmVPdmVyd3JpdGVNb2RlKSBvdmVycmlkZSBm
aW5hbDsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0UmVjb3JkKGNvbnN0IFdlYkNvcmU6OklEQlJlcXVl
c3REYXRhJiwgY29uc3QgV2ViQ29yZTo6SURCS2V5UmFuZ2VEYXRhJikgb3ZlcnJpZGUgZmluYWw7
CisgICAgdmlydHVhbCB2b2lkIGdldENvdW50KGNvbnN0IFdlYkNvcmU6OklEQlJlcXVlc3REYXRh
JiwgY29uc3QgV2ViQ29yZTo6SURCS2V5UmFuZ2VEYXRhJikgb3ZlcnJpZGUgZmluYWw7CisgICAg
dmlydHVhbCB2b2lkIGRlbGV0ZVJlY29yZChjb25zdCBXZWJDb3JlOjpJREJSZXF1ZXN0RGF0YSYs
IGNvbnN0IFdlYkNvcmU6OklEQktleVJhbmdlRGF0YSYpIG92ZXJyaWRlIGZpbmFsOworICAgIHZp
cnR1YWwgdm9pZCBvcGVuQ3Vyc29yKGNvbnN0IFdlYkNvcmU6OklEQlJlcXVlc3REYXRhJiwgY29u
c3QgV2ViQ29yZTo6SURCQ3Vyc29ySW5mbyYpIG92ZXJyaWRlIGZpbmFsOworICAgIHZpcnR1YWwg
dm9pZCBpdGVyYXRlQ3Vyc29yKGNvbnN0IFdlYkNvcmU6OklEQlJlcXVlc3REYXRhJiwgY29uc3Qg
V2ViQ29yZTo6SURCS2V5RGF0YSYsIHVuc2lnbmVkIGxvbmcgY291bnQpIG92ZXJyaWRlIGZpbmFs
OworICAgIHZpcnR1YWwgdm9pZCBlc3RhYmxpc2hUcmFuc2FjdGlvbih1aW50NjRfdCBkYXRhYmFz
ZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkluZm8m
KSBvdmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0dWFsIHZvaWQgZGF0YWJhc2VDb25uZWN0aW9uQ2xv
c2VkKHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIpIG92ZXJyaWRlIGZpbmFs
OworICAgIHZpcnR1YWwgdm9pZCBhYm9ydE9wZW5BbmRVcGdyYWRlTmVlZGVkKHVpbnQ2NF90IGRh
dGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OklEQlJlc291cmNlSWRl
bnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyKSBvdmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0
dWFsIHZvaWQgZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCh1aW50NjRfdCBkYXRhYmFzZUNvbm5l
Y3Rpb25JZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXImIHJl
cXVlc3RJZGVudGlmaWVyKSBvdmVycmlkZSBmaW5hbDsKKworICAgIHZpcnR1YWwgdm9pZCByZWYo
KSBvdmVycmlkZSB7IFJlZkNvdW50ZWQ8V2ViSURCQ29ubmVjdGlvblRvU2VydmVyPjo6cmVmKCk7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGVyZWYoKSBvdmVycmlkZSB7IFJlZkNvdW50ZWQ8V2ViSURC
Q29ubmVjdGlvblRvU2VydmVyPjo6ZGVyZWYoKTsgfQorCitwcml2YXRlOgorICAgIFdlYklEQkNv
bm5lY3Rpb25Ub1NlcnZlcigpOworCisgICAgdmlydHVhbCBJUEM6OkNvbm5lY3Rpb24qIG1lc3Nh
Z2VTZW5kZXJDb25uZWN0aW9uKCkgb3ZlcnJpZGUgZmluYWw7CisKKyAgICB1aW50NjRfdCBtX2lk
ZW50aWZpZXI7CisgICAgYm9vbCBtX2lzT3BlbkluU2VydmVyIHsgZmFsc2UgfTsKKyAgICBSZWZQ
dHI8V2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXI+IG1fY29ubmVjdGlv
blRvU2VydmVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFC
TEUoSU5ERVhFRF9EQVRBQkFTRSkKKyNlbmRpZiAvLyBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXJf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvV2ViRGF0
YWJhc2VQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9X
ZWJEYXRhYmFzZVByb3ZpZGVyLmNwcAppbmRleCA1MDQxZDIxLi5lZmJiMWQ3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJEYXRhYmFzZVByb3ZpZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJEYXRhYmFz
ZVByb3ZpZGVyLmNwcApAQCAtMjcsNiArMjcsOSBAQAogI2luY2x1ZGUgIldlYkRhdGFiYXNlUHJv
dmlkZXIuaCIKIAogI2luY2x1ZGUgIldlYklEQkZhY3RvcnlCYWNrZW5kLmgiCisjaW5jbHVkZSAi
V2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgIldlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbi5o
IgorI2luY2x1ZGUgPFdlYkNvcmUvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAu
aD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIApAQCAtNjYsNiArNjksMjEgQEAg
V2ViRGF0YWJhc2VQcm92aWRlcjo6fldlYkRhdGFiYXNlUHJvdmlkZXIoKQogfQogCiAjaWYgRU5B
QkxFKElOREVYRURfREFUQUJBU0UpCisKK1dlYkNvcmU6OklEQkNsaWVudDo6SURCQ29ubmVjdGlv
blRvU2VydmVyJiBXZWJEYXRhYmFzZVByb3ZpZGVyOjppZGJDb25uZWN0aW9uVG9TZXJ2ZXJGb3JT
ZXNzaW9uKGNvbnN0IFdlYkNvcmU6OlNlc3Npb25JRCYgc2Vzc2lvbklEKQoreworICAgIGlmIChz
ZXNzaW9uSUQuaXNFcGhlbWVyYWwoKSkgeworICAgICAgICBhdXRvIHJlc3VsdCA9IG1faWRiRXBo
ZW1lcmFsQ29ubmVjdGlvbk1hcC5hZGQoc2Vzc2lvbklELnNlc3Npb25JRCgpLCBudWxscHRyKTsK
KyAgICAgICAgaWYgKHJlc3VsdC5pc05ld0VudHJ5KQorICAgICAgICAgICAgcmVzdWx0Lml0ZXJh
dG9yLT52YWx1ZSA9IFdlYkNvcmU6OkluUHJvY2Vzc0lEQlNlcnZlcjo6Y3JlYXRlKCk7CisKKyAg
ICAgICAgcmV0dXJuIHJlc3VsdC5pdGVyYXRvci0+dmFsdWUtPmNvbm5lY3Rpb25Ub1NlcnZlcigp
OworICAgIH0KKworICAgIEFTU0VSVChXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJUb0RhdGFi
YXNlUHJvY2Vzc0Nvbm5lY3Rpb24oKSk7CisgICAgcmV0dXJuIFdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLndlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbigpLT5pZGJDb25uZWN0aW9uVG9TZXJ2
ZXJGb3JTZXNzaW9uKHNlc3Npb25JRCkuY29yZUNvbm5lY3Rpb25Ub1NlcnZlcigpOworfQorCiBS
ZWZQdHI8V2ViQ29yZTo6SURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2U+IFdlYkRhdGFiYXNlUHJv
dmlkZXI6OmNyZWF0ZUlEQkZhY3RvcnlCYWNrZW5kKCkKIHsKICNpZiBFTkFCTEUoREFUQUJBU0Vf
UFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2Vz
L1dlYkRhdGFiYXNlUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJh
c2VzL1dlYkRhdGFiYXNlUHJvdmlkZXIuaAppbmRleCBhOGFmMmRjLi40M2ZmMzg3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJEYXRhYmFzZVByb3Zp
ZGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvV2ViRGF0YWJh
c2VQcm92aWRlci5oCkBAIC0yNyw2ICsyNyw4IEBACiAjZGVmaW5lIFdlYkRhdGFiYXNlUHJvdmlk
ZXJfaAogCiAjaW5jbHVkZSA8V2ViQ29yZS9EYXRhYmFzZVByb3ZpZGVyLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9JblByb2Nlc3NJREJTZXJ2ZXIuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtMzcsMTEgKzM5LDcgQEAgcHVibGljOgogCiAjaWYg
RU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzTW9kZXJu
SURCKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KLQotICAgIHZpcnR1YWwgV2Vi
Q29yZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXImIGlkYkNvbm5lY3Rpb25Ub1Nl
cnZlckZvclNlc3Npb24oY29uc3QgV2ViQ29yZTo6U2Vzc2lvbklEJikgb3ZlcnJpZGUKLSAgICB7
Ci0gICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgfQorICAgIHZpcnR1
YWwgV2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXImIGlkYkNvbm5lY3Rp
b25Ub1NlcnZlckZvclNlc3Npb24oY29uc3QgV2ViQ29yZTo6U2Vzc2lvbklEJikgb3ZlcnJpZGUg
ZmluYWw7CiAjZW5kaWYKIAogcHJpdmF0ZToKQEAgLTQ5LDYgKzQ3LDcgQEAgcHJpdmF0ZToKIAog
I2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogICAgIHZpcnR1YWwgUmVmUHRyPFdlYkNvcmU6
OklEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlPiBjcmVhdGVJREJGYWN0b3J5QmFja2VuZCgpIG92
ZXJyaWRlOworICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxXZWJDb3JlOjpJblByb2Nlc3NJ
REJTZXJ2ZXI+PiBtX2lkYkVwaGVtZXJhbENvbm5lY3Rpb25NYXA7CiAjZW5kaWYKIAogICAgIGNv
bnN0IHVpbnQ2NF90IG1faWRlbnRpZmllcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvRGF0YWJhc2VzL1dlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJUb0RhdGFiYXNlUHJvY2Vzc0Nv
bm5lY3Rpb24uY3BwCmluZGV4IDAwNTlhZTEuLmJhYTRmMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvV2ViVG9EYXRh
YmFzZVByb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtODgsNiArODgsMTUgQEAgdm9pZCBXZWJUb0Rh
dGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb246OnJlbW92ZVdlYklEQlNlcnZlckNvbm5lY3Rpb24oV2Vi
SURCU2VydmVyQ28KIAogICAgIG1fd2ViSURCU2VydmVyQ29ubmVjdGlvbnMucmVtb3ZlKGNvbm5l
Y3Rpb24ubWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSk7CiB9CisKK1dlYklEQkNvbm5lY3Rp
b25Ub1NlcnZlciYgV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uOjppZGJDb25uZWN0aW9u
VG9TZXJ2ZXJGb3JTZXNzaW9uKGNvbnN0IFNlc3Npb25JRCYgc2Vzc2lvbklEKQoreworICAgIGF1
dG8gcmVzdWx0ID0gbV93ZWJJREJDb25uZWN0aW9ucy5hZGQoc2Vzc2lvbklELnNlc3Npb25JRCgp
LCBudWxscHRyKTsKKyAgICBpZiAocmVzdWx0LmlzTmV3RW50cnkpCisgICAgICAgIHJlc3VsdC5p
dGVyYXRvci0+dmFsdWUgPSBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmNyZWF0ZSgpOworCisg
ICAgcmV0dXJuICpyZXN1bHQuaXRlcmF0b3ItPnZhbHVlOworfQogI2VuZGlmCiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRh
YmFzZXMvV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24uaAppbmRl
eCA2MWE3Y2E0Li5lNGE1NGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0RhdGFiYXNlcy9XZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rp
b24uaApAQCAtMjksMTAgKzI5LDE1IEBACiAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5j
bHVkZSAiTWVzc2FnZVNlbmRlci5oIgorI2luY2x1ZGUgIldlYklEQkNvbm5lY3Rpb25Ub1NlcnZl
ci5oIgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKICNpZiBFTkFCTEUoREFUQUJBU0Vf
UFJPQ0VTUykKIAorbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgU2Vzc2lvbklEOworfQorCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViSURCU2VydmVyQ29ubmVjdGlvbjsKQEAgLTUx
LDYgKzU2LDggQEAgcHVibGljOgogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogICAgIHZv
aWQgcmVnaXN0ZXJXZWJJREJTZXJ2ZXJDb25uZWN0aW9uKFdlYklEQlNlcnZlckNvbm5lY3Rpb24m
KTsKICAgICB2b2lkIHJlbW92ZVdlYklEQlNlcnZlckNvbm5lY3Rpb24oV2ViSURCU2VydmVyQ29u
bmVjdGlvbiYpOworCisgICAgV2ViSURCQ29ubmVjdGlvblRvU2VydmVyJiBpZGJDb25uZWN0aW9u
VG9TZXJ2ZXJGb3JTZXNzaW9uKGNvbnN0IFdlYkNvcmU6OlNlc3Npb25JRCYpOwogI2VuZGlmCiAK
IHByaXZhdGU6CkBAIC03MSw2ICs3OCw4IEBAIHByaXZhdGU6CiAKICNpZiBFTkFCTEUoSU5ERVhF
RF9EQVRBQkFTRSkKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBXZWJJREJTZXJ2ZXJDb25uZWN0aW9u
Kj4gbV93ZWJJREJTZXJ2ZXJDb25uZWN0aW9uczsKKworICAgIEhhc2hNYXA8dWludDY0X3QsIFJl
ZlB0cjxXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI+PiBtX3dlYklEQkNvbm5lY3Rpb25zOwogI2Vu
ZGlmCiB9OwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>